CN114281242B - 存储器负载均衡的方法、装置和设备 - Google Patents
存储器负载均衡的方法、装置和设备 Download PDFInfo
- Publication number
- CN114281242B CN114281242B CN202111350400.1A CN202111350400A CN114281242B CN 114281242 B CN114281242 B CN 114281242B CN 202111350400 A CN202111350400 A CN 202111350400A CN 114281242 B CN114281242 B CN 114281242B
- Authority
- CN
- China
- Prior art keywords
- storage area
- key value
- data
- tree
- ordering structure
- 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
Links
- 230000015654 memory Effects 0.000 title claims abstract description 77
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000000605 extraction Methods 0.000 claims description 14
- 238000012163 sequencing technique Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 abstract description 10
- 238000013461 design Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 description 20
- 238000004590 computer program Methods 0.000 description 7
- 238000005192 partition Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000007726 management method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
本发明实施例提供一种存储器负载均衡的方法、装置和设备,属于芯片存储领域。方法包括:根据每个存储区域的存储情况、擦除次数及地址,分别建立已用的树形排序结构和空闲的树形排序结构;当有数据需要被写入时,从已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值;从空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值;以及比较第一关键值和第二关键值,判断第一关键值对应的存储区域内的数据是否需要均衡到第二关键值对应的存储区域。该方法可以均衡存储器的负载,对于不经常修改的冷数据区域也参与到轮转过程,在实际使用中能达到设计目标的擦写次数从而保证了存储器的有效寿命。
Description
技术领域
本发明涉及芯片存储领域,具体地涉及一种存储器负载均衡的方法、装置和设备。
背景技术
存储器的读写是以页、块或扇区为单位来进行,寿命取决于页、块或扇区的擦写次数。目前主要有两种技术方案实现擦写的均衡。方案一:采用顺序轮转均衡方式,将整个存储器划分为数据均衡存储区和控制区。数据均衡存储区,用于存储高频更新文件;控制区用于当接收到外部设备高频更新文件数据操作指令时,从均衡区中轮询有效区域(页、块或扇区),根据高频更新文件数据操作指令对有效区域进行数据文件操作。方案二:存储器记录区域(页、块或扇区)擦写次数,建立顺序链表结构管理存储区。增加、查找、删除时需要顺序比对链表各元素的擦写次数,选择擦写次数较少的区域使用。
本申请发明人在实现本发明的过程中发现,现有技术的上述方案具有以下缺陷:对于方案一,顺序轮转,该方案并未记录存储器各区域(页、块或扇区)的擦写次数,仅能保证负载的大致均衡,一个新释放出的存储区域与其他空闲存储区域有相同的几率被轮询使用到,而与该存储区域自身的擦写次数无关,这种方案可能会造成某些存储区域擦写次数过多或过少,没有达到擦写完全均衡的效果;对于方案二,缺点在于当管理的分区高于8个时对链表元素的增加、删除、查找中比对操作更多,消耗时间长,影响执行效率,不适用于管理多分区数据。另外上述两种方案对于不经常修改的冷数据区域无法参与到轮转过程,造成实际使用中不能达到设计目标的擦写次数。
发明内容
本发明实施例的目的是提供一种存储器负载均衡的方法和装置,可以均衡存储器的负载,高效地进行数据读写的操作,对于不经常修改的冷数据区域也参与到轮转过程,在实际使用中能达到设计目标的擦写次数从而保证了存储器的有效寿命。
为了实现上述目的,本发明实施例一方面提供存储器负载均衡的方法,包括:根据每个存储区域的存储情况、擦除次数及相应的存储区域的地址,分别建立已用的树形排序结构和空闲的树形排序结构;当有数据需要被写入时,从所述已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值;从所述空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值;以及比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域。
可选的,所述存储区域包括:每页数据的标志区和对应的数据区,其中所述标志区用于记录所述数据的擦除次数及相应的存储区域的地址。
可选的,所述第一关键值的生成包括:从所述已用的树形排序结构中查找出的擦除次数最少的存储区域,提取存储器中该区域的物理地址A1和存储器的起始地址A2;从所述已用的树形排序结构的该存储区域中提取单个存储区域大小A3;从所述已用的树形排序结构的该存储区域中提取擦除次数N1;通过(A1-A2)/A3得到所述已用的树形排序结构的该存储区域的计算地址M1;根据所述N1和所述M1,得到所述第一关键值。
可选的,所述第二关键值的生成包括:从所述空闲的树形排序结构中查找出的擦除次数最少的存储区域,提取存储器中该区域的物理地址B1和存储器的起始地址B2;从所述空闲的树形排序结构的该存储区域中提取单个存储区域大小B3;从所述空闲的树形排序结构的该存储区域中提取擦除次数N2;通过(B1-B2)/B3得到所述空闲的树形排序结的存储区域的计算地址M2;根据所述N2和所述M2,得到所述第二关键值。
可选的,所述存储区域的地址为物理地址。
可选的,比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域,包括:如果所述第二关键值>所述第一关键值+阈值,则所述第一关键值对应的存储区域的数据搬移到所述第二关键值对应的存储区域;更新所述已用的树形排序结构和所述空闲的树形排序结构;将所述需要被写入的数据写入到所述关键1值对应的存储区域。
可选的,比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域,包括:如果所述第二关键值≤所述第一关键值+阈值,则所述第一关键值对应的存储区域的数据不搬移到所述第二关键值对应的存储区域;输出所述第二关键值对应的所述存储区域地址;将所述需要被写入的数据写入到所述第二关键值对应的存储区域。
通过上述技术方案,在存储区域内记录擦除次数,利用树形排序结构均衡存储器负载,树形排序结构以红黑树为例,根据红黑树的特性一次插入最多进行三次旋转或变色即可达到近似平衡状态,查询操作耗时随着存储分区的增加,相比于链表均衡的方法,利用树形结构均衡负载的效率明显更高。
另一方面,本发明提供一种用于存储器负载均衡的装置,包括:第一建模模块,用于根据每个存储区域的存储情况、擦除次数及地址,建立已用的树形排序结构;第二建模模块,用于根据每个存储区域的存储情况、擦除次数及地址,建立空闲的树形排序结构;第一查找模块,用于当有数据需要写入时,从所述已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值;第二查找模块,用于当有数据需要写入时,从所述空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值;比较判断模块,用于比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的所述储存存储区域。
可选的,所述第一查找模块包括:第一提取模块,用于从所述已用的树形排序结构中查找出的擦除次数最少的存储区域,提取物理地址A1和存储器的起始地址A2;第二提取模块,用于从所述已用的树形排序结构的该存储区域中提取所述单个存储区域大小A3;第三提取模块,用于从所述已用的树形排序结构的该存储区域中提取擦除次数N1;第一计算模块,用于通过(A1-A2)/A3得到所述已用的树形排序结构的该存储区域的计算地址M1;第一生成模块,用于根据所述N1和所述M1,得到所述第一关键值。
可选的,所述第二查找模块包括:第四提取模块,用于从所述空闲的树形排序结构中查找出的擦除次数最少的存储区域,提取物理地址B1和存储器的起始地址B2;第五提取模块,用于从所述空闲的树形排序结构的该存储区域中提取单个存储区域大小B3;第六提取模块,用于从所述空闲的树形排序结构的该存储区域中提取擦除次数N2;第二计算模块,用于通过(B1-B2)/B3得到所述空闲的树形排序结的存储区域的计算地址M2;第二生成模块,用于根据所述N2和所述M2,得到所述第二关键值。
可选的,轮换模块,用于当所述第二关键值>所述第一关键值+阈值时,则所述第一关键值对应的存储区域的数据搬移到所述第二关键值对应的存储区域;更新模块,用于更新所述已用的树形排序结构和所述空闲的树形排序结构。
可选的,所述装置包括:输出模块,用于当所述第二关键值≤所述第一关键值+阈值时,则所述第一关键值对应的存储区域的数据不需要搬移到所述第二关键值对应的存储区域,则将数据写入到所述第二关键值对应的所述存储区域地址。
另一方面,本发明提供设备,该设备包括处理器和存储器,上述装置作为程序单元存储在所述存储器中,并且所述处理器执行程序时实现上述存储器负载均衡的方法。
可选的,所述设备为芯片。
通过上述技术方案,相比于链表管理方案,树形排序结构以红黑树为优选实施例,根据红黑树的特性一次插入最多进行三次旋转或变色即可达到近似平衡状态,高效地进行树形结构节点的增加、删除和查找操作,对于不经常修改的冷数据区域也参与到轮转过程,从而在实际使用中能达到设计目标的擦写次数。
本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:
图1是本发明的存储器负载的均衡方法的流程图。
图2是根据本发明的每块Flash包含页的结构示意图。
图3a是本发明的生成关键值的示意图。
图3b是本发明的根据数据节点建立空闲的树形排序结构的示意图。
图4是本发明的根据数据建立空闲的树形排序结构的删除或增加节点的示意图。
图5是本发明的判断待更新的空闲区域是否需要均衡的逻辑判断图。
图6是本发明的装置模块图。
图7是本发明的查找模块的示意图。
具体实施方式
以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。
图1是本发明的存储器负载的均衡方法的流程图。
参见图1,在S101,根据每个存储区域的存储情况、擦除次数及地址,分别建立已用的树形排序结构和空闲的树形排序结构。擦除次数记录的起始范围是在程序第一次执行时(或者出厂设置为起点),将每一个flash区域擦除后标记当前的擦除次数,初始状态可以是1或某个固定值。
根据实施例,FLASH中擦除操作可以页为单位进行,也可以以块为单位进行,本例以常见的每块flash包含8页的结构作为示例,适用于其他相似结构。本方法擦除采用块擦除方式,在数据写入时将每页数据分为两个区域:1.标志区2.数据区。
在S103,当有数据需要被写入时,从所述已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值。
在S105,从所述空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值。
根据实施例,在标志区域取2.5字节用于记录该块flash的擦除次数,举例而言,利用红黑树排序,将擦除次数及相应的flash块地址作为红黑树的KEY值,分别建立已用flash的红黑树和空闲flash的红黑树。
在S107,比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域。其中,所述存储区域的地址为物理地址。
根据实施例,比较结果有两种结果:
(i)如果第二关键值(KEY2)大于第一关键值(KEY1)+阈值(比如10000),则说明KEY1对应flash块的冷数据很久没有更新过,(a)数据需要均衡到该块,将KEY1对应的数据搬移到KEY2对应的flash块,(b)并更新已用红黑树和空闲红黑树;
(ii)如果KEY2小于等于KEY1+阈值(比如10000),则数据不需要均衡到该块,直接将数据写入到KEY2对应的flash块地址。
本方法适用范围不限于FLASH、EEPROM等各类存储器,仅以FLASH举例进行说明。树形排序结构包括二叉树、平衡二叉树、红黑树等,其中红黑树的性能最稳定,本方法优选仅以红黑树举例说明。
通常,热数据是需要被计算节点频繁访问的在线类数据;冷数据是对于离线类不经常访问的数据(比如企业备份数据、业务与操作日志数据、话单与统计数据等)。两个不同的访问频次,就导致了在数据库搭建的各自不同。热数据因为访问频次需求大,效率要求高,所以就近计算和部署;冷数据访问频次低,效率要求慢,可以做集中化部署。而基于大规模存储池里,可以对数据进行压缩、去重等降低成本的方法。
图2是根据本发明的每块Flash包含页的结构示意图。
参见图2,为了建立已用的和空闲的树形排序结构,就需要将写入数据分类。
通常,每个Flash(闪存,全名叫Flash EEPROM Memory)由块阵列组成,每一个块就是一系列的名为页(page)的存储单元的集合。在将数据写入Flash的存储单元之前,必须对该存储单元进行擦除,以便可以进行写入。那么,最小的写入或者读取单元是page(页)。在本发明中,每个存储区域的存储情况块单元可以分成两种类型:已用块和空闲块。其中的每个bit代表本块组中的一个块,当检索识别出bit为1表示该块已用,检索识别出bit为0表示该块空闲可用。那么对应地,已用的树形排序结构根据已用块中数据的物理地址被建立,同样地,空闲的树形排序结构根据空闲块中数据的物理地址被建立。由于擦除和写入的动态进行,相应地,已用的树形排序结构和空闲的树形排序结构也是动态的。
根据实施例,擦除操作可以以页为单位进行,也可以以块为单位进行,操作系统经常与内存和硬盘这两种存储设备进行通信,类似于“块”的概念,都需要一种虚拟的基本单位。所以,与内存操作,是虚拟一个页的概念来作为最小单位。与硬盘打交道,以块为最小单位。结合图2,Flash包含8页的结构作为示例,该物理块共有8个页(201-208),包含4个逻辑页,有效数据共496*4字节,适用于其他相似结构。本方法中的擦除采用块擦除的方式,在数据写入时将每页数据分为两个区域:标志区和数据区。数据被写入到标志区和对应的数据区(如图所示,实际数据496字节),其中所述标志区用于记录数据的擦除次数(如图所示,块擦写次数)及相应的存储区域的地址(如图所示,标记1到标记5中的一者)。存储区域的地址为物理地址。举例而言,在标志区域取2.5字节用于记录该flash的擦写次数。
图3a是本发明的生成关键值的示意图。
图3b是本发明的根据数据节点建立空闲的树形排序结构的示意图。
参见图3a,由于需要根据擦除次数及相应的存储区域的地址,来分别建立已用的树形排序结构和空闲的树形排序结构,因此,需要对应关键值作为结点(Node),来表示树中的数据元素,该元素由数据项和数据元素之间的关系组成。
根据实施例,所述关键值(KEY值)的生成包括:
从所述空闲的树形排序结构中的存储区域提取物理地址和存储器的起始地址;
从所述空闲的树形排序结构的该存储区域提取单个存储区域大小;
从所述空闲的树形排序结构的该存储区域提取对应的擦除次数;
通过(物理地址-物理地址的起始地址)/存储区域大小,得到所述存储区域的物理块号,也就是该区域的计算地址;
根据该区域的计算地址和对应的擦除次数,得到所述关键值。
举例而言,提取的物理块号和擦写次数的十六进制,如物理地址为0x18010000,其对应的存储器的起始地址为0x18000000,对应的块的大小为0x1000,那么物理块号为(0x18010000-0x18000000)/0x1000=0x010。提取的该块的擦写次数为0x10550,那么关键值(KEY值)为0x10550010,如图3a中的301。同理得出图3示实施例的其余4个块的关键值0x10086011、0x10520016、0x10550018和0x11020019。利用上述的关键值就可以建立空闲的树形排序结构,如红黑树,如图3b中所示。已用的树形排序结构的建立同上,从所述已用的树形排序结构中的存储区域提取相对应的数据计算关键值在此不赘述。
通过上述的构建树形排序结构(例如红黑树结构)方法,其过程包括标记擦写次数,利用树形排序结构的特性进行排序、查找和比较,选择出擦写次数最少的存储区域。
图4是本发明的根据数据建立空闲树排序结构的删除或增加节点的示意图。
参见图4,结合图3b,根据实施例,当正常情况下,有数据需要写入时,需要选择出一个擦次数最少的节点,将数据写入;首先从空闲的树形排序结构中选择出擦除次数最少的节点并删除(从已用树选择节点及比较过程未展示),将新数据(不一定是整页数据,可能只有几字节)及存储在已用树的旧数据合并写入到选择出的空闲节点,此时已用树中存储原有旧数据的节点已经无效了,需要将该节点增加到空闲树中。更新空闲红黑树的排序结构,在该空闲树形结构(a)中需要增加一个节点。例如,选择出擦除次数最少的节点为10086011节点,将其删除后,更新的空闲红黑树结构如(b)所示。在空闲树中增加节点是因为数据从已用块区域,搬移到空闲块区域后,因此需要将旧节点增加到空闲树中,基于空闲红黑树如(b)所示,例如,在红黑树的排序结构中增加10550017节点后,更新的红黑树如(c)所示。红黑树添加或删除节点的理论方法可由本领域技术人员习得。根据红黑树的特性:从根节点到最远的叶子节点的路径长与到最近的叶子节点的路径长度相差不会超过2倍,因为红黑树是近似平衡的。另外,插入、删除和查找操作与树的高度成正比,所以红黑树的最坏情况,效率仍然很高。
相比于链表管理方案,树形排序结构以红黑树为例,根据红黑树的特性一次插入最多进行三次旋转或变色即可达到近似平衡状态(没有必要达到平衡二叉树的完全平衡),查询操作耗时为O(log n)(O():单次比对操作耗时n:存储分区数),而链表结构查询操作耗时平均为O(n/2),随着存储分区的增加,树形结构管理方案的效率明显更高。也就是说,通过利用已用的和空闲的树型排序结构查找擦除次数最少的存储区域的时间比传统链表结构查询耗时更少,效率更高,而在可用的树形结构中,树形排序结构包括但不限于二叉树、平衡二叉树、红黑树等,其中红黑树在增加、删除和查询操作用时平均,性能最佳。
图5是本发明的判断待更新的空闲区域是否需要均衡的逻辑判断图。
参见图5,根据实施例,在S501,当有数据需要写入时,根据常规存储方法找到要更新的空闲块。
在S503,从已用的树形排序结构中查找出擦除次数最少的存储区域,获取生成对应的第一关键值,简言之,从已用红黑树找到擦写次数最少的FLASH块,对应KEY1(key值1);从空闲的树形排序结构中查找出擦除次数最少的存储区域,获取生成对应的第二关键值,简言之,从空闲红黑树找到擦书次数最少的FLASH块,对应KEY2(key值2)。
在S505,比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域。具体地,如果所述第二关键值>所述第一关键值+阈值,则进入S507,说明KEY1对应flash块的冷数据很久没有更新过,数据需要均衡到该块;如果所述第二关键值≤所述第一关键值+阈值,则进入S509。其中,阈值可以预先设置或者根据实际使用经验调整,合理范围是在1万次。
在S507,所述第一关键值对应的存储区域的数据需要搬移到所述第二关键值对应的存储区域,更新所述已用的树形排序结构和所述空闲的树形排序结构,以及将所述需要被写入的数据写入到所述关键1对应的存储区域。
在S509,所述第一关键值对应的存储区域的数据不需要搬移到所述第二关键值对应的存储区域,输出所述第二关键值对应的存储区域地址,以及将所述需要被写入的数据写入到所述关键2对应的存储区域。
通过上述的判断方法,如果选择出的空闲存储区域最少擦写次数比选择出的已用存储区域最少擦写次数之差值大于某个阈值时,需要将已用存储区域数据搬移到空闲区域,从而保证存储冷数据区域也能做到负载均衡。
图6是本发明的装置模块图。
参见图6,本申请的用于存储器负载均衡的装置包括:第一建模模块601、第二建模模块603、第一查找模块605、第二查找模块607、比较判断模块609、轮换模块611、更新模块613和输出模块615。
根据实施例,第一建模模块601用于根据每个存储区域的存储情况、擦除次数及地址,建立已用的树形排序结构。
第二建模模块603用于根据每个存储区域的存储情况、擦除次数及地址,建立空闲的树形排序结构。
第一查找模块605用于当有数据需要写入时,从所述已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值。
第二查找模块607用于当有数据需要写入时,从所述空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值。
比较判断模块609用于比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的所述储存存储区域。
轮换模块611用于当所述第二关键值>所述第一关键值+阈值时,则所述第一关键值对应的存储区域的数据搬移到所述第二关键值对应的存储区域。
更新模块613用于更新所述已用的树形排序结构和所述空闲的树形排序结构。其中,更新模块包括在树形排序结构上删除节点,添加节点。
输出模块615用于当所述第二关键值≤所述第一关键值+阈值时,则所述第一关键值对应的存储区域的数据不需要搬移到所述第二关键值对应的存储区域,则将数据直接写入到所述第二关键值对应的所述存储区域地址,并输出该存储区域地址以便于分析记录数据写入的实际物理地址。
上述的用于存储器负载均衡的装置,其功能利用红黑树特性进行排序、查找和比较,选择出擦写次数最少的存储区域,将已用存储区域数据搬移到空闲区域,从而保证存储冷数据区域也能做到负载均衡。
图7是本发明的第一查找模块的示意图。
参见图7,本申请的用于存储器负载均衡的装置的第一查找模块603包括:第一提取模块701、第二提取模块703、第三提取模块705、第一计算模块707和第一生成模块709。
根据实施例,第一提取模块701用于从所述已用的树形排序结构中查找出的擦除次数最少的存储区域,提取存储器中该区域的物理地址A1和存储器的起始地址A2。
第二提取模块703用于从所述已用的树形排序结构的该存储区域中提取单个存储区域大小A3。
第三提取模块705用于从所述已用的树形排序结构的该存储区域中提取擦除次数N1。
第一计算模块707用于通过(A1-A2)/A3得到所述已用的树形排序结构的该存储区域的计算地址M1。
第一生成模块709用于根据所述N1和所述M1,得到所述第一关键值。
具体实施例可以参考图3a和图3b的所述关键值(KEY值)的生成步骤,此处不在赘述。
根据实施例,本申请的用于存储器负载均衡的装置的第二查找模块605(图7未示出)包括:第四提取模块、第五提取模块、第六提取模块、第二计算模块和第二生成模块。
第四提取模块用于从所述空闲的树形排序结构中查找出的擦除次数最少的存储区域,提取存储器中该区域的物理地址B1和存储器的起始地址B2。
第五提取模块用于从所述空闲的树形排序结构的该存储区域中提取单个存储区域大小B3。
第六提取模块用于从所述空闲的树形排序结构的该存储区域中提取擦除次数N2。
第二计算模块。用于通过(B1-B2)/B3得到所述空闲的树形排序结的存储区域的计算地址M2。
第二生成模块用于根据所述N2和所述M2,得到所述第二关键值。
具体实施例可以参考图3a和图3b的所述关键值(KEY值)的生成步骤,此处不在赘述。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现如图1所示的方法步骤。本文中的设备可以是芯片、服务器、PC、PAD、手机等。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
通过上述的技术方案,本方法与现有方案相比,做到了负载的完全均衡,这种均衡既包括空闲区域也包括存储冷数据的区域;采用树形排序算法,相比于链表方式优势在于查找、插入、删除速度快,性能稳定,针对分区较大、分区多的存储器能够做到快速查找,有效的保证程序运行效率和存储器的有效寿命。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (13)
1.一种存储器负载均衡的方法,其特征在于,包括:
根据每个存储区域的存储情况、擦除次数及地址,分别建立已用的树形排序结构和空闲的树形排序结构;
当有数据需要被写入时,从所述已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值;
从所述空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值;以及
比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域。
2.根据权利要求1所述的方法,其特征在于,所述存储区域包括:每页数据的标志区和对应的数据区,其中
所述标志区用于记录所述数据的擦除次数及相应的存储区域的地址。
3.根据权利要求1所述的方法,其特征在于,所述第一关键值的生成包括:
从所述已用的树形排序结构中查找出的擦除次数最少的存储区域,提取物理地址A1和存储器的起始地址A2;
从所述已用的树形排序结构的该存储区域中提取单个存储区域大小A3;
从所述已用的树形排序结构的该存储区域中提取擦除次数N1;
通过(A1-A2)/A3得到所述已用的树形排序结构的该存储区域的计算地址M1;
根据所述N1和所述M1,得到所述第一关键值。
4.根据权利要求1所述的方法,其特征在于,所述第二关键值的生成包括:
从所述空闲的树形排序结构中查找出的擦除次数最少的存储区域,提取物理地址B1和存储器的起始地址B2;
从所述空闲的树形排序结构的该存储区域中提取单个存储区域大小B3;
从所述空闲的树形排序结构的该存储区域中提取擦除次数N2;
通过(B1-B2)/B3得到所述空闲的树形排序结的存储区域的计算地址M2;
根据所述N2和所述M2,得到所述第二关键值。
5.根据权利要求1所述的方法,其特征在于,所述存储区域的地址为物理地址。
6.根据权利要求1所述的方法,其特征在于,比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域,包括:
如果所述第二关键值>所述第一关键值+阈值,则所述第一关键值对应的存储区域的数据搬移到所述第二关键值对应的存储区域;
更新所述已用的树形排序结构和所述空闲的树形排序结构;
将所述需要被写入的数据写入到所述第一关键值对应的存储区域。
7.根据权利要求1所述的方法,其特征在于,比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域,包括:
如果所述第二关键值≤所述第一关键值+阈值,则所述第一关键值对应的存储区域的数据不搬移到所述第二关键值对应的存储区域;
将所述需要被写入的数据写入到所述第二关键值对应的存储区域。
8.一种用于存储器负载均衡的装置,其特征在于,包括:
第一建模模块,用于根据每个存储区域的存储情况、擦除次数及地址,建立已用的树形排序结构;
第二建模模块,用于根据每个存储区域的存储情况、擦除次数及地址,建立空闲的树形排序结构;
第一查找模块,用于当有数据需要写入时,从所述已用的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第一关键值;
第二查找模块,用于当有数据需要写入时,从所述空闲的树形排序结构中查找出擦除次数最少的存储区域,获取对应的第二关键值;
比较判断模块,用于比较所述第一关键值和所述第二关键值,判断所述第一关键值对应的存储区域内的数据是否需要均衡到所述第二关键值对应的存储区域。
9.根据权利要求8所述的装置,其特征在于,所述第一查找模块包括:
第一提取模块,用于从所述已用的树形排序结构中查找出的擦除次数最少的存储区域,提取物理地址A1和存储器的起始地址A2;
第二提取模块,用于从所述已用的树形排序结构的该存储区域中提取单个存储区域大小A3;
第三提取模块,用于从所述已用的树形排序结构的该存储区域中提取擦除次数N1;
第一计算模块,用于通过(A1-A2)/A3得到所述已用的树形排序结构的该存储区域的计算地址M1;
第一生成模块,用于根据所述N1和所述M1,得到所述第一关键值。
10.根据权利要求8所述的装置,其特征在于,所述第二查找模块包括:
第四提取模块,用于从所述空闲的树形排序结构中查找出的擦除次数最少的存储区域,提取物理地址B1和存储器的起始地址B2;
第五提取模块,用于从所述空闲的树形排序结构的该存储区域中提取单个存储区域大小B3;
第六提取模块,用于从所述空闲的树形排序结构的该存储区域中提取擦除次数N2;
第二计算模块,用于通过(B1-B2)/B3得到所述空闲的树形排序结的存储区域的计算地址M2;
第二生成模块,用于根据所述N2和所述M2,得到所述第二关键值。
11.根据权利要求8所述的装置,其特征在于,所述装置包括:
轮换模块,用于当所述第二关键值>所述第一关键值+阈值时,则所述第一关键值对应的存储区域的数据搬移到所述第二关键值对应的存储区域;
更新模块,用于更新所述已用的树形排序结构和所述空闲的树形排序结构。
12.一种设备,该设备包括处理器和存储器,其特征在于,所述处理器被配置为执行如权利要求1-7任一项所述的方法。
13.根据权利要求12所述的设备,其特征在于,所述设备为芯片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111350400.1A CN114281242B (zh) | 2021-11-15 | 2021-11-15 | 存储器负载均衡的方法、装置和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111350400.1A CN114281242B (zh) | 2021-11-15 | 2021-11-15 | 存储器负载均衡的方法、装置和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114281242A CN114281242A (zh) | 2022-04-05 |
CN114281242B true CN114281242B (zh) | 2024-05-10 |
Family
ID=80869350
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111350400.1A Active CN114281242B (zh) | 2021-11-15 | 2021-11-15 | 存储器负载均衡的方法、装置和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114281242B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116450059B (zh) * | 2023-06-20 | 2024-04-12 | 宁德时代新能源科技股份有限公司 | 数据管理方法、装置、电子设备、存储介质和程序产品 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202414A (zh) * | 2016-07-12 | 2016-12-07 | 武汉光忆科技有限公司 | 一种基于大容量光盘库的文件系统及文件存储方法和系统 |
CN109753443A (zh) * | 2019-01-12 | 2019-05-14 | 湖南国科微电子股份有限公司 | 一种数据处理方法、装置及电子设备 |
CN111078689A (zh) * | 2019-11-20 | 2020-04-28 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及系统 |
CN112506811A (zh) * | 2020-12-17 | 2021-03-16 | 湖南翰博薇微电子科技有限公司 | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 |
CN112636908A (zh) * | 2020-12-21 | 2021-04-09 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 密钥查询方法及装置、加密设备及存储介质 |
CN113076312A (zh) * | 2021-03-11 | 2021-07-06 | 中科驭数(北京)科技有限公司 | 归并树形排序装置、排序系统及排序方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100857761B1 (ko) * | 2007-06-14 | 2008-09-10 | 삼성전자주식회사 | 웨어 레벨링을 수행하는 메모리 시스템 및 그것의 쓰기방법 |
KR20160008365A (ko) * | 2014-07-14 | 2016-01-22 | 삼성전자주식회사 | 저장 매체, 메모리 시스템 및 메모리 시스템에서의 저장 영역 관리 방법 |
US9588702B2 (en) * | 2014-12-30 | 2017-03-07 | International Business Machines Corporation | Adapting erase cycle parameters to promote endurance of a memory |
US10671317B2 (en) * | 2016-05-25 | 2020-06-02 | Samsung Electronics Co., Ltd. | Block cleanup: page reclamation process to reduce garbage collection overhead in dual-programmable NAND flash devices |
KR102641521B1 (ko) * | 2018-02-22 | 2024-02-28 | 삼성전자주식회사 | 키-밸류 스토리지 장치 및 이의 동작 방법 |
-
2021
- 2021-11-15 CN CN202111350400.1A patent/CN114281242B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106202414A (zh) * | 2016-07-12 | 2016-12-07 | 武汉光忆科技有限公司 | 一种基于大容量光盘库的文件系统及文件存储方法和系统 |
CN109753443A (zh) * | 2019-01-12 | 2019-05-14 | 湖南国科微电子股份有限公司 | 一种数据处理方法、装置及电子设备 |
CN111078689A (zh) * | 2019-11-20 | 2020-04-28 | 深圳希施玛数据科技有限公司 | 一种非连续型预排序遍历树算法的数据处理方法及系统 |
CN112506811A (zh) * | 2020-12-17 | 2021-03-16 | 湖南翰博薇微电子科技有限公司 | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 |
CN112636908A (zh) * | 2020-12-21 | 2021-04-09 | 武汉船舶通信研究所(中国船舶重工集团公司第七二二研究所) | 密钥查询方法及装置、加密设备及存储介质 |
CN113076312A (zh) * | 2021-03-11 | 2021-07-06 | 中科驭数(北京)科技有限公司 | 归并树形排序装置、排序系统及排序方法 |
Non-Patent Citations (2)
Title |
---|
基于多阈值的闪存磨损均衡算法;拓晶;唐磊;;微电子学与计算机;20180105(第01期);全文 * |
基于贪婪策略的NAND FLASH存储器的磨损均衡算法研究;贾鑫;张少平;;计算机科学;20171115(第S2期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114281242A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10331349B2 (en) | Shrinking virtual hard disk image | |
CN108647151B (zh) | 一种全闪系统元数据落盘方法、装置、设备及存储介质 | |
US8225029B2 (en) | Data storage processing method, data searching method and devices thereof | |
EP3617867B1 (en) | Fragment management method and fragment management apparatus | |
CN109407985B (zh) | 一种数据管理的方法以及相关装置 | |
JP2002123421A (ja) | フラッシュメモリのための再写像制御方法及びこれによるフラッシュメモリの構造 | |
CN103064639A (zh) | 数据存储方法及装置 | |
CN103902623A (zh) | 用于在存储系统上存取文件的方法和系统 | |
CN110764704B (zh) | 一种环境变量写入方法、存储介质及电子装置 | |
CN103973810A (zh) | 基于互联网协议ip盘的数据处理方法和装置 | |
CN110888837B (zh) | 对象存储小文件归并方法及装置 | |
CN108733306A (zh) | 一种文件合并方法及装置 | |
CN109033365B (zh) | 一种数据处理方法及相关设备 | |
JPWO2015093026A1 (ja) | 書き込み情報記憶装置、方法、及び、プログラム | |
CN104765754A (zh) | 数据存储方法及装置 | |
CN114281242B (zh) | 存储器负载均衡的方法、装置和设备 | |
CN102959548A (zh) | 数据存储方法、查找方法及装置 | |
CN109408416B (zh) | 一种地址映射表项页管理方法及装置 | |
CN111007990A (zh) | 一种对快照系统中数据块引用进行快速定位的定位方法 | |
CN109039939B (zh) | 一种负载分担方法及装置 | |
CN112506811B (zh) | 基于固态硬盘内数据冷热划分的数据块动态分配方法、装置 | |
CN114153394A (zh) | 一种数据存储管理方法、装置及设备 | |
CN113722319A (zh) | 基于学习索引的数据存储方法 | |
KR20090007926A (ko) | 플래시 메모리에 저장된 데이터의 인덱스 정보 관리 장치및 방법 | |
CN109582235A (zh) | 管理元数据存储方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |