输入输出技术

来源:互联网 发布:mac下载fs2you 编辑:程序博客网 时间:2024/06/05 13:34

7.输入输出技术
 1.微型计算机中最常用的内存与接口的编址方式

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

  1)内存与接口地址独立编址方法

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

  这种编址方式的缺点就是用于接口的指令太少、功能太弱。

  2)内存与接口地址统一编址方法

  在这种编址方法里,内存地址和接口地址统一在一个公共的地址空间里,即内存单元和接 口共用地址空间。在这些地址空间里划分出一部分地址分配给接口使用,其余地址归内存单元 使用。分配给内存的地址区间只能用于内存单元,接口绝不允许使用。同样,分配给接口的地 址区间内存单元也绝不能再用。

  这种编址方法的优点是原则上用于内存的指令全都可以用于接口,这就大大地增强了对接 口的操作功能,而且在指令上也不再区分内存或接口指令。

  该编址方法的缺点就在于整个地址空间被分成两部分,其中一部分分配给接口使用,剩余 的为内存所用,这经常会导致内存地址不连续。当用于内存的指令和用于接口的指令是完全一 样的,维护程序时就需根据参数定义表仔细加以辨认。

  2.直接程序控制

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

  1)无条件传送

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

  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无须等待而提髙了效率。
1)中断处理方法
  在系统中具有多个中断源的情况下,常用的处理方法有多中断信号线法(multiple interrupt lines)、中断软件查询法(softwarepoll)、菊花链法(daisy chain)、总线仲裁法和中断向量表法。
  (1)多中断信号线法。每个中断源都有属于自己的一根中断请求信号线向CPU提出中断请求。
  (2)中断软件查询法。当CPU检测到一个中断请求信号以后,即转入到中断服务程序去 轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。
  (3)菊花链法。软件查询的缺陷在于花费时间太多。菊花链法实际上是一种硬件查询法。 所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相连。当CPU 检测到中断请求信号,则发出中断确认信号。中断确认信号依次在I/O模块间传递,直到发出 请求的模块,该模块则把它的ID送往数据线由CPU读取。
  (4)总线仲裁法。一个I/O设备在发出中断请求之前,必须先获得总线控制权,所以可由 总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备即把自己 ID发往数据线。
  (5)中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设 发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找 中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU,如图 1-12所示。中断源的优先级由INTC来控制。
2)中断优先级控制
  在具有多个中断源的计算机系统中,各中断源对服务的要求紧迫程度可能不同。在这样的 计算机系统中,就需要按中断源的轻重缓急来安排对它们的服务。
  在中断优先级控制系统中,给最紧迫的中断源分配髙的优先级,而给那些要求相对不紧迫 (例如几百微秒到几毫秒)的中断源分配低一些的优先级。在进行优先级控制时解决以下两种情况。
这里写图片描述
(1)当不同优先级的多个中断源同时提出中断请求时,CPU应优先响应优先级最髙的中断源。
(2)当CPU正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求, CPU应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束后再 回到原先被中断的优先级较低的中断服务程序继续执行。这种情况称为中断嵌套,即一个中断 服务程序中嵌套着另一个中断服务程序。

0 0