KR101636777B1 - 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법 - Google Patents

하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법 Download PDF

Info

Publication number
KR101636777B1
KR101636777B1 KR1020080078142A KR20080078142A KR101636777B1 KR 101636777 B1 KR101636777 B1 KR 101636777B1 KR 1020080078142 A KR1020080078142 A KR 1020080078142A KR 20080078142 A KR20080078142 A KR 20080078142A KR 101636777 B1 KR101636777 B1 KR 101636777B1
Authority
KR
South Korea
Prior art keywords
storage device
data storage
data
controller
storage medium
Prior art date
Application number
KR1020080078142A
Other languages
English (en)
Other versions
KR20100019221A (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 KR1020080078142A priority Critical patent/KR101636777B1/ko
Priority to US12/538,286 priority patent/US9619178B2/en
Publication of KR20100019221A publication Critical patent/KR20100019221A/ko
Application granted granted Critical
Publication of KR101636777B1 publication Critical patent/KR101636777B1/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
    • 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/0662Virtualisation aspects
    • G06F3/0664Virtualisation aspects at device level, e.g. emulation of a storage device or system
    • 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/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0685Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1435Saving, restoring, recovering or retrying at system level using file system or storage system metadata
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0632Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 발명은 데이터 저장 장치 및 그 제어 방법에 관한 것으로서, 특히 복수의 저장 장치들로 구성된 하이브리드 저장 장치 및 그 제어 방법에 관한 것이다.
본 발명에 따른 하이브리드 저장 장치는 기록 방식이 상이한 복수의 저장 장치들 및, 상기 복수의 저장 장치들을 단일의 저장 장치로 통합하여 논리 블록 어드레스를 할당하고, 상기 할당된 논리 블록 어드레스에 근거하여 상기 복수의 저장 장치들을 액세스하도록 제어하는 레이드 컨트롤러를 포함함을 특징으로 한다.

Description

하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법{Hybrid storage device and method for assigning a logical block address thereof}
본 발명은 데이터 저장 장치 및 그 제어 방법에 관한 것으로서, 특히 복수의 저장 장치들로 구성된 하이브리드 저장 장치 및 그 제어 방법에 관한 것이다.
일반적으로, 데이터 저장 장치는 단일의 저장 장치로 구성되어 호스트 장치의 접속되어 호스트 장치의 명령에 따라서 데이터를 저장하거나 데이터를 읽어낸다.
최근에는 저장 용량을 증가시키거나 또는 데이터 처리 속도를 향상시키기 위하여 복수의 저장 장치들로 구성된 하이브리드 저장 장치가 개발되었다. 이와 같은 하이브리드 저장 장치에서 단순히 복수의 저장 장치들을 물리적으로만 결합하는 경우에는 자원의 낭비 및 성능을 향상시키는데 제약이 있었다.
따라서, 하이브리드 저장 장치에서 자원을 효율적으로 이용하고 성능을 향상시키기 위한 연구가 필요하게 되었다.
본 발명이 해결하고자 하는 과제는 복수의 저장 장치들을 물리적으로 구분되지 않는 단일의 저장 장치로 통합하여 관리하기 위한 하이브리드 저장 장치를 제공하는데 있다.
본 발명이 해결하고자 하는 다른 과제는 복수의 저장 장치들을 단일의 저장 장치로 통합하여 논리 블록 어드레스를 할당하는 데이터 저장 장치에서의 논리 블록 어드레스 할당 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 또 다른 과제는 데이터 저장 장치에서의 논리 블록 어드레스 할당 방법을 수행하는 프로그램 코드가 기록된 저장매체를 제공하는데 있다.
상기 과제를 달성하기 위한 본 발명의 일실시 예에 따른 하이브리드 저장 장치는 기록 방식이 상이한 복수의 저장 장치들 및, 상기 복수의 저장 장치들을 단일의 저장 장치로 통합하여 논리 블록 어드레스를 할당하고, 상기 할당된 논리 블록 어드레스에 근거하여 상기 복수의 저장 장치들을 액세스하도록 제어하는 레이드 컨트롤러를 포함함을 특징으로 한다.
상기 레이드 컨트롤러는 상기 복수의 저장 장치들에 설정된 데이터 전송 레이트 정보에 근거하여 데이터 전송 속도가 빠른 저장 장치 순으로 상위 논리 블록 어드레스를 할당하는 것이 바람직하다.
상기 복수의 저장 장치들은 비휘발성 저장 장치를 포함하는 것이 바람직하다.
상기 복수의 저장 장치들은 하드 디스크 드라이브 및 비휘발성 반도체 메모리 장치를 포함하고, 상기 레이드 컨트롤러는 상기 비휘발성 반도체 메모리 장치의 기록 영역에 상위 논리 블록 어드레스를 할당하고, 상기 하드 디스크 드라이브의 기록 영역에 하위 논리 블록 어드레스를 할당하는 것이 바람직하다.
상기 레이드 컨트롤러는 상기 비휘발성 반도체 메모리 장치의 기록 영역에 상위 논리 블록 어드레스를 할당하고, 상기 하드 디스크 드라이브의 기록 영역에는 상기 비휘발성 반도체 메모리 장치의 기록 영역에 할당된 마지막 논리 블록 어드레스의 다음 논리 블록 어드레스부터 순차적으로 할당하는 것이 바람직하다.
상기 레이드 컨트롤러는 상기 비휘발성 반도체 메모리 장치의 기록 영역에 포함된 물리적 메모리 블록 번호를 가상의 논리 블록 어드레스로 매핑시켜 논리 블록 어드레스를 할당하고, 상기 하드 디스크 드라이브의 기록 영역에 포함된 섹터들에 대한 위치 정보를 가상의 논리 블록 어드레스로 매핑시켜 논리 블록 어드레스를 할당하도록 설계하는 것이 바람직하다.
상기 레이드 컨트롤러는 상기 복수의 저장 장치들을 통합된 단일의 저장 장치로서 호스트 장치에 리포트하는 것이 바람직하다.
상기 레이드 컨트롤러는 상위 논리 블록 어드레스로 지정된 저장 장치의 시스템 파일 저장 영역에 저장된 정보들을 하위 논리 블록 어드레스로 지정된 저장 장치들의 초기 설정된 영역에 복사하도록 제어하는 것이 바람직하다.
상기 레이드 컨트롤러는 단일의 저장 장치만이 검색되고, 검색된 단일의 저장 장치의 지정된 시스템 파일 저장 영역에 시스템 파일이 저장되어 있지 않으면, 상기 검색된 단일의 저장 장치의 초기 설정된 영역에 저장되어 있는 시스템 파일을 상기 지정된 시스템 파일 저장 영역에 복사하고 나서 검색된 단일의 저장 장치에 새로운 논리 블록 어드레스를 할당하도록 제어하는 것이 바람직하다.
상기 레이드 컨트롤러는 단일의 저장 장치만이 검색되고, 색된 단일의 저장 장치의 지정된 시스템 파일 저장 영역에 시스템 파일이 저장되어 있으면, 상기 검색된 단일의 저장 장치에 새로운 논리 블록 어드레스를 할당하도록 제어하는 것이 바람직하다.
상기 하이브리드 저장 장치는 초기 설정된 인터페이스 규격에 따라서 상기 복수의 저장 장치들과 호스트 장치와의 송/수신 처리를 실행하는 단일의 호스트 인터페이스 회로를 더 포함하도록 설계하는 것이 바람직하다.
상기 복수의 저장 장치들의 회로 소자들을 단일의 인쇄 회로 기판 어셈블리에 포함되도록 배치하도록 설계하는 것이 바람직하다.
상기 레이드 컨트롤러와 상기 복수의 저장 장치들 중에서 적어도 하나의 저장 장치를 제어하는 저장 장치 컨트롤러를 통합하여 단일의 시스템 온 칩으로 구성하도록 설계하는 것이 바람직하다.
상기 다른 과제를 달성하기 위한 본 발명의 일실시 예에 따른 하이브리드 저장 장치에서의 논리 블록 어드레스 할당 방법은 초기 설정된 조건이 발생될 때마다 하이브리드 저장 장치에 포함된 저장 장치를 검색하는 단계, 상기 검색 결과 복수 의 저장 장치들이 검색된 경우에, 상기 검색된 복수의 저장 장치들을 단일의 저장 장치로 통합하여 논리 블록 어드레스를 할당하는 단계 및, 상기 할당된 논리 블록 어드레스에 관한 정보를 초기 설정된 저장 영역에 저장하는 단계를 포함함을 특징으로 한다.
상기 논리 블록 어드레스를 할당하는 단계에서 상위 논리 블록 어드레스로 지정된 저장 장치의 시스템 파일 저장 영역에 저장된 정보들을 하위 논리 블록 어드레스로 지정된 저장 장치들의 초기 설정된 영역에 백업용으로 복사하는 단계를 더 포함하는 것이 바람직하다.
상기 검색 결과 단일의 저장 장치가 검색된 경우에는 단일 동작 모드를 실행하고, 상기 단일 동작 모드는 검색된 단일의 저장 장치의 지정된 시스템 파일 저장 영역에 시스템 파일이 저장되어 있는지를 판단하는 단계, 상기 판단 결과 상기 지정된 시스템 파일 저장 영역에 시스템 파일이 저장되어 있지 않으면, 상기 검색된 단일의 저장 장치의 초기 설정된 영역에 백업용으로 저장되어 있는 시스템 파일을 상기 지정된 시스템 파일 저장 영역에 복사하는 단계 및, 상기 판단 결과 상기 지정된 시스템 파일 저장 영역에 시스템 파일이 저장되어 있거나 또는 상기 백업용 저장되어 있는 시스템 파일을 상기 지정된 시스템 파일 저장 영역에 복사하는 단계를 실행한 후에, 상기 검색된 단일의 저장 장치에 새로운 논리 블록 어드레스를 할당하는 단계를 포함함을 특징으로 한다.
상기 초기 설정된 조건은 상기 데이터 저장 시스템이 파워 오프 상태에서 파워 온 상태로 천이되는 조건 또는 리세트되는 조건을 포함하는 것이 바람직하다.
상기 논리 블록 어드레스를 할당하는 단계는 상기 검색된 복수의 저장 장치들 중 어느 하나의 저장 장치에 통합된 논리 블록 어드레스가 할당되어 있지 않은 경우 또는 논리 블록 어드레스가 할당된 저장 장치가 검색되지 않은 경우에 실행하는 것이 바람직하다.
상기 논리 블록 어드레스를 할당하는 단계는 상기 복수의 저장 장치들에 설정된 데이터 전송 레이트 정보에 근거하여 데이터 전송 속도가 빠른 저장 장치 순으로 상위 논리 블록 어드레스를 할당하는 것이 바람직하다.
상기 또 다른 기술적 과제를 해결하기 위하여 본 발명은 상기 데이터 저장 장치에서의 논리 블록 어드레스 할당 방법을 컴퓨터에서 실행시키기 위한 프로그램 코드를 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공한다.
본 발명에 의하면 복수의 저장 장치들을 단일의 저장 장치로 통합하여 논리 블록 어드레스를 할당함으로써, 특성이 다른 복수의 저장 장치들의 단점을 보완할 수 있는 효과가 발생되고, 단일의 호스트 인터페이스를 통하여 데이터 송/수신을 할 수 있는 효과가 발생된다.
그리고, 데이터 전송 레이트가 높은 저장 장치를 상위 LBA에 할당함으로써, 하이브리드 저장 장치에서 전반적인 성능을 향상시킬 수 있는 효과가 발생된다. 즉, 상대적으로 데이터 전송 레이트가 낮은 하드 디스크 드라이브의 랜덤 액세스 속도를 향상시킬 수 있는 효과가 발생된다.
또한, 하이브리드 저장 장치에 포함된 복수의 저장 장치들의 회로 소자들을 단일의 인쇄 회로 기판 어셈블리에 배치하고, 일부 회로들을 SOC으로 설계함으로써, 제품의 사이즈를 줄일 수 있는 효과가 발생되고, 또한 제품 관리 측면에서도 편리한 효과가 발생되며, 신뢰성 또한 향상시킬 수 있는 효과가 발생된다. 뿐만 아니라 제품 생산 가격을 낮출 수 있는 효과도 발생된다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시 예를 예시하는 첨부 도면 및 도면에 기재된 내용을 참조하여야 한다.
이하 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예에 대하여 상세히 설명하기로 한다.
도 1은 본 발명의 일실시 예에 따른 데이터 저장 시스템의 구성도이다.
도 1에 도시된 바와 같이, 본 발명의 일실시 예에 따른 데이터 저장 시스템은 호스트 장치(110) 및 하이브리드 저장 장치(200)로 구성된다.
세부적으로, 하이브리드 저장 장치(200)는 호스트 인터페이스(210), 레이드 컨트롤러(220), 제1저장 장치(230) 및 제2저장 장치(240)로 구성된다.
여기에서, 레이드 컨트롤러(Raid Controller; 220)는 중앙처리장치(CPU; 220-1)와 메모리(220-2)로 구성된다. 중앙처리장치(220-1)는 하이브리드 저장 장치를 총괄적으로 제어하는 수단으로서 명령어의 해석과 자료의 연산, 비교 등의 일련의 처리를 제어하는 수단이다. 메모리(220-2)에는 하이브리드 저장 장치를 제어하는데 필요한 프로그램들 및 데이터들이 저장되어 있으며, 특히 도 7의 흐름도를 실 행시키기 위한 프로그램들 및 데이터들도 저장되어 있다.
제1저장 장치(230) 및 제2저장 장치(240)는 전원이 차단되더라도 기록매체에 저장된 데이터를 잃지 않는 비휘발성 저장 장치들이며, 제1,2저장 장치의 기록 방식은 상이하다. 본 발명의 일실시 예에서는 제1저장 장치(230)를 하드 디스크 드라이브로 구현하였으며, 제2저장 장치(240)를 비휘발성 반도체 메모리 장치로 구현하였다. 본 발명의 일실시 예에서는 설명의 편의를 위하여 하이브리드 저장 장치(200)에 2개의 저장 장치가 포함되는 것으로 한정하여 설명하였으나, 본 발명은 이에 한정되지 않고 3개 이상의 복수의 저장 장치들을 포함하도록 설계할 수도 있음은 당연한 사실이다.
제2저장 장치(240)는 일예로서 반도체 비휘발성 메모리인 플래시 메모리, PRAM(Phase change RAM), FRAM(Ferroelectric RAM), MRAM(Magnetic RAM) 등으로 구현될 수 있다.
호스트 인터페이스(210)는 일예로서 IDE(Integrated Drive Electronics) 인터페이스 규격에 따라서 호스트 장치(100)와의 데이터 송/수신 처리를 실행한다. 본 발명에서는 단일의 호스트 인터페이스(210)를 통하여 하이브리드 저장 장치(200)에 포함된 복수의 저장 장치들과 데이터 송/수신을 실행한다.
레이드 컨트롤러(220)의 중앙처리장치(220-1)는 하이브리드 저장 장치(200)에 포함된 제1저장 장치(230)와 제2저장 장치(240)를 단일의 저장 장치로 통합하여 논리 블록 어드레스(Logical Block Address)를 할당하고, 할당된 논리 블록 어드레스에 근거하여 저장 장치들을 액세스하도록 제어한다. 또한, 호스트 장치(100)에 제1저장 장치(230)와 제2저장 장치(240)를 단일의 저장 장치로 리포트한다.
제1저장 장치(230)와 제2저장 장치(240)를 단일의 저장 장치로 통합하여 논리 블록 어드레스(Logical Block Address)를 할당하는 방법에 대하여 구체적으로 설명하고자 한다.
우선, 호스트 장치(100)가 윈도우 계열의 오퍼레이팅 시스템 프로그램에 따라 동작하는 경우, 도 4에 도시된 바와 같이 오퍼레이팅 시스템은 호스트 장치에 연결된 저장 장치의 상위 논리 블록 어드레스(Logical Block Address; LBA)에 저장된다.
도 4를 참조하면, 호스트 장치(100)인 컴퓨터의 저장 장치로 단일의 하드 디스크 드라이브를 이용하는 경우에, Window XP 및 Window Vista 사양에서의 OS, Office XP, Acrobat Reader 및 Photoshop CS3 프로그램들이 하드 디스크 드라이브의 기록 영역에 저장된 상태를 보여준다.
도 4에 따르면, OS 프로그램 및 주요 어플리케이션 프로그램들이 하드 디스크 드라이브의 상위 LBA 영역에 저장된다는 사실을 알 수 있다.
OS 프로그램, 어플리케이션 프로그램 및 데이터 파일을 비휘발성 반도체 메모리 장치와 하드 디스크 드라이브로 구성된 하이브리드 저장 장치에 저장하는 경우에, 해당 정보들이 어느 저장 장치에 저장되어 있는가에 따른 데이터 전송 속도를 측정한 결과를 도 5에 도시하였다. 도 5는 5MB 데이터를 전송받는데 소요되는 시간(sec)을 보여준다.
도 5를 참조하면, OS 프로그램과 어플리케이션 프로그램을 데이터 전송 레이 트가 빠른 비휘발성 반도체 메모리 장치에 저장되어 있는 케이스 #1 및 #2의 경우에, 데이터 전송 속도가 가장 빠르다는 사실을 알 수 있다. 그리고, 데이터 전송 속도는 데이터 파일이 저장된 장치에는 큰 영향을 받지 않는다는 것을 알 수 있다.
도 4 및 도 5로부터 하이브리드 저장 장치에서 데이터 전송 레이트가 높은 빠른 속도의 저장 장치에 상위 LBA를 할당하도록 설계하는 것이 성능을 최적화시키는데 효과적이라는 사실을 알 수 있다.
따라서, 본 발명에서는 하이브리드 저장 장치에서 복수의 저장 장치들을 단일의 저장 장치로 통합하여 데이터 전송 레이트가 높은 저장 장치 순으로 상위 논리 블록 어드레스를 할당하는 방안을 제안한다.
즉, 하이브리드 저장 장치(200)에 포함된 제1저장 장치(230)를 하드 디스크 드라이브로 구현하고, 제2저장 장치(240)를 비휘발성 반도체 메모리 장치로 구현하는 경우에, 도 6과 같이 논리 블록 어드레스를 할당한다.
도 6을 참조하면, 제1저장 장치(230)에 비하여 데이터 전송 레이트가 높은 제2저장 장치(240)의 기록 영역에 상위 LBA를 할당하고, 제2저장 장치(240)의 기록 영역에 할당된 마지막 LBA에 이어서 연속적으로 제1저장 장치(230)의 기록 영역에 논리 블록 어드레스를 할당한다.
다시 도 1을 참조하면, 레이드 컨트롤러(220)의 중앙처리장치(220-1)는 제1저장 장치(230) 및 제2저장 장치(240)에 각각 설정되어 있는 데이터 전송 레이트 정보를 읽어내어 상대적으로 빠른 속도의 저장 장치에 상위 LBA를 할당하고, 늦은 속도의 저장 장치에 하위 LBA를 할당하고, 각 저장 장치들에 할당된 LBA에 관한 정 보를 메모리(220-2)에 저장한 후에 호스트 인터페이스(210)를 통하여 단일 저장 장치로 호스트 장치(100)에 리포트한다.
그리고, 컨트롤러(220)의 중앙처리장치(220-1)는 상위 LBA로 지정된 제2저장 장치(240)의 시스템 파일 영역에 저장된 MBR(Master Boot Record) 정보를 포함하는 시스템 파일 정보들을 하위 LBA로 지정된 제1저장 장치(230)의 특정 영역에 복사하도록 제어한다.
따라서, 호스트 장치(100)에서는 하이브리드 저장 장치(200)에 포함된 제1저장 장치(230) 및 제2저장 장치(240)를 단일의 저장 장치로 인식한다. 이로 인하여, 단일의 호스트 인터페이스(210)를 통하여 제1저장 장치(230) 및 제2저장 장치(240)와의 데이터 송/수신이 가능하게 되고, 데이터 전송 레이트가 상대적으로 낮은 제1저장 장치(230)의 랜덤 액세스 속도를 향상시킬 수 있게 된다.
도 2는 도 1에 도시된 데이터 저장 시스템에서 제1저장 장치(230) 및 제2저장 장치(240)를 각각 하드 디스크 드라이브 및 비휘발성 반도체 메모리 장치로 설정한 경우의 세부 구성도이다. 본 발명에서 비휘발성 반도체 메모리 장치를 비휘발성 메모리 장치 또는 NV 메모리 장치라고도 칭하였다.
도 2에 도시된 바와 같이, 제1저장 장치(230)는 버퍼1(230-1), HDD 컨트롤러(230-2), 구동부(230-3), 리드/라이트(R/W) 채널 회로(230-4) 및 헤드 디스크 어셈블리(HDA; 230-5)로 구성되고, 제2저장 장치(240)는 버퍼2(240-1), NV 메모리 컨트롤러(240-2) 및 NV 메모리(240-3)로 구성된다.
레이드 컨트롤러(220)는 도 7과 같은 흐름도에 따라 하이브리드 저장 장치에 LBA를 할당한다.
레이드 컨트롤러(220)는 저장 장치 검색 조건이 발생되었는지를 판단한다(S710). 일예로서 저장 장치 검색 조건은 하이브리드 저장 장치가 파워 오프 상태에서 파워 온 상태로 천이되거나 또는 리세트되는 조건으로 결정할 수 있다.
단계710(S710)의 판단 결과 저장 장치 검색 조건이 발생된 경우에, 레이드 컨트롤러(220)는 하이브리드 저장 장치에 포함된 저장 장치들을 검색한다(S720).
단계720(S720)의 검색 결과 복수의 저장 장치들이 검색되었는지를 판단한다(S730).
단계730(S730)의 판단 결과 복수의 저장 장치들이 검색된 경우에는, 레이드 컨트롤러(220)는 검색된 복수의 저장 장치들을 단일의 저장 장치로 통합하여 LBA를 할당한다(S740). 세부적으로, 데이터 전송 레이트가 높은 저장 장치 순으로 순차적으로 상위 논리 블록 어드레스를 할당한다.
즉, 레이드 컨트롤러(220)는 HDD 컨트롤러(230-2)의 내부 메모리 또는 하드 디스크에 저장되어 있는 하드 디스크 드라이브의 데이터 전송 레이트 정보와 NV 메모리 컨트롤러(240-2)의 내부 메모리 또는 NV 메모리(240-3)에 저장되어 있는 NV 메모리 장치(240)의 데이터 전송 레이트 정보를 읽어낸 후에, 데이터 전송 속도가 상대적으로 빠른 저장 장치 순으로 순차적으로 상위 논리 블록 어드레스를 할당한다.
이에 따라서, 도 6에 도시된 바와 같이, 레이드 컨트롤러(220)는 NV 메모리 장치를 상위 LBA로 매핑시킨다. 즉, 도 8에 도시된 바와 같이, NV 메모리 장 치(240)의 물리적 메모리 블록 번호(PBN)들을 웨어-카운트(Wear-Count) 기준으로 분류한 후에, 모든 물리적 메모리 블록들을 가상의 LBA로 매핑시킨다.
그리고 나서, 레이드 컨트롤러(220)는 NV 메모리 장치(240)에 할당된 마지막 LBA에 이어서 하드 디스크 드라이브(230)를 하위 LBA로 매핑시킨다. 즉, 도 9에 도시된 바와 같이, 3차원적인 주소 지정 방식인 CHS 값들을 무시하고, 하드 디스크의 모든 기록 영역을 섹터 기준의 2차원적으로 가상의 LBA로 매핑시킨다.
이에 따라서, 레이드 컨트롤러(220)는 NV 메모리 장치(240)와 하드 디스크 드라이브(230)를 가상의 단일의 저장 장치로 통합하여 LBA를 도 6과 같이 할당하게 된다.
그리고, 레이드 컨트롤러(220)는 상위 LBA로 지정된 NV 메모리 장치(240)에 지정된 시스템 파일 영역에 저장된 MBR(Master Boot Record) 정보를 포함하는 시스템 파일들을 하드 디스크 드라이브(230)의 특정 영역에 복사해 놓도록 제어한다.
단계730(S730)의 판단 결과 단일의 저장 장치가 검색된 경우에는, 레이드 컨트롤러(220)는 단일 동작 모드로 전환하여 검색된 단일의 저장 장치에 대하여 LBA를 할당한다(S750). 단계750(S750)의 세부적인 동작은 도 12를 참조하여 설명하기로 한다.
우선, 레이드 컨트롤러(220)는 검색된 단일의 저장 장치만을 동작시키는 단일 동작 모드로 전환한다(S751).
그리고, 레이드 컨트롤러(220)는 검색된 단일의 저장 장치의 시스템 파일을 저장하도록 지정된 영역에 MBR 정보를 포함하는 시스템 파일들이 저장되어 있는지 를 판단한다(S752).
단계752(S752)의 판단 결과 검색된 단일의 저장 장치의 시스템 파일을 저장하도록 지정된 영역에 시스템 파일들이 저장되어 있지 않는 경우에는 검색된 저장 장치의 특정 영역에 백업용으로 복사해 놓은 시스템 파일들을 시스템 파일을 저장하도록 지정된 영역에 복사한다(S753). 이에 따라서, 검색된 단일의 저장 장치에서 오퍼레이팅 시스템이 정상적으로 동작하도록 복원된다.
단계752(S752)의 판단 결과 검색된 단일의 저장 장치의 시스템 파일을 저장하도록 지정된 영역에 시스템 파일들이 저장되어 있는 경우 또는 단계753(S753)을 실행하여 오퍼레이팅 시스템을 정상적으로 복원시킨 후에 검색된 단일의 저장 장치에 새로운 LBA를 할당한다.
따라서, 하이브리드 저장 장치를 구성하는 복수의 저장 장치들 중에서 하나의 저장 장치만이 정상적으로 검색된 경우에도 해당 저장 장치에만 LBA를 할당함으로써, 하이브리드 저장 장치는 데이터 저장 장치로서의 역할을 정상적으로 수행할 수 있게 된다.
단계740(S740) 또는 단계750(S750)을 마친 후에, 레이드 컨트롤러(220)는 하이브리드 저장 장치에 LBA 할당 정보를 레이드 컨트롤러(220)의 메모리(220-1) 또는 초기 설정된 LBA에 대응되는 저장 영역에 저장한다(S760).
그리고 나서, 레이드 컨트롤러(220)는 호스트 인터페이스(210)를 통하여 호스트 장치(100)에 단일의 저장 장치로 리포트한다.
위에서, 레이드 컨트롤러(220)는 검색된 복수의 저장 장치들 중 어느 하나의 저장 장치에 통합된 논리 블록 어드레스가 할당되어 있지 않은 경우 또는 논리 블록 어드레스가 할당된 저장 장치가 검색되지 않은 경우에만, 논리 블록 어드레스를 할당하도록 설계할 수도 있다.
도 2에 도시된 헤드 디스크 어셈블리(230-5)의 세부 구성을 도 3에 도시하였다.
헤드 디스크 어셈블리(230-5)는 스핀들 모터(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)로 구성되어 있다. 도 7과 같은 흐름도에 따라서 디스크(12)의 기록 가능한 영역에는 논리 블록 어드레스가 할당된다. 하드디스크 드라이브에서 논리 블록 어드레스는 실린더/헤드/섹터 정보로 변환되어 디스크(12)의 기록 영역이 지정된다. 변환기(16)는 다른 트랙에 있는 정보를 읽거나 기록하기 위하여 디스크(12) 표면을 가로질러 이동된다.
다음으로, 도 2 및 도 3을 참조하여 하이브리드 저장 장치에서의 데이터 리드 및 데이터 라이트 동작에 대하여 설명하기로 한다.
우선, 리드 모드 동작에 대하여 설명하기로 한다.
호스트 인터페이스(210)를 통하여 리드 커맨드가 수신되면, 레이드 컨트롤러(220)는 하이브리드 저장 장치(200)에 저장되어 있는 LBA 할당 정보를 참조하여 수신된 리드 커맨드에서 지정하는 논리 블록 어드레스들이 하이브리드 저장 장치(200)에 포함된 저장 장치들 중에서 어느 저장 장치에 할당되어 있는지를 판단한다.
리드 커맨드에서 지정하는 논리 블록 어드레스들이 제1저장 장치(230)인 하드 디스크 드라이브에 할당되어 있는 경우에는, 레이드 컨트롤러(220)는 하드 디스크 드라이브를 선택하여 데이터 리드 모드를 실행시킨다.
즉, HDD 컨트롤러(230-2)는 LBA 할당 정보를 참조하여 리드 커맨드에서 지정하는 논리 블록 어드레스에 대응되는 CHS 값을 산출하고, 산출된 CHS 값에 대응되는 디스크(12)의 목표 트랙으로 변환기(16)를 이동시키기 위한 제어신호들을 구동부(230-3)로 출력한다.
구동부(230-3)는 HDD 컨트롤러(230-2)로부터 입력되는 제어신호들에 근거하여 디스크(12)를 회전시키는 스핀들 모터(14)에 인가되는 구동 전류를 생성시키고, 변환기(16)를 이동시키는 보이스 코일 모터(30)에 인가되는 구동 전류를 생성시킨다.
변환기(16)가 목표 트랙에 도달되면, 산출된 CHS 값에 근거하여 선택된 변환기(16)에 의하여 디스크(12)의 목표 트랙의 섹터 위치로부터 읽어낸 전기적인 신호를 리드/라이트 채널 회로(230-4)에서 증폭하고, 디지털 신호로 부호화시킨 후에, 스트림 데이터로 변환하여 버퍼1(230-1)에 저장한다. 그리고 나서, 레이드 컨트롤러(220)는 버퍼1(320-1)에 저장된 데이터를 순차적으로 읽어내어 호스트 인터페이스(210)를 통하여 호스트 장치로 전송하도록 제어한다.
만일, 리드 커맨드에서 지정하는 논리 블록 어드레스들이 제2저장 장치(240)인 NV 메모리 장치에 할당되어 있는 경우에는, 레이드 컨트롤러(220)는 NV 메모리 장치를 선택하여 데이터 리드 모드를 실행시킨다.
즉, NV 메모리 컨트롤러(240-2)는 LBA 할당 정보를 참조하여 리드 커맨드에서 지정하는 논리 블록 어드레스에 매핑되는 물리적 메모리 블록 번호(PBN)를 산출하고, 산출된 물리적 메모리 블록 번호에 대응되는 NV 메모리(240-3)의 저장 위치에 저장된 데이터를 읽어내어 버퍼2(240-1)에 저장하도록 제어한다. 그리고 나서, 레이드 컨트롤러(220)는 버퍼2(240-1)에 저장되어 있는 데이터를 순차적으로 읽어내어 호스트 인터페이스(210)를 통하여 호스트 장치로 전송하도록 제어한다.
다음으로, 라이트 모드 동작에 대하여 설명하기로 한다.
호스트 인터페이스(210)를 통하여 라이트 커맨드가 수신되면, 레이드 컨트롤러(220)는 하이브리드 저장 장치(200)에 저장되어 있는 LBA 할당 정보를 참조하여 수신된 라이트 커맨드에서 지정하는 논리 블록 어드레스들이 하이브리드 저장 장치에 포함된 저장 장치들 중에서 어느 저장 장치에 할당되어 있는지를 판단한다.
라이트 커맨드에서 지정하는 논리 블록 어드레스들이 제1저장 장치(230)인 하드 디스크 드라이브에 할당되어 있는 경우에는, 레이드 컨트롤러(220)는 하드 디스크 드라이브를 선택하여 데이터 라이트 모드를 실행시킨다.
이에 따라서, HDD 컨트롤러(230-2)는 LBA 할당 정보를 참조하여 라이트 커맨드에서 지정하는 논리 블록 어드레스에 대응되는 CHS 값을 산출하고, 산출된 CHS 값에 대응되는 디스크(12)의 목표 트랙으로 변환기(16)를 이동시키도록 제어한다.
그리고 나서, 호스트 인터페이스(210)를 통하여 수신되는 데이터를 버퍼1(230-1)에 일시적으로 저장한 후에, HDD 컨트롤러(230-2)의 제어에 따라 버퍼1(230-1)로부터 순차적으로 데이터를 읽어내어 리드/라이트 채널 회로(230-4)로 출 력한다. 그러면, 기록/판독 채널(230-4)에서 디스크(12)의 기록 채널에 적합한 바이너리 데이터 스트림으로 변환시키고, 이를 기록 전류로 변환하여 변환기(16)를 통하여 디스크(12)에 기록한다.
만일, 라이트 커맨드에서 지정하는 논리 블록 어드레스들이 제2저장 장치(240)인 NV 메모리 장치에 할당되어 있는 경우에는, 레이드 컨트롤러(220)는 NV 메모리 장치를 선택하여 데이터 라이트 모드를 실행시킨다.
즉, NV 메모리 컨트롤러(240-2)는 LBA 할당 정보를 참조하여 라이트 커맨드에서 지정하는 논리 블록 어드레스에 매핑되는 물리적 메모리 블록 번호(PBN)를 산출한다.
호스트 인터페이스(210)를 통하여 수신되는 데이터는 버퍼2(240-1)에 일시적으로 저장된다. 그리고 나서, NV 컨트롤러(240-2)의 제어에 따라 버퍼2(240-1)로부터 순차적으로 데이터를 읽어내어, 읽어낸 데이터는 위에서 산출된 물리적 메모리 블록 번호에 대응되는 NV 메모리(240-3)의 저장 위치에 기록한다.
위와 같이, 하이브리드 저장 장치에 포함된 하드 디스크 드라이브와 NV 메모리 장치는 가상의 단일 저장 장치로서 동작하게 된다.
다음으로, 본 발명에서 제안하는 하이브리드 저장 장치에서 자원을 효율적으로 이용하는 방안에 대하여 설명하기 한다.
도 10은 본 발명에서 일실시 예로서 제안하는 하이브리드 저장 장치의 부품 배치 도면이다.
도 10에 도시된 바와 같이, 하이브리드 저장 장치(200)의 회로 부품들을 단 일의 인쇄 회로 기판 어셈블리(Printed Circuit Board Assembly; PCBA, 1000)에 배치하도록 설계하는 방안이다.
즉, 단일의 호스트 인터페이스 단자(210A), 호스트 인터페이스 회로가 내장된 레이드 컨트롤러(220A), 제1저장 장치(230)인 하드 디스크 드라이브를 구성하는 버퍼1(230-1), HDD 컨트롤러(230-2), 구동부(230-3), 리드/라이트 채널 회로(230-4)와 제2저장 장치(240)인 NV 메모리 장치(240)를 구성하는 버퍼2(240-1), NV 메모리 컨트롤러(240-2), NA 메모리(240-3)를 단일의 PCBA(1000)에 배치한다.
다시 말해, 기구 구성 수단인 헤드 디스크 어셈블리(230-5)를 제외하고, 하이브리드 저장 장치(200)에 포함된 회로 구성 수단들을 단일의 PCBA(1000)에 배치한다.
이와 같이, 하이브리드 저장 장치(200)의 회로 부품들을 단일의 PCBA(1000)에 배치함으로써, 제품의 사이즈를 줄일 수 있다. 또한, 하이브리드 저장 장치(200)에 포함된 저장 장치들을 물리적으로 단일 제품으로 구성하여 관리할 수 있게 된다. 이로 인하여, 하이브리드 저장 장치(200)를 구성하는 저장 장치들을 각각의 PCBA에 배치하는 경우에 비하여 제품의 가격을 낮을 수 있는 장점이 있다.
도 11은 본 발명에서 다른 실시 일 예로서 제안하는 하이브리드 저장 장치의 부품 배치 도면이다.
하이브리드 저장 장치(200)의 회로 부품들을 단일의 인쇄 회로 기판 어셈블리(Printed Circuit Board Assembly; PCBA, 1000)에 배치하도록 설계하는 것은 도 10에서 제안한 방식과 동일하다.
다만, 도 11에서는 호스트 인터페이스 회로, NV 메모리 컨트롤러(240-2)와 버퍼2(240-1)를 레이드 컨트롤러(220)에 통합하여 단일의 시스템 온 칩(SOC; 220B)으로 설계한다는 점에서 도 10의 배치와 상이하다.
도 11을 참조하면, 기구 구성 수단인 헤드 디스크 어셈블리(230-5)를 제외하고 하이브리드 저장 장치(200)에 포함된 회로 구성 수단들을 단일의 PCBA(1000)에 배치한다. 여기에, 추가적으로 단일의 PCBA(1000)에 포함된 레이드 컨트롤러(220), NV 메모리 컨트롤러(240-2), 버퍼2(240-1) 및 호스트 인터페이스 회로를 단일의 SOC(220B)에 포함되도록 설계한다.
참고적으로, 단일의 SOC(220B)에 포함되는 회로는 위에서 언급한 예에 제한되지 않고 다양하게 변형할 수 있다. 경우에 따라서는 HDD 컨트롤러(230-2)와 버퍼 1(230-1)도 단일의 SOC(220B)에 편입되도록 설계할 수도 있다.
이와 같이 설계하면, 제품의 사이즈를 더욱 줄일 수 있게 되며, 부품 수가 줄어들어 신뢰성을 높일 수 있게 된다.
본 발명은 방법, 장치, 시스템 등으로서 실행될 수 있다. 소프트웨어로 실행될 때, 본 발명의 구성 수단들은 필연적으로 필요한 작업을 실행하는 코드 세그먼트들이다. 프로그램 또는 코드 세그먼트들은 프로세서 판독 가능 매체에 저장되어 질 수 있다. 프로세서 판독 가능 매체는 정보를 저장 또는 전송할 수 있는 어떠한 매체도 포함한다. 프로세서 판독 가능 매체의 예로는 전자 회로, 반도체 메모리 소자, ROM, 플레쉬 메모리, 이레이져블 ROM(EROM : Erasable ROM), 플로피 디스크, 광 디스크, 하드 디스크, 광 섬유 매체, 무선 주파수(RF) 망, 등이 있다. 컴퓨터 데이터 신호는 전자 망 채널, 광 섬유, 공기, 전자계, RF 망, 등과 같은 전송 매체 위로 전파될 수 있는 어떠한 신호도 포함된다.
첨부된 도면에 도시되어 설명된 특정의 실시 예들은 단지 본 발명의 예로서 이해되어 지고, 본 발명의 범위를 한정하는 것이 아니며, 본 발명이 속하는 기술 분야에서 본 발명에 기술된 기술적 사상의 범위에서도 다양한 다른 변경이 발생될 수 있으므로, 본 발명은 보여지거나 기술된 특정의 구성 및 배열로 제한되지 않는 것은 자명하다.
도 1은 본 발명의 일실시 예에 따른 데이터 저장 시스템의 구성도이다.
도 2는 도 1의 세부 블록 구성도이다.
도 3은 도 2에 도시된 헤드 디스크 어셈블리의 평면도이다.
도 4는 컴퓨터 시스템에서 OS 및 어플리케이션 프로그램들이 저장되는 LBA 영역을 도시한 것이다.
도 5는 이종 저장 장치에서의 OS 프로그램, 어플리케이션 프로그램 및 데이터 파일이 저장되는 위치에 따른 데이터 전송 속도를 측정한 결과를 도시한 것이다.
도 6은 본 발명에서 제안하는 하이브리드 저장 장치에서의 논리 블록 어드레스 할당 방법을 도식적으로 보여주는 도면이다.
도 7은 본 발명의 일실시 예에 따른 하이브리드 저장 장치에서의 논리 블록 어드레스 할당 방법의 흐름도이다.
도 8은 본 발명의 일실시 예에 따른 NV 메모리 장치에서의 LBA 할당 방법을 도식적으로 보여주는 도면이다.
도 9는 본 발명의 일실시 예에 따른 하드 디스크 드라이브에서의 LBA 할당 방법을 도식적으로 보여주는 도면이다.
도 10은 본 발명의 일실시 예에 따른 하이브리드 저장 장치의 부품 배치 설계 방법을 도식적으로 보여주는 도면이다.
도 11은 본 발명의 다른 실시 예에 따른 하이브리드 저장 장치의 부품 배치 설계 방법을 도식적으로 보여주는 도면이다.
도 12는 도 7의 단계750(S750)의 상세한 흐름도이다.

Claims (31)

  1. 명령들을 저장하는 메모리 디바이스로서,
    상기 명령들은 컴퓨터에 의해 실행될 때,
    설정 조건(set condition)이 발생할 때 데이터 저장 디바이스 내에 포함된 제 1 데이터 저장 장치 및 하나 또는 그 초과의 제 2 데이터 저장 장치들 중 적어도 하나를 탐색하고 검출하는 단계;
    상기 제 1 데이터 저장 장치에 제 1 세트의 로직 블록 어드레스들을 할당하는 단계;
    상기 하나 또는 그 초과의 제 2 데이터 저장 장치들에 제 2 세트의 로직 블록 어드레스들을 할당하는 단계 ― 상기 제 1 데이터 저장 장치 및 상기 하나 또는 그 초과의 제 2 데이터 저장 장치들은 순차적으로 어드레싱된 단일 저장 장치로서 액세스됨 ―;
    상기 제 1 데이터 저장 장치의 제 1 시스템 파일 영역에 저장된 시스템 파일을 상기 하나 또는 그 초과의 제 2 데이터 저장 장치들의 특정 영역에 백-업 데이터로서 카피하는 단계; 및
    상기 시스템 파일이 상기 제 1 데이터 저장 장치 내에서 검출되지 않을 때 상기 특정 영역으로부터의 상기 시스템 파일을 상기 하나 또는 그 초과의 제 2 데이터 저장 장치들의 제 2 시스템 파일 영역으로 카피하는 단계
    를 포함하는 방법을 수행하는,
    명령들을 저장하는 메모리 디바이스.
  2. 제 1 항에 있어서,
    설정 조건이 발생할 때 상기 제 1 데이터 저장 장치 및 상기 하나 또는 그 초과의 제 2 데이터 저장 장치들을 검출하는 단계;
    상기 제 1 데이터 저장 장치 및 상기 하나 또는 그 초과의 제 2 데이터 저장 장치들 중 오직 하나만이 검출될 때, 모드에 진입하는 단계를 더 포함하고,
    상기 모드에 진입하는 단계는:
    상기 시스템 파일이, 검출된 저장 장치의 시스템 파일 영역에 저장되어 있는지 여부를 결정하는 단계;
    상기 시스템 파일이 상기 검출된 저장 장치의 상기 시스템 파일 영역에 저장되지 않은 것으로 결정되는 경우, 상기 검출된 저장 장치의 상기 특정 영역에 저장된 상기 시스템 파일을 상기 시스템 파일 영역으로 카피하는 단계; 및
    검출되지 않은 저장 장치에 이전에 할당된 로직 블록 어드레스들에 기초하여 그리고 상기 시스템 파일이 상기 시스템 파일 영역으로 카피되었는지 여부에 기초하여, 상기 검출된 저장 장치에 하나 또는 그 초과의 로직 블록 어드레스들을 할당하거나 또는 재할당하는 단계를 포함하는,
    명령들을 저장하는 메모리 디바이스.
  3. 제 2 항에 있어서,
    상기 설정 조건은, 상기 데이터 저장 디바이스가 전력 오프 상태에서 전력 온 상태로 변경되는 조건을 포함하는,
    명령들을 저장하는 메모리 디바이스.
  4. 제 2 항에 있어서,
    상기 설정 조건은, 상기 데이터 저장 디바이스가 리셋되는 조건을 포함하는,
    명령들을 저장하는 메모리 디바이스.
  5. 제 1 항에 있어서,
    상기 할당하는 단계는, 상기 제 2 세트의 로직 블록 어드레스들의 첫 번째 어드레스가 상기 제 1 세트의 로직 블록 어드레스들의 마지막 어드레스의 다음 어드레스가 되도록, 비-휘발성 반도체 메모리 장치의 저장 영역들에 상기 제 1 세트의 로직 블록 어드레스들을 할당하고, 후속하여 하드 디스크 드라이브의 저장 영역들에 상기 제 2 세트의 로직 블록 어드레스들을 할당하는 단계를 포함하는,
    명령들을 저장하는 메모리 디바이스.
  6. 제 1 항에 있어서,
    상기 제 1 데이터 저장 장치는 제 1 저장 용량 및 제 1 액세스 데이터 레이트를 가지며,
    상기 하나 또는 그 초과의 제 2 데이터 저장 장치들은, 상기 제 1 저장 용량보다 큰 제 2 저장 용량 및 상기 제 1 액세스 데이터 레이트 보다 작은 제 2 액세스 데이터 레이트를 가지며,
    상기 방법은:
    상기 제 1 데이터 저장 장치의 할당된 마지막 논리 블록 어드레스가 N인 경우, 상기 제 2 데이터 저장 장치의 첫 번째 할당된 논리 블록 어드레스가 N+1인 것을 더 포함하는,
    명령들을 저장하는 메모리 디바이스.
  7. 제 1 항에 있어서,
    상기 방법은:
    상기 제 1 데이터 저장 장치 및 상기 하나 또는 그 초과의 제 2 데이터 저장 장치들 중 오직 하나만이 검출되는 경우,
    상기 시스템 파일이 상기 시스템 파일 영역에 저장되지 않을 때, 상기 검출된 데이터 저장 장치의 특정 영역에 저장된 상기 시스템 파일을 상기 검출된 데이터 저장 장치의 시스템 파일 영역으로 카피하고, 그리고 새로운 논리 블록 어드레스들을 상기 검출된 데이터 저장 장치에 할당하는 단계를 더 포함하는,
    명령들을 저장하는 메모리 디바이스.
  8. 제 7 항에 있어서,
    상기 방법은:
    상기 검출된 데이터 저장 장치에 새롭게 할당된 논리 블록 어드레스들을 저장하는 단계를 더 포함하는,
    명령들을 저장하는 메모리 디바이스.
  9. 장치로서,
    데이터 저장 장치를 포함하고,
    상기 데이터 저장 장치는:
    제 1 동작 응답 시간을 갖는 제 1 저장 디바이스;
    상기 제 1 동작 응답 시간 보다 빠른 제 2 동작 응답 시간을 갖는 제 2 저장 디바이스; 및
    저장 컨트롤러를 포함하고,
    상기 저장 컨트롤러는:
    호스트 디바이스로부터 데이터 액세스 동작 요청들을 수신하고;
    상기 제 1 저장 디바이스 및 상기 제 2 저장 디바이스로의 고유 논리 블록 어드레스들의 할당을 제어하고;
    상기 제 2 저장 디바이스의 시스템 파일 영역에 저장된 시스템 정보를 상기 제 1 저장 디바이스의 특정 영역으로 카피하고;
    상기 제 2 저장 디바이스의 상기 시스템 파일 영역이 사용될 수 없을 때 상기 제 1 저장 디바이스의 선택된 영역이 대체 시스템 파일 영역으로서 작동하도록 구성하고; 그리고
    상기 시스템 정보를 상기 특정 영역으로부터 상기 대체 시스템 파일 영역으로 카피하도록 구성되는,
    장치.
  10. 제 9 항에 있어서,
    상기 제 1 저장 디바이스는 제 1 저장 디바이스 컨트롤러를 포함하고;
    상기 제 2 저장 디바이스는 제 2 저장 디바이스 컨트롤러를 포함하고;
    상기 저장 컨트롤러는 상기 제 1 저장 디바이스 컨트롤러 및 상기 제 2 저장 디바이스 컨트롤러를 제어하도록 추가로 구성되는,
    장치.
  11. 제 9 항에 있어서,
    상기 저장 컨트롤러는:
    트리거 이벤트 시에 상기 제 1 저장 디바이스 및 상기 제 2 저장 디바이스를 검출하고; 그리고
    오직 상기 제 1 저장 디바이스만이 검출될 때, 상기 제 1 저장 디바이스의 상기 특정 영역에 저장된 시스템 정보를 상기 제 1 저장 디바이스의 상기 대체 시스템 파일 영역으로 카피하도록 추가로 구성되는,
    장치.
  12. 장치로서,
    제 1 데이터 저장 매체;
    적어도 하나의 제 2 데이터 저장 매체 ― 상기 제 1 데이터 저장 매체 및 상기 적어도 하나의 제 2 데이터 저장 매체는 상이한 기록 방법들을 가짐 ―; 및
    컨트롤러를 포함하고,
    상기 컨트롤러는:
    상기 제 1 데이터 저장 매체에 제 1 세트의 로직 블록 어드레스들을 할당하고;
    상기 적어도 하나의 제 2 데이터 저장 매체에 제 2 세트의 로직 블록 어드레스들을 할당하고;
    상기 제 1 데이터 저장 매체로부터 상기 적어도 하나의 제 2 데이터 저장 매체의 특정 영역으로 시스템 정보를 카피하고; 그리고
    상기 시스템 정보가 상기 제 1 데이터 저장 매체 내에서 검출되지 않을 때, 상기 특정 영역으로부터 상기 적어도 하나의 제 2 데이터 저장 매체의 예약된(reserved) 시스템 영역으로 상기 시스템 정보를 카피하도록 구성되는,
    장치.
  13. 제 12 항에 있어서,
    상기 제 1 데이터 저장 매체는 상기 적어도 하나의 제 2 데이터 저장 매체 보다 높은 데이터 송신 속도를 갖는,
    장치.
  14. 제 12 항에 있어서,
    상기 제 1 데이터 저장 매체 및 상기 적어도 하나의 제 2 데이터 저장 매체는 비-휘발성 저장 장치들을 포함하는,
    장치.
  15. 제 12 항에 있어서,
    상기 적어도 하나의 제 2 데이터 저장 매체는 하드 디스크 드라이브를 포함하고,
    상기 제 1 데이터 저장 매체는 비-휘발성 반도체 메모리 장치를 포함하는,
    장치.
  16. 제 15 항에 있어서,
    상기 컨트롤러는, 상기 제 2 세트의 로직 블록 어드레스들 중 첫 번째 어드레스가 상기 제 1 세트의 로직 블록 어드레스들 중 마지막 어드레스를 후속하여 따르도록, 상기 제 1 데이터 저장 매체에 상기 제 1 세트의 로직 블록 어드레스들을 할당하고 후속하여 상기 적어도 하나의 제 2 데이터 저장 매체에 상기 제 2 세트의 로직 블록 어드레스들을 할당하는,
    장치.
  17. 제 15 항에 있어서,
    상기 컨트롤러는 상기 비-휘발성 반도체 메모리 장치의 물리적 메모리 블록들을 가상 로직 블록 어드레스들로 매핑함으로써 상기 비-휘발성 반도체 메모리 장치에 상기 제 1 세트의 로직 블록 어드레스들을 할당하는,
    장치.
  18. 제 15 항에 있어서,
    상기 컨트롤러는 상기 하드 디스크 드라이브에 포함된 섹터들의 위치 정보를 가상 로직 블록 어드레스들로 매핑함으로써 상기 하드 디스크 드라이브에 상기 제 2 세트의 로직 블록 어드레스들을 할당하는,
    장치.
  19. 제 12 항에 있어서,
    상기 장치가 호스트에 단일 데이터 저장 디바이스로서 나타나게 되도록, 상기 호스트에 연결하기 위한 인터페이스를 더 포함하는,
    장치.
  20. 제 12 항에 있어서,
    상기 컨트롤러는:
    트리거 이벤트 시에 상기 제 1 데이터 저장 매체 및 상기 적어도 하나의 제 2 데이터 저장 매체를 검출하고;
    상기 시스템 정보가 예상(expected) 위치에 존재하는지 여부를 결정하고; 그리고
    상기 시스템 정보가 상기 예상 위치에 저장되지 않을 때, 상기 적어도 하나의 제 2 데이터 저장 매체의 특정 영역에 저장된 상기 시스템 정보를 상기 예약된 시스템 영역으로 카피하도록 추가로 구성되는,
    장치.
  21. 제 20 항에 있어서,
    상기 컨트롤러가, 상기 예상 위치에서 시스템 정보를 갖는 데이터 저장 매체를 검출하지 않을 때,
    상기 예상 위치가 검출된 데이터 저장 매체들의 영역에 재할당되도록, 상기 컨트롤러는 상기 검출된 저장 매체들에 하나 또는 그 초과의 로직 블록 어드레스들을 할당하는,
    장치.
  22. 제 12 항에 있어서,
    호스트 장치와 인터페이스 사이에서 데이터를 수신하고 송신하기 위한 상기 인터페이스를 더 포함하는,
    장치.
  23. 제 12 항에 있어서,
    상기 제 1 데이터 저장 매체 및 상기 적어도 하나의 제 2 데이터 저장 매체는 단일 회로 보드 상에 탑재된 복수의 회로 엘리먼트들을 포함하는,
    장치.
  24. 제 12 항에 있어서,
    상기 제 1 데이터 저장 매체 또는 상기 적어도 하나의 제 2 데이터 저장 매체 중 적어도 하나에 데이터를 저장하는 것을 제어하기 위한 저장 매체 컨트롤러를 더 포함하고,
    상기 컨트롤러 및 상기 저장 매체 컨트롤러는 단일 시스템 온 칩으로서 형성되는,
    장치.
  25. 제 12 항에 있어서,
    데이터를 출력하기 위한 프로세서를 더 포함하고,
    상기 컨트롤러는, 상기 프로세서로부터 출력된 데이터를 수신하고, 상기 제 1 데이터 저장 매체에 저장될 데이터에 상기 제 1 세트의 로직 블록 어드레스들로부터의 어드레스들을 할당하고, 그리고 상기 제 2 데이터 저장 매체에 저장될 데이터에 상기 제 2 세트의 로직 블록 어드레스들로부터의 어드레스들을 할당하도록 추가로 구성되는,
    장치.
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
KR1020080078142A 2008-08-08 2008-08-08 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법 KR101636777B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020080078142A KR101636777B1 (ko) 2008-08-08 2008-08-08 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법
US12/538,286 US9619178B2 (en) 2008-08-08 2009-08-10 Hybrid storage apparatus and logical block address assigning method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080078142A KR101636777B1 (ko) 2008-08-08 2008-08-08 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법

Publications (2)

Publication Number Publication Date
KR20100019221A KR20100019221A (ko) 2010-02-18
KR101636777B1 true KR101636777B1 (ko) 2016-07-21

Family

ID=41653968

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080078142A KR101636777B1 (ko) 2008-08-08 2008-08-08 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법

Country Status (2)

Country Link
US (1) US9619178B2 (ko)
KR (1) KR101636777B1 (ko)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296521B2 (en) * 2006-06-30 2012-10-23 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
US8677084B2 (en) 2006-06-30 2014-03-18 Mosaid Technologies Incorporated Method of configuring non-volatile memory for a hybrid disk drive
US8850151B2 (en) * 2010-03-24 2014-09-30 Apple Inc. Hybrid-device storage based on environmental state
US9311018B2 (en) * 2010-05-11 2016-04-12 Taejin Info Tech Co., Ltd. Hybrid storage system for a multi-level RAID architecture
US8484415B2 (en) * 2010-07-19 2013-07-09 Taejin Info Tech Co., Ltd. Hybrid storage system for a multi-level raid architecture
TWI467581B (zh) * 2010-09-07 2015-01-01 Phison Electronics Corp 複合式儲存裝置及其複合式儲存媒體控制器與定址方法
US8589626B2 (en) * 2010-09-19 2013-11-19 Taejin Info Tech Co., Ltd. Hybrid RAID controller having multi PCI bus switching
US8990494B2 (en) 2010-11-01 2015-03-24 Taejin Info Tech Co., Ltd. Home storage system and method with various controllers
US9229816B2 (en) * 2011-03-14 2016-01-05 Taejin Info Tech Co., Ltd. Hybrid system architecture for random access memory
US20120278527A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho System architecture based on hybrid raid storage
US9176670B2 (en) * 2011-04-26 2015-11-03 Taejin Info Tech Co., Ltd. System architecture based on asymmetric raid storage
US20120278550A1 (en) * 2011-04-26 2012-11-01 Byungcheol Cho System architecture based on raid controller collaboration
US9417794B2 (en) 2011-07-26 2016-08-16 Apple Inc. Including performance-related hints in requests to composite memory
CN102388358B (zh) 2011-09-30 2014-07-09 华为技术有限公司 在混合存储环境下配置存储设备的方法和***
US9275096B2 (en) 2012-01-17 2016-03-01 Apple Inc. Optimized b-tree
US20140129788A1 (en) * 2012-11-07 2014-05-08 Taejin Info Tech Co., Ltd. High-performance large scale semiconductor storage module with hybrid technology
US9182924B2 (en) 2013-01-11 2015-11-10 Seagate Technology Llc Modifying logical addressing at a requestor level
US9552176B2 (en) * 2013-04-12 2017-01-24 Microsoft Technology Licensing, Llc Block storage using a hybrid memory device
TWI563394B (en) * 2013-06-02 2016-12-21 Compal Electronics Inc System and method for transmitting data, and electronic apparatus using the method
KR20150060149A (ko) * 2013-11-26 2015-06-03 삼성전자주식회사 멀티미디어 데이터를 분산 처리하는 저장 장치 및 방법
CN107122261B (zh) * 2017-04-18 2020-04-07 杭州宏杉科技股份有限公司 一种存储设备的数据读写方法及装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06314177A (ja) * 1993-04-28 1994-11-08 Toshiba Corp 磁気ディスク装置及びアクセス方法
US5640592A (en) * 1994-09-30 1997-06-17 Mitsubishi Kasei America, Inc. System for transferring utility algorithm stored within a peripheral device to a host computer in a format compatible with the type of the host computer
US5687390A (en) * 1995-11-14 1997-11-11 Eccs, Inc. Hierarchical queues within a storage array (RAID) controller
JPH09297659A (ja) 1996-04-30 1997-11-18 Toshiba Corp 不揮発性記憶装置およびその制御方法
US6016527A (en) * 1996-09-30 2000-01-18 Lsi Logic Corporation Method and apparatus for improving fairness in SCSI bus arbitration
US6249838B1 (en) * 1998-12-28 2001-06-19 Cisco Technology Inc. Physical medium information in file system header
US6792556B1 (en) * 2000-05-31 2004-09-14 Dell Products L.P. Boot record recovery
US7366888B2 (en) * 2001-06-07 2008-04-29 Lenovo Singapore Pte. Ltd Booting to a recovery/maintenance environment
US6862681B2 (en) * 2001-07-16 2005-03-01 International Business Machines Corporation Method and system for master boot record recovery
US7076606B2 (en) * 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
US8019908B2 (en) * 2004-07-06 2011-09-13 Tandberg Data Holdings S.A.R.L. Data replication systems and methods
JP4736593B2 (ja) 2005-07-25 2011-07-27 ソニー株式会社 データ記憶装置、データ記録方法、記録及び/又は再生システム、並びに、電子機器
WO2008070173A1 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for solid-state storage as cache for high-capacity, non-volatile storage
US20090083484A1 (en) * 2007-09-24 2009-03-26 Robert Beverley Basham System and Method for Zoning of Devices in a Storage Area Network
US8862689B2 (en) * 2007-10-24 2014-10-14 International Business Machines Corporation Local flash memory and remote server hybrid continuous data protection
US8037240B2 (en) * 2007-10-24 2011-10-11 International Business Machines Corporation System and method for using reversed backup operation for minimizing the disk spinning time and the number of spin-up operations
CA2714745A1 (en) * 2008-02-12 2009-08-20 Netapp, Inc. Hybrid media storage system architecture
US20090240881A1 (en) * 2008-03-24 2009-09-24 Munif Farhan Halloush System and Method for Information Handling System Operation With Different Types of Permanent Storage Devices
US20100199036A1 (en) * 2009-02-02 2010-08-05 Atrato, Inc. Systems and methods for block-level management of tiered storage

Also Published As

Publication number Publication date
US20100037017A1 (en) 2010-02-11
KR20100019221A (ko) 2010-02-18
US9619178B2 (en) 2017-04-11

Similar Documents

Publication Publication Date Title
KR101636777B1 (ko) 하이브리드 저장 장치 및 그에 대한 논리 블록 어드레스 할당 방법
US10055147B2 (en) Systems and methods for a mass data storage system having a file-based interface to a host and a non-file-based interface to secondary storage
KR101517761B1 (ko) 데이터 저장 위치 관리 방법 및 이를 데이터 저장 시스템
CN102576293B (zh) 固态存储设备和分层存储***中的数据管理
US8706985B1 (en) System and method for optimizing garbage collection in data storage
KR101810932B1 (ko) 주소 사상 정보 관리 방법, 디스크 드라이브에서의 액세스 방법, 저장 장치, 컴퓨터 시스템, 네트워크를 통한 주소 사상 정보 관리 방법 및 컴퓨터로 읽을 수 있는 저장 매체
EP3100165B1 (en) Garbage collection and data relocation for data storage system
KR101890767B1 (ko) 주소 사상 정보 관리 방법 이를 적용한 저장 장치
US9063659B2 (en) Method and apparatus for data sector cluster-based data recording
US8006027B1 (en) Method of staging small writes on a large sector disk drive
CN108628771B (zh) 信息处理装置、存储设备以及信息处理***
KR101854206B1 (ko) 라이트 방법 및 그 방법을 이용하는 저장 장치
KR101674015B1 (ko) 데이터 저장 매체 액세스 방법과 그와 같은 기능을 갖는 데이터 저장 장치 및 기록 매체
CN102150144A (zh) 使用写入配置快照的动态存储分层的方法和***
KR20060134149A (ko) 복합형 기억 장치, 데이터 기입 방법 및 프로그램
KR20070013222A (ko) 복합형 기억 장치, 데이터 기입 방법 및 프로그램
WO2012137252A1 (en) Storage apparatus and its data processing method
KR102067056B1 (ko) 저장 매체 액세스 방법, 데이터 라이트 방법, 저장 장치의 파라미터 조정 방법과 이를 적용한 저장 장치, 컴퓨터 시스템 및 저장매체

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
GRNT Written decision to grant