CN105353979A - SSD内部数据文件系统eblock链接结构、管理系统及方法 - Google Patents

SSD内部数据文件系统eblock链接结构、管理系统及方法 Download PDF

Info

Publication number
CN105353979A
CN105353979A CN201510695564.6A CN201510695564A CN105353979A CN 105353979 A CN105353979 A CN 105353979A CN 201510695564 A CN201510695564 A CN 201510695564A CN 105353979 A CN105353979 A CN 105353979A
Authority
CN
China
Prior art keywords
slt
file
flt
page
buffer
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
Application number
CN201510695564.6A
Other languages
English (en)
Other versions
CN105353979B (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.)
Hunan Goke Microelectronics Co Ltd
Original Assignee
Hunan Goke Microelectronics 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 Hunan Goke Microelectronics Co Ltd filed Critical Hunan Goke Microelectronics Co Ltd
Priority to CN201510695564.6A priority Critical patent/CN105353979B/zh
Publication of CN105353979A publication Critical patent/CN105353979A/zh
Application granted granted Critical
Publication of CN105353979B publication Critical patent/CN105353979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • 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/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0292User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明公开了一种SSD内部数据文件系统eblock链接结构、管理系统及方法,多级eblock链接结构包括:RL0?eblock:用于放置盘片配置信息以及RLn?eblock的块位置信息;RLn?eblock:用于存放SLT?EBLOCK的块位置信息;SLT?eblock:用于存放SLT表,供SSD盘片上电时读取。本发明采用多级检索方式访问SLT、FLT等数据,规避多块交替擦写方式下,NAND块寿命消耗过快的问题,并可保证盘片充足的寿命。此方式不需要借助额外的非易失介质,使得完全基于nand?flash的SSD内部文件管理得以实现,降低了硬件成本。

Description

SSD内部数据文件系统eblock链接结构、管理系统及方法
技术领域
本发明涉及一种SSD内部数据文件系统eblock链接结构、管理系统及方法。
背景技术
SSD内部数据文件管理旨在控制SSD内容数据文件的访问。这些数据文件主要有盘片日志文件、固件升级文件、配置文件、nandflash块状态、掉电数据文件等内容。为保证SSD的可靠性,SSD内部数据管理常采用多备份、SLC模式、只使用快page等机制。
现有SSD内部数据管理采用轻量级的盘片主机数据管理方式,如图1所示。
在该系统中,给定逻辑地址空间,建立一张逻辑地址到flash物理地址的映射表FLT(FirstLevelTable),在FLT中为每个内部数据文件划分一段固定且互斥的逻辑地址空间,这些数据文件在分配的逻辑地址空间中存放。此方式下,FLT表随着系统数据文件数量的增加而增加,所以,可支持的内部数据文件数量有限。另外,需要较大的buffer去缓存FLT表,增加硬件成本;由于各文件固定划分逻辑地址空间,当需要增加、删除数据文件时,需要重新构造FLT并划分逻辑地址空间,灵活性很差。
由于FLT较大,FLT也需作为一个文件保存到flash中,所以还需再建立一张逻辑地址到flash物理地址的映射表SLT(SecondLevelTable),用于描述FLT数据存放关系。在盘片下电时,FLT数据下刷到flash,而SLT数据则被下刷到Norflash/EEPROM中SLT所在块的首个空page中。若SLT所在的块记满,则需要记录到备用块中,并擦除记满的块。
SLT数据之所以保存到NorFlash/EEPROM,是因为NorFlash/EEPROM数据retention非常可靠且page大小较小(如norpagesize通常为64-256B,但读取较慢;nandflashpagesize通常为16KB),SSD控制器在boot阶段可快速、有效查询到与SLT紧邻的空page。另外NorFlash/EEPROM块较nandflash块的擦写次数多得多,可在Norflash/EEPROM中选用两个块交替擦除/记录掉电时的SLT数据。但这意味着,SSD硬盘必须外接额外的非易失介质,硬件成本增加。
当盘片上电时,SSDfirmware从Norflash/EEPROM中给定区域内检索首个空page,读取有效SLT到buffer,随后查找SLT从flash中获取FLT到buffer,随后即可访问系统区的各个数据文件。通常而言,首先读取掉电数据文件用于上电重建。
读取系统区指定数据文件时,根据文件起始逻辑地址和长度查找FLT读取存放于flash物理地址内数据即可。更新指定系统数据文件时,若为page对齐写,则将数据写到空白page,更新映射关系到FLT。若非page对齐写,则在执行读填充后,再将数据写到空白page,更新映射关系到FLT。
参考图1,现有技术中,需要在buffer中缓存SLT及整个FLT,并存在于SSD的整个运行周期,占用buffer资源较多,增加掉电数据下刷压力,增加硬件成本。
在满足FLT下电下刷条件下,FLT不宜过大,也意味着现有系统区管理方法可管理的系统区数据文件数量较少。
现有设计中,各系统区数据文件从FLT中固定分配逻辑空间用于数据读写。观察图1,FLT表中的file之间存在一些无效表项entry,表项空间利用率低下。当需要增加或删除某个文件时,将需要对几乎所有系统文件在FLT中的地址段进行重新划分,灵活性较差。
另外,由于nand的比特翻转特性导致检索的空page不可靠且在nand中交替擦除/记录会快速消耗nand的块寿命,为有效获取SLT,需要将SLT保存到Norflash/EEPROM中,导致硬件成本增加。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种SSD内部数据文件系统eblock链接结构、管理系统及方法,解决现有系统区数据管理方法灵活性较差,buffer资源占用过多,可支持系统区文件数量较少,表项空间利用率低下,需要外接额外非易失介质保存SLT的问题。
为解决上述技术问题,本发明所采用的技术方案是:一种SSD内部数据文件管理系统多级eblock链接结构,包括:
RL0eblock:用于放置盘片配置信息以及RLneblock的块位置信息;
RLneblock:用于存放SLTEBLOCK的块位置信息;
SLTeblock:用于存放SLT表,供SSD盘片上电时读取。
本发明还提供了一种SSD内部数据文件管理系统,包括上述eblock链接结构、FILESeblock、buffer、SLT表、逻辑-物理映射表FLT#;其中:
FILESeblock:用于存放SSD盘片数据文件内容和各文件最后一次写包含的FLT#;
buffer:用于在SSD盘片上电时,根据SLTeblock的块位置信息,从SLTeblock中读取SLT表;缓存逻辑-物理映射表FLT#;根据SLT表记录的最后一次写page的位置,获取逻辑-物理映射表FLT#记录的映射关系,再根据逻辑-物理映射表FLT#读取存放于FILESeblock中的SSD盘片数据文件内容,并缓存读取的SSD盘片数据文件内容;
SLT表:用于按文件ID‘#’记录文件file#最后一次写page的位置;该最后一次写page的位置记录有file#的逻辑-物理映射表FLT#;
逻辑-物理映射表FLT#:用于记录file#的逻辑地址到物理地址的映射关系。
本发明所述eblock链接结构的构造过程包括以下步骤:
1)选取nandflash中若干固定物理位置的flashblcok作为RL0eblock,并约定SSD在boot阶段从这些固定位置中读取有效的RL0page;
2)从nandflash中选取一定数量的flashblock构成一个blockpool,并预留一部分flashblock用于坏块替换和垃圾回收;
3)在上述blockpool中获取与设计备份数相同的flashblock,对这些flashblock按顺序记录物理地址构成RLnblockmap,将RLnblockmap作为RLn-1page的一部分记录到RLn-1级中,当前获取的若干个flashblock即构成RLneblock;
4)在上述blockpool的剩余flashblock中获取与设计备份数相同flashblock,对这些flashblock按顺序记录物理地址构成SLTblockmap,将SLTblockmap作为RLnpage的一部分记录到RLn中;当前获取的若干个flashblock即构成SLTeblock。
本发明还提供了一种SSD内部数据文件管理方法,该方法主要实现过程为:
在SSDboot阶段将SLT表读写到buffer中;
读文件file#时,检查file#对应的逻辑-物理映射表FLT#是否在buffer中;若是,则直接查找buffer中的FLT#获取物理地址来读取文件内容;若否,查找buffer中SLT表的’#’号节点获取文件file#最后一次写的物理地址,读取逻辑-物理映射表FLT#到buffer,再查找buffer中逻辑-物理映射表FLT#来读取文件内容;至此完成文件file#的读取;
写文件file#时,检查文件file#对应的逻辑-物理映射表FLT#是否在buffer中;若否,则查找SLT表的’#’号节点获取文件file#最近一次写的物理地址,读取逻辑-物理映射表FLT#到buffer中;若是,则直接进行下一步操作;随后,从fileseblock中获取首个空白page写入file#需要更新的数据内容,并将这些page的物理地址更新到逻辑-物理映射表FLT#的对应逻辑节点中;再将逻辑-物理映射表FLT#写入到另一空白page中,更新该空白page的物理地址到SLT表的’#’号节点中;至此,完成文件file#的写入;
在SSD盘片掉电时,将SLT表、FLT#下刷到flash中。
将SLT表读写到buffer中的具体实现过程包括:
当SSD盘片上电,读取SLT表到buffer时,首先在RL0eblock中读取一份有效的RL0Page,根据RL0page中块位置信息获取RL1级所在eblock,在RL1级中检索首个空page,读取该空page的上一page数据内容,校验通过后获得有效RL1page;同理,根据RL1page中的块位置信息检索有效SLTpage;
写buffer中的SLT表到flash时,若SLT表所在eblock未使用完毕,则将SLTpage内容写入到的SLTEBLOCK首个空白epage;若SLTeblock所在eblock使用完毕,则获取新的eblock,并将SLTpage写入该新的eblock首个空白epage中,随后把SLT表新的块位置信息写入到RL1级中首个空白epage。
本发明空page的判断方法为:对写入flash的每一page数据进行格式化处理,使得写过的page与空page的比特值为1的个数存在至少5%的差异,对读路径上比特值为1的个数进行统计,若读取的page内容中95%以上的比特值为1,则认为该page为空page。
将SLT表、FLT#下刷到flash中的具体实现过程包括以下步骤:
1)设SSD盘片掉电后的相关数据保存在ID为‘#’的文件中,查找SLT表,读取文件的FLT#到buffer;
2)根据FLT#写入掉电数据到所述文件中;
3)将FLT#做为文件的最后一部分写入flash;
4)更新FLT#的物理位置到SLT表的对应位置;
5)检查SLT级是否写满,若写满则进入步骤6),否则写入SLTpage到SLT级中,并跳转到步骤8);
6)请求一空白块,写入SLTpage到SLT级中,记录SLT级新的SLTeblockmap;
7)写入SLTeblockmap到RL1级;
8)结束。
与现有技术相比,本发明所具有的有益效果为:本发明采用多级检索方式访问SLT、FLT等数据,规避多块交替擦写方式下,NAND块寿命消耗过快的问题,并可保证盘片充足的寿命。此方式不需要借助额外的非易失介质,使得完全基于nandflash的SSD内部文件管理得以实现,降低了硬件成本。对SSD内部各数据文件独立构造逻辑-物理映射表FLT#,如此,在访问文件时,只需存放需要访问文件的FLT#到buffer中即可,并不需要缓存所有文件的FLT,大量节省了buffer资源。此方式下,各文件的FLT#互不干扰,使得添加/删除文件变得非常灵活,解决逻辑地址空间固定分配下导致数据文件管理灵活性差的问题。另外,随着系统区文件数量的增加,在buffer中也仅增加极少的SLT数据而已,对掉电下刷数据量影响甚微,可以支持更多的系统文件数量。采用统计比特值为1的比例是否超过阈值的方式检测空page,有效解决由nandflash比特翻转导致的检测nandflash空page困难问题。
附图说明
图1为现有SSD内部文件管理方法简图;
图2为本发明SSD内部文件管理方法简图;
图3为本发明数据格式化示例;
图4为本发明实施例SLTpage结构示例;
图5为本发明实施例FLT#page结构示例。
具体实施方式
本发明原理如图2。图中的eblock(equalblock)由多个内容互为备份的block组成(多备份机制)。RL0(recordlevel)中包含盘片配置及RL1的块位置等信息,RL1中存放SLT的块位置信息,SLT按文件ID‘#’记录file#最后一次写page位置,且该最后一次page写位置记录有file#的逻辑-物理映射表FLT#。RL0中的数据在SSD出厂后内容保持不变,前若干page互为备份以增强数据可靠性。在RL1与SLT所在块中,只有紧邻空page的数据page为有效的RL1page/SLTpage,进一步的,可通过校验来保证数据内容的有效。为增强可靠性,本发明对使用到的block采用SLC模式或只使用快page方式来保存数据。
在RL1/SLT中检索到首个空page,则该空page的上一page则为有效RL1page/SLTpage。结合图2可知,本发明中不需要额外的非易失介质,只在nand中即可完成系统区数据文件的管理,其关键在于解决nand比特翻转导致空page检测有效和快速问题。本发明中对写入flash的每一page数据进行格式化处理,使得写过的page与空page的比特1的个数存在至少5%的差异。再通计数模块,对读路径上比特1的个数进行统计,若对读取的page统计出95%以上的比特为1则认为该page为空page。该方法可有效解决在nand中检测空page的有效和快速等问题,为省去额外非易介质创造条件。
由于nandflashblock的擦写次数较Norflash/eeprom少得多,若选用两个块交替擦除/记录SLT数据,被选用block的寿命将很快耗光,这也是导致原有方法中需使用额外非易失介质的主要原因之一。为解决这一问题,本发明采用多级检索方式访问SLT。图2中RL0,RL1,SLTeblock构建了这种多级检索模型。读取SLT到buffer时,首先在RL0中读取一份有效的RL0Page,根据RL0page中块位置信息获取RL1所在eblock,在RL1中检索首个空page,读取空page上一page数据内容,校验通过后即获得有效RL1page。采用类似方式根据RL1page中的块位置信息检索有效SLTpage。写buffer中的SLT到flash时,若SLT所在eblock未使用完毕,则将SLTpage内容写入到的SLTeblock首个空白epage(eblock内page号相同的互为备份的flashpage);若SLT所在eblock使用完毕,则获取新的eblock并将SLTpage写入其首个空白epage,随后把SLT新的块位置信息写入到RL1eblock中首个空白epage。
SLT的读取,只需在盘片上电时读取一次到buffer便可。读文件file#时,检查其对应的FLT#是否在buffer中;若是,则直接查找buffer中的FLT#获取物理地址来读取文件内容;若否,需要查找buffer中SLT的’#’号节点获取file#最后一次写的物理地址,该物理地址指向图2中虚线框黄色矩形FLT#,读取FLT#到buffer,再查找buffer中FLT#来读取文件内容;至此完成文件file#的读取。写文件file#时,检查其对应的FLT#是否在buffer中;若否,则需查找SLT的’#’号节点获取file#最近一次写的物理地址,该物理地址指向图2中虚线框黄色矩形FLT#,读取FLT#到buffer中;若是,则直接进行下一步操作;随后,获取一个或多个空白page写入file#需要更新的数据内容,并将这些page的物理地址更新到buffer中FLT#的对应逻辑节点中;再将buffer中FLT#写入到另一空白page中,更新该page的物理地址到SLT的’#’号节点中;至此,完成文件file#的写入。由于掉电后,buffer中的数据会丢失,所以在盘片掉电时,需要执行一次写SLT到flash的操作。
据上述可知,SLT在上电时读取到buffer,读写文件时,SLT内容在buffer中更新即可,在掉电时才将SLT数据下刷到flash,以充分减少对flash的磨损。该方法可有效解决nandflash下SLT记录问题,以达到省去外挂额外非易失介质的目的,减少硬件成本。假设在每次下电时写入RL1eblock及SLTeblock,每个flashblock有256flashpage,则当RL1eblcok写满时,需要下电256x256次,足以满足大多数盘片寿命需求。若需要更多的下电次数,还可再增加RLn的级数。
本发明中抛弃现有发明中对SSD内部所有数据文件统一编址构造逻辑-物理映射关系表的方式,转而对每个文件file#单独构造逻辑-物理映射关系FLT#,FLT#在file#的最后一次写操作中被写入flash,SLT中按文件ID‘#’记录FLT#的物理存放地址。读取flie#时,在SLT中查找FLT#的存放地址,读取FLT#到buffer,再依据FLT#即可访问存放于flash中的file#。由此可见,本发明只需分配足以保存最大的FLT#的buffer即可,可有效节省buffer资源。SSD内部数据文件数目越多,这种资源节省效果越明显。另外,各文件独立构造FLT#,SLT按文件ID记录FLT#的物理位置的方式,可以非常方便的在SLT中添加删除文件,增强文件管理灵活性。再者,若增加系统区文件数量,在buffer中也仅增加极少的SLT数据节点而已,对掉电下刷数据量影响甚微,因此该方案可以支持更多的文件数量。
实施例:
A)nandflash空page检测
首先需要对page格式化,其目的在于,使写入到flashpage的任何数据,读取时,该flashpage中比特值为1的比例不超过设定阈值。例如,可对flashpage做如图3所示格式化,其中data段为文件数据内容;signature可指示当前eblock类型;crc段为data段的循环冗余检验值;pattern段填0,设阈值为95%,则pattern段大小为:pageSize*(1-0.95)。
如此即可保证被写过的page中bit值为1的比例不超过阈值95%。
其实检测空page,在读路径总线之上可做一简单逻辑模块,启动该模块后,该模块即可对读路径中经过的每一个数据中比特值为1的个数进行累计计数,读完指定长度后,停止计数并上报cpu,随后cpu即可计数出flashpage中比特值为1的比例,再同设定阈值比较判断当前flashpage是否为空page。
B)构造RL0,RL1,...,RLn多级eblock链接关系
eblock由多个互为备份的flashblock组成。例如,设计eblock由两个互为备份的flashblock组成,若构造RL0,RL1,STLeblock三级eblock链接关系,可通过如下步骤实现:
(1)从nandflash中选取一定数量的block构成一个blockpool,其具体数量根据需要支持的文件数量、RL的级数等确定,并预留一部分flashblock用于坏块替换。
(2)构造RL0EBLOCK,RL0的构造较为特殊,可以视为整个链接关系的‘根’,为让主控在boot阶段可快速获取这个‘根’内容,推荐RL0采用固定flashblock分配方式,主控在boot阶段到约定的固定位置读取即可。例如,可选取2-4个die的block编号为0的page0-8记录相同的RL0page数据(RL0page中含有RL1blockmap数据)。在SSD主控boot时,随机读取上述范围page的内容,直到读到有效的RL0page即可。
(3)构造RL1级,在步骤(1)中的blockpool中获取2个flashblock,对这两个flashblock按顺序记录物理地址构成RL1blockmap,将RL1blockmap作为RL0page的一部分记录到RL0中。当前获取的2个flashblock即构成RL1级。
(4)构造SLTEBLOCK,在步骤(1)中的blockpool中获取2个flashblock,对这两个flashblock按顺序记录物理地址构成SLTblockmap,将SLTblockmap作为RL1page的一部分记录到RL1中。当前获取的2个flashblock即构成SLTEBLOCK。
自此完成RL0,RL1,STLeblock三级eblock链接关系。其他n级链接关系以此类推。
C)SLTpage、FLT#page结构示例。
SLT按文件编号‘#’记录文件最后一次写的物理地址(需要查找fileseblockmap表将eblock地址转化为flashblock地址),该page中保存该文件的FLT#。可定义SLTpage结构如图4所示。其中freeepagecnt描述SLTeblock还剩余多少空白page;eblock-epageinfo记录用于保存文件的所有eblock的epage信息(如freeepage数、有效epagemap等),结合freeflashblocktable供垃圾回收或坏块替换使用。eblockmap记录保持文件的eblock编号与flashblock的映射关系,通过该表可将eblock编号转化为多个互为备份的flashblock地址。
FLT#记录文件ID为‘#’的逻辑地址到物理地址的映射关系(映射基本单元根据设计需求设定,如图5中的映射基本单元为page大小),可定义FLT#page结构如图5所示,需要查找SLTpage中的fileseblockmap表将图中的eblock地址转化为flashblock地址。
G)power-onboot
在读写ssd内部数据文件之前,必须在ssdboot阶段将SLT和fileseblockmap等数据读取到ram(buffer)中,其主要流程如下(省略异常处理流程):
D)readfile
假设需要读文件ID为‘#’,起始逻辑地址为offset(512Byte对齐),长度为len(512Byte对齐)的文件,操作步骤不下:
E)writefile
假设需要重写文件ID为‘#’,起始逻辑地址为offset(512Byte对齐),长度为len(512Byte对齐)的文件,若不为pagesize对齐写,还需要执行读填充操作。下面仅给出pagesize对齐写情况下操作步骤:
F)SSDpoweroff
掉电时,需要对将SLT、FLT#、eblockmap等信息下刷到flash,可参考以下方式完成这些数据的下刷:

Claims (7)

1.一种SSD内部数据文件管理系统多级eblock链接结构,其特征在于,包括:
RL0eblock:用于放置盘片配置信息以及RLneblock的块位置信息;
RLneblock:用于存放SLTEBLOCK的块位置信息;
SLTeblock:用于存放SLT表,供SSD盘片上电时读取。
2.一种SSD内部数据文件管理系统,其特征在于,包括权利要求1所述的eblock链接结构、FILESeblock、buffer、SLT表、逻辑-物理映射表FLT#;其中:
FILESeblock:用于存放SSD盘片数据文件内容和各文件最后一次写包含的FLT#;
buffer:用于在SSD盘片上电时,根据SLTeblock的块位置信息,从SLTeblock中读取SLT表;缓存逻辑-物理映射表FLT#;根据SLT表记录的最后一次写page的位置,获取逻辑-物理映射表FLT#记录的映射关系,再根据逻辑-物理映射表FLT#读取存放于FILESeblock中的SSD盘片数据文件内容,并缓存读取的SSD盘片数据文件内容;
SLT表:用于按文件ID‘#’记录文件file#最后一次写page的位置;该最后一次写page的位置记录有file#的逻辑-物理映射表FLT#;
逻辑-物理映射表FLT#:用于记录file#的逻辑地址到物理地址的映射关系。
3.根据权利要求2所述的SSD内部数据文件管理系统,其特征在于,所述eblock链接结构的构造过程包括以下步骤:
1)选取nandflash中若干固定物理位置的flashblcok作为RL0eblock,并约定SSD在boot阶段从这些固定位置中读取有效的RL0page;
2)从nandflash中选取一定数量的flashblock构成一个blockpool,并预留一部分flashblock用于坏块替换和垃圾回收;
3)在上述blockpool中获取与设计备份数相同的flashblock,对这些flashblock按顺序记录物理地址构成RLnblockmap,将RLnblockmap作为RLn-1page的一部分记录到RLn-1级中,当前获取的若干个flashblock即构成RLneblock;
4)在上述blockpool的剩余flashblock中获取与设计备份数相同flashblock,对这些flashblock按顺序记录物理地址构成SLTblockmap,将SLTblockmap作为RLnpage的一部分记录到RLn中;当前获取的若干个flashblock即构成SLTeblock。
4.一种SSD内部数据文件管理方法,其特征在于,该方法主要实现过程为:
在SSDboot阶段将SLT表读写到buffer中;
读文件file#时,检查file#对应的逻辑-物理映射表FLT#是否在buffer中;若是,则直接查找buffer中的FLT#获取物理地址来读取文件内容;若否,查找buffer中SLT表的’#’号节点获取文件file#最后一次写的物理地址,读取逻辑-物理映射表FLT#到buffer,再查找buffer中逻辑-物理映射表FLT#来读取文件内容;至此完成文件file#的读取;
写文件file#时,检查文件file#对应的逻辑-物理映射表FLT#是否在buffer中;若否,则查找SLT表的’#’号节点获取文件file#最近一次写的物理地址,读取逻辑-物理映射表FLT#到buffer中;若是,则直接进行下一步操作;随后,从fileseblock中获取首个空白page写入file#需要更新的数据内容,并将这些page的物理地址更新到逻辑-物理映射表FLT#的对应逻辑节点中;再将逻辑-物理映射表FLT#写入到另一空白page中,更新该空白page的物理地址到SLT表的’#’号节点中;至此,完成文件file#的写入;
在SSD盘片掉电时,将SLT表、FLT#下刷到flash中。
5.根据权利要求4所述的SSD内部数据文件管理方法,其特征在于,将SLT表读写到buffer中的具体实现过程包括:
当SSD盘片上电,读取SLT表到buffer时,首先在RL0eblock中读取一份有效的RL0Page,根据RL0page中块位置信息获取RL1级所在eblock,在RL1级中检索首个空page,读取该空page的上一page数据内容,校验通过后获得有效RL1page;同理,根据RL1page中的块位置信息检索有效SLTpage;
写buffer中的SLT表到flash时,若SLT表所在eblock未使用完毕,则将SLTpage内容写入到的SLTeblock首个空白epage;若SLTeblock所在eblock使用完毕,则获取新的eblock,并将SLTpage写入该新的eblock首个空白epage中,随后把SLT表新的块位置信息写入到RL1级中首个空白epage。
6.根据权利要求5所述的SSD内部数据文件管理方法,其特征在于,空page的判断方法为:对写入flash的每一page数据进行格式化处理,使得写过的page与空page的比特值为1的个数存在至少5%的差异,对读路径上比特值为1的个数进行统计,若读取的page内容中95%以上的比特值为1,则认为该page为空page。
7.根据权利要求4所述的SSD内部数据文件管理方法,其特征在于,将SLT表、FLT#下刷到flash中的具体实现过程包括以下步骤:
1)设SSD盘片掉电后的相关数据保存在ID为‘#’的文件中,查找SLT表,读取文件的FLT#到buffer;
2)根据FLT#写入掉电数据到所述文件中;
3)将FLT#做为文件的最后一部分写入flash;
4)更新FLT#的物理位置到SLT表的对应位置;
5)检查SLT级是否写满,若写满则进入步骤6),否则写入SLTpage到SLT级中,并跳转到步骤8);
6)请求一空白块,写入SLTpage到SLT级中,记录SLT级新的SLTeblockmap;
7)写入SLTeblockmap到RL1级;
8)结束。
CN201510695564.6A 2015-10-22 2015-10-22 Ssd内部数据文件管理系统及管理方法 Active CN105353979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510695564.6A CN105353979B (zh) 2015-10-22 2015-10-22 Ssd内部数据文件管理系统及管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510695564.6A CN105353979B (zh) 2015-10-22 2015-10-22 Ssd内部数据文件管理系统及管理方法

Publications (2)

Publication Number Publication Date
CN105353979A true CN105353979A (zh) 2016-02-24
CN105353979B CN105353979B (zh) 2017-10-27

Family

ID=55329958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510695564.6A Active CN105353979B (zh) 2015-10-22 2015-10-22 Ssd内部数据文件管理系统及管理方法

Country Status (1)

Country Link
CN (1) CN105353979B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669621A (zh) * 2017-10-13 2019-04-23 杭州海康威视系统技术有限公司 一种文件管理方法、文件管理系统、电子设备及存储介质
TWI729307B (zh) * 2017-11-06 2021-06-01 日商東芝記憶體股份有限公司 記憶體系統及非揮發性記憶體之控制方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103544110A (zh) * 2013-10-08 2014-01-29 华中科技大学 一种基于固态盘的块级连续数据保护方法
US20140115261A1 (en) * 2012-10-18 2014-04-24 Oracle International Corporation Apparatus, system and method for managing a level-two cache of a storage appliance
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140115261A1 (en) * 2012-10-18 2014-04-24 Oracle International Corporation Apparatus, system and method for managing a level-two cache of a storage appliance
CN103544110A (zh) * 2013-10-08 2014-01-29 华中科技大学 一种基于固态盘的块级连续数据保护方法
CN104166634A (zh) * 2014-08-12 2014-11-26 华中科技大学 一种固态盘系统中的映射表缓存管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109669621A (zh) * 2017-10-13 2019-04-23 杭州海康威视系统技术有限公司 一种文件管理方法、文件管理系统、电子设备及存储介质
TWI729307B (zh) * 2017-11-06 2021-06-01 日商東芝記憶體股份有限公司 記憶體系統及非揮發性記憶體之控制方法

Also Published As

Publication number Publication date
CN105353979B (zh) 2017-10-27

Similar Documents

Publication Publication Date Title
CN107273058B (zh) 逻辑地址偏移
CN103577121B (zh) 一种基于Nand Flash的高可靠线性文件存取方法
CN102841851B (zh) 闪存管理方法和闪存设备
CN104102585B (zh) 映射信息记录方法、存储器控制器与存储器储存装置
CN102646069B (zh) 一种延长固态盘使用寿命的方法
CN104699413B (zh) 数据管理方法、存储器存储装置及存储器控制电路单元
CN101425041B (zh) 在nand flash存储器上建立fat文件系统的优化方法
CN103577574B (zh) 一种基于nand flash的高可靠线性文件系统
TWI399644B (zh) 非揮發記憶體區塊管理方法
US20160092110A1 (en) Systems and methods for configuring non-volatile memory
TWI524183B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN109992530A (zh) 一种固态驱动器设备及基于该固态驱动器的数据读写方法
CN106469122B (zh) 有效数据合并方法、存储器控制器与存储器储存装置
CN106776376B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN105468294A (zh) 用于固态存储设备的脱机去重
TW201437807A (zh) 映射資訊記錄方法、記憶體控制器與記憶體儲存裝置
CN101923448A (zh) 一种nand闪存的转换层读写方法
CN103377143B (zh) 存储器管理方法、存储器控制器与存储器存储装置
CN106557432B (zh) 缓冲存储器管理方法、存储器控制电路单元及存储装置
CN104220991A (zh) 用于允许数据在nand闪存上的有效存储的架构
TWI498899B (zh) 資料寫入方法、記憶體控制電路單元與記憶體儲存裝置
CN101763309A (zh) 非易失性存储装置、信息记录系统及信息记录方法
US8819387B2 (en) Memory storage device, memory controller, and method for identifying valid data
CN109101437A (zh) 一种数据存储方法与终端
CN114968096A (zh) 一种存储器的控制方法、存储器与存储系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into 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: 20160224

Assignee: Jiangsu Xinsheng Intelligent Technology Co., Ltd.

Assignor: GOKE MICROELECTRONICS CO., LTD.

Contract record no.: 2018430000021

Denomination of invention: Management system and method for SSD internal data file

Granted publication date: 20171027

License type: Common License

Record date: 20181203