什麼是計算機體系結構中的Booth乘法演算法?


Booth乘法演算法定義了一種可以將兩個補碼錶示的帶符號二進位制數相乘的乘法演算法。該演算法有助於計算機體系結構的研究。

Booth演算法包含連續地將兩個預定值(A和S)之一新增到一個乘積(P)中,然後對乘積(P)執行向右算術移位。讓我們考慮預定值為A和S,乘積為P。假設被乘數和乘數分別為m和r。設m和r的位數分別為x和y。

Booth乘法演算法包含以下步驟:

步驟1 - 確定A和S的值以及P的初始值。這些值應具有等於(x + y + 1)的長度。

  • 對於A,最高有效位(MSB)填充為m的值,其餘(y+1)位填充為零。
  • 對於S,最高有效位(MSB)填充為補碼錶示的(-m)的值,其餘(y + 1)位填充為零。
  • 對於P,x位的最高有效位填充為零。在這個值的右邊,附加r的值。然後,最低有效位(LSB)填充為零。

步驟2 - 確定P的最低有效位(LSBs)。

  • 如果它們是01,則求P + A的值,忽略任何溢位或進位。
  • 如果它們是10,則求P + S的值,忽略任何溢位或進位。
  • 如果它們是00,則在下一步中直接使用P。
  • 如果它們是11,則在下一步中直接使用P。

步驟3 - 將步驟2中獲得的值算術右移一位。P現在被賦予新值。

步驟4 - 對y次重複步驟2和步驟3。步驟5:從P中丟棄LSB,得到m和r的乘積。

示例 - 求3 x (-4)的積,其中m = 3,r = -4,x = 4,y = 4。

A = 00110000

S = 11010000

P = 00001000

由於y = 4,迴圈必須執行四次。

P = 00001000

這裡,最後兩位是00。

因此,執行算術右移後,P = 00000100。

P = 00000100

這裡,最後兩位是00。

因此,執行算術右移後,P = 00000010。

P = 00000010

這裡,最後兩位是10。

因此,P = P + S,即11010010。

執行算術右移後,P = 11101001。

P = 11101001

這裡,最後兩位是01。

因此,P = P + A,即00110001 + 11101001 = 00011010。

執行算術右移後,P = 00001101。

從P中丟棄LSB後,乘積是11110100。

更新於:2021年7月27日

6000+ 次瀏覽

啟動您的職業生涯

透過完成課程獲得認證

開始
廣告