1. 計(jì)算機(jī)硬件
計(jì)算機(jī)硬件由:運(yùn)算器削樊、控制器、存儲(chǔ)器兔毒、輸入&輸出設(shè)備構(gòu)成漫贞。
其中運(yùn)算器和控制器集成在CPU。
存儲(chǔ)設(shè)備分為內(nèi)存和外存育叁。
2. CPU
CPU依據(jù)指令的周期不同階段來(lái)區(qū)分二進(jìn)制的指令和數(shù)據(jù)迅脐。
2.1 運(yùn)算器
執(zhí)行算術(shù)運(yùn)算和邏輯運(yùn)算并執(zhí)行邏輯測(cè)試。
- 算術(shù)邏輯單元ARU: 實(shí)現(xiàn)對(duì)數(shù)據(jù)算術(shù)運(yùn)算。
- 累加寄存器AC:存儲(chǔ)計(jì)算結(jié)果或源操作數(shù)。
- 數(shù)據(jù)緩沖寄存器DR:臨時(shí)存放內(nèi)存指出標(biāo)志荠诬。
- 狀態(tài)條件寄存器PSW:保存指令運(yùn)行結(jié)果的條碼內(nèi)容。
2.2 控制器
控制CPU工作
- 指令寄存器IR: 暫時(shí)存儲(chǔ)CPU執(zhí)行指令树碱。
- 程序計(jì)數(shù)器PC:存放執(zhí)行執(zhí)行地址。
- 地址寄存器:保存CPU訪問(wèn)內(nèi)存的地址变秦。
- 指令譯碼器ID:分析指令操作碼。
3. 數(shù)據(jù)校驗(yàn)
3.1 奇偶校驗(yàn)
在原始數(shù)據(jù)流的頭部或者末尾添加一位bit框舔,此bit用于校驗(yàn)此數(shù)據(jù)包的正確與否蹦玫。
優(yōu)點(diǎn):原理簡(jiǎn)單,實(shí)現(xiàn)方便刘绣。
缺點(diǎn):
- 奇偶校驗(yàn)的檢錯(cuò)率只有50%樱溉,因?yàn)橹挥衅鏀?shù)個(gè)數(shù)據(jù)位發(fā)生變化能檢測(cè)到,如果偶數(shù)個(gè)數(shù)據(jù)位發(fā)生變化纬凤,奇偶校驗(yàn)方式不能檢測(cè)出錯(cuò)誤福贞。
- 奇偶校驗(yàn)只能發(fā)現(xiàn)錯(cuò)誤,但不能糾正錯(cuò)誤停士。
- 每傳輸一個(gè)字節(jié)都需要加一位校驗(yàn)位挖帘,對(duì)傳輸效率影響很大。
原始數(shù)據(jù) | 奇校驗(yàn) | 偶校驗(yàn) |
---|---|---|
1011000 | 10110000 | 10110001 |
1010000 | 10100001 | 10100000 |
3.2 循環(huán)冗余校驗(yàn)CRC
生成多項(xiàng)式
生成多項(xiàng)式將一個(gè)任意的二進(jìn)制數(shù)轉(zhuǎn)換為多項(xiàng)式形式得到的一個(gè)特征多項(xiàng)式恋技,如101011
對(duì)應(yīng)的多項(xiàng)式為:
反之拇舀,由多項(xiàng)式轉(zhuǎn)二進(jìn)制方式為判斷x的幕是否存在,存在的位置為1蜻底,反之為0骄崩。如:
- 首先從0開(kāi)始而1在式中存在說(shuō)明二進(jìn)制第0位為1,同時(shí)最高幕為4可知二進(jìn)制長(zhǎng)度為5。
- 同理x^1 和x^4也存在要拂,第二抠璃、第五位為1 。
- 其他位不存在對(duì)應(yīng)位置為0脱惰,因此得到
10011
模二運(yùn)算
模二運(yùn)算是一種二進(jìn)制算法搏嗡。與四則運(yùn)算相同,模2運(yùn)算也包括模2加枪芒、模2減彻况、模2乘、模2除四種二進(jìn)制運(yùn)算舅踪。而且纽甘,模2運(yùn)算也使用與四則運(yùn)算相同的運(yùn)算符,即“+”表示模2加抽碌,“-”表示模2減悍赢,“×”或“·”表示模2乘,“÷”或“/”表示模2除货徙。模二加減法運(yùn)算其實(shí)就是異或運(yùn)算左权,如:1101 ± 1001 = 0100。
模二除法:
CRC
CRC校驗(yàn)碼求解過(guò)程:
- 根據(jù)多項(xiàng)式得到除數(shù)二進(jìn)制痴颊,假設(shè)多項(xiàng)式最高幕為n赏迟,除數(shù)二進(jìn)制長(zhǎng)度則為n+1。
- 在原碼末尾補(bǔ)充n位0并與除數(shù)二進(jìn)制進(jìn)行模二除法運(yùn)算蠢棱,得到余數(shù)R锌杀。
- 如若R長(zhǎng)度小于n,則在R左側(cè)補(bǔ)充0。
- 將R添加到原碼末尾得到CRC數(shù)據(jù)幀泻仙。
如數(shù)據(jù)信息1100
,多項(xiàng)式為糕再,則CRC編碼:1100010
// 1. 獲取除數(shù)二進(jìn)制p
p = 1011
// 2. 原信息補(bǔ)充3位0得到1100000
// 計(jì)算模二除法:1100 XOR 1011 = 0111 => 1110 XOR 1011=0101 => 1010 XOR 1011 = 0001 => 10
r = 10
// r長(zhǎng)度小于3,前面加0
r = 010
crc = 1100010