KR20100057655A - 하드 디스크 드라이브 파일 시스템의 손상 방지 방법 및 시스템 - Google Patents

하드 디스크 드라이브 파일 시스템의 손상 방지 방법 및 시스템 Download PDF

Info

Publication number
KR20100057655A
KR20100057655A KR1020107006147A KR20107006147A KR20100057655A KR 20100057655 A KR20100057655 A KR 20100057655A KR 1020107006147 A KR1020107006147 A KR 1020107006147A KR 20107006147 A KR20107006147 A KR 20107006147A KR 20100057655 A KR20100057655 A KR 20100057655A
Authority
KR
South Korea
Prior art keywords
data
storage medium
cache
writing
file system
Prior art date
Application number
KR1020107006147A
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 KR20100057655A publication Critical patent/KR20100057655A/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/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • 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/061Improving I/O performance
    • G06F3/0613Improving I/O performance in relation to throughput
    • 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/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Abstract

본 발명의 원리는 저널링 파일 시스템과 캐시 시스템을 통합함으로써 저장 장치에서 데이터 손상을 방지하기 위한 방법 및 장치를 제공한다. 파일 시스템 무결성에 가장 영향을 미칠 것 같은 데이터에 대하여 저널 정확성을 보장하기 위하여, 본 발명 원리의 양태에 따른 방법은 그러한 데이터를 저장 장치의 메인 플래터에 기록할 때(412) 캐시를 바이패스하는 단계를 포함한다. 또한, 데이터를 판독하고 기록할 때 전체적인 효율성을 보장하기 위하여, 본 발명 원리의 양태에 따른 방법은 파일 시스템 무결성에 상대적으로 작은 손상을 주는 데이터를 캐시에 기록하는 단계(420) 이외에, 플래터에 기록하는 단계(428)를 포함한다. 그러므로, 본 발명 원리의 양태는 캐시 시스템과 저널링 파일 시스템을 최적하게 통합하여 강인한 파일 시스템 무결성과 효율적인 판독 및 기록 메커니즘을 제공한다.

Description

하드 디스크 드라이브 파일 시스템의 손상 방지 방법 및 시스템{METHOD AND SYSTEM FOR PREVENTING CORRUPTION OF HARD DISK DRIVE FILE SYSTEM}
본 발명은 일반적으로 저장 장치에서 데이터 기록(data writing)에 관한 것으로, 특히 저장 장치 파일 시스템의 손상을 방지하기 위한 방법 및 시스템에 관한 것이다.
데이터 저장과 연관된 공통적인 문제는 저장 매체에서 파일 시스템의 일부분의 손상(corruption)이다. 데이터 손상은 흔히 저장 장치에서 데이터 기록 동작(data writing operations)의 중단이라는 결과를 가져오며, 이것은 예를 들어 전력 손실(power loss)의 결과로서 일어날 수 있다. 데이터 손상을 피하는 한가지 접근법은 저장 매체, 이를 테면 하드 디스크 드라이브에 대한 변경사항(change)을 실행에 옮기기 전에 그 변경사항을 로그할 수 있는 저널링 파일 시스템(journaling file system)을 이용하는 것을 포함한다. 그러므로, 전력 손실이 있을 때, 저널된 변경사항(journaled changes)이 "재생(replay)" 또는 실행되어 실제 데이터 구조를 저널된 변경사항과 같아지게 할 수 있다. 만일 저널된 액션들(journaled actions)이 전력 손실로 인해 불완전하고 이들의 설정이 저장 매체 상의 데이터 구조를 손상할 경우, 이러한 액션들은 쉽게 재생되지는 않는다. 따라서, 저널 파일 시스템은 전력 손실 동안 발생할 수 있는 불완전 기록(incomplete write)을 보정함으로써 저장 매체 상에서 데이터 손상을 방지할 수 있다.
데이터 저장 및 판독과 연관된 또 다른 관심사는 효율을 포함한다. 예를 들어, 데이터를 저장 장치에 기록하고 저장 장치로부터 판독할 때 가급적 최소량의 자원을 활용하는 것이 흔히 바람직하다. 이러한 관심사를 다루기 위하여, 전형적으로 비교적 저장 매체의 작은 부분을 포함하는 캐시 시스템이 사용된다. 캐시의 크기 때문에, 캐시로부터 데이터를 판독하기는 대개 저장 매체의 메인 플래터(main platter)로부터 데이터를 판독하는 것보다 훨씬 빠르다. 많은 캐시 시스템에서, 데이터는 데이터를 저장 매체의 메인 플래터에 기록하기 전에 캐시에 기록된다. 또한, 플래터에 데이터를 기록하는 순서는 기록을 수행하는 고유 명령의 순서와 다른 순서일 수 있다. 캐시 시스템은 기록 동작 중에 저장 매체의 스캐닝을 최소화하는 방식으로 데이터를 플래터에 기록하는 것이 통상적이다. 캐시 시스템에서 플래터에 기록하는 순서는 기록 명령이 발행되는 순서라기보다는 저장 매체의 기록 위치에 더 의존하는 경향이 있다.
그러므로, 캐시 시스템의 특성으로 인해, 저널링 파일 시스템은 종종 캐시 시스템이 기능정지(disabled)되는 것을 필요로 한다. 전력 손실 이후, 데이터 구조의 손상을 방지하고 데이터 구조를 적절하게 복구하기 위하여, 저널링 파일 시스템은 데이터를 원래의 기록 명령과 일치하는 순서대로 저장 매체의 플래터에 기록하도록 되어 있다. 따라서, 데이터 손상을 방지하는 저널링 양태와 데이터의 효율적인 판독 및 기록을 제공하는 캐시 특징을 포함하는 파일 시스템이 필요하다.
본 발명 원리는 저널링 파일 시스템을 캐시 시스템과 통합하는 방법 및 시스템을 제공한다. 본 발명 원리의 일 양태에 따르면, 저널링 파일 시스템은 저널링 양태와 캐시 특징을 둘 다 이용한다. 저널링 파일 시스템은 기록된 데이터의 형태에 따라서 캐시를 이용할지 여부를 동적으로 판단할 수 있다. 예를 들어, 파일 시스템은 "임계" 기록 ("critical" writes)과 "비임계" 기록("non-critical" writes)을 구별할 수 있다. 임계 기록과 연관된 데이터의 손상은 비임계 기록과 연관된 데이터의 손상보다 상대적으로 더 많이 파일 시스템에 손상을 미치는 경향이 있다. 본 발명 원리의 양태는 임계 기록의 경우 캐시를 바이패스하여 파일 시스템 무결성(file system integrity)을 보장함으로써 캐시 특징을 포함하는 저널링 파일 시스템을 최적화하는 것을 포함한다. 이러한 방식으로, 본 발명 원리의 양태는 저널링 특징과 캐시 특징의 두 가지 이익을 제공하면서, 전형적으로 저널링 특징과 캐시 특징의 상호작용에 부수하는 어떠한 부정적인 영향을 최소화할 수 있다.
본 발명 원리의 일 구현예는 저널링 파일 시스템과 캐시 시스템을 이용하여 저장 장치상의 파일 시스템의 손상을 방지하기 위하여 데이터를 저장 장치에 기록하기 위한 방법을 포함하며, 상기 방법은 데이터 기록을 저널링하는 단계; 상기 데이터가 임계적인지를 판단하는 단계; 상기 데이터가 임계적이라고 판단할 때, 상기 임계 데이터를 상기 저장 매체에 기록하라는 명령을 생성하는 단계; 및 상기 임계 데이터를 상기 저장 장치의 플래터에 기록하는 단계를 포함하며, 상기 임계 데이터의 상기 플래터에의 기록은 캐시에 기록을 바이패스하여 상기 저장 장치의 저널된 상태가 상기 임계 데이터에 대하여 정확하도록 보장한다.
본 발명 원리의 또 다른 구현예는 저장 장치상의 파일 시스템의 손상을 방지하기 위하여 데이터를 상기 저장 장치에 기록하기 위한 시스템을 포함하며, 상기 시스템은, 저장 장치의 메인 플래터; 캐시; 상기 저장 장치에 대한 변경사항의 로그를 포함하는 저널; 상기 데이터가 임계 데이터라고 판단할 때 발생된 임계 데이터 기록 명령을 포함하는, 데이터를 상기 저널 및 상기 메인 플래터에 기록하라는 명령들을 발생하도록 구성된 파일 시스템; 및 상기 임계 데이터 기록 명령에 따라서 상기 임계 데이터를 상기 저장 매체의 플래터에 기록하도록 구성된 저장 장치 제어 모듈을 포함하며, 상기 임계 데이터의 상기 플래터에의 기록은 상기 캐시에의 기록을 바이패스하여 상기 저장 장치의 저널된 상태가 상기 임계 데이터에 대하여 정확하도록 보장한다.
하나 이상의 구현예의 상세 내용은 첨부 도면과 아래의 상세한 설명 부분에서 설명된다. 구현예들이 한 가지의 특정 방식으로 기술될지라도, 구현예들은 다양한 방식으로 구성될 수 있거나 또는 적용될 수 있음을 확실히 알아야 한다. 예를 들어, 구현예는 방법으로서 실행될 수 있고, 또는 일련의 동작을 실행하도록 구성된 장치 또는 일련의 동작을 실행하는 명령어를 저장하는 장치로서 구체화될 수 있다. 본 발명의 다른 양태와 특징은 첨부 도면과 청구범위와 함께 고려한 다음의 상세한 설명으로부터 자명해질 것이다.
본 발명은 비디오 레코딩 환경, 예를 들어, 압축된 디지털 비디오 콘텐트를 정확하고 적시에 기록할 것을 요구하는 PVR에서 유리하게 사용될 수 있다.
본 발명 원리의 가르침은 다음의 상세한 설명을 첨부 도면과 함께 고려함으로써 쉽게 이해될 수 있다.
도 1은 본 발명 원리의 양태에 따른 퍼스널 비디오 레코더(personal video recorder)의 예시적인 구현예의 블럭도이다.
도 2는 본 발명 원리의 양태에 따른 파일 시스템의 손상을 방지하기 위해 데이터를 저장 장치에 기록하는 시스템의 예시적인 구현예의 블럭도이다.
도 3은 본 발명 원리의 양태에 따른 저장 장치에서 데이터의 손상을 방지하는데 사용된 파일 시스템 프로세스의 예시적인 구현예의 흐름도이다.
도 4는 본 발명 원리의 양태에 따른 데이터 기록 방법에서 사용된 예시적인 저장 장치 명령 처리 루틴의 흐름도이다.
도 5는 본 발명 원리의 양태에 따라서 저널링 파일 시스템을 이용하여 손상된 섹터를 교정(repair)하는 방법의 예시적인 구현예의 흐름도이다.
도면은 본 발명 원리의 개념을 예시하기 위한 목적을 위한 것이며 반드시 본 발명 원리의 유일하게 가능한 구성만을 예시하는 것은 아니다. 이해를 돕기 위하여, 동일한 참조부호는 전체 도면에서 공통적인 동일한 구성요소를 지칭하는 것으로 사용된다.
본 발명 원리는 데이터를 저장 매체에 기록하기 위한 시스템 및 방법을 제공한다. 전술한 바와 같이, 저장 매체에 데이터를 기록하는 것과 연관된 공통적인 문제는 데이터 구조의 손상이다. 한가지 심각한 형태의 데이터 손상은 저장 매체 상의 섹터에 데이터 기록 동작의 중단(interruption) 시 발생하는 기록-스플라이스(write-splice)를 포함한다. 이러한 중단은 기록 동작의 완료를 방해하는 정전(power failure), 프로세서 정지(processor freeze) 또는 다른 이벤트로부터 유발한다. 기록-스플라이스는 새로운 데이터가 섹터의 처음 부분에 기록되고 이전의 체크섬(checksum)(섹터에서 에러가 없음을 증명하기 위해 사용된 섹터 내 모든 비트들의 합)을 갖는 이전의 데이터가 그 섹터의 끝 부분에 남아있는 섹터로 특징 지울 수 있다. 기록-스플라이스 에러는 검출될 수 있거나 또는 검출되지 않을 수 있으며, 설령 검출되더라도, 기록-스플라이스를 보정하기 위하여 저장 매체의 재포맷을 필요로 할 수 있으며, 그 결과 기록된 모든 데이터의 손실을 가져올 수 있다. 하드 디스크 드라이브 시스템에서, 기록-스플라이스 에러는 마운트 고장(mount failure) 또는 행잉 파일 시스템 볼륨(hanging file system volume)을 유발할 수 있으며, 흔하게는 에러 코드를 원래대로 되돌리지 못할 수조차 있다. 따라서, 일반적으로 기록-스플라이스 에러는 기록된 모든 데이터의 손실을 가져올 수 있기 때문에, 이를 회피하는 여러 접근법들이 개발되어 왔다.
기록-스플라이스를 처리하는 접근법은 다른 형태의 저널링으로서, 기록의 순서를 변경하는 동시 기록 방법(synchronous writing methods)을 포함한다. 전술한 바와 같이, 저널링은 변경사항을 실행에 옮기기 전에 저장 매체의 플래터에 로그하는 것을 수반할 수 있다. 변경사항의 저널은 데이터가 기록될 같은 저장 매체 또는 완전 별개의 저장 매체에 포함될 수 있다. 많은 저널링 파일 시스템에서, 저널은 데이터가 최종적으로 기록되는 같은 저장 매체 상의 링 버퍼에 저장된다. 정전 또는 프로세서 정지 등의 결과로서 기록 동작이 중단될 때, 시스템 복구를 실행하기 위해 변경사항의 저널이 참조될 수 있다. 예를 들어, 저널이 재생되어 중단되었던 플래터에 기록을 완료하고 그럼으로써 기록-스플라이스를 보정할 수 있다. 더욱이, 만일 저널 자체로의 기록이 중단되고 불완전하면, 저널된 변경사항은 재생되지 않으며 메인 플래터의 데이터 구조 무결성은 마찬가지로 그대로 둔다.
기록 동작의 중단에 뒤이어 파일 시스템 복구를 가능하게 하기 위하여, 변경사항의 저널은 저장 매체 상의 파일 시스템의 상태를 정확하게 반영하여야 한다. 상세히 말해서, 저널은 메인 플래터에서 기록이 수행되었던 순서 및/또는 기록이 발생하였던 시간을 정확하게 포함하고 있어야 한다. 복구란 저널에 기록된 변경사항을 재생하는 것을 수반하기 때문에, 저널링 파일 시스템은 저장 장치의 기록된 상태가 정확한지에 의존하며, 변경사항을 재생하기 전에 저널링 파일 시스템은 저널을 근거로 하여 어떤 기록이 행하여졌거나 행하여지지 않았다고 가정한다. 그래서, 만일 저널에 기록된 것과 같이 기록들이 행하여졌던 기록의 순서 및/또는 시간이 부정확다면, 저널된 변경사항의 재생은 결과적으로 기록-스플라이스 에러와 연관된 유사한 문제를 일으키는 데이터 손상을 유발할 수 있다.
따라서, 전술한 바와 같이, 많은 저널링 파일 시스템은 캐시 시스템의 기능정지(disablement)를 필요로 할 수 있다. 전술한 바와 같이, 캐시 시스템은 종종 기록 동작을 실행할 때 저장 매체 상의 영역들 사이에서 큰 거리를 두지 않기 위해 기록 명령의 순서와 일치하지 않은 방식으로 기록 동작을 다시 순서화한다. 그래서, 마운트들 또는 다른 기록 수단들이 저장 매체를 효과적인 방식으로 배치(span)하도록 데이터가 기록된 섹터의 위치에 따라서 기록 동작이 다시 순서화되곤 한다. 부가적으로, 현재의 하드 디스크 펌웨어에서, 기록 동작의 완료 상태는 데이터가 아직까지는 하드 디스크 플래터에 기록되지 않았을지라도 데이터를 하드 디스크 캐시에 기록할 때 원래대로 돌아간다. 이러한 캐시 시스템의 특징은 저널링 파일 시스템의 정확한 저널에 대한 의존에 기인하여 기록 동작의 중단으로부터 복구하는 저널링 파일 시스템의 성능을 무산시킬 수 있다.
본 발명 원리의 양태는 저널링 특징에 의해 허용되는 시스템 복구 역량에 추가하여 판독 및 기록 효율을 제공하는 캐시를 통합하는 저널링 파일 시스템을 포함한다. 비록 본 명세서에서 본 발명 원리의 구현예가 퍼스널 비디오 레코더(PVR)에 대하여 설명될지라도, 본 발명 원리의 양태는 PVR 응용예로 한정되지 않음을 이해하여야 한다.
이제 여러 도면에 걸쳐 유사한 참조부호가 유사한 또는 동일한 구성요소를 나타내는 도면을 상세하게 참조하면, 특히 도 1을 먼저 참조하면, 본 발명 원리의 양태를 구현하는 PVR(100)의 예시적인 예가 도시된다. PVR(100)은 프로세서(116) 및 저장 매체(124)를 포함할 수 있다. 저장 매체(124)는 이것으로 제한되지 않지만, 하드 디스크 드라이브일 수 있으며 기록 데이터 명령에 따라서 기록될 데이터 및 저널 데이터를 모두 저장하는데 이용될 수 있다. 그러나, 전술한 바와 같이, 다른 구현예에서, 저널된 데이터는 기록 명령에 따라서 데이터가 기록되는 저장 매체와 완전 별개의 저장 메커니즘에 저장될 수 있다. 중앙 처리 장치(116)는, 예를 들어, Broadcom®으로부터 상업상 입수가능하고, 300 MHz 64-bit CPU를 포함하고 있는 듀얼 채널 HD 비디오/오디오/그래픽 및 퍼스널 비디오 레코딩 칩인, BCM 7038 C2 칩을 포함할 수 있다. BCM 7038 C2는 퍼스널 비디오 레코더에서 사용된 공통 프로세서이다.
본 발명 원리의 일 구현예에서, 위성 기술 회로를 통하여 수신된 MPEG-4 압축 포맷의 오디오/비디오 데이터 패킷은 스트림(112)을 통해 CPU(116)로 전달될 수 있다. 예를 들어, 튜너(104)는 적절한 주파수로 동조하여 데이터 패킷을 수신할 수 있다. 또한, 복조기(108)는 동기적으로 튜너로부터의 출력 신호를 복조하고 오디오/비디오 데이터 패킷을 스트림(112)을 통해 CPU(116)에 제공한다. 이후, 오디오/비디오 데이터는 디코더(120)를 이용하여 복원될 수 있으며, 이 디코더도 역시 Broadcom®으로부터 상업적으로 입수가능한 BCM 7411 CO 디코더를 포함할 수 있다. BCM 7411 CO 디코더는 MPEG-4 비디오 스트림과 호환가능하다. 그러나, 오디오/비디오 데이터는 본 기술 분야에서 알려진 어떠한 포맷, 이를 테면, 예를 들어, MPEG-2 포맷일 수 있으며 다른 수단에 의해, 이를 테면, 예를 들어 케이블 텔레비젼 전송을 통해 수신될 수 있음을 인식하여야 한다. 오디오/비디오 데이터 스트림에서 오디오/비주얼 데이터를 수신하면, CPU(116)는 적절한 소프트웨어 및 하드웨어를 통해 아래에 기술된 방법 단계들을 구현하도록 구성될 수 있다.
퍼스널 컴퓨터와 같은 소정 표준 컴퓨팅 장치와 다른 소정 PVR의 양태는, 예를 들어, 오디오/비디오 데이터를 판독하고 기록하는 정해진 시간 제한(fixed time constraint)을 포함한다. 만일 정해진 시간 제한 하에서 동작하는 PVR 시스템, 또는 어떤 다른 시스템이 정해진 시간 간격 내에 트랜잭션을 완료하지 못하면, PVR은 프리젠테이션의 다음 부분으로 이동하며 미완의 트랜잭션과 연관된 정보는 유실 또는 폐기될 수 있다. 정해진 시간 제한은 가능한 많은 프리젠테이션을 적시에 디스플레이하려는 바램으로 인한 것이다. 그러므로, 오디오 또는 비디오 데이터가 너무 늦게 도달할 때, PVR 기록-재생 시스템이 오동작을 일으키는 것을 방지하기 위하여 폐기된다. 따라서, 캐시에 의해 제공되는 데이터의 신속한 판독은 정해진 시간 제한 하에서 동작하는 시스템, 이를 테면 PVR에서 정보의 손실을 방지하는데 바람직하다.
소정의 표준 컴퓨팅 장치와 다른 소정 PVR의 또 다른 양태는 PVR이 전형적으로 적당한 오퍼레이팅 시스템 셧다운 시퀀스(operating system shutdown sequence)를 수행하지 않는다는 것으로, 이것은 PVR이 정상적으로 사용자에 의해 전기 코드로부터 전기 플러그를 빼는 것 또는 정전으로 인해 전원이 꺼지기 때문이다. 표준 컴퓨팅 장치에서, 하드 디스크 드라이브는 데이터를 캐시에서 플래터로 전달하는데 충분한 시간을 주기 위해 그리고 판독/기록 헤드를 안전 구역에 파킹시키기 위해 셧 다운하라는 명령을 받는 것이 통상적이며, 이 각각의 명령은 데이터 손상과 데이터 손실을 방지하기 위함이다. 각종 PVR은 초기 전원 장애(early power fail: EPF) 루틴을 실행에 옮김으로써 갑작스런 전력 손실 문제에 대처하도록 설계되었다. EPF 루틴은 전력 공급 손실에 뒤이어 PVR 시스템에 잔류하는 전류를 이용하며, PVR을 대략 10-40 ms 동안 구동을 유지시킬 수 있다. EPF 루틴은, 잔류 전류를 이용하여, 캐시를 플러시하도록 시도하고 헤드의 파킹을 제어한다. 일반적으로, 그러한 EPF 루틴은 종종 잔류 전류가 소산 되기 전에 캐시 플러시를 완료하지 못한다. 그래서, EPF 루틴은 전형적으로 전원이 소산 될 때 PVR 드라이브들에게 데이터를 메인 플래터에 기록하도록 지령하며, 이렇게 함으로써 기록-스플라이스 에러, 데이터 손실 및 제어하지 못한 헤드 파킹을 초래한다.
본 발명 원리의 일 양태에 따르면, (만일 시스템이 기록 중이면) 현재의 섹터 기록(sector write)을 완료하고, 캐시 내 어떤 부가적인 데이터도 폐기하며, 제어된 헤드 파킹을 수행하는 특수한 셧다운 명령 시퀀스가 EPF 루틴에 포함된다. 데이터 손실은 흔히 기록-스플라이스 에러보다 바람직하다. 전술한 바와 같이, 기록-스플라이스 에러는 대개 디스크 재포맷팅과 기록된 모든 데이터의 손실을 요한다. 게다가, PVR은 사용자 데이터 손실에 있어서 표준 컴퓨팅 장치, 이를 테면, 예를 들어, 퍼스널 컴퓨터보다 더 높은 허용 오차를 갖는다. PVR 사용자-데이터는 오디오/비디오 프리젠테이션 데이터를 포함하는 것이 정상적이며 일반적으로 몇 개 프레임의 손실은 전체 프리젠테이션에 최소한도로 영향을 미친다.
비록 EPF 루틴이 기록 스플라이스 에러를 줄일 수 있을지라도, EPF 루틴을 사용한다 해도 파일 시스템의 손상을 완전하게 방지하지 못할 것이다. 본 발명 원리의 또 다른 양태에 따르면, 캐시 시스템과 통합된 저널링 파일 시스템은 데이터 손상을 방지하고 판독 및 기록 효율을 제공하는데 사용될 수 있다. 전술한 바와 같이, 저널링 파일링 시스템은 전형적으로 캐시 시스템과 호환불가능하다. 본 발명 원리의 양태에 따른 저널링 파일 시스템은 임계 데이터(critical data)와 비임계 데이터(non-critical data)를 구분함으로써 비호환성을 극복하며, 이 내용은 아래에서 상세히 설명된다. 임계 데이터는 만일 손상이 발생한 경우에 파일 시스템 무결성에 직접적으로 영향을 미치는 경향이 있고 파일 시스템의 동작을 잠재적으로 불능으로 만드는 데이터로 특징 지울 수 있다. 더욱이, 임계 데이터는 사용자 및/또는 시스템 파라미터에 의해 액세스 및 변경될 수 있으며 그에 따라서 조절될 수 있다. 비임계 데이터는 손상이 시스템 무결성에 대하여 상대적으로 해를 입히지 않는 데이터를 포함할 수 있다. 본 발명 원리의 양태에 따르면, 임계 데이터를 메인 플래터에 기록할 때 캐시는 바이패스된다. 이러한 양태는 임계 데이터가 플래터에 기록되는 순서가 플래터로의 복수의 기록의 저널된 기록 순서와 일치하므로 임계 데이터에 대하여 시스템의 저널된 상태가 정확하게 되도록 보장한다. 그러므로, 저널이 기록 동작의 중단에 따라 재생될 때, 파일 시스템은 전술한 바와 같이 정확한 저널을 참조함으로써 적절한 복구를 실행에 옮길 수 있고, 그럼으로써 임계 데이터에 대하여 데이터 손상을 방지하게 된다.
비임계 데이터를 기록하는데 대하여, 본 발명 원리의 또 다른 양태에 따르면, 캐시를 활용하여 판독 및 기록 효율을 제공한다. 이하에서 상세히 설명되는 바와 같이, 비임계 데이터 손상의 상대적으로 무해한 영향으로 인하여 캐시의 활용으로 말미암은 어떤 잠재적인 손상의 유해한 영향은 최소화된다. 또한, 아래에서 상세히 설명되는 바와 같이, 비임계 데이터 기록은 메인 플래터에 대한 모든 기록의 실질적인 대부분을 포함한다. 그러므로, 임계 데이터를 기록할 때 캐시를 바이패스하여도 전체적으로 시스템의 기록 효율에 미치는 영향은 비교적 근소하다. 따라서, 본 발명 원리의 양태는 캐시 시스템을 저널링 파일 시스템과 최적하게 통합하여 강인한 파일 시스템 무결성과 효율적인 판독 및 기록 메커니즘을 제공한다.
도 2를 참조하면, 본 발명 원리의 양태에 따른 예시적인 시스템(200)이 도시된다. 시스템(200)은 파일 시스템 제어 모듈(204) 및 명령어 생성기(208)를 포함하는 저널링 파일 시스템(202)을 포함한다. 파일 시스템 제어 모듈(204)은 저장 매체에 저장된 파일 시스템(202) 내 데이터의 구성을 수신하고 제어한다. 또한, 파일 시스템 제어 모듈(204)은 명령어 생성기(208)를 이용하여 데이터를 저널(216), 캐시(220) 및 메인 플래터(224) 중 어느 한 곳에 기록하라는 명령어를 생성한다. 저널(216), 캐시(220) 및 메인 플래터(224)는 같은 저장 장치 또는 다른 저장 장치에 포함될 수 있다. 또한, 시스템(200)은 저장 장치에서 데이터 기록 명령어를 처리하고 실행하는 저장 장치 제어 모듈(212)을 포함한다. 본 명세서에서 제시된 도 2의 시스템 구성요소들은 본 발명 원리의 양태의 방법 구현예를 참조하여 아래에서 더욱 상세히 설명된다.
도면에 도시된 여러 구성요소들의 기능은 전용 하드웨어뿐만 아니라 적합한 소프트웨어와 관련하여 소프트웨어를 실행할 수 있는 하드웨어를 사용하여 제공될 수 있음을 알아야 한다. 이들 기능이 프로세서에 의해 제공될 때, 이들 기능은 단일의 전용 프로세서, 단일의 공유 프로세서, 또는 다수의 개별 프로세서들에 의해 제공될 수 있으며, 이들 중 몇몇은 공유될 수 있다. 더욱이, "프로세서" 또는 "제어기"라는 용어를 명시적으로 사용하더라도 소프트웨어를 실행할 수 있는 하드웨어만을 배타적으로 언급하는 것으로 해석되지 않아야 하며, 제한함이 없이 내재적으로 디지털 신호 프로세서("DSP") 하드웨어, 소프트웨어를 저장하는 판독-전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 및 비휘발성 저장 장치를 포함할 수 있다. 더욱이, 본 명세서에서 본 발명의 원리, 양태 및 실시예뿐만 아니라 본 발명 원리의 특정 예를 기술하는 모든 설명 내용은 본 발명 원리의 구조적이고 기능적인 균등물들을 모두 망라하는 것으로 의도된다. 부가적으로, 그러한 등가물은 현재 알려진 균등물들뿐만 아니라 미래에 개발되는 균등물들(즉, 구조에 무관하게 동일한 기능을 수행하는 개발된 어떤 구성요소들)을 포함하는 것으로 의도된다.
그러므로, 예를 들어, 본 기술 분야에서 숙련된 자들은 본 명세서에서 제시된 블럭도가 본 발명의 원리를 구체화하는 예시적인 시스템 컴포넌트 및/또는 회로의 개념적인 관점을 제시하고 있음을 인식할 것이다. 마찬가지로, 플로우차트, 흐름도, 상태 전이도, 및 의사코드 등이 컴퓨터 판독가능 매체에서 실질적으로 표현될 수 있고 그래서 컴퓨터 또는 프로세서가 명시적으로 도시되어 있든지 혹은 없든지 간에, 그러한 컴퓨터 또는 프로세서에 의해 실행될 수 있는 각종 프로세스를 표현하고 있음이 인식될 것이다.
이제 계속해서 도 2와 함께 도 3을 참조하면, 본 발명 원리의 양태에 따른 데이터 기록 방법에서 사용된 예시적인 저널링 파일 시스템 처리 구현예가 예시된다. 저널링 파일 시스템 처리 방법(300)은 데이터를 수신함으로써 시작할 수 있다(단계 304). 데이터는 파일 시스템(202)에 의해, 예를 들어, 도 1의 PVR 시스템에 대하여 전술한 바와 같이 MPEG-4 포맷의 패킷으로서 수신될 수 있다. 그 다음, 단계(308)에서, 데이터는 시스템(202)에서 처리될 수 있으며, 여기서 파일 시스템 제어 모듈(204)은, 예를 들어, 하드 디스크 드라이브를 포함할 수 있는 저장 장치(224)의 메인 플래터에 데이터가 기록될지를 판단할 수 있다. 이후, 단계(312)에서, 파일 시스템 제어 모듈(204)에 의해 데이터의 메타데이터가 생성될 수 있다.
본 방법(300)은 또한 저장 장치의 플래터의 변경사항을 저널 또는 로그(216)에 저널링하는 단계를 포함할 수 있다. 예를 들어, 파일 시스템 제어 모듈(204)은 저장 장치에 대한 변경사항을 저널하라는 명령어를 생성하는 명령어 생성기(208)를 이용할 수 있다. 변경사항은 메인 플래터(224)에 데이터를 기록하는 것을 포함할 수 있으며 메인 플래터 기록과 연관된 기록 데이터 명령은 로그 또는 저널(216)에 저널될 수 있다(단계 316). 저장 장치 제어 모듈(212)은 파일 시스템(202)으로부터 수신된 명령에 따라서 저널에 기록함으로써 플래터 기록 명령을 저널할 수 있다. 또한, 전술한 바와 같이, 저널, 또는 로그(216)는 저장 장치의 링 버퍼에 저장될 수 있거나 또는 완전히 다른 저장 매체에 저장될 수 있다. 더욱이, 소정 구현예에서, 저널(216)은 기록될 실제 데이터를 포함할 수 있다.
기록 데이터 명령을 저널링할 때, 본 발명 원리의 양태에 따르면, 파일 시스템 제어 모듈(212)은 기록 데이터 명령이 임계 데이터 또는 비임계 데이터의 기록에 해당하는지 여부를 판단한다(단계 320). 비임계 데이터는 오디오-비디오 데이터, 텍스트, 및 다른 응용 정보와 같은 사용자-파일을 포함할 수 있다. 전술한 바와 같이, 오디오-비디오 데이터 및 다른 사용자-데이터의 손실로 인해 PVR 시스템에서 미치는 해로운 영향은 대개 근소하다. 임계 데이터는 메타데이터를 포함할 수 있으며, 이 메타데이터는 파일 시스템 그 자체가 사용자-데이터 파일을 찾기 위해 그리고 내부의 유지관리를 위해 사용하는 숨겨진 또는 숨기지 않은 정보, 즉 오디오 및 비디오 데이터라기보다 파일 시스템의 양태에 관한 또는 파일 시스템을 유지하는 데이터를 포함할 수 있다.
기록 데이터 명령이 임계 데이터에 해당한다고 판단되면, 본 발명 원리의 양태에 따른 명령어 생성기(208)는 임계 데이터 기록 명령을 생성한다(단계 324). 마찬가지로, 기록 데이터 명령이 비임계 데이터에 해당한다고 판단되면, 본 발명 원리의 양태에 따른 명령어 생성기(208)는 비임계 데이터 기록 명령을 생성한다(단계 328). 임계 데이터 기록 명령과 비임계 데이터 기록 명령은 아래에서 저장 장치 명령 처리 구현예의 설명에 대하여 더욱 상세히 기술된다.
이제 계속해서 도 2와 함께 도 4를 참조하면, 본 발명 원리의 양태에 따라서 데이터 기록 방법에서 사용된 예시적인 저장 장치 명령 처리 루틴(400)이 도시된다. 저장 장치 명령 처리 루틴은 명령어 생성기(208)로부터 명령을 저장 장치 제어 모듈(212)이 수신함으로써 시작할 수 있다(단계 404). 단계(408)에서, 저장 장치 제어 모듈(212)은 그 명령이 임계 데이터 또는 비임계 데이터를 기록하는 명령인지를 판단한다. 기록 데이터 명령이 임계 데이터를 기록하는 명령으로 판단되면, 단계(412)에서 저장 장치 제어 모듈(212)은 임계 데이터를 바로 플래터(224)에 기록하고, 캐시(220)에의 기록을 바이패스시킨다. 전술한 바와 같이, 캐시(220)를 바이패스하는 것은 저장 장치의 저널된 상태가 임계 데이터에 대하여 정확하도록 보장한다. 예를 들어, 임계 데이터를 직접 플래터에 기록함으로써 플래터에 대한 다수의 기록들의 기록 순서가 플래터에 대한 다수의 기록들의 저널된 기록 순서와 일치하도록 보장할 수 있다.
임계 데이터를 플래터(224)에 기록한 후, 단계(416)에서 저장 장치 제어 모듈(212)은 기록 완료 표시를 저널링 파일 시스템(202)에 제공한다. 기록 완료 표시는 저널 파일 시스템(202)이 임계 데이터가 플래터에 기록되었던 시간을 정확하게 반영하도록 보장한다. 전술한 바와 같이, 정확한 저널은 파일 시스템(202)으로 하여금 데이터 기록 동작의 중단으로부터 적절하게 복구할 수 있게 해준다. 더욱이, 캐시(220)를 바이패스함으로써 사용자-데이터에 대해 더 많은 캐시 공간을 제공하는 추가적인 이익을 포함하며, 이로 인해 계속해서 더욱 효율적인 데이터의 판독이 가능해진다. 부가적으로, 본 발명 원리의 또 다른 양태에 따르면, 시스템(200)은 또한 임계 데이터를 플래터(224)에 기록한 다음 데이터를 효율적으로 판독하기 위하여 선택적으로 임계 데이터를 캐시에 기록할 수 있다. 예를 들어, 파일 시스템 제어 모듈(204)은 명령어 생성기(208)를 이용하여 임계 데이터가 플래터(224)에 기록된 후 임계 데이터를 캐시(220)에 기록하라는 명령을 발행할 수 있다. 그러면 저장 장치 제어 모듈(212)은 임계 데이터를 메인 플래터(224)에 기록한 다음 임계 데이터를 캐시(220)에 기록한다.
기록 데이터 명령이 비임계 데이터를 기록하라는 명령이라 판단되면, 단계(420)에서 저장 장치 제어 모듈(212)은 비임계 데이터를 캐시(220)에 기록한다. 그 다음, 단계(424)에서, 플래터(224)가 캐시된 데이터에 대응하는 기록 동작을 준비하고 있다고 판단하면, 단계(428)에서 저장 장치 제어 모듈(212)은 비임계 데이터를 저장 장치의 메인 플래터(224)에 기록한다. 전술한 바와 같이, 캐시를 이용할 때, 플래터에 기록된 데이터는 종종 기록 효율을 제공하기 위하여 원래의 기록 명령과 일치하지 않은 순서대로 기록된다. 더욱이, 전술한 바와 같이, 데이터는 캐시의 작은 크기 때문에 캐시로부터 비교적 빨리 판독될 수 있다. 데이터를 플래터(224)에 기록한 후, 단계(416)에서, 저장 장치 제어 모듈(204)은 기록 완료 표시를 저널링 파일 시스템(202)에 제공한다(단계 332). 본 방법들(300 및 400)은 새로운 또는 다른 데이터가 파일링 시스템에 의해 수신될 때 필요에 따라 반복된다.
전술한 바와 같이, 저널링 파일 시스템은 저장 장치에서 데이터의 손상을 방지하기 위해 사용될 수 있다. 저널링 파일 시스템의 일 양태는 기록 동작의 중단 결과로서 손상 받은 손상된 섹터를 교정하기 위해 로그된 명령을 재생하는 것을 포함한다. 계속해서 도 2와 함께 도 5를 참조하면, 본 발명 원리의 양태에 따라서 저널링 파일 시스템(202)을 이용함으로써 적어도 하나의 손상된 섹터를 교정하기 위한 방법(500)이 예시된다. 본 방법은 단계(504)에서 정전 이후 프로세서 및 데이터가 기록된 저장 매체를 부팅함으로써 시작할 수 있다. 그러나, 본 방법은 또한, 예를 들어, 프로세서 중지 또는 기록 중단의 어떤 다른 원인에 뒤이어 정상적인 처리의 복원 시에도 시작할 수 있다. 정상 처리의 중단 및 재개 이후, 단계(508)에서, 파일 시스템 제어 모듈(204)은 명령의 저널(216)에 액세스한다(단계 508). 그 다음, 단계(512)에서, 파일 시스템 제어 모듈(204)은 저널(216)에 로그된 명령을 재생할지 여부를 판단한다. 전술한 바와 같이, 로그된 명령은 중단되었던 플래터에의 기록을 완료하기 위하여 재생된다. 단계(516)에서, 파일 시스템은 플래터에의 기록이 중단되었다고 판단한 후 저널된 명령을 실행한다. 예를 들어, 파일 시스템 제어 모듈(204)은, 플래터에의 기록이 중단되었다고 판단할 때, 명령어 생성기(208)를 이용하여 저널(216)에 로그된 명령과 일치하는 명령을 생성할 수 있다. 또한, 저장 장치 제어 모듈(212)은 데이터를 메인 플래터(224)에 기록함으로써 또는 어떤 다른 변경사항을 저널(216)과 일치하게 함으로써 명령을 실시한다. 만일 파일 시스템 제어 모듈(204)이 플래터로의 기록 동작과는 반대로 저널로의 기록 동작이 중단되었다고 판단하면, 단계(520)에서 저널된 명령이 폐기된다. 전술한 바와 같이, 이러한 방식으로 저널링 파일 시스템을 이용하여 메인 플래터의 데이터 구조 무결성을 보장한다. 비록 방법들(300, 400, 및 500)이 시스템(200)을 참조하여 기술되었을지라도, 이들 방법은 본 발명 원리의 다른 양태에 따라서 다른 수단에 의해 구현될 수 있음을 알아야 한다.
본 발명 원리의 양태에 따른 저널링 파일 시스템과 캐시 시스템의 통합은 강인한 파일 시스템 무결성과 효율적인 판독 및 기록 메커니즘을 제공한다. 전술한 바와 같이, 저널링 파일 시스템에서 임계 데이터 기록 동안 캐시를 바이패스하여 저널링 파일 시스템의 손상을 방지한다. 예를 들어, 메타데이터와 같은 임계 데이터의 손상은 비임계 기록과 연관된 데이터의 손상에 비해 파일 시스템에 상대적으로 더 많은 손상을 주는 경향이 있다. 전술한 바와 같이, 메타데이터는 파일 시스템이 사용자-데이터를 찾기 위해 그리고 내부적인 유지관리를 위해 활용하는 정보를 포함하며; 메타데이터의 손상은 사용자-데이터의 손상보다 더 큰 해로운 영향을 미친다. 프로세서는 데이터가 임계적인지 비임계적인지를 판단하며, 이 판단은 시스템의 특정한 응용, 예를 들어, 비디오 레코딩 시스템에 기반하여 프로그램될 수 있다. 사용자-데이터의 손상은 전형적으로 손상된 사용자-데이터의 부분으로 국한되지만, 메타데이터의 손상은 손상된 메타데이터에 추가하여 데이터의 다른 부분에도 부정적으로 영향을 미칠 수 있다. 그래서, 비록 사용자-데이터의 손상이 캐시의 이용 결과로서 발생할지라도, 이로 인한 나쁜 영향은 근소하다. 따라서, 본 발명 원리의 양태에 따른 저널링 파일 시스템은 캐시를 이용함에도 불구하고 파일 시스템 손상에 대해 강인한 보호를 제공한다.
더욱이, 본 발명 원리의 이익은 특히 PVR 시스템에서 분명히 나타난다. PVR 시스템에서, 부호화되고 암호화된 오디오/비디오 정보와 같은 비임계 데이터의 손상은 임계 데이터의 손상에 비해 상당히 덜 유해한 경향이 있다. 오디오/비주얼 정보를 포함하는 저장 매체의 손상된 섹터는 프리젠테이션에서 작은 글리치(glitch)로만 보일 수 있지만, 손상된 메타데이터는 파일 시스템 자체를 동작 정지시키는 더 큰 잠재성을 갖는 경향이 있다.
파일 시스템 손상에 대비한 실질적인 보호를 제공하는 것 이외에, 본 발명 원리의 양태는 또한 캐시의 사용으로 인해 비임계 데이터의 효율적인 판독 및 기록 역량을 제공한다. 메타데이터와 같은 임계 데이터는 전형적으로 모든 데이터 기록 동작들 중 대략 10% 이하를 포함하지만, 사용자-데이터와 같은 비임계 데이터는 전형적으로 모든 데이터 기록 동작들 중 대략 90% 이상을 포함한다. 그러므로, 임계 데이터 기록이 비교적 적은 기록의 양을 포함하므로, 임계 데이터 기록 동안 캐시를 바이패스함으로써 캐시에 의해 제공된 판독 및 기록 효율에 미치는 영향은 근소하다. 따라서, 본 발명 원리의 양태는 캐시 시스템을 저널링 시스템과 최적하게 통합하여 강인한 파일 시스템 무결성과 효율적인 판독 및 기록 메커니즘을 제공한다.
전술한 본 발명 원리의 양태를 구현하는데 이용될 수 있는 저널링 파일링 시스템은, 예를 들어, XFS 및 EXT3FS를 포함할 수 있다. PVR 응용예에 대하여 XFS와 같은 파일 시스템의 유익한 특징은 다중 스트림인 오디오-비주얼 데이터의 효율적인 기록을 제공하는 역량을 포함한다. XFS와 같은 파일 시스템은 저장 공간이 비교적 큰 부분으로 할당되어 응용예를 복잡하게 하지 않고도 저장 장치 처리량의 거의 100%를 제공하는 "실시간" 분할 특징을 갖는다. 반대로, 데스크탑 및 시분할 파일 시스템은 기록될 때에 작은 부분의 파일 저장 공간을 할당하며, 그 결과 비교적 떨어지는 처리량을 갖는 차선으로 최적화된 인터리빙된 스트림을 낳는다.
부가적으로, 본 발명 원리의 양태를 구현하는데 이용될 수 있는 프로그램 인터페이스 사양은 ATA7을 포함한다. ATA7은 자가 감시, 분석 및 보고 기술(Self-Monitoring, Analysis, and Reporting Technology (SMART) 기능, 포스드 유닛 액세스(Forced Unit Access: FUA) 기능, 및 시간 제한 명령을 포함하며, 이들 각각은 PVR에 특히 적합할 수 있다. 예를 들어, SMART 기능은 파일 시스템이 저장 장치의 동작 상태, 즉 저장 장치의 온도 감시를 판단하는데 이용될 수 있다. 더욱이, SMART 기능은 하드 디스크 드라이브 저장 장치에서 가까운 미래에 있을 디스크 드라이브 고장을 예측하는데 사용될 수 있다.
FUA 명령은 캐싱이 인에이블되어 있을지라도 명령 완료 후 단위 데이터가 장치 매체로 또는 장치 매체로부터 전달되도록 보장한다. 그래서, FUA 명령은 캐시를 바이패스, 또는 거의 바이패스하는 기록 요청을 구현한다. 본 발명 원리의 양태에 따른 저널링 파일 시스템은 적은 임계 데이터의 기록에 뚜렷한 영향을 미치지 않고 임계 데이터를 성공적으로 기록할 가능성을 높이는 FUA 명령을 이용할 수 있다. 예를 들어, FUA 명령은 본 발명 원리의 양태에 따라서 파일 시스템 메타데이터와 같은 임계 데이터를 플래터에 직접 기록을 구현하면서, 적은 임계 데이터에 대해 전통적인 기록 명령을 지속하여 사용하는데 이용될 수 있다.
또한, ATA7에 포함된 시간 제한 명령 세트는 PVR 시스템의 정해진 시간 제한을 실행하는데 이용될 수 있다. 전술한 바와 같이, PVR 시스템은 PVR이 정해진 시간 간격 내에 어떤 트랜잭션을 완료하지 못하는 경우 정보가 유실 또는 폐기되는 정해진 시간 제한 하에서 동작한다. 예를 들어, 퍼스널 컴퓨터와 같은 소정 표준 컴퓨팅 장치에 포함된 저장 매체는 입력/출력 에러 또는 디스크 표면 에러를 발생하였을 때 많은 시간-소모적인 데이터 판독 및 기록의 재시도를 수행한다. PVR 장치에서 그러한 시스템이 이용됨으로써 에러가 하나의 섹터에만 존재할 경우에도 멀티미디어 스트림을 엄격하게 중단시킬 잠재성이 있다. ATA7의 시간 제한된 명령은 정해진 시간 제한을 부과하여 그 시간 제한 내에 그러한 재시도를 포기하게 할 수 있다. 전술한 바와 같이, PVR 시스템은 가능한 많은 프리젠테이션을 적시에 디스플레이하려고 시도한다. 따라서, 에러를 포함하는 섹터 또는 소그룹의 섹터들 내에서 데이터를 빼버리는 유해한 영향은 무시할만하며 종종 오디오 비디오 프리젠테이션의 디스플레이 동안 실제로 인지할 수 없다.
기술된 구현예의 특징과 양태는 각종 응용예에 적용될 수 있다. 응용예는, 예를 들어, 표준 컴퓨팅 장치, 개인 정보 단말기, MP3 플레이어, 비디오 파일 플레이어 및 다른 장치들에서 데이터 손상 방지를 포함한다. 그러나, 본 명세서에서 기술된 특징과 양태는 다른 응용 영역에 적응될 수 있으며, 따라서, 다른 응용예가 가능하고 구상된다. 부가적으로, 데이터는 광섬유 케이블, 범용 직렬 버스(USB) 케이블, 소형 컴퓨터 시스템 인터페이스(small computer system interface: SCSI) 케이블, 전화선, 디지털 가입자 라인/루프(digital subscriber line/loop: DSL) 라인, 위성 연결, 시야선 연결(line-of-sight connections), 및 셀룰러 연결(cellular connections)을 통해 (그리고 이들과 연관된 프로토콜을 이용하여) 본 발명 원리의 양태에 따른 장치에 의해 송신되고 수신될 수 있다.
본 명세서에서 기술된 구현예는, 예를 들어, 방법 또는 프로세스, 장치 또는 소프트웨어 프로그램으로 구현될 수 있다. 한가지 구현 형태의 문맥만으로 기술되었을지라도(예를 들어, 방법만으로서 기술되었을지라도), 기술된 특징의 구현은 다른 형태(예를 들어, 장치 또는 프로그램)로도 구현될 수 있다. 장치는, 예를 들어, 적절한 하드웨어, 소프트웨어 및 펌웨어로 구현될 수 있다. 방법은, 예를 들어, 일반적으로 처리 장치를 지칭하는, 예를 들어, 컴퓨터, 마이크로프로세서, 집적 회로, 또는 프로그램가능 로직 디바이스를 포함하는 프로세서와 같은 장치로 구현될 수 있다. 처리 장치는 또한 통신 장치, 이를 테면, 예를 들어, 엔드 유저들 사이에서 정보의 통신을 용이하게 해주는 컴퓨터, 셀폰, 휴대/개인 정보 단말기("PDAs"), 및 다른 장치를 포함한다.
본 명세서에 기술된 각종 프로세스 및 특징의 구현예는 각종의 상이한 장비 또는 응용, 특히, 예를 들어, 데이터 전송 및 수신과 연관된 장비 또는 응용에서 구체화될 수 있다. 장비의 예는 비디오 코더, 비디오 디코더, 비디오 코덱, 웹 서버, 셋탑 박스, 랩탑, 퍼스널 컴퓨터, 및 다른 통신 장치를 포함한다. 자명해져야 하는 것으로, 장비는 이동할 수 있으며 심지어 이동 차량(mobile vehicle)에도 설치될 수 있다.
부가적으로, 방법들은 프로세서에 의해 실행되는 명령어들에 의해 구현될 수 있으며, 그러한 명령어는, 예를 들어, 집적 회로, 소프트웨어 캐리어 또는 다른 저장 장치, 이를 테면, 예를 들어, 하드 디스크, 콤팩트 디스켓, 랜덤 액세스 메모리("RAM"), 또는 판독-전용 메모리("ROM")와 같은 프로세서-판독가능 매체에 저장될 수 있다. 명령어는 프로세서-판독가능 매체에서 유형적으로 수록된 응용 프로그램을 형성할 수 있다. 자명한 바와 같이, 프로세서는, 예컨대 프로세스를 실행하기 위한 명령어들을 갖는 프로세서-판독가능한 매체를 포함할 수 있다.
본 기술 분야의 숙련자에게 자명해지는 것으로서, 구현예는, 예를 들어, 저장 또는 전송될 수 있는 정보를 담기 위해 포맷된 신호를 생성할 수 있다. 정보는, 예를 들어, 방법을 실행하기 위한 명령어, 기술된 구현예들 중 하나에 의해 생성된 데이터를 포함할 수 있다. 그러한 신호는, 예를 들어, (예를 들어, 스펙트럼의 무선 주파수 부분을 이용하여) 전자기파로서 또는 기저대역 신호로서 포맷될 수 있다. 포맷은, 예를 들어, 데이터 스트림의 부호화, 부호화된 스트림의 패킷타이징, 및 캐리어를 패킷타이즈된 스트림으로 변조하는 것을 포함할 수 있다. 신호가 전달하는 정보는, 예를 들어, 아날로그 정보 또는 디지털 정보일 수 있다. 신호는 공지된 바와 같이 각종 상이한 유선 또는 무선 링크를 통해 전송될 수 있다.
많은 구현예가 기술되었다. 그럼에도 불구하고, 다양한 변형이 이루어질 수 있음은 당연할 것이다. 예를 들어, 상이한 구현예들의 구성요소들은 조합되거나, 보충되거나, 변형되거나 또는 제거되어 다른 구현예를 만들어 낼 수 있다. 부가적으로, 통상의 지식을 가진자는 다른 구조와 프로세스가 기술된 구조와 프로세스를 대체할 수 있으며 그 결과적인 구현예가 적어도 실질적으로 동일한 기능(들)을 적어도 실질적으로 동일한 방식(들)으로 수행하여 기술된 구현예와 적어도 실질적으로 동일한 결과(들)를 성취할 것임을 이해할 것이다. 따라서, 이러한 구현예와 다른 구현예는 다음의 청구범위의 범주 내에 속한다.

Claims (20)

  1. 저널링 시스템과 캐시 시스템 양자를 이용하여 데이터를 저장 장치에 기록하는 방법으로서,
    데이터를 저장 매체 상에 기록하라는 명령을 수신하는 단계;
    상기 명령에 응답하여 데이터 기록을 저널링(journaling)하는 단계;
    상기 데이터가 임계 데이터인지를 판정하는 단계;및
    상기 데이터가 임계적이라고 판정할 때, 상기 데이터를 상기 저장 매체에 기록할 때 캐시에의 기록을 바이패스하여, 상기 저장 장치의 저널된 상태가 상기 임계 데이터에 대하여 정확하도록 보장하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 데이터가 비임계 데이터라고 판정할 때, 상기 데이터를 상기 캐시에 기록하는 단계 및 상기 데이터를 상기 저장 매체에 기록하는 단계를 더 포함하는 방법.
  3. 제1항에 있어서, 임계 데이터를 플래터(platter)에 기록할 때 기록 완료 표시를 저널링하여, 상기 저널된 파일 시스템이 상기 임계 데이터가 상기 저장 매체에 기록되었던 시간을 반영하도록 보장하는 단계를 더 포함하는 방법.
  4. 제1항에 있어서, 임계 데이터는 파일 시스템의 관리에 관한 데이터에 해당하며, 비임계 데이터는 압축된 오디오/비디오 데이터에 해당하는 방법.
  5. 제4항에 있어서, 임계 데이터는 메타데이터를 포함하는 방법.
  6. 제4항에 있어서, 상기 방법 단계들은 퍼스널 비디오 레코더 내에서 수행되는 방법.
  7. 제1항에 있어서, 임계 데이터를 상기 저장 매체에 기록 완료한 것에 뒤이어 상기 임계 데이터를 상기 캐시에 기록하는 단계를 더 포함하는 방법.
  8. 제1항에 있어서, 저널된 명령을 실행하여 기록 동작들의 중단에 뒤이어 상기 저장 장치 상의 적어도 하나의 손상된 섹터를 교정하는 단계를 더 포함하는 방법.
  9. 데이터를 저장 장치에 기록하는 시스템으로서
    저장 매체에 기록될 데이터를 포함하는 캐시;
    변경사항의 로그를 포함하는 저널; 및
    데이터를 저장 매체 상에 기록하라는 명령을 수신하고, 상기 데이터가 임계 데이터인지를 판정하고, 상기 데이터가 임계 데이터라면 상기 임계 데이터가 상기 저장 매체에 기록될 때 캐시를 바이패스함으로써 상기 저장 장치의 저널된 상태가 상기 임계 데이터에 대하여 정확하게 되게 보장하도록 상기 데이터의 상기 저장 매체에의 기록을 제어하게 구성된 저장 장치 제어 프로세서
    를 포함하는 시스템.
  10. 제9항에 있어서, 상기 저장 장치 제어 프로세서는 비임계 데이터를 상기 캐시에 기록하고 비임계 데이터를 상기 저장 매체에 기록하도록 또한 구성된 시스템.
  11. 제9항에 있어서, 상기 저장 장치 제어 프로세서는 상기 저널된 파일 시스템이 상기 임계 데이터가 상기 저장 매체에 기록되었던 시간을 정확히 반영하게 보장하도록 상기 임계 데이터를 상기 저장 매체에 기록할 때 기록 완료 표시를 저널하도록 또한 구성된 시스템.
  12. 제9항에 있어서, 임계 데이터는 파일 시스템의 관리에 관한 데이터에 해당하며, 비임계 데이터는 압축된 오디오/비디오 데이터에 해당하는 시스템.
  13. 제9항에 있어서, 상기 임계 데이터는 메타데이터를 포함하는 시스템.
  14. 제9항에 있어서, 상기 시스템은 퍼스널 비디오 레코더(100) 내에 포함되는 시스템.
  15. 제9항에 있어서, 상기 저장 장치 제어 프로세서는 상기 임계 데이터를 상기 저장 매체에 기록 완료할 때 상기 임계 데이터를 상기 캐시에 기록하도록 또한 구성된 시스템.
  16. 제9항에 있어서, 상기 저장 장치 제어 프로세서는 파일 시스템 명령에 따라서 기록 동작의 중단에 뒤이어 상기 저장 매체 상의 적어도 하나의 손상된 섹터를 교정하는 저널된 명령을 실행하도록 또한 구성된 시스템.
  17. 디지털 비디오 레코딩 장치로서,
    저장 매체;
    프로그램 신호를 제공하는 디지털 비디오 신호원;
    상기 프로그램 신호를 처리하여 압축된 신호를 제공하는 수단;
    상기 압축된 오디오/비디오 신호를 상기 저장 매체 상에 저장하는 수단;
    저장 매체에 기록될 데이터를 저장하는 캐시;
    변경 사항의 로그를 저장하는 저널; 및
    데이터를 상기 저장 매체 상에 기록하라는 명령을 수신하고, 상기 데이터가 임계 데이터인지를 판정하고, 상기 데이터가 임계 데이터라면 상기 임계 데이터가 상기 저장 매체에 기록될 때 상기 캐시를 바이패스함으로써 상기 저장 장치의 저널된 상태가 상기 임계 데이터에 대하여 정확하게 되게 보장하도록 상기 데이터의 상기 저장 매체에의 기록을 제어하게 구성된 프로세서
    를 포함하며,
    상기 임계 데이터는 파일 시스템의 관리에 관한 데이터에 해당하며, 비임계 데이터는 오디오/비디오 신호에 해당하는 디지털 비디오 레코딩 장치.
  18. 제17항에 있어서, 상기 캐시 및 상기 저널은 상기 저장 매체 상에 저장되는 디지털 비디오 레코딩 장치.
  19. 제17항에 있어서, 상기 프로세서는 상기 저장 매체 상에 상기 임계 데이터의 기록을 완료할 때 상기 임계 데이터를 상기 캐시에 기록하도록 구성된 디지털 비디오 레코딩 장치.
  20. 제17항에 있어서, 상기 임계 데이터는 메타데이터를 포함하는 디지털 비디오 레코딩 장치.
KR1020107006147A 2007-08-21 2008-02-19 하드 디스크 드라이브 파일 시스템의 손상 방지 방법 및 시스템 KR20100057655A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US96560407P 2007-08-21 2007-08-21
US60/965,604 2007-08-21

Publications (1)

Publication Number Publication Date
KR20100057655A true KR20100057655A (ko) 2010-05-31

Family

ID=39540389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107006147A KR20100057655A (ko) 2007-08-21 2008-02-19 하드 디스크 드라이브 파일 시스템의 손상 방지 방법 및 시스템

Country Status (7)

Country Link
US (1) US20100153347A1 (ko)
EP (1) EP2191359A1 (ko)
JP (1) JP2010537309A (ko)
KR (1) KR20100057655A (ko)
CN (1) CN101815983A (ko)
BR (1) BRPI0815679A2 (ko)
WO (1) WO2009025684A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010522406A (ja) * 2007-03-23 2010-07-01 トムソン ライセンシング 記憶媒体における誤りを防止するシステム及び方法
US8521972B1 (en) 2010-06-30 2013-08-27 Western Digital Technologies, Inc. System and method for optimizing garbage collection in data storage
US9189392B1 (en) 2011-06-30 2015-11-17 Western Digital Technologies, Inc. Opportunistic defragmentation during garbage collection
WO2013070596A2 (en) * 2011-11-07 2013-05-16 Deb Group Ltd. Method for determining hand hygiene compliance
US8819375B1 (en) 2011-11-30 2014-08-26 Western Digital Technologies, Inc. Method for selective defragmentation in a data storage device
US8788778B1 (en) 2012-06-04 2014-07-22 Western Digital Technologies, Inc. Garbage collection based on the inactivity level of stored data
US9069682B1 (en) * 2012-06-29 2015-06-30 Emc Corporation Accelerating file system recovery by storing file system metadata on fast persistent storage during file system recovery
JP7292872B2 (ja) * 2018-12-25 2023-06-19 キヤノン株式会社 情報処理装置および情報処理装置の制御方法
US11360699B1 (en) 2019-08-30 2022-06-14 Veritas Technologies Llc Method and system for improved write performance in erasure-coded storage systems
US11379153B2 (en) 2020-07-23 2022-07-05 Micron Technology, Inc. Storage traffic pattern detection in memory devices
US11385806B1 (en) * 2020-12-20 2022-07-12 Veritas Technologies Llc Methods and systems for efficient erasure-coded storage systems

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4779189A (en) * 1985-06-28 1988-10-18 International Business Machines Corporation Peripheral subsystem initialization method and apparatus
US5253275A (en) * 1991-01-07 1993-10-12 H. Lee Browne Audio and video transmission and receiving system
JP3062050B2 (ja) * 1995-07-21 2000-07-10 インターナショナル・ビジネス・マシーンズ・コーポレ−ション ディスク駆動制御方法及び装置
JP4095152B2 (ja) * 1998-03-09 2008-06-04 キヤノン株式会社 画像管理装置およびその方法、画像管理システム、記憶媒体
US6678787B2 (en) * 2000-12-21 2004-01-13 International Business Machines Corporation DASD-free non-volatile updates
JP2002222118A (ja) * 2001-01-26 2002-08-09 Mitsubishi Electric Corp ディスクキャッシュシステム
US6947956B2 (en) * 2002-06-06 2005-09-20 International Business Machines Corporation Method and apparatus for selective caching of transactions in a computer system
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP2005309550A (ja) * 2004-04-19 2005-11-04 Hitachi Ltd リモートコピー方法及びリモートコピーシステム
US7565661B2 (en) * 2004-05-10 2009-07-21 Siew Yong Sim-Tang Method and system for real-time event journaling to provide enterprise data services
CN101785063B (zh) * 2007-08-22 2012-07-25 汤姆森特许公司 用于透明的使损耗均匀化的硬盘扇区/轨道重新映射
US7873619B1 (en) * 2008-03-31 2011-01-18 Emc Corporation Managing metadata

Also Published As

Publication number Publication date
US20100153347A1 (en) 2010-06-17
JP2010537309A (ja) 2010-12-02
WO2009025684A1 (en) 2009-02-26
CN101815983A (zh) 2010-08-25
BRPI0815679A2 (pt) 2015-02-18
EP2191359A1 (en) 2010-06-02

Similar Documents

Publication Publication Date Title
KR20100057655A (ko) 하드 디스크 드라이브 파일 시스템의 손상 방지 방법 및 시스템
JP5503539B2 (ja) 損傷したハードディスクのファイルシステムを修復する方法およびシステム
CN102932621B (zh) 一种存储数据的方法及装置
US20140013068A1 (en) Information processing apparatus, storage system, and write control method
US9501492B2 (en) Combination journaling/non-journaling file system
KR20150035560A (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
US8014093B2 (en) Hard disk sector/track remapping for transparent wear leveling
JP5037734B2 (ja) データの保護方法とシステム、記憶デバイス及び記憶デバイスコントローラ
JP2010522406A (ja) 記憶媒体における誤りを防止するシステム及び方法
US7694071B1 (en) Disk drives and methods allowing configurable zoning
US8811133B2 (en) Writing system, writing device, and writing method
US8200869B2 (en) Storage system with alterable background behaviors
US20090185762A1 (en) Data structure for image file
US20110093655A1 (en) Connecting A Storage Subsystem And An Electronic Device With A Control Device That Hides Details Of The Storage Subsystem
US11081135B2 (en) Shingled magnetic recording storage system
US20090172454A1 (en) Information recording device and information recording method
CN112784101B (zh) 视频数据存储方法及装置、数据存储设备
US20240095139A1 (en) Systems, methods, and media for reducing the impact of drive parameter writes on solid state drive performance

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid