iT邦幫忙

DAY 27
0

淺入淺出-計算機組織系列 第 27

淺入淺出計組之旅(27)乘法器的實現

  • 分享至 

  • xImage
  •  

如果希望 CPU 可以支持某一種功能運算,那就必須實現對應的硬體

在前一篇我們已經知道乘法器在硬體實現上的步驟

那現在就讓我們一起來看一下乘法器的具體電路實現

相較於加法器,乘法器的電路圖相對之下複雜許多

要實現一個四位元的乘法運算,需要兩個八位元的暫存器,分別儲存被乘數與乘積

乘數則會使用四位元的暫存器儲存,被乘數與乘數分別會依照控制信號指示左移或右移

另外還有一個八位元的加法器,根據控制信號進行加法運算

一開始會初始化乘數和被乘數,接著將乘積設置為零

接著控制信號會檢查乘數的最低位元,目前為一

因此被乘數和乘積會進行加法,並且寫入乘積暫存器中

這樣就完成了第一輪的乘法運算,接下來控制信號會將被乘數左移,以及右移乘數,

因為對於硬體來說要記住下一個需要判讀的乘數是哪個位元,實作上會比較麻煩

而且一但使用過的乘數之後就沒有用了

所以我們可以將乘數右移每次只要判讀最低位元,這樣一來就可以減少硬體的複雜度

另外控制邏輯還會有一個簡單的計數器,來記錄目前是第幾輪的乘法

假設超過四輪,那運算當然就可以結束了

再依序執行以上步驟之後,當控制邏輯中的計數器發現已經是第四次,就表示完成了計算

此時在乘積暫存器中的就是結果了

我們也可以注意到此時乘數與被乘數中的數值雖然有進行了移位,但是卻沒有實際的意義

上圖就是擴展到 N 位乘法器時的通用步驟,只要有足夠的晶體管就可以構建出這個基本的乘法器

那和加法器相同,這個乘法器也有可以進行優化的部分,就留待明天來介紹~:)


上一篇
淺入淺出計組之旅(26)乘法的運算過程
下一篇
淺入淺出計組之旅(28)乘法器的優化 (上)
系列文
淺入淺出-計算機組織30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言