KR101347285B1 - 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치 - Google Patents

하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치 Download PDF

Info

Publication number
KR101347285B1
KR101347285B1 KR1020070098360A KR20070098360A KR101347285B1 KR 101347285 B1 KR101347285 B1 KR 101347285B1 KR 1020070098360 A KR1020070098360 A KR 1020070098360A KR 20070098360 A KR20070098360 A KR 20070098360A KR 101347285 B1 KR101347285 B1 KR 101347285B1
Authority
KR
South Korea
Prior art keywords
data
lba
buffer
nonvolatile cache
stored
Prior art date
Application number
KR1020070098360A
Other languages
English (en)
Other versions
KR20090032821A (ko
Inventor
안성준
이형규
김정환
김영봉
김신
서영일
박찬호
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020070098360A priority Critical patent/KR101347285B1/ko
Priority to US12/174,661 priority patent/US7979631B2/en
Publication of KR20090032821A publication Critical patent/KR20090032821A/ko
Application granted granted Critical
Publication of KR101347285B1 publication Critical patent/KR101347285B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • 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/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/765Interface circuits between an apparatus for recording and another apparatus
    • 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
    • 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/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/221Static RAM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

본 발명은 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록 매체 그리고 이에 적합한 장치에 관한 것으로, 본 발명에 따른 하드디스크 드라이브의 선반입 방법에 있어서, 외부장치로부터 요청받은 데이터의 논리적 블록 주소가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하는 단계; 및 요청된 데이터의 LBA가 히스토리에 저장되어 있는 경우, 히스토리에 저장되어 있는 LBA들 중에서, 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하는 단계를 포함한다.

Description

하드디스크 드라이브의 선반입 방법, 이에 적합한 기록 매체 그리고 이에 적합한 장치{Method for prefetching of hard disk drive, recording medium and apparatus therefor}
본 발명은 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록 매체 그리고 이에 적합한 장치에 관한 것으로, 더욱 상세하게는 외부장치의 비휘발성 캐쉬에 대한 ATA 명령을 이용한 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록 매체 그리고 이에 적합한 장치에 관한 것이다.
플래시 메모리는 물리적으로 움직이는 부분이 없기 때문에 임의적인 유형의 읽기(random read)가 빠르며 전력 소모가 작다는 장점을 가진다. 최근 이러한 플래시 메모리의 장점을 이용하여 통상의 하드디스크 드라이브에 플래시 메모리로 구성된 비휘발성 캐쉬(Non-volatile Cache)를 추가적으로 구비시킨 하이브리드 하드디스크 드라이브가 있다. 비휘발성 캐쉬는 하드디스크의 플래터(platter)에 저장될 논리적 블록 주소(Logic Block Address; LBA)의 내용을 임시로 저장하는 역할을 수행한다.
이러한 하이브리드 하드디스크 드라이브는 통상의 하드디스크 드라이브에 비 해 다음과 같은 점에서 이점을 가진다.
첫 째, 운영체제의 부팅 시간을 단축시킬 수 있다. 즉, 운영체제가 부팅하기 위해 필요한 파일들을 비휘발성 캐시에 복사시켜 두었다가 부팅시 이를 사용함으로써 부팅 시간을 단축시킬 수 있다. 통상의 하드디스크 드라이브는 파워 리셋시 스핀들 모터를 규정된 속도까지 회전시키기 위한 시간이 필요하다. 그렇지만, 하이브리드 하드디스크를 사용하는 호스트는 운영체제가 부팅하기 위해 필요한 파일들을 하드디스크가 아니라 비휘발성 캐시로부터 읽어들일 수 있기 때문에 그만큼 부팅 시간을 단축시킬 수 있다.
둘째, 데이터 액세스 시간을 단축시킬 수 있다. 즉, 하이브리드 하드디스크 드라이브를 사용하는 호스트에서 기록할 데이터를 비휘발성 캐시와 하드디스크에 동시에 기록시켜둔다. 데이터를 읽어낼 때 비휘발성 캐시를 먼저 탐색하여 해당하는 데이터가 기록되어 있으면 비휘발성 캐시로부터 데이터를 읽어낸다. 최근에 기록된 데이터일수록 액세스 확률이 높은 것을 감안하면 비휘발성 캐시를 이용하여 데이터 액세스 시간을 단축시킬 수 있다.
하드디스크 드라이브에서 선반입이란 가까운 미래에 접근될 것이라고 예상되는 데이터를 미리 버퍼에 저장함으로써 추후 데이터 접근 요청을 빠르게 처리하는 기법이다. 기존의 일반 하드디스크 드라이브에서는 공간적 지역성(spatial localty)만을 활용하여 선반입을 수행하였다. 하드디스크 드라이브는 호스트의 요청이 공간적 지역성을 가진다고 판단될 때 선반입을 수행한다. 즉, 호스트에 의해 읽기가 요청된 데이터, 즉 섹터들이 연속된 LBA를 가지고 있어야 하며, 이러한 섹 터들의 개수가 일정 이상 되어야 선반입을 수행한다. 선반입할 데이터 역시 공간적 지역성에 근거하여 결정된다. 즉, 호스트가 읽기를 요청한 마지막 LBA에 연속적인 데이터들을 읽어서 버퍼에 저장하게 된다. 호스트가 많은 양의 데이터를 순차적으로 읽을 때에만 선반입의 효과를 발휘하며, 호스트가 임의의 유형으로 디스크에 접근할 때에는 선반입을 수행할 수가 없다.
상기와 같은 문제점을 해결하기 위하여, 본 발명은 외부장치의 비휘발성 캐쉬 관리 명령을 이용하여 외부장치의 요청이 임의의 유형인 경우에도 선반입이 효과적으로 수행될 수 있는 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록 매체 그리고 이에 적합한 장치를 제공하는데 있다.
상기 본 발명의 목적을 달성하기 위한 본 발명의 하나의 특징은, 하드디스크 드라이브의 선반입 방법에 있어서, 외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하는 단계; 및 상기 요청된 데이터의 LBA가 상기 히스토리에 저장되어 있는 경우, 상기 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하는 단계를 포함하는 것이다.
상기 외부장치로부터 소정의 LBA 저장 명령을 수신한 경우, 상기 LBA를 상기 비휘발성 캐쉬에 저장하는 단계; 및 상기 LBA를 상기 비휘발성 캐쉬의 상기 히스토리에 저장하는 단계를 더 포함하는 것이 바람직하다.
상기 외부장치로부터 데이터를 요청받는 경우 상기 데이터가 버퍼에 존재하는지 탐색하는 단계; 상기 데이터가 상기 버퍼에 존재하는 경우, 상기 버퍼에 존재하는 상기 데이터를 상기 외부장치로 전송하는 단계; 상기 데이터가 버퍼에 존재하지 않는 경우, 비휘발성 캐쉬에 존재하는지 탐색하는 단계; 상기 데이터가 상기 비 휘발성 캐쉬에 존재하는 경우, 상기 데이터를 상기 버퍼로 전송하는 단계; 및 상기 데이터가 상기 비휘발성 캐쉬에 존재하지 않는 경우, 하드디스크에서 상기 데이터를 상기 버퍼로 전송하는 단계를 더 포함하는 것이 바람직하다.
상기 외부장치와 상기 하드디스크 드라이브는 ATA(Advanced Technology Attachment) 인터페이스를 통해 통신하는 것이 바람직하다.
상기 비휘발성 캐쉬는 플래시 메모리인 것이 바람직하다.
상기 본 발명의 목적을 달성하기 위한 본 발명의 다른 특징은, 하드디스크 드라이브의 선반입 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽어들일 수 있는 기록 매체에 있어서, 상기 선반입 방법은 외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하는 단계; 및 상기 요청된 데이터의 LBA가 상기 히스토리에 저장되어 있는 경우, 상기 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하는 단계를 포함하는 것이다.
상기 본 발명의 목적을 달성하기 위한 본 발명의 또 다른 특징은, 하드디스크 드라이브에 있어서, 버퍼, 비휘발성 캐쉬 및 하드디스크 중 어느 하나로부터 외부장치가 요청한 데이터를 탐색하여 전송하는 제어부를 포함하며, 상기 제어부는 외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하고, 상기 요청된 데이터의 LBA가 상기 히스토리에 저장되어 있는 경우, 상기 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하는 것 이다.
상술한 바와 같이 본 발명은 순차적이지 않은 데이터에 대해서도 선반입을 수행할 수 있다. 비휘발성 캐쉬는 하드디스크보다는 빠르지만 DRAM 또는 SDRAM으로 구성된 버퍼보다는 느리다. 따라서 본 발명에 따라 비휘발성 캐쉬에 접근하는 시간을 선반입으로 없앨 경우, 외부장치의 읽기(read) 요청의 수행 시간을 획기적으로 단축할 수 있다. 모든 선반입이 적중할 경우에는 가상적으로 하드디스크 드라이브는 DRAM으로 구성된 저장장치와 동일한 속도로 동작할 수 있다.
첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 하드디스크 드라이브의 선반입 방법을 나타내는 흐름도이다.
단계 101에서, 외부장치로부터 데이터를 요청받는 경우 버퍼에 상기 데이터가 존재하는지 탐색한다. 상기 데이터가 버퍼에 존재하는 경우에는 단계 105로 이동하고, 그렇지 않은 경우에는 단계 102로 이동한다.
버퍼는 하드디스크 드라이브에서 메인보드나 CPU에 내장된 것처럼 캐쉬 메모리 역할을 하는 메모리이다. 하드디스크 드라이브 내의 버퍼는 세 가지 용도로 사용될 수 있다. 첫째는 쓰기 버퍼이며, 둘째는 읽기 버퍼, 셋째는 선반입 버퍼이다. 쓰기 버퍼로 사용되는 경우는 외부장치의 쓰기 요청 데이터를 버퍼에만 저장하고 요청을 완료하는 것이다. 읽기 버퍼로 사용되는 경우는 한 번 외부장치로 전송된 데이터를 버퍼에 보관해 놓는 것으로, 나중에 동일한 데이터의 읽기가 요청될 경우 하드디스크가 아니라 버퍼에서 데이터를 읽는 것이 가능하다. 선반입 버퍼로 사용되는 경우는 외부장치가 가까운 미래에 요청할 것이라고 예상되는 데이터를 미리 하드디스크 또는 비휘발성 캐쉬에서 읽어서 버퍼에 저장해 놓는 것이다. 이렇게 저장해 놓은 데이터를 외부장치에서 요청할 경우, 하드디스크보다 빠른 버퍼에서 읽기가 가능하므로 빠르게 처리된다. 대부분의 구현에서는 세 가지 용도가 복합적으로 사용된다. 탐색이란 어떤 데이터를 읽거나 쓰기 위해서는 우선 그 데이터가 있는 위치를 찾는 것을 말한다.
단계 102에서, 상기 요청된 데이터가 버퍼에 존재하지 않는 경우에는 비휘발성 캐쉬에 상기 데이터가 존재하는지 탐색한다. 상기 데이터가 비휘발성 캐쉬에 존재하는 경우에는 단계 103으로 이동하고, 그렇지 않은 경우에는 단계 104로 이동한다. 비휘발성 캐쉬로는 플래시 메모리가 바람직하다.
단계 103에서, 상기 요청된 데이터가 비휘발성 캐쉬에 존재한다면, 상기 데이터를 버퍼로 전송한다.
단계 104에서, 상기 요청된 데이터가 비휘발성 캐쉬에 존재하지 않는다면, 하드디스크에서 상기 데이터를 버퍼로 전송한다.
단계 105에서, 버퍼는 데이터를 외부장치로 전송한다.
단계 106에서, 외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색한다.
히스토리는 데이터베이스 또는 파일 시스템에서 데이터나 파일의 변화 과정을 기록해 둔 자료를 말한다. 본 발명의 일 실시예에서는 외부장치가 비휘발성 캐쉬에 저장하도록 요청한 데이터의 LBA를 요청된 순서대로 저장해 둔 것을 말한다. LBA가 히스토리에 저장되는 과정은 도 2를 참조하여 설명한다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 캐쉬의 히스토리에 LBA를 저장하는 방법을 나타내는 흐름도이다. 도 2의 단계들은 도 1에 나타낸 단계들보다 미리, 동시에 또는 나중에 수행될 수 있다.
도 2를 참조하면, 단계 201에서 외부장치로부터 소정의 LBA 저장 명령을 수신한 경우에는 상기 소정의 LBA를 비휘발성 캐쉬에 저장한다. 외부장치는 확장된 ATA(Advanced Technology Attachment) 명령어를 사용하여 비휘발성 캐쉬에 저장할 데이터의 LBA를 하드디스크 드라이브에게 지정한다. ATA는 하드디스크 드라이브 인터페이스의 한 종류이다. 외부장치가 하드디스크 드라이브의 비휘발성 캐쉬를 관리하기 위해 필요한 확장 ATA 명령들은 AT Attachment 8 - ATA/ATAPI Command Set 명세에 정의되어 있다. 외부장치는 이 명세에 포함된 명령들을 사용하여 LBA를 비휘발성 캐쉬에 저장하거나, 저장된 LBA를 제거할 수 있으며, 현재 비휘발성 캐쉬에 저장된 LBA의 목록을 검사할 수 있다. 이 중 LBA를 비휘발성 캐쉬에 저장할 때 사용되는 명령은 "ADD LBA(S) TO NV CACHE PINNED SET DMA EXT"이다(이하, 'ADD LBA 명령'이라고 칭함). 외부장치가 하드디스크 드라이브에게 전달하는 ADD LBA 명령은 LBA들의 상호연관성에 대한 정보를 내포하고 있다. 즉, 외부장치는 유사한 용도를 가지는 LBA들을 하나 이상의 연속된 ADD LBA 명령을 통해 비휘발성 캐쉬에 저장하 게 된다. 이렇게 비휘발성 캐쉬에 저장된 LBA들은 동일한 시점에 접근될 확률이 높다. 예를 들어, 부팅을 빠르게 하기 위해 부팅 시 접근되는 LBA들을 비휘발성 캐쉬에 저장한다고 하면, 외부장치는 부팅 시에 접근되는 Master Boot Record(MBR), 부트 섹터(boot sector), 커널 이미지, 장치관리자 등의 LBA를 연속된 복수의 ADD LBA 명령을 통해 비휘발성 캐쉬에 저장한다. 이 LBA들은 부팅 시에 일괄적으로 접근된다.
단계 202에서, LBA를 비휘발성 캐쉬의 히스토리에 저장한다. 단계 202는 단계 201보다 후에 수행될 수도 있고, 동시에 수행될 수도 있다.
표 1은 외부장치의 ADD LBA 명령의 예를 나타낸다.
외부장치 요청 비휘발성 캐쉬의 동작
ADD LBA [100,10] Cache [100,10] in Non-volatile Cache,
Save history [100,10]
ADD LBA [200,5] Cache [200,5] in Non-volatile Cache,
Save history [200,5]
표 1을 참조하면, 외부장치 요청으로 표시된 열의 'ADD LBA [100,10]'은 LBA 100부터 10개의 섹터를 저장하라는 명령을 나타낸다. 비휘발성 캐쉬의 동작으로 표시된 열의 'Cache [100,10] in Non-volatile Cache, Save history [100, 10]'는 비휘발성 캐쉬에 LBA 100부터 10개의 섹터를 임시 저장했고, 히스토리에 저장했다는 것을 나타낸다.
표 2는 ADD LBA 명령 수행 후 히스토리의 상태를 나타낸다.
Saving history
[100,10]
[200,5]
이와 다르게 히스토리는 트리 형태로도 구성될 수도 있다.
단계 107에서, 요청된 데이터의 LBA가 히스토리에 저장되어 있는 경우에는 히스토리에 저장되어 있는 LBA들 중에서, 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장한다. 본 단계가 선반입이다. 일반적으로 선반입은 외부장치에게 데이터를 전송하는 단계와 병렬적으로 수행될 수 있다. 또한 선반입 시간이 오래 걸리는 경우에는 선반입이 완료되기 전에 이전 요청이 완료될 수 있다. 이러한 경우 선반입 중에 외부장치의 새로운 요청을 받는 것도 가능하다. 필요한 경우 선반입은 수행 도중 중단될 수도 있다.
표 3은 종래의 일반적인 하드디스크 드라이브에서 선반입의 예를 나타낸 것이다.
외부장치 요청 하드디스크 드라이브 동작 전송 데이터
Read [100,2] Read platter [100,2] [100,2]
Read [102,3] Read platter [102,3] [102,3]
Read [105,5] Read platter [105,5] + Read platter [110,20] [105,5]
Read [200,5] Read platter [200,5] [200,5]
일반적인 하드디스크 드라이브에서는 공간적 지역성 때문에 외부장치에 의해 읽기가 요청된 데이터, 즉 섹터들이 연속된 LBA를 가지고 있어야 하며, 이러한 섹터들의 개수가 일정 이상 되어야 선반입을 수행한다. 따라서, 상기 예에서 선반입을 수행할 조건은 연속된 LBA가 10개 이상, 선반입할 데이터의 양은 20개로 가정하였다. 또한 요청과 요청 사이에는 적어도 10개 이상의 섹터를 선반입하는 것이 가능한 시간이 주어진다고 가정하였다.
표 3을 참조하면, 외부장치 요청으로 표시된 열의 'Read [100,2]'는 LBA 100부터 2개의 섹터를 읽기 명령을 했음을 나타낸다. 하드디스크 드라이브의 동작으로 표시된 열에서 'Read platter [100,2]'는 플래터에서 LBA 100에 해당되는 섹터로부터 2개의 섹터를 읽었음을 나타낸다. 상기 표 3에서는 네 번의 읽기를 요청하였다. 처음 두 번의 읽기 요청에 대해서는 요청된 만큼의 섹터만 읽어서 외부장치에게 전송한다. 그러나 세 번째 읽기 요청을 받으면 연속으로 읽는 섹터의 개수가 총 10개가 된다. 이 경우 선반입이 동작하여 외부장치가 요청한 것보다 20개의 섹터를 더 읽게 된다. 세 번째 하드디스크 드라이브 동작에서 'Read platter [110,20]'이 선반입을 나타낸다. 만약, 외부장치의 네 번째 요청이 LBA 110부터 시작한다면 선반입이 적중하여 디스크에 접근하지 않고 선반입 버퍼에서 빠르게 처리될 수 있지만, 표 3에서와 같이 LBA 200부터 시작한다면, 즉 외부장치가 임의의 유형으로 디스크에 접근할 때에는 선반입이 수행될 수 없다. 이 경우 선반입 버퍼에 저장된 데이터는 버려지게 되어 선반입의 효과를 볼 수 없다.
표 4는 본 발명의 일 실시예에 따른 비휘발성 캐쉬에서 선반입의 예를 나타낸다.
외부장치 요청 비휘발성 캐쉬 동작 전송 데이터
Read [100,2] Read Non-volatile Cache [100,2]
+ Read Non-volatile Cache [102,8]
[100,2]
Read [102,3] Service from buffer
+ Read Non-volatile Cache [200,5]
[102,3]
Read [105,5] Service from buffer [105,5]
Read [200,5] Service from buffer [200,5]
표 4를 참조하면, 외부장치 요청으로 표시된 열의 'Read [100,2]'는 LBA 100부터 2개의 섹터를 읽기 명령을 했음을 나타낸다. 비휘발성 캐쉬의 동작으로 표시된 열에서 'Read Non-volatile Cache [100,2]'는 비휘발성 캐쉬에서 LBA 100에 해당되는 섹터로부터 2개의 섹터를 읽었음을 나타낸다. 외부장치 요청 시 외부장치로부터 요청받은 데이터의 LBA가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색한다. 표 4에서 나타낸 바와 같이 LBA 100과 LBA 101은 저장되어 있어, 선반입이 동작한다. 상기 요청된 데이터의 LBA의 다음 순서의 LBA인 LBA 102부터 LBA 109까지 더 읽어서 상기 LBA들의 데이터를 버퍼에 저장한다. 그 후, 외부장치의 다음 요청이 'Read [102,3]'와 같이 LBA 102부터 시작하므로 선반입이 적중되어 요청이 빠르게 처리될 수 있다. 또한 상기 요청된 데이터의 LBA의 다음 순서의 LBA인 LBA 200부터 LBA 204까지 더 읽어서 상기 LBA들의 데이터를 버퍼에 저장한다. 외부장치의 세 번째 및 네 번째 요청 또한 선반입이 적중되어 요청이 빠르게 처리된다.
도 3은 본 발명의 다른 실시예에 따른 하드디스크 드라이브의 블록 다이어그램이다.
도 3을 참조하면, 하드디스크 드라이브(320)는 버퍼(321), 비휘발성 캐쉬(322), 하드디스크(323) 및 제어부(324)를 포함한다.
버퍼(321)는 하드디스크에도 메인보드나 CPU에 내장된 것처럼 Cache 메모리 역할을 하는 메모리이다. 일반적으로, 하드디스크 드라이브는 하드디스크(323)의 회전 속도와 외부장치(100)와의 데이터 인터페이스 간의 속도 차이를 줄이기 위하여 버퍼를 사용된다. 버퍼는 고속의 데이터 입출력이 가능하도록 SDRAM(Synchronous Danamic Random Acess Memory) 등으로 구성된다. 물론 용량은 클수록 좋다.
비휘발성 캐쉬(322)는 외부장치(310)의 요청에 의해 하드디스크(323)에 저장될 데이터를 임시 저장하는 역할과 LBA에 대한 히스토리를 기록하는 역할을 한다. 비휘발성 캐쉬로는 플래시 메모리가 바람직하다.
제어부(324)는 외부장치(310)의 읽기 요청이 버퍼(321)에서 처리될 수 있는지 검사하여, 가능한 경우라면 버퍼(321)만을 접근하여 요청을 완료한다. 불가능한 경우라면 하드디스크(323)에 저장된 데이터에 접근하여 외부장치(310)의 요청을 처리한다. 더욱 상세하게는, 상기 외부장치(310)로부터 데이터를 요청받는 경우 버퍼(321)에 존재하는지 탐색하여 상기 데이터가 상기 버퍼(321)에 존재하는 경우에는 상기 버퍼(321)에 존재하는 상기 데이터를 상기 외부장치(310)로 전송하고, 상기 데이터가 버퍼(321)에 존재하지 않는 경우에는 비휘발성 캐쉬(322)에 존재하는지 탐색하여 상기 데이터가 상기 비휘발성 캐쉬(322)에 존재하는 경우에는 상기 데이터를 상기 버퍼(321)로 전송하고, 상기 데이터가 상기 비휘발성 캐쉬(322)에 존재하지 않는 경우에는 하드디스크(323)에서 상기 데이터를 상기 버퍼로 전송한다.
또한, 제어부(324)는 외부장치(310)로부터 요청받은 데이터의 LBA가 상기 비휘발성 캐쉬(322)의 히스토리에 저장되어 있는지 탐색하고, 상기 요청된 데이터의 LBA가 상기 히스토리에 저장되어 있는 경우, 상기 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼(321)에 저장한다.
또한, 제어부(324)는 상기 외부장치(310)로부터 소정의 LBA 저장 명령을 수신한 경우, 상기 LBA를 상기 비휘발성 캐쉬(322)에 저장하고, 상기 LBA를 상기 비휘발성 캐쉬(322)의 상기 히스토리에 저장한다.
인터페이스는 외부장치(310)의 요청을 받아 제어부(324)에게 전달하며, 외부장치(310)와 하드디스크 드라이브(320) 간 데이터 전송을 제어하며, 명령 처리 결과를 외부장치(310)에 전달하는 역할을 수행한다. 본 발명의 일 실시예에서는 ATA 인터페이스를 이용한다.
본 명세서에서 바람직하게는 하드디스크 드라이브는 하이브리드 하드디스크 드라이브로 구현될 수 있다. 또한 바람직하게는 외부장치는 호스트이다.
이상 설명한 바와 같은 디스크 관리 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 매체를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고, 상기 디스크 관리 방법을 구현하기 위한 기능적인(function) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 하드디스크 드라이브의 선반입 방법을 나타내는 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 비휘발성 캐쉬의 히스토리에 LBA를 저장하는 방법을 나타내는 흐름도이다.
도 3은 본 발명의 다른 실시예에 따른 하드디스크 드라이브의 블록 다이어그램이다.

Claims (13)

  1. 하드디스크 드라이브의 선반입 방법에 있어서,
    외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하는 단계; 및
    상기 요청된 데이터의 LBA가 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는 경우, 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하는 단계를 포함하고,
    상기 비휘발성 캐쉬의 히스토리는 상기 외부장치로부터 상기 비휘발성 캐쉬에 저장을 요청받은 데이터의 LBA들을 상기 저장이 요청된 순서대로 저장하고 있는 것을 특징으로 하는 하드디스크 드라이브의 선반입 방법.
  2. 제 1 항에 있어서,
    상기 외부장치로부터 소정의 LBA 저장 명령을 수신한 경우, 상기 LBA를 상기 비휘발성 캐쉬에 저장하는 단계; 및
    상기 LBA를 상기 비휘발성 캐쉬의 상기 히스토리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 하드디스크 드라이브의 선반입 방법.
  3. 제 1 항에 있어서,
    상기 외부장치로부터 데이터를 요청받는 경우 상기 데이터가 버퍼에 존재하는지 탐색하는 단계;
    상기 데이터가 상기 버퍼에 존재하는 경우, 상기 버퍼에 존재하는 상기 데이 터를 상기 외부장치로 전송하는 단계;
    상기 데이터가 버퍼에 존재하지 않는 경우, 비휘발성 캐쉬에 존재하는지 탐색하는 단계;
    상기 데이터가 상기 비휘발성 캐쉬에 존재하는 경우, 상기 데이터를 상기 버퍼로 전송하는 단계; 및
    상기 데이터가 상기 비휘발성 캐쉬에 존재하지 않는 경우, 하드디스크에서 상기 데이터를 상기 버퍼로 전송하는 단계를 더 포함하는 것을 특징으로 하는 하드디스크 드라이브의 선반입 방법.
  4. 하드디스크 드라이브의 선반입 방법을 수행하는 프로그램이 기록된 컴퓨터로 읽어들일 수 있는 기록 매체에 있어서,
    상기 선반입 방법은,
    외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하는 단계; 및
    상기 요청된 데이터의 LBA가 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는 경우, 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하는 단계를 포함하고,
    상기 비휘발성 캐쉬의 히스토리는 상기 외부장치로부터 상기 비휘발성 캐쉬에 저장을 요청받은 데이터의 LBA들을 상기 저장이 요청된 순서대로 저장하고 있는 것을 특징으로 하는 기록 매체.
  5. 제 4 항에 있어서,
    상기 선반입 방법은,
    상기 외부장치로부터 소정의 LBA 저장 명령을 수신한 경우, 상기 LBA를 상기 비휘발성 캐쉬에 저장하는 단계; 및
    상기 LBA를 상기 비휘발성 캐쉬의 상기 히스토리에 저장하는 단계를 더 포함하는 것을 특징으로 하는 기록 매체.
  6. 제 4 항에 있어서,
    상기 선반입 방법은,
    상기 외부장치로부터 데이터를 요청받는 경우 상기 데이터가 버퍼에 존재하는지 탐색하는 단계;
    상기 데이터가 상기 버퍼에 존재하는 경우, 상기 버퍼에 존재하는 상기 데이터를 상기 외부장치로 전송하는 단계;
    상기 데이터가 버퍼에 존재하지 않는 경우, 비휘발성 캐쉬에 존재하는지 탐색하는 단계;
    상기 데이터가 상기 비휘발성 캐쉬에 존재하는 경우, 상기 데이터를 상기 버퍼로 전송하는 단계; 및
    상기 데이터가 상기 비휘발성 캐쉬에 존재하지 않는 경우, 하드디스크에서 상기 데이터를 상기 버퍼로 전송하는 단계를 더 포함하는 것을 특징으로 하는 기록 매체.
  7. 하드디스크 드라이브에 있어서,
    버퍼, 비휘발성 캐쉬 및 하드디스크 중 어느 하나로부터 외부장치가 요청한 데이터를 탐색하여 전송하는 제어부를 포함하며,
    상기 제어부는
    외부장치로부터 요청받은 데이터의 논리적 블록 주소(LBA)가 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는지 탐색하고, 상기 요청된 데이터의 LBA가 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는 경우, 상기 비휘발성 캐쉬의 히스토리에 저장되어 있는 LBA들 중에서, 상기 요청된 데이터의 LBA의 다음 순서로 저장된 LBA에 기록된 데이터를 버퍼에 저장하고,
    상기 비휘발성 캐쉬의 히스토리는 상기 외부장치로부터 상기 비휘발성 캐쉬에 저장을 요청받은 데이터의 LBA들을 상기 저장이 요청된 순서대로 저장하고 있는 것을 특징으로 하는 하드디스크 드라이브.
  8. 제 7 항에 있어서,
    상기 제어부는
    상기 외부장치로부터 소정의 LBA 저장 명령을 수신한 경우, 상기 LBA를 상기 비휘발성 캐쉬에 저장하고, 상기 LBA를 상기 비휘발성 캐쉬의 상기 히스토리에 저장하는 것을 특징으로 하는 하드디스크 드라이브.
  9. 제 7 항에 있어서,
    상기 제어부는
    상기 외부장치로부터 데이터를 요청받는 경우 상기 데이터가 버퍼에 존재하는지 탐색하여 상기 데이터가 상기 버퍼에 존재하는 경우에는 상기 버퍼에 존재하는 상기 데이터를 상기 외부장치로 전송하고, 상기 데이터가 버퍼에 존재하지 않는 경우에는 비휘발성 캐쉬에 존재하는지 탐색하여 상기 데이터가 상기 비휘발성 캐쉬에 존재하는 경우에는 상기 데이터를 상기 버퍼로 전송하고, 상기 데이터가 상기 비휘발성 캐쉬에 존재하지 않는 경우에는 하드디스크에서 상기 데이터를 상기 버퍼로 전송하는 것을 특징으로 하는 하드디스크 드라이브.
  10. 제 7 항에 있어서,
    상기 외부장치와 상기 하드디스크 드라이버는 ATA(Advanced Technology Attachment) 인터페이스를 통해 통신하는 것을 특징으로 하는 하드디스크 드라이브.
  11. 삭제
  12. 삭제
  13. 삭제
KR1020070098360A 2007-09-28 2007-09-28 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치 KR101347285B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020070098360A KR101347285B1 (ko) 2007-09-28 2007-09-28 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
US12/174,661 US7979631B2 (en) 2007-09-28 2008-07-17 Method of prefetching data in hard disk drive, recording medium including program to execute the method, and apparatus to perform the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070098360A KR101347285B1 (ko) 2007-09-28 2007-09-28 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치

Publications (2)

Publication Number Publication Date
KR20090032821A KR20090032821A (ko) 2009-04-01
KR101347285B1 true KR101347285B1 (ko) 2014-01-07

Family

ID=40509684

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070098360A KR101347285B1 (ko) 2007-09-28 2007-09-28 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치

Country Status (2)

Country Link
US (1) US7979631B2 (ko)
KR (1) KR101347285B1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8533445B2 (en) * 2009-04-21 2013-09-10 Hewlett-Packard Development Company, L.P. Disabling a feature that prevents access to persistent secondary storage
KR101051504B1 (ko) * 2009-06-16 2011-07-22 인하대학교 산학협력단 저전력과 입출력 성능 향상을 위한 n-블록 선반입 기반의 하이브리드 하드디스크 입출력 시스템
US8719486B2 (en) * 2009-06-24 2014-05-06 Micron Technology, Inc. Pinning content in nonvolatile memory
TWI400707B (zh) * 2009-07-09 2013-07-01 Phison Electronics Corp 快閃記憶體邏輯區塊管理方法及其控制電路與儲存系統
US8959284B1 (en) 2010-06-28 2015-02-17 Western Digital Technologies, Inc. Disk drive steering write data to write cache based on workload
US9268499B1 (en) 2010-08-13 2016-02-23 Western Digital Technologies, Inc. Hybrid drive migrating high workload data from disk to non-volatile semiconductor memory
US9058280B1 (en) 2010-08-13 2015-06-16 Western Digital Technologies, Inc. Hybrid drive migrating data from disk to non-volatile semiconductor memory based on accumulated access time
US8775720B1 (en) 2010-08-31 2014-07-08 Western Digital Technologies, Inc. Hybrid drive balancing execution times for non-volatile semiconductor memory and disk
US8782334B1 (en) * 2010-09-10 2014-07-15 Western Digital Technologies, Inc. Hybrid drive copying disk cache to non-volatile semiconductor memory
US20130219116A1 (en) * 2012-02-16 2013-08-22 Wenguang Wang Data migration for composite non-volatile storage device
US9104578B2 (en) 2012-07-06 2015-08-11 Seagate Technology Llc Defining address ranges used to cache speculative read data
US9390020B2 (en) 2012-07-06 2016-07-12 Seagate Technology Llc Hybrid memory with associative cache
US9529724B2 (en) * 2012-07-06 2016-12-27 Seagate Technology Llc Layered architecture for hybrid controller
US9477591B2 (en) 2012-07-06 2016-10-25 Seagate Technology Llc Memory access requests in hybrid memory system
US9772948B2 (en) * 2012-07-06 2017-09-26 Seagate Technology Llc Determining a criterion for movement of data from a primary cache to a secondary cache
US9594685B2 (en) * 2012-07-06 2017-03-14 Seagate Technology Llc Criteria for selection of data for a secondary cache
US8959281B1 (en) 2012-11-09 2015-02-17 Western Digital Technologies, Inc. Data management for a storage device
KR101431198B1 (ko) * 2013-02-25 2014-08-18 인하대학교 산학협력단 미디어 서버 및 미디어 데이터 선반입 방법
US9141176B1 (en) 2013-07-29 2015-09-22 Western Digital Technologies, Inc. Power management for data storage device
US9785564B2 (en) 2013-08-20 2017-10-10 Seagate Technology Llc Hybrid memory with associative cache
US9069474B2 (en) 2013-08-20 2015-06-30 Seagate Technology Llc Retention based defecting in a hybrid memory system
US9367247B2 (en) 2013-08-20 2016-06-14 Seagate Technology Llc Memory access requests in hybrid memory system
US9507719B2 (en) 2013-08-20 2016-11-29 Seagate Technology Llc Garbage collection in hybrid memory system
US9070379B2 (en) 2013-08-28 2015-06-30 Western Digital Technologies, Inc. Data migration for data storage device
US8917471B1 (en) 2013-10-29 2014-12-23 Western Digital Technologies, Inc. Power management for data storage device
US10972574B2 (en) * 2016-04-27 2021-04-06 Seven Bridges Genomics Inc. Methods and systems for stream-processing of biomedical data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050057006A (ko) * 2002-08-29 2005-06-16 프리스케일 세미컨덕터, 인크. 데이터 저장을 위한 비휘발성 메모리를 구비한 저장 시스템
US7159073B2 (en) * 2003-03-27 2007-01-02 Stmicroelectronics, Inc. Data storage and caching architecture

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR200187110Y1 (ko) 2000-01-21 2000-06-15 덕원전산주식회사 수위센서
JP4078010B2 (ja) 2000-03-03 2008-04-23 株式会社日立グローバルストレージテクノロジーズ 磁気ディスク装置及び情報記録方法
US6684294B1 (en) * 2000-03-31 2004-01-27 Intel Corporation Using an access log for disk drive transactions
JP2003167781A (ja) 2001-11-30 2003-06-13 Matsushita Electric Ind Co Ltd 磁気ディスク装置およびデータ読み出し制御方法
JP4346875B2 (ja) 2002-08-14 2009-10-21 インターナショナル・ビジネス・マシーンズ・コーポレーション データのリアサイン方法、データ記録装置、プログラム
JP4394533B2 (ja) * 2004-07-28 2010-01-06 株式会社日立製作所 ディスクアレイシステム
JP4791286B2 (ja) * 2006-08-09 2011-10-12 富士通株式会社 ディスク装置および電子装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050057006A (ko) * 2002-08-29 2005-06-16 프리스케일 세미컨덕터, 인크. 데이터 저장을 위한 비휘발성 메모리를 구비한 저장 시스템
US7159073B2 (en) * 2003-03-27 2007-01-02 Stmicroelectronics, Inc. Data storage and caching architecture

Also Published As

Publication number Publication date
US20090089501A1 (en) 2009-04-02
KR20090032821A (ko) 2009-04-01
US7979631B2 (en) 2011-07-12

Similar Documents

Publication Publication Date Title
KR101347285B1 (ko) 하드디스크 드라이브의 선반입 방법, 이에 적합한 기록매체 그리고 이에 적합한 장치
US8595451B2 (en) Managing a storage cache utilizing externally assigned cache priority tags
US8583879B2 (en) Data storage device, storing medium access method and storing medium thereof
US11126544B2 (en) Method and apparatus for efficient garbage collection based on access probability of data
KR101702201B1 (ko) 솔리드 스테이트 드라이브(ssd)에 대한 최적화된 컨텍스트 드롭
US7788460B2 (en) Defragmenting objects in a storage medium
US9053019B2 (en) Non-volatile memory device, a data processing device using the same, and a swapping method used by the data processing and non-volatile memory devices
US20120054421A1 (en) Information device equipped with cache memories, apparatus and program using the same device
US20070005904A1 (en) Read ahead method for data retrieval and computer system
US20100185806A1 (en) Caching systems and methods using a solid state disk
US8433847B2 (en) Memory drive that can be operated like optical disk drive and method for virtualizing memory drive as optical disk drive
WO2017148242A1 (zh) 一种访问叠瓦式磁记录smr硬盘的方法及服务器
JP2004502237A (ja) 大容量ストレージ装置に集積された不揮発性キャッシュ
JP4604806B2 (ja) 記録装置
KR20140142154A (ko) 솔리드 스테이트 드라이브 캐싱 환경에서 디스크 조각 모음 관리 방법
US7174421B2 (en) HDD with rapid availability of critical data after critical event
US11474750B2 (en) Storage control apparatus and storage medium
US20060218361A1 (en) Electronic storage device with rapid data availability
JP4461089B2 (ja) ストレージ制御装置およびストレージ制御方法
US11494312B2 (en) Flash memory devices and prefetch methods thereof
US11403211B2 (en) Storage system with file priority mechanism and method of operation thereof
JPH11161527A (ja) データ記憶システム
CN114880293A (zh) 一种软件启动加速方法及装置与计算设备
US6209057B1 (en) Storage device having data buffer
TW201435579A (zh) 用於從作業系統安裝映像檔的快照啓動多個伺服器之系統與方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant