利用直接存储器存取介质传输数据的方法和装置制造方法及图纸

技术编号:2869288 阅读:175 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种用于将存储在一个存储器中的数据传送到另一个存储器的装置和方法,以及一种在传送数据时将数据移动指定的位数,并且将移位后的数据传送到另一存储器中的方法和装置。当读取来自第一存储器的数据时,传统的直接存储器访问(DMA)装置顺序存储来自存储器地址的第一存储区域的数据并将已读取的数据存储在第二存储器中。在DMA控制寄存器中设置值,以便在传送数据时将数据移动指定的位数并且根据所述方法传送移位后的数据。根据在控制寄存器设置的预定值而将数据移位指定的位数并且将移位后的数据传送到另一存储器。

【技术实现步骤摘要】

本专利技术涉及一种用于存储数据的装置和方法,尤其涉及一种将存储在一个指定存储器中的数据传送到另一个存储区域的装置和方法。
技术介绍
通常是响应一个来自CPU(中央处理单元)的命令而传送数据。CPU是控制整个系统的装置。CPU控制着对从各种输入单元接收到的数据的一组处理操作,以及将上述处理结果输出到输出单元的操作。当CPU接收并处理来自输入单元的数据时,就给CPU一个很大的负载。为了减轻CPU的负载由另一处理程序执行CPU的部分功能。为了满足这种需要,开发了DMA(直接存储器存取)作为附加的CPU功能的一个例子,DMA处理程序执行读取存储在一个指定存储器或者存储区域的数据,并且将所读取的数据传送到另一存储器或者存储区域的功能。当CPU传送来自特定存储器的少量数据传送给另一存储器时,不会给CPU一个很大的负载。但是,如果响应CPU的指令把来自特定存储器的大量数据或超过预定数据大小的数据传送给另一存储器时,就会给CPU一个很大的负载。当传送较大的数据时,与DMA处理程序相关的数据传送速率就会变得比与CPU相关的数据传送速率高一些。通常预定数据大小大约是512字节。图1是使用传统DMA的系统的方框图。图1中示出了由Advanced RISCMachines(ARM)Ltd公司生产的先进的微控制器总线架构(AMBA)。AMBA包括以可在高频率下运行的先进的高性能总线(AHB)以及一个可在低频下运行的先进的外设总线(APB)。AHB-APB桥108耦合在AHB和APB之间,以便高速率总线和低速率总线可以相互交换数据。下面看一下图1中剩余的其它系统部件,AHB块包括中央处理单元(CPU)100,第一存储器单元102DMA装置104和总线判定器106。APB块包括以第二存储单元110和输入/输出(I/O)单元112。I/O单元112除其它部件外,还包括通用串行总线(USB),辅助键盘,通用异步收发报机(UART)。为了将存储在第一存储单元102中的数据传送到第二存储单元110,由CPU100控制和处理所有的操作。当存储在第一存储单元102中的数据传送到第二存储单元110时,CPU100读取存储在第一存储单元102中的数据。在被读取的数据传送到第二存储单元110之前,CPU100执行必要的操作。但是,当将大量数据从第一存储单元102传送到第二存储单元110时,CPU执行一组操作就变得很困难。问题在于除了数据传输操作外,CPU100还必须执行与系统有关的许多操作。为了解决所述问题,开发了DMA装置。图1示出了单个DMA装置104。当然,按照本系统可以配置许多DMA装置。DMA装置104可以将存储在AHB块中的数据传送到APB块中,或者将存储在APB块中的数据传送到AHB块中。在这种情况下,AHB块和APB块中包括了多个存储单元。DMA装置104响应由CPU100发出的控制命令或是外部控制命令将存储在第一存储单元102的数据传送到第二存储单元110。由DMA装置104执行的的数据传输操作将参照图3详细说明。图2是图1中的DMA装置104的内部结构方框图。如图2所示,DMA装置104除其它部件外,还包括控制寄存器,源地址寄存器(SAR),目标地址寄存器(DAR),传输计数寄存器(TCR),先进先出(FIFO)缓冲器,总线控制器和接口。SAR是一个用于指明初始源地址的寄存器,在所述地址读取来自第一存储器单元102的数据。DAR是一个用于指定初始目标地址的寄存器,在所述地址中将已读取的来自于第一存储器单元102的数据首次写入到第二存储器单元110中。TCR是一个寄存器,用于当DMA装置104将来自第一存储器单元102的数据写入到第二存储器单元110中时指定写入操作的数目。进而,根据当读取在第一存储装置102中的源地址中的数据时与读取操作有关的地址值是否必须增加、减少或者固定来执行一个控制操作,随后读取下一个数据。更进一步,根据当写入第一存储装置102中的源地址中的数据时与写入操作有关的地址值是否必须增加、减少或者固定来执行一个写入操作,随后写入下一个数据。当数据从第一存储单元102传送到第二存储单元110时,控制寄存器执行用于一组能够被一次传输的数据的控制操作。能够一次传输的一组数据可以是一个字节(8位),半个字(16位),一个字(32位)或者其它可定义的值。寄存在寄存器中的值与来自CPU100的命令或者来自外部控制器的命令有关。如果位于DMA装置中的寄存器值如前述设置,那么从图1中所示第一存储单元102读取数据并将其写入到第二存储器单元110中。DMA装置104仅执行将存储在第一存储单元的数据传送到第二存储器单元中的功能。但是,可以发出请求以便具有不同于存储在第一存储单元的数据形式类型的数据存储在第二存储器单元中。例如,发出请求以便存储在第一存储单元的数据移动预定的位数,并且所述移位的数据必须存储在第二存储器单元中。在这种情况下,DMA装置通常仅执行用于传送数据的控制操作而不执行数据移位操作,并且CPU通常将已传送的数据移动预定的位数。CPU将数据移动预定的位数并将移位后的数据传送到另一存储单元,而不使用DMA装置。在CPU将数据移动预定的位数并将移位后的数据传送到另一存储单元的情况下,传输速率比在DMA装置传送数据的情况下的速率要小。DMA执行CPU的部分功能以便减轻CPU的负载。然而,问题在于因为CPU直接执行移动指定位数的数据移位操作,所以CPU负载不能被减轻。由此,需要有一个在不考虑CPU的情况下用于移动数据指定位数并且传送被移位数据的新方法。
技术实现思路
因此,考虑到上述问题提出了本专利技术的实施例,并且本专利技术的目的之一就是要提供一种当数据从第一存储单元传送到第二存储单元时,能够在不考虑CPU的情况下传输已被移动了指定位数的数据的方法和装置。本专利技术的另一目的是提供一种能够减少处理时间上延迟的方法和装置,所述延迟发生在当传统CPU以指定的位数移位数据,并且传送被移位的数据时。为了实现本专利技术的上述和其它目的,提出了一种新型装置。在所述新型装置中,寄存器值在DMA装置的控制寄存器内设置,以便决定将移位的指定的位数和移位的方向。如果寄存器值已被完全设定,那么从第一存储单元读取数据并将已读取的数据存储在DMA装置的临时存储单元中。在读取完存储在DMA装置的临时存储单元中的数据后,基于设定的位数和移位方向移位被读取的数据,并且将被移位的数据存储在第二存储单元中。为了实现本专利技术的上述和其它目的,提出了一种新型方法。在所述新型方法中,寄存器值在DMA装置的控制寄存器内设置,以便决定将移位的指定的位数和移位的方向。如果寄存器值已被完全设定,那么从第一存储单元读取数据并将已读取的数据存储在DMA装置的临时存储单元中。在读取完存储在DMA装置的临时存储单元中的数据后,基于设定的位数和移位方向移位被读取的数据,并且将被移位的数据存储在第二存储单元中。附图说明本专利技术的上述和其它目的、特征和其它优点参照附图和接下来的详细说明将会更容易理解,其中图1示出了传统先进微控制器总线架构的方框图。图2示出了传统直接存储器存取装置结构的方框图。图3是示出应用到本专利技术的一个实施例中的Endian转换操作的视图。图4是示出应用到本专利技术的一个实施例中的在本文档来自技高网
...

【技术保护点】
一种通过利用直接存储器存取(DMA)介质而读取和存储数据的方法,包括下述步骤:当请求时提前判断将要进行移位的移位方向和移位位数,以便能够处理从第一存储介质中读取的数据;以及在寄存器中顺序地存储配置已读取数据的位串,在确定的方 向按预定的位数移位所述的位串,并且将所述已经移位的位串传送到第二存储介质中。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:郑文基朴晶湖
申请(专利权)人:三星电子株式会社
类型:发明
国别省市:KR[韩国]

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

1