跳轉到內容

微處理器設計/乘除單元

來自華夏公益教科書,開放的書籍,開放的世界

乘除問題

[編輯 | 編輯原始碼]

乘法和除法運算比加法或減法運算複雜得多。這種額外的複雜性會導致更多的硬體、更復雜的硬體以及更長的處理時間。

在硬體中,乘法和除法是透過一系列連續的加法和算術移位來執行的。出於這個原因,我們必須擁有高效的加法器和移位器。

乘法器和除法器由移位器和加法器組成。通常不可能或不希望使用 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 頁。
華夏公益教科書