预编码器和解码器。区别

时间:2016-04-11 21:17:45

标签: assembly

我正在阅读Agner Fog的资料,我有些疑惑:

  

预解码器和解码器可以处理16个字节或4个指令   每个时钟周期

  1. 什么是解码器环境中的预解码器?
  2. 作者说关于宏指令的缓存。我不能为什么它有用,毕竟我们有缓存指令。什么是环回缓冲区?

  3. 什么是microoperationsFusion和macroOperationFustion?

1 个答案:

答案 0 :(得分:3)

  1. “预解码器将查找并标记指令边界,解码任何前缀并检查某些属性(例如分支)。” (Source)(Another article

  2. L1指令缓存是宏指令的主缓存。循环缓冲区存储一小段宏指令(如32字节),这对于紧密循环非常有用,与从L1缓存读取相比,可以节省延迟和功耗。

  3. “流水线中的寄存器重命名(RAT)和退出(RRF)阶段是瓶颈,每个时钟周期的最大吞吐量为3μs。为了更好地解决这些瓶颈,设计人员加入了一些操作他们称之为μop融合。融合操作在大多数流水线中共享一个μop,在重新排序缓冲区(ROB)中共享一个条目。但这个单独的ROB条目代表两个操作,必须由两个不同的执行单元完成。融合的ROB条目被分派到两个不同的执行端口,但作为一个单元退役。“ (Source

    宏操作融合是一种识别成为一个微操作的宏指令序列的方法。最常见的例子是在较新的Intel CPU上,CMP + JMP融合到一个微操作中。