一、设备控制器(I/O接口):
- 功能:控制一个或多个I/O设备,以实现I/O设备和计算机之间的数据交换。是CPU与I/O设备之间的接口,接收从CPU发来的命令,去控制I/O设备工作,使CPU能够从繁杂的设备控制事务中解脱出来。详见总线、I/O总线、I/O接口.
- 接收和识别命令:接收和识别处理机发来的多种命令。在控制寄存器中存放接收的命令和参数,并对所接收的命令进行译码。如磁盘控制器可接收CPU发来的read、write、format等命令
- 数据交换:实现CPU与设备控制器之间(通过数据总线,并行)、设备控制器与设备之间的数据交换(通过数据寄存器)
- 标志和报告设备的状态:通过在设备控制器中的状态寄存器,反映设备的某一种状态
- 地址识别:设备控制器可编址,其必须能够识别自身所控制的每个设备的地址(当控制多个设备时,含有多个设备地址),因此设备控制器中需要配置地址译码器
- 数据缓冲区:由于I/O设备的数据传输速率较低、CPU和内存的速率却很高,所以在设备控制器中必须设置一个缓冲区
- 差错控制:对于由I/O设备传送来的数据,设备控制器需要进行差错检测,若发现错误,通常将差错检测码置位并向CPU报告
二、I/O通道
-
为什么:
没有I/O通道时,虽然CPU与I/O设备之间增加了设备控制器,能大大减少CPU对I/O设备的干预,但当主机所配置的I/O设备有很多时,CPU的负担仍会很重。所以在CPU和设备控制器之间又增设了通道。主要目的是建立独立的I/O操作,即不仅使数据的传送能独立于CPU,而且使对I/O操作的组织、管理和结束处理尽量独立,以保证CPU有更多的时间进行数据处理 -
是什么:
可以把通道理解为一个阉割版的小CPU,是专门用于统一管理各种I/O设备的,是具有特殊功能的处理器,通道程序放在主存中。所有的I/O设备都会通过通道连到总线,进而和CPU进行间接的交互。因为通道对信息的处理速度很快,所以直接将通道通过总线和CPU进行连接,这样可以保证快速的总线的性能可以发挥出来。
在设置了通道后,CPU只需向通道发送一条I/O指令,通道在接收到该指令后,便会从内存中取出本次要执行的通道程序,然后执行该程序;仅当通道完成了规定的I/O任务后,才向CPU发送中断信号。
-
I/O通道与一般处理机的区别:
- I/O通道指令类型单一,所能执行的命令主要局限于与I/O操作有关的指令
- I/O通道没有自己的内存,所执行的通道程序是放在主机的内存中的。即I/O通道与CPU共享内存
- 为什么说I/O通道是一种特殊的处理机:它具有执行I/O指令的能力,并能通过执行I/O通道程序来控制I/O操作
-
“瓶颈”问题:
- 描述:由于通道价格昂贵,机器中所设置的通道数量势必较少。如下图,假如设备1~4是四个磁盘,为了启动磁盘4,必须用通道1和设备控制器2;但若这两者已被其他设备占用,则无法启动磁盘4。这就是由通道不足所造成的“瓶颈”现象。
- 解决方法:如下图,增加设备到主机间的通路而不增加通道,即将一个设备连接到多个设备控制器上,而把一个设备控制器又连到多个通道上。多通路方式不仅解决了“瓶颈”问题,还提高了系统的可靠性,因为个别通道或设备控制器的故障不会使设备和存储器之间没有通路
- 描述:由于通道价格昂贵,机器中所设置的通道数量势必较少。如下图,假如设备1~4是四个磁盘,为了启动磁盘4,必须用通道1和设备控制器2;但若这两者已被其他设备占用,则无法启动磁盘4。这就是由通道不足所造成的“瓶颈”现象。