水平和垂直微码之间的差异

时间:2017-03-21 12:00:20

标签: assembly cpu-architecture processor instructions

我知道计算机体系结构和设计中的微编码指令是什么,但这两个术语之间存在混淆。经过几篇文章但未能明确。

其中一些人说:

水平微代码:在这种类型的代码中,微代码包含没有任何中介的控制信号。

垂直微代码:在垂直微代码的情况下,每个动作都以密度编码。

这些术语超出了我的理解,并希望得到一个更简单的解释。

1 个答案:

答案 0 :(得分:2)

嗯,Wikipedia给出了很好的介绍。

为简单起见,假设我们在CPU数据路径中只有两个MUX,例如A和B. 并且每个MUX由4位控制。

水平微编码指令将包含MUX A和B的选择值:

     4-bit   4-bit
     ______ _______
    |  A   |   B   |
     ¯¯¯¯¯¯ ¯¯¯¯¯¯¯
       |       |
       |       |
    ___V_   ___V_
   |MUX A| |MUX B|
    ¯¯¯¯¯   ¯¯¯¯¯

指令中的位直接馈入两个MUX的选择线

垂直微编码指令将改为使用DEMUX,即"元DEMUX",用于选择要驱动的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 |
     ¯¯¯                          ¯¯¯¯¯¯¯

因此在指令信号位和驱动组件之间存在中间组合电路。

您已经可以看到垂直微码具有更短的指令但传播时间更长。