CN104756092A - 记录再生装置、错误订正方法以及控制装置 - Google Patents

记录再生装置、错误订正方法以及控制装置 Download PDF

Info

Publication number
CN104756092A
CN104756092A CN201280076374.0A CN201280076374A CN104756092A CN 104756092 A CN104756092 A CN 104756092A CN 201280076374 A CN201280076374 A CN 201280076374A CN 104756092 A CN104756092 A CN 104756092A
Authority
CN
China
Prior art keywords
data
mistake
ecc
itemize
group
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
Application number
CN201280076374.0A
Other languages
English (en)
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of CN104756092A publication Critical patent/CN104756092A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

存储器装置(1)对写入数据附加ECC来生成分条,生成对规定数量的分条附加了奇偶校验位的冗余组并写入NAND闪存(11)。存储器装置(1)具备:奇偶校验位订正控制部(173a),在从NAND闪存读出的属于同一冗余组的分条中存在错误的情况下,进行存在错误的分条的订正;ECC组订正控制部(173b),按ECC的每个生成单位将从NAND闪存分别读出的属于同一冗余组的各分条和奇偶校验位分组,生成多个包括多个分割分条和分割奇偶校验位的纠错组,在同一纠错组中基于分割奇偶校验位检测各分割分条是否存在错误,并进行存在错误的分割分条的订正,由此,存储器装置(1)能够提高NAND闪存(11)的数据的修复率。

Description

记录再生装置、错误订正方法以及控制装置
技术领域
本发明涉及记录再生装置等。
背景技术
NAND型的闪存(以下称为“NAND闪存”)近年来大多被作为访问性能、容量以及成本取得了平衡的非易失性存储介质而使用。另一方面,NAND闪存与其他的非易失性存储介质相比错误率高,成为阻碍可靠性的重要因素。
因此,控制NAND闪存的控制器对写入NAND闪存的数据附加ECC(Error Correcting Code:纠错码),在读出数据时进行基于ECC的错误订正。
另外,公知有一种使用多个纠错码来对读出数据进行错误订正的ECC电路的技术(例如,参照专利文献1)。例如,ECC电路使用第1纠错码(海明码)来对读出数据进行第1错误订正。然后,ECC电路使用第2纠错码(BHC编码)对该第1错误订正结果进一步进行第2错误订正。进而,ECC电路使用第3纠错码(RS编码)对第2错误订正结果进行第3错误订正。
并且,作为错误率变高的对策,例如控制NAND闪存的控制器将利用了RAID(Redundant Array of Inexpensive Disks:廉价磁盘冗余阵列)5的结构的数据写入NAND闪存。这里,RAID5的结构是对数据被分割成多个的结果所得到的多个分条数据附加了奇偶校验位的结构。而且,控制器在数据的读出时进行基于奇偶校验位的错误订正。
专利文献1:日本特开2009-211209号公报
专利文献2:日本特开平9-218754号公报
然而,在现有的针对NAND闪存的错误率的对策中,存在无法提高NAND闪存的数据的修复率这一问题。
例如,近年来,在NAND闪存中,微细化、多值化得以进步,并且位(bit)容易受到毁坏等可靠性降低。与此相伴,根据ECC的错误订正变得困难。另外,即使在数据是RAID5的结构的情况下,若多个分条数据产生错误,则也无法根据奇偶校验位进行错误订正。因此,除了现有的针对NAND闪存的错误率的对策以外,还要求使NAND闪存的数据的修复率提高的对策。
其中,上述课题并不局限于NAND闪存,是其他的存储介质也同样会产生的课题。
发明内容
在一个方面,本发明的目的在于,提高存储介质的数据的修复率。
本申请公开的记录再生装置在一个方式中具备:多个数据存储部;控制部,进行对写入数据附加第1纠错码来生成规定的写入容量的分条数据,并生成对规定数量的上述分条数据附加了第2纠错码的冗余组,将属于同一冗余组的多个分条数据和第2纠错码分别建立关联地写入上述多个数据存储部的控制;第1错误检测订正部,基于第2纠错码检测从上述多个数据存储部分别读出的属于同一冗余组的分条数据中是否存在错误,并进行存在错误的分条数据的订正;以及第2错误检测订正部,按上述第1纠错码的每个生成单位将从上述多个数据存储部分别读出的属于同一冗余组的各分条数据和第2纠错码分组,生成多个包括多个分割分条数据和分割第2纠错码的纠错组,在同一纠错组中基于分割第2纠错码检测各分割分条数据中是否存在错误,并进行存在错误的分割分条数据的订正。
根据本申请公开的装置的一个方式,能够提高存储介质的数据的修复率。
附图说明
图1是表示实施例1所涉及的存储器装置的硬件构成的图。
图2A是表示NAND闪存的构成的一个例子的图。
图2B是表示NAND闪存中存储的数据的数据构造的图。
图3是对实施例1所涉及的读出数据的分组进行说明的图。
图4是对实施例1所涉及的数据订正的具体例进行说明的图。
图5是表示数据的写入处理的流程图的图。
图6是表示数据的订正处理的流程图的图。
图7是表示实施例2所涉及的存储器装置的硬件构成的图。
图8是对实施例2所涉及的数据订正的具体例进行说明的图(1)。
图9是对实施例2所涉及的数据订正的具体例进行说明的图(2)。
图10是表示数据的订正处理的流程图的图。
具体实施方式
以下,基于附图对本申请公开的记录再生装置、错误订正方法以及控制装置的实施例进行详细的说明。其中,本发明并不被本实施例限定。而且,各实施例能够在不使处理内容矛盾的范围内适当组合。以下,对将本发明应用于存储器(storage)装置的情况进行说明。
实施例1
(实施例1涉及的存储器装置的构成)
图1是表示实施例1所涉及的存储器装置的硬件构成的图。如图1所示,存储器装置1与服务器9连接。存储器装置1具有NAND闪存器(以下称为“NAND闪存”)11、电源供给单元12、停电时供电单元13以及高速缓冲存储器14。并且,存储器装置1具有CPU15、存储器控制器16以及NAND控制器17。另外,通过NAND控制器17和NAND闪存11进行配合,例如作为记录再生装置发挥作用。设置于存储器装置1内的这些设备也可以设置于控制器模块(CM:Controller Module)内。另外,存储器装置1与服务器9连接。存储器装置1基于来自服务器9的命令来向NAND闪存11写入数据、或者读出数据。
NAND闪存11是非易失性的半导体存储装置。NAND闪存11从服务器9存储用户数据、程序。即,NAND闪存11被作为对来自服务器9的数据进行保存的保存目的地的存储介质(存储器)而使用。
NAND闪存11分别存储对用户数据进行分割而得到的多个分条数据,并且存储对规定数量的分条数据附加的奇偶校验位。即,用户数据以RAID5结构被存储于NAND闪存11。此外,在图1中,NAND闪存11安装有2个,但也可以安装3个以上。
这里,参照图2A来对NAND闪存11的构成进行说明。图2A是表示NAND闪存的构成的一个例子的图。如图2A所示,1个NAND闪存11具备4个单元(cell)。1个单元中存储有用户数据的多个分条数据中的1个分条数据。例如,在后述的NAND控制器17写入用户数据的情况下,向与NAND闪存11的各个单元对应的写入部发出写入对象的分条数据的写指令。接收到写指令的写入部将与写指令对应的分条数据写入单元。另一方面,在NAND控制器17读出用户数据的情况下,向与NAND闪存11的各个单元对应的读出部发出读出对象的分条数据的读指令。接收到读指令的读出部从单元读出与读指令对应的分条数据,并将读出的分条数据传递给NAND控制器17。这样的NAND闪存11通过多个单元中存储的各个分条数据来实现RAID5结构。
其中,由于1个NAND闪存11具备4个单元,所以也可以在1个NAND闪存11中存储不同的RAID各自的分条数据。例如,第1个NAND闪存11中存储有第一个RAID的分条数据0、第二个RAID的分条数据0、第三个RAID分条数据0以及第四个RAID分条数据0。第2个NAND闪存11中存储有第一个RAID的分条数据1、第二个RAID的分条数据1、第三个RAID分条数据1以及第四个RAID分条数据1。通过这样存储,即使在1个NAND闪存11发生故障的情况下,也能够使用其他NAND闪存11的数据来进行发生了故障的NAND闪存11的数据的恢复。
这里,参照图2B对存储于NAND闪存11的用户数据的数据构造进行说明。图2B是表示存储于NAND闪存的用户数据的数据构造的图。如图2B所示,存储于NAND闪存的用户数据具有多个分条数据、以及与多个分条数据建立关联的奇偶校验位。这里,由7个分条数据和奇偶校验位构成了RAID5。各分条数据以及奇偶检验位分别是作为对NAND闪存11进行写入的写入单位的4千字节(KB)的数据。而且,各分条数据中包含有用户数据d1、CRC(Cyclic Redundancy Check:循环冗余检查)d2、以及ECC(Error Correcting Code)d3。CRCd2是检测用户数据d1的错误的检错码,ECCd3是订正用户数据d1的错误的纠错码。例如,分条数据0~3分别被存储于图2A的单元0~3,分条数据4~6以及奇偶校验位分别被存储于图2A的单元4~7。其中,CRCd2由后述的CRC生成部171a生成,ECCd3由后述的ECC生成部172a生成,奇偶校验位由后述的奇偶校验位生成部171b生成。
返回到图1,电源供给单元12在通常时向存储器装置1供给电力。其中,这里所说的通常时是指对存储器装置1接通电源后,不发生停电地进行运转的状态。停电时供给单元13在发生停电时向NAND闪存11、高速缓冲存储器14、CPU15、存储器控制器16以及NAND控制器17供给电力。停电时供给单元13在内部具备电容器,通常时将来自电源供给单元12的电力存储于电容器。停电时供给单元13在停电时供给电容器中蓄积的电力。
高速缓冲存储器14例如是DIMM(Dual Inline Memory Module:双列直插内存模块)、DDR SDRAM(Double Date Rate Synchronous DRAM)等易失性存储器。高速缓冲存储器14根据来自服务器9的写入命令来暂时存储写入NAND闪存11的用户数据。另外,高速缓冲存储器14根据来自服务器9的读出命令来暂时存储从NAND闪存11读出的用户数据。
CPU(Central Processing Unit:中央处理器)15控制存储器装置1的整体。例如,CPU15执行与服务器的接口控制。存储器控制器16根据来自服务器9的命令,来进行数据向高速缓冲存储器14的输入输出控制。此外,对CPU15以及存储器控制器16作为独立的构成进行了说明,但也可以是作为合并的构成的存储器控制器内置的CPU。
存储器控制器16不经由CPU15地控制高速缓冲存储器14与NAND闪存11之间的数据传输。NAND控制器17进行向NAND闪存11的数据的输入输出控制。并且,NAND控制器17具有写DMA(Direct MemoryAccess:直接内存存取)171、控制器172以及读DMA173。写DMA171控制从高速缓冲存储器14向NAND闪存11的写入数据的传输。读DMA173控制从NAND闪存11向高速缓冲存储器14的读出数据的传输。控制器172控制写入数据以及读出数据。
写DMA171具有CRC生成部171a以及奇偶校验位生成部171b。
CRC生成部171a在将数据写入NAND闪存11时,为了以RAID5构成数据而将数据分割成多个,按分割后的每个分割数据,生成错误检测所使用的CRC。然后,CRC生成部171a将生成的CRC附加到对应的分割数据。这样的分割数据与分条数据对应。以下,将分割数据称为分条数据。
奇偶校验位生成部171b与规定数量的分条数据建立关联地生成RAID5所使用的奇偶校验位。这样的奇偶校验位被作为纠错码而使用。而且,奇偶校验位生成部171b将生成的奇偶校验位作为一个分条数据与规定数量的分条数据一起作为写入数据。由此,写入数据例如通过规定数量的分条数据和与它们建立了关联的奇偶校验位,成为对NAND闪存11的写入单位的4KB的序列。其中,规定数量例如是7个,但也可以是6个,还可以是8个,只要是能够构成RAID5的数量即可。另外,奇偶校验位生成部171b是控制部的一个例子。
控制器172具有ECC生成部172a以及ECC订正控制部172b。
ECC生成部172a按ECC的每个生成单位对写入数据的各分条数据生成ECC。ECC的生成单位是指为了执行ECC校验而生成ECC的单位。这样的ECC的生成单位取决于由NAND闪存11的规格规定了的ECC的订正能力,作为一个例子,为224字节。而且,该情况下的ECC是16字节。然后,ECC生成部172a将写入数据与生成的ECC一起写入NAND闪存11。其中,ECC生成部172a是控制部的一个例子。
若读出了由ECC生成部172a写入的数据,则ECC订正控制部172b进行读出的读出数据的ECC校验。而且,如果ECC校验的结果是没有检测到错误,则ECC订正控制部172b将读出数据按直接向读DMA173输出。另一方面,在ECC校验的结果是检测到错误并且错误是可订正的错误的情况下,ECC订正控制部172b根据ECC来订正错误,并将订正后的读出数据向读DMA173输出。其中,读出被写入的数据的时机例如是来自服务器的读出命令被发出时。
另外,在ECC校验的结果是检测到错误并且错误是不可订正的错误的情况下,ECC订正控制部172b将检测到错误的ECC的生成单位的位置向读DMA173输出。此时,ECC订正控制部172b将读出数据直接向读DMA173输出。其中,ECC订正控制部172b是位置输出部的一个例子。
读DMA173具有奇偶校验位订正控制部173a以及ECC组订正控制部173b。
奇偶校验位订正控制部173a进行从ECC订正控制部172b输出的读出数据的CRC校验。然后,如果CRC校验的结果是没有检测到错误,则奇偶校验位订正控制部173a将未被检测到错误的读出数据向存储器控制器16输出。
另外,若CRC校验的结果是检测到错误,则奇偶校验位订正控制部173a根据RAID的奇偶校验位来判定错误是否可订正。然后,在根据RAID的奇偶校验位判定为错误可订正的情况下,奇偶校验位订正控制部173a使用奇偶校验位来订正检测到错误的分条数据。即,在通过CRC校验检测到错误的分条数据仅为一个的情况下,奇偶校验位订正控制部173a使用其他的分条数据和奇偶校验位来订正该分条数据。然后,若对检测到错误的分条数据进行订正,则奇偶校验位订正控制部173a将包括订正后的分条数据的读出数据向存储器控制器16输出。其中,在奇偶校验位订正控制部173a中,由于当通过CRC校验检测到错误的分条数据有2个以上时,无法确定发生错误的位置,所以无法使用奇偶校验位来订正错误。另外,奇偶校验位订正控制部173a是第1错误检测订正部的一个例子。
ECC组订正控制部173b在读出数据中的2个以上分条数据中检测到错误的情况下,对从读出的数据的各分条数据逐个获得的ECC的生成单位进行分组。根据ECC的生成单位进行分组是为了能够以ECC的生成单位确定检测到错误的位置。即由于,ECC订正控制部172b输出检测到错误的ECC的生成单位的位置,所以ECC组订正控制部173b能够使用被输出的位置来确定组内的错误位置。其中,将按ECC的生成单位生成的组称为“ECC组”。
另外,ECC组订正控制部173b以每个ECC组的单位使用ECC组所包含的奇偶校验位来控制错误的订正。例如,ECC组订正控制部173b取得由ECC订正控制部172b输出的被检测到错误的ECC的生成单位的位置。而且,ECC组订正控制部173b检测包括所取得的ECC的生成单位的位置的ECC组。而且,ECC组订正控制部173b以检测到的ECC组的单位根据该ECC组所包含的奇偶校验位来判定错误是否可订正。而且,ECC组订正控制部173b在根据该ECC组所包含的奇偶校验位判定为错误可订正的情况下,使用奇偶校验位来订正检测到错误的ECC的生成单位。即,当检测到错误的ECC的生成单位的位置在ECC组内仅有一个时,ECC组订正控制部173b使用相同的组内的奇偶校验位来订正该位置的生成单位。
另外,若对检测到错误的ECC的生成单位进行订正,则ECC组订正控制部173b将包括订正后的生成单位的读出数据向存储器控制器16输出。其中,当检测到错误的ECC的生成单位的位置在ECC组内有2个以上时,组订正控制部173b无法使用相同的ECC组内的奇偶校验位来订正错误。另外,ECC组订正控制部173b是第2错误检测订正部的一个例子。
(读出数据的分组)
这里,参照图3来对由ECC组订正控制部173b生成的读出数据的分组进行说明。图3是对实施例1涉及的读出数据的分组进行说明的图。如图3所示,读出数据是具有分条数据0~6以及奇偶校验位的RAID5的结构。各分条数据以及奇偶校验位分别按ECC的生成单位的224字节表示。而且,ECC按ECC的每个生成单位生成。作为一个例子,分条数据0按ECC的每个生成单位的224字节被表示,这里被表示为数据0-0、数据0-1、…数据0-17。而且,各ECC按数据0-0~数据0-17的每一个生成。同样,奇偶校验位也按ECC的每个生成单位的224字节被表示,这里表示为奇偶校验位-0、奇偶校验位-1、…奇偶校验位-17。而且,各ECC按奇偶校验位-0~奇偶校验位-17的每一个生成。ECC分别是16字节。
而且,ECC组订正控制部173b对从读出数据的各分条数据以及奇偶校验位逐个获得的ECC的生成单位进行分组。这里,ECC组订正控制部173b将分条数据0的数据0-0、分条数据1的数据1-0、分条数据2的数据2-0、…、奇偶校验位的奇偶校验位-0作为ECC组0。ECC组订正控制部173b将分条数据0的数据0-1、分条数据1的数据1-1、分条数据2的数据2-1、…、奇偶校验位的奇偶校验位-1作为ECC组1。
(数据订正的具体例)
针对被这样分组的读出数据,参照图4来说明数据的订正的具体例。图4是对实施例1涉及的数据订正的具体例进行说明的图。如图4的上图所示,读出数据中的通过CRC校验检测到错误的分条数据为分条数据1、分条数据3、分条数据5而有2个以上。因此,在奇偶校验位订正控制部173a中,使用RAID的奇偶校验位本身也无法订正错误。
如图4的下图所示,ECC组订正控制部173b以每个ECC组的单位使用ECC组所包含的奇偶校验位来控制错误的订正。这里,ECC组订正控制部173b取得检测到错误的ECC的生成单位的位置作为分条数据1的数据1-0的位置。而且,ECC组订正控制部173b检测包括所取得的数据1-0的位置的ECC组0。而且,由于检测到错误的ECC的生成单位的位置在ECC组0内仅是数据1-0这一个,所以ECC组订正控制部173b使用ECC组0内的其他数据以及奇偶校验位-0来订正数据1-0。
接下来,ECC组订正控制部173b取得检测到错误的ECC的生成单位的位置作为分条数据3的数据3-2的位置。而且,ECC组订正控制部173b检测包括所取得的数据3-2的位置的ECC组2。而且,由于检测到错误的ECC的生成单位的位置在ECC组2内仅是数据3-2这一个,所以ECC组订正控制部173b使用ECC组2内的其他数据以及奇偶校验位-2来订正数据3-2。
接下来,ECC组订正控制部173b取得检测到错误的ECC的生成单位的位置作为分条数据5的数据5-1的位置。而且,ECC组订正控制部173b检测包括所取得的数据5-1的位置的ECC组1。而且,由于检测到错误的ECC的生成单位的位置在ECC组1内仅是数据5-1这一个,所以ECC组订正控制部173b使用ECC组1内的其他数据以及奇偶校验位-1来订正数据5-1。
这样,即使读出数据中的检测到错误的分条数据有2个以上,如果存在错误的ECC的生成单位的位置不是相同的ECC组,则ECC组订正控制部173b也能够订正读出数据的错误。这里,作为订正读出数据的错误的其他方法,也可考虑通过减小RAID的分条的尺寸来增加RAID的单位,根据RAID的奇偶校验位来订正读出数据的错误的方法。然而,若减小RAID的分条的尺寸,则CRC、奇偶校验位的冗余位数增加,导致写入时的性能下降。鉴于此,通过不改变RAID的分条的尺寸地利用ECC组来订正错误,能够不使写入时的性能下降、提高NAND闪存11的可靠性。
(数据的写入处理以及数据的订正处理的流程图)
接下来,参照图5以及图6对实施例1所涉及的数据的订正处理进行说明。这里,作为一个例子,对在数据的写入命令由服务器9发出的情况下,根据写入命令来写入高速缓冲存储器14的数据的写入处理进行说明。另外,对在数据的读出命令由服务器9发出的情况下,根据读出命令来订正从NAND闪存11读出的数据的处理进行说明。图5是表示数据的写入处理的流程图的图。图6是表示数据的订正处理的流程图的图。
如图5所示,从服务器9接收到写入命令的CPU15将写DMA171启动(步骤S11)。然后,CPU15根据来自服务器9的写入命令从高速缓冲存储器14读出用户数据(步骤S12)。
然后,写DMA171对于读出的用户数据生成RAID5用的奇偶校验位,并且生成CRC(步骤S13)。例如,写DMA171的CRC生成部171a为了以RAID5构成而将用户数据分割成多个分条数据,按分割后的每个分条数据生成CRC。然后,写DMA171的奇偶校验位生成部171b与规定数量的分条数据建立关联地生成RAID5所使用的奇偶校验位。而且,奇偶校验位生成部171b将生成的奇偶校验位作为一个分条数据与规定数量的分条数据一起作为写入数据。
接着,控制器172针对写入数据生成ECC(步骤S14)。例如,控制器172的ECC生成部172a按每个ECC的生成单位对写入数据的各分条数据生成ECC。
然后,控制器172向NAND闪存11写入数据。这里所说的数据具体是用户数据、奇偶校验位、CRC以及ECC(步骤S15)。即,控制器172的ECC生成部172a将写入数据与生成的ECC一起向NAND闪存11写入。
由此,根据来自服务器9的写入命令而保持于高速缓冲存储器14的用户数据被写入NAND闪存11。
如图6所示,从服务器9接收到读出命令的CPU15启动读DMA173(步骤S21)。然后,CPU15从NAND闪存11读出数据(步骤S22)。
然后,控制器172的ECC订正控制部172b对于读出的数据进行ECC校验(步骤S23),判定是否是根据ECC可订正的错误(ECC可纠正的错误)(步骤S24)。在判定为是ECC可纠正的错误的情况(步骤S24;是)下,ECC订正控制部172b根据ECC订正数据(步骤S25)。然后,ECC订正控制部172b为了进行CRC校验而移至步骤S28。这是因为即使根据ECC订正数据,也存在通过CRC检测到错误的情况。
另一方面,在判定为不是ECC可纠正的错误的情况(步骤S24;否)下,控制器172的ECC订正控制部172b判定是否是根据ECC不可订正的错误(ECC无法纠正的错误)(步骤S26)。在判定为是ECC无法纠正的错误的情况(步骤S26;是)下,控制器172的ECC订正控制部172b向读DMA173通知存在错误(差错)的ECC的生成单位的位置(步骤S27)。然后,ECC订正控制部172b为了进行CRC校验而移至步骤S28。
另一方面,在判定为不是ECC无法纠正的错误的情况(步骤S26;否)下、即在根据ECC判定为数据没有错误的情况下,ECC订正控制部172b为了进行CRC校验而移至步骤S28。这是因为即使在根据ECC判定为数据没有错误的情况下,也存在通过CRC检测到错误的情况。
接着,读DMA173对于读出数据或者订正后的读出数据进行CRC校验(步骤S28),根据RAID的奇偶校验位来判定是否是可订正的错误(RAID可纠正的错误)(步骤S29)。
在判定为是RAID可纠正的错误的情况(步骤S29;是)下,读DMA173的奇偶校验位订正控制部173a按1页(分条)单位来订正数据(步骤S30)。即,在通过CRC校验检测到错误的分条数据仅是一个的情况下,奇偶校验位订正控制部173a使用其他分条数据和奇偶校验位来订正该分条数据。奇偶校验位订正控制部173a将订正后的读出数据向存储器控制器16输出。然后,奇偶校验位订正控制部173a移至步骤S35。
另一方面,在判定为不是RAID可纠正的错误的情况(步骤S29;否)下,奇偶校验位订正控制部173a根据RAID的奇偶校验位来判定是否是不可订正的错误(RAID无法纠正的错误)(步骤S31)。即,奇偶校验位订正控制部173a通过CRC校验来判定检测到错误的分条数据是否有2个以上。
在判定为不是RAID无法纠正的错误的情况(步骤S31;否)下,因为没有检测到错误,所以奇偶校验位订正控制部173a将读出数据向存储器控制器16输出。然后,奇偶校验位订正控制部173a移向步骤S35。
另一方面,在判定为是RAID无法纠正的错误的情况(步骤S31;是)下,因为检测到错误的分条数据有2个以上,所以奇偶校验位订正控制部173a无法确定发生错误的位置,判断为无法使用奇偶校验位来订正错误。
然后,读DMA173的ECC组订正控制部173b判定是否是根据ECC组可订正的错误(ECC组可纠正的错误)(步骤S32)。例如,ECC组订正控制部173b取得由ECC订正控制部172b通知的发生了错误的ECC的生成单位的位置。而且,ECC组订正控制部173b检测包括所取得的ECC的生成单位的位置的ECC组。而且,ECC组订正控制部173b以检测到的ECC组的单位根据该ECC组所包含的奇偶校验位来判定错误是否可订正。即,ECC组订正控制部173b判定在ECC组单位中存在错误的ECC的生成单位是否有2个以上。
在判定为是ECC组可纠正的错误的情况(步骤S32;是)下,ECC组订正控制部173b按照ECC的生成单位订正数据(步骤S33)。例如,ECC组订正控制部173b使用ECC组所包含的奇偶校验位来订正检测到错误的ECC的生成单位。即,在检测到错误的ECC的生成单位的位置在ECC组内仅有一个的情况下,ECC组订正控制部173b使用相同的组内的奇偶校验位来订正该位置的生成单位。然后,ECC组订正控制部173b将订正后的读出数据向存储器控制器16输出。然后,ECC组订正控制部173b移至步骤S35。
另一方面,在判定为不是ECC组可纠正的错误的情况(步骤S32;否)下,ECC组订正控制部173b判断为是根据ECC组不可订正的错误。即,因为检测到错误的ECC的生成单位的位置在ECC组内有2个以上,所以ECC组订正控制部173b判断为使用相同的ECC组内的奇偶校验位无法订正错误。结果,读出失败,处理结束。
在步骤S35中,存储器控制器16将用户数据向高速缓冲存储器14写入(步骤S35)。即,存储器控制器16将从读DMA173输出的读出数据向高速缓冲存储器14写入,之后,将读出数据输出至服务器9。结果,读出完成,处理结束。
由此,被写入NAND闪存11的用户数据即使在读出处理中发生错误也被正确地写入高速缓冲存储器14。而且,存储器控制器16能够将正确的用户数据传递到服务器9。
(实施例1的效果)
根据上述实施例1,写DMA171在将数据写入NAND闪存11时,按将数据分割成多个的每个分条生成CRC并进行附加,并且与连续的规定数量的分条建立关联地生成奇偶校验位。而且,ECC生成部172a按ECC的每个生成单位对附加了所生成的奇偶校验位作为一个分条的写入数据的各分条生成ECC,与生成的ECC一起将写入数据写入NAND闪存11。而且,ECC组订正控制部173b在读出被写入的数据时,当在读出的数据中的多个分条中检测到错误时,对从读出的数据的各分条逐个获得的ECC的生成单位进行分组。而且,ECC组订正控制部173b以每个组的单位使用奇偶校验位来控制错误的订正。根据这样的构成,即使在从NAND闪存11读出的数据的多个分条中检测到错误的情况下,ECC组订正控制部173b也按从读出的数据的各分条得到的每个ECC组的单位控制错误的订正。因此,ECC组订正控制部173b能够提高NAND闪存11的数据的修复率。
另外,根据上述实施例1,在使用ECC对读出的数据进行了校验的结果是读出的数据不可订正的情况下,ECC订正控制部172b输出在由ECC所示的哪个生成单位的位置检测到错误。而且,ECC组订正控制部173b在包括所输出的错误位置的组中使用奇偶校验位来控制错误订正。根据这样的构成,由于ECC组订正控制部173b能够检测包括检测到错误的位置的组单位,能够以检测到的组单位控制错误的订正,所以能够提高NAND闪存11的数据的修复率。
实施例2
在实施例1中,对在存储器装置1中NAND闪存11、高速缓冲存储器14、CPU15以及存储器控制器16未被双重化的情况进行了说明。然而,在存储器装置1中,并不局限于此,也可以是NAND闪存11、高速缓冲存储器14、CPU15以及存储器控制器16被双重化的情况。由此,存储器装置1通过对照被双重化的各个读出数据,能够进一步提高NAND闪存11的可靠性。
鉴于此,在实施例2中,对NAND闪存11、高速缓冲存储器14、CPU15以及存储器控制器16被双重化的情况下的存储器装置2进行说明。
(实施例2所涉及的存储器装置的构成)
图7是表示实施例2所涉及的存储器装置的硬件构成的图。其中,通过对于与图1所示的存储器装置1相同的构成赋予相同的符号而省略其重复的构成以及动作的说明。实施例1与实施例2的不同之处在于,在存储器装置2中,双重化了CM1A和CM1B。而且,各CM具有NAND闪存11、电源供给单元12、停电时供电单元13以及高速缓冲存储器14、CPU15、存储器控制器16以及NAND控制器17。另外,实施例1与实施例2的不同之处在于,对CM1A内的NAND控制器17追加了其他CM通信部201、读数据用缓冲存储器202、以及其他CM间订正控制部203。另外,实施例1与实施例2的不同之处在于,对CM1B内的NAND控制器17追加了其他CM通信部301、读数据用缓冲存储器302、其他CM间订正控制部303。
其他CM通信部201与被双重化的其他CM通信。例如,其他CM通信部201将在自身CM中检测到错误的ECC的生成单位的位置向CM1B发送。另外,其他CM通信部201接收在CM1B中检测到错误的ECC的生成单位的位置。并且,其他CM通信部201向CM1B请求ECC的生成单位的数据,并根据请求来接收数据。
读数据用缓冲存储器202中储存有从NAND闪存11读出的读出数据。例如,读数据用缓冲存储器202中储存有包括检测到错误的ECC的生成单位的ECC组。使用这样的读数据用缓冲存储器202,后述的其他CM间订正控制部203与其他CM通信部201进行配合来订正检测到错误的ECC的生成单位。
因为ECC组订正控制部173b如实施例1中所说明那样,所以简略地进行说明。例如,ECC组订正控制部173b检测包括检测到错误的ECC的生成单位的位置的ECC组,使用检测到的ECC组所包含的奇偶校验位来控制错误的订正。此时,ECC组订正控制部173b在错误可订正、即检测到错误的ECC的生成单位的位置在ECC组内仅是一个的情况下,使用相同的组所包含的奇偶校验位来订正该位置的生成单位。其中,在错误不可订正、即检测到错误的ECC的生成单位的位置在ECC组内有2个以上的情况下,ECC组订正控制部173b无法使用ECC组所包含的奇偶校验位来订正错误。
在检测到错误的ECC的生成单位的位置在ECC组内有2个以上的情况下,其他CM间订正控制部203利用被双重化的其他CM1B内的NAND闪存11中存储的数据,来订正检测到错误的ECC的生成单位。例如,其他CM间订正控制部203利用通过其他CM通信部201与CM1B的通信,对于相同的读出数据的ECC组,通过CM1B取得存在错误的ECC的生成单位的位置。而且,其他CM间订正控制部203使用所取得的存在错误的ECC的生成单位的位置,在CM1B中,判断是否检测到根据ECC不可订正的错误。而且,当在CM1B中判定为未检测到根据ECC不可订正的错误时,由于没有错误,所以其他CM间订正控制部203利用基于其他CM通信部201的与CM1B的通信来取得CM1B的ECC组的全部数据。而且,其他CM间订正控制部203将从CM1B取得到的ECC组的全部数据覆写到读数据用缓冲存储器202中储存的ECC组的数据。
另外,当在CM1B中判定为检测到根据ECC不可订正的错误时,其他CM间订正控制部203在自身CM与CM1B的相同的ECC组中分别检查存在错误的ECC的生成单位的位置。而且,当存在错误的ECC的生成单位的位置全部不重复,或者仅1处重复时,其他CM间订正控制部203利用基于其他CM通信部201的与CM1B的通信,来取得订正所需的ECC的生成单位。而且,其他CM间订正控制部203将从CM1B取得的订正所需的ECC的生成单位覆写到读数据用缓冲存储器202中储存的ECC组所对应的位置。并且,其他CM间订正控制部203使用包括覆写后的ECC的生成单位以及相同的ECC组内的奇偶校验位的ECC的生成单位来订正错误。其中,其他CM间订正控制部203是复制部的一个例子。
其他CM通信部301与被双重化的其他CM通信。例如,其他CM通信部301从其他CM1A接收请求,发送与请求对应的数据。作为一个例子,这里所说的请求是指相符的ECC的生成单位的数据的发送请求,或者存在错误的ECC的生成单位的位置的发送请求。
读数据用缓冲存储器302中储存有从NAND闪存11读出的读出数据。因为读数据用缓冲存储器302与读数据用缓冲存储器202相同,所以省略说明。
其他CM间订正控制部303在检测到错误的ECC的生成单位的位置在ECC组内有2个以上的情况下,利用被双重化的其他CM1A内的NAND闪存11中存储的数据,来订正检测到错误的ECC的生成单位。因为其他CM订正控制部303与其他CM订正控制部203的处理相同,所以省略说明。
(数据订正的具体例)
接下来,参照图8以及图9对实施例2所涉及的数据的订正的具体例进行说明。图8以及图9是对实施例2所涉及的数据订正的具体例进行说明的图。
如图8所示,设在CM1A中的ECC组0中错误不可订正。即,在ECC组0中检测到错误的ECC的生成单位的位置为数据0-0和数据2-0而有2个以上。另一方面,设在被双重化的其他CM1B中的ECC组0中没有检测到错误。
于是,因为在CM1B中,与在CM1A中检测到错误的ECC组0相同的ECC组中没有错误,所以CM1A的其他CM间订正控制部203取得CM1B的ECC组0的全部数据。而且,其他CM间订正控制部203将从CM1B取得的ECC组0的全部数据覆写到读数据用缓冲存储器202中储存的ECC组0的数据。由此,其他CM间订正控制部203通过利用其他CM1B的ECC组0的没有错误的数据,能够订正CM1A中错误不可订正的ECC组0。
另外,设在CM1B中的ECC组1中错误不可订正。即,在ECC组1中检测到错误的ECC的生成单位的位置为数据2-1和数据4-1而有2个以上。另一方面,设在被双重化的其他CM1A中的ECC组1中没有检测到错误。
于是,因为在CM1A中,与在CM1B中检测到错误的ECC组1相同的ECC组中没有错误,所以CM1B的其他CM间订正控制部303取得CM1A的ECC组1的全部数据。而且,其他CM间订正控制部303将从CM1A取得的ECC组1的全部数据覆写到读数据用缓冲存储器302中储存的ECC组1的数据。由此,其他CM间订正控制部303通过利用其他CM1A的ECC组1的没有错误的数据,能够订正在CM1B中错误不可订正的ECC组1。
如图9所示,设在CM1A中的ECC组0中错误不可订正。即,在ECC组0中检测到错误的ECC的生成单位的位置为数据0-0和数据2-0而有2个以上。另一方面,设在CM1B中的ECC组0中错误不可订正。即,在ECC组0中检测到错误的ECC的生成单位的位置为数据2-0和数据3-0而有2个以上。
于是,CM1A的其他CM间订正控制部203检查存在错误的ECC的生成单位的位置是全部不重复、还是仅1处重复。这里,因为数据2-0重复,但数据0-0和数据3-0不重复,所以其他CM间订正控制部203判定为仅1处重复。鉴于此,其他CM间订正控制部203从CM1B取得订正所需的数据0-0,将取得的数据0-0覆写到读数据用缓冲存储器202中储存的ECC组0的数据0-0的位置。而且,其他CM间订正控制部203使用包括ECC组0内的奇偶校验位-0的ECC的生成单位的数据来订正数据2-0。由此,其他CM间订正控制部203通过利用其他CM1B的ECC组0的没有错误的数据,能够订正在CM1A中错误不可订正的ECC组0。
另外,CM1B的其他CM间订正控制部303从CM1A取得订正所需的数据3-0,将取得的数据3-0覆写到储存于读数据用缓冲存储器302的ECC组0的数据3-0的位置。而且,其他CM间订正控制部303使用包括ECC组0内的奇偶校验位-0的ECC的生成单位的数据来订正数据2-0。由此,其他CM间订正控制部303通过利用其他CM1A的ECC组0的没有错误的数据,能够订正在CM1B中错误不可订正的ECC组0。
(数据的订正处理的流程图)
接下来,参照图10对实施例2所涉及的数据的订正处理进行说明。这里,作为一个例子,对在数据的读出命令从服务器9发出的情况下,根据读出命令来订正从NAND闪存11读出的数据的处理进行说明。并且,在图10中,对图6中的数据的订正处理的流程图中存在错误(差错)的ECC组不是ECC组可纠正的错误的情况(步骤S32;否)的订正处理进行说明。其中,ECC组可纠正的错误是指可根据ECC组订正的错误。
首先,在图6中,读DMA173的ECC组订正控制部173b针对存在错误(差错)的ECC组判定是否是ECC组可纠正的错误(步骤S32)。即,ECC组订正控制部173b判定在ECC组单位中是否有2个以上存在错误的ECC的生成单位。在判定为是ECC组可纠正的错误的情况(步骤S32;是)下,ECC组订正控制部173b对于存在错误的ECC组,按ECC的生成单位来订正数据(步骤S33)。
另一方面,在判定为不是ECC组可纠正的错误的情况(步骤S32;否)下,ECC组订正控制部173b针对存在错误的ECC组判定是否是ECC组无法纠正的错误(步骤S41)。其中,ECC组无法纠正的错误是指根据ECC组不可订正的错误。在判定为是ECC组无法纠正的错误的情况(步骤S41;是)下,读DMA173的其他CM间订正控制部203检测其他CM中的发生了错误的ECC的生成单位的位置(步骤S42)。
接着,其他CM间订正控制部203针对与检查的结果是存在错误的ECC组相同的ECC组,判定在其他CM1B中是否检测到ECC无法纠正的错误(步骤S43)。其中,ECC无法纠正的错误是指对于存在错误的ECC组根据ECC不可订正的错误。在判定为其他CM1B中检测到ECC无法纠正的错误的情况(步骤S43;是)下,其他CM间订正控制部203移至步骤S46。
另一方面,当判定为在其他CM1B中未检测到ECC无法纠正的错误时(步骤S43;否),其他CM通信部201请求其他CM1B的ECC组的全部数据(步骤S44)。
然后,其他CM间订正控制部203经由存储器控制器16向自身CM的高速缓冲存储器14写入其他CM1B的ECC组的数据(步骤S45)。例如,其他CM间订正控制部203取得根据请求而得到的其他CM1B的ECC组的全部数据。而且,其他CM间订正控制部203将取得的ECC组的全部数据覆写到储存于读数据用缓冲存储器202的ECC组的数据。而且,其他CM间订正控制部203将覆写于读数据用缓冲存储器202的ECC组的数据经由存储器控制器16写入高速缓冲存储器14,之后,将读出数据输出至服务器9。结果,读出处理完成,处理结束。
在步骤S46中,读DMA173的其他CM间订正控制部203检查在自身CM和其他CM1B中存在错误的ECC的生成单位的位置(步骤S46)。而且,其他CM间订正控制部203判定检查的结果是否是存在错误的ECC的生成单位的位置为可订正的错误的位置(步骤S47)。即,其他CM间订正控制部203判定自身CM以及其他CM1B各自存在错误的ECC的生成单位的位置是否全部不重复、或者仅1处重复。
在判定为存在错误的ECC的生成单位的位置不是可订正的错误的位置的情况(步骤S47;否)下,其他CM间订正控制部203对于存在错误的ECC组判断为无法订正错误。结果,读出失败,处理结束。
另一方面,在判定为存在错误的ECC的生成单位的位置是可订正的错误的位置的情况(步骤S47;是)下,其他CM通信部201向其他CM1B请求订正所需的数据即ECC的生成单位(步骤S48)。而且,读DMA173的其他CM间订正控制部203使用其他CM1B的数据,按照ECC的生成单位来订正存在错误的ECC组的数据(步骤S49)。例如,其他CM间订正控制部203取得根据请求而得到的其他CM1B的订正所需的ECC的生成单位。而且,其他CM间订正控制部203将取得的ECC的生成单位覆写到储存于读数据用缓冲存储器202的ECC组所对应的位置。而且,其他CM间订正控制部203使用包括覆写后的ECC的生成单位以及ECC组内的奇偶校验位的ECC的生成单位来订正存在错误的ECC的生成单位。
而且,其他CM间订正控制部203经由存储器控制器16将订正后的ECC组的数据写入自身CM的高速缓冲存储器14(步骤S50),之后,将读出数据输出至服务器9。结果,读出处理完成,处理结束。
由此,写入NAND闪存11的用户数据即使在读出处理中发生错误也被正确地写入高速缓冲存储器14。而且,存储器控制器16能够将正确的用户数据传递到服务器9。
(实施例2的效果)
根据上述实施例2,当存在错误的ECC的生成单位的位置在ECC组内有多个时,其他CM间订正控制部203利用自身CM和被双重化的CM1B的NAND闪存11中存储的数据,来订正错误位置的ECC的生成单位。即,如果在CM1B中,在与错误位置相同位置的ECC的生成单位没有错误,则其他CM间订正控制部203将没有错误的ECC的生成单位覆写到自身CM的存在错误的位置,由此订正错误位置的ECC的生成单位。根据这样的构成,由于其他CM间订正控制部203能够利用自身CM和被双重化的CM1B的没有错误的ECC的生成单位,来控制存在错误的ECC的生成单位的错误的订正,所以能够进一步提高NAND闪存11的数据的修复率。
(其他)
其中,说明了实施例1、2的存储器装置1、2使用NAND闪存11作为对来自服务器9的数据进行保存的保存目的地的存储介质的情况。然而,存储器装置1、2也可以使用NAND闪存11作为发生停电的情况下的备份目的地的存储介质。在这样的情况下,存储器装置1、2只要搭载HDD(HardDisk Drive:硬盘驱动器)作为来自服务器9的数据的保存目的地的存储介质即可。例如,存储器装置1、2将RAID控制器与存储器控制器17连接,将HDD搭载到RAID控制器属下。在这样的构成中,高速缓冲存储器14在通常时暂时存储根据来自服务器9的写入命令而写入HDD的用户数据。另外,高速缓冲存储器14在通常时暂时存储根据来自服务器9的读出命令而从HDD读出的用户数据。而且,在停电时,存储器控制器16执行被暂时存储于高速缓冲存储器14的用户数据向NAND闪存11的备份处理。而且,在电力恢复时,存储器控制器16将从读DMA173输出的读出数据写回到高速缓冲存储器14。在这样的构成中,暂时存储于高速缓冲存储器14的用户数据也能够在停电时退避至NAND闪存11。而且,在停电时退避至NAND闪存11的用户数据能够在电力恢复时被正确地写回高速缓冲存储器14。
另外,图示的存储器装置1、2的各构成要素不一定需要物理上如图示那样构成。即,存储器装置1、2的分散、统一的具体方式不局限于图示,能够将其全部或者一部分根据各种负荷、使用状况等按照任意的单位以功能性或者物理性分散、统一构成。例如,也可以将CRC生成部171a和奇偶校验位生成部171b作为错误符号生成部而统一成一个部。也可以将ECC组订正控制部173b和其他CM间订正控制部203作为ECC组订正控制部而统一成一个部。另一方面,也可以将奇偶校验位订正控制部173a分散成CRC校验部和奇偶校验位订正控制部。
符号说明:1、2...存储器装置;1A、1B...CM;11...NAND闪存;12...电源供给单元;13...停电时供电单元;14...高速缓冲存储器;15...CPU;16...存储器控制器;17...NAND控制器;171...写DMA;171a...CRC生成部;171b...奇偶校验位生成部;172...控制器;172a...ECC生成部;172b...ECC订正控制部;173...读DMA;173a...奇偶校验位订正控制部;173b...ECC组订正控制部;201、301...其他CM通信部;202、302...读数据用缓冲存储器;203、303...其他CM间订正控制部。

Claims (5)

1.一种记录再生装置,其特征在于,具备:
多个数据存储部;
控制部,进行对写入数据附加第1纠错码来生成规定的写入容量的分条数据,并生成对规定数量的所述分条数据附加了第2纠错码的冗余组,将属于同一冗余组的多个分条数据和第2纠错码分别建立关联地写入所述多个数据存储部的控制;
第1错误检测订正部,基于第2纠错码检测从所述多个数据存储部分别读出的属于同一冗余组的分条数据中是否存在错误,并进行存在错误的分条数据的订正;以及
第2错误检测订正部,按所述第1纠错码的每个生成单位将从所述多个数据存储部分别读出的属于同一冗余组的各分条数据和第2纠错码分组,生成多个包括多个分割分条数据和分割第2纠错码的纠错组,在同一纠错组中基于分割第2纠错码检测各分割分条数据中是否存在错误,并进行存在错误的分割分条数据的订正。
2.根据权利要求1所述的记录再生装置,其特征在于,
所述记录再生装置具备错误位置输出部,该错误位置输出部基于第1纠错码检测从所述多个数据存储部分别读出的属于同一冗余组的数据中是否存在错误,在不能进行存在错误的数据的订正的情况下,输出在第1纠错码的生成单位的哪个位置检测到错误,
所述第2错误检测订正部在包括由所述错误位置输出部输出的错误位置的纠错组中进行存在错误的分割分条数据的订正。
3.根据权利要求2所述的记录再生装置,其特征在于,
所述记录再生装置还具备复制部,在所述纠错组中存在多个错误位置的情况下,如果本装置和被冗余化后的装置内的多个数据存储部中存储的数据中的属于与所述纠错组对应的组的、与本装置的错误位置相同位置的分割分条数据中没有错误,则该复制部接受没有错误的分割分条数据,并将接收到的分割分条数据复制到本装置的相当的错误位置。
4.一种错误订正方法,其特征在于,
进行对写入数据附加第1纠错码来生成规定的写入容量的分条数据,并生成对规定数量的所述分条数据附加了第2纠错码的冗余组,将属于同一冗余组的多个分条数据和第2纠错码分别建立关联地写入所述多个数据存储部的控制的记录再生装置的数据错误订正装置执行下述各处理:
基于第2纠错码检测从所述多个数据存储部分别读出的属于同一冗余组的分条数据中是否存在错误,并进行存在错误的分条数据的订正,
按所述第1纠错码的每个生成单位将从所述多个数据存储部分别读出的属于同一冗余组的各分条数据和第2纠错码分组,生成多个包括多个分割分条数据和分割第2纠错码的纠错组,在同一纠错组中基于分割第2纠错码检测各分割分条数据中是否存在错误,并进行存在错误的分割分条数据的订正。
5.一种控制装置,其特征在于,控制数据向多个数据存储部的写入以及数据从所述多个数据存储部的读出,该控制装置具备:
控制部,进行对写入数据附加第1纠错码来生成规定的写入容量的分条数据,并生成对规定数量的所述分条数据附加了第2纠错码的冗余组,将属于同一冗余组的多个分条数据和第2纠错码分别建立关联地写入所述多个数据存储部的控制;
第1错误检测订正部,基于第2纠错码检测从所述多个数据存储部分别读出的属于同一冗余组的分条数据中是否存在错误,并进行存在错误的分条数据的订正;以及
第2错误检测订正部,按所述第1纠错码的每个生成单位将从所述多个数据存储部分别读出的属于同一冗余组的各分条数据和第2纠错码分组,生成多个包括多个分割分条数据和分割第2纠错码的纠错组,在同一纠错组中基于分割第2纠错码检测各分割分条数据中是否存在错误,并进行存在错误的分割分条数据的订正。
CN201280076374.0A 2012-10-19 2012-10-19 记录再生装置、错误订正方法以及控制装置 Pending CN104756092A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/077160 WO2014061161A1 (ja) 2012-10-19 2012-10-19 記録再生装置、誤り訂正方法および制御装置

Publications (1)

Publication Number Publication Date
CN104756092A true CN104756092A (zh) 2015-07-01

Family

ID=50487749

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280076374.0A Pending CN104756092A (zh) 2012-10-19 2012-10-19 记录再生装置、错误订正方法以及控制装置

Country Status (5)

Country Link
US (1) US20150200685A1 (zh)
JP (1) JP6052294B2 (zh)
KR (1) KR20150058315A (zh)
CN (1) CN104756092A (zh)
WO (1) WO2014061161A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115083446A (zh) * 2021-03-15 2022-09-20 株式会社东芝 磁盘装置以及读/写处理方法

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180060084A (ko) 2016-11-28 2018-06-07 삼성전자주식회사 반도체 메모리 장치의 스크러빙 컨트롤러, 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US10908988B2 (en) * 2017-04-03 2021-02-02 Hitachi, Ltd. Storage apparatus
WO2019049224A1 (ja) * 2017-09-06 2019-03-14 株式会社日立製作所 分散ストレージシステム及び分散記憶制御方法
US20240289212A1 (en) * 2023-02-27 2024-08-29 Google Llc Bit Efficient Memory Error Correcting Coding And Decoding Scheme

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908376A (zh) * 2009-06-04 2010-12-08 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
CN102034537A (zh) * 2009-09-25 2011-04-27 慧荣科技股份有限公司 数据存取装置及数据存取方法
US20110214034A1 (en) * 2009-11-25 2011-09-01 Takeshi Otsuka Semiconductor recording device and semiconductor recording device control method
CN102236585A (zh) * 2010-04-20 2011-11-09 慧荣科技股份有限公司 提升错误更正能力的方法以及相关的记忆装置及其控制器

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3958220A (en) * 1975-05-30 1976-05-18 International Business Machines Corporation Enhanced error correction
US4849975A (en) * 1987-11-10 1989-07-18 International Business Machines Corporation Error correction method and apparatus
US5247523A (en) * 1989-07-12 1993-09-21 Hitachi, Ltd. Code error correction apparatus
US6101615A (en) * 1998-04-08 2000-08-08 International Business Machines Corporation Method and apparatus for improving sequential writes to RAID-6 devices
US6351838B1 (en) * 1999-03-12 2002-02-26 Aurora Communications, Inc Multidimensional parity protection system
US6434719B1 (en) * 1999-05-07 2002-08-13 Cirrus Logic Inc. Error correction using reliability values for data matrix
JP2001297038A (ja) * 2000-04-11 2001-10-26 Toshiba Corp データ記憶装置および記録媒体並びに記録媒体制御方法
US6675318B1 (en) * 2000-07-25 2004-01-06 Sun Microsystems, Inc. Two-dimensional storage array with prompt parity in one dimension and delayed parity in a second dimension
US6848022B2 (en) * 2002-10-02 2005-01-25 Adaptec, Inc. Disk array fault tolerant method and system using two-dimensional parity
US7085953B1 (en) * 2002-11-01 2006-08-01 International Business Machines Corporation Method and means for tolerating multiple dependent or arbitrary double disk failures in a disk array
KR20040066638A (ko) * 2003-01-20 2004-07-27 삼성전자주식회사 외부 저장 서브 시스템에서의 패리티 저장 방법 및에러블록 복구 방법
JP2005004290A (ja) * 2003-06-10 2005-01-06 Hitachi Ltd メモリ障害処理方式
US7134066B2 (en) * 2003-10-20 2006-11-07 International Business Machines Corporation Generalized parity stripe data storage array
US7788526B2 (en) * 2007-01-10 2010-08-31 International Business Machines Corporation Providing enhanced tolerance of data loss in a disk array system
US8041990B2 (en) * 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
JP5166074B2 (ja) * 2008-02-29 2013-03-21 株式会社東芝 半導体記憶装置、その制御方法、および誤り訂正システム
JP5213061B2 (ja) * 2009-08-28 2013-06-19 エヌイーシーコンピュータテクノ株式会社 ミラーリング制御装置、ミラーリング制御回路、ミラーリング制御方法およびそのプログラム
US9021336B1 (en) * 2012-05-22 2015-04-28 Pmc-Sierra, Inc. Systems and methods for redundantly storing error correction codes in a flash drive with secondary parity information spread out across each page of a group of pages
US9176812B1 (en) * 2012-05-22 2015-11-03 Pmc-Sierra, Inc. Systems and methods for storing data in page stripes of a flash drive

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101908376A (zh) * 2009-06-04 2010-12-08 威刚科技(苏州)有限公司 非挥发性存储装置及其控制方法
CN102034537A (zh) * 2009-09-25 2011-04-27 慧荣科技股份有限公司 数据存取装置及数据存取方法
US20110214034A1 (en) * 2009-11-25 2011-09-01 Takeshi Otsuka Semiconductor recording device and semiconductor recording device control method
CN102236585A (zh) * 2010-04-20 2011-11-09 慧荣科技股份有限公司 提升错误更正能力的方法以及相关的记忆装置及其控制器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115083446A (zh) * 2021-03-15 2022-09-20 株式会社东芝 磁盘装置以及读/写处理方法

Also Published As

Publication number Publication date
US20150200685A1 (en) 2015-07-16
WO2014061161A1 (ja) 2014-04-24
JPWO2014061161A1 (ja) 2016-09-05
JP6052294B2 (ja) 2016-12-27
KR20150058315A (ko) 2015-05-28

Similar Documents

Publication Publication Date Title
US9152512B2 (en) Apparatus and methods for providing data integrity
US9170898B2 (en) Apparatus and methods for providing data integrity
CN102301340B (zh) 固态盘中改进的错误校正
US7984325B2 (en) Storage control device, data recovery device, and storage system
CN101256842B (zh) 纠错码控制器和包括该纠错码控制器的存储器系统
CN102483686B (zh) 数据存储系统和用于操作数据存储系统的方法
US20140372838A1 (en) Bad disk block self-detection method and apparatus, and computer storage medium
US20090113235A1 (en) Raid with redundant parity
JP2010015195A (ja) 記憶制御装置及び記憶制御方法
CN103577274A (zh) 管理存储器阵列的方法和装置
US7823011B2 (en) Intra-disk coding scheme for data-storage systems
CN104756092A (zh) 记录再生装置、错误订正方法以及控制装置
US11487609B2 (en) Separating parity data from host data in a memory sub-system
CN103135946A (zh) 基于ssd的大规模存储系统中的文件布局方法
CN109739777B (zh) 本地与分布式协同设计的可靠闪存存储方法及系统
CN114115729A (zh) 一种raid下的高效数据迁移方法
US10831601B2 (en) Reconstruction hard disk array and reconstruction method for to-be-reconstructed hard disks therein including comparing backup data with an access timestamp of first, second and third hard disks
JP2008217395A (ja) ディスクアレイ装置
US9547554B2 (en) Mass storage device and method of operating the same to store parity data
JP3676793B2 (ja) ディスクアレイ装置
JP3699473B2 (ja) ディスクアレイ装置
CN102411516A (zh) 一种raid5数据重建的方法及装置
US10922025B2 (en) Nonvolatile memory bad row management
JP2005166016A (ja) ディスクアレイ装置
US11537466B2 (en) Detection of data discrepancy after XOR recovery

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20150701

WD01 Invention patent application deemed withdrawn after publication