1.I/O接口的作用
- 数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配
- 错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用
- 控制和定时:接收从控制总线发来的控制信号、时钟信号
- 数据格式转换:串-并、并-串 等格式转换
- 与主机和设备通信:实现 主机—I/O接口—I/O设备之间的通信
2.I/O接口
内部接口:内部接口与系统总线相连,实质上是与内存、CPU相 连。
外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并转换功能。
有的I/O接口可以连接多个设备
3.I/O接口的工作原理
操作步骤
①发命令:发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助)
②读状态:从状态寄存器读取状态字,获得设备或I/O控制器的状态信息
③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换
4.接口与端口
如图:
数据端口可以读和写
控制端口只可以写
状态端口只能读
5.统一编制 v.s. 独立编制
IN是将某个I/O端口读到某个CPU寄存器中
out是将CPU的某个内容写到I/O设备当中
怎么区分主存和I/O端口的地址空间?
- 只要执行的是I/0指令,我们就可以根据地址信息找端口
- 如果不是I/O指令,我们就去访存
统一编制:
优点: 不需要专门的输入/输出指令,所有访存指令都可直接 访问端口,程序设计灵活性高 端口有较大的编址空间 读写控制逻辑电路简单
缺点: 端口占用了主存地址空间,使主存地址空间变小 外设寻址时间长(地址位数多,地址译码速度慢)
独立编码
优点: 使用专用I/O指令,程序编制清晰
I/O端口地址位数少,地址译码速度快
I/O端口的地址不占用主存地址空间
缺点:
I/O指令类型少,一般只能对端口进行传送操作, 程序设计灵活性差 需要CPU提供存储器读/写、I/O设备读/写两组控制 信号,增加了控制逻辑电路的复杂性
6.I/O接口的类型
按数据传送方式可分为:
并行接口:一个字节或一个字所有位同时传送。
串行接口:一位一位地传送。 注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧, 数据总是并行传送的。接口要完成数据格式转换。
按主机访问I/O设备的控制方式可分为:
程序查询接口、中断接口、DMA接口
按功能选择的灵活性可分为:
可编程接口、不可编程接口