1.计算机系统基础知识
注意:以下是对CPU功能的补充:
控制器主要功能:
程序控制:CPU通过执行指令来控制程序的执行顺序。
操作控制:一条指令的实现需要多个操作信号来配合完成,CPU产生每条指令的操作信号并将操作信号的时间顺序进行严格的控制。
时间控制:CPU对各种操作进行时间上的控制,即——指令执行过程中操作信号出现的时间、持续时间以及出现的时间顺序都需要进行严格控制。
运算器主要功能:
数据处理(数据控制):CPU通过对数据进行算术运算以及逻辑运算等方式进行加工处理,数据加工处理的结果被人们所利用。是CPU最根本的任务。
除此之外,CPU还需要对系统内部和外部的中断、异常做出响应,进行相应的处理。
2.校验码
校验码这一块儿主要考的是计算,所以这一小节内容会给大家放几个计算。
码距:在两个编码中,从A码转到B码所需要改变的位数称之为码距。码距越大,与有利于纠错和检错。
2.1.奇偶校验码
例题:已知原始信息串为10110,求其奇偶校验码。
先计算原始信息串中的1的个数,发现是3个。所以奇校验码就是在其的头部或者尾部添加0,偶校验码就是在其的头部或者尾部添加1。得到结果为:
- 奇校验:101100
- 偶校验:101101
奇偶校验码的码距是2。
奇偶校验只能检测出1位错误,且没法纠错。
如果大家想了解多了解一下奇偶校验码的原理,推荐下面这一篇博客,因为本专题主要是为了备考架构师,所以对原理不过多解释。
奇偶校验码 ,奇偶校验码检错原理,奇偶校验码的缺点。-CSDN博客
2.2.循环冗余校验码(CRC)
CRC只能检错,不能纠错。
例题:原始信息串为10110,CRC的生成多项式为G(x)=x^4+x+1,求CRC校验码。
- G(x)最高阶为4,所以得到被除串:101100000
- 因为G(x)=x^4+x+1,所以得到除串:10011
- 生成CRC校验码,需要对101100000和10011进行模2除法运算,得到 ,余数为1111(注意:因为G(x)最高阶为4,r=4,得到余数为1111,得1111;如果得到余数为11,则补两个0,得0011)
- 最后发送得信息串为:101101111
接收方校验则是使用G(x)来除,余数为0,则表述信息无错。
3.指令系统
3.1.计算机指令
3.1.1. 计算机指令的组成
一条指令由操作码和操作数(地址码)两个部分(两者都是二进制)组成,操作码决定要完成的操作,操作数指参加运算的数据以及其所在的单元地址。
3.1.2. 计算机指令执行过程
取指令——分析指令——执行指令
- 从PC(程序计数器)中将指令地址取出,送入总线
- CPU根据指令地址去内存取出指令内容并存入IR(指令寄存器)
- ID(指令译码器)进行分析,分析指令操作码
- 执行指令,取出指令执行需要的源操作数
3.1.3. 指令的寻址方式
- 顺序寻址:PC来给出下一个指令地址,顺序执行
- 跳跃寻址:下一条指令的地址码,不是由PC给出,而是由本条指令直接给出
3.1.4. 指令操作数的寻址方式
- 立即寻址方式:指令地址码字段指出的不是地址,而是操作数本身
- 直接寻址方式:常规
- 间接寻址方式:常规中加一个寻址再寻址
- 寄存器寻址方式:指令中地址码是寄存器的编号
- 基址寻址方式:使用了基址寄存器,其余的不要管了,不考
- 变址寻址方式:使用了变址寄存器,其余的不要管了,不考
3.2.CISC和RICS
指令系统类型 | 指令 | 寻址方式 | 实现方式 | 其他 |
CISC |
| 支持多种 | 微程序控制技术(微码) | 研制周期长 |
RISC (精简指令系统) |
| 支持方式少 | 增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线(简而言之,使用了硬件) | 优化编译,有效支持高级语言 |
3.3.指令的流水线处理
原理:将指令分成不同段,每段由不同的部分去处理,因此可以产生叠加效果,所有的部件去处理指令的不同段。
3.3.1. RISC中流水线技术
- 超流水线技术:通过细化流水、增加级数和提高主频来实现以时间换取空间。
- 超标量技术:通过加硬件设施来实现以空间换取时间。
- 超长指令字技术:通过发挥软件作用来使硬件简化,性能提高。
3.3.2. 流水线时间计算
这个会考计算,但是也简单,背会公式就行。
- 流水线周期:执行时间最长的段就是流水线周期
- 流水线执行时间:1条指令总执行时间+(总指令条数-1)*流水线周期
- 流水线吞吐率计算:吞吐率即单位时间内执行的指令条数——指令条数/流水线执行时间
- 流水线加速比计算:不使用流水线执行时间/使用流水线执行时间
4.存储系统
4.1.计算机存储结构
计算机采用分级存储体系的主要目的使为了解决存储容量、成本和速度之间的矛盾。
- 两级存储:Cache-主存、主存-辅存
4.2.局部性原理
- 时间局部性原理:相邻的时间里会访问同一个数据项
- 空间局部性原理:相邻的空间地址会被连续访问
4.3. Cache
高速缓存Cache用来存储当前最活跃的程序和数据,直接与CPU交互,位于CPU和主存之间,容量小,速度为内存的5-10倍,由半导体材料构成。其内容是主存内存的副本拷贝,对于程序员来说是透明的。
4.3.1. 地址映射方法
注意:由硬件自动完成映射
地址映射:在CPU工作时,送出的是主存地址,而不是Cache存储器中地址。如果要从Cache中获取信息,需要将主存地址转换为Cache存储器地址。以下是三种硬件自动完成映射的方式:
- 直接映射:地址变换灵活,但是容易造成资源浪费
- 全相联映射:地址变换复杂,速度慢,是最不容易发生块冲突的映像方式。
- 组组相连映射
4.3.2. 替换算法
目标:使Cache尽可能的提高命中率。
- 随机替换算法
- 先进先出算法
- 近期最少使用算法
- 优化替换算法
4.4. 磁盘
4.4.1. 磁盘结构和参数
磁头先寻找到对应磁道,然后等待磁盘进行周期旋转,旋转到指定扇区,得到对应数据。
- 寻道时间:磁头移动到磁道所需时间
- 等到时间:等待读写的扇区转到磁头下方所需要时间
- 存取时间=寻道时间+等待时间(平均定位时间+转动延迟)
4.4.2. 磁盘调度算法
注意:耗时最长的是寻道时间。
- 先来先服务FCFS
- 最短寻道时间SSTF
- 扫描算法SCAN(电梯算法)
- 单向扫描调度算法CSCAN
4.4.3 磁盘冗余阵列技术
这个一般也是考选择题的计算。
emmm,等我看到题目了再发图片上来。
5.输入/输出技术
5.1.内存和接口编址
内存与接口地址独立编址方法 | 内存与接口地址统一编址方法 | |
地址空间 | 完全独立的两个地址空间 | 一个公共的地址空间 |
使用指令 | 完全不同 | 原则上用于内存的指令可以全部用于接口 |
优点 | 编程或者读程序是容易使用和辨认 | 增强了对接口的操作功能 |
缺点 | 接口的指令太少、功能太弱 | 可能会导致内存地址不连续 |
5.2.IO设备与主机交换信息的方式
- 程序控制(查询)方式
- 程序中断方式
- DMA方式(直接主存存取)
注意:在一个总线周期结束后,CPU会响应DMA请求开始读取数据;CPU响应程序中断请求是在一条指令结束时。
6.总线结构
- 内部总线
- 系统总线(下面加粗部分才是常考的)
- 数据数据总线:并行数据传输位数
- 地址总线:系统可管理的内存空间的大小
- 控制总线:传送控制命令
- 外部总线