iT邦幫忙

DAY 20
0

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

淺入淺出計組之旅(20)邏輯運算的實現

  • 分享至 

  • xImage
  •  

ALU 又稱為算術邏輯運算單元,能夠為我們提供基本的邏輯與算術運算

那在硬體層面是如何實現的呢,讓我們從相對簡單的邏輯運算開始

在前面我們已經知道與或非等邏輯運算都可以用電晶體組合而成

但是一個 and 的邏輯閘還是無法滿足像是 and rd, rs, rt 這個指令

因為 rd, rs, rt 這三個是 32位元的暫存器,那該怎麼辦呢

很簡單,我們把 32個 and 電路連在一起就可以了

如下圖 32bit 的兩個 source 可以分別連到 A0-A31、B0-B31 最後經過各自的運算之後輸出

相同的 or 和 not 也是一樣的,而 ALU 中就是有這些不同的運算元件

如下圖所示,rs 和 rt 分別是各元件的輸入輸出,經過各自的運算之後我們就有了不同的運算結果

而怎麼在這之間選出我們所真正需要的結果呢

就是最後會透過一個多選器來控制

這個多選器將會接收我們之前提到的 CPU 在譯碼完成之後會傳送給 ALU 的指令

並且選擇正確的結果輸出,如此一來我們就可以得到所需要的運算結果了~

再來看這個熟悉的模型機,左邊就是右圖的電路實現

暫存器是上一篇所提到的 D flip-flop,通過內部總線成為 ALU 的輸入和輸出

於是在某個 clock 週期時暫存器的值就會被輸出到 ALU 中進行計算

並且將運算結果傳送到 R8 的輸入,當下個 clock 到來後這個運算結果就會被採樣和輸出

繼續進行下一個指令操作

如此一來我們就已經大致了解 ALU 的內部構造了

明天將繼續來看比較複雜的算術運算


上一篇
淺入淺出計組之旅(19)暫存器的基本原理
下一篇
淺入淺出計組之旅(21)加法和減法的實現 (上)
系列文
淺入淺出-計算機組織30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言