運(yùn)算器能夠進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。運(yùn)算器的基本功能是完成對(duì)各種數(shù)據(jù)的加工處理,例如算術(shù)四則運(yùn)算,與、或、求反等邏輯運(yùn)算,算術(shù)和邏輯移位操作,比較數(shù)值,變更符號(hào),計(jì)算主存地址等。運(yùn)算器是計(jì)算機(jī)中處理數(shù)據(jù)的功能部件,對(duì)數(shù)據(jù)處理主要包括數(shù)據(jù)的算術(shù)運(yùn)算和邏輯數(shù)據(jù)的邏輯操作;因此,實(shí)現(xiàn)對(duì)數(shù)據(jù)的算術(shù)與邏輯運(yùn)算是運(yùn)算器的核心功能。
本教程操作環(huán)境:windows7系統(tǒng)、Dell G3電腦。
運(yùn)算器能夠進(jìn)行算術(shù)運(yùn)算和邏輯運(yùn)算。
運(yùn)算器:arithmetic unit,計(jì)算機(jī)中執(zhí)行各種算術(shù)運(yùn)算和邏輯運(yùn)算操作的部件。
運(yùn)算器由算術(shù)邏輯單元(ALU)、累加器、狀態(tài)寄存器、通用寄存器組等組成。算術(shù)邏輯運(yùn)算單元(ALU)的基本功能為加、減、乘、除四則運(yùn)算,與、或、非、異或等邏輯操作,以及移位、求補(bǔ)等操作。計(jì)算機(jī)運(yùn)行時(shí),運(yùn)算器的操作和操作種類(lèi)由控制器決定。運(yùn)算器處理的數(shù)據(jù)來(lái)自存儲(chǔ)器;處理后的結(jié)果數(shù)據(jù)通常送回存儲(chǔ)器,或暫時(shí)寄存在運(yùn)算器中。與Control Unit共同組成了CPU的核心部分。
運(yùn)算器是計(jì)算機(jī)中處理數(shù)據(jù)的功能部件。對(duì)數(shù)據(jù)處理主要包括數(shù)據(jù)的算術(shù)運(yùn)算和邏輯數(shù)據(jù)的邏輯操作。因此,實(shí)現(xiàn)對(duì)數(shù)據(jù)的算術(shù)與邏輯運(yùn)算是運(yùn)算器的核心功能。
運(yùn)算器的基本功能是完成對(duì)各種數(shù)據(jù)的加工處理,例如算術(shù)四則運(yùn)算,與、或、求反等邏輯運(yùn)算,算術(shù)和邏輯移位操作,比較數(shù)值,變更符號(hào),計(jì)算主存地址等。
運(yùn)算器中的寄存器用于臨時(shí)保存參加運(yùn)算的數(shù)據(jù)和運(yùn)算的中間結(jié)果等。運(yùn)算器中還要設(shè)置相應(yīng)的部件,用來(lái)記錄一次運(yùn)算結(jié)果的特征情況,如是否溢出,結(jié)果的符號(hào)位,結(jié)果是否為零等。
運(yùn)算器的運(yùn)算
加法器
一位全加器:
Si=Ai⊕Bi⊕CiCi+1=AiBi+(Ai⊕Bi)Ci
延遲運(yùn)算: 與門(mén)、或門(mén) 1T;異或門(mén)3T
行波進(jìn)位的補(bǔ)碼加法/減法器
當(dāng)M=0時(shí),B數(shù)各位經(jīng)過(guò)0異或保持原數(shù)B不變,最低位進(jìn)位為0,結(jié)果就是A與B相加;當(dāng)M=1時(shí),B數(shù)各位經(jīng)過(guò)1異或取反,再結(jié)合最低位的進(jìn)位1,結(jié)果就是A+(-B)= A-B
定點(diǎn)乘法
在定點(diǎn)計(jì)算機(jī)中,兩個(gè)原碼表示的數(shù)相乘的運(yùn)算規(guī)則是:乘積的符號(hào)位由兩數(shù)的符號(hào)位按異或運(yùn)算得到,而乘積的數(shù)值部分則是兩個(gè)正數(shù)相乘之積。
介于串行乘法器已經(jīng)被淘汰,下面只介紹并行乘法器。并行乘法器的關(guān)鍵是快速產(chǎn)生n*n個(gè)位積,然后對(duì)位積進(jìn)行相加運(yùn)算產(chǎn)生n+n-1個(gè)列和。
并行乘法器:
第一步是并行計(jì)算nn個(gè)位積,為此需要nn個(gè)與門(mén);
第二步是利用n*(n-1)個(gè)全加器計(jì)算列和。
間接補(bǔ)碼乘法運(yùn)算
由于在計(jì)算機(jī)內(nèi)數(shù)據(jù)是以補(bǔ)碼形式存在,必須考慮補(bǔ)碼乘法運(yùn)算中由補(bǔ)碼、原碼之間簡(jiǎn)便的互換運(yùn)算
由補(bǔ)碼直接求原碼的運(yùn)算:
正數(shù)的補(bǔ)碼不變,負(fù)數(shù)的補(bǔ)碼等于從右邊開(kāi)始遇到的第一個(gè)真值的1以后除了符號(hào)位以外1變0,0變1。
求補(bǔ)電路的思想:
如果符號(hào)位是0,數(shù)據(jù)不變
如果符號(hào)位是1,則符號(hào)位保持不變,數(shù)據(jù)位從lowbit(x)左邊除符號(hào)位以外全部求反
串聯(lián)的或門(mén)陸續(xù)接受來(lái)自低位的數(shù)字和上一次的或門(mén)輸出,一旦某一次低位數(shù)字為1,這一次的或門(mén)輸出及后續(xù)的或門(mén)輸出均為1。每一級(jí)的或門(mén)輸出都會(huì)與使能端E相與,當(dāng)使能端E=1時(shí),簡(jiǎn)化為直接由或門(mén)輸出控制。與門(mén)輸出接異或門(mén),當(dāng)或門(mén)為1,E=1時(shí),異或門(mén)發(fā)揮求反功能。當(dāng)使能端為0時(shí),各級(jí)異或門(mén)均為0,不發(fā)揮求反功能,即各位均保持不變。因此,可以將使能端接數(shù)的符號(hào)位。
間接補(bǔ)碼乘法器,即先將兩個(gè)數(shù)經(jīng)過(guò)算前求補(bǔ)器轉(zhuǎn)化為原碼,然后經(jīng)過(guò)乘法器,再將結(jié)果經(jīng)過(guò)算后求補(bǔ)器轉(zhuǎn)化為補(bǔ)碼。
直接補(bǔ)碼乘法運(yùn)算
根據(jù)這一特點(diǎn),我們可以設(shè)計(jì)輸入帶有負(fù)權(quán)的加法器,用來(lái)構(gòu)造直接補(bǔ)碼并行乘法器。根據(jù)帶有負(fù)權(quán)的輸入端數(shù)量,可以分為0,1,2,3四類(lèi)加法器。用混合加法器構(gòu)造出的并行乘法器如下圖: