資源描述:
《第3章 運(yùn)算方法和運(yùn)算部件(3)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、3.6運(yùn)算部件1.定點(diǎn)運(yùn)算部件定點(diǎn)運(yùn)算部件由算術(shù)邏輯運(yùn)算部件ALU、若干個(gè)寄存器、移位電路、計(jì)數(shù)器、門電路等組成。實(shí)現(xiàn)定點(diǎn)運(yùn)算(算術(shù)運(yùn)算和邏輯運(yùn)算)定點(diǎn)運(yùn)算部件的框圖如圖3.9所示??紤]到最簡單的情況,圖中僅有三個(gè)寄存器A、B、C。定點(diǎn)運(yùn)算部件框圖A,B,C寄存器的作用運(yùn)算A寄存器B寄存器C寄存器加法被加數(shù)運(yùn)算結(jié)果加數(shù)無用減法被減數(shù)運(yùn)算結(jié)果減數(shù)無用乘法部分積乘積高位被乘數(shù)乘數(shù)乘積低位除法被除數(shù)余數(shù)除數(shù)商表3.7A,B,C寄存器的作用浮點(diǎn)運(yùn)算器根據(jù)浮點(diǎn)運(yùn)算算法,浮點(diǎn)運(yùn)算器一般包括階碼運(yùn)算部件和尾數(shù)運(yùn)算部件兩個(gè)部分。階碼運(yùn)算是一個(gè)定點(diǎn)整數(shù)運(yùn)算部件;尾數(shù)運(yùn)算是一個(gè)定點(diǎn)小數(shù)運(yùn)算部件。Intel8028
2、7支持80位浮點(diǎn)數(shù)運(yùn)算,其中階碼16位,尾數(shù)64位。關(guān)鍵運(yùn)算部件有:指數(shù)模塊:通過指數(shù)總線從寄存器中獲得運(yùn)算的階碼,運(yùn)算結(jié)果通過指數(shù)總線送回寄存器棧。算術(shù)運(yùn)算部件:負(fù)責(zé)尾數(shù)的四則運(yùn)算。可編程移位器:尾數(shù)的移位。返回3.7數(shù)據(jù)校驗(yàn)碼通過在數(shù)據(jù)位中加入一些冗余位,從而達(dá)到在數(shù)據(jù)傳輸過程中能自動(dòng)發(fā)現(xiàn)錯(cuò)誤(檢錯(cuò)碼)和校正錯(cuò)誤(糾錯(cuò)碼)。常用的數(shù)據(jù)校驗(yàn)碼有:奇偶校驗(yàn)碼Hamming校驗(yàn)碼CRC(循環(huán)冗余校驗(yàn))碼檢錯(cuò)和糾錯(cuò)實(shí)現(xiàn)原理通過函數(shù)f對數(shù)據(jù)進(jìn)行計(jì)算,以產(chǎn)生一種代碼,代碼和數(shù)據(jù)都被存儲(chǔ),因此如果原來數(shù)據(jù)字長為M位,校驗(yàn)碼長為K位,則實(shí)際存儲(chǔ)的字長應(yīng)該是M+K位。當(dāng)原先存儲(chǔ)的字讀出時(shí),這個(gè)代碼用于檢錯(cuò)和
3、糾錯(cuò),在M位數(shù)據(jù)中產(chǎn)生一組新的K位代碼,與取出的代碼進(jìn)行比較:結(jié)果一致,無差錯(cuò),取出的數(shù)據(jù)位傳送出去;檢測到差錯(cuò),并可以糾正,數(shù)據(jù)位和糾錯(cuò)位一起送入糾正器,然后產(chǎn)生一組正確的M位數(shù)據(jù)位;檢測到差錯(cuò),但無法糾正,報(bào)告出錯(cuò)。檢錯(cuò)和糾錯(cuò)f存儲(chǔ)器比較f糾正器數(shù)據(jù)輸出出錯(cuò)信號數(shù)據(jù)輸入MMMKKK奇偶校驗(yàn)碼編碼方法:不管數(shù)據(jù)位長度多少,校驗(yàn)位只有一位。數(shù)據(jù)位和校驗(yàn)位一起所含“1”的個(gè)數(shù),只能是奇數(shù),稱為奇校驗(yàn)。數(shù)據(jù)位和校驗(yàn)位一起所含“1”的個(gè)數(shù),只能是偶數(shù),稱為偶校驗(yàn)。例:數(shù)據(jù)奇校驗(yàn)的編碼偶校驗(yàn)的編碼00000000100000000000000000010101000010101001010101000
4、1111111001111111101111111奇偶校驗(yàn)碼校驗(yàn)位的值取0還是1,是由數(shù)據(jù)位中1的個(gè)數(shù)決定的。這種方法只能發(fā)現(xiàn)一位錯(cuò)(或奇數(shù)個(gè)位錯(cuò)),但不能確定是哪一位錯(cuò),也不能發(fā)現(xiàn)偶數(shù)個(gè)位錯(cuò)。但是,一位出錯(cuò)的幾率比多位同時(shí)出錯(cuò)的幾率高得多,因此該方法還是有很好的實(shí)用價(jià)值。奇偶校驗(yàn)碼常用于存儲(chǔ)器讀寫檢查,或ASCII字符傳送過程中的檢查。奇偶校驗(yàn)位的形成及校驗(yàn)電路見圖3.10。海明校驗(yàn)碼海明校驗(yàn)碼不僅能發(fā)現(xiàn)出錯(cuò),而且還能指出哪一位出錯(cuò)。(并可發(fā)現(xiàn)2位錯(cuò)。)設(shè)有r位校驗(yàn)位,則共有0到2r-1個(gè)共2r個(gè)組合。若用0表示無差錯(cuò),則剩余2r-1個(gè)值表示有差錯(cuò),并指出錯(cuò)在第幾位。由于差錯(cuò)可能發(fā)生在k個(gè)數(shù)
5、據(jù)位中或r個(gè)校驗(yàn)位中,因此有:2r–1≥r+k海明校驗(yàn)碼的校驗(yàn)位數(shù)根據(jù)數(shù)據(jù)位k與校驗(yàn)位r的關(guān)系:2r≥k+r+1,可以得到下表:數(shù)據(jù)位k校驗(yàn)位r總位數(shù)n1232~435~75~1149~1512~26517~3127~57633~6358~120765~127海明校驗(yàn)碼的校驗(yàn)位置校驗(yàn)位和數(shù)據(jù)位是如何排列的?校驗(yàn)位排列在2i–1(i=1,2,…)的位置上例:有一個(gè)BCD碼為D4D3D2D1,由此生成一個(gè)海明碼7654321D4D3D2P3D1P2P1222120有一字節(jié)的信息需生成海明碼D8D7D6D5P4D4D3D2P3D1P2P184211位糾錯(cuò)海明碼的實(shí)現(xiàn)把M+K=m個(gè)數(shù)據(jù)=>HmHm-1
6、...H2H1(海明碼),每個(gè)校驗(yàn)位Pi在海明碼中被分配在2i-1位置上。Hi由多個(gè)校驗(yàn)位校驗(yàn):每個(gè)海明碼的位號要等于參與校驗(yàn)它的幾個(gè)檢驗(yàn)位的位號之和。盡量增大合法碼的碼距。舉例:M=8,K=4,則海明碼為:H12H11H10H9H8H7H6H5H4H3H2H1P4,P3,P2,P1根據(jù)規(guī)則,分別對應(yīng)于:H8,H4,H2,H1于是有(詳細(xì)過程見表3.9):P1=M1?M2?M4?M5?M7P2=M1?M3?M4?M6?M7P3=M2?M3?M4?M8P4=M5?M6?M7?M81位糾錯(cuò)2位檢錯(cuò)海明碼如果要分清是兩位出錯(cuò)還是一位出錯(cuò),還要補(bǔ)充一個(gè)總校驗(yàn)位P5,使:P5=M1?M2?M3?M4?M
7、5?M6?M7?M8?P4?P3?P2?P1在這種安排中,每一位數(shù)據(jù)位都至少出現(xiàn)在3個(gè)Pi值的形成關(guān)系中。當(dāng)任一位數(shù)據(jù)碼發(fā)生變化時(shí),必將引起3個(gè)或4個(gè)Pi值跟著變化,該海明碼的碼距為4。按如下關(guān)系對所得到的海明碼實(shí)現(xiàn)偶校驗(yàn):S1=P1?M1?M2?M4?M5?M7S2=P2?M1?M3?M4?M6?M7S3=P3?M2?M3?M4?M8S4=P4?M5?M6?M7?M8S5=P5?P4?P3?P2