KR101379940B1 - 플래시 인터페이스를 갖는 하드 디스크 드라이브를 포함한 적응 저장 시스템 - Google Patents

플래시 인터페이스를 갖는 하드 디스크 드라이브를 포함한 적응 저장 시스템 Download PDF

Info

Publication number
KR101379940B1
KR101379940B1 KR1020087029319A KR20087029319A KR101379940B1 KR 101379940 B1 KR101379940 B1 KR 101379940B1 KR 1020087029319 A KR1020087029319 A KR 1020087029319A KR 20087029319 A KR20087029319 A KR 20087029319A KR 101379940 B1 KR101379940 B1 KR 101379940B1
Authority
KR
South Korea
Prior art keywords
lpdd
data
hpdd
read data
write data
Prior art date
Application number
KR1020087029319A
Other languages
English (en)
Other versions
KR20090018079A (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 마벨 월드 트레이드 리미티드
Publication of KR20090018079A publication Critical patent/KR20090018079A/ko
Application granted granted Critical
Publication of KR101379940B1 publication Critical patent/KR101379940B1/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/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3221Monitoring of peripheral devices of disk drive devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3268Power saving in hard disk drive
    • 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
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • 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
    • 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/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/068Hybrid storage device
    • 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
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • 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
    • 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/224Disk storage
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

다양한 형태의 데이터 스토리지 시스템들은 저 전력 디스크 드라이브들을 이용하여 고 전력 디스크 드라이브들 로/부터 데이터를 캐시하여, 전력 소모 및 액세스 타임들을 줄인다. 일부 디스크 드라이브들은 플래시 메모리 인터페이스와 같은 비휘발성 반도체 메모리 인터페이스를 경유해서 호스트와 통신할 수 있다.

Description

플래시 인터페이스를 갖는 하드 디스크 드라이브를 포함한 적응 저장 시스템{ADAPTIVE STORAGE SYSTEM INCLUDING HARD DISK DRIVE WITH FLASH INTERFACE}
본 발명은 데이터 저장 시스템들에 관한 것으로, 보다 상세하게는 저 전력 데이터 저장 시스템들에 관한 것이다.
본 출원 청구항들은 2006년 8월 11일 출원된 미국출원 11/503,016, 2006년 7월 31일 출원된 미국 가출원 60/820,867, 그리고 2006년 5월 10일 출원된 미국 가출원 60/799,151의 이익을 가지고, 2004년 6월 10일 출원된 미국특허출원 10/865,368의 부분계속출원이며, 2005년 12월 29일 출원되고 그리고 2005년 5월 5일 출원된 미국 가출원 60/678,249의 이익을 갖는 미국특허출원 11/322,447의 부분계속출원이고, 2004년 2월 13일 출원의 미국특허출원 10/779,544에 관계되고, 그리고 2004년 6월 10일 출원의 미국특허출원 10/865,732에 관계된다. 이들 출원들의 개시는 전체로 여기에 참고자료로서 포함된다.
랩탑 컴퓨터들은 라인 전력과 배터리 전력을 이용하여 전력이 공급된다. 랩탑 컴퓨터의 프로세서, 그래픽스 프로세서, 메모리 및 디스플레이는 동작 중에 상당한 양의 전력을 소모한다. 랩탑 컴퓨터의 하나의 중요한 제한은 랩탑 컴퓨터가 배터리들을 이용하여 재충전 없이 동작될 수 있는 시간의 양에 관계된다. 랩탑 컴퓨터의 비교적 높은 전력 소모는 비교적 짧은 배터리 수명에 대응한다.
도1A를 보면, 예시적 컴퓨터 아키텍쳐(4)가 도시되어 있는데, 이는 캐시와 같은 메모리(7)를 갖는 프로세서(6)를 포함한다. 프로세서(6)는 입력/출력(I/O) 인터페이스(8)와 통신한다. 랜덤 액세스 메모리(RAM)(10)와 같은 휘발성 메모리(9) 및/또는 다른 적절한 전자 데이터 스토리지도 인터페이스(8)과 통신한다. 그래픽스 프로세서(11)와 캐시와 같은 메모리(12)는 그래픽스 처리의 속도와 성능을 증대시킨다.
키보드(13)와 포인팅 디바이스(14)(예컨대, 마우스 및/또는 다른 적절한 디바이스)와 같은 하나 이상의 I/O 디바이스들은 인터페이스(8)와 통신한다. 1.8" 이상의 직경을 갖는 하나 이상의 플래터(platter)를 갖는 하드 디스크 드라이브와 같은 고 전력 디스크 드라이브(HPDD)는 비휘발성 메모리를 제공하고, 데이터를 저장하고, 그리고 인터페이스(8)와 통신한다. HPDD(15)는 전형적으로 동작 중에 비교적 많은 양의 전력을 소모한다. 배터리 상에서 동작할 때, HPDD(15)의 빈번한 사용은 배터리 수명을 상당히 줄일 것이다. 컴퓨터 아키텍쳐(4)는 또한 디스플레이(16), 오디오 스피커와 같은 오디오 출력 디바이스(17), 및/또는 18에서 일반적으로 확인되는 입력/출력 디바이스들을 포함한다.
도1B를 보면, 예시적 컴퓨터 아키텍쳐(20)은 프로세싱 칩셋(22)과 I/O 칩셋(24)을 포함한다. 예를들어, 컴퓨터 아키텍쳐는 노스브리지/사우스브리지 아키텍쳐(노스브리지 칩셋에 대응하는 프로세싱 칩셋과 사우스브리지 칩셋에 대응하는 I/O 칩셋을 가짐) 또는 다른 유사한 아키텍쳐일 수 있다. 프로세싱 칩셋(22)은 시스템 버스(27)를 경유해서 프로세서(25)와 그래픽스 프로세서(26)과 통신한다. 프로세싱 칩셋(22)은 휘발성 메모리(28)(외부 DRAM 또는 다른 메모리와 같은), 주변 컴포넌트 인터커넥터(PCI) 버스(30), 및/또는 레벨 2 캐시(32)와의 상호작용을 제어한다. 레벨 1 캐시(33,34)는 프로세서(25) 및/또는 그래픽스 프로세서(26)과 각각 관련될 수 있다. 대안적 실시예에서, AGP(Accelerated Graphics Port)(미도시)는 그래픽스 프로세서(26)에 추가하여 및/또는 대신에 프로세싱 칩셋(22)과 통신한다. 프로세싱 칩셋(22)은 전형적으로 그러나 필수적이지는 않게 복수의 칩들을 사용하여 구현된다. PCI 슬롯들(36)은 PCI 버스(30)와 인터페이스한다.
I/O 칩셋(24)은 입력/출력(I/O)의 기본 형태들을 관리한다. I/O 칩셋(24)은 ISA(Industry Standard Architecture) 버스를 경유해서 USB(Universal Serial Bus)(40), 오디오 디바이스(41), 키보드(KBD) 및/또는 포인팅 디바이스(42), 그리고 BIOS(Basic Input/Output System)(43)와 통신한다. 프로세싱 칩셋(22)와는 달리, I/O 칩셋(24)은 전형적으로(그러나 필수적이지는 않게) 단일 칩을 이용하여 구현되는데, 이는 PCI 버스(30)에 연결된다. 하드 디스크 드라이브와 같은 HPDD(50) 버스도 또한 I/O 칩셋(24)과 통신한다. HPDD(50)는 프로세서(25)에 의해 실행되는 윈도우 XP, 윈도우 2000, 리눅스 및 맥 기반의 운영체계(OS:Operating System)와 같은 모든 특성을 지닌(full-featured) 운영체계를 저장한다.
고 전력 및 저 전력 모드들을 갖는 디바이스용 디스크 드라이브 시스템은 저 전력 디스크 드라이브(LPDD)와 고 전력 디스크 드라이브(HPDD)를 포함한다. LPDD와 HPDD 중 적어도 하나는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다.
다른 특징들에서, 제어 모듈은 최소 사용 블록(LUB:Least used block) 모듈을 포함하는데, 이는 LPDD에서 LUB를 확인하고 그리고 데이터 저장 요청과 데이터 검색 요청 중 적어도 하나가 수신될 때 저 전력 모드 동안에 그 LUB를 HPDD로 선택적으로 전송한다. 쓰기 데이터를 위한 저장 요청 동안, LPDD에서 쓰기 데이터를 위한 충분한 공간이 이용가능하다면 제어 모듈은 쓰기 데이터를 LPDD로 전송한다. LPDD에서 쓰기 데이터를 위한 충분한 공간이 이용가능하지 않다면, 제어 모듈은 HPDD에 전력을 공급하고 그리고 LPDD로부터 HPDD로 LUB를 전송하고 쓰기 데이터를 LPDD로 전송한다. 제어 모듈은 적응 저장 모듈을 포함하며, 적응 저장 모듈은 쓰기 데이터를 위해 LPDD에서 이용가능한 공간이 불충분할 때, 쓰기 데이터가 LUB 전에 사용될 가능성이 있는지를 판단한다. 쓰기 데이터가 LUB 후에 사용될 가능성이 있으면, 제어 모듈은 쓰기 데이터를 HPDD에 저장한다. 쓰기 데이터가 LUB 전에 사용될 가능성이 있으면, 제어 모듈은 HPDD에 전력을 공급하고 LUB를 LPDD로부터 HPDD로 전송하고 그리고나서 쓰기 데이터를 LPDD로 전송한다.
다른 특징들에서, 읽기 데이터를 위한 데이터 검색 요청 동안에, 읽기 데이터가 LPDD에 저장되어 있다면 제어 모듈은 LPDD로부터 읽기 데이터를 검색한다. 제어 모듈은 적응 저장 모듈을 포함하는데, 이는 읽기 데이터가 LPDD에 위치되어 있지 않을 때 읽기 데이터가 한번이라도 사용될 가능성이 있는지를 판단하고, 그리고 여기서 읽기 데이터가 한번이라도 사용될 가능성이 있으면 제어 모듈은 읽기 데이터를 HPDD로부터 검색한다. 적응 저장 모듈이 읽기 데이터가 한번 이상 사용될 가능성이 있다고 판단하면, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능할 경우 제어 모듈은 읽기 데이터를 HPDD로부터 LPDD로 전송한다. 적응 저장 모듈이 읽기 데이터가 한번 이상 사용될 가능성이 있다고 판단하면, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능하지 않는 경우 제어 모듈은 LUB를 LPDD로부터 HPDD로 전송한다. 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 경우, 제어 모듈은 읽기 데이터를 HPDD로부터 LPDD로 전송한다. 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능하지 않는 경우, 제어 모듈은 LUB를 LPDD로부터 HPDD로 그리고 읽기 데이터를 HPDD로부터 LPDD로 전송한다. 읽기 데이터가 LPDD에 위치되어 있지 않은 경우, 제어 모듈은 HPDD로부터 읽기 데이터를 검색한다.
다른 특징들에서, HPDD는 하나 이상의 플래터(platter)를 포함하는데, 여기서 하나 이상의 플래터는 1.8" 보다 큰 직경을 갖고, 그리고 LPDD는 하나 이상의 플래터를 포함하는데, 여기서 하나 이상의 플래터는 1.8" 보다 작거나 같은 직경을 갖는다. HPDD와 LPDD는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 제어 모듈은 LPDD 및 HPDD와 통신한다. 저 전력 모드에서 쓰기 데이터를 위한 저장 요청 동안에, 제어 모듈은 쓰기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 지를 판단하고 그리고 충분한 공간이 이용가능하면 쓰기 데이터를 LPDD로 전송한다. HPDD와 LPDD는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 충분한 공간이 이용가능하지 않다면, 제어 모듈은 쓰기 데이터를 HPDD에 저장한다. 제어 모듈은 LPDD 유지 모듈을 더 포함하는데, 이는 고 전력 모드 동안에 데이터 파일들을 LPDD로부터 HPDD로 전송하여 LPDD에서 이용가능한 디스크 공간을 증가시킨다. LPDD 유지 모듈은 에이지(age), 사이즈(size) 그리고 저 전력 모드에서 장래 사용의 가능성 중 적어도 하나에 기초하여 데이터 파일들을 전송한다.
다른 특징들에서, HPDD는 하나 이상의 플래터를 포함하고, 여기서 하나 이상의 플래터는 1.8"보다 큰 직경을 갖고, 그리고 LPDD는 하나 이상의 플래터를 포함하는데, 여기서 하나 이상의 플래터는 1.8"보다 작거나 같은 직경을 갖는다.
고 전력 및 저 전력 모드들을 갖는 디바이스용 디스크 드라이브 시스템을 동작시키는 방법은 저 전력 디스크 드라이브(LPDD)와 고 전력 디스크 드라이브(HPDD)를 제공하는 단계; 그리고 LPDD와 HPDD 중 적어도 하나와 디바이스 사이에서 비휘발성 반도체 메모리 인터페이스를 경유해서 통신하는 것을 포함한다.
다른 특징들에서, 이 방법은 LPDD에서 LUB를 식별하는 단계; 그리고 데이터 저장 요청과 데이터 검색 요청 중 적어도 하나가 수신될 때 저 전력 모드 동안에 LUB를 HPDD로 선택적으로 전송하는 단계를 포함한다. 이 방법은 쓰기 데이터를 위한 저장 요청 동안, 쓰기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 경우 쓰기 데이터를 LPDD로 전송하는 것을 포함한다. 이 방법은 LPDD에서 쓰기 데이터를 위해 충분한 공간이 이용가능하지 않다면, HPDD에 전력을 공급하고 LUB를 LPDD로부터 HPDD로 전송하고 그리고 쓰기 데이터를 LPDD로 전송하는 것을 포함한다. 이 방법은 LPDD에서 쓰기 데이터를 위한 충분한 공간이 이용가능하지 않을 때 쓰기 데이터가 LUB 전에 사용될 가능성이 있는지를 판단하는 것을 포함한다. 이 방법은 쓰기 데이터가 LUB 후에 사용될 가능성이 있으면, 쓰기 데이터를 HPDD에 저장하는 것을 포함한다. 이 방법은, 쓰기 데이터가 LUB 전에 사용될 가능성이 있으면, HPDD에 전력을 공급하고 LUB를 LPDD로부터 HPDD로 전송하고 그리고나서 쓰기 데이터를 LPDD로 전송하는 것을 포함한다. 이 방법은, 읽기 데이터를 위한 데이터 검색 요청 동안에, 읽기 데이터가 LPDD에 저장되어 있다면 LPDD로부터 읽기 데이터를 검색하는 것을 포함한다. 이 방법은 읽기 데이터가 LPDD에 위치되어 있지 않을 때 읽기 데이터가 한번이라도 사용될 가능성이 있는 지를 판단하는 단계; 그리고 읽기 데이터가 한번이라도 사용될 가능성이 있으면 읽기 데이터를 HPDD로부터 검색하는 것을 포함한다.
다른 특징들에서, 이 방법은, 읽기 데이터가 한번 이상 사용될 가능성이 있다고 판단하면, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능할 경우 읽기 데이터를 HPDD로부터 LPDD로 전송한다. 이 방법은 읽기 데이터가 한번 이상 사용될 가능성이 있다고 판단하면, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능하지 않는 경우 LUB를 LPDD로부터 HPDD로 전송하고, 그리고 읽기 데이터를 HPDD로부터 LPDD로 전송하는 것을 포함한다. 이 방법은, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 경우, 읽기 데이터를 HPDD로부터 LPDD로 전송하는 것을 포함한다. 이 방법은, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능하지 않는 경우, LUB를 LPDD로부터 HPDD로 그리고 읽기 데이터를 HPDD로부터 LPDD로 전송하는 것을 포함한다. 이 방법은, 읽기 데이터가 LPDD에 위치되어 있지 않은 경우, HPDD로부터 읽기 데이터를 검색하는 것을 포함한다. HPDD와 LPDD는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 이 방법은, 쓰기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 지를 판단하는 단계와 저 전력 모드에서 쓰기 데이터를 위한 저장 요청 동안에 충분한 공간이 이용가능하면 쓰기 데이터를 LPDD로 전송하는 것을 포함한다.
다른 특징들에서, HPDD와 LPDD는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 이 방법은, 충분한 공간이 이용가능하지 않으면, 쓰기 데이터를 HPDD에 저장한다. 이 방법은 LPDD에서 이용가능한 디스크 공간을 증가시키기 위해 고 전력 모드 동안에 데이터 파일들을 LPDD로부터 HPDD로 전송하는 것을 포함한다. 이 방법은 에이지(age), 사이즈(size) 그리고 저 전력 모드에서 장래 사용의 가능성 중 적어도 하나에 기초하여 데이터 파일들을 전송하는 것을 포함한다.
고 전력 및 저 전력 모드들을 갖는 디바이스용 디스크 드라이브 시스템은 메모리와 인터페이싱하기 위한 비휘발성 반도체 메모리 인터페이스 수단; 저 전력 디스크 드라이브(LPDD); 그리고 고 전력 디스크 드라이브(HPDD)를 포함하고, 여기서 LPDD와 HPDD 중 적어도 하나는 비휘발성 반도체 메모리 인터페이스 수단을 경유해서 디바이스와 통신한다.
다른 특징들에서, 제어를 위한 제어 수단은 최소 사용 블록(LUB:Least used block) 수단을 포함하는데, 이는 LPDD에서 LUB를 확인한다. 제어 수단은 데이터 저장 요청과 데이터 검색 요청 중 적어도 하나가 수신될 때 저 전력 모드 동안에 그 LUB를 HPDD로 선택적으로 전송한다. 쓰기 데이터를 위한 저장 요청 동안, 쓰기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 경우 제어 수단은 쓰기 데이터를 LPDD로 전송한다. LPDD에서 쓰기 데이터를 위해 충분한 공간이 이용가능하지 않다면, 제어 수단은 HPDD에 전력을 공급하고 그리고 그 LUB를 LPDD로부터 HPDD로 그리고 쓰기 데이터를 LPDD로 전송한다. 제어 수단은 적응 저장 수단을 포함하는데, 이는 LPDD에서 쓰기 데이터를 위하여 충분한 공간이 이용가능하지 않을 때 쓰기 데이터가 LUB 전에 사용될 가능성이 있는 지를 판단한다. 쓰기 데이터가 LUB 후에 사용될 가능성이 있으면, 제어 수단은 쓰기 데이터를 HPDD에 저장한다. 쓰기 데이터가 LUB 전에 사용될 가능성이 있으면, 제어 수단은 HPDD에 전력을 공급하고 LUB를 LPDD로부터 HPDD로 전송하고 그리고나서 쓰기 데이터를 LPDD로 전송한다. 읽기 데이터를 위한 데이터 검색 요청 동안에, 읽기 데이터가 LPDD에 저장되어 있다면 제어 수단은 LPDD로부터 읽기 데이터를 검색한다. 제어 수단은 적응 저장 수단을 포함하는데, 이는 읽기 데이터가 LPDD에 위치되어 있지 않을 때 읽기 데이터가 한번이라도 사용될 가능성이 있는 지를 판단하고, 그리고 여기서 읽기 데이터가 한번이라도 사용될 가능성이 있으면 제어 수단은 읽기 데이터를 HPDD로부터 검색한다.
다른 특징들에서, 적응 저장 수단이 읽기 데이터가 한번 이상 사용될 가능성이 있다고 판단하면, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능할 경우 제어 수단은 읽기 데이터를 HPDD로부터 LPDD로 전송한다. 적응 저장 수단이 읽기 데이터가 한번 이상 사용될 가능성이 있다고 판단하면, 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능하지 않는 경우 제어 수단은 LPDD로부터 HPDD로 LUB를 전송하고 HPDD로부터 LPDD로 읽기 데이터를 전송한다. 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 경우, 제어 수단은 HPDD로부터 LPDD로 읽기 데이터를 전송한다. 읽기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능하지 않는 경우, 제어 수단은 LPDD로부터 HPDD로 LUB를 전송하고, HPDD로부터 LPDD로 읽기 데이터를 전송한다. 읽기 데이터가 LPDD에 위치되어 있지 않은 경우, 제어 수단은 HPDD로부터 읽기 데이터를 검색한다. HPDD는 하나 이상의 플래터(platter)를 포함하는데, 여기서 하나 이상의 플래터는 1.8" 보다 큰 직경을 갖고, 그리고 LPDD는 하나 이상의 플래터를 포함하는데, 여기서 하나 이상의 플래터는 1.8" 보다 작거나 같은 직경을 갖는다.
다른 특징들에서, HPDD와 LPDD는 비휘발성 반도체 메모리 인터페이스 수단을 경유해서 디바이스와 통신한다. 제어를 위한 제어 수단은 LPDD 및 HPDD와 통신한다. 저 전력 모드에서 쓰기 데이터를 위한 저장 요청 동안에, 제어 수단은 쓰기 데이터를 위하여 충분한 공간이 LPDD에서 이용가능한 지를 판단하고 그리고 충분한 공간이 이용가능하면 쓰기 데이터를 LPDD로 전송한다. HPDD와 LPDD는 비휘발성 반도체 메모리 인터페이스 수단을 경유해서 디바이스와 통신한다. 충분한 공간이 이용가능하지 않다면, 제어 수단은 쓰기 데이터를 HPDD에 저장한다. 제어 수단은 LPDD 유지 수단을 더 포함하는데, 이는 고 전력 모드 동안에 데이터 파일들을 LPDD로부터 HPDD로 전송하여 LPDD에서 이용가능한 디스크 공간을 증가시킨다.
다른 특징들에서, LPDD 유지 수단은 에이지(age), 사이즈(size) 그리고 저 전력 모드에서 장래 사용의 가능성 중 적어도 하나에 기초하여 데이터 파일들을 전송한다. HPDD는 하나 이상의 플래터를 포함하고, 여기서 하나 이상의 플래터는 1.8"보다 큰 직경을 갖고, 그리고 LPDD는 하나 이상의 플래터를 포함하는데, 여기서 하나 이상의 플래터는 1.8"보다 작거나 같은 직경을 갖는다.
저 전력 및 고 전력 모드들을 포함하는 디바이스용 데이터 저장 시스템은 비휘발성 반도체 메모리 인터페이스를 갖는 저 전력(LP:low power) 하드 디스크 드라이브(HDD)를 포함하는 저 전력 비휘발성 메모리를 포함한다. LP HDD는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 고 전력(HP:high power) 비휘발성 메모리는 디바이스와 통신한다.
다른 특징들에서, 캐시 제어 모듈은 LP 및 HP 비휘발성 메모리와 통신하고, 그리고 적응 저장 모듈을 포함한다. 쓰기 데이터가 LP 및 HP 비휘발성 메모리 중 하나에 쓰여지는 때, 적응 저장 모듈은 LP 및 HP 비휘발성 메모리 중 하나를 선택하는 적응 저장 결정을 생성한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드(manual override) 상태에 관련된 전력 모드들 중 적어도 하나에 근거하고 있다. LP HDD 는 하나 이상의 플래터를 포함한다. 하나 이상의 플래터는 1.8"보다 작거나 같은 직경을 갖는다. HP 비휘발성 메모리는 하나 이상의 플래터를 갖는 하드 디스크 드라이브를 포함한다. 하나 이상의 플래터는 1.8"보다 큰 직경을 갖는다.
다른 특징들에서, 캐시 제어 모듈은 LP 및 HP 비휘발성 메모리와 통신하고, 그리고 드라이브 전력 감소 모듈(drive power reduction module)을 포함한다. 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 메모리로부터 읽혀지고 읽기 데이터가 순차적(sequential) 액세스 데이터 파일을 포함하고 있을 때, 드라이브 전력 감소 모듈은 읽기 데이터의 세그먼트들을 HP 비휘발성 메모리로부터 LP 비휘발성 메모리로 전송하기 위한 버스트 구간(burst period)을 계산한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 드라이브 전력 감소 모듈은 저 전력 모드 동안 읽기 데이터의 플레이백(playback) 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택한다. HP 비휘발성 메모리는 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업(spin-up) 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량(capacity) 중 적어도 하나에 기초한다.
다른 특징들에서, 구동 시스템은 LP 및 HP 비휘발성 메모리와 통신하고, 그리고 드라이브 전력 감소 모듈을 포함한다. 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 메모리로부터 읽혀지고 읽기 데이터가 순차적 액세스 데이터 파일을 포함하고 있을 때, 드라이브 전력 감소 모듈은 읽기 데이터의 세그먼트들을 HP 비휘발성 메모리로부터 LP 비휘발성 메모리로 전송하기 위한 버스트 구간을 계산한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스와 통신한다. 드라이브 전력 감소 모듈은 저 전력 모드 동안 읽기 데이터의 플레이백 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택한다. HP 비휘발성 메모리는 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량(capacity) 중 적어도 하나에 기초한다.
다른 특징들에서, 호스트 제어 모듈은 LP 및 HP 비휘발성 메모리와 통신하고, 그리고 적응 저장 모듈을 포함한다. 쓰기 데이터가 LP 및 HP 비휘발성 메모리 중 하나에 쓰여지는 때, 적응 저장 모듈은 LP 및 HP 비휘발성 메모리 중 하나를 선택하는 적응 저장 결정을 생성한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스와 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드 상태에 관련된 전력 모드들 중 적어도 하나에 기초한다.
다른 특징들에서, 호스트 제어 모듈은 LP 및 HP 비휘발성 메모리와 통신하고, 그리고 드라이브 전력 감소 모듈을 포함한다. 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 메모리로부터 읽혀지고 읽기 데이터가 순차적 액세스 데이터 파일을 포함하고 있을 때, 드라이브 전력 감소 모듈은 읽기 데이터의 세그먼트들을 HP 비휘발성 메모리로부터 LP 비휘발성 메모리로 전송하기 위한 버스트 구간을 계산한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스와 통신한다. 드라이브 전력 감소 모듈은 저 전력 모드 동안 읽기 데이터의 플레이백 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택한다. HP 비휘발성 메모리는 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량 중 적어도 하나에 기초한다.
다른 특징들에서, 오퍼레이팅 시스템은 LP 및 HP 비휘발성 메모리와 통신하고, 그리고 적응 저장 모듈을 포함한다. 쓰기 데이터가 LP 및 HP 비휘발성 메모리 중 하나에 쓰여지는 때, 적응 저장 모듈은 LP 및 HP 비휘발성 메모리 중 하나를 선택하는 적응 저장 결정을 생성한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스와 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드 상태에 관련된 전력 모드들 중 적어도 하나에 기초한다.
저 전력 및 고 전력 모드들을 포함하는 디바이스용 데이터 저장 시스템을 구동하는 방법은 비휘발성 반도체 메모리 인터페이스를 갖는 LP 하드 디스크 드라이브(HDD)를 포함하는 저 전력(LP) 비휘발성 메모리를 제공하는 단계, 여기서 LP HDD는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신하고; 고 전력(HP) 비휘발성 메모리를 제공하는 단계; 그리고 디바이스의 선택된 전력 모드에 기초하여 LP 비휘발성 메모리와 HP 비휘발성 메모리 중 적어도 하나를 선택하는 단계를 포함한다.
다른 특징들에서, 쓰기 데이터가 LP 및 HP 비휘발성 메모리 중 하나에 쓰여질 때 LP 및 HP 비휘발성 메모리 중 하나를 선택하는 적응 저장 결정을 생성하는 단계를 포함한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드 상태에 관련된 전력 모드들 중 적어도 하나에 기초한다. 이 방법은 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 메모리로부터 읽혀지고 읽기 데이터가 순차적 액세스 데이터 파일을 포함하고 있을 때, 읽기 데이터의 세그먼트들을 HP 비휘발성 메모리로부터 LP 비휘발성 메모리로 전송하기 위한 버스트 구간을 계산하는 단계를 포함한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스를 경유해서 디바이스와 통신한다. 이 방법은 저 전력 모드 동안 읽기 데이터의 플레이백 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택하는 단계를 포함한다. HP 비휘발성 메모리는 고 전력 디스크 드라이브(HPDD)를 포함한다.
다른 특징들에서, 버스트 구간은 LP HDD의 스핀-업 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량 중 적어도 하나에 기초한다. 이 방법은 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 메모리로부터 읽혀지고 읽기 데이터가 순차적 액세스 데이터 파일을 포함하고 있을 때, 읽기 데이터의 세그먼트들을 HP 비휘발성 메모리로부터 LP 비휘발성 메모리로 전송하기 위한 버스트 구간을 계산하는 단계를 포함한다. HP 비휘발성 메모리는 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스와 통신한다. 이 방법은 저 전력 모드 동안 읽기 데이터의 플레이백 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택하는 단계를 포함한다. HP 비휘발성 메모리는 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량 중 적어도 하나에 기초한다.
저 전력 및 고 전력 모드들을 포함하는 디바이스용 데이터 저장 시스템은 인터페이싱을 위한 비휘발성 반도체 메모리 인터페이스 수단을 갖는 LP 하드 디스크 드라이브(HDD)를 포함하는 데이터 저장용 저 전력(LP) 비휘발성 저장 수단을 포함하는데, 여기서 LP HDD는 비휘발성 반도체 메모리 인터페이스 수단을 경유해서 디바이스와 통신하고, 그리고 데이터 저장용 고 전력(HP) 비휘발성 저장 수단은 디바이스와 통신한다.
다른 특징들에서, 캐시 제어용 캐시 제어 수단은 LP 및 HP 비휘발성 저장 수단과 통신하고, 그리고 쓰기 데이터가 LP 및 HP 비휘발성 저장 수단 중 하나에 쓰여지는 때 LP 및 HP 비휘발성 저장 수단 중 하나를 선택하는 적응 저장 결정을 생성하는 적응 저장 수단을 포함한다. HP 비휘발성 저장 수단은 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스 수단을 경유해서 디바이스와 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드(manual override) 상태에 관련된 전력 모드들 중 적어도 하나에 기초한다. LP HDD는 하나 이상의 플래터를 포함하는데, 여기서 하나 이상의 플래터는 1.8"보다 작거나 같은 직경을 갖는다. 그리고, HP 비휘발성 저장 수단은 하나 이상의 플래터를 갖는 하드 디스크 드라이브를 포함하는데, 여기서 하나 이상의 플래터는 1.8"보다 큰 직경을 갖는다.
다른 특징들에서, 캐시 제어 수단은 LP 및 HP 비휘발성 저장 수단과 통신하고, 그리고 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 저장 수단으로부터 읽혀지고 읽기 데이터가 순차적(sequential) 액세스 데이터 파일을 포함하고 있을 때 읽기 데이터의 세그먼트들을 HP 비휘발성 저장 수단으로부터 LP 비휘발성 저장 수단으로 전송하기 위한 버스트 구간(burst period)을 계산하기 위한 드라이브 전력 감소 수단(drive power reduction means)을 포함한다. HP 비휘발성 저장 수단은 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스 수단을 경유해서 디바이스와 통신한다. 드라이브 전력 감소 수단은 저 전력 모드 동안 읽기 데이터의 플레이백(playback) 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택한다. HP 비휘발성 저장 수단은 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업(spin-up) 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량(capacity) 중 적어도 하나에 기초한다.
다른 특징들에서, 오퍼레이팅 시스템은 LP 및 HP 비휘발성 저장 수단과 통신하고, 그리고 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 저장 수단으로부터 읽혀지고 읽기 데이터가 순차적 액세스 데이터 파일을 포함하고 있을 때 읽기 데이터의 세그먼트들을 HP 비휘발성 저장 수단으로부터 LP 비휘발성 저장 수단으로 전송하기 위한 버스트 구간을 계산하는 드라이브 전력 감소 수단을 포함한다. HP 비휘발성 수단은 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스 수단과 통신한다. 드라이브 전력 감소 수단은 저 전력 모드 동안 읽기 데이터의 플레이백 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택한다. HP 비휘발성 저장 수단은 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량(capacity) 중 적어도 하나에 기초한다.
다른 특징들에서, 제어를 위한 호스트 제어 수단은 LP 및 HP 비휘발성 저장 수단과 통신하고, 그리고 쓰기 데이터가 LP 및 HP 비휘발성 저장 수단 중 하나에 쓰여지는 때 LP 및 HP 비휘발성 저장 수단 중 하나를 선택하는 적응 저장 결정을 생성하는 적응 저장 수단을 포함한다. HP 비휘발성 저장 수단은 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스 수단과 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드 상태에 관련된 전력 모드들 중 적어도 하나에 기초한다.
다른 특징들에서, 제어를 위한 호스트 제어 수단은 LP 및 HP 비휘발성 저장 수단과 통신하고, 그리고 읽기 데이터가 저 전력 모드 동안에 HP 비휘발성 저장 수단으로부터 읽혀지고 읽기 데이터가 순차적 액세스 데이터 파일을 포함하고 있을 때 읽기 데이터의 세그먼트들을 HP 비휘발성 저장 수단으로부터 LP 비휘발성 저장 수단으로 전송하기 위한 버스트 구간을 계산하는 드라이브 전력 감소 수단을 포함한다. HP 비휘발성 저장 수단은 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스 수단과 통신한다. 드라이브 전력 감소 수단은 저 전력 모드 동안 읽기 데이터의 플레이백 동안의 전력 소모를 줄이기 위한 버스트 구간을 선택한다. HP 비휘발성 저장 수단은 고 전력 디스크 드라이브(HPDD)를 포함한다. 버스트 구간은 LP HDD의 스핀-업 타임, HPDD의 스핀-업 타임, LP HDD의 전력 소모, HPDD의 전력 소모, 읽기 데이터의 플레이백 길이, 그리고 LP HDD의 용량 중 적어도 하나에 기초한다.
다른 특징들에서, 오퍼레이팅 시스템은 LP 및 HP 비휘발성 저장 수단과 통신하고, 그리고 쓰기 데이터가 LP 및 HP 비휘발성 저장 수단 중 하나에 쓰여지는 때 LP 및 HP 비휘발성 저장 수단 중 하나를 선택하는 적응 저장 결정을 생성하는 적응 저장 수단을 포함한다. HP 비휘발성 저장 수단은 HP HDD를 포함하는데, 이는 비휘발성 반도체 메모리 인터페이스 수단과 통신한다. 적응 결정은 쓰기 데이터의 이전 사용, 쓰기 데이터의 사이즈, 쓰기 데이터의 최종 사용일, 그리고 쓰기 데이터의 매뉴얼 오버라이드 상태에 관련된 전력 모드들 중 적어도 하나에 기초한다.
저 전력 및 고 전력 모드들에서 구동하는 디바이스는 휘발성 메모리; 비휘발성 반도체 메모리 인터페이스를 갖는 저 전력 하드 디스크 드라이브와 비휘발성 반도체 메모리 인터페이스를 갖는 고 전력 HDD 중 적어도 하나를 포함하는 비휘발성 메모리; 그리고 페이징 파일들을 위한 비휘발성 메모리의 적어도 일부의 지정이 디바이스 시스템의 가상 메모리를 증가시킬 수 있게 하는 가상 메모리 조절 모듈을 포함하는 오퍼레이팅 시스템을 포함한다.
프로세싱 디바이스는 고 전력 및 저 전력 모드들을 가지며, 그리고 프로세싱 디바이스와 통신하고 그리고 고 전력 모드 동안에 프로세싱 디바이스에 의해 실행되는 제1 오퍼레이팅 시스템을 저장하는 제1 비휘발성 메모리; 그리고 프로세싱 디바이스와 통신하고 그리고 저 전력 모드 동안에 프로세싱 디바이스에 의해 실행되는 제2 오퍼레이팅 시스템을 저장하는 제2 비휘발성 메모리를 포함하는데, 여기서 제2 비휘발성 메모리는 비휘발성 반도체 메모리 인터페이스를 갖는 저 전력(LP) 하드 디스크 드라이브(HDD)를 포함한다.
다른 특징들에서, 제1 비휘발성 메모리는 비휘발성 반도체 메모리 인터페이스와 통신하고 제1 오퍼레이팅 시스템을 저장하는 고 전력 HDD를 포함한다. 주 프로세싱 디바이스는 제1 비휘발성 메모리와 통신하고 고 저력 모드 동안에 제1 오프레이팅 시스템을 실행한다. 보조 프로세싱 디바이스는 제2 비휘발성 메모리와 통신하고 저 전력 모드 동안에 제2 오퍼레이팅 시스템을 실행한다. 제1 오퍼레이팅 시스템은 모든 특성을 지닌 오퍼레이팅 시스템이고, 제2 오퍼레이팅 시스템은 제한된 특성을 지닌 오퍼레이팅 시스템이다. 주 그래픽스 프로세싱 디바이스는 제1 비휘발성 메모리와 통신하고 고 전력 모드 동안에 모든 특성을 지닌 그래픽스 프로세싱을 지원하고; 그리고 보조 그래픽스 프로세싱 디바이스는 제2 비휘발성 메모리와 통신하고 저 전력 모드 동안에 제한된 특성을 지닌 그래픽스 프로세싱을 지원한다. 모든 특성을 지닌 오퍼레이팅 시스템과 제한된 특성을 지닌 오퍼레이팅 시스템은 공통의 데이터 포맷을 공유한다.
저 전력 및 고 전력 모드들에서 구동하는 디바이스는 데이터를 저장하기 위한 휘발성 저장 수단; 인터페이싱을 위한 비휘발성 반도체 메모리 인터페이스 수단을 갖는 저 전력(LP) 하드 디스크 드라이브(HDD)와 인터페이싱을 위한 비휘발성 반도체 메모리 인터페이스 수단을 갖는 고 전력 HDD 중 적어도 하나를 포함하는 데이터 저장용 비휘발성 저장 수단; 그리고 페이징 파일들을 위한 비휘발성 저장 수단의 적어도 일부의 지정이 디바이스 시스템의 가상 스토리지를 증가시킬 수 있게 하는 가상 저장 조절 수단을 포함하는 오퍼레이팅 시스템을 포함한다.
고 전력 및 저 전력 모드들을 갖는 프로세싱 디바이스는 프로세싱 디바이스와 통신하고 그리고 고 전력 모드 동안에 프로세싱 디바이스에 의해 실행되는 제1 오퍼레이팅 시스템을 저장하는 데이터 저장용 제1 비휘발성 저장 수단; 그리고 프로세싱 디바이스와 통신하고 그리고 저 전력 모드 동안에 프로세싱 디바이스에 의해 실행되는 제2 오퍼레이팅 시스템을 저장하는 제2 비휘발성 저장 수단을 포함하는데, 여기서 제2 비휘발성 저장 수단은 인터페이싱을 위한 비휘발성 반도체 메모리 인터페이스 수단을 갖는 저 전력(LP) 하드 디스크 드라이브(HDD)를 포함한다.
다른 특징들에서, 제1 비휘발성 저장 수단은 비휘발성 반도체 메모리 인터페이스 수단과 통신하고 제1 오퍼레이팅 시스템을 저장하는 고 전력(HP) HDD를 포함한다. 주 프로세싱 수단은 고 저력 모드 동안에 제1 오퍼레이팅 시스템을 실행하기 위해 제1 비휘발성 저장 수단과 통신한다. 보조 프로세싱 수단은 저 전력 모드 동안에 제2 오퍼레이팅 시스템을 실행하기 위해 제2 비휘발성 저장 수단과 통신한다. 제1 오퍼레이팅 시스템은 모든 특성을 지닌 오퍼레이팅 시스템이고, 제2 오퍼레이팅 시스템은 제한된 특성을 지닌 오퍼레이팅 시스템이다.
다른 특징들에서, 주 그래픽스 프로세싱 수단은 고 전력 모드 동안 전기능(full-featured) 그래픽스 프로세싱을 지원하기 위해 제1 비휘발성 저장 수단과 통신한다. 보조 그래픽스 프로세싱 수단은 저 전력 모드 동안 제한 기능(restricted-featured) 그래픽스 프로세싱을 지원하기 위해 제2 비휘발성 저장 수단과 통신한다. 전기능 오퍼레이팅 시스템과 제한 기능 오퍼레이팅 시스템은 공통의 데이터 포맷을 공유한다.
저 전력 및 고 전력 모드들에서 디바이스를 구동하는 방법은 휘발성 메모리 그리고 비휘발성 반도체 메모리 인터페이스를 갖는 저 전력 하드 디스크 드라이브와 비휘발성 반도체 메모리 인터페이스를 갖는 고 전력 HDD 중 적어도 하나를 포함하는 비휘발성 메모리를 제공하는 단계; 그리고 오퍼레이팅 시스템을 이용하여 페이징 파일들을 위한 비휘발성 메모리의 적어도 일부의 지정이 디바이스의 가상 메모리를 증가시킬 수 있게 하는 단계를 포함한다.
고 전력 및 저 전력 모드들을 갖는 프로세싱 디바이스를 구동하는 방법은 프로세싱 디바이스와 통신하는 제1 비휘발성 메모리를 제공하는 단계; 제1 비휘발성 메모리에 제1 오퍼레이팅 시스템을 저장하는 단계; 고 전력 모드 동안에 프로세싱 디바이스를 이용하여 제1 오퍼레이팅 시스템을 실행하는 단계; 프로세싱 디바이스와 통신하는 제2 비휘발성 메모리를 제공하는 단계; 제2 비휘발성 메모리에 제2 오퍼레이팅 시스템을 저장하는 단계; 저 전력 모드 동안에 프로세싱 디바이스를 이용하여 제2 오퍼레이팅 시스템을 실행하는 단계를 포함한다. 제2 비휘발성 메모리는 비휘발성 반도체 메모리 인터페이스를 갖는 저 전력(LP) 하드 디스크 드라이브(HDD)를 포함한다.
다른 특징들에서, 제1 비휘발성 메모리는 비휘발성 반도체 메모리 인터페이스와 통신하고 제1 오퍼레이팅 시스템을 저장하는 고 전력 HDD를 포함한다. 이 방법은 제1 비휘발성 메모리와 통신하고 고 저력 모드 동안에 제1 오프레이팅 시스템을 실행하는 주 프로세싱 디바이스를 제공하는 단계; 그리고 제2 비휘발성 메모리와 통신하고 저 전력 모드 동안에 제2 오퍼레이팅 시스템을 실행하는 보조 프로세싱 디바이스를 제공하는 단계를 포함한다. 제1 오퍼레이팅 시스템은 모든 특성을 지닌 오퍼레이팅 시스템이고, 제2 오퍼레이팅 시스템은 제한된 특성을 지닌 오퍼레이팅 시스템이다. 이 방법은 제1 비휘발성 메모리와 통신하고 고 전력 모드 동안에 모든 특성을 지닌 그래픽스 프로세싱을 지원하는 주 그래픽스 프로세싱 디바이스를 제공하는 단계; 그리고 제2 비휘발성 메모리와 통신하고 저 전력 모드 동안에 제한된 특성을 지닌 그래픽스 프로세싱을 지원하는 보조 그래픽스 프로세싱 디바이스를 제공하는 단계를 포함한다. 이 방법은 모든 특성을 지닌 오퍼레이팅 시스템과 제한된 특성을 지닌 오퍼레이팅 시스템 사이에 공통의 데이터 포맷을 공유하는 단계를 포함한다.
지금까지의 구현예들에서, 비휘발성 반도체 메모리 인터페이스를 갖는 HDD는 비휘발성 반도체 메모리 인터페이스를 포함하고, 여기서 비휘발성 반도체 메모리 인터페이스는 제어 모듈과 통신하는 인터페이스 신호 라인들을 포함한다. 버퍼 메모리는 제어 모듈로부터 그리고 LPDD로부터 수신된 데이터를 저장한다. 플래시 제어기는 비휘발성 반도체 메모리 인터페이스를 통해 인터페이스 신호 라인들을 이용하여 LPDD의 데이터 전송 프로토콜을 에뮬레이트한다(emulate). 메모리 랩퍼(wrapper)는 인터페이스 제어기 및 버퍼 관리기와 통신한다. 메모리 랩퍼는 제어 모듈과 HDD의 데이터 전송 속도에 따라 버퍼 메모리를 제어한다.
다른 특징들에서, 플래시 제어기는 HDD의 랜덤 읽기를 구현하기 위해 인터페이스 신호 라인들을 제어하고, 그리고 HDD의 랜덤 쓰기를 구현하기 위해 인터페이스 신호 라인들을 제어한다. 플래시 제어기는 HDD의 순차적 읽기를 구현하기 위해 인터페이스 신호 라인들을 제어하고, 그리고 HDD의 순차적 쓰기를 구현하기 위해 인터페이스 신호 라인들을 제어한다. 플래시 제어기는 제어 모듈과 HDD 사이의 명령의 전송을 구현하기 위해 인터페이스 신호 라인들을 제어한다.
다른 특징들에서, 플래시 제어기는 HDD 명령들의 세트를 플래시 메모리 명령들의 대응 세트로 매핑한다. 레지스터 메모리는 프로세서 버스를 경유해서 인터페이스 제어기 및 HDD 프로세서와 통신한다. 레지스터 메모리는 HDD 프로세서와 제어 모듈에 의해 프로그램된 명령들을 저장한다. 플래시 제어기는 HDD로부터의 읽기 데이터를 버퍼 메모리에 저장하여 제어 모듈과 HDD 사이의 데이터 전송 속도의 차이를 보상하고, 그리고 데이터 준비 신호를 제어 모듈로 보내 메모리 버퍼에 데이터가 있음을 알린다. 플래시 제어기는 제어 모듈로부터의 쓰기 데이터를 버퍼 메모리에 저장하여 제어 모듈과 HDD 사이의 데이터 전송 속도의 차이를 보상하고, 그리고 데이터 준비 신호를 제어 모듈로 보내 메모리 버퍼에 데이터가 있음을 알린다. 비휘발성 반도체 메모리 인터페이스는 NAND 타입의 비휘발성 반도체 메모리 인터페이스이다.
다른 특징들에서, 비휘발성 반도체 메모리 인터페이스는 플래시 메모리 인터페이스를 포함한다. 비휘발성 반도체 메모리 인터페이스 수단은 플래시 메모리 인터페이스를 포함한다.
본 발명의 응용 확장 영역은 이후 제공되는 상세한 설명으로부터 명백해 질 것이다. 상세한 설명과 특정 예시들은 본 발명의 바람직한 실시예를 나타내고 있지만, 이는 단지 예시를 목적으로 한 것일 뿐 본 발명의 범위를 제한할 의도는 없음을 밝힌다.
본 발명은 상세한 설명과 첨부한 도면들을 통해 보다 충분히 이해될 것이다.
도1A 및 도1B는 종래기술에 따른 예시적 컴퓨터 아키텍처를 도시하고 있다.
도2A는 본 발명에 따른 제1 예시의 컴퓨터 아키텍처를 도시하고 있는데, 이는 고 전력 모드 동안에 동작하는 주 프로세서, 주 그래픽스 프로세서, 그리고 주 휘발성 메모리, 및 주 프로세서와 통신하고, 저 전력 모드 동안에 동작하고, 그리고 저 전력 모드 동안에 주 휘발성 메모리를 사용하는 보조 그래픽스 프로세서와 보조 프로세서를 갖는다.
도2B는 본 발명에 따른 제2 예시적 컴퓨터 아키텍처를 도시하고 있는데, 이는 도2A와 유사하고, 그리고 보조 프로세서 및/또는 보조 그래픽스 프로세서에 연결된 보조 휘발성 메모리를 포함한다.
도2C는 본 발명에 따른 제3 예시적 컴퓨터 아키텍처를 도시하고 있는데, 이는 도2A와 유사하고, 그리고 보조 프로세서 및/또는 보조 그래픽스 프로세서에 연결된 임베디드 휘발성 메모리를 포함한다.
도3A는 본 발명에 따른 제4 예시적 아키텍처를 도시하고 있는데, 여기서의 컴퓨터는 고 전력 모드 동안에 동작하는 주 프로세서, 주 그래픽스 프로세서, 그리고 주 휘발성 메모리, 및 프로세싱 칩셋과 통신하고, 저 전력 모드 동안에 동작하고, 그리고 저 전력 모드 동안에 주 휘발성 메모리를 사용하는 보조 그래픽스 프로세서와 보조 프로세서를 갖는다.
도3B는 본 발명에 따른 제5 예시적 컴퓨터 아키텍처를 도시하고 있는데, 이는 도3A와 유사하고, 그리고 보조 프로세서 및/또는 보조 그래픽스 프로세서에 연결된 보조 휘발성 메모리를 포함한다.
도3C는 본 발명에 따른 제6 예시적 컴퓨터 아키텍처를 도시하고 있는데, 이는 도3A와 유사하고, 그리고 보조 프로세서 및/또는 보조 그래픽스 프로세서에 연결된 임베디드 휘발성 메모리를 포함한다.
도4A는 본 발명에 따른, I/O 칩셋과 통신하고, 저 전력 모드 동안에 동작하고, 그리고 저 전력 모드 동안에 주 휘발성 메모리를 사용하는 보조 그래픽스 프로세서와 보조 프로세서를 갖는 컴퓨터에 대한 제7 예시의 아키텍처를 도시한다.
도4B는 본 발명에 따른 제8 예시적 컴퓨터 아키텍처를 도시하고 있는데, 이는 도4A와 유사하고, 그리고 보조 프로세서 및/또는 보조 그래픽스 프로세서에 연결된 보조 휘발성 메모리를 포함한다.
도4C는 본 발명에 따른 제9 예시적 컴퓨터 아키텍처를 도시하고 있는데, 이는 도4A와 유사하고, 그리고 보조 프로세서 및/또는 보조 그래픽스 프로세서에 연결된 임베디드 휘발성 메모리를 포함한다.
도5는 도2A-4C의 컴퓨터 아키텍처에 대한 본 발명에 따른 캐싱 계층(caching hierarchy)을 도시하고 있다.
도6은 최소 사용 블록(LUB:least used block) 모듈을 포함하고 그리고 저 전력 디스크 드라이브(LPDD)와 고 전력 디스크 드라이브(HPDD) 사이의 데이터의 저장 및 전송을 관리하는 드라이브 콘트롤 모듈의 기능 블록도이다.
도7A는 도6의 드라이브 콘트롤 모듈에 의해 수행되는 단계들을 도시하는 플로우챠트이다.
도7B는 도6의 드라이브 콘트롤 모듈에 의해 수행되는 대안적 단계들을 도시하는 플로우챠트이다.
도7C와 7D는 도6의 드라이브 콘트롤 모듈에 의해 수행되는 대안적 단계들을 도시하는 플로우챠트이다.
도8A는 적응 스토리지 콘트롤 모듈을 포함하고 그리고 LPDD와 HPDD 사이의 데이터의 저장 및 전송을 제어하는 캐시 콘트롤 모듈을 도시하고 있다.
도8B는 적응 스토리지 콘트롤 모듈을 포함하고 그리고 LPDD와 HPDD 사이의 데이터의 저장 및 전송을 제어하는 오퍼레이팅 시스템을 도시하고 있다.
도8C는 적응 스토리지 콘트롤 모듈을 포함하고 그리고 LPDD와 HPDD 사이의 데이터의 저장 및 전송을 제어하는 호스트 콘트롤 모듈을 도시하고 있다.
도9는 도8A-8C의 적응 스토리지 콘트롤 모듈에 의해 수행되는 단계들을 도시하고 있다.
도10은 프로그램이나 파일이 저 전력 모드 동안에 사용될 가능성을 결정하는 방법을 도시하는 예시적 테이블이다.
도11A는 디스크 드라이브 전력 감소 모듈을 포함하는 캐시 콘트롤 모듈을 도시하고 있다.
도11B는 디스크 드라이브 전력 감소 모듈을 포함하는 오퍼레이팅 시스템을 도시하고 있다.
도11C는 디스크 드라이브 전력 감소 모듈을 포함하는 호스트 콘트롤 모듈을 도시하고 있다.
도12는 도11A-11C의 디스크 드라이브 전력 감소 모듈에 의해 수행되는 단계들을 도시하고 있다.
도13은 고 전력 디스크 드라이브(HPDD)와 저 전력 디스크 드라이브(LPDD)를 포함하는 멀티-디스크 드라이브 시스템을 도시하고 있다.
도14-17은 도13의 멀티-디스크 드라이브 시스템의 다른 예시적 구현예들을 도시하고 있다.
도18은 컴퓨터의 가상 메모리를 증가시키기 위해서 플래시 메모리나 저 전력 디스크 드라이브(LPDD)와 같은 저 전력 비휘발성 메모리의 사용을 도시하고 있다.
도19 및 20은 도18의 가상 메모리를 할당하고 사용하기 위해 오퍼레이팅 시스템에 의해 수행되는 단계들을 도시하고 있다.
도21은 종래기술에 따른 RAID(Redundant Array of Independent Disks) 시스템의 기능 블록동다.
도22A는 본 발명에 따른 예시적 RAID 시스템의 기능 블록도인데, 여기서 본 발명은 X HPDD를 포함하는 디스크 어레이와 Y LPDD를 포함하는 디스크 어레이를 갖는다.
도22B는 도22A의 RAID 시스템의 기능 블록도로서, 여기서 X와 Y는 Z와 같다.
도23A는 본 발명에 따른 다른 예시적 RAID 시스템의 기능 블록도인데, 여기 서 본 발명은 X HPDD를 포함하는 디스크 어레이와 통신하는 Y LPDD를 포함하는 디스크 어레이를 갖는다.
도23B는 도23A의 RAID 시스템의 기능 블록도로서, 여기서 X와 Y는 Z와 같다.
도24A는 본 발명에 따른 또 다른 예시적 RAID 시스템의 기능 블록도이며, 이 RAID 시스템은 Y LPDD를 포함하는 디스크 어레이와 통신하는 X HPDD를 포함하는 디스크 어레이를 갖는다.
도24B는 도24A의 RAID 시스템의 기능 블록도로서, 여기서 X와 Y는 Z와 같다.
도25는 종래기술에 따른 NAS(network attachable storage) 시스템의 기능 블록도이다.
도26은 본 발명에 따른 NAS 시스템의 기능 블록도인데, 여기서 본 발명은 도22A, 22B, 23A, 23B, 24A 및/또는 24B의 RAID 시스템 및/또는 도6-17에 따른 멀티-드라이브 시스템을 포함한다.
도27은 플래시 메모리와 디스크 드라이브 인터페이스 콘트롤러를 포함하는 디스크 드라이브 콘트롤러의 기능 블록도이다.
도28은 도27의 인터페이스 콘트롤러의 기능 블록도이다.
도29는 플래시 인터페이스를 갖는 멀티-디스크 드라이브 시스템의 기능 블록도이다.
도30은 도30의 멀티-디스크 드라이브에 의해 수행되는 단계들을 도시하는 플로우챠트이다.
바람직한 실시예들에 대한 다음의 설명은 성질상 단순히 예시적이고, 본 발 명을 제한하거나 그 응용 또는 사용들을 제한하는 것은 아니다. 명료성을 위해, 동일 참조 번호들은 도면에서 동일 엘리먼트를 나타내도록 사용된다. 여기에 사용된 바와 같이, 용어인 모듈 및/또는 디바이스는 ASIC(application specific integrated circuit), 전자 회로, 하나 이상의 소프트웨어나 펌웨어 프로그램들을 실행하는 프로세서(공유, 전용 또는 그룹) 및 메모리, 결합 로직 회로, 및/또는 규정된 기능을 제공하는 적절한 컴포넌트들을 가리킨다.
여기서 사용된 바와 같이, 용어 "고 전력 모드"는 호스트 프로세서의 주 그래픽 프로세서 및/또는 호스트 프로세서의 액티브 오퍼레이션을 말한다. 용어 "저 전력 모드"는 저-전력 동면(hibernating) 모드들, 오프(off) 모드들, 및/또는 보조 프로세서와 보조 그래픽스 프로세서가 동작가능할 때 주 프로세서 및/또는 주 그래픽스 프로세서의 비-응답(non-responsive) 모드들을 말한다. "오프 모드"는 주 및 보조 프로세서들 모두가 오프된 상태를 말한다.
용어 "저 전력 디스크 드라이브" 또는 LPDD는 1.8"보다 작거나 같은 직경을 가진 하나 이상의 플래터(platter)를 갖는 디스크 드라이브 및/또는 마이크로드라이브를 말한다. 용어 "고 전력 디스크 드라이브" 또는 HPDD는 1.8"보다 큰 직경을 가진 하나 이상의 플래터(platter)를 갖는 하드 디스크 드라이브를 말한다. LPDD는 전형적으로 HPDD보다 더 낮은 저장 성능을 가지며 더 적은 전력을 소모한다. LPDD는 또한 HPDD보다 높은 속도로 회전된다. 예를들어, 10,000-20,000 RPM 또는 그 이상의 회전 속도가 LPDD에서 얻어질 수 있다.
비휘발성 메모리 인터페이스(IF)를 갖는 HDD는 호스트의 표준 반도체 메모리 인터페이스를 경유해서 호스트 디바이스에 연결될 수 있는 하드 디스크 드라이브를 말한다. 예를들어, 반도체 메모리 인터페이스는 플래시 인터페이스일 수 있다.
비휘발성 메모리 IF를 갖는 HDD는 비휘발성 메모리 인터페이스 프로토콜을 이용하여 비휘발성 메모리 인터페이스를 경유해서 호스트와 통신한다. 호스트와 비휘발성 메모리 인터페이스를 갖는 HDD에 의해 사용되는 비휘발성 메모리 인터페이스는 플래시 인터페이스를 갖는 플래시 메모리, NAND 플래시 인터페이스를 갖는 NAND 플래시, 또는 반도체 메모리 인터페이스의 어떤 다른 형태를 포함할 수 있다. 비휘발성 메모리 IF를 갖는 HDD는 LPDD 및/또는 HPDD일 수 있다. 비휘발성 메모리 IF를 갖는 HDD는 아래에서 도27 및 28과 함께 더 설명될 것이다. 플래시 IF를 갖는 HDD의 동작에 관한 추가적인 상세 사항은 2005년 12월 29일 출원의 미국특허출원 11/322,447에서 발견할 수 있는데, 이 전체를 여기에 참고자료로 원용한다. 아래에서 개시될 각 구현예에서, LPDD는 비휘발성 메모리 IF를 갖는 HDD(HPDD 및/또는 LPDD로서 구현되는)를 이용하여 구현될 수 있다. 대안적으로, 비휘발성 메모리 IF를 갖는 HDD는 개시된 LPDD 및/또는 HPDD에 추가하여 사용되는 LPDD 및/또는 HPDD일 수 있다.
본 발명에 따른 컴퓨터 아키텍처는 주 프로세서, 주 그래픽스 프로세서, 그리고 주 메모리(도1A와 1B에서 설명됨)를 포함하며, 이것들은 고 전력 모드 동안에 동작한다. 보조 프로세서와 보조 그래픽스 프로세서는 저 전력 모드 동안에 동작된다. 보조 프로세서와 보조 그래픽스 프로세서는 컴퓨터의 여러 컴포넌트들에 연결되는데, 아래에서 설명된다. 주 휘발성 메모리는 저 전력 모드 동안에 보조 프로세 서 및 보조 그래픽스 프로세서에 의해 사용될 수 있다. 대안적으로, DRAM과 같은 보조 비휘발성 메모리 및/또는 임베디드 DRAM과 같은 임베디드 보조 휘발성 메모리가 아래에서 설명되는 바와 같이 사용될 수 있다.
주 프로세서와 주 그래픽스 프로세서는 고 전력 모드에서 동작할 때 비교적 높은 전력을 소모한다. 주 프로세서와 주 그래픽스 프로세서는 모든 특성을 가진 오퍼레이팅 시스템(OS)을 실행시키는데, 이는 비교적 많은 양의 외부 메모리를 필요로 한다. 주 프로세서와 주 그래픽스 프로세서는 복잡한 계산과 고급 그래픽스를 포함하는 고 성능 동작을 지원한다. 모든 특성을 갖는 OS는 윈도우 XP와 같은 윈도우 기반의 OS, 리눅스 기반의 OS, MAC 기반의 OS 등일 수 있다. 모든 특성을 갖는 OS는 HPDD(15 및/또는 50)에 저장된다.
보조 프로세서 및 보조 그래픽스 프로세서는 저 전력 모드 동안에 (주 프로세서 및 주 그래픽스 프로세서보다) 더 적은 전력을 소모한다. 보조 프로세서 및 보조 그래픽스 프로세서는 제한된 특성을 가진 OS를 동작시키는데, 이것은 비교적 적은 양의 외부 휘발성 메모리를 필요로 한다. 보조 프로세서 및 보조 그래픽스 프로세서는 또한 주 프로세서와 동일한 OS를 사용한다. 예를들어, 모든 특성을 가진 OS의 긴축(pared-down) 버전이 사용될 수 있다. 보조 프로세서 및 보조 그래픽스 프로세서는 더 낮은 성능의 오퍼레이션, 더 낮은 계산 속도 및 덜 고급의 그래픽스를 지원한다. 예를들어, 제한된 특성을 가진 OS는 윈도우 CE 또는 다른 적절한 제한 특성의 OS일 수 있다. 제한 특성의 OS는 플래시 메모리, 비휘발성 메모리 IF를 갖는 HDD, HPDD 및/또는 LPDD와 같은 비휘발성 메모리에 저장되는 것이 바람직하다. 바람직한 실시예에서, 모든 특성의 및 제한 특성의 OS는 복잡도를 줄이기 위해 공통의 데이터 포맷을 공유한다.
주 프로세서 및/또는 주 그래픽스 프로세서는 바람직하게는 비교적 작은 피처 크기(feature size)를 갖는 제조 프로세스를 이용하여 구현되는 트랜지스터들을 포함한다. 한 구현예에서, 이들 트랜지스터들은 개선된 CMOS 제조 프로세스를 이용하여 구현된다. 주 프로세서 및/또는 주 그래픽스 프로세서에서 구현된 트랜지스터들은 비교적 높은 대기 누설(standby leakage), 비교적 짧은 채널들을 가지고, 높은 속도를 위해 사이즈되어 있다. 주 프로세서 및 주 그래픽스 프로세서는 바람직하게는 지배적인 동적 로직을 이용한다. 달리 말해, 그것들은 슈트다운(shut down)될 수 없다. 다른 듀티 사이클이 사용될 수도 있지만, 트랜지스터들은 약 20%보다 작은 바람직하게는 약 10%보다 작은 듀티 사이클로 스위치된다.
반대로, 보조 프로세서 및/또는 보조 그래픽스 프로세서는 바람직하게는 주 프로세서 및/또는 주 그래픽스 프로세서를 위해 사용된 프로세스 보다 더 큰 피처 크기(feature size)들을 갖는 제조 프로세스를 가지고 구현되는 트랜지스터들을 포함한다. 한 구현예에서, 이들 트랜지스터들은 보통의 CMOS 제조 프로세스를 이용하여 구현된다. 보조 프로세서 및/또는 보조 그래픽스 프로세서에서 구현된 트랜지스터들은 비교적 낮은 대기 누설(standby leakage), 비교적 긴 채널들을 가지고, 그리고 낮은 속도를 위해 사이즈되어 있다. 보조 프로세서 및 보조 그래픽스 프로세서는 바람직하게는 동적 로직보다 지배적인 정적 로직을 이용한다. 다른 듀티 사이클이 사용될 수도 있지만, 트랜지스터들은 약 80%보다 큰 바람직하게는 90%보다 큰 듀티 사이클로 스위치된다.
주 프로세서 및 주 그래픽스 프로세서는 고 전력 모드에서 동작될 때 비교적 높은 전력을 소모한다. 보조 프로세서 및 보조 그래픽스 프로세서는 저 전력 모드에서 동작할 때보다 적은 전력을 소모한다. 저 전력 모드에서, 컴퓨터 아키텍처는 고 전력 모드에서 동작할 때 덜 복잡한 그래픽스와 더 적은 수의 피처(feature)들 및 계산들을 지원할 수 있다. 능숙한 기술자들에게 인식될 수 있는 바와 같이, 본 발명에 따른 컴퓨터 아키텍처를 구현하는 방법은 많다. 그러므로, 당업자는 도2A-4C와 함께 아래에 설명될 아키텍처는 단지 성질상 예시적일 뿐 제한하는 것은 아님을 인식할 것이다.
도2A를 보면, 제1 예시의 컴퓨터 아키텍처(60)가 도시되어 있다. 주 프로세서(6), 휘발성 메모리(9) 그리고 주 그래픽스 프로세서(11)는 인터페이스(8)와 통신하고, 고 전력 모드 동안에 복잡한 데이터 및 그래픽스 프로세싱을 지원한다. 보조 프로세서(62)와 보조 그래픽스 프로세서(64)는 인터페이스(8)와 통신하고 저 전력 모드 동안에 덜 복잡한 데이터 및 그래픽스 프로세싱을 지원한다. LPDD(66), 및/또는 비휘발성 메모리 IF를 갖는 플래시 메모리 및/또는 HDD(69)와 같은 선택적인(optional) 비휘발성 메모리(65)는 인터페이스(8)와 통신하고 저 전력 및/또는 고 전력 모드들 동안에 데이터의 저전력 비휘발성 저장을 제공한다. 비휘발성 메모리 IF를 갖는 HDD는 LPDD 및/또는 HPDD일 수 있다. HPDD(15)는 고 전력/성능 비휘발성 메모리를 제공한다. 비휘발성 메모리(65) 및/또는 HPDD(15)는 제한 특성의 OS 및/또는 다른 데이터 및 파일을 저 전력 모드 동안에 저장하는데 사용된다.
이 실시예에서, 보조 프로세서(62)와 보조 그래픽스 프로세서(64)는 저 전력 모드에서 동작하는 동안 휘발성 메모리(9)(또는 주 메모리)를 이용한다. 그 때문에, 인터페이스(8)의 적어도 일부는 저 전력 모드 동안에 전력이 공급되어 주 메모리와의 통신 및/또는 저 전력 모드 동안에 전력이 공급된 컴포넌트들 사이의 통신을 지원한다. 예를들어, 키보드(13), 포인팅 디바이스(14), 그리고 주 디스플레이(16)는 저 전력 모드 동안에 전력이 공급될 수 있고 사용될 수 있다. 도2A-4C와 함께 설명되는 실시예들 모두에서, 감소된 성능(흑백 디스플레이와 같은)을 갖는 보조 디스플레이 및/또는 보조 입/출력 디바이스도 제공될 수 있고, 그리고 저 전력 모드 동안에 사용될 수 있다.
도2B를 보면, 도2A의 아키텍처와 유사한 제2의 예시적 컴퓨터 아키텍처(70)가 도시되어 있다. 이 실시예에서, 보조 프로세서(62)와 보조 그래픽스 프로세서(64)는 보조 휘발성 메모리(74 및/또는 76)와 통신한다. 보조 휘발성 메모리(74와 76)은 DRAM 또는 다른 적절한 메모리일 수 있다. 저 전력 모드 동안, 보조 프로세서(62)와 보조 그래픽스 프로세서(64)는 도2A에 도시되고 설명된 주 휘발성 메모리(9)에 덧붙여 및/또는 대신에 보조 휘발성 메모리(74 및/또는 76)를 각각 이용한다.
도2C를 보면, 도2A의 아키텍처와 유사한 제3의 예시적 컴퓨터 아키텍처(80)가 도시되어 있다. 보조 프로세서(62) 및/또는 보조 그래픽스 프로세서(64)는 임베디드 휘발성 메모리(84 및/또는 86)을 각각 포함한다. 저 전력 모드 동안, 보조 프로세서(62)와 보조 그래픽스 프로세서(64)는 주 휘발성 메모리에 덧붙여 및/또는 대신에 임베디드 휘발성 메모리(84 및/또는 86)를 각각 이용한다. 한 실시예에서, 다른 타입의 임베디드 휘발성 메모리가 사용될 수도 있지만, 임베디드 휘발성 메모리(84와 86)는 임베디드 DRAM(eDRAM)이다.
도3A를 보면, 본 발명에 따른 제4의 예시적 컴퓨터 아키텍처(100)가 도시되어 있다. 주 프로세서(25), 주 그래픽스 프로세서(26), 그리고 주 휘발성 메모리(28)는 프로세싱 칩셋(22)과 통신하고, 복잡한 데이터 및 그래픽스 프로세싱을 고 전력 모드 동안에 지원한다. 보조 프로세서(104)와 보조 그래픽스 프로세서(108)는 컴퓨터가 저 전력 모드에 있을 때 덜 복잡한 데이터 및 그래픽스 프로세싱을 지원한다. 이 실시예에서, 보조 프로세서(104)와 보조 그래픽스 프로세서(108)는 저 전력 모드에서 동작할 때 주 휘발성 메모리(28)를 이용한다. 그 때문에, 프로세싱 칩셋(22)은 저 전력 모드 동안에 그들 사이의 통신을 용이하게 하기 위해 완전히(fully) 및/또는 부분적으로 전력이 공급될 수 있다. HPDD(50)는 고 전력 휘발성 메모리를 제공하기 위해 저 전력 모드 동안에 전력이 공급될 수 있다. 저 전력 비휘발성 메모리(109)(LPDD(100) 및/또는 비휘발성 메모리 IF를 갖는 HDD 및/또는 플래시 메모리(113))는 프로세싱 칩셋(22), I/O 칩셋(24)에 연결되고 다른 로케이션에서 저 전력 모드를 위한 제한 특성의 OS를 저장한다. 비휘발성 메모리 IF를 갖는 HDD는 LPDD 및/또는 HPDD일 수 있다.
프로세싱 칩셋(22)은 저 전력 모드 동안에 사용될 다른 컴포넌트들, LPDD(110), 및/또는 HPDD(50)의 동작을 지원하기 위해 완전히 및/또는 부분적으로 전력이 공급될 수 있다. 예를들어, 키보드 및/또는 포인팅 디바이스(42) 그리고 주 디스플레이는 저 전력 모드 동안에 사용될 수 있다.
도3B를 보면, 도3A와 유사한 제5의 예시적 컴퓨터 아키텍처(150)가 도시되어 있다. 보조 휘발성 메모리(154 및 158)는 보조 프로세서(104) 및/또는 보조 그래픽스 프로세서(108)에 각각 연결된다. 저 전력 모드 동안, 보조 프로세서(104)와 보조 그래픽스 프로세서(108)는 주 휘발성 메모리(28) 대신에 및/또는 더하여 보조 휘발성 메모리(154 및/또는 158)를 각각 이용한다. 프로세싱 칩셋(22)과 주 휘발성 메모리(28)는 원하다면 저 전력 모드 동안에 셧 다운(shut down)될 수 있다. 보조 휘발성 메모리(154 및 158)는 DRAM 또는 다른 적절한 메모리일 수 있다.
도3C를 보면, 도3A와 유사한 제6의 예시적 컴퓨터 아키텍처(170)가 도시되어 있다. 보조 프로세서(104) 및/또는 보조 그래픽스 프로세서(108)는 임베디드 메모리(174 및/또는 176)을 각각 포함한다. 저 전력 모드 동안, 보조 프로세서(104)와 보조 그래픽스 프로세서(108)는 주 휘발성 메모리(28) 대신에 및/또는 더하여 임베디드 메모리(174 및/또는 176)를 각각 이용한다. 한 실시예에서, 다른 타입의 임베디드 휘발성 메모리가 사용될 수도 있지만, 임베디드 휘발성 메모리(174와 176)는 임베디드 DRAM(eDRAM)이다.
도4A를 보면, 본 발명에 따른 제7의 예시적 컴퓨터 아키텍처(190)가 도시되어 있다. 보조 프로세서(104)와 보조 그래픽스 프로세서(108)는 I/O 칩셋(24)과 통신하고 저 전력 모드 동안에 휘발성 메모리로서 주 휘발성 메모리(28)를 이용한다. 프로세싱 칩셋(22)은 저 전력 모드 동안에 주 휘발성 메모리(28)에 대한 액세시를 허용하기 위해 완전히 및/또는 부분적으로 전력이 공급된 상태로 유지된다.
도4B를 보면, 도4A와 유사한 제8의 예시적 컴퓨터 아키텍처(200)가 도시되어 있다. 보조 휘발성 메모리(154 및 158)는 보조 프로세서(104) 및/또는 보조 그래픽스 프로세서(108)에 각각 연결되고, 그리고 저 전력 모드 동안에 주 휘발성 메모리(28) 대신에 및/또는 더하여 사용된다. 프로세싱 칩셋(22)과 주 휘발성 메모리(28)는 저 전력 모드 동안에 슈트 다운(shut down)될 수 있다.
도4C를 보면, 도4A와 유사한 제9의 예시적 컴퓨터 아키텍처(210)가 도시되어 있다. 임베디드 휘발성 메모리(174 및/또는 176)가 주 휘발성 메모리(28)에 더하여 및/또는 대신에 보조 프로세서(104)와 보조 그래픽스 프로세서(108)를 위해 각각 제공된다. 이 실시예에서, 프로세싱 칩셋(22)과 주 휘발성 메모리(28)는 저 전력 모드 동안에 슈트 다운될 수 있다.
도5를 보면, 도2A-4C에 도시된 컴퓨터 아키텍처에 대한 캐싱 계층(250)이 도시되어 있다. HP 비휘발성 메모리 HPDD(50)는 캐싱 계층(250)의 최하위 레벨(254)에 위치한다. 레벨(254)은 HPDD(50)가 디스에이블되는 경우 저 전력 모드 동안에 사용되거나 사용되지 않을 수 있고, 그리고 저 전력 모드 동안에 HPDD(50)가 인에이블되는 경우 사용될 것이다. LPDD(110), 플래시 메모리 및/또는 비휘발성 플래시 메모리 IF를 갖는 HDD와 같은 LP 비휘발성 메모리가 캐싱 계층(250)의 다음 레벨(258)에 위치된다. 주 휘발성 메모리, 보조 휘발성 메모리 및/또는 보조 임베디드 메모리와 같은 외부 휘발성 메모리는 캐싱 계층(250)의 다음 레벨(262)에 있는데, 이는 구성(configuration)에 의존한다. 레벨 2 또는 보조 캐시는 캐싱 계층(250)의 다음 레벨(266)을 구성한다. 레벨 1 캐시는 캐싱 계층(250)의 다음 레벨(268)이다. CPU(주 및/또는 보조)는 캐싱 계층의 최종 레벨(270)이다. 주 및 보조 그래픽스 프로세서는 유사한 계층을 사용한다.
본 발명에 따른 컴퓨터 아키텍처는 저 전력 모드를 제공하는데, 이는 덜 복잡한 프로세싱 및 그래픽스를 지원한다. 그 결과, 컴퓨터의 전력 소모가 상당히 줄어들 수 있다. 랩탑 응용에 대해서는 배터리 수명이 연장된다.
도6을 보면, 멀티-디스크 드라이브 시스템을 위한 드라이브 콘트롤 모듈(300) 또는 호스트 콘트롤 모듈은 최소 사용 블록(LUB) 모듈(304), 적응 스토리지 모듈(306) 및/또는 LPDD 유지 모듈(308)을 포함한다. 드라이브 콘트롤 모듈(300)은 하드 디스크 드라이브와 같은 고 전력 디스크 드라이브(LPDD)(312)와 마이크로드라이브와 같은 저 전력 디스크 드라이브(LPDD)(312) 사이의 저장 및 데이터 전송을 부분적으로 LUB에 기초해서 제어한다. 드라이브 콘트롤 모듈(300)은 고 및 저 전력 모드들 동안에 HPDD와 LPDD 사이의 데이터 저장 및 전송을 관리함으로써 전력 소모를 줄인다. 도6에 도시된 바와 같이, 비휘발성 메모리 IF를 갖는 HDD(317)는 LPDD로서 및/또는 LPDD에 덧붙여 사용될 수 있다. 드라이브 콘트롤 모듈(300)은 호스트 비휘발성 메모리 IF(315) 및 호스트(313)를 경유해서 비휘발성 메모리 IF를 갖는 HDD(317)와 통신한다. 드라이브 콘트롤 모듈(300)은 호스트(313) 및/또는 호스트 비휘발성 메모리 IF(315)와 함께 통합될 수 있다.
최소 사용 블록 모듈(304)은 LPDD(312)에서 데이터의 최소 사용 블록에 대한 정보를 끊임없이 얻어낸다. 저 전력 모드 동안에, 최소 사용 블록 모듈(304)은 LPDD(312) 내의 데이터(파일들 및/또는 프로그램들과 같은)의 최소 사용 블록을 확 인해서 필요할 때 교체될 수 있게 한다. 어떤 데이터 블록들이나 파일들은 최소 사용 블록 모니터링에서 면제될 수 있는데, 제한 특성의 OS에만 관련된 파일, LPDD(312)에 수동으로 세팅되어 저장된 블록들, 및/또는 저 전력 모드 동안에만 동작되는 다른 파일들과 프로그램들이다. 아래에서 설명되는 바와 같이, 덮어 쓰여지는 데이터 블록들을 선택하는데 다른 기준이 사용될 수도 있다.
저 전력 모드 중 데이터 저장 요청 동안에 적응 스토리지 모듈(306)은 쓰기 데이터가 가장 적게 사용된 블록들 이전에 더 사용될 가능성이 있는 지를 결정한다. 적응 스토리지 모듈(306)은 또한 읽기 데이터가 데이터 검색 요청 동안 저 전력 모드 중에 단지 한번만 사용될 가능성이 있는 지를 결정한다. LPDD 유지 모듈(308)은 고 전력 모드 동안에 및/또는 아래에 설명될 다른 상황들에서 오래된(aged) 데이터를 LPDD로부터 HPDD로 전송한다.
도7A를 보면, 드라이브 콘트롤 모듈(300)에 의해 수행되는 단계들이 도시되어 있다. 콘트롤은 단계 320에서 시작한다. 단계 324에서, 드라이브 콘트롤 모듈(300)은 데이터 저장 요청이 있는 지를 결정한다. 단계 324가 참이면, 드라이브 콘트롤 모듈(300)은 단계 328에서 LPDD(312)에 이용가능한 충분한 공간이 있는 지를 결정한다. 없으면, 드라이브 콘트롤 모듈(300)은 단계 330에서 HPDD(310)에 전력을 공급한다. 단계 334에서, 드라이브 콘트롤 모듈(300)은 최소 사용의 데이터 블록을 HPDD(310)으로 전송한다. 단계 336에서, 드라이브 콘트롤 모듈(300)은 LPDD(312)에 이용 가능한 충분한 공간이 있는 지를 결정한다. 없다면, 콘트롤은 단계 334로 루프한다. 그렇지 않다면, 드라이브 콘트롤 모듈(300)은 단계 340를 계속 하고, 그리고 HPDD(310)를 턴오프한다. 단계 344에서, 저장될 데이터(예를들어, 호스트로부터)는 LPDD(312)로 전송된다.
단계 324가 거짓이면, 드라이브 콘트롤 모듈(300)은 단계 350을 계속하고, 그리고 데이터 검색 요청이 있는 지를 결정한다. 없다면, 콘트롤은 단계 324로 리턴한다. 그렇지 않다면, 콘트롤은 단계 354를 계속하고, 그리고 데이터가 LPDD(312)에 위치하는 지를 결정한다. 단계 354가 참이면, 드라이브 콘트롤 모듈(300)은 단계 356에서 LPDD(312)로부터 데이터를 검색하고, 그리고 단계 324를 계속한다. 그렇지 않다면, 드라이브 콘트롤 모듈(300)은 단계 360에서 HPDD(310)에 전력을 공급한다. 단계 364에서, 드라이브 콘트롤 모듈(300)은 요청된 데이터를 위하여 LPDD(312)에 이용 가능한 충분한 공간이 있는 지를 결정한다. 없다면, 드라이브 콘트롤 모듈(300)은 단계 366에서 최소 사용 데이터 블록을 HPDD(310)로 전송하고, 그리고 단계 364를 계속한다. 단계 364가 참이면, 단계 368에서 드라이브 콘트롤 모듈(300)이 데이터를 LPDD(312)로 전송하고, LPDD(312)로부터 데이터를 검색한다. 단계 370에서, LPDD(312)로의 데이터 전송이 완료되면, 콘트롤은 HPDD(310)를 턴오프한다.
도7B를 보면, 도7A에 도시된 것과 유사한 수정 어프로치가 이용되고, 적응 스토리지 모듈(306)에 의해 수행되는 하나 이상의 적응 단계들을 포함한다. 단계 328에서 LPDD에 이용 가능한 충분한 공간이 있을 때, 콘트롤은 저장될 데이터가 단계 372에서 최소 사용 블록 모듈에 의해 확인되는 최소 사용 블록 또는 블록들의 데이터 이전에 사용될 가능성이 있는 지를 결정한다. 단계 372가 거짓이면, 드라이브 콘트롤 모듈(300)은 단계 374에서 데이터를 HPDD에 저장하고, 그리고 콘트롤은 단계 324를 계속한다. 그렇게 함으로써, 최소 사용 블록(들)을 LPDD로 전송하는데 소모되는 전력이 줄어들 수 있다. 단계 372가 참이면, 도7A에 관해서 위에서 설명한 바와 같이 콘트롤은 단계 330을 계속한다.
데이터 검색 요청 동안에 단계 354가 거짓일 때, 콘트롤은 단계 376을 계속하고, 데이터가 한번이라도 사용될 가능성이 있는 지를 결정한다. 단계 376이 참이면, 드라이브 콘트롤 모듈(300)은 단계 378에서 HPDD로부터 데이터를 검색하고, 그리고 단계 324를 계속한다. 그렇게 함으로써, 데이터를 LPDD로 전송하는데 소모되는 전력이 줄어들 수 있다. 단계 376이 거짓이면, 콘트롤은 단계 360을 계속한다. 알 수 있는 바와 같이, 데이터가 한번이라도 사용될 가능성이 있으면, 데이터를 LPDD로 이동시킬 필요는 없다. 그러나, HPDD의 전력 소모는 피할 수 없다.
도7C를 보면, 더 단순화된 형태의 콘트롤도 저 전력 동작 동안에 수행될 수 있다. 유지 단계들은 또한 고 전력 및/또는 저 전력 모드들(LPDD 유지 모듈(308)을 이용하여) 동안에 수행될 수 있다. 단계 328에서, LPDD에 이용 가능한 충분한 공간이 있다면, 데이터는 단계 344에서 LPDD로 전송되고, 그리고 콘트롤은 단계 324로 리턴한다. 그렇지 않다면, 단계 328이 거짓일 때, 데이터는 단계 380에서 HPDD에 저장되고, 그리고 콘트롤은 단계 324로 리턴한다. 알 수 있는 바와 같이, 도7C에 도시된 접근법은 용량이 이용가능할 때 LPDD를 이용하고 그리고 LPDD 용량이 이용 가능하지 않을 때 HPDD를 이용한다. 당업자라면, 도7A-7D의 단계들의 다양한 결합들을 이용하는 하이브리드 방법들이 이용될 수 있음을 이해할 것이다.
도7D에서, 유지 단계들은 드라이브 콘트롤 모듈(300)에 의해 수행되는데, 이는 고 전력 모드로 리턴할 때 및/또는 LPDD에 저장된 미사용 또는 낮은 사용 파일들을 삭제하는 다른 때에 이루어진다. 이 유지 단계는 또한 저 전력 모드에서 수행될 수 있는데, 사용 중에는 주기적으로, 디스크 풀 이벤트와 같은 이벤트의 발생 때, 및/또는 다른 상황들에서 이루어진다. 콘트롤은 단계 390에서 시작한다. 단계 392에서, 콘트롤은 고 전력 모드가 사용 중인 지를 결정한다. 아니라면, 콘트롤은 단계 7D로 백 루프한다. 단계 392가 참이면, 콘트롤은 단계 394에서 최후 모드가 저 전력 모드인 지를 판단한다. 아니라면, 콘트롤은 단계 392로 리턴한다. 단계 394가 거짓이면, 콘트롤은 오래되거나 낮은 사용의 파일들을 LPDD로부터 HPDD로 이동시키는 것과 같은 유지를 단계 396에서 수행한다. 적응 결정들은 파일들이 장래에 사용될 가능성이 있는 지에 대해서도 행해질 수 있는데, 예를들어 위에서 설명되고 도8A-10과 함께 아래에서 설명될 기준을 이용한다.
도8A 및 8B를 보면, 스토리지 콘트롤 시스템들(400-1, 400-2, 400-3)이 도시되어 있다. 도8A에서, 스토리지 콘트롤 시스템(400-1)은 적응 스토리지 콘트롤 모듈(414)을 갖는 캐시 콘트롤 모듈(410)을 포함한다. 적응 스토리지 콘트롤 모듈(414)은 파일들 및/또는 프로그램들의 용도(usage)를 모니터해서 그것들이 저 전력 모드 또는 고 전력 모드에서 사용될 가능성이 있는 지를 결정한다. 캐시 콘트롤 모듈(410)은 하나 이상의 데이터 버스들(416)과 통신하고, 차례로 L1 캐시, L2 캐시, DRAM과 같은 휘발성 RAM, 및/또는 다른 휘발성 전자 데이터 스토리지와 같은 휘발성 메모리(422)와 통신한다. 버스들(416) 또한 저 전력 비휘발성 메모리(424)(플래시 메모리, 비휘발성 메모리 IF를 갖는 HDD 및/또는 LPDD와 같은) 및/또는 HPDD(426)와 같은 고 전력 비휘발성 메모리(426)와 통신한다. 도8B에서, 모든 특성의 및/또는 제한 특성의 OS(430)가 적응 스토리지 콘트롤 모듈(414)를 포함하는 것으로 도시되어 있다. 적절한 인터페이스 및/또는 콘트롤러들(미도시)이 데이터 버스와 HPDD 및/또는 LPDD 사이에 위치된다.
도8C에서, 호스트 콘트롤 모듈(440)은 적응 스토리지 콘트롤 모듈(414)을 포함한다. 호스트 콘트롤 모듈(440)은 LPDD(426')와 하드 디스크 드라이브(426')와 통신한다. 호스트 콘트롤 모듈(440)은 드라이브 콘트롤 모듈, IDE(Integrated Device Electronics), ATA, SATA(serial ATA) 또는 다른 콘트롤러일 수 있다. 도8C에서 볼 수 있듯이, 비휘발성 메모리 IF(431)를 갖는 HDD는 LPDD로서 및/또는 LPDD에 덧붙여 사용될 수 있다. 호스트 콘트롤 모듈(440)은 호스트 비휘발성 메모리 IF(429)를 경유해서 비휘발성 메모리 IF(431)를 갖는 HDD와 통신한다. 호스트 콘트롤 모듈(440)은 호스트 비휘발성 메모리 IF(429)와 함께 통합될 수 있다.
도9를 보면, 도8A-8C의 스토리지 콘트롤 시스템들에 의해 수행되는 단계들이 도시되어 있다. 도9에서, 콘트롤은 단계 460에서 시작한다. 단계 462에서, 콘트롤은 비휘발성 메모리에 데이터 저장을 위한 요청이 있는 지를 판단한다. 없다면, 콘트롤은 단계 462로 백 루프한다. 그렇지 않으면, 적응 스토리지 콘트롤 모듈(414)은 단계 464에서 데이터가 저 전력 모드에서 사용될 가능성이 있는 지를 결정한다. 단계 464가 거짓이면, 데이터는 단계 468에서 HPDD에 저장된다. 단계 464가 참이면, 데이터는 단계 474에서 비휘발성 메모리(444)에 저장된다.
도10을 보면, 데이터 블록이 저 전력 모드에서 사용될 가능성이 있는 지를 결정하는 하나의 방법이 도시되어 있다. 테이블(490)은 데이터 블록 기술자 필드(492), 저 전력 카운터 필드(493), 고 전력 카운터 필드(494), 사이즈 필드(495), 최후 사용 필드(496) 및/또는 매뉴얼 오버라이드 필드(497)를 포함한다. 특정 프로그램이나 파일이 저 전력 또는 고 전력 모드 동안에 사용될 때, 카운터 필드(493 및/또는 494)는 증가된다. 프로그램이나 파일의 데이터 저장이 비휘발성 메모리에 요구될 때, 테이블(492)가 액세스된다. 임계 퍼센티지 및/또는 카운트 값이 평가를 위해 사용될 수 있다. 예를들어, 파일 또는 프로그램이 저 전력 모드에서 시간의 80 퍼센트보다 크게 사용되면, 파일은 플래시 메모리, 비휘발성 메모리 IF를 갖는 HDD, 및/또는 마이크로드라이브와 같은 저 전력 비휘발성 메모리에 저장될 수 있다. 임계치가 충족되지 않으면, 파일 또는 프로그램은 고 전력 비휘발성 메모리에 저장된다.
인식될 수 있듯이, 카운터는 주기적으로 리셋될 수 있는데, 이는 소정 수의 샘플들 후에(달리 말해, 롤링 윈도우(rolling window)를 제공하기 위해) 및/또는 어떤 다른 기준을 이용하여 이루어진다. 게다가, 가능성은 가중될 수 있고, 그렇지 않으면 수정되고 그리고/또는 사이즈 필드(495)에 의해 교체된다. 달리 말해, 파일 사이즈가 커짐에 따라, 요구되는 임계값은 증가될 수 있는데, 이는 LPDD의 제한된 용량 때문이다.
사용 가능성 결정의 더 추가적 수정은 최후 사용 필드(496)에 의해 기록된 채 파일이 최종적으로 사용된 후로부터의 시간에 기초하여 이루어진다. 가능성 결정(likelihood determination)에서 하나의 팩터로서 최후 사용 후의 시간이 사용될 수 있고 그리고/또는 임계 날짜가 사용될 수 있다. 도10에 테이블이 도시되어 있지만, 사용되는 하나 이상의 필드들은 다른 로케이션들 및/또는 다른 데이터 구조들에 저장될 수 있다. 알고리즘 및/또는 2개 이상의 필드들의 가중 샘플링이 사용될 수 있다.
매뉴얼 오버라이드 필드(497)를 이용하는 것은 사용자 및/또는 OS로 하여금 사용 가능성 결정을 수동적으로 오버라이드할 수 있게 한다. 예를들어, 매뉴얼 오버라이드 필드는 LPDD에서 디폴트 스토리지를 위한 L 상태, HPDD에서 디폴트 스토리지를 위한 H 상태, 및/또는 자동 스토리지 결정에 위한 A 상태를 허용할 수 있다(위에서 설명된 바와 같이). 다른 매뉴얼 오버라이드 등급(classification)이 규정될 수 있다. 위의 기준에 더하여, LPDD에서 동작하는 컴퓨터의 현재의 전력 레벨은 결정을 조정하는데 사용될 수 있다. 당업자라면, 파일 또는 프로그램이 고 전력 또는 저 전력 모드들에서 사용될 가능성을 결정하는 다른 방법들이 있고, 이들은 본 발명의 개시 범위 내에 속함을 이해할 것이다.
도11A 및 11B를 보면, 드라이브 파워 감소 시스템들(500-1, 500-2 및 500-3)(집합적으로 500)이 도시되어 있다. 드라이브 파워 감소 시스템(500)은 제한되지 않은 오디오 및/또는 비디오 파일들과 같은 더 큰 연속적 액세스 파일의 세그먼트들을 주기 또는 다른 기준에 따라 저 전력 비휘발성 메모리로 버스트한다. 도11A에서, 드라이브 파워 감소 시스템(500-1)은 드라이브 파워 감소 콘트롤 모듈(522)을 갖는 캐시 콘트롤 모듈(520)을 포함한다. 캐시 콘트롤 모듈(520)은 하나 이상의 데이터 버스들(526)과 통신하고, 차례로 L1 캐시, L2 캐시, DRAM과 같은 휘발성 RAM, 및/또는 다른 휘발성 전자 데이터 스토리지와 같은 휘발성 메모리(530), 플래시 메모리, 비휘발성 메모리 IF를 갖는 HDD, 및/또는 LPDD와 같은 비휘발성 메모리(534), 그리고 HPDD(538)와 통신한다. 도11B에서, 드라이브 파워 감소 시스템(500-2)은 드라이브 파워 감소 콘트롤 모듈(522)를 갖는 모든 특성의 및/또는 제한 특성의 OS(542)를 포함한다. 적절한 인터페이스 및/또는 콘트롤러들(미도시)이 데이터 버스와 HPDD 및/또는 LPDD 사이에 위치된다.
도11C에서, 드라이브 파워 감소 시스템(500-3)은 적응 스토리지 콘트롤 모듈(522)을 갖는 호스트 콘트롤 모듈(560)을 포함한다. 호스트 콘트롤 모듈(560)은 하나 이상의 데이터 버스들(564)과 통신하고, 이것은 LPDD(534')와 하드 디스크 드라이브(538')와 통신한다. 호스트 콘트롤 모듈(560)은 드라이브 콘트롤 모듈, IDE(Integrated Device Electronics), ATA, SATA(serial ATA) 및/또는 다른 콘트롤러나 인터페이스일 수 있다. 도11C에서 볼 수 있듯이, 비휘발성 메모리 IF(531)를 갖는 HDD는 LPDD로서 및/또는 LPDD에 덧붙여 사용될 수 있다. 호스트 콘트롤 모듈(560)은 호스트 비휘발성 메모리 IF(529)를 경유해서 비휘발성 메모리 IF(531)를 갖는 HDD와 통신한다. 호스트 콘트롤 모듈(560)은 호스트 비휘발성 메모리 IF(529)와 함께 통합될 수 있다.
도12를 보면, 도11A-11C의 드라이브 파워 감소 시스템들(500)에 의해 수행되는 단계들이 도시되어 있다. 콘트롤은 단계 582에서 시작한다. 단계 584에서, 콘트롤은 시스템이 저 전력 모드에 있는 지를 판단한다. 없다면, 콘트롤은 단계 584로 백 루프한다. 단계 586이 참이면, 콘트롤은 단계 586을 계속하고, 여기서 콘트롤은 단계 586에서 큰 데이터 블록 액세스가 전형적으로 HPDD로부터 요청되는 지를 판단한다. 그렇지 않다면, 콘트롤은 단계 584로 백 루프한다. 단계 586이 참이면, 콘트롤은 단계 590을 계속하고, 그리고 데이터 블록이 순차적으로 액세스되는 지를 판단한다. 그렇지 않다면, 콘트롤은 단계 584로 백 루프한다. 단계 590이 참이면, 콘트롤은 단계 594를 계속하고, 그리고 플레이백 길이(playback length)를 결정한다. 단계 598에서, 콘트롤은 고 전력 비휘발성 메모리로부터 저 전력 비휘발성 메모리로의 데이터 전송을 위한 버스트 구간과 주파수(frequency)를 결정한다.
한 실시예에서, 버스트 간격과 주파수는 전력 소모를 줄이도록 최적화된다. 버스트 간격과 주파수는 바람직하게는 HPDD 및/또는 LPDD의 스핀업 타임, 비휘발성 메모리의 용량, 플레이백 레이트, HPDD 및/또는 LPDD의 스핀업 및 평형상태 전력 소모, 및/또는 순차 데이터 블록의 플레이백 길이에 기초한다.
예를들어, 고 전력 비휘발성 메모리는 동작 중에 1-2 W를 소모하고, 4-10 초의 스핀업 타임을 가지며, 그리고 전형적으로 20 Gb보다 큰 용량을 가지는 HPDD이다. 저 전력 비휘발성 메모리는 동작 중에 0.3-0.5 W를 소모하고, 1-3 초의 스핀업 타임과 1-6 Gb의 용량을 가지는 마이크로드라이브이다. 인식할 수 있듯이, 위의 성능 값들 및/또는 용량들은 다른 구현예들에서 변할 것이다. HPDD는 마이크로드라이브에 대해 1 Gb/s의 데이터 전송 속도를 가질 수 있다. 플레이백 레이트는 10 Mb/s일 수 있다(예를들어, 비디오 파일들에 대해). 인식될 수 있듯이, HPDD의 전송 속도와 버스트 간격의 곱은 마이크로드라이브의 용량을 초과해서는 안된다. 버스트들 사이의 간격은 스핀업 타임과 버스트 간격의 합보다 커야 한다. 이들 파라미터들 내에서, 시스템의 소비 전력이 최적화될 수 있다. 저 전력 모드에서, HPDD가 무비와 같은 전체 비디오를 플레이하도록 동작되면, 상당한 양의 전력이 소모된다. 위에서 설명된 방법을 이용하여, 전력 소모는 상당히 줄어들 수 있는데, 이는 매우 높은 속도로(예를들어 플레이백 레이트의 100배) 고정 구간들로 이격된 다수의 버스트 세그먼트들에서 데이터를 HPDD로부터 LPDD로 선택적으로 전송하고, 이후 HPDD는 슈트 다운될 수 있도록 함으로써 이루어진다. 50% 이상의 전력 절약이 쉽게 얻어질 수 있다.
도13을 보면, 본 발명에 따른 멀티-디스크 드라이브 시스템(640)이 도시되어 있는데, 이는 드라이브 콘트롤 모듈(650), 그리고 하나 이상의 HPDD(644)와 하나 이상의 LPDD(648)를 포함한다. 드라이브 콘트롤 모듈(650)은 호스트까지 호스트 콘트롤 모듈(651)을 경유해서 호스트 디바이스와 통신한다. 아래에서 설명되는 바와 같이, 멀티-디스크 드라이브 시스템(640)은 HPDD(644)와 LPDD(648)을 하나의 디스크 드라이브로 효과적으로 동작시켜 복잡도를 감소시키고, 성능을 개선하고, 그리고 전력 소모를 줄인다. 호스트 콘트롤 모듈(651)은 IDE, ATA, SATA, 및/또는 다른 콘트롤 모듈이나 인터페이스일 수 있다.
도14를 보면, 한 구현예에서, 드라이브 콘트롤 모듈(650)은 LPDD 및/또는 HPDD 중 하나 또는 모두를 제어하는데 사용되는 하드 디스크 콘트롤러(HDC)를 포함한다. 버퍼(656)는 HPDD 및/또는 LPDD의 제어에 관련된 정보를 저장하고, 및/또는 HPDD 및/또는 LPDD 로/부터의 데이터를 공격적으로 버퍼하여 데이터 블록 사이즈들을 최적화함으로써 데이터 전송 속도들을 증가시킨다. 프로세서(657)는 HPDD 및/또는 LPDD의 동작에 관련된 프로세싱을 수행한다.
HPDD(648)는 하나 이상의 플래터(652)를 포함하는데, 이는 마그네틱 필드들을 저장하는 마그네틱 코팅을 갖는다. 플래터들(652)은 654에서 개략적으로 도시된 스핀들 모터에 의해 회전된다. 일반적으로, 스핀들 모터(654)는 읽기/쓰기 동작들 중에 고정 속도로 플래터(652)를 회전시킨다. 하나 이상의 읽기/쓰기 아암들(658)은 플래터들(652)에 비례적으로 이동하여 플래터들(652)로/부터 데이터를 읽고 및/또는 쓴다. HPDD(648)가 LPDD보다 더 큰 플래터들을 가지므로, HPDD를 스핀업하고 HPDD를 속도 유지하기 위해 스핀들 모터(654)에 의해 더 많은 전력이 요구된다. 보통, 또한 스핀업 타임은 HPDD에 대해서 더 높다.
읽기/쓰기 디바이스(659)는 읽기/쓰기 아암(658)의 원격단(distal end) 가까이에 위치한다. 읽기/쓰기 디바이스(659)는 마그네틱 필드를 생성하는 인덕터와 같은 쓰기 엘리먼트를 포함한다. 읽기/쓰기 디바이스(659)는 또한 플래터(652) 상의 마그네틱 필드를 센싱하는 읽기 엘리먼트(마그네토-레지스티브(MR:magneto resistive) 엘리먼트와 같은)를 포함한다.
데이터를 읽을 때, 프리앰프 회로(660)는 읽기 엘리먼트로부터의 낮은 레벨 신호를 증폭하고, 증폭된 신호를 읽기/쓰기 채널 디바이스로 출력한다. 데이터를 쓸 때, 읽기/쓰기 디바이스(659)의 쓰기 엘리먼트를 통해 흐르는 쓰기 전류가 생성되고 포지티브 또는 네거티브 극성을 가진 마그네틱 필드를 생성하도록 스위치된다. 포지티브 또는 네거티브 극성이 플래터(652)에 저장되고, 데이터를 나타내기 위해 사용된다. LPDD(644)는 또한 하나 이상의 플래터들(662), 스핀들 모터(664), 하나 이상의 읽기/쓰기 아암들(668), 읽기/쓰기 디바이스(669), 그리고 프리앰프 회로(670)를 포함한다. 프리앰프회로(660)는 아날로그 읽기/쏘그 신호를 증폭한다.
HDC(653)는 호스트 콘트롤 모듈(651)과 통신하고, 그리고 제1 스핀들/보이스 코일 모터(VCM) 드라이버(672), 제1 읽기/쓰기 채널 회로(674), 제2 스핀들/VCM 드라이버(676), 그리고 제2 읽기/쓰기 채널 회로(678)와 통신한다. 호스트 콘트롤 모듈(651)과 드라이브 콘트롤 모듈(650)은 시스템 온 칩(SOC)(684)에 의해 구현될 수 있다. 인식할 수 있듯이, 스핀들 VCM 드라이버들(672,676) 및/또는 읽기/쓰기 채널 회로들(674,678)은 결합될 수 있다. 스핀들/VCM 드라이버들(672,676)은 스핀들 모터들(654,664)을 제어하는데, 이것들은 플래터들(652,662)을 각각 회전시킨다. 스핀들/VCM 드라이버들(672,676)는 또한 예를들어, 보이스 코일 액츄에이터, 스텝퍼 모터 또는 어떤 다른 적절한 액츄에이터를 이용하여 읽기/쓰기 아암들(658,668)을 각각 위치시키는 제어 신호들을 생성한다.
도15-17을 보면, 멀티-디스크 드라이브 시스템의 다른 변형들이 도시되어 있다. 도15에서, 드라이브 콘트롤 모듈(650)은 하나 이상의 LPDD(682)에 외부 연결을 제공하기 위한 다이렉트 인터페이스(680)를 포함한다. 한 구현예에서, 다이렉트 인터페이스는 PCI(Peripheral Component Interconnect) 버스, PCIX(PCI Express) 버스, 및/또는 어떤 다른 적절한 버스나 인터페이스이다.
도16에서, 호스트 콘트롤 모듈(651)은 LPDD(644)와 HPDD(648) 모두와 통신한다. 저 전력 드라이브 콘트롤 모듈(650LP)과 고 전력 디스크 드라이브 콘트롤 모듈(650HP)은 직접 호스트 콘트롤 모듈과 통신한다. LP 및/또는 HP 드라이브 콘트롤 모듈들 중 0, 하나 또는 둘 모두는 SOC로 구현될 수 있다. 도16에서 보는 바와 같 이, 비휘발성 메모리 IF를 갖는 HDD(695)는 LPDD로서 및/또는 LPDD에 덧붙여 사용될 수 있다. 호스트 콘트롤 모듈(651)은 호스트 비휘발성 메모리 IF(693)를 경유해서 비휘발성 메모리 IF를 갖는 HDD(695)와 통신한다. 호스트 콘트롤 모듈(651)은 호스트 비휘발성 메모리 IF(693)와 함께 통합될 수 있다.
도17에서, 하나의 예시 LPDD(682)가 도시되어 있는데, 이는 다이렉트 인터페이스(680)와의 통신을 지원하는 인터페이스(690)를 포함한다. 위에서 설명된 바와 같이, 인터페이스(680,690)는 PCI 버스, PCIX 버스, 및/또는 어떤 다른 적절한 버스나 인터페이스일 수 있다. LPDD(682)는 HDC(692), 버퍼(694) 및/또는 프로세서(696)를 포함한다. 위에서 설명한 바와 같이, LPDD(682)는 또한 스핀들/VCM 드라이버(676), 읽기/쓰기 채널 회로(678), 플래터(662), 스핀들 모터(665), 읽기/쓰기 아암(668), 읽기 엘리먼트(669), 그리고 프리임프(670)를 포함한다. 대안으로, HDC(653), 버퍼(656) 그리고 프로세서(658)가 양 드라이브를 위해 결합되고 사용될 수 있다. 마찬가지로, 스핀들/VCM 드라이버와 읽기 채널 회로가 선택적으로 결합될 수 있다. 도13-17의 실시예에서, LPDD의 공격적인 버퍼링은 성능을 증가시키기 위해서 사용된다. 예를들어, 버퍼들은 호스트 데이터 버스들에 걸쳐 최적 속도를 위한 데이터 블록 사이즈들을 최적화하는데 사용된다.
종래의 컴퓨터 시스템에서, 페이징 파일은 컴퓨터의 휘발성 메모리에 맞지 않는 프로그램들 및/또는 데이터 파일들의 부분들을 홀딩하기 위해 OS에 의해 사용되는 HPDD 또는 HP 비휘발성 메모리 상에 숨겨진 파일이다. 페이징 파일 및 물리적 메모리, 또는 RAM 은 컴퓨터의 가상 메모리를 규정한다. OS는 필요할 때 데이터를 페이징 파일로부터 메모리로 전송하고 새로운 데이터를 위한 공간을 만들기 위해 휘발성 메모리로부터 페이징 파일로 데이터를 리턴한다. 페이징 파일은 또한 스왑 파일(swap file)로 불린다.
도18-20를 보면, 본 발명은 LPDD, 비휘발성 메모리 IF를 갖는 HDD 및/또는 플래시 메모리와 같은 LP 비휘발성 메모리를 이용하여 컴퓨터 시스템의 가상 메모리를 증가시킨다. 도18에서, OS(700)는 사용자가 가상 메모리(702)를 정의하는 것을 가능하게 한다. 동작 중에, OS(700)는 하나 이상의 버스들(704)을 경유해서 가상 메모리(702)에 어드레스한다. 가상 메모리(702)는 휘발성 메모리(708), 그리고 플래시 메모리, 비휘발성 메모리 IF를 갖는 HDD 및/또는 LPDD와 같은 LP 비휘발성 메모리(710) 모두를 포함한다.
도19를 보면, OS는 사용자가 가상 메모리를 증가시키기 위해서 페이징 메모리로서 LP 비휘발성 메모리(710)의 일부 또는 모두를 할당하는 것을 허용한다. 단계 720에서 콘트롤이 시작한다. 단계 724에서, OS는 추가 페이징 메모리가 요청되는 지를 판단한다. 아니라면, 콘트롤은 단계 724로 백 루프한다. 그렇지 않다면, 단계 728에서 OS는 페이징 파일 사용을 위해서 LP 비휘발성 메모리의 일부를 할당하여 가상 메모리를 증가시킨다.
도20에서, OS는 추가 LP 비휘발성 메모리를 페이징 메모리로 이용한다. 콘트롤은 단계 740에서 시작한다. 단계 744에서, 콘트롤은 OS가 데이터 쓰기 동작을 요청하고 있는 지를 판단한다. 참이면, 콘트롤은 단계 748을 계속하고, 그리고 휘발성 메모리의 용량이 초과되는 지를 판단한다. 아니라면, 휘발성 메모리는 단계 750에서 쓰기 동작을 위해 사용된다. 단계 748이 참이면, 단계 754에서 데이터는 LP 비휘발성 메모리 내의 페이징 파일에 저장된다. 단계 744가 거짓이면, 콘트롤은 단계 760을 계속하고, 그리고 데이터 읽기가 요청되는 지를 판단한다. 거짓이면, 콘트롤은 단계 744로 백 루프한다. 그렇지 않다면, 콘트롤은 단계 764에서 어드레스가 RAM 어드레스와 일치하는 지를 판단한다. 단계 764가 참이면, 콘트롤은 단계 764에서 휘발성 메모리로부터 데이터를 읽고, 단계 744를 계속한다. 단계 764가 거짓이면, 콘트롤은 단계 770에서 LP 비휘발성 메모리 내의 페이징 파일로부터 데이터를 읽고, 그리고 콘트롤은 단계 744를 계속한다.
이해할 수 있듯이, 가상 메모리의 사이즈를 증가시키기 위해서 플래시 메모리, 비휘발성 메모리 IF를 갖는 HDD 및/또는 LPDD와 같은 LP 비휘발성 메모리를 사용하는 것은 HPDD를 이용하는 시스템들과 비교하여 컴퓨터의 성능을 증가시킬 것이다. 게다가, 전력 소모는 페이징 파일을 위해 HPDD를 사용하는 시스템들보다 더 낮게 될 것이다. HPDD는 그것의 증가된 사이즈로 인해 추가적인 스핀업 타임을 필요로 하고, 이것은 스핀업 지연(latency)이 없는 플래시 메모리 및/또는 더 짧은 스핀업 타임과 더 낮은 전력 소모를 갖는 비휘발성 메모리 IF를 갖는 LPDD나 LPDD HDD와 비교하여 데이터 액세스 타임을 증가시킨다.
도21을 보면, RAID(Redundant Array of Independent Disks) 시스템(800)이 도시되어 있는데, 이는 디스크 어레이(808)와 통신하는 하나 이상의 서버들 및/또는 클라이언트들(804)을 포함한다. 하나 이상의 서버들 및/또는 클라이언트들(804)은 디스크 어레이 콘트롤러(812) 및/또는 어레이 관리 모듈(814)을 포함한다. 디스 크 어레이 콘트롤러(812) 및/또는 어레이 관리 모듈(814)은 데이터를 수신하고 디스크 어레이(808)에 대해 데이터의 논리적 대 물리적(logical to [physical) 어드레스 매핑을 실행한다. 디스크 어레이는 전형적으로 다수의 HPDD(816)를 포함한다.
다수 HPDD들(816)은 고장허용범위(fault tolerance)(리던던시) 및/또는 개선된 데이터 액세스 속도를 제공한다. RAID 시스템(800)은 디스크 어레이(808)가 마치 하나의 큰 하드 디스크 드라이브인 것처럼 다수의 개별 HPDD를 액세스하는 방법을 제공한다. 집합적으로, 디스크 어레이(808)는 수백 Gb에서 수십 수백 Tb의 데이터 저장을 제공한다. 데이터는 다수의 HPDD들(816)에 여러 방식으로 저장되어 하나의 드라이브가 고장난 경우 모든 데이터가 소실되는 위험을 줄이고, 그리고 데이터 액세스 타임을 개선한다.
HPDD들(816)에 데이터를 저장하는 방법은 일반적으로 RAID 레벨이라고 불린다. RAID 레벨 0 또는 디스크 스트리핑(disk striping)을 포함하여 다양한 RAID 레벨들이 있다. RAID 0 시스템들에서, 데이터는 다수 드라이브들을 가로지르는 블록들에 쓰여져 하나의 드라이브가 다음이 다음 블록을 찾고 있는 동안 데이터 블록을 쓰거나 읽는 것을 가능하게 한다. 디스크 스트리핑의 이점은 더 높은 액세스 속도와 어레이 용량의 충분한 이용을 포함한다. 불리한 점은 고장허용범위가 없다는데 있다. 하나의 드라이브가 고장나면, 어레이의 전체 콘텐츠가 액세스 불가능하게 된다.
RAID 레벨 1 또는 디스크 미러링(disk mirroring)은 각 드라이브에 한번씩 이중으로 쓰기함으로써 리던던시를 제공한다. 하나의 드라이브가 고장나면, 다른 것이 그 데이터의 정확한 복사본을 가지고 있고, 그래서 RAID 시스템은 사용자 접근성에서 시간 경과 없이 미러 드라이브를 이용하는 것으로 스위치할 수 있다. 불리한 점은 데이터 액세스 속도에서 개선이 부족하고, 필요한 드라이브 수(2N)가 증가됨으로써 더 높은 비용이 발생하는 점이다. 그러나, RAID 레벨 1은 최상의 데이터 보호를 제공하는데, 이는 HPDD들 중 하나가 고장났을 때 어레이 관리 소프트웨어가 모든 응용 요청들을 살아있는 HPDD들로 단순히 다이렉트할 것이기 때문이다.
RAID 레벨 3은 에러 정정/복구를 위해 패리티에 전용된 추가 드라이브를 가지고 다수 드라이브를 가로질러 데이터를 스트립한다. RAID 레벨 5는 에러 복구를 위한 패리티는 물론 스트리핑을 제공한다. RAID 레벨 5에서, 패리티 블록은 어레이의 드라이브들 사이에 분산되는데, 이것은 드라이브들에 걸쳐 더 밸런스된 액세스 로드를 제공한다. 패리티 정보는 하나의 드라이브가 고장날 경우 데이터를 복구하는데 사용된다. 불리한 점은 비교적 낮은 쓰기 사이클(2 읽기와 2 쓰기가 쓰여진 각 블록에 대해 요구된다)이다. 어레이 용량은 N-1이고, 여기서 최소한의 3개 드라이브가 필요하다.
RAID 레벨 0+1은 패리티 없는 미러링과 스트리핑을 포함한다. 이점은 빠른 데이터 액세스(RAID 레벨 0와 같이), 그리고 단일의 드라이브 고장허용범위(RAID 레벨 1과 같이)이다. RAID 레벨 0+1은 여전히 2배의 디스크 수를 필요로 한다(RAID 레벨 1과 같이). 인식할 수 있듯이, 어레이(808)에 데이터를 저장하는 다른 RAID 레벨들 및/또는 방법들이 있을 수 있다.
도22A와 22B를 보면, 본 발명에 따른 RAID 시스템(834-1)은 X HPDD를 갖는 디스크 어레이(836)와 Y LPDD를 갖는 디스크 어레이(838)를 포함한다. 하나 이상의 클라이언트들 및/또는 서버(840)는 디스크 어레이 콘트롤러(842) 및/또는 어레이 관리 모듈(844)을 포함한다. 분리된 디바이스들(842,844)이 도시되어 있지만, 이들 디바이스들은 필요하면 통합될 수 있다. 인식할 수 있듯이, X는 2보다 크거나 같고, 그리고 Y는 1보다 크거나 같다. X는 Y보다 클 수 있고, Y보다 작을 수 있고, 및/또는 Y와 같을 수 있다. 예를들어, 도22B는 X=Y=Z인 RAID 시스템(834-1')을 보여주고 있다.
도23A, 23B, 24A 및 24B를 보면, RAID 시스템들(834-2,834-3)이 도시되어 있다. 도23A에는, LPDD 디스크 어레이(838)는 서버들/클라이언트들(840)과 통신하고, HPDD 디스크 어레이(836)는 LPDD 디스크 어레이(838)와 통신한다. RAID 시스템(834-2)은 LPDD 디스크 어레이(838)를 선택적으로 우회하는(circumvent) 관리 바이패스 경로(management bypass path)를 포함한다. 인식할 수 있듯이, X는 2보다 크거나 같고, 그리고 Y는 1보다 크거나 같다. X는 Y보다 클 수 있고, Y보다 작을 수 있고, 및/또는 Y와 같을 수 있다. 예를들어, 도23B는 X=Y=Z인 RAID 시스템(834-2')을 보여주고 있다. 도24A에는, HPDD 디스크 어레이(836)는 서버들/클라이언트들(840)과 통신하고, LPDD 디스크 어레이(838)는 HPDD 디스크 어레이(836)와 통신한다. RAID 시스템(834-2)은 LPDD 디스크 어레이(838)를 선택적으로 우회하는(circumvent) 점선으로 도시된 관리 바이패스 경로(management bypass path)를 포함할 수 있다. 인식할 수 있듯이, X는 2보다 크거나 같고, 그리고 Y는 1보다 크거나 같다. X는 Y보다 클 수 있고, Y보다 작을 수 있고, 및/또는 Y와 같을 수 있 다. 예를들어, 도24B는 X=Y=Z인 RAID 시스템(834-3')을 보여주고 있다. 이용된 방법은 라이트 쓰루우(write through) 및/또는 라이트 백(write back)을 도23A-24B에 포함할 수 있다.
어레이 관리 모듈(844) 및/또는 디스크 콘트롤러(842)는 LPDD 디스크 어레이(838)를 이용하여 HPDD 디스크 어레이(838)의 전력 소모를 줄인다. 전형적으로, 도21에서 종래의 RAID 시스템 내의 HPDD 디스크 어레이(808)는 동작 중에 항상 유지되어 필요한 데이터 액세스 타임들을 지원한다. 인식할 수 있듯이, HPDD 디스크 어레이(808)는 비교적 많은 양의 전력을 소비한다. 게다가, 많은 양의 데이터가 HPDD 디스크 어레이(808)에 저장되므로, HPDD들의 플래터들은 전형적으로 가능한한 크고, 이것은 더 높은 용량 스핀들 모터들을 필요로 하고, 그리고 데이터 액세스 타임들을 증가시키는데 이는 읽기/쓰기 아암들이 평균적으로 더 멀리 움직이기 때문이다.
본 발명에 따르면, 도6-17과 함께 위에서 설명된 기술들은 도22B에 도시된 RAID 시스템(834)에 선택적으로 이용되어 전력 소모 및 데이터 액세스 타임들을 줄인다. 도22A 및 도23A-24B에 도시되지는 않았지만, 본 발명에 따른 다른 RAID 시스템들은 또한 이들 기술들을 이용할 수 있다. 다른 말로 해서, 도6 및 7A-7D에서 설명된 LUB 모듈(304), 적응 스토리지 모듈(306) 및/또는 LPDD 유지 모듈은 디스크 어레이 콘트롤러(842) 및/또는 어레이 관리 콘트롤러(844)에 의해 선택적으로 구현되어 LPDD 디스크 어레이(838)에 데이터를 선택적으로 저장하고, 그 결과 전력 소모 및 데이터 액세스 타임들을 줄인다. 도8A-8C, 9 및 10에서 설명된 적응 스토리지 콘트롤 모듈(414)도 디스크 어레이 콘트롤러(842) 및/또는 어레이 관리 콘트롤러(844)에 의해 선택적으로 구현되어 전력 소모 및 데이터 액세스 타임들을 줄인다. 도11A-11C 및 12에서 설명된 드라이브 파워 감소 모듈(522)도 디스크 어레이 콘트롤러(842) 및/또는 어레이 관리 콘트롤러(844)에 의해 구현되어 전력 소모 및 데이터 액세스 타임들을 줄인다. 도13-17에 도시된 멀티-드라이브 시스템들 및/또는 다이렉트 인터페이스들은 HPDD 디스크 어레이(836) 내의 하나 이상의 HPDD를 가지고 구현되어 성능을 증가시키고 그리고 전력 소모 및 액세스 타임들을 줄인다.
도25를 보면, 종래 기술에 따른 NAS(network attached storage) 시스템(850)이 도시되어 있는데, 이는 스토리지 디바이스들(854), 스토리지 요청기들(858), 파일 서버(862), 그리고 통신 시스템(866)을 포함한다. 스토리지 디바이스들(854)은 전형적으로 디스크 드라이브들, RAID 시스템들, 테이프 드라이브들, 테이프 라이브러리들, 광 드라이브들, 주크박스들, 그리고 공유되는 다른 스토리지 디바이스들을 포함하고 있다. 스토리지 디바이스들(854)은 필수적인 아니지만 바람직하게는 객체 지향 디바이스들이다. 스토리지 디바이스들(854)은 요청기들(858)에 의한 데이터 저장 및 검색을 위해 I/O 인터페이스를 포함할 수 있다. 요청기들(858)은 전형적으로 서버들 및/또는 클라이언트들을 포함하는데, 이들은 스토리지 디바이스들(854)를 공유 및/또는 직접 액세스한다.
파일 서버(862)는 요청 인증과 리소스 로케이션과 같은 보안 기능과 관리를 수행한다. 스토리지 디바이스들(854)은 관리 디렉션을 위해 파일 서버(862)에 의존 하고, 한편 요청기들(858)은 파일 서버(862)가 그 책임을 떠맡는 범위만큼 스토리지 관리의 부담이 덜게 된다. 더 유사한 시스템들에서, 전용 파일 서버는 바람직하지 않을 수 있다. 이 상황에서, 요청기는 NAS 시스템(850)의 동작을 감독하는 책임을 떠맡을 수 있다. 그와 같이, 파일 서버(862)와 요청기(858)는 관리 모듈들(870,872)를 각각 포함하는 것으로 도시되어 있는데, 여기서 하나 또는 다른 및/또는 둘다 구비될 수도 있다. 통신 시스템(866)은 물리적 인프라인데, 이를 통해 NAS 시스템(850)의 컴포넌트들이 통신한다. 그것은 바람직하게는 네트워크와 채널 둘다의 속성을 갖고, 네트워크에서 모든 컴포넌트들을 연결하는 성능을 가지고, 그리고 전형적으로 채널에서 발견되는 적은 지연(low latency)을 갖는다.
NAS 시스템(850)에 전원이 공급되면, 스토리지 디바이스(854)는 자신들을 서로에게 또는 파일 서버(862)와 같은 레퍼런스의 공통 포인트에, 하나 이상의 요청기들(866)에, 및/또는 통신 시스템(866)에 확인시킨다. 통신 시스템(866)은 전형적으로 이것을 위해 사용될 네트워크 관리 기술들을 제공하는데, 이것들은 통신 시스템과 연계된 매체에 연결함으로써 액세스할 수 있다. 스토리지 디바이스들(854)과 요청기들(858)은 매체와 연결한다(log onto). 운영 환경(operating configuration)을 결정하기를 원하는 어떤 컴포넌트는 모든 다른 컴포넌트들을 확인하기 위해 매체 서비스들을 사용할 수 있다. 파일 서버(862)로부터, 요청기들(858)은 그것들이 액세스할 수 있는 스토리지 디바이스들(854)의 존재를 알게 되고, 한편 스토리지 디바이스들(854)은 그것들이 다른 디바이스를 로케이트할 필요가 있거나 백업과 같은 관리 서비스를 호출하고자 할 때 어디로 가야 하는 지를 알게 된다. 유사하게, 파일 서버(862)는 매체 서비스들로부터 스토리지 디바이스들(854)의 존재를 알 수 있다. 특정 인스톨의 보안에 의존해서, 요청기는 일부 장비에 대한 액세스가 거부될 수 있다. 액세스 가능한 스토리지 디바이스들의 세트로부터, 그것은 파일들, 데이터베이스들, 그리고 이용 가능한 빈 공간을 식별할 수 있다.
동시에, 각 NAS 컴포넌트는 알려지기를 원하는 어떤 특정 고려사항들을 파일 서버(862)에 확인할 수 있다. 임의의 디바이스 레벨 서비스 속성은 일단 파일 서버(862)에 통신될 수 있고, 여기서 모든 다른 컴포넌트들은 그것들을 알 수 있다. 예를들어, 요청기는 개시(startup)에 연속된 추가 스토리지의 삽입(introduction)을 알려 주기를 원할 수 있는데, 이것은 요청기가 파일 서버(862)에 연결될 때 속성 세트(attribute set)에 의해 트리거된다. 새로운 스토리지 디바이스들이 구성에 추가될 때마다 파일 서버(862)는 자동으로 이 처리를 할 수 있는데, RAID 5, 미러된 것임, 등과 같은 같은 중요한 특징들을 전달하는 것을 포함하면서 이루어진다.
요청기가 파일을 열어야 할 때, 그것은 스토리지 디바이스들(854)로 직접 갈 수 있거나 또는 그것은 허가 및 로케이션 정보를 위해 파일 서버로 가야만 할 수도 있다. 파일 서버(854)가 스토리지에 대한 액세스를 어느 범위까지 제어하는 가는 인스톨의 보안 요구들의 함수이다.
도26을 보면, 본 발명에 따른 NAS(network attached storage) 시스템(900)이 도시되어 있는데, 이는 스토리지 디바이스들(904), 요청기들(908), 파일 서버(912), 그리고 통신 시스템(916)을 포함한다. 스토리지 디바이스들(904)은 도6-19에서 설명된 RAID 시스템(834) 및/또는 멀티-디스크 드라이브 시스템들(930)을 포함한다. 위에서 설명한 바와 같이, 스토리지 디바이스들(904)은 전형적으로 또한 디스크 드라이브들, RAID 시스템들, 테이프 드라이브들, 테이프 라이브러리들, 광 드라이브들, 주크박스들, 및/또는 공유되는 임의의 다른 스토리지 디바이스들을 포함하고 있다. 인식할 수 있듯이, 개선된 RAID 시스템들 및/또는 멀티-디스크 드라이브 시스템들(930)을 사용하는 것은 NAS 시스템(900)의 데이터 액세스 타임들과 전력 소모를 줄인다.
도27를 보면, 디스크 드라이브 콘트롤러는 비휘발성 메모리와 디스크 드라이브 인터페이스 콘트롤러를 포함하고 있다. 다른 말로, 도27의 HDD는 비휘발성 메모리 인터페이스(이후, 비휘발성 메모리 인터페이스(IF)를 갖는 HDD라 함)를 갖는다. 도27의 디바이스는 HDD가 기존의 비휘발성 메모리 인터페이스(IF)에 연결되어 추가적 비휘발성 스토리지를 제공한다.
디스크 드라이브 콘트롤러(1100)는 호스트(1102) 및 디스크 드라이브(1104)와 통신한다. 비휘발성 메모리 IF를 갖는 HDD는 디스크 드라이브 콘트롤러(1100)와 디스크 드라이브(1104)를 포함한다. 디스크 드라이브(1104)는 전형적으로 ATA, ATA-CE, 또는 IDE 타입 인터페이스를 갖는다. 또한, 보조 비휘발성 메모리(1106)가 디스크 드라이브 콘트롤러(1100)에 연결되는데, 이는 디스크 드라이브 콘트롤러를 위한 펌웨어 코드를 저장한다. 이 경우, 호스트(1102)는 단일 블록으로 도시되어 있지만 전형적으로 관련 컴포넌트들로서 상업적으로 이용가능한 비휘발성 메모리 디바이스들에 연결되기 위한 타입의 산업 표준 비휘발성 메모리 슬롯(커넥터)를 포함하는데, 이것은 차례로 호스트 내의 표준 비휘발성 메모리 콘트롤러에 연결된다. 이 슬롯은 전형적으로 표준 타입들, 예를들어 MMC(multi media card), SD(secure data), SD와 MMC의 결합인 SD/MMC, HS-MMC(high speed MMC), SD와 HS-MMC의 결합인 SD/HS-MMC, 그리고 메모리 스틱 중 하나를 따른다. 이 리스트는 제한적이지 않다.
전형적인 응용은 휴대용 컴퓨터 또는 MP3 음악 플레이어나 휴대전화 핸드셋과 같은 소비자 전자 장비인데, 이것은 비휘발성 메모리 인터페이스를 통해 임베디드 비휘발성 메모리와 통신하는 하나의 응용 프로세서를 갖는다. 비휘발성 메모리 인터페이스는 플래시 인터페이스, NAND 플래시 인터페이스 및/또는 다른 적절한 비휘발성 반도체 메모리 인터페이스를 포함할 수 있다. 본 개시에 따르면, 비휘발성 반도체 메모리보다는 오히려, 하드 디스크 드라이브 또는 다른 타입의 디스크 드라이브가 제공되어 비휘발성 반도체 메모리를 대체하고 그것의 인터페이스 신호들을 이용할 수 있다. 개시된 방법은 디스크 드라이브를 위하여 비휘발성 메모리 같은 인터페이스를 제공하는데, 이것은 플래시 메모리를 정상적으로만 어셉트하는 호스트 시스템에서 디스크 드라이브를 통합하는 것을 더 쉽게 만든다. 스토리지 디바이스로서 플래시 메모리에 비해 디스크 드라이브의 한 이점은 특정 비용으로 휠씬 더 큰 저장 용량이라는 것이다.
개시된 인터페이스 콘트롤러를 이용하여 디스크 드라이브를 통합하기 위해 호스트 비휘발성 메모리 콘트롤러 펌웨어 및 소프트웨어에서 단지 최소의 변화가 이루어질 필요가 있다. 또한, 최소 커맨드 오버헤드가 제공된다. 유리하게는, 호스트와 디스크 드라이브 사이에 전송되는 로직 블록들의 수의 관점에서 어떤 특정 읽기 또는 쓰기 동작에 대해 오픈-엔디드(open-ended) 데이터 전송이 있다. 또한, 디스크 드라이브의 섹터 카운트가 호스트에 의해 제공될 필요가 없다.
어떤 실시예에서, 디스크 드라이브(1104)는 SFF(small form factor) 하드 디스크 드라이브일 수 있는데, 이것은 전형적으로 650×15×70 mm의 물리적 사이즈를 갖는다. 그러한 SSF 하드 디스크 드라이브의 전형적인 데이터 전송 속도는 초당 25 메가바이트이다.
도27의 디스크 드라이브 콘트롤러(1100)의 기능들은 아래에서 더 설명된다. 디스크 드라이브 콘트롤러(1100)는 인터페이스 콘트롤러(1110)를 포함하는데, 이것은 호스트 시스템(1102)에 14 라인 버스를 갖는 플래시 메모리 콘트롤러로서 나타난다. 인터페이스 콘트롤러(1110)는 또한 호스트(1102)와 버퍼 관리기(1112) 사이의 데이터 흐름 제어와 호스트 커맨드 해석의 기능들을 수행한다. 버퍼 관리기 회로(1112)는 메모리 콘트롤러(1116)를 경유해서 액츄얼 버퍼(메모리)를 제어하는데, 이것은 인터페이스 콘트롤러(1100)와 같은 칩의 부분으로 포함되거나 별개의 칩상에 있을 수 있는 SRAM 또는 DRAM 버퍼(1118)일 수 있다. 버퍼 관리기는 아래에서 더 설명되는 버퍼링 특징들을 제공한다.
버퍼 관리기(1112)는 또한 프로세서 인터페이스/서보와 ID-부족/결함(less/defect) 관리기(MPIF/SAIL/DM) 회로(1122)에 연결되는데, 이것은 트랙 포맷 생성과 결합 관리의 기능들을 수행한다. MPIF/SAIL/DM 회로(1122)는 차례로 AHB(advanced high performance bus)(1126)로 연결한다. 라인 캐시(1128)와 프로세서(1130)가 AHB 버스(1126)에 연결되고, TCM(tightly coupled memory)(1134)는 프 로세서(130)에 관련된다. 프로세서(1130)는 임베디드 프로세서 또는 마이크로프로세서에 의해 구현될 수 있다. 라인 캐시(1128)의 목적은 코드 실행 지연을 줄이는 것이다. 그것은 외부 플래시 메모리(1106)에 결합될 수 있다.
디스크 드라이브 콘트롤러(1100) 내의 다른 블록들은 디스크 드라이브를 지원하는 기능을 수행하고, 그리고 서보 콘트롤러(1140), 디스크 포맷터 및 에러 정정 회로(1142), 그리고 읽기 채널 회로(1144)를 포함하는데, 이것은 디스크 드라이브(1104) 내의 프리-앰플리케이션 회로에 연결된다. 8개 라인(0-7)을 갖는 14-라인 병렬 버스는 양-방향 입력/출력(I/O) 데이터를 전송할 수 있다. 나머지 라인들은 커맨드들, CLE, ALE, /CE, /RE, /WE 및 R/B를 각각 전송할 수 있다.
도28을 보면, 도27의 인터페이스 콘트롤러가 보다 상세히 도시되어 있다. 인터페이스 콘트롤러(1110)는 플래시 콘트롤러(flash-ctl) 블록(1150), 플래시 레지스터(flash_reg) 블록(1152), 플래시 FIFO 랩퍼(flash_fifo_wrapper) 블록(1154), 그리고 플래시 시스템 동기(flash_sys_syn) 블록(1156)을 포함한다.
플래시 레지스터 블록(1152)은 레지스터 액세스를 위해 사용된다. 그것은 프로세서(1130)와 호스트(1102)에 의해 프로그램된 커맨드들을 저장한다. 플래시 콘트롤러(1150) 내의 플래시 상태 머신(미도시)은 호스트(1102)로부터 들어오는 커맨드를 디코드하고, 디스크 드라이브 콘트롤러(1100)를 위한 콘트롤들을 제공한다. 플래시 FIFO 랩퍼(1154)는 FIFO를 포함하는데, 이것은 32×32 양방향 비동기 FIFO에 의해 구현될 수 있다. 그것은 데이터를 생성하고, 그리고 버퍼 관리기 인터페이스(BM IF)를 경유해서 버퍼 관리기(1112)로 데이터를 전송하고 버퍼 관리기(1112) 로부터 데이터를 수신하기 위한 신호들을 제어한다. FIFO의 전송 방향은 플래시 레지스터(1152)에 저장된 커맨드들에 의해 제어될 수 있다. 플래시 시스템 동기 블록(1156)은 인터페이스 콘트롤러와 버퍼 관리기 인터페이스 사이의 제어 신호들을 동기화한다. 그것은 또한 플래시 FIFO 랩퍼(1154)를 위한 카운터 클리어 펄스(clk2_clr)를 생성한다.
플래시 콘트롤러(1150)는 인터페이스 신호 라인들을 제어하여 LPDD의 랜덤 읽기를 구현할 수 있다. 플래시 콘트롤러(1150)는 인터페이스 신호 라인들을 제어하여 LPDD의 랜덤 쓰기를 구현할 수 있다. 플래시 콘트롤러(1150)는 인터페이스 신호 라인들을 제어하여 LPDD의 순차적 읽기를 구현하고, 그리고 인터페이스 신호 라인들을 제어하여 LPDD의 순차적 쓰기를 구현할 수 있다. 플래시 콘트롤러(1150)는 인터페이스 신호 라인들을 제어하여 콘트롤 모듈과 LPDD 사이의 커맨드들의 전송을 구현할 수 있다. 플래시 콘트롤러(1150)는 한 세트의 LPDD 커맨드들을 대응하는 세트의 플래시 메모리 커맨드들에 매핑할 수 있다.
레지스터 메모리(1152)는 프로세서 버스를 경유해서 인터페이스 콘트롤러 및 LPDD 프로세서와 통신한다. 레지스터 메모리(1152)는 LPDD 프로세서와 콘트롤 모듈에 의해 프로그램된 커맨드들을 저장한다. 플래시 콘트롤러(1150)는 LPDD로부터의 읽기 데이터를 버퍼 메모리에 저장하여 콘트롤 모듈과 LPDD 사이의 데이터 전송 속도 차이를 보상하고, 그리고 데이터 준비 신호를 콘트롤 모듈로 보내 메모리 버퍼에 데이터가 있음을 알린다.
플래시 콘트롤러(1150)는 콘트롤 모듈로부터의 쓰기 데이터를 버퍼 메모리에 저장하여 콘트롤 모듈과 LPDD 사이의 데이터 전송 속도 차이를 보상한다. 플래시 콘트롤러(1150)는 데이터 준비 신호를 콘트롤 모듈로 보내 메모리 버퍼에 데이터가 있음을 알린다.
도29를 보면, 플래시 인터페이스를 갖는 멀티-디스크 드라이브 시스템의 기능 블록도가 일반적으로 1200에서 도시되어 있다. 앞으로의 설명은 플래시 인터페이스를 갖는 하나의 디스크 드라이브(저 전력 또는 고 전력 디스크 드라이브와 같은)의 사용에 관련되어 있지만, 멀티 디스크 드라이브들은 플래시 인터페이스를 경유해서 연결될 수 있다. 보다 상세하게는, 플래시 인터페이스를 갖는 멀티-디스크 드라이브 시스템(1200)은 호스트 플래시 인터페이스(1206)를 포함하는데, 이것은 호스트(1202)의 플래시 인터페이스와 통신한다. 호스트 플래시 인터페이스(1202)는 위에서 설명한 바와 같이 동작한다. 드라이브 콘트롤 모듈(1208)은 HPDD(1220) 및 LPDD(1222) 중 0, 하나 또는 둘 모두를 선택적으로 동작시킨다. 저 전력 및 고 전력 모드들의 동작과 관련하여 위에서 설명된 콘트롤 기술들은 드라이브 콘트롤 모듈(1208)에 의해 수행될 수 있다. 몇 구현예에서, 호스트 플래시 인터페이스(1206)는 호스트의 전력 모드를 감지하고 및/또는 호스트(1202)의 전력 모드를 확인하는 정보를 수신한다.
도30을 보면, 도30의 멀티-디스크 드라이브에 의해 수행되는 단계를 예시하는 플로우챠트가 도시되어 있다. 콘트롤은 단계 1230에서 시작한다. 단계 1232에서, 콘트롤은 호스트가 온인 지를 판단한다. 단계 1232가 참이면, 단계 1234에서 콘트롤은 호스트가 고 전력 모드에 있는지 판단한다. 단계 1234가 참이면, 단계 1236에서 필요한 바와 같이, 콘트롤이 LPDD(1222) 및/또는 HPDD(1220)에 전력을 공급한다. 단계 1234가 거짓이면, 단계 1238에서 콘트롤은 호스트가 저 전력 모드에 있는 지를 판단한다. 단계 1238이 참이면, 단계 1240에서 콘트롤은 전력을 보존하는데 필요한 바와 같이 HPDD를 파워 다운하고 LPDD를 동작시킨다. 콘트롤은 단계 1238로부터 계속하고(거짓인 경우), 단계 1232와 단계 1240을 계속한다.
인식할 수 있듯이, 위에서 설명된 플래시 인터페이스를 갖는 HDD는 위에서 설명된 플래시 인터페이스를 갖는 멀티-디스크 드라이브를 사용할 수 있다. 게다가, LPDD 및 HPDD를 갖는 시스템들에 관하여 위에서 설명된 제어 기술들 중 임의의 기술이 도29에 도시된 플래시 인터페이스를 갖는 멀티-디스크 드라이브에 사용될 수 있다. LPDD 또는 HPDD는 위에서 설명된 실시예들 중 임의의 실시예에서 임의의 타입의 저 전력 비휘발성 메모리에 의해 교체될 수 있다. 예를들어, LPDD 또는 HPDD는 플래시 메모리로 한정되지 않은 임의의 비휘발성 고체상태 메모리에 의해 교체될 수 있다. 마찬가지로, 위에서 설명된 실시예들 중 임의의 실시예에 개시된 저 전력 비휘발성 메모리는 저 전력 디스크 드라이브들에 의해 대체될 수 있다. 플래시 메모리가 몇 실싱에서 위에 설명되었지만, 임의의 타입의 비휘발성 반도체 메모리도 사용될 수 있다.
당업자라면, 위의 개시로부터 본 발명의 넓은 개시가 다양한 형태로 구현될 수 있음을 인식할 수 있을 것이다. 그러므로, 본 발명이 특정 예들과 함께 설명되었지만, 본 발명의 진정한 범위는 제한되어서는 안된다. 왜냐하면, 다른 변형들이 도면, 상세한 설명 그리고 다음의 청구항들을 통해서 당업자에게 명백할 것이기 때문이다.

Claims (44)

  1. 고 전력 모드 및 저 전력 모드를 갖는 호스트 디바이스용 디스크 드라이브 시스템으로서,
    디스크 드라이브 콘트롤러;
    저 전력 디스크 드라이브(LPDD); 및
    고 전력 디스크 드라이브(HPDD)를 포함하고,
    상기 LPDD 및 상기 HPDD는 비휘발성 반도체 메모리(non-volatile semiconductor memory : NVSM) 인터페이스를 경유해서 상기 호스트 디바이스와 통신하며,
    상기 디스크 드라이브 콘트롤러는,
    상기 비휘발성 반도체 메모리 인터페이스, 상기 비휘발성 반도체 메모리 인터페이스는 상기 호스트 디바이스의 비휘발성 메모리 커넥터에 직접 연결되며;
    프로세서;
    버퍼 관리기로부터의 버퍼 데이터를 저장하는 버퍼; 및
    인터페이스 콘트롤러를 포함하고,
    상기 인터페이스 콘트롤러는,
    플래시 레지스터; 및
    플래시 콘트롤러를 포함하고,
    상기 플래시 레지스터는, (i) 라인 캐시와 상기 플래시 레지스터 사이, 및 (ii) 상기 프로세서와 회로 사이에 연결된 버스와 통신하고,
    상기 라인 캐시는 플래시 메모리에 연결되고,
    상기 회로는 상기 버퍼 관리기에 연결되고,
    상기 비휘발성 반도체 메모리 인터페이스는 상기 인터페이스 콘트롤러에 연결되고,
    상기 플래시 레지스터는 상기 호스트 디바이스로부터 수신된 커맨드들과 상기 프로세서로부터 수신된 커맨드들을 저장하며,
    상기 플래시 콘트롤러는 상기 호스트 디바이스의 호스트 인터페이스, 상기 플래시 레지스터, 및 플래시 퍼스트-인-퍼스트-아웃(first-in-first-out: FIFO) 랩퍼와 통신하며, 상기 플래시 퍼스트-인-퍼스트-아웃 랩퍼는 상기 버퍼 데이터를 상기 버퍼 관리기로 전송하고 그리고 상기 버퍼 관리기로부터 상기 버퍼 데이터를 수신하기 위한 콘트롤 신호들을 생성하도록 구성되며, 그리고
    상기 비휘발성 메모리 커넥터는 멀티 미디어 카드용으로 구성되는 것을 특징으로 하는 디스크 드라이브 시스템.
  2. 제1 항에 있어서,
    최소 사용 블록(LUB:least used block) 모듈을 갖는 제어 모듈을 더 포함하며, 상기 최소 사용 블록 모듈은 상기 LPDD 내의 LUB를 식별하고 데이터 저장 요청과 데이터 검색 요청 중 적어도 하나가 수신될 때 상기 저 전력 모드 동안 선택적으로(selectively) 상기 LUB를 상기 HPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  3. 제2 항에 있어서,
    쓰기 데이터(write data)를 위한 상기 저장 요청 동안에, 상기 LPDD에서 상기 쓰기 데이터를 위한 충분한 공간이 이용가능하면 상기 제어 모듈은 상기 쓰기 데이터를 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  4. 제2 항에 있어서,
    상기 LPDD에서 쓰기 데이터를 위해 이용가능한 공간이 불충분한 경우, 상기 제어 모듈은 상기 HPDD에 전력을 공급하고 상기 LUB를 상기 LPDD로부터 상기 HPDD로 전송하고 상기 쓰기 데이터를 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  5. 제2 항에 있어서, 상기 제어 모듈은 상기 LPDD에서 쓰기 데이터를 위해 이용가능한 공간이 불충분할 때 상기 쓰기 데이터가 상기 LUB 전에 사용될 가능성이 있는지를 결정하는 적응형 저장 모듈을 포함하는 것을 특징으로 하는 디스크 드라이브 시스템.
  6. 제5 항에 있어서,
    상기 쓰기 데이터가 상기 LUB 후에 사용될 가능성이 있으면, 상기 제어 모듈은 상기 쓰기 데이터를 상기 HPDD에 저장하는 것을 특징으로 하는 디스크 드라이브 시스템.
  7. 제5 항에 있어서,
    상기 쓰기 데이터가 상기 LUB 전에 사용될 가능성이 있으면, 상기 제어 모듈은 상기 HPDD에 전력을 공급하고 상기 LUB를 상기 LPDD로부터 상기 HPDD로 전송하고 상기 쓰기 데이터를 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  8. 제2 항에 있어서,
    읽기 데이터를 위한 상기 데이터 검색 요청 동안에, 상기 읽기 데이터가 상기 LPDD에 저장되어 있다면 상기 제어 모듈은 상기 LPDD로부터 상기 읽기 데이터를 검색하는 것을 특징으로 하는 디스크 드라이브 시스템.
  9. 제8 항에 있어서, 상기 제어 모듈은
    상기 읽기 데이터가 상기 LPDD에 위치되어 있지 않을 때 상기 읽기 데이터가 한번이라도 사용될 가능성이 있는지를 결정하는 적응형 저장 모듈을 포함하고, 여기서 상기 제어 모듈은 상기 읽기 데이터가 한번이라도 사용될 가능성이 있다면 상기 HPDD로부터 상기 읽기 데이터를 검색하는 것을 특징으로 하는 디스크 드라이브 시스템.
  10. 제9 항에 있어서,
    상기 적응형 저장 모듈이 상기 읽기 데이터가 한번 이상 사용될 가능성이 있다고 결정하면, 상기 제어 모듈은 상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능한 경우 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  11. 제9 항에 있어서,
    상기 적응형 저장 모듈이 상기 읽기 데이터가 한번 이상 사용될 가능성이 있다고 결정하면, 상기 제어 모듈은 상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능하지 않은 경우 상기 LUB를 상기 LPDD로부터 상기 HPDD로 그리고 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  12. 제8 항에 있어서, 상기 제어 모듈은
    상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능한 경우, 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  13. 제8 항에 있어서, 상기 제어 모듈은
    상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능하지 않은 경우, 상기 LUB를 상기 LPDD로부터 상기 HPDD로 그리고 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  14. 제8 항에 있어서,
    상기 읽기 데이터가 상기 LPDD에 위치되어 있지 않은 경우, 상기 제어 모듈은 상기 읽기 데이터를 상기 HPDD로부터 검색하는 것을 특징으로 하는 디스크 드라이브 시스템.
  15. 제1 항에 있어서,
    상기 HPDD는 1.8"보다 큰 직경을 갖는 하나 이상의 플래터(platter)를 포함하고, 그리고 상기 LPDD는 1.8" 이하의 직경을 갖는 하나 이상의 플래터를 갖는 것을 특징으로 하는 디스크 드라이브 시스템.
  16. 삭제
  17. 제1 항에 있어서,
    상기 LPDD 및 상기 HPDD와 통신하는 제어 모듈을 더 포함하고,
    상기 저 전력 모드에서 쓰기 데이터를 위한 저장 요청 동안에, 상기 제어 모듈은 상기 LPDD에서 상기 쓰기 데이터를 위한 충분한 공간이 이용가능한지를 결정하고 그리고 충분한 공간이 이용가능하다면 상기 쓰기 데이터를 상기 LPDD로 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  18. 삭제
  19. 제17 항에 있어서, 상기 제어 모듈은
    상기 LPDD에서 상기 쓰기 데이터를 위해 이용가능한 공간이 불충분하다면, 상기 쓰기 데이터를 상기 HPDD에 저장하는 것을 특징으로 하는 디스크 드라이브 시스템.
  20. 제17 항에 있어서, 상기 제어 모듈은
    고 전력 모드 동안에 데이터 파일들을 상기 LPDD로부터 상기 HPDD로 전송하여 상기 LPDD에서 이용가능한 디스크 공간을 증가시키는 LPDD 유지 모듈(maintenance module)을 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템.
  21. 제20 항에 있어서, 상기 LPDD 유지 모듈은
    에이지(age), 사이즈(size), 그리고 상기 저 전력 모드에서의 장래 사용의 가능성(likelihood of future use) 중 적어도 하나에 근거하여 상기 데이터 파일들을 전송하는 것을 특징으로 하는 디스크 드라이브 시스템.
  22. 제17 항에 있어서,
    상기 HPDD는 1.8"보다 큰 직경을 갖는 하나 이상의 플래터(platter)를 포함하고, 그리고 상기 LPDD는 1.8" 이하의 직경을 갖는 하나 이상의 플래터를 갖는 것을 특징으로 하는 디스크 드라이브 시스템.
  23. 고 전력 모드 및 저 전력 모드를 갖는 호스트 디바이스용 디스크 드라이브 시스템을 동작시키는 방법으로서,
    디스크 드라이브 콘트롤러, 저 전력 디스크 드라이브(LPDD), 및 고 전력 디스크 드라이브(HPDD)를 구비하는 단계;
    비휘발성 반도체 메모리 인터페이스를 경유해서 상기 LPDD와 상기 호스트 디바이스 사이에서 그리고 상기 HPDD와 상기 호스트 디바이스 사이에서 통신하는 단계,
    상기 디스크 드라이브 콘트롤러는,
    상기 비휘발성 반도체 메모리 인터페이스, 상기 비휘발성 반도체 메모리 인터페이스는 상기 호스트 디바이스의 비휘발성 메모리 커넥터에 직접 연결되고, 상기 비휘발성 메모리 커넥터는 멀티 미디어 카드용으로 구성되며,
    프로세서,
    버퍼 관리기로부터의 버퍼 데이터를 저장하는 버퍼, 및
    인터페이스 콘트롤러를 포함하고;
    상기 LPDD에서 최소 사용 블록(LUB:least used block)을 식별하는 단계;
    데이터 저장 요청과 데이터 검색 요청 중 적어도 하나가 수신될 때 상기 저 전력 모드 동안에 상기 LUB를 상기 HPDD로 선택적으로 전송하는 단계;
    쓰기 데이터를 위한 상기 저장 요청 동안에, 상기 LPDD에서 상기 쓰기 데이터를 위한 충분한 공간이 이용가능하면 상기 쓰기 데이터를 상기 LPDD로 전송하는 단계;
    상기 LPDD에서 상기 쓰기 데이터를 위해 이용가능한 공간이 불충분할 때, 상기 쓰기 데이터가 상기 LUB 전에 사용될 가능성이 있는지를 결정하는 단계,
    상기 인터페이스 콘트롤러는 플래시 레지스터를 포함하고,
    상기 플래시 레지스터는, (i) 라인 캐시와 상기 플래시 레지스터 사이, 및 (ii) 상기 프로세서와 회로 사이에 연결된 버스와 통신하며,
    상기 라인 캐시는 플래시 메모리에 연결되고,
    상기 회로는 상기 버퍼 관리기에 연결되고,
    상기 비휘발성 반도체 메모리 인터페이스는 상기 인터페이스 콘트롤러에 연결되며;
    상기 호스트 디바이스로부터 수신된 커맨드들과 상기 프로세서로부터 수신된 커맨드들을 상기 플래시 레지스터에 저장하는 단계,
    상기 인터페이스 콘트롤러는 플래시 콘트롤러를 포함하고, 상기 플래시 콘트롤러는 상기 호스트 디바이스의 호스트 인터페이스, 상기 플래시 레지스터, 및 플래시 퍼스트-인-퍼스트-아웃 랩퍼와 통신하며; 그리고
    상기 플래시 퍼스트-인-퍼스트-아웃 랩퍼에 의해, 상기 버퍼 데이터를 상기 버퍼 관리기로 전송하고 상기 버퍼 관리기로부터 상기 버퍼 데이터를 수신하기 위한 콘트롤 신호들을 생성하는 단계
    를 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  24. 제23 항에 있어서,
    상기 LPDD에서 최소 사용 블록(LUB:least used block)을 식별하는 단계; 그리고
    데이터 저장 요청과 데이터 검색 요청 중 적어도 하나가 수신될 때 상기 저 전력 모드 동안에 상기 LUB를 상기 HPDD로 선택적으로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  25. 제24 항에 있어서,
    쓰기 데이터를 위한 상기 저장 요청 동안에, 상기 LPDD에서 상기 쓰기 데이터를 위한 충분한 공간이 이용가능하면 상기 쓰기 데이터를 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  26. 제25 항에 있어서,
    상기 LPDD에서 상기 쓰기 데이터를 위해 이용가능한 공간이 불충분한 경우, 상기 HPDD에 전력을 공급하고 상기 LUB를 상기 LPDD로부터 상기 HPDD로 전송하고 그리고 상기 쓰기 데이터를 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  27. 제25 항에 있어서,
    상기 LPDD에서 상기 쓰기 데이터를 위해 이용가능한 공간이 불충분할 때, 상기 쓰기 데이터가 상기 LUB 전에 사용될 가능성이 있는지를 결정하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  28. 제27 항에 있어서,
    상기 쓰기 데이터가 상기 LUB 후에 사용될 가능성이 있으면, 상기 쓰기 데이터를 상기 HPDD에 저장하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  29. 제27 항에 있어서,
    상기 쓰기 데이터가 상기 LUB 전에 사용될 가능성이 있으면, 상기 HPDD에 전력을 공급하고 상기 LUB를 상기 LPDD로부터 상기 HPDD로 전송하고 그리고 상기 쓰기 데이터를 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  30. 제24 항에 있어서,
    읽기 데이터를 위한 상기 데이터 검색 요청 동안에, 상기 읽기 데이터가 상기 LPDD에 저장되어 있다면 상기 LPDD로부터 상기 읽기 데이터를 검색하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  31. 제30 항에 있어서,
    상기 읽기 데이터가 상기 LPDD에 위치되어 있지 않을 때, 상기 읽기 데이터가 한번이라도 사용될 가능성이 있는 지를 결정하는 단계; 그리고
    상기 읽기 데이터가 한번이라도 사용될 가능성이 있으면, 상기 HPDD로부터 상기 읽기 데이터를 검색하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  32. 제31 항에 있어서,
    상기 읽기 데이터가 한번 이상 사용될 가능성이 있으면, 상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능한 경우 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  33. 제31 항에 있어서,
    상기 읽기 데이터가 한번 이상 사용될 가능성이 있으면, 상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능하지 않은 경우 상기 LUB를 상기 LPDD로부터 상기 HPDD로 그리고 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  34. 제31 항에 있어서,
    상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능한 경우, 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  35. 제31 항에 있어서,
    상기 LPDD에서 상기 읽기 데이터를 위한 충분한 공간이 이용가능하지 않은 경우, 상기 LUB를 상기 LPDD로부터 상기 HPDD로 그리고 상기 읽기 데이터를 상기 HPDD로부터 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  36. 제31 항에 있어서,
    상기 읽기 데이터가 상기 LPDD에 위치되어 있지 않은 경우, 읽기 데이터를 상기 HPDD로부터 검색하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  37. 삭제
  38. 제23 항에 있어서,
    상기 저 전력 모드에서 쓰기 데이터를 위한 저장 요청 동안에, 상기 쓰기 데이터를 위하여 상기 LPDD에 충분한 공간이 이용가능한 지를 결정하는 단계, 그리고 충분한 공간이 이용가능하다면 상기 쓰기 데이터를 상기 LPDD로 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  39. 삭제
  40. 제38 항에 있어서,
    상기 쓰기 데이터를 위한 이용가능한 공간이 불충분하다면, 상기 쓰기 데이터를 상기 HPDD에 저장하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  41. 제38 항에 있어서,
    고 전력 모드 동안에 데이터 파일들을 상기 LPDD로부터 상기 HPDD로 전송하여 상기 LPDD에 이용가능한 디스크 공간을 증가시키는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  42. 제41 항에 있어서,
    에이지(age), 사이즈(size), 그리고 상기 저 전력 모드에서의 장래 사용의 가능성 중 적어도 하나에 근거하여 상기 데이터 파일들을 전송하는 단계를 더 포함하는 것을 특징으로 하는 디스크 드라이브 시스템을 동작시키는 방법.
  43. 삭제
  44. 삭제
KR1020087029319A 2006-05-10 2007-05-10 플래시 인터페이스를 갖는 하드 디스크 드라이브를 포함한 적응 저장 시스템 KR101379940B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US79915106P 2006-05-10 2006-05-10
US60/799,151 2006-05-10
US82086706P 2006-07-31 2006-07-31
US60/820,867 2006-07-31
US11/503,016 US7702848B2 (en) 2004-06-10 2006-08-11 Adaptive storage system including hard disk drive with flash interface
US11/503,016 2006-08-11
PCT/US2007/011326 WO2007133646A2 (en) 2006-05-10 2007-05-10 Adaptive storage system including hard disk drive with flash interface

Publications (2)

Publication Number Publication Date
KR20090018079A KR20090018079A (ko) 2009-02-19
KR101379940B1 true KR101379940B1 (ko) 2014-04-01

Family

ID=38694479

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087029319A KR101379940B1 (ko) 2006-05-10 2007-05-10 플래시 인터페이스를 갖는 하드 디스크 드라이브를 포함한 적응 저장 시스템

Country Status (6)

Country Link
US (2) US7702848B2 (ko)
EP (1) EP2016476B1 (ko)
JP (1) JP2009536767A (ko)
KR (1) KR101379940B1 (ko)
TW (1) TWI426444B (ko)
WO (1) WO2007133646A2 (ko)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070083785A1 (en) * 2004-06-10 2007-04-12 Sehat Sutardja System with high power and low power processors and thread transfer
US7730335B2 (en) * 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US7702848B2 (en) * 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US20070094444A1 (en) * 2004-06-10 2007-04-26 Sehat Sutardja System with high power and low power processors and thread transfer
US20080140921A1 (en) * 2004-06-10 2008-06-12 Sehat Sutardja Externally removable non-volatile semiconductor memory module for hard disk drives
US7788427B1 (en) 2005-05-05 2010-08-31 Marvell International Ltd. Flash memory interface for disk drive
US7617359B2 (en) * 2004-06-10 2009-11-10 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7634615B2 (en) * 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7401238B2 (en) * 2005-07-28 2008-07-15 Cassatt Corporation System and method for causing an idle image to execute on an application node of a distributed computing system when instructed to power down
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US8560760B2 (en) * 2007-01-31 2013-10-15 Microsoft Corporation Extending flash drive lifespan
US7657572B2 (en) * 2007-03-06 2010-02-02 Microsoft Corporation Selectively utilizing a plurality of disparate solid state storage locations
US8930144B2 (en) * 2007-12-07 2015-01-06 Med-Eng, Llc Method and apparatus for measuring data for injury analysis
US8375190B2 (en) * 2007-12-11 2013-02-12 Microsoft Corporation Dynamtic storage hierarachy management
JP5207792B2 (ja) * 2008-02-19 2013-06-12 キヤノン株式会社 情報処理装置及び情報処理方法
US8407697B2 (en) * 2008-06-09 2013-03-26 International Business Machines Corporation Application mobility using virtual real memory services
US20100325352A1 (en) * 2009-06-19 2010-12-23 Ocz Technology Group, Inc. Hierarchically structured mass storage device and method
EP2273365A1 (en) * 2009-06-26 2011-01-12 Thomson Licensing Combined memory and storage device in an apparatus for data processing
US8245060B2 (en) * 2009-10-15 2012-08-14 Microsoft Corporation Memory object relocation for power savings
KR101090407B1 (ko) * 2009-12-24 2011-12-06 주식회사 팍스디스크 듀얼 메모리 영역을 관리하는 반도체 스토리지 시스템의 제어 방법
EP2559036A1 (en) 2010-04-15 2013-02-20 Ramot at Tel-Aviv University Ltd. Multiple programming of flash memory without erase
US8990494B2 (en) 2010-11-01 2015-03-24 Taejin Info Tech Co., Ltd. Home storage system and method with various controllers
US8447925B2 (en) 2010-11-01 2013-05-21 Taejin Info Tech Co., Ltd. Home storage device and software including management and monitoring modules
US8462502B2 (en) 2010-11-09 2013-06-11 Hitachi, Ltd. Structural fabric of a storage apparatus for mounting storage devices
US9235500B2 (en) * 2010-12-07 2016-01-12 Microsoft Technology Licensing, Llc Dynamic memory allocation and relocation to create low power regions
US9977732B1 (en) * 2011-01-04 2018-05-22 Seagate Technology Llc Selective nonvolatile data caching based on estimated resource usage
US9183135B2 (en) * 2011-01-21 2015-11-10 Micron Technology, Inc. Preparation of memory device for access using memory access type indicator signal
US9477597B2 (en) 2011-03-25 2016-10-25 Nvidia Corporation Techniques for different memory depths on different partitions
US8701057B2 (en) 2011-04-11 2014-04-15 Nvidia Corporation Design, layout, and manufacturing techniques for multivariant integrated circuits
US9529712B2 (en) * 2011-07-26 2016-12-27 Nvidia Corporation Techniques for balancing accesses to memory having different memory types
WO2013108132A2 (en) 2012-01-20 2013-07-25 Marvell World Trade Ltd. Cache system using solid state drive
CN103246559B (zh) * 2012-02-10 2016-12-14 联想(北京)有限公司 应用处理方法和电子设备
WO2013184124A1 (en) * 2012-06-08 2013-12-12 Hewlett-Packard Development Company, L.P. Augmenting memory capacity for key value cache
US10528116B2 (en) 2013-03-14 2020-01-07 Seagate Technology Llc Fast resume from hibernate
US9600413B2 (en) * 2013-12-24 2017-03-21 Intel Corporation Common platform for one-level memory architecture and two-level memory architecture
US10474569B2 (en) 2014-12-29 2019-11-12 Toshiba Memory Corporation Information processing device including nonvolatile cache memory and processor
CN105824570B (zh) * 2015-01-04 2018-11-23 致伸科技股份有限公司 可降低耗电的硬盘装置以及降低硬盘装置耗电的方法
US10055144B1 (en) * 2016-03-30 2018-08-21 Amazon Technologies, Inc. Configurable storage drive
CN107861891A (zh) * 2017-11-14 2018-03-30 郑州天迈科技股份有限公司 用于公交车载硬盘的音视频数据存取方法
US11573737B2 (en) * 2020-03-02 2023-02-07 Silicon Motion, Inc. Method and apparatus for performing disk management of all flash array server
US11790947B1 (en) 2022-05-03 2023-10-17 Seagate Technology Llc Idle power saving for actuator device

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628469B1 (en) * 2000-07-11 2003-09-30 International Business Machines Corporation Apparatus and method for low power HDD storage architecture
US20040064647A1 (en) * 2002-06-27 2004-04-01 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory

Family Cites Families (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4425615A (en) 1980-11-14 1984-01-10 Sperry Corporation Hierarchical memory system having cache/disk subsystem with command queues for plural disks
US5150465A (en) 1988-11-30 1992-09-22 Compaq Computer Corporation Mode-selectable integrated disk drive for computer
US5293500A (en) 1989-02-10 1994-03-08 Mitsubishi Denki K.K. Parallel processing method and apparatus
EP0618535B1 (en) 1989-04-13 1999-08-25 SanDisk Corporation EEPROM card with defective cell substitution and cache memory
US5440749A (en) 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5455913A (en) 1990-05-14 1995-10-03 At&T Global Information Solutions Company System and method for transferring data between independent busses
JP3058209B2 (ja) * 1991-11-14 2000-07-04 セイコーエプソン株式会社 周辺装置カードおよび情報処理装置
JPH06266511A (ja) * 1993-03-15 1994-09-22 Canon Electron Inc Icカードインターフェイス付きディスク装置
US5485595A (en) * 1993-03-26 1996-01-16 Cirrus Logic, Inc. Flash memory mass storage architecture incorporating wear leveling technique without using cam cells
GB2286267A (en) 1994-02-03 1995-08-09 Ibm Energy-saving cache control system
US5596708A (en) * 1994-04-04 1997-01-21 At&T Global Information Solutions Company Method and apparatus for the protection of write data in a disk array
US5659718A (en) * 1994-08-19 1997-08-19 Xlnt Designs, Inc. Synchronous bus and bus interface device
JPH0883148A (ja) 1994-09-13 1996-03-26 Nec Corp 磁気ディスク装置
GB9419246D0 (en) 1994-09-23 1994-11-09 Cambridge Consultants Data processing circuits and interfaces
US5815726A (en) * 1994-11-04 1998-09-29 Altera Corporation Coarse-grained look-up table architecture
US5768164A (en) 1996-04-15 1998-06-16 Hewlett-Packard Company Spontaneous use display for a computing system
US6006320A (en) 1996-07-01 1999-12-21 Sun Microsystems, Inc. Processor architecture with independent OS resources
US5937423A (en) 1996-12-26 1999-08-10 Intel Corporation Register interface for flash EEPROM memory arrays
US6035408A (en) 1998-01-06 2000-03-07 Magnex Corp. Portable computer with dual switchable processors for selectable power consumption
US6578129B1 (en) * 1998-07-24 2003-06-10 Imec Vzw Optimized virtual memory management for dynamic data types
US6282614B1 (en) 1999-04-15 2001-08-28 National Semiconductor Corporation Apparatus and method for reducing the power consumption of a microprocessor with multiple levels of caches
US6457135B1 (en) 1999-08-10 2002-09-24 Intel Corporation System and method for managing a plurality of processor performance states
US6608729B1 (en) 1999-08-25 2003-08-19 Seagate Technology Llc Intelligent power management of disc drives
US6501999B1 (en) 1999-12-22 2002-12-31 Intel Corporation Multi-processor mobile computer system having one processor integrated with a chipset
US6631474B1 (en) 1999-12-31 2003-10-07 Intel Corporation System to coordinate switching between first and second processors and to coordinate cache coherency between first and second processors during switching
US6496915B1 (en) 1999-12-31 2002-12-17 Ilife Solutions, Inc. Apparatus and method for reducing power consumption in an electronic data storage system
US6594724B1 (en) * 2000-03-30 2003-07-15 Hitachi Global Storage Technologies Netherlands B.V. Enhanced DASD with smaller supplementary DASD
US6631469B1 (en) 2000-07-17 2003-10-07 Intel Corporation Method and apparatus for periodic low power data exchange
KR100353731B1 (ko) 2000-11-01 2002-09-28 (주)니트 젠 일회성 지문템플릿을 이용한 사용자 인증시스템 및 방법
US6785767B2 (en) 2000-12-26 2004-08-31 Intel Corporation Hybrid mass storage system and method with two different types of storage medium
US6986066B2 (en) 2001-01-05 2006-01-10 International Business Machines Corporation Computer system having low energy consumption
US20020129288A1 (en) 2001-03-08 2002-09-12 Loh Weng Wah Computing device having a low power secondary processor coupled to a keyboard controller
US7231531B2 (en) 2001-03-16 2007-06-12 Dualcor Technologies, Inc. Personal electronics device with a dual core processor
US20030153354A1 (en) 2001-03-16 2003-08-14 Cupps Bryan T. Novel personal electronics device with keypad application
US6976180B2 (en) 2001-03-16 2005-12-13 Dualcor Technologies, Inc. Personal electronics device
US7184003B2 (en) 2001-03-16 2007-02-27 Dualcor Technologies, Inc. Personal electronics device with display switching
US6725336B2 (en) 2001-04-20 2004-04-20 Sun Microsystems, Inc. Dynamically allocated cache memory for a multi-processor unit
TWI234074B (en) * 2001-05-03 2005-06-11 Kwok-Yan Leung Device and method for protecting data records in recording media
US6925529B2 (en) 2001-07-12 2005-08-02 International Business Machines Corporation Data storage on a multi-tiered disk system
US6859856B2 (en) 2001-10-23 2005-02-22 Flex P Industries Sdn. Bhd Method and system for a compact flash memory controller
US8181118B2 (en) 2001-11-28 2012-05-15 Intel Corporation Personal information device on a mobile computing platform
US6804632B2 (en) 2001-12-06 2004-10-12 Intel Corporation Distribution of processing activity across processing hardware based on power consumption considerations
US6639827B2 (en) 2002-03-12 2003-10-28 Intel Corporation Low standby power using shadow storage
KR100441608B1 (ko) 2002-05-31 2004-07-23 삼성전자주식회사 낸드 플래시 메모리 인터페이스 장치
US7269752B2 (en) 2002-06-04 2007-09-11 Lucent Technologies Inc. Dynamically controlling power consumption within a network node
US6775180B2 (en) 2002-12-23 2004-08-10 Intel Corporation Low power state retention
US7254730B2 (en) 2003-02-14 2007-08-07 Intel Corporation Method and apparatus for a user to interface with a mobile computing device
AU2003900764A0 (en) 2003-02-20 2003-03-06 Secure Systems Limited Bus bridge security system and method for computers
WO2004090889A1 (en) 2003-04-14 2004-10-21 Koninklijke Philips Electronics N.V. Format mapping scheme for universal drive device
US7221331B2 (en) 2003-05-05 2007-05-22 Microsoft Corporation Method and system for auxiliary display of information for a computing device
US7240228B2 (en) 2003-05-05 2007-07-03 Microsoft Corporation Method and system for standby auxiliary processing of information for a computing device
US7069388B1 (en) 2003-07-10 2006-06-27 Analog Devices, Inc. Cache memory data replacement strategy
US7925298B2 (en) 2003-09-18 2011-04-12 Vulcan Portals Inc. User interface for a secondary display module of a mobile electronic device
US7500127B2 (en) 2003-09-18 2009-03-03 Vulcan Portals Inc. Method and apparatus for operating an electronic device in a low power mode
US20050066209A1 (en) 2003-09-18 2005-03-24 Kee Martin J. Portable electronic device having high and low power processors operable in a low power mode
US7017059B2 (en) 2003-12-12 2006-03-21 Cray Canada Inc. Methods and apparatus for replacing cooling systems in operating computers
EP1697841A1 (en) 2003-12-16 2006-09-06 Real Enterprise Solutions Development B.V. Memory management in a computer system using different swapping criteria
US20060031510A1 (en) * 2004-01-26 2006-02-09 Forte Internet Software, Inc. Methods and apparatus for enabling a dynamic network of interactors according to personal trust levels between interactors
US7136973B2 (en) 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US7421602B2 (en) 2004-02-13 2008-09-02 Marvell World Trade Ltd. Computer with low-power secondary processor and secondary display
US7634615B2 (en) 2004-06-10 2009-12-15 Marvell World Trade Ltd. Adaptive storage system
US7702848B2 (en) 2004-06-10 2010-04-20 Marvell World Trade Ltd. Adaptive storage system including hard disk drive with flash interface
US7730335B2 (en) 2004-06-10 2010-06-01 Marvell World Trade Ltd. Low power computer with main and auxiliary processors
US7574541B2 (en) 2004-08-03 2009-08-11 Lsi Logic Corporation FIFO sub-system with in-line correction
US7437581B2 (en) 2004-09-28 2008-10-14 Intel Corporation Method and apparatus for varying energy per instruction according to the amount of available parallelism
US20060069848A1 (en) 2004-09-30 2006-03-30 Nalawadi Rajeev K Flash emulation using hard disk
US20060075185A1 (en) 2004-10-06 2006-04-06 Dell Products L.P. Method for caching data and power conservation in an information handling system
US7882299B2 (en) 2004-12-21 2011-02-01 Sandisk Corporation System and method for use of on-chip non-volatile memory write cache
TWI252983B (en) * 2004-12-29 2006-04-11 Inventec Corp Multi-channel serial ATA control system and control card thereof
US20060218324A1 (en) 2005-03-25 2006-09-28 Matsushita Electrical Industrial Co., Ltd Systems and methods for flexible data transfers in SDIO and/or MMC
US7492368B1 (en) 2006-01-24 2009-02-17 Nvidia Corporation Apparatus, system, and method for coalescing parallel memory requests

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6628469B1 (en) * 2000-07-11 2003-09-30 International Business Machines Corporation Apparatus and method for low power HDD storage architecture
US20040064647A1 (en) * 2002-06-27 2004-04-01 Microsoft Corporation Method and apparatus to reduce power consumption and improve read/write performance of hard disk drives using non-volatile memory

Also Published As

Publication number Publication date
WO2007133646B1 (en) 2008-04-17
EP2016476A2 (en) 2009-01-21
KR20090018079A (ko) 2009-02-19
US7636809B2 (en) 2009-12-22
TW200821908A (en) 2008-05-16
WO2007133646A3 (en) 2008-02-14
EP2016476B1 (en) 2019-07-10
TWI426444B (zh) 2014-02-11
US20060277360A1 (en) 2006-12-07
US20070226409A1 (en) 2007-09-27
JP2009536767A (ja) 2009-10-15
WO2007133646A2 (en) 2007-11-22
US7702848B2 (en) 2010-04-20

Similar Documents

Publication Publication Date Title
KR101379940B1 (ko) 플래시 인터페이스를 갖는 하드 디스크 드라이브를 포함한 적응 저장 시스템
US7617359B2 (en) Adaptive storage system including hard disk drive with flash interface
US8874948B2 (en) Apparatuses for operating, during respective power modes, transistors of multiple processors at corresponding duty cycles
US7634615B2 (en) Adaptive storage system
US20070094444A1 (en) System with high power and low power processors and thread transfer
US20070083785A1 (en) System with high power and low power processors and thread transfer
US20080140921A1 (en) Externally removable non-volatile semiconductor memory module for hard disk drives
EP1855181A2 (en) System with high power and low power processors and thread transfer

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
FPAY Annual fee payment

Payment date: 20180309

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190313

Year of fee payment: 6