1.程序发查询方式
信息交换完全由CPU执行程序完成,程序查询方式接口中设置一个数据缓冲寄存器(数据端口)和一个设备状态寄存器(状态端口),主机进行I/O操作时,先发出查询信号,读取设备的状态,并根据设备状态决定下一步操作究竟是数据传送还是等待。
程序查询方式流程图:一次只能传送一个字的数据,先存到寄存器在存到主存中
2.程序中断方式:
程序中断是指计算机执行计算机程序时,出现某种继续处理的异常情况或特殊情况,CPU暂时中止现行的程序,而转去对这些异常情况或特殊情况请求处理,处理完毕后在返回到现行程序的断点处。
程序中断方式的思想:
CPU在程序中安排好在某个时刻启动某个外设,然后CPU继续执行当前的程序,一旦外设完成数据传送的准备工作,就主动向CPU发送中断请求,请求为自己服务。在可以响应中断的条件下,CPU暂时中止正在执行的程序,执行中断服务程序为外设服务,传送完数据后,CPU返回原来的程序。
程序中断的工作流程:
1)中断请求,中断源是请求CPU中断的设备或事件,一台计算机允许有多个中断源。中断系统需要为每个中断源设置中断请求标记触发器,当其中的状态为“1”时,表示中断源有请求,这些触发器可以组成中断请求标记寄存器。通过INTR发送的是可屏蔽中断,NMI线发出的是不可屏蔽中断。
2)中断相应判优,中断响应优先级是指CPU响应中断请求的先后顺序,通过中断判优逻辑来决定响应那个中断源请求。中断响应的判优通常是通过硬件排队器实现的。
一般来说:①不可屏蔽中断>内部异常>可屏蔽中断 ②在内部异常中,硬件故障>软件中断 ③DMA中断请求优先于I/O设备传送的中断请求 ④I/O传递类中断请求中,高速外设优先于低速外设,输入设备优先于输出设备,实时设备优先于普通设备。
3)CPU响应中断的条件,CPU响应必须满足以下三个条件,①中断源有中断请求②CPU允许中断以及开中断(异常与不可屏蔽中断不此限制)③一条指令执行完毕(异常不少此限),且没有更紧急任务。
4)中断响应过程,CPU响应中断后,经过某些操作,转去执行中断服务程序,这些操作是由硬件直接实现的,我们将它称为中断隐指令。中断隐指令并不是真正的指令,是一种虚拟的说法。它所完成的操作如下:①关中断②保存断点③引出中断服务程序
5)中断向量,每一个中断都有一个唯一的类型号,每个中断类型号都对应一个中断服务程序,每个中断服务程序都有一个入口地址,CPU必须找到入口地址,即中断向量。把系统中的全部中断向量集中存放到存储器的某个区域内,这个存放中断向量的存储区就称为中断向量表。
多重中断:
若CPU在执行中断服务程序时,又出现了更高优先级的中断请求,CPU暂停中断服务,转去处理新的中断请求,则称这种中断为多重中断。
CPU要实现多重中断必须满足:①在中断服务程序中提前设置开中断②优先级别高的中断源有权中断优先级别低的中断源。
每个中断源都有一个屏蔽触发器,1表示屏蔽改中断源的请求,0表示可以正常请求。所有的屏蔽触发器组合在一起便构成一个屏蔽字寄存器,屏蔽字寄存器的内容称为屏蔽字。
3.DMA方式:
主存和DMA接口之间有一条直接的数据通道,由于DMA方式传送不需要经过CPU,因此不必中断现行程序,I/O与主机并行工作,程序和传送并行工作。
DMA控制器的组成:
在DMA方式中,对数据传送过程进行控制的硬件称为DMA控制器(DMA接口)。当I/O设备需要进行数据传送时,通过DMA控制器向CPU提出传送请求,CPU响应之后将让出总线,有DMA控制器总线进行数据传送。
DMA的传送方式:
1)停止CPU访存,让CPU脱离总线,停止访问主存,直到DMA传递一块数据结束。
2)周期挪用,①CPU不访存,不冲突 ②CPU正在访存,存取周期结束让出总线 ③CPU与DMA同时访存,让给I/O访存
DMA的传送过程:
1)预处理:由CPU完成一些必要的准备工作。
2)数据传送:DMA的数据传送可以以单字节(或字)为基本单位,也可以以数据块为基本单位。
3)后处理:DMA控制器向CPU发送中断请求,CPU执行中断服务程序做DMA结束处理,如检验数据是否正确,以及是否继续使用DMA传送其他数据等。
DMA传送流程: