水平和垂直微码之间的区别
Difference between horizontal and vertical microcode
我知道什么是计算机体系结构和设计中的微代码指令,但对这两个术语感到困惑。看了好几篇文章还是没搞清楚
有些人说:
水平微码:在这种类型的代码中,微码包含控制信号,没有任何中介。
垂直微码:在垂直微码的情况下,每个动作都以密度编码。
这些术语超出了我的理解范围,希望得到更简单的解释。
嗯,Wikipedia介绍的很好
为了简单起见,假设我们在 CPU 数据路径中只有两个 MUX,比如 A 和 B。
并且每个 MUX 由 4 位控制。
水平微码指令将包含 MUX A 和 B 的 select 值:
4-bit 4-bit
______ _______
| A | B |
¯¯¯¯¯¯ ¯¯¯¯¯¯¯
| |
| |
___V_ ___V_
|MUX A| |MUX B|
¯¯¯¯¯ ¯¯¯¯¯
指令中的位直接馈入两个 MUX 的 select 行
垂直微编码指令将改为使用 DEMUX,一个 "meta-DEMUX",用于 select 驱动哪个 MUX。
1
b
i
t 4-bit
_ _______
|M| SEL |
¯ ¯¯¯¯¯¯¯
| | 4-bit DEMUX input
| _V_ _______
'->| D | -- 4-bit output 0 --> | MUX A |
| M |' ¯¯¯¯¯¯¯
| U |. _______
| X | -- 4-bit output 1 --> | MUX B |
¯¯¯ ¯¯¯¯¯¯¯
所以指令信号位和驱动元件之间存在中间组合电路
您已经可以看到垂直微码的指令更短但传播时间更长。
我知道什么是计算机体系结构和设计中的微代码指令,但对这两个术语感到困惑。看了好几篇文章还是没搞清楚
有些人说:
水平微码:在这种类型的代码中,微码包含控制信号,没有任何中介。
垂直微码:在垂直微码的情况下,每个动作都以密度编码。
这些术语超出了我的理解范围,希望得到更简单的解释。
嗯,Wikipedia介绍的很好
为了简单起见,假设我们在 CPU 数据路径中只有两个 MUX,比如 A 和 B。
并且每个 MUX 由 4 位控制。
水平微码指令将包含 MUX A 和 B 的 select 值:
4-bit 4-bit
______ _______
| A | B |
¯¯¯¯¯¯ ¯¯¯¯¯¯¯
| |
| |
___V_ ___V_
|MUX A| |MUX B|
¯¯¯¯¯ ¯¯¯¯¯
指令中的位直接馈入两个 MUX 的 select 行
垂直微编码指令将改为使用 DEMUX,一个 "meta-DEMUX",用于 select 驱动哪个 MUX。
1
b
i
t 4-bit
_ _______
|M| SEL |
¯ ¯¯¯¯¯¯¯
| | 4-bit DEMUX input
| _V_ _______
'->| D | -- 4-bit output 0 --> | MUX A |
| M |' ¯¯¯¯¯¯¯
| U |. _______
| X | -- 4-bit output 1 --> | MUX B |
¯¯¯ ¯¯¯¯¯¯¯
所以指令信号位和驱动元件之间存在中间组合电路
您已经可以看到垂直微码的指令更短但传播时间更长。