版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章運(yùn)算方法與運(yùn)算器本章主要內(nèi)容1.定點(diǎn)加法、減法運(yùn)算2.定點(diǎn)乘法運(yùn)算3.定點(diǎn)除法運(yùn)算4.定點(diǎn)運(yùn)算器的組成與結(jié)構(gòu)5.浮點(diǎn)運(yùn)算方法和浮點(diǎn)運(yùn)算器用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路傳統(tǒng)的邏輯學(xué)是二值邏輯學(xué),它研究命題在“真”、“假”兩個(gè)值中取值的規(guī)律。0,1碼只有兩個(gè)碼,因此特別適合用做邏輯的表達(dá)符號(hào)。通常用“1”表示“真”,用“0”表示“假”。邏輯代數(shù)是表達(dá)語(yǔ)言和思維邏輯性的符號(hào)系統(tǒng)。邏輯代數(shù)中最基本的運(yùn)算是“與”、“或”、“非”。用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路1)“與”運(yùn)算和“與門(mén)”表示為:X=AandB或X=A∧B實(shí)現(xiàn)“與”邏輯功能的電路單元叫“與門(mén)”。AB X=A×B00 0 01 0 10 0 11 1 (a)邏輯“與”實(shí)例(b)“與”門(mén)符號(hào)(c)邏輯“與”真值表用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路2)“或”運(yùn)算和“或門(mén)”表示為:X=AorB或X=A∨B能實(shí)現(xiàn)“或”邏輯功能的電路單元叫“或門(mén)”。ABX=A+B00 0 01 1 10 1 11 1 (a)邏輯“或”實(shí)例(b)“或”門(mén)符號(hào)(c)邏輯“或”真值表用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路3)“非”運(yùn)算和“非門(mén)”表示為:X=notA或A能實(shí)現(xiàn)“非”邏輯功能的電路單元叫“非門(mén)”。AX=A01 1 0 (a)邏輯“非”實(shí)例(b)“非”門(mén)符號(hào)(c)邏輯“非”真值表用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路4)組合邏輯電路任何復(fù)雜的邏輯問(wèn)題,最終可用“與”、“或”、“非”這3種基本邏輯運(yùn)算的組合加以描述。常用的組合邏輯電路單元有“與非門(mén)”、“或非門(mén)”、“異或門(mén)”、“同或門(mén)”等。
名
稱(chēng)符
號(hào)邏輯表達(dá)式真
值
表ABX緩沖門(mén)X=A0101與非門(mén)X=A·B=A+B001101011110或非們X=A+B=A·B001101011000異或門(mén)X=AB=A·B+A·B001101010110同或門(mén)X=A·B=A·B+A·B001101011001用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路邏輯代數(shù)的基本定律(1)關(guān)于變量與常量的關(guān)系A(chǔ)+0=A,A+1=1,A+A=1A·0=0,A·1=A,A·A=0(2)重復(fù)律A·A=A,A+A=A(3)吸收律A+A·B=A,A·(A+B)=A用開(kāi)關(guān)實(shí)現(xiàn)門(mén)電路邏輯代數(shù)的基本定律(4)分配律A(B+C)=A·B+A·C,A+B·C=(A+B)·(A+C)(5)交換律A+B=B+A,A·B=B·A(6)結(jié)合律(A+B)+C=A+(B+C),(A·B)·C=A·(B·C)(7)反演律A·B·C·…=A+B+C+…,A+B+C+…=A·B·C·…一位加法電路──全加器0.0.1.1.10101111110被加數(shù)加數(shù)進(jìn)位和第i位+一位加法電路──全加器1101被加數(shù)加數(shù)本位和(Si的中間值)低位進(jìn)位1本位全和+1XiYiCi-1CiSi本位進(jìn)位一位加法電路──全加器XiYiCi-1CiSiXiYiCi-1CiSi0000010100110001011010010111011101101011Si=Xi·Yi·Ci-1+Xi·Yi·Ci-1+Xi·Yi·Ci-1+Xi·Yi·Ci-1=Xi+Yi+Ci-1
Ci=Xi·Yi·Ci-1+Xi·Yi·Ci-1+Xi·Yi·Ci-1+Xi·Yi·Ci-1
=Xi·Yi+(Xi+Yi)·Ci-1一位加法電路──全加器Si=Xi+Yi+Ci-1
Ci
=Xi·Yi+(Xi+Yi)·Ci-1XiYiCi-1ΣSiCiXi=1&=1YiCi-1&≥1CiSi串行加法電路寄存器每接收一次移位脈沖,同時(shí)各右移1位。每次相加后得Si
計(jì)入A寄存器最左端,本位進(jìn)位送給進(jìn)位觸發(fā)器。經(jīng)過(guò)n次移位脈沖后,完成兩個(gè)n位二進(jìn)制數(shù)相加。并行加法電路兩個(gè)n位二進(jìn)制數(shù)各位同時(shí)相加。串行進(jìn)位:每個(gè)全加器得出的進(jìn)位依次向高一位傳送,從而得出每位的全加和。最后一個(gè)進(jìn)位Cn為計(jì)算機(jī)工作進(jìn)行判斷提供測(cè)試標(biāo)態(tài)。并行加/減法電路當(dāng)SUB=0時(shí),Bi’=Bi·SUB+Bi·SUB=Bi
·0+Bi·1=Bi
進(jìn)行的是A+B;當(dāng)SUB=1時(shí),Bi’=Bi
·SUB+Bi
·SUB=Bi
·1+Bi·0=Bi進(jìn)行的是A-B。并行加法電路并行進(jìn)位串行進(jìn)位的延遲時(shí)間長(zhǎng),但可節(jié)省器件,成本低。并行進(jìn)位是讓各級(jí)進(jìn)位信號(hào)同時(shí)形成。定義兩個(gè)輔助函數(shù):進(jìn)位產(chǎn)生函數(shù)——Gi=AiBi進(jìn)位傳遞函數(shù)——Pi=Ai
⊕BiGi:該位兩個(gè)輸入Ai、Bi均為1時(shí),必產(chǎn)生進(jìn)位;Pi:當(dāng)Pi=1時(shí),如果低位有進(jìn)位,本位必產(chǎn)生進(jìn)位,即低位傳來(lái)的進(jìn)位Ci-1能越過(guò)本位向更高位傳遞。Ci=Gi+PiCi-1并行加法電路并行進(jìn)位并行進(jìn)位是讓各級(jí)進(jìn)位信號(hào)同時(shí)形成。以4位加法器為例,各進(jìn)位信號(hào):C1=G1+P1C0C2=G2+P2C1=G2+P2G1+P2P1C0C3=G3+P3C2=G3+P3G2+P3P2G1+P3P2P1C0C4=G4+P4C3=G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C0由上可知:各進(jìn)位輸出信號(hào)僅由Gi、Pi和C0決定;Gi和Pi只與Ai和Bi有關(guān),即Gi和Pi的形成是同時(shí)的,所以Ci也是同時(shí)形成的。并行加法電路并行進(jìn)位⊕A1B1G1P1⊕C0S1⊕A2B2G2P2+C1⊕S2C2⊕A3B3G3P3⊕S3++C3⊕A4B4G4P4⊕S4并行加法電路并行進(jìn)位并行進(jìn)位加法器速度快,但增加了硬件邏輯線路的復(fù)雜度,當(dāng)加法器位數(shù)增加時(shí),進(jìn)位信號(hào)Ci+1的邏輯式變得越來(lái)越復(fù)雜,可能超出實(shí)用器件規(guī)定的輸入數(shù)。目前實(shí)際采用的做法:將加法器分組,組內(nèi)采用并行進(jìn)位,組間采用串行進(jìn)位或并行進(jìn)位。定點(diǎn)加法、減法運(yùn)算
一、補(bǔ)碼加法運(yùn)算
[x]補(bǔ)+[y]補(bǔ)=[x+y]補(bǔ)(mod2)符號(hào)位也要與數(shù)值部分一樣參加運(yùn)算。符號(hào)運(yùn)算后如有進(jìn)位出現(xiàn),則舍去進(jìn)位。二、補(bǔ)碼減法
[x-y]補(bǔ)=[x]補(bǔ)-[y]補(bǔ)=[x]補(bǔ)+[-y]補(bǔ)(mod2)[-y]補(bǔ)
=對(duì)[y]補(bǔ)各位(包括符號(hào)位)取反且末位加1定點(diǎn)加法、減法運(yùn)算
三、補(bǔ)碼運(yùn)算規(guī)則參加運(yùn)算的操作數(shù)用補(bǔ)碼表示。符號(hào)位參加運(yùn)算。若指令操作碼是加,則兩數(shù)直接相加;若指令操作碼是減,則將減數(shù)連同符號(hào)位一起變反加1后再與被減數(shù)相加。定點(diǎn)加法、減法運(yùn)算例:已知,X=-0.1010Y=-0.0101
求:[X]補(bǔ)+[Y]補(bǔ)解:
[X]補(bǔ)=1.0110+[Y]補(bǔ)=1.1011[X+Y]補(bǔ)=11.0001
舍去不要定點(diǎn)加法、減法運(yùn)算例:已知,X=0.1101Y=-0.0001
求:X+Y=?解:
[X]補(bǔ)=0.1101+[Y]補(bǔ)=1.1111[X+Y]補(bǔ)=10.1100
舍去不要所以,X+Y=0.1100定點(diǎn)加法、減法運(yùn)算四、溢出概念及檢測(cè)方法
上溢:兩個(gè)正數(shù)相加,結(jié)果大于機(jī)器所能表示的最大正數(shù)。下溢:兩個(gè)負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù)。溢出判斷規(guī)則與判斷方法兩個(gè)相同符號(hào)數(shù)相加,其運(yùn)算結(jié)果符號(hào)與被加數(shù)相同,若相反則產(chǎn)生溢出;兩個(gè)相異符號(hào)數(shù)相減,其運(yùn)算結(jié)果符號(hào)與被減數(shù)相同,否則產(chǎn)生溢出。相同符號(hào)數(shù)相減,相異符號(hào)數(shù)相加不會(huì)產(chǎn)生溢出。溢出判斷方法:1.雙符號(hào)法,2.進(jìn)位判斷法定點(diǎn)加法、減法運(yùn)算四、溢出概念及檢測(cè)方法
上溢:兩個(gè)正數(shù)相加,結(jié)果大于機(jī)器所能表示的最大正數(shù)。下溢:兩個(gè)負(fù)數(shù)相加,結(jié)果小于機(jī)器所能表示的最小負(fù)數(shù)。例如,某機(jī)器字長(zhǎng)為8位,采用補(bǔ)碼表示,則定點(diǎn)整數(shù)的表示范圍是-128~127。如果[X]補(bǔ)=01000011,[Y]補(bǔ)=01000100,則[X+Y]補(bǔ)=?
[X]補(bǔ)=01000011[Y]補(bǔ)=01000100[X+Y]補(bǔ)=10000111真值=-1111001=-12167+68=135上溢!定點(diǎn)加法、減法運(yùn)算四、溢出概念及檢測(cè)方法
1.雙符號(hào)位溢出判斷法Sf1⊕Sf2(也稱(chēng)為變形補(bǔ)碼)雙符號(hào)含義:00——運(yùn)算結(jié)果為正數(shù);01——運(yùn)算結(jié)果正向溢出;10——運(yùn)算結(jié)果負(fù)向溢出;11——運(yùn)算結(jié)果為負(fù)數(shù)。亦即:OVR=Sf1⊕Sf2=1有溢出
OVR=Sf1⊕Sf2=0無(wú)溢出注意:操作數(shù)及結(jié)果在寄存器中仍用一個(gè)符號(hào)位,只是在運(yùn)算時(shí)擴(kuò)充為雙符號(hào)位。第一位符號(hào)位為結(jié)果的真正符號(hào)位定點(diǎn)加法、減法運(yùn)算四、溢出概念及檢測(cè)方法
1.雙符號(hào)位溢出判斷法Sf1⊕Sf2(也稱(chēng)為變形補(bǔ)碼)例:X=0.1001,Y=0.0101,求X+Y
解:[X]補(bǔ)
=00.1001+[Y]補(bǔ)
=00.0101[X+Y]補(bǔ)=00.1110
兩個(gè)符號(hào)位相同,運(yùn)算結(jié)果無(wú)溢出
X+Y=+0.1110定點(diǎn)加法、減法運(yùn)算三、溢出概念及檢測(cè)方法
1.雙符號(hào)位溢出判斷法Sf1⊕Sf2(也稱(chēng)為變形補(bǔ)碼)例:X=-0.1001,Y=-0.0101,求X+Y
解:[X]補(bǔ)=11.0110+1=11.0111+[Y]補(bǔ)=11.1010+1=11.1011[X+Y]補(bǔ)
=111.0010
丟棄 兩個(gè)符號(hào)位相同,運(yùn)算結(jié)果無(wú)溢出
X+Y=-0.1110定點(diǎn)加法、減法運(yùn)算三、溢出概念及檢測(cè)方法
1.雙符號(hào)位溢出判斷法Sf1⊕Sf2(也稱(chēng)為變形補(bǔ)碼)例:X=0.1011,Y=0.0111,求X+Y
解:[X]補(bǔ)=00.1011+[Y]補(bǔ)=00.0111[X+Y]補(bǔ)=01.0010
兩個(gè)符號(hào)位為01,運(yùn)算結(jié)果正向溢出定點(diǎn)加法、減法運(yùn)算三、溢出概念及檢測(cè)方法
1.雙符號(hào)位溢出判斷法Sf1⊕Sf2(也稱(chēng)為變形補(bǔ)碼)例:X=-0.1011,Y=0.0111,求X-Y
解:[X]補(bǔ)
=11.0100+1=11.0101[Y]補(bǔ)
=00.0111;
[-Y]補(bǔ)
=11.1001
所以[X]補(bǔ)
=11.0101+[-Y]補(bǔ)
=11.1001[X+Y]補(bǔ)
=110.1110
兩個(gè)符號(hào)位10不同,運(yùn)算結(jié)果負(fù)向溢出定點(diǎn)加法、減法運(yùn)算三、溢出概念及檢測(cè)方法
2.單符號(hào)位進(jìn)位溢出判斷法S⊕C兩單符號(hào)位的補(bǔ)碼進(jìn)行加減運(yùn)算時(shí),若最高數(shù)值位向符號(hào)位的進(jìn)位值C與符號(hào)位產(chǎn)生的進(jìn)位S相同時(shí)則無(wú)溢出,否則溢出。例:
[X]補(bǔ)=1.101[X]補(bǔ)=1.110+[Y]補(bǔ)=1.001+[Y]補(bǔ)=0.100[X+Y]補(bǔ)=10.110[X+Y]補(bǔ)=10.010
C=0,S=1,有溢出C=1,S=1,無(wú)溢出
十進(jìn)制數(shù)加減運(yùn)算使計(jì)算機(jī)能直接輸入和輸出十進(jìn)制數(shù)的方法:1.進(jìn)制轉(zhuǎn)換用軟件方法將輸入的十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù),然后在計(jì)算機(jī)內(nèi)部進(jìn)行二進(jìn)制數(shù)處理,再將所得結(jié)果轉(zhuǎn)換為十進(jìn)制數(shù)輸出。2.直接進(jìn)行十進(jìn)制數(shù)運(yùn)算機(jī)器提供十進(jìn)制數(shù)運(yùn)算指令,機(jī)器內(nèi)部采用二-十進(jìn)制數(shù)(BCD碼)表示十進(jìn)制數(shù),實(shí)現(xiàn)方法:機(jī)器指令系統(tǒng)中設(shè)專(zhuān)用BCD碼運(yùn)算指令。先用二進(jìn)制數(shù)的運(yùn)算指令進(jìn)行運(yùn)算,再用BCD碼校正指令對(duì)運(yùn)算結(jié)果進(jìn)行校正。十進(jìn)制數(shù)加減運(yùn)算3.BCD碼加法運(yùn)算先將BCD碼表示的十進(jìn)制數(shù)按二進(jìn)制數(shù)運(yùn)算規(guī)則進(jìn)行運(yùn)算,如果和小于等于9,則不必校正;如果和大于9,則將和再加6,得到和的BCD碼形式。4位二進(jìn)制數(shù)逢16進(jìn)位,BCD碼逢10進(jìn)位,二者相差6。例,28+9=37,00101000+00001001=?0010100011001001110001+0110+0011
0111校正值十進(jìn)制數(shù)加減運(yùn)算3.BCD碼加法運(yùn)算一位BCD加法器單元設(shè)計(jì):先用一個(gè)4位二進(jìn)制加法器來(lái)執(zhí)行一位BCD碼數(shù)據(jù)Xi和Yi的運(yùn)算。設(shè)S‘i代表這樣得到的4位二進(jìn)數(shù)和,C’i
+1為輸出進(jìn)位;Si代表正確的BCD和,Ci+1代表正確的進(jìn)位,那么:當(dāng)Xi+Yi+Ci<=9時(shí),Si=S‘i
;否則,Si=S'i+6。十進(jìn)制數(shù)加減運(yùn)算3.BCD碼加法運(yùn)算例如,X=1000,Y=1001X=0110,Y=01001100000111000100111000010100移位運(yùn)算移位運(yùn)算是實(shí)現(xiàn)算術(shù)和邏輯運(yùn)算不可缺少的基本操作。按移位性質(zhì)有3種類(lèi)型:邏輯移位、循環(huán)移位和算術(shù)移位。按被移位數(shù)據(jù)長(zhǎng)度分為:字節(jié)移位、半字長(zhǎng)移位和多倍字長(zhǎng)移位。按每次移位的位數(shù)分為:移1位、移n位(n<=被移位數(shù)據(jù)長(zhǎng)度)。移位指令應(yīng)指明移位性質(zhì)、被移數(shù)據(jù)長(zhǎng)度和一次移位的位數(shù)。移位運(yùn)算
邏輯右移0110101100110101移掉補(bǔ)00110101110110101循環(huán)右移1101001011101001補(bǔ)碼算術(shù)右移移掉不變1101001010100100補(bǔ)碼算術(shù)左移補(bǔ)0移掉定點(diǎn)乘法運(yùn)算實(shí)現(xiàn)乘除法的方案(1)軟件實(shí)現(xiàn):使用原有的運(yùn)算器設(shè)備,運(yùn)用基本運(yùn)算指令編制實(shí)現(xiàn)乘、除法運(yùn)算的子程序。(2)在原有加減運(yùn)算器的基礎(chǔ)上增加一些硬件設(shè)備來(lái)實(shí)現(xiàn)乘、除法運(yùn)算。(3)設(shè)置專(zhuān)用的乘/除法器,加快運(yùn)算速度。定點(diǎn)乘法運(yùn)算一、原碼1位乘法
兩個(gè)原碼表示的數(shù)的乘法規(guī)則:乘積的符號(hào)位由兩數(shù)的符號(hào)“異或”運(yùn)算得到,乘積的數(shù)值部分是兩個(gè)正數(shù)相乘之積。設(shè)n位被乘數(shù)和常數(shù)用定點(diǎn)小數(shù)表示:被乘數(shù)[x]原=xf.x0x1x2…xn;乘數(shù)[y]原=yf.y1y2y3…yn則乘積[z]原
=(xf⊕yf).(0.x0x1x2…xn)(0.y1y2y3…yn)xf
和yf
分別為被乘數(shù)和乘數(shù)的符號(hào)。定點(diǎn)乘法運(yùn)算一、原碼1位乘法
例如:x=0.1101,y=0.1011,其乘積:
0.1101(x)×0.1011(y)110111010000+11010.10001111(z)定點(diǎn)乘法運(yùn)算一、原碼1位乘法
人工運(yùn)算的乘法方法不適用于機(jī)器:機(jī)器通常只有n位長(zhǎng),兩個(gè)n位數(shù)相乘,積可能是2n位;只有兩個(gè)操作數(shù)的加法器無(wú)法將n個(gè)位積一次相加。機(jī)器實(shí)現(xiàn)方法:將x×y改寫(xiě)為適用于定點(diǎn)機(jī)的形式。設(shè)被乘數(shù)x、乘數(shù)y都是小于1的n位定點(diǎn)正數(shù):
x=0.x1x2…xn
;y=0.y1y2…yn其乘積為:
x·y
=x·(0.y1y2…yn
)=x·(y12-1+y22-2+…+yn2-n)=2-1(y1x+2-1(y2x+2-1(…+2-1(yn-1x+)…)定點(diǎn)乘法運(yùn)算一、原碼1位乘法
乘積:x·y
=2-1(y1x+2-1(y2x+2-1(…+2-1(yn-1x+)…)令zi
表示第i次部分積,則上式可寫(xiě)成如下遞推公式:
z0=0
z1=2-1(ynx+z0)
…
zi
=2-1(yn-i+1x+zi-1)
…
zn=x·y=2-1(y1x+zn-1)定點(diǎn)乘法運(yùn)算一、原碼1位乘法zi
=2-1(yn-i+1x+zi-1)
欲求x·y,則需設(shè)置一個(gè)保存部分積的累加器。乘法開(kāi)始時(shí),令部分積的初值z(mì)0=0,然后加上ynx,再右移一位得到第一個(gè)部分積;又加上yn-1x,再右移一位得到第2個(gè)部分積;……依次類(lèi)推,直到求得y1x加上zn-1并右移一位得到最后部分積,即x·y
。兩個(gè)n位數(shù)相乘需重復(fù)進(jìn)行n次“加”及“右移”操作。定點(diǎn)乘法運(yùn)算一、原碼1位乘法定點(diǎn)乘法運(yùn)算二、補(bǔ)碼一位乘法原碼乘法的符號(hào)位不能參加運(yùn)算,單獨(dú)用一個(gè)“異或”門(mén)產(chǎn)生乘積的符號(hào)位。補(bǔ)碼乘法可以實(shí)現(xiàn)符號(hào)位直接參加運(yùn)算。1、補(bǔ)碼與真值的轉(zhuǎn)換公式設(shè)[x]補(bǔ)
=x0.x1x2…xn2、補(bǔ)碼的右移用補(bǔ)碼表示時(shí),連同符號(hào)位向右移一位,若符號(hào)位保持不變,相當(dāng)于乘1/2(即除2)。定點(diǎn)乘法運(yùn)算二、補(bǔ)碼一位乘法3、補(bǔ)碼乘法規(guī)則設(shè)被乘數(shù)[x]補(bǔ)
=x0.x1x2…xn,乘數(shù)[y]補(bǔ)
=y0.y1y2…yn,則有補(bǔ)碼乘法公式:[x﹒y]補(bǔ)=[x]補(bǔ)﹒[]將其展開(kāi)并加以變換:
[x﹒y]補(bǔ)=[x]補(bǔ)﹒
(yn+1=0)定點(diǎn)乘法運(yùn)算二、補(bǔ)碼一位乘法3、補(bǔ)碼乘法規(guī)則設(shè)被乘數(shù)[x]補(bǔ)
=x0.x1x2…xn,乘數(shù)[y]補(bǔ)
=y0.y1y2…yn,寫(xiě)成遞推公式:[z0]補(bǔ)
=0[z1]補(bǔ)
=2-1{[z0]補(bǔ)+(yn+1-yn)[x]補(bǔ)} (yn+1=0) …[zi]補(bǔ)
=2-1{[zi-1]補(bǔ)+(yn-i+2-yn-i+1)[x]補(bǔ)} …[zn]補(bǔ)
=2-1{[zn-1]補(bǔ)+(y2-y1)[x]補(bǔ)}[zn+1]補(bǔ)
=[zn]補(bǔ)+(y1-y0)[x]補(bǔ)
=[x·y]補(bǔ)
定點(diǎn)乘法運(yùn)算二、補(bǔ)碼一位乘法3、補(bǔ)碼乘法規(guī)則[zi]補(bǔ)
=2-1{[zi-1]補(bǔ)+(yn-i+2-yn-i+1)[x]補(bǔ)}開(kāi)始時(shí),部分積[z0]補(bǔ)
=0,然后每一步都是在前次部分積的基礎(chǔ)上,由(yi+1-yi)決定對(duì)[x]補(bǔ)的操作,再右移1位,得到新的部分積。重復(fù)n+1步,得到[x·y]補(bǔ)。在實(shí)現(xiàn)乘法規(guī)則時(shí),在乘數(shù)最末位后增加一位補(bǔ)充位yn+1
。開(kāi)始時(shí),由ynyn+1判斷第一步怎么操作;然后再由yn-1yn判斷第二步的操作。重復(fù)n+1步,但最后一步不移位。如果ynyn+1=01,則做加[x]補(bǔ)操作;如果ynyn+1=10,則做加[-x]補(bǔ)操作,如果ynyn+1=11或00,則[zi]加0,保持不變。定點(diǎn)乘法運(yùn)算二、補(bǔ)碼一位乘法4、補(bǔ)碼一位乘法運(yùn)算規(guī)則定點(diǎn)乘法運(yùn)算二、補(bǔ)碼一位乘法4、補(bǔ)碼一位乘法運(yùn)算規(guī)則例:x*y=0.1101×(-0.1011)00000部分積z101010乘數(shù)y[x]補(bǔ)
=01101[y]補(bǔ)
=10101[-x]補(bǔ)
=10011yn+1
11001110101(Step1,yyn+1=10,z+[-x]補(bǔ),右移)
00011011010(Step2,yyn+1=01,z+[x]補(bǔ),右移)
11011001101(Step3,yyn+1=10,z+[-x]補(bǔ),右移)
00100000110(Step4,yyn+1=01,z+[x]補(bǔ),右移)
11011100011(Step5,yyn+1=10,z+[-x]補(bǔ),右移)
11101110001(Step6,yyn+1=11,z+0)定點(diǎn)乘法運(yùn)算三、陣列乘法器“串行移位”和“并行加法”相結(jié)合的方法不需要很多器件。然而速度太慢,執(zhí)行一次乘法的時(shí)間至少是執(zhí)行一次加法時(shí)間的n倍。高速的單元陣列乘法器屬于并行乘法器,速度快。
1.不帶符號(hào)的陣列乘法器設(shè)有兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù):
A=am-1…a1a0;
B=bn-1…b1b0
乘積定點(diǎn)乘法運(yùn)算三、陣列乘法器
1.不帶符號(hào)的陣列乘法器設(shè)有兩個(gè)不帶符號(hào)的二進(jìn)制整數(shù):
A=am-1…a1a0;
B=bn-1…b1b0定點(diǎn)乘法運(yùn)算三、陣列乘法器
1.不帶符號(hào)的陣列乘法器m位×n位不帶符號(hào)的陣列乘法器邏輯框圖定點(diǎn)乘法運(yùn)算三、陣列乘法器
1.不帶符號(hào)的陣列乘法器FA是5位×5位一位全加器,斜線方向?yàn)檫M(jìn)位輸出,豎線方向?yàn)楹洼敵?,定點(diǎn)除法運(yùn)算一、原碼一位除法
被除數(shù):[x]原=xf.x1x2…
xn
,除數(shù):[y]原=yf.y1y2…
yn商:[q]原
=(xf
⊕yf).(x1x2…
xn/y1y2…
yn)設(shè)被除數(shù)x=0.1001,除數(shù)y=0.1011,手算求x÷y0.100100.010110.0011100.0010110.00001100.00010110.000011000.000010110.000000010.10110.1101--商余數(shù)除數(shù)右移1位,減除數(shù)右移1位,減除數(shù)右移1位,不減除數(shù)右移1位,減-定點(diǎn)除法運(yùn)算一、原碼一位除法
在計(jì)算機(jī)中,小數(shù)點(diǎn)是固定的,所以不能采用手算方法。機(jī)器操作:除數(shù)y固定不動(dòng),使被除數(shù)和余數(shù)左移(相當(dāng)于乘2),效果與手算相同。設(shè)x=0.1001,除數(shù)y=0.1011,求x÷y定點(diǎn)除法運(yùn)算一、原碼一位除法
設(shè)x=0.1001,除數(shù)y=0.1011,求x÷y為便于減法運(yùn)算,參算的數(shù)用補(bǔ)碼表示,[-y]補(bǔ)=1.010100.100101.001011.010100.011100.111011.010100.001100.011000.110011.010100.00010.10110.1101+商x<y,商0被除數(shù)左移1位,2x>y,商1減y,即加[-y]補(bǔ)第一次余數(shù)r1左移1位,2r1>y,商1減y第二次余數(shù)r2左移1位,2r2<y,商0左移1位,2r3<y,商1減y第四次余數(shù)r4++最后的正確余數(shù)為2-4r4定點(diǎn)除法運(yùn)算一、原碼一位除法
手算法是將部分被除數(shù)或余數(shù)減去除數(shù),根據(jù)是否夠減決定商1還是商0。計(jì)算機(jī)中實(shí)現(xiàn)除法,需要解決如何判斷是否夠減:法1:用邏輯線路進(jìn)行比較判別。將被乘數(shù)或余數(shù)減去除數(shù),如果夠減就執(zhí)行一次減法并商1,否則商0,然后余數(shù)左移一位。(增加了硬件代價(jià))法2:直接做減法試探。不論是否夠減,都將被除數(shù)或余數(shù)減去除數(shù)。若所得余數(shù)符號(hào)位是0(正)表明夠減,商1;若余數(shù)符號(hào)為1(負(fù))表明不夠減,因此商0,并加上除數(shù)(即恢復(fù)余數(shù))。定點(diǎn)除法運(yùn)算一、原碼一位除法
恢復(fù)余數(shù)法運(yùn)算的各步操作不規(guī)則,導(dǎo)致控制時(shí)序的安排比較復(fù)雜和困難;在恢復(fù)余數(shù)時(shí),要多做一次加除數(shù)操作,增加了運(yùn)算時(shí)間。加減交替法(不恢復(fù)余數(shù)法):運(yùn)算過(guò)程中如出現(xiàn)不夠減,不必恢復(fù)余數(shù),根據(jù)余數(shù)符號(hào),可以繼續(xù)往下運(yùn)算。分析恢復(fù)余數(shù)法:當(dāng)余數(shù)A為正時(shí),商1,然后A左移一位再減除數(shù)B,相當(dāng)于2A-B;當(dāng)余數(shù)A為負(fù)時(shí),商0,并加除數(shù)以恢復(fù)余數(shù),然后A左移一位,相當(dāng)于2(A+B)-B=2A+B;定點(diǎn)除法運(yùn)算一、原碼一位除法
原碼加減交替法的規(guī)則:當(dāng)余數(shù)為正時(shí),商“1”,余數(shù)左移一位減除數(shù);當(dāng)余數(shù)為負(fù)時(shí),商“0”,余數(shù)左移一位,加除數(shù)。例:x=0.1001,y=0.1011,用加減交替法求x÷y
解:[x]原
=[x]補(bǔ)=0.1001;[y]原=[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.0101定點(diǎn)除法運(yùn)算一、原碼一位除法
解:[x]補(bǔ)=0.1001;[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.0101定點(diǎn)除法運(yùn)算二、補(bǔ)碼一位除法1.補(bǔ)碼加減交替法算法補(bǔ)碼加減交替除法的算法規(guī)則如下:(1)被除數(shù)與除數(shù)同號(hào),被除數(shù)與減去除數(shù);被除數(shù)與除數(shù)異號(hào),被除數(shù)加上除數(shù)。(2)余數(shù)和除數(shù)同號(hào),商為1,余數(shù)左移一位,下次減除數(shù);余數(shù)和除數(shù)異號(hào),商為0,余數(shù)左移一位,下次加除數(shù)。(3)重復(fù)步驟(2),包括符號(hào)位在內(nèi),共做n+1步。定點(diǎn)除法運(yùn)算二、補(bǔ)碼一位除法2.商的校正如果要求進(jìn)一步提高商的精度,可以不用“恒置1”的方式舍入,而按上述法則多求一位后,再采用如下校正方法對(duì)商進(jìn)行處理:(1)剛好能除盡時(shí),如果除數(shù)為正,商不必校正;如果除數(shù)為負(fù),則商加2-n。(2)不能除盡時(shí),如果商為正,則不必校正;如果商為負(fù),則商加2-n。定點(diǎn)除法運(yùn)算二、補(bǔ)碼一位除法例:x=0.1001y=0.1011,用恢復(fù)余數(shù)法求x÷y=?解:[x]原
=[x]補(bǔ)=0.1001[y]原=[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.0101定點(diǎn)除法運(yùn)算二、補(bǔ)碼一位除法例:x=0.1001y=0.1011,用恢復(fù)余數(shù)法求x÷y=?解:[x]原
=[x]補(bǔ)=0.1001[y]原=[y]補(bǔ)=0.1011,[-y]補(bǔ)=1.0101定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)運(yùn)算器是數(shù)據(jù)的加工處理部件,是中央處理器的重要組成部分。各種計(jì)算機(jī)的運(yùn)算器結(jié)構(gòu)可能不同,最基本的結(jié)構(gòu)中必須有算術(shù)/邏輯運(yùn)算單元、數(shù)據(jù)寄存器、累加器、多路轉(zhuǎn)換器和數(shù)據(jù)總線等邏輯構(gòu)件。一、多功能算術(shù)/邏輯運(yùn)算單元(ALU)ALU是一種功能較強(qiáng)的組合邏輯電路,能進(jìn)行多種算術(shù)運(yùn)算和邏輯運(yùn)算。ALU的基本邏輯結(jié)構(gòu)是超前進(jìn)位加法器,它通過(guò)改變加法器的進(jìn)位產(chǎn)生函數(shù)G和進(jìn)位傳遞函數(shù)P來(lái)獲得多種運(yùn)算能力。定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)一、多功能算術(shù)/邏輯運(yùn)算單元(ALU)SN74181型四位ALU中規(guī)模集成電路M是狀態(tài)控制端,M=1,執(zhí)行邏輯運(yùn)算;M=0,執(zhí)行算術(shù)運(yùn)算。S0至S3是運(yùn)算選擇端,它決定電路執(zhí)行哪種算術(shù)運(yùn)算或邏輯運(yùn)算。負(fù)邏輯操作數(shù)表示的74181ALU邏輯電路定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)一、多功能算術(shù)/邏輯運(yùn)算單元(ALU)SN74181型四位ALU中規(guī)模集成電路負(fù)邏輯或正邏輯操作數(shù)方式的74181ALU框圖定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)二、內(nèi)部總線
總線就是一個(gè)或多個(gè)信息源傳送信息到多個(gè)目的的數(shù)據(jù)通路,它是多個(gè)部件之間傳送信息的一級(jí)傳輸線。根據(jù)總線所處的位置,總線分為:內(nèi)部總線:CPU內(nèi)各部件的連線;外部總線:CPU與存儲(chǔ)器、I/O系統(tǒng)之間的連線。按總線的邏輯結(jié)構(gòu),總線可分為:?jiǎn)蜗蚩偩€:信息只能向一個(gè)方向傳送;雙向總線:信息可以向兩個(gè)方向傳送,即可以發(fā)送數(shù)據(jù),也可以接收數(shù)據(jù)。定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)二、內(nèi)部總線
總線的邏輯電路往往是三態(tài)的,即輸出電平有三種狀態(tài):邏輯“1”、邏輯“0”和“浮空”狀態(tài)。三態(tài)緩沖器是靠在“允許/禁止”輸入端來(lái)禁止其操作的,禁止時(shí),輸出呈現(xiàn)高阻抗?fàn)顟B(tài)。在高阻抗?fàn)顟B(tài)下,可以認(rèn)為輸出與電路的其他部分被斷開(kāi)。定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)三、定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)1、單總線結(jié)構(gòu)的運(yùn)算器在同一時(shí)間內(nèi),只能有一個(gè)操作數(shù)放在單總線上。定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)三、定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)2、雙總線結(jié)構(gòu)的運(yùn)算器兩個(gè)操作數(shù)同時(shí)加到ALU進(jìn)行運(yùn)算,只需要一次操作控制,而馬上就可以得到運(yùn)算結(jié)果。定點(diǎn)運(yùn)算器的組成和結(jié)構(gòu)三、定點(diǎn)運(yùn)算器的基本結(jié)構(gòu)3、三總線結(jié)構(gòu)的運(yùn)算器ALU的兩個(gè)輸入端分別由兩條總線供給,而ALU的輸出則與第三條總線相連。浮點(diǎn)運(yùn)算方法一、浮點(diǎn)加法和減法設(shè)有兩個(gè)浮點(diǎn)數(shù)x和y,它們分別為:其中,Ex、Ey分別為x、y的階碼,Sx、Sy分別為的尾數(shù)。完成浮點(diǎn)加減運(yùn)算的操作過(guò)程大體分為六步:浮點(diǎn)運(yùn)算方法一、浮點(diǎn)加法和減法1.0操作數(shù)檢查如果判知兩個(gè)操作數(shù)x或y中有一個(gè)數(shù)為0,即可得知運(yùn)算結(jié)果而不必要再進(jìn)行后續(xù)的操作,以節(jié)省時(shí)間。2.對(duì)階使兩數(shù)的階碼相同,這個(gè)過(guò)程叫做對(duì)階。首先應(yīng)求出兩數(shù)階碼Ex和Ey之差,即: △x=Ex–Ey對(duì)階時(shí)使小階向大階看齊,即小階的尾數(shù)向右移位(相當(dāng)于小數(shù)點(diǎn)左移),右移的位數(shù)等于階差△E。浮點(diǎn)運(yùn)算方法一、浮點(diǎn)加法和減法3.尾數(shù)求和對(duì)階完畢后就可對(duì)尾數(shù)求和。不論是加法還是減法運(yùn)算,都按加法進(jìn)行操作,其方法與定點(diǎn)加減運(yùn)算一樣。4.規(guī)格化當(dāng)尾數(shù)用二進(jìn)制表示時(shí),浮點(diǎn)規(guī)格化的定義是尾數(shù)M應(yīng)滿(mǎn)足:向左規(guī)格化:尾數(shù)左移1位,階碼減1。向右規(guī)格化,即尾數(shù)右移1位,階碼加1。浮點(diǎn)運(yùn)算方法一、浮點(diǎn)加法和減法5.舍入當(dāng)對(duì)階或向右規(guī)格化時(shí)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《營(yíng)業(yè)推廣策略》課件
- 中醫(yī)基礎(chǔ)理論習(xí)題及答案
- 【教育】浙江省高校教師高等教育法規(guī)基礎(chǔ)試題及答案
- 第一周幼兒園營(yíng)養(yǎng)食譜
- 施工單位技術(shù)負(fù)責(zé)人述職報(bào)告
- 高考新課標(biāo)語(yǔ)文模擬試卷系列之65
- 《特拉華州公司法》課件
- 交通運(yùn)輸行業(yè)安全意識(shí)培訓(xùn)總結(jié)
- 互聯(lián)網(wǎng)行業(yè)客服工作總結(jié)
- 物流行業(yè)安全工作總結(jié)
- 2024年中國(guó)陶瓷碗盆市場(chǎng)調(diào)查研究報(bào)告
- ISO 56001-2024《創(chuàng)新管理體系-要求》專(zhuān)業(yè)解讀與應(yīng)用實(shí)踐指導(dǎo)材料之22:“8運(yùn)行-8.1運(yùn)行策劃和控制”(雷澤佳編制-2025B0)
- 2024-2030年中國(guó)硅肥行業(yè)規(guī)模分析及投資前景研究報(bào)告
- 電網(wǎng)行業(yè)工作匯報(bào)模板22
- 2024年度跨境電商平臺(tái)承包經(jīng)營(yíng)合同3篇
- 2025年上半年人民日?qǐng)?bào)社招聘應(yīng)屆高校畢業(yè)生85人筆試重點(diǎn)基礎(chǔ)提升(共500題)附帶答案詳解
- 2024-2025學(xué)年一年級(jí)數(shù)學(xué)上冊(cè)期末樂(lè)考非紙筆測(cè)試題(二 )(蘇教版2024秋)
- 2024秋期國(guó)家開(kāi)放大學(xué)專(zhuān)科《高等數(shù)學(xué)基礎(chǔ)》一平臺(tái)在線形考(形考任務(wù)一至四)試題及答案
- HSE應(yīng)急預(yù)案(完整版)
- 《小學(xué)五年級(jí)期末家長(zhǎng)會(huì)》課件模板(五套)
- 2024-2024年江蘇省普通高中學(xué)業(yè)水平測(cè)試物理試卷(含答案)
評(píng)論
0/150
提交評(píng)論