输入输出系统
输入输出系统¶
I/O系统基本概念(简单了解,已从大纲删除)¶
输入输出系统和IO控制方式¶
- 对于程序中断方式,CPU需要花大量的时间来处理中断服务程序,CPU利用率严重下降。
- 显然,主存是由CPU和DMA接口同时控制的,因此,同一时刻只能有一个部件对主存进行操作。



外部设备¶

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




I/O方式¶
- 无论是哪种IO方式都需要对主存地址进行修改以及计数
- 除了DMA方式,其他三种方式都需要程序的干预。
程序查询方式¶
- CPU不一定一直检查,有可能是定时检查。而一直检查的方式称为独占查询。

中断系统¶

中断的作用和原理¶
- 中断隐指令:保存原程序的PC值,并让PC指向中断服务程序的第一条指令。注意中断隐指令实际上并不算一条一条指令,而是CPU接收到中断信号后自动会做的一系列动作。
- 注意:硬件排队器和查询程序实现的是响应,是给来了的中断排队;优先级设置是特权插队,如果当前响应的没有新来的优先级高,就要优先处理新来的,若比新来的高,就按硬件规定的队伍来依次响应。

在 I/O 控制方式的语境下,“程序中断”根本不是指“软件引发的中断”,而是“程序中断控制 I/O 方式”的简称,它妥妥的是外部硬件中断(I/O 中断)。

事实上,中断向量方法可提高中断源的识别速度,因为没有向量时,是一个个找o(n)的复杂度的。



多重中断¶
- 多重中断就是中断的嵌套,执行中断程序时可以响应新的中断请求。
- 在中断响应阶段之前,CPU根据中断屏蔽字将所有未被屏蔽的中断请求送到硬件电路进行中断响应判优,中断响应的优先级不是由中断屏蔽字决定的,而是硬件排队器或程序,反映的是中断服务程序开始执行的顺序。中断屏蔽字决定的是处理优先级,即多个中断服务程序执行完的次序。




程序中断方式¶

DMA方式¶
- 设备发出DMA请求,在传送期间总线控制权由DMA控制器掌握。

这里注意,DMA请求和DMA中断请求不是一个东西,前者表示要DMA要对内存操作,后者表示DMA完成了一块的工作。

当CPU和DMA都要使用主存时,如何解决这一现象:
注意:在周期挪用中,若CPU和DMA同时请求访存,会优先让给DMA,因为DMA中的数据缓冲可能会被IO设备传输的数据覆盖,需要及时写入。



习题笔记¶
-
命令不是信号,而是一串01串需要译码;信号是单独的高低电平,是直接的意思。
-
I/O指令实现的数据传送通常发生在通用寄存器和I/O端口之间。
-
题目中若没有明显说明是内部中断,默认为外部中断。
-
内部中断是实时检测、检测即处理的;外部中断则是一定在一条指令执行后处理的。
-
总线上的两个设备(比如 CPU 和主存,或者 DMA 和主存)之间,完成一次完整的数据传输所经历的时间就叫总线周期。
-
保护通用寄存器或现场的,是由软件,也就是中断服务程序/进栈指令实现的,而PC、PSW、断点这类紧急重要的由硬件也就是中断隐指令自动实现。
在单级(或单重)中断系统中,中断处理的过程为:1. 关中断 2. 保存断点 3. 识别中断源 4. 保存现场 5. 中断时间处理 6. 恢复现场7. 开中断 8. 中断返回 。其中1 ~ 3 由硬件实现,4 ~ 8由中断服务程序完成。
-
在DMA方式中:这仨是一回事,但是要分主语是谁的使用:
-
机器周期(主权归 CPU): 这是 CPU 内部工作的时间标尺。CPU 取一条指令、执行一个动作,耗费的时间叫机器周期。
- 总线周期(主权归 总线): 这是公共走廊的时间标尺。数据在总线上跑一趟所需的时间。
-
存取周期(主权归 内存): 这是内存条自己硬件的物理极限。主存完成一次完整的“读/写动作 + 恢复内部电容状态”所需要的总时间。
-
每类设备都配置一个设备驱动程序,设备驱动程序向上层用户程序提供一组标准接口,负责实现对设备发出各种具体操作指令,用户程序不能直接和DMA打交道。
- 对于中断I/O方式,外设准备数据的时间应大于等于中断处理时间,防止数据写入缓冲时被下一轮数据覆盖。