cpu-architecture - 微码术语:是否有不同“风格”微码的名称?
问题描述
我一直在看微码,想知道术语。
微码的“经典”用途是用微码代替处理器控制逻辑来生成处理器控制信号。但是有一些系统走得更远,用微码实现操作系统的低级部分,最著名的是 Xerox Alto,还有像 Datapoint 6600 和较小范围内的 IBM 360 这样的系统。在这些系统中,执行指令只是微码的一项任务,而不是微码的重点。这种风格的微码有什么说法吗?“微编程”几乎适合,但通常用于微代码编程。
我想知道的第二个维度:在某些系统中,微架构与程序员级架构几乎相同,可能还有一些额外的内部寄存器,例如 68000。但在其他系统中,可见架构本质上是在微架构中无法识别。例如,不同的 IBM 360 模型具有完全不同的微体系结构,但具有相同的程序员级体系结构。我的第二个问题是,是否有一个术语来描述微架构与可见架构完全不同的系统?
(我知道垂直微码与水平微码,但这是不同的。另外,我使用的示例很旧,但这不是一个逆向计算问题。)
解决方案
Maurice Wilkes 的原始微码论文没有提到水平与垂直。但是根据这个分类法,
- 一条横向微指令在一个周期内控制多个资源
- 垂直微指令控制单一资源
还有其他微码功能,例如可写;这些不会改变微指令编码。
水平与垂直微码是一个频谱而不是二分法。严格水平的微指令将仅由控制位和字段组成。对于任何实际架构,这种纯水平微指令都将非常广泛,因为在复杂的处理器中有很多功能需要控制。此外,这些控制位将非常稀疏。由此产生的微存储将是大而昂贵的,而且不一定很快。
相反,像 P6 这样的现代微架构具有操作码。操作码解码器是一个组合电路,它采用操作码位并发出控制值。这会花费一些门延迟,但会提供显着的宽度压缩,从而允许更小的微存储。垂直微架构只是将这一点发挥到了极致,每个操作码控制一个资源。
在 60 年代,用微码编写复杂指令和低级操作系统组件实际上是高效的,这导致了 CISC ISA。然而,当 VLSI、缓存和超标量出现时,重新审视了这一设计决策,从而产生了 RISC ISA。但同样,ISA 的这种历史发展并没有改变微码的分类。
推荐阅读
- python - 如何使用有限数据的数学约束来约束 lmfit?
- ruby - 添加具有 nil 值的新动态属性
- python - 未记录在 while 循环中的变量
- excel - 如何将 ADODB 连接字符串解析为更新的窗口和 excel?
- tensorflow - 构建 libtensorflowlite.so 没有任何错误,但共享文件接近空 (KB)
- sql - SQL查询子集中的最大值
- python - 踢命令(discord.py)
- android - Kotlin try-catch 在 catch 后恢复
- java - 拆箱会减慢 Java 流的速度吗?
- amazon-web-services - 处理从 aws s3 到数据库的巨大 csv 文件