6. I/O的最终目标:设备
存储设备最终将解释I / O请求,并处理这个请求。如果是读/写数据或执行其他的操作,则设备必须产生一个响应。这个响应可能是很简单的确认,如请求已经收到;或者是更复杂的设备及其存储介质的统计信息等,如图3 - 1 0所示。
假如设备是一个存储子系统,如带有智能控制器的R A I D机柜,为了处理这个请求,必须将它传送给每一个内部设备,然后把来自于设备的响应搜集起来,作为一个单个的响应从R A I D机柜中发送去。最常见的I / O请求是读请求。在响应读请求过程中,设备读取指定的数据块,并把它们传送到主机I / O控制器,在I / O主机控制器中,数据被打包后通过主机I/O总线传输到设备驱动程序,再由系统软件成分传送到应用程序。
•确认I / O请求
设备要确认每一个由主机I / O控制器发送的命令,在将请求转发到连接的设备之前,提供虚拟设备的存储子系统要对这些I / O请求进行立即确认。虽然这样可以加速传输,但也可能产生危险,即所请求的操作没有在实际的设备上真正地执行,出现这种情况的例子之一是回写缓存,第5章将讨论这个问题。
一旦接收到来自设备的确认,主机I / O控制器将对其进行解释,在需要的时候,还将沿着I / O 路径发送一个相应的确认。I / O路径上的任何一个系统软件成分可能都需要确认。
7. I/O路径的硬件成分
图3 - 11 显示了I / O路径的硬件成分,从主机I / O总线开始,通过连接主机I / O控制器和I / O总线,直到设备,这就完成了从图3 - 6开始的各I / O路径成分的连接。