一种基于负载控制的提高闪存固态硬盘持久性方法

文档序号:6570532阅读:172来源:国知局
专利名称:一种基于负载控制的提高闪存固态硬盘持久性方法
技术领域
本发明涉及提高基于固态硬盘的存储系统持久性的方法,尤其是在多级存储体系结构中通过控制负载分流和负载写入时间间隔来提高闪存固态硬盘持久性,确保闪存固态硬盘持久性达到用户预期要求的方法。
背景技术
近几年,随着计算机技术不断发展,存储应用的需求不断提高。闪存固态硬盘以其卓越的响应速率和低能耗成为新一代存储系统中日益重要的组成部分。然而,闪存固态硬盘成本较高,且擦写次数有限。闪存固态硬盘的持久性是指其每个比特位的擦除次数有上限,当超过此上限后,该比特位出错率大幅上升直至不可使用。因而如何提高其持久性从而降低成本成为存储系统设计中的重要问题。在典型的基于闪存固态硬盘的多级存储体系结构中,闪存固态硬盘通常作为多级存储体系结构中的一级,数据首先在内存中缓冲,然后写入闪存固态硬盘,由于闪存固态硬盘的容量有限,数据最终会从闪存固态硬盘移到机械磁盘,这就造成了闪存固态硬盘的数据擦除,当这种擦除达到闪存固态硬盘的额定上限后,闪存固态硬盘的寿命用尽。目前常见的提高闪存固态硬盘持久性方法包括I)基于闪存转换层(FTL)的提高持久性方法。FTL是闪存固态硬盘设备自带的软件管理层,位于硬盘设备上,负责管理固态硬盘上的闪存芯片。数据写入硬盘后,FTL对其进行虚实地址映射,实现原地址更新、垃圾回收、擦写均衡等功能,并采用改进地址映射方式、数据放置策略、垃圾回收机制等方法提高硬盘持久性。这类方法的缺点是,由于FTL位于硬盘设备上,因此基于FTL的方法是在硬盘设备层优化持久性,不能从根本上减轻硬盘的负载压力,只能在既定负载下尽力提高硬盘寿命。2)基于输入输出(IO)模式的提高持久性方法。这类方法是通过改进上层系统对闪存固态硬盘的IO方式,感知闪存固态硬盘设备随机读取速度高、随机写入速度低、更新开销大等特点,将不适合闪存固态硬盘的IO访问转换为其适合的IO模式,从而最大限度发挥闪存固态硬盘的优势同时避开其劣势。现有的很多研究通过改进数据的组织和索引结构、采用缓冲和批处理方法、采用顺序添加或环形槽机制等,优化系统IO模式,提高闪存固态硬盘持久性。这一类方法在系统层优化负载写入方式,可减轻闪存固态盘的负载,但和上一类方法一样,依然只能尽力增加闪存固态硬盘的持久性,不能保证硬盘使用寿命达到用户指定的时间。3)基于负载控制的提高持久性方法。基于FTL和基于IO模式的持久化方法只能尽力延长闪存固态硬盘的寿命,不能保证其使用寿命达到用户预设的要求,而基于负载控制的方法可很好地解决这个问题。韩国首尔国立大学和三星电子于2012年联合提出了一种基于负载控制的提高持久性方法,步骤如下第一步根据闪存固态硬盘的最大擦写能力和用户期望寿命(用户自己设定的希望闪存固态硬盘使用的时间寿命),计算出单位时间的额定写入负载量;
第二步记录单位时间的负载写入量,当达到额定量时,停止写入,从而保证在期望寿命到达前总写入负载不会超过固态盘报销上限。第三步根据历史负载写入情况和闪存自恢复性,动态调整单位时间写入门限。基于负载控制的方法可保证达到用户的期望寿命,如韩国首尔国立大学和三星电子提出的方法,但该方法未考虑存储系统的结构和IO模式,未能对负载进行优化,对系统读写响应性能的影响较大。如何保证对系统读写响应性能的影响小的条件下提高闪存固态硬盘持久性是本领域技术人员极为关注的技术问题。

发明内容
本发明要解决的技术问题在于针对基于固态硬盘的存储系统中的持久性问题, 提出通过控制负载分流和负载写入时间间隔来提高闪存固态硬盘持久性的方法,既保证闪存固态硬盘达到用户提出的合理期望寿命,又减小对系统读写响应性能的影响。为了解决上述技术问题,本发明的技术方案为第一步,构建分流缓冲持久性保障系统在内存中建立分流缓冲器,分流缓冲器分为三个区候选区、缓冲区和溢出区。每条数据大小相等,写入的数据按到达时间顺序先放置在候选区,候选区装满后从候选区移入缓冲区,缓冲区装满后从缓冲区移入溢出区。闪存固态硬盘通过主板上的外部设备扩展接口(PCI)连接中央处理器(CPU)。闪存固态硬盘上存储的数据以块(Block)为单位进行写入和擦除。分流缓冲器中的三个区都与Block大小相等。第二步,在计算机操作系统应用层安装主控软件,由主控软件对分流缓冲器、闪存固态硬盘、机械磁盘的读写进行控制,并在内存中建立各种计数器模块 分流缓冲器计时器,用于记录从上次分流缓冲器刷写数据到当前时刻经过了多久; 分流缓冲器热度记录器,用于记录分流缓冲器中的每个数据的热度,分流缓冲器第m条数据的热度记为Cm,每当该条数据被访问一次时,它对应的热度Cm加1,m为正整数。 闪存固态硬盘热度记录器,用于记录闪存固态硬盘中存储的每个Block的热度,每当某个Block中的任意一条数据被访问一次,该Block的热度加I ; 闪存固态硬盘计时器,用于记录每个Block数据在闪存固态硬盘中存放了多久; 热度阀值C,当数据热度小于C时将该数据从分流缓冲器移出写入机械磁盘。C的值将在第三步初始化中进行设定。第三步,由主控软件对分流缓冲持久性保障系统进行初始化3.1根据所使用的闪存固态硬盘设备信息设定最大擦除次数PE (约为每数据位3000次),并根据用户需求和负载情况设定一个期望寿命Le (约为8*107到15*107秒)。3. 2读取当前内核时间,记为开始时间3. 3对各计数器模块赋值将分流缓冲器计时器初始化为0并开始计时;将分流缓冲器热度记录器、闪存固态硬盘热度记录器、闪存固态硬盘计时器、热度阀值C均初始化为0,令变量m = 0 ;3. 4将分流缓冲器中的三个区清空。第四步,采用以下方法对闪存固态硬盘进行持久性保证。4.1计算负载写入最小间隔时间
权利要求
1.一种基于负载控制的提高闪存固态硬盘持久性方法,其特征在于包括以下步骤第一步,构建分流缓冲持久性保障系统在内存中建立分流缓冲器,分流缓冲器分为三个区候选区、缓冲区和溢出区;写入的数据按到达时间顺序先放置在候选区,候选区装满后从候选区移入缓冲区,缓冲区装满后从缓冲区移入溢出区;闪存固态硬盘通过主板上的外部设备扩展接口 PCI连接中央处理器CPU ; 第二步,在计算机操作系统应用层安装主控软件,由主控软件对分流缓冲器、闪存固态硬盘、机械磁盘的读写进行控制,并在内存中建立各种计数器模块,包括 分流缓冲器计时器,用于记录从上次分流缓冲器刷写数据到当前时刻经过了多久; 分流缓冲器热度记录器,用于记录分流缓冲器中每个数据的热度,分流缓冲器第m条数据的热度记为Cm,每当该条数据被访问一次时,它对应的热度Cm加1,m为正整数; 闪存固态硬盘热度记录器,用于记录闪存固态硬盘中存储的每个Block的热度,每当某个Block中的任意一条数据被访问一次,该Block的热度加I ; 闪存固态硬盘计时器,用于记录每个Block数据在闪存固态硬盘中存放了多久; 热度阀值C,当数据热度小于C时将该数据从分流缓冲器移出写入机械磁盘; 第三步,由主控软件对分流缓冲持久性保障系统进行初始化 .3.1根据所使用的闪存固态硬盘设备信息设定最大擦除次数PE,并根据用户需求和负载情况设定一个期望寿命Le ; .3.2读取当前内核时间,记为开始时间h ; .3.3对各计数器模块赋值将分流缓冲器计时器初始化为O并开始计时;将分流缓冲器热度记录器、闪存固态硬盘热度记录器、闪存固态硬盘计时器、热度阀值C均初始化为0,令变量m = O ; .3.4将分流缓冲器中的三个区清空; 第四步,采用以下方法对闪存固态硬盘进行持久性保证 .4.1计算负载写入最小间隔时间TH,
2.如权利要求1所述的基于负载控制的提高闪存固态硬盘持久性方法,其特征在于 Block所述分流缓冲器中的三个区都与Block大小相等,Block是闪存固态硬盘上存储的数 据单位,即块。
3.如权利要求1所述的基于负载控制的提高闪存固态硬盘持久性方法,其特征在于最 大擦除次数PE设定为每数据位3000次,期望寿命LE设定为8*107到15*107秒。
4.如权利要求1所述的基于负载控制的提高闪存固态硬盘持久性方法,其特征在于计 算候选区单位时间热度的方法是将分流缓冲器热度记录器中记录的候选区中所有数据的 热度求和,得到候选区数据总热度,将数据总热度除以TSB得到候选区单位时间热度;计算 闪存固态硬盘中每个Block的单位时间热度的方法是用闪存固态硬盘热度记录器中每个 Block的热度除以闪存固态硬盘计时器中对应的Block存放时间,得到闪存固态硬盘中每 个Block的单位时间热度。
全文摘要
本发明公开了一种基于负载控制的提高闪存固态硬盘持久性方法,目的是提出一种通过控制负载分流和负载写入时间间隔来提高闪存固态硬盘持久性的方法,既保证闪存固态硬盘达到用户提出的合理期望寿命,又减小对系统读写响应性能的影响。技术方案是先构建分流缓冲持久性保障系统,在计算机操作系统应用层安装主控软件,由主控软件对分流缓冲持久性保障系统进行初始化,通过控制负载分流和负载写入时间间隔对闪存固态硬盘进行持久性保证。采用本发明既可有效提高闪存固态硬盘的持久性,保证硬盘使用时间达到用户预期寿命要求,又可提高闪存固态硬盘利用率。
文档编号G06F3/06GK103019615SQ201210251408
公开日2013年4月3日 申请日期2012年7月19日 优先权日2012年7月19日
发明者张菁, 廖湘科, 任怡, 吴庆波, 易晓东, 何连跃, 戴华东, 管剑波 申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1