精华内容
下载资源
问答
  • 下面以C语言代码流程图来剖析,程序直接控制方式 分析一下在思维导图中提到的几个问题: 2.中断驱动方式 由于程序直接控制方式CPU利用率低,忙等,所以提出了中断驱动方式。 分析一下在思维导图中提到的几个...


    0.思维导图

    在这里插入图片描述

    1.程序直接控制方式

    key word : 轮询

    • 完成一次读/写操作的流程图(以读操作为例)
      在这里插入图片描述
      下面以C语言代码和流程图来剖析,程序直接控制方式
      在这里插入图片描述
      分析一下在思维导图中提到的几个问题:
      在这里插入图片描述

    2.中断驱动方式

    • 由于程序直接控制方式CPU利用率低,忙等,所以提出了中断驱动方式。

    在这里插入图片描述
    分析一下在思维导图中提到的几个问题:

    在这里插入图片描述

    3.DMA方式

    • 虽然中断驱动方式解决了程序直接控制方式的问题,但是每一次只能读/写一个字,导致CPU频繁切换,耗费了很多时间。于是人们又发明了DMA方式。

    在这里插入图片描述
    DMA控制器:
    在这里插入图片描述
    分析一下在思维导图中提到的几个问题:
    在这里插入图片描述

    4.通道控制方式

    • 通道控制方式是为了解决DMA方式连续存储的问题

    在这里插入图片描述
    分析一下在思维导图中提到的几个问题:
    在这里插入图片描述

    5.四种方式总结一下

    在这里插入图片描述
    参考:《王道操作系统》

    展开全文
  • DMA方式中断控制方式以及通道方式的区别1、DMA方式和中断控制方式的主要区别2、DMA方式与通道方式的主要区别 1、DMA方式和中断控制方式的主要区别 ①、中断控制方式在每个数据传送完成之后中断CPU,而DMA控制方式...

    1、DMA方式和中断控制方式的主要区别

    ①、中断控制方式在每个数据传送完成之后中断CPU,而DMA控制方式则在所要求的传送的一批数据传送结束时中断CPU

    ②、中断控制方式中的数据传送在中断处理时由CPU控制完成,而DMA控制方式则在DMA控制器下完成。不过,在DMA的控制方式中,数据的传送方向,存放数据的内存始址及传送数据的长度等信息仍然由CPU控制

    ③、中断控制方式以CPU为核心,而DMA方式以存储器为核心,因此DMA方式可与CPU并行工作。

    ④、中断控制方式传输的数据以字节为单位,而DMA方式传送批量数据,其基本单位为数据块(通常一个数据块包含若干字节)。

    2、DMA方式与通道方式的主要区别

    ①与DMA控制方式相加,通道控制方式所需的CPU干预更少,并且一个通道可以控制多台设备,进一步减轻了CPU的负担。

    对通道来说,可以使用一些指令来灵活改变通道程序,这一点DMA控制方式却无法做到。

    ③DMA方式需要CPU来控制传输数据块的大小、传输的内存位置,而通道方式中这些信息是由通道控制的。

    展开全文
  • 单片机I/O设备的控制方式主要有三种:程序循环检测、中断驱动直接内存访问。

    目录

    1、程序循环检测方式

    2、中断驱动方式

    3、直接内存访问方式


    单片机I/O设备的控制方式主要有三种:程序循环检测、中断驱动和直接内存访问。

    1、程序循环检测方式

    程序循环检测方式的基本思路是:在程序(一般是设备驱动程序)当中,通过不断地检测I/O设备的当前状态,来控制一个I/O操作的完成。具体来说,在进行I/O操作之前,要循环地去检测该设备是否已经就绪。如果是,就向控制器发出一条命令,启动这一次的I/O操作。然后,在这个操作的进行过程中,也要循环地去检测设备的当前状态,看它是否已经完成。总之,在I/O操作的整个过程中,控制I/O设备的所有工作都是由CPU来完成的。这种方式也称为是繁忙等待方式或轮询方式。它的缺点主要是:在进行一个I/O操作的时候,要一直占用着CPU,这样就会浪费CPU的时间。

    下图所示是循环检测方式的一个例子。假设I/O地址采用的是内存映像编址方式,现在需要在打印机上打印一个字符串“ABCDEFGH”。对于操作系统来说,要完成这个任务,其实很简单,只要把这八个字符一个接一个地送到打印机设备的I/O端口地址就可以了。如图(a)所示,这八个字符被保存在系统内核的一个缓冲区当中,并用指针p来指向它们。status_ reg 这个内存单元对应于打印机控制器里面的状态寄存器, data register这个内存单元对应于它的数据寄存器,现在要做的事情,就是把这八个字符一个接一个地放到数据寄存器当中。

    图(b) 所示是相应的程序。它的基本思路是:逐个去打印每一个字符。在打印一个字符之前,首先用一个while语句来检测打印机的当前状态,看它是否已经就绪,如果还没有就绪,就在这里循环等待;如果已经就绪,就把当前的字符送入到打印机的数据寄存器当中。在本例中,由于采用了内存映像的编址方式,因此,在程序员眼中,状态寄存器和数据寄存器都被看成是普通的内存单元,对它们的访问也是普通的赋值操作,不需要专门的I/O指令。但是这个赋值操作的功能与普通的赋值操作不同,它相当于是给打印机发出了一个命令,让它去打印一个字符。另外,每次打印完-一个字符后,都要重新判断设备是否就绪,因为相对于CPU来说,打印机是一个慢速设备,它在执行打印命令时,不可能像CPU那么快,而是需要一定的时间来完成。因此,当CPU把一个字符交给它之后,必须循环等待一段时间, 才能去处理下一一个字符。

    2、中断驱动方式

    循环检测的控制方式,需要占用大量的CPU时间。假设打印机的打印速度为100字符/秒,在循环检测方式下,当一个字符被写入到打印机的数据寄存器后,CPU要等待10ms才能把下一个字符写进去,而这10ms的时间,就在循环等待中被白白浪费掉了。为了解决这个问题,一种办法就是让CPU在这10ms的时间内,先去运行其他的任务,然后等打印机处理完上一个字符后,CPU再接着处理下一个字符。这种方法被称为是中断驱动的控制方式。它的基本思路是:当一个用户任务需要进行I/O操作时,会去调用相应的系统函数,由这个函数来发起I/O操作,并将当前任务阻塞起来,然后调度其他的任务去使用CPU。当所需的I/O操作完成时,相应的设备就会向CPU发出一个中断,系统在中断处理程序当中,如果发现还有数据需要处理,就再次启动I/O 操作。在中断驱动的控制方式下,数据的每一次读写还是通过CPU来完成,只不过当I/O设备在进行数据处理时,CPU不必在那里等待,而是可以去执行其他任务。

    仍以打印字符的问题为例。如下图所示,在中断驱动方式下,对于用户程序来说,它所做的事情可能是:把需要打印的字符串放到一个缓冲区buffer中,然后调用一个系统调用函数print。在print 系统调用中,首先把用户缓冲区中的字符串复制到系统内核的字符数组p当中,然后打开中断。接下来是一个循环检测语句,判断打印机的当前状态是否就绪,当打印机就绪后,就把第一个字符放到数据寄存器里面去打印。接下来,未等该字符打印完,就去调用系统的调度器,选择另一个就绪任务去运行,而当前的这个任务,就会被阻塞起来。

    当打印机完成一个字符后,将向CPU发出一个中断。在中断处理程序当中,首先判断一下,如果所有的字符都已打印完,那么就去阻塞队列中,把用户任务唤醒,使它处于就绪状态;如果还有字符需要打印,就直接把下一个字符复制到打印机的数据寄存器当中,启动打印操作,而不需要再去循环地判断打印机是否就绪。接下来是一些后继处理,先向中断控制器发出一个确认信号,然后结束中断处理程序,返回到被中断的那个任务。

    3、直接内存访问方式

    在中断驱动的控制方式下,每一次数据读写还是通过CPU来完成,而且每一次处理的数据量很少,如1个字节,所以中断出现的频率就很高。而中断处理需要额外的系统开销,所以也会浪费一些CPU时间。因此人们又提出了一种新的解决办法,也就是直接内存访问(Direct Memory Access, DMA)的控制方式。它的基本思路是:让DMA控制器来代替CPU,完成I/O设备与内存之间的数据传送,从而空出更多的CPU时间,去运行其他的任务。

    仍以打印字符的问题为例。如下图所示,在DMA控制方式下,用户程序所做的事情是完全相同的,即把字符串复制到一个缓冲区buffer 当中,然后调用系统函数print。在print函数当中,首先也是把buffer 当中的字符串复制到系统内核的缓冲区p当中,然后对DMA控制器进行编程,设置它的各个寄存器的内容,包括内存起始地址、需要打印的字符个数、数据传输的方向等。之后,print 函数就完成了任务,所以就调用系统的调度程序,

    选择另一个就绪任务去运行,而当前的这个任务就会被阻塞起来。接下来,当CPU正在执行这个新任务的同时,DMA控制器会与设备控制器进行交互,把需要打印的字符,一个接一个地送到打印机控制器当中。在所有的字符都打印完之后,就向CPU发出一个中断,表明这一次的I/O操作已经全部完成了。因此,在中断处理程序里面,已经没有什么实质性的工作,先是向中断控制器发出一个确认信号,然后唤醒刚才被阻塞的任务。

    采用DMA控制方式,最大的优点是减少了中断的次数。原本每打印一个字符,都要产生一次中断,而现在当所有的字符都打印完后,才会产生一个中断,这样就减少了中断处理的开销。

    展开全文
  • 在现代计算机系统中,对I/O设备的控制,广泛采用中断驱动(Interrupt---Driven)方 式。在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。 仅当输完一个数据时,才需CPU...

    在现代计算机系统中,对I/O设备的控制,广泛采用中断驱动(Interrupt---Driven)方

        
        式。在I/O设备输入每个数据的过程中,由于无须CPU干预,因而可使CPU与I/O设备并行工作。
    
        
        仅当输完一个数据时,才需CPU花费极短的时间去做些中断处理。可见,这样可使CPU和I/O设
    
    
        备都处于忙碌状态,从而提高了整个系统的资源利用率及吞吐量。如下图所示:

        当某进程要启动某个I/O设备工作时,便由
    CPU向相应的设备控制器发出一条I/O命令,然
    立即返回继续执行原来的任务。设备控制器
    便按照该命令的要求去控制I/O设备。
        此时,CPUI/O设备并行操作。

      例如,从终端输入一个字符的时间约为 100

    ms , 而将字符送入终端缓冲区的时间小于 0.1

    ms 。 若采用程序 I/O 方式, CPU 约有 99.9

    ms 的 时间处于忙 — 等待中。 采用中断驱动

    方式后, CPU 可利用这 99.9 ms 的时间去做其

    它事情,而仅用 0.1 ms 的时间来处理由控制器

    发来的中 断请求 。 可见,中断驱动方式可以

    成百倍地提高 CPU 的利用率。

          中断驱动方式可以成百倍地提高CPU
           的利用率。

     

     

    I/O方式
            早期的计算机系统中,由于无中断机构,处理机对I/O设备的控制,采取程序I/O
    (Programmed I/O方式)。在程序I/O方式中,由于CPU的高速性和I/O设备的低速性,致使
    
        CPU 的绝大部分时间都处于等待I/O设备完成数据I/O的循环测试中,造成对CPU的极大浪费。
    
        在该方式中,CPU之所以要不断地测试I/O设备的状态,就是因为在CPU中无中断机构,使 I/O
    
        设备无法向CPU报告它已完成了一个字符的输入操作。如下图所示:

        程序I/O方式又称忙--等待方式,即在处理
    机向设备控制器发出一条I/O指令启动输入设备
    、输出数据时,要同时把状态寄存器中的忙/闲
    标志busy置为1,然后便不断地循环测试busy。
    busy=1时,表示输入机尚未输完一个字
    (符),处理机应继续对busy进行测试;直至
          busy=0,表明输入机已将输入数据送入
    控制器的数据寄存器中,于是处理机将数据寄存
    器中的数据取出,送入内存指定单元中,接着,
    再启动去读下一个数据,并置busy=1
          此方式造成对CPU的极大浪费。
    展开全文
  • 程序中断控制方式(3种)

    千次阅读 2018-11-23 21:38:53
    1.return return值:将方法的运算结果返回给调用者并退出当前...2.breakcontinue 在循环条件满足的情况下提前终止循环语句的执行 ps:若是循环嵌套的话是跳出最近的那次循环   3.System.exit(): 系统退出...
  • 分类I/O控制器思维导图I/O控制器功能I/O控制器的组成内存映像I/O vs 寄存器独立编址 基础知识 思维导图 什么是I/O设备? 分类 ![ I/O控制器 思维导图 I/O控制器功能 I/O控制器的组成 内存映像I/O vs 寄存器...
  • 程序中断方式 打印机中断的产生 一次中断处理过程大致分为:中断请求,中断判优,中断响应,中断服务和中断返回等五个阶段。 程序中断方式的接口电路 1.配置中断请求触发器和中断屏蔽触发器 INTR为“1”时,表示该...
  • 程序查询方式 注:在程序查询方式中,当I/O设备较多时,CPU需按各个I/O设备在系统中的...程序中断方式                                       ...
  • 为什么DMA方式的优先级高于程序中断方式 DMA传送方式的优先级高于程序中断,两者的区别主要表现在对CPU的干扰程度不同。 程序中断请求不但使CPU停下来,而且要CPU执行中断服务程序中断请求服务,这个请求包括了对...
  • 7.4.2 程序中断方式

    千次阅读 2016-09-22 17:21:05
    程序中断是指在计算机执行现行程序的过场中,出现某些急需处理的异常情况或特殊请求,CPU暂停中断现行程序,而专区对这些异常情况或特殊情况进行处理,在处理完毕后CPU又自动返回到现行程序的断点处,继续执行原程序...
  • 8259中断控制

    万次阅读 多人点赞 2018-06-17 14:48:59
    8259中断控制实验1 实验目的1. 掌握8259中断控制器的工作原理。2. 学习8259的应用编程方法。3. 掌握8259级联方式的使用方法。2 实验设备PC机一台,TD-PITE实验装置一套。3 实验内容及步骤1. 中断控制器8259简介在...
  • I/O方式 —— 程序中断方式

    千次阅读 多人点赞 2019-09-01 12:06:01
    一、工作流程 中断请求:中断源向CPU发送中断请求信号。...程序中断方式属于I/O 中断,因此属于外中断。 硬件中断:通过外部的硬件产生的中断。硬件中断属于外中断。 软件中断:通过某条指令产生的中断,...
  • I/O设备CPU之间数据传送控制方式

    千次阅读 2020-03-10 11:21:01
    常用的I/O设备CPU之间数据传送控制方式有4种,分别为程序直接控制方式中断控制方式、DMA方式和通道方式程序直接控制方式和中断控制方式都只适用于简单的、外设很少的计算机系统,因为程序直接控制方式耗费...
  • 中断控制器及中断控制

    千次阅读 2014-08-05 23:06:37
    所有以ARM为内核的处理器的异常共分为7中,每一种异常对应一个异常向量,每个异常向量占4个字节,指出中断服务程序的入口地址。异常向量表从0x00000000~0x0000001F。 其中普通中断和快速中断的向量地址为0x...
  • 定时器中断程序控制led闪烁

    千次阅读 2019-04-03 23:08:00
    1 #include <reg52.h> 2 typedef unsigned char u8; 3 typedef unsigned int u16; ... 5 //中断配置 6 void main(void) 7 { 8 TMOD =0x01; 9 TH0 = (65535-50000) /256; 10...
  • 计算机组成原理——程序中断方式

    千次阅读 2019-05-31 19:24:00
    中断的基本概念: 程序中断是指在计算机执行实现程序的过程中,出现某些急需处理的异常情况或特殊...在CPU一侧配置了中断机构,在设备一侧配置了中断控制接口,在软件上设计了相应的中断服务程序。 一个完整的...
  • 第五章 中断和中断服务程序

    千次阅读 2012-12-26 14:07:48
    第五章 中断中断服务程序 一,处理器与外围设备进行通信有两种方式: ...(中断控制器发送中断给处理器的时候,处理器根据中断号查找中断向量表,找到中断服务程序的入口地址,才能去执行中断服
  • 中断响应流水灯控制程序

    千次阅读 2017-12-11 11:12:34
    #include void delay(unsigned int i); int main(void) using 0 { int i=1; EA=1; EX0=1; IT0=1; P0=~0; while(1) { for(;i;i*=2) { P0&=~i; delay(500); P0|=i;... while
  • 当CPU响应中断并进入中断子程序后,中断控制器仍负责对外部中断请求的管理,当某个外部中断请求的优先级高于当前正在处理的中断优先级时,中断控制器会让此中断通过到达CPU的INTR端,从而实现中断的嵌套,反之,对...
  • NVIC系统控制块特性 1. 灵活的中断管理:使能/禁止中断,优先级配置 二. 中断使能清除使能 三. 中断挂起清除挂起 四. 中断优先级 五. 异常屏蔽寄存器 六. 中断输入挂起行为 七. 中断等待 八. 系统异常的...
  • 用外部中断EXTI的方式控制LED灯EXTI简介EXTI 功能框图中断线路流程(红色虚线)编号 1 是输入线编号 2 是一个边沿检测电路编号 3 电路实际就是一个或门电路编号 4 电路是一个与门电路编号 5 是将 EXTI_PR 寄存器内容...
  • 中断和中断处理程序

    千次阅读 2009-06-07 12:32:00
    1. 中断 Linux内核要对连接到计算机上的所有硬件设备进行管理,首先要能它们互相通信。从所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上。所以,需要一种机制,如果轮询(polling)是一种解决办法...
  • 是一个非常重要的寄存器,利用这个寄存器可以控制芯片读取接收到的信息。 首先要介绍这个寄存器各个位的含义: Name(Address) Bits Variable Name Mode Reset LoRa Description RegIrqFlag...
  • 可编程中断控制器8259A

    万次阅读 2015-12-06 13:11:38
     它将中断源优先级判优、中断源识别和中断屏蔽电路集于一体,不需要附加任何电路就可以对外部中断进行管理,单片可以管理8级外部中断,在多片级联方式下,可以管理多达64级的外部中断。8259A内部结构及其引脚功能可...
  • 操作系统中的几种I/O控制方式

    万次阅读 多人点赞 2018-09-28 16:53:42
    按照I/O控制器功能的强弱以及 CPU 之间联系方式的不同,可以把 I/O 设备的控制方式和通道控制方式分为四类:直接程序控制方式中断驱动控制方式、直接存储器访问(DMA)控制方式和通道控制方式。I/O控制方式发展...
  • mini6410中断控制器-VIC中断控制

    千次阅读 多人点赞 2011-07-22 00:22:49
    ++++++++++++++++++++++++++++++++++++++++++ 本文系本站原创,欢迎转载! 转载请注明出处: ... ++++++++++++++++++++++++++++++++++++++++++ ...提示:如果读者对ARM中断机制不是很理解,建议先阅读本人其...
  • 8259a中断控制

    千次阅读 2013-01-01 21:44:33
    可编程中断控制器8259A是Intel公司专为80x86 CPU控制外部中断而设计开发的芯片。其内部结构及引脚图如下: 中断申请的过程可大概描述为:中断源发生-----》(此中断未被屏蔽)中断优先级判定(高于正在服务的中断...
  • I/O的控制方式——查询,中断,dma

    万次阅读 多人点赞 2016-09-22 02:18:31
    发展,I/O并行,两种方式其一是中断方式,其二是dma方式,使得外部设备能直接与主存储器信息交换,减轻了cpu的工作量。 技术继续发展,出现通道结构,实质上为高性能的dma控制器(微处理器,dma方式的进化),目的...
  • qnx之中断控制

    千次阅读 2016-07-17 09:14:15
    qnx之中断控制 学习目的: 1.qnx微内核怎样操作硬件中断? 2.我们怎样用代码操作中断? 3.不同的中断操作策略学习概要 1.中断的概念 2.中断服务子程序中的进程间通信 3.程序架构1.中断的概念 可抢占中断调度...
  • T3CTL(0XCB)的作用是定时器 3 的控制和状态 Bit[7:5] : 定时器时钟分频倍数选择:  000:不分频 001:2 分频 010:4 分频  011:8分频 100:16 分频 101:32分频  110:64 分频 111:128 分频  ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 332,824
精华内容 133,129
关键字:

中断控制方式和程序控制方式