CN114115745B - 多Pass编程NAND的RAID优化方法、装置及计算机设备 - Google Patents

多Pass编程NAND的RAID优化方法、装置及计算机设备 Download PDF

Info

Publication number
CN114115745B
CN114115745B CN202111444258.7A CN202111444258A CN114115745B CN 114115745 B CN114115745 B CN 114115745B CN 202111444258 A CN202111444258 A CN 202111444258A CN 114115745 B CN114115745 B CN 114115745B
Authority
CN
China
Prior art keywords
programming
pass
raid
nand
completed
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
CN202111444258.7A
Other languages
English (en)
Other versions
CN114115745A (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 CN202111444258.7A priority Critical patent/CN114115745B/zh
Publication of CN114115745A publication Critical patent/CN114115745A/zh
Priority to PCT/CN2022/117585 priority patent/WO2023098207A1/zh
Application granted granted Critical
Publication of CN114115745B publication Critical patent/CN114115745B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • 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
    • 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/0608Saving storage space on storage systems
    • 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

Abstract

本申请涉及一种多Pass编程NAND的RAID优化方法、装置、计算机设备及存储介质,其中该方法包括:获取多Pass编程NAND的RAID优化请求;根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;通过RAID引擎编码实时生成对应的Parity数据;在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。本发明针对多Pass编程的场景,在各个Pass编程时,动态生成RAID校验数据而不缓存对应的校验数据,通过实时生成RAID校验数据减少了对SOC Memory的需求,进而提高了固态硬盘的性能,降低了成本。

Description

多Pass编程NAND的RAID优化方法、装置及计算机设备
技术领域
本发明涉及存储系统技术领域,特别是涉及一种多Pass编程NAND的RAID优化方法、装置、计算机设备及存储介质。
背景技术
随着固态硬盘技术的发展,SSD(Solid State Disk,固态硬盘)已经被广泛应用于各种场合,在PC市场已经逐步替代传统的HDD(Hard Disk Drive,硬盘驱动器),从可靠性和性能方面为用户提供较好的体验。随着NAND工艺的演进,其编程模型越来越复杂,从早先的单Pass编程到最近的多Pass编程。对于多Pass编程的颗粒来说,每个Pass编程的时候,所有的页面数据都需要传输到NAND,相应地,对应的数据需要缓存在SSD内存中。
目前,在现有的SSD设计中,一般都会使用RAID来提升可靠性。对于N笔用户数据,通过RAID引擎生成1笔校验数据,且写入到NAND中。由于多Pass编程的需求,RAID校验数据也必需多次传输到NAND,故需要缓冲对应的校验数据,直到对应页面的所有Pass编程完成,由此增加了对SSD内存的需求。进一步地,由于RAID引擎使用的为SOC内部的高速Memory(如SRAM),其空间有限,需要将校验数据备份到慢速内存中(如DRAM),此拷贝过程对性能影响较大。
发明内容
基于此,有必要针对上述技术问题,提供一种多Pass编程NAND的RAID优化方法、装置、计算机设备及存储介质。
一种多Pass编程NAND的RAID优化方法,所述方法包括:
获取多Pass编程NAND的RAID优化请求;
根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;
通过RAID引擎编码实时生成对应的Parity数据;
在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。
在其中一个实施例中,所述方法还包括:
将RAID条带的用户数据经过RAID引擎编码生成对应的Parity数据;
将用户数据和Parity数据传输到SSD各个DIE的Page上进行Pass 1编程;
在所述Pass 1编程完成后即可释放对应的Parity缓冲区。
在其中一个实施例中,所述方法还包括:
在多Pass编程模型下交错进行各个Page的每个Pass编程;
待所有相关交错编程Page的Pass 1完成后,再重新继续RAID条带的Pass2编程。
在其中一个实施例中,所述方法还包括:
判断Page所有Pass编程是否已经完成;
若否则继续发起各个DIE Page对应Pass用户数据编程;若是则完成各个DIE的Page编程。
一种多Pass编程NAND的RAID优化装置,所述装置包括:
获取模块,所述获取模块用于获取多Pass编程NAND的RAID优化请求;
编码模块,所述编码模块用于根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;
生成模块,所述生成模块用于通过RAID引擎编码实时生成对应的Parity数据;
释放模块,所述释放模块用于在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。
在其中一个实施例中,所述装置还包括编程模块,所述编程模块用于:
将RAID条带的用户数据经过RAID引擎编码生成对应的Parity数据;
将用户数据和Parity数据传输到SSD各个DIE的Page上进行Pass 1编程;
在所述Pass 1编程完成后即可释放对应的Parity缓冲区。
在其中一个实施例中,所述编程模块还用于:
在多Pass编程模型下交错进行各个Page的每个Pass编程;
待所有相关交错编程Page的Pass 1完成后,再重新继续RAID条带的Pass2编程。
在其中一个实施例中,所述装置还包括判断模块,所述判断模块用于:
判断Page所有Pass编程是否已经完成;
若否则继续发起各个DIE Page对应Pass用户数据编程;若是则完成各个DIE的Page编程。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述多Pass编程NAND的RAID优化方法、装置、计算机设备及存储介质通过获取多Pass编程NAND的RAID优化请求;根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;通过RAID引擎编码实时生成对应的Parity数据;在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。本发明针对多Pass编程的场景,在各个Pass编程时,动态生成RAID校验数据而不缓存对应的校验数据,通过实时生成RAID校验数据减少了对SOC Memory的需求,进而提高了固态硬盘的性能,降低了成本。
附图说明
图1为一个传统的Multi-Pass NAND RAID模型的示意图;
图2为另一个传统的Multi-Pass NAND RAID模型的示意图;
图3为一个实施例中多Pass编程NAND的RAID优化方法的流程示意图;
图4为一个实施例中对应的NAND多Pass写入过程的流程示意图;
图5为另一个实施例中多Pass编程NAND的RAID优化方法的流程示意图;
图6为一个实施例中Multi-Pass NAND编程时的RAID模型的示意图;
图7为一个实施例中多Pass编程NAND的RAID优化装置的结构框图;
图8为另一个实施例中多Pass编程NAND的RAID优化装置的结构框图;
图9为再一个实施例中多Pass编程NAND的RAID优化装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
目前,典型的NAND组成包括:DIE,可独立并发操作的单元;Block,可独立擦除的单元,其内各个物理位置的数据写入后在下一次写之前必须要将整个Block擦除;Page,读写单元,同一物理块内的Page必需按顺序编程:0->1->2->3…。随着NAND技术的演进,其Page编程模型越来越复杂。以QLC为例,其需要按照一定的规则对Page进行多次编程才能达到稳定的状态。期间,需要存储的数据需要多次传输到NAND上。
如图1所示,为一个传统的Multi-Pass NAND RAID模型的示意图。其中,Data 0_0、Data 0_1、Data 0_2…Data 0_N-1为属于同一RAID条带(称为条带0)的N笔用户数据。RAID条带0的用户数据经过RAID引擎编码,生成对应的Parity数据(Parity 0_N)。此N(用户数据)+1(RAID Parity数据)传输到SSD各个DIE的Block X的Page 0上,进行Pass 1编程;且由于RAID Parity数据还需在后续的Pass中传输到NAND中,则需要在内存中继续保持缓存。在多Pass编程模型下,各个Page的各个Pass编程是交错进行的,依次进行RAID条带1的Parity生成,以及写入各个DIE的Block X的Page 1。所有相关交错编程的Page的Pass 1完成后,再重新继续RAID条带0的Pass 2编程,此时对应的校验数据直接使用缓存的RAID Parity数据。依次进行RAID条带1的Pass 2编程,此时也依然使用内存中缓存的Parity数据。循环上述序列,直到所有相关的交错编程的条带完成所有Pass的数据写入。在此过程中,由于每个Pass编程都需要所有数据传输到NAND上,故对于RAID条带数据,需要保持在RAID Parity缓存中(一般为高速的SOC内部SRAM),直到所有交错编程的Page完成所有Pass的编程才能释放。此过程对于RAID Parity缓存的要求很大,极大地增加了SOC成本。
如图2所示,为另一个传统的Multi-Pass NAND RAID模型的示意图。在此过程中,同图1中的模型类似,也需要缓存RAID parity数据。但考虑到高速的SOC SRAM成本较高,所以一般在Pass 1编程,经过RAID引擎生成的Parity数据会备份到慢速的内存(空间大,一般如DRAM)。此过程可以降低SOC成本,但是频繁的内存拷贝,对整体性能影响较大。
基于此,本发明提出一种多Pass编程NAND的RAID优化方法,旨在能够针对多Pass编程的场景可以降低对SOC Memory的需求。
在一个实施例中,如图3所示,提供了一种多Pass编程NAND的RAID优化方法,该方法包括:
步骤302,获取多Pass编程NAND的RAID优化请求;
步骤304,根据多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;
步骤306,通过RAID引擎编码实时生成对应的Parity数据;
步骤308,在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。
在本实施例中,提供了一种多Pass编程NAND的RAID优化方法,该方法针对多Pass编程的场景,在每个Pass编程时,由于N笔用户数据需要多次传输给NAND,故其必然需要缓冲。相应地,对该N笔用户数据对应的1笔RAID校验数据每次重新生成,消除了RAID ParityBuffer的缓存备份需求。
在一个实施例中,方法还包括:判断Page0所有Pass编程是否已经完成;若否则继续发起各个DIE Page0对应Pass用户数据编程;若是则完成各个DIE的Page0编程。
参考图4所示,为本实施例中对应的NAND多Pass写入流程图。具体的实现步骤如下:
首先,发起各个DIE Page 0Pass 1用户数据编程。接着,将RAID条带的用户数据经过RAID引擎编码,生成RAID校验数据。
然后,将各个DIE的数据(含用户数据、备份的RAID校验数据)发送给NAND,并发起对应Pass的编程;交错进行各个DIE Page 1/2/3Pass 1编程。
最后,再判断是否Page 0所有Pass编程完成。若是,则完成各个DIE Page0编程;若否,继续发起各个DIE Page 0对应Pass用户数据编程。
在此过程中,在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码,实时生成校验数据。在对应Pass的编程完成后,即可释放Parity缓冲区,无需保持到所有Pass编程完成。
在上述实施例中通过获取多Pass编程NAND的RAID优化请求;根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;通过RAID引擎编码实时生成对应的Parity数据;在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。上述方案针对多Pass编程的场景,在各个Pass编程时,动态生成RAID校验数据而不缓存对应的校验数据,通过实时生成RAID校验数据减少了对SOC Memory的需求,进而提高了固态硬盘的性能,降低了成本。
在一个实施例中,如5图所示,提供了一种多Pass编程NAND的RAID优化方法,该方法还包括:
步骤502,将RAID条带0的用户数据经过RAID引擎编码生成对应的Parity数据;
步骤504,将用户数据和Parity数据传输到SSD各个DIE的Page 0上进行Pass 1编程;
步骤506,在Pass 1编程完成后即可释放对应的Parity缓冲区;
步骤508,在多Pass编程模型下交错进行各个Page的每个Pass编程;
步骤510,待所有相关交错编程Page的Pass 1完成后,再重新继续RAID条带0的Pass 2编程。
参考图6所示,在本实施例中引入的Multi-Pass NAND编程时的RAID模型,其具体的实现步骤如下:
6.1、Data 0_0、Data 0_1、Data 0_2…Data 0_N-1为属于同一RAID条带(称为条带0)的N笔用户数据。
6.2、RAID条带0的用户数据经过RAID引擎编码,生成对应的Parity数据(Parity0_N)。
6.3、此N(用户数据)+1(RAID Parity数据)传输到SSD各个DIE的Block X的Page 0上进行Pass 1编程;编程完成后即可释放Parity 0_N缓冲区。
6.4、在多Pass编程模型下,各个Page的各个Pass编程是交错进行的,依次进行RAID条带1的Parity生成以及写入各个DIE的Block X的Page 1。
6.5、所有相关交错编程的Page的Pass 1完成后,再重新继续RAID条带0的Pass 2编程:
此时同Pass 1一样,N笔用户数据重新经过RAID引擎,重新生成Parity 0_N。传输到SSD各个DIE的Block X Page 0进行Pass 2编程,完成后即释放Parity 0_N缓冲区。
6.6、依次进行RAID条带1的Pass 2编程,此时也是重新经由RAID引擎生成相应的校验数据并写入NAND。
6.7、循环上述序列,直到所有相关的交错编程的条带完成所有Pass的数据写入。
在本实施例中,由于用户数据总是缓存在内存中,通过在每个Pass编程时,实时重新生成对应的RAID parity数据,大大降低了对SOC Parity Buffer大小的需求,降低了成本;且无需触发memory的拷贝备份,不会影响性能。
应该理解的是,虽然图1-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种多Pass编程NAND的RAID优化装置700,该装置包括:
获取模块701,用于获取多Pass编程NAND的RAID优化请求;
编码模块702,用于根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;
生成模块703,用于通过RAID引擎编码实时生成对应的Parity数据;
释放模块704,用于在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。
在一个实施例中,如图8所示,提供了一种多Pass编程NAND的RAID优化装置700,该装置还包括编程模块705,用于:
将RAID条带0的用户数据经过RAID引擎编码生成对应的Parity数据;
将用户数据和Parity数据传输到SSD各个DIE的Page 0上进行Pass 1编程;
在所述Pass 1编程完成后即可释放对应的Parity缓冲区。
在一个实施例中,编程模块705还用于:
在多Pass编程模型下交错进行各个Page的每个Pass编程;
待所有相关交错编程Page的Pass 1完成后,再重新继续RAID条带0的Pass2编程。
在一个实施例中,如图9所示,提供了一种多Pass编程NAND的RAID优化装置700,该装置还包括判断模块706,用于:
判断Page0所有Pass编程是否已经完成;
若否则继续发起各个DIE Page0对应Pass用户数据编程;若是则完成各个DIE的Page0编程。
关于多Pass编程NAND的RAID优化装置的具体限定可以参见上文中对于多Pass编程NAND的RAID优化方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图10所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种多Pass编程NAND的RAID优化方法。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以上各个方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上各个方法实施例中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种多Pass编程NAND的RAID优化方法,其特征在于,所述方法包括:
获取多Pass编程NAND的RAID优化请求;
根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;
通过RAID引擎编码实时生成对应的Parity数据;
在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。
2.根据权利要求1所述的多Pass编程NAND的RAID优化方法,其特征在于,所述方法还包括:
将RAID条带的用户数据经过RAID引擎编码生成对应的Parity数据;
将用户数据和Parity数据传输到SSD各个DIE的Page上进行Pass 1编程;
在所述Pass 1编程完成后即可释放对应的Parity缓冲区。
3.根据权利要求2所述的多Pass编程NAND的RAID优化方法,其特征在于,所述方法还包括:
在多Pass编程模型下交错进行各个Page的每个Pass编程;
待所有相关交错编程Page的Pass 1完成后,再重新继续RAID条带的Pass2编程。
4.根据权利要求3所述的多Pass编程NAND的RAID优化方法,其特征在于,所述方法还包括:
判断Page所有Pass编程是否已经完成;
若否则继续发起各个DIE Page对应Pass用户数据编程;若是则完成各个DIE的Page编程。
5.一种多Pass编程NAND的RAID优化装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取多Pass编程NAND的RAID优化请求;
编码模块,所述编码模块用于根据所述多Pass编程NAND的RAID优化请求在每个Pass编程时,利用所属RAID条带缓存的用户数据重新进行RAID引擎编码;
生成模块,所述生成模块用于通过RAID引擎编码实时生成对应的Parity数据;
释放模块,所述释放模块用于在对应Pass的编程完成后即可释放Parity缓冲区,无需保持到所有Pass编程完成。
6.根据权利要求5所述的多Pass编程NAND的RAID优化装置,其特征在于,所述装置还包括编程模块,所述编程模块用于:
将RAID条带的用户数据经过RAID引擎编码生成对应的Parity数据;
将用户数据和Parity数据传输到SSD各个DIE的Page上进行Pass 1编程;
在所述Pass 1编程完成后即可释放对应的Parity缓冲区。
7.根据权利要求6所述的多Pass编程NAND的RAID优化装置,其特征在于,所述编程模块还用于:
在多Pass编程模型下交错进行各个Page的每个Pass编程;
待所有相关交错编程Page的Pass 1完成后,再重新继续RAID条带的Pass2编程。
8.根据权利要求7所述的多Pass编程NAND的RAID优化装置,其特征在于,所述装置还包括判断模块,所述判断模块用于:
判断Page所有Pass编程是否已经完成;
若否则继续发起各个DIE Page对应Pass用户数据编程;若是则完成各个DIE的Page编程。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202111444258.7A 2021-11-30 2021-11-30 多Pass编程NAND的RAID优化方法、装置及计算机设备 Active CN114115745B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111444258.7A CN114115745B (zh) 2021-11-30 2021-11-30 多Pass编程NAND的RAID优化方法、装置及计算机设备
PCT/CN2022/117585 WO2023098207A1 (zh) 2021-11-30 2022-09-07 多Pass编程NAND的RAID优化方法、装置及计算机设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111444258.7A CN114115745B (zh) 2021-11-30 2021-11-30 多Pass编程NAND的RAID优化方法、装置及计算机设备

Publications (2)

Publication Number Publication Date
CN114115745A CN114115745A (zh) 2022-03-01
CN114115745B true CN114115745B (zh) 2023-07-04

Family

ID=80368911

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111444258.7A Active CN114115745B (zh) 2021-11-30 2021-11-30 多Pass编程NAND的RAID优化方法、装置及计算机设备

Country Status (2)

Country Link
CN (1) CN114115745B (zh)
WO (1) WO2023098207A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114115745B (zh) * 2021-11-30 2023-07-04 深圳忆联信息系统有限公司 多Pass编程NAND的RAID优化方法、装置及计算机设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103279402A (zh) * 2013-05-13 2013-09-04 记忆科技(深圳)有限公司 基于多层单元固态硬盘的数据恢复方法及固态硬盘
CN103870411A (zh) * 2012-12-11 2014-06-18 三星电子株式会社 存储控制器以及包括存储控制器的存储系统
US9823968B1 (en) * 2015-08-21 2017-11-21 Datadirect Networks, Inc. Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
CN107403646A (zh) * 2016-04-27 2017-11-28 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
CN111081308A (zh) * 2018-10-19 2020-04-28 奈奎斯特半导体有限公司 用于混合非易失性存储系统的系统和方法
CN113391947A (zh) * 2021-06-22 2021-09-14 深圳忆联信息系统有限公司 Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10389380B2 (en) * 2016-04-20 2019-08-20 SK Hynix Inc. Efficient data path architecture for flash devices configured to perform multi-pass programming
US10248499B2 (en) * 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
KR20180051703A (ko) * 2016-11-07 2018-05-17 삼성전자주식회사 Raid 방식으로 데이터를 저장하는 스토리지 장치
US10725859B2 (en) * 2017-05-25 2020-07-28 Western Digital Technologies, Inc. Parity generation offload using peer-to-peer data transfers in data storage system
US10789126B2 (en) * 2018-10-09 2020-09-29 Micron Technology, Inc. Multiple memory devices having parity protection
US10748606B2 (en) * 2018-12-14 2020-08-18 Western Digital Technologies, Inc. Multi-state programming for memory devices
US11106530B2 (en) * 2019-12-20 2021-08-31 Micron Technology, Inc. Parity protection
CN114115745B (zh) * 2021-11-30 2023-07-04 深圳忆联信息系统有限公司 多Pass编程NAND的RAID优化方法、装置及计算机设备

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103870411A (zh) * 2012-12-11 2014-06-18 三星电子株式会社 存储控制器以及包括存储控制器的存储系统
CN103279402A (zh) * 2013-05-13 2013-09-04 记忆科技(深圳)有限公司 基于多层单元固态硬盘的数据恢复方法及固态硬盘
US9823968B1 (en) * 2015-08-21 2017-11-21 Datadirect Networks, Inc. Data storage system employing a variable redundancy distributed RAID controller with embedded RAID logic and method for data migration between high-performance computing architectures and data storage devices using the same
CN107403646A (zh) * 2016-04-27 2017-11-28 慧荣科技股份有限公司 闪存装置及闪存存储管理方法
CN111081308A (zh) * 2018-10-19 2020-04-28 奈奎斯特半导体有限公司 用于混合非易失性存储系统的系统和方法
CN113391947A (zh) * 2021-06-22 2021-09-14 深圳忆联信息系统有限公司 Ssd raid条带掉电快速恢复方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
WO2023098207A1 (zh) 2023-06-08
CN114115745A (zh) 2022-03-01

Similar Documents

Publication Publication Date Title
US10114578B2 (en) Solid state disk and data moving method
US10127166B2 (en) Data storage controller with multiple pipelines
US10210044B2 (en) Storage controller, data processing chip, and data processing method
CN114253483B (zh) 基于命令的写缓存管理方法、装置、计算机设备及存储介质
CN114115745B (zh) 多Pass编程NAND的RAID优化方法、装置及计算机设备
CN111897495B (zh) 提高ssd写性能的实现方法、装置、计算机设备及存储介质
US10776052B2 (en) Information processing apparatus, data compressing method, and computer-readable recording medium
CN115878041A (zh) 固态硬盘raid写性能提升的实现方法、装置和计算机设备
CN110275596B (zh) 基于固态硬盘的上电初始化加速方法、装置和计算机设备
CN114047880B (zh) 多Pass编程的NAND写入功耗优化方法、装置及计算机设备
CN115620781A (zh) 用于固态硬盘的闪存控制器配置方法、装置、设备及介质
CN115563021A (zh) 基于固态硬盘的重复读性能提升方法、装置和计算机设备
CN113821465A (zh) 基于sram的axi接口控制方法、装置及计算机设备
CN110389724B (zh) 基于固态硬盘的parity page识别方法和装置
CN109582516B (zh) Ssd后端性能分析方法、装置、计算机设备和存储介质
CN112596679B (zh) 固态硬盘的raid实现方法、装置、计算机设备及存储介质
CN114185620B (zh) 加速ssd固件加载实现方法、装置、计算机设备及存储介质
CN117149075A (zh) 基于DRAM-less固态硬盘的RAID实现方法和装置
CN114327274B (zh) 基于固态硬盘的映射表加载检查方法、装置及计算机设备
CN113986126B (zh) 基于固态硬盘的tcg数据删除方法、装置及计算机设备
CN116028275A (zh) 基于DRAM-less固态硬盘的数据回退实现方法和装置
CN117289863A (zh) RAID buffer的硬件管理实现方法、装置和计算机设备
CN117032582A (zh) 基于DRAM-less固态硬盘的写性能提升方法和装置
CN114415944A (zh) 固态硬盘物理块管理方法、装置、计算机设备及存储介质
CN115185455A (zh) 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