KR19980018647A - 데이터 행과 열에서 복호화 에러를 나타내는 플래그를 이용해 데이터를 복호화하는 장치 및 방법 - Google Patents
데이터 행과 열에서 복호화 에러를 나타내는 플래그를 이용해 데이터를 복호화하는 장치 및 방법 Download PDFInfo
- Publication number
- KR19980018647A KR19980018647A KR1019970038619A KR19970038619A KR19980018647A KR 19980018647 A KR19980018647 A KR 19980018647A KR 1019970038619 A KR1019970038619 A KR 1019970038619A KR 19970038619 A KR19970038619 A KR 19970038619A KR 19980018647 A KR19980018647 A KR 19980018647A
- Authority
- KR
- South Korea
- Prior art keywords
- data
- flag
- correction
- error
- circuit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000012937 correction Methods 0.000 claims abstract description 290
- 238000000926 separation method Methods 0.000 claims description 11
- 238000003860 storage Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 abstract description 67
- 230000008569 process Effects 0.000 description 65
- 238000010586 diagram Methods 0.000 description 35
- 230000003287 optical effect Effects 0.000 description 23
- 238000001514 detection method Methods 0.000 description 15
- 238000012546 transfer Methods 0.000 description 12
- 238000006243 chemical reaction Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 6
- 238000012217 deletion Methods 0.000 description 5
- 230000037430 deletion Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 206010063836 Atrioventricular septal defect Diseases 0.000 description 2
- 238000001211 electron capture detection Methods 0.000 description 2
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000006748 scratching Methods 0.000 description 1
- 230000002393 scratching effect Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- 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
-
- 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
- G11B20/1876—Interpolating methods
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Error Detection And Correction (AREA)
Abstract
복호화 장치 및 방법은 ECC 블록보다 작은 단위로 보간 플래그(interpolation flag)를 설정한다. ECC 블록에서 행을 근거로 하여 에러를 나타내는 PI1 플래그는 첫 번째 에러 정정 결과에 대해 발생되고, 행을 근거로 하여 에러를 또한 나타내는 PI2 플래그는 두 번째 에러 정정 결과에 대해 발생된다. 열을 근거로 하여 에러를 나타내는 PO 플래그는 ECC 블록에서 에러 정정 결과에 대해 또한 발생된다. 이러한 처리 동작에 이어서, 보간 플래그를 발생하기 위해 PI1, PI2, 및 PO 플래그가 사용된다.
Description
발명의 배경
본 발명은 복호화 장치 및 방법에 관한 것으로, 특히 데이터 행과 열의 방향으로 복호화가 행해진 데이터상에 에러 정정 처리가 실행되고, 에러 정정 처리를 근거로 데이터 행과 열에 복호화 에러를 나타내도록 에러 플래그(error flag)가 발생되는 복호화 장치 및 방법에 관한 것이다.
광학 디스크 재생 장치에서 광빔을 통해 재생된 정보는 예를 들면 디스크상의 긁힘에 의해 발생되는 판독 에러를 갖을 수 있다. 그래서, 재생된 정보에는 에러 정정 처리가 실행되어야 한다.
도 33은 대표적인 광학 디스크 재생 장치를 도시한다. 광학 디스크(1)는 예를 들면, 영상 및 사운드와 같은 데이터를 저장한다. 광학 픽업(optical pickup)(2)은 레이저빔을 사용해 광학 디스크(1)상에 저장된 정보를 판독한다. 픽업(2)으로부터 출력된 재생 신호는 복조 회로(3)에 의해 복조되고, 재생된 신호를 근거로 섹터(sector)를 검출하는 섹터 검출 회로(4)에 공급된다. 광학 디스크(1)상의 한 섹터에 지정된 섹터 번호가 검출되지 않으면, 트랙(track) 점프 판별 회로(18)로 입력되도록 섹터 검출 회로(4)에 의해 섹터 번호 에러 신호가 발생된다.
ECC(Error Correction Code)회로(5)는 섹터 검출 회로(4)로부터 수신된 재생 신호에 에러 검출 및 에러 정정을 실행한다. 회복 불가능한 에러가 발생되면 ECC 회로(5)는 회복 불가능 에러 신호를 트랙 점프 판별 회로(18)에 출력한다. 그렇지 않으면, 에러 정정된 데이터가 ECC 회로(5)로부터 링 버퍼(ring buffer) 메모리(7)로 전달되어 그에 저장된다.
섹터 검출 회로(4)이 출력을 근거로, 링 버퍼 제어 회로(6)는 각 섹터에 대해 어드레스를 판독하고 링 버퍼 메모리(7)에서 판독 어드레스에 대응하는 기록 어드레스를 지정한다(기록 포인터 WP를 통해). 다중화 데이터 분리 회로(8)로부터 코드 요구 신호가 수신되면, 링 버퍼 제어 회로(6)는 링 버퍼 메모리(7) 에 앞서 기록된 데이터의 판독 어드레스를 지정하고(판독 포인터 RP를 통해), 판독 포인터(RP)를 근거로 데이터를 판독하고, 또한 판독된 데이터를 다중화 데이터 분리 회로(8)로 공급한다.
헤더(header)분리 회로(9)는 데이터로부터 팩 헤드(pack header)와 패킷 헤더(packet header)를 분리하고, 분리된 팩 헤더와 패킷 헤더를 분리자 제어 회로(11)로 공급한다. 패킷 헤더의 스트림(stream) ID(스트림 식별자)에 따라, 분리자 제어 회로(11)는 스위칭 회로(10)내의 출력 단자(H1) 및 (H2) 사이에 입력 단자(G)를 순차적으로 교환시킴으로서 오디오 코드 데이터로부터 시간-분할-다중화된 비디오 코드 데이터를 분리한다. 분리된 데이터는 대응하는 코드 버퍼(13) 또는 (15)로 공급된다.
비디오 코드 버퍼(13)는 버퍼에 남아있는 데이터를 근거로 다중화 데이터 분리 회로(8)에 코드 요구를 발생한다. 또한, 비디오 코드 버퍼(13)는 다중화 데이터 분리 회로(8)로부터 공급된 데이터를 저장하고, 비디오 복호화 장치(14)로부터 코드 요구를 수신한다. 비디오 복호화 장치(14)는 비디오 신호를 재생하도록 비디오 데이터를 복호화하고, 복호화된 비디오 신호는 출력단자(91)로부터 출력될 수 있다.
유사하게, 오디오 코드 버퍼(15)는 코드 요구를 다중화 데이터 분리 회로(8)로 공급하고, 분리 회로(8)로부터 공급된 데이터를 저장한다. 부가하여, 오디오 코드 버퍼(15)는 오디오 복호화 장치(16)로부터 코드 요구를 수신한다. 오디오 복호화 장치는 오디오 신호를 재생하도록 오디오 데이터를 복호화하고, 복호화된 오디오 신호를 출력 단자(92)에서 출력시킨다.
그래서, 비디오 및 오디오 데이터는 이어지는 스테이지의 대응 회로로부터의 전달 요구를 통해 선행하는 스테이지의 대응 회로로부터 적절히 공급된다. 예를 들면, 비디오 복호화 장치(14)는 데이터 전달을 비디오 코드 버퍼(13)에 요구하고, 다중화 데이터 분리 회로(8)는 데이터 전달을 링 버퍼 제어 회로(6)에 요구한다. 요구된 데이터는 전달 요구가 이루어졌던 방향의 역방향으로 링 버퍼 메모리(7)에서 비디오 복호화 장치(14)로 전달된다.
다음에는 기록된 데이터 포맷이 설명된다. 다음의 예에서, 데이터는 클러스터(cluster)(32K 바이트)의 단위로 기록된다. 대표적인 클러스터 구성이 이후 상세히 설명된다.
도 34에 도시된 바와 같이, 총 2064 바이트에 대해 16 바이트로 구성된 오버헤드(overhead)가 부가된 한 클러스터에서 2K 바이트 (2048 바이트)의 데이터가 추출된다. 특히, 오버헤드는 섹터 어드레스와 에러 검출 코드(EDC)를 포함한다.
2064 바이트의 섹터 데이터는 12 대 172 바이트로 배열된다. 도 35에 도시된 바와 같이, 행과 열의 구성으로 192 대 172 바이트를 제공하기 위해 16개의 섹터가 축적된다. 이때, 각 열에는 수직 방향으로 16 바이트의 외부 패리티(outerparity)(PO)가 부가되고, 각 행에는 수평 방향으로 10 바이트의 내부 패리티(innerparity)(PI)가 부가된다. 이는 도 35에 도시된 바와 같이 결과적으로 208(즉, 192+16) 대 182(즉, 172+10) 바이트의 데이터 블록이 된다.
16 대 182 바이트의 외부 패리티부는 각각 1대 182 바이트인 16개의 행으로 나뉜다. 16개 행은 도 36에 도시된 바와 같이 각각 12 대 182 바이트인 16개의 섹터(1 내지 15) 중에 삽입된다. 13(즉, 12+1) 대 182 바이트로 배열된 데이터가 한 섹터를 구성한다.
도 37에 도시된 바와 같이, 208 대 182 바이트의 데이터는 두 프레임(frame)으로 분할되어 91-바이트 프레임이 된다. 프레임의 시작부에는 2 바이트의 프레임 싱크 신호(FS)가 부가된다. 결과적으로, 도 37에 도시된 바와 같이, 한 프레임은 수평 방향으로 93 바이트를 포함하여, 한 클러스터(즉, 한 ECC블록)인 208 대 (93×2) 바이트의 데이터 블록이 된다. 오버헤드 부분을 제거함으로서 얻어지는 실제 데이터의 크기는 32K 바이트(즉, 2048×16/1024K 바이트)이다. 전체 데이터는 클러스터 대 클러스터를 근거로 광학 디스크(1)상에 기록된다.
다음에는 도 33의 예에서 데이터 에러 정정에 이어서 에러 데이터를 보간하기 위한 보간 플래그(interpolation flag)를 발생하는 동작이 설명된다.
도 38은 ECC 회로(5)가 내부 패리티(PI)를 이용해 행(수평) 방향을 따라 첫번째 정정을 실행하고(이 정정 동작은 이후 PI1 정정이라 칭하여진다), 외부 패리티(PO)를 이용해 열(수직) 방향을 따라 또 다른 정정을 실행하고(이 정정 동작은 이후 PO 정정이라 칭하여진다.), 또한 마지막으로 내부 패리티(PI)를 이용해 세번째 정정을 실행할 때(이 정정 동작은 이후 PI2 정정이라 칭하여진다), 처리 동작을 설명하는 흐름도이다.
이 처리 과정에 따라, ECC 블록은 단계(S1)에서 PI1정정에 이어 회복 불가능한 에러에 대해 점검된다. 회복 불가능한 에러가 발견되면, 처리 과정은 단계(S4)로 진행되고; 회복 불가능한 에러가 발견되지 않으면, 처리 과정은 단계(S2)로 진행된다.
단계(S2)에서는 광학 디스크가 재기록되어야 하는가(데이터가 다시 재생되는가) 여부가 결정된다. 즉,
(1) 회복 불가능한 에러를 갖는 ECC 블록이 광학 디스크(1)로부터 다시 판독되어야 하는가; 또는
(2) 보간 플래그가 ECC 데이터 블록에 부가되고, 결과의 데이터가 출력되어야 하는가 여부를 결정한다.
선택사항 (1)이 선택되면, 처리 과정은(S3)로 진행되어 광학 디스크(1)가 다시 판독된다. 이때, 처리 과정은 단계(S1)으로 복귀된다. 선택사항 (2)에서는 그 블록의 데이터에 보간 플래그(즉, 보간이 요구됨을 나타내는 플래그)가 부가되고, 다음에 단계(S4)가 실행된다.
단계(S4)에서는 섹터의 결과가 EDC 점검(즉, 도 34를 참고로 설명된 바와 같이 각 섹터에 삽입된 에러 검출 코드를 이용한 점검)되는가 여부가 결정된다. 즉, 각 섹터의 에러가 점검된다. 결과가 정상적인(즉, 섹터에 에러가 없는) 것으로 발견되면, 처리는 단계(S7)로 계속되고 데이터는 아무런 변화없이 출력된다. 섹터 EDC 점검 결과가 비정상적인(즉, 섹터에 에러가 있는) 것으로 발견되면, 단계(S5)가 실행된다.
단계(S5)에서는 광학 디스크(1)가 다시 판독되는가 여부를 결정한다. 즉,
(1) 실패된 섹터가 광학 디스크(1)로부터 다시 판독되어야 하는가; 또는
(2) 보간 플래그가 실패된 데이터 섹터에 부가되고, 결과의 데이터가 출력되어야 하는가 여부를 결정한다.
선택사항 (1)이 선택되면, 처리 과정은 단계(S6)로 진행되고, 이러한 경우에 실패된 섹터는 광학 디스크(1)로부터 다시 판독된다. 이때, 처리과정은 단계(S1)로 복귀된다. 선택사항 (2)에서는 보간 플래그가 그 섹터의 데이터에 부가되고, 처리과정은 단계(S7)로 계속된다. 단계(S7)에서는 처리된 데이터(이러한 경우에는 보간 플래그를 포함한 데이터)가 출력되고 처리 과정이 종료된다.
상술된 예에서, ECC 회로(5)가 회복 불가능한 에러를 갖는 데이터를 검출하면, 보간 플래그는 그 블록내의 모든 데이터에 부가된다. ECC 블록을 구성하는 각 데이터 단위는 8비트(1바이트) 길이이고, 보간 플래그는 1비트 길이이다. 그러므로, 보간 플래그와 조합된 데이터의 길이는 9비트이다. 9비트 데이터를 저장하는 것은 9비트를 기본으로 데이터를 저장하는 메모리 장치를 요구한다. 그러나, 이러한 메모리 장치는 일반적으로 이용가능하지 않고 일반적으로 이용가능한 메모리 장치보다 비용이 더 들므로, 복호화 장치의 제작 비용이 증가되는 문제점을 갖는다.
또한, ECC 복호화가 처리 유닛으로 동작하는 소정의 길이의 데이터를 이용해 실행되면(예를 들어, 한 ECC 블록과 같이), 보간 플래그 발생 동작은 이러한 전체 처리 유닛에 적용된다. 그러므로, 보간 플래그 발생 동작은 한 ECC 블록과 같이 처리 유닛보다 작은 단위로 변화될 수 없는 문제점이 존재한다. 예를 들면, 보간 플래그 발생 동작은 한 섹터의 단위로 변화될 수 없다.
본 발명의 개요
그러므로, 본 발명의 목적은 보간 플래그 발생 동작을 한 섹터 단위로 변화시킴으로서 더 작은 유닛으로 데이터를 효과적으로 사용하고 복호화 장치의 제작비용을 줄이는 것이다.
본 발명의 또 다른 목적은 보간이 실행될 수 없는 섹터 데이터에 대해 에러 정정 동작을 개선하고 에러 없는 섹터 데이터를 이용가능하게 하는 것이다.
본 발명의 실행시 제 1특성에 따라, 부호화된 데이터를 복호화하는 장치는 부호화된 데이터를 행과 열로 저장하는 저장 수단, 행과 열을 따라 저장된 데이터에 에러 정정 처리를 실행하는 에러 정정 회로, 데이터 행에 따른 에러 정정 처리를 근거로 데이터 행에서의 에러를 나타내는 제 1 플래그를 발생하기 위한 제 1 플래그 발생 회로, 및 데이터 열에 따른 에러 정정 처리를 근거로 데이터 열에서의 에러를 나타내는 제 2 플래그를 발생하기 위한 제 2 플래그 발생 회로를 구비한다.
본 발명의 실행시 제 2 특성에 따라, 부호화된 데이터를 복호화하는 방법은 부호화된 데이터를 행과 열로 저장하는 단계, 행과 열에 따라 저장된 데이터에 에러 정정 처리를 실행하는 단계, 데이터 행에 따른 에러 정정 처리를 근거로 데이터 행에서의 에러를 나타내는 제 1 플래그를 발생하는 단계, 및 데이터 열에 따른 에러 정정 처리를 근거로 데이터 열에서의 에러를 나타내는 제 2 플래그를 발생하는 단계를 구비한다.
본 발명의 상기 및 다른 목적, 특성, 및 이점은 같은 참고 번호가 수개의 도면에서 같거나 유사한 부분을 식별하는데 사용되는 첨부된 도면으로부터 명백해진다.
도 1은 본 발명에 따른 에러 플래그(error flag)와 데이터간의 관계를 설명하는 도면.
도 2는 본 발명에 따른 복호화 장치의 주요부를 설명하는 블록도.
도 3은 광학 디스크상에서 물리적인 섹터의 구성을 설명하는 도면.
도 4는 광학 디스크상에서 데이터 섹터를 설명하는 도면.
도 5는 데이터, 에러 플래그, 및 보간 플래그를 RAM에 저장하는 대표적인 동작을 설명하는 도면.
도 6A내지 도 6F는 RAM에 EFM + 복조 회로의 출력을 기록하는 타이밍도.
도 7은 EFM + 복조 회로의 고정 검출 처리에 대한 흐름도.
도 8은 EFM + 복조 회로의 SCSY 신호 발생 처리에 대한 흐름도.
도 9는 EFM + 복조 회로의 메인-FMSY 신호 보간 처리에 대한 흐름도.
도 10A 내지 도 10H는 블록-상단 검출에 대한 타이밍도.
도 11A 내지 도 11H는 블록-상단 검출 이후의 처리에 대한 타이밍도.
도 12A 내지 도 12F는 SUB 전달과 연관된 주요부의 신호의 타이밍도.
도 13은 섹터 정보 비트의 도면.
도 14는 SBCD 회로의 IEC 정상 연속 처리에 대한 흐름도.
도 15는 SBCD 회로의 어드레스 연속 결정 처리에 대한 흐름도.
도 16은 SBCD 회로의 SALK 신호 발생 처리에 대한 흐름도.
도 17A 내지 도 17D는 ECC 처리 결과의 출력과 연관되는 주요부의 신호의 타이밍도.
도 18A 내지 도 18I는 ECC 처리 결과의 출력과 연관되는 주요부의 신호의 타이밍도.
도 19A 내지 도 19E는 ECC 처리가 실행될 때 실행되는 타이밍 제어의 타이밍도.
도 20은 에러 정정 동안 데이터 흐름의 블록도.
도 21은 에러 정정 결과 ER를 구성하는 비트의 도면.
도 22 A내지 도 22G는 RAM으로의 억세스와 연관된 버스 조정의 타이밍도.
도 23은 한 데이터 블록을 처리하는 동안 RAM으로 억세스가 이루어지는 회수의 도면.
도 24A내지 도 24F는 OCTL 회로로부터 출력되는 정정 결과 ER의 타이밍도.
도 25는 에러 정정 판독을 위한 회로의 블록도.
도 26는 보간 플래그 저장이나 판독을 위한 회로의 블록도.
도 27은 ECC 코어 회로의 내부 및 외부 단자의 도면.
도 28은 PI 플래그 발생을 설명하는 도면.
도 29는 PO 플래그 발생을 설명하는 도면.
도 30은 보간 플래그 발생 모드를 설명하는 도면.
도 31은 본 발명에 따른 복호화 장치에서 실행되는 동작의 흐름도.
도 32는 도 31의 흐름도의 연속도.
도 33은 대표적인 복호화 장치의 블록도.
도 34는 한 섹터에 대한 데이터 포맷을 설명하는 도면.
도 35는 32K 바이트 데이터의 구성을 설명하는 도면.
도 36은 도 35의 외부 코드가 삽입된 상태를 설명하는 도면.
도 37은 32K 바이트 데이터 블록을 설명하는 도면.
도 38은 도 33의 복호화 장치에 의해 실행되는 처리 과정을 설명하는 흐름도.
*도면 주요 부분에 대한 부호의 설명*
30 : RF 처리회로31 : EFM + 복조회로
32 : CLV 제어회로33 : 드라이브 인터페이스
34 : SBCD 회로35 : RAM 제어기
36 : ECC 제어회로38 : ECC 코어회로
39 : OCTL 회로
양호한 실시예의 상세할 설명
첨부된 도면을 참고로 하는 예를 통해 이제 본 발명이 상세하게 설명된다.
도 1은 본 발명에 따른 복호화 장치에서 사용되는 에러 플래그와 보간 플래그를 설명한다. 도 33의 예에서, 에러 데이터 보간의 필요성을 나타내기 위해 ECC 처리로 구해지는 보간 플래그는 PI2 정정이나 섹터 EDC 점검의 결과로 바로 발생된다. 그러나, 본 발명의 양호한 실시예에서는 행 방향으로의 제 1 에러 정정 처리인 PI1 정정의 결과에 따라 PI1 플래그(즉, 208 비트로 구성된 에러 플래그)가 발생되고, 열 방향으로의 에러 정정 처리인 PO 정정의 결과에 따라 PO 플래그(172 비트로 구성된 에러 플래그)가 발생되고, 열 방향으로의 제 2 에러 정정 처리인 PI2 정정의 결과에 따라 PI2 플래그(208 비트로 구성된 에러 플래그)가 발생된다. 이러한 플래그(PI1 플래그, PI2 플래그, 및 PO플래그)를 근거로, 도 1에 도시된 바와 같이, ECC 블록의 주요 데이터(즉, 패리티를 포함하는 192 대 172 바이트의 데이터)에 대응하는 192 대 172 비트의 보간 플래그가 더 발생된다.
본 발명에 따른 복호화 장치의 주요부는 도 33과 상당히 같음을 알 수 있다. 도 2에서 설명되는 바와 같이, 복조 회로(3)는 RF 처리 회로(30)와 EFM + 복조 회로(31)를 포함한다. 섹터 검출 회로(4)는 SBCD 회로(34), RAM 제어 회로(35), 및 RAM(37)을 구비한다. ECC 회로(5)는 RAM 제어 회로(35), ECC 제어 회로(36), RAM(37), ECC 코어 회로(38), 및 OCTL 회로(39)를 갖는다. 디코더 주요부의 상술된 회로와 연관되는 부가 소자를 설명하기 위해, 도 33을 참고로 할 수 있다.
도 2에서, RF 처리 회로(30)는 도 33의 픽업(2)으로부터 RF 신호를 수신한다. 수신된 RF 신호는 디지탈화되어, EFM + 복조 및 싱크 패턴(sync pattern) 검출을 실행하도록 EFM + 복조 회로(31)에 디지탈 신호로 출력된다. CLV 제어 회로(32)는 EFM + 복조 회로(31)로부터 수신된 싱크 패턴을 근거로 드라이브 인터페이스(33)를 제어한다. SBCD(서브 코드) 회로(34)는 EFM + 복조 회로(31)로부터 출력된 섹터를 검출한다. RAM 제어기(35)는 RAM(37)에서의 판독/기록 동작을 제어한다.
RAM(37)은 도 2에서 도 33의 링 버퍼 메모리(7)(저장수단)와 다르게 표시되고 다른 구조를 갖음을 주목하여야 한다. 다른 방법으로, RAM(37)과 링 버퍼 메모리(7)는 상당히 같은 구조를 갖을 수 있다.
RAM(37)은 ECC 제어 회로(36)가 에러 정정 처리를 실행할 때 임시로 데이터를 저장하도록 구성된다. ECC 코어 회로(38)(즉, 제 1 및 제 2 플래그 발생 회로)는 리드-솔로몬 코드(Reed-Solomon code) (PI 및 PO)를 이용해 나중에 기술될 ECA, ECD 및 SFLG 데이터를 발생하고, 도 2에서 도시된 바와 같이 발생된 코드를 에러 정정을 실행하도록 ECC 제어 회로(36)에 출력한다. OCTL 회로(39)는 역스크램블(descramble) 처리 동작, ECD 점검, 및 데이터 제어 출력을 실행한다. 호프트(host) CPU(40)는 복호화 장치의 각 구성 성분을 제어하도록 동작된다.
본 발명의 상술된 실시예의 동작이 다음에 설명된다.
광학 디스크(1)로부터 재생된 아날로그 신호는 RF 처리 회로(30)에 의해 디지탈 신호로 변환된다. EFM + 복조 회로(31)는 이 디지탈 신호로부터 싱크 패턴을 검출한다. 이때, CLV 제어 회로(32)는 검출된 싱크 패턴을 근거로 대략의 서버(servo) 제어를 인가한다. 검출된 싱크 코드(SY0 내지 SY7)을 근거로, PLL(Phase Locked Loop)로부터의 위상 서버 제어가 드라이브 인터페이스(33)를 통해 광학 디스크(1)의 회전 이동에 적용된다.
도 3은 광학 디스크(1)상의 물리적인 섹터 구성을 설명한다. 섹터는 총 26 싱크 프레임에 대해 수평 방향으로 2 싱크 프레임 및 수직 방향으로 13 싱크 프레임으로 구성된다. 각 싱크 프레임은 32 채널 비트(변조 이전에 데이터의 16 비트(2 바이트))의 싱크 코드(SY0 내지 SY7)와 1456 채널 비트(변조 이전에 데이터의 728 비트(91 바이트))의 데이터 부분으로 구성된다. 시작 싱크 프레임의 데이터 부분은 ID 정보(섹터 번호), IEC(ID의 ECC)정보, 및 주요 데이터를 포함한다.
32 채널 비트의 싱크 패턴에서, 하위 22 비트는 예를 들면, 데이터에 나타나지 않는 유일한 패턴으로서 0001000000000000010001로 설정된다.
도 3의 좌측에 있는 각 싱크 프레임의 데이터 부분은 주요 데이터를 저장한다. 좌측에서 최종 싱크 프레임의 데이터 부분은 PO 정보(외부 패리티)를 저장한다. 우측에 있는 각 싱크 프레임의 데이터 부분은 주요 데이터와 PI 정보(내부 패리티)를 저장한다. 우측에서 최종 싱크 프레임 바로 이전의 싱크 프레임의 데이터 부분은 EDC 정보와 PI정보를 저장한다. 우측에서 최종 싱크 프레임의 데이터 부분은 도 3에 도시된 바와 같이 PO 정보와 PI 정보를 저장한다.
즉, 본 실시예에서는 ECC 블록이 도 37에 도시된 바와 같이 구성되고, PO 정보는 각 섹터에 삽입된다.
한 섹터의 데이터 구성(PI 정보와 PO 정보를 제외한)이 도 4에 도시된다. 섹터 데이터는 4 바이트의 ID(섹터 번호), 2 바이트의 IEC 데이터(ID에 대한 ECC), 6 바이트의 RSV 데이터(지정된 영역), 주요 데이터, 및 4 바이트의 EDC 데이터를 포함한다. 주요 데이터는 스크램블됨을 주목할 만한다.
도 35를 참고로 이전에 설명된 바와 같이, 16 바이트 PO 코드와 10 바이트 PI 코드가 부가된 16개 섹터가 조립된다. 또한, PO 코드를 포함하는 16개의 행이 16개의 데이터 섹터간에 삽입된다. 싱크 코드(SYx)(x=0, 1, 2, ..., 7)는 도 37에 도시된 바와 같이 결과의 데이터에 부가되고, 거기에는 EFM+변조가 실행된다. 그러므로, ECC 블록에서 물리적인 섹터는 도 3에 도시된 바와 같이 13 대 2 싱크 프레임으로 구성된다. 한 ECC 블록은 16 섹터를 포함하므로, 물리적인 섹터 어드레스의 하단 4 비트는 0000과 1111 사이의 범위이다. ECC 블록에서 시작 섹터의 물리적인 어드레스는 0000이다.
주요 데이터는 물리적인 섹터 어드레스의 하단 4 비트에 의해 발생된 데이터와 주요 데이터 사이에 배타 논리합(exclusive OR) 동작을 실행함으로서 스트램블됨을 알 수 있다.
여기서 사용되는 신호 심볼은 다음과 같다:
블록-상단 (Block-Top) : HIGH 상태에 있는 SYLK 신호로 섹터의 시작부에서 HIGH 상태로 되는 신호.
C11M (클럭 11.2896 MHz) : 11.2896 MHz 의 주파수를 갖는 시스템 클럭.
DSTB (데이터 스트로브) : 주요 데이터가 스트림 데이터 SD로 출력될 때 HIGH 상태로 되는 데이터 스트로브(data strobe) 신호.
ECA (ERR 정정 어드레스) : 실패 위치(어드레스)를 나타내는 에러 정정 어드레스 신호.
ECCK (ECC 클럭) : ECC 코어 회로(38)의 동작 클럭.
ECD (에러 정정 데이터) : 에러 데이터와 에러 정정 데이터 사이에 배타 논리합 동작이 실행 될 때 정확한 데이터를 제공하는 에러 정정 데이터.
ECDE (ECC 코드 데이터 종료) : 입력 데이터의 종료를 나타내는 제어 신호.
ECOD (ECC 코드 ERR) : 에러 정정이 실행될 수 없을 때 HIGH 상태로 되는 신호.
ECOR (ECC 정정) : 에러 회복 가능한 데이터의 출력을 나타내는 스트로브 신호.
ECYE (ECC 싸이클 종료) : 입력 코드 데이터 싸이클의 종료를 나타내는 제어 신호.
EDT (ECC 데이터) : 에러 정정을 위해 RAM(37)으로부터 판독되고 ECC 제어 회로(36)로 전달되는 데이터.
ESTB (에러 스트로브) : 에러 정정 결과 ER이 전달될 때 HIGH 상태로 되는 에러 정정 결과 스트로브 신호.
ESTT (ECC 시작) : 입력 데이터의 시작을 나타내는 제어 신호.
EFM + W 프레임(EFM + 기록 프레임 카운터) : RAM(37)에 기록되는 주요 프레임을 나타내는 신호.
HDEN (헤더 데이터 인에이블) : 섹터 헤더(header) 데이터의 스트로브 신호.
메인-FMSY (주요 프레임 싱크) : 각 PI 행의 주요 싱크(시작 싱크)에서 HIGH 상태로 되는 신호.
MWEN (메모리 기록 인에이블) : EFM + 복조 데이터를 RAM(37)에 기록하기 위한 기록 인에이블 신호.
MWRQ (EFM 기록 요구) : EFM + 복조 데이터를 RAM(37)에 기록하기 위한 기록 요구 신호.
OUTF (출력 플래그) : 보간 플래그(출력 플래그).
OSTT (ECC 출력 시작) : 소정의 코드열에서 477 클럭 싸이클(ECCK)의 ESTT 이후의 지연으로 출력되는 신호.
RDT (판독 데이터) : RAM(37)의 데이터 버스 상의 데이터.
SALK (섹터 어드레스 고정) : 섹터 어드레스(ID)가 정상적으로 검출되었음을 나타내는 신호.
SAUL (섹터 어드레스 해제) : SALK 신호와 반대인 극성을 갖는 신호.
SCSY (섹터 싱크) : 섹터의 시작을 결정하기 위해 SYO 프레임에서 HIGH 상태로 되는 신호.
SD (스트림 데이터) : 스트림 데이터(복호화된 출력 데이터).
SDCK (스트림 데이터 클럭) : 스트림 데이터의 클럭.
SFLG (섹터 플래그) : PI1 정정을 우한 ECC 정정 불가능 플래그.
SINF (섹터 정보) : 섹터의 시작에서 HIGH 상태로 되는 섹터 정보 스트로브 신호.
SUB (SUB 데이터) : SBCD 회로(34)로 전달될 IEC 데이터와 ID 데이터를 포함하는 데이터.
SYLK (싱크 고정) : 싱크 코드가 순차적으로 3번 검출되었을 때 HIGH 상태로 되는 신호.
SYUL (싱크 해제) : SYLK 신호와 반대인 극성을 갖는 신호.
WDT (기록 데이터) : RAM(37)의 데이터 버스상의 데이터.
XHWE (섹터 헤더 기록 인에이블) : SBCD 회로(34)에서 RAM(37)으로 섹터 정보를 기록하기 위한 출력 인에이블 신호.
도 2의 EFM + 복조 회로(31)에 의해 복조된 데이터는 도 5에 도시된 바와 같이, RAM 제어기(35)의 제어하에서 RAM(37)에 저장된다. 도 5에는 하나의 ECC 블록이 도시된다. RAM(37)으로부터 데이터를 판독할 때, RAM 제어기(35)는 원하는 데이터를 회복하도록 행과 열의 값(도 5에 도시된 바와 같이)을 지정한다. 즉, 도 5에서, 제 M행의 제 N바이트에 위치하는 데이터 x는 두 값(M 및 N)을 지정함으로서 RAM(37)으로부터 얻어질 수 있다.
도 5에는 바이트 대 바이트를 근거로 각 PI 행에 대응하는 섹터 정보 SI (추후 상세히 설명될)가 도시되고, 이는 상단 행으로부터 시작하는 16 개 PI 행에 대응하여 저장된다. PI1 및 PI2 플래그는 208 PI 행 각각에 대응하여 저장된다. PO 플래그는 상단으로부터 순차적으로 172 PI 행에 대응하도록 저장된다.
도 5는 또한 바이트로 배열된 208 대 172 비트의 보간 플래그를 도시한다. 26 대 22 바이트(실제로는 21.5 바이트)의 보간 플래그는 바이트 대 바이트를 근거로 ECC 블록에서 주요 데이터 영역과 다른 영역에 저장된다. 즉, 1 비트 보간 플래그는 1 바이트의 주요 데이터에 대응한다.
상술된 구성은 보간 플래그를 저장하는데 요구되는 메모리 용량이 불필요하게 확대되는 것을 방지한다.
광학 디스크(1)상에 기록된 데이터 섹터의 시작이 싱크 코드의 종류와 연속성을 근거로 인식될 때, EFM + 복조 회로(31)에 의해 복조된 데이터는 순차적으로 시작 데이터로 시작되어 RAM(37)에 저장된다. 도 6A 내지 도 6F는 이 동작에 연관된 신호의 타이밍도를 설명한다.
즉, EFM + 복조 회로(31)는 도 7에 도시된 바와 같이 싱크 고정 상태를 검출한다. 먼저, 단계(S1)에서는 싱크 코드(SY0 내지 SY7)가 각 싱크 프레임에서 검출되었는가 여부를 결정한다. 싱크 코드가 검출되었으면, 처리 과정은 단계(S2)로 진행되고, 여기서 변수 SClock는 싱크 코드가 연속적으로 검출된 회수를 나타내고, 변수 SCunlock은 싱크 코드가 연속적으로 검출되지 않은 회수를 나타낸다.
다음에는 단계(S3)에서, 변수 SClock이 3과 같은가 여부를 결정한다. 즉, 싱크 코드가 연속적으로 3번 검출되었는가 여부를 결정한다. 변수 SClock가 3보다 작으면, 처리 과정은 그로부터의 처리 과정을 반복하도록 단계(S1)로 다시 진행된다. 단계(S3)에서 변수 SClock가 3과 같은 것으로 발견되면, 고정 상태가 설정된 것으로 결정되고 단계(S4)에서 SYLK 신호는 HIGH 레벨로 설정된다. 단계(S5)에서, 변수 SClock는 싱크 코드가 연속적으로 3번 검출되었는가 여부를 결정하도록 2로 설정된다. 이어서, 처리 과정은 그로부터의 처리 동작을 반복하도록 단계(S1)로 다시 진행된다.
단계(S1)에서 싱크 코드가 검출되지 않으면, 다음 동작은 단계(S6)에서 실행되어 변수 SCunlock가 1만큼 증가되고 변수 SClock가 0으로 설정된다. 단계(S7)에서는 변수 SCunlock가 3과 같은가 여부를 결정한다. 즉, 싱크 코드가 연속적으로 3회 검출되지 않았는가 여부를 결정한다. 싱크 코드가 검출되지 않은 회수가 2 이하 이면, 처리 과정은 단계(S1)로 복귀한다. 싱크 코드가 연속적으로 3회 검출되지 않았으면, 처리 과정은 단계(S8)로 진행되어 SYLK 신호가 LOW 레벨로 설정된다. 이어서, 단계(S9)에서는 다음의 싱크 코드 발생 타이밍 동안에 싱크 코드가 검출되지 않으면 SYLK 신호를 LOW 레벨에 유지시키기 위해 변수 SCunlock이 2로 설정된다. 처리 과정은 단계(S1)로 복귀한다.
이와 같이, EFM + 복조 회로(31)는 고정 상태가 설정되는가 여부를 연속적으로 주시하도록 싱크 코드를 검출한다.
상술된 양호한 실시예에서, 싱크 코드가 검출되는 회수는 임의로 3에 설정된 것이다. 싱크 코드가 연속적으로 검출되는 기준 회수(Nlock)와 싱크 코드가 연속적으로 검출되지 않는 기준회수(Nunlock)는 소정의 값으로 설정될 수 있음을 알 수 있다.
EFM + 복조 회로(31)는 SYLK 신호가 HIGH (즉, 상술된 바와 같은 고정 상태)일 때 도 8의 흐름도에서 도시된 바와 같은 처리를 실행한다. 특히, 단계(S21)에서는 각 섹터의 시작부에 배열된 싱크 코드(SY0)가 검출되었는가 여부를 결정한다. 싱크 코드(SY0)가 검출되었으면, 처리 과정은 단계(S22)로 계속되어 섹터의 시작을 나타내는 SCSY신호가 소정의 시간(H)으로 설정된다. 다음에는 단계(S23)에서, SYLK 신호가 LOW로 변화되었는가 여부를 결정한다. 그렇지 않은 경우(즉, SYLK 신호가 HIGH로 남아 있으면), 처리 과정은 그로부터의 처리를 반복하도록 단계(S21)로 다시 진행된다. 단계(S21)에서 싱크 코드(SY0)가 검출되지 않은 것으로 결정되면, 단계(S22)의 처리 과정은 생략된다.
이와 같이, EFM + 복조 회로(31)는 각 섹터의 시작부에서 SCSY신호(도 6A에 도시된)를 발생한다.
또한, EFM + 복조 회로(31)는 SYLK 신호가 HIGH 상태로 될 때 도 9의 흐름도에 도시된 처리를 실행한다. 먼저, 단계(S31)에서는 주요 프레임(도 3의 수평 방향에서 2 싱크 프레임은 집합적으로 하나의 주요 프레임으로 칭하여진다)의 싱크 코드(도 3의 좌측에서 싱크 코드는 주요 프레임 싱크로 칭하여진다)가 검출되었는가 여부를 결정한다. 주요 프레임 싱크가 검출되었으면, 처리 과정은 단계(S32)로 진행되어 EFM + 복조 회로(31)가 도 6B에 도시된 바와 같이 메인-FMSY 신호를 발생한다. 단계(S31)에서, 주요 프레임 싱크가 검출되지 않았으면, 단계(S32)의 처리 과정은 생략된다.
이어서, 처리 과정은 단계(S33)로 진행되어 SYLK 신호가 LOW로 변화되었는가 여부를 결정한다. 변화가 검출되지 않으면(즉, SYLK 신호가 HIGH 상태를 유지하면), 동작은 그로부터의 처리를 반복하도록 단계(S31)로 다시 진행된다. SYLK 신호가 LOW로 변화되었으면, 메인-FMSY 신호의 발생이 중단된다.
이와 같이, EFM + 복조 회로(31)는 주요 프레임 싱크의 매 싸이클(도 3의 수평 방향에서 2 싱크 프레임의 싸이클)에 메인-FMSY 신호를 발생한다.
EFM + 복조 회로(31)로부터 SCSY 신호가 수신될 때, RAM 제어기(35)는 도 6D에 도시된 바와 같이 MWEN 신호를 HIGH로 설정한다. 그에 의해, 검출된 섹터의 데이터를 RAM(37)에 기록하기 위한 기록 처리 동작이 시작된다. 즉, 그 순간에, 도 6E에 도시된 바와 같이, RAM 제어기(35)는 EFM + W 프레임 카운터(도시되지 않은)를 이용해 주요 프레임(도 3에 도시된)를 카운트한다. 결과의 카운트 값은 도 3에 도시된 바와 같이 상단으로부터의 주요 프레임의 수를 나타낸다.
부가하여, RAM 제어기(35)는 도 6F에서 설명되는 바와 같이 PI1 프레임 카운터(도시되지 않은)를 이용해 RAM(37)으로 전달되는 주요 프레임의 수를 제어한다.
특히, 도 3의 제 1 주요 프레임이 RAM(37)에 기록될 때, ECC 제어 회로(36)는 RAM 제어기(35)의 제어하에서 주요 프레임 데이터를 수신한다. 이때, ECC 제어 회로(36)는 에러 정정 처리(PI1 처리)를 실행하기 위해 이 데이터를 ECC 코어 회로(38)에 전달한다. PI1-처리된 데이터는 RAM(37)에 저장된다.
PI1 정정 이후에, RAM 제어기(35)는 RAM(37)에 저장된 주요 프레임 데이터로부터 ID와 IEC 데이터를 판독하고, 도 6C에서 번호 0으로 표시되는 바와 같이, 데이터 버스를 통해 SBCD 회로(34)에 주요 프레임의 ID와 IEC 데이터를 전송한다. 도 3에 도시된 바와 같이, ID와 IEC 데이터는 각 섹터의 시작부에 배열되므로, 이러한 전송 처리는 번호 0을 갖는 주요 프레임에서만 실행된다. SBCD 회로(34)에서, 각 물리적인 섹터의 어드레스(ID)는 상술된 바와 같이 검출된다.
검출된 물리적인 섹터 어드레스의 하단 4 비트를 근거로 ECC 블록의 시작 섹터가 검출된다.
도 10A 내지 도 10H는 상술된 ID 데이터의 전송에 이어서 신호 블록-상단을 검출하기 위한 타이밍도이다. 도 11A 내지 도 11H는 신호 블록-상단의 검출 이후에 실행되는 처리를 설명하는 타이밍도이다. 이 도면에서 도시된 동작은 추후 설명된다.
도 12A 내지 도 12F는 상술된 ID 전송을 보다 상세히 설명하는 타이밍도이다. 도 12A에 따라, RAM 제어기(35)는 ID 및 IEC 데이터가 RAM(37)으로부터 판독되는 타이밍을 나타내도록 HDEN 신호를 SBCD 회로(34)에 출력한다. 이때, ID 데이터(4 바이트)와 IEC 데이터(2 바이트)는 8 비트(비트 7 내지 0)으로 구성되는 판독 데이터 RDT(도 12C)로서 11.2896 MHz의 주파수를 갖는 클럭 C11M(도 12F)과 동기화하여 전송된다. PI1 정정의 결과로 ID 데이터와 IEC 데이터가 에러 회복 불가능 상태에 있지 않음은 ECC 코어 회로(38)에서 ECC 제어 회로(36)로 공급되는 SFLG 신호(이 경우에서는 SFLG 신호가 HIGH)에 의해 나타내진다. ID (섹터 어드레스)를 수신한 후에 SBCD 회로(34)는 호스트 CPU(40)에 의해 전달되는 명령(보간 발생 모드, 시작 섹터, 또는 종료 섹터와 같은)에 응답해 그 ID(섹터 어드레스)에 대해 섹터 정보(SI)를 발생한다. 예를 들면, 호스트 CPU(40)에 의해 지정된 ID를 갖는 섹터에서는 1이 섹터 정보의 비트 5에 설정되고, 0이 비트 4에 설정된다.
도 13은 섹터 정보(SI)의 구조를 설명한다. 도시된 바와 같이, 섹터 정보를 구성하는 비트는 다음의 의미를 갖는다.
비트 7 : 보간 플래그(OUTF) 발생 모드 (1 = 보간 플래그 발생 모드).
비트 6 : ECC 블록의 시작 섹터 (물리적인 섹터 어드레스의 하단 4 비트가 0 일 때 1; 1 = 시작 섹터).
비트 5 : 시작 섹터를 검출 (물리적인 섹터 어드레스가 호스트 CPU(40)에 의해 지정된 시작 섹터 어드레스와 정합할때 1; 1 = 시작 섹터).
비트 4 : 종료 섹터를 검출 (물리적인 섹터 어드레스가 CPU(40)에 의해 지정된 종료 섹터 어드레스와 정합할 때 1; 1 = 종료 섹터).
비트 3 : 역스크램블 초기화 어드레스의 비트 3 (물리적인 섹터 어드레스의 비트 7).
비트 2 : 역스크램블 초기화 어드레스의 비트 2 (물리적인 섹터 어드레스의 비트 6).
비트 1 : 역스크램블 초기화 어드레스의 비트 1 (물리적인 섹터 어드레스의 비트 5).
비트 0 : 역스크램블 초기화 어드레스의 비트 0 (물리적인 섹터 어드레스의 비트 4).
도 14 내지 도 16을 참고로 추후 기술될 4 바이트 ID와 2 바이트 IEC를 이용해 점검 처리가 실행된 후에, 도12D에 도시된 XHWE 신호는 ECC 제어 회로(36)에 의해 LOW로 설정된다. 이때, 섹터 정보(SI)는 8비트 기록 데이터 WDT로서 SBCD회로(34)에서 RAM(37)으로 전송된다. 16 섹터에 대한 섹터 정보는 도 5에 도시된 바와 같이 상단 16 PI 행에 대응하여 저장된다. 그러므로, 원하는 수의 PI 행을 지정함으로서 대응하는 섹터 정보가 얻어질 수 있다.
다음에는 SBCD 회로(34)에 의한 ID 및 IEC 점검 처리가 도 14 내지 도 16의 흐름도를 참고로 설명된다.
도 14에서, SBCD 회로(34)는 IEC가 정상적인(즉, ID에 에러가 없는) 섹터의 수가 연속적으로 N(본 실시예에서는 3) 또는 그 이상인가 여부를 결정한다. 그러므로, 제 1 단계(S41)에서는 IEC 포착 데이터가 정상적인가 여부를 결정한다. IEC가 정상적인 것으로 발견되면, 처리 과정은 단계(S42)로 진행되고, 정상적인 IEC를 갖는 섹터의 수를 나타내는 변수 SAlock가 1 만큼 증가된다. 이어서, 연속적으로 검출되었던 에러가 있는 IEC(즉, 에러를 갖는 ID)를 갖는 섹터의 회수를 나타내는 변수 SAunlock는 0으로 설정된다.
단계(S43)에서는 변수 SAlock가 3과 같은가 여부를 결정한다. 단계(S42)에서 증가된 변수 SAlock가 3과 같지 않으면, 처리 과정은 그로부터의 처리를 반복하도록 단계(S41)로 복귀된다. 변수 SAlock가 단계(S43)에서 3과 같은 것으로 결정되면(즉, 정상적인 IEC를 갖는 섹터가 연속적으로 3회 재생되었으면), 단계(S44)의 처리 과정이 실행되어 플래그 IECOK가 HIGH로 설정된다. 단계(S45)에서는 변수 SAlock가 2로 재설정되고, 처리 과정은 그로부터의 처리를 반복하도록 단계(S41)로 복귀된다.
단계(S41)에서 IEC가 비정상적인 것으로 발견되면, 처리 과정은 단계(S46)로 진행되어, 변수 SAunlock가 1만큼 증가되고, 동시에 변수 SAlock가 0으로 설정된다. 단계(S47)에서는 변수 SAunlock가 3과 같은가 여부를 점검하고, 이 변수가 3과 같지 않으면, 처리 과정은 그로부터의 처리를 반복하도록 단계(S41)로 복귀된다.
단계(S47)에서 변수 SAunlock가 3과 같은 것으로 발견되면(즉, IEC가 정상적이지 않은 섹터가 연속적으로 3회 검출되었으면), 처리 과정은 단계(S48)로 진행되고, 플래그 IECOK가 LOW로 설정된다. 다음에는 단계(S49)에서, IEC가 정상적이지 않은 연속 회수가 3인가를 검출하기 위해 변수 SAunlock가 2로 설정된다. 이어서, 처리 과정은 그로부터의 처리를 반복하도록 단계(S41)로 진행된다.
이와 같이, SBCD 회로(34)는 IEC가 연속적으로 3회 정상적인 상태이면 플래그 IECOK를 HIGH로 설정하고, 또는 IEC가 연속적으로 3회 정상적인 상태가 아니면 플래그를 LOW로 설정한다.
또한, SBCD 회로(34)는 도 15에 도시된 처리 과정에 의해 ID(어드레스)의 연속성을 결정한다. 즉, 한 ECC 블록내에서 각 섹터의 ID는 순차적으로 1만큼 증가된다. 그러므로, 연속성은 다음과 같이 결정된다.
먼저, 단계(S61)에서는 ID가 점검되었는가 여부를 결정한다. ID가 점검되었으면, 처리 과정은 단계(S62)로 진행되고, 다음 ID와 비교하도록 검출된 ID가 저장된다. 단계(S63)에서는 이때 검출된 ID가 앞선 단계에서 저장된 ID보다 1만큼 더 큰가 여부를 결정한다. 이때 검출된 ID가 저장된 ID보다 1만큼 더 크면, 단계(S64)에서의 처리 과정이 실행되어 정확한 ID가 연속적으로 검출되었음을 나타내는 변수가 1만큼 증가된다. ID가 검출되지 않았거나 ID가 연속적으로 검출되지 않으면, ID가 연속적이지 않은 회수를 나타내는 변수 Nns가 0으로 설정된다.
단계(S65)에서는 변수 Ns가 3과 같은가 여부를 결정한다. 그런 경우(1 만큼 증가된 ID가 연속적으로 3회 검출되지 않았으면), 처리 과정은 그로부터의 처리를 반복하도록 단계(S61)로 다시 진행된다. 변수 Ns가 3과 같은 것으로 발견되면, 처리 과정은 단계(S66)로 진행되어 ID가 연속적으로 정상적인 상태에 있음을 나타내는 플래그 As가 HIGH로 설정된다. 다음에는 단계(67)에서, 다음 ID가 검출되면 정확한 ID가 연속적으로 3회 검출되었음을 결정할 수 있도록 변수 Ns가 2로 설정된다. 이어서, 처리 과정은 그로부터의 처리를 반복하도록 다시 단계(S61)로 진행된다.
단계(S61)에서 ID가 검출되지 않았거나 이번에 검출된 ID가 마지막으로 검출된 ID보다 1만큼 더 크지 않은 것으로 발견되면(즉, ID가 연속되지 않으면), 처리 과정은 단계(S68)로 진행되어 플래그 SALK가 HIGH인가 여부를 결정한다. 도 16을 참고로 기술될 플래그 SALK는 IEC가 3번 이상 연속적으로 정상적이고 ID의 연속성이 3번 이상 유지되면 HIGH로 설정된다.
단계(S68)에서, 플래그 SALK가 HIGH인 것으로 발견되면, 처리 과정은 단계(S69)로 진행되어 ID를 보간시키는 처리가 실행된다. 즉, ID가 검출되지 않았거나 ID가 연속적이지 않으므로, 마지막 ID에 1을 더해 얻어진 ID가 발생되고, 결과의 ID는 검출된 ID로 사용된다. 플래그 SALK가 LOW로 설정되면, 이러한 보간 처리는 실행도지 않으므로, 단계(S69)의 처리 과정은 생략된다.
단계(S70)에서, 변수 Nns는 1만큼 증가되고, 변수 Ns는 0으로 설정된다. 단계(S71)에서는 변수 Nns가 3과 같은가 여부를 결정한다. 그러한 경우가 아니면, 처리 과정은 그로부터의 처리 과정을 반복하도록 단계(S61)로 복귀된다. 변수 Nns가 3이면, 처리 과정은 단계(S72)로 진행되어 플래그 AS가 LOW로 설정된다. 다음에는 단계(S73)에서, 다음 ID가 검출되지 않으면 ID가 3번 연속적으로 검출되지 않은 것으로 결정될 수 있도록 변수 Nns가 2로 설정된다. 이어서, 처리 과정은 그로부터의 처리 과정을 반복하도록 단계(S61)로 다시 진행된다.
이와 같이, SBCD 회로(34)는 ID의 연속성이 유지될 때 플래그 AS를 HIGH로 설정하고, 그렇지 않은 경우에는 플래그 AS를 LOW로 설정한다.
SBCD 회로(34)는 플래그 SALK를 발생하기 위해 상술된 바와 같은 두개의 플래그 IECOK 및 AS를 사용한다.
특히, 도 16의 단계(S81)에서는 플래그 IECOK가 HIGH인가 여부를 결정한다.
플래그 IECOK가 HIGH인 것으로 발견되면, 처리 과정은 단계(S82)로 진행되어 플래그가 AS가 HIGH인가 여부를 결정한다. 단계(S82)에서 플래그 AS가 HIGH이면, 단계(S83)에서의 처리 과정이 실행되어 플래그 SALK가 HIGH로 설정된다.
단계(S81)에서 플래그 IECOK가 LOW인 것으로 발견되거나 단계(S82)에서 플래그 AS가 LOW인 것으로 발견되면, 처리 과정은 단계(S84)로 진행되어 플래그 SALK가 LOW로 설정된다.
이와 같이, SBCD 회로(34)에서, IEC가 3번 이상 계속하여 정상적이고 ID가 3번 이상 연속적으로 1만큼 증가되면, 플래그 SALK는 HIGH로 설정되고; IEC가 3번 이상 계속하여 정상적이지 않거나 ID가 3번 이상 연속적이지 않으면, 플래그 SALK는 LOW로 설정된다.
호스트 CPU(40)는 상술된 바와 같이 ID 데이터와 플래그 SALK의 상태를 참고함으로서 레이저 빔이 현재 조사되는 위치(광학 디스크(1)상에서의 억세스 위치)를 검출한다.
PI1 정정의 결과는 도 14의 변수 SAunlock이나 변수 SAlock의 조건에 부가됨을 알 수 있다. 또한, 이러한 변수로 지정된 회수는 3이다. 회수는 호스트 CPU(40)에 의해 또 다른 값으로 설정될 수 있음이 명백하다.
플래그 SYLK가 또한 LOW(플래그 SAUL이 HIGH일 때) 상태인 플래그 SALK로 LOW(플래그 SYUL이 HIGH로 될 때)에 설정될 때, EFM + 복조 회로(31)로부터 EFM + 복조된 데이터를 RAM(37)에 기록하는 것이 재설정된다. 이어서, 해제 상태가 클리어될 때(SAUL=LOW), 플래그 SYLK를 HIGH로 설정함으로서 EFM + 복조된 데이터를 RAM(37)에 기록하는 것이 재시동된다.
해제 동작은 또한 호스트 CPU(40)에 강제로 실행될 수 있음을 알 수 있다.
예를 들면, 트랙간의 점프 동작을 실행한 후에 호스트 CPU(40)에 의해 해제 상태를 설정하면, ECC 제어가 재설정될 수 있다.
또한, 해제 상태는 호스트 CPU(40)에 의해 클리어 동작을 실행하거나 클리어 동작을 자동 실행함으로서 선택적으로 클리어 될 수 있음을 알 수 있다.
플래그 SYLK가 HIGH(고정 상태)이고 섹터 정보의 비트 6이 1(섹터의 시작부)일 때, SBCD 회로(34)는 플래그 SYLK가 LOW상태로 될 때까지(즉, 고정 상태가 클리어) 신호 블록-상단을 HIGH 레벨(도 10에 도시된 바와 같이)에 유지시킨다. 신호 블록-상단이 LOW이면, SCSY 및 메인-FMSY 모두가 HIGH(섹터의 시작부)일 때, EFM+W 프레임의 값은 12 이후에 0으로 설정된다. 즉, 이러한 경우에는 EFM+W 프레임의 값이 각 메인 프레임에 대해 0 내지 12에서 반복된다.
신호 블록-상단이 HIGH이면, EFM+W 프레임의 값은 도 11에 도시된 바와 같이 값이 13 이상이 될 때 계속 증가된다. 그 결과로, ECC 블록의 메인 프레임 데이터는 순차적으로 다른 어드레스로 RAM(37)에 저장된다.
이어서, EFM + 복조된 데이터를 RAM(37)에 기록하는 것은 유사하게 실행되고, 동시에 PI1 정정이 실행된다. 한 ECC 블록 데이터(208 행에 대한 데이터)에 대한 PI1 정정이 종료될 때, PO 열 방향으로의 ECC 처리(PO 정정)가 초기화된다.
PO 열 방향으로 데이터를 판독하는데는 PO 열에서의 삽입이 클리어될 것이 요구됨을 주목하여야 한다(도 36). 그러므로, 예를 들면 도 5에 도시된 제 N 바이트 열을 판독하기 위해서는 삽입된 PO열을 스킵(skip)함으로서 상단에서 하단으로 제 N 바이트 열의 데이터가 먼저 판독되고, 이어서 ECC 코어 회로(38)로 공급되도록 같은 제 N 바이트에서의 코드만이 다시 판독된다.
ECC 코어 회로(38)가 PO 정정을 종료할 때(즉, 도 5의 우측에 있는 10 P1 열을 제외하고 172 열 모두가 처리되었을 때), 회로는 PI2 정정을 실행한다. PI 행 방향으로의 ECC 처리는 에러 정정 능력을 증진시키기 위해 두번 실행됨을 알 수 있다.
PO 정정에서는 PI1 정정을 근거로 발생된 에러 플래그(PI1 플래그)에 따라 삭제 정정이 실행된다. 또한, PI2 정정에서는 PO 정정의 결과에 따라 발생된 에러 플래그(PO 플래그)를 이용해 삭제 정정이 또한 실행된다. 삭제 정정은 ECC 처리와 같이 에러 정정 능력을 증진시키기 위해 실행된다.
PI2 정정을 따르는 PI 데이터는 RAM(37)에서 OCTL 회로(39)로 전달되고, 여기서는 도 13에 도시된 바와 같이, 섹터 정보의 비트 3 내지 0을 이용해 섹터 대 섹터를 근거로 주 데이터에 대한 역스크램블 처리가 실행된다. 동시에, OCTL 회로(39)에서는 EDC와 연관된 산술 동작이 실행된다. 주 데이터에 부착되는 에러 플래그의 존재 여부와 산술 동작의 결과를 근거로, 섹터에 에러가 있는가 여부를 결정한다. 이러한 결정 결과를 근거로, 호스트 CPU(40)는 광학 디스크(1)로부터 다시 데이터를 판독할 것인가 여부를 결정한다. 데이터가 다시 판독되어야 하면, 광학 디스크(1)로의 억세스가 반복된다. 데이터가 다시 판독될 필요가 없으면, 에러를 포함한 섹터 데이터는 다중화 데이터 분리 회로(8)로 출력된다.
ECC 코어 회로(38)는 코드 길이, 패리티의 수, 및 정정 모드(일반 정정과 삭제 정정의 두 모드)가 프로그램될 수 있는 일반적인 목적의 리드-솔로몬 코드 에러 정정 LSI로 구성된다. ECC 코어 회로(38)는 또한 실시간에서 다중 코드 연속 부호화 데이터(다른 코드 길이를 갖는 다수의 코드열)를 복호화할 수 있다. 상술된 LSI 회로로는 소니(SONY)사의 CXD307-111G가 이용가능함을 주목하여야 한다. 이 LSI 로 형성된 ASIC(Application Specific Integrated Circuit)가 ECC 코어로 칭하여진다. 이 ECC 코어는 도 2의 ECC 코어 회로(38)로서 대표적으로 사용된다.
다음에는 에러 정정 동작이 설명된다. 도 17A내지 도 17D는 에러 정정 동작 동안에 타이밍도이다. ESTT(도 17A)는 코드(PI 또는 PO)의 시작을 나타내는 제어 신호이고, ECDE(도 17B)는 코드(PI 또는 PO)의 종료를 나타내는 제어 신호이다. ECYE(도 17C)는 코드 싸이클의 종료를 나타내는 제어 신호이다. 제어 신호는 ECC 제어 회로(36)를 통해 RAM 제어기(35)에서 ECC 코어 회로(38)로 공급된다. ECC 코어 회로(38)는 이러한 제어 신호를 근거로 RAM(37)에서 공급된 데이터를 식별한다.
도 17A 내지 도 17D에 도시된 바와 같이, PI 코드는 ESTT와 ECDE 사이의 182 클럭 펄스(ECCK) 동안에 전달된다. PO 코드는 ESTT와 ECDE 펄스 사이의 208 클럭 펄스(ECCK) 동안에 전달된다.
PI 및 PO열에서 코드간에 길이가 다르면, 코드 싸이클 길이는 PI 또는 PO 열 중 더 긴 코드 길이에 정합된다(본 실시예에서는 PO 열에서 208 코드). 결과적으로, 삭제 정정을 위한 에러 플래그(PI1, PI2, 및 PO)와 정정될 데이터(EDT)는 코드열에 관계없이 도 17A 내지 도 17D에 도시된 바와 같이 상당히 유사한 타이밍으로 입력될 수 있다. 코드 길이 및 패리티의 수와 같은 매개변수 값은 설정될 수 있음을 주목하여야 한다. 즉, 설정을 변화시키기 위해서는 ESTT 신호가 HIGH일 때 새로운 데이터가 ECC 코어 회로(38)에 공급된다. 새롭게 공급된 데이터를 근거로, ECC 코어 회로(38)는 내부 설정을 자동 변화시킨다.
데이터 정정 결과는 다음의 관계로 도시되는 바와 같이 477 클럭 사이클(ECCK)로 출력된다:
처리량 = 2×NCYC+3×PCYC+13
= 2×208+3×16+13=477(ECCK)
상술된 관계에서 NCYC는 PI 및 PO에서의 코드 중 더 긴 코드 길이를 나타낸다. PCYC는 더 긴 코드의 패리티 수를 나타낸다. 도 17D에 도시된 바와 같이, OSTT는 데이터 출력 싸이클 만큼 ESTT(도 17A)의 타이밍을 지연시킴으로서 ECC 코어 회로(38)에서 ECC 제어 회로(36)로 공급된다. 본 실시예에서는 OSTT가 ESTT로부터 477 클럭 싸이클(ECCK)만큼 지연된다.
에러 정정 처리가 실행되고 검출된 에러가 정정가능할 때, ECC 코어 회로(38)는 0.CODEERR=LOW(도 18G)를 OSIT=HIGH(도 18E)일 때 ECC 제어 회로(36)로 출력한다. 이어서, 에러 패턴(즉, 배타 논리합 동작이 에러 데이터와 실행될 때 정확한 데이터가 돈 데이터) ECD [7:0] (도 18 H)을 나타내는 8 비트 데이터와 에러 위치(에러를 포함하는 위치(어드레스)를 나타내는 8 비트 데이터) ECA [7:0](도 18I)를 나타내는 8 비트 데이터는 ECOR=HIGH(도 18F)일 때 출력된다.
삭제 정정 모드에서는 에러 플래그 EFLG(도 18C)가 입력되었던 위치에 대응하는 에러 위치 ECA [7:0] 데이터가 항상 출력되고; 그 위치에서의 데이터가 정확하면, 에러 패턴은 ECD [7:0]=0이 됨을 주목하여야 한다.
에러 정정이 실행될 수 없으면, OSTT(도 18E)는 HIGH 상태로 되고, 동시에 0.CODEERR(도 18G)은 HIGH 상태로 된다. 0.CODEERR(도 18G)의 출력은 OSTT(도 18E)가 다시 HIGH 상태로 될 때까지 래치(latch)되는 반면, ECOR(도 18F), ECD [7:0](도 18H), 및 ECA [7:0](도 18I)는 OSTT(도 18E)가 다음 번에 HIGH 상태로 될 때까지 출력된다.
도 19A내지 도 19E는 ECC 처리 동안에 타이밍 제어도를 도시한다. 도 19B에 도시된 PI1-R, PO-R, 또는 PI12-R은 정정되는 데이터 EDT[7:0]과 PI1, PO, 또는 PI2 열의 EFLG(도 18C)가 ECC 제어 회로(36)를 통해 RAM(37)에서 ECC 코어 회로(38)로 전달되는 타이밍을 나타낸다.
도 19A에 도시된 바와 같이, 하나의 PI행으로 EFM + 복조 회로(31)에서 RAM(37)으로 데이터 EFM+W (182 바이트)를 기록하기 위해서는 MWRQ 신호가 182번 공급된다. MWRQ 신호가 공급될 때, 한 PI 행에 대해 EFM + 복조된 데이터가 RAM(37)에 기록된다. 한 PI 행에 대한 데이터가 기록되는 동안, 임 RAM(37)에 기록된 ECC 블록의 데이터는 판독되어 ECC 제어 회로(36)를 통해 ECC 코어 회로(38)에 전달된다. 즉, 한 PI행에 대한 데이터가 RAM(37)에 기록되는 동안, 이미 기록된 또 다른 PI 행이나 PO 열의 데이터는 3배 빠르게 판독된다. 또한, 섹터의 시작부에서 PI행의 데이터가 전달될 때, 서브 코드 데이터(ID 및 IEC)가 또한 판독된다. 기록 동작이 실행되는 동안, 판독 동작은 중단된다.
예를 들어, ECC 블록에 PI1 정정을 실행할 때, 하나의 PI 행에 대한 데이터가 판독되는 동시에 하나의 PI행에 대한 데이터가 기록된다. 즉, 한 PI 행에 대한 데이터는 RAM(37)으로부터 판독되어 ECC 제어 회로(36)를 통해 ECC 코어 회로(38)에 전달된다. 도 19B에서, PI1 정정을 위해 PI1-R 데이터를 판독하기 위해서는 208 클럭 싸이클(ECCK)이 사용된다. 이러한 클럭 싸이클(ECCK)의 수는 PO 열의 길이와 정합된다. PI 행 데이터를 전달할 때, 실질적으로는 ECCK중 182 싸이클만이 사용되고, ECCK의 나머지는 사용되지 않고 남겨진다.
PI1-R의 전송이 아직 완료되지 않았을 때는 PO열의 PO-R데이터나 PI2열의 PI2-R 데이터의 전송이 가능하지 않다. 이러한 경우에, 데이터는 다음 2 대 208 클럭 싸이클(ECCK) 동안에는 전달되지 않는다.
다음의 182-MWRQ 간격에서는 PI1-R만이 전달된다. 실제로, 전체 208 PI행의 데이터 전송이 완료되었을 때, 다음 182-MWRQ 간격에서는 PI1-R 데이터가 먼저 전달되고 PO-R 데이터가 두번 이어진다(2개 열에 대한 PO 데이터가 전달된다). 그러나, PI1-R 데이터(PO-R과 같은 182-MWRQ 간격으로 전달된)는 다음 ECC 블록의 PI행 데이터를 제공한다.
상술된 동작은 182-MWRQ 간격으로 실행되고, 총 172개 열에 대한 PO 데이터가 전달되었을 때, PI2열의 PI2-R 데이터가 전달된다. 이 PI2-R 데이터는 도 19B에 도시된 PO-R 데이터에 대한 전송 타이밍과 같은 타이밍에 따라 전달된다. 이 타이밍 동안의 PI1-R 데이터는 다음 ECC 블록에 대한 데이터를 제공한다.
ECCK(도 18A)는 데이터 전송 간격 동안에만 RAM 제어기(35)에서 ECC 코어 회로(38)로 출력됨을 주목하여야 한다. 또한, 상술된 바와 같이, 전송 데이터의 정정 결과는 데이터 입력 이후에 477 클럭 싸이클(ECCK)로 출력된다. 그러므로, 특정한 열의 데이터에 에러가 있는가 여부의 결정 결과는 그 데이터열 이후에 두번째 열의 데이터가 전송될 때(도 19B)로 출력된다. 이 출력은 추후 기술될 ERR FIFO 회로(36b)(도 20)에 저장된다.
에러 정정되는 데이터가 상술된 바와 같이 RAM(37)으로부터 ECC 제어 회로(36)로 입력될 때, ECC 제어 회로는 예를 들면 하나의 PI행에 대한 데이터에 PI1 정정을 실행하고, 이어서 정정 결과 477 클럭 싸이클(ECCK)을 출력한다(도 19C). 정정 결과는 ECC 제어 회로(36)에 버퍼를 제공하는 ERR FIFO 회로(36b)에 전달되어 임시 저장된다. 이 데이터는 또한 ERR FIFO 회로(36b)로부터 판독되어 도 19D에 도시된 PI1-W데이터인 에러 정정된 데이터로서 RAM(37)에 다시 기록된다. 유사하게, PO 정정이나 PI2 정정 이후의 데이터는 각각 PO-W 또는 PI2-W 데이터로서 RAM(37)에 기록된다.
그래서, RAM(37)에 기록되는에러 정정된 데이터는 도 19E에 도시된 바와같이 182 클럭 싸이클(SDCK)의 주기로 각 PI행에 대해 더 판독하고 OCTL 회로(39)로부터 출력된다.
도 20은 에러 정정 처리 동안에 신호 흐름을 설명하는 블록도이다. 도 20을 참고로, 도 2에서 설명된 것과 유사한 구성 성분은 같은 참고 번호로 지정되고 그에 따라 이러한 구성 성분의 설명은 생략됨을 주목하여야 한다.
도 20에 도시된 바와 같이, ECC 제어 회로(36)는 ERR COUNT(36a), ERR FIFO(36b), FLAG RAM(36c), 및 EX-OR(exclusive-OR) 회로(36d)를 포함한다. EFM + 복조 회로(31)로부터 출력된 복조 데이터는 RAM 제어기(35)의 제어하에서 RAM(37)에 기록된다. 각 섹터의 시작부에 저장된 SUB 데이터(ID 및 IEC)는 RAM(37)으로부터 판독되어 SBCD 회로(34)에 전달된다. SBCD 회로(34)는 도 13에 도시된 바와 같이 섹터 정보 SI를 발생한다. 이 섹터 정보 SI는 RAM(37)에 저장되도록 SBCD 회로로부터 전달된다.
RAM 제어기(35)는 8 비트를 기본으로 하는 에러 정정 데이터 EDT로서 RAM(37)에 저장된 하나의 PI 행에 대한 데이터를 ECC 제어 수단(36)(에러 정정 수단)을 통해 ECC 코어 회로(38)에 공급한다(도 20 에서는 간략하게 EDT 데이터가 ECC 코어 회로(38)로 직접 공급된다). 하나의 PI 행에 대한 데이터가 도착될때, ECC 코어 회로(38)는 PI 코드를 이용해 8 비트 에러 정정 데이터 ECD(도 18H)와 8 비트 에러 정정 어드레스 ECA(도 18I)를 발생한다. 에러 정정 ECD 데이터와 ECA 어드레스는 기록되도록 ECC 코어 회로(38)에서 ERR FIFO (36b)로 전달된다.
다음에는 에러 정정을 실행하기 위해, RAM 제어기(35)가 PI 행의 EDT 데이터를 판독하고, 판독된 데이터를 EX-OR 회로(36d)에 공급한다. 에러 정정 데이터 ECD와 에러 정정 어드레스 ECA는 ERR FIFO (36b)로부터 이 EX-OR 회로(36d)에 공급된다. 에러 정정을 위해, EX-OR 회로(36d)는 에러 정정 데이터 ECD와 RAM 제어기(35)에 의해 판독된 데이터 EDT 사이에서 에러 정정 어드레스 ECA에 의해 지정된 비트에 배타적 논리합 동작을 실행한다. 이러한 에러 정정이 실행된 데이터는 RAM 제어기(35)를 통해 EX-OR 회로(36d)에서 다시 RAM(37)으로 기록된다.
ECD 및 ECA 데이터를 근거로, ECC 코어 회로(38)는 도 21에 도시된 바와 같이 8 비트 데이터로 구성된 에러 정정 결과 ER를 발생하고, ER을 저장하도록 ECC 제어 회로의 ERR COUNT(36a)에 공급한다. 이러한 1 바이트 에러 정정 결과 ER는 도 5에 도시된 바와 같이 PI 행에 대응하여 RAM 제어기(35)를 통해 RAM(37)에 기록된다.
에러 정정 결과 ER를 구성하는 비트는 도 21에 도시된 바와 같이 다음의 정보를 나타낸다.
비트 7:0 = 정정가능; 1 = 정정 불가능(그 열의 에러 정정이 실행될 수 없을때 1).
비트 6:0 = PI; 1 = PO (그 열이 PI 또는 PO인가 여부를 결정하기 위한 정보 비트).
비트 5:0 = PI1; = PI2 (그 열이 PI1 또는 PI2인가 여부를 결정하기 위한 정보 비트).
비트 4 : 에러 정정 카운트 (에러 정정 수의 비트 5 (MSB) 값).
비트 3 : 에러 정정 카운트 (에러 정정 수의 비트 4 값).
비트 2 : 에러 정정 카운트 (에러 정정 수의 비트 3 값).
비트 1 : 에러 정정 카운트 (에러 정정 수의 비트 2 값).
비트 0 : 에러 정정 카운트 (에러 정정 수의 비트 1(LSB) 값).
PI1에 의해 데이터가 정정 불가능한가 여부의 결정 결과를 나타내는 에러 플래그(에러 정정 결과 ER의 비트 7)는 ERR COUNT(36a)에 저장될 뿐만 아니라 에러 정정 결과 ER의 일부로서 FLAG RAM(36c)에도 저장된다.
상술된 PI1 정정은 도 5에 도시된 208개 PI 행에서 실행된다.
다음에는 RAM 제어기(35)가 RAM(37)으로부터 첫번째 PO열의 208 바이트를 판독하고, 이 데이터(EDT인)를 ECC 제어 회로(36)를 통해 ECC 코어 회로(38)에 공급한다. FLAG RAM(36c)에 기록된 PI1 플래그는 또한 판독되어 ECC 코어 회로(38)에 공급된다. 패리티 PO 및 PI1 플래그를 이용해, ECC 코어 회로(38)는 정규적인 정정이나 삭제 정정을 위한 ECD 및 ECA를 발생한다. ECD 및 ECA 데이터는 저장되도록 ECC 코어 회로(38)에서 ECC 제어 회로(36)의 ERR FIFO(36b)에 공급된다. 또한, ECC 코어 회로(38)는 ECC 코어 회로에 의해 발생된 그 PO열의 에러 정정 결과 ER(ECD 및 ECA 데이터를 근거로 한)을 저장되도록 ERR COUNT(36a)에 전달한다. 에러 정정 결과 ER의 비트 7에 대응하는 PO 플래그도 또한 FLAG RAM(36c)에 기록된다.
RAM(37)에서 판독된 PO열의 EDT 데이터는 EX-OR 회로(36d)에 출력된다. ECD 및 ECA는 또한 ERR FIFO(36b)에서 EX-OR 회로(36d)로 출력된다. EX-OR 회로(36d)는 에러 정정을 위해 ECD 와 EDT 사이에서 배타적 논리합 동작을 실행한다. 에러 정정된 데이터는 다시 RAM(37)에 기록된다.
PO 열의 에러 정정 결과 ER는 RAM(37)에 저장되도록 ERR COUNT(36a)로부터 판독된다. 도 5에 도시된 바와 같이, PO열의 에러 정정 결과 ER는 순차적으로 상단으로부터 172 PI행에 대응하는 위치에 기록된다.
상술된 PO 정정은 172 개 PO열에서 실행된다.
PI2 정정 동안에는 첫 번째 PI 행에 대한 데이터가 ECC 코어 회로(38)에 공급되도록 RAM(37)으로부터 판독된다(PI1 정정 및 PO 정정 이후에). 앞서 FLAG RAM(36c)에 기록된 PO 플래그는 또한 판독되어 ECC 코어 회로(38)에 공급된다. PO 플래그와 패리티 PI를 이용해, ECC 코어 회로(38)는 ECD, ECA 데이터를 발생하고, 발생된 ECD 및 ECA 데이터를 ECC 제어 회로(36)의 ERR FIFO(36b)에 공급한다.
ERR FIFO(36b)에 제공된 ECD 및 ECA는 RAM(37)으로부터 회복된 PI 행 데이터와 ECD 데이터 사이의 에러 정정을 위해 배타적 논리합 동작을 실행하도록 EX-OR 회로(36d)에 출력된다. 에러 정정된 데이터는 RAM 제어기(35)를 통해 EX-OR 회로(36d)에서 다시 RAM(37)으로 공급된다.
ECC 코어 회로(38)는 또한 ECD 및 ECA 데이터를 근거로 에러 정정 결과 ER를 발생하고, 발생된 ER을 저장하도록 ECC 제어 회로(36)의 ERR COUNT(36a)에 공급한다. 비트 7에 대응하는 PI2 플래그는 또한 FLAG RAM(36c)에 기록된다.
ERR COUNT(36a)에 기록된 PI2행의 에러 정정 결과 ER는 RAM(37)에 저장하기 위해 ERR COUNT(36a)로부터 판독된다. PI2 행의 에러 정정 결과 ER는 ECC 블록의 208 PI 행에 대응하는 위치에 기록된다.
상술된 PI2 정정은 208개 PI 행 모두에서 실행된다.
도 22A 내지 도 22G는 RAM(37) 억세스 동안에 버스 조정에 대한 타이밍도이다. EFMREQ(도 22A)는 EFM + 복조 회로(31)가 EFM + 복조된 데이터를 RAM(37)에 기록할 것을 요구할 때 RAM 제어기(35)에 출력되는 신호를 나타낸다. OUTREQ(도 22B)는 OCTL 회로(39)가 ECC 처리된 데이터를 RAM(37)으로부터 판독한 것을 요구할 때 RAM 제어기(35)에 출력되는 신호를 나타낸다. ECCREQ(도 22C)는 ECC 제어 회로(36)가 ECC 코어 회로(38)에 데이터를 전달하고 에러 정정을 위해 RAM(37)과 억세스하거나 에러 정정된 데이터를 구하도록 RAM(37)과 억세스할 때, 또는 SBCD 회로(34)로의 SUB 전송(ID 및 IEC의 전송)을 실행하도록 RAM(37)과 억세스할 때 ECC 제어 회로(36)에서 RAM 제어기(35)로 출력되는 신호를 나타낸다.
RAM 제어기(35)는 이러한 3개의 신호에 대한 우선 레벨을 미리 설정한다. 상술된 요구가 동시에 이루어지면, RAM 제어기(35)는 우선 레벨에 따라 RAM(37)으로의 억세스를 수용하도록 ACK(승인) 신호를 순차적으로 출력한다. EFMACK(도 22D), OUTACK(도 22E), 및 ECCACK(도 22F)는 각각 EFMREQ, OUTREQ, 및 ECCREQ에 대한 승인신호를 나타낸다. 본 실시예에서는 최상의 우선권이 OUTREQ에 부여되고, 다음의 우선권이 EFMREQ에 부여되고, 또한 최하위 우선권이 ECCREQ에 지정된다. 그러므로, 도 22A 내지 도 22G에 도시된 바와 같이, RAM 제어기(35)는 이러한 우선 레벨에 따라 REQ 신호에 대한 ACK 신호를 출력한다. 이러한 신호는 시스템 클럭인 C11M(도 22G)과 동기화하여 전달된다.
그래서, 본 실시예에서는 RAM(37)과 억세스하는 권한이 각각 소정의 싸이클 동안에 EFMREQ, ECCREQ, 및 OUTREQ 신호 중 하나에 부여된다. 이러한 싸이클은 RAM(37)의 구조 및/ 또는 종류나 억세스 속도에 따라 변경될 수 있음을 주목하여야 한다.
도 23은 PI1 정정, PI2 정정, 및 PO 정정이 한 ECC 데이터 블록에 실행될 때 RAM(37)이 억세스되는 회수를 나타낸다. PI1 정정, PO 정정, 및 PI2 정정을 실행하기 위해 RAM(37)으로의 억세스가 요구되는 회수는 한 ECC 블록당 214716이고, 한 메인 프레임 당 평균 1033이다. 예를 들면, ECC의 실행 싸이클 길이가 208 바이트(208 메인 프레임)이기 때문에, EFM + 복조된 데이터를 기록할 때 RAM(37)이 억세스되는 회수는 메인 프레임 당 182 이고, 블록 당 37856(즉, 182×208)이다. 도 23에서 설명되는 바와 같이, 각 동작에 대해 요구되는 억세스 회수가 계산되고, 전체 계산은 상술된 값을 제공한다.
도 24A 내지 도 24F는 OCTL 회로(39)로부터 RAM(37)에서 에러 정정 결과 ER를 출력하는 동안의 타이밍도이다. 도 19E는 182 클럭 싸이클(SDCK) 간격을 선행하는 부분은 확장된 시간축으로 도시된다. SDCK(도 24A)는 데이터열로 출력되는 ER 데이터에 대한 클럭 신호를 나타낸다. SINF(도 24B)는 섹터의 시작부에서 HIGH 상태로 되고 전달되는 데이터가 섹터 정보(SI)임을 나타내는 섹터 정보 스트로브(strobe)신호를 나타낸다. ESTB(도 24C)는 HIGH로 설정될 때 에러 정정 결과 ER가 전달되었음을 나타내는 에러 정정 결과 스트로브 신호이다. 각 PI 행에서, 한 바이트의 에러 정정 결과 ER는 총 3 바이트의 양으로 각각 PI1 정정, PO 정정, 및 PI2 정정에 지정됨을 주목하여야 한다. 이 데이터는 도 5에 도시된 바와 같이 저장된 순서로 출력되므로, 에러 정정 결과 ER의 비트 5 및 6 (도 21)를 점검하면 이 결과가 어느 열에 속하는가를 결정할 수 있다.
DSTB(도 24D)는 신호 SD [7:0](도 24E)가 주 데이터일 때 HIGH 상태로 되는 데이터 스트로브 신호이다. OCTL 회로(39)에 의해 3가지 신호 SINF, ESTB, 및 DSTB가 발생된다. 도 24E에 도시된 바와 같이, 섹터 정보 SI와 에러 정정 결과 ER는 PI 행방향으로 데이터가 182 클럭 싸이클(SDCK) 동안에 전달도기 바로 전에 출력됨을 주목하여야 한다.
OUTF(도 24F의 보간 플래그)는 도 20에 도시된 바와 같이, 주 데이터에 대한 에러 플래그로, FLAG RAM(36c)에 저장된 회복 불가능한 PI 및 PO 플래그를 근거로 실패된 주 데이터에 대해 출력된다.
SBCD 회로(34)에 의해 발생된 섹터 정보의 비트 4 및 5 (도 13)를 근거로, OCTL 회로(39)는 복호화된 섹터 데이터가 출력되는가 여부를 결정한다. 섹터 정보의 비트 4 및 5는 도 13에 도시된 바와 같이 각각 종료 섹터와 시작 섹터를 나타낸다. 그러므로, OCTL 회로(39)는 비트 4=0 및 비트 5=1인 섹터의 데이터를 출력될 섹터의 데이터로 출력한다.
또한, OCTL 회로(39)는 또한 주 데이터의 에러 플래그의 존재 유무와 EDC의 결과가 호스트 CPU(40)에 의해 밀 결정된 조건을 만족시키는가 여부를 결정한다. 소정의 조건이 만족되면, OCTL 회로(39)는 복호화된 데이터를 출력한다. 그렇지 않은 경우에는 OCTL 회로(39)가 복호화 데이터의출력을 중단하고 호스트 CPU(40)에 비정상적인 조건을 알린다.
데이터 출력 조건은 예를 들면, 다음과 같이 설정된다:
(1) 출력이 지정된 섹터의 데이터.
(2) ECD의 결과를 근거로 에러가 검출되지 않는다.
(3) 주 데이터에 에러 플래그가 부가되지 않는다.
이러한 조건을 만족시키는 데이터는 결국에 출력된다. 상술된 조건에 관계없이 데이터의 출력은 호스트 CPU(40)에 의해 강제 금지될 수 있음을 주목하여야 한다. 출력 조건은 상술된 것에 제한되지 않음을 알 수 있다.
다음에는 보간 플래그가 설명된다. PI1 정정, PI2 정정, 및 PO 정정에 각각 대응하여 발생되는 PI1 플래그, PI2 플래그, 및 PO 플래그는 ECC 제어 회로(36)의 FLAG RAM(36c)에 저장된다. 도 25는 FLAG RAM(36c)내의 데이터를 RAM(37) 중 소정의 8 비트폭 영역에 저장하기 위한 부분의 ECC 제어 회로(36)구조를 설명하는 블록도이다.
도 25에서, 1-8 변환 회로(50)는 1 비트 PI 또는 PO 플래그(도 21에서의 비트 7)를 FLAG RAM(36c)으로부터 판독된 각 행이나 열에 대한 8비트 평행 데이터로 변환시킨다. RAM(37)은 변환된 8비트 평행 데이터를 저장한다. 플립 플롭(52-1) 내지 (52-26)은 FIFO 방식으로 데이터를 유지시키는데 적용된다. 8-1 변환 회로(53)는 8 비트 데이터를 1 비트 데이터로 변환시킨다. WE 발생 회로(56)는 데이터를 플립 플롭(52-1) 내지 (52-26)에 기록하는 동작을 제어한다. OE 발생 회로(55)는 플립 플롭(52-1) 내지 (52-26)에서 데이터를 판독하는 동작을 제어한다.
다음에는 도 25를 참고로 하는 동작이 설명된다. FLAG RAM(36c)으로부터 입력된 1 비트 PI 플래그(PI1 또는 PI2 플래그)나 PO 플래그는 1-8 변환 회로(50)에 의해 8 비트 평행 데이터로 변환된다. 즉, 바이트 데이터로 변환되는 8개 행을 근거로 각 ECC 블록의 PI 행의 시작부터 데이터가 수집된다. 결과의 바이트 데이터는 각 ECC 블록의 데이터와 함께 억세스될 수 있도록 RAM(17)에 저장된다.
하나의 ECC 블록(208)은 208개의 PI 행을 갖고, 각 PI 행에 대한 PI 플래그가 1 비트의 길이이다. 그러므로, PI 플래그를 저장하기 위해서는 26 바이트(즉, 208/8)의 저장 영역이 요구된다. 한 ECC 블록은 172개의 PO 열을 갖는다. 그러므로, PO 플래그를 저장하기 위해서는 대략 22 바이트(즉, 21.5 =172/8)의 저장 영역이 요구된다.
그래서, 8 비트를 기본으로 RAM(38)에 저장된 데이터는 RAM 제어기(35)에 의해 판독되고, WE 발생 회로(56)의 제어하에서 플립 플롭(52-1) 내지 (52-26)에 저장도니다. 8-1 변환 회로(53)는 OE 발생 회로(55)의 제어하에서 플립 플롭(52-1) 내지 (52-26)으로부터 출력된 8 비트 데이터를 1 비트 데이터로 변환한다. 구해진 1 비트 데이터는 전달된 데이터열의 PI 행 (또는 PO 열)에 대응하는 ECC 코어 회로(38)의 에러 플래그 입력 단자인 EFLG 단자에 공급된다.
PO 정정 및 PI2 정정이 실행될 때는 삭제 정정이 실행된다. PO 정정 및 PI2 정정이 ECC 블록을 기본으로 하여 순차적으로 실행되므로, 도 25의 회로는 PO 정정과 PI2 정정간에 공유될 수 있다. 그러나, OE 발생 회로(55)에 의해 플립 플롭(52-1) 내지 (52-26)으로부터 데이터가 판독되는 타이밍과 8-1 변환 회로(53)로부터 데이터가 판독되는 타이밍은 PI2 정정과 PO 정정간에 변결될 필요가 있다.
도 26은 보간 플래그(OUTF)를 발생하고 판독하기 위한 ECC 제어 회로 일부의 대표적인 구조를 설명하는 블록도이다. 도면에 도시된 바와 같이, 보간 플래그 판독 회로는 FIFO 방식으로 RAM(37)에 8 비트 데이터를 저장하는 플립 플롭(71-1) 내지 (71-22), 플립 플롭(71-1) 내지 (71-22)으로부터의 8 비트 데이터를 1 비트 데이터로 변환하는 8-1 변환 회로(72), OUTF(즉, 보간 플래그)를 발생하는 OUTF 발생 회로(73), 플립 플롭(71-1) 내지 (71-22)으로의 데이터 기록을 제어하는 WE 발생 회로(75), 및 플립 플롭(71-1) 내지 (71-22)으로부터의 데이터 판독을 제어하는 OE 발생 회로(74)를 포함한다.
도 26의 실시예 동작은 다음과 같다. RAM 제어기(35)에 의해 판독된 PO 플래그의 8 비트 데이터는 8 비트를 기본으로 하여 저장되도록 WE 발생 회로(75)의 제어하에서 플립 플롭(71-1) 내지 (71-22)으로 공급된다. 이어서, PO 플래그는 8-1 변환 회로(72)에 의해 8 비트 데이터에서 1 비트 데이터로 변환되도록 OE 발생 회로(74)의 제어하에 판독된다.
RAM(37)으로부터 판독된 8 비트 PI2 정정 에러 정정 결과 ER와 8 비트 섹터 정보 SI는 또한 OUTF 발생 회로(73)로 공급된다. OUTF 발생 회로(73)는 PO 플래그와 PI2 플래그(비트 7), 에러 정정 카운트(비트 4 내지 0), 및 8-1 변환 회로(72)로부터 공급된 PI2 정정 에러 정정 결과 ER의 섹터 정보 SI 중 보간 플래그 발생 모드(비트 7)에 따라 보간 플래그(OUTF)를 발생한다. 보간 플래그를 발생하기 위한 처리의 상세한 내용이 도 31 및 도 32의 흐름도를 참고로 추후 기술된다.
도 25 및 도 26의 양호한 실시예에서, 에러 플래그는 RAM(37)이외의 다른 장치에 저장될 수 있음을 알 수 있다. 이 양호한 실시예에서는 FIFO형 저장 장치 (플립 플롭(52-1) 내지 (52-26) 및 (71-1) 내지 (71-22))가 사용된다. 다른 종류의 저장 장치가 또한 사용될 수 있음을 알 수 있다. 또한, RAM(37)이 1 비트의 폭이면, 1-8 변환 회로(50)와 8-1 변환 회로(53) 및 (72)는 ECC 제어 회로(36)에서 불필요하다.
다음의 기술 내용은 ECC 코어 회로(38)의 동작 모드를 설정하는 방법과 데이터가 정정 불가능한가 여부를 결정하는 방법을 설명한다.
먼저, ECC 코어 회로(38)의 동작 모드(에러 정정 모드)가 설명된다. 도 27에 도시된 바와 같이, ECC 코어 회로(38)는 동작 모드와 연관된 입력을 위한 단자 EUP, EFLG, P, PCYC, X, Y, 및 T와, 동작 모드와 연관된 신호를 출력하기 위한 단자 0.YOVER 및 0.CODEER을 갖는다.
ECC 코어 회로(38)의 에러 정정 모드는 EUP단자로 인가되는 신호에 의해 변경될 수 있다. 즉, EUP단자로 공급되는 신호가 LOW일 때는 신도름 정정(syndrome correction)(즉, 정상적인 정정)만이 실행된다. 신호가 HIGH일 때는 삭제 정정이 먼저 실행되고, 정정 능력이 충분한 마진을 갖으면, 정상적인 정정이 이어진다.
0.YOVER 단자의 출력은 EFLG 단자에 입력된 플래그의 수가 소정의 값을 넘을 때 HIGH 상태로 되고, 그에 의해 에러 정정이 실행될 수 없음을 나타낸다. EUP단자의 출력이 HIGH일 때 0.YOVER 단자의 출력이 HIGH 상태로 되면(즉, 삭제 정정+정상적인 정정 모드가 선택된 상태), 에러 정정이 실행될 수 없음을 나타내는 대신에 정상적인 정정이 실행됨을 주목하여야 한다. 결과적으로, 에러 이외의 다른 원인으로 인해 에러 플래그가 설정된 데이터는 정상적인 에러 정정에 의해 에러 정정 될 수 있다.
ECC 제어 회로(36)는 추후 기술될 바와 같이 에러의 수에 따라 ECC 코어 회로(38)의 EFLG 단자(도 25 및 도 27)를 통해 출력되는 EFLG 신호(에러 플래그에 대응하는 신호)의 상태간에 교환됨을 주목하여야 한다.
ECD가 빈 플래그를 포함하므로 (ECD=0), ECD가 모두 0인 데이터는 정확한 데이터로 간주되어 그 데이터에는 정정이 실행되지 않는다. 결과적으로, 데이터가 정정되는 회수는 에러 위치 ECA 또는 에러 패턴 ECD의 출력수로부터 빈 플래그 ECD의 수를 감산함으로서 얻어진다.
삭제 정정 모드에서 에러가 있는 정정이 발생되면, ECC 코어 회로(38)는 HIGH 상태인 0.CODEERR신호와 LOW 상태인 0.YOVER신호를 출력한다. 그러므로, 에러가 있는 정정의 발생은 이러한 신호를 참고함으로서 검출될 수 있다.
예를 들어, 삭제 정정이 PI2 정정으로 8 번 실행되고 PO 플래그의 입력수가 7이면, 0.CODEERR은 HIGH 상태로 설정되고 0.YOVER은 LOW 상태로 설정된다. 이는 플래그가 부가되지 않은 데이터 에러가 하나 이상 존재함을 나타낸다.
플래그가 설정되지 않은 위치에 정정 불가능한 에러가 있으면, PO 정정에서 에러가 있는 정정이 발생되었음을 나타낸다. 그러므로, 에러는 PO 플래그가 설정되지 않았던 위치에서 발생되었기 때문에 OUTF가 1로 설정된다.
0.CODEERR과 0.YOVER의 신호 레벨(논리 레벨)은 ECC 제어 회로(36)에 의해 보간 플래그를 발생하는데 사용되는 플래그로 RAM(37)에 기록된다. 예를 들어, PI1 정정, PO 정정, 및 PI2 정정이 실행되면, PI2 정정의 에러 정정 결과 ER의 정정 카운트(도 21에서 비트 4 내지 0)를 다음과 같이 설정함으로서 에러가 있는 정정이 결정될 수 있다.
(A) 0.CODEERR = LOW이고 0.YOVER = LOW이면, 정정 결과의 정정 카운트는 실제 에러 정정 카운트이다(정정이 실행되었음).
(B) 0.CODEERR = HIGH이고 0.YOVER = HIGH이면, 정정 결과의 정정 카운트는 0이다(정정이 실행되지 않았음).
(C) 0.CODEERR = LOW이고 0.YOVER = LOW이면, 정정 결과의 정정 카운트가 1F(H)이다(에러가 있는 정정이 발생됨).
IF(H)의 설정은 금지된 정정 카운트를 나타내는 것으로 5 비트로 표시될 수 있는 최대값임을 주목하여야 한다.
다음의 상세한 설명은 도 28 및 도 29를 참고로 ECC 코어 회로(38)의 출력을 근거로 하여 ECC 제어 회로(36)에 의해 에러 플래그를 발생하는 방법을 설명한다.
도 28 및 도 29 에 도시된 매개변수(즉, ECC 코어 회로(38)의 단자에 인가되는 신호)는 다음과 같다:
입력측:
P = PI 또는 PO열의 패리티수.
PCYC = 각 열에서 패리티수의 최대값.
X, Y, T = 정상적인 정정 심볼값의 최대값을 두배한 값.
출력측:
0.CODEERR = 데이터열이 정정가능한가 여부를 나타내는 신호의 출력 단자(LOW : 정정가능한 에러가 포함되거나 에러가 포함되지 않음, HIGH : 정정 불가능).
0.YOVER = 데이터열 중 ERROR 신호의 총 수 (플래그 입력수)가 정정 능력 제한을 넘을 때 HIGH 상태로 되는 단자.
정정 결과:
0 = 0.CODEERR과 0.YOVER의 출력 상태에 따라 에러 정정이 실행됨.
X = 에러 정정이 실행되지 않음.
X의 경우에는 정정이 실행되지 않으므로, 그 열의 에러 플래그는 HIGH 상태이다.
도 28에 도시된 바와 같이, PI1 정정이 실행될 때, ECC 제어 회로(36)는 ECC 코어 회로(38)의 단자 EFLG로의 입력을 위한 ERROR 플래그를 LOW 상태로 설정한다. 이때는 정상적인 정정이 실행된다. PO 정정이 실행될 때, ECC 제어 회로(36)는 삭제 정정이 실행되도록 ERROR 플래그를 PO 플래그로 설정한다. 그래서, PI 플래그(도 28에 도시된 바와 같은)는 ERROR = LOW 일 때 PI1 플래그가 되고, ERROR = PO 플래그일 때 PO 플래그가 된다.
ECC 제어 회로(36)는 도 28에 도시된 바와 같이 매개변수 P, PCYC, X, Y, 및 T를 설정한다. 0.CODEERR과 0.YOVER 단자로부터 LOW 상태가 출력되면, PI 또는 PO 플래그는 ECC 제어 회로(36)에 의해 LOW 상태로 설정된다. 0.CODEERR 단자로부터 HIGH 상태가 입력되고 0.YOVER 단자로부터 LOW 상태가 출력되면, ECC 제어 회로(36)는 에러 정정을 실행하지 않고 PI 또는 PO 플래그를 HIGH 상태로 설정한다. 이는 에러가 있는 정정이 발생되었음을 나타낸다. 또한, 0.CODEERR과 0.YOVER 단자로부터 HIGH 상태가 출력되면, ECC 제어 회로는 에러 정정을 실행하지 않고 PI 또는 PO 플래그를 HIGH 상태로 설정한다. 이는 에러 정정이 실행될 수 없었음을 나타낸다.
도 28을 참고로, 매개변수 X, Y, T는 정정 능력에 대해 10으로 설정될 수 있다. 다른 방법으로, 이 매개변수들은 도 28에 도시된 바와 같이 8로 설정될 수 있다.
도 29에 도시된 바와 같이 PO 정정(삭제 정정)을 실행할 때, ECC 제어 회로(36)는 ECC 코어 회로(38)의 EFLG 단자에 대한 ERROR 플래그를 PI1 플래그로 설정한다. 0.CODEERR 및 0.YOVER 단자의 출력이 모두 LOW 상태이면, ECC 제어 회로(36)는 에러 정정을 실행하고 PO 플래그를 LOW 상태로 설정한다(도 29). ECC 코어 회로(38)의 두 출력이 각각 HIGH 및 LOW 상태(에러가 있는 정정), 또는 HIGH 및 HIGH 상태(정정 불가능함)이면, ECC 제어 회로(36)는 에러 정정을 실행하지 않고 PO 플래그를 HIGH로 설정한다.
도 30은 보간 플래그를 발생하는 방법을 도시한다. 즉, 도 30의 양호한 실시예에서, 다음의 방법이 선택될 수 있다: [1] PO 플래그와 PI2 플래그 사이의 AND 동작이 보간 플래그를 제공하는 방법; [2] PO 플래그와 PI2 플래그 사이의 OR 동작이 보간 플래그를 제공하는 방법; 및 [3] PO 플래그와 PI2 플래그 사이의 AND 동작이 보간 플래그를 제공하고 (PI2 정정에 의해 에러가 있는 정정이 발생되지 않았으면), PO 플래그와 PI2 플래그 사이의 OR 동작이 보간 플래그를 제공하는(PI2 정정에 의해 에러가 있는 정정이 발생되었으면) 방법.
상술된 3가지 방법 중 두 방법은 1과 0의 보간 플래그 발생 모드 설정 비트(도 13에서 섹터 정보 SI의 비트 7)에 대응하도록 이루어진다. 그래서, 보간 플래그는 섹터 정보 SI의 비트 7에 대응하는 모드에 따라 발생된다.
상술된 바와 같이, PO 플래그와 PI2 플래그 사이의 AND 동작 또는 OR 동작을 이용해 보간 플래그를 발생함으로서, 에러가 없는 데이터가 보간없이 사용될 수 있다.
상술된 실시예에서는 모드 선택이 섹터 정보의 비트 7을 근거로 이루어진다. 모드는 호스트 CPU(40)에 의해 강제로 변화될 수 있음을 알 수 있다.
도 31 및 도 32의 흐름도는 보간 플래그를 발생하는 단계 순차를 도시한다. 단계(S21)에서, ECC 제어 회로(36)는 에러 정정이 실행될 수 없는 1 바이트의 데이터에 대해 1 비트의 PO 플래그를 1로 설정하고, 그렇지 않은 경우에는 PO 플래그를 0으로 설정한다. 이 플래그는 RAM(37)에 저장된다. 단계(S22)에서, ECC 제어 회로(36)는 에러 정정이 실행될 수 없는 데이터에 대해 PI2 플래그를 1로 설정하고, 그렇지 않은 경우에는 PO 플래그를 0으로 설정한다. 이 플래그도 또한 RAM(37)에 저장된다.
또한, 단계(S23)에서는 PI2 정정시 에러가 있는 정정이 발생되었는가 여부를 나타내는 검출 결과가 RAM(37)에 저장된다. 즉, 도 28에 도시된 바와 같이, PI2 정정(삭제 정정)에서 에러가 있는 정정이 발생되었으면, 0.CODEERR 단자는 HIGH 신호 레벨을 출력하고 0.YOVER 단자는 LOW 신호 레벨을 출력하므로, ECC 제어 회로(36)는 이러한 신호의 상태를 판독하여 이를 RAM(37)에 저장한다.
단계(S24)에서는 OCTL 회로(39)가 섹터의 ECD를 점검한다. 섹터에서 에러가 발견되지 않으면, 처리 과정은 단계(S25)로 계속된다. 단계(S25)에서는 그 섹터에 대한 보간 플래그가 0으로 설정된다. 보간 플래그가 미리 0으로 설정되어 있고 에러가 발견될 때만 1로 설정되면, 이 단계에서는 특별한 처리 과정이 실행될 필요가 없다. 단계(S26)에서는 보간 플래그와 함께 데이터가 출력된다.
즉, 도 1에 도시된 바와 같이, 1 바이트의 주 데이터에 대해 1 비트의 보간 플래그가 출력된다. 한 ECC 블록에는 192 ×172 바이트의 주 데이터가 있으므로 192 ×172 개의 보간 플래그가 있다.
단계(S24)에서, 섹터의 ECD를 점검한 결과로 그 섹터에 에러가 나타나면, 단계(S27)에서의 처리 과정이 실행된다. 단계(S27)에서, 호스트 CPU(40)는 (1) 광학 디스크(1)를 다시 판독하는 것; 및 (2) 보간 플래그를 갖는 에러 데이터를 출력하는 것 간에 선택한다. 선택사항(1)에서는 단계(S28)에서 호스트 CPU(40)가 그 섹터를 포함하는 데이터를 다시 재생한다. 이어서, 단계(S21)의 처리 과정과 계속되는 처리 과정이 재생된 데이터에 실행된다.
단계(S27)에서, 선택사항(2)가 선택되면, 단계(S29)에서의 처리 과정이 실행된다. 단계(S29)에서는 섹터의 주 데이터 (12×172 바이트) 모두에 대응하는 PI2 플래그와 PO 플래그 사이에 AND 동작이 실행되고, 모든 AND 동작의 결과가 0이 되는가 여부를 결정한다. 단계(S29)에서, 주 데이터의 PI2 플래그와 PO 플래그 사이의 AND 동작이 0이면, 섹터의 ECD를 점검한 결과가 이 섹터에 에러가 있는 것으로 나타냈기 때문에, 에러가 존재하더라도 에러의 존재를 나타내는 플래그가 설정되지 않는다. 즉, 이러한 경우에는 PI1 정정, PO 정정, 및 PI2 정정으로 에러 정정이 실행된다. 그러므로, 이러한 경우, 처리 과정은 단계(S30)로 진행되어 그 섹터의 모든 PI 행(12)의 보간 플래그가 1로 설정된다. 즉, 12 대 172 비트의 보간 플래그가 모두 1로 설정된다. 단계(S26)에서, 주 데이터는 OCTL 회로(39)로부터의 보간 플래그와 함께 출력된다.
단계(S29)에서, 모든 주 데이터의 PO 플래그와 PI2 플래그 사이의 AND 동작이 0이 아닌 것으로 결정되면(즉, 주 데이터 중 적어도 한 바이트의 PO 플래그와 PI2 플래그 사이의 AND 동작이 1이면), 단계(S31)에서의 처리 과정이 실행된다. 이 단계에서는 PI2 정정의 정정 카운트가 1F(H)인가 여부를 결정한다. 즉, 도 25 및 도 27을 참고로 기술된 바와 같이, ECC 코어 회로(38)의 0.CODEERR 단자가 HIGH 신호 레벨을 출력하고 0.YOVER 단자가 LOW 신호 레벨을 출력하면, 에러가 있는 정정이 발생되어 실제 정정 능력보다 더 높은 소정의 값(이 경우에서는 1F(H))이 에러 정정 결과 ER의 정정 카운트(도 21의 비트 4 내지 0)에 설정된다. PI2 정정에서 에러가 있는 정정이 발생되었으면, PI2 정정의 정정 카운트는 1F 로 설정된다. 단계(S31)에서, 첫번째 PI 행에서의 PI2 정정의 정정 카운트가 1F 이면(즉, PI2 정정에서 에러가 있는 정정이 발생되었으면), 처리 과정은 단계(S32)로 계속된다. 이 단계에서는 PI 행(PI2 정정의 정정 카운트가 1F로 설정된)의 보간 플래그(1 대 172 비트)가 1로 설정된다.
단계(S33)에서는 에러를 포함하는 섹터의 12개 PI 행 모드가 처리되었는가 여부를 결정한다. 모든 PI 행의 처리가 완료되지 않았으면, 처리 과정은 단계(S34)로 진행되어 다음의 PI 행이 선택된다. 단계(S31)에서는 상술된 바와 같은 처리 과정이 새롭게 선택된 PI 행에 실행된다.
단계(S33)에서, 그 섹터의모든 PI 행(12)에 대한 처리 과정이 완료되었으면, 단계(S26)에서의 처리 과정이 실행된다. 단계(S26)에서, 주 데이터는 보간 플래그와 함께 출력된다.
딘계(S31)에서, 1F 가 아닌 PI2 정정의 정정 카운트는 에러를 나타내지만 에러 없는 정정이다. 즉, 이러한 경우에는 플래그가 확실하므로 처리 과정이 단계(S35)로 진행되어, PO 플래그와 PI2 플래그 사이의 AND 동작 결과가 그 PI 행의 주 데이터의 보간 플래그로 설정된다.
특히, 단계(S32)에서는 그 PI 행의 모든 보간 플래그가 1로 설정된다. 단계(S35)에서는 PO 플래그와 PI2 플래그가 확실하므로, 이러한 플래그 사이의 AND 동작 결과가 보간 플래그로 사용된다. 보간 플래그와 출력된 주 데이터는 보간 플래그가 1로 설정되면 이어지는 스테이지에서 보간된다. 보간 플래그가 단계(S35)의 처리에 따라 설정되면, 실제로 에러를 갖는 데이터만이 보간되므로, 에러가 없는 데이터는 그대로 사용된다.
처리 동작은 단계(S35)에서 단계(S33)로 전이되어 그 섹터의 모든 PI 행이 처리되었는가 여부를 결정한다. 적어도 하나의 PI 행이 처리되지 않으면, 단계(S34)에서 새로운 PI 행이 선택되고, 단계(S31)에서 새롭게 선택된 PI 행에 상기와 같은 처리 과정이 실행된다.
상술된 양호한 실시예에 따라, ECC 정정 결과에 따라 발생된 에러 플래그를 근거로 삭제 정정을 실행하는 것은 에러 정정 능력을 증진시킨다. 또한, 각 열의 에러 플래그를 근거로 복호화 데이터의 각 바이트에 대해 에러 플래그와 함께 복호화 데이터를 복호화 장치(14) 및 (16)(도 33)에 전달함으로서 에러 데이터는 보간될 수 있다.
즉, TOC 데이터와 같이 에러 보간이 적절하지 않은 데이터의 경우에, 에러 정정 모드는 에러가 있는 정정의 확률이 낮아지도록 설정 될 수 있다. 또한, 오디오 데이터 및 비디오 데이터와 같이 보간될 수 있는 데이터의 경우에, 에러 정정 모드는 에러가 정정 불가능하게 되는 확률이 낮아지고 에러 검출이 강하되는 확률이 억제되도록 설정될 수 있다. 이러한 설정은 섹터를 근거로 하여 각 섹터에 기록된 데이터의 본질과 정합되는 에러 정정을 실행할 수 있다.
본 실시예에서, 역스크램블 처리, EDC 점검, 및 출력 조건 결정은 OCTL 회로(39)에서 실행된다. 다중화 데이터 분리 회로(8)로부터의 전송 요구에 따라 출력 조건을 만족시키는 에러 정정된 데이터를 출력하기 위한 제어는 또한 다른 회로에 의해 실행될 수 있음을 알 수 있다.
또한, ECC 제어 회로(36)가 PI2 정정을 실행하기 전에, 이러한 정정은 섹터 정보의 비트 4 및 5(도 13)을 참고함으로서 출력을 위해 요구되는 섹터 데이터에만 실행될 수 있음을 알 수 있다. 비트 4 및 5를 통하여 출력을 위해 요구되지 않는 데이터는 링 버퍼 제어 회로(6)의 판독 포인터를 사용함으로서 스킵될 수 있다. 즉, 링 버퍼 메모리(7)(RAM 37)에서 OCTL 회로(39)로 데이터를 전달할 때, 상술된 바와 같이, OCTL 회로(39)로부터의 출력을 위해 요구되는 데이터만이 판독 포인터를 이용하여 선택될 수 있다.
상술된 실시에에서, 열 방향으로의 정정 처리(PO 정정)는 한번 실행되는 반면, 행 방향으로는 (PI1 정정 및 PI2 정정) 두 번 실행된다. 본 발명은 이러한 배열에 제한되지 않고, 정정 처리가 각 방향으로 상기 표시된 수보다 더 많이 실행될 수 있음을 알 수 있다.
상술된 복호화 장치 및 방법에 따라, 복호화된 데이터는 저장되고, 저장된 데이터에는 행과 열 방향으로 에러 정정이 실행되고, 행 방향으로의 에러 정정 결과에 따라 제 1 플래그가 발생되고, 또한 열 방향으로의 에러 정정 결과에 따라 제 2 플래그가 발생된다. 이는 보간 플래그를 바로 발생할 필요성을 제거하고, 그에 의해 ECC 블록과 같이 에러 정정 처리 단위보다 더 작은 단위를 근거로 보간 플래그 발생 동작이 변경되는 것을 허용한다.
부가하여, 본 발명에 따라, 보간 플래그가 바이트로 저장되고, 그에 의해 보간 플래그를 저장하기 위한 메모리의 크기를 줄이고 복호화 장치의 비용을 낮춘다.
본 발명의 양호한 실시예는 특정한 항목을 이용해 설명되었지만, 이러한 서술은 단지 설명을 위한 것이고, 첨부된 청구항의 의도나 범위에서 벗어나지 않고 수정 및 변경이 이루어질 수 있음을 이해하여야 한다.
내용없음.
Claims (14)
- 부호화된 데이터를 복호화하는 장치에 있어서,행과 열로 배열된 상기 부호화 데이터를 저장하는 저장 수단,상기 각 행과 열을 따라 저장된 데이터에 에러 정정 동작을 실행하는 에러 정정 수단,상기 각 행을 따른 상기 에러 정정 동작의 결과를 근거로, 각 행에 에러가 있는가 여부를 나타내는 제 1 플래그를 발생하는 제 1 플래그 발생 수단, 및상기 각 열을 따른 상기 에러 정정 동작의 결과를 근거로, 각 열에 에러가 있는가 여부를 나타내는 제 2 플래그를 발생하는 제 2 플래그 발생 수단을 구비하는 것을 특징으로 하는 장치.
- 제 1항에 있어서,상기 에러 정정 수단이 제 2 에러 정정 동작을 실행하면 상기 제 1 플래그 발생 수단이 상기 제 1 플래그를 두 번째로 발생하고, 두번째로 발생된 상기 제 1 플래그는 상기 각 행을 따른 상기 제 2 에러 정정 동작의 결과를 근거로 하는 것을 특징으로 하는 장치
- 제 1항에 있어서,상기 제 1 및 제 2 플래그를 근거로 보간 플래그를 발생하는 보간 플래그 발생 수단을 더 구비하는 것을 특징으로 하는 장치.
- 제 3항에 있어서,상기 보간 플래그 발생 수단이 상기 부호화 데이터를 형성하는 각 소정의 데이터 단위에 대해 상기 보간 플래그를 발생하는 것을 특징으로 하는 장치.
- 제 3항에 있어서,상기 보간 플래그 발생 수단이 상기 제 1 플래그와 상기 제 2 플래그 사이에서 선택적으로 실행된 논리적 접합 동작(AND) 및 논리적 분리 동작(OR) 중 하나의 함수로 상기 보간 플래그를 선택적으로 발생하는 것을 특징으로 하는 장치.
- 제 3항에 있어서,상기 보간 플래그 발생 수단이 상기 에러 정정 동작의 결과를 근거로 상기 보간 플래그를 발생하는 것을 특징으로 하는 장치
- 제 1항에 있어서,상기 제 1 및 제 제 2 플래그를 저장하는 플래그 저장 수단을 더 구비하는 것을 특징으로 하는 장치
- 부호화된 데이터를 복호화하는 방법에 있어서,행과 열로 배열된 상기 부호화 데이터를 저장하는 단계,상기 각 행과 열을 따라 저장된 데이터에 에러 정정 동작을 실행하는 단계,상기 각 행을 따른 상기 에러 정정 동작의 결과를 근거로, 각 행에 에러가 있는가 여부를 나타내는 제 1 플래그를 발생하는 단계, 및상기 각 열을 따른 상기 에러 정정 동작의 결과를 근거로, 각 열에 에러가 있는가 여부를 나타내는 제 2 플래그를 발생하는 단계를 구비하는 것을 특징으로 하는 방법.
- 제 8항에 있어서,제 2 에러 정정 동작이 실행되면 상기 제 1 플래그를 두 번째로 발생하는 단계를 더 구비하고, 두 번째로 발생된 상기 제 1 플래그는 상기 각 행을 따른 상기 제 2 에러 정정 동작의 결과를 근거로 하는것을 특징으로 하는 방법.
- 제 8항에 있어서,상기 제 1 및 제 2 플래그를 근거로 보간 플래그를 발생하는 단계를 더 구비하는 것을 특징으로 하는 방법.
- 제 10항에 있어서,상기 보간 플래그가 상기 부호화 데이터의 각 소정의 데이터 단위에 대해 발생되는 것을 특징으로 하는 방법.
- 제 10항에 있어서,상기 보간 플래그가 상기 제 1 플래그와 상기 제 2 플래그 사이에서 선택적으로 실행된 논리적 접합 동작(AND) 및 논리적 분리 동작(OR) 중 하나의 함수로 선택적 발생되는 것을 특징으로 하는 방법.
- 제 10항에 있어서,상기 보간 플래그가 상기 에러 정정 동작의 결과를 근거로 발생되는 것을 특징으로 하는 방법.
- 제 8항에 있어서,상기 제 1 및 제 2플래그를 플래그 저장 수단에 저장하는 단계를 더 구비하는 것을 특징으로 하는 방법.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP96-213492 | 1996-08-13 | ||
JP21349296A JP3562544B2 (ja) | 1996-08-13 | 1996-08-13 | 復号化装置および復号化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR19980018647A true KR19980018647A (ko) | 1998-06-05 |
Family
ID=16640104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1019970038619A KR19980018647A (ko) | 1996-08-13 | 1997-08-13 | 데이터 행과 열에서 복호화 에러를 나타내는 플래그를 이용해 데이터를 복호화하는 장치 및 방법 |
Country Status (5)
Country | Link |
---|---|
US (1) | US5886654A (ko) |
EP (1) | EP0825603A3 (ko) |
JP (1) | JP3562544B2 (ko) |
KR (1) | KR19980018647A (ko) |
CN (1) | CN1127086C (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100482939B1 (ko) * | 2000-12-12 | 2005-04-15 | 가부시끼가이샤 도시바 | 오류 정정 부호를 이용한 데이터 처리 방법 및 그 방법을이용한 장치 |
KR100620184B1 (ko) * | 1999-02-04 | 2006-09-01 | 엘지전자 주식회사 | 재생데이터의 오류정정방법 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100244190B1 (ko) * | 1997-08-29 | 2000-02-01 | 구자홍 | 동기신호 검출회로 |
US6332206B1 (en) * | 1998-02-25 | 2001-12-18 | Matsushita Electrical Industrial Co., Ltd. | High-speed error correcting apparatus with efficient data transfer |
JP3945602B2 (ja) * | 1998-04-14 | 2007-07-18 | 富士通株式会社 | 訂正検査方法及び訂正検査装置 |
JP2000040079A (ja) * | 1998-07-24 | 2000-02-08 | Fujitsu Ltd | 並列データ分析装置 |
JP3214478B2 (ja) | 1998-12-28 | 2001-10-02 | 日本電気株式会社 | 誤り訂正復号装置 |
KR100335438B1 (ko) * | 1999-03-22 | 2002-05-04 | 윤종용 | 고밀도 디스크를 위한 에러 정정 코드 블록 구조와 그 에러 정정방법 |
KR100856399B1 (ko) * | 2002-01-23 | 2008-09-04 | 삼성전자주식회사 | 디코딩 방법 및 그 장치 |
US7177658B2 (en) | 2002-05-06 | 2007-02-13 | Qualcomm, Incorporated | Multi-media broadcast and multicast service (MBMS) in a wireless communications system |
EP1590808A4 (en) * | 2003-01-21 | 2008-07-02 | Lg Electronics Inc | METHOD FOR ENCODING AND DECODING AN ERROR CORRECTION BLOCK |
JP2004253099A (ja) | 2003-02-21 | 2004-09-09 | Toshiba Corp | シンクフレーム構造、情報記憶媒体、情報記録方法、情報再生方法、および情報再生装置 |
US8804761B2 (en) * | 2003-08-21 | 2014-08-12 | Qualcomm Incorporated | Methods for seamless delivery of broadcast and multicast content across cell borders and/or between different transmission schemes and related apparatus |
US7318187B2 (en) * | 2003-08-21 | 2008-01-08 | Qualcomm Incorporated | Outer coding methods for broadcast/multicast content and related apparatus |
US8694869B2 (en) * | 2003-08-21 | 2014-04-08 | QUALCIMM Incorporated | Methods for forward error correction coding above a radio link control layer and related apparatus |
CN100359587C (zh) * | 2003-12-10 | 2008-01-02 | 联发科技股份有限公司 | 用于单晶片电子电路的影音编解码方法 |
JP2006004560A (ja) * | 2004-06-18 | 2006-01-05 | Elpida Memory Inc | 半導体記憶装置及びその誤り訂正方法 |
US20100169742A1 (en) * | 2008-12-29 | 2010-07-01 | Texas Instruments Incorporated | Flash memory soft error recovery |
CN101667837B (zh) * | 2009-08-21 | 2013-04-10 | 苏州国芯科技有限公司 | 一种基于理德-所罗门码的ecc控制器 |
JPWO2011142133A1 (ja) | 2010-05-11 | 2013-07-22 | エイシップ・ソリューションズ株式会社 | 誤り訂正符号処理方法及びその装置 |
GB2526943B (en) * | 2011-12-20 | 2016-04-27 | Imagination Tech Ltd | Method and apparatus for compressing and decompressing data |
US10114696B2 (en) | 2016-07-14 | 2018-10-30 | International Business Machines Corporation | Tracking data access in a dispersed storage network |
US11057060B1 (en) * | 2020-03-23 | 2021-07-06 | Sage Microelectronics Corporation | Method and apparatus for matrix flipping error correction |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3486471T2 (de) * | 1983-12-20 | 1999-09-02 | Sony Corp. | Verfahren und Vorrichtung zur Dekodierung eines Fehler-Korrektur-Code |
GB2156555B (en) * | 1984-03-24 | 1988-03-09 | Philips Nv | Error correction of data symbols |
JP2970994B2 (ja) * | 1994-05-25 | 1999-11-02 | 三洋電機株式会社 | 誤り訂正復号回路 |
-
1996
- 1996-08-13 JP JP21349296A patent/JP3562544B2/ja not_active Expired - Fee Related
-
1997
- 1997-07-31 US US08/901,290 patent/US5886654A/en not_active Expired - Fee Related
- 1997-08-04 EP EP97305878A patent/EP0825603A3/en not_active Withdrawn
- 1997-08-13 KR KR1019970038619A patent/KR19980018647A/ko not_active Application Discontinuation
- 1997-08-13 CN CN97118563A patent/CN1127086C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100620184B1 (ko) * | 1999-02-04 | 2006-09-01 | 엘지전자 주식회사 | 재생데이터의 오류정정방법 |
KR100482939B1 (ko) * | 2000-12-12 | 2005-04-15 | 가부시끼가이샤 도시바 | 오류 정정 부호를 이용한 데이터 처리 방법 및 그 방법을이용한 장치 |
Also Published As
Publication number | Publication date |
---|---|
CN1175771A (zh) | 1998-03-11 |
US5886654A (en) | 1999-03-23 |
JPH1055630A (ja) | 1998-02-24 |
EP0825603A2 (en) | 1998-02-25 |
CN1127086C (zh) | 2003-11-05 |
EP0825603A3 (en) | 1999-03-17 |
JP3562544B2 (ja) | 2004-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5886654A (en) | Apparatus and method for decoding data using flags to indicate decoding errors in data rows and columns | |
JP3305966B2 (ja) | データ復号装置及びその方法並びにデータ再生装置 | |
KR100319990B1 (ko) | 데이타재생방법및데이타재생장치 | |
KR100496211B1 (ko) | 데이터복호장치및그방법및데이터재생장치 | |
EP0785551A2 (en) | Error-correcting code system | |
JP2005229395A (ja) | 再生装置 | |
US7343544B2 (en) | Optical disk playback apparatus and data playback method therefor | |
US6804182B2 (en) | Optical disc reproducing apparatus and semiconductor integrated circuit and therefor | |
JP4140344B2 (ja) | 復号化装置及びコンピュータプログラム | |
JP3555664B2 (ja) | データ再生方法及びデータ再生装置 | |
JP3564910B2 (ja) | データ再生装置及びデータ再生方法 | |
KR100223821B1 (ko) | 디지탈 비데오 디스크 시스템의 에러정정 회로 및 방법 | |
JP3259359B2 (ja) | データ再生装置及び方法 | |
JP3672139B2 (ja) | データ復号装置及びその方法並びにデータ再生装置 | |
JP3759992B2 (ja) | 記録情報再生装置 | |
KR100315768B1 (ko) | 고속의 데이타재생을 위한 메모리액세스방법 및 이를 채용한dvd시스템 | |
JP3619151B2 (ja) | 誤り訂正符号を用いたデータ処理方法とその方法を用いた装置 | |
JP3700885B2 (ja) | データ復号装置及びその方法並びにデータ再生装置 | |
JP2004152337A (ja) | 記録再生装置及びコンピュータプログラム並びに送受信システム | |
KR100257622B1 (ko) | 데이터복조방법 | |
JP2004288310A (ja) | ディジタルデータ記録再生装置及び再生方法 | |
JP2000057712A (ja) | データ再生装置およびこれを具備した電子機器 | |
JP2004199869A (ja) | データ再生方法及びデータ再生装置 | |
KR19990070405A (ko) | 에러 정정 장치 및 에러 정정 방법 | |
JP2005158103A (ja) | データ再生装置およびデータ再生方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |