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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, 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/1221—Formatting, 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1218—Formatting, 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/1232—Formatting, 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B2020/1264—Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
- G11B2020/1265—Control data, system data or management information, i.e. data used to access or process user data
- G11B2020/1267—Address data
- G11B2020/1271—Address data the address data being stored in a subcode, e.g. in the Q channel of a CD
- G11B2020/1272—Burst indicator subcode [BIS]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
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
도 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
도 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
도 12 는 본 발명의 예시적인 실시형태에 따른 레코딩 장치의 경로 1 의 프로세싱을 수행하는 EDC 생성기의 상세한 일예를 나타내는 도면.12 illustrates a detailed example of an EDC generator that performs the processing of
도 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
도 16 은 본 발명의 예시적인 실시형태에 따른 레코딩 장치의 경로 2 의 프로세싱을 수행하는 EDC 생성기의 상세한 일예를 나타내는 도면.FIG. 16 shows a detailed example of an EDC generator for performing the processing of
도 17 은 경로 1 의 EDC 생성 프로세스를 나타내는 플로우차트.FIG. 17 is a flowchart illustrating an EDC generation process of
도 18 은 경로 2 의 EDC 생성 프로세스를 나타내는 플로우차트.18 is a flowchart illustrating an EDC generation process of
도 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
물리적 클러스터 (304) 는 496 레코딩 프레임 (306) 으로 이루어진다. 프레임 싱크 (frame sync) 는 각각의 레코딩 프레임 (306) 의 개시부에 위치한다. 따라서, 물리적 클러스터 (304) 를 구성하는 496 프레임 (레코딩 프레임 (306)) 과 런-인 (303) 및 런-아웃 (305) 의 2 프레임의 합인 498 프레임이 1 RUB (302) 를 형성한다.
레코딩 프레임 (306) 은 1932cbs 로 이루어지고, 1-7PP (parity preserve/prohibit RMTR) 코드에 의해 변조된다. 그 다음, 이것은 복조되고, DSV (Digital sum value) 컨트롤 (dc-control) 비트는 이 복조된 데이터로부터 삭제되며, 그에 의해 ECC 클러스터를 형성한다. The
도 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
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
도 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
하나의 섹터는 각각의 시퀀스가 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
도 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
픽업 (751) 은 레이저 광원으로서 기능하는 레이저 다이오드, 반사된 광을 검출하기 위한 광-검출기 (photo-detector), 및 레이저 광의 출력 말단부로서 기능하는 대물 렌즈를 구비하여, 레이저 광을 대물 렌즈를 통해 디스크 레코딩 표면으로 인가하고, 반사된 광을 광-검출기로 유도하는 광학적 시스템 (미도시) 을 형성한다. 픽업 (751) 은 스레드 메카니즘 (thread mechanism; 753) 에 의해 디스 크 반경 방향으로 이동 가능하다. 레이저 다이오드는 405 nm 파장의 블루 레이저를 출력한다. 광학적 시스템의 NA 는 0.85 이고, 레이저 방사는 레이저 구동기 (763) 로부터의 구동 신호 (구동 전류) 에 의해 제어된다. 디스크 (701) 로부터의 반사 광 정보는 광-검출기에 의해 검출되고, 검출된 광의 세기에 따라 전기적 신호로 변경되어, 매트릭스 회로 (754) 에 제공된다. The
매트릭스 회로 (754) 는 전류-전압 컨버터 및 광-검출기로서의 복수의 수광 디바이스로부터의 출력 전류에 대응하는 매트릭스 연산/증폭 회로를 구비하고, 매트릭스 연산에 의해 필요한 신호를 생성한다. 예를 들어, 이것은 재생 데이터 (재생 데이터 신호) 에 대응하는 고-주파 신호, 서보 컨트롤 (servo control)을 위한 포커스 에러 신호, 트랙킹 에러 신호, 워블링 그루브 (wobbling groove) 에 관련된 푸쉬-풀 (push-pull) 신호 등을 생성한다. The
매트릭스 회로 (754) 로부터 출력된 재생 데이터 신호는 RW 회로 (reader/writer circuit; 755) 에 제공되고, 포커스 에러 신호 및 트랙킹 에러 신호는 서보 회로 (761) 에 제공되며, 워블링 그루브의 검출 정보를 나타내는 푸쉬-풀 신호는 워블 회로 (758) 에 제공된다. The reproduction data signal output from the
디스크 (701) 가 리라이팅 가능한 (rewritable) 디스크일 경우 매트릭스 회로 (754) 로부터 출력되는 워블링 그루브에 관련된 푸쉬-풀 신호는 워블 회로 (758) 에 의해 프로세스된다. 워블 회로 (758) 는 ADIP 정보를 나타내는 푸쉬-풀 신호에 대해 MSK (Minimum Shift Keying) 복조 및 HMW (Harmonic Modulated Wave) 복조를 수행하여, 신호를 ADIP 어드레스를 구성하는 데이터 스트림으로 복조하고, 그 데이터 스트림을 어드레스 디코더 (759) 에 제공한다. 어드레스 디코더 (759) 는 워블 회로 (758) 로부터 제공되는 워블 신호를 이용하는 PLL 프로세싱에 의해 클럭을 생성하고, 그것을 예를 들어, 레코딩을 위한 인코드 클럭으로서 각각의 컴포넌트에 제공한다. If the
레코딩에서, 레코딩 데이터는 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
리더/라이터 회로 (755) 는 레코딩 레이어의 특성을 위한 최적의 레코딩 전력, 레이저 광의 스팟 형태, 레코딩 선형 속도 등의 미세 조정 및 인코딩 프로세스에 의해 생성된 레코딩 데이터에 대한 레이저 구동 펄스 파형의 조정과 같은 레코딩 보상 프로세싱을 수행한다. 그 다음, 레코딩 데이터는 레이저 구동 펄스로서 레이저 드라이버 (763) 로 보내진다. 레이저 드라이버 (763) 는 레이저 구동 펄스를 픽업 (751) 의 레이저 다이오드에 인가하여 레이저 방사를 구동한다. 레코딩 데이터에 대응하는 핏 (pit) (위상 변경 마크 (phase change mark)) 가 그 에 의해 디스크 (701) 상에 형성된다. The reader /
스핀들 서보 회로 (762) 는 스핀들 모터 (752) 를 제어하여 CLV 회전을 형성한다. 스핀들 서보 (762) 는 스핀들 모터 (752) 의 현재 회전 스피드 정보로서 워블 신호에 대한 PLL 프로세싱에 의해 생성된 클럭을 획득하고, 그것을 소정의 CLV 기준 스피드 정보와 비교하며, 그에 의해 스핀들 에러 신호를 형성한다.
전술한 바와 같은 레코딩 및 재생 시스템과 서보 시스템의 동작은 마이크로 컴퓨터에 의해 구성되는 시스템 컨트롤러 (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
일본 무심사 공개특허공보 제 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
결과적으로, 유저 데이터 방향 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
각각의 섹터는 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
섹터 (Sec 0 내지 Sec 31) 에서, EDC 를 부가하기 위해 도 1 및 도 2 에 나타낸 유저 데이터 방향 Q 의 유저 데이터에 대해 소정의 연산이 수행된다. 데이터는 스크램블되고, 그 다음, 변조되어, 디스크 상에 레코딩된다. 레코딩될 때, 데이터 블록은 컬럼 방향 또는 유저 데이터 방향 Q 에 수직인, 도 1 의 화살표에 의해 지시되는 레코딩 프레임 방향 P 의 시퀀스로 레코딩된다. 유저 데이터 방향 Q 는 에러 검출 코드의 부가를 위한 프로세싱 시퀀스 및 블루-레이 디스크에서의 스크램블링 및 인코딩을 위한 프로세싱 시퀀스와 일치한다. 나중에 설명될 것이지만, 유저 데이터와 EDC 를 개별적으로 스크램블하고, 이들을 함께 통합하는 것이 가능하다. In the
전술한 바와 같이, 데이터는 레코딩 프레임 방향 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)
전술한 참조에 개시된 발명에서, 치환 버퍼는 리프레싱을 필요로하지 않고 랜덤 액세스가 가능한 메모리로 구성되고, 그에 의해, 버스트 전송에 의해 데이터 버퍼로부터 획득된 연속적인 데이터가 고속으로 레코딩 프레임 방향 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
채널 CH1 에 의해 유저 데이터 방향 Q 의 시퀀스로 데이터 버퍼 (11) 로부터 리딩되는 유저 데이터는 EDC 생성기 (13) 로 전송된다. EDC 생성기 (13) 는, 유저 데이터 방향 Q 의, 하나의 섹터에 대응하는 데이터인, 2048-바이트 유저 데이터 및 4-바이트 0 데이터의 입력과 동시에 4-바이트 EDC 를 생성하는 시프트 레지스터에 의해 구성된다. 생성된 EDC 는 EDC 버퍼 (14) 에 저장된다. The user data read from the
경로 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
전송 블록을 전송할 때, 통합 섹션 (15) 은 소정의 타이밍에서 EDC 버퍼 (14) 로부터 EDC 를 리딩하고, 그 EDC 를 버스트-전송될 유저 데이터에 부가하고, EDC 가 부가된 상태로 데이터를 출력한다. When transmitting the transport block, the
그 다음, 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
또한, 참조에 개시된 발명은 스크램블 중간값을 산출하고, 그 다음, 이 데이터에 기초하여 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
참조에 개시된 발명에 따르면, 버퍼 컨트롤러 (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
제 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
버퍼 컨트롤러 (3) 는 데이터 버퍼 (2) 로부터 유저 데이터의 리딩을 제어한다. 버퍼 컨트롤러 (3) 는 필요에 따라 유저 데이터를 리딩하고, 그 리딩 데이터를 인코더 (4) 로 전송한다. EDC 를 산출하기 위해, 본 실시형태의 레코딩 장치는, 전체 데이터 블록의 유저 데이터의 약 1/4 정도인 우수 섹터의 후반부의 데이터로부터 EDC 중간값을 산출하는 (여기서는 경로 1 로 칭해지는) 프로세스, 및 나머지 3/4 의 유저 데이터와 EDC 중간값으로부터 EDC 를 산출하는 (여기서는 경로 2 로 칭해지는) 프로세스를 병렬적으로 수행한다. 버퍼 컨트롤러 (3) 는 경로 1 의 프로세싱에서의 이용을 위한 유저 데이터를 리딩하기위한 채널 CH1 및 경로 2 의 프로세싱에서의 이용을 위한 유저 데이터를 리딩하기 위한 채널 CH2 를 갖고, 이들 양자 모두는 데이터 버퍼 (2) 로부터 나온 것이다. The
인코더 (4) 는 EDC 를 유저 데이터에 부가하고, EDC-부가 유저 데이터를 스크램블한다. 그 다음, 인코더 (4) 는 스크램블 데이터 (이하 레코딩 데이터라 한다) 및 레코딩 데이터로부터 획득된 ECC 를 출력한다. 그 다음, ECC 및 레코딩 데이터는 BIS 코드로 결합되고, 1-7PP 에 의해 변조되고, 디스크 상에 레코딩된다.
인코더 (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) 로 다시 라이팅한다.
인코더 (4) 는 EDC 버퍼 (33) 에 저장된 EDC 를 채널 CH2 로부터 리딩된 유저 데이터에 부가하고, 그 EDC-부가 데이터를 출력하는 통합 섹션 (35) 을 추가로 포함한다. 또한, 이는 통합 섹션 (35) 으로부터 출력되는 EDC-부가 데이터를 스크램블하는 스크램블러 (36) 및 스크램블러 (36) 가 데이터를 스크램블하는데 필요한 스크램블값을 산출하는 스크램블값 생성기 (37) 를 추가적으로 포함한다. 또한, 인코더 (4) 는 스크램블러 (36) 에 의해 스크램블 데이터를 레코딩 프레임 방향 P 의 시퀀스로 재배열하는 치환 버퍼 (38) 를 추가적으로 포함한다. 통합 섹션 (35), 스크램블러 (36), 스크램블값 생성기 (37), 및 치환 버퍼 (38) 는 유저 데이터 및 EDC 로부터 레코딩 데이터를 산출하고, 획득된 레코딩 데이터를 출력하는 스크램블 프로세서를 구성한다. The
또한, 인코더 (4) 는 스크램블 데이터로부터 ECC 를 생성하는 ECC 생성기 (39) 및 ECC 생성기 (39) 에 의해 생성된 ECC 를 버퍼링하는 ECC 버퍼 (40) 를 포함한다. 레코딩 프레임 방향 P 의 시퀀스로 치환 버퍼 (38) 로부터 리딩된 데이터는 레코딩 데이터로서 출력된다. ECC 버퍼 (40) 의 데이터는 ECC 패러티로서 출력된다. 레코딩 데이터 및 ECC 패러티는 통합 섹션 (미도시) 으로 출력되고, 여기서 레코딩 데이터는 로우 및 컬럼으로 재배열되고, ECC 가 부가되며, 그 다음, 인터리빙되어, 그에 의해 ECC 클러스터를 형성한다 (도 32 의 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
도 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
본 실시형태에서는 유저 데이터 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
경로 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
한편, 경로 2 에서, 버퍼 컨트롤러 (3) 의 채널 CH2 는 채널 CH1 과는 상이한 리딩 순서로 데이터 블록 (41) 의 모든 데이터를 리딩한다. 구체적으로, 채널 CH2 는 경로 2 의 버스트 전송 사이즈 m 의 데이터를 버스트-전송한다. 본 실시형태에서 버스트 전송 사이즈 m 이 6 이지만, 6 바이트보다 더 크거나, 보다 더 작을 수도 있다. 버스트 전송 사이즈 m 은 EDC 의 사이즈 이상인 것이 바람직하다. On the other hand, in the
먼저, 유저 데이터 방향 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
예시적인 실시형태에 따른 레코딩 장치 (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
경로 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
블루-레이 디스크에서, 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
기본 코드 스트링 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
따라서, 예상값 산출 코드 스트링 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
데이터는 데이터 블록 단위로 프로세스된다. 데이터 블록 (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
예상값은 이하 자세히 설명된다. 도 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
이 경우, 코드 스트링 X 를 32-비트 시프트 레지스터 (50) 로 입력한 결과는 시프트 레지스터 (50) 의 값을 "00000001h" 로 초기화하고, 이 값을 15552 번 시프트함으로써 획득된다. In this case, the result of inputting the code string X into the 32-
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
이 예시적인 실시형태는 비트 데이터에 대응하는 모든 예상값에 대해 유효한 것은 아니며, 섹터 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
도 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
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 중간값으로서 획득한다.
도 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
도 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
초기 예상값은 로우 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
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
경로 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
선택기 (68) 는 섹터 카운터 (67) 에 의해 EDC 버퍼 (33) 로부터 선택된 섹터에 대응하는 값을 리딩하고, 그값을 XOR 회로 (65) 에 제공한다. XOR 회로 (65) 는 선택기 (64) 의 출력과 선택기 (68) 의 선택된 값의 익스클루시브-OR 를 산출하고, 그 결과를 선택기 (68) 에 제공한다. 선택기 (68) 는 이 결과를 EDC 버퍼 (33) 의 대응하는 섹터의 저장 영역에 라이팅한다. The
결과적으로, 섹터 0 의 유저 데이터 입력의 완료와 동시에, EDC 버퍼 (33) 는 도 11 의 음영에 의해 지시되는 섹터 0 (Row = 108 내지 215 및 M = 0 내지 8) 의 후반부의 유저 데이터와 대응하는 예상값에 대한 익스클루시브 OR 에 의해 획득되는 EDC 중간값을 저장한다. As a result, upon completion of the user data input of
경로 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
채널 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
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 생성기 (34) 또는 레코딩 장치 (1) 는 유저 데이터의 로우 넘버 Row 를카운트하는 카운터 (이하 베이스 로우 카운터라 칭한다) 및 버스트 전송 사이즈 m 의 로우 넘버를 카운트하는 카운터 (이하 버스트 전송 로우 카운터라 칭한다) 를 가진다. 다음의 설명에서, 베이스 로우 카운터에 의해 카운트되는 로우 넘버 (카운트값) 는 Row (0≤Row≤215) 이고, 버스트 전송 로우 카운터에 의해 카운트되는 로우 넘버 (카운트값) 는 N (0≤N≤m-1) 이다. 또한, EDC 생성기 (34) 는 각각의 카운터의 카운트값에 따라 유저 데이터 방향 Q 의 2049 번째 데이터의 입력 타이밍을 검출하는 EDC 플래그, 및 2049 번째 내지 2052 번째 바이트의 4 바이트의 입력 타이밍을 검출하는 EDC 영역 플래그 를 추가로 가지며, 이들 양자 모두는 도시하지 않았다.The
경로 2 에서, 하나의 전송 블록의 전송 완료 후에, 최종 블록에 도달할 때까지 전송 블록은 순차적으로 전송된다. 예를 들어, 제 1 전송 블록 바로 후에 전송되는 전송 블록의 유저 데이터는 Row = N+첫 번째 로우에서 시작한다. 따라서, 그 다음 전송 블록이 전송될 때, EDC 테이블 (32) 은 Row = N+첫 번째 로우의 최상위 비트에 대응하는 예상값을 유지한다. 전송 블록의 최종 영역의 각각의 컬럼의 최종 비트에 대응하는 예상값을 생성함과 동시에, 그값은 EDC 테이블 (32) 에 순차적으로 오버라이팅된다. 따라서, 하나의 전송 블록에 대한 연산이 완료될 때, EDC 테이블 (32) 은 다음 전송 블록의 제 1 로우의 최상위 비트에 대응하는 예상값을 유지한다. 선택기 (72) 는 입력 유저 데이터의 컬럼 넘버에 대응하는 값을 예상값 생성기 (73) 에 제공하고, 그에 의해, 다음 전송 블록의 예상값의 생성을 가능하게 한다. In
그 다음, 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
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
경로 1 및 경로 2 의 EDC 생성 프로세스를 이하 자세히 설명한다. 먼저, 경로 1 의 프로세싱을 도 11, 도 12 및 도 17 을 참조하여 설명한다. 도 17 은 경로 1 의 EDC 생성 프로세싱을 나타내는 플로우차트이다. 전술한 바와 같이, EDC 버퍼 (33) 는 각각의 섹터의 연산 결과를 유지한다. 다음의 설명에서, 각각의 섹터의 연산 결과는 EDCValue[0 내지 31] 로서 칭해진다.The EDC generation process of
프로세스는 우선 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
그 다음, 선택기 (62) 는 EDCTable[M+10] 의 값을 리딩한다 (S15). 전술한 바와 같이, 본 실시형태는 초기 예상값으로서 Row = 0 에서 최상위 비트의 19 개의 예상값을 이용하고, 그 19 개의 예상값으로부터 모든 예상값을 생성한다. The
컬럼 카운터 (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
본 예시적인 실시형태에서, 획득된 데이터는 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
그 후, 프로세스는 전술한 프로세싱을 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
한편, 단계 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
이하, 경로 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
우선, 프로세스는 각각의 카운터의 값과 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
데이터를 획득한 후에, 프로세스는 그것이 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-
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
한편, 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
단계 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
이하, 전술한 프로세싱을 더욱 자세히 설명한다. 단계 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
전술한 바와 같이, 베이스 로우 카운터는 하나의 데이터 블록의 모든 로우를 연속적으로 카운트하고, 그 카운트값은 로우 넘버 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.
이하, 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-
4-바이트 0 데이터는 유저 데이터 방향 Q 의 2048 번째 바이트 후의 데이터에 부가된다. 따라서, EDC 의 헤드 데이터로서 EDC0 에 대응하는 2049 번째 바이트를 검출하고, 획득된 데이터를 00h 로 교체함으로써 2049 내지 2052 바이트의 4 바이트에 대한 프로세싱을 수행하는 것이 필요하다. 따라서, EDC 생성기 (34) 는 데이터를 복구하는 각각의 시간마다 다음에 획득될 데이터가 유저 데이터 방향 Q 의 2049 번째 바이트 데이터인지 여부를 판정한다. 4-
본 실시형태에서는, 이 말단부에 데이터가 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-
그 후에, 프로세스는 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
이하, 단계 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
구체적으로, 도 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",
이하, 도 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
헤드 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
전술한 바와 같이, 최종 영역 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
그 다음, 프로세스는 버스트 전송 로우 카운터의 카운트값 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
예상값을 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
입력 데이터가 우수 섹터의 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
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
이하, 단계 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
도 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
도 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
전술한 바와 같이, 인코딩에 대한 장애가 될 수 있는 데이터 버퍼 액세스의 감소로 인해, 본 실시형태는 고속 인코딩 및 전력 소모의 감소를 달성하는 이점을 가진다. 소정 길이의 시간 동안 데이터 버퍼를 액세스할 수 있는 데이터의 양은 고정되고, 속도가 증가함에 따라 시간이 감소된다. 따라서, 데이터 버퍼 액세스는 고속 인코딩에 대한 장애가 된다. 데이터 액세스의 절대적인 양을 감소시키는 것은 데이터 액세스의 양에 의해 고속 인코딩과 전력 소모의 감소를 가능하게 한다. 또한, 액세스의 절대적인 양의 감소는 여전히 고속 인코딩을 달성하면서도 더 느린 클럭으로 동작하는 값싼 버퍼의 사용을 가능하게 한다. 또한, 고속 인코딩을 가능하게 하는데 사용되는 데이터 버퍼와 버퍼 컨트롤러를 위한 동 작 클럭 주파수를 감소시키는 것이 가능하다.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
데이터 버퍼 (2) 는 SDRAM 과 같은, 리프레싱 (refreshing) 을 필요로 하고 랜덤 액세스와 버스트 전송이 가능한 메모리로 구성된다. 다음 설명은 SDRAM 을 사용하는 경우를 설명한다. SDRAM 은 연속적인 어드레스를 액세스할 때 랜덤 액세스보다 더 높은 속도의 액세스가 가능한 DRAM 이고, 버스트 전송 기능의 이용은 고속 데이터 전송을 가능하게 한다. 따라서, SRAM 과 같은 고속 랜덤 액세스가 가능한 메모리에 비해 비용을 감소시키는 것이 가능하다. The
버퍼 컨트롤러 (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
채널 CH2 또는 통합 섹션 (35) 은 버스트 전송의 헤드 어드레스를 지정하는 기능 또는 EDC 버퍼 (33) 로부터 EDC 를 리딩하는 타이밍을 컨트롤하는 기능을 갖는다. The channel CH2 or
스크램블러 (36) 는 스크램블 데이터로서 유저 데이터 방향 Q 의 시퀀스에 대응하는 스크램블값과 유저 데이터의 익스클루시브-OR 를 산출한다. 따라서, 데이터를 스크램블링할 때, 스크램블 데이터 DSi 는 The
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
블루-레이 디스크의 스크램블러는 소정의 연산을 수행하기 위해 초기값을 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
치환 버퍼 (38) 는 SRAM 과 같은 리프레싱을 필요로 하지 않고 랜덤 액세스가 가능한 메모리에 의해 구성된다. 다음의 실시예는 SRAM 을 사용하지만, 치한 버퍼는 고속 랜덤 액세스가 가능한, SRAM 에 한정되지 않는다. 스크램블 데이터를 레코딩 프레임 방향 P 의 데이터로 치환하기 위해 치환 버퍼 (38) 가 위치하고, 스크램블 데이터를 레코딩 프레임 방향 P 로 고속 전송하는 것이 가능하다. 치환 버퍼 (38) 는 상기 전송 블록 이상의 사이즈를 갖는 2 이상의 영역을 갖고, 전송 블록을 다른 영역에 라이팅하면서, 하나의 전송 블록으로부터 레코딩 데이터를 출력한다. 치환 버퍼 (38) 의 사이즈는 데이터 버퍼 (2) 의 사이즈보다 훨씬 더 작을 수도 있고, 그에 의해, 데이터 버퍼 (2) 로서 SRAM 을 사용하는 경우에 비해 고속 전송을 달성하면서 비용 감소를 가능하게 한다. The
경로 2 의 연산을 여기에서 자세히 설명한다. 우선, 치환 버퍼 (38) 로 전송되는 유저 데이터를 자세히 설명한다. 블루-레이 디스크에서, 유저 데이터 방향 Q 의 데이터는 1 컬럼에 216 바이트이다. 본 예시적인 실시형태에서는, 216 바이트가 36 부분으로 나누어져서 (버스트 전송 사이즈 m = 6 바이트) 각각 6 바이트의 버스트 전송을 수행한다. The operation of
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
블루-레이 디스크에서, 우수 섹터의 최종 데이터 다음에 부가되는 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
버스트-전송 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
치환 버퍼 (38) 는 2 이상의 레코딩 영역을 갖고, 그 각각은 버스트 전송 사이즈 m×1 레코딩 프레임 (304 바이트) 의 사이즈를 갖는다. 전술한 바와 같 이, 경로 S2 의 1 RUB 에 대응하는 유저 데이터 (데이터 블록) 에 대한 프로세싱을 수행하기 위해, 하나의 레코딩 영역에 라이팅된 전송 블록을 리딩하고, 다른 레코딩 영역에 전송 블록을 라이팅한다. 레코딩 영역은 2 이상의 플레인을 가질 수도 있다. The
결과적으로, 레코딩 데이터로서 유저 데이터를 출력하는 프로세싱에서, 레코딩 장치 (1) 는, EDC 를 유저 데이터에 부가하고, 유저 데이터 방향 Q 의 EDC-부가 데이터를 스크램블하고, 스크램블 데이터를 다시 데이터 버퍼에 라이팅하고, 그 다음 그 데이터를 다시 레코딩 프레임 방향 P 로 리딩할 필요가 없다. 이는 데이터 버퍼 (2) 로서 SRAM 과 같은 고속 랜덤 액세스가 가능한 비싼 메모리를 사용하지 않고서도 레코딩 데이터의 고속 전송을 가능하게 한다. 또한, 경로 1 에서 발생하는 데이터 버퍼 (2) 에 대한 액세스가 전술한 바와 같이 감소하기 때문에, 전력 소모의 감소 및 고속 인코딩을 달성하는 광 레코딩 디스크 인코딩 디바이스 또는 레코딩 장치를 제공하는 것이 가능하다. As a result, in the processing of outputting user data as recording data, the
제 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
따라서, 경로 2 에서, 채널 CH2 로부터의 유저 데이터는 EDC 생성기 (34) 와 스크램블러 (96) 에도 또한 제공된다. 스크램블러 (96) 는 스크램블값 생성기 (97) 로부터 입력 유저 데이터에 대응하는 스크램블값을 수신하고, 그 데이터를 스크램블하고, 그 스크램블된 유저 데이터를 치환 버퍼 (99) 에 제공한다. 스크램블된 유저 데이터는 ECC 생성기 (39) 에도 또한 제공된다. Thus, in
EDC 생성기 (34) 에서 생성된 EDC 는 본 실시형태에서 부가된 스크램블러 (98) 에 제공된다. 스크램블러 (98) 는 EDC 에 대해 스크램블링을 수행한다. 스크램블러 (98) 는 스크램블값 생성기 (97) 로부터 EDC 에 대응하는 스크램블값을 수신하고, EDC 를 스크램블하고, 그 다음, 그 스크램블된 EDC 를 통합 섹션 (95) 및 ECC 생성기 (39) 에 제공한다. The EDC generated by the
치환 버퍼 (99) 는 수신된 스크램블된 유저 데이터를 통합 섹션 (95) 에 제공한다. 통합 섹션 (95) 은 도 4 에 나타낸 인코더 (4) 의 통합 섹션 (35) 과는 달리, 치환 버퍼 (99) 로부터 스크램블된 유저 데이터를 수신하고, 스크램블러 (98) 로부터 스크램블된 EDC 를 수신하여, 이들 데이터를 통합하고, 이를 레코딩 데이터로서 출력한다. The
ECC 생성기 (39) 는 치환 버퍼 (99) 로부터 스크램블된 유저 데이터를 수신하고, EDC 를 부가하는 적절한 타이밍에서 스크램블러 (98) 로부터 스크램블된 EDC 를 또한 수신하며, 그에 의해 32 섹터의 ECC 를 생성한다. 생성된 ECC 는 ECC 버퍼 (40) 를 통해 출력된다. The
전술한 제 1 실시형태에 따른 인코더 (4) 와 마찬가지로, 본 실시형태의 인코더 (84) 는 우수 섹터의 후반부의 유저 데이터를 수신하고, 경로 1 의 EDC 중간값을 생성하며, 그 다음, 우수 섹터에 대해서는 EDC 중간값을 이용하여 경로 2 의 EDC 를 생성하고, 기수 섹터에 대해서는 유저 데이터와 예상값으로부터 EDC 를 직접 산출한다. 그로 인해 데이터 버퍼 (3) 로부터 리딩되는 유저 데이터는 상기 참조에 비해 약 1/4 정도로 감소되고, 따라서, 제 1 실시형태와 동일하게 데이터 버퍼에 대한 액세스의 감소라는 이점을 가진다. Like the
인코더 (4) 는 EDC-부가 데이터를 스크램블하지만, 스크램블러 (84) 는 EDC 를 부가하기 전에 데이터를 스크램블하고, 그 다음, 스크램블된 EDC 를 스크램블된 유저 데이터에 부가한다. 이는 산출의 타이밍과 EDC 부가를 유연하게 하는 것을 가능하게 한다.
본 발명은 전술한 실시형태에 한정되지 아니하며, 본 발명의 범위에서 일탈함이 없이 다양한 방식으로 변경될 수도 있다. 예를 들어, 전술한 실시형태는 하드웨어 구성을 설명하고 있지만, 본 발명은 거기에 한정되지 않고, 주어진 프로세싱은 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)
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)
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 |
-
2006
- 2006-08-04 KR KR1020060073966A patent/KR100784740B1/en active IP Right Grant
Patent Citations (5)
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 | |
US7137045B2 (en) | Decoding method and apparatus therefor | |
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 | |
JP2002222524A (en) | Optical disk device, and data randomizing method for the same |
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 |