
I/O系统软件的主要任务:
通常情况下将I/O设备码视为地址码,对I/O设备码的编址可以采用两种方式
统一编址:将I/O地址作为存储器地址的一部分.
不统一编址:将I/O地址和存储器地址分开,所有对I/O的访问必须由专用的I/O指令.
当设备通过接口和主机相连时,CPU可以通过接口地址来访问I/O设备
每一台设备都赋予一个设备号,因此当需要启动某一个设备时,可由I/O指令的设备码字段直接指出该设备的设备号.通过接口电路中的设备选择电路,便可以选中要交换的信息.
并行传送:
在同一瞬间,N位信息同时从CPU输送至I/O设备,或由I/O设备输入到CPU的传送方式,这种方式传送速度快,要求数据线多.
串行传送:
同一瞬间只传送一位信息,在不同时刻连续逐位的传送一串信息. 传送速度较慢,但是由于它只需要一根数据线和底线,当I/O设备与主机距离很远时,采用串行传送较为合理.
不论采用哪种传送方式,I/O设备和主机都必须互相了解彼此当时所处的状态.
辐射式

总线式
这种方式式现代大多数计算机系统所采用的方式.





接口可以看作是两个系统或两个部件之间的交接部分,它既可以是两种硬件设备之间的连接电路,也可以是两个软件之间的共同逻辑边界.
I/O接口通常是指主机与外部设备之间设置的一个硬件电路及其相应的软件控制.
I/O总线包括 数据线,设备选择线,命令线和状态线.


在执行程序的过程中,当出现异常情况或特殊请求时,计算机停止现行程序的运行,转向对这些异常情况或特殊请求的处理,处理结束后再返回到现行程序的间断处,这就是"中断" .
凡是能够向CPU提出中断请求的各种因素统称为中断源.当多个中断源向CPU提出中断请求时,CPU必须坚持一个原则,即在任何瞬间只能接收一个中断源的请求.所以,当多个中断源同时提出请求时,CPU必须对各种断源的请求进行排队,且只能接受级别最高的中断源的请求,不允许级别低的中断源中断正在运行的中断服务程序. 所以在I/O接口中需设置一个中断触发请求器和中断屏蔽触发器在I/O接口中是成对出现的.
CPU一旦响应了I/O中断,就要暂停现行程序,转去执行该设备的中断服务程序,不同的设备有不同的中断服务程序,每个服务程序都有一个入口地址,CPU必须找到这个入口地址.
中断服务程序的处理流程:
计算机在处理中断的过程中,有可能出现新的中断请求,此时如果CPU暂停现行的中断服务程序,转去处理新的中断请求,这种现象叫做多重中断(中断嵌套) .
倘若CPU在执行中断服务程序时,对新的中断不予理睬,这种中断叫做单重中断.
程序中断方式克服了程序查询方式中的CPU原地踏步的现象,实现了宏观上CPU 和I/O并行工作,提高了CPU的资源利用率,但从微观操作分析,CPU在处理中断服务程序时,仍然需要暂停原程序的正常运行,尤其是当高速I/O设备或辅助存储器需要频繁地,成批量性的与主存交换信息时,不断的打断CPU执行主程序而执行中断服务程序. 为了解决这个问题,人们探索出了新的程序执行方式:DMA

由此可见,由于主存和DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要CPU暂停现行程序为设备服务,省去了保护现场和恢复现场的动作,因此CPU的工作速度比程序中断方式要快. 这一特点特别特别适合与高速I/O或辅存与主存之间的信息交换.
此外,在DMA方式中,由于DMA接口与CPU共享主存,这就有可能出现两者争用主存的所带来的冲突问题,为了有效地分时使用主存,DMA通常与主存交换数据时可采用如下三种方式:
DMA接口应该具备以下几个功能

AR:主存地址寄存器
WC:字计数器
BR:数据缓冲寄存器
DMA控制逻辑:负责管理DMA传送过程
中断机构:报告一批数据传送结束
DAR:设备地址寄存器
独立的DMA请求方式

公共请求线的DMA请求方式
