文章開始宣告一點,從本章開始很多電路圖都是博主從百度百科搜到的,因為實在是畫得不好,如果有侵權請私信我,我在呼叫時也會注明出處,
這里就要說到我們組成原理的五個功能部件的第一個——運算器了,
注意:
1)運算器的功能主要包括算術運算和邏輯運算以及移位補位等輔助運算,
2)運算器的核心是算術邏輯單元(ALU),
3)運算器的操作種類來源于控制器,操作的數值來源于存盤器,處理結果往往回傳存盤器(也可以暫時保存),
4)運算器也包含許多通用的邏輯單元,暫存運算元,累加器(ACC),商乘暫存器(MQ),運算元暫存器(X),程式狀態暫存器(PSW)還有兩個非必須的變址暫存器和基址暫存器,
5)PSW主要用于存放運算中得到的標志資訊(是否溢位,進位錯位,結果是否為負),
加法器
1.一位全加器
一位全加器的圖型如下:

圖片來源于百度百科
A,B分別為兩個加數,低位回傳進來一個Cin作為進位,因此會有三個輸入,輸出和和進位所以有三個輸出,
當A,B中1的個數為奇數時一定會產生0+1現象也就是會出現1;當A,B中1的個數為偶數個的時候一定會產生0+0或1+1現象所以當前和為0;
所以我們可以知道當前和其實就是一個異或運算,(這僅僅是在進位并未參與運算的情況下),
當我們算加法的時候我們知道進位是要參與運算的,也就是說如果有進位的情況下我們要加入進位即A,B,Cin三者的異或運算為當前這一位的值,
進位的計算方式很簡單:我們在對A,B異或運算得出為0時需要判斷是因為兩個都是0還是判斷兩個都是1,與非門是有1則1,所以A與B走與門,得兩1才1,最后再與A,B異或的值相與即可得到,
為了便于理解我寫一下公式:
Sum=A異或B異或C(注意這個C是第n-1個C)
C=(A異或B與C)與(A與B);
2.串行加法器
這個僅僅有一個一位全加器,也就是和一位全加器的程序一樣不過是進行了n次,運算速度當然不會很快但是這個確實很省錢,
3.并行加法器
顧名思義就是好多個一位全加器一起加,這個速度肯定快,也比較花錢,
這個時候會出現兩種情況一種是不同時進位(串行進位),我們很容易理解,因為我們再算加法的程序其實就是這種現象的抽象,寫兩排加數一個一個算,另外一種是同時進位(并行進位,先行進位),
舉個例子:
比如我們在計算的時候
C1=(A1異或B1與C0)與(A1與B1)
C2=(A2異或B2與C1)與(A2與B2)
這是串行
當我們并行的時候我們把C2改為:
C2=(A2異或B2與(A1異或B1與C0)與(A1與B1))與(A2與B2)
這樣是不是就只需要知道剛開始的值就可以了,也就實作了并行,
ALU

左邊是ALU的形狀,A,B是兩種輸入資料,K是操作指令,F是輸出函式,
右邊是4位信號,這個是最簡單的信號,可以進行16種邏輯運算和16種算術運算,
M用來說明是算識訓是邏輯運算,
S則是不同的運算操作,
我們再每一個片內是并行運算的,但是我們把不同的片組合一起變為串行運算,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/229451.html
標籤:其他
上一篇:演算法之快速排序
下一篇:請輸入我是豬不然我就關閉你的電腦
