CN115543180A - 一种固态硬盘的管理方法、装置及固态硬盘 - Google Patents
一种固态硬盘的管理方法、装置及固态硬盘 Download PDFInfo
- Publication number
- CN115543180A CN115543180A CN202110738604.6A CN202110738604A CN115543180A CN 115543180 A CN115543180 A CN 115543180A CN 202110738604 A CN202110738604 A CN 202110738604A CN 115543180 A CN115543180 A CN 115543180A
- Authority
- CN
- China
- Prior art keywords
- type
- flash memory
- flash
- media
- solid state
- 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
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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0629—Configuration or reconfiguration of storage systems
-
- 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]
Abstract
本申请提供了一种固态硬盘的管理方法,该方法包括:在所述固态硬盘的使用过程中,将该固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质。其中,该第二类闪存介质的单位存储容量大于第一类闪存介质的单位存储容量。本方法可以实现从第一类闪存介质到第二类闪存介质的转换,从而避免数据从不同类型介质之间进行数据迁移时对硬盘的过度磨损,能有效提升固态硬盘的寿命。
Description
技术领域
本申请涉及存储技术领域,尤其涉及一种固态硬盘的管理方法、装置及固态硬盘。
背景技术
当前闪存存储介质根据其可存储的数据比特个数可分为多种类型,分别为单层存储单元(Single Level Cell,SLC)、多层存储单元(Multi Level Cell,MLC)、三层存储单元(Triple Level Cell,TLC)以及四层存储单元(Quad Level Cell,QLC),这些类型中每个存储单元分别存储1、2、3、4个比特。每个单元存储数据比特个数越多,整体容量越大,但是其性能和寿命越低。
目前基于混合式闪存存储介质的固态硬盘采用快速闪存介质和慢速闪存介质混合存储的方式。例如,静态划分为SLC作快速闪存介质、TLC作慢速闪存介质为例,具体的技术方案为:静态划分闪存存储介质,将一部分慢速的TLC介质以SLC方式进行数据写入和读取,剩余部分保持TLC方式进行数据的写入和读取。对于接收的读写请求,闪存盘首先尝试从快速的SLC介质服务,而降低整体数据读写时延,提高数据读写速度。但是,该混合存储的方式导致数据被频繁迁移,使得慢速闪存存储介质被快速磨损,进而影响固态硬盘的寿命,降低数据在固态硬盘内部的读写性能。
发明内容
本申请提供了一种固态硬盘的管理方法、装置及固态硬盘,该方法能提高固态硬盘的读写性能,以及延长固态硬盘的寿命。
第一方面,本申请实施例提供了一种固态硬盘的管理方法,该固态硬盘包括第一类闪存介质和第二类闪存介质,该方法包括:在所述固态硬盘的使用过程中,将该固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质。其中,该第二类闪存介质的单位存储容量大于第一类闪存介质的单位存储容量。本方法可以实现从第一类闪存介质到第二类闪存介质的转换,从而避免数据从不同类型介质之间进行数据迁移时对硬盘的过度磨损,能有效提升固态硬盘的寿命。
一种可能的设计方式,通过对第一部分存储介质执行重编程操作,将第一部分存储介质从第一类闪存介质转换为第二类闪存介质。
本方法通过重编程操作,可以实现第一类闪存介质到第二类闪存介质的就地转换,例如从慢速闪存介质转化为快速闪存介质。
一种可能的设计方式,在第一部分存储介质的空间已写满或不足以写入新数据时,将固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质。
本方法使得空间不足的快速闪存介质可被及时再次利用,从而可持续分配新的快速闪存介质,为固态硬盘提供持续数据快速访问响应。
一种可能的设计方式,将固态硬盘中的第二部分存储介质配置为第一类闪存介质,其中,第二部分存储介质为空闲的第二类闪存介质。
本方法还能实现空闲的慢速闪存介质到快速闪存存储介质的转化,为后续数据写操作提前分配新的快速闪存存储介质,不会带来现有技术中数据的频繁迁移,而导致慢速闪存存储介质被快速磨损,从而优化固态硬盘的整体性能和寿命。
一种可能的设计方式,当第一类闪存介质都全部转化为第二类闪存介质时,将固态硬盘中的第二部分存储介质配置为第一类闪存介质。
一种可能的设计方式,第一部分存储介质已经存储有第一数据,通过重编程的方式,向第一部分存储介质再写入第二数据,使得第一部分存储介质存储的单位存储容量等于第二类存储介质的单位存储容量。
一种可能的设计方式,所述第二数据包括:由主机下发到固态硬盘的新数据,或,固态硬盘的垃圾回收过程中读取的有效数据。
第二方面,本申请实施例还提供了一种管理固态硬盘的装置,该装置包括:第一转换模块,用于在固态硬盘的使用过程中,将该固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质,其中,所述第二类闪存介质的单位存储容量大于所述第一类闪存介质的单位存储容量。
一种可能的设计方式,所述第一转换模块用于:通过对该第一部分存储介质执行重编程操作,将第一部分存储介质从前述第一类闪存介质转换为前述第二类闪存介质。
一种可能的设计方式,所述第一转换模块用于:在该第一部分存储介质的空间已写满或不足以写入新数据时,将该固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质。
一种可能的设计方式,所述装置还包括:第二转换模块,用于将该固态硬盘中的第二部分存储介质配置为第一类闪存介质,其中,该第二部分存储介质为空闲的第二类闪存介质。
一种可能的设计方式,所述第二转换模块用于:当前述第一类闪存介质都全部转化为第二类闪存介质时,将该固态硬盘中的第二部分存储介质配置为第一类闪存介质。
一种可能的设计方式,第一部分存储介质已经存储有第一数据;所述第一转换模块用于:通过重编程的方式,向该第一部分存储介质再写入第二数据,使得第一部分存储介质存储的单位存储容量等于第二类存储介质的单位存储容量。
一种可能的设计方式,所述第二数据包括:由主机下发到所述固态硬盘的新数据,或,所述固态硬盘的垃圾回收过程中读取的有效数据。
第三方面,本申请实施例还提供了一种固态硬盘,所述固态硬盘包括:存储介质,该存储介质包括第一类存储介质和第二类存储介质;控制器,连接该存储介质,并用于执行如第一方面以及其任一种可能的设计方式中的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面以及其任一种可能的设计方式中的方法。
第五方面,本申请实施例还提供了一种计算机程序产品,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如第一方面以及其任一种可能的设计方式中的方法。
附图说明
通过结合附图描述本申请实施例,可以使得本申请实施例更加清楚:
图1是本申请实施例提供的一种存储介质布局示例图。
图2是本申请实施例提供的一种存储介质转化的方法示例图。
图3是本申请实施例提供的一种固态硬盘的管理方法流程示意图。
图4(a)是本申请实施例提供的一种闪存芯片的逻辑结构示意图。
图4(b)是本申请实施例提供的一种块中的硬件结构示意图
图5是本申请实施例提供的一个浮动门效应晶体管的示意图。
图6是本申请实施例提供的一种重编程的方法示意图。
图7是本申请实施例提供的一种垃圾回收的方法示意图。
图8是本申请实施例提供了一种二级映射表管理方法。
图9是本申请实施例提出的一种存储介质固态硬盘的管理装置。
图10是本申请实施例提出的一种固态硬盘的结构图。
具体实施方式
本发明实施例描述的存储架构是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
闪存(Flash Memory)是一种电子式可擦除编程存储器,与传统的磁盘介质相比,闪存具有读写带宽高、访问延迟低、功耗低、稳定性强的特点。根据每个存储单元可存储的数据比特个数,闪存的存储介质可分为多种类型,例如单层存储单元(Single Level Cell,SLC)、多层存储单元(Multi Level Cell,MLC)、三层存储单元(Triple Level Cell,TLC)以及四层存储单元(Quad Level Cell,QLC),这些存储单元分别存储1、2、3、4个比特信息。每个存储单元存储数据比特个数越多,整体容量越大,但是其性能和寿命越低。
需要说明的是,本申请实施例中的不同类型闪存介质的是指它们的单位存储容量是不同的,换句话说,它们具有不同类型的存储单元(诸如前述的SLC、MLC、TLC和QLC),因此单个存储单元可存储的数据比特个数是不同的。这里的存储单元是指闪存芯片中由字线和位线连接的多个晶体管,每个晶体管用于存储1位或多位数据,后文将做详细介绍。
对于SLC,每个存储单元存储1比特(bit)信息,也就是只有0、1两种电压变化,结构简单,电压控制也快速,反映出来的特点就是寿命长,性能强,P/E寿命在1万到10万次之间,但缺点就是容量低而成本高,毕竟一个存储单元只能存储1比特信息。
对于MLC,每个存储单元存储2比特信息,需要更复杂的电压控制,有00,01,10,11四种变化,这也意味着写入性能、可靠性能降低了。其P/E寿命根据不同制程在3000-5000次不等。可见,MLC容量是SLC的两倍,但是成本却与SLC大致相当,所以相同容量的SSD,MLC芯片成本要比SLC芯片低很多。此外,MLC由于每个Cell可以存储4个状态,其复杂度比较高,所以出错率也很高。
对于TLC,每个存储单元存储3比特信息,电压从000到001有8种变化,容量比MLC再次增加1/3,成本更低,但是架构更复杂,P/E编程时间长,写入速度慢,P/E寿命也降至1000-3000次,部分情况会更低。寿命短只是相对而言的,经测试,TLC颗粒可以正常使用5年以上。
对于QLC,或者可以叫4比特MLC,电压有16种变化,但是容量能增加33%,就是写入性能、P/E寿命与TLC相比会进一步降低。
为了利用不同类型的存储介质的优点,来提升闪存盘的整体容量和性能,目前基于混合式闪存存储介质的固态硬盘(Solid State Drive,SSD)采用快速闪存介质和慢速闪存介质混合存储的方式。现有技术中的混合存储的方式中,闪存存储介质的划分是静态的,即快速闪存和介质和慢速闪存的分布不会发生变化,每个存储单元属于那种介质是预先定义好的。当快速闪存存储介质空间消耗完之后,固态硬盘触发垃圾回收机制,将快速闪存存储介质内部数据读取并写入到慢速闪存存储介质中。随后,擦除该快速闪存存储介质中数据,使得该快速闪存存储介质可被再次用于主机数据的读写。由于该过程将导致数据被频繁迁移,从而导致慢速闪存存储介质被快速磨损,进而影响固态硬盘的寿命。此外,由于快速闪存存储介质可用存储容量较小,若当前用户数据量超出快速闪存存储介质可用容量,则剩余主机数据将被写入慢速闪存存储介质,从而降低数据在固态硬盘内部的读写性能。
鉴于前述问题,图1是本申请实施例提供的一种存储介质布局示例图,固态硬盘100中的存储介质包括快速闪存介质和慢速闪存介质,快速闪存介质和慢速闪存介质是动态划分的。在所述固态硬盘的使用过程中,快速闪存介质和慢速闪存介质可以实现相互转化。其中,快速闪存介质的单位存储容量大于慢速闪存介质的单位存储容量。
固态硬盘100中还包括控制器103,用于指示固态硬盘100中的快速闪存介质和慢速闪存介质实现相互转化,具体的:
图2是本申请实施例提出的一种存储介质转化的方法示例图,快速闪存介质可经过①~④的四个步骤转化为慢速闪存介质,其整个转化过程如下:
①数据写入:对于存储容量足够的快速闪存存储介质101,控制器103将主机下发的数据写入快速闪存存储介质中。
②转化:当快速闪存存储介质101可用的存储容量写满或不足以写入新数据后,控制器103继续将数据二次写入(例如以重编程的方式)快速闪存存储介质101中,直到其单位存储容量达到慢速闪存介质103的存储容量大小,也就是转化成慢速闪存介质102了。举个例子,以SLC作快速闪存介质、TLC作慢速闪存介质时,根据前述的定义,SLC的一个存储单元可以存1比特信息,TLC的一个存储单元可以存3比特信息。当某个SLC存储单元中已写入1比特信息后,再将2个比特信息二次写入该SLC存储单元中,即一共写入了3bit信息,此时该SLC存储单元就转化为TLC存储单元了。也就是,实现了由快速闪存介质101转化为作慢速闪存介质102的过程。其中,重编程是二次写入的一种方式,关于重编程的方法,请参见后文的详细介绍。
③擦除:控制器擦除该慢速闪存介质102中的所有数据,使其恢复为空闲的慢速闪存介质。一种可能的实施方式中,该擦除操作的前提是:垃圾回收机制已经将慢速闪存介质的中的有效数据迁移走。一种可能的实施方式,本步骤中的慢速闪存介质102可以是步骤②中由快速闪存介质转化而来的慢速闪存介质。
④配置:控制器从空闲的慢速闪存介质102中,选择全部或一部分存储介质,将其配置为新的快速闪存存储介质101,用于存储后写操作中的数据,即再次回到①中的步骤,从而形成一次可循环的转化流程。
为了简化表达,将后文的快速闪存介质101统一简称为快闪介质101,慢速闪存介质101统一简称为慢闪介质101。
基于图1中的存储介质布局和图2中存储介质转化方法,图3是本申请提出了一种固态硬盘的管理方法流程示意图,用于实现在固态硬盘中快闪介质和慢闪介质的管理方法。本方法可以为固态硬盘提供持续数据快速访问响应,并且不会造成慢速闪存介质的快速磨损,从而优化固态硬盘的整体性能和寿命。如图3所示,该方法由SSD中的控制器103执行,步骤如下:
步骤301、判断快闪空间的存储容量是否足够。
若当前的快闪介质的存储容量已满或不足以写入新数据时,则向将一部分的快闪介质101中进行重编程写入也就是进入步骤303的内容。否则,继续向快闪空间中写入数据。该快闪空间指由快闪介质101组成的存储空间。
一种可能的实施方式,当控制器103接收到主机下发的新数据时,控制器103首先判断当前的快闪空间剩余的容量是否足够写入新数据,例如,可以判断整个SSD中快闪空间是否足够写入该新数据。可选的,还可以是判断在SSD中的一个并行单元中的快闪空间是否足够写入该新数据,该并行单元可以是闪存芯片中的一个区域(Plane)。
步骤302、判断固态硬盘是否处于工作状态。
一种可选的实施方式,在进行重编程之前,控制器103先判断当前固态硬盘工作状态:
(a)若固态硬盘100处于工作状态(例如正在进行数据写入),则进入步骤303中的步骤。
(b)若固态硬盘100处于空闲状态(非工作状态)时,则进入步骤304中的步骤。
步骤303、以重编程方式,将新数据二次写入快闪介质中,使得该快闪介质转化为慢闪介质。
若固态硬盘处于工作状态,控制器103将写操作中的数据二次写入(例如以重编程的方式)到快闪介质101中,增加快闪介质101中存储的数据量,使得该快闪介质101转化为慢闪介质102。
当一部分的快闪介质101中已经存储有第一数据,可以通过重编程的方式,向这部分存储介质中再写入第二数据,使得这部分快闪介质存储的单位存储容量等于慢闪介质的单位存储容量。
本申请实施例在此给出一种重编程的方法举例,下面将结合图4至图6介绍该方法:
首先,通过图4、图5介绍一下SSD中闪存芯片的结构,以及其中存储单元的结构。SSD中包括多个连接到控制器103上的闪存芯片,闪存芯片是SSD中存储介质的载体。
图4(a)是本申请实施例给出的一种闪存芯片(或flash芯片)的逻辑结构示意图,如图4(a),die是一个或多个闪存芯片的封装。一个die可包含多个区域(Plane),多PlaneNAND是一种能够有效提升性能的设计。例如,一个die内部分成了2个Plane,一个Plane包含多个块(block),一个块由若干个页(Page)组成。
页是闪存芯片中数据写入和读取的最小单位,换言之,控制器103是以页为粒度往块里面写入数据的。同样,页也是闪存芯片中数据读取的最小单位。当一个块写满的时候,SSD中的控制器103会挑选下一个块继续写入。块是SSD中数据擦除和垃圾回收的最小单位,换言之,控制器103在擦除数据时,每次只能擦除整个块,控制器103在数据迁移时,需要将一个块中的有效数据读出来写入其他块中。
一种可能的实施方式,快速闪存存储介质和慢速闪存存储介质以闪存中的页作为最小单位。
图4(b)是本申请实施例给出的一个块(block)中的硬件结构示意图,也就是图4(a)中的块。如图4(b)所示,在一个块中,包括多条Word line(字线)和Bit line(位线),以及由字线和位线连接起来的多个存储单元(即“cell”),每个存储单元中漏极(drain)与位线连接,每个存储单元的栅极(gate)与字线连接(图中未指出栅极和漏极)。每个位线连接的一个cell串中,每次只能读取其中一个存储单元。多个cell串并联则可以并行读取多个存储单元中的数据,例如同时读取一个字线上的多个存储单元中的数据,例如读取一个页中的数据。
一种可能的实施方式,快速闪存存储介质和慢速闪存存储介质可以以一条字线上的存储单元组成的存储空间作为为最小单位。一种可能的实施方式中,一条字线上的存储单元组成的存储空间也就是一个页的空间。可选的,一条字线上也可以存储多个页,页是最小的写入和读取单位,页的大小可以是4KB、8KB、16KB等,本申请实施例不做限制。
以一个16GB容量的闪存芯片为例,每4314*8=34512个存储单元在逻辑上形成一个页,每个页中可以存放4KB的内容和218B的ECC校验数据,页是IO操作的最小单位。每128个页组成一个块,每个2048个块组成一个Plane,一整片闪存芯片由两个panel组成,一个panel存储奇数序号的block,另一个则存储偶数序号的block,两个plane可以并行操作。这只是一个示例,page的尺寸,block的容量,闪存芯片的容量都可以有不同的规格,本实施例不予限定。
具体的,闪存芯片中使用一种叫做“浮动门场效应晶体管”的晶体管作为介质来保存数据。每个这样的晶体管叫做一个“Cell”,也就是前述的存储单元,后文提到的cell和存储单元是同一个意思。图5是本申请实施例给出的一种存储单元的原理示意图,如图5(a)是一个浮动门效应晶体管的示意图,该晶体管中包括一个控制门(Controler Gate,CG)和一个浮动门(Floating gate,FG)。
在闪存中,将电子放置在浮动门中被认为是编程/写入操作,去除电子被认为是擦除操作。具体的:在带负电的源极和带正电的控制门之间施加强电场,使得来自源极的电子隧穿穿过薄氧化层并到达浮动门,即写入数据;通过在控制门上施加强负电压并在源极和漏极端子上施加强正电压,使得被捕获的电子通过薄氧化层回到隧道,即擦除数据。
Cell中的数据存储在浮动门,往浮动门中注入电子的数目不同,浮动门的阈值电压(Vt,前面那图的横坐标)也不同。通过前述的字线向浮动门效应晶体管的栅极施加电压,当施加到控制门的电压高于阈值电压时,浮动门效应晶体管开始导通,否则就截止。因此,通过测量其阈值电压并将其与固定电压电平进行比较来识别Cell中的信息,被称为闪存中的读操作,具体的:
图5(b)和(c)是本申请实施例给出的一种SLC存储单元和MLC存储单元的电压分布示例图。一种可能的实施方式,本申请实施例中的慢闪介质101可以是MLC存储单元组成的存储介质,快闪介质101可以说SLC存储单元组成的存储介质。可选的,慢闪介质是TLC,快闪介质是SLC,本申请实施例对该具体的组合方式不做限制。
如图(b),通过字线向控制门上施加某电压,记录该SLC存储单元导通时的阈值电压为Vt(横坐标)。根据Vt的大小分为两种情况:若该阈值电压小于预设值V0,则该SLC存储单元存储的数据为1,若该阈值电压大于预设值V0,则该SLC存储单元存储的数据为0。对于SLC,其擦除(Erase)状态存储的数据也是1。图(b)的纵坐标是指不同的cell的阈值电压的分布图,向控制门施加不同的电压,导通的cell数量是不同的,从而得到SLC存储单元在阈值电压上的分布曲线。
如图(c),通过字线向控制门上施加电压,记录该MLC存储单元导通时的阈值电压为Vt(横坐标)。根据Vt的大小分为四种情况:若该阈值电压小于预设值Vr,则该SLC存储单元存储的数据为11;若该阈值电压大于预设值Vr而小于Vp时,则该MLC存储单元存储的数据为10;若该阈值电压大于预设值Vp而小于Vq时,则该MLC存储单元存储的数据为01;若该阈值电压大于预设值Vq时,则该MLC存储单元存储的数据为00。对于MLC,其擦除状态存储的数据是11。图(c)的纵坐标请参见前文类似描述,此处不再赘述。
同理,MLC存储单元的分布图也是类似SLC和MLC,只不过它可以存储8个数据,此处不再赘述。
由于存储单元的阈值电压Vt可以保持、增加但不降低,换句话说,低电压状态可以重新编程到较高的电压状态,以表示新的值。基于这个原理,本申请实施例提供了一种新的重新编程方法,可以在对cell进行擦除之前,可以对cell进行重新编程(reprogramm),使其存入更多的数据。
本方法基本思想是通过将慢闪介质存储单元(例如SLC)的电压范围划分为较小的范围来重新编程该SLC,以表示单元中的新数据,使其能存储更多的数据。
下面以将以SLC重编程为MLC为例介绍本方法,一种实施方式举例:
如图6(a)所示,将SLC的电压范围预分配成四个状态:ER、P1、P2、P3,这四个状态的阈值电压范围依次升高。在SLC首次写如数据时,根据数据的值,将其写入ER和P2状态所在的电压范围中。其中,ER作为擦除状态,其本身就代表“1”,可以不进行操作。若数据为“0”,则需要将其写入P2状态所在的范围中。
如图6(b)所示,假设对于某个SLC单元,在重编程之前已写入数据“0”,即图6(a)中的SLC中P2状态所在的阈值电压范围。若此时需要再向该存储单元写入另一个数据“0”,重编程过程如图6所示,首先读取原始存储数据“0”,再进行重编程,将第二个“0”的数据写入高位,原始写入的数据“0”则位于低位。例如,向该SLC存储单元的控制门施加电压,改变浮动门中的电子数量,使其阈值电压升高,由原始SLC的P2状态转换MLC中的为P3状态,从而将更多比特数据存储在同一存储单元中。该重编程过程实现于擦除操作之前,该过程将导致数据写入可靠性降低,因此,重编程过程通过限制3D闪存重写层数实现数据可靠写入。
图6中的由“0”重编程得到“00”仅作为示例,还可以由“0”二次写入得到“01”、由“1”二次写入得到“10”、由“1”重编程得到“11”。其中若重编程新写入的一位数据为“1”,则其状态不需要发生变化,即无需二次施加电压。
同样,该方法的思想也同样适用于将SLC重新编程为TLC、或是将SLC重新编程为MLC的方法中,原理都是相同的,可以使得SLC中两个电压状态之间的大电压范围被利用,此处不再赘述。
本申请实施例提供的上述方法,使用固定编码方案,使得cell的阈值电压通过沿x轴从“ER”向右移动状态,可以在MLC中表示三位值,或在MLC中表示三位值。这种电压状态移动可以通过程序操作来实现,换句话说,重编程可以不需要额外硬件修改,仅依赖于控制器算法实现。可选的,二次写入也可以通过硬件方式实现,本申请实施例对此不做限制。
一种可能的实施方式,可以每个并行单元(例如Plane)配备两个或三个写寄存器,以保存2个页或3个页,这些页面将一次写入同一字线。对于读操作,如果是读取MLC中的数据,则读检测电路使用三个参考电压来区分这四个状态,如果是读取TLC中的数据,则读检测电路使用七个参考电压来区分这四个状态。
通过图4至图6介绍的重编程方法实现二次写入后,快闪介质101中的第一部分介质的存储单元中的数据量增加,例如达到原来的2倍,例如从SLC转化为MLC。可以理解为快闪介质101转化为慢闪介质102了。一种可能的实施方式,页作为本申请实施例中快闪介质和慢闪介质的最小单位,例如原来一个页可以存4KB数据,重编程后则存储了8KB数据,其存储容量变大了,但相应的读取速度和性能降低了。
步骤304、通过重编程方式,将有效数据通过垃圾回收机制迁移到快闪介质中,使得快闪介质重定义为慢闪介质。
接步骤302,若固态硬盘处于空闲状态时,触发固态硬盘的垃圾回收机制,将有效数据迁移至已写满或不足以写入新数据的快闪介质中,增加快闪介质101中存储的数据量,使得该快闪介质101转化为慢闪介质102。具体的:控制器103读取慢闪介质102中的有效数据,将有效数据通过重编程的方式,写入快闪介质中,使得该快闪介质转化为慢速闪介质。例如,选择某一闪存块(也就是前文的block),随后将闪存块内部存储在有效闪存存储介质中的数据读取,并以重编程方式写入其他闪存块的快速闪存介质中
一种可能的实施方式,若执行垃圾回收过程中存在主机数据访问,则中断垃圾回收数据的迁移过程,优先响应数据读写操作,待固态硬盘再次进行空闲时间后继续执行垃圾回收。
一种可选的实施方式,步骤304可以不由步骤302触发,而是:在固态硬盘处于空闲状态时,控制器103判断当前快闪介质可用容量信息,若仍存在快闪介质可用容量足够(例如未达到阈值),则不进行重编程操作。否则,触发慢速闪存存储介质的垃圾回收机制,读取闪存块内部有效数据,二次写入(例如以重编程方式)到快闪介质中。
图7是本申请实施例给出的一种垃圾回收的方法示意图,可以实现将有效数据重编程写入到快闪介质中,回收的最小单位是闪存块(也就是前文的block)。如图7所示,假设闪存块210中的慢闪介质212和快闪介质211中存在有效数据,则控制器103读取它们当中的有效数据,通过重编程的方式,存储在另一个闪存块200的快闪介质201中。其中,此处重编程方式,请参照前文步骤303中的描述,此处不再赘述。例如,快闪介质201已经存储了数据,通过重编程向201中再写入有效数据后,使得该快闪介质201转化为慢闪介质,即单位存储单元的存储容量增大,例如由SLC转化为MLC。
一种可能的实施方式,图7中的快闪介质和慢闪介质的单位是可以是页。
此外,闪存块210进行垃圾回收后,该闪存块被擦除,210中的闪存介质都转化为空闲的介质,可以用于后续步骤305的重定义。
步骤305、判断快闪介质是否被全部转化为慢闪介质。
可选的,若快速闪存介质全部转化为慢闪介质,控制器103就分配新的快速闪存存储介质,用于响应后续写操作,具体参见步骤306。否则,回到步骤502继续执行,参见图3中的流程。
一种可能的实施方式,判断一个并行单元(Plane)中的快闪介质是否都转化为慢闪介质,例如判断该并行单元中所有的快闪页是否都被重编程为慢闪页。
步骤306、从空闲的慢闪介质中配置出新的快闪介质。
一种可能的实施方式,快闪介质布局于不同并行单元的不同闪存块之中,分配顺序服从自上而下的布局顺序,最上层快闪介质优先用于主机数据写入,消耗完快速闪存存储介质后,重编程操作对该部分快速闪存存储介质进行二次数据写入,使得快闪介质转化为慢闪介质。随后,当前闪存块内的快速闪存介质被完全重编程,即都转化为慢速闪存介质后,控制器103按序分配空闲的慢闪介质为快速闪存存储介质,换句话说,将空闲的慢闪介质配置为快闪介质,将并用于后续数据写入。该配置过程是由闪存翻译层(Flashtranslate layer,FTL)实现的,具体的:
图8本申请实施例提供了一种二级映射表管理方法,可以由应用于闪存翻译层中,用于实现快闪介质和慢闪介质的管理和配置。如图8所示,第一级映射表为逻辑地址到字线的映射,第二级为字线到页的映射。第一级映射表中还包括“快慢标记”,用于记录该字线上的存储单元是快闪介质还是慢闪介质,“1”表示快闪介质,“0”表示慢闪介质。第二级映射表中还包括“有效标记”,用于记录该页上的数据是有效还是无效,“1”表示“有效”,“0”表示“无效”。前述的将空闲的慢闪介质配置为快闪介质,可以理解为:将慢闪介质对应字线的“快慢标记”由“0”修改为“1”。
一种可能的实施方式,快闪页2110所在字线11仅映射至1个页,慢闪页2130所在字线213可映射至2个页(图中示出的是2个页),也可以是3个页,具体取决于字线上的存储介质是SLC、MLC、TLC、QLC等,本申请实施例对此不做任何限制。
本申请实施例提供的方法,可以通过该二级管理机制判断当前快慢存储介质的比例,以及判断快慢存储介质的消耗情况和可用容量信息。本申请实施例通过重编程的方式,将数据二次写入已满的快速闪存介质中,实现快速闪存介质到慢速闪存介质的就地转换,从而避免数据从快速闪存介质迁移至慢速闪存介质过程导致。此外,重编程操作使得快速闪存介质可被及时再次利用,从而可持续分配新的快速闪存介质,为固态硬盘提供持续数据快速访问响应。与此同时,本方法还能实现空闲的慢速闪存介质到快速闪存存储介质的转化,为后续数据写操作提前分配新的快速闪存存储介质,不会带来现有技术中数据的频繁迁移,而导致慢速闪存存储介质被快速磨损,从而优化固态硬盘的整体性能和寿命。
图9是本申请实施例提出的一种固态硬盘的管理装置500,包括:
第一转换模块510第二转换模块520和存储模块530。其中,存储模块530用于存储数据,包括第一类闪存介质541和第二类闪存介质542,第二类闪存介质542的单位存储容量大于第一类闪存介质541的单位存储容量。
第一转化模块510,用于在固态硬盘的使用过程中,将固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质。可选的,在所述第一部分存储介质的空间已写满或不足以写入新数据时,将固态硬盘中的第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质。
可选的,可以通过对第一部分存储介质执行重编程操作,将第一部分存储介质从第一类闪存介质转换为第二类闪存介质。
可选的,第一部分存储介质已经存储有第一数据,对所述固态硬盘中的第一部分存储介质进行重编程操作,具体位:通过重编程的方式,向第一部分存储介质再写入第二数据,使得第一部分存储介质存储的单位存储容量等于第二类存储介质的单位存储容量。
可选的,所述第二数据包括:由主机下发到所述固态硬盘的新数据,或,所述固态硬盘的垃圾回收过程中读取的有效数据。
第二转换模块520,用于将固态硬盘中的第二部分存储介质配置为所述第一类闪存介质,其中,第二部分存储介质为空闲的第二类闪存介质。可选的方式,当固态硬盘或固态硬盘中的一个并行单元中的第一类闪存介质都全部转化为所述第二类闪存介质时,将固态硬盘中的第二部分存储介质配置为第一类闪存介质。
一种可能的设计方式,装置500中还包括闪存翻译层550,它用于负责快速闪存存储介质的初始化布局,通过将快速闪存存储介质分散至不同的并行单元,并负责容量信息,以及和介质类型、逻辑地址等信息的记录(例如图8)以及后续快速闪存存储介质的重新配置。
图10是本申请实施例提出的一种固态硬盘100的结构图,固态硬盘100是一种主要以闪存(NAND Flash)作为永久性存储器的存储设备。如图10所示,固态硬盘100包括多个NAND闪存芯片和控制器103(也就是主控制器),NAND闪存包括多个闪存芯片107,用于存储数据。该多个闪存芯片107组成的存储空间可以用于分配图1中所示的快速闪存介质101和慢速闪存介质102。
控制器103作为SSD的控制中心,也就是图1中的控制器103,它可以用于执行本申请实施例中提出的方法,可以处理一些复杂的任务,如管理数据存储、维护SSD性能和使用寿命等。控制器103包括处理器105,发出SSD的所有操作请求,例如FTL、数据合并、垃圾回收、数据迁移等功能也都可以由控制器103执行。内存106可以用于存储处理器105在执行各类任务时的一些数据。例如,控制器103中的处理器105可通过缓冲区中的固件来执行读取/写入数据,垃圾回收以及磨损均衡等功能。控制器103还包括主机接口104和若干个通道控制器。其中,主机接口104用于与主机通信。这里的主机可以指服务器、个人电脑、存储系统中的控制框等任何设备。通过若干个通道控制器(例如通道控制器1和2),每个通道控制器和多个闪存芯片107连接,控制器103可以并行操作通道0和通道1的闪存芯片。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算设备能够存储的任何可用介质,该计算机可读存储介质包括指令,所述指令指示计算设备执行前述固态硬盘的管理方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算设备上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分可互相参考,每个实施例重点说明的都是与其他实施例的不同之处,部分实施例描述简略的地方可以参考其他实施例的描述。
以上为本申请的具体实现方式。应当理解,以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (17)
1.一种固态硬盘的管理方法,其特征在于,所述固态硬盘包括第一类闪存介质和第二类闪存介质,所述方法包括:
在所述固态硬盘的使用过程中,将所述固态硬盘中的第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质,其中,所述第二类闪存介质的单位存储容量大于所述第一类闪存介质的单位存储容量。
2.根据权利要求1所述的管理方法,所述将所述固态硬盘中的第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质包括:
通过对所述第一部分存储介质执行重编程操作,将所述第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质。
3.根据权利要求2所述的方法,其特征在于,所述将所述固态硬盘中的第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质包括:
在所述第一部分存储介质的空间已写满或不足以写入新数据时,将所述固态硬盘中的第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:
将所述固态硬盘中的第二部分存储介质配置为所述第一类闪存介质,其中,所述第二部分存储介质为空闲的所述第二类闪存介质。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述将所述固态硬盘中的第二部分存储介质配置为所述第一类闪存介质包括:
当所述第一类闪存介质都全部转化为所述第二类闪存介质时,将所述固态硬盘中的第二部分存储介质配置为所述第一类闪存介质。
6.根据权利要求2-5所述的方法,其特征在于,所述第一部分存储介质已经存储有第一数据;所述对所述固态硬盘中的第一部分存储介质进行重编程操作,包括:
通过重编程的方式,向所述第一部分存储介质再写入第二数据,使得所述第一部分存储介质存储的单位存储容量等于所述第二类存储介质的单位存储容量。
7.根据权利要求6所述的方法,其特征在于,所述第二数据包括:由主机下发到所述固态硬盘的新数据,或,所述固态硬盘的垃圾回收过程中读取的有效数据。
8.一种管理固态硬盘的装置,其特征在于,所述装置包括:
第一转换模块,用于在所述固态硬盘的使用过程中,将所述固态硬盘中的第一部分存储介质从第一类闪存介质转换为第二类闪存介质,其中,所述第二类闪存介质的单位存储容量大于所述第一类闪存介质的单位存储容量。
9.根据权利要求8所述的装置,其特征在于,所述第一转换模块用于:通过对所述第一部分存储介质执行重编程操作,将所述第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质。
10.根据权利要求9所述的装置,其特征在于,所述第一转换模块用于:在所述第一部分存储介质的空间已写满或不足以写入新数据时,将所述固态硬盘中的第一部分存储介质从所述第一类闪存介质转换为所述第二类闪存介质。
11.根据权利要求8-10任一项所述的装置,其特征在于,所述装置还包括:
第二转换模块,用于将所述固态硬盘中的第二部分存储介质配置为所述第一类闪存介质,其中,所述第二部分存储介质为空闲的第二类闪存介质。
12.根据权利要求11所述的装置,其特征在于,所述第二转换模块用于:当所述第一类闪存介质都全部转化为所述第二类闪存介质时,将所述固态硬盘中的第二部分存储介质配置为所述第一类闪存介质。
13.根据权利要求8-12任一项所述的装置,其特征在于,所述第一部分存储介质已经存储有第一数据;所述第一转换模块用于:通过重编程的方式,向所述第一部分存储介质再写入第二数据,使得所述第一部分存储介质存储的单位存储容量等于所述第二类存储介质的单位存储容量。
14.根据权利要求13所述的装置,其特征在于,所述第二数据包括:由主机下发到所述固态硬盘的新数据,或,所述固态硬盘的垃圾回收过程中读取的有效数据。
15.一种固态硬盘,其特征在于,所述固态硬盘包括:
存储介质,所述存储介质包括第一类存储介质和第二类存储介质;
控制器,连接所述存储介质,并用于执行如权利要求1-7任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1至7中任一项所述的方法。
17.一种计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1至7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110738604.6A CN115543180A (zh) | 2021-06-30 | 2021-06-30 | 一种固态硬盘的管理方法、装置及固态硬盘 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110738604.6A CN115543180A (zh) | 2021-06-30 | 2021-06-30 | 一种固态硬盘的管理方法、装置及固态硬盘 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115543180A true CN115543180A (zh) | 2022-12-30 |
Family
ID=84717587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110738604.6A Pending CN115543180A (zh) | 2021-06-30 | 2021-06-30 | 一种固态硬盘的管理方法、装置及固态硬盘 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115543180A (zh) |
-
2021
- 2021-06-30 CN CN202110738604.6A patent/CN115543180A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11204696B2 (en) | Memory devices and electronic systems having a hybrid cache including static and dynamic caches that may be selectively disabled based on cache workload or availability, and related methods | |
JP5728672B2 (ja) | ハイブリッドメモリ管理 | |
EP2565792B1 (en) | Block management schemes in hybrid SLC/MLC memory | |
US9298603B2 (en) | NAND flash-based storage device and methods of using | |
WO2019080688A1 (zh) | 数据写入方法和存储设备 | |
US10503411B2 (en) | Data storage device and method for operating non-volatile memory | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US10346296B2 (en) | Data storage device | |
US20130046920A1 (en) | Nonvolatile memory system with migration manager | |
US20150347291A1 (en) | Flash memory based storage system and operating method | |
KR20210125774A (ko) | 데이터 저장 장치 및 그 동작 방법 | |
CN111158579B (zh) | 固态硬盘及其数据存取的方法 | |
WO2007135660A1 (en) | Method of storing data in a multi-bit-cell flash memory | |
US10452280B2 (en) | Hybrid storage system employing reconfigurable memory | |
US11609848B2 (en) | Media management based on data access metrics | |
KR20130022604A (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN113377687A (zh) | 存储器控制器及其操作方法 | |
CN112130749B (zh) | 数据储存装置以及非挥发式存储器控制方法 | |
US8995183B2 (en) | Data retention in nonvolatile memory with multiple data storage formats | |
Feng et al. | Mapping granularity adaptive ftl based on flash page re-programming | |
US20210042236A1 (en) | Wear leveling across block pools | |
CN111831586A (zh) | 数据存储设备及其操作方法、使用数据存储设备的控制器 | |
KR101027687B1 (ko) | 라이트 동작을 제어하는 반도체 스토리지 시스템 및 그 제어 방법 | |
CN115543180A (zh) | 一种固态硬盘的管理方法、装置及固态硬盘 | |
US9507706B2 (en) | Memory system controller including a multi-resolution internal cache |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |