计算机组成原理(十三)

5.5   DMA方式及接口

1、定义  

DMA,即直接存储器访问(Direct Memory Access),它指这样一种传送控制方式:依靠硬件直接在主存与外围设备(I/O)之间进行简单、批量、快速的数据传送,在传送过程中不需要CPU的干预。传送结束以后,通过中断的方式通知CPU

1) 传送发生在I/O与主存之间;

2) 由DMA控制器来控制传送,DMA控制器接管总线权,传送完毕再将总线权交还CPU

3) 只要CPU不访存, DMA操作与CPU可并行操作

4) 传送前和传送后需要CPU程序干预。

 

2、实质与特点 

1)实质  

程序暂停:  1.时间:一条指令完整结束时暂停,保证程序的完整性。

                    2.方法:主程序暂停(不需保护断点、现场)

2)特点:随机性

(1)响应随机请求

(2)一般不影响CPU程序的执行,仅占用总线、无程序切换

(3)大批量数据的简单传送

【典型的应用场合】

(1)主存与高速I/O设备之间的简单数据传送。

(2)大批量数据采集系统

(3)动态存储器(DRAM)的自动刷新

eg:

如:DRAM的刷新操作、磁盘读写。     DMA传送是直接依靠硬件实现的,可用于快速的数据直传,传送过程无需CPU参与。也正是由于这点,DMA方式不能处理复杂事态。因此,在某些复杂场合常将DMA与程序中断方式相结合,二者互为补充。典型的例子是磁盘调用,磁盘读写采用DMA方式进行数据传送,而对寻道正确性的判别、批量传送结束后的处理,则采用中断方式。

 3、DMA的数据传送操作方式

①单字传送

DMA请求获得批准后,CPU让出一个总线周期用于字或字节的传送,再回收并重新判断下一个周期的总线控制权,也称为周期挪用或窃取

②成组连续传送方式

DMA被批准后,连续占用若干个总线周期,成组连续批量地传送,结束后将总线的控制权交回给CPU。

4、DMA硬件系统的组织

DMA方式控制I/O设备与主存数据直传,应明确:

(1)传送方向、(2)设备寻址信息、(3)主存缓冲区首地址、(4)传送的数据量,等等。

早期:由CPU和DMA接口协同控制;

 现代:设置专用的DMA控制器

5、DMA初始化工作的步骤

1.向接口送出I/O设备的寻址信息;

2.向DMA控制器送出控制字,如传送方向;

3.向DMA控制器送出主存缓冲区首址;

4.向DMA控制器送出传送的数据量;

6、硬件设置

7.DMA流程

DMA三个阶段:

1.程序准备:主程序实现初始化

2.DMA传送:硬件实现 M<-->I/O

3.结束处理:中断处理程序判断传送的正误。

应用场合:用于高速、简单、批量数据传送。

DMA与中断的相同点:

能响应随机请求; 可并行操作(CPU与外设)。

DMA与中断的不同点:

中  断:

① 用程序实现中、低速I/O传送; 能处理复杂事件;

② 一条指令结束时响应请求。

③ 程序切换

DMA: 

① 用硬件实现高速、简单I/O传送;  一个总线周期结束时响应请求。    

② 总线权切换

③ CPU不参与数据传送

8.DMA控制器与接口的连接

设计DMA控制器与设备接口的连接方案,需考虑以下几个方面:

① DMA控制器与设备接口是否分离?

② 数据传送经过DMA控制器,还是接口直接经数据总线与主存交互?

③ 如DMA控制器连接多台设备,采取什么连接方式?

④ 有多个DMA控制器,采用怎样的DMA请求方式?

由此可以采用后述几种设计方案:

① 单通道DMA控制器; ② 选择型DMA控制器; ③ 多路型DMA控制器;

(1)DMA控制器功能

①接收初始化信息(传送方向、主存首址、交换量)---初始化

②接收外设DMA请求,判优,向CPU申请总线----传送前

③接管总线权,发地址、读/写命令。---传送期间

(2)接口功能

①接收初始化信息(外设寻址信息)----初始化

②向DMA控制器发请求。-------传送前,外设准备好

③传送数据。-----传送期间

9.DMA模式的磁盘接口(磁盘适配器)

1、系统连接方式

两级DMA控制器:

主机板上DMA控制器:全机共用的DMA

适配器内DMA控制器:适配器<------>驱动器

2、硬盘适配器粗框

1)处理机接口(面向系统总线一侧)

EPROM控制逻辑:放有硬盘驱动程序(系统自检时被引入系统管理之下)。

I/O端口控制逻辑:接收CPU送来的端口地址、读/写命令,访问处理机接口中的相应寄存器。

2)智能主控器(控制核心)

微处理器:执行硬盘控制程序。

RAM:扇区缓存(存放二个扇区数据)。

ROM:存放硬盘控制程序。

DMA控制器:控制适配器与驱动器之间的数传。

3)驱动器接口(面向设备一侧)

驱动器控制逻辑:向驱动器送出控制命令(驱动器选择、寻道方向选择、读、写……)。

驱动器状态逻辑:接收驱动器状态信息  (选中、就绪、寻道完成……)

3、硬盘调用过程(DMA方式)

1) CPU向适配器送出寻址信息(如驱动器号、圆柱面号、磁头号、起始扇区号等;  向DMA控制器送出传送方向、主存首址、交换量等信息。

2)  适配器启动寻道,  并用中断方式判寻道是否正确。

3) 适配器准备好

4) CPU响应, 由DMA控制器控制总线,  实现传送。

5) 批量传送完毕,  适配器申请中断。

6) CPU响应,  作善后处理。(即: 一次DMA传送以中断方式结束, 如在服务程序中进行出错判断, 如果出错,  进行相应处理等)

注: 两级DMA控制器所起的作用:

1.直接连接在系统总线上的DMA控制器,控制适配器缓冲区与内存之间的数据交换

2.适配器中的DMA控制器,控制适配器缓冲驱与驱动器之间的数据交换

理论篇完结撒花 !!!!!

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

大卞老师

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

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

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

打赏作者

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

抵扣说明:

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

余额充值