程序查询

来源:百度文库 编辑:神马文学网 时间:2024/05/03 09:17:16
A.程序查询方式(Programmed I/O)是在程序控制下cpu与外设之间进行交换数据.其工作过程是首先程序向外设发出工作信号,然后读取外设状态,检查是否可进行数据传送.若外设准备好,则进行数据传送;否则反复读外设状态并测试,直到外设准备就绪进行数据传送.使用程序查询方式,在外设没有准备就绪或外设正在进行其他工作时,cpu只能等待而不能进行其他工作.程序查询方式主要用软件方法实现.cpu的效率低.

B.中断输入/输出方式(Interrupt-driven I/O)是主机在执行程序的过程中,遇到突发事件而中断正在执行的程序.转去对突发事件的进行处理.处理完成之后返回原中断程序继续执行.

         计算机使用中断方式有软件和硬件两部分.软件部分是指中断处理程序,而中断处理程序是根据中断源的特点而分别编制的一段程序.例如除法错中断处理程序的功能就是针对除数为0的问题进行相应的处理,以保证计算机系统能够正常工作.硬件部分是指中断控制电路,其作用是负责对中断请求,中断响应等进行相应的处理,以保证中断过程的正常进行。

        中断过程指从外设发出中断请求到cpu对该中断请求处理完毕并返回原程序继续执行的过程.中断过程如下:

1.中断请求
        中断源(如外设)向cpu发出中断请求,cpu在每条指令执行结束时检查计算机系统中是否有中断请求.若有中断请求,则不再执行下条指令而转入中断响应;若没有中断请求,则继续执行下条指令;

2.中断响应
        中断响应过程中把被中断的程序的断点地址(指令地址)保存起来,把中断处理程序地址送入程序计数器,开始执行中断处理程序;

3.中断处理
         根据不同的中断原因,中断处理程序执行相应的处理.中断处理程序运行结束后转入中断返回.在执行中断处理程序前应把中断断点处的工作寄存器的内容保存起来.一般保存方法是把工作寄存器的内容压入堆栈,中断处理结束时要把断点从堆栈中弹出送回各中断处理器。

4.中断返回
        中断返回就是恢复断点.把在中断响应时保存的断点地址重新送回程序计数器,继续执行被中断的程序.

        计算机中有多个中断源,可能在同一时刻有多个中断源向cpu发出中断请求,在这种情况下cpu不可能同时响应多个中断,而是按照中断源的中断优先级顺序进行中断响应,即先响应优先级高的中断源,再响应优先级低的中断源.中断源优先级按系统的情况而定.



C.直接存储器访问方式.

        在使用程序查询方式或中断方式时,数据从外设传输到内存的路径是先把数据从外设读到cpu,再从cpu把数据送到内存.直接存储器访问方式(Direct Memory Access,DMA)是指告诉外设(一般指磁盘存储器)与内存之间直接进行数据交换,不通过cpu并且cpu不参与数据交换控制.DMA方式下高速外设和内存之间进行数据传输需要使用总线,所以DMA方式下要解决的问题主要是总线使用权的转移.总线使用权一般情况下由cpu掌握,在DMA期间总线使用权交给DMA控制器。

        DMA方式由硬件实现.计算机硬件中设有DMA控制器,DMA控制器负责DMA请求、DMA处理等工作的控制。总线使用权的转移由总线控制器负责。

        DMA工作过程是指从DMA请求产生到总线使用权交还给Cpu的整个过程。DMA工作过程如下:外设发出DMA请求;cpu在总线周期结束时检查有无DMA请求,若有DMA请求,则响应DMA请求,把总线让给DMA控制器;DMA控制器接管总线的使用权,在DMA控制器的控制下通过总线实现外设与内存之间的数据交换。这时交换数据的内存地址及数量由DMA控制器给出;数据交换完成后DMA控制器把总线的使用权交还给cpu。