이상과 같은 과제를 해결하기 위한 본 발명의 하나의 특징은, 광 기록 정보 저장 매체에 있어서, 상기 매체는 사용자 데이터 영역에서 발생한 결함에 관한 결함 블록을 대체하는 대체 블록 및 상기 결함에 관한 정보가 기록되는 SA/DL 영역을 포함하며, 상기 결함에 관한 정보는 상기 사용자 데이터 영역의 연속적인 위치에서 발생된 결함에 관한 정보를 포함하는 연속 결함 리스트 엔트리를 포함하는 것이다.
상기 연속 결함 리스트 엔트리는 상기 연속적인 위치에서 발생된 결함 블록중 첫 번째 결함 블록에 관한 정보에 대응하는 시작 엔트리와 마지막 결함 블록에 관한 정보에 대응하는 마지막 엔트리로 구성되는 것이 바람직하다.
또한, 상기 시작 엔트리는 상기 첫 번째 결함 블록의 위치 정보와, 상기 첫 번째 결함 블록을 대체하는 대체 블록의 위치 정보를 포함하는 것이 바람직하다.
또한, 상기 마지막 엔트리는 상기 마지막 결함 블록의 위치 정보와, 상기 마지막 결함 블록을 대체하는 대체 블록의 위치 정보를 포함하는 것이 바람직하다.
또한, 상기 결함에 관한 정보는, 상기 연속 결함 리스트 엔트리들의 개수에 관한 정보를 포함하는 것이 바람직하다.
또한, 상기 결함에 관한 정보는, 결함 리스트 엔트리들의 개수에 관한 정보를 더 포함하는 것이 바람직하다.
여기서, 단일 결함 리스트 엔트리들의 개수는 상기 결함 리스트 엔트리들의 개수 - 2 X 연속 결함 리스트 엔트리들의 개수에 의해 계산되는 것이 바람직하다.
또한, 상기 결함에 관한 정보는, 상기 결함 블록의 위치 정보, 상기 대체 블록의 위치 정보 및 상기 결함에 관한 상태 정보로 이루어지는 결함 리스트 엔트리를 포함하는 것이 바람직하다.
상기 상태 정보는, 상기 결함 블록이 대체되었는지 여부를 나타내는 대체 상태 정보와, 상기 결함 블록이 연속적으로 발생한 연속 결함 블록인지 여부를 나타내는 연속결함 정보를 포함하는 것이 바람직하다.
여기서, 상기 결함에 관한 정보는, 상기 결함 블록이 대체되었음을 나타내는 대체 상태 정보를 가지는 연속 결함 리스트 엔트리의 개수에 관한 정보를 더 포함하는 것이 바람직하다.
여기서, 상기 결함에 관한 정보는, 상기 결함 블록이 대체되지 않았음을 나타내는 대체 상태 정보를 가지는 연속 결함 리스트 엔트리의 개수에 관한 정보를 더 포함하는 것이 바람직하다.
본 발명의 다른 특징은, 광 기록 정보 저장 매체에 데이터의 기록/재생을 위한 결함 관리 장치에 있어서, 상기 매체에 사용자 데이터 영역에서 발생한 결함에 관한 결함 블록을 대체하는 대체 블록 및 상기 결함에 관한 정보가 기록되는 SA/DL 영역을 할당하며, 상기 결함에 관한 정보는 상기 사용자 데이터 영역의 연속적인 위치에서 발생된 결함에 관한 정보에 대응하는 연속 결함 리스트 엔트리를 포함하는 결함에 관한 정보를 상기 SA/DL 영역에 기록하도록 제어하는 제어부를 포함하는 것이다.
본 발명의 또다른 특징은, 광 기록 정보 저장 매체에 데이터의 기록/재생을 위한 결함 관리 방법에 있어서, 상기 매체에 사용자 데이터 영역에서 발생한 결함에 관한 결함 블록을 대체하는 대체 블록 및 상기 결함에 관한 정보가 기록되는 SA/DL 영역을 할당하는 단계와, 상기 사용자 데이터 영역의 연속적인 위치에서 발생된 결함에 관한 정보에 대응하는 연속 결함 리스트 엔트리를 포함하는 결함에 관한 정보를 상기 SA/DL 영역에 기록하는 단계를 포함하는 것이다.
본 발명의 또다른 특징은, 광 기록 정보 저장 매체에 데이터의 기록/재생을 위한 결함 관리 방법을 수행하는 프로그램이 기록된 컴퓨터 판독가능한 기록매체에 있어서, 상기 결함 관리 방법은, 상기 매체에 사용자 데이터 영역에서 발생한 결함에 관한 결함 블록을 대체하는 대체 블록 및 상기 결함에 관한 정보가 기록되는 SA/DL 영역을 할당하는 단계와, 상기 사용자 데이터 영역의 연속적인 위치에서 발생된 결함에 관한 정보에 대응하는 연속 결함 리스트 엔트리를 포함하는 결함에 관한 정보를 상기 SA/DL 영역에 기록하는 단계를 포함하는 것이다.
이제, 첨부된 도면들을 참조하여 본 발명을 상세히 설명한다.
도 1은 본 발명에 따른 기록/재생 장치의 구성의 개략적인 블록도이다.
도 1을 참조하면, 상기 기록/재생 장치는 기록/독출부(2)와, 제어부(1)를 포함한다.
기록/독출부(2)는 픽업 등을 구비하여 본 발명에 따른 광 기록 정보저장매체인 디스크(4)에 데이터를 기록하고, 기록된 데이터를 독출한다. 제어부(1)는 본 발명에 따른 결함 관리를 수행한다. 본 실시예에서, 제어부(1)는 소정 단위로 데이터를 기록한 다음 기록된 데이터를 검증함으로써 결함이 발생된 부분을 찾아내는 「기록 후 검증 (verify after write) 방식」에 따른다. 제어부(1)는 일 레코딩 오퍼레이션 단위로 사용자 데이터를 기록한 다음 검증하여 결함 영역이 어디에 발생하였는지 검사한다. 제어부(1)는 검사 결과 밝혀진 결함 영역이 어디인지 알려주는 결함 정보를 생성한 다음 생성된 결함 정보를 메모리에 저장해두었다가 소정 분량 모아서 임시 결함 정보로서 디스크에 기록한다.
레코딩 오퍼레이션이란 사용자의 의사, 수행하고자 하는 기록 작업 등에 의해 결정되는 작업 단위로서, 본 실시예에서는 디스크가 기록 장치에 로딩되어 소정 데이터의 기록작업이 수행된 다음 디스크가 꺼내질 때까지를 가리킨다. 일 레코딩 오퍼레이션 동안 기록 후 검증 작업은 적어도 1 회, 통상 복수회 수행된다. 기록 후 검증 작업의 수행 결과 얻어진 임시 결함 정보는 메모리에 일시 저장된다.
사용자가 소정 데이터의 기록작업을 완료한 다음 디스크를 꺼내기 위해 기록장치에 마련된 이젝트(eject) 버튼(도시되지 않음)을 누르면 제어부(1)는 일 레코딩 오퍼레이션이 종료될 것을 예측하게 된다. 레코딩 오퍼레이션이 종료될 것이 예측되면 제어부(1)는 메모리에 저장된 임시 결함 정보를 읽어들여 기록/독출부(2)로 제공하고 이들 정보를 디스크에 기록할 것을 명령한다.
제어부(1)는 시스템 제어기(10)와, 호스트 I/F(20)와, DSP(30)와, RF AMP(40)와, 서보(50)를 구비한다.
기록시, 호스트 I/F(20)는 호스트(3)로부터 소정의 기록 명령을 수신하여 이 를 시스템 제어기(10)로 전송한다. 시스템 제어기(10)는 이러한 호스트 I/F(20)로부터 수신된 기록 명령을 수행하기 위해 DSP(30)와 서보(50)를 제어한다. DSP(30)는 호스트 I/F(20)로부터 받은 기록할 데이터를 에러 정정을 위해 패리티 등 부가 데이터를 첨가하고 ECC 인코딩을 수행하여, 에러 정정 블록인 ECC 블록을 생성한 다음 이를 미리 정해진 방식으로 변조한다. RF AMP(40)는 DSP(30)로부터 출력된 데이터를 RF 신호로 바꾼다. 픽업을 구비한 기록/독출부(2)는 RF AMP(40)로부터 전송된 RF 신호를 디스크(4)에 기록한다. 서보(50)는 시스템 제어기(10)로부터 서보 제어에 필요한 명령을 입력받아 기록/독출부(2)의 픽업을 서보 제어한다.
특히, 본 발명에 따라 시스템 제어기(10)는 본 발명에 따른 결함 관리를 수행하기 위해 결함 관리부(11)와 메모리부(12)를 포함한다. 결함 관리부(11)는 메모리부(12)에 저장된 임시 결함 정보를 읽어들이고 취합하여 본 발명에 따른 결함 리스트를 생성한다. 즉, 읽어들인 결함에 관한 정보 중에 연속 결함 블록에 관한 정보가 있는 경우에는 연속 결함 블록중 첫 번째 결함 블록에 관한 정보에 대응하는 시작 엔트리와 마지막 결함 블록에 관한 정보에 대응하는 마지막 엔트리로 구성된 연속 결함 리스트 엔트리를 생성한다. 따라서, 예를 들어 8개의 블록에 걸쳐 연속적으로 발생된 결함 즉, 8개의 결함 블록이 연속적으로 발생된 경우에도 그 결함 블록 각각에 대해 하나씩 엔트리가 생성되어 총 8개의 엔트리가 생성되는 것이 아니라, 연속적으로 발생된 결함 블록의 맨 처음 블록과 맨 마지막 블록에 대해서만 엔트리를 생성하므로, 2개의 엔트리만 생성하면 된다. 따라서, 엔트리에 소요되는 공간을 절약할 수 있게 된다. 또한, 각 DL 엔트리에는 연속 결함인지 단일 결함인지를 나타내는 연속 결함 정보와, 대체 블록이 있는지 없는지를 나타내는 대체 상태 정보를 포함시켜 DL 엔트리를 생성한다. 그리고, 이와 같은 DL 엔트리들을 포함하는 DL을 생성한다.
재생시, 호스트 I/F(20)는 호스트(3)로부터 재생 명령을 받는다. 시스템 제어기(10)는 재생에 필요한 초기화를 수행한다. 기록/독출부(2)는 디스크(4)에 레이저 빔을 조사하고 디스크(4)로부터 반사된 레이저 빔을 수광하여 얻어진 광 신호를 출력한다. RF AMP(40)는 기록/독출부(2)로부터 출력된 광 신호를 RF 신호로 바꾸고 RF 신호로부터 얻어진 변조된 데이터를 DSP(30)로 제공하는 한편, RF 신호로부터 얻어진 제어를 위한 서보 신호를 서보(50)로 제공한다. DSP(30)는 변조된 데이터를 복조하고 ECC 에러 정정을 거쳐 얻어진 데이터를 출력한다. 한편, 서보(50)는 RF AMP(40)로부터 받은 서보 신호와 시스템 제어기(10)로부터 받은 서보 제어에 필요한 명령을 받아 픽업에 대한 서보 제어를 수행한다. 호스트 I/F(20)는 DSP(30)로부터 받은 데이터를 호스트로 보낸다. 시스템 제어기(10)는 재생 제어를 위해 데이터가 기록된 위치로부터 데이터를 읽어들이도록 서보를 제어한다.
이제부터, 본 발명에 따른 광 기록 정보저장 매체의 구조를 설명한다.
본 발명에 따른 광 기록 정보 저장 매체에 기록되는 디스크 관리 정보(Disc Management Information:DMI)는 디스크 정의 구조(Disc Definition Structure:DDS), 기록 관리 데이터(Recording Management Data:RMD), 결함 리스트(Defect List:DL)로 이루어져 있다. 디스크 관리 정보를 기록하기 위한 디 스크 관리 정보 영역(Disc Management Area:DMA)은 크게 디스크를 사용하는 동안 상기 디스크 관리 정보를 기록하기 위한 임시 디스크 관리 영역(Temporary Disc Management Area:TDMA)과 최종화된 디스크 관리 정보를 기록하기 위한 최종 디스크 관리 영역(Finalized Disc Management Area:FDMA)으로 구성된다.
디스크를 사용하는 동안 디스크 관리 정보를 임시적으로 기록하기 위한 TDMA는 DDS와 RMD를 기록하기 위한 DDS/RMD 영역과 DL을 기록하기 위한 DL 영역을 포함한다.
상기 DDS는 데이터 영역 내에 기록된 데이터 블럭에 결함 발생시 결함 블록을 대체하는 대체 블록과 DL이 기록되는 SA/DL 영역의 위치 정보, DDS/RMD 영역의 위치 정보, DL가 기록된 위치 정보, SA/DL 영역내에서 대체를 위하거나 DL의 업데이트를 위해 사용 가능한 위치 정보, 이전 사용 중 디스크가 정상적으로 이젝트되었는지를 검사하기 위한 일치 플래그(Consistency flag), 기록 방지를 위한 기록 방지 정보 등을 포함한다.
상기 RMD는 디스크에 기록된 데이터의 관리를 위한 정보로서, 시퀀셜 레코딩 모드(Sequential recording mode)에서 각각의 R-zone에 대한 상태를 나타내는 R-zone 엔트리들과 랜덤 레코딩 모드(Random recording mode)를 위해 사용자 영역의 각각의 기록 단위 블럭에 대한 데이터의 기록 유무를 bit값으로 나타낸 비트맵(bitmap)을 포함한다.
이러한 DDS와 RMD를 기록하기 위한 DDS/RMD 영역은 단일 기록층 디스크에서 리드인 또는 리드아웃에 마련되고, 이중 기록층에서 리드인 또는 중간 영역 또는 리드아웃에 마련되어진다. 또한, 디스크 사용을 위한 초기화 시점에 드라이브 제작자나 사용자의 의도에 따라 DDS/RMD의 업데이트 가능 횟수를 증가시키기 위해 데이터 영역의 일부에 DDS/RMD 영역이 할당될 수도 있다.
디스크에 데이터를 더 이상 기록할 수 없다든지 아니면 사용자가 추가적인 데이터의 기록 없이 현재의 디스크 상태를 그대로 유지하고 재생 전용으로만 사용하고 싶을 경우 디스크는 최종화가 이루어지는데, 이 때 최종화된 디스크 관리 정보는 최종 디스크 관리 영역(FDMA)에 기록되어진다.
PCA 영역은 기록 방법(Write Strategy)에 따른 여러 가지 기록 파워로 테스트하여 최적의 기록 파워와 그 기록 방법에 따른 변수들을 찾을 수 있도록 하는 테스트를 위해 마련된 영역이다.
도 2는 본 발명에 따른 단일 기록층 디스크의 디스크 구조도의 일 예를 나타낸다.
도 2를 참조하면, 디스크는 디스크의 반경 방향으로 내주에는 리드인 영역이 있고, 외주에는 리드아웃 영역이 있고, 가운데 부분에 데이터 영역이 마련된다.
리드인 영역은 PCA #0, FDMA #1, FDMA #2, DDS/RMD 영역 #0을 포함하고, 데이터 영역은 사용자 영역과 SA/DL 영역 #0, SA/DL 영역 #1을 포함하며, 리드아웃 영역은 PCA #1, FDMA #3, FDMA #4, DDS/RMD 영역 #1을 포함한다.
도 3은 본 발명에 따른 이중 기록층 디스크의 디스크 구조도의 예를 나타낸다.
도 3을 참조하면, 하나의 기록층 L0에 리드인 영역, 데이터 영역 #0, 중간 영역 #0이 마련되고, 다른 기록층 L1에 중간 영역 #1, 데이터 영역 #1, 리드아웃 영역이 연속적으로 마련된다.
L0 층의 리드인 영역은 PCA #0, FDMA #2, DDS/RMD 영역 #0, FDMA #1을 포함하고, 데이터 영역은 SA/DL 영역 #0, 사용자 영역 #0을 포함하고, 중간 영역 #0은 FDMA #3, DDS/RMD 영역 #2, FDMA #4, PCA #1을 포함한다. L1 층의 중간 영역 #1은 FDMA #3, DDS/RMD 영역 #3, FDMA #4, PCA #3을 포함하고, 데이터 영역 #1은 SA/DL 영역 #1, 사용자 영역 #1을 포함하고, 리드아웃 영역은 PCA #2, FDMA #2, DDS/RMD 영역 #1, FDMA #1을 포함한다.
도 2 및 도 3에 도시된 바와 같이, 사용자 영역에 결함이 발생한 경우 그 결함에 관한 결함 블록을 대체하는 대체 블록이 SA/DL 영역에 기록되고, 또한 그 결함에 관한 정보도 SA/DL 영역에 기록된다. 여기서, 결함에 관한 정보라는 것은 결함 블록의 위치 정보 및 대체 블록의 위치 정보를 포함하며, 특히, 본 발명에 따라 연속 결함에 관한 정보를 포함한다.
도 4는 본 발명에 따른 SA/DL 영역의 데이터 구조도이다.
도 4를 참조하면, SA/DL 영역 #i는 DL #0, 대체 블록 #1, ... 대체 블록 #k, DL #1, 대체 블록 #k+1, ...DL #m을 포함한다.
DL #0은 결함에 관한 정보를 포함하는 결함 리스트로서, 초기화 정보 등을 포함한다.
다음 위치부터는 대체 블록들이 위치하는데, 사용자 영역에 발생된 결함에 관한 결함 블록 #1부터 결함 블록 #k까지를 대체하는 대체 블록 #1부터 대체 블록 #k가 위치되어 있다. 그리고, 여기까지의 결함에 관한 정보 즉, 결함 블록 #1부터 #k, 대체 블록 #1부터 대체 블록 #k까지의 정보를 포함하는 결함 리스트인 DL #1이 기록되어 있다. 그리고, 다음 위치부터는 사용자 영역에 발생된 결함에 관한 결함 블록 #k+1부터 결함 블록 #m까지를 대체하는 대체 블록 #k+1부터 대체 블록 #m이 위치되어 있다.
이와 같이 본 발명에 따른 결함에 관한 정보 즉, 결함 리스트가 기록되는 영역은 결함 블록을 대체하는 대체 블록을 위한 영역과 별도로 구분되어 위치하지 않고, SA/DL 영역이라는 하나의 공간내에 결함 리스트와 대체 블록이 함께 존재한다.
도 5는 도 4에 도시된 DL #i의 세부적인 데이터 구조도이다.
도 5를 참조하면, DL #i(200)는 DL 식별자(210), DL 업데이트 카운터(220), DL 엔트리 개수(230), DL 엔트리 #1(240), DL 엔트리 #2(250)를 포함한다.
DL 식별자(210)는 결함 리스트임을 나타내기 위한 식별자를 의미한다. 즉, 본 발명에 따른 SA/DL 영역에는 결함 리스트와 대체 블록이 혼재하므로, 결함 리스트임을 나타내기 위한 식별자가 요구된다.
DL 업데이트 카운터(220)는 결함 리스트가 업데이트되는 회수를 나타내기 위한 값이다.
DL 엔트리 개수(230)는 결함 리스트에 포함된 엔트리의 총 개수를 나타낸다.
DL 엔트리 #1(240)나 DL 엔트리 #2(250)는 결함에 관한 정보를 가지고 있는 엔트리를 나타낸다. 이러한 DL 엔트리에 들어가는 구체적인 내용물이 도 6에 도시되어 있다.
도 6은 도 5에 도시된 DL 엔트리 #i의 세부적인 데이터 구조도이다.
도 6을 참조하면, DL 엔트리 #i(300)는 상태정보(310)와, 결함블록 위치 정보(320)와, 대체 블록 위치 정보(330)를 포함한다.
상태정보(310)는 해당 DL 엔트리가 나타내는 결함에 관한 상태정보를 의미하고, 결함 블록 위치 정보(320)는 사용자 영역에 기록된 결함 블록의 위치 정보, 예를 들어, 결함 블록의 물리적인 섹터 번호를 나타내며, 대체 블록 위치 정보(330)는 SA/DL 영역에 기록된 대체 블록의 위치 정보, 예를 들어, 대체 블록의 물리적인 섹터 번호를 나타낸다.
상태정보(310)는 1 비트의 대체 상태 정보(311)와 2 비트의 연속 결함 정보(312)를 포함한다.
대체 상태 정보(311)는 사용자 영역에서 발생된 결함 블록에 대해서 대체가 이루어졌는지 아닌지를 나타낸다. 즉, 사용자 영역에서 발생된 결함 블록에 대해서 대체가 이루어져 SA/DL 영역에 대체 블록이 위치하는지, 아니면 결함 블록은 발생했지만 대체는 이루어지지 않아서 SA/DL 영역에 대체 블록이 없는지를 나타낸다.
연속 결함 정보(312)는 이 DL 엔트리가 연속 결함 블럭을 나타내는 엔트리(consecutive DL entry)인지 아닌지 그리고, 연속 결함 블럭을 나타내는 엔트리(이하에서, 연속 결함 리스트 엔트리라 한다) 인 경우 연속 결함 리스트 엔트리의 처음인지 끝인지를 나타낸다.
이러한 연속 결함 블록 및 연속 결함 리스트 엔트리에 대해서 도 7 및 도 8을 참조하여 설명한다.
도 7을 참조하면, ① 내지 ⑦은 각각 기록 후 검증 작업이 수행되는 단위를 가리킨다. 기록 장치는 사용자 데이터를 구간 ① 만큼 기록한 다음 구간 ①의 첫 부분으로 되돌아와서 데이터가 제대로 기록되었는지, 아니면 결함이 발생되었는지 여부를 확인한다. 결함이 발생된 부분이 발견되면 그 부분을 결함 영역으로 지정한다. 이에, 결함 영역인 결함 #1이 지정된다. 또한, 기록 장치는 결함 #1에 기록되었던 데이터를 SA/DL 영역에 다시 기록한다. 결함 #1에 기록된 데이터가 재기록된 부분은 대체 #1이라고 부른다. 다음으로, 기록 장치는 구간 ② 만큼 사용자 데이터를 기록한 다음 다시 구간 ②의 첫 부분으로 되돌아와서 데이터가 제대로 기록되었는지, 아니면 결함이 발생되었는지 여부를 확인한다. 결함이 발생된 부분이 발견되면 그 부분은 결함 #2로 지정된다. 마찬가지 방식으로, 결함 #2에 대응하는 대체 #2가 생성된다. 또한, 구간 ③에서 결함 영역인 결함 #3과 대체 #3이 생성된다. 구간 ④에서는 결함이 발생된 부분이 발견되지 않아 결함 영역이 존재하지 않는다.
구간 ④까지 기록하고 검증한 다음 레코딩 오퍼레이션 #0의 종료가 예측되면(사용자가 이젝트 버튼을 누르거나 레코딩 오퍼레이션에 할당된 사용자 데이터 기록이 완료되면) 기록 장치는 구간 ① 내지 ④까지에서 발생된 결함 #1, #2, #3에 관한 정보를 포함하는 DL #1을 SA/DL 영역에 기록한다.
레코딩 오퍼레이션 #1이 시작되어 기록 장치는 사용자 데이터를 구간 ⑤ 만큼 기록한 다음 구간 ⑤의 첫 부분으로 되돌아와서 데이터가 제대로 기록되었는지, 아니면 결함이 발생되었는지 여부를 확인한다. 결함이 발생된 부분이 발견되면 그 부분을 결함 영역으로 지정한다. 이에, 결함 영역인 결함 #4와 결함 #5가 연속적으로 발생되어 연속된 블록이 결함 블록으로 지정된다. 또한, 기록 장치는 결함 #4, 결함 #5에 기록되었던 데이터를 SA/DL 영역에 다시 기록한다. 다음, 기록 장치는 사용자 데이터를 구간 ⑥ 만큼 기록한 다음 구간 ⑥의 첫 부분으로 되돌아와서 데이터가 제대로 기록되었는지, 아니면 결함이 발생되었는지 여부를 확인한다. 결함 영역인 결함 #6과 결함 #7이 연속적으로 발생되어 연속된 블록이 결함 블록으로 지정된다. 또한, 기록 장치는 결함 #6, 결함 #7에 기록되었던 데이터를 SA/DL 영역에 다시 기록한다. 구간 ⑦에서는 결함이 발생된 부분이 발견되지 않아 결함 영역이 존재하지 않는다. 레코딩 오퍼레이션 #1의 종료가 예측되면 기록 장치는 결함 #4 내지 #7에 관한 정보를 포함하는 DL #2를 SA/DL 영역에 기록한다.
레코딩 오퍼레이션 #1에서 발생한 결함과 같이, 사용자 영역의 연속적인 위치에 발생된 결함에 관한 블록들이 연속 결함 블록을 나타낸다. 연속 결함 블록의 첫 번째 결함 블록은 결함 #4 블록이 되고, 연속 결함 블록의 마지막 결함 블록은 결함 #7 블록이 된다.
이와 같이 사용자 영역의 소정 위치에서 연속적으로 발생된 연속 결함 블록을 대체하는 대체 블록은 SA/DL 영역의 연속적인 위치에 기록된다. 도시된 바와 같이 SA/DL 영역에서, 결함 #4 블록을 대체하는 대체 #4 블록이 마련되고, 연속된 다음 위치에 결함 #5 블록을 대체하는 대체 #5 블록이 마련되고, 연속된 다음 위치에 결함 #6 블록을 대체하는 대체 #6 블록이 마련되고, 연속된 다음 위치에 결함 #7 블록을 대체하는 대체 #7 블록이 마련된다. 연속 결함 블록을 대체하는 대체 블록중 첫 번째 대체 블록은 대체 #4 블록이 되고, 연속 결함 블록을 대체하는 대체 블록중 마지막 대체 블록은 대체 #7 블록이 된다.
이와 같이 연속적인 위치에 발생된 결함에 관한 연속 결함 블록의 경우에, 연속 결함 블록에 포함된 결함 블록들은 모두 연속된 위치에 있다는 특성에 의해, 연속 결함 블록의 첫 번째 블록 위치와 마지막 블록 위치만 알면, 그 위치로부터 연속 결함 블록에 포함된 나머지 블록의 위치들도 알 수 있게 된다. 따라서, 본 발명은 연속 결함 블록의 경우에, 결함에 관한 정보에 연속 결함 블록의 첫 번째 결함 블록과 마지막 결함 블록에 관한 정보만을 포함시킴으로써 결함에 관한 정보를 기록하기 위해 필요한 공간을 절약할 수 있다는 것이다. 이와 같은 사항은 연속 결함 블록을 대체하는 대체 블록에 대해서도 동일하게 적용된다.
따라서, 이와 같이 연속 결함 블록에 관한 정보를 나타내는 연속 결함 리스트 엔트리는 도 8에 도시된 바와 같이 시작 엔트리와 마지막 엔트리로 구성할 수 있다.
도 8을 참조하면, 연속 결함 리스트 엔트리는 시작 엔트리와 마지막 엔트리로 구성된다. 시작 엔트리와 마지막 엔트리 모두 도 6에 도시된 바와 같은 DL 엔트리의 구조를 가지는데, 다만 시작 엔트리는 연속 결함중 첫 번째 결함에 관한 정보를 담고 있고, 마지막 엔트리는 연속 결함중 마지막 결함에 관한 정보를 담고 있다.
시작 엔트리는 상태 정보와, 연속 결함 블록중 첫 번째 결함 블록이 사용자 영역에 기록된 위치를 나타내는 첫 번째 결함 블록위치 정보와, 이 첫 번째 결함 블록을 대체하는 첫 번째 대체 블록이 SA/DL 영역에 기록된 위치를 나타내는 첫 번째 대체 블록 위치 정보를 포함한다. 마지막 엔트리는 상태 정보와, 연속 결함 블록중 마지막 결함 블록이 사용자 영역에 기록된 위치를 나타내는 마지막 결함 블록 위치 정보와, 이 마지막 결함 블록을 대체하는 마지막 대체 블록이 SA/DL 영역에 기록된 위치를 나타내는 마지막 대체 블록 위치 정보를 포함한다.
도 9는 도 6에 도시된 대체 상태 정보와 연속 결함 정보의 예를 나타낸다.
도 9를 참조하면, 대체 상태 정보를 나타내는 비트는 "0" 과 "1"이다. 대체 상태 정보(311)가 "1"이면, 결함 블록 위치 정보(320)에 해당하는 결함 블록이 대체 없이 결함 위치만 표시된 경우를 나타내고, 대체 상태 정보(311)가 "0"이면 결함 블록 위치 정보(320)에 해당하는 결함 블록이 대체 블록 위치 정보(330)에 해당하는 대체 블록으로 대체되었음을 나타낸다.
연속 결함 정보를 나타내는 비트는 "00", "01", "10" 이다. 연속 결함 정보(312)가 "00" 이면, 이 DL 엔트리는 연속 결함이 아닌 단일 결함 리스트 엔트리를 나타낸다. 이 경우 대체 상태 정보로 설정된 값에 따라 대체 있는 결함 블록을 나타낼 수도 있고 대체 없는 결함 블록을 나타낼 수도 있다. 대체 있는 결함 블록인 경우에는 결함 블록 위치 정보와 대체 블록 위치 정보를 가지고, 대체 없는 결함 블록인 경우에는 결함 블록 위치 정보만을 가진다.
연속 결함 정보(312)가 "01" 이면, 이 DL 엔트리는 연속 결함 리스트 엔트리의 시작 엔트리를 나타낸다. 따라서, 도 8에 도시된 바와 같이 이 DL 엔트리는 연속 결함 블록의 첫 번째 결함 블록 위치 정보와, 연속 대체 블록의 첫 번째 대체 블록 위치 정보를 가진다.
연속 결함 정보(312)가 "10" 이면, 이 DL 엔트리는 연속 결함 리스트 엔트리의 마지막 엔트리를 나타낸다. 따라서, 도 8에 도시된 바와 같이 이 DL 엔트리는 연속 결함 블록의 마지막 결함 블록 위치 정보와, 연속 대체 블록의 마지막 대체 블록 위치 정보를 가진다.
이제, 1 비트의 대체 상태 정보(311)와 2 비트의 연속 결함 정보(312)가 조합된 3 비트에 대해 설명한다.
1 비트의 대체 상태 정보(311)와 2 비트의 연속 결함 정보(312)가 조합된 3 비트가 "000" 이면, 이 DL 엔트리는 단일 결함 블록에 관한 단일 결함 리스트 엔트리를 나타내고, 이 단일 결함 블록은 대체 블록을 가지는 상태를 나타낸다. 따라서, 이 DL 엔트리는 결함 블록위치 정보와 대체 블록 위치 정보를 가진다.
조합된 3 비트가 "100"이면, 이 DL 엔트리는 단일 결함 블록에 관한 단일 결함 리스트 엔트리를 나타내고, 이 단일 결함 블록은 대체 블록을 가지지 않는 상태를 나타낸다. 따라서, 이 DL 엔트리는 결함 블록 위치 정보는 가지지만 대체 블록 위치 정보는 가지지 않는다.
조합된 3 비트가 "001" 이면, 이 DL 엔트리는 연속 결함 블록에 관한 연속 결함 리스트 엔트리의 시작 엔트리를 나타내고, 이 시작 엔트리에 대응하는 결함 블록 즉, 연속 결함 블록중 첫 번째 결함 블록은 대체 블록을 가지는 상태를 나타낸다. 따라서, 이 DL 엔트리는 연속 결함 블록중 첫 번째 결함 블록의 위치정보와, 이 연속 결함 블록을 대체하는 연속 대체 블록중 첫 번째 대체 블록의 위치정 보를 가진다.
조합된 3 비트가 "010" 이면, 이 DL 엔트리는 연속 결함 블록에 관한 연속 결함 리스트 엔트리의 마지막 엔트리를 나타내고, 이 마지막 엔트리에 대응하는 결함 블록 즉, 연속 결함 블록중 마지막 결함 블록은 대체 블록을 가지는 상태를 나타낸다. 따라서, 이 DL 엔트리는 연속 결함 블록중 마지막 결함 블록의 위치정보와, 이 연속 결함 블록을 대체하는 연속 대체 블록중 마지막 대체 블록의 위치정보를 가진다.
조합된 3 비트가 "101" 이면, 이 DL 엔트리는 연속 결함 블록에 관한 연속 결함 리스트 엔트리의 시작 엔트리를 나타내고, 이 시작 엔트리에 대응하는 결함 블록 즉, 연속 결함 블록중 첫 번째 결함 블록은 대체 블록을 가지지 않는 상태를 나타낸다. 따라서, 이 DL 엔트리는 연속 결함 블록중 첫 번째 결함 블록의 위치정보는 가지지만, 이 연속 결함 블록을 대체하는 연속 대체 블록중 첫 번째 대체 블록의 위치정보는 가지지 않는다.
조합된 3 비트가 "110"이면, 이 DL 엔트리는 연속 결함 블록에 관한 연속 결함 리스트 엔트리의 마지막 엔트리를 나타내고, 이 마지막 엔트리에 대응하는 결함 블록 즉, 연속 결함 블록중 마지막 결함 블록은 대체 블록을 가지지 않는 상태를 나타낸다. 따라서, 이 DL 엔트리는 연속 결함 블록중 마지막 결함 블록의 위치정보는 가지지만, 이 연속 결함 블록을 대체하는 연속 대체 블록중 마지막 대체 블록의 위치정보는 가지지 않는다.
도 10은 본 발명에 따라 연속 결함 정보를 설명하기 위한 참고도이다.
도 10을 참조하면, (a)는 사용자 데이터가 기록되는 사용자 영역을 나타내고, (b)는 대체 블록과 결함 리스트가 기록되는 SA/DL 영역을 나타낸다.
(a)를 참조하면, 사용자 영역의 위치 "5"에서 첫 번째 결함으로서 단일 결함블록 ⓐ이 발생했고, 위치 "9"부터 "12"까지의 연속적인 위치에서 두 번째 결함으로서 연속 결함 블록 ⓑ,ⓒ,ⓓ,ⓔ가 발생했고, 위치 "17"부터 "20"까지의 연속적인 위치에서 세 번째 결함으로서 연속 결함 블록 ⓕ,ⓖ,ⓗ,ⓘ가 발생했음이 표시되어 있다.
(b)를 참조하면, SA/DL 영역에는 사용자 영역에 발생된 결함 블록을 대체하는 대체 블록 및 결함리스트가 표시되어 있다.
단일 결함 블록 ⓐ을 대체하는 단일 대체 블록 ⓐ'이 SA/DL 영역의 위치 "55"에 마련되고, 연속 결함 블록 ⓑ,ⓒ,ⓓ,ⓔ를 연속적으로 대체하는 연속 대체 블록 ⓑ',ⓒ',ⓓ',ⓔ'이 SA/DL 영역의 위치 "56"부터 "59"까지 마련되고, 위치 "60"에 세 번째 연속 결함 이후 업데이트된 결함 리스트 DL #k가 기록된다. 연속 결함 블록 ⓕ,ⓖ,ⓗ,ⓘ는 대체 블록을 가지지 않는다. 이와 같은 상태에서 결함 리스트 DL #k에 들어가는 정보가 도 11a에 도시되어 있다.
도 11a는 도 10에 도시된 상태에서의 DL #k의 데이터 구조도이다.
도 11a를 참조하면, DL #K(400)는 DL 식별자(410)와, DL 업데이트 카운터(420)와, DL 엔트리의 개수(430)와, 5개의 DL 엔트리 즉, DL 엔트리 #1(440), DL 엔트리 #2(450), DL 엔트리 #3(460), DL 엔트리 #4(470), DL 엔트리 #5(480)를 포함한다.
DL 식별자(410)는 앞서 설명한 바와 같이 DL 임을 나타내는 식별자를 의미하고, DL 업데이트 카운터(420)에는 DL이 업데이트된 회수로서 "K"가 기록되고, DL 엔트리의 개수(430)에는 DL #K에 들어있는 엔트리의 총 개수인 "5"가 기록된다.
DL 엔트리 #1(440)은 도 8에 도시된 단일 결함 블록 ⓐ에 관한 엔트리로서, 대체 상태 정보로서 "0"이, 연속결함정보로서 "00"이, 결함블록 위치 정보로서 "5"가, 대체블록 위치 정보로서 "55"가 기록된다.
DL 엔트리 #2(450)와 DL 엔트리 #3(460)은 연속 결함 리스트 엔트리를 구성한다.
DL 엔트리 #2(450)는 연속 결함 리스트 엔트리의 시작 엔트리이고, DL 엔트리 #3(460)은 연속 결함 리스트 엔트리의 마지막 엔트리이다. 즉, DL 엔트리 #2(450)는 도 8에 도시된 연속 결함 블록 중 첫 번째 결함 블록 ⓑ에 관한 엔트리로서, 결함 블록 ⓑ는 대체가 되었으므로 대체 상태 정보로서 "0"이 기록되고, 연속 결함 리스트 엔트리의 시작 엔트리이므로 연속결함 정보로서 "01"이 기록되고, 결함블록 ⓑ의 위치 정보로서 "9"가, 대체 블록 ⓑ'의 위치 정보로서 "56"이 기록된다.
DL 엔트리 #3(460)은 도 8에 도시된 연속 결함 블록 중 마지막 결함 블록 ⓔ에 관한 엔트리로서, 결함 블록 ⓔ는 대체가 되었으므로 대체 상태 정보로서 "0"이 기록되고, 연속 결함 리스트 엔트리의 마지막 엔트리이므로 연속결함 정보로서 "10"이 기록되고, 결함블록 ⓔ의 위치 정보로서 "12"가, 대체 블록 ⓔ'의 위치 정보로서 "59"가 기록된다.
DL 엔트리 #4(470), DL 엔트리 #5(480)는 연속 결함 리스트 엔트리를 구성한다.
DL 엔트리 #4(470)는 연속 결함 리스트 엔트리의 시작 엔트리이고, DL 엔트리 #5(480)는 연속 결함 리스트 엔트리의 마지막 엔트리이다. 즉, DL 엔트리 #4(470)는 도 8에 도시된 연속 결함 블록 중 첫 번째 결함 블록 ⓕ에 관한 엔트리로서, 결함 블록 ⓕ는 대체가 이루어지지 않았으므로 대체 상태 정보로서 "1"이 기록되고, 연속 결함 리스트 엔트리의 시작 엔트리이므로 연속결함 정보로서 "01"이 기록되고, 결함블록 ⓕ의 위치 정보로서 "17"이 기록되고, 이 결함 블록에 대해서는 대체가 이루어지지 않아 대체 블록이 없기 때문에 대체 블록 위치 정보로서는 "00"이 기록된다.
DL 엔트리 #5(480)는 도 8에 도시된 연속 결함 블록 중 마지막 결함 블록 ⓘ에 관한 엔트리로서, 결함 블록 ⓘ는 대체가 이루어지지 않았으므로 대체 상태 정보로서 "1"이, 연속 결함 리스트 엔트리의 마지막 엔트리이므로 연속결함 정보로서 "10"이, 결함블록 ⓘ의 위치 정보로서 "20"이 기록되고, 이 결함 블록에 대해서는 대체가 이루어지지 않아 대체 블록이 없기 때문에 대체 블록 위치 정보로서는 "00"이 기록된다.
도 11b는 도 10에 도시된 상태에서 연속 결함 리스트 엔트리의 개수 정보를 더 포함하는 DL #k의 데이터 구조도이다.
도 11b에 도시된 DL #k는 도 11a에 도시된 DL #k와 다른 부분은 동일하며, 다만, 연속 결함 리스트 엔트리의 개수(490)를 더 추가한 것이 다르다. 도 10을 참조하면 연속 결함 리스트 엔트리는 2개 있으므로, 연속 결함 리스트 엔트리의 개수(490)로서 "2"가 기록된다.
이와 같이 연속 결함 리스트 엔트리의 개수 필드를 둠으로 해서 결함 리스트내에 있는 연속 결함 리스트 엔트리들의 개수와 단일 결함 리스트 엔트리들의 개수를 모든 DL 엔트리를 검색하지 않고도 미리 알 수 있다. DL 엔트리의 개수와 연속 결함 리스트 엔트리의 개수로부터 단일 결함 리스트 엔트리의 개수를 다음과 같이 계산할 수 있다.
단일 결함 리스트 엔트리의 개수는 = DL 엔트리의 개수 - 2 x (연속 결함 리스트 엔트리의 개수)
앞서 설명한 바와 같이 연속 결함 리스트 엔트리는 시작 엔트리와 마지막 엔트리의 쌍으로 구성되므로 위와 같은 식을 만족한다.
예를 들어, 도 11b에 도시된 DL #K의 경우에 단일 결함 리스트 엔트리의 개수는 = 5 - 2 x 2 = 1 과 같이 계산될 수 있다.
도 11c는 도 11b에 도시된 DL #k에 대체 상태 정보 "0"을 가지는 연속 결함 리스트 엔트리의 개수 정보와 대체 상태 정보 "1"을 가지는 연속 결함 리스트 엔트리의 개수 정보를 더 포함된 데이터 구조도이다.
도 11c에 도시된 DL #k는 도 11b에 도시된 DL #k와 다른 부분은 동일하며, 다만, 대체 상태 정보 "0"을 가지는 연속 결함 리스트 엔트리의 개수 정보(500)와, 대체 상태 정보 "1"을 가지는 연속 결함 리스트 엔트리의 개수 정보(510)를 더 포함하는 것이 다르다. 도 11a를 참조하면, 대체 상태 정보 "0"을 가지는 연속 결함 리스트 엔트리는 DL 엔트리 #2(450)와 DL 엔트리 #3(460)으로 구성된 연속 결함 리스트 엔트리로서 1개 이므로, 대체 상태 정보 "0"을 가지는 연속 결함 리스트 엔트리의 개수(500)로서 "1"이 기록된다. 대체 상태 정보 "1"을 가지는 연속 결함 리스트 엔트리는 DL 엔트리 #4(470)와 DL 엔트리 #5(480)로 구성된 연속 결함 리스트 엔트리로서 1개 이므로, 대체 상태 정보 "1"을 가지는 연속 결함 리스트 엔트리의 개수(510)로서 "1'이 기록된다.
도 12는 본 발명에 따른 결함 관리 방법을 설명하기 위한 흐름도이다.
도 12를 참조하면, 기록 장치는 기록 후 검증이 수행되는 단위로 데이터 영역에 사용자 데이터를 기록한다(1201). 다음으로, 상기 1201단계에서 기록된 데이터를 검증하여 결함이 발생된 부분을 찾아낸다(1202). 제어부(1)는 결함이 발생된 부분을 결함 영역으로 지정하고 결함 영역에 기록된 데이터를 SA/DL 영역에 다시 기록하여 대체 영역을 생성하도록 한 다음, 결함 블록 및 대체 블록에 관한 정보를 생성하여 메모리에 저장해둔다(1203). 레코딩 오퍼레이션의 종료가 예측되기 전까지 상기 1201단계 내지 1203단계를 반복한다.
사용자 입력 또는 레코딩 오퍼레이션에 따른 사용자 데이터 기록이 완료되어 레코딩 오퍼레이션의 종료가 예측되면(1204), 기록 장치의 제어부(1)는 메모리에 저장된 결함에 관한 정보를 읽어들인다(1205).
읽어들인 결함에 관한 정보 중에 연속 결함에 관한 정보가 있는 경우에는 연속 결함의 첫 번째 결함에 관한 정보에 대응하는 시작 엔트리와 마지막 결함에 관한 정보에 대응하는 마지막 엔트리로 구성된 연속 결함 리스트 엔트리를 생성하고, 또한 각 DL 엔트리에는 연속 결함인지 단일 결함인지를 나타내는 연속 결함 정보와, 대체 블록이 있는지 없는지를 나타내는 대체 상태 정보를 포함시켜 DL 엔트리를 생성하여 DL을 생성한다(1206).
그리고, 이와 같이 생성된 DL을 SA/DL 영역에 기록한다(1207).
이상 설명한 바와 같은 디스크 결함 관리 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 매체를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 디스크 결함 관리 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.