KR20030001392A - 기억 장치 내의 디지털 기억 매체에 대한 정보에액세스하기 위한 파일 시스템 및 방법 - Google Patents

기억 장치 내의 디지털 기억 매체에 대한 정보에액세스하기 위한 파일 시스템 및 방법 Download PDF

Info

Publication number
KR20030001392A
KR20030001392A KR1020027012836A KR20027012836A KR20030001392A KR 20030001392 A KR20030001392 A KR 20030001392A KR 1020027012836 A KR1020027012836 A KR 1020027012836A KR 20027012836 A KR20027012836 A KR 20027012836A KR 20030001392 A KR20030001392 A KR 20030001392A
Authority
KR
South Korea
Prior art keywords
file system
storage
system object
identifier
file
Prior art date
Application number
KR1020027012836A
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 데이타플레이, 인코포레이티드
Publication of KR20030001392A publication Critical patent/KR20030001392A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/14Details of searching files based on file metadata
    • G06F16/148File search processing
    • 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/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • 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/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Library & Information Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

기억 장치 내에 내장된 기억 장치 제어기에 의해 디지털 기억 매체에 대한 정보에 액세스하기 위한 파일 시스템이 제공된다. 기억 장치 제어기는 파일 시스템 명령을 갖는 패킷을 수신하기 위한 인터페이스 소자를 포함한다. 기억 장치 제어기 내의 명령 디코드 소자는 파일 시스템 명령을 해독하고, 인터페이스 응답 구조 소자는 파일 시스템 명령을 실행하기 위한 전략을 생성한다. 기억 장치 제어기는 파일 시스템 오브젝트에 대한 식별자를 생성하고, 상기 파일 시스템 오브젝트의 식별자를 사용하여 파일 시스템 오브젝트에 액세스한다. 기억 장치에 연결된 호스트 시스템은 응용 프로그램으로부터 기억 장치 액세스 요구를 수신하고, 상기 기억 장치 액세스 요구에 기초하여 파일 시스템 오브젝트에 대하여 실행할 명령을 생성한다. 호스트 시스템은 액세스될 파일 시스템 오브젝트를 나타내기 위해 식별자를 사용한다.

Description

기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하기 위한 파일 시스템 및 방법{FILE SYSTEM MANAGEMENT EMBEDDED IN A STORAGE DEVICE}
인터넷과 같은 컴퓨터 네트워크를 통해서 영화, 음악, 책 및 다른 매체의 카피를 다운로드하는 것은 점점 널리 보급되고 있다. 또한, 고객이 다운로드된 정보에 액세스할 수 있는 디바이스의 크기와 다른 종류의 수가 증가하고 있다. 그러나 중요한 것은 권한이 없는 액세스, 카피 및 분배로부터 다운로드된 매체 및 미리 기록된 매체 모두를 보호하는 것이다.
하드디스크, 플로피 디스크, CD-ROM과 DVD 드라이브와 같은 WORM(write once read many) 드라이브를 포함하는 대부분의 종래 기술의 기억 장치들은 블록 레벨 디바이스로서 분류된다. 도 1에 실례로서 도시된 바와 같은 디지털 포맷의 매체에 액세스하기 위한 종래 기술의 디바이스들은 통상적으로 기억 매체를 포함하는 하나 이상의 데이터 기억 장치(102, 104, 106)에 연결되는 호스트 시스템(100)을 포함한다. 종래 기술에서, 호스트 컴퓨터(100)는 파일 시스템 매니저(108)와 호스트 디바이스 드라이버(110, 112, 114)를 포함하는데, 호스트 디바이스 드라이버들은 사용자 응용 프로그램으로부터의 파일 명령을 기억 장치(102, 104, 106)의 디바이스 드라이버(118, 120, 122)에 의해 인식되는 명령으로 변환한다. 응용 프로그램은 기억 장치(102, 104, 106)에 대한 액세스를 요구하는 호스트 시스템(100) 내의 소프트웨어 또는 펌웨어를 포함한다.
호스트 시스템(100)은 블록 경계에서 기억 장치(102, 104, 106)를 판독하고 기억 장치에 기록한다. 전통적으로, 파일 시스템 포맷의 지식은 호스트 시스템(100) 내의 불록 입력/출력(I/O) 드라이버(124)에 위치하고, 기억 장치(102, 104, 106)는 기억 매체(도시되지 않음)에서 사용되는 파일 시스템의 지식을 갖는 않는다.
따라서 종래 기술의 기억 장치(102, 104, 106)는 이들이 호스트 컴퓨터(100)에 의해 요구된 불록을 간단히 판독 및 기록한다는 점에서 상대적으로 "덤(dumb)"이다. 일부의 경우에, 기억 장치 드라이버(118, 120, 122)는 호스트 컴퓨터(100)가 그 다음 및 미리 판독된 상기 정보를 요구할 것을 예상하려고 시도하는 캐싱 알고리즘들을 포함한다. 이들 알고리즘들은 일반적으로 매체의 파일 구조를 알고있다는 이점을 갖지 않으므로, 특히 파일이 매체 상에 분해되는 경우에 정확하게 최적하는데 종종 실패한다.
블록 파일 시스템에 대한 호스트 블록 I/O 드라이버(124)는 상당히 복잡한데, 그 이유는 통신하고 있는 기억 장치의 타입과, 기억 장치(102, 104, 106)의 각각의 다른 타입에 대한 다른 디바이스 드라이버(108, 120, 122)를 이해해야 하기 때문이다. 하드 드라이브와 같은 일부 기억 장치들은 단일 드라이버가 다수의 하드 드라이브 타입에 대해 동작할 것이라는 점으로 표준화되어 있다. 다른 장치들, 즉, 플래시 메모리 카드와 같은 아주 특수한 디바이스들은 일반적으로 상기 디바이스의 토대를 이해하는 다른 드라이버를 필요로 한다. 이들 드라이버들은 매우 복잡할 수 있어서, 드라이버들을 다른 플랫폼으로 옮기는데 어려움이 있다. 특수 디바이스를 위한 드라이버를 개발하는데 비용이 많이 든다. 각각의 드라이버는 애플리케이션으로부터 요구되는 모든 명령(파일 판독, 파일 기록, 디렉토리 생성 등)을 실행할 수 있어야 한다. 각각의 드라이버가 완전한 한 세트의 명령을 실행해야 하기 때문에, 많은 다른 디바이스를 관리하기 위해 중요한 리소스가 사용된다.
또한, 기억 장치가 변경될 때마다, 호스트 시스템(100) 상의 디바이스 드라이버(110, 112, 114)는 그 변경을 인식해야 한다. 예를 들어, CD-R 디바이스 드라이버들은 이들보다 앞선 CDROM 디바이스 드라이버와는 매우 다르다. 이것은 기억 장치의 근본 기술이 변경되어, 호스트 시스템(100) 디바이스 드라이버들이 이들 변경 내용을 추적할 필요가 있기 때문이다.
음악을 듣고 영화를 보기 위해 고객이 사용하는 디바이스들의 범위는 홈 씨어터 시스템에서 아주 휴대가 간편한 휴대용 디바이스에까지 이른다. 따라서 소형이고 휴대가 간편한 기억 장치 및 기억 매체를 제공할 필요성이 있는데, 이들 장치들도 아직은 실시간 재생을 위해 많은 양의 데이터를 기억하고 전송할 수는 없다. 또한, 기억 장치들은 개인 컴퓨터 시스템, 텔레비전, 오디오 시스템 및 휴대용 음악 재생기와 같은 아주 다양한 호스트와 인터페이싱해야 한다. 또한, 디지털 권리 관리 계획을 사용하여 기억 장치가 기억 매체의 컨텐츠를 보호하는 것이 중요하다.
본 발명은 일반적으로 컴퓨터 파일 시스템에 관한 것이다. 보다 구체적으로, 본 발명은 기억 장치에 내장된 파일 시스템에 관한 것이다.
도 1은 다른 타입의 기억 장치에 연결된 호스트 시스템에서 실행되는 종래 기술의 파일 시스템의 블록도,
도 2는 본 발명에 따른 데이터 기억 장치에 연결된 호스트 컴퓨터의 일반적인 구조를 나타내는 블록도,
도 3은 본 발명에 따른 기억 장치의 파일 시스템 소자들의 블록도,
도 3a는 본 발명에 따른 파일 시스템 관리를 위한 라이브러리 소자들의 블록도, 및
도 4는 다른 타입의 기억 장치들에 연결된 호스트 시스템에서 실행되는, 본 발명에 따른 파일 시스템의 블록도를 나타낸다.
기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하기 위한 파일 시스템은 기억 장치 내의 기억 장치 제어기를 포함한다. 기억 장치 제어기는 파일 시스템 명령을 갖는 패킷을 수시하기 위한 인터페이스 소자를 포함한다. 기억 장치 제어기의 명령 디코드 소자는 파일 시스템 명령을 해독하고, 인터페이스 응답 구조 소자는 파일 시스템 명령을 실행하기 위한 전략을 생성한다. 기억 장치 제어기는 파일 시스템 오브젝트에 대한 식별자를 생성하고, 상기 파일 시스템 오브젝트의 식별자를 사용하여 파일 시스템 오브젝트에 액세스한다. 기억 장치에 연결된 호스트 시스템은 응용 프로그램으로부터 기억 장치 액세스 요구를 수신하고, 상기 기억 장치 액세스 요구에 기초하여 파일 시스템 오브젝트에 대해 실행할 명령을 생성한다. 호스트 시스템은 액세스될 파일 시스템 오브젝트를 나타내기 위하여 식별자를 사용한다.
본 발명의 한 특징은, 파일 시스템 매니저가 파일 시스템 오브젝트에 대한 응용 프로그램에 사용된 경로명을 식별자와 관련시킨다. 본 특징의 하나의 이점은 호스트 시스템이 전체 파일 시스템 오브젝트에 액세스하는데 식별자만이 필요하다는 것이다.
파일 시스템의 또 다른 특징은 파일 시스템 오브젝트의 생성 및 제거, 정보의 기억 및 검색, 파일 시스템 오브젝트의 속성의 설정 및 검색, 파일 시스템 통계의 검색, 식별자의 검색 및 파일 시스템 오브젝트에 대한 식별자 타입의 설정 및 검색을 위한 라이브러리 기능을 포함한다. 상기 타입 식별자는 파일 내의 컨텐츠의 포맷을 나타낸다.
본 발명의 실시예들에는 자기 및 광 기억 시스템을 포함하는 다양한 기억 장치가 사용될 수 있다. 파일 시스템 오브젝트에 대한 권한이 없는 액세스를 방지하기 위해 기억 장치 내에 안전 보호 특성이 포함된다. 본 실시예의 한 가지 이점은 안전 보호 정보고 호스트 디바이스에 기억되지 않으므로 사용자가 액세스할 수 없다는 것이다.
본 발명의 파일 시스템의 다른 특징은 기억 장치 내의 기억 매체를 록(lock) 및 언록(unlock)하기 위한 수단을 포함하여, 기억 매체가 기억 장치에 삽입될 때 호스트 시스템에 이것을 표시한다.
기억 장치들에 대한 모든 액세스는 식별자를 사용하여 파일 및 디렉토리 레벨로 이루어지기 때문에 본 발명의 파일 시스템은 여러 다른 호스트 디바이스들과 호환될 수 있다는 이점이 있다. 호스트 시스템은 자신과 통신을 하고 있는 기억 장치의 타입에 대한 지식을 가질 필요가 없다.
본 발명의 파일 시스템의 또 다른 이점은 기억 장치가 파일의 구조를 알고 있어서 호스트 시스템으로부터 블록 정보를 기다릴 필요가 없기 때문에 미리 판독되는 캐싱을 돕는다는 것이다.
블록 디바이스 위의 파일 시스템의 또 다른 이점은 파일 시스템 매니저 또는 번역기를 변경시키지 않고 기억 매체의 포맷이 변경될 수 있다는 것이다.
전술한 것은 본 발명의 목적, 특성 및 기술적인 이점을 오히려 광범위하게 개략적으로 기술한 것이므로 하기의 본 발명의 상세한 설명이 보다 쉽게 이해될 수있을 것이다.
도 2는 본 발명이 활용될 수 있는 호스트 시스템(212)과 기억 장치(214)의 일례를 포함하는 소자들의 블록도이다. 호스트 시스템(212)에서, 호스트 버스(218)에 의해 하나 이상의 프로세서(216)가 주 메모리(220), 기억 장치 제어기(222), 네트워크 인터페이스(224) 및 I/O 제어기에 의해 연결된 입/출력(I/O) 디바이스에 연결된다. 호스트 시스템(212)이 디지털 포맷의 정보를 처리할 수 있는 여러 가지 시스템을 포함한다는 것을 당 분야의 전문가들은 이해할 수 있을 것이고, 상기 디지털 포맷의 정보에는 예를 들어 텔레비전, 스테레오 시스템, 휴대용 오디오 및 비디오 재생기, 디지털 카메라, 휴대용 컴퓨터, PDA, 및 정보 처리 소자들을 포함하는 다른 디바이스들이 포함된다.
본 발명으로, 기억 매체(230) 상에 정보가 미리 로딩될 수 있거나, 사용자는 하나의 타입의 호스트 컴퓨터(212)를 사용하여 인터넷과 같은 소스로부터 정보를 다운로드할 수 있다. 그 다음, 다운로드된 정보를 담고 있는 기억 매체(230)는 기억 장치(214)로부터 제거되어, 기억 매체(230)를 판독 및/또는 기록할 수 있는 또 다른 호환성이 있는 기억 장치(214)에 사용될 수 있다. 기억 장치(214)가 호스트 시스템(212)에 내장될 수 있고, 외부의 주변 장치로서 플러그 인될 수 있다. 따라서 호스트 시스템(212)은 호스트 시스템(212)에 포함된 기능에 따라서 오디오, 비디오 및/또는 텍스트 데이터를 전송, 암호화/복호화, 압축/압축 해제, 수신, 기록, 및/또는 재생하기 위한 적절한 하드웨어 및 소프트웨어 소자들을 포함한다. 이와 같은 소자들은 오디오 시스템 스피커, 가시(visual) 디스플레이, 키보드, 마우스형 입력 장치, 모뎀, 팩시밀리 장치, 텔레비전 카드, 음성 인식 장치 및 전자 펜 장치와 같은 주변 장치와, 오디오 및 비디오 제어기를 포함할 수 있다.
기억 장치(214)는 프로세서(240)를 포함하는데, 상기 프로세서(240)는 SRAM(static randon access memory), 플래시 메모리 또는 DRAM(dynamic random access memory)을 포함하는 메모리 장치들 중 하나 또는 여러 타입의 메모리 장치를 조합한 것일 수 있는 메모리(242)에 연결된다. 기억 장치(214)는 버스(244)를 통해서 호스트 시스템(212)에 연결된다. 대안으로, 기억 장치(214)는 버스(245)를 통해서 호스트 버스(218)에 직접 연결될 수 있고, 기억 장치 제어기(222)에 의해 실행되는 함수는 프로세서(216)에서 실행될 수 있거나, 호스트 시스템(212)의 다른소자에서 실행될 수 있다.
기억 장치 제어기(246)는 호스트 시스템(212)으로부터 입력을 수신하고, 호스트 시스템(212)으로 출력을 송신한다. 프로세서(240)는 기억 장치(214)에서의 데이터의 흐름을 제어하기 위한 운영 시스템 명령을 포함한다. 한 실시예에서, 버스(244)는 호스트 시스템(212)과 기억 장치(214) 사이의 단일 식별자를 사용하여 파일 시스템 오브젝트에 액세스할 수 있는, 병령이고, 비동기인, 8비트 데이터 버스이다. 버스(244)에 대한 통신 프로토콜은,"Asynchronous Input/Output Interface Protocol"의 제목으로 본 발명과 동일자로 제출되었고, 동일한 양수인에게 양도되었으며, 동시에 계류 중인 미국 특허 출원 번호 에 개시되어 있으며, 상기 출원의 내용은 참고로 본 명세서에서 설명된다.
한 실시예에서, 데이터는 판독/기록 광학 장치(256)를 통해서 기억 매체(230)로부터 전송되고, 기억 매체(230)로 전송된다. 다른 실시예에서, 데이터는 판독/기록 전자 장치(도시하지 않음)를 통해서 기억 매체(230)로부터/로 전송된다. 데이터는 컨버터(248)에서 아날로그에서 디지털 포맷으로, 또는 디지털에서 아날로그 포맷으로 변환될 수 있다. 예를 들어, 판독 광학 장치(256)로부터의 아날로그 신호는 디지털 신호로 변환되어 버퍼(258)의 입력이 된다. 마찬가지로, 데지털 데이터가 컨버터(248)에서 디지털에서 아날로그 신호로 변환되어 기록 광학 장치(256)의 입력이 된다. 버퍼(258)는 데이터가 제어기(246)에 의해 요구될 때까지 데이터를 일시적으로 저장한다.
서보 제어 시스템(262)은 제어 시그널을 액추에이터, 포커스 및 기억매체(230) 상의 광학 또는 자기 헤드의 움직임을 제어하는 스핀 드라이버에게 제공한다.
상기한 소자들 및 디바이스들이 개념을 명확히 하기 위해 실례로서 이용되었고, 다양한 구성의 변형예가 가능하다는 것을 당 분야의 전문가들은 인식할 수 있을 것이다. 예를 들어, 단 하나의 주 프로세서(216)를 포함하는 호스트 시스템(212)이 도시되었지만, 다수의 프로세서를 갖는 컴퓨터 시스템을 사용하여 본 발명이 실행될 수 있음을 당 분야의 전문가들은 알 수 있을 것이다. 또한, 바람직한 실시예에서 사용되는 제어기들은 프로세서(216)로부터 계산적으로 집중적인 프로세싱을 언로드하는데 사용되는 독립적이고 완전히 프로그램된 마이크로프로세서를 포함할 수 있고, 또는 동일한 기능을 수행하는 입력/출력/(I/O) 어댑터들을 포함할 수 있다. 일반적으로, 또한 본 명세서에서 어떤 특정한 실례를 사용하는 것은 그것의 종류를 나타내기 위한 것이고, 전술한 리스트에 이와 같은 특정 디바이스를 포함하지 않은 것이, 제한이 바람직한 것임을 나타내는 것으로 받아들여지지 않아야 한다.
도 3을 참조하면, 명령을 실행할 때, 호스트 시스템(212)과 기억 장치 제어기(246) 내의 소자들 사이에서 전달되는 메시지의 순서는 번호가 붙은 화살표로 표시된다. 한 실시예에서, 상기 순서는 다음과 같다.
1) 파일 시스템 명령을 개시하기 위해, 호스트 시스템(212)은 버스(244)를 통해서 명령을 담고 있는 패킷을 기억 장치 제어기(246) 내의 인터페이스 소자(302)로 보낸다.
2) 인터페이스 소자(302)는 패킷의 전송 정보로부터 명령을 분석하여, 상기 명령을 라이브러리 함수(304)로 보낸다.
3) 라이브러리 함수(304)는 상기 명령을 해독하여, 요구된 동작을 실행하기 위한 전략을 생성한다. 상기 전략은 인터페이스 소자(302)로 다시 보내진다.
4) 그 다음, 인터페이스 소자(302)는 필요한 경우 기록 및 판독 소자(306)에게 기억 매체 액세스 기능을 실행하도록 명령함으로써 상기 전략을 실행하고, 데이터를 호스트 시스템(212)으로 전송하거나 호스트 시스템(212)으로부터 전송받는다.
5) 인터페이스 소자(302)에 의해 지시된 대로, 판독 및 기록 소자(306)는 데이터를 기억 매체(230)로 전송하고, 기억 매체(230)으로부터 데이터를 전송받는다.
6) 일부 명령에 대하여, 라이브러리 함수(304)는 판독 및 기록 소자(306)에게 직접 태스크를 달성하도록 명령한다.
도 3a는 명령 디코드(310), 개별적인 명령 실행 루틴(312) 및 지원 함수(314)을 포함하는 라이브러리 함수(304)의 구성요소들을 나타낸다.
개별적인 명령 실행 루틴(312)은 명령 패킷의 나머지를 분석하여 파일 시스템 오브젝트 식별자, 속성 및 이름을 얻는다. 특정한 명령에 의해 액세스된 파일 시스템 오브젝트를 처리하기 위해서 명령 실행 루틴(312)에 의해 지원 함수(314)가 사용된다. ‘Commit’함수(아래에 설명됨)와 같은 일부 함수는 기억 매체(230)의 파일 시스템 영역에 액세스하기 위하여 판독 및 기록 소자(306)를 호출한다. 또한, 명령 실행 루틴(312)은 기억 매체(230)와 호스트 시스템(212)사이에서 데이터를 처리하는 방법을 기억 장치 제어기(246)에게 알려주는 인터페이스 응답 구조(즉, 전략)(316)를 생성한다.
전략은 요구된 동작을 실행하기 위한 한 세트의 지령(directive)이다. 전략은, 예를 들어 기억 매체(230)에 기록할 것인지 또는 기억 매체(230)로부터 판독할 것인지의 여부, 데이터가 있는 기억 매체(230) 상의 물리적인 위치, 데이터가 판독 또는 기록되어야 하는 양, 및 데이터가 호스트 시스템(212)으로 전송되어야 하는 양을 포함할 수 있다. 또한, 판독 동작 동안, 일부 정보가 버퍼 메모리 내로 캐싱되어 버퍼로부터 호스트로 직접 전송될 수 있기 때문에, 전략은 기억 매체(230)에 액세스하는 것을 포함하지 않을 수 있다.
각각의 개별적인 명령 실행 루틴(312)은 지원 함수(314)에게 호출할 수 있는데, 지원 함수에는 4개의 주 소자, 즉 디렉토리 매니저(318), 파일 매니저(320), 안전 보호 매니저(322) 및 캐시 매니저(323)가 있다. 이들 소자들은 파일 시스템과 관련된 내부 구조를 유지한다. 안전 보호 매니저(322)는 기억 매체(230) 상의 각각의 파일 및 디렉토리와 관련된 액세스 권리를 제어한다. 또한, 안전 보호 매니저(322)는 필요한 경우 종래 기술에서 공지된 몇몇 암호화 또는 안전 보호 계획들 중 하나를 사용하여 데이터를 암호화 및 복호화할 수 있다.
기억 매체(230)는 사용자가 인터페이스(302)를 통해서 액세스할 수 없는 파일 시스템 영역을 포함한다. 그러므로 암호화/복호화 키와 같은 안전 보호 정보가 다른 파일 시스템 정보와 함께 기억 매체(230)에 저장될 수 있다. "Digital Rights Management within an Embedded Storage Device"의 제목으로 본 발명과 동일자로 제출되었고, 동일한 양수인에게 양도되었으며, 본 명세서에서 참고로 설명되는 동시 계류 중인 미국 특허 출원 번호 제 호에 개시되어 있는 안전 보호 프로토콜과 같은 강력한 안전 보호 프로토콜을 제외하고는, 호스트는 이들 영역에 액세스하지 못한다.
파일 시스템 내의 각각의 오브젝트는 고유하므로, 파일 시스템 정보를 구성하는 다른 소자들이 독립적으로 저장될 수 있어서, 파일 시스템 오브젝트에 대한 완전한 정보를 제공하기 위하여 내부에 구성된다. 예를 들어, 특정 파일에 대한 안전 보호 정보가 파일 정보(파일 크기 등)로부터 독립적으로 저장될 수 있어서, 안전한 방법으로 저장될 수 있다.
각각의 명령은 상태 정보 소자(324)를 업데이트하는데, 상태 정보 소자(324)는 명령들 사이에서 사용하는데 필요한 정보를 포함한다. 예를 들어, 'ReadDir' 명령은 이전의 'ReadDir' 명령에 대하여 얼마나 많은 디렉토리 구조가 호스트 시스템(212)으로 통과되었는지를 설명하는 값을 유지해야 한다.
도 3을 다시 참조하면, 기억 장치 제어기(246)에 대한 약간의 변동 사항은,
1) 기억 매체(230)가 기억 장치(214)(도 2)의 내부에 고정될 수 있거나, 제거될 수 있다.
2) 종래 기술에 알려진 바와 같이, 기억 장치 제어기(246), 판독 및 기록 소자(306), 및 라이브러리 함수(304)는 다중 작업 동작 시스템에서 독립된 스레드(thread)로서 실행될 수 있거나, 단일 스레드일 수 있거나 이것을 조합한 것일 수 있다.
3) 명령 디코드(310)가 인터페이스 소자(302) 내에서 처리될 수 있다.
4) 라이브러리 함수(304)는 인터페이스 응답 구조(316)를 기억 장치 제어기(246)에 직접 제공하기 보다는 데이터 액세스 명령에 대하여 판독 및 기록 펌웨어(306)와 직접 통신할 수 있다.
5) 안전 보호 매니저(322)는 하나 이상의 다양한 디지털 권리 관리 계획을 지원할 수 있다.
기억 장치 제어기(246) 내의 소자들은 하드웨어, 소프트웨어, 펌웨어로 실행될 수 있거나, 하드웨어, 소프트웨어 및/또는 펌웨어의 조합에 의해 실행될 수 있다는 것을 당 분야의 전문가들은 인식할 수 있을 것이다.
도 4를 참조하면, 하드 드라이브 디바이스(402), 플래시 디바이스(404) 및 WORM 디바이스(406)을 포함하는 3개의 다른 타입의 기억 장치로 실행되는 본 발명에 따른 파일 시스템(400)이 도시된다. 호스트 시스템(212)은 파일 시스템 매니저(410), 번역기(412) 및 하나 이상의 디바이스 드라이버(414, 416, 418)를 포함한다. 디바이스 드라이버(414, 416, 418)의 수와 타입은 기억 장치를 호스트 시스템(212)과 인터페이싱하는데 사용되는 소트프웨어 인터페이스의 타입에 따라 달라진다. 파일 시스템(400)은 기억 장치(402, 404, 406) 내의 완전히 계층적인 디렉토리 및 파일 구조에 대한 액세스를 충분한 판독 및 기록 능력을 가진 개별적인 파일들에 제공한다.
파일 시스템(410)은 각각의 기억 장치(402, 404, 406)를 한 세트의 파일 및 디렉토리를 포함하는 볼륨으로서 간주한다. 이들 파일 시스템 오브젝트는 이름 또는 파일 시스템 오브젝트와 관련된 다른 지정자에 의해 액세스될 수 있다. 한 실시예에서, 파일 시스템 매니저(410)는 응용 프로그램(116)으로부터 명령을 받아서 파일 및 디렉토리의 생성, 이름 변경, 소거를 실행하고, 데이터를 파일에 기록하거나 파일로부터 데이터를 판독한다. 또한, 파일 시스템 매니저(410)는 기억 장치(402, 404, 또는 406)로부터 전송 또는 수신하기 위한 데이터에 관련된 정보를 수신한다. 이 정보는 호스트 시스템(212)에 의해 액세스될 파일 또는 디렉토리의 이름 및 기억 장치를 포함한다.
한 실시예에서, 파일 시스템(400)은 볼륨, 파일 및 디렉토리 이름을 적용하는 규칙을 포함한다. 예를 들어, 파일 시스템 내의 이름의 길이는 제할될 수 있다. 또한, 디바이스들이 호스트 시스템(212)에 의해 사용되는 문자 세트에 관련이 없도록 하기 위해, 기억 장치(402, 404, 406)는 이름과 동등한 이진수만을 사용할 수 있다.
종래 기술에서, 파일 및 디렉토리 조작 명령은 통상적으로 식별을 위해 완전한 경로명을 필요로 했다. 파일 시스템(400)의 하나의 특징은 파일 시스템 매니저(410)가 디렉토리 및 파일의 경로명을 분석하여 디렉토리 또는 파일 이름만을 번역기(412)로 통과시킨다는 것이다. 번역기(412)는 적절한 기억 장치를 호출하여, 이름을 차후의 액세스에 대해 파일 시스템 매니저(410)에 의해 사용되는 고유한 식별자들로 변경하도록 한다.
파일 및 디렉토리에 액세스하기 위해 다른 명령을 사용하는 다른 프로그램 언어로 응용 프로그램(116)이 기록될 수 있다. 또한, 기억 장치(402, 404, 406)는 파일 및 디렉토리에 액세스하기 위한 그들 자신의 명령 세트를 포함한다.번역기(412)는 파일 시스템 매니저(410)로부터 응용 프로그램 명령을 수신하고, 응용 프로그램(116)에 의해 요구된 대로 파일 및 디렉토리에 액세스하기 위해 기억 장치(402, 404, 406)에 의해 인식된 하나 이상의 대응하는 명령들을 결정한다. 또한, 번역기(412)는 액세스될 파일 시스템 오브젝트 식별자, 및 실행될 명령과 같은 정보를 포함하는 명령 패킷을 구성한다. 명령 패킷은 요구되는 경우 응용 프로그램(116)에 의해 나온 명령에 따라서 하드웨어 디바이스 드라이버(414, 416, 418)로 전송된다. 호스트 시스템(212)과 기억 장치들(402, 404, 406) 사이에서 데이터를 전송하기 위해 여러 타입의 데이터 버스들이 사용될 수 있고, 하드웨어 디바이스 드라이버(414, 416, 418)는 종래 기술에 공지된 바와 같이 명령 패킷을 대응하는 기억 장치(402, 404, 406)로 라우팅하기 위해 운송 프로토콜을 추가한다.
다음의 표는 번역기(412) 및 기억 장치 제어기(246)(도 3)에 의해 인식된 한 세트의 명령의 한 실시예, 및 파일 시스템 내에서 이들이 사용되는 방법의 목록을 만든 것이다. 각각의 명령은 이후의 문단에서 설명된다.
명령 입력 출력 설명
Commit 없음 상태 코드 모든 기록되지 않은 데이터를 디스크로 보냄
CreateDir 디렉토리 식별자,이름,속성 상태,새로운 디렉토리 식별자 디렉토리 내에 새로운 디렉토리 생성
CreateFile 디렉토리 식별자,이름,속성 상태 코드,새로운 식별자 디렉토리 내에 새로운 파일 생성
GetAttributes 오브젝트 식별자 오브젝트 속성 주어진 파일/디렉토리에 대한 속성 검색
GetMediaInfo 없음 매체 정보 파일 시스템의 동적 통계를 호스트로 반환
GetIdentifier 디렉토리 식별자,이름 식별자 주어진 디렉토리의 오브젝트에 대한 파일 또는 디렉토리 식별자 획득
SetAttributes 파일 식별자,속성 상태 코드 주어진 파일/디렉토리에 대한 속성 설정
ReadDir 디렉토리 식별자,버퍼 사이즈 디렉토리로의 파일/디렉토리 입력 디렉토리 엔트리를 호스트로 반환
ReadFile 파일 식별자, 오프셋, 바이트 카운트 파일 데이터,상태 코드 선택된 파일로부터 데이터 판독
Remove 오브젝트 식별자 상태 코드 디렉토리로부터 파일 또는 디렉토리 제거
Rename 식별자로부터,디렉토리 식별자로,이름 상태 코드 디렉토리 또는 파일이름의 이름 변경/이동
WriteFile 파일 식별자, 오프셋, 카운트, 데이터 기록/캐싱된데이터 데이터를 주어진 파일에 기록
커밋(Commit)
상기 '커밋' 명령은 캐시로서의 기억 장치(402, 404, 406)를 또한 참조하여 임시 데이터 버퍼(258)(도 2)로부터의 모든 필요한 정보를 기억 장치(402, 404, 406)의 기억 매체로 전송한다. 호스트 시스템(212)은 영구적으로 기억 장치(402, 404, 406)에 저장되도록 상기 정보를 커밋하도록 선택할 수 있다.
버퍼된 정보를 기록하는 동안 오류가 발생하면, 상기 상태 상태 표시기(status indicator)는 상기 데이터가 상기 명령을 완료하는 때에 캐시되도록 지속적으로 나타낼 수 있고, 오류 코드가 리턴된다.
디렉토리생성(CreateDir)
상기 'CreateDir'명령은 특정 디렉토리 내에 디렉토리 또는 하위디렉토리를 생성한다. 상기 디렉토리의 엔트리(entry)는 기억 장치(402, 404, 406)의 메모리 내에 생성되지만 필수적으로 상기 매체에 기록되지는 않는다. 상기 기억 장치는 상기 엔트리가 매체 제거에 앞서 상기 매체에 기록되는 것을 보장한다.
상기 디렉토리에 대한 보호 레벨과 같은 초기 속성이 상술될 수 있다. 상기 디렉토리는 파일이나 하위 디렉토리가 부가되지 않은 채 생성될 수 있다.
상기 새 디렉토리는 입력 부모 디렉토리의 하위 디렉토리이다.
인가는 다음과 같은 조건에서의 디렉토리 생성이 거부될 수 있다.
a. 상기 파일 시스템이 보호 또는 읽기 전용 속성을 갖는 목적 디렉토리.
b. 상기 목적 디렉토리를 암호키, 또는 기타 디지털 권리 체계가 보호하는 경우.
상기 생성 함수가 성공적으로 발생하면, 기억 장치(402, 404, 406)는 새롭게 생성된 디렉토리를 위한 식별자를 파일 시스템(410)으로 전송한다.
파일생성(CreateFile)
상기 'CreateFile' 명령은 주어진 디렉토리 내에 파일 오브젝트를 생성한다. 그것은 상기 'CreateDir' 명령과 유사하다. 상기 파일 엔트리는 영(zero)의 길이의 파일로 생성되고, 상기 리턴된 식별자는 즉시 '파일 기록(WriteFile)' 명령에사용될 수 있다. 입력 파일 '데이터 타입(Data Type)'은 상기 파일 내에 포함된 데이터의 포맷을 나타내기 위해 파일과 함께 저장된다.
속성획득(GetAttribute)
파일 시스템 오브젝트의 속성을 호스트 시스템(212)으로 리턴한다.
파일정보획득(GetFileInfo)
호스트 시스템(212)은 'GetFileInfo' 명령을 선언하여 특정 파일에 관련된 정보에 대해 질의를 할 수 있다. 상기 리턴된 정보는 다음을 포함한다.
a. 상기 파일에 대한 속성.
b. 상기 파일이 생성될 때 세트로서의 파일의 유형.
c. 상기 파일의 마지막 변경 시간, 또는 변경된 적이 없으면 생성시간.
d. 파일의 바이트 크기.
기억 장치(402, 404, 406)는 모든 파일마다 '파일 타입'의 식별자를 저장한다. 이 식별자는 그것이 읽을 수 있는 유형의 파일인지 여부를 결정하기 위해 애플리케이션(116)에 의해 사용될 수 있다. 한 실시예에서, 상기 파일 타입 식별자는 두 가지 영역을 포함한다.
a. 등록된 파일 타입은 검사하는 구성에 등록된 파일 타입이다. 이 파일들은 공개된 또는 공개되지 않은 특정한 그리고 잘 정의된 파일 타입을 갖는다. 한 실시예에서, 이 등록된 파일 타입은 0-32767(0000-7FFFh)까지의 범위의 수이다.
b. 등록되지 않은 파일 타입은 사용자 정의 파일 타입이다. 특정 파일 타입이 또 다른 공급자에 의해 사용되지 않는다는 보장은 없다. 한 실시예에서, 상기 등록되지 않은 파일 타입은 32768-65535(8000h-FFFFh)까지의 범위의 수이다.
데이터 타입은 호스트 컴퓨터(212)가 그들이 액세스할 수 있는 파일 타입을 찾도록 하기 위한 메커니즘을 제공하는 것을 목적으로 한다. 예를 들면, MP3 플레이어는 모든 MP3 파일을 찾고 다른 파일들은 무시한다.
상기 파일 시스템에서의 각 파일 및 디렉토리는 상기 사용자 접근을 제어하는 데에 사용될 수 있는 일련의 속성을 갖는다. 상기 속성은 파일이 생성될 때 정의되거나 또는 나중에 변경될 수 있다. 이어지는 표는 파일 및 디렉토리를 갖고 사용될 수 있는 속성의 일련의 예이다.
속성 설명
보호(GUARDED) 보호 파일 및 디렉토리는 어떤 방식으로든 변경이 될 수 없다. 상기 보호 속성은 한번만 기록 가능한 속성이다. 한번 정해지면, 사용자는 그것을 지울 수 없다. 상기 보호 속성은 상기 사용자의 임의의 중재로부터 디스크 상의 데이터를 보호하는데에 사용된다. 상기 사용자는 보호 파일 또는 디렉토리의 속성을 기록하고, 지우고, 이름을 바꾸고, 이동하거나, 변경할 수 없다. 보호되는 것으로 정해진 디렉토리는 그 아래의 모든 파일 및 디렉토리를 무조건 보호하지는 않는다. 각 파일 시스템 오브젝트는 각각 보호되는 것으로 지정되어야만 한다.
숨김(HIDDEN) 숨김 파일 또는 디렉토리는 '디렉토리 읽기(ReadDir)'명령 동안 사용자에게 제공되지 않는다. '식별자획득(GetIdentifier)' 명령은 상기 디렉토리 또는 파일 식별자에게 정확하게 리턴될 것이다. 상기 사용자는 정정 식별자가 주어진 '속성설정(SetAttributes)'을 사용하여 이 비트를 변경한다.
읽기전용(READONLY) 상기 읽기전용 속성은 사용자가 파일의 기록, 이름바꾸기, 이동을 하는 것을 방지한다. 읽기전용 속성은 '속성설정' 명령의 사용을 통해 명시적으로 제거될 수 있다.
타입(TYPE) 이 속성은 특정한 파일 시스템 식별자가 참조하는 오브젝트의 유형을 나타낸다. 가능한 오브젝트의 유형은 사용자 데이터를 포함하고 있는 파일 오브젝트, 및 파일 및 디렉토리를 포함하는 디렉토리 오브젝트이다.
식별자획득(GetIdentifier)
'GetIdentifier'은 어떤 이름을 갖는 오브젝트에 대한 특정 디렉토리를 검색한다. 상기 이름 검색은 이진 바이트-바이트에 기초하여 실행된다. 상기 이름이 발견되면, 그때 단일한 식별자가 상기 오브젝트에 리턴된다.
특별한 이름이 주어진 디렉토리의 부모 디렉토리를 찾기 위해 보류된다. 이 이름은 아스키 문자표에서 ".."이다. 상기 루트 디렉토리의 부모 디렉토리는 루트 디렉토리 식별자이다.
매체정보획득(GetMediaInfo)
'GetMediaInfo'는 상기 매체에 대한 현재 정보를 리턴한다. 이 명령은 새로운 하나의 매체가 기억 장치(402, 404, 406)에 삽입될 때, 초기 매체 정보를 얻는 데에 사용된다.
파일읽기(ReadFile)
'ReadFile'는 주어진 바이트 오프셋에서 시작하는 디스크로부터의 데이터를 읽어 요청된 바이트 수까지 연속해서 디스크로부터 데이터를 읽는다.
상기 파일의 끝이 입력 바이트 연산값을 다 써버리기 전에 만나지면, 상기 데이터 전송은 상기 파일의 마지막 바이트와 함께 종료되고, '파일의 끝'의 오류코드가 리턴된다.
파일을 읽는 두 가지 특별한 모드가 있다.
1) 호스트 시스템(212)은 오류가 발생하여 호스트 시스템(212)이 ABORT 함수를 실행하던지, 또는 파일의 끝이 되던지까지 파일을 읽을 수 있다. 이런 식으로, 호스트 시스템(212)은 길이에 관계없이 전체 파일을 조회할 수 있다.
2) 호스트 시스템(212)은 기억 장치(402, 404, 406)가 호스트 시스템(402, 404, 406)의 데이터 요구를 만족시키기 위해 읽기 작용하는 동안 걸리는 재시도의 횟수를 제한하는 '스트리밍' 전송을 요청할 수 있다. 달리 말하면, 데이터의 적시의 전송은 데이터의 정확한 전송보다 더 중요하다. 필요하다면, 나쁜 데이터가 호스트 시스템(212)에 전송되어, 이어진 데이터가 적절한 방법으로 수집될 것이다.
디렉토리읽기(ReadDir)
'ReadDir' 명령은 다수의 파일 시스템 오브젝트 이름 및 속성을 호스트 시스템(212)으로 전송한다. 각 엔트리는 다음의 전송을 리턴한다.
a. 상기 오브젝트의 속성, 예를 들면 상기 오브젝트가 파일인지 또는 디렉토리인지, 숨김인지 등.
b. 이어지는 명령에 사용되는 오브젝트의 식별자.
c. 상기 오브젝트의 이름.
상기 리턴된 엔트리는 정렬된 순서, 예를 들면 아스키 문자열의 알파벳순서로 바이너리로 리턴된다. 'ReadDir'은 상기 리스트에서 파일만 또는 디렉토리만 선택적으로 리턴될 수 있다.
제거(Remove)
지정된 오브젝트 식별자가 상기 파일 시스템 내에서 발견되면, 그때 상기 오브젝트는 그것이 제거될 수 있는 오브젝트임을 확실히 보장한다(아래에 설명). 상기 오브젝트가 제거되는 것이 적절하다면, 더이상 기억 장치(402, 404, 406)의 메모리 내에 유지되지 않는다. 상기 업데이트된 파일 시스템은 이 명령이 완료되자마자 상기 디스크로 필수적으로 커밋되지 않는다. 상기 파일 시스템 업데이트가 디스크로 커밋되지 않으면 그때 CACHED_DATA 상태가 리턴된다.
다음과 같은 조건에서는 오브젝트의 제거에 대한 허가가 거부된다.
a. 상기 오브젝트가 보호 또는 읽기전용 속성인 경우.
b. 상기 오브젝트가 디렉토리이고, 상기 디렉토리가 비어있지 않은 경우(즉, 귀납적(recursive) 제거는 허용되지 않음).
c. 상기 오브젝트를 암호키, 또는 기타 디지털 권리 체계가 보호하는 경우.
이름바꾸기(Rename)
'Rename'은 호스트 시스템(212)이 파일 시스템(400)내의 오브젝트를 이름을 바꾸거나 이동하도록 인가한다. 호스트 시스템(212)은 소스 오브젝트, 상기 오브젝트를 이동시키는 디렉토리(그것이 동일한 디렉토리일 수 있음), 및 상기 오브젝트에 대한 새 이름을 지정한다. 상기 소스 오브젝트가 동일한 디렉토리 내에 있다면, 상기 오브젝트는 이름을 바꾼다. 상기 소스 디렉토리 및 목적 디렉토리가 다르다면, 그때 상기 오브젝트는 상기 소스 디렉토리에서 목적 디렉토리로 이동되고, 어쩌면 동시에 오브젝트의 이름을 바꾸기도 한다. 상기 이동된/이름이 바꾸어진오브젝트가 디렉토리라면, 그때 하부 디렉토리 및 연결된 파일을 포함하는 그 전체 내용 또한 이동된다.
각 파일 시스템 오브젝트와 결합된 식별자는 이 작용에 의해 변경되지 않는다.
다음과 같은 조건에서 오브젝트의 이름바꾸기/이동에 대한 허가는 거부된다.
a. 상기 오브젝트가 보호 또는 읽기전용 속성인 경우.
b. 상기 오브젝트를 암호키, 또는 기타 디지털 권리 체계가 보호하는 경우.
속성설정(SetAttributes)
SetAttributes 명령은 특정한 파일 시스템 오브젝트에 대한 속성을 변경시킨다. 상기 업데이트는 기억 장치(402, 404, 406)의 내부 메모리 내에서 수행되고, 상기 디스크로 커밋되는 것이 필수적이지 못하며, 이 경우 CACHE_DATA 비트가 상기 상태에서 준비된다. 상기 기억 장치는 상기 엔트리가 매체 제거에 우선하여 상기 매체에 기록되는 것을 보장한다.
다음과 같은 조건에서 오브젝트의 이름바꾸기/이동에 대한 허가는 거부된다.
a. 상기 오브젝트가 GUARDED 속성인 경우.
b. 상기 오브젝트를 안저 보호 키, 또는 기타 디지털 권리 체계가 보호하는 경우.
파일기록(WriteFile)
상기 WRITE 명령은 상기 특정 파일에 데이터를 기록한다. 그것이 새로운 파일이고, 'CreateFile' 명령으로 생성되었다면, 그때 상기 데이터는 파일의 시작에서 개시된다. 상기 파일이 이미 존재한다면, 상기 데이터는 상기 파일의 끝에 이어져서 첨부될 수 있다.
파일 데이터는 버퍼(258)(도 2) 내에서 캐시되고, 성공적인 상태는 상기 데이터가 기억 매체(230)에 기록되기 전에 호스트 시스템(212)으로 리턴되는 것이다. 이 경우, 상기 CACHED_DATA 상태 비트가 준비된다. 상기 기억 장치는 상기 데이터가 매체 제거에 앞서 상기 매체에 기록되는 것을 보장한다.
한 실시예에서, 호스트 시스템(212)은 한정되지 않은 바이트 수로 기록 명령을 시작하고, 이 경우 상기 기록은 오류가 발생하거나 또는 호스트 시스템(212)이 기록을 멈출 때까지 계속된다. 이런 식으로, 호스트 시스템(212)은 정해지지 않은 길이의 파일을 기억 매체(230)에 기록한다. 호스트 시스템(212)은 기억 매체(230) 상에 파일 또는 디렉토리의 구조를 변경하는 임의의 명령을 발하는 기록부를 초기화한다. 기억 매체(230)에 그것들을 커밋하기 전에 데이터 버퍼(258)(도 2)에서 변하는 여러 파일 시스템을 캐싱(cache)하기 위해 기억 장치(406)와 같은 기억 장치에 한번 기록하는 것이 보다 효율적이다. 또한, 버퍼가 동작 중에 기록하는 것을 방지하기 위해 버퍼(258)(도 2) 내에 기록 데이터를 캐시하는 것이 바람직하며, 그들 각각은 상기 파일의 섹터를 연결하는 값을 저장하는 저장공간을 필요로 한다.
앞선 명령 리스트는 파일 시스템(400)에 제공된 명령의 세트의 예이다. 기타의 명령이 상기 언급한 명령 대신에 부가될 수 있다는 것에 유의하는 것이 중요하다.
기억 매체에 대한 액세스
매체 삽입의 검지
한 실시예에서, 기억 매체가 기억 장치(402, 404, 406)에 삽입될 때, 인터럽트가 호스트 시스템(212)으로 전송된다. 상기 인터럽트를 수신하자마자, 호스트 시스템(212)은 상기 인터럽트에 대한 이유를 결정한다. 그 이유에 따라 매체 삽입을 검지 하자마자 호스트 시스템(212)은 다음의 정보를 얻기 위해 'GetMediaInfo' 명령을 실행한다.
a. 상기 매체의 루트 디렉토리에 대한 식별자. 이 식별자는 'ReadDir' 또는 'GetIdentifier'과 같은 일련의 명령에 대한 출발점으로서 사용될 수 있다.
b. 루트 디렉토리의 이름("Volume Name"으로서 언급).
c. 총 매체의 크기, 상기 매체 상에 남겨진 기록 가능한 바이트, 디렉토리 및 파일의 개수를 포함하는 기억 매체에 대한 현재의 통계.
루트 디렉토리에 대한 식별자가 한번 획득되면, 상기 기억 매체는 디렉토리 및 파일 접근 명령을 사용하여 액세스된다.
디렉토리 횡단
파일 시스템(400)에서, 파일은 하나 이상의 디렉토리로 구성된다. 각 디렉토리는 다수의 하위 디렉토리를 갖는다. 'GetMediaInfo' 명령은 루트 디렉토리 식별자를 얻는데 사용되고, 상기 파일은 두 가지 방법 중 하나로 횡단된다.
1) 주어진 디렉토리 내의 모든 디렉토리 및 파일의 리스트는 'ReadDir' 명령으로 얻어질 수 있다. 'ReadDir'은 상기 주어진 디렉토리 내의 모든 파일 시스템 오브젝트에 대한 오브젝트 식별자 및 이름 모두를 리턴한다.
2) 하위 디렉토리의 이름이 알려지면, 그때 그 디렉토리에 대한 식별자는 'GetIdentifier' 명령으로 획득될 수 있다.
어느 경우이건, 하위 디렉토리의 디렉토리 식별자는 임의의 길이의 디렉토리 구조를 횡단하기 위해 연속된 'ReadDir' 또는 'GetIdentifier' 명령에 사용될 수 있다.
파일 및 디렉토리 생성
파일 및 디렉토리는 'CreateFile' 및 'CreateDir' 명령으로 생성된다. 이 명령은 인수(argument)로 디렉토리 식별자를 갖고, 그 디렉토리 내에 새로운 오브젝트를 생성한다. 이 새로운 오브젝트는 그것과 연결된 데이터를 갖지 않는데, 즉, 새로운 파일은 영의 길이를 가지며, 새로운 디렉토리는 자식(children)을 갖지 않는다.
파일읽기
파일은 'ReadFile' 명령을 사용하여 읽는다. 상기 'ReadDir' 또는 'GetIdentifier' 명령은 상기 파일에 대한 식별자를 얻는데 사용된다. 시작 바이트 오프셋 및 읽어질 바이트 수는 상기 명령의 파라미터로서 통과된다. 기억장치(402, 404, 406)는 필요한 파일에 액세스하고 상기 주어진 오프셋으로부터 전송을 시작한다. 상기 전송은 바이트의 수가 고갈되거나, 또는 상기 파일의 끝이 검지될 때, 도는 호스트 컴퓨터(212)가 'ReadFile' 명령을 중지시킬 때가지 계속된다.
호스트 시스템(212)은 데이터가 "스트리밍" 모드에서의 매체로부터 읽어지도록 요청한다. 스트리밍 모드에서, 기억 장치(402, 404, 406)는 상기 데이터의 정학성에 앞서 데이터의 신속한 전달을 우선시 한다. 데이터의 재시도는 데이터 요청에 맞추기 위해 제한된다. 필요하다면, 나쁜 데이터를 포함할 수 있는 데이터 블록이 이어진 바람직한 데이터를 계속하기 위해 호스트 시스템(212)으로 전송될 수 있다. 이 모드는 상기 데이터를 전달할 수 있는 기억 장치(402, 404, 406)로부터 확장된 기억 장치(402, 404, 406)까지의 실시간 출력을 제공한다.
매체의 록(lock) 및 언록(unlock)
데이터가 호스트 시스템(212)의 버퍼 내뿐만 아니라 기억 장치(402, 404, 406)의 버퍼 내에서 캐시될 수 있기 때문에, 카트리지에서의 기억 매체를 잠그는 능력을 필요로 한다. 파일 시스템(400)은 기억 장치(402, 404, 406)의 매체를 잠그기 위해 호스트 시스템(212)에 의해 발해지는 'Lock Media' 명령을 포함한다. 상기 매체는 'Release Media' 명령이 호스트 시스템(212)에 의해 발해지고 기억 장치(402, 404, 406)에 의해 수신될 때가지 잠김 상태로 유지된다. 이런 방법으로, 호스트 시스템(212)은 상기 매체가 업데이트되는 동안 제거되는 것을 방지한다.
기억 장치(402, 404, 406)는 버퍼(258)(도 2) 내에 그 자신의 캐시를 유지한다. 호스트 시스템(212)의 잠김 상태에 관계없이, 기억 장치(402, 404, 406)는 모든 기억 장치 버퍼가 상기 기억 매체에 대해 플러시(flush)될 때까지 해제되지 않는다.
기억 장치(402, 404, 406)는 사용자가 '어텐션 인터럽트(attention interrupt)'를 발함으로써 상기 매체가 제거되는 호스트 시스템(212)을 통지한다.
이점(advantages)
파일 시스템(400)을 유지하는 것은 다양한 종류의 호스트 시스템(212)과 호환될 수 있다. 추가로, 도 1에 도시된 것과 같은 블록 I/O에 기초한 파일 시스템에 비교할 파일 시스템을 갖는 호스트 시스템을 필요로 하는 컴포넌트는 거의 없다. 이것은 호스트 시스템(212)이 필요로 하는 블록 읽기/기록 장치를 갖는 블록수에 비해 파일 시스템 오브젝트에 대한 식별자를 사용하는 기억 장치(246)에 대한 정보에 액세스하기 때문이다.
파일 시스템의 또 다른 이점은 호스트 시스템(212)으로부터 하드웨어 의존 기억 장치를 제거함으로써 이동성이 제거된다는 것이다. 호스트 시스템(212)은 통신하는 기억 장치의 유형에 대한 지식을 갖는 것을 필요로 하지 않는다. 그러므로, 파일 시스템 매니저(manager)(410) 및 번역기(412)는 이종의 호스트 플랫폼에 쉽게 포팅된다. 추가로, 신뢰성이 개선되어, 각기 다른 유형의 기억 장치(402, 404, 406)와의 통신오류가 발생할 기회가 줄어든다.
파일 시스템(400)의 또 다른 이점은 기억 장치(402, 404, 406)가 상기 기억 매체 상에 단편화된 파일에 관해 우선-판독(read-ahead) 캐싱을 제공할 수 있다. 이것은 기억 장치(402, 404, 406)가 상기 파일 구조를 이해하기 때문이고, 그럼으로써, 상기 기억 매체의 세그먼트가 특정 파일을 읽기 위해 액세스하는 것을 알 수 있다. 추가로, 호스트 파일 접근의 반복되는 패턴은 파일 그룹의 우선-판독을 수행하는 것을 검지할 수 있다. 이것은 특히 상기 파일 접근이 호스트 시스템(212)에 대한 부트업(boot-up) 처리와 같이 특성상 매우 복잡하고 반복적인 경우에 유용하다.
블록 장치에 대한 파일 시스템(400)의 또 다른 이점은 기억 매체의 포맷이 파일 시스템 매니저(410) 또는 번역기(412)에 대해 어떠한 변화도 요구하지 않고 변할 수 있다는 것이다. 예를 들면, WORM 기억 장치(406)에 대한 기술상의 진보는 상기 장치가 상기 매체 상에서 읽기/변경/쓰기 기능을 수행하도록 한다. 이 경우, WORM 기억 장치의 새로운 버전은 호스트 시스템 파일의 시스템 매니저(410) 또는 번역기를 어떤 식으로도 변경하지 않고 사용될 수 있다.
추가적인 이점은 파일 시스템이 상기 파일 및 디렉토리 레벨에서 보안 시스템을 제공할 수 있다는 것이다. 호스트 시스템(212)은 자주 개인용 컴퓨터와 같이 일반적인 목적, 개방 개발 환경이기 때문에 기억 장치(402, 404, 406)내에 전체적으로 제공된 디지털 권리 관리 체계는 호스트 시스템(212)에 제공된 보안 시스템보다 더 안전할 수 있다.
본 발명이 상기 실시예 및 다양한 변형예에 관해 설명하였지만, 이 실시예및 관련 실례는 설명을 위한 것이고, 본 발명은 이 실시예 및 변형의 영역예에 제한되지 않는다. 따라서 여기에서 설명되지 않은 다양한 기타의 실시예, 변경예, 및 개선예가 청구범위에 의해 정의된 바와 같이 본 발명의 영역 내에 있을 수 있다.

Claims (36)

  1. 기억 장치의 디지털 기억 매체에 대한 정보에 액세스하기 위한 파일 시스템에 있어서,
    상기 파일 시스템은,
    상기 기억 장치 내의 기억 장치 제어기를 포함하고,
    상기 기억 장치 제어기는,
    파일 시스템 명령을 포함하는 패킷을 수신하고, 파일 시스템 오브젝트에 대한 식별자를 생성하며, 상기 파일 시스템 오브젝트의 식별자를 사용하여 상기 파일 시스템 오브젝트에 액세스할 수 있는 인터페이스 소자,
    상기 파일 시스템 명령을 해독할 수 있는 명령 디코드 소자, 및
    상기 파일 시스템 명령을 실행하기 위한 전략을 생성할 수 있는 인터페이스 응답 구조 소자를 포함하는 것을 특징으로 하는 파일 시스템.
  2. 제 1 항에 있어서,
    기억 매체 액세스 기능을 실행할 수 있는 판독 및 기록 소자를 추가로 포함하는 것을 특징으로 하는 파일 시스템.
  3. 제 1 항에 있어서,
    상기 기억 장치에 연결되는 호스트 시스템을 추가로 포함하고,
    상기 호스트 시스템은,
    응용 프로그램으로부터 기억 장치 액세스 요구를 수신할 수 있는 파일 시스템 매니저, 및
    상기 파일 시스템 매니저에 연결되고, 상기 기억 장치 액세스 요구에 기초하여 상기 파일 시스템 오브젝트에 대해 실행할 명령을 생성할 수 있는 번역기를 포함하는 것을 특징으로 하는 파일 시스템.
  4. 제 3 항에 있어서,
    상기 호스트 시스템은 상기 번역기와 상기 기억 장치 사이에 연결되는 하드웨어 디바이스 드라이버를 추가로 포함하고,
    상기 번역기는 패킷을 생성할 수 있고,
    상기 패킷은 상기 파일 시스템 오브젝트에 대해 실행할 명령 및 액세스될 상기 파일 시스템 오브젝트에 대한 식별자를 포함하며,
    상기 하드웨어 디바이스 드라이버는 출력되는 패킷에 라우팅 정보를 부가하고, 입력되는 패킷으로부터 라우팅 정보를 제거하는 것을 특징으로 하는 파일 시스템.
  5. 제 1 항에 있어서,
    상기 파일 시스템 오브젝트는 파일인 것을 특징으로 하는 파일 시스템.
  6. 제 1 항에 있어서,
    상기 파일 시스템 오브젝트는 디렉토리인 것을 특징으로 하는 파일 시스템.
  7. 제 3 항에 있어서,
    상기 번역기는 상기 파일 시스템 오브젝트에 대한 경로명과 상기 식별자를 서로 관련시키는 것을 특징으로 하는 파일 시스템.
  8. 제 1 항에 있어서,
    상기 파일 시스템 오브젝트가 만들어질 때 상기 식별자가 생성되는 것을 특징으로 하는 파일 시스템.
  9. 제 1 항에 있어서,
    상기 기억 장치는 상기 식별자에 기초하여 전체 파일 시스템 오브젝트에 액세스할 수 있는 것을 특징으로 하는 파일 시스템.
  10. 제 1 항에 있어서,
    상기 기억 장치는 상기 기억 장치의 파일 시스템에 대한 권한이 없는 액세스를 방지하기 위하여 안전 보호 매니저를 포함하는 것을 특징으로 하는 파일 시스템.
  11. 제 1 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 속성을 설정하기 위한 라이브러리 함수를 포함하는 것을 특징으로 하는 파일 시스템.
  12. 제 1 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 속성을 검색하기 위한 라이브러리 함수를 포함하는 것을 특징으로 하는 파일 시스템.
  13. 제 1 항에 있어서,
    상기 기억 장치 제어기는 파일 시스템 통계를 검색하기 위한 라이브러리 함수를 포함하는 것을 특징으로 하는 파일 시스템.
  14. 제 1 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 식별자을 검색하기 위한 라이브러리 함수를 포함하는 것을 특징으로 하는 파일 시스템.
  15. 제 1 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 생성, 이름 변경 및 제거를 위한 라이브러리 함수를 포함하는 것을 특징으로 하는 파일 시스템.
  16. 제 1 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 타입 식별자를 설정하고 검색하기 위한 라이브러리 함수를 포함하고, 상기 타입 식별자는 상기 파일 시스템 오브젝트의 포맷을 나타내는 것을 특징으로 하는 파일 시스템.
  17. 제 1 항에 있어서,
    상기 기억 장치 제어기는 기억 매체가 상기 기억 장치에 삽입될 때를 결정할 수 있는 것을 특징으로 하는 파일 시스템.
  18. 제 1 항에 있어서,
    상기 기억 장치 제어기는 상기 기억 장치 내의 기억 매체를 록 및 언록할 수 있는 것을 특징으로 하는 파일 시스템.
  19. 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하기 위한 방법에 있어서,
    상기 기억 장치 제어기에 파일 시스템 오브젝트에 대한 식별자를 생성하는 단계,
    상기 기억 장치 내의 기억 장치 제어기에 파일 시스템 명령을 포함하는 패킷을 수신하는 단계,
    상기 기억 장치 제어기 내의 명령 디코드 소자를 사용하여 상기 파일 시스템명령을 해독하는 단계, 및
    상기 기억 장치 제어기 내의 인터페이스 응답 구조 소자를 사용하여 상기 파일 시스템 명령을 실행하기 위한 전략을 생성하는 단계를 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  20. 제 19 항에 있어서,
    상기 기억 장치 제어기 내의 판독 및 기록 소자를 사용하여 기억 매체 액세스 기능을 실행하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  21. 제 19 항에 있어서,
    상기 기억 장치에 연결되어 있는 호스트 시스템 내의 파일 시스템 매니저를 사용하여 응용 프로그램으로부터 기억 장치 액세스 요구를 수신하는 단계,
    상기 파일 시스템 매니저에 연결된 번역기를 사용하여 상기 기억 장치 액세스 요구에 기초해서 파일 시스템 오브젝트에 대하여 실행할 명령을 생성하는 단계, 및
    액세스될 파일 시스템 오브젝트를 나타내기 위하여 상기 식별자를 사용하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  22. 제 21 항에 있어서,
    상기 파일 시스템 오브젝트에 대하여 실행하기 위한 명령 및 액세스될 상기 파일 시스템 오브젝트에 대한 식별자를 포함하는 패킷을 생성하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  23. 제 19 항에 있어서,
    상기 파일 시스템 오브젝트는 파일인 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  24. 제 19 항에 있어서,
    상기 파일 시스템 오브젝트는 디렉토리인 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  25. 제 21 항에 있어서,
    상기 파일 시스템 오브젝트에 대한 경로명과 상기 식별자를 서로 관련시키는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  26. 제 19 항에 있어서,
    상기 파일 시스템 오브젝트가 만들어질 때 상기 식별자가 생성되는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  27. 제 21 항에 있어서,
    상기 식별자에 기초하여 전체 파일 시스템 오브젝트에 액세스하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  28. 제 19 항에 있어서,
    상기 기억 장치 제어기 내의 안전 보호 매니저를 사용하여 상기 기억 장치의 파일 시스템 오브젝트에 대한 권한이 없는 액세스를 방지하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  29. 제 19 항에 있어서,
    상기 기억 장치 제어기 내의 라이브러리 함수를 사용하여 상기 파일 시스템 오브젝트의 속성을 설정하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  30. 제 19 항에 있어서,
    상기 기억 장치 제어기 내의 라이브러리 함수를 사용하여 상기 파일 시스템 오브젝트의 속성을 검색하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  31. 제 19 항에 있어서,
    상기 기억 장치 제어기 내의 라이브러리 함수를 사용하여 파일 시스템 통계를 검색하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  32. 제 19 항에 있어서,
    상기 기억 장치 제어기 내의 라이브러리 함수를 사용하여 상기 파일 시스템 오브젝트의 식별자를 검색하는 단계를 추가로 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  33. 제 19 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 생성, 이름 변경 및 제거를 위한 라이브러리 함수를 포함하는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  34. 제 19 항에 있어서,
    상기 기억 장치 제어기는 상기 파일 시스템 오브젝트의 타입 식별자를 설정하고 검색하기 위한 라이브러리 함수를 포함하고, 상기 타입 식별자는 상기 파일 시스템 오브젝트의 포맷을 나타내는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  35. 제 19 항에 있어서,
    상기 기억 장치 제어기는 기억 매체가 상기 기억 장치 내에 삽입될 때를 결정할 수 있는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
  36. 제 19 항에 있어서,
    상기 기억 장치 제어기는 상기 기억 장치 내의 기억 매체를 록 및 언록할 수 있는 것을 특징으로 하는 기억 장치 내의 디지털 기억 매체에 대한 정보에 액세스하는 방법.
KR1020027012836A 2000-03-31 2001-03-28 기억 장치 내의 디지털 기억 매체에 대한 정보에액세스하기 위한 파일 시스템 및 방법 KR20030001392A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/539,841 2000-03-31
US09/539,841 US6823398B1 (en) 2000-03-31 2000-03-31 File system management embedded in a storage device

Publications (1)

Publication Number Publication Date
KR20030001392A true KR20030001392A (ko) 2003-01-06

Family

ID=24152873

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027012836A KR20030001392A (ko) 2000-03-31 2001-03-28 기억 장치 내의 디지털 기억 매체에 대한 정보에액세스하기 위한 파일 시스템 및 방법

Country Status (7)

Country Link
US (1) US6823398B1 (ko)
EP (1) EP1287415A2 (ko)
JP (1) JP2003535391A (ko)
KR (1) KR20030001392A (ko)
AU (1) AU2001252996A1 (ko)
TW (1) TW505870B (ko)
WO (1) WO2001075566A2 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843075B1 (ko) * 2006-05-29 2008-07-03 삼성전자주식회사 데이터를 관리하는 장치 및 방법
KR100877063B1 (ko) * 2006-05-29 2009-01-07 삼성전자주식회사 데이터를 관리하는 장치 및 방법

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW512318B (en) * 2000-03-01 2002-12-01 Matsushita Electric Ind Co Ltd AV data recorder and its method, disk recorded by AV data recorder and the method
US7215771B1 (en) 2000-06-30 2007-05-08 Western Digital Ventures, Inc. Secure disk drive comprising a secure drive key and a drive ID for implementing secure communication over a public network
US7003674B1 (en) * 2000-07-31 2006-02-21 Western Digital Ventures, Inc. Disk drive employing a disk with a pristine area for storing encrypted data accessible only by trusted devices or clients to facilitate secure network communications
US7155616B1 (en) 2000-07-31 2006-12-26 Western Digital Ventures, Inc. Computer network comprising network authentication facilities implemented in a disk drive
US7908021B1 (en) * 2000-11-02 2011-03-15 Sigmatel, Inc. Method and apparatus for processing content data
US6999999B2 (en) * 2001-12-28 2006-02-14 Hewlett-Packard Development Company, L.P. System and method for securing fiber channel drive access in a partitioned data library
US7000085B2 (en) * 2001-12-28 2006-02-14 Hewlett-Packard Development Company, L.P. System and method for securing drive access to data storage media based on medium identifiers
US7082497B2 (en) * 2001-12-28 2006-07-25 Hewlett-Packard Development Company, L.P. System and method for managing a moveable media library with library partitions
US7363425B2 (en) * 2001-12-28 2008-04-22 Hewlett-Packard Development Company, L.P. System and method for securing drive access to media based on medium identification numbers
US7062614B2 (en) * 2001-12-28 2006-06-13 Hewlett-Packard Development Company, L.P. System and method for managing access to multiple devices in a partitioned data library
US8788611B2 (en) * 2001-12-28 2014-07-22 Hewlett-Packard Development Company, L.P. Method for using partitioning to provide capacity on demand in data libraries
US8166302B1 (en) * 2002-04-23 2012-04-24 Seagate Technology Llc Storage device with traceable watermarked content
US7606364B1 (en) 2002-04-23 2009-10-20 Seagate Technology Llc Disk drive with flexible data stream encryption
JP4467257B2 (ja) * 2002-06-28 2010-05-26 株式会社日立製作所 データベース管理方法および装置並びにその処理プログラム
KR20040009097A (ko) * 2002-07-22 2004-01-31 삼성전자주식회사 이동통신단말기에서 메모리 관리 장치 및 방법
US8015266B1 (en) * 2003-02-07 2011-09-06 Netapp, Inc. System and method for providing persistent node names
US7155460B2 (en) * 2003-03-18 2006-12-26 Network Appliance, Inc. Write-once-read-many storage system and method for implementing the same
GB0307450D0 (en) * 2003-03-31 2003-05-07 Matsushita Electric Ind Co Ltd Method for interfacing storage devices
JP4228767B2 (ja) * 2003-04-25 2009-02-25 ソニー株式会社 再生装置、再生方法、再生プログラムおよび記録媒体
US7484096B1 (en) 2003-05-28 2009-01-27 Microsoft Corporation Data validation using signatures and sampling
US7457791B1 (en) 2003-05-30 2008-11-25 Microsoft Corporation Using invariants to validate applications states
JP2005004251A (ja) * 2003-06-09 2005-01-06 Seiko Epson Corp ネットワーク印刷システム及びプリンタ
US7188127B2 (en) * 2003-10-07 2007-03-06 International Business Machines Corporation Method, system, and program for processing a file request
US7549044B2 (en) * 2003-10-28 2009-06-16 Dphi Acquisitions, Inc. Block-level storage device with content security
FI120638B (fi) * 2003-12-17 2009-12-31 Nokia Corp Java-sovellusten käyttämän datan suojausjärjestelmä
KR100566266B1 (ko) * 2004-01-20 2006-03-29 삼성전자주식회사 휴대용 단말기와 pc간의 데이터 통신방법
WO2005071549A1 (ja) * 2004-01-26 2005-08-04 Matsushita Electric Industrial Co., Ltd. 半導体メモリ装置及びその制御方法
US7680864B2 (en) * 2004-03-02 2010-03-16 Intel Corporation Method and apparatus for managing access to stored objects based on retention policy
JP4497957B2 (ja) * 2004-03-05 2010-07-07 株式会社日立製作所 記憶制御システム
JP4241485B2 (ja) * 2004-04-15 2009-03-18 ソニー株式会社 情報処理装置および情報処理方法、並びにプログラムおよび記録媒体
US20050262361A1 (en) * 2004-05-24 2005-11-24 Seagate Technology Llc System and method for magnetic storage disposal
US20060020594A1 (en) * 2004-07-21 2006-01-26 Microsoft Corporation Hierarchical drift detection of data sets
GB2419198A (en) * 2004-10-14 2006-04-19 Hewlett Packard Development Co Identifying performance affecting causes in a data storage system
JP2006252239A (ja) * 2005-03-11 2006-09-21 Fujitsu Ltd ファイル制御装置
JP4574408B2 (ja) * 2005-03-24 2010-11-04 株式会社日立製作所 記憶装置システムの制御技術
US7496722B2 (en) * 2005-04-26 2009-02-24 Hewlett-Packard Development Company, L.P. Memory mapped page priorities
US8127147B2 (en) * 2005-05-10 2012-02-28 Seagate Technology Llc Method and apparatus for securing data storage while insuring control by logical roles
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7702821B2 (en) 2005-09-15 2010-04-20 Eye-Fi, Inc. Content-aware digital media storage device and methods of using the same
JP4908849B2 (ja) * 2006-01-11 2012-04-04 富士通セミコンダクター株式会社 ファイル削除方法、ファイル・オープン方法、ファイル削除プログラム、および、ファイル・オープン・プログラム
US9002795B2 (en) * 2006-01-26 2015-04-07 Seagate Technology Llc Object-based data storage device
US7765373B1 (en) 2006-06-27 2010-07-27 Siliconsystems, Inc. System for controlling use of a solid-state storage subsystem
US8108692B1 (en) * 2006-06-27 2012-01-31 Siliconsystems, Inc. Solid-state storage subsystem security solution
US7921270B2 (en) 2006-10-05 2011-04-05 Sandisk Il Ltd. Methods and systems for controlling access to a storage device
US8386704B2 (en) * 2006-10-25 2013-02-26 HGST Netherlands B.V. Techniques for improving hard disk drive efficiency
US8151082B2 (en) * 2007-12-06 2012-04-03 Fusion-Io, Inc. Apparatus, system, and method for converting a storage request into an append data storage command
US8402201B2 (en) 2006-12-06 2013-03-19 Fusion-Io, Inc. Apparatus, system, and method for storage space recovery in solid-state storage
US8161353B2 (en) 2007-12-06 2012-04-17 Fusion-Io, Inc. Apparatus, system, and method for validating that a correct data segment is read from a data storage device
US20080147667A1 (en) * 2006-12-15 2008-06-19 Samsung Electronics Co., Ltd. Data management apparatus and data management method thereof
US7966355B2 (en) * 2007-02-13 2011-06-21 Modu Ltd. Interface for extending functionality of memory cards
US7917853B2 (en) * 2007-03-21 2011-03-29 At&T Intellectual Property I, L.P. System and method of presenting media content
US8170989B2 (en) * 2007-07-16 2012-05-01 International Business Machines Corporation Method and system for document management and exchange
US9824006B2 (en) 2007-08-13 2017-11-21 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US11237956B2 (en) * 2007-08-13 2022-02-01 Digital Kiva, Inc. Apparatus and system for object-based storage solid-state device
US7970919B1 (en) * 2007-08-13 2011-06-28 Duran Paul A Apparatus and system for object-based storage solid-state drive and method for configuring same
US8055629B2 (en) * 2008-03-05 2011-11-08 International Business Machines Corporation Transitioning an archived file to write-once-read-many
TWI381312B (zh) * 2008-08-27 2013-01-01 Condel Internat Technologies Inc 在不同作業系統平台之間可交互操作之數位權利管理程式的方法與系統
US9405939B2 (en) 2008-10-07 2016-08-02 Arm Limited Data processing on a non-volatile mass storage device
US8356184B1 (en) 2009-06-25 2013-01-15 Western Digital Technologies, Inc. Data storage device comprising a secure processor for maintaining plaintext access to an LBA table
US10496608B2 (en) * 2009-10-28 2019-12-03 Sandisk Il Ltd. Synchronizing changes in a file system which are initiated by a storage device and a host device
US8886597B2 (en) * 2009-10-28 2014-11-11 Sandisk Il Ltd. Synchronizing changes in a file system which are initiated by a storage device and a host device
US8818970B2 (en) * 2011-04-08 2014-08-26 Symantec Corporation Partitioning a directory while accessing the directory
US9514154B2 (en) 2011-10-27 2016-12-06 International Business Machines Corporation Virtual file system interface for communicating changes of metadata in a data storage system
US9305142B1 (en) 2011-12-19 2016-04-05 Western Digital Technologies, Inc. Buffer memory protection unit
US9423983B2 (en) * 2012-01-19 2016-08-23 Syncsort Incorporated Intelligent storage controller
US9639275B2 (en) 2014-08-06 2017-05-02 Seagate Technology Llc Managing data within a storage device based on file system metadata
KR101944757B1 (ko) * 2014-10-31 2019-02-01 후아웨이 테크놀러지 컴퍼니 리미티드 파일 액세스 방법, 시스템, 및 호스트

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247494A (en) 1984-06-08 1993-09-21 Matsushita Electric Industrial Co. Ltd. Method for recording and reproducing information on and from an optical disk having a read-only recorded zone and a writable and readable zone using a spot laser light
DE3750409T2 (de) 1986-02-07 1995-03-30 Matsushita Electric Ind Co Ltd Optische Platte und Plattengerät zum Aufzeichnen oder Wiedergeben von Daten in oder von der Platte.
US5333315A (en) 1991-06-27 1994-07-26 Digital Equipment Corporation System of device independent file directories using a tag between the directories and file descriptors that migrate with the files
WO1993023803A1 (fr) * 1992-05-21 1993-11-25 Fujitsu Limited Appareil de commande pour pile de disques
US5463772A (en) 1993-04-23 1995-10-31 Hewlett-Packard Company Transparent peripheral file systems with on-board compression, decompression, and space management
EP1049078B1 (en) 1996-04-11 2002-09-18 Matsushita Electric Industrial Co., Ltd. Reproduction apparatus for optical disk
EP1010076A1 (en) 1996-11-27 2000-06-21 1Vision Software, L.L.C. File directory and file navigation system
US5931935A (en) * 1997-04-15 1999-08-03 Microsoft Corporation File system primitive allowing reprocessing of I/O requests by multiple drivers in a layered driver I/O system
GB2345167B (en) 1997-08-11 2002-08-21 Seagate Technology Object oriented data storage device
AU3304699A (en) * 1998-02-20 1999-09-06 Storm Systems Llc File system performance enhancement
US6449607B1 (en) * 1998-09-11 2002-09-10 Hitachi, Ltd. Disk storage with modifiable data management function

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100843075B1 (ko) * 2006-05-29 2008-07-03 삼성전자주식회사 데이터를 관리하는 장치 및 방법
KR100877063B1 (ko) * 2006-05-29 2009-01-07 삼성전자주식회사 데이터를 관리하는 장치 및 방법
US8051042B2 (en) 2006-05-29 2011-11-01 Samsung Electronics Co., Ltd. Apparatus and method for managing data

Also Published As

Publication number Publication date
EP1287415A2 (en) 2003-03-05
WO2001075566A2 (en) 2001-10-11
JP2003535391A (ja) 2003-11-25
AU2001252996A1 (en) 2001-10-15
WO2001075566A3 (en) 2002-11-21
US6823398B1 (en) 2004-11-23
TW505870B (en) 2002-10-11

Similar Documents

Publication Publication Date Title
KR20030001392A (ko) 기억 장치 내의 디지털 기억 매체에 대한 정보에액세스하기 위한 파일 시스템 및 방법
JP4359448B2 (ja) ファイルシステムフィルタドライバのためのファイルネームを管理するシステム及び方法
US7076662B2 (en) Data alteration checking apparatus and method and recording medium
US5819290A (en) Data recording and management system and method for detecting data file division based on quantitative number of blocks
US7353242B2 (en) File server for long term data archive
JP4406224B2 (ja) イメージファイル管理方法及びその記録媒体
EP0634741B1 (en) Recording medium, method of controlling same, and system utilizing electronic publications
US6665675B1 (en) Shared file system having a token-ring style protocol for managing meta-data
EP1586988A2 (en) Information processing apparatus, information processing method, program and recording medium used therewith
JP2005174339A (ja) 記憶システムにデータを保持する方法および装置
US20030177130A1 (en) Method, system, program, and data structures for maintaining metadata in a storage system
US7051054B1 (en) Method and apparatus for emulating read/write file system on a write-once storage disk
KR20010055509A (ko) 기록 디지털 스트림의 파일 관리방법
JP2002074833A (ja) データ改竄チェック方法および装置、ならびに、記録媒体
US20060239144A1 (en) Access method, access device, information recording medium
US6260143B1 (en) Host-based caching method and system for copy protected content
US20080123481A1 (en) Method for Saving ther Keylockers on Optical Discs
KR100618734B1 (ko) 데이터 파일 관리방법
JP4348883B2 (ja) データ再生装置及びデータキャッシュ方法
JP2004240549A (ja) イメージファイル作成方法、記録方法、プログラム及び記録媒体、並びに情報記録システム
Halimah Development of a file system and simple user interface for a WORM disk
JP4333758B2 (ja) データ再生装置およびデータ記録装置、ならびに、データ改竄チェック方法、データ改竄チェック装置およびデータ改竄チェックシステム
US7634172B1 (en) Methods for recording multiple sessions on a rewritable DVD disc
JPH11126462A (ja) テープ記録媒体、管理情報生成装置および管理情報解読装置
JP2001307425A (ja) 情報記録再生装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application