KR20130036221A - 파워 복원 후 리로드 기능을 갖는 캐시 - Google Patents

파워 복원 후 리로드 기능을 갖는 캐시 Download PDF

Info

Publication number
KR20130036221A
KR20130036221A KR1020127025911A KR20127025911A KR20130036221A KR 20130036221 A KR20130036221 A KR 20130036221A KR 1020127025911 A KR1020127025911 A KR 1020127025911A KR 20127025911 A KR20127025911 A KR 20127025911A KR 20130036221 A KR20130036221 A KR 20130036221A
Authority
KR
South Korea
Prior art keywords
cache
tag
power
memory
data
Prior art date
Application number
KR1020127025911A
Other languages
English (en)
Other versions
KR101369443B1 (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 KR20130036221A publication Critical patent/KR20130036221A/ko
Application granted granted Critical
Publication of KR101369443B1 publication Critical patent/KR101369443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/24Resetting means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0862Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with prefetch
    • GPHYSICS
    • 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
    • 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
    • G06F12/0868Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
    • 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/60Details of cache memory
    • G06F2212/6024History based prefetching
    • 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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

캐시 재실장 방법 및 장치가 개시된다. 캐시의 콘텐트의 적어도 일부분이 캐시로부터 분리된 위치에 저장된다. 캐시로부터 파워가 제거되고 언젠가 나중에 복원된다. 캐시에 대한 파워가 복원된 후, 캐시로부터 별도로 저장된 캐시의 콘텐트의 상기 일부분으로 캐시가 재실장된다.

Description

파워 복원 후 리로드 기능을 갖는 캐시 {CACHE WITH RELOAD CAPABILITY AFTER POWER RESTORATION}
관련 출원의 상호 참조
본 출원은 2010년 3월 3일자 미국특허출원 제12/716,391호에 기초하여 우선권을 주장하며, 그 내용 전체는 본 발명에 포함된다.
발명의 분야
본 발명은 컴퓨터 캐시 메모리에 관한 것이고, 특히, 파워가 제거되고 그 후 캐시 메모리에 복원된 후 캐시 메모리를 리로드(reload)하기 위한 방법 및 장치에 관한 것이다.
컴퓨터에서, 캐시는 최근에 액세스한 데이터를 홀딩하는 프로세스의 메인 메모리로부터 분리된 소형의 고속 메모리다. 캐시를 이용하면 동일 데이터의 후속 요청에 대한 액세스 시간을 단축시킬 수 있다. 요청받은 데이터 또는 메모리 위치가 검색되고 있는 캐시 내에서 발견될 때 "캐시 히트"(cache hit)가 발생한다. 요청받는 데이터 또는 메모리 위치가 발견되지 않을 때, 이는 "캐시 미스"(cache miss)라 불리며, 이 데이터는 캐시 내 새 엔트리를 할당받기 쉽다. 캐시가 이미 풀 상태일 경우, 다수의 정책들 중 하나를 이용하여 기존 엔트리 하나를 비울 수 있다.
캐시 메모리는 하나 이상의 태그 스토리지 및 하나 이상의 데이터 스토리지를 포함할 수 있다. 태그 스토리지는 태그를 지닌다. 일반적으로, 태그를 이용하여 데이터의 캐시된 조각을 식별할 수 있고, 캐시된 데이터가 입력 요청을 충족시키는 데 사용될 수 있는지 여부를 결정할 수 있다. 일 구현예에서, 태그는 캐시된 데이터의 주 메모리 위치의 인덱스를 포함할 수 있다. 다른 구현예에서, TLB(Translation Lookaside Buffer) 타입 캐시에서, 태그는 주 메모리 위치를 직접 인덱싱하지 않고 특정 주 메모리 어드레스에 직접 관련되지 않는 가상 어드레스 및 다른 요청-기반 정보로 구성될 수 있다. 데이터 스토리지는 주 메모리로부터 데이터의 사본을 지닐 수 있다. 데이터 스토리지는 (예를 들어, 후기입 캐시(write-back cache)를 이용하여) 주 메모리에 아직 기록되지 않은, 프로세서에 의해 발생된 데이터를 또한 지닐 수 있다. 이러한 데이터는 파워가 캐시로부터 제거되기 전에 메모리에 기입되어야 한다.
컴퓨터의 전력 소모를 감소시키기 위해, 아이들 주기 중 구성요소(내부 일체형 구성요소 포함)들이 저전력 상태 또는 완전 파워 오프 상태에 놓일 수 있다. 휘발성 스토리지 요소들로 구축된 캐시 메모리를 파워 오프시키면, 상태의 손실이 나타난다. 파워가 복원되면, 캐시가 비어있기 때문에 정상 캐시 액세스는 부적중(miss)될 것이고, 높은 대기시간의 고정 배킹 스토리지(persistent backing storage)로부터 데이터를 추출하여야 하며, 따라서, 성능이 저하된다. 이러한 액세스는 캐시를 점진적으로 재충전시키고, 후속 액세스가 이러한 재충전되는 엔트리의 히트를 시작한다고 가정할 때, 성능이 점진적으로 정규 레벨로 다시 회복된다.
일부 기존 기술에서는 캐시가 그 콘텐트의 일부분(예를 들어, 태그 스토리지 및 데이터 스토리지)을 동시에 파워 오프시킬 수 있다. 한가지 기술에서, 캐시의 일부분에만 전력을 제공함으로써 상태를 유지하면서 전력 소모가 감소할 수 있다. 이러한 특별한 해법은 태그 메모리 및 대응하는 데이터 메모리의 일부분의 상태를 유지함에 있어 전력을 소모한다.
다른 기술은 동적 전력 소모를 감소시키기 위해 캐시의 클럭 주파수를 감소시킨다. 정적 전력 소모는 캐시의 트랜지스터의 작동 파라미터에 대한 대응하는 조정에 의해 감소될 수 있다(전압 감소, 바이어싱 변화, 등).
기존 기술은 전력 소모를 줄이기 위해 파워 복원 후 성능을 희생할지, 또는, 파워 복원 후 성능 저하를 방지하기 위해 데이터 스토리지의 서브세트에서 파워를 보존하도록 최적 전력 소모를 희생할지를 선택해야 하는 결과를 가져온다. 따라서, 캐시가 파워 온된 후 성능 희생없이 대부분 또는 모든 캐시를 파워 오프시킬 필요가 있다.
캐시 재실장 방법은, 캐시로부터 분리된 위치에 캐시의 콘텐트의 적어도 일부분을 저장함으로써 시작된다. 캐시로부터 파워가 제거되어 나중에 언젠가 복원된다. 캐시로부터 별도로 저장된 캐시의 콘텐트의 상기 일부분으로 캐시가 재실장된다.
캐시 재실장 방법은 캐시로부터 파워를 제거하고 나중에 언젠가 캐시에 대한 파워를 복원함으로써 시작된다. 캐시에 대한 파워가 복원되었고 캐시가 상태를 상실하였음을 캐시 클라이언트에 신호한다. 클라이언트는 캐시에 프리페치 명령(prefetch command)을 발급하고, 상기 캐시는 프리페치 명령을 이용하여 데이터를 캐시 내로 로딩한다.
캐시 재실장 장치는 캐시, 메모리, 및 메모리 컨트롤러를 포함한다. 캐시는 데이터 및 데이터에 관한 태그를 저장하도록 구성된다. 메모리는 캐시로부터 분리되어 위치하고, 파워가 캐시로부터 제거될 때 캐시로부터 태그를 저장하도록 구성된다. 메모리 컨트롤러는 캐시에 대한 파워가 복원될 때 캐시로부터 태그를 메모리에 기입하도록 구성된다.
캐시를 재실장하기 위해 범용 컴퓨터에 의해 실행하기 위한 한 세트의 명령어를 저장하는 컴퓨터-판독형 기록 매체에 있어서, 상기 한 세트의 명령어는, 저장 코드 세그먼트와, 제거 코드 세그먼트와, 복원 코드 세그먼트와, 재실장 코드 세그먼트를 포함한다. 저장 코드 세그먼트는 캐시로부터 분리된 위치에 캐시의 콘텐트의 적어도 일부분을 저장하기 위한 것이다. 제거 코드 세그먼트는 캐시로부터 파워를 제거하기 위한 것이다. 복원 코드 세그먼트는 캐시에 대한 파워를 복원하기 위한 것이다. 재실장 코드 세그먼트는 캐시로부터 별도로 저장된 캐시의 콘텐트의 상기 일부분으로 캐시를 재실장하기 위한 것이다.
예를 들어 제시되는 다음의 설명으로부터, 첨부 도면과 연계하여 발명의 더욱 상세한 이해를 얻을 수 있을 것이다.
도 1은 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 1 실시예의 블록도이고,
도 2는 파워 복원 후 캐시를 리로드하기 위한 제 1 방법의 순서도이며,
도 3은 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 2 실시예의 블록도이고,
도 4는 파워 복원 후 캐시를 리로드하기 위한 제 2 방법의 순서도이며,
도 5는 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 3 실시예의 블록도이고,
도 6은 파워 복원 후 캐시를 리로드하기 위한 제 3 방법의 순서도이며,
도 7은 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 4 실시예의 블록도이고,
도 8은 파워 복원 후 캐시를 리로드하기 위한 제 4 방법의 순서도이며,
도 9는 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 5 실시예의 블록도이고,
도 10은 파워 복원 후 캐시를 리로드하기 위한 제 5 방법의 순서도이며,
도 11은 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 6 실시예의 블록도이고,
도 12는 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 6 실시예의 블록도이고,
도 13은 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 7 실시예의 블록도이고,
도 14는 파워 복원 후 캐시를 리로드하기 위한 제 7 방법의 순서도이며,
도 15는 파워 복원 후 캐시를 리로드하기 위한 메모리 시스템의 제 8 실시예의 블록도이고,
도 16은 파워 복원 후 캐시를 리로드하기 위한 제 8 방법의 순서도다.
다음은 통상의 캐시에 대한 개선점을 설명한다. 일반적으로 캐시가 파워 오프될 때, 캐시는 캐시가 데이터로 재충전되는 데 소정의 시간이 걸리며, 따라서, 초기 캐시 액세스는 캐시가 파워 오프되기 전보다 느리다. 파워가 복원된 후, 빈 캐시는 유입 요청이 캐시를 부적중(miss)함에 따라 점진적으로 재충전될 수 있고, 이에 따라, 새로운 데이터가 캐시를 충전한다. 재충전 프로세스는 유입 요청의 속도에 의해 제한될 수 있고, 이는 과거 요청들이 캐시 부적중으로 인해 느리게 서브시되기 때문에 느릴 수 있다.
파워가 복원된 후 그리고 사용자가 캐시로부터 해당 데이터를 다시 요청하기 전에, 동일한 데이터가 캐시에 복원될 수 있도록 파워 오프되어야할 캐시의 외부에 데이터가 저장될 수 있다. 따라서, 사용자가 해당 조각의 데이터에 대해 캐시에 요청하기 전에 데이터가 복원될 수 있기 때문에, 캐시의 파워 온 후 성능 저하가 완화된다. 재충전 프로세스는 정상 프로세서 요청과 오버랩될 수 있고, 재충전 프로세스가 완료될 때까지 정규 프로세서 요청을 차단하지 않을 수 있다.
전력 소모를 감소시키기 위해 전력-게이팅(power-gating)이 사용될 수 있고, 전력이 복원되자마자 캐시 내로 콘텐트를 로딩함으로써 저-성능 주기가 최소화될 수 있다. 캐시가 완전히 파워-게이팅될 수도 있어서, 모든 동적 파워를 제거하고 정적 파워를 파워 게이트를 통한 누설로 감소시킬 수 있다. 다른 실시예에서, 모든 데이터 스토리지는 파워 오프되어, 추가적으로 전력 소모를 최소화시킬 수 있다.
"복원 태그"(restore tag)를 발생시키고, 그 후 세이브(save), 보존, 또는 저장하기 위한 메커니즘이 캐시에 부가될 수 있다. 복원 태그는 전력 복원 이벤트 이후 캐시의 배킹 스토리지 메모리(backing storage memory)로부터 데이터의 위치를 결정하고 데이터를 로드하는 데 충분한 정보를 지닌다. 하나 이상의 요청에 서비스하기 위해 가까운 미래에 캐시가 필요할 것이라는 예상으로 데이터가 추출된다는 점에서, 이는 프리페치 요청과 유사한 속성을 갖는다.
복원 태그는 전력을 절감하기 위해 모든 또는 일부 캐시의 파워를 오프시키기 전에 고정 스토리지 위치(persistent storage location)에 위치한다. 파워가 복원될 때, 복원 태그를 이용하여 캐시의 배킹 스토리지로부터 캐시 내로 데이터를 로딩할 수 있다. 이러한 데이터 로딩은 정규 캐시 요청에 의해 트리거링되는 임의의 로드와는 별도의 것이고, 일반적으로 이보다 앞서 나타난다. 캐시 엔트리 중 일부 또는 전부가 이러한 방식으로 로딩될 수 있다. 로딩된 데이터는 파워 오프되기 전에 캐시 내에 있었던 것과 동일한 데이터일 수도 있고, 또는, 파워가 복원된 후 유용할 것으로 예상되는 임의의 데이터일 수도 있다.
복원 태그는 캐시의 파워 오프 이전에 캐시에 저장된 정보를 이용하여 구성될 수 있다. 이는 파워 다운 주기 후 기존 캐시 데이터가 필요해질 것이라는 가정에 기초한다. 복원 태그를 이용하여, 앞서 캐시에 저장한 정확한 데이터를 리로드할 수 있고, 앞서 캐시에 저장한 데이터를 획득함과 관련한 유용한 중간 정보를 로딩할 수 있으며, 또는, 파워 복원 후 유용할 것으로 예상되는 다른 데이터를 로딩할 수 있다. 이러한 경우에, 캐시 엔트리에 대한 복원 태그는 엔트리의 태그 콘텐트에 기초하여 구성될 수 있다(통상적으로, 어드레스의 일부분이지만 가능하다면 추가적인 속성과 함께). 캐시 내 캐시 엔트리의 논리적 어드레스와 같이, 복원 태그를 구성하는 데 추가적인 정보가 또한 필요해질 것이다. 복원 태그는, 캐시가 다시 파워 온 되자마자 나타날 액세스 타입에 대한 지식 또는 예상치를 갖는 소프트웨어에 의해 구성될 수도 있다.
캐시는 캐시의 데이터 콘텐트의 복제 사본을 홀딩하는 배킹 스토리지 메모리를 갖는다고 가정한다. 캐시가 배킹 스토리지 내 데이터보다 훨씬 현재에 가까운 "지저분한" 기입 데이터를 저장할 경우, 지저분한 데이터는 캐시로부터 파워가 제거되기 전에 배킹 스토리지 메모리에 기입된다.
여기서 설명되는 실시예는 명령 데이터, 데이터 캐시, TLB, I/O TLB, 텍스처 및 정점용 그래픽 데이터 캐시, 등을 포함한, 그러나 이에 제한되지 않는, 여러 타입의 하드웨어 캐시에 적용가능하다.
캐시의 태그는 다양한 메커니즘을 이용하여 발생, 세이브, 또는 보존, 및 그 후 로딩될 수 있다. 여러 실시예들은 파워 오프 이벤트 이전에, 또는 파워가 복원된 후에, 복원 태그를 발생시키는 메커니즘을 포함한다. 추가적으로, 여러 실시예들은 파워-온 리로드 엔진(poweer-on reload engine)을 갖는데, 상기 파워-온 리로드 엔진은 파워 복원 후 복원 태그를 받아들이고, 복원 태그를 이용하여 캐시의 배킹 스토리지로부터 캐시 내로 데이터를 로딩한다. 파워-온 리로드 엔진은 프리페치 또는 로드 엔진과 같은 기존 로직과 조합되거나 공유될 수 있다.
설계 변화
다음의 예시적인 실시예들은 설명을 위한 것에 불과하다. 당 업자라면 이러한 실시예들의 변형이 가능함을 인지할 것이다. 각각의 실시예는 고유한 장점을 갖고, 서로 다른 파워, 성능, 및 복잡도의 트레이드오프를 갖는다.
제 1 실시예
제 1 실시예에서, 도 1 및 도 2에 도시되는 바와 같이, 캐시가 태그 정보 및 데이터 정보를 별도의 메모리에 저장할 수 있다. 캐시는 태그 메모리들의 서브세트에 대해 파워를 보유할 수 있으나, 데이터 메모리 및 나머지 태그 메모리들을 파워 오프시킬 수 있다. 본 실시예에서, 복원 태그는 보존된 캐시 태그를 이용함으로써 파워가 복원된 후 발생된다. 복원 태그는 캐시의 배킹 스토리지로부터 캐시 내로 데이터 콘텐트를 로딩하는 데 사용된다.
도 1은 캐시(102), 캐시 컨트롤러(104), 메모리(106), 및 메모리 컨트롤러(108)를 포함하는 메모리 시스템(100)의 부분도다. 캐시(102)는 제 1 태그 스토리지 풀(태그 스토리지 풀 1)(110), 제 2 태그 스토리지 풀(태그 스토리지 풀 2)(112), 제 1 데이터 스토리지 풀(데이터 스토리지 풀 1)(114), 및 제 2 데이터 스토리지 풀(데이터 스토리지 풀 2)(116)을 포함한다. 캐시 컨트롤러(104)는 파워-온 리로드 엔진(118)을 포함한다.
캐시를 파워 오프시키기 전에 어떤 전용 방책도 필요치 않다. 태그 스토리지 풀 1(110)은 그 상태를 유지하고, 파워 온 상태를 유지할 수 있다. 태그 스토리지 풀 2(112), 데이터 스토리지 풀 1(114), 및 데이터 스토리지 풀 2(116)가 파워 오프된다(도 1의 음영 부분 참조). 파워가 복원된 후, 캐시 컨트롤러(104)의 파워-온 리로드 엔진((118)은 태그 스토리지 풀 1(110)로부터 태그를 판독하여 이 태그를 복원 태그로 이용한다. 복원 태그를 이용하여 메모리(106)로부터 데이터를 추출할 수 있고, 추출된 데이터가 데이터 스토리지 풀 1(114)에 기입된다.
도 2는 데이터 메모리 및 다른 태그 메모리를 파워 오프시키면서 태그 메모리의 서브세트의 파워를 유지하기 위한 방법(200)의 순서도를 도시한다. 방법(200)은, 태그 스토어의 서브세트(a subset of tag stores)에 상태를 보유함으로써 달성되는, 파워 온 상태로 유지되는 캐시의 일부분에 복원 태그를 생성 및 저장하는 단계(202)를 포함한다. 나머지 태그 스토어는 모든 데이터 스토어와 함께 파워 오프될 수 있다(단계(204)). 태그 스토어 및 데이터 스토어는 파워 온 이벤트가 수신될 때까지 파워 오프 상태로 유지될 것이다.
파워 온 이벤트를 수신하면, 파워 오프 상태였던 캐시들이 파워 온 될 수 있다(단계(206)). 파워 온 이후, 복원 태그가 판독된다(단계(208)). 데이터는 복원 태그를 이용하여 메모리로부터 추출될 수 있고(단계(210)), 추출된 데이터는 데이터 스토어에 다시 기입될 수 있다(단계(212)). 사용자가 캐시로부터 유사 데이터를 요청하기 전에 캐시에 다시 데이터를 로딩하기 위해 파워 온 이후 복원 태그가 사용된다.
제 1 실시예는 파워, 성능, 및 복잡도 사이의 트레이드오프를 포함한다. 캐시 스토리지에 관련된 대부분의 파워가 절감되지만, 하나 이상의 태그 스토어의 상태를 보유하기 위해 소량의 파워가 여전히 필요하다. 결과적인 성능은 파워 온 상태로 유지되는 스토어의 유용성에 따라 좌우된다. 최근에 사용된 태그 및 최근에 덜 사용한 태그들의 집합이 저장될 경우, 성능이 저하될 수 있다. 파워 온 상태로 유지되는 태그 스토어에 최근에 사용한 태그를 우선적으로 할당하는 과정을 포함하는 일 구현예에서, 성능이 높을 수 있다. 다른 구현예에서, 최근에 사용된 대부분의 태그가 파워 온 상태로 유지되는 태그 스토어 내로 전달되도록, 파워 제거 이전에 캐시 라인 스왑이 실행될 수 있다. 본 실시예에 대한 복잡도 레벨이 비교적 낮다. 상술한 캐시 라인 스와핑 로직이 구현되지 않는다면, 파워를 제거하기 전에 대안의 위치에 데이터를 저장할 필요가 없다.
제 2 실시예
제 2 실시예에서, 도 3 및 도 4에 도시되는 바와 같이, 캐시는 캐시의 태그에 기초하여 복원 태그 정보를 발생시킬 수 있다. 캐시는 파워 제거 이전에 고정 메모리(온-칩 또는 오프-칩)의 풀에 복원 태그를 기입할 수 있다. 이러한 고정 메모리는 캐시가 파워 오프 상태일 때, 셀프-리프레시와 같이, 보유된 저-파워 상태, 또는 완전 작동 상태에 놓일 수 있다. 전형적인 개인용 컴퓨터(PC)에서, 이는 시스템 메모리이거나, 고정 메모리의 별도의 전용 풀일 수 있다. 복원 태그 또는 복원 태그들의 그룹이 정규 인코딩에 저장될 수 있고, 또는 메모리 크기 및 파워 요건을 감소시키기 위해 고정 메모리에 기입되기 전에 압축될 수 있다. 캐시에 대한 파워가 복원될 때, 복원 태그는 캐시 내로 다시 판독되어, 캐시의 배킹 스토리지로부터 캐시 내로 데이터 콘텐트를 로딩하는 데 사용된다.
도 3은 캐시(302), 시스템 메모리(304), 메모리 컨트롤러(306), 내부 고정 스토리지 메모리(308), 및 처리 엔진(310)을 포함하는 메모리 시스템(300)의 부분도다. 캐시(302)는 태그 트랜스퍼 엔진(tag transfer engine)(312), 캐시 스토리지 어레이(314), 및 파워-온 리로드 엔진(316)을 지닌다. 시스템 메모리(304)는 캐시 태그 스토리지(318)를 지닌다.
파워 오프를 위해, 태그 트랜스퍼 엔진(312)에 의해 캐시 스토리지 어레이(314)로부터 태그가 판독되어 복원 태그를 발생시킨다. 태그 트랜스퍼 엔진(312)은 복원 태그를 (메모리 컨트롤러(306)를 통해) 캐시 태그 스토리지(318)에 또는 내부 고정 스토리지 메모리(308)에 기입한다. 태그 트랜스퍼 엔진(312)은 복원 태그를 선택적으로 포함할 수 있다. 앞서의 단계들은 선택적으로 겹쳐질 수 있고, 캐시 태그는 앞서 발생된 복원 태그가 여전히 기입되고 있을 때 판독될 수 있다.
파워 복원 후, 파워-온 리로드 엔진(316)은 캐시 태그 스토리지(318) 또는 내부 고정 스토리지 메모리(308)로부터 복원 태그를 판독한다. 파워-온 리로드 엔진(316)은 복원 태그(통상적으로 어드레스)를 이용하여, 시스템 메모리(304)로부터 데이터를 추출할 것을 캐시에 요청할 수 있다. 캐시(302)는 요청받은 데이터를 추출하고, 이를 캐시 스토리지 어레이(314)에 저장한다. 앞선 3개의 단계들은 겹쳐질 수 있고, 이는 복원 태그가 판독되면 이 복원 태그에 관련된 데이터가 시스템 메모리(304)로부터 요청받을 수 있고, 다른 스토리지 태그가 판독되기 전에 또는 판독되는 동안 캐시 스토리지 어레이(314)에 저장될 수 있음을 의미한다.
도 4는 캐시의 파워 오프 이전에 고정 메모리의 풀에 복원 태그를 기입하는 방법(400)의 순서도를 도시한다. 캐시의 파워 오프를 위해, 캐시로부터 태그를 판독하여 복원 태그를 발생시킨다(단계(402)). 복원 태그는 고정 메모리에 기입될 수 있다(단계(404)). 단계(402) 및 단계(404)는 겹쳐질 수 있어서, 앞서 발생된 복원 태그들이 고정 메모리에 기입될 때(단계(404)) 캐시 태그가 판독될 수 있다(단계 402)). 선택적으로, 복원 태그가 고정 메모리에 기입되기 전에(단계(404)), 복원 태그가 압축될 수 있다(단계(406)). 그 후 캐시가 파워 오프될 수 있다(단계(408)). 캐시는 파워 온 이벤트가 수신될 때까지 파워 오프 상태에 머무를 것이다.
파워 온 이벤트 수신시, 캐시가 파워 온되고(단계(410)), 복원 태그가 고정 메모리로부터 판독될 수 있다(단계 412). 복원 태그를 이용하여 배킹 스토리지로부터 데이터를 요청할 수 있고(단계(414)), 요청받은 데이터가 추출되어 캐시에 저장될 수 있다(단계(416)). 단계(412, 414, 416)들이 겹쳐져서, 복원 태그가 판독되면 해당 복원 태그에 관련된 데이터가 배킹 스토리지로부터 요청되어, 다른 복원 태그의 판독 전에 또는 판독 중에 캐시에 저장될 수 있다.
제 2 실시예는 파워, 성능, 및 복잡도 간의 트레이드오프를 또한 제시한다. 시스템 메모리는 상태 유지를 위한 파워를 이미 필요로하기 때문에, 복원 태그가 시스템 메모리에 저장되어 있을 경우 최대 파워가 보존된다. 복원 태그가 별도의, 온-칩 메모리에 저장될 경우, 비교적 소량의 추가 파워가 소모된다. 구현예가 모든 태그, 가능하다면 태그들의 서브세트(가장 최근에 사용한 태그를 포함)를 저장하는 것을 우선적으로 선택할 수 있기 때문에 제 2 실시예의 성능이 높다. 복원 태그가 발생되어야 하고 시스템 내에서 이동되어야 하기 때문에 복잡도 레벨은 적당한 편이다.
제 3 실시예
제 3 실시예에서, 도 5 및 도 6에 도시되는 바와 같이, 캐시가 복원 태그를 발생시킬 수 있다. 복원 태그는 캐시의 파워 오프 이전에 시스템 내 어딘가의 비휘발성 메모리에 기입될 수 있다. 비휘발성 메모리는 캐시가 파워 오프 상태일 때 파워 온 상태로 유지될 수도 있고 파워 오프될 수도 있다. 복원 태그 또는 복원 태그들의 그룹은 정규 인코딩에서 저장될 수 있고, 또는, 비휘발성 메모리에 기입되기 전에 압축될 수 있다. 복원 태그의 압축은 메모리 및 파워 요건을 감소시킬 수 있다. 캐시가 파워 온 될 때, 복원 태그를 지닌 비휘발성 스토리지가 파워 온 된다. 비휘발성 스토리지의 콘텐트는 다시 캐시 내로 판독되고, 이를 이용하여 캐시의 배킹 스토리지로부터 캐시 내로 데이터 콘텐트를 로딩할 수 있다.
도 5는 캐시(502), 비휘발성 메모리(504), 시스템 메모리(506), 메모리 컨트롤러(508), 및 처리 엔진(510)을 포함하는 메모리 시스템(500)의 부분도다. 캐시(502)는 태그 트랜스퍼 엔진(512), 캐시 스토리지 어레이(514), 및 파워-온 리로드 엔진(516)을 포함한다.
파워 오프를 위해, 태그 트랜스퍼 엔진(512)은 캐시 스토리지 어레이(514)로부터 태그를 판독한다. 태그 트랜스퍼 엔진(512)은 복원 태그를 발생시켜서 비휘발성 메모리(504)에 기입한다. 태그 트랜스퍼 엔진(512)은 선택적으로 복원 태그를 압축할 수 있다. 앞서의 단계들은 선택적으로 겹쳐질 수 있어서, 앞서 발생된 복원 태그가 여전히 기입되고 있을 때 캐시 태그가 판독될 수 있다. 요망 태그가 저장된 후, 캐시(502)가 파워 오프될 수 있다. 선택적으로, 비휘발성 메모리(504)가 파워 오프되어 추가적인 전력을 절감할 수 있다.
파워가 복원된 후, 캐시(502) 및 비휘발성 메모리(504)는, 필요시, 파워 온 될 수 있다. 파워-온 리로드 엔진(516)은 비휘발성 메모리(504)로부터 복원 태그를 판독한다. 파워-온 리로드 엔진(516)은 복원 태그(일반적으로 어드레스)를 이용하여 시스템 메모리(506)로부터 캐시 데이터를 요청한다. 캐시(502)는 요청받는 데이터를 추출하여 캐시 스토리지 어레이(514)에 저장한다. 앞서의 세 단계들은 겹쳐질 수 있어서, 복원 태그가 판독되면 해당 복원 태그에 관련된 데이터가 시스템 메모리(506)로부터 요청될 수 있고 다른 복원 태그가 판독되기 전에 또는 판독되는 동안, 캐시 스토리지 어레이(514)에 저장될 수 있다.
도 6은 캐시를 파워 오프시키기 전에 비휘발성 메모리에 복원 태그를 기입하기 위한 방법(600)의 순서도를 도시한다. 파워 오프를 위해, 태그로부터 캐시를 판독하여 복원 태그를 발생시킬 수 있다(단계(602)). 그 후 복원 태그는 비휘발성 메모리에 기입될 수 있다(단계(604)). 단계(602) 및 단계(604)가 겹쳐질 수 있어서, 앞서 발생된 복원 태그가 비휘발성 메모리에 기입될 때(단계(604)) 캐시 태그가 판독될 수 있다(단계(602)). 선택적으로, 복원 태그가 비휘발성 메모리에 기입되기 전에(단계(604)), 복원 태그가 압축될 수 있다(단계(606)). 캐시 및 비휘발성 메모리가 파워 오프될 수 있다(단계(608)). 캐시는 파워 온 이벤트가 수신될 때까지 파워 오프 상태를 유지할 것이다.
파워 온 이벤트를 수신하면, 캐시 및 비휘발성 메모리(파워 오프시)가 파워 온 될 수 있다(단계(610)). 파워 온 이후, 비휘발성 메모리로부터 복원 태그를 판독할 수 있다(단계(612)). 추출된 복원 태그를 이용하여 배킹 스토리지로부터 데이터를 요청할 수 있고(단계(614)), 요청받은 데이터를 추출하여 캐시 스토리지 어레이에 저장할 수 있다(단계(616)). 단계(612, 614, 616)들은 겹쳐질 수 있어서, 비휘발성 메모리로부터 복원 태그를 수신하면, 배킹 스토리지로부터 복원 태그에 관련된 데이터를 요청하여, 다른 복원 태그가 판독되기 전에, 또는 판독되는 동안, 데이터를 캐시에 저장할 수 있다.
제 3 실시예는 파워, 성능, 및 복잡도의 트레이드오프를 보여준다. 제 3 실시예의 비휘발성 메모리는 제 2 실시에의 시스템 메모리 구현예보다 적은 파워를 절감한다. 그러나, 제 2 실시예가 복원 태그용으로 별도의 항상 온 상태의 메모리를 이용할 때 제 2 실시예에서보다 더 많은 파워가 절감될 수 있다. 이는 비교적 긴 시간 주기동안 캐시가 파워 오프될 경우 특히 사실에 가깝다. 구현예가 모든 태그, 가능하다면, 가장 최근에 사용한 태그들을 포함하는 서브세트를 저장하는 것을 우선적으로 선택할 수 있기 때문에 제 3 실시예의 성능이 높다. 제 3 실시예는 비휘발성 메모리의 통합을 필요로하기 때문에 복잡도 레벨이 높다.
제 4 실시예
제 4 실시예에서, 도 7 및 도 8에 도시되는 바와 같이, 멀티 레벨 캐시 설계가 사용된다. 멀티 레벨 캐시는 캐시 대기시간(cache latency)과 히트율(hit rate) 간의 트레이드오프에 대처하기 위해 사용된다. 작은 캐시들은 짧은 대기시간, 하지만 낮은 히트율을 갖는 경향이 있고, 큰 캐시들은 높은 히트율, 하지만 긴 대기시간을 갖는 경향이 있다. 멀티 레벨 캐시는 일반적으로, 작은 캐시를 먼저 확인하고, 그 후, 데이터가 작은 캐시에 위치하지 않는 경우에만 큰 캐시의 확인을 진행한다. 모든 캐시가 확인될 때까지 고-레벨의 캐시들이 점진적으로 확인되고, 그 후 외부 메모리가 확인된다. 철저히 포괄적인(strictly inclusive) 설계에서, 작은 캐시 내의 모든 데이터가 큰 캐시 내에 또한 존재한다. 배타적인(exclusive) 설계에서, 모든 데이터는 기껏해야 캐시 중 하나 내에 존재한다. 반-포괄적(semi-inclusive) 설계에서, 소형의 저-레벨 캐시로부터 데이터의 일부분이 대형의 고-레벨 캐시에 또한 존재할 수 있다.
제 4 실시예에서, 낮은 캐시 레벨은 높은 캐시 레벨의 콘텐트를 복제할 수 있다(예를 들어, 포괄적 또는 반-포괄적 설계를 이용하여). 본 실시예는 저-레벨의 캐시가 파워 온 상태로 유지되는 동안, 고-레벨의 캐시를 파워 오프시킬 수 있다. 고-레벨의 캐시가 다시 파워 온되면, 저-레벨의 캐시로부터의 콘텐트가 다시 고-레벨의 캐시 내로 직접 전달될 수 있다. 이는 고-레벨의 캐시가 일반적으로 크며 용량 문제점으로 인해 해당 엔트리를 쫓아내기가 쉽지 않기 때문에 성능상의 장점을 가질 수 있다.
도 7은 파워-게이티드 고-레벨 캐시(power-gated higher level cache)(레벨 N 캐시)(702), 복수의 저-레벨 캐시(a plurality of lower level caches)(레벨 N-M 캐시)(7040-704n), 메모리(706), 및 메모리 컨트롤러(708)를 포함하는 메모리 시스템(700)의 부분도다.
레벨 N 캐시(702)를 파워 오프시키기 전에 어떤 특별한 작업도 필요치 않다. 레벨 N 캐시(702)는 파워 오프되고, 이때, 모든, 또는 레벨 N-M 캐시의 서브세트(7040-704n)은 파워 온 상태에 머무른다. 파워가 복원된 후, 각각의 레벨 N-M 캐시(7040-704n)는 태그 및 데이터 정보를 발생시켜서 다시 레벨 N 캐시(702)에 전달한다. 레벨 N 캐시(702)는 로컬 스토리지 메모리 내로 태그 및 데이터 정보를 기입한다.
도 8은 저-레벨 캐시로부터 고-레벨 캐시로 데이터를 복원하기 위해 멀티 레벨 캐시 설계를 이용하는 방법(800)의 순서도를 도시한다. 고-레벨 캐시가 파워 오프될 수 있다(단계(802)). 저-레벨 캐시의 서브세트가 파워 온 상태를 유지할 수 있다(단계(804)). 파워 온 이벤트가 수신될 때까지 고-레벨 캐시가 파워 오프 상태에 머무를 수 있다.
파워 온 이벤트 수신시, 고-레벨 캐시가 파워 온된다(단계(806)). 저-레벨 캐시는 태그 및 데이터 정보를 발생시켜서 다시 고-레벨 캐시에 전달한다(단계(808)). 고-레벨 캐시는 태그 정보 및 데이터 정보를 로컬 스토리지 메모리에 기입한다(단계(810)).
제 4 실시예는 파워, 성능, 및 복잡도 사이의 트레이드오프를 보여준다. 제 4 실시예는, 전체 고-레벨 캐시가 파워 오프될 수 있기 때문에, 높은 파워 절감을 제공한다. 그러나, 저-레벨 캐시에 보유된 데이터만이 고-레벨 캐시로 전달되고 데이터가 이미 저-레벨 캐시에서 가용하기 때문에, 비교적 낮은 성능이 예상된다. 저-레벨 캐시로부터의 캐시 라인이 용량 문제로 쫓겨나게 될 때, 그리고, 고-레벨 캐시에 앞서 전달된 구 라인들이 다시 필요해질 때, 성능 상의 장점이 예상된다. 적당한 복잡도가 예상된다. 포괄적, 또는 반-포괄적 캐시 설계에서, 캐시 라인은 배타적 캐시 설계에서 있을 때처럼 저-레벨 캐시로부터 고-레벨 캐시로 통상적으로 전달되지 않는다. 따라서, 포괄적 또는 반-포괄적 설계를 포함하는, 본 실시예는, 저-레벨 캐시로부터 고-레벨 캐시로 캐시 라인을 이동시키기 위해 새 데이터 경로의 추가를 요할 수 있다.
제 5 실시예
제 5 실시예에서, 도 9 및 도 10에 도시되는 바와 같이, 멀티 레벨 캐시 설계가 사용된다. 저-캐시 레벨은 고-캐시 레벨의 콘텐트를 복제할 수 있다(즉, 포괄적 또는 반-포괄적 설계 이용). 본 실시예는 저-레벨 캐시가 파워 온 상태에 머무르면서 고-레벨 캐시를 파워 오프시킬 수 있다. 고-레벨 캐시가 파워 온되면, 저-레벨 캐시의 콘텐트에 기초하여 복원 태그가 발생될 수 있다. 복원 태그는 배킹 스토리지로부터 고-레벨 캐시로 데이터를 로딩하는 데 사용될 수 있다. 이는, 어드레스 변환에 대한 캐시인, TLB 설계에서 특히 유리하다. 이러한 설계에서, 저-레벨 캐시 내 변환 엔트리로부터의 복원 태그들에 의해, 고-레벨 캐시가, 실제 변환 엔트리에 추가하여 계층적(hierarchical) 디렉토리 정보를 로딩시킬 수 있다.
도 9는 파워 게이티드 고-레벨 캐시(레벨 N 캐시)(902), 복수의 저-레벨 캐시(레벨 N-M 캐시)(9040-904n), 메모리(906), 및 메모리 컨트롤러(908)를 포함하는 메모리 시스템(900)의 부분도다. 레벨 N 캐시(902)는 파워-온 리로드 엔진(910)을 포함한다.
레벨 N 캐시(902)를 파워 오프시키기 전에 어떤 작업도 요구되지 않는다. 레벨 N 캐시(902)는 파워 오프되고, 이때, 모든, 또는 레벨 N-M 캐시의 서브세트(9040-904n)는 파워 온 상태로 유지된다. 파워 복원 후, 각각의 레벨 N-M 캐시(9040-904n)는 로컬 캐시 태그 정보에 기초하여 복원 태그를 발생시킨다. 레벨 N-M 캐시(9040-904n)는 그 후, 발생된 복원 태그에 기초하여 레벨 N 캐시(902)에 리로드 명령을 발급한다. 레벨 N 캐시(902)의 파워-온 리로드 엔진(910)은 레벨 N-M 캐시(9040-904n)으로부터 리로드 명령을 이용하여 메모리(906)로부터 데이터를 요청한다. 레벨 N 캐시(902)는 리로딩된 데이터를 캐시 스토리지 메모리 내로 저장한다. 이러한 최종 두 단계에서, 레벨 N 캐시(902)는 멀티 레벨의 계층적 데이터를 가로질러야 할 경우 각각의 리로드 요청에 대해 메모리(906)로부터 멀티 피스의 데이터(multiple pieces of data)를 요청, 추출, 및 저장할 수 있다. 이러한 경우의 예는, 캐시가 TLB이고 최종 변환 엔트리에 도달하기 전에 복수의 디렉토리 레벨에 도달하여야 하는 경우에 해당한다. 이러한 방식으로 추출되는 모든 계층적 정보 및 디렉토리 엔트리는 최종 변환과 함께 레벨 N 캐시(902)에 또한 저장될 수 있다. 이는 결과에 도달하기 위해 소요되는 단계들을 보유하는 것과 동등할 수 있다.
도 10은 저-레벨 캐시의 콘텐트에 기초하여 복원 태그를 발생시키기 위해 멀티 레벨 캐시 설계를 이용하는 방법(1000)의 순서도를 도시한다. 고-레벨 캐시가 파워 오프될 수 있다(단계(1002)). 저-레벨 캐시의 서브세트가 파워 온 상태로 유지될 수 있다(단계(1004)). 파워 온 이벤트가 수신될 때까지 고-레벨 캐시가 파워 오프 상태로 유지된다.
파워 온 이벤트 수신시, 고-레벨 캐시는 파워 온되고(단계(1006)), 저-레벨 캐시는 로컬 캐시 태그 정보에 기초하여 복원 태그를 발생시킨다(단계(1008)). 저-레벨 캐시는 복원 태그에 기초하여 고-레벨 캐시에 리로드 명령을 발급한다(단계(1010)). 고-레벨 캐시는 리로드 명령을 이용하여 배킹 스토리지로부터 데이터를 요청하고(단계(1012)), 리로딩된 데이터를 스토리지 메모리에 저장한다(단계(1014)). 고-레벨 캐시는, 선택적으로, 계층적 디렉토리 정보를 유지할 수 있고(단계(1016)) 이 정보를 스토리지 메모리에 기입할 수 있다.
제 5 실시예는 파워, 성능, 및 복잡도 간의 트레이드오프를 제시한다. 전체 고-레벨 캐시가 파워 오프될 수 있기 때문에 제 5 실시예는 높은 전력 절감을 제공한다. 제 4 실시예에서보다 더 많은 정보가 고-레벨 캐시 내로 로딩되기 때문에 적당한 성능이 예상된다. 그러나, 첫 번째 3개의 실시예에서보다는 성능이 낮을 것이며, 이는 소형의 저-레벨 캐시로부터의 정보만이 보유되기 때문이다. 낮은 복잡도 레벨이 예상된다. 본 실시예에서, 저-레벨 캐시들 중 하나로부터 고-레벨 캐시로의 요청은, 저-레벨 캐시에서의 캐시 부적중과 유사할 수 있고, 이는 고-레벨 캐시로부터의 서비스를 필요로한다.
제 6 실시예
제 6 실시예에서, 도 11 및 도 12에 도시되는 바와 같이, 복원 태그의 리스트는 시스템 메모리 또는 내부 메모리와 같은 고정 저장 위치 내로 소프트웨어에 의해 프로그래밍될 수 있다. 캐시는 복원 태그의 위치를 내부적으로 알도록, 또는 고정적으로 프로그래밍될 수 있다. 캐시가 파워 온 될 때마다, 복원 태그의 리스트에 액세스하여 이를 이용하여 캐시의 배킹 스토리지로부터 캐시 내로 데이터 콘텐트를 로딩한다.
도 11은 캐시(1102), 내부 고정 스토리지 메모리(1104), 시스템 메모리(1106), 메모리 컨트롤러(1108), 및 처리 엔진(1110)을 포함하는 메모리 시스템(1100)의 부분도다. 캐시(1102)는 파워-온 리로드 엔진(1112) 및 캐시 스토리지 어레이(1114)를 포함한다. 처리 엔진(1110)은 소프트웨어(1116)를 포함한다.
캐시가 파워 오프되기 전에, 또는 파워 오프되는 동안, 소프트웨어(1116)는 고정 스토리지에 복원 태그 정보를 기입한다. 이러한 고정 스토리지는 예를 들어, 내부 고정 스토리지 메모리(1104) 또는 시스템 메모리(1106)일 수 있다. 캐시(1102)는 그 후 파워 오프될 수 있다. 캐시(1102)는 파워 온 이벤트가 수신될 때까지 파워 오프 상태로 유지된다. 파워 온 이벤트 수신시, 캐시(1102)는 파워 온되고, 파워-온 리로드 엔진(1112)은 시스템 메모리(1106)로부터 또는 내부 고정 스토리지 메모리(1104)로부터 복원 태그를 판독한다. 파워-온 리로드 엔진(1112)은 복원 태그(일반적으로 어드레스)를 이용하여 시스템 메모리(1106)로부터 데이터를 추출할 것을 캐시에 요청할 수 있다. 캐시는 요청받은 데이터를 추출하여 캐시 스토리지 어레이(1114)에 저장한다. 앞서 3개의 단계들이 겹쳐질 수 있어서, 복원 태그가 판독되면, 해당 복원 태그에 관련된 데이터가 시스템 메모리(1106)로부터 요청되어, 다른 복원 태그가 판독되기 전에 또는 판독되는 동안, 캐시 스토리지 어레이(1114)에 저장될 수 있다.
도 12는 소프트웨어적으로 프로그래밍된 복원 태그의 리스트를 생성하고 고정 스토리지 위치에 복원 태그를 저장하는 방법(1200)의 순서도를 도시한다. 소프트웨어는 고정 스토리지에 복원 태그 정보를 기입한다(단계(1202)). 캐시는 임의의 시기에 파워 오프될 수 있다(단계(1204)). 캐시는 파워 온 이벤트를 수신할 때까지 파워 오프 상태로 유지된다.
파워 온 이벤트 수신시, 캐시는 파워 온되고(단계(1206)), 고정 메모리로부터 복원 태그가 판독된다(단계(1208)). 복원 태그를 이용하여 배킹 스토리지로부터 데이터를 요청하고(단계(1210)), 요청받은 데이터가 인출되어 캐시에 저장된다(단계(1212)). 단계(1208, 1210, 1212)는 겹쳐질 수 있어서, 다른 복원 태그가 판독 및 처리되기 전에, 또는 판독 및 처리되는 중에, 배킹 스토리지로부터 복원 태그가 요청되어 캐시에 저장될 수 있다.
제 6 실시예는 복원 태그가 시스템 메모리에 저장될 경우 최대 파워를 절감하는 데, 이는 시스템 메모리가 상태 보유를 위한 파워를 이미 필요로하기 때문이다. 복원 태그가 별도의 온-칩 메모리에 저장될 경우 소량의 추가 파워가 소모된다. 첫 번째 3개의 실시예에 비해 본 실시예의 경우 낮은 성능이 예상되는 데, 이는 소프트웨어가 하드웨어와 동일한 업데이트 빈도로 복원 태그의 리스트를 유지할 수 없기 때문이다. 하드웨어 복잡도는 다른 실시예보다 낮은데, 이는 복원 태그를 저장하기 위해 하드웨어가 필요치 않기 때문이다. 그러나, 복원 태그의 활성 리스트를 유지하기 위해 소프트웨어가 필요하기 때문에 적정한 소프트웨어 복잡도가 예상된다.
제 7 실시예
제 7 실시예에서, 도 13 및 도 14에 도시되는 바와 같이, 복원 태그의 리스트가 발생되고 정규 캐시 액세스에 기초하여 업데이트된다. 예를 들어, 마지막 전체 N번의 요청 또는 다수의 소스 각각으로부터 마지막 N번의 요청의 리스트가 저장되어 계속적으로 업데이트될 수 있다. 이 리스트는 복제, 유사 또는 중복 엔트리를 제거하도록 필터링될 수 있다. 복원 태그의 리스트는 캐시가 파워 오프될 때 상태를 유지하는 고정 스토리지 위치에 저장될 수 있다. 비-고정 위치에 저장될 수도 있다. 비-고정 위치에 저장될 경우, 복원 태그의 리스트가 캐시 및 비-고정 스토리지를 파워 오프시키기 위한 준비 작업으로 고정 스토리지 위치에 전달될 수 있다. 캐시가 파워 온된 후, 복원 태그를 이용하여 캐시의 배킹 스토리지로부터 캐시 내로 데이터 콘텐트를 로딩할 수 있다.
도 13은 캐시(1302), 처리 엔진(1304), 내부 고정 스토리지 메모리(1306), 시스템 메모리(1308), 및 메모리 컨트롤러(1310)를 포함하는 메모리 시스템(1300)의 부분도다. 처리 엔진(1304)은 소프트웨어(1312)를 포함한다. 캐시(1302)는 복원 태그 리스트(1314), 파워-온 리로드 엔진(1316), 및 캐시 스토리지 어레이(1318)를 포함한다.
정규 작동 중, 클라이언트(본 경우에 처리 엔진(1304))로부터 캐시(1302)에 대한 액세스를 이용하여, 고정 스토리지 위치 또는 비-고정 위치에 저장되는 복원 태그를 발생시킨다. 소프트웨어(1312)는 복원 태그 정보를 예를 들어, 고정 스토리지에 - 내부 고정 스토리지 메모리(1306) 또는 시스템 메모리(1308)에 - 기입한다. 캐시(1302)가 파워 오프될 때 복원 태그 리스트(1314)가 상태를 상실할 경우, 복원 태그 리스트(1314는 캐시(1302)를 파워 오프하기 전에 고정 스토리지 위치로 전달되어야 한다. 캐시(1302)는 그 후 파우 오프되고 파워 온 이벤트가 수신될 때까지 파워 오프 상태로 유지된다.
파워 온 이벤트 수신시, 캐시는 파워 온 되고 파워-온 리로드 엔진(1316)이 복원 태그를 판독한다. 파워-온 리로드 엔진(1316)은 복원 태그(일반적으로, 어드레스)를 이용하여 시스템 메모리(1308)로부터 캐시 데이터를 요청한다. 캐시(1302)는 요청받은 데이터를 추출하여 캐시 스토리지 어레이(1318)에 저장한다. 앞서의 3개의 단계는 겹쳐질 수 있어서, 복원 태그가 판독되면, 복원 태그에 관련된 데이터가 시스템 메모리(1308)로부터 요청되어, 다른 복원 태그가 판독되기 전에, 또는 판독되는 동안, 캐시 스토리지 어레이(1318)에 저장될 수 있다.
도 14는 정규 캐시 액세스에 기초하여 복원 태그의 리스트를 발생 및 업데이트하기 위한 방법(1400)의 순서도를 도시한다. 캐시에 대한 클라이언트 액세스를 이용하여 복원 태그를 발생시킨다(단계(1402)). 선택적으로, 복원 태그를 필터링하여, 복제, 유사, 또는 중복 엔트리를 제거할 수 있다(단계(1404)). 복원 태그가 고정 스토리지 위치 또는 비-고정 스토리지 위치에 저장된다(단계(1406)). 복원 태그 리스트는, 비-고정 스토리지 위치에 있을 때 고정 스토리지 위치로 전달될 수 있다(단계(1408)). 그 후 캐시가 파워 오프될 수 있다(단계(1410)). 캐시는 파워 온 이벤트가 수신될 때까지 파워 오프 상태로 유지된다.
파워 온 이벤트 수신시, 캐시가 파워 온되고(단계(1412)), 복원 태그가 판독된다(단계(1414)). 복원 태그를 이용하여 배킹 스토리지로부터 데이터를 요청하고(단계(1416)), 요청받은 데이터가 인출되어 캐시에 저장된다(단계(1418)). 단계(1414, 1416, 1418)들은 겹쳐질 수 있어서, 복원 태그가 판독되면, 복원 태그에 관련된 데이터가 배킹 스토리지로부터 요청되어, 다른 복원 태그가 판독 및 처리되기 전에 또는 판독 및 처리되는 중에, 캐시에 저장될 수 있다.
제 7 실시예는 복원 태그가 시스템 메모리에 저장될 때 최대 파워를 절감하는 데, 이는 시스템 메모리가 상태 보유를 위한 파워를 이미 요하고 있기 때문이다. 복원 태그가 별도의 온-칩 메모리에 저장될 경우 소량의 추가 파워가 요구된다. 구현예에서는 모든 태그, 또는, 가능하다면, 가장 최근에 사용된 태그를 포함한, 태그들의 서브세트를 우선적으로 선택할 수 있기 때문에, 성능이 높을 것으로 예상된다. 복잡도 레벨은 복원 태그가 발생될 필요가 있고 시스템 내에서 이동할 필요가 있기 때문에 적당하다. 본 구현예에서, 복원 태그의 별도의 리스트를 홀딩하기 위해 더 많은 로직 및 스토리지가 필요하다. 그러나, 어느 것을 복원 태그로서 저장할지를 결정하기 위해 캐시 태그를 통해 스캔할 로직은 필요치 않다.
제 8 실시예
제 8 실시예에서, 도 15 및 도 16에 도시되는 바와 같이, 캐시에 요청하는 캐시 클라이언트는 캐시의 파워 상태를 알게 될 수 있다. 클라이언트가 캐시의 파워 상승을 유도하거나 캐시 파워 업 이벤트를 검출할 경우, 클라이언트는 캐시에 프리페치 명령의 전용 스트림을 발생시켜 전송할 수 있다. 이러한 프리페치 명령은 복원 태그와 유사하게 작용하고, 배킹 스토리지로부터 정보를 로딩하도록 캐시를 유도한다. 클라이언트는 가까운 미래에 필요하다고 클라이언트가 생각하는 데이터의 로딩을 트리거하기 위해 프리페치 명령을 발생시킬 수 있다. 이는, 캐시 파워 업 이벤트와 연계되기 때문에, 캐시에 대한 프리페치 명령의 정규적 발생과는 다르다. 추가적으로, 클라이언트는 파워 다운되기 전에 캐시에 앞서 발급했던 프리페치 명령을 발급할 수 있다.
도 15는 캐시(1502), 시스템 메모리(1504), 및 메모리 컨트롤러(1506)를 포함하는 메모리 시스템(1500)의 일부분을 도시한다. 캐시(1502)는 캐시 스토리지 어레이(1508)를 포함한다. 클라이언트(1510)는 캐시(1502) 및 시스템 메모리(1504)에 액세스할 수 있다. 하나의 클라이언트가 도 15에 도시되지만, 임의의 수의 클라이언트가 캐시(1502) 및 시스템 메모리(1504)와 통신할 수 있다.
캐시(1502)가 파워 오프된다. 파워가 복원된 후, 캐시(1502)는 클라이언트(150)에, 방금 파워 온 되었고 상태를 상실하였음을 신호한다. 클라이언트(1510)는 일련의 프리페치 명령을 캐시(1502)에 발급한다. 이러한 프리페치 명령은 파워 오프 이벤트 이전에 캐시(1502)에 미리 발급되었을 수 있다. 캐시(1502)는 프리페치 명령을 이용하여, 클라이언트(1510)로부터의 실제 액세스 및 요청 이전에, 시스템 메모리(1506)로부터 캐시(1502) 내로 데이터를 로딩한다.
도 16은 배킹 스토리지로부터 정보를 로딩하도록 캐시를 유도하기 위해 파워 온 이후 프리페치 명령을 이용하는 방법(1600)의 순서도를 도시한다. 캐시는 임의의 시기에 파워 오프될 수 있다(단계(1602)). 캐시가 파워 온된 후(단계(1604), 캐시는 파워 온이 이루어졌으며 상태를 상실하였음을 클라이언트에 신호한다(단계(1606)). 클라이언트는 캐시에 프리페치 명령을 발급한다(단계(1608)). 클라이언트는 파워 오프 이전에 미리 발급한 프리페치 명령을 발급할 수 있다(단계(1610)). 캐시는 프리페치 명령을 이용하여 캐시 내로 데이터를 로딩한다(단계(1612)).
제 8 실시예는 프리페치 명령으로부터 수집한 정보가 (그 상태를 이미 반드시 보유하고 있는) 시스템 메모리 내에 위치하기 때문에, 최대 파워를 절감한다. 본 실시예의 성능은 프리페칭의 정확도에 따라 좌우된다. 예상치가 크고 프리페칭이 일찍 이루어질수록, 성능이 우수하다. 클라이언트의 캐시 액세스 패턴에 따라, 일부 응용예는 본 실시예에서보다 더 우수하게 기능하며, 다른 응용예는 타 실시예보다 더 많은 장점을 가질 수 있다. 복잡도 레벨은 본 실시예의 캐시 부분에 대해서는 낮고, 캐시 파워 상태에 따라 발생되는 프리페칭의 레벨을 동적으로 제어할 필요가 있기 때문에 프로세서에 대해 복잡도 추가가 예상된다.
특징 및 요소들이 특정 조합으로 위에서 설명되었으나, 각각의 특징 또는 요소는 다른 특징 및 요소없이 단독으로, 또는, 다른 특징 및 요소와 함께, 또는 이들없이, 다양한 조합으로 사용될 수 있다. 여기서 제공되는 방법 또는 순서도는 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 컴퓨터 판독형 기록 매체에 통합된 컴퓨터 프로그램, 소프트웨어, 또는 펌웨어로 구현될 수 있다. 컴퓨터 판독형 기록 매체의 예는, ROM, RAM, 레지스터, 캐시 메모리, 반도체 메모리 소자, 자기 매체(가령, 내부 하드 디스크 및 탈착형 디스크), 자기-광학 매체, 및 광학 매체(가령, CD-ROM 디스크 및 DVD)를 포함한다.
적절한 프로세서는 예를 들어, 범용 프로세서, 전용 프로세서, 통상적인 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서, DSP 코어와 연계된 하나 이상의 마이크로프로세서, 컨트롤러, 마이크로컨트롤러, ASIC(Application Specific Integrated Circuits), FPGA(Field Programmable Gate Arrays) 회로, 다른 타입의 집적 회로(IC), 및/또는 상태 머신을 포함한다. 이러한 프로세서는 처리되는 HDL(Hardware Description Language) 명령어의 결과를 이용하여 제작 프로세스를 구성함으로써 제작될 수 있다(이러한 명령어는 컴퓨터 판독형 매체 상에 저장될 수 있음). 이러한 처리의 결과는 본 발명의 형태를 구현하는 프로세서를 제작하기 위한 반도체 제작 공정에 추후 사용되는 마스크워크(maskwork)일 수 있다.

Claims (27)

  1. 캐시 재실장 방법에 있어서,
    캐시로부터 분리된 위치에 캐시의 콘텐트의 적어도 일부분을 저장하는 단계와,
    캐시로부터 파워를 제거하는 단계와,
    캐시에 대한 파워를 복원하는 단계와,
    캐시로부터 별도로 저장된 캐시의 콘텐트의 상기 일부분으로 캐시를 재실장하는 단계
    를 포함하는 캐시 재실장 방법.
  2. 제 1 항에 있어서, 저장하는 단계는,
    캐시로부터 일부 콘텐트를 각각 포함하는 복원 태그를 생성하는 단계와,
    캐시로부터 별도의 위치에서 복원 태그를 저장하는 단계
    를 포함하는 캐시 재실장 방법.
  3. 제 2 항에 있어서, 재실장하는 단계는,
    복원 태그를 판독하는 단계와,
    복원 태그를 이용하여 데이터를 캐시 내로 로딩하는 단계
    를 포함하는 캐시 재실장 방법.
  4. 제 2 항에 있어서, 생성하는 단계는, 복원 태그를 발생시키기 위해 과거 캐시 액세스의 히스토리 리스트를 이용하는 단계를 포함하는
    캐시 재실장 방법.
  5. 제 4 항에 있어서, 생성하는 단계는, 과거 캐시 액세스의 히스토리 리스트의 복제, 유사, 또는 중복 엔트리를 제거하는 단계를 포함하는
    캐시 재실장 방법.
  6. 제 1 항에 있어서,
    캐시는 하나 이상의 태그 메모리 및 하나 이상의 데이터 메모리를 포함하고,
    제거하는 단계는, 태그 메모리들 중 적어도 하나를 파워 온 상태로 남겨두고 나머지 태그 메모리 및 모든 데이터 메모리를 파워 오프시키는 단계를 포함하며,
    재실장하는 단계는, 파워 온 된 적어도 하나의 태그 메모리로부터 태그를 판독하는 단계와, 데이터를 캐시 내로 로딩하기 위해 판독된 태그를 이용하는 단계를 포함하는
    캐시 재실장 방법.
  7. 제 6 항에 있어서,
    판독하는 단계는, 적어도 하나의 파워 온 된 태그 메모리로부터 어드레스를 판독하는 단계를 포함하고,
    이용하는 단계는, 어드레스로부터 데이터를 추출하는 단계와, 추출된 데이터를 캐시에 기입하는 단계를 포함하는
    캐시 재실장 방법.
  8. 제 1 항에 있어서, 저장하는 단계는,
    복원 태그를 발생시키기 위해 캐시로부터 태그를 판독하는 단계와,
    캐시로부터 분리된 위치에 복원 태그를 저장하는 단계
    를 포함하며, 재실장하는 단계는,
    복원 태그를 판독하는 단계와,
    데이터를 캐시 내로 로딩하기 위해 복원 태그를 이용하는 단계
    를 포함하는 캐시 재실장 방법.
  9. 제 8 항에 있어서, 저장하는 단계는,
    캐시로부터 분리된 위치에 복원 태그를 저장하기 전에 복원 태그를 압축하는 단계를 포함하는
    캐시 재실장 방법.
  10. 제 1 항에 있어서,
    캐시는 하나의 고-레벨 캐시 및 복수의 저-레벨 캐시를 포함하는 멀티-레벨 캐시이고,
    제거하는 단계는, 고-레벨 캐시를 파워 오프시키고 저-레벨 캐시 중 적어도 하나의 파워를 유지시키는 단계를 포함하는
    캐시 재실장 방법.
  11. 제 10 항에 있어서, 재실장하는 단계는,
    파워를 유지시킨 적어도 하나의 저-레벨 캐시에서 태그 및 데이터 정보를 발생시키는 단계와,
    고-레벨 캐시에 태그 및 데이터 정보를 전달하는 단계와,
    태그 및 데이터 정보를 고-레벨 캐시에 기입하는 단계
    를 포함하는 캐시 재실장 방법.
  12. 제 10 항에 있어서, 재실장하는 단계는,
    저-레벨 캐시로부터 일부 콘텐트를 각각 포함하는, 파워를 유지한 적어도 하나의 저-레벨 캐시에서 복원 태그를 발생시키는 단계와,
    복원 태그에 따라 고-레벨 캐시에 리로드 명령을 발급하는 단계와,
    리로드 명령을 이용하여 고-레벨 캐시에 의해 데이터를 요청하는 단계와,
    요청받은 데이터를 고-레벨 캐시에 기입하는 단계
    를 포함하는 캐시 재실장 방법.
  13. 제 11 항에 있어서, 기입하는 단계는, 고-레벨 캐시에 계층적(hierarchical) 디렉토리 정보를 기입하는 단계를 포함하는
    캐시 재실장 방법.
  14. 캐시 재실장 방법에 있어서,
    캐시로부터 파워를 제거하는 단계와,
    캐시에 대한 파워를 복원하는 단계와,
    캐시에 대한 파워가 복원되었고 캐시가 상태를 상실하였음을 캐시 클라이언트에 신호하는 단계와,
    캐시 클라이언트로부터 프리페치 명령(prefetch command)을 캐시에 발급하는 단계와,
    캐시 내로 데이터를 로딩하도록 캐시에 의해 프리페치 명령을 이용하는 단계
    를 포함하는 캐시 재실장 방법.
  15. 제 14 항에 있어서, 발급하는 단계는,
    파워가 캐시로부터 제거되었을 때 미결 상태(pending)였던 프리페치 명령을 발급하는 단계를 포함하는
    캐시 재실장 방법.
  16. 캐시 재실장 장치에 있어서,
    데이터 및 데이터에 관한 태그를 저장하도록 구성되는 캐시와,
    캐시로부터 분리되어 위치하는 메모리로서, 파워가 캐시로부터 제거될 때 캐시로부터 태그를 저장하도록 구성되는 상기 메모리와,
    캐시에 대한 파워가 복원될 때 캐시로부터 태그를 메모리에 기입하도록 구성되는 메모리 컨트롤러
    를 포함하는 캐시 재실장 장치.
  17. 제 16 항에 있어서, 상기 캐시 재실장 장치는 파워-온 리로드 엔진(power-on reload engine)을 더 포함하며, 상기 파워-온 리로드 엔진은,
    메모리로부터 태그를 판독하도록 구성되고,
    태그에 기초하여 복원 태그를 생성하도록 구성되며,
    복원 태그를 이용하여 데이터를 캐시 내로 로딩하도록 구성되는
    캐시 재실장 장치.
  18. 제 17 항에 있어서,
    캐시는 하나 이상의 태그 메모리 및 하나 이상의 데이터 메모리를 포함하고, 적어도 하나의 태그 메모리는 파워를 유지하면서 나머지 태그 메모리 및 데이터 메모리는 파워 오프되며,
    파워-온 리로드 엔진은 파워를 유지한 적어도 하나의 태그 메모리로부터 태그를 판독하도록 또한 구성되는
    캐시 재실장 장치.
  19. 제 16 항에 있어서, 상기 캐시 재실장 장치는 태그 트랜스퍼 엔진(tag transfer engine) 및 파워-온 리로드 엔진을 더 포함하며, 상기 태그 트랜스퍼 엔진은,
    태그에 기초하여 복원 태그를 발생시키도록 구성되고,
    메모리에 복원 태그를 기입하도록 구성되며,
    상기 파워-온 리로드 엔진은,
    메모리로부터 복원 태그를 판독하도록 구성되고,
    복원 태그를 이용하여 데이터를 캐시 내로 로딩하도록 구성되는
    캐시 재실장 장치.
  20. 제 19 항에 있어서, 태그 트랜스퍼 엔진은 복원 태그를 압축하도록 또한 구성되는
    캐시 재실장 장치.
  21. 제 16 항에 있어서,
    캐시는 하나의 고-레벨 캐시 및 복수의 저-레벨 캐시를 포함하고,
    저-레벨 캐시 중 적어도 하나는 파워를 유지하고 고-레벨 캐시 및 나머지 저-레벨 캐시는 파워 오프되며,
    파워를 유지한 적어도 하나의 저-레벨 캐시는 고-레벨 캐시에 데이터 및 태그를 전송하도록 구성되는
    캐시 재실장 장치.
  22. 제 21 항에 있어서, 파워를 유지한 상기 적어도 하나의 저-레벨 캐시는,
    태그 정보에 기초하여 복원 태그를 발생시키도록 구성되고,
    복원 태그에 기초하여 고-레벨 캐시에 리로드 명령을 발급하도록 구성되는
    캐시 재실장 장치.
  23. 제 22 항에 있어서,
    리로드 명령을 이용하여 데이터를 요청하도록 구성되는 파워-온 리로드 엔진을 더 포함하는
    캐시 재실장 장치.
  24. 제 16 항에 있어서, 메모리는 복원 태그 리스트를 포함하고,
    상기 장치는 파워-온 리로드 엔진을 더 포함하며, 상기 파워-온 리로드 엔진은,
    메모리로부터 복원 태그를 판독하도록 구성되고,
    복원 태그를 이용하여 캐시 내로 데이터를 로딩하도록 구성되는
    캐시 재실장 장치.
  25. 제 16 항에 있어서,
    상기 장치는 캐시 클라이언트를 더 포함하고, 상기 캐시 클라이언트는,
    데이터를 로딩하기 위한 명령어를 포함하는 프리페치 명령을 발생시키도록 구성되고,
    프리페치 명령을 캐시에 전송하도록 구성되는
    캐시 재실장 장치.
  26. 캐시를 재실장하기 위해 범용 컴퓨터에 의해 실행하기 위한 한 세트의 명령어를 저장하는 컴퓨터-판독형 기록 매체에 있어서, 상기 한 세트의 명령어는,
    캐시로부터 분리된 위치에 캐시의 콘텐트의 적어도 일부분을 저장하기 위한 저장 코드 세그먼트와,
    캐시로부터 파워를 제거하기 위한 제거 코드 세그먼트와,
    캐시에 파워를 복원하기 위한 복원 코드 세그먼트와,
    캐시로부터 별도로 저장된 캐시의 콘텐트의 상기 일부분으로 캐시를 재실장하기 위한 재실장 코드 세그먼트
    를 포함하는 컴퓨터 판독형 기록 매체.
  27. 제 26 항에 있어서, 상기 한 세트의 명령어는 장치의 제작에 사용하기 위한 HDL(Hardware Description Language) 명령어인
    컴퓨터 판독형 기록 매체.
KR1020127025911A 2010-03-03 2011-02-28 파워 복원 후 리로드 기능을 갖는 캐시 KR101369443B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/716,391 2010-03-03
US12/716,391 US8495300B2 (en) 2010-03-03 2010-03-03 Cache with reload capability after power restoration
PCT/IB2011/000597 WO2011107882A2 (en) 2010-03-03 2011-02-28 Cache with reload capability after power restoration

Publications (2)

Publication Number Publication Date
KR20130036221A true KR20130036221A (ko) 2013-04-11
KR101369443B1 KR101369443B1 (ko) 2014-03-04

Family

ID=44532289

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020127025911A KR101369443B1 (ko) 2010-03-03 2011-02-28 파워 복원 후 리로드 기능을 갖는 캐시

Country Status (6)

Country Link
US (1) US8495300B2 (ko)
EP (1) EP2542975B1 (ko)
JP (1) JP5570621B2 (ko)
KR (1) KR101369443B1 (ko)
CN (1) CN102971716B (ko)
WO (1) WO2011107882A2 (ko)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8332488B1 (en) * 2011-03-04 2012-12-11 Zynga Inc. Multi-level cache with synch
US9311462B1 (en) 2011-03-04 2016-04-12 Zynga Inc. Cross platform social networking authentication system
US8347322B1 (en) 2011-03-31 2013-01-01 Zynga Inc. Social network application programming interface
US10135776B1 (en) 2011-03-31 2018-11-20 Zynga Inc. Cross platform social networking messaging system
US8522137B1 (en) 2011-06-30 2013-08-27 Zynga Inc. Systems, methods, and machine readable media for social network application development using a custom markup language
JP5803614B2 (ja) 2011-11-29 2015-11-04 ソニー株式会社 不揮発性キャッシュメモリ、不揮発性キャッシュメモリの処理方法、コンピュータシステム
US9507534B2 (en) * 2011-12-30 2016-11-29 Intel Corporation Home agent multi-level NVM memory architecture
US8972665B2 (en) * 2012-06-15 2015-03-03 International Business Machines Corporation Cache set selective power up
US9026741B1 (en) * 2012-06-30 2015-05-05 Emc Corporation System and method for warming cache
US20140058717A1 (en) * 2012-08-24 2014-02-27 Hitachi, Ltd. Simulation system for simulating i/o performance of volume and simulation method
US9183144B2 (en) 2012-12-14 2015-11-10 Intel Corporation Power gating a portion of a cache memory
JP6092019B2 (ja) * 2013-06-25 2017-03-08 株式会社東芝 プロセッサ
KR101864831B1 (ko) * 2013-06-28 2018-06-05 세종대학교산학협력단 가상 캐시를 포함하는 메모리 및 그 관리 방법
US9772782B2 (en) 2014-05-21 2017-09-26 Seagate Technology Llc Non-volatile complement data cache
US20150363319A1 (en) * 2014-06-12 2015-12-17 Netapp, Inc. Fast warm-up of host flash cache after node failover
US10339023B2 (en) 2014-09-25 2019-07-02 Intel Corporation Cache-aware adaptive thread scheduling and migration
JP5974133B1 (ja) 2015-03-20 2016-08-23 株式会社東芝 メモリシステム
US10139891B2 (en) * 2015-06-23 2018-11-27 Honeywell International Inc. Systems and methods of power-safe control panel installation
US10423418B2 (en) 2015-11-30 2019-09-24 International Business Machines Corporation Method for maintaining a branch prediction history table
US10318428B2 (en) 2016-09-12 2019-06-11 Microsoft Technology Licensing, Llc Power aware hash function for cache memory mapping
US10489296B2 (en) 2016-09-22 2019-11-26 International Business Machines Corporation Quality of cache management in a computer
US10338855B2 (en) * 2016-12-08 2019-07-02 International Business Machines Corporation Optimized reading of multiple objects from tape
US10591978B2 (en) 2017-05-30 2020-03-17 Microsoft Technology Licensing, Llc Cache memory with reduced power consumption mode
US10241561B2 (en) 2017-06-13 2019-03-26 Microsoft Technology Licensing, Llc Adaptive power down of intra-chip interconnect
US10229061B2 (en) 2017-07-14 2019-03-12 International Business Machines Corporation Method and arrangement for saving cache power
JP7142289B2 (ja) * 2018-08-23 2022-09-27 日本電信電話株式会社 プロセッサ、多階層キャッシュメモリの制御方法、及び多階層キャッシュメモリの制御プログラム
US11507174B2 (en) * 2020-02-25 2022-11-22 Qualcomm Incorporated System physical address size aware cache memory
US11307634B1 (en) 2021-01-28 2022-04-19 Red Hat, Inc. Maintaining historical power level metadata for dynamic voltage and frequency scaling of processor instructions

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0747335B2 (ja) * 1988-08-05 1995-05-24 株式会社日立製作所 文字発生装置および文字発生方法
US5632038A (en) * 1994-02-22 1997-05-20 Dell Usa, L.P. Secondary cache system for portable computer
US6795896B1 (en) * 2000-09-29 2004-09-21 Intel Corporation Methods and apparatuses for reducing leakage power consumption in a processor
US6983388B2 (en) * 2000-10-25 2006-01-03 Agere Systems Inc. Method and apparatus for reducing leakage power in a cache memory by using a timer control signal that removes power to associated cache lines
US20030145241A1 (en) * 2002-01-30 2003-07-31 Zhigang Hu Method and apparatus for reducing leakage power in a cache memory using adaptive time-based decay
US7934054B1 (en) * 2005-11-15 2011-04-26 Oracle America, Inc. Re-fetching cache memory enabling alternative operational modes
US7647452B1 (en) * 2005-11-15 2010-01-12 Sun Microsystems, Inc. Re-fetching cache memory enabling low-power modes
CN100435118C (zh) * 2005-12-05 2008-11-19 英业达股份有限公司 高速缓存数据回存方法
CN100456253C (zh) * 2005-12-28 2009-01-28 英业达股份有限公司 存储系统的高速缓存数据的保护方法

Also Published As

Publication number Publication date
KR101369443B1 (ko) 2014-03-04
EP2542975B1 (en) 2018-02-21
JP5570621B2 (ja) 2014-08-13
CN102971716B (zh) 2015-06-17
JP2013521559A (ja) 2013-06-10
CN102971716A (zh) 2013-03-13
EP2542975A4 (en) 2013-12-11
US20110219190A1 (en) 2011-09-08
US8495300B2 (en) 2013-07-23
WO2011107882A3 (en) 2011-11-17
WO2011107882A2 (en) 2011-09-09
EP2542975A2 (en) 2013-01-09

Similar Documents

Publication Publication Date Title
KR101369443B1 (ko) 파워 복원 후 리로드 기능을 갖는 캐시
Eisenman et al. Reducing DRAM footprint with NVM in Facebook
US10379746B2 (en) Information processing apparatus, storage device, and computer program product
US7472222B2 (en) HDD having both DRAM and flash memory
KR101713051B1 (ko) 하이브리드 메모리 시스템, 및 그 관리 방법
US7809884B1 (en) Data storage system power management
WO2011033600A1 (ja) 仮想記憶管理装置
CN105630405B (zh) 一种存储系统及采用该存储系统的读写方法
US20160062691A1 (en) Method for controlling memory device to achieve more power saving and related apparatus thereof
US20070006000A1 (en) Using fine-grained power management of physical system memory to improve system sleep
CA2601779C (en) Global modified indicator to reduce power consumption on cache miss
US11755480B2 (en) Data pattern based cache management
US20170046260A1 (en) Storage device and method for saving write cache data
US10956332B2 (en) Retaining cache entries of a processor core during a powered-down state
Smullen et al. Accelerating enterprise solid-state disks with non-volatile merge caching
Xu et al. CLRU: a new page replacement algorithm for NAND flash-based consumer electronics
Kuan et al. Mirrorcache: An energy-efficient relaxed retention l1 sttram cache
CN101807212B (zh) 嵌入式文件系统的缓存方法及嵌入式文件系统的缓存装置
Tan et al. APMigration: Improving performance of hybrid memory performance via an adaptive page migration method
US20160210234A1 (en) Memory system including virtual cache and management method thereof
Li et al. Baryon: Efficient Hybrid Memory Management with Compression and Sub-Blocking
US9760488B2 (en) Cache controlling method for memory system and cache system thereof
KR101744401B1 (ko) 컴퓨팅 장치의 시스템 상태 저장, 복원방법 및 이를 위한 컴퓨팅 장치
US20240134792A1 (en) Data Pattern Based Cache Management
Wang et al. Way prediction set-associative data cache for low power digital signal processors

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20170201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 7