Abstract:
A system decoder having error correcting memories for high-speed data transmission and a method for controlling the same. A system decoder of an optical disk reproducing apparatus having a descrambler for restoring scrambled data in the process of encoding data, includes first and second memories for correcting an error, and a memory controller for transmitting error-corrected data to the descrambler while data read and demodulated from the optical disk is written in one of the first and second memories, and error-correcting data written in the other memory while the demodulated and error-corrected data is written and read.

Description:
BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention relates to a system decoder of an optical disk reproducing apparatus, and in particular, to a system decoder having error correcting memories for high-speed data transmission and a method for controlling the same. 
     2. Description of the Related Art 
     An optical disk reproducing apparatus such as a laser disk (LD) player or a compact disk (CD) player has been widely accepted for home use since an optical disk technique which can read data recorded in a recording medium by using a laser beam was established about 20 years ago. A recording/reproducing apparatus using such an optical disk has been put to practical use. Recently, with the development of shortwave laser or recording/reproducing technique in addition to an overwrite technique, progress has been made in increasing the recording density of the optical disk. 
     Meanwhile, a digital image compression technique has been advancing rapidly. In particular, the MPEG2 (Moving Picture Experts Group 2) can reproduce picture quality to a sufficient degree so as to be received in the household at a data transmission rate of close to 10 Mbps. In the field of audio reproduction, an audio compression technique AC-3 which is capable of reproducing multichannel audio leads to high tone quality and multi-sound. Together with a recordable digital video (or versatile) disk, a digital video disk (DVD) is expected to play an important role in a CD-ROM as well as a video tape recorder (VTR) which is an existing video recording/reproducing apparatus. Such a DVD is one type of digital moving picture disk media and is a multimedia storage device of high picture quality and high tone quality which can store an MPEG2 digital image of 2 hours or more. 
     FIG. 1 schematically illustrates a general DVD reproducing apparatus. As an optical disk 10 rotates by a disk motor 16, an optical pickup 13 which is driven by a sled pickup motor 14 and includes a head 12 converts data reproduced from the optical disk 10 into an analog RF (Radio Frequency) signal. This analog RF signal is shaped into a pulse waveform and a data stream ESM is transmitted to a digital PLL (Phase Locked Loop) 20 and a system decoder 18. The system decoder 18 demodulates, error-corrects, and descrambles the data stream ESM. The digital PLL 20 including a phase comparator, a voltage controlled oscillator, a frequency divider, etc., generates a first clock in synchronism with a signal reproduced from the optical disk 10. A disk driving controller 22 controls a constant linear velocity of the rotation of the optical disk 10 and other disk related operations in consideration of frequency servo, phase servo, etc., according to a frame synchronizing signal Sf provided from a synchronous detector (not shown) of the system decoder 18. 
     A microprocessor 24 controls the overall operation of the DVD reproducing apparatus according to a control program. For instance, if a data transmission start signal is received from an audio decoder 42, a video decoder 36 or a ROM (Read Only Memory) decoder 32, the microprocessor 24 generates a transmission control signal. A system clock generator 26, which is a crystal oscillator, generates a second clock of a system clock PLCK and transmits the system clock PLCK to the disk driving controller 22 and an error corrector (not shown). A first memory 28 connected to the system decoder 18 is a memory for correcting an error and uses a SRAM (Static Random Access Memory). A second memory 30 which is a track buffer memory uses a DRAM (Dynamic Random Access Memory). The ROM decoder 32 which is mainly contained in a host (for example, a personal computer) operates according to a command of the host and transmits data generated from the system decoder 18 to the host according to an interface type. A demultiplexer 34 receives audio and video signals from the system decoder 34, and transmits multiplexed audio and video signals to the AC3/MPEG audio decoder 42 and the MPEG2 video decoder 36, respectively. Video data and audio data respectively decoded from the video decoder 36 and the audio decoder 42 are transmitted to an NTSC (or PAL) encoder 38 and a digital-to-analog (D/A) converter 44 and output through a monitor 40 and a speaker 46, respectively. 
     FIG. 2 is a detailed block diagram of the system decoder 18 shown in FIG. 1. The first memory 28 used for error correction is the SRAM. The second memory 30 used for data buffering is the DRAM. The data stream ESM read through the head 12 is demodulated through a 32-bit shift register 102 and a 16-8 demodulator 104 of an EFM demodulator 100. A synchronous detector 106 detects the frame synchronous signal Sf from data generated from the 32-bit shift register 102 and transmits the detected frame synchronous signal Sf to the digital PLL 20. Meanwhile, data demodulated through the EFM demodulator 100 is stored in the first memory 28 under the control of an error correcting code (ECC) memory controller 108. The data stored in the first memory 28 is read by blocks under the control of the ECC memory controller 108 and then transmitted to an error corrector 110. Data error-corrected from the error corrector 110 is transmitted to a descrambler and error detector 112 under the control of the ECC memory controller 108. A descrambler of the descrambler and error detector 112 restores data scrambled in the process of encoding data, and an error detector thereof detects an error of the descrambled data. The descrambling and error detection are carried out by sectors. Error information detected from the descrambler and error detector 112 is stored in the second memory 30 under the control of a microprocessor memory access controller 116, together with data. The microprocessor memory access controller 116 controls a buffer write controller 114, a buffer read controller 118 and a track buffer memory controller 120 under the control of the microprocessor 24 through a microprocessor interface 122. The buffer write controller 114 writes data descrambled and error-detected from the descrambler and error detector 112 in the second memory 30 under the control of the microprocessor memory access controller 116. The buffer read controller 118 reads the data stored in the second memory 30 under the control of the microprocessor memory access controller 116 and transmits the read data to an audio/video (A/V) decoder interface and a DVD-ROM interface 126. The microprocessor interface 122 interfaces transmitting/receiving signals between the system decoder 18 and the microprocessor 24. 
     In operation, the synchronous detection, identification (ID) detection and demodulation of the data stream are performed. Next, the error detection and correction are implemented. Thereafter, the descrambling, error detection and track buffering of the error-corrected data are executed. The first memory 28 has a first region for buffering EFM demodulated data, a second region for error-correcting a buffered error correcting block horizontally and vertically, and a third region for transmitting error-corrected data to the second memory 30. That is, the ECC memory controller 108 stores the EFM demodulated data in the first region of the first memory 28, reads and error-corrects the data stored in the first region by blocks using the second region, stores the error-corrected data in the third region of the first memory 28, and transmits the data stored in the third region to the second memory 30. In this data processing, the ECC memory controller 108 processes data in the order of: data reading, error correction, data transmission, data reading, error correction and data transmission. That is, since data is accessed from three regions of one memory, an error correcting speed is deteriorated. Therefore, the optical disk reproducing apparatus having such a system decoder 18 has a slow data processing speed and a slow data transmission speed. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the present invention to provide a system decoder having error correcting memories which can speed up data processing and data transmission by improving an error correcting speed in an optical disk reproducing apparatus. 
     It is another object of the present invention to provide a method for controlling error correcting memories, which can improve an error correcting speed in an optical disk reproducing apparatus having a system decoder. 
     Additional objects and advantages of the invention will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the invention. 
     According to one aspect of the present invention, a system decoder of an optical disk reproducing apparatus having a descrambler for restoring scrambled data in the process of encoding data, includes first and second memories for correcting an error, and a memory controller for transmitting error-corrected data to the descrambler while data read and demodulated from the optical disk is written in one of the memories, and error-correcting data written in the other memory while the demodulated and error-corrected data is written and read. 
     According to another aspect of the present invention, a method for controlling first and second error correcting memories of an optical disk reproducing apparatus, includes the steps of: alternatively writing one error correcting block in the first and second memories upon receiving demodulation data of one data sector including main data, inner parity data and outer parity data, error-correcting a corresponding one error correcting block; and reading error-corrected data from one of the first and second memories when writing one error correcting block in the other one of the first and second memories. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     These and other objects, features and advantages of the present invention will be more apparent from the following detailed description when taken in conjunction with the accompanying drawings in which: 
     FIG. 1 is a block diagram of a general digital video (or versatile) disk reproducing apparatus; 
     FIG. 2 is a detailed block diagram of a system decoder shown in FIG. 1; 
     FIG. 3 is a detailed block diagram of a system decoder according to an embodiment of the present invention; 
     FIG. 4 is a detailed block diagram of an ECC memory controller shown in FIG. 3 according to the embodiment of the present invention; 
     FIG. 5 is a flow chart showing a data processing procedure of a memory controller according to the embodiment of the present invention; 
     FIG. 6 shows a data sector structure after demodulation according to the embodiment of the present invention; 
     FIG. 7 shows a structure of one error correcting block according to the embodiment of the present invention; and 
     FIG. 8 shows a map structure of each of third and fourth memories according to the embodiment of the present invention. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     A preferred embodiment of the present invention will be described in detail hereinbelow with reference to the accompanying drawings. It should be noted that like reference numerals designate like elements throughout several views. In the following description, numerous specific details, such as the size of an error correcting block, a one-word recording time, a maximum accessed number, detailed processing flows, etc., are set forth to provide a more thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known functions or constructions which may obscure the present invention in unnecessary detail are not described in detail. 
     Referring to FIG. 3, a system decoder according to the present invention has the same construction as the system decoder 18 of FIG. 2, except for third and fourth memories 130 and 140. The third and fourth memories 130 and 140 are error correcting memories and use SRAMs. Moreover, they are formed within a single chip. 
     FIG. 4 is a detailed block diagram of the ECC memory controller 108 shown in FIG. 3. FIG. 5 is a flow chart showing a data processing procedure of a memory controller 109 illustrated in FIG. 4. Referring to FIG. 4, the third and fourth memories 130 and 140 store demodulated and error-corrected data under the control of the memory controller 109. The memory controller 109 controls the overall operation of the ECC memory controller 108 according to a data processing control program. A memory write controller 150 writes the data demodulated from the EFM demodulator 100 in the third memory 130 or the fourth memory 140 under the control of the memory controller 109. The error corrector 110 error-corrects an error correcting block including data read from the optical disk 10 of a DVD type, horizontally and vertically, in response to an ECC start signal generated from the memory controller 109. For this error correction, the third and fourth memories 130 and 140 collect ID data and main data generated from the EFM demodulator 100 and store the data by blocks to form the error correcting block. A memory read controller 160 reads data stored in the third memory 130 or the fourth memory 140 under the control of the memory controller 109 and transmits the read data to the descrambler and error detector 112. 
     Referring to FIG. 5, the data processing procedure of the memory controller 109 is executed in synchronization with an ECC synchronous signal. 
     The memory controller 109 writes one error correcting block in the third memory 130 at step 200. At step 210, the memory controller 109 error-corrects data written in the third memory 130 and simultaneously writes the next one error correcting block in the fourth memory 140. At step 220, the memory controller 109 error-corrects data written in the fourth memory 140, transmits data error-corrected from the third memory 130 to the memory read controller 160, and writes the next one error correcting block in the third memory 130. At step 230, the memory controller 109 error-corrects data written in the third memory 130, transmits the error-corrected data of the fourth memory 140 to the memory read controller 160, and writes the next one error correcting block in the fourth memory 140. At step 240, the memory controller 109 checks whether the reception of demodulated data has ended. If not, the memory controller 109 returns to step 220. If the demodulated data is not received from the EFM demodulator 100, the memory controller 109 completes the data processing procedure. 
     The above data processing procedure of the memory controller 109 will hereinafter be classified into a data write process, an error correcting process and an error-corrected data transmission process. 
     FIG. 6 shows a data sector structure after demodulation illustrated to describe the data write process of the data processing procedure of the memory controller 109. FIG. 7 shows a structure of the one error correcting block. FIG. 8 shows a map structure of each of third and fourth memories 130 and 140. In the structure of the data demodulated from the EFM demodulator 100, main data of 2064 bytes, inner parity data PI of 130 bytes and outer parity data PO of 172 bytes constitute one sector, as shown in FIG. 6. The data is output in the unit of a block from the left side of the first row and written in the third memory 130 or the fourth memory 140. The one error correcting block includes 16 data sectors as indicated in FIG. 7 and its size is 37,856 bytes. That is: 
     
         2,064 bytes (main data)+130 bytes (PI)+172 bytes (PO)=2,366 bytes (one data sector) 
    
     
         2,366 bytes×16=37,856 bytes (one error correcting block)(1) 
    
     For error correction, the 16 data sectors should be correctly written in the third memory 130 or the fourth memory 140 as the error correcting block. The data demodulated from the EFM demodulator 100 with respect to the ECC synchronous signal is alternatively written in the third and fourth memories 130 and 140 by the unit of 16 data sectors. In this case, the main data, PI and PO are written in a predetermined position of a memory map by the unit of a word (2 bytes). When a one-word write time is designed to 3T or 4T of the system clock PLCK, the data write time of the one error correcting block is listed below in Table 1. 
     
                       TABLE 1______________________________________                                   Write PLCK     3T/4T    Accessed                           Access Time                                   LimitSpeed [MHz]    [ns]     number  [ms]    Time [ms]______________________________________1× 27       111/148  18,928  2.1/2.8 22.922× 54       55.5/74          1.05/1.4                                   11.464× 108      27.8/37          0.525/0.7                                   5.736× 162      18.5/24.69       0.35/0.47                                   3.828× 216      13.9/18.5        0.263/0.35                                   2.86______________________________________ 
    
     In the error correcting process of the data processing procedure of the memory controller 109, if the data of the one error correcting block is written in either the third memory 130 or the fourth memory 140, the memory controller 109 generates the ECC start signal to begin to correct the error. After PI error correction is completed, the PO error correction is performed, and the same process is repeated once more. Although the EFM demodulated data has the structure of the one error correcting block as shown in FIG. 7, it should be written in the memory map shown in FIG. 8. For the PI error correction of the first row indicated in FIG. 7, data of 172 bytes is read from a data region and data of 10 bytes is read from a PI region to detect and correct the error. The error-corrected data is again written in a position where the error occurs. The PI error correction is performed with respect to both the main data and PO. To calculate a syndrome, an error position and an error value of one row, the data and parity of 182 bytes are read by the unit of a word. Since the maximum number of bytes per row which can correct the error is 10 bytes, reading and writing are repeated by 10 times. The memory accessed number for the PI error correction is obtained by the following equation (2). That is, the error correcting memory is accessed a maximum of 23,088 times. 
     
         syndrome, error position, error value: 182×208=37,856 bytes 
    
     
         error correction: (10×208)×2=4,160 bytes 
    
     
         maximum accessed number: 37,856/2+4,160=23,088             (2) 
    
     Since the PO error correction is performed in the column direction by the unit of a byte, the memory should be accessed by the unit of a byte. To calculate the syndrome, error position and error value of one column, the data and parity of 208 bytes are read. The maximum number of bytes per column which can correct the error is 16 bytes. The maximum memory accessed number for the PO error correction is 43,680, as calculated in the following equation (3): 
     
         syndrome, error position, error value: 208×182=37,856 bytes 
    
     
         error correction: (16×182)×2=5,824 bytes 
    
     
         maximum accessed number: 37,856+5,824=43,680               (3) 
    
     Therefore, in the error correction of PI+PO+PI+PO, the maximum accessed number is 145,440=((23,088+43,680)×2). If the memory access time is 3T or 4T of the system clock PLCK, the error correcting time of the one error correcting block is shown in the following Table 2. 
     
                       TABLE 2______________________________________                                   Write PLCK     3T/4T    Accessed                           Access Time                                   LimitSpeed [MHz]    [ns]     number  [ms]    Time [ms]______________________________________1× 27       111/148  133,536 14.82/19.72                                   22.922× 54       55.5/74          7.41/9.885                                   11.464× 108      27.8/37          3.705/4.9425                                   5.736× 162      18.5/24.69       2.47/3.297                                   3.828× 216      13.9/18.5        1.8525/2.471                                   2.86______________________________________ 
    
     In the error-corrected data transmission process of the data processing procedure of the memory controller 109, the error-corrected data is transmitted to the descrambler and error detector 112. Since the transmitted data is 2064 bytes per sector, the one error correcting block has 16,512 words to be transmitted. The transmission time of the one error correcting block is listed below in Table 3. 
     
                       TABLE 3______________________________________                                   Write PLCK     3T/4T    Accessed                           Access Time                                   LimitSpeed [MHz]    [ns]     number  [ms]    Time [ms]______________________________________1× 27       111/148  16,512  1.84/2.44                                   22.922× 54       55.5/74          0.92/1.22                                   11.464× 108      27.8/37          0.46/0.61                                   5.736× 162      18.5/24.69       0.3/0.4 3.828× 216      13.9/18.5        0.23/0.305                                   2.86______________________________________ 
    
     On the other hand, the error correcting memory 28 is divided into the third and fourth memories 130 and 140 as illustrated in FIG. 3. After the demodulated data is recorded in one memory (A), demodulated data is recorded in the other memory (B) during the performance of error correction in the memory (A). Upon completing error correction for the demodulated data recorded in the memory (A), then the data recorded in the memory (A) is read. As shown in the above Tables 1, 2 and 3, the accessed number within a give time is determined. For example, in quadruple speed, if the access time of one word is 4T of the system clock PLCK, the accessed number per one error correcting block of the memory in which the demodulated data is written and data reading for transmitting the data to the descrambler and error detector 112 is performed is 35,440= (writing 18,928+reading 16,512), and the access time is 1.31 ms. During the error correction, since the error correcting time is 4.9425 ms in the accessed number of 133,536, if the accessed number is 141,760, the error correcting time is 5.245 ms. Since the input time of the one error correcting block from the disk 10 is 5.73 ms, the error correction is completed within this input time. Moreover, in octuple speed, when the access time of one word is 4T of the system clock PLCK, the access time of the one word is 18.5 ns. If a memory having the access time of 18.5 ns or less is used, since the error correcting time is 2.62 ms and the data input time is 2.86 ms, the error correction is sufficiently performed within a given time. 
     As noted above, when the data reproduced from the optical disk is alternatively written in two error correcting memories, the error-corrected data is read from one memory and the error correction is implemented from another memory. Hence, the data processing speed is improved and the data transmission time can be reduced.