CN112631952A - 一种固态硬盘冷热数据分离方法 - Google Patents

一种固态硬盘冷热数据分离方法 Download PDF

Info

Publication number
CN112631952A
CN112631952A CN202011567457.2A CN202011567457A CN112631952A CN 112631952 A CN112631952 A CN 112631952A CN 202011567457 A CN202011567457 A CN 202011567457A CN 112631952 A CN112631952 A CN 112631952A
Authority
CN
China
Prior art keywords
data
solid state
state disk
cold
hot
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.)
Pending
Application number
CN202011567457.2A
Other languages
English (en)
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.)
Shanghai V&g Information Technology Co ltd
Original Assignee
Shanghai V&g Information Technology Co ltd
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 Shanghai V&g Information Technology Co ltd filed Critical Shanghai V&g Information Technology Co ltd
Priority to CN202011567457.2A priority Critical patent/CN112631952A/zh
Publication of CN112631952A publication Critical patent/CN112631952A/zh
Pending legal-status Critical Current

Links

Images

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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • G06F12/0646Configuration or reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种固态硬盘冷热数据分离方法,包括步骤1,将固态硬盘的逻辑页按写入次数来对数据的冷热程度排序;步骤2,按照步骤1中冷热程度的排序,将冷热不同的数据分别组合写入新块。本发明将逻辑页按写入次数来对数据的冷热程度排序,并据此将冷热不同的数据分别组合写入新块,有效提高了冷热数据判断的准确性,提高了垃圾回收的效率。本发明会持续保留逻辑页的写入次数,并在垃圾回收后进行适当降级,既保留了间歇性频繁读写数据的热度记录,又可将前期频繁读写但后来不再修改的数据转为冷数据,适用于更多的应用环境。

Description

一种固态硬盘冷热数据分离方法
技术领域
本发明属于固态硬盘技术领域,具体涉及到一种固态硬盘冷热数据分离方法。
背景技术
固态硬盘是一种具有非易失性数据存储功能的存储器,其存储的数据可断电长期保持。固态硬盘的读写操作是以页为单位进行的,擦除操作是以块为单位进行的,块的容量大于页。当一个块写满数据后,需要进行擦除才能写入新的数据。
用户按页读写固态硬盘的数据时,提供的地址是逻辑地址,固态硬盘会构建逻辑页与物理页映射表。写操作时,固态硬盘会分配新的物理页写入数据,然后将逻辑页的地址映射为物理页的地址存入映射表。读操作时,固态硬盘会在映射表中根据逻辑页地址查找物理页地址,然后读取对应物理页的数据。由于固态硬盘的块可以擦除的次数有限,当用户修改某逻辑页数据时,固态硬盘不会将该页对应的块擦除后重新写入数据,而是会将该数据的物理页标记无效,然后分配新的空白物理页写入该页数据,最后将该页的逻辑地址映射到新的物理地址上。
在上述的操作过程中,经常被更新的数据被称为“热数据”,而相对较少更新的数据被称为“冷数据”。
当固态硬盘使用一段时间后,无效的物理页会增加,固态硬盘的可用容量会减少,此时需要通过垃圾回收,将有效页和无效页混杂的块中的有效物理页搬移到新块中,重新映射逻辑页;然后对旧块进行刷新,使旧块重新可写。如果一个块中有效的冷热数据混杂,则热数据所在的页会很快变为无效,降低垃圾回收的效率。
为此,有从业者提出一些关于固态硬盘中“热数据”和“冷数据”的管理策略。
例如中国专利申请CN201611224393.X公开了一种固态硬盘冷热数据分离方法利用垃圾回收本身的特性来被动分离冷热数据,当一个块的热数据由于不断更新而逐渐标记无效,则该块中有效的冷数据比例升高,此时对该块进行垃圾回收,则新组合的块中冷数据的比例会上升,实现冷热数据的逐渐分离,但是该方法需要的时间长,而且可能需要多次垃圾回收才能降低热数据比例,对减少块的擦除次数效果不佳。此外,对间歇性频繁读写的热数据页,此方法无法进行分离。
又例如中国专利申请CN201811463362.9公开了一种固态硬盘冷热数据分离方法、装置及设备根据某逻辑地址页前一次写数据的时间来判断该块是否存储热数据。如果该逻辑地址页前一次写数据与此次写数据的间隔时间不大于某阈值时间,则判断该页数据为热数据,会将此数据写入热数据区块;如果该逻辑地址页前一次写数据与此次写数据的间隔时间大于某阈值时间,则判断该页数据为冷数据,会将此数据写入冷数据区块。该方案可以识别频繁读写的热数据,但上述阈值时间难以确定,且对间歇性频繁读写的情况会导致该数据在热数据区块和冷数据区块反复搬移,反而增加块的擦除次数,降低固态硬盘寿命。
又例如中国专利申请201910773717.2公开了一种SATA固态硬盘冷热数据分离的方法及其装置通过主机通过SATA协议主动告知固态硬盘写入数据是否冷热数据的方式来确定冷热数据,可以较好地分离冷热数据,但需要主机的应用层专门适配,通用性不高。
由上可知,目前固态硬盘冷热数据分离方法的效果不太理想。尤其是,遇上间歇性频繁读写的情况,上述现有技术均无法进行有效识别。
发明内容
针对现有技术存在的技术问题,本发明提供一种原理简单、易实现、能提高冷热数据判断的准确性、提高垃圾回收效率的固态硬盘冷热数据分离方法。采用以下技术方案:
一种固态硬盘冷热数据分离方法,包括以下步骤:
步骤S100:将固态硬盘的逻辑页按写入次数来对数据的冷热程度排序;
步骤S200:按照步骤S100中冷热程度的排序,将冷热不同的数据分别组合写入新块,从而有效提高了冷热数据判断的准确性,提高了垃圾回收的效率。
进一步,在上述过程中,可以持续保留逻辑页的写入次数,并在垃圾回收后进行适当降级,既保留了间歇性频繁读写数据的热度记录,又可将前期频繁读写但后来不再修改的数据转为冷数据。
进一步,在固态硬盘内建立逻辑页与物理页的映射表,该映射表内记录每个逻辑页的数据写入次数和其对应的物理地址,进而用来对逻辑页的写入次数进行管理和排序。
进一步,当读取某一个逻辑页上的数据时,固态硬盘查找映射表,根据映射表上该逻辑页上的写入次数来决定读取管理策略。
进一步,当删除某一个逻辑页上的数据时,固态硬盘直接修改映射表,令逻辑页上的写入次数为0。
进一步,当往某一个逻辑页上写入数据时,固态硬盘会分配新的物理地址的物理页写入数据;然后,修改映射表中该逻辑页的记录项:数据写入次数,对应物理地址记录新分配的物理页地址。
与现有技术相比,本发明的优点在于:
1、本发明将逻辑页按写入次数来对数据的冷热程度排序,并据此将冷热不同的数据分别组合写入新块,有效提高了冷热数据判断的准确性,提高了垃圾回收的效率。
2、本发明会持续保留逻辑页的写入次数,并在垃圾回收后进行适当降级,既保留了间歇性频繁读写数据的热度记录,又可将前期频繁读写但后来不再修改的数据转为冷数据,适用于更多的应用环境。
附图说明
图1是本发明方法的流程示意图。
图2是本发明在具体应用实例中固态硬盘逻辑页与物理页映射表的示意图。
具体实施方式
以下将结合说明书附图和具体实施例对本发明做进一步详细说明。
如图1所示,本发明的固态硬盘冷热数据分离方法,包括:
步骤S100:将固态硬盘的逻辑页按写入次数来对数据的冷热程度排序;
步骤S200:按照步骤S100中冷热程度的排序,将冷热不同的数据分别组合写入新块,从而有效提高了冷热数据判断的准确性,提高了垃圾回收的效率。
在具体应用实例中,在上述过程中,进一步可以持续保留逻辑页的写入次数,并在垃圾回收后进行适当降级,既保留了间歇性频繁读写数据的热度记录,又可将前期频繁读写但后来不再修改的数据转为冷数据。
在具体应用实例中,在固态硬盘内建立逻辑页与物理页的映射表,该映射表内记录每个逻辑页的数据写入次数和其对应的物理地址,进而用来对逻辑页的写入次数进行管理和排序。
进一步,当读取某一个逻辑页上的数据时,固态硬盘查找映射表,根据映射表上该逻辑页上的写入次数来决定读取管理策略。
进一步,当删除某一个逻辑页上的数据时,固态硬盘直接修改映射表,令逻辑页上的写入次数为0。
进一步,当往某一个逻辑页上写入数据时,固态硬盘会分配新的物理地址的物理页写入数据;然后,修改映射表中该逻辑页的记录项:数据写入次数,对应物理地址记录新分配的物理页地址。
本发明以一个包含N个块且每个块包含M个物理页的固态硬盘为例,其构造逻辑页与物理页的映射表如图2所示。该映射表有M×N项记录,第i项记录了第i个逻辑页的数据写入次数W(i)和其对应的物理地址A(i)。
当逻辑页i没有保存数据时,数据写入次数W(i)=0,对应物理地址无限制。
当向逻辑页i写入数据时,固态硬盘会分配新的物理地址为C的物理页写入数据;然后,修改映射表中该逻辑页的记录项:数据写入次数W(i)=W(i)+1,对应物理地址记录新分配的物理页地址,即A(i)=C。
当读逻辑页i的数据时,固态硬盘查找映射表,如果W(i)>0,则读取并返回地址为A(i)的物理页的数据;如果W=0,则返回无有效数据的报错信息。
当删除逻辑页i的数据时,固态硬盘直接修改映射表:数据写入次数W(i)=0。
本发明的固态硬盘冷热数据分离方法,当进行垃圾回收时,其步骤如下:
步骤S1:构造M×N位向量B,第i位向量B(i)标记第i个逻辑页是否需要搬移,B(i)=1表示需要搬移,B(i)=0表示不需要搬移;
步骤S2:根据垃圾收集机制确定需要搬移的块中的有效物理页,并在B中进行标记;
步骤S3:初始化计数x=1,计数y=1,计数z=0,最大值P,减少量Q,构造M项物理地址D和逻辑地址E;
步骤S4:如果B(x)=1且映射表中W(x)=y,则z=z+1;然后,记录D(z)=A(x)和E(z)=x,并且:如果W(x)>Q,则W(x)=W(x)-Q,反之W(x)=1;
步骤S5:如果z≥M,则z=0,将D中记录的物理地址对应所有的物理页组合搬入新块,并根据D和E的记录更新映射表的映射;
步骤S6:如果x≤M×N,则x=x+1,转步骤S4,否则转步骤S7;
步骤S7:如果y<P,则x=0,y=y+1,转步骤S4,否则转步骤S8;
步骤S8:如果z>0,则把D(1)至D(z)中地址对应所有的物理页组合搬入新块,并根据D和E的记录更新映射表的映射;
步骤S9:擦除步骤S2中确定的所有需要搬移的块。
作为较佳的实施例,本发明根据实际应用的需要,优选地,最大值P可以设置为3至255的自然数。
作为较佳的实施例,本发明根据实际应用的需要,优选地,减少量Q可以设置为1至127的自然数;
作为较佳的实施例,本发明根据实际应用的需要,优选地,如果数据写入次数W达到了最大值P,则当操作W=W+1时,实际操作为W=W。
以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

Claims (6)

1.一种固态硬盘冷热数据分离方法,其特征在于,包括以下步骤:
步骤1,将固态硬盘的逻辑页按写入次数来对数据的冷热程度排序;
步骤2,按照步骤1中冷热程度的排序,将冷热不同的数据分别组合写入新块,从而有效提高了冷热数据判断的准确性,提高了垃圾回收的效率。
2.根据权利要求1所述的一种固态硬盘冷热数据分离方法,其特征在于,包括:持续保留逻辑页的写入次数,并在垃圾回收后进行适当降级,既保留了间歇性频繁读写数据的热度记录,又可将前期频繁读写但后来不再修改的数据转为冷数据。
3.根据权利要求1所述的一种固态硬盘冷热数据分离方法,其特征在于,包括:在固态硬盘内建立逻辑页与物理页的映射表,该映射表内记录每个逻辑页的数据写入次数和其对应的物理地址,进而用来对逻辑页的写入次数进行管理和排序。
4.根据权利要求1所述的一种固态硬盘冷热数据分离方法,其特征在于,包括:当读取某一个逻辑页上的数据时,固态硬盘查找映射表,根据映射表上该逻辑页上的写入次数来决定读取管理策略。
5.根据权利要求1所述的一种固态硬盘冷热数据分离方法,其特征在于,包括:当删除某一个逻辑页上的数据时,固态硬盘直接修改映射表,令逻辑页上的写入次数为0。
6.根据权利要求1所述的一种固态硬盘冷热数据分离方法,其特征在于,包括:当往某一个逻辑页上写入数据时,固态硬盘会分配新的物理地址的物理页写入数据;然后,修改映射表中该逻辑页的记录项,数据写入次数,对应物理地址记录新分配的物理页地址。
CN202011567457.2A 2020-12-25 2020-12-25 一种固态硬盘冷热数据分离方法 Pending CN112631952A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011567457.2A CN112631952A (zh) 2020-12-25 2020-12-25 一种固态硬盘冷热数据分离方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011567457.2A CN112631952A (zh) 2020-12-25 2020-12-25 一种固态硬盘冷热数据分离方法

Publications (1)

Publication Number Publication Date
CN112631952A true CN112631952A (zh) 2021-04-09

Family

ID=75325133

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011567457.2A Pending CN112631952A (zh) 2020-12-25 2020-12-25 一种固态硬盘冷热数据分离方法

Country Status (1)

Country Link
CN (1) CN112631952A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116737064A (zh) * 2023-03-29 2023-09-12 深圳市领德创科技有限公司 一种固态硬盘的数据管理方法和系统
WO2024078012A1 (zh) * 2022-10-11 2024-04-18 华为技术有限公司 固态硬盘配置方法、垃圾回收方法以及相关设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902628A (zh) * 2012-09-18 2013-01-30 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
CN106598878A (zh) * 2016-12-27 2017-04-26 湖南国科微电子股份有限公司 一种固态硬盘冷热数据分离方法
US20170153848A1 (en) * 2015-11-30 2017-06-01 Jason MARTINEAU Enhanced multi-stream operations
CN107562378A (zh) * 2017-08-28 2018-01-09 记忆科技(深圳)有限公司 一种提升固态存储设备寿命的方法
CN109542358A (zh) * 2018-12-03 2019-03-29 浪潮电子信息产业股份有限公司 一种固态硬盘冷热数据分离方法、装置及设备
CN110221986A (zh) * 2019-06-15 2019-09-10 深圳市硅格半导体有限公司 闪存逻辑物理映射表的排序方法、系统以及其闪存

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102902628A (zh) * 2012-09-18 2013-01-30 记忆科技(深圳)有限公司 一种基于闪存实现的冷热数据自动分离方法、系统及闪存
US20170153848A1 (en) * 2015-11-30 2017-06-01 Jason MARTINEAU Enhanced multi-stream operations
CN106598878A (zh) * 2016-12-27 2017-04-26 湖南国科微电子股份有限公司 一种固态硬盘冷热数据分离方法
CN107562378A (zh) * 2017-08-28 2018-01-09 记忆科技(深圳)有限公司 一种提升固态存储设备寿命的方法
CN109542358A (zh) * 2018-12-03 2019-03-29 浪潮电子信息产业股份有限公司 一种固态硬盘冷热数据分离方法、装置及设备
CN110221986A (zh) * 2019-06-15 2019-09-10 深圳市硅格半导体有限公司 闪存逻辑物理映射表的排序方法、系统以及其闪存

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024078012A1 (zh) * 2022-10-11 2024-04-18 华为技术有限公司 固态硬盘配置方法、垃圾回收方法以及相关设备
CN116737064A (zh) * 2023-03-29 2023-09-12 深圳市领德创科技有限公司 一种固态硬盘的数据管理方法和系统
CN116737064B (zh) * 2023-03-29 2024-04-05 深圳市领德创科技有限公司 一种固态硬盘的数据管理方法和系统

Similar Documents

Publication Publication Date Title
US5860124A (en) Method for performing a continuous over-write of a file in nonvolatile memory
JP4185058B2 (ja) フラッシュメモリのリマッピング方法
JP4931810B2 (ja) 最適化されたシーケンシャルなクラスタの管理のためのfat分析
JP5224706B2 (ja) 記憶装置及び記憶装置の制御方法
TWI442399B (zh) 存取一快閃記憶體之裝置及方法、及平均地使用該快閃記憶體之區塊之方法
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
EP0977121B1 (en) Non-volatile memory, recording apparatus and recording method
US8949515B2 (en) Storage device and memory controller
US20080270680A1 (en) Controller for Non-Volatile Memories and Methods of Operating the Memory Controller
US20140059273A1 (en) Host apparatus and memory device
US20030229753A1 (en) Flash memory file system
JP2009199625A (ja) メモリカードおよびメモリカードの制御方法および不揮発性半導体メモリの制御方法
JP2006040264A (ja) メモリカードの制御方法および不揮発性半導体メモリの制御方法
JPWO2005103903A1 (ja) 不揮発性記憶システム
JP2003308240A (ja) データ記憶装置
CN112631952A (zh) 一种固态硬盘冷热数据分离方法
US20100318726A1 (en) Memory system and memory system managing method
CN115129262A (zh) 一种固态硬盘垃圾回收方法、装置、设备及介质
TWI399642B (zh) 具區塊管理之非揮發性記憶體
KR100914646B1 (ko) 멀티-플레인 구조의 플래시 메모리 관리 방법
CN101154447B (zh) 一种闪存控制方法及闪存
CN113010091B (zh) 数据写入固态硬盘的方法、垃圾回收的方法、装置
CN116540950B (zh) 一种存储器件及其写入数据的控制方法
CN111324284B (zh) 一种存储器
CN101763222A (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