计算机I/O系统:设备、总线与数据传输解析
1. DMA控制器工作原理
DMA(Direct Memory Access,直接内存访问)控制器在计算机的数据传输中起着关键作用。一个典型的DMA控制器由一对计数器和其他电路组成,这些电路用于与内存和外围设备进行交互。
其中一个计数器作为地址寄存器,在每次数据传输时为地址总线提供一个地址。另一个计数器则指定数据传输的次数。应用程序会用数据传输起始块的地址来初始化DMA控制器的地址计数器。
当外围设备需要向内存传输数据或从内存接收数据时,它会向DMA控制器发送信号。DMA控制器将地址计数器的值放置在地址总线上。在输入操作中,外围设备与DMA控制器协同工作,将数据放置在数据总线上,以便写入内存;在输出操作中,外围设备从数据总线上读取来自内存的数据。
每次成功的数据传输后,DMA控制器会增加其地址寄存器的值,并减少传输计数器的值。这个过程会一直重复,直到传输计数器减为零。
2. I/O速度层次结构
不同的外围设备具有不同的数据传输速率。根据传输速率的不同,可以将外围设备分为以下几类:
- 低速设备 :产生或消耗数据的速率远低于CPU处理能力的设备。通常,低速设备的运行速度比CPU慢三个或更多数量级。
- 中速设备 :数据传输速率与CPU大致相同,或者比CPU慢最多三个数量级的设备。这类设备可以使用程序控制I/O来访问。
- 高速设备 :数据传输速率超过CPU使用程序控制I/O所能处理的设备。
外围设备的速度决定了I/