CN107368262A - 一种基于闪存制程差异的数据布局方法 - Google Patents
一种基于闪存制程差异的数据布局方法 Download PDFInfo
- Publication number
- CN107368262A CN107368262A CN201710601039.2A CN201710601039A CN107368262A CN 107368262 A CN107368262 A CN 107368262A CN 201710601039 A CN201710601039 A CN 201710601039A CN 107368262 A CN107368262 A CN 107368262A
- Authority
- CN
- China
- Prior art keywords
- data
- region
- reliability
- read
- reading
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0647—Migration mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Read Only Memory (AREA)
Abstract
本发明涉及一种基于闪存制程差异的数据布局方法,主要包括以下步骤:判断闪存中数据的读热度,将频繁读的热读数据分配或者移动到闪存中可靠性较高的闪存块;当可靠性高的闪存块中没有更多的空间分配给热读数据时,在可靠性高的闪存块中以闪存块为单位判断冷读数据,并将整个闪存块中的数据移动到可靠性低的闪存块中;完成移动后擦除闪存块,将热读数据移动到该块中。本发明具有如下的优点:由于闪存读操作需要的时间与待读数据的可靠性直接相关,将热读数据布局在可靠性高的闪存块中,有利于闪存整体读性能的改善。
Description
技术领域
本发明涉及存储技术领域,特别是涉及一种基于闪存制程差异的数据布局方法。
背景技术
作为目前较为成熟的一种非易失性半导体存储器,闪存具有较高的访问性能、较低的功耗、数据非易失以及抗震轻便等优点。由于这些优点,目前闪存被大量应用于包括嵌入式系统设备,个人计算机甚至大型数据中心中,被大量用作各种存储介质。随着对存储容量逐渐增加的需求,闪存存储器朝着存储密度更大、尺寸更小的方向发展,比如多比特存储元以及10纳米闪存技术;除此之外,3D闪存作为闪存发展的新方向也被广泛讨论。这些发展使得闪存的存储密度快速增长,同时也使得闪存的可靠性大大降低,闪存的使用寿命变短,需要更强纠错能力的纠错码来保证其可靠性。
低密度奇偶校验码(Low-Density Parity-Check Code,LDPC)的出现缓解了闪存日益严重的可靠性问题,但是随之而来的问题是读性能的不断下降。LDPC采用置信传播算法,利用概率信息进行解码。输入到解码算法的概率信息的准确性决定了其解码成功的概率。准确性越高,解码纠错能力越强,解码成功率越高。对于错误率较高的数据,高准确性的概率信息的获取需要在存储元相邻电压状态之间设置更多的读取电压,对高错误电压状态分布进行细粒度的划分,由此导致读时延增大,读性能下降。因此,闪存的可靠性降低导致读性能的下降。
另一方面,由于闪存制程差异的存在,闪存不同块、页以及存储元的可靠性存在较大的差异,该差异随着闪存的发展日益突出。以闪存块为例,由于闪存读性能与待读数据可靠性直接相关,读取存放在不同可靠性的闪存块中的数据有不同的读性能。由于可靠性更高的闪存块可以容忍更多的擦除次数,现有的均衡磨损优化方法提出将热写数据分布到可靠性高的闪存块中,使得热读数据倾向于被分布到可靠性低的闪存块中,无疑导致闪存的读性能严重变差。
综上,闪存的发展带来的可靠性下降和基于制程差异的均衡磨损方法都使得闪存读性能的降低,从而限制了闪存进一步的发展。
发明内容
为了克服上述现有方法的不足,本发明充分挖掘闪存制程差异对读性能的影响,提供一种基于闪存制程差异的数据布局方法,将频繁读取的热读数据布局在可靠性高的闪存块,用以改善闪存的读性能。
为了实现本发明的上述目的,本发明提供的一种基于闪存制程差异的数据布局方法,包括如下步骤:
根据闪存已知的制程差异将闪存块基于其可靠性分成多级区域,从可靠性最高到可靠性最低;
在读操作发生时判定闪存中数据的读热度,识别可靠性低的区域中的读热数据;我们采用计数法对数据的热度进行判定,给每页数据增加一个读次数的记录Count,当该Count达到一定阈值T,则该数据为热数据,反之为冷数据;
将读热数据从当前区域移动到可靠性高一级的区域中的闪存块;
当可靠性高的区域中没有可以写入数据的闪存块分配给新的热数据,在可靠性高的区域中识别出冷读数据,以块为单位将整块的数据拷贝到可靠性较低的区域中,为热读数据腾出空间。
通过将热读数据布局在可靠性高的闪存块中,实现了闪存的整体读性能优化的目的。通过逐级移动的方式将最热的数据迁移到可靠性最高的区域中,由于读热数据只占所有数据的极小部分,仅需要较少的移动次数就可以将所有的读热数据布局到对应可靠性的闪存块中。本发明具有以下的优点:在不对闪存底层进行更改的情况下,通过数据布局的方式,对读热数据的读操作进行加速,只需要较小的额外移动开销,实现闪存读访问性能的改善。
附图说明
本发明的附图说明如下:
图1为本发明的数据布局示意图;
图2为读数据在不同区域的迁移流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明:
闪存的制程差异导致不同闪存块的可靠性存在巨大差异,从而也导致闪存块的读性能、写性能存在差异。现有多种方法对闪存块的制程差异进行识别,本发明建立在每个闪存的可靠性已知的前提下,将闪存块分为M个区域,如图1所示。其中,区域1为可靠性最高的区域,区域M为可靠性最低的区域。因此,读区域i-1(1<i≤M)中的数据比读区域i中的数据读性能要好。为了实现读性能的改善,本发明提出读数据的迁移方法,将可靠性低区域中的热读数据逐级迁移到可靠性高的区域中。
如图2是不同区域之间读数据的迁移流程图,在每次读操作发生时,读数据的热度发生更新,判断是否需要进行数据迁移,该流程开始于步骤201。
在步骤202,执行该读操作,不管该读操作访问的数据是否需要迁移,都需要先执行读操作将数据读取出来。
在步骤203,判断该待读数据所在的区域是否是可靠性最高的区域,即第一区域。在这里,使用LA,即数据的逻辑地址来标识数据,其所在的区域号为i。如果i=1,则直接进入步骤213结束,因为该数据已经在可靠性最高的区域,不管数据是否是热读数据,都不需要再向可靠性更高的区域迁移。反之,如果i不等于1,则执行步骤204。
在步骤204,由于数据可能需要迁移,而是否迁移的依据是其读的热度。这时,我们需要检查数据的读次数Count。需要注意的是,由于闪存中存放的大部分数据是冷数据,而迁移动作只针对热数据,我们只对闪存中的热数据记录其读次数Count。在闪存控制器中,对发生过读操作的数据对其记录读次数Count,该信息不需要持久的维护,可以在断电后重新建立。因此,首先需要判断在控制中是否记录了数据LA的读次数Count,如果没有记录,则执行步骤205;反之,如果有记录,则执行步骤206。
在步骤205,在控制器中初始化数据LA的读次数Count,将其置为1,代表刚刚发生的1次读操作,接下来执行步骤207。
在步骤206,由于数据上发生了一次读操作,将其读次数Count执行加1操作。
在步骤207,判断数据的读次数Count是否达到阈值T,如果达到表明数据是热读数据,需要将其迁移到可靠性高一级的区域中,即区域i-1,执行步骤208;如果没达到阈值T,表明数据是冷读数据,不需要进行迁移,进入步骤213结束。
在步骤208,要向区域i-1中迁移入数据,首先需要判断区域i-1是否有空间容纳迁移进来的数据。该步骤判断区域i-1是否有空闲页可供该数据写入,如果没有则需要首先迁移数据出去为迁移进来的数据腾出空间,执行步骤208;如果有空间则执行步骤211。
在步骤209,需要判断区域i-1中的冷读数据。由于闪存的空间回收机制需要对整个闪存块进行擦除,对冷数据的判定以闪存块的粒度进行。采用CLOCK算法来实现冷读闪存块的识别。由于区域M是可靠性最低的区域,不需要选择冷读闪存块的迁移,在除区域M之外的其他所有区域,对每个区域进行建立CLOCK结构,每个块增加一个读比特。读比特初始化为0,当块发生读操作时,将该比特置为1。当区域中需要选择冷读闪存块时,则从CLOCK结构上一次选择的位置开始,依次判断每一个闪存块的读比特,如果为1则将其置为0并走向下一个闪存块的读比特,直到找到一个读比特为0的闪存块,即是冷读闪存块,然后执行步骤210。
在步骤210,将在步骤209找出的区域i-1中的读冷闪存块中的数据迁移到可靠性低的闪存块中。由于需要迁移整块的数据,块中可能存在多个有效页。优先将数据迁移到区域i中,如果区域i中空间不足,则考虑区域i+1,直至区域i-1中冷读块中的数据全部迁移到可靠性低的闪存块中,接下来执行步骤211。
在步骤211,将热读数据LA从区域i迁移到区域i-1,然后执行步骤212。
在步骤212,重置数据LA的读次数,Count=0。至此,热度数据完成了一级的迁移,将其读次数置为0,进入步骤213结束。
以上步骤是在读操作发生时,数据的读热度发生变化,对其进行迁移。当数据第一次写入时,由于无法确定数据的读热度,数据的分配方式采用默认的方式,而数据的更新操作发生在区域内部。
Claims (6)
1.一种基于闪存制程差异的数据布局方法,其特征在于,包括:
根据闪存块的可靠性将其划分成M个区域,区域i-1(1<i≤M)中的闪存块比区域i中的闪存块可靠性高;
识别出可靠低的区域中的热读数据;
将热读数据迁移到可靠性高一级的区域中;
当可靠性高的区域没有空闲的空间给从可靠性低的区域中迁移进来的数据时,判断可靠性高的区域中的冷读数据;
将冷读数据迁移到可靠性低的区域中。
2.如权利要求1所述的方法,其特征在于,在除可靠性最高的区域之外的每个区域中,以闪存页为单位,当数据页被读取到时,在闪存控制器中为其维护读次数;每发生一次读操作,读次数执行加1操作;当读次数达到阈值T,则该数据为热读数据。
3.如权利要求1所述的方法,其特征在于,将区域i中的热读数据页迁移到区域i-1中的闪存块中。
4.如权利要求3所述的方法,其特征在于,当区域i-1中没有空闲页给区域i中的热读数据,则在区域i-1中采用CLOCK算法判断冷读闪存块。
5.如权利要求4所述的方法,其特征在于,将区域i-1中的冷读闪存块中的有效数据迁移到可靠性低的区域中。
6.如权利要求5所述的方法,其特征在于,区域i-1中的冷读数据页将按照区域i到M的顺序,依次寻找有空间的地方迁移数据,直到数据迁移完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710601039.2A CN107368262A (zh) | 2017-07-21 | 2017-07-21 | 一种基于闪存制程差异的数据布局方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710601039.2A CN107368262A (zh) | 2017-07-21 | 2017-07-21 | 一种基于闪存制程差异的数据布局方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107368262A true CN107368262A (zh) | 2017-11-21 |
Family
ID=60307073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710601039.2A Pending CN107368262A (zh) | 2017-07-21 | 2017-07-21 | 一种基于闪存制程差异的数据布局方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107368262A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595108A (zh) * | 2017-12-29 | 2018-09-28 | 北京奇虎科技有限公司 | 一种数据的迁移方法和装置 |
CN114237501A (zh) * | 2021-12-09 | 2022-03-25 | 北京美信时代科技有限公司 | 一种快速识别冷数据的方法及计算机可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN103092770A (zh) * | 2013-01-18 | 2013-05-08 | 山东华芯半导体有限公司 | 一种磨损均衡处理时减少内存开销的方法 |
US20170075805A1 (en) * | 2015-09-10 | 2017-03-16 | HoneycombData Inc. | Garbage collection in ssd drives |
CN106951187A (zh) * | 2017-03-07 | 2017-07-14 | 记忆科技(深圳)有限公司 | 一种固态存储静态磨损均衡的实现方法 |
-
2017
- 2017-07-21 CN CN201710601039.2A patent/CN107368262A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102081576A (zh) * | 2011-03-01 | 2011-06-01 | 华中科技大学 | 一种闪存的磨损平衡方法 |
CN103092770A (zh) * | 2013-01-18 | 2013-05-08 | 山东华芯半导体有限公司 | 一种磨损均衡处理时减少内存开销的方法 |
US20170075805A1 (en) * | 2015-09-10 | 2017-03-16 | HoneycombData Inc. | Garbage collection in ssd drives |
CN106951187A (zh) * | 2017-03-07 | 2017-07-14 | 记忆科技(深圳)有限公司 | 一种固态存储静态磨损均衡的实现方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108595108A (zh) * | 2017-12-29 | 2018-09-28 | 北京奇虎科技有限公司 | 一种数据的迁移方法和装置 |
CN114237501A (zh) * | 2021-12-09 | 2022-03-25 | 北京美信时代科技有限公司 | 一种快速识别冷数据的方法及计算机可读存储介质 |
CN114237501B (zh) * | 2021-12-09 | 2024-02-27 | 北京美信时代科技有限公司 | 一种快速识别冷数据的方法及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10324789B2 (en) | Flash memory controller and memory device for accessing flash memory module, and associated method | |
TWI652679B (zh) | 記憶體控制器、記憶體系統及控制方法 | |
US10936391B2 (en) | Memory management method and storage controller | |
CN111538618B (zh) | 用于一次性奇偶校验的装置和技术 | |
US9092320B2 (en) | Storage system which includes non-volatile semiconductor storage medium, and storage control method of storage system | |
KR101283711B1 (ko) | 하이브리드 메모리 관리 | |
US9092350B1 (en) | Detection and handling of unbalanced errors in interleaved codewords | |
US10310739B2 (en) | Memory management method, memory control circuit unit and memory storage device | |
TWI407446B (zh) | 記憶體裝置內錯誤更正的動態資料儲存系統及方法 | |
CN107622783B (zh) | 译码方法、存储器存储装置及存储器控制电路单元 | |
WO2013132532A1 (en) | Semiconductor storage device having nonvolatile semiconductor memory | |
CN110347335B (zh) | 一种固态硬盘数据存储方法、装置 | |
US9870830B1 (en) | Optimal multilevel sensing for reading data from a storage medium | |
JP2013522776A (ja) | マルチレベルセルのセルフraidフラッシュデータ保護 | |
US9639463B1 (en) | Heuristic aware garbage collection scheme in storage systems | |
US20140215133A1 (en) | Memory system and related block management method | |
US9798475B2 (en) | Memory system and method of controlling nonvolatile memory | |
US20160283319A1 (en) | Data storage device and encoding method thereof | |
CN112053733A (zh) | 故障敏感存储器页面的选择性加速取样 | |
WO2018188618A1 (zh) | 固态硬盘访问 | |
CN110795270A (zh) | 固态储存装置及其读取重试方法 | |
CN112394880A (zh) | 以机器学习针对服务质量优化进行存取控制的方法和设备 | |
CN107368262A (zh) | 一种基于闪存制程差异的数据布局方法 | |
US10372377B2 (en) | Memory controller, memory system, and control method | |
CN109378027A (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 | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20171121 |