我一直在看微码,并对术语感到好奇。
“经典”使用微码是用微码代替处理器控制逻辑以生成处理器控制信号。但是,有些系统可以更进一步地实现并以微码实现操作系统的底层部分,其中最著名的是Xerox Alto,还有像Datapoint 6600以及较小范围的IBM 360之类的系统。在这些系统中,执行指令这只是微代码的一项任务,而不是微代码的重点。对于这种微码样式有什么用吗? “微编程”几乎适合,但通常用于微代码编程。
我想知道的第二维:在某些系统中,微体系结构与程序员级别的体系结构几乎相同,也许带有一些额外的内部寄存器,例如68000。但是在其他系统中,可见体系结构在微体系结构中基本上是无法识别的。例如,不同的IBM 360模型具有完全不同的微体系结构,但具有相同的程序员级体系结构。我的第二个问题是,是否存在一个术语来描述微体系结构与可见体系结构完全不同的系统?
((我知道垂直和水平微代码,但这是不同的。此外,我使用的示例很旧,但这不是回溯问题。)
[莫里斯·威尔克斯(Maurice Wilkes)的original microcode paper甚至没有提到水平还是垂直。但是根据this taxonomy,
[还有其他微码功能,例如可写;这些不会更改指令编码。
水平vs垂直微码是一个频谱,而不是二分法。严格的水平微指令将仅由控制位和字段组成。由于在复杂处理器中要控制的功能很多,因此对于任何实际体系结构而言,这样的纯水平微指令将非常广泛。而且,这些控制位将非常稀疏。最终的微型存储将很大,很昂贵,而且不一定很快。
相反,实际的微体系结构like the P6具有操作码。解码器获取操作码位并发出控制值。这会花费一些选通延迟,但会提供显着的宽度压缩,从而允许更小的微存储。垂直微体系结构将这一点发挥到了极致,每个操作码控制着一个资源。
用微码was actually efficient in the 60s写低级组件,这导致了CISC ISA。但是,当VLSI,高速缓存和超标量出现时,重新考虑了该设计决策,从而产生了RISC ISA。但是同样,这种历史发展不会改变分类法。