CN114415944A - 固态硬盘物理块管理方法、装置、计算机设备及存储介质 - Google Patents
固态硬盘物理块管理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN114415944A CN114415944A CN202111615816.1A CN202111615816A CN114415944A CN 114415944 A CN114415944 A CN 114415944A CN 202111615816 A CN202111615816 A CN 202111615816A CN 114415944 A CN114415944 A CN 114415944A
- Authority
- CN
- China
- Prior art keywords
- programming
- physical
- block
- rate
- physical blocks
- 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
- 239000007787 solid Substances 0.000 title claims abstract description 69
- 238000007726 management method Methods 0.000 title claims description 51
- 238000000034 method Methods 0.000 claims abstract description 30
- 238000004590 computer program Methods 0.000 claims description 13
- 238000004519 manufacturing process Methods 0.000 abstract description 6
- 238000010586 diagram Methods 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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
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)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种固态硬盘物理块管理方法、装置、计算机设备及存储介质,其中该方法包括:获取固态硬盘物理块管理请求;根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;根据所述编程速率表中编程速率的快慢对物理块进行分组;将编程速率快的物理块进行组合,用于写入主机用户数据;将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。本发明在量产时扫描各个物理块的编程参数,然后将各个DIE较快的物理块组合在一起,较慢的组合在一起,使得其在写入时不会出现快慢物理块混合,故不会出现不同编程速率的物理块/页互相影响导致性能下降的问题。
Description
技术领域
本发明涉及存储系统技术领域,特别是涉及一种固态硬盘物理块管理方法、装置、计算机设备及存储介质。
背景技术
随着固态硬盘技术的发展,SSD(Solid State Disk,固态硬盘)已经被广泛应用于各种场合,在PC市场已经逐步替代传统的HDD(Hard Disk Drive,硬盘驱动器),从可靠性和性能方面为用户提供较好的体验。
随着接口速率的提升,SSD的带宽越来越高。而随着NAND工艺的演进,其物理一致性存在较大的波动。典型地,某些NAND的物理页编程时间较大,当主机数据写入对应的物理页时则会性能较低,给以用户比较差的体验。传统技术中,为了取得较好的一致性,一般会在NAND或者SSD量产的时候进行筛选,将不满足要求的剔除出去,如此导致额外的测试成本,且生产的良率会大大降低,增加了成本。
发明内容
基于此,有必要针对上述技术问题,提供一种固态硬盘物理块管理方法、装置、计算机设备及存储介质。
一种固态硬盘物理块管理方法,所述方法包括:
获取固态硬盘物理块管理请求;
根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;
根据所述编程速率表中编程速率的快慢对物理块进行分组;
将编程速率快的物理块进行组合,用于写入主机用户数据;
将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。
在其中一个实施例中,所述根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表的步骤还包括:
建立编程速率表,所述编程速率表中的字段包含DIE、Block及速率;
根据固态硬盘的产品规格定义一个编程时间阈值;
对所述固态硬盘各个DIE的物理块和物理页进行编程并度量编程所需时间;
如果编程时间大于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Slow;
如果编程时间小于等于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Fast。
在其中一个实施例中,所述方法还包括:
根据所述编程速率表生成Super Block组成表,所述Super Block组成表的字段包括Super Block、DIE X Block及速率;
所述Super Block组成表的每个Super Block下各个DIE有一个物理块,每个SuperBlock的物理块具备相同的速率字段;
将所述Super Block组成表写入SSD。
在其中一个实施例中,所述方法还包括:
加载所述Super Block组成表;
对于主机的写入请求,则分配速率字段为Fast类型的Super Block进行数据写入;
对于非主机的写入请求,则分配速率字段为Slow类型的Super Block进行数据写入。
一种固态硬盘物理块管理装置,所述装置包括:
获取模块,所述获取模块用于获取固态硬盘物理块管理请求;
建立模块,所述建立模块用于根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;
分组模块,所述分组模块用于根据所述编程速率表中编程速率的快慢对物理块进行分组;
第一写入模块,所述第一写入模块用于将编程速率快的物理块进行组合,用于写入主机用户数据;
第二写入模块,所述第二写入模块用于将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。
在其中一个实施例中,所述建立模块还用于:
建立编程速率表,所述编程速率表中的字段包含DIE、Block及速率;
根据固态硬盘的产品规格定义一个编程时间阈值;
对所述固态硬盘各个DIE的物理块和物理页进行编程并度量编程所需时间;
如果编程时间大于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Slow;
如果编程时间小于等于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Fast。
在其中一个实施例中,所述装置还包括生成模块,所述生成模块用于:
根据所述编程速率表生成Super Block组成表,所述Super Block组成表的字段包括Super Block、DIE X Block及速率;
所述Super Block组成表的每个Super Block下各个DIE有一个物理块,每个SuperBlock的物理块具备相同的速率字段;
将所述Super Block组成表写入SSD。
在其中一个实施例中,所述装置还包括分配模块,所述分配模块用于:
加载所述Super Block组成表;
对于主机的写入请求,则分配速率字段为Fast类型的Super Block进行数据写入;
对于非主机的写入请求,则分配速率字段为Slow类型的Super Block进行数据写入。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述固态硬盘物理块管理方法、装置、计算机设备及存储介质通过获取固态硬盘物理块管理请求;根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;根据所述编程速率表中编程速率的快慢对物理块进行分组;将编程速率快的物理块进行组合,用于写入主机用户数据;将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。本发明在量产时扫描各个物理块的编程参数,然后将各个DIE较快的物理块组合在一起,较慢的组合在一起,使得其在写入时不会出现快慢物理块混合,故不会出现不同编程速率的物理块/页互相影响导致性能下降的问题。
附图说明
图1为一个典型的NAND组成的示意图;
图2为一个典型的SSD写入模型的示意图;
图3为一个实施例中固态硬盘物理块管理方法的流程示意图;
图4为另一个实施例中固态硬盘物理块管理方法的流程示意图;
图5为再一个实施例中固态硬盘物理块管理方法的流程示意图;
图6为又一个实施例中固态硬盘物理块管理方法的流程示意图;
图7为一个实施例中建立编程速率表的示意图;
图8为一个实施例中建立Super Block组成表的示意图;
图9为一个实施例中基于Super Block组成表的写入分配过程的示意图;
图10为一个实施例中固态硬盘物理块管理装置的结构框图;
图11为另一个实施例中固态硬盘物理块管理装置的结构框图;
图12为再一个实施例中固态硬盘物理块管理装置的结构框图;
图13为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
如图1所示为典型的NAND组成如下,包括:DIE,可独立并发操作的单元;Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个Block擦除;Page,读写单元,同一物理块内的Page必需按顺序编程:0->1->2->3…。随着NAND技术的演进,其物理块/页的编程时间一致性差异很大,进而导致写入的性能波动较大。
如图2所示,为典型的SSD写入模型。为便于说明,使用4个DIE的模型进行说明。主机写入4页数据:H_Data_0,H_Data_1,H_Data_2,H_Data_3。SSD内部依次写入到DIE 0/1/2/3的Page 1上。由于数据写入顺序的要求,主机数据需要顺序生效。所以在回收对应的写入请求、释放对应的资源时,也必需按照写入的顺序依次回收H_Data_0,H_Data_1,H_Data_2,H_Data_3,也就是DIE 0Page 1,DIE 1Page 1,DIE 2Page 1,DIE 3Page 1。在此场景下,如果DIE 0Page 1编程时间较长,会整体延迟DIE 1/2/3Page 1的完成回收,导致性能偏低。
此外,某些方案通过采用对于主机写入的数据选取快速编程页的方式进行写入,跳过其中一些较慢的物理页。此种方式一方面需要维护较大的速率表(物理页级别),另外一方面也会导致一些跳过的较慢编程的物理页的浪费。
基于此,本发明提出一种固态硬盘物理块管理方法,旨在能够进一步提高主机写入性能。
在一个实施例中,如图3所示,提供了一种固态硬盘物理块管理方法,该方法包括:
步骤302,获取固态硬盘物理块管理请求;
步骤304,根据固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;
步骤306,根据编程速率表中编程速率的快慢对物理块进行分组;
步骤308,将编程速率快的物理块进行组合,用于写入主机用户数据;
步骤310,将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。
在本实施例中,提供了一种固态硬盘物理块管理方法,该方法针对NAND物理块/页编程速率波动的特征,在量产时扫描各个物理块的编程参数,然后将各个DIE较快的物理块组合在一起,较慢的组合在一起,使得其在写入时不会出现快慢物理块混合,进而导致性能被拖慢的情形。
具体地,首先获取固态硬盘物理块管理请求,根据固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表。接着,根据编程速率表中编程速率的快慢对物理块进行分组。将编程速率较快的物理块进行组合,以写入主机用户数据。将编程速率较快的物理块进行组合,以写入SSD内部系统管理数据。可以有效地将不同编程速率的物理块进行隔离,进而避免了混合编程时对主机性能的影响。
在一个实施例中,如图4所示,提供了一种固态硬盘物理块管理方法,该方法中根据固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表的步骤还包括:
步骤402,建立编程速率表,编程速率表中的字段包含DIE、Block及速率;
步骤404,根据固态硬盘的产品规格定义一个编程时间阈值;
步骤406,对固态硬盘各个DIE的物理块和物理页进行编程并度量编程所需时间;
步骤408,如果编程时间大于编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Slow;
步骤410,如果编程时间小于等于编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Fast。
具体地,可参考图7所示的编程速率表:
在内存中建立一张编程速率快慢表,包含DIE/BLOCK/速率等各个字段。根据SSD产品规格,定义一个物理块编程时间阈值BLOCK_PROG_TH。出厂前,对其内各个DIE的物理块的各个物理页进行编程,统计该物理块所有物理页编程完成时间。
如果其编程时间大于BLOCK_PROG_TH,则在对应的编程速率表中,标志对应DIE/BLOCK的速率字段为SLOW。如果其编程时间小于等于BLOCK_PROG_TH,则在对应的编程速率表中,标志对应DIE/BLOCK的速率字段为FAST。
在一个实施例中,如图5所示,提供了一种固态硬盘物理块管理方法,该方法还包括:
步骤502,根据编程速率表生成Super Block组成表,Super Block组成表的字段包括Super Block、DIE X Block及速率;
步骤504,Super Block组成表的每个Super Block下各个DIE有一个物理块,每个Super Block的物理块具备相同的速率字段;
步骤506,将Super Block组成表写入SSD。
具体地,可参考图8所示的Super Block组成表:
在内存中建立一张Super Block组成表,包含如下字段:
-Super Block:绑定后的超级块索引,为一组并发编程的物理块,其各个物理块的编程速率特征相同。
-DIE 0Block:对应超级块索引的DIE 0物理块编号。
-DIE 1Block:对应超级块索引的DIE 1物理块编号。
-DIE 2Block:对应超级块索引的DIE 2物理块编号。
-DIE 3Block:对应超级块索引的DIE 3物理块编号。
-速率:Slow代表对应的超级块编程为慢;Fast代表对应的超级块编程为快。
接着,按照内存中编程速率表,生成Super Block组成表,满足每个Super Block下各个DIE有一个物理块;以及每个Super Block的物理块具备相同编程属性。最后,将SuperBlock组成表写入SSD。
后续在运行时刻,加载对应的Super Block组成表,且进一步地:对于主机的写,分配Fast类型的Super Block进行数据写入;而对于非主机的写,则分配Slow类型的SuperBlock进行数据写入。由于对不同属性的物理块进行了隔离,故不会出现不同编程速率的物理块/页互相影响导致性能下降的问题。且进一步地,由于不需要跳过Slow类型的物理页,避免了写放大的增加,保障了SSD使用寿命。
在上述实施例中,通过获取固态硬盘物理块管理请求;根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;根据所述编程速率表中编程速率的快慢对物理块进行分组;将编程速率快的物理块进行组合,用于写入主机用户数据;将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。本方案在量产时扫描各个物理块的编程参数,然后将各个DIE较快的物理块组合在一起,较慢的组合在一起,使得其在写入时不会出现快慢物理块混合,故不会出现不同编程速率的物理块/页互相影响导致性能下降的问。
在一个实施例中,如图6所示,提供了一种固态硬盘物理块管理方法,该方法还包括:
步骤602,加载Super Block组成表;
步骤604,对于主机的写入请求,则分配速率字段为Fast类型的Super Block进行数据写入;
步骤606,对于非主机的写入请求,则分配速率字段为Slow类型的Super Block进行数据写入。
在本实施例中,参考9所示的基于Super Block组成表的写入分配过程的示意图,具体的执行步骤如下:
9.1、加载保存的Super Block组成表。
9.2、判断是否有主机写入数据。
-若否,则跳转到9.6执行。
-若是,则继续9.3。
9.3、根据Super Block组成表,选择速率为Fast的可用Super Block X。
9.4、根据Super Block组成表,获取Super Block X对应的各个DIE的物理块编号{A,B,C,D}。
9.5、写入主机数据到对应Super Block X的各个DIE的物理块{A,B,C,D}。
9.6、判断是否有主机其他类型命令。
-若否,继续9.7。
-若是,处理主机命令。
9.7、是否剩余可用的Fast类型的Super物理块数量低于阈值(SUPER_BLK_TH)。
-若否,则继续监测主机新命令。
-若是,则继续9.8。
9.8、根据Super Block组成表,选择速率为Slow的可用Super Block Y。
9.9、选择速率为Fast的已经写满主机数据的Super Block Z。
9.10、将Super Block Z中的数据搬移到Super Block Y,释放Super Block Z。
在本实施例中,除了通过Super Block组成表为不同的写入分配对应的SuperBlock,还进一步说明了在系统闲置时,后台将编程较快的Super Block中的数据转移到编程较慢的Super Block中,从而使得后续的主机写入有持续的较快的Super Block。
应该理解的是,虽然图1-9的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-9中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图10所示,提供了一种固态硬盘物理块管理装置1000,该装置包括:
获取模块1001,所述获取模块用于获取固态硬盘物理块管理请求;
建立模块1002,所述建立模块用于根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;
分组模块1003,所述分组模块用于根据所述编程速率表中编程速率的快慢对物理块进行分组;
第一写入模块1004,所述第一写入模块用于将编程速率快的物理块进行组合,用于写入主机用户数据;
第二写入模块1005,所述第二写入模块用于将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。
在一个实施例中,建立模块1002还用于:
建立编程速率表,所述编程速率表中的字段包含DIE、Block及速率;
根据固态硬盘的产品规格定义一个编程时间阈值;
对所述固态硬盘各个DIE的物理块和物理页进行编程并度量编程所需时间;
如果编程时间大于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Slow;
如果编程时间小于等于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Fast。
在一个实施例中,如图11所示,提供了一种固态硬盘物理块管理装置1000,该装置还包括生成模块1006,用于:
根据所述编程速率表生成Super Block组成表,所述Super Block组成表的字段包括Super Block、DIE X Block及速率;
所述Super Block组成表的每个Super Block下各个DIE有一个物理块,每个SuperBlock的物理块具备相同的速率字段;
将所述Super Block组成表写入SSD。
在一个实施例中,如图12所示,提供了一种固态硬盘物理块管理装置1000,该装置还包括分配模块1007,用于:
加载所述Super Block组成表;
对于主机的写入请求,则分配速率字段为Fast类型的Super Block进行数据写入;
对于非主机的写入请求,则分配速率字段为Slow类型的Super Block进行数据写入。
关于固态硬盘物理块管理装置的具体限定可以参见上文中对于固态硬盘物理块管理方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图13所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种固态硬盘物理块管理方法。
本领域技术人员可以理解,图13中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种固态硬盘物理块管理方法,其特征在于,所述方法包括:
获取固态硬盘物理块管理请求;
根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;
根据所述编程速率表中编程速率的快慢对物理块进行分组;
将编程速率快的物理块进行组合,用于写入主机用户数据;
将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。
2.根据权利要求1所述的固态硬盘物理块管理方法,其特征在于,所述根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表的步骤还包括:
建立编程速率表,所述编程速率表中的字段包含DIE、Block及速率;
根据固态硬盘的产品规格定义一个编程时间阈值;
对所述固态硬盘各个DIE的物理块和物理页进行编程并度量编程所需时间;
如果编程时间大于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Slow;
如果编程时间小于等于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Fast。
3.根据权利要求2所述的固态硬盘物理块管理方法,其特征在于,所述方法还包括:
根据所述编程速率表生成Super Block组成表,所述Super Block组成表的字段包括Super Block、DIE X Block及速率;
所述Super Block组成表的每个Super Block下各个DIE有一个物理块,每个SuperBlock的物理块具备相同的速率字段;
将所述Super Block组成表写入SSD。
4.根据权利要求3所述的固态硬盘物理块管理方法,其特征在于,所述方法还包括:
加载所述Super Block组成表;
对于主机的写入请求,则分配速率字段为Fast类型的Super Block进行数据写入;
对于非主机的写入请求,则分配速率字段为Slow类型的Super Block进行数据写入。
5.一种固态硬盘物理块管理装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取固态硬盘物理块管理请求;
建立模块,所述建立模块用于根据所述固态硬盘物理块管理请求通过扫描物理块和物理页的编程速率建立编程速率表;
分组模块,所述分组模块用于根据所述编程速率表中编程速率的快慢对物理块进行分组;
第一写入模块,所述第一写入模块用于将编程速率快的物理块进行组合,用于写入主机用户数据;
第二写入模块,所述第二写入模块用于将编程速率慢的物理块进行组合,用于写入SSD内部系统管理数据。
6.根据权利要求5所述的固态硬盘物理块管理装置,其特征在于,所述建立模块还用于:
建立编程速率表,所述编程速率表中的字段包含DIE、Block及速率;
根据固态硬盘的产品规格定义一个编程时间阈值;
对所述固态硬盘各个DIE的物理块和物理页进行编程并度量编程所需时间;
如果编程时间大于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Slow;
如果编程时间小于等于所述编程时间阈值,则在对应的编程速率表中标志对应DIE、Block的速率字段为Fast。
7.根据权利要求6所述的固态硬盘物理块管理装置,其特征在于,所述装置还包括生成模块,所述生成模块用于:
根据所述编程速率表生成Super Block组成表,所述Super Block组成表的字段包括Super Block、DIE X Block及速率;
所述Super Block组成表的每个Super Block下各个DIE有一个物理块,每个SuperBlock的物理块具备相同的速率字段;
将所述Super Block组成表写入SSD。
8.根据权利要求7所述的固态硬盘物理块管理装置,其特征在于,所述装置还包括分配模块,所述分配模块用于:
加载所述Super Block组成表;
对于主机的写入请求,则分配速率字段为Fast类型的Super Block进行数据写入;
对于非主机的写入请求,则分配速率字段为Slow类型的Super Block进行数据写入。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111615816.1A CN114415944A (zh) | 2021-12-27 | 2021-12-27 | 固态硬盘物理块管理方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111615816.1A CN114415944A (zh) | 2021-12-27 | 2021-12-27 | 固态硬盘物理块管理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114415944A true CN114415944A (zh) | 2022-04-29 |
Family
ID=81268670
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111615816.1A Pending CN114415944A (zh) | 2021-12-27 | 2021-12-27 | 固态硬盘物理块管理方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114415944A (zh) |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080008083A1 (en) * | 2006-07-05 | 2008-01-10 | Nokia Corporation | Apparatus, method and computer program product providing low-density parity-check block length selection |
US20080104309A1 (en) * | 2006-10-30 | 2008-05-01 | Cheon Won-Moon | Flash memory device with multi-level cells and method of writing data therein |
US20110191525A1 (en) * | 2010-02-04 | 2011-08-04 | Phison Electronics Corp. | Flash memory storage device, controller thereof, and data programming method thereof |
US20110219172A1 (en) * | 2010-03-04 | 2011-09-08 | Phison Electronics Corp. | Non-volatile memory access method and system, and non-volatile memory controller |
US20130067141A1 (en) * | 2011-09-14 | 2013-03-14 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
CN107066340A (zh) * | 2017-03-27 | 2017-08-18 | 恒安嘉新(北京)科技股份公司 | 一种基于linux的无中断线速收包、发包方法及设备 |
CN108831516A (zh) * | 2018-06-20 | 2018-11-16 | 长江存储科技有限责任公司 | 闪存存储器控制方法及闪存存储器控制装置 |
CN109144885A (zh) * | 2017-06-27 | 2019-01-04 | 北京忆恒创源科技有限公司 | 固态存储设备的垃圾回收方法与固态存储设备 |
CN110619916A (zh) * | 2019-08-12 | 2019-12-27 | 长江存储科技有限责任公司 | 存储器编程方法、装置、电子设备及可读存储介质 |
CN111863077A (zh) * | 2019-04-30 | 2020-10-30 | 爱思开海力士有限公司 | 存储装置、控制器以及操作控制器的方法 |
CN112732182A (zh) * | 2020-12-29 | 2021-04-30 | 北京浪潮数据技术有限公司 | 一种nand的数据写入方法及相关装置 |
-
2021
- 2021-12-27 CN CN202111615816.1A patent/CN114415944A/zh active Pending
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080008083A1 (en) * | 2006-07-05 | 2008-01-10 | Nokia Corporation | Apparatus, method and computer program product providing low-density parity-check block length selection |
US20080104309A1 (en) * | 2006-10-30 | 2008-05-01 | Cheon Won-Moon | Flash memory device with multi-level cells and method of writing data therein |
US20110191525A1 (en) * | 2010-02-04 | 2011-08-04 | Phison Electronics Corp. | Flash memory storage device, controller thereof, and data programming method thereof |
US20110219172A1 (en) * | 2010-03-04 | 2011-09-08 | Phison Electronics Corp. | Non-volatile memory access method and system, and non-volatile memory controller |
US20130067141A1 (en) * | 2011-09-14 | 2013-03-14 | Phison Electronics Corp. | Data writing method, and memory controller and memory storage apparatus using the same |
CN107066340A (zh) * | 2017-03-27 | 2017-08-18 | 恒安嘉新(北京)科技股份公司 | 一种基于linux的无中断线速收包、发包方法及设备 |
CN109144885A (zh) * | 2017-06-27 | 2019-01-04 | 北京忆恒创源科技有限公司 | 固态存储设备的垃圾回收方法与固态存储设备 |
CN108831516A (zh) * | 2018-06-20 | 2018-11-16 | 长江存储科技有限责任公司 | 闪存存储器控制方法及闪存存储器控制装置 |
CN111863077A (zh) * | 2019-04-30 | 2020-10-30 | 爱思开海力士有限公司 | 存储装置、控制器以及操作控制器的方法 |
CN110619916A (zh) * | 2019-08-12 | 2019-12-27 | 长江存储科技有限责任公司 | 存储器编程方法、装置、电子设备及可读存储介质 |
CN112732182A (zh) * | 2020-12-29 | 2021-04-30 | 北京浪潮数据技术有限公司 | 一种nand的数据写入方法及相关装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112416813B (zh) | 固态硬盘磨损均衡方法、装置、计算机设备及存储介质 | |
CN114253483A (zh) | 基于命令的写缓存管理方法、装置、计算机设备及存储介质 | |
CN113010111A (zh) | Ssd访问加速方法、装置、计算机设备及存储介质 | |
CN114115745B (zh) | 多Pass编程NAND的RAID优化方法、装置及计算机设备 | |
CN111966531A (zh) | 数据快照方法、装置、计算机设备及存储介质 | |
CN114415944A (zh) | 固态硬盘物理块管理方法、装置、计算机设备及存储介质 | |
CN114896335B (zh) | 一种数据库的数据转储方法及系统 | |
CN114816322B (zh) | Ssd的外部排序方法、装置和ssd存储器 | |
CN114138176B (zh) | Nor Flash的擦除、升级方法及装置、计算机设备和存储介质 | |
CN110275596B (zh) | 基于固态硬盘的上电初始化加速方法、装置和计算机设备 | |
CN114168225A (zh) | 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质 | |
CN114153398A (zh) | 固态硬盘性能优化方法、装置、计算机设备及存储介质 | |
CN110750215A (zh) | 提升固态硬盘随机读性能方法、装置和计算机设备 | |
CN114047880B (zh) | 多Pass编程的NAND写入功耗优化方法、装置及计算机设备 | |
CN114710441B (zh) | 一种链路聚合方法、系统、计算机设备和存储介质 | |
CN114281261A (zh) | 固态硬盘空闲块的预擦除方法、装置、计算机设备及存储介质 | |
CN116501266B (zh) | 消息上下文处理方法、装置、计算机设备和存储介质 | |
CN109686394B (zh) | Nand Flash Phy参数配置方法和装置 | |
CN111209226A (zh) | 降低NVMe固态硬盘写放大的方法、装置及计算机设备 | |
CN117149090A (zh) | 基于多次编程的固态硬盘块管理方法、装置和计算机设备 | |
CN114281266A (zh) | 固态硬盘raid条带的加速恢复方法、装置及计算机设备 | |
CN117251108A (zh) | 基于固态硬盘的slc缓存分配方法、装置和计算机设备 | |
CN115878038A (zh) | 提升固态硬盘读性能的实现方法、装置和计算机设备 | |
CN117971125A (zh) | 避免固态硬盘产生开放块的实现方法、装置和计算机设备 | |
CN113986126A (zh) | 基于固态硬盘的tcg数据删除方法、装置及计算机设备 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220429 |