一、现代计算机的结构
二、各个硬件部件
1、主存储器的基本组成
Memory Address Register:(存储地址寄存器)
Memory Data Register:(存储数据寄存器)
1.2、数据在存储体内按地址存储
存储单元:每个存储单元存放一串二进制代码
存储字(word):存储单元中二进制代码的组合
存储字长:存储单元中二进制代码的位数
关系:
MAR位数反映存储单元的个数
MDR位数=存储字长
例:MAR=4位 --> 总共有2的4次方个存储单元
2、运算器的基本组成
运算器用于实现算数运算、逻辑运算
ACC:累加器,用于存放操作数,或运算结果。
MQ:乘商寄存器,在乘、除运算时,用于存放操作数或运算结果。
x:通用的操作数寄存器,用于存放操作数
ALU:算术逻辑单元,通过内部复杂的电路实现算数运算、逻辑运算
3、控制器的基本组成
Cu:控制单元,分析指令,给出控制信号
IR:指令寄存器,存放当前执行的指令
PC:程序计数器,存放下一条指令地址,有自动加1功能
4、计算机工作过程
5、总结、
三、计算机系统的层次结构
下层是上层的基础,上层是下层的扩展
四、计算机性能指标
1、存储器的性能指标
MA位数反映存储单元的个数(最多支持多少个)
MDR位数=存储字长=每个存储单元的大小
总容量=存储单元个数×存储字长bit
=存储单元个数×存储字长/8 Byte
(1Byte = 8bit)1字节=8比特
例:MAR为32位,MDR为8位,总容量=2的32次方*8bit=4GB
2、cpu的性能指标
(1)cpu主频:cpu内数字脉冲信号振荡的频率
=1/cpu时钟周期(每个脉冲的时间)
例:主频等于10Hz意思为每秒钟有十个脉冲信号
(2)CPI:执行一条指令所需的时钟周期数
(不同的指令,cpi不同。甚至相同的指令,也可能有变化)
2.1、例:某CPU主频为1000Hz,某程序包含100条指令
平均来看指令的CPI=3。该程序在该CPU上执行需要多久?
100*3*1/1000=0.3s
cpu执行时间==CPU时钟周期数/主频=(指令条数*CPI)/主频
(3)IPS:每秒执行多少条指令
=主频/平均CPI(每秒的数字脉冲数即出现多少的时钟周期/执行一条指令所需的时钟周期数)
(4)FLOPS:每秒执行多少次浮点运算
3、系统整体的性能指标
(1)数据通路带宽:
数据总线一次所能并行传送信息的位数(各硬件部件通过数据总线传输数据)
(2)吞吐量:
指系统在单位时间内处理请求的数量。
它取决于信息能多快地输入内存,CPU能多快地取指令,数据能多快地从内存取出或存入,以及所得结果能多快地从内存送给一台外部设备。这些步骤中的每一步都关系到主存,因此,系统吞吐量主要取决于主存的存取周期。
(3)响应时间:
指从用户向计算机发送一个请求,到系统对该请求做出响应并获得它所需要的结果的等待时间。
4、总结
五、BCD码
1、8421码
8421码中1010~1111没有定义,当表示10到15时,需要进行+6运算
例:13表示为 0001 0011
计算9+9过程:1001+1001=1 0010 不在映射表里进行+6运算
0010+0110 = 1000 加上之前的1 结果为0001 1000
2、余3码
实质为8421码+0011得到的
3、2421码
实质为改变权值定义
0-4第一位都为0,5以后第一位都为1
4、总结
六、字符与字符串
七、奇偶校验
1、定义
由若干位代码组成的一个字叫码字
将两个码字逐位进行对比,具有不同的位的个数称为两个码字间的距离。
一种编码方案可能有若干个合法码字,各合法码字间的最小距离称为“码距”。
例:
3位二进制有8个编码,这四个编码是合法的码字。
A和C的码字相比有两个二进制位是不一样的,所以这两个码字的距离为2.
以上表中的码字的码距都为2。
2、原理
当有1个bite位发生了变化,就会使码字进入一个非法的状态,就可以检测出数据的错误。
当d=1时,无检错能力;当d=2时,有检错能力;当d3时,若设计合理,可能具有检错、纠错能力
3、奇偶校验码
奇校验码:整个校验码(有效信息位和校验位)中“1” 的个数为奇数。
偶校验码:整个校验码(有效信息位和校验位)中“1” 的个数为偶数。
3.1、例
给出两个编码1001101和1010111的奇校验码和偶校验码。
设最高位为校验位,余7位是信息位,则对应的奇偶校验码为:
奇校验: (1)1001101 (0)1010111
偶校验: (0)001001101 (1)1010111
4、偶校验的硬件实现
各信息进行异或(模2加)运算,得到的结果即为偶校验位
(异或不同为1)
上例中
红色代表出错
5、总结
八、海明码
1、设计思路
将信息位分组进行偶校验,设置多个校验位,多个校验位标注出错位置。
2、需要多少校验位?
信息位为n,校验位为k,信息位+校验位共n+k位
而校验位有2的k次方种状态,其中有一种是正确的状态
所以2的k次方>=n+k+1
3、例(全过程在此,强烈推荐看一遍。4:19起)
信息位:1010
(1)确定海明码的位数:2的k次方>=n+k+1
n=4得k=3
(2)设信息位D1D2D3D4(1010) ,共4位,校验位P3P2P1共3位,对应的海明码为H7H6H5H4H3H2H1。
(3)确定校验位的分布
校验位Pi放在海明位号为2的i-1次的位置上,信息位按顺序放到其余位置
求校验位的值:
H3 : 3->011
H5 : 5->101
H6 : 6->110
H7 : 7->111
p1所属分组为上边二进制数最后一位为1的数,所以p1分组为h3h5h7,将这三个进行异或得到p1的值
p2所属分组为上边二进制数倒数第二位为1的数,所以p2分组为h3h6h7,将三个进行异或得到p2的值
同理得p3:
得:p1=0,p2=1,p3=0。
(4)纠错
S3S2S1对应出错位置
此时的海明码:纠错能力–1位、检错能力–2位
但无法区分到底是1位错还是2位错
(5)加入全校验位,对整体进行偶校验
S3S2S1 = 000且全体偶校验成功–>无错误
S3S2S1≠000且全体偶校验失败–>有1位错,纠正即可
S3S2S1≠000且全体偶校验成功>有2位错,需重传