系统总线的结构与I/O系统
主机和IO设备的交互通过IO接口实现
什么是IO接口
IO接口就是负责协调主机和外部设备的数据传输的部件,又叫做IO控制器。如下:
IO接口主机侧连接到主机,设备侧连接IO设备。这里我们着重看到主机侧的这边,主机侧连接到系统总线,而系统总线的结构也会对IO的控制方式产生影响。
系统总线的结构
单总线结构
此时,CPU、主存、IO接口共用一组系统总线。
双总线结构
此时,引入通道这个部件,实现对IO设备的统一管理。该结构可以将低速的IO设备从总线上分离。
通道:具有特殊功能的处理器,通道程序存放在主存中。
三总线结构
此时,取消了通道,引入了DMA总线,实现高速外设和低速外设的分离。高速外设对应的IO接口称为DMA控制器。
DMA方式
上文提及了DMA方式,在三总线结构看,由于DMA控制器一端连接高速外设(磁盘),一端连接主存,因此不难理解,DMA控制器可以实现脱离cpu的主存和磁盘的数据传输。cpu向DMA控制器指明输入还是输出,传送多少数据等等信息后,DMA控制器通过DMA总线自主进行工作。
当主存只有一个端口时,只能在同一时段支持一个部件的访存,因此cpu和DMA控制器就可能出现冲突,此时需要解决:谁先访问主存?答案有如下三个模式:
停止cpu访存
这个模式不太行,我们引入DMA的初衷就是让cpu从磁盘数据传输工作中脱离出来,而这种模式会导致cpu在磁盘数据传输时产生阻塞。