日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > windows >内容正文

windows

计算机组成与体系结构——计算机系统概述、数据表示方法

發(fā)布時(shí)間:2024/1/8 windows 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 计算机组成与体系结构——计算机系统概述、数据表示方法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

28號(hào)考計(jì)算機(jī)組成課,第一二章mooc學(xué)習(xí)筆記。

計(jì)算機(jī)系統(tǒng)概述

計(jì)算機(jī)組成課程介紹

核心專業(yè)基礎(chǔ)課課,在課程體系中起著承上啟下的作用。課程需要匯編語(yǔ)言、數(shù)字邏輯相關(guān)知識(shí)。
需要我們構(gòu)造觀+系統(tǒng)觀+工程關(guān)的而學(xué)習(xí)視角和學(xué)習(xí)方法 。

馮諾依曼結(jié)構(gòu)原理與結(jié)構(gòu)分析

概述
①解決問(wèn)題的程序輸入(如C語(yǔ)言 編譯成匯編語(yǔ)言,指令的機(jī)器碼會(huì)存在指令存儲(chǔ)器里)計(jì)算機(jī)的主存后才能讓CPU訪問(wèn)
②按照指令地址訪問(wèn)存儲(chǔ)器并取出指令,指令機(jī)器碼經(jīng)過(guò)CPU解析,生成控制信號(hào)等


馮諾依曼計(jì)算機(jī)組成

運(yùn)算器

控制器

存儲(chǔ)器

輸入輸出設(shè)備
鼠標(biāo)鍵盤、網(wǎng)卡、掃描儀等
顯示器、聲卡、網(wǎng)卡、打印機(jī)等

軟件系統(tǒng)

軟件:可運(yùn)行的思想和內(nèi)容的數(shù)字化

思想:算法、規(guī)律、方法-----程序表達(dá)
內(nèi)容:圖像、圖形、數(shù)據(jù)、聲音、文字等被處理的對(duì)象

軟件的表現(xiàn)形式:程序和數(shù)據(jù)

數(shù)據(jù):以二進(jìn)制表示的信息

軟件的核心:算法
軟件的分類:系統(tǒng)軟件+支持軟件+應(yīng)用軟件
硬件與軟件系統(tǒng)之間的相互關(guān)系:

相互依存:硬件是軟件運(yùn)行的基礎(chǔ),軟件的正常運(yùn)行是硬件發(fā)揮作用的重要途徑。計(jì)算機(jī)系統(tǒng)必須配備完善的軟件系統(tǒng)才能正常運(yùn)行,且應(yīng)充分發(fā)揮其硬件的功能
邏輯等效性:某些功能可以由硬件實(shí)現(xiàn),可由軟件實(shí)現(xiàn)
協(xié)同發(fā)展:軟件隨硬件技術(shù)的迅速發(fā)展而發(fā)展,軟件的不斷發(fā)展又促進(jìn)硬件的更新

計(jì)算機(jī)的層次結(jié)構(gòu):由上至下依次為應(yīng)用程序,高級(jí)語(yǔ)言,匯編語(yǔ)言,操作系統(tǒng),指令集架構(gòu)層,偽代碼層(MIPS中的RWrite=1,Branch=0…),硬件邏輯層

透明性概念:本來(lái)存在的事物或?qū)傩?#xff0c;從某個(gè)角度去看,卻好像不存在。如硬件的的特性對(duì)C語(yǔ)言程序設(shè)計(jì)者而言就具有透明性。

系統(tǒng)觀概念:當(dāng)硬件結(jié)構(gòu)發(fā)生變化時(shí)要想到可能對(duì)軟件產(chǎn)生的影響;不同類型的軟件對(duì)硬件有不同的要求
(并且編程是和CPU相關(guān)的,每當(dāng)有新的CPU出來(lái)的時(shí)候,開(kāi)發(fā)者可以去查詢,充分發(fā)揮CPU功能)

軟硬件的分界線:即軟硬件的接口,是指令操作硬件的接口,因此指令格式以及指令的設(shè)計(jì)與硬件關(guān)聯(lián)!

計(jì)算機(jī)性能評(píng)價(jià)

本節(jié)需要學(xué)習(xí)幾個(gè)指標(biāo)與公式
非時(shí)間指標(biāo)
1)機(jī)器字長(zhǎng):

機(jī)器一次能處理的二進(jìn)制位數(shù)。由加法器、寄存器位數(shù)決定,一般與內(nèi)部寄存器的位數(shù)相等(字長(zhǎng)),字長(zhǎng)越長(zhǎng),表示數(shù)據(jù)的范圍就越大了

2)CPU和主存之間的總線寬度:

數(shù)據(jù)總線一次能并行傳送的最大信息位數(shù)。一般指的是運(yùn)算器與存儲(chǔ)器之間的數(shù)據(jù)總線位數(shù)

3)主存容量與存儲(chǔ)帶寬:

主存容量:是指一臺(tái)計(jì)算機(jī)所包含的存儲(chǔ)單元總數(shù)
存儲(chǔ)帶寬:單位時(shí)間內(nèi)與主存
交換的二進(jìn)制信息量。常用單位為B/s(Bps 字節(jié)每秒)
KB/s(KBps 1024字節(jié)每秒) MB/s(MBps 1024×1024字節(jié)每秒)
[數(shù)據(jù)位寬和數(shù)據(jù)傳輸速率影響它]

時(shí)間指標(biāo)
1)主頻的倒數(shù)=時(shí)鐘周期

Hz:若干周期每秒,評(píng)價(jià)CPU性能
1GHz=1000MHz
1MHz=1000KHz
1KHz=1000Hz

外頻:CPU與主板之間同步的時(shí)鐘頻率
倍頻:CPU主頻與外頻之間的倍數(shù)

2)CPI:
執(zhí)行一條指令平均需要的時(shí)鐘周期數(shù)(即T周期的個(gè)數(shù))
[指令CPI分為單條指令CPI、一段程序中所有指令的CPI、指令系統(tǒng)CPI等]
CPI=程序中所有指令的時(shí)鐘周期數(shù)之和/程序中指令總數(shù)=Σ(程序中各類指令的CPI×程序中該類指令的比例)
例子:

3)IPC: 看上面圖的下面部分,IPC是每個(gè)時(shí)鐘周期要執(zhí)行多少條指令

4)MIPS:
每秒鐘CPU能執(zhí)行的指令總條數(shù)(單位:百萬(wàn)條/秒)
MIPS=指令條數(shù)/(執(zhí)行時(shí)間×106)
=指令條數(shù)/(所有指令CPU時(shí)鐘周期數(shù)之和/f)×106
=f/(CPI×106)
例子:
5)CPU時(shí)間: 執(zhí)行一段程序所需要的時(shí)間:(CPU時(shí)間+I/O時(shí)間+存儲(chǔ)訪問(wèn)時(shí)間+各類排隊(duì)時(shí)延等)
CPU時(shí)間 = 程序中所有指令的時(shí)鐘周期數(shù)之和×T
= 程序中所有指令的時(shí)鐘周期數(shù)之和/f
使用CPI [想下CPI的定義] 計(jì)算CPU時(shí)間:
CPU時(shí)間 = 總指令數(shù)×CPI×T
使用MIPS [想下MIPS的定義 ]計(jì)算CPU時(shí)間:CPU時(shí)間 = 指令條數(shù)/(MIPS×106)
例子:

思考:計(jì)算機(jī)性能指標(biāo)是確定的嘛?算法、編程語(yǔ)言
編譯程序、指令集體系結(jié)構(gòu)都會(huì)影響CPI MIPS CPU時(shí)間
比如算法會(huì)影響程序數(shù)量和指令類型

計(jì)算機(jī)系統(tǒng)概述習(xí)題

理解一下基準(zhǔn)測(cè)試程序

(1) 對(duì)于P1:M2機(jī)器速度快,因?yàn)闀r(shí)間短,比M1快一倍
對(duì)于P2:M1機(jī)器速度快,比M2快一倍
(2)在M1上執(zhí)行P1的速度:用MIPS標(biāo)準(zhǔn)來(lái)算就是200M/(10s×106)=20MIPS
執(zhí)行P2的速度:300K/(0.003s×106)=100MIPS
在M2上執(zhí)行P1的速度:…
在M2上執(zhí)行P2的速度:…
進(jìn)而可以比較執(zhí)行速度。
(3)假設(shè)M1和M2的時(shí)鐘頻率為800MHz和1.2GHz.
在M1上執(zhí)行P1的平均時(shí)鐘周期CPI為:
10×800M/(200×106)
在M2上執(zhí)行P2的平均時(shí)鐘周期CPI為:…
(4)用戶大量使用程序P1,并且只關(guān)心系統(tǒng)的響應(yīng)時(shí)間而不是吞吐率,根據(jù)性價(jià)比,選擇M1還是M2?
考慮執(zhí)行時(shí)間:性價(jià)比=1/(執(zhí)行時(shí)間×價(jià)格)
R越大性價(jià)比越高。
因此在大量使用P1程序時(shí),M2性價(jià)比更高!
(5)如果另一個(gè)用戶也需要進(jìn)行選擇,用戶使使用程序P1和P2一樣多,主要關(guān)心的也是系統(tǒng)的響應(yīng)時(shí)間,也根據(jù)性價(jià)比,選擇M1還是M2?
P1和P2同等考慮,答案給出兩種計(jì)算方式:
①使用算術(shù)平均公式:(10+0.003)/2 × 5000 > (5+0.006)/2 × 8000
所以選擇M2
②使用幾何平均公式:sqrt(10×0.003) × 5000<sqrt(5×0.006) ×8000
所以選擇M1


S1和S2各有多少條指令:
S1有10條指令 S2有8條指令
CPI:
S1的CPI=(1×5+2×2+3×2+4×1)/10 = 1.9
S2的CPI=…
所含時(shí)鐘周期數(shù)、時(shí)間:
S1所含時(shí)鐘周期數(shù)=10×1.9
S1執(zhí)行時(shí)間=10×1.9/500MHz
S2所含周期數(shù)=…
S2執(zhí)行時(shí)間=…

——————————————————————

數(shù)據(jù)表示方法

摘要:計(jì)算機(jī)內(nèi)部流動(dòng)的信息可分兩大類:
①數(shù)據(jù)信息是計(jì)算機(jī)加工處理的對(duì)象
②控制信息控制數(shù)據(jù)信息加工處理的過(guò)程。
本章討論數(shù)據(jù)信息的表示方法、運(yùn)算方法及實(shí)現(xiàn)方法。

數(shù)據(jù)信息的表示方法

為什么研究機(jī)器內(nèi)的數(shù)據(jù)表示?
方便計(jì)算機(jī)硬件直接使用.包括支持的數(shù)據(jù)類型;表示的數(shù)據(jù)范圍,精度;是否利于軟件移植
1)真值:符號(hào)用+ -表示的數(shù)據(jù)方法
2)機(jī)器碼:數(shù)據(jù)符號(hào)化表示數(shù)據(jù),用0 1表示符號(hào)
3)
三種常見(jiàn)的機(jī)器碼:
NO.1 首先介紹定點(diǎn)數(shù):小數(shù)點(diǎn)位置固定的數(shù)據(jù)。
定點(diǎn)整數(shù):小數(shù)點(diǎn)在最低位數(shù)的后面
N=DnDn-1…D1D0.
定點(diǎn)小數(shù):小數(shù)點(diǎn)在最高位(為0)的后面,即為純小數(shù)
N=D0.D-1D-2…D-n
①原碼表示法:
X = X if(0≤X<2n)
= 2n-X if(-2n<X≤0)
原碼的特點(diǎn):表示簡(jiǎn)單,運(yùn)算復(fù)雜,符號(hào)位不參加運(yùn)算,因此我們還要設(shè)置加法器減法器。
0表示不唯一,有兩個(gè)編碼分別為00…0和10…0
n位的表示范圍:-2n-1+1~2n-1-1
②反碼表示法:
X = X if(0≤X<2n)
=2n+1+X-1 if(-2n<X≤0)
反碼的特點(diǎn):表示相對(duì)原碼復(fù)雜,運(yùn)算相對(duì)簡(jiǎn)單
符號(hào)為參加運(yùn)算,但符號(hào)位的進(jìn)位應(yīng)加到最低位想一想為什么呢??
0表示不唯一,有兩個(gè)編碼分別為00…0和11…1
n位表示范圍:-2n-1+1~2n-1-1
③補(bǔ)碼表示法
X補(bǔ) = X if(0≤X<2n)
=2n+1+X if(-2n<X≤0)[mod 2n+1]
補(bǔ)碼的特點(diǎn):表示相對(duì)原碼復(fù)雜,運(yùn)算簡(jiǎn)單
只需要設(shè)置加法器
0的表示唯一,為00…0
補(bǔ)碼n位表示范圍:-2n-1~2n-1-1
實(shí)際應(yīng)用中使用雙,符號(hào)位補(bǔ)碼,使用00表示正數(shù)的符號(hào),11表示負(fù)數(shù)的符號(hào),為什么這么表示呢?在運(yùn)算和溢出判斷中方便
理解:補(bǔ)碼中模的概念是符號(hào)進(jìn)位所在位的權(quán)值
例如我們說(shuō)8是-4對(duì)模12的補(bǔ)碼<=>-4的模12的補(bǔ)碼等于8
<1>一個(gè)負(fù)數(shù)的補(bǔ)碼等于模減去該負(fù)數(shù)的絕對(duì)值
<2>對(duì)于某一個(gè)確定的模,某數(shù)減去小于模的某數(shù)X,總可以用該數(shù)加上某數(shù)X的補(bǔ)碼來(lái)代替
(統(tǒng)一了減法和加法)
例如10-4 = 10+(12-4)=10+8 = 6(mod 12)
例如9828-1928=9828+(104-1928)=17900=7900(mod 104
而在計(jì)算機(jī)中,就是使用了這種思想。
④移碼表示法:
浮點(diǎn)數(shù)的階碼,IEEE754中解碼用移碼表示
X =2n +X -2n<X ≤2n
X是真值,2n理解為是一個(gè)固定的偏移值。
例如,X=+10101時(shí):X=[010101]=25+X=100000+010101=110101
可以看出,移碼中符號(hào)位表示的規(guī)律與原碼
反碼、補(bǔ)碼相反。
實(shí)際上:一個(gè)數(shù)的移碼數(shù)值位與補(bǔ)碼相同,符號(hào)位與補(bǔ)碼相反。

NO.2 介紹浮點(diǎn)數(shù),先說(shuō)定點(diǎn)數(shù)可以認(rèn)為不用表示點(diǎn)了,充分利用字長(zhǎng)表示更多的有效位。定點(diǎn)數(shù)的數(shù)據(jù)范圍受字長(zhǎng)的限制。
浮點(diǎn)數(shù):把數(shù)據(jù)的范圍和精度分別表示的一種數(shù)據(jù)表示方法,可以表示一些超大的數(shù)或者超小的數(shù)
①一般格式:EsE1E2…EmMsM1M2…Mk
Es位階碼位數(shù),數(shù)據(jù)的范圍,小數(shù)點(diǎn)在數(shù)據(jù)中的位置
Ms為尾數(shù)的位數(shù),決定數(shù)的精度
表示:X = 2e×m
看例子:
將X=2-01×(-0.1110)表示成機(jī)器碼的形式
8位表示,階碼占3位,位數(shù)占5位
假設(shè)階碼和位數(shù)均采用補(bǔ)碼
那么在機(jī)器中表示就是111 10010
但是!這樣子表示是有不足的,默認(rèn)前面三位表示階碼,后面五位表示位數(shù),但是其他系統(tǒng)是不一定這樣的 想想也是,這樣子肯定是有不足的

①因此我們使用統(tǒng)一格式:IEEE 754格式
單精度:1位符號(hào)位s 8位偏移指數(shù)(階碼)e 23位有效尾數(shù)m
雙精度:1位符號(hào)位 11位偏移指數(shù)(階碼)s 52位有效位數(shù)m
說(shuō)明:
<1>此時(shí)可以將浮點(diǎn)數(shù)的階碼值變成非負(fù)整數(shù),便于浮點(diǎn)數(shù)的比較和排序,因?yàn)橐拼a是真值的一種去符號(hào)化的表示,階碼之所以用移碼是因?yàn)橐拼a值大的指數(shù)就大,通俗點(diǎn)說(shuō)就是把負(fù)數(shù)范圍的數(shù)表示為正數(shù),方便比較。
<2>在IEE754中,其尾數(shù)形式默認(rèn)是1.×××××,其中部分保存的是×××××(1被隱藏了),保留了更多的有效位。
<3>拿單精度為例,8位偏移指數(shù)(階碼)其實(shí)就是移碼-1,(移碼是數(shù)值位與補(bǔ)碼相同,符號(hào)位與補(bǔ)碼相反)。雙精度也一樣
為什么階碼用移碼來(lái)表示呢?我覺(jué)得是為了表達(dá)更大的數(shù)
表示:
單精度:X = (-1)s×2e-127×1.m
雙精度:X = (-1)s×2e-1023×1.m
<4>全0階碼即e=0,m非0即m≠0,表示非規(guī)格化浮點(diǎn)數(shù)
(對(duì)應(yīng)下面表中的第二行)

看例子:

  • 對(duì)下列數(shù)據(jù)進(jìn)行規(guī)格化編碼,機(jī)內(nèi)格式如下所示:
    數(shù)符(1位)階碼5位(1位階符)尾數(shù)10位(1位階符)
    其中,階碼5位(1位階符),采用移碼;尾數(shù)11位(1位數(shù)符),采用補(bǔ)碼
    (這種題要審題 他不是使用IEE754進(jìn)行規(guī)格化的 按題目的要求進(jìn)行規(guī)格化)
    (1) +10101.011B = 0.10101 011 00 × 2101
    階碼:5移碼=0101移碼=10101
    尾數(shù):0.1010101100補(bǔ)碼=0.1010101100
    因此二進(jìn)制代碼形式:0 10101 1010101100
    (2)-0.125D=-0.001B=-1×2-3
    階碼:-3移碼=-0011移碼=01101
    尾數(shù):0.1補(bǔ)碼=0.1000000000
    二進(jìn)制代碼形式:1 01101 1000000000
    為什么是1000000000
  • 采用IEE754單精度浮點(diǎn)數(shù)格式表示對(duì)下列數(shù)據(jù):
    (1)
    +10101.011B=1.0101011 × 2100
    =(-1)0×1.0101011×24+01111111
    =0 10000011 01010110000000000000000
    =41AB0000H
    (2)
    -0.125D=-0.001B=-1.000000×2-010
    =(-1)1×1.00000×2-3+01111111
    =(-1)1×1.00000×201111101
    =1 01111101 00000000000000000000000
    =BE800000H
    記住:進(jìn)行轉(zhuǎn)換的時(shí)候是進(jìn)行二進(jìn)制編碼的
  • 第二道題是講二進(jìn)制或者十進(jìn)制數(shù)轉(zhuǎn)換成用IEE754格式進(jìn)行表示的,那么將IEE754對(duì)應(yīng)的浮點(diǎn)數(shù)轉(zhuǎn)換成對(duì)應(yīng)的十進(jìn)制數(shù)的方法是什么呢?答:首先將階碼-127得到e,分離出s,m,然后代入IEE754公式X = (-1)s×2e-127×1.m即可。
  • NO.3 介紹西文字符的編碼,中文編碼,由于不考,就不看了。
    NO.4 十進(jìn)制數(shù)的編碼
    其實(shí)BCD碼是用四位二進(jìn)制數(shù)來(lái)表示一位十進(jìn)制數(shù)的方法!

    數(shù)據(jù)信息的表示方法習(xí)題

  • 再看這道題的時(shí)候,腦子應(yīng)該要記著在各種編碼中的一些易錯(cuò)點(diǎn),還要理解題中所講。
    答:題目說(shuō)這兩個(gè)數(shù)都是用IEE754格式進(jìn)行表示的
    首先R1=0000 0000 0000 0000 0001 0000 1000 1011B
    R2=1000 0000 1000 0000 0001 0000 1000 1011B
    (1)在無(wú)符號(hào)加法指令中:
    R1 R2對(duì)于該指令都是無(wú)符號(hào)表示的,所以其真值都是看他本身,直接R1+R2=80802116H就可以了
    (2)在帶符號(hào)整數(shù)乘法指令中:
    題目中給了帶符號(hào)整數(shù)的是用補(bǔ)碼表示,R1 R2都是整數(shù)的補(bǔ)碼,所以看二進(jìn)制表示形式,R1是正數(shù),R2是負(fù)數(shù)。
    所以說(shuō)R1真值是他本身=0000108BH,R2的真值是=-7F7FEF75H(是通過(guò)補(bǔ)碼轉(zhuǎn)原碼得到的!)
    R1×R2=對(duì)應(yīng)真值相乘
    (3)在單精度浮點(diǎn)數(shù)減法指令中:那么R1 R2就是操作數(shù)得IEE754形式表示,也就是找到它們各自的符號(hào)位,階碼位,尾數(shù)位,然后再進(jìn)行減法
    首先化簡(jiǎn)R1:
    符號(hào)位為 0,階碼為00000000,尾數(shù)部分為000000000010000100011B,因此它是非規(guī)格化浮點(diǎn)數(shù)(階碼全0,非0尾數(shù),指數(shù)為-126,尾數(shù)沒(méi)有隱藏的1)。所以我們用16進(jìn)制(當(dāng)然按理來(lái)說(shuō)得用23位二進(jìn)制數(shù)表示)表示尾數(shù)為:+0.002116H
    R1的真值為(-1)0×0.002116H×2-126
    化簡(jiǎn)R2:
    符號(hào)位為1,階碼為00000001,尾數(shù)部分為00000000001000010001011,因此它是規(guī)格化浮點(diǎn)數(shù)(指數(shù)為1-127=-126,尾數(shù)有隱藏的1),R2的真值為(-1)1×-1002116H×2-126

  • 第一問(wèn)和上面有一道題差不多,要時(shí)刻記得我們是使用題目要求的二進(jìn)制表示形式來(lái)表示一個(gè)十進(jìn)制數(shù),所以說(shuō)對(duì)于十進(jìn)制數(shù)一定要先化成二進(jìn)制數(shù)!
    (1) +1.75D=1.11B=0.011100×22=(-1)0×0.011100×41
    =(-1)0×0.011100×41+32=(-1)0×0.011100×410001
    +19D=10011B=…和上面化簡(jiǎn)思路差不多
    -1/8=-0.001=- 0.1×4-1=…和上面化簡(jiǎn)思路差不多
    (2)
    ① 規(guī)格化浮點(diǎn)數(shù)的表示范圍:
    最大正數(shù)
    +0.111111B×411111=(0.333)4×415
    最小正數(shù):
    +0.01000B×400000=(0.100)4×4-16
    最大負(fù)數(shù):
    -0.010000B×400000=(-0.100)4×4-16
    最小負(fù)數(shù):
    -1000000B×411111=(-1.000000)×415
    ① 12位定點(diǎn)補(bǔ)碼整數(shù)表示范圍:
    最大正數(shù):+011111111111=011111111111=2047
    最小正數(shù):+000000000001=000000000001= + 1
    最大負(fù)數(shù):-000000000001補(bǔ)=111111111111=-1
    最小負(fù)數(shù):=-10000000000補(bǔ)=1000000000000=-2048
    ① 12位定點(diǎn)補(bǔ)碼小數(shù)表示范圍:
    最大正數(shù):+0.11111111111=0.11111111111=2047/2048
    最小正數(shù):+0.00000000001=000000000001= 1/2048
    最大負(fù)數(shù):-0.00000000000補(bǔ)=1.11111111111
    最小負(fù)數(shù):-1.00000000000補(bǔ)=1.00000000000
    浮點(diǎn)數(shù)表示范圍大,精度低;好定點(diǎn)數(shù)范圍小,精度

  • (1)+1.75=1.11B=1.11B×20
    階碼為:0+127=01111111B
    數(shù)符為:0
    尾數(shù)為:1.11000000000000000000000
    (2)+258=10000010B=1.0000001B×2sup>8
    階碼為:8+127=135
    數(shù)符為:0
    尾數(shù)為:00000010000000000000000
  • 數(shù)據(jù)校驗(yàn)碼

    為了防止出錯(cuò),要提高計(jì)算機(jī)硬件本身的可靠性,減少傳送中各環(huán)節(jié)的差錯(cuò)外。可以使數(shù)據(jù)經(jīng)過(guò)某種形式的編碼后,具有發(fā)現(xiàn)自身錯(cuò)誤的特征,甚至給出錯(cuò)誤所在的準(zhǔn)確位置。具有發(fā)現(xiàn)錯(cuò)誤,或者同時(shí)指出錯(cuò)誤所在位置特征的數(shù)據(jù)編碼稱為數(shù)據(jù)校驗(yàn)碼。

    碼距與檢錯(cuò)或糾錯(cuò)能力的關(guān)系
    碼距:在信息編碼中,兩個(gè)合法代碼對(duì)應(yīng)位上編碼不同的位數(shù)稱為碼距,又稱海明距離。舉例如下:10101和00110從第一位開(kāi)始依次有第一位、第四、第五位不同,則海明距離為3。
    簡(jiǎn)單奇偶校驗(yàn)
    思想:
    奇偶校驗(yàn)碼是一種結(jié)構(gòu)最簡(jiǎn)單的線性分組碼,在被傳送的n位信息上, 加上一個(gè)二進(jìn)制位作為校驗(yàn)位,使配置后的n+1位二進(jìn)制代碼中1的個(gè)數(shù)為奇數(shù)或偶數(shù)。也比如奇數(shù)校驗(yàn),就是說(shuō)在傳送的位數(shù)中,少一個(gè)1或多一個(gè)1成了偶數(shù)個(gè)1,那么奇校驗(yàn)電路發(fā)生差錯(cuò)。但是只能檢測(cè)出一位出錯(cuò),并且沒(méi)法判斷出錯(cuò)的位置
    根據(jù)公式:
    碼距=2
    實(shí)現(xiàn)方式:
    有效信息k位+一個(gè)校驗(yàn)位(加上一個(gè)校驗(yàn)位使得整個(gè)編碼1的個(gè)數(shù)為奇數(shù)或偶數(shù))
    校驗(yàn)檢測(cè):
    讀出編碼送入校驗(yàn)電路,看讀出的代碼是否有錯(cuò),如果有錯(cuò),則"奇校驗(yàn)出錯(cuò)"=0,否則,“奇校驗(yàn)出錯(cuò)”=1

    交叉奇偶校驗(yàn)
    思想:
    計(jì)算機(jī)在進(jìn)行大量字節(jié)(數(shù)據(jù)塊)傳送時(shí),不僅每一個(gè)字節(jié)有一個(gè)奇偶校驗(yàn)位做橫向校驗(yàn),而且全部字節(jié)的同一位也設(shè)置一個(gè)奇偶校驗(yàn)位做縱向校驗(yàn),這種橫向、縱向同時(shí)校驗(yàn)的方法稱為交叉校驗(yàn)。
    就是這樣子:

    交叉校驗(yàn)可以發(fā)現(xiàn)兩位同時(shí)出錯(cuò)的情況,假設(shè)第2字節(jié)的A6、A4(藍(lán)色字體的)兩位均出錯(cuò),橫向校驗(yàn)位無(wú)法檢出錯(cuò)誤,但第A6、A4位所在列的縱向校驗(yàn)位會(huì)顯示出錯(cuò),這與前述的簡(jiǎn)單奇偶校驗(yàn)相比要保險(xiǎn)多了。
    (通過(guò)理解,這種方法可以糾正一位錯(cuò)誤 出錯(cuò)不同行不同列兩位錯(cuò)誤 一行兩位 但是四個(gè)頂點(diǎn)同時(shí)出錯(cuò)沒(méi)辦法檢測(cè)——這個(gè)需要你畫(huà)圖,自己理解一下)

    海明校驗(yàn)碼
    思想:
    海明碼實(shí)際上是一種多重奇偶校驗(yàn),、在有效信息位中加入幾個(gè)校驗(yàn)位形成海明碼,使碼距比較均勻地拉大,并把海明碼的每一個(gè)二進(jìn)制位分配到幾個(gè)奇偶校驗(yàn)組中。當(dāng)某一位出錯(cuò)后,就會(huì)引起有關(guān)的幾個(gè)校驗(yàn)位的值發(fā)生變化,這不但可以發(fā)現(xiàn)錯(cuò)誤,還能指出錯(cuò)誤的位置,為自動(dòng)糾錯(cuò)提供了依據(jù)。
    實(shí)現(xiàn)方式:
    有效信息k位+r個(gè)校驗(yàn)位 N=k+r≤2r-1
    設(shè)k+r位海明碼從左到右依次為1,2,3…k+r位,r位校驗(yàn)碼即為Pi(i=1,2,3…,r),分別微語(yǔ)k+r位海明編碼的第2i-1(i=1,2,3,…,r)其余依次放置被校驗(yàn)的數(shù)據(jù)位。
    校驗(yàn)檢測(cè)步驟:
    ①根據(jù)給出的規(guī)則,b1數(shù)據(jù)位被P1 P2校驗(yàn);b2數(shù)據(jù)位被P1 P3校驗(yàn);b3數(shù)據(jù)位被P2 P3校驗(yàn);b4數(shù)據(jù)位被P1 P2 P3校驗(yàn);b5數(shù)據(jù)位被P1 P4校驗(yàn);b6…;b7…
    ②按照偶校驗(yàn)計(jì)算出P1~P4四個(gè)校驗(yàn)位的值
    ③設(shè)置4個(gè)指錯(cuò)字,指錯(cuò)字怎么來(lái)的呢?例如:G4=P4異或所校驗(yàn)的分組
    (思考一下正是多重奇偶校驗(yàn))

    一個(gè)完整的校驗(yàn)過(guò)程:

  • 假設(shè)還是上面的7,4海明校驗(yàn)。
    不難發(fā)現(xiàn),海明編碼一個(gè)位發(fā)生變化會(huì)引起至少兩個(gè)校驗(yàn)位發(fā)生變化

    思想:
    指錯(cuò)字為0,不一定沒(méi)錯(cuò)。這么想,比如上面的P1 b1 P2都出錯(cuò)了,他對(duì)應(yīng)G1 G2公式的偶特性并沒(méi)有發(fā)生變化,因此校驗(yàn)不出來(lái)。
    一位錯(cuò)和兩位錯(cuò)不能由指錯(cuò)字區(qū)別。這么想,如果b1,b2同時(shí)出錯(cuò)和僅b3同時(shí)出錯(cuò)時(shí)指錯(cuò)字相同
  • 循環(huán)冗余校驗(yàn)碼
    思想:
    基于模2運(yùn)算建立編碼規(guī)律的校驗(yàn)碼,可以通過(guò)模2運(yùn)算來(lái)建立有效信息位和校驗(yàn)位之間的約定關(guān)系。這種約定關(guān)系為:假設(shè)n是有效數(shù)據(jù)信息位位數(shù),r是校驗(yàn)位位數(shù)。則n位有效信息位與r位校驗(yàn)位所拼接的數(shù)(k=n+r位長(zhǎng)),能被一約定的數(shù)除盡。

    介紹模2除運(yùn)算:
    要懂得模2除的基本方法

    實(shí)現(xiàn)以及檢錯(cuò)方式:
    有效信息k位+r個(gè)校驗(yàn)位 N=k+r≤2r-1
    直接上例題吧:

  • 設(shè)四位有效信息位是1100,選用生成多項(xiàng)式G(x)=1011,試求有效信息位1100的CRC編碼。
    ①將有效信息位1100表示為多項(xiàng)式:
    M(x)=X3+X2=1100
    ②R(x) = M(x)×X3 模二除 G(x)
    ③M(x)左移r=3位,得M(x)×X3
    M(x)×X3=X6+X5=1100000
    ④M(x)×X3與r位余數(shù)R(x) 作“模2加”,即可求得它的CRC編碼
    M(x)×X3+R(x)=1100000+010=1100010
    k=4 r=3
    ⑤出錯(cuò)校驗(yàn):

    說(shuō)明:海明校驗(yàn)對(duì)于生成多項(xiàng)式的要求很高,任何一位出錯(cuò),應(yīng)使余數(shù)不為零;不同位發(fā)生錯(cuò)誤,都應(yīng)使余數(shù)不同;用余數(shù)補(bǔ)零作“模2除”,應(yīng)使余數(shù)循環(huán)。最高位和最低為必須為1…所以生成多項(xiàng)式不容易求,思考生成多項(xiàng)式到底是怎么求的呢??
  • 數(shù)據(jù)校驗(yàn)碼習(xí)題

  • 傳輸信息展開(kāi)為二進(jìn)制形式為:
    1000 1111 0011 1100 1010 1011 1001 0110
    根據(jù)奇校驗(yàn)公式各個(gè)校驗(yàn)位為:
    0 1 0 1
    接收到的信息
    1000 0111 0011 1100 1010 1011 1001 0110
    校驗(yàn)位為:
    0 1 0 1
    根據(jù)接收到的信息數(shù)據(jù)計(jì)算出4位奇校驗(yàn)位為
    1 1 0 1
    將計(jì)算出的4位校驗(yàn)位和接收到的4位校驗(yàn)位異或
    得到1、0、0、0,說(shuō)明數(shù)據(jù)信息的第一個(gè)字節(jié)發(fā)生了變化,出現(xiàn)錯(cuò)誤


  • ②根據(jù)公式可以計(jì)算出各個(gè)校驗(yàn)位:

    ③計(jì)算出故障字

    3.


    解答:根據(jù)上面交叉冗余校驗(yàn)的步驟進(jìn)行校驗(yàn)即可

    End:

    1. 自己總結(jié)的大部分都是來(lái)自華中科技大學(xué)mooc
    2. 總結(jié)內(nèi)容出現(xiàn)錯(cuò)誤在所難免,寫(xiě)了大概9個(gè)多小時(shí)!
    3. 學(xué)校的計(jì)組老師反正是什么都沒(méi)有教會(huì)我,教學(xué)水平與態(tài)度不敢恭維。

    總結(jié)

    以上是生活随笔為你收集整理的计算机组成与体系结构——计算机系统概述、数据表示方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。