1.I/O接口是主机和外设之间的交换界面,通过接口可以完成主机和外设之间的信息交换。
2.I/O接口的主要功能
接收CPU传来的信息进行地址译码和设备选择。
实现主机和外设之间的通信联络。
实现数据缓冲:CPU和外设之间的速度不匹配,接口拥有数据缓冲的功能。
信号格式的转换
传送控制命令和状态信息。
3.I/O接口的结构
状态寄存器和控制寄存器因为其中数据永远处在互斥阶段,所以可以把二者合为一个。地址线传送外设地址,控制线传送寄存器读写信号,其他都由数据线传送。。
4.I/O端口:接口电路中三个(两个)可与CPU交换数据的寄存器,其中CPU可以对数据寄存器进行读写操作,可以对状态寄存器读,可以对控制寄存器写。
5.I/O端口的编制方式:CPU选择外设的I/O端口需要一个特定的地址
统一编址:I/O端口和主存格式一样,可以按照正常的访存指令进行访问。区分其和主存的方式为不同的地址码
独立编址:将I/O端口独立出一片空间,需要使用I/O指令来访问I/O端口。
6.程序查询方式
CPU停止当前程序进入专属程序查看I/O是否准备好了数据,每隔一段时间就会询问一次I/O端口是否准备好了数据,若准备好了则接收,然后再隔一段时间询问直到传送完成,期间CPU一直是被占用状态,CPU存在踏步等待现象。效率很低。
7.程序中断方式
外设准备好数据时会向CPU发送中断使其暂停正在执行的程序而去执行中断处理程序,而I/O中断的中断处理程序就是CPU将I/O外设准备好的数据进行操作,当一次数据操作完成后直接返回原程序继续执行。不需要程序查询那样CPU一直被占用,而只需外设准备好数据后才对其操作,大大节省了CPU的占用。
8.程序中断的工作流程
(1)中断请求:发送中断请求。
(2)中断优先级判断:判段当前状态下请求的中断是否可以被相应,高优先级的会被相应,一般来说优先级:不可屏蔽中断>内部异常>可屏蔽中断 硬件故障>软件故障 DMA的中断请求>I/O设备的中断请求 高速设备>低速设备 输入设备>输出设备 实时设备>普通设备
(3)CPU响应中断的三个条件①有中断请求②系统处于开中断模式③一条指令执行完成
(4)中断响应过程(中断隐指令):硬件直接完成的一系列操作防止中间被打断:①关中断②保存断点
③引出中断服务程序找到该中断专属的解决程序。有两种方法:软件识别法和硬件识别法。
软件识别法:CPU设置一个专门的寄存器,操作系统使用一个异常或中断查询程序当发生中断时查询这个寄存器找到中断类型然后转入CPU执行中断处理程序。
(5)中断向量:
硬件识别法:也称向量中断法,异常或中断处理程序的首地址称为中断向量,所有中断向量都存放在中断向量表(一大片区域)中,响应中断后识别得到中断识别号直接从中断向量表找到入口地址再送入PC。
(6)中断处理过程:
加上前面三条硬件处理的过程为
①关中断
②保存断点(硬件实现)
③中断服务程序寻址
④保存现场和屏蔽字(这条以后由中断服务程序软件实现)
⑤开中断
⑥执行中断服务程序
⑦关中断
⑧恢复现场和屏蔽字
⑨开中断,中断返回
9.多重中断
执行中断服务程序时中断是打开的,此时可以由一些优先级更高的中断被相应而暂停前一段中断,但是断点、现场以及返回的地址都是上一层中断的,这些都被压入栈中。优先级保存在屏蔽字寄存器中,若为1则表示该中断优先级低于正在处理的中断,被屏蔽了。
10.DMA传送
DMA传送时一块完全由硬件进行成组信息传送的控制方式,在数据准备时CPU和外设并行处理,相较于程序中断的优势在于程序中断在一个字符准备好后即被中断,当发送大块数据时会导致频繁进入中断状态。DMA直接在主存和外设之间建立一个通道,只需要在传送时通知CPU一声即可完成大块数据的传输。DMA要先进行预处理,结束后要进行后处理。
11.DMA控制器的功能
接受外设发出的DMA请求,向CPU发送总线请求
接管总线控制权进入DMA操作周期
确定传送数据的长度和所存地址
规定数据在主存和外设之间的传送方向
向CPU报告DMA结束
12.DMA和CPU访存时冲突的处理方式
(1)停止CPU访存
(2)周期挪用:CPU正在访存时等待该次访存结束后DMA访存,若同时申请访存则DMA的优先级高。
(3)DMA与CPU交替访存,当CPU的周期比访存时间还长时可交替进行。
13.DMA的传送过程
预处理:CPU进行一些预处理后执行自己的程序,等DMA准备好数据后向CPU发送总线请求用于传输数据。
数据传送:DMA的数据和主存以块为单位传送,但和DMA接口是以字或字节传送
后处理:DMA向CPU发送中断请求,CPU检测数据是否正确等操作。
14.DMA和中断方式的区别
DMA除了预处理和后处理不占用CPU资源,程序中断需要多次占用CPU资源。
对中断请求的相应只能在每条指令结束后,而对DMA的请求的相应可以发生在每个机器周期结束后。
DMA的请求优先级高于中断请求
中断方式靠程序传送,DMA靠硬件传送