控制信息输出到I/O接口,通知接口和设备要做什么动作。例如,CPU向I/O接口发出启动信号或停止信号以控制外设的启停。
状态信息从I/O接口输入到CPU,表示I/O设备当前所处的状态。对于输入设备,通常用准备好(READY)信号来表示外设已准备好输入数据。对于输出设备,通常用忙(BUSY)信号表示设备是否处于空闲状态,如为空闲状态,外设则接收CPU送来的信息,如为忙状态,CPU则要等待。
数据信息是I/O设备和CPU真正要交换的信息。外设和接口之间的数据信息可以是串行的,也可以是并行的,相应的要使用串行接口或并行接口。不同的I/O设备要求传送的数据类型也是不同的,例如向显示器传送的数据必须是ASCⅡ码,而不能是二进制形式的数。
80X86具有一系列简单而又灵活的输入/输出方式。一种是用IN和OUT指令直接在端口机上处理输入输出的程序直接控制I/O的方式,另外还有中断传送方式和DMA方式。
DMA控制器(Intel
8237A)一般包括四个寄存器:控制寄存器,状态寄存器,地址寄存器和字节计数器,这些寄存器在信息传送之前应进行初始化,即系统程序在地址寄存器中设置要传送的数据块的首地址,在字节寄存器中设置要传送的数据长度(字节数),在状态控制寄存器中设置控制字,指出数据是输入还是输出,并启动DMA操作。每个字节传送后地址寄存器增1,字节计数器减1。
DMA方式主要用于一些高速的I/O设备,如磁带、磁盘、模数转换器(A/D)等设备。这些设备传输字节或字的速率非常快,如磁盘的数据传输率约为每秒200,000字节,也就是说磁盘与存储器传送一个字节只需5微秒。对这类高速I/O设备,用执行输入输出指令的方法或完成一次次中断序列的方法来传输字节,将会造成数据的丢失,而DMA方式能使I/O设备直接和存储器进行成批数据的快速传送。每个字节一到达端口,就直接从接口送到存储器,同样,接口和它的DMA控制器也能直接从存储器取出字节并把它送到I/O设备去。