输入/输出技术--挖掘之八

来源:互联网 发布:免费彩票组合软件 编辑:程序博客网 时间:2024/04/30 10:33

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

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

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

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

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

在这种编址方法中,内存地址和接口地址统一在一个公共的地址空间里,内存单元和接口公用地址空间。在这些地址空间里划分一部分地址给接口使用,其余的地址归内存单元使用。两者分配的地址空间不可以交换使用。这种编址方法的优点是原则上用于内存的指令可以全部用于接口,大大增强了对接口的操作功能,而且指令上也不再区分内存或接口指令。缺点是整个地址空间分为两部分,其中一部分给接口使用,另一部分归内存使用,经常导致内存地址不连续。又因为用于内存的指令和用于接口的指令是一样的,维护程序的时候需要根据参数的定义表仔细辨认。



计算机输入输出处理的方式


直接程序控制

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

a.无条件传送

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

b.程序查询方式

在这种方式下,利用查询方式进行输入/输出,就是通过CPU执行程序来查询外设的状态,判断外设是否准备好接收数据或者准备好了向CPU输入的数据。根据这种状态,CPU由针对地为外设地输入/输出服务。这种方式由两大缺点:降低了CPU的工作效率;对外部地突发时间无法做出实时响应。


中断方式

利用中断方式完成数据地输入/输出过程为:当I/O系统与外设交换数据时,CPU无需等待也不必去查询I/O地状态,可以抽身处理其他任务。当I/O系统准备好以后,则发出中断信号到CPU,CPU接到中断信号之后,保存正在执行程序地现场,转入I/O中断服务程序的执行,完成与I/O系统的数据交换,然后再返回被打断的程序继续执行。与程序控制方式相比,中断方式因为CPU无须等待而提高了效率。

中断处理方法

 在系统中具有多个中断源的情况下,常用的处理方法由多中断信号线法,中断软件查询法,菊花链法,总线仲裁法和中断向量表法。

a.多中断信号线法。每个中断源都有属于自己的一个中断请求信号线向CPU提出中断请求。

b.中断软件查询法。当CPU检测到一个中断请求信号以后,即转入到中断服务程序去轮询每个中断源以确定是谁发出了中断请求信号。对各个设备的响应优先级由软件设定。

c.菊花链法。软件查询的缺陷在于花费的时间太多。菊花链法实际上是一种硬件查询法。所有的I/O模块共享一根共同的中断请求线,而中断确认信号则以链式在各模块间相联。当CPU检测到中断请求信号时,则发出中断中断确认信号。中断确认信号依次在I/O模块间传递,直到发出请求的模块,该模块则把它的ID送往数据线由CPU读取。

d.总线仲裁法。一个I/O设备在发出中断请求之前,必须先获取总线的控制权,所以可以由总线仲裁机制来裁定谁可以发出中断请求信号。当CPU发出中断响应信号后,该设备把自己的ID发往数据线。

e.中断向量表法。中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出的中断请求信号后,由中断控制器确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时中断控制器把中断请求信号提交给CPU.

中断优先级控制

在具有多个中断源的计算机系统中,各中断源对于服务的要求紧迫程度可能不同。在这样的情况下,计算机系统需要按中断源的紧迫程度来安排对它们服务的优先级。在进行优先级控制时,需要解决以下两种情况:

a.当不同优先级的多个中断源同时提出中断请求时,CPU应该优先响应优先级最高的中断源。

b.当CPU正在对某一个中断源服务时,又有比它优先级更高的中断源提出中断请求,CPU应能暂时中断正在执行的中断服务程序而转去对优先级更高的中断源服务,服务结束以后在回到原先被中断的优先级较低的中断服务程序继续执行,这种情况称为中断嵌套。


直接存储器存取方式

直接内存存取(Direct Memory Acess, DMA)是指数据在内存与I/O设备间的直接成块传送,不需要CPU的任何干涉,只需要CPU在过程开始启动与过程结束时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。

具体流程:a.外设向DMA控制器(DMAC)提出DMA传送的请求。b.DMAC向CPU提出请求,其请求信号通常加到CPU的保持请求输入端HOLD上。c.CPU在完成当前的总线周期后立即对此请求做成响应,CPU的响应包括两方面的内容:一方面,CPU将有效的保持响应信号HLDA输出加到DMAC上,告诉DMAC它的请求已经得到响应;另一方面,CPU将其输出的总线信号置为高阻,这就意味着CPU放弃了对总线的控制权。e.此时DMAC获得了对系统总线的控制权,开始实施对系统总线的控制。同时向提出请求的外设发送DMAC的响应信号,高速外设其请求已得到响应,现在准备开始进行数据的传送。f.DMAC送出地址信号和控制信号,实现数据的高速传输。g.当DMAC将规定的字节数传送完毕时,它将HOLD信号变为无效加到CPU上,撤销对CPU的请求。CPU检测到无效的HOLD就知道DMAC传送已经结束,CPU送出无效的HLDA响应信号,同时重新获得系统总线的控制权,接着DMA前的总线周期继续执行下面的总线周期。在DMA传送数据期间,CPU不能使用总线。


输入/输出处理机(IOP)

上面描述的输入/输出方式适合外设不多、速度不高的小型或微机中。在大型计算机中,采用输入/输出处理机。它时一个专用处理机,接在主计算机上,主机的输入/输出操作由它来完成。IOP的数据传送方式由3种:字节多路方式;选择传送方式;数组多路方式。



通过上面的介绍,明显的结论是:I/O是计算机的一个运行效率的瓶颈。正常来说,外设运行速度是远远慢于CPU运行速度的,所以这才会计算机组成中看到各种调节速度不一致的数据寄存器。为了解决这种速度不一致,提高CPU运行效率,各种方案都在进行优化。

0 0
原创粉丝点击