KR20060042133A - 데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치 - Google Patents

데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치 Download PDF

Info

Publication number
KR20060042133A
KR20060042133A KR1020050013934A KR20050013934A KR20060042133A KR 20060042133 A KR20060042133 A KR 20060042133A KR 1020050013934 A KR1020050013934 A KR 1020050013934A KR 20050013934 A KR20050013934 A KR 20050013934A KR 20060042133 A KR20060042133 A KR 20060042133A
Authority
KR
South Korea
Prior art keywords
file system
data
cache mode
cache
storage device
Prior art date
Application number
KR1020050013934A
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 KR20060042133A publication Critical patent/KR20060042133A/ko

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B69/00Training appliances or apparatus for special sports
    • A63B69/36Training appliances or apparatus for special sports for golf
    • A63B69/3691Golf courses; Golf practising terrains having a plurality of driving areas, fairways, greens
    • 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
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B57/00Golfing accessories
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63BAPPARATUS FOR PHYSICAL TRAINING, GYMNASTICS, SWIMMING, CLIMBING, OR FENCING; BALL GAMES; TRAINING EQUIPMENT
    • A63B63/00Targets or goals for ball games
    • 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
    • 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/0656Data buffering 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0674Disk device
    • G06F3/0676Magnetic disk device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/31Providing disk cache in a specific location of a storage system
    • G06F2212/312In storage controller
    • 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

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)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Physical Education & Sports Medicine (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 HDD의 퍼포먼스를 향상하는 것을 목적으로 한다.
자기 디스크(121)로부터 MBR가 독출되어, 독출된 MBR은 이벤트 핸들러(304)에 의해서 섹터 버퍼(307)에 기억된다. 세그먼트 제어부(302)는 섹터 버퍼(307)에 기억되어 있는 MBR를 취득하여, 파티션 타입의 필드를 참조하여 파일 시스템을 특정한다. 세그먼트 제어부는 캐쉬 모드 테이블(305)을 참조하여, MBR에 기억되어 있는 파일 시스템에 대응하는 캐쉬 모드를 결정하는 이 후의 리드 및 라이트 처리에 있어서 결정된 캐쉬 모드에 따라서 버퍼 핸들링 및 커맨드 실행 제어를 한다. 파일 시스템에 따라서 적합한 캐쉬 모드를 선택하는 것으로 퍼포먼스를 향상시킬 수 있다.

Description

데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치{DATA STORAGE DEVICE, CONTROL METHOD THEREOF AND MAGNETIC DISK STORAGE DEVICE}
도 1은 본 실시형태에 있어서의 데이터 처리 시스템의 개략 구성을 도시하는 블럭도.
도 2a 및 도 2b는 본 실시형태에 있어서의 MBR 및 파티션 테이블의 데이터 구조의 개략을 도시한 도면.
도 3은 본 실시형태에 있어서의 소정의 캐쉬 모드와 소정의 파일 시스템의 각 조합에 대한 벤치 마크 테스트의 결과를 나타내는 그래프.
도 4는 본 실시형태에 있어서의 버퍼 핸들링에 관련되는 논리 구성을 도시하는 블럭도.
도 5는 본 실시형태에 있어서의 캐쉬 모드 테이블의 일구성예를 도시한 도면.
도 6은 본 실시형태에 있어서의 파일 시스템에 기초한 캐쉬 모드의 결정 처리를 도시하는 플로우차트.
도 7은 본 실시형태에 있어서의 캐쉬 모드가 결정된 후의 리드/라이트 처리의 일반적인 순서를 도시하는 플로우차트.
<도면의 주요부분에 대한 부호의 설명>
100: 데이터 처리 시스템
110: 호스트
120: 하드디스크 드라이브(HDD)
121: 자기 디스크
122: 자기 헤드
123: 헤드 스택 어셈블리
124: 컨트롤러
125: 스핀들 모터
126: 보이스 코일 모터(VCM)
127: 리드/라이트 채널
128: 하드디스크 컨트롤러(HDC)
129: 마이크로 프로세서 유닛(MPU)
130: 메모리
134: 보이스 코일 모터 드라이버
301: 인터페이스 핸들러
302: 세그먼트 제어부
303: 커맨드 디스패처
304: 이벤트 핸들러
305: 캐쉬 모드 테이블
306: 커맨드 큐
307: 섹터 버퍼
본 발명은 데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치에 관한 것이며, 특히, 데이터 기억 장치에 있어서의 캐쉬 모드 제어에 관한 것이다.
데이터 기억 장치로서, 광 디스크나 자기 테이프 등의 여러 가지 형태의 미디어를 사용하는 장치가 알려져 있다. 그 중에서, 자기 디스크에 데이터를 기억하는 하드디스크 드라이브(HDD)는 컴퓨터의 기억 장치로서 널리 보급되어, 현재의 컴퓨터 시스템에 있어서 빠뜨릴 수 없는 기억 장치의 하나로 되어 있다. 또한, 컴퓨터로 머물지 않고, 동화상 기록 재생 장치, 차량용 내비게이션 시스템, 혹은 디지털 카메라 등으로 사용되는 착탈식 메모리 등, HDD의 용도는 그 우수한 특성에 의해 점점 확대하고 있다.
HDD에서 사용되는 자기 디스크는, 동심원형으로 형성된 복수의 트랙을 갖고 있고, 각 트랙에는 어드레스 정보(서보 정보)와, 사용자 데이터가 기억된다. 박막 소자로 형성된 자기 헤드가 어드레스 정보에 따라서 원하는 영역(섹터)에 액세스함으로써 데이터 기록 혹은 데이터 독출을 할 수 있다. 데이터 독출 처리에 있어서, 자기 헤드가 자기 디스크로부터 독출한 신호는 신호 처리 회로에 의해서 파형 정형이나 복호 처리 등의 소정의 신호 처리가 실시되어, 호스트에 송신된다. 호스트로부터의 전송 데이터는 신호 처리 회로에 의해서 마찬가지로 소정 처리된 후에, 자 기 디스크에 기록된다.
상기한 바와 같이, 자기 디스크에의 데이터 기록, 혹은 자기 디스크로부터의 데이터 독출 처리에 있어서, 자기 헤드가 자기 디스크의 기억 영역에 액세스하기 위한 액세스 타임이 필요하게 된다. 이 때문에, 호스트와의 사이의 데이터 통신을 고속화하여, 퍼포먼스를 향상시키는 방법으로서, HDD에 캐쉬가 사용된다. HDD는 사용자 데이터를 일시적으로 기억하는 섹터 버퍼를 구비하여, 섹터 버퍼를 통해 호스트와의 사이의 데이터 통신을 행하는 것에 의해 퍼포먼스를 올릴 수 있다. HDD의 캐쉬로서, 일반적으로, 리드 캐쉬와 라이트 캐쉬가 알려져 있다.
리드 캐쉬는 호스트로부터 소정 어드레스의 리드 커맨드를 수신하기 전에, 데이터를 미리 자기 디스크로부터 독출하여(Look ahead), 섹터 버퍼에 기억한다. 호스트로부터 리드 커맨드를 수신하여, 지정 어드레스의 데이터가 섹터 버퍼에 기억되어 있는 경우(캐쉬 히트), 자기 디스크에 액세스하지 않고, 섹터 버퍼에 기억되어 있는 데이터를 호스트에 돌려준다.
라이트 캐쉬는 호스트로부터 라이트 커맨드를 수신하면, 호스트로부터의 라이트 데이터를 섹터 버퍼에 기억하여, 자기 디스크에의 기록 완료전에 커맨드 완료를 호스트에 돌려준다. 이것에 의해서, 호스트는 새로운 커맨드를 발행할 수 있다. 특히, 2개의 라이트 커맨드가 연속하는 섹터에의 데이터 기록인 경우, 자기 디스크에의 액세스 시간을 생략할 수 있기 때문에 처리의 고속화에 크게 기여할 수 있다.
HDD에서의 버퍼 핸들링의 방법, 즉 리드 캐쉬 혹은 라이트 캐쉬의 방법(캐쉬 피처)으로서, 상기한 것 외에 여러 가지 방법이 알려져 있다. 예컨대, Write Back Read Cache는 섹터 버퍼에 기억되어 있는 라이트 데이터에 관해서 리드 커맨드를 받으면, 그 라이트 데이터의 자기 디스크에의 쓰기가 완료하지 않는 경우라도 섹터 버퍼에 기억되어 있는 데이터를 호스트에 돌려준다.
종래 기술로서, 복수의 캐쉬 모드를 구비하고, 파일의 액세스 모드에 따라서 최적의 캐쉬 모드를 설정하는 기술이 특허문헌 1에 개시되어 있다. 특허문헌 1에 따르면, 프로그램으로부터의 파일에의 액세스 모드에 의해 그 액세스 모드에 적당한 적절한 캐쉬 모드가 있어, 적절한 모드가 설정, 지정되어 있지 않은 경우에는 퍼포먼스가 떨어진다.
이 때문에, 파일의 액세스 모드에 따라서 최적의 캐쉬 모드를 설정함으로써 HDD의 퍼포먼스를 향상시킨다. 특허문헌 1에 개시한 기술은 호스트로부터의 제어에 의해 HDD에 대하여 복수의 디스크 캐쉬 모드의 설정을 한다. 또한, 호스트는 캐쉬 모드에 의해 파일에 최적의 모드가 설정되어 있는 디스크의 영역에 파일을 확보한다. 파일 사용시에, 파일 액세스 타입에 의해 최적의 캐쉬 모드를 설정한다. 파일에 대응하여 최적의 캐쉬 모드가 설정되어, 캐쉬의 유효 이용을 가능하게 한다.
[특허문헌 1] 특허 공개 2002-108704호 공보
파일 액세스 타입을 특정하는 방법으로서, 과거의 액세스 이력으로부터 추측하는 방법이나 특허문헌 1에 개시되어 있는 방법과 같이 복수의 디스크 캐쉬 모드를 구비하는 경우가 있다. 그러나, 이들의 방법이 반드시 최적의 퍼포먼스를 달성하는 것은 아니다. 예컨대, 과거의 액세스 이력으로부터 추측하는 방법에서는, 과 거의 몇 개의 액세스에 의해서 파일 액세스 타입을 추측하기 때문에 그 추측 자체에 사용되는 액세스에는 적절한 캐쉬 모드가 적용되지 않는다. 또한, 특허문헌 1에 개시의 방법에서는 특정한 단순한 파일 액세스 타입으로서는 효과가 있지만, 복잡한 실환경상의 파일 액세스 타입에 있어서는 실현이 곤란하다. 실제 환경상의 파일 액세스 타입에 있어서 퍼포먼스의 향상을 도모하기 위해서는 미리 실제 사용환경을 시뮬레이트하는 것과 같은 벤치 마크에 의한 실측으로 최적의 캐쉬 모드를 결정해 두고, 그것을 선택하도록 하면 좋다. 그러나, 호스트가 사용하는 파일 시스템(예컨대 FAT 등)에 따라서 적절한 캐쉬 모드는 다르기 때문에 파일 시스템에 따라서 적절한 캐쉬 모드를 설정하는 것이 중요하다. 한편, 퍼스널 컴퓨터의 OS(Operating System)의 다양화, HDD의 용도의 다양화가 진행되어, HDD를 사용하는 호스트의 파일 시스템은 다종 다양으로 되고 있다. 따라서, 다른 파일 시스템을 사용하는 호스트에 따라서 HDD의 캐쉬 모드를 변경, 설정할 수 있는 것이 요구된다.
본 발명은 상기한 사정을 배경으로 하여 이루어진 것으로, 본 발명의 목적은 다른 파일 시스템에 대하여 효율적인 캐쉬 처리를 하는 것이다.
이하에 과제를 해결하기 위한 수단을 개시한다. 본 항목에 있어서, 몇 개의 구성 요소는 실시형태에 있어서 설명된 구성 요소와 대응되어 있다. 그러나, 이 대응은 설명을 용이하게 하기 위해 이루어진 것으로, 각 요소는 실시형태의 대응 요소에만 한정되는 것이 아니다.
본 발명의 제1 형태에 관하는 데이터 기억 장치는 데이터를 기억하는 미디어 [예컨대, 자기 디스크(121)]와, 상기 미디어에의 라이트 데이터 및/혹은 상기 미디어로부터의 리드 데이터를 일시적으로 기억하는 섹터 버퍼[예컨대, 섹터 버퍼(307)]와, 상기 미디어에 기억되어 있는 데이터의 파일 시스템을 기초로 하여 캐쉬 모드를 결정한다, 캐쉬 모드 결정부[예컨대, 세그먼트 제어부(302)]와, 상기 결정된 캐쉬 모드에 따라서 상기 섹터 버퍼를 핸들링하는 제어부[예컨대, 세그먼트 제어부(302)]를 갖는다. 파일 시스템을 기초로 하여 캐쉬 모드를 결정함으로써 다른 파일 시스템에 대하여 적절한 버퍼 핸들링을 행할 수 있다.
상기 캐쉬 모드 결정부는 미리 등록된 복수의 캐쉬 모드중에서 상기 파일 시스템에 대응하는 캐쉬 모드를 선택하는 것이 바람직하다. 또한, 상기 데이터 기억 장치는 복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블[예컨대, 캐쉬 모드 테이블(305)]을 미리 기억하고, 상기 캐쉬 모드 결정부는 상기 캐쉬 모드 테이블을 참조하여 상기 파일 시스템에 대응하는 캐쉬 모드를 결정한다. 이것에 의해서, 적절한 캐쉬 모드를 효율적으로 결정할 수 있다.
상기 미디어는 파일 시스템을 특정하는 파일 시스템 특정 데이터(예컨대, 도 2에 있어서의 파티션 타입)를 기억하고, 상기 데이터 기억 장치는 상기 파일 시스템 특정 데이터를 참조하여 상기 미디어에 기억되어 있는 데이터의 파일 시스템을 특정하는 파일 시스템 특정부[예컨대, 세그먼트 제어부(302)]를 더 구비하며, 상기 캐쉬 모드 결정부는 상기 파일 시스템 특정부에 의해 특정된 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것이 바람직하다. 미디어에 기억된 데이터에 의해 파일 시스템을 특정함으로써 데이터 기억 장치의 내부 데이터, 내부 처리에 의해서 캐쉬 모드 결정할 수 있다. 또한, 상기 파일 시스템 특정부 및 상기 캐쉬 모드 결정부는 상기 데이터 기억 장치의 기동 처리에 있어서 상기 파일 시스템 및 캐쉬 모드를 결정하는 것이 바람직하다. 이것에 의해서, 실제의 사용자 데이터 전송의 전에 캐쉬 모드를 결정할 수 있다. 혹은, 상기 파일 시스템 특정 데이터로서 상기 미디어에 기억되어 있는 마스터 부트 레코드에 포함되어 있는 데이터를 사용할 수 있다.
상기 데이터 기억 장치는 상기 미디어에 기억되어 있는 데이터의 파일 시스템을 특정하는 파일 시스템 특정부를 더 구비하고, 상기 미디어는 파일 시스템을 특정하는 파일 시스템 특정 데이터를 기억하며, 상기 파일 시스템 특정부는 데이터 기억 장치의 기동 처리에 있어서 상기 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하고, 상기 캐쉬 모드 결정부는 상기 파일 시스템 특정부에 의해 특정된 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것이 바람직하다.
본 발명의 제2 형태는 호스트의 데이터를 기억하는 미디어와, 상기 미디어와 상기 호스트와의 사이의 데이터 전송에 있어서 상기 호스트의 데이터를 일시적으로 기억하는 섹터 버퍼를 갖는 데이터 기억 장치의 제어 방법으로서, (a) 상기 호스트가 사용하는 파일 시스템을 특정하는 단계와, (b) 상기 특정된 파일 시스템을 기초로 하여 캐쉬 모드를 결정하는 단계와, (c) 상기 결정된 캐쉬 모드에 따라서 상기 섹터 버퍼를 핸들링하는 단계를 갖는다. 파일 시스템을 기초로 하여 캐쉬 모드를 결정함으로써 다른 파일 시스템에 대하여 적절한 버퍼 핸들링을 행할 수 있다.
상기 단계 (b)는 복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블 참조하여, 상기 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것이 바람직하다. 이것에 의해서, 적절한 캐쉬 모드를 효율적으로 결정할 수 있다.
상기 단계 (a)는 상기 호스트의 기동 처리에 있어서 미리 상기 데이터 기억 장치에 기억되어 있는 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하는 것이 바람직하다. 기동 처리에 있어서 특정함으로써 실제의 사용자 데이터 전송의 전에 캐쉬 모드를 결정할 수 있다.
상기 단계 (a)는 미리 상기 미디어에 기억되어 있는 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하고, 상기 단계 (b)는 상기 파일 시스템에 대응하는 캐쉬 모드를 미리 등록되어 있는 복수의 캐쉬 모드로부터 선택하는 것이 바람직하다. 미디어에 기억된 데이터에 의해 파일 시스템을 특정함으로써 데이터 기억 장치의 내부 데이터, 내부 처리에 의해서 캐쉬 모드 결정할 수 있다.
상기 호스트의 기동에 응답하여 상기 미디어에 기억되어 있는 관리 데이터(예컨대 MBR)를 취득하는 단계를 더 구비하고, 상기 단계 (b)는 상기 관리 데이터에 포함되는 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정할 수 있다.
본 발명의 제3 형태에 관하는 자기 디스크 기억 장치는 호스트의 데이터를 기억하는 자기 디스크와, 상기 자기 디스크와 상기 호스트와의 사이의 데이터 전송에 있어서 상기 호스트의 데이터를 일시적으로 기억하는 섹터 버퍼와, 상기 자기 디스크에 기억되어 있는 마스터 부트 레코드를 취득하여, 상기 호스트의 오퍼레이팅 시스템이 사용하는 파일 시스템을 특정하는 파일 시스템 특정부와, 복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블을 기억하는 기억부와, 상기 캐쉬 모드 테이블을 검색하여, 상기 특정된 파일 시스템에 대응하는 캐쉬 모드를 결정하는 캐쉬 모드 결정부와, 상기 결정된 캐쉬 모드에 따라서 상기 섹터 버퍼를 핸들링하는 제어부를 갖는다. 파일 시스템을 기초로 하여 캐쉬 모드를 결정함으로써 다른 파일 시스템에 대하여 적절한 버퍼 핸들링을 행할 수 있다.
이하에, 본 발명을 적용할 수 있는 실시형태가 설명된다. 이하의 설명은 본 발명의 실시형태를 설명하는 것으로, 본 발명이 이하의 실시형태에 한정되는 것은 아니다. 설명을 명확히 하기 위해 이하의 기재 및 도면은 적절하게 생략 및 간략화되어 있다. 또, 당업자이면 이하의 실시형태의 각 요소를 본 발명의 범위에서 용이하게 변경, 추가, 변환하는 것이 가능하다. 또한, 각 도면에 있어서 동일 요소에는 동일한 부호가 첨부되어 있고, 설명을 명확히 하기 위해 필요에 따라서 중복 설명은 생략되어 있다.
도 1은 본 실시형태에 있어서의 데이터 처리 시스템(100)의 개략 구성을 도시하는 구성도이다. 데이터 처리 시스템(100)은 컴퓨터나 디지털 카메라 등, 데이터 처리를 행하는 호스트(110)와, 데이터 기억 장치의 일례인 하드디스크 드라이브(HDD)(120)를 갖고 있다. HDD(120)는 호스트(110)로부터 전송된 데이터를 기억하고, 기억 미디어의 일례인 1장 혹은 복수장의 자기 디스크(121), 각 자기 디스크(121)의 기록면에 대응하여 자기 디스크(121)의 기억 영역에 액세스하는 자기 헤드(122)를 구비한 헤드 스택 어셈블리(123), 또한, 자기 디스크(121)에의 데이터의 기록 및 자기 디스크(121)로부터의 데이터 독출을 위해 이들 요소를 제어하는 컨트롤러(124)를 구비하고 있다.
호스트(110)로부터 전송된 호스트 사용자 데이터는 컨트롤러(124)에 의해서 필요한 처리가 이루어져, 라이트 신호로 변환된 후, 헤드스택 어셈블리(123)에 보내진다. 자기 헤드(122)는 취득한 라이트 신호에 따라서 자기 디스크(121)의 기록면에 데이터를 기록한다. 한편, 자기 헤드(122)에 의해서 자기 디스크로부터 독출된 리드 신호는 컨트롤러(124)에 의해서 디지털 신호로 변환되어 필요한 처리가 이루어진 후, 호스트(110)에 전송된다.
자기 디스크(121)는 자성층이 자화되는 것에 의해 데이터를 기록하는 불휘발성의 기록 매체이며, HDD(120)가 동작하고 있을 때에 스핀들 모터(125)의 스핀들축을 중심으로 하여 소정의 속도로 회전 구동된다. HDD(120)의 비동작시에는 자기 디스크(121)는 정지하고 있다. 자기 디스크(121)의 표면에는 데이터를 저장하기 위한 구획으로서 동심원형으로 복수의 트랙이 형성되어 있다.
자기 디스크(121)의 표면에는 자기 디스크(121)의 반경 방향에 따라서 형성된 서보 데이터 기억 영역이 형성되어 있다. 자기 디스크(121)의 표면에는 복수의 서보 데이터 기억 영역이 형성되고, 각 서보 데이터 기억 영역의 사이에는 사용자 데이터 기억 영역이 형성되어 있다. 사용자 데이터 기억 영역은 각 트랙에 있어서 원주 방향으로 복수의 섹터로 분할되어 있다. 서보 데이터를 자기 헤드(122)가 판독하는 것에 의해 자기 헤드(122)의 위치에 관한 정보를 취득할 수 있다. 서보 데이터는 트랙 번호, 서보 섹터 번호, 및 버스트 패턴을 갖고 있다.
헤드 스택 어셈블리(123)는 자기 디스크(121)의 표면에 따라서 요동 가능하게 프레임내에 부착되어 있고, 보이스 코일 모터(VCM)(126)에 의해서 구동된다. 헤드 스택 어셈블리(123)의 선단부에는 슬라이더가 고정되고, 슬라이더 표면에 자기 헤드(122)가 고정되어 있다. 자기 헤드(122)는 전형적으로는 재생 헤드와 기록 헤드를 일체적으로 형성한 박막 소자이다. 헤드 스택 어셈블리(123)가 요동함으로써 자기 헤드(122)가 자기 디스크(121)의 표면의 반경 방향에 따라서 이동한다. 이것에 의해서, 자기 헤드(122)를 원하는 영역에 액세스할 수 있다.
도 1의 예에 있어서는 헤드 스택 어셈블리(123)는 하나의 자기 디스크(121)에 대하여 2개의 자기 헤드(122)를 갖고 있고, 자기 헤드 각각이 자기 디스크(121)의 각 표리면에 대응한다. 또한, HDD(120)는 자기 디스크(121)를 1장만 갖는 것, 혹은, 자기 디스크의 한 면에만 대응하는 자기 헤드(122)를 갖는 것도 가능하다.
도 1에 도시한 바와 같이, 컨트롤러(124)는 리드/라이트 채널(R/W 채널)(127), 하드디스크 컨트롤러(HDC)(128), 마이크로 프로세서 유닛(MPU)(129), 메모리(130), 모터 드라이버 유닛(131)을 갖고 있다. 모터 드라이버 유닛(131)은 보이스 코일 모터 드라이버(VCM 드라이버)(132) 및 스핀들 모터 드라이버(SPM 드라이버)(133)를 갖고 있다.
R/W 채널(127)은 호스트(110)로부터 취득한 데이터에 관해서 라이트 처리 및 리드 처리를 실행한다. 라이트 처리에 있어서, R/W 채널(127)은 HDC(128)로부터 공급된 기록 데이터를 코드 변조하고, 또한 코드 변조된 기록 데이터를 라이트 신호(전류)로 변환하여 자기 헤드(122)에 공급한다. 자기 헤드(122)는 취득한 신호에 따 라서 코일에 전류를 흘리는 것에 의해 자기 디스크(121)에 데이터를 기록한다. 또한, 호스트(110)에 데이터를 공급할 때는 리드 처리를 한다. 리드 처리에 있어서, R/W 채널(127)은 자기 헤드(122)로부터 공급된 리드 신호로부터 데이터를 추출하여, 디코드 처리를 한다. 디코드 처리된 독출 데이터는 HDC(128)에 공급된다.
MPU(129)는 메모리(130)에 로드된 마이크로 코드에 따라서 동작하여, 자기 헤드(122)의 포지셔닝 제어, 인터페이스 제어, 디펙트 관리 등의 HDD(120)의 전체의 제어 외에, 데이터 처리에 관한 필요한 처리를 실행한다. 특히, 본 형태에 있어서, MPU(129)는 호스트(110)와의 사이의 데이터 통신에 있어서의 섹터 버퍼의 핸들링(캐쉬 처리)에 있어서 특징적인 처리를 실행한다. 본 형태의 버퍼 핸들링에 관해서는 나중에 상술된다. HDD(120)의 기동에 따라 메모리(130)에는 MPU(129)상에서 동작하는 마이크로 코드 외, 제어 및 데이터 처리에 필요한 데이터가 자기 디스크(121) 혹은 ROM(도시되지 않음)으로부터 로드된다.
R/W 채널(127)에 의해서 판독되는 디지털 데이터는 호스트(110)로부터의 사용자 데이터 외에, 서보 데이터를 포함하고 있다. R/W 채널(127)은 독출 데이터로부터 서보 데이터를 추출한다. MPU(129)는 마이크로 코드에 따라서 서보 데이터를 사용한 자기 헤드(122)의 위치 결정 제어 처리를 한다. MPU(129)로부터의 제어 데이터는 VCM 드라이버(132)에 출력된다. VCM 드라이버(132)는 제어 신호에 따라서 구동 전류를 VCM(126)에 공급한다. 또한, MPU(129)는 마이크로 코드에 따라서 스핀들 모터(125)의 회전 제어를 위해 모터 드라이버 유닛(131)의 레지스터에 SPM 제어 데이터를 셋트한다. SPM 드라이버(133)는 셋트된 SPM 제어 데이터에 따라서 스핀들 모터(125)의 회전 제어를 실행한다. 또한, 예컨대, 서보 제어는 HDC(128)이 실행하도록 HDD(120)를 구성하는 것도 가능하다.
HDC(128)는 호스트(110)와의 사이의 인터페이스 기능을 구비하고 있고, 호스트(110)로부터 전송되는 사용자 데이터 및, 리드 커맨드나 라이트 커맨드를 포함하는 제어 데이터 등을 수신한다. 수신한 사용자 데이터는 R/W 채널(127)에 전송된다. 또한, R/W 채널(127)로부터 취득한 자기 디스크(121)로부터의 독출 데이터, 혹은, 데이터 전송을 위한 제어 데이터를 호스트(110)에 송신한다. HDC(128)는 이 외에 사용자 데이터에 관한 오류 정정 처리 등을 실행한다.
HDC(128)와 호스트(110)와의 사이에 있어서의 제어 데이터 및 사용자 데이터 전송, 혹은, HDC(128)과 자기 디스크(121)(R/W 채널)와의 사이의 사용자 데이터 전송은 HDC(128) 및 MPU(129)상에서 동작하는 마이크로 코드에 의해서 제어된다. 본 형태의 HDD(120)는 호스트(110)로부터 전송된 라이트 데이터, 혹은, 호스트(110)에 전송하는 리드 데이터를 일시적으로 기억하는 섹터 버퍼를 갖고 있다. 섹터 버퍼를 통해 호스트(110)와의 사이의 데이터 통신을 행하는 것에 의해 자기 디스크(121)에의 액세스 타임을 단축, 생략하여, 퍼포먼스를 향상시킬 수 있다. 이하, 본 형태의 버퍼 핸들링(캐쉬 처리)에 관해서 설명한다.
버퍼 핸들링에 관해서 몇 개의 방법(캐쉬 피처)이 알려져 있다. 하나, 혹은, 복수의 캐쉬 피처를 선택적으로 사용함으로써 복수의 버퍼 핸들링 모드(이하, 캐쉬 모드라고 부른다)를 구성할 수 있다. 본 형태의 HDD(120)는 복수의 캐쉬 모드를 구비하여, 사용하는 캐쉬 모드를 변경할 수 있다. HDD(120)는 호스트(110)의 OS(Operating System), 특히, OS의 파일 시스템에 따라서 캐쉬 모드를 변경, 선택하여, 적합한 캐쉬 모드를 선택하는 것으로 퍼포먼스를 향상시킬 수 있다. 여기서, 파일 시스템은 OS(호스트)에 의한 파일의 관리 방식이며, 파일 시스템에 의해서 HDD(120)내에서 파일의 관리 방법이 결정된다.
HDD(120)는 호스트가 기동시에 시스템을 판별하기 위해서 사용하는 MBR(Master Boot Record)를 참조함으로써 사용되는 파일 시스템을 특정하여, 적절한 캐쉬 모드를 결정한다. 자기 디스크(121)에는 MBR가 미리 기억되어 있고, 호스트는 HDD(120)에 액세스하기 위해서 이 정보를 필요로 한다. MBR는 OS의 기동 프로그램 외, 파티션에 관한 정보를 기억하는 파티션 테이블을 구비하고 있다. 파티션 테이블에는 파일 시스템의 종류를 나타내는 파티션 타입이라는 필드가 포함되어 있다. 자기 디스크(121)에 기억되어 있는 MBR에 의해 캐쉬 모드를 결정함으로써 호스트로부터의 정보를 필요로 하는 일없이, HDD(120)내부에 있어 적절한 캐쉬 모드를 결정할 수 있다. 또한, HDD(120)는 자기 디스크(121)와는 별도로 불휘발성 메모리를 구비하고, 거기에 MBR를 기억하는 것도 가능하다.
전형적으로는 HDD(120)는 복수의 파티션으로 나누어 사용되고, 각 파티션은 논리적으로 별도의 드라이브로서 호스트(110)에 사용된다. 파티션의 구분 방법은 파티션 테이블에 의해서 나타낸다. 도 2a는 MBR의 데이터 구조의 개략을 도시하고 있다. MBR은 부트 코드 및 파티션 테이블을 구비하고 있다. 부트 코드는 액티브 파티션으로부터 기동용의 프로그램을 독출하는 프로그램이다. 파티션 테이블에는 자기 디스크(121)에 있어서의 파티션의 위치 및 사이즈, OS를 특정하는 ID 등이 기억 되어 있다.
파티션 테이블은 전형적으로는 16바이트의 4개의 엔트리로 이루어져, HDD를 4개의 파티션으로 분할할 수 있다. 각 엔트리는 도 2b에 도시한 바와 같이 액티브 플래그, CHS(Cylinder Head Sector) 개시 섹터, 파티션 타입, CHS 종료 섹터, LBA(Logical Block Address) 개시 섹터, 파티션 사이즈의 각 필드를 구비하고 있다. 액티브 플래그는 전형적으로는 기동 파티션을 식별하기 위해서 사용된다. CHS 개시 섹터, CHS 종료 섹터는 각각 CHS에 의해서 개시 섹터, 종료 섹터를 특정한다. LBA 개시 섹터는 LBA에 의해서 개시 섹터를 특정한다.
파티션 타입은 그 파티션에 있어서 사용되는 파일 시스템의 종류를 특정한다. 파일 시스템(파티션 타입)으로서는 몇 개의 것이 알려져 있고, 예시하면, FAT16(File All ocation Table 16)(CHS), FAT16(LBA), FAT32(LBA), FreeBSD, NTFS(New Technology File System), OS/2 Boot Manager hidden FAT16, Linux Swap 등이 존재한다. 이들의 각 파일 시스템은 주지의 기술이며, 설명은 생략한다.
효율적인 캐쉬 모드는 파일 시스템에 따라서 변화된다. 따라서, 파일 시스템에 따라서 최적의 캐쉬 모드를 결정함으로써 퍼포먼스를 향상시킬 수 있다. HDD(120)는 기동시에 MBR가 판독되는 타이밍에 파티션 테이블의 파티션 타입 필드를 참조함으로써 호스트의 파일 시스템을 특정하고, 그것에 따른 캐쉬 모드의 선택을 한다. 기동후는 선택된 캐쉬 모드에 의해서 섹터 버퍼가 제어된다.
여기서, 캐쉬 피처 및 캐쉬 모드의 구체예에 관해서 설명한다. 본 형태에 있어서, 캐쉬 피처로서, (1) Write Back Read Cache, (2) Inhibit Read Abort Operation, (3) Read Before Pending Write가 설명된다. (1) Write Back Read Cache가 인에이블인 경우, 섹터 버퍼에 기억되어 있는 라이트 데이터에 관해서 리드 커맨드를 받으면, 그 라이트 데이터의 자기 디스크(121)에의 쓰기가 완료하지 않은 경우를 포함하여 섹터 버퍼에 기억되어 있는 데이터가 호스트(110)에 되돌려진다.
(2) Inhibit Read Abort Operation이 인에이블인 경우, Read Abort Operation이 금지된다. Read Abort Operation은 리드 처리에 있어서 Look ahead에 의해 앞의 데이터를 독출하고 있는 동안에 라이트 커맨드가 수령된 경우에, 리드를 중지하여, 라이트 커맨드에 대한 처리를 시작한다. Inhibit Read Abort Operation은 이 처리를 금지한다. (3) Read Before Pending Write가 인에이블인 경우, HDD(120)는 앞의 라이트 커맨드에 대한 처리를 하기 전에, 후의 리드 커맨드의 처리를 실행한다. 구체적으로는, HDD(120)는 라이트 커맨드 및 라이트 데이터를 호스트(110)로부터 수취하면, 섹터 버퍼에 라이트 데이터를 기억하여, 커맨드 컴플리트를 호스트(110)에 돌려준다. 그 후에 리드 커맨드를 호스트(110)로부터 수취하면, 라이트 처리의 전에 리드 처리를 실행한다.
상기한 각 캐쉬 피처, 혹은, 각 캐쉬 피처의 조합에 의해서 복수의 캐쉬 모드를 구성할 수 있다. 예컨대, 이하의 캐쉬 모드를 준비할 수 있다.
(a) 특별 Feature 없음
(b) Write Back Read Cache
(c) Inhibit Read Abort Operation
(d) Write Back Read Cache and Inhibit Read Abort Operation
(e) Read Before Pending Write and Inhibit Read Abort Operation
(f) Write Back Read Cache and Read Before Pending Write and Inhibit Read Abort Operation
여기서, 「(a) 특별 Feature 없음」은 상기 3가지의 캐쉬 피처 (1), (2), (3)의 어느것도 사용하지 않는 캐쉬 모드이다. 복수의 캐쉬 피처를 포함하는 캐쉬 모드 (d), (e), (f)의 각각은 포함되는 캐쉬 피처를 전부 실행한다. 또한, 상기 캐쉬 모드는 일례로서, 다른 캐쉬 피처, 혹은, 다른 캐쉬 피처의 조합에 의하여 적절한 캐쉬 모드를 설정할 수 있다.
도 3은 상기한 캐쉬 모드와 소정의 파일 시스템의 각 조합에 대한 벤치 마크 테스트의 결과를 나타내는 그래프이다. X축은 캐쉬 모드, Y축은 측정치를 나타내고 있다. 벤치 마크 테스트 프로그램에서는 Business Disk Win Mark99가 사용되었다. 벤치 마크 테스트는 소정 패턴의 데이터 입출력 처리를 반복, 그 스피드를 측정함으로써 HDD의 퍼포먼스를 측정한다. 파일 시스템으로서는 PC의 대표적인 파일 시스템인 FAT32(LBA)와 NTFS가 선택되고 있다. FAT32(LBA)와 NTFS의 각각 관하여 상기 6개의 캐쉬 모드의 벤치 마크 테스트 측정을 했다.
도 3의 그래프는 캐쉬 모드(a)의 스코어를 100%로 하여, 다른 캐쉬 모드의 테스트 결과를 상대치로 나타내고 있다. 스코어가 클수록 퍼포먼스가 우수한 것을 나타내고 있다. 도 3으로부터 이해되는 바와 같이, NTFS에 대해서는 캐쉬 모드 (d) 혹은 (f)가 최적이며, FAT32(LBA)에 대해서는 캐쉬 모드 (a)가 최적이다. 이와 같 이, 파일 시스템에 의해서 퍼포먼스의 관점에서 최적의 캐쉬 모드는 다르다. 본 형태의 HDD(120)는 파일 시스템에 따라서 적절한 캐쉬 모드를 선택하는 것으로 퍼포먼스를 향상시킬 수 있다.
본 형태의 HDD(120)에 있어서의 캐쉬 모드 제어에 관해서 이하에 상술한다. 도 4는 본 형태의 HDD(120)에 있어서의 버퍼 핸들링에 관련되는 논리 구성을 도시하는 블럭도이다. 도 4에 있어서, 301은 HDC(128)을 통해 호스트(110)와의 사이의 인터페이스를 제어하는 인터페이스 핸들러, 302는 버퍼 핸들링 및 커맨드 실행을 제어하는 세그먼트 제어부, 303은 실행 커맨드를 디스패치하는 커맨드 디스패처, 304는 리드/라이트의 커맨드 실행을 제어하는 이벤트 핸들러이다.
MPU(129)상에서 동작하는 마이크로 코드가 각 구성 요소에 대응하는 태스크로서 기능하거나, 혹은, 마이크로 코드에 따라서 동작하는 MPU(129)가 각 구성 요소로서 기능한다. 메모리(130)에는 캐쉬 모드 테이블(305), 커맨드 큐(306), 그리고, 섹터 버퍼(307)가 형성된다. 캐쉬 모드 테이블(305)에는 파일 시스템과 캐쉬 모드가 관련되어 기억되어 있다. 커맨드 큐(306)에는 실행 커맨드가 큐된다. 섹터 버퍼(307)는 리드 데이터 및 라이트 데이터를 기억한다.
또한, 각 구성 요소는 설계에 의해서 하드웨어, 소프트웨어 혹은, 그 조합에 의해서 구성하는 것이 가능하고, 예컨대, HDC(128)가 일부의 기능을 분담할 수 있다. 또한, HDD(120)내에서 각 기능을 실행하는 하드웨어 구성은 설계에 의해 적절하게 변경할 수 있다.
도 4를 참조하여, 인터페이스 핸들러(301)는 호스트(110)와의 사이에 있어서 의 커맨드, 사용자 데이터 및 제어 데이터의 통신 처리 및 그 제어를 실행하여, 호스트(110)와의 사이의 인터페이스로서 기능한다. 세그먼트 제어부(302)는 메모리(130)상의 섹터 버퍼(307)에 존재하는 사용자 데이터의 세그멘트를 관리 제어하는 동시에, 커맨드 큐(306)에 큐되어 있는 커맨드의 재스케쥴링을 실행하여, 퍼포먼스 최적화의 관점에서 적절한 커맨드 실행 순서를 결정한다. 또한, 본 형태에 있어서, 세그먼트 제어부(302)는 파일 시스템에 따른 캐쉬 모드의 결정을 행한다. 세그먼트 제어부(302)는 결정된 캐쉬 모드에 따라서 커맨드 실행을 제어한다.
커맨드 디스패처(303)는 세그먼트 제어부(302)에 의해서 결정된 순서에 따라서 커맨드 큐(306)를 참조하여 커맨드를 디스패치한다. 이벤트 핸들러(304)는 커맨드 디스패처(303)가 디스패치한 커맨드에 따라서 자기 디스크(121)와의 사이에 있어서의 데이터 기록 처리 및 데이터 독출 처리를 제어한다. 라이트 처리에 있어서는 이벤트 핸들러(304)는 섹터 버퍼(307)로부터 독출한 데이터를 라이트 요구와 함께 HDC(128)에 출력하고, 리드 처리에 있어서는 자기 디스크(121)로부터 독출한 데이터를 HDC(128)로부터 취득하여, 섹터 버퍼(307)에 기억한다.
도 5는 캐쉬 모드 테이블(305)의 일구성예를 나타내고 있다. 캐쉬 모드 테이블(305)에는, 예컨대, 상기에 예시된 6개의 캐쉬 모드가 등록된다. 캐쉬 모드 테이블(305)에 있어서, 각 캐쉬 모드와 파일 시스템이 대응하여 기억되어 있고, 파일 시스템에 대하여 캐쉬 모드가 일의(一意)로 결정된다. 다른 파일 시스템에 대하여, 동일 혹은 다른 캐쉬 모드가 등록될 수 있다. 벤치 마크 테스트를 이용한 실측치에 의해서 파일 시스템에 최적의 캐쉬 모드를 결정, 선택하는 것으로 적절한 캐쉬 모 드 테이블(305)을 구성할 수 있다.
도 4에 표시된 논리 구성의 동작에 관해서 설명한다. 우선, 기동 처리에 있어서의 호스트(110)가 사용하는 파일 시스템에 기초한 캐쉬 모드의 결정 처리에 관해서 도 6의 플로우차트를 참조하여 설명한다. 기동 처리에 있어서 캐쉬 모드를 결정함으로써 호스트(110)와의 사이의 사용자 데이터 전송 개시전, 가장 빠른 타이밍에 최적의 캐쉬 모드를 설정할 수 있다. 시스템(100)이 기동되면 호스트(110)로부터 HDD(120)에 관리 정보의 일례인 MBR의 리드 커맨드가 발행된다(S101). 인터페이스 핸들러(301)는 리드 커맨드를 수취한다. 인터페이스 핸들러(301)로부터의 요구에 응답하여 세그먼트 제어부(302)가 동작한다. 세그먼트 제어부(302)는 인터페이스 핸들러(301)로부터 리드 커맨드의 정보를 취득하고, 이 커맨드와 섹터 버퍼(307)내 데이터의 관련을 조사한다.
섹터 버퍼(307)에 데이터는 기억되어 있지 않기 때문에 특별한 처리없이 인터페이스 핸들러(301)는 커맨드 큐(306)에 리드 커맨드의 커맨드 정보를 등록한다. 인터페이스 핸들러(301)로부터의 요구에 응답하여 커맨드 디스패처(303)가 기동된다. 커맨드 디스패처(303)는 커맨드 큐(306)에 큐되어 있는 리드 커맨드에 관해서 이벤트 핸들러(304)에 시크, 혹은, 리드의 지시를 한다. 이벤트 핸들러(304)는 커맨드 디스패처(303)로부터의 지시에 따라서 MBR의 자기 디스크(121)로부터의 독출을 HDC(128)에 요구한다.
자기 디스크(121)로부터 MBR가 독출되어, 독출된 MBR1이벤트 핸들러(304)에 의해서 섹터 버퍼(307)에 기억된다(S102). 세그먼트 제어부(302)는 섹터 버퍼(307) 에 기억되어 있는 MBR를 취득하여, 파티션 타입의 필드를 참조하여 파일 시스템(파티션 타입)을 특정한다(S103). 이와 같이, 세그먼트 제어부(302)는 파일 시스템 특정부로서 기능한다. 세그먼트 제어부(302)는 캐쉬 모드 테이블(305)을 참조하여, MBR에 기억되어 있는 파일 시스템에 대응하는 캐쉬 모드를 결정한다(S104). 세그먼트 제어부(302) 캐쉬 모드 결정부로서 기능한다. 세그먼트 제어부(302)는 이 후의 리드 및 라이트 처리에 있어서 결정된 캐쉬 모드에 따라서 버퍼 핸들링 및 커맨드실행 제어를 한다(S105).
다음에, 캐쉬 모드가 결정된 후의 리드/라이트 처리의 일반적인 순서에 관하여 도 7의 플로우차트를 참조하여 설명한다. 호스트(110)로부터 커맨드가 송신되면, 인터페이스 핸들러(301)가 커맨드를 수취한다(S201). 라이트 커맨드의 경우, 인터페이스 핸들러(301)는 호스트(110)로부터 라이트 데이터를 수취하여, 그 데이터를 섹터 버퍼(307)에 기억한다. 인터페이스 핸들러(301)로부터의 요구에 의해서 세그먼트 제어부(302)가 불려져, 세그먼트 제어부(302)는 인터페이스 핸들러(301)로부터 커맨드 정보를 취득한다.
인터페이스 핸들러(301)는 호스트(110)로부터 취득한 커맨드의 커맨드 정보를 커맨드 큐(306)에 등록한다(S202). 커맨드 정보는, 예컨대, 커맨드 종류, LBA, 데이터 길이, 데이터가 기억되어 있는 섹터 버퍼(307)의 페이지 등을 포함한다. 다음에, 세그먼트 제어부(302)가 섹터 버퍼(307)내의 데이터와 호스트(110)로부터 송신된 커맨드의 관련을 조사하여, 캐쉬 모드에 따라서 커맨드 혹은 섹터 버퍼(307)에 관한 필요한 처리를 실행한다(S203). 예컨대, 리드 커맨드를 호스트(110)로부터 취득하여, 섹터 버퍼(307)에 요구 데이터가 기억되어 있는 경우, 캐쉬 히트로서 섹터 버퍼(307)내의 데이터를 호스트(110)에 돌려줄 수 있다. 혹은, 라이트 커맨드를 수신한 경우, 섹터 버퍼(307)내에 기억되어 있는 동일 어드레스의 데이터를 폐기하는 등의 처리를 실행한다.
계속해서, 인터페이스 핸들러(301)의 요구에 응답하여 커맨드 디스패처(303)가 기동된다. 커맨드 디스패처(303)는 세그먼트 제어부(302)로부터 캐쉬 모드에 따른 자기 디스크(121)에의 리드 혹은 자기 디스크(121)로부터의 라이트 처리의 방법에 관해서 정보를 취득한다.
세그먼트 제어부(302)는 캐쉬 모드에 따라서 리드/라이트 처리 방법의 정보를 건네준다(S204). 커맨드 디스패처(303)는 취득한 정보에 따라서 이벤트 핸들러(304)에 지시를 한다. 시크, 리드, 혹은 라이트 등의 지시를 받은 이벤트 핸들러(304)는 HDC(128)에 대하여 자기 디스크(121)에의 데이터 기록, 혹은, 데이터 독출을 요구한다(S205).
또한, 각 처리와 논리 구성과의 관계는 상기 예에 한정되는 것이 아니다. 설계자는 효율적인 기능 및 회로 구성에 의해서 기억 장치를 설계할 수 있다. 본 실시형태에 있어서, HDD(120)는 데이터의 기록 및 독출 처리를 할 수 있지만, 재생만을 행하는 재생 전용 장치에 본 발명을 적용하는 것도 가능하다. 캐쉬 모드의 결정은 HDD내의 데이터에 의해서 HDD가 내부적으로 결정하는 것이 바람직하지만, 호스트로부터의 정보에 의해 파일 시스템의 특정, 혹은 그것에 따른 캐쉬 모드의 선택을 HDD가 행하는 것도 가능하다. 또한, 본 발명은 자기 디스크 기억 장치에 특히 유용하지만, 광 디스크 기억 장치 등 기억 매체로서의 미디어를 구동하는 다른 형태의 기억 장치에 적용하는 것이 가능하다.
본 발명에 의하면 파일 시스템에 따른 캐쉬 모드를 설정하여, 기억 장치의 퍼포먼스를 향상시킬 수 있다.

Claims (14)

  1. 데이터를 기억하는 미디어와,
    상기 미디어에의 라이트 데이터 및/혹은 상기 미디어로부터의 리드 데이터를 일시적으로 기억하는 섹터 버퍼와,
    상기 미디어에 기억되어 있는 데이터의 파일 시스템을 기초로 하여 캐쉬 모드를 결정하는 캐쉬 모드 결정부와,
    상기 결정된 캐쉬 모드에 따라서 상기 섹터 버퍼를 핸들링하는 제어부
    를 구비하는 데이터 기억 장치.
  2. 제1항에 있어서, 상기 캐쉬 모드 결정부는 미리 등록된 복수의 캐쉬 모드중에서 상기 파일 시스템에 대응하는 캐쉬 모드를 선택하는 것인 데이터 기억 장치.
  3. 제2항에 있어서, 상기 데이터 기억 장치는 복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블을 미리 기억하고,
    상기 캐쉬 모드 결정부는 상기 캐쉬 모드 테이블을 참조하여 상기 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것인 데이터 기억 장치.
  4. 제1항에 있어서, 상기 미디어는 파일 시스템을 특정하는 파일 시스템 특정 데이터를 기억하고,
    상기 데이터 기억 장치는 상기 파일 시스템 특정 데이터를 참조하여 상기 미디어에 기억되어 있는 데이터의 파일 시스템을 특정하는 파일 시스템 특정부를 더 구비하며,
    상기 캐쉬 모드 결정부는 상기 파일 시스템 특정부에 의해 특정된 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것인 데이터 기억 장치.
  5. 제4항에 있어서, 상기 파일 시스템 특정부 및 상기 캐쉬 모드 결정부는 상기 데이터 기억 장치의 기동 처리에 있어서 상기 파일 시스템 및 캐쉬 모드를 결정하는 것인 데이터 기억 장치.
  6. 제4항에 있어서, 상기 파일 시스템 특정 데이터는 상기 미디어에 기억되어 있는 마스터 부트 레코드에 포함되어 있는 것인 데이터 기억 장치.
  7. 제4항에 있어서, 상기 데이터 기억 장치는 복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블을 미리 기억하고,
    상기 캐쉬 모드 결정부는 상기 캐쉬 모드 테이블을 참조하여 상기 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것인 데이터 기억 장치.
  8. 제1항에 있어서, 상기 데이터 기억 장치는 상기 미디어에 기억되어 있는 데이터의 파일 시스템을 특정하는 파일 시스템 특정부를 더 구비하고,
    상기 미디어는 파일 시스템을 특정하는 파일 시스템 특정 데이터를 기억하며,
    상기 파일 시스템 특정부는 데이터 기억 장치의 기동 처리에 있어서 상기 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하고,
    상기 캐쉬 모드 결정부는 상기 파일 시스템 특정부에 의해 특정된 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것인 데이터 기억 장치.
  9. 호스트의 데이터를 기억하는 미디어와, 상기 미디어와 상기 호스트와의 사이의 데이터 전송에 있어서 상기 호스트의 데이터를 일시적으로 기억하는 섹터 버퍼를 갖는 데이터 기억 장치의 제어 방법으로서,
    (a) 상기 호스트가 사용하는 파일 시스템을 특정하는 단계와,
    (b) 상기 특정된 파일 시스템을 기초로 하여 캐쉬 모드를 결정하는 단계와,
    (c) 상기 결정된 캐쉬 모드에 따라서 상기 섹터 버퍼를 핸들링하는 단계
    를 포함하는 데이터 기억 장치의 제어 방법.
  10. 제9항에 있어서, 상기 단계 (b)는 복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블을 참조하여, 상기 파일 시스템에 대응하는 캐쉬 모드를 결정하는 것인 데이터 기억 장치의 제어 방 법.
  11. 제9항에 있어서, 상기 단계 (a)는 상기 호스트의 기동 처리에 있어서, 미리 상기 데이터 기억 장치에 기억되어 있는 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하는 것인 데이터 기억 장치의 제어 방법.
  12. 제9항에 있어서, 상기 단계 (a)는 미리 상기 미디어에 기억되어 있는 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하고,
    상기 단계 (b)는 상기 파일 시스템에 대응하는 캐쉬 모드를 미리 등록되어 있는 복수의 캐쉬 모드로부터 선택하는 것인 데이터 기억 장치의 제어 방법.
  13. 제9항에 있어서, 상기 호스트의 기동에 응답하여 상기 미디어에 기억되어 있는 관리 데이터를 취득하는 단계를 더 구비하고,
    상기 단계 (b)는 상기 관리 데이터에 포함되는 파일 시스템 특정 데이터를 참조하여 파일 시스템을 특정하는 것인 데이터 기억 장치의 제어 방법.
  14. 호스트의 데이터를 기억하는 자기 디스크와,
    상기 자기 디스크와 상기 호스트와의 사이의 데이터 전송에 있어서 상기 호스트의 데이터를 일시적으로 기억하는 섹터 버퍼와,
    상기 자기 디스크에 기억되어 있는 마스터 부트 레코드를 취득하여, 상기 호 스트의 오퍼레이팅 시스템이 사용하는 파일 시스템을 특정하는 파일 시스템 특정부와,
    복수의 파일 시스템과 상기 복수의 파일 시스템의 각각에 대응한 캐쉬 모드를 등록하는 캐쉬 모드 테이블을 기억하는 기억부와,
    상기 캐쉬 모드 테이블을 검색하여, 상기 특정된 파일 시스템에 대응하는 캐쉬 모드를 결정하는 캐쉬 모드 결정부와,
    상기 결정된 캐쉬 모드에 따라서 상기 섹터 버퍼를 핸들링하는 제어부
    를 구비하는 자기 디스크 기억 장치.
KR1020050013934A 2004-03-22 2005-02-21 데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치 KR20060042133A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004082169A JP2005267497A (ja) 2004-03-22 2004-03-22 データ記憶装置、その制御方法及び磁気ディスク記憶装置
JPJP-P-2004-00082169 2004-03-22

Publications (1)

Publication Number Publication Date
KR20060042133A true KR20060042133A (ko) 2006-05-12

Family

ID=34858365

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050013934A KR20060042133A (ko) 2004-03-22 2005-02-21 데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치

Country Status (7)

Country Link
US (1) US7930480B2 (ko)
EP (1) EP1580665A3 (ko)
JP (1) JP2005267497A (ko)
KR (1) KR20060042133A (ko)
CN (1) CN1313933C (ko)
SG (1) SG115780A1 (ko)
TW (1) TW200540806A (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006127401A (ja) * 2004-11-01 2006-05-18 Fujitsu Ltd 媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システム
US20060218361A1 (en) * 2005-03-25 2006-09-28 Matsushita Electrical Industrial Co., Ltd. Electronic storage device with rapid data availability
CN100370440C (zh) * 2005-12-13 2008-02-20 华为技术有限公司 处理器系统及其数据操作方法
JP4653035B2 (ja) * 2006-07-26 2011-03-16 キヤノン株式会社 映像記録装置及びその制御方法、並びにプログラム
US7694125B2 (en) * 2006-12-01 2010-04-06 Dell Products, Lp System and method of booting an operating system in an optimal performance state
US7949834B2 (en) * 2007-01-24 2011-05-24 Qualcomm Incorporated Method and apparatus for setting cache policies in a processor
JP5064821B2 (ja) * 2007-02-01 2012-10-31 マーベル ワールド トレード リミテッド 磁気ディスクコントローラおよび方法
JP4561759B2 (ja) * 2007-02-21 2010-10-13 ソニー株式会社 情報処理装置、情報記録媒体、および情報処理方法、並びにコンピュータ・プログラム
CN101999117B (zh) * 2008-04-11 2013-12-25 Lg电子株式会社 能像光盘驱动器操作的存储器驱动器及用于将存储器驱动器虚拟化为光盘驱动器的方法
US8499120B2 (en) * 2008-10-17 2013-07-30 Seagate Technology Llc User selectable caching management
JP2010128973A (ja) * 2008-11-28 2010-06-10 Toshiba Corp 情報処理装置、及び情報処理方法
JP5025670B2 (ja) * 2009-01-28 2012-09-12 株式会社東芝 情報処理装置およびデータ記憶装置
US20170123721A1 (en) * 2015-10-28 2017-05-04 Sandisk Technologies Inc. System and method for utilization of a data buffer by command completion in parts
US9880783B2 (en) 2015-10-28 2018-01-30 Sandisk Technologies Llc System and method for utilization of a shadow data buffer in a host where the shadow data buffer is controlled by external storage controller
US9996262B1 (en) * 2015-11-09 2018-06-12 Seagate Technology Llc Method and apparatus to abort a command
CN110059024B (zh) * 2019-04-19 2021-09-21 中国科学院微电子研究所 一种内存空间数据缓存方法及装置
US11455225B2 (en) * 2020-08-04 2022-09-27 Western Digital Technologies, Inc. Electronic device having infrared light-emitting diode for data transmission

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3194201B2 (ja) * 1992-02-24 2001-07-30 株式会社日立製作所 キャッシュモード選択方法
US6119151A (en) * 1994-03-07 2000-09-12 International Business Machines Corp. System and method for efficient cache management in a distributed file system
US5649153A (en) * 1995-06-19 1997-07-15 International Business Machines Corporation Aggressive adaption algorithm for selective record caching
US5815648A (en) * 1995-11-14 1998-09-29 Eccs, Inc. Apparatus and method for changing the cache mode dynamically in a storage array system
US5761708A (en) * 1996-05-31 1998-06-02 Sun Microsystems, Inc. Apparatus and method to speculatively initiate primary memory accesses
JP3898782B2 (ja) * 1996-08-23 2007-03-28 オリンパス株式会社 情報記録再生装置
JPH10254778A (ja) 1997-03-14 1998-09-25 Hitachi Ltd 磁気ディスクキャッシュ制御方式
JPH11316709A (ja) * 1998-05-01 1999-11-16 Nec Corp ディスク制御装置及び方法
JP2000227865A (ja) * 1998-12-03 2000-08-15 Olympus Optical Co Ltd セグメントキャッシュ方式の情報記録再生装置及びセグメントキャッシュ方式の情報記録再生方法
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
JP2000347938A (ja) * 1999-06-03 2000-12-15 Nec Corp キャッシュメモリ制御装置およびキャッシュメモリ制御方法
SG90745A1 (en) * 1999-08-27 2002-08-20 Seagate Technology Llc Adaptable cache for disc drive
US6725330B1 (en) * 1999-08-27 2004-04-20 Seagate Technology Llc Adaptable cache for disc drive
JP2001067786A (ja) * 1999-08-30 2001-03-16 Matsushita Electric Ind Co Ltd 記録再生装置
US6629201B2 (en) * 2000-05-15 2003-09-30 Superspeed Software, Inc. System and method for high-speed substitute cache
US6704835B1 (en) * 2000-09-26 2004-03-09 Intel Corporation Posted write-through cache for flash memory
JP2002108704A (ja) * 2000-10-02 2002-04-12 Nec Corp ディスクキャッシュ制御システム
US6883066B2 (en) * 2001-09-14 2005-04-19 Seagate Technology Llc Method and system for cache management algorithm selection
US6922754B2 (en) * 2002-12-09 2005-07-26 Infabric Technologies, Inc. Data-aware data flow manager
JP2006039756A (ja) * 2004-07-23 2006-02-09 Fujitsu Ltd 媒体記憶装置、媒体記憶装置のキャッシュセグメント切り替え方法、及び媒体記憶システム

Also Published As

Publication number Publication date
CN1313933C (zh) 2007-05-02
SG115780A1 (en) 2005-10-28
CN1673976A (zh) 2005-09-28
US7930480B2 (en) 2011-04-19
JP2005267497A (ja) 2005-09-29
US20050210190A1 (en) 2005-09-22
EP1580665A2 (en) 2005-09-28
EP1580665A3 (en) 2007-03-28
TW200540806A (en) 2005-12-16

Similar Documents

Publication Publication Date Title
KR20060042133A (ko) 데이터 기억 장치, 그 제어 방법 및 자기 디스크 기억 장치
US7320050B2 (en) Data transmission control method and storage device
US8607007B2 (en) Selection of data storage medium based on write characteristic
JP5392788B2 (ja) 可変媒体特性を有する記憶媒体付オブジェクトベース記憶装置
US7606970B2 (en) Hybrid disk drive and method of controlling data therein
US8527735B2 (en) Data storage using virtual addressing
CN111696586B (zh) 磁盘装置及其控制方法
US7451261B2 (en) Data storage device and control method with buffer control thereof
US6957311B2 (en) Data storage apparatus, computer apparatus, data processing apparatus, and data processing method
US8014095B2 (en) Mixed format disk drive
US5615368A (en) System having table storing plurality of optimal patrol seek schemes for respective disk drives and executing associated scheme based upon inputted disk device name
JPH1097385A (ja) ディスク記録再生装置及び同装置に適用するインターフェース制御装置
JP2759920B2 (ja) Dasd周辺データ記憶サブシステムの作動方法及び装置
US20060129716A1 (en) Data storage device and buffer control method thereof
US20040003172A1 (en) Fast disc write mechanism in hard disc drives
US20100257311A1 (en) Method relocating code objects and disc drive using same
GB2381937A (en) Write method for a storage system including a dummy write operation
JP2009054209A (ja) 不揮発性半導体メモリ装置を有するディスク・ドライブ装置及びそのディスク・ドライブ装置において不揮発性半導体メモリ装置にデータを格納する方法
KR100189927B1 (ko) 하드 디스크 드라이브 제어장치 및 그 방법
JP2001265534A (ja) アクセス制御方法及びこれを用いたディスク装置
JP2003345526A (ja) 記憶装置
JPH09128291A (ja) キャッシュメモリ管理方法
KR19990080816A (ko) 듀얼 헤드유니트를 가지는 하드 디스크 드라이브의 운용방법
JP2004234762A (ja) ディスク記憶装置及びバッファ制御方法
JPH05274088A (ja) データ記録再生装置のバッファメモリ制御装置

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