多维DMA传输装置与方法制造方法及图纸

技术编号:7564411 阅读:168 留言:0更新日期:2012-07-14 14:55
本发明专利技术公开了一种多维DMA传输装置与方法,所述装置包括读Buffer(400)、数据FIFO(401)、写Buffer(402)、读控制器(403)和写控制器(404)。所述读Buffer(400)用于暂存在读操作过程中新读入的数据;所述数据FIFO(401)用于存储暂时积压下来的数据;所述写Buffer(402)用于暂存在写操作过程中将要写出的数据;所述读控制器(403)用于控制读操作过程,发送读请求并对该请求的回复进行处理;所述写控制器(404)用于控制写操作过程,发送写请求并对该请求的回复进行处理。本发明专利技术适合于矩阵分割、矩阵重组、矩阵扩展等多种DSP基本操作,将简单的处理过程与复杂处理过程相分离后并行执行,减少了核处理时间。

【技术实现步骤摘要】

本专利技术主要涉及多维DMA (Direct Memory Access)的传输装置与方法,与片内数据存储结构和片外数据存储结构紧密相关。
技术介绍
随着SIMD(Single Instruction Multiple Data)的出现以及向量处理器的不断发展,DSP对数据供给的要求越来越高。DSP算法的不断发展使得复杂的数据结构已经成为 DSP算法的结构,也对DMA传输模式提出了更高的要求。普通的DMA传输方法只是将连续的数据搬运到一块连续的地址段内,缺乏必要的地址变化,为之后的Load/Store操作(读数据操作/写数据操作)带来了不必要的麻烦。
技术实现思路
(一 )要解决的技术问题本专利技术所要解决的技术问题是克服普通DMA传输数据分布简单、对多维数据支持不足、冗余读写操作较多的缺点,提出一种新的多维DMA传输方法及装置。( 二 )技术方案本专利技术提出的多维DMA传输装置包括读Buffer、数据FIFO、写Buffer、读控制器和写控制器,所述读Buffer与数据FIFO相连,用于暂存在读操作过程中新读入的数据;所述数据FIFO用于暂时存储读写操作中积压的数据;所述写Buffer与数据FIFO相连,用于暂存在写操作过程中将要写出的数据;所述读控制器连接于读Buffer和数据FIFO,用于控制读操作过程,发送读请求并对该请求的回复进行处理;所述写控制器连接于写Buffer、数据FIFO和读Buffer,用于控制写操作过程,发送写请求并对该请求的回复进行处理。所述读Buffer包括读状态寄存器,该读状态寄存器用于存储标志该读Buffer中有效数据的情况的状态信息。所述写Buffer包括写状态寄存器,该写状态寄存器用于存储标志该写Buffer中有效数据的情况的状态信息。所述读控制器用于将读取的数据暂存于该读Buffer和数据FIFO中,并修改读 Buffer中的读状态寄存器的状态信息。当写Buffer和数据FIFO中存储的数据之和足够当次写操作所需数据时,所述写控制器用于向外部发送写操作请求,并将写Buffer和数据FIFO中的数据依次写出。当数据FIFO为空并且已经到达DMA传输末尾时,所述写控制器用于从写Buffer 和读Buffer中选取数据进行写出。本专利技术还提出一种多维DMA传输方法,用于DMA传输装置中,该DMA传输装置包括读Buffer、数据FIFO和写Buffer,所述方法包括读操作步骤和写操作步骤在读操作步骤中,发送读请求并对该请求的回复进行处理,并修改该读Buffer和数据FIFO内的数据及状态信息,使DMA存入数据FIFO前进行了对齐操作而形成一个连续的数据块;在写操作步骤4中,发送写请求并对该请求的回复进行处理,修改读Buffer、数据FIFO和写Buffer内的数据及状态信息,以便从连续的数据块中截取数据并写出。在读操作步骤中,当读Buffer中空位足够当次读入操作时,将读入数据进行循环移位后接到读Buffer中最后一个有效数据之后;或者,当读到的数据数量和读Buffer中的数据数量之和不小于端口位宽W时,将W个数据排好顺序放入数据FIFO中,并剩余数据放入读Buffer中。在写操作步骤中,当需要写出的数据数量不大于写Buffer中有效数据的数量时, 直接从写Buffer读取数据;并且当需要写出的数据数量大于写Buffer中的有效数据量时,并且数据FIFO不空时, 数据FIFO弹出W个数据,将写Buffer中的数据和该W个数据拼接后截取需要写出的数据长度的数据并写出,并将剩余数据放入写Buffer中。在写操作步骤中,当到达DMA传输结尾时,将写Buffer中的数据和读Buffer中的数据进行组合,并使写Buffer中数据在前,选取需要读取的数据并移位写出,将剩下数据存入写Buffer中。(三)有益效果根据本专利技术的多维DMA传输装置与方法,由于多维数据当读入时在缓存区内自动对齐使数据形成一个连续的数据块,实现了多维数据的无缝连接。而写出操作从连续的数据块中截取数据并进行合适的位移,保证写出操作按多维DMA要求进行操作。附图说明图1显示了 3维DMA传输的数据分布结构。图2显示了多维DMA传输的读操作行为级描述。图3显示了多维DMA传输的写操作行为级细节。图4显示了整个多维DMA传输控制器(CSU)的整体结构。图5显示了当读Buffer中空位足够当次读入操作时的存储区变化情况的一个示例。图6显示了当读Buffer中空位不够当次读入操作时的存储区变化情况的一个示例。图7显示了当写Buffer中数据足够当次写出操作时的存储区变化情况的一个示例。图8显示了当写Buffer中数据不够当次写出操作时的存储区变化情况的一个示例。图9显示了 DMA传输结尾时存储区可能的变化情况的一个示例。 具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术进一步详细说明。为了克服普通DMA传输数据分布简单、对多维数据支持不足、冗余读写操作较多的缺点,本专利技术提出一种多维DMA传输装置与方法,所述多维DMA传输装置与方法可以通过将多块数据拼接成一块数据、一块拆分成多块、或者多块数据重新划分等操作,为接下来的 Load/Store操作提供一定的便利。如对于一个大矩阵,本专利技术可以通过多维DMA传输的方式将它拆成多个小矩阵供给DSP进行处理。本专利技术的多维DMA传输可以通过配置多个参数进行简单的数据转换,一般一个多维DMA传输包含多个参数,除了第一维只存在一个Num参数外,其他各维都包含两个参数 Num和M印。Num表示包含多少个数据组,Step表示该维下每个数据组之间的距离。图1表示三维DMA传输的数据分布结构,如图所示,其中第一维有DlNum个数据, 第二维有D2Num个一维数据组,且一维数据组之间的距离为D2M印,第三维有D3Num个二维数据组,且二维数据组之间的距离为D3M印。本专利技术的多维DMA传输具有比较灵活的特性,既支持读写同维数下DMA传输的处理,也支持读写不同维数情况下的DMA传输的处理,适用于各种结构的DMA数据直接搬运和简单处理,大大增强了 DMA单元的功能。如图2和图3所示,图2表示了读过程中地址和数据参数的处理的行为级描述示例,图3表示了写过程中地址和数据参数的处理的行为级细节示例,其中均通过嵌套的For 语句循环方式表示了 DMA传输的具体过程。读控制器按照图2所示方式读取数据后放入控制器中的数据缓存中,当写控制器发现数据缓存中的数据时则进行该次写操作,地址根据图3所示结构进行细化处理,保证多维DMA传输的正确性。本专利技术在多维DMA传输过程中,对于高一维的DMA传输,它是以低一维的DMA传输过程为一个基本子过程,完成Num个起始地址进行等差偏移的子过程,如此反复嵌套直到完成最高维的DMA操作,即完成整个多维DMA传输。下面将详细描述本专利技术的具体实施方式,以展示本专利技术的各个具体构成部分和实现细节。图4所示为根据本专利技术的多维DMA传输装置的一个实施例,在该实施例中,该多维 DMA传输装置实施为一个DMA控制器,该DMA控制器包括读Buffer 400、数据FIFO 401、 写Buffer 402、读控制器403和写控制器404。其中,读Buffe本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:王东琳刘子君张星谢少林
申请(专利权)人:中国科学院自动化研究所
类型:发明
国别省市:

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

1
相关领域技术