目录
- 接口的功能及分类
- 主机与外设间的连接方式
- I/O接口的编址方式
- CPU与外设之间交换数据的方式
接口的功能及分类
输入/输出(Input/Output, I/O)系统是计算机与外界进行数据交换的通道。
I/O接口是连接主机和I/O设备的转换机构。由于I/O设备种类多样,控制方式各不相同,CPU不堪重负,因而有了I/O系统,协调和控制CPU、存储器、外部设备的数据通信。
I/O接口是主机与I/O设备间的美好生活小助手。有5大功能:
- 地址译码功能:为不同接口分配不同的地址码,便于接口的区分与选择。
- 数据转换:数据类型、格式方面的转换。
- 交换信息:在主机和I/O设备之间交换数据、控制命令、状态信息。
- 提供主机与I/O设备所需的缓冲、暂存、驱动能力。
- 支持主机用程序查询、中断、DMA方式访问。
I/O接口可以按照传送格式、访问方式、时序控制方式分类。
并行接口:一次把一个字节/字的所有位同时传输。
串行接口:数据的所有位按顺序逐位传输。
I/O接口 = 硬件电路 + 软件驱动
主机与外设间的连接方式
主机与外设间的常见连接方式有,总线型、星型、通道方式、I/O处理及方式。
总线型是最基本的连接方式,能够为连接的部件分时共享信息。
分时:某一时刻只允许1个部件把信息发送到总线。
共享:多个部件都可以通过总线传递信息。
总线要实现分时共享,必须要有相应的规则,称为总线协议。
可以把总线想象成一条河流,部件是沿河居住的生物。河流中的水是共享的信息。为了保持秩序,沿河居住的生物都遵循某种协议,一个时刻只让一个生物往河里投东西。
I/O接口的编址方式
I/O接口的编址方式有2种。
- 与内存单元统一编址:将I/O接口中的寄存器/存储部件看作存储器单元,与主存中的存储单元统一编址。
优点:内存指令可以直接用于接口
缺点:统一编址导致内存地址不连续;读程序时需要仔细辨认才可区分操作是针对内存还是接口。 - I/O接口单独编址:不占主存空间,指令易于分辨。但是需要设置专门的I/O指令才可访问接口。
CPU与外设之间交换数据的方式
CPU与外设之间交换数据的方式有4种。分别是直接程序控制、中断方式、直接存储器存取(DMA)方式、通道控制方式。数据交换能力逐渐增强,结构越来越复杂。
- 直接程序控制:包含立即程序传输方式、程序查询方式。
(1)立即程序传输方式,外设时刻准备就绪,等待着与CPU交换数据。就像人们坐在公交站台,时刻准备着,等待公交车的到来。
(2)程序查询方式,CPU会先询问外设的状态,外设如果准备就绪,CPU就与其进行数据交换。就像快递员会事先打电话问问你在不在家,如果在家,快递员就来送货啦。这种方式简单易实现,但是会降低CPU的利用率,且无法实时响应外部突发事件。 - 中断方式:因某事件发生,CPU暂停正在执行的程序,转而处理该事件。处理完毕后,回到暂停的执行程序,继续运行。中断的事件称为中断源。I/O接口准备好时,向CPU发出中断信号,CPU处理完与外设的数据交换后,回到暂停的程序继续工作。这种方式下,CPU无需查询外设状态,提高了CPU的利用率,CPU和外设可以并行工作,但是无法满足高速的批量数据传送要求。
- 直接存储器存取(DMA)方式:通过DMA控制器(DMAC)控制主存和I/O设备间直接数据传送, 简化CPU对数据传送的控制,提高主机和外设的并行工作程度。但是,DMAC只能控制简单的数据传送操作。
- 通道控制方式:通过执行通道程序进行I/O操作的管理,通道控制方式与DMA相比,可完成较复杂的I/O管理、预处理。DMA就像功能简单的机器人一代,通道控制使用的就是机器人二代升级版,能够做更复杂的事情。通道控制方式逐渐发展,成为了现在广泛使用的输入/输出处理器(I/O Processer, IOP)。