CN110618793A - 一种减少gc处理量的闪存数据写入方法、系统及闪存 - Google Patents
一种减少gc处理量的闪存数据写入方法、系统及闪存 Download PDFInfo
- Publication number
- CN110618793A CN110618793A CN201910880872.4A CN201910880872A CN110618793A CN 110618793 A CN110618793 A CN 110618793A CN 201910880872 A CN201910880872 A CN 201910880872A CN 110618793 A CN110618793 A CN 110618793A
- Authority
- CN
- China
- Prior art keywords
- data
- time stamp
- slc
- flash memory
- data buffer
- 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
- 238000000034 method Methods 0.000 title claims abstract description 35
- 238000004817 gas chromatography Methods 0.000 title abstract description 26
- 239000000872 buffer Substances 0.000 claims abstract description 83
- 238000013500 data storage Methods 0.000 claims abstract description 29
- 239000002356 single layer Substances 0.000 description 5
- 239000010410 layer Substances 0.000 description 4
- 238000011084 recovery Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
- G06F12/0246—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
-
- 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/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Read Only Memory (AREA)
Abstract
本发明公开了一种减少GC处理量的闪存数据写入方法,涉及数据存储技术领域。其技术要点包括S1、闪存主控端将数据写入SLC数据缓冲区;S2、根据SLC数据缓冲区写入数据的次序生成时间戳表;S3、基于时间戳表,将SLC数据缓冲区的数据依次写入TLC数据存储区,本发明具有提升TLC存储单元内存储数据的连续性,减少GC处理量的优点。
Description
技术领域
本发明涉及数据存储技术领域,更具体地说,它涉及一种减少GC处理量的闪存数据写入方法、系统及闪存。
背景技术
现有的SSD数据存入过程中,一般会先将数据存入到SSD的SLC数据缓冲区中,再在SSD的Host空闲时,将SLC数据缓冲区上的数据搬移到TLC存储单元中。其中SLC数据缓冲区中的一个WORDLINE里面仅存储一个存储页的数据,而一个TLC存储单元的一个WORDLINE内可以存储三个储存也的数据,也就是说一个TLC存储单元的存储量是SLC数据缓冲区的三倍。
目前,公布号为CN108733318A的中国专利公开该方法包括:S1:固态硬盘的主控端发出写入指令,数据被写入SLC数据缓冲区;S2:当数据写满预设数量的单层式储存单元时,下发复制写回指令;S3:将预设数量的单层式储存单元内的数据写入三层式储存单元中;S4:更新三层式储存单元对应的物理对逻辑映像表。
而现有数据存入SSD的SLC数据缓冲区时,由于数据覆盖等原因,一个连续的数据写入SSD的SLC数据缓冲区时,写入SLC数据缓冲区的顺序会被打乱。而从SLC数据缓冲区上的数据搬移到TLC存储单元中时,却会按照SLC数据缓冲区的顺序依次存在TLC存储单元。因此常会出现一个连续的数据写入了不同的TLC数据存储区。而删除此段连续数据后,在GC回收时,需要同时搬运不同的TLC数据存储区,增大了GC的处理量。
发明内容
针对现有的技术问题,本发明的第一目的在于提供一种减少GC处理量的闪存数据写入方法,其具有提升TLC存储单元内存储数据的连续性,减少GC处理量的优点。
为实现上述目的,本发明提供了如下技术方案:一种减少GC处理量的闪存数据写入方法,包括:
S1、闪存主控端将数据写入SLC数据缓冲区;
S2、根据SLC数据缓冲区写入数据的次序生成时间戳表;
S3、基于时间戳表,将SLC数据缓冲区的数据依次写入TLC数据存储区。
通过采用上述技术方案,时间戳表依据SLC数据缓冲区写入数据的次序生成,通过时间戳表能够获取到SLC数据缓冲区写入数据的次序;从而在将SLC缓冲区内数据写入到TLC数据存储区中时,能够根据时间戳表内记录的顺序,按照原有的SLC数据缓冲区写入顺序,将数据写入到TLC数据存储区;从而使得原本连续的数据从SLC缓冲区内数据写入到TLC数据存储区后,依然能够保持连续性;进而在GC回收时,减少了需要搬运的TLC数据存储区,减少了GC的处理量。
本发明进一步设置为:所述生成时间戳记录表记录有时间戳值和SLC数据缓冲区物理地址:
当一个SLC数据缓冲区写满后,在时间戳记录表中生成时间戳值和对应的SLC数据缓冲区物理地址。
通过采用上述技术方案,在SLC数据缓冲区写满后,再在时间戳记录表中记录,保证了一个SLC数据缓冲区一次仅对应一个时间戳值。而通过生成时间戳值和对应的SLC数据缓冲区物理地址的方式,便于在闪存内操作生成。
本发明进一步设置为:所述时间戳记录表的下一时间戳值由上一时间戳值增加定值后生成。
通过采用上述技术方案,时间戳值仅用于排序,下一时间戳值由上一时间戳值增加定值后生成,下一时间戳值必定大于上一时间戳值;那么只需比较时间戳值的大小就能够实现对时间戳值的排序。
本发明进一步设置为:还包括:
S4、更新已用最大时间戳值。
通过采用上述技术方案,每一次SLC缓冲区内的数据转移至TLC数据存储区内后,对应此次顺序的时间戳值就会失效;因此记录已用最大时间戳值,能够避免重复操作。
本发明进一步设置为:SLC数据缓冲区写入TLC数据存储区包括:
获取已用最大时间戳值;
以已用的最大时间戳值的下一时间戳值作为起始值,依次获取时间戳值对应SLC数据缓冲区物理地址,将SLC数据缓冲区依次写入TLC数据存储区。
通过采用上述技术方案,以已用的最大时间戳值的下一时间戳值作为起始值,依次获取时间戳值对应SLC数据缓冲区物理地址,保证了从SLC数据缓冲区写入TLC数据存储区的次序和闪存主控端将数据写入SLC数据缓冲区的次序相同。
本发明进一步设置为:所述时间戳记录表和已用最大时间戳值均记录于闪存的同一存储单元内。
通过采用上述技术方案,时间戳记录表和已用最大时间戳值记录于同一存储单元内,便于数据读写。
本发明的第二目的在于提供一种减少GC处理量的闪存数据写入方法,其具有提升TLC存储单元内存储数据的连续性,减少GC处理量的优点。
为实现上述目的,本发明提供了如下技术方案:一种减少GC处理量的闪存数据写入系统,包括:
缓冲模块,用于将闪存主控端将数据写入SLC数据缓冲区;
排序模块,根据SLC数据缓冲区写入数据的次序生成时间戳表;
存储模块,基于时间戳表,将SLC数据缓冲区依次写入TLC存储块。
本发明的第三目的在于提供一种闪存,其具有提升TLC存储单元内存储数据的连续性,减少GC处理量的优点。
为实现上述目的,本发明提供了如下技术方案:一种闪存,包括指令,所述指令在计算机上运行时,使得计算机执行第一目的所述的方法。
本发明的第四目的在于提供一种减少GC处理量的闪存数据写入的装置,其具有提升TLC存储单元内存储数据的连续性,减少GC处理量的优点。
为实现上述目的,本发明提供了如下技术方案:一种减少GC处理量的闪存数据写入的装置,其特征在于:所述装置包括处理器和存储器;
所述存储器用于存储支持所述装置执行第一目的所述的方法的程序,以及
存储用于实现第一目的所述的方法所涉及的数据;
所述处理器被配置为用于执行所述存储器中存储的程序。
与现有技术相比,本发明的有益效果是:
(1)通过添加时间戳,使得原本连续的数据从SLC缓冲区内数据写入到TLC数据存储区后,依然能够保持连续性;
(2)时间戳值采用递增的数值,写入和读取方便,不需要额外运算。
附图说明
图1为闪存数据写入方法的流程示意图;
图2为闪存数据写入系统的结构框图。
附图标记:101、缓冲模块;102、排序模块;103、存储模块;104、更新模块。
具体实施方式
下面结合附图和实施例,对本发明进行详细描述。
一种减少GC处理量的闪存数据写入方法,其主要应用于TLC闪存。此TLC闪存内包括单层式存储单元和三层式存储单元。其中TLC NAND FLASH型闪存单层式存储单元(单层式存储块)作为SLC数据缓冲区,而三层式存储单元(三层式存储块)作为TLC数据存储区。
如图1所示,包括:
S1、闪存主控端将数据写入SLC数据缓冲区;
外部数据通过主控端写入到SLC数据缓冲区,SLC数据缓冲区为单层式存储单元,虽然存储容量仅为三层式存储单元的三分之一。但是SLC数据缓冲区写入速度快于TLC存储。因此外部数据先通过主控端写入到SLC数据缓冲区,再将SLC数据缓冲区内的数据写入到TLC数据存储区,能够加快外部数据的写入闪存的速度,同时也能够为闪存提供较大的存储空间。
S2、根据SLC数据缓冲区写入数据的次序生成时间戳表;
时间戳记录表记录有时间戳值和SLC数据缓冲区物理地址。
其中时间戳记录表中的时间戳值构成等差递增数列,下一时间戳值由上一时间戳值增加定值后生成。优选的,本方案内时间戳值采用2字节进行存储,且时间戳值的初始值为0,每记录一个SLC缓冲区物理地址,下一时间戳值加1。
在闪存中每一个SLC数据缓冲区均对应有唯一的物理地址,因此闪存通过唯一的SLC数据缓冲区物理地址就能够找到对应的SLC数据缓冲区。
为了保证了一个SLC数据缓冲区一次写入仅对应一个时间戳值,当一个SLC数据缓冲区写满后,在时间戳记录表中生成时间戳值,并对应写入写满SLC数据缓冲区的SLC数据缓冲区物理地址值。
S3、基于时间戳表,将SLC数据缓冲区的数据依次写入TLC数据存储区;
除了生成时间戳表外,本方法内还对应于时间戳表内时间戳值生成有已用最大时间戳值。已用最大时间戳值用于分隔已用的时间戳值和未用的时间戳值。由于时间戳值在时间戳表内构成等差递增数列,同时时间戳值是按照次序依次使用的;因此在已用最大时间戳值之前的时间戳值均为已用的时间戳值,已用最大时间戳值之后的时间戳值均为未用的时间戳值。
具体的,SLC数据缓冲区写入TLC数据存储区包括:
S31、获取已用最大时间戳值;
S32、以已用的最大时间戳值的下一时间戳值作为起始值,依次获取时间戳值对应SLC数据缓冲区物理地址,将SLC数据缓冲区依次写入TLC数据存储区。
时间戳记录表和已用最大时间戳值均记录于闪存的同一存储单元内。该存储单元优选的选取单层式存储单元,以加快时间戳记录表和已用最大时间戳值写入和读取的速度。
S4、更新已用最大时间戳值。
本方法的效果如下:
时间戳表依据SLC数据缓冲区写入数据的次序生成,通过时间戳表能够获取到SLC数据缓冲区写入数据的次序;从而在将SLC缓冲区内数据写入到TLC数据存储区中时,能够根据时间戳表内记录的顺序,按照原有的SLC数据缓冲区写入顺序,将数据写入到TLC数据存储区;从而使得原本连续的数据从SLC缓冲区内数据写入到TLC数据存储区后,依然能够保持连续性;进而在GC回收时,减少了需要搬运的TLC数据存储区,减少了GC的处理量。
图2是闪存数据写入系统的结构框图,如图2所示,一种减少GC处理量的闪存数据写入系统,包括:
缓冲模块101,用于将HOST数据写入SLC数据缓冲区;
排序模块102,根据SLC数据缓冲区写入数据的次序生成时间戳表;
存储模块103,基于时间戳表,将SLC数据缓冲区依次写入TLC存储块。
更新模块104,用于更新已用最大时间戳值。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读移动式存储设备中。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于闪存中。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种减少GC处理量的闪存数据写入方法,其特征在于:包括:
S1、闪存主控端将数据写入SLC数据缓冲区;
S2、根据SLC数据缓冲区写入数据的次序生成时间戳表;
S3、基于时间戳表,将SLC数据缓冲区的数据依次写入TLC数据存储区。
2.根据权利要求1所述的一种减少GC处理量的闪存数据写入方法,其特征在于:所述生成时间戳记录表记录有时间戳值和SLC数据缓冲区物理地址:
当一个SLC数据缓冲区写满后,在时间戳记录表中生成新的时间戳值和对应的SLC数据缓冲区物理地址。
3.根据权利要求2所述的一种减少GC处理量的闪存数据写入方法,其特征在于:所述时间戳记录表的下一时间戳值由上一时间戳值增加定值后生成。
4.根据权利要求3所述的一种减少GC处理量的闪存数据写入方法,其特征在于:还包括:
S4、更新已用最大时间戳值。
5.根据权利要求4所述的一种减少GC处理量的闪存数据写入方法,其特征在于:SLC数据缓冲区写入TLC数据存储区包括:
获取已用最大时间戳值;
以已用的最大时间戳值的下一时间戳值作为起始值,依次获取时间戳值对应SLC数据缓冲区物理地址,将SLC数据缓冲区依次写入TLC数据存储区。
6.根据权利要求5所述的一种减少GC处理量的闪存数据写入方法,其特征在于:所述时间戳记录表和已用最大时间戳值均记录于闪存的同一存储单元内。
7.一种减少GC处理量的闪存数据写入系统,其特征在于:包括:
缓冲模块(101),用于将闪存主控端将数据写入SLC数据缓冲区;
排序模块(102),根据SLC数据缓冲区写入数据的次序生成时间戳表;
存储模块(103),基于时间戳表,将SLC数据缓冲区依次写入TLC数据存储区。
8.一种闪存,其特征在于:包括指令,所述指令在计算机上运行时,使得计算机执行权利要求1-6任一项所述的方法。
9.一种减少GC处理量的闪存数据写入的装置,其特征在于:所述装置包括处理器和存储器;
所述存储器用于存储支持所述装置执行权利要求1-6任一项所述的方法的程序,以及
存储用于实现权利要求1-6任一项所述的方法所涉及的数据;
所述处理器被配置为用于执行所述存储器中存储的程序。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910880872.4A CN110618793A (zh) | 2019-09-18 | 2019-09-18 | 一种减少gc处理量的闪存数据写入方法、系统及闪存 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910880872.4A CN110618793A (zh) | 2019-09-18 | 2019-09-18 | 一种减少gc处理量的闪存数据写入方法、系统及闪存 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110618793A true CN110618793A (zh) | 2019-12-27 |
Family
ID=68923460
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910880872.4A Pending CN110618793A (zh) | 2019-09-18 | 2019-09-18 | 一种减少gc处理量的闪存数据写入方法、系统及闪存 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110618793A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012158514A1 (en) * | 2011-05-17 | 2012-11-22 | Sandisk Technologies Inc. | Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions |
US20160139812A1 (en) * | 2014-11-14 | 2016-05-19 | Sk Hynix Memory Solutions Inc. | Hot-cold data separation method in flash translation layer |
CN105988719A (zh) * | 2015-02-07 | 2016-10-05 | 深圳市硅格半导体有限公司 | 存储装置及其处理数据的方法 |
US20170075811A1 (en) * | 2015-09-11 | 2017-03-16 | Kabushiki Kaisha Toshiba | Memory system |
CN108733318A (zh) * | 2017-04-20 | 2018-11-02 | 立而鼎科技(深圳)有限公司 | 一种tlc nand flash固态硬盘的写入方法 |
-
2019
- 2019-09-18 CN CN201910880872.4A patent/CN110618793A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012158514A1 (en) * | 2011-05-17 | 2012-11-22 | Sandisk Technologies Inc. | Non-volatile memory and method with small logical groups distributed among active slc and mlc memory partitions |
CN103688246A (zh) * | 2011-05-17 | 2014-03-26 | 桑迪士克科技股份有限公司 | 具有在活跃slc和mlc存储器分区之间分布的小逻辑组的非易失性存储器和方法 |
US20160139812A1 (en) * | 2014-11-14 | 2016-05-19 | Sk Hynix Memory Solutions Inc. | Hot-cold data separation method in flash translation layer |
CN105988719A (zh) * | 2015-02-07 | 2016-10-05 | 深圳市硅格半导体有限公司 | 存储装置及其处理数据的方法 |
US20170075811A1 (en) * | 2015-09-11 | 2017-03-16 | Kabushiki Kaisha Toshiba | Memory system |
CN108733318A (zh) * | 2017-04-20 | 2018-11-02 | 立而鼎科技(深圳)有限公司 | 一种tlc nand flash固态硬盘的写入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10649897B2 (en) | Access request processing method and apparatus, and computer device | |
CN105718530B (zh) | 文件存储系统及其文件存储控制方法 | |
TWI494761B (zh) | 分割實體區塊之方法及記憶體系統 | |
US8386713B2 (en) | Memory apparatus, memory control method, and program | |
EP3309685B1 (en) | Method and apparatus for writing data to cache | |
KR101678868B1 (ko) | 플래시 주소 변환 장치 및 그 방법 | |
US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
US20100235565A1 (en) | Apparatus and method to protect metadata against unexpected power down | |
US20190146925A1 (en) | Method and system for enhancing flash translation layer mapping flexibility for performance and lifespan improvements | |
US10168940B2 (en) | Data storage using SLC and TLC memory banks and data maintenance method thereof | |
CN109902034B (zh) | 快照创建方法、装置、电子设备及机器可读存储介质 | |
US10635356B2 (en) | Data management method and storage controller using the same | |
US10606746B2 (en) | Access request processing method and apparatus, and computer system | |
EP4012547B1 (en) | Storage method and apparatus for key value (kv) and storage device | |
US10942811B2 (en) | Data processing method for solid state drive | |
US9798470B2 (en) | Memory system for storing and processing translation information | |
CN109002265B (zh) | 一种数据处理的方法以及相关装置 | |
CN110618793A (zh) | 一种减少gc处理量的闪存数据写入方法、系统及闪存 | |
KR20100040559A (ko) | 완전 연관 섹터 변환 기법을 사용하는 플래시 변환 계층에서 합병연산을 줄이기 위한 플래시 메모리 관리 방법및 장치 | |
US11461225B2 (en) | Storage device, control method of storage device, and storage medium | |
CN111758086B (zh) | 用于ssd的映射表的刷新方法 | |
JP2013196155A (ja) | メモリシステム | |
CN111045961B (zh) | 数据处理方法及使用所述方法的存储控制器 | |
CN107544866B (zh) | 一种日志更新方法与装置 | |
CN109960611A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191227 |
|
RJ01 | Rejection of invention patent application after publication |