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

程序查询方式的流程

程序查询方式的接口电路

1. 程序查询方式

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

ch5_4程序查询方式_程序中断方式_DMA方式_第1张图片

1.1 程序查询方式流程

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

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

ch5_4程序查询方式_程序中断方式_DMA方式_第2张图片

1.2 程序查询方式接口电路

DBR, 数据缓冲寄存器

ch5_4程序查询方式_程序中断方式_DMA方式_第3张图片

2. 程序中断方式

2.1  中断的概念

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

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

中断过程中,

  • 需要将程序的断点保存起来,
  • 保存中断现场, 中断时,寄存器中的值。
    ch5_4程序查询方式_程序中断方式_DMA方式_第4张图片

2.2  io中断的产生

能够引发cpu发生中断的因素:
ch5_4程序查询方式_程序中断方式_DMA方式_第5张图片

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

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

ch5_4程序查询方式_程序中断方式_DMA方式_第6张图片

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

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

ch5_4程序查询方式_程序中断方式_DMA方式_第7张图片

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

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

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

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

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

2.4  io中断的处理过程

cpu 响应中断的条件和时间

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

  2. 时间
    当D =1, 随机, 且mask = 0 时,
    在每条指令执行阶段的结束前,
    cpu 发中断查询信号, 将 INTR 置1,
    ch5_4程序查询方式_程序中断方式_DMA方式_第10张图片

2.5  中断服务程序流程

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

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

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

  3. 恢复现场
    出栈指令

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

2.6 单中断与多重中断

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

ch5_4程序查询方式_程序中断方式_DMA方式_第11张图片

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

而单重中断的服务程序中在最后中断返回之前才能开中断。
ch5_4程序查询方式_程序中断方式_DMA方式_第12张图片

3. DMA 方式

3.1dma 方式的特点

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

ch5_4程序查询方式_程序中断方式_DMA方式_第13张图片

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

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

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

ch5_4程序查询方式_程序中断方式_DMA方式_第14张图片

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

ch5_4程序查询方式_程序中断方式_DMA方式_第15张图片

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

ch5_4程序查询方式_程序中断方式_DMA方式_第16张图片

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进行数据传输结束后的处理。

ch5_4程序查询方式_程序中断方式_DMA方式_第17张图片

3.3 DMA工作过程

3.4 DMA接口类型

你可能感兴趣的:(#,计算机组成原理,c语言,单片机,fpga开发)