閱讀前,建議可以參考Day1:閱讀指南&為何選擇這個題目?
題目:計算機概論X30天
挑戰內容:連續30天紀錄計算機概論、離散數學、演算法、資料結構等課程,還有自己學習程式的心得體悟。
本篇性質:
學習內容的紀錄
,不會有太嚴謹或是流暢的說明,看不懂不要難過,真不是你的智商有問題在前面的內容,介紹了如何製作「加法/減法器」、「乘法/減法器」,但是要怎麼把他們混再一起讓我直接可以做運算呢?
我總不能每次要做加法的時候,就設置一次電路。然後又做減法時,又設置一次電路吧?(很累耶)
沒關係!把這些運算器綁一綁,變成一個ALU(邏輯運算單元)就可以了。
所謂ALU(邏輯運算單元):聽起來很厲害,但其實就是一個可以進行邏輯or運算的處理器
。比如說ALU把2和2被吞進去,那ALU就會看你是要把他們乘在一起,還是加再一起...,然後把結果吐出來。
(補圖)
(補圖)
簡單來說,就是把16bit的input都分別送進去加減法器
、shift乘法
、and
、xor
,然後把大家算出來的結果,送到MUX(Mutiplexer)裡面,讓MUX決定要讓哪個結果Output。
因為ALU select是3bit,因此可以表示0~7的數字。那就把乘法、加法、and、xor從0~7編號,如果ALU select輸入了某個編號,那就讓相應的運算結果輸出。