CN106502590A - 一种固态硬盘ssd存储系统及方法 - Google Patents
一种固态硬盘ssd存储系统及方法 Download PDFInfo
- Publication number
- CN106502590A CN106502590A CN201610938417.1A CN201610938417A CN106502590A CN 106502590 A CN106502590 A CN 106502590A CN 201610938417 A CN201610938417 A CN 201610938417A CN 106502590 A CN106502590 A CN 106502590A
- Authority
- CN
- China
- Prior art keywords
- ldpc
- check bit
- bit information
- data
- bch
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1068—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/062—Securing storage systems
- G06F3/0623—Securing storage systems in relation to content
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Abstract
本发明公开了一种固态硬盘SSD存储系统及方法。该系统包括写随机化模块、CRC产生模块、LDPC编码模块、BCH编码模块和Flash通道控制模块,写随机化模块利用第一随机种子对待写入到页面存储中的第一数据进行随机化处理;CRC产生模块生成第一CRC校验位信息;LDPC编码模块生成第一LDPC校验位信息;BCH编码模块生成第一BCH校验位信息;并通过Flash通道控制模块将第一随机种子、第一随机数据、第一CRC校验位信息、第一LDPC校验位信息和第一BCH校验位信息存放到NAND Flash芯片的页面存储中。应用本发明实施例所提供的技术方案,增强了数据安全性和数据纠错能力。
Description
技术领域
本发明涉及计算机存储技术领域,特别是涉及一种固态硬盘SSD存储系统及方法。
背景技术
随着计算机存储技术的快速发展,SSD(Solid State Drives,固态硬盘)已逐步取代传统的机械硬盘。SSD具有超大容量、超高速等特性,其依靠NAND Flash芯片存储数据,几十片或者上百片的NAND Flash芯片可以组成大容量的SSD。
随着NAND Flash芯片的高速发展,NAND Flash芯片从2D NAND Flash发展到3DNAND Flash,容量更大、读写速度更快,从而对于3D NAND Flash的控制技术要求更高才能保证操作无误。传统的控制技术已经无法满足NAND Flash芯片发展的需求,亟需一种新的访问控制技术,增强数据安全性,提高纠错能力。
发明内容
本发明的目的是提供一种固态硬盘SSD存储系统及方法,以增强数据安全性,提高数据纠错能力,进而延长SSD的使用寿命。
一种固态硬盘SSD存储系统,包括写随机化模块、循环冗余校验CRC产生模块、低密度奇偶校验码LDPC编码模块、BCH编码模块和Flash通道控制模块,其中,
所述写随机化模块,用于利用第一随机种子对待写入到所述NAND Flash芯片的页面存储中的第一数据进行随机化处理,获得第一随机数据;并将所述第一随机种子和所述第一随机数据输入到所述CRC产生模块中;
所述CRC产生模块,用于根据所述第一随机种子和所述第一随机数据,生成第一CRC校验位信息;并将所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息输入到所述LDPC编码模块中;
所述LDPC编码模块,用于根据所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息,生成第一LDPC校验位信息;并将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息和所述第一LDPC校验位信息输入到所述BCH编码模块中;
所述BCH编码模块,用于对所述第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息;并通过所述Flash通道控制模块将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述NANDFlash芯片的页面存储中。
在本发明的一种具体实施方式中,还包括BCH解码模块、LDPC解码模块、CRC确认模块和读去随机化模块,其中,
所述BCH解码模块,用于通过所述Flash通道控制模块从所述NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息;对所述第二BCH校验位信息进行BCH解码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息,将所述正确的LDPC校验位信息输出给所述LDPC解码模块;
所述LDPC解码模块,用于通过所述Flash通道控制模块从所述NAND Flash芯片的页面存储中读取所述第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子;根据所述正确的LDPC校验位信息,还原LDPC原数据;
所述CRC确认模块,用于根据所述第二CRC校验信息确认第二随机数据;
所述读去随机化模块,用于对所述第二随机数据进行去随机化处理,将其还原成打乱之前的所述第二数据,待直接存储器访问DMA读取。
在本发明的一种具体实施方式中,
所述BCH解码模块,具体用于在对所述第二BCH校验位信息进行BCH解码之后,确定所述第二LDPC校验位信息是否正确,如果是,则确定所述第二LDPC校验位信息为正确的LDPC校验位信息,如果否,则对所述第二LDPC校验位信息进行纠错处理,获得正确的LDPC校验位信息。
在本发明的一种具体实施方式中,
所述写随机化模块,具体用于利用所述第一随机种子将所述第一数据与设定比特数的线性反馈移位寄存器LFSR进行随机化操作。
在本发明的一种具体实施方式中,所述LFSR由所述第一随机种子扩展而成。
在本发明的一种具体实施方式中,所述NAND Flash芯片的页面存储包括Flash页区域和Flash备用区域,
所述Flash通道控制模块,具体用于将所述第一随机数据存放到所述Flash页区域中,将所述第一随机种子、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述Flash备用区域中。
在本发明的一种具体实施方式中,还包括:
缓存模块,用于缓存待写入到所述NAND Flash芯片的页面存储中的第一数据,或者,缓存经过所述读去随机化模块处理后的待所述DMA读取的第二数据。
一种固态硬盘SSD存储方法,包括:
利用第一随机种子对待写入到所述NAND Flash芯片的页面存储中的第一数据进行随机化处理,获得第一随机数据;
根据所述第一随机种子和所述第一随机数据,生成第一CRC校验位信息;
根据所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息,生成第一LDPC校验位信息;
对所述第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息;
将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述NAND Flash芯片的页面存储中。
在本发明的一种具体实施方式中,还包括:
从所述NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息;
对所述第二BCH校验位信息进行BCH解码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息;
读取所述第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子;
根据所述正确的LDPC校验位信息,还原LDPC原数据;
根据所述第二CRC校验信息确认第二随机数据;
对所述第二随机数据进行去随机化处理,将其还原成打乱之前的所述第二数据,待直接存储器访问DMA读取。
在本发明的一种具体实施方式中,所述根据第二LDPC校验位信息确定正确的LDPC校验位信息,包括:
在对所述第二BCH校验位信息进行BCH解码之后,确定所述第二LDPC校验位信息是否正确;
如果是,则确定所述第二LDPC校验位信息为正确的LDPC校验位信息;
如果否,则对所述第二LDPC校验位信息进行纠错处理,获得正确的LDPC校验位信息。
应用本发明实施例所提供的技术方案,对于待写入到NAND Flash芯片的页面存储中的第一数据,首先写随机化模块利用第一随机种子对其进行随机化处理,获得第一随机数据,CRC产生模块根据第一随机数据生成第一CRC校验位信息,LDPC编码模块根据前面操作产生的数据生成第一LDPC校验位信息,BCH编码模块对第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息,通过Flash通道控制模块将第一随机种子、第一随机数据、第一CRC校验位信息、第一LDPC校验位信息和第一BCH校验位信息存放到NAND Flash芯片的页面存储中。对第一数据进行随机化处理,增强了数据安全性,使得存储在NAND Flash芯片的页面存储中的数据不容易被窃取,同时,采用LDPC编码模块对LDPC原数据进行编码产生第一LDPC校验位信息,采用BCH编码对第一LDPC校验位信息进行编码得到第一BCH校验位信息,增强了数据纠错能力。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中一种固态硬盘SSD存储系统的结构示意图;
图2为本发明实施例中SSD控制器与NAND Flash芯片互连的结构示意图;
图3为本发明实施例中随机化处理过程示意图;
图4为本发明实施例中CRC校验位信息生成过程示意图;
图5为本发明实施例中LDPC校验位信息生成过程示意图;
图6为本发明实施例中BCH校验位信息生成过程示意图;
图7为本发明实施例中NAND Flash芯片的页面存储数据格式示意图;
图8为本发明实施例中一种固态硬盘SSD存储方法的实施流程图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1所示,为本发明实施例所提供的一种固态硬盘SSD存储系统的结构示意图,该系统包括写随机化模块、循环冗余校验CRC产生模块、低密度奇偶校验码LDPC编码模块、BCH编码模块和Flash通道控制模块,其中,
所述写随机化模块,用于利用第一随机种子对待写入到所述NAND Flash芯片的页面存储中的第一数据进行随机化处理,获得第一随机数据;并将所述第一随机种子和所述第一随机数据输入到所述CRC产生模块中;
所述CRC产生模块,用于根据所述第一随机种子和所述第一随机数据,生成第一CRC校验位信息;并将所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息输入到所述LDPC编码模块中;
所述LDPC编码模块,用于根据所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息,生成第一LDPC校验位信息;并将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息和所述第一LDPC校验位信息输入到所述BCH编码模块中;
所述BCH编码模块,用于对所述第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息;并通过所述Flash通道控制模块将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述NANDFlash芯片的页面存储中。
本发明实施例所提供的技术方案适合对2D NAND Flash芯片和3D NAND Flash芯片进行访问控制。
参见图2所示,为SSD控制器与NAND Flash芯片互连的结构示意图,SSD控制器通过PCIe(最新的总线和接口标准)与外界连接,NAND Flash芯片的访问控制系统一共有N个通道,每个通道最多有8个Flash Target(目标),每个Flash Target有独立的片选信号。每个通道的Flash Target控制信号共享使用,数据总线也是共享使用。片选信号、控制信号、数据总线由NAND Flash芯片访问控制系统发出给相应的Flash Target,以对该Flash Target进行正确的访问。
在本发明实施例中,固态硬盘SSD存储系统包括写随机化模块、CRC(CyclicRedundancy check,循环冗余校验)产生模块、LDPC(Low Density Parity Check Code,低密度奇偶校验码)编码模块、BCH(Bose、Ray-Chaudhuri与Hocquenghem的缩写)编码模块和Flash通道控制模块。
当存在待写入到NAND Flash芯片的页面存储中的第一数据时,写随机化模块可以利用第一随机种子对第一数据进行随机化处理,获得第一随机数据。第一数据为待写入到NAND Flash芯片的页面存储中的任意一个数据。
具体的,写随机化模块可以利用第一随机种子将第一数据与设定比特数的LFSR(Linear Feedback Shift Register,线性反馈移位寄存器)进行随机化操作。LFSR由第一随机种子扩展而成。
如图3所示,2Byte(16bit)随机种子可以扩展成32bit LFSR数据,16Kbyte第一数据通过32bit LFSR本原多项式进行随机化操作后,得到16Kbyte第一随机数据,也即为16Kbyte保护数据。
LFSR本原多项式为x32+x22+x2+x+1。
写随机化模块获得第一随机数据后,可以将第一随机种子和第一随机数据输入到CRC产生模块中。
CRC产生模块根据第一随机种子和第一随机数据,可以生成第一CRC校验位信息。具体如图4所示,图3中的2Byte随机种子和16Kbyte保护数据作为CRC保护数据,该CRC保护数据通过CRC产生模块可以生成第一CRC校验位信息,即6Byte CRC校验位信息。
CRC本原多项式可以为:x48+x44+x42+x39+x37+x35+x34+x31+x28+x23+x19+x18+x17+x15+x14+x12+x11+x9+x8+x6+x4+x2+x+1。
CRC产生模块生成第一CRC校验位信息后,将第一随机种子、第一随机数据和第一CRC校验位信息输入到LDPC编码模块中。
LDPC编码模块可以根据第一随机种子、第一随机数据和第一CRC校验为信息,生成第一LDPC校验位信息。具体如图5所示,图4中的2Byte随机种子、16Kbyte保护数据和6ByteCRC校验位信息作为LDPC原数据,该LDPC原数据通过LDPC编码模块可以生成第一LDPC校验位信息,即N-Byte LDPC校验位信息。N值可以根据实际情况确定。
LDPC编码模块生成第一LDPC校验位信息后,可以将第一随机种子、第一随机数据、第一CRC校验位信息和第一LDPC校验位信息输入到BCH编码模块中。
BCH码是一类重要的循环码。BCH编码模块对第一LDPC校验位信息进行BCH编码,可以生成第一BCH校验位信息。具体如图6所示,图5中的N-Byte LDPC校验位信息通过BCH编码模块可以生成第一BCH校验位信息,即M-Byte BCH校验位信息。M值根据实际情况确定。
BCH编码模块生成第一BCH校验位信息后,可以通过Flash通道控制模块将第一随机种子、第一随机数据、第一CRC校验位信息、第一LDPC校验位信息和第一BCH校验位信息存放到NAND Flash芯片的页面存储中。如图1所示,Flash通道控制模块通过通道将相关信息存放到3D NAND Flash中。
在本发明实施例中,NAND Flash芯片的页面存储可以包括Flash page(页)区域和Flash spare(备用)区域。
Flash通道控制模块,具体可以用于将第一随机数据存放到Flash page区域中,将第一随机种子、第一CRC校验位信息、第一LDPC校验位信息和第一BCH校验位信息存放到Flash spare区域中。
如图7所示,Flash page区域存放的是16Kbyte保护数据,Flash spare区域存放的是2Byte随机种子、6Byte CRC校验位信息、N-Byte LDPC校验位信息和M-Byte BCH校验位信息。
在本发明的一种具体实施方式中,参见图1所示,该系统还可以包括缓存模块,该缓存模块用于缓存待写入到NAND Flash芯片的页面存储中的第一数据,写随机化模块可以从缓存模块中获取第一数据。
应用本发明实施例所提供的系统,对于待写入到NAND Flash芯片的页面存储中的第一数据,首先写随机化模块利用第一随机种子对其进行随机化处理,获得第一随机数据,CRC产生模块根据第一随机数据生成第一CRC校验位信息,LDPC编码模块根据前面操作产生的数据生成第一LDPC校验位信息,BCH编码模块对第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息,通过Flash通道控制模块将第一随机种子、第一随机数据、第一CRC校验位信息、第一LDPC校验位信息和第一BCH校验位信息存放到NAND Flash芯片的页面存储中。对第一数据进行随机化处理,增强了数据安全性,使得存储在NAND Flash芯片的页面存储中的数据不容易被窃取,同时,采用LDPC编码模块对LDPC原数据进行编码产生第一LDPC校验位信息,采用BCH编码对第一LDPC校验位信息进行编码得到第一BCH校验位信息,增强了数据纠错能力。
参见图1所示,该系统还可以包括BCH解码模块、LDPC解码模块、CRC确认模块和读去随机化模块,其中,
所述BCH解码模块,用于通过所述Flash通道控制模块从所述NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息;对所述第二BCH校验位信息进行BCH解码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息,将所述正确的LDPC校验位信息输出给所述LDPC解码模块;
所述LDPC解码模块,用于通过所述Flash通道控制模块从所述NAND Flash芯片的页面存储中读取所述第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子;根据所述正确的LDPC校验位信息,还原LDPC原数据;
所述CRC确认模块,用于根据所述第二CRC校验信息确认第二随机数据;
所述读去随机化模块,用于对所述第二随机数据进行去随机化处理,将其还原成打乱之前的所述第二数据,待直接存储器访问DMA读取。
在本发明实施例中,当存在从NAND Flash芯片的页面存储中读取第二数据的请求时,BCH解码模块可以通过Flash通道控制模块从NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息,对第二BCH校验位信息进行BCH编码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息。将正确的LDPC校验位信息输出给LDPC解码模块。
具体的,BCH解码模块可以在对第二BCH校验位信息进行BCH解码之后,确定第二LDPC校验位信息是否正确,如果是,则将该第二LDPC校验位信息确定为正确的LDPC校验位信息,如果否,则对该第二LDPC校验位信息进行纠错处理,获得正确的LDPC校验位信息。
LDPC解码模块可以通过Flash通道控制模块从NAND Flash芯片的页面存储中读取第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子。根据正确的LDPC校验位信息,可以还原LDPC原数据。LDPC原数据包括第二数据对应的第二随机种子、第二随机数据和第二CRC校验位信息。
CRC确认模块可以根据第二CRC校验位信息确认第二随机数据。
读去随机化模块可以对该第二随机数据进行去随机化处理,将其还原成打乱之前的第二数据,待直接存储器访问DMA读取。具体的,读去随机化模块可以将第二数据缓存到缓存模块中,再由DMA读取。即缓存模块还用于缓存经过读去随机化模块处理后的待DMA读取的第二数据。
在本发明实施例中,应用了双重纠错技术,如果存储在Flash spare区域的LDPC校验位信息出错,采用BCH纠错技术能对其LDPC校验位信息进行纠错,得到正确的LDPC校验位信息,使用正确的LDPC校验位信息即可通过LDPC纠错技术把LDPC原数据还原出来,减少数据的损失。
相应于上面的方法实施例,本发明实施例还提供了一种固态硬盘SSD存储方法,下文描述的一种固态硬盘SSD存储方法与上文描述的一种固态硬盘SSD存储系统可相互对应参照。
参见图8所示,该方法可以包括以下步骤:
S110:利用第一随机种子对待写入到所述NAND Flash芯片的页面存储中的第一数据进行随机化处理,获得第一随机数据;
S120:根据所述第一随机种子和所述第一随机数据,生成第一CRC校验位信息;
S130:根据所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息,生成第一LDPC校验位信息;
S140:对所述第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息;
S150:将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述NAND Flash芯片的页面存储中。
应用本发明实施例所提供的方法,对于待写入到NAND Flash芯片的页面存储中的第一数据,首先利用第一随机种子对其进行随机化处理,获得第一随机数据,根据第一随机数据生成第一CRC校验位信息,根据前面操作产生的数据生成第一LDPC校验位信息,对第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息,将第一随机种子、第一随机数据、第一CRC校验位信息、第一LDPC校验位信息和第一BCH校验位信息存放到NAND Flash芯片的页面存储中。对第一数据进行随机化处理,增强了数据安全性,使得存储在NAND Flash芯片的页面存储中的数据不容易被窃取,同时,对LDPC原数据进行编码产生第一LDPC校验位信息,对第一LDPC校验位信息进行编码得到第一BCH校验位信息,增强了数据纠错能力。
在本发明的一种具体实施方式中,还包括以下步骤:
步骤一:从所述NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息;
步骤二:对所述第二BCH校验位信息进行BCH解码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息;
步骤三:读取所述第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子;
步骤四:根据所述正确的LDPC校验位信息,还原LDPC原数据;
步骤五:根据所述第二CRC校验信息确认第二随机数据;
步骤六:对所述第二随机数据进行去随机化处理,将其还原成打乱之前的所述第二数据,待直接存储器访问DMA读取。
在本发明的一种具体实施方式中,所述根据第二LDPC校验位信息确定正确的LDPC校验位信息,包括:
在对所述第二BCH校验位信息进行BCH解码之后,确定所述第二LDPC校验位信息是否正确;
如果是,则确定所述第二LDPC校验位信息为正确的LDPC校验位信息;
如果否,则对所述第二LDPC校验位信息进行纠错处理,获得正确的LDPC校验位信息。
在本发明实施例中,应用了双重纠错技术,如果存储在Flash spare区域的LDPC校验位信息出错,采用BCH纠错技术能对其LDPC校验位信息进行纠错,得到正确的LDPC校验位信息,使用正确的LDPC校验位信息即可通过LDPC纠错技术把LDPC原数据还原出来,减少数据的损失。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (10)
1.一种固态硬盘SSD存储系统,其特征在于,包括写随机化模块、循环冗余校验CRC产生模块、低密度奇偶校验码LDPC编码模块、BCH编码模块和Flash通道控制模块,其中,
所述写随机化模块,用于利用第一随机种子对待写入到所述NAND Flash芯片的页面存储中的第一数据进行随机化处理,获得第一随机数据;并将所述第一随机种子和所述第一随机数据输入到所述CRC产生模块中;
所述CRC产生模块,用于根据所述第一随机种子和所述第一随机数据,生成第一CRC校验位信息;并将所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息输入到所述LDPC编码模块中;
所述LDPC编码模块,用于根据所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息,生成第一LDPC校验位信息;并将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息和所述第一LDPC校验位信息输入到所述BCH编码模块中;
所述BCH编码模块,用于对所述第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息;并通过所述Flash通道控制模块将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述NANDFlash芯片的页面存储中。
2.根据权利要求1所述的固态硬盘SSD存储系统,其特征在于,还包括BCH解码模块、LDPC解码模块、CRC确认模块和读去随机化模块,其中,
所述BCH解码模块,用于通过所述Flash通道控制模块从所述NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息;对所述第二BCH校验位信息进行BCH解码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息,将所述正确的LDPC校验位信息输出给所述LDPC解码模块;
所述LDPC解码模块,用于通过所述Flash通道控制模块从所述NAND Flash芯片的页面存储中读取所述第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子;根据所述正确的LDPC校验位信息,还原LDPC原数据;
所述CRC确认模块,用于根据所述第二CRC校验信息确认第二随机数据;
所述读去随机化模块,用于对所述第二随机数据进行去随机化处理,将其还原成打乱之前的所述第二数据,待直接存储器访问DMA读取。
3.根据权利要求2所述的固态硬盘SSD存储系统,其特征在于,
所述BCH解码模块,具体用于在对所述第二BCH校验位信息进行BCH解码之后,确定所述第二LDPC校验位信息是否正确,如果是,则确定所述第二LDPC校验位信息为正确的LDPC校验位信息,如果否,则对所述第二LDPC校验位信息进行纠错处理,获得正确的LDPC校验位信息。
4.根据权利要求1所述的固态硬盘SSD存储系统,其特征在于,
所述写随机化模块,具体用于利用所述第一随机种子将所述第一数据与设定比特数的线性反馈移位寄存器LFSR进行随机化操作。
5.根据权利要求4所述的固态硬盘SSD存储系统,其特征在于,所述LFSR由所述第一随机种子扩展而成。
6.根据权利要求1所述的固态硬盘SSD存储系统,其特征在于,所述NAND Flash芯片的页面存储包括Flash页区域和Flash备用区域,
所述Flash通道控制模块,具体用于将所述第一随机数据存放到所述Flash页区域中,将所述第一随机种子、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述Flash备用区域中。
7.根据权利要求1至6任一项所述的固态硬盘SSD存储系统,其特征在于,还包括:
缓存模块,用于缓存待写入到所述NAND Flash芯片的页面存储中的第一数据,或者,缓存经过所述读去随机化模块处理后的待所述DMA读取的第二数据。
8.一种固态硬盘SSD存储方法,其特征在于,包括:
利用第一随机种子对待写入到所述NAND Flash芯片的页面存储中的第一数据进行随机化处理,获得第一随机数据;
根据所述第一随机种子和所述第一随机数据,生成第一CRC校验位信息;
根据所述第一随机种子、所述第一随机数据和所述第一CRC校验位信息,生成第一LDPC校验位信息;
对所述第一LDPC校验位信息进行BCH编码,生成第一BCH校验位信息;
将所述第一随机种子、所述第一随机数据、所述第一CRC校验位信息、所述第一LDPC校验位信息和所述第一BCH校验位信息存放到所述NAND Flash芯片的页面存储中。
9.根据权利要求8所述的固态硬盘SSD存储方法,其特征在于,还包括:
从所述NAND Flash芯片的页面存储中读取第二数据对应的第二BCH校验位信息和第二LDPC校验位信息;
对所述第二BCH校验位信息进行BCH解码,并根据第二LDPC校验位信息确定正确的LDPC校验位信息;
读取所述第二数据对应的第二随机数据、第二CRC校验位信息和第二随机种子;
根据所述正确的LDPC校验位信息,还原LDPC原数据;
根据所述第二CRC校验信息确认第二随机数据;
对所述第二随机数据进行去随机化处理,将其还原成打乱之前的所述第二数据,待直接存储器访问DMA读取。
10.根据权利要求9所述的固态硬盘SSD存储方法,其特征在于,所述根据第二LDPC校验位信息确定正确的LDPC校验位信息,包括:
在对所述第二BCH校验位信息进行BCH解码之后,确定所述第二LDPC校验位信息是否正确;
如果是,则确定所述第二LDPC校验位信息为正确的LDPC校验位信息;
如果否,则对所述第二LDPC校验位信息进行纠错处理,获得正确的LDPC校验位信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610938417.1A CN106502590A (zh) | 2016-10-24 | 2016-10-24 | 一种固态硬盘ssd存储系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610938417.1A CN106502590A (zh) | 2016-10-24 | 2016-10-24 | 一种固态硬盘ssd存储系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106502590A true CN106502590A (zh) | 2017-03-15 |
Family
ID=58319227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610938417.1A Pending CN106502590A (zh) | 2016-10-24 | 2016-10-24 | 一种固态硬盘ssd存储系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106502590A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108958666A (zh) * | 2018-07-26 | 2018-12-07 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法及主控芯片 |
CN109935263A (zh) * | 2019-03-27 | 2019-06-25 | 翰顺联电子科技(南京)有限公司 | 非易失性存储器的编译码方法及存储系统 |
CN110647287A (zh) * | 2018-06-26 | 2020-01-03 | 北京兆易创新科技股份有限公司 | 存储器的数据存储方法、装置、电子设备和存储介质 |
CN115878048A (zh) * | 2023-02-27 | 2023-03-31 | 珠海妙存科技有限公司 | 一种用于NAND Flash随机化的随机序列种子生成方法及其系统 |
CN116524992A (zh) * | 2023-06-29 | 2023-08-01 | 上海飞斯信息科技有限公司 | 大容量高速固态存储器容量管理系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770089B2 (en) * | 2003-10-27 | 2010-08-03 | Dtvg Licensing, Inc. | Method and apparatus for providing reduced memory Low Density Parity Check (LDPC) codes |
CN101946239A (zh) * | 2008-02-29 | 2011-01-12 | 株式会社东芝 | 半导体存储装置及其控制方法和错误纠正系统 |
CN102024501A (zh) * | 2009-09-18 | 2011-04-20 | 株式会社东芝 | 存储器系统以及对存储器系统的控制方法 |
US8065598B1 (en) * | 2007-02-08 | 2011-11-22 | Marvell International Ltd. | Low latency programmable encoder with outer systematic code and low-density parity-check code |
CN102866877A (zh) * | 2011-07-08 | 2013-01-09 | 三星电子株式会社 | 存储器控制器及操作方法,及含存储器控制器的电子设备 |
-
2016
- 2016-10-24 CN CN201610938417.1A patent/CN106502590A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7770089B2 (en) * | 2003-10-27 | 2010-08-03 | Dtvg Licensing, Inc. | Method and apparatus for providing reduced memory Low Density Parity Check (LDPC) codes |
US8065598B1 (en) * | 2007-02-08 | 2011-11-22 | Marvell International Ltd. | Low latency programmable encoder with outer systematic code and low-density parity-check code |
CN101946239A (zh) * | 2008-02-29 | 2011-01-12 | 株式会社东芝 | 半导体存储装置及其控制方法和错误纠正系统 |
CN102024501A (zh) * | 2009-09-18 | 2011-04-20 | 株式会社东芝 | 存储器系统以及对存储器系统的控制方法 |
CN102866877A (zh) * | 2011-07-08 | 2013-01-09 | 三星电子株式会社 | 存储器控制器及操作方法,及含存储器控制器的电子设备 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647287A (zh) * | 2018-06-26 | 2020-01-03 | 北京兆易创新科技股份有限公司 | 存储器的数据存储方法、装置、电子设备和存储介质 |
CN108958666A (zh) * | 2018-07-26 | 2018-12-07 | 浪潮电子信息产业股份有限公司 | 一种数据处理方法及主控芯片 |
CN109935263A (zh) * | 2019-03-27 | 2019-06-25 | 翰顺联电子科技(南京)有限公司 | 非易失性存储器的编译码方法及存储系统 |
CN115878048A (zh) * | 2023-02-27 | 2023-03-31 | 珠海妙存科技有限公司 | 一种用于NAND Flash随机化的随机序列种子生成方法及其系统 |
CN116524992A (zh) * | 2023-06-29 | 2023-08-01 | 上海飞斯信息科技有限公司 | 大容量高速固态存储器容量管理系统 |
CN116524992B (zh) * | 2023-06-29 | 2023-09-15 | 上海飞斯信息科技有限公司 | 大容量高速固态存储器容量管理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106502590A (zh) | 一种固态硬盘ssd存储系统及方法 | |
CN101937724B (zh) | 用于执行拷贝回存操作的方法以及闪存存储设备 | |
TWI674767B (zh) | 用於nand快閃記憶體的渦輪乘積碼 | |
KR101306645B1 (ko) | 시행착오에 의한 에러 보정 디코딩 | |
US8560926B2 (en) | Data writing method, memory controller and memory storage apparatus | |
US9703627B2 (en) | Error correction code unit, self-test method and associated controller applied to flash memory device for generating soft information | |
CN103761988B (zh) | 固态硬盘及数据移动方法 | |
US20070268905A1 (en) | Non-volatile memory error correction system and method | |
CN103137215B (zh) | 向存储器提供低延时错误纠正码能力 | |
CN105340022A (zh) | 用于校正数据错误的电路、设备及方法 | |
US20120079346A1 (en) | Simulated error causing apparatus | |
CN102110481A (zh) | 具有ecc电路的半导体存储系统及其控制方法 | |
TWI618078B (zh) | 在固態記憶體系統中基於延遲的資料再利用的系統及方法 | |
TWI527040B (zh) | 資料寫入方法、記憶體儲存裝置與記憶體控制器 | |
CN104991738B (zh) | 一种固态盘及其读写操作方法 | |
KR20160054395A (ko) | 메모리 데이터 에러 정정 방법 | |
US10248497B2 (en) | Error detection and correction utilizing locally stored parity information | |
CN103187104A (zh) | 存储器的纠错方法 | |
US11256563B2 (en) | Memory controller with high data reliability, a memory system having the same, and an operation method of the memory controller | |
CN103594120A (zh) | 以读代写的存储器纠错方法 | |
US9665423B2 (en) | End-to-end error detection and correction | |
CN110309013A (zh) | 存取闪存模块的方法及相关的闪存控制器与电子装置 | |
CN106484558A (zh) | 一种基于可变码率的纠错码提高固态盘的可靠性方法 | |
US20180276069A1 (en) | Memory controller, memory system, and control method | |
CN103531246A (zh) | 快速以读代写的存储器纠错方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170315 |
|
RJ01 | Rejection of invention patent application after publication |