• CPU与外设交换数据的方式


    目录

    程序控制传递方式:

    特点:

    1:无条件传送方式(同步传送方式)

    特点

    方法:

    优点:

    缺点:

    2:查询传送方式(异步传送方式)

    适用场景:

    对外设和接口的要求:

    完成一次传送过程的步骤如下(8255编程会考):

    3:中断传送方式(被动)

    特点:

    工作过程:

    以上三种I/O方式的共性(无条件,查询,中断方式)

    DMA(直接存储器存取) 传递方式(了解)


    程序控制传递方式:

    无条件传送,查询式传送,中断方式传送  

    特点:

    1:以CUP为中心,控制来自CPU,通过预先编写好的I/O程序实现数据的传送,也就是这三种方式,数据都要过CPU

    2:速度较低,传送路径经过CPU内部寄存器同时数据I/O响应也比较慢

    前两种方式8255考的几率非常大

    1:无条件传送方式(同步传送方式)

    特点

    适用于总是处于准备好的状态的外设,外设的工作时间以知,必须在CPU限定的指令时间内准备就绪,并完成数据的接收和发送。(没有状态口)

    方法:

    把I/O指令插入到程序中,当程序执行到指令时,外设已做好准备,于是在此指令时间内完成数据传送任务。

    优点:

    软件及接口硬件简单

    缺点:

    CPU效率低(因为在程序中需要频繁的插入I/O指令),只适用于简单外设(比如灯,开关),适应范围较窄

    2:查询传送方式(异步传送方式)

    当CPU同外设不同步且不知道外设的工作效率时,可以采用此方式传送。传送前,CPU必须先对外设进行状态监测。查询外设是否准备好

    适用场景:

    外设并不总是准备好

    对传送速率和效率要求不高(查询要一直等外设,单线程干不了别的事)

    对外设和接口的要求:

    外设应提供设备状态信息

    接口应具备状态端口

    完成一次传送过程的步骤如下(8255编程会考):

    1通过执行一条输入指令,读取所选外设的当前状态

    2:根据该设备的状态决定程序去向

    外设‘忙’,‘为准备就绪’    ------>重复检测外设状态

    外设‘空’‘准备就绪’  ---------->发出I/O指令,进行一次数据传送

    CPU主动查询的过程

    优点:软件比较简单

    缺点:CPU效率低,数据传送和实时性差,速度较慢

    3:中断传送方式(被动)

    无条件传送和查询传送方式的缺点是:CPU和外设只能串行工作

    为了提高系统的工作效率,充分发挥CPU的高速运算能力,引入“中断”系统,利用中断来实现CPU与外设之间的数据传送,这就是中断传送方式

    特点:

    外设在需要时(准备好)向CPU提出请求,CPU在去为他服务。服务结束外设不需要时,CPU可以执行自己的程序

    中断使CPU和外设以及外设之间能并行工作

    可以理解:你明天6点有事情,你定了个闹钟,闹钟6点会主动叫你,你是被叫的。在这个时间段,你可以干别的工作(睡觉),闹钟也在干工作。这时候就是并行

    工作过程:

    在中断传送方式中,通常在程序中安排好在某一时刻启动某一个外设,然后CPU继续执行其主程序,当外设完成数据传送的准备后,向CPU发出中断请求信号,在CPU可以相应中断的条件下,主程序被中断,转去执行“中断服务程序(为中断写的程序)” 在中断服务程序中,完成一次CPU与外设之间的数据传送,传送完成后仍然返回被中断的主程序,从断点处继续执行。

    优点:CPU效率高,实时性好,速度快

    缺点:程序编制较为复杂

    以上三种I/O方式的共性(无条件,查询,中断方式)

    均需要CPU作为中介

    软件:外设与内存之间的数据传送通过CPU执行程序完成的

    硬件:I/O接口和存储器和读写和控制信号,地址信号都是由CPU发出的

    缺点:程序的执行速度限定了传送的最大速度

    DMA(直接存储器存取) 传递方式(了解)

    DMAC ------>CPU    发出HOLD(HOLD Request) 总线请求信号 

    CPU--------> DMAC   总线请求响应信号(Hold Acknowledge)  CPU让权

    外设和内存之间直接传送数据的方式,在DMA传送方式中,对这一数据传送过程进程控制的硬件称为DMA控制器(DMAC)

    特点:

    外设直接与存储器进行数据交换,不需要CPU干涉,也不需要软件接入

    总线由DMAC进行控制CPU要放弃总线控制权,内存和外设地址和读写控制信号均由DMAC提供

    基本操作方法

    1周期挪用(Cycle  Stealing)

    2周期扩散

    3CPU停机(最常用,最简单的传送方式)

  • 相关阅读:
    StarRocks从入门到精通系列五:导入数据
    如何在PDF文件中提取图片?PDF图片提取教程
    云原生主题学习月|共同学习全球领先的亚马逊云科技云原生课程,组团共学拿奖励~
    《持续交付:发布可靠软件的系统方法》- 读书笔记(三)
    板凳-------unix 网络编程 卷1-1简介
    Spark大数据分析与实战笔记(第一章 Scala语言基础-4)
    华为OD机试真题【篮球比赛】
    【JavaScript】快速学习JS
    大文件分块上传实现
    ABP微服务学习系列-修复System.Text.Json不支持序列化Exception
  • 原文地址:https://blog.csdn.net/m0_64365315/article/details/126220486