- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
10.3.3 DMA的数据传送过程(2) 1. DMA预处理 在进行DMA数据传送之前要用程序做一些必要的准备工作。先由CPU执行几条输入输出指令,测试设备状态,向DMA控制器的设备地址寄存器中送入设备地址并启动设备,在主存地址寄存器中送入交换数据的主存起始地址,在数据字数寄存器中送入交换的数据个数。 在这些工作完成之后,CPU继续执行原来的程序。 10.3.3 DMA的数据传送过程(3) 第二个阶段 数据传送过程: 允许传送? 主存地址送总线 数据送I/O设备(或主存) 主存地址加1 WC内容(传送个数)减1 数据块 传送结束? 向CPU申请中断 DMA请求 N Y Y N 10.3.3 DMA的数据传送过程(4) 2. DMA控制I/O设备与主存之间的数据交换 I/O设备启动后,若为输入数据,则要进行以下操作: (1)从输入介质读入一个字到数据缓冲寄存器DBR中。 (2)向CPU发DMA请求,在取得总线控制权后,将DBR中的数据送人主存的数据寄存器。 (3)将DMA中的MAR内容送主存的地址寄存器,启动写操作,将数据写入主存。 (4)将WC内容减1,将MAR的内容加1,给出下一个字的地址。 (5)判断WC是否为“0”,若不是,说明还有数据需要传送,检查无错后准备下一字的输入。若WC为0,表明一组数据已传送完毕,此时应置结束标志,向CPU发中断请求。 10.3.3 DMA的数据传送过程(5) I/O设备启动后,若为输出数据,应进行以下操作: (1)将MAR的内容送主存的地址寄存器。 (2)启动主存读操作,将对应单元的内容读入主存的数据寄存器。 (3)将主存数据寄存器的内容送到DMA的DBR中。 (4)将DBR的内容送到输出设备,若为字符设备,则需将DBR内容拆成字符输出。 (5)将WC内容减1,MAR内容加1,为下一个字的输出做好准备。 (6)判断WC的内容是否为0。如不为0,说明还需继续传送,输出设备处理完数据后,发DMA请求。如WC为0或检验有错,则停止传送,向CPU发结束中断请求或出错中断请求。 10.3.3 DMA的数据传送过程(6) 3. CPU中断原程序进行后处理 若需继续交换数据,则又要对DMA控制器进行初始化;若不需交换数据,则停止外设;若为出错,则转错误诊断及处理程序。 10.3.4 软盘接口逻辑电路举例(1) 为了实现CPU和软盘驱动器之间的快速数据传送,在CPU和软盘驱动器之间需设置软盘控制器。 DMA控制器电路Intel 8257就是DMA控制器电路。 软盘控制器接口逻辑电路中采用了8257 DMA控制器。在CPU和软盘控制器之间的接口电路中包括总线控制线路和DMA控制线路。 8257 DMA控制器提供四个独立的DMA通道(CH0,CH1,CH2,CH3)。软盘接口使用了其中一个通道。每个通道包含两个十六位的寄存器:一个DMA地址寄存器和一个字节计数寄存器。DMA地址寄存器存放被寻址的第一个主存单元的地址。字节计数寄存器存放本次DMA传送的字节数。此外,还包含工作方式(读、写、校验)和状态寄存器。 见图 CPU CS# 8257 DMA控制器 IOR# IOW# MEMR# MEMW# 读 写 控 制 数据寄存器 地址译码 CS# 软 盘 控 制 器 RD# WR# 数据总线 地址总线 总线控制逻辑 软 盘 驱 动 器 HRQ HLDA 10.3.4 软盘接口逻辑电路举例(2) 1. 预处理: 在DMA传输前,CPU必须对8257中的寄存器进行预置(即初始化): (1) 设置传送的内存起始地址,地址→DMA地址寄存器; (2) 设置传送的字节计数值,计数值→DMA字节计数寄存器; (3) 传送方向设置,设定(读、写、校验)→DMA工作方式寄存器; (4) 启动软盘控制器。 10.3.4 软盘接口逻辑电路举例(3) 2. 数据传送: 8257接收软盘控制器发来的DMA传输请求信号DRQ,8257接收到DRQ后,向总线控制线路发HRQ信号,请求总线控制权,CPU在识别到HRQ信号,完成当前总线周期后,发出HLDA响应信号,并放弃总线控制权。此时,8257向软盘控制器发出回答信号DACK信号,通知软盘控制器开始DMA传输。并发出读/写控制信号(MEMR/MEMW,IOR/IOW)。 通过接口中的数据寄存器从主
原创力文档


文档评论(0)