最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

計(jì)算機(jī)組成原理(二)——數(shù)據(jù)的表示和運(yùn)算

2023-01-29 19:30 作者:UCLmsc  | 我要投稿
  • 1 機(jī)器數(shù)及其特點(diǎn)

    • 1.1 需考慮的因素

      • 支持的數(shù)據(jù)類型、能表示的數(shù)據(jù)范圍、能表示的數(shù)據(jù)精度、存儲(chǔ)和處理的代價(jià)、是否有利于軟件移植

    • 1.2 機(jī)器內(nèi)的數(shù)據(jù)表示

      • 真值:+、-

      • 機(jī)器數(shù):0、1

      • 常見機(jī)器數(shù)

      • 移碼:[X]_移(正負(fù)數(shù)都是2^n + X),表示浮點(diǎn)數(shù)的階碼。數(shù)值位與X的補(bǔ)碼相同,符號位與補(bǔ)碼相反。

      • 補(bǔ)碼:[X]_補(bǔ)(正數(shù)X,負(fù)數(shù)2^(n + 1) + X ?mod ?2^(n + 1))

      • 反碼:[X]_反(正數(shù)X,負(fù)數(shù)2^(n + 1) + X - 1),運(yùn)算相對原碼簡單-符號位參加運(yùn)算沒只需要設(shè)置加法器,但符號位的僅為需要加到最低位;0的表示不唯一。

      • 原碼:[X]_原(正數(shù)X,負(fù)數(shù)2^n - X);符號位不參加運(yùn)算,要設(shè)置加法、減法器;0的表示不唯一。

  • 2 定點(diǎn)與浮點(diǎn)數(shù)據(jù)表示

    • 2.1 定點(diǎn)數(shù)據(jù)表示

      • 可表示定點(diǎn)小數(shù)和整數(shù),定點(diǎn)小數(shù)X_0.X_1X_2......X_n,定點(diǎn)整數(shù)X_0X_1X_2......X_n.(小數(shù)點(diǎn)的位置不一樣);定點(diǎn)小數(shù)表示數(shù)的范圍-1≤x≤1-2^-n,定點(diǎn)整數(shù)表示數(shù)的范圍-2^n≤x≤2^n - 1。

      • 定點(diǎn)數(shù)據(jù)表示數(shù)的不足:數(shù)據(jù)表示范圍受字長限制。

      • 定點(diǎn)整數(shù)的編碼表示:原碼、反碼、補(bǔ)碼、移碼;定點(diǎn)小數(shù)的編碼表示:原碼、反碼、補(bǔ)碼。

      • 定點(diǎn)小數(shù)和定點(diǎn)整數(shù)再位數(shù)擴(kuò)展時(shí),拓展位置不一樣。如4bit→8bit,小數(shù)[x]原=1.110→[x]原=1.1100000;整數(shù)[x]原=1,110→[x]原=1,0000110。

  • 2.2 浮點(diǎn)數(shù)據(jù)表示

    • 是把數(shù)的范圍和精度分別表示的一種數(shù)據(jù)表示方法。

    • 使用場合:當(dāng)數(shù)的表示范圍超出了定點(diǎn)數(shù)能表示的范圍時(shí)。

    • 一般格式:N = 2^e×m,e階碼位數(shù),決定數(shù)據(jù)范圍;m尾數(shù)位數(shù),決定數(shù)的精度。

    • IEEE 754格式:單精度(8位偏指數(shù)E+32位有效尾數(shù)M);雙精度(11位偏質(zhì)數(shù)E + 52位有效尾數(shù)M)。指數(shù)采用偏移值,其中單精度偏移值為127,雙精度為1023,將浮點(diǎn)數(shù)的階碼值變成非負(fù)整數(shù),便于浮點(diǎn)數(shù)的比較和排序IEEE754尾數(shù)形式為1.XXXXXX,其中M部分保存的是XXXXXX(1被隱藏),從而可保留更多的有效位,提高數(shù)據(jù)表示的精確度。

    3 常用數(shù)據(jù)校驗(yàn)方法

    ????校驗(yàn)的必要性:受元器件的質(zhì)量、電路故障或噪音干擾等因素的影響,數(shù)據(jù)在被處理、傳輸、存儲(chǔ)的過程中可能出現(xiàn)錯(cuò)誤;若能設(shè)計(jì)硬件層面的錯(cuò)誤檢測機(jī)制,可以減少基于軟件檢錯(cuò)的代價(jià)(系統(tǒng)觀)。

    • 3.1 數(shù)據(jù)校驗(yàn)的基本原理

      • 基本原理:增加冗余碼(校驗(yàn)位)——有效信息(k位),校驗(yàn)信息(r位)。

      • 碼距的概念:即編碼的距離——同一編碼中,任意兩個(gè)合法編碼之間不同二進(jìn)數(shù)位數(shù)的最小值。如0011與0001的碼距位1,一位錯(cuò)誤時(shí)無法識(shí)別;而0000、0011、0101、0110、1001、1010、1100、1111等編碼碼距為2。任何一位發(fā)生改變,如0000變成1000就從有效編碼變成了無效編碼,容易檢測到這種錯(cuò)誤。校驗(yàn)碼中增加冗余項(xiàng)的目的就是為了增大碼距。

      • 碼距與檢錯(cuò)或糾錯(cuò)能力的關(guān)系:①碼距≥e+1:可檢測e個(gè)錯(cuò)誤。②碼距≥2t+1:可糾正t個(gè)錯(cuò)誤。③碼距≥e+t+1:可糾正t個(gè)錯(cuò)誤,同時(shí)檢測e個(gè)錯(cuò)誤(e≥t)。

      • 選擇碼距要考慮的因素:碼距越大,抗干擾能力越強(qiáng),糾錯(cuò)能力越強(qiáng),數(shù)據(jù)冗余越大,編碼效率低,編碼電路也相對復(fù)雜;選擇碼距必須考慮信息發(fā)生差錯(cuò)的概率和系統(tǒng)能容許的最小差錯(cuò)率。

    • 3.2 奇偶校驗(yàn)

      • 基本原理:有效信息(k位),校驗(yàn)信息(r=1位)。

      • 編碼規(guī)則:根據(jù)有效信息計(jì)算校驗(yàn)信息位,使校驗(yàn)碼(數(shù)據(jù)+1位校驗(yàn)信息)中1的個(gè)數(shù)滿足奇/偶校驗(yàn)的要求0001→00011(偶校驗(yàn))? ? 0001→00010(奇校驗(yàn))

      • 檢錯(cuò)方法與電路:奇校驗(yàn)檢錯(cuò)碼G = C?⊕ X1?⊕ X2?⊕...?⊕ Xn,G = 0表示數(shù)據(jù)正常否則表示出錯(cuò)。偶校驗(yàn)檢錯(cuò)碼G?=?C?⊕ X1?⊕ X2?⊕...?⊕ Xn,G = 0表示數(shù)據(jù)正常否則表示出錯(cuò)。

      • 偶校驗(yàn)的硬件實(shí)現(xiàn):各信息進(jìn)行異或(模2加)運(yùn)算,得到的結(jié)果即為偶校驗(yàn)位。(若結(jié)果為1說明出錯(cuò))

      • 特點(diǎn):編碼與檢錯(cuò)簡單、編碼效率高、不能檢測偶數(shù)位錯(cuò)誤,無錯(cuò)結(jié)論不可靠,是一種“錯(cuò)誤檢測”碼、能檢錯(cuò)但不能定位錯(cuò)誤所以不能糾錯(cuò)、碼距為2。

      • 改進(jìn)的奇偶校驗(yàn):雙向奇偶校驗(yàn)、方塊校驗(yàn)、垂直水平校驗(yàn)。

      • 工程上的應(yīng)用:一般在同步傳輸方式中常采用奇校驗(yàn),異步傳輸方式中常采用偶校驗(yàn)。

    • 3.3 CRC校驗(yàn)

      • 基本原理:增加冗余碼(校驗(yàn)位)。有效信息(k位),校驗(yàn)信息(r=1位)。N = k + r ≤ 2^r - 1(一共設(shè)置r為校驗(yàn)位,能表示2^r種狀態(tài),1種狀態(tài)表示沒錯(cuò),2^r-1種狀態(tài)能表示這么多種錯(cuò)誤)

      • 生成多項(xiàng)式G(x):收發(fā)雙方約定的一個(gè)(r+1)位二進(jìn)制數(shù),發(fā)送方利用G(x)對信息多項(xiàng)式做模2除運(yùn)算,生成校驗(yàn)碼。接收方利用G(x)對收到的編碼多項(xiàng)式做模2除運(yùn)算檢測差錯(cuò)及錯(cuò)誤定位。

      • G(x)應(yīng)滿足的條件:①最高位和最低位必須為1;②當(dāng)被傳送信息(CRC碼,循環(huán)冗余校驗(yàn))任何一位發(fā)生錯(cuò)誤時(shí),被生成多項(xiàng)式做除后應(yīng)該使余數(shù)不為0;③不同位發(fā)生錯(cuò)誤時(shí),模2除運(yùn)算后余數(shù)不同;④對不為0余數(shù)繼續(xù)進(jìn)行模2除運(yùn)算應(yīng)使余數(shù)循環(huán)。

      • 模2運(yùn)算:①加/減 (異或,加不進(jìn)位,減不借位);②模2除法:按模2減,求部分余數(shù),不借位。③上商原則:部分余數(shù)首位為1時(shí),商為1,減除數(shù);部分余數(shù)首位為0時(shí),商為0,減0:當(dāng)部分余數(shù)的位數(shù)小于除數(shù)的位數(shù)時(shí),該余數(shù)即為最后余數(shù)。

    • CRC編碼方法:①根據(jù)待校驗(yàn)信息的長度k,按照k+r≤2^r-1確定校驗(yàn)位的位數(shù)。舉例:對4位信息1100進(jìn)行CRC編碼,根據(jù)4+r≤2^r-1,得r_min = 3。②根據(jù)r和生成多項(xiàng)式的選擇原則,選擇位數(shù)為r+1的生成多項(xiàng)式G(X)=1011[查表]。③有效信息(k位),校驗(yàn)信息(r位)→1100 000(補(bǔ)上r個(gè)0,相當(dāng)于左移r位)。④對Q(X)'按模2運(yùn)算法則除G(X),求CRC編碼中的r位校驗(yàn)信息。⑤用得到的余數(shù)替換Q(X)'的最后r位得到對應(yīng)的CRC編碼,1100 000 → 1100 010。

    • CRC的檢錯(cuò)和糾錯(cuò):接收方利用G(X)對收到的編碼多項(xiàng)式做模2除運(yùn)算,余數(shù)為0說明傳輸沒有錯(cuò)誤,余數(shù)不為0是有錯(cuò)誤(出錯(cuò)位不同,余數(shù)也不同)。

  • 3.4 海明校驗(yàn)

    • 海明碼是一種利用奇偶性來差錯(cuò)和糾錯(cuò)的校驗(yàn)方法。海明碼的構(gòu)成方法是在數(shù)據(jù)位之間的特定位置插入K個(gè)校驗(yàn)位,通過擴(kuò)大碼距來實(shí)現(xiàn)檢錯(cuò)和糾錯(cuò)。

    • 基本原理:增加冗余碼(校驗(yàn)位),N = k + r ≤ 2^r - 1。設(shè)k+r位海明碼從左到右依次為第1,2,3,…,k+r位,r位校驗(yàn)位記為Pi(i=1,2,.,r),分別位于k+r位海明編碼的第2^(i - 1)(i=1,2,…,r)位上,其余位依次放置被校驗(yàn)的數(shù)據(jù)位。

    • (7,4)海明校驗(yàn)碼中校驗(yàn)位和被校驗(yàn)信息位的排列如下:

      海明碼位號H_j:1 2 3 4 5 6 7 8 9 10 11

      P和b的分布: P1 P2 b1 P3 b2 b3 b4 P4 b5 b6 b7

    • H_j位的數(shù)據(jù)被編號小于j的若干個(gè)海明位號之和等于j的校驗(yàn)位所校驗(yàn)。由此可采用偶校驗(yàn)計(jì)算出P1~P4四個(gè)校驗(yàn)位的值。

    • 設(shè)置指錯(cuò)字G4 G3 G2 G1。G4 G3 G2 G1為0則表明無錯(cuò)誤,反之指出出錯(cuò)位的海明碼位號。

    • 舉例:

    ????????????本例就7位數(shù)據(jù)組成:D4D3D2D1+P2P1P0

    ????????????7 6 5 4 3 2 1

    ????????????D4 D3 D2?P2?D1?P1 P0

    ????????????1 0 1 1

    ????????????7=4+2+1 ==> 第4位 P2,第2位P1,第1位 P0 這3個(gè)校驗(yàn)位共同校驗(yàn)

    ????????????6=4+2==> 第4位 P2,第2位P1 這2個(gè)校驗(yàn)位共同校驗(yàn)

    ????????????5=4+1 ==> 第4位 P2,第1位 P0 這2個(gè)校驗(yàn)位共同校驗(yàn)

    ????????????3=2+1 ==> 第2位P1,第1位 P0 這2個(gè)校驗(yàn)位共同校驗(yàn)

    ????????????校驗(yàn)碼計(jì)數(shù),異或運(yùn)算:

    ????????????P2 = D7^D6^D5=1^0^1=0

    ????????????P1 = D7^D6^D3=1^0^1=0

    ????????????P0 = D7^D5^D3=1^1^1=1

    ????????????校驗(yàn)碼為:001

    ????????????傳輸數(shù)據(jù)為: 1 0 1?0?1?0 1

    • 檢錯(cuò)和糾錯(cuò)原理

    ????接收方依據(jù)同樣的規(guī)則重新計(jì)算三位校驗(yàn)碼的值。而后與接收到的校驗(yàn)碼進(jìn)行異或。當(dāng)數(shù)據(jù)無誤時(shí),產(chǎn)生的校驗(yàn)碼無誤,若接收到的校驗(yàn)碼有誤,那么這不同的2個(gè)校驗(yàn)碼異或,必然為1.

    ????若某位的校驗(yàn)碼最終異或結(jié)果為1,則表示產(chǎn)生了錯(cuò)誤,找出錯(cuò)誤位之后,就可以糾錯(cuò)了,糾錯(cuò)方法就時(shí)將該為逆轉(zhuǎn)。

  • 4?運(yùn)算方法與運(yùn)算器

    • 4.1 定點(diǎn)數(shù)運(yùn)算及溢出檢測

      • 定點(diǎn)數(shù)加法運(yùn)算:[x]補(bǔ) + [y]補(bǔ) = [x + y]補(bǔ) mod 2^(n + 1)。例:X = +10010, Y = -10101 求 X + Y。[X]補(bǔ) = 010010? [Y]補(bǔ) = 101011? [X + Y]補(bǔ) = 010010 + 101011 = 111101? 補(bǔ)碼再轉(zhuǎn)成真值 所以 X + Y = -00011.

      • 定點(diǎn)數(shù)減法運(yùn)算:[x - y]補(bǔ) = [x]補(bǔ) - [y]補(bǔ) = [x]補(bǔ) + [-Y]補(bǔ)。例:已知[Y]補(bǔ) = 10011,[-Y]補(bǔ) = 01101。通過右向左掃描[Y]補(bǔ),在遇到數(shù)字1及之前,直接輸出遇到的數(shù)字遇到1之后,取反輸出,即可得到[-Y]補(bǔ),反之亦然。

      • 溢出的概念:運(yùn)算結(jié)果超出了某種數(shù)據(jù)類型的表示范圍。溢出只可能發(fā)生在同符號數(shù)相加時(shí),包括[X]補(bǔ)與[Y]補(bǔ);[X]補(bǔ)與[-Y]同號;

      • 溢出的檢測方法1:對操作數(shù)和運(yùn)算結(jié)果的符號位進(jìn)行檢測——當(dāng)結(jié)果的符號位與操作數(shù)的符號不相同時(shí)就表明發(fā)生了溢出。設(shè)X0,Y0為參加運(yùn)算數(shù)的符號位,S0為結(jié)果的符號位。V = X0Y0S0 +?X0Y0S0,當(dāng)V=1時(shí),運(yùn)算結(jié)果溢出。

      • 溢出的檢測方法2:對最高數(shù)據(jù)位進(jìn)位和符號進(jìn)位進(jìn)行檢測,設(shè)運(yùn)算時(shí)最高數(shù)據(jù)位產(chǎn)生的進(jìn)位為C1,符號位產(chǎn)生的進(jìn)位為C。溢出檢測電路為:V=C0⊕C1。

      • 溢出的檢測方法3:用變型補(bǔ)碼,[X]補(bǔ) = Xf1 Xf2 ....X1 X2 X3... Xn,溢出的判斷:V=X1⊕X2。

      • 無符號數(shù)運(yùn)算的溢出判斷:無符號數(shù)加法的溢出可用ALU的進(jìn)位表示;無符號數(shù)減法的溢出也可用帶加/減功能的ALU的進(jìn)位取反后表示。

    • 4.2?定點(diǎn)數(shù)補(bǔ)碼加、減運(yùn)算器設(shè)計(jì)

      • 四位串行加法器的設(shè)計(jì)(基于一位全加器FA)

      • 四位串行加/減法器設(shè)計(jì)

      • 帶溢出檢測功能的加/減運(yùn)算器

      • 帶無符號數(shù)溢出檢測功能的加/減運(yùn)算器

      • 串行進(jìn)位

      • 多位串行進(jìn)位與并行進(jìn)位運(yùn)算器

    • 4.3 原碼一位乘法

      • 移位操作及其意義:邏輯左移——數(shù)據(jù)整體左移一位,最高位D_15被移出至C_F,最低位D_1補(bǔ)0。算術(shù)左移——數(shù)據(jù)整體左移一位,最高位D_15被移出至C_F,最低位D_1補(bǔ)0,相當(dāng)于乘2。邏輯右移——數(shù)據(jù)整體右移一位,最高位D_15補(bǔ)0,最低位D_1被移出。算術(shù)右移——數(shù)據(jù)整體右移一位,最高位D_15被復(fù)制填補(bǔ)D_15,最低位D_1被移出,相當(dāng)于除以2。

      • 符號位單獨(dú)參加運(yùn)算,數(shù)據(jù)位取絕對值參加運(yùn)算。

      • 運(yùn)算法則:設(shè)[X]原=X0 X1 X2 Xn? [Y]原= Y0?Y1 Y2 Yn則:P0=XYo |Pl=lYI·|X|.

      • 例:

  • 4.4 補(bǔ)碼一位乘法

    • 基本方法:設(shè)[X]補(bǔ)=X-0X1X2X3Xn? ? [Y]補(bǔ)=Y0Y1Y2Y3…Yn,可證明:[X·Y]補(bǔ)=[X]補(bǔ)(0.Y1Y2Y3...Yn)-Y0·[X]補(bǔ)。進(jìn)一步展開合并后可得:[X·Y]補(bǔ)=[X]補(bǔ)·Σ(y_(i+1) - y_i)2^(-i)? (符號位參與運(yùn)算)。

    • 運(yùn)算規(guī)則:(1)如果y_n+1=y_n部分積加0,部分積算術(shù)右移1位;(2)如果y_n+1y_n=10,部分積加[x]補(bǔ),部分積算術(shù)右移1位(3)如果y_n+1 y_n=01,部分積加[-x]補(bǔ),部分積算術(shù)右移1位.重復(fù)進(jìn)行n+1步,但最后一步不移位。包括一位符號位,所得乘積為2n+1位,其中n為數(shù)據(jù)位位數(shù).

    • 特殊問題:i=n時(shí),y_n+1=0;y_n+1在乘數(shù)寄存器Y后增加的一位;部分積和乘數(shù)寄存器均右移;

  • 4.5 乘法運(yùn)算器設(shè)計(jì)

    • 4.6 定點(diǎn)數(shù)除法

      • 手工除法運(yùn)算方法——啟示:除法可通過減法實(shí)現(xiàn)問題:除數(shù)移位次數(shù)多,需要長度為2n位的余數(shù)寄存器,如何判斷每步是否夠減。

      • 原碼恢復(fù)余數(shù)除法

      • 原碼加/減交替除法運(yùn)算方法(不恢復(fù)余數(shù)法)

      • 陣列除法——可控制加/減法(CAS)單元;基于CAS的陣列除法

    • 4.7?浮點(diǎn)數(shù)加減運(yùn)算

      • 規(guī)格化浮點(diǎn)數(shù)的概念:由于浮點(diǎn)數(shù)是將數(shù)據(jù)的表示范圍與精確度分別表示的數(shù)據(jù)表示方法,若不對浮點(diǎn)數(shù)的表示作出明確規(guī)定,同一個(gè)浮點(diǎn)數(shù)的表示就不唯一;規(guī)格化浮點(diǎn)數(shù)是指把一個(gè)浮點(diǎn)數(shù)按指定的格式進(jìn)行轉(zhuǎn)換;

      • 規(guī)格方法:當(dāng)尾數(shù)結(jié)果為00.0Φ.Φ或11.1ΦΦΦΦ,需要左規(guī)格化即將尾數(shù)向左移動(dòng)每移動(dòng)一次,階碼減1,直到尾數(shù)形式為00.1ΦΦ或11.0Φ..Φ。當(dāng)尾數(shù)的結(jié)果為01.Φ.Φ或10.ΦΦΦΦ,表明尾數(shù)求和的結(jié)果>1,此時(shí)僅需要執(zhí)行一次右移規(guī)格化,階碼加1,尾數(shù)形式即為00.1Φ.…Φ或11.0Φ.Φ

      • 浮點(diǎn)數(shù)加減運(yùn)算方法及步驟:1)對階——求階差;右移階碼小的浮點(diǎn)數(shù)的尾數(shù)并同步增加其階碼,直至兩數(shù)階碼相等。2)尾數(shù)加/減——尾數(shù)加/減運(yùn)算(用對階后的尾數(shù))3)結(jié)果規(guī)格化4)舍入右移規(guī)格化時(shí)可能丟失一些低位的數(shù)值位,為提高精度,可采取舍入的方法:0舍1入:若右移出的是1則在最低位加1:恒置1:只要數(shù)字位1被移掉,就將最后一位恒置成1。

      5)溢出處理

      • 浮點(diǎn)數(shù)的溢出標(biāo)志:階碼溢出

      • ·階碼上溢:階碼的符號位為01

      • ·階碼下溢:階碼的符號位為10

  • 5 習(xí)題

    • (41360000)H 轉(zhuǎn)十進(jìn)制:先轉(zhuǎn)二進(jìn)制01000001001101100000000000000000,再求S E M,S是0,E是10000010,M是剩下的。E轉(zhuǎn)十進(jìn)制是130(130- 127 = 3,所以后面×2^3)。尾數(shù)寫為1.M是1.011011,移動(dòng)3位是1011.011,轉(zhuǎn)為十進(jìn)制是11.375。

    • (41A4C000)H 轉(zhuǎn)十進(jìn)制:4就是0100,A是十進(jìn)制10即1010,C是十進(jìn)制12即1100,后面補(bǔ)全。就是0100000110100100110000000000000,第一個(gè)0是S(sign階符),后面八位是E(exponent階碼),最后是M(mantissa尾數(shù))。S的部分是0,E的部分10000011轉(zhuǎn)為十進(jìn)制是131(131- 127 = 4,所以后面×2^4),M的部分要寫成1.M的形式即1.010010011(后面零不用管),寫成1.M×2^4,即10100.10011,轉(zhuǎn)成十進(jìn)制是20.59375。


二進(jìn)制后綴B,Binary
八進(jìn)制后綴O,Octonary
十進(jìn)制后綴D,Decimal
十六進(jìn)制后綴H,Hexadecimal
異或⊕是模2加
帶符號擴(kuò)展就是將原數(shù)據(jù)的符號位擴(kuò)展到增加的高16位中,上述兩個(gè)數(shù)的符號分別為0和1,因此,符號擴(kuò)展后分別得到16個(gè)0和16個(gè)1,用十六進(jìn)制分別表達(dá)成0000 ?FFFF
  • 6 術(shù)語

  • 布斯算法(Booth’s Algorithm):是一種補(bǔ)碼乘法算法,用于帶符號數(shù)的乘法運(yùn)算,由Booth提出。算法的基本思想是在乘數(shù)的末位添加一個(gè)“0”,乘數(shù)中出現(xiàn)的連續(xù)“0”和連續(xù)“1”處不進(jìn)行任何運(yùn)算;出現(xiàn)“10”時(shí),做減法;出現(xiàn)“01”時(shí),做加法。每次只做一位乘法,因而每一步都右移一位。

  • 算術(shù)邏輯部件(Arithmetic Logic Unit):用來執(zhí)行各種算術(shù)和邏輯運(yùn)算的部件。有兩個(gè)源輸入端和一個(gè)結(jié)果輸出端,并具有操作控制和低位進(jìn)位輸入端,以及輸出結(jié)果是否為0等標(biāo)志輸出端。

  • 先行進(jìn)位加法器(Carry Lookahead Adder):先行進(jìn)位加法器也稱為并行進(jìn)位加法器,它通過引入進(jìn)位生成函數(shù)和進(jìn)位傳遞函數(shù),使得進(jìn)位之間相互獨(dú)立、并行產(chǎn)生。因而能夠快速得到最終整個(gè)和數(shù)。故也稱為快速加法器。

  • 進(jìn)位傳遞函數(shù)(Propagate Carry):n位加法器中,每一位定義一個(gè)函數(shù):pi = Ai | Bi ( “|” 表示或操作),該函數(shù)的含義是,只要函數(shù)值pi為1,那么,低位來的進(jìn)位一定能傳遞到高位。這個(gè)函數(shù)稱為進(jìn)位傳遞函數(shù)。

  • 進(jìn)位生成函數(shù)(Generate Carry):n位加法器中,每一位定義一個(gè)函數(shù):gi = Ai &Bi (“&”表示與操作)。該函數(shù)的含義是,只要函數(shù)值gi為1,不管低位有沒有進(jìn)位,一定能生成向高位的進(jìn)位。這個(gè)函數(shù)稱為進(jìn)位生成函數(shù)。

  • 先行進(jìn)位(Carry Lookahead):通過引入兩個(gè)進(jìn)位輔助函數(shù)(進(jìn)位生成和進(jìn)位傳遞),使得加法器的各個(gè)進(jìn)位之間相互獨(dú)立、并行產(chǎn)生。這種進(jìn)位方式也稱為并行進(jìn)位方式。

  • 行波進(jìn)位加法器(Ripple Carry Adder):行波進(jìn)位加法器也稱為串行進(jìn)位加法器,它通過n個(gè)全加器按照串行方式連起來實(shí)現(xiàn)。進(jìn)位方式采用行波進(jìn)位方式。

  • 行波進(jìn)位(Ripple Carry):在進(jìn)行n位加法運(yùn)算時(shí),低位向高位的進(jìn)位采用像“行波”一樣進(jìn)行串行傳遞的方式,稱為行波進(jìn)位方式。

  • 加法器(Adder):能進(jìn)行n位加法運(yùn)算的部件。

  • 全加器(Full Adder,(3, 2) adder):不僅考慮本位兩個(gè)加數(shù)而且考慮低位進(jìn)位來生成本位和的一位加法器。

  • 半加器(Half Adder):只考慮本位兩個(gè)加數(shù)而不考慮低位進(jìn)位來生成本位和的一位加法器。

  • 擴(kuò)展器(Extender):進(jìn)行擴(kuò)展(填充)操作的部件,稱為擴(kuò)展器。一般輸入為n位,輸出為2n位。

  • 符號擴(kuò)展(Sign extend):對補(bǔ)碼整數(shù)在高位直接補(bǔ)符的操作,稱為“符號擴(kuò)展”。

  • 零擴(kuò)展(Zero extending):對無符號整數(shù)進(jìn)行高位補(bǔ)0的操作稱為“零擴(kuò)展”。

  • 擴(kuò)展操作(extending):在計(jì)算機(jī)內(nèi)部,有時(shí)需要將一個(gè)取來的短數(shù)擴(kuò)展為一個(gè)長數(shù),此時(shí)要進(jìn)行填充(擴(kuò)展)處理。有“零擴(kuò)展”和“符號擴(kuò)展”兩種。

  • 移位器(Shifter):具有移位功能的寄存器,稱為移位寄存器。

  • 循環(huán)(邏輯)移位(rotating Shifte):循環(huán)移位是一種邏輯移位,移位時(shí)把高(低)位移出的一位送到低(高)位,即:左移時(shí),各位左移一位,并把最左邊的位移到最右邊;右移時(shí),各位右移一位,并把最右邊的位移到最左邊。

  • 算術(shù)移位(arithmetic Shifte):算術(shù)移位是對帶符號數(shù)進(jìn)行的,移位前后符號位不變。左移一位,數(shù)值擴(kuò)大一倍,相當(dāng)于乘2操作;右移一位,數(shù)值縮小一半,相當(dāng)于除2操作。移位時(shí),符號位不動(dòng),只是數(shù)值部分進(jìn)行移位。對于不同的編碼,其移位規(guī)則不同。 ① 原碼 左移:高位移出,末位補(bǔ)0。移出非零時(shí),發(fā)生溢出。 右移:高位補(bǔ)0,低位移出。移出時(shí)進(jìn)行舍入操作。 ② 補(bǔ)碼 左移:高位移出,末位補(bǔ)0。移出非符時(shí),發(fā)生溢出。 右移:高位補(bǔ)符,低位移出。移出時(shí)進(jìn)行舍入操作。

  • 邏輯移位(logical Shifte):邏輯移位是對無符號數(shù)進(jìn)行的移位,把無符號數(shù)看成一個(gè)邏輯數(shù)進(jìn)行移位操作。左移時(shí),高位移出,低位補(bǔ)0;右移時(shí),低位移出,高位補(bǔ)0。

  • ASCII碼(American Standard Code for Information Interchange):目前計(jì)算機(jī)中使用最廣泛的西文字符集及其編碼,即美國標(biāo)準(zhǔn)信息交換碼(American Standard Code for Information Interchange),簡稱ASCII碼。

  • 邏輯數(shù)據(jù)(Logic Data):邏輯數(shù)據(jù)用來表示命題的“真”和“假”,分別用 “1”和“0”來表示。進(jìn)行邏輯運(yùn)算時(shí),按位進(jìn)行。

  • BCD碼(Binary Coded Decimal,BCD):十進(jìn)制數(shù)用二進(jìn)制編碼的形式表示稱為BCD碼。

  • 機(jī)器零(Machine “0”):用一種專門的位序列表示“機(jī)器0”。例如,IEEE754單精度浮點(diǎn)數(shù)中,用“0000 0000H”表示“+0”,用“8000 0000H”表示“– 0”。當(dāng)運(yùn)算結(jié)果出現(xiàn)階碼過小時(shí),計(jì)算機(jī)將該數(shù)近似表示為“機(jī)器0”。

  • 舍入(Rounding):舍入是指數(shù)值數(shù)據(jù)右部的低位數(shù)據(jù)需要丟棄時(shí),為保證丟棄后數(shù)值誤差盡量小而考慮的一種操作。例如,定點(diǎn)整數(shù)“右移”時(shí)、浮點(diǎn)加/減運(yùn)算中某數(shù)“對階”時(shí)、浮點(diǎn)運(yùn)算結(jié)果“右規(guī)”時(shí)都會(huì)涉及到舍入。

  • 右規(guī)(Right Normalize) :在浮點(diǎn)數(shù)運(yùn)算中,當(dāng)尾數(shù)最高有效位有進(jìn)位時(shí),發(fā)生尾數(shù)溢出。此時(shí),進(jìn)行“右規(guī)”操作:尾數(shù)右移一位,階碼加1,直到尾數(shù)為規(guī)格化形式為止。右規(guī)過程中,要判斷是否發(fā)生溢出。此時(shí),只要階碼不發(fā)生上溢,則浮點(diǎn)數(shù)不會(huì)溢出。

  • 左規(guī)(Left Normalize):在浮點(diǎn)數(shù)運(yùn)算中,當(dāng)一個(gè)尾數(shù)的數(shù)值部分的高位出現(xiàn)0時(shí),尾數(shù)為非規(guī)格化形式。此時(shí),進(jìn)行“左規(guī)”操作:尾數(shù)左移一位,階碼減1,直到尾數(shù)為規(guī)格化形式為止。

  • 規(guī)格化數(shù)(Normalized number):為了使浮點(diǎn)數(shù)中能盡量多地表示有效位數(shù),一般要求運(yùn)算結(jié)果用規(guī)格化數(shù)形式表示。規(guī)格化浮點(diǎn)數(shù)的尾數(shù)小數(shù)點(diǎn)后的第一位一定是個(gè)非零數(shù)。因此,對于原碼編碼的尾數(shù)來說,只要看尾數(shù)的第一位是否為1就行;對于補(bǔ)碼表示的尾數(shù),只要看符號位和尾數(shù)最高位是否相反。

  • 保護(hù)位(Guard bit):為了使數(shù)據(jù)有效位在右移時(shí)最大限度地保證不丟失,一般在運(yùn)算中間值后面增加若干數(shù)據(jù)位,這些位用來保存右移后的有效數(shù)據(jù),稱為保護(hù)位。增設(shè)保護(hù)位后,能保證運(yùn)行的中間結(jié)果的有效位數(shù),但最終必須將結(jié)果的保護(hù)位去掉,以得到規(guī)定格式的浮點(diǎn)數(shù),此時(shí)要考慮舍入。

  • 上溢(Overflow):在浮點(diǎn)數(shù)運(yùn)算中,當(dāng)一個(gè)浮點(diǎn)數(shù)的指數(shù)超過了最大允許值,此時(shí),浮點(diǎn)數(shù)發(fā)生上溢(即:向∞方向溢出)。如果結(jié)果是正數(shù),則發(fā)生正上溢(有的機(jī)器把值置為+∞);如果是負(fù)數(shù),則發(fā)生負(fù)上溢(有的機(jī)器把值置為-∞)。這種情況為軟件故障,通常要引入溢出故障處理程序來處理。

  • 下溢(Underflow):在浮點(diǎn)數(shù)運(yùn)算中,當(dāng)一個(gè)浮點(diǎn)數(shù)的指數(shù)比最小允許值還小,此時(shí),浮點(diǎn)數(shù)發(fā)生下溢。一般機(jī)器把下溢時(shí)的值置為0。此時(shí),不發(fā)生溢出故障。

  • 溢出(Overflow):溢出是指一個(gè)數(shù)比給定的格式所能表示的最大值還要大,或比最小值還要小的現(xiàn)象。因?yàn)闊o符號數(shù)、有符號定點(diǎn)數(shù)和有符號浮點(diǎn)數(shù)的位數(shù)是有限的,所以,都有可能發(fā)生溢出,但判斷溢出的具體方法不同。

  • 對階(align exponent):浮點(diǎn)數(shù)加/減運(yùn)算時(shí),在尾數(shù)相加/減之前所進(jìn)行的操作稱為對階。對階時(shí),需要比較兩個(gè)階的大小。階小的那個(gè)數(shù)的尾數(shù)右移,階碼增量。右移一次,階碼加1,直到兩數(shù)的階碼相等為止。

  • 雙精度浮點(diǎn)數(shù)(Double precision floating point):IEEE754標(biāo)準(zhǔn)規(guī)定的64位浮點(diǎn)數(shù)格式表示的浮點(diǎn)數(shù)。階碼是11位,用移碼表示,偏置常數(shù)為1023,尾數(shù)用原碼表示,規(guī)格化浮點(diǎn)數(shù)的最高位“1”隱含不表示,顯式表示的尾數(shù)有52位,所以一共有53位尾數(shù)。

  • 單精度浮點(diǎn)數(shù)(Single precision floating point):IEEE754標(biāo)準(zhǔn)規(guī)定的32位浮點(diǎn)數(shù)格式表示的浮點(diǎn)數(shù)。階碼是8位,用移碼表示,偏置常數(shù)為127,尾數(shù)用原碼表示,規(guī)格化浮點(diǎn)數(shù)的最高位“1”隱含不表示,顯式表示的尾數(shù)有23位,所以一共有24位尾數(shù)。

  • 移碼(excess notation,biased notation):移碼是一種用來表示浮點(diǎn)數(shù)階碼的編碼方案。它的編碼規(guī)則是:將真值加上一個(gè)偏置常數(shù)。因?yàn)樵诟↑c(diǎn)數(shù)的加減運(yùn)算中,要進(jìn)行對階操作,需要比較兩個(gè)階的大小。用移碼表示階碼后,使得所有數(shù)的階碼都是一個(gè)正整數(shù),比較大小時(shí),就只要按高位到低位順序比較就行了,因而,移碼主要用來表示階碼,可以簡化階碼的比較過程。

  • 階碼(exponent):E稱為浮點(diǎn)數(shù)的指數(shù)或階碼,用一個(gè)定點(diǎn)整數(shù)來表示。

  • 尾數(shù)(mantissa, ?significand):M稱為浮點(diǎn)數(shù)的尾數(shù),用一個(gè)定點(diǎn)小數(shù)來表示。

  • 浮點(diǎn)數(shù)(Floating-point number ):浮點(diǎn)數(shù)是計(jì)算機(jī)中可以指定小數(shù)點(diǎn)在不同位置的有符號數(shù)。任意一個(gè)浮點(diǎn)數(shù)F可寫成:F=(-1)^S M 2 ^E的形式。

  • 變形補(bǔ)碼(Four’s complement):變型補(bǔ)碼是一種雙符號位補(bǔ)碼。早期計(jì)算機(jī)用雙符號位來檢測定點(diǎn)整數(shù)是否發(fā)生溢出。采用雙符號位的補(bǔ)碼相當(dāng)于在原來的數(shù)位上增加了一位。所以也稱為4-補(bǔ)碼。采用“變形補(bǔ)碼”進(jìn)行溢出檢測時(shí)的判斷規(guī)則為:“當(dāng)結(jié)果的兩個(gè)符號位不同時(shí),發(fā)生溢出”。有時(shí)用雙符號位來保存運(yùn)算時(shí)進(jìn)到高位的數(shù)值部分。

  • 補(bǔ)碼(Two’s complement):一種對定點(diǎn)整數(shù)或定點(diǎn)小數(shù)進(jìn)行二進(jìn)制編碼的編碼方案。其編碼規(guī)則如下:正號“+ ”用符號位“0”表示,負(fù)號“-” 用符號位“1”表示,正數(shù)的數(shù)值部分不變,負(fù)數(shù)的數(shù)值部分是各位取反,末位加1。這種編碼較原碼復(fù)雜,但由于它是一種模運(yùn)算系統(tǒng),計(jì)算機(jī)處理很方便,50年代以后,整數(shù)就都用它來表示。

  • 反碼(One’s complement):一種對定點(diǎn)整數(shù)或定點(diǎn)小數(shù)進(jìn)行二進(jìn)制編碼的編碼方案。由于計(jì)算機(jī)處理反碼沒有補(bǔ)碼方便,反碼已經(jīng)不被再用了。

  • 原碼(Signed magnitude):一種對定點(diǎn)整數(shù)或定點(diǎn)小數(shù)進(jìn)行二進(jìn)制編碼的編碼方案。它的編碼規(guī)則是:正號“+ ”用符號位“0”表示,負(fù)號“-” 用符號位“1”表示,數(shù)值部分不變。這種編碼簡單,但計(jì)算機(jī)處理不方便,50年代以后,就不用它來表示整數(shù)。但現(xiàn)代計(jì)算機(jī)中,一般用它來表示浮點(diǎn)數(shù)的尾數(shù),如:IEEE754標(biāo)準(zhǔn)。

  • 定點(diǎn)數(shù)(Fixed-point number):定點(diǎn)數(shù)是計(jì)算機(jī)中小數(shù)點(diǎn)固定在最左邊或最右邊的有符號數(shù),有定點(diǎn)整數(shù)和定點(diǎn)小數(shù)兩種。定點(diǎn)整數(shù)的小數(shù)點(diǎn)總是約定在數(shù)的最右邊,主要用來表示現(xiàn)實(shí)世界中的整數(shù)和浮點(diǎn)數(shù)中的指數(shù)。定點(diǎn)小數(shù)的小數(shù)點(diǎn)總是約定在數(shù)的最左邊,主要用來表示浮點(diǎn)數(shù)中的尾數(shù)。定點(diǎn)數(shù)的編碼方式有原碼、反碼、補(bǔ)碼和移碼。整數(shù)常用補(bǔ)碼來表示;浮點(diǎn)數(shù)的尾數(shù)一般用原碼小數(shù)來表示;浮點(diǎn)數(shù)的指數(shù)一般用移碼來表示。

  • 有符號數(shù)(Signed number):在計(jì)算機(jī)內(nèi)部對正、負(fù)號進(jìn)行編碼的數(shù)。有符號數(shù)又分為定點(diǎn)數(shù)和浮點(diǎn)數(shù)。定點(diǎn)數(shù)有定點(diǎn)整數(shù)和定點(diǎn)小數(shù)兩種?,F(xiàn)實(shí)世界中的整數(shù)在計(jì)算機(jī)內(nèi)部由定點(diǎn)整數(shù)表示?,F(xiàn)實(shí)世界中的實(shí)數(shù)在計(jì)算機(jī)內(nèi)部由浮點(diǎn)數(shù)表示。

  • 無符號數(shù)(Unsigned integer):當(dāng)一個(gè)編碼的所有二進(jìn)位都用來表示數(shù)值時(shí),該編碼表示的就是無符號數(shù)??梢钥闯墒且环N正整數(shù)。常用無符號數(shù)來進(jìn)行地址運(yùn)算。

  • 基數(shù)(radix,base):進(jìn)位計(jì)數(shù)制(或稱數(shù)字系統(tǒng))的“底數(shù)”或“基”。例如,二進(jìn)制數(shù)的基數(shù)是“2”,十進(jìn)制數(shù)的基數(shù)為“10”,十六進(jìn)制的基數(shù)為“16”。

  • 非數(shù)值數(shù)據(jù)(non-numerical data):數(shù)值數(shù)據(jù)是指在數(shù)軸上沒有確定的值的數(shù)據(jù)。像邏輯數(shù)據(jù)、西文字符、漢字字符等都是非數(shù)值數(shù)據(jù)。

  • 數(shù)值數(shù)據(jù)(numerical data):數(shù)值數(shù)據(jù)是指有確定的值的數(shù)據(jù)。數(shù)值數(shù)據(jù)在數(shù)軸上能找到其對應(yīng)的點(diǎn),可以比較其大小。確定一個(gè)數(shù)值數(shù)據(jù)的值有三個(gè)要素:進(jìn)位計(jì)數(shù)制、定/浮點(diǎn)表示和數(shù)的編碼表示。也就是說,給定一個(gè)數(shù)字序列,如果不說明這個(gè)數(shù)字序列是幾進(jìn)制數(shù)、小數(shù)點(diǎn)的位置在哪里、采用什么編碼方式,那么這個(gè)數(shù)字序列的值是無法確定的。也就是說,同一個(gè)數(shù)字序列可能有不同的值。在計(jì)算機(jī)中數(shù)值數(shù)據(jù)有無符號數(shù)和有符號數(shù)兩種。

  • 機(jī)器數(shù)(Computer word):通常將數(shù)值數(shù)據(jù)在計(jì)算機(jī)內(nèi)部編碼表示的數(shù)稱為機(jī)器數(shù)。

  • 真值:通常將數(shù)值數(shù)據(jù)在計(jì)算機(jī)內(nèi)部編碼表示的數(shù)稱為機(jī)器數(shù),而機(jī)器數(shù)真正的值(即原來帶有正負(fù)號的數(shù))稱為機(jī)器數(shù)的真值。


    計(jì)算機(jī)組成原理(二)——數(shù)據(jù)的表示和運(yùn)算的評論 (共 條)

    分享到微博請遵守國家法律
    莱州市| 桓台县| 西宁市| 安化县| 儋州市| 镇安县| 宁蒗| 博客| 古蔺县| 改则县| 沙湾县| 黄山市| 上犹县| 盐亭县| 商河县| 湘乡市| 阳山县| 奉节县| 南华县| 淮滨县| 阿拉善左旗| 银川市| 成武县| 葫芦岛市| 临颍县| 肥西县| 修武县| 南江县| 西安市| 尖扎县| 南陵县| 石棉县| 乐业县| 兰西县| 通山县| 扎鲁特旗| 康平县| 桂阳县| 郸城县| 济源市| 阳东县|