计算机组成原理 输入输出系统3 DMA方式

1.1 DMA方式的特点

一、DMA和程序中断两种方式的数据通路

 

计算机组成原理 输入输出系统3 DMA方式_第1张图片

二、DMA与主存交换数据的三种方式

1、停止CPU访问主存

  • 只要外部设备要和内存进行数据交换,则在数据交换的过程中,从第一个数据开始,cpu就放弃了总线的控制权和内存的访问,总线的控制权和内存访问权交给了DMA接口,从控制上说比较简单,适合大量数据传输。
  • 若传输过程中cpu内部指令缓冲器中有指令,或者指令已经被取到了cache,cpu还可以继续工作执行指令,如果没有指令可以执行,cpu就保持状态,所以未发挥cpu对主存的利用率

计算机组成原理 输入输出系统3 DMA方式_第2张图片

2、周期挪用(周期窃取)

如果DMA接口准备好了数据传输,那么通过申请建立总线使用权,占用一个或者几个内存访问周期,完成数据传输,在数据传输间隔或者数据准备阶段,DMA接口放弃总线占用和内存使用权

DMA访问主存有三种可能

  • cpu此时不访存
  • cpu正在访存 cpu继续访问
  • cpu与DMA同时请求访存 DMA优先

计算机组成原理 输入输出系统3 DMA方式_第3张图片

3、DMA和CPU交替访问

  • c1专供DMA访存
  • c2专供cpu访存
  • 不需要申请建立和归还总线的使用权

计算机组成原理 输入输出系统3 DMA方式_第4张图片

 

1.2 DMA接口的功能和组成

一、DMA接口功能

 

  1. 向CPU申请DMA传送
  2. 处理总线控制权的转交
  3. 管理系统总线、控制数据传送
  4. 确定数据传送的首地址和长度 修正传送过程中的数据地址和长度
  5. DMA传送结束时,给出操作完成信号

二、DMA接口组成

  • 假设使用单总线结构
  • 要进行数据传输,cpu要告诉DMA接口传输地址是什么。也就是从内存那个地址进行存放和传输,所以需要一个地址寄存器
  • 要知道传输的数据量所以需要计数器,进行数据量计数,假设数据传入内存或输出,从低地址开始,而且编址单位相同,每完成一个输入输出,要对地址计算器进行修改,要给地址+1
  • WC(字数计数)假设采用补码方式,WC中保存的是-n,n是要传输数据数量,每传输一个,就+1
  • BR数据缓冲器,外部设备数据,要暂存在数据缓冲器当中
  • DAR设备地址寄存器,供设备选择电路使用,查看此次访问设备是不是接口当前连接的设备,是否由该DMA进行管理,将设备地址保存在寄存器当中;还可以保存柱面号,磁道号,扇区号。
  • AR通过地址线把要访问的内存地址送给主存,DMA接口接管了主存和总线
  • 数据线要给AR寄存器置值,传输的内存单元的厨师地址通过数据线进行设置,数据数量也通过数据线进行设置,设备地址也通过它进行设置
  • 外部设备和数据缓冲器直接相连
  • 输入输出过程需要通过DMA控制逻辑,控制在给定的时序发出给定的信号,例如DMA请求,DMA读写控制信号
  • 外部设备要进行DMA传输,要向DMA控制逻辑发出请求信号DREQ
  • DMA向CPU发出控制信号,DMA控制器要对设备给出应答信号
  • DMA控制器若要总线,通过总线向cpu发出总线使用请求信号,cpu发出应答信号由DMA控制器进行接收
  • 中断机构用于数据传输完后对后续的工作进行处理
  • 中断机构向cpu发出中断请求,cpu做中断传输后的处理

计算机组成原理 输入输出系统3 DMA方式_第5张图片

1.3 DMA工作过程

一、DMA传送过程

1、预处理

通过几条输入输出指令预置信息

  • 同志DMA控制逻辑传送方向(入/出)
  • 设备地址 DMA的DAR
  • 主存地址 DMA的AR
  • 传送字数 DMA的WC

2、DMA传送过程示意

计算机组成原理 输入输出系统3 DMA方式_第6张图片

3、数据的传送过程

计算机组成原理 输入输出系统3 DMA方式_第7张图片

4、后处理

  • 检验送入主存的数是否正确
  • 是否继续使用DMA
  • 测试传送过程是否正确,错则转诊断程序
  • 中断服务程序完成

二、DMA接口与系统的连接方式

1、既有公共请求线的DMA请求

总线进行仲裁采用串型连接的方法

所有DMA接口共享一条请求线,请求线是送给cpu的,越靠近cpu的优先级越高

计算机组成原理 输入输出系统3 DMA方式_第8张图片

2、独立的DMA请求

排队工作在cpu内部进行

计算机组成原理 输入输出系统3 DMA方式_第9张图片

三、DMA方式与程序中断方式的比较

计算机组成原理 输入输出系统3 DMA方式_第10张图片

1.4 DMA接口的类型

一、选择型

从物理上,一个接口连接了多个设备,但在数据准备和数据传输过程中,实际上接口只能连接一个设备

寄存器时序电路只有一套,某一个设备使用接口进行数据传输,cpu通过运行一条输入输出指令,对寄存器进行设置,设置成某一个设备要与主存进行数据交换所需要的值,那么其他设备就不能和主存之间再提出DMA请求不能进行数据交换了

计算机组成原理 输入输出系统3 DMA方式_第11张图片

二、多路型

在物理上连接多个设备,在逻辑上也可以连接多个设备,在真正进行数据传输时也只能有一个设备和内存之间进行数据传输,但是数据准备阶段,可以有多个设备同时进行数据准备

通道是一种小型DMA处理器,也是一种DMA接口,一个通道下面包含若干子通道,每个子通道都有主存地址寄存器、设备地址寄存器、字计数器,这些子通道可以控制多个设备,设备进行数据传输时,cpu要控制设备进行输入输出,要对相应子通道当中的寄存器进行设置,设置后,继续执行程序,碰到下一条输入输出指令,若两设备使用不同子通道,那对其他的子通道中寄存器进行设置,外部设备再之后的时间中进行数据准备,多个设备并行进行数据准备。

外部设备准备好后,通过子通道向通道提出数据传输请求,此时不同设备数据传输为串型

计算机组成原理 输入输出系统3 DMA方式_第12张图片

三、多路型DMA接口工作原理

计算机组成原理 输入输出系统3 DMA方式_第13张图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(计组)