数据搬运方法、装置及数据读操作与写操作的方法

文档序号:6602449阅读:157来源:国知局
专利名称:数据搬运方法、装置及数据读操作与写操作的方法
技术领域
本发明涉及数据搬运方法及装置,尤其涉及在SoC的搬运方法及装置。
背景技术
随着无线通信速率越来越高,无线终端的SoC (System on Chip的简写,片上系统) 中运行的协议栈所要处理的数据量将越来越大(如WCDMA的下行业务由HSDPA 7. 2Mbps 向HSPA+的21Mbps扩展时)。为了保证协议栈处理的实时性,SoC内部通常都针对数据处 理很大业务场景有硬件加速器,待处理的数据需要在多个硬件加速器和存储器之间频繁的 搬运,对SoC的系统性能造成很大压力。提高SoC的数据搬运能力的最传统方法就是使用 DMA (Direct Memory Access,直接存储器访问),专门处理数据的搬运和拷贝,在整个过程 中都不需要CPU(CentralProcessing Unit,中央处理器)的干预,从而释放CPU的处理能 力,提升SoC的处理性能。在AHB总线(Advanced High-Performance Bus,先进的高性能总线)架构的SoC 中,使用传统的DMA完成数据搬运需要配置好以下的寄存器参数才能开始工作,包括源、 目的地址、搬运数据总长度、突发传输数据类型、传输方向、流控机制的使用。经过上述设置之后,可以进行突发数据传输,在所述突发数据传输中,通过每个地 址的一次指定,以一批的形式传输两段以上的数据。由于SoC芯片内部有多个任务会同时进行工作,在配置DMA之前,需要根据系统负 载和需求,CPU计算要配置的DMA参数。配置和计算过程参看图1所示,包括步骤配置源、 目的地址和数据搬运长度;根据数据搬运长度计算突发操作类型,进行配置;根据源、目的 地址计算数据搬运的传输位宽,进行配置;选择从存储器到外设还是外设到存储器;配置 是否使用流控。发明人在实现本发明的过程中发现,现有技术至少有以下缺陷在传统DMA控制 器的所有配置参数中对性能有较大影响的是源、目的地址,搬运数据总长度,突发传输数 据类型。传统DMA所配置的参数都是固定的,而用于无线通信协议栈处理的S0C中,数据搬 运平凡、数据大小不等,地址排列灵活,配置计算量很大,而且固定的传输类型也不利于数 据搬运效率的提升和整体功耗的降低,所以不适合传统DMA操作。

发明内容
本发明实施例提供一种数据搬运方法,能够提高数据搬运效率。为解决上述技术问题,本发明实施例数据搬运方法采用如下技术方案一种数据搬运方法,包括步骤配置源地址、目的地址和每次搬运的数据长度;根据每次待搬运的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突 发读写数据长度最大的突发传输操作类型从源地址进行数据读取;将读取的所述数据进行暂存;
对暂存的数据,根据目的地址按字对齐后的读写指针位置差,按照16个字、8个 字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将数据写到字对 齐的目的地址。本发明实施例数据搬运方法,只需要配置源地址、目的地址和每次搬运的数据长 度,不需要计算搬运过程的控制信号,并且能够自动选择合适的突发操作长度,不需要计算 突发操作类型,节省每次配置的计算负载,提高了数据搬运的效率。本发明实施例还提供一种数据搬运装置,能够提高数据搬运效率。为解决上述技术问题,本发明实施例数据搬运装置采用如下技术方案一种数据搬运控制装置,包括读控制器,写控制器,以及与所述读控制器和写控制器相连的缓冲存储器;其中所述读控制器,用于接收读操作命令,根据每次待搬运的数据的长度,按照16个 字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型从源地址 进行数据读取;所述缓冲存储器,用于对所述读控制器读取的所述数据进行暂存;所述写控制器,用于接收写操作命令,根据目的地址按字对齐后的读写指针位置 差,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作 类型,将所述缓冲存储器中暂存的数据写到字对齐的目的地址。本发明实施例数据搬运装置,读控制器根据每次待搬运的数据的长度,按照16个 字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型从源地址 进行数据读取,写控制器则根据目的地址按字对齐后的读写指针位置差,按照16个字、8个 字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型,将所述缓冲存 储器中暂存的数据写到字对齐的目的地址。这样,自动选择合适的突发操作长度,不需要计 算突发操作类型,节省每次配置的计算负载,提高了数据搬运的效率。本发明实施例还提供一种读操作方法,能够提高数据读操作的效率。为解决上述技术问题,本发明实施例数据读操作方法采用如下技术方案一种数据读操作方法,包括步骤配置源地址和每次读取的数据长度;根据每次待读取的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突 发读写数据长度最大的突发传输操作类型从源地址进行数据读取。本发明实施例数据读操作方法,只需要配置源地址和每次搬运的数据长度,并且 能够自动选择合适的突发操作长度,不需要计算突发操作类型,节省每次配置的计算负载, 提高了数据读操作的效率。本发明实施例还提供一种写操作方法,能够提高数据写操作的效率。为解决上述技术问题,本发明实施例数据写操作方法采用如下技术方案一种数据写操作的方法,包括步骤配置目的地址和每次写操作的数据长度;对暂存的待写操作的数据,根据目的地址按字对齐后的读写指针位置差,按照16 个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将数据 写到字对齐的目的地址。
本发明实施例数据写操作方法,只需要配置目的地址和每次搬运的数据长度,并 且能够自动选择合适的突发操作长度,不需要计算突发操作类型,节省每次配置的计算负 载,提高了数据写操作的效率。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本 发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可 以根据这些附图获得其他的附图。图1为现有技术中数据搬运装置的配置过程示意图;图2为本发明实施例一数据搬运方法的流程示意图;图3为本发明实施例一数据搬运方法中数据读取过程中突发传输类型的选择过 程;图4为本发明实施例一数据搬运方法中数据写入过程中突发传输类型的选择过 程;图5所示为目的地址是2飞01时目的地址的word对齐过程示意图;图6所示为目的地址是2飞10时目的地址的word对齐过程示意图;图7所示为目的地址是2飞11时目的地址的word对齐过程示意图;图8所述为本发明实施例中缓冲存储器中数据移位示意图;图9为本发明实施例二中目的地址word对齐后,剩余的数据长度为28个bytes 的数据读操作过程;图10为本发明实施例二中目的地址word对齐后,剩余的数据长度为28个bytes 的数据写操作过程;图11为本发明实施例三提供的数据搬运装置结构方框图;图12为发明实施例四提供的数据搬运装置的结构方框图;图13为图12所示实施例四提供的数据搬运装置中读控制器的结构方框图;图14为图12所示实施例四提供的数据搬运装置中写控制器的结构方框图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他 实施例,都属于本发明保护的范围。实施例一如图2所示,本发明实施例数据搬运方法,包括步骤S11、配置源地址、目的地址和每次搬运的数据长度;S12、根据每次待搬运的数据的长度,按照16个字、8个字、4个字、1个字的顺序选 择突发读写数据长度最大的突发传输操作类型从源地址进行数据读取;S13、将读取的所述数据进行暂存;
S14、对暂存的数据,根据目的地址按字对齐后的读写指针位置差,按照16个字、8 个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将数据写到字 对齐的目的地址。在进行读操作时,根据源地址中剩余数据的长度选择尽量大的突发数据读的类 型。图3所示为步骤S12中突发传输类型的选择过程。参看图3所示,根据源地址中剩余 数据的长度选择尽量大的突发数据读的类型包括如下步骤判断剩余数据长度是否小于等于16个字,若判断结果为否,则发起突发操作类型 为16个字的传输,若判断结果为是,则进一步判断剩余数据长度是否小于等于8个字;判断剩余数据长度是否小于等于8个字,若判断结果为否,则发起突发操作类型 为8个字的传输,若判断结果为是,则进一步判断剩余数据长度是否小于等于4个字;判断剩余数据长度是否小于等于4个字,若判断结果为否,则发起突发操作类型 为4个字的传输,若判断结果为是,则进一步判断剩余数据长度是否小于等于1个字;判断剩余数据长度是否小于等于1个字,若判断结果为否,则发起突发操作类型 为1个字的传输。在进行写操作时,根据目的地址按字对齐后的读写指针位置差选择尽量大的突发 数据写的类型进行所述写操作。图4所示为S14中突发传输类型的选择过程。参看图4所 示,根据目的地址按字对齐后的读写指针位置差选择尽量大的突发数据写的类型包括如下 步骤判断读写指针位置差是否小于等于16个字,若判断结果为否,则发起突发操作类 型为16个字的传输,若判断结果为是,则进一步判断读写指针位置差是否小于等于8个 字;判断读写指针位置差是否小于等于8个字,若判断结果为否,则发起突发操作类 型为8个字的传输,若判断结果为是,则进一步判断读写指针位置差是否小于等于4个字;判断读写指针位置差是否小于等于4个字,若判断结果为否,则发起突发操作类 型为4个字的传输,若判断结果为是,则进一步判断读写指针位置差是否小于等于1个字;判断读写指针位置差是否小于等于1个字,若判断结果为否,则发起突发操作类 型为1个字的传输。本发明实施例数据搬运方法,只需要配置源地址、目的地址和每次搬运的数据长 度,不需要计算搬运过程的控制信号,并且能够自动选择合适的突发操作长度,不需要计算 突发操作类型,节省每次配置的计算负载,提高了数据搬运的效率。本发明实施例数据搬运方法分成两个过程读操作和写操作。在开始写数据的时候,根据目的地址的偏移情况,先完成目的地址的对齐。按照 地址的低两比特,可将地址偏移分为四种情况2飞00(表示目的地址的低两比特为00)、 2飞01 (表示目的地址的低两比特为01)、2飞10 (表示目的地址的低两比特为10)、2飞11 (表 示目的地址的低两比特为11)。其中,2飞00表示字(Word)对齐,2飞01和2飞11表示字节 (Byte)对齐,2飞10表示半字(half-Word)对齐。如果目的地址已经Word对齐,则不需要 再进行Word对齐处理;如果地址非Word对齐,则需要首先经过Word对齐处理,保证大多 数对外的访问是Word对齐的。其中2飞01、2飞10、2飞11表示目的地址是非word对齐的;
b00是word对齐的目的地址。其中byte是字节,表示段的开始地址为字节地址,1个字节等于8个位;word是字,表示段的开始地址为字地址,一个字占四个字节。下面根据非word对齐的三种情况,分别说明目的地址的word对齐过程。图5所示为目的地址是2飞01时目的地址的word对齐过程示意图。参看图5所 示,当目的地址是2飞01时,首先从源地址读入至少一个word的数据到内部缓冲存储器,把 所述至少一个字中的数据的字节O(byteO)按照byte地址对齐的方式写到addrl处,把所 述至少一个字中的数据的bytel,byte2按照half-word地址对齐的方式写到addr2处。其 中,所述addrl表示目的地址偏移为1,addr2表示目的地址偏移为2。相应地,addrO表示 目的地址偏移为0。图6所示为目的地址是2飞10时目的地址的word对齐过程示意图。参看图6所 示,当目的地址是2飞10时,首先从源地址读入至少一个word的数据到内部缓冲存储器,把 所述至少一个字中的数据的byteO,bytel按照half-word地址对齐的方式写到addr2处。图7所示为目的地址是2飞11时目的地址的word对齐过程示意图。参看图7所 示,当目的地址是2飞11时,首先从源地址读入至少一个word的数据到内部缓冲存储器,把 所述至少一个字中的数据的byteO按照byte地址对齐的方式写到addr3处。经过上述三种情况的地址操作后,目的地址就按照word对齐了,剩余不足一个 word的数据放在缓冲存储器中。当后续的读写数据控制均按照地址偏移word对齐发出突 发数据读写。每次突发数据读写的类型是1个字、4个字、8个字、16个字。读写控制器均按 照16个字-> 8个字-> 4个字- >个1字的顺序来选择突发传输的类型进行数据搬运。在进行读操作时,读控制器根据源地址中剩余数据的长度选择尽量大的突发数据 读的类型,每次读出来的数据先放到一个缓冲存储器中,并更新缓冲存储器的读指针和剩 余数据长度;在进行写操作时,写控制器根据读、写指针的位置差,计算出合适的写出的数 据量,并根据读、写指针的位置差选择选择尽量大的突发数据写的类型进行所述写操作,当 数据写出后再更新缓冲存储器的写指针和已搬运数据长度。在缓冲存储器中,采用先进先出(FIFO)的数据缓存方法。图8所示为本发明实施 例中缓冲存储器中数据移位示意图。因为在字对齐操作后,还剩余不足一个字的数据放在 缓冲存储器中。所以在每次按照word对齐读入数据后,把剩余数据和新读入的数据进行拼 接,并调整读指针的位置指向word对齐的地址,本次拼接完成后的剩余数据放入缓冲存储 器,等待下一次拼接。写控制器把每次拼接对齐后的数据发出后,在最后一次写时调整写指 针的位置把剩余的非word对齐的数据写出。在采用数据位宽为字的数据搬运之后,如果缓冲存储器中还有剩余数据,最后则 按照地址byte对齐的方式将所述剩余数据写到目的地址。实施例二下面以在无线终端SoC芯片中的数据搬运为例,对本发明实施例数据搬运方法进 行说明。在本实施例中,在无线终端SoC芯片中,一次HDLC(High_Level Data LinkControl,高层数据链路控制)处理要搬运的数据长度最大为3072bytes,需要配置数 据搬运为100次,平均每次搬运的数据量是31bytes左右。每次搬运的源地址是外部存储 设备,目的地址是HDLC的内部缓冲区,目的地址的偏移从2飞00-2飞11不等。考虑到目的地址字对齐需要1-3个bytes,因此目的地址word对齐后,剩余的数据长度在28-30个bytes之间。图9示出了目的地址word对齐后,剩余的数据长度为28个 bytes的数据读操作过程。从图9中可以看出,由于剩余数据长度为28个bytes,相当于7 个字(按照一个字占四个字节计算),因此发起突发操作类型为16和8的传输的次数均为 0次,发起突发操作类型为4的传输的次数为1次,发起突发操作类型为1的传输的次数为 3次。图10示出了目的地址word对齐后,剩余的数据长度为28个bytes的数据写操 作过程。写控制器选择突发传输类型依赖于目的地址对齐后的读写指针位置差。每次读 了一定数据后,读指针会指向新的地址,读写指针相减即构成位置差。将位置差经过16个 字一>8个字一>4个字一> 1个字的选择,得到发送数据的突发传输类型。从图10 中可以看出,发起突发操作类型为4的传输的次数为1次,发起突发操作类型为1的传输的 次数为3次。由上面的描述可知,在目的地址对齐的情况下,读操作的过程中,需要的突发传输 类型为4的次数是1,突发传输类型为1的次数是3 ;在写操作的过程,需要的突发传输类型 为4的次数是1,突发传输类型为1的次数是3。剩余非word对齐的数据按照byte对齐进 行搬运。在本实施例中,100次数据搬运均只需要配置源、目的地址和数据长度,不需要计 算搬运过程的控制信号。按照本实例中的配置,如果用传统DMA搬运方法配置成固定突发 操作长度时,需要多次计算分配不同的突发传输类型;本发明不需要计算突发操作的类型, 节省每次配置的计算负载,提高了数据搬运效率。此外,自动选择了合适的突发操作长度。因为无线通信协议栈处理的S0C每次搬 运的数据量较小,按照实例二中每次搬运仅为31个bytes。传统DMA搬运按照地址偏移的 不同,最多需要突发传输类型为个16字的次数是1,突发传输类型为4个字的次数是3,突 发传输类型为1个字的次数是3,最少需要突发传输类型为4个字的次数是1,突发传输类 型为1个字的次数是5并加上配置操作;本发明无需考虑地址偏移,需要突发传输类型为4 个字的次数是1,突发传输类型为1个字的次数是5。对比下来,本发明性能肯定会强于传 统DMA搬运,最多可以提升4倍。实施例三图11所示为本发明实施例提供的一种数据搬运装置结构方框图。参看图11所示, 本发明实施例数据搬运装置30,包括读控制器31,写控制器32,以及与所述读控制器和写 控制器相连的缓冲存储器33 ;其中所述读控制器31,用于接收读操作命令,根据每次待搬 运的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的 突发传输操作类型从源地址进行数据读取;所述缓冲存储器33,与所述读控制器相连,用 于对所述读控制器读取的所述数据进行暂存;所述写控制器32,用于接收写操作命令,根 据目的地址按字对齐后的读写指针位置差,按照16个字、8个字、4个字、1个字的顺序选择 突发读写数据长度最大的突发传输操作类型,将所述缓冲存储器中暂存的数据写到字对齐 的目的地址。本发明实施例数据搬运装置,读控制器根据每次待搬运的数据的长度,按照16个 字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型从源地址 进行数据读取,写控制器则根据目的地址按字对齐后的读写指针位置差,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型,将所述缓冲存 储器中暂存的数据写到字对齐的目的地址。这样,自动选择合适的突发操作长度,不需要计 算突发操作类型,节省每次配置的计算负载,提高了数据搬运的效率。实施例四图12为发明另一实施例数据搬运装置的结构方框图。参看图12所示,本发明施 例数据搬运装置30,包括读控制器31和读数据通路310,连接于AHB总线和缓冲存储器之 间,读控制器用于接收读操作命令,根据每次待搬运的数据的长度,按照16个字、8个字、4 个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型,通过所述读数据通路 从源地址进行数据读取;写控制器32和写数据通路320,连接与所述AHB总线和所述缓冲 存储器之间,写控制器用于接收写操作命令,根据目的地址按字对齐后的读写指针位置差, 按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类 型,通过所述写数据通路将所述缓冲存储器中暂存的数据写到字对齐的目的地址;缓冲存 储器33,用于对所述读控制器读取的数据进行暂存;设置寄存器34,用于在该设置寄存器 中设置数据搬运的源地址、目的地址和每次数据搬运的长度。当然,本发明实施例中,也可 以没有所述设置寄存器,在这种情况下,所述数据搬运的源地址、目的地址和每次数据搬运 的长度可以来自所述数据搬运装置外部的命令的输入;一条AHB总线35,该AHB总线用于 连接源地址和目的地址。本实施例中,连接源地址和目的地址的总线为一条,通过同一组信号访问同一条 总线,这样使得装置的结构较为简单。当然,本发明并不限于此,本发明的其他实施例中也 能够采用两条总线来实现,其中一条总线连接源地址,该条总线通过读控制器和读数据通 路与缓冲存储器相连,另一条总线与目的地址相连,该另一条总线通过写控制器和写数据 通路与所述缓冲存储器相连。参看图13所示,在上述数据搬运装置实施例中,进一步地,所述读控制器31包括 读操作命令接收单元311,用于接收读操作命令;第一突发传输操作类型选择单元312,用 于根据每次待搬运的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突发读写 数据长度最大的突发传输操作类型;读操作命令执行单元313,用于根据所述第一突发传 输操作类型选择单元所选择的突发传输操作类型,从源地址进行数据读取。参看图14所示,在上述数据搬运装置实施例中,进一步地,所述写控制器32包括 写操作命令接收单元321,用于接收写操作命令;第二突发传输操作类型选择单元322,用 于根据目的地址按字对齐后的读写指针位置差,按照16个字、8个字、4个字、1个字的顺序, 选择突发读写数据长度最大的突发传输操作类型;写操作命令执行单元323,用于根据所 述第二突发传输操作类型选择单元所选择的突发传输操作类型,将所述缓冲存储器中暂存 的数据写到字对齐的目的地址。其中,为了实现目的地址的对齐,所述读控制器还包括对齐数据读取子单元,用于 从源地址读取用于目的地址字对齐的至少一个字的数据;所述写控制器还包括对齐数据写 入子单元,用于根据目的地址的偏移情况,以及所述对齐数据读取子单元所读取的所述至 少一个字的数据,进行目的地址的字对齐。应当理解的是,本实施例中的读控制器和写控制器的内部结构也能够应用于上述 实施例一中。
实施例五本发明实施例提供一种读操作方法,包括步骤S51、配置源地址和每次读取的数据长度;S52、根据每次待读取的数据的长度,按照16个字、8个字、4个字、1个字的顺序选 择突发读写数据长度最大的突发传输操作类型从源地址进行数据读取。本发明实施例数据读操作方法,只需要配置源地址和每次搬运的数据长度,并且 能够自动选择合适的突发操作长度,不需要计算突发操作类型,节省每次配置的计算负载, 提高了数据读操作的效率。为了便于实现目的地址的字对齐处理,继而进行后续的写操作处理,在目的地址 为非字对齐的情况下,在所述配置源地址和每次搬运的数据长度之后,从源地址进行数据 读取之间还包括步骤S53、从源地址读取用于目的地址字对齐的至少一个字的数据。实施例六本发明实施例提供一种写操作方法,包括步骤S61、配置目的地址和每次写操作的数据长度;S62、对暂存的待写操作的数据,根据目的地址按字对齐后的读写指针位置差,按 照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将 数据写到字对齐的目的地址。本发明实施例数据写操作方法,只需要配置目的地址和每次搬运的数据长度,并 且能够自动选择合适的突发操作长度,不需要计算突发操作类型,节省每次配置的计算负 载,提高了数据写操作的效率。在目的地址为非字对齐的情况下,为了实现目的地址的字对齐处理,在所述配置 目的地址和每次搬运的数据长度之后,将数据写到字对齐的目的地址之间,所述方法还包 括S63 对每次搬运的数据的目的地址进行字对齐处理。具体地,所述对每次搬运的数据的 目的地址进行字对齐处理包括当目的地址是2飞01时,把暂存的至少一个字中的数据的byteO按照byte地址对 齐的方式写到addrl处,把暂存的至少一个字中的数据的bytel,byte2按照半字地址对齐 的方式写到addr2处;当目的地址是2飞10时,把把暂存的至少一个字中的数据的byteO,bytel按照 half-word地址对齐的方式写到addr2处;或者当目的地址是2飞11时,把把暂存的至少一个字中的数据的byteO按照byte地址 对齐的方式写到addr3。应当理解的是,虽然本发明实施例中以无线终端的SoC中数据的搬运为例对本发 明的数控搬运方法及装置进行了说明,但本发明并不限于此,本发明实施例的数控搬运方 法及装置也可应用于其它通信设备中数据的搬运。以上所述,仅为本发明的具体实施方式
,但本发明的保护范围并不局限于此,任何 熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵 盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
权利要求
一种数据搬运方法,其特征在于,包括步骤配置源地址、目的地址和每次搬运的数据长度;根据每次待搬运的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型从源地址进行数据读取;将读取的所述数据进行暂存;对暂存的数据,根据目的地址按字对齐后的读写指针位置差,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将数据写到字对齐的目的地址。
2.根据权利要求1所述的数据搬运方法,其特征在于,在所述配置源地址、目的地址和 每次搬运的数据长度之后,从源地址进行数据读取之间还包括步骤对每次搬运的数据的目的地址进行字对齐处理。
3.根据权利要求2所述的数据搬运方法,其特征在于,所述对每次搬运的数据的目的 地址进行字对齐处理包括当目的地址的低两比特是01时,从源地址读入至少一个字的数据并将该数据进行暂 存,把所述至少一个字中的数据的字节0按照字节地址对齐的方式写到addrl处,把所述至 少一个字中的数据的字节1,字节2按照半字地址对齐的方式写到addr2处;或者当目的地址的低两比特是10时,从源地址读入至少一个字的数据并将该数据进行暂 存,把所述至少一个字中的数据的字节0,字节1按照半字地址对齐的方式写到addr2处; 或者当目的地址的低两比特是11时,从源地址读入至少一个字的数据并将该数据进行暂 存,把所述至少一个字中的数据的字节0按照字节地址对齐的方式写到addr3。
4.根据权利要求2或3所述的数据搬运方法,其特征在于,对暂存的数据,根据目的地 址按字对齐后的读写指针位置差,按照16个字、8个字、4个字、1个字的顺序选择突发读写 数据长度最大的突发传输操作类型将数据写到字对齐的目的地址之后,还包括对剩余的 暂存数据按地址字节对齐的方式写到目的地址。
5.一种数据搬运控制装置,其特征在于,包括读控制器,写控制器,以及与所述读控制器和写控制器相连的缓冲存储器;其中 所述读控制器,用于接收读操作命令,根据每次待搬运的数据的长度,按照16个字、8 个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型从源地址进行 数据读取;所述缓冲存储器,用于对所述读控制器读取的所述数据进行暂存; 所述写控制器,用于接收写操作命令,根据目的地址按字对齐后的读写指针位置差,按 照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型, 将所述缓冲存储器中暂存的数据写到字对齐的目的地址。
6.根据权利要求5所述的数据搬运控制装置,其特征在于,所述读控制器包括 读操作命令接收单元,用于接收读操作命令;第一突发传输操作类型选择单元,用于根据每次待搬运的数据的长度,按照16个字、8 个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型;读操作命令执行单元,用于根据所述第一突发传输操作类型选择单元所选择的突发传输操作类型,从源地址进行数据读取。
7.根据权利要求5或6所述的数据搬运控制装置,其特征在于,所述写控制器包括写操作命令接收单元,用于接收写操作命令;第二突发传输操作类型选择单元,用于根据目的地址按字对齐后的读写指针位置差, 按照16个字、8个字、4个字、1个字的顺序,选择突发读写数据长度最大的突发传输操作类 型;写操作命令执行单元,用于根据所述第二突发传输操作类型选择单元所选择的突发传 输操作类型,将所述缓冲存储器中暂存的数据写到字对齐的目的地址。
8.根据权利要求7所述的数据搬运控制装置,其特征在于,所述读控制器还包括对齐 数据读取子单元,用于从源地址读取用于目的地址字对齐的至少一个字的数据;所述写控制器还包括对齐数据写入子单元,用于根据目的地址的偏移情况,以及所述 对齐数据读取子单元所读取的所述至少一个字的数据,进行目的地址的字对齐。
9.一种数据读操作方法,其特征在于,包括步骤配置源地址和每次读取的数据长度;根据每次待读取的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突发读 写数据长度最大的突发传输操作类型从源地址进行数据读取。
10.根据权利要求9所述的数据读操作方法,其特征在于,在所述配置源地址和每次搬 运的数据长度之后,从源地址进行数据读取之间还包括步骤从源地址读取用于目的地址字对齐的至少一个字的数据。
11.一种数据写操作的方法,其特征在于,包括步骤配置目的地址和每次写操作的数据长度;对暂存的待写操作的数据,根据目的地址按字对齐后的读写指针位置差,按照16个 字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将数据写 到字对齐的目的地址。
12.根据权利11所述的数据写操作的方法,其特征在于,在所述配置目的地址和每次搬运的数据长度之后,将数据写到字对齐的目的地址之 间,所述方法还包括对每次搬运的数据的目的地址进行字对齐处理。
13.根据权利12所述的数据写操作的方法,其特征在于,所述对每次搬运的数据的目 的地址进行字对齐处理包括当目的地址的低两比特是01时,把暂存的至少一个字的数据的字节0按照字节地址对 齐的方式写到addrl处,把暂存的至少一个字中的数据的字节1,字节2按照半字地址对齐 的方式写到addr2处;当目的地址的低两比特是10时,把暂存的至少一个字中的数据的字节0,字节1按照半 字地址对齐的方式写到addr2处;或者当目的地址的低两比特是11时,把暂存的至少一个字中的数据的字节0按照字节地址 对齐的方式写到addr3。
全文摘要
本发明实施例提供一种数据搬运的方法。装置及数据读操作与写操作的方法,为提高搬运效率而发明。数据搬运方法,包括步骤配置源地址、目的地址和每次搬运的数据长度;根据每次待搬运的数据的长度,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型从源地址进行数据读取;将读取的所述数据进行暂存;对暂存的数据,根据目的地址按字对齐后的读写指针位置差,按照16个字、8个字、4个字、1个字的顺序选择突发读写数据长度最大的突发传输操作类型将数据写到字对齐的目的地址。本发明适用于通信装置中的数据从源地址搬运到目的地址的场合。
文档编号G06F13/28GK101853229SQ20101017392
公开日2010年10月6日 申请日期2010年5月17日 优先权日2010年5月17日
发明者周飞, 张恂 申请人:华为终端有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1