KR101517761B1 - 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템 - Google Patents

데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템 Download PDF

Info

Publication number
KR101517761B1
KR101517761B1 KR1020080074714A KR20080074714A KR101517761B1 KR 101517761 B1 KR101517761 B1 KR 101517761B1 KR 1020080074714 A KR1020080074714 A KR 1020080074714A KR 20080074714 A KR20080074714 A KR 20080074714A KR 101517761 B1 KR101517761 B1 KR 101517761B1
Authority
KR
South Korea
Prior art keywords
access
storage device
information
data
recording area
Prior art date
Application number
KR1020080074714A
Other languages
English (en)
Other versions
KR20100013166A (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 KR1020080074714A priority Critical patent/KR101517761B1/ko
Priority to US12/511,992 priority patent/US8291185B2/en
Priority to JP2009178181A priority patent/JP5619387B2/ja
Publication of KR20100013166A publication Critical patent/KR20100013166A/ko
Application granted granted Critical
Publication of KR101517761B1 publication Critical patent/KR101517761B1/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/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0647Migration mechanisms
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • 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/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

본 발명은 데이터 저장 장치 및 그 제어 방법에 관한 것으로서, 특히 복수의 저장 장치를 이용하여 액세스 성능 향상을 위하여 데이터 저장 위치를 관리하는 방법 및 장치에 관한 것이다.
본 발명에 따른 데이터 저장 위치 관리 방법은 수신되는 커맨드에 따라 제1저장 장치에서 액세스된 기록 영역별 액세스 빈도를 산출하는 단계, 상기 산출된 영역별 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 제1저장 장치의 기록 영역에 저장된 데이터를 제2저장 장치에 복사하는 단계 및, 상기 복사한 제2저장 장치의 기록 영역에 대한 위치 정보로 상기 복사되는 데이터를 제공하는 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 단계를 포함함을 특징으로 한다.

Description

데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템{Method for managing data storage position and data storage system using the same}
본 발명은 데이터 저장 장치 및 그 제어 방법에 관한 것으로서, 특히 복수의 저장 장치를 이용하여 액세스 성능 향상을 위하여 데이터 저장 위치를 관리하는 방법 및 장치에 관한 것이다.
일반적으로, 데이터 저장 장치의 하나인 하드디스크 드라이브는 자기 헤드에 의해 디스크에 기록된 데이터를 재생하거나, 디스크에 사용자 데이터를 기록함으로써 컴퓨터 시스템 운영에 기여하게 된다.
그런데, 하드디스크 드라이브는 반도체 메모리에 비하여 데이터 저장 용량은 크지만, 데이터 처리 속도가 상대적으로 늦은 단점이 있다. 따라서, 이러한 단점을 보완하기 위한 기술 개발이 필요하게 되었다.
본 발명이 해결하고자 하는 과제는 저장매체에서의 액세스되는 빈도에 근거하여 데이터 저장 위치를 재구성하는 데이터 저장 위치 관리 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 저장매체에서의 액세스되는 빈도에 근거하여 데이터 저장 위치를 재구성하는 데이터 저장 시스템을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 데이터 저장 위치 관리 방법을 수행하는 프로그램 코드가 기록된 저장매체를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일실시 예에 따른 데이터 저장 위치 관리 방법은 수신되는 커맨드에 따라 제1저장 장치에서 액세스된 기록 영역별 액세스 빈도를 산출하는 단계, 상기 산출된 영역별 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 제1저장 장치의 기록 영역에 저장된 데이터를 제2저장 장치에 복사하는 단계 및, 상기 복사한 제2저장 장치의 기록 영역에 대한 위치 정보로 상기 복사되는 데이터를 제공하는 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 단계를 포함함을 특징으로 한다.
상기 제2저장 장치는 상기 제1저장 장치보다 액세스 속도가 빠른 저장 장치로 결정하는 것이 바람직하다.
상기 제1,2저장 장치는 비휘발성 저장 장치를 포함하는 것이 바람직하다.
상기 제1저장 장치는 하드디스크 드라이브를 포함하는 것이 바람직하다.
상기 제2저장 장치는 비휘발성 반도체 메모리 장치를 포함하는 것이 바람직하다.
상기 위치 정보를 대체시키는 단계는 상기 복사되는 기록 영역에 포함된 논리 블록 어드레스들을 상기 제2저장 장치의 복사한 기록 영역에 대응되도록 재할당하여 위치 정보를 대체시키는 것이 바람직하다.
상기 액세스 빈도는 상기 제1저장 장치에 할당된 논리 블록 어드레스에서 액세스되는 빈도를 나타내는 액세스 리스트를 이용하여 산출하고, 상기 액세스 리스트는 액세스 시작 위치를 나타내는 논리 블록 어드레스 정보 필드, 액세스 범위를 나타내는 섹터 수 정보 필드 및 반복된 액세스 회수를 나타내는 히트 카운트 정보 필드로 구성된 복수개의 단위 액세스 정보 세트들을 포함하는 것이 바람직하다.
상기 액세스 리스트는 상기 제1저장 장치에서 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 상기 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시키고, 그렇지 않은 경우에는 상기 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보를 포함하는 새로운 단위 액세스 정보 세트를 상기 액세스 리스트에 추가하는 방식으로 생성시키는 것이 바람직하다.
상기 새로운 단위 액세스 정보 세트는 상기 실행된 커맨드에 지정된 논리 블록 어드레스 정보, 섹터 수 정보 및, 초기화된 히트 카운트 정보를 포함하는 것이 바람직하다.
상기 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 초기 설정된 제1임계 값에 도달된 경우에, 상기 액세스 리스트에 포함된 단위 액세스 정보 세트들 중에서 히트 카운트 정보가 초기 설정된 제2임계 값을 초과하는 단위 액세스 정보 세트에 지정된 제1저장 장치의 기록 영역에 저장된 데이터를 상기 제1저장 장치보다 액세스 속도가 빠른 제2저장 장치로 복사하고, 상기 복사된 기록 영역에 포함된 논리 블록 어드레스들을 상기 제2저장 장치의 복사한 기록 영역에 대응되도록 재할당하는 것이 바람직하다.
상기 복사된 기록 영역에 포함된 논리 블록 어드레스들을 상기 제2저장 장치의 복사한 기록 영역에 대응되도록 재할당한 후에 상기 액세스 리스트에 기입된 단위 액세스 정보 세트들을 삭제하여 초기화시키는 것이 바람직하다.
상기 다른 과제를 달성하기 위한 본 발명의 일실시 예에 따른 데이터 저장 시스템은 기록 방식이 상이한 복수의 저장 장치들, 상기 복수의 저장 장치들에 포함된 제1저장 장치에서 커맨드에 근거하여 액세스된 기록 영역별 액세스 빈도를 나타내는 액세스 리스트를 생성시키는 액세스 리스트 생성부 및, 상기 산출된 액세스 리스트에 근거하여 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 기록 영역에 저장된 데이터를 상기 복수의 저장 장치들에 포함된 제2저장 장치에 복사하고, 상기 복사한 제2저장 장치의 기록 영역에 대한 위치 정보로 상기 복사되는 데이터를 제공하는 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 컨트롤러를 포함함을 특징으로 한다.
상기 액세스 리스트 생성부는 액세스 시작 위치를 나타내는 논리 블록 어드 레스 정보 필드, 액세스 범위를 나타내는 섹터 수 정보 필드 및 반복된 액세스 회수를 나타내는 히트 카운트 정보 필드를 포함하는 복수개의 단위 액세스 정보 세트들을 포함하는 액세스 리스트를 생성시키고, 상기 제1저장 장치에서 실행된 커맨드에 지정된 논리 블록 어드레스 범위를 포함하는 단위 액세스 정보 세트가 상기 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시키고, 그렇지 않은 경우에는 상기 실행된 커맨드에 지정된 논리 블록 어드레스 범위에 근거하여 새로운 단위 액세스 정보 세트를 상기 액세스 리스트에 추가시키는 것이 바람직하다.
상기 컨트롤러는 상기 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 초기 설정된 제1임계 값에 도달된 경우에, 상기 액세스 리스트에 포함된 단위 액세스 정보 세트들 중에서 히트 카운트 정보가 초기 설정된 제2임계 값을 초과하는 단위 액세스 정보 세트에서 지정되는 기록 영역에 저장된 데이터를 상기 제2저장 장치에 복사하고 상기 복사한 제2저장 장치의 기록 영역에 대한 위치 정보로 상기 복사되는 데이터를 제공하는 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 것이 바람직하다.
상기 또 다른 기술적 과제를 해결하기 위하여 본 발명은 상기 데이터 저장 위치 관리 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 의하면 데이터 저장 시스템에서 제1저장 장치에 할당된 액세스 빈 도가 높은 논리 블록 어드레스들을 제1저장 장치보다 액세스 속도가 빠른 제2저장 장치로 이동시킴으로써, 데이터 저장 시스템에서의 액세스 속도를 향상시킬 수 있게 된다.
일 예로서, 하드디스크 드라이브에서 디스크에 할당되어 있던 논리 블록 어드레스들 중에서 액세스 빈도가 비교적 높은 논리 블록 어드레스들을 액세스 속도가 빠른 다른 저장 장치로 이동시킴으로써, 하드디스크 드라이브에서의 액세스 속도를 향상시킬 수 있다.
특히, 호스트 장치와는 독립적으로 저장 장치 자체에서 사용 빈도가 높은 논리 블록 어드레스들을 수집하여 액세스 속도가 빠른 보조 저장 장치(제2저장 장치)로 이동시킴으로써, 호스트 장치와는 별개로 저장 장치의 성능을 향상시킬 수 있는 효과가 발생된다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세히 설명하기로 한다.
도 1은 본 발명의 일실시 예에 따른 데이터 저장 시스템의 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 일실시 예에 따른 데이터 저장 시스템은 호스트 장치(110), 컨트롤러(120), 액세스 리스트 생성부(130), 제1저장 장 치(140) 및 제2저장 장치(150)를 포함한다.
여기에서, 컨트롤러(120)는 중앙처리장치(CPU; 120-1)와 메모리(120-2)로 구성된다. 중앙처리장치(120-1)는 데이터 저장 시스템을 총괄적으로 제어하는 수단으로서 명령어의 해석과 자료의 연산, 비교 등의 일련의 처리를 제어하는 수단이다. 메모리(120-2)에는 데이터 저장 시스템을 제어하는데 필요한 프로그램들 및 데이터들이 저장되어 있으며, 특히 도 5~8의 흐름도를 실행시키기 위한 프로그램들 및 데이터들도 저장되어 있다.
제1저장 장치(140) 및 제2저장 장치(150)는 전원이 차단되더라도 기록매체에 저장된 데이터를 잃지 않는 비휘발성 저장 장치들이며, 제1,2저장 장치의 기록 방식은 상이하다. 본 발명의 일실시 예에서는 저장 용량은 크지만 기록 속도가 비교적 늦은 저장 장치를 제1저장 장치(140)로 설정하고, 제1저장 장치보다 기록 속도가 빠른 저장 장치를 제2저장 장치(150)로 설정하였다. 본 발명의 일실시 예에 따르면 제1저장 장치(140)는 하드디스크 드라이브로 설정할 수 있으며, 제2저장 장치(150)는 비휘발성 반도체 메모리 장치로 설정할 수 있다. 본 발명의 일실시 예에서는 설명의 편의를 위하여 데이터 저장 시스템에 2개의 저장 장치가 포함되는 것으로 한정하여 설명하였으나, 본 발명은 이에 한정되지 않고 3개 이상의 복수의 저장 장치를 포함하도록 설계할 수도 있음은 당연한 사실이다.
액세스 리스트 생성부(130)는 제1저장 장치에서 실행된 커맨드에 근거하여 액세스된 기록 영역의 액세스 빈도를 나타내는 액세스 리스트를 생성시킨다. 도 4에 도시된 바와 같이, 액세스 리스트는 복수개의 단위 액세스 정보 세트들로 구성 되며, 단위 액세스 정보 세트(L(i))는 액세스 시작 위치를 나타내는 논리 블록 어드레스 정보 필드(F1), 액세스 범위를 나타내는 섹터 수 정보 필드(F2) 및 반복된 액세스 회수를 나타내는 히트 카운트 정보 필드(F3)로 구성될 수 있다. 액세스 리스트에서 허용할 수 있는 단위 액세스 정보 세트들의 개수를 초기 설정 값으로 결정할 수 있으며, 도 4에서는 임의의 N개로 설정하였다.
액세스 리스트 생성부(130)는 제1저장 장치(140)에서 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 상응하는 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 필드 F3에 저장된 히트 카운트 정보를 증가시키고, 그렇지 않은 경우에는 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 근거하여 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가시킨다. 여기에서, 새로운 단위 액세스 정보 세트의 필드 F1에는 커맨드에 지정된 논리 블록 어드레스 정보를 저장하고, 필드 F2에는 커맨드에 지정된 섹터 수 정보를 저장하고, 필드 F3에는 초기화된 히트 카운트 정보에 해당되는'1'을 저장한다.
위에서 액세스 리스트는 리드 커맨드와 라이트 커맨드에 의하여 실행된 액세스 빈도를 모두 반영하도록 설계할 수 있으며, 경우에 따라서는 리드 커맨드에 의하여 실행된 액세스 빈도만을 반영하도록 설계할 수도 있다.
컨트롤러(120)의 중앙처리장치(120-1)는 액세스 리스트 생성부(130)에서 생성된 액세스 리스트에 근거하여 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 단위 액세스 정보 세트에 지정된 제1저장 장치(140)의 기록 영역에 저장된 데이터 를 데이터가 저장되어 있지 않은 제2저장 장치(150)의 임의의 기록 영역에 복사하고, 복사한 제2저장 장치(150)의 기록 영역에 대한 위치 정보로 복사한 데이터를 제공하는 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 위치 정보 매핑 리스트를 작성하여 메모리(120-2)에 저장한다.
그러면, 컨트롤러(120)의 제어에 따라서 실행되는 본 발명의 일실시 예에 따른 데이터 저장 위치 관리 방법을 도 5를 참조하여 설명하기로 한다.
호스트 장치(110)로부터 커맨드가 컨트롤러(120)로 수신되면 컨트롤러(120)의 중앙처리장치(120-1)에서 커맨드를 해석하여, 수신된 커맨드가 액세스 관련 커맨드인지를 판단한다(S501). 액세스 관련 커맨드의 예로는 라이트 커맨드와 리드 커맨드가 있다.
단계501(S501)의 판단 결과 액세스 관련 커맨드가 수신된 경우에 중앙처리장치(120-1)는 액세스할 저장 장치를 검색한다(S502). 세부적으로, 중앙처리장치(120-1)는 수신된 액세스 관련 커맨드에 지정된 논리 블록 어드레스 정보와 섹터 수 정보에 대응되는 기록 영역의 위치가 어느 저장 장치에 포함되어 있는지를 검색한다. 중앙처리장치(120-1)는 저장 장치 검색 시에 메모리(120-2)에 저장되어 있는 위치 정보 매핑 리스트도 참조한다. 즉 액세스할 논리 블록 어드레스 정보가 제1저장 장치(140)의 기록 영역에 할당되어 있는지 또는 제2저장 장치(150)의 기록 영역에 할당되어 있는지를 판단한다. 만일, 제2저장 장치(150)에 할당되어 있는 경우에는 제2저장 장치(150)를 액세스할 저장 장치로 결정한다. 그러나, 제1저장 장치(140)에 할당되어 있는 경우에는 해당 논리 블록 어드레스 정보가 위치 정보 매 핑 리스트에 포함되어 있는지를 판단한다. 위치 정보 매핑 리스트는 제1저장 장치(140)에 할당되어 있던 논리 블록 어드레스들 중에서 액세스 빈도가 비교적 높은 논리 블록 어드레스를 제2저장 장치(150)로 이동시키도록 매핑 처리하는 리스트이다.
만일, 제1저장 장치(140)의 기록 영역에만 논리 블록 어드레스를 할당하고, 제2저장 장치(150)의 기록 영역에는 논리 블록 어드레스를 할당하지 않은 경우에는 중앙처리장치(120-1)는 위치 정보 매핑 리스트에 액세스할 논리 블록 어드레스 정보가 포함되어 있으면 제2저장 장치(150)를 액세스할 저장 장치로 결정하고, 그렇지 않은 경우에는 제1저장 장치(140)를 액세스할 저장 장치로 결정할 수도 있다.
다음으로, 액세스할 저장 장치로 결정된 저장 장치의 기록 영역에서 수신된 커맨드를 실행한다(S503). 즉, 수신된 커맨드가 라이트 커맨드인 경우에는 액세스할 저장 장치로 결정된 저장 장치에서 라이트 커맨드에 지정된 논리 블록 어드레스에 대응되는 기록 영역에 라이트를 실행한다. 그리고, 수신된 커맨드가 리드 커맨드인 경우에는 액세스할 저장 장치로 결정된 저장 장치에서 리드 커맨드에서 지정된 논리 블록 어드레스에 대응되는 기록 영역으로부터 데이터를 읽어낸다.
단계503에 의하여 커맨드를 실행한 후에, 커맨드가 실행된 저장 장치가 제1저장인지를 판단한다(S504).
단계504(S504)의 판단 결과 제1저장 장치에서 커맨드를 실행한 경우에는 커맨드에 따른 액세스 정보를 액세스 리스트에 반영한다(S505). 액세스 리스트는 위에서 언급한 바와 같이 도 4에 도시된 바와 같은 사양을 갖는다. 제1저장 장치에서 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시킨다. 그러나, 제1저장 장치에서 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하지 않는 경우에는 실행된 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보를 포함하는 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가하고, 이 때 히트 카운트 정보는 초기 값인'1'로 설정한다.
다음으로, 액세스 리스트에 근거하여 액세스 빈도가 기준 빈도를 초과하는 단위 액세스 정보 세트에 지정된 영역에 저장된 데이터를 데이터가 저장되어 있지 않는 제2저장 장치의 기록 영역에 옮겨 쓰는 복사 처리를 실행한다(S506). 세부적으로, 중앙처리장치(120-1)는 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 제1임계 값에 도달된 경우에, 액세스 리스트에 포함된 단위 액세스 정보 세트들 중에서 히트 카운트 정보가 제2임계 값을 초과하는 단위 액세스 정보 세트에 지정된 제1저장 장치의 기록 영역에 저장된 데이터를 제1저장 장치보다 액세스 속도가 빠른 제2저장 장치로 복사하도록 제어한다. 여기에서, 제1임계값 및 제2임계값은 각각 초기 설정값들로 제품 사양에 적합하도록 제품 설계 단계에서 결정할 수 있다.
그리고 나서, 복사 처리된 영역에 대한 위치 정보 매핑 리스트를 작성한다(S507). 즉, 중앙처리장치(120-1)는 복사 처리된 논리 블록 어드레스에 대응되는 제1저장 장치에 할당된 위치 정보를 제2저장 장치에서의 복사된 위치 정보로 매핑 처리하는 매핑 리스트를 작성하여 메모리(120-2)에 저장한다.
따라서, 제1저장 장치에 할당된 액세스 빈도가 높은 논리 블록 어드레스들을 제1저장 장치보다 액세스 속도가 빠른 제2저장 장치로 이동시킴으로써 데이터 저장 시스템에서의 액세스 속도를 향상시킬 수 있게 된다.
다음으로, 본 발명의 일실시 예에 따른 데이터 저장 위치 관리 방법을 라이트 모드 및 리드 모드로 나누어 구체적으로 설명하기로 한다.
액세스 빈도 리스트를 리드 커맨드와 라이트 커맨드에 의하여 실행된 액세스 빈도를 모두 반영하는 경우와 리드 커맨드에 의하여 실행된 액세스 빈도만을 반영하는 경우를 나누어서 설명하기로 한다.
우선, 리드 커맨드에 의하여 실행된 액세스 빈도만을 반영하여 액세스 리스트를 생성시키는 경우의 라이트 커맨드 실행 방법을 도 6을 참조하여 설명하기로 한다.
호스트 장치(110)로부터 커맨드가 컨트롤러(120)로 수신되면 컨트롤러(120)의 중앙처리장치(120-1)에서 커맨드를 해석하여, 수신된 커맨드가 라이트 커맨드인지를 판단한다(S601).
단계601(S601)의 판단 결과 라이트 커맨드가 수신된 경우에 중앙처리장치(120-1)는 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 논리 블록 어드레스들이 할당된 저장 장치를 검색한다(S602). 즉, 액세스할 기록 영역이 제1저장 장치(140) 또는 제2저장 장치(150) 중에서 어느 저장 장치에 할당되어 있는지를 판단한다. 만일, 제2저장 장치(150)에 할당되어 있는 경우에는 제2저장 장치(150)를 액세스할 저장 장치로 결정한다. 그러나, 제1저장 장치(140)에 할당되어 있는 경우에는 해당 논리 블록 어드레스 정보가 위치 정보 매핑 리스트에 포함되어 있는지를 판단한다. 위치 정보 매핑 리스트는 제1저장 장치(140)에 할당되어 있던 논리 블록 어드레스들 중에서 리드 커맨드에 의한 액세스 빈도가 비교적 높은 논리 블록 어드레스들을 제2저장 장치(150)로 이동시키도록 매핑하는 리스트이다.
그리고 나서, 수신된 라이트 커맨드와 함께 수신되는 데이터를 액세스할 저장 장치로 결정된 저장 장치에서 라이트 처리를 실행한다(S603).
다음으로, 리드 커맨드와 라이트 커맨드에 의하여 실행된 액세스 빈도를 모두 반영하여 액세스 리스트를 생성시키는 경우의 라이트 커맨드 실행 방법을 도 7을 참조하여 설명하기로 한다.
도 7의 단계701(S701)~ 단계703(S703)은 도 6의 단계601(S601) ~ 단계603(S603)과 동일함으로 중복 설명은 피하기로 한다.
단계703(S703)에 의하여 라이트 커맨드를 실행한 후에, 라이트 커맨드가 실행된 저장 장치가 제1저장인지를 판단한다(S704).
단계704(S704)의 판단 결과 제1저장 장치에서 라이트 커맨드를 실행한 경우에는 실행된 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하는지를 판단한다(S705).
단계705(S705)의 판단 결과 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하지 않는 경우에는 해당 라이트 커맨드에 근거한 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가한다(S706). 즉, 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보와 초기 값'1'로 설정된 히트 카운트 정보로 구성된 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가한다.
그러나, 단계705(S705)의 판단 결과 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시킨다(S707). 즉, 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트의 히트 카운트 정보를 단위 스텝인'1'증가시킨다.
단계706(S706) 또는 단계707(S707)을 실행하고 나서, 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 제1임계값에 도달되었는지를 판단한다(S708). 제1임계값은 초기 설정값들로 제품 사양에 적합하도록 제품 설계 단계에서 결정할 수 있다.
단계708(S708)의 판단 결과 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 제1임계값에 도달되지 않은 경우에는, 액세스 빈도를 판단하기 충분한 액세스 리스트가 작성된 상태로 볼 수 없으므로 단계를 종료한다.
그러나, 단계708(S708)의 판단 결과 액세스 리스트에 기입된 단위 액세스 정 보 세트들의 개수가 제1임계값에 도달된 경우에는, 액세스 리스트에 포함된 단위 액세스 정보 세트들 중에서 히트 카운트 정보가 제2임계값을 초과하는 단위 액세스 정보 세트에 지정된 액세스 영역에 저장된 데이터를 제1저장 장치(140)보다 액세스 속도가 빠른 제2저장 장치(150)의 데이터가 저장되어 있지 않은 기록 영역에 복사한다(S709). 제2임계값은 초기 설정값들로 제품 사양에 적합하도록 제품 설계 단계에서 결정할 수 있다.
그리고 나서, 복사 처리된 영역의 위치 정보 매핑 리스트를 작성한다(S710). 세부적으로, 복사되는 제1저장 장치(140)의 기록 영역에 할당된 위치 정보를 복사하는 제2저장 장치(150)의 기록 영역에 할당된 위치 정보로 대체하는 매핑 리스트를 작성하여 메모리(120-2)에 저장한다.
다음으로, 본 발명의 일실시 예에 따른 리드 모드에서의 데이터 저장 위치 관리 방법을 도 8을 참조하여 설명하기로 한다.
호스트 장치(110)로부터 커맨드가 컨트롤러(120)로 수신되면 컨트롤러(120)의 중앙처리장치(120-1)에서 커맨드를 해석하여, 수신된 커맨드가 리드 커맨드인지를 판단한다(S801).
단계801(S801)의 판단 결과 리드 커맨드가 수신된 경우에 중앙처리장치(120-1)는 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 논리 블록 어드레스들이 할당된 저장 장치를 검색한다(S802). 저장 장치를 검색하는 방법은 위에서 상세하게 설명하였으므로 중복 설명을 피하기로 한다.
다음으로, 검색된 저장 장치에서 리드 커맨드에서 지정하는 영역에 저장된 데이터를 읽어낸다(S803).
단계803(S803)에 의하여 리드 커맨드를 실행한 후에, 리드 커맨드가 실행된 저장 장치가 제1저장인지를 판단한다(S804).
단계804(S804)의 판단 결과 제1저장 장치에서 리드 커맨드를 실행한 경우에는 실행된 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하는지를 판단한다(S805).
단계805(S805)의 판단 결과 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하지 않는 경우에는 해당 리드 커맨드에 근거한 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가한다(S806). 즉, 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보와 초기 값'1'로 설정된 히트 카운트 정보로 구성된 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가한다.
그러나, 단계805(S805)의 판단 결과 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시킨다(S807). 즉, 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트의 히트 카운트 정보를 단위 스텝인'1'증가시킨다.
단계806(S806) 또는 단계807(S807)을 실행하고 나서, 액세스 리스트에 기입 된 단위 액세스 정보 세트들의 개수가 제1임계값에 도달되었는지를 판단한다(S808).
단계808(S808)의 판단 결과 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 제1임계값에 도달되지 않은 경우에는, 액세스 빈도를 판단하기 충분한 액세스 리스트가 작성된 상태로 볼 수 없으므로 단계를 종료한다.
그러나, 단계808(S808)의 판단 결과 액세스 리스트에 기입된 단위 액세스 정보 세트들의 개수가 제1임계값에 도달된 경우에는, 액세스 리스트에 포함된 단위 액세스 정보 세트들 중에서 히트 카운트 정보가 제2임계값을 초과하는 단위 액세스 정보 세트에 지정된 기록 영역에 저장된 데이터를 제1저장 장치(140)보다 액세스 속도가 빠른 제2저장 장치(150)의 데이터가 저장되어 있지 않은 기록 영역에 복사한다(S809).
그리고 나서, 복사 처리된 영역의 위치 정보 매핑 리스트를 작성한다(S810). 세부적으로, 복사되는 제1저장 장치(140)의 기록 영역에 할당된 위치 정보를 복사하는 제2저장 장치(150)의 기록 영역에 할당된 위치 정보로 대체하는 매핑 리스트를 작성하여 메모리(120-2)에 저장한다.
다음으로, 도 1의 데이터 저장 시스템에서 제1저장 장치(140)를 하드디스크 드라이브로 설정하고, 제2저장 장치(150)를 하드디스크 드라이브에 내장하는 실시 예에 대하여 설명하기로 한다.
도 2에 도시된 바와 같이, 본 발명의 일실시 예에 따른 하드디스크 드라이브는 프리 앰프(210), 기록/판독 채널(220), 컨트롤러(230), 액세스 리스트 생성 부(240), 제2저장 장치(250), 호스트 인터페이스(260) 및 보이스 코일 모터(VCM) 구동부(270)를 포함한다.
여기에서, 제2저장 장치(250)는 비휘발성 메모리 장치로서, 액세스 속도가 하드디스크 드라이브보다 빠른 메모리 장치로 설정한다. 제2저장 장치(250)는 일 예로서 반도체 비휘발성 메모리인 플래시 메모리, PRAM(Phase change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등이 이용될 수 있다.
하드디스크 드라이브의 기록매체인 디스크(12)에는 논리 블록 어드레스들이 할당되어 있으며, 제2저장 장치(250)의 기록매체에 논리 블록 어드레스들이 할당될 수 있다. 경우에 따라서는 디스크(12)에만 논리 블록 어드레스들을 할당하고, 제2저장 장치(250)에는 논리 블록 어드레스를 할당하지 않을 수도 있다.
액세스 리스트 생성부(240)는 호스트 인터페이스(260)를 통하여 수신되는 커맨드에 근거하여 디스크(12)에서 기록 영역별로 액세스되는 빈도를 나타내는 액세스 리스트를 생성시킨다. 도 4에 도시된 바와 같이, 액세스 리스트는 복수개의 단위 액세스 정보 세트들로 구성되며, 단위 액세스 정보 세트(L(i))는 액세스 시작 위치를 나타내는 논리 블록 어드레스 정보 필드(F1), 액세스 범위를 나타내는 섹터 수 정보 필드(F2) 및 반복된 액세스 회수를 나타내는 히트 카운트 정보 필드(F3)로 구성할 수 있다.
액세스 리스트 생성부(130)는 디스크(12)를 액세스하는 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 상응하는 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세 트의 필드 F3에 저장된 히트 카운트 정보를 증가시키고, 그렇지 않은 경우에는 해당 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 근거하여 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가시킨다. 여기에서, 새로운 단위 액세스 정보 세트의 필드 F1에는 커맨드에 지정된 논리 블록 어드레스 정보를 저장하고, 필드 F2에는 커맨드에 지정된 섹터 수 정보를 저장하고, 필드 F3에는 초기화된 히트 카운트 정보에 해당되는'1'을 저장한다.
컨트롤러(230)는 하드디스크 드라이브를 총괄적으로 제어하며, 디지털 신호 프로세서(DSP : Digital Signal Processor), 마이크로프로세서, 마이크로컨트롤러 등으로 구현될 수 있다. 컨트롤러(230)는 호스트 인터페이스(260)를 통하여 호스트 장치로부터 수신되는 커맨드에 따라서 디스크(12)로부터 정보를 읽거나 또는 디스크(12)에 정보를 기록하기 위하여 기록/판독 채널(220)을 제어한다.
그리고, 컨트롤러(230)는 보이스 코일(26)에 구동 전류를 공급하는 VCM 구동부(270)에 또한 결합되어 있다. 컨트롤러(230)는 보이스 코일 모터의 여기 및 변환기(16)의 움직임을 제어하기 위하여 VCM 구동부(270)로 제어신호를 공급한다.
특히, 컨트롤러(230)는 액세스 리스트 생성부(240)에서 생성된 액세스 리스트에 근거하여 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 단위 액세스 정보 세트에 지정된 논리 블록 어드레스 범위에 대응되는 디스크(12)의 기록 영역에 저장된 데이터를 제2저장 장치(250)에 복사하고, 복사한 제2저장 장치(250)의 기록 영역에 대한 위치 정보로 복사되는 디스크(12)의 기록 영역에 대한 위치 정보를 대체시키기 위한 위치 정보 매핑 리스트를 작성한다. 위치 정보 매핑 리스트에 따라 서 액세스 빈도가 높은 디스크(12)의 기록 영역에 할당된 논리 블록 어드레스들은 제2저장 장치(250)의 기록 영역으로 재할당된다.
그러면, 도 2의 구성에 따른 하드디스크 드라이브의 리드 모드 및 라이트 모드 동작을 설명하기로 한다.
우선, 하드디스크 드라이브의 리드 모드 동작에 대하여 설명하기로 한다.
리드 커맨드가 수신되면, 컨트롤러(230)는 수신된 리드 커맨드에서 지정하는 논리 블록 어드레스들이 제2저장 장치(250) 또는 디스크(12) 중에서 어디에 할당되어 있는지를 판단한다.
리드 커맨드에서 지정하는 논리 블록 어드레스들이 제2저장 장치(250)에 할당되어 있는 경우에는, 컨트롤러(230)는 제2저장 장치(250)로부터 논리 블록 어드레스가 지정하는 기록 영역에 저장되어 있는 데이터를 읽어내어 호스트 인터페이스(260)를 통하여 호스트 장치로 전송한다.
그리고, 리드 커맨드에서 지정하는 논리 블록 어드레스들이 디스크(12)에 할당되어 있는 경우에는, 컨트롤러(230)는 해당 논리 블록 어드레스들이 위치 정보 매핑 리스트에 포함된 논리 블록 어드레스인지를 확인한다.
만일, 위치 정보 매핑 리스트에 포함된 논리 블록 어드레스인 경우에는 위치 정보 매핑 리스트에서 해당 논리 블록 어드레스에 매핑되어 있는 제2저장 장치(250)의 기록 영역으로부터 데이터를 읽어내어 호스트 인터페이스(260)를 통하여 호스트 장치로 출력한다.
그러나, 리드 커맨드에서 지정하는 논리 블록 어드레스들이 디스크(12)에 할 당되어 있고 위치 정보 매핑 리스트에 포함되어 있지 않은 경우에는, 컨트롤러(230)는 리드 커맨드에서 지정하는 논리 블록 어드레스에 대응되는 디스크(12)의 기록 영역으로 변환기(16)를 이동시키도록 제어한다. 그리고 나서, 변환기(16)는 디스크(12)의 기록 영역으로부터 전기적인 신호를 감지하고, 감지된 전기적인 신호를 프리 앰프(210)에서 신호 처리에 용이하도록 증폭시킨다. 그리고 나서, 기록/판독 채널 회로(220)에서 디스크(12)로부터 읽어낸 신호를 디지털 신호로 부호화시키고, 스트림 데이터로 변환하여 호스트 인터페이스(260)를 통하여 호스트 장치로 전송한다.
컨트롤러(230)는 리드 커맨드를 실행하고 나서, 디스크(12)로부터 데이터를 읽어낸 경우에는 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트가 액세스 리스트에 존재하는지를 판단한다. 컨트롤러(230)는 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하지 않는 경우에는 해당 리드 커맨드에 근거한 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가한다. 그러나, 리드 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시킨다.
다음으로, 하드디스크 드라이브의 라이트 모드 동작에 대하여 설명하기로 한다.
라이트 커맨드가 수신되면, 컨트롤러(230)는 수신된 라이트 커맨드에서 지정하는 논리 블록 어드레스들이 제2저장 장치(250) 또는 디스크(12) 중에서 어디에 할당되어 있는지를 판단한다.
라이트 커맨드에서 지정하는 논리 블록 어드레스들이 제2저장 장치(250)에 할당되어 있는 경우에는, 컨트롤러(230)는 호스트 인터페이스(260)를 통하여 수신되는 데이터를 라이트 커맨드에서 지정하는 논리 블록 어드레스에 대응되는 제2저장 장치(250)의 기록 영역에 기록한다.
그리고, 라이트 커맨드에서 지정하는 논리 블록 어드레스들이 디스크(12)에 할당되어 있는 경우에는, 컨트롤러(230)는 해당 논리 블록 어드레스들이 위치 정보 매핑 리스트에 포함된 논리 블록 어드레스인지를 확인한다.
만일, 위치 정보 매핑 리스트에 포함된 논리 블록 어드레스인 경우에는 위치 정보 매핑 리스트에서 해당 논리 블록 어드레스에 매핑되어 있는 제2저장 장치(250)의 기록 영역에 호스트 인터페이스(260)를 통하여 수신되는 데이터를 기록한다.
그러나, 라이트 커맨드에서 지정하는 논리 블록 어드레스들이 디스크(12)에 할당되어 있고 위치 정보 매핑 리스트에 포함되어 있지 않은 경우에는, 컨트롤러(230)는 라이트 커맨드에서 지정하는 논리 블록 어드레스에 대응되는 디스크(12)의 기록 영역으로 변환기(16)를 이동시키도록 제어한다. 그리고 나서, 호스트 인터페이스(260)로부터 수신되는 데이터를 기록/판독 채널(220)에서 디스크(12)의 기록 채널에 적합한 바이너리 데이터 스트림으로 변환시킨 후에, 프리 앰프(210)에 의하 여 증폭된 기록 전류로 변환기(16)를 통하여 디스크(12)에 기록한다.
액세스 리스트는 리드 커맨드와 라이트 커맨드에 의하여 실행된 액세스 빈도를 모두 반영하도록 설계할 수 있으며, 경우에 따라서는 리드 커맨드에 의하여 실행된 액세스 빈도만을 반영하도록 설계할 수 있다.
만일, 리드 커맨드에 의하여 실행된 액세스 빈도만을 액세스 리스트에 반영하도록 하드디스크 드라이브를 설계하는 경우에는 라이트 커맨드에 의한 액세스 빈도는 반영하지 않는다.
그러나, 라이트 커맨드에 의하여 실행된 액세스 빈도도 액세스 리스트에 반영하도록 하드디스크 드라이브를 설계하는 경우에, 컨트롤러(230)는 다음과 같이 액세스 리스트에 반영한다.
컨트롤러(230)는 라이트 커맨드에 따라 디스크(12)에 데이터를 기록하고 나서 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하지 않는 경우에는 실행된 라이트 커맨드에 근거한 새로운 단위 액세스 정보 세트를 액세스 리스트에 추가한다. 그러나, 라이트 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역이 포함된 단위 액세스 정보 세트가 액세스 리스트에 존재하는 경우에는 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시킨다.
하드디스크 드라이브에서 리드 모드 및 라이트 모드를 실행한 후에, 컨트롤러(230)는 액세스 리스트 생성부(230)에서 생성된 액세스 리스트에 근거하여 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 단위 액세스 정보 세트에서 지정된 디스크(12)의 기록 영역에 저장된 데이터를 제2저장 장치(250)에 복사하고, 복사한 제2저장 장치(250)의 기록 영역에 대한 위치 정보로 복사한 데이터를 제공하는 디스크(12)의 기록 영역에 대한 위치 정보를 대체시키는 위치 정보 매핑 리스트를 작성한다. 따라서, 위치 정보 매핑 리스트는 디스크(12)에 할당되어 있던 논리 블록 어드레스들 중에서 액세스 빈도가 비교적 높은 논리 블록 어드레스들을 제2저장 장치(150)로 이동시키도록 매핑 처리된 리스트이다.
도 3은 본 발명이 적용되는 하드디스크 드라이브의 HDA(Head Disk Assembly; 10)의 구성을 보여준다.
헤드 디스크 어셈블리(10)는 스핀들 모터(14)에 의하여 회전되는 적어도 하나의 자기 디스크(12)를 포함하고 있다. 디스크 드라이브(10)는 디스크(12) 표면에 인접되게 위치한 변환기(16)를 또한 포함하고 있다.
변환기(16)는 각각의 디스크(12)의 자계를 감지하고 자화시킴으로써 회전하는 디스크(12)에서 정보를 읽거나 기록할 수 있다. 전형적으로 변환기(16)는 각 디스크(12) 표면에 결합되어 있다. 비록 단일의 변환기(16)로 도시되어 설명되어 있지만, 이는 디스크(12)를 자화시키기 위한 기록용 변환기와 디스크(12)의 자계를 감지하기 위한 분리된 읽기용 변환기로 이루어져 있다고 이해되어야 한다. 읽기용 변환기는 자기 저항(MR : Magneto-Resistive) 소자로부터 구성되어 진다. 변환기(16)는 통상적으로 헤드(Head)라 칭해지기도 한다.
변환기(16)는 슬라이더(20)에 통합되어 질 수 있다. 슬라이더(20)는 변환기(16)와 디스크(12) 표면사이에 공기 베어링(air bearing)을 생성시키는 구조로 되어 있다. 슬라이더(20)는 헤드 짐벌 어셈블리(22)에 결합되어 있다. 헤드 짐벌 어셈블리(22)는 보이스 코일(26)을 갖는 엑츄에이터 암(24)에 부착되어 있다. 보이스 코일(26)은 보이스 코일 모터(VCM : Voice Coil Motor 30)를 특정하도록 마그네틱 어셈블리(28)에 인접되게 위치하고 있다. 보이스 코일(26)에 공급되는 전류는 베어링 어셈블리(32)에 대하여 엑츄에이터 암(24)을 회전시키는 토오크를 발생시킨다. 엑츄에이터 암(24)의 회전은 디스크(12) 표면을 가로질러 변환기(16)를 이동시킬 것이다.
정보는 전형적으로 디스크(12)의 환상 트랙 내에 저장된다. 각 트랙(34)은 일반적으로 복수의 섹터를 포함하고 있다. 각 섹터는 데이터 필드(data field)와 식별 필드(identification field)를 포함하고 있다. 식별 필드는 섹터 및 트랙(실린더)을 식별하는 그레이 코드(Gray code)로 구성되어 있다. 디스크(12)의 기록 가능한 영역에는 논리 블록 어드레스 정보들이 할당되어 있다. 하드디스크 드라이브에서 논리 블록 어드레스 정보들은 실린더/헤드/섹터 정보로 변환되어 디스크(12)의 기록 영역이 지정된다. 변환기(16)는 다른 트랙에 있는 정보를 읽거나 기록하기 위하여 디스크(12) 표면을 가로질러 이동된다.
본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체는 정보를 저장 또는 전송할 수 있는 어떠한 매체도 포함한다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소 자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM : Erasable ROM), 플로피 디스크, 광 디스크, 하드 디스크, 광 섬유 매체, 무선 주파수(RF) 망, 등이 있다. 컴퓨터 데이터 신호는 전자 망 채널, 광 섬유, 공기, 전자계, RF 망, 등과 같은 전송 매체 위로 전파될 수 있는 어떠한 신호도 포함된다.
첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 예로서 이해되어 지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술 분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.
도 1은 본 발명에 따른 데이터 저장 시스템의 구성도이다.
도 2는 본 발명의 일실시 예에 따른 하드디스크 드라이브의 전기적인 회로 구성도이다.
도 3은 본 발명이 적용되는 디스크 드라이브의 헤드 디스크 어셈블리의 평면도이다.
도 4는 본 발명에 따른 액세스 리스트의 구조를 설명하기 위한 도면이다.
도 5는 본 발명의 일실시 예에 따른 데이터 저장 위치 관리 방법의 흐름도이다.
도 6은 본 발명의 일실시 예에 따른 데이터 저장 시스템에서의 라이트 커맨드 실행 방법의 흐름도이다.
도 7은 본 발명의 다른 실시 예에 따른 데이터 저장 시스템에서의 라이트 커맨드 실행 방법의 흐름도이다.
도 8은 본 발명의 일실시 예에 따른 데이터 저장 시스템에서의 리드 커맨드 실행 방법의 흐름도이다.

Claims (22)

  1. 데이터 저장 위치 관리 방법으로서,
    수신되는 커맨드에 따라 제1저장 장치에서 액세스된 기록 영역별 액세스 빈도를 산출하는 단계;
    데이터의 상기 산출된 영역별 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 상기 제1저장 장치의 기록 영역에 저장된 데이터를 제2저장 장치에 복사하는 단계; 및
    복사되는 상기 데이터가 저장되는 상기 제2저장 장치의 기록 영역에 대한 위치 정보로, 복사되는 상기 데이터를 제공하는 상기 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 단계를 포함하고,
    상기 액세스 빈도는, 상기 제1저장 장치에 할당된 논리 블록 어드레스에서 액세스 되는 빈도를 나타내는 액세스 리스트를 이용하여 산출되고, 상기 액세스 리스트는 액세스 범위를 나타내는 섹터 수 정보 필드 및 반복되는 액세스 횟수를 나타내는 히트 카운트 정보 필드로 형성되는 복수의 단위 액세스 정보 세트를 포함하며,
    상기 액세스 리스트는, 상기 액세스 리스트가 상기 제1저장 장치에서 수행되는 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보에 따른 액세스 영역을 포함하는 단위 액세스 정보 세트를 포함하는 경우에, 해당 단위 액세스 정보 세트의 히트 카운트 정보를 증가시키고,
    상기 액세스 리스트에 포함된 단위 액세스 정보 세트의 개수가 초기 설정된 제1임계값에 도달하는 경우에, 상기 액세스 리스트에 포함된 단위 액세스 정보 세트 중, 상기 단위 액세스 정보 세트의 히트 카운트 정보가 초기 설정된 제2임계값을 초과하는 단위 액세스 정보 세트에 의해 지정되는 상기 제1저장 장치의 기록 영역에 저장된 데이터를, 상기 제1저장 장치보다 액세스 속도가 빠른 상기 제2저장 장치에 복사하고, 상기 데이터가 복사되는 기록 영역에 포함된 논리 블록 어드레스들을 복사되는 상기 데이터가 저장되는 상기 제2저장 장치의 기록 영역에 대응하도록 재할당하는,
    데이터 저장 위치 관리 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 제1저장 장치 및 상기 제2저장 장치는 비휘발성 저장 장치를 포함하는,
    데이터 저장 위치 관리 방법.
  4. 제 1 항에 있어서,
    상기 제1저장 장치는 하드디스크 드라이브를 포함하는,
    데이터 저장 위치 관리 방법.
  5. 제 1 항에 있어서,
    상기 제2저장 장치는 비휘발성 반도체 메모리 장치를 포함하는,
    데이터 저장 위치 관리 방법.
  6. 제 1 항에 있어서,
    상기 커맨드는 리드 커맨드를 포함하는,
    데이터 저장 위치 관리 방법.
  7. 제 1 항에 있어서,
    상기 위치 정보를 대체시키는 단계는 상기 데이터가 복사되는 기록 영역에 포함된 논리 블록 어드레스들을 상기 제2저장 장치의 기록 영역에 대응하도록 재할당하여 위치 정보를 대체하는 단계를 포함하는,
    데이터 저장 위치 관리 방법.
  8. 제 1 항에 있어서,
    상기 복수의 단위 액세스 정보 세트는, 액세스 개시 위치를 나타내는 논리 블록 어드레스 정보 필드를 포함하는,
    데이터 저장 위치 관리 방법.
  9. 제 8 항에 있어서,
    상기 액세스 리스트는, 상기 액세스 리스트가 상기 단위 액세스 정보 세트를 포함하지 않는 경우에, 상기 수행되는 커맨드에 지정된 논리 블록 어드레스 정보 및 섹터 수 정보를 포함하는 새로운 단위 액세스 정보 세트를 상기 액세스 리스트에 추가하는 방식으로 생성되는,
    데이터 저장 위치 관리 방법.
  10. 제 9 항에 있어서,
    상기 새로운 단위 액세스 정보 세트는, 상기 수행되는 커맨드에 의해 지정된 논리 블록 어드레스 정보, 섹터 수 정보, 및 초기화된 히트 카운트 정보를 포함하는,
    데이터 저장 위치 관리 방법.
  11. 삭제
  12. 제 1 항에 있어서,
    상기 데이터가 복사되는 기록 영역에 포함된 논리 블록 어드레스를 복사되는 상기 데이터가 저장되는 상기 제2저장 장치의 기록 영역에 대응하도록 재할당한 다음, 상기 액세스 리스트에 포함된 단위 액세스 정보 세트를 삭제함으로써 상기 액세스 리스트를 초기화시키는 단계를 더 포함하는,
    데이터 저장 위치 관리 방법.
  13. 컴퓨터 판독가능 기록 매체로서,
    제 1 항, 제 3 항 내지 제 10 항 및 제 12 항 중 어느 한 항의 방법을 컴퓨터에 의해 실행시키기 위한 프로그램을 갖는,
    컴퓨터 판독가능 기록 매체.
  14. 데이터 저장 시스템으로서,
    기록 방식이 상이한 제1저장 장치 및 제2저장 장치;
    제1저장 장치에서 커맨드에 기초하여 액세스된 기록 영역별 액세스 빈도를 나타내는 액세스 리스트를 생성하는 액세스 리스트 생성 유닛; 및
    생성된 상기 액세스 리스트에 기초하여 데이터의 액세스 빈도가 초기 설정된 임계 빈도를 초과하는 기록 영역에 저장된 데이터를 제2저장 장치에 복사하고, 복사되는 상기 데이터가 저장되는 상기 제2저장 장치의 기록 영역에 대한 위치 정보로, 상기 복사되는 데이터를 제공하는 상기 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는 컨트롤러를 포함하고,
    상기 액세스 리스트 생성 유닛은, 액세스 범위를 나타내는 섹터 수 정보 필드 및 반복되는 액세스 횟수를 나타내는 히트 카운트 정보 필드를 갖는 복수의 단위 액세스 정보 세트를 포함하는 액세스 리스트를 생성하며,
    상기 액세스 리스트가 상기 제1저장 장치에서 수행되는 커맨드에 의해 지정된 논리 블록 어드레스 범위를 포함하는 단위 액세스 정보 세트를 포함하는 경우에, 해당 단위 액세스 정보 세트의 히트 카운트 정보가 증가되고,
    상기 컨트롤러는, 상기 액세스 리스트에 포함된 단위 액세스 정보 세트의 개수가 초기 설정된 제1임계값에 도달하는 경우에, 상기 액세스 리스트에 포함된 단위 액세스 정보 세트 중, 상기 단위 액세스 정보 세트의 히트 카운트 정보가 초기 설정된 제2임계값을 초과하는 단위 액세스 정보 세트에 의해 지정된 기록 영역에 저장되는 데이터를, 상기 제1저장 장치보다 액세스 속도가 빠른 상기 제2저장 장치에 복사하고, 복사되는 상기 데이터가 저장되는 상기 제2저장 장치의 기록 영역에 대한 위치 정보로, 복사되는 상기 데이터를 제공하는 상기 제1저장 장치의 기록 영역에 대한 위치 정보를 대체시키는,
    데이터 저장 시스템.
  15. 삭제
  16. 제 14 항에 있어서,
    상기 제1저장 장치 및 상기 제2저장 장치는, 비휘발성 저장 장치를 포함하는,
    데이터 저장 시스템.
  17. 제 14 항에 있어서,
    상기 제1저장 장치는 하드디스크 드라이브를 포함하는,
    데이터 저장 시스템.
  18. 제 14 항에 있어서,
    상기 제2저장 장치는 비휘발성 반도체 메모리 장치를 포함하는,
    데이터 저장 시스템.
  19. 제 14 항에 있어서,
    상기 복수의 단위 액세스 정보 세트는 액세스 개시 위치를 나타내는 논리 블록 어드레스 정보 필드를 포함하고, 상기 액세스 리스트가 상기 단위 액세스 정보 세트를 포함하지 않는 경우에, 상기 수행된 커맨드에 지정된 논리 블록 어드레스 범위에 기초하여, 새로운 단위 액세스 정보 세트가 상기 액세스 리스트에 추가되는,
    데이터 저장 시스템.
  20. 제 19 항에 있어서,
    상기 새로운 단위 액세스 정보 세트는, 상기 수행되는 커맨드에 의해 지정된 논리 블록 어드레스 정보, 섹터 수 정보 및, 초기화된 히트 카운트 정보를 포함하는,
    데이터 저장 시스템.
  21. 삭제
  22. 제 14 항에 있어서,
    상기 컨트롤러는 상기 기록 영역에 대한 위치 정보를 대체시키고 나서 상기 액세스 리스트에 포함된 단위 액세스 정보 세트를 삭제함으로써 상기 액세스 리스트를 초기화하는,
    데이터 저장 시스템.
KR1020080074714A 2008-07-30 2008-07-30 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템 KR101517761B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020080074714A KR101517761B1 (ko) 2008-07-30 2008-07-30 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템
US12/511,992 US8291185B2 (en) 2008-07-30 2009-07-29 Data storing location managing method and data storage system
JP2009178181A JP5619387B2 (ja) 2008-07-30 2009-07-30 データ管理方法、記録媒体及びデータ保存システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080074714A KR101517761B1 (ko) 2008-07-30 2008-07-30 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템

Publications (2)

Publication Number Publication Date
KR20100013166A KR20100013166A (ko) 2010-02-09
KR101517761B1 true KR101517761B1 (ko) 2015-05-06

Family

ID=41609505

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080074714A KR101517761B1 (ko) 2008-07-30 2008-07-30 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템

Country Status (3)

Country Link
US (1) US8291185B2 (ko)
JP (1) JP5619387B2 (ko)
KR (1) KR101517761B1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8380949B2 (en) * 2010-05-20 2013-02-19 International Business Machines Corporation Managing write operations to an extent of tracks migrated between storage devices
JP5720204B2 (ja) * 2010-11-26 2015-05-20 富士通株式会社 アクセス制御プログラム、アクセス制御方法および情報処理装置
KR102003432B1 (ko) * 2012-06-12 2019-07-25 한화테크윈 주식회사 감시 시스템의 영상 관리 장치 및 방법
US8699175B1 (en) * 2012-07-20 2014-04-15 Western Digital Technologies, Inc. Disk drive mapping low frequency write addresses to circular buffer write zone
WO2014192072A1 (ja) * 2013-05-28 2014-12-04 株式会社日立製作所 計算機、関連性算出方法及び記憶媒体
CN104658550A (zh) * 2013-11-19 2015-05-27 株式会社东芝 磁盘装置及其控制方法
US9436391B1 (en) * 2014-03-28 2016-09-06 Formation Data Systems, Inc. Efficient scalable I/O scheduling
US9129628B1 (en) 2014-10-23 2015-09-08 Western Digital Technologies, Inc. Data management for data storage device with different track density regions
CN105183368A (zh) * 2015-08-07 2015-12-23 中兴通讯股份有限公司 多种存储介质并存的系统及进行文件操作的方法和装置
TWI601059B (zh) * 2015-11-19 2017-10-01 慧榮科技股份有限公司 資料儲存裝置與資料儲存方法
US20170153842A1 (en) * 2015-12-01 2017-06-01 HGST Netherlands B.V. Data allocation in hard drives
KR102369797B1 (ko) * 2015-12-21 2022-03-03 한화테크윈 주식회사 영상 관리 시스템 및 영상 관리 장치
US10030986B2 (en) * 2016-06-29 2018-07-24 Whp Workflow Solutions, Inc. Incident response analytic maps
US10521143B2 (en) * 2017-03-23 2019-12-31 Netapp Inc. Composite aggregate architecture
KR102352491B1 (ko) * 2017-08-14 2022-01-18 삼성전자주식회사 안테나 및 안테나를 포함하는 전자 장치
EP4070200A4 (en) * 2019-12-03 2023-09-06 Micron Technology, Inc. CACHE MEMORY ARCHITECTURE FOR A STORAGE DEVICE

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304747A (ja) * 2006-05-10 2007-11-22 Nec Corp 計算機システム及びメモリアクセス方法
JP2007316995A (ja) * 2006-05-26 2007-12-06 Hitachi Ltd 記憶システム及びデータ管理方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01303547A (ja) * 1988-05-31 1989-12-07 Toshiba Corp 情報記憶制御システム
JPH06236241A (ja) * 1993-02-09 1994-08-23 Sharp Corp フラッシュメモリを用いたハードディスク装置
JPH07253929A (ja) * 1994-03-14 1995-10-03 Hitachi Ltd 半導体記憶装置
JPH07271526A (ja) * 1994-03-31 1995-10-20 Kawasaki Steel Corp 外部記憶装置
JPH096541A (ja) * 1995-06-16 1997-01-10 Matsushita Electric Ind Co Ltd 階層記憶装置
US6032224A (en) * 1996-12-03 2000-02-29 Emc Corporation Hierarchical performance system for managing a plurality of storage units with different access speeds
JPH1153261A (ja) * 1997-08-07 1999-02-26 Toshiba Corp データ記憶システム及び同システムに適用するキャッシュ制御方法
EP1061449A4 (en) * 1998-02-04 2005-12-21 Hitachi Ltd METHOD OF MANAGING ANEMATORY DISK, DISC STRUCTURE AND MEMORY
JP4863749B2 (ja) * 2006-03-29 2012-01-25 株式会社日立製作所 フラッシュメモリを用いた記憶装置、その消去回数平準化方法、及び消去回数平準化プログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007304747A (ja) * 2006-05-10 2007-11-22 Nec Corp 計算機システム及びメモリアクセス方法
JP2007316995A (ja) * 2006-05-26 2007-12-06 Hitachi Ltd 記憶システム及びデータ管理方法

Also Published As

Publication number Publication date
KR20100013166A (ko) 2010-02-09
US20100030987A1 (en) 2010-02-04
JP5619387B2 (ja) 2014-11-05
JP2010033578A (ja) 2010-02-12
US8291185B2 (en) 2012-10-16

Similar Documents

Publication Publication Date Title
KR101517761B1 (ko) 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템
KR101474344B1 (ko) 캐시 플러시 제어 방법 및 이를 이용한 데이터 저장 시스템
KR101636777B1 (ko) 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법
KR100801015B1 (ko) 하이브리드 하드 디스크 드라이브와 데이터 저장 방법
KR101890767B1 (ko) 주소 사상 정보 관리 방법 이를 적용한 저장 장치
KR101810932B1 (ko) 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 저장 장치, 컴퓨터 시스템, 네트워크를 통한 주소 사상 정보 관리 방법 및 컴퓨터로 읽을 수 있는 저장 매체
KR101854206B1 (ko) 라이트 방법 및 그 방법을 이용하는 저장 장치
US9063659B2 (en) Method and apparatus for data sector cluster-based data recording
US7463441B2 (en) Automatic data update method of data storage system and disk drive using the same
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
US8656097B2 (en) Selection of data storage locations based on one or more conditions
JP2008016023A (ja) 可変媒体特性を有する記憶媒体付オブジェクトベース記憶装置
KR20120121741A (ko) 데이터 리드 방법 및 이를 적용한 저장 장치
JP2005267497A (ja) データ記憶装置、その制御方法及び磁気ディスク記憶装置
US20120162809A1 (en) Magnetic disk drive and method of accessing a disk in the drive
KR100524989B1 (ko) 데이터 저장 시스템에서의 리트라이 개선 방법 및 이를이용한 디스크 드라이브
JP2011076707A (ja) 記録媒体のゾーンレイアウト設定方法、データ記録装置、ディスクドライブ及び記録媒体
KR20050081408A (ko) 데이터 저장 시스템에서의 적응적 데이터 액세스 제어방법 및 이를 이용한 디스크 드라이브
KR20070096081A (ko) 저장매체의 마스터 부트 레코드 복구 방법 및 이를 이용한디스크 드라이브
GB2381937A (en) Write method for a storage system including a dummy write operation
KR100660896B1 (ko) 벤더 특정 명령 실행 방법 및 이를 이용한 디스크 드라이브
KR100618835B1 (ko) 데이터 저장 시스템에서의 적응적 섹터 재 할당 방법 및이를 이용한 디스크 드라이브
KR100585165B1 (ko) 데이터 저장 장치 및 데이터 보호 방법
US8879192B1 (en) Information recording device and information recording method
KR20070115485A (ko) 캐쉬 버퍼 관리 방법 및 이를 이용한 디스크 드라이브

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180223

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee