DMA程序查询.docx
- 文档编号:10486091
- 上传时间:2023-02-13
- 格式:DOCX
- 页数:5
- 大小:16.82KB
DMA程序查询.docx
《DMA程序查询.docx》由会员分享,可在线阅读,更多相关《DMA程序查询.docx(5页珍藏版)》请在冰豆网上搜索。
DMA程序查询
程序中断方式和DMA方式的优缺点:
程序中断方式:
I/O中断处理过程:
1.响应中断的条件和时间:
cpu响应I/O设备提出的中断的请求的条件是必须满足CPU中的允许中断触发器EINT为“1”。
该触发器可用中断的指令置位(开中断);也可以用关中断指令或硬件自动使其复位(关中断)。
CPU在每条指令执行结束时发出中断查询信号,以获取I/O的中断的请求。
因此,CPU响应中断的时间一定在每条指令执行阶段的结束时刻。
2.I/O中断处理过程(当CPU通过I/O指令的地址码选中某设备后)
(1)由CPU发启动设备命令,将接口中的B置“1”,D置“0”。
(2)接口启动输入设备开始工作。
(3)输入设备将数据送入数据缓冲寄存器。
(4)输入设备向接口发送“设备工作结束”信号,将D置“1”,将B置“0”,标志设备准备就绪。
(5)当设备准备就绪(D=1),且本设备未被屏蔽时,在指令执行阶段结束时刻,由CPU发出中断查询信号。
(6)设备中断请求触发器INTR置“1”,标志设备向CPU发出
中断请求。
与此同时,INTR送至排队器,进行中断判优。
(7)若CPU允许中断(EINT=1),设备又被排队器选中,即进入中断响应解阶段,由中断响应信号INTA将排队器输出送至编码器形成向量地址。
(8)向量地址送至PC,作为下一条指令
(9)由于向量地址中存放的是一条无条件转移指令,故这条指令执行结束就无条件进入该设备的服务程序入口地址,开始执行中断服务程序,进入中断服务阶段,通过输入指令将数据缓冲寄存器的输入数据送至CPU的通用寄存器,再存入相应单元。
(10)中断服务程序的最后一条指令是中断返回指令,当其执行结束时,即中断返回至原程序的断点处。
中断服务程序的流程
1.保护现场
2.中断服务
3.恢复现场
4.中断返回
DMA方式
主存和DMA接口之间有一条数据通路,因此主存和设备交换信息时,不通过CPU,也不需要暂停现行程序为设备服务,省去了保护现场和恢复现场,因此比程序中断方式工作速度高。
出现高速I/O(通过DMA接口)和CPU同时访问主存,CPU必须将总线(数据线,地址线)占有权让给DMA接口使用,即DMA采用窃取的方式占有一个存取周期。
(1)停止CPU访问主存
(2)周期挪用(周期窃取)
(3)DMA与CPU交替访问
1DMA接口的功能
利用DMA方式传送数据时,数据的传输过程完全由DMA接口电路控制,故DMA接口有DMA控制器之称。
功能如下。
。
。
。
(1)向CPU申请DMA传送
(2)在CPU允许DMA工作时,处理总线控制权的转交,避免因进入DMA工作而影响CPU正常活动或引起总线竞争。
(3)在DMA期间管理系统总线,控制数据传送。
(4)确定数据的传送的起始地址和数据长度,修改数据传送过程中数据地址和数据长度。
(5)在数据块传送结束时,给出DMA操作完成的信号。
2DMA接口的基本组成
(1)主存地址寄存器(AR)
(2)字计数器(WC)
(3)数据缓冲寄存器(BR)
(4)DMA控制逻辑负责管理DMA传送过程,由控制电路、时序电路和命令状态控制寄存器等组成。
每当设备准备好一个数据字,就向DMA接口提出申请(DREQ),DMA控制逻辑便向CPU请求DMA服务,发出总线使用权的请求信号(HRQ)。
待收到CPU发出的响应信号HLDA后,DMA控制逻辑便开始负责管理DMA传送的全过程,包括对主存地址寄存器和字计数器的修改、识别总线地址、指定传送类型以及通知设备已经被授予一个DMA周期(DACK)等。
(5)中断机构当字计数器溢出(为“0”)时,表示一批数据交换完毕,由“溢出信号”通过中断机构向CPU提出中断请求,请求CPU作DMA的后处理。
这个中断与I/O中断技术相同,但是请求的服务不同,I/O是为了传送数据,这里是为了报告数据传送完毕请求后处理。
(6)设备地址寄存器(DAR)
DAR存放I/O设备的设备码或表示设备信息存储区的寻址地址,如磁盘数据所在的区号、盘面号、柱面号。
DMA的工作过程
1.传送过程(预处理、数据传送、后处理)
(1)预处理
A给DMA控制逻辑指明数据传送的方向(输入还是输出)(读|写主存)
B像设备地址寄存器送入设备号,并启动设备
C向DMA主存地址寄存器送入交换数据的主存起始地址。
D对字计数器赋予交换数据的个数。
上述工作由CPU执行几条输入输出指令完成,即程序的初始化阶段,执行完毕之后,CPU继续执行原来的程序。
当I/o设备准备好发送的数据或上次接收的数据已经处理完毕时,它便通过DMA接口向CPU提出占用总线的申请,若有多个DMA同时申请,则按轻重缓急由硬件排队判优。
待I/O设备得到总线的控制权后,数据的传送便由该DMA接口进行管理。
(2)数据传送DMA是以数据块为单位传送的,以周期挪用的DMA方式的输入数据为例。
1.1.1当设备准备好一个字时,发出选通信号,将该字读到DMA的数据缓冲寄存器(BR),表示数据寄存器已经满。
(若设备面向字符的,则一次读入一个字节,组成一个字)。
1.1.2与此同时设备向DMA接口发请求(DREQ)
1.1.3DMA接口向CPU申请总线控制权(HRQ)
1.1.4CPU发HLDA信号,表示允许将总线权转交给DMA接口
1.1.5将DMA主存地址寄存器中的地址总线控制权交给DMA接口。
1.1.6通知设备已被授予一个DMA周期,并为交换下一个字做准备。
1.1.7将DMA数据缓冲寄存器的内容送数据总线。
1.1.8主存将数据总线上信息写至地址总线指定的存储单元中。
1.1.9修改主存地址和字计数器的值。
1.1.10判断数据块是否传送完毕,若未结束,则继续传送,若已结束。
则向CPU申请程序中断,标志数据块传送结束。
输出数据
(1)当DMA数据缓存寄存器已将输出数据送至I/O设备后,表示数据缓冲寄存器已“空”。
(2)设备向DMA接口发请求(DREQ)
(3)DMA接口向CPU申请总线控制权。
(4)CPU发回HLDA信号,表示允许将总线控制权交给DMA接口使用。
(5)将DMA主存地址寄存器中的主存地址送地址总线,并命令存储器读。
(6)通知设备已被授予一个DMA周期,为交换下一个字节做准备。
(7)主存将相应地址单元的内容送到输出设备,若为字符设备,则需将其拆成字符输出。
(8)将DMA数据缓冲寄存器的内容送到输出设备,若为字符设备,则需要将其拆成字符输出。
(9)修改主存地址和字计数器。
(10)判断是否完毕。
完毕后申请程序中断。
(3)后处理
当DMA中断请求得到相应后,CPU停止原程序的执行,专区执行中断服务程序,做一些DMA结束工作。
包括校验、是否继续使用DMA传送数据块,若要进行初始化,若不需要停止外设、测试在传送过程中是否发生错误则转错误诊断和错误处理。
(注:
文档可能无法思考全面,请浏览后下载,供参考。
可复制、编制,期待你的好评与关注!
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DMA 程序 查询