KR100784740B1 - Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus - Google Patents

Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus Download PDF

Info

Publication number
KR100784740B1
KR100784740B1 KR1020060073966A KR20060073966A KR100784740B1 KR 100784740 B1 KR100784740 B1 KR 100784740B1 KR 1020060073966 A KR1020060073966 A KR 1020060073966A KR 20060073966 A KR20060073966 A KR 20060073966A KR 100784740 B1 KR100784740 B1 KR 100784740B1
Authority
KR
South Korea
Prior art keywords
data
user data
error detection
sequence
edc
Prior art date
Application number
KR1020060073966A
Other languages
Korean (ko)
Other versions
KR20070017080A (en
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 엔이씨 일렉트로닉스 가부시키가이샤
Priority to KR1020060073966A priority Critical patent/KR100784740B1/en
Publication of KR20070017080A publication Critical patent/KR20070017080A/en
Application granted granted Critical
Publication of KR100784740B1 publication Critical patent/KR100784740B1/en

Links

Images

Classifications

    • 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/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • 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/10527Audio or video recording; Data buffering arrangements
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1221Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc cluster, i.e. a data structure which consists of a fixed number of sectors or ECC blocks
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1218Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc
    • G11B2020/1232Formatting, e.g. arrangement of data block or words on the record carriers on discs wherein the formatting concerns a specific area of the disc sector, i.e. the minimal addressable physical data unit
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1267Address data
    • G11B2020/1271Address data the address data being stored in a subcode, e.g. in the Q channel of a CD
    • G11B2020/1272Burst indicator subcode [BIS]

Abstract

레코딩 장치는 유저 데이터에 EDC 를 부가하고 EDC-부가 데이터를 코딩 방향 Q 와는 상이한 시퀀스로 스크램블러로 전송한다. 프로세싱 데이터가 방향 Q 의 말단부에 부가되지만, 그것은 상이한 시퀀스의 중간에 삽입된다. 따라서, 상이한 시퀀스로 EDC-부가 데이터를 전송하기 위해, EDC 생성기는 우수 섹터의 후반부의 예상값으로부터 EDC 중간값을 계산한다. 그 다음, EDC 생성기는 상이한 시퀀스의 유저 데이터를 수신하고, 우수 섹터의 전반부와 기수 섹터의 예상값 및 EDC 중간값으로부터 EDC 를 산출한다. 예상값은 EDC-부가 데이터와 동일한 넘버의 비트를 갖는 코드 스트링의 에러 검출값이며, 방향 Q 의 시퀀스의 대응하는 비트는 1 이고, 다른 비트들은 0 이다. The recording apparatus adds the EDC to the user data and sends the EDC-added data to the scrambler in a sequence different from the coding direction Q. Although the processing data is added at the end of the direction Q, it is inserted in the middle of the different sequence. Thus, in order to send the EDC-added data in a different sequence, the EDC generator calculates the EDC median from the expected value of the second half of the even sector. The EDC generator then receives a different sequence of user data and calculates an EDC from the first half of the even sector and the expected value of the odd sector and the median EDC. The expected value is the error detection value of the code string having the same number of bits as the EDC-addition data, the corresponding bit of the sequence of direction Q is 1 and the other bits are 0.

에러 검출 코드 산출 회로, 에러 검출 코드 산출 방법, 레코딩 장치Error detection code calculation circuit, error detection code calculation method, recording apparatus

Description

에러 검출 코드 산출 회로, 에러 검출 코드 산출 방법, 및 레코딩 장치{ERROR DETECTING CODE CALCULATION CIRCUIT, ERROR DETECTING CODE CALCULATION METHOD, AND RECORDING APPARATUS}ERROR DETECTING CODE CALCULATION CIRCUIT, ERROR DETECTING CODE CALCULATION METHOD, AND RECORDING APPARATUS}

도 1 은 블루-레이 (Blu-ray) 디스크의 데이터 블록의 데이터 시퀀스를 나타내는 도면.1 shows a data sequence of a data block of a Blu-ray disc.

도 2 는 섹터 Sec 0 및 Sec 1 을 갖는 영역의 확대도.2 is an enlarged view of an area having sectors Sec 0 and Sec 1;

도 3 은 미국 특허출원 제 11/366,629 호에 개시된 레코딩 장치의 에러 검출 코드 산출부를 나타내는 도면.Fig. 3 is a diagram showing an error detection code calculating section of the recording device disclosed in US patent application Ser. No. 11 / 366,629.

도 4 는 본 발명의 제 1 예시적인 실시형태에 따른 디스크 인코딩 디바이스의 개략도.4 is a schematic diagram of a disc encoding device according to the first exemplary embodiment of the present invention.

도 5 는 본 발명의 예시적인 실시형태에 따른 경로 S1 및 경로 S2 에 대해 이용되는 유저 데이터를 나타내는 도면.5 shows user data used for path S1 and path S2 in accordance with an exemplary embodiment of the present invention.

도 6 은 데이터 블록의 전송 블록을 나타내는 도면.6 illustrates a transport block of a data block.

도 7 은 경로 S1 및 S2 의 데이터 프로세싱 타이밍을 나타내는 도면.7 shows data processing timing of paths S1 and S2.

도 8 은 본 발명의 예시적인 실시형태에 따른 레코딩 장치에서 EDC 를 산출할 때 이용되는 예상값을 나타내는 도면.8 shows an expected value used when calculating an EDC in a recording apparatus according to an exemplary embodiment of the present invention.

도 9 는 EDC 산출의 개념을 나타내는 도면.9 illustrates the concept of EDC calculation.

도 10 은 예상값을 생성하는 방법을 나타내는 플로우차트.10 is a flowchart illustrating a method of generating an expected value.

도 11 은 본 발명의 예시적인 실시형태에 따른 레코딩 장치의 경로 1 의 프로세싱을 나타내는 도면.11 shows processing of path 1 of a recording apparatus according to an exemplary embodiment of the present invention.

도 12 는 본 발명의 예시적인 실시형태에 따른 레코딩 장치의 경로 1 의 프로세싱을 수행하는 EDC 생성기의 상세한 일예를 나타내는 도면.12 illustrates a detailed example of an EDC generator that performs the processing of path 1 of a recording apparatus according to an exemplary embodiment of the present invention.

도 13 은 EDC 생성기의 EDC 예상값 생성기의 일예를 나타내는 도면.13 is a diagram illustrating an example of an EDC expected value generator of an EDC generator.

도 14 는 EDC 생성기가 참조하는 EDC 테이블과 초기 예상값 사이의 관계를 나타내는 개략도.14 is a schematic diagram showing a relationship between an EDC table referenced by an EDC generator and an initial expected value.

도 15 는 본 발명의 예시적인 실시형태에 따른 레코딩 장치의 경로 2 의 프로세싱을 나타내는 도면.15 shows processing of path 2 of a recording apparatus according to an exemplary embodiment of the present invention.

도 16 은 본 발명의 예시적인 실시형태에 따른 레코딩 장치의 경로 2 의 프로세싱을 수행하는 EDC 생성기의 상세한 일예를 나타내는 도면.FIG. 16 shows a detailed example of an EDC generator for performing the processing of path 2 of a recording apparatus according to an exemplary embodiment of the present invention. FIG.

도 17 은 경로 1 의 EDC 생성 프로세스를 나타내는 플로우차트.FIG. 17 is a flowchart illustrating an EDC generation process of path 1. FIG.

도 18 은 경로 2 의 EDC 생성 프로세스를 나타내는 플로우차트.18 is a flowchart illustrating an EDC generation process of path 2. FIG.

도 19 는 EDC 플래그 및 EDC 영역 플래그를 나타내는 도면.19 illustrates an EDC flag and an EDC area flag.

도 20 은 도 18 의 단계 S31 의 상세한 내용을 나타내는 플로우차트.20 is a flowchart showing details of step S31 of FIG. 18;

도 21 은 도 18 의 단계 S35 의 상세한 내용을 나타내는 플로우차트.FIG. 21 is a flowchart showing details of step S35 of FIG. 18;

도 22 는 도 18 의 단계 S41 의 상세한 내용을 나타내는 플로우차트.FIG. 22 is a flowchart showing details of step S41 of FIG. 18;

도 23 또한 도 18 의 단계 S41 의 상세한 내용을 나타내는 플로우차트.FIG. 23 is a flowchart showing details of step S41 of FIG. 18;

도 24 는 EDC 테이블을 업데이트하는 방법을 나타내는 도면.24 illustrates a method of updating an EDC table.

도 25 는 도 18 의 단계 S42 의 상세한 내용을 나타내는 플로우차트.FIG. 25 is a flowchart showing details of step S42 of FIG. 18;

도 26 은 섹터 카운터를 업데이트하는 방법을 나타내는 도면.26 illustrates a method of updating a sector counter.

도 27 은 본 발명의 일 실시형태의 이점을 나타내는 도면. 27 illustrates the advantages of one embodiment of the present invention.

도 28 은 본 발명의 제 2 예시적인 실시형태에 따른 디스크 인코딩 디바이스를 나타내는 개략도.28 is a schematic diagram illustrating a disk encoding device according to a second exemplary embodiment of the present invention.

도 29 는 블루-레이 디스크의 데이터 구조를 나타내는 도면.29 shows the data structure of a Blu-ray disc;

도 30 은 ECC 클러스터의 포맷을 나타내는 개략도.30 is a schematic diagram showing the format of an ECC cluster.

도 31 은 LDC 블록을 나타내는 개략도.31 is a schematic diagram showing an LDC block.

도 32 는 유저 데이터 및 어드레스 정보로부터 RUB 를 형성하기 위한 각각의 데이터의 인코딩 프로세스를 나타내는 도면.32 is a diagram showing an encoding process of respective data for forming a RUB from user data and address information;

도 33 은 일본 무심사 공개특허공보 제 2004-192749 호에 설명된 재생 장치를 나타내는 블록도.33 is a block diagram showing a playback apparatus described in Japanese Unexamined Patent Publication No. 2004-192749.

*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *

1: 레코딩 장치 2: 데이터 버퍼1: recording device 2: data buffer

3: 버퍼 컨트롤러 4: 인코더3: buffer controller 4: encoder

13: EDC 생성기 14: EDC 버퍼13: EDC Generator 14: EDC Buffer

15: 통합 섹션 61: 컬럼 카운터15: Integration Section 61: Column Counter

62: 선택기 63: EDC 예상값 생성기62: selector 63: EDC estimate generator

65: XOR 회로 67: 섹터 카운터65: XOR circuit 67: sector counter

98: 스크램블러 99: 치환 버퍼98: scrambler 99: replacement buffer

명세서, 도면 및 요약서를 포함하는, 2006년 3월 3일에 출원된 미국 특허출원 제 11/366,629 호의 개시내용은 그 전체가 참조로서 여기에 통합된다. The disclosure of US patent application Ser. No. 11 / 366,629, filed March 3, 2006, including the specification, drawings, and abstract, is incorporated herein by reference in its entirety.

본 발명은 에러 검출 코드 산출 유닛, 에러 검출 코드 산출 방법, 및 광 디스크 상에 데이터를 레코딩하는 속도를 증가시키는 레코딩 장치에 관한 것이다. The present invention relates to an error detection code calculation unit, an error detection code calculation method, and a recording apparatus for increasing the speed of recording data on an optical disc.

CD, CD-R/RW 및 CD-ROM 과 같은 소위 제 1 세대 광 디스크 및 DVD (Digital Versatile Disc) 와 같은 제 2 세대 광 디스크에 이어, 405nm 의 더 짧은 파장의 광원 (청-자색 광) 을 이용한 블루-레이 (Blu-ray 디스크) 인 소위 제 3 세대 광 디스크가 개발되었다. 블루-레이 디스크는, 대물 렌즈의 NA (numerical aperture) 를 0.85 까지 증가시켜 빔 스팟 면적 (beam spot area) 을 DVD 보다 약 1/5 로 감소시키고, 광원의 파장을 짧게 함으로써, DVD 보다 약 5 배 정도의 레코딩 밀도로 레코드 마크를 리딩 (reading) 하고 라이팅 (writing) 하는 것을 가능하게 한다. 또한, 블루-레이 디스크는, 디스크 기판 상에 위치한, 0.1 mm 두께의 투명 커버링 레이어 (transparent covering layer) 로 덮인 위상 변화 레코딩 레이어를 갖고, 그에 의해, 디스크와 레이저 광의 상대적인 경사로 인한 광행차를 감소시킨다 ("차세대 광 디스크 (Next generation optical disc)", 니케이 일렉트로닉스 북, 2003년 10월 7일 참조).Following the so-called first generation optical discs such as CD, CD-R / RW and CD-ROM and the second generation optical discs such as Digital Versatile Disc (DVD), a shorter wavelength light source (blue-violet light) of 405 nm is A so-called third-generation optical disc has been developed which is a Blu-ray disc. Blu-ray discs increase the NA (numerical aperture) of the objective lens to 0.85, reducing the beam spot area to about 1/5 of the DVD, and shortening the wavelength of the light source, thereby about 5 times that of DVD. It is possible to read and write record marks with a recording density of a degree. In addition, the Blu-ray disc has a phase change recording layer covered with a 0.1 mm thick transparent covering layer, located on the disc substrate, thereby reducing the light travel due to the relative inclination of the disc and the laser light ( "Next generation optical disc", Nikkei Electronics Book, Oct. 7, 2003).

블루-레이 디스크의 데이터 구조는 표준에 의해 다음과 같이 상술된다. 도 29 는 블루-레이 디스크의 데이터 구조를 나타내는 도면이다. 블루-레이 표준에서, 레코딩 데이터는 클러스터로도 불리는 레코딩 유닛 블록 (RUB; 302) 의 단위로 디스크 (301) 상으로 레코딩된다. RUB (302) 는, 데이터 오버라이팅을 위한 갭 필드 (gap field) 또는 버퍼 필드인 런-인 (303) 및 런-아웃 (305) 과, 이들 필드 사이에 위치한 물리적 클러스터 (304) 로 이루어진다. 런-인 (303) 은 2760 채널 비트 (cbs) 로 이루어지고, 런-아웃 (305) 은 1104cbs 로 이루어진다. 물리적 클러스터는 1932cbs*496프레임 = 958272cbs 로 이루어진다. 런-인 (303) 및 런-아웃 (305) 은 2 프레임 또는 레코딩 프레임의 채널 비트 길이에 합쳐지고, 이는 나중에 설명한다. 물리적 클러스터 (304) 는 유저 데이터, 디스크 어드레스 정보 등을 포함하는 BIS (burst indicator subcode) 로 이루어진다. The data structure of a Blu-ray disc is detailed as follows by the standard. 29 is a diagram showing a data structure of a Blu-ray disc. In the Blu-ray standard, recording data is recorded onto disk 301 in units of recording unit blocks (RUBs) 302, also called clusters. RUB 302 consists of a run-in 303 and run-out 305 which are gap fields or buffer fields for data overwriting, and a physical cluster 304 located between these fields. Run-in 303 consists of 2760 channel bits (cbs) and run-out 305 consists of 1104 cbs. The physical cluster consists of 1932cbs * 496 frames = 958272cbs. Run-in 303 and run-out 305 are combined with the channel bit length of two frames or recording frames, which will be described later. Physical cluster 304 is comprised of a burst indicator subcode (BIS) that contains user data, disk address information, and the like.

물리적 클러스터 (304) 는 496 레코딩 프레임 (306) 으로 이루어진다. 프레임 싱크 (frame sync) 는 각각의 레코딩 프레임 (306) 의 개시부에 위치한다. 따라서, 물리적 클러스터 (304) 를 구성하는 496 프레임 (레코딩 프레임 (306)) 과 런-인 (303) 및 런-아웃 (305) 의 2 프레임의 합인 498 프레임이 1 RUB (302) 를 형성한다. Physical cluster 304 consists of 496 recording frames 306. Frame sync is located at the beginning of each recording frame 306. Accordingly, 496 frames (recording frame 306) constituting physical cluster 304 and 498 frames, which is the sum of two frames of run-in 303 and run-out 305, form one RUB 302.

레코딩 프레임 (306) 은 1932cbs 로 이루어지고, 1-7PP (parity preserve/prohibit RMTR) 코드에 의해 변조된다. 그 다음, 이것은 복조되고, DSV (Digital sum value) 컨트롤 (dc-control) 비트는 이 복조된 데이터로부터 삭제되며, 그에 의해 ECC 클러스터를 형성한다. The recording frame 306 is made up of 1932cbs and is modulated by a 1-7PP (parity preserve / prohibit RMTR) code. This is then demodulated, and the DSV (Digital sum value) control (dc-control) bit is erased from this demodulated data, thereby forming an ECC cluster.

도 30 은 ECC 클러스터를 나타내는 다이어그램이다. ECC 클러스터 (401) 는 496 프레임으로 이루어지고, 이는 유저 데이터 (402), ECC 패러티 (404) 및 BIS (403) 를 포함한다. 유저 데이터 (402) 및 EC 패러티 (404) 의 추출은 LDC (long distance code) 클러스터를 형성하고, 496 프레임 중 64 프레임은 ECC 패러티 (404) 를 형성한다. BIS (403) 의 추출은 BIS 클러스터를 형성한다.30 is a diagram illustrating an ECC cluster. The ECC cluster 401 consists of 496 frames, which includes user data 402, ECC parity 404, and BIS 403. Extraction of the user data 402 and the EC parity 404 form a long distance code (LDC) cluster, with 64 of the 496 frames forming an ECC parity 404. Extraction of the BIS 403 forms a BIS cluster.

BIS 클러스터는 디스크의 어드레스 정보를 포함한다. BIS 클러스터의 어드레스 정보 (9 바이트) 는 496 프레임의 ECC 클러스터를 16 세그먼트로 분할함으로써 형성되는 31 프레임을 갖는 각각의 어드레스에 배분된다. BIS 는 프레임당 3 바이트로, 3 프레임의 9 바이트로 이루어지고, 어드레스는 앞 부분의 4 바이트에 포함된다. 따라서, 각각의 어드레스 유닛의 앞 부분의 2 프레임의 획득은 각각의 어드레스 유닛의 어드레스 정보 (어드레스 유닛 넘버) 를 획득하는 것을 가능하게 한다. BIS 클러스터는 디인터리빙될 때 BIS 블록이라 불리는 포맷으로 변경된다. 또한, LDC 클러스터는 디인터리빙될 때 LDC 블록이라 불리는 포맷으로 변경된다. The BIS cluster contains the address information of the disk. The address information (9 bytes) of the BIS cluster is distributed to each address having 31 frames formed by dividing an ECC cluster of 496 frames into 16 segments. The BIS consists of three bytes per frame, nine bytes of three frames, and an address is contained in the first four bytes. Thus, acquisition of two frames in front of each address unit makes it possible to obtain address information (address unit number) of each address unit. When deinterleaved, the BIS cluster is changed into a format called a BIS block. In addition, the LDC cluster is changed to a format called an LDC block when deinterleaved.

도 31 은 LDC 블록 (501) 을 나타내는 다이어그램이다. LDC 블록은, 도 30 에 나타낸 ECC 클러스터로부터 유저 데이터 (402) 및 ECC 패러티 (404) 를 추출하여 얻은, 수평 방향 (1 프레임) 의 152 바이트 와 수직 방향의 496 프레임을 갖는 데이터를 디인터리빙함으로써 형성된다. 디인터리빙 프로세스는 2 스테이지에서 수행된다. 우선, 프로세스는 매 2 프레임마다 3 바이트만큼 시프트량을 증가시키고, 도면 상의 우측 방향으로 로테이션시킨다. 그 다음, 프로세스는 기수 프레임의 각각의 바이트 사이에 우수 프레임의 각각의 바이트를 삽입하여, 수 평 방향 (1 프레임) 으로 디인터리빙 전의 데이터의 두 배인 304 바이트와 수직 방향으로 반인 248 프레임을 갖는 데이터를 형성한다. 31 is a diagram illustrating an LDC block 501. The LDC block is formed by deinterleaving data having 152 bytes in the horizontal direction (1 frame) and 496 frames in the vertical direction, obtained by extracting the user data 402 and the ECC parity 404 from the ECC cluster shown in FIG. do. The deinterleaving process is performed in two stages. First, the process increases the shift amount by three bytes every two frames and rotates in the right direction on the drawing. Then, the process inserts each byte of the even frame between each byte of the odd frame, so that the data having 248 frames half the vertical direction and 304 bytes, which is twice the data before deinterleaving in the horizontal direction (1 frame). To form.

도 31 에서, ECC 패러티 (503) 이외의 LCD 블록 (501) 의 부분은 데이터 블록 (502) 이다. 1 개의 데이터 블록은 Sec 0 내지 Sec 31 의 32 섹터로 이루어진다. 하나의 섹터는 2052 바이트를 가지고, 이는 유저 데이터 (504) 의 2048 바이트 및 에러 검출 코드 (EDC; 505) 의 4 바이트를 갖는다. 데이터 레코딩 시퀀스의 방향이 레코딩 프레임 방향 P 이고, 유저 데이터의 방향은 유저 데이터 방향 Q 라면, 레코딩 프레임 방향 P 는 도면 상의 수평 방향 (로우 방향) 이고, 이용자 데이터 방향 Q 는 도 면상의 수직 방향 (컬럼 방향) 이다. 따라서, 데이터 레코딩 시퀀스와 유저 데이터 시퀀스는 상이하다.In FIG. 31, the portion of the LCD block 501 other than the ECC parity 503 is the data block 502. One data block is composed of 32 sectors of Sec 0 to Sec 31. One sector has 2052 bytes, which has 2048 bytes of user data 504 and 4 bytes of error detection code (EDC) 505. If the direction of the data recording sequence is the recording frame direction P, and the direction of the user data is the user data direction Q, the recording frame direction P is the horizontal direction (low direction) on the drawing, and the user data direction Q is the vertical direction (column) on the drawing. Direction). Therefore, the data recording sequence and the user data sequence are different.

하나의 섹터는 각각의 시퀀스가 216 바이트를 갖는 유저 데이터 시퀀스를 갖고, 이는 폴딩된 구성 (folded configuration) 으로 유저 데이터 방향 Q 로 배열된다. 따라서, 유저 데이터 (504) 에서, 각각의 시퀀스 (216 바이트) 는 레코딩 프레임 방향 P 로 배열된다. 따라서, 2052 바이트의 하나의 섹터 Sec 는 유저 데이터 방향 Q 로 9.5 시퀀스를 갖는다. 4 바이트의 EDC (505) 는 각각의 섹터 Sec 의 2048 바이트의 유저 데이터 (504) 의 말단부에 위치하기 때문에, 제 1 섹터의 섹터 넘버가 0 (Sec 0) 이라면, 우수 섹터의 EDC (505) 는 유저 데이터 방향 Q 의 하나의 시퀀스의 중앙에 위치한다. One sector has a user data sequence in which each sequence has 216 bytes, which are arranged in the user data direction Q in a folded configuration. Thus, in the user data 504, each sequence (216 bytes) is arranged in the recording frame direction P. Thus, one sector Sec of 2052 bytes has a 9.5 sequence in the user data direction Q. Since the 4-byte EDC 505 is located at the end of the 2048-byte user data 504 of each sector Sec, if the sector number of the first sector is 0 (Sec 0), the EDC 505 of the even sector is It is located at the center of one sequence of user data direction Q.

도 32 는 유저 데이터와 어드레스 정보로부터 RUB 를 생성하기 위한 각각의 데이터의 인코딩 순서를 나타내는 도면이다. LDC 클러스터 및 BIS 클러스터는 개별적으로 생성된다. LDC 클러스터 (D6) 는 다음과 같이 생성된다. 우선, 단계 SP1 에서는 EDC 를 유저 데이터 (D1) 에 부가하여 데이터 프레임 (D2) 을 형성한다. EDC 의 부가는 각각의 섹터 Sec 에 대해 수행되고, EDC 가 부가된 2052 바이트의 섹터는 2048 바이트의 유저 데이터 및 4 바이트의 0 데이터를 갖는 섹터에 대해 유저 데이터 방향 Q 로 순차적으로 소정의 연산을 수행함으로써 획득된다. 32 is a diagram illustrating an encoding sequence of respective data for generating a RUB from user data and address information. The LDC cluster and the BIS cluster are created separately. The LDC cluster D6 is generated as follows. First, in step SP1, the EDC is added to the user data D1 to form a data frame D2. The addition of the EDC is performed for each sector Sec, and the 2052 byte sector to which the EDC is added performs a predetermined operation sequentially in the user data direction Q for a sector having 2048 bytes of user data and 4 bytes of 0 data. Is obtained.

그 다음, 단계 SP2 에서는, 스크램블 데이터 (스크램블된 데이터 프레임; D3) 를 형성하기 위해 EDC 가 부가된 EDC 부가 데이터 (데이터 프레임; D2) 에 대해 스크램블링을 수행한다. 스크램블링은 유저 데이터 방향 Q 로 EDC 가 부가된 2052 바이트를 갖는 하나의 섹터의 데이터에 대해 소정의 대수적 연산을 수행한다. 그 후, 단계 SP3 에서는, 데이터 블록 (D4) 을 형성하기 위해 스크램블 데이터 (D3) 의 로우과 컬럼을 재배열한다. 그 다음, 단계 SP4 에서는 데이터 블록 (D4) 에 ECC 패러티를 부가하여 LDC 블록 (D5) 을 형성한다. 마지막으로, 단계 SP5 에서는, 전술한 바와 같이 LDC 블록 (D5) 에 대해 인터리빙을 수행하고, 그에 의해 LDC 클러스터 (D6) 를 형성한다. Then, in step SP2, scrambling is performed on the EDC appended data (data frame) D2 to which the EDC is added to form scrambled data (scrambled data frame; D3). Scrambling performs a predetermined algebraic operation on data in one sector having 2052 bytes appended with an EDC in the user data direction Q. Then, in step SP3, the rows and columns of the scrambled data D3 are rearranged to form the data block D4. Next, in step SP4, the ECC parity is added to the data block D4 to form the LDC block D5. Finally, in step SP5, interleaving is performed on the LDC block D5 as described above, thereby forming the LDC cluster D6.

한편, BIS 클러스터 (D11) 는 다음과 같이 생성된다. 우선, 단계 SP6 에서는 유저 컨트롤 데이터 (D8) 를 인터리빙하고, 단계 SP7 에서는 ECC 를 어드레스 유닛 넘버 (D7) 에 부가하고, 데이터를 인터리빙하여 이들 데이터로부터 액세스 블록 (D9) 을 형성한다. 그 다음, 단계 SP8 에서는 BIS ECC 를 액세스 블록 (D9) 에 부가하여 BIS 블록 (D10) 에 부가한다. 마지막으로, 단계 SP9 에서는 BIS 블록 (D10) 을 인터리빙하여, 그에 의해 BIS 클러스터 (D11) 를 형성한다. On the other hand, the BIS cluster D11 is generated as follows. First, in step SP6, the user control data D8 is interleaved. In step SP7, the ECC is added to the address unit number D7, and the data is interleaved to form an access block D9 from these data. Next, in step SP8, the BIS ECC is added to the access block D9 and added to the BIS block D10. Finally, in step SP9, the BIS block D10 is interleaved, thereby forming the BIS cluster D11.

그 후, 단계 SP10 에서는 LDC 클러스터 (D6) 와 BIS 클러스터 (D11) 를 결합하여 ECC 클러스터 (D12) 를 형성한다. 단계 SP11 에서는 동기화 신호 (프레임 싱크) 및 DSV 컨트롤 비트를 ECC 클러스터 (D12) 에 부가하여 물리적 클러스터 (D13) 를 형성한다. 그 다음, 단계 SP12 에서는 런-인 및 런-아웃을 물리적 클러스터 (D13) 에 부가하고, 17PP 변조를 수행하며, 그에 의해, 레코딩 프레임의 개시부와 말단부에 위치하는 런-인 (D141) 및 런-아웃 (D142) 과 함께, 495 레코딩 프레임 (D143) 을 포함하는 RUB (D14) 를 형성한다. Thereafter, in step SP10, the LDC cluster D6 and the BIS cluster D11 are combined to form an ECC cluster D12. In step SP11, a synchronization signal (frame sync) and a DSV control bit are added to the ECC cluster D12 to form a physical cluster D13. Then, in step SP12, run-in and run-out are added to the physical cluster D13, 17PP modulation is performed, whereby run-in D14 1 located at the beginning and the end of the recording frame and Together with run-out D14 2 , a RUB D14 is formed that includes 495 recording frames D14 3 .

전술한 바와 같이 포맷되는 블루-레이 디스크를 위한 재생 장치는 일본 무심사 공개특허공보 제 2004-192749 호에 개시되어 있다. 도 33 은 거기에 설명된 종래의 재생 장치를 나타내는 다이어그램이다. 디스크 (701) 는 레코딩 및 재생 동작 동안 스핀들 모터 (752) 에 의해 구동되어 CLV (constant linear velocity) 로 회전한다. 그 다음, 광 픽업 (optical pickup; 751) (광 헤드 (optical head)) 이 디스크 (701) 상에 데이터의 레코딩 또는 재생을 수행한다. A reproducing apparatus for a Blu-ray disc formatted as described above is disclosed in Japanese Unexamined Patent Publication No. 2004-192749. 33 is a diagram showing a conventional playback apparatus described therein. The disc 701 is driven by the spindle motor 752 to rotate at a constant linear velocity (CLV) during recording and playback operations. Then, an optical pickup 751 (optical head) performs recording or reproduction of data on the disc 701.

픽업 (751) 은 레이저 광원으로서 기능하는 레이저 다이오드, 반사된 광을 검출하기 위한 광-검출기 (photo-detector), 및 레이저 광의 출력 말단부로서 기능하는 대물 렌즈를 구비하여, 레이저 광을 대물 렌즈를 통해 디스크 레코딩 표면으로 인가하고, 반사된 광을 광-검출기로 유도하는 광학적 시스템 (미도시) 을 형성한다. 픽업 (751) 은 스레드 메카니즘 (thread mechanism; 753) 에 의해 디스 크 반경 방향으로 이동 가능하다. 레이저 다이오드는 405 nm 파장의 블루 레이저를 출력한다. 광학적 시스템의 NA 는 0.85 이고, 레이저 방사는 레이저 구동기 (763) 로부터의 구동 신호 (구동 전류) 에 의해 제어된다. 디스크 (701) 로부터의 반사 광 정보는 광-검출기에 의해 검출되고, 검출된 광의 세기에 따라 전기적 신호로 변경되어, 매트릭스 회로 (754) 에 제공된다. The pickup 751 has a laser diode functioning as a laser light source, a photo-detector for detecting reflected light, and an objective lens functioning as an output end of the laser light, so that the laser light is transmitted through the objective lens. It is applied to the disc recording surface and forms an optical system (not shown) that directs the reflected light to the photo-detector. The pickup 751 is movable in the radial direction of the disk by a thread mechanism 753. The laser diode outputs a blue laser with a wavelength of 405 nm. The NA of the optical system is 0.85 and the laser radiation is controlled by the drive signal (drive current) from the laser driver 763. Reflected light information from the disk 701 is detected by the photo-detector, converted into an electrical signal in accordance with the detected light intensity, and provided to the matrix circuit 754.

매트릭스 회로 (754) 는 전류-전압 컨버터 및 광-검출기로서의 복수의 수광 디바이스로부터의 출력 전류에 대응하는 매트릭스 연산/증폭 회로를 구비하고, 매트릭스 연산에 의해 필요한 신호를 생성한다. 예를 들어, 이것은 재생 데이터 (재생 데이터 신호) 에 대응하는 고-주파 신호, 서보 컨트롤 (servo control)을 위한 포커스 에러 신호, 트랙킹 에러 신호, 워블링 그루브 (wobbling groove) 에 관련된 푸쉬-풀 (push-pull) 신호 등을 생성한다. The matrix circuit 754 has a matrix operation / amplification circuit corresponding to the output current from the plurality of light receiving devices as the current-voltage converter and the photo-detector, and generates the necessary signal by the matrix operation. For example, this is a high-frequency signal corresponding to the reproduction data (reproduction data signal), a focus error signal for servo control, a tracking error signal, a push-pull associated with a wobbling groove. -pull) signal, etc.

매트릭스 회로 (754) 로부터 출력된 재생 데이터 신호는 RW 회로 (reader/writer circuit; 755) 에 제공되고, 포커스 에러 신호 및 트랙킹 에러 신호는 서보 회로 (761) 에 제공되며, 워블링 그루브의 검출 정보를 나타내는 푸쉬-풀 신호는 워블 회로 (758) 에 제공된다. The reproduction data signal output from the matrix circuit 754 is provided to the reader / writer circuit 755, the focus error signal and the tracking error signal are provided to the servo circuit 761, and the detection information of the wobbling groove is provided. Indicative push-pull signal is provided to a wobble circuit 758.

디스크 (701) 가 리라이팅 가능한 (rewritable) 디스크일 경우 매트릭스 회로 (754) 로부터 출력되는 워블링 그루브에 관련된 푸쉬-풀 신호는 워블 회로 (758) 에 의해 프로세스된다. 워블 회로 (758) 는 ADIP 정보를 나타내는 푸쉬-풀 신호에 대해 MSK (Minimum Shift Keying) 복조 및 HMW (Harmonic Modulated Wave) 복조를 수행하여, 신호를 ADIP 어드레스를 구성하는 데이터 스트림으로 복조하고, 그 데이터 스트림을 어드레스 디코더 (759) 에 제공한다. 어드레스 디코더 (759) 는 워블 회로 (758) 로부터 제공되는 워블 신호를 이용하는 PLL 프로세싱에 의해 클럭을 생성하고, 그것을 예를 들어, 레코딩을 위한 인코드 클럭으로서 각각의 컴포넌트에 제공한다. If the disk 701 is a rewritable disk, the push-pull signal associated with the wobbling groove output from the matrix circuit 754 is processed by the wobble circuit 758. The wobble circuit 758 performs minimum shift keying (MSK) and harmonic modulated wave (HMW) demodulation on the push-pull signal representing the ADIP information, and demodulates the signal into a data stream constituting an ADIP address. Provide the stream to the address decoder 759. The address decoder 759 generates a clock by PLL processing using the wobble signal provided from the wobble circuit 758 and provides it to each component, for example, as an encoded clock for recording.

레코딩에서, 레코딩 데이터는 AV 시스템 (720) 으로부터 전송되고, 버퍼링을 위해 ECC/스크램블링 회로 (757) 의 메모리로 보내진다. 이 경우, ECC/스크램블링 회로 (757) 는 에러 정정 코드의 부가, 스크램블링 및 서브-코드의 부가와 같은 프로세싱을 수행하여 버퍼링된 레코딩된 데이터를 인코딩한다. ECC 인코딩 및 ECC 디코딩은 RS (248, 216, 33), 코드 길이 248, 데이터 216, 및 거리 33 의 RS (reed Solomon) 코드를 이용하는 ECC 포맷에 대응하는 프로세스이다. 그 다음, ECC 인코딩 및 스크램블링 후의 데이터는 변조/복조 회로 (756) 에 의해 RLL(1-7)PP 시스템에서 변조되어, 리더/라이터 회로 (755) 에 제공된다. 레코딩 동안 인코딩 프로세스를 위해 기준 클럭으로서 기능하는 인코드 클럭은 전술한 워블 신호로부터 생성된 클럭이다. In recording, recording data is sent from the AV system 720 and sent to the memory of the ECC / scrambling circuit 757 for buffering. In this case, the ECC / scrambling circuit 757 performs processing such as adding error correction code, scrambling and adding sub-code to encode the buffered recorded data. ECC encoding and ECC decoding is a process corresponding to an ECC format using RS (248, 216, 33), code length 248, data 216, and reed Solomon (RS) codes of distance 33. The data after ECC encoding and scrambling is then modulated in the RLL 1-7 PP system by the modulation / demodulation circuit 756 and provided to the reader / writer circuit 755. The encode clock, which serves as a reference clock for the encoding process during recording, is a clock generated from the wobble signal described above.

리더/라이터 회로 (755) 는 레코딩 레이어의 특성을 위한 최적의 레코딩 전력, 레이저 광의 스팟 형태, 레코딩 선형 속도 등의 미세 조정 및 인코딩 프로세스에 의해 생성된 레코딩 데이터에 대한 레이저 구동 펄스 파형의 조정과 같은 레코딩 보상 프로세싱을 수행한다. 그 다음, 레코딩 데이터는 레이저 구동 펄스로서 레이저 드라이버 (763) 로 보내진다. 레이저 드라이버 (763) 는 레이저 구동 펄스를 픽업 (751) 의 레이저 다이오드에 인가하여 레이저 방사를 구동한다. 레코딩 데이터에 대응하는 핏 (pit) (위상 변경 마크 (phase change mark)) 가 그 에 의해 디스크 (701) 상에 형성된다. The reader / writer circuit 755 may be used to adjust the laser drive pulse waveform for the recording data generated by the encoding process and fine adjustment of the optimal recording power for the characteristics of the recording layer, the spot shape of the laser light, the recording linear speed, and the like. Perform recording compensation processing. The recording data is then sent to the laser driver 763 as a laser drive pulse. The laser driver 763 applies a laser drive pulse to the laser diode of the pickup 751 to drive laser radiation. A pit (phase change mark) corresponding to the recording data is thereby formed on the disc 701.

스핀들 서보 회로 (762) 는 스핀들 모터 (752) 를 제어하여 CLV 회전을 형성한다. 스핀들 서보 (762) 는 스핀들 모터 (752) 의 현재 회전 스피드 정보로서 워블 신호에 대한 PLL 프로세싱에 의해 생성된 클럭을 획득하고, 그것을 소정의 CLV 기준 스피드 정보와 비교하며, 그에 의해 스핀들 에러 신호를 형성한다. Spindle servo circuit 762 controls the spindle motor 752 to form a CLV rotation. Spindle servo 762 obtains the clock generated by the PLL processing on the wobble signal as the current rotational speed information of the spindle motor 752, compares it with some CLV reference speed information, thereby forming a spindle error signal. do.

전술한 바와 같은 레코딩 및 재생 시스템과 서보 시스템의 동작은 마이크로 컴퓨터에 의해 구성되는 시스템 컨트롤러 (760) 에 의해 컨트롤된다. 시스템 컨트롤러 (760) 는 AV 시스템 (720) 으로부터의 명령에 따라 다양한 동작을 수행한다. 예를 들어, AV 시스템 (720) 이 라이팅 명령을 출력하면, 시스템 컨트롤러 (760) 는 우선 픽업 (751) 을 데이터가 라이팅될 어드레스로 이동시킨다. 그 다음, 시스템 컨트롤러 (760) 는 ECC/스크램블링 회로 (757) 및 변조/복조 회로 (756) 를 제어하여, 예를 들어, MPEG2 와 같은 다양한 포맷의 비디오 데이터 및 오디오 데이터인, AV 시스템 (720) 으로부터 전송된 데이터에 대해 전술한 바와 같은 인코딩 프로세싱을 수행한다. 그 다음, 리더/라이터 회로 (755) 로부터의 레이저 구동 펄스가 레이저 드라이버 (763) 에 제공되고, 그에 의해, 레코딩을 수행한다. 데이터의 레코딩 또는 재생에서, 시스템 컨트롤러 (760) 는 어드레스 디코더 (759) 에 의해 검출된 ADIP 어드레스 또는 BIS 에 포함된 어드레스를 이용함으로써 액세스 또는 레코딩과 재생 동작을 컨트롤한다. The operation of the recording and reproducing system and the servo system as described above is controlled by the system controller 760 configured by the microcomputer. System controller 760 performs various operations in accordance with commands from AV system 720. For example, when AV system 720 outputs a writing command, system controller 760 first moves pickup 751 to the address at which data is to be written. The system controller 760 then controls the ECC / scrambling circuit 757 and the modulation / demodulation circuit 756 to, for example, the AV system 720, which is video data and audio data in various formats such as MPEG2, for example. Perform the encoding processing as described above on the data transmitted from the. Then, a laser drive pulse from the reader / writer circuit 755 is provided to the laser driver 763, thereby performing recording. In recording or reproducing data, the system controller 760 controls access or recording and reproducing operations by using an ADIP address detected by the address decoder 759 or an address included in the BIS.

일본 무심사 공개특허공보 제 2004-192749 호에 개시된 전술한 기술은 우수한 RAM 호환성을 갖는 ROM 매체 등을 제공하는 것에 그 목적이 있고, 블루-레이 디 스크의 링킹 데이터 (런-인 및 런-아웃) 를 메인 데이터 (유저 데이터) 와 동일한 프로세스로 스크램블링함으로써 서보 트랙킹하는 이점을 가진다. The above-described technique disclosed in Japanese Unexamined Patent Publication No. 2004-192749 has an object of providing a ROM medium having excellent RAM compatibility and the like, and linking data (run-in and run-out) of a Blu-ray disc. Has the advantage of servo tracking by scrambling the same process as the main data (user data).

전술한 포맷의 블루-레이 디스크에서, 디스크 상의 레코딩 데이터의 방향은 레코딩 프레임 방향 P 이고, 따라서, 방향 P 의 순서로 데이터를 변조할 필요가 있다. 따라서, 적어도 변조 전에 유저 데이터 방향 Q 에서 레코딩 프레임 방향 P 로 데이터 시퀀스를 재배열하는 것이 필요하다. In a Blu-ray disc of the above-described format, the direction of the recording data on the disc is the recording frame direction P, and therefore, it is necessary to modulate the data in the order of the direction P. Therefore, it is necessary to rearrange the data sequence from the user data direction Q to the recording frame direction P at least before modulation.

전술한 EDC (505) 는 도 31 에 나타낸 바와 같이 각각의 섹터의 말단부에 부가된다. 따라서, 우수 섹터에서, EDC (505) 는 유저 데이터 방향 Q 의 216 바이트를 갖는 하나의 데이터 라인의 중앙에 위치한다. 따라서, 예를 들어, 레코딩 프레임 방향 P 의 EDC 가 부가된 데이터를 전송할 때, EDC 는 모든 이용된 데이터가 우수 섹터에 전송되기 전에 전송된다. 구체적으로, EDC (505) 는 D431 및 D107 과 같은 EDC (505) 를 포함하는 로우 이후에 위치하는 로우의 유저 데이터가 전송되기 전에 부가될 필요가 있다. 그러나, EDC (505) 가 하나의 섹터의 모든 유저 데이터에 대해 소정의 연산을 수행한 결과로서 얻어지기 때문에, 하나의 섹터의 유저 데이터에 결함이 있을 때는 EDC (505) 를 산출하는 것은 통상적으로 불가능하다. The EDC 505 described above is added to the distal end of each sector as shown in FIG. Thus, in the even sector, the EDC 505 is located in the center of one data line with 216 bytes of the user data direction Q. Thus, for example, when transmitting the data to which the EDC in the recording frame direction P is added, the EDC is transmitted before all the used data is transmitted to the even sector. Specifically, the EDC 505 needs to be added before the user data of the row located after the row including the EDC 505 such as D431 and D107 is transmitted. However, since the EDC 505 is obtained as a result of performing a predetermined operation on all user data of one sector, it is usually impossible to calculate the EDC 505 when there is a defect in the user data of one sector. Do.

결과적으로, 유저 데이터 방향 Q 의 모든 데이터를 한번 판독하여 EDC 를미리 판정하는 것이 필요하다. 그러나, 이 프로세스는 데이터를 레코딩 시퀀스로 출력할 때, 유저 데이터를 다시 판독할 필요가 있고, 이는 고속 레코딩을 방해한 다. As a result, it is necessary to read all the data in the user data direction Q once to determine the EDC in advance. However, this process needs to read the user data again when outputting the data in the recording sequence, which prevents high speed recording.

전술한 프로세스는 EDC 산출을 위해 한번, 레코딩 시퀀스로의 데이터 재배열을 위해 한번, 이렇게 적어도 두 번 데이터 버퍼를 액세싱하는 것이 필요하다. 에러 검출 코드를 생성하기 위한 데이터 버퍼로의 액세스는 데이터 버퍼로의 메모리 액세스의 스루풋을 감소시킨다. The above process requires accessing the data buffer at least twice, once for EDC calculation, once for data rearrangement into the recording sequence. Access to the data buffer to generate an error detection code reduces the throughput of memory access to the data buffer.

본 발명의 일 양태에 따르면, 제 1 시퀀스를 갖는 유저 데이터 코드 스트링의 에러를 검출하는 에러 검출 코드를 산출하는 에러 검출 코드 산출 회로가 제공된다. 이 회로는 유저 데이터 코드 스트링을 포함하는 2 이상의 섹터를 포함하는 데이터 그룹의 단위로 데이터를 프로세스한다. 각각의 데이터 그룹은, 제 1 시퀀스로 리딩할 때 유저 데이터 코드 스트링의 말단부에 에러 검출 코드가 나타나고, 제 1 시퀀스와는 상이한 시퀀스로 리딩할 때 유저 데이터 코드 스트링의 중앙에 에러 검출 코드가 나타나는 구조를 갖는 연산 타겟 섹터를 포함한다. 에러 검출 코드 산출 회로는, 연산 타겟 섹터의 유저 데이터의 일부로부터 에러 검출 코드 중간값을 산출하기 위한 제 1 동작 섹션, 및 연산 타겟 섹터의 유저 데이터의 나머지 부분과 에러 검출 코드 중간값으로부터 에러 검출 코드를 산출하기 위한 제 2 동작 섹션을 포함하고, 여기서 제 2 동작 섹션은 제 1 시퀀스와는 상이한 시퀀스로 리딩되는 연산 타겟 섹터에 포함된 유저 데이터 코드 스트링에 부가되는 에러 검출 코드를 산출한다. According to one aspect of the present invention, an error detection code calculation circuit for calculating an error detection code for detecting an error of a user data code string having a first sequence is provided. This circuit processes data in units of a data group comprising two or more sectors containing user data code strings. Each data group has a structure in which an error detection code appears at the end of the user data code string when reading in the first sequence and an error detection code appears in the center of the user data code string when reading in a sequence different from the first sequence. It includes an operation target sector having a. The error detection code calculating circuit includes a first operation section for calculating an error detection code intermediate value from a part of user data of an operation target sector, and an error detection code from the remaining portion of the user data of an operation target sector and an error detection code intermediate value. And a second operation section for calculating a, wherein the second operation section calculates an error detection code added to a user data code string included in an operation target sector read in a different sequence from the first sequence.

일반적으로, 전송을 위해 EDC 를 상이한 시퀀스로 데이터에 부가할 때, 인코딩될 데이터가, 제 1 시퀀스와는 상이한 시퀀스의 리딩 데이터의 중간 지점에 에러 검출 코드 (EDC) 가 삽입된 연산 타겟 섹션을 갖는다면, 연산 타겟 섹션에서는 모든 유저 데이터 코드 스트링을 전송하기 전에 에러 검출 코드의 산출을 완료하는 것이 필요하다. 따라서, 이 경우의 프로세스는 모든 유저 데이터 코드 스트링으로부터 에러 검출 코드를 산출하고, 그 다음, 데이터를 상이한 시퀀스로 전송할 때, 그 산출된 에러 검출 코드를 유저 데이터에 부가한다. In general, when adding an EDC to data in a different sequence for transmission, the data to be encoded has an operation target section with an error detection code (EDC) inserted at an intermediate point of the leading data in a sequence different from the first sequence. If so, in the operation target section it is necessary to complete the calculation of the error detection code before sending all the user data code strings. Thus, the process in this case calculates an error detection code from all user data code strings, and then adds the calculated error detection code to the user data when the data is transmitted in a different sequence.

한편, 본 발명의 예시적인 실시형태에서, 제 1 동작 섹션 및 제 2 동작 섹션은 연산 타겟 섹터와 그 나머지 부분 각각에 대해 연산을 수행한다. 상이한 순서로 데이터를 리딩할 때 제 2 동작 섹션이 에러 검출 코드의 일부에 대해 연산을 수행하기 때문에, 제 1 동작은 전체 코드 스트링에 대한 연산을 수행할 필요가 없다. 따라서, 제 1 동작 섹션은 코드 스트링의 일부만을 액세스하고, 그에 의해 데이터 버퍼에 대한 액세스를 감소시킨다. On the other hand, in the exemplary embodiment of the present invention, the first operation section and the second operation section perform an operation on each of the operation target sector and the remaining portions thereof. The first operation does not need to perform an operation on the entire code string because the second operation section performs an operation on a portion of the error detection code when reading data in a different order. Thus, the first operating section accesses only a portion of the code string, thereby reducing access to the data buffer.

결과적으로, 본 발명은 유저 데이터의 에러를 검출하기 위해 에러 검출 코드를 산출할 때 데이터 버퍼에 대한 액세스의 감소를 가능하게 하는 에러 검출 코드 산출 회로, 에러 검출 코드 산출 방법, 및 레코딩 장치를 제공할 수 있다. As a result, the present invention provides an error detection code calculation circuit, an error detection code calculation method, and a recording apparatus that enable a reduction in access to a data buffer when calculating an error detection code for detecting an error of user data. Can be.

본 발명은 유저 데이터의 에러를 검출하기 위해 에러 검출 코드의 산출시에 데이터 버퍼에 대한 액세스의 감소를 가능하게 하는 에러 검출 코드 산출 회로, 에러 검출 코드 산출 방법, 및 레코딩 장치를 제공한다. The present invention provides an error detection code calculation circuit, an error detection code calculation method, and a recording apparatus that enable a reduction in access to a data buffer at the time of calculation of an error detection code for detecting an error of user data.

바람직한 실시형태의 설명Description of the Preferred Embodiments

본 발명의 전술한, 그리고 다른 목적, 이점 및 특징들은 첨부 도면과 함께 설명된 이하의 설명으로부터 더욱 분명해질 것이다.The foregoing and other objects, advantages and features of the present invention will become more apparent from the following description taken in conjunction with the accompanying drawings.

이하, 예시적인 실시형태를 참조하여 본 발명을 설명한다. 당업자라면 본 발명의 교시를 이용하여 많은 다른 실시형태들이 달성될 수 있고, 본 발명은 예시적인 목적으로 여기에 나타낸 실시형태들에 한정되지 않는다는 것을 알 수 있을 것이다. Hereinafter, the present invention will be described with reference to exemplary embodiments. Those skilled in the art will recognize that many other embodiments may be achieved using the teachings of the present invention, and that the present invention is not limited to the embodiments shown herein for illustrative purposes.

이하, 도면을 참조하여 본 발명의 예시적인 실시형태를 상세히 설명한다. 예시적인 실시형태는 본 발명을 광 디스크에 고속 레코딩 가능한 레코딩 장치 및 인코딩 디바이스에 적용한다. 다음 설명은 광 디스크의 일예로서 블루-레이 디스크를 이용하고, 필요한 경우 블루-레이 물리적 사양에 따라 인코딩을 수행하는 경우에 대한 것이다. 그러나, 본 발명은 거기에 한정되지 아니하고, 상이한 인코딩 순서 및 레코딩 순서의 다른 타입의 디스크에 대한 레코딩 장치 등에 대해서도 적용될 수도 있다. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the drawings. An exemplary embodiment applies the present invention to a recording apparatus and an encoding device capable of fast recording to an optical disc. The following description is for the case of using a Blu-ray disc as an example of an optical disc and performing encoding according to a Blu-ray physical specification if necessary. However, the present invention is not limited thereto, but may also be applied to recording apparatuses and the like for other types of discs of different encoding order and recording order.

도 1 은 블루-레이 디스크의 각각의 데이터 블록에 포함된 바이트 단위의 데이터의 배열 시퀀스를 나타내는 도면이다. 도 2 는 2 섹터 (Sec 0 및 Sec 1) 의 확대된 도면이다. 도 1 및 도 2 에 나타낸 값은 바이트 단위의 유저 데이터 방향 Q 의 시퀀스를 나타낸다. 데이터 블록 (41) 은 304 컬럼과 216 로우를 포함한다. 데이터 블록 (41) 은 32 섹터를 포함한다. 하나의 섹터는 2048-바이트의 유저 데이터와 4-바이트의 EDC 로 2052-바이트의 데이터로 이루어진다. 1 is a diagram illustrating an array sequence of data in units of bytes included in each data block of a Blu-ray disc. 2 is an enlarged view of two sectors Sec 0 and Sec 1. 1 and 2 indicate the sequence of the user data direction Q in bytes. Data block 41 includes 304 columns and 216 rows. Data block 41 includes 32 sectors. One sector consists of 2048-byte user data and 4-52 EDC with 2052-byte data.

각각의 섹터는 216-바이트의 데이터가 컬럼으로 배열되는 304 컬럼의 블록 데이터를 갖는다. Row 는 로우 넘버 (0≤Row≤215) 를 나타내고, Column 은 컬 럼 넘버 (0≤Column≤303) 를 나타내며, 예를 들어, 섹터 0 에서는 Column = 9 인 컬럼은 Q = 1994 내지 2051 바이트의 데이터를 갖고, Row = 0 내지 107 의 로우를 점유한다. Column = 9 인 컬럼의 Row = 108 내지 215 의 로우는 다음 섹터 (Sec 1) 의 0 번째 내지 107 번째 바이트 데이터로 점유된다. 이러한 방식으로, 데이터 블록 (41) 은 우수 섹터와 기수 섹터가 하나의 유닛 (여기서는 "영역 (area)" 이라 칭한다) 을 형성하도록 구성된다. 따라서, 데이터는 19 컬럼의 한 쌍의 섹터를 갖는 각각의 영역에서 동일한 시퀀스로 반복적으로 배열된다. Each sector has 304 columns of block data in which 216-bytes of data are arranged in columns. Row indicates row number (0≤Row≤215) and Column indicates column number (0≤Column≤303). For example, in sector 0, a column with Column = 9 means Q = 1994 to 2051 bytes of data. And occupies a row of Row = 0 to 107. Rows of Row = 108 to 215 of the column having Column = 9 are occupied by the 0 th through 107 th byte data of the next sector Sec 1. In this way, the data block 41 is configured such that the even sector and the odd sector form one unit (hereafter referred to as an "area"). Thus, data is repeatedly arranged in the same sequence in each region having a pair of sectors of 19 columns.

섹터 (Sec 0 내지 Sec 31) 에서, EDC 를 부가하기 위해 도 1 및 도 2 에 나타낸 유저 데이터 방향 Q 의 유저 데이터에 대해 소정의 연산이 수행된다. 데이터는 스크램블되고, 그 다음, 변조되어, 디스크 상에 레코딩된다. 레코딩될 때, 데이터 블록은 컬럼 방향 또는 유저 데이터 방향 Q 에 수직인, 도 1 의 화살표에 의해 지시되는 레코딩 프레임 방향 P 의 시퀀스로 레코딩된다. 유저 데이터 방향 Q 는 에러 검출 코드의 부가를 위한 프로세싱 시퀀스 및 블루-레이 디스크에서의 스크램블링 및 인코딩을 위한 프로세싱 시퀀스와 일치한다. 나중에 설명될 것이지만, 유저 데이터와 EDC 를 개별적으로 스크램블하고, 이들을 함께 통합하는 것이 가능하다. In the sectors Sec 0 to Sec 31, a predetermined operation is performed on the user data in the user data direction Q shown in Figs. 1 and 2 to add the EDC. The data is scrambled, then modulated and recorded on the disc. When recorded, the data blocks are recorded in the sequence of the recording frame direction P indicated by the arrows in Fig. 1, which is perpendicular to the column direction or the user data direction Q. The user data direction Q coincides with the processing sequence for the addition of the error detection code and the processing sequence for scrambling and encoding on the Blu-ray disc. As will be explained later, it is possible to scramble user data and EDC separately and integrate them together.

전술한 바와 같이, 데이터는 레코딩 프레임 방향 P 로 블루-레이 디스크 상에 레코딩된다. 따라서, 적어도 변조 전에, 인코딩을 위한 프로세싱 시퀀스인 유저 데이터 방향 Q 에서 레코딩 프레임 방향 P 로 데이터 시퀀스를 재배열하는 것이 필요하다. 인코딩이 레코딩 프레임 방향 P 로 수행된다면, EDC 를 산출할 수 없다. EDC 는 도 1 에 나타낸 섹터의 모든 유저 데이터에 기초하여 판정되는 반면, EDC 가 우수 섹터의 전체 섹터의 모든 유저 데이터를 리딩하기 전에 부가되기 때문에, 이 경우, EDC 가 부가된 데이터를 생성할 수 없다. As described above, data is recorded on the Blu-ray disc in the recording frame direction P. Therefore, it is necessary to rearrange the data sequence from the user data direction Q, which is the processing sequence for encoding, to the recording frame direction P, at least before modulation. If encoding is performed in the recording frame direction P, the EDC cannot be calculated. While the EDC is determined based on all user data of the sector shown in Fig. 1, since the EDC is added before reading all user data of all sectors of the even sector, in this case, the EDC cannot generate the added data. .

결과적으로, 유저 데이터의 시퀀스로서의 유저 데이터 방향 Q (통상의 인코딩 시퀀스) 와 디스크 상에 데이터를 레코딩하는 시퀀스로서의 레코딩 프레임 방향 P 가 상이하다면, EDC 등을 산출하기 위해 어떤 대수적인 연산을 수행하고, 그 획득된 EDC 를 미리 부가하고, 그 다음, 레코딩 준비를 위해 EDC-부가 데이터를 재배열하는 것이 일반적으로 필요하다. 이 경우, 데이터 재배열은 통상적으로 데이터 버퍼에 EDC 가 부가된 데이터를 임시 저장함으로써 가능하다. 그러나, 고속 동작을 달성하기 위해서는, 데이터 버퍼는 비싼 SRAM 으로 이루어져야만 하고, 따라서, 실용적이지 못하다. As a result, if the user data direction Q (normal encoding sequence) as a sequence of user data and the recording frame direction P as a sequence for recording data on the disc are different, some algebraic calculation is performed to calculate an EDC or the like, It is generally necessary to add the obtained EDC in advance, and then rearrange the EDC-additional data in preparation for recording. In this case, data rearrangement is typically possible by temporarily storing the data with the EDC added to the data buffer. However, in order to achieve high speed operation, the data buffers must be made of expensive SRAMs and, therefore, are not practical.

이러한 관심사를 처리하기 위해, 미국 특허출원 제 11/366,629 호 (일본 특허출원 제 2005-060364 호) (이하 "참조" 라 칭한다) 에 따르면, 레코딩 장치는 각각의 버스트 전송 (burst transfer) 등의 전송 사이즈 m×304 바이트×(라이팅 및 리딩을 위한) 2 플레인의 메모리 용량을 갖는 치환 버퍼 (substitution buffer), ECC 패러티를 임시로 저장하기 위한 ECC 버퍼 (9728 바이트×2 플레인), EDC 코드를 임시로 저장하기 위한 EDC 버퍼 (4 바이트×32×2 플레인), 및 스크램블 버퍼 (38 바이트×2 플레인) 를 포함한다. 상기 참조에 개시된 발명은, 유저 데이터를 데이터 버퍼로부터 반복적으로 버스트-전송하고 스크램블링하는 동안, 유저 데이터 방향 Q 로 인코딩함으로써 획득된 EDC, 스크램블 중간값, 및 ECC 를 임시로 저장하는 프로세싱 (경로 S1') 과 EDC 를 유저 데이터에 부가하는 프로세싱 (경로 S2') 에 의해, 치환 버퍼로 고속 데이터 전송을 가능하게 한다. In order to address this concern, according to US patent application Ser. No. 11 / 366,629 (Japanese Patent Application No. 2005-060364) (hereinafter referred to as "reference"), the recording apparatus transmits each burst transfer or the like. Substitution buffer with memory size of 2 planes (for writing and reading) m x 304 bytes x ECC buffer (9728 bytes x 2 planes) for temporarily storing ECC parity, temporarily storing EDC code An EDC buffer (4 bytes x 32 x 2 planes) for storage, and a scramble buffer (38 bytes x 2 planes). The invention disclosed in the above reference provides processing for temporarily storing the EDC, the scramble median, and the ECC obtained by encoding in the user data direction Q, while repeatedly burst-transmitting and scrambled user data from the data buffer (path S1 '). ) And the processing of adding EDC to the user data (path S2 ') to enable high-speed data transfer to the replacement buffer.

전술한 참조에 개시된 발명에서, 치환 버퍼는 리프레싱을 필요로하지 않고 랜덤 액세스가 가능한 메모리로 구성되고, 그에 의해, 버스트 전송에 의해 데이터 버퍼로부터 획득된 연속적인 데이터가 고속으로 레코딩 프레임 방향 P 의 시퀀스로 재배열되는 것을 가능하게 한다. 이 경우, 치환 버퍼가 데이터 버퍼의 메모리 용량보다 더 적은 용량을 가지더라도, 경로 S1' 에서 산출되어 저장된 EDC, 스크램블 중간값 및 ECC 를 이용한 연산 결과로부터 레코딩 프레임 방향 P 로 재배열된 데이터에 대해 스크램블을 수행하는 것이 가능하다. In the invention disclosed in the above-mentioned reference, the replacement buffer is composed of a memory which is randomly accessible without requiring refreshing, whereby the continuous data obtained from the data buffer by burst transfer is a high speed sequence of recording frame direction P. Makes it possible to rearrange them. In this case, even if the replacement buffer has a smaller capacity than the memory capacity of the data buffer, scramble for data rearranged in the recording frame direction P from the calculation result using the EDC, the scramble median and the ECC calculated and stored in the path S1 ' It is possible to carry out.

따라서, 데이터 버퍼로서 비싼 SRAM 과 같은 고속 랜덤 액세스가 가능한 임시 메모리를 이용하지 않으면 고속 인코딩을 달성할 수 없었지만, 참조에 개시된 발명은, 데이터 버퍼로서 고속 랜덤 액세스에 적합하지 않은 SDRAM 등의 사용과 함께 단지 비교적 작은 사이즈의 회로를 부가함으로써 저비용으로 고속 인코딩을 가능하게 한다. Therefore, although fast encoding could not be achieved without using a temporary memory capable of fast random access such as expensive SRAM as a data buffer, the invention disclosed in the reference is accompanied by the use of SDRAM or the like which is not suitable for fast random access as a data buffer. Only adding a relatively small size of circuit allows for high speed encoding at low cost.

하나의 클러스터의 인코딩과 재배열을 위해 2 개의 클러스터의 데이터를 데이터 버퍼로 리딩하는 것이 필요하다. 데이터를 레코딩 프레임 방향 P 로 레코딩하기 위해, 유저 데이터 방향 Q 의 1 클러스터 (2048 바이트×32 섹터) 의 데이터를 단지 EDC 인코딩을 위해 미리 리딩할 필요가 있고, 이는 데이터 버퍼로의 절대적 액세스를 증가시키고, 전력 소모의 증가를 가져온다. It is necessary to read data from two clusters into a data buffer for encoding and rearranging one cluster. In order to record data in the recording frame direction P, data of one cluster (2048 bytes x 32 sectors) of the user data direction Q only needs to be read ahead for EDC encoding, which increases the absolute access to the data buffer and This leads to an increase in power consumption.

고속 인코딩의 달성을 위해서는, 고주파수 클럭으로 동작하고, 전력 소모가 더욱 증가되는 고비용 데이터 버퍼를 필요로 한다. 이러한 관심사를 해결하기 위해, 본 발명의 예시적인 실시형태는, EDC 가, 유저 데이터 방향 Q 와 상이한 순서, 예를 들어, 레코딩 프레임 방향 P 의 섹터의 리딩 데이터의 중간에 삽입되며, 유저 데이터 방향 Q 의 데이터를 리딩할 때는 섹터의 말단부에 부가되는 우수 섹터의 데이터에 대해 다음의 연산을 수행한다. 구체적으로, 본 발명의 예시적인 실시형태에 따른 레코딩 장치는, 우수 섹터의 일부로부터, 나중에 설명될 EDC 중간값을 산출하기 위한 제 1 연산 섹션, 및 나머지 부분과 EDC 중간값으로부터 EDC 를 산출하기 위한 제 2 연산 섹션을 포함하고, 이 2 개의 연산 섹션에 의해 EDC 를 판정한다. 이는 데이터 버퍼에 대한 데이터 액세스를 감소시켜 인코딩 사양과 전력 및 비용의 감소에서 더 한층의 향상을 가능하게 한다. 유저 데이터 방향 Q 의 시퀀스는 제 1 시퀀스에 대응하고, 레코딩 프레임 방향 P 의 시퀀스는 제 2 시퀀스에 대응하며, 우수 섹터는 연산 타겟 섹터에 대응한다. Achieving high speed encoding requires a costly data buffer that operates with a high frequency clock and further increases power consumption. In order to solve this concern, an exemplary embodiment of the present invention is that the EDC is inserted in the middle of leading data of a sector different from the user data direction Q, for example, the sector in the recording frame direction P, and the user data direction Q. When reading the data of, the following operation is performed on the data of the even sector added to the end of the sector. Specifically, the recording apparatus according to the exemplary embodiment of the present invention is configured to calculate, from a portion of the even sector, a first calculation section for calculating an EDC median which will be described later, and for calculating an EDC from the remainder and the EDC median. A second calculation section is included, and the two calculation sections determine the EDC. This reduces data access to the data buffers, enabling further improvements in encoding specifications, and in reducing power and cost. The sequence of the user data direction Q corresponds to the first sequence, the sequence of the recording frame direction P corresponds to the second sequence, and the even sector corresponds to the calculation target sector.

다음의 예시적인 설명은, 적어도, 전술한 유저 데이터로부터 EDC 를 생성하고, 특히, 블루-레이 디스크 상의 유저 데이터의 인코딩에서 그것을 유저 데이터에 부가하는 프로세스에 의해 특징지어지는 레코딩 장치를 설명하고, 레코딩 장치와 재생 장치를 결합하여 레코딩 및 재생 장치를 형성하는 것도 가능하다. The following illustrative description describes at least a recording apparatus characterized by the process of generating an EDC from the above-described user data and in particular adding it to the user data in the encoding of the user data on a Blu-ray disc, and recording It is also possible to combine the device with the playback device to form a recording and playback device.

본 발명의 더 쉬운 이해를 위해, 전술한 참조에 개시된 산출 및 에러 검출 방법이 여기에 설명된다. For easier understanding of the present invention, the calculation and error detection methods disclosed in the foregoing references are described herein.

도 3 은 참조에 개시된 레코딩 장치의 에러 검출 코드를 산출하기 위한 부분을 나타내는 도면이다. 3 is a diagram showing a part for calculating an error detection code of the recording apparatus disclosed in the reference.

이 참조에서는, 블루-레이 사양에 따라 프로세스에서 에러 검출 코드를 판정하는 단계 (경로 1') 및 에러 검출 코드를 삽입하고 데이터를 출력하는 단계 (경로 2') 가 있다. 경로 2' 의 프로세스에서는, 버스트 전송 사이즈 m 을 갖고, 유저 데이터 방향 Q 로 순차적으로 배열된 데이터를 레코딩 프레임 방향 P 로 버스트-전송하고, 경로 1' 에서 산출된 EDC 를 부가하여 EDC 부가 데이터를 출력한다. In this reference, there is a step of determining an error detection code in the process (path 1 ') and inserting the error detection code and outputting data (path 2') in accordance with the Blu-ray specification. In the process of the path 2 ', burst-transmission of the data having the burst transfer size m and sequentially arranged in the user data direction Q in the recording frame direction P, and adding the EDC calculated in the path 1' to output the EDC additional data. do.

구체적으로, 참조에 개시된 발명에 따르면, 레코딩 장치는 유저 데이터를 저장하기 위한 데이터 버퍼 (11), 버퍼 컨트롤러 (12), EDC 생성기 (13), EDC 버퍼 (14), 및 통합 섹션 (integration section; 15) 을 포함한다. 다음의 예에서, 유저 데이터는 유저 데이터 방향 Q 에서 어드레스의 올림 차순으로 배열되고, 유저 데이터의 헤드 데이터로부터 데이터 버퍼 (11) 로 임시로 저장된다. 데이터 버퍼 (11) 는 호스트로부터 전송된 유저 데이터를 저장하기 위한 메모리이고, 이것은 버스트 전송이 가능한 SDRAM 등으로 형성된다. 버퍼 컨트롤러 (12) 는 경로 1' 에서 사용될 유저 데이터를 리딩하기 위한 채널 CH1 및 경로 2' 에서 사용될 유저 데이터를 리딩하기 위한 채널 CH2 을 포함한다. Specifically, according to the invention disclosed in the reference, the recording apparatus comprises a data buffer 11, a buffer controller 12, an EDC generator 13, an EDC buffer 14, and an integration section for storing user data; 15). In the following example, the user data is arranged in ascending order of addresses in the user data direction Q, and is temporarily stored in the data buffer 11 from the head data of the user data. The data buffer 11 is a memory for storing user data transferred from the host, which is formed of SDRAM or the like capable of burst transfer. Buffer controller 12 includes channel CH1 for reading user data to be used in path 1 'and channel CH2 for reading user data to be used in path 2'.

채널 CH1 에 의해 유저 데이터 방향 Q 의 시퀀스로 데이터 버퍼 (11) 로부터 리딩되는 유저 데이터는 EDC 생성기 (13) 로 전송된다. EDC 생성기 (13) 는, 유저 데이터 방향 Q 의, 하나의 섹터에 대응하는 데이터인, 2048-바이트 유저 데이터 및 4-바이트 0 데이터의 입력과 동시에 4-바이트 EDC 를 생성하는 시프트 레지스터에 의해 구성된다. 생성된 EDC 는 EDC 버퍼 (14) 에 저장된다. The user data read from the data buffer 11 in the sequence of the user data direction Q by the channel CH1 is transmitted to the EDC generator 13. The EDC generator 13 is constituted by a shift register which generates a 4-byte EDC simultaneously with the input of 2048-byte user data and 4-byte 0 data, which is data corresponding to one sector, in the user data direction Q. . The generated EDC is stored in the EDC buffer 14.

경로 2' 에서는, 유저 데이터 방향 Q 의 데이터 버퍼 (11) 로부터 리딩되는 유저 데이터는 채널 CH2 에 의해 유저 데이터 방향 Q 의 시퀀스의 버스트 전송 사이즈로 레코딩 프레임 방향 P 로 통합 섹션 (15) 으로 순차적으로 전송된다. 구체적으로, 32 섹터로 이루어진 유저 데이터 (데이터 블록 41) 는 유저 데이터 방향 Q 의 시퀀스의 버스트 전송 사이즈로 레코딩 프레임 방향 P 로 304 번 반복적으로 전송된다. 본 실시형태에서, 유저 데이터 방향 Q 의 304 바이트×버스트 전송 사이즈 m 을 갖는 부분은 전송 블록으로 칭해진다. 버스트 전송 사이즈 m 이 6 이라면, 데이터 블록 (41) 의 전송은 전송 블록의 전송을 36 번 반복한 후에 종료한다. In the path 2 ', the user data read out from the data buffer 11 of the user data direction Q is sequentially transmitted by the channel CH2 to the consolidation section 15 in the recording frame direction P in the burst transfer size of the sequence of the user data direction Q. do. Specifically, user data (data block 41) consisting of 32 sectors is repeatedly transmitted 304 times in the recording frame direction P with a burst transfer size of the sequence of the user data direction Q. In this embodiment, the portion having 304 bytes x burst transfer size m in the user data direction Q is called a transport block. If the burst transmission size m is 6, the transmission of the data block 41 ends after repeating the transmission of the transport block 36 times.

전송 블록을 전송할 때, 통합 섹션 (15) 은 소정의 타이밍에서 EDC 버퍼 (14) 로부터 EDC 를 리딩하고, 그 EDC 를 버스트-전송될 유저 데이터에 부가하고, EDC 가 부가된 상태로 데이터를 출력한다. When transmitting the transport block, the integration section 15 reads the EDC from the EDC buffer 14 at a predetermined timing, adds the EDC to the user data to be burst-transmitted, and outputs the data with the EDC added. .

그 다음, EDC-부가 데이터는 스크램블되어 레코딩 데이터로서 출력된다. 이 프로세스의 상세한 내용은 전술한 참조에서 설명된다. 간단하게 말하면, 프로세스는 전송 블록 사이즈 이상의 메모리 용량을 갖는 버퍼 (치환 버퍼) 로 EDC-부가 데이터를 저장하고, 그 다음, 그 데이터를 레코딩 프레임 방향 P 로 판독하여 출력한다. 그 다음, 레코딩 프레임 방향 P 로 배열된 EDC-부가 데이터를 스크램블하고, 스크램블 데이터를 레코딩 데이터로서 출력한다. 스크램블링에서는 경로 1' 의 EDC 와 함께 산출된 스크램블 중간값을 이용한다. The EDC-added data is then scrambled and output as recorded data. Details of this process are described in the foregoing references. In simple terms, the process stores the EDC-addition data into a buffer (substitution buffer) having a memory capacity equal to or larger than the transport block size, and then reads the data in the recording frame direction P and outputs it. Then, the EDC-addition arranged in the recording frame direction P scrambles the data, and outputs the scrambled data as the recording data. The scrambling uses the median scrambling value calculated with the EDC of path 1 '.

경로 1' 에서, 통합 섹션 (15) 에 의해 EDC 가 부가된 데이터는 그 후 유저 데이터 방향 Q 로 1 바이트씩 순차적으로 스크램블러에 입력된다. 스크램블러에서, 스크램블링값 Sk 는 입력 데이터 Dk 의 입력 타이밍에서 스크램블 시프트 레지스터로부터 출력되고, 스크램블링값 Sk 와 입력 데이터 Dk 의 익스클루시브 OR 가 산출되어 스크램블된 Dk' 을 얻는다. 경로 1' 에서, 레코딩 장치는 스크램블 시프트 레지스터의 저장값 (16 비트) 을 스크램블 버퍼에 스크램블 중간값으로서 저장한다. 16-비트 스크램블 중간 값은, 유저 데이터 방향 Q 가 아닌, 레코딩 프레임 방향 P 의 스크램블 값을 산출하기 위해 경로 S2 에서 이용되고, 그에 의해, 스크램블링을 가능하게 한다. In path 1 ', the data to which the EDC has been added by the consolidation section 15 is then sequentially input to the scrambler one byte in the user data direction Q. In the scrambler, the scrambling value Sk is output from the scramble shift register at the input timing of the input data Dk, and the exclusive OR of the scrambling value Sk and the input data Dk is calculated to obtain scrambled Dk '. In path 1 ', the recording device stores the stored value (16 bits) of the scramble shift register as a scrambled intermediate value in the scramble buffer. The 16-bit scrambled intermediate value is used in the path S2 to calculate the scrambled value of the recording frame direction P, but not the user data direction Q, thereby enabling scrambling.

또한, 참조에 개시된 발명은 스크램블 중간값을 산출하고, 그 다음, 이 데이터에 기초하여 ECC 를 산출한다. 구체적으로, 경로 1' 에서, ECC 는 EDC 및스크램블 중간값 외에도 경로 2' 에서의 이용을 위해 ECC 가 산출된다. 후술되는 바와 같이, 통합 섹션 (15) 으로부터 출력되는 EDC-부가 데이터를 스크램블하고, 그 스크램블 데이터를 치환 버퍼에 저장하고, 그 데이터를 레코딩 데이터로서 레코딩 프레임 방향 P 로 출력하는 것이 가능하다. In addition, the invention disclosed in the reference calculates the scramble median value, and then calculates the ECC based on this data. Specifically, in path 1 ', ECC is calculated for use in path 2' in addition to the EDC and scramble median. As will be described later, it is possible to scramble the EDC-additional data output from the integration section 15, store the scrambled data in the substitution buffer, and output the data in the recording frame direction P as recording data.

참조에 개시된 발명에 따르면, 버퍼 컨트롤러 (12) 는, 경로 1' 에서 EDC 를 산출할 때와 경로 2' 에서 EDC-부가 데이터를 출력할 때, 2048 바이트×32 섹터의 유저 데이터인 하나의 클러스터 (데이터 블록) 의 유저 데이터를 데이터 버퍼 (11) 로부터 리딩하는 것이 필요하다. 따라서, 경로 1' 과 경로 2' 에서 총 2 개의 데이터 블록을 리딩하는 것이 필요하다. 한편, 다음에 설명되는 발명의 예시적인 실시형태에서는 유저 데이터 리딩의 총 양을 감소시킬 수 있고, 따라서, 참조와 같이 2 단계를 수행할 때에도 데이터 버퍼에 대한 액세스를 감소시킬 수 있다. 구체적으로, 실시형태의 프로세스에서는, 제 1 단계에서 이용되는 유저 데이터를 약 1/4 정도로 감소시킨다. 약 1/4 의 유저 데이터에 기초하여 EDC 중간값을 산출하고, 그 다음, (약 3/4 의) 나머지 유저 데이터와 EDC 중간값에 기초하여 EDC 를 산출한다. 이는 제 1 단계에서의 데이터 버퍼에 대한 액세스를 약 1/4 정도로 감소시키는 것을 가능하게 한다. 그에 의해 본 실시형태는 데이터 버퍼에 대한 데이터 액세스를 감소시켜 인코딩 사양과 전력 소모 및 비용의 감소에서의 더 한층의 향상을 가능하게 한다. According to the invention disclosed in the reference, the buffer controller 12, when calculating the EDC on the path 1 'and when the EDC-addition outputs the data on the path 2', one cluster (2048 bytes x 32 sectors of user data) It is necessary to read the user data of the data block) from the data buffer 11. Therefore, it is necessary to read a total of two data blocks in path 1 'and path 2'. On the other hand, in the exemplary embodiment of the invention described below, it is possible to reduce the total amount of user data readings, and thus reduce access to the data buffer even when performing the two steps as shown. Specifically, in the process of the embodiment, the user data used in the first step is reduced to about 1/4. The EDC median value is calculated based on about 1/4 user data, and then the EDC is calculated based on the remaining user data (of about 3/4) and the EDC median value. This makes it possible to reduce the access to the data buffer in the first stage by about a quarter. The present embodiment thereby reduces data access to the data buffer, allowing further improvements in the encoding specification and the reduction of power consumption and cost.

제 1 실시형태1st Embodiment

도 4 는 본 발명의 제 1 예시적인 실시형태에 따른 레코딩 장치의 개략도이다. 도 4 에 나타낸 바와 같이, 레코딩 장치 (1) 는 데이터 버퍼 (2), 버퍼 컨트롤러 (3), 및 인코더 (4) 를 포함한다. 데이터 버퍼 (2) 는 호스트 (미도시) 로부터 전송된 유저 데이터를 버퍼링한다. 호스트는 레코딩 장치 (1) 로 하여금 유저 데이터를 레코딩하거나 디스크로부터 데이터를 리딩하도록 지시하는 AV (audio-visual) 시스템, PC (personal computer) 등이 될 수도 있다. 4 is a schematic diagram of a recording apparatus according to a first exemplary embodiment of the present invention. As shown in FIG. 4, the recording apparatus 1 includes a data buffer 2, a buffer controller 3, and an encoder 4. The data buffer 2 buffers user data sent from a host (not shown). The host may be an AV (audio-visual) system, a personal computer (PC), or the like, which instructs the recording device 1 to record user data or read data from a disc.

버퍼 컨트롤러 (3) 는 데이터 버퍼 (2) 로부터 유저 데이터의 리딩을 제어한다. 버퍼 컨트롤러 (3) 는 필요에 따라 유저 데이터를 리딩하고, 그 리딩 데이터를 인코더 (4) 로 전송한다. EDC 를 산출하기 위해, 본 실시형태의 레코딩 장치는, 전체 데이터 블록의 유저 데이터의 약 1/4 정도인 우수 섹터의 후반부의 데이터로부터 EDC 중간값을 산출하는 (여기서는 경로 1 로 칭해지는) 프로세스, 및 나머지 3/4 의 유저 데이터와 EDC 중간값으로부터 EDC 를 산출하는 (여기서는 경로 2 로 칭해지는) 프로세스를 병렬적으로 수행한다. 버퍼 컨트롤러 (3) 는 경로 1 의 프로세싱에서의 이용을 위한 유저 데이터를 리딩하기위한 채널 CH1 및 경로 2 의 프로세싱에서의 이용을 위한 유저 데이터를 리딩하기 위한 채널 CH2 를 갖고, 이들 양자 모두는 데이터 버퍼 (2) 로부터 나온 것이다. The buffer controller 3 controls reading of user data from the data buffer 2. The buffer controller 3 reads user data as needed, and transmits the reading data to the encoder 4. In order to calculate the EDC, the recording apparatus of the present embodiment is a process for calculating an EDC median value (here referred to as path 1) from data in the latter half of the even sector which is about one quarter of the user data of the entire data block, And a process of calculating EDC from the remaining 3/4 user data and the EDC median (here called path 2) in parallel. The buffer controller 3 has a channel CH1 for reading user data for use in the processing of path 1 and a channel CH2 for reading user data for use in the processing of path 2, both of which are data buffers. From (2).

인코더 (4) 는 EDC 를 유저 데이터에 부가하고, EDC-부가 유저 데이터를 스크램블한다. 그 다음, 인코더 (4) 는 스크램블 데이터 (이하 레코딩 데이터라 한다) 및 레코딩 데이터로부터 획득된 ECC 를 출력한다. 그 다음, ECC 및 레코딩 데이터는 BIS 코드로 결합되고, 1-7PP 에 의해 변조되고, 디스크 상에 레코딩된다. Encoder 4 adds the EDC to the user data, and the EDC-addition scrambles the user data. The encoder 4 then outputs scrambled data (hereinafter referred to as recording data) and an ECC obtained from the recording data. The ECC and recorded data are then combined into a BIS code, modulated by 1-7PP, and recorded on the disc.

인코더 (4) 는 경로 1 의 프로세싱을 수행하기 위한 EDC 생성기 (31), EDC 테이블 (32) 및 EDC 버퍼 (33) 를 포함한다. 경로 2 에서의 EDC 를 산출하기 위해 EDC 생성기 (34) 를 또한 포함한다. EDC 생성기 (31) 는 제 1 연산 섹션으로서 기능하고, EDC 생성기 (34) 는 제 2 연산 섹션으로서 기능한다. 경로 1 의 프로세싱에서, EDC 생성기 (31) 는 EDC 테이블 (32) 및 EDC 버퍼 (33) 을 참조해 연산을 수행한다. 경로 1 의 EDC 생성기 (1) 에서 수행된 연산의 결과는 EDC 중간값이고, 이는 나중에 설명된다. 획득된 EDC 중간값은 EDC 버퍼 (33) 로 다시 라이팅된다. 경로 2 의 프로세싱에서, EDC 생성기 (34) 는 EDC 테이블 (32) 및 EDC 버퍼 (33) 를 참조해 EDC 를 산출하고, 그 획득된 EDC 를 EDC 버퍼 (33) 로 다시 라이팅한다. Encoder 4 includes an EDC generator 31, an EDC table 32, and an EDC buffer 33 for performing the processing of path 1. Also included is an EDC generator 34 to calculate an EDC in path two. EDC generator 31 functions as a first operation section, and EDC generator 34 functions as a second operation section. In the processing of path 1, the EDC generator 31 refers to the EDC table 32 and the EDC buffer 33 to perform the operation. The result of the operation performed in EDC generator 1 of path 1 is the EDC median, which is described later. The obtained EDC median is written back to the EDC buffer 33. In the processing of path 2, the EDC generator 34 refers to the EDC table 32 and the EDC buffer 33 to calculate an EDC, and writes the obtained EDC back to the EDC buffer 33.

인코더 (4) 는 EDC 버퍼 (33) 에 저장된 EDC 를 채널 CH2 로부터 리딩된 유저 데이터에 부가하고, 그 EDC-부가 데이터를 출력하는 통합 섹션 (35) 을 추가로 포함한다. 또한, 이는 통합 섹션 (35) 으로부터 출력되는 EDC-부가 데이터를 스크램블하는 스크램블러 (36) 및 스크램블러 (36) 가 데이터를 스크램블하는데 필요한 스크램블값을 산출하는 스크램블값 생성기 (37) 를 추가적으로 포함한다. 또한, 인코더 (4) 는 스크램블러 (36) 에 의해 스크램블 데이터를 레코딩 프레임 방향 P 의 시퀀스로 재배열하는 치환 버퍼 (38) 를 추가적으로 포함한다. 통합 섹션 (35), 스크램블러 (36), 스크램블값 생성기 (37), 및 치환 버퍼 (38) 는 유저 데이터 및 EDC 로부터 레코딩 데이터를 산출하고, 획득된 레코딩 데이터를 출력하는 스크램블 프로세서를 구성한다. The encoder 4 further includes an integration section 35 for adding the EDC stored in the EDC buffer 33 to the user data read out from the channel CH2 and outputting the EDC-added data. It further includes a scrambler 36 which scrambles the EDC-added data output from the integration section 35 and a scrambler value generator 37 which calculates the scrambler value necessary for the scrambler 36 to scramble the data. In addition, the encoder 4 further includes a substitution buffer 38 for rearranging the scrambled data into a sequence in the recording frame direction P by the scrambler 36. The integration section 35, the scrambler 36, the scramble value generator 37, and the substitution buffer 38 constitute a scramble processor that calculates recording data from the user data and the EDC and outputs the obtained recording data.

또한, 인코더 (4) 는 스크램블 데이터로부터 ECC 를 생성하는 ECC 생성기 (39) 및 ECC 생성기 (39) 에 의해 생성된 ECC 를 버퍼링하는 ECC 버퍼 (40) 를 포함한다. 레코딩 프레임 방향 P 의 시퀀스로 치환 버퍼 (38) 로부터 리딩된 데이터는 레코딩 데이터로서 출력된다. ECC 버퍼 (40) 의 데이터는 ECC 패러티로서 출력된다. 레코딩 데이터 및 ECC 패러티는 통합 섹션 (미도시) 으로 출력되고, 여기서 레코딩 데이터는 로우 및 컬럼으로 재배열되고, ECC 가 부가되며, 그 다음, 인터리빙되어, 그에 의해 ECC 클러스터를 형성한다 (도 32 의 D12 참조).Encoder 4 also includes an ECC generator 39 for generating ECC from scrambled data and an ECC buffer 40 for buffering the ECC generated by ECC generator 39. Data read from the substitution buffer 38 in the sequence of the recording frame direction P is output as recording data. The data in the ECC buffer 40 is output as an ECC parity. The recording data and the ECC parity are output to an integrated section (not shown), where the recording data is rearranged into rows and columns, ECC is added, then interleaved, thereby forming an ECC cluster (Fig. 32). See D12).

또한, BIS 를 생성하는 또 다른 인코딩 디바이스 (BIS 인코딩 디바이스) 는 유저 컨트롤 데이터 및 어드레스 유닛 넘버 (도 32 의 D7 및 D8 참조) 로부터 액세스 블록 (도 32 의 D9 참조) 을 생성하고, 또한, BISECC (도 32 의 D10 참조) 를 생성한다. 그 다음, BIS 인코딩 디바이스는 액세스 블록 및 BISECC 를 통합 섹션에 제공하고, 그에 의해, BIS 블록 (도 32 의 D10 참조) 을 형성한다. BIS 블록은 BIS 클러스터 (도 32 의 D11 참조) 로 인터리빙된다. 그 다음, BIS 클러스터는 LDC 클러스터와 결합되어 ECC 클러스터 (도 32 의 D12 참조) 를 형성한다. ECC 클러스터에는 프레임 싱크 및 DSV 컨트롤 비트가 부가되어 물리적 클러스터 (도 32 의 D13 참조) 를 형성한다. 그 다음, 17PP 변조가 레코딩 프레임에 대해 수행되고, 런-인 및 런-아웃이 거기에 부가되어 레코딩 유닛 블록 (RUB) (도 32 의 D14 참조) 을 형성한다. 그 후, RUB 의 레코딩 유닛의 디스크 컨트롤러에 의해 디스크 상으로 데이터가 레코딩된다. Further, another encoding device for generating a BIS (BIS encoding device) generates an access block (see D9 in FIG. 32) from user control data and an address unit number (see D7 and D8 in FIG. 32), and furthermore, BISECC ( Refer to D10 in FIG. 32). The BIS encoding device then provides an access block and a BISECC to the integration section, thereby forming a BIS block (see D10 in FIG. 32). The BIS block is interleaved into the BIS cluster (see D11 in FIG. 32). The BIS cluster is then combined with the LDC cluster to form an ECC cluster (see D12 in FIG. 32). The frame sync and DSV control bits are added to the ECC cluster to form a physical cluster (see D13 in FIG. 32). Then, 17PP modulation is performed for the recording frame, and run-in and run-out are added thereto to form a recording unit block (RUB) (see D14 in FIG. 32). Thereafter, data is recorded onto the disc by the disc controller of the recording unit of the RUB.

본 예시적인 실시형태는 이하에서 더욱 자세히 설명된다. 본 실시형태는 하나의 섹터의 유저 데이터를 리딩한 후에 EDC 를 산출하지 않고, 경로 1 의 유저 데이터의 약 1/4 정도로부터 EDC 중간값을 산출하고, 그 다음, 경로 2 의 나머지 유저 데이터에 기초하여 EDC 중간값을 정정함으로써 EDC 를 산출하며, 그에 의해, 경로 1 에서 일어나는 데이터 버퍼 (2) 로의 액세스를 약 1/4 정도로 감소시킨다. This exemplary embodiment is described in more detail below. In this embodiment, after reading the user data of one sector, the EDC is calculated from about 1/4 of the user data of the path 1 without calculating the EDC, and then based on the remaining user data of the path 2 EDC is calculated by correcting the EDC median, thereby reducing access to the data buffer 2 occurring in path 1 by about a quarter.

도 5 는 본 실시형태에 따라 경로 1 및 경로 2 에서 이용되는 유저 데이터를 나타내는 도면이다. 인코더 (4) 의 프로세싱 단위인 데이터 블록 (41) 은, EDC 가 유저 데이터 방향 Q 와는 상이한 시퀀스의 하나의 섹터의 리딩 데이터의 중간에 삽입되며, 유저 데이터 방향 Q 로 데이터를 리딩할 때는, 섹터의 말단부에 EDC 가 부가되는 우수 섹터를 갖는다. 본 실시형태의 경로 1 에서, 데이터 블록은 제 1 시퀀스로서 유저 데이터 방향 Q 로 판독된다. 한편, 경로 2 에서는, 유저 데이터 방향 Q 로 배열된, 각각 버스트 전송 사이즈 m 을 갖는 유저 데이터가 제 1 시퀀스와는 상이한 시퀀스로서 레코딩 프레임 방향 P 로 판독된다. 이 경우, 우수 섹터는, 도 5 에 나타낸 바와 같이, 하나의 섹터의 모든 데이터를 전송하기 전에 EDC 가 삽입되는 코드 스트링 (연산 타겟 섹터) 이다. 따라서, 경로 1 의 프로세스에서는, EDC 가 부가된 후에 판독되는 우수 섹터의 후반 부분인, 경로 2 의 연산 타겟 섹터로서 기능하는 우수 섹터의 일부에 대한 연산을 수행함으로써 EDC 중간값을 산출한다. 그 후, 경로 2 의 프로세스에서는, 우수 섹터의 나머지 부분과 기수 섹터의 전체 부분에 대한 연산을 수행함으로써 EDC 를 산출한다. 기수 섹터는, 유저 데이터 방향 Q 로 데이터를 리딩할 때, 및 유저 데이터 방향 Q 의 시퀀스로 배열된, 버스트 전송 사이즈 m 을 갖는 유저 데이터를, 상기 시퀀스와는 상이한 시퀀스로서 레코딩 프레임 방향 P 로 리딩할 때 모두 섹터의 말단부에 EDC 가 부가되는 코드 스트링 (논-연산 타겟 섹터) 이고, 따라서, 경로 1 에서 EDC 중간값을 산출할 필요는 없다. FIG. 5 is a diagram illustrating user data used in the path 1 and the path 2 according to the present embodiment. FIG. The data block 41, which is a processing unit of the encoder 4, is inserted in the middle of reading data of one sector in a sequence different from the user data direction Q, and when the data is read in the user data direction Q, It has an even sector to which EDC is added at the distal end. In path 1 of this embodiment, the data block is read in the user data direction Q as the first sequence. On the other hand, in the path 2, user data each having a burst transfer size m arranged in the user data direction Q is read in the recording frame direction P as a sequence different from the first sequence. In this case, the even sector is a code string (operation target sector) into which the EDC is inserted before transmitting all data of one sector, as shown in FIG. Thus, in the process of path 1, the EDC median value is calculated by performing an operation on a part of the even sector serving as the calculation target sector of path 2, which is the latter part of the even sector read after the EDC is added. Then, in the process of path 2, the EDC is calculated by performing an operation on the remaining part of the even sector and the whole part of the odd sector. The odd sector is to read the user data having the burst transfer size m arranged in the sequence of the user data direction Q when reading data in the user data direction Q and in the recording frame direction P as a sequence different from the above sequence. When both are code strings (non-operation target sectors) to which the EDC is added at the end of the sector, therefore, it is not necessary to calculate the EDC median in path 1.

본 실시형태에서는 유저 데이터 6 바이트를 각각 버스트-전송하지만, 유저 데이터 1 바이트를 각각, 예를 들어, 레코딩 프레임 방향 P 로, 상이한 시퀀스로 전송하는 것도 가능하다. 본 실시형태에서 EDC 는 4 바이트이기 때문에, 우수 섹터의 EDC 는 로우 넘버 Row = 104 내지 107 및 컬럼 넘버 Column = 9 인 위치에 위치한다. 따라서, 경로 2 에서 로우 Row = 104 및 컬럼 Column = 9 에 위치한 EDC 의 헤드 바이트를 산출하기 전에 우수 섹터의 모든 유저 데이터에 대해 다음 연산 (예상값을 이용한 익스클루시브 OR 동작) 이 완료될 필요가 있다. 이러한 이유로, 경로 1 의 프로세싱에서는, 로우 Row = 105 내지 215 및 컬럼 Column = 0 내지 8 에 위치한 유저 데이터에 대한 프로세싱을 수행할 필요가 있다. 이는 버스트 전송 사이즈가 4 바이트보다 작은 경우 또는 버스트 전송 사이즈가 4 바이트 이상인 경우에 동일하고, 데이터는 2 전송 블록에 대해 연속으로 전송된다. 구체적으로, 본 실시형태는, Row = 104 및 Column = 8 또는 Row = 212 및 Column = 18 인 위치에 위치한 EDC 의 헤드 바이트에 대한 연산 전에 섹터의 모든 유저 데이터의 예상값 (expected value) 의 익스클루시브 OR 가 산출되도록 경로 1 의 프로세싱을 수행한다. 버스트 전송을 수행하기 위해 데이터 버퍼 (2) 의 헤드 어드레스를 산출하고 지정하는 방법은 나중에 설명된다. In this embodiment, six bytes of user data are burst-transmitted, but one byte of user data can be transmitted in a different sequence, for example, in the recording frame direction P, respectively. Since the EDC is 4 bytes in this embodiment, the EDC of the even sector is located at a row number Row = 104 to 107 and a column number Column = 9. Therefore, before calculating the head byte of the EDC located at row Row = 104 and column Column = 9 in path 2, the following operation (exclusive OR operation using expected values) needs to be completed for all user data of the even sector. have. For this reason, in the processing of path 1, it is necessary to perform processing for user data located in rows Row = 105 to 215 and columns Column = 0 to 8. This is the same when the burst transmission size is smaller than 4 bytes or when the burst transmission size is 4 bytes or more, and data is transmitted continuously for 2 transport blocks. Specifically, the present embodiment includes the exclusion of the expected value of all user data of the sector before the operation on the head byte of the EDC located at the position of Row = 104 and Column = 8 or Row = 212 and Column = 18. Perform the processing of path 1 so that a sieve OR is calculated. The method of calculating and specifying the head address of the data buffer 2 to perform a burst transfer is described later.

경로 1 에서, 버퍼 컨트롤러 (3) 의 채널 CH1 은, 도 5 에 나타낸 바와 같이 연산 타겟 섹터의 일부로서 데이터 블록 (41) 에 포함된 우수 섹터의 로우 Row = 108 내지 215에 위치한 데이터를, 유저 데이터 방향 Q 로 리딩하고, 그 리딩 데이터를 EDC 생성기 (31) 로 출력한다. 구체적으로, Column = 0 및 로우 Row = 108 내지 215 의 유저 데이터를 순차적으로 전송하고, 그 다음, Column = 1 및 로우 Row = 108 내지 215 의 유저 데이터를 전송한다. Column = 8 에 도달할 때까지 이러한 방식으로 전송이 반복된다. 채널 CH1 이 우수 섹터의 유저 데이터를 전송하기 때문에, Column = 8 의 데이터의 전송을 완료한 후에, 섹터 1 은 건너뛰고, Column = 19 내지 27 및 Row = 108 내지 215 인 섹터 2 의 유저 데이터를 전송하기 시작한다. 이 전송 프로세스는 마지막 우수 섹터인 섹터 30 에 도달할 때까지 반복된다. EDC 생성기 (31) 는 우수 섹터의 후반부에 대한 연산을 수행한다. In the path 1, the channel CH1 of the buffer controller 3 stores the data located in rows Row = 108 to 215 of the even sector included in the data block 41 as part of the calculation target sector as shown in FIG. It reads in the direction Q and outputs the reading data to the EDC generator 31. Specifically, user data of Column = 0 and row Rows = 108 to 215 are sequentially transmitted, and then user data of Column = 1 and row Rows = 108 to 215 are transmitted. The transfer is repeated in this manner until column = 8 is reached. Since channel CH1 transmits user data of even sectors, after completion of the data transfer of Column = 8, sector 1 is skipped and transmits user data of sector 2 with Columns = 19 to 27 and Row = 108 to 215. To start. This transfer process is repeated until sector 30, the last good sector, is reached. The EDC generator 31 performs an operation on the second half of the even sector.

한편, 경로 2 에서, 버퍼 컨트롤러 (3) 의 채널 CH2 는 채널 CH1 과는 상이한 리딩 순서로 데이터 블록 (41) 의 모든 데이터를 리딩한다. 구체적으로, 채널 CH2 는 경로 2 의 버스트 전송 사이즈 m 의 데이터를 버스트-전송한다. 본 실시형태에서 버스트 전송 사이즈 m 이 6 이지만, 6 바이트보다 더 크거나, 보다 더 작을 수도 있다. 버스트 전송 사이즈 m 은 EDC 의 사이즈 이상인 것이 바람직하다. On the other hand, in the path 2, the channel CH2 of the buffer controller 3 reads all the data of the data block 41 in a reading order different from that of the channel CH1. Specifically, channel CH2 burst-transmits data of the burst transmission size m of path 2. Although the burst transfer size m is 6 in this embodiment, it may be larger or smaller than 6 bytes. Burst transmission size m is preferably equal to or larger than the size of the EDC.

먼저, 유저 데이터 방향 Q (컬럼 방향) 로 배열된 6-바이트 데이터는 레코딩 프레임 방향 P (로우 방향) 로 1 데이터 블록에 대해 304 번 반복적으로 전송된다. 본 실시형태에서, 유저 데이터 방향 Q 의 6 바이트를 304 번 전송한 결과로서 획득된 데이터는 전송 블록 (C) 으로 칭해진다. 도 6 은 데이터 블록 (41) 의 전송 블록을 나타내는 도면이다. 6 바이트 각각의 버스트-전송을 수행하는 경우에, 하나의 데이터 블록 (41) 을 전송하기 위해 36 전송 블록이 전송된다. 채널 CH2 는 6 바이트 각각의 유저 데이터를 버스트 전송에 의해 통합 섹션 (35) 에 제공하고, 또한, EDC 생성기 (34) 에도 제공한다. EDC 생성기 (34) 는, 경로 1 에서 EDC 생성기 (31) 에 의해 연산이 수행된 우수 섹터의 후반부 이외의 유저 데이터의 나머지 부분의 데이터 (이는 우수 섹터의 전반부의 데이터이다) 및 기수 섹터의 전체 부분에 대한 연산을 수행한다. First, 6-byte data arranged in the user data direction Q (column direction) is repeatedly transmitted 304 times for one data block in the recording frame direction P (row direction). In this embodiment, the data obtained as a result of transmitting 6 bytes of the user data direction Q 304 times is called a transport block (C). 6 is a diagram illustrating a transport block of the data block 41. In the case of performing a burst-transmission of each of 6 bytes, 36 transport blocks are transmitted to transmit one data block 41. Channel CH2 provides the user data of each of the 6 bytes to the aggregation section 35 by burst transfer, and also to the EDC generator 34. The EDC generator 34 stores data of the remaining part of the user data other than the latter part of the even sector performed by the EDC generator 31 in path 1 (this is the data of the first half of the even sector) and the whole part of the odd sector. Perform the operation on.

예시적인 실시형태에 따른 레코딩 장치 (1) 의 연산의 개괄은 아래에 설명된다. 도 7 은 경로 S1 및 경로 S2 의 데이터 프로세싱 타이밍을 나타내는 도면이다. 도 7 에서 나타낸 바와같이, 데이터는 1 RUB 의 레코딩 단위로 디스크 상에 레코딩된다. t-번째 RUB 에 포함된 유저 데이터는 경로 S1 에서 프로세스되지만, (t-1) 번째 RUB 에 포함된 유저 데이터 (데이터 블록) 는 경로 S2 에서 프로세스된다. 경로 S2 의 프로세싱은 경로 S1 의 프로세싱 결과에 기초하여 수행되기 때문에, 레코딩 장치 (1) 는 t-번째 RUB 및 (t-1) 번째 RUB 에 병렬로 포함된 유저 데이터를 프로세싱함으로써, RUB 에 포함된 유저 데이터를 파이프라인으로 인코딩할 수 있다. 경로 S1 의 프로세싱은 유저 데이터 방향 Q 로 유저 데이터를 전송하고, 경로 S2 의 프로세싱은 스크램블된 유저 데이터를 레코딩 데이터로서 레코딩 프레임 방향 P 로 출력한다.An overview of the calculation of the recording apparatus 1 according to the exemplary embodiment is described below. 7 is a diagram illustrating data processing timings of a path S1 and a path S2. As shown in Fig. 7, data is recorded on the disc in recording units of 1 RUB. User data contained in the t-th RUB is processed in the path S1, while user data (data block) contained in the (t-1) th RUB is processed in the path S2. Since the processing of the path S2 is performed based on the result of the processing of the path S1, the recording device 1 processes the user data included in parallel in the t-th RUB and the (t-1) th RUB, thereby being included in the RUB. User data can be encoded into the pipeline. The processing of the path S1 transfers the user data in the user data direction Q, and the processing of the path S2 outputs the scrambled user data in the recording frame direction P as the recording data.

경로 S2 에서 (t-1) 번째 RUB 에 포함된 유저 데이터를 프로세싱하는 동안, t-번째 RUB 에 포함된 유저 데이터는 경로 S1 에서 수행된다. 따라서, (t-1) 번째 RUB 에 포함된 유저 데이터에 대한 경로 S2 에서의 프로세싱의 개시 전에, t-번째 RUB 에 포함된 유저 데이터에 대한 경로 S1 에서의 프로세싱이 완료된다. 따라서, 경로 S1 에서는, 경로 S2 에 의해 프로세스된 데이터보다 적어도 1 RUB 이전인 데이터에 대한 프로세싱을 수행한다. While processing the user data included in the (t-1) th RUB in the path S2, the user data included in the t-th RUB is performed in the path S1. Therefore, before the start of the processing in the path S2 for the user data included in the (t-1) th RUB, the processing in the path S1 for the user data included in the t-th RUB is completed. Thus, in path S1, processing is performed on data that is at least 1 RUB earlier than the data processed by path S2.

경로 1 및 경로 2 에서 수행되는 EDC 산출을 이하 설명한다. 경로 1 및 경로 2 양자에서의 연산은 유저 데이터 방향 Q 의 시퀀스에 대응하는 소정값을 이용하여 EDC 중간값 또는 EDC 를 산출한다. 연산 방법의 원리를 우선 설명한다. The EDC calculation performed on Path 1 and Path 2 is described below. The operation in both path 1 and path 2 uses the predetermined value corresponding to the sequence of user data direction Q to calculate the EDC median value or EDC. The principle of the calculation method is explained first.

블루-레이 디스크에서, 2048 바이트 (16384 비트) 의 유저 데이터에 4 바이 트 (32 비트) 의 에러 검출 코드가 부가된다. 4-바이트의 0 데이터가 부가된 2048-바이트의 유저 데이터를 갖는 코드 스트링 D(x) 을 In a Blu-ray disc, 4 bytes (32 bits) of error detection code are added to 2048 bytes (16384 bits) of user data. Code string D (x) with 2048-byte user data appended with 4-byte zero data

G(x) = X32+X31+X4+1G (x) = X 32 + X 31 + X 4 +1

의 생성 다항식으로 나눔으로써 32-비트의 에러 검출 코드가 획득될 수 있다.By dividing by the generated polynomial of, a 32-bit error detection code can be obtained.

2048-바이트의 유저 데이터가 I(x) 라면, 에러 검출 코드 EDC(x) 는 If 2048-byte user data is I (x), the error detection code EDC (x) is

EDC(x) = ∑bt*Xt = I(x)modG(x) (∑: t = 31 내지 0)EDC (x) = ∑b t * X t = I (x) modG (x) (∑: t = 31 to 0)

(여기서, I(x) = ∑bt*Xt (∑: t = 16415 내지 32))Where I (x) = ∑b t * X t (∑: t = 16415-32)

와 같이 표현된다. It is expressed as

결과적으로, 에러 검출 코드 EDC(x) 가 부가된 코드 스트링 D(x) 는 As a result, the code string D (x) to which the error detection code EDC (x) has been added is

D(x) = I(x)+EDC(x) D (x) = I (x) + EDC (x)

(여기서, 심볼 "+" 는 익스클루시브 OR 연산을 나타낸다)Where the symbol "+" represents an exclusive OR operation

와 같이 표현될 수 있다. It can be expressed as

에러 검출 코드 EDC(x) 는 코드 스트링 D(x) 를 도 8 에 나타낸 32-비트 시프트 레지스터로 입력함으로써 획득될 수 있다. 코드 스트링 D(x) 의 모든 코드를 입력 한 후의 32-비트 시프트 레지스터의 값은 에러 검출 코드 EDC(x) (=0) 이다. 본 실시형태에서, 유저 데이터 방향 Q 의 비트 시퀀스는 q 이고, 이는 q = b00000, b00001, ..., b16415, t = 16415-q 등으로 표현된다. The error detection code EDC (x) can be obtained by inputting the code string D (x) into the 32-bit shift register shown in FIG. The value of the 32-bit shift register after entering all the codes of the code string D (x) is the error detection code EDC (x) (= 0). In this embodiment, the bit sequence of the user data direction Q is q, which is represented by q = b00000, b00001, ..., b16415, t = 16415-q and the like.

에러 검출 코드 EDC(x) 는 입력 코드 스트링 D(x) 의 "1" 의 비트에 대응하는 XtmodG(x) 의 익스클루시브 OR 를 산출함으로써 획득될 수 있다. XtmodG(x) 는, k = 16416 의 코드 스트링 D(x) 에서 (16415-q) (=t) 번째 순서의 비트를 제외한 비트는 0 으로 설정되는 코드 스트링 d(x) 를 G(x) 로 나눈 후의 나머지를 나타낸다.The error detection code EDC (x) may be obtained by calculating the exclusive OR of X t modG (x) corresponding to the bit of “1” of the input code string D (x). X t modG (x) is a code string d (x) whose code is set to 0 except for the bits of the (16415-q) (= t) th order in the code string D (x) with k = 16416. The remainder after dividing by) is shown.

도 9 는 전술한 개념을 설명하기 위한 도면이다. k-비트가 모두 "1" ({111...1}) 인 k-비트 코드 스트링 D(x) 은 기본 코드 스트링 D'(x) 이다. 코드 스트링 D'(x) 를 도 8 에 나타낸 시프트 레지스터 (50) 에 입력함으로써 획득한 32-비트 시프트 레지스터는 코드 스트링 D'(x) 의 에러 검출 코드 E'(x) 이다. 본 실시형태에서, 코드 스트링 D'(x) 는 k = 2052*8 = 16416 비트를 포함한다. 9 is a view for explaining the above-described concept. The k-bit code string D (x) with k-bits all "1" ({111 ... 1}) is the base code string D '(x). The 32-bit shift register obtained by inputting the code string D '(x) into the shift register 50 shown in Fig. 8 is the error detection code E' (x) of the code string D '(x). In this embodiment, the code string D '(x) includes k = 2052 * 8 = 16416 bits.

기본 코드 스트링 D'(x) 는 도 9 에 나타낸 바와 같이, 예상값 산출 코드로서 여기에서 언급된 k 넘버의 코드 스트링 d(x)t 로서 설정된다. 각각의 예상값 산출 코드 스트링 d(x)16415 내지 0 은 q 에 대응하는 비트는 "1" 이고, 다른 모든 비트는 "0" 이다. 구체적으로, q = b00000 은 최상위 비트만이 "1" 인 코드 스트링 d(x)16415 = {100...0} 에 대응하고, q = b00001 은 제 2 비트만이 "1" 인 코드 스트링 d(x)16414 = {010...0} 에 대응한다. 유사하게, q = b16415 는 최하위 비트만이 "1" 인 코드 스트링 d(x)0 = {000...1} 에 대응한다. 예상값 산출 코드 스트링 d(x)t 를 시프트 레지스터 (50) 에 입력함으로써, 32-비트 시프트 레지스터값 XtmodG(x) 가 획득된다. The basic code string D '(x) is set as the code string d (x) t of the k number referred to herein as the expected value calculating code, as shown in FIG. Each expected value calculating code string d (x) 16415 to 0 has a bit corresponding to q being "1" and all other bits being "0". Specifically, q = b00000 corresponds to code string d (x) 16415 = {100 ... 0} with only the most significant bit "1", and q = b00001 corresponds to code string d with only the second bit "1". (x) 16414 = {010 ... 0}. Similarly, q = b16415 corresponds to code string d (x) 0 = {000 ... 1} where only the least significant bit is "1". By inputting the expected value calculating code string d (x) t into the shift register 50, a 32-bit shift register value X t modG (x) is obtained.

따라서, 예상값 산출 코드 스트링 d(x) 를 에러 검출값인 G(x) 로 나눈 후의 나머지는 XtmodG(x) 이다. XtmodG(x) 는 여기서 예상값으로 칭해진다. 예상값 XtmodG(x) 는 원래의 코드 스트링 D(x) 의 비트 시퀀스 q 에 대응하는 비트 데이터만이 거짓 (false) 일 때 신드롬 (syndrome) 값을 나타낸다. Therefore, the remainder after dividing the expected value calculation code string d (x) by the error detection value G (x) is X t modG (x). X t modG (x) is referred to herein as an expected value. The expected value X t modG (x) represents a syndrome value when only bit data corresponding to the bit sequence q of the original code string D (x) is false.

코드 스트링 D'(x) 을 시프트 레지스터에 입력함으로써 획득된 32-비트 시프트 레지스터값 (에러 검출 스트링 E'(x)) 은, 예상값 산출 코드 스트링 d(x)t 을 시프트 레지스터에 입력함으로써 획득된 모든 32-비트 시프트 레지스터값 (예상값 XtmodG(x) = Rt) 에 대해 익스클루시브 OR 를 수행함으로써 얻어진값과 동등하다. The 32-bit shift register value (error detection string E '(x)) obtained by inputting the code string D' (x) into the shift register is obtained by inputting the expected value calculating code string d (x) t into the shift register. It is equivalent to the value obtained by performing an exclusive OR on all 32-bit shift register values (expected value X t modG (x) = R t ).

따라서, 에러 검출 코드 E(x) 는 코드 스트링 D(x) 에서 코드 "1" 의 비트 시퀀스 q 에 대응하는 모든 예상값 XtmodG(x) 의 익스클루시브-OR 로서 획득될 수 있다. 따라서, 본 실시형태의 프로세스는, 코드 스트링과 동일한 넘버의 비트를 포함하고, 코드 스트링과 동일한 비트 시퀀스를 갖는 예상값 산출 코드 스트링 d(x) 을 형성하고, 여기서 각각의 비트 시퀀스에 대응하는 비트는 "1" 이고, 다른 비트는 "0" 이다. 그 다음, 프로세스는, 본 실시형태에서 k = 16416 인 코드 스트링 D(x) 의 비트의 넘버와 동일한 넘버에 대해, 예상값 산출 코드 스트링 d(x) 를 시프트 레지스터 (50) 에 입력함으로써 획득되는 예상값 (신드롬값) 을 유지하거나 산출한다. 이들 예상값의 이용으로 입력 코드 스트링 D(x) 에서 비트 "1" 의 모든 예상값의 익스클루시브 OR (=EDC) 를 획득하는 것이 가능하게 된다. 따라서, 코드 스트링 D(x) 를 시프트 레지스터 (50) 에 입력할 필요가 없게 된다. 이러한 식으로, 코드 스트링의 각각의 비트에 대응하는 예상값이 알려져 있다면, 연산이 유저 데이터 방향 Q 와 상이한 시퀀스로 수행된다 하더라도, 코드 스트링 D(x) 의 에러 검출 코드 E(x) 는 획득될 수 있다. Thus, the error detection code E (x) may be obtained as an exclusive-OR of all expected values X t modG (x) corresponding to the bit sequence q of the code “1” in the code string D (x). Thus, the process of the present embodiment forms an expected value calculating code string d (x) that includes the same number of bits as the code string, and has the same bit sequence as the code string, wherein the bits corresponding to each bit sequence Is "1" and the other bit is "0". Then, the process is obtained by inputting the expected value calculating code string d (x) into the shift register 50 for the same number as the number of bits of the code string D (x) in this embodiment k = 16416. Maintain or calculate the expected value (the syndrome value). Use of these expected values makes it possible to obtain an exclusive OR (= EDC) of all expected values of bit "1" in the input code string D (x). Therefore, there is no need to input the code string D (x) into the shift register 50. In this way, if the expected value corresponding to each bit of the code string is known, even if the operation is performed in a sequence different from the user data direction Q, the error detection code E (x) of the code string D (x) will be obtained. Can be.

데이터는 데이터 블록 단위로 프로세스된다. 데이터 블록 (41) 은 32 섹터 (코드 스트링 D(x)) 를 갖고, 에러 검출값 E(x) 는 각각의 코드 스트링 D(x) 에 대해 산출된다. 따라서, 32 에러 검출값 E(x) 는 하나의 데이터 블록 (41) 로부터 획득된다. Data is processed in data block units. The data block 41 has 32 sectors (code string D (x)), and the error detection value E (x) is calculated for each code string D (x). Thus, 32 error detection value E (x) is obtained from one data block 41.

예상값은 이하 자세히 설명된다. 도 8 에 나타낸 바와 같이, 시프트 레지스터 (50) 에 입력된 코드 스트링 D(x) 는, 예를 들어, 유저 데이터 방향 Q 의 109 번째 바이트 (Q = D00108) 의 최상위 비트 (q = b00864) 로의 데이터 입력이 "1" 이고, 다른 비트의 데이터는 모두 "0" 인 X 이다. 따라서, 코드 스트링 X 는 15552 번째 순서의 데이터는 "1" (B00864 = 1) 이고 다른값들은 모두 "0" 인 16416 비트를 갖는다. The expected value is described in detail below. As shown in FIG. 8, the code string D (x) input to the shift register 50 is, for example, data into the most significant bit (q = b00864) of the 109th byte (Q = D00108) of the user data direction Q. The input is "1" and the data of all other bits are X with "0". Thus, the code string X has 16416 bits in which the data of the 15552 th order is "1" (B 00864 = 1) and all other values are "0".

이 경우, 코드 스트링 X 를 32-비트 시프트 레지스터 (50) 로 입력한 결과는 시프트 레지스터 (50) 의 값을 "00000001h" 로 초기화하고, 이 값을 15552 번 시프트함으로써 획득된다. In this case, the result of inputting the code string X into the 32-bit shift register 50 is obtained by initializing the value of the shift register 50 to "00000001h" and shifting this value 15552 times.

EDC 를 산출하기 위해, 코드 스트링의 비트 데이터가 "1" 인값의 XtmodG(x) 의 익스클루시브 OR 를 산출하는 것만이 필요하다. XtmodG(x) 의 익스클루시브 OR 가 획득된다면, 코드 스트링 D(x) 의 32-비트 시프트 레지스트값인 에러 검출값 E(x) 을 산출할 수 있다. In order to calculate the EDC, it is only necessary to calculate the exclusive OR of X t modG (x) with a bit data of the code string "1". If an exclusive OR of X t modG (x) is obtained, then the error detection value E (x), which is the 32-bit shift register value of the code string D (x), can be calculated.

도 10 은 예상값을 생성하는 프로세스를 나타내는 플로우차트이다. 도 10 에 나타낸 바와 같이, 프로세스는 먼저 시프트 레지스터 (50) 를 0 으로 초기화한다 (단계 S1). 그 다음, 16415 비트의 예상값 산출 코드 스트링 d(x) 를 준비하고, 그 코드 스트링 d(x) 를 시프트 레지스터 (50) 에 입력한다. 그 다음, 프로세스는 32-비트 레지스터값이 소정의 예상값 (32 비트) 에 도달할 때까지 (S5) 시프트 레지스터 (50) 를 16416 비트 동안 반복적으로 로테이션시킨다 (S3 및 S4).10 is a flowchart illustrating a process of generating an expected value. As shown in Fig. 10, the process first initializes the shift register 50 to 0 (step S1). Next, an expected value calculating code string d (x) of 16415 bits is prepared, and the code string d (x) is input to the shift register 50. The process then rotates the shift register 50 repeatedly for 16416 bits (S3 and S4) until the 32-bit register value reaches a predetermined expected value (32 bits).

이 예시적인 실시형태는 비트 데이터에 대응하는 모든 예상값에 대해 유효한 것은 아니며, 섹터 0 및 1 로 이루어지는 영역 (Area 0) 의 Row = 0 에 대응하는 총 19 개의 예상값에 대해서만 유효하다. 블루-레이 디스크에서, 데이터 블록은, 유저 데이터 방향 Q 의 시퀀스에서 보았을 때, 각각의 세트는 섹터 0 및 1 의 쌍을 갖고 19 컬럼을 포함하는, 16 데이터 세트의 규칙적인 구조를 갖는다. 따라서, 모든 영역은 유저 데이터 방향 Q 로 동일한 비트 시퀀스를 갖는다. 경로 1 에서, 연산은 Row = 108 로 시작한다. Row = 108 의 예상값은 Row = 0 의 예상값 상의 Column+10 의 값과 동등하기 때문에, 모든 예상값을 저장하지 않고서도 Row = 0 의 19 개의 예상값으로부터 모든 예상값을 산출하는 것이 가능하다. 따라서, 예상값은 전술한 연산에 의해 Row = 0 의 MSB 는 "1" 이고 다른 것들은 "0" 인 19 개의 예상값 산출 코드 스트링으로부터 산출된다. 본 실시형태에서, 19 개의 예상값은 초기 예상값이라 칭해진다. 우수 섹터 및 기수 섹터의 쌍을 갖는 영역의 컬럼 넘버는 M (0≤M≤18) 이다. This exemplary embodiment is not valid for all expected values corresponding to bit data, but only for a total of 19 expected values corresponding to Row = 0 of an area 0 consisting of sectors 0 and 1. In a Blu-ray disc, the data block has a regular structure of 16 data sets, when viewed in the sequence of user data direction Q, each set having pairs of sectors 0 and 1 and containing 19 columns. Therefore, all the regions have the same bit sequence in the user data direction Q. In path 1, the operation starts with Row = 108. Because the expected value of Row = 108 is equivalent to the value of Column + 10 on the expected value of Row = 0, it is possible to calculate all the expected values from the 19 expected values of Row = 0 without storing all the expected values. . Thus, the predicted value is calculated from the 19 predicted value calculating code strings in which the MSB of Row = 0 is " 1 " and the others are " 0 " In this embodiment, the 19 expected values are called initial expected values. The column number of the region having a pair of even and odd sectors is M (0 ≦ M ≦ 18).

도 11 은 경로 1 의 프로세싱을 설명하기 위한 도면이다. 경로 1 에서, EDC 생성기 (31) 는 로우 Row = 0 의 최상위 비트 (MSB) 에 대응하는 19 개의 예상값 (초기 예상값) 만을 참조한다. 따라서, EDC 테이블 (32) 은 로우 Row = 0 및 컬럼 M = 0 내지 18 의 최상위 비트 b00000, ..., b14688 에 대응하는 예상값 (초기 예상값) 을 리딩한다. 초기 예상값은, 예를 들어, 메모리 등 (미도시) 에 미리 저장된다. 각각의 컬럼 방향 (유저 데이터 방향 Q) 의 예상값은 초기 예상값을 나중에 설명할 시프트 레지스터 (로테이션 회로) 에 입력하고, 그 데이터를 한번 시프팅시킴으로써 간단하게 획득할 수 있다. 11 is a diagram for describing the processing of path 1. In path 1, the EDC generator 31 refers to only 19 expected values (initial expected values) corresponding to the most significant bit (MSB) of row Row = 0. Thus, EDC table 32 reads the expected values (initial expected values) corresponding to the most significant bits b00000, ..., b14688 of row Row = 0 and columns M = 0-18. The initial expected value is stored in advance in, for example, a memory or the like (not shown). The expected value of each column direction (user data direction Q) can be obtained simply by inputting the initial expected value into a shift register (rotation circuit), which will be described later, and shifting the data once.

EDC 생성기 (31) 는 로우 Row = 108 내지 215 의 예상값을 생성한다. Row = 108 의 각각의 컬럼 넘버 M 의 예상값은 Row = 0 의 각각의 컬럼 넘버 M+10 의 예상값에 대응한다. 따라서, EDC 생성기 (31) 는 EDC 테이블 (32) 을 참조하여 입력 유저 데이터의 M+10 에 대응하는 초기 예상값을 리딩한다. 그 다음, 초기 예상값은 예상값 생성기에 의해 시프트-오퍼레이팅되어 (이는 나중에 설명한다), 입력 유저 데이터의 각각의 비트의 시퀀스 q 에 대응하는 예상값이 된다. 그 다음, 획득된 예상값과 유저 데이터는 익스클루시브-OR 되고, 그에 의해 로우 Row = 108 내지 215 및 컬럼 M = 0 내지 8 의 데이터 (도 11 의 음영에 의해 지시되는 데이터 (42)) 의 모든 익스클루시브 OR 를 EDC 중간값으로서 획득한다. EDC generator 31 generates an expected value of row Row = 108-215. The expected value of each column number M of Row = 108 corresponds to the expected value of each column number M + 10 of Row = 0. Thus, the EDC generator 31 refers to the EDC table 32 and reads an initial expected value corresponding to M + 10 of the input user data. The initial expected value is then shift-operated by the predictive value generator (which will be described later) to become the predicted value corresponding to the sequence q of each bit of the input user data. Then, the expected value and the user data obtained are Exclusive-OR, whereby the data of the rows Row = 108 to 215 and the columns M = 0 to 8 (data 42 indicated by the shade of Figure 11) All exclusive ORs are obtained as the EDC median.

도 12 는 EDC 생성기 (31) 의 상세한 예를 나타내는 도면이다. EDC 생성기 (31) 는 입력 유저 데이터의 하나의 영역의 컬럼 넘버 M 을 카운트하는 컬럼 카운터 (61), 및 컬럼 카운터 (61) 의 카운트값에 따라 EDC 테이블 (32) 로부터 초기 예상값을 선택하고 리딩하는 선택기 (62) 를 포함한다. 또한, EDC 생성기 (31) 는 초기 예상값으로부터 입력 유저 데이터의 비트 시퀀스 q 에 대응하는 예상값을 생성하는 EDC 예상값 생성기 (63), 유저 데이터가 "1" 일 때 유저 데이터를 출력하고, 유저 데이터의 비트 시퀀스 q 에 대응하는 예상값을 출력하는 선택기 (64), 및 익스클루시브-OR 를 산출하는 XOR 회로 (65) 를 추가적으로 포함한다. 또한, EDC 생성기 (31) 는 유저 데이터의 섹터를 카운트하는 섹터 카운터 (67) 및 각각의 섹터에 대한 XOR 회로 (65) 의 연산 결과를 섹터 카운터 (67) 의 카운트값에 따라 EDC 버퍼 (33) 에 전송하는 선택기 (68) 를 포함한다. 12 is a diagram illustrating a detailed example of the EDC generator 31. The EDC generator 31 selects and reads an initial expected value from the EDC table 32 according to the column counter 61 that counts the column number M of one area of the input user data, and the count value of the column counter 61. And a selector 62. Further, the EDC generator 31 outputs the user data when the user data is "1", the EDC predictive value generator 63 which generates an expected value corresponding to the bit sequence q of the input user data from the initial predicted value. A selector 64 for outputting an expected value corresponding to the bit sequence q of data, and an XOR circuit 65 for calculating an exclusive-OR. In addition, the EDC generator 31 calculates the result of the calculation of the sector counter 67 for counting sectors of user data and the XOR circuit 65 for each sector according to the count value of the sector counter 67. And a selector 68 to transmit to.

도 13 은 EDC 예상값 생성기 (63) 의 예를 나타내는 도면이다. 도 14 는 EDC 테이블과 초기 예상값 사이의 관계를 나타내는 개략도이다. EDC 예상값 생성기 (63) 는 도 13 에 나타낸 바와 같이 32-비트 시프트 레지스터가 로테이션되는 구조를 갖는다. 버퍼 컨트롤러 (3) 의 채널 CH1 으로부터 제공되는 유저 데이터에 대응하는 컬럼 넘버 M 의 32-비트 초기 예상값이 선택기 (62) 로부터 입력될 때, EDC 예상값 생성기 (63) 는 그값을 순차적으로 시프트하고 로테이션시켜, 그에 의해 유저 데이터 방향 Q 의 비트 시퀀스 q 에 대응하는 예상값을 생성한다.13 is a diagram illustrating an example of the EDC expected value generator 63. 14 is a schematic diagram illustrating a relationship between an EDC table and an initial expected value. EDC expected value generator 63 has a structure in which a 32-bit shift register is rotated as shown in FIG. When the 32-bit initial expected value of column number M corresponding to the user data provided from the channel CH1 of the buffer controller 3 is input from the selector 62, the EDC expected value generator 63 shifts the value sequentially. Rotation, thereby generating an expected value corresponding to the bit sequence q in the user data direction Q.

초기 예상값은 로우 Row = 0 의 최상위 비트에 대응하는 값이고, 로우 Row = 108 의 최상위 비트에 대응하는 초기 예상값은 로우 넘버 Row = 0 의 컬럼 넘버 M 에 10 을 부가한값이다. 따라서, 컬럼 카운터 (61) 의 카운트값에 10 을 부가한 컬럼 넘버 M 에 대응하는 초기 예상값은 선택기 (62) 에 의해 리딩되고, EDC 예 상값 생성기 (63) 에 제공된다. The initial expected value is a value corresponding to the most significant bit of row Row = 0, and the initial expected value corresponding to the most significant bit of row Row = 108 is a value obtained by adding 10 to the column number M of row number Row = 0. Therefore, the initial expected value corresponding to the column number M which added 10 to the count value of the column counter 61 is read by the selector 62 and is provided to the EDC predicted value generator 63.

EDC 중간값은 유저 데이터가 "1" 인 비트에 대응하는 예상값의 익스클루시브 OR 로서 획득된다. 선택기 (64) 는 채널 CH1 으로부터 제공되는 유저 데이터가 "1" 일 때만 EDC 예상값 생성기 (63) 에 의해 생성되는 유저 데이터의 비트 시퀀스 q 에 대응하는 예상값을 출력하고, 유저 데이터가 "0" 일 때, "000h" 를 선택하여 출력한다. The EDC median is obtained as an exclusive OR of the expected value corresponding to the bit where the user data is "1". The selector 64 outputs an expected value corresponding to the bit sequence q of the user data generated by the EDC expected value generator 63 only when the user data provided from the channel CH1 is "1", and the user data is "0". , "000h" is selected and output.

경로 1 에서, EDC 버퍼 (33) 는 EDC 생성기 (31) 에 의해 업데이트된 연산 결과를 저장한다. 따라서, 경로 1 의 프로세싱의 완료와 동시에, EDC 버퍼 (33) 는 EDC 중간값을 유지한다. 경로 2 에서, EDC 버퍼 (33) 는 EDC 생성기 (34) 에 의해 업데이트된 연산 결과를 저장하고, 따라서, 최종적으로 EDC 를 유지한다. EDC 버퍼 (33) 는 각각의 섹터에 대한 연산 결과를 저장하는 저장 영역을 갖는다. 데이터 블록 (41) 은 32 섹터로 이루어지고, 각각의 연산 결과는 32 비트를 가지며, 따라서, EDC 버퍼 (33) 는 32-비트 저장 영역의 32 섹터를 가진다. 경로 1 의 EDC 버퍼 (33) 의 기수 섹터에 대응하는 각각의 저장 영역에 저장된 값은 0 이다. In path 1, the EDC buffer 33 stores the operation result updated by the EDC generator 31. Therefore, upon completion of the processing of path 1, the EDC buffer 33 maintains the EDC median. In path 2, the EDC buffer 33 stores the result of the operation updated by the EDC generator 34, thus finally maintaining the EDC. The EDC buffer 33 has a storage area for storing the operation result for each sector. The data block 41 is made up of 32 sectors, and each operation result has 32 bits, and thus the EDC buffer 33 has 32 sectors of a 32-bit storage area. The value stored in each storage area corresponding to the odd sector of the EDC buffer 33 of path 1 is zero.

선택기 (68) 는 섹터 카운터 (67) 에 의해 EDC 버퍼 (33) 로부터 선택된 섹터에 대응하는 값을 리딩하고, 그값을 XOR 회로 (65) 에 제공한다. XOR 회로 (65) 는 선택기 (64) 의 출력과 선택기 (68) 의 선택된 값의 익스클루시브-OR 를 산출하고, 그 결과를 선택기 (68) 에 제공한다. 선택기 (68) 는 이 결과를 EDC 버퍼 (33) 의 대응하는 섹터의 저장 영역에 라이팅한다. The selector 68 reads the value corresponding to the sector selected from the EDC buffer 33 by the sector counter 67 and provides the value to the XOR circuit 65. The XOR circuit 65 calculates the Exclusive-OR of the output of the selector 64 and the selected value of the selector 68, and provides the result to the selector 68. The selector 68 writes this result to the storage area of the corresponding sector of the EDC buffer 33.

결과적으로, 섹터 0 의 유저 데이터 입력의 완료와 동시에, EDC 버퍼 (33) 는 도 11 의 음영에 의해 지시되는 섹터 0 (Row = 108 내지 215 및 M = 0 내지 8) 의 후반부의 유저 데이터와 대응하는 예상값에 대한 익스클루시브 OR 에 의해 획득되는 EDC 중간값을 저장한다. As a result, upon completion of the user data input of sector 0, the EDC buffer 33 corresponds to the user data of the latter half of sector 0 (Row = 108 to 215 and M = 0 to 8) indicated by the shade of FIG. It stores the median EDC obtained by Exclusive OR for the expected value.

경로 2 의 프로세싱을 여기에서 설명한다. 도 15 는 경로 2 의 프로세싱을 설명하기 위한 도면이다. 도 15 에 나타낸 바와 같이, 경로 2 에서, 버퍼 컨트롤러 (3) 의 채널 CH2 는 경로 1 에서 프로세스되지 않은 유저 데이터인, 로우 Row = 0 내지 107 및 컬럼 M = 0 내지 18 인 유저 데이터와 로우 Row = 108 내지 215 및 컬럼 M = 9 내지 18 인 유저 데이터를 EDC 생성기 (34) 에 순차적으로 제공한다. The processing of path 2 is described here. 15 is a diagram for describing the processing of path 2. As shown in Fig. 15, in path 2, channel CH2 of the buffer controller 3 is row data 0 through 107 and column M = 0 to 18 and user row and row Row = unprocessed user data in path 1; User data with 108 to 215 and columns M = 9 to 18 are sequentially provided to the EDC generator 34.

채널 CH2 는 전술한 바와 같이 유저 데이터 방향 Q 의 버스트 전송 사이즈 m 바이트 × 레코딩 프레임 방향 P 의 304 바이트인 전송 블록을 순차적으로 제공한다. 32 섹터의 유저 데이터는 통합 섹션 (35) 으로 전송된다. EDC 생성기 (34) 는 연산을 위해 필요한 데이터만을 제공할 수도 있다. 예를 들어, 전송 블록이 우수 섹터 (M = 0 내지 9) 일 때, 로우 Row = 0 내지 107 의 데이터가 제공될 수도 있고, 전송 블록이 기수 섹터 (Row = 9 내지 18) 일 때, 모든 유저 데이터가 제공될 수도 있다. 다르게는, 데이터 블록의 모든 유저 데이터가 제공될 수도 있고, 오직 필요한 유저 데이터만 연산을 위해 선택될 수도 있다. The channel CH2 sequentially provides a transport block having a burst transfer size m bytes in the user data direction Q x 304 bytes in the recording frame direction P as described above. 32 sectors of user data are transmitted to the consolidation section 35. EDC generator 34 may provide only the data needed for the operation. For example, when the transport block is a good sector (M = 0 to 9), data of row Row = 0 to 107 may be provided, and when the transport block is an odd sector (Row = 9 to 18), all users Data may be provided. Alternatively, all user data of the data block may be provided, and only necessary user data may be selected for the operation.

EDC 생성기 (34) 는 기본적으로 EDC 생성기 (31) 와 동일한 구조를 가진다. 도 16 은 EDC 생성기 (34) 의 상세한 예를 나타내는 도면이다. 도 16 에 나타낸 바와 같이, EDC 생성기 (34) 는 입력 유저 데이터의 하나의 영역의 컬럼 넘버 M 을 카운트하는 컬럼 카운터 (71), 및 컬럼 카운터 (71) 의 카운트값에 따라 EDC 테이블 (32) 로부터 초기 예상값을 선택하고 리딩하는 선택기 (72) 를 포함한다. 또한, EDC 생성기 (34) 는, 초기 예상값으로부터 입력 유저 데이터의 비트 시퀀스 q 에 대응하는 예상값을 생성하는 EDC 예상값 생성기 (73), 유저 데이터가 "1" 일 때 유저 데이터를 출력하고, 유저 데이터의 비트 시퀀스 q 에 대응하는 예상값을 출력하는 선택기 (74), 및 익스클루시브-OR 를 산출하는 XOR 회로 (75) 를 포함한다. 또한, EDC 생성기 (34) 는 유저 데이터의 섹터를 카운트하는 섹터 카운터 (77) 및 각각의 섹터에 대한 XOR 회로 (75) 의 연산 결과를 섹터 카운터 (77) 의 카운트값에 따라 EDC 버퍼 (33) 로 전송하는 선택기 (78) 를 포함한다. The EDC generator 34 basically has the same structure as the EDC generator 31. 16 is a diagram illustrating a detailed example of the EDC generator 34. As shown in Fig. 16, the EDC generator 34 stores the column counter 71 for counting the column number M of one area of the input user data, and from the EDC table 32 in accordance with the count value of the column counter 71. A selector 72 for selecting and reading the initial expected value. In addition, the EDC generator 34 outputs the user data when the user data is "1", the EDC predictive value generator 73 which generates the predicted value corresponding to the bit sequence q of the input user data from the initial predicted value. A selector 74 for outputting an expected value corresponding to the bit sequence q of the user data, and an XOR circuit 75 for calculating an exclusive-OR. In addition, the EDC generator 34 stores the calculation result of the sector counter 77 for counting sectors of user data and the XOR circuit 75 for each sector according to the count value of the sector counter 77. And a selector 78 to transmit to.

EDC 생성기 (34) 또는 레코딩 장치 (1) 는 유저 데이터의 로우 넘버 Row 를카운트하는 카운터 (이하 베이스 로우 카운터라 칭한다) 및 버스트 전송 사이즈 m 의 로우 넘버를 카운트하는 카운터 (이하 버스트 전송 로우 카운터라 칭한다) 를 가진다. 다음의 설명에서, 베이스 로우 카운터에 의해 카운트되는 로우 넘버 (카운트값) 는 Row (0≤Row≤215) 이고, 버스트 전송 로우 카운터에 의해 카운트되는 로우 넘버 (카운트값) 는 N (0≤N≤m-1) 이다. 또한, EDC 생성기 (34) 는 각각의 카운터의 카운트값에 따라 유저 데이터 방향 Q 의 2049 번째 데이터의 입력 타이밍을 검출하는 EDC 플래그, 및 2049 번째 내지 2052 번째 바이트의 4 바이트의 입력 타이밍을 검출하는 EDC 영역 플래그 를 추가로 가지며, 이들 양자 모두는 도시하지 않았다.The EDC generator 34 or the recording device 1 refers to a counter for counting the row number row of user data (hereinafter referred to as a base row counter) and a counter for counting the row number of the burst transfer size m (hereinafter referred to as a burst transfer low counter). ) In the following description, the row number (count value) counted by the base row counter is Row (0≤Row≤215), and the row number (count value) counted by the burst transfer low counter is N (0≤N≤ m-1). In addition, the EDC generator 34 detects an input timing of the 2049th data of the user data direction Q in accordance with the count value of each counter, and an EDC detecting the input timing of 4 bytes of the 2049th to 2052th bytes. It further has an area flag, both of which are not shown.

경로 2 에서, 하나의 전송 블록의 전송 완료 후에, 최종 블록에 도달할 때까지 전송 블록은 순차적으로 전송된다. 예를 들어, 제 1 전송 블록 바로 후에 전송되는 전송 블록의 유저 데이터는 Row = N+첫 번째 로우에서 시작한다. 따라서, 그 다음 전송 블록이 전송될 때, EDC 테이블 (32) 은 Row = N+첫 번째 로우의 최상위 비트에 대응하는 예상값을 유지한다. 전송 블록의 최종 영역의 각각의 컬럼의 최종 비트에 대응하는 예상값을 생성함과 동시에, 그값은 EDC 테이블 (32) 에 순차적으로 오버라이팅된다. 따라서, 하나의 전송 블록에 대한 연산이 완료될 때, EDC 테이블 (32) 은 다음 전송 블록의 제 1 로우의 최상위 비트에 대응하는 예상값을 유지한다. 선택기 (72) 는 입력 유저 데이터의 컬럼 넘버에 대응하는 값을 예상값 생성기 (73) 에 제공하고, 그에 의해, 다음 전송 블록의 예상값의 생성을 가능하게 한다. In path 2, after completion of transmission of one transport block, the transport blocks are transmitted sequentially until the final block is reached. For example, user data of a transport block transmitted immediately after the first transport block starts at Row = N + first row. Thus, when the next transport block is sent, EDC table 32 maintains the expected value corresponding to the most significant bit of Row = N + first row. While generating an expected value corresponding to the last bit of each column of the last area of the transport block, the value is sequentially overwritten in the EDC table 32. Thus, when the operation for one transport block is completed, EDC table 32 maintains an expected value corresponding to the most significant bit of the first row of the next transport block. The selector 72 provides the value generator 73 with a value corresponding to the column number of the input user data, thereby enabling generation of the expected value of the next transport block.

그 다음, XOR 회로 (75) 는 경로 1 의 프로세싱에 의해 EDC 버퍼 (33) 에 저장된 EDC 중간값과, 전술한 방식으로 생성되고 선택기 (74) 에 의해 선택되고 출력된 예상값에 대해 익스클루시브-OR 연산을 수행하고, 그 결과를 EDC 버퍼에 다시 라이팅한다. 그에 의해, 각각의 섹터에 대응하는 EDC 는 각각의 섹터의 모든 유저 데이터에 대한 익스클루시브-OR 의 완료와 동시에 산출된다. 따라서, 우수 섹터의 EDC 가 먼저 산출되고, 그 다음, 기수 섹터의 EDC 가 그 후에 산출된다. EDC 는 EDC 플래그가 "1" 이 되는 타이밍에서 산출된다. 본 실시형태에서 버스트 전송 사이즈 m 은 6 이기 때문에, 2047 번째 내지 2052 번째 바이트에 입력된 유저 데이터에 관해서, 2048 번째 바이트까지는, 만약 데이터가 "1" 이라면, EDC 버퍼 (33) 에 저장된 값은 전술한 바와 같이 XOR 회로 (75) 에 의해 업데이트된다. 2049 번째 내지 2052 번째 데이터가 유저 데이터 방향 Q 로 순차적으로 입력되는 타이밍인, EDC 영역 플래그가 "1" 인 동안, 프로세스는 2049 번째 내지 2052 번째 바이트의 유저 데이터를 이용하지 않고, 입력 데이터로서 4-바이트 0 데이터를 이용한 연산을 수행한다. 이 기간에서 데이터는 모두 0 데이터이기 때문에, 선택기 (74) 는 EDC 버퍼 (33) 의 값을 업데이트하지 않고 단순히 0000h 를 XOR 회로 (75) 에 제공한다. 따라서, 2049 번째 바이트의 데이터가 입력되면, 예상값 생성기 (73) 는 이 값을 단순히 순차적으로 로테이션시키고, EDC 버퍼 (33) 에 저장된 대응하는 섹터의 데이터가 EDC 로서 통합 섹션 (35) 으로 출력된다. Then, the XOR circuit 75 is inclusive with respect to the EDC intermediate value stored in the EDC buffer 33 by the processing of the path 1 and the expected value generated in the manner described above and selected and output by the selector 74. Perform an -OR operation and write the result back to the EDC buffer. Thereby, the EDC corresponding to each sector is calculated simultaneously with the completion of the Exclusive-OR for all user data of each sector. Thus, the EDC of the even sector is calculated first, and then the EDC of the odd sector is then calculated. The EDC is calculated at the timing when the EDC flag becomes "1". In the present embodiment, since the burst transfer size m is 6, with respect to user data input in the 2047th to 2052th bytes, up to the 2048th byte, if the data is "1", the value stored in the EDC buffer 33 is described above. It is updated by the XOR circuit 75 as one did. While the EDC area flag is "1", which is the timing at which the 2049th to 2052th data are sequentially input in the user data direction Q, the process does not use the 2049th to 2052th byte of user data, and 4- as the input data. Performs operation using byte 0 data. Since the data in this period are all zero data, the selector 74 simply provides 0000h to the XOR circuit 75 without updating the value of the EDC buffer 33. Thus, when the 2049 th byte of data is input, the predictor generator 73 simply rotates this value sequentially, and the data of the corresponding sector stored in the EDC buffer 33 is output to the integration section 35 as an EDC. .

2049 번째 바이트 데이터는 데이터 블록의 EDC 의 헤드 데이터의 위치에 대응한다. 따라서, 2048 바이트 유저 데이터가 전송된 후에, 도 4 에 나타낸 통합 섹션 (35) 은 채널 CH2 의 전송 시퀀스에 따라서 EDC 를 부가한다. 따라서, EDC 의 출력을 가능하게 하기 위해, EDC 헤드 데이터에 대응하는 2049 번째 바이트의 데이터 입력과 동시에 2048 바이트의 모든 유저 데이터에 대해 각각의 비트가 "1" 인 예상값의 익스클루시브-OR (= EDC) 를 산출하거나, EDC 헤드 데이터를 부가하기 전에 EDC 를 산출하는 것이 필요하다. The 2049th byte data corresponds to the position of the head data of the EDC of the data block. Thus, after 2048 byte user data has been transmitted, the aggregation section 35 shown in FIG. 4 adds the EDC according to the transmission sequence of the channel CH2. Therefore, in order to enable the output of the EDC, the Exclusive-OR of the expected value with each bit equal to "1" for all user data of 2048 bytes simultaneously with the data input of the 2049th byte corresponding to the EDC head data. = EDC) or EDC before adding EDC head data.

경로 1 및 경로 2 의 EDC 생성 프로세스를 이하 자세히 설명한다. 먼저, 경로 1 의 프로세싱을 도 11, 도 12 및 도 17 을 참조하여 설명한다. 도 17 은 경로 1 의 EDC 생성 프로세싱을 나타내는 플로우차트이다. 전술한 바와 같이, EDC 버퍼 (33) 는 각각의 섹터의 연산 결과를 유지한다. 다음의 설명에서, 각각의 섹터의 연산 결과는 EDCValue[0 내지 31] 로서 칭해진다.The EDC generation process of path 1 and path 2 is described in detail below. First, the processing of path 1 will be described with reference to FIGS. 11, 12, and 17. 17 is a flowchart illustrating EDC generation processing of path 1. FIG. As described above, the EDC buffer 33 holds the operation result of each sector. In the following description, the operation result of each sector is referred to as EDCValue [0 to 31].

프로세스는 우선 EDC 버퍼 (33), 각각의 카운터, 및 EDC 테이블 (32) 의 EDCValue[0 내지 31] 을 초기화한다. 구체적으로, EDC 버퍼 (33) 의 모든 EDCValue[0 내지 31] 는 0 으로 설정된다 (단계 S11). 또한, 섹터 카운터 (67) 및 컬럼 카운터 (61) 의 카운트값은 0 으로 설정된다 (단계 S12 및 S13). 또한, EDC 테이블 (32) 의 테이블값은 초기 예상값으로 설정된다 (도 17 의 *1 참조). *1 에 나타낸값은 EDC 테이블 (32) 의 19 개의 저장 영역에 설정된 초기 예상값을 나타낸다. 다음으로, EDC 테이블 (32) 에 저장된 19 개의 예상값은 각각 EDCTable[M] 으로 표현된다. "M" 은 하나의 영역의 컬럼 넘버를 나타내고, 0 내지 18 이다. 예를 들어, *1 에서 나타낸 바와 같이, D0000 바이트의 MSB 는 "1" 이고 다른 것들은 "0" 인 16416 비트 (1 섹터) 의 코드 스트링을 도 8 에 나타낸 EDC 생성기인 시프트 레지스터 (50) 로 입력함으로써 획득되는 32-비트값 (예상값) = 0x8af08bed 으로 EDCTable[0] 이 설정된다. The process first initializes the EDC buffer 33, each counter, and the EDCValue [0 to 31] of the EDC table 32. Specifically, all the EDCValues [0 to 31] of the EDC buffer 33 are set to 0 (step S11). In addition, the count values of the sector counter 67 and the column counter 61 are set to 0 (steps S12 and S13). In addition, the table value of the EDC table 32 is set to an initial expected value (see * 1 in FIG. 17). The value shown in * 1 represents the initial expected value set in the 19 storage areas of the EDC table 32. Next, the 19 expected values stored in the EDC table 32 are represented by EDCTable [M], respectively. "M" represents a column number of one region and is 0-18. For example, as shown in * 1, a code string of 16416 bits (one sector) in which the MS0000 of D0000 bytes is "1" and the others is "0" is input into the shift register 50, which is the EDC generator shown in FIG. The EDCTable [0] is set to 32-bit value (expected value) = 0x8af08bed obtained by

그 다음, 선택기 (62) 는 EDCTable[M+10] 의 값을 리딩한다 (S15). 전술한 바와 같이, 본 실시형태는 초기 예상값으로서 Row = 0 에서 최상위 비트의 19 개의 예상값을 이용하고, 그 19 개의 예상값으로부터 모든 예상값을 생성한다. The selector 62 then reads the value of EDCTable [M + 10] (S15). As described above, this embodiment uses the 19 expected values of the most significant bit in Row = 0 as the initial expected values, and generates all expected values from those 19 expected values.

컬럼 카운터 (61) 의 카운트값 M 은 처음에는 M = 0 이기 때문에, 프로세스는 EDCTable[10] 의 값을 리딩한다. 그 다음, 다음 채널 CH1 으로부터 유저 데이터를 획득한다 (단계 S16). (4-바이트 데이터를 포함하는) 2052 바이트 의 하나의 섹터는 유저 데이터 방향의 D0000 내지 D2051 을 포함하고, 단계 S16 의 프로세스는 유저 데이터 방향으로 헤드에서 D0108+216*N (N = 0 내지 8) 의 108-바이트 데이터를 순차적으로 획득한다. Since the count value M of the column counter 61 is initially M = 0, the process reads the value of EDCTable [10]. Then, user data is acquired from the next channel CH1 (step S16). One sector of 2052 bytes (including 4-byte data) includes D0000 to D2051 in the user data direction, and the process of step S16 performs D0108 + 216 * N (N = 0 to 8) at the head in the user data direction. 108-byte data is obtained sequentially.

본 예시적인 실시형태에서, 획득된 데이터는 1 바이트 (8 비트) 의 단위로 저장되고, 다음의 방식으로 프로세스된다. 먼저, 획득된 데이터의 MSB 가 "1" 이면, 섹터 (64) 는 예상값 생성기 (63) 에 의해 생성된 예상값을 XOR 회로 (65) 로 출력한다. 선택기 (68) 는 EDCValue[0 내지 31] 로부터 대응하는 프로세싱 상태의 섹터의 값을 리딩하기를 선택하고, 그 선택된 값을 XOR 회로 (65) 로 출력한다. XOR 회로 (65) 는 이들의 익스클루시브-OR 를 산출하여 그 결과를 선택기 (68) 로 출력한다. 선택기 (68) 는 그 결과를 EDC 버퍼 (33) 의 대응하는 섹터의 저장 영역에 다시 라이팅한다 (단계 S18). 그 다음, 프로세스는 EDC 예상값 생성기 (63) 에 저장된 데이터를 로테이션시키고 (S19), 8-비트 데이터를 시프트시키고 (S20), 단계 S17 및 후속 단계를 8 비트에 대해 8 번 반복한다 (S21). 구체적으로, 프로세스는 단계 S20 에서 1 비트를 시프트시키고, MSB 의 위치에 저장된 비트가 "1" 인지 아닌지 여부를 판정한다. 만약, "1" 이라면, 예상값과의 익스클루시브-OR 를산출하고, 그 결과를 EDCValue[0 내지 31] 에 다시 라이팅한다. In the present exemplary embodiment, the obtained data is stored in units of 1 byte (8 bits) and processed in the following manner. First, if the MSB of the acquired data is "1", the sector 64 outputs the expected value generated by the expected value generator 63 to the XOR circuit 65. The selector 68 selects to read the value of the sector of the corresponding processing state from the EDCValue [0 to 31], and outputs the selected value to the XOR circuit 65. The XOR circuit 65 calculates these Exclusive-ORs and outputs the result to the selector 68. The selector 68 writes the result back to the storage area of the corresponding sector of the EDC buffer 33 (step S18). The process then rotates the data stored in the EDC expected value generator 63 (S19), shifts the 8-bit data (S20), and repeats step S17 and subsequent steps 8 times for 8 bits (S21). . Specifically, the process shifts one bit in step S20, and determines whether or not the bit stored at the position of the MSB is "1". If "1", calculate Exclusive-OR with the expected value and write the result back to EDCValue [0 to 31].

그 후, 프로세스는 전술한 프로세싱을 A 바이트 동안 반복하고, 이는 본 실시형태에서 버스트 전송 사이즈 m=6 이다 (S22). 제 1 컬럼의 108 바이트에 대한 프로세싱을 완료할 때, 프로세스는 컬럼 카운터 (61) 의 카운트값 M 이 8 인지 아닌지를 판정한다 (S23). 만약, 카운트값 M 이 아니라면, 카운트값을 증가시킨다 (S24). 카운트값이 섹터 바운더리를 의미하는 8 이라면, 프로세스는 카운트값을 리셋하고 (S25), 섹터 카운터 (67) 의 카운트값 섹터를 +2 이도록 설정한다. 단계 S23 에서의 판정 결과가 "아니오" 로 귀결된다면, 9 컬럼의 프로세스가 완료되지 않았다는 것을 의미하고, 단계 S27 에서, 하나의 섹터에 대한 프로세싱이 완료되지 않았다고 판정된다 (단계 S27 에서 "아니오"). 따라서, 프로세스는 단계 S15 부터 프로세싱을 반복한다. 구체적으로, 프로세스는 컬럼 카운터 (61) 의 카운트값 M+10 인 초기 예상값을 예상값 생성기 (63) 로 리딩하고, 1-비트 데이터를 획득하는 각각의 시간마다 시프트 레지스터를 로테이션시키고, 유저 데이터에 대응하는 예상값을 생성한다. 유저 데이터가 "1" 이면, 프로세스는 EDCValue[0 내지 31] 의 대응하는 섹터의 값을 리딩하고, 익스클루시브-OR 를 산출하고, 그 결과를 다시 라이팅한다. The process then repeats the above processing for A bytes, which in this embodiment is the burst transfer size m = 6 (S22). Upon completing the processing for 108 bytes of the first column, the process determines whether the count value M of the column counter 61 is 8 (S23). If it is not the count value M, the count value is increased (S24). If the count value is 8, meaning sector boundary, the process resets the count value (S25), and sets the count value sector of the sector counter 67 to be +2. If the determination result in step S23 results in "no", it means that the process of 9 columns is not completed, and in step S27, it is determined that the processing for one sector is not completed ("no" in step S27). . Thus, the process repeats the processing from step S15. Specifically, the process reads the initial expected value of the count value M + 10 of the column counter 61 into the expected value generator 63, rotates the shift register for each time to obtain 1-bit data, and user data. Generate the expected value corresponding to. If the user data is "1", the process reads the value of the corresponding sector of EDCValue [0-31], calculates Exclusive-OR, and writes the result back.

한편, 단계 S23 에서의 판정이 "예" 이면, 9 컬럼의 프로세스는 완료된다 (단계 S27 에서 "예"). 후속하는 우수 섹터가 존재한다면, 프로세싱은 거기에 대해 수행된다 (단계 S28 에서 "아니오"). 최종 섹터에 대한 프로세싱이 완료되거나, 섹터 카운터 (67) 의 카운트값이 32 일 때, 프로세스는 종료한다. 따라서, 하나의 데이터 블록의 경로 1 의 프로세싱이 완료된다. On the other hand, if the determination in step S23 is YES, the process of 9 columns is completed (YES in step S27). If there is a subsequent good sector, processing is performed thereon ("No" in step S28). When the processing for the last sector is completed, or when the count value of the sector counter 67 is 32, the process ends. Thus, the processing of path 1 of one data block is completed.

이하, 경로 2 의 EDC 생성 프로세싱을 도 15, 16, 및 18 내지 26 을 참조하여 상세히 설명한다. 도 18 은 경로 2 의 EDC 생성 프로세스를 나타내는 플로우차트이다. 도 20, 21, 22, 23 및 25 는 각각 도 18 의 단계 S31, S35, S41, S42 의 프로세싱의 상세한 내용을 나타내는 플로우차트이다. 도 19 는 EDC 플 래그 및 EDC 영역 플래그를 설명하기 위한 도면이다. 도 24 는 EDC 테이블의 업데이트를 설명하기 위한 도면이다. 도 26 은 섹터 카운터의 업데이트를 설명하기 위한 도면이다. The EDC generation processing of path 2 will now be described in detail with reference to FIGS. 15, 16, and 18-26. 18 is a flowchart illustrating an EDC generation process of path 2. FIG. 20, 21, 22, 23 and 25 are flowcharts showing details of the processing of steps S31, S35, S41 and S42 of FIG. 18, respectively. 19 is a diagram for explaining an EDC flag and an EDC region flag. 24 is a diagram for explaining updating of an EDC table. 26 is a diagram for explaining updating of a sector counter.

우선, 프로세스는 각각의 카운터의 값과 EDC 테이블 등을 초기화한다 (단계 S31). 그 다음, 유저 데이터를 획득한다 (S32). 경로 2 에서 획득된 데이터는 데이터 버퍼 (2) 의 채널 CH2 로부터 버스트-전송된 것이다. First, the process initializes the value of each counter, the EDC table, and the like (step S31). Next, user data is acquired (S32). The data obtained in path 2 is burst-transmitted from channel CH2 of the data buffer 2.

데이터를 획득한 후에, 프로세스는 그것이 EDC 의 헤드의 데이터인지 여부를 판정한다. 2048-바이트 유저 데이터에 4-바이트 0 데이터가 부가되기 때문에, 2048 번째 바이트 데이터 다음의 데이터는 EDC 의 헤드 데이터로서 검출된다. 도 15 에 나타낸 데이터 블록에서, 로우 Row = 104 및 컬럼 M = 9 의 위치에 대응하는 데이터 입력은 우수 섹터의 EDC 의 헤드로서 검출되고, 로우 Row = 212 및 컬럼 M = 18 의 위치에 대응하는 데이터 입력은 기수 섹터의 EDC 의 헤드로서 검출된다. 데이터가 EDC 의 헤드인 것을 나타내는 EDC 플래그가 1 을 가리키는지 여부를 체크함으로써 검출이 이루어질 수도 있다 (S33).After obtaining the data, the process determines whether it is data of the head of the EDC. Since 4-byte 0 data is added to the 2048-byte user data, the data following the 2048th byte data is detected as the head data of the EDC. In the data block shown in FIG. 15, the data input corresponding to the position of row Row = 104 and column M = 9 is detected as the head of the EDC of the even sector, and the data corresponding to the position of row Row = 212 and column M = 18. The input is detected as the head of the EDC of the odd sector. Detection may be made by checking whether the EDC flag indicating that the data is the head of the EDC indicates 1 (S33).

EDC 플래그가 "1" 이면, 데이터는 EDC 의 헤드라는 것이 판정되고, 획득된 데이터는 00h 로 교체된다 (S36). 따라서, 입력 8-비트 데이터는 "0" 으로서 검출되고, 선택기 (74) 는 0000h 를 선택하여 출력한다. XOR 회로 (75) 에서 8-비트 프로세싱을 수행한 후에, 프로세스는 EDC 의 바이트 수만큼 총 4 번 이를 반복하고 (S37 내지 S40) 단계 S41 로 진행한다. 또한, EDC 플래그가 "1" 이 아니고, EDC 영역 플래그가 "1" 일 때 (단계 S34 에서 "아니오"), 프로세스는 다음 단계 S41 로 진행한다. 입력 8-비트 데이터가 모두 "0" 이면, EDC 생성기 (34) 는 EDC 버퍼 (33) 의 값을 업데이트하지 않는다. 따라서, 실제로, 2048 번째 바이트의 유저 데이터의 EDC 연산의 완료와 동시에 EDC 버퍼 (33) 에 저장되는 데이터는 EDC 이다. EDC 플래그와 EDC 영역 플래그는 나중에 상세히 설명한다. If the EDC flag is "1", it is determined that the data is the head of the EDC, and the obtained data is replaced with 00h (S36). Therefore, input 8-bit data is detected as "0", and the selector 74 selects and outputs 0000h. After performing 8-bit processing in the XOR circuit 75, the process repeats this a total of four times by the number of bytes of the EDC (S37 to S40) and proceeds to step S41. Also, when the EDC flag is not "1" and the EDC area flag is "1" (NO in step S34), the process proceeds to the next step S41. If the input 8-bit data are all "0", EDC generator 34 does not update the value of EDC buffer 33. Therefore, in fact, the data stored in the EDC buffer 33 at the same time as the completion of the EDC operation of the 2048th byte of user data is an EDC. The EDC flag and the EDC region flag will be described later in detail.

한편, EDC 플래그가 "0" 이고, EDC 영역 내인지 아닌지 여부를 나타내는 EDC 영역 플래그가 "0" 이면, 프로세스는 단계 S35 로 진행한다. 단계 S35 에서, 프로세스는 유저 데이터가 "1" 인 예상값과, 경로 1 에서 프로세스되지 않은 유저 데이터 (여기서는 또한 타겟 데이터로서) 에 대한, 경로 1 과 같은 EDC 버퍼에 저장된 연산 결과의 익스클루시브-OR 를 순차적으로 산출한다. 먼저, 프로세스는 타겟 데이터의 8 비트 (= 1 바이트) 의 연산을 수행하고, 그 다음, 단계 S41 로 진행한다 (S35). On the other hand, if the EDC flag is "0" and the EDC area flag indicating whether or not it is in the EDC area is "0", the process proceeds to step S35. In step S35, the process includes the expected value of the user data as "1" and the exclusive of the result of the operation stored in the EDC buffer as path 1, for the unprocessed user data in the path 1 (here also as the target data). OR is calculated sequentially. First, the process performs an operation of 8 bits (= 1 byte) of the target data, and then proceeds to step S41 (S35).

단계 S41 에서, 프로세스는 각각의 카운터 및 EDC 테이블 (32) 을 업데이트하고 (단계 S41), 또한, 필요에 따라 섹터 카운터 (77) 를 업데이트 한다 (S42). 그 다음, 버스트 전송 사이즈의 m 바이트의 수 (본 예시적인 실시형태에서는 6 바이트) 만큼 전술한 프로세싱을 반복한다 (S43). 6 바이트의 프로세싱은 유저 데이터 방향 Q 로 수행된다. 버스트 전송 사이즈 m (본 실시형태에서는 6 바이트) 의 프로세싱을 수행한 후에, 그 다음, 프로세스는 304 컬럼의 프로세싱을 수행한다 (S44). 구체적으로, 유저 데이터 방향 Q 로 배열된 6-바이트 데이터를 레코딩 프레임 방향 P 로 304 번 복구하고, 이 프로세싱을 216/m 번 (본 실시형태에 서는 36 번) 반복하며 (S39), 그에 의해, 하나의 데이터 블록의 프로세싱을 완료한다. 216 이 버스트 전송 사이즈 m 에 의해 나누어질 수 없다면, 소수를 라운딩 업한 후의 수만큼 반복된다. 예를 들어, m = 16 이면, 216/16 = 13.5 이고, 몫은 정수가 아니다. 이 경우, 단계 S46 에서는 소수를 라운딩 업한 후의 수 (14 번) 만큼 수행되었는지 여부를 판정한다. 이 때, EDC 버퍼 (33) 는 32 섹터의 EDC 를 저장한다. In step S41, the process updates each counter and the EDC table 32 (step S41), and further updates the sector counter 77 as necessary (S42). Then, the above-described processing is repeated by the number of m bytes (6 bytes in the present exemplary embodiment) of the burst transfer size (S43). Processing of 6 bytes is performed in the user data direction Q. After performing processing of the burst transfer size m (6 bytes in this embodiment), the process then performs processing of 304 columns (S44). Specifically, 6-byte data arranged in the user data direction Q is recovered 304 times in the recording frame direction P, and this processing is repeated 216 / m times (36 times in this embodiment) (S39), whereby Complete the processing of one data block. If 216 cannot be divided by the burst transfer size m, it is repeated by the number after rounding up the decimal. For example, if m = 16, 216/16 = 13.5, and the quotient is not an integer. In this case, in step S46, it is determined whether or not the number (14 times) after rounding up the decimal is performed. At this time, the EDC buffer 33 stores 32 sectors of the EDC.

이하, 전술한 프로세싱을 더욱 자세히 설명한다. 단계 S31 의 초기화 프로세싱에서는 섹터 카운터 (77), 베이스 로우 카운터 (미도시), 버스트 전송 로우 카운터 (미도시), 컬럼 카운터 (71), 및 영역 카운터 (미도시) 의 카운트값을 "0" 으로 리셋하고 (S51 내지 S55), 로우 = 0 에서의 최상위 비트의 예상값인 초기 예상값을 도 20 의 플로우차트에 나타낸 바와 같이 EDC 테이블 (32) 로 리딩한다 (S56). 또한, 프로세스는 EDC 플래그와 EDC 영역 플래그를 "0" 으로 설정한다. The above-described processing will be described in more detail below. In the initialization processing of step S31, the count values of the sector counter 77, the base low counter (not shown), the burst transfer low counter (not shown), the column counter 71, and the area counter (not shown) are set to "0". It resets (S51 to S55) and reads the initial expected value, which is the expected value of the most significant bit at row = 0, into the EDC table 32 as shown in the flowchart of FIG. 20 (S56). The process also sets the EDC flag and the EDC region flag to "0".

전술한 바와 같이, 베이스 로우 카운터는 하나의 데이터 블록의 모든 로우를 연속적으로 카운트하고, 그 카운트값은 로우 넘버 Row = 0 내지 215 에 대응한다. 또한, 버스트 전송 로우 카운터는 각각의 버스트 전송에서 전송되는 데이터의 로우 넘버 N = 0 내지 5 를 카운트한다. 버스트 전송 로우 카운터는 버스트 전송 사이즈를 카운트하는데 사용되고, 베이스 로우 카운터는 전체 데이터 블록의 로우를 카운트하는데 사용된다. 영역 카운터는 영역을 카운트하고, 각각의 영역은 우수 섹터와 기수 섹터의 쌍을 가진다. 섹터 Sec 0 및 Sec 1 은 영역 Area 0 를형성하고, 최종 2 개의 섹터 Sec 30 및 Sec 31 은 영역 Area 15 를 형성한다. 따라서, 영역 카운터는 0 내지 15 를 카운트한다. 이들 카운트값은 리딩될 초기 예상값의 적절한 선택 및 EDC 테이블 (32) 에의 예상값의 라이팅 백과 리셋과 같은 타이밍의 컨트롤에 기여한다. As described above, the base row counter continuously counts all rows of one data block, and the count value corresponds to row numbers Row = 0 to 215. In addition, the burst transfer low counter counts row numbers N = 0 to 5 of the data transmitted in each burst transfer. The burst transfer low counter is used to count the burst transfer size, and the base low counter is used to count the rows of the entire data block. The area counter counts areas, each area having a pair of even and odd sectors. Sectors Sec 0 and Sec 1 form area Area 0, and the last two sectors Sec 30 and Sec 31 form area Area 15. Thus, the area counter counts from 0 to 15. These count values contribute to the proper selection of initial expected values to be read and to control timing such as writing back and resetting the expected values in the EDC table 32.

이하, EDC 플래그 및 EDC 영역 플래그를 설명한다. EDC 를 산출할 때, 2048-바이트 데이터 및 4-바이트 0 데이터를 포함하는 2052 바이트의 코드 스트링에 대해 소정의 연산이 수행된다. 구체적으로, 도 8 에 나타낸 바와 같이 코드 스트링을 시프트 레지스터 (50) 에 순차적으로 입력함으로써 획득되는 32-비트 시프트 레지스터로서 EDC 가 획득된다. 예시적인 실시형태에서도 또한, EDC 는 2048-바이트 유저 데이터 및 4-바이트 0 데이터를 포함하는 2052 바이트에 대한 예상값의 익스클루시브-OR 를 산출함으로써 획득된다. Hereinafter, the EDC flag and the EDC area flag will be described. When calculating the EDC, a predetermined operation is performed on a 2052 byte code string comprising 2048-byte data and 4-byte 0 data. Specifically, the EDC is obtained as a 32-bit shift register obtained by sequentially inputting a code string into the shift register 50 as shown in FIG. Also in the exemplary embodiment, the EDC is obtained by calculating an Exclusive-OR of expected values for 2052 bytes including 2048-byte user data and 4-byte 0 data.

4-바이트 0 데이터는 유저 데이터 방향 Q 의 2048 번째 바이트 후의 데이터에 부가된다. 따라서, EDC 의 헤드 데이터로서 EDC0 에 대응하는 2049 번째 바이트를 검출하고, 획득된 데이터를 00h 로 교체함으로써 2049 내지 2052 바이트의 4 바이트에 대한 프로세싱을 수행하는 것이 필요하다. 따라서, EDC 생성기 (34) 는 데이터를 복구하는 각각의 시간마다 다음에 획득될 데이터가 유저 데이터 방향 Q 의 2049 번째 바이트 데이터인지 여부를 판정한다. 4-byte 0 data is added to the data after the 2048th byte of the user data direction Q. Therefore, it is necessary to perform processing for 4 bytes of 2049 to 2052 bytes by detecting the 2049th byte corresponding to EDC0 as the head data of the EDC and replacing the obtained data with 00h. Thus, the EDC generator 34 determines whether or not the data to be obtained next is the 2049th byte data of the user data direction Q for each time to recover the data.

본 실시형태에서는, 이 말단부에 데이터가 2049 번째 데이터인지 여부를 검출하는 EDC 플래그를 설정한다. 따라서, EDC 플래그는 EDC 가 부가될 때 EDC 의 헤드 데이터로서 기능하는 데이터를 검출하기 위한 플래그이다. 다음의 설명에서, EDC 로서 기능하는, 헤드 데이터에서 4 번째 바이트 데이터의 데이터는 EDC0 내지 EDC3 로서 참조된다. EDC0 내지 EDC3 는 데이터 블록의 2049 번째 내지 2052 번째 바이트에 위치한다. In this embodiment, an EDC flag for detecting whether or not data is the 2049th data is set at this terminal. Therefore, the EDC flag is a flag for detecting data that functions as head data of the EDC when the EDC is added. In the following description, the data of the fourth byte data in the head data, which functions as the EDC, is referred to as EDC0 to EDC3. EDC0 to EDC3 are located in the 2049th to 2052th bytes of the data block.

EDC 플래그는, 입력 데이터가 각각의 섹터의 유저 데이터 방향 Q 의 시퀀스의 2049 번째 위치에 입력되는 데이터일 때만 "1" 을 가리킨다. EDC 의 산출은 2048-바이트 데이터 및 4-바이트 0 데이터를 포함하는 2052-바이트 코드 스트링의 각각의 바이트에 대한 예상값의 익스클루시브 OR 를 수행하기 때문에, EDC 가 위치할 4-바이트 부분 (EDC 영역) 은 입력에 관계 없이 4-바이트 0 데이터로서 프로세스된다. 따라서, EDC 플래그에 의해 EDC 헤드 데이터를 검출하는 것 외에도, 유저 데이터 방향 Q 의 2049 번째 내지 2052 번째 바이트의 EDC 영역 내의 데이터 입력은 EDC 영역 플래그에 의해 검출된다. EDC 플래그는, 우수 섹터의 컬럼 넘버가 9 이고 로우 넘버가 104 일 때와, 기수 섹터의 컬럼 넘버가 18 이고 로우 넘버가 212 일 때만 "1" 을 가리킨다. EDC 영역 플래그는, 우수 섹터의 컬럼 넘버가 9 이고 로우 넘버가 104 내지 107 일 때와, 기수 섹터의 컬럼 넘버가 18 이고 로우 넘버가 212 내지 215 일 때만 "1" 을 가리킨다. 이들 플래그는 베이스 로우 카운터, 버스트 전송 로우 카운터, 컬럼 카운터 등의 카운트값에 기초하여 설정된다. The EDC flag indicates "1" only when the input data is data input at the 2049th position of the sequence of the user data direction Q of each sector. Since the calculation of the EDC performs an exclusive OR of the expected values for each byte of the 2052-byte code string containing 2048-byte data and 4-byte zero data, the 4-byte portion (EDC) where the EDC is located Area) is processed as 4-byte 0 data regardless of input. Thus, in addition to detecting the EDC head data by the EDC flag, data input in the EDC area of the 2049th to 2052th bytes of the user data direction Q is detected by the EDC area flag. The EDC flag indicates "1" only when the column number of the even sector is 9 and the row number is 104 and the column number of the odd sector is 18 and the row number is 212. The EDC area flag indicates " 1 " only when the column number of the even sector is 9 and the row number is 104 to 107, and when the column number of the odd sector is 18 and the row number is 212 to 215. These flags are set based on count values of the base low counter, burst transfer low counter, column counter, and the like.

그 후에, 프로세스는 EDC 테이블로부터 대응하는 컬럼 넘버 (컬럼 카운터의 카운트값) M 의 초기 예상값을 예상값 생성기 (73) 로 리딩한다 (S59). 예를 들어, 경로 2 의 제 1 데이터를 프로세싱할 때, 컬럼 넘버 = 0 및 로우 넘버 = 0 의 섹터 Sec 0 의 유저 데이터가 제일 먼저 입력되기 때문에, EDCtable[0] 의 값이 리딩된다. Thereafter, the process reads from the EDC table the initial expected value of the corresponding column number (count value of the column counter) M to the expected value generator 73 (S59). For example, when processing the first data of path 2, the value of EDCtable [0] is read because user data of sector Sec 0 of column number = 0 and row number = 0 is input first.

이하, 단계 S35 의 상세한 내용을 설명한다. 단계 S35 에서, 경로 1 에서 프로세스되는 유저 데이터가 입력될 때, 베이스 로우 카운터의 카운트값 Row 와 로우 카운트값 N 의 합이 108 이상이고, 컬럼 넘버 (컬럼 카운터 (71) 의 컬럼 카운트값) M 이 0 내지 8 이면, 프로세스는 다음 단계 S41 로 진행한다 (S61). Row+N = 0 내지 107 일 때, 또는, Row+N = 108 내지 215 이고 0≤컬럼 카운트값 M≤8 일 때, 단계 S62 및 후속하는 단계의 프로세싱이 수행된다. The details of step S35 are described below. In step S35, when the user data processed in the path 1 is input, the sum of the count value Row and the row count value N of the base row counter is 108 or more, and the column number (column count value of the column counter 71) M is If 0 to 8, the process proceeds to the next step S41 (S61). When Row + N = 0-107, or when Row + N = 108-215 and 0 ≦ column count value M ≦ 8, the processing of step S62 and subsequent steps is performed.

구체적으로, 도 21 에 나타낸 바와 같이, 프로세스는 전술한 수행 조건이 만족되는지 여부를 판정하고 (단계 S61), 조건이 만족된다면, 획득된 데이터가 타겟 데이터라는 것을 의미하고, 프로세스는 획득된 데이터의 각각의 비트가 "1" 인지 아닌지를 판정한다 (S62). 만약 이것이 "1" 이라면, 선택기 (78) 는 EDCValue[섹터] 를 리딩하고, 이것을 XOR 회로 (75) 에 제공한다. 또한, 선택기 (74) 는 예상값을 선택적으로 출력하고, 이것을 XOR 회로 (75) 에 제공한다. XOR 회로 (75) 는 이들값의 익스클루시브-OR 를 산출하고, 그 결과를 선택기 (78) 로 출력한다. 선택기 (78) 는 그 결과를 EDCValue[섹터] 에 다시 라이팅한다 (S63). 그 다음, 프로세스는 예상값 생성기 (73) 의 각각의 데이터를 로테이션시켜 예상값을 생성하고, 8 비트의 프로세싱이 완료될 때까지 1 비트씩 데이터를 획득하며 (S63 내지 S66), 그에 의해, EDC 버퍼 (33) 에 저장된 연산 결과 또는 EDC 중간값을 업데이트 (수정) 한다. 단계 S34 의 프로세스 또한 획득된 데이터의 1 바이트를 로테이션 가능한 레지스터 등으로 저장하고, MSB 의 위치에 저장된 비트에 대해 단계 S63 으로부터의 프로세싱을 수행하여, 전술한 바와 같이, 1 비트씩 8 비트의 프로세싱을 수행한다. Specifically, as shown in FIG. 21, the process determines whether the above-described execution condition is satisfied (step S61), and if the condition is satisfied, it means that the obtained data is the target data, and the process determines the It is determined whether or not each bit is "1" (S62). If this is "1", selector 78 reads the EDCValue [sector] and provides it to XOR circuit 75. In addition, the selector 74 selectively outputs the expected value and provides it to the XOR circuit 75. The XOR circuit 75 calculates Exclusive-OR of these values and outputs the result to the selector 78. The selector 78 writes the result back to the EDCValue [sector] (S63). Then, the process rotates each data of the predictive value generator 73 to generate the predicted value, obtains the data one bit until the eight bits of processing is completed (S63 to S66), whereby the EDC The operation result or the EDC intermediate value stored in the buffer 33 is updated (corrected). The process of step S34 also stores one byte of the obtained data into a rotatable register or the like, and performs processing from step S63 on the bits stored in the position of the MSB, so that eight bits of processing are performed one bit at a time as described above. To perform.

이하, 도 22 및 도 23 을 참조하여 단계 S41 의 자세한 내용을 설명한다. 이 단계에서는 각각의 카운터와 라이팅-백 및 EDC 테이블 (32) 의 컨트롤을 수행한다. 도 22 에 타나낸 바와 같이, 프로세스는, 현재 프로세싱이 최종 영역 Area 15 에 대해 수행되는지 여부와, 버스트 전송의 로우 넘버를 카운팅하기 위한 버스트 전송 로우 카운터의 카운트값 N 이 m-1 인지 여부를 판정한다 (S81). 본 예시적인 실시형태에서 m = 6 이기 때문에, N = 5 인지 아닌지가 판정된다. 다르게 표현하면, 프로세스는 최종 영역 Area 15 의 하나의 컬럼의 최종 바이트에 대한 프로세싱이 완료되었는지 여부를 판정한다. 본 실시예에서, 최종 영역 Area 15 의 6 번째 바이트에 대한 프로세싱이 완료되었다고 판정된다면, 프로세스는 현재 예상값 (EDCTmp; 도 24 참조) 을 EDC 테이블 (32) 의 대응하는 컬럼의 영역 EDCtable[M] 에 라이팅한다. Hereinafter, the details of step S41 will be described with reference to FIGS. 22 and 23. This step performs control of the respective counters, the lighting-back and the EDC table 32. As shown in Fig. 22, the process determines whether current processing is performed for the final area Area 15 and whether the count value N of the burst transfer low counter for counting the row number of the burst transfer is m-1. (S81). Since m = 6 in the present exemplary embodiment, it is determined whether N = 5 or not. In other words, the process determines whether processing for the last byte of one column of the last area Area 15 is complete. In the present embodiment, if it is determined that processing for the sixth byte of the final area Area 15 is completed, the process returns the current expected value EDCTmp (see FIG. 24) to the area EDCtable [M] of the corresponding column of the EDC table 32. Write on.

헤드 Area 0 에서 최종 Area 15 까지의 프로세싱에서, 프로세스는 각각의 영역의 컬럼을 프로세싱하는 각각의 시간마다 EDC 테이블 (32) 로부터의 예상값을 리딩한다. 구체적으로, Area 0 내지 Area 15 에서, 동일한 전송 블록의 프로세싱에 동일한 EDC 테이블값이 이용된다. 예를 들어, 경로 2 의 제 1 프로세싱에서, EDC 테이블 (32) 은 초기 예상값을 유지하고, 그 초기 예상값은 최종 영역 Area 15 에서 마찬가지로 순차적으로 리딩된다. 한편, 최종 영역 Area 15 에 대한 연산을 완료한 후에, 그 다음 전송 블록에 대한 프로세싱이 시작되고, 제 1 영역 Area 0 로부터의 프로세싱이 다시 수행된다. 다음 전송 블록의 프로세싱에서, 초기 예상값은 필요하지 않고, 전송 블록의 제 1 로우의 최상위 비트에 대응하는 19 개의 예상값이 필요하다. 따라서, 선행하는 전송 블록의 최종 영역 Area 15 를 프로세싱할 때, 헤드 영역의 헤드 바이트의 MSB 에 대응하는 예상값을 형성하기 위해 선행하는 전송 블록의 최종 로우의 최하위 비트의 예상값을 로테이션시키고, 다음 전송 블록의 예상값 생성에서의 사용을 위해 예상값을 다시 EDC 테이블 (32) 에 라이팅하는 것이 필요하다. In the processing from head Area 0 to final Area 15, the process reads the expected value from EDC table 32 each time processing the column of each area. Specifically, in Area 0 to Area 15, the same EDC table value is used for the processing of the same transport block. For example, in the first processing of path 2, the EDC table 32 maintains an initial estimate, which is likewise sequentially read in the final area Area 15. On the other hand, after completing the operation for the final area Area 15, processing for the next transport block is started, and processing from the first area Area 0 is performed again. In the processing of the next transport block, the initial estimate is not needed, and 19 estimates corresponding to the most significant bit of the first row of the transport block are needed. Thus, when processing the last area Area 15 of the preceding transport block, rotate the expected value of the least significant bit of the last row of the preceding transport block to form an expected value corresponding to the MSB of the head byte of the head area, and then It is necessary to write the expected value back to the EDC table 32 for use in the expected value generation of the transport block.

전술한 바와 같이, 최종 영역 Area 15 에 대한 프로세싱에서 헤드 영역 Area 0 에 대해 사용되었던 것과 동일한값의 EDC 테이블 (32) 을 사용하기 때문에, 최종 영역 Area 15 의 컬럼에 대한 프로세싱이 완료될 때까지 대응하는 컬럼의 EDC 테이블을 오버라이팅할 수 없다. 따라서, 프로세스는 먼저 현재의 프로세싱이 최종 영역 Area 15 에 대해 수행되는지 여부를 판정한다 (S81). 그것이 최종 영역 Area 15 이 아니라면, 프로세스는 단계 S83 으로 진행한다. 만약 그것이 최종 영역 Area 15 의 최종 바이트라면, 예상값 생성기 (73) 에 유지되는 값은, 전술한 단계 S64 의 전송 블록의 최종 로우의 6 번째 바이트의 LSB 에 대응하는 예상값 (도 24 의 EDCTmp1) 을 로테이션시킴으로써 획득되는 값 (도 24 의 EDCTmp2) 이다. 따라서, 그것은 헤드 영역의 버스트 전송의 헤드 바이트의 MSB 에 대응하는 예상값이다. 이 값은 EDC 테이블 (32) 로 다시 라이팅된다. As described above, since the processing for the final area Area 15 uses the same value of the EDC table 32 that was used for the head area Area 0, the corresponding process until the processing for the columns in the final area Area 15 is completed. You cannot overwrite the EDC table for a given column. Thus, the process first determines whether the current processing is performed for the final area Area 15 (S81). If it is not the final area Area 15, the process proceeds to step S83. If it is the last byte of the last area Area 15, the value held in the expected value generator 73 is an expected value corresponding to the LSB of the sixth byte of the last row of the transport block of step S64 described above (EDCTmp1 in Fig. 24). Is the value obtained by rotating (EDCTmp2 in FIG. 24). Therefore, it is an expected value corresponding to the MSB of the head byte of the burst transfer of the head area. This value is written back to the EDC table 32.

그 다음, 프로세스는 버스트 전송 로우 카운터의 카운트값 N 을 증가시킨다 (S83). 또한, 프로세스는 로우 카운트값 N 이 m (본 예시적인 실시형태에서는 m = 6) 과 동일한지 아닌지를 판정한다 (S84). m = 6 이라면, 로우 카운트값을 리셋한다 (S85). 그 다음, 프로세스는 컬럼 카운트값 M 을 증가시키고 (S86), 컬럼 카운트값 M 이 19 인지 여부, 즉, 증가의 결과로서 영역의 헤드 로우에 도달하였는지를 판정한다 (S87). 컬럼 카운트값 M 이 19 이면, 컬럼 카운트값 M 은 리셋되고, 영역 카운터의 영역 카운트값이 증가한다 (S89). 그 다음, 프로세스는 현재 영역이 전송 블록의 헤드 영역인 Area 16 = Area 0 (도 6 참조) 인지 여부를 판정한다 (S90). 영역 카운트값 Area 가 16 이면, 프로세스는 이 값을 리셋하고 (S91), 또한, 섹터 카운터를 리셋한다 (S82). 그 다음, 프로세스는 m 을 베이스 로우 카운터의 카운트값에 부가한다 (S93). The process then increments the count value N of the burst transfer low counter (S83). Further, the process determines whether the row count value N is equal to m (m = 6 in this exemplary embodiment) (S84). If m = 6, the low count value is reset (S85). The process then increases the column count value M (S86), and determines whether the column count value M is 19, i.e., whether the head row of the region has been reached as a result of the increase (S87). If the column count value M is 19, the column count value M is reset, and the area count value of the area counter is increased (S89). Then, the process determines whether the current area is Area 16 = Area 0 (see Fig. 6), which is the head area of the transport block (S90). If the area count value Area is 16, the process resets this value (S91), and also resets the sector counter (S82). The process then adds m to the count value of the base low counter (S93).

예상값을 EDC 테이블 (32) 로 라이팅 백하고, 카운터 등을 리셋한 후에, 예상값 생성기는 EDC 테이블 (32) 로부터 값을 리딩한다. 먼저, 프로세스는 버스트 로우 카운트값 N = 0 인지 여부를 판정한다. N = 0 이면, 현재 컬럼 카운트값 M 에 대응하는 값을 EDC 테이블 (32) 로부터 리딩하고, 그값을 예상값 생성기에 설정한다 (S95). 또한, Row+버스트 전송 로우 카운트값 N = 108 및 M≥9 인지 여부를 판정한다 (S96). 로우 넘버 Row = 108 의 바운더리에서, 도 5 에 나타낸 바와 같이 우수 섹터의 헤드 바이트가 포함된다. 로우 Row = 108 이 기수 섹터와 우수 섹터 사이의 바운더리이기 때문에, 라이팅 백되고, S82 에서 한번 사용되었던 예상값을 초기 예상값으로 리셋할 필요가 있다. 따라서, 로우 카운트값 = 108 의 바운더리가 검출되면, 프로세스는 EDC 테이블 (32) 을 *2 에 나타낸 바와 같이 초기 예상값으로 설정하고, 컬럼 카운트값 (M-9) 의 값 EDCTable[M-9] 를 리딩한다 (S97).After writing back the expected value to the EDC table 32 and resetting the counter or the like, the expected value generator reads the value from the EDC table 32. First, the process determines whether the burst low count value N = 0. If N = 0, a value corresponding to the current column count value M is read from the EDC table 32, and the value is set in the expected value generator (S95). Further, it is determined whether the Row + burst transfer low count values N = 108 and M≥9 (S96). At the boundary of row number Row = 108, the head byte of the even sector is included as shown in FIG. Since row = 108 is the boundary between the odd and even sectors, it is necessary to write back and reset the expected value once used in S82 to the initial expected value. Thus, if a boundary with low count value = 108 is detected, the process sets the EDC table 32 to the initial expected value as shown in * 2, and the value of the column count value M-9 EDCTable [M-9]. Reading (S97).

그 다음, 프로세스는 후속하는 단계 S98 내지 S105 에 의해 EDC 플래그 및 EDC 영역 플래그를 설정한다. 먼저, 단계 S98 에서, 다음에 획득될 유저 데이터가 우수 섹터의 EDC 의 헤드 위치에 배열되었는지 여부를 판정한다. 10 번째 컬럼의 105 번째 로우의 바이트가 우수 섹터의 EDC 헤드 데이터 EDC0 이기 때문에, 컬럼 카운트값 M = 9 및 Row+N = 104 라는 조건이 만족되는지 여부가 판정된다 (S98). 데이터가 EDC 헤드 데이터인 것으로 판정되면, 프로세스는 EDC 플래그 = 1 로 설정한다 (S100). 만약, 그것이 우수 섹터의 EDC 헤드 데이터가 아닌 것이라면, 프로세스는 그것이 기수 섹터의 헤드 데이터인지 여부를 판정한다. 19 번째 컬럼의 213 번째 로우의 바이트가 기수 섹터의 EDC 헤드 데이터이기 때문에, 컬럼 카운트값 M = 18 및 Row+N = 212 라는 조건이 만족되는지 여부가 판정된다 (S99). 유저 데이터가 EDC 헤드 데이터인 것으로 판정되면, 프로세스는 단계 S100 으로 진행하여 EDC 플래그 = 1 로 설정된다. 한편, 데이터가 우수 섹터의 EDC 헤드 데이터도 아니고, 기수 섹터의 EDC 헤드 데이터도 아니라면, 프로세스는 EDC 플래그 = 0 으로 설정한다 (S101).The process then sets the EDC flag and the EDC region flag by subsequent steps S98 to S105. First, in step S98, it is determined whether the user data to be obtained next is arranged at the head position of the EDC of the even sector. Since the byte of the 105th row of the 10th column is the EDC head data EDC0 of the even sector, it is determined whether the conditions of the column count values M = 9 and Row + N = 104 are satisfied (S98). If it is determined that the data is EDC head data, the process sets the EDC flag = 1 (S100). If it is not EDC head data of the even sector, the process determines whether it is head data of the odd sector. Since the byte of the 213th row of the 19th column is the EDC head data of the odd sector, it is determined whether the conditions of the column count values M = 18 and Row + N = 212 are satisfied (S99). If it is determined that the user data is EDC head data, the process proceeds to step S100 and sets the EDC flag = 1. On the other hand, if the data is neither the EDC head data of the even sector nor the EDC head data of the odd sector, the process sets the EDC flag = 0 (S101).

그 다음, 상기 단계 S37 내지 S40 에서 설명된 바와 같이, 2049 번째 바이트 내지 2052 번째 바이트의 EDC 헤드 데이터에 대해, 00h 로 교체된 바이트 데이터에 대해 연산이 수행된다. 따라서, EDC 생성기 (34) 는 통상의 연산을 수행하지 않고, 2052 번째 바이트에 도달할 때까지 2049 번째 바이트의 EDC 헤드 데이터를 검출한 후에 EDC 영역의 데이터에 대해 단계 S37 내지 S40 의 프로세싱을 수행한다. 따라서, EDC 영역을 검출한 후에 EDC 영역의 유저 데이터의 입력 동안 이들 유저 데이터를 마스크 (mask) 하는 것이 필요하다. Then, as described in the above steps S37 to S40, for the EDC head data of the 2049th to 2052th bytes, the operation is performed on the byte data replaced with 00h. Accordingly, the EDC generator 34 performs the processing of steps S37 to S40 on the data of the EDC region after detecting the 2049th byte of EDC head data until the 2052th byte is reached without performing a normal operation. . Therefore, it is necessary to mask these user data during the input of the user data of the EDC area after detecting the EDC area.

입력 데이터가 우수 섹터의 2049 번째 내지 2052 번째 바이트의 데이터인지, 즉, EDC 영역의 데이터인지 여부를 판정하기 위해, 프로세스는 컬럼 넘버 M = 9 및 Row+M = 104 내지 107 라는 조건이 만족되는지 여부를 판정한다 (S102). 조건이 만족되지 않는다면, 프로세스는, 컬럼 넘버 M = 18 및 Row+M = 212 내지 215 라는 조건이 만족되는지 여부를 판정함으로써, 입력 데이터가 기수 섹터의 2049 번째 내지 2052 번째 데이터인지, 즉, EDC 영역의 데이터인지 여부를 추가적으로 판정한다 (S103). 단계 S102 또는 S103 에서, 입력 데이터가 EDC 영역 내의 데이터인 것으로 판정된다면, 프로세스는 EDC 영역 플래그 = 1 로 설정한다 (S104). 만약, 그것이 EDC 영역 내의 데이터가 아닌 것으로 판정되면, 프로세스는 EDC 영역 플래그 = 0 으로 설정한다 (S105). 그 후, 프로세스는 단계 S42 로 진행한다. To determine whether the input data is data of the 2049th to 2052th bytes of the even sector, that is, the data of the EDC area, the process determines whether the conditions of column numbers M = 9 and Row + M = 104 to 107 are satisfied. It is determined (S102). If the condition is not satisfied, the process determines whether the input data is the 2049th to 2052th data of the odd sector, that is, the EDC region by determining whether the conditions of column numbers M = 18 and Row + M = 212 to 215 are satisfied. It is additionally determined whether or not the data is (S103). If it is determined in step S102 or S103 that the input data is data in the EDC region, the process sets the EDC region flag = 1 (S104). If it is determined that it is not data in the EDC area, the process sets the EDC area flag = 0 (S105). The process then proceeds to step S42.

예를 들어, 버스트 전송 사이즈 m 이 2 이면, 106 번째 바이트까지의 데이터 전송은 52 번째 버스트 전송에 의해 완료되고, 108 번째 바이트까지의 데이터 전송은 다음 (53 번째) 버스트 전송에 의해 완료된다. 이 경우, EDC 를 두 번의 버스트 전송으로 전송하는 것이 필요하다. 따라서, 2049 번째 바이트 또는 2050 번째 바이트에 대한 연산은 52 번째 버스트 전송에서 완료될 필요가 있다. 다르게 표현하면, 4-바이트 EDC 에 대한 연산은 EDC 헤드 바이트 또는 EDC1 을 입력할 때 완료될 필요가 있다. 상기의 경우에, 로우 Row = 106 및 107 의 유저 데이터에 대한 예상값 연산은 우수 섹터의 2049 번째 바이트 데이터를 프로세싱할 때 완료되어야 한다. 따라서, 이러한 경우, EDC 중간값은 경로 1 의 우수 섹터의 로우 Row = 106 및 215 의 유저 데이터로부터 판정된다. For example, if the burst transfer size m is 2, the data transfer up to 106th byte is completed by the 52nd burst transfer and the data transfer up to 108th byte is completed by the next (53th) burst transfer. In this case, it is necessary to transmit the EDC in two burst transmissions. Thus, the operation on the 2049th byte or the 2050th byte needs to be completed on the 52nd burst transfer. In other words, the operation on the 4-byte EDC needs to be completed when entering the EDC head byte or EDC1. In the above case, the expected value calculation for the user data of rows Row = 106 and 107 must be completed when processing the 2049th byte data of the even sector. Thus, in this case, the EDC median value is determined from the user data of row Row = 106 and 215 of the even sector of path 1.

EDC 가 2 개의 연속적인 전송 블록에 위치할 때, 프로세스는 제 1 전송 블록의 최종 EDC 연산 전에 모든 4-바이트 EDC 를 산출한다. 이 경우, 제 1 EDC0 의 연산 타이밍 전에 2048 바이트의 유저 데이터에 대한 예상값 연산을 완료할 필요가 있고, 프로세스는 유저 데이터를 조정하고, 이를 위해, 버스트 전송 사이즈에 따라 경로 1 에서 EDC 중간값이 산출된다. When the EDC is located in two consecutive transport blocks, the process yields all 4-byte EDCs before the last EDC operation of the first transport block. In this case, it is necessary to complete the expected value calculation for 2048 bytes of user data before the operation timing of the first EDC0, and the process adjusts the user data, and for this, the median of the EDC in path 1 depends on the burst transfer size. Is calculated.

이하, 단계 S42 의 프로세싱을 설명한다. 이 단계의 프로세스는 섹터 바운더리를 판정하고, 섹터 카운터를 업데이트한다. 도 25 는 단계 S42 의 프로세스의 상세한 내용을 설명하기 위한 도면이고, 도 26 은 단계 S42 의 프로세싱을 설명하기 위한 도면이다. 도 25 에 나타낸 바와 같이, 프로세스는 먼저 로우 카운트값 Row+N<108 의 조건이 만족되는지 여부를 판정한다 (S111). 구체적으로, 프로세스는, 전송될 다음 유저 데이터가 기수 섹터의 유저 데이터인지 여부를 판정하기 위해, 로우 카운트값 Row+N<108 및 컬럼 카운트값 M = 10 의 조건이 만족되는지 여부를 판정한다 (단계 S111 및 도 26 참조). Row+N<108 및 M = 10 의 조건이 만족되지 않더라도, Row+N≥108 및 M = 9 이면, 다음에 전송될 유저 데이터는 기수 섹터의 데이터이다. 따라서, Row+N<108 및 M = 10 의 조건 또는 Row+N≥108 및 M = 9 의 조건이 만족된다면, 프로세스는 섹터 카운트값을 영역 센터의 영역 카운트값 Area*2+1 로 설정한다 (단계 S113 및 도 26 참조). The processing of step S42 is described below. The process of this step determines the sector boundary and updates the sector counter. 25 is a diagram for explaining the details of the process of step S42, and FIG. 26 is a diagram for explaining the processing of step S42. As shown in FIG. 25, the process first determines whether the condition of the row count value Row + N < 108 is satisfied (S111). Specifically, the process determines whether the conditions of the row count value Row + N <108 and the column count value M = 10 are satisfied to determine whether the next user data to be transmitted is the user data of the odd sector (step S111 and FIG. 26). Even if the conditions of Row + N <108 and M = 10 are not satisfied, if Row + N ≧ 108 and M = 9, the next user data to be transmitted is data of the odd sector. Thus, if the conditions of Row + N <108 and M = 10 or the conditions of Row + N≥108 and M = 9 are satisfied, the process sets the sector count value to the area count value Area * 2 + 1 of the area center ( Step S113 and FIG. 26).

한편, 영역 카운트값 Area 가 0 이 아니고, 컬럼 카운트값 M 이 0 이면 (단 계 S114 및 도 26 참조), 다음에 전송될 유저 데이터가 우수 섹터의 데이터라고 판정되고, 프로세스는 섹터 카운트값을 영역 카운트값 Area*2 로 설정한다 (S115). 다른 경우에, 섹터 카운터는 업데이트되지 않고, 프로세스는 다음 단계 S43 으로 진행한다. On the other hand, if the area count value Area is not 0 and the column count value M is 0 (see steps S114 and FIG. 26), it is determined that the user data to be transmitted next is the data of the even sector, and the process returns the sector count value. Set the count value Area * 2 (S115). In other cases, the sector counter is not updated and the process proceeds to the next step S43.

전술한 프로세싱의 결과, 경로 1 의 우수 섹터의 후반부의 유저 데이터로부터 산출되는 EDC 중간값은 경로 2 의 나머지 유저 데이터에 기초하여 수정되고, 이들값과 기수 섹터의 모든 유저 데이터에 기초하여 EDC 가 산출된다. 경로 2 의 EDC 연산의 일부 또는 전부를 수행함으로써, 경로 1 의 데이터 버퍼에 대한 액세스가 약 1/4 로 감소될 수 있다. 경로 1 에서, 유저 데이터 방향 Q 와는 상이한 순서로 순차적으로 경로 2 의 유저 데이터 (우수 섹터의 후반부) 를 전송할 때, EDC 를 부가하기 전에 입력될 수 없는 유저 데이터에 대해서만 연산이 수행되고, 그에 의해 경로 1 의 데이터 버퍼 (2) 에 대한 액세스를 감소시킨다.As a result of the above-described processing, the EDC median value calculated from the user data of the latter part of the even sector of the path 1 is corrected based on the remaining user data of the path 2, and the EDC is calculated based on these values and all user data of the odd sector. do. By performing some or all of the EDC operation of path 2, access to the data buffer of path 1 may be reduced to about one quarter. In path 1, when transmitting the user data of path 2 (second half of the good sector) in a different order from the user data direction Q in sequence, the operation is performed only on user data that cannot be input before adding the EDC, whereby the path Reduce access to data buffer 2 of one.

도 27 은 본 실시형태의 이점을 설명하기 위한 도면이다. 도 3 에 나타낸 방법은 경로 1 의 EDC 를 산출하고, 그 다음, 경로 2 에서 산출된 EDC 를이용하여 EDC-부가 데이터를 출력한다. 이 방법에서, 채널 CH1 에 의해 데이터 버퍼로부터 리딩된 유저 데이터는 2048 바이트×32 섹터를 포함하는 하나의 데이터 블록이다. 한편, 이 예시적인 실시형태는 경로 1 의 우수 섹터의 Row 108 이후의 로우에서만 유저 데이터의 프로세싱을 수행한다. 따라서, 데이터 버퍼로부터 리딩되는 유저 데이터는 972 바이트×16 섹터로 감소될 수 있다. 27 is a diagram for explaining the advantages of the present embodiment. The method shown in FIG. 3 calculates the EDC of path 1, and then outputs the EDC-added data using the EDC calculated on path 2. In this method, the user data read from the data buffer by channel CH1 is one data block containing 2048 bytes x 32 sectors. On the other hand, this exemplary embodiment performs processing of user data only in rows after Row 108 of the even sector of path 1. Thus, user data read from the data buffer can be reduced to 972 bytes x 16 sectors.

도 27 에 나타낸 바와 같이, 본 실시형태의 레코딩 장치 (1) 는 EDC 생성기 (34) 및 EDC 테이블 (32) 을 도 3 에 나타낸 레코딩 장치에 부가한다. 그러나, EDC 생성기 (31) 및 EDC 생성기 (34) 가 결합하여 하나의 데이터 블록의 프로세싱을 수행하여 EDC 를 산출하기 때문에, 추가적인 전력 소모는 EDC 테이블 (32) 에 대해 사용되는 것뿐이다. EDC 테이블 (32) 은 하나의 데이터 블록의 데이터 프로세싱을 수행하고, 전력 소모는 EDC 연산에서 2048*32 바이트 (65536 바이트) 만큼 증가한다. 그러나, 경로 1 의 데이터 전송량은 도 3 에 나타낸 바와 같이 전체 데이터 블록을 프로세싱할 때의 양의 약 1/4 정도이다. 따라서, 전력 소모는 데이터 버퍼 및 버퍼 컨트롤러 (3) 에 관해 99968 바이트 ((2048*32-972*16)*2) 만큼 감소한다. 본 실시형태의 결과로서 전력 소모가 감소된다. 전력 소모 감소의 효과는 데이터 버퍼 및 버퍼 컨트롤러의 연산 클럭이 높을수록 중요해진다. As shown in FIG. 27, the recording apparatus 1 of this embodiment adds the EDC generator 34 and the EDC table 32 to the recording apparatus shown in FIG. However, since the EDC generator 31 and the EDC generator 34 combine to perform processing of one data block to produce an EDC, additional power consumption is only used for the EDC table 32. EDC table 32 performs data processing of one data block, and power consumption is increased by 2048 * 32 bytes (65536 bytes) in an EDC operation. However, the data transfer amount of path 1 is about 1/4 of the amount when processing the entire data block as shown in FIG. Thus, power consumption is reduced by 99968 bytes ((2048 * 32-972 * 16) * 2) with respect to the data buffer and buffer controller 3. As a result of this embodiment, power consumption is reduced. The effect of reduced power consumption becomes more important as the operational clocks of the data buffers and buffer controllers become higher.

전술한 바와 같이, 인코딩에 대한 장애가 될 수 있는 데이터 버퍼 액세스의 감소로 인해, 본 실시형태는 고속 인코딩 및 전력 소모의 감소를 달성하는 이점을 가진다. 소정 길이의 시간 동안 데이터 버퍼를 액세스할 수 있는 데이터의 양은 고정되고, 속도가 증가함에 따라 시간이 감소된다. 따라서, 데이터 버퍼 액세스는 고속 인코딩에 대한 장애가 된다. 데이터 액세스의 절대적인 양을 감소시키는 것은 데이터 액세스의 양에 의해 고속 인코딩과 전력 소모의 감소를 가능하게 한다. 또한, 액세스의 절대적인 양의 감소는 여전히 고속 인코딩을 달성하면서도 더 느린 클럭으로 동작하는 값싼 버퍼의 사용을 가능하게 한다. 또한, 고속 인코딩을 가능하게 하는데 사용되는 데이터 버퍼와 버퍼 컨트롤러를 위한 동 작 클럭 주파수를 감소시키는 것이 가능하다.As mentioned above, due to the reduction in data buffer access, which can be an obstacle to encoding, the present embodiment has the advantage of achieving high speed encoding and reduced power consumption. The amount of data that can access the data buffer for a certain length of time is fixed and time decreases as the speed increases. Thus, data buffer access is a barrier to high speed encoding. Reducing the absolute amount of data access enables fast encoding and reduction of power consumption by the amount of data access. In addition, the reduction in the absolute amount of access allows the use of cheap buffers that still run at a slower clock while still achieving fast encoding. It is also possible to reduce the operating clock frequency for the data buffers and buffer controllers used to enable high speed encoding.

전술한 방식으로 생성된 EDC-부가 데이터로부터 레코딩 데이터를 출력하는 예시적인 동작을 여기에서 설명한다. EDC 중간값으로부터 EDC 를 산출하고 레코딩 데이터를 출력하는 프로세싱은 경로 2 의 프로세싱으로서 각각의 회로에 의해 수행된다. 도 4 를 다시 참조하면, 채널 CH2 로부터 버스트-전송되는 유저 데이터는 EDC 생성기 (34) 와 통합 섹션 (35) 에 제공된다. An exemplary operation of outputting recording data from the EDC-addition data generated in the above manner is described herein. The processing of calculating the EDC from the EDC median and outputting the recording data is performed by each circuit as the processing of path 2. Referring again to FIG. 4, user data burst-transmitted from channel CH2 is provided to EDC generator 34 and integration section 35.

데이터 버퍼 (2) 는 SDRAM 과 같은, 리프레싱 (refreshing) 을 필요로 하고 랜덤 액세스와 버스트 전송이 가능한 메모리로 구성된다. 다음 설명은 SDRAM 을 사용하는 경우를 설명한다. SDRAM 은 연속적인 어드레스를 액세스할 때 랜덤 액세스보다 더 높은 속도의 액세스가 가능한 DRAM 이고, 버스트 전송 기능의 이용은 고속 데이터 전송을 가능하게 한다. 따라서, SRAM 과 같은 고속 랜덤 액세스가 가능한 메모리에 비해 비용을 감소시키는 것이 가능하다. The data buffer 2 is composed of a memory that requires refreshing, such as SDRAM, and is capable of random access and burst transfer. The following explanation describes the case of using SDRAM. SDRAM is DRAM with higher speed access than random access when accessing consecutive addresses, and the use of burst transfer function enables high speed data transfer. Thus, it is possible to reduce the cost compared to a memory capable of fast random access such as SRAM.

버퍼 컨트롤러 (3) 의 채널 CH2 는 유저 데이터 방향 Q 의 데이터 버퍼 (2) 로부터 하나의 버스트-전송 사이즈 (m 바이트) 의 유저 데이터를 반복적으로 리딩하고, EDC-부가 데이터가 레코딩 프레임 방향 P 로 배열되도록 순차적으로 데이터를 전송한다. 따라서, 유저 데이터 방향 Q 의 216-바이트 데이터는, 하나의 버스트 전송 사이즈 (m 바이트) 각각, 레코딩 프레임 방향 P 의 바이트의 넘버 (304 바이트, 304 인터리빙) 인 304 번 반복적으로, 버스트-전송된다. 그 결과로서, 레코딩 프레임 방향 P 의 1 RUB 에 포함된 유저 데이터 (데이터 블록 41) 는 유저 데이터 방향 Q 로 배열된 m 바이트가 된다. 그 다음, 유저 데이터 방향 Q 의 m-바이트 데이터는 스크램블되어, 고속 랜덤 액세스가 가능한 SRAM 일 수도 있는, 치환 버퍼 (38) 에 저장되고, 그에 의해, 레코딩 프레임 방향 P 로 레코딩 데이터를 출력한다. The channel CH2 of the buffer controller 3 repeatedly reads user data of one burst transfer size (m bytes) from the data buffer 2 of the user data direction Q, and the EDC-added data is arranged in the recording frame direction P. Send data sequentially. Thus, the 216-byte data of the user data direction Q is burst-transmitted repeatedly 304 times, each of one burst transfer size (m bytes), which is the number (304 bytes, 304 interleaving) of the bytes of the recording frame direction P. As a result, the user data (data block 41) contained in one RUB of the recording frame direction P becomes m bytes arranged in the user data direction Q. The m-byte data of the user data direction Q is then scrambled and stored in the substitution buffer 38, which may be an SRAM capable of fast random access, thereby outputting the recording data in the recording frame direction P.

채널 CH2 또는 통합 섹션 (35) 은 버스트 전송의 헤드 어드레스를 지정하는 기능 또는 EDC 버퍼 (33) 로부터 EDC 를 리딩하는 타이밍을 컨트롤하는 기능을 갖는다. The channel CH2 or integration section 35 has the function of specifying the head address of the burst transmission or controlling the timing of reading the EDC from the EDC buffer 33.

스크램블러 (36) 는 스크램블 데이터로서 유저 데이터 방향 Q 의 시퀀스에 대응하는 스크램블값과 유저 데이터의 익스클루시브-OR 를 산출한다. 따라서, 데이터를 스크램블링할 때, 스크램블 데이터 DSiThe scrambler 36 calculates the scrambled value corresponding to the sequence of the user data direction Q as the scrambled data and the exclusive-OR of the user data. Thus, when scrambling data, the scrambled data DS i is

DSi = Si+Di (여기서 심볼 "+" 는 익스클루시브-OR 를 나타냄)DS i = S i + D i (where the symbol "+" stands for Exclusive-OR)

와 같이 스크램블러에 의해 생성되는 8-비트 스크램블 데이터 (스크램블값) Si 와 8-비트 입력 데이터 Di 의 모드 2 어디션 (mod 2 addition) (익스클루시브-OR) 에 의해 획득될 수 있다. It can be obtained by the mod 2 addition (exclusive-OR) of the 8-bit scrambled data (scrambled value) Si and the 8-bit input data D i generated by the scrambler.

블루-레이 디스크의 스크램블러는 소정의 연산을 수행하기 위해 초기값을 16-비트 시프트 레지스터에 설정하고, 그값을 시프팅하는 각각의 시간마다 유저 데이터 방향 Q 의 스크램블값을 생성한다. 따라서, 본 실시형태에서처럼 데이터가 레코딩 프레임 방향 P 로 각각 6 바이트씩 입력되면, 다음 컬럼에 대응하는 스크램블값을 획득하기 위해 6-바이트 스크램블값을 획득한 후에 210 번 데이터를 시프트하는 것이 필요하고, 이는 시간이 걸린다. 이러한 관심사를 해결하기 위해, 본 실시형태의 레코딩 장치는 유저 데이터 입력으로부터 이러한 순서로 스크램블값을 산출할 수 있는 스크램블값 생성기 (37) 를 갖는다. 스크램블값 생성기 (37) 는 입력 데이터에 대응하는 스크램블값을 스크램블러 (36) 에 제공한다. The scrambler of the Blu-ray disc sets an initial value to a 16-bit shift register to perform a predetermined operation, and generates a scrambled value of the user data direction Q for each time shifting the value. Therefore, if the data is inputted 6 bytes each in the recording frame direction P as in this embodiment, it is necessary to shift the data 210 times after obtaining the 6-byte scrambled value to obtain the scrambled value corresponding to the next column, This takes time. To solve this concern, the recording apparatus of the present embodiment has a scramble value generator 37 capable of calculating scramble values in this order from user data input. The scrambler value generator 37 provides the scrambler 36 with a scrambled value corresponding to the input data.

치환 버퍼 (38) 는 SRAM 과 같은 리프레싱을 필요로 하지 않고 랜덤 액세스가 가능한 메모리에 의해 구성된다. 다음의 실시예는 SRAM 을 사용하지만, 치한 버퍼는 고속 랜덤 액세스가 가능한, SRAM 에 한정되지 않는다. 스크램블 데이터를 레코딩 프레임 방향 P 의 데이터로 치환하기 위해 치환 버퍼 (38) 가 위치하고, 스크램블 데이터를 레코딩 프레임 방향 P 로 고속 전송하는 것이 가능하다. 치환 버퍼 (38) 는 상기 전송 블록 이상의 사이즈를 갖는 2 이상의 영역을 갖고, 전송 블록을 다른 영역에 라이팅하면서, 하나의 전송 블록으로부터 레코딩 데이터를 출력한다. 치환 버퍼 (38) 의 사이즈는 데이터 버퍼 (2) 의 사이즈보다 훨씬 더 작을 수도 있고, 그에 의해, 데이터 버퍼 (2) 로서 SRAM 을 사용하는 경우에 비해 고속 전송을 달성하면서 비용 감소를 가능하게 한다. The replacement buffer 38 is constituted by a memory that can be randomly accessed without requiring refreshing such as SRAM. The following embodiment uses SRAM, but the critical buffer is not limited to SRAM, which allows fast random access. In order to replace the scrambled data with the data in the recording frame direction P, the substitution buffer 38 is located, and it is possible to transfer the scrambled data in the recording frame direction P at high speed. The replacement buffer 38 has two or more areas having a size equal to or larger than the above-mentioned transport block, and outputs recording data from one transport block while writing the transport block to another area. The size of the replacement buffer 38 may be much smaller than the size of the data buffer 2, thereby enabling cost reduction while achieving high speed transfer compared to the case of using SRAM as the data buffer 2.

경로 2 의 연산을 여기에서 자세히 설명한다. 우선, 치환 버퍼 (38) 로 전송되는 유저 데이터를 자세히 설명한다. 블루-레이 디스크에서, 유저 데이터 방향 Q 의 데이터는 1 컬럼에 216 바이트이다. 본 예시적인 실시형태에서는, 216 바이트가 36 부분으로 나누어져서 (버스트 전송 사이즈 m = 6 바이트) 각각 6 바이트의 버스트 전송을 수행한다. The operation of path 2 is described in detail here. First, user data transmitted to the replacement buffer 38 will be described in detail. In a Blu-ray disc, the data of the user data direction Q is 216 bytes in one column. In the present exemplary embodiment, 216 bytes are divided into 36 parts (burst transfer size m = 6 bytes) to perform burst transmission of 6 bytes each.

SDRAM 은 클럭에 동기화되어 고속 버스트 전송이 가능한 DRAM 이다. 예를 들어, SDRAM 의 메모리 셀이 서로 독립적으로 동작할 수 있는 4 블록 (뱅크) 으 로 이루어진다면, 8 번의 연속적인 버스트 전송의 이용으로 32 바이트의 버스트 전송이 가능하게 된다. SDRAM 은 전송될 제 1 어드레스가 특정된다면, 소정 데이터의 버스트 전송에 의해 고속 데이터 전송을 할 수 있다. SDRAM is a DRAM that is synchronized to a clock for fast burst transfers. For example, if the memory cells of the SDRAM consist of four blocks (banks) that can operate independently of each other, 32 bytes of burst transfers are possible by using eight consecutive burst transfers. The SDRAM can perform high speed data transfer by burst transfer of predetermined data if the first address to be transferred is specified.

레코딩 프레임 방향 P 의 데이터는 유저 데이터 방향 Q 에서 볼 때, 매 216 바이트의 데이터이다. 블루-레이 표준에서, 1 섹터는 2048 바이트의 유저 데이터와 4 바이트의 EDC 를 포함하고, 데이터 버퍼 (2) 로부터 전송된 데이터는 아직 EDC 가 부가되지 않은 데이터이기 때문에, 예를 들면, 1 섹터는 2048 바이트를 갖는다. 따라서, 우수 섹터에 인접하는, 여기에서는 기수 섹터 헤드 컬럼으로 칭해지는 기수 섹터의 제 1 컬럼 바이트는 매 216 바이트가 아닌, 매 212 바이트의 데이터이다. 기수 섹터 헤드 컬럼은 섹터 Sec 1 의 레코딩 프레임 P 의 시퀀스의 9 번째 또는 10 번째 컬럼이고, 이는 유저 데이터 방향 Q 의 로우 Row = 0 내지 107 의 10 번째 컬럼과 로우 Row = 108 내지 215 의 9 번째 컬럼이다. 따라서, 레코딩 프레임 방향 P 의 기수 섹터 헤드 컬럼에 대응하는 데이터를 리딩할 때, 데이터는 매 216 바이트가 아닌, 매 212 바이트이다. 버스트 전송의 데이터 버퍼 (2) 의 헤드 어드레스는 섹터 바운더리 이외의 부분에서는 매 216 바이트이고, 섹터 바운더리에서는 매 212 바이트이기 때문에, 버퍼 컨트롤러 (3) 는 영역 등의 컬럼 넘버를 카운트하는 컬럼 카운터, 로우 카운터를 이용하여 섹터 바운더리를 검출하고, 버스트 전송 사이즈 m 에 기초하여 데이터 버퍼 (2) 의 버스트 전송의 제 1 어드레스 (헤드 어드레스) 를 산출하고 지정한다. 구체적으로, 프로세스는 섹터 바운더리를 검출할 때 +212 를 설정하고, 다른 경우에는 216 을 헤드 어드레스에 순차적으로 부가하며, 그에 의해 헤드 어드레스를 적절하게 지정한다. The data in the recording frame direction P is every 216 bytes of data when viewed in the user data direction Q. In the Blu-ray standard, one sector contains 2048 bytes of user data and 4 bytes of EDC, and since the data transmitted from the data buffer 2 is data to which no EDC is added yet, for example, one sector is Has 2048 bytes. Thus, the first column byte of the odd sector, here referred to as the odd sector head column, adjacent to the even sector is every 212 bytes of data, not every 216 bytes. The odd sector head column is the ninth or tenth column of the sequence of the recording frame P of sector Sec 1, which is the tenth column of row Row = 0 to 107 of the user data direction Q and the ninth column of row Row = 108 to 215. to be. Therefore, when reading the data corresponding to the odd sector head column in the recording frame direction P, the data is every 212 bytes, not every 216 bytes. Since the head address of the data buffer 2 of the burst transfer is every 216 bytes in the parts other than the sector boundary, and every 212 bytes in the sector boundary, the buffer controller 3 counts the column counters and rows for counting column numbers such as areas. The sector boundary is detected using the counter, and the first address (head address) of the burst transfer of the data buffer 2 is calculated and specified based on the burst transfer size m. Specifically, the process sets +212 when detecting sector boundaries, otherwise adds 216 to the head address sequentially, thereby specifying the head address appropriately.

블루-레이 디스크에서, 우수 섹터의 최종 데이터 다음에 부가되는 EDC 는, 데이터가 로우 Row = 104 내지 107 의 유저 데이터 방향 Q 로 배열될 때 하나의 데이터 스트링의 중간에 위치한다. 따라서, 이 어드레스를 포함하는 유저 데이터를 전송할 때, 통합 섹션 (35) 은 EDC 버퍼 (33) 로부터 EDC 를 리딩하고, 그것을 유저 데이터에 부가하며, EDC-부가 데이터를 스크램블러 (36) 로 출력한다. In a Blu-ray disc, the EDC added after the last data of the even sector is located in the middle of one data string when the data is arranged in the user data direction Q of row Row = 104 to 107. Thus, when transmitting user data containing this address, the integration section 35 reads the EDC from the EDC buffer 33, adds it to the user data, and outputs the EDC-added data to the scrambler 36.

버스트-전송 6-바이트 데이터는 데이터 방향 Q 이고, 스크램블값 생성기 (37) 는 통상의 스크램블러를 이용하여 스크램블값을 생성할 수 있다. 하나의 버스트의 전송 데이터를 프로세싱한 후에, 다음 컬럼의 유저 데이터가 버스트-전송된다. 따라서, 통상의 스크램블러의 이용으로, 스크램블값을 획득하기 위해 최대 210 클럭을 기다릴 필요가 있다. 한편, 블루-레이 디스크의 데이터는 도 2 에 나타낸 바와 같이 레코딩 프레임 방향의 매 216 또는 108 바이트이다. 따라서, 한 번의 시프트 연산에서 유저 데이터 방향 Q 로 1 바이트씩 데이터를 시프트시키는 통상의 스크램블러 외에, 한 번의 시프트 연산에서 216 또는 108 번 시프트된 값을 획득할 수 있는 시프트 레지스터가 위치되고, 따라서, 시프트 레지스터는 각각의 버스트 전송에서 스위칭된다. 따라서, 채널 CH2 로부터 스크램블러 (36) 로 전송되는 유저 데이터 방향 Q 의 유저 데이터에 대응하는 스크램블값을 제공하는 것이 가능하게 된다. The burst-transmitted 6-byte data is in the data direction Q, and the scramble value generator 37 can generate a scrambled value using a conventional scrambler. After processing the transmission data of one burst, the user data of the next column is burst-transmitted. Thus, with the use of a conventional scrambler, it is necessary to wait up to 210 clocks to obtain a scrambled value. On the other hand, the data of the Blu-ray Disc is every 216 or 108 bytes in the recording frame direction as shown in FIG. Thus, in addition to the usual scrambler that shifts data by one byte in the user data direction Q in one shift operation, a shift register capable of obtaining a value shifted 216 or 108 times in one shift operation is located, thus shifting The register is switched at each burst transfer. Thus, it becomes possible to provide a scrambled value corresponding to the user data in the user data direction Q transmitted from the channel CH2 to the scrambler 36.

치환 버퍼 (38) 는 2 이상의 레코딩 영역을 갖고, 그 각각은 버스트 전송 사이즈 m×1 레코딩 프레임 (304 바이트) 의 사이즈를 갖는다. 전술한 바와 같 이, 경로 S2 의 1 RUB 에 대응하는 유저 데이터 (데이터 블록) 에 대한 프로세싱을 수행하기 위해, 하나의 레코딩 영역에 라이팅된 전송 블록을 리딩하고, 다른 레코딩 영역에 전송 블록을 라이팅한다. 레코딩 영역은 2 이상의 플레인을 가질 수도 있다. The replacement buffer 38 has two or more recording areas, each of which has a size of a burst transfer size m × 1 recording frame (304 bytes). As described above, in order to perform processing on user data (data block) corresponding to 1 RUB of the path S2, a transport block written in one recording area is read and a transport block is written in another recording area. . The recording area may have two or more planes.

결과적으로, 레코딩 데이터로서 유저 데이터를 출력하는 프로세싱에서, 레코딩 장치 (1) 는, EDC 를 유저 데이터에 부가하고, 유저 데이터 방향 Q 의 EDC-부가 데이터를 스크램블하고, 스크램블 데이터를 다시 데이터 버퍼에 라이팅하고, 그 다음 그 데이터를 다시 레코딩 프레임 방향 P 로 리딩할 필요가 없다. 이는 데이터 버퍼 (2) 로서 SRAM 과 같은 고속 랜덤 액세스가 가능한 비싼 메모리를 사용하지 않고서도 레코딩 데이터의 고속 전송을 가능하게 한다. 또한, 경로 1 에서 발생하는 데이터 버퍼 (2) 에 대한 액세스가 전술한 바와 같이 감소하기 때문에, 전력 소모의 감소 및 고속 인코딩을 달성하는 광 레코딩 디스크 인코딩 디바이스 또는 레코딩 장치를 제공하는 것이 가능하다. As a result, in the processing of outputting user data as recording data, the recording apparatus 1 adds the EDC to the user data, scrambles the EDC-addition of the user data direction Q, and writes the scrambled data back to the data buffer. Then, there is no need to read the data again in the recording frame direction P. This enables a high speed transfer of the recorded data without using an expensive memory capable of high speed random access such as SRAM as the data buffer 2. In addition, since access to the data buffer 2 occurring in path 1 is reduced as described above, it is possible to provide an optical recording disc encoding device or recording apparatus that achieves a reduction in power consumption and high speed encoding.

제 2 실시형태2nd Embodiment

본 발명의 제 2 예시적인 실시형태를 여기에 설명한다. 도 28 은 제 2 실시형태에 따른 레코딩 장치를 나타내는 도면이다. 도 28 에 나타낸 제 2 실시형태에서, 도 4 에 나타낸 제 1 실시형태에서와 동일한 요소는 동일한 참조 심볼로 표시하였고, 여기서는 상세히 설명하지 않았다. 본 실시형태의 레코딩 장치 (81) 는 도 4 에 나타낸 인코더 (4) 대신에 인코더 (84) 를 갖는다. 도 4 의 인코더 (4) 와 마찬가지로, 인코더 (84) 는 경로 1 의 우수 섹터의 일부에 대한 EDC 연산을 수행하고, 그 다음, 경로 2 의 EDC 를 산출한다. 제 1 실시형태에 따른 인코더 (4) 의 스크램블 프로세서는 EDC 를 유저 데이터에 부가한 후에 스크램블링을 수행하지만, 본 실시형태에 따른 인코더 (84) 의 스크램블 프로세서는 유저 데이터 및 EDC 를 개별적으로 스크램블하고, 그 다음, 그 스크램블된 EDC 를 스크램블된 유저 데이터에 부가한다. A second exemplary embodiment of the present invention is described herein. 28 is a diagram illustrating a recording apparatus according to the second embodiment. In the second embodiment shown in FIG. 28, the same elements as in the first embodiment shown in FIG. 4 are denoted by the same reference symbols, and will not be described in detail here. The recording apparatus 81 of the present embodiment has an encoder 84 instead of the encoder 4 shown in FIG. Like the encoder 4 of FIG. 4, the encoder 84 performs an EDC operation on a portion of the even sector of path 1, and then calculates the EDC of path 2. The scramble processor of the encoder 4 according to the first embodiment performs scrambling after adding the EDC to the user data, but the scramble processor of the encoder 84 according to the present embodiment scrambles the user data and the EDC separately, The scrambled EDC is then added to the scrambled user data.

따라서, 경로 2 에서, 채널 CH2 로부터의 유저 데이터는 EDC 생성기 (34) 와 스크램블러 (96) 에도 또한 제공된다. 스크램블러 (96) 는 스크램블값 생성기 (97) 로부터 입력 유저 데이터에 대응하는 스크램블값을 수신하고, 그 데이터를 스크램블하고, 그 스크램블된 유저 데이터를 치환 버퍼 (99) 에 제공한다. 스크램블된 유저 데이터는 ECC 생성기 (39) 에도 또한 제공된다. Thus, in path 2, user data from channel CH2 is also provided to EDC generator 34 and scrambler 96. The scrambler 96 receives a scrambled value corresponding to the input user data from the scrambled value generator 97, scrambles the data, and provides the scrambled user data to the substitution buffer 99. The scrambled user data is also provided to the ECC generator 39.

EDC 생성기 (34) 에서 생성된 EDC 는 본 실시형태에서 부가된 스크램블러 (98) 에 제공된다. 스크램블러 (98) 는 EDC 에 대해 스크램블링을 수행한다. 스크램블러 (98) 는 스크램블값 생성기 (97) 로부터 EDC 에 대응하는 스크램블값을 수신하고, EDC 를 스크램블하고, 그 다음, 그 스크램블된 EDC 를 통합 섹션 (95) 및 ECC 생성기 (39) 에 제공한다. The EDC generated by the EDC generator 34 is provided to the scrambler 98 added in this embodiment. The scrambler 98 performs scrambling on the EDC. The scrambler 98 receives the scrambled value corresponding to the EDC from the scrambled value generator 97, scrambles the EDC, and then provides the scrambled EDC to the integration section 95 and the ECC generator 39.

치환 버퍼 (99) 는 수신된 스크램블된 유저 데이터를 통합 섹션 (95) 에 제공한다. 통합 섹션 (95) 은 도 4 에 나타낸 인코더 (4) 의 통합 섹션 (35) 과는 달리, 치환 버퍼 (99) 로부터 스크램블된 유저 데이터를 수신하고, 스크램블러 (98) 로부터 스크램블된 EDC 를 수신하여, 이들 데이터를 통합하고, 이를 레코딩 데이터로서 출력한다. The substitution buffer 99 provides the received scrambled user data to the integration section 95. The unifying section 95, unlike the unifying section 35 of the encoder 4 shown in FIG. 4, receives scrambled user data from the substitution buffer 99 and receives scrambled EDC from the scrambler 98, These data are integrated and output as recording data.

ECC 생성기 (39) 는 치환 버퍼 (99) 로부터 스크램블된 유저 데이터를 수신하고, EDC 를 부가하는 적절한 타이밍에서 스크램블러 (98) 로부터 스크램블된 EDC 를 또한 수신하며, 그에 의해 32 섹터의 ECC 를 생성한다. 생성된 ECC 는 ECC 버퍼 (40) 를 통해 출력된다. The ECC generator 39 receives the scrambled user data from the substitution buffer 99 and also receives the scrambled EDC from the scrambler 98 at an appropriate timing to add the EDC, thereby generating 32 sectors of ECC. The generated ECC is output through the ECC buffer 40.

전술한 제 1 실시형태에 따른 인코더 (4) 와 마찬가지로, 본 실시형태의 인코더 (84) 는 우수 섹터의 후반부의 유저 데이터를 수신하고, 경로 1 의 EDC 중간값을 생성하며, 그 다음, 우수 섹터에 대해서는 EDC 중간값을 이용하여 경로 2 의 EDC 를 생성하고, 기수 섹터에 대해서는 유저 데이터와 예상값으로부터 EDC 를 직접 산출한다. 그로 인해 데이터 버퍼 (3) 로부터 리딩되는 유저 데이터는 상기 참조에 비해 약 1/4 정도로 감소되고, 따라서, 제 1 실시형태와 동일하게 데이터 버퍼에 대한 액세스의 감소라는 이점을 가진다. Like the encoder 4 according to the first embodiment described above, the encoder 84 of the present embodiment receives the user data of the second half of the even sector, generates the EDC median of path 1, and then the even sector. For the EDC, EDC of path 2 is generated using the EDC median value, and for the odd sector, the EDC is calculated directly from the user data and the expected value. Thereby, the user data read out from the data buffer 3 is reduced by about a quarter as compared with the above reference, and thus has the advantage of reducing the access to the data buffer as in the first embodiment.

인코더 (4) 는 EDC-부가 데이터를 스크램블하지만, 스크램블러 (84) 는 EDC 를 부가하기 전에 데이터를 스크램블하고, 그 다음, 스크램블된 EDC 를 스크램블된 유저 데이터에 부가한다. 이는 산출의 타이밍과 EDC 부가를 유연하게 하는 것을 가능하게 한다. Encoder 4 scrambles the EDC-addition data, but scrambler 84 scrambles the data before adding the EDC, and then adds the scrambled EDC to the scrambled user data. This makes it possible to flex the timing of the calculation and the EDC addition.

본 발명은 전술한 실시형태에 한정되지 아니하며, 본 발명의 범위에서 일탈함이 없이 다양한 방식으로 변경될 수도 있다. 예를 들어, 전술한 실시형태는 하드웨어 구성을 설명하고 있지만, 본 발명은 거기에 한정되지 않고, 주어진 프로세싱은 CPU 상에서 컴퓨터 프로그램을 실행함으로써 구현될 수도 있다. 이 경우, 컴퓨터 프로그램은 레코딩 매체 상에 레코딩되어, 또는 인터넷 또는 다른 전송 매체를 통해 전송되어 제공될 수도 있다. The present invention is not limited to the above-described embodiment, and may be changed in various ways without departing from the scope of the present invention. For example, while the above embodiment describes a hardware configuration, the present invention is not limited thereto, and given processing may be implemented by executing a computer program on a CPU. In this case, the computer program may be recorded on a recording medium, or transmitted and provided through the Internet or another transmission medium.

또한, 전술한 제 2 실시형태에서 설명된 바와 같이, EDC 부가의 타이밍은 스크램블링 전 또는 후가 될 수도 있다. 또한, 통합 섹션, 스크램블러, 스크램블값 생성기 및 치환 버퍼와 같은 EDC 부가를 위한 회로에 데이터를 제공하는 타이밍 또는 순서는 전술한 것에 한정되지 않고, 다양한 방식으로 변경될 수도 있다. Also, as described in the above-described second embodiment, the timing of the EDC addition may be before or after scrambling. In addition, the timing or order of providing data to circuits for EDC addition, such as integration sections, scramblers, scramble value generators, and substitution buffers, is not limited to the above, and may be changed in various ways.

본 발명은 전술한 실시형태에 한정되지 않고, 본 발명의 사상과 범위에서 벗어남이 없이 수정되고 변경될 수도 있다는 것은 자명하다. It is apparent that the present invention is not limited to the above-described embodiments, and may be modified and changed without departing from the spirit and scope of the present invention.

본 발명을 통해 유저 데이터의 에러를 검출하기 위해 에러 검출 코드를 산출할 때 데이터 버퍼에 대한 액세스의 감소를 가능하게 하는 에러 검출 코드 산출 회로, 에러 검출 코드 산출 방법, 및 레코딩 장치를 제공할 수 있다. According to the present invention, it is possible to provide an error detection code calculation circuit, an error detection code calculation method, and a recording apparatus that enable a reduction in access to a data buffer when calculating an error detection code for detecting an error of user data. .

Claims (27)

제 1 시퀀스를 갖는 유저 데이터 코드 스트링에서 에러를 검출하기 위한 에러 검출 코드를 산출하는 에러 검출 코드 산출 회로로서, An error detection code calculation circuit for calculating an error detection code for detecting an error in a user data code string having a first sequence, 상기 에러 검출 코드 산출 회로는, 상기 유저 데이터 코드 스트링을 포함하는 2 이상의 섹터를 포함하는 데이터 그룹의 단위로 데이터를 프로세싱하고, The error detection code calculating circuit is configured to process data in units of a data group including two or more sectors including the user data code string, 상기 각각의 데이터 그룹은, 상기 제 1 시퀀스로 리딩될 때 상기 에러 검출 코드가 상기 유저 데이터 코드 스트링의 말단부에서 나타나고, 상기 제 1 시퀀스와 상이한 시퀀스로 리딩될 때 상기 에러 검출 코드가 상기 유저 데이터 코드 스트링의 중간에 나타나는 구조를 갖는 연산 타겟 섹터를 포함하며,Each of the data groups is characterized in that the error detection code appears at the end of the user data code string when read in the first sequence and the error detection code is read in the user data code when read in a different sequence than the first sequence. An arithmetic target sector having a structure appearing in the middle of the string, 상기 에러 검출 코드 산출 회로는,The error detection code calculation circuit is 상기 연산 타겟 섹터의 유저 데이터의 일부로부터 에러 검출 코드 중간값을 산출하는 제 1 연산 섹션; 및A first calculation section for calculating an error detection code median value from a portion of user data of the calculation target sector; And 상기 연산 타겟 섹터의 유저 데이터의 나머지 부분과 상기 에러 검출 코드 중간값으로부터 에러 검출 코드를 산출하는 제 2 연산 섹션을 구비하고,A second operation section for calculating an error detection code from the remaining portion of user data of the operation target sector and the error detection code intermediate value; 상기 제 2 연산 섹션은, 상기 제 1 시퀀스와는 상이한 시퀀스로 리딩되는 상기 연산 타겟 섹터에 포함된 상기 유저 데이터 코드 스트링에 부가될 상기 에러 검출 코드를 산출하는, 에러 검출 코드 산출 회로.And the second operation section calculates the error detection code to be added to the user data code string included in the operation target sector read in a sequence different from the first sequence. 제 1 항에 있어서,The method of claim 1, 상기 제 2 연산 섹션은, 상기 제 1 시퀀스와는 상이한 시퀀스로 입력되는 유저 데이터의 상기 나머지 부분에 기초하여 상기 에러 검출 코드 중간값을 업데이트하여 상기 에러 검출 코드를 산출하는, 에러 검출 코드 산출 회로.And the second operation section updates the error detection code intermediate value based on the remaining portion of user data input in a sequence different from the first sequence to calculate the error detection code. 제 1 항에 있어서,The method of claim 1, 상기 연산 타켓 섹터의 유저 데이터의 나머지 부분은, 헤드 데이터로부터, 상기 데이터 그룹을 상기 제 1 시퀀스와는 상이한 시퀀스로 리딩할 때 상기 연산 타켓 섹터에 포함된 상기 유저 데이터 코드 스트링에 부가된 상기 에러 검출 코드 바로전의 데이터까지의 범위의 유저 데이터를 포함하는, 에러 검출 코드 산출 회로.The remaining part of the user data of the operation target sector is detected from the head data when the error is added to the user data code string included in the operation target sector when reading the data group in a sequence different from the first sequence. An error detection code calculation circuit including user data in the range up to the data immediately before the code. 제 3 항에 있어서,The method of claim 3, wherein 상기 연산 타겟 섹터의 유저 데이터의 상기 일부는, 상기 데이터 그룹을 상기 제 1 시퀀스와는 상이한 시퀀스로 리딩할 때 상기 연산 타겟 섹터에 포함된 상기 유저 데이터 코드 스트링에 부가된 상기 에러 검출 코드 이후의 유저 데이터를 포함하는, 에러 검출 코드 산출 회로.The portion of the user data of the operation target sector is a user after the error detection code added to the user data code string included in the operation target sector when reading the data group in a sequence different from the first sequence. An error detection code calculation circuit comprising data. 제 1 항에 있어서,The method of claim 1, 상기 각각의 데이터 그룹은 K 로우와 L 컬럼 (K 및 L 은 정수) 을 갖는 블록을 포함하고, Each data group comprises a block having K rows and L columns (K and L are integers), 상기 블록은 디스크 상에 데이터를 레코딩하기 위한 최소 레코딩 유닛에 포함되는 유저 데이터를 포함하고,The block includes user data included in a minimum recording unit for recording data on a disc, 상기 제 1 시퀀스는 상기 블록의 컬럼 방향에 대응하는 유저 데이터 코딩 시퀀스이며, The first sequence is a user data coding sequence corresponding to the column direction of the block, 상기 블록의 로우 방향은 상기 유저 데이터의 레코딩 시퀀스에 대응하는, 에러 검출 코드 산출 회로.And the row direction of the block corresponds to the recording sequence of the user data. 제 5 항에 있어서,The method of claim 5, 상기 데이터 그룹은, 상기 에러 검출 코드가 상기 블록의 하나의 코드 스트링의 중간에 삽입되는 상기 연산 타겟 섹터를 포함하는, 에러 검출 코드 산출 회로.And the data group includes the operation target sector into which the error detection code is inserted in the middle of one code string of the block. 제 6 항에 있어서,The method of claim 6, 상기 연산 타겟 섹터의 유저 데이터의 상기 일부는, 상기 에러 검출 코드가 상기 블록의 하나의 코드 스트링의 중간에 삽입되는 상기 연산 타겟 섹터의 상기 에러 검출 코드의 최종 바이트가 삽입되는 로우 이후에 위치하는 유저 데이터를 포함하는, 에러 검출 코드 산출 회로.The portion of the user data of the arithmetic target sector is located after a row in which the last byte of the error detection code of the arithmetic target sector is inserted in which the error detection code is inserted in the middle of one code string of the block. An error detection code calculation circuit comprising data. 제 5 항에 있어서,The method of claim 5, 상기 제 2 연산 섹션은, 상기 제 1 시퀀스의 m-바이트의 유저 데이터를 상기 제 1 시퀀스와는 상이한 시퀀스로서 상기 로우 방향으로 L 번 수신하는 것을 K/m 번 (K/m 의 소수는 라운딩업된다) 반복함으로써 상기 데이터 그룹을 수신하는, 에러 검출 코드 산출 회로.The second operation section is K / m times (a fraction of K / m is rounded up to receive m-byte user data of the first sequence L times in the row direction as a sequence different from the first sequence). And an error detection code calculation circuit for receiving the data group by repeating. 제 8 항에 있어서,The method of claim 8, 상기 유저 데이터 코드 스트링은 데이터 버퍼로부터 버스트-전송되고,The user data code string is burst-transmitted from a data buffer, 상기 m 바이트는 버스트 전송 사이즈이며,M bytes is the burst transfer size, 상기 에러 검출 코드는 m 바이트 이하인, 에러 검출 코드 산출 회로.And the error detection code is m bytes or less. 제 5 항에 있어서,The method of claim 5, 상기 에러 검출 코드는, 상기 제 1 시퀀스를 갖는 상기 유저 데이터 코드 스트링 및 상기 에러 검출 코드와 동일한 바이트의 0 데이터로 이루어지는 k 바이트의 섹터로부터 획득되고, The error detection code is obtained from a sector of k bytes composed of the user data code string having the first sequence and zero data of the same byte as the error detection code, 상기 제 1 연산 섹션은, 상기 입력 유저 데이터의 상기 제 1 시퀀스에 대응하는 비트는 1 이고 다른 비트들은 0 인, 상기 제 1 시퀀스를 갖는 k-바이트 코드 스트링으로부터 예상값을 획득하고, 상기 입력 유저 데이터가 1 일 때, 상기 예상값의 익스클루시브-OR (exclusive-OR) 를 순차적으로 산출함으로써, 상기 에러 검출 코드 중간값을 산출하며,The first operation section obtains an expected value from a k-byte code string having the first sequence, wherein a bit corresponding to the first sequence of the input user data is 1 and other bits are 0, and the input user When the data is 1, by calculating the exclusive-OR of the expected value sequentially, the error detection code intermediate value is calculated, 상기 제 2 연산 섹션은, 상기 입력 유저 데이터의 상기 예상값을 산출하고, 상기 입력 유저 데이터가 1 인 상기 예상값과 상기 에러 검출 코드 중간값의 익스클루시브-OR 를 순차적으로 산출함으로써 상기 에러 검출 코드를 산출하는, 에러 검출 코드 산출 회로.The second operation section calculates the expected value of the input user data, and sequentially detects the predictive value of the input user data equal to 1 and an exclusive-OR of the error detection code intermediate value to detect the error. An error detection code calculating circuit for calculating a code. 제 10 항에 있어서,The method of claim 10, 상기 제 1 연산 섹션은, 상기 연산 타겟 섹터의 유저 데이터의 상기 일부를 포함하는 상기 데이터 그룹을 상기 제 1 시퀀스로 수신하고,The first operation section is configured to receive the data group including the portion of the user data of the operation target sector in the first sequence, 상기 제 2 연산 섹션은, 상기 데이터 그룹을 상기 제 1 시퀀스와는 상이한 시퀀스로 수신하는, 에러 검출 코드 산출 회로.And the second operation section receives the data group in a sequence different from the first sequence. 제 10 항에 있어서,The method of claim 10, 상기 제 2 연산 섹션은, 상기 에러 검출 코드와 동일한 바이트의 0 데이터가 상기 제 1 시퀀스의 상기 유저 데이터 코드 스트링의 말단부에 부가된 데이터에 대해 상기 제 1 시퀀스와는 상이한 순서로 연산을 수행하고, 상기 0 데이터의 최종 바이트에 대한 연산 전에 모든 상기 에러 검출 코드를 산출하는, 에러 검출 코드 산출 회로.The second operation section performs operations in a different order from that of the first sequence, on data in which zero data of the same byte as the error detection code is added to an end of the user data code string of the first sequence, And calculating all the error detection codes before the operation on the last byte of zero data. 제 10 항에 있어서,The method of claim 10, 상기 제 1 연산 섹션 및 상기 제 2 연산 섹션은, 상기 유저 데이터 코드 스트링의 특정 비트에 대응하는 예상값인 초기 예상값을 참조하여 상기 예상값을 산출하는, 에러 검출 코드 산출 회로.And the first operation section and the second operation section calculate the expected value with reference to an initial expected value that is an expected value corresponding to a specific bit of the user data code string. 제 10 항에 있어서,The method of claim 10, 상기 제 1 연산 섹션 및 상기 제 2 연산 섹션은, 상기 블록의 하나의 로우에 대응하는 예상값인 초기 예상값을 참조하여 상기 예상값을 산출하는, 에러 검출 코드 산출 회로.And the first operation section and the second operation section calculate the expected value with reference to an initial expected value that is an expected value corresponding to one row of the block. 제 14 항에 있어서,The method of claim 14, 상기 블록은 각각 한 쌍의 섹터를 갖는 복수의 영역을 포함하고, The block includes a plurality of regions each having a pair of sectors, 상기 초기 예상값은 하나의 영역의 하나의 로우의 예상값인, 에러 검출 코드 산출 회로.And the initial expected value is an expected value of one row of one region. 제 15 항에 있어서,The method of claim 15, 상기 초기 예상값을 저장하는 예상값 테이블; 및An expected value table for storing the initial expected value; And 상기 에러 검출 코드를 저장하는 버퍼를 추가로 구비하고,And a buffer for storing the error detection code, 상기 제 1 연산 섹션 및 상기 제 2 연산 섹션은, 상기 예상값 테이블을 참조하여 상기 예상값을 생성하고, 상기 익스클루시브-OR 를 산출하며, 상기 에러 검출 코드 중간값과 상기 에러 검출 코드를 상기 버퍼에 저장하는, 에러 검출 코드 산출 회로.The first operation section and the second operation section generate the expected value with reference to the expected value table, calculate the exclusive-OR, and calculate the intermediate value of the error detection code and the error detection code. Error detection code calculation circuit to store in a buffer. 제 16 항에 있어서,The method of claim 16, 상기 영역에 포함된 상기 섹터들 중의 하나는 상기 연산 타겟 섹터인, 에러 검출 코드 산출 회로.One of the sectors included in the area is the arithmetic target sector. 제 10 항에 있어서,The method of claim 10, 상기 제 2 연산 섹션은, 상기 제 1 시퀀스와는 상이한 시퀀스로 리딩될 때에도 상기 에러 검출 코드가 말단부에 부가되는 구조를 갖는 논-연산 (non-operation) 타겟 섹터 상의 상기 입력 유저 데이터의 상기 예상값을 산출하고, 상기 입력 유저 데이터가 1 일 때, 상기 예상값의 익스클루시브-OR 를 순차적으로 산출함으로써 상기 에러 검출 코드를 산출하는, 에러 검출 코드 산출 회로.The second operation section is the expected value of the input user data on a non-operation target sector having a structure in which the error detection code is added to the distal end even when read in a different sequence from the first sequence. And calculating the error detection code by sequentially calculating the exclusive-OR of the expected value when the input user data is 1. 제 18 항에 있어서,The method of claim 18, 상기 제 2 연산 섹션은, 상기 에러 검출 코드와 동일한 바이트의 0 데이터가 상기 제 1 시퀀스의 상기 유저 데이터 코드 스트링의 말단부에 부가되는 데이터에 대해, 상기 제 1 시퀀스와는 상이한 순서로 연산을 수행하고, 상기 0 데이터의 최종 바이트에 대한 연산 전에 모든 상기 에러 검출 코드를 산출하는, 에러 검출 코드 산출 회로.The second operation section performs operations in a different order from that of the first sequence, for data to which zero data of the same byte as the error detection code is added to the end of the user data code string of the first sequence. And calculating all the error detection codes before the operation on the last byte of zero data. 제 1 항에 있어서,The method of claim 1, 상기 제 1 시퀀스와는 상이한 시퀀스는 상기 블록의 로우 방향에 대응하는, 에러 검출 코드 산출 회로.And a sequence different from the first sequence corresponds to the row direction of the block. 제 1 항에 있어서,The method of claim 1, 상기 제 1 연산 섹션은 t-번째 데이터 그룹을 프로세스하고, 상기 제 2 연산 섹션은 (t-1) 번째 데이터 그룹을 프로세스하는, 에러 검출 코드 산출 회로.Wherein the first operation section processes a t-th data group and the second operation section processes a (t-1) th data group. 제 1 시퀀스를 갖는 유저 데이터 코드 스트링에서 에러를 검출하기 위한 에러 검출 코드를 산출하는 에러 검출 코드 산출 방법으로서, An error detection code calculation method for calculating an error detection code for detecting an error in a user data code string having a first sequence, comprising: 상기 에러 검출 코드 산출 방법은, 상기 유저 데이터 코드 스트링을 포함하는 2 이상의 섹터를 포함하는 데이터 그룹의 단위로 데이터를 프로세싱하고, The error detection code calculation method may include processing data in units of a data group including two or more sectors including the user data code string, 상기 각각의 데이터 그룹은, 상기 제 1 시퀀스로 리딩될 때 상기 에러 검출 코드가 상기 유저 데이터 코드 스트링의 말단부에서 나타나고, 상기 제 1 시퀀스와 상이한 시퀀스로 리딩될 때 상기 에러 검출 코드가 상기 유저 데이터 코드 스트링의 중간에 나타나는 구조를 갖는 연산 타겟 섹터를 포함하며,Each of the data groups is characterized in that the error detection code appears at the end of the user data code string when read in the first sequence and the error detection code is read in the user data code when read in a different sequence than the first sequence. An arithmetic target sector having a structure appearing in the middle of the string, 상기 에러 검출 코드 산출 방법은,The error detection code calculation method, 제 1 연산 섹션에 의해, 상기 연산 타겟 섹터의 유저 데이터의 일부로부터 에러 검출 코드 중간값을 산출하는 단계; 및Calculating, by a first operation section, an error detection code median value from a portion of user data of the operation target sector; And 제 2 연산 섹션에 의해, 상기 연산 타겟 섹터의 유저 데이터의 나머지 부분과 상기 에러 검출 코드 중간값으로부터, 상기 제 1 시퀀스와는 상이한 시퀀스로 리딩되는 상기 연산 타겟 섹터에 포함된 상기 유저 데이터 코드 스트링에 부가될 상기 에러 검출 코드를 산출하는 단계를 포함하는, 에러 검출 코드 산출 방법.A second operation section, from the remaining portion of the user data of the operation target sector and the error detection code intermediate value, to the user data code string included in the operation target sector read out in a sequence different from the first sequence; Calculating the error detection code to be added. 제 1 시퀀스를 갖는 2 이상의 유저 데이터 코드 스트링을 포함하는 데이터 그룹을 상기 제 1 시퀀스와는 상이한 제 2 시퀀스로 디스크 상에 레코딩하는 레코딩 장치로서,A recording apparatus for recording a data group including two or more user data code strings having a first sequence on a disc in a second sequence different from the first sequence, 상기 레코딩 장치는, 상기 유저 데이터 코드 스트링을 포함하는 2 이상의 섹터를 포함하는 데이터 그룹의 단위로 데이터를 프로세싱하고, The recording apparatus processes data in units of a data group including two or more sectors including the user data code string, 상기 각각의 데이터 그룹은, 상기 제 1 시퀀스로 리딩될 때 상기 에러 검출 코드가 상기 유저 데이터 코드 스트링의 말단부에서 나타나고, 상기 제 1 시퀀스와 상이한 시퀀스로 리딩될 때 상기 에러 검출 코드가 상기 유저 데이터 코드 스트링의 중간에 나타나는 구조를 갖는 연산 타겟 섹터를 포함하며,Each of the data groups is characterized in that the error detection code appears at the end of the user data code string when read in the first sequence and the error detection code is read in the user data code when read in a different sequence than the first sequence. An arithmetic target sector having a structure appearing in the middle of the string, 상기 레코딩 장치는,The recording device, 제 1 시퀀스를 갖는 상기 유저 데이터 코드 스트링의 에러를 검출하기 위한 에러 검출 코드를 산출하는 에러 검출 코드 산출 회로; 및An error detection code calculation circuit for calculating an error detection code for detecting an error of the user data code string having a first sequence; And 상기 에러 검출 코드 산출 회로에 의해 산출된 상기 에러 검출 코드 및 상기 유저 데이터 코드 스트링에 기초하여 상기 데이터 그룹을 스크램블링하고, 상기 스크램블된 데이터 그룹을 레코딩 데이터로서 출력하는 스크램블 프로세서를 구비하고,And a scramble processor that scrambles the data group based on the error detection code and the user data code string calculated by the error detection code calculation circuit and outputs the scrambled data group as recording data. 상기 에러 검출 코드 산출 회로는,The error detection code calculation circuit is 상기 연산 타겟 섹터의 유저 데이터의 일부로부터 에러 검출 코드 중간값을 산출하는 제 1 연산 섹션; 및A first calculation section for calculating an error detection code median value from a portion of user data of the calculation target sector; And 상기 연산 타겟 섹터의 유저 데이터의 나머지 부분과 상기 에러 검출 코드 중간값으로부터 에러 검출 코드를 산출하는 제 2 연산 섹션을 포함하고, A second operation section for calculating an error detection code from the remaining portion of user data of the operation target sector and the error detection code intermediate value; 상기 제 2 연산 섹션은, 상기 제 1 시퀀스와는 상이한 시퀀스로 리딩되는 상기 연산 타겟 섹터에 포함되는 상기 유저 데이터 코드 스트링에 부가될 상기 에러 검출 코드를 산출하는, 레코딩 장치.And the second operation section calculates the error detection code to be added to the user data code string included in the operation target sector read in a sequence different from the first sequence. 제 23 항에 있어서,The method of claim 23, 상기 스크램블 프로세서는,The scramble processor, 상기 에러 검출 코드 산출 회로에 의해 산출된 상기 에러 검출 코드를 상기 유저 데이터 코드 스트링에 부가하는 통합 섹션 (integration section); 및An integration section for adding the error detection code calculated by the error detection code calculation circuit to the user data code string; And 상기 통합 섹션에 의해 통합된 상기 에러 검출 코드가 부가된 상기 데이터를 스크램블링하는 스크램블러를 구비하는, 레코딩 장치.And a scrambler for scrambling said data to which said error detection code incorporated by said integrating section has been added. 제 24 항에 있어서,The method of claim 24, 상기 각각의 데이터 그룹은 K 로우와 L 컬럼 (K 및 L 은 정수) 을 포함하는 블록을 포함하고,Each data group includes a block comprising K rows and L columns (K and L are integers), 상기 제 1 시퀀스는 상기 블록의 컬럼 방향에 대응하는 유저 데이터 코딩 시퀀스이고, The first sequence is a user data coding sequence corresponding to the column direction of the block, 상기 레코딩 데이터는 상기 제 1 시퀀스와는 상이한 제 2 시퀀스를 가지며,The recording data has a second sequence different from the first sequence, 상기 레코딩 장치는, 상기 스크램블러에 의해 스크램블된 스크램블 데이터를 상기 제 2 시퀀스로 출력하는 치환 버퍼를 추가로 구비하는, 레코딩 장치.And the recording apparatus further comprises a substitution buffer for outputting the scrambled data scrambled by the scrambler in the second sequence. 제 23 항에 있어서,The method of claim 23, 상기 스크램블 프로세서는,The scramble processor, 상기 유저 데이터 코드 스트링을 스크램블링하는 제 1 스크램블러;A first scrambler that scrambles the user data code string; 상기 에러 검출 코드를 스크램블링하는 제 2 스크램블러; 및A second scrambler that scrambles the error detection code; And 상기 제 2 스크램블러에 의해 스크램블된 상기 에러 검출 코드를 상기 제 1 스크램블러에 의해 스크램블된 상기 유저 데이터 코드 스트링에 부가하는 통합 섹션을 구비하는, 레코딩 장치.And an integration section for adding the error detection code scrambled by the second scrambler to the user data code string scrambled by the first scrambler. 제 26 항에 있어서,The method of claim 26, 상기 각각의 데이터 그룹은 K 로우와 L 컬럼 (K 및 L 은 정수) 을 포함하는 블록을 포함하고,Each data group includes a block comprising K rows and L columns (K and L are integers), 상기 제 1 시퀀스는 상기 블록의 컬럼 방향에 대응하는 유저 데이터 코딩 시퀀스이며,The first sequence is a user data coding sequence corresponding to the column direction of the block, 상기 레코딩 데이터는 상기 제 1 시퀀스와는 상이한 제 2 시퀀스를 가지고, The recording data has a second sequence different from the first sequence, 상기 레코딩 장치는, 상기 스크램블러에 의해 스크램블된 스크램블 데이터를 상기 제 2 시퀀스로 출력하는 치환 버퍼를 추가로 구비하고,The recording apparatus further includes a substitution buffer for outputting scrambled data scrambled by the scrambler in the second sequence, 상기 통합 섹션은, 상기 치환 버퍼로부터 상기 제 2 시퀀스의 상기 스크램블 데이터를 수신하고, 상기 스크램블된 에러 검출 코드를 상기 제 2 시퀀스로 수신된 상기 스크램블된 유저 데이터 코드 스트링에 부가하며, 상기 레코딩 데이터를 출력하는, 레코딩 장치.The integration section receives the scrambled data of the second sequence from the substitution buffer, adds the scrambled error detection code to the scrambled user data code string received in the second sequence, and adds the recording data. Output device to output.
KR1020060073966A 2005-08-04 2006-08-04 Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus KR100784740B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060073966A KR100784740B1 (en) 2005-08-04 2006-08-04 Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00226705 2005-08-04
KR1020060073966A KR100784740B1 (en) 2005-08-04 2006-08-04 Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus

Publications (2)

Publication Number Publication Date
KR20070017080A KR20070017080A (en) 2007-02-08
KR100784740B1 true KR100784740B1 (en) 2007-12-13

Family

ID=41628595

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060073966A KR100784740B1 (en) 2005-08-04 2006-08-04 Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus

Country Status (1)

Country Link
KR (1) KR100784740B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10188489A (en) 1996-12-25 1998-07-21 Sony Corp Optical disk, optical disk recorder, and optical disk reproducer
JPH10334620A (en) 1997-06-02 1998-12-18 Hitachi Ltd Recording medium reproducing apparatus, recording medium recording/reproducing apparatus, recording medium writing apparatus, error correcting circuit, error correcting code generating method, data transfer error correcting method, storage medium and recording medium
KR20000060955A (en) * 1999-03-22 2000-10-16 윤종용 Error correction code block structure for high density disc and error correction method therefor
KR20010009190A (en) * 1999-07-08 2001-02-05 윤종용 Error correcting method for high dencity disc
KR20030059914A (en) * 2002-01-03 2003-07-12 삼성전자주식회사 Error correcting code block generating method and apparatus, and optical storage medium thereby

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10188489A (en) 1996-12-25 1998-07-21 Sony Corp Optical disk, optical disk recorder, and optical disk reproducer
JPH10334620A (en) 1997-06-02 1998-12-18 Hitachi Ltd Recording medium reproducing apparatus, recording medium recording/reproducing apparatus, recording medium writing apparatus, error correcting circuit, error correcting code generating method, data transfer error correcting method, storage medium and recording medium
KR20000060955A (en) * 1999-03-22 2000-10-16 윤종용 Error correction code block structure for high density disc and error correction method therefor
KR20010009190A (en) * 1999-07-08 2001-02-05 윤종용 Error correcting method for high dencity disc
KR20030059914A (en) * 2002-01-03 2003-07-12 삼성전자주식회사 Error correcting code block generating method and apparatus, and optical storage medium thereby

Also Published As

Publication number Publication date
KR20070017080A (en) 2007-02-08

Similar Documents

Publication Publication Date Title
EP1750264B1 (en) Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus
US7836375B2 (en) Scrambler circuit, encoding device, encoding method and recording apparatus
ES2391264T3 (en) Support recording disc, disk drive apparatus and playback method
US5732088A (en) Data recording/reproducing apparatus, method thereof, and data record medium
US7607074B2 (en) Error detecting code addition circuit, error detection circuit and method, and disc apparatus
JP2002319242A (en) Method and device for recording, transmission device, method and device for reproduction, reception device, recording medium, and transmission medium
US8102996B2 (en) Scrambler, descrambler and method, and disc apparatus
JP2004303395A (en) Optical disk, and its information recording method and device
US20070124646A1 (en) Recording medium, recording method and apparatus, reproducing method and apparatus, data transmitting method, and data decrypting method
WO2006080521A1 (en) Optical disk manufacturing method and device, optical disk, and reproduction method thereof
KR100784740B1 (en) Error detecting code calculation circuit, error detecting code calculation method, and recording apparatus
KR100833227B1 (en) Apparatus and method of recording data on an optical recording medium
JP3969399B2 (en) Recording method and recording apparatus
US7334180B2 (en) Optical encoding method
JP3384402B2 (en) Information reproducing method and information reproducing apparatus
JPH0737335A (en) Sector signal forming method, recording device and reproducing device
US20050052971A1 (en) Recording medium, recording device, recording method, and recording program
JP3384325B2 (en) Information recording method and reproduction method
US20050052970A1 (en) Recording medium, recording device, recording method, and recording program

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: 20121121

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131118

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141120

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20161122

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20171120

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20181122

Year of fee payment: 12