采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好,我想问一下,比如说一个CPU指令是取某个内存单元中的数据,这个指令即使是从内存中获取数据,那也是需要一个时间的(比命中高速缓存要慢)。那么在这个等待内存回传数据的时间内,流水线上取指令或者解析指令可能会提前完成,那么CPU是如何处理下一条指令的呢,只是等待内存回传数据完成后再继续执行还是会怎样?
是的,当缓存没有命中的时候,需要花费较多的时间更新高速缓存。
在缓存不命中的情况下,CPU会发出缺页中断,此时由MMU去处理告诉缓存置换的事情,CPU会转而切换到别的指令或者执行别的线程代码,不会等待内存回传的,这样效率太低啦。
希望对你有所帮助。
您好,我这里还有问题: 1. CPU转而执行别的指令,这里是由操作系统实现的么?我理解CPU只知道执行下一条指令 2. 当第一条指令执行缺页中断后,切换执行的指令还是访问内存单元,这时候如果之前指令还没有传回内存数据,这次访问内存是能同时进行还是排队顺序进行? 3. 还有一些类似加法操作等,一条指令可能也需要执行多次二进制计算也需要消耗时间,那么他后面的下一条指令就是等待他计算完成后再执行是么?
登录后可查看更多问答,登录/注册
编程之前先学这门课,系统补足计算机基础知识,夯实编程地基
3.4k 17
1.7k 14
1.2k 13
1.3k 11