一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

存储装置及其控制方法、控制电路单元与流程

2021-08-24 16:08:00 来源:中国专利 TAG:
本申请涉及存储
技术领域
:,具体涉及存储装置及其控制方法、控制电路单元。
背景技术
::nand闪存在生产和使用中都会有坏块产生,因此引入了ecc(errorcorrectingcode),如果存储块产生错误,且能够被ecc纠正,那么这个块都不算坏块;但如果连ecc都纠正不过来,这个块就无法再继续使用,只能标记为坏块。因此ecc的纠错能力成为存储装置存储空间使用效率提高的一个重要因素。技术实现要素:鉴于此,本申请提供一种存储装置及其控制方法、控制电路单元,通过本申请所提供的存储装置的控制方法,可以提高存储装置ecc的纠错能力,具体为:一种存储装置的控制电路单元,所述存储装置包括可复写式非易失性存储模块,所述可复写式非易失性存储模块包括多个实体抹除单元,所述多个实体抹除单元分别包括多个实体程序化单元,所述实体程序化单元存储有第一存储数据,所述第一存储数据包括用户数据和第一磁盘阵列错误校正码和/或错误检查码,所述第一磁盘阵列错误校正码和/或错误检查码由本单元纠错码串码根据所述用户数据生成;所述控制电路单元还用于定义虚拟程序化单元,所述虚拟程序化单元存储有由所述多个实体程序化单元的第一存储数据构成的第二存储数据,所述第二存储数据包括实体程序化数据和第二磁盘阵列错误校正码和/或错误检查码;根据所述虚拟程序化单元内的实体程序化数据,所述控制电路单元利用跨单元纠错码生成所述第二磁盘阵列错误校正码和/或错误检查码并将其存储于所述实体程序化单元。更进一步地,所述本单元纠错码串码为包含bch的纠错码串码。更进一步地,所述包含bch的纠错码串码包括bch-crc串码。更进一步地,所述本单元纠错码串码为包含ldpc的纠错码串码。更进一步地,所述包含ldpc的纠错码串码包括:ldpc-bch串码、ldpc-crc串码、ldpc-bch-bch串码、ldpc-bch-crc串码。更进一步地,所述跨单元纠错码为xor、reed-solomon、bch、crc、卷积码和turbo中的至少一种纠错码。更进一步地,所述跨页纠错码为reed-solomon-xor串码、bch-xor串码、bch-reed-solomon串码。一种存储装置的控制方法,所述方法包括:提供一存储装置,所述存储装置包括可复写式非易失性存储模块,所述可复写式非易失性存储模块包括多个实体抹除单元,所述多个实体抹除单元分别包括多个实体程序化单元,所述实体程序化单元存储有第一存储数据,所述第一存储数据包括用户数据和第一磁盘阵列错误校正码和/或错误检查码,所述第一磁盘阵列错误校正码和/或错误检查码由本单元纠错码串码根据所述用户数据生成;定义虚拟程序化单元,所述虚拟程序化单元存储有由所述多个实体程序化单元的第一存储数据构成的第二存储数据,所述第二存储数据包括实体程序化数据和第二磁盘阵列错误校正码和/或错误检查码;利用跨单元纠错码根据所述虚拟程序化单元内的实体程序化数据生成所述第二磁盘阵列错误校正码和/或错误检查码并将其存储于所述实体程序化单元。更进一步地,所述本单元纠错码串码包括bch-crc串码。更进一步地,所述本单元纠错码串码包括:ldpc-bch串码、ldpc-crc串码、ldpc-bch-bch串码、ldpc-bch-crc串码。更进一步地,所述跨单元纠错码为xor、reed-solomon、bch、crc中的至少一种纠错码。一种存储装置,所述存储装置包括上述任一项所述的控制电路单元,或者运行如上述任一项所述的控制方法。本申请通过在本实体程序化单元以及虚拟程序化单元使用不同的本单元纠错码串码以及跨单元纠错码进行存储装置的数据校正,进而使得可以提高存储装置的纠错能力,提高存储装置的空间使用效率和存储装置的使用寿命。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是根据本发明的一实施例所示出的主机系统、存储器存储装置及输入/输出(i/o)装置的示意图;图2是根据本发明的另一实施例所示出的主机系统、存储器存储装置及i/o装置的示意图;图3是根据本发明的另一实施例所示出的主机系统与存储器存储装置的示意图;图4是根据本发明的一实施例所示出的存储器存储装置的概要方块图;图5是根据本发明的一实施例所示出的存储器控制电路单元的概要方块图;图6是根据本发明的一实施例所示出的多框架编码的示意图;图7是根据本发明的一实施例所示出的第一种实体程序化单元编码示意图;图8是根据本发明的一实施例所示出的第二种实体程序化单元编码示意图;图9是根据本发明的一实施例所示出的第三种实体程序化单元编码示意图;图10是根据本发明的一实施例所示出的第四种实体程序化单元编码示意图;图11是根据本发明的一实施例所示出的第五种实体程序化单元编码示意图;图12是根据本发明的一实施例所示出的第六种实体程序化单元编码示意图;图13是根据本发明的一实施例所示出的存储装置的控制方法流程示意图。具体实施方式下面结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在不冲突的情况下,下述各个实施例及其技术特征可以相互组合。一般而言,存储装置(也称,存储器存储系统)包括可复写式非易失性存储器模块(rewritablenon-volatilememorymodule)与控制器(也称,控制电路)。通常存储装置是与主机系统一起使用,以使主机系统可将数据写入至存储装置或从存储装置中读取数据。图1是根据本发明的一实施例所示出的主机系统、存储装置及输入/输出(i/o)装置的示意图。图2是根据本发明的另一范例实施例所示出的主机系统、存储装置及i/o装置的示意图。请参照图1与图2,主机系统11一般包括处理器111、随机存取存储器(randomaccessmemory,ram)112、只读存储器(readonlymemory,rom)113及数据传输接口114。处理器111、随机存取存储器112、只读存储器113及数据传输接口114皆电性连接至系统总线(systembus)110。在本范例实施例中,主机系统11是通过数据传输接口114与存储装置10电性连接。例如,主机系统11可经由数据传输接口114将数据存储至存储装置10或从存储装置10中读取数据。此外,主机系统11是通过系统总线110与i/o装置12电性连接。例如,主机系统11可经由系统总线110将输出信号传送至i/o装置12或从i/o装置12接收输入信号。在本范例实施例中,处理器111、随机存取存储器112、只读存储器113及数据传输接口114可设置在主机系统11的主机板20上。数据传输接口114的数目可以是一或多个。通过数据传输接口114,主机板20可以经由有线或无线方式电性连接至存储装置10。存储装置10可例如是随身盘201、存储卡202、固态硬盘(solidstatedrive,ssd)203或无线存储装置204。无线存储装置204可例如是近距离无线通讯(nearfieldcommunication,nfc)存储装置、无线传真(wifi)存储装置、蓝牙(bluetooth)存储装置或低功耗蓝牙存储装置(例如,ibeacon)等以各式无线通讯技术为基础的存储装置。此外,主机板20也可以通过系统总线110电性连接至全球定位系统(globalpositioningsystem,gps)模块205、网络接口卡206、无线传输装置207、键盘208、屏幕209、喇叭210等各式i/o装置。例如,在一范例实施例中,主机板20可通过无线传输装置207存取无线存储装置204。在一范例实施例中,所提及的主机系统为可实质地与存储装置配合以存储数据的任意系统。虽然在上述范例实施例中,主机系统是以电脑系统来说明,然而,图3是根据本发明的另一范例实施例所示出的主机系统与存储装置的示意图。请参照图3,在另一范例实施例中,主机系统31也可以是数字相机、摄影机、通讯装置、音频播放器、视频播放器或平板电脑等系统,而存储装置30可为其所使用的安全数字(securedigital,sd)卡32、小型快闪(compactflash,cf)卡33或嵌入式存储装置34等各式非易失性存储装置。嵌入式存储装置34包括嵌入式多媒体卡(embeddedmultimediacard,emmc)341和/或嵌入式多芯片封装(embeddedmultichippackage,emcp)存储装置342等各类型将存储器模块直接电性连接于主机系统的基板上的嵌入式存储装置。图4是根据本发明的一范例实施例所示出的存储装置的概要方块图。请参照图4,存储装置10包括连接接口单元402、存储器控制电路单元404与可复写式非易失性存储器模块406。连接接口单元402用以将存储装置10电性连接至主机系统11。在本范例实施例中,连接接口单元402是相容于串行高级附件(serialadvancedtechnologyattachment,sata)标准。然而,必须了解的是,本发明不限于此,连接接口单元402也可以是符合并行高级附件(paralleladvancedtechnologyattachment,pata)标准、电气和电子工程师协会(instituteofelectricalandelectronicengineers,ieee)1394标准、高速周边零件连接接口(peripheralcomponentinterconnectexpress,pciexpress)标准、通用串行总线(universalserialbus,usb)标准、sd接口标准、超高速一代(ultrahighspeed-i,uhs-i)接口标准、超高速二代(ultrahighspeed-ii,uhs-ii)接口标准、记忆棒(memorystick,ms)接口标准、mcp接口标准、mmc接口标准、emmc接口标准、通用快闪存储器(universalflashstorage,ufs)接口标准、emcp接口标准、cf接口标准、整合式驱动电子接口(integrateddeviceelectronics,ide)标准或其他适合的标准。连接接口单元402可与存储器控制电路单元404封装在一个芯片中,或者连接接口单元402是布设于一包含存储器控制电路单元404的芯片外。存储器控制电路单元404用以执行以硬件型式或固件型式实作的多个逻辑闸或控制指令并且根据主机系统11的指令在可复写式非易失性存储器模块406中进行数据的写入、读取与抹除等运作。可复写式非易失性存储器模块406是电性连接至存储器控制电路单元404并且用以存储主机系统11所写入的数据。可复写式非易失性存储器模块406可以是单阶存储单元(singlelevelcell,slc)nand型快闪存储器模块(即,一个存储单元中可存储1个比特的快闪存储器模块)、多阶存储单元(multilevelcell,mlc)nand型快闪存储器模块(即,一个存储单元中可存储2个比特的快闪存储器模块)、复数阶存储单元(triplelevelcell,tlc)nand型快闪存储器模块(即,一个存储单元中可存储3个比特的快闪存储器模块)、其他快闪存储器模块或其他具有相同特性的存储器模块。可复写式非易失性存储器模块406中的每一个存储单元是以电压(以下也称为临界电压)的改变来存储一或多个比特。具体来说,每一个存储单元的控制栅极(controlgate)与通道之间有一个电荷捕捉层。通过施予一写入电压至控制栅极,可以改变电荷补捉层的电子量,进而改变存储单元的临界电压。此改变存储单元的临界电压的操作也称为“把数据写入至存储单元”或“程序化(programming)存储单元”。随着临界电压的改变,可复写式非易失性存储器模块406中的每一个存储单元具有多个存储状态。通过施予读取电压可以判断一个存储单元是属于哪一个存储状态,藉此取得此存储单元所存储的一或多个比特。在本范例实施例中,可复写式非易失性存储器模块406的存储单元会构成多个实体程序化单元,并且该实体程序化单元会构成多个实体抹除单元。具体来说,同一条字线上的存储单元会组成一或多个实体程序化单元。若每一个存储单元可存储2个以上的比特,则同一条字线上的实体程序化单元至少可被分类为下实体程序化单元与上实体程序化单元。例如,一存储单元的最低有效位(leastsignificantbit,lsb)是属于下实体程序化单元,并且一存储单元的最高有效位(mostsignificantbit,msb)是属于上实体程序化单元。一般来说,在mlcnand型快闪存储器中,下实体程序化单元的写入速度会大于上实体程序化单元的写入速度,和/或下实体程序化单元的可靠度是高于上实体程序化单元的可靠度。在本范例实施例中,实体程序化单元可以为程序化的最小单元。即,实体程序化单元为写入数据的最小单元。例如,实体程序化单元为实体页面(page)或是实体扇(sector)。若实体程序化单元为实体页面,则该实体程序化单元通常包括数据比特区与冗余(redundancy)比特区。数据比特区包含多个实体扇,用以存储使用者数据,而冗余比特区用以存储系统数据,例如,错误校正码等管理数据。在本范例实施例中,数据比特区包含32个实体扇,且一个实体扇的大小为512字节(byte,b)。然而,在其他范例实施例中,数据比特区中也可包含8个、16个或数目更多或更少的实体扇,并且每一个实体扇的大小也可以是更大或更小。另一方面,实体抹除单元为抹除的最小单位。亦即,每一实体抹除单元含有最小数目的一并被抹除的存储单元。例如,实体抹除单元为实体区块(block)。图5是根据本发明的一范例实施例所示出的存储器控制电路单元的概要方块图。请参照图5,存储器控制电路单元404包括存储器管理电路502、主机接口504及存储器接口506。存储器管理电路502用以控制存储器控制电路单元404的整体运作。具体来说,存储器管理电路502具有多个控制指令,并且在存储装置10运作时,这些控制指令会被执行以进行数据的写入、读取与抹除等运作。以下说明存储器管理电路502的操作时,等同于说明存储器控制电路单元404的操作。在本范例实施例中,存储器管理电路502的控制指令是以固件型式来实作。例如,存储器管理电路502具有微处理器单元(未示出)与只读存储器(未示出),并且此些控制指令是被烧录至此只读存储器中。当存储装置10运作时,此些控制指令会由微处理器单元来执行以进行数据的写入、读取与抹除等运作。在另一范例实施例中,存储器管理电路502的控制指令也可以程序码型式存储于可复写式非易失性存储器模块406的特定区域(例如,存储器模块中专用于存放系统数据的系统区)中。此外,存储器管理电路502具有微处理器单元(未示出)、只读存储器(未示出)及随机存取存储器(未示出)。特别是,此只读存储器具有开机码(bootcode),并且当存储器控制电路单元404被致能时,微处理器单元会先执行此开机码来将存储于可复写式非易失性存储器模块406中的控制指令载入至存储器管理电路502的随机存取存储器中。之后,微处理器单元会运转这些控制指令以进行数据的写入、读取与抹除等运作。此外,在另一范例实施例中,存储器管理电路502的控制指令也可以一硬件型式来实作。例如,存储器管理电路502包括微控制器、存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路。存储单元管理电路、存储器写入电路、存储器读取电路、存储器抹除电路与数据处理电路是电性连接至微控制器。存储单元管理电路用以管理可复写式非易失性存储器模块406的存储单元或其群组。存储器写入电路用以对可复写式非易失性存储器模块406下达写入指令序列以将数据写入至可复写式非易失性存储器模块406中。存储器读取电路用以对可复写式非易失性存储器模块406下达读取指令序列以从可复写式非易失性存储器模块406中读取数据。存储器抹除电路用以对可复写式非易失性存储器模块406下达抹除指令序列以将数据从可复写式非易失性存储器模块406中抹除。数据处理电路用以处理欲写入至可复写式非易失性存储器模块406的数据以及从可复写式非易失性存储器模块406中读取的数据。写入指令序列、读取指令序列及抹除指令序列可分别包括一或多个程序码或指令码并且用以指示可复写式非易失性存储器模块406执行相对应的写入、读取及抹除等操作。在一范例实施例中,存储器管理电路502还可以下达其他类型的指令序列给可复写式非易失性存储器模块406以指示执行相对应的操作。主机接口504是电性连接至存储器管理电路502并且用以接收与识别主机系统11所传送的指令与数据。也就是说,主机系统11所传送的指令与数据会通过主机接口504来传送至存储器管理电路502。在本范例实施例中,主机接口504是相容于sata标准。然而,必须了解的是本发明不限于此,主机接口504也可以是相容于pata标准、ieee1394标准、pciexpress标准、usb标准、sd标准、uhs-i标准、uhs-ii标准、ms标准、mmc标准、emmc标准、ufs标准、cf标准、ide标准或其他适合的数据传输标准。存储器接口506是电性连接至存储器管理电路502并且用以存取可复写式非易失性存储器模块406。也就是说,欲写入至可复写式非易失性存储器模块406的数据会经由存储器接口506转换为可复写式非易失性存储器模块406所能接受的格式。具体来说,若存储器管理电路502要存取可复写式非易失性存储器模块406,存储器接口506会传送对应的指令序列。例如,这些指令序列可包括指示写入数据的写入指令序列、指示读取数据的读取指令序列、指示抹除数据的抹除指令序列、以及用以指示各种存储器操作(例如,改变读取电压电平或执行垃圾回收操作等等)的相对应的指令序列。这些指令序列例如是由存储器管理电路502产生并且通过存储器接口506传送至可复写式非易失性存储器模块406。这些指令序列可包括一或多个信号,或是在总线上的数据。这些信号或数据可包括指令码或程序码。例如,在读取指令序列中,会包括读取的识别码、存储器地址等信息。在一范例实施例中,存储器控制电路单元404还包括缓冲存储器510、错误检查与校正电路508与电源管理电路512。缓冲存储器510是电性连接至存储器管理电路502并且用以暂存来自于主机系统11的数据与指令或来自于可复写式非易失性存储器模块406的数据。电源管理电路512是电性连接至存储器管理电路502并且用以控制存储装置10的电源。错误检查与校正电路508是电性连接至存储器管理电路502并且用以执行错误检查与校正操作以确保数据的正确性。具体来说,当存储器管理电路502从主机系统11中接收到写入指令时,错误检查与校正电路508会为对应此写入指令的数据产生对应的错误校正码(errorcorrectingcode,ecc)和/或错误检查码(errordetectingcode,edc),并且存储器管理电路502会将对应此写入指令的数据与对应的错误校正码和/或错误检查码写入至可复写式非易失性存储器模块406中。之后,当存储器管理电路502从可复写式非易失性存储器模块406中读取数据时会同时读取此数据对应的错误校正码和/或错误检查码,并且错误检查与校正电路508会依据此错误校正码和/或错误检查码对所读取的数据执行错误检查与校正操作。在本范例实施例中,存储器控制电路单元404可以针对存储于同一个实体程序化单元中的数据进行单框架(single-frame)编码,也可以针对存储于多个实体程序化单元中的数据进行多框架(multi-frame)编码。根据所采用的编码算法,存储器控制电路单元404可以编码欲保护的数据来产生相对应的错误更正码和/或错误检查码。为了说明方便,以下将经由编码产生的错误更正码和/或错误检查码统称为编码数据。图6是根据本发明的一范例实施例所示出的多框架编码的示意图。请参照图6,以编码实体程序化单元810(0)~810(e)所存储的第一存储数据为例,第一存储数据可以包括用户数据和第一磁盘阵列错误纠正码和/或错误检查码,实体程序化单元810(0)~810(e)中的每一者所存储的至少部分数据可视为一个框架,当采用单框架编码时,可以仅采用本单元纠错码串码根据实体程序化单元810(0)的用户数据801(1)~801(r-1),进行编码来产生相对应的第一磁盘阵列错误纠正码和/或错误检查码801(r),而该第一磁盘阵列错误纠正码和/或错误检查码801(r)则可以保存在该实体程序化单元810(0),或者保存于可复写式非易失性存储模块的其他实体程序化单元。在多框架编码中,则以每一个比特(或,字节)所在的位置为依据来对实体程序化单元810(0)~810(e)中的数据进行编码。例如,位于位置801(1)的比特b11、b21、…、bp1会被利用跨单元纠错码编码为第一磁盘阵列错误纠正码和/或错误检查码中的比特bo1,此时,位于801(1)的比特b11、b21、…、bp1和比特bo1则形成一个虚拟程序化单元811;位于位置801(2)的比特b12、b22、…、bp2会被利用跨单元纠错码编码为第一磁盘阵列错误纠正码和/或错误检查码中的比特bo2,此时,位于位置801(2)的比特b12、b22、…、bp2和比特bo2则形成第二个虚拟程序化单元812;以此类推,位于位置801(r)的比特b1r、b2r、…、bpr会被利用跨单元纠错码编码为第一磁盘阵列错误纠正码和/或错误检查码中的比特bor,并形成第r个虚拟程序化单元81r。在以上的各个虚拟程序化单元中,可以包括存储有由所述多个实体程序化单元的第一存储数据构成的第二存储数据,而第二存储数据则可以包括来自于多个实体程序化单元位置801(1)上的实体程序化数据b11、b21、…、bp1以及第二磁盘阵列错误校正码和/或错误检查码bo1。值得注意的是,上述各个虚拟程序化单元可由来自于不同管芯的不同存储块的实体程序化单元构成,虚拟程序化单元的构成并不对实体程序化单元的位置具有限制。此外,本单元纠错码串码可以为包含bch的纠错码串码,或者包含ldpc的纠错码串码,本单元纠错码串码为多个纠错码的串级使用,用以提高纠错码的纠错能力。当采用包含bch的纠错码串码的本单元纠错码串码时,可以采用bch-crc串码或者bch-汉明串码。当采用包含ldpc的纠错码串码时,可以采用:ldpc-bch串码、ldpc-汉明串码、ldpc-crc串码、ldpc-bch-bch串码、ldpc-bch-crc串码等多种串码。参见图7,当本单元纠错码串码采用bch-crc串码时,本实体程序化单元的用户数据801(1)~801(r-1)作为待编码数据确定crc检验位,生成crc码,然后再利用bch编码对crc码进行bch编码,获得bch码,已获得第一磁盘阵列错误校正码和/或错误检查码。相对应的,在解码过程中,先将bch码进行译码以获得bch译码数据,然后再对bch译码数据进行crc译码,获得crc译码数据和crc校验结果,crc校验结果用于判断bch译码数据中是否存在错误数据,通过crc校验及时检测和判断待bch解码的数据中的数据错误量是否溢出了bch码纠错能力,保证了输出数据的可靠性。参见图8,当本单元纠错码串码采用ldpc-bch串码时,可以先根据本实体程序化单元的用户数据801(1)~801(r-1)作为待编码数据确定ldpc校验位,生成ldpc码,ldpc码包括用户数据和ldpc校验位,然后再根据ldpc码确定bch校验位,生成bch码,bch码包括ldpc码和bch校验位。或者参见图9,当本单元纠错码串码采用ldpc-crc串码时,则可以先根据本实体程序化单元的用户数据作为待编码数据确定crc校验位,生成crc码,crc码包括用户数据和crc校验位,然后再根据crc码确定低密度奇偶校验ldpc校验位,生成ldpc码,ldpc码包括crc码和ldpc校验位。作为一种可选的实施方式,本单元纠错码串码还可以采用三重串码,以提高纠错码的纠错能力。例如,参见图10,当采用ldpc-bch-bch串码时,可以先根据本实体程序化单元的用户数据作为待编码数据确定第一bch校验位,生成第一bch码,第一bch码包括用户数据和第一bch校验位,然后再根据第一bch码确定第二bch校验位,生成第二bch码,第二bch码包括第一bch码和第二bch校验位,最后再根据第二bch码确定低密度奇偶校验ldpc校验位,生成ldpc码,ldpc码包括第二bch码和ldpc校验位。参见图11,当本单元纠错码串码采用ldpc-bch-crc串码时,则可以先根据本实体程序化单元的用户数据作为待编码数据确定ldpc校验位,生成ldpc码,ldpc码包括用户数据和ldpc校验位,然后再根据ldpc码确定循环冗余校验bch校验位,生成bch码,bch码包括ldpc码和bch校验位,最后再根据bch码确定低密度奇偶校验crc校验位,生成crc码,crc码包括bch码和crc校验位;或者,参见图12,可以先根据本实体程序化单元的用户数据作为待编码数据确定bch校验位,生成bch码,bch码包括用户数据和bch校验位,然后再根据bch码确定循环冗余校验crc校验位,生成crc码,crc码包括bch码和crc校验位,最后再根据crc码确定低密度奇偶校验ldpc校验位,生成ldpc码,ldpc码包括crc码和ldpc校验位。利用上述多重纠错码串码,可以实现了对用户数据的三重编码,提高了纠错码的纠错能力,降低了数据存储时的误码率。在本实施例中,跨单元纠错码可以是xor、reed-solomon、bch、crc中的至少一种纠错码,或者是reed-solomon-xor串码或者bch-xor串码等二重纠错码串码。当跨单元纠错码使用xor编码时,实体程序化单元810(0)~810(e)在写入完成之后,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行xor编码,生成xor码作为第二磁盘阵列错误校正码。当跨单元纠错码使用reed-solomon编码时,实体程序化单元810(0)~810(e)在写入完成之后,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行reed-solomon编码并形成reed-solomon检验位,生成reed-solomon码作为第二磁盘阵列错误校正码。当跨单元纠错码使用bch编码时,实体程序化单元810(0)~810(e)在写入完成之后,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行bch编码并形成bch检验位,生成bch码作为第二磁盘阵列错误校正码。当跨单元纠错码使用crc编码时,实体程序化单元810(0)~810(e)在写入完成之后,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行crc编码并形成crc检验位,生成crc码作为第二磁盘阵列错误校正码。作为一种可选的实施方式,跨单元纠错码reed-solomon-xor串码、bch-reed-solomon串码或者bch-xor串码等二重纠错码串码,以提高纠错码的纠错能力。当跨单元纠错码采用reed-solomon-xor串码时,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行xor编码,生成xor码,xor码包括实体程序化数据编码之后的数据,然后再根据xor码确定reed-solomon校验位,生成reed-solomon码,reed-solomon码包括xor码和reed-solomon校验位,最后生成reed-solomon码作为第二磁盘阵列错误校正码和/或错误检查码。参见图11,当跨单元纠错码采用bch-reed-solomon串码时,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行bch编码,以确定bch校验位,生成bch码,bch码包括实体程序化数据和bch校验位,然后再根据bch码确定reed-solomon校验位,生成reed-solomon码,reed-solomon码包括bch码和reed-solomon校验位,最后生成reed-solomon码作为第二磁盘阵列错误校正码和/或错误检查码。当跨单元纠错码采用bch-xor串码时,跨单元纠错码则分别根据各个虚拟程序化单元811的实体程序化数据进行xor编码,生成xor码,xor码包括实体程序化数据编码之后的数据,然后再根据xor码确定bch校验位,生成bch码,bch码包括xor码和bch校验位,最后生成bch码作为第二磁盘阵列错误校正码和/或错误检查码。显而易见的是,以上本单元纠错码串码、跨单元纠错码串码可以分别进行组合使用,既任一种上述的本单元纠错码串码与任一种上述的跨单元纠错码串码都可以相互组合使用在某一个存储装置中,得以实现较佳的纠错,对此,本处不做具体限定。在对以上数据进行编码完成之后,则可以根据第一和第二磁盘阵列错误校正码和/或错误检查码(以下称为编码数据820)对从实体程序化单元810(0)~810(e)中读取的数据进行解码,以尝试更正所读取的数据中可能存在的错误。此外,在图6的另一范例实施例中,用于产生编码数据820的数据也可能包括实体程序化单元810(0)~810(e)所存储的数据中的数据比特(databits)所对应的冗余比特(redundancybits)。以实体程序化单元810(0)所存储的数据为例,其中的冗余比特例如是对存储于实体程序化单元810(0)中的数据比特进行单框架编码而产生的。在本范例实施例中,假设在读取实体程序化单元810(0)中的数据时,从实体程序化单元810(0)中读取出的数据可以先使用实体程序化单元810(0)中的冗余比特(例如,单框架编码的编码数据)来解码以进行错误检测与更正。然而,当使用实体程序化单元810(0)中的冗余比特进行解码发生失败(例如,解码后实体程序化单元810(0)中所存储的数据的错误比特数大于一门槛值)时,可以使用重新读取(retry-read)机制尝试从实体程序化单元810(0)中读取出正确的数据。而当无法通过重新读取(retry-read)机制从实体程序化单元810(0)中读取出正确的数据时,可以读取编码数据820以及实体程序化单元810(1)~810(e)的数据,并根据编码数据820以及实体程序化单元810(1)~810(e)的数据进行解码,以尝试更正实体程序化单元810(0)中所存储的数据中存在的错误。也就是说,在本范例实施例中,当使用单框架编码产生的编码数据进行解码发生失败以及使用重新读取(retry-read)机制进行读取发生失败时,会改用多框架编码产生的编码数据进行解码。本发明实施例还提供一种存储装置的控制方法,如图13所述,该控制方法可以包括以下步骤:步骤1401:提供一存储装置,所述存储装置包括可复写式非易失性存储模块,所述可复写式非易失性存储模块包括多个实体抹除单元,所述多个实体抹除单元分别包括多个实体程序化单元,所述实体程序化单元存储有第一存储数据,所述存储数据包括用户数据和第一磁盘阵列错误校正码和/或错误检查码,所述第一磁盘阵列错误校正码和/或错误检查码由本单元纠错码串码根据所述用户数据生成。步骤1402:定义虚拟程序化单元,所述虚拟程序化单元存储有由所述多个实体程序化单元的第一存储数据构成的第二存储数据,所述第二存储数据包括实体程序化数据和第二磁盘阵列错误校正码和/或错误检查码。步骤1403:利用跨单元纠错码根据所述虚拟程序化单元内的实体程序化数据生成所述第二磁盘阵列错误校正码和/或错误检查码。步骤1404:将所述第二磁盘阵列错误校正码和/或错误检查码存储于所述实体程序化单元。在本实施例中所提供的存储装置的控制方法,可利用上述实施例中的控制电路单元得以实现,相关步骤的具体说明可参见上述实施例,本处不再赘述,但值得注意的是,本方法还可以通过计算机软件等得以实现,对此本处并不进行限定。本申请还提供一种存储装置,该存储装置包括上述实施例的控制电路单元,或者可以运行上述实施例的控制方法,得以实现纠错码纠错能力的提高,相关说明可参见上述各实施例,本处不再赘述。以上所述仅为本申请的实施例,并非因此限制本申请的专利范围,任何所属
技术领域
:中的技术人员,在不脱离本发明的精神和范围内,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,例如各实施例之间技术特征的相互结合,或直接或间接运用在其他相关的
技术领域
:,均同理包括在本申请的专利保护范围内。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献

  • 日榜
  • 周榜
  • 月榜