CN111177033A - 一种固态硬盘的使用方法 - Google Patents
一种固态硬盘的使用方法 Download PDFInfo
- Publication number
- CN111177033A CN111177033A CN201911343367.2A CN201911343367A CN111177033A CN 111177033 A CN111177033 A CN 111177033A CN 201911343367 A CN201911343367 A CN 201911343367A CN 111177033 A CN111177033 A CN 111177033A
- Authority
- CN
- China
- Prior art keywords
- memory area
- ftl table
- solid state
- table data
- state disk
- 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 40
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
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/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1009—Address translation using page tables, e.g. page table structures
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供了一种固态硬盘的使用方法,包括:检测到开机后,固态硬盘控制器将闪存阵列的第一存储区域存储的FTL表数据的部分、第二存储区域存储的常用FTL表数据、第三存储区域存储的FTL表索引数据,分别加载至DRAM的第一内存区域、第二内存区域、第三内存区域;当接收到访问固态硬盘数据的请求时,先根据请求对应的逻辑地址,查询第一内存区域和所述第二内存区域的FTL表数据,如果没有命中,则查询第三内存区域的FTL表数据,根据第三内存区域的查询结果,将可能命中固态硬盘的第一存储区域存储的部分FTL表数据加载至第一内存区域,并重新查询第一内存区域的FTL表数据;根据查询结果,获取请求对应的物理地址,完成数据访问。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种固态硬盘的使用方法。
背景技术
固态硬盘(Solid State Disk, SSD)因其高速读写性能、低故障率,正在逐步取代机械硬盘,成为主流存储设备。固态硬盘内部通过Nand flash存储数据,随着技术的发展,Nand flash颗粒从单层单元(Single-Level Cell, SLC)、多层单元MLC(Multi-LevelCell)、三层单元(Trinary-Level Cell, TLC)演变到3D Nand,存储密度越来越高,因此,大容量固态硬盘越来越多地走进企业级和民用级市场。
和传统磁盘相比,Nand Flash存储延迟低、功耗低、更高的存储密度、抗震型号更好和噪声低。但是,由于Nand Flash的特性影响(读写擦的单位不一致,每个块有P/E次数限制),Nand Flash不能直接通过简单的接口转换就拿来使用。所以我们需要在Nand Flash上增加一个管理软件FTL(Flash Translation Layer, 闪存转换层)进行管理,对外就是一个黑盒子,上层应用可以通过逻辑地址来对这个黑盒子进行访问。
如图1所示,上层应用通过逻辑地址来访问存储设备,FTL把不同的逻辑地址映射到Nand Flash中的不同位置,FTL简单来说,主要就是映射管理。
一方面,随着固态硬盘的容量越来越高,FTL文件也越来越大,管理复杂度越来越高。另一方面,为了节约成本,在固态硬盘中应当尽可能避免使用高容量的动态随机存取存储器(Dynamic Random Access Memory, DRAM),难以直接完整地加载FTL数据。因此,如何利用较少的DRAM完成对FTL的访问,是亟待解决的问题。
发明内容
为此,本发明提供一种固态硬盘的使用方法,以力图解决或者至少缓解上面存在的至少一个问题。
根据本发明实施例的一个方面,提供了一种固态硬盘的使用方法,包括:
检测到开机后,固态硬盘控制器将闪存阵列的第一存储区域存储的FTL表数据的部分、第二存储区域存储的常用FTL表数据、第三存储区域存储的FTL表索引数据,分别加载至DRAM的第一内存区域、第二内存区域、第三内存区域;
当接收到访问固态硬盘数据的请求时,先根据所述请求对应的逻辑地址,查询所述第一内存区域和所述第二内存区域的FTL表数据,如果没有命中,则查询所述第三内存区域的FTL表数据,根据所述第三内存区域的查询结果,将可能命中所述固态硬盘的第一存储区域存储的部分FTL表数据加载至所述第一内存区域,并重新查询所述第一内存区域的FTL表数据;
根据查询结果,获取所述请求对应的物理地址,完成数据访问。
可选地,所述第二存储区域为固定大小。
可选地,该方法还包括:每当所述第二内存区域的FTL表数据被命中时,将命中的FTL表项的命中次数加1;当所述第二内存区域被写满,且有新的FTL表数据请求写入时,删除命中次数记录最低的FTL表项。
可选地,该方法还包括:将所述第二内存区域的FTL表数据更新至所述第二存储区域。
可选地,所述第二存储区域按照先进先出方式管理。
可选地,所述固态硬盘的闪存阵列为3D NAND。
可选地,所述主机处理器通过SATA协议、或NVMe协议访问所述固态硬盘。
可选地,所述第一存储区域存储完整的FTL表。
可选地,所述第一内存区域存储所述完整的FTL表包含的指定长度的连续数据。
可选地,所述第二内存区域的大小小于所述第一内存区域。
本发明实施例中,利用常用FTL表数据加快常用数据的访问效率,以及,对于非常用数据,查询FTL表索引后加载相应的FTL表,从而完成FTL表查找,总体上利用较少的DRAM,避免加载全部FTL表的前提下,保证可以接受的数据访问性能。
附图说明
本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1示出了FTL工作原理示意图;
图2示出了本发明实施例的方法流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
如图1所示,根据本发明的实施例的一种固态硬盘的使用方法,包括:
S110、检测到开机后,固态硬盘控制器将闪存阵列的第一存储区域存储的FTL表数据的部分、第二存储区域存储的常用FTL表数据、第三存储区域存储的FTL表索引数据,分别加载至DRAM的第一内存区域、第二内存区域、第三内存区域;
S120、当接收到访问固态硬盘数据的请求时,先根据所述请求对应的逻辑地址,查询所述第一内存区域和所述第二内存区域的FTL表数据,如果没有命中,则查询所述第三内存区域的FTL表数据,根据所述第三内存区域的查询结果,将可能命中所述固态硬盘的第一存储区域存储的部分FTL表数据加载至所述第一内存区域,并重新查询所述第一内存区域的FTL表数据;
S130、根据查询结果,获取所述请求对应的物理地址,完成数据访问。
在本发明的实施例中,当固态硬盘控制器接收到访问固态硬盘数据的请求时,可查询第一内存区域的部分FTL表数据,获取对应的固态硬盘数据的物理地址,由于FTL表体积一般较大,全部加载到内存当中处理起来对DRAM容量有很高需求,因此一般只需要加载一部分FTL表至第一内存区域。
另一方面,当固态硬盘控制器接收到访问固态硬盘数据的请求时,可查询第三内存区域,获取对应的FTL表索引数据,其中,FTL表索引数据还可包括辅助索引数据,例如,索引数据的索引数据。根据FTL表索引数据的查询结果,将对应的FTL表数据加载至第一内存区域。
又一方面,当固态硬盘控制器接收到访问固态硬盘数据的请求时,可查询第二内存区域,第二内存区域存储常用FTL表数据,对于用户经常访问的逻辑地址以及对应的物理地址,被记录在常用FTL表数据中,从而提高查找命中效率。
本发明实施中,可能命中所述固态硬盘的第一存储区域存储的部分FTL表数据,是指包含目标表项的FTL子表,例如,FTL表根据逻辑地址的编号被划分为多个子表,根据索引确定数据访问请求所对应的子表后,再从子表中查询数据访问请求所对应的物理地址。
进一步地,第二存储区域为固定大小。
进一步地,每当所述第二内存区域的FTL表数据被命中时,将命中的FTL表项的命中次数加1;当所述第二内存区域被写满,且有新的FTL表数据请求写入时,删除命中次数记录最低的FTL表项。
上述实施例,在内存区域,对FTL表数据新增命中次数表项,便于对第二内存区域的常用FTL进行管理,便于第二内存区域空间不够时,排除非常用FTL表项。
进一步地,该方法还包括:将所述第二内存区域的FTL表数据更新至所述第二存储区域。
进一步地,所述第二存储区域按照先进先出方式管理。例如,在删除命中次数记录最低的FTL表项时,优先删除表中位置靠前的数据,避免新的命中数据过快地被删掉。
进一步地,所述固态硬盘的闪存阵列为3D NAND。
进一步地,所述主机处理器通过SATA协议、或NVMe协议访问所述固态硬盘。
进一步地,第一存储区域存储完整的FTL表。
进一步地,第一内存区域存储所述完整的FTL表包含的指定长度的连续数据,例如,某一页或块FTL表,或者多个页或块FTL表。
进一步地,第二内存区域的大小小于所述第一内存区域,从而避免第二内存区域体积过大造成查询效率较低,仅保留较常用的FTL数据在第二内存区域。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种固态硬盘的使用方法,其特征在于,包括:
检测到开机后,固态硬盘控制器将闪存阵列的第一存储区域存储的FTL表数据的部分、第二存储区域存储的常用FTL表数据、第三存储区域存储的FTL表索引数据,分别加载至DRAM的第一内存区域、第二内存区域、第三内存区域;
当接收到访问固态硬盘数据的请求时,先根据所述请求对应的逻辑地址,查询所述第一内存区域和所述第二内存区域的FTL表数据,如果没有命中,则查询所述第三内存区域的FTL表数据,根据所述第三内存区域的查询结果,将可能命中所述固态硬盘的第一存储区域存储的部分FTL表数据加载至所述第一内存区域,并重新查询所述第一内存区域的FTL表数据;
根据查询结果,获取所述请求对应的物理地址,完成数据访问。
2.如权利要求1所述的方法,其特征在于,所述第二存储区域为固定大小。
3.如权利要求2所述的方法,其特征在于,该方法还包括:每当所述第二内存区域的FTL表数据被命中时,将命中的FTL表项的命中次数加1;当所述第二内存区域被写满,且有新的FTL表数据请求写入时,删除命中次数记录最低的FTL表项。
4.如权利要求3所述的方法,其特征在于,该方法还包括:将所述第二内存区域的FTL表数据更新至所述第二存储区域。
5.如权利要求2所述的方法,其特征在于,所述第二存储区域按照先进先出方式管理。
6.如权利要求1所述的方法,其特征在于,所述固态硬盘的闪存阵列为3D NAND。
7.如权利要求1所述的方法,其特征在于,所述主机处理器通过SATA协议、或NVMe协议访问所述固态硬盘。
8.如权利要求1所述的方法,其特征在于,所述第一存储区域存储完整的FTL表。
9.如权利要求8所述的方法,其特征在于,所述第一内存区域存储所述完整的FTL表包含的指定长度的连续数据。
10.如权利要求1所述的方法,其特征在于,所述第二内存区域的大小小于所述第一内存区域。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911343367.2A CN111177033A (zh) | 2019-12-24 | 2019-12-24 | 一种固态硬盘的使用方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911343367.2A CN111177033A (zh) | 2019-12-24 | 2019-12-24 | 一种固态硬盘的使用方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111177033A true CN111177033A (zh) | 2020-05-19 |
Family
ID=70648918
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911343367.2A Pending CN111177033A (zh) | 2019-12-24 | 2019-12-24 | 一种固态硬盘的使用方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111177033A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541760A (zh) * | 2012-01-04 | 2012-07-04 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机系统 |
CN103744611A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于固态硬盘为缓存的计算机系统及缓存加速方法 |
CN105378642A (zh) * | 2013-05-13 | 2016-03-02 | 高通股份有限公司 | 用于高性能和低成本的闪存转换层的系统和方法 |
US20160246726A1 (en) * | 2014-08-20 | 2016-08-25 | Sandisk Technologies Inc. | Adaptive host memory buffer (hmb) caching using unassisted hinting |
US20170109089A1 (en) * | 2015-10-16 | 2017-04-20 | CNEXLABS, Inc. a Delaware Corporation | Method and Apparatus for Providing Hybrid Mode to Access SSD Drive |
CN107643987A (zh) * | 2016-07-20 | 2018-01-30 | 衡宇科技股份有限公司 | 减少固态硬盘中dram使用的方法及使用其的固态硬盘 |
US20180081569A1 (en) * | 2016-09-22 | 2018-03-22 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
CN107832013A (zh) * | 2017-11-03 | 2018-03-23 | 中国科学技术大学 | 一种管理固态硬盘映射表的方法 |
US20180101477A1 (en) * | 2016-10-10 | 2018-04-12 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on read/write intensity |
-
2019
- 2019-12-24 CN CN201911343367.2A patent/CN111177033A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102541760A (zh) * | 2012-01-04 | 2012-07-04 | 记忆科技(深圳)有限公司 | 基于固态硬盘的计算机系统 |
CN105378642A (zh) * | 2013-05-13 | 2016-03-02 | 高通股份有限公司 | 用于高性能和低成本的闪存转换层的系统和方法 |
CN103744611A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 基于固态硬盘为缓存的计算机系统及缓存加速方法 |
US20160246726A1 (en) * | 2014-08-20 | 2016-08-25 | Sandisk Technologies Inc. | Adaptive host memory buffer (hmb) caching using unassisted hinting |
US20170109089A1 (en) * | 2015-10-16 | 2017-04-20 | CNEXLABS, Inc. a Delaware Corporation | Method and Apparatus for Providing Hybrid Mode to Access SSD Drive |
CN107643987A (zh) * | 2016-07-20 | 2018-01-30 | 衡宇科技股份有限公司 | 减少固态硬盘中dram使用的方法及使用其的固态硬盘 |
US20180081569A1 (en) * | 2016-09-22 | 2018-03-22 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on segment access frequency |
US20180101477A1 (en) * | 2016-10-10 | 2018-04-12 | Dell Products, Lp | System and method for adaptive optimization for performance in solid state drives based on read/write intensity |
CN107832013A (zh) * | 2017-11-03 | 2018-03-23 | 中国科学技术大学 | 一种管理固态硬盘映射表的方法 |
Non-Patent Citations (2)
Title |
---|
姚英彪 等: "一种基于分类策略的聚簇页级闪存转换层算法", 《计算机研究与发展》 * |
杜晨杰等: "缓冲区管理层对固态盘的有效性研究", 《浙江万里学院学报》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8386698B2 (en) | Data accessing method for flash memory and storage system and controller using the same | |
US8407397B2 (en) | Block management method for flash memory and controller and storage system using the same | |
US11354236B2 (en) | Garbage collection method for data storage device | |
US10565103B2 (en) | Method for creating multi-namespace and method for accessing data therein | |
US10740251B2 (en) | Hybrid drive translation layer | |
CN103838853B (zh) | 一种基于不同存储介质的混合文件系统 | |
US20090198875A1 (en) | Data writing method for flash memory, and controller and system using the same | |
US20150120988A1 (en) | Method of Accessing Data in Multi-Layer Cell Memory and Multi-Layer Cell Storage Device Using the Same | |
CN108595349B (zh) | 大容量存储设备的地址转换方法与装置 | |
KR20090037705A (ko) | 불휘발성 메모리 시스템 및 그것의 파일 데이터 관리 방법 | |
KR20170038853A (ko) | 호스트-관리 비휘발성 메모리 | |
US20150324281A1 (en) | System and method of implementing an object storage device on a computer main memory system | |
US10552335B2 (en) | Method and electronic device for a mapping table in a solid-state memory | |
US20190391756A1 (en) | Data storage device and cache-diversion method thereof | |
US11269783B2 (en) | Operating method for data storage device | |
CN110968269A (zh) | 基于scm与ssd的键值存储系统及读写请求处理方法 | |
US8429339B2 (en) | Storage device utilizing free pages in compressed blocks | |
CN112506814A (zh) | 一种存储器及其控制方法与存储系统 | |
CN112463647A (zh) | 使用散列来减小前向映射表的大小 | |
TW201508484A (zh) | 資料寫入方法、硬碟模組以及資料寫入系統 | |
US9009442B2 (en) | Data writing method, memory controller and memory storage apparatus | |
WO2023045407A1 (zh) | 一种i/o请求处理方法、装置、设备及可读存储介质 | |
CN110968527B (zh) | Ftl提供的缓存 | |
CN114840452A (zh) | 一种控制部件 | |
CN115079957A (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200519 |