CN108108263A - 一种固态硬盘的数据处理方法及装置 - Google Patents
一种固态硬盘的数据处理方法及装置 Download PDFInfo
- Publication number
- CN108108263A CN108108263A CN201711338703.5A CN201711338703A CN108108263A CN 108108263 A CN108108263 A CN 108108263A CN 201711338703 A CN201711338703 A CN 201711338703A CN 108108263 A CN108108263 A CN 108108263A
- Authority
- CN
- China
- Prior art keywords
- data
- passage
- solid state
- check information
- state disk
- 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
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
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
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)
Abstract
本发明公开了一种固态硬盘的数据处理方法及装置,该方法应用在固态硬盘读写数据的过程中,固态硬盘包括多个存储芯片,存储芯片具有多个数据区,该方法包括:接收由多个通道组向固态硬盘写入的数据,形成与通道组相对应的多个数据组,其中通道组包括多个通道,多个通道中包括至少一个校验通道;基于数据组按照预设校验算法生成校验信息,并通过校验通道存储校验信息;当从固态硬盘中读取数据时,根据校验信息和数据组的内容,获取数据组中的错误数据对应的正确数据,以供读取。该方法能够在固态硬盘进行数据处理的过程中,同时对多个通道的数据进行纠错处理,提高了纠错能力,提升了固态硬盘的读写速度。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种固态硬盘的数据处理方法及装置。
背景技术
对固态硬盘(SSD)进行数据处理的过程中,特别是在使用固态硬盘中的多个存储芯片(flash芯片)进行数据的读写过程中,经常会有存储芯片发生读写错误,这就需要对数据进行校验处理,但是目前校验方式简单,纠错能力低,如每个条带只能对一个错误数据块纠错,而且可同时处理的条带数比较少,产生校验码的效率低或纠错的效率较低,导致固态硬盘读写数据的速度慢。
发明内容
本发明实施例的目的在于提供一种固态硬盘的数据处理方法及装置,该方法能够在固态硬盘进行数据处理的过程中,同时对多个通道的数据进行纠错处理,基于现有数据使用校验算法高效率的确定错误数据并生成相应的正确数据。
为了解决上述技术问题,本发明的实施例采用了如下技术方案:一种固态硬盘的数据处理方法,应用在固态硬盘读写数据的过程中,所述固态硬盘包括多个存储芯片,所述存储芯片具有多个数据区,所述方法包括:
接收由多个通道组向所述固态硬盘写入的数据,形成与所述通道组相对应的多个数据组,其中所述通道组包括多个通道,多个所述通道中包括至少一个校验通道;
基于所述数据组按照预设校验算法生成校验信息,并通过所述校验通道存储所述校验信息;
当从所述固态硬盘中读取数据时,根据所述校验信息和所述数据组的内容,获取所述数据组中的错误数据对应的正确数据,以供读取。
作为优选,所述数据组中包括多个与所述通道相对应的数据块,所述的基于所述数据组按照预设校验算法生成校验信息,并通过所述校验通道存储所述校验信息包括:
侦测所述数据块写入所述固态硬盘的写入顺序;
根据所述写入顺序按照预设校验算法生成校验信息,将所述校验信息存储到所述校验通道对应的所述存储芯片,或对应的所述数据区中。
作为优选,所述的根据所述写入顺序按照预设校验算法生成校验信息,将所述校验信息存储到所述校验通道对应的所述存储芯片,或对应的所述数据区中包括:
当所有的所述数据块写入后生成所述校验信息,当非所有的所述数据块写入则生成相应的条带信息;
存储至少一个所述条带信息,当所有的所述数据块写入后,根据所述条带信息和所述数据块的内容生成所述校验信息。
作为优选,所述的当从所述固态硬盘中读取数据时,根据所述校验信息和所述数据组的内容,获取所述数据组中的错误数据对应的正确数据,以供读取包括:
根据所述校验信息和数据组的内容,获取与所述错误数据对应的正确数据,并将所述正确数据存储到恢复数据存储器中;
从所述恢复数据存储器中获取所述正确数据,并将所述正确数据存储到所述固态硬盘或外部存储空间中,以供读取。
作为优选,所述数据组中包括多个与所述通道相对应的数据块,所述的根据所述校验信息和数据组的内容,获取与所述错误数据对应的正确数据包括:
侦测读取所述数据块的读取顺序;
基于所述数据组,根据所述读取顺序和校验信息,获取所述正确数据。
作为优选,所述方法还包括:在生成所述校验信息时基于所述数据组进行并行计算,并将所述校验信息通过多个所述校验通道并行存储在与所述校验通道对应的所述存储芯片,或对应的所述数据区中。
本发明实施例还提供了一种固态硬盘的数据处理装置,应用在固态硬盘读写数据的过程中,所述固态硬盘包括多个存储芯片,所述存储芯片具有多个数据区,所述装置包括写入模块,校验模块和读取模块;
所述写入模块配置为接收由多个通道组向所述固态硬盘写入的数据,形成与所述通道组相对应的多个数据组,其中所述通道组包括多个通道,多个所述通道中包括至少一个校验通道;
所述校验模块与写入模块连接,所述校验模块配置为基于所述数据组按照预设校验算法生成校验信息,并通过所述校验通道存储所述校验信息;
所述读取模块与校验模块连接,所述读取模块配置为当从所述固态硬盘中读取数据时,根据所述校验信息和所述数据组的内容,获取所述数据组中的错误数据对应的正确数据,以供读取。
作为优选,所述数据组中包括多个与所述通道相对应的数据块,所述校验模块包括侦测单元;
所述侦测单元配置为侦测所述数据块写入所述固态硬盘的写入顺序,以使所述校验模块根据所述写入顺序按照预设校验算法生成校验信息,并将所述校验信息存储到所述校验通道对应的所述存储芯片,或对应的所述数据区中。
作为优选,所述读取模块包括获取单元和转存单元;
所述获取单元配置为根据所述校验信息和数据组的内容,获取与所述错误数据对应的正确数据,并将所述正确数据存储到恢复数据存储器中;
所述转存单元配置为从所述恢复数据存储器中获取所述正确数据,并将所述正确数据存储到所述固态硬盘或外部存储空间中,以供读取。
作为优选,所述数据组中包括多个与所述通道相对应的数据块,所述获取单元进一步配置为侦测读取所述数据块的读取顺序,基于所述数据组,根据所述读取顺序和校验信息,获取所述正确数据。
本发明实施例的有益效果在于:该方法能够在固态硬盘进行数据处理的过程中,同时对多个通道的数据进行纠错处理,基于已有数据使用校验算法高效率的确定错误数据,并获得错误数据对应的正确数据,提高了校验效率,提升了固态硬盘的读写速度。
附图说明
图1为本发明实施例的固态硬盘的数据处理方法的流程图;
图2为本发明实施例的图1中步骤S2的流程图;
图3为本发明实施例的图1中步骤S3的流程图;
图4为本发明实施例的固态硬盘的数据处理装置的结构示意图;
图5为本发明实施例的固态硬盘的数据处理装置的一个实施例的结构关系图。
附图标记说明
1-数据处理装置 2-写入模块 3-校验模块
4-读取模块 5-固态硬盘
具体实施方式
此处参考附图描述本发明的各种方案以及特征。
应理解的是,可以对此处发明的实施例做出各种修改。因此,上述说明书不应该视为限制,而仅是作为实施例的范例。本领域的技术人员将想到在本发明的范围和精神内的其他修改。
包含在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且与上面给出的对本发明的大致描述以及下面给出的对实施例的详细描述一起用于解释本发明的原理。
通过下面参照附图对给定为非限制性实例的实施例的优选形式的描述,本发明的这些和其它特性将会变得显而易见。
还应当理解,尽管已经参照一些具体实例对本发明进行了描述,但本领域技术人员能够确定地实现本发明的很多其它等效形式,它们具有如权利要求所述的特征并因此都位于借此所限定的保护范围内。
当结合附图时,鉴于以下详细说明,本发明的上述和其他方面、特征和优势将变得更为显而易见。
此后参照附图描述本发明的具体实施例;然而,应当理解,所发明的实施例仅仅是本发明的实例,其可采用多种方式实施。熟知和/或重复的功能和结构并未详细描述以避免不必要或多余的细节使得本发明模糊不清。因此,本文所发明的具体的结构性和功能性细节并非意在限定,而是仅仅作为权利要求的基础和代表性基础用于教导本领域技术人员以实质上任意合适的详细结构多样地使用本发明。
本说明书可使用词组“在一种实施例中”、“在另一个实施例中”、“在又一实施例中”或“在其他实施例中”,其均可指代根据本发明的相同或不同实施例中的一个或多个。
本发明实施例的一种固态硬盘的数据处理方法,固态硬盘(SSD,Solid StateDrives)是用非易失存储芯片阵列而制成的硬盘,具体来说,固态硬盘包括控制器和存储器,存储器包括多个存储芯片(如NAND FLASH芯片),每个存储芯片具有多个数据区,用于存储数据,其存储方式可以将需要存储的数据分成许多区段,分别存放在各个存储芯片上,进一步的存放在每个存储芯片的各个数据区中。本实施例针对在固态硬盘读数据的过程中发生的数据错误,进行纠错。如图1所示,该数据处理方法包括以下步骤:
S1,接收由多个通道组向固态硬盘写入的数据,形成与通道组相对应的多个数据组,其中通道组包括多个通道,多个通道中包括至少一个校验通道。数据可以以通道组的形式向固态硬盘进行写入,多个通道组可以同时进行数据的传输,增加了数据的读写效率,固态硬盘可以设置与通道组相对应的缓冲器来接收数据,结合图5例如采用分别为第一通道组、第二通道组、第三通道组和第四通道组这四个通道组为固态硬盘写入数据,而固态硬盘中也设置有四个与之相对照的缓冲器来接收数据。在本实施例中,每个通道组对应一个数据组,可以传送一个数据组的数据,结合上述例子,每个缓冲器可以接收一个数据组的数据。此外,通道组包括多个通道(如4个通道,结合上述例子四个通道组便拥有16个通道),在一个实施例中,每个通道可以对应一个存储芯片来存储数据,进一步的在针对存储芯片进行数据处理时,每个通道也可以对应存储芯片中的一个数据区,也就是说,该数据处理方法可以针对将数据写入到多个存储芯片时使用,也可以针对将数据写入到多个数据区(可能是不同的存储芯片的多个数据区,也可能是相同存储芯片的多个数据区)时使用。当然该数据处理方法也可以针对从多个存储芯片(或多个数据区)中读取数据时使用。多个通道中包括至少一个校验通道,校验通道可以传送校验信息,而校验信息可以用来对发生错误的数据纠错,以将错误数据还原为正确数据。在一个实施例中,一个校验通道也可以对应一个存储芯片或一个数据区,该存储芯片或数据区可以存储经由与之对应的校验通道传送的校验信息。
S2,基于数据组按照预设校验算法生成校验信息,并通过校验通道存储校验信息。校验算法可以根据实际的读写需求来进行预先设置,例如可以对数据组的数据进行异或运算,以生成校验信息,生成的校验信息可以通过校验通道进行存储,如存储在校验通道对应的存储芯片或数据区上,当然校验信息可以分别通过多个校验通道(如2个或2个以上)存储在多个对应的存储芯片或数据区上(如2个或2个以上)。
S3,当从固态硬盘中读取数据时,根据校验信息和数据组的内容,获取数据组中的错误数据对应的正确数据,以供读取。在一个实施例中,可以通过校验信息和所对应条带中其它正确的数据块进行一定的运算就可以计算出错误数据所对应的正确数据,获取到正确的数据后,可以对其进行读取操作或其他操作。需要说明的是,由于对固态硬盘读写的数据进行了数据组的划定,传送时可以经由通道组对数据组进行一对一的传送,以对数据组的数据进行规范化处理,因此可以有效的加快读写效率,提升固态硬盘读写数据的速度。
在本发明的一个实施例中,数据组中包括多个与通道相对应的数据块(结合图5例如对于16个通道可以设置16个数据块与之相对应),需要存储在固态硬盘中的数据可以被分隔为多个数据块,并以数据块为单位进行存储,而数据块可以通过通道进行数据的传送,在一个实施例中,每个数据块可以通过相对应的通道传送并被存储在一个对应的存储芯片或对应的数据区中。如图2所示,所述的基于数据组按照预设校验算法生成校验信息,并通过校验通道存储校验信息的步骤包括以下步骤:
S21,侦测数据块写入固态硬盘的写入顺序。数据块的大小和写入复杂程度可能是不同的,因此数据块写入固态硬盘的顺序是不同的,根据写入顺序可以查询数据块的流向以及与之对应的存储芯片信息等。
S22,根据写入顺序按照预设校验算法生成校验信息,将校验信息存储到校验通道对应的存储芯片(针对多个存储芯片进行数据写入操作),或对应的数据区(针对多个数据区进行数据写入操作)中。在一个实施例中,在固态硬盘中写入数据时,无论是否发生读写错误均生成校验信息。根据写入顺序按照异或运算等预设校验算法生成校验信息,并将校验信息存储到校验通道对应的存储芯片中或对应的数据区中,该存储芯片或数据区可以只存储校验信息,不存储其他数据。在一个实施例中,结合图5,可以将生成的校验信息暂存在静态随机存储器(Parity SRAM)中,再从静态随机存储器将校验信息转储到对应的存储芯片中或对应的数据区中。
在本发明的一个实施例中,所述的根据写入顺序按照预设校验算法生成校验信息,将校验信息存储到校验通道对应的存储芯片,或对应的数据区中包括:
S221,当所有的数据块写入后生成校验信息,当非所有的数据块写入则生成相应的条带信息。所有的数据块写入后说明写入数据的工作已经完成,生成的该校验信息对应了所有数据块,校验信息具体的生成过程可以是依次对数据块的内容进行的运算而生成的信息。条带(stripe)是把连续的数据分割成相同大小的数据块,而条带信息是部分数据块写入时生成的信息。在一个实施例中,结合图5,可以将生成的条带信息暂存在静态随机存储器(Parity SRAM)中,再由静态随机存储器将条带信息存储到存储芯片中。
S222,存储至少一个条带信息,当所有的数据块写入后,根据条带信息和数据块的内容生成校验信息。条带信息不是校验信息,或者不是完整的校验信息,只有当所有的数据块写入后,利用条带信息和部分数据块的内容(如生成条带信息之后的才写入固态硬盘的数据块),或者利用条带信息和所有的数据块的内容,生成校验信息。
作为优选,所述的根据写入顺序按照预设校验算法生成校验信息,将校验信息存储到校验通道对应的存储芯片,或对应的数据区中的步骤包括:
按照写入顺序对数据块的内容进行异或运算,以生成校验信息。结合图5,在进行异或运算时,可以使用仲裁器(arbiter)进行仲裁,仲裁器按照一定的算法对多个数据组缓冲器中的数据进行选择,使得各个数据组缓冲器的数据在每个时刻只有一个缓冲器的数据参与检验信息的计算,从而生成校验信息
在本发明的一个实施例中,如图3所示,所述的当从固态硬盘中读取数据时,根据校验信息和数据组的内容,获取数据组中的错误数据对应的正确数据,以供读取的步骤包括以下步骤:
S31,根据校验信息和数据组的内容,获取(如计算出)与错误数据对应的正确数据,并将正确数据存储到恢复数据存储器(Recovery SRAM)中。然后,正确数据会被读走。
S32,从恢复数据存储器中获取正确数据,以供读取。将正确数据再次存储到固态硬盘则达到了将错误数据恢复为正确数据(即纠错)的目的,当存储在固态硬盘,结合图5,用户在读取该正确数据时,可以通过该固态硬盘的控制器内部的CPU,经由系统总线(如AXI总线或AXB总线等)调用,以供用户查看。
在本发明的一个实施例中,数据组中包括多个与通道相对应的数据块,在进行读取数据的操作时,所述的根据校验信息和数据组的内容,获取与错误数据对应的正确数据的步骤包括以下步骤:
S311,侦测读取数据块的读取顺序。由于存储在固态硬盘中的数据可以以多个数据块的形式存储,在读取时也会以数据块的形式读取其中的内容,读取数据块的顺序有先后,需要侦测并记录该顺序。
S312,基于数据组,根据读取顺序和校验信息,获取正确数据。在一个实施例中,正确的数据分散的存储在多个存储芯片或多个数据区中,可以根据读取顺序和校验信息分别从每个存储芯片或数据区中读取正确数据的子数据,并形成正确数据。具体在利用校验信息进行计算时,结合图5,可以利用仲裁器(arbiter)针对数据块的内容进行运算,在对所有的数据块的内容计算完成后可以最终获取到正确数据,并将其存储在恢复数据存储器(Recovery SRAM)中。
进一步来说,所述的基于数据组,根据读取顺序和校验信息,获取正确数据包括:
S3121,根据读过程中发现的错误数据的存储位置和错误数据的数量,确定需要读出的校验信息的数量和位置。S3122,基于数据组中除去错误数据以外的数据,根据读取顺序和校验信息生成正确数据,以供读取。数据组中除去错误数据以外的数据均为读出时为正确的基础数据,该错误数据对应的正确数据可以根据基础数据和校验数据通过一定的算法计算得出。
在本发明的一个实施例中,该数据处理方法还包括:在生成校验信息时基于数据组进行并行计算,并将校验信息通过多个校验通道并行存储在与校验通道对应的存储芯片,或对应的数据区中。并行计算可以有效提高生成校验信息的处理速度,而在生成校验信息后并对其进行存储时,可以将其分散存储在多个存储芯片,或多个数据区(可能是不同的存储芯片的多个数据区,也可能时相同存储芯片的多个数据区)中(例如总数为16个存储芯片的其中2个存储芯片中,其余14个存储芯片用来存储数据)。
本发明实施例还提供了一种固态硬盘的数据处理装置1,如图4所示,该数据处理装置1包括写入模块2,校验模块3和读取模块4。
写入模块2配置为接收由多个通道组向固态硬盘写入的数据,形成与通道组相对应的多个数据组,其中通道组包括多个通道,多个通道中包括至少一个校验通道。写入模块2可以将数据通过通道组的形式向固态硬盘进行写入,多个通道组可以同时进行数据的传输,增加了数据的读写效率,固态硬盘可以设置与通道组相对应的缓冲器来接收数据,结合图5例如采用分别为第一通道组、第二通道组、第三通道组和第四通道组这四个通道组为固态硬盘写入数据,而固态硬盘中也设置有四个与之相对照的缓冲器来接收数据。在本实施例中,每个通道组对应一个数据组,可以传送一个数据组的数据,结合上述例子,每个缓冲器可以接收一个数据组的数据。此外,通道组包括多个通道(如4个通道,结合上述例子四个通道组便拥有16个通道),在一个实施例中,每个通道可以对应一个存储芯片来存储数据,进一步的在针对存储芯片进行数据处理时,每个通道也可以对应存储芯片中的一个数据区,也就是说,该数据处理装置可以针对将数据写入到多个存储芯片时使用,也可以针对将数据写入到多个数据区(可能是不同的存储芯片的多个数据区,也可能是相同存储芯片的多个数据区)时使用。当然该数据处理装置也可以针对从多个存储芯片(或多个数据区)中读取数据时使用。多个通道中包括至少一个校验通道,校验通道可以传送校验信息,而校验信息可以用来对发生错误的数据纠错,以将错误数据还原为正确数据。在一个实施例中,一个校验通道也可以对应一个存储芯片或一个数据区,该存储芯片或数据区可以存储经由与之对应的校验通道传送的校验信息。
校验模块3与写入模块2连接,校验模块3配置为基于数据组按照预设校验算法生成校验信息,并通过校验通道存储校验信息。校验算法可以根据实际的读写需求来进行预先设置,例如可以校验模块3对数据组的数据进行异或运算,以生成校验信息,生成的校验信息可以通过校验通道进行存储,如存储在校验通道对应的存储芯片或数据区上,当然校验信息可以分别通过多个校验通道(如2个或2个以上)存储在多个对应的存储芯片或数据区上(如2个或2个以上)。
读取模块4与校验模块3连接,读取模块4配置为当从固态硬盘中读取数据时,根据校验信息和数据组的内容,计算出数据组中的错误数据对应的正确数据,以供读取。获取到正确的数据后,可以对其进行读取操作或其他操作。需要说明的是,由于对固态硬盘读写的数据进行了数据组的划定,传送时可以经由通道组对数据组进行一对一的传送,以对数据组的数据进行规范化处理,因此可以有效的加快纠错效率,提升固态硬盘读写数据的速度。
在本发明的一个实施例中,数据组中包括多个与通道相对应的数据块(结合图5例如对于16个通道可以设置16个数据块与之相对应),需要存储在固态硬盘中的数据可以被分隔为多个数据块,并以数据块为单位进行存储,而数据块可以通过通道进行数据的传送,在一个实施例中,每个数据块可以通过相对应的通道传送并被存储在一个对应的存储芯片或对应的数据区中。校验模块3包括侦测单元;
侦测单元配置为侦测数据块写入固态硬盘的写入顺序,以使校验模块3根据写入顺序按照预设校验算法生成校验信息,并将校验信息存储到校验通道对应的存储芯片(针对多个存储芯片进行数据写入操作),或对应的数据区(针对多个数据区进行数据写入操作)中。数据块的大小和写入复杂程度可能是不同的,因此数据块写入固态硬盘的顺序是不同的,根据侦测单元侦测到的写入顺序可以查询数据块的流向以及与之对应的存储芯片信息等。在一个实施例中,在固态硬盘中写入数据时,校验模块3根据写入顺序按照异或运算等预设校验算法生成校验信息,并将校验信息存储到校验通道对应的存储芯片中或对应的数据区中,该存储芯片或数据区可以只存储校验信息,不存储其他数据。在一个实施例中,结合图5,校验模块3可以将生成的校验信息暂存在静态随机存储器(Parity SRAM)中,再从静态随机存储器将校验信息转存储到对应的存储芯片中或对应的数据区中。
在本发明的一个实施例中,校验模块3进一步配置为当所有的数据块写入后生成校验信息,当非所有的数据块写入则生成相应的条带信息,存储至少一个条带信息,并当所有的数据块写入后,根据条带信息和数据块的内容生成最终的校验信息。所有的数据块写入后说明写入数据的工作已经完成,生成的该校验信息对应了所有数据块,校验模块3具体生成校验信息的过程可以是依次对数据块的内容进行的运算而生成的信息。条带(stripe)是把连续的数据分割成相同大小的数据块,而条带信息是部分数据块写入时生成的部分校验信息。在一个实施例中,结合图5,校验模块3可以将生成的条带信息暂存在静态随机存储器(Parity SRAM)中,待该条带的全部数据都到齐后再从静态随机存储器将条带信息存储到存储芯片中。条带信息是不完整的校验信息,只有当所有的数据块写入后,校验模块3利用条带信息和部分数据块的内容(如生成条带信息之后的才写入固态硬盘的数据块),或者利用条带信息和所有的数据块的内容,生成校验信息。
作为优选,预设校验算法包括按照写入顺序对数据块的内容进行行异或运算和斜纹异或运算,以生成校验信息(如两组)。结合图5,在进行异或运算时,可以使用仲裁器(arbiter)进行仲裁,仲裁器按照一定的算法对多个数据组缓冲器中的数据进行选择,使得各个数据组缓冲器的数据在每个时刻只有一个缓冲器的数据参与检验信息的计算,从而生成校验信息。
在本发明的一个实施例中,读取模块4包括获取单元和转存单元。
获取单元配置为根据校验信息和数据组的内容,获取(如计算出)与错误数据对应的正确数据,并将获取的正确数据存储到恢复数据存储器(Recovery SRAM)中。
转存单元配置为从恢复数据存储器中获取正确数据,并将正确数据存储到外部存储空间中,以供读取。转存单元将正确数据存储到外部存储空间中供SSD控制器的其它模块进行后续处理以达到了将错误数据恢复为正确数据(即纠错)的目的,用户在读取该正确数据时,结合图5,可以通过该固态硬盘控制器的内部CPU,经由系统总线(如AXI总线或AXB总线等)调用,以供用户查看。
在本发明的一个实施例中,数据组中包括多个与通道相对应的数据块,获取单元进一步配置为侦测读取数据块的读取顺序,基于数据组,根据读取顺序和校验信息,获取正确数据。由于存储在固态硬盘中的数据可以以多个数据块的形式存储,获取单元在读取时也会以数据块的形式读取其中的内容,读取数据块的顺序有先后,需要侦测并记录该顺序。在一个实施例中,正确的数据分散的存储在多个存储芯片或多个数据区中,获取单元可以根据读取顺序和校验信息分别从每个存储芯片或多个数据区中读取正确数据的子数据,并形成正确数据。具体在利用校验信息进行计算时,结合图5,可以利用仲裁器(arbiter)针对数据块的内容进行运算,在对所有的数据块的内容计算完成后可以最终获取到正确数据,并将其存储在恢复数据存储器(Recovery SRAM)中。
进一步来说,获取单元进一步配置为根据校验信息的位置确定错误数据(如确定错误数据的存储位置),基于数据组中除去错误数据以外的数据,根据读取顺序和校验信息生成正确数据,以供读取。数据组中除去错误数据以外的数据均为正确的基础数据,该错误数据对应的正确数据可以根据校验信息和正确的基础数据通过一定的算法计算得出,以供读取。
在本发明的一个实施例中,数据处理装置1还包括并行运算模块,并行运算模块与校验模块3连接,并行运算模块配置为在校验模块3生成校验信息时基于数据组进行并行计算,并将校验信息通过多个校验通道并行存储在与校验通道对应的存储芯片,或对应的数据区中。并行运算模块以并行计算可以有效提高生成校验信息的处理速度,而在生成校验信息后并对其进行存储时,可以将其分散存储在多个存储芯片,或多个数据区(可能是不同的存储芯片的多个数据区,也可能时相同存储芯片的多个数据区)中(例如总数为16个存储芯片的其中2个存储芯片中,其余14个存储芯片用来存储数据)。
以上实施例仅为本发明的示例性实施例,不用于限制本发明,本发明的保护范围由权利要求书限定。本领域技术人员可以在本发明的实质和保护范围内,对本发明做出各种修改或等同替换,这种修改或等同替换也应视为落在本发明的保护范围内。
Claims (10)
1.一种固态硬盘的数据处理方法,应用在固态硬盘读写数据的过程中,所述固态硬盘包括多个存储芯片,所述存储芯片具有多个数据区,所述方法包括:
接收由多个通道组向所述固态硬盘写入的数据,形成与所述通道组相对应的多个数据组,其中所述通道组包括多个通道,多个所述通道中包括至少一个校验通道;
基于所述数据组按照预设校验算法生成校验信息,并通过所述校验通道存储所述校验信息;
当从所述固态硬盘中读取数据时,根据所述校验信息和所述数据组的内容,获取所述数据组中的错误数据对应的正确数据,以供读取。
2.根据权利要求1所述的方法,所述数据组中包括多个与所述通道相对应的数据块,所述的基于所述数据组按照预设校验算法生成校验信息,并通过所述校验通道存储所述校验信息包括:
侦测所述数据块写入所述固态硬盘的写入顺序;
根据所述写入顺序按照预设校验算法生成校验信息,将所述校验信息存储到所述校验通道对应的所述存储芯片,或对应的所述数据区中。
3.根据权利要求2所述的方法,所述的根据所述写入顺序按照预设校验算法生成校验信息,将所述校验信息存储到所述校验通道对应的所述存储芯片,或对应的所述数据区中包括:
当所有的所述数据块写入后生成所述校验信息,当非所有的所述数据块写入则生成相应的条带信息;
存储至少一个所述条带信息,当所有的所述数据块写入后,根据所述条带信息和所述数据块的内容生成所述校验信息。
4.根据权利要求1所述的方法,所述的当从所述固态硬盘中读取数据时,根据所述校验信息和所述数据组的内容,获取所述数据组中的错误数据对应的正确数据,以供读取包括:
根据所述校验信息和数据组的内容,获取与所述错误数据对应的正确数据,并将所述正确数据存储到恢复数据存储器中;
从所述恢复数据存储器中获取所述正确数据,并将所述正确数据存储到所述固态硬盘或外部存储空间中,以供读取。
5.根据权利要求4所述的方法,所述数据组中包括多个与所述通道相对应的数据块,所述的根据所述校验信息和数据组的内容,获取与所述错误数据对应的正确数据包括:
侦测读取所述数据块的读取顺序;
基于所述数据组,根据所述读取顺序和校验信息,获取所述正确数据。
6.根据权利要求1所述的方法,所述方法还包括:在生成所述校验信息时基于所述数据组进行并行计算,并将所述校验信息通过多个所述校验通道并行存储在与所述校验通道对应的所述存储芯片,或对应的所述数据区中。
7.一种固态硬盘的数据处理装置,应用在固态硬盘读写数据的过程中,所述固态硬盘包括多个存储芯片,所述存储芯片具有多个数据区,所述装置包括写入模块,校验模块和读取模块;
所述写入模块配置为接收由多个通道组向所述固态硬盘写入的数据,形成与所述通道组相对应的多个数据组,其中所述通道组包括多个通道,多个所述通道中包括至少一个校验通道;
所述校验模块与写入模块连接,所述校验模块配置为基于所述数据组按照预设校验算法生成校验信息,并通过所述校验通道存储所述校验信息;
所述读取模块与校验模块连接,所述读取模块配置为当从所述固态硬盘中读取数据时,根据所述校验信息和所述数据组的内容,获取所述数据组中的错误数据对应的正确数据,以供读取。
8.根据权利要求7所述的装置,所述数据组中包括多个与所述通道相对应的数据块,所述校验模块包括侦测单元;
所述侦测单元配置为侦测所述数据块写入所述固态硬盘的写入顺序,以使所述校验模块根据所述写入顺序按照预设校验算法生成校验信息,并将所述校验信息存储到所述校验通道对应的所述存储芯片,或对应的所述数据区中。
9.根据权利要求7所述的装置,所述读取模块包括获取单元和转存单元;
所述获取单元配置为根据所述校验信息和数据组的内容,获取与所述错误数据对应的正确数据,并将所述正确数据存储到恢复数据存储器中;
所述转存单元配置为从所述恢复数据存储器中获取所述正确数据,并将所述正确数据存储到所述固态硬盘或外部存储空间中,以供读取。
10.根据权利要求9所述的装置,所述数据组中包括多个与所述通道相对应的数据块,所述获取单元进一步配置为侦测读取所述数据块的读取顺序,基于所述数据组,根据所述读取顺序和校验信息,获取所述正确数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338703.5A CN108108263B (zh) | 2017-12-14 | 2017-12-14 | 一种固态硬盘的数据处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711338703.5A CN108108263B (zh) | 2017-12-14 | 2017-12-14 | 一种固态硬盘的数据处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108108263A true CN108108263A (zh) | 2018-06-01 |
CN108108263B CN108108263B (zh) | 2020-11-20 |
Family
ID=62215954
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711338703.5A Active CN108108263B (zh) | 2017-12-14 | 2017-12-14 | 一种固态硬盘的数据处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108108263B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753369A (zh) * | 2018-12-28 | 2019-05-14 | 上海微阱电子科技有限公司 | 一种寄存器及内存中顺序数组的数据编码及校验方法 |
CN111176883A (zh) * | 2019-12-24 | 2020-05-19 | 中山大学 | 基于纠删码的闪存固态盘数据主动重构方法及读取方法 |
CN111247516A (zh) * | 2019-03-11 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 一种电路结构、系统级芯片SoC、处理数据的方法 |
CN116524992A (zh) * | 2023-06-29 | 2023-08-01 | 上海飞斯信息科技有限公司 | 大容量高速固态存储器容量管理系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101570A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
CN101772807A (zh) * | 2007-08-08 | 2010-07-07 | 英特尔公司 | 在多通道大容量存储装置中的ecc功能块布局 |
CN101840364A (zh) * | 2010-01-29 | 2010-09-22 | 成都市华为赛门铁克科技有限公司 | 一种恢复数据的方法及存储装置 |
CN101976177A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直型分组并行集中校验的磁盘阵列的构建方法 |
CN104461383A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 一种独立磁盘冗余阵列的实现方法及装置 |
CN104516679A (zh) * | 2013-09-30 | 2015-04-15 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
CN104991738A (zh) * | 2015-06-19 | 2015-10-21 | 华中科技大学 | 一种固态盘及其读写操作方法 |
US20160371012A1 (en) * | 2015-06-22 | 2016-12-22 | Samsung Electronics Co., Ltd. | Data storage device and data processing system including same |
-
2017
- 2017-12-14 CN CN201711338703.5A patent/CN108108263B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101101570A (zh) * | 2007-06-28 | 2008-01-09 | 忆正存储技术(深圳)有限公司 | 基于多通道闪存设备逻辑条带的控制方法 |
CN101772807A (zh) * | 2007-08-08 | 2010-07-07 | 英特尔公司 | 在多通道大容量存储装置中的ecc功能块布局 |
CN101840364A (zh) * | 2010-01-29 | 2010-09-22 | 成都市华为赛门铁克科技有限公司 | 一种恢复数据的方法及存储装置 |
CN101976177A (zh) * | 2010-08-19 | 2011-02-16 | 北京同有飞骥科技有限公司 | 一种垂直型分组并行集中校验的磁盘阵列的构建方法 |
CN104516679A (zh) * | 2013-09-30 | 2015-04-15 | 杭州宏杉科技有限公司 | 一种raid数据处理方法及装置 |
CN104461383A (zh) * | 2014-11-28 | 2015-03-25 | 华为技术有限公司 | 一种独立磁盘冗余阵列的实现方法及装置 |
CN104991738A (zh) * | 2015-06-19 | 2015-10-21 | 华中科技大学 | 一种固态盘及其读写操作方法 |
US20160371012A1 (en) * | 2015-06-22 | 2016-12-22 | Samsung Electronics Co., Ltd. | Data storage device and data processing system including same |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753369A (zh) * | 2018-12-28 | 2019-05-14 | 上海微阱电子科技有限公司 | 一种寄存器及内存中顺序数组的数据编码及校验方法 |
CN109753369B (zh) * | 2018-12-28 | 2023-10-24 | 上海微阱电子科技有限公司 | 一种寄存器及内存中顺序数组的数据编码及校验方法 |
CN111247516A (zh) * | 2019-03-11 | 2020-06-05 | 深圳市大疆创新科技有限公司 | 一种电路结构、系统级芯片SoC、处理数据的方法 |
CN111176883A (zh) * | 2019-12-24 | 2020-05-19 | 中山大学 | 基于纠删码的闪存固态盘数据主动重构方法及读取方法 |
CN111176883B (zh) * | 2019-12-24 | 2022-05-20 | 中山大学 | 基于纠删码的闪存固态盘数据主动重构方法及读取方法 |
CN116524992A (zh) * | 2023-06-29 | 2023-08-01 | 上海飞斯信息科技有限公司 | 大容量高速固态存储器容量管理系统 |
CN116524992B (zh) * | 2023-06-29 | 2023-09-15 | 上海飞斯信息科技有限公司 | 大容量高速固态存储器容量管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108108263B (zh) | 2020-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108108263A (zh) | 一种固态硬盘的数据处理方法及装置 | |
CN103473146B (zh) | 存储器控制方法、存储器控制器以及电子装置 | |
CN107391026B (zh) | 闪存装置及闪存存储管理方法 | |
CN107403646B (zh) | 闪存装置及闪存存储管理方法 | |
CN104798047B (zh) | 错误检测和校正装置及方法 | |
CN104246708B (zh) | 针对nand闪存上数据的存储的架构 | |
CN103577275B (zh) | 一种数据校验的方法、设备和系统 | |
US20090282305A1 (en) | Storage system with data recovery function and method thereof | |
CN101692351B (zh) | 存储器测试方法及装置 | |
CN108154904A (zh) | 一种存储芯片性能的测试方法和装置 | |
CN110111832A (zh) | 半导体存储器装置及其操作方法 | |
CN107918571A (zh) | 测试储存单元的方法以及使用该方法的装置 | |
CN106874140A (zh) | 数据存储方法及装置 | |
CN109582494A (zh) | 使用内部存储器设备代码的存储器控制器错误校验过程 | |
CN103744744B (zh) | 数据储存装置以及易失性存储器的数据校验方法 | |
TW202343265A (zh) | 快閃記憶體裝置、快閃記憶體控制器及快閃記憶體儲存管理方法 | |
CN105808378B (zh) | 元数据修复方法及装置 | |
US7401269B2 (en) | Systems and methods for scripting data errors to facilitate verification of error detection or correction code functionality | |
CN108228381A (zh) | 存储系统及其错误校正方法 | |
CN103793032B (zh) | 用于确定上电复位的方法和装置 | |
CN107943605A (zh) | 一种存储卡处理方法及装置 | |
US20230317196A1 (en) | Command/address channel error detection | |
CN113419688B (zh) | 一种mlc芯片的错误率分析方法、系统及装置 | |
CN108021467A (zh) | 一种存储器容错保护方法、装置、设备及存储介质 | |
CN109542671A (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 |