CN111367460A - 一种系统数据处理的方法以及装置 - Google Patents
一种系统数据处理的方法以及装置 Download PDFInfo
- Publication number
- CN111367460A CN111367460A CN201811594311.XA CN201811594311A CN111367460A CN 111367460 A CN111367460 A CN 111367460A CN 201811594311 A CN201811594311 A CN 201811594311A CN 111367460 A CN111367460 A CN 111367460A
- Authority
- CN
- China
- Prior art keywords
- data
- blocks
- slc
- system data
- written
- 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
Images
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
-
- 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]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明一种系统数据处理的方法以及装置,所述方法应用于非易失存储器,所述非易失存储器中存储系统数据的存储块包括:SLC Block以及TLC Block,所述方法包括:接收上位机发送的系统数据写入指令,根据所述系统数据写入指令,将所述系统数据写入所述SLC Block,若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据后的SLC Block可以重新写入数据。本发明提供的一种系统数据处理的方法以及装置,通过重新设计了垃圾回收机制,使得数据可以优先写入SLC Block,使得非易失存储器的系统数据读写速度比写入TLC Block更快。
Description
技术领域
本发明涉及非易失存储器领域,特别是一种系统数据处理的方法以及装置。
背景技术
垃圾回收机制是指在非易失存储器使用时,如果不进行垃圾回收,非易失存储器的数据存储块迟早都会被消耗空,因为我们在不断的分配存储空间而不进行回收,除非存储空间无限大,我们可以任性的分配而不回收,但是事实并非如此,所以,垃圾回收是必须的。
现有的非易失存储器系统数据存储块包括SLC Block以及TLC Block,其中TLCBlock是由TLC(Triple-Level Cell)三层式存储单元构成的,SLC Block是由SLC(Single-Level Cell)单层式存储单元构成的,SLC原理是在1个存储器储存单元(cell)中存放1位元(bit)的数据,SLC技术特点是在浮置闸极与源极之中的氧化薄膜更薄,在写入数据时通过对浮置闸极的电荷加电压,然后透过源极,即可将所储存的电荷消除,通过这样的方式,便可储存1个信息单元,这种技术能提供快速的进行数据写入与读取,而TLC形式的1个储存单元可存放3位元(bit)的数据,为了区分,必须使用不同电压来实现。TLC除了能够实现和SLC一样的000(TLC)=0(SLC)和111(TLC)=1(SLC)外,还有另外六种数据格式必须采用其他不同的电压来区分,让不同数量的电子进入到存储单元,实现不同的数据表达,这样,才能让TLC实现单位存储单元存放比SLC更多数据,由于数据写入到TLC中需要八种不同电压状态,而施加不同的电压状态,尤其是相对较高的电压,需要更长的时间才能得以实现所以,在TLC中数据访问所需时间更长,因此传输速度更慢。并且因为所元器件自身原因,损耗比较大,相应的使用寿命就要短一些,所以TLC Block要比SLC Block在速度和性能上差很多,在做初期的出厂测试过程中会产生很多问题,基于以上考虑,需要要求非易失存储器数据优先写入SLC Block。
但现有非易失存储器垃圾回收机制的方案设计,适用于数据优先写入TLC Block的情况,而不适用于数据优先写入SLC Block的情况,使得现有非易失存储器只能将数据优先写入TLC Block。
发明内容
鉴于上述问题,本发明提供一种数据写入的方法、装置以及非易失存储器,解决了现有技术中非易失存储器非易失存储器只能将数据优先写入TLC Block的问题。
本发明实施例提供了一种系统数据处理的方法,所述方法应用于非易失存储器,所述非易失存储器中存储系统数据的存储块包括:SLC Block以及TLC Block,所述方法包括:
接收上位机发送的系统数据写入指令;
根据所述系统数据写入指令,将所述系统数据写入所述SLC Block;
检测所述非易失存储器中空闲的存储块数量是否小于第一预设值;
检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据;
检测已写入系统数据的TLC Block数量是否达到第二预设值;
若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入数据。
可选地,检测已写入系统数据的TLC Block数量是否达到第二预设值,所述方法还包括:
若所述已写入系统数据的TLC Block数量达到第二预设值,且已写入系统数据的TLC Block中含有无效数据,根据TLC Block中无效数据数量,拆分为对应于无效数据数量的SLC Block,拆分后的SLC Block可以重新写入数据。
可选地,在将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入数据后,所述方法还包括:
若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将三个含有有效数据的SLC Block合并为一个TLC Block,消除三个SLC Block中的有效数据,所述三个SLC Block可以重新写入数据。
可选地,检测所述非易失存储器中空闲的存储块数量是否小于第一预设值,所述方法还包括:
若所述空闲的存储块数量大于第一预设值,所述非易失存储器中需要写入的系统数据直接写入SLC Block。
可选地,检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据,所述方法还包括:
若所述已写入系统数据的SLC Block中,有两个以下的SLC Block含有无效数据,则含有无效数据的SLC Block不进行合并。
本发明实施例还提供了一种系统数据处理的装置,所述方法应用于非易失存储器,所述非易失存储器中存储系统数据的存储块包括:SLC Block以及TLC Block,所述装置包括:
接收模块,用于接收上位机发送的系统数据写入指令;
写入模块,用于根据所述系统数据写入指令,将所述系统数据写入所述SLCBlock;
第一检测模块,用于检测所述非易失存储器中空闲的存储块数量是否小于第一预设值;
第二检测模块,用于检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据;
第三检测模块,用于检测已写入系统数据的TLC Block数量是否达到第二预设值;
第一合并消除模块,用于若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLCBlock中的无效数据,使得含有无效数据的SLC Block可以重新写入数据。
可选地,所述装置还包括:
拆分模块,用于若所述已写入系统数据的TLC Block数量达到第二预设值,且已写入系统数据的TLC Block中含有无效数据,根据TLC Block中无效数据数量,拆分为对应于无效数据数量的SLC Block,拆分后的SLC Block可以重新写入数据。
可选地,所述装置还包括:
第二合并消除模块,用于若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且所述已写入系统数据的TLCBlock数量没有达到第二预设值,将三个含有有效数据的SLC Block合并为一个TLC Block,消除三个SLC Block中的有效数据,所述三个SLC Block可以重新写入数据。
可选地,所述装置还包括:
直接写入模块,用于若所述空闲的存储块数量大于第一预设值,所述非易失存储器中需要写入的系统数据直接写入SLC Block。
与现有技术相比,本发明提供的一种系统数据处理的方法以及装置,通过重新设计了垃圾回收机制,符合条件时清除SLC Block无效数据,释放出的SLC Block还可以继续写入数据,保障了SLC Block中数据的有效性,在SLC Block写满有效数据后,再将数据写入TLC Block,使得数据可以优先写入SLC Block,而且因为SLC Block的特性,使得非易失存储器的系统数据写入速度比优先写入TLC Block更快。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明一种系统数据处理方法的流程图;
图2是本发明一种系统数据处理方法另一步骤的流程图;
图3是本发明一种系统数据处理方法另一情况的流程图;
图4是本发明实施例的映射表示意图;
图5是本发明一种系统数据处理装置的框图;
图6是本发明一种系统数据处理装置的另一框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。应当理解,此处所描述的具体实施例仅用以解释本发明,仅仅是本发明一部分实施例,而不是全部的实施例,并不用于限定本发明。
参照图1,示出了一种系统数据处理方法的流程图,该方法应用于非易失存储器,非易失存储器中存储系统数据的存储块包括:SLC Block以及TLC Block,系统数据处理的具体方法可以包括如下步骤:
步骤101:接收上位机发送的系统数据写入指令。
本发明实施例中,非易失存储器在出厂时,都必须先要预置系统数据在非易失存储器中,该数据是非易失存储器可以正常完成各项功能和任务的基础数据,若是系统数据受损,可能会使得非易失存储器无法使用,所以系统数据的重要性不言而喻,而SLC形式的1个存储单元可存放1bit的数据,只需要两种电压就可以实现数据的表达,其相对于TLC来说,数据访问所需时间短,因此传输速度更块,并且稳定性高,所以将系统数据写入SLCBlock,利用SLC Block的稳定性好,读写速度快的特性,使非易失存储器能更好的工作。本发明实施例对系统数据写入非易失存储器的工作方式不做具体限定。
步骤102:根据系统数据写入指令,将系统数据写入SLC Block。
本发明实施例中,非易失存储器根据写入指令,开始将系统数据写入SLC Block,同时垃圾回收机制开始工作,周期性的检测各项条件是否符合垃圾回收机制运作的要求。本发明实施例对垃圾回收机制的工作方式不做具体限定。
步骤103:检测非易失存储器中空闲的存储块数量是否小于第一预设值。
本发明实施例中,在垃圾回收机制开始工作后,会定期检测非易失存储器中空闲的存储块数量是否小于第一预设值,空闲的存储块是指非易失存储器中还没有写入任何数据的存储块,其包括SLC Block以及TLC Block,本发明实施例中第一预设值为20%。本发明实施例对检测空闲存储块数量的具体方式,第一预设值的具体数据不做具体限定。
步骤104:检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据。
本发明实施例中,在垃圾回收机制开始工作后,会定期检测非易失存储器中已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据,系统数据写入SLC Block中的可能是无效数据,无效数据是指对应于同一个逻辑地址的,旧的SLC Block中的数据,在非易失存储器有一个映射表,这个映射表中存储着逻辑地址与SLC Block物理地址的对应关系,例如:逻辑地址0对应SLC Block中page0,对逻辑地址0写入一个数据,此时page0中就会写入一个数据,再一次对逻辑地址0写入一个数据,此时page1中就会写入一个数据,这样垃圾回收机制会认定page0中的数据就是无效数据,若是对逻辑地址0进行三次写入,则page0和page1中的数据都是无效数据,只有page2中的数据才是有效数据,需要说明的是,为什么用户要对page0进行多次写入,例如:若是page0的数据不再被使用,或者用户认为page0数据写入错误,需要进行修改,可以采用两种方式,一是发送擦除指令将page0的数据擦除,二是直接再一次对page0进行数据写入,采用第一种方式的缺点是,因为非易失存储器进行擦除操作是以块为单位进行的,所以当需要擦除page0的数据时,page0所在的块中的其他page的数据也会被擦除,这是用户不想得到的结果,并且擦除操作时间很长,用户需要等待擦除结束后才可以继续写入,这种使用非易失存储器的方式效率极为低下,一般不会采用这样的方式,而会采用第二种方式进行对page0的再一次写入。无效数据的出现可能分散在很多个SLC Block中,极端情况下可能整个SLC Block都是无效数据。本发明实施例对已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据的具体方式不做具体限定。
步骤105:检测已写入系统数据的TLC Block数量是否达到第二预设值。
本发明实施例中,在垃圾回收机制开始工作后,会定期检测非易失存储器中已写入系统数据的TLC Block数量是否达到第二预设值,由于系统数据是优先写入SLC Block中,一般情况下,在SLC Block中写满有效的数据后才会将数据写入TLC Block中,本发明实施例中第二预设值为80%,即检测已写入数据的TLC Block数量是否达到,已写入数据的SLC Block与TLC Block数量之和的80%。本发明实施例对检测已写入系统数据的TLCBlock数量的具体方式,第二预设值的具体数据不做具体限定。
步骤106:若空闲的存储块数量小于第一预设值,已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且已写入系统数据的TLC Block数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入数据。
本发明实施例中,当空闲的存储块数量小于20%,已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且已写入系统数据的TLC Block数量没有达到已写入数据的存储块总数量的80%,将含有无效数据的SLC Block进行合并,消除SLCBlock中的无效数据,消除无效数据后的SLC Block可以继续写入系统数据。本发明实施例对消除无效数据,合并SLC Block的具体方式不做具体限定。
可选地,参照图2,在步骤106后还可以包括如下步骤:
步骤107:若空闲的存储块数量小于第一预设值,已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且已写入系统数据的TLC Block数量没有达到第二预设值,将三个含有有效数据的SLC Block合并为一个TLC Block,消除三个SLC Block中的有效数据,三个SLC Block可以重新写入数据。
本发明实施例中,在将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入系统数据后,持续上述过程会使得SLC Block中的系统数据都为有效数据,直到检测条件为空闲的存储块数量小于20%,已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且已写入系统数据的TLCBlock数量没有达到已写入数据的存储块总数量的80%,根据TLC Block的特性,可以将三个含有有效数据的SLC Block合并为一个TLC Block,之后消除三个SLC Block中的有效数据,这样消除有效数据的三个SLC Block可以继续写入数据。本发明实施例对TLC Block的具体方式不做具体限定。
可选地,参照图3,在步骤103、步骤105和步骤104的进行中,根据条件是否满足,有不同的系统数据处理情况,其还包括如下步骤:
步骤200:若已写入系统数据的TLC Block数量达到第二预设值,且已写入系统数据的TLC Block中含有无效数据,根据TLC Block中无效数据数量,拆分为对应于无效数据数量的SLC Block,拆分后的SLC Block可以重新写入数据。
本发明实施例中,若检测已写入系统数据的TLC Block数量达到已写入数据的存储块总数量的80%,且已写入系统数据的TLC Block中含有无效数据,因为一个TLC Block可以拆分出三个SLC Block,一个TLC Block中可能只有一个SLC Block含无效数据,所以可以根据TLC Block中无效数据数量,拆分出一个SLC Block,和两个含有效数据的SLC Block的不满TLC Block,拆分后的SLC Block可以重新写入数据,不满的TLC Block可以继续等待一个含有效数据的SLC Block合进来,组成一个满的含有效数据的TLC Block。本发明实施例对拆分TLC Block的具体方式不做具体限定。
步骤300:若空闲的存储块数量大于第一预设值,非易失存储器中需要写入的系统数据直接写入SLC Block。
本发明实施例中,若检测空闲的存储块数量大于20%,即此时存储块中还有大量空闲存储块没有写入数据,此时垃圾回收机制不进行垃圾回收,需要写入的数据直接写入SLC Block,直到满足垃圾回收机制进行垃圾回收的条件。
步骤400:若已写入系统数据的SLC Block中,有两个以下的SLC Block含有无效数据,则含有无效数据的SLC Block不进行合并。
本发明实施例中,若检测已写入系统数据的SLC Block中,有两个以下的SLCBlock含有无效数据,即只有一个SLC Block中含有无效数据,则含有无效数据的SLC Block不进行合并,也不进行无效数据消除,直到等到满足条件才进行无效数据消除,这样做是为了提升垃圾回收机制的效率,间接提高了非易失存储器的工作效率。
举例说明,如图4所示,该实施例设计方案中,在非易失存储器内的一个简单的映射表,非易失存储器根据写入指令,开始将系统数据写入SLC Block,同时垃圾回收机制开始工作,周期性的检测各项条件是否符合垃圾回收机制运作的要求。非易失存储器进行写入系统数据时从逻辑地址0开始写入,则对应的在SLC Block中物理地址0的地方写入系统数据,在垃圾回收机制开始工作后,会定期检测非易失存储器中空闲的存储块数量是否小于20%,即空闲的存储块数量是否小于SLC Block加上TLC Block的数量之和的20%,同时检测非易失存储器中已写入系统数据的中,是否有两个及以上的SLC Block含有无效数据,如对逻辑地址1进行了三次写入,对应的SLC Block中物理地址1、2、3中都会有数据,则物理地址1和2中的数据被视为无效数据,对地址4进行了两次写入,对应的SLC Block中物理地址6、7中都会有数据,则物理地址6中的数据被视为无效数据,对地址8进行了两次写入,对应的SLC Block中物理地址11、12中都会有数据,则物理地址11中的数据被视为无效数据,同时也会检测非易失存储器中,已写入系统数据的TLC Block数量,是否达到已写入数据的SLC Block与TLC Block总数量80%。
当系统数据写入进行到逻辑地址9时,SLC Block中物理地址到了13,此时假设检测到空闲的存储块数量小于20%,已写入系统数据的SLC Block中,有四个SLC Block含有无效数据,物理地址1、2、6、11的SLC Block,且已写入系统数据的TLC Block数量没有达到已写入数据的存储块总数量的80%,将含有无效数据的SLC Block进行合并,消除SLCBlock中的无效数据,消除无效数据后的SLC Block1、2、6、11可以继续写入系统数据,之后SLC Block1、2、6、11对应的逻辑地址按序往下排,需要说明的是因为执行垃圾回收机制需要时间,而这段时间内系统数据还在不停的写入,所以当进行完此次垃圾回收之后,SLCBlock1、2、6、11对应的逻辑地址不一定是逻辑地址10、11、12、13。
在将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入系统数据后,持续上述过程会使得SLC Block中的系统数据都为有效数据,直到检测条件为空闲的存储块数量小于20%,已写入系统数据的SLCBlock中没有含有无效数据的SLC Block,且已写入系统数据的TLC Block数量没有达到已写入数据的存储块总数量的80%,根据TLC Block的特性,可以将三个含有有效数据的SLCBlock合并为一个TLC Block,即SLC Block物理地址0、3、4的三个SLC Block合并成一个TLCBlock,该TLC Block也会有物理地址以及与之对应的逻辑地址,在合并之后消除SLC Block物理地址0、3、4中的有效数据,这样消除有效数据的三个SLC Block可以继续写入数据。
若检测已写入系统数据的TLC Block数量达到已写入数据的存储块总数量的80%,且已写入系统数据的TLC Block中含有无效数据,因为一个TLC Block可以拆分出三个SLC Block,若一个TLC Block中有一个SLC Block含无效数据,所以可以根据TLC Block中无效数据数量,拆分出一个SLC Block,和两个含有效数据的SLC Block的不满TLCBlock,若有两个SLC Block含无效数据,则可以拆分出两个SLC Block,和一个含有效数据的SLC Block的不满TLC Block,若三个SLC Block都含无效数据,则可以拆分出三个SLCBlock,该TLC Block解散,拆分后的SLC Block可以重新写入数据,不满或者解散的TLCBlock可以继续等待含有效数据的SLC Block合进来,组成一个满的含有效数据的TLCBlock。
若检测空闲的存储块数量大于20%,即此时存储块中还有大量空闲存储块没有写入数据,此时垃圾回收机制不进行垃圾回收,需要写入的数据直接写入SLC Block,直到满足垃圾回收机制进行垃圾回收的条件。若检测已写入系统数据的SLC Block中,有两个以下的SLC Block含有无效数据,即只有一个SLC Block中含有无效数据,则含有无效数据的SLCBlock不进行合并,也不进行无效数据消除,直到等到满足条件才进行无效数据消除,这样做是为了提升垃圾回收机制的效率,间接提高了非易失存储器的工作效率。
需要说明的是,上述是以系统数据作为实施例来说明的,在实际应用中,只要是用户写入的数据,都可以按照上述方法将数据优先写入SLC Block中,本发明实施例并不限定数据的类型。垃圾回收机制的周期性检测是根据具体情况设定的时间,并没有固定时间,可以根据用户的具体需求来设定,当然可以理解的是,若是将周期时间设置比较长,则非易失存储器的工作效率相比较于设置时间短的要高一些,根据非易失存储器的存储容量,将系统数据全部写入非易失存储器后,系统数据可能全都写入SLC Block,也可能部分数据在SLC Block中,部分数据在TLC Block,因为有映射表,所以用户在使用非易失存储器时,系统数据用的哪部分,就从对应的物理地址中读取出来使用,并且将系统数据写入SLCBlock,利用SLC Block的稳定性好,读写速度快的特性,使非易失存储器能更好的工作,提升了用户的使用感。
需要说明的是,上述数据是为了使得实施例更加清晰易懂而例举的简单实施例,并不代表所有非易失存储器的指标,并且因为非易失存储器采用的元器件的制作工艺质量不同,所以能达到的工作状态会有差异,上述数据是满足一般制作工艺情况下,经过大量的仿真实验得出的数据,并不代表所有非易失存储器的指标。
参照图5,示出了一种系统数据处理装置的框图,该装置包括:
接收模块310,用于接收上位机发送的系统数据写入指令;
写入模块320,用于根据系统数据写入指令,将系统数据写入SLC Block;
第一检测模块330,用于检测非易失存储器中空闲的存储块数量是否小于第一预设值;
第二检测模块340,用于检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据;
第三检测模块350,用于检测已写入系统数据的TLC Block数量是否达到第二预设值;
第一合并消除模块360,用于若空闲的存储块数量小于第一预设值,已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且已写入系统数据的TLCBlock数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入数据。
可选地,参照图6,该装置还包括:
拆分模块370,用于若已写入系统数据的TLC Block数量达到第二预设值,且已写入系统数据的TLC Block中含有无效数据,根据TLC Block中无效数据数量,拆分为对应于无效数据数量的SLC Block,拆分后的SLC Block可以重新写入数据;
第二合并消除模块380,用于若空闲的存储块数量小于第一预设值,已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且已写入系统数据的TLC Block数量没有达到第二预设值,将三个含有有效数据的SLC Block合并为一个TLC Block,消除三个SLCBlock中的有效数据,三个SLC Block可以重新写入数据;
直接写入模块390,用于若空闲的存储块数量大于第一预设值,非易失存储器中需要写入的系统数据直接写入SLC Block。
通过上述实施例,本发明在对非易失存储器进行数据写入时,在符合条件时清除SLC Block无效数据,释放出的SLC Block还可以继续写入数据,保障了SLC Block中数据的有效性,在SLC Block写满有效数据后,再将数据写入TLC Block,使得数据可以优先写入SLC Block,而且因为SLC Block稳定性好,读写速度快的特性,使得非易失存储器的系统数据读写速度比优写入TLC Block更快,也更稳定。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种系统数据处理的方法以及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (9)
1.一种系统数据处理的方法,其特征在于,所述方法应用于非易失存储器,所述非易失存储器中存储系统数据的存储块包括:SLC Block以及TLC Block,所述方法包括:
接收上位机发送的系统数据写入指令;
根据所述系统数据写入指令,将所述系统数据写入所述SLC Block;
检测所述非易失存储器中空闲的存储块数量是否小于第一预设值;
检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据;
检测已写入系统数据的TLC Block数量是否达到第二预设值;
若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入数据。
2.根据权利要求1所述的方法,其特征在于,检测已写入系统数据的TLC Block数量是否达到第二预设值,所述方法还包括:
若所述已写入系统数据的TLC Block数量达到第二预设值,且已写入系统数据的TLCBlock中含有无效数据,根据TLC Block中无效数据数量,拆分为对应于无效数据数量的SLCBlock,拆分后的SLC Block可以重新写入数据。
3.根据权利要求1所述的方法,其特征在于,在将含有无效数据的SLC Block进行合并,消除SLC Block中的无效数据,使得含有无效数据的SLC Block可以重新写入数据后,所述方法还包括:
若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将三个含有有效数据的SLC Block合并为一个TLC Block,消除三个SLC Block中的有效数据,所述三个SLC Block可以重新写入数据。
4.根据权利要求1所述的方法,其特征在于,检测所述非易失存储器中空闲的存储块数量是否小于第一预设值,所述方法还包括:
若所述空闲的存储块数量大于第一预设值,所述非易失存储器中需要写入的系统数据直接写入SLC Block。
5.根据权利要求1所述的方法,其特征在于,检测已写入系统数据的SLC Block中,是否有两个及以上的SLC Block含有无效数据,所述方法还包括:
若所述已写入系统数据的SLC Block中,有两个以下的SLC Block含有无效数据,则含有无效数据的SLC Block不进行合并。
6.一种系统数据处理的装置,其特征在于,所述方法应用于非易失存储器,所述非易失存储器中存储系统数据的存储块包括:SLC Block以及TLC Block,所述装置包括:
接收模块,用于接收上位机发送的系统数据写入指令;
写入模块,用于根据所述系统数据写入指令,将所述系统数据写入所述SLC Block;
第一检测模块,用于检测所述非易失存储器中空闲的存储块数量是否小于第一预设值;
第二检测模块,用于检测已写入系统数据的SLC Block中,是否有两个及以上的SLCBlock含有无效数据;
第三检测模块,用于检测已写入系统数据的TLC Block数量是否达到第二预设值;
第一合并消除模块,用于若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中,有两个及以上的SLC Block含有无效数据,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将含有无效数据的SLC Block进行合并,消除SLCBlock中的无效数据,使得含有无效数据的SLC Block可以重新写入数据。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
拆分模块,用于若所述已写入系统数据的TLC Block数量达到第二预设值,且已写入系统数据的TLC Block中含有无效数据,根据TLC Block中无效数据数量,拆分为对应于无效数据数量的SLC Block,拆分后的SLC Block可以重新写入数据。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二合并消除模块,用于若所述空闲的存储块数量小于第一预设值,所述已写入系统数据的SLC Block中没有含有无效数据的SLC Block,且所述已写入系统数据的TLC Block数量没有达到第二预设值,将三个含有有效数据的SLC Block合并为一个TLC Block,消除三个SLC Block中的有效数据,所述三个SLC Block可以重新写入数据。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
直接写入模块,用于若所述空闲的存储块数量大于第一预设值,所述非易失存储器中需要写入的系统数据直接写入SLC Block。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811594311.XA CN111367460B (zh) | 2018-12-25 | 2018-12-25 | 一种系统数据处理的方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811594311.XA CN111367460B (zh) | 2018-12-25 | 2018-12-25 | 一种系统数据处理的方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367460A true CN111367460A (zh) | 2020-07-03 |
CN111367460B CN111367460B (zh) | 2023-05-09 |
Family
ID=71203947
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811594311.XA Active CN111367460B (zh) | 2018-12-25 | 2018-12-25 | 一种系统数据处理的方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111367460B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679437A (zh) * | 2013-11-27 | 2015-06-03 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
US20160342509A1 (en) * | 2015-05-22 | 2016-11-24 | Sandisk Enterprise Ip Llc | Hierarchical FTL Mapping Optimized for Workload |
CN106648443A (zh) * | 2015-10-30 | 2017-05-10 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器存储装置 |
CN108228478A (zh) * | 2018-01-05 | 2018-06-29 | 湖南国科微电子股份有限公司 | 一种ssd写性能的提高方法及装置 |
US20180211708A1 (en) * | 2017-01-25 | 2018-07-26 | Toshiba Memory Corporation | Memory system and control method |
-
2018
- 2018-12-25 CN CN201811594311.XA patent/CN111367460B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104679437A (zh) * | 2013-11-27 | 2015-06-03 | 群联电子股份有限公司 | 数据写入方法、存储器控制电路单元与存储器储存装置 |
US20160342509A1 (en) * | 2015-05-22 | 2016-11-24 | Sandisk Enterprise Ip Llc | Hierarchical FTL Mapping Optimized for Workload |
CN106648443A (zh) * | 2015-10-30 | 2017-05-10 | 群联电子股份有限公司 | 有效数据合并方法、存储器控制器与存储器存储装置 |
US20180211708A1 (en) * | 2017-01-25 | 2018-07-26 | Toshiba Memory Corporation | Memory system and control method |
CN108228478A (zh) * | 2018-01-05 | 2018-06-29 | 湖南国科微电子股份有限公司 | 一种ssd写性能的提高方法及装置 |
Non-Patent Citations (2)
Title |
---|
吴俊军;刘震宇;: "一种基于功能表的高效FTL算法" * |
高阳;王代华;王晓楠;: "存储测试系统中FLASH的存储可靠性技术研究" * |
Also Published As
Publication number | Publication date |
---|---|
CN111367460B (zh) | 2023-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10031698B2 (en) | Method of wear leveling for data storage device | |
US8332576B2 (en) | Data reading method for flash memory and controller and storage system using the same | |
US8028120B2 (en) | System with flash memory device and data recovery method thereof | |
KR100389867B1 (ko) | 플래시 메모리 관리방법 | |
US10740013B2 (en) | Non-volatile data-storage device with spare block pools using a block clearing method | |
KR102252419B1 (ko) | 플래시 메모리 장치를 위한 주소변환 시스템 및 그 방법 | |
US8055873B2 (en) | Data writing method for flash memory, and controller and system using the same | |
EP2423819A1 (en) | Memory mapping techniques | |
EP1576593B1 (en) | Dual journaling store method and storage medium thereof | |
US8856475B1 (en) | Efficient selection of memory blocks for compaction | |
KR20090081657A (ko) | 페이지 복사 횟수를 줄일 수 있는 메모리 카드 시스템의쓰기 및 병합 방법 | |
KR20150089042A (ko) | 호스트에 연결될 수 있는 통신 디바이스에 의해 포함된 대용량 스토리지를 위한 플래시 메모리를 제어하기 위한 방법, 및 상기 방법을 수행하기 위한 컴퓨터 프로그램 물건 | |
US8090692B2 (en) | Method for using an OTP storage device | |
US20080209161A1 (en) | Storage device and method of mapping a nonvolatile memory based on a map history | |
US20170285953A1 (en) | Data Storage Device and Data Maintenance Method thereof | |
CN113986773A (zh) | 基于固态硬盘的写放大优化方法、装置及计算机设备 | |
CN111367460A (zh) | 一种系统数据处理的方法以及装置 | |
US8250285B2 (en) | Non-volatile dual memory die for data storage devices | |
CN111367823B (zh) | 一种写入有效数据的方法以及装置 | |
KR20090047880A (ko) | 비휘발성 메모리의 관리 방법 및 관리 시스템 | |
KR100982440B1 (ko) | 단일 플래시 메모리의 데이터 관리시스템 | |
CN108509295A (zh) | 存储器系统的操作方法 | |
CN111949560B (zh) | 一种数据写入方法、装置及存储设备 | |
CN116501655A (zh) | 将存储器块解除分配的存储控制器及其操作方法 | |
CN116610595A (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 101, Floor 1-5, Building 8, Yard 9, Fenghao East Road, Haidian District, Beijing 100094 Applicant after: Zhaoyi Innovation Technology Group Co.,Ltd. Address before: 100083 12 Floors, Block A, Tiangong Building, Science and Technology University, 30 College Road, Haidian District, Beijing Applicant before: GIGADEVICE SEMICONDUCTOR(BEIJING) Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |