计算机体系结构之输入输出技术

1、微型计算机中最常用的内存与接口的编址方法

  计算机系统中存在多种内存与接口地址的编址方法,常见的是下面两种:内存与接口地址独立编址和内存与接口地址统一编址。

1.1、内存与接口地址独立编址方法

  在内存与接口地址独立编址方法下,内存地址和接口地址是完全独立的两个地址空间,它们是完全独立的并且是相互隔离的。访问数据时所使用的指令也完全不同,用于接口的指令只能用于接口的读写,其余的指令全都是用于内存的。因此,在编程序或读程序时很容易使用和辨认。
  这种编址方法的缺点是用于接口的的指令太少,功能太弱。

1.2、内存与接口地址统一编址方法

  在这种编址方法中,内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接口公用地址空间。在这些地址空间里划分出一部分地址分配给接口使用,其余地址归内存单元使用。分配给内存的地址区间只能用于内存单元,接口决不允许使用。同样,分配给接口的地址区间内存单元也绝不能使用。
  这种编址方法的优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接口的操作功能,而且在指令上也不再区分内存或接口指令。
  该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余的为内存所用,这经常会导致内存地址不连续。由于用于内存的指令和用于接口的指令时完全一样的,维护程序时就需要根据参数定义表仔细加以辨认。

2、直接程序控制

  直接程序控制是指外设数据的输入/输出的过程是在CPU执行程序的控制下完成的。这种方式分为无条件传送和程序查询方式两种情况。

2.1、无条件传送

  在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件的随时向CPU提供需要输入的数据。

2.2、程序查询方式

  在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。根据这种状态,CPU有针对性地为外设的输入/输出服务。
  通常,一个计算机系统中可以存在着多种不同的外设,如果这些外设是用查询方式工作,则CPU应对这些外设逐一进行查询,发现哪个外设准备就绪就对该外设服务。这种工作方式有如下两大缺点:
  (1)降低了CPU的效率。在这种工作方式下,CPU不做别的事情,只是不停地对外设的状态进行查询。在实际的工作应用中,对于那些慢速的外设,在不影响外设工作的情况下,CPU应可以执行其他任务。
  (2)对外部的突发事情无法做出实时响应。

3、中断方式

  由程序控制I/O的方法,其主要缺点在于CPU必须等待I/O系统完成数据的传输任务,在此期间CPU需定期地查询I/O系统的状态,以确实传输是否完成。因此,整个系统的性能严重下降。
  利用中断方式完成数据的输入/输出过程为:当I/O系统与外设交换数据时,CPU无须等待也不必去查询I/O状态,而可以抽身出来处理其他任务。当I/O系统准备好以后,则发出中断请求信号通知CPU,CPU接到中断请求信号后,保存正在执行程序的现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无须等待而提高了效率。

3.1、中断处理方法

  在系统中具有多个中断源的情况下,常用的处理方法有多中断信号线法(Multiple Interrupt Lines)、中断软件查询法(Software Poll)、菊花链法(Daisy Chain)、总线仲裁法和中断向量表法。
  (1)多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求。
  (2)中断软件查询法。当CPU检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。
  (3)菊花链法。软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。所有的I/O模块共享一个共同的中断请求线,而中断确认信号则以链式在各模块间相连。当CPU检测到中断请求信号时,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发出请求的模块,该模块则把它的ID送往数据线由CPU读取。
  (4)总线仲裁法。一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备即把自己的ID发往数据线。
  (5)中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制亲(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU,如下图所示。中断源的优先级由INTC来控制。
在这里插入图片描述

3.2、中断优先级控制

  在具有多个中断源的计算机系统中,各中断源对服务的要求紧迫程度可能不同。在这样的计算机系统中,就需要按中断源的轻重缓急来安排对它们的服务。
  在中断优先级控制系统中,给最紧迫的中断源分配高的优先级,而给那些要求相对不紧迫(例如几百微妙到几毫秒)的中断源分配低一些的优先级。在进行优先级控制是解决以下两种情况。
  (1)当不同优先级的多个中断源同时提出中断请求时,CPU应优先响应优先级最高的中断源。
  (2)当CPU正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再回到原先被中断的优先级较低的中断服务程序继续执行,这种情况称为中断嵌套,即一个中断服务程序中嵌套着另一个中断服务程序。

4、直接存储器存取方式

  在计算机与外设交换数据的过程中,无论是无条件传送、利用查询方式传送还是利用中断方式传送,都需要由CPU通过执行程序来实现,这就限制了数据的传送速度。
  直接内存存取(Direct Memory Access,DMA)是指数据在内存与I/O设备间的直接成块传送,即在内存与I/O设备间传送一个数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程开始启动(即向设备发出“传送一块数据”的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时的处理,实际操作有DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。
  DMA传送的一般过程如下图所示。
在这里插入图片描述

  (1)外设向DMA控制器(DMAC)提出DMA传送的请求。
  (2)DMA控制器向CPU提出请求,其请求信号通常加到CPU的保持请求输入端HOLD上。
  (3)CPU在完成当前的总线周期后立即对此请求作出响应,CPU的响应包括两个方面的内容:一方面,CPU将有效的保持响应信号HLDA输出加到DMAC上,告诉DMAC它的请求已得到响应;另一方面,CPU将其输出的总线信号置为高阻,这就意味着CPU放弃了对总线的控制权。
  (4)此时,DMAC获得了对系统总线的控制权,开始实施对系统总线的控制。同时向提出请求的外设送出DMAC的响应信号,告诉外设其请求已得到响应,现在准备开始进行数据的传送。
  (5)DMAC送出地址信号和控制信号,实现数据的高速传送。
  (6)当DMAC将规定的字节数传送完时,它就将HOLD信号变为无效并加到CPU上,撤销对CPU的请求。CPU检测到无效的HOLD就知道DMAC已传送结束,CPU就送出无效的HLDA响应信号,同时重新获得系统总线的控制权,接着DMA前的总线周期继续执行下面的总线周期。
  在此再强调说明,在DMA传送过程中无须CPU的干预,整个系统总线完全交给了DMAC,由它控制系统总线完成数据传送。在DMA传送数据时要占用系统总线,根据占用总线方法的不同,DMA可以分为中央处理器停止法、总线周期分时法和总线周期挪用法等。无论采用哪种方法,在DMA传送数据期间,CPU不能使用总线。

5、输入/输出处理机(IOP)

  DMA方式的出现减轻了CPU对I/O操作的控制,使得CPU的效率显著提高,而通道的出现则进一步提高了CPU的效率。
  通道是一个具有特殊功能的处理器,又称为输入输出处理器(Input/Output Processor,IOP),它分担了CPU的一部分功能,可以实现对外围设备的统一管理,完成外围设备与主存之间的数据传送。
  通道方式大大提高了CPU的工作效率,然而这种效率的提高是以增加更多的硬件为代价的。
  外围处理机(Peripheral Processor Unit,PPU)方式是通道方式的进一步发展。PPU是专用处理机,它根据主机的I/O命令,完成对外设数据的输入输出。在一些系统中,设置了多台PPU,分别承担I/O控制、通信、维护诊断等任务。从某种意义上说,这种系统已变成分布式的多级系统。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值