- 1、本文档共87页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[计算机组成原理第3章2
3.2 输入/输出中的数据传送控制 3.2.1直接程序传送控制 3.2.2程序中断控制 3.2.3 DMA控制 3.2.4通道控制 外部设备的工作过程是其与主机交换数据的过程,输入设备把外界的数据传送给主机处理,输出设备把主机中的数据传送到外部去使用。这一节介绍如何对这些过程进行控制。 3.2.1直接程序传送控制 直接程序传送控制的特点是I/O过程完全处于CPU指令控制下,即外部设备的有关操作(如启、停、传送开始等)都要由CPU指令指定。在典型情况下,I/O操作在CPU寄存器与外部设备(或接口)的数据缓冲寄存器间进行,I/O设备不直接访问主存。 采用程序直接控制,外部设备与CPU的数据传送可有两种方式。 1. 无条件传送方式 无条件程序控制方式下的I/O传送时,CPU像对存储器读写一样,完全不管外设的状态如何。具体操作步骤大致如下: ① CPU把一个地址送到地址总线上,经译码选择一台特定的外部设备; ② 输出时CPU向数据总线送出数据;输入时CPU等待数据总线上出现数据; ③ 输出时CPU发出写命令将数据总线上的数据写入外部设备的数据缓冲寄存器;输入时CPU发出读命令,从数据总线上将数据读入CPU的寄存器中。 这种传送方式一般适合于对采样点的定时采样或对控制点的定时控制等场合。为此,可以根据外设的定时,将I/O指令插入程序中,使程序的执行与外设同步。所以这种传送方式也称为程序定时传送方式或同步传送方式。 下面是一段8086程序,它的功能是测试状态寄存器(端口地址为27 H)的第2位是否为1,若为1则转移到ERROR进行处理 IN AL,27H ; 输入 TEST AL JNE ERROR。 无条件传送是所有传送方式中最简单的一种 传送方式,它需要的硬件和软件数量极少。 2. 程序查询传送方式 由于多数外部设备与CPU之间的数据传送都是随机的,并且要求CPU必须顾及I/O设备的工作状态。这时CPU必须不断查询各设备的工作状态。当计算机系统中只有一台外设时,CPU要定时地对这台设备的状态进行查询(这时CPU常常处于询问等待状态,或在执行主要功能的程序中穿插地进行询问)。当有多台外设时,CPU一般是循环地逐一进行询问;有些系统,将各个外设的状态标志位线“或”在一条公共检测线上,CPU首先检测此线,有服务请求再去查询是哪台设备。 图3.21是以输入数据为例说明程序查询控制接口原理示意图。 它主要包括如下3个部件: (1) 设备选择电路设备选择电路用以判别地址总线上送出的地址(或称为呼叫的设备)是否为被查询设备,它实际上是设备地址的译码比较电路。 (2) 数据缓冲寄存器输入操作时,用数据缓冲寄存器存放从外部设备读出的数据,然后送往CPU;输出操作时,用数据缓冲寄存器存放从CPU送来的数据,然后送给外部设备输出。 (3) 设备状态位(标志)设备状态位是控制器中的标志触发器,如“忙”、“准备就绪”、“错误”等,用以表示设备的工作状态,以便接口对外设进行监视。一旦CPU用程序询问I/O设备时,则 状态位信息取至CPU进行分析。 程序查询方式是利用程序控制实现CPU与I/O设备之间的数据传送。程序执行过程中的有关动作(以输入为例)如下: ① CPU 向地址总线上送出地址,选中设备控制器; ② CPU 看“忙”触发器是否为“0”,若为“0”,则发出命令字,请求启动外设进行数据输入,置“忙”触发器为“1”,置“就绪”触发器为“0”,然后不断检测“就绪”触发器何时变为“1”; ③ 接口接到CPU的命令字后,立即启动外设工作,开始输入数据; ④ 外设启动后将输入数据送入数据缓冲寄存器; ⑤ 外设完成数据输入后,置“就绪”触发器为“1”,通知CPU已经“Ready”(准备就绪); ⑥ CPU从数据缓冲寄存器中读入输入数据,并将控制器状态标志复位。 采用程序直接控制模式简单、控制接口硬设备较少。一般计算机都具有这种功能,但是,明显地存在着以下缺点: (1) CPU与外部设备只能串行工作。由于CPU的速度比外部设备的速度快得多,因此,CPU的大量时间都处于空闲、等待状态,系统的效率较低。 (2) CPU在一段时间内只能和一台外部设备交换信息,无法使其他外部设备同时工作。 (3) 发现和处理预先无法估计的错
文档评论(0)