GB2379768A - Memory device - Google Patents

Memory device Download PDF

Info

Publication number
GB2379768A
GB2379768A GB0225258A GB0225258A GB2379768A GB 2379768 A GB2379768 A GB 2379768A GB 0225258 A GB0225258 A GB 0225258A GB 0225258 A GB0225258 A GB 0225258A GB 2379768 A GB2379768 A GB 2379768A
Authority
GB
United Kingdom
Prior art keywords
bank
read
write
data
error
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB0225258A
Other versions
GB0225258D0 (en
GB2379768B (en
Inventor
Hyung-Joon Kwon
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR10-2000-0062904A external-priority patent/KR100370239B1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of GB0225258D0 publication Critical patent/GB0225258D0/en
Publication of GB2379768A publication Critical patent/GB2379768A/en
Application granted granted Critical
Publication of GB2379768B publication Critical patent/GB2379768B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes
    • 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/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1555Pipelined decoder implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6563Implementations using multi-port memories

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

In a memory device used with a block pipeline Reed-Solomon decoder for correcting errors by decoding data received from the outside, the memory device to which the received data is written and from which data is read comprises a plurality of memories 310, 320 and 330 each having dual banks, the memories being activated by a write/read command and an enable signal, and a buffer controller 300 for applying the write/read command and the enable signal for selecting a corresponding memory, and setting a write bank pointer and a read bank pointer such that banks for writing and reading of each frame of the data are selected from different memories with a predetermined offset.

Description

<Desc/Clms Page number 1>
TITLE OF THE INVENTION MEMORY DEVICE, METHOD OF ACCESSING THE MEMORY DEVICE, AND REED-SOLOMON DECODER INCLUDING THE MEMORY DEVICE BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to memories which are used in digital devices to temporarily store data, and to Reed-Solomon decoders. More particularly, the present invention relates to circuits and methods for the buffering of data using dual-bank memories, and even more particularly, the present invention relates to the buffering of data in a high-speed block pipelined Reed-Solomon decoder.
2. Description of the Related Art When transmitting or storing large quantities of digital data, errors inevitably occur in the data channels or transmission media. A variety of techniques are known which attempt to identify such errors and restore the data when feasible. Among these techniques, Reed-Solomon coding has become widely adopted. Reed-Solomon codes are block-based error correcting codes that exhibit excellent error correction capabilities and efficient coding and decoding characteristics, and thus have a wide range of applications in digital communications and storage.
Generally, a Reed-Solomon encoder forms a codeword containing n symbols (e. g., 8-bit bytes) by adding 2t parity symbols to a data block having k symbols of data, whereby 2t n-k. Reed-Solomon codewords are commonly designated by the characters RS (n, k). For example, in the code RS (255,223), each codeword contains 255 codeword bytes, of which 223 bytes are data and 32 bytes are parity.
<Desc/Clms Page number 2>
On the other hand, a Reed-Solomon decoder processes each codeword in an attempt to correct errors which occur during transmission or storage, and to recover the original data.
The decoder is capable of correcting up to t error symbols in each codeword. For example, in the code RS (255,223), n-k = 2t = 32, and therefore up to 16 error symbols in each codeword can be corrected.
In general, the Reed Solomon decoding process can be partitioned into eight (8) major computational steps when both error and erasure correction are executed. An Aerasure= occurs where the value of a symbol is incorrect, but the position of the symbol is known.
An Aerror= occurs where no information is known with regard to an incorrect symbol. The computational steps of error and erasure decoding include (1) computing a syndrome from the received/retrieved input codeword to detect the existence of an error, (2) buffering erasure flags which are supplied in synchronization with the input codeword, (3) modifying the syndrome using the erasure flags, (4) producing an erasure locator polynomial, (5) computing coefficients of the error locator polynomial and an error evaluator polynomial using the modified syndrome values and the erasure locator polynomial, (6) searching the roots of the error locator polynomial, (7) computing the magnitude of error values, and (8) correcting the errors using the value obtained in step (4) and the location obtained in step (3). For error correction only (i. e. , no erasure correction), steps (2), (3) and (4) are omitted.
The above steps (1) and (8) require memory access. That is, the received codeword is temporarily stored in a memory at step (1), and is later retrieved from the memory to be corrected in step (8).
The decoding computations (and associated hardware and/or software) of the Reed-Solomon decoder are more complex than those of the encoding process, and it is often difficult to realize decoders having sufficiently high processing speeds. This can be
<Desc/Clms Page number 3>
especially problematic in view of the present demand for higher-speed digital data processing systems.
In an effort to increase speeds, pipelining of the computations of the Reed Solomon decoder is a possible solution. However, the computations have different latencies depending on the number of errors and the lengths of the codewords, and accordingly, pipelining is limited by the unit or block having the longest latency. Moreover, even if latencies of the processing blocks were reduced to a single frame of n cycles (i. e. , one codeword), the memory for temporarily storing the input codeword prior to correction creates a bottleneck in that at least 2n cycles are required to first store the codeword, and to then retrieve the codeword for correction thereof.
SUMMARY OF THE INVENTION It is an objective of the present invention to provide a memory device, and a method of accessing a memory device, which execute read/write operations at high speeds, and which thus may be advantageously used in conjunction with a high-speed block pipelined Reed-Solomon decoder, and to provide a high-speed block pipelined Reed-Solomon decoder which exhibits a minimal memory access time.
According to one aspect of the invention, writing to and reading from a plurality of dual-bank RAMs is enabled during each of successive frame periods such that each bank of the dual-bank RAMs is read every given number of frame periods and is written every same given number of frame periods, and such that a read bank is contained in a different one of the plurality of dual-bank RAMs than is a write bank in each of the successive frame periods.
According to another aspect of the present invention, a memory includes a first dual-bank RAM having a first bank and a second bank, a second dual-bank RAM having a
<Desc/Clms Page number 4>
third bank and a fourth bank, and a third dual-bank RAM having a fifth bank and a sixth bank.
Reading from the first through sixth data banks is enabled in order during successive frame periods such that each one of the first through sixth data banks is read every six frame periods, and writing to the first through sixth data banks is enabled in order during the successive frame periods such that each one of the first through sixth data banks is written every six frame periods. Further, during each of the frame periods, a one of the first through sixth data banks for which reading is enabled is contained in a different one of the first through third dual-bank RAMs than is a one of said first through sixth data banks for which writing is enabled.
According to st ;.'.'. an--t,'.- asp-, f o-r+],According to still another aspect of the present invention, during each frame period, an offset from a data bank for which reading is enabled to a data bank for which writing is enabled is four (or three) data banks, such that each of the first through sixth data banks that is written in a frame period a is later read in a frame period a+4 (or a+3), where a is an integer.
According to yet another aspect of the present invention, the dual-bank memories mentioned above are utilized in combination with a plurality of pipelined processing units which receive input Reed-Solomon codewords and which execute computations to identify error locations and error values contained in the input codewords. Preferably, the plurality of pipelined processing units and the memories are operative in response to a same clock signal rate.
According to still another aspect of the present invention, each codeword contains n bytes, and each of the memory banks has a capacity of n bytes, where n is a positive integer.
Preferably, a maximum latency of each of the plurality of pipelined processing units is n cycles, and each of the memory access frame periods is n cycles.
<Desc/Clms Page number 5>
BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects and advantages of the present invention will become readily apparent from the detailed description that follows, with reference to the accompanying drawings, in which: FIG. 1 is a block diagram of a high-speed block pipelined Reed-Solomon decoder according to the present invention; FIG. 2 is a diagram for describing latencies of the processing blocks of the Reed-Solomon decoder of FIG. 1; FIG. 3 is a block diagram of a preferred embodiment of a dual-bank 3-RAM device according to the present invention; FIG. 4 is a flowchart illustrating a preferred embodiment of a method of accessing the dual-bank 3-RAM device according to the present invention; FIGS. 5 and 6 are diagrams for describing the selection of banks during write/read operations in the dual-bank 3-RAM device of FIG. 3; and FIG. 7 is a timing diagram illustrating the pipelined operation of the Reed-Solomon decoder of FIG. 1.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS FIG. 1 illustrates a high-speed block pipelined Reed-Solomon decoder according to an embodiment of the present invention. The Reed-Solomon decoder of this embodiment is capable of both error and erasure correction. As shown, the Reed-Solomon decoder computations are pipelined into five (5) stages Sl through S5.
For error correction only, the configuration of FIG. 1 would exclude the elements
<Desc/Clms Page number 6>
contained within the dashed-line 110, in which case only four (4) pipelined stages would be needed.
The Reed-Solomon decoder of the embodiment of FIG. 1 is equipped with a dual-bank 3-RAM device 180 for temporarily storing the input data DIN, i. e. , the codeword R (x). This device is made up of three memories, for example, three RAMs, each of which has two banks. A circular control mechanism is employed to execute write/read operations in response to a data input clock signal CLK. Briefly, the dual-bank 3-RAM device 180 writes the input data DIN to a bank of a RAM selected from among the three RAMs, and reads data from a bank of one of the other RAMs. The structure and operation of the dual-bank-3-RAM device 180 will be described later in greater detail with reference to FIG.
3.
Referring still to FIG. 1, the Reed-Solomon decoder (for error and erasure correction) also includes a syndrome generator 100, a flag counter and flag buffer 120, an erasure locator polynomial generator 130, a syndrome modifier 140, a polynomial coefficient generator 150, an error value evaluator 160, an error location searcher 170, and an error corrector 190. As mentioned previously, the computations executed by these components are pipelined into stages S 1 through S5.
In stage Sl, the syndrome generator 100 computes a syndrome S (x) from the input data DIN. Also, the flag counter and flag buffer 120 counts the number of erasure flags Era~Flag supplied in synchronization with the input data DIN, and buffers the erasure flags Era-Flag. In this regard, if there are no erasure flags Era~Flag, or if the number of the input erasure flags Era~Flag is beyond an allowable correction range, error correction is exclusively performed. That is, an allowable correction range can be defined such that error correction alone is carried out if more erasure flags Era~Flag are input than the number of erasure flags
<Desc/Clms Page number 7>
of the allowable correction range. Again, the flag counter and flag buffer 120 is not included in a Reed-Solomon decoder that is configured for error correction alone.
In stage S2, the syndrome modifier 140 modifies the syndrome S (x) generated by the syndrome generator 100 with the buffered erasure flags, and outputs a modified syndrome T (x). (For error correction only, the syndrome S (x) is not modified and the syndrome modifier 140 is omitted. ) The erasure locator polynomial generator 130 generates an erasure locator polynomial using the buffered erasure flags. As mentioned above, when the number of input erasure flags Era~Flag is equal to zero, or is beyond an allowable correction range, error correction alone is conducted. In this case, the erasure locator polynomial generator 130 generates a constant (e. g. , value 1) in place of an erasure locator polynomial.
In stage S3, the polynomial coefficient generator 150 generates the coefficients of an error locator polynomial o (x) for error location searching, and an error evaluator polynomial e (x) for error evaluation, using the modified syndrome T (x) and the erasure locator polynomial (or the constant 1). In this embodiment, the polynomial coefficient generator 150 utilizes a Euclidean algorithm. However, it will be appreciated that other known algorithms may be used as well. Once again, for error correction only, the elements contained within block 110 are excluded, and thus the coefficients of the error locator polynomial o (x) and the error evaluator polynomial e (x) are generated using the (unmodified) syndrome S (x) and a constant of 1.
In stage S4, the error value evaluator 160 calculates error values and the error location searcher 170 calculates error locations based on the coefficients of the error locator polynomial cr (x) and an error evaluator polynomial e (x). For example, a Chien Search algorithm may be used to calculate the solution of the error locator polynomial o (x) and transform the obtained solution into a polynomial form. The transformed error locator
<Desc/Clms Page number 8>
polynomial, which is expressed as Q (x), is used to calculate error locations. Likewise, the error value evaluator 160 calculates an error evaluator polynomial E (x) from the coefficients supplied by the polynomial coefficient generator 150. Herein, the error location searcher 170 and the error value evaluator 160 can be collectively referred to as an"error location and error value evaluator".
In stage S5, the error corrector 190 of FIG. 1 accesses the dual-bank 3-RAM device 180 to read the data DIN previously written thereto, and then corrects the errors of the read data with reference to the error locations identified by the error location searcher 170 and with reference to the error values calculated by the error value evaluator 160. In particular,
u+ 4-+ NTXT A Cthe error corrector 190 corrects the errors, contained in the input data DIN retrieved from the dual-bank 3-RAM device 180, by summing the input data DIN and the calculated error values, to thereby obtain output data DOUT (i. e. , corrected data R= (x)).
Although not illustrated, each pipelined processing block of the Reed-Solomon decoder shown in FIG. 1 performs the corresponding computations of stages S 1 through S5 in response to a system clock signal.
FIG. 2 illustrates the latency of the stages Sl through S5 of the Reed-Solomon decoder of FIG. 1. As shown, the maximum latency of each processing block of stages Sl, S2, S4 and S5 is n cycles (1 frame), where n is the number of bytes in each codeword.
Likewise, the maximum latency of the processing block of stage S3 is n cycles as well. In this regard, it is noted that co-pending U. S. patent application Serial No. 09/528,676, filed March 20,2000, the entirety of which is incorporated herein by reference, is directed to a technique for reducing the maximum latency of the third stage S3 (polynomial coefficient generation) to n cycles.
Accordingly, as illustrated in FIG. 2, the maximum latency of the Reed-Solomon
<Desc/Clms Page number 9>
computational blocks is n cycles. In general, pipelining is limited by the unit or block having the longest latency. However, even though the maximum latency of the processing blocks is n cycles or 1 frame, use of a conventional Reed-Solomon decoder memory to temporarily store the input codeword prior to correction would create a bottleneck. This is because the conventional memory requires at least 2n cycles or 2 frames to first store the codeword during stage S 1, and to then retrieve the codeword for correction thereof at stage S5. In contrast, and as described below, the dual-bank 3-RAM device of present invention overcomes this drawback by reducing the latency of the memory write/read operations to n cycles or 1 frame.
FIG. 3 is a block diagram of a preferred embodiment of the dual-bank 3-RAM device 180 shown in FIG. 1. As shown in FIG. 3, the dual-bank 3-RAM device 180 includes a circular buffer controller 300, a first dual-bank RAM 310, a second dual-bank RAM 320, and a third dual-bank RAM 330. The first dual-bank RAM 310 is partitioned into BANK 0 and BANK 1, the second dual-bank RAM 320 is partitioned into BANK 2 and BANK 3, and the third dual-bank RAM 330 is partitioned into BANK 4 and BANK 5. An address signal ADDR [7 : 0] is supplied by an 8-bit address bus 340, and the input data DIN [7 : 0] is supplied by an 8-bit data bus 350. The output of the dual-bank 3-RAM device 180 is an 8-bit parallel signal MOUT [7 : 0], and is applied to the error corrector 190 shown in FIG. 1.
The circular buffer controller 300 applies a read/write command RE/WR, an enable signal ENABLE, and a bank select signal BKSEL to each of the RAMs 310, 320 and 330.
The read/write command RE/WR specifies a read or write operation for each of the RAMs 310, 320 and 330, and the enable signal ENABLE selectively enables each of the RAMs 310, 320 and 330. Also, the bank select signal BKSEL is added to the address signal ADDR [7 : 0] for the purpose of selecting one of the two banks of each of the RAMs 310, 320 and 330.
<Desc/Clms Page number 10>
For example, if the bank select signal BKSEL is 0, a first bank of the two banks of a corresponding RAM is selected, and if the bank select signal BK - SEL is 1, a second bank of the two banks of a corresponding RAM is selected. In this manner, the read/write command RE/WR, the enable signal ENABLE, and the bank select signal BK~SEL collectively function as a write bank pointer and/or a read bank point which specifies writing and/or reading of selected individual banks of the RAMs 310,320 and 330.
In operation, the circular buffer controller 300 effectively sets both a write bank pointer and a read bank pointer in each memory cycle. These write and read bank pointers are set such that the write bank and the read bank are in different ones of the RAMs 310,
320 and 330, and such that a predetermined offset is maintained between the write bank and -~lv u 11 Lh u L L 116 L I I I the read bank from memory cycle to memory cycle. In this manner, both the writing of one frame of data (i. e. , one codeword) and the reading of another frame of data may be simultaneously carried out in each of successive memory cycles.
More particularly, in each memory cycle and in synchronization with a clock signal CLK, the circular buffer controller 300 applies the enable signal ENABLE to two of the RAMs 310,320 and 330, to thereby enable those two corresponding RAMs. Further, the circular buffer controller 300 applies a read command RE to one of the two enabled RAMs and a write command WR to the other of the two enabled RAMs. Still further, the circular buffer controller 300 adds the I-bit bank select signals BKSEL to the address signals ADDR [7 ; 0] applied to each of the enabled RAMs, to thereby select one of the two banks of each of the enabled RAMs. (Effectively, a 9-bit address signal is applied to each of the RAMs 310,320 and 330. ) Thus, for each memory cycle, one bank of one RAM is write enabled, and one bank of a different RAM is read enabled.
Each of the RAMs 310, 320 and 330 may be implemented as a static random access
<Desc/Clms Page number 11>
memories (i. e. , SRAM 0, SRAM 1 and SRAM 2). Preferably, the memory capacity of each bank is sufficient to store one frame or codeword of data. Generally, each bank should therefore have a capacity of n symbols (bytes) for the RS (n, k) code, and each RAM should have a capacity of 2n symbols. In the example of FIG. 3, the bank of each dual bank RAM can store data having a maximum length of 256 bytes over a Galois field GF (28).
Table 1 below shows the size of each RAM and each bank when a Reed-Solomon (RS) code (n, k) is present over a Galois field GF (2m), where n is the length (number of symbols or bytes) of a codeword, k is the length (number of symbols or bytes) of the input data prior to coding, and m is the number of bits per byte. Table 1
Bank size RAM size Data width Address width RS (n, k) code, n 2n m P+ 1, where P is the smallest GF (2m) integer which satisfies log2n # P If n=256 and 256 512 8 8+1=9 m=8
Here, the memory address width is defined as a value obtained by adding 1 to a minimum of an integer P which satisfies the condition of Log2n # P. As previously suggested, the addition of 1 is the result of the selection of a bank using the MSB of the RAM address. As shown in Table 1, when n=256 and m=8, the bank size is 256 bytes and the RAM size is 512 bytes. Here, the data width is 8 bits and the address width is 9 bits.
<Desc/Clms Page number 12>
The operation of the dual-bank 3-RAM device 180 will be described in greater detail with reference to FIGS. 3 and 4, where FIG. 4 is a flowchart illustrating a method of accessing the dual-bank 3-RAM device 180 discussed above in connection with FIG. 3.
When accessing the dual-bank-3-RAM device 180, the operational mode of the Reed-Solomon decoder is identified, i. e. , whether both error and erasure correction is to be performed, or error correction alone is to be performed. Referring to FIG. 4, the setting of the write bank pointer and the read bank pointer is different for error and erasure correction (Step 400) than it is for error correction alone (Step 410).
In particular, at Step 402, a determination is made as to whether both error and erasure
is t-1'. As-lescr ;'-eAprev,-,,-'-, +I,,--A 1-11 correction is to be executed. As described previously, this is done by checking the number of erasure flags Era Flag input in synchronization with the input data DIN. If there are one or more erasure flags Era~Flag up to an allowable maximum, then both error and erasure correction is executed.
If it is determined in step 402 that both error and erasure corrections are to be performed, then Step 404 is executed where the circular buffer controller 300 sets an offset between a write bank pointer and a read bank pointer to four (4) banks. This offset between the write bank pointer and the read bank pointer is described in more detail with reference to FIG. 5. In the first frame T50 of the example of FIG. 5, the read pointer is set to BANK 0 of the first RAM, and the write pointer is set to BANK 4 of the third RAM. Thus, the offset from the read bank pointer to the write bank pointer is four (4) banks. The read and write pointer are then incremented in each of the successive frames as shown in FIG. 5, and the offset of four (4) banks from the read bank pointer to the write bank pointer is maintained in each frame. If the read bank pointer is expressed as BANK#, then the write bank pointer is expressed as BANK (#+4) MOD 6, where the number 6 denotes the total number of banks.
<Desc/Clms Page number 13>
If the writing of any particular bank is arbitrarily considered to occur in a"first"frame, then the offset of four (4) will result in the reading of that same particular bank in a"fifth" frame. For example, consider BANK 4 of the third RAM in FIG. 5. This bank is written in the first frame T50, and then read in the fifth frame. This timing corresponds to the number of stages (five) of pipelined computations in the Reed-Solomon decoder for both error and erasure correction. Thus, if input data DIN is written to BANK 4 at the first computational stage, the same data DIN can be read from BANK 4 at the fifth computational stage of the pipelined decoder.
Returning to FIG. 4, if it is instead determined in step 402 that error correction only is to be performed, then Step 414 is executed where the circular buffer controller 300 sets an offset between a write bank pointer and a read bank pointer to three (3) banks. Correction of errors only occurs when no error flag Era~Flag is input, or when the number of the input error flags Era~Flag is beyond the allowable correction range. The offset of three (3) banks between the write bank pointer and the read bank pointer is described in more detail with reference to FIG. 6. In the first frame T60 of the example of FIG. 6, the read pointer is set to BANK 0 of the first RAM, and the write pointer is set to BANK 3 of the second RAM.
Thus, the offset from the read bank pointer to the write bank pointer is three (3) banks. The read and write pointer are then incremented in each of the successive frames as shown in FIG.
6, and the offset of three (3) banks from the read bank pointer to the write bank pointer is maintained in each frame. If the read bank pointer is expressed as BANK#, then the write bank pointer is expressed as BANK (#+3) MOD 6.
If the writing of any particular bank is arbitrarily considered to occur in a"first"frame, then the offset of three (3) will result in the reading of that same particular bank in a"fourth" frame. For example, consider BANK 3 of the second RAM in FIG. 6. This bank is written
<Desc/Clms Page number 14>
in the first frame T60, and then read in the fourth frame. This timing corresponds to the number of stages (four) of pipelined computations in the Reed-Solomon decoder for error correction only. Thus, if input data DIN is written to BANK 3-at the first computational stage, the same data DIN can be read from BANK 3 at the fourth computational stage of the pipelined decoder.
Returning once again to FIG. 4, when a write command has been applied at step 420, the input data DIN is written to the bank designated by the write bank pointer at Step 430.
Likewise, when a read command RE has been applied at step 440, the previously written input data DIN is read from the bank designated by the read bank pointer at Step 450. Then,
at Step 460, the thus read data DIN is then utilized as described above in the correction of k-7 t, p-r% jv 1. 11,- +thus--ad data xi IL. IA errors and/or erasures.
As illustrated in FIG. 4, the writing and reading of data are simultaneously executed.
If coding has not been completed at Step 470, then the decoding process continues by returning to Steps for 420 and 440 for execution of a next memory frame.
As shown in FIG. 5 and FIG. 6, the offsets between the write bank pointer and the read bank pointer are set so as to prevent collisions (simultaneous access) within the same RAM, and to allow for writing and reading operations which are coincident with the timings of the computational stages of the pipelined decoder. Thus, the memory accessing sequence may be predefined and is responsive to the system clock, and thus the decoding of the Reed-Solomon decoder can be quickly achieved without memory bottlenecks.
Table 2 comparatively shows the number of memory access cycles required for a decoder having a single circular RAM, and the Reed-Solomon decoder of the present invention which utilizes three circular RAMs.
<Desc/Clms Page number 15>
Table 2
RS (n, k) Cycles of Cycles of Total reading Memory System clocks code writing reading and writing access cycles required relative cycles required to data input clocks 1 RAM n n 2n > 2n > 2x 3 RAMs n n 2n n Ix
As shown in Table 2, assuming that each cycle of writing data to and reading data from the RAMs is"n", the number of cycles required to access memories per frame of data is "2n"in the case of using a single RAM, and is only"n"for the case of three RAMs. In addition, when one RAM is used, a system clock rate must be increased to two or more times a data input clock rate. On the other hand, when three RAMs are used as in the present invention, the system clock rate can be the same as the data input clock rate. As a result, the writing and reading of data can be implemented with a lower-rate system clock signal.
Table 3 shows size and operational speed comparisons between the single RAM memory and the dual-bank 3-RAM device of the present invention, in the case where SRAMs are adopted for 256-byte codewords.
Table 3
Memory Size Relative Speed Absolute Relative 1 RAM (1536 bytes) 10996 0.66x < 0.5x 3 RAMs (512*3 bytes) 5573*3 1 1
As shown in Table 3, when the length of the codeword is 256 bytes, the size of a single 1536-byte SRAM is 0.66 times smaller than that of the three 512-byte SRAM
<Desc/Clms Page number 16>
configuration of the present invention. However, the operational speed of the three SRAMs is more than twice that of the single SRAM. Moreover, when considering the Reed-Solomon decoder as a whole, the percentage increase in the size thereof resulting from the use of three SRAMs is negligible in consideration of the increased operational speeds.
FIG. 7 is a timing diagram of the decoding process of the block pipelined Reed-Solomon decoder according to an embodiment of the present invention. As shown in FIG. 7, the initial latency delay T70 is 4*n cycles, and error corrected data DOUT (i. e., R= (x) ) is output every n cycles after the initial latency delay T70. Thereafter, once full pipelining of operations is achieved in the 5th and 6th frames, both the writing of data with the computation of S (x) and the reading of data with the computation ofR= (x) may be carried out without creating a bottleneck since the latency of the write/read operations is n cycles. In FIG. 7, T75 represents a throughput delay interval in the actual processing procedure, rather than a latency delay interval.
The dual-bank 3-RAM device of the present invention, and the Reed-Solomon decoder adopting the dual-bank 3-RAM device of the present invention, have a wide range of applications including, for example, optical disk systems such as high-definition digital versatile discs (HD-DVD), HDTV, satellite communications, wireless communications equipment such as IMT, network systems such as giga-Ethemet, and ultrahigh speed systems.
In the dual-bank 3-RAM device of the present invention, the data input clock for accessing memories can be used as the system clock, so that the manufacture of the semiconductor device is simplified, power consumption is decreased, and the operational speed is increased. In addition, time expended accessing memories can be minimized such that the system clock rate is less affected by the memory access time, thereby virtually increasing the degree of freedom in the timing margins between blocks in the system design.
<Desc/Clms Page number 17>
Furthermore, the dual-bank 3-RAM device enables high-speed transmissions, which are particularly suitable for a high-speed pipelined Reed-Solomon decoder and ultrahigh speed systems adopting the Reed-Solomon decoder.
In the drawings and specification, typical preferred embodiments of the invention are disclosed and, although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation. It will be understood by those skilled in the art that various changes in form and details may be made to the described embodiments without departing from the spirit and scope of the invention as defined by the appended claims.

Claims (4)

What is claimed is:
1. A memory device used with a high-speed block pipelined Reed-Solomon decoder for correcting errors by decoding data received from the outside, the memory device to which the received data are written and from which data are read comprising: a plurality of memories each having dual banks, the memories being activated by a write/read command and an enable signal; and a circular buffer controller for applying the write/read command and the enable signal for selecting a corresponding memory to the plurality of memories, and setting a write bank pointer and a read bank pointer such that banks for writing and reading of each frame of
data are selected from different memories with a predetermined offset. le, LC%-L ii k.-Li IIL i IL In
2. The memory device of claim 1, wherein the plurality of memories include three random access memories (RAMs) each having two banks, and each bank stores a frame of data.
3. The memory device of claim 1, wherein the circular buffer controller sets the write bank pointer and the read bank pointer with an offset of 4 banks between the write bank pointer and the read bank pointer when the Reed-Solomon decoder performs both error and erasure corrections.
4. The memory device of claim 1, wherein the circular buffer controller sets the write bank pointer and the read bank pointer with an offset of 3 banks between the write bank pointer and the read bank pointer when the Reed-Solomon Decoder performs only error correction.
GB0225258A 2000-10-25 2001-07-03 Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device Expired - Fee Related GB2379768B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2000-0062904A KR100370239B1 (en) 2000-10-25 2000-10-25 Memory device for applying to high speed block pipelined reed-solomon decoder and method of memory access and reed-solomon decoder having the memory device
GB0116275A GB2369215B (en) 2000-10-25 2001-07-03 Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device

Publications (3)

Publication Number Publication Date
GB0225258D0 GB0225258D0 (en) 2002-12-11
GB2379768A true GB2379768A (en) 2003-03-19
GB2379768B GB2379768B (en) 2003-08-20

Family

ID=26246276

Family Applications (3)

Application Number Title Priority Date Filing Date
GB0225258A Expired - Fee Related GB2379768B (en) 2000-10-25 2001-07-03 Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device
GB0225261A Expired - Fee Related GB2380297B (en) 2000-10-25 2001-07-03 Reed-solomon decoder including memory device
GB0225260A Expired - Fee Related GB2380296B (en) 2000-10-25 2001-07-03 Method of accessing memory device

Family Applications After (2)

Application Number Title Priority Date Filing Date
GB0225261A Expired - Fee Related GB2380297B (en) 2000-10-25 2001-07-03 Reed-solomon decoder including memory device
GB0225260A Expired - Fee Related GB2380296B (en) 2000-10-25 2001-07-03 Method of accessing memory device

Country Status (1)

Country Link
GB (3) GB2379768B (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725987A (en) * 1985-10-23 1988-02-16 Eastman Kodak Company Architecture for a fast frame store using dynamic RAMS
US4868812A (en) * 1987-05-13 1989-09-19 U.S. Philips Corporation Shared lines equipment, especially for B-ISDN switching system
EP0658871A2 (en) * 1993-12-09 1995-06-21 Sun Microsystems, Inc. Interleaving pixel data for a memory display interface
US5570320A (en) * 1994-08-16 1996-10-29 Cirrus Logic, Inc. Dual bank memory system with output multiplexing and methods using the same
US5771199A (en) * 1995-12-29 1998-06-23 Samsung Electronics Co., Ltd. Integrated circuit memory devices having improved dual memory bank control capability and methods of operating same

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4845713A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Method and apparatus for determining the coefficients of a locator polynomial
WO1995012850A1 (en) * 1993-11-04 1995-05-11 Cirrus Logic, Inc. Reed-solomon decoder
US6081920A (en) * 1998-01-08 2000-06-27 Lsi Logic Corporation Method and apparatus for fast decoding of a Reed-Solomon code

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4725987A (en) * 1985-10-23 1988-02-16 Eastman Kodak Company Architecture for a fast frame store using dynamic RAMS
US4868812A (en) * 1987-05-13 1989-09-19 U.S. Philips Corporation Shared lines equipment, especially for B-ISDN switching system
EP0658871A2 (en) * 1993-12-09 1995-06-21 Sun Microsystems, Inc. Interleaving pixel data for a memory display interface
US5570320A (en) * 1994-08-16 1996-10-29 Cirrus Logic, Inc. Dual bank memory system with output multiplexing and methods using the same
US5771199A (en) * 1995-12-29 1998-06-23 Samsung Electronics Co., Ltd. Integrated circuit memory devices having improved dual memory bank control capability and methods of operating same

Also Published As

Publication number Publication date
GB2380296B (en) 2003-09-10
GB0225261D0 (en) 2002-12-11
GB0225260D0 (en) 2002-12-11
GB0225258D0 (en) 2002-12-11
GB2380296A (en) 2003-04-02
GB2379768B (en) 2003-08-20
GB2380297B (en) 2003-09-10
GB2380297A (en) 2003-04-02

Similar Documents

Publication Publication Date Title
US6639865B2 (en) Memory device, method of accessing the memory device, and reed-solomon decoder including the memory device
US7586808B2 (en) Memory device for use in high-speed block pipelined reed-solomon decoder, method of accessing the memory device, and reed-solomon decoder having the memory device
US7600177B2 (en) Delta syndrome based iterative Reed-Solomon product code decoder
US9246515B2 (en) Error correction code block having dual-syndrome generator, method thereof, and system having same
EP0838905B1 (en) Reed-Solomon Decoder
TWI308321B (en)
US7962837B2 (en) Technique for reducing parity bit-widths for check bit and syndrome generation for data blocks through the use of additional check bits to increase the number of minimum weighted codes in the hamming code H-matrix
KR20090018252A (en) Decoder for increasing throughput using double buffering structure and pipelining technique and decoding method thereof
JPH08330975A (en) Error correction code decoding method and circuit adopting this method
CN1559033A (en) Double error correcting code system
JP2000195193A (en) Error correction decoding device
US7000172B2 (en) Decoding system and method in an optical disk storage device
US7774676B2 (en) Methods and apparatuses for generating error correction codes
US5774648A (en) Address generator for error control system
GB2379768A (en) Memory device
US20070067702A1 (en) Method and apparatus for syndrome generation
CN111030709A (en) Decoding method based on BCH decoder, BCH decoder and circuit applying BCH decoder
KR20050078231A (en) Digital video disc decoding device and error correction method
US6694473B1 (en) Parallel signal decoding method
CN101051842B (en) Decoding system for error correcting code
JP2007013806A (en) Error correction processor
JP3728011B2 (en) Error correction method and error correction apparatus
JP2001160761A (en) Error correction device and error correction method
KR20010094291A (en) Apparatus for correcting error of high speed data
JPH0550896B2 (en)

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20140703