KR100449931B1 - 부호화데이터를재생및복호화하는장치및방법 - Google Patents

부호화데이터를재생및복호화하는장치및방법 Download PDF

Info

Publication number
KR100449931B1
KR100449931B1 KR1019960081375A KR19960081375A KR100449931B1 KR 100449931 B1 KR100449931 B1 KR 100449931B1 KR 1019960081375 A KR1019960081375 A KR 1019960081375A KR 19960081375 A KR19960081375 A KR 19960081375A KR 100449931 B1 KR100449931 B1 KR 100449931B1
Authority
KR
South Korea
Prior art keywords
data
error correction
errors
stored
decoding
Prior art date
Application number
KR1019960081375A
Other languages
English (en)
Other versions
KR970055617A (ko
Inventor
다카히로 이치카와
Original Assignee
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR970055617A publication Critical patent/KR970055617A/ko
Application granted granted Critical
Publication of KR100449931B1 publication Critical patent/KR100449931B1/ko

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/87Regeneration of colour television signals
    • H04N9/877Regeneration of colour television signals by assembling picture element blocks in an intermediate memory
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1806Pulse code modulation systems for audio signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/78Television signal recording using magnetic recording
    • H04N5/782Television signal recording using magnetic recording on tape
    • H04N5/783Adaptations for reproducing at a rate different from the recording rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/84Television signal recording using optical recording
    • H04N5/85Television signal recording using optical recording on discs or drums
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components
    • H04N9/8042Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components involving data reduction

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Television Signal Processing For Recording (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

부호화 데이터, 예를 들면 C1/C2 콘볼루션 리드-솔로몬형(convolutional Reed-Solomon type) 데이터가 에러 정정 데이터로서 부가된 부호화 디지털 비디오 신호를 복호화하는 디지털 신호 복호화기가 제공된다. 복호화기는 부호화 데이터를 메모리에 저장하고, 저장된 부호화 데이터에서의 정정 가능한 에러들을 검출하고, 부호화 데이터에서 검출된 에러들의 위치들을 확인하고, 또한 그 에러에 대응하는 에러 정정 패턴들을 공급한다. 제 2 메모리는 에러 정정 패턴들뿐만 아니라 확인된 에러들의 위치들을 저장하며, 에러의 위치들에 대응하는 부호화 데이터는 제 1 메모리로부터 판독되고 정정된 복호화 데이터를 만들도록 제 2 메모리에 저장된 에러 정정 패턴들을 사용하여 복호화된다. 상기의 복호화기를 구체화한 디지털 신호 재생 장치가 또한 개시된다.

Description

부호화 데이터를 재생 및 복호화하는 장치 및 방법
본 발명은 부호화 디지털 신호(coded digital signal)를 복호화하는 장치 및 방법에 관한 것으로, 특히, 기록 매체, 예를 들면 컴팩트 디스크로부터 재생된, 에러 정정 데이터(error correction data)가 부가된 부호화 디지털 비디오 신호를 복호화하고 에러 정정(error correcting)하는 장치 및 방법에 관한 것이다.
알려진 바와 같이, 동화상들(moving pictures), 즉 움직임 영상(motionvideo)은 다양한 비디오 표준, 예를 들면 MPEG(Moving Pictures Expert Group) 표준에 따라 기록 매체상에 가변 레이트(variable rate)로 디지털화, 부호화, 및 기록된다. MPEG 표준은 3가지 유형의 부호화 화상들, 즉 인트라 부호화된(intra-encoded) 화상들(I 화상들 또는 I-프레임들), 전방 예측 부호화 화상들(P 화상들 또는 P-프레임들) 및 양방향 예측 부호화 화상들(B 화상들 또는 B-프레임들)을 갖는다. 이러한 3가지 유형의 화상들의 조합은 화상들의 그룹(group of pictures) 또는 GOP로 알려진 것을 형성한다. MPEG 표준은 또한 일반적으로 오디오(예를 들면, 음성) 데이터에 적용되지만, 음성 데이터를 디지털화하고 압축 부호화(compression-encode)하는 데에는 또한 다른 형태의 부호화, 예를 들면 ATAC(Additive Transform Acoustic Coding)이 사용된다.
먼저, 도1을 참고하면, 컴팩트 디스크로부터 가변 레이트로 데이터를 재생하는 데이터 재생 장치(1)가 도시된다. 데이터 재생 장치(1)는 종래 기술에서 알려진 방법으로 광학 디스크 상에 기록된 데이터를 재생하도록 광학 디스크(2)상에 레이저빔을 제공하는 픽업 장치(3;pickup device)를 포함한다. 픽업 장치(3)는 시스템 제어기(4)에 의해 제어되는 복조 시스템(5)내에 포함된 복조 회로(6)에 재생 신호(S1)를 공급한다. 재생 신호(S1)는 복조되어 섹터(sector) 검출 회로(7)를 통해 ECC(error correction code) 회로(8)에 공급되며, ECC 회로(8)는 상기 공급된 신호에서 에러들을 검출하고 정정한다. 섹터 검출 회로(7)는 재생된 신호에서 새로운 섹터를 검출하지만, 섹터 번호나 어드레스가 검출되지 않으면, 섹터 번호 에러 신호가 트랙 점프(track jump) 결정 회로(9)에 공급된다. 유사하게, ECC 회로(8)가신호에서 정정 불가능한 에러들을 검출하면, 에러 신호는 트랙 점프 결정 회로(9)에 공급된다.
ECC 회로(8)는 상기 공급된 데이터 내의 에러들을 논의될 방법으로 검출 및 정정하고, 에러 정정된 데이터를 링 버퍼 메모리(10;ring buffer memory)에 공급하며, 이 링 버퍼 메모리는 링 버퍼 제어 회로(11)로부터 공급된 기록 포인터(WP; write pointer)에 따라 그 안의 어드레스들에 데이터를 저장한다. 메모리(10)는 또한 제어 회로(11)로부터 공급된 판독 포인터(RP; read pointer)에 따라 어드레스들로부터 그 안에 저장된 데이터를 판독한다. 알려진 바와 같이, 제어 회로(11)는 섹터 검출 회로(7)로부터 공급된 섹터 신호로부터 기록 어드레스들(기록 포인터 WP)을 발생하고, 데이터 분리 회로(13)로부터 공급된 코드 요청 신호(R10)와 시스템 제어기(4)에 의해 공급된 제어 신호들에 응답하여 판독 어드레스들(판독 포인터 RP)을 발생한다.
링 버퍼 메모리(10)는 그 안에 저장된 데이터를 데이터 분리 회로(13)내의 헤더 분리 회로(14)에 공급하며, 상기 헤더 분리 회로(14)는 거기에 공급된 데이터의 각각의 팩으로부터 팩 헤더를 분리하고, 또한, 상기 데이터 내에 포함된 각각의 패킷으로부터 패킷 헤더를 분리하며, 상기 분리된 헤더들은 분리 회로 제어기(15)에 공급된다. 회로 제어기(15)는 스위처(switcher) 제어 신호를 스위칭 회로(16)에 공급하여, 입력 단자(G)에 공급된 비디오 데이터가 단자(H1)를 통해 비디오 코드 버퍼(17)에 공급되도록 하고, 입력 단자(G)에 공급된 오디오 데이터가 단자(H2)를 통해 오디오 코드 버퍼(19)에 공급되도록 한다. 상기 헤더들에 포함된 스트림 식별정보(stream identification information; 스트림 ID)는 상기 패킷들에 포함된 데이터 유형(예를 들면, 비디오나 오디오)을 식별한다.
비디오 코드 버퍼(17)는 공급된 비디오 데이터를 저장하고, 버퍼(17)에 저장된 데이터량에 따라 코드 요청 신호(R1)를 발생하여 데이터 분리 회로(13)에 공급한다. 비디오 코드 버퍼(17)는 비디오 복호화기(18)로부터 공급된 코드 요청 신호(R1')에 응답하여 저장된 데이터를 비디오 복호화기(18)에 출력한다. 비디오 복호화기(18)는 디지털 비디오 신호를 생성하기 위해 판독된 비디오 데이터를 복호화하고, 디지털 비디오 신호를 출력으로서 출력 단자(OUT1)에 공급한다.
유사하게, 오디오 코드 버퍼(19)는 공급된 오디오 데이터를 저장하고, 버퍼(19)에 저장된 데이터량에 따라 코드 요청 신호(R2)를 발생하여 데이터 분리 회로(13)에 공급한다. 오디오 코드 버퍼(19)는 오디오 복호화기(20)로부터 공급된 코드 요청 신호(R2')에 응답하여 저장 데이터를 오디오 복호화기(20)에 출력한다. 오디오 복호화기(20)는 디지털 오디오 신호를 생성하기 위해 판독된 오디오 데이터를 복호화하고, 디지털 오디오 신호를 출력으로서 출력 단자(OUT2)에 공급한다.
상술된 바와 같이, 복조 시스템(5)은 복조 회로(6)를 사용하여 재생 신호(S1)를 복조화한다. 복조 회로(6)는 EFM+ 동기화 패턴(예를 들면, 8, 16 변환)을 검출하기 위해, 알려진 RF 처리를 사용하여 픽업 장치(3)로부터 공급 신호(S1)를 이진 신호(binary signal)로 변환한다. 일정 선속도(CLV; constant linear velocity) 방법을 근거로 한 서보 메커니즘(servomechanism)은 검출된 동기화 패턴을 근거로 신호(S1)에 대해 동작한다. 이때, 섹터 검출 회로(7)가 신호(S1)에서EFM+ 싱크 헤더(sync header)를 검출한 후, PLL(위상 동기 루프;Phase Locked Loop) 서보 메커니즘은 싱크 헤더에 대해 동작하고, 몇몇 싱크 헤더들이 연속적으로 검출 회로(7)에 의해 검출될 때, 검출 회로(7)로부터 공급된 데이터(S2)는 ECC 회로(8)에서 디인터리빙(deinterleaving)된다.
도2를 참조하면, 4개의 랜덤 액세스 메모리들, 즉 RAM(24), RAM(26), RAM(28), 및 RAM(30)과 3개의 에러 정정 코드(ECC) 복호화기들(25,27,29)을 포함하는 ECC 회로(8)의 블록도가 도시된다. 논의될 바와 같이, 복호화기들(25,27,29)은, 3개의 에러 검출/정정 시퀀스들(sequences) 데이터 C11(또한 제 1 C1 시퀀스로 알려진), 데이터 C2, 및 C1/C2 콘볼루션 리드-솔로몬 코드들(convolutional Reed-Solmon codes, 즉, CIRC 플러스 코드들)을 포함하는 데이터 C12(또한 제 2 C1 시퀀스로 알려진)를 사용하여, 데이터(S2)내의 에러들을 검출 및 정정한다. 상기 데이터 시퀀스들은 EFM+ 복조된 데이터(S2)에 포함된다. 데이터(S2)는, (여기서는 "EFM+ 기록"이라함) 00, 01, ..., A8, 및 A9 의 어드레스 순서로 그 안에 저장하는 RAM(24)에 공급되고, 두 프레임의 S2 데이터가 RAM(24)에 저장된 후, RAM(24)은 도3에 도시된 바와 같이, 데이터의 C1 시퀀스를 디인터리빙하도록, (여기서는 "C1 판독"이라함) 00', 02', ..., A8', 01, 03, ..., A9의 어드레스 순서로 먼저 저장된 데이터 프레임을 복호화기(25)에 공급한다. 복호화기(25)는, 도4에 도시된 바와 같이, 판독된 데이터를 수신하여, 데이터에서의 에러 위치들 및 정정 패턴들을 식별하고, RAM(24)으로부터 에러들이 있는 데이터를 판독(즉, C1 판독)하고, 판독된 데이터를 정정 패턴들에 배타적 논리합 처리를 하고, 또한 결과적인 데이터를RAM(26)에 기록(여기서는 "C1 기록"이라함)함으로써, S2 데이터 내의 에러들을 정정한다. 복호화기(25)는 C2 코드 시퀀스 길이에 걸쳐 데이터의 C1시퀀스를 복호화한다.(그래서, S2 데이터를 에러들 검출/정정한다.)
C1 시퀀스 데이터가 (전체의 C2 코드 시퀀스 길이에 걸쳐) 복호화 후에, C2 데이터 시퀀스는 "ECC" 복호화된다. RAM(26)에 저장된 데이터는 00', 01', 02', 03', ..., A9'의 어드레스 순서로 판독되고 (여기서는 "C2 판독"이라함), 판독된 데이터는 순차적으로 판독된 C2 데이터 시퀀스를 복호화하는 복호화기(27)에 공급된다. 복호화기(27)는 정정 불가능한 데이터의 각 프레임에 대해 "정정 불가능한 에러" 플래그를 발생하고, 정정 불가능한 데이터가 데이터 스트림으로부터 삭제(즉, 제거)될 수 있도록 복호화 S2 데이터의 공급과 동시에 정정 불가능한 에러 플래그를 복호화기(29)에 공급하다. 복호화기(27)에서의 에러 검출/정정은 복호화기(25)에서와 유사하고, 데이터가 정정 불가능할 때는 C1 정정 불가능한 에러 플래그가 발생된다.
복호화기(27)가 C2 데이터를 사용하여 데이터를 복호화하고, 도5에 도시된 바와 같이 복호화 데이터는 RAM(28)에 저장된다(여기서는 "C2 기록"이라함). 이어서, RAM(28)은 00', 01, 02, 03, ..., A9의 어드레스 순서로 그에 저장된 C12 데이터 시퀀스를 포함하는 데이터를 판독하고 (여기서는 "C12 판독"이라함), 판독된 데이터를 복호화기(29)에 공급한다. C2 정정 불가능한 에러 플래그와 유사하게, C12 정정 불가능한 에러 플래그가 발생되고 C12 데이터 시퀀스를 근거로 정정 불가능한 에러들을 삭제(즉, 제거)하도록 사용된다. 복호화기(29)는 데이터에서의 에러들을검출/정정하고(C12 데이터를 사용하여), 도6에 도시된 바와 같이 00, 01, 02, 03, ..., A9의 순서로 RAM(30)에 데이터를 저장한다(여기서는 "C12 기록"이라함). 상술된 바와 같이, RAM(30)에 저장된 데이터는 00, 01, 02, 03, ..., A9의 순서로 판독되고 (여기서는 "OUT 판독"이라함), 디스크램블 처리(descramble)되고, 또한 링 버퍼 메모리(10)로 공급된다.
데이터가 저장된 저장 어드레스(RA)는 도7에 도시된 바와 같이 RAM(24), (26), (28), 및 (30)의 데이터 어드레스를 근거로 한 "C1 코드 유닛"에서의 프레임 번호(Fn)와 C1 데이터의 방향에서의 데이터 순서(Dn)를 사용하여 다음의 식으로부터 발생된다. 이후 식에서의 모든 숫자는 16진법 표시이다.
Dn: 데이터 No. (00-A9)
Fn: 프레임 No. (00-B9)
RA: RAM 어드레스 (0000-7FFF)
상술된 바와 같이, CIRC 플러스 코드는 각각 C11, C2, 및 C12 데이터 시퀀스를 복호화하는 복호화기들(25,27,29)을 사용하여 에러 검출/정정 복호화되고, 결과의 복호화 데이터는 RAM들(26,28,30)에 재순서화된다. 그러나, 에러 정정된 데이터를 출력하는 타이밍이 고정되지 않으므로, 데이터 전달과 에러 정정을 위해서는 2개의 카운터가 제공될 필요가 있어 불필요하게 복잡한 구조를 유발시킨다. 더욱이, 3개의 분리된 메모리 장치, 즉 RAM들(24,26,28)을 사용하여 C11, C2, 및 C12 데이터 시퀀스를 분리하여 복호화하는 것은 바람직하지 않게 큰 메모리 저장 용량을 필요로 한다.
도8A를 참조하면, 몇몇 다른 신호들에 대한 타이밍도가 도시된다. 판독 프레임 클럭의 한 클럭 주기(도8A에서 신호 RFCK)내에 C11 데이터의 프레임을 전달하기 위해 단일 메모리 장치가 사용되면, 데이터를 전달하고 에러들을 정정하는 개별적인 기능을 실행하도록 2개의 분리된 프레임 카운터가 요청된다. 더욱이, 도8B에 도시된 바와 같이, 클럭이 데이터 전달 동안에만 출력되더라도 데이터가 전달될 때와 에러들이 정정될 때 분리된 프레임 카운터가 또한 요청된다.
본 발명의 목적
그러므로, 본 발명의 목적은 상술된 장치들의 단점들을 극복한 부호화 디지털 신호를 복호화하는 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은 효율적이고 간략한 방법으로 에러 검출/정정 데이터가 부가된 부호화 디지털 비디오 신호를 복호화하는 장치 및 방법을 제공하는 것이다.
본 발명의 또 다른 목적은, 재생된 디지털 비디오 신호가 비교적 적은 양의 랜덤 액세스 저장 메모리를 사용하여 에러 정정되는, 에러 검출/정정 데이터가 부가된 부호화 디지털 비디오 신호를 복호화하는 장치 및 대응 방법을 제공하는 것이다.
본 발명의 다양한 다른 목적들, 이점들, 및 특징들은 종래 기술에 숙련된 자에게 명백해 질 것이며, 새로운 특징들은 첨부된 청구항에서 특히 규정될 것이다.
본 발명의 일 실시예에 따라, 에러 정정 데이터(예를 들면, C1/C2콘볼루션 리드-솔로몬 코드)가 부가된 부호화 데이터를 제 1 메모리에 저장하고, 제 1 메모리에 저장된 부호화 데이터에서의 에러들(즉, 정정 가능한 에러)을 검출하고, 부호화 데이터에서 검출된 에러들의 위치들을 확인하고, 그 에러들에 대응하는 에러 정정 패턴들을 공급하고, 공급된 에러 정정 패턴들뿐만 아니라 에러들의 확인된 위치들을 제 2 메모리에 저장하고, 제 2 메모리에 저장된 에러들의 위치들에 대응하는 부호화 데이터를 제 1 메모리로부터 판독하고, 또한 정정된 복호화 데이터를 만들도록 제 2 메모리에 저장된 에러 정정 패턴들을 사용하여 에러들의 위치들에 대응하는 판독된 부호화 데이터를 복호화하는 장치 및 방법이 제공된다.
본 발명의 한 측면에 따르면, 그에 에러 정정 데이터가 부가된 부호화 데이터는 에러 정정 코드의 C11 시퀀스, 에러 정정 코드의 C2 시퀀스, 및 에러 정정 코드의 C12 시퀀스를 포함하고, 에러 정정 코드의 C11, C2, 및 C12 시퀀스는 판독된 에러 정정 코드의 C11, C2, 및 C12 시퀀스가 복호화되기 전에 순차적으로 제1 메모리로부터 판독된다.
본 발명의 또 다른 측면에 따르면, 데이터의 각 행들에서 검출된 에러는 내부 코드들을 사용하여 연속적으로 복호화되고, 데이터의 각 시퀀스들에서 검출된 에러들은 외부 코드들을 사용하여 연속적으로 복호화되고, 데이터의 행들은 내부 코드를 사용하여 다시 에러 정정된다.
본 발명의 또 다른 실시예에 따르면, 에러 정정 데이터가 부가된 부호화 비디오 데이터를 기록 매체로부터 재생하고, 에러 정정 데이터가 부가된 부호화 데이터를 제 1 메모리에 저장하고, 제 1 메모리에 저장된 부호화 데이터 내의 에러들(즉, 정정 가능한 에러)을 검출하고, 부호화 데이터에서 검출된 에러들의 위치들을 확인하고, 그 에러들에 대응하는 에러 정정 패턴들을 공급하고, 공급된 에러 정정 패턴들뿐만 아니라 에러들의 확인된 위치들을 제 2 메모리에 저장하고, 제 2 메모리에 저장된 에러들의 위치들에 대응하는 부호화 데이터를 제 1 메모리로부터 판독하고, 정정된 복호화 데이터를 만들도록 제 2 메모리에 저장된 에러 정정 패턴들을 사용하여 에러들의 위치들에 대응하는 판독된 부호화 데이터를 복호화하는 장치 및 방법이 제공된다.
도1은 컴팩트 디스크로부터 다양한 비율로 데이트를 재생하는 장치의 블록도.
도2는 도1에 도시된 ECC 회로(8)의 블록도.
도3은 ECC 회로(8)의 C1 판독 동작을 설명하는데 사용되는 도표.
도4는 ECC 회로(8)의 C1 기록 및 C2 판독 동작을 설명하는데 사용되는 도표.
도5는 ECC 회로(8)의 C12 판독 및 C2 기록 동작을 설명하는데 사용되는 도표.
도6은 ECC 회로(8)의 C12 기록 및 OUT 판독 동작을 설명하는데 사용되는 도표.
도7은 도2에서 RAM(30)의 어드레스 지정을 이해하는데 사용되는 도표.
도8A 및 도8B는 도2에 도시된 ECC 회로의 동작과 다양한 신호의 타이밍도.
도9는 본 발명의 복호화 장치를 구체화한 컴팩트 디스크로부터 다양한 비율로 데이터를 재생하는 장치의 블록도.
도10은 본 발명에 따른 도9에 도시된 ECC 회로(50)의 블록도.
도11은 본 발명에 따른 도9에 도시된 복조 시스템(35)의 블록도.
도12는 도10에 도시된 RAM(51)의 어드레스 지정을 설명하는데 사용되는 도표.
도13은 본 발명에 따른 도10에 도시된 ECC 회로(50)의 다양한 동작을 이해하는데 사용되는 도표.
도14는 본 발명에 따른 도11에 도시된 회로(35)와 도10에 도시된 ECC 회로(50)의 복호화 동작과 다양한 신호의 타이밍도.
도15는 본 발명에 따른 전달 및 정정 동작과 다양한 신호의 타이밍도.
도16은 본 발명의 에러 정정 처리 과정 동안 다양한 신호의 타이밍도.
도17은 본 발명의 에러 정정 처리 과정 동안 도10에 도시된 RAM(51)의 메모리 판독 및 기록수를 도시한 도면.
도18은 RAM(51)의 기록/판독 액세스에 대한 우선 레벨(priority level)을 도시한 다양한 신호의 타이밍도.
도19는 본 발명의 또 다른 실시예에 따른 섹터 데이터의 데이터 구조를 설명하는 도면.
도20은 본 발명에 따른 ECC 블럭의 데이터 구조를 설명하는 도면.
도21은 외부 코드(PO) 패리티 데이터가 섹터 데이터로 인터리빙되는 방법을 설명하는 도면.
도22는 변조되지 않은 데이터 중 32 Kbyte 데이터 블럭의 데이터 구조를 설명하는 도면.
도23은 본 발명에 따른 복조 회로의 블록도.
도24는 변조되지 않은 물리적인 섹터의 데이터 구조를 설명하는 도면.
도25는 각 데이터 섹터의 데이터 구조를 설명하는 도면.
도26은 본 발명의 데이터 저장 동작을 설명하는 도면.
도27A 내지 도27F는 본 발명에 따른 EFM 복조 데이터의 기록 동작 동안 다양한 신호의 파형도.
도28은 본 발명의 "락(lock)" 동작의 흐름도.
도29는 본 발명의 SCSY 신호 발생 동작의 흐름도.
도30은 본 발명의 main-FMSY 신호 발생 동작의 흐름도.
도31A 내지 도31H는 본 발명의 블럭 검출 동작의 시작 동안 신호의 파형도.
도32A 내지 도32H는 본 발명의 블럭 검출 동작의 시작 이후 신호의 파형도.
도33A 내지 도33F는 본 발명의 "SUE" 전달 동작 동안 신호의 파형도.
도34는 섹터 정보의 데이터 구조를 도시하는 도면.
도35는 본 발명에 따른 IEC 연속성 검출 및 결정 동작의 흐름도.
도36은 본 발명에 따른 ID 연속성 결정 동작의 흐름도.
도37은 SALK 발생 동작의 흐름도.
도38A 내지 도38D는 본 발명의 에러 정정 동작 동안 신호의 파형도.
도39A 내지 도39I는 본 발명의 에러 정정 동작 동안 또 다른 신호의 파형도.
도40A 내지 도40E는 본 발명의 ECC 처리 제어 동작의 타이밍도.
도41A 내지 도41E는 본 발명의 ECC 처리 제어 동작의 또 다른 타이밍도.
도42A 내지 도42E는 본 발명의 ECC 처리 제어 동작의 부가적인 타이밍도.
도43은 본 발명의 RAM 제어기 전달 동작의 흐름도.
도44는 본 발명에 따른 에러 정정 회로의 블록도.
도45는 본 발명에 따른 에러 정정 동작의 결과를 도시한 도면.
도46A 내지 도46G는 본 발명의 버스 조정 동작의 신호 파형도.
도47은 본 발명의 블럭 정정 동작 동안 RAM 액세스의 수를 도시한 도면.
도48A 내지 도48F는 본 발명의 에러 정정 결과 출력 동작 동안 신호의 파형도.
<도면의 주요부분에 대한 부호의 설명>
6 : 복조 회로
7 : 섹터 검출 회로
9 : 트랙 점프 결정 회로
10 : 메모리
11 : 제어 회로
도면 중 도9를 참조하면, 본 발명의 복호화 장치를 구체화한 컴팩트 디스크로부터 가변 레이트로 데이터를 재생하는 장치(이후 데이터 재생 장치(40)라 함)의 블록도가 도시된다. 도1에 도시된 데이터 재생 장치(1)와 유사하게, 데이터 재생 장치(40)는 종래 기술에서 알려진 방법으로 기록된 데이터를 재생하도록 광학 디스크(2)상에 레이저빔을 제공하는 픽업 장치(3)를 포함한다. 픽업 장치(3)는 시스템 제어기(4)에 의해 제어되는 복조 시스템(35)에 포함된 복조 회로(6)에 재생 신호(S1)를 공급한다. 재생 신호(S1)는 복조되어 각 섹터로부터 어드레스를 검출하고 그 어드레스를 링 버퍼 제어 회로(11)에 공급하고, 신호에 포함된 데이터를 ECC(error correction code) 회로(50)에 공급하는 섹터 검출 회로(7)로 공급된다. ECC 회로(50)는 논의된 방법으로 본 발명에 따라 에러들을 검출하고 정정한다. 섹터 검출 회로(7)는 재생된 신호에서 새로운 섹터를 검출하고, 섹터 번호 또는 어드레스가 검출되지 않거나 연속되는 검출이 발생되지 않으면(논의될), 링 버퍼 제어 회로(11)를 통해 트랙 점프 결정 회로(9)에 섹터 번호 에러 신호가 공급된다. 유사하게, ECC 회로(50)가 신호에서 정정 불가능한 에러들을 검출하면(논의될), 시스템 제어기(4)를 통해 트랙 점프 결정 회로(9)에 에러 신호가 공급된다.
ECC 회로(50)는 공급된 데이터에서의 에러들을 검출하고 데이터에 포함된 여분 비트를 사용하여 검출된 에러들을 정정하며, 에러 정정된 데이터는 FIFO(First In First Out)형의 메모리 장치인 링 버퍼 메모리(10)에 공급된다. 메모리(10)에 저장된 데이터는 다중화된 데이터 분리 회로(13)에 공급되고, ECC 회로(50)는 공급된 데이터에서의 섹터 헤더 데이터를 검출하여 섹터 헤더 데이터를 검출 회로(7)를 통해 시스템 제어기(4)에 공급한다. 상술된 바와 같이, ECC 회로(50)가 데이터에서의 에러들을 정정할 수 없으면, 에러 신호는 시스템 제어기(4)에 공급된다.
트랙 점프 결정 회로(9)는 링 버퍼 제어 회로(11)의 출력을 주시하고, 트랙 점프가 요청될 때 회로(9)는 광학 디스크(2)에서 픽업 장치(3)의 재생 위치들의 트랙 점프를 실행하도록 트랙 점프 신호(JP1)를 트래킹 서보 회로(22)에 공급한다. 또한, 섹터 검출 회로(7)가 섹터 번호 에러 신호를 공급할 때나 ECC 회로(50)가 에러 신호를 공급할 때(상술된), 시스템 제어기(4)는 트랙 점프 신호를 트래킹 서보 회로(22)에 공급하도록 트랙 점프 결정 회로(9)를 제어하여 픽업 장치(3)의 재생 위치들의 트랙 점프가 발생되게 한다.
ECC 회로(50)는 공급된 데이터에서의 에러들을 검출하여 정정하고, 링 버퍼제어 회로(11)로부터 공급된 기록 포인터(WP)에 따라 어드레스에 데이터를 저장하는 링 버퍼 메모리(10)에 에러 정정된 데이터를 공급한다. 링 버퍼 메모리(10)는 또한 제어 회로(11)로부터 공급된 판독 포인터(RP)에 따라 어드레스로부터 저장 데이터를 판독한다. 제어 회로(11)는 섹터 검출 회로(7)로부터 공급된 섹터 신호로부터 기록 어드레스(기록 포인터 WP)를 발생하고, 데이터 분리 회로(13)로부터 공급된 코드 요청 신호(R10)와 시스템 제어기(4)에 의해 공급된 제어 신호에 응답하여 판독 어드레스(판독 포인터 RP)를 발생한다.
링 버퍼 메모리(10)는 저장된 데이터를 공급된 데이터의 각 팩으로부터 팩 헤더를 분리하고 또한 데이터에 포함된 각 패킷으로부터 패킷 헤더를 분리하며, 분리된 헤더를 분리 회로 제어기(15)에 공급하는 데이터 분리 회로(13)내의 헤더 분리 회로(14)에 공급한다. 회로 제어기(15)는 스위칭 회로(16)에 스위처 제어 신호를 공급하여, 입력 단자(G)에 공급된 비디오 데이터가 단자(H1)를 통해 비디오 코드 버퍼(17)에 공급되도록 하고, 입력 단자(G)에 공급된 오디오 데이터가 단자(H2)를 통해 오디오 코드 버퍼(19)에 공급되도록 한다. 헤더에 포함된 스트림 식별 정보(스트림 ID)는 패킷에 포함된 데이터 유형(예를 들면, 비디오, 오디오)을 식별한다.
비디오 코드 버퍼(17)는 공급된 비디오 데이터를 저장하고, 버퍼(17)에 저장된 데이터량에 따라 데이터 분리 회로(13)에 코드 요청 신호(R1)를 발생하여 공급한다. 비디오 코드 버퍼(17)는 비디오 복호화기(18)로부터 공급된 코드 요청 신호(R1')에 응답하여 저장된 데이터를 비디오 복호화기(18)에 출력한다. 비디오복호화기(18)는 디지털 비디오 신호를 생성하기 위해 판독된 비디오 데이터를 복호화하고, 디지털 비디오 신호를 출력으로서 출력 단자(OUT1)에 공급한다.
유사하게, 오디오 코드 버퍼(19)는 공급된 오디오 데이터를 저장하고, 버퍼(19)에 저장된 데이터량에 따라 데이터 분리 회로(13)에 코드 요청 신호(R2)를 발생하여 공급한다. 오디오 코드 버퍼(19)는 오디오 복호화기(20)로부터 공급된 코드 요청 신호(R2')에 응답하여 저장된 데이터를 오디오 복호화기(20)에 출력한다. 오디오 복호화기(20)는 디지털 오디오 신호를 생성하기 위해 판독된 오디오 데이터를 복호화하고, 디지털 오디오 신호를 출력으로서 출력 단자(OUT2)에 공급한다.
비디오 복호화기(18)에서 미리 결정된 시간 동안 복호화 데이터량이 예를 들면, 간단한 화면의 데이터 처리를 계속함으로 인해 감소되면, 데이터가 메모리(10)로부터 판독되는 레이트가 감소된다. 이러한 경우가 발생하면, 오버플로우(overflow) 조건이 존재할 수 있는 가능성이 있다. 본 예에서는 트랙 점프 결정 회로(9)가 메모리(10)에 현재 저장된 데이터의 양을 기록 및 판독 포인터(WP, RP)로부터 계산하고, 계산된 양이 미리 결정된 값을 넘으면, 회로(9)는 메모리(10)의 오버플로우를 방지하도록 트래킹 서보 회로(22)에 적절한 트랙 점프 지시를 공급한다.
섹터 검출 회로(7)가 섹터 번호 에러 신호를 공급하거나 ECC 회로(50)가 에러 신호를 공급하면, 트랙 점프 결정 회로(9)는 유사하게 기록 및 판독 포인터(WP) 및 (RP)로부터 링 버퍼 메모리(10)에 남아있는 데이터의 양을 결정하고, 또한 광학 디스크(2)가 현재 트랙 위치들로부터 한 번 완전히 순환하기 전에 회로(13)에 의해메모리(10)에 저장된 데이터의 판독을 완료하도록 요청되는 데이터의 양을 결정한다.
또한, 메모리(10)가 많은 양의 데이터를 포함하면, 데이터가 가능한 최고의 전달 레이트로 판독되더라도 메모리(10)는 오버플로우되는 것이 방지된다. 본 예에서, 트랙 점프 결정 회로(9)는 에러들이 발생된 위치들을 결정하고 데이터를 다시 재생하도록 트래킹 서보 회로(22)에 적절한 트랙 점프 지시를 출력함으로서 정정 불가능한 데이터가 회복 가능한가, 즉 광학 디스크로부터 재판독되는가를 결정한다.
다음에는 도10을 참조하면, 링 버퍼형 메모리인 랜덤 액세스 메모리(RAM;51), 에러 정정 코드(ECC) 복호화기(52), 및 에러 레지스터(53)를 구비하는 ECC 회로(51)의 블록도가 도시된다. 알 수 있는 바와 같이, ECC 복호화기(52)는 데이터에서의 에러들을 검출하여 정정하고, 에러 레지스터(53)는 정정 불가능한 에러 플래그들, 에러 정정 패턴들, 및 에러 위치들을 저장한다. 도11은 랜덤 액세스 메모리 인터페이스(RMIF) 회로(48) 및 CLV 제어 회로(46)와 함께 복조 시스템(35)의 블록도이다. 에러 정정 코드 복호화(또한, 이후 ECC 복호화)는 광학 디스크로부터 판독된 재생 신호(S1)를 RF 및 이진수 처리하는 RF 처리 회로(42)(복조 회로(6)내)와 EFM+ 동기화 패턴을 검출하는 복조 회로(44)를 사용하여 실행된다. EFM+ 동기화 패턴이 검출될 때, CLV 제어 회로(46)는 코스 서보 메커니즘이 동작되도록 한다. 또한, EFM+ 싱크 패턴이 검출될 때, PLL(Phase Locked Loop) 서보 메커니즘은 재생된 신호에 동작하도록 제어된다. 마지막으로, 몇몇 싱크 패턴이 연속적으로 검출될 때, 복조 회로(6)로부터 공급된 복조화 데이터(S2)는 RMIF 회로(48)를 통해 ECC 회로(50)의 RAM(51)에 프레임 단위로 저장된다. RAM(51)에 저장된 데이터는 출력 제어(OCTL) 회로(56)를 통해 메모리(10)에 공급된다. 또한, ECC 회로(50)는 RMIF 회로(48)를 통해 RAM(51)에 기록 어드레스를 발생하여 공급한다. RAM(51)으로부터 판독된 데이터는 RMIF 회로(48)를 통해 ECC 제어부(54) 및 ECC 복호화부(55)(ECC 복호화기(52)에 포함되는)에 공급된다.
검출된 에러들이 정정 가능하면, 데이터에서의 위치들(즉, 에러 위치) 및 에러 정정 패턴들(정정 코드로부터)은 ECC 복호화부(55)에서 ECC 제어부(54)로 공급되고, 각각의 정정 가능한 에러들의 에러 위치들과 에러 정정 패턴들은 각 프레임들에 대해 에러 데이터를 저장하는 에러 레지스터(53)로 출력된다. 이때, 각 에러들은 먼저 에러 레지스터(53)로부터 에러들 위치들과 정정 패턴들을 판독하고, 에러 위치들에 대응하는 에러들이 있는 데이터를 RAM(51)으로부터 판독하고, 에러들이 있는 데이터를 정정 패턴에 배타 논리적으로 가산하고(배타적 논리합 또는 EXOR), 또한 결과의 값을 RAM(51)에 다시 기록함으로서 정정된다. 검출된 에러들이 정정될 수 없으면, 정정 불가능한 에러들이 포함된 그 프레임에 대한 정정 불가능한 에러 플래그는 순차적인 삭제(즉, 제거) 동작이 이루어질 수 있도록 에러 레지스터(53)에 저장된다.
상술된 바로부터 알 수 있는 바와 같이, 에러 위치들과 정정 패턴들은 각 에러 정정 코드 시퀀스에 대해, 즉, C11 데이터 시퀀스(제 1 C1 시퀀스), C2 시퀀스, 및 C12 시퀀스(제 2 C1 시퀀스)에 대해 에러 레지스터(53)에 축적되어 저장된다.에러 위치들과 정정 패턴들이 에러 레지스터(53)에 저장될 때, ECC 제어부(54)는 상술된 방법으로 에러들을 정정한다.
데이터 저장 어드레스(RA)는 도12에 도시된 바와 같이, 데이터의 C1 시퀀스의 순서(Dn), C1 코드 유닛에서의 프레임 번호(Fn), 및 다음의 식을 사용하여 RAM(51)에 저장된 데이터로부터 결정되고, 여기서는 모든 숫자가 16진법 표시이다:
Dn: 데이터 No. (00-A9)
Fn: 프레임 No. (00-B9)
RA: RAM 어드레스 (0000-7FFF)
다음에는 도13을 참조하면, 예를 들면 프레임(182)이 RAM(51)에 공급되어 저장될 때 (여기서는 "EFM+ 기록"이라함), 데이터의 C11 시퀀스(프레임 174, 175등의)가 동시에 00, 02, ..., A9의 순서로 복호화기(52)에 공급되는 것을 알 수 있다(여기서는 "C11 판독"이라함). 데이터의 C2 시퀀스는 복호화기(52)에 전달되고(여기서는 "C2 판독"이라함), 데이터의 C12 시퀀스는 복호화기(52)에 전달된다(여기서는 "C12 판독"이라함). 복호화되는(데이터 시퀀스 C11, C2, 및 C12 모두에 대해) 제 1 프레임(1)은 OCTL 회로(56)에 공급된다(여기서는 "OUT 판독"이라 함). C11, C2, 및 C12 데이터 시퀀스의 공급(즉, 전달)은 고정된 시간 간격으로 연속하여 실행된다. 다시 말하면, 1168 사이클의 주기를 갖는 소정의 클럭 신호(RFCK)에서, 170 바이트 길이의 에러 정정 코드는 각 클럭 주기 내에 3회 전달될 수 있다.
RAM(51)에 모두 저장된 C11, C2, 및 C12 데이터 시퀀스들은 클럭 RFCK의 한 주기 내에서 복호화기(52)에 전달된다. RAM(51)에 저장된 에러 정정 코드 데이터(또는 간략하게 "ECC 데이터")는 변하지 않고, 에러들이 검출되어 정정 가능한 것으로 발견되면, 에러 위치들 및 에러 정정 패턴들이 에러 결과 "ER"로서 에러 레지스터(53)에 공급된다. ECC 회로(50)는 상기 에러 위치들을 근거로 RAM(51)에 의해 공급되어 저장된 에러들이 있는 데이터와 에러 레지스터(53)에 저장된 정정 패턴들을 함께 배타 논리적으로 가산하고(여기서는 "EXOR 동작"이라함) RAM(51)내의 적절한 위치에 결과의 값을 순차적으로 저장함으로서 에러들을 정정한다. 마지막으로, 복호화 데이터(S10)는 버퍼 메모리(10)에 공급되고 섹터 헤더 데이터(SH)는 섹터 검출 회로(7)에 공급된다.
전달, 에러 결과 출력, 및 에러 정정 동작의 타이밍도가 도14에 도시된다. 도시된 바와 같이, ECC 제어부(54)(도11)는 C12 데이터 시퀀스가 ECC 복호화부(55)에 전달된 후에("C12R"로 식별된) C11 데이터 시퀀스에서 에러들을 정정한다("C11W"로 식별된). 다음 프레임의 C11 데이터 시퀀스가 RAM(51)에서 복호화기(52)로 공급된 후에 ECC 제어부(54)는 현재 프레임의 C2 데이터 시퀀스에서 에러들을 정정한다("C2W"로 식별된). 마지막으로, 다음 프레임의 C2 데이터 시퀀스가 공급된 후, ECC 제어부(54)는 현재 프레임의 C12 데이터 시퀀스에서 에러들을 정정한다("C12W"로 식별된). 그래서, ECC 데이터의 3개의 시퀀스들이 연속적으로 RAM(51)에서 ECC 복호화부(55)로 전달되고(즉, C11R, C2R, 및 C12R), 클럭 RFCK의한 주기 내에 모두 실행되는 ECC 에러 정정이 연속적으로 행해진다(즉, C11W, C2W, 및 C12W). ECC 데이터의 C11, C2, 및 C12 시퀀스들 각각은 클럭 RFCK의 각 주기 내에서 고정된 시간 간격으로 RAM(51)에서 출력되는 것을 또한 알 수 있다.
ECC 전달 코드 길이(NCYC)는 170 사이클(즉, NCYC = 170)이고, 패리티(parity) 전달 코드 길이(PCYC)는 최대 14 사이클(즉, PCYC = 14)이며, 다음의 식으로부터 에러 결과가 에러 레지스터(53)에 공급되는 간격은 ECC 동작 클럭(ECCK)의 395 사이클로 설정되는 것을 알 수 있다:
NCYC: 코드 길이 (170)
PCYC: 패리티 길이 (최대 14)
RMIF 회로(48)(ECC 회로 50의)는 클럭 RFCK의 한 주기 내의 세 출력이 C11R, C2R, 및 C12R 데이터 전달과 동기되도록 C1(즉, C11과 C12) 및 C2 데이터 시퀀스에 대응하는 많은 심볼에 대해 ECCK 클럭 펄스를 카운트한다. 본 예에서는 C11 데이터 시퀀스의 결과가 C12 데이터 시퀀스의 전달 동안 출력되고, C2 및 C12 시퀀스들의 결과는 각각 C11 및 C2 데이터 시퀀스들의 전달 동안 출력된다.
도15는 ECCK 클럭이 클럭 RFCK의 한 주기 내에 C11, C2, 및 C12의 순서로 출력될 때와 C11 데이터 시퀀스만이 전달될 때의 경우에 대한 타이밍도이다. 도시된 바와 같이, 프레임 카운터는 데이터 전달의 수(예를 들면, C11) 및 에러 정정의 수(예를 들면, [C11] ) 모두를 카운트하는데 사용된다.
도16은 ECC 회로(50)의 에러 출력의 타이밍도이다. 도시된 바와 같이, ECC결과가 출력되는 때를 나타내는 "OSTT" 신호는 C1 및 C2 데이터를 수신한 후(즉, 시작 펄스 신호(ESTT)가 하이로 될 때) 클럭 ECCK의 395 사이클을 발생시키고, OSST 신호가 상승된 후 세 클럭 주기에 스트로브(strobe) 신호(OCORRECT)는 하이(즉, "1"과 같은)로 되고, 또한 OCORRECT 스트로브가 하이일 때 에러 패턴(EDX) 및 에러 위치(EAX)는 각각 데이터 ODATA [7:0] 및 OORIG [7:0] 으로 출력된다. 도16의 타이밍도는 3개의 에러(ED0, ED1, 및 ED2)가 존재하는 경우를 설명한다. 복호화부(55)가 C1 및 C2 데이터의 시작을 식별할 때 시작 펄스 신호(ESTT)는 하이로 되고, OCORRECT 스트로브는 ECC 결과 ODATA [7:0] 및 OORIG [7:0] 을 얻기 위해 사용된다. 상술된 바와 같이, 에러 패턴(EDX)과 에러 위치(EAX)는 에러 레지스터(53)에 저장되고, 에러는 복호화기(52)로의 데이터 전달이 완료된 후에 정정된다.
다음에는 도17을 참조하면, 클럭 RFCK의 한 주기 동안(즉, 한 프레임) RAM(51)의 메모리 기록 및 판독수의 흐름도(즉, ECCK 클럭 주기)가 도시된다. 상술된 바와 같이, EFM+, C11, C2, C12, 및 OUT 동작이 클럭 ECCK의 1168 주기 동안 실행된다. 도17에 도시된 바와 같이, 섹터 싱크 패턴은 한 클럭 주기에서 RAM(51)에 저장되고, EFM+ 데이터는 170 +/- α 클럭 사이클에서 저장된다. C11 데이터 시퀀스는 170 클럭 사이클에서 판독되고(RAM 51로부터), C11 정정은 "8+8" 클럭 사이클(판독 및 기록)에서 실행되고, C11 정정 결과와 "SUB"(논의될)는 한 클럭 사이클에서 저장되고, 섹터 싱크 패턴은 한 클럭 사아클에서 저장되고, 헤더 데이터는 20 클럭 사이클에서 판독되고, 또한 헤더 데이터로부터의 섹터 정보의 판독 동작 결과는 1+(14) 클럭 사이클에서 기록된다.
C2 데이터 시퀀스는 170 클럭 사이클에서 RAM(51)으로부터 판독되고, C2 데이터에서의 에러는 14+14 클럭 사이클에서 정정되고, 또한 정정된 C2 데이터는 한 클럭 사이클에서 저장된다. C12 데이터 클럭은 170 클럭 사이클에서 판독되고, C12 데이터에서의 에러(판독 및 기록)는 8+8 클럭 사이클에서 정정되고, 또한 정정된 C12 데이터는 한 클럭 사이클에서 저장된다.
마지막으로, ECC 복호화 데이터의 섹터 정보는 한 클럭 사이클에서 판독되고, C11 데이터의 정정 결과는 한 클럭 사이클에서 판독되고, C2 데이터의 정정 결과는 한 클럭 사이클에서 판독되고, C12 데이터의 정정 결과는 한 클럭 사이클에서 판독되고, 또한 OUT 동작(즉, RAM(51)에서 메모리(10)로의 모든 데이터의 전달)은 170 클럭 사이클에서 실행된다. 상기의 모든 동작은 클럭 RFCK의 한 클럭 주기(즉, 한 프레임) 중 1168 ECCK 클럭 사이클의 948 동안에 실행된다.
상술된 SUB 동작은 헤더 데이터의 판독과, 도9에 도시된 섹터 검출 회로(7)로의 4 바이트 싱크 코드 및 16 바이트 헤더 데이터의 전달에 관련된다. 섹터 검출 회로(7)·는 헤더 데이터로부터 섹터 어드레스를 추출하고, CRC 동작을 실행하고, 소위 "플라이휠(fly wheel)(FW)" 동작을 실행하고, 또한 그 결과를 시스템 제어기(4)에 전달한다. 시스템 제어기(4)는 ECC 복호화 C11 데이터 시퀀스만의 데이터 내에서 섹터 헤더 데이터(SH)를 식별한다. 도14에 도시된 바와 같이, SUB 정보는 C11 데이터가 에러 정정된(C11W) 후에 공급된다. 그래서, C2 및 C12 데이터 시퀀스가 복호화되기 전에 위치 정보(즉, 디스크2상의 위치)가 얻어진다.
상술된 플라이휠 동작은 싱크 신호가 수 회 검출되지 않은 경우에서도 "락(lock)" 상태가 유지될 수 있게 하는 보간 및 보호 루틴에 관련된다. 시스템 제어기(4)는 재생된 섹터가 원하는 것인가 여부를 결정하고, 플라이휠 동작은 몇몇 싱크 패턴, 특히 몇몇 주 및 서브 싱크 패턴이 재생된 RF 신호에서 연속적으로 검출될 때 "EW 락"를 적용한다.
RAM(51)에서의 기록 및 판독을 위한 "프레임 유닛" 동작(여기서는 "JOB 동작"이라함)에 대해 실행되는 조건은 다음의 식을 사용하여 도시된다:
프레임 카운트와 JOB에 대한 실행 조건
(SUB는 C11에 포함)
"JOBXXX"에 대한 프레임 카운트가 Fn(XXX)으로 언급된다고 가정하면, Fn(XXX)은 프레임 유닛 XXX에 대한 모든 JOB 동작이 완료될 때 1만큼 증가된다. 본 예에서는 "SUB"가 C11 데이터 시퀀스에 포함되는 것으로 가정된다.
상술된 바와 같이, 싱크 패턴(FW)은 싱크가 수 회 연속적으로 검출될 때 "락"된다. 이러한 점에서, 메모리 기록 인에이블 신호(MWENS)가 하이로 설정되고, EFM+ 복조화된 데이터의 기록 동작이 초기화된다. 싱크가 수 회 연속적으로 검출되지 않으면, 싱크 패턴은 락되지 않고, EFM+ 데이터의 기록이 금지되도록 메모리 기록 인에이블 신호(MWENS)가 로우로 설정되고, 각 프레임 카운터는 0으로 재설정된다.
도18은 본 발명의 에러 정정 처리를 실행하는 동안에 RAM(51)의 다양한 판독 요청과 판독 인지 신호의 타이밍도이다. 도시된 바와 같이, 한 OUT 요청 신호(OUTREQ)는 신호 C11M의 4주기마다 공급되고, 요청 신호는 OUTREQ(OUT 요청), EFMREQ(EFM+ 요청), 및 ECCREQ(ECC 요청)의 순서로 공급된다. "XXX ACK"(특정한 인지 신호)가 하이일 때 특정한 "JOB"가 실행된다. 또한, ECC 데이터는 특정한 JOB 실행 조건이 존재할 때와 클럭 RFCK의 상승 모서리에서 출력된다. 도14에 도시된 바와 같이, "SUB" 및 ECC 데이터의 판독/기록 동작은 다음의 순서로 실행된다:
C11R, C2W, C2R, C12W, C12R, C11W, 및 SUB.
상기로부터, 다양한 C11, C2, C12, 및 OUT 동작에 대해, FnC11)과 Fn(OUT)간의 카운트값은 싱크(FW)가 락되면 고정되고, MWENS 신호는 하이로 남아 있고, 또한 각 JOB에 대해 실행 조건이 만족되는 것을 알 수 있다.
도9에 도시된 바와 같은 본 발명의 데이터 복호화 장치(40)는 확실하게 데이터가 버퍼 메모리(10)로부터 판독되고 다중화된 데이터 분리 회로(13)에 공급될 수 있도록 디스크 상에 (절단) 기록하는 동안 26.6 Mbit/s의 기준 채널 비트 레이트보다 더 큰 값으로 재생 동안의 채널 비트 레이트(신호 RFCK)를 설정한다.
상술된 바와 같이, 에러 위치, 정정 패턴, 및 정정 불가능한 데이터 플래그는 복호화기(52)로부터 공급되고 에러 레지스터(53)에 저장된다. 에러는 RAM(51)에저장된 ECC 데이터와 정정 패턴을 배타 논리적으로 가산함으로서 순차적으로 정정되고, RAM(51)에 저장된 ECC 데이터는 변하지 않으므로, 데이터를 ECC 복호화하도록 또 다른 메모리를 제공할 필요성이 제거된다. 더욱이, 상기로부터, ECC 데이터의 C11, C2, 및 C12 시퀀스 모드에서 에러들을 정정하기 위해서는 하나의 복호화기(52)만이 필요하다.
또한, 도9 및 도10에 도시된 복호화 회로를 구체화한 도9의 회로는 단 하나의 단일 프레임 카운터에 대해(데이터 전달 및 에러 정정 동작 모두에 대해) 재생된 데이터를 유지시키는 단일 메모리(51)를 제공하므로, 재생 데이터는 도2에 도시된 장치에서와 같이 제 1 메모리에서 제 2 메모리 내지 제 3 메모리로 전달되지 않고, 또한 메모리 장치(51)는 도표에 저장된 값을 사용하여 어드레스 지정 가능하다.
마지막으로, 상술된 복호화 회로(35)는 클럭 RFCK의 한 주기 내에 ECC 데이터의 C11, C2, 및 C12 시퀀스 모드에서 에러들을 정정하도록 동작될 수 있다. 그래서, 에러 정정된 C11, C2, 및 C12 데이터는 고정된 시간 간격으로 제공된다.
도19 내지 도22는 본 발명의 또 다른 실시예에 따른 기록 데이터 포맷을 설명하고, 여기서 데이터는 32 Kbyte 클러스터(cluster)의 유닛으로 기록된다. 도19는 대략 섹터 당 총 2,064 바이트로 2 Kbyte(2,060 바이트)의 데이터와 4 바이트의 에러 정정 코드(EDC)로 구비된 섹터의 데이터 구조를 설명한다. 본 발명에 따라, 16 섹터(각 2,064 바이트)는 각 섹터가 12 x 172 바이트의 데이터로 형성되는 도20에 도시된 방법으로 조합되고, 192 x 172 바이트의 데이터(즉, 12 x 16 x 172 바이트의 데이터)를 형성하도록 16 섹터가 조합된다. 섹터 데이터의 각 열에는 16 바이트의 외부 패리티 코드(PO)(또는 간단하게 외부 코드 PO)가 부가되고, PO 패리티 데이터의 각 행뿐만 아니라 각 섹터 데이터 행에는 10 바이트의 내부 패리티 코드(PI)가 부가된다.
외부 코드 행은(16 x 172 바이트의 PO 데이터와 16 x 10 바이트의 PI 데이터를 포함하는) 각각 182 바이트의 16개의 분리된 행으로 분할되고, 각 182 바이트 행은 도21에 도시된 바와 같이 0 내지 15로 번호가 지정된 16 섹터(12 x 182 바이트를 포함하는) 중 각 하나에 삽입된다. 각 섹터는 이와 같이 16 섹터 당 총 208 x 182 바이트(16 x 13 x 182)로 13 x 182 바이트를 포함한다. 도21에 도시된 데이터는 또한 도22에 도시된 바와 같이 각 91 바이트의 2 부분으로 분할되고, 91 바이트의 각 세트는 총 268 x 2 프레임으로 단일 프레임의 데이터인 것으로 간주된다. 2 바이트의 프레임 동기화 신호(FS)는 도22에 도시된 바와 같이, 각 93 바이트의 416(208 x 2) 프레임을 만들도록 각 91 바이트 프레임에 부가된다. 이러한 416 프레임은 데이터의 한 클러스터(또는 한 ECC 블럭)를 만든다. 상기로부터 알 수 있는 바와 같이, "실제" 섹터("오버헤드" 데이터를 포함하지 않는)의 크기는 2 Kbyte이고, 한 클러스터(한 ECC 블럭)는 16 섹터로 구성되고, 또한 한 섹터는 24 프레임으로 구성된다. 기술된 바와 같이, 데이터는 클러스터의 유닛으로 광학 디스크(2)상에 기록된다.
다음에는 도23을 참조하면, 본 발명의 데이터 재생 장치(40)가 상술된 기록 데이터 포맷을 갖는 데이터를 재생하는 경우에 대해 복조화 회로(35)의 상세한 블록도가 도시된다. 상술된 바와 같이, 복조화 회로(35)는 복조화 회로(6), 섹터 검출 회로(7), 및 ECC 회로(50)를 구비한다. 복조화 회로(6)는 RF 처리 회로(130)와 EFM+ 복조화 회로(131)를 포함한다. 섹터 검출 회로(7)는 SBCD 회로(134), RAM 제어기(135), 및 RAM(137)를 포함할 수 있다. ECC 회로(50)는 RAM 제어기(135), ECC 제어 회로(136), RAM(137), ECC 코어 회로(138), 및 OCTL(출력 제어) 회로(139)를 포함할 수 있다.
RF 처리 회로(130)는 픽업 장치(3)(도9에 도시됨)로부터 공급 신호(S1)를 수신하고, 신호(S1)를 이진 신호로 변환하고, 또한 그 이진 신호를 EFM+ 복조화 회로(131)에 공급한다. EFM+ 복조화 회로(131)는 신호를 복조사키고 동기화 패턴을 검출한다. EFM+ 복조화 회로(131)로부터 공급된 동기화 패턴에 응답하여, CLV 제어 회로(132)는 구동 인터페이스(IF) 회로(133)를 제어한다. 서브코드(SBCD) 회로(134)는 EFM+ 복조화 회로(131)로부터 공급된 신호에서 섹터를 검출하고, RAM 제어기(135)(도11에서의 RMIF 회로(48)에 응답하는)는 RAM(137)의 판독 및 기록 동작을 제어한다. RAM(137)은 ECC 제어 회로(136)에 의한 에러 정정 동안 그에 공급된 데이터를 임시적으로 저장하고, ECC 코어 회로(138)(도11에서의 ECC 복호화부(55)에 대응하는)는 ECC 제어 회로(136)에 공급되는 ECA, ECD, 및 SFLG 신호(논의될)를 발생하도록 리드-솔로몬(Reed-Solomon) 코드(PI 및 PO)를 사용하고, 또한 ECC 제어 회로(136)는 공급된 ECA, ECD, 및 SFLG 신호를 사용해 데이터에서의 에러들을 정정한다. OCTL 회로(139)는 에러 검출 코드를 디스크램블(descramble) 처리하고, 그 데이터를 출력한다. 호스트 CPU(140)(도9에 도시된 시스템 제어기(4)에 대응하는)는 복조화 회로(35)내의 각 회로의 동작을 제어한다.
상술된 바와 같이, CLV 제어 회로(132)는 구동 인터페이스(IF) 회로(133)를 제어한다. CLV 제어 회로(132)는 거친 서보 메커니즘이 싱크 코드, 예를 들면 도24에 도시된 코드(SY0) 내지 (SY7)를 더 검출하도록 검출된 동기화 패턴을 근거로 신호(S1)에 동작되는 것을 허용한다. 또한, 상술된 바와 같이, PLL(Phase Locked Loop) 위상 서보 메커니즘이 신호에 동작된다. 도24를 참조하면, 광학 디스크(2)의 물리적인 섹터에서 예의 데이터 구조가 도시된다. 각 물리적인 섹터는 26 싱크 프레임(싱크 프레임의 13행의 두 열)으로 구성되고, 각 싱크 프레임은 1,456 채널 비트(91 16-비트 바이트)의 데이터 부분으로 이어지는 변조 전에 싱크 코드(SY0 내지 SY7)의 32 채널 비트(2 16-비트 바이트)(변조 전의 비트로 표현되는)로 구성된다. 제 1 싱크 프레임의 데이터 부분은 ID 정보(예를 들면, 색터 번호), ID에 대한 에러 검출 코드(IED), 및 주 데이터를 포함한다. 각 싱크 프레임의 제 1 32 채널 비트로 저장된 싱크 패턴의 하단 22 비트는 비트 패턴을 갖고, 그 패턴은 유일하여 데이터에 나타나지 않는다.
좌측 열의 제 1 싱크 프레임은 주 데이터로 이어지는 싱크 패턴을 각각 갖는 11 싱크 프레임으로 이어지고, 주 데이터는 PO 패리티 데이터(즉, 좌측열 상의 최종 싱크 프레임에서)로 이어지는 싱크 패턴을 갖는 싱크 프레임으로 이어진다. 우측열에서의 각 싱크 프레임은 PI 패리티 데이터뿐만 아니라 주 데이터를 포함하지만, 우측열 상의 제 12 싱크 블럭은 EDC(error detection code) 및 PI 패리티 데이터를 포함하고, 우측열 상의 최종(제 13) 싱크 프레임은 PO 및 PI 패리티 데이터모두를 포함한다.
도25는 PI 및 PO 패리티 데이터가 없는 섹터의 데이터 구조를 설명한다. 도시된 바와 같이, 섹터는 4 바이트의 ID 코드(즉, 섹터 번호), 2 바이트의 ID 코드에 대한 에러 검출 코드(IED), 6 바이트의 지정 데이터(RSV), 스크램블 처리된 주 데이터, 및 4 바이트의 EDC(error detecting code)로 구성된다. 상술된 바와 같이, 제 16 섹터는 도20 및 도21에 도시된 방법으로 PI 및 PO 데이터와 조합되고, 도22에 도시된 바와 같이 프레임 동기화 코드(FS)가 부가된다. 프레임 동기화 코드는 도24에 도시된 바와 같이 SYx(x = 0, 1, 2, ..., 7)로 나타내지고, 한 ECC 블럭이 16 섹터로 구성되므로 물리적인 섹터 어드레스의 하단 4 비트는 0000에서 1111로 설정되며, 여기서 ECC 블럭의 제 1 섹터에서 4 비트의 물리적인 어드레스는 0000이다.
도25에 도시된 섹터의 주 데이터는 물리적인 섹터 어드레스의 하단 4 내지 7 비트에 의해 지정된 값을 초기값으로 사용하여 발생된 스크램블 데이터(scramble data)와 주 데이터를 함께 배타 논리적으로 가산함으로서 스크램블 처리된다.
본 발명은 여기서 다음의 지정과 신호명을 사용하여 설명된다:
Block-top (블럭 탑): 이 신호는 SYLK 신호가 하이일 때 섹터의 시작부에서 하이로 된다.
C11M: 11.2896 MHz의 주파수를 갖는 시스템 동작 클럭.
DSTB (Data strobe): 주 데이터가 스트림 데이터 SD로서 공급될 때 하이인 데이터 스트로브 신호.
ECA (ERR Correction Address): 에러의 위치(즉, 어드레스)를 나타내는 에러 정정 어드레스.
ECCK (ECC Clock): ECC 코어 회로(138)에 대한 동작 클럭.
ECD (Error Correction Data): 에러가 있는 데이터에 배타 논리적으로 가산될 때 정정 데이터가 되는 에러 정정 데이터.
ECDE (ECC Code Data End): 입력 데이터의 종료를 나타내는 제어 신호.
ECOD (ECC Code ERR): 이 신호는 에러가 정정 가능하지 않을 때 상태이다.
ECOR (ECC Correction): 정정 가능한 데이터(ECA, ECD)로 데이터의 출력을 나타내는 스트로브 데이터.
ECYE (ECC Cycle End): 입력 코드 데이터의 사이클의 종료를 나타내는 제어 신호.
EDT (ECC Data): RAM(137)으로부터 판독되어 에러 정정을 위해 ECC 제어 회로(136)에 공급되는 데이터.
ESTB (Error Strobe): 에러 정정 결과(ER)를 전달하는 동안 하이인 에러 정정 결과 스트로브 신호.
ESTT (ECC Start): 입력 데이터의 시작을 나타내는 제어 신호.
EFM+W Frame (EFM+Write Frame Counter): 이 신호는 RAM(137)에 기록되는 주 프레임을 나타낸다.
HDEN (Header Data Enable): 섹터 헤더 데이터에 대한 스트로브 신호.
main-FMSY (main Frame Sync): 이 신호는 각 PI행의 주 싱크(선두 싱크)에서하이이다.
MWEN (Memory Write Enable): 이 신호는 EFM+ 복조화 데이터가 RAM(137)에 기록되는 것을 인에이블시킨다.
MWRQ (EFM Write Request): 이 신호는 EFM+ 복조화 데이터를 RAM(137)에 기록할 것을 요청한다.
OUTE (Output Flag): 보간 (출력) 플래그.
OSTT (ECC Output Start): 이 신호는 지정된 코드 시퀀스에서 ESTT 신호가 하이로 된 후 ECCK 클럭의 출력 477 주기이다.
RDT (Read Data): RAM(137)으로의 판독 데이터 버스 상의 데이터.
SALK (Sector Address Lock): 이 신호는 섹터 어드레스(ID)가 정확하게 검출되었음을 나타낸다.
SAUL (Sector Address Unlock): SALK 신호에 반대되는 극성을 갖는 신호.
SCSY (Sector Sync): 이 신호는 섹터의 시작을 나타내도록 SY0 프레임에서 하이로 된다.
SD (Stream Data): 복호화 출력 데이터.
SDCK (Stream Data Clock): 스트림 데이터 클럭.
SFLG (Sector Flag): PI1 정정에 대한 ECC 정정 불가능한 플래그.
SINF (Sector Information): 섹터의 시작부에서 하이로 되는 섹터 정보 스트로브 신호.
SUB (SUB Data): SBCD 회로(134)에 전달되고 ID 및 IEC를 포함하는 데이터.
SYLK (Sync Lock): 이 신호는 3개의 싱크 코드가 연속적으로 검출될 때 하이로 된다.
SYUL (Sync Unlock): 이 신호는 SYLK 신호에 반대되는 극성을 갖는다.
WDT (Write Data): RAM(137)으로의 기록 데이터 버스 상의 데이터.
XHWE (Sector Header Write Enable): 이 신호는 SBCD 회로(134)에서 RAM(137)으로 기록될 섹터 정보의 출력을 인에이블시킨다.
복조 데이터(도23에 도시된 회로(131)에 의해 복조화된)는 도26에 도시된 RAM 제어기(135)로부터 공급되는 다양한 제어 신호에 응답하여 RAM(137)에 저장된다. 도26은 한 ECC 블럭을 설명한다. RAM 제어기(35)는 또한 행 및 열값을 지정함으로서 RAM(137)으로부터 원하는 데이터를 판독하고, 여기서 값(M, N)은 제 M 행의 제 N 바이트에 위치하는 데이터가 판독됨을 지정한다.
상술된 바와 같이, SBCD 회로(134)는 싱크 코드의 유형 및 연속성으로부터 광학 디스크(2)에서 재생되는 섹터의 시작부를 식별한다. 섹터의 시작부가 식별된 후, 선두 데이터로 시작하는 복조화된 데이터는 RAM(137)에 순차적으로 저장된다. 도27A 내지 도27F는 복조 데이터가 저장되는 동안 다양한 신호 SCSY, main-FMSY, SUB, MWEN, EFM+W 프레임, 및 PI1 프레임의 값을 도시하는 타이밍도이다. 이러한 신호는 또한 추후 기술된다.
도28은 복조 회로(131)의 싱크 "락(lock)" 동작의 흐름도로, 여기서는 질문(SP1)에서 싱크 코드(예를 들면 도24에 도시된 SY0 내지 SY7)가 각 싱크 프레임에서 검출되는가 여부가 결정되고, 그런 경우 연속적으로 검출되는 싱크 코드의수를 나타내는 SClock은 1만큼 증가되고, 연속적으로 검출되는 실패의 수를 나타내는 SCunlock은 지시(SP2)에서 0으로 재설정된다. 질문 단계(SP3)에서는 SClock이 3과 같은가 여부, 다른 말로 하면, 3개의 싱크 코드가 연속적으로 검출되는가 여부가 결정된다. 그렇지 않은 경우 루틴은 질문(SP1)으로 복귀하지만, SClock이 3과 같은 경우에는 지시(SP4)에서 싱크 락 상태가 초기화됨을 나타내도록 신호 SYLK가 하이로 설정되고, 다음 싱크 코드를 연속적으로 검출하도록 질문(SP1)을 다시 복귀하기 전에 지시(SP5)에서 SClock을 값 2와 같게 설정한다.
그러나, 질문(SP1)에서 싱크 코드가 검출되지 않는 것으로 결정되면, SCunlock은 1만큼 증가되고 지시(SP6)에서 SClock이 0으로 재설정된다. 질문 (SP7)에서는 SCunlock이 3과 같은가 여부, 다른 말로 하면, 싱크 코드가 연속적으로 3회 검출되지 않는가 여부가 결정된다. 싱크 코드가 3회 이하로 검출되지 않으면, 루틴은 질문(SP1)으로 진행하지만, 싱크 코드가 3회 검출되지 않으면, 신호 SYLK는 지시(SP8)에서 로우로 설정되고 SCunlock은 질문(SP1)으로 다시 진행하기 전에 지시(SP9)에서 2로 (SYLK를 낮은 값으로 유지하도록) 설정된다. 도28의 흐름도에서, 싱크 코드를 락(또는 개방)하기 전의 검출 회수는 3으로 설정되지만, 다른 수기 또한 사용될 수 있음을 알 수 있다.
도29는 신호 SYLK가 하이일 때(즉, 락 상태가 초기화될 때) EFM+ 복호화 회로(131)의 동작에 대한 흐름도이다. 먼저, 질문(SP21)에서 싱크 코드 SY0(도24에 도시된 바와 같은 각 섹터의 시작부에서)이 검출되는가 여부를 결정하고, 그런 경우 지시(SP22)에서 섹터의 시작을 나타내도록 도27A에 도시된 바와 같이 미리 결정된 시간 주기 동안 신호 SCSY가 하이로 설정되고, 질문(SP23)에서 신호(SYLK)가 로우로 설정되는가 여부가 결정된다. 그렇지 않은 경우(즉, SYLK가 하이인 경우) 루틴은 다시 질문(SP21)으로 진행한다. 질문(SP21)에서 싱크 코드(SY0)가 검출된 것으로 결정되면, 처리는 지시(SP23)(즉, 지시(SP22)가 생략되는)로 진행한다. 마지막으로, 질문(SP23)에서 신호 SYLK가 하이로 되어 루틴이 종료한다.
도30은 신호 SYLK가 하이로 될 때 EFM+ 복호화 회로(131)의 동작에 대한 흐름도이다. 먼저 질문(SP31)에서 "주(main)" 프레임 내의 "주 프레임" 싱크 코드가 검출되는가 여부가 결정되고, 여기서 "주" 프레임은 도24에 도시된 2개의 수평 싱크 프레임으로 구성되고, 좌측 싱크 프레임 내의 각 싱크 코드가 "주 프레임" 싱크 코드로 칭하여진다. "주 프레임" 싱크 코드가 검출되면, 도27B에 도시된 신호 main-FMSY가 지시(SP32)에서 발생된다. 그러나, "주 프레임" 싱크 코드가 검출되지 않으면, 지시(SP32)는 생략된다. 질문(SP33)에서는 신호 SYLK가 로우인가 여부가 결정되고, 그렇지 않은 경우(즉, 신호 SYLK가 하이인 경우) 루틴은 질문(SP31)으로 복귀하지만, 질문(SP33)에서 신호 SYLK가 로우이면, 신호 main-FMSY의 발생(뿐만 아니라 루틴)이 종료된다. 도24 및 도27B를 참조하면, 복호화 회로(131)는 주 프레임(2개의 수평 싱크 프레임)이 검출될 때마다 신호 main-FMSY를 발생한다.
도27A 및 도27D를 참조하면, RAM 제어기(135)는 신호 SCSY가 복조화 회로(131)에 의해 수신될 때 검출된 섹터를 RAM(137)에 저장하는 것을 초기화하는 신호 MWEN를 하이로 설정한다. RAM 제어기(135)는 EFM+W 프레임 카운터(도시되지 않음)를 사용하여 도29E에 도시된 주 프레임 카운트 "EFM+W Frame"을 만들도록 주프레임(도24에 도시됨)을 카운트한다. RAM 제어기(135)는 또한 카운트가 도27F에 도시되고 RAM(137)으로 전달되는 주 프레임수를 유지하도록 PI1 프레임 카운터(도시되지 않음)를 포함한다. 0으로 번호가 지정되고 도24의 상단 행에 도시된 제 1 주 프레임이 RAM(137)에 저장될 때, 제 1 주 프레임은 RAM 제어기(135)로부터의 제어 신호에 응답하여 ECC 제어 회로(136)로 공급되고 공급된 데이터에서의 에러들을 정정하는 ECC 코어 회로(138)로 전달된다(여기서는 "PI1" 처리 또는 정정이라 함). PI1 정정 이후, 데이터는 RAM(137)에 되돌아(back) 저장된다.
PI1 정정 이후에, 주 프레임 번호(0)에서의 ID 및 IED는 또한 도27C에 도시된 신호 SUB(0)과 동기화하여 데이터 버스를 통해 SBCD 회로(134)에 공급된다. 상술된 바와 같이, ID 및 IED 데이터는 각 섹터의 시작부에만 위치하므로(도24를 참조), 이러한 데이터 전달은 주 프레임 번호(0)에만 실행된다. SBCD 회로(134)는 재생된 물리적인 섹터의 어드레스(ID)를 검출한다. 또한, 상술된 바와 같이, 검출된 물리적인 섹터의 어드레스 중 하단 4 비트는 ECC 블럭의 선두 섹터가 검출되는 것을 허용한다.
도31A 내지 도31H는 ID가 전달된 후 한 블럭의 시작부를 검출하는 동안의 다양한 신호의 타이밍도이고, 도32A 내지 도32H는 검출 처리 후의 타이밍도이고, 또한 도33A 내지 도33F는 ID 처리 전달의 타이밍도이다. 도31 내지 도33은 또한 추후 기술된다.
먼저 도33A 내지 도33F를 참조하면, 도33A에 도시된 신호 HDEN은 RAM 제어기(135)로부터 출력되어 ID 및 IED 데이터가 RAM(137)으로부터 판독되는 시간을 식별하도록 SBCD 회로(134)에 공급된다. 이 시간 동안, 4 바이트의 ID 데이터와 2 바이트의 IED 데이터가 RAM(137)으로부터 판독되고, 도33F에 도시된 클럭 C11M(11.2896 MHz의 주파수를 갖는)과 동기화하여 도33C에 도시된 판독 데이터 RDT에서 SBCD 회로(134)로 공급된다. 도33B에 도시된 바와 같이, 신호(SFLG)는 로우이고, ID 및 IED 데이터가 "PI1 정정"에 의해 정정되는 것을 나타내도록 ECC 코어 회로(138)에서 ECC 제어 회로(136)로 공급되지만, 신호가 정정 가능하지 않으면 신호 SFLG가 하이로 설정된다. ID(섹터 어드레스)가 수신될 때, SBCD 회로(134)는 호스트 CPU(140)로부터의 다양한 제어 신호(예를 들면, 보간 플래그, 시작 섹터, 및 종료 섹터에 대한 발생 모드)에 응답하여 ID에 대응하는 섹터 정보(SI)를 발생한다. 예를 들면, 섹터 정보 비트(5)는 1로 설정되고, 출력될 데이터로 지정된 ID를 갖는 섹터에 대해 비트 4는 0으로 설정된다.
도34는 섹터 정보(SI)의 데이터 구조를 도시하는 도면이다. 섹터 정보(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 비트).
ECC 제어 회로(136)는 도35 내지 도37(논의될)의 흐름도에 도시된 방법으로 ID 및 IED 데이터가 처리될 때 도33D에 도시된 바와 같이, 신호 XHWE를 로우로 설정한다. 신호 XHWE는 저장을 위해 섹터 정보(Sl)를 SBCD 회로(134)에서 기록 데이터 WDT(8 비트)로서 RAM(137)에 공급하는 것을 인에이블시킨다. 16 섹터의 섹터 정보(SI)는 도26에 도시된 바와 같이, 16개의 PI행에 대응하도록 RAM(137)에 저장된다. 그래서, PI행의 번호가 지정될 때 대응하는 섹터 정보가 얻어진다.
도35를 참조하면, 유효한 ID를 갖는 세 개의 (또는 다른 번호의) 연속적 섹터가 얻어지는가 여부를 결정하는 SBCD 회로(134)의 동작 흐름도가 설명된다. 먼저, 질문(SP41)에서는 IED 데이터가 수용 가능한가 여부(즉, ID가 IED 데이터를 근거로 유효한가 여부)가 결정되고, 그런 경우 값 SAlock은 섹터의 번호가 "정상" ID를 갖음을 나타내도록 1만큼 증가되고, 지시(SP42)에서는 값 SAunlock이 연속적인 섹터의 번호를 무효(비정상) ID(즉, ID에서의 에러)로 식별하도록 0으로 재설정된다. 질문(SP43)에서는 SAlock이 3과 같은가 여부가 결정되고, 그렇지 않은 경우 처리는 질문(SP41)으로 복귀한다. SAlock이 3과 같으면(즉, 유효 ID를 갖는 세 개의 섹터가 연속적으로 재생되면), 지시(SP44)에서 플래그 IECOK는 하이로 설정되고, SAlock은 질문(SP41)으로 다시 복귀하기 전에 지시(SP45)에서 2로 설정된다.
질문(SP41)에서 IED가 무효인 것으로 결정되면, SAunlock 값은 1만큼 증가되고 SAlock 값은 지시(SP46)에서 0으로 재설정된다. 질문(SP47)에서는 SAunlock이 3과 같은가 여부를 결정하고, 그렇지 않은 경우 루틴은 질문(SP41)으로 다시 복귀하지만, SAunlock이 3과 같으면(즉, 세 연속 섹터가 비정상적인 IED 점검 결과를 갖으면), 지시(SP48)에서 플래그 IECOK가 로우로 설정되고, 지시(SP49)에서 SAunlock은 질문(SP41)으로 다시 복귀하기 전에 2로 설정된다.
상술된 바와 같이, SBCD 회로(134)는 3 이상의 연속 IED 점검이 정상적인 결과를 제공하면(즉, 3 이상의 연속 유효 ID가 있으면) 플래그 IECOK를 하이로 설정하고, 3 이상의 연속 IED 점검이 비정상적인 결과를 제공하면(즉, 3 이상의 연속 무효 ID가 있으면) 플래그 IECOK를 로우로 설정한다.
도36은 순차적으로 1만큼 증가되는 ID(어드레스)의 연속성을 결정할 때 SBCD 회로(134)의 동작에 대한 흐름도이다. 먼저, ID가 검출되는가 여부를 결정하고, 그런 경우 지시(SP62)에서 현재 ID(저장된 ID)를 이어지는 ID와 비교하기 위해 ID가 메모리에 저장된다. 질문(SP63)에서는 현재 처리된 ID가 앞서 저장되고 처리된 ID 보다 더 큰 값을 갖는가 여부를 결정하고, 그런 경우 지시(SP64)에서 값 Ns는 1만큼 증가되고(또 다른 정확한 ID가 검출됨을 나타내는), 값 Nns는 0으로 재설정된다. 질문(SP65)에서는 Ns가 3과 같은가 여부를 결정하고, 그렇지않은 경우 루틴은 다시 질문(SP61)으로 복귀한다. 그러나, Ns가 3과 같으면, 연속적으로 검출된 ID가 유효함을 나타내도록 지시(SP66)에서 플래그 AS가 하이로 설정되고, 질문(SP61)으로 다시 복귀하기 전에 지시(SP67)에서 Ns가 2로 설정된다.
질문(SP61)에서 ID가 검출되지 않거나 현재 검출된 ID가 질문(SP63)에서 앞서 검출된 ID 보다 더 크지 않으면, 질문(SP68)에서 플래그 SALK가 하이인가 여부를 결정하고, 추후 기술될 바와 같이, 3 이상의 연속 IED 점검이 유효하고 3이상의 ID의 연속성이 유지될 때 SALK는 하이로 설정된다. 질문(SP68)에서 플래그 SALK가 하이이면, ID는 지시(SP69)에서 보간된다. 즉, ID가 검출되지 않거나 검출된 ID가 연속되지 않으므로, 앞서 검출된 ID는 새로운 ID를 만들도록 1만큼 증가되고, 만들어진 새로운 ID는 검출된 ID를 대신하여(검출되었으면) 사용된다. 플래그 SALK가 로우이면, 지시(SP69)는 생략된다. 지시(SP70)에서는 Nns가 1만큼 증가되고 Ns는 0으로 재설정되며, 질문(SP71)에서는 Nns가 3과 같은가 여부를 결정하여 그렇지 않은 경우 루틴은 질문(SP61)으로 복귀한다. 그러나, Nns가 3과 같으면, 플래그 AS는 지시(SP72)에서 로우로 설정되고, 지시(SP73)에서는 질문(SP61)으로 다시 복귀하기 전에 Nns가 2로 설정된다. 상술된 바와 같이, SBCD 회로(134)는 ID가 유효하고 연속적일 때 플래그 AS를 하이로 설정하고, ID가 연속적이지 않을 때 플래그 AS를 로우로 설정한다.
도37은 플래그 IECOK와 AS를 사용하여 플래그 SALK를 발생하는 SBCD 회로(134)의 동작에 대한 흐름도이다. 먼저, 질문(SP81)에서 플래그 IECOK가 하이인가 여부를 결정하고, 그런 경우 질문(SP82)에서 플래그 AS가 하이인가 여부를 결정한다. 플래그 AS가 하이이면, 플래그 ASLK는 지시(SP83)에서 하이로 설정된다. 플래그 IECOK가 로우이거나 플래그 AS가 로우이면, 플래그 SALK는 지시(SP84)에서 로우로 설정되고, 이 지점에서 루틴은 다시 질문(SP81)으로 복귀한다.
상술된 바와 같이, SBCD 회로(134)는 3 이상의 연속된 "IEC"가 "정상"이고 3 이상의 ID가 연속적으로 번호 지정되면 플래그 SALK를 하이로 설정하지만, 3이상의 연속적인 IEC가 "비정상"이거나 3개의 연속 ID의 검출이 실패하면 플래그 SALK는 로우로 설정된다.
호스트 CPU(140)는 상술된 ID 데이터와 SALK 값을 참조하여 레이저빔이 비추어진 위치(즉, 광학 디스크(2)상에서 액세스된 위치)를 검출한다.
PI1 정정의 결과는 도35의 흐름도에서 SAlock 또는 SAunlock에 대한 조건에 부가될 수 있다. 더욱이, SAlock 또는 SAunlock에 대한 횟수가 3으로 설정되더라도 호스트 CPU(140)에 의해 다른 값으로 설정될 수 있다.
SALK가 로우일 때(SALK가 하이일 때) SYLK가 로우로 되면(SYUL이 하이로 되면), ECC 제어와 EFM+ 복조 회로(31)에서 RAM(37)으로 EFM+ 복조화된 데이터의 기록 모두는 재설정된다. 이어서 언락(unlock) 상태가 취소되고(SAUL이 로우) SYLK가 하이로 설정된다. RAM(137)에 EFM+ 복조화된 데이터를 기록하는 것이 그후에 다시 시작된다.
"언락"은 필요한 경우 호스트 CPU(140)에 의해 강제로 실행될 수 있다. 예를 들면, 호스트 CPU(140)는 ECC 제어를 재설정하기 위해 트랙 점프 이후에 언락 상태를 초기화할 수 있다. 언락 상태는 호스트 CPU(140)에 의해 취소되거나 호스트 CPU(140)의 간섭 없이 자동적으로 취소될 수 있다.
SYLK가 하이이고(즉, 언락 상태) 섹터의 시작을 나타내도록(도34를 참조) 섹터 정보의 비트 6이 1이면, SBCD 회로(134)는 도31A 내지 도31H의 타이밍도에서 설명되는 바와 같이 SYLK가 로우로 될 때까지(즉, 락이 풀릴 때까지) "block-top"을 하이로 유지시킨다. block-top이 설정되면, EFM+W 프레임의 값은 신호 SCSY와 main-FMSY 모두가 하이가 될 때(섹터의 시작에서) 12에서 0으로 변한다. 즉, EFM+W 프레임의 값은 반복하여 각 주 프레임에 대해 0, 1, 2, ..., 12에서 변한다.
block-top이 하이이면, EFM+W 프레임의 값은 도32A 내지 도32H에 도시된 바와 같이 값 13을 얻은 후에도 1만큼 계속 증가한다. 그래서, 각 ECC블럭의 주프레임 내의 데이터가 도26에 도시된 바와 같이 RAM(137)의 다른 어드레스에 연속하여 저장된다.
EFM+ 변조된 데이터는 PI1 정정이 실행되는 동안 연속적이고 유사하게 RAM(137)에 기록된다. 한 ECC 블럭에서(데이터의 208행) 데이터의 PI1 정정이 완료될 때, PO열의 방향에서 ECC 처리가 실행된다(즉, "PO 정정"). 그러나, PO열의 방향으로 메모리로부터 데이터를 적절히 판독하기 위해, PO행이 먼저 디인터리빙되어야 한다(도21을 참조). 도26에 도시된 제 N 바이트에 대응하는 열이 메모리로부터 판독되면, 이 열의 데이터는 인터리빙된 PO행이 생략되는 동안 아래쪽으로 판독되고, 제 N 바이트에 대응하는 같은 열에서 PO행만이 판독되어 ECC 코어 회로(138)에 공급된다. ECC 코어 회로(138)가 PO 정정을 완료할 때(도26의 우측 끝 부분에서 10PI열을 제외한 모든 열, 즉 172열이 처리된다), PI2 정정이 실행된다. 에러 정정 실행도를 개선하기 위해 Pl행의 방향으로 ECC 처리가 두 번 실행된다.
PO 정정 동안, PI1 정정 결과를 근거로 발생되는 에러 플래그(PI1 플래그)에 따라 삭제 정정이 실행된다 PI2 정정 동안에도 또한 PO 정정 결과를 근거로 발생된 에러 플래그(PO 플래그)를 사용하여 삭제 정정이 실행된다. 이러한 삭제 정정은 상술된 바와 같이, 에러 정정 실행도를 개선하도록 실행된다.
데이터의 PI 시퀀스(PI2 정정이 완료된 후)는 RAM(137)에서 OCTL 회로(139)로 전달되고, 주 데이터는 도34에 도시된 섹터 정보의 비트 3 내지 0을 사용하여 각 섹터에 대해 디스크램블 처리된다. 부가하여, OCTL 회로(139)는 EDC(error detection code) 관련 계산을 실행하고, 이러한 계산의 결과를 근거로 에러 플래그의 존재가 주 데이터에 부가될 수 있다(즉, 원하는 섹터에 에러들이 있는가 여부를 결정한다). 이러한 결정으로부터, 호스트 CPU(140)는 특정한 데이터가 광학 디스크(2)로부터 다시 재생되어야 하는가 여부를 결정하고, 그런 경우 광학 디스크(2)는 다시 액세스된다. 데이터가 다시 재생되지 않으면, 섹터 내의 데이터(에러를 포함해)는 다중화 데이터 분리 회로(13)(도9)에 공급된다.
ECC 코어 회로(138)는 코드 길이, 패리티의 수 정정 모드(정상적인 정정만 또는 정상 및 삭제 정정 모두)가 프로그램될 수 있는 일반적인 리드-솔로몬 코드 에러 정정 LSI를 구비한다. ECC 코어 회로(138)는 또한 다중 코드화 및 연속적 코드화 데이터(다른 코드 길이의 다수의 코드 시퀀스)가 실시간에서 복호화될 수 있게 한다. 리드-솔로몬 코드 에러 정정 LSI는 예를 들면, 소니(SONY)로부터 상업적으로 사용 가능한 CXD307-111G와, ECC 코어로 칭하여지는 LSI를 사용하여 형성된 ASIC(Application Specialized Integrated Circuit)를 포함한다. ECC 코어는 도23에 도시된 ECC 코어 회로(138)에서 사용된다.
도38A 내지 도38D는 본 발명의 에러 정정 동작 동안의 다양한 신호의 타이밍도이다. 도38A에 도시된 제어 신호 SETT는 코드(PI 또는 PO행)의 시작을 나타내고, 도38B에 도시된 제어 신호 ECDE는 코드(PI 또는 PO행)의 끝을 나타내고, 또한 도38C에 도시된 제어 신호 ECYE는 한 코드(PI 또는 PO행) 사이클의 끝을 나타낸다. 이러한 세 신호는 RAM 제어기(135)에서 ECC 제어 회로(136)를 통해 ECC 코어 회로(138)에 공급되고, ECC 코어 회로(138)는 RAM(137)으로부터 공급된 데이터를 식별하도록 공급된 제어 신호를 사용한다. 도38A 내지 도38D에 도시된 바와 같이, PI 코드는 신호 ESTT 및 EDCE의 발생(펄스)간 클럭 ECCK의 182 주기 동안 전달된다. PO 코드는 또한 신호 ESTT 및 ECDE의 발생간 ECCK의 208 클럭 주기동안 전달된다.
PI행 내의 코드와 PO열 내의 코드가 다른 코드 길이를 갖으면, 정정되는 데이터(EDT)와 삭제 정정을 위한 에러 플래그(PI1, PI2, 및 PO 플래그)는 PI행과 PO열 코드 길이 중 더 긴 코드 사이를 길이를 적용함으로써 코드 시퀀스에 관계없이 같은 타이밍으로(도38A 내지 도38D에 도시됨) 입력될 수 있다. 기술된 실시예에서, 코드 사이클 길이는 PO열 코드의 길이인 208이다. 코드 길이 및 패리티 수를 포함하는 다양한 변수에 대해 임의의 길이가 사용될 수 있다. 즉, 설정이 변할 때, ECC 코어 회로(138)에 새로운 설정 데이터를 공급하는 것은 신호 ESTT가 하이로 될 때공급된 데이터를 근거로 이 회로가 내부 설정을 자동적으로 변화시키는 것을 허용한다.
데이터 정정 결과들은 다음의 식에서 도시된 바와 같이 477 ECCK 사이클을 사용하여 출력된다:
처리량 = 2 x NCYC + 3 x PCYC + 13
= 2 x 208 + 3 x 26 + 13 = 477 (ECCK)
상기의 식에서, NCYC는 PI행 및 PO열 코드 길이 중 더 긴 것을 나타내고, PCYC는 더 큰 패리티 수를 나타낸다. 도38A 내지 도38D에서 신호 OSTT(도38D)는 데이터를 출력하는데 필요로 하는 시간량만큼의 신호 ESTT(도38A)타이밍 이후에(즉, 정정 결과가 출력될 때) ECC 코어 회로(138)에서 ECC 제어 회로(136)로 공급된다. 기술된 실시예에서, 신호 OSTT는 신호 ESTT의 발생 이후 클럭 ECCK의 477 주기만큼 지연된다.
도39A 내지 도39I는 에러 정정 동안에 ECCK, ESTT, EDT, OSTT, ECOR, "O.CODEERR", ECD AND ECA을 포함하는 다양한 신호의 타이밍도이다. 에러 정정이 실행되고 검출된 에러가 정정 가능한 것으로 발견되면, ECC 코어 회로(138)는 도39E에 도시된 바와 같이 신호 OSTT가 하이로 될 때 도39G에 도시된 바와 같이 낮은 값을 갖는 신호 "O.CODEERR"를 ECC 제어 회로(136)에 공급한다. 이어서, 도39H에 도시된, 에러 패턴을 식별하는 데이터 ECD [7:0] 의 8 비트(즉, 정확한 데이터를 얻도록 에러들이 있는 데이터를 배타 논리적으로 가산한 데이터)와, 도39I에 도시된, 에러들이 발생된 위치(어드레스)를 나타내는 8 비트 에러 위치 ECA [7:0] 은도39F에 도시된 신호 ECOR이 하이일 때 공급된다.
상술된 삭제 정정 모드에서, 에러 위치 데이터(ECA [7:0] )는 에러 플래그 EFLG(도39C를 참조)가 입력되는 위치에 대응하지만, 위치가 정확한 데이터가 출력되면, 에러 패턴 EDC [7:0] 은 00(16진수)으로 설정된다.
에러들이 정정될 수 없으면, 신호 OSTT(도39E)는 하이로 설정되고, 동시에 신호 O.CODEERR(도39G)가 하이로 설정되고, 또한 신호 ECOR(도39F)는 하이로 되는 것이 금지된다(도39F에 도시되지 않음). 부가하여, 신호 ECOD의 출력(도39G)은 신호 OSTT(도39E)가 다시 하이로 될 때까지 래치(latch)되고, 신호 ECOR(도39F), ECD [7:0] (도39H), 및 ECA [7:0] (도39I)은 신호 OSTT(도39E)가 하이로 변할 때까지 계속 출력된다.
도40 내지 도42는 ECC 처리 동안의 다양한 신호의 타이밍도이다. 논의될 바와 같이, 도40B, 도41B, 및 도42B에 도시된 기준 PI1-R, PO-R, 및 PI2-R은 각각 에러들이 정정될 EFLG(도39C)와 데이터 EDT [7:0] 의 PI1, PO, 및 PI12 시퀀스가 RAM(137)에서 ECC 제어 회로(136)를 통해 ECC 코어 회로(138)로 전달되는 타이밍을 나타낸다. 도40A, 도41A, 및 도42A에 도시된 바와 같이, 신호 MWRQ는 EFM+ 복조화 회로(131)로부터 공급된 한 PI행에 데이터 EFM+W(182 바이트를 갖는)를 기록하도록 182회 공급되고 RAM(137)에 저장되어, 한 PI행 내의 EFM+ 복조화 데이터가 RAM(137)에 저장된다. 한 PI행 내의 데이터가 저장되는 동안, 이미 RAM(137)에 저장된 ECC 블럭 내의 데이터는 판독되어 ECC 제어 회로(136)를 통해 ECC 코어 회로(138)에 공급된다. 즉, 한 PI행 내의 데이터가 비교적 낮은 속도로 RAM(137)에저장되는 동안, 또 다른 PI행 또는 이미 저장된 PO열이 비교적 높은 속도로 3회 판독된다. 섹터의 시작부에 있는 PI행 내의 데이터가 전달되면, 서브 코드 데이터(ID 및 IEC) 영역이 또한 판독된다. 기록 및 판독 동작은 한 동작이 실행될 때 다른 유형의 동작이 발생되지 않도록 하는 방법으로 실행된다.
예를 들어 ECC 블럭의 PI1 정정이 실행되면, 한 PI행 내의 데이터는 한 PI행 내의 데이터 기록이 실행되는 시간 주기 동안 판독된다. 즉, 한 PI행 내의 데이터는 RAM(137)으로부터 판독되고 ECC 제어 회로(136)를 통해 ECC 코어 회로(138)에 공급된다. 도40B, 도41B, 및 도42B에 도시된 바와 같이, ECCK의 208 주기는 PI1 정정에 대한 데이터 PI1-R을 판독하는데 사용되고, 이러한 ECCK의 주기수는 가장 긴 데이터 길이인 PO열의 길이에 적용되어, ECCK의 182 주기만이 실제적으로 PI행 내의 데이터를 전달하기 위한 데이터 전달에 사용되는 반면, 나머지는 사용되지 않는다.
도43은 ECC 정정 동안의 판독/기록 동작에 대한 흐름도이다. RAM 제어기(135)는 지시(SP101)에서 한 PI행 내의 데이터를 RAM(137)에서 ECC 코어 회로(138)로 전달한다. 기술된 실시예에서는 PI 코드(패리티)와 P 코드(패리티)가 각 ECC 블럭에 부가되고, 같은 ECC 블럭으로부터 판독 데이터 PI2-R의 PI2 시퀀스 또는 데이터 PO-R의 PO 시퀀스는 제 1 ECC 블럭으로부터의 데이터의 제 1 PI 시퀀스를 정정하고 다시 기록하는 동작이 완료될 때까지 전달되지 않는다. 그래서, 이어지는 ECCK의 2 x 208 주기 동안에는 데이터가 전달되지 않는다. 또한, 상술된 데이터를 따르는 서브 코드 데이터(SUB)가 있으면, 서브코드 데이터도 또한 전달된다.
RAM 제어기(135)는 지시(SP101)에서 제 1 ECC 블럭의 한 PI행 내의 데이터를 순차적으로 전달하고, 서브코드가 있는 경우 지시(SP102)에서 서브코드 데이터를 전달한다. 질문(SP103)에서는 제 1 ECC 블럭 중 208행 내의 PI1-R 데이터가 전달되는가 여부를 결정하고, 그렇지 않은 경우 루틴은 지시(SP101)로 다시 복귀한다. 그런 경우에는 PI1-R이 이어지는 ECC 블럭으로부터 전달되고 제 1 ECC 블럭으로부터의 PO-R의 2행이 지시(SP104)에서(182의 각 주기 동안) 전달된다. 질문(SP105)에서는 제 1 ECC 블럭 중 172열 내의 PO 데이터가 전달되는가를 결정하고, 그렇지 않은 경우 지시(SP104)가 반복된다. 그런 경우에는 제 1 ECC 블럭으로부터의 데이터 PI2-R의 시퀀스가 지시(SP106)에서 전달된다(도42A 내지 도42E를 참조) 또한, 데이터 PI2-R은 도41B에 도시된 제 1 ECC 블럭의 데이터 PO-R이 전달된 것과 같은 타이밍으로 전달된다. 이러한 점에서, 데이터 PIL-R은 다음 ECC 블럭(제 2 ECC 블럭)에 속한다. 제 1 ECC 블럭 중 208 PI행의 PI2-R은 같은 방법으로 전달되고, 제 1 ECC 블럭의 PIL-R, PO-R, 및 PI2-R의 처리가 완료될 때, RAM 제어기(135)는 질문(SP107)에서 긍정적인 결과를 얻는다. 이때 처리는 다시 지시(SP101)로 복귀한다.
클럭 ECCK(도39A)는 데이터가 전달되는 동안에만 RAM 제어기(135)에서 ECC 코어 회로(138)로 전달된다. 부가하여, 전달된 데이터의 정정 결과는 입력된 후 ECCK의 477 클럭 주기에 출력된다. 그래서, 데이터 시퀀스가 에러들을 포함하는가 여부의 결정 결과(도40C, 도41C, 및 도42C)는 이 시퀀스로부터 다음의 2가 전달될 때 출력된다(도40B, 도41B, 및 도42B). 데이터 출력은 도44에 도시된(논의될) 에러FIFO 회로(136B)에 저장된다.
에러 정정되는 데이터가 상술된 바와 같이 RAM(137)에서 ECC 제어 회로(136)로 입력될 때, 회로(136)는 한 PI행 내의 데이터에 PI1 정정을 실행하고 클럭 ECCK의 477 주기에 결과를 출력한다(도40C, 도41C, 및 도42C) 결과의 데이터는 추후 기술될 바와 같이 전달되어 ECC 제어 회로(136)를 위한 버퍼로 사용되는 에러 FIFO(136B)에 잠시 저장된다. 이 데이터는 또한 도41D 및 도42D에 도시된 바와 같이, 에러 FIFO(136B)로부터 판독되고, 에러 정정된 데이터로서 RAM(137)에 다시 전달되고, 또한 데이터 PIL-R로서 저장된다. 데이터(PO 또는 PI2 정정이 완료된)는 또한 데이터 PO-W 또는 PI2-W로서 RAM(137)에 저장된다. 에러 정정된 데이터는 도40E, 도41E, 및 도42E에 도시된 바와 같이, 또한 182 SDCK 클럭 주기중 한 주기를 사용하여 각 PI행에 대해 판독되어 OCTL 회로(139)에서 출력된다.
도44를 참조하면, 에러 정정 동안의 신호 흐름을 도시하는 블록도가 도시된다. ECC 제어 회로(136)는 에러 카운트(136A), 에러 FIFO(136B), 플래그 RAM(136C), 및 EX-OR 회로(136D)를 포함한다. EFM+ 복조 회로(131)로부터 공급된 복조 데이터는 RAM 제어기(135)로부터 공급된 제어 신호에 응답하여 RAM(137)에 저장된다. 각 섹터의 시작부에 저장된 SUB 데이터(ID 및 IEC)는 RAM(137)으로부터 판독되어 도34에 도시된 바와 같이 섹터 정보(SI)를 발생하는 SBCD 회로(134)에 공급된다. 섹터 정보는 SBCD 회로(134)로부터 공급되어 RAM(137)에 저장된다.
RAM 제어기(135)는 RAM(137)에 저장된 한 PI행 내의 데이터를 ECC 제어 회로(136)를 통해 ECC 코어 회로(138)에 공급한다. 도44에 도시된 바와 같이, EDT데이터는 편의상 ECC 코어 회로(138)에 직접 공급된다. 한 PI행 내의 데이터가 ECC 코어 회로(138)에 공급될 때, 회로(138)는 에러 정정 데이터(ECD)(도39H)의 8비트와 에러 정정 어드레스(ECA)(도39I)의 8비트를 발생하도록 PI 코드를 사용한다. 에러 정정 데이터(ECD)와 에러 정정 어드레스(ECA)는 ECC 코어 회로(138)로부터 공급되어 ECC 제어 회로(136)내의 에러 FIFO(First In First Out)(136B)에 저장된다.
에러들을 정정하도록 RAM 제어기(135)는 그 PI행 내의 데이터(EDT)를 판독하여 EX-OR 회로(136D)에 공급한다. EX-OR 회로(136D)에는 에러 FIFO(136B)로부터 에러 정정 데이터(ECD)와 에러 정정 어드레스(ECA)가 공급된다. EX-OR 회로(136D)는 에러 정정 어드레스(ECA)에 의해 지정된 비트에서 RAM 제어기(135)로부터 판독된 데이터(EDT)와 에러 정정 데이터(ECD)를 함께 배타 논리적으로 가산함으로서 에러들을 정정한다. 데이터(정정된 에러)는 다시 RAM(137)에 저장된다. 부가하여, ECC 코어 회로(138)는 ECD 및 ECA로부터 도45에 도시된 에러 정정 결과(ER)(8 비트)를 만든다. 에러 정정 결과(ER)는 공급되어 에러 카운트(136A)에 저장된다. 에러 정정 결과(ER)는 도26에 도시된 바와 같이 그 PI행에 대응하도록 RAM(137)에 저장된다.
에러 정정 결과(ER)의 8비트는 다음의 정보를 나타낸다:
비트 7: 정정 불가능한 에러 플래그(0: 정정 가능; 1: 정정 불가능);
비트 6: 시퀀스가 PI행 또는 PO열로부터 전해진 것인가 여부를 식별(0: PI; 1: PO);
비트 5: 시퀀스가 PI1 또는 PI2 시퀀스인가를 식별(0: PI1, 1: PI2);
비트 4: 정정수의 최상위 비트(MSB);
비트 3: 정정수의 제 2 MSB;
비트 2: 정정수의 제 3 MSB;
비트 1: 정정수의 제 4 MSB;
비트 0: 정정수의 최하위 비트(LSB).
데이터가 정정 가능한가 여부의 결정 결과를 나타내는 PI1 에러 플래그(비트 7)는 에러 정정 결과(ER)의 일부로 에러 카운트(136A)에 저장되고 또한 플래그 RAM(136C)에 저장된다. PI1 정정은 도26에 도시된 208 PI행에 대해 실행된다.
RAM 제어기(135)는 RAM(137)으로부터 제 1 PO열 내의 208 바이트 데이터를 판독하고 EDT로서 ECC 제어 회로(136)를 통해 ECC 코어 회로(138)에 공급한다. 플래그 RAM(136C)에 저장된 PI1 플래그는 정상적 또는 삭제 정정을 위해 ECD 및 ECA를 발생하도록 패턴 PO 및 PI1 플래그를 사용하는 ECC 코어 회로(138)에 공급된다. ECD 및 ECA 데이터는 ECC 코어 회로(138)에서 ECC 제어 회로(136)내의 에러 FIFO(136B)에 공급되어 저장된다. ECD 및 ECA를 근거로 ECC 코어 회로(138)에 의해 발생된 이 PO열에 대한 에러 정정 결과(ER)는 또한 에러 카운트(136A)에 전달되어 저장된다. 에러 정정 결과(ER)의 비트 7에 대응하는 PO 플래그는 또한 플래그 RAM(136C)에 저장된다.
RAM(137)으로부터 판독된 이 PO열 내의 데이터(EDT)는 EX-OR 회로(136D)에 공급된다. EX-OR 회로(136D)에는 또한 에러 FIFO(136B)로부터의 ECD 및 ECA 데이터가 공급된다. EX-OR 회로(136D)는 ECA 데이터에 의해 지정된 어드레스의 비트에 대응하도록 ECD 및 EDT 데이터를 배타 논리적으로 함께 가산함으로써 에러들을 정정한다. 에러 정정된 데이터는 다시 RAM(137)에 저장된다. 부가하여, 이 PO열에 대한 에러 정정 결과(ER)는 에러 카운트(36A)로부터 판독되어 RAM(137)에 저장된다. 이 PO열에 대한 에러 정정 결과(ER)는 상단으로부터 시작해 172 PI행에 대응하는 위치에 순차적으로 기록된다. 이러한 PO 정정은 172 PO열에 대해 실행된다.
PI2 정정이 PI1 및 PO 정정 이후에 실행되면, 제 1 PI행 내의 데이터는 EDT 데이터로서 RAM(137)으로부터 판독되어 ECC 코어 회로(138)에 공급된다. 플래그 RAM(136C)에 저장된 PO 플래그는 판독되어 ECC 코어 회로(138)에 공급된다. ECC 코어 회로(138)는 ECD 및 ECA 데이터를 발생하도록 PO 플래그와 패리티 PI를 사용하여 공급하고, 그 데이터를 ECC 제어 회로(136)의 에러 FIFO(136B)에 저장한다. 에러 FIFO(136B)에 저장된 ECD 및 ECA와 RAM(137)으로부터 판독되어 EX-OR 회로(136D)에 공급된 PI열 내의 데이터는 에러들을 정정하도록 함께 배타 논리적으로 가산된다. 에러 정정된 데이터는 다시 RAM(137)에 저장된다.
ECC 코어 회로(138)는 또한 ECD 및 ECA 데이터로부터 에러 정정 결과(ER)를 만들고, 데이터를 저장하였던 에러 카운트(136A)에 그 데이터를 공급한다. PI2 플래그(비트 5)는 또한 플래그 RAM(136C)에 저장된다.
에러 카운트(136A)에 저장되었던 PI2행에 대한 에러 정정 결과(ER)는 판독되어 RAM(137)에 저장된다. PI2행에 대한 에러 정정 결과(ER)는 208 PI행에 각각 대응하는 각 위치에 기록된다.
도46A 내지 도46G는 RAM(137)으로의 액세스에 대한 버스 조정을 도시하는 타이밍도이다. 신호 EFMREQ(도46A)는 EFM+ 복조화 데이터의 기록 동작을 RAM(137)에요청하기 위해 EFM+ 복조 회로(131)에서 RAM 제어기(135)로 공급된다. 신호 OUTREQ(도46B)는 RAM(137)으로부터 ECC 처리된 데이터의 판독 동작을 요청하도록 OCTL 회로(139)에서 RAM 제어기(135)로 공급된다. 신호 ECCREQ(도46C)는 에러 정정을 허용하도록 데이터를 ECC 코어 회로(138)에 전달하기 위해서 RAM(137)과 액세스하거나, SBCD 회로(134)에 전달 SUB(ID 및 IEC) 요청을 출력하도록 ECC 제어 회로(136)에서 RAM 제어기(135)로 공급된다.
RAM 제어기(135)는 이러한 세 신호에 대해 우선 레벨을 미리 설정하고, 이러한 요청이 동시에 행해지면 우선 레벨에 따른 RAM(137)에 ACK(인정) 신호를 순차적으로 출력한다. 신호 EFMACK(도46D), OUTACK(도46E), 및 ECCACK(도46F)는 각각 신호 EFMREQ, OUTREQ, 및 ECCREQ의 요청을 인정함을 나타낸다. 기술된 실시예에서, 우선 레벨은 OUTREQ, EFMREQ, 및 ECCREQ의 순서로 설정된다. 그래서, RAM 제어기(135)는 도46A 내지 도46G에 도시된 바와 같이, 우선 레벨에 따라 대응하는 REQ 신호에 대해 ACK 신호를 출력한다. 이러한 신호는 시스템 클럭으로 사용되는 신호 C11M(도46G)과 동기화하여 수신된다.
상술된 바와 같이, RAM(137)으로의 액세스는 각 지정된 사이클 동안 신호 EFMREQ, ECCREQ, 또는 OUTREQ에 응답하여 수용된다. 그러나, 이러한 사이클은 RAM(137)의 구성이나 유형 또는 액세스 속도에 따라 변할 수 있다.
도47은 한 ECC 블럭에서 데이터의 P1I, PI2, 및 PO 정정을 실행하는데 요청되는 RAM(137)으로의 판독 또는 기록 액세스의 수를 나타내는 도면이다. 도47에 도시된 바와 같이, PI1, PO, 및 PI2 정정을 실행하는데 요청되는 RAM(137)으로의 액세스수는 ECC 블럭 당 214,716이고, 주 프레임 당 평균값은 1,033이다. 예를 들면, EFM+ 복조화 데이터를 기록하는 동안 RAM(137)으로의 액세스수는 주 프레임 당 182이고, ECC 실행 사이클 길이는 208 바이트(208 주 프레임)이므로, 37,856(182 x 208) 액세스가 블럭 당 요청된다. 상기의 값은 각 동작에 대해 요청되는 액세스수를 계산하고 얻어진 값을 함께 가산함으로서 얻어진다.
도48A 내지 도48F는 에러 정정 결과 데이터(ER)를 RAM(137)으로부터 OCTL 회로(139)를 통해 전달하는 동안 다양한 신호의 타이밍도이다. 도48A에 도시된 것에 앞선 클럭 신호 SDCK의 시간 베이스(182 주기)가 도40E, 도41E, 및 도42E에 도시된다. 클럭 SDCK(도48A)는 ER 데이터를 스트림 데이터로 출력하도록 시스템 클럭으로 사용된다. 섹터의 시작부에서 스트로브 신호 SINF(도48B)는 하이로 되어 전달된 데이터가 섹터 정보(SI)임을 나타낸다. 스트로브 신호 ESTB(도48C)는 에러 정정 결과(ER)가 전달됨을 나타내도록 스트로브 처리된다. 각 PI행에서는 PI1, PO, 및 PI2 시퀀스에 대한 각 에러 정정 결과(ER)에 한 바이트가 지정되어 결과 데이터가 총 3 바이트를 차지한다. 이 데이터는 도26에 도시된 바와 같이 저장된 순서와 같은 순서로 출력되므로, 특정한 결과가 연관된 시퀀스는 도45에 도시된 바와 같이 데이터의 비트 5 및 6을 참조하여 식별된다. PO 정정의 결과가 출력되지 않는 PI행에 대해, 스트로브 ESTB는 결과가 출력될 때 로우로 된다.
스트로브 신호 DSTB(도48D)는 도48E에 도시된 신호 SD [7:0] 이 주 데이터일 때 하이로 된다. 신호 SINF, ESTB, 및 DSTB는 OCTL 회로(139)에 의해 발생된다. 섹터 정보(SI)와 에러 정정 결과(ER)는 도48E에 도시된 바와 같이, 클럭 SDCK의 182주기를 사용하여 PI행의 방향에 있는 데이터가 출력되기 바로 전에 출력된다. 에러 플래그 OUTG(보간 플래그)는 에러들을 포함하는 주 데이터를 나타내고 도44에 도시된 바와 같이 플래그 RAM(136C)에 저장된 PI 및 PO 정정 불가능 에러 플래그에 따라 출력되기 전에 주 데이터에 부가된다. OCTL 회로(139)는 SBCD 회로(134)에 의해 발생된 섹터 정보의 비트 4 및 5(도34를 참조)로부터 섹터 내의 데이터가 출력되어야하는가 여부를 결정한다. 섹터 정보의 비트 4 및 5는 각각 종료 및 시작 섹터를 나타낸다(도34를 참조). 그래서, OCTL 회로(139)는 지정된 섹터에서의 데이터(출력되는 데이터)로 비트 4가 0이고 비트 5가 1인 섹터 데이터를 출력한다.
OCTL 회로는 또한 예를 들면, EDC 결과 또는 주 데이터에 대한 에러 플래그의 존재가 호스트 CPU(140)에 의해 미리 설정된 조건과 일치하는가 여부를 결정하고, 그런 경우 복호화 데이타를 출력한다. 그렇지 않은 경우에는 복호화 데이터가 출력되지 않고 호스트 CPU(140)에 에러들이 있음이 알려진다. 예를 들면, 출력되는 데이터에 대한 조건은 다음과 같다:
(1) 데이터는 출력되도록 지정된다;
(2) ECC 결과를 근거로 에러들이 검출되지 않는다;
(3) 주 데이터에 에러 플래그가 부가되지 않는다;
상기의 조건이 일치되면, 데이터는 출력된다. 부가하여, 호스트 CPU(140)는 항상 필요한 경우 데이터의 출력을 금지할 수 있다.
상술된 본 발명의 실시예에서, 신호 MWRQ(즉, 데이터 PI1-R, PO-R, 및 PI2-R)(도40A 내지 도40E, 도41A 내지 도41E, 및 도42A 내지 도42E를 참조)의 182 사이클 중 한 주기 동안 RAM(137)에서 ECC 코어 회로(138)로 전달되는 데이터는 전달 클럭 ECCK에 따라 메모리로부터 판독된다. 그래서, 데이터 전달 주기간 미리 결정된 시간 주기 동안 전달 클럭 ECCK을 멈춤으로서(즉, 제공하지 않음으로서) 데이터의 전달이 금지된다. 이렇게 "멈춘" 주기 동안, RAM(137)으로부터 대응하는 데이터를 판독하고, 에러들을 정정하기 위해 EX-OR 회로(136)가 배타 논리적 가산을 실행하는 것을 허용하고, 또한 RAM(137)에 정정된 데이터를 다시 기록하도록 에러 FIFO(에러 레지스터)(136B)에서 에러 위치 정보 및 정정 패턴을 사용하는 것이 가능하고, 각 데이터(PI1-R, PO-R, 및 PI2-R)에 대해 사용될 수 있는 에러 레지스터(에러 FIFO)와 ECC 코어 회로(138)를 간단히 제공함으로서 ECC 처리가 실행될 수 있다.
데이터(PI1-R, PO-R, 및 PI2-R)가 전달될 때, 데이터 PIL-R 및 PO-R은 클럭 MWRQ(도41A 내지 도41E를 참조)의 제 1 주기 동안 전달되고, RAM 제어기(135)는 ECC 제어 회로(136)를 통해 ECC 코어 회로(136)로 PO-R의 제 2 행을 전달하는 것이 완료될 때 PI1 에러 정정(PI1-W)을 실행한다. RAM 제어기(135)는 클릭 MWRQ의 다음 182 주기 동안 PIL-R의 전달이 완료될 때 클럭 MWRQ의 제 1 182 주기 동안 전달되는 제 1 PO행 내의 에러들을 정정하고, 이어서 제 2 182 주기 동안 PIL-R의 제 1 열의 전달이 완료될 때 제 1 182 주기 동안 전달되는 제 1 PO행 내의 에러들을 정정한다. 그래서, 다수의 동작이 동시에 실행되는 것을 방지한다. 결과적으로, RAM 제어기(135)는 PI 카운터(기록 및 판독을 위해), PO 판독 카운터(전달을 위해), 및PO 기록 카운터(정정을 위해)만을 요청한다.
상술된 실시예는 또한 간략화된 구조의 구성을 갖고, RAM 제어기(135)에 의해 사용되는 최소의 수의 카운터와 에러 위치 및 정정 패턴이 저장된 한 코드 시퀀스에 대한 레지스터(에러 FIFO)를 포함하는 데이터 재생 장치를 제공한다.
ECC 블럭이 수직 방향으로의 PO 코드와 수평 방향으로의 PI 코드를 가산함으로서 구성되므로, 데이터는 한 수평 반향으로의 데이터가 저장된 후 전달될 수 있도록 행 방향으로 저장될 수 있어, 데이터가 제 1 프레임(제 1 행)과 제 2 프레임(제 2 행)에 걸쳐 지그재그로 기록되는 방법과 비교해 ECC 처리시간을 줄인다.
상술된 바와 같이, 복호화되는 코드화 데이터는 메모리에서 순차적으로 판독되고, 계산된 에러 위치 및 정정 패턴은 에러들이 있는 판독 데이터와 정정 패턴을 사용하여 에러 정정을 실행하기 위해 에러 레지스터에 저장된다. 데이터를 정정하는 이러한 기술은 간단하지만 긍정적인 복호화 방법을 제공한다. 이러한 기술은 또한 간략화된 ECC 복호화기를 포함하고 종래 기술에서 요청하는 만큼의 메모리를 요청하지 않는 데이터 재생 장치를 제공한다.
본 발명은 특히 양호한 실시예와 연관되어 도시되고 설명되었지만, 종래기술에 숙련된 자는 본 발명의 의도 및 범위를 벗어나지 않고 다양한 변화가 이루어질 수 있음을 쉽게 알 수 있다. 예를 들면, 기술된 실시예는 클럭 MWRQ의 182 사이클 동안 3회 전달되는 데이터를 설명하지만, 본 발명은 이러한 배열에 제한되지 않고 예를 들면, RAM(137)의 액세스 시간을 줄임으로서 이 주기 동안 4회 이상 데이터를 전달할 수 있다.
또 다른 예로, 본 설명에서는 C1/C2 콘볼루션 리드-솔로몬 코드로 부호화 데이터를 복호화하지만, 본 발명은 단지 이러한 유형의 부호화/복호화에 제한되지 않고 다른 유형의 부호화 시스템에 적용될 수 있다.
그러므로, 첨부된 청구항은 여기서 설명된 실시예, 상술된 다른 방법, 및 그에 동일한 모든 것을 포함하여 해석되도록 만들어졌다.

Claims (19)

  1. C1/C2 콘볼루션 리드-솔로몬형 코드들이 에러 정정 데이터로서 부가된 부호화 데이터(coded data)를 복호화하는 장치에 있어서,
    에러 정정 데이터가 부가된 부호화 데이터를 저장하는 저장 수단으로서, 상기 부호화 데이터는 복수의 프레임들로 배열되고, 상기 프레임들 각각은 미리 결정된 길이의 판독 프레임 클록 사이클 동안 상기 저장 수단에 의해 수신되는, 상기 저장 수단;
    상기 저장 수단에 저장된 상기 부호화 데이터에서의 에러들을 검출하고, 상기 부호화 데이터의 상기 에러들의 위치들을 확인하며, 상기 에러들에 대응하는 에러 정정 패턴들을 출력으로서 공급하는 복호화 수단;
    상기 에러들의 확인된 위치 및 상기 출력 에러 정정 패턴들을 저장하는 에러 레지스터 저장 수단:
    상기 에러 레지스터 저장 수단에 저장된 상기 에러들의 위치들에 대응하는 상기 저장된 부호화 데이터를 판독하도록 상기 저장 수단을 제어하고, 정정된 복호화 데이터(decoded data)를 생성하기 위하여 상기 에러 레지스터 저장 수단에 저장된 상기 에러 정정 패턴들을 사용하여 상기 판독된 부호화 데이터를 복호화하도록 상기 복호화 수단을 제어하는 제어 수단; 및
    미리 결정된 클록 주기를 갖는 단일 시스템 클록을 제공하기 위한 수단을 포함하며,
    상기 저장된 부호화 데이터는 상기 시스템 클록의 제 1 미리 선택된 수의 클록 주기들 동안 상기 저장 수단으로부터 판독되어 상기 복호화 수단에 공급되고, 상기 복호화 수단은 상기 시스템 클록의 제 2 미리 선택된 수의 클록 주기들 동안 상기 판독된 데이터를 복호화하며, 상기 제 1 및 상기 제 2 미리 선택된 수의 클록 주기들은 하나의 판독 프레임 클록 사이클 내에서 발생하고;
    에러 정정 데이터가 부가된 상기 부호화 데이터는 에러 정정 코드의 C11 시퀀스, 에러 정정 코드의 C2 시퀀스 및 에러 정정 코드의 C12 시퀀스를 포함하고, 상기 제어 수단은 에러 정정 코드의 상기 저장된 C11, C2 및 C12 시퀀스들을 상기 복호화 수단에 순차적으로 공급하도록 상기 저장 수단을 제어하고, 상기 에러 정정 코드의 시퀀스가 상기 복호화 수단에 공급된 후에, 에러 정정 코드의 상기 공급된 C11, C2 및 C12 시퀀스들을 순차적으로 복호화하도록 상기 복호화 수단을 제어하는, 복호화 장치.
  2. 제 1 항에 있어서,
    상기 복호화 수단은 상기 저장 수단에 저장된 상기 에러 정정 데이터로부터 상기 에러 정정 패턴들을 생성하는, 복호화 장치.
  3. 제 1 항에 있어서,
    상기 복호화 수단은 정정 가능한 에러들과 정정 불가능한 에러들을 검출하도록 동작할 수 있고, 상기 부호화 데이터에서의 정정 가능한 에러들만의 위치들을확인하는, 복호화 장치.
  4. 제 1 항에 있어서,
    상기 저장 수단은 선입 선출형 메모리 디바이스인, 복호화 장치.
  5. 제 1 항에 있어서,
    상기 부호화 데이터는 데이터의 행들(rows) 및 열들(columns)로 구성되고;
    상기 에러 정정 데이터는 상기 데이터의 행들 각각에 부가되는 내부 코드(inner code)들과 상기 데이터의 열들 각각에 부가되는 외부 코드(outer code)들을 포함하는, 복호화 장치.
  6. 제 5 항에 있어서,
    상기 제어 수단은 상기 저장 수단에 저장된 상기 부호화 데이터의 행들 각각에서 검출된 에러들을 상기 내부 코드들을 사용하여 연속적으로 복호화하도록 상기 복호화 수단을 제어하고; 그 다음, 저장 수단에 저장된 상기 부호화 데이터의 열들 각각에서 검출된 에러들을 상기 외부 코드들을 사용하여 연속적으로 복호화하도록 상기 복호화 수단을 제어하고; 그 다음, 상기 부호화 데이터의 상기 이전에 복호화 행들의 각각에서 검출된 에러들을 상기 내부 코드들을 사용하여 연속적으로 복호화하도록 상기 복호화 수단을 제어하는, 복호화 장치.
  7. 제 5 항에 있어서,
    상기 저장 수단은 먼저, 상기 저장된 부호화 데이터의 블럭을 상기 복호화 수단에 공급하여 상기 블럭에서의 에러들을 검출하고, 이어서 상기 제어 수단에 의해 제어되는 상기 에러들의 위치들에 대응하는 블럭의 부호화 데이터를 공급하는, 복호화 장치.
  8. 제 7 항에 있어서,
    상기 제어 수단은 상기 공급된 블럭의 행들 각각에서 검출된 에러들을 복호화하여 제 1 정정된 복호화 데이터를 생성하도록 상기 복호화 수단을 제어하고, 상기 제 1 정정된 복호화 데이터를 저장하도록 상기 저장 수단을 제어하고, 이어서 상기 공급된 블럭의 열들 각각에서 검출된 에러들을 복호화하여 제 2 정정된 복호화 데이터를 생성하도록 상기 복호화 수단을 제어하고, 상기 제 2 정정된 복호화 데이터를 저장하도록 상기 저장 수단을 제어하는, 복호화 장치.
  9. 제 5 항에 있어서,
    상기 외부 코드들은 외부 코드들의 행들을 포함하고, 상기 외부 코드들의 행 각각은 데이터의 두 행들 사이에 인터리빙되며; 상기 복호화 수단은 에러 정정 데이터가 부가된 상기 부호화 데이터를 디인터리빙하는 수단을 포함하는, 복호화 장치.
  10. Cl/C12 콘볼루션 리드-솔로몬형 코드들이 에러 정정 데이터로서 부가된 부호화 데이터를 복호화하는 방법에 있어서,
    에러 정정 데이터가 부가된 부호화 데이터를 제 1 메모리에 저장하는 단계로서, 상기 부호화 데이터는 복수의 프레임들로 배열되고, 상기 프레임들 각각은 미리 결정된 길이의 판독 프레임 클록 사이클 동안 수신되는, 상기 저장 단계;
    상기 제 1 메모리에 저장된 상기 부호화 데이터에서의 에러들을 검출하는 단계;
    상기 부호화 데이터에서의 상기 에러들의 위치들을 확인하는 단계;
    상기 에러들에 대응하는 에러 정정 패턴들을 공급하는 단계;
    상기 에러들의 확인된 위치들 및 상기 공급된 에러 정정 패턴들을 상기 제 2 메모리에 저장하는 단계;
    미리 결정된 클록 주기를 갖는 단일 시스템 클록을 제공하는 단계;
    상기 시스템 클록의 제 1 미리 선택된 수의 클록 주기들 동안, 상기 제 2 메모리에 저장된 상기 에러들의 위치들에 대응하는 상기 부호화 데이터를 상기 제 1 메모리로부터 판독하는 단계; 및
    정정된 복호화 데이터를 생성하기 위해 상기 시스템 클록의 제 2 미리 선택된 수의 클록 주기들 동안, 상기 에러들의 위치들에 대응하는 상기 판독된 부호화 데이터를 상기 제 2 메모리에 저장된 상기 에러 정정 패턴들을 사용하여 복호화하는 단계로서, 상기 제 1 및 제 2 미리 선택된 수의 클록 주기들은 하나의 판독 프레임 클록 사이클 내에서 발생하는, 상기 복호화 단계를 포함하고,
    에러 정정 데이터가 부가된 상기 부호화 데이터는 에러 정정 코드의 C11 시퀀스, 에러 정정 코드의 C2 시퀀스 및 에러 정정 코드의 C12 시퀀스를 포함하고; 에러 정정 코드의 상기 C11, C2 및 C12 시퀀스들은 상기 제 1 메모리로부터 순차적으로 판독된 후 복호화되는, 복호화 방법.
  11. 제 10 항에 있어서,
    상기 에러 정정 패턴들은 상기 제 1 메모리에 저장된 상기 에러 정정 데이터로부터 생성되는, 복호화 방법.
  12. 제 10 항에 있어서,
    상기 검출 단계는 상기 제 1 메모리에 저장된 상기 부호화 데이터에서의 정정 가능한 에러들을 검출함으로써 수행되는, 복호화 방법.
  13. 제 10 항에 있어서,
    상기 부호화 데이터는 데이터의 행들 및 열들로 구성되고; 상기 에러 정정 데이터는 상기 데이터의 행들 각각에 부가되는 내부 코드들과 상기 데이터의 열들 각각에 부가되는 외부 코드들을 포함하는, 복호화 방법.
  14. 제 13 항에 있어서,
    상기 복호화 단계는, 상기 제 1 메모리에 저장된 상기 부호화 데이터의 행들각각에서 검출된 에러들을 상기 내부 코드들을 사용하여 연속으로 복호화하고, 상기 제 1 메모리에 저장된 상기 부호화 데이터의 열들 각각에서 검출된 에러들을 상기 외부 코드들을 사용하여 연속으로 복호화하고, 상기 부호화 데이터의 상기 이전에 복호화 행들 각각에서 검출된 에러들을 상기 내부 코드들을 사용하여 연속으로 복호화함으로써 수행되는, 복호화 방법.
  15. 제 13 항에 있어서,
    상기 제 1 저장 단계는 부호화 데이터의 블럭을 저장하고; 상기 검출 단계는 상기 블럭의 에러들을 검출함으로써 수행되며; 상기 판독 단계는 상기 에러들의 위치들에 대응하는 블럭의 상기 부호화 데이터를 상기 제 1 메모리로부터 판독함으로써 수행되는, 복호화 방법.
  16. 제 15 항에 있어서,
    상기 제 1 메모리에 저장된 상기 블럭의 행들 각각에서의 에러들이 검출 및 복호화되어 제 1 정정된 부호화 데이터를 생성하고, 그 다음 상기 제 1 메모리에 저장된 상기 블럭의 열들 각각에서의 에러들이 검출 및 복호화되어 제 2 정정된 부호화 데이터를 생성하는, 복호화 방법.
  17. 제 13 항에 있어서,
    상기 외부 코드들은 외부 코드들의 행들을 포함하고, 상기 외부 코드들의 행각각은 데이터의 두 행들 사이에 인터리빙되며; 상기 복호화 방법은 에러 정정 데이터가 부가된 상기 데이터 코드를 디인터리빙하는 단계를 포함하는, 복호화 방법.
  18. 기록 매체로부터, C1/C2 콘볼루션 리드-솔로몬형 코드들이 에러 정정 데이터로서 부가된 부호화 비디오 신호들을 재생 및 복호화하는 장치에 있어서,
    기록 매체로부터 에러 정정 데이터가 부가된 부호화 비디오 데이터를 재생하는 수단;
    에러 정정 데이터가 부가된 부호화 비디오 데이터를 저장하는 수단으로서, 상기 부호화 비디오 데이터는 복수의 프레임들로 배열되고, 상기 프레임들 각각은 미리 결정된 길이의 판독 프레임 클록 사이클 동안 상기 저장 수단에 의해 수신되는, 상기 저장 수단;
    상기 저장 수단에 저장된 상기 부호화 비디오 데이터에서의 에러들을 검출하고, 상기 부호화 비디오 데이터에서의 상기 에러들의 위치들을 확인하고, 상기 에러들에 대응하는 에러 정정 패턴들을 출력으로서 공급하는 복호화 수단;
    상기 에러들의 확인된 위치들 및 상기 출력 에러 정정 패턴들을 저장하는 에러 레지스터 저장 수단;
    상기 에러 레지스터 저장 수단에 저장된 상기 에러들의 위치들에 대응하는 상기 저장된 부호화 비디오 데이터를 판독하도록 상기 저장 수단을 제어하고, 정정된 복호화 비디오 데이터를 생성하기 위해 상기 에러 레지스터 저장 수단에 저장된 상기 에러 정정 패턴들을 사용하여 상기 판독된 부호화 데이터를 복호화하도록 상기 복호화 수단을 제어하는 제어 수단; 및
    미리 결정된 클록 주기를 갖는 단일 시스템 클록을 제공하는 수단을 포함하고,
    상기 저장된 부호화 비디오 데이터는 상기 시스템 클록의 제 1 미리 선택된 수의 클록 주기들 동안 상기 저장 수단으로부터 판독되어 상기 복호화 수단에 공급되고; 상기 복호화 수단은 상기 시스템 클록의 제 2 미리 선택된 수의 클록 주기들 동안 상기 판독된 비디오 데이트를 복호화하며, 상기 제 1 및 제 2 미리 선택된 수의 클록 주기들은 하나의 판독 프레임 클록 사이클 내에서 발생하며;
    에러 정정 데이터가 부가된 상기 부호화 비디오 데이터는 에러 정정 코드의 C11 시퀀스, 에러 정정 코드의 C2 시퀀스 및 에러 정정 코드의 C12 시퀀스를 포함하고, 상기 제어 수단은 에러 정정 코드의 상기 저장된 C11, C2 및 C12 시퀀스들을 상기 복호화 수단에 순차적으로 공급하도록 상기 저장 수단을 제어하고, 상기 에러 정정 코드의 시퀀스가 상기 복호화 수단에 공급된 후에, 에러 정정 코드의 상기 공급된 C11, C2 및 C12 시퀀스들을 순차적으로 복호화하도록 상기 복호화 수단을 제어하는, 재생 및 복호화 장치.
  19. 기록 매체로부터, C1/C2 콘볼루션 리드-솔로몬형 코드들이 에러 정정 데이터로서 부가된 부호화 비디오 신호들을 재생 및 복호화하는 방법에 있어서,
    기록 매체로부터, 에러 정정 데이터가 부가된 부호화 비디오 데이터를 재생하는 단계;
    에러 정정 데이터가 부가된 부호화 비디오 데이터를 제 1 메모리에 저장하는 단계로서, 상기 부호화 비디오 데이터는 복수의 프레임들로 배열되고, 상기 프레임들 각각은 미리 결정된 길이의 판독 프레임 클록 사이클 동안 수신되는, 상기 저장 단계;
    상기 제 1 메모리에 저장된 부호화 비디오 데이터에서의 에러들을 검출하는 단계;
    상기 부호화 비디오 데이터에서의 상기 에러들의 위치들을 확인하는 단계;
    상기 에러들에 대응하는 에러 정정 패턴들을 공급하는 단계;
    상기 에러들의 확인된 위치들 및 상기 공급된 에러 정정 패턴들을 상기 제 2 메모리에 저장하는 단계;
    미리 결정된 클록 주기를 갖는 단일 시스템 클록을 제공하는 단계;
    상기 시스템 클록의 제 1 미리 선택된 수의 클록 주기들 동안, 상기 제 2 메모리에 저장된 상기 에러들의 위치들에 대응하는 상기 부호화 비디오 데이터를 상기 제 1 메모리로부터 판독하는 단계; 및
    정정된 부호화 비디오 데이터를 생성하기 위해 상기 시스템 클록의 제 2 미리 선택된 수의 클록 주기들 동안, 상기 에러들의 위치들에 대응하는 상기 판독된 부호화 비디오 데이터를 상기 제 2 메모리에 저장된 상기 에러 정정 패턴들을 사용하여 복호화하는 단계로서, 상기 제 1 및 제 2 미리 선택된 수의 클록 주기들은 하나의 판독 프레임 클록 사이클 내에서 발생하는, 상기 복호화 단계를 포함하고,
    에러 정정 데이터가 부가된 상기 부호화 비디오 데이터는 에러 정정 코드의C11 시퀀스, 에러 정정 코드의 C2 시퀀스 및 에러 정정 코드의 C12 시퀀스를 포함하고, 상기 에러 정정 코드의 C11, C2 및 C12 시퀀스들은 상기 제 1 메모리로부터 순차적으로 판독된 후 복호화되는, 재생 및 복호화 방법.
KR1019960081375A 1995-12-25 1996-12-26 부호화데이터를재생및복호화하는장치및방법 KR100449931B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP95-351630 1995-12-25
JP35163095 1995-12-25

Publications (2)

Publication Number Publication Date
KR970055617A KR970055617A (ko) 1997-07-31
KR100449931B1 true KR100449931B1 (ko) 2004-12-04

Family

ID=18418558

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960081375A KR100449931B1 (ko) 1995-12-25 1996-12-26 부호화데이터를재생및복호화하는장치및방법

Country Status (7)

Country Link
US (1) US5901159A (ko)
EP (1) EP0782138B1 (ko)
JP (1) JP3305966B2 (ko)
KR (1) KR100449931B1 (ko)
CN (1) CN1127085C (ko)
DE (1) DE69622360T2 (ko)
MY (1) MY115663A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881192B1 (ko) 2006-11-14 2009-02-05 삼성전자주식회사 에러 패턴 검출 방법, 에러 정정 장치, 및 데이터 부호화 방법

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6173429B1 (en) * 1997-03-14 2001-01-09 Harris Corporation Apparatus for providing error correction data in a digital data transfer system
JP3042607B2 (ja) * 1997-06-13 2000-05-15 日本電気株式会社 同期検出回路
JP3488603B2 (ja) * 1997-09-16 2004-01-19 株式会社東芝 電子透かしを利用したコピープロテクトシステム
US6671292B1 (en) * 1999-06-25 2003-12-30 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for adaptive voice buffering
KR100611955B1 (ko) * 1999-07-20 2006-08-11 삼성전자주식회사 스크램블러
KR100685360B1 (ko) * 2000-01-31 2007-02-22 산요덴키가부시키가이샤 회로 규모를 억제하며 고속의 오류 정정을 행하는 것이 가능한 오류 정정 장치 및 복호 장치
KR100378181B1 (ko) 2000-06-09 2003-03-29 삼성전자주식회사 Efm/efm+ 디코딩에 의해 검출된 에러위치를 이용한c1/pi 워드의 에러정정 방법 및 장치
EP1233523A1 (en) 2001-02-16 2002-08-21 Deutsche Thomson-Brandt Gmbh Method and apparatus for decoding error correction code
TWI227869B (en) * 2002-11-04 2005-02-11 Mediatek Inc Data coding method and system
JP3708064B2 (ja) * 2002-05-31 2005-10-19 株式会社東芝 ディスク記憶装置、ディスクコントローラ及び同装置に適用するエラー訂正方法
EP1388944A1 (en) * 2002-08-10 2004-02-11 Deutsche Thomson-Brandt Gmbh Cross interleave reed-solomon code correction
US7055082B2 (en) 2002-10-29 2006-05-30 Victor Company Of Japan, Ltd. Information recording and reproducing apparatus
US7904786B2 (en) * 2003-03-06 2011-03-08 Hewlett-Packard Development Company, L.P. Assisted memory system
CN100399452C (zh) * 2003-10-31 2008-07-02 仁宝电脑工业股份有限公司 资料读取及判别的方法与装置
US7444581B2 (en) * 2003-11-04 2008-10-28 Texas Instruments Incorporated Error handling of storage device data in real time systems
KR100578030B1 (ko) * 2004-04-27 2006-05-22 충북대학교 산학협력단 정치식 원적외선 건조기
DE102004036383B4 (de) * 2004-07-27 2006-06-14 Siemens Ag Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen
KR100688534B1 (ko) * 2005-01-26 2007-03-02 삼성전자주식회사 변조 코드의 부호화 및 복호화방법 및 장치
US7370261B2 (en) * 2005-05-09 2008-05-06 International Business Machines Corporation Convolution-encoded raid with trellis-decode-rebuild
US7613983B2 (en) * 2005-06-24 2009-11-03 Kabushiki Kaisha Toshiba Error correction device of optical disk unit
CN101312349B (zh) * 2007-05-26 2010-08-25 华为技术有限公司 信息块编码及同步检测的方法和装置
WO2010134328A1 (ja) * 2009-05-21 2010-11-25 パナソニック株式会社 光ディスク再生装置、光ディスク再生方法、再生処理装置及び再生処理方法
JP2011065599A (ja) * 2009-09-18 2011-03-31 Toshiba Corp メモリシステムおよびメモリシステムの制御方法
JP5586448B2 (ja) * 2010-12-20 2014-09-10 三菱電機株式会社 光伝送装置
US8484542B2 (en) 2011-02-08 2013-07-09 Sandisk Technologies Inc. Data recovery using additional error correction coding data
US20150067444A1 (en) * 2013-09-04 2015-03-05 Kabushiki Kaisha Toshiba Semiconductor storage device and memory system
JP6028709B2 (ja) * 2013-10-18 2016-11-16 ソニー株式会社 記憶制御装置、記憶装置、情報処理システムおよびその記憶制御方法
CN105472390B (zh) * 2015-12-25 2018-05-25 福州瑞芯微电子股份有限公司 一种视频解码方法和系统
US10372531B2 (en) * 2017-01-05 2019-08-06 Texas Instruments Incorporated Error-correcting code memory
US10795759B2 (en) * 2018-09-10 2020-10-06 Micron Technology, Inc. Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4646303A (en) * 1983-10-05 1987-02-24 Nippon Gakki Seizo Kabushiki Kaisha Data error detection and correction circuit
JPH07107782B2 (ja) * 1986-02-28 1995-11-15 ソニー株式会社 ディジタルテープレコーダ
NL8601437A (nl) * 1986-06-04 1988-01-04 Philips Nv Sequentiele bufferinrichting.
JPS6356022A (ja) * 1986-08-26 1988-03-10 Victor Co Of Japan Ltd デイジタル記録再生装置
JP2649038B2 (ja) * 1986-11-05 1997-09-03 日立電子エンジニアリング株式会社 光デイスク検査装置
US4845714A (en) * 1987-06-08 1989-07-04 Exabyte Corporation Multiple pass error correction process and apparatus for product codes
US5068855A (en) * 1988-07-18 1991-11-26 Canon Kabushiki Kaisha Error correcting method and apparatus
JPH02132683A (ja) * 1988-11-11 1990-05-22 Matsushita Electric Ind Co Ltd ディスク再生装置
US5255272A (en) * 1991-02-25 1993-10-19 Storage Technology Corporation Predictive tape drive error correction apparatus
EP0571096B1 (en) * 1992-05-18 1999-06-23 Canon Kabushiki Kaisha Data processing apparatus
JPH06111495A (ja) * 1992-09-30 1994-04-22 Sony Corp データ再生装置
JP2821324B2 (ja) * 1992-11-04 1998-11-05 三菱電機株式会社 誤り訂正回路
JP3555664B2 (ja) * 1993-09-29 2004-08-18 ソニー株式会社 データ再生方法及びデータ再生装置
JPH0798890A (ja) * 1993-09-30 1995-04-11 Sony Corp 光ディスク記録媒体、光ディスク記録方法及び光ディスク再生装置
JP3336092B2 (ja) * 1993-09-30 2002-10-21 株式会社デノン 再生装置
KR950010768B1 (ko) * 1993-10-20 1995-09-22 주식회사 Lg전자 에러 정정 코드 복호 장치 및 그 방법
JP3154607B2 (ja) * 1993-12-28 2001-04-09 三菱電機株式会社 誤り訂正復号装置及び誤り訂正復号方法
SG24105A1 (en) * 1994-03-19 1996-02-10 Sony Corp Apparatus for recording and reproducing information
JPH07311950A (ja) * 1994-03-19 1995-11-28 Sony Corp 光ディスク記録媒体、光ディスク記録方法、光ディスク記録装置、及び光ディスク再生装置
JP3328093B2 (ja) * 1994-07-12 2002-09-24 三菱電機株式会社 エラー訂正装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100881192B1 (ko) 2006-11-14 2009-02-05 삼성전자주식회사 에러 패턴 검출 방법, 에러 정정 장치, 및 데이터 부호화 방법

Also Published As

Publication number Publication date
JPH09238085A (ja) 1997-09-09
EP0782138B1 (en) 2002-07-17
US5901159A (en) 1999-05-04
DE69622360D1 (de) 2002-08-22
MY115663A (en) 2003-08-30
CN1127085C (zh) 2003-11-05
EP0782138A3 (en) 1999-06-30
CN1167981A (zh) 1997-12-17
KR970055617A (ko) 1997-07-31
DE69622360T2 (de) 2003-03-27
EP0782138A2 (en) 1997-07-02
JP3305966B2 (ja) 2002-07-24

Similar Documents

Publication Publication Date Title
KR100449931B1 (ko) 부호화데이터를재생및복호화하는장치및방법
KR100496211B1 (ko) 데이터복호장치및그방법및데이터재생장치
US5793724A (en) Optical disk error-correcting code system correlating error correction with sector address
KR100195015B1 (ko) 메모리 제어장치 및 방법
KR100319990B1 (ko) 데이타재생방법및데이타재생장치
JP3562544B2 (ja) 復号化装置および復号化方法
KR100217745B1 (ko) 디지탈 비디오 디스크 재생장치의 시스템 디코더
JP2919445B2 (ja) データ高速伝送のためのシステムデコーダ及びトラックバッファリング制御方法
JP3555664B2 (ja) データ再生方法及びデータ再生装置
JP3672139B2 (ja) データ復号装置及びその方法並びにデータ再生装置
JP4140344B2 (ja) 復号化装置及びコンピュータプログラム
JP3564910B2 (ja) データ再生装置及びデータ再生方法
US6072755A (en) Optical disk player having multidomain memory for storing demodulated, error-corrected and descrambled data
JP3700885B2 (ja) データ復号装置及びその方法並びにデータ再生装置
JPH09265730A (ja) データ再生装置、再生方法
KR19980066264A (ko) 데이터 디코딩 장치와 방법 및 데이터 재생 장치
KR100238667B1 (ko) 디지탈 비디오 디스크 재생장치의 시스템 디코더
JP4061550B2 (ja) データ再生方法及びデータ再生装置
JP4193256B2 (ja) オーディオ信号処理装置および方法、ならびに、映像音声記録再生装置
KR100200096B1 (ko) 메모리의 전송데이타 인터페이스 장치 및 방법
JPH09266564A (ja) データ復号装置及びその方法並びにデータ再生装置
KR0182970B1 (ko) 메모리 잔량 제어장치
KR100408023B1 (ko) 저속 재생 장치 및 방법
KR19990033794A (ko) 가변 비트 레이트 버퍼의 데이터 입출력 제어장치 및 방법
JPH10340547A (ja) ディジタル信号処理装置および方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120910

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee