计算机组成与体系结构
- 计算机组成与体系结构
- 数据传输控制方式 ★
- 程序控制(查询)方式
- 程序中断方式
- DMA 方式
- 总线 ★★
- CISC 与 RISC ★★
- RISC 和 CISC 的比较
- 流水线 ★★
- 校验码 ★
大家好呀!我是小笙,本章我主要分享系统架构设计师 - 计算机组成与体系结构(2)知识,希望内容对你有所帮助!!
计算机组成与体系结构
数据传输控制方式 ★
程序控制(查询)方式
分为无条件传送(一直查询并等待反馈)和程序查询方式两种
优缺点:软件实现简单,但 I/O 能力不强,导致 CPU 利用率不高
程序中断方式
中断方式无需 CPU 等待而提高了利用率 如:鼠标
DMA 方式
DMA方式是为了在主存与处设之间实现高速、批量数据交换而设置的。DMA方式比程序控制方式与中断方式都高效
(DMAC 向总线裁决逻辑提出总线请求;CPU执行完当前总线周期即可释放总线控制权。此时DMA响应,通过 DMAC 通知 I/O 接口开始 DMA 传输)
还有通道方式、I/O 处理机等方式
例题
嵌入式系统中采用中断方式实现输入输出的主要原因是 能对突发事件做出快速响应。在中断时,CPU断点信息一般保存到 栈 中
总线 ★★
一组能为多个部件分时共享的公共信息传输线路(分时:同一时间仅允许一个部件向总线发送信息,但允许多个部件同事从总线读取数据)
系统总线
- 数据总线 DB:传输存储数据
- 地址总线 AB:传输存储数据地址
- 控制总线 CB:将微处理器控制单元传送到周边设备
并行与串行
- 串行总线:适合长距离(传输波特率是可以在传输过程改变的;按位传输需要依赖于校验码纠正)
- 并行总线:近距离传输
数据传输模式
- 单工:单向传输
- 双工:双向同时传输
- 半双工:需要切换传输方向的转换
扩展(了解)
- 总线宽度:总线的线数
- 总线带宽:总线宽度 * 总线频率
例题
1、挂接在总线上的多个部件,只能分时向总线发送数据,但可同时从总线接收数据
- 只能分时向总线发送数据,并只能分时从总线接收数据
- 只能分时向总线发送数据,但可同时从总线接收数据
- 可同时向总线发送数据,并同时从总线接收数据
- 可同时向总线发送数据,但只能分时从总线接收数据
2、下列说法中正确的是 半双工总线可在两个方向上轮流传输信息,全双工总线可在两个方向上同时传输信息
- 半双工总线只在一个方向上传输信息,全双工总线可在两个方向上轮流传输信息
- 半双工总线只在一个方向上传输信息,全双工总线可在两个方向上同时传输信息
- 半双工总线可在两个方向上轮流传输信息,全双工总线可在两个方向上同时传输信息
- 半双工总线可在两个方向上同时传输信息,全双工总线可在两个方向上轮流传输信息
3、以下关于串行总线的说法中,正确的是 串行总线是按位(bt)传输数据的,其数据的正确性依赖于校验码纠正
- 串行总线一般都是全双工总线,适宜于长距离传输数据(非全双工)
- 串行总线传输的波特率是总线初始化时预先定义好的,使用中不可改变(可以更改)
- 串行总线是按位(bit)传输数据的,其数据的正确性依赖于校验码纠正
- 串行总线的数据发送和接收是以软件查询方式工作(还可以以中断查询方式工作)
CISC 与 RISC ★★
RISC 和 CISC 的比较
CISC(X86) | RISC(ARM) | |
指令系统 | 复杂,庞大 | 简单,精简 |
指令数目 | 大于200条 | 小于100条 |
指令字长 | 不固定 | 定长 |
可访存指令 | 不加限制 | 只有Load/Store指令 |
控制方式 | 绝大多数为微程序 | 增加了通用寄存器;硬布线逻辑控制为主 |
通用寄存器数量 | 较少 | 多 |
例题
1、RISC(精简指令系统计算机)的特点不包括:寻址方式尽量丰富,指令功能尽可能强
- 指令长度固定,指令种类尽量少
- 寻址方式尽量丰富,指令功能尽可能强
- 增加寄存器数目,以减少访存次数
- 用硬布线电路实现指令解码,以尽快完成指令译码
流水线 ★★
概述:指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术
- 流水线周期:执行时间最长的一段(短板效应)
- 流水线时长计算公式 : 第一条指令的执行时间 + (指令条数 - 1)* 流水线周期
- 流水线的吞吐率:Tp = 指令条数 / 流水线执行时间 (单位时间内流水线所完成的任务数量)
- 流水线加速度比:S = 不使用流水线执行时间 / 使用流水线执行时间 > 1
例题
1、某计算机系统采用5级流水线结构执行指令,设每条指令的执行由取指令(2△t)、分析指令(1△t)广、取操作数(3△t)、运算(1△t)和写回结果(2△t)组成,并分别用5个子部件完成,该流水线的最大吞吐率为 1/3△t ;若连续向流水线输入10条指令,则该流水线的加速比为 5:2
校验码 ★
检验码种类
- 奇偶校验码:整个校验码(有效信息位 + 校验位) 中 “1” 的个数为 奇数/偶数(注意:只给检查一位错,不可纠错)
- **CRC(循环冗余校验)**是一种错误检测码,常用于数据传输和存储中,以检测数据是否在传输过程中发生了错误或损坏
循环冗余校验码编码规律如下
- 把待编码的N位有效信息表示为多项式M(X)
- 把M(X)左移K位,得到M(X) × X^k,这样空出了K位,以便拼装K位余数(即校验位)
- 选取一个K+1位的产生多项式G(X),对M(X) × XK做模2除
- 把左移K位以后的有效信息与余数R(X)做模2加减,拼接为CRC码,此时的CRC码共有N+K位
例:原始报文为“10111”,其生成多项式为:“G(X)=x4+x+1”。对其进行CRC编码后的结果为 1100
- 海明校验
码距:又叫海明距离,是在信息编码中,两个编码之间对应位上编码不同的位数。例如编码100110和010101,第1、2、5、6位都不相同,所以这两个编码的码距就是4,并且可以通过异或的方式求出(异或后计算零的个数)
两个合法编码(码字)
工作流程
- 确定校验码位数 r
- 数据/信息位数为 m
- 校验码位数为 r
- 2 ^ r >= m + r + 1 (已知 m + r 的和,可以通过整个公式分别求出 m、r)
- 确定校验码和数据的位置
假设需要校验数据为 1100,意味着 m = 4,可以通过公式求得,r 的最小值为 3 - 求出校验码的值
根据偶校验可以得出如下(分三组,分别是:xx1、x1x、1xx)
7 | 6 | 5 | 4 | 3 | 2 | 1 |
1 | 1 | 0 | x4 | 0 | x2 | x1 |
0 | 0 | 1 |
海明码就是 1100001
- 检错并纠错
假设最后传入的参数为 1100000
计算该海明码的三组校验是否正确
x1 0 0 0 1
x2 0 0 1 1 => 可知 x1 校验错误 0 0 1 说明最小位出错了,但是恰好是校验码出错,可以不用纠错
x4 0 0 1 1