DMA传输数据过程简介


  DMA传送操作分三个阶段:准备阶段、DMA传送阶段和传送结束阶段。
  1.准备阶段:在这个阶段中,CPU通过指令向DMA控制器发送必要的传送参数。
  ①控制字送DMA控制器指出数据传送方向。
  ②预置MBAP,即数据块在主存缓冲区的首址。
  ③置DAR外设的地址,如外设为磁盘机,其地址包括:磁盘机号、盘面号、柱面号和扇区号。
  ④给WBC预置,指出数据传送字节/字数。
  2.DMA传送阶段
  DMA接口上传送的一批数据是一个个传送的,在周期挪用控制方式下DMA控制器主要完成以下五个操作。
  ①外设准备好一次数据传送后,接口向主机发DMA请求。
  ②CPU响应DMA请求,把总线使用权让给DMA控制器。DMA控制器控制源、目的端口准备传送数据。
  ③DMA周期挪用一次,交换一个数据信息。
  ④归还总线使用权,修改主存地址指针和传送计数值。
  ⑤判断这批数据是否传送完毕:是,结束该工作阶段;没有,又开始传送下一个数据。DMA中信息传送过程.
  3.结束阶段
  DMA在两种情况下都会进入结束阶段,一种情况是一批数据传送完毕,这是正常结束。另一种情况是DMA发生故障,也要进入结束阶段,这是非正常结束。不论是哪一种情况进入结束阶段,DMA都向主机发出中断请求,CPU执行服务程序查询DMA接口状态,根据状态进行不同的处理。
  DMA是程序中断传送技术的发展。它在硬件逻辑机构的支持下,以更快的速度、更简便的形式传送数据。程序中断与DMA相比有以下几个不同。
  ①中断方式通过程序实现数据传送,而DMA方式不使用程序直接靠硬件来实现,信息传送速度快。 
  ②CPU对中断的响应是在执行完一条指令之后,而对DMA的响应则可以在指令执行过程中的任何两个存储周期之间,请求响应快。
  ③中断方式必须切换程序,要进行CPU现场的保护和恢复操作。DMA仅挪用了一个存储周期,不改变CPU现场,额外化销小。
  ④DMA请求的优先权比中断请求高。CPU优先响应DMA请求,是为了避免DMA所连接的高速外设丢失数据。
  ⑤中断方式不仅具有I/O数据传送能力,而且还能处理异常事件,DMA只能进行I/O数据传送。
总而言之,在进行I/O控制时,DMA控制方式比程序中断控制方式速度快,但程序中断控制方式的应用范围比DMA控制方式广。

你可能感兴趣的:(计算机体系结构,linux系统管理)