一种直接存储器存取装置及方法制造方法及图纸

技术编号:2862962 阅读:154 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种直接存储器存取装置。该装置包括:总线接口,用于在系统总线和寄存器单元之间传输数据或信息;寄存器单元,用于将待传输数据块的虚拟地址送入地址转换单元,并将所存储的控制信息送入逻辑控制单元;逻辑控制单元,用于接收请求处理单元送入的信息,并输出控制信号;请求处理单元,用于处理并响应需要进行数据传输的设备发出的直接存储器存取请求;地址转换单元,用于接收总线接口输入的地址页表,并将寄存器单元送入的虚拟地址映射为物理地址输出至总线接口。本发明专利技术还同时公开了一种直接存储器存取方法,采用该装置和方法在实现DMA数据传输的前提下,减少中断操作次数,从而降低系统负担,提高DMA数据传输的速率。

【技术实现步骤摘要】

本专利技术涉及微机系统的数据存取领域,尤指。
技术介绍
直接存储器存取(DMA,Direct Memory Access)是微机系统提高数据传输效率的一项重要技术。DMA技术可以在中央处理器(CPU,CentralProcess Unit)执行任务的同时,对系统设备中的数据块进行存取操作;也可以在CPU不参与的情况下,由专用的硬件电路控制数据块的存取。本申请所述系统设备包括存储设备和输入输出设备,在以下说明中,发送区指的是获取数据块的设备区域,接收区指的是保存数据块的设备区域。采用DMA方式实现的数据传输就是在一定时间段内,由专用的硬件电路取代CPU获得系统的总线控制权,将数据块从发送区取出,送入接收区保存,从而实现系统设备之间,包括存储器与输入输出设备之间、或者存储器的不同区域之间数据传输的过程。在所述数据传输的实现过程中,数据传输完全由专用的硬件电路控制,CPU对此不进行干预,所以这种DMA方式实现的数据传输速率很高。现有技术中,将上述专用的硬件电路称为DMA控制器(DMAC)。在支持DMA方式实现数据传输的微机系统中,DMAC和CPU都挂接在系统总线上,由总线提供数据传输的通道。一般情况下,CPU控制着系统总线,DMAC只是一个工作在从属状态的受控模块。当系统设备产生直接存储器存取需求时,该系统设备将向DMAC发出DMA请求,DMAC收到该请求后,通过HOLD控制信号向CPU申请占用系统总线。CPU接收到HOLD控制信号后处理DMAC的请求,由系统软件通过总线向DMAC写入控制信息、待传输数据块的长度和数据块的存取地址等信息;然后CPU将系统的总线控制权移交给DMAC,由DMAC控制系统总线数据传输工作。此处的系统软件类似于计算机的操作系统,用于将CPU分配给各个任务或者处理存储器的使用分配等。所述存取地址指的是数据块在接收区的地址和数据块在发送区的地址,由于数据块具有一定长度,这两个地址都是一段地址范围,其中数据块在发送区的地址又称为源地址,数据块在接收区的地址又称为目的地址。系统软件给系统设备中的数据块所分配的地址都是虚拟地址,而不是数据块在内存中的实际物理地址,系统软件中的存储管理单元(MMU,Memory Management Unit)负责将数据块的虚拟地址映射到可用的物理内存中,数据块在内存中的位置用物理地址表示。系统软件给数据块分配的虚拟地址可以是连续的,而数据块保存在内存中的物理地址可以是离散的,所以虚拟地址连续的数据块在内存中并非连续保存,而是分成多个物理地址连续的小块,各小块之间的物理地址不连续,本申请中将物理地址连续的小块称为数据子块。系统软件将数据块的虚拟地址到物理地址的映射关系采用地址页表的方式保存,供数据块操作时调用。由MMU管理的物理内存具有最小连续区,MMU以最小连续区为单位保存数据,现有技术中将最小连续区称为页。图1是包含DMAC的系统工作原理图,下面将结合图1详细说明DMA方式实现数据传输的过程。A、输入输出设备101或存储器105通过DMA请求触发器102向DMA控制器103发出DMA请求。B、DMAC通过HOLD控制信号向中央处理器104发出DMA请求。C、CPU对DMA请求做出响应。CPU的响应包括两方面内容其一,CPU将控制总线、数据总线和地址总线接口的输出端设置成高阻态,表明CPU放弃对总线的控制权;其二,CPU将其放弃总线控制权的消息通过HLDA控制信号告知DMAC。D、DMAC接管系统的总线控制权后,向DMA请求触发器发送DMA响应。E、DMAC通过系统总线来控制存储器105与输入输出设备101之间、或者存储器105的不同区域之间的数据传输。本步骤中数据传输的过程分为两小步首先,DMAC将数据块从发送区读出,存到DMAC的寄存器单元,该步骤可以用一个DMA读周期完成;其次,DMAC将寄存器单元中的数据块写到接收区,该步骤可以用一个DMA写周期完成。F、DMAC完成数据传输后,通过HOLD控制信号向CPU发出撤消DMA请求消息。CPU收到DMAC发出的撤消DMA请求消息后,通过HLDA控制信号告知DMAC结束对系统总线的控制,同时CPU重新控制总线,DMA数据传输过程结束。现有的DMAC结构如图2,包括总线接口201、寄存器单元202、控制逻辑单元203和请求处理单元204。由于DMAC只能根据数据块的物理地址进行数据传输,而且DMAC每次只能传输一段物理地址连续的数据子块,所以对虚拟地址连续但物理地址不连续的数据块,DMAC只能以每次传输一段数据子块的方式通过多次传输完成整个DMA数据传输过程。假设某系统设备需要通过DMA方式对虚拟地址范围为0x000~0x7FF,大小为2KB的数据块进行传输,MMU设定的每页数据大小为1KB,待传输的数据块在内存中保存成两页,这两页数据子块的物理地址不连续,所以DMAC只能分两次传输,整个数据块的传输过程如图3所示。步骤301系统设备向DMAC发出DMA请求,DMAC通过HOLD控制信号向CPU申请系统的总线控制权,然后系统软件将待发送数据块的虚拟地址映射为物理地址。经过地址映射,系统软件判定本实施例中的数据块需要分成两次数据子块传输,每个数据子块的大小为1KB。步骤302系统软件送控制信息给DMAC,启动DMAC的数据传输,并将第一个数据子块的物理地址通过系统总线发送到DMAC的寄存器单元。步骤303DMAC获得总线控制权,进行第一个数据子块的数据传输,同时系统软件可以执行图1所示系统产生的其它程序。步骤304第一个数据子块的数据传输结束,DMAC通过控制逻辑单元产生中断请求,并通过HOLD控制信号将总线控制权交还给CPU。步骤305系统软件响应DMAC的中断请求,停止执行其它程序,将第二个数据子块的物理地址通过系统总线发送到DMAC的寄存器单元,DMAC再次通过HOLD控制信号申请总线控制权。步骤306DMAC获得总线控制权进行第二个数据子块的数据传输,同时系统软件可以执行图1所示系统产生的其它程序。步骤307第二个数据子块的数据传输结束,DMAC产生中断请求并将总线控制权交还给CPU。系统软件响应DMAC的中断请求,停止执行其它程序,并通过DMAC的中断请求判定本次DMA数据传输过程结束。从上述步骤可以看出,由于现有的DMAC无法将待传输数据块的虚拟地址映射成物理地址,所以需要依靠系统软件完成这一地址映射过程。另外,DMAC在执行数据传输时只能将物理地址连续的数据块从发送区送至接收区。所以,对于物理地址不连续的数据块,需要分成物理地址连续的数据子块分次传输才能完成DMA数据传输任务。上述情况造成DMAC必须重复步骤302~304的过程中断系统软件对其它程序的执行,以获得每个数据子块的物理地址,而对系统进行中断操作会给整个系统运行增加额外负担,也降低了数据传输的速率。
技术实现思路
有鉴于此,本专利技术的主要目的在于提供一种直接存储器存取装置,由DMAC自身就能实现待传输数据块的虚拟地址到物理地址的映射,从而减小系统运行负担,加快DMA数据传输的速率。本专利技术的另一目的在于提供一种直接存储器存取方法,在执行DMA数据传输时,减少中断操作次数,加快DMA数据传输的速率。为达到上述目的,本专利技术的技术方案具体本文档来自技高网
...

【技术保护点】
一种直接存储器存取装置,其特征在于,该装置包括:总线接口,用于从系统总线获取数据或信息送至寄存器单元,或将寄存器单元中的数据或信息发送到系统总线;寄存器单元,用于将待传输数据块的虚拟地址送入地址转换单元,并将所存储的控制信息 送入逻辑控制单元;逻辑控制单元,用于接收请求处理单元送入的信息,并输出控制信号到总线接口、寄存器单元、地址转换单元和请求处理单元;请求处理单元,用于处理并响应需要进行数据传输的设备发出的直接存储器存取请求;地址转换单 元,用于接收总线接口输入的虚拟地址和物理地址的映射关系信息,并将寄存器单元输入的虚拟地址映射为物理地址输出至总线接口。

【技术特征摘要】

【专利技术属性】
技术研发人员:白锋
申请(专利权)人:北京中星微电子有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1