【问题标题】:Microcode terminology: are there names for different "styles" of microcode?微码术语:是否有不同“风格”微码的名称?
【发布时间】:2019-07-15 01:27:26
【问题描述】:

我一直在研究微码,想知道术语。

微码的“经典”用法是用微码代替处理器控制逻辑来生成处理器控制信号。但是有一些系统走得更远,用微码实现操作系统的低级部分,最著名的是 Xerox Alto,还有像 Datapoint 6600 和较小范围内的 IBM 360 这样的系统。在这些系统中,执行指令只是微码的一项任务,而不是微码的重点。这种风格的微码有什么说法吗? “微编程”几乎适合,但一般用于微代码编程。

我想知道的第二个维度:在某些系统中,微架构与程序员级别的架构几乎相同,可能有一些额外的内部寄存器,例如 68000。但在其他系统中,可见的架构在微架构中本质上是无法识别的。例如,不同的 IBM 360 模型具有完全不同的微体系结构,但具有相同的程序员级体系结构。我的第二个问题是,是否有一个术语来描述微架构与可见架构完全不同的系统?

(我知道垂直微码和水平微码,但这是不同的。另外,我使用的示例很旧,但这不是逆向计算问题。)

【问题讨论】:

  • 也相关:“微码”的现代含义,其中大多数指令解码为单个内部操作并直接执行,但少数指令是微码的。尤其是现代 x86,例如内存目标添加并不是真正的微编码,而是解码为单独的加载/添加和存储微指令。但是英特尔对idiv 的实现就像是微码定序器的10 uop。 What is a microcoded instruction?。而rep movs 在内部循环。当然,像syscall 这样的指令也被微编码了尽可能多的微指令。
  • @PeterCordes en.wikipedia.org/wiki/… 怎么样?这就是他所说的一个例子,对吧?
  • @JerryJeremiah: PCLMULQDQ 在支持它的早期 CPU 中被微编码(例如,Sandybridge 上的 18 微指令:agner.org/optimize 指令表),只是为了获得兼容性并仍然获得一些加速。一旦使用它的软件开始变得更加普遍,晶体管预算攀升,英特尔添加了更专业的硬件,可以在 Haswell 上以 3 uop 的方式运行它(从这个意义上说,
  • @JerryJeremiah:AESENC / AESDEC 指令从未被大量微编码;他们每条指令只执行一轮 AES,因此由软件来循环循环,而不是微码。如果它们被大量微编码,它将破坏性能目的。按键设置指令不必很快并且微编码的。例如Sandybridge AESENC/DEC 是 2 uop,AESKEYGENASSIST 是 11。Haswell/Skylake AESENC/DEC 是 1 uop,而 AESKEYGENASSIST 仍然是 10 或 13 uop。 Skylake 改进了延迟,以使不会在多个流上交错工作的代码受益。
  • @JerryJeremiah:如果你的意思是“与内部架构不同的可见架构”,再次不。这只是单个指令的实现。他们操作的寄存器仍然是架构 x86 SIMD 寄存器。 (它们在内部重命名为物理寄存器文件(或 P6 系列中的 ROB),但这是通过固定硬件而不是微码来完成的,以便能够在每个时钟重命名 4 个寄存器。)使用可能使用的微码模拟单个复杂指令tmp regs 就像 OP 所说的 68000。那个 ucode 可以被固定功能的硬件替换。

标签: cpu-architecture terminology microcoding


【解决方案1】:

Maurice Wilkes 的original microcode paper 没有提到水平与垂直。但是根据this taxonomy

  • 水平微指令在一个控制多个资源 循环
  • 垂直微指令控制单个资源

还有其他微码功能,例如可写;这些不会改变微指令编码。

水平与垂直微码是一个范围而不是二分法。严格水平的微指令将仅由控制位和字段组成。对于任何实际架构,这种纯水平微指令都将非常广泛,因为在复杂的处理器中有很多功能需要控制。此外,这些控制位将非常稀疏。由此产生的微存储会很大而且很昂贵,而且不一定很快。

现代微架构like the P6 有操作码。操作码解码器是一个组合电路,它采用操作码位并发出控制值。这会花费一些门延迟,但会提供显着的宽度压缩,从而允许更小的微存储。垂直微架构将这一点发挥到极致,每个操作码控制一个资源。

在微码was actually efficient in the 60s 中编写复杂指令和低级操作系统组件,这导致了 CISC ISA。然而,当 VLSI、缓存和超标量出现时,重新审视了这一设计决策,从而产生了 RISC ISA。但同样,ISA 的这种历史发展并没有改变微码的分类。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-22
    • 2021-04-25
    • 1970-01-01
    相关资源
    最近更新 更多