您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 第3章输入输出设备及其控制C
第3章输入输出系统计算机组成原理教程(第5版)3.5I/O过程的DMA控制直接存储器存取(directmemoryacces,DMA)控制是在内存与设备之间开辟一条直接数据传送通路。CPU与DMA各自能独立地工作:CPU执行程序,DMA控制输入输出过程。这是一种以存储器为中心的体系结构。第3章输入输出系统23.5.1DMA的基本概念存储器CPUDMA控制器中断接口I/O设备DMA接口I/O设备系统总线第3章输入输出系统3一般说来,在DMA传送需要3个阶段:(1)CPU执行几条指令,对DMA控制器进行初始化,测试设备状态,向DMA控制器输入设备号、起始地址、数据块长度等。(2)由DMA控制器控制I/O设备与内存之间的数据传送。(3)CPU执行中断服务程序对一次传输进行善后处理,如进行数据校验、决定传输是否继续等。第3章输入输出系统41.CPU暂停访问内存3.5.2DMA与CPU共享存储器的方式第3章输入输出系统52.DMA与CPU交替访问内存第3章输入输出系统63.直接访问和周期挪用第3章输入输出系统73.5.3DMA控制器1.DMA控制器字与控制器通过执行机器指令字实现运算一样,DMA的工作是通过执行控制字实现的。控制字存放在内存的指定区域中,当某设备需要与内存交换一次数据时,就取出对应的控制字到DMA中的控制字寄存器中,由DMA控制器进行分析和执行,控制字的一般格式CZNDCZ表示操作的类型;N表示交换代码的字长数;D表示正在交换代码的内存地址。第3章输入输出系统82.DMA控制器组成(1)内存地址计数器:用于存放内存中要交换的数据的地址。在DMA传送前,须通过程序将数据在内存中的起始位置(首地址)送到内存地址计数器。而当DMA传送时,每交换一次数据,将地址计数器加“1”第3章输入输出系统9(2)字计数器:用于记录传送数据块的长度(多少字数)。其内容也是在数据传送之前由程序预置,交换的字数通常以补码形式表示。在DMA传送时,每传送一个字,字计数器就加“1”,当计数器溢出即最高位产生进位时,表示这批数据传送完毕,于是引起DMA控制器向CPU第3章输入输出系统10(3)数据缓冲寄存器:用于暂存每次传送的数据(一个字)。当输入时,由设备(如磁盘)送往数据缓冲寄存器,再由缓冲寄存器通过数据总线送到内存。反之,输出时,由内存通过数第3章输入输出系统11(4)“DMA请求”标志:每当设备准备好一个数据字后给出一个控制信号,使“DMA请求”标志置“1”。该标志置位后向“控制/状态”逻辑发出DMA请求,后者又向CPU发出总线使用权的请求(HOLD),CPU响应此请求后发回响应信号HLDA,“控制/状态”逻辑接收此信号后发出DMA响应信号,使“DMA第3章输入输出系统12(5)“控制/状态”逻辑:由控制和时序电路以及状态标志等组成,用于修改内存地址计数器和字计数器,指定传送类型(输入或输出),并对“DMA请求”信号和CPU响应信号进行协第3章输入输出系统13(6)中断机构:当字计数器溢出时(全0),意味着一组数据交换完毕,由溢出信号触发中断机构,向CPU提出中断报告。这里的中断与上一节介绍的I/O中断所采用的技术相同,但中断的目的不同,前面是为了数据的输入或输出,而这里是为了报告一组数据传送结束。因此它们是I/O第3章输入输出系统14第一阶段:是进行初始化,即CPU通过程序I/O的方式给DMA控制器预置初值,取状态和送传送需要的有关参数。第二阶段:由DMA控制器控制外设与主存之间的数据交换。第三阶段:即CPU中断原程序后进行后处理。若需要继续交换数据,则又要对DMA进行初始化;若不需要交换数据,则停止外设;若为出错,则转错误诊断及处理程序。3.5.3DMA传送过程第3章输入输出系统计算机组成原理教程(第5版)3.6I/O过程的通道控制第3章输入输出系统16168.5通道方式1、通道的提出DMA直接依靠硬件进行管理,只能实现简单的数据传送。随着系统配置的I/O设备的不断增加,输入输出操作日益繁忙,为此要求CPU不断地对各个DMA进行预置。这样,CPU用于管理输入输出的开销亦日益增加。为了减轻CPU负担,I/O控制部件又把诸如选设备、切换、启动、终止以及数码校验等功能也接过来,进而形成I/O通道,实现输入输出操3.6.1通道控制及其特点第3章输入输出系统17178.5通道方式2、通道的基本概念通道”是计算机系统中代替CPU管理控制外设的独立部件,是一种能执行有限I/O指令集合——通道命令的I/O处理机。通道有自己的指令和程序专门负责数据的输入输出的传输控制,CPU下放“传输控制”的功能后只负责数据的处理。因此通道是一个特殊功能的处理器。在CPU启动通道后,通道自动地去内存取出通道指令并执行指令。直到数据交换过程结束向CPU发出中断请求,进行通道结束处理工作。第3章输入输出系统18第3章输入输出系统193.通道控制的特点(1)通道具有读写指令,可以执行通道程序(2)CPU通过简单的输入输出指令控制通道工作第一字:命令码数据地址第二字:标志传送个数操作码地址码通道号设备号第3章输入输出系统20(3)通道和设备采用中断方式与CPU联系输入输出中断可分下面几种:·报告某操作正常结束的“正常结束”中断;·报告输入输出操作已经到达预定环节的“进程中断”;·输入输出设备发现的“故障中断”;·人对输入输出设备发出干预的“干预中断”等。第3章输入输出系统213.6.2通道控制原理1.通道的功能通道对外部设备实现管理和控制应有如下功能:·接受中央处理机的输入输出指令,确定要访问的子通道及外部设备;·根据中央处理机给出的信息,从内存(或专用寄存器)中读取子通道的通道指令,并分析该指令,向设备控制器和设备发送工作命令;·对来自各子通道的数据交换请求,按优先次序进行排队,实现分时工作;·根据通道指令给出的交换代码个数和内存始址以及设备中的区域,实现外部设备和内存之间的代码传送;·将外部设备的中断请求和子通道的中断请求进行排队,按优先次序送往中央处理机,回答传送情况;·控制外部设备执行某些非信息传送的控制操作,如磁带机的引带等;·接收外部设备的状态信息,保存通道状态信息,并可根据需要将这些信息传送到主存指定单元中。第3章输入输出系统222.通道的组成第3章输入输出系统23主要部件作:(1)通道指令寄存器JZ:用来存放正在执行的通道指令。(2)代码缓冲寄存器JN:是外部设备与内存进行代码交换时暂存被交换代码的寄存器。(3)节拍发生器:和中央处理机脉冲(节拍)分配器一样,产生通道工作的节拍,控制整个通道有序地工作。(4)操作控制器:根据通道指令所规定的操作或排队结果,按通道节拍产生通道微操作。(5)传输控制电路:控制并传输外部设备和通道之间的代码及信号。(6)排队器:根据预先确定的优先次序,对各子通道提出的请求进行排队,确定通道下一次和哪一个子通道的外部设备进行交换,每次都是让优先级高的先进行交换。排队器加上子通道的记忆部件,就能实现通道逐个地启动子通道进行工作。图中排队器和各设备控制器的连线表示子通道。右边设备控制器与中央处理机以及与传输控制电路之间的连线,是所有设备控制器都有的,为清楚起见图中予以省略,并用虚线所指的圆圈表示被排队器选中的设备。(7)地址形成电路:是根据排队器给出的子通道号确定与该子通道对应的通道程序的指令地址的装置。它相当于中央处理机的程序计数器。第3章输入输出系统243.通道控制的工作过程①中央处理机执行输入输出指令。当程序执行到需要输入输出时,由专门的外设管理程序将本次输入输出的各种主要信息准备好,根据输入输出的具体要求,组织好通道程序,存入内存,并将它的首地址送入约定单元或专用寄存器中,然后执行输入输出指令,向通道发出“启动I/O”命令。②通道控制外部设备进行传输。通道接到“启动I/O”命令后进行以下工作。·从约定的单元或专用寄存器中取得通道程序首地址,并检查其是否正确。·根据这个首地址从内存读取第一条通道指令。·检查通道、子通道的状态是否能使用。如果不能使用,则形成结果特征,回答启动失败,该通道指令无效。·如果该通道和子通道能够使用,就把第一条通道指令的命令码发到响应设备进行启动。等到设备回答并断定启动成功后,建立结果特征“已启动成功”;否则建立结果特征“启动失败”,结束操作。·启动成功后,通道将通道程序首地址保留到子通道中,此时通道可以处理其他工作,设备具体执行通道指令规定的操作。·若是传送数据操作,设备便依次按自己的工作频率发出使用通道的申请,进行排队。通道响应设备申请,将数据从内存经通道发至设备,或反之。当传输完一个数据后,通道修改内存地址(加1)和传输个数(减1),直至要传输个数达到0为止,结束该条通道指令的执行。第3章输入输出系统25③通道指令执行结束及输入输出结束当设备全部完成一条通道指令规定的操作时,便发出“设备结束”信号,表示该条通道指令确定的传输已经结束,对应子通道可再往下执行一条新的指令。如果执行完的通道指令不是该通道程序中最后一条指令,子通道进入通道请求排队。通道响应该请求后,将保留在子通道中的通道指令地址更新,指向下一条通道指令,并再次从内存读取新的一条通道指令。一般每取出一条新的通道指令,就将命令码通过子通道发往设备继续进行传输。如果结束的通道指令是通道程序的最后一条,那么这个设备的结束信号使通道引起输入输出中断,通知中央处理机,本通道程序执行完毕,输入输出操作全部结束。当中央处理机响应中断后,程序可以根据通道状态,分析结束原因并进行必要的处理。第3章输入输出系统266、通道的各个部件(1)通道指令寄存器JZ:用来存放正在执行的通道指令。第3章输入输出系统276、通道的各个部件(2)代码缓冲寄存器JN:是外部设备与内存进行代码交换时暂存被交换代码的寄存器。第3章输入输出系统286、通道的各个部件(3)节拍发生器:和中央处理机脉冲(节拍)分配器一样,产生通道工作的节拍,控制整个通道有序地工作。第3章输入输出系统296、通道的各个部件(4)操作控制器:根据通道指令所规定的操作或排队结果,按通道节拍产生通道微操作。第3章输入输出系统306、通道的各个部件(5)传输控制电路:控制并传输外部设备和通道之间的代码及信号。第3章输入输出系统316、通道的各个部件(6)排队器:根据预先确定的优先次序,对各子通道提出的请求进行排队,确定通道下一次和哪一个子通道的外部设备进行交换,优先级高的先进行交换。第3章输入输出系统326、通道的各个部件(7)地址形成电路:是根据排队器给出的子通道号确定与该子通道对应的通道程序的指令地址的装置。它相当于中央处理机的程序计数器。第3章输入输出系统3333在一般用户程序中,通过调用通道来完成一次数据输入输出。CPU执行用户程序和管理程序,通道处理机执行通道程序。8、通道工作过程第3章输入输出系统3434主要过程分为如下三步进行:(1)在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。(2)通道处理机执行CPU为它组织的通道程序.完成指定的数据输入输出工作(3)通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对输入输出中断请求进行处理。8、通道工作过程第3章输入输出系统35(1)选择通道选择通道每次只能从所连接的设备中选择一台I/O设备的通道程序,此刻该通道程序独占了整个通道。连接在选择通道上的若干设备,只能依次使用通道与主存传送数据数据传送以成组(数据块)方式进行,每次传送一个数据块,因此,传送速率很高。选择通道多适合于快速设备(磁盘),这些设备相邻字之间的传送空闲时间极短。3.6.3通道类型第3章输入输出系统3636(2)字节多路通道(ByteMultiplexorChannel)是一种简单的共享通道,在时间分割的基础上,服务于多台低速和中速面向字符的外围设备。字节多路通道包括多个子通道,每个子通道服务于一个设备控制器
本文标题:第3章输入输出设备及其控制C
链接地址:https://www.777doc.com/doc-1314260 .html