直接存贮器存取技术_第1页
直接存贮器存取技术_第2页
直接存贮器存取技术_第3页
直接存贮器存取技术_第4页
直接存贮器存取技术_第5页
已阅读5页,还剩36页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

直接存贮器存取技术第1页,课件共43页,创作于2023年2月6.1.2DMA传送过程1.申请阶段

a.外设向DMAC发出DREQ请求; b.DMAC向CPU发HRQ请求I/ODMACCPU请求DREQ①请求HRQ②第2页,课件共43页,创作于2023年2月2.响应阶段

c.CPU向DMAC发总线保持回答信号:HLDA; d.状态:CPU让出总线,DMAC为主控者.I/ODMACCPU请求DREQ请求HRQ①②DMACK④

回答HLDA(包括总线裁决)③3.数据传送阶段

e.DMAC向外设发回答信号:DACK;4.传送结束阶段

f.DMAC脱离总线,CPU重新控制总线.第3页,课件共43页,创作于2023年2月6.1.3DMA传送方式1.DMA操作类型数据传送数据校验数据检索2.DMA操作方式单字节方式连续方式请求方式第4页,课件共43页,创作于2023年2月6.2DMA控制器6.2.1DMAC在系统中的工作状态:主动态(主控器):接管并取得总线控制权,取代CPU而成为系统总线的主控者。被动态(受控器):未取得总线控制时,受CPU的控制。I/ODMACRAMCPU①DREQ②HRQ③HLDA④DACKDMAR/W第5页,课件共43页,创作于2023年2月3.传送顺序I/ODMACPUI/ORAMDMA①DREQ②HRQ③HLDA④DACKR/W由被动态进入主动态

(总线仲裁)经总线裁决后认可,进入总线保持状态,CPU失去总线控制权经判优及屏蔽处理后第6页,课件共43页,创作于2023年2月二.DMA控制器8237-DMAC的特点:1.特点:(1)四个独立通道(可对4个I/O设备进行DMA服务)(2)64KB寻址与计数能力(3)数据传输率1.6MB/s(4)有级联方式和多种操作模式2.内部逻辑结构其引脚信号的功能,它们分为以下几类:(1)I/O设备的请求信号

DREQ0-3,由I/O向DMAC发出,DREQ0优先级最高。

(2)DMAC回答I/O的信号

DACK0-3,由DMAC回答I/O.第7页,课件共43页,创作于2023年2月

注意:系统允许多个DREQ信号,同时有效,即可以几个I/O同时提出申请。但同一个时间,只能有一个DACK信号有效。(3)总线请求和应答:HRQ和HLDA(4)读写控制:IOR-IOW-MEMR-MEMW;(5)地址线:A0-A7,其中A0~A3为双向地址线。

(6)双向数据线:DB0-7,既是数据线,又是16位地址线的高8位(A8~A15)。

(7)总线控制信号:CS-,READY,AEN,ADSTB,EOP-,CLK,RESET。第8页,课件共43页,创作于2023年2月第9页,课件共43页,创作于2023年2月三、8237A内部寄存器及编程(15个寄存器)1.内部寄存器:(1)通道寄存器(0,1,2,3)

读通道.当前地址寄存器(16bit)

读通道.当前字节计数器(16bit)

写通道.基地址与当前地址寄存器(16)

写通道.基字节计数器与当前字节计数器(16)(2)共用寄存器:工作方式寄存器命令寄存器状态寄存器屏蔽寄存器第10页,课件共43页,创作于2023年2月第11页,课件共43页,创作于2023年2月2.寄存器功能3种基本传送方式3种DMA传送类型2种工作时序2种优先级排队1种传送地址和字节数1种RAM-RAM之间传送(3:3:2:2:1:1)通过编程可完成。第12页,课件共43页,创作于2023年2月3.寄存器编程(1)工作方式寄存器(DMA+11)功能:用于控制DMA传送的操作方式,传送类型以及自动预置。格式:D7D6D5D4D3D2D1D0第13页,课件共43页,创作于2023年2月D7D6D5D4D3D2D1D0模式选择00:请求方式01:字节方式10:连续方式11:级联方式地址增量D5=1地址加1=0地址减100=校验01=DMA写:I/O→RAM10=DMA读:RAM→I/O11=无效类型选择通道选择00=0通道01=1通道10=2通道11=3通道自动预置

D4=1,预置

D4=0,禁止第14页,课件共43页,创作于2023年2月注意:请求方式:每传送一个字节之后,要检测(询问)DREQ是否有效,若无效,则“挂起”但不释放总线,若有效,继续传送直至字节计数器为0。

字节方式:通道启动一次,只传送一个数据,传送完就释放系统总线交还CPU,并且:当前地址寄存器+1(-1)当前字节计数器+1(-1)连续方式:启动一次可把整个数据块传送完,并且,当前字节计数器减到0,产生EOP-信号,释放总线。第15页,课件共43页,创作于2023年2月

例:PC系列软盘R/W操作选择DMA通道2,单字节传送,地址增1,不用自动预置,其R/W操作方式字为:

I/O→RAM读盘(DMA写)=01100110B(66H)RAM→I/O写盘(DMA读)=01101010B(6AH)

因此,从软盘上读一个扇区的数据存放到内存区方式字为66H,写一个扇区的数据到软盘为6AH。第16页,课件共43页,创作于2023年2月(2)基值地址寄存器(DMA+0,+2,+4,+6)16位存放DMA传送的内存首址,,在初始化时由CPU写入,传送中基值地址不变,只写不读。(3)当前地址寄存器(DMA+0,+2,+4,+6)16位存放DMA传送地程中的内存地址.初值与基值地址相同,每次传送自动加1(减1),可读可写。(4)基值字节计数器(DMA+1,+3,+5,+7)16位存放DMA传送的总字节数,在初始化时由CPU写入,传送中,基值字节计数器不变,只写不读。(5)当前字节计数器(DMA+1,+3,+5,+7)16位存放DMA传送过程中没有传送完的节数,每传送一个字节后减1,减为0时,产生EOP,表示传送完毕。第17页,课件共43页,创作于2023年2月(6)屏蔽寄存器(DMA+10,+15)用来禁止或允许通道的DMA请求。有二种格式.1)单一屏蔽寄存器(DMA+10)每次只能屏蔽一个通道.格式:D7D6D5D4D3D2D1D0未用屏蔽位=1屏蔽=0不屏蔽通道选择00=选0通道01=选1通道10=选2通道11=选3通道第18页,课件共43页,创作于2023年2月2)4位屏蔽寄存器(DMA+15)可同时屏蔽4个通道(但对由软件设定的DMA请求位不能屏蔽)格式:D7D6D5D4D3D2D1D0未用通道3通道2通道1通道0=0屏蔽=1不屏蔽第19页,课件共43页,创作于2023年2月例:开放通道2,作为响应软盘的DMA请求。①使用单一屏蔽

MOVAL,00000010BOUTDMA+10,AL

或②使用4位屏蔽

MOVAL,00001011BOUTDMA+15,AL第20页,课件共43页,创作于2023年2月(7)请求寄存器(DMA+9)

DMA请求寄存器就是用于由软件启动DMA请求,如:RAM→RAM,这种软件请求DMA传输必须是连续传输方式。格式:D7D6D5D4D3D2D1D0未用请求位1=有请求0=无请求通道选择00=0通道01=1通道10=2通道11=3通道

例若用软件请求使用通道1进行DMA传送,则请求寄存器写入05H即可。第21页,课件共43页,创作于2023年2月(8)命令寄存器(DMA+8)用来控制8237A的操作,由CPU写入,由CPU写入,由RESET清除,只写不读。格式:D7D6D5D4D3D2D1D0内存到内存传输

D1D0X0禁止

01源地址不保持

11源地址保持不变8237工作允许0:允许1:禁止0:正常时序1:压缩时序0:固定优先级1:循环优先级0:不扩展写1:扩展写0:DREQ高电平有效1:DREQ低电平有效0:DACK低电平有效1:DACK高电平有效第22页,课件共43页,创作于2023年2月(9)状态寄存器(DMA+8)功能:提供哪些通道已到终止计数、哪些通道有DMA请求等状态信息供CPU使用。格式:D7D0CH

CH2CH1CH0CH3CH2CH1通道0请求服务过程结束

有尚未处理的DMA请求,写1.已接收到终止计数信号,写1.第23页,课件共43页,创作于2023年2月(10)暂存寄存器(DMA+13)功能:用于存贮器对存贮器传送时,暂时保存从源地址读出的数据。(11)软件命令(有三条)所谓软命令就是只要对特定地址进行一次写操作,命令就生效,而与写入的具体数据无头。(1)清先/后触发器命令(2)总清除命令(3)清屏蔽寄存器命令第24页,课件共43页,创作于2023年2月6.2.5DMA控制器的工作时序

DMA的7种状态周期Si,S0,S1,S2,S3,S4及SW1.空闲周期Si1.检测DREQ请求. 2.检测CS信号.如果两者皆无,则维持Si.2.过渡状态S0

若检测到DREQ请求,DMAC即向CPU发出总线请求信号HRQ。并且,DMAC从Si状态跳入S0状态,并重复执行,直到收到HLDA信号(CPU)进入S1状态,DMAC从被动→主动态.第25页,课件共43页,创作于2023年2月3.DMA有效周期(S1~S4)①在CPU的回答信号HLDA到达后,DMAC进入有效周期开始传送数据。②

一个完整的传送周期包括S1,S2,S3和S4四个周期如果I/O速度跟不上,可在S3和S4之间插入等待周期SISIS0DREQS0S1S2S3S4HLDAI/OSWSW有效周期空闲状态过渡状态被动主动状态未就绪单字节块字节第26页,课件共43页,创作于2023年2月扩展写信号SISIS0S1S2S3S4S2S3S4SISIS0CLKDREQHRQHLDAA0~A7A8~A15有效地址有效地址AENADSTBDB0~DB7DACKIOR/MEMRIOW/MEMW图:DMA时序第27页,课件共43页,创作于2023年2月a)S1周期:更新高8位地址。AEN,A8-A15b)S2周期:①输出16位地址到RAM,(其它高8位已锁存)②向I/O发请求回答信号DACK,准备传送数据。c)S3周期:发出MEMR-或IOR-读命令,从内存或I/O准备传送数据。

d)S4周期:发IOW-或MEMR-命令。将数据写到RAM或I/O接口。发MEMR-读RAM→I/O设备(发写I/OW)或I/ORI/O→RAM(发写MEMR)在PC例中,用于动态RAM刷新的通道00通道:由S1-S44个周期:840ns其他:S1-S3,SW,S4为1.02µs第28页,课件共43页,创作于2023年2月6.3DMA系统一、DMAC有效地址的生成

有效地址:是指当DMAC取得总线控制权后,作为系统为主控制器,它如何向存储器和I/O设备发地址信号。1.如何提供存贮器的地址(1)DMAC只能提供16位地址:A0~A7(低8位)

DB0~DB7(高8位)(2)PC/XT地址总线20位:①DMAC提供16位A0~A15 ②页面地址寄存器4位,A16~A19

(3)PC/AT地总24位①DMAC提供16位②页面地址寄存器8位(PC/AT)(A16~A23)

第29页,课件共43页,创作于2023年2月二.DMAC如何提供I/O设备的地址?DMA提供DACK信号来取代I/O设备地址选择逻辑,使申请DMA传送并被认可的设备在DMA传送过程中保持为有效设备。在对I/O进行读写数据时,只要DACK-信号和RD-或WR-信号同时有效,就能完成对I/O设备端口的读/写操作。而与I/O设备的端口地址无关。第30页,课件共43页,创作于2023年2月二、PC的DMA系统1.PC/XT的DMA系统页面寄存器1#2#3#通道0#RAM刷新保留软盘硬盘片内端口00~0FHA16~A19页面端口81~82HDMAC第31页,课件共43页,创作于2023年2月地址总线20位A1~A7

由DMAC地址直线产生

A8~A15

由DMAC地址间接产生(经74LS374)

A16~A19

经页面地址(74HC670)产生最后,DMAAEN-信号全部选通20位地址,给系统地址总线,即内存地址。第32页,课件共43页,创作于2023年2月74670(612)页面地址寄存器的编码(1)写操作(初始化有效地址的高4/8/16位)地址GW-WBWA80H000写入0号寄存器81H001写入1号寄存器82H010写入2号寄存器83H011写入3号寄存器

1××(2)读操作(输出有效地址的高4/8/16位)地址GR-RBRA80H000读入0号寄存器81H001读入1号寄存器82H010读入2号寄存器83H011读入3号寄存器第33页,课件共43页,创作于2023年2月特点:①支持4个DMA通道传②0通道用于RAM刷新;③通道1保留,用于同步通信,如网卡;④软盘2#,硬盘3#应用注意:(1)8位数据传送(2)每次DMA传送多达64KB,可在1MB空间范围寻址(3)DMAC的端口地址00-0FH,即DMA+0--DMA+1581H软盘FDD页面地址寄存器的端口地址82H硬盘HDD83H网卡第34页,课件共43页,创作于2023年2月74LS670(612)

DMA页面寄存器

锁存器

RAM20位地址(24位)CPU读RAM写RAMD0~7S0~7A0~3A0~3DB0~7A0~7A0~7IORIOW总线控制器S0~2总线裁决机构S0~1总线请求总线应答HRQHLDA数据传送线IORIOWEOPDACK0DACK1DACK2DACK3DRQ2DRQ3DRQ1DRQ0I/O设备读I/O设备写I/O设备计数终止I/O设备0I/O设备1I/O设备2I/O设备3DMA控制器图:PC系列DMA系统逻辑框图总线信号封锁A8-15A16-23第35页,课件共43页,创作于2023年2月2.PC/AT的DMA系统由2片8237DMAC构成.支持7个DMA通道传送。页面寄存器DMAC0#DMAC1#页面寄存器端口81H保留保留软盘保留A16~A23A0~A150#1#2#3#00~00FH4#5#6#7#保留C0~DFHA1~A15HRQA17~A2389-8BH支持8位传输支持16位传输页面寄存器DMAC0#DMAC1#页面寄存器端口81H保留保留软盘保留A16~A23A0~A150#1#2#3#00~00FH4#5#6#7#保留C0~DFHA1~A15HRQA17~A2389-8BH第36页,课件共43页,创作于2023年2月说明:DMAC0:0#,1#保留:因AT有专门的RAM刷新电路2#:软驱3#保留:因HDD采用高速PIO传送,无须DMA支持。DMAC1:5#-7#均保留,16位数据传送,每次64KB,可寻址空间16MBDMAC0(从片)的HREQ与DMAC1(主片)的4号通道连接,实现双片DMAC级联。第37页,课件共43页,创作于2023年2月6.3.3DMAC的初始化编程1.初始化编程注意事项(1)先通过命令寄存器将要编程的通道屏蔽,编程完成后再允许芯片工作。(2)所有通道的方式字寄存器都要加载。(3)在上电期间,要对DMA芯片进行检测。2.初始化编程例:对PC机的DMAC进行检测方法:分别对4个通道的8个寄存器先写入全“1”,全“0”再读出比较看是否一致,不一致则出错,待机。第38页,课件共43页,创作于2023年2月例:PC机BIOS中DMA的初始化过程:

DMA DW0 ;DMA片选口地址 :

MOV AL,04 OUT DMA+8,AL;命令字,禁止8237工作

OUT DMA+0DH,AL;总清软命令 ;先作全“1”检测再作全“0”检测

MOV AL,0FFHC16:

MOV BL,AL MOV BH,AL MOV CX,8 MOV DX,DMA第39页,课件共43页,创作于2023年2月C17:

OUT DX,AL;地址寄存器、字节寄存器写“1”/“0” OUT DX,AL IN AL,DX ;读地址寄存器、字节寄存器

MOV AH,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论