一、重点知识点
- 计算机硬件组成、运算器、控制器
- 奇偶校验码、循环冗余校验码、海明码
- 指令系统:指令操作数寻址方式、CISC和RISC、指令流水线的计算
- 存储系统:分级存储、局部性原理、cache、主存编址计算、磁盘
- 输入输出技术:程序查询方式、中断方式、DMA
- 总线结构
- 可靠性指标、串并联系统可靠性计算
二、计算机硬件组成
- 计算机基本硬件系统五大组成部分:运算器、控制器、存储器、输入设备和输出设备
- 运算器的四个重要寄存器:
- 算术逻辑单元ALU(实现对数据的算术和逻辑运算)
- 累加寄存器AC(运算结果和源操作数的存放区)
- 数据缓冲寄存器DR(暂时存放内存的指令或数据)
- 状态条件寄存器PSW(保存指令运算结果的条件码内容,如溢出标志等)
- 总结
- 执行所有的算术运算,如加减乘除等;
- 执行所有的逻辑运算进行逻辑测试,如与、或、非、比较等。
- 考点
- 归属问题:下面哪几个属于运算器
- 功能对应的运算器:如暂时存放内存的指令或数据是哪个寄存器
- 控制器的四个重要寄存器:
- 指令寄存器IR(暂存CPU执行指令)
- 程序计数器PC(存放指令执行地址)
- 地址寄存器AR(保存当前CPU所访问的内存地址)
- 指令译码器ID(分析指令操作码)
- 总结
- 控制整个CPU的工作,最为重要。
- CPU依据指令周期的不同阶段来区分二进制的指令和数据,因为在指令周期的不同阶段,指令会命令CPU分别去取指令或者数据。
三、计算机系统体系结构
四、存储系统
- 计算机采用分级存储体系的主要目的是为了解决存储容量、成本和速度之间的矛盾问题。
- 两级存储:Cache-主存、主存-辅存(虚拟存储体系)。
- 局部性原理:总的来说,在CPU运行时,所访问的数据会趋向于一个较小的局部空间地址内,包括下面两个方面:
- 时间局部性原理:如果一个数据项正在被访问,那么在近期它很可能会被再次访问,即在相邻的时间里会访问同一个数据项。
- 空间局部性原理:在最近的将来会用到的数据的地址和现在正在访问的数据地址很可能是相近的,即相邻的空间地址会被连续访问。
1、存储系统-cache
- 高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
- Cache由控制部分和存储器组成,存储器存储数据,控制部分判断CPU要访问的数据是否在Cache中,在则命中,不在则依据一定的算法从主存中替换。
- 地址映射:在CPU工作时,送出的是主存单元的地址,而应从Cache存储器中读/写信息。这就需要将主存地址转换为Cache存储器地址,这种地址的转换称为地址映射,由硬件自动完成映射,分为下列三种方法:直接映射、全相连映射、组组相连映射。
- 替换算法的目标就是使Cache获得尽可能高的命中率。常见算法有如下几种:
- 随机替换算法
- 先进先出算法
- 近期最少使用算法
- 优化替换算法
- 命中率及平均时间
- Cache有一个命中率的概念,即当CPU所访问的数据在Cache中时,命中,直接从Cache中读取数据,设读取一次Cache时间为1ns,若CPU访问的数据不在Cache中,则需要从内存中读取,设读取一次内存的时间为1000ns,若在CPU多次读取数据过程中,有90%命中Cache,则CPU读取一次的平均时间为(90%*1+10%*1000)ns
五、循环冗余校验码CRC
环冗余校验码(CRC),简称循环码,是一种常用的、具有检错、纠错能力的校验码,在早期的通信中运用广泛。循环冗余校验码常用于外存储器和计算机同步通信的数据校验。
例:假设原始信息串为10110,CRC 的生成多项式为G(x)=x^4+x+1,求CRC 校验码。
(1)
在原始信息位后面添0
,假设
生成多项式的阶为r,则在原始信息位后添加r个0
, 本题中,G(x)阶为4,则在原始信息串后加4个0,得到的新串为101100000,作为被
除数。
(2)
由多项式得到除数
,多项中
x的幂指数存在的位置1,不存在的位置0
。本题中, x的幂指数为0,1,4的变量都存在,而幂指数为2,3的不存在,因此得到串10011。
(3)
生成CRC校验码
,将
前两步得出的被除数和除数进行模2除法运算
(即不进位也 不借位的除法运算)。除法过程如下图所示。
得到余数1111
。
注意:
余数不足r,则余数左边用若干个0 补齐
。如求得余数为11,r=4,则补两个0 得到0011。
(4)
生成最终发送信息串,将余数添加到原始信息后
。上例中,原始信息为10110, 添加余数1111 后,结果为10110 1111。发送方将此数据发送给接收方。
(5)
接收方进行校验
。接收方的CRC 校验过程与生成过程类似,
接收方接收了带校验和的帧后,用多项式G(x)来除
。余数为0,则表示信息无错;否则要求发送方进行重传。
六、海明码
汉明码(Hamming Code),是在电信领域的一种线性调试码,以发明者理查德·卫斯里·汉明的名字命名。汉明码在传输的消息流中插入验证码,当计算机存储或移动数据时,可能会产生数据位错误,以侦测并更正单一比特错误。由于汉明编码简单,它们被广泛应用于内存(RAM)。
例:求信息1011的海明码
1.校验位的位数和具体的数据位的位数之间的关系
所有位都编号,从最低位编号,从1开始递增,校验位处于2的n(n=0 1 2……)次方中,即处于第
1,2,4,8,16,32,……位上
,其余位才能填充真正的数据位,若信息数据为1011,则可知,第1,2,4位为 校验位,第3,5,6,7位为数据位,用来从低位开始存放1011,得出信息位和校验位分布如下:
2.计算校验码
◆
将
所有信息位的编号都拆分成二进制表示
,如下图所示:
◆
上图中,7=4+2+1,表示
7由第4位校验位(r2)和第2位校验位(r1)和第1位校验位(r0)共同校验
,同理,第6位数据位6=4+2,第5位数据位5=4+1,第3位数据位3=2+1,前面知道,这些2的n次方都是校验位,可知,第4位校验位校验第7 6 5三位数据位,因此,第4位校验位r2等于这三位数据位的值异或,第2位和第1位校验位计算原理同上.
◆
计算出三个校验位后,可知最终要发送的海明校验码为1010101.
七、指令流水线
◆
流水线时间计算
流水线周期
:指令分成不同执行段,其中执行时间最长的段为流水线周期。
流水线执行时间
:1条指令总执行时间+(总指令条数-1)*流水线周期。
流水线吞吐率计算:
吞吐率即单位时间内执行的指令条数。
公式:指令条数/流水线执行时间。
流水线的加速比计算:
加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高
表明流水线效率越高,
公式:不使用流水线执行时间/使用流水线执行时间。