CN106502584A - 一种提高固态硬盘写缓存的利用率的方法 - Google Patents
一种提高固态硬盘写缓存的利用率的方法 Download PDFInfo
- Publication number
- CN106502584A CN106502584A CN201610895161.0A CN201610895161A CN106502584A CN 106502584 A CN106502584 A CN 106502584A CN 201610895161 A CN201610895161 A CN 201610895161A CN 106502584 A CN106502584 A CN 106502584A
- Authority
- CN
- China
- Prior art keywords
- address
- caching
- space
- utilization rate
- check table
- 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
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/0608—Saving storage space on 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/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]
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)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种提高固态硬盘写缓存的利用率的方法,其特征在于闪存转换层中建立全局地址检查表,各个WC缓存中增加表地址信息标识;各个WC缓存中存在新增缓存数据时,根据新增缓存数据的大小和需要更新的地址信息数量,动态的在所述全局地址检查表中申请地址空间,将需要更新地址信息更新到该地址空间中,同时将申请获得的地址空间的起始位置和结束位置更新到对应的WC缓存中增加表地址信息标识。本发明通过建立统一的地址检查表和与之对应的动态缓存管理办法,突破了原有按照WC单独管理存在使用空间的限制,提高了缓存的利用率,实际达到了提高各个WC缓存可利用空间的可能。
Description
技术领域
本发明涉及固态硬盘控制技术,特别涉及一种提高固态硬盘写缓存的利用率的方法。
背景技术
固态硬盘的FTL(Flash Translation Layer,闪存转换层)有一个WC(WriteCache,写缓存)管理模块,用来管理多个固定大小的WC,通过建立地址检查表记录最近写入数据的地址信息,供后续读写操作进行地址命中检查。当达到一定条件时,WC写缓存中对应的数据会被下刷到NAND的存储单元中,同时WC对应的地址检查表和对应的写缓存将被清空。图1是地址检查表和Buffer示意图,现有技术在FTL给每个WC维护了一张地址检查表,地址检查表的每个检查项包括主机下发命令对应的LPA(Logical Page Address,逻辑页地址)信息,每个LPA会对应一段4KB大小的Buffer。Buffer通常位于DRAM中,用来缓存主机或者NAND传来的数据。WC的地址检查表最开始都是无效值,随着数据写入,其写入数据的地址信息就会依次填充到地址检查表中,当出现特别指令需要将WC对应DRAM的缓存数据下刷到NAND,WC的地址检查表就会被清空。
一般情况下,每个WC的地址检查表是大小固定的,假定为16个LPA大小,而每个LPA表示一个32位地址(4字节),那么一个WC的地址检查表大小就是16*4=64Byte。如果地址检查表中只填入了一个LPA信息就要被下刷清空,那么地址检查表的实际使用空间仅为4Byte,有90%的空间未被利用。有时为了提升性能,需要将地址检查表设得更大,例如将地址检查表扩展到256个LPA大小,那未被利用的空间将会更多。如果WC的个数也增多的话,空间利用率则会更低。在严重限制RAM空间的嵌入式领域,这些都是致命的。
发明内容
针对以上缺陷,本发明目的在于如何提高固态硬盘的写缓存的利用率,提高固态硬盘的性能。
为了解决以上问题,本发明提出了一种提高固态硬盘写缓存的利用率的方法,其特征在于闪存转换层中建立全局地址检查表,各个WC缓存中增加表地址信息标识;各个WC缓存中存在新增缓存数据时,根据新增缓存数据的大小和需要更新的地址信息数量,动态的在所述全局地址检查表中申请地址空间,将需要更新地址信息更新到该地址空间中,同时将申请获得的地址空间的起始位置和结束位置更新到对应的WC缓存中增加表地址信息标识。
所述的提高固态硬盘写缓存的利用率的方法,其特征在于当存在外部数据访问时,先逐个读取各个WC缓存中的表地址信息标识,根据各个表地址信息标识记录的起始位置和结束位置检索全局地址检查表,判断是否存在命中地址,如果命中则直接从对应的WC缓存中读取数据,否则从NAND的存储单元中读取数据。
所述的提高固态硬盘写缓存的利用率的方法,其特征在于所述的建立全局地址检查表的每个元素存储一个逻辑数据页的地址信息,WC缓存空间以逻辑数据页为单位存储,各个WC缓存共享,只有当需要更新地址信息更新到该地址空间时才动态的根据所需的空间大小进行申请。
本发明通过建立统一的地址检查表和与之对应的动态缓存管理办法,突破了原有按照WC单独管理存在使用空间的限制,提高了缓存的利用率,实际达到了提高各个WC缓存可利用空间的可能。
附图说明
图1是现有技术的各个WC的地址检查表示意图;
图2是各个WC通过全局地址检查表进行存储的示意图;
图3是全局地址检查表的信息填充示意图;
图4是全局地址检查表的信息填充到尾部的处理机制示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
往固态硬盘写入数据时,主机下发的写数据会先缓存在DRAM中,在这些数据下刷到NAND之前,固态硬盘的闪存转换层FTL会建立WC来管理这些缓存数据,对后续的读写命令进行命中检查。现有技术中FTL为各个WC创建固定长度的地址检查表用于记录各个WC中缓存的数据;对于写命令,通过检查对应地址检查表来判断访问地址是否命中缓存中已经存在的地址信息;若写命中,则将写信息合并到命中的位置;若不命中,则将写信息添加到WC地址检查表的下一个记录点。对于读命令,若读命中,则可直接从DRAM_BUFFER获取数据;若读不命中,则需从NAND上获取数据。图1是现有技术的各个WC的地址检查表示意图;包含了3个WC的地址检查表:WC0_search_table、WC1_search_table和WC2_search_table,3个表格都是固定大小的,分别独立管理。
图2是各个WC通过全局地址检查表进行存储的示意图,由于各个WC独立固定大小的管理地址检查表存在较大的空间浪费,空间使用率较低。本发明通过更改为在闪存转换层中建立全局地址检查表,各个WC缓存中增加表地址信息标识;当各个WC缓存中存在新增缓存数据时,根据新增缓存数据的大小和需要更新的地址信息数量,动态的在所述全局地址检查表中申请地址空间,将需要更新地址信息更新到该地址空间中,同时将申请获得的地址空间的起始位置和结束位置更新到对应的WC缓存中增加表地址信息标识。同样是存储3个WC的地址信息,在新的全局地址检查表global_lpa_search_table中分别根据所需的长度在全局地址检查表global_lpa_search_table中申请空间WC0、WC1和WC2并将地址信息存储在该表中。
当存在外部数据访问时,对于没有命中的写,则将其LPA信息添加到Global LPASearch Table中,作为WC新的检查项。图3是全局地址检查表的信息填充示意图,固态硬盘刚上电时,Global LPA Search Table从起始处0开始填充。以WC0~WC2的大小配置为例,WC0的起始检查点为0,未命中WC0的LPAa~d依次填充在表上Index 0~3的位置,WC1未命中的LPA从Index4处开始填充,WC2则从Index6开始。对某个WC进行命中检查时,只需对该WC在Global LPA Search Table中有效位置的LPA进行匹配即可,例如对于WC1,只需检查Index4~5的LPA即可。
Global LPA Search Table并不是无限大,当对它的填充到达Table的尾部时,需要返回Index0处继续填充,覆盖掉之前的值。图4是全局地址检查表的信息填充到尾部的处理机制示意图,WC9的地址信息长度超过了当前Global LPA Search Table的剩余长度时,就需要绕回到Global LPA Search Table的表头去覆盖;这就需要确保覆盖的值已经失效,需要对Global LPA Search Table大小进行限定,按照最坏情况估算出一个合适的值,以保证可以对Global LPA Search Table进行绕回覆盖操作。举几个极端情况下的例子:(1)假设每个WC的检查表大小都达到了WC LPA个数上限值。以上限值为16为例,在不考虑其它资源限制条件下,Tabl e大小需设为所有WC LPA个数上限值的总和,假设总和为A。(2)命令在处理过程中会受到一些资源限制,比如往Global LPA Search Table中添加新的LPA信息时需要先申请Buffer资源,如果申请不到则会暂停LPA填充,直到申请到资源为止,极端情况下,假设所有Buffer都已分配,那Table上填充的LPA数最多为Buffer资源总数,假设总数为B。考虑到这些极端情况,将Global LPA Search Table的大小设为A、B中的较小者最为合适。
以上所揭露的仅为本发明一种实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于本发明所涵盖的范围。
Claims (3)
1.一种提高固态硬盘写缓存的利用率的方法,其特征在于闪存转换层中建立全局地址检查表,各个WC缓存中增加表地址信息标识;各个WC缓存中存在新增缓存数据时,根据新增缓存数据的大小和需要更新的地址信息数量,动态的在所述全局地址检查表中申请地址空间,将需要更新地址信息更新到该地址空间中,同时将申请获得的地址空间的起始位置和结束位置更新到对应的WC缓存中增加表地址信息标识。
2.根据权利要求1所述的提高固态硬盘写缓存的利用率的方法,其特征在于当存在外部数据访问时,先逐个读取各个WC缓存中的表地址信息标识,根据各个表地址信息标识记录的起始位置和结束位置检索全局地址检查表,判断是否存在命中地址,如果命中则直接从对应的WC缓存中读取数据,否则从NAND的存储单元中读取数据。
3.根据权利要求2所述的提高固态硬盘写缓存的利用率的方法,其特征在于所述的建立全局地址检查表的每个元素存储一个逻辑数据页的地址信息,WC缓存空间以逻辑数据页为单位存储,各个WC缓存共享,只有当需要更新地址信息更新到该地址空间时才动态的根据所需的空间大小进行申请。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610895161.0A CN106502584B (zh) | 2016-10-13 | 2016-10-13 | 一种提高固态硬盘写缓存的利用率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610895161.0A CN106502584B (zh) | 2016-10-13 | 2016-10-13 | 一种提高固态硬盘写缓存的利用率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106502584A true CN106502584A (zh) | 2017-03-15 |
CN106502584B CN106502584B (zh) | 2019-10-25 |
Family
ID=58294045
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610895161.0A Active CN106502584B (zh) | 2016-10-13 | 2016-10-13 | 一种提高固态硬盘写缓存的利用率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502584B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694138A (zh) * | 2017-04-10 | 2018-10-23 | 爱思开海力士有限公司 | 控制器及其操作方法 |
CN110716887A (zh) * | 2019-09-11 | 2020-01-21 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
CN110968527A (zh) * | 2018-09-30 | 2020-04-07 | 北京忆恒创源科技有限公司 | Ftl提供的缓存 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582903A (zh) * | 2009-06-24 | 2009-11-18 | 杭州华三通信技术有限公司 | 一种流媒体资源存储方法和设备 |
WO2012158455A1 (en) * | 2011-05-17 | 2012-11-22 | Sandisk Technologies Inc. | Fast translation indicator to reduce secondary address table checks in a memory device |
CN103064632A (zh) * | 2012-12-04 | 2013-04-24 | 记忆科技(深圳)有限公司 | 固态硬盘及其虚拟化方法、系统 |
CN103559146A (zh) * | 2013-11-05 | 2014-02-05 | 山东大学 | 一种提高NAND flash控制器读写速度的方法 |
CN103778071A (zh) * | 2014-01-20 | 2014-05-07 | 华为技术有限公司 | 缓存的空间分配方法及装置 |
CN105630691A (zh) * | 2015-04-29 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种使用mram的固态硬盘及使用物理地址的读写方法 |
-
2016
- 2016-10-13 CN CN201610895161.0A patent/CN106502584B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582903A (zh) * | 2009-06-24 | 2009-11-18 | 杭州华三通信技术有限公司 | 一种流媒体资源存储方法和设备 |
WO2012158455A1 (en) * | 2011-05-17 | 2012-11-22 | Sandisk Technologies Inc. | Fast translation indicator to reduce secondary address table checks in a memory device |
CN103064632A (zh) * | 2012-12-04 | 2013-04-24 | 记忆科技(深圳)有限公司 | 固态硬盘及其虚拟化方法、系统 |
CN103559146A (zh) * | 2013-11-05 | 2014-02-05 | 山东大学 | 一种提高NAND flash控制器读写速度的方法 |
CN103778071A (zh) * | 2014-01-20 | 2014-05-07 | 华为技术有限公司 | 缓存的空间分配方法及装置 |
CN105630691A (zh) * | 2015-04-29 | 2016-06-01 | 上海磁宇信息科技有限公司 | 一种使用mram的固态硬盘及使用物理地址的读写方法 |
Non-Patent Citations (1)
Title |
---|
姚兴旺: "如何实现数据空间的动态存储管理", 《科学咨询》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108694138A (zh) * | 2017-04-10 | 2018-10-23 | 爱思开海力士有限公司 | 控制器及其操作方法 |
CN108694138B (zh) * | 2017-04-10 | 2021-09-14 | 爱思开海力士有限公司 | 控制器及其操作方法 |
CN110968527A (zh) * | 2018-09-30 | 2020-04-07 | 北京忆恒创源科技有限公司 | Ftl提供的缓存 |
CN110968527B (zh) * | 2018-09-30 | 2024-05-28 | 北京忆恒创源科技股份有限公司 | Ftl提供的缓存 |
CN110716887A (zh) * | 2019-09-11 | 2020-01-21 | 无锡江南计算技术研究所 | 一种支持写暗示的硬件高速缓存数据装入方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106502584B (zh) | 2019-10-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7115899B2 (ja) | ハイブリッドメモリにおける書き込み及びフラッシュ支援のためのメモリモジュール及びその動作方法 | |
US8489854B1 (en) | Non-volatile semiconductor memory storing an inverse map for rebuilding a translation table | |
US9489239B2 (en) | Systems and methods to manage tiered cache data storage | |
JP6118285B2 (ja) | キャッシュメモリシステムおよびプロセッサシステム | |
CN109992530A (zh) | 一种固态驱动器设备及基于该固态驱动器的数据读写方法 | |
US8954656B2 (en) | Method and system for reducing mapping table size in a storage device | |
US9639481B2 (en) | Systems and methods to manage cache data storage in working memory of computing system | |
CN107797759B (zh) | 访问缓存信息的方法、装置与驱动器 | |
CN107797760B (zh) | 一种访问缓存信息的方法、装置与固态驱动器 | |
CN110321065B (zh) | 存储装置及计算机系统 | |
US10552335B2 (en) | Method and electronic device for a mapping table in a solid-state memory | |
KR20100115090A (ko) | 버퍼를 고려한 가비지 컬렉션 기법 | |
US11630779B2 (en) | Hybrid storage device with three-level memory mapping | |
CN106502584A (zh) | 一种提高固态硬盘写缓存的利用率的方法 | |
TW201807586A (zh) | 記憶體系統及處理器系統 | |
CN106354664A (zh) | 一种固态硬盘数据传输方法及装置 | |
CN109521944A (zh) | 数据储存装置以及数据储存方法 | |
CN102999441A (zh) | 一种细粒度内存访问的方法 | |
JP6595654B2 (ja) | 情報処理装置 | |
JP6482322B2 (ja) | メモリ装置及びプログラム | |
CN110968527B (zh) | Ftl提供的缓存 | |
CN112148639A (zh) | 一种高效小容量高速缓冲存储器替换方法及系统 | |
JP6378111B2 (ja) | 情報処理装置及びプログラム | |
US9454488B2 (en) | Systems and methods to manage cache data storage | |
CN109840219B (zh) | 大容量固态存储设备的地址转换系统与方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |