我正在阅读Agner Fog的资料,我有些疑惑:
预解码器和解码器可以处理16个字节或4个指令 每个时钟周期
作者说关于宏指令的缓存。我不能为什么它有用,毕竟我们有缓存指令。什么是环回缓冲区?
什么是microoperationsFusion和macroOperationFustion?
答案 0 :(得分:3)
“预解码器将查找并标记指令边界,解码任何前缀并检查某些属性(例如分支)。” (Source)(Another article)
L1指令缓存是宏指令的主缓存。循环缓冲区存储一小段宏指令(如32字节),这对于紧密循环非常有用,与从L1缓存读取相比,可以节省延迟和功耗。
“流水线中的寄存器重命名(RAT)和退出(RRF)阶段是瓶颈,每个时钟周期的最大吞吐量为3μs。为了更好地解决这些瓶颈,设计人员加入了一些操作他们称之为μop融合。融合操作在大多数流水线中共享一个μop,在重新排序缓冲区(ROB)中共享一个条目。但这个单独的ROB条目代表两个操作,必须由两个不同的执行单元完成。融合的ROB条目被分派到两个不同的执行端口,但作为一个单元退役。“ (Source)
宏操作融合是一种识别成为一个微操作的宏指令序列的方法。最常见的例子是在较新的Intel CPU上,CMP + JMP融合到一个微操作中。