一、计算机的性能指标:
- 1、主存容量:主存储器所能存储信息的最大容量。
MAR * MDR
- 2、主频和cpu时钟周期
CPU时钟频率 = 1 / CPU时钟周期
- 3、CPI :执行一条指令所需的时钟周期数。
CPI 是一个平均值,表示所有指令执行所需的平均时钟周期数
- 4、CPU执行时间
CPU执行时间 = (指令数 * CPI)/ 主频 = CPU时钟周期数 / 主频
- 5、MIPS :每秒执行多少百万条指令。
MIPS = 主频 /(CPI * 10^6) = 指令条数/(执行时间*10^6)
- 6、FLOPS:每秒执行多少次浮点运算。
另外还有M、G、T、P等数量级。
7、运算速度:吞吐量和响应时间。
8、数据通路带宽:数据总线能一次并行传送信息的位数
9、机器字长:计算机进行一次整数运算所能处理的二进制数据的位数。
二、校验码:
1、奇偶校验::可以发现一位错误且是奇数位出错,不能纠错;
在原编码上加上一个校验位,码距变为2,只可以检测出一位错误,而无法纠错;
假如采用偶校验位:
1001101 偶校验:01001101
假如一位传输出错 变为 01001100 则,异或后为1与校验位不同,则判断出错;
假如二位传输出错 变为 01001110 则,异或后为0与校验位相同,则判断不出出错;
假如三位传输出错 变为 01001010 则,异或后为1与校验位不同,则判断出错;
通过规律可以看到,只能当奇数位出错时,才能判断出来;
2、海明码::可以发现2位错误,只能纠正一位错误;
eg:在n = 4,k = 3时,求1010的海明码;
(1)确定海明码位数;
n + k < 2^k -1
n为有效位,k为校验位
(2)确定校验位分布
规定校验位在2^(i-1)的位置上,也就是 1,2,4,8 ……
也就是:
D4 D3 D2 P3 D1 P2 P1
7 6 5 4 3 2 1
(3)分组
位置 | P3(4) | P2(2) | P1(1) |
---|---|---|---|
D1(3) | 0 | 1 | 1 |
D2(5) | 1 | 0 | 1 |
D3(6) | 1 | 1 | 0 |
D4(7) | 1 | 1 | 1 |
P1 : D1 + D2 + D4
P2 :D1 + D3 + D4
P3:D2 + D3 + D4
(4)求校验位
D4 D3 D2 P3 D1 P2 P1
1 0 1 0
P1 = D1 ⊕ D2 ⊕ D4 = 0 ⊕ 1 ⊕ 1 = 0
P2 = D1 ⊕ D3 ⊕ D4 = 0 ⊕ 0 ⊕ 1 = 1
P3 = D2 ⊕ D3 ⊕ D4 = 1 ⊕ 0 ⊕ 1 = 0
所以,海明码为
D4 D3 D2 P3 D1 P2 P1
1 0 1 0 0 1 0
(5)校验
S1 = P1⊕ D1 ⊕ D2 ⊕ D4
S2 = P2⊕ D1 ⊕ D3 ⊕ D4
S3 = P3⊕ D2 ⊕ D3 ⊕ D4
若S3S2S1的值为000则,说明无错
(6)全校验位:
在使用时,还需要在最高位添加一位全校验位;
因为,当P1P2出错时,S1=1;S2=1;S3=0; 011为3;但是;海明码中这个位置并不是出错位;
因此无法区分一位出现错误,还是两位出现错误;
解决方法:全校验位
若S3S2S1的值为000则,说明无错;
若S3S2S1的值不为000且全体偶校验失败则说明有一位出错,就可以纠正;
若S3S2S1的值不为000且全体偶校验成功则说明有两位出错,则需要重传;
3、循环冗余校验码(CRC)
模二除