CN111538622A - 星载固态存储器纠错方法 - Google Patents
星载固态存储器纠错方法 Download PDFInfo
- Publication number
- CN111538622A CN111538622A CN202010336356.8A CN202010336356A CN111538622A CN 111538622 A CN111538622 A CN 111538622A CN 202010336356 A CN202010336356 A CN 202010336356A CN 111538622 A CN111538622 A CN 111538622A
- Authority
- CN
- China
- Prior art keywords
- data
- satellite
- pipeline
- state memory
- error correction
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/08—Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
- G11C29/12—Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
- G11C29/38—Response verification devices
- G11C29/42—Response verification devices using error correcting codes [ECC] or parity check
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本发明提供了一种星载固态存储器纠错方法,包括对星上载荷数据编码、存储、读取和纠错四个部分;根据星上指令切换星载固态存储器的存储和读取操作;根据星上指令获取数据存储或读取地址;对接收到的星上数据进行分段处理,采用流水线方式进行ECC编码和ECC校验纠错功能,提升星载固态存储器的纠错能力,提升星上存储空间的可靠性;结合NANDFLASH存储器电路结构,充分利用空闲区(spare area)的存储容量,提升星上存储空间的利用率。实现了每64byte纠正1bit错误,在提升星上固态存储器纠错能力的同时,降低了星上控制芯片缓存压力,解决后续NAND FLASH芯片集成度提升后单bit误码率增加的问题,能够适应NAND Flash存储器集成度提升,存储容量增加。在星上资源有限和载荷速率较高的情况下,能够有效保证星上数据存储的可靠性。
Description
技术领域
本发明涉及一种星载固态存储器纠错方法。
背景技术
随着卫星的载荷数据规模不断增大,对星载存储系统的存储容量、存储速率提出了越来越高的要求。NAND Flash凭借存储密度高、体积小、重量轻的特点,以及抗震动、抗冲击、温度适应范围宽等特性,成为目前星载固态存储器的核心存储介质。
由于NAND Flash制造工艺的局限性,使其具有天然的缺陷,不可避免的存在单bit误码问题。并且随之其性能的提升,尤其是集成度的提高,单bit误码问题并没有解决,反而越来越大。如何在提升星载固态存储器的性能的同时,在有限的资源内降低固态存储器的误码率,提升系统的可靠性显得尤为重要。
汉明校验码能够纠正单bit错误,并且实现方式简单、占用资源少,符合星载固态存储器的应用需求。但是,现有的算法只能实现在单个page内纠正1bit错误。伴随NANDFlash芯片集成度的提升,现有的算法的纠错能力无法满足星载系统的应用需求。
发明内容
本发明的目的在于提供一种星载固态存储器纠错方法。
为解决上述问题,本发明提供一种星载固态存储器纠错方法,包括:
步骤S1,对星上载荷数据以1page为一个数据块进行划分,每个数据块分级进行处理,建立流水线1,其中,1page=8192字节;
步骤S2,对每个1page数据块进行分段划分,每64字节为一段,分成128段,每段数据进行ECC编码处理,建立流水线2;
步骤S3,对所述流水线2中的128段数据进行64或67字节ECC编码并进行拼接后,将拼接结果写入到NANDFLASH芯片中;
步骤S4,数据读取过程中,以1page为单位进行数据读取,建立流水线3;
步骤S5,将所述流水线3中每1page数据按照67或64字节进行分段,依次进行67或64字节解码校验输出,建立流水线4。
进一步的,在上述方法中,将拼接结果写入到NANDFLASH芯片中,包括:
利用spare area区将拼接结果写入到NANDFLASH芯片中。
进一步的,在上述方法中,所述流水线2和流水线4的流水线级数和每一级流水的深度成反比关系,设级数为n,深度为m,其关系满足:
n×m=128。
进一步的,在上述方法中,所述流水线1和流水线3的流水线级数和每一级流水的深度成反比关系,二者的积由星上载荷数据的类型决定,设星上数据总数据量为X字节,级数为N,深度为M,其关系满足:
与现有技术相比,本发明采用基于流水线ECC纠错算法的星载固态存储器纠错方法,能够解决星上固态存储器纠错能力不足的问题,避免由于NANDFlash芯片集成图提高带来单bit误码增加的问题。同时,对各个流水线的级数和深度提供控制方式,提高纠错方法的通用性,使其能够满足不同的应用场景的需求。另外,采用该方法,充分利用NAND Flash芯片的特点,增加对spare area区的使用,提高了存储空间的利用率。在星上有限硬件资源和存储空间的限制下,提高了星载数据存储的可靠性,符合星上特殊空间环境下的应用需求。
附图说明
图1是本发明一实施例的流水线ECC算法原理示意图;
图2是本发明一实施例的基于流水线ECC算法的星载固态存储器纠错方法整体信息流示意图;
图3是本发明一实施例的基于流水线ECC算法的星载固态存储器纠错方法存储流程实现框图;
图4是本发明一实施例的流水线ECC编码模块信息流示意框图;
图5是本发明一实施例的基于流水线ECC算法的星载固态存储器纠错方法数据读取流程实现框图;
图6是本发明一实施例的为流水线ECC纠错模块信息流示意框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供一种星载固态存储器纠错方法,包括:
步骤S1,对星上载荷数据以1page(8192byte)为一个数据块进行划分,每个数据块分级进行处理,建立流水线1,其中,1page=8192byte;
步骤S2,对每个1page数据块进行分段划分,每64字节(byte)为一段,分成128段,每段数据进行ECC编码处理,建立流水线2,以实现每64byte数据纠错1bit错误,同时降低FPGA芯片上存储空间的需求,降低了系统数据缓存压力;
步骤S3,对所述流水线2中的128段数据进行64或67字节(byte)ECC编码并进行拼接后,将拼接结果写入到NANDFLASH芯片中;
具体的,经过所述流水线2编码后,实现64或67字节(byte)ECC编码,将128段进行64或67字节(byte)ECC编码后进行拼接后写入到NANDFLASH芯片中;
优选的,将拼接结果写入到NANDFLASH芯片中,包括:
利用spare area区将拼接结果写入到NANDFLASH芯片中;
在此,为扩大NAND Flash芯片的数据存储空间,可利用spare area区进行数据存储,提升NANDFLASH芯片存储空间利用率,以解决64/67byteECC编码问题导致数据量增加的问题;
针对现有纠错方法只能对1page(8192byte)数据进行单bit错误纠正的问题,本发明方法对待存储数据分段后,进行流水线ECC编码,并扩展使用NAND Flash芯片的sparearea区;
步骤S4,数据读取过程中,以1page为单位进行数据读取,建立流水线3;
步骤S5,将每1page数据按照67或64byte进行分段,依次进行67或64byte解码校验输出,建立流水线4。
在此,本发明对星上载荷数据块进行分级处理建立流水线,实现数据存储;对每1page(8192byte)数据进行分级流水线处理,进行64/67byteECC编码;NAND Flash数据输出过程中,以Page为单位进行分级流水线读取;对输出数据采用流水线方式进行67/64byte解码校验输出。
本发明克服星载存储器控制芯片资源少的限制,解决了常规星载固态存储器纠错能力不足,误码率高的问题,提升了星载固态存储器的可靠性。
可选的,所述流水线1-4,结合星上数据处理芯片FPGA的资源使用情况、星上待处理数据类型以及对星上对数据处理速度的需求,利用FPGA并行数据处理能力,对每条流水线的级数和每一级流水的深度进行优化,以最大限度的符合星上不同应用场景的应用需求,所述内容如图2所示。
所述流水线2和流水线4的流水线级数和每一级流水的深度成反比关系。设级数为n,深度为m,其关系满足:
n×m=128。
所述流水线1和流水线3的流水线级数和每一级流水的深度成反比关系,二者的积由星上载荷数据的类型决定,设星上数据总数据量为Xbyte,级数为N,深度为M,其关系满足:
本发明提供了基于流水线ECC纠错算法的星载固态存储器纠错方法,包括对星上载荷数据编码、存储、读取和纠错四个部分;根据星上指令切换星载固态存储器的存储和读取操作;根据星上指令获取数据存储或读取地址;对接收到的星上数据进行分段处理,采用流水线方式进行ECC编码和ECC校验纠错功能,提升星载固态存储器的纠错能力,提升星上存储空间的可靠性;结合NANDFLASH存储器电路结构,充分利用空闲区(spare area)的存储容量,提升星上存储空间的利用率。本发明实现了每64byte纠正1bit错误,在提升星上固态存储器纠错能力的同时,降低了星上控制芯片缓存压力,解决后续NAND FLASH芯片集成度提升后单bit误码率增加的问题,能够适应NAND Flash存储器集成度提升,存储容量增加。在星上资源有限和载荷速率较高的情况下,本发明能够有效保证星上数据存储的可靠性。
在本发明实施例中,数据存储系统对接收到的数据存储指令进行解析,确定所述数据存储指令为真,将接收到的星上载荷数据缓存至流水线ECC纠错模块,在所述流水线ECC编码模块中,对所述星上载荷数据进行纠错编码后写入到系统存储模块中。
数据存储系统对接收到的数据读取指令进行解析,确定所述数据读取指令为真,进一步解析读取数据对应存储地址,从系统存储模块中根据所述存储地址读取数据,缓存至流水线ECC纠错模块中,对所述数据进行检错和纠错处理。
作为一种实施例,所述流水线ECC编码模块和流水线ECC纠错模块基于Verilog硬件描述语言在具有抗辐射指标的SRAM(静态随机存取存储器)型FPGA(Filed-ProgrammableGate Array,现场可编程门阵列)器件中实现。
作为一种实施例,所述系统存储模块使用镁光公司MT29F256G08AUCAB芯片作为NAND Flash存储芯片,所述芯片存储容量为256Gbit,单page存储容量为8640byte,其中校验存储区为448byte,数据存储区为8192byte。
下面进一步对本发明一种基于流水线ECC纠错算法的星载固态存储器纠错方法的实现流程进行描述。
本发明的具体实施流程包括两个部分,编码部分和纠错部分。所述编码过程对接收到的星上载荷数据进行编码后,写入到存储芯片中;所述纠错部分,将存储芯片中的数据读取进行检错和纠错工作。
所述编码过程具体实施流程如图3所示:
Step11,数据存储系统接收星上发送的载荷数据存储指令,数据存储系统载荷数据存储功能使能;解析星上指令,确认存储数据类型、划分存储空间,存储功能初始化。
Step12,数据存储系统接收星上发送的高速载荷数据,并将载荷数据暂存在FPGA片上存储空间中。
Step13,流水线ECC编码模块读取缓存区数据,对数据进行ECC编码。
如图4所示:
1.将1page(8kbtye)待存储数据按照64byte长度进行分段处理,分成128段;
2.针对每段数据(64byte)待存储数据进行ECC编码处理,生成3byteECC校验码;
3.将64byte待存储数据与相应的3byteECC校验码拼接生成新的待存储数据(按照数据在前,校验码在后的顺序);
4.将生成的128段新的待存储数据进行拼接,生成8576byte数据;
5.将生成的数据存入到NAND Flash芯片中,前8192byte写入到NAND Flash芯片的数据区,后384byte写入到NAND Flash芯片的空闲区(spare area,总大小448byte)。
Step14,重复步骤12~13,直至待存储数据全部存储完成。
待对存储区数据进行读取时,对数据执行纠错过程。
所述纠错过程具体实施流程如图5所示:
Step21,数据存储系统接收星上发送的载荷数据读取指令,数据存储系统载荷数据读取功能使能;解析星上指令,确认存储数据地址,初始化NAND FLASH。
Step22,数据存储系统读取1page数据(8576byte)数据,并缓存到FPGA内部存储空间中。
Step23,对缓存区的数据1page数据按照67byte长度进行分段处理,生成128段数据。
Step24,对每一小段数据进行检错纠错处理,信息流如图6所示:
1.将小段数据的前64byte进行ECC编码处理,生成3byte新汉明校验码;
2.将小段数据的后3byte与新汉明校验码按公式进行检错;
result=ECCO(new)^ECCE(new)^ECCO(old)^ECCE(old)
3.如有错,则按照2中结果进行纠错,并输出纠错后数据;
Step25,重复执行步骤22-24,直至数据读取完毕。
综上所述,本发明采用基于流水线ECC纠错算法的星载固态存储器纠错方法,能够解决星上固态存储器纠错能力不足的问题,避免由于NANDFlash芯片集成图提高带来单bit误码增加的问题。同时,对各个流水线的级数和深度提供控制方式,提高纠错方法的通用性,使其能够满足不同的应用场景的需求。另外,采用该方法,充分利用NAND Flash芯片的特点,增加对spare area区的使用,提高了存储空间的利用率。在星上有限硬件资源和存储空间的限制下,提高了星载数据存储的可靠性,符合星上特殊空间环境下的应用需求。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。
Claims (4)
1.一种星载固态存储器纠错方法,其特征在于,包括:
步骤S1,对星上载荷数据以1page为一个数据块进行划分,每个数据块分级进行处理,建立流水线1,其中,1page=8192字节;
步骤S2,对每个1page数据块进行分段划分,每64字节为一段,分成128段,每段数据进行ECC编码处理,建立流水线2;
步骤S3,对所述流水线2中的128段数据进行64或67字节ECC编码并进行拼接后,将拼接结果写入到NANDFLASH芯片中;
步骤S4,数据读取过程中,以1page为单位进行数据读取,建立流水线3;
步骤S5,将所述流水线3中每1page数据按照67或64字节进行分段,依次进行67或64字节解码校验输出,建立流水线4。
2.如权利要求1所述的星载固态存储器纠错方法,其特征在于,将拼接结果写入到NANDFLASH芯片中,包括:
利用spare area区将拼接结果写入到NANDFLASH芯片中。
3.如权利要求1所述的星载固态存储器纠错方法,其特征在于,所述流水线2和流水线4的流水线级数和每一级流水的深度成反比关系,设级数为n,深度为m,其关系满足:
n×m=128。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010336356.8A CN111538622B (zh) | 2020-04-24 | 2020-04-24 | 星载固态存储器纠错方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010336356.8A CN111538622B (zh) | 2020-04-24 | 2020-04-24 | 星载固态存储器纠错方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111538622A true CN111538622A (zh) | 2020-08-14 |
CN111538622B CN111538622B (zh) | 2023-08-01 |
Family
ID=71978867
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010336356.8A Active CN111538622B (zh) | 2020-04-24 | 2020-04-24 | 星载固态存储器纠错方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111538622B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904798A (zh) * | 2023-03-09 | 2023-04-04 | 苏州萨沙迈半导体有限公司 | 存储器的纠错检错方法、系统以及控制器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140809A (zh) * | 2007-09-07 | 2008-03-12 | 炬力集成电路设计有限公司 | 支持流水线纠错码和可配置操作的flash控制器及其控制方法 |
CN101140543A (zh) * | 2007-10-19 | 2008-03-12 | 炬力集成电路设计有限公司 | 支持flash页操作与流水线纠错码的数据交换装置与方法 |
US9183085B1 (en) * | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
CN105740088A (zh) * | 2016-01-22 | 2016-07-06 | 深圳市硅格半导体股份有限公司 | 闪存数据纠错方法及装置 |
CN110457160A (zh) * | 2019-07-02 | 2019-11-15 | 深圳市金泰克半导体有限公司 | 一种纠错方法及装置 |
CN110727543A (zh) * | 2019-09-19 | 2020-01-24 | 中国船舶重工集团公司第七0七研究所 | 一种商用非对称密码算法硬件模块 |
-
2020
- 2020-04-24 CN CN202010336356.8A patent/CN111538622B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101140809A (zh) * | 2007-09-07 | 2008-03-12 | 炬力集成电路设计有限公司 | 支持流水线纠错码和可配置操作的flash控制器及其控制方法 |
CN101140543A (zh) * | 2007-10-19 | 2008-03-12 | 炬力集成电路设计有限公司 | 支持flash页操作与流水线纠错码的数据交换装置与方法 |
US9183085B1 (en) * | 2012-05-22 | 2015-11-10 | Pmc-Sierra, Inc. | Systems and methods for adaptively selecting from among a plurality of error correction coding schemes in a flash drive for robustness and low latency |
CN105740088A (zh) * | 2016-01-22 | 2016-07-06 | 深圳市硅格半导体股份有限公司 | 闪存数据纠错方法及装置 |
CN110457160A (zh) * | 2019-07-02 | 2019-11-15 | 深圳市金泰克半导体有限公司 | 一种纠错方法及装置 |
CN110727543A (zh) * | 2019-09-19 | 2020-01-24 | 中国船舶重工集团公司第七0七研究所 | 一种商用非对称密码算法硬件模块 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115904798A (zh) * | 2023-03-09 | 2023-04-04 | 苏州萨沙迈半导体有限公司 | 存储器的纠错检错方法、系统以及控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN111538622B (zh) | 2023-08-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107402837B (zh) | 非易失性存储器装置及其读取方法 | |
US10114578B2 (en) | Solid state disk and data moving method | |
TWI459197B (zh) | 資料寫入方法、記憶體控制器與記憶體儲存裝置 | |
US9483396B2 (en) | Control apparatus, storage device, and storage control method | |
KR20080023191A (ko) | 퓨전메모리 장치 및 방법 | |
KR20090028507A (ko) | 비휘발성 메모리 에러 보정 시스템 및 방법 | |
US20090319843A1 (en) | Method and apparatus for error correction | |
CN111506452B (zh) | 数据存储保护方法、装置、计算机设备及存储介质 | |
CN106802837B (zh) | 一种更新错误检测和纠正ecc码的方法及装置 | |
CN111753962B (zh) | 一种加法器、乘法器、卷积层结构、处理器及加速器 | |
US8245110B2 (en) | Error correcting code generation method and memory control apparatus | |
CN104299637A (zh) | 快闪存储器装置及其运作方法 | |
CN111538622B (zh) | 星载固态存储器纠错方法 | |
CN105528183A (zh) | 一种存储数据的方法及存储设备 | |
CN106528437B (zh) | 数据储存系统与其相关方法 | |
CN105095104A (zh) | 数据缓存处理方法及装置 | |
TWI536749B (zh) | 解碼方法、記憶體儲存裝置與記憶體控制電路單元 | |
US11385833B2 (en) | Method and system for facilitating a light-weight garbage collection with a reduced utilization of resources | |
CN110780806B (zh) | 促进元数据和数据捆绑存储的原子性保证的方法和系统 | |
US8495452B2 (en) | Handling corrupted background data in an out of order execution environment | |
US8276033B2 (en) | Data writing method for a flash memory, and flash memory controller and flash memory storage apparatus using the same | |
CN107943415A (zh) | 基于fat文件系统的查找空闲簇的方法和系统 | |
US9600363B2 (en) | Data accessing method, memory controlling circuit unit and memory storage apparatus | |
CN106919340B (zh) | 提高raid读取性能的系统及方法 | |
CN104425039A (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 |