IO接口的作用
又被称为IO控制器,设备控制器,负责协调主机和外部设备之间的数据传输
1.数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设的工作速度匹配
2.错误或状态检测:通过状态寄存器反馈设备的各种错误,状态信息,供cpu查用
3.控制和定时:接受从控制总线发过来的控制信号,时钟信号
4.数据格式转换:串-并,并-串 等格式
5.与主机和设备通信 :实现主机-IO接口-io设备之间的通信
内部接口:内部接口与系统总线相连,实际上与内存cpu相连,数据的传输方式可以并行也可以串形
外部接口:外部接口通过接口电缆与外设相连,数据传输可能是串形也可能是并行
结构和工作原理
1.数据线->状态/控制寄存器:【发命令】发送命令字到io控制寄存器,向设备发送命令(需要驱动器的帮助)
2.状态/控制寄存器->数据线:【读状态】从状态寄存器读取状态字,获得设备或者io控制器的状态信息
3.数据线<->数据缓冲寄存器:【读写数据】从数据缓冲寄存器发送或者读取数据,完成主机和外设的数据交换
控制寄存器和状态寄存器在使用时间上是错开的,所以有的io接口中,可以将二者合二为一
io控制器中,各种寄存器称为io端口
有些教材吧命令字叫做控制字
IO端口的编址方式
1.统一编址
把io端口当作存储器的单元进行地址分配,用统一的仿存指令就可以访问io端口,又称为存储器映射方式
靠不同的地址码 区分内存和io设备,io地址要求相对固定在地址的某个部分
优点:不需要专门的io端口,所有访存指令,都可以直接访问端口,程序设计灵活性高,端口又较大的编制空间
缺点:会占有主存的地址空间,使主存地址空间变小,外设寻址时间长
2.独立编址
io端口地址与存储器地址无关,独立编址cpu需要设置专门的io指令访问端口,又称为io映射方式
靠不同的指令区分内存和io设备 或者不同的地址码
优点:使用io指令,程序编制清晰。可读性强;io端口的地址位数少,地址译码速度快;io端口的地址不占用主存地址空间
缺点:io指令的类型少,只能对端口传送操作程序灵活性差;需要cpu提供存储器读写,io读写两组控制信号,增加了逻辑电路的复杂性。