KR101840238B1 - 데이터 저장 장치 및 방법 - Google Patents

데이터 저장 장치 및 방법 Download PDF

Info

Publication number
KR101840238B1
KR101840238B1 KR1020127006685A KR20127006685A KR101840238B1 KR 101840238 B1 KR101840238 B1 KR 101840238B1 KR 1020127006685 A KR1020127006685 A KR 1020127006685A KR 20127006685 A KR20127006685 A KR 20127006685A KR 101840238 B1 KR101840238 B1 KR 101840238B1
Authority
KR
South Korea
Prior art keywords
data storage
storage device
write
cache
access
Prior art date
Application number
KR1020127006685A
Other languages
English (en)
Other versions
KR20130036169A (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 KR20130036169A publication Critical patent/KR20130036169A/ko
Application granted granted Critical
Publication of KR101840238B1 publication Critical patent/KR101840238B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • 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
    • 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/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0893Caches characterised by their organisation or structure
    • G06F12/0897Caches characterised by their organisation or structure with two or more cache hierarchy levels
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/21Employing a record carrier using a specific recording technology
    • G06F2212/214Solid state disk
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

데이터 저장 장치와 방법들이 개시된다. 개시된 예시적인 데이터 저장 장치는 캐시 계층 및 이와 통신하는 프로세서를 포함한다. 프로세서는 데이터 저장 액세스 타입에 기초하여, 캐시 계층 이네이블 라인을 통해, 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 한다.

Description

데이터 저장 장치 및 방법{DATA STORAGE APPARATUS AND METHODS}
본 출원은, 전체로서 참조에 의해 본 명세서에 병합되는, 2010년 3월 8일에 출원된 미국 임시 특허 출원 NO.61/311,744에 대해 우선권을 주장하는 국제 특허 협력 조약 특허 출원이다. 본 발명은 데이터 저장 장치 및 방법에 관한 것이다.
인터넷 및 네트워크 기반의 데이터 센터(data center)는, 잦은 액세스와 장기 저장을 위해 네트워크 탐색가능 정보(network retrievable information)를 저장하는 많은 수의 서버들을 이용한다. 워크로드 전통적인 사업상의 워크로드(workloads)(예컨대, 전자적 자원 관리(ERP), 데이터베이스 및 웹 서비스들)와 비교하여, 새로운 데이터-중심 워크로드(data-centric workloads)는, 대규모(large-scale)(수많은 물리적 및/또는 가상 서버들) 및 더 다양한 데이터(예컨대, 구조적 데이터, 비구조적 데이터, 방대한 미디어 데이터) 상에서 구동한다. 이러한 워크로드들은, 데이터로부터 정보를 끌어내는 프로세서-집약도(process-intensive)(또는 연산-집약도(compute-intensive)) 알고리즘들(예컨대, 다중의 데이터 소스들로부터의 다이내믹하고 복잡한 상호 관계)이 더욱 복잡하도록, 이에 영향을 미친다.
알려진 데이터 센터는, 전형적으로, 자본(capital), 전력(power) 및 쿨링(cooling)의 관점에서, 비용 효율적인 솔루션을 얻기 위해 5개 또는 그 이상의 데이터 저장 레벨들을 가지는 심층의 계층(hierarchy)을 채용한다. 예를 들어, 자주 액세스 되지 않는 데이터는 테이프 상에 기록된다. 더 자주 액세스 되는 데이터(데이터베이스 기록과 같은)는 기계적인 하드 디스크 드라이브 상에 저장된다. 더 자주 액세스 되는 프로그램 변수들 및 캐시 파일들은 메인 메모리(예컨대, 캐시 메모리 또는 다이내믹 랜덤 액세스 메모리(DRAM)) 내에 저장된다. 데이터 보관장소(data warehouse)의 워크로드(workloads)는, 데스크탑 워크로드에 비해 한 번의 구동마다 더 많은 외부의 데이터 이동(예컨대,상이한 데이터 저장 계층 레벨 사이의 데이터 이동)을 수행한다. 그러므로, 데이터 저장 계층 레벨의 전체 길이를 통한 데이터 이동에는 상당한 양의 시간이 소모된다.
데이터 센터를 구동하는 잘 알려진 아키텍처는 몇 가지의 결점을 가진다. 예를 들면, 다양한 메모리 계층 레벨 내에서 데이터를 복사하기 위해 과도한 구성요소들이 요구되며, 상기 계층 레벨을 관리하기 위해 복잡한 제어 회로들이 요구된다. 나아가, 캐시 및 메모리의 다수의 레벨이 액세스에 대해 대기 시간(latency)을 가지게 되고, 따라서, 다면적 계층을 넘나드는(traversing) 것에는 전형적으로 중대한 수행상의 불이익이 수반된다. 또한, 많은 수의 계층 레벨은 중대한 에너지 상의 불이익을 야기한다. 이는, 활동 에너지가 각 메모리의 경계에서 소모되고, 비사용(idle) 에너지가 캐시 누출(leakage) 및 DRAM 리프레시(refresh) 전력으로 소모됨을 나타낸다. 현재의 프로세서 칩들은, 광범위한 오프 칩 메모리(off-chip memory) 및 I/O 버스(buses)의 요구에 기인하여, 많은 핀(pin)들, 비싼 패키지(package)들 및 소켓(socket)들을 가진다.
알려진 데이터 센터 아키텍처는 또한, 스케일링(scaling) 및 유지(maintenance)에 관련된 불이익을 보여준다. 예를 들면, 메모리 한정(limitations)(예컨대,대부분의 데이터가 디스크 상에서 높은 액세스 대기 시간을 가지는)에 기인하여 스케일링이 어려워진다. 또한, 많은 수의 다른 종류의 구성요소들이 구성요소의 개수와 수행 능력 사이의 밸런스(balance)를 맞추는 것을 어렵게 한다. 알려진 데이터 센터 아키텍처는, 상이한 어플리케이션들이 워크로드의 다양한 세트(set)를 생성할 때에도, 고정된 워크로드 밸런스를 가진다. 그러한 알려진 시스템들은, 워크로드 내의 변경이 있을 때마다 물리적으로 다시 설계되고 다시 밸런스가 맞추어져야만 한다.
알려진 데이터 센터 아키텍처는 또한, 신뢰성(reliability)과 관련된 불이익을 보여준다. 기계적인 하드 디스크의 예상되지 않은 장치의 실패는, 데이터 가용성(availability) 및/또는 완전성(integrity)에 관한 문제를 나타낸다. 나아가, 휘발성(volatile) 메모리 내의 데이터는, 비휘발성 저장소(storage) 내에 저장되거나(복제(duplication)로서), 전원이 꺼진 이후에 다시 생성되어야 한다. 휘발성 메모리에 대한 전원 오프 시의 복원력(resilience)은 비용, 시간 및 에너지의 관점에서 고비용이며, 소프트웨어의 복잡성에는 그러한 복원력에 대한 보증이 부가된다.
알려진 데이터 센터 아키텍처와 달리, 본 명세서에 개시되는 예시적인 방법, 장치 및 제조 물건들은, 고용량 데이터 저장 장치들(본 명세서에 마이크로디스크로 참조된 것으로서, 어떤 예시에서는 나노스토어(nanostore)로 알려지기도 한)이 구현될 때, 플랫된(flattened) 레벨의 데이터 저장 계층을 가지게 할 수 있다. 플랫된 레벨의 데이터 저장 계층은, 메인 메모리(예컨대, 상대적으로 더 자주 액세스 되는 데이터를 저장하는데 이용되는)와 데이터 저장 영역(예컨대, 상대적으로 덜 자주 액세스 되는 데이터를 저장하는데 이용되는) 사이의 경계(boundary)를, 메인 메모리 및 장기 데이터 저장으로써 모두 기능하는(function) 단일 레벨(single-level) 고용량 데이터 저장을 가지는 각각의 마이크로디스크를 제공함에 의해 붕괴시킨다. 나아가, 예시적인 방법, 장치 및 제조 물건들은, 알려진 데이터 센터 아키텍처 상의 수행과 동일 또는 더 나은 수행을 제공하는 동안, 상대적으로 적은 캐시 계층들을 사용하거나 캐시 레벨을 사용하지 않도록 할 수 있다. 본 명세서에 개시된 예시적인 방법, 장치 및 제조 물건들은, 전자-기계적(electro-mechanical) 하드 디스크(예컨대, 자기 저장 디스크)의 사용을 생략하는 대신, 멤리스터(memrister), PCRAM, 및/또는 메인 메모리 및 장기 비휘발성 데이터 저장 영역(longer-term non-volatile data store areas)으로서 작동하는 양용의 데이터 저장 셀(cell)을 구현하기 위한 플래시(flash)와 같은 고용량 고체 상태 데이터 저장 기술을 채용한다. 이러한 방법에서는, 데이터가 상이한 데이터 영역을 가로질러 복제될 필요가 없으며(예컨대, 잦은 액세스를 위한 메인 메모리 데이터 영역에 데이터를 저장하고 상대적으로 덜 잦은 액세스를 위한 장기 데이터 저장 영역 내에 저장하는 것으로 동일한 데이터를 복제할 필요가 없다), 전자-기계적 하드 디스크와 연관된 이동 부분(moving part)의 수의 감소 또는 제거와, 항상 비휘발성 메모리 내에 데이터가 저장되는 것으로, 데이터 가용성 및 데이터의 완전성에 관한 문제점이 줄어들 수 있다.
각 마이크로디스크의 효과적인 작동 및 네트워크 자원의 효과적인 이용이 가능하기 위해, 마이크로디스크의 데이터 저장에 아주 인접해 있거나 함께 집적된 로컬 프로세서를 가지는 마이크로디스크가 각각 제공된다. 이러한 방법에서는, 각 마이크로디스크가 자체 구동에 대해 상대적으로 더 자발적인 제어를 구현할 수 있으며, 네트워크 상의 메모리 액세스가, 데이터 액세스를 요구(예컨대, 데이터 기록(write) 액세스 또는 데이터 판독(read) 액세스)하는 다른 외부의 프로세서에 대해 상대적으로 더 적은 제어 정보를 포함하도록 만들어질 수 있다.
어떤 예시적인 구현에서, 플랫된 레벨의 비휘발성 데이터 저장 장치(예컨대, 마이크로디스크)는, 동일한 패키지(예컨대, 단일 소켓 연산 구조, 3D 스택 칩(3D stack chip), 메모리 보드(memory board), 듀얼 인-라인 메모리 모듈 등) 내의 로컬 프로세서와 통신하는 비휘발성 데이터 저장 장치를 제공하는 것에 의해, 구현될 수 있다. 로컬 프로세서 및 비휘발성 데이터 저장 장치는, 로컬 프로세서가 비휘발성 데이터 저장 장치와 가까이 연결되어 있는 플랫된 레벨 비휘발성 데이터 저장 시스템을 형성한다. 예를 들어, 플랫된 레벨 비휘발성 데이터 저장 시스템에서는, 로컬 프로세서 외부인 로컬 프로세서와 비휘발성 데이터 저장 장치 사이에서, 로컬 프로세서가 가질 수 있는 어떠한 온-보드(on-board) 로컬 프로세서 캐시(예컨대, 프로세서-내장 캐시)를 제외하고는, 어떠한 휘발성 데이터 저장소(예컨대, SDRAM 또는 다른 휘발성 데이터 저장소)도 존재하지 않는다. 어떤 예시적인 구현에서, 어떠한 중개하는 휘발성 데이터 저장소도 없는 비휘발성 데이터 저장 장치와 통신하는 로컬 프로세서(및 어떠한 내부의 프로세서-내장 캐시)의 그러한 구성이, 단일 레벨 계층을 형성한다. 로컬 프로세서는, 패키지 외부의 장치들과 통신하기 위해, 패키지의 외부 통신 인터페이스와 통신할 수 있다. 외부 통신 인터페이스는, 패키지 외부의 장치들의 상이한 타입의 통신 인터페이스(상이한 메모리 컨트롤러 인터페이스, 네트워크 인터페이스, 다른 메모리 인터페이스, 등)와 통신하도록 구성될 수 있다. 비휘발성 데이터 저장 장치는, 멤리스터 데이터 저장 장치, 상변화 랜덤 액세스 메모리, 플래시 메모리, 또는 어떠한 다른 적합한 비휘발성 데이터 저장 장치를 이용하여 구현될 수 있다. 어떤 예시적인 구현에서, 로컬 프로세서는, 비휘발성 데이터 저장 장치에 액세스하기 위한 상이한 데이터 액세스 능력 레벨을 제공하기 위해, 주파수-난조가 발생하지 않게(frequency-scalable) 될 수 있다. 어떤 예시적인 구현에서, 플랫된 레벨 비휘발성 데이터 저장 장치(예컨대, 마이크로디스크)가, 복수의 다른 플랫된 레벨 비휘발성 데이터 저장 장치들(예컨대, 마이크로디스크)을 가지는 저장 서버 시스템(예컨대, 블레이드 서버 시스템 및/또는 그에 대한 도터 보드(daughter board))와 통신으로 연결되도록 구성될 수 있고, 로컬 프로세서는 자체의 비휘발성 데이터 저장 장치와 다른 플랫된 레벨 비휘발성 데이터 저장 장치 사이의 정보를 교환할 수 있다. 나아가, 로컬 프로세서는, 자체의 비휘발성 데이터 저장 장치와 저장 서버 시스템 외부의 네트워크 장치들(예컨대, 클라이언트 컴퓨터) 사이의 정보를, 예를 들어 근거리 통신망(LAN) 또는 원거리 통신망(WAN)을 통해 교환할 수 있다.
어떤 예시적인 구현에서, 본 명세서에 기재된 예시적인 방법, 장치 및 제조 물건들이, 플랫된 레벨 비휘발성 데이터 저장 장치(예컨대, 마이크로디스크)의 비휘발성 데이터 저장 장치보다 증가된 레벨의 거리에서, 추가적인 연산 구성요소들(또는 프로세서 구성요소들)의 계층을 제공한다. 예를 들어, 복수의 마이크로디스크를 가지는 도터 보드(예컨대, 데이터 저장 서버의 메모리 용량을 확장하기 위한 메모리 보드) 또는 메모리 모듈(예컨대, 듀얼 인-라인 메모리 모듈) 또한, 마이크로디스크의 로컬 프로세서와 관련된 제2-레벨(second-level) 연산 계층을 형성하는 연산 구성요소(예컨대, 도터 보드 프로세서)와 함께 제공될 수도 있다. 그러한 제2-레벨 연산 구성요소는, 자체의 대응하는 마이크로디스크의 구동을 제어, 조정, 및/또는 관찰하도록 및/또는 마이크로디스크 상에 존재하는 데이터와 연관된 연산들을 늘리고, 줄이고, 및/또는 이에 직접적으로 참가하도록 구성될 수 있다. 나아가, 도터 보드 또는 메모리 모듈이 서버(예컨대, 블레이드 서버)에 꽂혀질(plugged into) 때, 서버는, 대응하는 마이크로디스크를 가지는, 서버에 대응하는 도터 보드 또는 메모리 모듈과 연관된 구동을 제어, 조정, 관찰, 확대, 감소, 및/또는 직접적으로 참가하는, 제3-레벨(third-level) 계층 연산 구성요소(예컨대, 서버 프로세서)를 가질 수 있다. 다른 예시적인 구현에서, 멀티-레벨(multi-level) 연산 구성요소 계층들을 구현하는 다른 방법들 또한, 본 명세서에 개시된 방법, 장치 및 제조 물건과 결합되어 이용될 수 있다.
어떤 예시로서, 본 명세서에 개시된 방법, 장치 및 제조 물건들은, 대규모 데이터 보관 어플리케이션(large-scale data warehousing application)에 이용된다. 대규모 데이터 보관 어플리케이션의 이용 및 크기는, 네트워크 기반의 연산이 상이한 어플리케이션으로 확장됨에 따라, 계속 증가한다. 그러한 네트워크 기반 연산에 대한 어플리케이션은, 인터넷 기반의 데이터 저장소, 네트워크-공유 협력 어플리케이션(network-community collaboration applications), 사회적 통신망 서비스, 인터넷 멀티미디어 스트리밍 등을 포함한다. 상기 기술된 알려진 데이터 저장소 기술들 및 다른 알려진 데이터 저장소 기술들은, 전력 처리, 물리적인 공간, 및 수행 능력의 관점에서 상대적으로 비효율적인 솔루션들을 만드는 몇 가지의 불이익(상기 기술된 것들과 같은)을 보인다. 본 명세서에 개시된 예시적인 방법, 장치 및 제조 물건들은, 알려진 데이터 저장소 기술들에 비해 더 효과적인 전력 처리, 상대적으로 낮은 물리적인 공간의 요구 및 상대적으로 높은 데이터 액세스 수행 능력이 가능하게 하는 감소된(예컨대, 플랫된) 메모리 계층을 가지는 비휘발성 고체-상태 데이터 저장소 기술들을 이용하여 구현되는 데이터 저장소 솔루션을 제공하는 것에 의해, 그러한 비효율성을 극복한다.
도 1을 살펴보면, 데이터 센터 아키텍처 내에서 사용되기 위한, 알려진 데이터 서버(100)는, 몇몇의 메모리 계층 레벨들을 포함한다. 메모리 계층 레벨들은, 캐시 레벨(102)(계층 1 캐시(layer 1 cache)(102a) 및 계층 2 캐시(102b), 메모리 컨트롤러 레벨(103), 메인 메모리(104), 및 데이터 저장 장치(106)를 가지는)을 포함한다. 메인 메모리(104)는, 네트워크(108)를 통해, 자주 액세스 되는(예컨대, 판독 및/또는 기록되는) 데이터를 저장하는데 이용된다. 데이터 저장 장치(106)는, 장기적인 비휘발성의 영속적(persistence) 데이터를 저장하는데 이용된다. 전형적으로, 메인 메모리(104) 내에서 자주 액세스 되는 데이터가, 데이터 저장 장치(106)에 대한 기록 및 그로부터의 판독에 수반되는 증가된 대기 시간 때문에, 데이터 저장 장치(106)를 지나 즉시 기록되지는 않는다. 그러나, 어떤 지점에서 메인 메모리(104)로부터의 데이터가 데이터 저장 장치(106)에 기록되고, 어떤 시점에서 데이터가 메인 메모리(104)와 데이터 저장 장치(106)에 복제되며, 때때로 데이터는 또한 캐시(102) 내에 저장되는 것에 의해 3중으로 복제된다.
본 명세서에 개시된 예시적인 방법, 장치 및 제조 물건들은 블레이드 서버 시스템(blade server system)과 같은 대규모 데이터 저장 어플리케이션들에 이용 가능한 고용량, 비휘발성(non-volatile) 데이터 저장 장치들을 구동하기 위해 이용될 수 있다. 본 명세서에 개시된 예시적인 고용량 비휘발성 데이터 저장은, 양용의 데이터 저장(dual-use data store)을 이용하여 메인 메모리 영역과 장기 데이터 저장 영역을 병합하는 것에 의해, 잘 알려진 고용량 데이터 저장과 관계한 감소된(reduced) 메모리 계층(hierarchy)를 이용하여 구현된다. 부가적으로, 예시적인 고용량 비휘발성 데이터 저장이, 캐시 계층(cache layer)을 이용하지 않거나 잘 알려진 고용량 비휘발성 데이터 저장 기술과 비교하여 상대적으로 더 적은 캐시 계층들을 이용하도록 구현될 수 있다. 예시적인 방법, 장치 및 제조 물건들이, 예컨대 멤리스터(memrister) 메모리 기술, 플래쉬 메모리 기술 및/또는 상변화 메모리((phase-change memory, PCRAM) 기술들과 같은, 고체 상태 비휘발성 고속(solid-state non-volatile high-speed) 데이터 저장 기술들과 관련하여 개시된다.
도 1은, 서버 기반의 저장 어플리케이션(storage applications) 내에서 이용되기 위한, 잘 알려진 고용량 메모리 아키텍처(high-volume memory architecture)를 나타낸다.
도 2는, 본 명세서에 개시된 내용에 따라 구현되는 예시적인 고용량 마이크로디스크 데이터 저장 아키텍처(high-volume microdisk data store architecture)를 나타낸다.
도 3은, 본 명세서에 개시된 내용에 따라 구현되는 예시적인 고용량 마이크로디스크 블레이드 서버(high-volume microdisk blade server)의 일 예시를 나타낸다.
도 4는, 도 2 및 3의 예시적인(example) 멀티-마이크로디스크 보드(multi-microdisk board)를 구현하기 위해 이용될 수 있는 예시적인 듀얼 인-라인 메모리 모듈(dual in-line memory module)이다.
도 5는, 본 명세서에 개시된 예시적인 방법 및 장치에 따라, 도 2 및 3의 예시적인 마이크로디스크를 구현하기 위해 이용될 수 있는, 예시적인 3차원 스택(3D stack) 구조이다.
도 6은, 도 2-5의 예시적인 마이크로디스크에 대한 상세한 다이어그램이다.
도 7은, 도 2-6의 마이크로디스크 내의 데이터에 액세스하기 위해 이용될 수 있는 예시적인 프로세스에 대한 플로우 다이어그램을 나타낸다.
도 8은, 도 2-6의 마이크로디스크 내의 상이한 캐시 계층(cache layer)을 선택적으로 이네이블(enable) 및/또는 디세이블(disable) 하도록 이용될 수 있는 예시적인 프로세스에 대한 플로우 다이어그램을 나타낸다.
도 9는, 데이터 액세스 타입 이력 정보(historical data access type information)에 기초한 도 2-6의 마이크로디스크의 이용 과정에서 상이한 캐시 계층을 선택적으로 이네이블 및/또는 디세이블 하도록 이용될 수 있는 예시적인 프로세스에 대한 플로우 다이어그램을 나타낸다.
도 10은, 도 1의 알려진 데이터 저장 시스템상에서, 도 3의 예시적인 마이크로디스크 블레이드 서버(microdisk blade server)의 수행 능력(performance) 및 전력 향상(power improvements)을 보여주는 바 그래프(bar graph)이다.
도 11은, 도 1의 잘 알려진 데이터 저장 시스템의 전력 소비 파괴(power consumption breakdowns)와 비교되는, 도 3의 예시적인 마이크로디스크 블레이드 서버의 상이한 하위 시스템들에 대한 전력 소비 파괴를 보여주는 바 그래프이다.
도 1에서 보여주듯, 메인 메모리(104)는 휘발성의 다이내믹 랜덤 액세스 메모리(DRAM)를 이용하여 구현되며, 데이터 저장 장치(106)는, 비휘발성 전자-기계적 메모리(예컨대, 자기 하드 디스크 드라이브)를 이용하여 구현된다. 그러므로, 도 1에서 묘사하는 것과 같은 알려진 시스템에서는, 상이한 메모리 기술들이 메인 메모리와 데이터 저장 영역을 구현하기 위해 이용된다. 이는 상이한 기술들의 레이트(rate) 및 비용에 주로 기인한다. 예를 들어, DRAM 기술이 자기 하드 디스크 드라이브 기술에 비해 상대적으로 더 빠른 액세스 시간을 가지는 반면, DRAM 기술은 또한, 자기 하드 디스크 드라이브 기술에 비해 메가비트(Mbit) 당 상대적으로 더 고비용이기도 하다. 그러므로, 데이터 저장 장치(106)에 대해 요구되는 더 큰 데이터 저장 영역은 더 저렴한(그러나 더 느린) 비휘발성 전자-기계적 기술을 이용하여 구현되는 반면, 메인 메모리(104)를 구현하는데 요구되는 더 빠른 메인 메모리는 더 빠른(그러나 고비용의) 휘발성의 DRAM 기술을 이용하여 구현된다.
도 2를 살펴보면, 예시적인 멀티-마이크로디스크 보드(200)가, 본 명세서에 개시된 예시적인 내용에 따라 도시된다. 도시된 예시에서, 멀티-마이크로디스크 보드(200)는, 각각이 마이크로디스크(202)와 유사 또는 동일한, 복수의 마이크로디스크 장치를 포함한다. 어떤 예시에서, 마이크로디스크(202)와 같은 마이크로디스크들은 또한, 나노 스토어로서 인용되기도 한다. 마이크로디스크(202)(그리고 멀티-마이크로디스크 보드(200)의 각각의 다른 마이크로디스크들)는, 비휘발성 고체-상태 데이터 저장 장치(204)(예컨대, 데이터 저장 장치(204)가 1GB/s의 대역폭 접근도(bandwidth accesibility)에서 100기가 바이트(GB) 또는 그 이상의 저장 용량을 가질 수 있는)를 포함하는 고용량 데이터 저장 장치이다. 데이터 저장 장치(106)(장기 데이터 저장소를 위한)와 별개인 메인 메모리(104)(자주 액세스 되는 데이터를 위한)를 가지는 도 1의 알려진 데이터 서버(100)와 달리, 도 2의 마이크로디스크(202)는, 자주 액세스 되는 데이터 및 장기 데이터 저장을 모두 저장하는 양용의 방식인 데이터 저장 장치(204)를 이용한다. 이는, 마이크로디스크(202)가 각각이 양용의 방법으로 구동하는 복수의 데이터 비트 셀(data bit cell)(예컨대, 데이터 비트 셀이 데이터의 단일 비트를 저장할 수 있는)을 가진다는 것이다. 예를 들면, 예시적인 양용의 데이터 비트 셀(206)에 저장된 비트 값이, 자주 액세스 되는 데이터로서 양용의 데이터 비트 셀(206)로부터 회수(retrieved) 및/또는 별개의 장기 데이터 저장 영역 내에 비트 값을 복제함이 없이 상대적으로 긴 지속 기간(예컨대, 자주 액세스 되는 및/또는 자주 변경되지 않는)을 위한 비휘발성의 방식으로 양용의 데이터 비트 셀(206) 내에 저장(예컨대, 영구적으로)될 수 있다. 이러한 방법으로, 도 2의 마이크로디스크(202)는, 자주 액세스 되는 데이터를 위한 데이터 저장 영역과 별개의 장기 저장을 위한 데이터 저장 영역을 요구하지 않는 것에 의해, 구성요소의 이용 및 물리적인 공간의 요구에 있어 상대적으로 더 높은 효율을 달성한다. 이는 또한, 주로 복제된 데이터를 저장하는 2개의 별개의 데이터 저장 영역(예컨대, 도 1의 메인 메모리(104) 및 데이터 저장 장치(106))에 전력을 공급할 필요가 없음에 의해, 알려진 데이터 저장 아키텍처 이상으로 데이터 저장에 대한 전력의 범위(footprint)를 감소한다.
도 2의 도식적인 예시에서, 이종의 메모리 조합(예컨대, 메인 메모리(104)를 위한 SDRAM 및 장기 데이터 저장소를 위한 전자-기계적 하드 디스크 드라이브)을 이용하여 구현되는 도 1의 알려진 데이터 서버(100)와 달리, 데이터 저장 장치(204)는, 동종의 데이터 저장 기술(예컨대, 포괄적인(wholly) 멤리스터 기술, 포괄적인 PCRAM 기술, 포괄적인 플래시 기술 또는 어떠한 다른 적합한 메모리 기술을 이용하여 포괄적으로 구현되는 단일 IC 다이(die) 또는 하나 이상의 스택된(stacked) IC 다이)을 이용하여 구현된다. 데이터 저장 장치(204)의 동종의 데이터 저장 기술은, 마이크로디스크(202)가, 메인 메모리(104) 기술(예컨대, SDRAM 인터페이스 및 SDRAM 메모리에 대한 시간기(timing) 회로) 및 데이터 저장 장치(106)의 기술(예컨대, 전자-기계적 하드 디스크 메모리에 대한 하드 디스크 드라이브 인터페이스)에 대한 상이한 타입의 메모리 인터페이스를 요구하는, 알려진 데이터 서버 기술들에 비해 상대적으로 더 적은 메모리 인터페이스 회로들을 가지게 할 수 있다. 마이크로 디스크(202)의 감소된 메모리 인터페이스 회로는, 더 적은 전력 소비 및 더 적은 데이터 액세스 대기 시간이 가능하게 한다(그러므로, 데이터 액세스 수행 능력이 증가).
도 2에서 도시된 예시와 같은 어떤 예시적인 구현에서, 마이크로디스크(202)는, 네트워크 버스(210)를 통해, 네트워크 인터페이스(209)와 통신한다. 또한, 동일한 또는 다른 예시적인 구현에서, 마이크로디스크(202)는, 디스크-디스크(disk-to-disk) 통신 버스(212)를 통해, 다른 디스크와 통신한다. 다른 예시적인 구현에서, 디스크-디스크 통신 버스(212)는, 각 마이크로디스크(202)의 동일한 내부 주파수에서 구동할 수 있다(예컨대, 1GB/s). 마이크로디스크(202)는, 요구하는 네트워크 장치(도시되지 않음)로부터 데이터 액세스 요청을 수신하며, 네트워크 인터페이스(208)를 통해, 요구하는 네트워크 장치와 데이터를 통신한다. 그러한 네트워크 장치는, 근거리 통신망 또는 원거리 통신망(예컨대, 인터넷 또는 사설 네트워크)을 통해, 마이크로디스크(202)(또는, 마이크로디스크(202)를 포함하는 서버)와 통신하는 클라이언트 컴퓨터일 수 있다.
도 2에서 도시되는 예시에서, 데이터 저장 장치(204)와 통신하는 로컬 프로세서(214)를 가지는 마이크로디스크(202)가 제공된다. 로컬 프로세서(214)는, 마이크로디스크(202)가, 알려진 데이터 서버 솔루션(예컨대, 도 1의 메인 메모리(104) 및 데이터 저장 장치(106))의 메인 메모리와 데이터 저장 영역에 비해, 상대적으로 더 높은 자율성을 가지고 구동하게 할 수 있다. 로컬 프로세서(214)와 같은 연산 로직(compute logic)을 제공하는 것에 의해, 데이터 저장 장치(데이터 저장 장치(204))와 단단하게 또는 가깝게 통합된 방법으로, 네트워크를 통해 수신된 데이터 액세스 요청에 대한 응답으로서 마이크로디스크 내의 연산 로직이 메모리 기술에 특화된 시간기(timing)와 데이터 액세스 구동을 생성하고 처리할 수 있다. 이러한 방법에서, 마이크로디스크(202)에 대한 데이터 액세스와 연관된 네트워크 통신은, 상이한 메모리 기술들이 가지는 특정의 특징, 능력 또는 메모리 시간기 요청과 연관된 많은 양의 메모리-컨트롤 신호 또는 명령을 전송하는 네트워크 통신에 대한 요청을 감소시킴으로써, 상대적으로 더 효과적인 방법으로 네트워크 리소스를 이용할 수 있다. 나아가, 데이터 액세스를 요청하는 네트워크 장치는, 멀티-마이크로디스크 보드(200) 내에서 이용되는 특별한 데이터 저장 기술들에서는, 고려될 필요가 없다. 또한, 각 마이크로디스크(202)에 대해 로컬 프로세서(214)와 같은 연산 로직을 제공하는 것은, 각 마이크로디스크의 로컬 프로세서가 자체 메모리 기술에 특화된 시간기를 이용하여 자체 데이터 액세스 구동을 시작 및 수행할 수 있기 때문에, 동일한 멀티-마이크로디스크 보드(예컨대, 멀티-마이크로디스크 보드(200)) 상의 상이한 메모리 기술들에 대한 마이크로디스크들을 혼합할 수 있게 한다.
멀티-마이크로디스크 보드(200)의 각 마이크로디스크의 로컬 프로세서(예컨대, 로컬 프로세서(214))는 또한, 상이한 마이크로디스크들 사이에서 워크로드를 다이내믹하게 균형(balance) 잡을 수 있게 한다. 예를 들어, 마이크로디스크(202)의 로컬 프로세서(214)는, 디스크-디스크 통신 버스(212)를 통해 다른 로컬 프로세서와 통신하고, 상이한 마이크로디스크(202)들 사이에서 워크로드를 균형 잡기 위해 그러한 통신을 이용할 수 있다(예컨대, 상이한 마이크로디스크들 사이의 데이터를 제거 하도록 마이크로디스크-마이크로디스크(microdisk-to-microdisk) 데이터 전송을 수행하는 것에 의해).
도시된 예시에서, 로컬 프로세서(214)는, 실질적으로 동시에 다수의 데이터 액세스 및/또는 데이터 유지(maintenance) 요청을 처리하기 위한 캐시-결합(cache-coherent) 및 멀티-스레딩(multi-threading) 프로세서이다. 나아가, 주파수 및 전압 스케일링을 지원하기 위해 로컬 프로세서(214)가 구현될 수 있다(예컨대, 주파수 범위 100MHz에서 1GHz 또는 그 이상에서의 스케일링).
어떤 예시적인 구현에서, 로컬 프로세서(214)는, 데이터 저장 장치(204)의 독립된 집적 회로 다이(die) 상에서 구현되고, 데이터 저장 장치(204)와 통신적으로 결합될 수 있는(예컨대, IC 패키지 외부에서 결합하는 광 또는 전기적 스루-실리콘 바이어스(through-silicon vias, TSVs), 광 또는 전기적 와이어 결합, 또는 광 또는 전기적 보드-레벨을 통해) 반면에, 다른 예시적인 구현에서는, 로컬 프로세서(214)가, 데이터 저장 장치(204)로서 동일한 집적 회로 다이 상에서 필수적으로 형성될 수 있다. 비록, 각 마이크로디스크(202) 내에서 오직 하나의 로컬 프로세서(214)만이 보이지만, 각 마이크로디스크(202)는, 선택적으로 다수의 프로세서 또는 다수의 프로세서 코어(각각이 멀티-스레딩 처리 능력을 가질 수 있는)와 함께 제공될 수 있다. 예를 들어, 2 이상의 스택된(stacked) 비휘발성 데이터 저장 다이를 이용하여 구현되는 마이크로디스크(202)의 예시적인 구현에서, 각 데이터 저장 다이 내에서 데이터 액세스 요청을 처리하고, 데이터 저장 다이에 대응하는 데이터 액세스 및 메모리 유지 프로세스를 수행하도록, 독립된 프로세서 또는 프로세서 코어가 필수적으로 형성될 수 있다.
도시된 예시에서, 데이터 저장 장치(204)보다 상대적으로 더 낮은 액세스 대기 시간을 가지는 캐시(216)를 포함하는 마이크로디스크(202)가 제공된다. 캐시(216)는, 하나 이상의 캐시 계층을 포함할 수 있다(예컨대, 도 6의 캐시 계층(604a-c)). 예를 들어, 로컬 프로세서(214)가 충분히 느려 수행 능력이 데이터 저장 장치(204)의 대기 시간 또는 대역폭에 의해 크게 영향을 받지 않는 예시적인 구현에서, 캐시(216)는, 자체 캐시(private cache) 또는 공유된 캐시(shared cache)일 수 있는 오직 하나의 레벨의 캐시로 구현될 수 있다. 어떤 예시적인 구현에서, 각 계층이 요구되는 기반 상에서 개별적으로 및 다이내믹하게 이네이블(enabled)(예컨대, 전원 On) 또는 디세이블(disabled) 내지 우회하는(bypassed)(예컨대, 전원 off 또는 게이트 off), 다수의 캐시 계층을 가지는 캐시(216)가 제공된다. 개별적 캐시 계층의 그러한 다이내믹 이네이블/디세이블은, 메모리 클락(clock)이 상이한 메모리 액세스 수행 능력을 제공하도록 변경될 때, 편리하게 이용될 수 있다. 예를 들어, 메모리 액세스 클락(clock)이 충분히 다운 스케일되면, 데이터 저장 장치(204)의 액세스 대기 시간은 수행 능력에 대해 최소로 영향을 미치거나 아예 영향을 미치지 않을 것이며, 캐시(216)의 모든 캐시 계층이 디세이블 또는 우회될 수 있고, 로컬 프로세서(214)는 데이터 저장 장치(204)에 직접적으로 액세스할 수 있다. 하나 이상의 캐시 계층(예컨대, 도 6의 하나 이상의 캐시 계층(604a-c))을 디세이블 한 캐시 계층(들)에 대한 전력 전달을 제거 또는 차단하기 위해, 후기입(write-back) 프로세스가 더티 데이터(dirty data)를, 캐시 계층(들)을 전체적으로 전력 OFF하기에 앞서 캐시 계층(들)부터 데이터 저장 장치(204)에 후기입하도록 이용된다. 나아가, 디세이블(따라서, 전원 off된) 된 캐시 계층(들)은, 그들이 다시 이네이블 될 때까지 새로운 데이터를 저장하는 데에 이용되지 않는다. 메모리 액세스 클락이 더 크게 스케일링 됨에 따라, 캐시(216)의 하나 이상의 캐시 계층은, 예를 들어, 대응하는 마이크로디스크(202)와 연관된 만족스러운 메모리 액세스 수행 능력을 유지하기 위해, 선택적으로 이네이블 될 수 있다.
어떤 예시에서, 캐시(216)의 하나 이상의 캐시 계층은, 마이크로디스크(202)에 의해 수신된 기록 액세스 요청의 레이트(rate)에 기초하여, 다이내믹하게 이네이블 또는 다이내믹하게 디세이블 될 수 있다. 본 명세서에 개시된 예시적인 기술들은, 비휘발성 데이터 저장 장치(204)와 같은, 비휘발성 데이터 저장 장치의 신뢰도(reliability) 및 사용 수명(useful life)을 보존하기 위해, 기록 액세스의 레이트를 이용할 수 있다. 이는, 도시된 예시의 비휘발성 데이터 저장 장치(204)가, 그곳에 저장된 데이터의 신뢰도를 보증하는 동안, 단일 비트 셀(예컨대, 양용의 데이터 비트 셀(206))에 의해 허용되는(endured) 기록 사이클의 양을 나타내는 기록 내구성(write endurance property)을 가진다는 것이다. 예를 들어, 상이한 기술 타입의 비휘발성 플래시 메모리는, 5k부터 1M의 기록 사이클의 범위에서 기록 내구성을 가질 수 있다. 비휘발성 메모리가 평가된 기록 내구성 임계치를 초과한 후에는, 그곳에 저장된 데이터가 더 이상 정확한 것으로서 기대될 수 없을 것이다.
도시된 예시의 비휘발성 데이터 저장 장치(204)의 기록 내구성을 보존하고 그로써 마이크로디스크(202)의 사용 가능한 수명을 증가시키기 위해, 본 명세서에 개시된 예시들은 기록 액세스 레이트 임계치 및/또는 기록-판독(write-to-read) 비율 임계치를 이용할 수 있다. 기록 액세스 레이트 임계치는, 일정 레이트를 초과한 때, 로컬 프로세서(214)가 다이내믹하게 캐시(216)의 하나 이상의 계층을 이네이블 하도록 야기하는, 초당 기록 액세스 레이트를 나타낸다. 마이크로디스크(202)의 관찰된 기록 액세스 레이트가 기록 액세스 레이트 임계치보다 낮은 때, 로컬 프로세서(214)는 하나 이상의 캐시 계층(216)을 디세이블 할 수 있다.
기록-판독 비율 임계치는, 특정한 지속 시간을 초과하는, 기록 액세스부터 판독 액세스로의 비율을 나타낸다. 어떤 예시에서, 측정된 마이크로디스크(202)의 기록-판독 비율이 기록-판독 비율 임계치보다 낮은 때, 로컬 프로세서(214)는, 상대적으로 적은 기록 요청을 가지는 비휘발성 데이터 저장 장치(204)에 대한 현재 액세스에 기초하여, 캐시(216)의 하나 이상의 캐시 계층을 다이내믹하게 디세이블 할 수 있다. 측정된 마이크로디스크(202)의 기록-판독 비율이 기록-판독 비율 임계치를 초과한 때, 로컬 프로세서(214)는, 소망되는(desired) 것보다 상대적으로 많은 기록 요청을 가지는 비휘발성 데이터 저장 장치(204)에 대한 현재 액세스에 기초하여, 캐시(216)의 하나 이상의 캐시 계층을 다이내믹하게 이네이블 할 수 있다.
기록 액세스 레이트 및/또는 기록-판독 비율을 관찰하고 마이크로디스크(202)의 구동 중에 관찰된 이러한 값들에 기초하여 캐시 계층(들)을 다이내믹하게 이네이블 하는 것은, 비휘발성 데이터 장치(204)의 저장 셀들(예컨대, 양용의 데이터 비트 셀(206))의 신뢰도 및 수명을 약화 또는 감소시킬 수 있는 기록의 양이 지속 또는 원인이 되는 것으로부터, 비휘발성 데이터 저장 장치(204)를 보호하는 것을 가능하게 한다. 이는, 하나 이상의 캐시 계층이 이네이블 될 때, 비휘발성 데이터 저장 장치(204)에 대신하여 캐시 계층(들)에 대해 기록이 처음으로 수행된다는 것이다. 결국 또는 뒤이어서, 기록-스루 구동(write-through operation)은, 상대적으로 장기간으로 간주되는 어떠한 캐시된(cached) 데이터를 비휘발성 데이터 저장 장치(204)에 기록-스루하도록 이용될 수 있는 반면에, 단기간(예컨대, 잦은 변경)의 캐시된 데이터는 비휘발성 데이터 저장 장치(204)에 기록-스루되지 않을 수 있다. 이러한 방법에서, 본 발명에 개시된 예시들은, 비휘발성 데이터 저장 장치를 충격(thrashing)하는 것으로부터 잦은 데이터의 변경을 방지하고 그로써 비휘발성 데이터 저장 장치(204)와 같은 비휘발성 데이터 저장 장치의 기록 내구성들을 보호하도록 이용될 수 있다.
어떤 예시에서, 다수의 기록 액세스 레이트 임계치들 및/또는 다수의 기록-판독 비율 임계치들은, 임계치가 초과 되었는지 아닌지에 기초하여, 캐시(216) 내에서 이네이블/디세이블 된 상이한 캐시 계층들로 선택적으로 정의될 수 있다. 예를 들어, 3 계층 캐시 설계(three-layer cache design)에서, 제1 기록 액세스 레이트 임계치(또는 제1 기록-판독 비율 임계치)는, 제1 캐시 계층이 언제 이네이블/디세이블 되는지를 제어하도록 이용되고, 제2 기록 액세스 레이트 임계치(또는 제2 기록-판독 비율 임계치)는, 제2 캐시 계층이 언제 이네이블/디세이블 되는지를 제어하도록 이용되며, 제3 기록 액세스 레이트 임계치(또는 제3 기록-판독 비율 임계치)는, 제3 캐시 계층이 언제 이네이블/디세이블 되는지를 제어하도록 이용될 수 있다.
어떤 예시에서, 난잡하게 흔들리는 방식(in chaotic oscillating fashions)으로 캐시 계층을 반복적으로 이네이블 및 디세이블 하는 것을 피하기 위해, 임계치 히스테레시스(hysteresis) 기술이 이용될 수 있다. 어떤 예시적인 임계치 히스테레시스 기술은, 하나 이상의 캐시 계층의 이네이블 또는 디세이블 상태(들)를 뒤이어 변경할지 여부를 재고(reconsidering)하기 이전에, 임계치 지속 기간에 대한 하나 이상의 캐시 계층의 이네이블 또는 디세이블을 포함한다. 그러한 예시적인 임계치 히스테레시스 기술에서, 지속 시간을 넘는 각각의 판독 및 기록 카운트를 이용하여, 데이터 액세스 타입들(예컨대, 판독 또는 기록 액세스 타입들)의 이력이 관찰되고 계산된다. 로컬 프로세서(214)는, 액세스 타입 이력 정보가 모여지던 이전의 지속 기간(previous duration)과 동일할 수 있는, 후속하는 시간량(amount of time)에 대해 하나 이상의 캐시 계층들을 디세이블/이네이블 하도록, 액세스 타입 이력 정보(예컨대, 하나 이상의 기록 액세스 레이트 임계치(들) 및/또는 하나 이상의 기록-판독 비율 임계치(들))를 분석할 수 있다. 하나 이상의 캐시 계층의 이네이블 또는 디세이블 상태(들)가 변경되어야 할 때, 뒤이어 재평가(re-evaluate)하기 위해 액세스 타입 이력 정보의 또 다른 세트를 모으도록, 프로세스가 반복될 수 있다.
다른 예시적인 임계치 히스테레시스 기술들은, 제1 임계치에 기초한 하나 이상의 캐시 계층의 이네이블(예컨대, 기록 액세스 레이트 제1 임계치 또는 기록-판독 제1 임계치에 대한 초과에 기초하여) 및 제2 임계치에 기초한 캐시 계층들의 디세이블(예컨대, 기록 액세스 레이트 제2 임계치 또는 기록-판독 제2 임계치 이하로의 떨어짐에 기초하여)을 포함한다.
상기 논의된 것과 같은 임계치 히스테레시스 기술을 이용한 예시에서, 캐시 계층의 이네이블 또는 디세이블 상태는, 이네이블/디세이블 상태를 변경하거나 액세스 기반에 따라 캐시 계층의 이네이블/디세이블 상태를 재평가하는 대신, 복수의 후속되는 데이터 액세스들을 위해 동일한 상태로 남아 있는다. 이러한 방법에서, 복수의 후속되는 데이터 액세스가 캐시된 데이터에 의존하지 않기 때문에, 디세이블 된 캐시 계층들의 컨텐츠의 말소(예컨대, 컨텐츠의 상실)에 기인하는 약간의 수행 능력의 악화 또는 그러한 악화 없이 연장된 지속 기간을 위해 캐시 계층들에 전달되어야 하는 전력을 제거 또는 차단하는 것에 의해, 캐시 계층들을 디세이블 할 수 있다. 캐시 계층의 이네이블/디세이블 상태 내의 변경을 따르는 복수의 후속하는 데이터 액세스는, 복수의 단일 판독 액세스, 복수의 단일 기록 액세스, 복수의 버스트 모드(burst mode) 액세스(몇몇의 데이터 위치에서 데이터가 단일 요청에 기초하여 액세스 되는) 및/또는 하나 이상의 단일 판독 액세스, 하나 이상의 단일 기록 액세스 및/또는 하나 이상의 버스트 모드 액세스에 대한 어떠한 조합들도 포함할 수 있다.
상기 논의된 것처럼 다이내믹하게 캐시 계층들을 디세이블 하는 것은, 스트리밍(streaming) 어플리케이션, 미디어 디코딩(decoding) 어플리케이션 또는 특별한 목적, 구동 또는 프로세스를 달성하기 위해, 어떠한 계속적, 연속적, 의사(pseudo)-계속적, 의사-연속적 또는 산발적으로 방대한 양의 데이터를 판독하는 어떠한 다른 어플리케이션에 대해 유용하게 이용될 수 있다. 판독 액세스가 도 2의 비휘발성 데이터 저장 장치(204)와 같은 비휘발성 메모리의 기록 내구성을 현저히 감소시키지 않기 때문에, 캐시(216)를 이용함이 없이도 판독 구동이, 비휘발성 데이터 저장 장치(204)에 직접적으로 허용될 수 있다. 주요한 기록 구동이 되어야 할 액세스 패턴의 변경 때문에, 캐시 계층들의 이네이블/디세이블 상태의 재평가가, 고속 또는 고용량 기록 구동 기간 동안 비휘발성 데이터 저장 장치(204)에 대한 과도한 기록 액세스들을 방지하거나 감소시키기 위해, 캐시(216)의 하나 이상의 캐시 계층을 이네이블 하도록 선도(lead)할 수 있다.
본 명세서에 개시된 도시된 예시들에서, 서버 시스템 내의 각 마이크로디스크(예컨대, 도 3의 마이크로디스크 블레이드 서버(300))는, 서버 시스템 내의 다른 마이크로디스크에 의해 이네이블 된 캐시 계층의 양과 독립적으로, 캐시 계층들의 양을 선택적으로 이네이블 할 수 있다. 이러한 방법에서, 각 마이크로디스크는 다른 마이크로디스크와 독립적으로, 자체의 전력 이용 효율성 및/또는 수행 능력을 최적화할 수 있다.
도 3은, 도 2의 멀티-마이크로디스크 보드(200)와 마이크로디스크(202)를 이용하여 구현되는, 예시적인 고용량 마이크로디스크 블레이드 서버(300)를 도시한다. 도 3의 도시된 예시에서, 멀티-마이크로디스크 보드(200)가, 멀티-마이크로디스크 보드(200)의 네트워크 인터페이스(208)를 통해, 마이크로디스크 블레이드 서버(300)의 물리적 소켓(도시되지 않음)에 꽂히거나 연결되는 도터 보드로서 구현된다. 어떤 예시적인 구현에서, 도 4에서 보여주는 듀얼 인-라인 메모리 모듈(400)이 멀티-마이크로디스크 보드(200)를 구현하기 위해 이용될 수 있다. 멀티-마이크로디스크 보드(200)와 마이크로디스크 블레이드 서버(300) 사이의 연결은 전기 또는 광 연결일 수 있다.
마이크로디스크 블레이드 서버(300)는, 각 멀티-마이크로디스크 보드가 마이크로디스크 서버(300)의 각각의 광 또는 전기적 물리 소켓에 꽂히거나 연결되어 있는, 멀티-마이크로디스크 보드(200)와 실질적으로 유사 또는 동일한 복수의 다른 멀티-마이크로디스크 보드를 포함한다. 이러한 방법에서, 마이크로디스크 블레이드 서버(300) 상의 단일 멀티-마이크로디스크 보드 소켓은, 다수의 마이크로디스크(예컨대, 마이크로디스크(202)의 다수의 인스턴스(instance))를 마이크로디스크 블레이드 서버(300)와 접속시키는 것(interfacing)을 가능하게 한다. 그러므로, 멀티-마이크로디스크 보드(예컨대, 멀티-마이크로디스크 보드(200))에 추가적인 마이크로디스크를 꽂거나 마이크로디스크 서버(300)에 추가적인 멀티-마이크로디스크 보드(예컨대, 멀티-마이크로디스크 보드(200)와 실질적으로 유사 또는 동일한)를 추가하는 것에 의해, 마이크로디스크 블레이드 서버(300)의 데이터 저장 용량의 확장이 수행될 수 있다.
마이크로디스크 블레이드 서버(300)는, 네트워크 인터페이스(302)를 통해 모든 멀티-마이크로디스크 보드들(예컨대, 멀티-마이크로디스크 보드(200))을 다른 서버 및 외부의 네트워크와 광 또는 전기적으로 연결하는, 네트워크를 포함한다. 어떤 예시적인 구현에서, 멀티-마이크로디스크 보드의 조화로운 연결 및 최대 2분(bisection)의 대역폭을 제공하는 팻 트리 토폴로지(fat tree topology)를 이용하여, 마이크로디스크 블레이드 서버(300)의 네트워크가 구현될 수 있다.
각 연결된 멀티-마이크로디스크 보드(예컨대, 멀티-마이크로디스크 보드(200))과 연결된 결합된 온도 쿨링 시스템과 각 멀티-마이크로디스크 보드의 열을 분산시키는 알루미늄 판(plate)(304)을 포함하는, 마이크로디스크 블레이드 서버(300)가 제공된다.
마이크로디스크(202)는, 멀티-마이크로디스크 보드(200)에 결합되거나 또는 멀티-마이크로디스크 보드(200)의 소켓을 통해 연결될 수 있다. 연결은 광 또는 전기적일 수 있다. 도시된 예시에서, 각 마이크로디스크(202)에 대한 멀티-마이크로디스크 보드(200)의 온-보드(on-board) 대역폭은, 와이어 카운트를 감소시키고 신호 루팅(routing)의 단순화가 가능하도록, 상대적으로 낮게 된다. 어떤 예시적인 구현에서, 마이크로디스크(202)는, 클러스터(cluster) 및 더 느린 글로벌 통신 내에서 빠르고, 높은 대역폭 통신을 위해, 멀티-마이크로디스크 보드(200) 상에서 집합될 수 있다. 클러스터 간 통신을 가능하게 하는 클러스터-클러스터(cluster-to-cluster) 링크 및 클러스터-네트워크(cluster-to-network) 인터페이스 통신을 포함하는, 멀티-마이크로디스크 보드(200)가 제공될 수 있다.
도 3의 도시된 예시에서, 마이크로디스크(202)가, 데이터 저장 장치(204)가 다수의 스택된 IC 다이(306)로 형성되고, 로컬 프로세서(214) 및 캐시(216)가 전기 또는 광학적 스루-실리콘 바이어스(TSVs)(308)를 이용하여 각 중첩된 IC 다이(306)와 연결된, 3D 다이 스택으로서 도시된다. 도 5를 간략히 검토하면, 예시적인 3D 스택 칩 구성(500)으로 마이크로디스크(200)를 도시한 등각도(isometric view)가 도시된다. 도 5의 도시된 예시에서, 상측 다이(502)는 그곳에 형성된 로컬 프로세서(214)와 캐시(216)를 포함한다. 상측 다이(502)는, 패키지 토대(504) 상에 스택된 데이터 저장 장치 IC 다이(306) 상에 스택된다. 그러므로, 도시된 예시에서, 로컬 프로세서(214)와 캐시(216)가 동일한 실리콘 계층(예컨대, 상측 다이(502)) 상에서 형성되고, 비휘발성 데이터 저장 장치(204)는, 로컬 프로세서(214)와 캐시(216)를 포함하는 실리콘 계층과 독립된 하나 이상의 실리콘 계층(예컨대, 스택된 IC 다이(306)) 상에서 형성된다. 도시된 예시에서, 패키지 토대(package substrate)(504)는 볼 그리드 어레이(ball grid array, BGA) 인터페이스를 포함하나, 어떠한 다른 타입의 패키징도 이용될 수 있다.
도 3의 도시된 예시로 돌아가서, 외부의 회로(예컨대, 멀티-마이크로디스크 보드(200))와 마이크로디스크(202)를 접속하는 물리 인터페이스(310)를 포함하는, 마이크로디스크(202)가 제공된다. 광 커넥터 또는 전기 커넥터를 이용하여 물리 인터페이스(310)가 구현될 수 있다. 도시된 예시에서, 물리 인터페이스(310)는, 하나 이상의 전력 공급 라인(power supply line)을 가지는 마이크로디스크(202), 클락 신호, 및 데이터 통신 인터페이스를 접속한다. 어떤 예시적인 구현에서, 마이크로디스크(202)를 멀티-마이크로디스크 보드(200)에 접속하는 PCI-익스프레스 인터페이스(PCI-express interface)가 이용될 수 있다. 어떤 예시적인 구현에서, 물리 인터페이스(310)는 칩 패키지 인터페이스(chip package interface)(예컨대, 도 5의 패키지 토대의 BGA 인터페이스)일 수 있고, 마이크로디스크(202)는 멀티-마이크로디스크(202) 결합될 수 있다. 다른 예시적인 구현에서, 물리 인터페이스(310)는 소켓 인터페이스일 수 있으며, 마이크로디스크(202)는 멀티-마이크로디스크 보드(202)에 제거 가능하도록(removably) 꽂혀질 수 있다.
도 6은, 도 2-5의 마이크로디스크(202)의 예시적인 상세 다이어그램이다. 단일 IC 다이 내의 집적 회로들 또는 독립된 IC 다이 내의 집적 회로들로서, 이하 설명되는 예시적인 마이크로디스크(202)의 상이한 부분들이 구현될 수 있다. 추가적으로 또는 선택적으로, 주문형 반도체(application specific intergrated circuit(s), ASIC(s)), 프로그래머블 로직 장치(programmable logic device(s), PLD(s)), 필드 프로그래머블 로직 장치(field programmable logic device(s), FPLD(s)), 별개의(discrete) 로직, 하드웨어, 펌웨어 등의 어떠한 조합(들)을 이용하여, 마이크로디스크(202)가 구현될 수 있다. 또한, 상술된 기술들의 어떠한 조합(들), 예를 들어 펌웨어, 소프트웨어, 별개의 로직 및/또는 하드웨어의 어떠한 조합(들)으로서, 마이크로디스크(202)가 구현될 수 있다. 마이크로디스크(202)가 도 6의 다이어그램과 연관되어 이하 설명되나, 다른 예시적인 구현들에서 추가적인 및/또는 선택적인 구조를 포함할 수 있다. 예를 들어, 도 6에서 묘사된 마이크로디스크(202)의 어떤 부분들이 제거되거나 다른 부분과 결합될 수 있다.
도 6을 상세히 검토하면, 데이터 저장 장치(204)와 로컬 프로세서(214)를 포함하는 마이크로디스크(202)가 제공된다. 상기 논의된 것처럼, 하나 이상의 IC 다이(306)를 이용하여 데이터 저장 장치(204)가 구현될 수 있다(도 3 및 4). 그러므로, 어떤 예시적인 구현에서, 로컬 프로세서(214)로부터 독립한 하나 이상의 IC 다이 및 도 6에서 도시되는 마이크로디스크(202)의 다른 부분 상에서, 데이터 저장 장치(204)가 구현될 수 있다. 선택적으로, 동일한 IC 다이 상에서, 데이터 저장 장치(204), 로컬 프로세서(214) 및 마이크로디스크(202)의 다른 부분들이 형성될 수 있다.
마이크로디스크(202)의 상이한 부분들(또는 하위 시스템(subsystem)들)에 전력을 공급하기 위해, 전력 공급기(602)(power supply)를 포함하는 마이크로디스크(202)가 제공된다. 전력 공급기(602)는 물리 인터페이스(310)로부터 보조 전력을 수신하고, 마이크로디스크(202)의 상이한 부분에 수송되는 전력을 조절할 수 있다. 도 5의 3D 스택 칩(500)과 같은 3D 스택을 이용하여 마이크로디스크(202)가 구현되는 예시적인 구현에서, 단일 다이(예컨대, 도 5의 상측 다이(502)) 상에서 전력 공급기(602)가 제공될 수 있고, 전력 공급기(602)는, TSVs(예컨대, 도 3의 TSVs(308))를 이용하여, 자체 다이 내의 회로 및 3D 스택 칩(500)의 다른 다이들(예컨대, 도 3 및 5 내에서 도시되는 데이터 저장 장치 IC 다이(306))로 전력을 전달할 수 있다.
메모리 액세스 수행 능력의 상이한 레벨들을 이네이블 하기 위해, 각각이 선택적 및 독립적으로 이네이블 및/또는 선택적 및 독립적으로 디세이블 될 수 있는 다양한 캐시 계층들을 포함하는, 마이크로디스크(202)가 제공된다. 선택적으로 이네이블 가능한 계층 1 캐시(604a), 선택적으로 이네이블 가능한 계층 2 캐시(604b), 및 선택적으로 이네이블 가능한 계층 3 캐시(604c)로서의 3개의 캐시 계층이 도 6에서 도시된다. 도시된 예시에서, 선택적으로 이네이블 가능한 캐시 계층들(604a-604c)이 도 2,3 및 5의 캐시(216)를 형성한다. 캐시 계층(604a-c)의 선택적 및/또는 다이내믹하게 이네이블/디세이블 가능한 능력은, 계층적인 플래터너블(hierarchically flattenable) 비휘발성 데이터 저장 장치로서, 마이크로디스크(202)를 구성하게 할 수 있다. 그러한 계층적인 플래터너블 아키텍처에서, 로컬 프로세서(214)와 비휘발성 데이터 저장 장치(204) 사이의 메모리 계층을 점차적으로 평평하게 또는 감소시키기 위해, 각각의 캐시 계층(604a-c)이 점차적으로 디세이블 될 수 있다. 모든 캐시 계층(604a-c)이 디세이블 될 때, 로컬 프로세서(214)와 비휘발성 데이터 저장 장치(204) 사이의 메모리 계층이 완전하게 평평해지며, 로컬 프로세서(214)는 캐시 계층(604a-c)을 우회하고, 캐시 계층(604a-c)을 이용함이 없이 직접적으로(메모리 컨트롤러(622)를 통과하여) 비휘발성 데이터 저장 장치(204)에 액세스할 수 있다.
본 명세서에 개시된 도시된 예시에서, 서버 시스템(예컨대, 도 3의 마이크로디스크 블레이드 서버(300)) 내의 각 마이크로디스크(예컨대, 마이크로디스크(202))는, 서버 시스템 내의 다른 마이크로디스크 내에서 이네이블 된 캐시 계층의 세트(들)와 독립적으로, 선택적으로 이네이블 된 캐시 계층의 세트(예컨대, 선택적으로 이네이블 가능한 캐시 계층(604a-c))를 가질 수 있다. 예를 들어, 제1 마이크로디스크는 이네이블 된 하나의 캐시 계층을 가질 수 있는 반면에, 제2 마이크로디스크는 이네이블 된 2개의 캐시 계층을 가질 수 있다. 이러한 방법에서, 다른 마이크로디스크들과 독립된 자체 데이터 저장/액세스 이용에 기초하여, 각 마이크로디스크의 전력 이용 효율이 최적화될 수 있다. 어떤 예시적인 구현에서, 선택적으로 이네이블 가능한 캐시 계층(604a-604c)이 설계 또는 제조 시점에서 선택적으로 이네이블/디세이블 될 수 있는 반면에, 다른 예시적인 구현에서는 선택적으로 이네이블 가능한 캐시 계층(604a-604c)이 실행 시점 및/또는 설계 또는 제작 시점에서 선택적으로 이네이블/디세이블 될 수 있다.
선택적으로 이네이블 가능한 캐시 계층(604a-604c)을 선택적 및 독립적으로 이네이블하기 위해, 각각 선택적으로 이네이블 가능한 캐시 계층(604a-604c) 중 하나와 연결되는 게이트 드라이버(gate driver)(606a-c)를 포함하는, 마이크로디스크(202)가 제공된다. 나아가, 로컬 프로세서(214)와 게이트 드라이버(606a-c)의 이네이블 입력단(inputs) 사이에 연결된 캐시 계층 이네이블 라인(608)을 포함하는, 마이크로디스크(202)가 제공된다. 이러한 방법에서, 로컬 프로세서(214)는, 각각의 게이트 드라이버(606a-c)가 전력 공급기(602)에서 선택적으로 이네이블 가능한 캐시 계층(604a-c) 중 선택된 하나에 대한 전력 전송을 허용하도록 함으로써, 어떠한 선택적으로 이네이블 가능한 캐시 계층(604a-c)도 선택적으로 이네이블 할 수 있다.
선택적으로 이네이블 가능한 캐시 계층(604a-c) 중 이네이블 되지 않은(non-enabled) 하나를 우회하는 것을 가능하게 하기 위해, 캐시 계층 우회 버스(610)를 포함하는, 마이크로디스크(202)가 제공된다. 선택적으로 이네이블 가능한 캐시 계층(604a-c) 중 어느 것도 이네이블 되지 않은 어떤 예시적인 구현에서, 캐시 계층 우회 버스(610)는 로컬 프로세서(214)와 데이터 저장 장치(204) 사이의 직접 연결(메모리 컨트롤러(622)를 통해)로서 구동하며, 어떠한 캐시 구동의 개입 없이도(바람직하게는 캐시의 전원이 오프된 상태로 구동하는) 데이터 저장 장치(204) 상에서 데이터 액세스가 수행될 수 있다. 하나 이상의 선택적으로 이네이블 가능한 캐시 계층(604a-c)이 이네이블 될 때, 캐시 계층 우회 버스(610)가, 하나 이상의 이네이블 된 선택적으로 이네이블 가능한 캐시 계층(604a-c)의 개입을 통해 메모리 액세스를 수행하는 동안, 디세이블 된 캐시 계층을 우회하는 것을 허용한다.
나아가, 캐시-캐시(cache-to-cache) 데이터 흐름을 허용하기 위해, 인접한 하나의 선택적으로 이네이블 가능한 캐시 계층(604a-c) 사이의 캐시-캐시 버스(612)를 포함하는, 마이크로디스크(202)가 제공된다. 하나의 선택적으로 이네이블 가능한 캐시 계층(604a-c)이 디세이블 될 때, 대응하는 하나의 캐시-캐시 버스(612)가 비사용된다(idle). 특별한 어플리케이션 내에서 수용 가능한 시동(startup) 대기 시간의 양에 따라, 전원이 캐시 버스(612) 상에서 유지될 수도 유지되지 않을 수도 있다.
도시된 예시에서, 로컬 프로세서(214)는, 데이터 저장 장치(204)에 액세스하기 위해 이용되는 자체 메모리 액세스 클락의 주파수에 기초하여, 선택적으로 이네이블 가능한 캐시 계층(604a-c)의 각각의 하나 및/또는 세트를 언제 이네이블 또는 디세이블 하는지의 여부를 결정한다. 이는, 로컬 프로세서(214)(또는 마이크로디스크(202) 내의 다른 로직)가, 예를 들어, 마이크로디스크 서버(300)로부터의 클락 인터페이스(614)를 통해 수신된 클락 신호의 주파수를 업스케일 또는 다운스케일할 수 있다는 것이다. 주파수 스케일링은, 예를 들어, 마이크로디스크(202)의 워크로드 또는 이용에 기초할 수 있다. 부분적으로 스케일된 클락 신호의 주파수를 검출하기 위해, 클락 센스(616)(clock sense)를 포함하는, 마이크로디스크(202)가 제공된다. 어떤 예시에서, 클락 센스(616)가, 메모리 액세스 클락 주파수가 충분히 느려서(예컨대, 미리 정해진 임계치 이하) 데이터 저장 장치(204)의 대기 시간 또는 대역폭에 의해 수행 능력이 큰 영향을 받지 않는다는 것을 검출할 때, 로컬 프로세서(214)는 오직 계층 1 캐시(604a)를 이네이블 할 수 있거나, 선택적으로 이네이블 가능한 캐시 계층(604a-c) 모두를 디세이블 할 수 있다. 메모리 액세스 클락이 더 높게 스케일되면, 로컬 프로세서(214)는, 예를 들어 마이크로디스크(202)와 연관된 수용 가능한 메모리 액세스 수행 능력을 유지하기 위해, 하나 이상의 선택적으로 이네이블 가능한 캐시 계층(604a-c)을 이네이블 할 수 있다.
요구하는 장치(requesting device)(예컨대, 네트워크 장치 또는 다른 마이크로디스크)와 데이터를 교환하고 데이터 액세스 요청을 수신하기 위해, 네트워크 인터페이스(618)를 포함하는 마이크로디스크(202)가 제공된다.
비휘발성 데이터 저장 장치(204)에 대한 액세스 요청(예컨대, 기록 및 판독 액세스 요청)을 처리하기 위해, 메모리 컨트롤러(622)를 포함하는 마이크로디스크(202)가 제공된다. 이는, 로컬 프로세서(214)가 비휘발성 데이터 저장 장치(204)에 액세스하기 위한 때에(예컨대, 캐시 계층(604a-c)이 디세이블 되거나 캐시 미스(cache miss)가 발생), 로컬 프로세서(214)는 메모리 컨트롤러(622)에 데이터 액세스 요청을 보낸다는 것이다. 메모리 컨트롤러(622)는, 하나 이상의 데이터(예컨대, 단일 기록 액세스 또는 버스트 모드 기록 액세스)를 비휘발성 데이터 저장 장치(204)에 기록하기 위해 또는 하나 이상의 데이터(예컨대, 단일 판독 액세스 또는 버스트 모드 판독 액세스)를 판독하기 위해, 데이터 액세스 요청을 처리한다. 판독 액세스에 대해, 메모리 컨트롤러(622)는, 캐시-캐시 버스(612)를 통해, 요청된 데이터를 로컬 프로세서(214)에 리턴한다. 도시된 예시에서, 메모리 컨트롤러(622)는, 로컬 프로세서(214) 및 캐시 계층(604a-604c)과 같이 동일한 실리콘 계층(예컨대, 상측 다이(502)) 내에 위치된다.
관심 지속 기간(duration of interest)을 초과하여, 상이한 데이터 액세스 타입 이력의 발생 이력들을 생성, 추적, 합계 또는 계산하기 위해, 기록 카운터(W CNTR)(624), 판독 카운터(R CNTR)(626) 및 타이머(628)를 포함하는, 도시된 예시의 마이크로디스크(202)가 제공된다. 도시된 예시에서, 기록 카운터(624), 판독 카운터(626) 및 타이머(628)는 메모리 컨트롤러(622) 내에 위치된다. 그러나, 기록 카운터(624), 판독 카운터(626) 및 타이머(628)는 마이크로디스크(202) 내의 어떤 위치에도 위치될 수 있다.
구동에서, 메모리 컨트롤러(622)가 기록 요청을 수신할 때, 이는 기록 카운터(624)를 증가시킨다. 메모리 컨트롤러(622)가 판독 요청을 수신할 때, 판독 카운터(626)를 증가시킨다. 어떤 예시에서, 메모리 컨트롤러(622)는, 대응하는 기록 또는 판독 요청들에 액세스 되기 위해 요청된 데이터의 양만큼, 카운터(624 및 626)를 증가시킨다. 예를 들어, 단일 판독 액세스 요청에 대해, 메모리 컨트롤러(622)는 판독 카운터(626)를 1만큼 증가시킨다. 그러나, 만약 버스트 모드 판독 액세스가 요청되면, 메모리 컨트롤러(622)는 판독 카운터(626)를 버스트 모드 판독 액세스 요청 내에서 요청된 데이터의 양만큼 증가시킨다. 그러한 예시에서, 메모리 컨트롤러(622)는, 각 기록 액세스 요청 내에서 요청된 데이터 액세스의 양에 기초한 유사한 방법으로 기록 카운터(624)를 증가시킨다. 다른 예시에서, 메모리 컨트롤러(622)는, 데이터 액세스 요청이 단일 데이터 액세스 요청인지 버스트 모드 액세스인지와 관계없이, 카운터(624 및 626)를 1만큼 증가시킨다.
마이크로디스크(202)가, 하나 이상의 캐시 계층(604a-c)을 이네이블/디세이블 하는지의 여부를 평가하기 위해, 기록-판독 비율 측정(measure)을 이용하는 대신 기록 액세스 레이트 측정을 이용하는 어떤 예시에서는, 판독 카운터(626)가 생략될 수 있다.
도시된 예시에서, 메모리 컨트롤러(622)는, 하나 이상의 캐시 계층(604a-c)의 디세이블 또는 이네이블 상태(들)를 변경할지 여부를 재평가하기 이전에, 카운터(624 및 626)를 이용하여 데이터 액세스 요청 이력이 추적되는 지속 기간(duration)을 추적하는 타이머(628)를 이용한다. 어떤 예시에서, 타이머(628)를 이용하여 추적된 지속 기간은, 마이크로디스크(202)의 제조 시점에서 설정되거나 및/또는 마이크로디스크(202)의 구동 시의 소프트웨어 또는 펌웨어를 통해 조정될 수 있는 설정일 수 있다. 지속 기간은, 마이크로디스크(202) 및/또는 마이크로디스크(202) 이용(들)의 타입(들) 내에서 액세스 되고 있을 데이터가 될 어플리케이션(들)의 타입(들)에 기초한 것일 수 있다. 예를 들어, 마이크로디스크(202)가, 우선적으로 정보가 자주 갱신되는 문서 데이터의 작업에 이용되기 위한 것이라면(예컨대, 마이크로디스크(202)가 상대적으로 높은 기록 액세스의 레이트 또는 상대적으로 높은 기록-판독 비율을 전제로 할 것이다), 지속 기간이 상대적으로 짧게 되도록 설정될 수 있다. 마이크로디스크(202)가, 우선적으로 미디어의 보관 및 스트리밍에 이용되기 위한 것이라면(예컨대, 마이크로디스크(202)가 상대적으로 낮은 기록 액세스의 레이트 또는 상대적으로 낮은 기록-판독 비율을 전제로 할 것이다), 지속 기간이 상대적으로 길게 되도록 설정될 수 있다.
도 7, 8 및 9는, 도 2-6의 예시적인 마이크로디스크(202)의 프로세스를 구현하기 위해 이용될 수 있는, 프로세스들을 대표하는 예시적인 플로우 다이어그램이다. 어떤 예시에서, 실행될 때 장치(예컨대, 도 2, 3, 5 및 6의 로컬 프로세서(214), 프로그래머블 컨트롤러 또는 다른 프로그래머블 기계 또는 집적 회로)가 도 7, 8 및/또는 9에서 도시되는 구동을 수행하게 하는 기계 판독가능 명령어(machine readable instructions)를 이용하여, 도 7, 8 및/또는 9의 하나 이상의 예시적인 프로세스가 구현될 수 있다. 예를 들어, 프로세서, 컨트롤러, 및/또는 어떠한 다른 적합한 처리 장치를 이용하여, 도 7, 8 및/또는 9의 예시적인 프로세스가 수행될 수 있다. 예를 들어, 프로세서 또는 컨트롤러와 연관된 플래시 메모리, 리드-온리 메모리(ROM), 및/또는 랜덤-액세스 메모리(RAM)와 같은 유형의(tangible) 컴퓨터 판독가능 매체 또는 유형의 기계 판독가능 매체에 저장된 코딩된(coded) 명령어(예컨대, 컴퓨터 판독가능 명령어들)로서, 도 7, 8 및/또는 9의 예시적인 프로세스가 구현될 수 있다. 본 명세서에 이용된 것으로서, 유형의 컴퓨터 판독가능 매체는, 어떠한 타입의 컴퓨터 판독가능 저장 장치를 포함하고, 전파하는 신호(propagating signal)는 제외하는 것으로, 명백하게 정의된다. 추가적으로 또는 선택적으로, 플래시 메모리, 리드-온리 메모리(ROM), 및/또는 랜덤-액세스 메모리(RAM), 캐시 또는 정보가 어떠한 지속 기간 동안 저장되는 어떠한 다른 저장 매체(예컨대, 연장된 시간 주기를 위한, 영구적인, 간단한 인스탠스, 일시적인 버퍼링을 위한, 및/또는 정보의 캐싱을 위한)와 같은 반영구적인 컴퓨터 판독가능 매체에 저장된 코딩된(coded) 명령어(예컨대, 컴퓨터 판독가능 명령어들)로서, 도 7, 8 및 9의 예시적인 프로세스들이 구현될 수 있다. 본 명세서에 이용된 것으로서, 반영구적인 컴퓨터 판독가능 매체는, 어떠한 타입의 컴퓨터 판독가능 매체를 포함하고, 전파하는 신호는 제외하는 것으로 명백하게 정의된다.
선택적으로, 주문형 반도체(ASIC(s)), 프로그래머블 로직 장치(PLD(s)), 필드 프로그래머블 로직 장치(FPLD(s)), 별개의 로직, 하드웨어, 펌웨어 등의 어떠한 조합(들)을 이용하여, 도 7, 8 및/또는 9의 예시적인 프로세스들이 구현될 수 있다. 또한, 상술된 기술들의 어떠한 조합(들), 예를 들어 펌웨어, 소프트웨어, 별개의 로직 및/또는 하드웨어의 어떠한 조합(들)로서, 도 7, 8 및/또는 9의 예시적인 프로세스들이 구현될 수 있다. 나아가, 비록 도 7, 8 및/또는 9의 예시적인 프로세스들이 도 7, 8 및/또는 9의 플로우 다이어그램을 참조하여 설명되나, 도 7, 8 및/또는 9의 프로세스들을 구현하는 다른 방법들도 채용될 수 있다. 예를 들어, 블록들의 실행 순서가 변경될 수 있고 및/또는 설명되는 어떠한 블록들이 변경, 제거, 분류, 또는 조합될 수 있다. 추가적으로, 예를 들어, 별개의 처리 스레드, 프로세서, 장치, 별개의 로직, 회로 등에 의해, 연속적 및/또는 병렬적으로 도 7, 8 및 9의 예시적인 프로세스의 일부 또는 전부가 수행될 수 있다.
도 7은, 도 2-6의 마이크로디스크(202) 내의 데이터를 액세스하기 위해 이용될 수 있는 예시적인 프로세스에 대한 플로우 다이어그램을 도시한다. 구동 중에, 마이크로디스크(202)는 로컬 프로세서(214)(블록 702)에서 데이터 액세스 요청을 수신한다. 로컬 프로세서(214)는 데이터 액세스 요청을 해독한다(블록 704). 로컬 프로세서(214)가 어떠한 캐시 계층(예컨대, 도 6의 선택적으로 이네이블 가능한 캐시 계층(604a-c) 중 어느 하나도 아닌)도 이네이블 되지 않았음을 결정하면(블록 706), 로컬 프로세서(214)는, 어떠한 캐시 계층의 이용 없이, 데이터 저장 장치(204)(도 2, 3 및 6)에 대해 요구된 데이터 액세스 요청을 직접 수행한다(블록 708). 로컬 프로세서(214)가 하나 이상의 캐시 계층이 이네이블 되었음을 결정하면, 로컬 프로세서는 하나 이상의 이네이블 된 캐시 계층(예컨대, 도 6의 선택적으로 이네이블 가능한 캐시 계층(604a-c) 중 이네이블 된 것들)을 통해 요구된 데이터 액세스 요청을 수행한다(블록 710). 도 8의 예시적인 프로세스는 이후 종료한다.
도 8은, 도 2-6의 마이크로디스크(202) 내의 상이한 양의 캐시 계층(예컨대, 도 6의 선택적으로 이네이블 가능한 캐시 계층(604a-c))을 선택적으로 이네이블 및/또는 디세이블 하기 위해 이용될 수 있는, 예시적인 프로세스에 대한 플로우 다이어그램을 도시한다. 시작 단계(802)와 데이터 액세스 요청 처리 단계(804)를 가지는 것으로서, 도 8의 예시적인 프로세스가 도시된다. 시작 단계(802) 중에, 마이크로디스크(202)의 전원이 켜지고(또는 저전력 모드(예컨대, 슬립 모드)로부터 이네이블 되거나 퇴장된(exited)), 데이터 액세스 요청들의 수신 및 처리를 시작하기 위해 마이크로디스크의 상이한 부분들(또는 하위 시스템들)의 구동을 시작한다. 데이터 액세스 요청 처리 단계(804) 중에, 마이크로디스크(202)는, 외부의 장치들(예컨대 네트워크 장치(예컨대, 클라이언트 컴퓨터들) 또는 다른 마이크로디스크들)로부터의 데이터 액세스 요청을 활동적으로 수신하고, 데이터 저장 장치(204)(도 2, 3 및 6) 상의 데이터 액세스를 수행한다.
처음, 시작 단계(802) 중에, 마이크로디스크(202)가, 예를 들어, 전력 공급기(602)로부터 마이크로디스크의 하위 시스템들에 대해 전력을 공급하고, 클락 신호를 이네이블링(enabling)/스케일링하는 것과 같은 하나 이상의 시작 구동(블록 808)을 수행한다. 로컬 프로세서(214)는, 마이크로디스크(202) 내에서 이용되기 위한 캐시 계층 구성을 결정한다(블록 810). 예를 들어, 로컬 프로세서(214)는, 마이크로디스크(202)의 메모리 액세스 클락의 주파수에 기초하여, 선택적으로 이네이블 가능한 캐시 계층(604a-c)의 양을, 이네이블(또는 디세이블)로 결정할 수 있다. 도 6과 연관되어 상기 논의된 것과 같이, 로컬 프로세서(214)는, 메모리 액세스 클락의 주파수를 결정하기 위해, 클락 센스(616)(도 6)를 이용할 수 있다. 마이크로디스크(202) 내에서 이용되기 위한 캐시 계층 구성의 결정 이후에, 로컬 프로세서(214)는, 예를 들어 도 6과 연관되어 상기 설명된 것과 같은 캐시 계층 이네이블 라인(608) 및 게이트 드라이버(606a-c)를 이용하여, 0개의 또는 1개 이상의 선택적으로 이네이블 가능한 캐시 계층(604a-c)을 이네이블(또는 디세이블) 한다. 로컬 프로세서(214)가 블록 810에서 어떠한 캐시도 이용함이 없이 구동할 수 있는 것으로 결정하면, 로컬 프로세서(214)는 블록 812에서 모든 선택적으로 이네이블 가능한 캐시 계층(604a-c)을 디세이블 할 것이다.
데이터 액세스 요청 처리 단계(804) 중에, 로컬 프로세서(214)는 데이터 액세스 요청들을 수신하고 처리한다(블록 814). 로컬 프로세서(214)는 자체 캐시 계층 구성을 변경할 것인지 여부를 결정한다(블록 816). 예를 들어, 로컬 프로세서(214)는, 예를 들어, 수용 가능한 메모리 액세스 수행 능력을 유지 및/또는 비휘발성 데이터 저장 장치(204)의 기록 내구성을 보존하기 위해, 상이한 양의 선택적으로 이네이블 가능한 캐시 계층(604a-c)이 이네이블(또는 디세이블) 되어야 하는지를 결정한다. 로컬 프로세서(214)는, 예를 들어, 도 6과 연관되어 상기 논의된 것처럼 캐시 계층 이네이블 라인(608) 및 게이트 드라이버(606a-c)를 이용하여, 0개 또는 1개 이상의 선택적으로 이네이블 가능한 캐시 계층(604a-c)을 이네이블(또는 디세이블) 한다(블록 820). 컨트롤은 이후 블록 814로 리턴된다. 블록 816, 818 및 820을 구현하기 위해 이용될 수 있는 예시적인 프로세스가 도 9의 플로우 다이어그램과 연관되어 이하에서 설명된다.
도 8의 도시된 예시에서, 로컬 프로세서(214)가 마이크로디스크(202)의 캐시 계층 구성을 변경하지 않을 것으로 결정하면, 로컬 프로세서(214)는 전원을 차단(power down) 시킬지 여부를 결정한다(블록 824)(예컨대, 도 6의 네트워크 인터페이스를 통해 수신된 명령에 기초하여). 로컬 프로세서(214)가 전원을 차단 시키지 않는 것으로 결정하면, 컨트롤은 블록 814로 리턴된다. 그렇지 않으면, 로컬 프로세서(214)가 마이크로디스크(214)의 전원을 차단하고(블록 826), 도 8의 예시적인 프로세스는 종료한다.
도 9는, 데이터 액세스 타입 이력 정보에 기초하여, 도 2-6의 마이크로디스크(202)의 이용 중에, 상이한 캐시 계층들(예컨대, 도 6의 선택적으로 이네이블 가능한 캐시 계층(604a-c))을 선택적으로 이네이블 및/또는 디세이블 하기 위해 이용될 수 있는 예시적인 프로세스에 대한 플로우 다이어그램이다. 처음에, 메모리 컨트롤러(622)(도 6)는, 비휘발성 데이터 저장 장치(204) 내의 데이터를 액세스하기 위해, 마이크로디스크(202)에서 수신된 데이터 액세스를 관찰한다(블록 902). 기록 카운터(624) 및/또는 판독 카운터(626)(도 6)가 데이터 저장 액세스 이력 카운트(들)를 각각 갱신한다(블록 904). 예를 들어, 도 6과 연관되어 상기에서 설명된 것과 같이, 각 기록 데이터 액세스에 대해 기록 카운터(624)는 1 또는 더 큰 증가로 그 카운트를 증가시킬 수 있고, 각 판독 데이터 액세스에 대해 판독 카운터(626)는 1 또는 더 큰 증가로 그 카운트를 증가시킬 수 있다. 어떤 예시에서, 마이크로디스크(202)가 기록 액세스 레이트에 기초하여 캐시 계층을 이네이블/디세이블 할 지의 여부를 평가하면, 기록 카운터(624)가 갱신되고, 판독 카운터(626)는 이용되지 않는다. 다른 예시에서, 마이크로디스크(202)가 기록-판독 비율에 기초하여 캐시 계층들을 이네이블/디세이블 할 지의 여부를 평가하면, 기록 카운터(624) 및 판독 카운터(626)는 모두 갱신된다.
메모리 컨트롤러(622)는 타임아웃(timeout) 주기가 만료되었는지 여부를 결정한다(블록 906). 예를 들어, 메모리 컨트롤러(622)는 관심 지속 기간(duration of interest)이 만료되었는지 여부를 결정하기 위해, 타이머(628)(도 6)를 조사할 수 있다. 타이머(628)를 이용하여 추적된 예시적인 지속 기간이 도 6과 연관되어 상기에서 설명된다. 타임아웃이 만료되지 않았다면(블록 906), 컨트롤은 블록 902로 리턴된다. 타임아웃이 만료되었다면(블록 906), 컨트롤은 블록 908로 진행한다.
로컬 프로세서(214)는, 예를 들어, 각각의 레지스터로 카운트를 로딩하는 것에 의해, 기록 카운터(624) 및/또는 판도 카운터(626)를 판독한다(블록 908). 메모리 컨트롤러(622)는 이후 기록 카운터(624) 및/또는 판독 카운터(626)를 리셋하고(블록 910), 타이머(628)를 리셋 및 재시작한다(블록 912). 데이터 액세스에 대한 관찰 및 추적을 계속하기 위해 컨트롤이 블록 912로부터 블록 902로 리턴되고, 또한 블록 914로 진행한다.
로컬 프로세서(214)는 블록 908에서 획득된 기록 카운트 및/또는 판독 카운트에 기초하여, 액세스 타입 이력 측정을 생성한다(블록 914). 어떤 예시에서, 액세스 타입 이력 측정은, 기록 카운터(624)에 의해 추적된 기록 카운트 및 타이머(628)에 의해 추적된 지속 기간에 기초한(예컨대, 기록 카운트를 지속 기간으로 나누는 것에 기초한), 기록 액세스 레이트이다. 다른 예시에서, 액세스 타입 이력 측정은, 판독 카운트에 의해 기록 카운트를 나누는 것에 의해 결정된, 기록-판독 비율이다.
로컬 프로세서(214)는 액세스 타입 이력 측정을 임계치와 비교한다(블록 916). 어떤 예시에서, 임계치는 마이크로디스크(202)의 제조 시점에서 미리 결정 및/또는 마이크로디스크(202)의 구동 중에 소프트웨어 및/또는 펌웨어에 의해 결정될 수 있다. 어떤 예시적인 임계치들은, 마이크로디스크(202) 내에서 액세스 되고 있을 데이터 및/또는 마이크로디스크(202)의 이용(들)의 타입(들)일 어플리케이션들의 타입들에 기초하여 설정될 수 있다.
로컬 프로세서(214)는 블록 916의 비교에 기초하여, 하나 이상의 캐시 계층(604a-c)(도 6)의 이네이블 또는 디세이블 상태를 변경할지 여부를 결정한다. 예를 들어, 만약, 하나 이상의 캐시 계층(604a-c)이 디세이블 되고, 액세스 타입 이력 측정이 임계치를 초과하는 기록 액세스 레이트(또는 기록-판독 비율)라면, 로컬 프로세서(214)는, 상대적으로 더 많은 기록 액세스의 발생들이 관측되기 때문에, 하나 이상의 캐시 계층(604a-c)을 이네이블 하기 위해 하나 이상의 캐시 계층(604a-c)의 이네이블/디세이블 상태를 변경할 것인지 여부를 결정할 수 있다. 그러나, 하나 이상의 캐시 계층(604a-c)이 이미 이네이블 되었다면, 로컬 프로세서(214)는, 캐시 계층들이 상대적으로 더 많은 기록 액세스의 발생들을 관리하도록 이미 이네이블 되어 있기 때문에, 하나 이상의 캐시 계층(604a-c)의 이네이블/디세이블 상태를 변경할 필요가 없다. 만약, 하나 이상의 캐시 계층(604a-c)이 이네이블 되고, 액세스 타입 이력 측정이 임계치보다 낮은 기록 액세스 레이트(또는 기록-판독 비율)라면, 로컬 프로세서(214)는, 상대적으로 더 적은 기록 액세스의 발생들이 관측되기 때문에, 하나 이상의 캐시 계층(604a-c)을 디세이블 하기 위해 하나 이상의 캐시 계층(604a-c)의 이네이블/디세이블 상태를 변경할 것인지 여부를 결정할 수 있다. 그러나, 하나 이상의 캐시 계층(604a-c)이 이미 디세이블 되었다면, 로컬 프로세서(214)는, 캐시 계층들이 비휘발성 저장 장치(204)에 직접 액세스하는 것을 허용하도록 이미 디세이블 되어 있기 때문에, 하나 이상의 캐시 계층(604a-c)의 이네이블/디세이블 상태를 변경할 필요가 없다.
로컬 프로세서(214)가 하나 이상의 캐시 계층(604a-c)의 이네이블/디세이블 상태를 변경하지 않을 것으로 결정한다면(블록 918), 컨트롤은 블록 922로 진행한다. 그러나. 로컬 프로세서(214)가 하나 이상의 캐시 계층(604a-c)의 이네이블/디세이블 상태를 변경하는 것으로 결정한다면(블록 918), 로컬 프로세서(214)는, 블록 916 및 918에서의 분석에 기초하여, 하나 이상의 캐시 계층(604a-c)을 이네이블 또는 디세이블 한다(블록 920).
로컬 프로세서(214)는, 마이크로디스크(202)가 데이터 액세스의 관찰을 중지할 것인지의 여부를 결정한다(블록 922). 예를 들어, 마이크로디스크(202)가 저전력 모드에 있을 때(예컨대, 슬립 모드, 휴지(idle) 모드, 스탠바이 모드, 전원 오프 등), 로컬 프로세서(214)는 데이터 액세스의 관찰을 중지할 것인지를 결정한다. 마이크로디스크(202)가 데이터 액세스의 관찰을 계속하는 것이라면(블록 922), 컨트롤은 블록 902로 리턴된다. 그렇지 않으면, 컨트롤은, 로컬 프로세서(214) 또는 메모리 컨트롤러(622)가 기록 카운트(624) 및/또는 판독 카운트(626) 및 타이머(628)를 디세이블 하는 블록 924로 진행한다. 도 9의 예시적인 프로세스는 이후 종료한다.
도 10 및 11을 검토하면, 도시된 바 그래프는, 도 1의 알려진 데이터 서버(100)와 같이 알려진 데이터 저장 시스템(동일 또는 실질적으로 동일한 데이터 자장 용량을 가지는)과 비교되는 도 3의 예시적인 마이크로 블레이드 서버(300)의 수행능력 및 전력 향상 및 전력 파괴를 보여준다. 스케일-다운 디테일드 마이크로-아키텍처 시뮬레이션(scaled-down detailed micro-architectural simulation)과 조합하여 하이레벨 애플리케이션-드리븐 리소스 바틀넥 분석(high-level application-driven resource bottleneck analysis)을 이용하여, 도 10 및 11에서 도시된 측정들이 획득된다. 전력 측정을 위해, 상세한 목록에 기초한 전력 모델들이, 피크(peak) 전력 공급 및 실제 소비를 관측하기 위해 이용된다. 알려진 시스템 아키텍처(예컨대, 도 1의 알려진 데이터 서버(100)) 및 워크로드 모두에 대한 무어의 법칙(Moore's law) 스케일링을 반영하기 위해, 바젤린(baseline) 시스템이 적극적으로 채택된다. 32-코어 80-와트(W) 서버 프로세서의 2개의 소켓을 가지는 블레이드를 포함하기 위해, 바젤린 시스템 아키텍처가 선택된다. 4개의 16GB DIMMs 메모리 채널, 250MB/s의 4TB 하드 드라이버의 어레이, 2개의 100Gb/s의 이더넷(Ethenet) NICs, 및 전체 2 분할 대역폭을 지원하는 데이터-센터 네트워킹 하부 구조(data-center networking infrastructure)에 대해, 각각의 서버 프로세서가 연결된다.
도 10은, 도 1의 알려진 데이터 저장 시스템을 넘어, 도 3의 예시적인 마이크로디스크 블레이드 서버(300)의 수행 능력 및 전력 향상을 보여주는, 바 그래프이다. 상기 설명된 적극적인 바젤린(baseline)과 비교해도, 도 3의 예시적인 마이크로디스크 블레이드 서버(300)는 에너지 효율의 면에서 2배 내지 18배의 향상을 달성한다. 대부분의 경우에 데이터 액세스 수행 능력이 비교될만하거나 더 좋아지는 동안, 향상된 수행 능력에 비해 향상된 에너지 절약으로부터 와트-당-수행 능력에 있어 더 큰 향상된 분수 값을 가져온다.
도 11은, 도 1의 알려진 데이터 저장 시스템의 전력 소비 파괴와 비교되는, 도 3의 예시적인 마이크로디스크 블레이드 서버(300)의 상이한 하위 시스템에 대한 전력 소비 파괴를 보여주는, 바 그래프이다. 도 11에서, 'A'로 명명된 바들은 바젤린 아키텍처에 대한 전력 소비 측정에 대응하고, 'B'로 명명된 바들은 예시적인 마이크로디스크 블레이드 서버(300)에 대한 전력 소비 측정에 대응한다. 도 11의 결과들은, 에너지-효율 기술(energy-efficient technologies)과 에너지-효율 조직(energy-efficient organization)의 결합에 의한, 예시적인 마이크로디스크 블레이드 서버(300)의 효율성을 도시한다. 결과들은 또한, 다양한 작업 패턴들에 대한 예시적인 마이크로디스크 블레이드 서버(300)의 예시적인 아키텍처의 적응성(adaptiveness)도 보여준다.
비록 상기에서, 다른 구성요소들 사이의, 하드웨어 상에서 실행되는 소프트웨어를 포함하는 예시적인 방법, 장치 및 제조 물건을 개시하나, 그러한 방법, 장치 및 제조 물건은 오직 도시된 것일 뿐이며, 한정으로 간주되는 것은 아닐 것이다. 예를 들어, 이러한 하드웨어 및 소프트웨어 구성요소의 일부 또는 전부가, 하드웨어만으로, 소프트웨어만으로, 펌웨어만으로, 또는 하드웨어, 소프트웨어 및/또는 펌웨어의 어떠한 조합만으로 구체화될 수 있도록 의도된다. 따라서, 상기에서 예시적인 방법, 장치 및 제조 물건을 설명하더라도, 제공된 예시들이 그러한 방법, 장치 및 제조 물건을 구현하기 위한 유일한 방법은 아니다.
비록, 어떠한 방법, 장치, 및 제조 물건들이 본 명세서에 설명되어 있지만, 본 특허의 담보되는 범위가 그것으로 제한되는 것은 아니다. 반대로, 본 특허는, 엄밀한 의미 또는 균등론 아래에서, 수반되는 청구의 범위에 합법적으로 포함되고 있는 모든 방법, 장치 및 제조 물건들을 포함한다.

Claims (18)

  1. 캐시 계층(cache layer);
    상기 캐시 계층과 통신하고, 데이터 저장 액세스 타입에 기초하여, 캐시 계층 이네이블 라인(cache layer enable line)을 통해 상기 캐시 계층을 다이내믹하게 이네이블(enable) 또는 디세이블(disable) 하는 프로세서; 및
    비휘발성 데이터 저장 장치에 대한 판독 액세스의 판독 카운트를 추적하는 판독 카운터, 및 상기 비휘발성 데이터 저장 장치에 대한 기록 액세스의 기록 카운트를 추적하는 기록 카운터
    를 포함하고,
    상기 판독 카운트와 상기 기록 카운트가 상기 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 하는 시기를 결정하는 데에 사용되는,
    데이터 저장 장치.
  2. 제1항에 있어서,
    상기 캐시 계층 이네이블 라인이 상기 캐시 계층에 대해 전력을 차단하는,
    데이터 저장 장치.
  3. 제1항에 있어서,
    상기 프로세서와 통신하는 비휘발성 데이터 저장 장치를 더 포함하고,
    상기 데이터 저장 액세스 타입은 상기 비휘발성 데이터 저장 장치에 액세스하기 위한 복수의 요청과 연관된,
    데이터 저장 장치.
  4. 제1항에 있어서,
    상기 프로세서는, 상기 데이터 저장 액세스 타입의 데이터 저장 액세스 요청의 발생량에 기초하여, 상기 캐시 계층 이네이블 라인을 통해 상기 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 하는,
    데이터 저장 장치.
  5. 제1항에 있어서,
    상기 프로세서 및 비휘발성 데이터 저장 장치와 통신하는 메모리 컨트롤러를 더 포함하고,
    상기 프로세서는, 상기 비휘발성 데이터 저장 장치에 대한 액세스의 타입을 나타내는 액세스 타입 이력 정보를 획득하고,
    상기 액세스 타입 이력 정보는 상기 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 하는 시기를 결정하는 데에 사용되는,
    데이터 저장 장치.
  6. 삭제
  7. 제1항에 있어서,
    상기 프로세서는 기록 카운트 및 판독 카운트의 기록-판독 비율에 기초하여, 상기 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 할 때를 결정하는,
    데이터 저장 장치.
  8. 제7항에 있어서,
    상기 프로세서는, 상기 기록-판독 비율이 임계치를 초과한 때 상기 캐시 계층을 이네이블 하고, 상기 기록-판독 비율이 상기 임계치보다 낮은 때, 상기 캐시 계층을 디세이블 하는,
    데이터 저장 장치.
  9. 제1항에 있어서,
    상기 프로세서는, 비휘발성 데이터 저장 장치에 대한 기록 액세스의 레이트(rate)가 임계치를 초과하는 것을 방지하기 위해, 상기 캐시 계층을 이네이블 하는,
    데이터 저장 장치.
  10. 제9항에 있어서,
    상기 임계치는 상기 비휘발성 데이터 저장 장치의 기록 내구성과 연관된,
    데이터 저장 장치.
  11. 제1항에 있어서,
    상기 캐시 계층을 디세이블 하는 것은, 상기 캐시 계층을 이네이블 하기 이전에 비휘발성 데이터 저장 장치에 대한 복수의 후속하는 액세스를 위해, 상기 캐시 계층을 디세이블 하는 것을 포함하는,
    데이터 저장 장치.
  12. 제11항에 있어서,
    상기 후속하는 액세스는 단일의 판독 액세스를 포함하는,
    데이터 저장 장치.
  13. 제11항에 있어서,
    상기 후속하는 액세스는 적어도 하나의 버스트 모드(burst mode) 액세스를 포함하는,
    데이터 저장 장치.
  14. 패키지 내의 비휘발성 데이터 저장 장치; 및
    상기 비휘발성 데이터 저장 장치와 통신하고, 상기 패키지 내에 위치한 로컬 프로세서(local processor)
    를 포함하고,
    상기 로컬 프로세서와 상기 비휘발성 데이터 저장 장치가, 다이내믹하게 디세이블 가능한 캐시 계층을 이용하여, 플래터너블 비휘발성 데이터 저장 시스템(flattenable non-volatile data storage system)을 형성하고,
    상기 패키지의 외부 통신 인터페이스와 통신하는 상기 로컬 프로세서가, 상기 패키지의 외부의 장치와 통신하는,
    데이터 저장 장치.
  15. 제14항에 있어서,
    상기 로컬 프로세서는, 상기 다이내믹하게 디세이블 가능한 캐시 계층을 디세이블 하기 위해 상기 다이내믹하게 디세이블 가능한 캐시 계층에의 전력 전달을 디세이블 시키는,
    데이터 저장 장치.
  16. 제14항에 있어서,
    상기 비휘발성 데이터 저장 장치에 대한 판독 액세스의 판독 카운트를 추적하는 판독 카운터; 및
    상기 비휘발성 데이터 저장 장치에 대한 기록 액세스의 기록 카운트를 추적하는 기록 카운터
    를 더 포함하고,
    상기 판독 카운트와 상기 기록 카운트는 상기 다이내믹하게 디세이블 가능한 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 하는 시기를 결정하는 데에 사용되는,
    데이터 저장 장치.
  17. 제16항에 있어서,
    상기 로컬 프로세서는, 기록 카운트 및 판독 카운트의 기록-판독 비율에 기초하여, 상기 다이내믹하게 디세이블 가능한 캐시 계층을 다이내믹하게 이네이블 또는 디세이블 하는 시기를 결정하는,
    데이터 저장 장치.
  18. 제14항에 있어서,
    상기 외부 통신 인터페이스는, 상기 패키지의 외부의 상기 장치들의 상이한 타입의 통신 인터페이스들과 통신하는,
    데이터 저장 장치.
KR1020127006685A 2010-03-08 2011-03-07 데이터 저장 장치 및 방법 KR101840238B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US31174410P 2010-03-08 2010-03-08
US61/311,744 2010-03-08
PCT/US2011/027443 WO2011112523A2 (en) 2010-03-08 2011-03-07 Data storage apparatus and methods

Publications (2)

Publication Number Publication Date
KR20130036169A KR20130036169A (ko) 2013-04-11
KR101840238B1 true KR101840238B1 (ko) 2018-03-20

Family

ID=44564069

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127006685A KR101840238B1 (ko) 2010-03-08 2011-03-07 데이터 저장 장치 및 방법

Country Status (6)

Country Link
US (1) US8924645B2 (ko)
EP (1) EP2545452B1 (ko)
JP (1) JP5607175B2 (ko)
KR (1) KR101840238B1 (ko)
CN (1) CN102792289B (ko)
WO (1) WO2011112523A2 (ko)

Families Citing this family (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588888B2 (en) * 2010-07-30 2017-03-07 Hewlett Packard Enterprise Development Lp Memory device and method for altering performance characteristic based on bandwidth demand
US9740762B2 (en) 2011-04-01 2017-08-22 Mongodb, Inc. System and method for optimizing data migration in a partitioned database
US9805108B2 (en) 2010-12-23 2017-10-31 Mongodb, Inc. Large distributed database clustering systems and methods
US10698775B2 (en) 2016-05-31 2020-06-30 Mongodb, Inc. Method and apparatus for reading and writing committed data
US11615115B2 (en) 2010-12-23 2023-03-28 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10713280B2 (en) 2010-12-23 2020-07-14 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10977277B2 (en) 2010-12-23 2021-04-13 Mongodb, Inc. Systems and methods for database zone sharding and API integration
US10997211B2 (en) 2010-12-23 2021-05-04 Mongodb, Inc. Systems and methods for database zone sharding and API integration
US10262050B2 (en) 2015-09-25 2019-04-16 Mongodb, Inc. Distributed database systems and methods with pluggable storage engines
US10346430B2 (en) 2010-12-23 2019-07-09 Mongodb, Inc. System and method for determining consensus within a distributed database
US8996463B2 (en) 2012-07-26 2015-03-31 Mongodb, Inc. Aggregation framework system architecture and method
US11544288B2 (en) 2010-12-23 2023-01-03 Mongodb, Inc. Systems and methods for managing distributed database deployments
US10740353B2 (en) 2010-12-23 2020-08-11 Mongodb, Inc. Systems and methods for managing distributed database deployments
US9483484B1 (en) * 2011-05-05 2016-11-01 Veritas Technologies Llc Techniques for deduplicated data access statistics management
US10073656B2 (en) 2012-01-27 2018-09-11 Sandisk Technologies Llc Systems and methods for storage virtualization
KR20150010717A (ko) 2012-04-27 2015-01-28 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 메모리 디바이스의 보호
US9141533B2 (en) * 2012-05-31 2015-09-22 Silicon Motion, Inc. Data storage device and flash memory control method for performing garbage collection
US10872095B2 (en) 2012-07-26 2020-12-22 Mongodb, Inc. Aggregation framework system architecture and method
US11544284B2 (en) 2012-07-26 2023-01-03 Mongodb, Inc. Aggregation framework system architecture and method
US11403317B2 (en) 2012-07-26 2022-08-02 Mongodb, Inc. Aggregation framework system architecture and method
US10346095B2 (en) * 2012-08-31 2019-07-09 Sandisk Technologies, Llc Systems, methods, and interfaces for adaptive cache persistence
JP5439567B1 (ja) 2012-10-11 2014-03-12 株式会社東芝 半導体装置
US9431064B2 (en) * 2012-11-02 2016-08-30 Taiwan Semiconductor Manufacturing Company, Ltd. Memory circuit and cache circuit configuration
US10089224B2 (en) * 2013-03-15 2018-10-02 The Boeing Company Write caching using volatile shadow memory
KR20150132099A (ko) 2013-03-20 2015-11-25 휴렛-팩커드 디벨롭먼트 컴퍼니, 엘.피. 서로 다른 계층 레벨의 메모리 노드를 가진 메모리 시스템에서의 데이터 캐싱
US9703717B2 (en) * 2013-07-29 2017-07-11 Hitachi, Ltd. Computer system and control method
US9235517B2 (en) * 2013-08-12 2016-01-12 Globalfoundries Inc. Implementing dynamic cache enabling and disabling based upon workload
US9483352B2 (en) * 2013-09-27 2016-11-01 Fisher-Rosemont Systems, Inc. Process control systems and methods
WO2015116100A1 (en) 2014-01-30 2015-08-06 Hewlett-Packard Development Company, L.P. Managing data using a number of non-volatile memory arrays
US9369527B2 (en) * 2014-02-21 2016-06-14 Hitachi, Ltd. File server, file server control method, and storage system
KR20150100042A (ko) * 2014-02-24 2015-09-02 한국전자통신연구원 3차원 다이 스택 디램에서의 가속 시스템
CN103885908B (zh) * 2014-03-04 2017-01-25 中国科学院计算技术研究所 一种基于外部设备可访问寄存器的数据传输系统及其方法
JP6417695B2 (ja) * 2014-03-31 2018-11-07 富士通株式会社 情報処理システム、情報処理システムの制御方法および情報処理装置の制御プログラム
US9639465B2 (en) * 2014-04-30 2017-05-02 Qualcomm Innovation Center, Inc. Dynamic cachable memory interface frequency scaling
US9832876B2 (en) * 2014-12-18 2017-11-28 Intel Corporation CPU package substrates with removable memory mechanical interfaces
US9858201B2 (en) 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US9658793B2 (en) 2015-02-20 2017-05-23 Qualcomm Incorporated Adaptive mode translation lookaside buffer search and access fault
US10218779B1 (en) * 2015-02-26 2019-02-26 Google Llc Machine level resource distribution
US9904477B2 (en) * 2015-05-13 2018-02-27 Sandisk Technologies Llc System and method for storing large files in a storage device
US9959206B2 (en) * 2015-05-19 2018-05-01 Toshiba Memory Corporation Memory system and method of controlling cache memory
US10489197B2 (en) 2015-06-01 2019-11-26 Samsung Electronics Co., Ltd. Highly efficient inexact computing storage device
US10496669B2 (en) 2015-07-02 2019-12-03 Mongodb, Inc. System and method for augmenting consensus election in a distributed database
US10673623B2 (en) 2015-09-25 2020-06-02 Mongodb, Inc. Systems and methods for hierarchical key management in encrypted distributed databases
US10846411B2 (en) * 2015-09-25 2020-11-24 Mongodb, Inc. Distributed database systems and methods with encrypted storage engines
CN106710627B (zh) * 2015-11-18 2019-11-26 凌阳科技股份有限公司 多晶胞芯片及其存储器装置
KR101887741B1 (ko) * 2016-04-11 2018-09-11 전자부품연구원 적응적 블록 캐시 운용 방법 및 이를 적용한 dbms
CN106095697B (zh) * 2016-06-07 2019-11-19 华为技术有限公司 一种数据固化存储的方法、装置和系统
US10621050B2 (en) 2016-06-27 2020-04-14 Mongodb, Inc. Method and apparatus for restoring data from snapshots
US10567406B2 (en) * 2016-08-16 2020-02-18 International Business Machines Corporation Cloud computing environment activity monitoring
US10530791B2 (en) 2016-08-16 2020-01-07 International Business Machines Corporation Storage environment activity monitoring
US10599578B2 (en) 2016-12-13 2020-03-24 Advanced Micro Devices, Inc. Dynamic cache bypassing
US10866868B2 (en) 2017-06-20 2020-12-15 Mongodb, Inc. Systems and methods for optimization of database operations
US10754578B2 (en) * 2018-05-09 2020-08-25 Micron Technology, Inc. Memory buffer management and bypass
US11010092B2 (en) 2018-05-09 2021-05-18 Micron Technology, Inc. Prefetch signaling in memory system or sub-system
US10942854B2 (en) 2018-05-09 2021-03-09 Micron Technology, Inc. Prefetch management for memory
US10714159B2 (en) 2018-05-09 2020-07-14 Micron Technology, Inc. Indication in memory system or sub-system of latency associated with performing an access command
US10534543B2 (en) * 2018-06-01 2020-01-14 Micron Technology, Inc. Using counters to efficiently track busy time of storage systems
US10534708B1 (en) * 2018-06-25 2020-01-14 Microsoft Technology Licensing, Llc Shallow cache for content replication
US11169920B2 (en) * 2018-09-17 2021-11-09 Micron Technology, Inc. Cache operations in a hybrid dual in-line memory module
KR20200059493A (ko) * 2018-11-21 2020-05-29 에스케이하이닉스 주식회사 데이터 처리 시스템
CN109947363B (zh) * 2018-12-11 2022-10-14 深圳供电局有限公司 一种分布式存储系统的数据缓存方法
CN109725854A (zh) * 2018-12-28 2019-05-07 安徽长泰信息安全服务有限公司 一种计算机外部数据存储设备
US11429552B2 (en) * 2019-01-09 2022-08-30 Hewlett-Packard Development Company, L.P. Data link changes based on requests
CN114450671A (zh) * 2019-09-20 2022-05-06 瑞典爱立信有限公司 用于网络设备中的高速缓存管理的方法和系统
US11232049B2 (en) * 2019-12-13 2022-01-25 Micron Technology, Inc. Memory module with computation capability
CN111274163A (zh) * 2020-03-27 2020-06-12 西安紫光国芯半导体有限公司 储存级存储器的双列直插式存储模块装置及其缓存方法
US11954040B2 (en) * 2020-06-15 2024-04-09 Arm Limited Cache memory architecture
KR20230033090A (ko) * 2021-08-27 2023-03-08 삼성전자주식회사 스토리지 장치, 스토리지 장치를 포함하는 전자 장치, 그리고 전자 장치의 동작 방법
US20230266899A1 (en) * 2022-02-23 2023-08-24 Nvidia Corporation System level hardware mechanisms for dynamic assist control

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182944A1 (en) * 2008-01-10 2009-07-16 Miguel Comparan Processing Unit Incorporating L1 Cache Bypass

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60196860A (ja) * 1984-03-21 1985-10-05 Hitachi Ltd キヤツシユメモリ制御方式
JPH0535594A (ja) * 1991-07-26 1993-02-12 Nec Corp キヤツシユメモリ装置
US5809532A (en) * 1993-12-06 1998-09-15 Motorola Inc. Data processor with cache and method of operation
JP3544859B2 (ja) 1998-05-11 2004-07-21 富士通株式会社 不揮発性半導体メモリを使用した2次記憶装置
JP2000305717A (ja) * 1999-04-23 2000-11-02 Toshiba Corp ディスクアレイ装置およびディスクアクセスを高速化する方法
US6151664A (en) 1999-06-09 2000-11-21 International Business Machines Corporation Programmable SRAM and DRAM cache interface with preset access priorities
US7096327B2 (en) 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
ATE484026T1 (de) * 2000-04-12 2010-10-15 Dsp Group Switzerland Ag Datenverarbeitungsschaltung mit cachespeicher und vorrichtung mit solcher schaltung
US7376854B2 (en) * 2004-03-31 2008-05-20 Intel Corporation System for enabling and disabling voltage regulator controller of electronic appliance according to a series of delay times assigned to voltage regulator controllers
US7644239B2 (en) * 2004-05-03 2010-01-05 Microsoft Corporation Non-volatile memory cache performance improvement
US7257678B2 (en) * 2004-10-01 2007-08-14 Advanced Micro Devices, Inc. Dynamic reconfiguration of cache memory
US7228388B2 (en) * 2004-11-19 2007-06-05 International Business Machines Corporation Enabling and disabling cache bypass using predicted cache line usage
JP4364878B2 (ja) * 2005-03-31 2009-11-18 株式会社半導体エネルギー研究所 演算処理装置
US20070043965A1 (en) * 2005-08-22 2007-02-22 Intel Corporation Dynamic memory sizing for power reduction
JP2007293987A (ja) * 2006-04-24 2007-11-08 Toshiba Corp 情報記録装置及びその制御方法
US7716411B2 (en) * 2006-06-07 2010-05-11 Microsoft Corporation Hybrid memory device with single interface
US7631149B2 (en) * 2006-07-24 2009-12-08 Kabushiki Kaisha Toshiba Systems and methods for providing fixed-latency data access in a memory system having multi-level caches
US8683139B2 (en) * 2006-10-31 2014-03-25 Hewlett-Packard Development Company, L.P. Cache and method for cache bypass functionality
US20090006756A1 (en) 2007-06-29 2009-01-01 Donley Greggory D Cache memory having configurable associativity
JP5167952B2 (ja) * 2008-05-26 2013-03-21 富士通株式会社 キャッシュメモリシステム
US8103822B2 (en) * 2009-04-26 2012-01-24 Sandisk Il Ltd. Method and apparatus for implementing a caching policy for non-volatile memory

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182944A1 (en) * 2008-01-10 2009-07-16 Miguel Comparan Processing Unit Incorporating L1 Cache Bypass

Also Published As

Publication number Publication date
EP2545452B1 (en) 2017-11-29
WO2011112523A2 (en) 2011-09-15
CN102792289A (zh) 2012-11-21
CN102792289B (zh) 2015-11-25
EP2545452A4 (en) 2015-01-21
WO2011112523A3 (en) 2012-01-05
US8924645B2 (en) 2014-12-30
US20120131278A1 (en) 2012-05-24
EP2545452A2 (en) 2013-01-16
JP5607175B2 (ja) 2014-10-15
KR20130036169A (ko) 2013-04-11
JP2013512529A (ja) 2013-04-11

Similar Documents

Publication Publication Date Title
KR101840238B1 (ko) 데이터 저장 장치 및 방법
US11422722B2 (en) Intelligent wide port PHY usage
US11016887B2 (en) Converged memory device and operation method thereof
Malladi et al. Towards energy-proportional datacenter memory with mobile DRAM
Harizopoulos et al. Energy efficiency: The new holy grail of data management systems research
Gutierrez et al. Integrated 3D-stacked server designs for increasing physical density of key-value stores
CN104798008B (zh) 控制处理器的可配置的峰值性能极限
US9727267B1 (en) Power management and monitoring for storage devices
US8286015B2 (en) Storage array power management using lifecycle information
CN105335219A (zh) 一种基于分布式的任务调度方法及系统
US20220188208A1 (en) Methods for configuring span of control under varying temperature
US20180101323A1 (en) Power management and monitoring for storage devices
Zhang et al. Pm3: Power modeling and power management for processing-in-memory
US20190114109A1 (en) Power efficient retraining of memory accesses
Zhang et al. Key technologies for green data center
Asad et al. Exploiting heterogeneity in cache hierarchy in dark-silicon 3d chip multi-processors
US10452546B2 (en) Cache utility modeling for automated cache configuration
US20240087636A1 (en) Dynamic Memory Operations
Lefurgy et al. Energy-efficient data centers and systems
Jun et al. Asymmetric DRAM synthesis for heterogeneous chip multiprocessors in 3D-stacked architecture
Arezoomand et al. Reliability and Power Optimization in 3D-Stacked Cache Using a Run-Time Reconfiguration Procedure
Hadeed AN ENERGY-EFFICIENT HYBRID UNCORE ARCHITECTURE IN FUTURE EMBEDDED CHIP-MULTIPROCESSOR
Lee et al. Green storage technologies: issues and strategies for enhancing energy efficiency
Asad et al. Power Modeling and Runtime Performance Optimization of Power Limited Many-Core Systems Based on a Dynamic Adaptive Approach
Khurshid Thermal Management of the Hybrid Memory Cube

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right