CN105589815B - 一种存储器间的数据搬移的方法 - Google Patents

一种存储器间的数据搬移的方法 Download PDF

Info

Publication number
CN105589815B
CN105589815B CN201610124558.XA CN201610124558A CN105589815B CN 105589815 B CN105589815 B CN 105589815B CN 201610124558 A CN201610124558 A CN 201610124558A CN 105589815 B CN105589815 B CN 105589815B
Authority
CN
China
Prior art keywords
data
length
source
place
virtual bus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610124558.XA
Other languages
English (en)
Other versions
CN105589815A (zh
Inventor
于礼斌
邱东伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Polytron Technologies Inc
Original Assignee
Beijing Polytron Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Polytron Technologies Inc filed Critical Beijing Polytron Technologies Inc
Priority to CN201610124558.XA priority Critical patent/CN105589815B/zh
Publication of CN105589815A publication Critical patent/CN105589815A/zh
Application granted granted Critical
Publication of CN105589815B publication Critical patent/CN105589815B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1041Resource optimization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1056Simplification

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

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

Description

一种存储器间的数据搬移的方法
技术领域
本发明涉及通信技术领域,特别涉及一种存储器间的数据搬移的方法。
背景技术
在通信系统中数据信息的基本单位为字节,用于数据存储的存储器宽度一般为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。
新的“已写数据长度”等于原“已写数据长度”加“源可读长度”与“宿可写长度”的最小值。
当“已写数据长度”小于”搬移数据长度”时,重复步骤2,3,4,否则此次数据搬移结束。
本发明存储器间的数据搬移的方法在数据搬移时,采用了虚拟总线的方式,将数据搬移动作由直接的源存储器到宿存储器改为从源存储器到虚拟总线,再由虚拟总线到宿存储器,对于宽度分别为N和M的源存储器和宿存储器,只需要处理N+M种情况,就可以完成任意N宽度源存储器数据到M宽度宿存储器的搬移。
本发明存储器间的数据搬移的方法对于宽度分别为N,M的源,宿存储器之间的数据搬移,现有的数据搬移技术或者需要处理NxM种可能情况,设计复杂消耗资源大,或者限定读写位置,对设计输入进行限制,缺少通用性,本发明通过引入虚拟总线技术,将NxM种可能情况的处理转变成了N+M种可能情况的处理,大大简化了设计并提高了通用性。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (2)

1.一种存储器间进行数据搬移的通用方法,其特征在于,包括:
设立一虚拟总线,该虚拟总线的宽度与源总线宽度一致,该虚拟总线用于作为源总线与宿之间的数据传输中介;
读源数据到虚拟总线,从源存储器中读取当前地址对应存储单元的N个数据,其中有效的数据地址从源读出位置到0,将源读出长度个数据写入到虚拟总线;
将虚拟总线的全部数据从高位开始写入到宿存储器当前地址对应的存储单元,写入位置从宿写入位置开始,当宿可写长度小于虚拟总线宽度时,虚拟总线数据写入长度为宿可写长度,其剩余数据不写入,将该剩余数据加入到后续的数据的头部,当虚拟总线读取后续的数据时,先将该剩余数据与后续的数据进行组合,并写入虚拟总线,当该虚拟总线或该宿存储器的可写入长度小于该剩余数据与后续的数据的组合,则仅读取部分该后续的数据并将未读取的该后续的数据作为剩余数据进行处理;
设源存储器的宽度为N,宿存储器的宽度为M;
当宿可写长度大于源可读长度时,源存储器读地址加1,宿存储器地址不变,新的源读出位置等于N,新的宿可写长度等于原宿可写长度减源可读长度;
当宿可写长度小于源可读长度时,源存储器读地址不变,宿存储器地址加1,新的源读出位置等于原源读出长度减宿可写长度,新的宿可写位置等于M;
当宿可写长度等于源可读长度时,源存储器和宿存储器地址均加1,源可读位置等于N,宿可写位置等于M;
新的已写数据长度等于原已写数据长度加源可读长度与宿可写长度的最小值;
当已写数据长度小于搬移数据长度时,继续进行数据搬移,否则此次数据搬移结束。
2.如权利要求1所述的存储器间进行数据搬移的通用方法,其特征在于,在源读出长度个数据写入到虚拟总线时,写入位置从虚拟总线的最高字节开始,当源读出长度小于虚拟总线长度时,虚拟总线剩余字节空间填0。
CN201610124558.XA 2016-03-04 2016-03-04 一种存储器间的数据搬移的方法 Active CN105589815B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610124558.XA CN105589815B (zh) 2016-03-04 2016-03-04 一种存储器间的数据搬移的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610124558.XA CN105589815B (zh) 2016-03-04 2016-03-04 一种存储器间的数据搬移的方法

Publications (2)

Publication Number Publication Date
CN105589815A CN105589815A (zh) 2016-05-18
CN105589815B true CN105589815B (zh) 2018-10-12

Family

ID=55929411

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610124558.XA Active CN105589815B (zh) 2016-03-04 2016-03-04 一种存储器间的数据搬移的方法

Country Status (1)

Country Link
CN (1) CN105589815B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5856989A (en) * 1996-08-13 1999-01-05 Hewlett-Packard Company Method and apparatus for parity block generation
CN1639700A (zh) * 2002-02-26 2005-07-13 罗伯特-博希股份公司 通过数据总线传输数据的方法
CN101853229A (zh) * 2010-05-17 2010-10-06 华为终端有限公司 数据搬运方法、装置及数据读操作与写操作的方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5856989A (en) * 1996-08-13 1999-01-05 Hewlett-Packard Company Method and apparatus for parity block generation
CN1639700A (zh) * 2002-02-26 2005-07-13 罗伯特-博希股份公司 通过数据总线传输数据的方法
CN101853229A (zh) * 2010-05-17 2010-10-06 华为终端有限公司 数据搬运方法、装置及数据读操作与写操作的方法

Also Published As

Publication number Publication date
CN105589815A (zh) 2016-05-18

Similar Documents

Publication Publication Date Title
US11010056B2 (en) Data operating method, device, and system
TW201413453A (zh) 資料儲存裝置以及快閃記憶體控制方法
CN109388582B (zh) 数据储存装置以及其数据抹除方法
US20080120456A1 (en) Method for flash memory data management
JP6763984B2 (ja) インフィニバンド(IB)上で仮想ホストバスアダプタ(vHBA)を管理およびサポートするためのシステムおよび方法、ならびに単一の外部メモリインターフェイスを用いてバッファの効率的な使用をサポートするためのシステムおよび方法
KR20170083963A (ko) 어레이 컨트롤러, 솔리드 스테이트 디스크, 및 데이터를 기록하기 위해 솔리드 스테이트 디스크를 제어하는 방법
CN101877666B (zh) 基于零拷贝方式的多应用程序报文接收方法和装置
US20110055430A1 (en) Method for establishing a communication channel between a host device and a memory device, associated memory device and controller thereof, and associated host device and host device application
CN108664577B (zh) 一种基于flash空闲区的文件管理方法及系统
KR20180126656A (ko) 데이터 저장 장치 및 그것의 동작 방법
CN105589815B (zh) 一种存储器间的数据搬移的方法
CN110007853B (zh) 一种Nandflash命令处理方法、装置、终端及存储介质
CN102270179B (zh) 用于cad系统的基于片元的数据存储和处理方法及其系统
CN104598453A (zh) 基于数据缓冲的数据迁移方法
JP2007233838A (ja) メモリシステムの制御方法
CN102520879A (zh) 基于优先级的文件信息存储方法、装置及系统
CN109597577A (zh) 一种处理nvme协议读写命令的方法、系统及相关装置
CN111897745B (zh) 一种数据存储方法、装置、电子设备及存储介质
US10331369B2 (en) Array control program, array control method, and array control apparatus
CN106528598B (zh) 一种链的管理方法及物理设备
CN109388593B (zh) 进行动态资源管理的方法、记忆装置及记忆装置的控制器
CN108196790B (zh) 数据管理方法、存储设备及计算机可读存储介质
CN101901191A (zh) 嵌入式系统多类内存管理方法及装置
JP2008033379A (ja) 不揮発性記憶装置
CN103577113A (zh) 一种存储单元访问方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100095 Beijing, China, the high road, No. 3, No. 9, building No. 1, layer 101, layer 201,, 2

Applicant after: BEIJING ZUOJIANG TECHNOLOGY CO.,LTD.

Address before: 100036 Beijing, Haidian District, Fu Cheng Road, No. 58 Xinzhou commercial building, No. 511

Applicant before: BEIJING ZUOJIANG TECHNOLOGY CO.,LTD.

Address after: 100036 Beijing, Haidian District, Fu Cheng Road, No. 58 Xinzhou commercial building, No. 511

Applicant after: BEIJING ZUOJIANG TECHNOLOGY CO.,LTD.

Address before: 100036 Beijing, Haidian District, Fu Cheng Road, No. 58 Xinzhou commercial building, No. 511

Applicant before: BEIJING ZUOJIANG TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant