CN104461387B - 一种提高固态硬盘对未映射区域的读性能的方法 - Google Patents
一种提高固态硬盘对未映射区域的读性能的方法 Download PDFInfo
- Publication number
- CN104461387B CN104461387B CN201410723514.XA CN201410723514A CN104461387B CN 104461387 B CN104461387 B CN 104461387B CN 201410723514 A CN201410723514 A CN 201410723514A CN 104461387 B CN104461387 B CN 104461387B
- Authority
- CN
- China
- Prior art keywords
- nomapping
- mapping
- level
- desc
- lpa
- 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.)
- Expired - Fee Related
Links
- 238000013507 mapping Methods 0.000 title claims abstract description 95
- 239000007787 solid Substances 0.000 title claims abstract description 20
- 238000000034 method Methods 0.000 title claims abstract description 19
- 238000012423 maintenance Methods 0.000 claims abstract description 6
- 238000010304 firing Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 12
- 235000019580 granularity Nutrition 0.000 description 3
- 238000012545 processing Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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
- G06F3/0611—Improving I/O performance in relation to response time
-
- 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/06—Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
- G06F12/0615—Address space extension
- G06F12/063—Address space extension for I/O modules, e.g. memory mapped I/O
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种提高固态硬盘对未映射区域的读性能的方法,其特征在于在FTL映射表上层增加了一个二级映射维护模块,该二级映射维护模块维护了一张二级NoMapping映射表,所述二级NoMapping映射表将FTL映射表的LPA平均分为多个LPA分区,每个LPA分区对应一个DESC,每个DESC描述对应LPA分区是否有映射,主机端读命令先查找所述二级NoMapping映射表,就可判定该读命令对应的地址是否为NoMapping,如果查找结果为NoMapping,读命令即可迅速响应。本发明创建的二级NoMapping映射表是以FTL页映射表为基础,但其映射颗粒度却显著增大,从而使得查找效率大大提高;如果查找结果为NoMapping,读命令即可迅速响应并返回,无需再到FTL;如果大量NoMapping读命令一起出现,本发明执行效率将较现有技术大大提高。
Description
技术领域
本发明涉及信息存储领域,尤其涉及一种提高固态硬盘对未映射区域的读性能的方法。
背景技术
固态硬盘(SSD)中都设有闪存传输层,简称FTL(Flash Transfer Layer),该FTL维护着一张映射表,记录着SSD中的Nand Flash所有物理地址的映射信息。当主机发出的读命令到达FTL后,检查该映射表,如果读的地址区域处于未映射状态(也叫NoMapping状态),所谓的地址区域处于未映射状态表明该区域内还没有写入内容,因此该读命令不需要去访问实际地址上的数据,即可直接向上层响应。判断一个读命令所对应的地址区域是否处于NoMapping状态,需要读命令到FTL中检查映射表,由于基于页的FTL映射表颗粒度较小,该表的数据量较大,查找效率较低,导致地址区域处于NoMapping状态的读命令响应滞后。
现有技术在FTL维护了一张映射表,记录了逻辑地址与Nand Flash物理地址的映射关系。映射方式可分为页映射、块映射和混合映射,页映射的准确程度最高,目前的FTL映射表普遍采用这种方式。页映射表以LPA(Logical Page Address,逻辑页地址)为基本单位,每个LPA可映射Nand Flash的一个PPA(Physical Page Address,物理页地址),写地址为某一LPA的数据将被最终写到对应PPA中。LPA也可能没有映射信息,说明该LPA还没有写入任何内容,如果此时一个读命令来读这一区域,读到的将是无效值,这样的读命令即为NoMapping读。
现有技术在处理NoMapping读时,通过查找FTL映射表,在获取到NoMapping结果后就会返回上层。然而,基于页的FTL映射表颗粒度太小,导致查找映射表得到NoMapping信息的效率不高,从而使得NoMapping读命令响应滞后。用户在使用固态硬盘过程中,经常会遇到大量NoMapping读命令一起出现的情形,采用现有技术方案会使固态硬盘的NoMapping读性能大大降低。
发明内容
针对以上缺陷,本发明目的在于提出如何解决现有技术在处理NoMapping读命令的过程中,检索FTL页映射表时出现的检索效率低、整体执行速度慢的问题。
为了实现上述目的,本发明提供了一种提高固态硬盘对未映射区域的读性能的方法,其特征在于在FTL映射表上层增加了一个二级映射维护模块,该二级映射维护模块维护了一张二级NoMapping映射表,所述二级NoMapping映射表将FTL映射表的LPA平均分为多个LPA分区,每个LPA分区对应一个DESC,每个DESC描述对应LPA分区是否有映射,主机端读命令先查找所述二级NoMapping映射表,就可判定该读命令对应的地址是否为NoMapping,如果查找结果为NoMapping,读命令即可迅速响应;所述的二级NoMapping映射表的每个DESC包括3种状态,分别为Invalid、Mapping、NoMapping;其中Invalid是无效状态,表示还不知道该DESC的映射信息;Mapping是已映射的状态,表示该DESC对应的地址区域已被写过;NoMapping是未映射的状态,表示该DESC对应的地址区域都未被写过,或者曾写过但已经被清空;所述DESC为描述符,每个个DESC描述了一个分区的映射状态。
所述的提高固态硬盘对未映射区域的读性能的方法,其特征在于所述的二级NoMapping映射表设置在DRAM中。
所述的提高固态硬盘对未映射区域的读性能的方法,其特征在于所述的二级NoMapping映射在每次固态硬盘上电时进行重建。
所述的提高固态硬盘对未映射区域的读性能的方法,所述的二级NoMapping映射在每次固态硬盘上电时进行重建由后台线程与***其它线程并行运行实现重建。
本发明创建的二级NoMapping映射表是以FTL页映射表为基础,但其映射颗粒度却显著增大,从而使得查找效率大大提高;如果查找结果为NoMapping,读命令即可迅速响应并返回,无需再到FTL;如果大量NoMapping读命令一起出现,本发明执行效率将较现有技术大大提高。
附图说明
图1是:现有技术对NoMapping读命令的处理流程示意图;
图2是:增加二级NoMapping映射表后对NoMapping读命令的处理流程示意图;
图3是:二级NoMapping映射表与FTL页映射表的关系图;
图4是:读写命令的LPA与对应DESC之间的关系图;
图5是:Trim命令的LPA与对应DESC之间的关系图;
图6是:二级NoMapping映射表的后台重建示意图;
图7是:读命令引发的二级NoMapping映射表的重建示意图;
图8是:写命令引发的二级NoMapping映射表的更新示意图;
图9是:Trim命令引发的二级NoMapping映射表的更新示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
对于NoMapping读命令的响应处理,图1为现有技术对NoMapping读命令的处理流程示意图,Host Interface的读命令需要到FTL检查页映射表FTL Mapping Table;图2为增加二级NoMapping映射表后对NoMapping读命令的处理流程示意图,在FTL上层增加了一个二级映射维护模块Second NoMapping Table,该二级映射维护模块维护了一张二级NoMapping映射表。主机下发的读命令直接检索二级NoMapping映射表,便可判定本条读指令所指的读地址上是否有映射信息,如果有继续读取,如果没有直接返回。
二级NoMapping映射表是FTL页映射表的大颗粒度模糊体现,将FTL页映射表中的每d个LPA设为一个分区,每个分区的映射状态用一个DESC(Descriptor,描述符)来描述。其中d为大于1的整数,大小可自行设定;每个分区用DESC(Descriptor,描述符)描述FTL页映射表中该段LPA区间的映射状态,区间大小可自行设定。定义DESC的映射状态有3种,分别为Invalid、Mapping、NoMapping;其中Invalid是无效状态,表示还不知道该DESC的映射信息;Mapping是已映射的状态,表示该DESC对应的地址区域已被写过;NoMapping是未映射的状态,表示该DESC对应的地址区域都未被写过,或者曾写过但已经被清空。
图3是二级NoMapping映射表与FTL页映射表的关系图,FTL页映射表是以LPA为单位维护,每个LPA包含多个LBA(Logical Block Address,逻辑块地址)信息,每d个LPA构成一个DESC,每个DESC描述了它对应LPA区间的映射状态。二级NoMapping映射表存在DRAM中,固态硬盘每次上电都会重建该映射表。重建完成后,主机发出的读命令只需检查二级NoMapping映射表,便可得知相应读地址上是否有映射信息。二级NoMapping映射表的颗粒度要显著大于FTL页映射表,从而使得查找效率大大提高;如果查找结果为NoMapping,读命令即可迅速响应并返回主机,无需再到FTL;如果大量NoMapping读命令一起出现,本专利方案的执行效率将较现有技术方案大大提高。
主机下发的命令是以LBA为基本单位,经过简单计算可得到该命令所在的LPA,进而得到该LPA所属的DESC。在实际计算命令对应的DESC时,Trim命令与普通读写命令的计算方式有所不同。
图4是读写命令的LPA与对应DESC之间的关系图,假设该命令的起始LPA处于某个DESC对应LPA区间的中间位置,而不是区间与区间的分界点;该命令的结束LPA处在另一个DESC对应LPA区间的中间位置,那么这两个DESC之间(包括这两个)的所有DESC都是该读写命令对应的DESC。
图5是Trim命令的LPA与对应DESC之间的关系图,假设该命令的起始LPA和结束LPA都不在区间与区间的分界点,而分别处在两个DESC对应区间的中间位置,那么这两个DESC之间(不包括这两个)的所有DESC都是该Trim命令对应的DESC。
Trim命令与普通读写命令的差别就在于:当命令的起始或结束LPA处在某DESC对应区间的中间位置时,该DESC是否属于此命令。普通读写命令是属于,Trim命令则是不属于。如果命令的起始LPA或结束LPA恰好处在某DESC的边界上,那普通读写命令与Trim命令的判定是一样的:该DESC属于此命令。
具体二级NoMapping映射表的重建和更新流程如下:
1)重建过程。
图6是二级NoMapping映射表的后台重建示意图,重新上电后,二级NoMapping映射表中所有DESC的初始状态都为Invalid,此时开始按顺序进行重建。重建是指通过查找FTL映射表,重新设定二级NoMapping映射表中Invalid DESC的状态。只有当DESC中所有的LPA都为NoMapping时,该DESC的状态才会设为NoMapping。由于考虑到表中所有DESC全部重建会耗费较长时间,为了不让其它进程等待,重建可分多次进行,每次只重建少量InvalidDESC。经过一段时间后,二级NoMapping映射表就会重建完成,届时表中将不再有Invalid的DESC。
上述重建在后台进行,可称为后台重建,后台重建是按顺序进行,每次只重建少量DESC。此外还有一种重建方式,图7是读命令引发的二级NoMapping映射表的重建示意图,当主机发出一个读命令,查找二级NoMapping映射表时,发现对应DESC状态为Invalid,说明后台重建还没有到达此DESC,此时需要主动重建,即主动查找FTL映射表并设置该DESC的状态,结果可能是Mapping、NoMapping或者Invalid,如结果仍是Invalid,表明重建失败,后续将重新重建。主动重建是无序的,且重建只限于该读命令对应的DESC,不管重建成功与否,只进行一次操作。
2)更新流程。
二级NoMapping映射表中DESC的状态会随着主机下发的命令而发生更新,状态的更新有两种:写命令将对应DESC的状态重新设置为Mapping,Trim命令将对应DESC的状态重新设置为NoMapping。
图8是写命令引发的二级NoMapping映射表的更新示意图,写命令在更新对应DESC状态之前,DESC的状态可能是Mapping、NoMapping或Invalid,例如,如果DESC更新前的状态是Invalid,说明该DESC还未重建。
图9是Trim命令引发的二级NoMapping映射表的更新示意图,Trim命令在更新对应DESC状态之前,DESC的状态也可能是Mapping、NoMapping或Invalid。
写命令和Trim命令对二级NoMapping映射表的更新都是即时的,一次完成。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (4)
1.一种提高固态硬盘对未映射区域的读性能的方法,其特征在于在FTL映射表上层增加了一个二级映射维护模块,该二级映射维护模块维护了一张二级NoMapping映射表,所述二级NoMapping映射表将FTL映射表的LPA平均分为多个LPA分区,每个LPA分区对应一个DESC,每个DESC描述对应LPA分区是否有映射,主机端读命令先查找所述二级NoMapping映射表,就可判定该读命令对应的地址是否为NoMapping,如果查找结果为NoMapping,读命令即可迅速响应;所述的二级NoMapping映射表的每个DESC包括3种状态,分别为Invalid、Mapping、NoMapping;其中Invalid是无效状态,表示还不知道该DESC的映射信息;Mapping是已映射的状态,表示该DESC对应的地址区域已被写过;NoMapping是未映射的状态,表示该DESC对应的地址区域都未被写过,或者曾写过但已经被清空;所述DESC为描述符,每个个DESC描述了一个分区的映射状态。
2.根据权利要求1所述的提高固态硬盘对未映射区域的读性能的方法,其特征在于所述的二级NoMapping映射表设置在DRAM中。
3.根据权利要求2所述的提高固态硬盘对未映射区域的读性能的方法,其特征在于所述的二级NoMapping映射在每次固态硬盘上电时进行重建。
4.根据权利要求3所述的提高固态硬盘对未映射区域的读性能的方法,所述的二级NoMapping映射在每次固态硬盘上电时进行重建由后台线程与***其它线程并行运行实现重建。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410723514.XA CN104461387B (zh) | 2014-12-02 | 2014-12-02 | 一种提高固态硬盘对未映射区域的读性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410723514.XA CN104461387B (zh) | 2014-12-02 | 2014-12-02 | 一种提高固态硬盘对未映射区域的读性能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104461387A CN104461387A (zh) | 2015-03-25 |
CN104461387B true CN104461387B (zh) | 2018-04-27 |
Family
ID=52907516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410723514.XA Expired - Fee Related CN104461387B (zh) | 2014-12-02 | 2014-12-02 | 一种提高固态硬盘对未映射区域的读性能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104461387B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107832237B (zh) * | 2017-11-22 | 2020-09-01 | 深圳忆联信息***有限公司 | 一种快速重建未映射表的方法及固态硬盘 |
CN108572797A (zh) * | 2018-03-07 | 2018-09-25 | 深圳忆联信息***有限公司 | 一种固态硬盘读性能加速方法 |
CN108647157B (zh) * | 2018-03-14 | 2021-10-01 | 深圳忆联信息***有限公司 | 一种基于相变存储器的映射管理方法及固态硬盘 |
CN108549610B (zh) * | 2018-03-27 | 2021-02-23 | 深圳忆联信息***有限公司 | 一种NVMe扩展的实现方法及固态硬盘 |
CN108563401B (zh) * | 2018-03-27 | 2021-05-28 | 深圳忆联信息***有限公司 | 一种ssd性能加速方法 |
CN108763100B (zh) * | 2018-05-28 | 2020-10-09 | 深圳忆联信息***有限公司 | 一种固态存储设备快速trim方法及其*** |
CN109271329A (zh) * | 2018-09-01 | 2019-01-25 | 苏州韦科韬信息技术有限公司 | 一种提高重建未映射表效率的方法 |
CN109375870A (zh) * | 2018-09-18 | 2019-02-22 | 深圳忆联信息***有限公司 | 一种加速ssd主控芯片d2h无映射读取的方法及其*** |
CN110333826A (zh) * | 2019-07-04 | 2019-10-15 | 深圳忆联信息***有限公司 | Ssd读写性能提升方法、装置、计算机设备及存储介质 |
CN110362276A (zh) * | 2019-07-10 | 2019-10-22 | 深圳忆联信息***有限公司 | 基于固态硬盘的Trim执行效率提升方法和装置 |
CN110399312A (zh) * | 2019-07-30 | 2019-11-01 | 深圳大普微电子科技有限公司 | 提高固态硬盘读性能的方法、固态硬盘及存储介质 |
CN110888602A (zh) * | 2019-11-18 | 2020-03-17 | 深圳忆联信息***有限公司 | 基于固态硬盘的读性能提升方法、装置及计算机设备 |
CN114153379A (zh) * | 2021-10-29 | 2022-03-08 | 尧云科技(西安)有限公司 | 一种高性能的混合ftl方法及固态存储设备 |
CN114546296B (zh) * | 2022-04-25 | 2022-07-01 | 武汉麓谷科技有限公司 | 一种基于zns固态硬盘的全闪存***和地址映射方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102033938A (zh) * | 2010-12-10 | 2011-04-27 | 天津神舟通用数据技术有限公司 | 基于二级映射的集群动态扩展方法 |
CN102053920A (zh) * | 2009-10-30 | 2011-05-11 | 群联电子股份有限公司 | 数据写入方法及闪存控制器与闪存存储*** |
CN102411543A (zh) * | 2011-11-21 | 2012-04-11 | 华为技术有限公司 | 缓存地址的处理方法和装置 |
CN102591782A (zh) * | 2011-01-17 | 2012-07-18 | 上海华虹集成电路有限责任公司 | 一种采用三级地址查找表的Nandflash存储*** |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101077904B1 (ko) * | 2010-07-12 | 2011-10-31 | (주)이더블유비엠코리아 | 페이지 단위 매핑 기법을 이용한 플래시 메모리 관리 장치 및 방법 |
-
2014
- 2014-12-02 CN CN201410723514.XA patent/CN104461387B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102053920A (zh) * | 2009-10-30 | 2011-05-11 | 群联电子股份有限公司 | 数据写入方法及闪存控制器与闪存存储*** |
CN102033938A (zh) * | 2010-12-10 | 2011-04-27 | 天津神舟通用数据技术有限公司 | 基于二级映射的集群动态扩展方法 |
CN102591782A (zh) * | 2011-01-17 | 2012-07-18 | 上海华虹集成电路有限责任公司 | 一种采用三级地址查找表的Nandflash存储*** |
CN102411543A (zh) * | 2011-11-21 | 2012-04-11 | 华为技术有限公司 | 缓存地址的处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104461387A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104461387B (zh) | 一种提高固态硬盘对未映射区域的读性能的方法 | |
US9229653B2 (en) | Write spike performance enhancement in hybrid storage systems | |
US20180089074A1 (en) | Techniques to Manage Key-Value Storage at a Memory or Storage Device | |
TWI692690B (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
CN103577338B (zh) | 一种回收垃圾数据的方法及存储设备 | |
CN105683897B (zh) | 具有陈旧数据机制的数据贮存***及其操作方法 | |
CN110008136A (zh) | 管理闪存模块的方法及相关的闪存控制器及电子装置 | |
CN108139902A (zh) | 用于提供混合模式来访问ssd驱动器的方法和装置 | |
US20120290769A1 (en) | Flash memory device, memory control device, memory control method, and storage system | |
CN109783396A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN107025071A (zh) | 非易失性存储器装置及其垃圾收集方法 | |
CN109117383B (zh) | 管理闪存模块的方法和闪存控制器 | |
US11321229B2 (en) | System controller and system garbage collection method | |
CN112506814A (zh) | 一种存储器及其控制方法与存储*** | |
CN106445832A (zh) | 闪存存储***的地址映射方法及装置 | |
KR102343246B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
CN115756312A (zh) | 数据访问***、数据访问方法和存储介质 | |
TW201917578A (zh) | 存取快閃記憶體模組的方法及相關的快閃記憶體控制器與電子裝置 | |
US20150205538A1 (en) | Storage apparatus and method for selecting storage area where data is written | |
CN107608624A (zh) | 一种提升固态硬盘性能的方法 | |
CN102867046B (zh) | 基于固态硬盘的数据库优化方法及*** | |
TW202036300A (zh) | 資料儲存裝置以及非揮發式記憶體控制方法 | |
CN110968527B (zh) | Ftl提供的缓存 | |
TWI657339B (zh) | 管理快閃記憶體模組的方法及相關的快閃記憶體控制器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180427 |