資源描述:
《第3章 運(yùn)算方法和運(yùn)算部件(3)》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、3.6運(yùn)算部件1.定點(diǎn)運(yùn)算部件定點(diǎn)運(yùn)算部件由算術(shù)邏輯運(yùn)算部件ALU、若干個寄存器、移位電路、計數(shù)器、門電路等組成。實(shí)現(xiàn)定點(diǎn)運(yùn)算(算術(shù)運(yùn)算和邏輯運(yùn)算)定點(diǎn)運(yùn)算部件的框圖如圖3.9所示。考慮到最簡單的情況,圖中僅有三個寄存器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)算部件兩個部分。階碼運(yùn)算是一個定點(diǎn)整數(shù)運(yùn)算部件;尾數(shù)運(yùn)算是一個定點(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ù)傳輸過程中能自動發(fā)現(xiàn)錯誤(檢錯碼)和校正錯誤(糾錯碼)。常用的數(shù)據(jù)校驗(yàn)碼有:奇偶校驗(yàn)碼Hamming校驗(yàn)碼CRC(循環(huán)冗余校驗(yàn))碼檢錯和糾錯實(shí)現(xiàn)原理通過函數(shù)f對數(shù)據(jù)進(jìn)行計算,以產(chǎn)生一種代碼,代碼和數(shù)據(jù)都被存儲,因此如果原來數(shù)據(jù)字長為M位,校驗(yàn)碼長為K位,則實(shí)際存儲的字長應(yīng)該是M+K位。當(dāng)原先存儲的字讀出時,這個代碼用于檢錯和
3、糾錯,在M位數(shù)據(jù)中產(chǎn)生一組新的K位代碼,與取出的代碼進(jìn)行比較:結(jié)果一致,無差錯,取出的數(shù)據(jù)位傳送出去;檢測到差錯,并可以糾正,數(shù)據(jù)位和糾錯位一起送入糾正器,然后產(chǎn)生一組正確的M位數(shù)據(jù)位;檢測到差錯,但無法糾正,報告出錯。檢錯和糾錯f存儲器比較f糾正器數(shù)據(jù)輸出出錯信號數(shù)據(jù)輸入MMMKKK奇偶校驗(yàn)碼編碼方法:不管數(shù)據(jù)位長度多少,校驗(yàn)位只有一位。數(shù)據(jù)位和校驗(yàn)位一起所含“1”的個數(shù),只能是奇數(shù),稱為奇校驗(yàn)。數(shù)據(jù)位和校驗(yàn)位一起所含“1”的個數(shù),只能是偶數(shù),稱為偶校驗(yàn)。例:數(shù)據(jù)奇校驗(yàn)的編碼偶校驗(yàn)的編碼00000000100000000000000000010101000010101001010101000
4、1111111001111111101111111奇偶校驗(yàn)碼校驗(yàn)位的值取0還是1,是由數(shù)據(jù)位中1的個數(shù)決定的。這種方法只能發(fā)現(xiàn)一位錯(或奇數(shù)個位錯),但不能確定是哪一位錯,也不能發(fā)現(xiàn)偶數(shù)個位錯。但是,一位出錯的幾率比多位同時出錯的幾率高得多,因此該方法還是有很好的實(shí)用價值。奇偶校驗(yàn)碼常用于存儲器讀寫檢查,或ASCII字符傳送過程中的檢查。奇偶校驗(yàn)位的形成及校驗(yàn)電路見圖3.10。海明校驗(yàn)碼海明校驗(yàn)碼不僅能發(fā)現(xiàn)出錯,而且還能指出哪一位出錯。(并可發(fā)現(xiàn)2位錯。)設(shè)有r位校驗(yàn)位,則共有0到2r-1個共2r個組合。若用0表示無差錯,則剩余2r-1個值表示有差錯,并指出錯在第幾位。由于差錯可能發(fā)生在k個數(shù)
5、據(jù)位中或r個校驗(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,…)的位置上例:有一個BCD碼為D4D3D2D1,由此生成一個海明碼7654321D4D3D2P3D1P2P1222120有一字節(jié)的信息需生成海明碼D8D7D6D5P4D4D3D2P3D1P2P184211位糾錯海明碼的實(shí)現(xiàn)把M+K=m個數(shù)據(jù)=>HmHm-1
6、...H2H1(海明碼),每個校驗(yàn)位Pi在海明碼中被分配在2i-1位置上。Hi由多個校驗(yàn)位校驗(yàn):每個海明碼的位號要等于參與校驗(yàn)它的幾個檢驗(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位糾錯2位檢錯海明碼如果要分清是兩位出錯還是一位出錯,還要補(bǔ)充一個總校驗(yàn)位P5,使:P5=M1?M2?M3?M4?M
7、5?M6?M7?M8?P4?P3?P2?P1在這種安排中,每一位數(shù)據(jù)位都至少出現(xiàn)在3個Pi值的形成關(guān)系中。當(dāng)任一位數(shù)據(jù)碼發(fā)生變化時,必將引起3個或4個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