CN111782146B - 实现写缓存的方法、装置、计算机设备及存储介质 - Google Patents

实现写缓存的方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111782146B
CN111782146B CN202010613316.3A CN202010613316A CN111782146B CN 111782146 B CN111782146 B CN 111782146B CN 202010613316 A CN202010613316 A CN 202010613316A CN 111782146 B CN111782146 B CN 111782146B
Authority
CN
China
Prior art keywords
writing
write
data
page
current
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
CN202010613316.3A
Other languages
English (en)
Other versions
CN111782146A (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.)
Shenzhen Union Memory Information System Co Ltd
Original Assignee
Shenzhen Union Memory Information System Co Ltd
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 Shenzhen Union Memory Information System Co Ltd filed Critical Shenzhen Union Memory Information System Co Ltd
Priority to CN202010613316.3A priority Critical patent/CN111782146B/zh
Publication of CN111782146A publication Critical patent/CN111782146A/zh
Application granted granted Critical
Publication of CN111782146B publication Critical patent/CN111782146B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

本发明涉及实现写缓存的方法、装置、计算机设备及存储介质;其中,方法,包括:判断写缓存区域中的数据是否已搬空;若未搬空,则计算当前写入页剩余可写入的数据量;判断是否对写缓存区域中的数据进行数据流重组;若是,则将数据流重组后的数据写入NAND中;若否,则按顺序将数据写入NAND中。本发明通过根据写入位置、坏块情况以及是否插入磁盘阵列校验,动态决定从写缓存区域写入到NAND颗粒的数据量,从而达到理想的拼接效果,并且如果写入点为TLC写入点,写缓存区域中的数据进行顺序调整,从而达到更优的读取拼接率,提升连续读性能,能够更好地满足需求。

Description

实现写缓存的方法、装置、计算机设备及存储介质
技术领域
本发明涉及写缓存技术领域,更具体地说是指实现写缓存的方法、装置、计算机设备及存储介质。
背景技术
在SSD的固件中,在处理主机的写操作时候通常会开辟一段DRAM空间称作写缓存区域,主机写入时候将数据先搬运到写缓存区域,在写缓存区域填满或者超时或者掉电的时刻将写缓存区域的数据写入NAND颗粒;这个写缓存的大小通常为可并发写入的最大量,写入NAND的时候的数据量为整个写缓存区域,这种方法在遇到坏块或者需要插入RAID校验的时候,并发的写入或者读取逻辑就被破坏,并且写入TLC写入点后读取的连续性并不好,因此,无法满足需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供实现写缓存的方法、装置、计算机设备及存储介质。
为实现上述目的,本发明采用以下技术方案:
实现写缓存的方法,包括以下步骤:
判断写缓存区域中的数据是否已搬空;
若未搬空,则计算当前写入页剩余可写入的数据量;
判断是否对写缓存区域中的数据进行数据流重组;
若是,则将数据流重组后的数据写入NAND中;
若否,则按顺序将数据写入NAND中。
其进一步技术方案为:所述步骤“判断写缓存区域中的数据是否已搬空”之前,还包括:触发写缓存写入NAND操作。
其进一步技术方案为:所述步骤“若未搬空,则计算当前写入页剩余可写入的数据量”中,计算当前写入页剩余可写入的数据量,包括以下步骤:
计算当前写入页中可用的Bank数;
排除当前写入页中写入Slot存在的坏块数量;
判断是否需要在Slot的末尾插入磁盘阵列校验;
若是,则可用的Bank数减1;
判断写缓存的当前写入点为TLC写入点或SLC写入点;
若为TLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以TLC页大小;
若为SLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以SLC页大小。
其进一步技术方案为:所述步骤“判断是否对写缓存区域中的数据进行数据流重组”中,包括:判断写缓存区域中的数据量是否大于等于当前写入页中剩余可写入的数据量,且判断当前写入点是否为TLC写入点;若满足写缓存区域中的数据量大于等于当前写入页中剩余可写入的数据量且当前写入点为TLC写入点,则进行数据流重组。
实现写缓存的装置,包括:第一判断单元,计算单元,第二判断单元,第一写入单元,及第二写入单元;
所述第一判断单元,用于判断写缓存区域中的数据是否已搬空;
所述计算单元,用于计算当前写入页剩余可写入的数据量;
所述第二判断单元,用于判断是否对写缓存区域中的数据进行数据流重组;
所述第一写入单元,用于将数据流重组后的数据写入NAND中;
所述第二写入单元,用于按顺序将数据写入NAND中。
其进一步技术方案为:还包括:触发单元,用于触发写缓存写入NAND操作。
其进一步技术方案为:所述计算单元包括:第一计算模块,排除模块,第一判断模块,第二计算模块,第二判断模块,第三计算模块,及第四计算模块;
所述第一计算模块,用于计算当前写入页中可用的Bank数;
所述排除模块,用于排除当前写入页中写入Slot存在的坏块数量;
所述第一判断模块,用于判断是否需要在Slot的末尾插入磁盘阵列校验;
所述第二计算模块,用于可用的Bank数减1;
所述第二判断模块,用于判断写缓存的当前写入点为TLC写入点或SLC写入点;
所述第三计算模块,用于计算当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以TLC页大小;
所述第四计算模块,用于计算当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以SLC页大小。
其进一步技术方案为:所述第二判断单元中,包括:判断写缓存区域中的数据量是否大于等于当前写入页中剩余可写入的数据量,且判断当前写入点是否为TLC写入点。
一种计算机设备,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如上述所述的实现写缓存的方法。
一种存储介质,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如上述所述的实现写缓存的方法。
本发明与现有技术相比的有益效果是:通过根据写入位置、坏块情况以及是否插入磁盘阵列校验,动态决定从写缓存区域写入到NAND颗粒的数据量,从而达到理想的拼接效果,并且如果写入点为TLC写入点,写缓存区域中的数据进行顺序调整,从而达到更优的读取拼接率,提升连续读性能,能够更好地满足需求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有写缓存的应用示意图;
图2为本发明实施例提供的实现写缓存的方法的流程示意图一;
图3为本发明实施例提供的实现写缓存的方法的流程示意图二;
图4为本发明实施例提供的实现写缓存的方法的应用场景示意图;
图5为本发明实施例提供的实现写缓存的装置的示意性框图;
图6为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1到图6所示的具体实施例,其中,请参阅图1所示,SSD内部的NAND颗粒被抽象分组成Bank,每个Bank对应一组物理块(各个Bank下的Block(块)可以并发操作),每个Bank下相同序列的块组合被称作Slot,SSD分配地址以Slot为单位,每个Slot用完,再分配新的Slot;Slot内部,TLC(TripleLevelCell)NAND颗粒中栅极(wordline)对应1个Page(页),包含3个“子Page”,当作为TLC块使用时要求3个“子Page”需要一起写入,另外当作为SLC块使用时候写入页的容量为作为TLC块写入的1/3;固件中地址池分配地址往往按照先Bank后WordLine顺序。
其中,写缓存区域的大小由Slot中一个WordLine的写入数据的大小决定,写入数据的时候,数据依序排列写入写缓存,待超时或者写缓存满或者掉电因素触发写缓存写入NAND的操作,写缓存的数据与地址池分配的地址绑定写入NAND;如果当前Slot存在坏块,或者系统需要插入RAID(磁盘阵列)校验,Slot中用于主机写入的数据必然会减少,如果固定将写缓存中数据一次性全部刷入NAND,写入的并发性会下降;另外TLC块的写入是3个“子页”一起分配,一起写入,而连续读取效率最高的方式各个Bank均有数据输出,这与写入顺序矛盾。
请参阅图2至图4所示,本发明公开了一种实现写缓存的方法,包括以下步骤:
S1,判断写缓存区域中的数据是否已搬空;若已搬空,则结束;
其中,在S1之前,还包括:触发写缓存写入NAND操作,开始进行写缓存。
S2,若未搬空,则计算当前写入页剩余可写入的数据量;
其中,请参阅图3所示,计算当前写入页剩余可写入的数据量,包括以下步骤:
S21,计算当前写入页中可用的Bank数;
S22,排除当前写入页中写入Slot存在的坏块数量;
S23,判断是否需要在Slot的末尾插入磁盘阵列校验;若否,则进入S28,可用的Bank数不变;
S24,若是,则可用的Bank数减1;
S25,判断写缓存的当前写入点为TLC写入点或SLC写入点;
S26,若为TLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以TLC页大小;
S27,若为SLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以SLC页大小。
其中,若步骤S23中,判断是否需要在Slot的末尾插入磁盘阵列校验的判断结果为否,则进入步骤S28,可用的Bank数不变;再判断写缓存的当前写入点为TLC写入点或SLC写入点;若为TLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数乘以TLC页大小;若为SLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数乘以SLC页大小。
S3,判断是否对写缓存区域中的数据进行数据流重组;
其中,步骤S3中,需要判断2个条件,判断写缓存区域中的数据量是否大于等于当前写入页中剩余可写入的数据量,且判断当前写入点是否为TLC写入点;若满足写缓存区域中的数据量大于等于当前写入页中剩余可写入的数据量且当前写入点为TLC写入点,同时满足2个条件时,则进行数据流重组。
S4,若是,则将数据流重组后的数据写入NAND中;
S5,若否,则按顺序将数据写入NAND中。
其中,步骤S4和步骤S5中,写入NAND中的数据量均为当前写入页中剩余可写入的数据量。
其中,步骤S4和步骤S5之后,均返回步骤S1,循环执行S1-S5,直至写缓存区域中的数据全部被搬空。
请参阅图4所示的具体实施例,写缓存顺序写入NAND和重排写入NAND的效果对比,假设系统有4个Bank,假设Bank1位置为坏块,Bank3位置需要插入RAID(磁盘阵列)检验(parity),则写入位置可用Bank数为2(0和2),当前需要输入的数据量为6*子页大小,将数据按照写入写缓存的顺序以子页大小为颗粒(Subpage)度切割排序为0-5,按顺序写入效果如图4左所示,3个子页一起分配一起写入,这样连续读取的时候并不能最大化读取拼接率,图4右为重排调整后的效果,连续读取时候每个Bank均有数据输出,使得读取效率更高。
本发明通过根据写入位置、坏块情况以及是否插入磁盘阵列校验,动态决定从写缓存区域写入到NAND颗粒的数据量,从而达到理想的拼接效果,并且如果写入点为TLC写入点,写缓存区域中的数据进行顺序调整,从而达到更优的读取拼接率,提升连续读性能,能够更好地满足需求。
请参阅图5所示,本发明还公开了一种实现写缓存的装置,包括:第一判断单元10,计算单元20,第二判断单元30,第一写入单元40,及第二写入单元50;
所述第一判断单元10,用于判断写缓存区域中的数据是否已搬空;
所述计算单元20,用于计算当前写入页剩余可写入的数据量;
所述第二判断单元30,用于判断是否对写缓存区域中的数据进行数据流重组;
所述第一写入单元40,用于将数据流重组后的数据写入NAND中;
所述第二写入单元50,用于按顺序将数据写入NAND中。
其中,实现写缓存的装置还包括:触发单元60,用于触发写缓存写入NAND操作。
其中,所述计算单元20包括:第一计算模块21,排除模块22,第一判断模块23,第二计算模块24,第二判断模块25,第三计算模块26,及第四计算模块27;
所述第一计算模块21,用于计算当前写入页中可用的Bank数;
所述排除模块22,用于排除当前写入页中写入Slot存在的坏块数量;
所述第一判断模块23,用于判断是否需要在Slot的末尾插入磁盘阵列校验;
所述第二计算模块24,用于可用的Bank数减1;
所述第二判断模块25,用于判断写缓存的当前写入点为TLC写入点或SLC写入点;
所述第三计算模块26,用于计算当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以TLC页大小;
所述第四计算模块27,用于计算当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以SLC页大小。
其中,所述第二判断单元30中,包括:判断写缓存区域中的数据量是否大于等于当前写入页中剩余可写入的数据量,且判断当前写入点是否为TLC写入点。
需要说明的是,所属领域的技术人员可以清楚地了解到,上述实现写缓存的装置和各单元的具体实现过程,可以参考前述方法实施例中的相应描述,为了描述的方便和简洁,在此不再赘述。
上述实现写缓存的装置可以实现为一种计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
请参阅图6,图6是本申请实施例提供的一种计算机设备的示意性框图;该计算机设备500可以是终端,也可以是服务器,其中,终端可以是智能手机、平板电脑、笔记本电脑、台式电脑、个人数字助理和穿戴式设备等具有通信功能的电子设备。服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图6,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括非易失性存储介质503和内存储器504。
该非易失性存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032包括程序指令,该程序指令被执行时,可使得处理器502执行一种实现写缓存的方法。
该处理器502用于提供计算和控制能力,以支撑整个计算机设备500的运行。
该内存储器504为非易失性存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行一种实现写缓存的方法。
该网络接口505用于与其它设备进行网络通信。本领域技术人员可以理解,图6中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
应当理解,在本申请实施例中,处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本领域普通技术人员可以理解的是实现上述实施例的方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成。该计算机程序包括程序指令,计算机程序可存储于一存储介质中,该存储介质为计算机可读存储介质。该程序指令被该计算机系统中的至少一个处理器执行,以实现上述方法的实施例的流程步骤。
因此,本发明还提供一种存储介质。该存储介质可以为计算机可读存储介质。该存储介质存储有计算机程序,其中计算机程序包括程序指令,所述程序指令当被处理器执行时可实现上述的实现写缓存的方法。
所述存储介质可以是U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的计算机可读存储介质。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的。例如,各个单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。
本发明实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。本发明实施例装置中的单元可以根据实际需要进行合并、划分和删减。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,终端,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。

Claims (6)

1.实现写缓存的方法,其特征在于,包括以下步骤:
判断写缓存区域中的数据是否已搬空;
若未搬空,则计算当前写入页剩余可写入的数据量;
判断是否对写缓存区域中的数据进行数据流重组;
若是,则将数据流重组后的数据写入NAND中;
若否,则按顺序将数据写入NAND中;
所述步骤“若未搬空,则计算当前写入页剩余可写入的数据量”中,计算当前写入页剩余可写入的数据量,包括以下步骤:
计算当前写入页中可用的Bank数;
排除当前写入页中写入Slot存在的坏块数量;
判断是否需要在Slot的末尾插入磁盘阵列校验;
若是,则可用的Bank数减1;
判断写缓存的当前写入点为TLC写入点或SLC写入点;
若为TLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以TLC页大小;
若为SLC写入点,则当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以SLC页大小;
所述步骤“判断是否对写缓存区域中的数据进行数据流重组”中,包括:判断写缓存区域中的数据量是否大于等于当前写入页中剩余可写入的数据量,且判断当前写入点是否为TLC写入点;若满足写缓存区域中的数据量大于等于当前写入页中剩余可写入的数据量且当前写入点为TLC写入点,则进行数据流重组。
2.根据权利要求1所述的实现写缓存的方法,其特征在于,所述步骤“判断写缓存区域中的数据是否已搬空”之前,还包括:触发写缓存写入NAND操作。
3.实现写缓存的装置,其特征在于,包括:第一判断单元,计算单元,第二判断单元,第一写入单元,及第二写入单元;
所述第一判断单元,用于判断写缓存区域中的数据是否已搬空;
所述计算单元,用于计算当前写入页剩余可写入的数据量;
所述第二判断单元,用于判断是否对写缓存区域中的数据进行数据流重组;
所述第一写入单元,用于将数据流重组后的数据写入NAND中;
所述第二写入单元,用于按顺序将数据写入NAND中;
所述计算单元包括:第一计算模块,排除模块,第一判断模块,第二计算模块,第二判断模块,第三计算模块,及第四计算模块;
所述第一计算模块,用于计算当前写入页中可用的Bank数;
所述排除模块,用于排除当前写入页中写入Slot存在的坏块数量;
所述第一判断模块,用于判断是否需要在Slot的末尾插入磁盘阵列校验;
所述第二计算模块,用于可用的Bank数减1;
所述第二判断模块,用于判断写缓存的当前写入点为TLC写入点或SLC写入点;
所述第三计算模块,用于计算当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以TLC页大小;
所述第四计算模块,用于计算当前写入页中剩余可写入的数据量为可用的Bank数减1再乘以SLC页大小;
所述第二判断单元中,包括:判断写缓存区域中的数据量是否大于等于当前写入页中剩余可写入的数据量,且判断当前写入点是否为TLC写入点;若满足写缓存区域中的数据量大于等于当前写入页中剩余可写入的数据量且当前写入点为TLC写入点,则进行数据流重组。
4.根据权利要求3所述的实现写缓存的装置,其特征在于,还包括:触发单元,用于触发写缓存写入NAND操作。
5.一种计算机设备,其特征在于,所述计算机设备包括存储器及处理器,所述存储器上存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1-2中任一项所述的实现写缓存的方法。
6.一种存储介质,其特征在于,所述存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时可实现如权利要求1-2中任一项所述的实现写缓存的方法。
CN202010613316.3A 2020-06-30 2020-06-30 实现写缓存的方法、装置、计算机设备及存储介质 Active CN111782146B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010613316.3A CN111782146B (zh) 2020-06-30 2020-06-30 实现写缓存的方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010613316.3A CN111782146B (zh) 2020-06-30 2020-06-30 实现写缓存的方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111782146A CN111782146A (zh) 2020-10-16
CN111782146B true CN111782146B (zh) 2023-10-13

Family

ID=72760929

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010613316.3A Active CN111782146B (zh) 2020-06-30 2020-06-30 实现写缓存的方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111782146B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256203B (zh) * 2020-10-26 2023-04-28 山东盖特航空科技有限公司 Flash存储器的写入方法、装置、设备、介质及系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480489B1 (en) * 1999-03-01 2002-11-12 Sun Microsystems, Inc. Method and apparatus for data re-assembly with a high performance network interface
CN104794070A (zh) * 2015-04-23 2015-07-22 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN108762674A (zh) * 2018-05-24 2018-11-06 深圳忆联信息系统有限公司 提升ssd响应延迟的方法及装置
CN109416656A (zh) * 2016-10-31 2019-03-01 拉姆伯斯公司 混合存储器模块
CN109460186A (zh) * 2018-11-02 2019-03-12 深圳忆联信息系统有限公司 一种提升固态硬盘读性能的方法及其系统
CN110134333A (zh) * 2019-05-07 2019-08-16 深圳忆联信息系统有限公司 一种重排写入数据流提升ssd读拼接率的方法及其系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6944717B2 (en) * 2001-07-27 2005-09-13 Fujitsu Limited Cache buffer control apparatus and method using counters to determine status of cache buffer memory cells for writing and reading data therefrom
KR20140006299A (ko) * 2012-07-03 2014-01-16 삼성전자주식회사 낸드 플래시 메모리 기반의 저장부에 데이터 기록을 제어하는 방법 및 장치
US10846231B2 (en) * 2015-11-13 2020-11-24 Hitachi, Ltd. Storage apparatus, recording medium, and storage control method

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480489B1 (en) * 1999-03-01 2002-11-12 Sun Microsystems, Inc. Method and apparatus for data re-assembly with a high performance network interface
CN104794070A (zh) * 2015-04-23 2015-07-22 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN109416656A (zh) * 2016-10-31 2019-03-01 拉姆伯斯公司 混合存储器模块
CN108762674A (zh) * 2018-05-24 2018-11-06 深圳忆联信息系统有限公司 提升ssd响应延迟的方法及装置
CN109460186A (zh) * 2018-11-02 2019-03-12 深圳忆联信息系统有限公司 一种提升固态硬盘读性能的方法及其系统
CN110134333A (zh) * 2019-05-07 2019-08-16 深圳忆联信息系统有限公司 一种重排写入数据流提升ssd读拼接率的方法及其系统

Also Published As

Publication number Publication date
CN111782146A (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN102623042B (zh) 存储器系统及其操作方法
US8417901B2 (en) Combining write commands to overlapping addresses or to a specific page
KR101343262B1 (ko) 동시 판독 및 기록 메모리 동작을 수행하는 방법 및 장치
CN109388517B (zh) 存储器控制器、包括存储器控制器的存储器系统和应用处理器
US20090228662A1 (en) Multi-channel memory storage device and control method thereof
US20150349805A1 (en) Method of Handling Error Correcting Code in Non-volatile Memory and Non-volatile Storage Device Using the Same
US8316175B2 (en) High throughput flash memory system
TWI446350B (zh) 用來減少無法更正的錯誤之方法以及記憶裝置及其控制器
US9436563B2 (en) Memory system for mirroring data
US8843805B1 (en) Memory error protection using addressable dynamic ram data locations
CN111563052B (zh) 降低读延时的缓存方法、装置、计算机设备及存储介质
KR102282879B1 (ko) 고체 상태 드라이브의 전송 버퍼 사용률을 향상시키기 위해 nand 페이지 버퍼들을 사용하는 방법 및 시스템
CN111782146B (zh) 实现写缓存的方法、装置、计算机设备及存储介质
CN110535476A (zh) Ldpc软译码器软信息存储优化方法、装置、计算机设备及存储介质
US20210089234A1 (en) Memory system
US9147499B2 (en) Memory operation of paired memory devices
CN105868046B (zh) 存储装置中管理、写入及加载固件代码的方法
CN115933994A (zh) 一种数据处理方法、装置、电子设备及存储介质
CN115639961A (zh) 数据写入方法、存储系统及服务器
CN110609660A (zh) Ssd阵列的主机端映射方法、装置、计算机设备及存储介质
US20180217774A1 (en) Virtual memory management apparatus for avoiding error cell in main memory and method therefor
US9110785B1 (en) Ordered merge of data sectors that belong to memory space portions
US10312943B2 (en) Error correction code in memory
CN111124290A (zh) 应用于闪存存储装置的冗余方法及闪存存储装置
US20240143200A1 (en) Reducing energy comsumption of self-managed dram modules

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