CN108121670B - 一种减少固态硬盘元数据回刷频率的映射方法 - Google Patents

一种减少固态硬盘元数据回刷频率的映射方法 Download PDF

Info

Publication number
CN108121670B
CN108121670B CN201710667147.XA CN201710667147A CN108121670B CN 108121670 B CN108121670 B CN 108121670B CN 201710667147 A CN201710667147 A CN 201710667147A CN 108121670 B CN108121670 B CN 108121670B
Authority
CN
China
Prior art keywords
mapping table
continuous
cache
mapping
cache mapping
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.)
Active
Application number
CN201710667147.XA
Other languages
English (en)
Other versions
CN108121670A (zh
Inventor
张涛
杨建利
蔡震
周洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hongqin Beijing Technology Co ltd
Original Assignee
Hongqin Beijing Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hongqin Beijing Technology Co ltd filed Critical Hongqin Beijing Technology Co ltd
Priority to CN201710667147.XA priority Critical patent/CN108121670B/zh
Publication of CN108121670A publication Critical patent/CN108121670A/zh
Application granted granted Critical
Publication of CN108121670B publication Critical patent/CN108121670B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种减少固态硬盘元数据回刷频率的映射方法,旨在减少元数据的回刷频率。具体方法是将缓存映射表分为增量缓存映射表和连续缓存映射表,所有发生更新的而且没有回刷到Nand Flash的映射均保存在增量缓存映射表中;若读写过程中增量缓存映射表中映射量达到预设阈值,则触发回刷连续缓存映射表的操作,若遇到异常掉电仅保存少量增量映射表,上电后用其更新全局映射表,完成重建。本发明既减少了读写过程中表的回刷频率,又缩短了异常掉电时元数据的回刷数量,同时满足固态硬盘对重建时长的要求。

Description

一种减少固态硬盘元数据回刷频率的映射方法
技术领域
本发明涉及一种硬盘数据处理方法,尤其是涉及一种减少固态硬盘元数据回刷频率的映射方法。
背景技术
固态硬盘在进行数据读写时需要FTL(闪存转换层)算法进行地址转换,通常情况下根据最小映射单元不同FTL算法可采用块级、页级和混合三种映射方式。其中页级映射的随机数据读写性能最优,所以目前固态硬盘内部大多采用该种映射方式。但页级映射的缺点是生成的地址映射信息表即元数据要远多于其他方式的映射,而且为了保证固态硬盘在热插拔情况下数据不丢失,FTL算法采用了回刷机制将元数据在闪存中做了全局备份,但回刷频率将直接影响固态硬盘的整体读写性能和上电重建时长。
发明内容
鉴于此问题的存在,本发明提供了一种减少固态硬盘元数据回刷频率的映射方法,旨在减少元数据的回刷频率。具体方法是对一段时间内更新的映射积累,当达到阈值时触发回刷,若遇到异常掉电仅保存少量增量映射表,上电后用其更新全局映射表,完成重建。
其技术方案如下所述:
一种减少固态硬盘元数据回刷频率的映射方法,将缓存映射表分为增量缓存映射表和连续缓存映射表;
所述连续缓存映射表是在采用连续映射表组成全局映射表时,加载到SRAM中的连续映射表,记录了连续逻辑页对应的物理地址;
所述增量缓存映射表用来保存当前积累的且发生更新的映射,记录了离散逻辑页和其对应的物理地址;
所有发生更新的而且没有回刷到Nand Flash的映射均保存在增量缓存映射表中;若读写过程中增量缓存映射表中映射量达到预设阈值,则触发回刷连续缓存映射表的操作,采用连续缓存映射表作为最小回刷单元,回刷操作完成后,需要从增量缓存映射表中剔除已经被保存到Nand Flash中的映射,剔除操作完成后继续对空出位置进行写更新。
当有I/O请求时,FTL算法首先解析逻辑地址并分配物理地址,然后更新连续缓存映射表和增量缓存映射表,当触发回刷阈值时,硬件查询拥有最大更新量的连续缓存映射表作为回刷对象;
回刷操作完成后调用硬件查询模块依次剔除增量缓存映射表中的已被回刷的映射表项,至此一次回刷完成;
若当前仍有I/O请求处理,则继续处理I/O请求;否则系统进入空闲状态。
假如系统检测到正常掉电而且当前有多张连续缓存映射表未回刷,系统会第一时间回刷所有标记为回刷的连续缓存映射表;
如果系统遇到异常掉电,而且当前有多张连续缓存映射表未回刷,则系统仅回刷数量较少的增量缓存映射表;
系统再次上电后首先检测上次掉电类型,若正常掉电则直接加载连续缓存映射表;若属于异常掉电,则会加载增量缓存映射表,用该表更新全局映射表,最后完成重建。
对于大容量固态硬盘,采用最近最少使用策略选择适合硬件SRAM空间大小的部分连续映射表加载到缓存区,形成连续缓存映射表,而在Nand Flash中存放全局映射表的备份。
本发明既减少了读写过程中表的回刷频率,又缩短了异常掉电时元数据的回刷数量,同时满足固态硬盘对重建时长的要求。
附图说明
图1是缓存映射表需要回刷时操作流程;
图2是连续缓存映射表和增量缓存映射表的示意图;
图3描述了连续缓存映射表回刷的整个操作流程;
图4描述遇到热插拔情况的处理示意图。
具体实施方式
FTL算法作为固态硬盘转换层,其主要功能是实现闪存数据的管理。常见的FTL算法主要有三种映射方式:块映射、页映射和混合映射。三种映射方式各有利弊,若从总体性能分析,页级映射对随机小文件的读写效率最高,而且垃圾回收操作不会出现Full Meger现象(该现象会引起读写性能在一段时间内明显下降)。
由于页级映射方式采用的逻辑页大小决定了全局映射表的大小,因此,对于大容量固态硬盘可以采用最近最少使用(LRU原理)策略选择适合硬件SRAM空间大小的部分映射表加载到缓存区,而在Nand Flash中存放全局映射表的备份。
如图1所示,描述了缓存映射表需要回刷时操作流程,每当有写映射需要修改地址时首先查找缓存中的映射是否被命中,若命中则用新的映射项覆盖原映射地址;若未命中,则根据LRU算法,替换不常用到的一条映射并将其保存到Nand Flash,然后从Nand Flash中读取需要更新的映射地址加载到SRAM,最后完成新地址到旧地址的映射覆盖。
其中,①表示采用使用LRU原理在离散缓存映射表中寻找最近最少使用的项,②根据连续缓存映射表地址指向闪存对应的物理页,③找到物理页加载并覆盖原映射,④更新到新的物理块上,①②③④这四个步骤表示单条映射回刷触发了一个物理页的写操作。
由于LRU算法每次查找到一条映射,仅完成一条映射的更新,但物理闪存最小写入单位是页,所以这种替换回刷频率较高,导致固态硬盘写入放大比例增加。
本发明设计了两种映射表,均位于SRAM中,一种是连续缓存映射表,另外一种是增量缓存映射表。增量缓存映射表用来保存当前积累的且发生更新的映射,其内容包含了逻辑页地址LPA和物理页地址PPA,增量缓存表的大小设为N(4096<=N),连续映射表是按照逻辑页地址线性划分的区域段,当更新映射条数达到N`=(90%*N)时触发连续缓存映射表的回刷。
当有I/O请求时,FTL算法首先解析逻辑地址并分配物理地址,然后更新连续缓存映射表和增量缓存映射表,当触发回刷阈值时,硬件查询拥有最大更新量的连续缓存映射表作为回刷对象,假设当前系统有M个可以独立操作闪存的通路即Channel,为了更好的利用通道并行性,每次回刷选择M个连续缓存映射表一起回刷。回刷操作完成后调用硬件查询模块依次剔除增量缓存映射表中的已被回刷的映射表项,至此一次回刷完成。若当前仍有I/O请求处理,则继续处理I/O请求;否则系统进入空闲状态。
假如系统检测到正常掉电而且当前有多张连续缓存映射表未回刷,系统会第一时间回刷所有标记为回刷的连续缓存映射表;如果系统遇到异常掉电,比如热插拔,而且当前有多张连续缓存映射表未回刷,则系统仅回刷数量较少的增量缓存映射表;系统再次上电后首先检测上次掉电类型,若正常掉电则直接加载连续缓存映射表;若属于异常掉电,则会加载增量缓存映射表,用该表更新全局映射表,最后完成重建。
在具体实施例中,本发明是以页级映射作为基本映射方式,采用多级缓存映射表的方式实现映射的查找和替换,同时将缓存映射表分为增量缓存映射表和连续缓存映射表,用以减少元数据的回刷频率。
把所有逻辑地址按照逻辑页大小进行线性划分,一张连续映射表大小对应一个物理页大小,其中包含了固定数量的连续逻辑映射地址,所有连续映射表组成了全局映射表,而加载到SRAM中的连续映射表则称为连续缓存映射表。
由于采用连续缓存映射表作为最小回刷单元,所以在遇到掉电时系统中会存在多个连续映射表需要回刷,若辅助电容持续时间不足以支撑所有需要回刷的连续缓存映射表回刷,那么元数据在异常掉电时就存在丢失风险。
为了避免这种情况发生,所有发生更新的而且没有回刷到Nand Flash的映射均保存在增量缓存映射表中,若读写过程中增量表中映射量达到预设阈值(90%*增量表大小),则触发回刷连续缓存映射表操作,回刷操作完成后,需要从增量表中剔除已经被保存到Nand Flash中的映射,剔除操作完成后继续对空出位置进行写更新。
连续缓存映射表和增量缓存映射表如图2所示,增量缓存映射表记录了离散逻辑页和其对应的物理地址,连续缓存映射表记录了连续逻辑页对应的物理地址,图1假设每512条映射保存在一个物理page里。
每次LRU替换单位为一张连续缓存映射表,当触发回刷阈值(90%*增量表大小)时,首先查询映射条数,找到拥有映射条数最大的连续缓存映射表作为回刷对象,然后执行回刷操作,最后剔除增量缓存映射表中已回刷的映射。
每次回刷都会采用硬件查询的方式,选择在一段时间内被更新映射条数积累最多的连续缓存映射表作为回刷对象,大大增加了一次回刷覆盖多条映射的概率,从而减少了映射表的回刷频率。
图3详述了连续缓存映射表回刷的整个操作流程,其中I/O端可以选择SATA/SAS/PCIe等接口,硬件查询模块主要实现两种查找模型,一是连续地址内寻找拥有最大值或最小值的项,另外一个是连续地址内查找与预设值相同的项并做清零操作。
如图4所示,当遇到掉电情况时仅需保存增量缓存映射表,减少了回刷映射表的数量,当下次上电直接加载增量缓存映射表,用其更新全局映射表,完成重建。
当遇到热插拔情况,若检测属于正常掉电则选择连续缓存映射表作为回刷对象,若检测属于异常掉电则选择增量缓存映射表作为回刷对象。
本发明具有以下优点:
(1)增加一次回刷覆盖多条映射的几率,减少元数据的回刷频率,从而降低固态硬盘的写入放大比例。
(2)连续缓存映射表可以提高连续读写效率,减少换入换出操作,减小元数据的垃圾回收压力,增加固态硬盘的使用寿命。
(3)能够灵活处理正常掉电和异常掉电的元数据保存,极大减小了异常掉电情况下元数据的回刷压力,在保证数据一致性的前提下满足固态硬盘上电快速响应的要求。

Claims (4)

1.一种减少固态硬盘元数据回刷频率的映射方法,其特征在于:将缓存映射表分为增量缓存映射表和连续缓存映射表;
所述连续缓存映射表是在采用连续映射表组成全局映射表时,加载到SRAM中的连续映射表,记录了连续逻辑页对应的物理地址;
所述增量缓存映射表用来保存当前积累的且发生更新的映射,记录了离散逻辑页和其对应的物理地址;
所有发生更新的而且没有回刷到Nand Flash的映射均保存在增量缓存映射表中;若读写过程中增量缓存映射表中映射量达到预设阈值,则触发回刷连续缓存映射表的操作,采用连续缓存映射表作为最小回刷单元,回刷操作完成后,需要从增量缓存映射表中剔除已经被保存到Nand Flash中的映射,剔除操作完成后继续对空出位置进行写更新。
2.根据权利要求1所述的减少固态硬盘元数据回刷频率的映射方法,其特征在于:当有I/O请求时,FTL算法首先解析逻辑地址并分配物理地址,然后更新连续缓存映射表和增量缓存映射表,当触发回刷阈值时,硬件查询拥有最大更新量的连续缓存映射表作为回刷对象;
回刷操作完成后调用硬件查询模块依次剔除增量缓存映射表中的已被回刷的映射表项,至此一次回刷完成;
若当前仍有I/O请求处理,则继续处理I/O请求;否则系统进入空闲状态。
3.根据权利要求1所述的减少固态硬盘元数据回刷频率的映射方法,其特征在于:假如系统检测到正常掉电而且当前有多张连续缓存映射表未回刷,系统会第一时间回刷所有标记为回刷的连续缓存映射表;
如果系统遇到异常掉电,而且当前有多张连续缓存映射表未回刷,则系统仅回刷数量较少的增量缓存映射表;
系统再次上电后首先检测上次掉电类型,若正常掉电则直接加载连续缓存映射表;若属于异常掉电,则会加载增量缓存映射表,用该表更新全局映射表,最后完成重建。
4.根据权利要求1所述的减少固态硬盘元数据回刷频率的映射方法,其特征在于:对于大容量固态硬盘,采用最近最少使用策略选择适合硬件SRAM空间大小的部分连续映射表加载到缓存区,形成连续缓存映射表,而在Nand Flash中存放全局映射表的备份。
CN201710667147.XA 2017-08-07 2017-08-07 一种减少固态硬盘元数据回刷频率的映射方法 Active CN108121670B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710667147.XA CN108121670B (zh) 2017-08-07 2017-08-07 一种减少固态硬盘元数据回刷频率的映射方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710667147.XA CN108121670B (zh) 2017-08-07 2017-08-07 一种减少固态硬盘元数据回刷频率的映射方法

Publications (2)

Publication Number Publication Date
CN108121670A CN108121670A (zh) 2018-06-05
CN108121670B true CN108121670B (zh) 2021-09-28

Family

ID=62228170

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710667147.XA Active CN108121670B (zh) 2017-08-07 2017-08-07 一种减少固态硬盘元数据回刷频率的映射方法

Country Status (1)

Country Link
CN (1) CN108121670B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108170614B (zh) * 2018-01-19 2022-01-11 湖南国科微电子股份有限公司 一种避免数据重复回收的方法、装置及固态硬盘
CN108983935B (zh) * 2018-07-05 2020-06-09 深圳忆联信息系统有限公司 一种固态硬盘上电时间的控制方法及其系统
CN109508148B (zh) * 2018-11-09 2021-08-10 浪潮电子信息产业股份有限公司 一种元数据重建方法、装置和计算机可读存储介质
CN109521963B (zh) * 2018-11-14 2021-08-10 郑州云海信息技术有限公司 一种元数据落盘方法及装置
CN111177034A (zh) * 2019-12-27 2020-05-19 鸿秦(北京)科技有限公司 一种固态硬盘的自适应ftl算法
CN112486852B (zh) * 2020-12-01 2024-05-14 合肥大唐存储科技有限公司 一种固态硬盘及其地址映射方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
CN102646069A (zh) * 2012-02-23 2012-08-22 华中科技大学 一种延长固态盘使用寿命的方法
CN102737715A (zh) * 2011-04-02 2012-10-17 航天信息股份有限公司 用于nor闪存的数据掉电保护方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043727B (zh) * 2009-10-10 2014-04-02 成都市华为赛门铁克科技有限公司 恢复固态硬盘映射表的方法及其装置
CN102651009B (zh) * 2011-02-28 2014-09-24 国际商业机器公司 一种存储系统中检索数据的方法和设备
KR102025240B1 (ko) * 2013-04-01 2019-11-04 삼성전자주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
CN105608016B (zh) * 2015-08-05 2018-11-23 上海磁宇信息科技有限公司 Dram与mram结合的固态硬盘及使用mram的存储卡
CN105224478B (zh) * 2015-09-25 2019-01-22 北京联想核芯科技有限公司 一种映射表的形成、更新和恢复方法及电子设备
CN105242881B (zh) * 2015-10-12 2018-02-16 创新科软件技术(深圳)有限公司 分布式存储系统及其数据读写方法
CN106933705A (zh) * 2015-12-31 2017-07-07 北京京存技术有限公司 闪存系统及其快速备份lsb页的方法和装置
CN106547703B (zh) * 2016-10-08 2019-05-14 华中科技大学 一种基于块组结构的ftl优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101075211A (zh) * 2007-06-08 2007-11-21 马彩艳 基于sector访问的flash存储器的存储管理
CN102737715A (zh) * 2011-04-02 2012-10-17 航天信息股份有限公司 用于nor闪存的数据掉电保护方法
CN102646069A (zh) * 2012-02-23 2012-08-22 华中科技大学 一种延长固态盘使用寿命的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
固态硬盘的闪存转换层映射策略研究;侯奎;《中国优秀硕士学位论文全文数据库 信息科技辑》;20130315;I137-57 *

Also Published As

Publication number Publication date
CN108121670A (zh) 2018-06-05

Similar Documents

Publication Publication Date Title
CN108121670B (zh) 一种减少固态硬盘元数据回刷频率的映射方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
US6675281B1 (en) Distributed mapping scheme for mass storage system
CN103136121B (zh) 一种固态盘的缓存管理方法
EP3121703B1 (en) Data caching method, cache and computer system
US8706989B2 (en) Data storage device with power-off recovery system and method thereof
US7761655B2 (en) Storage system and method of preventing deterioration of write performance in storage system
CN102646069B (zh) 一种延长固态盘使用寿命的方法
KR101257691B1 (ko) 메모리 컨트롤러 및 이의 데이터 관리방법
US10740251B2 (en) Hybrid drive translation layer
CN102779096B (zh) 一种基于页块面三维的闪存地址映射方法
US10061704B2 (en) Systems and methods for managing cache of a data storage device
CN107368436B (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
KR20120090965A (ko) 고체-상태 저장 디바이스 상에서 데이터를 캐싱하는 장치, 시스템, 및 방법
CN111158604B (zh) 一种闪存颗粒阵列的物联网时间序列数据存储与检索方法
KR101297442B1 (ko) 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템
CN106815152A (zh) 一种优化页级闪存转换层的方法
CN107817945B (zh) 一种混合内存结构的数据读取方法和系统
CN107221351B (zh) 一种固态盘系统中纠错码的优化处理方法及其应用
KR20100115090A (ko) 버퍼를 고려한 가비지 컬렉션 기법
CN109918316B (zh) 一种减少ftl地址映射空间的方法及其系统
CN108897490A (zh) 一种dram/pram异质混合内存系统的数据管理方法
CN110321081B (zh) 一种闪存读缓存的方法及其系统
CN106909323B (zh) 适用于dram/pram混合主存架构的页缓存方法及混合主存架构系统
CN108733576B (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
GR01 Patent grant
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20180605

Assignee: CHINA TECHNOLOGY EXCHANGE Co.,Ltd.

Assignor: HONGQIN (BEIJING) TECHNOLOGY CO.,LTD.

Contract record no.: X2023110000032

Denomination of invention: A Mapping Method for Reducing the Metadata Backflush Frequency of Solid State Disk Drives

Granted publication date: 20210928

License type: Exclusive License

Record date: 20230317

PE01 Entry into force of the registration of the contract for pledge of patent right
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: A mapping method for reducing the frequency of metadata backflushing in solid-state drives

Effective date of registration: 20230323

Granted publication date: 20210928

Pledgee: CHINA TECHNOLOGY EXCHANGE Co.,Ltd.

Pledgor: HONGQIN (BEIJING) TECHNOLOGY CO.,LTD.

Registration number: Y2023110000119