操作系统IO硬件原理

版权声明:转载请注明本文源地址 https://blog.csdn.net/qwe6112071/article/details/71822185

IO系统

I/O 设备及其接口线路、控制部件、通道和管理软件。

IO设备类型

  1. 根据输入输出特性划分:
    输入型外围设备、输出型外围设备和存储型外围设备
  2. 按照输入输出信息交换的单位划分:
    1. 字符设备:输入型外围设备和输出型外围设备一般为字符设备,它与内存进行信息交换的单位是字节,即一次交换 1 个或多个字节
    2. 块设备:块设备一次与内存交换的一个或几个块的信息,存储型外围设备一般为块设备

IO控制方式

按照 I/O 控制器功能的强弱,以及和 CPU 之间联系方式的不同,可把I/O设备的控制方式分为四类,它们的主要差别在于中央处理器和外围设备并行工作的方式不同,并行工作的程度不同。

询问方式(又称程序直接控制方式)

一个数据输入的流程可参照下图:
1. 假如 CPU 上运行的现行程序需要从 I/O 设备读入一批数据,CPU程序设置交换字节数和数据读入主存的起始地址
2. CPU向 I/O 设备发读指令或查询标志指令,I/O 设备便把状态返回给 CPU
3. 如果 I/O忙或未就绪,则重复上述测试过程,继续进行查询
4. 如果 I/O 设备就绪,数据传送便开始,CPU 从 I/O接口读一个字,再向主存写一个字。如果传送还未结束,再次向设备发出读指令,直到全部数据传输完成再返回现行程序执行
这里写图片描述

为了完成以上查询,通常要用到三种指令:
1. 查询指令,用来查询设备是否就绪;
2. 传送指令,当设备就绪时,执行数据交换;
3. 转移指令,当设备未就绪时,执行转移指令
转向查询指令继续查询。

由上述过程可见,一旦 CPU 启动 I/O 设备,便不断查询I/O的准备情况,终止了原程序的执行。CPU在反复查询过程中,浪费了宝贵的 CPU 时间;另一方面,I/O 准备就绪后,CPU 参与数据的传送工作,此时 CPU 也不能执行原程序,可见 CPU 和 I/O 设备串行工作,使主机不能充分发挥效率,外围设备也不能得到合理使用,整个系统的效率很低。

中断方式

中断方式仅当操作正常或异常结束时才中断中央处理机,因而实现了一定程度的并行操作。
相比于询问方式,中断方式的处理流程如下所示
1. CPU 在启动 I/O 设备后,不必查询 I/O 设备是否就绪,而是继续执行现行程序,对设备是否就绪不加过问
2. 直到在启动指令之后的某条指令(如第 K 条) 执行完毕,CPU 响应了 I/O 中断请求,才中断现行程序转至 I/O 中断处理程序执行
3. 在中断处理程序中,CPU 全程参与数据传输操作,它从 I/O 接口读一个字(字节) 并写入主存
4. 如果I/O设备上的数据尚未传送完成,转向现行程序再次启动 I/O 设备,于是命令 I/O 设备再次作准备并重复上述过程
5. 否则,中断处理程序结束后,继续从 K+1 条指令执行

这里写图片描述

使用中断的方式,由于输入输出操作直接由中央处理器控制,每传送一个字符或一个字,都要发生一次中断,因而仍然消耗大量中央处理器时间。
例如,输入机每秒传送 1000 个字符,若每次中断处理平均花 100 微秒,为了传输 1000 个字符,要发生 1000 次中断,所以,每秒内中断处理要花去约 100 毫秒。
但是程序中断方式 I/O,由于不必忙式查询 I/O 准备情况,在 CPU 和 I/O 设备可实现部分并行,与程序查询的串行工作方式相比,使 CPU 资源得到较充分利用。

DMA 方式

虽然程序中断方式消除了程序查询方式的忙式测试,提高了 CPU 资源的利用率,但是在响应中断请求后,必须停止现行程序转入中断处理程序并参与数据传输操作。如果 I/O 设备能直接与主存交换数据而不占用 CPU,那么,CPU 资源的利用率还可提高,这就出现了直接存储器存取(Direct Memory Access ,DMA)方式。
在 DMA(直接主存存取)方式中,主存和 I/O 设备之间有一条数据通路,在主存和 I/O 设备之间成块传送数据过程中,不需要 CPU 干予,实际操作由 DMA 直接执行完成
具体处理如下图所示:
这里写图片描述

DMA至少需要以下逻辑部件:

逻辑部件

主存地址寄存器

存放主存中需要交换数据的地址,DMA 传送前,由程序送入首地址,在DMA传送中,每交换一次数据,把地址寄存器内容加 1

字计数器

记录传送数据的总字数,每传送一个字,字计数器减 1。

数据缓冲寄存器或数据缓冲区

暂存每次传送的数据。DMA与主存间采用字传送,DMA与设备间可能是字位或字节传送。所以,DMA中还可能包括有数据移位寄存器、字节计数器等硬件逻辑

设备地址寄存器

存放 I/O 设备信息,如磁盘的柱面号、磁道号、块号。

中断机制和控制逻辑

用于向 CPU 提出 I/O 中断请求和保存 CPU 发来的 I/O 命令及管理 DMA的传送过程。

DMA 不仅设有中断机构,而且,还增加了DMA传输控制机构。若出现 DMA 与 CPU 同时经总线访问主存,CPU 总把总线占有权让给 DMA,DMA 的这种占有称‘周期窃用’,窃取的时间一般为一个存取周期,让设备和主存之间交换数据,而且在 DMA 周期窃取期间,CPU不用干预,还能做运算操作。这样可减轻CPU的负担,每次传送数据时,不必进入中断系统,进一步提高了 CPU 的资源利用率。

通道方式

DMA 方式与程序中断方式相比,使得CPU对IO的干预从字(字节) 为单位的减少到以数据块为单位。而且,每次 CPU干予时,并不要做数据拷贝,仅仅需要发一条启动 I/O 指 令 ,以及完成 I/O 结束中断处理。
但是,每发出一次I/O指令,只能读写一个数据块,如果用户希望一次读写多个离散的数据块,并能把它们传送到不同的内存区域,或相反时,则需要由CPU分别发出多条启动I/O指令及进行多次 I/O 中断处理才能完成。
通道方式进一步减少了CPU对I/O操作的干予,减少为对多个数据块,而不是仅仅一个数据块,及有关管理和控制的干予。
通道又称输入输出处理器。它能完成主存储器和外围设备之间的信息传送,与中央处理器并行地执行操作。
采用输入输出通道设计后,输入输出操作过程如下:
1. 中央处理机在执行主程序时遇到输入输出请求
2. 启动指定通道上选址的外围设备,一旦启动成功,通道开始控制外围设备进行操作。
3. 这时中央处理器就可执行其它任务并与通道并行工作,直到输入输出操作完成。
4. 通道发出操作结束中断时,中央处理器才停止当前工作,转向处理输入输出操作结束事件。

按照信息交换方式和加接设备种类不同,通道可分为三种类型:

通道类型

字节多路通道

它是为连接大量慢速外围设备,如软盘输入输出机、纸带输入输出机、卡片输入输出机、控制台打字机等设置的。以字节为单位交叉地工作,当为一台设备传送一个字节后,立即转去为另一台设备传送一个字节。在IBM370系统中,这样的通道可接 256 台设备。

选择通道

它用于连接磁带和磁盘快速设备。以成组方式工作,每次传送一批数据;故传送速度很高,但在这段时间只能为一台设备服务。每当一个输入输出操作请求完成后,再选择与通道相连接的另一设备。

数组多路通道

对于磁盘这样的外围设备,虽然传输信息很快,但是移臂定位时间很长。
1. 如果接在字节多路通道上,那么通道很难承受这样高的传输率;
2. 如果接在选择通道上,那么;磁盘臂移动所花费的较长时间内,通道只能空等。

数组多路通道可以解决这个矛盾,它先为一台设备执行一条通道命令,然后自动转换,为另一台设备执行一条通道命令。

对于连接在数组多路通道上的若干台磁盘机,可以启动它们同时进行移臂,查找欲访问的柱面,然后,按次序交叉传输一批批信息,这样就避免了移臂操作过长地占用通道。由于它在任一时刻只能为一台设备作数据传送服务,这类似于选择通道;但它不等整个通道程序执行结束就能执行另一设备的通道程序命令,这类似于字节多路通道。

设备控制器

设备控制器是 CPU 和设备之间的一个接口,它接收从 CPU
发来的命令,控制I/O设备操作,实现主存和设备之间的数据传输操作。
设备控制器是一个可编址设备,当它连接多台设备时,则应具有多个设备地址。

设备控制器的主要功能为:
1. 接收和识别 CPU 或通道发来的命
令,例如磁盘控制器能接收读、写、查找、搜索等各种命令;
2. 实现数据交换,包括设备和控制器之间的数
据传输;通过数据总线或通道,控制器和主存之间的数据传输;
3. 发现和记录设备及自身的状态信息,供 CPU
处理使用;
4. 设备地址识别。

猜你喜欢

转载自blog.csdn.net/qwe6112071/article/details/71822185