【问题标题】:Difference between horizontal and vertical microcode水平和垂直微码的区别
【发布时间】:2017-03-21 12:00:20
【问题描述】:

我知道什么是计算机体系结构和设计中的微编码指令,但对这两个术语感到困惑。浏览了几篇文章,但无法弄清楚。

他们中的一些人说:

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

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

这些术语超出了我的理解范围,希望能提供更简单的解释。

【问题讨论】:

    标签: assembly cpu-architecture processor instructions


    【解决方案1】:

    嗯,Wikipedia 给了一个很好的介绍。

    为简单起见,假设我们在 CPU 数据路径中只有两个 MUXs,例如 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 |
         ¯¯¯                          ¯¯¯¯¯¯¯
    

    所以在指令信号位和被驱动元件之间有一个中间组合电路。

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

    【讨论】:

    • @AshishK 没什么,只是我发明的一个术语。这是一个不在数据路径中的 DEMUX :)
    • @MargaretBloom。比wiki更好的解释!!一个问题,为什么有人会使用垂直?我看不到任何胜利,当然操作更小,但你需要解码器来为芯片区域添加一些东西。
    • @IsuruH 水平微码不适用于流水线,它同时驱动所有 CPU 控制线,其中流水线不同的指令使用 CPU 的不同部分,因此不同的控制线集同时。垂直微码可以像普通指令一样在流水线中处理,因为它们本质上是 CPU 执行的真正指令。
    猜你喜欢
    • 2014-11-07
    • 1970-01-01
    • 2013-12-10
    • 1970-01-01
    • 2011-04-26
    • 2011-11-08
    • 2021-11-08
    • 2013-08-12
    • 2012-10-10
    相关资源
    最近更新 更多