书签 分享 收藏 举报 版权申诉 / 10

一种固态盘中数据缓存区的控制方法.pdf

  • 上传人:1520****312
  • 文档编号:4218950
  • 上传时间:2018-09-07
  • 格式:PDF
  • 页数:10
  • 大小:4.22MB
  • 摘要
    申请专利号:

    CN201210219545.2

    申请日:

    2012.06.29

    公开号:

    CN102779017A

    公开日:

    2012.11.14

    当前法律状态:

    授权

    有效性:

    有权

    法律详情:

    授权|||实质审查的生效IPC(主分类):G06F 3/06申请日:20120629|||公开

    IPC分类号:

    G06F3/06

    主分类号:

    G06F3/06

    申请人:

    华中科技大学

    发明人:

    冯丹; 胡洋; 刘景宁; 童薇; 江泓; 田磊; 秦亦

    地址:

    430074 湖北省武汉市洪山区珞瑜路1037号

    优先权:

    专利代理机构:

    华中科技大学专利中心 42201

    代理人:

    李佑宏

    PDF完整版下载: PDF下载
    内容摘要

    本发明一种固态盘的数据缓存区控制方法,包括(1)设置第一计数器和第二计数器,分别用于记录提前写回的数据量和已被提前写回的数据量;(2)比较两计数器值的大小,如果第二计数器值小于第一计数器,则跳转到步骤(3),否则跳到步骤(4);(3)从数据缓存区中寻找一个保存有未被写回的数据的节点,将其提前写回闪存,同时根据该节点的数据量修改第二计数器的值,跳转到步骤(2);(4)检测是否有外部写请求,在有时执行该外部写请求,并调整第一计数器的值,跳转到步骤(2)。本发明适不受可扩展性的影响,对采用不同数据缓存区排序方法的固态盘设备都适用,可以在不同负载和使用环境下,提高固态盘的写操作性能。

    权利要求书

    1.一种固态盘中数据缓存区的控制方法,包括如下具体步骤:
    (1)设置第一计数器(DAT)和第二计数器(WAN),其中该第一计数器
    (DAT)用于记录提前写回数据缓冲区中数据的数量既提前写回的阈值,该第二
    计数器(WAN)用于记录已被提前写回的数据量;
    (2)比较所述第一计数器(DAT)和第二计数器(WAN)值的大小,如果
    第二计数器(WAN)值小于第一计数器(DAT),则跳转到步骤(3),否则直
    接跳到步骤(4);
    (3)执行提前写回操作,即从所述数据缓存区中寻找一个保存有未被写回
    的数据的节点,将该节点的数据提前写回闪存,并将其标记为已写回节点,同时
    根据该节点的数据量修改第二计数器(WAN)的值,并跳转到步骤(2);
    (4)在有外部写请求到达时,执行该外部写请求,并且根据该外部请求的
    数据是否存在于数据缓存区,调整数据缓存区的节点队列,并相应调整第一计数
    器(DAT)的值,再跳转到步骤(2)。
    2.根据权利要求1所述的固态盘中数据缓存区的控制方法,其特征在于,
    所述的步骤(4)中:
    (4.1)当写请求的数据存在于数据缓存区时,如果该写请求的数据是属于
    普通节点的数据,则将包含该写请求的数据的节点移动到数据缓存区的队列的队
    首;如果该写请求的数据属于已写回节点的数据,则将其移动到数据缓存区的队
    列的队首,同时将其从已写回节点的队列中移除,即该节点从已写回节点变为普
    通节点;
    (4.2)当写请求的数据不存在于数据缓存区时,如果已写回节点的数量不
    为零,将该已写回节点队列中队首节点删除,将该写请求的数据添加到数据缓存
    区的队列的队首;如果已写回节点的数据量为零,将数据缓存区的队列的队尾节
    点写回闪存,待队尾节点的数据写回闪存的操作完成之后,将该写请求的数据添
    加到数据缓存区的队列的队首;
    其中,所述普通节点指数据还未写回闪存的节点,所述已写回节点指数据已
    经被提前写回到闪存中的节点。
    3.根据权利要求2所述的固态盘中数据缓存区的控制方法,其特征在于,
    在写请求的数据属于数据缓存区中的已写回节点时,将第一计数器(DAT)的值
    减小,减小公式为:
    DAT(新值)=DAT(旧值)-n
    其中,n表示写请求数据量大小。
    4.根据权利要求2或3所述的固态盘中数据缓存区的控制方法,其特征在于,
    在写请求的数据不存在于数据缓存区中且数据缓存区中已写回节点数量为零时,
    将第一计数器DAT的值增大,增大公式如下:
    DAT(新值)=DAT(旧值)+m
    其中,m表示写请求的数据量大小。
    5.根据权利要求1-4之一所述的固态盘中数据缓存区的控制方法,其特征在
    于,所述数据缓存区的节点队列指数据缓存区所有的节点按照缓存节点排序策略
    进行排序的队列,该队列包括由已写回节点组成的的已写回节点队列,且其位于
    该数据缓存区的队列的队尾。
    6.根据权利要求5所述的固态盘中数据缓存区的控制方法,其特征在于,
    所述缓存节点排序策略可以为最近最少使用(LRU)、最不经常使用(LFU)或
    其他排序策略。
    7.根据权利要求1-6之一所述的固态盘中数据缓存区的控制方法,其特征在
    于,所述步骤(3)中,所述寻找的保存有未被写回的数据的节点指数据缓存区
    的队列中沿队尾到队首方向的第一个普通节点。
    8.根据权利要求1-7之一所述的固态盘中数据缓存区的控制方法,其特征在
    于,在执行所述步骤(3)中的提前写回操作时,若有外部读写请求到达固态盘,
    中止正在进行的提前写回操作,优先服务外部请求的读写操作。
    9.根据权利要求1-8之一所述的固态盘中数据缓存区的控制方法,其特征在
    于,所述步骤(1)中,对所述第一计数器(DAT)赋初值为数据缓存区的数据
    总量×10%,对第二计数器(WAN)赋初值0。

    说明书

    一种固态盘中数据缓存区的控制方法

    技术领域

    本发明属于固态盘存储领域,具体涉及一种基于闪存的固态盘中数据缓存区
    的控制方法。

    背景技术

    固态盘是近十年出现的一种新型计算机外存储设备。通常,固态盘分一下几
    种类型:基于闪存的固态盘、基于动态随机存储器的固态盘、基于其他固态介质
    的固态盘。目前应用最广泛的是基于闪存的固态盘。闪存是一种具有高密度,大
    容量,非易失性等特点的新型存储介质,它相对磁介质,具有较低的读写延时、
    较低的能耗;但是闪存芯片自身存在的一些缺陷限制了这类存储器的应用。其一,
    必须先擦除后写入,擦除操作的单元为块,写入操作的单元为页,一个块中有多
    个页。其二,闪存的擦除次数是有限的。固态盘中除了一个处理器、大量的闪存
    芯片外,还有一个或多个内存芯片。内存芯片的主要作用是用作数据缓冲区,即,
    在固态盘工作过程中存放经常读写的数据。

    为了提高固态盘的读写性能,通常,固态盘中存在多个通道,每个通道上有
    多个闪存芯片,多个通道和芯片同时工作可以提高读写带宽。固态盘中存在一个
    内存空间,用作数据缓存区,固态盘中数据缓存区是用户数据在内存中存放的区
    域,它利用一段时间内,请求可能重复出现的特点,将重复出现的请求通过访问
    内存而直接被响应,减少访问闪存的次数。因为相对闪存,内存的读写速度较为
    快速。所以数据缓冲区可以提高固态盘的性能,同时减少了闪存的写操作次数,
    降低了擦除次数,从而提高了固态盘的寿命。

    因为内存的读写速度快,为了提高固态盘性能,需要使大量的外部请求由固
    态盘内存服务,避免由固态盘中的闪存芯片服务。通常,为了使尽可能多的外部
    请求由内存服务,传统的方法是设计各种各样的缓存数据排序算法,即,采用不
    同的规则,将数据缓存区中的数据进行排序,在服务外部请求时,存在两种可能:
    (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)。

    本发明的关键是提前写回操作,它与传统的数据缓存中的被动式写回操作相
    对应。被动式写回操作指的是,在传统的数据缓存中,当外部请求的数据需要写
    到缓存中,才将缓存中的数据写回闪存,这个写回闪存的过程是实时的,因为外
    部请求只有当这个实时写回操作完成之后才能被服务。提前写回操作指的是,在
    外部请求数据到达之前,提前将数据缓存区中的部分数据写回闪存,这样当外部
    请求到达时,将已经被写回的数据删除,然后将新数据记录在数据缓存区中。通
    过提前写回缓存数据,可以加快固态盘的写操作响应速度,从而提高固态盘性能。

    在本发明中,数据缓存区中存在两种类型的数据:未写回的数据、已被写回
    的数据。通常在数据缓存区中,所有的数据以某种方式进行排序,例如最近最少
    使用(LRU)、最不经常使用(LFU)等。在本发明中,数据缓存区中的两种类
    型的数据在一起进行排序。在步骤(3)中,为了寻找一个未被写回的数据,按
    照这个顺序的逆序进行寻找,首先找到的未被写回的数据就是这次提前写回操作
    需要写回的数据。

    在本发明的步骤(3)中,当固态盘正在执行数据缓存区中的提前写回操作
    时,外部请求到达固态盘,将中止正在进行的提前写回操作,优先服务外部请求
    的读写操作,即立即跳转到步骤(4)。

    在本发明的步骤(4)中,依据外部写请求的数据是否命中数据缓存区中已
    被写回的数据,对DAT进行消减;依据外部写请求数据没有命中数据缓存区时,
    数据缓存区中是否还存在已被写回的数据,对DAT进行增加。在本发明的步骤(4)
    中主要是对写操作的操作方法的改进,具体读操作的操作方式按照常规读操作方
    式操作即可。

    本发明的方法可以使得尽可能多的写请求直接由固态盘中的数据缓存区服
    务,避免了实时的写闪存操作,加快了写请求的响应时间,从而提高了固态盘整
    体的读写性能。

    附图说明

    图1为本发明实施例的整体流程图;

    图2为本发明实施例的数据缓存区结构图;

    图3为本发明实施例的写操作的数据存在于数据缓存区时的操作示意图;

    图4为本发明实施例的写操作的数据不存在于数据缓存区时的操作示意图。

    具体实施方式

    下面将结合具体实施例中的附图,对本发明的技术方案进行清楚、完整的描
    述。

    如图1,本实施例的固态盘数据缓存区控制方法,可以主动自适应地适应不
    同负载的特点,明显地提高固态盘的写操作速度,具体包括如下步骤:

    第一步:在固态盘上电开始工作后,进行固态盘的初始化工作,在完成其他
    常规初始化工作的同时,需要建立两个计数器,分别为DAT和WAN。这两个计
    数器分别记录:数据缓存区中允许提前写回的最大数据量;数据缓存区中当前已
    经被提前写回的数据量。

    在进行初始化时,将计数器DAT赋初值,初值通常优选设置为数据缓存区的
    数据总量×10%。因为计数器DAT的值在固态盘运行过程中将实时地修改,因此
    初始化时的赋值也可为其他值;计数器WAN置为0。

    第二步:需要判断固态盘当前的工作状态以及比较计数器DAT与WAN的值。
    目前,固态盘均是基于多通道多芯片的并行结构,通常一个固态盘中包括多个通
    道,每个通道上包括多个芯片,当外部请求需要被服务时,固态盘中的这些通道
    和芯片并未全部服务这个外部请求,而是部分通道、芯片服务该请求,而另外一
    部分通道、芯片处于空闲状态。在这个步骤中,需要判断、寻找固态盘中处于空
    闲状态的通道、芯片。如果存在处于空闲状态的通道、芯片,比较计数器DAT
    与WAN的值,判断是否需要提前写回数据缓存区中的部分数据。根据比较结果,
    将分别执行不同的步骤。当WAN<DAT时,执行第三步;当WAN>=DAT时,执
    行第四步。

    第三步:在数据缓存区中寻找一个节点,将该节点中的数据提前写回到闪存
    中。

    由于在本实施例中,数据缓存区中存在被提前写回的数据节点,因此数据缓
    存区中存在两种类型的数据节点,如图2中所示,包括已写回节点和普通节点。
    已写回节点指数据已经被提前写回到闪存中的节点,普通节点表示数据还未写回
    闪存的节点。所有的节点按照特定的缓存节点排序策略进行排序,在本实施例中
    以最近最少使用策略LRU为例进行说明,如图2,但并不限定于这种策略,其他
    缓存节点排序策略也适用,如最不经常使用策略LFU。除此之外,已写回节点也
    进行排序,称之为已写回节点队列,最先被提前写回的节点处于该已写回节点队
    列的队首;最近被提前写回的节点处于该已写回节点队列的队尾。在整个节点的
    LRU队列中,存在一个指针,指向下一个可提前写回的数据节点,该数据节点是
    LRU队列中从队尾到队首逆序方向的第一个普通节点。在本步骤中,将这个指针
    所指的数据节点提前写回,同时将这个数据节点的数据量增加到计数器WAN上。

    在本实施例的数据缓存区中,普通节点的数据与闪存中保存的数据不同,而
    已写回节点的数据与闪存中保存的数据完全一致。本发明正是利用已写回节点的
    数据与闪存数据的一致性特点,在数据缓存区空间不足时,直接删除已写回节点,
    避免产生实时的写闪存操作,从而提高固态盘写操作性能。

    第四步:如图1中第四点所述,当WAN>=DAT时,无需进行提前写回操作,
    将检测外部请求。当外部没有请求到达时,返回到第二步;当有外部请求到达时,
    需要根据该请求的数据是否存在于数据缓存区,以及存在于数据缓存区的那个区
    域进行不同的处理。图3、图4是外部请求到达时,4种可能的情况。在四种情况
    中,1、2分别是当写请求的数据存在于数据缓存区中的两种情况,如图3所示;
    3、4分别是当写请求的数据不存在于数据缓存区中的两种情况,如图4所示。

    当写请求的数据存在于数据缓存区时,因为数据缓存区存在两种类型的节
    点:普通节点和已写回节点。如果这个数据是属于普通节点的数据,需要将包含
    这个数据的节点移动到数据缓存区的LRU队列的队首,如图3中子图a所示;如
    果这个数据属于已写回节点的数据,也需要将其移动到数据缓存区的LRU队列的
    队首,同时将其从已写回节点的队列中移除,即该节点从已写回节点变为普通节
    点,如图3中子图b所示。

    当写请求的数据不存在于数据缓存区时,如果已写回节点的数量不为零,将
    已写回节点队列中队首节点删除,腾出空间后,将该写请求的数据添加到数据缓
    存区的LRU队列的队首,如图4中子图a所示;如果已写回节点的数据量为零,
    将数据缓存区的LRU队列的队尾节点写回闪存,该写请求的数据需要等待队尾节
    点的数据写回闪存的操作完成之后,才能被添加到数据缓存区的LRU队列的队
    首,如图4中子图b所示。

    计数器DAT是控制提前写回的阈值,它随着时间变化动态调整的。具体的调
    整方法如图3中子图b和图4中子图b所示。

    如图3中子图a,当写请求的数据存在于数据缓存区中的已写回节点,需要
    将计数器DAT的值减小,减小的过程采用以下公式:

    DAT(新值)=DAT(旧值)-n    (1)

    在公式(1)中,n表示写请求数据量大小。

    如图4中子图b,当写请求的数据到达时,该数据不存在与数据缓存区中,
    并且数据缓存区中已写回节点数量为零,需要将计数器DAT的值增大,增大的过
    程采用以下公式:

    DAT(新值)=DAT(旧值)+m    (2)

    在公式(2)中,m表示写请求的数据量大小。

    在执行完第三步、第四步之后,将回到第二步循环执行。因此,在本发明中,
    第二步、第三步、第四步是一个无限循环过程。

    关 键  词:
    一种 固态 数据 缓存 控制 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:一种固态盘中数据缓存区的控制方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-4218950.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1