操作系统--输入输出--控制方式

来源:互联网 发布:鼓浪屿酒店推荐 知乎 编辑:程序博客网 时间:2024/06/05 04:43
输入输出控制方式

一、程序控制方式
1、程序查询
 要求CPU不断使用指令检测方法来获取外设工作状态,造成CPU的运行效率极低。



2、程序中断

 1、某一外设的数据准备就绪后,它“主动”向CPU发出中断请求信号,请求CPU暂时中断目前正在执行的程序转而进行数据交换;
 2、当CPU响应这个中断时,便暂停运行主程序,自动转去执行该设备的中断服务程序;
 3、当中断服务程序执行完毕(数据交换结束)后,CPU又回到原来的主程序继续执行。
 4、而当低速的外围设备准备自己的数据时,CPU则照常执行自己的主程序。
 所以:从这个意义上说,CPU和外设的一些操作是异步并行进行的,因而与串行进行的程序查询方式相比,计算机系统的效率的确是大大提高了。

 注意:
 1、CPU只有在当前一条指令执行完毕后,即转入公操作时,才会受理外围设备的中断请求。
 2、保存现场与恢复现场, 从堆栈中恢复PC内容和CPU状态,以便从断点处继续执行主程序。
 3、中断过程类似于子程序调用


多级中断
 



二、硬件控制方式
1、DMA方式
    DMA方式是一种由硬件执行I/O交换的工作方式。
    DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在主存和I/O设备之间进行。
    优点:
         速度快, CPU不参加传送操作,省去了CPU取指令、取数、送数等操作,也没有保存现场、恢复现场之类的工作。

    缺点:
         批量数据传送前的准备工作,以及传送结束后的处理工作,仍由CPU通过执行管理程序来承担,DMA控制器只负责具体的数据传送工作。

        CPU仍然摆脱不了管理和控制外设的沉重负担,难以充分发挥高速运算的能力。



工作过程:
     1、当要求通过DMA方式传输数据时,DMA控制器向CPU发出请求,CPU释放总线控制权,交由DMA控制器管理;
     2、DMA控制器向外设返回一个应答信号,外设与主存开始进行数据交换;
     3、当数据传输完毕后,DMA控制器把总线控制权交还给CPU。在这种方式下,DMA控制器与CPU分时使用总线


一次DMA数据块传送过程可分为三个阶段:传送前预处理、正式传送、传送后处理

1)预处理阶段
    A、CPU执行几条输入输出指令,测试设备状态,
    B向DMA控制器的设备地址寄存器写入设备号并启动设备,
    C、向主存地址计数器中入起始地址,
    D、向字计数器中入交换数据字个数。
    在这些工作完成后,CPU继续执行原来的主程序。

当外设准备好发送数据(输入)或接收数据(输出)时,它发出DMA请求,由DMA控制器向CPU发出总线使用权请求HOLD。

2)正式传送阶段
    A、当外围设备发出DMA请求时,CPU在本机器周期执行结束后响应该请求,
    B、并使CPU的总线驱动器处于第三态(高阻状态)。
    C、CPU与系统总线相脱离,而DMA控制器则接管数据总线与地址总线的控制,并向主存提供地址,
    D、于是在主存与外围设备之间进行数据交换。每交换一个字,地址计数器和字计数器加“1”,
    E、当字计数器溢出时,DMA操作结束,DMA控制器向CPU发出中断报告。

DMA数据传送是以数据块为基本单位进行的,因此,每次DMA控制器占用总线后,无论是数据输入操作,还是输出操作,都是通过循环来实现的。当进行输入操作时,外围设备的数据(一次一个字或一个字节)传向主存;当进行输出操作时,主存的数据传向外围设备。

3)后处理阶段
    A、一旦DMA的中断请求得到响应,CPU停止主程序的执行,转去执行中断服务程序,完成DMA结束处理工作,
    这些工作包括:校验送入主存的数据是否正确,决定继续DMA传送还是结束,测试传送过程中是否发生错误等等。

基本DMA控制器与系统的连接方式有两种,一种是公用的DMA请求方式,另一种是独立的DMA请求方式。





2、通道方式
    通道是一个特殊功能的处理器,代替CPU管理控制外设的独立部件。有自己的指令和程序,专门负责数据输入输出的传输控制,而CPU在将“传输控制”功能下放给通道后,只负责“数据处理”功能。通道与CPU分时使用主存,实现了CPU内部运算与I/O设备的并行工作。
    基本功能是执行通道指令,组织外围设备和主存进行数据传输,按I/O指令要求启动外围设备,向CPU报告中断等。

工作过程:
    11、在进行一次通道操作之前,CPU要完成准备通道程序、安排数据缓冲区、给通道和外设发起命令等工作。
    12、在通道接到启动命令后,便到指定点取通道地址,指定点是系统设计好的,由通道硬件实现。
    13、通道根据指定点提供的主存地址,从主存中取出CPU为它准备的通道程序。 
    21、在执行第一条通道程序之前,通道首先要选择外设,启动外设的设备号,看其是否有响应,
    22、总线上的外设都有自己的地址译码器,用于判断总线上的呼叫地址是否是本设备地址;
    23、选择设备后,通道向外设接口发出命令,外设接口接到命令后返回状态码,
    24、通道便以条件码形式回答CPU,表示这次启动成功;
    于是CPU便可以转去执行其他程序,而通道程序则由通道独立完成;当通道与外设之间的信息交换完成后,通道向CPU发出中断信号,CPU根据通道状态字分析这次通道操作的执行情况。



3、PPU外围处理机方式

0 0