一种存储器间的数据搬移的方法技术

技术编号:15103920 阅读:124 留言:0更新日期:2017-04-08 14:21
本发明专利技术公开了存储器间进行数据搬移的通用方法,其中,包括:设立一虚拟总线作为源总线与宿之间的数据传输中介;读源数据到虚拟总线;将虚拟总线的全部数据从高位开始写入到宿存储器当前地址对应的存储单元,写入位置从宿写入位置开始,当宿可写长度小于虚拟总线宽度时,虚拟总线数据写入长度为宿可写长度,其剩余数据不写入,将该剩余数据加入到后续的数据的头部,当虚拟总线读取后续的数据时,先将该剩余数据与后续的数据进行组合,并写入虚拟总线,当该虚拟总线或该宿的可写入长度小于该剩余数据与后续的数据的组合,则仅读取部分该后续的数据并将未读取的该后续的数据作为剩余数据进行处理。

【技术实现步骤摘要】

本专利技术涉及通信
,特别涉及一种存储器间的数据搬移的方法
技术介绍
在通信系统中数据信息的基本单位为字节,用于数据存储的存储器宽度一般为N个字节,在数据处理中,经常需要将一定长度的数据在不同存储器间进行搬移,被搬移数据在源存储器中的起始位置是随机的,在宿存储器中的写入起始位置也是随机的。通常情况下,数据搬移采用的方法是直接将数据从N宽度的源存储器中读出并写入到M宽度的宿存储器中,其每次处理需要处理将1到N个数据写入到1到M个位置的问题,共计NxM种选择。在逻辑设计中这需要消耗庞大的资源,同时设计也变得非常复杂,为了减少处理的复杂程度,实施者一般会限制数据在源,目的存储器中的起始位置,以减少处理中的变化种类。上述数据搬移方法或者需要处理NxM种不同的选择,使得设计复杂资源消耗严重,或者通过限定数据读写的起始位置,为特定需求定制特定的搬移模块,牺牲了设计的灵活性和通用性。
技术实现思路
本专利技术的目的是提供一种存储器间进行数据搬移的通用方法,适应任意的数据搬移。本专利技术的一种存储器间进行数据搬移的通用方法,其中,包括:设立一虚拟总线,该虚拟总线的宽度与源总线宽度一致,该虚拟总线用于作为源总线与宿之间的数据传输中介;读源数据到虚拟总线,从源存储器中读取当前地址对应存储单元的N个数据,其中有效的数据地址从源读出位置到0,将源读出长度个数据写入到虚拟总线;将虚拟总线的全部数据从高位开始写入到宿存储器当前地址对应的存储单元,写入位置从宿写入位置开始,当宿可写长度小于虚拟总线宽度时,虚拟总线数据写入长度为宿可写长度,其剩余数据不写入,将该剩余数据加入到后续的数据的头部,当虚拟总线读取后续的数据时,先将该剩余数据与后续的数据进行组合,并写入虚拟总线,当该虚拟总线或该宿的可写入长度小于该剩余数据与后续的数据的组合,则仅读取部分该后续的数据并将未读取的该后续的数据作为剩余数据进行处理。根据本专利技术的存储器间进行数据搬移的通用方法的一实施例,其中,在源读出长度个数据写入到虚拟总线时,写入位置从虚拟总线的最高字节开始,当源读出长度小于虚拟总线长度时,虚拟总线剩余字节空间填0。根据本专利技术的存储器间进行数据搬移的通用方法的一实施例,其中,设源存储器的宽度为N,宿存储器的宽度为M;当宿可写长度大于源可读长度时,源存储器读地址加1,宿存储器地址不变,新的源读出位置等于N,新的宿可写长度等于原宿可写长度减源可读长度;当宿可写长度小于源可读长度时,源存储器读地址不变,宿存储器地址加1,新的源读出位置等于原源读出长度减宿可写长度,新的宿可写位置等于M;当宿可写长度等于源可读长度时,源存储器和宿存储器地址均加1,源可读位置等于N,宿可写位置等于M;新的已写数据长度等于原已写数据长度加源可读长度与宿可写长度的最小值;当已写数据长度小于搬移数据长度时,继续进行数据搬移,否则此次数据搬移结束。本专利技术存储器间的数据搬移的方法对于宽度分别为N,M的源,宿存储器之间的数据搬移,现有的数据搬移技术或者需要处理NxM种可能情况,设计复杂消耗资源大,或者限定读写位置,对设计输入进行限制,缺少通用性,本专利技术通过引入虚拟总线技术,将NxM种可能情况的处理转变成了N+M种可能情况的处理,大大简化了设计并提高了通用性。附图说明图1所示为本专利技术存储器间的数据搬移的方法的流程图。具体实施方式为使本专利技术的目的、内容、和优点更加清楚,下面结合附图和实施例,对本专利技术的具体实施方式作进一步详细描述。图1所示为本专利技术存储器间的数据搬移的方法的流程图,如图1所示,在本专利技术存储器间的数据搬移的方法中,在源和宿之间建立一条虚拟总线,虚拟总线宽度与源总线宽度一致。数据的搬移不是直接由源到宿,而是首先从源到虚拟总线,再从虚拟总线到宿。为了便于描述,假设源存储器宽度N,虚拟总线宽度N,宿存储器宽度为M,数据的存储采用大端方式,即数据从存储单元高位字节开始存储,存储单元内字节编号从0开始。如图1所示,本专利技术的存储器间进行数据搬移的通用方法包括下列步骤:(1)初始化数据搬移参数,源读出位置,源读出长度,宿写入位置,宿可写长度,搬移数据长度,已写数据长度。源读出位置:数据在源存储器当前地址对应的存储单元内的起始位置(在一个存储单元内,有效数据开始的位置)。源读出长度:数据在源存储器当前地址对应的存储单元内可读取的数据长度,等于“源读出位置+1”(有效数据的长度)。宿写入位置:数据写入到宿存储器当前地址对应存储单元内的起始位置。宿可写长度:存储器当前地址对应存储单元内能够被写入的数据长度,等于“宿写入位置+1”。搬移数据长度:待搬移数据的总长度(即多个存储单元的数据的总长度)。已写数据长度:每次写入宿存储器时对实际写入数据长度进行累加,初始值为0。(2)读源数据到虚拟总线,从源存储器中读取当前地址对应存储单元的N个数据,其中有效的数据地址从“源读出位置”到0,将这“源读出长度”个数据写入到虚拟总线,写入位置从虚拟总线的最高字节开始。当“源读出长度”小于虚拟总线长度时,虚拟总线剩余字节空间填0。(3)虚拟总线写到宿存储器,将虚拟总线的全部数据从高位开始写入到宿存储器当前地址对应的存储单元,写入位置从“宿写入位置”开始,当“宿可写长度”小于虚拟总线宽度时,虚拟总线数据写入长度为“宿可写长度”,其剩余数据不写入。将该剩余数据加入到后续的数据的头部,当虚拟总线读取后续的数据时,先将该剩余数据与后续的数据进行组合,并写入虚拟总线,当该虚拟总线或该宿的可写入长度小于该剩余数据与后续的数据的组合,则仅读取部分该后续的数据并将未读取的该后续的数据作为剩余数据,按照上述步骤进行处理。(4)参数更新。当“宿可写长度”大于“源可读长度”时,源存储器读地址加1,宿存储器地址不变,新的“源读出位置”等于N,新的“宿可写长度”等于原“宿可写长度”减“源可读长度”。当“宿可写长度”小于“源可读长度”时,源存储器读地址不变,宿存储器地址加1,新的“源读出位置”等于原“源读出长度”减“宿可写长度”,新的“宿可写位置”等于M。当二者相等时,源、宿存储器地址均加1,“源可读位置”等于N,“宿可写位置”等于M。新的“已写数据长度”等于原“已写数据长度”加“源可读长度”与“本文档来自技高网...
一种存储器间的数据搬移的方法

【技术保护点】
一种存储器间进行数据搬移的通用方法,其特征在于,包括:设立一虚拟总线,该虚拟总线的宽度与源总线宽度一致,该虚拟总线用于作为源总线与宿之间的数据传输中介;读源数据到虚拟总线,从源存储器中读取当前地址对应存储单元的N个数据,其中有效的数据地址从源读出位置到0,将源读出长度个数据写入到虚拟总线;将虚拟总线的全部数据从高位开始写入到宿存储器当前地址对应的存储单元,写入位置从宿写入位置开始,当宿可写长度小于虚拟总线宽度时,虚拟总线数据写入长度为宿可写长度,其剩余数据不写入,将该剩余数据加入到后续的数据的头部,当虚拟总线读取后续的数据时,先将该剩余数据与后续的数据进行组合,并写入虚拟总线,当该虚拟总线或该宿的可写入长度小于该剩余数据与后续的数据的组合,则仅读取部分该后续的数据并将未读取的该后续的数据作为剩余数据进行处理。

【技术特征摘要】
1.一种存储器间进行数据搬移的通用方法,其特征在于,包括:
设立一虚拟总线,该虚拟总线的宽度与源总线宽度一致,该虚拟
总线用于作为源总线与宿之间的数据传输中介;
读源数据到虚拟总线,从源存储器中读取当前地址对应存储单元
的N个数据,其中有效的数据地址从源读出位置到0,将源读出长度
个数据写入到虚拟总线;
将虚拟总线的全部数据从高位开始写入到宿存储器当前地址对
应的存储单元,写入位置从宿写入位置开始,当宿可写长度小于虚拟
总线宽度时,虚拟总线数据写入长度为宿可写长度,其剩余数据不写
入,将该剩余数据加入到后续的数据的头部,当虚拟总线读取后续的
数据时,先将该剩余数据与后续的数据进行组合,并写入虚拟总线,
当该虚拟总线或该宿的可写入长度小于该剩余数据与后续的数据的
组合,则仅读取部分该后续的数据并将未读取的该后续的数据作为剩
余数据进行处理。
2.如权利要求1所述的存储器间进行数据搬移的通用方法,其

【专利技术属性】
技术研发人员:于礼斌邱东伟
申请(专利权)人:北京左江科技有限公司
类型:发明
国别省市:北京;11

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

1