CN105404587A - 一种数据搬移方法及装置 - Google Patents
一种数据搬移方法及装置 Download PDFInfo
- Publication number
- CN105404587A CN105404587A CN201410469257.1A CN201410469257A CN105404587A CN 105404587 A CN105404587 A CN 105404587A CN 201410469257 A CN201410469257 A CN 201410469257A CN 105404587 A CN105404587 A CN 105404587A
- Authority
- CN
- China
- Prior art keywords
- data
- moving
- interval
- granularity
- queue
- 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.)
- Granted
Links
Abstract
本发明公开一种数据搬移方法及装置,该方法包括:判断搬移队列中是否存在待搬移数据;若存在待搬移数据,统计待搬移数据的页面数量;确定页面数量所在数量区间;从存储的数量区间与数据搬移粒度间的映射关系中获取数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;针对待搬移数据按照数据搬移粒度执行一次搬移操作。实施本发明实施例,可以提高数据搬移的灵活性。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种数据搬移方法及装置。
背景技术
非易失性存储器包括多个物理块,每个物理块包括多个单元,每个单元的磨损次数都有上限值。当单元的磨损次数达到上限值时,该单元将为无效单元,对应的物理块也将为无效物理块,导致该非易失性存储器失效。因此,为了避免因某一物理块的失效导致非易失性存储器失效,采用磨损均衡算法使磨损次数均匀分布到不同的物理块上。磨损均衡算法包括动态磨损均衡和静态磨损均衡,其中,动态磨损均衡只处理动态数据,在数据进行改写时将触发数据搬移,静态磨损均衡可以处理静态数据,在后台任务发现某一物理块的磨损次数较低时,将该物理块上的数据搬移到其它物理块上。
非易失性存储器中包括写队列和搬移队列,其中,写队列中存储有中央处理器发送给非易失性存储器的写请求,搬移队列中存储有由于磨损均衡需要搬移的待搬移数据。写队列中的写请求的处理与搬移队列中的待搬移数据的搬移交叉执行,非易失性存储器将数据从一个物理块搬移到另一个物理块时,是以页为数据搬移粒度进行数据搬移的。由于数据搬移粒度固定为一页,因此,无法随着搬移队列中的待搬移数据的页面数量的变化而调整数据搬移粒度,降低了数据搬移的灵活性。
发明内容
本发明实施例公开一种数据搬移方法及装置,用于提高数据搬移的灵活性。
本发明实施例第一方面公开一种数据搬移方法,包括:
判断搬移队列中是否存在待搬移数据;
若存在待搬移数据,统计所述待搬移数据的页面数量;
确定所述页面数量所在数量区间;
从存储的数量区间与数据搬移粒度间的映射关系中获取所述数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;
针对所述待搬移数据按照所述数据搬移粒度执行一次搬移操作。
结合本发明实施例第一方面,在本发明实施例第一方面的第一种可能的实现方式中,所述判断搬移队列中是否存在待搬移数据之前,所述方法还包括:
将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度;
存储所述多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系。
结合本发明实施例第一方面或本发明实施例第一方面的第一种可能的实现方式,在本发明实施例第一方面的第二种可能的实现方式中,所述针对所述待搬移数据按照所述数据搬移粒度执行一次搬移操作之后,所述方法还包括:
判断写队列中是否存在写请求;
若存在写请求,处理位于所述写队列中的第一个写请求,处理完所述写请求之后,执行所述的判断搬移队列中是否存在待搬移数据的步骤。
本发明实施例第二方面公开一种数据搬移装置,包括:
第一判断单元,用于判断搬移队列中是否存在待搬移数据;
统计单元,用于当所述第一判断单元的判断结果为是时,统计所述待搬移数据的页面数量;
确定单元,用于确定所述统计单元统计的页面数量所在数量区间;
获取单元,用于从存储的数量区间与数据搬移粒度间的映射关系中获取所述确定单元确定的数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;
执行单元,用于针对所述待搬移数据按照所述获取单元获取的数据搬移粒度执行一次搬移操作。
结合本发明实施例第二方面,在本发明实施例第二方面的第一种可能的实现方式中,所述装置还包括:
划分单元,用于将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度;
存储单元,用于存储所述划分单元划分的多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系。
结合本发明实施例第二方面或本发明实施例第二方面的第一种可能的实现方式,在本发明实施例第二方面的第二种可能的实现方式中,所述装置还包括:
第二判断单元,用于判断写队列中是否存在写请求;
处理单元,用于当所述第二判断单元的判断结果为是时,处理位于所述写队列中的第一个写请求,处理完所述写请求之后,触发所述第一判断单元执行所述的判断搬移队列中是否存在待搬移数据的步骤。
本发明实施例中,可以根据搬移队列中待搬移数据的页面数量调整数据搬移粒度,可以提高数据搬移的灵活性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种数据搬移方法的流程图;
图2是本发明实施例公开的另一种数据搬移方法的流程图;
图3是本发明实施例公开的一种数据搬移装置的结构图;
图4是本发明实施例公开的另一种数据搬移装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例公开一种数据搬移方法及装置,用于提高数据搬移的灵活性。以下分别进行详细说明。
请参阅图1,图1是本发明实施例公开的一种数据搬移方法的流程图。其中,该数据搬移方法适用于相变存储器(PhaseChangeMemory,PCM)、阻变式存储器(ResistiveRandomAccessMemory,RRAM)、闪存(Flash)等非易失性存储器。如图1所示,该数据搬移方法可以包括以下步骤。
S101、判断搬移队列中是否存在待搬移数据。
S102、若存在待搬移数据,统计待搬移数据的页面数量。
相应地,若搬移队列中不存在待搬移数据,将判断写队列中是否存在写请求。
S103、确定该页面数量所在数量区间。
本实施例中,预先将待搬移数据的页面数量划分为多个数量区间并存储,因此,将该页面数量与存储的多个数量区间进行比对,以确定该页面数量所在数量区间。
S104、从存储的数量区间与数据搬移粒度间的映射关系中获取该数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度。
本实施例中,数量区间中的页面数量越大,对应的数据搬移粒度越大,数据搬移粒度最大为一页。当待搬移数据的页面数量变大时,将增大数据搬移粒度,以便快速搬移待搬移数据,为处理写操作提供存储空间,这是由于写操作需要在物理块的存储单元中写入数据,如果存储单元被占据,将无法执行写操作;当待搬移数据的页面数量变小时,将减小数据搬移粒度,以便能够及时查看写队列中的写请求并进行处理。
举例说明,假设根据待搬移数据的页面数量A1、A2、A3和A4将待搬移数据的页面数量划分为三个数量区间,其中,A1>A2>A3>A4。当页面数量在A1到A2数量区间时,数据搬移粒度为一页;当页面数量在A2到A3数量区间时,数据搬移粒度为0.5页;当页面数量在A3到A4数量区间时,数据搬移粒度为0.25页。
S105、针对待搬移数据按照该数据搬移粒度执行一次搬移操作。
本实施例中,获取到该数量区间对应的数据搬移粒度之后,将搬移队列中的待搬移数据搬移一个数据搬移粒度的数据。
在图1所描述的数据搬移方法中,可以根据搬移队列中待搬移数据的页面数量调整数据搬移粒度,可以提高数据搬移的灵活性。
请参阅图2,图2是本发明实施例公开的另一种数据搬移方法的流程图。其中,该数据搬移方法适用于PCM、RRAM、闪存(Flash)等非易失性存储器。如图2所示,该数据搬移方法可以包括以下步骤。
S201、将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度。
本实施例中,预先将待搬移数据的页面数量划分为多个数量区间,为每个数量区间分配区间唯一分配一个数据搬移粒度。
本实施例中,数量区间中的页面数量越大,对应的数据搬移粒度越大,数据搬移粒度最大为一页。当待搬移数据的页面数量变大时,将增大数据搬移粒度,以便快速搬移待搬移数据,为处理写操作提供存储空间,这是由于写操作需要在物理块的存储单元中写入数据,如果存储单元被占据,将无法执行写操作;当待搬移数据的页面数量变小时,将减小数据搬移粒度,以便能够及时查看写队列中的写请求并进行处理。
举例说明,假设根据待搬移数据的页面数量A1、A2、A3和A4将待搬移数据的页面数量划分为三个数量区间,其中,A1>A2>A3>A4。当页面数量在A1到A2数量区间时,数据搬移粒度为一页;当页面数量在A2到A3数量区间时,数据搬移粒度为0.5页;当页面数量在A3到A4数量区间时,数据搬移粒度为0.25页。
S202、存储该多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系,其中,不同的数量区间对应不同的数据搬移粒度。
S203、判断搬移队列中是否存在待搬移数据。
S204、若存在待搬移数据,统计待搬移数据的页面数量。
相应地,若搬移队列中不存在待搬移数据,将执行步骤S208。
S205、确定该页面数量所在数量区间。
S206、从存储的数量区间与数据搬移粒度间的映射关系中获取该数量区间对应的数据搬移粒度。
S207、针对待搬移数据按照该数据搬移粒度执行一次搬移操作。
S208、判断写队列中是否存在写请求。
本实施例中,写请求的处理和待搬移数据的搬移是交叉执行的,因此,在每次执行完一次搬移操作之后,将判断写队列中是否存在写请求。
S209、若存在写请求,处理位于写队列中的第一个写请求,处理完该写请求之后,执行步骤S203。
本实施例中,若写队列中存在写请求,将处理位于写队列中的第一个写请求,处理完该写请求之后,执行步骤S203。
相应地,若写队列中不存在写请求,将直接执行步骤S203。
在图2所描述的数据搬移方法中,可以根据搬移队列中待搬移数据的页面数量调整数据搬移粒度,可以提高数据搬移的灵活性。
请参阅图3,图3是本发明实施例公开的一种数据搬移装置的结构图。其中,该数据搬移装置可以为PCM、RRAM、闪存等非易失性存储器。如图3所示,该数据搬移装置300可以包括:
第一判断单元301,用于判断搬移队列中是否存在待搬移数据;
统计单元302,用于当第一判断单元301的判断结果为是时,统计待搬移数据的页面数量;
确定单元303,用于确定统计单元302统计的页面数量所在数量区间;
获取单元304,用于从存储的数量区间与数据搬移粒度间的映射关系中获取确定单元303确定的数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;
执行单元305,用于针对待搬移数据按照获取单元304获取的数据搬移粒度执行一次搬移操作。
作为一种可能的实施方式,该数据搬移装置300还可以包括:
划分单元306,用于将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度;
存储单元307,用于存储划分单元306划分的多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系。
具体地,获取单元304,用于从存储单元307存储的数量区间与数据搬移粒度间的映射关系中获取确定单元303确定的数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度。
作为一种可能的实施方式,该数据搬移装置300还可以包括:
第二判断单元308,用于判断写队列中是否存在写请求;
处理单元309,用于当第二判断单元308的判断结果为是时,处理位于写队列中的第一个写请求,处理完该写请求之后,触发第一判断单元301执行所述的判断搬移队列中是否存在待搬移数据的步骤。
具体地,执行单元305,用于针对待搬移数据按照获取单元304获取的数据搬移粒度执行一次搬移操作,执行完该操作之后,触发第二判断单元308判断写队列中是否存在写请求。
在图3所描述的数据搬移装置中,可以根据搬移队列中待搬移数据的页面数量调整数据搬移粒度,可以提高数据搬移的灵活性。
请参阅图4,图4是本发明实施例公开的另一种数据搬移装置的结构图。其中,该数据搬移装置可以为PCM、RRAM、闪存等非易失性存储器。如图4所示,该数据搬移装置400可以包括处理器401和存储器402,存储器402中存储有一组程序代码,处理器401用于调用存储器402中存储的程序代码执行以下操作:
判断搬移队列中是否存在待搬移数据;
若存在待搬移数据,统计待搬移数据的页面数量;
确定该页面数量所在数量区间;
从存储的数量区间与数据搬移粒度间的映射关系中获取该数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;
针对待搬移数据按照该数据搬移粒度执行一次搬移操作。
作为一种可能的实施方式,处理器401判断搬移队列中是否存在待搬移数据之前,处理器401还用于调用存储器402中存储的程序代码执行以下操作:
将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度;
存储该多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系。
作为一种可能的实施方式,针对待搬移数据按照该数据搬移粒度执行一次搬移操作之后,处理器401还用于调用存储器402中存储的程序代码执行以下操作:
判断写队列中是否存在写请求;
若存在写请求,处理位于写队列中的第一个写请求,处理完该写请求之后,执行所述的判断搬移队列中是否存在待搬移数据的步骤。
在图4所描述的数据搬移装置中,可以根据搬移队列中待搬移数据的页面数量调整数据搬移粒度,可以提高数据搬移的灵活性。
一个实施例中,本发明实施例进一步公开一种计算机存储介质,该计算机存储介质存储有计算机程序,当计算机存储介质中的计算机程序被读取到计算机时,能够使得计算机完成本发明实施例公开的数据搬移方法的全部步骤。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-OnlyMemory,ROM)、随机存取器(RandomAccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例所提供的数据搬移方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (6)
1.一种数据搬移方法,其特征在于,包括:
判断搬移队列中是否存在待搬移数据;
若存在待搬移数据,统计所述待搬移数据的页面数量;
确定所述页面数量所在数量区间;
从存储的数量区间与数据搬移粒度间的映射关系中获取所述数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;
针对所述待搬移数据按照所述数据搬移粒度执行一次搬移操作。
2.如权利要求1所述的方法,其特征在于,所述判断搬移队列中是否存在待搬移数据之前,所述方法还包括:
将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度;
存储所述多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系。
3.如权利要求1或2所述的方法,其特征在于,所述针对所述待搬移数据按照所述数据搬移粒度执行一次搬移操作之后,所述方法还包括:
判断写队列中是否存在写请求;
若存在写请求,处理位于所述写队列中的第一个写请求,处理完所述写请求之后,执行所述的判断搬移队列中是否存在待搬移数据的步骤。
4.一种数据搬移装置,其特征在于,包括:
第一判断单元,用于判断搬移队列中是否存在待搬移数据;
统计单元,用于当所述第一判断单元的判断结果为是时,统计所述待搬移数据的页面数量;
确定单元,用于确定所述统计单元统计的页面数量所在数量区间;
获取单元,用于从存储的数量区间与数据搬移粒度间的映射关系中获取所述确定单元确定的数量区间对应的数据搬移粒度,其中,不同的数量区间对应不同的数据搬移粒度;
执行单元,用于针对所述待搬移数据按照所述获取单元获取的数据搬移粒度执行一次搬移操作。
5.如权利要求4所述的装置,其特征在于,所述装置还包括:
划分单元,用于将搬移队列中的待搬移数据的页面数量划分为多个数量区间,每个数量区间被分配一个数据搬移粒度;
存储单元,用于存储所述划分单元划分的多个数量区间与对应的数据搬移粒度以获取数量区间与数据搬移粒度间的映射关系。
6.如权利要求4或5所述的装置,其特征在于,所述装置还包括:
第二判断单元,用于判断写队列中是否存在写请求;
处理单元,用于当所述第二判断单元的判断结果为是时,处理位于所述写队列中的第一个写请求,处理完所述写请求之后,触发所述第一判断单元执行所述的判断搬移队列中是否存在待搬移数据的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410469257.1A CN105404587B (zh) | 2014-09-15 | 2014-09-15 | 一种数据搬移方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410469257.1A CN105404587B (zh) | 2014-09-15 | 2014-09-15 | 一种数据搬移方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105404587A true CN105404587A (zh) | 2016-03-16 |
CN105404587B CN105404587B (zh) | 2018-09-07 |
Family
ID=55470085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410469257.1A Active CN105404587B (zh) | 2014-09-15 | 2014-09-15 | 一种数据搬移方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105404587B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
US20120233391A1 (en) * | 2009-08-12 | 2012-09-13 | Texas Memory Systems, Inc. | Efficient Reduction of Read Disturb Errors in NAND FLASH Memory |
CN103106045A (zh) * | 2012-12-20 | 2013-05-15 | 华为技术有限公司 | 数据迁移方法和系统、主机端设备 |
CN103914392A (zh) * | 2014-04-03 | 2014-07-09 | 深圳市硅格半导体有限公司 | 闪存的空块回收方法及装置 |
-
2014
- 2014-09-15 CN CN201410469257.1A patent/CN105404587B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120233391A1 (en) * | 2009-08-12 | 2012-09-13 | Texas Memory Systems, Inc. | Efficient Reduction of Read Disturb Errors in NAND FLASH Memory |
CN102073462A (zh) * | 2010-11-29 | 2011-05-25 | 华为技术有限公司 | 虚拟存储迁移方法、系统和虚拟机监控器 |
CN103106045A (zh) * | 2012-12-20 | 2013-05-15 | 华为技术有限公司 | 数据迁移方法和系统、主机端设备 |
CN103914392A (zh) * | 2014-04-03 | 2014-07-09 | 深圳市硅格半导体有限公司 | 闪存的空块回收方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105404587B (zh) | 2018-09-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9898212B1 (en) | Method and apparatus for selecting a memory block for writing data, based on a predicted frequency of updating the data | |
JP2017228287A5 (zh) | ||
EP2758882B1 (en) | Adaptive mapping of logical addresses to memory devices in solid state drives | |
JP6928616B2 (ja) | 共有機械学習データ構造 | |
CN115512754A (zh) | 用于执行损耗均衡操作的设备及方法 | |
US20190042089A1 (en) | Method of improved data distribution among storage devices | |
CN111159058B (zh) | 一种磨损均衡方法、装置及非易失性的存储设备 | |
US9582422B2 (en) | Hardware prefetcher for indirect access patterns | |
US10261918B2 (en) | Process running method and apparatus | |
US20220413919A1 (en) | User interface based page migration for performance enhancement | |
JP6167646B2 (ja) | 情報処理装置、制御回路、制御プログラム、および制御方法 | |
CN113760531A (zh) | 调度器、操作调度器的方法以及包括调度器的加速器设备 | |
CN109725835B (zh) | 用于管理盘阵列的方法、设备和计算机程序产品 | |
CN104572026A (zh) | 用于进行预取的数据处理方法和装置 | |
US20160085291A1 (en) | Power management in a storage compute device | |
US20150370635A1 (en) | Implementing enhanced wear leveling in 3d flash memories | |
CN105404587A (zh) | 一种数据搬移方法及装置 | |
JP6306548B2 (ja) | メモリー管理回路、記憶装置、メモリー管理方法、及びメモリー管理プログラム | |
JP6459784B2 (ja) | 並列計算機、マイグレーションプログラム、及び、マイグレーション方法 | |
CN111797390A (zh) | 程序运行方法、装置、电子设备及计算机可读存储介质 | |
CN105224346B (zh) | 目标函数定位方法及装置 | |
US11275523B2 (en) | Per cursor logical unit number sequencing | |
CN114371817A (zh) | 存储介质的数据读写方法、装置、设备及介质 | |
CN111124943A (zh) | 一种数据处理方法、装置、设备及存储介质 | |
KR102288876B1 (ko) | 처리용 독립적 및 종속적 동작 스케줄링 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20200421 Address after: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee after: HUAWEI TECHNOLOGIES Co.,Ltd. Address before: 301, A building, room 3, building 301, foreshore Road, No. 310053, Binjiang District, Zhejiang, Hangzhou Patentee before: Huawei Technologies Co.,Ltd. |