SSD内部数据文件管理系统及管理方法技术方案

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

【技术实现步骤摘要】

本专利技术涉及一种。
技术介绍
SSD内部数据文件管理旨在控制SSD内容数据文件的访问。这些数据文件主要有 盘片日志文件、固件升级文件、配置文件、nand flash块状态、掉电数据文件等内容。为保 证SSD的可靠性,SSD内部数据管理常采用多备份、SLC模式、只使用快page等机制。 现有SSD内部数据管理采用轻量级的盘片主机数据管理方式,如图1所示。 在该系统中,给定逻辑地址空间,建立一张逻辑地址到flash物理地址的映射表 FLT(First Level Table),在FLT中为每个内部数据文件划分一段固定且互斥的逻辑地址 空间,这些数据文件在分配的逻辑地址空间中存放。此方式下,FLT表随着系统数据文件数 量的增加而增加,所以,可支持的内部数据文件数量有限。另外,需要较大的buffer去缓存 FLT表,增加硬件成本;由于各文件固定划分逻辑地址空间,当需要增加、删除数据文件时, 需要重新构造FLT并划分逻辑地址空间,灵活性很差。 由于FLT较大,FLT也需作为一个文件保存到flash中,所以还需再建立一张逻辑 地址到flash物理地址的映射表SLT (Second Level Table),用于描述FLT数据存放关系。 在盘片下电时,FLT数据下刷到flash,而SLT数据则被下刷到Nor flash/EEPROM中SLT所 在块的首个空page中。若SLT所在的块记满,则需要记录到备用块中,并擦除记满的块。 SLT 数据之所以保存到 Nor Flash/EEPROM,是因为 Nor Flash/EEPROM 数据 retention非常可靠且page大小较小(如nor page size通常为64-256B,但读取较慢; nand flash page size通常为16KB),SSD控制器在boot阶段可快速、有效查询到与SLT 紧邻的空page。另外Nor Flash/EEPROM块较nand flash块的擦写次数多得多,可在Nor flash/EEPROM中选用两个块交替擦除/记录掉电时的SLT数据。但这意味着,SSD硬盘必 须外接额外的非易失介质,硬件成本增加。 当盘片上电时,SSD firmware从Nor flash/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保存到Nor flash/EEPROM 中,导致硬件成本增加。
技术实现思路
本专利技术所要解决的技术问题是,针对现有技术不足,提供一种SSD内部数据文 件系统eblock链接结构、管理系统及方法,解决现有系统区数据管理方法灵活性较差, buffer资源占用过多,可支持系统区文件数量较少,表项空间利用率低下,需要外接额外非 易失介质保存SLT的问题。 为解决上述技术问题,本专利技术所采用的技术方案是:一种SSD内部数据文件管理 系统多级eblock链接结构,包括: RLO eblock :用于放置盘片配置信息以及RLn eblock的块位置信息; RLn eblock :用于存放SLT EBLOCK的块位置信息; SLT eblock :用于存放SLT表,供SSD盘片上电时读取。 本专利技术还提供了一种SSD内部数据文件管理系统,包括上述eblock链接结构、 FILES eblock、buffer、SLT表、逻辑-物理映射表FLT# ;其中: FILES eblock:用于存放SSD盘片数据文件内容和各文件最后一次写包含的 FLT# ; buffer :用于在SSD盘片上电时,根据SLT eblock的块位置信息,从SLT eblock 中读取SLT表;缓存逻辑-物理映射表FLT# ;根据SLT表记录的最后一次写page的位置, 获取逻辑-物理映射表FLT#记录的映射关系,再根据逻辑-物理映射表FLT#读取存放于 FILES eblock中的SSD盘片数据文件内容,并缓存读取的SSD盘片数据文件内容; SLT表:用于按文件ID '#'记录文件file#最后一次写page的位置;该最后一次 写page的位置记录有file#的逻辑-物理映射表FLT# ; 逻辑-物理映射表FLT# :用于记录file#的逻辑地址到物理地址的映射关系。 本专利技术所述eblock链接结构的构造过程包括以下步骤: 1)选取nand flash中若干固定物理位置的flash blcok作为RLO eblock,并约 定SSD在boot阶段从这些固定位置中读取有效的RLO page ; 2)从nand flash中选取一定数量的flash block构成一个block pool,并预留 一部分flash block用于坏块替换和垃圾回收; 3)在上述block pool中获取与设计备份数相同的flash block,对这些flash block按顺序记录物理地址构成RLn block map,将RLn blockmap作为RLn-1 page的一部 分记录到RLn-Ι级中,当前获取的若干个flash block即构成RLn eblock ; 4)在上述block pool的剩余flash block中获取与设计备份数相同flash block,对这些flash block按顺序记录物理地址构成SLT block map,将SLT block map作 为RLn page的一部分记录到RLn中;当前获取的若干个flash block即构成SLT eblock。 本专利技术还提供了一种SSD内部数据文件管理方法,该方法主要实现过程为: 在SSD boot阶段将SLT表读写到buffer中; 读文件file#时,检查file#对应的逻辑-物理映射表FLT#是否在buffer中;若 是,则直接查找buffer中的FLT#获取物理地址来读取文件内容;若否,查找buffer中SLT 表的号节点获取文件file#最后一次写的物理地址,读取逻辑-物理映射表F本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN105353979.html" title="SSD内部数据文件管理系统及管理方法原文来自X技术">SSD内部数据文件管理系统及管理方法</a>

【技术保护点】
一种SSD内部数据文件管理系统多级eblock链接结构,其特征在于,包括:RL0 eblock:用于放置盘片配置信息以及RLn eblock的块位置信息;RLn eblock:用于存放SLT EBLOCK的块位置信息;SLT eblock:用于存放SLT表,供SSD盘片上电时读取。

【技术特征摘要】

【专利技术属性】
技术研发人员:李雷游毓向平周士兵姜黎马翼田达海彭鹏
申请(专利权)人:湖南国科微电子股份有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1