微处理器设计/乘除单元
外观
< 微处理器设计
乘法和除法运算比加法或减法运算复杂得多。这种额外的复杂性会导致更多的硬件、更复杂的硬件以及更长的处理时间。
在硬件中,乘法和除法是通过一系列连续的加法和算术移位来执行的。出于这个原因,我们必须拥有高效的加法器和移位器。
乘法器和除法器由移位器和加法器组成。通常不可能或不希望使用 ALU 的主要加法器和移位器单元,因此微处理器通常会包含多个 ALU 单元(一个用于加法和减法的基本单元,以及嵌入在乘法和除法单元中的单元)。这是我们的 ALU 和移位器需要小而快的其他充分理由。
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。但是,在融合运算中,浮点值在乘法和加法之间不会舍入,而是之后才会舍入。有关浮点舍入的更多信息,请参阅 浮点。
- ↑ DTACK 接地,简易 68000/16081 系统杂志 第 29 期 - 1984 年 3 月 第 6 页。