计算机组成原理---总线与输入/输出系统
文章目录
- 1. 总线
- 1.1 总线概述
- 1.2 总线的性能指标
- 1.3 总线操作和定时
- 2. 输入/输出系统
- 2.1 输入/输出系统基本概念
- 2.2 I/O接口
- 2.3 I/O控制方式
- 2.3.1 程序查询方式
- 2.3.2 程序中断方式
- Ⅰ 中断的作用和原理
- Ⅱ 多重中断
- Ⅲ 程序中断方式详情
- 2.3.3 DMA方式
1. 总线

1.1 总线概述


- 同一时刻只能有一个部件发送数据,但是可用多个部件接受数据

- 总线是一组能为多个部件分时共享的公共信息传送线路


注意:
- 并行总线并不一定总比串行总线快,它们适合不同的场景。并行总线由于是多个数据位在同时传输,需要考虑数据的协同性,以及线路之间的相互干扰,导致工作频率无法持续提高。而串行总线可以通过不断提高工作频率来提高传输速度,使其速度最终超越并行总线的速度



1.2 总线的性能指标



【2019 统考真题】某计算机采用3通道存储器总线,配套的内存条型号为DDR3-1333,即内存条所接插的存储器的工作频率为1333MHz,总线宽度为64位,则存储器总线的带宽大约是(B)
A. 10.66GB/s
B. 32GB/s
C. 64GB/s
D. 96GB/s
解答:
- 先扩展知识:现在的计算机中可以有多条存储器总线同时进行数据传输,支持两条总线同时进行传输的内存条插槽为双通道内存插槽,还有三通道、四通道内存插槽,其总线的传输带宽可以分别提高到单通道的2倍、3倍和4倍。所以题中的3通道存储器总线,要在计算出单通道总线的带宽上乘上3
- 明确总线带宽公式:总线带宽 = 工作频率 × 总线宽度
- 带入公式得:总线带宽 = 3×1333M×64/8 = 3999×106×8 ≈ 4000×8×106 = 32×109 = 32GB/s。选B
【2020 统考真题】QPI总线是一种点对点全双工同步串行总线,总线上的设备可同时接收和发送信息,每个方向可同时传输20位信息(16位数据 + 4位校验位),每个QPI数据包有80位信息,分2个时钟周期传送,每个时钟周期传递2次。因此,QPI总线带宽为:每秒传送次数×2B×2。若QPI时钟频率为2.4GHz,则总线带宽为(C)
A. 4.8GB/s
B. 9.6GB/s
C. 19.2GB/s
D. 38.4GB/s
解答:
-
简单的题目喜欢出很多干扰文字,上述有效信息只有黑体标粗的部分,这部分才是解题的关键。其实题目也是降低了难度,直接给出了QPI总线带宽的计算公式
-
由于题目直接给出了公式:QPI总线带宽为:每秒传送次数×2B×2。分析,每秒传送次数就是工作频率,2B×2就是总线带宽,原因是只算了16位数据,且每个方向可以同时传输16位数据,共有接收和发送两个方向,所以是2B×2
-
解题关键就是黑体字部分,直接套公式,即QPI总线每秒传送次数 = 2.4G×2 = 4.8G,QPI总线带宽 = 4.8G×2B×2 = 19.2GB/s。选C
【2024 统考真题】某存储器总线的时钟频率为420MHz,总线宽度为64位,每个时钟周期传送2次数据;其总线事务支持突发传送方式,最多传送8次数据,第一个时钟周期传送地址和读/写命令,从第4个至第7个时钟周期连续传送8次数据。该总线的总线带宽(最大数据传输率)为(B)
A. 3.84GB/s
B. 6.72GB/s
C. 30.72GB/s
D. 53.76GB/s
解答:
- 明确一些概念公式:时钟频率是时钟周期的倒数,其数值表示1秒内可发出的时钟周期数,如上述时钟频率为420MHz,则表示1秒内可发出420M个时钟周期数;工作频率 = 1秒内传送几次数据 = 时钟频率 × 一个时钟周期的传送数据次数;总线带宽 = 单位时间内总线上最多可传输的数据位数,即总线的最大传输速率 = 工作频率 × 总线宽度
- 只看黑体部分,代入公式, 工作频率 = 420M×2 = 840M,总线带宽 = 840M×64/8 = 6.72GB/s。选B
小结:

1.3 总线操作和定时



- 同步定时方式采用统一的时钟信号来协调发送和接收双方的传送定时关系
- 传送速度快,更适用于总线长度较短及总线所接部件的存取时间比较接近的系统

- 采用异步定时方式,能更好适配两个工作速度相差很大的部件或设备之间可靠地进行信息交换。当然为了保证两个部件或设备之间可靠地进行信息交换,势必会导致一个快设备去等待一个慢设备,造成异步定时方式比同步定时方式要慢

- 三种方式的概念很啰嗦,但是看对应的图示还是很一目了然的


- 分离式通信就像是个疯狂压榨员工的老板,这里的员工就是总线,居然在准备数据的时候也不放过总线,想要时刻保持总线的使用
【2012 统考真题】某同步总线的时钟频率为100MHz,宽度为32位,地址/数据线复用,每传输一个地址或数据占用一个时钟周期。若该总线支持突发(猝发)传输方式,则一次“主存写”总线事务传输128位数据所需要的时间至少是(C)
A. 20ns
B. 40ns
C. 50ns
D. 80ns
解答:
- 明确概念:突发传送是先传一个首地址,随后的时钟周期内,则可不传地址,而直接多个时钟周期内传输连续的数据
- 解题,一个时钟周期可传一个地址或一次数据,数据宽度为32位,则128位需传4次数据,再加上传输一个地址的时钟周期,则题目共需时间至少是 1 + 4 100 M \frac{1+4}{100M} 100M1+4 = 50ns。选C
【2023 统考真题】某存储器总线宽度为64位,总线时钟频率为1GHz,在总线上传输一个数据或地址需要一个时钟周期,不支持突然传送方式。若通过该总线连接CPU和主存,主存每次准备一个64位数据需要6ns,主存块大小为32B,则读取一个主存块所需的时间是(D)
A. 8ns
B. 11ns
C. 26ns
D. 32ns
解答:
- 不支持突发传送,意味着每次传输一个数据之前,需要先传输这个数据对应的地址
- 解题,实际上每次传输一个数据需要2个时钟周期,准备一个主存块数据所需的次数就是 32/(64/8)= 4次,准备数据总耗时就是4×6 =24ns,传输这些数据也需要4次,而每次传输需要2个时钟周期,则总共需要8个时钟周期,也就是 8 1 G \frac{8}{1G} 1G8 = 8ns,则读取一个主存块所需时间就是8+24 = 32ns
2. 输入/输出系统
2.1 输入/输出系统基本概念



- I/O接口:又称I/O控制器、设备控制器,负责主机与外部设备之间的数据传输


- 数据流: 键盘->IO接口的数据寄存器->数据总线->CPU某寄存器->主存(变量i的对应位置)

- 还有缺点:程序中断方式用于处理快速I/O设备时,当快速I/O设备准备一个字的时间小于CPU处理中断请求的时间时,会造成数据覆盖,从而导致数据丢失

- 整个DMA传送阶段,只有在传送开始前需要DMA请求CPU的预处理和传送结束后需要发出中断请求,让CPU去处理传送数据完后的中断处理操作,此外在整个数据传送阶段就不再需要CPU的参与了
- DMA传送每次是以一整块数据作为传送单位的


- I/O指令与普通指令格式略有不同,操作码指明了CPU要对I/O接口做什么,命令码指明了I/O接口要对设备做什么
- 通道指令是通道能识别的指令,CPU不能识别
小结:

2.2 I/O接口








统一编址优缺分析:
优点:
-
- 不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高,
-
- 端口有较大的编址空间,
-
- 读写控制逻辑简单
缺点:
-
- 端口占用了主存地址空间,使主存地址空间变小
-
- 外设寻址时间长(地址位数多,地址译码速度慢)
独立编址优缺分析:
优点:
-
- 使用专用I/O指令,程序编制清晰
-
- I/O端口地址位数少,地址译码速度快
-
- I/O端口的地址不占用主存地址空间
缺点:
-
- I/O指令类型少,一般只能对端口进行传送操作,程序设计灵活性差
-
- 需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性

- 需要CPU提供存储器读/写、I/O设备读/写两组控制信号,增加了控制逻辑电路的复杂性
小结:

2.3 I/O控制方式
重新回顾:

2.3.1 程序查询方式


注意:
-
- 程序查询方式中,每次只能传送一次数据
-
- 每传送完一次数据后要修改地址和计数器参数
-
- CPU与I/O串行工作
-
- 程序查询方式分为独占查询和定时查询两种方式。所谓独占查询就是CPU花费全部时间用于持续查询接口状态以便I/O操作,定时查询就是CPU周期性地查询接口状态,每次等到条件满足才进行一个数据的传送,定时查询的时间间隔与设备的数据传输速率有关

小结:

2.3.2 程序中断方式

Ⅰ 中断的作用和原理

- 工作流程分为:中断请求、中断响应和中断处理


- CPU统一在每条指令执行阶段结束前进行中断查询,且CPU统一在每条指令执行阶段的结束时刻进行中断响应


注意:
-
- DMA请求优于I/O设备传送的中断请求
-
- 高速设备优于低速设备
-
- 输入设备优于输出设备

中断隐指令所做事:①关中断;②保存断点;③引出中断服务程序
注意:
- 中断隐指令是不会去保存现场,保存现场是中断服务程序去做的,中断隐指令是纯硬件自动实现,而保存现场是一种软件操作

- 向量地址是中断服务程序入口地址的地址,有点二级指针的意思了

- 中断服务程序会进行保护现场和恢复现场操作
小结:

Ⅱ 多重中断

- 多重中断:在执行中断服务程序之前会重新开中断,以便响应新的中断请求,在恢复现场和屏蔽字的时候又会再次进行关中断,以便此过程一气呵成,防止因新中断导致数据丢失

- 执行中断服务程序之前进行开中断,以便响应新的中断请求,达到多重中断的目的,注意此时是在内核态,因为中断服务程序是操作系统提供的

屏蔽字设置的规律:
-
- 一般用“1”表示屏蔽,“0”表示正常申请
-
- 每个中断源对应一个屏蔽字(在处理该中断源的中断服务程序时,屏蔽寄存器中的内容为该中断源对应的屏蔽字)
-
- 屏蔽字中“1”越多,优先级越高。每个屏蔽字中至少有一个“1”(至少要能屏蔽自身的中断)

Ⅲ 程序中断方式详情


小结:

2.3.3 DMA方式

- DMA每次在主存和I/O设备之间传送一个字,当传送字数累积到一个数据块的大小时,则一次DMA请求就算完成了,此时需要向CPU发出中断请求,即向CPU报告DMA操作的结束



注意:
- 对于DMA与CPU交替访存这种方式来说,由于I/O数据是随机突发传送,有时给DMA的访存时间会因没有I/O数据传送而造成浪费
- 对于周期挪用这种方式来说,当CPU与DMA同时请求访存时,会让I/O访存优先,因为不及时把DMA控制器中数据缓冲寄存器的值进行传送的话,会导致后续新数据覆盖旧数据,导致数据丢失


小结:

对于总线这一章来说,总线的性能指标和异步定时方式真题考察较多,对于输入/输出系统这一章来说,程序中断方式(涉及中断原理,多重中断)与DMA方式考察较多。
今天是2025年11月13日,整个计算机组成原理大致就结束了,完结撒个花吧。
参考:《王道计算机考研 计算机组成原理》
https://www.bilibili.com/video/BV1ps4y1d73V?t=0.5&p=2
