- 2
- 0
- 约5.18千字
- 约 61页
- 2021-08-09 发布于河北
- 举报
3.5 I/O过程的DMA控制 ;3.5.1 DMA的基本概念 ;;1. CPU暂停访问内存
;;;3.5.3 DMA控制器?; 2. DMA控制器组成
;(2)字计数器 :用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1” ,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU发中断信号。 ;(3)数据缓冲寄存器 :用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数据总线送到数据缓冲寄存器,然后再送到设备。 ;(4)“DMA请求”标志 :每当设备准备好一个数据字后给出一个控制信号,使“DMA请求” 标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA请求”标志复位,为交换下一个字做好准备。 ;(5)“控制/状态”逻辑 :由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协调和同步。 ;(6)中断机构:当字计数器溢出时(全0),意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。这里的中断与上一节介绍的I/O中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。因此它们是I/O系统中不同的中断事件。 ;第一阶段:是进行初始化,即CPU通过程序I/O的方式给DMA控制器预置初值,取状态和送传送需要的有关参数。
第二阶段:由DMA控制器控制外设与主存之间的数据交换。
第三阶段:即CPU中断原程序后进行后处理。若需要继续交换数据,则又要对DMA进行初始化;若不需要交换数据,则停止外设;若为出错,则转错误诊断及处理程序。 ;3.6 I/O过程的通道控制;16;17;;;;3.6.2 通道控制原理;;;;;6、通道的各个部件;6、通道的各个部件;6、通道的各个部件;6、通道的各个部件;6、通道的各个部件;6、通道的各个部件;6、通道的各个部件;33;34;?
(1)选择通道 ??
选择通道每次只能从所连接的设备中选择一台I/O设备的通道程序,此刻该通道程序独占了整个通道。连接在选择通道上的若干设备,只能依次使用通道与主存传送数据
数据传送以成组(数据块)方式进行,每次传送一个数据块,因此,传送速率很高。选择通道多适合于快速设备(磁盘),这些设备相邻字之间的传送空闲时间极短。;36;37;3.7 I / O管理;3.7.1 设备驱动程序; 1. 设备驱动程序的功能
设备驱动程序基本任务是启动指定设备,并且在启动设备之前完成一系列准备工作。一般地说,设备驱动程序的工作过程如下:
(1)将应用程序中的抽象要求转换为具体要求
设备是由设备控制器控制的。用户与上层软件的应用程序提出抽象要求由驱动程序进行中间转换,化抽象为具体,确定将命令、数据和参数分别送到设备控制器的哪个寄存器。
(2)对I/O请求进行合法性检查
检查用户要求是否能为设备接受,是否属于设备的功能范围。;(3)读出并检查设备状态
启动设备控制器的条件是设备就绪,如对打印机要检查:电源是否合上、是否有纸等;对软盘驱动器要检查:有无磁盘、有无写保护等。
(4)传送必要的参数
如要提供本次传送的字节数等。
(5)设置工作方式
例如对于异步串行通信接口要设置:传输速率、奇偶检验方式、停止位宽度及数据长度等。
(6)启动I/O设备
完成上述工作后,即可向设备控制器发出启动命令。; 2. 设备驱动程序的结构
一般说来,设备驱动程序应包含如下5部分:
(1)设备标题(device header);
(2)数据存储和局部过程(data storage local procedure);
(3)策略过程(strategy procedure);
(4)中断过程(interrupt procedure);
(5)命令处理子程序(command processing)。;3. 设备驱动程序在I/O系统中的位置
I/O系统的一般结构,自底向上,它由硬件、中断处理程序、设备驱动程序、与设备无关的系统软件以及用户空间软件等5个层次组成。
; 与设备无关的系统软件的主要作用是在用户应用程序和与设备相关的程序之间提供一个统一的接口,作用如下:
(1)名字映射
原创力文档

文档评论(0)