CN109324979B - 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 - Google Patents

3d闪存固态盘系统的数据缓存划分方法及数据分配方法 Download PDF

Info

Publication number
CN109324979B
CN109324979B CN201810948116.6A CN201810948116A CN109324979B CN 109324979 B CN109324979 B CN 109324979B CN 201810948116 A CN201810948116 A CN 201810948116A CN 109324979 B CN109324979 B CN 109324979B
Authority
CN
China
Prior art keywords
page
buffer
write
data
sub
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.)
Active
Application number
CN201810948116.6A
Other languages
English (en)
Other versions
CN109324979A (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.)
Huazhong University of Science and Technology
Original Assignee
Huazhong University of Science and 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 Huazhong University of Science and Technology filed Critical Huazhong University of Science and Technology
Priority to CN201810948116.6A priority Critical patent/CN109324979B/zh
Publication of CN109324979A publication Critical patent/CN109324979A/zh
Application granted granted Critical
Publication of CN109324979B publication Critical patent/CN109324979B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0891Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种3D闪存固态盘系统的数据缓存划分方法及数据分配方法,包括:将数据缓存划分为数据页缓存和写回页缓冲,将写回页缓冲划分为N1个大小为N2个页大小的写回页子缓冲;处理请求时,若请求写入的数据页LPN命中数据页缓存,则更新数据页缓存,请求处理结束;若数据页缓存不命中且未满,则将数据页LPN写入数据页缓存,请求处理结束;若数据页缓存不命中且已满,则替换出脏数据页LPN',并将数据页LPN写入数据页缓存;确定用于存储脏数据页LPN'的目标写回页子缓冲,并将脏数据页LPN'写入其中;若目标写回页子缓冲已满,则动态地将其中的脏数据页写入闪存。本发明能够将顺序数据写入闪存不同的并行操作单元,有效提高系统的读性能。

Description

3D闪存固态盘系统的数据缓存划分方法及数据分配方法
技术领域
本发明属于固态盘存储技术领域,更具体地,涉及一种3D闪存固态盘系统的数据缓存划分方法及数据分配方法。
背景技术
目前,全球数据存储量呈现爆炸式增长,企业及互联网数据以每年50%的速率在增长,据信息技术研究机构预测,到2020年,全球数据量将达到35ZB。日益剧增的海量数据给大数据应用提供了广阔的发展前景,大数据存储已成为存储领域急需解决的问题。以闪存为存储介质的固态硬盘(solid state disk,SSD)具有更低的延时和能耗,更快的数据处理速度,更好的抗震性能,更高的可靠性和耐用性等优势,因此逐渐替代传统硬盘应用于存储解决方案中。
传统的闪存将闪存单元布局在一个平面内,所以也叫做平面闪存或2D闪存。随着闪存制造工艺的飞速发展,闪存的制程不断减小,从开始的50nm级发展到现在已经到了10nm级。闪存芯片的容量也有了飞速的增长。但是由于闪存单元(Flash Cell)的物理特性,芯片密度的增加并不是无限的,在一定程度后,单纯缩小制程已经无法带来优势了。3D闪存采用立体堆叠的方式,更合理的利用了空间,能够进一步提升闪存的芯片容量。同时,3DFlash不仅在于采用立体、垂直堆叠的方式来提高颗粒中包含芯片的数量,而且抛弃了传统的浮栅极MOSFET结构,采用了用控制栅极和绝缘层(Charge Trap)将MOSFET环形包裹起来的方式,能够提高产品的使用寿命。因此,相比于传统的2D闪存,3D闪存能够更好地解决大数据存储的问题。
固态盘中数据的分配方法是指为需要写到固态盘中的逻辑页确定一个固态盘空白物理页地址的方法。现有的数据分配算法主要是针对传统2D Flash多次编程的写入特性,采用静态、动态和混合的分配方法以达到利用固态盘中并行性的目的。但是,3D闪存采用一次性编程(one-shot programming)的方式写入数据页,即一次性将多个数据页写入闪存的同一个并行操作单元上,采用传统的数据分配算法将带来并行性下降的问题,具有顺序性的数据不能被并行读取,导致读性能下降,从而降低固态盘的整体性能。
发明内容
针对现有技术的缺陷和改进需求,本发明提供了一种3D闪存固态盘系统的数据缓存划分方法及数据分配方法,其目的在于,结合3D闪存一次性编程的特性,将连续的数据分配到闪存不同的并行单元上,以提高数据的并行读取性能,进而提高系统的整体性能。
为实现上述目的,按照本发明的第一方面,提供了一种3D闪存固态盘系统的数据缓存划分方法,包括:
将系统中的数据缓存划分为数据页缓存和写回页缓冲,数据页缓存用于在处理I/O页级请求时缓存待写入的数据页,写回页缓冲用于在数据页缓存发生替换操作时存储被替换出的脏数据页;
将写回页缓冲划分为N1个写回页子缓冲,与系统中的N1个并行操作单元一一对应;写回页子缓冲的大小为N2个页大小,用于存储不具有顺序性的N2个脏数据页,且写回页子缓冲满后,由3D闪存的一次性编程操作将其所存储的N2个脏数据页写入闪存中的同一并行操作单元,由此使得具有顺序性的数据页被写入3D闪存中不同的并行操作单元;
其中,N1为系统中并行操作单元的数量,N2为3D闪存的一次性编程操作写入的页数。
进一步地,写回页子缓冲中不具有顺序性的N2个脏数据页,满足如下条件:任意两个脏数据页之间的欧氏距离不小于预设的距离阈值。
进一步地,距离阈值为小于N1/2的最大正整数。
进一步地,两个脏数据页之间的欧氏距离两个脏数据页的逻辑页号之差的绝对值。
按照本发明的第二方面,提供了一种基于本发明第一方面所提供的3D闪存固态盘系统的数据缓存划分方法的数据分配方法,用于处理I/O页级请求,包括如下步骤:
(1)判断请求写入的数据页LPN是否已经被数据页缓存所缓存,若是,则更新数据页缓存中的数据页LPN,请求处理结束;若否,则转入步骤(2);
(2)判断数据页缓存是否已满,若是,则根据缓存替换算法从数据页缓存中替换出脏数据页LPN',然后将数据页LPN写入数据页缓存,并转入步骤(3);若否,则将数据页LPN写入数据页缓存,请求处理结束;
(3)确定用于存储脏数据页LPN'的写回页子缓冲,记为目标写回页子缓冲,以保证将脏数据页LPN'写入后目标写回页子缓冲后N1个写回页子缓冲中所存储的脏数据页均不具有顺序性;
(4)将脏数据页写入目标写回页子缓冲,并判断目标写回页子缓冲是否已满,若是,则转入步骤(5);若否,则请求处理结束;
(5)将目标写回页子缓冲中的N2个脏数据页动态地写入3D闪存中的同一并行操作单元,并清空目标写回页子缓冲,请求处理结束。
进一步地,步骤(3)包括如下步骤:
(31)获得当前分配给脏数据页LPN'的写回页子缓冲;
(32)分别计算脏数据页LPN'与该写回页子缓冲中已存储的每个脏数据页的欧式距离,并将其中的最小值记为最小欧式距离;
(33)判断最小欧式距离是否小于距离阈值,若是,则重新为脏数据页LPN'分配写回页子缓冲,并转入步骤(31);若否,则将当前分配给脏数据页LPN'的写回页子缓冲确定为用于存储脏数据页LPN'的写回页子缓冲。
更进一步地,首次分配给脏数据页LPN'的写回子缓冲的编号与循环标记相等,且步骤(33)中,最小欧式距离小于距离阈值时,重新为脏数据页LPN'分配写回页子缓冲的方法为:以循环的方式将当前分配给脏数据页LPN'的写回页子缓冲的下一个写回页子缓冲分配给脏数据页LPN';
其中,循环标记的取值为0~N1-1,并且当目标写回页子缓冲的编号与循环标记相等时,循环标记的取值循环加1。
更进一步地,距离阈值为小于N1/2的最大正整数。
更进一步地,两个脏数据页之间的欧氏距离两个脏数据页的逻辑页号之差的绝对值。
进一步地,步骤(5)中,将目标写回页子缓冲中的N2个脏数据页动态地写入3D闪存中的同一并行操作单元,包括:
若目标写回页子缓冲所对应的第一并行操作单元所属的通道及芯片均空闲,则通过3D闪存的一次性编程操作,将目标写回页子缓冲中的N2个脏数据页写入第一并行操作单元;否则,随机选择空闲通道上的空闲芯片,并从中选择第二并行操作单元,通过3D闪存的一次性编程操作,将目标写回页子缓冲中的N2个脏数据页写入第二并行操作单元。总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:
(1)本发明所提供的3D固态盘系统的数据分配方法,在已将系统数据缓存划分为数据页缓存和写回页缓冲的基础上,当有脏数据页从数据缓存中被替换出时,将该脏数据页存储于写回页缓冲中的写回页子缓冲中,并保证写回页子缓冲中所存储的脏数据页之间的欧氏距离均小于预设的距离阈值,由此保证了写回页子缓冲中的脏数据页之间不具有顺序性,从而通过3D闪存的一次性编程将写回页子缓冲写入闪存后,具有顺序性的数据会位于不同的并行操作单元,进而连续的逻辑数据页能够被读请求并行访问,降低了读延时,提升了系统的读性能。
(2)本发明所提供的3D固态盘系统的数据分配方法,当写回页子缓冲满时,会将该写回页子缓冲中的脏数据页动态地写入3D闪存,即若该写回页子缓冲所对应的并行操作单元所属的通道及芯片均空闲,则通过3D闪存的一次性编程操作,将该写回页子缓冲中的脏数据页写入闪存;否则,随机选择空闲的通道上的空闲芯片,并从中选择一个并行操作单元,然后将该写回页子缓冲中的脏数据页写入闪存;由此能够避免数据分配的过程被其他请求阻塞,同时增加了同一时刻的写入量,因此能够提高系统的写性能。
附图说明
图1为现有的NAND闪存芯片的层次结构示意图;
图2为本发明实施例提供的3D闪存固态盘系统的数据缓存划分方法示意图;
图3为本发明实施例提供的3D闪存固态盘系统的数据分配方法流程图;
图4为本发明实施例提供的3D闪存固态盘系统的数据分配方法示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在详细描述本发明的技术方案之前,先对闪存芯片中的相关基本概念进行简单介绍。如图1所示为一个现有的NAND型闪存芯片的结构示意图,该闪存芯片由五个层次组成,由外向内依次为:芯片(chip)—晶圆(die)—分组(plane)—块(block)—页(page);其中,芯片层是最外层结构,通常,芯片层拥有一套完整的外围电路,外部信号线;晶圆层是闪存的第二层结构,多个晶圆被组合在一起,公用一套外围电路和外部信号线,但是为了执行高级命令,每个晶圆有一个内部的工作状态信号线;分组层是闪存中的关键层次,为了提高闪存的读写速度,在每个分组中设置了一个或多个寄存器,数据被暂存在这些寄存器中,通过I/O信号线逐步传入或传出;块层是闪存中擦除操作的基本单元,通常一个分组中有固定数量的物理块;页层是闪存中读写操作的基本单元,通常,一个物理块中有固定数量的物理页。如图1所示的闪存芯片中,共包括两个晶圆,每个晶圆包括两个分组,每个分组包括2048个物理块,并且每个物理块中包括64个物理页。
在3D闪存固态盘的系统中,通常以通道的形式组织闪存芯片,以图2所示的系统为例,该系统中包括两个通道,且每个通道上设置有一个芯片;为了提高读写操作的并行性,基于闪存固态盘的系统往往会支持不同粒度的并行操作,在图2所示的系统中,以分组作为并行操作单元,因此,该系统中共包括8个并行操作单元;3D闪存采用一次性编程的方式写入数据页,即一次性将多个数据页写入闪存的同一个并行操作单元上,在不同的系统中,采用不同的闪存作为存储介质时,一次性编程写入的页数不同,在图2所示的系统中,存储介质为3D TLC,一次性编程写入的页数为3。
如图2所示,本发明所提供的数据缓存划分方法包括:
将系统中的数据缓存划分为数据页缓存和写回页缓冲,数据页缓存用于在处理I/O页级请求时缓存待写入的数据页,写回页缓冲用于在数据页缓存发生替换操作时存储被替换出的脏数据页;
将写回页缓冲划分为8个写回页子缓冲,与系统中的8个分组一一对应;写回页子缓冲的大小为3个页大小,用于存储不具有顺序性的3个脏数据页,且写回页子缓冲满后,由3D闪存的一次性编程操作将其所存储的3个脏数据页写入闪存中的同一并行操作单元,由此使得具有顺序性的数据页被写入3D闪存中不同的并行操作单元;
在一个可选到的实施方式中,写回页子缓冲中不具有顺序性的3个脏数据页,满足如下条件:任意两个脏数据页之间的欧氏距离不小于预设的距离阈值;其中,距离阈值为小于的最大正整数,即距离阈值为3,两个脏数据页之间的欧氏距离两个脏数据页的逻辑页号之差的绝对值。
基于以上数据缓存划分方法,本发明所提供的数据分配方法,用于处I/O理页级请求,如图3所示,包括如下步骤:
(1)判断请求写入的数据页LPN是否已经被数据页缓存所缓存,即数据页缓存是否命中,若是,则更新数据页缓存中的数据页LPN,请求处理结束;若否,则转入步骤(2);
(2)判断数据页缓存是否已满,若是,则根据缓存替换算法从数据页缓存中替换出脏数据页LPN',然后将数据页LPN写入数据页缓存,并转入步骤(3);若否,则将数据页LPN写入数据页缓存,请求处理结束;
在本系统中,所采用的缓存替换算法为LRU算法(Least Recently Used),在其他系统中,缓存替换算法也可能为FIFO算法(First In First Out)、LFU算法(LeastFrequently Used)等;
(3)确定用于存储脏数据页LPN'的写回页子缓冲,记为目标写回页子缓冲,以保证将脏数据页LPN'写入后目标写回页子缓冲后写回页缓存中的3个写回页子缓冲中所存储的脏数据页均不具有顺序性;
在一个可选的实施方式中,步骤(3)具体包括如下步骤:
(31)获得当前分配给脏数据页LPN'的写回页子缓冲;
(32)分别计算脏数据页LPN'与该写回页子缓冲中已存储的每个脏数据页的欧式距离,并将其中的最小值记为最小欧式距离;
(33)判断最小欧式距离是否小于距离阈值,若是,则重新为脏数据页LPN'分配写回页子缓冲,并转入步骤(31);若否,则将当前分配给脏数据页LPN'的写回页子缓冲确定为用于存储脏数据页LPN'的写回页子缓冲;
其中,首次分配给脏数据页LPN'的写回子缓冲的编号与循环标记相等,且步骤(33)中,最小欧式距离小于距离阈值时,重新为脏数据页LPN'分配写回页子缓冲的方法为:以循环的方式将当前分配给脏数据页LPN'的写回页子缓冲的下一个写回页子缓冲分配给脏数据页LPN';
在本实施例中,循环标记的取值为0~7,并且当目标写回页子缓冲的编号与循环标记相等时,循环标记的取值循环加1;距离阈值为3(小于8/2=4的最大正整数),以防止写回页缓冲中的写回页子缓冲均不能作为目标写回子缓冲;两个脏数据页之间的欧氏距离两个脏数据页的逻辑页号之差的绝对值;
基于以上确定目标写回页子缓冲的方法,如图4所示,当逻辑页号为85、25、28、66、17、16的脏数据页依次从数据页缓存中被替换出,且当脏数据页85被替换出时,循环标记的取值为token=6,为这些脏数据页确定目标写回页子缓冲的过程依次为:
由于脏数据页85与写回页子缓冲6中数据页的最小欧式距离为29(85-56),不小于3,因此将写回页子缓冲6确定为脏数据页85的目标写回页子缓冲;由于目标写回页子缓冲的编号与循环标记取值相等,循环标记的取值循环加1,即token=7;
由于脏数据页25与写回页子缓冲7中数据页的最小欧式距离为3(25-22),不小于3,因此将写回页子缓冲7确定为脏数据页25的目标写回页子缓冲;由于目标写回页子缓冲的编号与循环标记取值相等,循环标记的取值循环加1,即token=0;
由于脏数据页28与写回子缓冲0中数据页的最小欧式距离为34(62-28),不小于3,因此将写回页子缓冲0确定为脏数据页28的目标写回页子缓冲;由于目标写回页子缓冲的编号与循环标记取值相等,循环标记的取值循环加,即token=1;
由于脏数据页66与写回页子缓冲1中数据页的最小欧式距离为2(66-64),小于3,因此跳过写回页子缓冲1,重新将写回页子缓冲2分配给脏数据页66;由于脏数据页66与写回页子缓冲2中数据页的最小欧式距离为1(66-65),小于3,因此跳过写回页子缓冲2,重新将写回页子缓冲3分配给脏数据页66;由于脏数据页66与写回页子缓冲3中数据页的最小欧式距离为17(83-66),不小于3,因此将写回页子缓冲3确定为脏数据页66的目标写回页子缓冲;由于目标写回页子缓冲的编号与循环标记取值不相等,循环标记取值不变,即token=1;
由于脏数据页17与写回页子缓冲1中数据页的最小欧式距离为47(64-17),不小于3,因此将写回页子缓冲1确定为脏数据页17的目标写回页子缓冲;由于目标写回页子缓冲的编号与循环标记取值相等,循环标记的取值循环加1,即token=2;
由于脏数据页16与写回页子缓冲2中数据页的最小欧式距离为49(65-16),不小于3,因此将写回页子缓冲2确定为脏脏数据页16的目标写回页子缓冲;由于目标写回页子缓冲的编号与循环标记取值相等,循环标记的取值循环加1,即token=3;
为脏数据页分配写回页子缓冲的方法除上述循环分配外,还可为随机分配,或其他分配方法;
(4)将脏数据页写入目标写回页子缓冲,并判断目标写回页子缓冲是否已满,若是,则转入步骤(5);若否,则请求处理结束;
(5)将目标写回页子缓冲中的3个脏数据页动态地写入3D闪存中的同一并行操作单元,清空目标写回页子缓冲,请求处理结束;
在一个可选的实施方式中,将目标写回页子缓冲中的3个脏数据页动态地写入3D闪存中的同一并行操作单元,包括:
若目标写回页子缓冲所对应的分组所属的通道及芯片均空闲,则通过3D闪存的一次性编程操作,将目标写回页子缓冲中的3个脏数据页写入该分组;否则,随机选择空闲的通道上的空闲芯片,并从中选择一个分组,则通过3D闪存的一次性编程操作,将目标写回页子缓冲中的3个脏数据页写入该分组。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种3D闪存固态盘系统的数据缓存划分方法,其特征在于,包括:
将系统中的数据缓存划分为数据页缓存和写回页缓冲,所述数据页缓存用于在处理I/O页级请求时缓存待写入的数据页,所述写回页缓冲用于在所述数据页缓存发生替换操作时存储被替换出的脏数据页;
将所述写回页缓冲划分为N1个写回页子缓冲,与系统中的N1个并行操作单元一一对应;所述写回页子缓冲的大小为N2个页大小,用于存储不具有顺序性的N2个脏数据页,且所述写回页子缓冲满后,由3D闪存的一次性编程操作将其所存储的N2个脏数据页写入闪存中的同一并行操作单元,由此使得具有顺序性的数据页被写入3D闪存中不同的并行操作单元;
其中,N1为系统中并行操作单元的数量,N2为3D闪存的一次性编程操作写入的页数。
2.如权利要求1所述的3D闪存固态盘系统的数据缓存划分方法,其特征在于,所述写回页子缓冲中不具有顺序性的N2个脏数据页,满足如下条件:任意两个脏数据页之间的欧氏距离不小于预设的距离阈值。
3.如权利要求2所述的3D闪存固态盘系统的数据缓存划分方法,其特征在于,所述距离阈值为小于N1/2的最大正整数。
4.如权利要求2所述的3D闪存固态盘系统的数据缓存划分方法,其特征在于,两个脏数据页之间的欧氏距离两个脏数据页的逻辑页号之差的绝对值。
5.一种数据分配方法,用于处理I/O页级请求,其特征在于,包括如下步骤:
(1)判断请求写入的数据页LPN是否已经被数据页缓存所缓存,若是,则更新所述数据页缓存中的数据页LPN,请求处理结束;若否,则转入步骤(2);
(2)判断所述数据页缓存是否已满,若是,则根据缓存替换算法从所述数据页缓存中替换出脏数据页LPN',然后将所述数据页LPN写入所述数据页缓存,并转入步骤(3);若否,则将所述数据页LPN写入所述数据页缓存,请求处理结束;
(3)确定写回页缓冲中用于存储所述脏数据页LPN'的写回页子缓冲,记为目标写回页子缓冲,以保证将所述脏数据页LPN'写入后所述目标写回页子缓冲后所述N1个写回页子缓冲中所存储的脏数据页均不具有顺序性;
(4)将所述脏数据页写入所述目标写回页子缓冲,并判断所述目标写回页子缓冲是否已满,若是,则转入步骤(5);若否,则请求处理结束;
(5)将所述目标写回页子缓冲中的N2个脏数据页动态地写入3D闪存中的同一并行操作单元,并清空所述目标写回页子缓冲,请求处理结束;
所述数据页缓存、所述写回页缓冲以及所述写回页缓冲中的写回页子缓冲均利用权利要求1所述的3D闪存固态盘系统的数据缓存划分方法划分得到。
6.如权利要求5所述的数据分配方法,其特征在于,所述步骤(3)包括如下步骤:
(31)获得当前分配给所述脏数据页LPN'的写回页子缓冲;
(32)分别计算所述脏数据页LPN'与该写回页子缓冲中已存储的每个脏数据页的欧式距离,并将其中的最小值记为最小欧式距离;
(33)判断所述最小欧式距离是否小于预设的距离阈值,若是,则重新为所述脏数据页LPN'分配写回页子缓冲,并转入步骤(31);若否,则将当前分配给所述脏数据页LPN'的写回页子缓冲确定为用于存储所述脏数据页LPN'的写回页子缓冲。
7.如权利要求6所述的数据分配方法,其特征在于,首次分配给所述脏数据页LPN'的写回子缓冲的编号与循环标记相同,且所述步骤(33)中,所述最小欧式距离小于所述距离阈值时,重新为所述脏数据页LPN'分配写回页子缓冲的方法为:以循环的方式将当前分配给所述脏数据页LPN'的写回页子缓冲的下一个写回页子缓冲分配给所述脏数据页LPN';
其中,所述循环标记的取值为0~N1-1,并且当所述目标写回页子缓冲的编号与所述循环标记相等时,所述循环标记的取值循环加1。
8.如权利要求6所述的数据分配方法,其特征在于,所述距离阈值为小于N1/2的最大正整数。
9.如权利要求6所述的数据分配方法,其特征在于,两个脏数据页之间的欧氏距离两个脏数据页的逻辑页号之差的绝对值。
10.如权利要求5所述的数据分配方法,其特征在于,所述步骤(5)中,将所述目标写回页子缓冲中的N2个脏数据页动态地写入3D闪存中的同一并行操作单元,包括:
若所述目标写回页子缓冲所对应的第一并行操作单元所属的通道及芯片均空闲,则通过3D闪存的一次性编程操作,将所述目标写回页子缓冲中的N2个脏数据页写入所述第一并行操作单元;否则,随机选择空闲通道上的空闲芯片,并从中选择第二并行操作单元,通过3D闪存的一次性编程操作,将所述目标写回页子缓冲中的N2个脏数据页写入所述第二并行操作单元。
CN201810948116.6A 2018-08-20 2018-08-20 3d闪存固态盘系统的数据缓存划分方法及数据分配方法 Active CN109324979B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810948116.6A CN109324979B (zh) 2018-08-20 2018-08-20 3d闪存固态盘系统的数据缓存划分方法及数据分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810948116.6A CN109324979B (zh) 2018-08-20 2018-08-20 3d闪存固态盘系统的数据缓存划分方法及数据分配方法

Publications (2)

Publication Number Publication Date
CN109324979A CN109324979A (zh) 2019-02-12
CN109324979B true CN109324979B (zh) 2020-10-16

Family

ID=65263323

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810948116.6A Active CN109324979B (zh) 2018-08-20 2018-08-20 3d闪存固态盘系统的数据缓存划分方法及数据分配方法

Country Status (1)

Country Link
CN (1) CN109324979B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110413235B (zh) * 2019-07-26 2020-07-24 华中科技大学 一种面向ssd去重的数据分配方法及系统
CN112558879A (zh) * 2020-12-17 2021-03-26 南昌航空大学 一种提高固态盘内3D-flash性能的方法
CN113342265B (zh) * 2021-05-11 2023-11-24 中天恒星(上海)科技有限公司 缓存管理方法、装置、处理器及计算机装置
CN115858421B (zh) * 2023-03-01 2023-05-23 浪潮电子信息产业股份有限公司 一种缓存管理方法、装置、设备、可读存储介质及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136121A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 一种固态盘的缓存管理方法
CN105278875A (zh) * 2015-09-16 2016-01-27 上海新储集成电路有限公司 一种混合异构nand固态硬盘
CN105677578A (zh) * 2016-01-08 2016-06-15 深圳大学 一种3d闪存的控制方法及控制系统
CN106445740A (zh) * 2016-09-22 2017-02-22 深圳市先天海量信息技术有限公司 固态硬盘中nand闪存数据的控制方法及控制系统

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8432746B2 (en) * 2011-05-05 2013-04-30 Macronix International Co., Ltd. Memory page buffer
KR20130016619A (ko) * 2011-08-08 2013-02-18 삼성전자주식회사 불휘발성 메모리 장치의 프로그램 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136121A (zh) * 2013-03-25 2013-06-05 中国人民解放军国防科学技术大学 一种固态盘的缓存管理方法
CN105278875A (zh) * 2015-09-16 2016-01-27 上海新储集成电路有限公司 一种混合异构nand固态硬盘
CN105677578A (zh) * 2016-01-08 2016-06-15 深圳大学 一种3d闪存的控制方法及控制系统
CN106445740A (zh) * 2016-09-22 2017-02-22 深圳市先天海量信息技术有限公司 固态硬盘中nand闪存数据的控制方法及控制系统

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
3D MLC的新选择,威刚XPG SX8000 256GB 固态硬盘;蓝色;《First Review新品》;20171231;全文 *
Analysis of 3D NAND technologies and comparison between charge-trap-based and floating-gate-based flash devices;Liu ShijunZou,Xuecheng,etc.;《The Journal of China Universities of Posts and Telecommunications 》;20170630;第24卷(第3期);全文 *
Overcoming Challenges in 3D NAND Volume Manufacturing;Thorsten Lill,etc.;《Flash Memory Summit.Santa Clara, CA, USA》;20171231;全文 *

Also Published As

Publication number Publication date
CN109324979A (zh) 2019-02-12

Similar Documents

Publication Publication Date Title
CN109324979B (zh) 3d闪存固态盘系统的数据缓存划分方法及数据分配方法
US11893238B2 (en) Method of controlling nonvolatile semiconductor memory
CN105930282B (zh) 一种用于nand flash的数据缓存方法
CN106547703B (zh) 一种基于块组结构的ftl优化方法
US8914570B2 (en) Selective write-once-memory encoding in a flash based disk cache memory
CN109471594B (zh) 一种mlc闪存读写方法
CN105095116A (zh) 缓存替换的方法、缓存控制器和处理器
US8572321B2 (en) Apparatus and method for segmented cache utilization
CN107589908B (zh) 一种基于固态盘缓存系统中非对齐更新数据的合并方法
CN107423229B (zh) 一种面向页级ftl的缓冲区改进方法
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
US20210342094A1 (en) Read Performance of Memory Devices
CN108829346A (zh) 一种适应闪存页差异的固态硬盘的用户写请求处理方法
TWI718710B (zh) 資料儲存裝置以及非揮發式記憶體控制方法
CN112114743A (zh) 通过使用闪存转换层来管理存储器资源的数据存储设备
CN104298615B (zh) 一种存储器交换分区损耗的均衡方法
CN116364148A (zh) 一种面向分布式全闪存储系统的磨损均衡方法及系统
CN110537172B (zh) 混合存储器模块
CN108664217B (zh) 一种降低固态盘存储系统写性能抖动的缓存方法及系统
Yong et al. Design and implementation of virtual stream management for NAND flash-based storage
CN104714898A (zh) 一种Cache的分配方法和装置
CN110275678B (zh) 一种基于stt-mram的固态存储器件随机访问性能提升方法
Suei et al. Endurance-aware flash-cache management for storage servers
Chen et al. Beyond address mapping: A user-oriented multiregional space management design for 3-D NAND flash memory
CN116009776A (zh) 面向nvm和ssd的数据存储方法、控制器及系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant