1. I/O接口的功能和基本结构
1)I/O接口的基本功能是:
(1)实现设备的选择
(2)实现数据缓冲达到速度匹配
(3)实现数据串并格式转换
(4)实现电平转换
(5)传送控制命令
(6)反映设备的状态(“忙”,“就绪”,“中断请求”)
2)接口的基本组成
2. I/O 设备与主机的联系方式I/O 设备与主机的联系方式
1)I/O 设备编址方式
通常将I/O设备码视为地址码,对I/O地址码的编址可采用两种方式:
(1)统一编址 用取数、存数指令
就是将I/O地址看作是存储器地址的一部分.如在64K地址的存储空间中,划出8K地址作为I/O的地址,.凡是在这8K地址范围内的访问,就是对 I/O的访问,所用的指令与访存指令相似.
(2)不统一编址 有专门的I/O指令
就是指I/O地址和存储器地址是分开的,所有对I/O的访问必须有专用的I/O指令.
显然统一编址占用了存储空间,减少了主存容量,但无需专用的I/O指令.不统一编址由于不占用主存空间,故不影响主存容量,但需设 I/O专用指令.因此,设计机器时,需根据实际情况权衡考虑选取何种编址方式.
2)设备选址
用设备选择电路识别是否被选中
3)传送方式
(1)串行
(2)并行4)联络方式(三种)
(1)立即响应
(2)异步工作采用应答信号
(3)同步工作采用同步时标
3.I/O与主机的连接方式
I/O设备与主机的连接方式通常有两种:辐射式和总线式.
为了进一步提高CPU的工作效率,又出现了DMA(Direct Memory Access)技术,其特点是I/O 与主存之间有一条直接数据通路,I/O设备可以与主存直接交换信息,使CPU 在I/O与主存交换信息时,能继续完成自身的工作,故其资源利用率得到了进一步的提高.
4.I/O设备与主机信息传送的控制方式
1) 程序查询方式
程序查询方式的核心问题是每时每刻需要不断查询I/O设备是否准备好.CPU不断地询问外设是否准备好:如果准备好,CPU执行IO操作;否则,CPU一直等待.CPU大部分时间处于等待状态,利用率不高.
2) 程序中断方式
(1)中断的基本概念
计算机在执行程序的过程中,当出现异常情况或者特殊情况时,CPU停止当前程序的运行,转向对这些异常情况或者特殊情况的处理,处理结束之后再返回到现行程序的间断处继续运行,该过程就是中断.
(2)中断响应过程
当多个中断源向CPU提出中断请求时,CPU在任何一个时刻只能接受一个中断源的请求,所以,当多个中断源同时请求时,CPU必须对各个中断源的请求进行排队,且只能接受级别最高的中断源的请求,不允许低级别的中断源中断正在运行的中断服务程序.
每个设备都配备一个中断请求触发器和中断屏蔽触发器,当中断请求触发器为“1”时,表示该设备向CPU提出中断请求,如果中断屏蔽触发器为“1”时,表示该设备被屏蔽,即封锁其中断源的请求.
当多个中断源同时向CPU提出请求,CPU需要对这些中断源的请求进行排队,也称中断判优,有两种判优的方法:
1)查询法
由测试程序按一定优先排队次序检查各个设备的“中断触发器”(或称为中断标志),当遇到第一个“1”标志时,即找到了优先进行处理的中断源,通常取出其设备码,根据设备码转入相应的中断服务程序.
2)串行排队链法
由硬件组成一个串行的优先链,称作排队链.
一旦CPU确定接受某个中断源的请求,就需要执行该设备的中断服务程序,因此需要找到中断服务程序的入口地址.入口地址的寻找可以用软件或硬件的方法实现.硬件向量法就是通过向量地址来寻找设备的中断服务程序的入口地址.中断向量地址形成部件可以通过向接受请求的中断源发送中断响应信号,然后由被响应的设备回送设备码,根据设备码来产生中断向量地址.(3)中断处理过程
中断处理过程可分以下几个步骤:
1)关中断
进入不可再次响应中断的状态,由硬件自动实现.因为接下去要保存断点,保存现场.在保存现场过程中,即使有更高级的中断源申请中断,CPU也不应该响应;否则,如果现场保存不完整,在中断服务程序结束之后,也就不能正确地恢复现场并 继续执行现行程序.
2)保存断点和现场.
为了在中断处理结束后能正确地返回到中断点,在响应中断时,必须把当前的程序计数器PC中的内容(即断点)保存起来.
现场信息一般指的是程序状态字,中断屏蔽寄存器和CPU中各寄存器的内容.
3)判别中断源,转向中断服务程序.
在多个中断源同时请求中断的情况下,本次实际响应的只能是优先权最高的那个中断源.所以,需进一步判别中断源,并转入相应的中断服务程序入口.
4)开中断.
因为接下去就要执行中断服务程序,开中断将允许更高级中断请求得到响应,实现中断嵌套.
5)执行中’断服务程序.
不同中断源的中断服务程序是不同的,实际有效的中断处理工作是在此程序段中实现的.
6)退出中断.
在退出时,又应进入不可中断状态,即关中断,恢复现场,恢复断点,然后开中断,返回原程序执行.
(4)多重中断和中断屏蔽的概念.
多重中断是指在处理某一个中断过程又发生了新的中断请求,从而中断该服务程序的执行,又转去进行新的中断处理.这种重叠处理中断的现象又称为中断嵌套.
中断屏蔽
当产生中断请求后,用程序方式有选择地封锁部分中断,而允许其余部分中断仍得到响立,称为中断屏蔽.
实现方法是为每个中断源设置一个中断屏蔽触发器来屏蔽该设备的中断请求.具体说,用程序方法将该触发器置“1”,则对应的设备中断被封锁,若将其置“0”,才允许该设备的中断请求得到响应.由各设备的中断屏蔽触发器组成中断屏蔽寄存器.
2) DMA方式
DMA是I/O设备与主存储器之间由硬件组成的直接数据通路,用于高速I/O设备与主存之间的成组数据传送.
数据传送是在DMA控制器控制下进行的,由DMA控制器给出当前正在传送的数据字的主存地址,并统计传送数据的个数以确定一组数据的传送是否已结束.在主存中要开辟连续地址的专用缓冲器,用来提供或接收传送的数据.在数据传送前和结束后要通过程序或中断方式对缓冲器和DMA控制器进行预处理和后处理.