ch5_4程序查询方式_程序中断方式_DMA方式

程序查询方式的流程

程序查询方式的接口电路

mark 一下吧,现在是 2023. 4-19。 距离离开学校快一年了,
这段时间年前2023一直在学习操作系统的原理, 学到一半,发现确实需要补充,计算机组成原理的基础知识。 故开始学习计组, 开始的时间正好是过年这段时间, 那个时候,外公还在,可以陪伴着他。

遗憾的是,自己一心想要变强, 过完年后,正月十三便想要离开了, 那时候自己知道外公身体是需要人,照顾的,便让母亲过来照顾。 也就是,第二天便是立春了,外公已经很坚强了,我很佩服他, 在陪伴他的这段时间,他一点没有给我带来麻烦,包括跑到大床上, 其实,是想让我和他一起睡大床。

不说了, 到这里,计组的硬件介绍到这里了。
后面的五章开始,讲述计组的软件组成了, 希望学好,对得起外公和自己。

1. 程序查询方式

程序查询方式,需要通过cpu中的寄存器,完成数据从io设备到内存之间的传输。

在这里插入图片描述

1.1 程序查询方式流程

  1. 保存寄存器的内容: 如果寄存器中的数据是有用的,需要对寄存器中的数据进行保存。
    将其压入到堆栈当中,或者放到cpu中其余的闲置寄存器中。

  2. 设置计数值:用于控制当前批次总共传输的数据量。

在这里插入图片描述

1.2 程序查询方式接口电路

DBR, 数据缓冲寄存器

在这里插入图片描述

2. 程序中断方式

2.1  中断的概念

中断: cpu 在执行程序的过程中,

  1. 如果发生意外事件或者特殊事件,cpu需要停止当前程序的执行。
  2. 转而去处理中断事件,或者是特殊事件。通过中断服务程序去处理中断。
  3. 处理结束后, 返回被中断的程序断点,继续执行原始的程序。

中断过程中,

  • 需要将程序的断点保存起来,
  • 保存中断现场, 中断时,寄存器中的值。
    在这里插入图片描述

2.2  io中断的产生

能够引发cpu发生中断的因素:
在这里插入图片描述

2.3  程序中断方式的接口电路

  1. 配置中断请求触发器和中断屏蔽触发器

在这里插入图片描述

一次中断处理过程大致分为:中断请求,中断判优,中断响应,中断服务和中断返回等五个阶段

  1. 排队器,用于分配各个设备的优先级。
    硬件排队器,对中断请求源进行排队以后, 
    在从1-n 这些intp中, 只有一个值是1,
    在所有有中断请求的中断源当中,优先级最高的中断源。

在这里插入图片描述

  1. 中断向量地址形成部件。
    找到中断服务程序的入口地址, 
    入口地址可以通过软件产生, 或者硬件向量法。
  • 中断号:中断的编号, 如在8086中, 支持256种中断,则此时这256种中断,被编号成 0- 255.

  • 中断向量:中断服务程序的入口地址,在x86系列中,可以理解成段地址  + 偏移量 构成的中断向量。

有时候,可以代指程序状态字:cpu发生中断时候, 一些非体系结构寄存器或者表示程序状态的寄存器,这些寄存器中的指令无法读取,在计算机内部集成为一个字,这个字称为程序状态字。

此时,中断向量便是包括了 和中断服务程序相关的入口地址,包括段地址,偏移量, 也包括了执行中断服务程序的时候,需要的一些状态信息。

  • 向量地址: 是指中断向量保存的内存单元的地址,
    在这里插入图片描述
    中断向量地址形成设备编码器,
    设备编码器的输出通过数据总线输入到cpu当中,
    产生中断服务程序的入口地址,
    或者是入口地址保存的内存中存储单元的地址,
    或者是跳转指定保存存储单元对应的入口地址
  1. 程序中断方式接口电路的基本组成。
    DBR: 数据缓冲寄存器。
    设备选择电路: 选择哪个设备
    命令译码:确认本次的操作。
    在这里插入图片描述

2.4  io中断的处理过程

cpu 响应中断的条件和时间

  1. 允许
    允许中断触发器 EINT =1
    用开中断 指令将EINT 置 1,
    用关中断 指令将EINT 置0 或者硬件自动复位

  2. 时间
    当D =1, 随机, 且mask = 0 时,
    在每条指令执行阶段的结束前,
    cpu 发中断查询信号, 将 INTR 置1,
    在这里插入图片描述

2.5  中断服务程序流程

中断隐指令,是指在取指令和执行指令完成之后,由硬件完成的一系列操作。
中断隐指令,是硬件自动执行的一系列操作。

  1. 保护现场 
    程序断点的保护,中断隐指令完成
    寄存内容的保护, 进栈指令

  2. 中断服务
    对不同的io设备,具有不同内容的设备服务。

  3. 恢复现场
    出栈指令

  4. 中断返回
    中断返回指令

2.6 单中断与多重中断

  • 单中断: 不允许中断现有的中断服务程序;
  • 多重中断: 允许级别更高的中断源, 中断现行的中断服务程序。

在这里插入图片描述

单重中断与多重中断的主要区别是多重中断的服务程序中要提前开中断,

而单重中断的服务程序中在最后中断返回之前才能开中断。
在这里插入图片描述

3. DMA 方式

3.1dma 方式的特点

下图给出程序中断方式和DMA 方式, 两种不同的数据通路。

在这里插入图片描述

传输间隔过程中,cpu 交出了对总线和主存的控制权,交给了dma 来控制,
在传输间隔的这段时间中,dma 接口虽然没有直接访问主存,但依然占用主存的访问权,此时.cpu 没有充分利用这段时间。

dma 与主存交换数据的三种方式:

  • 停止cpu 访问主存:
    控制简单, cpu此时处于不工作状态或保持状态,
    但未充分发挥cpu 对主存的利用率;

在这里插入图片描述

  • 周期挪用(周期窃取) cpu的存取周期;
    DMA访问主存的三种可能:
    cpu 此时不访存,
    cpu正在访存;
    cpu与dma 同时请求访存;
    此时cpu将总线控制权让给dma;

在这里插入图片描述

  • dma 与cpu交替访问
    cpu 工作周期, c1 专供dma访存;
    c2专供cpu 访存;

在这里插入图片描述

3.2 DMA接口的功能和组成

dma接口功能:

  1. 向cpu申请dma 传送;

  2. 处理总线控制权的转交

  3. 管理系统总线, 控制数据传送;

  4. 确定数据传送的首地址和长度,
    修正传送过程中的数据地址和长度;

  5. dma传送结束时, 给出操作完成信号;

AR: 地址寄存器,cpu 告知DMA接口, 从内存的哪个地址开始传输,或者是输入的数据从内存的哪个地址开始存放。假设从低地址开始,假设每次传送的
数据单位和编址单位是相同的,地址加1;

wc: 表示传输的数据量,数据量计数器。 用于统计数据传输是否完成,采用补码方式表示,每传送完成一次,+1, 直到0;

DAR: 设备地址寄存器: 供设备选择电路使用; 对于硬盘的设备访问时, 可以保存柱面行,磁道行,扇区行。
BR: 数据缓冲寄存器, 外部设备的数据或者是存储单元的输出数据, 暂存在接口的BR中。

  • dma控制逻辑:用来控制输入,输出过程。

HRQ用于dma控制器通过总线,对cpu发出总线使用请求信号。HLDA, cpu给出应答信号到DMA控制器。

DREQ外部设备向DMA发出请求信号。DACK用于dma给设备应答信号:

  • 中断机构:当计数器wc为0时,会向中断机构发出信号。 当一条指令执行结束后,由中断机构对cpu发出中断请求。cpu进行数据传输结束后的处理。

在这里插入图片描述

3.3 DMA工作过程

  1. dma 传送过程
  2. 预处理, 数据传送, 后处理;
  • 预处理
     通过几条输入,输出指令预置如下信息
     通知dma 控制逻辑传送方向 (输入还是输出)
     设备地址- dma
     主存地址-dma 的AR
     传送字数 -dma 的wc

  • dma传送过程
    在这里插入图片描述

在这里插入图片描述

  • 后处理
    校验送入主存的数,是否正确;

是否继续使用dma;
测试传送过程是否正确, 错误则转到诊断程序;

用中断服务程序完成。

3.4 DMA接口与系统的连接方式

  • 具有公共请求线的dma 请求
    在这里插入图片描述

  • 独立的dma 请求
    在这里插入图片描述

3.5 DMA接口类型

  • 选择型, 在物理上连接多个设备, 在逻辑上只允许连接一个设备。

在这里插入图片描述

  • 多路型,  在物理上连接多个设备, 在逻辑上允许连接多个设备同时工作。

在这里插入图片描述

  • 多路型dma接口的工作原理

在这里插入图片描述

3.6 DMA方式与程序中断方式的比较

-中断方式DMA方式
数据传送程序(中断服务程序完成)硬件控制
相应时间指令执行结束存取周期结束
处理异常情况不能
中断请求传送数据后处理
优先级
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值