计算机组成原理期末复习
第五章:输出输出系统
组成
1. I/O软件
(1) I/O指令
(2)通道指令
2.I/O硬件
I/O接口
组成
- 数据线
通常是双向,也可以是单向,根数一般等于
存储字长的位数或者字符的位数
- 设备选择线
传送设备码,
根数取决于I/O指令中设备码的位数
- 命令线
传输CPU向设备发出的各种命令,
根数与命令信号的种类有关
- 状态线
将I/O设备的状态报告给主机
功能
- 选址功能
- 传送命令的功能
- 传送数据的功能
- 反应I/O设备工作状态的功能
- 中断请求和屏蔽
分类
(
数
据
传
送
方
式
)
{
并
行
接
口
串
行
接
口
(数据传送方式)\begin{cases}并行接口\\串行接口\end{cases}
(数据传送方式){并行接口串行接口
(
功
能
选
择
的
灵
活
性
)
{
可
编
程
接
口
不
可
编
程
接
口
(功能选择的灵活性)\begin{cases}可编程接口\\不可编程接口\end{cases}
(功能选择的灵活性){可编程接口不可编程接口
(
通
用
性
)
{
通
用
接
口
专
用
接
口
(通用性)\begin{cases}通用接口\\专用接口\end{cases}
(通用性){通用接口专用接口
(
数
据
传
送
的
控
制
方
式
)
{
程
序
型
接
口
D
M
A
接
口
(数据传送的控制方式)\begin{cases}程序型接口\\DMA接口\end{cases}
(数据传送的控制方式){程序型接口DMA接口
查询方式
程序查询方式
步骤
-
CPU执行现行程序;
-
CPU查询到某I/O的请求;
-
CPU等待I/O数据准备与传输;
-
CPU恢复执行;
中断请求方式
步骤
- CPU执行现行程序;
- I/O进行数据准备,I/O发起中断请求;
- CPU响应中断请求,执行中断程序;
中断响应- 保护程序断点
- 寻找中断服务程序的入口地址,断点进栈
- 关中断
- 向量地址 → \rightarrow → PC
- CPU从中断程序返回,恢复执行;
中断处理- 保护现场
- 中断服务
- 恢复现场
- 开中断,中断返回
单重中断和多重中断
- 单重中断
- 多重中断
- 区别:
- 单重中断: 整个服务不响应其他级别更高的中断源提出的请求
- 保护现场之后,若有其他级别更高的中断源提出的请求 (这是多重中断的必要条件),CPU也可以响应
- 开中断的时机不同
DMA方式
三种方式
1.停止CPU访问主存方式
CPU放弃地址线的使用权
CPU放弃数据线的使用权
CPU放弃控制线的使用权
数据传送结束后,DMA通知CPU可以使用主存
优点:控制简单
;
缺点:未充分发挥CPU对主存的利用率;
适用情景:适用数据传输率很高的I/O
设备实现成组的数据传送。
2.周期挪用方式
DMA请求时,I/O设备挪用或窃取总线占用权一个或几个主存周期
缺点: ,数据输入或输出过程中实际占用了CPU时间。
3.DMA与CPU交替访存方式
CPU与DMA控制器交替访问内存。不需要总线使用权的申请、建立和归还过程。
优点: 效率高
缺点: 硬件逻辑更为复杂一些,实现起来有困难,基本上不被使用。
DMA方式与中断方式对比
作业
- I/O设备与主机交换信息时,共有哪几种控制方式?简述他们的特点。
- 答:
- 程序直接控制方式:也称查询方式,采用该方式,数据在CPU和外设间的传送完全靠计算机程序控制,CPU的操作和外围设备操作同步,硬件结构简单,但由于外部设备动作慢,浪费CPU时间多,系统效率低。
- 程序中断方式:外部设备准备就绪后中断程序通知CPU,在CPU相应I/O设备的中断请求后,在暂停现行程序的执行,转为I/O设备服务可明显提高CPU的利用率,,在一定程度上实现了主机和I/O设备的并行工作,但硬件结构负载,服务开销大。
- DMA方式与中断方式一样,实现主机和I/O设备并行工作,由于DMA方式直接依靠硬件实现贮存于I/O设备之间的数据传送,传送期间不需要CPU程序干预,CPU可继续执行原来的程序,因此,,CPU利用率和系统效率比中断方式更高,但DMA方式的硬件结构更为复杂。
- 比较程序查询方式、程序中断方式和DMA方式对CPU工作效率的影响
- 答:
- 程序查询方式:主要用于CPU不太忙且传送速度不高的情况下。
- 中断方式:主要用于CPU的任务比较忙的情况下,尤其适合实时控制和紧急事件的处理。
- DMA方式(直接存储器存取方式):主要用于高速外设进行大批量数据传送场合。
- 简述I/O接口的功能和基本组成
- 答:
选址功能
传送指令功能
传送数据功能
反映I/O设备工作状态的功能
I/O接口的基本组成:,设备选择器、命令寄存器、命令译码器、数据缓冲寄存器、设备状态标记触发寄存器。
- 在什么条件下,I/O设备可以向CPU提出中断请求?
- 答: I/O设备向CPU提出中断请求:I/O接口中的设备工作完成状态为1,中断屏蔽码为0,且CPU查询中断时,中断请求状态为1
- 在什么条件和时间,CPU可以响应I/O中断请求
- 答: CPU响应I/O中断请求的条件和时间是:当中断允许状态为1,且至少有一个中断请求被查到,则在一条指令执行完时,响应中断。
- 什么会引起I/O的中断?
- 答:
- 适应I/O设备工作速度低
- 为了提高计算机的整机效率,为了应付突发事件,为了实时控制的需要
- 外设的请求还有软件中断指令
- 试比较单重中断和多重中断服务程序的处理流程,说明他们不用的原因
- 答:
- 单重中断:开中断指令设置在“中断返回”之前,,意味着在整个中断服务处理过程中,不能响应其它中断源的请求。
- 多重中断:开中断指令设置在“保护现场”之后,,意味着保护现场之后,若有更高级的中断服务程序,CPU也可以响应,即再次中断现行的服务程序,转至新的中断服务程序,这是单重中断和多重中断的主要区别。
- 程序查询方式和程序中断方式都是通过“程序”传送数据,两者的区别是什么?
- 答: 程序查询方式通过“程序”传送数据时,程序对I/O的控制包括了I/O准备和I/O传送两段时间。由于I/O的工作速度比CPU低得多,因此程序中要反复查询I/O的状态,造成“踏步等待”,严重浪费了CPU的工作时间。而程序中断方式虽然也是通过“程序”传送数据,但程序仅对I/O传送阶段进行控制,故CPU此时照样可以运行现行程序,与I/O并行工作,大大提高CPU的工作效率。
- 什么是多重中断?实现多重中断的必要条件是什么?
- 答: 多重中断是指:当CPU执行某个中断服务程序的过程中,发生了更高级,更紧迫的事件,CPU暂停现行中断服务程序的执行,转去处理该事件的中断,处理完返回现行中断服务程序继续执行的过程。必要条件:在现行中断服务期间,中断允许触发器为1,即开中断。
- DMA方式有何特点?什么样的I/O设备与主机交换信息时才用DMA方式,举例说明
- 答: 特点:由于主存和DMA接口之间,有一条数据通路,因此主存和设备交换信息是不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护和恢复现场,因此工作速度比程序中断方式高。
- CPU对DMA请求和中断请求的响应时间是否一样?为什么?
- 答: CPU请求和中断请求的响应时间不一样,因为两种方式的交换速度相差很大,因此,CPU必须以更短的时间隔离查询并响应DMA请求。响应中断请求是在每条指令执行周期结束的时刻,而响应DMA请求是在存取周期结束时刻。中断方式是程序切换,而程序又是由指令组成,多以必须在一条指令执行完毕才能响应中断请求,而且CPU只有在每条指令执行周期结束时刻才发出查询信号,以获取中断请求信号,若此时条件满足,便能响应中断请求。
DMA请求是由DMA接口根据设备工作状态向CPU申请占用总线,此时只要总线未被占即可立即响应DMA请求,若总线正被CPU占用,则必须等待该存取周期结束时,CPU才交出总线的使用权。