苏流郁宓
2022-08-15
来自湖北
在硬件层面,为提高流水线效率。按照同时钟周期原则,假如ac为一组指令,c的运算必须依赖a的结果,那可以把同样周期的bd插入ac中组为abcd指令,a指令下去运算,紧接着b指令也下去运算,这样表面上c需要a的等待时间,但等待时间途中b指令也忙着,相当于cpu核没有空闲,利用指令b指令的时间间隙,a指令完成执行,结果返回给c,c执行差不多,b指令完成执行结果就可以立马返回给d指令执行了 cpu核执行指令没有空闲时间,乱序执行,这是通过增加晶体管来完成的! 这可以和今天的流水线执行方式进行互补的啊
作者回复: 是的
5
苏流郁宓
2022-08-15
来自湖北
cpu流水线下,软硬件中断导致须停下手头工作来处理中断问题,频繁的软硬件中断会降低cpu工作效率(比如正在运行的数据需要来回存取读写),在明面上如用户一下打开多个app容易卡住,或者浏览器打开多个网页…… 解决方法,如浏览器给定同时允许打开网页的最大数,或者app中也设软件cache,减少因网络即时数据存储问题导致的中断量加大,比如,优化软件结构。能就近找到的数据不要让cpu遍历去找! 在cpu层面,尽量将宽度一致的数据/指令列为一组,减少内存不该有的缺页异常(该有的还得有)!
作者回复: 是的
2
枫落
2022-09-04
来自湖北
空泡是什么指令呢?这个时候流水线是也处于忙状态吗?
作者回复: 是的
+1
2022-08-21
来自湖北
不太理解在什么情况下需要在访存这个阶段从存储器中读取数据,不是能在执行阶段通过寄存器地址完成么?另外存储器和寄存器有什么区别呢?然后为何还有给pc地址加4的情况,不是在预读取的时候就完成了么
作者回复: 外存储器一般 是内存
共 2 条评论
青玉白露
2022-08-17
来自湖北
精彩!锁、内存屏障等概念其实说到底就是基于访存阶段进行的特性化操作,还有很多的东西需要妈那美女消化。
作者回复: 哈哈