跳转到内容

微处理器设计/乘除单元

来自维基教科书,开放的书籍,开放的世界

乘除问题

[编辑 | 编辑源代码]

乘法和除法运算比加法或减法运算复杂得多。这种额外的复杂性会导致更多的硬件、更复杂的硬件以及更长的处理时间。

在硬件中,乘法和除法是通过一系列连续的加法和算术移位来执行的。出于这个原因,我们必须拥有高效的加法器和移位器。

乘法器和除法器由移位器和加法器组成。通常不可能或不希望使用 ALU 的主要加法器和移位器单元,因此微处理器通常会包含多个 ALU 单元(一个用于加法和减法的基本单元,以及嵌入在乘法和除法单元中的单元)。这是我们的 ALU 和移位器需要小而快的其他充分理由。

乘法算法

[编辑 | 编辑源代码]

Booth 算法

[编辑 | 编辑源代码]

级联乘法

[编辑 | 编辑源代码]

Wallace 树

[编辑 | 编辑源代码]

Wallace 树是一种用于执行乘法的专门结构,被称为计算领域最重要的进步之一。 [1]

Wallace 树使用许多相同的 3:2 压缩器(也称为全加器),例如 TI 74x275 芯片或 TI 74x183 芯片,是实现单周期乘法的流行方法之一。TI 74x261 和 74x284 的数据手册描述了使用 Wallace 树实现乘法的某些实际细节。Dadda 乘法器使用相同的 3:2 压缩器,但排列方式略微有效。

除法算法

[编辑 | 编辑源代码]

乘加运算

[编辑 | 编辑源代码]

乘加运算(MAC)在单个指令中执行乘法和加法。例如,指令

MAC A, B, C

将执行以下操作

A = A + (B × C)

这对需要大量数学运算的处理器很有用,例如图形处理器和 DSP。

MAC 往往具有较长的关键路径,因此如果您的处理器具有 MAC 操作,则可能能够包含其他复杂的算术运算。

在具有累加器体系结构的处理器中,MAC 运算将使用累加器作为目标寄存器,因此指令

MAC B, C

将执行以下操作

ACC = ACC + (B × C)

融合乘加运算

[编辑 | 编辑源代码]

融合乘加运算是一种浮点运算,类似于 MAC。但是,在融合运算中,浮点值在乘法和加法之间不会舍入,而是之后才会舍入。有关浮点舍入的更多信息,请参阅 浮点

  1. DTACK 接地,简易 68000/16081 系统杂志 第 29 期 - 1984 年 3 月 第 6 页。
华夏公益教科书