【建议收藏】计算机组成原理---DMA、中断控制、I/O之间的联系与区别

【建议收藏】 计算机组成原理—DMA、中断控制、I/O之间的联系与区别

本篇文章主要是记录我对于计算机组成原理中所遇到的一些疑问和疑惑的记录-----主要用于考研的记录

本章一共有几个知识点比较懵:

​ 1.为什么要引入这些东西?

​ 1.DMA到底是什么东西–书上大概能看懂,但是还是比较模糊

​ 2.既然I/O与主存有这么多种方式,那么DMA -----中断方式–通道方式各自有什么区别之处呢?

I/O设备与主机交换信息的几种控制方式

  1. 程序查询方式
  2. DMA方式
  3. I/O通道方式
  4. 中断查询方式

为什么要引入DMA,中断,I.O通道

原因:

早期计算机的I/O种类比较少,通常与主存交换信息都是通过CPU,而现代计算机的I/O种类较多,如果使用这种方式会使CPU的效率大大降低,如果想要提高资源利用率,那么我们就必须引入一些机制,来让整个机器工作效率变高。而不同的机制对于cpu资源利用率的效率也不同,而且适用的机型也不太一样,比如:通道结构的适合大型机,接口,DMA,适合小型和微小型机。

通道、DMA、中断三种基本I/O方式均为外围设备和内存之间的输入/输出控制方式

程序查询方式

程序查询方式:查询查询,很明显就是通过一种机制取查询i/o设备是否需要进行与主机进行交换信息,那么这时候就需要我们的<font color="#ddd000>CPU通过程序不断的去进行查询,看I/O是否做好准备,从而控制I/O与主机交换信息。

了解了基本的机制以后,那么我们就需要探讨他是如何具体工作的呢
其实就分为单 I/O 和多个 I/O 的查询流程,多 I/O 的就是多个单 I/O 的组合、在结合优先级

程序查询方式主要分三步来完成:
1.查询状态标记
2.准备就绪?
3.交换数据

在这里插入图片描述

上述的三步是查询的流程,而下面是讲的程序的流程

  • 1.首先,这种方式在传输数据的时候会占用 CPU 寄存器,所以需要保存其寄存器的值
  • 2.然后由于传输往往是一批数据,所以需要设置 I/O 与主机交换的计数值
  • 3.设置预传输数据在主存缓冲区的首地址
  • 4.启动 I/O
  • 5.进行传输数据,由于当前主存有值了,所以主存地址也要进行修改,同时计数器的值每传一个值就减 1,直至 0,表明传输完成

**⚠️注意:**CPU 一般不采用高程查询方式与磁盘交换信息

DMA的概念

**DMA(直接寄存器存储)😗*DMA是存储器直接访问,这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。DMA直接通过一个通路把数据传送到主存储器,无需cpu的参与.

主要特点:

  • 直接通过一条数据通路直接与主存进行交换信息
  • 无需CPU的直接参与,大大提高了cpu资源利用率
  • I/O与CPU并行工作
  • 适合于高速 I/O 或辅存与主存之间交换信息

工作机制:DMA由专门的硬件(DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。
相关名词:
周期挪用:当 CPU 与 i/O 同时访问主存,CPU 必须把总线占有权让给 DMA 接口使用,即 DMA 采用周期挪用占用一个
存储周期

注意事项:

  • DMA传送虽然脱离CPU的控制,但并不是说DMA传送不需要进行控制和管理。通常是采用DMA控制器来取代CPU,负责DMA传送的全过程控制。
    -DMA 中的程序中断部件的作用是向 CPU 提出传输结束
  • DMA是必须利用中断的,否则CPU无法得到数据已经传输结束,当数据传输开始结束的时候,需要给CPU一个中断信号,CPU进行处理.这个就大大的节约了CPU的 资源。

DMA接口的功能和组成

  1. 向CPU申请DMA传送
  2. 在CPU允许DMA工作时,处理总线控制权的转交
  3. 在DMA期间管理系统总线,控制数据传送
  4. 确定传送数据的起始地址和数据长队,修正数据传输过程中的数据地址和数据长度
  5. 在数据块传送结束后,给出DMA操作完成信号

DMA接口的类型

  1. 选择型 DMA 接口:物理上连接多个设备,逻辑上只允许连接一个设备。适用于传输效率很高的设备
  2. 多路型 DMA 接口:物理上连接多个设备,逻辑上也允许连接多个设备同时工作,各个设备采用字节交叉方式通过 DMA 接口传输数据,适合于同时为多个 数据传输效率不高的设备服务

DMA 工作流程

  • 1.预处理:
  1. cpu 给 dma 指明传送方向是输入还是输出
  2. 给 DMA 地址寄存送入设备号,启动设备
  3. 向 DMA 主存地址寄存器送入交换数据的主存起始地址
  4. 对计数器赋予交换数据的个数

简单化理解就是,需要知道输入还是输出数据,需要知道给哪一个设备写入 or 写出,写入写出的数据在主存的说明地方,需要写出写出多少数据

  • 2.数据传送:
    为单位

  • 3.后处理
    中断服务程序,做 DMA 结束处理(包括,检验送入主存的数是否正确,决定是否使用 DMA 传送其他数据块,,测试传送过程是否正确

在这里插入图片描述

DMA 接口与系统连接方式

  • 具有公共请求线 的 DMA 请求方式
  • 独立的 DMA 请求 方式

中断

中断:中断方式是程序切换,每次操作需要保护和恢复现场中断次数多,CPU需要花较多的时间处理中断,中断次数多也会导致数据丢失

引入中断的原因:
1.适应 I/O 设备工作速度低问题
2.将有用信息送至不受电源控制的存储系统中,带电源恢复后接着使用

**中断方式的接口电路:

  • 中断请求触发器
  • 段屏蔽触发器
  • 排队器
  • 中断向量形成部件:由于 我们知道 cpu 响应了 I/O 中断以后,需要跳到中断服务程序里,那么此时,我们就需要知道服务程序的入口地址,而入口地址又是通过中断向量找到的,而中断向量又是由中断向量形成部件形成的

中断处理程序的流程:

  • 1.中断请求
  • 2.中断判优:可能会有多个部件同时请求中断,此时需要判优
  • 3.中断响应:判优完成之后,就需要对 CPU 进行中断了
  • 4.中断服务:此次响应完以后,就需要跳到中断服务程序里,求执行某些操作
  • 5.中断返回:服务程序执行完成之后,就要返回原来的地方,继续执行原本的程序

中断服务程序流程:

  • 1.保护现场。 (保护程序断点,保护通用寄存器和状态寄存器)
  • 2.中断服务程序:不同的 I/O 设备具有不同的中断服务程序
  • 3.恢复现场:将原程序中断时现场恢复到原来的寄存器中(采用取数指令或出栈指令)
  • 4:中断返回: 中断服务程序的最后一条指令通常是返回指令,时原程序的断点处,以便继续执行原程序。
  • ⚠️注意:计算机在执行中断的时候,可能会出现新的中断,这时候有两种方:一种对于新的中断不理睬,叫做*单重中断,另一种暂停现在执行的中断,转向新的中断,叫做多重中断*。
    这两种中断最大的区别就是开中断的位置的区别

在这里插入图片描述

I/O通道

**概念:**I/O通道设备的引入实际上,I/O通道是一种特殊的处理机。它具:有执行I/O指令的能力,并通过执行通道(I/O)程序来控制I/O操作。但I/O通道又与一般的处理机不同,主要表现在以下两个方面:一是其指令类型单一,这是由于通道硬件比较简单,其所能执行的命令,主要局限于与I/O操作有关的指令;再就是通道没有自己的内存,通道所执行的通道程序是放在主机的内存中的,换言之,是通道与CPU共享内存。------摘自《百度百科》

**通道:**就是来负责管理I/O设备以及实现主存与I/O设备之间交换信息的部件,他有自己的指令和程序,专门负责数据输入输出的传输控制(相当于cpu把传输控制下放给了通道),具有一些专用的通道指令,它受CPU的I/O指令启动I/O设备,执行通道指令,*组织I/O设备和主存交换信息向CPU报告中断

通道控制方式:

所需的CPU干预更少,并且一个通道可以控制多个设备-------进一步CPU的负担

有专门的指令来改变通道程序

DMA 与中断的比较

在这里插入图片描述

DMA、中断、通道的区别和联系

DMA中断通道
驱动方式直接存储器存取方式的基本思想是在I/O设备和内存之间开辟直接的数据交换通路,彻底“解放” CPU允许I/O设备主动打断CPU的运行并请求服务DMA方式的发展,它可以进一步减少CPU的干预,即把对一个数据块的读(或写)为单位的干预,减少为对一组数据块的读(或写)及有关的控制和管理为单位的干预。
适用场景不需要CPU干预介入的控制器来控制内存与外设之间的数据交流的场合 I/O通道方式:适用于以字节为单位的干预,同时实现CPU、通道和I/O设备三者并行操作的场合适用于高效场合
处理方法获取总线的3种方式分别为:暂停方式、周期窃取方式和共享方式在系统中具有多个中断源的情况下,常用的处理方法有,多中断信号线法.中断软件查询法.雏菊链法、总线仲裁法和中断向量表法。通道是一种通过执行通道程序管理I/O操作的控制器,它使主机与1/0操作之间达到更高的并行程度。
  • 54
    点赞
  • 115
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 44
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 44
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

William_Tao(攻城狮)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值