[发明专利]一种固态盘中数据缓存区的控制方法有效
申请号: | 201210219545.2 | 申请日: | 2012-06-29 |
公开(公告)号: | CN102779017A | 公开(公告)日: | 2012-11-14 |
发明(设计)人: | 冯丹;胡洋;刘景宁;童薇;江泓;田磊;秦亦 | 申请(专利权)人: | 华中科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 华中科技大学专利中心 42201 | 代理人: | 李佑宏 |
地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 固态 数据 缓存 控制 方法 | ||
技术领域
本发明属于固态盘存储领域,具体涉及一种基于闪存的固态盘中数据缓存区的控制方法。
背景技术
固态盘是近十年出现的一种新型计算机外存储设备。通常,固态盘分一下几种类型:基于闪存的固态盘、基于动态随机存储器的固态盘、基于其他固态介质的固态盘。目前应用最广泛的是基于闪存的固态盘。闪存是一种具有高密度,大容量,非易失性等特点的新型存储介质,它相对磁介质,具有较低的读写延时、较低的能耗;但是闪存芯片自身存在的一些缺陷限制了这类存储器的应用。其一,必须先擦除后写入,擦除操作的单元为块,写入操作的单元为页,一个块中有多个页。其二,闪存的擦除次数是有限的。固态盘中除了一个处理器、大量的闪存芯片外,还有一个或多个内存芯片。内存芯片的主要作用是用作数据缓冲区,即,在固态盘工作过程中存放经常读写的数据。
为了提高固态盘的读写性能,通常,固态盘中存在多个通道,每个通道上有多个闪存芯片,多个通道和芯片同时工作可以提高读写带宽。固态盘中存在一个内存空间,用作数据缓存区,固态盘中数据缓存区是用户数据在内存中存放的区域,它利用一段时间内,请求可能重复出现的特点,将重复出现的请求通过访问内存而直接被响应,减少访问闪存的次数。因为相对闪存,内存的读写速度较为快速。所以数据缓冲区可以提高固态盘的性能,同时减少了闪存的写操作次数,降低了擦除次数,从而提高了固态盘的寿命。
因为内存的读写速度快,为了提高固态盘性能,需要使大量的外部请求由固态盘内存服务,避免由固态盘中的闪存芯片服务。通常,为了使尽可能多的外部请求由内存服务,传统的方法是设计各种各样的缓存数据排序算法,即,采用不同的规则,将数据缓存区中的数据进行排序,在服务外部请求时,存在两种可能:(1)当外部请求的数据存在于数据缓冲区时,内存直接服务该请求;(2)当数据不存在数据缓冲区时,需要将数据缓冲区中的部分数据写回闪存,为外部数据腾出空间,然后再将外部数据写到数据缓冲区中。在情况(2)中,外部请求只有等待数据缓冲区中写回闪存的数据完全写回之后才能被记录在内存中,因此,这种写回闪存的操作被称之为被动式写回。传统固态盘缓存管理算法均是被动式写回,这种被动式写回是影响固态盘性能的直接原因。
发明内容
本发明所解决的技术问题在于,提出一种固态盘的数据缓存区控制方法,在不增加固态盘的系统开销的前提下,使得尽可能多的请求由数据缓冲区服务,减少实时的被动式写回操作,确保固态盘性能得到明显提高。
为实现上述目的,本发明采用如下技术方案:
一种固态盘的数据缓存区管理方法,包括如下具体步骤:
(1)建立两个计数器DAT、WAN。计数器DAT用作控制提前写回数据缓冲区中数据的数量,既提前写回的阈值;计数器WAN用作记录已经被提前写回的数据量。在进行初始化时,将计数器DAT赋初值,初值通常设置为数据缓存区的数据总量×10%。因为计数器DAT的值在固态盘运行过程中将实时地修改,因此初始化时的赋值也可为其他值;计数器WAN置为0。
(2)比较计数器WAN与计数器DAT的关系,如果WAN<DAT,将进一步执行步骤(3),否则直接跳到步骤(4)。
该步骤中,比较计数器WAN与计数器DAT的关系时,可以先判断当前固态盘的工作状态,即固态盘中部分通道和芯片未处于工作状态时再进行计数器的比较。
(3)从数据缓存区中寻找一个保存有未被写回的数据的节点,将这个节点的数据提前写回闪存,并将其标记为已写回节点,同时根据该节点的数据量修改计数器WAN的值。然后回到步骤(2)。
在这个步骤中,需要实时监测外部请求,如果执行提前写回闪存的操作导致外部请求延时,将暂停写回操作,优先服务外部请求。服务完该外部请求之后再恢复提前写回操作的执行。
(4)检测是否有外部请求,当有外部请求到达时,立即执行该请求。并且根据外部请求的数据是否存在于数据缓存区的情形,调整计数器DAT的值。最后回到步骤(2)。
本发明的关键是提前写回操作,它与传统的数据缓存中的被动式写回操作相对应。被动式写回操作指的是,在传统的数据缓存中,当外部请求的数据需要写到缓存中,才将缓存中的数据写回闪存,这个写回闪存的过程是实时的,因为外部请求只有当这个实时写回操作完成之后才能被服务。提前写回操作指的是,在外部请求数据到达之前,提前将数据缓存区中的部分数据写回闪存,这样当外部请求到达时,将已经被写回的数据删除,然后将新数据记录在数据缓存区中。通过提前写回缓存数据,可以加快固态盘的写操作响应速度,从而提高固态盘性能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210219545.2/2.html,转载请声明来源钻瓜专利网。
- 上一篇:塞班客户端上启动应用的方法和装置
- 下一篇:一种多管程乙烯裂解炉
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置