CN111897495B - 提高ssd写性能的实现方法、装置、计算机设备及存储介质 - Google Patents

提高ssd写性能的实现方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN111897495B
CN111897495B CN202010738432.8A CN202010738432A CN111897495B CN 111897495 B CN111897495 B CN 111897495B CN 202010738432 A CN202010738432 A CN 202010738432A CN 111897495 B CN111897495 B CN 111897495B
Authority
CN
China
Prior art keywords
data
command
write
written
writing
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
CN202010738432.8A
Other languages
English (en)
Other versions
CN111897495A (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 CN202010738432.8A priority Critical patent/CN111897495B/zh
Publication of CN111897495A publication Critical patent/CN111897495A/zh
Application granted granted Critical
Publication of CN111897495B publication Critical patent/CN111897495B/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/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本申请涉及一种提高SSD写性能的实现方法、装置、计算机设备及存储介质,其中该方法包括:获取主机下发的写数据命令;判断所述写数据命令是否需要写入Parity数据;若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi‑Plane命令写入Nand Flash中。本发明实现提高了Multi‑Plane拼接率,进而提高了Cache Program的比例,使得SSD的写性能可以提升30%。

Description

提高SSD写性能的实现方法、装置、计算机设备及存储介质
技术领域
本发明涉及固态硬盘技术领域,特别是涉及一种提高SSD写性能的实现方法、装置、计算机设备及存储介质。
背景技术
NAND Flash闪存芯片是SSD(Solid State Disk)存储数据的主要部分。由于NandFlash具有易失性和耐久性等特点,容易造成数据丢失。因此SSD需要从系统角度考虑增加数据保护能力,提高数据可靠性。磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意,目前主流SSD都支持通过RAID提高数据保护能力。磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。由于SSD只有一片独立存储体,无法像机械硬盘使用一块独立磁盘保存,因此目前主流厂商是通过Block RAID来提供数据可靠性,如图1所示,使用31User Data+1Parity的方式进行数据保护,前面31个Block中的数据为有效数据,最后1个Block的数据为User Data异或生成的Parity数据,其中前31组数据中任一数据丢失,都可以通过Parity数据来恢复,提高数据可靠性。
在传统技术中,SSD为提高写性能,数据需要通过Multi-Plane的方式写入NandFlash,Multi-Plane的拼接要求写命令必须同时准备好,并且数据刚好写到不同Channel的同一个CE上。而增加了RAID数据保护功能后,最后一笔Parity数据由于需要等前面31组用户数据完成异或操作,生成Parity数据再写入Nand Flash,这样造成第31笔用户数据和Parity数据都无法以Multi-Plane的方式写入,导致写性能明显降低。
发明内容
基于此,有必要针对上述技术问题,提供一种提高SSD写性能的实现方法、装置、计算机设备及存储介质。
一种提高SSD写性能的实现方法,所述方法包括:
获取主机下发的写数据命令;
判断所述写数据命令是否需要写入Parity数据;
若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。
在其中一个实施例中,所述判断所述写数据命令是否需要写入Parity数据的步骤包括:
判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。
在其中一个实施例中,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:
若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入Nand Flash中;
更新对应的映射表信息。
在其中一个实施例中,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:
若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入Nand Flash中并同时生成Parity数据;
更新对应的映射表信息。
一种提高SSD写性能的实现装置,所述装置包括:
获取模块,所述获取模块用于获取主机下发的写数据命令;
第一判断模块,所述第一判断模块用于判断所述写数据命令是否需要写入Parity数据;
数据生成模块,所述数据生成模块用于若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
第二判断模块,所述第二判断模块用于判断所述Parity数据是否已生成;
写入模块,所述写入模块用于待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。
在其中一个实施例中,第一判断模块还用于:
判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。
在其中一个实施例中,所述装置还包括第一执行模块,所述第一执行模块用于:
若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入Nand Flash中;
更新对应的映射表信息。
在其中一个实施例中,所述装置还包括第二执行模块,所述第二执行模块用于:
若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入Nand Flash中并同时生成Parity数据;
更新对应的映射表信息。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任意一项方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项方法的步骤。
上述提高SSD写性能的实现方法、装置、计算机设备及存储介质通过获取主机下发的写数据命令;判断所述写数据命令是否需要写入Parity数据;若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。本发明在写入过程中进行提取预判,当下一笔命令需要写入Parity数据时,当前命令先不执行写入操作,只生成Parity数据,与下一笔命令组成Multi-Plane操作再写入Nand Flash。通过这种方式不仅提高了Multi-Plane拼接率,进而提高了Cache Program的比例,写性能可以提升30%。
附图说明
图1为传统技术中通过Block RAID进行数据保护的示意图;
图2为传统技术中RAID数据保护下的写命令执行的流程示意图;
图3为一个实施例中提高SSD写性能的实现方法的流程示意图;
图4为另一个实施例中提高SSD写性能的实现方法的流程示意图;
图5为再一个实施例中提高SSD写性能的实现方法的流程示意图;
图6为一个实施例中RAID数据保护下的写命令执行的流程示意图;
图7为一个实施例中提高SSD写性能的实现装置的结构框图;
图8为另一个实施例中提高SSD写性能的实现装置的结构框图;
图9为再一个实施例中提高SSD写性能的实现装置的结构框图;
图10为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在传统技术中,SSD为提高写性能,数据需要通过Multi-Plane的方式写入NandFlash,Multi-Plane的拼接要求写命令必须同时准备好,并且数据刚好写到不同Channel的同一个CE上,而增加了RAID数据保护功能后,最后一笔Parity数据由于需要等前面31组用户数据完成异或操作,生成Parity数据再写入Nand Flash,这样造成第31笔用户数据和Parity数据都无法以Multi-Plane的方式写入,导致写性能明显降低。
参考图2所示的传统技术中RAID数据保护下的写命令执行的流程示意图。SSD实现RAID数据保护通常配置为31User Data+1Parity的方式,而写入顺序为Bank0和Bank1同时写入组成Multi-Plane,Bank2和Bank3同时写入组成Multi-Plane,当最后Bank6写入时Bank7中的Parity数据未准备好,因此无法组成Multi-Plane,导致组成Multi-Plane的比例降低25%。
具体地,图2中Host下发写命令,如果是Bank0-Bank5的地址写入,则会组成Multi-Plane写入Nand Flash,否则先以Signal Plane方式写入Bank6的数据,然后将31份用户数据进行异或操作生成Parity数据,以Signal Plane方式写入Bank7,Multi-Plane的比例降低25%。由于Multi-Plane和Signal Plane的切换,导致无法以Cache Program的方式写入Nand Flash,进一步影响写性能,理论计算和实际测试对写性能影响为30%左右。
性能是SSD产品提高竞争力的一项重要指标,提高性能可以有效提高SSD的市场竞争力,因此性能提示至关重要。而数据保护也是SSD的必备特性,增加RAID数据保护后产生的性能降低问题则是不得不解决的问题。
基于此,本发明提出一种提高SSD写性能的实现方法,该方法通过提高使能RAID后,将Parity数据组成Multi-Plane的方式写入Nand Flash以提高Multi-Plane拼接率,进而提高Cache Program的比例,以达到提升SSD写性能的目的。
在一个实施例中,如图3所示,提供了一种提高SSD写性能的实现方法,该方法包括:
步骤302,获取主机下发的写数据命令;
步骤304,判断写数据命令是否需要写入Parity数据;
步骤306,若写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
步骤308,判断Parity数据是否已生成;
步骤310,待Parity数据生成后,将Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。
在本实施例中,提供了一种提高SSD写性能的实现方法,该方法通过提高RAID功能打开后的Multi-Plane拼接率,进而以实现提高SSD写性能的目的,具体地包括如下实现步骤:
首先,获取主机下发的写数据命令。接着,判断写数据命令是否需要写入Parity数据。具体地,在写入过程中进行提取预判,当下一笔命令需要写入Parity数据时,当前命令先不执行写入操作,只生成对应的Parity数据。待Parity数据生成后,再与下一笔命令组成Multi-Plane操作写入Nand Flash中。
使用RAID场景中,将需要写入的Parity数据与前一笔数据组成Multi-Plane操作可以提高Multi-Plane拼接率。而通过Multi-Plane操作进而可以提高Cache Program的比例,有效提高写性能,提升用户在使用过程中的性能体验。在实际的应用场景中,通过该方法可以将Multi-Plane拼接率提高25%,Cache Program同时提高25%,写性能提高30%。
在本实施例中,通过获取主机下发的写数据命令;判断所述写数据命令是否需要写入Parity数据;若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;判断所述Parity数据是否已生成;待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入NandFlash中。本方案在写入过程中进行提取预判,当下一笔命令需要写入Parity数据时,当前命令先不执行写入操作,只生成Parity数据,与下一笔命令组成Multi-Plane操作再写入Nand Flash。通过这种方式不仅提高了Multi-Plane拼接率,进而提高了Cache Program的比例,写性能可以提升30%。
在一个实施例中,如图4所示,提供了一种提高SSD写性能的实现方法,该方法还包括:
步骤402,判断写数据命令是否为写入Bank0-Bank5的写数据命令;
步骤404,若写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
步骤406,判断Parity数据是否已生成;
步骤408,待Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入Nand Flash中;
步骤410,更新对应的映射表信息。
在一个实施例中,如图5所示,提供了一种提高SSD写性能的实现方法,该方法还包括:
步骤502,判断写数据命令是否为写入Bank0-Bank5的写数据命令;
步骤504,若写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入Nand Flash中并同时生成Parity数据;
步骤506,更新对应的映射表信息。
在本实施例中提供了一种通过提高RAID功能打开后的Multi-Plane拼接率,进而提高SSD写性能的方法,具体地,该方法的实现过程可参考图6所示,包括如下实现步骤:
1、Host下发写数据命令,下一步执行流程2。
2、判断是否为Bank0-Bank5数据:是,下一步执行流程3;否,下一步执行流程4。
3、组成Multi-Plane写入Nand Flash同时生成Parity数据,下一步执行流程7。
4、Bank6的命令先不执行写操作,只异或生成Parity数据,下一步执行流程5。
5、判断Parity数据是否已生成:是,下一步执行流程6;否,下一步执行流程5。
6、将写入Bank7的Parity数据和Bank6的数据组成Multi-Plane命令写入NandFlash。
7.更新映射表信息。
8.完成数据写入。
在本实施例中,Host写入数据时,Bank0-Bank5按照Multi-Plane写入的同时进行异或操作生成Parity数据,Bank6命令收到后先生成Parity不写入Nand Flash,待Parity数据生成后,生成命令,将Bank6与Bank7组成Multi-Plane命令写入Nand Flash,通过这种方式不仅提高了Multi-Plane拼接率,进而提高了Cache Program的比例,写性能可以提升30%。
应该理解的是,虽然图3-6的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图3-6中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图7所示,提供了一种提高SSD写性能的实现装置700,该装置包括:
获取模块701,用于获取主机下发的写数据命令;
第一判断模块702,用于判断所述写数据命令是否需要写入Parity数据;
数据生成模块703,用于若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
第二判断模块704,用于判断所述Parity数据是否已生成;
写入模块705,用于待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。
在一个实施例中,第一判断模块702还用于:
判断写数据命令是否为写入Bank0-Bank5的写数据命令。
在一个实施例中,如图8所示,提供了一种提高SSD写性能的实现装置700,该装置还包括第一执行模块706,用于:
若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入Nand Flash中;
更新对应的映射表信息。
在一个实施例中,如图9所示,提供了一种提高SSD写性能的实现装置700,该装置还包括第二执行模块707,用于:
若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入Nand Flash中并同时生成Parity数据;
更新对应的映射表信息。
关于提高SSD写性能的实现装置的具体限定可以参见上文中对于提高SSD写性能的实现方法的限定,在此不再赘述。
在一个实施例中,提供了一种计算机设备,其内部结构图可以如图10所示。该计算机设备包括通过装置总线连接的处理器、存储器以及网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作装置、计算机程序和数据库。该内存储器为非易失性存储介质中的操作装置和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种提高SSD写性能的实现方法。
本领域技术人员可以理解,图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.一种提高SSD写性能的实现方法,其特征在于,所述方法包括:
获取主机下发的写数据命令;
判断所述写数据命令是否需要写入Parity数据;
若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。
2.根据权利要求1所述的提高SSD写性能的实现方法,其特征在于,所述判断所述写数据命令是否需要写入Parity数据的步骤包括:
判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。
3.根据权利要求2所述的提高SSD写性能的实现方法,其特征在于,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:
若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入Nand Flash中;
更新对应的映射表信息。
4.根据权利要求2所述的提高SSD写性能的实现方法,其特征在于,在所述判断所述写数据命令是否为写入Bank0-Bank5的写数据命令的步骤之后还包括:
若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入Nand Flash中并同时生成Parity数据;
更新对应的映射表信息。
5.一种提高SSD写性能的实现装置,其特征在于,所述装置包括:
获取模块,所述获取模块用于获取主机下发的写数据命令;
第一判断模块,所述第一判断模块用于判断所述写数据命令是否需要写入Parity数据;
数据生成模块,所述数据生成模块用于若所述写数据命令需要写入Parity数据,则当前写数据命令先不执行写入操作,只通过异或生成对应的Parity数据;
第二判断模块,所述第二判断模块用于判断所述Parity数据是否已生成;
写入模块,所述写入模块用于待所述Parity数据生成后,将所述Parity数据与下一笔命令组成Multi-Plane命令写入Nand Flash中。
6.根据权利要求5所述的提高SSD写性能的实现装置,其特征在于,第一判断模块还用于:
判断所述写数据命令是否为写入Bank0-Bank5的写数据命令。
7.根据权利要求6所述的提高SSD写性能的实现装置,其特征在于,所述装置还包括第一执行模块,所述第一执行模块用于:
若所述写数据命令不是写入Bank0-Bank5的写数据命令,则对于写入Bank6的命令先不执行写操作,只通过异或生成对应的Parity数据;
判断所述Parity数据是否已生成;
待所述Parity数据生成后,将写入Bank7的所述Parity数据和写入Bank6的数据组成Multi-Plane命令写入Nand Flash中;
更新对应的映射表信息。
8.根据权利要求6所述的提高SSD写性能的实现装置,其特征在于,所述装置还包括第二执行模块,所述第二执行模块用于:
若所述写数据命令为写入Bank0-Bank5的写数据命令,则直接将数据组成Multi-Plane写入Nand Flash中并同时生成Parity数据;
更新对应的映射表信息。
9.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至4中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至4中任一项所述的方法的步骤。
CN202010738432.8A 2020-07-28 2020-07-28 提高ssd写性能的实现方法、装置、计算机设备及存储介质 Active CN111897495B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010738432.8A CN111897495B (zh) 2020-07-28 2020-07-28 提高ssd写性能的实现方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010738432.8A CN111897495B (zh) 2020-07-28 2020-07-28 提高ssd写性能的实现方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN111897495A CN111897495A (zh) 2020-11-06
CN111897495B true CN111897495B (zh) 2023-07-04

Family

ID=73182276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010738432.8A Active CN111897495B (zh) 2020-07-28 2020-07-28 提高ssd写性能的实现方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN111897495B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114610542B (zh) * 2022-05-10 2023-03-14 深圳佰维存储科技股份有限公司 数据恢复方法、装置、可读存储介质及电子设备

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681944A (zh) * 2010-12-22 2012-09-19 三星电子株式会社 数据存储装置以及相关的操作方法
CN104794070A (zh) * 2015-04-23 2015-07-22 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN107111453A (zh) * 2014-12-10 2017-08-29 英特尔公司 跨多个存储装置执行原子写入操作
CN108920094A (zh) * 2018-06-01 2018-11-30 深圳忆联信息系统有限公司 擦除单元raid方法、装置、计算机设备及存储介质
CN109426583A (zh) * 2017-08-23 2019-03-05 东芝存储器株式会社 运行中的独立磁盘冗余阵列奇偶校验计算
CN109582227A (zh) * 2018-11-15 2019-04-05 深圳忆联信息系统有限公司 固态硬盘写入方法、装置、计算机设备和存储介质
CN109783034A (zh) * 2019-02-12 2019-05-21 记忆科技(深圳)有限公司 一种提升磁盘阵列处理效率的方法及其系统
CN110427279A (zh) * 2019-07-19 2019-11-08 深圳忆联信息系统有限公司 一种恢复写条带的Raid奇偶校验数据的方法及系统
WO2020073233A1 (en) * 2018-10-10 2020-04-16 Alibaba Group Holding Limited System and method for data recovery in parallel multi-tenancy ssd with finer granularity

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190294345A1 (en) * 2018-03-21 2019-09-26 Super Talent Technology Corp. Data-Retention Controller Using Mapping Tables in a Green Solid-State-Drive (GNSD) for Enhanced Flash Endurance

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102681944A (zh) * 2010-12-22 2012-09-19 三星电子株式会社 数据存储装置以及相关的操作方法
CN107111453A (zh) * 2014-12-10 2017-08-29 英特尔公司 跨多个存储装置执行原子写入操作
CN104794070A (zh) * 2015-04-23 2015-07-22 南京道熵信息技术有限公司 基于动态非覆盖raid技术的固态闪存写缓存系统及方法
CN109426583A (zh) * 2017-08-23 2019-03-05 东芝存储器株式会社 运行中的独立磁盘冗余阵列奇偶校验计算
CN108920094A (zh) * 2018-06-01 2018-11-30 深圳忆联信息系统有限公司 擦除单元raid方法、装置、计算机设备及存储介质
WO2020073233A1 (en) * 2018-10-10 2020-04-16 Alibaba Group Holding Limited System and method for data recovery in parallel multi-tenancy ssd with finer granularity
CN109582227A (zh) * 2018-11-15 2019-04-05 深圳忆联信息系统有限公司 固态硬盘写入方法、装置、计算机设备和存储介质
CN109783034A (zh) * 2019-02-12 2019-05-21 记忆科技(深圳)有限公司 一种提升磁盘阵列处理效率的方法及其系统
CN110427279A (zh) * 2019-07-19 2019-11-08 深圳忆联信息系统有限公司 一种恢复写条带的Raid奇偶校验数据的方法及系统

Also Published As

Publication number Publication date
CN111897495A (zh) 2020-11-06

Similar Documents

Publication Publication Date Title
CN110704337B (zh) 基于固态硬盘的映射表重建方法、装置和计算机设备
US10475517B2 (en) Characterizing and operating a non-volatile memory device
US10509697B2 (en) Data storage device and operating method therefor
CN110413454B (zh) 基于存储阵列的数据重建方法、装置及存储介质
CN110888851B (zh) 压缩文件创建和解压的方法及装置、以及电子和存储设备
US9754682B2 (en) Implementing enhanced performance with read before write to phase change memory
WO2024114599A1 (zh) 独立冗余磁盘阵列数据组织方法、装置、服务器和介质
CN107885620B (zh) 一种提高固态盘阵列性能和可靠性的方法及系统
CN111897495B (zh) 提高ssd写性能的实现方法、装置、计算机设备及存储介质
CN114115745B (zh) 多Pass编程NAND的RAID优化方法、装置及计算机设备
CN111026678B (zh) 基于固态硬盘的缓存设计方法、装置及计算机设备
CN115878041A (zh) 固态硬盘raid写性能提升的实现方法、装置和计算机设备
CN110275596B (zh) 基于固态硬盘的上电初始化加速方法、装置和计算机设备
CN105095352A (zh) 应用于分布式系统的数据处理方法及装置
US10977119B2 (en) Techniques for utilizing volatile memory buffers to reduce parity information stored on a storage device
CN112596679B (zh) 固态硬盘的raid实现方法、装置、计算机设备及存储介质
CN109002265B (zh) 一种数据处理的方法以及相关装置
CN114047880B (zh) 多Pass编程的NAND写入功耗优化方法、装置及计算机设备
CN111897676A (zh) 一种基于数据库索引的文件备份方法及装置
CN110389724A (zh) 基于固态硬盘的parity page识别方法和装置
CN117149075A (zh) 基于DRAM-less固态硬盘的RAID实现方法和装置
CN117289863A (zh) RAID buffer的硬件管理实现方法、装置和计算机设备
CN114579057B (zh) 缓存设备的校验数据的存储方法、存储装置及存储系统
CN111158589B (zh) 存储阵列的动态管理方法和装置
CN110888823B (zh) 页扫描效率的提升方法、装置及计算机设备

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