I/O接口
I/O接口:又称I/O控制器(I/O Controller)、设备控制器,负责协调主机与外部设备之间的数据传输。
I/O控制器多种多样,也会制定相应的标准,如:用于控制USB设备的IO接口、用于控制SATA 3.0硬盘的IO接口等
(I/O控制器就是一块芯片,常被集成在主板上)
I/O接口的作用
数据缓冲:通过数据缓冲寄存器(DBR)达到主机和外设工作速度的匹配;
错误或状态监测:通过状态寄存器反馈设备的各种错误、状态信息,供CPU查用;
控制和定时:接收从控制总线发来的控制信号、时钟信号;
数据格式转换:串-并、并-串等格式转换;
与主机和设备通信:实现主机一I/O接口—I/O设备之间的通信。
设备侧的 外部接口:外部接口通过接口电缆与外设相连,外部接口的数据传输可能是串行方式,因此I/O接口需具有串/并 转换功能。
主机侧的 内部接口:内部接口与系统总线相连,实质上是与内存、CPU相 连。数据的传输方式只能是并行传输。
I/O接口的工作原理
①发送命令字到I/O控制寄存器,向设备发送命令(需要驱动程序的协助);
②从状态寄存器读取状态字,获得设备或I/O控制器的状态信息;
③读/写数据:从数据缓冲寄存器发送或读取数据,完成主机与外设的数据交换。
接口与端口
I/O端口是指接口电路中可以被CPU直接访问的寄存器。
I/O端口及其编址
- 统一编址
把 I/O端口当做存储器的单元进行地址分配,用统一的访存指令就可以访问 I/O端口,又称存储器映射方式。 靠不同的地址码区分内存和I/O设备,I/O地址要求相对固定在地址的某部分。
优点:
不需要专门的输入/输出指令,所有访存指令都可直接访问端口,程序设计灵活性高端口有较大的编址空间读写控制逻辑电路简单。
缺点:
端口占用了主存地址空间,使主存地址空间变小外设寻址时间长(地址位数多,地址译码速度慢)。
- 独立编址
I/O端口地址与存储器地址无关,独立编址CPU需要设置专门的输入/输出指令访问端口,又称**I/O映射方式
**。 靠不同的指令区分内存和I/O设备。
优点:
使用专用I/O指令,程序编制清晰;
I/O端口地址位数少,地址译码速度快;
I/O端口的地址不占用主存地址空间。
缺点:
I/O指令类型少,一般只能对端口进行传送操作,
程序设计灵活性差
需要CPU提供存储器读/写、I/O设备读/写两组控制
信号,增加了控制逻辑电路的复杂性
I/O接口的类型
按数据传送方式可分为
并行接口:一个字节或一个字所有位同时传送。
串行接口:一位一位地传送。 注:这里所说的数据传送方式指的是外设和接口一侧的传送方式,而在主机和接口一侧,数据总是并行传送的。接口要完成数据格式转换。
按主机访问I/O设备的控制方式可分为
程序查询接口
中断接口
DMA接口
按功能选择的灵活性可分为
可编程接口
不可编程接口