US20070050663A1 - Error correction apparatus for performing consecutive reading of multiple code words - Google Patents
Error correction apparatus for performing consecutive reading of multiple code words Download PDFInfo
- Publication number
- US20070050663A1 US20070050663A1 US11/552,373 US55237306A US2007050663A1 US 20070050663 A1 US20070050663 A1 US 20070050663A1 US 55237306 A US55237306 A US 55237306A US 2007050663 A1 US2007050663 A1 US 2007050663A1
- Authority
- US
- United States
- Prior art keywords
- code words
- buffer memory
- error correction
- read
- data
- 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.)
- Abandoned
Links
- 238000012937 correction Methods 0.000 title claims abstract description 74
- 208000011580 syndromic disease Diseases 0.000 claims abstract description 57
- 238000000034 method Methods 0.000 claims abstract description 47
- 238000001514 detection method Methods 0.000 claims description 19
- 238000010586 diagram Methods 0.000 description 9
- 230000008901 benefit Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C11/4063—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
- G11C11/407—Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
- G11C11/408—Address circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2909—Product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/29—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2921—Coding, 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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
Definitions
- the present invention related to an error correction apparatus, and more particularly, to an error correction apparatus for calculating the syndrome of the data stored in a buffer memory, which includes a random access memory, to correct errors.
- FIGS. 1 ( a ) to 1 ( d ) illustrate the data format of a compact disc ROM (CD-ROM).
- CD-ROM data is formed from multiple sectors, each of which has 2352 bytes. Each sector includes 12 bytes of synchronizing data, 4 bytes of a header, 2048 bytes of user data, 4 bytes of error detection code (EDC) data, 8 bytes of ZERO data, and 276 bytes of error correction code (ECC) data.
- EDC error detection code
- the data excluding the 12 bytes of synchronizing data undergoes error correction with an ECC.
- the 2340 bytes of data which do not include the synchronizing data, are alternately divided into LS bytes and MS bytes. This generates data including 1170 LS bytes ( FIG. 1 ( c ) and 1170 LS bytes ( FIG. 1 ( d ).
- the 1170 LS bytes and 1170 MS bytes are coded in two directions, a P sequence (P group) direction and a Q sequence (Q group) direction.
- a P parity which consists of 2 bytes of data, is added to every 24 bytes of data in the P sequence direction.
- 43 code words which are coded in the P sequence direction, are configured.
- a Q-parity which consists of 2 bytes of data, is added to every 43 bytes of data.
- 26 code words (Q words) which are coded in the Q sequence direction, are configured.
- the symbols configuring the P codes and the Q codes are read from a memory to calculate a syndrome and determine whether the data includes errors.
- the detection of errors using the code words is performed as described below.
- a compact disc (CD) signal processing circuit performs a decoding process, such as error correction, on the data read from a CD-ROM in the same manner as CD audio.
- the processed data is stored as the CD-ROM data of FIG. 1 ( a ) in a dynamic random access memory (DRAM), which is a buffer memory.
- DRAM dynamic random access memory
- FIG. 3 illustrates the CD-ROM data stored in the DRAM.
- the 1176 bytes of data (6 bytes of data in the 12 bytes of synchronizing data and the 1170 LS bytes or MS bytes) are written along with the addresses of the DRAM.
- FIG. 3 shows an example in which column addresses have 256 bytes. A row address is incremented in cycles of 256 bytes. The MS bytes and LS bytes are actually written along each address in units of two bytes in the DRAM. The memory cells of the same row are connected to the same word line in the DRAM.
- the writing of data is basically performed in accordance with the order of a data stream when the CD-ROM data is transferred (i.e., the data stream of the CD-ROM data of FIG. 1 ( a ). However, the data is actually divided into 1170 LS bytes and 1170 MS bytes. Thus, the 6 bytes of synchronizing data and the data of FIGS. 1 ( c ) and 1 ( d ) are written to the memory cells starting from lower addresses. For example, referring to FIG. 3 , in row 0 of sector 1, the synchronizing data is written in column 1 to column 5. Data 0 of FIGS. 1 ( c ) and 1 ( d ) is written to row 0 column 6. Data 1 of FIGS. 1 ( c ) and 1 ( d ) is written to row 0 column 7.
- the CD-ROM data of each sector is read from the DRAM in units of code words. As an example, the reading order of the P codes will now the discussed. As shown in FIG. 4 , the CD-ROM data is read in code word units of 26 bytes. The symbols forming the read code words are used to calculate the syndrome. The syndrome is set to that it has a predetermined value when each piece of data (code word) does not include an error. Thus, the calculation of the syndrome enables determination of whether a code word includes an error.
- the value of the error and the location of the error are obtained based on the syndrome. Then, data is read again from the location including an error. An exclusive OR operation is performed with the read data and the value of the error to generate correct data. The erroneous data is then rewritten by the correct data.
- the EDC data of FIG. 1 ( a ) is used to check whether the error correction was performed properly.
- the data that has undergone the error correction process and the check for erroneous corrections is transferred from the DRAM to the host computer.
- the code words are used to perform error correction.
- the symbols are stored in the memory cell of the DRAM at non-consecutive addresses.
- the time for accessing the memory cell becomes long when reading the code words.
- three operations which include precharge, row address designation, and column address designation, are necessary.
- three clock signals must be provided each time a symbol is read. This hinders with increasing the speed of the error correction process.
- Such problem occurs in an error correction apparatus that stores data temporarily in a buffer memory and then sequentially reads symbols which performing error detection or error correction.
- a perspective of the present invention is an error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words.
- the apparatus includes a memory access circuit for controlling reading and writing of the code words to the buffer memory.
- a plurality of operational circuits perform a syndrome calculation with each of the multiple code words read from the buffer memory.
- the memory access circuit consecutively reads the multiple code words from the buffer memory and distributes the code words to the plurality of operational circuits.
- a further perspective of the present invention is an error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words.
- the apparatus includes a memory access circuit connected to the buffer memory for reading and writing the code words to the buffer memory in accordance with an address signal.
- An address generation circuit generates the address signal to designate an address of the code words read from and written to the buffer memory and to provide the address signal to the memory access circuit.
- a timing generation circuit is connected to the address generation circuit for generating a timing signal to control the address generation circuit so that the address signal is generated to read the code words from the buffer memory.
- a syndrome generation circuit generates multiple syndromes in parallel in correspondence with the multiple code words by processing the code words of the digital data read from the buffer memory.
- a further perspective of the present invention is a method for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words.
- the method includes consecutively reading the code words of the digital data from the buffer memory, generating multiple syndromes in parallel by processing the code words of the digital data read from the buffer memory, and performing the error correction process on the digital data using the multiple syndromes.
- a further perspective of the present invention is a method for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words.
- the method includes generating an address signal to consecutively read the code words from the buffer memory, consecutively reading the code words of the digital data from the buffer memory in accordance with the address signal, generating multiple syndromes in parallel by processing the code words read from the buffer memory, and performing the error correction process on the digital data using the multiple syndromes.
- FIGS. 1 ( a ) to 1 ( d ) are diagrams illustrating the data format of a prior are CD-ROM;
- FIG. 2 is a diagram illustrating a code word of a prior are CD-ROM
- FIG. 3 is a diagram illustrating the prior art CD-ROM data stored in a DRAM
- FIG. 4 is a diagram illustrating the order for reading the prior art code word
- FIG. 5 is a diagram illustrating the order for reading a code word in the present invention.
- FIG. 6 is a schematic block diagram illustrating an error correction apparatus according to one embodiment of the present invention.
- FIG. 7 is a schematic circuit diagram of a syndrome generation circuit of the error correction apparatus of FIG. 6 ;
- FIG. 8 is a schematic block diagram of a symbol counter of the error correction apparatus of FIG. 6 ;
- FIGS. 9 ( a ) to 9 ( o ) are time charts illustrating the timing for reading a code word of the error correction apparatus of FIG. 6 ;
- FIG. 10 is a time chart illustrating the timing for reading the prior art code word.
- FIG. 11 is a time chart illustrating the timing for reading a further code word of the error correction apparatus of FIG. 6 .
- the error correction apparatus corrects errors using P codes of CD-ROM.
- Each symbol of the four code words, which are adjacent to one another, is stored in the DRAM according to the adjacent address. Therefore, after designating a row address of the DRAM, a page mode technique, which changes the column addresses in accordance with each code word, is employed to read data from the DRAM.
- the row address is re-designated in an exceptional manner when the row address changes.
- the read address is detected to determine whether or not the column address of the DRAM of FIG. 3 is “ 255 ”. When it is determined that the column address is “ 255 ”, a new row address is designated.
- FIG. 6 is a schematic block diagram of an error correction apparatus 100 according to a preferred embodiment of the present invention.
- the error correction apparatus 100 includes a DRAM 10 for storing the CD-ROM data and a bus arbiter 11 for selecting the process that is to be performed in the DRAM 10 .
- the DRAM 10 has the same configuration as that of the DRAM of FIG. 3 .
- the bus arbiter 11 is provided with the CD-ROM data transferred from a CD signal processing circuit (not shown) and the addresses of the DRAM 10 .
- the bus arbiter 11 generates a row address strobe (RAS) signal and a column address strobe (column address strobe) signal to write data to the DRAM 10 at the designated address.
- RAS row address strobe
- CAS column address strobe
- the RAS signal, the CAS signal, and the CD-ROM data are written to the DRAM 10 .
- the RAS signal and the CAS signal are used to access the data subject to the reading.
- the error correction apparatus 100 includes an error timing generation circuit 20 for reading write data in the manner shown in FIG. 5 .
- a sector head address generation circuit 21 designates the byte number corresponding to the head of the sector to which the data read from the DRAM 10 belongs.
- the head of the sector is designated using the sum of the bytes of data written to the DRAM 10 .
- the head “ 0000 ” of sector 1 is designated when reading data that belongs to sector 1 of FIG. 3 .
- the head “ 2352 ” is designated when reading data belonging to sector 2 .
- the head “ 4704 ” of sector 3 is designated when reading data belonging to sector 3 .
- an ECC offset address generation circuit 22 designates the data that is subject to reading in accordance with the order in the sector. More specifically, the data subject to reading is basically designated in the order of “ 0000 , 0001 , 0002 , 0003 , 0043 , 0044 , 0045 , 0046 , 0086 , . . . ”. However, since the first six bytes of data from the head of each sector (the data of the LS bytes and the data of the MS bytes) are synchronizing data, the six bytes of data are not read to calculate the syndrome.
- the ECC offset address generation circuit 22 designates the data that is subject to reading in the order of “ 0006 , 0007 , 0008 , 0009 , 0049 , 0050 , 0051 , 0052 , 0092 , . . . ”.
- an adder 23 calculates a designated value of the data reading order in the DRAM 10 .
- the storing of data by the memory cell of the DRAM 10 in units of 2 bytes is considered. That is, with respect to the data of sector 1 of FIG. 3 , designated values in the reading order of “ 0006 , 0007 , 0008 , 0009 , 0049 , 0050 , 0051 , 0052 , 0092 , . . . ” are calculated.
- the bus arbiter 11 reads data from the DRAM 10 in accordance with the designated values.
- the designated values of the adder 23 are also provided to a page boundary detection circuit 24 .
- the page boundary detection circuit 24 generates a page boundary signal when the colum address of the DRAM 10 of the reading subject data is “ 255 ” (page boundary).
- the boundary is set when the lower eight bits of a binary designated value of the adder 23 are all “1”.
- the error correction timing generation circuit 20 When determining that the row address does not change, the error correction timing generation circuit 20 provides the bus arbiter 11 with an instruction for designating the row address once and then designating the column address corresponding to each cod word of the reading subject four times (or three times) to read the code word. When determining that the row address changed, the error correction timing generation circuit 20 provides the bus arbiter 11 with an instruction for newly designating the row address after reading the data of the page boundary.
- a CD-ROM decoding circuit 30 performs an error correction process on the data read from the DRAM 10 .
- the CD-ROM decoding circuit 30 includes a syndrome generation circuit 31 , an error correction circuit 32 , an ECC address generation circuit 33 , and an error detection circuit 34 .
- the syndrome generation circuit 31 is provided with the data read from the DRAM 10 via the bus arbiter 11 .
- the syndrome generation circuit 31 calculates the two syndromes of S 0 and S 1 for each code word.
- the initial value represents “0”, v(i) represents the value of the i th symbol of the code word, and ⁇ represents the adding of a Galois body.
- the initial value is represented by “0”, a represents a primitive element, and * represents the multiplying of a Galois body.
- the syndrome generation circuit 31 generates the syndromes S 0 , S 1 of each of the four code words in parallel.
- operational circuits S 00 , S 01 , S 02 , S 03 calculate the syndrome S 0
- operational circuits S 10 , S 11 , S 12 , S 13 calculate the syndrome S 1 .
- a register represented as reg in FIG. 7
- the operational circuit performs a calculation with the symbol v (i) read from the DRAM 10 .
- the syndrome S 0 is transferred to the error detection circuit 34 via a multiplexer M 1
- the syndrome S 1 is transferred to the error detection circuit 34 via a multiplexer M 2 .
- the error detection circuit 34 determines whether an error code includes an error based on the syndromes S 0 , S 1 . If there is an error, the value of the error and the location of the error are calculated, and the error correction circuit 32 and the ECC address generation circuit 33 are provided with the calculated results.
- the ECC address generation circuit 33 generates an address designating the location of an error and provides the bus arbiter 11 with the address.
- the bus arbiter 11 reads data from the erroneous location of the DRAM 10 and provides the read data to the error correction circuit 32 .
- the error correction circuit 32 generates correct data from the erroneous data and the value of the error provided from the error detection circuit 34 .
- the erroneous data of the DRAM 10 is rewritten to the correct data.
- an EDC decoder block (not shown) checks whether error correction was properly performed using the EDC data of FIG. 1 ( a ). After such series of processes are performed, when a host computer (not shown) instructs the bus arbiter 11 to transfer data, the bus arbiter 11 reads data from the DRAM 10 and transfers the read data to the host computer.
- the error correction timing generation circuit 20 controls the timing for reading code words from the DRAM 10 and the timing for calculating the syndrome with the syndrome generation circuit.
- the error correction timing generation circuit 20 includes a symbol counter 150 for allocating the data selectively read from the DRAM 10 by each operational circuit.
- the symbol counter 150 which includes a register 40 , a count control circuit 42 , and a decoder 41 , increments a count value in accordance with, for example, the signal of a CAS or the like (the signal synchronized with the timing for reading data from the DRAM 10 ).
- the lower two digits “ 00 ”, “ 01 ”, “ 10 ”, “ 11 ” of the count value of the symbol counter 150 respectively correspond to four code words.
- the data read from the DRAM 10 is selectively distributed to a plurality of operational circuits based on the count value.
- the register 40 temporarily holds the count value generated by the count control circuit 42 and provides the count value to the decoder 41 and the count control circuit 42 in synchronism with the timing signal (e.g. CAS signal). Based on the lower two digits of the count value, the decoder 41 selectively provides an enable signal to the registers of the operational circuits S 00 , S 10 , the registers of the operation circuits S 01 , S 11 , the registers of the operational circuits S 02 , S 12 , and the registers of the operational circuits S 03 , S 13 .
- the syndromes of the four code words are calculated by the operational circuits in response to the enable signal.
- the count control circuit 42 receives a count value from the register 40 , adds “1” or “2” to the count value, and provides the added count value to the register 40 .
- the count value is “ 0000 ” to “ 1039 ”
- “ 1 ” is added to the count value (i.e., the count value is incremented).
- the count value reaches “1040”
- “1” or “2” is added to the count value based on the lower two digits of the count value.
- the lower two digits of the count value is “00” or “01”.
- “1” is added to the count value.
- the lower two digits of the count value is “10”
- “2” is added to the count value to set the lower two digits of the count value to “00”.
- the registers of the operational circuits S 00 , S 10 , the registers of the operational circuits S 01 , S 11 , and the registers of the operational circuits S 02 , S 12 are selectively activated to calculate the syndromes of the three code words in parallel.
- the error correction timing generation circuit 20 When the 26 symbols are distributed to each operational circuit and the syndrome of each code word is calculated, the error correction timing generation circuit 20 generates a clear signal to initialize the operational circuit. By providing the operation circuit with the clear signal, the operational circuit generates a new syndrome based on the symbol.
- the error correction timing generation circuit 20 includes a counter for providing a reset signal to the symbol counter 150 of FIG. 8 when determining that a sector of data has been read from the DRAM 10 .
- the counter value of the symbol counter 150 is initialized when it is determined that a sector of data has been read from the DRAM 10 . Accordingly, the enable signal is generated without causing the configuration of the symbol counter 150 to be complicated.
- the error correction timing generation circuit 20 provides the syndrome generation circuit 31 with a clear signal ( FIG. 9 ( f ) in synchronism with a predetermined clock signal ( FIG. 9 ( a ), the operational circuits S 00 , S 10 , the operational circuits S 01 , S 11 , the operational circuits S 02 , S 12 , and the operational circuits S 03 , S 13 are initialized. This enables each operation circuit to perform a new syndrome calculation.
- the RAS signal ( FIG. 9 ( c ) and the CAS signal ( FIG. 9 ( d )) are generated by the bus arbiter 11 .
- the row address of the DRAM 10 is designated when the RAS signal goes low, and the column address is designated when the CAS signal goes low.
- the designated row and column addresses are held until the RAS signal and the CAS signal go low the next time.
- the RAS signal is maintained at a constant level (low level) (i.e., the row address is maintained) until the CAS signal designates four column addresses. Accordingly, the data of four code words (d 0 , d 1 , d 2 , d 3 ) is read ( FIG. 9 ( e )) in synchronism with the trailing edge of the CAS signal.
- the error correction timing generation circuit 20 generates an enable signal ( FIG. 9 ( g )) and calculates the syndrome with the operational circuit of the syndrome generation circuit 31 using the read data. That is, the enable signal processes the data d 0 with the operational circuits S 00 , S 10 (FIGS.
- the RAS signal and the CAS signal After reading the data d 0 , d 1 , d 2 , d 3 , the RAS signal and the CAS signal go high, and the DRAM 10 performs a precharge operation (as indicated by xx in FIG. 9 ( b )). After the precharge operation, the RAS signal and the CAS signal go low again, and a predetermined address of the DRAM 10 is accessed to read data.
- each piece of data that is subject to reading requires three (3) clock signals, those for designating the row address and the column address of the DRAM 10 with the RAS signal and the CAS signal and that for performing the precharge operation (indicated as xx). Accordingly, when reading four pieces of data, 12 clock signals are necessary. Thus, the time for reading four pieces of data is twice as long in comparison with the preferred embodiment.
- the page boundary detection circuit 24 generates a page boundary signal SB when the column address indicates a page boundary of the DRAM 10 .
- the RAS signal and the CAS signal go high and the precharge operation (indicated by xx) is performed. Then, after designating a row address again with the RAS signal, the CAS signal designates a column address to read the two pieces of data d 2 , d 3 .
- the error correction apparatus of the preferred embodiment has the advantages discussed below.
- a plurality of P codes are consecutively read from the DRAM 10 .
- the page mode technique which consecutively designates column addresses, may be applied. This shortens the time the DRAM 10 is accessed.
- the page boundary detection circuit 24 detects whether the data subject to reading is at the boundary of a page. This guarantees that the processing based on the page mode technique is performed.
- the syndrome generation circuit 31 processes four code words in parallel. Thus syndrome calculation is performed within a short period of time.
- the symbol counter After the 1040 MS bytes and 1040 LS bytes are read, the symbol counter provides the enable signal only to the operational circuits S 00 , S 10 , the operational circuits S 01 , S 11 , and the operational circuits S 02 , S 12 . This guarantees the reading of the code word even if the total number of code words is not a multiple of the number of code words that are read consecutively.
- the multiplexers M 1 , M 2 distribute the error detection circuit 34 with syndromes, which are generated by processing four code words in parallel. This prevents the circuit area of the error detection circuit 34 from increasing.
- the page size of the DRAM 10 is not limited to 256 bytes.
- the page boundary detected by the page boundary detection circuit 24 is also changed.
- a read only memory may provide the enable signal.
- the application of the present invention is not limited to consecutive reading of the P codes.
- the present invention may also be applied to consecutive reading of the Q codes.
- the Q codes when the Q codes are first read, it is preferred that the data of a single word code be first read and that the data of multiple code words be read afterward. More specifically, referring to FIG. 2 , it is preferred that “ 0000 ” be first read, “ 0043 ” and “ 0044 ” be read next, and “ 0086 ”, and “ 0087 ”, and “ 0088 ” be read afterward.
- the data of four code words e.g., “ 0129 ”, “ 1130 ”, “ 0131 ”, and “ 0132 ” are read consecutively. In such case, the process for providing the syndrome generation circuit 31 with the enable signal and the clear signal is changes as required.
- the application of the invention is not restricted to the error correction process of a CD-ROM.
- the present invention may also be applied to an error correction process of a CD or a digital versatile disc (DVD).
- a high speed access technique such as the extended data output (EDO) technique
- EEO extended data output
- SDRAM synchronous DRAM
- the multiplexers M 1 and M 2 may be eliminated.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Signal Processing (AREA)
- Error Detection And Correction (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
An error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words. The device includes a memory access circuit for controlling reading and writing of the code words to the buffer memory. Operational circuits perform a syndrome calculation with each of the multiple code words read from the buffer memory. The memory access circuit consecutively reads the multiple code words from the buffer memory and distributes the code words to the operational circuits.
Description
- This application is a continuation and claims the benefit of priority under 35 USC § 120 of U.S. application Ser. No. 10/105,010, filed Mar. 22, 2002, which claims the benefit of a foreign priority application filed in Japan, serial number 2001-082298, filed Mar. 22, 2001. The disclosure of the the prior applications are considered part of (and are incorporated by reference in) the disclosure of this application.
- The present invention related to an error correction apparatus, and more particularly, to an error correction apparatus for calculating the syndrome of the data stored in a buffer memory, which includes a random access memory, to correct errors.
- FIGS. 1(a) to 1(d) illustrate the data format of a compact disc ROM (CD-ROM). As shown in
FIG. 1 (a), CD-ROM data is formed from multiple sectors, each of which has 2352 bytes. Each sector includes 12 bytes of synchronizing data, 4 bytes of a header, 2048 bytes of user data, 4 bytes of error detection code (EDC) data, 8 bytes of ZERO data, and 276 bytes of error correction code (ECC) data. - The data excluding the 12 bytes of synchronizing data undergoes error correction with an ECC. When the error correction is performed, the 2340 bytes of data, which do not include the synchronizing data, are alternately divided into LS bytes and MS bytes. This generates data including 1170 LS bytes (
FIG. 1 (c) and 1170 LS bytes (FIG. 1 (d). Further, referring toFIG. 2 , the 1170 LS bytes and 1170 MS bytes are coded in two directions, a P sequence (P group) direction and a Q sequence (Q group) direction. - For the first 1032 bytes of data, a P parity, which consists of 2 bytes of data, is added to every 24 bytes of data in the P sequence direction. Further, 43 code words (P codes), which are coded in the P sequence direction, are configured. As apparent from
FIG. 2 , the position of the jth symbol for the ith code word of the P codes is represented by “i+43 j (i=0, 1, . . . 42: j=0, 1, . . . 25). - For the first 1032 bytes of data and the 86 bytes of P parities (2 bytes×43), a Q-parity, which consists of 2 bytes of data, is added to every 43 bytes of data. Further, 26 code words (Q words) which are coded in the Q sequence direction, are configured. The position of the jth symbol for the ith code word of the Q codes is represented by “43 i+44 j mod (remainder) 1118 (i=0, 1, . . . 25: J=0, 1, . . . 42).
- The symbols configuring the P codes and the Q codes are read from a memory to calculate a syndrome and determine whether the data includes errors. The detection of errors using the code words is performed as described below.
- A compact disc (CD) signal processing circuit performs a decoding process, such as error correction, on the data read from a CD-ROM in the same manner as CD audio. The processed data is stored as the CD-ROM data of
FIG. 1 (a) in a dynamic random access memory (DRAM), which is a buffer memory.FIG. 3 illustrates the CD-ROM data stored in the DRAM. - More specifically, with regard to the CD-ROM sector data of
FIG. 1 (a), the 1176 bytes of data (6 bytes of data in the 12 bytes of synchronizing data and the 1170 LS bytes or MS bytes) are written along with the addresses of the DRAM.FIG. 3 shows an example in which column addresses have 256 bytes. A row address is incremented in cycles of 256 bytes. The MS bytes and LS bytes are actually written along each address in units of two bytes in the DRAM. The memory cells of the same row are connected to the same word line in the DRAM. - The writing of data is basically performed in accordance with the order of a data stream when the CD-ROM data is transferred (i.e., the data stream of the CD-ROM data of
FIG. 1 (a). However, the data is actually divided into 1170 LS bytes and 1170 MS bytes. Thus, the 6 bytes of synchronizing data and the data of FIGS. 1(c) and 1(d) are written to the memory cells starting from lower addresses. For example, referring toFIG. 3 , in row 0 ofsector 1, the synchronizing data is written incolumn 1 to column 5. Data 0 of FIGS. 1(c) and 1(d) is written to row 0 column 6.Data 1 of FIGS. 1(c) and 1(d) is written to row 0column 7. - The CD-ROM data of each sector is read from the DRAM in units of code words. As an example, the reading order of the P codes will now the discussed. As shown in
FIG. 4 , the CD-ROM data is read in code word units of 26 bytes. The symbols forming the read code words are used to calculate the syndrome. The syndrome is set to that it has a predetermined value when each piece of data (code word) does not include an error. Thus, the calculation of the syndrome enables determination of whether a code word includes an error. - When it is determined that the code word includes an error, the value of the error and the location of the error are obtained based on the syndrome. Then, data is read again from the location including an error. An exclusive OR operation is performed with the read data and the value of the error to generate correct data. The erroneous data is then rewritten by the correct data.
- After the error correction, the EDC data of
FIG. 1 (a) is used to check whether the error correction was performed properly. The data that has undergone the error correction process and the check for erroneous corrections is transferred from the DRAM to the host computer. - In this manner, the code words are used to perform error correction. However, the symbols are stored in the memory cell of the DRAM at non-consecutive addresses. Thus, the time for accessing the memory cell becomes long when reading the code words. More specifically, to read a symbol from the DRAM, three operations, which include precharge, row address designation, and column address designation, are necessary. Thus, three clock signals must be provided each time a symbol is read. This hinders with increasing the speed of the error correction process. Such problem occurs in an error correction apparatus that stores data temporarily in a buffer memory and then sequentially reads symbols which performing error detection or error correction.
- A perspective of the present invention is an error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words. The apparatus includes a memory access circuit for controlling reading and writing of the code words to the buffer memory. A plurality of operational circuits perform a syndrome calculation with each of the multiple code words read from the buffer memory. The memory access circuit consecutively reads the multiple code words from the buffer memory and distributes the code words to the plurality of operational circuits.
- A further perspective of the present invention is an error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words. The apparatus includes a memory access circuit connected to the buffer memory for reading and writing the code words to the buffer memory in accordance with an address signal. An address generation circuit generates the address signal to designate an address of the code words read from and written to the buffer memory and to provide the address signal to the memory access circuit. A timing generation circuit is connected to the address generation circuit for generating a timing signal to control the address generation circuit so that the address signal is generated to read the code words from the buffer memory. A syndrome generation circuit generates multiple syndromes in parallel in correspondence with the multiple code words by processing the code words of the digital data read from the buffer memory.
- A further perspective of the present invention is a method for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words. The method includes consecutively reading the code words of the digital data from the buffer memory, generating multiple syndromes in parallel by processing the code words of the digital data read from the buffer memory, and performing the error correction process on the digital data using the multiple syndromes.
- A further perspective of the present invention is a method for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words. The method includes generating an address signal to consecutively read the code words from the buffer memory, consecutively reading the code words of the digital data from the buffer memory in accordance with the address signal, generating multiple syndromes in parallel by processing the code words read from the buffer memory, and performing the error correction process on the digital data using the multiple syndromes.
- Other perspectives and advantages of the present invention will become apparent from the following description, taken in conjunction with the accompanying drawings, illustrating by way of example the principles of the invention.
- The invention, together with objects and advantages thereof, may best be understood by reference to the following description of the presently preferred embodiments together with the accompanying drawings in which:
- FIGS. 1(a) to 1(d) are diagrams illustrating the data format of a prior are CD-ROM;
-
FIG. 2 is a diagram illustrating a code word of a prior are CD-ROM; -
FIG. 3 is a diagram illustrating the prior art CD-ROM data stored in a DRAM; -
FIG. 4 is a diagram illustrating the order for reading the prior art code word; -
FIG. 5 is a diagram illustrating the order for reading a code word in the present invention; -
FIG. 6 is a schematic block diagram illustrating an error correction apparatus according to one embodiment of the present invention; -
FIG. 7 is a schematic circuit diagram of a syndrome generation circuit of the error correction apparatus ofFIG. 6 ; -
FIG. 8 is a schematic block diagram of a symbol counter of the error correction apparatus ofFIG. 6 ; - FIGS. 9(a) to 9(o) are time charts illustrating the timing for reading a code word of the error correction apparatus of
FIG. 6 ; -
FIG. 10 is a time chart illustrating the timing for reading the prior art code word; and -
FIG. 11 is a time chart illustrating the timing for reading a further code word of the error correction apparatus ofFIG. 6 . - In the drawings, like numerals are used for like elements throughout.
- A preferred embodiment of an error correction apparatus according to the present invention will now be discussed with reference to the drawings. The error correction apparatus corrects errors using P codes of CD-ROM.
- Referring to
FIG. 5 , in the present invention, four code words are consecutively read from the DRAM when reading P codes. In other words, for the data of the MS bytes and the data of the LS bytes, the data corresponding to data numbers “i+43 j”, “(i+1)+43 j”, “(i+2)+43 j”, “(i+3)+43 j”, (i=0, 1, . . . 39: j=0, 1, . . . 25)” are read consecutively. With each of the four code words, when all of the symbols of the 26 bytes of “j=0 to 25” is read, the reading of the next four code words starts. - Each symbol of the four code words, which are adjacent to one another, is stored in the DRAM according to the adjacent address. Therefore, after designating a row address of the DRAM, a page mode technique, which changes the column addresses in accordance with each code word, is employed to read data from the DRAM. This requires only six clock signals to read four symbols. That is, one clock signal is allocated to precharge, one clock signal is allocated to row address designation, and four clock signals are allocated to column address designation. In this manner, four code words are read consecutively to reduce the number of clock signals. This enables high speed access.
- As shown in
FIG. 5 , when reading four code words consecutively, after reading 1040 bytes of data on the LS bytes or the MS bytes, only three code words remain. Accordingly, three code words are read consecutively through the page mode technique for the data from byte 1041 to byte 1118. - When reading each symbol of the four code words, the row address is re-designated in an exceptional manner when the row address changes. In the preferred embodiment, the read address is detected to determine whether or not the column address of the DRAM of
FIG. 3 is “255”. When it is determined that the column address is “255”, a new row address is designated. -
FIG. 6 is a schematic block diagram of anerror correction apparatus 100 according to a preferred embodiment of the present invention. Theerror correction apparatus 100 includes aDRAM 10 for storing the CD-ROM data and abus arbiter 11 for selecting the process that is to be performed in theDRAM 10. TheDRAM 10 has the same configuration as that of the DRAM ofFIG. 3 . - The
bus arbiter 11 is provided with the CD-ROM data transferred from a CD signal processing circuit (not shown) and the addresses of theDRAM 10. Thebus arbiter 11 generates a row address strobe (RAS) signal and a column address strobe (column address strobe) signal to write data to theDRAM 10 at the designated address. The RAS signal, the CAS signal, and the CD-ROM data are written to theDRAM 10. When reading data from theDRAM 10, the RAS signal and the CAS signal are used to access the data subject to the reading. - The
error correction apparatus 100 includes an errortiming generation circuit 20 for reading write data in the manner shown inFIG. 5 . When the error correctiontiming generation circuit 20 designates the data that is to be read from theDRAM 10, a sector head address generation circuit 21 designates the byte number corresponding to the head of the sector to which the data read from theDRAM 10 belongs. The head of the sector is designated using the sum of the bytes of data written to theDRAM 10. In other words, the head “0000” ofsector 1 is designated when reading data that belongs tosector 1 ofFIG. 3 . The head “2352” is designated when reading data belonging tosector 2. Further, the head “4704” ofsector 3 is designated when reading data belonging tosector 3. - When the error correction
timing generation circuit 20 designates the data that is to be read from theDRAM 10, an ECC offsetaddress generation circuit 22 designates the data that is subject to reading in accordance with the order in the sector. More specifically, the data subject to reading is basically designated in the order of “0000, 0001, 0002, 0003, 0043, 0044, 0045, 0046, 0086, . . . ”. However, since the first six bytes of data from the head of each sector (the data of the LS bytes and the data of the MS bytes) are synchronizing data, the six bytes of data are not read to calculate the syndrome. Thus, the ECC offsetaddress generation circuit 22 designates the data that is subject to reading in the order of “0006, 0007, 0008, 0009, 0049, 0050, 0051, 0052, 0092, . . . ”. - Based on the byte number designated by the sector head address generation circuit 21 and the subject reading data designated by the ECC offset
address generation circuit 22, anadder 23 calculates a designated value of the data reading order in theDRAM 10. In this case, the storing of data by the memory cell of theDRAM 10 in units of 2 bytes is considered. That is, with respect to the data ofsector 1 ofFIG. 3 , designated values in the reading order of “0006, 0007, 0008, 0009, 0049, 0050, 0051, 0052, 0092, . . . ” are calculated. With respect to the data ofsector 2, designated values in the reading order of “1181, 1182, 1183, 1184, 1224, 1225, 2226, 2227, 2267, . . . ”, which are obtained by sequentially added 1175 bytes, are calculated. - When the designated value calculated by the
adder 23 is provided to thebus arbiter 11, thebus arbiter 11 reads data from theDRAM 10 in accordance with the designated values. The designated values of theadder 23 are also provided to a pageboundary detection circuit 24. The pageboundary detection circuit 24 generates a page boundary signal when the colum address of theDRAM 10 of the reading subject data is “255” (page boundary). The boundary is set when the lower eight bits of a binary designated value of theadder 23 are all “1”. By detecting the page boundary in this manner, the error correctiontiming generation circuit 20 determines whether the row address of theDRAM 10 changes when four (or three) symbols corresponding to four (or three) code words are read. - When determining that the row address does not change, the error correction
timing generation circuit 20 provides thebus arbiter 11 with an instruction for designating the row address once and then designating the column address corresponding to each cod word of the reading subject four times (or three times) to read the code word. When determining that the row address changed, the error correctiontiming generation circuit 20 provides thebus arbiter 11 with an instruction for newly designating the row address after reading the data of the page boundary. - A CD-
ROM decoding circuit 30 performs an error correction process on the data read from theDRAM 10. The CD-ROM decoding circuit 30 includes asyndrome generation circuit 31, anerror correction circuit 32, an ECCaddress generation circuit 33, and anerror detection circuit 34. - The
syndrome generation circuit 31 is provided with the data read from theDRAM 10 via thebus arbiter 11. An example for correcting an error in the preferred embodiment will now be discussed. Thesyndrome generation circuit 31 calculates the two syndromes of S0 and S1 for each code word. The syndrome S0 is calculated by performing the operation of S0=S0ˆv (i) on all of the symbols of the code words. The initial value represents “0”, v(i) represents the value of the ith symbol of the code word, and ˆ represents the adding of a Galois body. The syndrome S1 is calculated by performing the operation of S0=(a*S0)ˆv (i) on the values of all of the symbols of the code words. The initial value is represented by “0”, a represents a primitive element, and * represents the multiplying of a Galois body. - The
syndrome generation circuit 31 generates the syndromes S0, S1 of each of the four code words in parallel. Referring toFIG. 7 , operational circuits S00, S01, S02, S03 calculate the syndrome S0, and operational circuits S10, S11, S12, S13 calculate the syndrome S1. In other words, when a register (represented as reg inFIG. 7 ) of an operational circuit corresponding to a code word is activated, the operational circuit performs a calculation with the symbol v (i) read from theDRAM 10. Each operational circuit calculates the syndrome by performing a calculation using the values v (i) (i=0, 1, . . . 25) of the 26 symbols. The syndrome S0 is transferred to theerror detection circuit 34 via a multiplexer M1, and the syndrome S1 is transferred to theerror detection circuit 34 via a multiplexer M2. Theerror detection circuit 34 determines whether an error code includes an error based on the syndromes S0, S1. If there is an error, the value of the error and the location of the error are calculated, and theerror correction circuit 32 and the ECCaddress generation circuit 33 are provided with the calculated results. - The ECC
address generation circuit 33 generates an address designating the location of an error and provides thebus arbiter 11 with the address. Thebus arbiter 11 reads data from the erroneous location of theDRAM 10 and provides the read data to theerror correction circuit 32. Theerror correction circuit 32 generates correct data from the erroneous data and the value of the error provided from theerror detection circuit 34. The erroneous data of theDRAM 10 is rewritten to the correct data. - After the error correction, an EDC decoder block (not shown) checks whether error correction was properly performed using the EDC data of
FIG. 1 (a). After such series of processes are performed, when a host computer (not shown) instructs thebus arbiter 11 to transfer data, thebus arbiter 11 reads data from theDRAM 10 and transfers the read data to the host computer. - The error correction
timing generation circuit 20 controls the timing for reading code words from theDRAM 10 and the timing for calculating the syndrome with the syndrome generation circuit. Referring toFIG. 8 , the error correctiontiming generation circuit 20 includes a symbol counter 150 for allocating the data selectively read from theDRAM 10 by each operational circuit. - The symbol counter 150, which includes a
register 40, a count control circuit 42, and adecoder 41, increments a count value in accordance with, for example, the signal of a CAS or the like (the signal synchronized with the timing for reading data from the DRAM 10). The lower two digits “00”, “01”, “10”, “11” of the count value of the symbol counter 150 respectively correspond to four code words. The data read from theDRAM 10 is selectively distributed to a plurality of operational circuits based on the count value. - The
register 40 temporarily holds the count value generated by the count control circuit 42 and provides the count value to thedecoder 41 and the count control circuit 42 in synchronism with the timing signal (e.g. CAS signal). Based on the lower two digits of the count value, thedecoder 41 selectively provides an enable signal to the registers of the operational circuits S00, S10, the registers of the operation circuits S01, S11, the registers of the operational circuits S02, S12, and the registers of the operational circuits S03, S13. The syndromes of the four code words are calculated by the operational circuits in response to the enable signal. - The count control circuit 42 receives a count value from the
register 40, adds “1” or “2” to the count value, and provides the added count value to theregister 40. When the count value is “0000” to “1039”, “1” is added to the count value (i.e., the count value is incremented). When the count value reaches “1040”, “1” or “2” is added to the count value based on the lower two digits of the count value. When the lower two digits of the count value is “00” or “01”. “1” is added to the count value. When the lower two digits of the count value is “10”, “2” is added to the count value to set the lower two digits of the count value to “00”. By controlling the count value, the lower two digits of the count value is prevented from being “11” when the count value is “1040” or greater. - When the symbols of 1040 bytes are read, only three code words remain as shown in
FIG. 5 . Thus, in synchronism with the timing for reading data from theDRAM 10 and the timing of the three code words, the registers of the operational circuits S00, S10, the registers of the operational circuits S01, S11, and the registers of the operational circuits S02, S12 are selectively activated to calculate the syndromes of the three code words in parallel. - When the 26 symbols are distributed to each operational circuit and the syndrome of each code word is calculated, the error correction
timing generation circuit 20 generates a clear signal to initialize the operational circuit. By providing the operation circuit with the clear signal, the operational circuit generates a new syndrome based on the symbol. - The error correction
timing generation circuit 20 includes a counter for providing a reset signal to the symbol counter 150 ofFIG. 8 when determining that a sector of data has been read from theDRAM 10. In this manner, the counter value of the symbol counter 150 is initialized when it is determined that a sector of data has been read from theDRAM 10. Accordingly, the enable signal is generated without causing the configuration of the symbol counter 150 to be complicated. - The timing for accessing the
DRAM 10 and the timing for calculating the syndrome will now be discussed with reference to FIGS. 9(a) to 9(o). - When the error correction
timing generation circuit 20 provides thesyndrome generation circuit 31 with a clear signal (FIG. 9 (f) in synchronism with a predetermined clock signal (FIG. 9 (a), the operational circuits S00, S10, the operational circuits S01, S11, the operational circuits S02, S12, and the operational circuits S03, S13 are initialized. This enables each operation circuit to perform a new syndrome calculation. - Then, to designate the address of the data read from the
DRAM 10, the RAS signal (FIG. 9 (c) and the CAS signal (FIG. 9 (d)) are generated by thebus arbiter 11. The row address of theDRAM 10 is designated when the RAS signal goes low, and the column address is designated when the CAS signal goes low. The designated row and column addresses are held until the RAS signal and the CAS signal go low the next time. - The RAS signal is maintained at a constant level (low level) (i.e., the row address is maintained) until the CAS signal designates four column addresses. Accordingly, the data of four code words (d0, d1, d2, d3) is read (
FIG. 9 (e)) in synchronism with the trailing edge of the CAS signal. The error correctiontiming generation circuit 20 generates an enable signal (FIG. 9 (g)) and calculates the syndrome with the operational circuit of thesyndrome generation circuit 31 using the read data. That is, the enable signal processes the data d0 with the operational circuits S00, S10 (FIGS. 9(h) and 9(i)), the data d1 with the operational circuits S01 and S11 (FIGS. 9(j) and 9(k)), the data d2 with the operational circuits S02, S12 (FIGS. 9(l) and 9(m)), and the data d3 with the operational circuits S03, S13 (FIGS. 9(n), 9(o). - After reading the data d0, d1, d2, d3, the RAS signal and the CAS signal go high, and the
DRAM 10 performs a precharge operation (as indicated by xx inFIG. 9 (b)). After the precharge operation, the RAS signal and the CAS signal go low again, and a predetermined address of theDRAM 10 is accessed to read data. - In this manner, four pieces of data are read with 6 clock signals by designating the column address to which the four code words belong after designating the row address. In comparison, in the prior art method of
FIG. 4 in which data is read for one code word at a time, theDRAM 10 is accessed as shown inFIG. 10 . More specifically, each piece of data that is subject to reading requires three (3) clock signals, those for designating the row address and the column address of theDRAM 10 with the RAS signal and the CAS signal and that for performing the precharge operation (indicated as xx). Accordingly, when reading four pieces of data, 12 clock signals are necessary. Thus, the time for reading four pieces of data is twice as long in comparison with the preferred embodiment. - As shown in the example of
FIG. 11 , if two column addresses are designated by the CAS signal in the preferred embodiment, the pageboundary detection circuit 24 generates a page boundary signal SB when the column address indicates a page boundary of theDRAM 10. In response to the page boundary signal SB, the RAS signal and the CAS signal go high and the precharge operation (indicated by xx) is performed. Then, after designating a row address again with the RAS signal, the CAS signal designates a column address to read the two pieces of data d2, d3. - The error correction apparatus of the preferred embodiment has the advantages discussed below.
- (1) A plurality of P codes are consecutively read from the
DRAM 10. Thus, after designating the row address, the page mode technique, which consecutively designates column addresses, may be applied. This shortens the time theDRAM 10 is accessed. - (2) The page
boundary detection circuit 24 detects whether the data subject to reading is at the boundary of a page. This guarantees that the processing based on the page mode technique is performed. - (3) The
syndrome generation circuit 31 processes four code words in parallel. Thus syndrome calculation is performed within a short period of time. - (4) After the 1040 MS bytes and 1040 LS bytes are read, the symbol counter provides the enable signal only to the operational circuits S00, S10, the operational circuits S01, S11, and the operational circuits S02, S12. This guarantees the reading of the code word even if the total number of code words is not a multiple of the number of code words that are read consecutively.
- (5) The multiplexers M1, M2 distribute the
error detection circuit 34 with syndromes, which are generated by processing four code words in parallel. This prevents the circuit area of theerror detection circuit 34 from increasing. - It should be apparent to those skilled in the are that the present invention may be embodied in many other specific forms without departing from the spirit or scope of the invention. Particularly, it should be understood that the present invention may be embodied in the following forms.
- (a) The page size of the
DRAM 10 is not limited to 256 bytes. When changing the page size, the page boundary detected by the pageboundary detection circuit 24 is also changed. - (b) Instead of the symbol counter, a read only memory (ROM) may provide the enable signal.
- (c) The application of the present invention is not limited to consecutive reading of the P codes. The present invention may also be applied to consecutive reading of the Q codes. In such a case, when the Q codes are first read, it is preferred that the data of a single word code be first read and that the data of multiple code words be read afterward. More specifically, referring to
FIG. 2 , it is preferred that “0000” be first read, “0043” and “0044” be read next, and “0086”, and “0087”, and “0088” be read afterward. In the subsequent processing, the data of four code words (e.g., “0129”, “1130”, “0131”, and “0132”) are read consecutively. In such case, the process for providing thesyndrome generation circuit 31 with the enable signal and the clear signal is changes as required. - (d) The application of the invention is not restricted to the error correction process of a CD-ROM. The present invention may also be applied to an error correction process of a CD or a digital versatile disc (DVD).
- (e) The number of code words read consecutively and the number of syndromes calculated in parallel are not restricted as described in the preferred embodiment. Further, the symbol of code words read consecutively does not have to be stored adjacent to a random access memory.
- (f) When consecutively reading plural code words, a high speed access technique, such as the extended data output (EDO) technique, may be employed in lieu of the page mode technique. Further, a synchronous DRAM (SDRAM) may be used in lieu of the DRAM.
- (g) The multiplexers M1 and M2 may be eliminated.
- The present examples and embodiments are to be considered as illustrative and not restrictive, and the invention is not be limited to the details given herein, but may be modified within the scope and equivalence of the appended claims.
Claims (15)
1. An error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words, the apparatus comprising:
a memory access circuit for controlling reading and writing of the code words to the buffer memory, wherein the memory access circuit writes the processed data to the buffer memory;
a symbol counter for counting the number of symbols of the code words read from the buffer memory and generating a count value of a plurality of bits;
an error correction circuit for performing an error correction process on the multiple code words read from the buffer memory based on the syndrome calculate results by the plurality of operational circuits; and
an error detection circuit for checking whether error correction is properly performed on the error correction circuit,
wherein the memory access circuit consecutively reads the multiple code words from the buffer memory and distributes the read code words to the plurality operational circuits based on the count value of the lower bits of the plurality of bits, and wherein the number of lower bits is determined in accordance with the number of operational circuits.
2. The apparatus according to claim 1 , wherein each of the code words is formed by multiple symbols, and the memory access circuit reads the symbols of the code words.
3. The apparatus according to claim 2 , wherein the symbol counter includes:
a register for holding the count value;
a decoder for distributing the symbols read from the buffer memory to the plurality of the operational circuits in accordance with a timing for reading the symbols.
4. The apparatus according to claim 3 , wherein the count control circuit changes an adding condition of the count value when the count value exceeds a predetermined value.
5. The apparatus according to claim 1 , wherein the memory access circuit holds a row address of the buffer memory and changes a column address for each code word to consecutively read the multiple code words from the buffer memory.
6. An error correction apparatus for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words, the apparatus comprising:
a memory access circuit connected to be buffer memory for reading and writing the code words to the buffer memory in accordance with an address signal;
an address generation circuit for generating the address signal to designate an address of the code words read from and written to the buffer memory and for providing the address signal to the memory access circuit;
a timing generation circuit connected to the address generation circuit for generating a timing signal to control the address generation circuit so that the address signal is generated to read the code words from the buffer memory;
a symbol counter for counting the number of symbols of the code words read from the buffer memory and generating a count value of a plurality of bits;
a syndrome generation circuit for generating multiple syndromes in parallel in correspondence with the multiple code words by processing the code words of the digital data read from the buffer memory based on the count value of the lower bits of the plurality of bits, wherein the number of lower bits is determined in accordance with the number of operational circuits;
an error correction circuit for performing an error correction process on the multiple code words read from the buffer memory based on the multiple syndromes generated by the syndrome generation circuit; and
an error detection circuit for checking whether error correction is properly performed on the error correction circuit.
7. The apparatus according the claim 6 , wherein the address signal includes a row address signal and a column address signal, and the control circuit controls the address generation circuit so that a plurality of the column address signals corresponding to the multiple code words are consecutively generated after the row address signal is generated.
8. The apparatus according to claim 6 , further comprising:
a detection circuit for detecting a page boundary signal by detecting a page boundary of the digital data based on the address signal generated by the address generation circuit.
9. The apparatus according to claim 8 , wherein the timing generation circuit generates the timing signal to control the address generation circuit so that the address signal changes in accordance with the page boundary signal.
10. The apparatus according to claim 6 , wherein the syndrome generation circuit includes a plurality of operational circuits for generating the syndromes in parallel.
11. A method for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words, the method comprising the steps of:
consecutively reading the code words of the digital data from the buffer memory;
counting the number of symbols of the code words read from the buffer memory to generate a count value of a plurality of bits;
distributing the read code words to a plurality of operational circuits based on the count value of the lower bits of the plurality of bits, wherein the number of lower bits is determined in accordance with the number of operational circuits;
generating multiple syndromes in parallel by processing the code words of the digital data read from the buffer memory using the plurality of operational circuits;
performing the error correction process on the code words of the digital data read from the buffer memory using the multiple syndrome; and
performing an error detection process for checking whether error correction is properly performed in the error correction process.
12. A method for performing an error correction process on digital data that is stored in a buffer memory and includes multiple code words, the method comprising the steps of:
consecutively generating an address signal to read the code words of the digital data from the buffer memory;
consecutively reading the code words of the digital data from the buffer memory in accordance with the address signal;
counting the number of symbols of the code words read from the buffer memory to generate a count value of a plurality of bits;
distributing the read code words to a plurality of operational circuits based on the count value of the lower bits of the plurality of bits, wherein the number of lower bits is determined in accordance with the number of operational circuits;
generating multiple syndromes in parallel by processing the code words of the digital data read from the buffer memory using the plurality of operational circuits; and
performing the error correction process on the code words of the digital data read from the buffer memory using the multiple syndromes.
13. The method according to claim 12 , wherein the address signal includes a row address signal and a column address signal, and the step for generating an address signal includes generating a row address signal and then consecutively generating a plurality of the column address signals corresponding to the multiple code words.
14. The method according to claim 12 , further comprising the step of;
generating a page boundary signal by detecting a page boundary of the digital data based on the address signal.
15. The method according to claim 14 , further comprising the step of:
changing the address signal in accordance with the page boundary signal.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/552,373 US20070050663A1 (en) | 2001-03-22 | 2006-10-24 | Error correction apparatus for performing consecutive reading of multiple code words |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001082298A JP3954803B2 (en) | 2001-03-22 | 2001-03-22 | Error correction device |
JP2001-082298 | 2001-03-22 | ||
US10/105,010 US7143331B2 (en) | 2001-03-22 | 2002-03-22 | Error correction apparatus for performing consecutive reading of multiple code words |
US11/552,373 US20070050663A1 (en) | 2001-03-22 | 2006-10-24 | Error correction apparatus for performing consecutive reading of multiple code words |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/105,010 Continuation US7143331B2 (en) | 2001-03-22 | 2002-03-22 | Error correction apparatus for performing consecutive reading of multiple code words |
Publications (1)
Publication Number | Publication Date |
---|---|
US20070050663A1 true US20070050663A1 (en) | 2007-03-01 |
Family
ID=18938258
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/105,010 Expired - Fee Related US7143331B2 (en) | 2001-03-22 | 2002-03-22 | Error correction apparatus for performing consecutive reading of multiple code words |
US11/552,373 Abandoned US20070050663A1 (en) | 2001-03-22 | 2006-10-24 | Error correction apparatus for performing consecutive reading of multiple code words |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/105,010 Expired - Fee Related US7143331B2 (en) | 2001-03-22 | 2002-03-22 | Error correction apparatus for performing consecutive reading of multiple code words |
Country Status (4)
Country | Link |
---|---|
US (2) | US7143331B2 (en) |
JP (1) | JP3954803B2 (en) |
KR (1) | KR100509137B1 (en) |
TW (1) | TWI267826B (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050384A1 (en) * | 2003-08-26 | 2005-03-03 | Horn Robert L. | System for improving parity generation and rebuild performance |
US20210335437A1 (en) * | 2011-10-24 | 2021-10-28 | Rambus Inc. | Dram retention test method for dynamic error correction |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3954803B2 (en) * | 2001-03-22 | 2007-08-08 | 三洋電機株式会社 | Error correction device |
US7228490B2 (en) * | 2004-02-19 | 2007-06-05 | Quantum Corporation | Error correction decoder using cells with partial syndrome generation |
US7343546B2 (en) * | 2004-12-23 | 2008-03-11 | Intel Corporation | Method and system for syndrome generation and data recovery |
JP2006190346A (en) * | 2004-12-28 | 2006-07-20 | Toshiba Corp | Error correction processing device and error correction processing method |
JP2006309820A (en) | 2005-04-26 | 2006-11-09 | Sanyo Electric Co Ltd | Error correction device |
JP4313391B2 (en) * | 2006-12-13 | 2009-08-12 | 株式会社日立コミュニケーションテクノロジー | Optical concentrator and optical subscriber unit |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5612922A (en) * | 1995-07-05 | 1997-03-18 | Micron Technology, Inc. | Page mode editable real time read transfer |
US5721860A (en) * | 1994-05-24 | 1998-02-24 | Intel Corporation | Memory controller for independently supporting synchronous and asynchronous DRAM memories |
US6044484A (en) * | 1997-04-10 | 2000-03-28 | Samsung Electronics Co., Ltd. | Method and circuit for error checking and correction in a decoding device of compact disc-read only memory drive |
US6158038A (en) * | 1996-11-15 | 2000-12-05 | Fujitsu Limited | Method and apparatus for correcting data errors |
US6185629B1 (en) * | 1994-03-08 | 2001-02-06 | Texas Instruments Incorporated | Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time |
US6243845B1 (en) * | 1997-06-19 | 2001-06-05 | Sanyo Electric Co., Ltd. | Code error correcting and detecting apparatus |
US6332206B1 (en) * | 1998-02-25 | 2001-12-18 | Matsushita Electrical Industrial Co., Ltd. | High-speed error correcting apparatus with efficient data transfer |
US20020144206A1 (en) * | 2001-03-22 | 2002-10-03 | Tomisawa Shin-Ichiro | Error correction apparatus for performing consecutive reading of multiple code words |
US6591349B1 (en) * | 2000-08-31 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth |
US6651208B1 (en) * | 2000-04-04 | 2003-11-18 | Mosel Vitelic Corporation | Method and system for multiple column syndrome generation |
US6687860B1 (en) * | 1998-01-07 | 2004-02-03 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and data transfer method |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10107648A (en) * | 1996-09-30 | 1998-04-24 | Sanyo Electric Co Ltd | Error correction processing circuit |
JPH10107649A (en) * | 1996-09-30 | 1998-04-24 | Sanyo Electric Co Ltd | Code error correction/detection decoder |
KR19990049147A (en) * | 1997-12-12 | 1999-07-05 | 구자홍 | Error correction method |
JP2001117825A (en) * | 1999-10-20 | 2001-04-27 | Sharp Corp | Data recording device and data reproducing device |
-
2001
- 2001-03-22 JP JP2001082298A patent/JP3954803B2/en not_active Expired - Fee Related
- 2001-12-26 TW TW090132277A patent/TWI267826B/en not_active IP Right Cessation
-
2002
- 2002-03-21 KR KR10-2002-0015244A patent/KR100509137B1/en not_active Expired - Fee Related
- 2002-03-22 US US10/105,010 patent/US7143331B2/en not_active Expired - Fee Related
-
2006
- 2006-10-24 US US11/552,373 patent/US20070050663A1/en not_active Abandoned
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185629B1 (en) * | 1994-03-08 | 2001-02-06 | Texas Instruments Incorporated | Data transfer controller employing differing memory interface protocols dependent upon external input at predetermined time |
US5721860A (en) * | 1994-05-24 | 1998-02-24 | Intel Corporation | Memory controller for independently supporting synchronous and asynchronous DRAM memories |
US5612922A (en) * | 1995-07-05 | 1997-03-18 | Micron Technology, Inc. | Page mode editable real time read transfer |
US6158038A (en) * | 1996-11-15 | 2000-12-05 | Fujitsu Limited | Method and apparatus for correcting data errors |
US6044484A (en) * | 1997-04-10 | 2000-03-28 | Samsung Electronics Co., Ltd. | Method and circuit for error checking and correction in a decoding device of compact disc-read only memory drive |
US6243845B1 (en) * | 1997-06-19 | 2001-06-05 | Sanyo Electric Co., Ltd. | Code error correcting and detecting apparatus |
US6687860B1 (en) * | 1998-01-07 | 2004-02-03 | Matsushita Electric Industrial Co., Ltd. | Data transfer device and data transfer method |
US6332206B1 (en) * | 1998-02-25 | 2001-12-18 | Matsushita Electrical Industrial Co., Ltd. | High-speed error correcting apparatus with efficient data transfer |
US6651208B1 (en) * | 2000-04-04 | 2003-11-18 | Mosel Vitelic Corporation | Method and system for multiple column syndrome generation |
US6591349B1 (en) * | 2000-08-31 | 2003-07-08 | Hewlett-Packard Development Company, L.P. | Mechanism to reorder memory read and write transactions for reduced latency and increased bandwidth |
US20020144206A1 (en) * | 2001-03-22 | 2002-10-03 | Tomisawa Shin-Ichiro | Error correction apparatus for performing consecutive reading of multiple code words |
US7143331B2 (en) * | 2001-03-22 | 2006-11-28 | Sanyo Electric Co., Ltd. | Error correction apparatus for performing consecutive reading of multiple code words |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050050384A1 (en) * | 2003-08-26 | 2005-03-03 | Horn Robert L. | System for improving parity generation and rebuild performance |
US7698625B2 (en) * | 2003-08-26 | 2010-04-13 | Adaptec, Inc. | System for improving parity generation and rebuild performance |
US20210335437A1 (en) * | 2011-10-24 | 2021-10-28 | Rambus Inc. | Dram retention test method for dynamic error correction |
US11646090B2 (en) * | 2011-10-24 | 2023-05-09 | Rambus Inc. | DRAM retention test method for dynamic error correction |
US12190974B2 (en) | 2011-10-24 | 2025-01-07 | Rambus Inc. | DRAM retention test method for dynamic error correction |
Also Published As
Publication number | Publication date |
---|---|
US7143331B2 (en) | 2006-11-28 |
US20020144206A1 (en) | 2002-10-03 |
JP2002280909A (en) | 2002-09-27 |
TWI267826B (en) | 2006-12-01 |
JP3954803B2 (en) | 2007-08-08 |
KR20020075269A (en) | 2002-10-04 |
KR100509137B1 (en) | 2005-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6158038A (en) | Method and apparatus for correcting data errors | |
US4881232A (en) | Method and apparatus for error correction | |
US20070050663A1 (en) | Error correction apparatus for performing consecutive reading of multiple code words | |
US6192499B1 (en) | Device and method for extending error correction beyond one sector time | |
KR100430657B1 (en) | Signal processor for correcting and detecting errors | |
US6363511B1 (en) | Device and method for decoding data streams from storage media | |
US20080282128A1 (en) | Method of Error Correction Code on Solid State Disk to Gain Data Security and Higher Performance | |
JP3239863B2 (en) | Data decoding processing apparatus and method | |
KR19990044904A (en) | An ECC system using a data buffer for storing codeword data and a syndrome buffer for storing error syndromes | |
CN101473308A (en) | Non-volatile memory error correction system and method | |
JPH10207726A (en) | Semiconductor disk device | |
US6279135B1 (en) | On-the-fly row-syndrome generation for DVD controller ECC | |
JPH08255111A (en) | Error correcting and detecting circuit and semiconductor storage device | |
JP2006190425A (en) | Semiconductor memory device | |
US5511078A (en) | Method and apparatus for correction errors in a memory | |
US8181075B2 (en) | Error correction device and recording and reproducing device | |
US6697921B1 (en) | Signal processor providing an increased memory access rate | |
JP2001292066A (en) | Error correction device and error correction method | |
JP3272308B2 (en) | Error correction system, error correction method, and data storage system having error correction function | |
JP2002230916A (en) | Information reproducer | |
KR19980065723A (en) | Method and apparatus for processing data in digital video disc system | |
JP2605270B2 (en) | Error correction and checking device | |
JPH05218883A (en) | Decoder circuit | |
JP2000010807A (en) | Digital data playback device | |
KR100328818B1 (en) | How to save data in flash memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |