[go: up one dir, main page]

CN103136121A - 一种固态盘的缓存管理方法 - Google Patents

一种固态盘的缓存管理方法 Download PDF

Info

Publication number
CN103136121A
CN103136121A CN201310096798XA CN201310096798A CN103136121A CN 103136121 A CN103136121 A CN 103136121A CN 201310096798X A CN201310096798X A CN 201310096798XA CN 201310096798 A CN201310096798 A CN 201310096798A CN 103136121 A CN103136121 A CN 103136121A
Authority
CN
China
Prior art keywords
page
cache
dirty
list
block
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
CN201310096798XA
Other languages
English (en)
Other versions
CN103136121B (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 Greatwall Galaxy Technology Co Ltd
Original Assignee
National University of Defense Technology
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 National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201310096798.XA priority Critical patent/CN103136121B/zh
Publication of CN103136121A publication Critical patent/CN103136121A/zh
Application granted granted Critical
Publication of CN103136121B publication Critical patent/CN103136121B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

本发明公开了一种固态盘的缓存管理方法,其实施步骤如下:建立页缓存、替换块缓存、新页链表、物理块链表、物理页状态表;接收来自主机的IO请求并通过页缓存执行,在执行写请求时若页缓存未命中且页缓存无空闲空间时跳转执行固态盘的块替换流程,即优先释放页缓存中的“有效”页空间,在页缓存中“有效”页数量为0时,选取物理块链表后一半物理块中失效比率最大的候选替换块作为替换块,利用替换块缓存执行块替换写入流程。本发明能够有效利用有限的缓存空间并增加缓存的命中率、使得写入Flash介质中的块包含尽量多的脏数据页和尽量少的有效数据页以减少擦除操作及其带来的页复制操作、后续的垃圾回收操作简单。

Description

一种固态盘的缓存管理方法
技术领域
本发明涉及存储设备的缓存管理方法,具体涉及一种固态盘的缓存管理方法。
背景技术
固态盘(Solid State Disk,SSD)是一种利用Flash介质或DRAM芯片作为数据永久存储的硬盘。现在比较常见的SSD为基于Flash介质的SSD,由Flash介质、SSD控制器和一块作为控制器内存使用的DRAM组成。固态盘由于摒弃了传统磁介质、采用电子存储介质进行数据存取,因此摆脱了磁介质硬盘的机械性限制,大大减少了数据查找时间。固态盘的延时为微秒(us)级, 随机访问性能比传统硬盘高一到两个数量级。同时,固态盘具有非易失性、低功耗、抗震性强、读写带宽高、随机访问速度快、可靠性高等优点,能够对小粒度、随机IO访问提供较好的支持。因此,固态盘的使用从一定程度上解决了当代存储系统所面临的一些问题,如访问速度受限等,成为了当前存储领域的研究热点之一。
然而,SSD在具有上述诸多优势的同时,也存在一些问题。较典型的是固态盘的擦后写机制。固态盘读写的基本单位是页,而擦除的基本单位是块,固态盘的擦后写机制是指需要更改固态盘某个块中的某个页时,需要先擦除整个块,再写入该页。为了使得该块的其他数据不丢失,在擦除之前需要将该块中的数据移动到别处,然后再擦除该数据块,最后再写入该页。这样大大限制了固态盘的随机写性能,成为固态盘寿命较短的一个主要因素,限制了固态盘的应用。而且,擦后写机制使得固态盘的写性能大大低于读性能,且频繁的擦写降低了固态盘的使用寿命。
为了提高固态盘的性能,降低擦除次数并延长固态盘的使用寿命,缓存机制被引入,即利用处理数据的时间局部性和空间局部性,将固态盘中的DRAM空间用来缓存写请求的数据,使得一些固态盘的读写操作在缓存中就可以完成,减少了访问Flash介质的次数。目前,存在一些针对固态盘的缓存管理算法。例如,BPLRU算法利用一个写缓存来优化随机写性能,所有主机提交的写请求在写缓存中重新排序然后传递给Flash转换层(Flash Transition Layer, FTL)。Clean-First LRU(CFLRU)算法在不降低缓存命中率的前提下尽量把脏页滞留缓存来减少对Flash介质中存储单元的写次数;LRU-WSR算法将所有的页面分为两类,访问频率高的“热”页和访问频率低的“冷”页,并在页链表中为每个页增加了一个“冷热”标识,“冷”页被优先置换出缓存。这些针对各自不同的目标而设计的缓存管理算法各有优劣,适用于不同的IO访问场景。
为了增加固态盘的性能,延长使用寿命,缓存管理算法应该满足三个方面的要求:(1)尽量利用有限的缓存空间来提高缓存命中率,以提高读写速度并减少写次数;(2)写数据带来的擦除操作应尽可能少,且页的复制次数尽可能少;(3)缓存管理需使得后续的垃圾回收操作尽量简单且复杂度低。但是,上述现有技术均为侧重某一个方面,不能同时满足上述三个方面的要求,而且当前专利和文献中还未见兼顾上述三个特征的缓存管理方法的相关报道。
发明内容
本发明要解决的技术问题是提供一种能够有效利用有限的缓存空间并增加缓存的命中率、使得写入Flash介质中的块包含尽量多的页以减少擦除操作及其带来的页复制操作、后续的垃圾回收操作简单的固态盘的缓存管理方法。
为了解决上述技术问题,本发明采用的技术方案为:
一种固态盘的缓存管理方法,其实施步骤如下:
1)预先在固态盘的缓存中建立用来存储缓存数据的页缓存和用来存储替换块的替换块缓存,然后在固态盘的缓存中建立新页链表、物理块链表、物理页状态表;新页链表用于记录页缓存中的待写入固态盘的逻辑页号;物理块链表用于记录页缓存中的逻辑页所对应的物理块号的信息,物理块链表中的每一个结点为一个用于记录该物理块内所有带有数据及有效标识位的“脏”页的“脏”页链表;物理页状态表用于记录固态盘中每个物理页的数据“有效”、“失效”、“干净”三者之一的状态信息;
2)接收来自主机的IO请求,如果IO请求为读请求则跳转执行步骤3);如果IO请求为写请求则跳转执行步骤4);
3)优先读取页缓存中的逻辑页,当页缓存未命中时,通过FTL从固态盘上读取逻辑页,且将逻辑页数据存入页缓存,更新物理块链表的“脏”页链表并将所述逻辑页对应物理页的状态标记为“有效”;最终将逻辑页数据返回给主机并跳转执行步骤2);
4)判断写请求的逻辑页是否在页缓存中命中,当在页缓存命中时,将逻辑页存入页缓存,更新物理块链表的“脏”页链表,并将所述逻辑页对应物理页的状态标记为“失效”,将写入完成结果返回给主机并跳转执行步骤2);当在页缓存未命中时进一步判断页缓存是否有空闲空间,当页缓存未命中且页缓存有空闲空间时,查询物理页状态表获取写入逻辑页对应物理页的状态,如果状态为“有效”,则将逻辑页存入页缓存,更新物理块链表的“脏”页链表,在物理页状态表中将所述逻辑页对应物理页的状态修改为“失效”;如果状态为“干净”则添加到新页链表,最终将写入完成结果返回给主机并跳转执行步骤2);当在页缓存未命中且页缓存无空闲空间时,跳转执行步骤5);
5)初始化设置变量“有效”页数量的值为0;从物理块链表的表尾向表头遍历每一个“脏”页链表,对每一个“脏”页链表从表尾向表头遍历每一个“脏”页,根据有效标识位判断当前“脏”页是否有效,若有效则释放页缓存的相应逻辑页并删除“脏”页链表中的相应结点,将“有效”页数量加1,判断“有效”页数量等于预设数值是否成立,若成立则跳转执行步骤7);若当前“脏”页的有效标识位为“失效”,则判断下一个“脏”页的有效标识位;当所有“脏”页遍历完成以后,判断“有效”页数量是否为0,若为0则转步骤6);若“有效”页数量不为0,则跳转执行步骤7);
6)首先将物理块链表后一半的物理块作为候选替换块,查找物理页状态表获取各个候选替换块中状态信息为“失效”的失效页数量和状态信息为“有效”的有效页数量,通过失效页数量除以有效页数量计算每一个候选替换块的失效比率,比较各个候选替换块的失效比率,选取失效比率最大的候选替换块作为替换块,将替换块中的页按照页内偏移位置写入替换块缓存,将该替换块内的有效页预读到替换块缓存中,释放这些页在页缓存中所占的空间;判断替换块缓存是否写满,若替换块缓存已满,则转步骤7);若替换块缓存未满,则遍历替换块的每一个页判断当前页是否有数据,若当前页有数据,则跳转下一页的判断处理,若当前页无数据,则判断新页链表的表尾是否指向页缓存中的某一个逻辑页,若表尾指向页缓存中的逻辑页则将数据写入替换块中的当前页并删除新页链表中的相应页、释放该页在页缓存中的空间,并返回遍历替换块的下一个页直至遍历完成;若当前页无数据,则跳转执行步骤7);
7)将替换就绪的消息发给块写入模块,释放页缓存中替换块中的页所占的空间,返回执行步骤4)。
作为本发明上述技术方案的进一步改进:
所述步骤3)的详细步骤如下:
3.1)判断读请求的逻辑页号在页缓存中是否命中,如果未命中则跳转执行步骤3.2),否则,直接从页缓存中读取命中页数据并返回给主机,返回执行步骤2);
3.2)将IO请求转发给FTL,然后判断是否有FTL发送的页数据,当有FTL发送的页数据时跳转执行下一步;
3.3)判断页缓存是否有空闲空间,如果没有空闲空间则直接将读取的页数据返回给主机,返回执行步骤2);如果有空闲空间则将读取的页数据存入页缓存中,跳转执行步骤3.4);
3.4)查找FTL映射表获取读取页数据对应的物理块号,根据所述物理块号查找物理块链表,如果物理块链表不包含该物理块号对应物理块的“脏”页链表,则创建物理块号对应的“脏”页链表作为目标“脏”页链表,并将目标“脏”页链表置于物理块链表的表头;跳转执行步骤3.5);否则,直接跳转执行步骤3.5);
3.5)将读取的页数据的逻辑页添加至目标“脏”页链表的表头,将目标“脏”页链表的表头的逻辑页的有效标识位设置为有效“1”,并将读取的页数据返回给主机并跳转执行步骤2)。
所述步骤4)的详细步骤如下:
4.1)判断写请求的逻辑页号在页缓存中是否命中,如果命中则跳转执行步骤4.2);如果未命中则跳转执行步骤4.6);
4.2)将写请求的数据写入页缓存;
4.3)查找FTL映射表获取写入页数据对应的物理页号和物理块号,根据物理块号查找物理块链表,如果物理块链表包含该物理块号对应物理块的“脏”页链表,则跳转执行步骤4.4),否则跳转执行步骤4.5);
4.4)将目标“脏”页链表移至物理块链表的表头,将目标“脏”页移至目标“脏”页链表的表头并将目标“脏”页的有效标识位设置为失效“0”,跳转执行步骤2);
4.5)创建一个新的物理块号对应的“脏”页链表作为目标“脏”页链表,将目标“脏”页链表移至物理块链表的表头,将目标“脏”页移至目标“脏”页链表的表头,并将目标“脏”页的有效标识位设置为失效“0”,跳转执行步骤2);
4.6)判断页缓存中是否有空闲空间,如果没有空闲空间则跳转执行步骤5),否则跳转执行步骤4.7);
4.7)将写请求数据直接写入页缓存;
4.8)查找FTL映射表获取新写入页缓存的逻辑页所对应的物理页号,根据物理块号查找物理页状态表获取对应物理页的状态,如果所述物理页的状态为“有效”则跳转执行步骤4.9),否则如果所述物理页的状态为“干净”,则跳转执行步骤4.10);
4.9)将写入页缓存的逻辑页添加到目标“脏”页链表的表头并将有效标识位标记为失效“0”,将目标“脏”页链表移至物理块链表的表头,将所述物理页的状态修改为“失效”,跳转执行步骤2);
4.10)将逻辑页添加到新页链表的表头中,跳转执行步骤2)。
本发明具有下述优点:
1、本发明采用多个页级缓存和一个替换块缓存,能够在有限的缓存空间中提高页命中的机会,加快读写速度,并减少读写次数。
2、本发明在选择替换块写入固态盘的Flash介质时,选择的块包含尽量多的脏数据和尽量少的有效数据,这样能够减少块擦除前的页复制次数。
3、本发明在执行块替换时,通过选取从未写入固态盘的Flash介质的逻辑页(即新页链表指向的逻辑页)来填满写入块,使得每次块的写入都是整块数据,有效减少了因多次写入而导致多次擦除操作,进而减少垃圾回收操作的复杂度和时间开销。
4、本发明针对固态盘较传统磁介质硬盘的固有特点,擦后写机制、高写时间以及高擦除时间导致的随机写性能低,固态盘寿命短的问题,通过建立页缓存、替换块缓存、新页链表、物理块链表、物理页状态表,根据建立页缓存、替换块缓存、新页链表、物理块链表、物理页状态表进行读、写以及块替换,能够有效利用页缓存的有限缓存空间并增加缓存的命中率,写数据带来的擦除操作次数少,且页的复制次数尽可能少,并使得写入固态盘Flash介质中的块包含尽量多的页以减少擦除操作及其带来的页复制操作,后续的垃圾回收操作简单,本发明能够满足缓存管理算法的前述三个方面的要求,能够增加固态盘的性能、延长固态盘的使用寿命。
附图说明
图1为本发明实施例的整体方法流程示意图。
图2为本发明实施例的执行块替换的流程示意图。
图3为本发明实施例的执行读请求的流程示意图。
图4为本发明实施例的执行写请求的流程示意图。
图5为应用本发明实施例的固态盘逻辑结构示意图。
图6为应用本发明实施例方法对应缓存管理子系统的结构示意图。
具体实施方式
如图1和图2所示,本实施例固态盘的缓存管理方法的实施步骤如下:
1)预先在固态盘的缓存中建立用来存储缓存数据的页缓存和用来存储替换块的替换块缓存,然后在固态盘的缓存中建立新页链表、物理块链表、物理页状态表;新页链表用于记录页缓存中的待写入固态盘的逻辑页号;物理块链表用于记录页缓存中的逻辑页所对应的物理块号的信息,物理块链表中的每一个结点为一个用于记录该物理块内所有带有数据及有效标识位的“脏”页的“脏”页链表;物理页状态表用于记录固态盘中每个物理页的数据“有效”、“失效”、“干净”三者之一的状态信息;
2)接收来自主机的IO请求,如果IO请求为读请求则跳转执行步骤3);如果IO请求为写请求则跳转执行步骤4);
3)优先读取页缓存中的逻辑页,当页缓存未命中时,通过FTL从固态盘上读取逻辑页,且将逻辑页数据存入页缓存,更新物理块链表的“脏”页链表并将逻辑页对应物理页的状态标记为“有效”;最终将逻辑页数据返回给主机并跳转执行步骤2);
4)判断写请求的逻辑页是否在页缓存中命中,当在页缓存命中时,将逻辑页存入页缓存,更新物理块链表的“脏”页链表,并将逻辑页对应物理页的状态标记为“失效”,将写入完成结果返回给主机并跳转执行步骤2);当在页缓存未命中时进一步判断页缓存是否有空闲空间,当页缓存未命中且页缓存有空闲空间时,查询物理页状态表获取写入逻辑页对应物理页的状态,如果状态为“有效”,则将逻辑页存入页缓存,更新物理块链表的“脏”页链表,在物理页状态表中将逻辑页对应物理页的状态修改为“失效”,如果状态为“干净”则添加到新页链表,最终将写入完成结果返回给主机并跳转执行步骤2);当在页缓存未命中且页缓存无空闲空间时,跳转执行步骤5);
5)初始化设置变量“有效”页数量的值为0;从物理块链表的表尾向表头遍历每一个“脏”页链表,对每一个“脏”页链表从表尾向表头遍历每一个“脏”页,根据有效标识位判断当前“脏”页是否有效,若有效则释放页缓存的相应逻辑页并删除“脏”页链表中的相应结点,将“有效”页数量加1,判断“有效”页数量等于预设数值是否成立,若成立则跳转执行步骤7);若当前“脏”页的有效标识位为“失效”,则判断下一个“脏”页的有效标识位;当所有“脏”页遍历完成以后,判断“有效”页数量是否为0,若为0则转步骤6);若“有效”页数量不为0,则转步骤7);
6)首先将物理块链表后一半的物理块作为候选替换块,查找物理页状态表获取各个候选替换块中状态信息为“失效”的失效页数量和状态信息为“有效”的有效页数量,通过失效页数量除以有效页数量计算每一个候选替换块的失效比率,比较各个候选替换块的失效比率,选取失效比率最大的候选替换块作为替换块,将替换块中的页按照页内偏移位置写入替换块缓存,将该替换块内的有效页预读到替换块缓存中,释放这些页在页缓存中所占的空间;判断替换块缓存是否写满,若替换块缓存已满,则转步骤7);若替换块缓存未满,则遍历替换块的每一个页判断当前页是否有数据,若当前页有数据,则跳转下一页的判断处理,若当前页无数据,则判断新页链表的表尾是否指向页缓存中的某一个逻辑页,若表尾指向页缓存中的逻辑页则将数据写入替换块中的当前页并删除新页链表中的相应页、释放该页在页缓存中的空间,并返回遍历替换块的下一个页直至遍历完成;若当前页无数据,则转转步骤7);
7)将替换就绪的消息发给块写入模块,释放页缓存中替换块中的页所占的空间,返回执行步骤4)。
本实施例中,物理块链表中的有效标识位的值为“1”代表逻辑页的数据有效,值为“0”代表逻辑页的数据失效。本实施例采用多个页级缓存和一个替换块缓存,能够在有限的缓存空间中提高页命中的机会,加快读写速度,并减少读写次数。本实施例在选择替换块写入固态盘的Flash介质时,选择的块包含尽量多的脏数据和尽量少的有效数据,这样能够减少块擦除前的页复制次数。本实施例在执行块替换时,通过选取从未写入固态盘的Flash介质的逻辑页(即新页链表指向的逻辑页)来填满写入块,使得每次块的写入都是整块数据,有效减少了因多次写入而导致多次擦除操作,进而减少垃圾回收操作的复杂度和时间开销。因此,本实施例能够满足缓存管理算法的前述三个方面的要求,能够增加固态盘的性能、延长固态盘的使用寿命。 
如图3所示,本实施例中步骤3)的详细步骤如下:
3.1)判断读请求的逻辑页号在页缓存中是否命中,如果未命中则跳转执行步骤3.2),否则,直接从页缓存中读取命中页数据并返回给主机,返回执行步骤2);
3.2)将IO请求转发给FTL,然后判断是否有FTL发送的页数据,当有FTL发送的页数据时跳转执行下一步,否则继续等待;
3.3)判断页缓存是否有空闲空间,如果没有空闲空间则直接将读取的页数据返回给主机,返回执行步骤2);如果有空闲空间则将读取的页数据存入页缓存中,跳转执行步骤3.4);
3.4)查找FTL映射表获取读取页数据对应的物理块号,根据物理块号查找物理块链表,如果物理块链表不包含该物理块号对应物理块的“脏”页链表,则创建物理块号对应的“脏”页链表作为目标“脏”页链表,并将目标“脏”页链表置于物理块链表的表头,跳转执行步骤3.5);否则,直接跳转执行步骤3.5);
3.5)将读取的页数据的逻辑页添加至目标“脏”页链表的表头,将目标“脏”页链表的表头的逻辑页的有效标识位设置为有效“1”,并将读取的页数据返回给主机并跳转执行步骤2)。
如图4所示,本实施例中步骤4)的详细步骤如下:
4.1)判断写请求的逻辑页号在页缓存中是否命中,如果命中则跳转执行步骤4.2);如果未命中则跳转执行步骤4.6);
4.2)将写请求的数据写入页缓存;
4.3)查找FTL映射表获取写入页数据对应的物理页号和物理块号,根据物理块号查找物理块链表,如果物理块链表包含该物理块号对应物理块的“脏”页链表,则跳转执行步骤4.4),否则跳转执行步骤4.5);
4.4)将目标“脏”页链表移至物理块链表的表头,将目标“脏”页移至目标“脏”页链表的表头并将目标“脏”页的有效标识位设置为失效“0”,跳转执行步骤2);
4.5)创建一个新的物理块号对应的“脏”页链表作为目标“脏”页链表,将目标“脏”页链表移至物理块链表的表头,将目标“脏”页移至目标“脏”页链表的表头,并将目标“脏”页的有效标识位设置为失效“0”,跳转执行步骤2);
4.6)判断页缓存中是否有空闲空间,如果没有空闲空间则跳转执行步骤5),否则跳转执行步骤4.7);
4.7)将写请求数据直接写入页缓存;
4.8)查找FTL映射表获取新写入页缓存的逻辑页所对应的物理页号,根据物理块号查找物理页状态表获取对应物理页的状态,如果物理页的状态为“有效”则跳转执行步骤4.9),否则如果物理页的状态为“干净”,则跳转执行步骤4.10);
4.9)将写入页缓存的逻辑页添加到目标“脏”页链表的表头并将有效标识位标记为失效“0”,将目标“脏”页链表移至物理块链表的表头,将物理页的状态修改为“失效”,跳转执行步骤2);
4.10)将逻辑页添加到新页链表的表头中,跳转执行步骤2)。
如图5所示,固态硬盘主要由Flash芯片、缓存和Flash转换层(FTL)组成,FTL包含了一系列管理程序来处理固态硬盘的读、写、擦除操作。本实施例在应用时通过一个设于Flash转换层(FTL)中的缓存管理子系统实现的。缓存管理子系统与主机和固态硬盘的Flash转换层(Flash Transition Layer,FTL)相连,缓存管理子系统是FTL中专门用于管理对IO请求的数据进行缓存的管理程序,以提高IO处理的性能。缓存管理子系统与主机、缓存和FTL中的其他管理程序相连,缓存管理子系统接收来自主机的IO请求,处理IO请求,并将处理结果返回给主机。缓存管理子系统从主机获取固态盘的IO请求,IO请求访问的地址是逻辑页号。若IO请求为读请求,且读请求的逻辑页号与缓存命中,则缓存管理子系统直接将缓存中的数据返回给主机,否则将读请求发送给FTL以从Flash介质中读取相应的数据,并从FTL中接收并缓存从固态盘的Flash介质中读取的数据。若IO请求为写请求,则判断写请求的逻辑页号是否与缓存命中。若命中,缓存管理子系统将数据直接写入缓存,若未命中,则将数据写入缓存,并修改FTL中的FTL映射表。存储管理子系统将从Flash介质中读取的数据存入缓存和将请求写入的数据写入缓存之前,判断缓存是否写满,若缓存写满,则将缓存中的页替换出缓存并写入Flash介质,并释放相应的缓存空间用于缓存新的数据,否则在缓存中存储请求写入的页数据。
如图6所示,本实施例方法对应的缓存管理子系统由页缓存、替换块缓存、新页链表、物理块链表、物理页状态表、缓存管理模块、块替换模块和块写入模块组成。
页缓存用来存储缓存数据,存储数据的基本单位是页,页的数量=缓存大小/页大小。
替换块缓存用来存储替换块,存储数据的基本单位是块,一块包含N个页,N=块大小/页大小。新页链表用于记录缓存中的第一次写入Flash介质的逻辑页号,这些逻辑页号所对应的物理页无数据,链表中的每一个结点为一个逻辑页号。
新页链表管理的所有页可以写入Flash介质中的任意位置。物理块链表用于记录缓存中的页所对应的物理块号的信息,链表中的每一个结点为一个“脏”页链表(“脏”页表示该物理页中有数据,否则为“干净”页),且“脏”页链表用于记录该物理块内的所有“脏”页。“脏”页链表中的每一个结点为一个“脏”页,且具有一个有效标识位S,S为1表示该页“有效”,S为0表示该页“失效”。
物理页状态表用于记录Flash介质中每个物理页的状态,状态分为“有效”、“失效”、“干净”。“有效”表示该物理页中有数据,且数据为有效数据;“失效”表示该物理页中有数据,但数据为无效数据;“干净”表示该物理页中无数据。
缓存管理模块与主机、块替换模块、新页链表、物理块链表、物理页状态表、缓存和FTL相连。缓存管理模块接收并处理从主机发送过来的IO请求。若IO请求为写请求,缓存管理模块首先判断该IO请求的逻辑页是否在页缓存中命中。若命中,则直接将相应的数据写入页缓存以覆盖该页中的原有数据。若未命中,则判断页缓存中是否有空闲空间,若无空闲空间,则调用块替换模块,将选择页缓存中的数据写入替换块缓存,并替换块缓存中的数据写入Flash介质以空闲出缓存区域。然后,缓存管理模块将该写请求的数据缓存于页缓存中,并查找FTL映射表获取该逻辑页对应的物理页,然后查找物理页状态表获取该物理页的状态。若该物理页的状态为“有效”,缓存管理模块将该逻辑页添加到物理块链表中该物理块的“脏”页链表的表头,并将表头置为0,并将该“脏”页链表置于物理块链表的表头,同时将物理页状态表中该页的状态置为“失效”。若该物理页的状态为“干净”,缓存管理模块将该逻辑页添加到新页链表的表头中。若IO请求为读请求,缓存管理模块首先判断该IO读请求的逻辑页是否在页缓存中命中,若命中,则直接将相应的数据读出并返回给主机;否则将读请求转发给FTL以从Flash中读取相应的信息。缓存管理模块还接收来自FTL读取的数据,并缓存在页缓存中,同时将该页添加进物理块链表中的相应“脏”页链表的表头,并将表头标记为1,然后将该“脏”页链表置于物理块链表的表头,最后将该页信息返回给主机。
块替换模块用于选取替换出缓存的页,与缓存管理模块、物理块链表和块写入模块和FTL相连。块替换模块接收从缓存管理模块发送过来的块替换请求,开始选取替换出缓存的页。块替换模块从物理块链表的表尾到表头开始遍历物理块链表中的每一个“脏”页链表,对于每一个“脏”页链表也从表尾到表头遍历寻找标识为“1”的页,直到找出N个页或者遍历结束。每找出一个标识为“1”的页,释放相应的页缓存空间,然后删除“脏”页链表中的相应结点。若缓存中无“有效”页(即标识为“1”的页),则选择物理块链表的后1/2结点所对应的块作为候选替换块。通过比较候选替换块中的失效比率,选择失效比率最大的作为替换块。其中,失效比率为该物理块中“失效”页数量和“有效”页数量的比率。然后根据页内偏移量,依次将替换块中的页写入块替换缓存。然后,块替换模块将Flash介质的替换块中的其他“有效”页读出并写入替换块缓存,最后,从新页链表的表尾开始,选择相应的页填满替换块缓存。块替换缓存填满后,块替换模块发送替换就绪的消息给块写入模块。
块写入模块与块替换模块和FTL相连,块写入模块接收到来自块替换模块发送的替换就绪的消息,然后将替换块缓存通过FTL写入Flash介质中,发送写入成功的消息及原物理块号给块FTL中的擦除模块以擦除原物理块和更新物理页状态表,并发送写入地址给FTL中的FTL映射表更新模块以更新FTL映射表。
本实施例中,缓存管理模块处理某个IO读请求的流程如下:
A1、缓存管理模块获取IO读请求,并根据该IO读请求的逻辑页号,判断该逻辑页号是否与页缓存的某项命中,根据判断结果进入步骤A1.1或者A1.2。
A1.1、若逻辑页号命中,缓存管理模块则从缓存读出页数据,转步骤A3。
A1.2、若逻辑页号命中失败,则将该请求转发给FTL,转步骤A2。
A2、缓存管理模块判断是否有从FTL发送过来的页数据,根据判断结果进入步骤A2.1或者A2.2。
A2.1、若无,则转步骤A2继续等待。
A2.2、若有,缓存管理模块从FTL接收读取的页数据,并判断页缓存是否有空闲空间,根据判断结果进入步骤A2.2.1或者A2.2.2。
A2.2.1、若页缓存无空闲空间,转步骤A3。
A2.2.2、若页缓存有空闲空间,则将该页数据存入页缓存中,转步骤A2.2.3。
A2.2.3、缓存管理模块根据该页对应的物理块号查找物理块链表,并判断物理块链表是否包含该物理块的“脏”页链表,根据判断结果进入步骤A2.2.3.1或者A2.2.3.2。
A2.2.3.1、若物理块链表不包含该物理块的“脏”页链表,则创建一个“脏”页链表,并将该“脏”页链表置于物理块链表的表头。
A2.2.3.2、获取该物理块的“脏”页链表,并将该页添加进 “脏”页链表的表头,并将表头标记为1。
A3、缓存管理模块将获取的页数据返回给主机。
A4、读过程结束。
缓存管理模块处理某个IO写请求的流程如下:
B1、缓存管理模块则根据该IO写请求的逻辑页号,判断该逻辑页号是否与页缓存的某项命中,根据判断结果进入步骤B1.1或者B1.2。
B1.1、若逻辑页号命中,则将写请求中的数据直接写入页缓存,依次执行步骤B1.1.1和B1.1.2。
B1.1.1、缓存管理模块查找FTL映射表,获取该逻辑页对应的物理页号及物理块块号。
B1.1.2、缓存管理模块判断物理块链表中是否包含该物理块的“脏”页链表。若有,则将该“脏”页链表移至物理块链表的表头,并将该页添加到该“脏”页链表的表头,设置该页的有效标识位为“0”。若无,则创建一个新的“脏”页链表,并将该页添加到该“脏”页链表的表头,再将该“脏”页链表添加到物理块链表的表头,设置该页的有效标识位为“0”。
B1.2、若逻辑页号未命中,则判断页缓存是否有空闲空间,根据判断结果进入步骤B1.2.1或者B1.2.2。
B1.2.1、若页缓存无空闲空间,则缓存管理模块发送块替换请求给块替换模块,并跳转执行步骤B1.2。
B1.2.2、若页缓存有空闲空间,则将写请求的数据直接写入页缓存,依次执行步骤B1.2.2.1和B1.2.2.2。
B1.2.2.1、缓存管理模块通过查找FTL映射表,获取新写入页缓存的页对应的物理页号,并查找物理页状态表获取该物理页的状态。根据物理页的状态进入步骤B1.2.2.1.1或者B1.2.2.1.2。
B1.2.2.1.1、若该物理页的状态为“有效”,缓存管理模块将该逻辑页添加到物理块链表中该物理块的“脏”页链表的表头,并将表头的有效标识位置为“0”,并将该“脏”页链表置于物理块链表的表头,同时将物理页状态表中该页的状态置为“失效”,转步骤B1.3。
B1.2.2.1.2、若该物理页的状态为“干净”,缓存管理模块将该逻辑页添加到新页链表的表头中,转步骤B1.3。
B1.3、写过程结束。
块替换模块处理块替换的流程如下:
C1、块替换模块接收块替换请求,设置变量“有效”页数量的值为0。
C2、块替换模块从物理块链表的表尾到表头开始遍历物理块链表中的每一个“脏”页链表。
C2.1、对于每一个“脏”页链表,块替换模块也从表尾到表头遍历每一页。
C2.2、块替换模块判断该页标识是否为“1”,若为1,则释放相应的页缓存空间,然后删除“脏”页链表中的相应结点,“有效”页数量加1。否则,转步骤C2.1继续遍历直至遍历完毕。
C2.3、判断“有效”页数量是否等于N,若成立,则转步骤C11。
C3、若“有效”页数量不为0,则转步骤C11。若“有效”页数量为0,则转步骤C4。
C4、块替换模块将物理块链表中后一半的物理块作为候选替换块。
C5、对每一个候选替换块,执行步骤C5.1。
C5.1、块替换模块通过查找物理页状态表,获取候选替换块中的“失效”页和“有效”页的数量,并计算失效比率,且失效比率=失效页数量/有效页数量。
C6、块替换模块比较候选替换块的实效比率,选取实效比率最大的候选替换块作为替换块。
C7、块替换模块将替换块中的页按照页内偏移位置写入替换块缓存。
C8、块替换模块通过并将该物理块内的有效页预读到替换块缓存中,然后释放这些页在页缓存中所占的空间。
C9、块替换模块判断替换块缓存是否写满,若替换块缓存已满,则转步骤C11。
C10、判断替换块的当前页是否有数据,若当前页有数据,则遍历下一页重新执行步骤C10。若当前页无数据,转步骤C10.1。
C10.1、获取新页链表的表尾所指向的页,判断该页是否有数据。若有,则将数据写入替换块中的当前页,并删除新页链表中的相应页,释放该页在页缓存中的空间,转步骤C10.2;若无数据,则转步骤C11。
C10.2、遍历替换块缓存中的下一个页,转步骤C10。
C11、块替换模块将替换就绪的消息发给块写入模块,释放页缓存中替换块中的页所占的空间。
C12、块替换执行完成。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (3)

1.一种固态盘的缓存管理方法,其特征在于实施步骤如下:
1)预先在固态盘的缓存中建立用来存储缓存数据的页缓存和用来存储替换块的替换块缓存,然后在固态盘的缓存中建立新页链表、物理块链表、物理页状态表;新页链表用于记录页缓存中的待写入固态盘的逻辑页号;物理块链表用于记录页缓存中的逻辑页所对应的物理块号的信息,物理块链表中的每一个结点为一个用于记录该物理块内所有带有数据及有效标识位的“脏”页的“脏”页链表;物理页状态表用于记录固态盘中每个物理页的数据“有效”、“失效”、“干净”三者之一的状态信息;
2)接收来自主机的IO请求,如果IO请求为读请求则跳转执行步骤3);如果IO请求为写请求则跳转执行步骤4);
3)优先读取页缓存中的逻辑页,当页缓存未命中时,通过FTL从固态盘上读取逻辑页,且将逻辑页数据存入页缓存,更新物理块链表的“脏”页链表并将所述逻辑页对应物理页的状态标记为“有效”;最终将逻辑页数据返回给主机并跳转执行步骤2);
4)判断写请求的逻辑页是否在页缓存中命中,当在页缓存命中时,将逻辑页存入页缓存,更新物理块链表的“脏”页链表,并将所述逻辑页对应物理页的状态标记为“失效”,将写入完成结果返回给主机并跳转执行步骤2);当在页缓存未命中时进一步判断页缓存是否有空闲空间,当页缓存未命中且页缓存有空闲空间时,查询物理页状态表获取写入逻辑页对应物理页的状态,如果状态为“有效”,则将逻辑页存入页缓存,更新物理块链表的“脏”页链表,在物理页状态表中将所述逻辑页对应物理页的状态修改为“失效”,如果状态为“干净”则添加到新页链表,最终将写入完成结果返回给主机并跳转执行步骤2);当在页缓存未命中且页缓存无空闲空间时,跳转执行步骤5);
5)初始化设置变量“有效”页数量的值为0;从物理块链表的表尾向表头遍历每一个“脏”页链表,对每一个“脏”页链表从表尾向表头遍历每一个“脏”页,根据有效标识位判断当前“脏”页是否有效,若有效则释放页缓存的相应逻辑页并删除“脏”页链表中的相应结点,将“有效”页数量加1,判断“有效”页数量等于预设数值是否成立,若成立则跳转执行步骤7);若当前“脏”页的有效标识位为“失效”,则判断下一个“脏”页的有效标识位;当所有“脏”页遍历完成以后,判断“有效”页数量是否为0,若为0则转步骤6);若“有效”页数量不为0,则跳转执行步骤7);
6)首先将物理块链表后一半的物理块作为候选替换块,查找物理页状态表获取各个候选替换块中状态信息为“失效”的失效页数量和状态信息为“有效”的有效页数量,通过失效页数量除以有效页数量计算每一个候选替换块的失效比率,比较各个候选替换块的失效比率,选取失效比率最大的候选替换块作为替换块,将替换块中的页按照页内偏移位置写入替换块缓存,将该替换块内的有效页预读到替换块缓存中,释放这些页在页缓存中所占的空间;判断替换块缓存是否写满,若替换块缓存已满,则跳转执行步骤7);若替换块缓存未满,则遍历替换块的每一个页判断当前页是否有数据,若当前页有数据,则跳转下一页的判断处理,若当前页无数据,则判断新页链表的表尾是否指向页缓存中的某一个逻辑页,若表尾指向页缓存中的逻辑页则将数据写入替换块中的当前页并删除新页链表中的相应页、释放该页在页缓存中的空间,并返回遍历替换块的下一个页直至遍历完成;若当前页无数据,则跳转执行步骤7);
7)将替换就绪的消息发给块写入模块,释放页缓存中替换块中的页所占的空间,返回执行步骤4)。
2.根据权利要求1所述的固态盘的缓存管理方法,其特征在于,所述步骤3)的详细步骤如下:
3.1)判断读请求的逻辑页号在页缓存中是否命中,如果未命中则跳转执行步骤3.2),否则,直接从页缓存中读取命中页数据并返回给主机,返回执行步骤2);
3.2)将IO请求转发给FTL,然后判断是否有FTL发送的页数据,当有FTL发送的页数据时跳转执行下一步;
3.3)判断页缓存是否有空闲空间,如果没有空闲空间则直接将读取的页数据返回给主机,返回执行步骤2);如果有空闲空间则将读取的页数据存入页缓存中,跳转执行步骤3.4);
3.4)查找FTL映射表获取读取页数据对应的物理块号,根据所述物理块号查找物理块链表,如果物理块链表不包含该物理块号对应物理块的“脏”页链表,则创建物理块号对应的“脏”页链表作为目标“脏”页链表,并将目标“脏”页链表置于物理块链表的表头,跳转执行步骤3.5);否则,直接跳转执行步骤3.5);
3.5)将读取的页数据的逻辑页添加至目标“脏”页链表的表头,将目标“脏”页链表的表头的逻辑页的有效标识位设置为“有效”,并将读取的页数据返回给主机并跳转执行步骤2)。
3.根据权利要求1或2所述的固态盘的缓存管理方法,其特征在于,所述步骤4)的详细步骤如下:
4.1)判断写请求的逻辑页号在页缓存中是否命中,如果命中则跳转执行步骤4.2);如果未命中则跳转执行步骤4.6);
4.2)将写请求的数据写入页缓存;
4.3)查找FTL映射表获取写入页数据对应的物理页号和物理块号,根据物理块号查找物理块链表,如果物理块链表包含该物理块号对应物理块的“脏”页链表,则跳转执行步骤4.4),否则跳转执行步骤4.5);
4.4)将目标“脏”页链表移至物理块链表的表头,将目标“脏”页移至目标“脏”页链表的表头并将目标“脏”页的有效标识位设置为失效“0”,跳转执行步骤2);
4.5)创建一个新的物理块号对应的“脏”页链表作为目标“脏”页链表,将目标“脏”页链表移至物理块链表的表头,将目标“脏”页移至目标“脏”页链表的表头,并将目标“脏”页的有效标识位设置为无效“0”,跳转执行步骤2);
4.6)判断页缓存中是否有空闲空间,如果没有空闲空间则跳转执行步骤5),否则跳转执行步骤4.7);
4.7)将写请求数据直接写入页缓存;
4.8)查找FTL映射表获取新写入页缓存的逻辑页所对应的物理页号,根据物理块号查找物理页状态表获取对应物理页的状态,如果所述物理页的状态为“有效”则跳转执行步骤4.9),否则如果所述物理页的状态为“干净”,则跳转执行步骤4.10);
4.9)将写入页缓存的逻辑页添加到目标“脏”页链表的表头并将有效标识位标记为失效“0”,将目标“脏”页链表移至物理块链表的表头,将所述物理页的状态修改为“失效”,跳转执行步骤2);
4.10)将逻辑页添加到新页链表的表头中,跳转执行步骤2)。
CN201310096798.XA 2013-03-25 2013-03-25 一种固态盘的缓存管理方法 Active CN103136121B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310096798.XA CN103136121B (zh) 2013-03-25 2013-03-25 一种固态盘的缓存管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310096798.XA CN103136121B (zh) 2013-03-25 2013-03-25 一种固态盘的缓存管理方法

Publications (2)

Publication Number Publication Date
CN103136121A true CN103136121A (zh) 2013-06-05
CN103136121B CN103136121B (zh) 2014-04-16

Family

ID=48495968

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310096798.XA Active CN103136121B (zh) 2013-03-25 2013-03-25 一种固态盘的缓存管理方法

Country Status (1)

Country Link
CN (1) CN103136121B (zh)

Cited By (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631940A (zh) * 2013-12-09 2014-03-12 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及系统
CN103729145A (zh) * 2013-12-19 2014-04-16 华为技术有限公司 Io请求的处理方法及装置
CN104408126A (zh) * 2014-11-26 2015-03-11 杭州华为数字技术有限公司 一种数据库的持久化写入方法、装置和系统
CN104484290A (zh) * 2014-12-19 2015-04-01 上海斐讯数据通信技术有限公司 Flash的操作方法及Flash的操作装置
WO2016095761A1 (zh) * 2014-12-16 2016-06-23 华为技术有限公司 缓存的处理方法和装置
CN105739926A (zh) * 2016-01-29 2016-07-06 四川长虹电器股份有限公司 提高机顶盒启动速度并延长Flash使用寿命的方法
CN105824759A (zh) * 2014-10-31 2016-08-03 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN105930282A (zh) * 2016-04-14 2016-09-07 北京时代民芯科技有限公司 一种用于nand flash的数据缓存方法
CN106227471A (zh) * 2016-08-19 2016-12-14 深圳大普微电子科技有限公司 固态硬盘和应用于固态硬盘的数据存取方法
CN106502592A (zh) * 2016-10-26 2017-03-15 郑州云海信息技术有限公司 固态硬盘缓存块回收方法及系统
CN107122124A (zh) * 2016-02-25 2017-09-01 中兴通讯股份有限公司 数据处理方法及装置
CN107273306A (zh) * 2017-06-19 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘的数据读取、数据写入方法及固态硬盘
CN107622023A (zh) * 2016-07-13 2018-01-23 希捷科技有限公司 限制数据存储设备中的访问操作
CN107870732A (zh) * 2016-09-23 2018-04-03 伊姆西Ip控股有限责任公司 从固态存储设备冲刷页面的方法和设备
CN108228471A (zh) * 2016-12-14 2018-06-29 旺宏电子股份有限公司 管理存储器装置中存储器单元的实体信息的方法及系统
CN108519858A (zh) * 2018-03-22 2018-09-11 雷科防务(西安)控制技术研究院有限公司 存储芯片硬件命中方法
CN108776614A (zh) * 2018-05-03 2018-11-09 华为技术有限公司 存储块的回收方法和装置
CN108920096A (zh) * 2018-06-06 2018-11-30 深圳忆联信息系统有限公司 一种ssd的数据储存方法、装置、计算机设备及存储介质
CN109324979A (zh) * 2018-08-20 2019-02-12 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法
CN109918316A (zh) * 2019-02-26 2019-06-21 深圳忆联信息系统有限公司 一种减少ftl地址映射空间的方法及其系统
CN110032671A (zh) * 2019-04-12 2019-07-19 北京百度网讯科技有限公司 用户轨迹信息的处理方法、装置、计算机设备及存储介质
CN110555001A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质
CN110688325A (zh) * 2019-09-05 2020-01-14 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN111124305A (zh) * 2019-12-20 2020-05-08 浪潮电子信息产业股份有限公司 固态硬盘磨损均衡方法、装置及计算机可读存储介质
CN111190835A (zh) * 2019-12-29 2020-05-22 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及介质
CN111367823A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种写入有效数据的方法以及装置
CN111857601A (zh) * 2020-07-30 2020-10-30 暨南大学 一种基于垃圾回收与通道并行性的固态盘缓存管理方法
CN112148631A (zh) * 2020-09-25 2020-12-29 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN113326214A (zh) * 2021-06-16 2021-08-31 统信软件技术有限公司 一种页缓存管理方法、计算设备及可读存储介质
CN113655955A (zh) * 2021-07-16 2021-11-16 深圳大普微电子科技有限公司 缓存管理方法、固态硬盘控制器及固态硬盘
CN114265694A (zh) * 2021-12-23 2022-04-01 国家电网有限公司信息通信分公司 一种内存置换方法及装置
CN114490430A (zh) * 2021-12-27 2022-05-13 天翼云科技有限公司 一种数据处理方法、装置、设备及介质
CN114510198A (zh) * 2022-02-16 2022-05-17 北京中电华大电子设计有限责任公司 一种提高nvm擦写效率的方法
CN114697325A (zh) * 2022-03-15 2022-07-01 浪潮云信息技术股份公司 一种集群虚拟化资源管理平台缓存设备的自动化部署方法及运维装置
CN115048056A (zh) * 2022-06-20 2022-09-13 河北工业大学 基于页面替换代价的固态硬盘缓冲区管理方法
CN115629705A (zh) * 2022-09-27 2023-01-20 山东云海国创云计算装备产业创新中心有限公司 一种数据存储方法、系统、设备以及存储介质
CN115858421A (zh) * 2023-03-01 2023-03-28 浪潮电子信息产业股份有限公司 一种缓存管理方法、装置、设备、可读存储介质及服务器

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862475A (zh) * 2005-07-15 2006-11-15 华为技术有限公司 磁盘阵列缓存的管理方法
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
CN101819509A (zh) * 2010-04-19 2010-09-01 清华大学深圳研究生院 一种固态硬盘读写方法
US20110173395A1 (en) * 2010-01-12 2011-07-14 International Business Machines Corporation Temperature-aware buffered caching for solid state storage
CN102156753A (zh) * 2011-04-29 2011-08-17 中国人民解放军国防科学技术大学 面向固态硬盘文件系统的数据页缓存方法
CN102768645A (zh) * 2012-06-14 2012-11-07 国家超级计算深圳中心(深圳云计算中心) 混合缓存的固态硬盘预取方法和固态硬盘ssd
CN102981963A (zh) * 2012-10-30 2013-03-20 华中科技大学 一种固态盘的闪存转换层的实现方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1862475A (zh) * 2005-07-15 2006-11-15 华为技术有限公司 磁盘阵列缓存的管理方法
CN101673188A (zh) * 2008-09-09 2010-03-17 上海华虹Nec电子有限公司 一种固态硬盘的数据存取方法
US20110173395A1 (en) * 2010-01-12 2011-07-14 International Business Machines Corporation Temperature-aware buffered caching for solid state storage
CN101819509A (zh) * 2010-04-19 2010-09-01 清华大学深圳研究生院 一种固态硬盘读写方法
CN102156753A (zh) * 2011-04-29 2011-08-17 中国人民解放军国防科学技术大学 面向固态硬盘文件系统的数据页缓存方法
CN102768645A (zh) * 2012-06-14 2012-11-07 国家超级计算深圳中心(深圳云计算中心) 混合缓存的固态硬盘预取方法和固态硬盘ssd
CN102981963A (zh) * 2012-10-30 2013-03-20 华中科技大学 一种固态盘的闪存转换层的实现方法

Cited By (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103631940B (zh) * 2013-12-09 2017-02-08 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及系统
CN103631940A (zh) * 2013-12-09 2014-03-12 中国联合网络通信集团有限公司 一种应用于hbase数据库的数据写入方法及系统
CN103729145A (zh) * 2013-12-19 2014-04-16 华为技术有限公司 Io请求的处理方法及装置
CN103729145B (zh) * 2013-12-19 2017-06-16 华为技术有限公司 Io请求的处理方法及装置
CN105824759B (zh) * 2014-10-31 2018-09-18 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
US10089225B2 (en) 2014-10-31 2018-10-02 Silicon Motion, Inc. Improving garbage collection efficiency by reducing page table lookups
CN105824759A (zh) * 2014-10-31 2016-08-03 慧荣科技股份有限公司 数据储存装置以及快闪存储器控制方法
CN104408126A (zh) * 2014-11-26 2015-03-11 杭州华为数字技术有限公司 一种数据库的持久化写入方法、装置和系统
CN104408126B (zh) * 2014-11-26 2018-06-15 杭州华为数字技术有限公司 一种数据库的持久化写入方法、装置和系统
WO2016095761A1 (zh) * 2014-12-16 2016-06-23 华为技术有限公司 缓存的处理方法和装置
CN104484290A (zh) * 2014-12-19 2015-04-01 上海斐讯数据通信技术有限公司 Flash的操作方法及Flash的操作装置
CN104484290B (zh) * 2014-12-19 2018-09-28 上海斐讯数据通信技术有限公司 Flash的操作方法及Flash的操作装置
CN105739926A (zh) * 2016-01-29 2016-07-06 四川长虹电器股份有限公司 提高机顶盒启动速度并延长Flash使用寿命的方法
CN107122124B (zh) * 2016-02-25 2021-06-15 中兴通讯股份有限公司 数据处理方法及装置
CN107122124A (zh) * 2016-02-25 2017-09-01 中兴通讯股份有限公司 数据处理方法及装置
CN105930282A (zh) * 2016-04-14 2016-09-07 北京时代民芯科技有限公司 一种用于nand flash的数据缓存方法
CN105930282B (zh) * 2016-04-14 2018-11-06 北京时代民芯科技有限公司 一种用于nand flash的数据缓存方法
CN107622023A (zh) * 2016-07-13 2018-01-23 希捷科技有限公司 限制数据存储设备中的访问操作
CN106227471A (zh) * 2016-08-19 2016-12-14 深圳大普微电子科技有限公司 固态硬盘和应用于固态硬盘的数据存取方法
US10810127B2 (en) 2016-08-19 2020-10-20 Shenzhen Dapu Microelectronics Co., Ltd. Solid-state hard disk and data access method for use with solid-state hard disk
CN107870732A (zh) * 2016-09-23 2018-04-03 伊姆西Ip控股有限责任公司 从固态存储设备冲刷页面的方法和设备
US10860494B2 (en) 2016-09-23 2020-12-08 EMC IP Holding Company LLC Flushing pages from solid-state storage device
CN106502592A (zh) * 2016-10-26 2017-03-15 郑州云海信息技术有限公司 固态硬盘缓存块回收方法及系统
CN108228471A (zh) * 2016-12-14 2018-06-29 旺宏电子股份有限公司 管理存储器装置中存储器单元的实体信息的方法及系统
CN107273306A (zh) * 2017-06-19 2017-10-20 郑州云海信息技术有限公司 一种固态硬盘的数据读取、数据写入方法及固态硬盘
CN107273306B (zh) * 2017-06-19 2021-01-12 苏州浪潮智能科技有限公司 一种固态硬盘的数据读取、数据写入方法及固态硬盘
CN108519858B (zh) * 2018-03-22 2021-06-08 雷科防务(西安)控制技术研究院有限公司 存储芯片硬件命中方法
CN108519858A (zh) * 2018-03-22 2018-09-11 雷科防务(西安)控制技术研究院有限公司 存储芯片硬件命中方法
CN108776614B (zh) * 2018-05-03 2021-08-13 华为技术有限公司 存储块的回收方法和装置
CN108776614A (zh) * 2018-05-03 2018-11-09 华为技术有限公司 存储块的回收方法和装置
CN108920096A (zh) * 2018-06-06 2018-11-30 深圳忆联信息系统有限公司 一种ssd的数据储存方法、装置、计算机设备及存储介质
CN109324979A (zh) * 2018-08-20 2019-02-12 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法
CN109324979B (zh) * 2018-08-20 2020-10-16 华中科技大学 3d闪存固态盘系统的数据缓存划分方法及数据分配方法
CN111367823A (zh) * 2018-12-25 2020-07-03 北京兆易创新科技股份有限公司 一种写入有效数据的方法以及装置
CN111367823B (zh) * 2018-12-25 2022-03-29 北京兆易创新科技股份有限公司 一种写入有效数据的方法以及装置
CN109918316B (zh) * 2019-02-26 2021-07-13 深圳忆联信息系统有限公司 一种减少ftl地址映射空间的方法及其系统
CN109918316A (zh) * 2019-02-26 2019-06-21 深圳忆联信息系统有限公司 一种减少ftl地址映射空间的方法及其系统
CN110032671A (zh) * 2019-04-12 2019-07-19 北京百度网讯科技有限公司 用户轨迹信息的处理方法、装置、计算机设备及存储介质
CN110555001B (zh) * 2019-09-05 2021-05-28 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质
CN110555001A (zh) * 2019-09-05 2019-12-10 腾讯科技(深圳)有限公司 数据处理方法、装置、终端及介质
CN110688325A (zh) * 2019-09-05 2020-01-14 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN110688325B (zh) * 2019-09-05 2021-12-03 苏州浪潮智能科技有限公司 一种固态硬盘的垃圾回收方法、装置、设备及存储介质
CN111124305A (zh) * 2019-12-20 2020-05-08 浪潮电子信息产业股份有限公司 固态硬盘磨损均衡方法、装置及计算机可读存储介质
CN111124305B (zh) * 2019-12-20 2021-08-31 浪潮电子信息产业股份有限公司 固态硬盘磨损均衡方法、装置及计算机可读存储介质
CN111190835A (zh) * 2019-12-29 2020-05-22 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及介质
CN111190835B (zh) * 2019-12-29 2022-06-10 北京浪潮数据技术有限公司 一种数据写入方法、装置、设备及介质
CN111857601A (zh) * 2020-07-30 2020-10-30 暨南大学 一种基于垃圾回收与通道并行性的固态盘缓存管理方法
CN111857601B (zh) * 2020-07-30 2023-09-01 暨南大学 一种基于垃圾回收与通道并行性的固态盘缓存管理方法
CN112148631A (zh) * 2020-09-25 2020-12-29 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN112148631B (zh) * 2020-09-25 2023-05-26 华侨大学 一种基于高速缓存感知的垃圾回收方法、设备及存储介质
CN113326214A (zh) * 2021-06-16 2021-08-31 统信软件技术有限公司 一种页缓存管理方法、计算设备及可读存储介质
CN113326214B (zh) * 2021-06-16 2023-06-16 统信软件技术有限公司 一种页缓存管理方法、计算设备及可读存储介质
CN113655955A (zh) * 2021-07-16 2021-11-16 深圳大普微电子科技有限公司 缓存管理方法、固态硬盘控制器及固态硬盘
US12423231B2 (en) 2021-07-16 2025-09-23 Dapustor Corporation Cache management method, solid state drive controller and solid state drive
CN113655955B (zh) * 2021-07-16 2023-05-16 深圳大普微电子科技有限公司 缓存管理方法、固态硬盘控制器及固态硬盘
WO2023284379A1 (zh) * 2021-07-16 2023-01-19 深圳大普微电子科技有限公司 缓存管理方法、固态硬盘控制器及固态硬盘
CN114265694A (zh) * 2021-12-23 2022-04-01 国家电网有限公司信息通信分公司 一种内存置换方法及装置
CN114490430A (zh) * 2021-12-27 2022-05-13 天翼云科技有限公司 一种数据处理方法、装置、设备及介质
CN114510198B (zh) * 2022-02-16 2023-06-30 北京中电华大电子设计有限责任公司 一种提高nvm擦写效率的方法
CN114510198A (zh) * 2022-02-16 2022-05-17 北京中电华大电子设计有限责任公司 一种提高nvm擦写效率的方法
CN114697325A (zh) * 2022-03-15 2022-07-01 浪潮云信息技术股份公司 一种集群虚拟化资源管理平台缓存设备的自动化部署方法及运维装置
CN115048056A (zh) * 2022-06-20 2022-09-13 河北工业大学 基于页面替换代价的固态硬盘缓冲区管理方法
CN115629705A (zh) * 2022-09-27 2023-01-20 山东云海国创云计算装备产业创新中心有限公司 一种数据存储方法、系统、设备以及存储介质
CN115858421A (zh) * 2023-03-01 2023-03-28 浪潮电子信息产业股份有限公司 一种缓存管理方法、装置、设备、可读存储介质及服务器

Also Published As

Publication number Publication date
CN103136121B (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
CN103136121B (zh) 一种固态盘的缓存管理方法
CN107066393B (zh) 提高地址映射表中映射信息密度的方法
US9378131B2 (en) Non-volatile storage addressing using multiple tables
CN105930282B (zh) 一种用于nand flash的数据缓存方法
TWI474167B (zh) 以頁面為基礎管理快閃儲存裝置
EP3121703B1 (en) Data caching method, cache and computer system
CN103049397B (zh) 一种基于相变存储器的固态硬盘内部缓存管理方法及系统
CN104461393B (zh) 一种闪存存储器的混合映射方法
CN102521160B (zh) 写缓冲检测器、并行通道写入方法
CN102981963B (zh) 一种固态盘的闪存转换层的实现方法
US20110231598A1 (en) Memory system and controller
CN107368436B (zh) 一种联合地址映射表的闪存冷热数据分离存储方法
CN104166634A (zh) 一种固态盘系统中的映射表缓存管理方法
CN103631536B (zh) 一种利用ssd的无效数据优化raid5/6写性能的方法
CN103309815B (zh) 一种提高固态盘有效容量和寿命的方法和系统
CN102646069A (zh) 一种延长固态盘使用寿命的方法
CN111488125B (zh) 一种基于Ceph集群的Cache Tier缓存优化方法
CN108845957A (zh) 一种置换和回写自适应的缓冲区管理方法
CN107221351A (zh) 一种固态盘系统中纠错码的优化处理方法及其应用
US11494306B2 (en) Managing data dependencies in a transfer pipeline of a hybrid dimm
US11663136B2 (en) Storage capacity recovery source selection
CN114600092A (zh) 用于混合dimm中的非易失性存储器的低延时高速缓存
CN111580754A (zh) 一种写友好的闪存固态盘缓存管理方法
CN105975215A (zh) 一种基于Ondemand算法的STL映射表管理方法
CN103019963B (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
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20170731

Address after: 12, building 410013, building 233, Yuelu Avenue, Changsha, Hunan

Patentee after: Hunan Industrial Technology Cooperative Innovation Research Institute

Address before: Zheng Jie in Hunan province 410073 city Changsha Yan w pool No. 47 Chinese PLA National Defense University of science and technology of Computer Science

Patentee before: National University of Defense Technology of People's Liberation Army of China

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180808

Address after: 410205 the two floor of CLP software park headquarters, 39 Jian Shan Road, Yuelu District, Changsha, Hunan.

Patentee after: HUNAN GREATWALL GALAXY TECHNOLOGY CO., LTD.

Address before: 410013 12 building, science and technology building, 233 Yuelu Avenue, Changsha, Hunan.

Patentee before: Hunan Industrial Technology Cooperative Innovation Research Institute

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20180910

Address after: 410205 the two floor of CLP software park headquarters, 39 Jian Shan Road, Yuelu District, Changsha, Hunan.

Patentee after: HUNAN GREATWALL GALAXY TECHNOLOGY CO., LTD.

Address before: 410013 12 building, science and technology building, 233 Yuelu Avenue, Changsha, Hunan.

Patentee before: Hunan Industrial Technology Cooperative Innovation Research Institute

TR01 Transfer of patent right