KR20100040444A - Method of distributively recording and reading data on and from optical disc using error correction codes - Google Patents

Method of distributively recording and reading data on and from optical disc using error correction codes Download PDF

Info

Publication number
KR20100040444A
KR20100040444A KR1020080099552A KR20080099552A KR20100040444A KR 20100040444 A KR20100040444 A KR 20100040444A KR 1020080099552 A KR1020080099552 A KR 1020080099552A KR 20080099552 A KR20080099552 A KR 20080099552A KR 20100040444 A KR20100040444 A KR 20100040444A
Authority
KR
South Korea
Prior art keywords
blocks
data
codeword
size
block
Prior art date
Application number
KR1020080099552A
Other languages
Korean (ko)
Other versions
KR100988325B1 (en
Inventor
김태웅
박찬익
류준길
Original Assignee
포항공과대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 포항공과대학교 산학협력단 filed Critical 포항공과대학교 산학협력단
Priority to KR1020080099552A priority Critical patent/KR100988325B1/en
Publication of KR20100040444A publication Critical patent/KR20100040444A/en
Application granted granted Critical
Publication of KR100988325B1 publication Critical patent/KR100988325B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1806Pulse code modulation systems for audio signals
    • G11B20/1809Pulse code modulation systems for audio signals by interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/10629Data buffering arrangements, e.g. recording or playback buffers the buffer having a specific structure
    • G11B2020/10657Cache memories for random data access, e.g. buffers wherein the data output is controlled by a priority parameter other than retention time
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1853Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a product code which has inner and outer parity symbols
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers
    • G11B2220/25Disc-shaped record carriers characterised in that the disc is based on a specific recording technology
    • G11B2220/2537Optical discs

Abstract

PURPOSE: A distributed data recording method for an optical medium using ECC is provided to restore damaged data with further stored codeword if unrecoverable data is damaged. CONSTITUTION: A distributed data recording method for an optical medium comprises the following steps. The information on recoverable damage levels are input by a user. Codewords are generated applying ECC(error correction code) to the original data to be stored in an optical disc. When the generated codewords are actually written to the disc, the sequence of blocks is changed in order to enable blocks dependent on the same codeword to be distributed to a wide area and not consecutively arranged.

Description

광학 미디어 상에 오류정정부호를 이용한 데이터의 분산 기록 및 재생 방법{Method of distributively recording and reading data on and from optical disc using error correction codes}Method of distributively recording and reading data on and from optical disc using error correction codes}

본 발명은 물리적인 손상을 입기 쉬운 광학 디스크 (예, CD-ROM, DVD, Blu-ray 등)에 데이터를 안전하게 저장하기 위해서 요구되는 신뢰도를 제공하는 방법에 관한 것으로, 보다 상세하게는 광학 미디어 상에 오류정정부호를 이용한 데이터의 분산 기록 및 재생 방법에 관한 것이다. The present invention relates to a method for providing the reliability required for securely storing data on physically susceptible optical discs (e.g., CD-ROM, DVD, Blu-ray, etc.), and more particularly on optical media. The present invention relates to a distributed recording and reproducing method of data using an error correcting code.

광학 디스크는 하드디스크와는 달리 데이터가 저장되는 원반이 외부에 직접 노출되어 있다. 따라서 긁힘이나 외부의 충격, 오염으로 인해 내부 데이터의 손실이 쉽게 발생할 수 있다. 이를 방지하기 위해 광학 디스크는 자체적으로 오류 정정 부호(ECC : Error-Correcting Code)를 이용하고 있다. Unlike a hard disk, an optical disk has a disk on which data is stored directly exposed to the outside. Therefore, internal data can be easily lost due to scratches, external shocks or contamination. To prevent this, the optical disc uses an error-correcting code (ECC) on its own.

광학 디스크 내에서 데이터가 기록될 시 하나의 섹터 또는 몇 개의 섹터 단위로 오류 정정 부호 알고리즘을 통해 ECC 블록을 생성한다. 이 블록 내에는 원본 데이터 이외에 패리티 데이터가 추가된다. 이러한 패리티 데이터는 원본 데이터가 일부 손실되거나 변경되었을 경우 이를 복구하는 데 사용된다. 광학 디스크에 실제 로 ECC 블록들을 쓸 때 디스크 안쪽부터 회전을 하며 나선 방향으로 ECC 블록을 하나씩 써나간다. 동심원 형태로 데이터를 기록하는 하드 디스크와 달리 나선 형태로 연속적으로 데이터를 배치한다. 그러므로 하드 디스크에서 사용하는 트랙의 정의(데이터를 기록하는 하나의 동심원)와 달리 광학 디스크에서의 트랙은 나선으로 360도 회전을 하나의 트랙으로 정의한다. When data is recorded in the optical disk, an ECC block is generated through an error correction code algorithm in units of one sector or several sectors. In this block, parity data is added in addition to the original data. This parity data is used to recover if some of the original data is lost or changed. When the ECC blocks are actually written on the optical disc, they rotate from the inside of the disc and write the ECC blocks one by one in the helical direction. Unlike hard disks that record data in the form of concentric circles, data is continuously arranged in a spiral form. Therefore, unlike the definition of a track used in a hard disk (one concentric circle for recording data), a track in an optical disk defines a 360-degree rotation in a spiral as a track.

광학 디스크는 스크래치의 방향에 따라 데이터 손실 정도가 차이를 갖는다. 트랙의 진행방향과 수직 방향의 스크래치는 여러 ECC 블록에 걸쳐서 손상을 입히지만 각 ECC 블록에 입히는 손상은 스크래치의 두께 만큼이며 이는 비교적 적은 양의 데이터 손실을 야기하므로 디스크 자체의 ECC 알고리즘으로 복구하게 된다. 그러나 트랙의 진행방향과 일치하는 스크래치는 각 ECC 블록에 큰 비율의 데이터를 손실 시켜 디스크 자체의 ECC 알고리즘으로 복구가 불가능해져 실제적으로 데이터의 손실을 야기한다. 그리고 스크래치의 두께가 굵어짐에 따라 여러 트랙에 걸쳐 영향을 주게 되므로 더 많은 양의 데이터 손실을 가져오게 된다. 반면 일정 길이 이상의 직선 스크래치의 외곽 부분은 트랙 방향과 엇갈리게 되므로 길이에 의한 데이터 손실양은 큰 상관관계를 보이지 않는다. Optical discs differ in the degree of data loss depending on the direction of the scratch. Scratches in the direction of the track and in the vertical direction cause damage across several ECC blocks, but damage to each ECC block is as much as the thickness of the scratch, which causes relatively little data loss and is recovered by the disk's own ECC algorithm. . However, scratches that coincide with the track's direction of movement lose a large proportion of data in each ECC block, making it impossible to recover by the disc's own ECC algorithm, which actually causes data loss. As the thickness of the scratch increases, it affects multiple tracks, resulting in a greater amount of data loss. On the other hand, since the outer portion of the straight scratch over a certain length is staggered with the track direction, the amount of data loss due to the length does not show much correlation.

즉, 트랙의 진행 방향과 일치하지 않는 스크래치에는 강하나 트랙 방향의 스크래치에는 취약한 특징을 갖으며 트랙 방향의 스크래치는 CD는 약 2.4 mm, DVD는 약 6 mm, Blu-ray Disc는 약 7 mm 길이 이내의 표면 손상이 발생한 경우에만 데이터 복원이 가능하고 그 이상의 표면 손상의 경우에는 데이터 손실이 발생할 수 있다. In other words, it is strong against scratches that do not coincide with the track direction, but vulnerable to scratches in the track direction.Scratch in the track direction is about 2.4 mm for CD, about 6 mm for DVD, and about 7 mm for Blu-ray Disc. Data can only be restored if surface damage occurs. In the case of more surface damage, data loss can occur.

본 발명은 원본 데이터에 오류 정정 부호(ErrorCorrection Code:ECC)를 사용하여 중복 데이터가 포함된 코드워드를 생성하고 이를 광학 디스크 전체에 분산시켜 저장함으로써, 광학디스크 자체 표준으로 사용하는 ECC 에 의해 복구가 불가능한 데이터 손상 시 추가로 저장한 코드워드의 부분으로 나머지 데이터를 복원 가능하게 하는 광학 미디어 상에 오류정정부호를 이용한 데이터의 분산 기록 및 재생 방법을 제공하는 것으로, 이 때 중복데이터 생성량은 사용자의 요구에 따라 조절되게 하며, 중복데이터 분산 형태는 규칙성을 가지면서도 가능한 광범위하게 배치되도록 한다. The present invention uses an error correction code (ECC) in the original data to generate codewords containing redundant data, and to distribute them throughout the optical disc, thereby storing them by ECC using the optical disc itself as a standard. It provides distributed recording and reproducing method of data using error correction code on optical media that enables restoring the remaining data as part of additionally stored codeword in case of impossible data damage. The distribution form of redundant data can be arranged as widely as possible with regularity.

본 발명은 상술한 기술적 과제를 달성하기 위하여, 광학 미디어 상에 오류정정부호를 이용한 데이터의 분산 기록 방법에 있어서, In order to achieve the above technical problem, the present invention provides a distributed recording method of data using an error correcting code on an optical medium.

사용자로부터 어느 정도의 손상까지 복구가 가능하도록 할 것인지 입력받고 광학 디스크에 저장할 원본 데이터에 오류 정정 부호를 사용하여 코드워드를 생성하는 코딩 단계(S1); 및 A coding step (S1) of inputting an amount of damage to be repaired by a user and generating a codeword using an error correction code on original data to be stored on an optical disc; And

생성된 코드워드들이 실제로 디스크에 쓰일 시 같은 코드워드에 종속되는 블록들을 연속적으로 배치하지 않고 넓은 영역에 분산시킬 수 있도록 블록의 순서를 바꾸어 주는 분산 단계(S2)를 포함하는 광학 미디어 상에 데이터의 분산 기록 방법을 제공한다. When the generated codewords are actually written to the disk, the dispersion of the data on the optical medium includes a dispersing step (S2) to change the order of the blocks so that the blocks dependent on the same codeword can be distributed over a wide area without successive arrangements. A distributed recording method is provided.

바람직하게는 상기 오류 정정 부호로는 리드 솔로몬 부호(Reed-Solomon Codes), 토네이도 부호(Tornado Codes), LDPC 부호(LDPC Codes)와 같이 다양한 오류 정정 부호 중의 하나가 적용이 가능하다.Preferably, one of various error correction codes such as Reed-Solomon Codes, Tornado Codes, and LDPC Codes may be used as the error correction code.

바람직하기로는 상기 코딩단계와 상기 분산단계를 실행하기 전에 코드워드가 몇 개의 블록으로 구성되는지와 몇 개의 패리티 블록을 생성할 것인지를 결정하는 단계(S2.5)를 포함하여, 이 결정된 수치에 따라 견딜 수 있는 스크래치의 두께와 개수가 정해져 사용자가 요구하는 신뢰도를 충족시킬 수 있음을 특징으로 한다. Preferably, prior to executing the coding step and the distribution step, including determining how many blocks of codewords are to be generated and how many parity blocks are to be generated (S2.5). The thickness and the number of scratches that can withstand are determined are characterized in that it can satisfy the reliability required by the user.

바람직하기로는 상기 코드워드가 몇 개의 블록으로 구성되는지와 몇 개의 패리티 블록을 생성할 것인지를 결정하는 단계(S2.5)는 사용자가 광학 미디어의 복구 가능 손상 두께를 입력하는 단계(S39); 코드워드의 크기를 계산하는 단계(S40); 사용자가 복구 가능 손상 개수를 입력하는 단계(S41); 생성될 패리티 블록의 개수를 계산하는 단계(S42); 패리티 블록 개수가 코드워드 크기 보다 큰지를 판단하는 단계(S43); 패리티 블록 개수가 코드워드 크기 보다 작으면 계산된 패리티 블록 개수를 적용했을 시 생성될 코딩 후 이미지의 크기를 계산하는 단계(S44); 코딩 후 이미지의 크기가 디스크의 용량보다 큰지를 판단하여 작으면 종료하는 단계(S45); 및단계 S43에서 패리티 블록 개수가 코드워드 크기 보다 크거나, 단계 S45에서 코딩 후 이미지의 크기가 디스크의 용량보다 크면 단계 S41로 진행하여 사용자가 복구 가능 손상 개수를 입력하는 단계(S41)로부터 코딩 후 이미지의 크기가 디스크의 용량보다 큰지를 판단하여 작으면 종료하는 단계(S45)까지를 반복 수행하는 것을 포함하는 것을 특징으로 한다. Preferably the step of determining how many blocks the codeword consists of and how many parity blocks to generate (S2.5) comprises the steps of: a user inputting a repairable damage thickness of the optical media (S39); Calculating a size of a codeword (S40); Inputting a number of recoverable damages by a user (S41); Calculating a number of parity blocks to be generated (S42); Determining whether the number of parity blocks is larger than a codeword size (S43); Calculating a size of an image after coding to be generated when the calculated number of parity blocks is applied when the number of parity blocks is smaller than a codeword size (S44); Determining whether the size of the image after coding is greater than the capacity of the disk, and ending if small (S45); And if the number of parity blocks is larger than the codeword size in step S43 or the size of the image after coding in step S45 is larger than the capacity of the disk, the process proceeds to step S41 after the coding from step S41 in which the user inputs the number of repairable damages. Determining whether the size of the image is larger than the capacity of the disk, and if the size is small, repeating the step (S45).

본 발명의 다른 양태에 의하면, 광학 미디어 상에 오류정정부호를 이용하여 분산 기록된 데이터의 재생 방법에 있어서, According to another aspect of the present invention, in the reproduction method of data recorded by using an error correction code on optical media,

요청 받은 블록 번호의 물리적인 블록 번호로 변환하는 단계(S3); Converting the requested block number into a physical block number (S3);

물리적 블록 번호에 해당하는 데이터를 읽어들이는 단계(S3.5); Reading data corresponding to a physical block number (S3.5);

블록 읽기 에러가 발생하는가를 판단하는 단계(S4); Determining whether a block read error occurs (S4);

블록 읽기 에러가 발생하면 블록이 해당된 코드워드의 나머지 유효한 블록들을 읽어들이는 단계(S5); If a block read error occurs, the block reading remaining valid blocks of the corresponding codeword (S5);

오류 정정 부호의 복구 알고리즘을 이용하여 세스먼트를 복구하는 단계(S6); Recovering a segment using a recovery algorithm of an error correcting code (S6);

복구된 세그먼트에서 요청이 들어온 블록을 상위 계층에 반환하고 종료하는 단계(S7); 및 Returning the block in which the request is received from the recovered segment to a higher layer and ending (S7); And

단계 S4에서 블록 읽기 에러가 발생하지 않으면 읽어들인 블록을 상위계층에 반환하고 종료하는 단계(S8)를 포함하는 데이터의 재생 방법을 제공한다. If a block read error does not occur in step S4, a method of reproducing data is provided, which includes the step of returning the read block to a higher layer and ending (S8).

본 발명에서 데이터를 보호하기 위해 오류 정정 부호를 사용한다. 오류 정정 부호는 일부 데이터를 손실했을 시 패리티 데이터를 이용하여 원본 데이터를 복구하게 된다. In the present invention, error correction codes are used to protect data. The error correction code recovers original data using parity data when some data is lost.

패리티 데이터를 생성할 때 사용된 원본 데이터와 패리티 데이터를 합쳐 코드워드라 한다. 패리티 데이터 생성이나 손상된 데이터 복구는 코드워드 단위로 작업이 이루어지게 된다. The original data and the parity data used when generating the parity data are called a codeword. Parity data generation or damaged data recovery is performed in units of codewords.

이러한 오류 정정 부호를 사용하게 되면 하나의 코드워드 내에서 일정 부분 까지 데이터를 잃어도 복구 알고리즘을 통해 복구가 가능해진다. 코드워드를 생성 할 시 패리티 데이터를 많이 생성할수록 코드워드 내의 데이터 손상이 더 많이 발생하더라도 잔존하는 원본 데이터 및 패리티 데이터를 이용하여 복구가 가능해진다. If the error correction code is used, the recovery algorithm can recover even if some data is lost in one codeword. The more parity data is generated when the codeword is generated, the more the data damage in the codeword occurs, the more restoring is possible by using the remaining original data and parity data.

본 발명에서 제시한 방법을 적용으로 하드웨어적으로 구현된 신뢰도 외에 사용자가 요구하는 추가적인 신뢰도를 제공함으로써 광학 디스크에 데이터를 안정적으로 보관할 수 있다.By applying the method proposed in the present invention, it is possible to stably store data on the optical disc by providing additional reliability required by the user in addition to the reliability implemented in hardware.

이하, 본 발명의 세부적인 설명은 첨부 도면을 참조하여 설명한다. Hereinafter, the detailed description of the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 프레임워크를 나타낸 도면이다. 생성된 파일 시스템 이미지는 크게 두 단계를 거쳐 광학 디스크에 저장된다. 1 is a diagram illustrating a framework of the present invention. The file system image created is largely stored in an optical disk in two steps.

우선, 화일 및 디렉토리를 받아서 화일 시스템 생성기에서 화일 시스템 이미지를 생성하여, 오류 정정 부호(리드솔로몬부호, 토네이도 부호, LDPC 부호 등)를 사용하여 부호화 이미지를 생성한다. First, a file system image is generated by receiving a file and a directory, and an encoded image is generated using an error correction code (Lead Solomon code, tornado code, LDPC code, etc.).

이를 위하여, 첫 번째는 사용자로부터 어느 정도의 손상까지 복구가 가능하도록 할 것인지 입력받고 광학 디스크에 저장할 원본 데이터에 오류 정정 부호를 사용하여 코드워드를 생성하는 코딩 단계(S1)이다. 두 번째는 생성된 코드워드들이 실제로 디스크에 쓰일 시 같은 코드워드에 종속되는 블록들을 연속적으로 배치하지 않고 넓은 영역에 분산시킬 수 있도록 블록의 순서를 바꾸어 주는 분산 단계이다(S2). To this end, the first step is a coding step (S1) of generating a codeword by using an error correction code on the original data to be stored on the optical disk and receiving a degree of damage from the user. The second step is a distribution step of changing the order of the blocks so that the generated codewords can be distributed over a wide area without successively arranging the blocks that depend on the same codeword when they are actually written to the disk (S2).

광학 디스크는 데이터 복구와 손실이 ECC 블록 단위로 발생하므로 코딩 단계와 분산 단계에서 사용하는 기본 데이터 단위로 디스크의 ECC 블록 크기를 사용한다. 예를 들어 DVD의 ECC 블록은 32KB, Blu-ray 디스크(Disc)는 64KB의 사용자 데이터를 기록하므로 코딩과 분산은 각각 32KB, 64KB 단위를 사용하게 된다. Optical discs use the ECC block size of the disc as the basic data unit used in the coding and distribution stages because data recovery and loss occurs in units of ECC blocks. For example, an ECC block of a DVD records 32KB and a Blu-ray disc (Disc) records user data of 64KB, so that coding and distribution use 32KB and 64KB units, respectively.

코딩 단계(S1)에서 파일 시스템 이미지는 도 3a와 같이 여러 개의 블록으로 구성된 세그먼트(segment) 단위로 오류 정정 부호에 의해 처리된다. 코딩 계층에서는 세그먼트를 하나씩 읽어 들이고 오류 정정 부호를 적용해서 패리티 데이터를 생성한다. 생성된 패리티 데이터를 세그먼트 뒤에 붙여 코드워드를 생성한다(도3b). In the coding step S1, the file system image is processed by an error correction code in units of segments composed of several blocks as shown in FIG. 3A. The coding layer reads the segments one by one and applies parity data to generate parity data. The generated parity data is pasted after the segment to generate a codeword (Fig. 3B).

본 발명에서는 특정 오류 정정 부호가 아니라 리드 솔로몬 부호(Reed-Solomon Codes), 토네이도 부호(Tornado Codes), LDPC 부호(LDPC Codes)와 같이 다양한 오류 정정 부호의 적용이 가능하다. In the present invention, various error correction codes such as Reed-Solomon Codes, Tornado Codes, and LDPC Codes may be applied instead of specific error correction codes.

도3c는 분산 계층에서 여러 개의 코드워드들로 분산 이미지를 구성하는 것을 보여주는 도면이다. 디스크 표면 손상은 직접 손상된 블록뿐만 아니라 동일 트랙 내의 다른 블록의 접근에 영향을 주어 트랙 전체의 데이터 손실을 야기할 수 있다. FIG. 3C is a diagram illustrating a distributed image composed of several codewords in a distributed layer. Disk surface damage can affect the access of not only directly damaged blocks but also other blocks within the same track, resulting in data loss of the entire track.

하나의 코드워드에 속하는 블록들은 같은 트랙 또는 인접 트랙에 배치하게 되면 하나의 스크래치로 함께 잃게 되므로 이를 막기 위해 블록을 일정 트랙 간격 이상을 두고 배치하여야 한다. 이를 위해 분산 계층에서는 g개의 코드워드들을 서로 하나의 블록 씩 인터리브(interleave)하게 된다. 이렇게 각 코드워드의 블록들을 인터리브시킴으로써 하나의 코드워드에 속하는 블록들은 g개의 블록의 간격을 두며 배치되어 디스크에 써질 때 일부 영역에 편중되지 않고 여러 트랙에 넓은 영 역으로 분산되게 된다. 최종적으로 생성된 분산 이미지는 광학 디스크 기록 툴을 사용하여 디스크에 기록한다. Blocks belonging to one codeword are lost together as one scratch when placed on the same track or adjacent tracks. Therefore, blocks must be arranged at a predetermined track interval to prevent this. To this end, the distribution layer interleaves g codewords one block at a time. By interleaving the blocks of each codeword, the blocks belonging to one codeword are arranged at intervals of g blocks so that they are distributed to a wide area in several tracks without being biased in some areas when they are written to the disc. The finally generated distributed image is recorded on a disc using an optical disc recording tool.

도 4는 코딩과 분산을 실행하기 전에 코드워드가 몇 개의 블록으로 구성되는지와 몇 개의 패리티 블록을 생성할 것인지를 결정하는 과정을 보여주는 도면이다. 이 수치에 따라 견딜 수 있는 스크래치의 두께와 개수가 정해지므로 사용자가 요구하는 신뢰도를 충족시킬 수 있도록 이 수치들을 결정해야 한다. FIG. 4 is a diagram illustrating a process of determining how many blocks a codeword consists of and how many parity blocks to generate before executing coding and distribution. This number determines the thickness and number of scratches that can be tolerated, so you must determine these numbers to meet the reliability you require.

코드워드를 구성할 블록의 개수는 블록들이 서로 얼마나 가까이 위치하게 되는지와 연관되어 있다. 코드워드를 많은 블록의 개수로 구성하게 된다면 블록들이 디스크 내에 조밀하게 배치되어 디스크 표면 손상 시 하나의 코드워드에 속하는 블록을 여러 개 잃을 수 있게 된다. 따라서 사용자로부터 어느 정도의 두께 손상(스크래치)까지 견디도록 할지 입력받고(S39) 이를 이용해 코드워드의 크기를 결정한다(S40). 하나의 코드워드에 속하는 블록들은 분산 계층에 의해 일정 블록의 간격을 두면서 분산 이미지에 배치가 된다. 그러나 이를 디스크에 실제로 쓰게 되면 안쪽부터 나선형으로 회전하며 데이터를 기록하는 디스크의 구조에 의해 도 6과 같은 형태로 블록이 배치되게 된다. 정해진 블록 간격을 띄우더라도 외곽으로 갈수록 트랙의 둘레가 길어지게 되므로 적은 수의 트랙을 건너뛰며 써지게 된다. 즉, 트랙간 거리 d0 내지 d3를 비교할 때 가장 외곽에 배치되는 두 개의 섹터가 위치하는 트랙이 가장 가까운 트랙 간 거리를 갖게 된다. 이 두 개의 트랙 간의 간격을 기준으로 사용자의 요구에 맞도록 블록 간 간격을 설정하게 되면 안쪽 트랙의 블록들은 그 이상의 트랙 간격을 유지하며 배치된다. The number of blocks that make up the codeword is related to how close the blocks are to each other. If the codeword is composed of a large number of blocks, the blocks are densely arranged in the disk, so that when the surface of the disk is damaged, several blocks belonging to one codeword may be lost. Therefore, the user receives an input of how much to withstand the damage (scratch) (S39) and determines the size of the codeword using this (S40). Blocks belonging to one codeword are arranged in a distributed image by spaced apart by a predetermined block by the distribution layer. However, when this is actually written on the disk, blocks are arranged in the form as shown in FIG. 6 by the structure of the disk which rotates from the inside and records data. Even with a certain block spacing, the perimeter of the track becomes longer as it goes to the outside, so that fewer tracks are written. That is, when comparing the distance between tracks d 0 to d 3 , the track in which the two outermost sectors are located has the distance between the nearest tracks. If the interval between blocks is set to meet the user's needs based on the interval between these two tracks, the blocks of the inner track are arranged to maintain more track intervals.

이 두 개의 트랙 간의 간격이 사용자가 요구한 두께 이상이 되도록 하는 블록 간 간격을 사용한다. 이 블록 간 간격을 이용하여 아래와 같은 방법으로 코드워드를 구성하는 블록의 개수를 구할 수 있다. 디스크의 전체 용량에 일정 간격을 띄우면서 기록 시 몇 개의 블록을 기록할 수 있는지 계산해 내는 것이다(S40). 코드워드를 구성하는 블록의 개수는 다음 식으로 결정된다. Inter-block gaps are used so that the gap between these two tracks is more than the thickness required by the user. Using the interval between blocks, the number of blocks constituting the codeword can be obtained by the following method. It calculates how many blocks can be written during recording while leaving a certain space over the total capacity of the disk (S40). The number of blocks constituting the codeword is determined by the following equation.

코드워드를 구성하는 블록의 개수=디스크 전체의 블록 수/블록간 간격Number of blocks constituting codeword = total number of blocks / interblock interval

상기와 같이, 코드워드의 크기가 정해졌다면 사용자가 복구가능 손상 개수를 입력하여(S41), 그 중 몇 개의 블록을 패리티 블록으로 사용할지 결정해야 한다. 많은 패리티 블록을 사용하면 여러 개의 블록이 손상되더라도 복구가 가능해진다. 이 수치를 결정하기 위해 사용자로부터 몇 개의 손상(스크래치)을 견딜 수 있도록 할지 입력 받고 이 수치만큼의 장애 허용 개수를 보장해주는 개수의 패리티 블록을 생성한다. 예를 들어 리드솔로몬 부호를 사용하는 경우에는 장애 허용 개수만큼의 패리티 섹터를 생성하게 된다(S42). As described above, if the size of the codeword is determined, the user inputs the number of recoverable damages (S41) to determine how many of them to use as a parity block. Using many parity blocks allows recovery even if several blocks are damaged. To determine this number, we input how many damages (scratches) the user can endure, and create a number of parity blocks that guarantees the number of fault tolerances. For example, when using the Reed Solomon code, as many parity sectors as the number of fault tolerances are generated (S42).

계산 결과 패리티 블록의 크기가 코드워드의 크기보다 커지는 경우에는 사용자로부터 다시 입력을 받아 계산한다(S43). 또한 계산된 패리티 블록의 개수를 적용하여 생성될 코딩된 이미지의 크기를 계산해보고(S44) 이것이 디스크의 용량을 넘게 되는 경우에도 사용자로부터 다시 두께를 입력받는다(S45). 생성될 코딩 이미지의 크기는 아래와 같은 방법으로 계산한다. If the size of the parity block is larger than the size of the codeword as a result of the calculation, it is calculated by receiving input from the user again (S43). In addition, the size of the coded image to be generated is calculated by applying the calculated number of parity blocks (S44). When the size exceeds the capacity of the disk, the user receives the thickness again (S45). The size of the coded image to be generated is calculated as follows.

생성될 코드워드의 개수=저장할 데이터의 크기/세그먼트의 크기Number of codewords to be generated = size of data to store / size of segment

생성될 코딩이미지의 크기=생성될 코드워드의 개수×코드워드의 크기 Size of coded image to be generated = number of codewords to be generated x size of codeword

도 5는 디스크로부터 데이터를 읽어 들이는 과정을 나타내는 도면이다. 디스크 상에 써진 데이터는 코딩 계층과 분산 계층을 통해서 블록 순서가 변경되어 저장된다. 그러므로 상위 계층에서 내려오는 특정 블록 번호에 대한 읽기 요청은 대상 블록이 실제로 저장된 물리적인 블록 번호로 변환 되어야한다(S3). 블록 번호 s에 대한 요청이 왔을 시 변환 과정은 다음과 같다. 5 is a diagram illustrating a process of reading data from a disc. The data written on the disk is stored in a block order through the coding layer and the distribution layer. Therefore, the read request for the specific block number coming down from the upper layer should be converted to the physical block number in which the target block is actually stored (S3). When the request for the block number s is received, the conversion process is as follows.

CW=s/(m+k)CW = s / (m + k)

blk=s%(m+k)blk = s% (m + k)

물리적 블록번호=(blk×(m+k))+cw Physical block number = (blk × (m + k)) + cw

여기서, (m+k)는 코드워드의 크기를 블록 수로 표현한 것이다. 물리적 블록 번호를 이용하여 실제로 디스크에서 데이터를 읽어서 상위 계층에 데이터를 넘겨준다. 물리적 블록번호에 해당하는 데이터를 읽어들인다(S3.5). 디스크의 부분적인 손상으로 해당 블록을 읽을 수 없을 경우 복구 작업을 한다(S4). 복구를 위해 해당 블록이 속한 코드워드의 나머지 유효한 블록을 버퍼로 읽어 들인다(S5). 데이터를 저장 시 사용됐던 오류 정정 부호의 복구 알고리즘을 사용하여 코드워드 중 손상된 블록들을 복구한다(S6). 버퍼에서 요청이 있었던 블록을 읽어 상위 계층에 데이터를 넘겨준다. Here, (m + k) represents the size of the codeword in the number of blocks. The physical block number is used to actually read the data from disk and pass the data to the upper layer. Read the data corresponding to the physical block number (S3.5). If the block cannot be read due to partial damage of the disk, recovery is performed (S4). For restoring, the remaining valid block of the codeword to which the corresponding block belongs is read into the buffer (S5). The damaged blocks of the codeword are recovered by using a recovery algorithm of an error correcting code used in storing the data (S6). Read the block from the buffer and pass the data to the upper layer.

도 1은 본 발명의 전체적인 구조를 보여주는 도면이다. 1 is a view showing the overall structure of the present invention.

도 2는 본 발명에 따라 데이터가 디스크에 기록되는 과정을 보여주는 도면이다. 2 is a view showing a process in which data is recorded on a disc according to the present invention.

도 3a는 본 발명에서 사용된 세그먼트의 분할을 보여주는 도면이다. 3A is a diagram showing the division of a segment used in the present invention.

도 3b는 본 발명에서 사용된 코드워드의 구조를 보여주는 도면이다. 3B is a diagram showing the structure of a codeword used in the present invention.

도 3c는 본 발명에서 분산계층의 역할인 코드워드들을 인터리브 시키는 과정을 보여주는 도면이다. 3C is a diagram illustrating a process of interleaving codewords serving as a distribution layer in the present invention.

도 4는 본 발명에서 사용자가 요구하는 신뢰도를 제공하기위해 코드워드의 크기와 생성해야하는 패리티 블록의 양을 결정하는 과정을 보여주는 도면이다. 4 is a diagram illustrating a process of determining the size of a codeword and the amount of parity blocks to be generated in order to provide reliability required by a user in the present invention.

도 5는 본 발명에서 광학 디스크로부터 데이터를 읽는 과정을 보여주는 도면이다. 5 is a view showing a process of reading data from the optical disk in the present invention.

도 6는 하나의 코드워드의 배치의 예를 보여주는 도면이다.6 is a diagram illustrating an example of arrangement of one codeword.

Claims (5)

광학 미디어 상에 오류정정부호를 이용한 데이터의 분산 기록 방법에 있어서, In the distributed recording method of data using error correction code on optical media, 사용자로부터 어느 정도의 손상까지 복구가 가능하도록 할 것인지 입력받고 광학 디스크에 저장할 원본 데이터에 오류 정정 부호를 사용하여 코드워드를 생성하는 코딩 단계(S1); 및 A coding step (S1) of inputting an amount of damage to be repaired by a user and generating a codeword using an error correction code on original data to be stored on an optical disc; And 생성된 코드워드들이 실제로 디스크에 쓰일 시 같은 코드워드에 종속되는 블록들을 연속적으로 배치하지 않고 넓은 영역에 분산시킬 수 있도록 블록의 순서를 바꾸어 주는 분산 단계(S2)를 포함하는 광학 미디어 상에 데이터의 분산 기록 방법.When the generated codewords are actually written to the disk, the dispersion of the data on the optical medium includes a dispersing step (S2) to change the order of the blocks so that the blocks dependent on the same codeword can be distributed over a wide area without successive arrangements. Distributed recording method. 제1항에 있어서, 상기 오류 정정 부호로는 리드 솔로몬 부호(Reed-Solomon Codes), 토네이도 부호(Tornado Codes), LDPC 부호(LDPC Codes)와 같이 다양한 오류 정정 부호 중의 하나가 적용이 가능함을 특징으로 하는 광학 미디어 상에 데이터의 분산 기록 방법. The method of claim 1, wherein the error correction code is one of various error correction codes such as Reed-Solomon Codes, Tornado Codes, and LDPC Codes. Distributed recording method of data on an optical medium. 제1항 또는 제2항에 있어서, 상기 코딩단계와 상기 분산단계를 실행하기 전에 코드워드가 몇 개의 블록으로 구성되는지와 몇 개의 패리티 블록을 생성할 것인지를 결정하는 단계(S2.5)를 포함하여, 이 결정된 수치에 따라 견딜 수 있는 스크 래치의 두께와 개수가 정해져 사용자가 요구하는 신뢰도를 충족시킬 수 있음을 특징으로 하는 광학 미디어 상에 데이터의 분산 기록 방법. The method according to claim 1 or 2, further comprising the step S2.5 of determining how many blocks of codewords and how many parity blocks are to be generated before executing the coding step and the distribution step. And the thickness and number of scratches that can be tolerated are determined according to the determined numerical value to satisfy the reliability required by the user. 제1항 또는 제2항에 있어서, 상기 코드워드가 몇 개의 블록으로 구성되는지와 몇 개의 패리티 블록을 생성할 것인지를 결정하는 단계(S2.5)는 사용자가 광학 미디어의 복구 가능 손상 두께를 입력하는 단계(S39); 코드워드의 크기를 계산하는 단계(S40); 사용자가 복구 가능 손상 개수를 입력하는 단계(S41); 생성될 패리티 블록의 개수를 계산하는 단계(S42); 패리티 블록 개수가 코드워드 크기 보다 큰지를 판단하는 단계(S43); 패리티 블록 개수가 코드워드 크기 보다 작으면 계산된 패리티 블록 개수를 적용했을 시 생성될 코딩 후 이미지의 크기를 계산하는 단계(S44); 코딩 후 이미지의 크기가 디스크의 용량보다 큰지를 판단하여 작으면 종료하는 단계(S45); 및단계 S43에서 패리티 블록 개수가 코드워드 크기 보다 크거나, 단계 S45에서 코딩 후 이미지의 크기가 디스크의 용량보다 크면 단계 S41로 진행하여 사용자가 복구 가능 손상 개수를 입력하는 단계(S41)로부터 코딩 후 이미지의 크기가 디스크의 용량보다 큰지를 판단하여 작으면 종료하는 단계(S45)까지를 반복 수행하는 것을 포함하는 것을 특징으로 하는 광학 미디어 상에 데이터의 분산 기록 방법. The method of claim 1 or 2, wherein the determining of how many blocks the codeword consists of and how many parity blocks to generate is performed by the user inputting a recoverable damage thickness of the optical media. Step S39; Calculating a size of a codeword (S40); Inputting a number of recoverable damages by a user (S41); Calculating a number of parity blocks to be generated (S42); Determining whether the number of parity blocks is larger than a codeword size (S43); Calculating a size of an image after coding to be generated when the calculated number of parity blocks is applied when the number of parity blocks is smaller than a codeword size (S44); Determining whether the size of the image after coding is greater than the capacity of the disk, and ending if small (S45); And if the number of parity blocks is larger than the codeword size in step S43 or the size of the image after coding in step S45 is larger than the capacity of the disk, the process proceeds to step S41 after the coding from step S41 in which the user inputs the number of repairable damages. Determining whether the size of the image is larger than the capacity of the disk, and repeating the step (S45) if the image size is smaller. 광학 미디어 상에 오류정정부호를 이용하여 분산 기록된 데이터의 재생 방법에 있어서, In the reproduction method of data recorded by using error correction code on optical media, 요청 받은 블록 번호의 물리적인 블록 번호로 변환하는 단계(S3); Converting the requested block number into a physical block number (S3); 물리적 블록 번호에 해당하는 데이터를 읽어들이는 단계(S3.5); Reading data corresponding to a physical block number (S3.5); 블록 읽기 에러가 발생하는가를 판단하는 단계(S4); Determining whether a block read error occurs (S4); 블록 읽기 에러가 발생하면 블록이 해당된 코드워드의 나머지 유효한 블록들을 읽어들이는 단계(S5); If a block read error occurs, the block reading remaining valid blocks of the corresponding codeword (S5); 오류 정정 부호의 복구 알고리즘을 이용하여 세스먼트를 복구하는 단계(S6); Recovering a segment using a recovery algorithm of an error correcting code (S6); 복구된 세그먼트에서 요청이 들어온 블록을 상위 계층에 반환하고 종료하는 단계(S7); 및 Returning the block in which the request is received from the recovered segment to a higher layer and ending (S7); And 단계 S4에서 블록 읽기 에러가 발생하지 않으면 읽어들인 블록을 상위계층에 반환하고 종료하는 단계(S8)를 포함하는 데이터의 재생 방법.If a block read error does not occur in step S4, returning the read block to a higher layer and terminating (S8).
KR1020080099552A 2008-10-10 2008-10-10 Method of distributively recording data on optical disc using error correction codes KR100988325B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080099552A KR100988325B1 (en) 2008-10-10 2008-10-10 Method of distributively recording data on optical disc using error correction codes

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080099552A KR100988325B1 (en) 2008-10-10 2008-10-10 Method of distributively recording data on optical disc using error correction codes

Publications (2)

Publication Number Publication Date
KR20100040444A true KR20100040444A (en) 2010-04-20
KR100988325B1 KR100988325B1 (en) 2010-10-18

Family

ID=42216534

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080099552A KR100988325B1 (en) 2008-10-10 2008-10-10 Method of distributively recording data on optical disc using error correction codes

Country Status (1)

Country Link
KR (1) KR100988325B1 (en)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100591973B1 (en) * 2002-11-29 2006-06-22 후지쯔 가부시끼가이샤 Data recording and reproducing apparatus and data recording and reproducing method
KR20080036838A (en) * 2006-10-24 2008-04-29 삼성전자주식회사 Method for correcting error of optical information storing media recording/reproducing apparatus

Also Published As

Publication number Publication date
KR100988325B1 (en) 2010-10-18

Similar Documents

Publication Publication Date Title
US9229813B2 (en) Error correction with on-demand parity sectors in magnetic data storage devices
JP4709485B2 (en) On-drive integrated sector format RAID error correction code system and method
KR100949677B1 (en) Recording method, optical disc, and reproduction apparatus
US8856618B2 (en) Scalable repair block error correction for sequential multiple data blocks in a magnetic data storage device
US9286159B2 (en) Track-band squeezed-sector error correction in magnetic data storage devices
JP4141963B2 (en) Method and apparatus for embedding an additional error correction layer in an error correction code
JP3366318B2 (en) Error Correction Method for High Density Disk
JPH01307057A (en) Method and apparatus for encoding and mapping sector address of magnetic disc
JP4988418B2 (en) Method, program and data storage device for reading / writing data from / to multiple layers of rotating storage medium
KR101300810B1 (en) Method and apparatus for encoding and decoding data, storage medium and storage medium driving system thereof
KR100988325B1 (en) Method of distributively recording data on optical disc using error correction codes
US8937778B1 (en) Methods and apparatus for performing track-level based data coding
KR100691065B1 (en) Method and apparatus for generating error correction codes for data recorded on high density optical medium and correcting error using the codes
KR20220124182A (en) Encoding for data recovery from storage systems
JP2002367296A (en) Error correction encoding method of disk medium, error correction encoding method, disk medium, error correction method and error correction circuit
KR100425294B1 (en) optical information recording medium and data recording apparatus thereon
US20060195758A1 (en) Method of storing information on an optical disc
CN115793966A (en) Holographic disk-oriented data organization method, device and system
JP5142045B2 (en) Disk array device
JP2002197798A (en) Error correcting and encoding method for disk medium, optical disk, error correcting method, error correcting and encoding circuit, and error correcting circuit
KR20040067102A (en) Method for encoding and decoding error correction block in high density optical disc
JP2002117633A (en) Error correction coding method for disk medium, optical disk, error correction method, error correction coding circuit and error correction circuit
O Sullivan et al. Coding for High-Density Storage Systems
JP2002329368A (en) Error correction encoding method for disk medium, error correction encoding circuit, disk medium, error correction method, and error correction circuit
JPH087494A (en) Method of recording error correction code word

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140930

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20151001

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20161004

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20171024

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20181113

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190925

Year of fee payment: 10