US8495468B2 - Data storage apparatus and data writing/reading method - Google Patents

Data storage apparatus and data writing/reading method Download PDF

Info

Publication number
US8495468B2
US8495468B2 US13/014,938 US201113014938A US8495468B2 US 8495468 B2 US8495468 B2 US 8495468B2 US 201113014938 A US201113014938 A US 201113014938A US 8495468 B2 US8495468 B2 US 8495468B2
Authority
US
United States
Prior art keywords
data
error
data block
parity
data blocks
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.)
Active, expires
Application number
US13/014,938
Other languages
English (en)
Other versions
US20110231737A1 (en
Inventor
Kenshi Dachiku
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.)
Toshiba Corp
Original Assignee
Toshiba Corp
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 Toshiba Corp filed Critical Toshiba Corp
Assigned to KABUSHIKI KAISHA TOSHIBA reassignment KABUSHIKI KAISHA TOSHIBA ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: DACHIKU, KENSHI
Publication of US20110231737A1 publication Critical patent/US20110231737A1/en
Application granted granted Critical
Publication of US8495468B2 publication Critical patent/US8495468B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Definitions

  • Embodiments described herein relate generally to a data storage apparatus and a data writing/reading method.
  • RAID Redundant Arrays of Inexpensive Disks
  • Various RAID levels are available.
  • RAID 5 is widely adopted for its excellent balance of reliability/availability and economic efficiency.
  • RAID 5 distributes parity information to memory units.
  • RAID 5 can compensate data upon failure of one memory unit, realize faster reading at normal condition by striping, and provide economic efficiency because only one memory unit is additionally required.
  • a semiconductor memory such as a flush memory
  • This type of memory unit comprises a plurality of memory chips, each of which includes semiconductor memories, and is configured to store data in the memory chips.
  • a memory chip may be damaged because of, for example, writing operations performed to excess.
  • FIG. 1 is a block diagram showing a functional configuration of a data storage apparatus according to a first embodiment.
  • FIG. 2 shows processing performed on data blocks in the data storage apparatus of FIG. 1 .
  • FIG. 3 shows processing performed on a parity data block in the data storage apparatus of FIG. 1 .
  • FIG. 4 shows an example of storage of the data blocks and parity data block in memories shown in FIG. 1 .
  • FIG. 5 is a flowchart showing how a RAID controller shown in FIG. 1 restores data.
  • FIG. 6 is a block diagram showing a functional configuration of a data storage apparatus according to a second embodiment.
  • FIG. 7 shows processing performed on data blocks and a parity data block in the data storage apparatus of FIG. 6 .
  • FIG. 8 shows parallelization processing of an S/P converter shown in FIG. 6 .
  • FIG. 9 shows an example of storage of a data block or parity data block in a memory shown in FIG. 6 .
  • FIG. 10 shows an example of storage of the data block and parity data block in the memories shown in FIG. 6 .
  • FIG. 11 is a flowchart showing how a RAID controller shown in FIG. 6 restores data.
  • a data storage apparatus including memory chips which enable data write in units of one page includes an error correction encoder, a RAID controller, a plurality of error detectors and a plurality of memory units.
  • Each of the memory chips includes a semiconductor memory.
  • the error correction encoder adds an error correction code to an encoded data stream.
  • the RAID controller includes a plurality of connection interfaces. The RAID controller divides the encoded data stream output from the error correction encoder into data blocks each of which corresponds to the page. The RAID controller generates a parity data block based on the data blocks. The RAID controller outputs the data blocks and parity data block to the connection interfaces, respectively.
  • the plurality of error detectors connect to the connection interfaces, respectively.
  • the error detectors add an error detection code to the data blocks and parity data block output from the connection interfaces.
  • the plurality of memory units connect to the error detectors, respectively.
  • Each of the memory units includes the memory chips.
  • the memory units write the data blocks and parity data block output from the error detectors to the memory chips in units of the page.
  • FIG. 1 is a block diagram showing a functional configuration of the data storage apparatus according to the first embodiment.
  • the data storage apparatus in FIG. 1 comprises an encoder 11 , a Redundant Arrays of Independent Disks (RAID) controller 12 , error detectors 13 - 1 to 13 - 4 , memory units 14 - 1 to 14 - 4 , a decoder 15 , an error correction encoder 16 , and an error correction decoder 17 .
  • the data storage apparatus has a configuration according to RAID 5.
  • the encoder 11 is connected to the error correction encoder 16 .
  • the decoder 15 is connected to the error correction decoder 17 .
  • the RAID controller 12 is connected to the error correction encoder 16 and the error correction decoder 17 .
  • the RAID controller 12 comprises connection interfaces 121 - 1 to 121 - 4 , and is connected to the error detectors 13 - 1 to 13 - 4 via the connection interfaces 121 - 1 to 121 - 4 .
  • the error detectors 13 - 1 to 13 - 4 are connected to the memory units 14 - 1 to 14 - 4 .
  • the encoder 11 acquires an image data stream from, for example, a camera, and encodes the image data stream by a predetermined encoding method.
  • the encoder 11 outputs an encoded data stream to the error correction encoder 16 .
  • the error correction encoder 16 encodes the encoded data stream output from the encoder 11 with an error correction code capable of correcting a burst error.
  • an error correction code capable of correcting a burst error For example, a Reed-Solomon correction code is used as the error correction code capable of correcting a burst error.
  • the error correction encoder 16 outputs an encoded data stream subjected to error correction encoding to the RAID controller 12 .
  • the RAID controller 12 divides the encoded data stream into units of a writable page, thereby generating three data blocks.
  • the RAID controller 12 generates a parity data block corresponding to one writable page.
  • the capacity of one page, which is a writable unit, is determined depending on the memory chips. More specifically, the data size of one page is determined based on the product of a page size of a memory chip multiplied by the number of chips to which data is written in parallel.
  • a parity data block is generated so that the three data blocks and the parity data block have no “1” or even-numbered “1” in total.
  • the RAID controller 12 outputs the data blocks to three of the connection interfaces 121 - 1 to 121 - 4 , and outputs the parity data block to the remaining one of the connection interface 121 - 1 to 121 - 4 .
  • the RAID controller 12 sequentially switches the connection interface to which the parity data block is output, allowing the other connection interfaces to receive the data blocks.
  • the RAID controller 12 When image data is reproduced, the RAID controller 12 receives data blocks and a parity data block from the error detectors 13 - 1 to 13 - 4 via the connection interfaces 121 - 1 to 121 - 4 . When an error occurs in one of the data blocks, the RAID controller 12 restores the data block including an error based on the normal data blocks and the parity data block. The RAID controller 12 synthesizes the restored data block and the normal data blocks to generate an encoded data stream, and outputs it to the error correction decoder 17 . On the other hand, when no error occurs, the RAID controller 12 synthesizes the data blocks output from the three error detectors of the error detectors 13 - 1 to 13 - 4 to generate an encoded data stream. The RAID controller 12 outputs the encoded data stream to the error correction decoder 17 .
  • the error correction decoder 17 performs error correction decoding on the encoded data stream output from the RAID controller 12 based on an error correction code used at the error correction encoder 16 .
  • the error correction decoder 17 outputs the encoded data stream subjected to error correction decoding to the decoder 15 .
  • the decoder 15 decodes the encoded data stream output from the error correction decoder 17 by a decoding method corresponding to the encoding method of the encoder 11 .
  • the decoder 15 outputs decoded data to the outside.
  • the error detector 13 - 1 When image data is recorded, the error detector 13 - 1 adds an error detection code, such as a checksum, to a data block or parity data block output from the RAID controller 12 . The error detector 13 - 1 outputs the data block or parity data block to which the error detection code has been added to the memory unit 14 - 1 .
  • an error detection code such as a checksum
  • the error detector 13 - 1 determines whether a data block or parity data block output from the memory unit 14 - 1 includes an error based on the error detection code. When the error detector 13 - 1 detects an error in the data block or parity data block, the error detector 13 - 1 outputs a detection signal to the RAID controller 12 .
  • the processing in error detectors 13 - 2 to 13 - 4 is the same as that of error detector 13 - 1 .
  • the memory units 14 - 1 to 14 - 4 respectively comprise ECC adding units 141 - 1 to 141 - 4 and memories 142 - 1 to 142 - 4 .
  • the memories 142 - 1 to 142 - 4 respectively comprise memory controllers 1421 - 1 to 1421 - 4 , and memory chips 1422 - 11 to 1422 - 132 , . . . , 1422 - 41 to 1422 - 432 , each of which includes semiconductor memories such as a flush memory.
  • 32 memory chips are used. However, the number of memory chips is not limited to 32.
  • the memory units 14 - 1 to 14 - 4 store the data blocks and parity data block output from the error detectors 13 - 1 to 13 - 4 .
  • the same processing is performed in the memory units 14 - 1 to 14 - 4 , and processing in memory unit 14 - 1 will be representatively described below.
  • the ECC adding unit 141 - 1 adds an ECC, which is a bit error correction code, to the data block or the parity data block output from the error detector 13 - 1 .
  • the data block or parity data block to which the ECC has been added is output to the memory 142 - 1 .
  • the memory controller 1421 - 1 when the memory controller 1421 - 1 receives the data block or parity data block from the ECC adding unit 141 - 1 , the memory controller 1421 - 1 writes the data block or parity data block to the memory chips 1422 - 11 to 1422 - 132 in units of pages.
  • the memory units 14 - 1 to 14 - 4 read the recorded data blocks and parity data block, and output them to the error detectors 13 - 1 to 13 - 4 .
  • the same processing is performed in the memory units 14 - 1 to 14 - 4 , and processing in memory unit 14 - 1 will be representatively described below.
  • the memory controller 1421 - 1 reads the data block or parity data block stored in the memory chips 1422 - 11 to 1422 - 132 , and outputs it to the ECC adding unit 141 - 1 .
  • the ECC adding unit 141 - 1 corrects a read error in the data block or parity data block output from the memory 142 - 1 based on the ECC.
  • the ECC adding unit 141 - 1 outputs the data block or parity data block of which read error has been corrected to the error detector 13 - 1 .
  • FIG. 2 is a schematic diagram showing processing performed when the data storage apparatus according to the first embodiment records a data block or a parity data block.
  • FIG. 3 is a schematic diagram showing processing performed when the RAID controller 12 of the data storage apparatus according to the first embodiment generates a parity data block.
  • the capacity of one page is 2048 bytes as shown in FIGS. 2 and 3 , but the capacity of one page is not limited to 2048 bytes.
  • the error correction encoder 16 When image data is recoded, the error correction encoder 16 adds a 16-byte Reed-Solomon correction code to the encoded data stream output from the encoder 11 for each 224-byte real data item, and outputs the encoded data stream shown in FIG. 2 ( a ) to the RAID controller 12 . Addition of the 16-byte Reed-Solomon correction code enables correction of an error of up to 8 bytes.
  • the error correction encoder 17 receives the encoded data stream shown in FIG. 2 ( a ) from the RAID controller 12 , and corrects an error in real data using the Reed-Solomon correction code.
  • the RAID controller 12 divides the encoded data stream output from the error correction encoder 16 into units of 6093 bytes, and divides each unit into three data blocks comprising 2031 bytes.
  • FIG. 2 ( b ) shows one of the data blocks. At this moment, the data block is 17 bytes less than the capacity of one page, i.e., 2048 bytes.
  • the RAID controller 12 outputs the data block shown in FIG. 2 ( b ) to each of three error detectors of the error detectors 13 - 1 to 13 - 4 .
  • the RAID controller 12 divides the encoded data stream output from the error correction encoder 16 into data blocks shown in FIG. 3 ( a ), and generates a 2031-byte parity data block shown in FIG. 3 ( b ). At this moment, the parity data block is 17 bytes less than the capacity of one page, i.e., 2048 bytes.
  • the RAID controller 12 outputs the parity data block shown in FIG. 3 ( b ) to one error detector of the error detectors 13 - 1 to 13 - 4 .
  • the RAID controller 12 When image data is reproduced, the RAID controller 12 receives the data block shown in FIG. 2 ( b ) from each of three error detectors of the error detectors 13 - 1 to 13 - 4 . The RAID controller 12 also receives the parity data block shown in FIG. 3 ( b ) from one error detector of the error detectors 13 - 1 to 13 - 4 .
  • the RAID controller 12 When the RAID controller 12 receives a detection signal from one of the error detectors 13 - 1 to 13 - 4 , the RAID controller 12 determines that an error has occurred in the data block or parity data block supplied from the error detector which has generated the detection signal. If the RAID controller 12 determines that one of the data blocks includes an error, the RAID controller 12 restores the data block including an error based on the remaining data blocks and the parity data block. The RAID controller 12 synthesizes the restored data block and the other data blocks to generate the encoded data stream shown in FIG. 2 ( a ). If no data block includes an error, the RAID controller 12 synthesizes the data blocks from three of the error detectors 13 - 1 to 13 - 4 to generate the encoded data stream shown in FIG. 2 ( a ). The RAID controller 12 outputs the encoded data stream to the error correction decoder 17 .
  • the error detector 13 - 1 When image data is recorded, the error detector 13 - 1 adds a one-byte checksum to the data block or parity data block output from the RAID controller 12 as shown in FIG. 2 ( c ). The error detector 13 - 1 outputs the data block or parity data block shown in FIG. 2 ( c ) to the memory unit 14 - 1 .
  • the error detector 13 - 1 receives the data block or parity data block shown in FIG. 2 ( c ) from the memory unit 14 - 1 .
  • the error detector 13 - 1 refers to the checksum, and determines whether or not an error has occurred in the data block or parity data block. If the error detector 13 - 1 determines that an error has occurred in the data block or parity data block, the error detector 13 - 1 generates a detection signal and outputs it to the RAID controller 12 .
  • the error detector 13 - 1 outputs the data block or parity data block shown in FIG. 2 ( b ) to the RAID controller 12 .
  • the ECC adding unit 141 - 1 adds a 16-byte ECC to the data block or parity data block output from the error detector 13 - 1 after the checksum, as shown in FIG. 2 ( d ).
  • the ECC adding unit 141 - 1 outputs the data block or parity data block shown in FIG. 2 ( d ) to the memory 142 - 1 . Accordingly, the capacity of 2048 bytes is fully occupied.
  • the data block or parity data block to which the ECC has been added is written to the memory chips 1422 - 11 to 1422 - 132 by the memory controller 1421 - 1 .
  • the ECC adding unit 141 - 1 receives the data block or parity data block shown in FIG. 2 ( d ) from the memory 142 - 1 .
  • the ECC adding unit 141 - 1 corrects real data of the data block or parity data block using the ECC.
  • the ECC adding unit 141 - 1 outputs the data block or parity data block shown in FIG. 2 ( c ) to the error detector 13 - 1 .
  • FIG. 4 shows a schematic diagram of the data blocks and parity data block recorded in the memories 142 - 1 to 142 - 4 by the above-described processing.
  • D 11 , D 12 , D 13 , . . . represent data blocks
  • P 10 , P 20 , P 30 , . . . represent parity data blocks.
  • the data block and parity data block are written in units of one page, which is a writable unit of the memory chips.
  • the memory unit in which the parity data block is recorded is switched by the RAID controller 12 for each page.
  • FIG. 5 is a flowchart showing how the RRID controller 12 restores data in the data storage apparatus according to the first embodiment.
  • the RAID controller 12 determines whether a detection signal has been transmitted from any error detector of the error detectors 13 - 1 to 13 - 4 (step S 51 ). If the RAID controller 12 receives a detection signal (Yes in step S 51 ), the RAID controller 12 determines that the data block or parity data block output from an error detector which has transmitted the detection signal includes an error. The RAID controller 12 determines whether or not a data block includes the error (step S 52 ). When a data block includes the error (Yes in step S 52 ), the RAID controller 12 restores the data block including the error based on normal two data blocks and a parity data block (step S 53 ). The RAID controller 12 synthesizes the restored data block and the normal two data blocks to generate an encoded data stream, and outputs the encoded data stream to the error correction decoder 17 (step S 54 ).
  • step S 51 When the detection signal is not received in step S 51 (No in step S 51 ), the RAID controller 12 synthesizes three data blocks to generate an encoded data stream, and outputs the encoded data stream to the error correction decoder 17 (step S 55 ).
  • step S 52 When the RAID controller 12 determines that no data block includes an error in step S 52 (No in step S 52 ), the RAID controller 12 moves the processing to step S 55 .
  • the data storage apparatus when image data is recorded, the data storage apparatus adds an error correction code, such as a Reed-Solomon correction code, to an encoded data stream output from the encoder 11 by means of the error correction encoder 16 , generates a parity data block by means of the RAID controller 12 , adds an ECC to data blocks and a parity data block output from the error detectors 13 - 1 to 13 - 4 by means of the ECC adding units 141 - 1 to 141 - 4 .
  • an error correction code such as a Reed-Solomon correction code
  • the data storage apparatus corrects a bit error in the data blocks and parity data block output from the memories 142 - 1 to 142 - 4 by means of the ECC adding units 141 - 1 to 141 - 4 , restores a data block including an error by means of the RAID controller 12 , and corrects a burst error in an encoded data stream output from the RAID controller 12 by means of the error correction decoder 17 . Accordingly, when image data is recorded/reproduced, the data storage apparatus performs triple error prevention processes.
  • the data storage apparatus comprises the error correction encoder 16 and the error correction decoder 17 in addition to the ECC adding units 141 - 1 to 141 - 4 and RAID controller 12 .
  • the data storage apparatus can further perform error correction on the encoded data stream output from the RAID controller 12 .
  • the error can be corrected by the error correction decoder 17 . Namely, even when memory chip failure occurs in a plurality of memory units, normal image data can be reproduced.
  • the RAID controller restores data recorded in the failed memory unit based on data recorded in the other normal memory units.
  • the RAID controller writes restored data to the replacement memory unit, thereby reconstructing data recorded in the failed memory unit.
  • the data storage apparatus comprises the error correction encoder 16 and the error correction decoder 17 .
  • error correction can be further performed on encoded data stream restored by the RAID controller 12 . Namely, even when a memory chip failure occurs in a plurality of memory units, and the RAID controller 12 cannot correctly restore a data block, an error can be corrected by the error correction decoder 17 . Data of which error has been corrected by the error correction decoder 17 is encoded by the error correction encoder 16 , and written to the replacement memory unit, thereby reconstructing data. Accordingly, even when a memory chip failure occurs in a plurality of memory units, data recorded in the failed memory units can be correctly reconstructed.
  • the data storage apparatus can substantially improve reliability in recording, reproduction and reconstruction of image data.
  • the error detector 13 - 1 adds an error correction code to a data block or parity data block output from the RAID controller 12 for each page.
  • the error detector 13 - 1 determines occurrence of an error in the data block or parity block output from the memory unit 14 - 1 for each page based on the error detection code. Therefore, a memory chip failure can be detected for each page, which is a writable unit of the memory chip.
  • presence/absence of a failure can be determined for each writable unit of the memory chip. Therefore, when one memory chip fails, the data storage apparatus does not determine that the entire memory unit has failed. Namely, even when one memory chip of the memory unit fails, the memory unit can be used continuously.
  • FIG. 6 is a block diagram showing a functional configuration of a data storage apparatus according to a second embodiment.
  • the data storage apparatus in FIG. 6 comprises an encoder 11 , a Redundant Arrays of Independent Disks (RAID) controller 12 , error detectors 13 - 1 to 13 - 4 , memory units 14 - 1 to 14 - 4 , and a decoder 15 .
  • the data storage apparatus has a configuration according to RAID 5.
  • the RAID controller 12 is connected to the encoder 11 and the decoder 15 .
  • the RAID controller 12 comprises connection interfaces 121 - 1 to 121 - 4 .
  • the RAID controller 12 is connected to the error detectors 13 - 1 to 13 - 4 by the connection interfaces 121 - 1 to 121 - 4 .
  • the error detectors 13 - 1 to 13 - 4 are connected to the memory units 14 - 1 to 14 - 4 .
  • the encoder 11 acquires an image data stream from, for example, a camera, and encodes the image data stream by a predetermined encoding method.
  • the encoder 11 outputs an encoded data stream to the RAID controller 12 .
  • the RAID controller 12 divides the encoded data stream output from the encoder 11 into units of a writable page, thereby generating three data blocks.
  • the RAID controller 12 generates a parity data block corresponding to one writable page.
  • the capacity of one page, which is a writable unit, is determined depending on the memory chips.
  • the parity data block is generated so that the three data blocks and the parity data block have no “1” or even-numbered “1” in total.
  • the RAID controller 12 distributes the data blocks to three of the connection interfaces 121 - 1 to 121 - 4 , and outputs the parity data block to the remaining one of the connection interfaces 121 - 1 to 121 - 4 .
  • the RAID controller 12 sequentially switches the connection interface to which parity data block is output, allowing the other connection interfaces to receive the data blocks.
  • the RAID controller 12 When image data is reproduced, the RAID controller 12 receives data blocks and a parity data block from the error detectors 13 - 1 to 13 - 4 via the connection interfaces 121 - 1 to 121 - 4 . When an error occurs in one of the data blocks, the RAID controller 12 restores the data block including an error based on the normal data blocks and the parity data block. The RAID controller 12 synthesizes the restored data block and the normal data blocks to generate an encoded data stream, and outputs it to the decoder 15 . On the other hand, when no error occurs, the RAID controller 12 synthesizes the data blocks output from three of the error detectors 13 - 1 to 13 - 4 to generate an encoded data stream. The RAID controller 12 outputs the encoded data stream to the decoder 15 .
  • the decoder 15 decodes the encoded data stream output from the RAID controller 12 by a decoding method according to the encoding method of the encoder 11 to generate an image data stream.
  • the decoder 15 outputs the image data stream to the outside.
  • the error detector 13 - 1 When image data is recorded, the error detector 13 - 1 adds an error detection code, such as a checksum, to a data block or parity data block output from the RAID controller 12 for each page. The error detector 13 - 1 outputs the data block or parity data block to which the error detection code has been added to the memory unit 14 - 1 .
  • an error detection code such as a checksum
  • the error detector 13 - 1 receives a data block or parity data block from the memory unit 14 - 1 .
  • the error detector 13 - 1 determines whether the data block or parity data block output from the memory unit 14 - 1 includes an error based on the error detection code.
  • the error detector 13 - 1 detects an error in the data block or parity data block, the error detector 13 - 1 outputs a detection signal to the RAID controller 12 .
  • the processing in error detectors 13 - 2 to 13 - 4 is the same as that of error detector 13 - 1 .
  • the memory units 14 - 1 to 14 - 4 respectively comprise error correction units 143 - 1 to 143 - 4 and memories 142 - 1 to 142 - 4 .
  • the memories 142 - 1 to 142 - 4 respectively comprise: memory controllers 1421 - 1 to 1421 - 4 ; memory chips 1422 - 11 to 1422 - 132 , . . . , 1422 - 41 to 1422 - 432 , each of which comprises semiconductor memories, such as a flush memory; and serial-to-parallel converters 1423 - 1 to 1423 - 4 .
  • 32 memory chips are used. However, the number of memory chips is not limited to 32.
  • the memory units 14 - 1 to 14 - 4 store the data blocks and parity data block output from the error detectors 13 - 1 to 13 - 4 .
  • the same processing is performed in the memory units 14 - 1 to 14 - 4 , and processing in memory unit 14 - 1 will be representatively described below.
  • the error correction unit 143 - 1 encodes the data block or parity data block output from the error detector 13 - 1 by means of an error correction code capable of correcting a burst error.
  • an error correction code capable of correcting a burst error.
  • the error correction unit 143 - 1 adds a Reed-Solomon correction code so that the total code length of the data block or parity data block and the Reed-Solomon correction code corresponds to N times the number of parallel memory chips, where N is a natural number. For example, since 32 memory chips are used in the present embodiment, the error correction unit 143 - 1 adds a two-byte error correction code to each 30-byte data block or parity data block.
  • the error correction unit 143 - 1 outputs a data block or parity data block to which the error correction code has been added to the memory 142 - 1 .
  • the memory controller 1421 - 1 when the memory controller 1421 - 1 receives the data block or parity data block output from the error correction unit 143 - 1 , the memory controller 1421 - 1 performs writing control on the memory chips 1422 - 11 to 1422 - 132 .
  • the serial-to-parallel (S/P) converter 1423 - 1 divides the data block or parity data block output from the error correction unit 143 - 1 into one-byte data items, and outputs the data items to the memory chips 1422 - 11 to 1422 - 132 in parallel.
  • the memory chips 1422 - 11 to 1422 - 132 write the data items output from the S/P converter 1423 - 1 to the semiconductor memories.
  • the memory units 14 - 1 to 14 - 4 read the recorded data blocks and the recorded parity data block, and output them to the error detectors 13 - 1 to 13 - 4 .
  • the same processing is performed in the memory units 14 - 1 to 14 - 4 , and processing in memory unit 14 - 1 will be representatively described below.
  • the memory controller 1421 - 1 read data items recorded in the memory chips 1422 - 11 to 1422 - 132 .
  • the S/P converter 1423 - 1 synthesizes the data items read from the memory chips 1422 - 11 to 1422 - 132 to generate a data block or parity data block.
  • the S/P converter 1423 - 1 outputs the data block or parity data block to the error correction unit 143 - 1 .
  • the error correction unit 143 - 1 corrects a burst error in the data block or parity data block output from the memory 142 - 1 by means of an error correction code.
  • the error correction unit 143 - 1 outputs the data block or parity data block of which burst error has been corrected to the error detector 13 - 1 .
  • FIG. 7 is a schematic diagram showing processing performed on a data block or a parity data block in the data storage apparatus according to the second embodiment.
  • the capacity of one page is 2048 bytes, but the capacity of one page of this embodiment is not limited to 2048 bytes.
  • the RAID controller 12 divides an encoded data stream output from the encoder 11 into units of 5670 bytes, and divides each unit into three data blocks comprising 1890 bytes as shown in FIG. 7 ( a ).
  • the data block is 158 bytes less than the capacity of one page, i.e., 2048 bytes.
  • the RAID controller 12 outputs the data block shown in FIG. 7 ( a ) to each of three error detectors of the error detectors 13 - 1 to 13 - 4 .
  • the RAID controller 12 generates a 1890-byte parity data block as shown in FIG. 7 ( a ) for the encoded data stream output from the encoder 11 .
  • the RAID controller 12 outputs the parity data block shown in FIG. 7 ( a ) to one error detector of the error detectors 13 - 1 to 13 - 4 .
  • the RAID controller 12 When image data is reproduced, the RAID controller 12 receives the data block shown in FIG. 7 ( a ) from each of three error detectors of the error detectors 13 - 1 to 13 - 4 . The RAID controller 12 also receives the parity data block shown in FIG. 7 ( a ) from one error detector of the error detectors 13 - 1 to 13 - 4 .
  • the RAID controller 12 When the RAID controller 12 receives a detection signal from one of the error detectors 13 - 1 to 13 - 4 , the RAID controller 12 determines that an error has occurred in the data block or the parity data block supplied from the error detector which has generated the detection signal. If the RAID controller 12 determines that one of the data blocks includes the error, the RAID controller 12 restores the data block including the error based on the other data blocks and the parity data block. The RAID controller 12 synthesizes the restored data block and the other data blocks to generate an encoded data stream. If no data block includes an error, the RAID controller 12 synthesizes the data blocks from three of the error detectors 13 - 1 to 13 - 4 to generate an encoded data stream. The RAID controller 12 outputs the encoded data stream to the decoder 15 .
  • the error detector 13 - 1 When image data is recorded, the error detector 13 - 1 adds a 32-byte checksum to the data block or parity data block output from the RAID controller 12 as shown in FIG. 7 ( b ). The error detector 13 - 1 outputs the data block or parity data block shown in FIG. 7 ( b ) to the memory unit 14 - 1 .
  • the error detector 13 - 1 receives the data block or parity data block shown in FIG. 7 ( b ) from the memory unit 14 - 1 .
  • the error detector 13 - 1 refers to the checksum, and determines whether or not an error has occurred in the data block or parity data block. If the error detector 13 - 1 determines that an error has occurred in the data block or parity data block, the error detector 13 - 1 generates a detection signal and outputs it to the RAID controller 12 .
  • the error detector 13 - 1 outputs the data block or parity data block shown in FIG. 7 ( a ) to the RAID controller 12 .
  • the error correction unit 143 - 1 When image data is recorded, the error correction unit 143 - 1 adds a two-byte Reed-Solomon correction code to the data block or parity data block output from the error detector 13 - 1 for each 30 bytes of real data, as shown in FIG. 7 ( c ). Accordingly, the one-page capacity of 2048 bytes is fully occupied.
  • the error correction unit 143 - 1 outputs the data block or parity data block shown in FIG. 7 ( c ) to the memory 142 - 1 .
  • the error correction unit 143 - 1 receives the data block or parity data block shown in FIG. 7 ( c ) from the memory 142 - 1 .
  • the error correction unit 143 - 1 corrects a burst error in the 30 bytes of real data by means of the two-byte Reed-Solomon correction code.
  • the error correction unit 143 - 1 outputs the data block or parity data block shown in FIG. 7 ( b ) to the error detector 13 - 1 .
  • FIG. 8 is a schematic view showing parallelization processing of the S/P converter 1423 - 1 in the data storage apparatus according to the second embodiment.
  • the S/P converter 1423 - 1 receives the data block or parity data block shown in FIG. 7 ( c ) from the error correction unit 143 - 1 .
  • the S/P converter 1423 - 1 divides the data into one-byte data items, and outputs them to the memory chips 1422 - 11 to 1422 - 132 in parallel. Accordingly, 30 one-byte real data items and two one-byte Reed-Solomon correction codes are output to the memory chips 1422 - 11 to 1422 - 132 , respectively.
  • FIG. 9 is a schematic view showing an example of storage of the data block or parity data block in the memory chips 1422 - 11 to 1422 - 132 in the data storage apparatus according to the second embodiment.
  • the memory chips 1422 - 11 to 1422 - 132 write the data items output from the S/P converter 1423 - 1 to the semiconductor memories. Accordingly, the memory chips 1422 - 11 to 1422 - 132 store the data block or parity data block shown in FIG. 7 ( c ), as shown in FIG. 9 . Namely, the real data items and checksums are stored in memory chips 1422 - 11 to 1422 - 130 , and the Reed-Solomon correction codes and checksums are stored in memory chips 1422 - 131 and 1422 - 132 .
  • FIG. 10 shows a schematic view of the data block and parity data block recorded in the memories 142 - 1 to 142 - 4 by the above-mentioned writing processing.
  • D 11 , D 12 , D 13 , . . . represent data items generated by dividing a data block by S/P converters 1423 - 1 , 1423 - 4
  • P 10 , P 20 , P 30 , . . . represent data items generated by dividing a parity data block by S/P converters 1423 - 1 and 1423 - 4 .
  • the data items are written to the memory chips 1422 - 11 to 1422 - 132 , . . . , 1422 - 41 to 1422 - 432 in parallel.
  • the memory unit in which the parity data block is recorded is switched by the RAID controller 12 for each page.
  • FIG. 11 is a flowchart of how the RRID controller 12 restores data in the data storage apparatus according to the second embodiment.
  • the RAID controller 12 determines whether a detection signal has been transmitted from any error detector of the error detectors 13 - 1 to 13 - 4 (step S 111 ). If the RAID controller 12 receives a detection signal (Yes in step S 111 ), the RAID controller 12 determines that the data block or parity data block output from an error detector which has transmitted the detection signal includes an error. The RAID controller 12 determines whether or not a data block includes the error (step S 112 ). When a data block includes the error (Yes in step S 112 ), the RAID controller 12 restores the data block including the error based on normal two data blocks and a parity data block (step S 113 ). The RAID controller 12 synthesizes the restored data block and the normal two data blocks to generate an encoded data stream, and outputs the encoded data stream to the decoder 15 (step S 114 ).
  • step S 111 When the detection signal is not received in step S 111 (No in step S 111 ), the RAID controller 12 synthesizes three data blocks to generate an encoded data stream, and outputs the encoded data stream to the decoder 15 (step S 115 ).
  • step S 112 When the RAID controller 12 determines that no data block includes an error in step S 112 (No in step S 112 ), the RAID controller 12 moves the processing to step S 115 .
  • the data storage apparatus when image data is recorded, the data storage apparatus adds an error correction code so that the total code length of the real data and error correction code is N times the number of parallel memory chips.
  • the S/P converter 1423 - 1 outputs one-byte data items output from the error correction unit 143 - 1 to the memory chips in parallel. Accordingly, each of the memory chips connected in parallel store either the real data item or Reed-Solomon correction code.
  • the data storage apparatus When image data is reproduced, the data storage apparatus reads data items from the memory chips in parallel, and converts the read data items into serial data at the S/P converter 1423 - 1 .
  • the error correction unit 143 - 1 corrects the burst error based on the Reed-Solomon correction code. If data items read from the memory chips connected in parallel include an error, the error can be corrected based on the Reed-Solomon correction code. Consequently, even if one of the memory chips connected in parallel fails, a data error caused by the failure can be corrected.
  • the error detector 13 - 1 adds a 32-byte error detection code to the data block or parity data block output from the RAID controller 12 for each page.
  • the 32-byte error correction code is parallel-converted into units of one byte by the S/P converter 1423 - 1 , and the one-byte units are respectively written to the memory chips connected in parallel.
  • the error detector 13 - 1 determines occurrence of an error in a data block or parity data block output from the memory unit 14 - 1 based on the error detection code added to the data block or parity data block. Namely, the error detector 13 - 1 determines occurrence of an error based on the error detection code written to each memory chip. Accordingly, failure can be detected for each memory chip.
  • the RAID controller 12 restores the data block including an error based on normal data blocks and a parity data block. Accordingly, when a memory chip fails, data recorded in that memory chip can be restored.
  • the data storage apparatus of the present embodiment can compensate for failure of each memory chip, image data can be correctly reproduced even when a memory chip fails.
  • the second embodiment an exemplary case in which 32 memory chips are used has been explained.
  • the number of memory chips of the second embodiment is not limited to 32.
  • the error detector 13 - 1 adds a 64-byte checksum to a data block or parity data block
  • the error correction unit 143 - 1 adds a two-byte Reed-Solomon correction code to each 62-byte real data item.
  • the S/P converter 1423 - 1 outputs the data block or parity data block output from the error correction unit 143 - 1 to the 64 memory chips in parallel. Consequently, the ratio of the Reed-Solomon correction code to the real data decreases in comparison to the case where 32 memory chips are used, and a burst error can be more efficiently corrected.
  • the data storage apparatus of each of the above-described embodiments adopts RAID 5.
  • the RAID level is not limited to RAID 5, and any RAID which generates a parity data block may be used.
  • the above-described embodiments can be implemented even when, for example, RAID 3 or RAID 4 is adopted.
  • image data is encoded by the encoder 11 and output to the RAID controller 12 , and an encoded data stream output from the error correction decoder 17 or the RAID controller 12 is decoded by the decoder 15 .
  • another configuration may be adopted.
  • the configuration in which an encoded data stream is externally acquired by the error correction encoder 16 or the RAID controller 12 , and an encoded data stream output from the error correction decoder 17 or the RAID controller 12 is output to the outside may be adopted.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
US13/014,938 2010-03-16 2011-01-27 Data storage apparatus and data writing/reading method Active 2031-10-07 US8495468B2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010059814A JP4940322B2 (ja) 2010-03-16 2010-03-16 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
JP2010-059814 2010-03-16

Publications (2)

Publication Number Publication Date
US20110231737A1 US20110231737A1 (en) 2011-09-22
US8495468B2 true US8495468B2 (en) 2013-07-23

Family

ID=44648190

Family Applications (1)

Application Number Title Priority Date Filing Date
US13/014,938 Active 2031-10-07 US8495468B2 (en) 2010-03-16 2011-01-27 Data storage apparatus and data writing/reading method

Country Status (3)

Country Link
US (1) US8495468B2 (ja)
JP (1) JP4940322B2 (ja)
KR (1) KR101252382B1 (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938661B2 (en) 2012-08-01 2015-01-20 Nvidia Corporation System and method for detecting errors in audio data
US9009561B2 (en) * 2012-08-01 2015-04-14 Nvidia Corporation System and method for detecting errors in audio data
US20150331749A1 (en) * 2014-05-16 2015-11-19 International Business Machines Corporation Storage element polymorphism to reduce performance degradation during error recovery
US9804914B2 (en) 2015-09-18 2017-10-31 SK Hynix Inc. Semiconductor memory and semiconductor system using the same
US9836224B2 (en) 2014-04-21 2017-12-05 Samsung Electronics Co., Ltd. Storage controller, storage system and method of operating storage controller
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013058103A (ja) * 2011-09-08 2013-03-28 Toshiba Corp 映像収録再生装置及びリビルド処理方法
US9158675B2 (en) * 2012-03-16 2015-10-13 Marvell World Trade Ltd. Architecture for storage of data on NAND flash memory
JP5970917B2 (ja) * 2012-03-30 2016-08-17 富士通株式会社 受信回路、情報処理装置、および制御方法
EP2856471A4 (en) * 2012-05-31 2015-11-18 Hewlett Packard Development Co LOCAL ERROR DETECTION AND GLOBAL ERROR CORRECTION
US8972826B2 (en) 2012-10-24 2015-03-03 Western Digital Technologies, Inc. Adaptive error correction codes for data storage systems
US9311181B2 (en) 2012-11-15 2016-04-12 Samsung Electronics Co., Ltd. Memory controller changing partial data in memory device and method for changing partial data thereof
US8935592B2 (en) * 2012-11-20 2015-01-13 Arm Limited Apparatus and method for correcting errors in data accessed from a memory device
US9021339B2 (en) 2012-11-29 2015-04-28 Western Digital Technologies, Inc. Data reliability schemes for data storage systems
US9059736B2 (en) 2012-12-03 2015-06-16 Western Digital Technologies, Inc. Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme
US9214963B1 (en) 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
JP6005533B2 (ja) * 2013-01-17 2016-10-12 株式会社東芝 記憶装置および記憶方法
WO2014158130A1 (en) * 2013-03-25 2014-10-02 Hewlett-Packard Development Company, L.P. Memory device having error correction logic
JP6479638B2 (ja) * 2015-12-09 2019-03-06 株式会社東芝 ビデオサーバ装置およびデータ書き込み/読み出し方法
KR102688433B1 (ko) * 2017-05-07 2024-07-26 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
KR102688423B1 (ko) * 2017-07-05 2024-07-26 에스케이하이닉스 주식회사 메모리 장치, 이를 포함하는 메모리 시스템 및 메모리 시스템의 동작 방법
DE102017125617B8 (de) * 2017-11-02 2020-08-27 Infineon Technologies Ag Bestimmung und verwendung von bytefehlerpositionssignalen
CN109445982A (zh) * 2018-09-17 2019-03-08 至誉科技(武汉)有限公司 实现数据可靠读写的数据存储装置
CN109444716B (zh) * 2018-11-27 2021-08-10 中科曙光信息产业成都有限公司 一种具有定位功能的扫描测试结构及方法
CN114415983B (zh) * 2022-03-30 2022-06-07 苏州浪潮智能科技有限公司 一种raid编解码方法、装置、设备及可读存储介质
CN118098324A (zh) * 2022-11-18 2024-05-28 长鑫存储技术有限公司 存储器系统

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10240453A (ja) 1997-02-28 1998-09-11 Nec Corp ディスクアレイ装置
JPH1196081A (ja) 1997-09-22 1999-04-09 Chishiki Joho Kenkyusho:Kk 記憶装置の制御方法および記憶装置ならびに記憶装置の製造方法
US5960169A (en) * 1997-02-27 1999-09-28 International Business Machines Corporation Transformational raid for hierarchical storage management system
US6070182A (en) * 1998-06-05 2000-05-30 Intel Corporation Data processor having integrated boolean and adder logic for accelerating storage and networking applications
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
US6167087A (en) * 1996-12-03 2000-12-26 Sony Corporation Picture signal encoding method and apparatus and signal recording medium
US6230240B1 (en) * 1998-06-23 2001-05-08 Hewlett-Packard Company Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface
US6243827B1 (en) * 1998-06-30 2001-06-05 Digi-Data Corporation Multiple-channel failure detection in raid systems
JP2004030577A (ja) 2002-03-08 2004-01-29 Network Appliance Inc ストレージアレイにおける複数の記憶装置故障を訂正する方法
JP2008033412A (ja) 2006-07-26 2008-02-14 Hitachi Ltd 計算機システムの性能管理方法、管理計算機、及びストレージ装置
JP2008102819A (ja) 2006-10-20 2008-05-01 Hitachi Ltd 記憶装置及び記憶方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3138116B2 (ja) * 1993-05-31 2001-02-26 三洋電機株式会社 ディスク再生装置
JP2001006299A (ja) * 1999-06-18 2001-01-12 Matsushita Electric Ind Co Ltd データ誤り訂正装置
JP3341745B2 (ja) * 1999-12-10 2002-11-05 日本電気株式会社 電子ディスク装置の書き込み/読み出し制御方法及びその装置
JP2001325770A (ja) * 2000-05-16 2001-11-22 Sanyo Electric Co Ltd データ処理装置及びデータ変換回路
JP2002319233A (ja) * 2001-04-23 2002-10-31 Hitachi Ltd デジタル信号記録再生装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167087A (en) * 1996-12-03 2000-12-26 Sony Corporation Picture signal encoding method and apparatus and signal recording medium
US5960169A (en) * 1997-02-27 1999-09-28 International Business Machines Corporation Transformational raid for hierarchical storage management system
JPH10240453A (ja) 1997-02-28 1998-09-11 Nec Corp ディスクアレイ装置
US6148368A (en) * 1997-07-31 2000-11-14 Lsi Logic Corporation Method for accelerating disk array write operations using segmented cache memory and data logging
JPH1196081A (ja) 1997-09-22 1999-04-09 Chishiki Joho Kenkyusho:Kk 記憶装置の制御方法および記憶装置ならびに記憶装置の製造方法
US6070182A (en) * 1998-06-05 2000-05-30 Intel Corporation Data processor having integrated boolean and adder logic for accelerating storage and networking applications
US6230240B1 (en) * 1998-06-23 2001-05-08 Hewlett-Packard Company Storage management system and auto-RAID transaction manager for coherent memory map across hot plug interface
US6243827B1 (en) * 1998-06-30 2001-06-05 Digi-Data Corporation Multiple-channel failure detection in raid systems
JP2004030577A (ja) 2002-03-08 2004-01-29 Network Appliance Inc ストレージアレイにおける複数の記憶装置故障を訂正する方法
JP2008033412A (ja) 2006-07-26 2008-02-14 Hitachi Ltd 計算機システムの性能管理方法、管理計算機、及びストレージ装置
JP2008102819A (ja) 2006-10-20 2008-05-01 Hitachi Ltd 記憶装置及び記憶方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Office Action mailed Nov. 15, 2011 regarding corresponding Japanese Application No. 2010-059814, including Translation (5 pgs.).

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8938661B2 (en) 2012-08-01 2015-01-20 Nvidia Corporation System and method for detecting errors in audio data
US9009561B2 (en) * 2012-08-01 2015-04-14 Nvidia Corporation System and method for detecting errors in audio data
US9836224B2 (en) 2014-04-21 2017-12-05 Samsung Electronics Co., Ltd. Storage controller, storage system and method of operating storage controller
US20150331749A1 (en) * 2014-05-16 2015-11-19 International Business Machines Corporation Storage element polymorphism to reduce performance degradation during error recovery
US9823967B2 (en) * 2014-05-16 2017-11-21 International Business Machines Corporation Storage element polymorphism to reduce performance degradation during error recovery
US9804914B2 (en) 2015-09-18 2017-10-31 SK Hynix Inc. Semiconductor memory and semiconductor system using the same
US11886295B2 (en) 2022-01-31 2024-01-30 Pure Storage, Inc. Intra-block error correction

Also Published As

Publication number Publication date
KR101252382B1 (ko) 2013-04-08
JP2011192206A (ja) 2011-09-29
US20110231737A1 (en) 2011-09-22
JP4940322B2 (ja) 2012-05-30
KR20110104428A (ko) 2011-09-22

Similar Documents

Publication Publication Date Title
US8495468B2 (en) Data storage apparatus and data writing/reading method
US20110066883A1 (en) Data storage apparatus and data writing/reading method
US10503588B2 (en) Memory systems including memory controllers and memory modules and methods of processing data in the memory systems
US20190079836A1 (en) Predictive memory maintenance
US7581153B2 (en) Memory with embedded error correction codes
KR101298827B1 (ko) 반도체 디스크 및 시스템
US7900118B2 (en) Flash memory system and method for controlling the same
KR100535291B1 (ko) 엔코딩 방법 및 메모리 장치
US8438457B2 (en) Nonvolatile memory apparatus, memory controller, and memory system
US20110161774A1 (en) Semiconductor memory system having ecc circuit and method of controlling thereof
KR20180091989A (ko) 연장된 제품 수명을 갖는 메모리장치 및 그 동작방법
US20120102295A1 (en) Data compression and encoding in a memory system
KR20080106849A (ko) 재생 장치
US10817372B2 (en) Systems and methods for ultra fast ECC with parity
JP2013543159A (ja) 統合されたデータおよびヘッダ保護を含むコード化データをデコードするための方法および磁気テープ・ドライブ(統合されたデータおよびヘッダ保護を含むコード化データのデコード)
US6108812A (en) Target device XOR engine
US8856616B1 (en) Two dimensional encoding for non-volatile memory blocks
CN112596674A (zh) 一种用于固态硬盘主控缓存数据双重保护的方法及系统
US20160139988A1 (en) Memory unit
US20090164711A1 (en) Semiconductor memory controller, semiconductor memory, and method of controlling semiconductor memory controller
CN112346903B (zh) 用于执行内建式自我测试的独立磁盘冗余数组译码系统
JPH11143787A (ja) 記録再生装置
US8627167B1 (en) Methods and apparatus for providing multi-layered coding for memory devices
JP5361826B2 (ja) 記録ユニット及び故障チップ特定方法
US20170170848A1 (en) Video server device and writing/reading data method

Legal Events

Date Code Title Description
AS Assignment

Owner name: KABUSHIKI KAISHA TOSHIBA, JAPAN

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:DACHIKU, KENSHI;REEL/FRAME:025706/0291

Effective date: 20101108

STCF Information on status: patent grant

Free format text: PATENTED CASE

FEPP Fee payment procedure

Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

FPAY Fee payment

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8