KR101151684B1 - 광 디스크 드라이브에서 데이터 변환 방법 - Google Patents

광 디스크 드라이브에서 데이터 변환 방법 Download PDF

Info

Publication number
KR101151684B1
KR101151684B1 KR1020100129645A KR20100129645A KR101151684B1 KR 101151684 B1 KR101151684 B1 KR 101151684B1 KR 1020100129645 A KR1020100129645 A KR 1020100129645A KR 20100129645 A KR20100129645 A KR 20100129645A KR 101151684 B1 KR101151684 B1 KR 101151684B1
Authority
KR
South Korea
Prior art keywords
data
information
file
file system
directory
Prior art date
Application number
KR1020100129645A
Other languages
English (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 KR1020100129645A priority Critical patent/KR101151684B1/ko
Priority to US13/241,108 priority patent/US20120158804A1/en
Priority to CN2011104389424A priority patent/CN102750958A/zh
Priority to EP11009948A priority patent/EP2466447A2/en
Application granted granted Critical
Publication of KR101151684B1 publication Critical patent/KR101151684B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0607Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0677Optical disk device, e.g. CD-ROM, DVD
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 광 디스크 드라이브에서 데이터 변환 방법에 관한 것이다. 본 발명의 일 실시예에서, 광 디스크에 기록된 데이터에 대해 수집되는 파일 시스템 정보를 기초로 제 1 파일 시스템에 대응하는 데이터가 생성되어 메모리에 저장되는데, 상기 광 디스크에 기록된 디렉토리와 파일에 대해 상기 제 1 파일 시스템으로 변환된 제 1 데이터, 상기 디렉토리에 대한 제 2 데이터 및 상기 파일에 대한 제 3 데이터가 상기 메모리 내에서 서로 분리하여 저장되고, 상기 분리 저장된 데이터의 적어도 일부를 기초로 호스트로부터 요청되는 정보가 가공되어 상기 호스트에 전송될 수 있다. 따라서, 광 디스크 드라이브가 PC 이외의 USB 입력이 있는 AV 기기에서 연결되어 사용될 수 있고, 또한 호스트가 요청한 데이터를 빨리 검색하여 전송할 수 있게 된다.

Description

광 디스크 드라이브에서 데이터 변환 방법 {Method for converting data in optical disc drive}
본 발명은 광 디스크 드라이브에서 데이터 변환 방법에 관한 것으로, 더욱 상세하게는 PC 이외의 AV 기기에 사용이 가능하게 하는 광 디스크 드라이브에 관한 것이다.
CD(Compact Disc), DVD(Digital Versatile Disc), BD(Blu-ray Disc)와 같은 광 디스크는 휴대가 간편하고 착탈이 가능하고 많은 양의 데이터를 기록 및 저장할 수 있기 때문에, 광 디스크를 재생 또는 기록할 수 있는 광 디스크 드라이브가 데스크 탑 컴퓨터 또는 노트북 컴퓨터의 주변 장치로 널리 이용되고 있다.
또한, 최근에는 데스크 탑 컴퓨터가 슬림화되고 또한 노트북 컴퓨터도 두께가 얇아짐에 따라, 내장형 광 디스크 드라이브가 아니라 외장형 광 디스크 드라이브가 인기를 끌고 있는데, 이 경우 하나의 외장형 광 디스크 드라이브를 여러 대의 컴퓨터에서 주변 기기로 나누어 사용할 수 있게 되는 장점이 있다.
광 디스크 드라이브는 지금까지 주로 컴퓨터의 주변 기기로만 이용되었기 때문에, 내장용으로 사용되는 경우 E-IDE(Enhanced-Integrated Drive Electronics)(또는 PATA: Parallel Advanced Technology Attachment)나 SATA(Serial ATA) 방식으로 연결되고, 외장용으로 사용되는 경우 USB(Universal Serial Bus)나 SCSI(Small Computer System Interface) 방식으로 컴퓨터와 연결된다.
최근에는 TV나 각종 AV 기기는, 영상이나 오디오 소오스의 폭을 넓힐 수 있도록, USB 인터페이스를 통해 SD, 메모리 스틱 등의 플래시 메모리 또는 외장형 하드 디스크 등에 저장된 데이터를 불러와 재생하는 기능을 제공하고 있다.
이러한 AV 기기는 CD/DVD/BD와 같은 디스크에서 범용으로 채택하여 쓰이고 있는 ISO9660/UDF(Universal Disk Format)와 같은 파일 시스템(File System)을 지원하지 않기 때문에, 광 디스크 드라이브가 AV 또는 포터블 기기에 연결되더라도 미디어의 인식이나 재생이 불가능하다. 단, DVD-RAM는 FAT32 파일 시스템을 지원하기 때문에 미디어 인식 및 재생이 가능한데, 이는 AV 기기가 FAT32 파일 시스템을 지원하기 때문이다. 하지만, DVD-RAM은 일반 사용자들에게 널리 보급된 미디어가 아니므로, 여전히 사용에 불편함이 있다.
AV 기기와 연결하기 위한 인터페이스가 마련된 외장형 광 디스크 드라이브를 AV 기기에 연결하고 널리 사용되고 있는 미디어인 CD/DVD가 인식되고 재생될 수 있게 하여 사용자의 편의성을 높이는 것에 대한 요구가 발생하고 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 본 발명의 목적은, USB 입력이 있는 기기에 사용이 가능하게 하는 광 디스크 드라이브를 제공하는 데 있다.
본 발명의 다른 목적은, 광 디스크 드라이브에 연결된 AV 기기가 광 디스크에 저장된 데이터에 접근할 수 있도록 광 디스크의 파일 시스템을 변환하는 방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위한 본 발명의 일 실시예에 따른 광 디스크 드라이브에서 데이터 변환 방법은, 광 디스크에 기록된 데이터에 대해 수집되는 파일 시스템 정보를 기초로 제 1 파일 시스템에 대응하는 데이터를 생성하여 메모리에 저장하되, 상기 광 디스크에 기록된 디렉토리와 파일에 대해 상기 제 1 파일 시스템으로 변환한 제 1 데이터, 상기 디렉토리에 대한 제 2 데이터 및 상기 파일에 대한 제 3 데이터를 상기 메모리 내에서 서로 분리하여 저장하는, 단계; 및 상기 분리 저장된 데이터의 적어도 일부를 기초로 호스트로부터 요청되는 정보를 가공하여 상기 호스트에 전송하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
본 발명의 다른 실시예에 따른 광 디스크 드라이브는, 광 디스크로부터 데이터를 읽거나 광 디스크에 데이터를 기록하는 로더; 호스트와 연결되는 인터페이스; 데이터를 저장하기 위한 메모리; 및 상기 로더를 통해 광 디스크에 기록된 데이터에 대해 파일 시스템 정보를 수집하고, 상기 수집되는 정보를 기초로 제 1 파일 시스템에 대응하는 데이터를 생성하여 상기 메모리에 저장하되, 상기 광 디스크에 기록된 디렉토리와 파일에 대해 상기 제 1 파일 시스템으로 변환한 제 1 데이터, 상기 디렉토리에 대한 제 2 데이터 및 상기 파일에 대한 제 3 데이터를 상기 메모리 내에서 서로 분리하여 저장하고, 상기 분리 저장된 데이터의 적어도 일부를 기초로 상기 호스트로부터 요청되는 정보를 가공하고, 상기 가공된 정보를 상기 호스트에 전송하도록 상기 인터페이스를 제어하는 제어기를 포함하여 구성되는 것을 특징으로 한다.
일 실시예에서, 상기 전송하는 단계는 상기 호스트에서 수신되는 커맨드에 포함된 주소를 기초로 상기 호스트로부터 요청되는 정보를 확인할 수 있다.
일 실시예에서, 상기 제 1 데이터는 각 파일 또는 디렉토리에 대해서 데이터의 시작 주소, 크기, 이름, 속성, 이름 길이, 시간 정보 중 적어도 하나 이상을 포함할 수 있다.
일 실시예에서, 상기 제 1 데이터가 저장되는 영역에 여유 공간이 없는 경우, 상기 제 1 데이터로 변환되지 않은 디렉토리에 대해서 부모 디렉토리에 대한 데이터와 자신의 디렉토리에 대한 데이터가 생성되어 상기 메모리의 예비 영역에 저장될 수 있다.
일 실시예에서, 상기 제 2 데이터는, 상기 변환된 제 1 데이터가 저장되는 영역 내에서 각 디렉토리에 대해 변환된 데이터가 시작되는 위치를 포함할 수 있다.
일 실시예에서, 상기 제 3 데이터는 각 파일의 실제 데이터의 시작 위치와 크기 정보를 포함할 수 있다. 이때, 상기 제 3 데이터가 상기 시작 위치를 기준으로 정렬될 수 있다. 또한, 상기 실제 데이터의 시작 위치는 상기 디스크에 기록된 원래 시작 주소에 상기 디스크에 기록된 데이터에 대해서 상기 제 1 파일 시스템으로 변환할 때 생성되는 파일 시스템 정보의 크기를 오프셋으로 더한 값으로 표현수 있다.
일 실시예에서, 상기 광 디스크의 파일 시스템이 UDF이고 파일 엔트리 내에 Allocation Descriptor가 있고 크기가 0인 파일에 대해서 해당 파일의 실제 데이터의 시작 위치와 크기 정보가 상기 제 3 데이터로 기록될 수 있다.
일 실시예에서, 상기 전송하는 단계는 상기 호스트로부터 루트 또는 디렉토리에 대한 정보가 요청되면 상기 제 2 데이터를 참고하여 상기 제 1 데이터로부터 요청된 데이터를 선별하여 전송할 수 있다.
일 실시예에서, 상기 전송하는 단계는 상기 호스트로부터 파일 또는 디렉토리의 데이터가 기록된 주소가 나열된 정보가 요청되면 상기 제 1 데이터 내지 제 3 데이터를 기초로 요청된 정보를 생성하여 전송할 수 있다.
일 실시예에서, 상기 전송하는 단계는 상기 호스트로부터 FAT32의 MBR 또는 부트 섹터가 요청되면 상기 광 디스크에 기록된 데이터의 파일 시스템과 상관 없이 상기 MBR 또는 부트 섹터를 생성하여 전송할 수 있다. 이때, 상기 MBR 또는 부트 섹터에 포함되는 디스크의 기록 용량과 관련된 정보는 상기 광 디스크의 리드 인 영역에서 독출되는 디스크 정보 또는 물리적 포맷 정보로부터 얻을 수 있다.
일 실시예에서, 상기 제 1 파일 시스템에 대응하는 데이터를 생성하기 위하여 상기 수집되는 파일 시스템 정보 중 일부가 Queue를 통해 관리될 수 있다. 이때, 상기 수집되는 파일 시스템 정보 중 디렉토리 정보 또는 파일 엔트리 정보가 Queue에 저장되고 상기 Queue에 저장된 정보가 먼저 저장된 순서대로 처리될 수 있다.
일 실시예에서, 상기 광 디스크의 파일 시스템이 UDF인 경우 Allocation Descriptor의 유형이 immediate인 파일 엔트리에 대해서 해당 파일의 시작 위치가 제 4 데이터로 상기 메모리에 따로 저장될 수 있다. 이때, 상기 호스트로부터 상기 제 4 데이터에 포함되는 주소가 요청되면 상기 요청된 주소가 가리키는 섹터로부터 실제 데이터가 읽히고 읽은 데이터 이후에 제로가 패딩되어 섹터 단위로 재구성되어 전송될 수 있다.
일 실시예에서, 상기 전송하는 단계는 상기 호스트로부터 Get Descriptor Configuration Command가 전송되면 보고 데이터의 Subclass code 필드 값을 0x06로 설정하여 전송할 수 있다.
일 실시예에서, 상기 광 디스크의 파일 시스템은 ISO9660 또는 UDF이고 상기 제 1 파일 시스템은 FAT32일 수 있다.
본 발명의 또 다른 실시예에 따른 광 디스크 드라이브에서 오디오 CD 처리 방법은, 오디오 CD에 기록된 트랙의 개수, 및 각 트랙의 시작 위치 주소와 크기 정보를 기초로 상기 개수만큼의 웨이브 파일이 저장되는 파일 구조에 대한 제 1 파일 시스템에 대응하는 데이터를 생성하는 단계; 상기 제 1 파일 시스템으로 생성된 데이터를 받은 호스트로부터 상기 웨이브 파일 중 소정의 파일에 대한 재생이 요청되면, 해당 파일의 헤더 정보를 생성하고 해당 파일에 대응하는 트랙의 데이터를 독출하여 메모리에 임시 저장하는 단계; 및 상기 헤더 정보와 트랙의 데이터를 섹터 단위로 구성하여 상기 호스트에 전송하는 단계를 포함하여 이루어지는 것을 특징으로 한다.
일 실시예에서, 상기 헤더 정보는 RIFF chunk, fmt chunk 및 data chunk로 구성될 수 있다.
일 실시예에서, 요청된 트랙의 데이터에 대한 디스크 내 주소가 READ CD ATAPI 커맨드를 통해 계산되어 저장될 수 있다.
광 디스크 드라이브를 PC 이외의 USB 입력이 있는 AV 기기에서 사용할 수 있게 된다.
또한, 호스트가 요청한 데이터를 빨리 검색하여 전송할 수 있게 된다.
도 1은 본 발명이 적용되는 광 디스크 드라이브의 구성을 도시한 것이고,
도 2는 본 발명의 전체 동작 흐름도를 도시한 것이고,
도 3은 광 디스크의 파일 시스템을 확인하는 방법에 대한 동작 흐름도를 도시한 것이고,
도 4는 ISO9660 파일 시스템에 따른 데이터의 배치 및 디렉토리/파일 정보를 수집하는 과정을 도시한 것이고,
도 5는 UDF 파일 시스템에 따른 데이터의 배치 및 디렉토리/파일 정보를 수집하는 과정을 도시한 것이고,
도 6은 FAT32 파일 시스템의 구성을 도시한 것이고,
도 7은 MBR 블록에 포함되는 파티션 엔트리를 도시한 것으로,
도 8은 부트 섹터에 포함되는 부트 패러미터 블록을 도시한 것이고,
도 9는 본 발명의 일 실시예에 따라 ISO9660 파일 시스템으로부터 수집한 디렉토리와 파일 정보를 FAT32 파일 시스템으로 변환하기 위해 Queue를 통해 관리하는 방법을 도시한 것이고,
도 10은 본 발명의 일 실시예에 따라 UDF 파일 시스템으로부터 수집한 디렉토리와 파일 정보를 FAT32 파일 시스템으로 변환하기 위해 Queue를 통해 관리하는 방법을 도시한 것이다.
도 11은 FAT32 파일 시스템으로 변환하기 위해 할당된 메모리 구조와 생성된 FAT32 파일 시스템 구조를 도시한 것이고,
도 12는 Immediate AD 유형의 파일 엔트리 내에서 파일의 실제 데이터가 바로 이어지는 경우의 섹터의 구조와 전송 버퍼에 데이터를 쌓을 때 제로를 패딩하는 본 발명의 일 실시예를 도시한 것이고,
도 13은 UDF 파일 시스템에서 파일 엔트리와 확장된 파일 엔트리의 일부를 도시한 것이고,
도 14는 디렉토리에 부모 디렉토리 정보와 자신의 디렉토리 정보를 생성하는 예를 도시한 것이고,
도 15는 오디오 씨디 트랙을 Wave 파일 형식으로 바꾸는 과정을 도시한 것이고,
도 16은 호스트가 액세스 요청한 주소를 기반으로 데이터를 준비하여 호스트에 전송하는 과정을 도시한 것이고,
도 17은 FAT 테이블 데이터를 생성하는 구체적인 방법을 도시한 것이고,
도 18은 파일의 시작 주소를 기준으로 파일 정보를 소팅하는 방법에 대한 동작 흐름도를 도시한 것이고,
도 19는 랜덤하게 정렬된 파일 정보를 기반으로 파일 정보를 검색하는 경우에 비해 시작 주소로 정렬된 파일 정보를 기반으로 파일 정보를 검색하는 경우 검색 시간이 단축되는 예를 도시한 것이고,
도 20은 Get Descriptor Configuration Command에 대한 보고 데이터 중 Subclass code 필드 값을 0x06로 변경하여 보고하는 예를 도시한 것이다.
이하, 본 발명에 따른 모드 전환이 가능한 광 디스크 드라이브에서 데이터 전송 방법에 대한 실시예를 첨부하는 도면에 의거하여 상세히 설명한다.
DVD-RAM을 제외한 광 디스크에는 ISO9660 또는 UDF(Universal Disk Format) 파일 시스템으로 데이터가 기록되는데, 컴퓨터의 OS(Operating System)에서 지원하는 파일 시스템과 다르기 때문에, OS가 직접 또는 OA에서 실행되는 프로그램(예를 들어 네로)이 디스크에 액세스하여 디스크에 데이터를 기록하거나 독출한다. 즉, 디스크의 파일 변환이 광 디스크 드라이브가 아닌 연결된 컴퓨터에 의해 이루어진다.
하지만, OS나 OS에서 실행되는 프로그램이 설치된 컴퓨터가 아닌 USB 입력을 갖는 일반 A/V 기기는 FAT32 파일 시스템을 사용하고 데이터의 파일 시스템을 변환하는 기능을 포함하지 않기 때문에, 외장형 광 디스크 드라이브와 USB를 통해 연결되더라도 광 디스크에 기록된 다른 파일 시스템의 데이터에 접근할 수 없다.
본 발명에 따른 광 디스크 드라이브는, 연결된 AV 기기(호스트)가 디스크에 기록된 데이터에 접근할 수 있도록 디스크에 기록된 데이터의 파일 시스템을 호스트에서 사용하는 파일 시스템, 예를 들어 FAT32로 변환하여 호스트에 전송할 수 있다.
도 1은 본 발명이 적용되는 광 디스크 드라이브의 구성을 도시한 것이다.
본 발명에 따른 광 디스크 드라이브(100)는, 광 디스크에 데이터를 기록하거나 광 디스크로부터 데이터를 독출하기 위하여 광 픽업, 스핀들 모터, 슬레드 모터 등을 구동하는 로더(10), 외부 기기와 연결하기 위한 인터페이스(20), 데이터를 임시로 저장하기 위한 메모리(30), 및 각 요소를 제어하고 동작 모드를 결정하고 동작 모드를 전환하며 광 디스크의 파일 시스템을 변환하기 위한 제어기(40)를 포함하여 구성될 수 있다.
먼저, 본 발명의 전체 흐름을 살펴 보는데, 도 2에 동작 흐름도가 도시되어 있다.
광 디스크가 삽입되거나 디스크가 로딩된 상태에서 광 디스크 드라이브에 전원이 인가되거나 광 디스크 드라이브가 리셋되면, 제어기(40)는 로더(10)를 제어하여 광 디스크를 인식하여 기록된 데이터의 파일 시스템을 확인하고(S110), 광 디스크의 파일 시스템이 FAT32가 아니면(S120에서 NO), 파일 시스템이 ISO9660 또는 UDF인지 확인한다(S130).
제어기(40)는, 파일 시스템이 ISO9660와 UDF도 아니면(S130에서 NO), 에러 처리하여(170) 종료하고, 파일 시스템이 ISO9660 또는 UDF이면(S130에서 YES), 해당 파일 시스템의 볼륨, 디렉토리, 파일 정보 등의 파일 시스템 정보를 수집하고(S140), 수집된 정보를 이용하여 FAT32 파일 시스템으로 변환하고(S150), 이후 인터페이스(30)를 통해 연결된 호스트의 요청에 따라 FAT32로 변환된 파일 시스템 정보와 데이터를 호스트에 전송한다(S160).
다음으로, 도 2의 동작 흐름도에서 S110 ~ S130 단계에 해당하는 광 디스크의 파일 시스템을 확인하는 방법을 설명한다. 도 3은 광 디스크의 파일 시스템을 확인하는 방법에 대한 동작 흐름도를 도시한 것이다.
먼저, 제어기(40)는, 로더(10)를 제어하여, 디스크의 종류, 즉 CD/DVD/BD, 레이어 개수, 재생용 디스크/한 번 기록 가능 디스크/재기록 가능 디스크 등의 디스크를 인식하고(S210), 디스크의 LBA(Logical Block Address) 0을 읽는다(S220).
제어기(40)는, 읽은 섹터 내에 MBR(Master Boot Record) Signature와 첫 번째 파티션 엔트리(1st Partition Entry) 내에 LBA 시작(LBA begin) 값이 있는지 확인하여(S230), 그렇다면(S230에서 YES) 해당 디스크의 파일 시스템이 FAT32로 판단하여 종료한다.
제어기(40)는, 그렇지 않다면(S230에서 NO), LBA 16부터 5 섹터에서 볼륨 설명자들(Volume Descriptors)를 읽고(S240), 볼륨 설명자들의 각 섹터 내의 표준 식별자(Standard ID)를 확인하고(S250), 확인된 표준 식별자 중에서 NSR0(Non-Sequential Recording)의 존재가 확인되면(S260에서 YES), 광 디스크의 파일 시스템을 UDF로 판단하고 UDF 파일 시스템에 따라 정보를 수집한다(S270).
제어기(40)는, NSR0이 없으면(S260에서 NO), 확인된 표준 식별자 중에서 CD001이 하나 이상 존재하는지 확인하여(S280), CD001이 존재하면(S280에서 YES) 광 디스크의 파일 시스템을 ISO9660으로 판단하고 ISO9630 파일 시스템에 따라 정보를 수집하고(S290), CD001이 존재하지 않으면(S280에서 NO) 에러로 판단하여 종료한다.
다음으로, 각 파일 시스템에서 파일 시스템 정보를 얻는 방법을 설명한다.
도 4는 ISO9660 파일 시스템에 따른 데이터의 배치 및 디렉토리/파일 정보를 수집하는 과정을 도시한 것이다.
(1) SVD(Supplementary Volume Descriptor)에서 루트 디렉토리(Root Directory)에 대한 기록 날짜/시간 정보 및 해당 볼륨의 기록 날짜/시간(Volume Recording Date & Time) 정보를 수집하고, 루트 디렉토리에 대한 상세 정보가 있는 위치를 얻는다.
(2) SVD에서 경로 테이블(Path Table)의 위치를 얻는데, 이는 선택 사항이다.
(3) 루트 디렉토리에 대한 상세 정보를 수집하는데, 루트 디렉토리 내 서브디렉토리(Sub Directory)에 대한 ID 및 기록 시간을 수집하고 서브디렉토리에 대한 상세 정보가 있는 위치를 얻고, 루트 디렉토리 안에 있는 파일들에 대한 실제 데이터 시작(Actual Data Start) 위치, 파일 크기, 파일 특성, 기록 시간, 파일 ID 등의 정보를 수집한다.
(4) 서브 디렉토리에 대한 상세 정보 수집도 (3)과 같이 진행한다.
(3)과 (4) 과정을 통해 수집된 정보를 기초로 FAT32 파일 시스템에 필요한 정보(FAT 테이블과 루트/디렉토리 정보)가 생성될 수 있다.
도 5는 UDF 파일 시스템에 따른 데이터의 배치 및 디렉토리/파일 정보를 수집하는 과정을 도시한 것이다.
UDF 파일 시스템에서 파일 데이터는, AVDP(Anchor Volume Descriptor Pointer) -> VDS(Volume Descriptor Sequence) -> FSD(File Set Descriptor) -> 루트 디렉토리의 파일 엔트리(FE: File Entry) -> 루트 디렉토리의 정보 제어 블록(ICB: Information Control Block) -> 루트 디렉토리 내의 파일 식별 정보 기술자(FID: File Identifier Descriptor) -> 파일의 ICB -> 데이터 순서로 액세스 한다.
(1) LBA 256을 읽어 AVDP에서 MVDS의 위치를 얻는다
(2) MVDS 내 Volume Descriptor Sequence들 각각에서 정보를 얻는데, PVD(Primary Volume Descriptor)에서 해당 볼륨의 기록 날짜/시간 정보를 얻고, IUVD(Implementation Use Volume Descriptor)에서 UDF 개정 정보(Revision Information)를 얻는데, UDF Revision에 따라 파일 정보를 다르게 읽기 위해서이다. 또한, PD(Partition Descriptor)에서 파티션 시작(Partition Start) 정보를 얻는다.
LVD(Logical Volume Descriptor)에서 FSD의 시작 정보, LVID(Logical Volume Integrity Descriptor) 위치 정보, 및 파티션 맵 정보를 얻는데, LVID는 전체 디렉토리와 파일의 개수를 확인하기 위한 것이고, 파티션 맵 정보는 파티션 종류에 따라 파일 정보를 다르게 읽기 위함이다.
(3) FSD에서 루트 디렉토리 ICB(RDICB)의 위치 정보를 얻는다.
(4) RDICB(File Entry)를 읽는데, RDICB로부터 루트 디렉토리의 기록 날짜/시간 정보를 얻고, 파일 유형(Type) 및 플래그(Flag) 정보를 수집하고, 루트 디렉토리 내 파일들에 대한 ID 정보(FID)가 있는 위치 정보를 취득한다.
(5) 루트 디렉토리 내 파일들에 대한 FID 정보를 읽어, 루트 디렉토리 내 서브 디렉토리 및 파일들에 대한 파일 엔트리(FE: File Entry)가 있는 위치 정보를 얻고, 루트 디렉토리 내 서브 디렉토리 및 파일들에 대한 캐릭터(Character) 및 파일 이름 정보를 수집한다.
(6) 루트 디렉토리 내 각 파일에 대한 FE를 읽어, 해당 파일의 유형, 플래그, 기록 시간, 수정 시간, 액세스 시간 정보를 얻고, FE 내 AD(Allocation Descriptor)의 유형을 확인하고 이를 기초로 파일의 실제 데이터 시작 위치와 파일 크기 정보를 얻는다.
(3) 내지 (6) 과정을 통해 수집된 정보가 FAT32 파일 시스템 정보로 변환된다.
다음으로 FAT32에 대해서 설명한다.
도 6에 도시한 바와 같이, FAT32 파일 시스템은 매스터 부트 레코드(MBR: Master Boot Record), 부트 레코드(Boot Record), 테이블(FAT table), 루트 디렉토리 및 서브 디렉토리 정보, 및 실제 데이터가 기록되는 데이터 섹터(Data Sector)로 구성된다.
호스트가 FAT32 파일 시스템의 저장 매체에 접근할 때, 먼저 MBR 섹터를 읽어서 부트 섹터(BS: Boot Sector)와 부트 섹터 패러미터 정보(BSPI: Boot Sector Parameter Information)의 위치 정보, 크기 정보를 얻고, 이후 BS와 BSPI를 읽어 해당 파일 시스템이 FAT16인지 FAT32인지 확인하고 클러스터가 다루는 섹터의 크기, 볼륨의 기록 날짜/시간 정보, FAT 테이블의 위치 및 크기, 첫 번째 데이터 섹터의 위치 등을 계산할 수 있는 요소를 얻는다. 이후, 호스트는 이러한 요소를 기초로 저장 매체에 기록되어 있는 디렉토리와 파일을 확인하고 FAT 테이블을 얻고 원하는 디렉토리나 파일에 대한 읽기 명령을 내려 원하는 데이터를 얻는다.
다음으로, 광 디스크의 ISO9660 또는 UDF 파일 시스템에서 수집된 디렉토리와 파일들의 정보를 토대로 FAT32 파일 시스템 정보를 생성하는 방법을 설명한다.
디렉토리와 파일들에 대해 수집된 정보는 해당 디렉토리와 파일들의 존재 여부, 실제 기록된 위치 및 파일 크기에 대한 정보를 호스트에 보고할 때 활용되고, 이러한 정보들은 FAT32 파일 시스템이 규정하고 있는 포맷에 부합되도록 생성되어야 한다.
다음과 같이 FAT32 파일 시스템이 규정하고 있는 포맷대로 정보를 새로 생성하거나 수집된 디렉토리와 파일들에 대한 정보를 변환한다.
ISO9660/UDF 파일 시스템에는 없는 MBR 블록과 부트 섹터 내 부트 패러미터 블록을 자체적으로 생성하여 호스트가 요청할 때 바로 전송한다.
도 7은 MBR 블록에 포함되는 파티션 엔트리(Partition Entry)를 도시한 것으로, 4개의 파티션 엔트리 64 바이트 중에서 첫 번째 파티션 엔트리 16 바이트를 도 7과 같이 구성하고, 나머지 3개의 파티션 엔트리들은 블랭크 엔트리(Blank Entry)로 처리한다.
파티션 엔트리는, 선두로부터 순서대로 1 바이트의 부트 플래그(Boot Flag), 3 바이트의 CHS(Cylinder/Head/Sector) 개시 섹터(CHS Begin), 1 바이트의 유형 코드(Type Code), 3 바이트의 CHS 종료 섹터(CHS End), 4 바이트의 LBA 개시 섹터(LBA Begin) 및 4 바이트의 파티션 사이즈(섹터 수)(Number of Sectors)로 구성되는데, LBA Begin은 0x3F, Number of Sectors는 디폴트 값으로 0x44424h로 설정한다. 디스크에 기록된 데이터의 용량이 Number of Sectors를 초과하는 경우 실제 디스크의 용량만큼 Number of Sectors를 설정한다.
도 8은 부트 섹터에 포함되는 부트 패러미터 블록을 도시한 것이다.
도 8에서, 1 섹터마다 처리하는 바이트 수(Bytes Per Sector)는 2048 바이트이고, FAT 테이블이 처리하는 1 클러스터(Cluster)의 섹터 수(Sector Per Cluster)는 1 섹터로 설정하는데 CD/DVD가 처리하는 섹터 크기를 고려한 것이다. FAT 테이블 크기(FAT Size)는 광 디스크 드라이브에 인식된 디스크의 현재 기록 용량에 대비하도록 설정하는데, FAT 테이블 내 1 유닛(32 비트)은 1 섹터 즉, 약 2MB에 대응된다. 디스크의 기록 용량은 디스크에 기록된 데이터에 적용된 파일 시스템과 상관 없이 디스크의 리드인 영역에 기록된 물리적 포맷 정보 또는 디스크 정보를 이용하여 얻을 수 있다.
또한, 부트 섹터의 512 바이트 중 마지막 2 바이트에는 부트 섹터 시그니쳐(Boot Sector Signature)를 AA55h로 설정한다.
도 4와 도 5와 같은 과정을 통해 수집된 디렉토리들과 파일들의 정보는 현재 광 디스크 드라이브 내의 메모리(30)의 여유 공간이 어느 정도인지에 따라 변환할 총 디렉토리와 파일의 수가 제약을 받게 된다. 이는, 현재 인식된 디스크의 최대 용량 내에서 디렉토리와 파일의 총 개수에는 제약이 없으므로 디렉토리나 파일은 무수히 많을 수 있지만, 이에 대한 정보를 모두 변환하기 위해 사용하는 메모리(30)의 용량은 한정되어 있기 때문이다.
이러한 제약 사항을 보완하여 보다 많은 개수의 디렉토리와 파일의 정보를 변환하기 위해, 본 발명에서는 변환을 위한 디렉토리와 파일에 대한 정보를 처리할 때 큐잉(Queuing)을 통해 수집하고 변환하도록 메모리(30)를 운영한다. 이에 대한 상세한 설명은 다음과 같다.
도 9는 ISO9660 파일 시스템으로부터 수집한 디렉토리와 파일 정보를 FAT32 파일 시스템으로 변환하기 위해 Queue를 통해 관리하는 실시예를 도시한 것이다.
ISO9660의 경우에는 각 디렉토리의 정보를 읽을 경우 해당 디렉토리에 포함된 각 파일에 대한 정보를 바로 FAT32에 따른 파일 시스템 정보로 변환할 수 있다.
디렉토리 내 파일 리스트에서 파일을 제외한 디렉토리 정보를 Queue에 저장하고, Queue를 하나씩 빼면서 디렉토리 정보를 FAT32 파일 시스템 정보로 갱신한다. Queue를 이용하므로, 동일 계층(Hierarchy)에 대한 디렉토리 분석이 끝난 후 그 다음 하위 계층으로 진행된다.
1) 제일 처음 루트 디렉토리를 Dir Queue에 쌓고, Dir Queue에서 가장 먼저 들어온 아이템인 루트(Root)를 처리한다. 루트를 처리할 때 ID1과 ID5는 디렉토리이므로 Dir Queue에 쌓인다.
ID1~ID5에 대한 정보(각 파일/디렉토리의 시작 주소, 크기, 이름, 속성, 파일 이름 길이, 시간 정보 등)는 FAT32에 따른 파일 시스템 정보로 변환되어 메모리(30)의 메인 버퍼 영역(Main Buffer Area)에 저장되고, 메인 버퍼 영역에서 루트에 대한 정보(루트에 포함된 디렉토리와 파일인 ID1~ID5에 대해서 FAT32로 변환된 정보)가 시작하는 위치(0) 또는 그 위치를 가리키는 포인터가 메모리(30)의 디렉토리 정보 영역(Dir Info Area)에 저장되고, 각 파일(ID2~ID4)의 시작 위치와 크기 정보는 메모리(30)의 소트 정보 영역(Sort Info Area)에 저장된다.
각 파일 또는 디렉토리의 시작 주소는, MBR와 부트 섹터의 크기, FAT 테이블의 크기, 및 루트/서브 디렉토리 정보의 크기의 합, 즉 변환되는 FAT32 파일 시스템 정보가 차지할 크기 이상을 뒤로 이동시킨 값, 즉 광 디스크에 기록되는 원래 시작 주소와 변환될 FAT32 파일 시스템 정보 크기(파일 시스템 오프셋)의 합으로 변환될 수 있고, 광 디스크로부터 실제 데이터를 읽을 때에는 호스트로부터 요청된 주소에서 변환된 FAT32 파일 시스템 정보 크기인 파일 시스템 오프셋만큼 뺀 주소부터 데이터를 읽을 수 있다.
2) Dir Queue에는 ID1과 ID5가 쌓여 있고, Queue에서 먼저 들어온 ID1을 처리한다. ID1 디렉토리에는 ID6(디렉토리)과 ID7~9(파일)이 있으므로, 1)과 동일하게 ID6은 Dir Queue에 쌓이고, ID1에 있는 ID6~ID9에 대한 정보가 FAT32 파일 시스템 정보로 변환되어 메모리(30)의 메인 버퍼 영역에 저장되고, 메인 버퍼 영역에서 디렉토리 ID1에 대한 정보(ID1에 포함된 파일/디렉토리에 대해 FAT32로 변환된 정보)가 시작하는 위치(N)가 메모리(30)의 디렉토리 정보 영역에 저장되고, ID1에 포함된 각 파일(ID7~ID9)의 시작 위치와 크기 정보가 메모리(30)의 소트 정보 영역에 저장된다.
3) Dir Queue에는 ID5와 ID6이 쌓여 있고, Queue에 먼저 들어온 ID5를 처리한다. 1), 2) 과정과 비슷하게 처리하는데, 디렉토리 ID5는 서브 디렉토리를 포함하지 않고 파일(ID10~ID12)만을 포함하므로, ID10~ID12에 대한 정보가 FAT32로 변환되어 메모리(30)의 메인 버퍼 영역에 저장되고, 메인 버퍼 영역에서 디렉토리 ID5에 대해서 FAT32로 변환된 정보가 시작하는 위치(N+M)가 메모리(30)의 디렉토리 정보 영역에 저장되고, ID5에 포함된 각 파일(ID10~ID12)의 시작 위치와 크기 정보가 메모리(30)의 소트 정보 영역에 저장된다.
도 10은 UDF 파일 시스템으로부터 수집한 디렉토리와 파일 정보를 FAT32 파일 시스템으로 변환하기 위해 Queue를 통해 관리하는 실시예를 도시한 것이다.
UDF 파일 시스템의 경우, 파일 식별자(FID)를 읽을 때 FAT32 변환에 필요한 모든 정보를 얻을 수 없고, 파일 엔트리(FE)까지 읽어야만 파일 위치 등 정보를 추가로 얻어 FAT32 파일 시스템 정보를 완성할 수 있다.
디렉토리에 대해서 Queue를 만드는 ISO9660과 다르게, UDF에서는 파일 엔트리에 대해서 Queue를 만들어 모든 FE에 대한 작업 내용을 Queue에 쌓고 먼저 들어온 순서대로, 즉 FIFO(First Input First Output) 방식으로 처리한다.
1) 제일 처음 루트 파일 엔트리(Root FE)에 대한 정보(시작 위치, 크기 등)을 Queue에 쌓는다. 가장 먼저 들어오는 데이터가 Root FE이므로, 이에 대한 FID를 분석하여 루트에 포함된 파일/디렉토리에 대한 FE1~FE5를 모두 Queue에 쌓아 둔다.
메인 버퍼 영역에서 볼륨 식별자(VID: Volume ID)를 제외한 ID1~ID5는 이에 대한 파일 엔트리(FE)를 읽어야 FAT32로 변환되는 파일 시스템 정보의 각 엔트리(Entry)가 완료되므로, 현 단계에서는 ID1~5에 대한 FAT32 Entry는 완료되지 않은 상태이다.
디렉토리 정보 영역에는 메인 버퍼 영역에서 루트에 대한 정보(루트에 포함된 파일/디렉토리에 대해서 FAT32의 파일 시스템으로 변환되는 정보)가 시작되는 위치(0) 정보가 저장된다.
아직 파일 또는 디렉토리의 FE에 대한 정보가 없으므로, 소트 정보 영역에는 쌓이는 데이터가 없다.
2) FE Queue에서 가장 처음 들어온 파일 엔트리인 FE1을 꺼내어 처리한다.
이때 FE1가 가리키는 곳은 FID이므로, FID를 분석하여 ID1 폴더에 포함된 각 FE6~FE9에 대한 작업 내역을 FE Queue에 쌓는다.
FE1이 분석되므로, FE1에 대응하는 ID1에 대한 FAT32 Entry 완성이 가능하다.
2번째 디렉토리인 ID1에 대한 정보(ID1에 포함된 파일과 디렉토리에 대해 FAT32로 변환된 정보 엔트리)가 메인 버퍼 영역에서 시작하는 위치를 알 수 있으므로, 디렉토리 정보 영역에 N을 추가한다.
아직 파일 FE에 대한 정보가 없으므로 소트 정보 영역에는 쌓이는 데이터가 없다.
3) FE Queue에서 다음 파일 엔트리인 FE2를 꺼내어 처리한다.
FE2는 파일이므로, 메인 버퍼 영역에서 ID2에 해당하는 Entry를 완성한다.
소트 정보 영역에 ID2에 해당하는 파일 정보인 파일의 시작 위치와 크기 정보를 저장한다.
FE Queue에 쌓인 파일 엔트리에 대해서, 2) 또는 3) 동작을 반복한다.
도 11은 FAT32 파일 시스템으로 변환하기 위해 할당된 메모리 구조와 생성된 FAT32 파일 시스템 구조를 도시한 것이다. MBR과 부트 섹터의 내용은 광 디스크의 파일 시스템에 대한 분석 없이 광 디스크의 디스크 정보만을 이용하여 광 디스크 드라이브 자체적으로 생성할 수 있다. FAT 테이블과 루트 디렉토리 및 서브 디렉토리의 내용은 도 9 또는 도 10과 같은 과정을 통해서 수집되어 메모리(30)의 메인 버퍼 영역, 디렉토리 정보 영역, 또는 소트 정보 영역에 저장된 정보를 기초로 생성할 수 있다.
한편, UDF 파일 시스템에서 파일 엔트리(FE) 내 AD(Allocation Descriptor)의 유형이 Immediate인 경우에는 다른 파일 엔트리와는 달리 예외적으로 처리해야 한다.
Immediate AD는 특정 파일에 대한 파일 엔트리의 1 섹터 내에 해당 파일에 대한 정보와 해당 파일의 실제 데이터(Actual Data)를 모두 포함하는지 여부를 알리는 설명자를 말한다. 참고로, 본 발명에서는 Immediate AD에 대한 처리는 2MB 이하의 작은 크기의 파일에 대해서만 처리가 가능하도록 한다.
파일 엔트리 내 Immediate AD 형태로 파일의 실제 데이터가 바로 이어지는 경우의 1 섹터의 구조는 도 12와 같다.
1 섹터 내 파일의 실제 데이터가 시작하는 바이트 위치(Byte Position)는 파일 엔트리 내 확장된 속성(Extended Attribute)의 길이(Length) 필드 값에 따라 유동적일 수 있으므로, 해당 필드 값을 근거로 계산되어야 한다.
UDF 파일 시스템의 정보를 수집하는 동안, 파일에 대한 정보가 Immediate AD 형태로 기록되어 있다면, 해당 파일의 시작 위치를 메모리(30) 내의 Immediate AD를 위한 영역에 따로 저장한 후에, 호스트로부터 읽기 요청된 주소가 Immediate AD인 파일이 기록된 곳을 가리키면, 해당 1 섹터를 다시 읽어 파일의 실제 데이터가 시작하는 바이트 위치를 확인하고 확인된 바이트 위치로부터 실제 데이터(Raw Data)를 읽고 전송 버퍼에 1 섹터 단위의 반환 데이터로 재구성하여 호스트에 전송한다.
또한, 전송 버퍼에 데이터를 쌓아 새로운 1 섹터를 만들 때, 도 12와 같이, 실제 데이터의 시작 위치인 N을 새로운 1 섹터의 첫 번째 바이트 위치 0으로 시프트시켜 배치하고, 해당 1 섹터의 나머지 바이트는 0으로 패딩하여 전송한다.
다음으로, UDF 파일 시스템으로부터 추출한 파일 정보 중 파일의 크기(Size)가 '0'인 경우에 대한 처리를 설명한다.
파일 엔트리(FE) 혹은 확장된 파일 엔트리(Extended File Entry: EFE)는 해당 FE(혹은 EFE)가 포함하고 있는 Allocation Descriptor들의 전체 길이(Total Length)를 FE는 172~175번째 바이트(Length of Allocation Descriptor)에, EFE는 212~215번째 바이트(Length of Allocation Descriptor)에 나타내는데, 도 13에 파일 엔트리와 확장된 파일 엔트리의 일부를 도시하고 있다.
그런데, 윈도우 OS의 내장 기록 도구(Tool) 중에는 기록한 파일의 크기가 '0'인 경우, FE (혹은 EFE)내 length of allocation descriptor 필드의 값마저 0x00000000으로 기록하는 경우가 있다. 이러한 경우, 본 발명은, UDF 파일 시스템으로부터 디렉토리 및 파일의 정보를 수집하여 분석할 때, AD가 존재하고 크기가 '0'이라고 하더라도 해당 파일의 정보를 추출하여 메모리(30) 내 소트 정보 영역에 저장하고, 호스트가 요청할 때 FAT 테이블에 해당 파일에 대한 데이터도 포함시켜 생성한다.
비록 실제 데이터는 없는 경우이지만, 현재 로드되어 있는 디스크에 기록된 파일의 정보를 정확하게 FAT32 파일 시스템으로 변환하는 것이 중요하고, PC 환경에서 디렉토리 및/또는 파일을 복사하고자 할 때 모든 파일에 대해 정상적으로 복사가 이루어지는 것이 필요하기 때문이다.
다음으로, FAT32 파일 시스템으로 변환하기 위해 파일 및 디렉토리 정보를 저장하는 메모리(30)의 메인 버퍼 영역이 데이터를 더 이상 저장할 공간이 없는 경우의 처리 방법에 대해 설명한다.
도 11의 FAT32 파일 시스템으로의 변환을 위한 DRAM 메모리의 구조에서 변환해야 할 파일이나 디렉토리가 남아 있음에도 불구하고, 최종 FAT32로 변환된 파일 시스템 정보(디렉토리와 파일에 대해 변환된 정보)가 저장되는 메인 버퍼 영역이 데이터로 가득 찬(Data full) 상태가 되어 더 이상 변환된 정보를 저장할 수 없을 때, 예를 들어 크기가 크지 않은 파일이나 디렉토리가 매우 많을 때, 아직 변환되지 않은 디렉토리에 대해서는 다음과 같이 처리한다.
1) 제어기(40)는 삽입된 디스크의 파일 시스템을 분석하여 전체 디렉토리의 개수와 파일의 개수를 확인하고, 각 디렉토리와 파일을 FAT32 파일 시스템 정보로 변환하면서 메모리(30)의 메인 버퍼 영역에 저장하고, 각 디렉토리에 대해서 변환되어 저장되는 정보가 메인 버퍼 영역에서 위치하는 곳을 가리키는 소정 크기(예를 들어 32 비트)의 포인터를 디렉토리 정보 영역에 저장한다.
메인 버퍼 영역이 여유 공간이 없어지면 변환되지 않고 남은 각 디렉토리에 대해서 해당 디렉토리의 부모(Parent directory) 디렉토리 정보 32 바이트와 자신(Itself directory) 디렉토리에 대한 정보 32 바이트를 도 14과 같이 생성하고, 메모리(30) 내 어떠한 용도로 사용되지 않는 예비 영역에 임시로 64 바이트를 할당하여 저장하고, 디렉토리 정보 영역에는 예비 영역에 저장된 디렉토리에 대해서 00 데이터 또는 미리 정해진 소정 패턴의 데이터를 기록한다.
예를 들어, 전체 디렉토리의 수가 N개임에도 불구하고, 디렉토리 정보 영역에서 ((N-3) x 32bits)만이 메인 버퍼 영역 내의 소정 위치를 가리키는 의미있는 데이터를 포함하고, ((N-2) x 32bits)부터는 00 데이터 또는 소정 패턴의 데이터만 기록되어 있다면, (N-2)번째, (N-1)번째, N번째 디렉토리는 메모리(30)의 메인 버퍼 영역이 데이터 풀인 상태가 되어 (N-2) 번째 이후의 디렉토리에 대한 정보는 64 바이트씩 순차적으로 예비 영역에 기록되어 있다고 판단할 수 있다.
참고로, 모든 디렉토리는 항상 자신의 parent와 자기 자신에 대한 정보를 가지고 있어야 하고, 이를 이용하여 각 디렉토리의 계층 구조를 확인할 수 있다.
2) 호스트로부터 임의의 디렉토리에 대한 정보를 요청 받았을 때, 디렉토리 정보 영역에서 요청된 디렉토리에 대해 변환된 데이터를 포함하는 메인 버퍼 영역에서의 위치를 가리키는 포인터에 00 또는 소정 패턴의 데이터가 기록되어 있는 경우, 요청된 디렉토리에 대한 정보를 메모리(30)의 예비 영역에서 읽어 호스트에 보고한다.
3) 서브 디렉토리(Sub directory)와 파일을 가지고 있지 않은 빈 디렉토리에 대해서도 1)과 2) 과정을 거처 호스트에 보고한다.
다음으로, 광 디스크 드라이브에서 오디오 씨디(Audio CD)가 인식된 경우에 대한 처리 방법이다.
본 발명에서는 오디오 씨디 내 트랙(Track)을 재생할 수 없는 가전 기기나 포터블 기기에서도 재생이 가능하도록, 오디오 씨디가 인식된 경우는 각 오디오 트랙을 track # .wav 파일로 재구성하고 최종으로 FAT32 파일 시스템 정보를 생성한다.
도 15는 오디오 씨디 트랙을 Wave 파일 형식으로 바꾸는 과정을 도시한 것이다.
이를 구현하기 위해서는 인식된 오디오 CD 내 총 트랙의 개수 및 각 트랙의 시작 주소를 드라이브 내부에 저장하고, 각 트랙의 시작 위치 정보와 크기 정보를 근거로 FAT32 파일 시스템 정보로 구성하는데, 루트 디렉토리 내에 트랙 개수만큼의 track #.wav 파일들이 존재하는 구조로 구성한다.
FAT32 파일 시스템으로 변환 완료 후, 호스트 시스템으로부터 각 파일에 대해 액세스가 시도될 때, 다음과 같이 동작하도록 한다.
1) 호스트 시스템으로부터 웨이브 파일 재생(Wave File Play) 요청이 들어오면, 광 디스크 드라이브는 내부적으로 읽기 시작 주소(read start address)를 확인하고, 실제 오디오 트랙의 데이터에 대한 디스크 내 주소를 READ CD ATAPI command를 통해 계산하여 보관한다.
2) 읽기 요청된 오디오 트랙을 웨이브 파일 형식으로 호스트에 보고하였으므로, 우선 웨이브 파일과 같은 형태로 오디오 트랙 데이터를 새롭게 구성하기 위해 다음과 같은 처리를 실시한다.
a) wave file의 헤더(Header)로 쓰일 RIFF chunk, fmt chunk, data chunk를 만드는데, 파일 헤더는 트랙마다 만든다.
b) 광 디스크 드라이브는 내부적으로 읽기 요청된 오디오 트랙의 데이터를 READ CD command를 통해 읽어 메모리 내에 임시로 저장한다.
c) a) 과정을 거쳐 만들어진 wave file의 헤더 데이터와 b) 과정을 통해 읽은 오디오 데이터를 전송을 위한 전송 버퍼에 쌓기 위해 섹터 단위로 만들어 준다.
3) 한 트랙에 대한 읽기 요청이 끝나고, 다음 트랙에 대한 읽기 요청이 인가되면, 2)번 과정의 a)부터 c)까지 과정을 되풀이 하여 전송 버퍼에 쌓아 줌으로써 호스트 시스템에 보고한다.
ISO9660/UDF 파일 시스템으로부터 수집된 디렉토리와 파일들에 대한 정보가 FAT32 파일 시스템으로 변환 완료되면, 광 디스크 드라이브는 호스트 시스템에 다시 연결을 시도하고, 호스트 시스템은 연결된 디바이스(광 디스크 드라이브)에 대한 정보를 얻기 위해 액세스를 시도하게 된다.
광 디스크 드라이브는 호스트 시스템으로부터 읽기 요청된 주소를 기반으로 요청된 주소에 대응되는 파일 시스템 정보를 호스트 시스템에 보고하는데, 도 16에 호스트의 액세스에 대응하여 요청된 주소를 기반으로 데이터를 준비하여 호스트에 전송하는 과정을 도시한 것이다.
호스트가 요청한 LBA가 MBR이거나 부트 섹터에 있는 경우, 광 디스크 드라이브가 자체적으로 생성한 데이터를 전송 버퍼에 넣어 호스트에 전송한다.
호스트가 디바이스 내 디렉토리와 파일들의 정보(루트 디렉토리/서브 디렉토리 정보)를 요청하고 있는 경우, 메모리(30) 내에 메인 버퍼 영역과 디렉토리 정보 영역에 새롭게 변환하여 생성해 놓은 데이터를 기반으로 요청한 데이터를 보고한다.
호스트가 디바이스 내 파일의 실제 파일 데이터를 요청하는 경우, 메모리(30) 내의 메인 버퍼 영역과 소트 정보 영역에 저장된 디렉토리 및 파일에 대한 정보를 기초로 호스트가 요청한 주소에 대응하는, 디스크에서 실제 데이터가 기록되어 있는, 주소를 계산하고 계산된 주소에서 데이터를 독출하여 호스트에 전송하는데, 호스트가 요청한 주소에서 FAT32로 변환된 파일 시스템 정보의 크기인 파일 시스템 오프셋만큼 뺀 주소로부터 디스크에서 데이터를 독출한다.
호스트가 FAT 테이블을 요청하는 경우, 메모리(30) 내의 메인 버퍼 영역, 디렉토리 정보 영역 및 소트 정보 영역에 저장된 디렉토리 및 파일에 대한 정보를 기초로 요청한 주소에 기록될 FAT 테이블 데이터를 생성하여 호스트에 전송하는데, 이에 대해서는 다음에 설명한다.
FAT 테이블은 매체에 기록된 데이터의 양(데이터 영역에 기록된 섹터의 개수)이 많아짐에 따라 그 크기도 커지기 때문에, 광 디스크의 파일 시스템을 FAT32로 변환할 때 FAT 테이블을 모두 메모리(30)에 저장할 수 없게 되고, 호스트의 요청에 따라 FAT 테이블을 새로 생성하여 전송할 수 밖에 없다.
FAT 테이블은 디스크에 기록된 디렉토리와 파일 데이터가 기록된 주소에 대한 비트맵(Bitmap)과 같은 역할을 하며, FAT 테이블 내 각 유닛(Unit)은 32bits(1 DWORD)이며, 본 발명에서는 광 디스크에서 일반적인 섹터 처리 단위를 근거로 하여 1 DWORD가 하나의 섹터를 대변한다.
FAT 테이블 데이터의 생성에 대한 구체적인 방법은 도 17에 도시되어 있다.
예를 들어 File #1은 클러스터(Cluster) 17, 18, 19, 20, 21, 22, 23, 24까지 기록되어 있고, File #2는 클러스터 n, n+1, n+3까지 기록되어 있다고 할 때, FAT 테이블에서 각 파일의 주소는 17번째와 n번째 FAT 유닛에서 시작하며, 각 유닛은 다음 섹터의 번호를 나타내며, 해당 파일이 차지하고 있는 섹터의 마지막 유닛에는 0x0FFFFFFF를 기입한다. 데이터가 기록되지 않은 유닛은 0x00000000이 기입된다.
호스트로부터의 실제 데이터 읽기 요청에 대해 광 디스크 드라이브가 신속하게 데이터를 읽어 전송하기 위해서는, ISO9660/UDF 파일 시스템으로부터 디렉토리와 파일들의 정보를 수집할 때 정렬하는 처리를 먼저 하는 것이 유리하다.
도 9 내지 도 11에서 설명한 것과 같이, FAT32 파일 시스템으로 변환하기 위해 수집한 정보 중 각 디렉토리의 시작 위치와 길이 정보를 메모리(30) 내 디렉토리 정보 영역에 저장하고, 모든 파일들에 대해서 각 파일의 시작 위치와 크기를 모두 수집하여 도 18에 도시한 방법(임의 순서로 나열된 파일 정보에서 순차적으로 다음 파일과 시작 주소를 비교하여 가장 낮은 주소에서 가장 높은 주소 순서로 파일 정보의 순서를 바꾸어)으로 오름차순으로 정렬하여 메모리(30) 내 소트 정보 영역에 저장한다.
오름차순으로 정렬된 파일 정보(위치 및 크기)를 통해 호스트로부터 요청된 주소의 파일 데이터를 처음 읽고 전송한 이후에는, 소트 정보 영역을 전체 서칭할 필요 없이 현재 read address와 기억하고 있는 이전 read address를 비교하여 현재 읽을 주소에 대한 정보가 있는 메모리 포인트에서 위와 아래 근접 영역에 대해서만 서칭하여 목적 주소에 대한 정보를 빠르게 찾을 수 있다. 호스트의 읽기 요청 주소의 경향을 통계적으로 분석하여 첫 읽기 이후 검색 범위를 결정할 수 있다.
도 19는 랜덤하게 정렬된 파일 정보를 기반으로 파일 정보를 검색하는 경우에 비해 시작 주소로 정렬된 파일 정보를 기반으로 파일 정보를 검색하는 경우 검색 시간이 단축되는 예를 도시한 것이다.
한편, 특정 디바이스에서는 단지 파일 시스템만을 FAT32로 변환하여 전송한다고 해서 정상적으로 디스크에 기록된 컨텐츠를 재생할 수 있는 것은 아닌데, 사진 액자(Photo Frame) 등을 예로 들 수 있다.
이와 같은 디바이스와의 호환성 향상을 위해, 본 발명에서는, 사진 액자와 같은 디바이스가 광 디스크 드라이브를 인식한 후 발행하는 Get Descriptor Configuration Command에 대한 보고 데이터에서, 도 20과 같이, Subclass code 필드 값을 USB 메모리처럼 0x06(SCSI Command)로 설정하여 보고할 수 있다.
이상 전술한 본 발명의 바람직한 실시예는 예시의 목적을 위해 개시된 것으로, 당업자라면 이하 첨부된 특허청구범위에 개시된 본 발명의 기술적 사상과 그 기술적 범위 내에서, 다양한 다른 실시예들을 개량, 변경, 대체 또는 부가 등이 가능할 것이다.
10: 로더 20: 인터페이스
30: 메모리 40: 제어기
100: 광 디스크 드라이브

Claims (23)

  1. 광 디스크에 기록된 데이터에 대해 수집되는 파일 시스템 정보를 기초로 제 1 파일 시스템이 규정하는 정보의 생성에 필요한 데이터를 생성하여 메모리에 저장하되, 상기 광 디스크에 기록된 디렉토리와 파일에 대해 상기 제 1 파일 시스템으로 변환한 제 1 데이터, 상기 디렉토리에 대한 제 2 데이터 및 상기 파일에 대한 제 3 데이터를 상기 메모리 내에서 서로 분리하여 저장하는, 단계; 및
    상기 분리 저장된 데이터의 적어도 일부를 변환하여 호스트로부터 요청되는 정보를 얻고 이를 상기 호스트에 전송하는 단계를 포함하여 이루어지고,
    상기 제 1 데이터는 각 파일 또는 디렉토리에 대해서 데이터의 시작 주소, 크기, 이름, 속성, 이름 길이, 시간 정보 중 적어도 하나 이상을 포함하고, 상기 제 2 데이터는 상기 변환된 제 1 데이터가 저장되는 영역 내에서 각 디렉토리에 대해 변환된 데이터가 시작되는 위치를 포함하고, 상기 제 3 데이터는 각 파일의 실제 데이터의 시작 위치와 크기 정보를 포함하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  2. 제 1항에 있어서,
    상기 전송하는 단계는, 상기 호스트에서 수신되는 커맨드에 포함된 주소를 기초로 상기 호스트로부터 요청되는 정보를 확인하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  3. 삭제
  4. 제 1항에 있어서,
    상기 제 1 데이터가 저장되는 영역에 여유 공간이 없는 경우, 상기 제 1 데이터로 변환되지 않은 디렉토리에 대해서 부모 디렉토리에 대한 데이터와 자신의 디렉토리에 대한 데이터를 생성하여 상기 메모리의 예비 영역에 저장하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  5. 삭제
  6. 삭제
  7. 제 1항에 있어서,
    상기 제 3 데이터가 기록되는 영역 내에서 상기 제 3 데이터를 각 파일의 시작 위치를 기준으로 오름 차순으로 정렬하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  8. 제 1항에 있어서,
    상기 실제 데이터의 시작 위치는, 상기 디스크에 기록된 원래 시작 주소에 상기 디스크에 기록된 데이터에 대해서 상기 제 1 파일 시스템으로 변환할 때 생성되는 파일 시스템 정보의 크기를 오프셋으로 더한 값으로 표현되는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  9. 제 1항에 있어서,
    상기 광 디스크의 파일 시스템이 UDF이고 파일 엔트리 내에 Allocation Descriptor가 있고 크기가 0인 파일에 대해서, 해당 파일의 실제 데이터의 시작 위치와 크기 정보를 상기 제 3 데이터로 기록하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  10. 제 1항에 있어서,
    상기 전송하는 단계는, 상기 호스트로부터 루트 또는 디렉토리에 대한 정보가 요청되면, 상기 제 2 데이터를 참고하여 상기 제 1 데이터로부터 요청된 데이터를 선별하여 전송하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  11. 제 1항에 있어서,
    상기 전송하는 단계는, 상기 호스트로부터 파일 또는 디렉토리의 데이터가 기록된 주소가 나열된 정보가 요청되면, 상기 제 1 데이터 내지 제 3 데이터를 기초로 요청된 정보를 생성하여 전송하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  12. 제 1항에 있어서,
    상기 전송하는 단계는, 상기 호스트로부터 FAT32의 MBR 또는 부트 섹터가 요청되면, 상기 광 디스크에 기록된 데이터의 파일 시스템과 상관 없이 상기 MBR 또는 부트 섹터를 생성하여 전송하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  13. 제 12항에 있어서,
    상기 MBR 또는 부트 섹터에 포함되는 디스크의 기록 용량과 관련된 정보는 상기 광 디스크의 리드 인 영역에서 독출되는 디스크 정보 또는 물리적 포맷 정보로부터 얻는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  14. 제 1항에 있어서,
    상기 수집되는 파일 시스템 정보 중 일부를 Queue를 통해 관리하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  15. 제 14항에 있어서,
    상기 수집되는 파일 시스템 정보 중 디렉토리 정보 또는 파일 엔트리 정보를 Queue에 저장하고 상기 Queue에 저장된 정보를 먼저 저장된 순서대로 처리하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  16. 제 1항에 있어서,
    상기 광 디스크의 파일 시스템이 UDF인 경우, Allocation Descriptor의 유형이 immediate인 파일 엔트리에 대해서 해당 파일의 시작 위치를 제 4 데이터로 상기 메모리에 따로 저장하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  17. 제 16항에 있어서,
    상기 전송하는 단계는, 상기 호스트로부터 상기 제 4 데이터에 포함되는 주소가 요청되면, 상기 요청된 주소가 가리키는 섹터로부터 실제 데이터를 읽고 읽은 데이터 이후에 제로를 패딩하여 섹터 단위로 재구성하여 전송하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  18. 제 1항에 있어서,
    상기 전송하는 단계는, 상기 호스트로부터 Get Descriptor Configuration Command가 전송되면, 보고 데이터의 Subclass code 필드 값을 0x06로 설정하여 전송하는 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  19. 제 1항에 있어서,
    상기 광 디스크의 파일 시스템은 ISO9660 또는 UDF이고, 상기 제 1 파일 시스템은 FAT32인 것을 특징으로 하는 광 디스크 드라이브에서 데이터 변환 방법.
  20. 광 디스크로부터 데이터를 읽거나 광 디스크에 데이터를 기록하는 로더;
    호스트와 연결되는 인터페이스;
    데이터를 저장하기 위한 메모리; 및
    상기 로더를 통해 광 디스크에 기록된 데이터에 대해 파일 시스템 정보를 수집하고, 상기 수집되는 정보를 기초로 제 1 파일 시스템이 규정하는 정보의 생성에 필요한 데이터를 생성하여 상기 메모리에 저장하되, 상기 광 디스크에 기록된 디렉토리와 파일에 대해 상기 제 1 파일 시스템으로 변환한 제 1 데이터, 상기 디렉토리에 대한 제 2 데이터 및 상기 파일에 대한 제 3 데이터를 상기 메모리 내에서 서로 분리하여 저장하고, 상기 분리 저장된 데이터의 적어도 일부를 변환하여 상기 호스트로부터 요청되는 정보를 얻고, 상기 얻은 정보를 상기 호스트에 전송하도록 상기 인터페이스를 제어하는 제어기를 포함하여 구성되고,
    상기 제 1 데이터는 각 파일 또는 디렉토리에 대해서 데이터의 시작 주소, 크기, 이름, 속성, 이름 길이, 시간 정보 중 적어도 하나 이상을 포함하고, 상기 제 2 데이터는 상기 변환된 제 1 데이터가 저장되는 영역 내에서 각 디렉토리에 대해 변환된 데이터가 시작되는 위치를 포함하고, 상기 제 3 데이터는 각 파일의 실제 데이터의 시작 위치와 크기 정보를 포함하는 것을 특징으로 하는 광 디스크 드라이브.
  21. 삭제
  22. 삭제
  23. 삭제
KR1020100129645A 2010-12-17 2010-12-17 광 디스크 드라이브에서 데이터 변환 방법 KR101151684B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020100129645A KR101151684B1 (ko) 2010-12-17 2010-12-17 광 디스크 드라이브에서 데이터 변환 방법
US13/241,108 US20120158804A1 (en) 2010-12-17 2011-09-22 Method for converting data in optical disc drive
CN2011104389424A CN102750958A (zh) 2010-12-17 2011-12-19 用于在光盘驱动器中转换数据的方法
EP11009948A EP2466447A2 (en) 2010-12-17 2011-12-19 Method for converting data in optical disc drive

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100129645A KR101151684B1 (ko) 2010-12-17 2010-12-17 광 디스크 드라이브에서 데이터 변환 방법

Publications (1)

Publication Number Publication Date
KR101151684B1 true KR101151684B1 (ko) 2012-06-14

Family

ID=45495578

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100129645A KR101151684B1 (ko) 2010-12-17 2010-12-17 광 디스크 드라이브에서 데이터 변환 방법

Country Status (4)

Country Link
US (1) US20120158804A1 (ko)
EP (1) EP2466447A2 (ko)
KR (1) KR101151684B1 (ko)
CN (1) CN102750958A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170125471A (ko) * 2016-05-04 2017-11-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102651226B (zh) * 2011-02-28 2013-08-28 联发科技(新加坡)私人有限公司 光碟机及光盘读取方法
US20140052880A1 (en) * 2012-08-14 2014-02-20 Lite-On It Corporation External cd module with usb interface and operation method thereof
KR101978515B1 (ko) * 2012-10-11 2019-05-14 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
KR102053406B1 (ko) * 2012-10-11 2019-12-06 에스케이하이닉스 주식회사 데이터 저장 장치 및 그 동작 방법
US9569113B2 (en) * 2012-10-11 2017-02-14 SK Hynix Inc. Data storage device and operating method thereof
CN104679697B (zh) * 2015-02-28 2018-06-08 广州酷狗计算机科技有限公司 文件读取方法、装置及光驱驱动板和光驱设备
CN111475462B (zh) * 2020-03-10 2023-01-13 苏州浪潮智能科技有限公司 一种自适应移动存储器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010069858A (ko) * 2001-05-15 2001-07-25 양덕준 멀티미디어 파일 재생 시스템 및 방법
KR20050118731A (ko) * 2003-04-14 2005-12-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 유니버셜 드라이브장치용 포맷 매핑 방식
JP2010211880A (ja) 2009-03-11 2010-09-24 Sharp Corp ディスクドライブ装置、その制御方法、プログラム、及び、記録媒体
KR20110000294A (ko) * 2009-06-26 2011-01-03 도시바삼성스토리지테크놀러지코리아 주식회사 광 디스크 드라이브 및 그 구동 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03149614A (ja) * 1989-08-31 1991-06-26 Univ California 情報処理システム及び記憶処理方法
KR100804671B1 (ko) * 2006-02-27 2008-02-20 엔에이치엔(주) 응답 지연 제거를 위한 로컬 단말기 검색 시스템 및 방법
US8843449B2 (en) * 2009-06-16 2014-09-23 Bmc Software, Inc. Unobtrusive copies of actively used compressed indices
US9235351B2 (en) * 2009-06-26 2016-01-12 Toshiba Samsung Storage Technology Korea Corporation Selective interfacing apparatus and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010069858A (ko) * 2001-05-15 2001-07-25 양덕준 멀티미디어 파일 재생 시스템 및 방법
KR20050118731A (ko) * 2003-04-14 2005-12-19 코닌클리케 필립스 일렉트로닉스 엔.브이. 유니버셜 드라이브장치용 포맷 매핑 방식
JP2010211880A (ja) 2009-03-11 2010-09-24 Sharp Corp ディスクドライブ装置、その制御方法、プログラム、及び、記録媒体
KR20110000294A (ko) * 2009-06-26 2011-01-03 도시바삼성스토리지테크놀러지코리아 주식회사 광 디스크 드라이브 및 그 구동 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170125471A (ko) * 2016-05-04 2017-11-15 에스케이하이닉스 주식회사 데이터 처리 시스템 및 데이터 처리 시스템의 동작 방법

Also Published As

Publication number Publication date
US20120158804A1 (en) 2012-06-21
CN102750958A (zh) 2012-10-24
EP2466447A2 (en) 2012-06-20

Similar Documents

Publication Publication Date Title
KR101151684B1 (ko) 광 디스크 드라이브에서 데이터 변환 방법
CN100557577C (zh) 数据存储设备、数据存储方法以及记录/再现系统
US9875033B2 (en) Apparatus and method for minimizing data storage media fragmentation
CA2693691C (en) Direct mass storage device file indexing
KR101422792B1 (ko) 파일 시스템들을 통합하기 위한 디바이스 및 방법
JP2005174345A (ja) ファイルシステムフォーマットの変換方法及びその装置
JP2017211920A (ja) ストレージ制御装置、ストレージシステム、ストレージ制御方法およびストレージ制御プログラム
US20120113779A1 (en) Method for sending data in optical disc drive capable of changing mode
JP4221959B2 (ja) ブリッジファイルシステム、コンピュータシステム、ブリッジファイルシステムを用いたデータ管理方法及び記録媒体
US7716412B2 (en) Data storage apparatus and data access method for controlling address information for data writing using a free area control table
US20050152251A1 (en) Method and apparatus for recording check data of file system on recording medium
US9235352B2 (en) Datastore for non-overwriting storage devices
EP1713071A1 (en) Control device, control method, recording device, and recording method
JP4525357B2 (ja) オーディオデータの記録再生装置
JP2020123157A (ja) 情報処理装置、および情報処理方法、並びにプログラム
US20220129505A1 (en) Object storage data storage approaches
JP4269870B2 (ja) 記録再生装置及び記録方法
JP4470471B2 (ja) 記録再生装置及び方法、並びに記録再生システム
US20150324127A1 (en) Storage control apparatus and storage control method
US20140059305A1 (en) Management apparatus, storage device, and initialization method
KR20030061948A (ko) 정보 저장 장치 및 그를 이용한 파일 관리 방법
KR101137835B1 (ko) 모드 전환이 가능한 광 디스크 드라이브 및 모드 전환 방법
JP6104089B2 (ja) 記録媒体の記録履歴の取得方法、そのためのプログラム及び、プログラムの記録媒体
KR101203906B1 (ko) 모드 전환이 가능한 광 디스크 드라이브에서 데이터 전송 방법
JP2005135525A (ja) 記録再生装置、記録再生方法、及び記録再生プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee