KR20140116495A - 하이브리드 라이트-쓰루/라이트-백 캐시 정책 매니저들, 및 관련 시스템들 및 방법들 - Google Patents

하이브리드 라이트-쓰루/라이트-백 캐시 정책 매니저들, 및 관련 시스템들 및 방법들 Download PDF

Info

Publication number
KR20140116495A
KR20140116495A KR1020147022679A KR20147022679A KR20140116495A KR 20140116495 A KR20140116495 A KR 20140116495A KR 1020147022679 A KR1020147022679 A KR 1020147022679A KR 20147022679 A KR20147022679 A KR 20147022679A KR 20140116495 A KR20140116495 A KR 20140116495A
Authority
KR
South Korea
Prior art keywords
cache
caches
write
active
policy
Prior art date
Application number
KR1020147022679A
Other languages
English (en)
Other versions
KR101747894B1 (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 KR20140116495A publication Critical patent/KR20140116495A/ko
Application granted granted Critical
Publication of KR101747894B1 publication Critical patent/KR101747894B1/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
    • 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/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/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/0806Multiuser, multiprocessor or multiprocessing cache 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/0844Multiple simultaneous or quasi-simultaneous cache accessing
    • G06F12/0846Cache with multiple tag or data arrays being simultaneously accessible
    • 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/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

상세한 설명에 개시되는 실시예들은 하이브리드 라이트-쓰루/ 라이트-백 캐시 정책 매니저들 및 관련 시스템들 및 방법들을 포함한다. 캐시 라이트 정책 매니저는 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하도록 구성된다. 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 캐시 라이트 정책 매니저는 라이트-백 캐시 정책을 적용하도록 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성된다. 이러한 방식으로, 캐시 라이트 정책 매니저는 전력을 보존하고 그리고/또는 단독 활성 프로세서 코어의 성능을 증가시킬 수 있다. 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 캐시 라이트 정책 매니저는 라이트-쓰루 캐시 정책을 적용하도록 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성된다. 이러한 방식으로, 캐시 라이트 정책 매니저는 다수의 프로세서 코어들이 활성일 때 병렬 캐시들 사이의 데이터 코히어런시(coherency)를 가능하게 한다.

Description

하이브리드 라이트-쓰루/라이트-백 캐시 정책 매니저들, 및 관련 시스템들 및 방법들{HYBRID WRITE-THROUGH/WRITE-BACK CACHE POLICY MANAGERS, AND RELATED SYSTEMS AND METHODS}
본 출원은 2012년 1월 16일자로 출원된 "HYBRID WRITE-THROUGH/WRITE-BACK POLICY FOR CACHES, AND RELATED SYSTEMS AND METHODS"라는 명칭의 미국 가 특허 출원 제61/586,937호에 대한 우선권을 주장하고, 그에 의해 상기 가출원의 전체 내용은 본원에 인용에 의해 포함된다.
본 개시의 기술은 멀티프로세서들에 관한 것으로, 멀티프로세서의 각각의 프로세서 코어는 자기 자신의 로컬 캐시를 가지며, 공통 캐시 및/또는 메인 메모리를 공유한다.
프로세서 캐시는 라이트-백(write-back) 캐시 정책 또는 라이트-쓰루(write-through) 캐시 정책을 구현하도록 구성될 수 있다. 라이트-쓰루 캐시 정책은 캐시에 저장된 모든 데이터를 다음-레벨 캐시(들)에 라이트-쓰루한다. 예를 들어, 제 1-레벨 라이트-쓰루 캐시는 제 1-레벨 캐시에 저장된 모든 데이터를 다음-레벨 캐시에 라이트-쓰루할 수 있다. 캐시에 저장된 데이터가 다음-레벨 캐시에 라이트-쓰루되기 때문에, 라이트-쓰루 캐시 정책은 각각의 제 1-레벨 캐시가 더티(dirty) 데이터를 포함하지 않음을 보장한다. 그러나, 모든 데이터 저장을 다음-레벨 캐시에 라이트 쓰루하는 것은 데이터를 다음 레벨 캐시에 라이트 쓰루하는 것으로 인하여 추가 전력을 소모한다. 이로써, 라이트-쓰루 캐시 정책은 더 낮은 전력 디바이스들에 대하여 이상적이지 않을 수 있다.
한편, 라이트-백 캐시 정책을 이용하여 구성되는 캐시(즉, 라이트-백 캐시)는 축출(eviction) 까지 더티 데이터를 캐시에 수집한다. 제 1-레벨 캐시로의 라이트들이 수집되고 축출 이전에 라이트-쓰루되지 않기 때문에, 라이트-백 캐시들은 더 적은 전력을 소모할 수 있다. 그러나, 라이트-백 캐시들을 포함하는 멀티 프로세서 시스템은 더 복잡할 수 있다. 예를 들어, 데이터 코히어런시(coherency)를 제공하기 위해서, 라이트-백 캐시들 내의 더티 데이터는 스누프 아웃(snoop out)될 필요가 있을 수 있다. 게다가, 설계 및 테스팅 단계들 동안, 데이터 코히어런시 문제들을 디버그하는 것은 시간을 소모할 수 있다.
상세한 설명에 개시되는 실시예들은 하이브리드 라이트-쓰루/라이트-백 캐시 정책 매니저들 및 관련 시스템들 및 방법들을 포함한다. 이와 관련하여, 일 실시예에서, 캐시 라이트(write) 정책 매니저가 제공된다. 캐시 라이트 정책 매니저는 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하도록 구성된다. 병렬 캐시들은, 중간 캐시들(들) 또는 중간 메모리(들)를 통해 직접적으로 또는 간접적으로, 하나 또는 둘 이상의 공통 계통(lineage)(즉, 부모) 캐시(들) 또는 메모리(들)를 공유하며, 여기서 코히어런시는 유지되어야 한다. 활성 캐시는 사용 중인 캐시이다. 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 캐시 라이트 정책 매니저는 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성된다. 이러한 방식으로, 캐시 라이트 정책 매니저는 전력을 보존하고 그리고/또는 복수의 병렬 프로세서 코어들 사이의 단지 단일 프로세서 코어가 활성일 때 성능을 증가시킬 수 있다. 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 캐시 라이트 정책 매니저는 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성된다. 이러한 방식으로, 캐시 라이트 정책 매니저는 복수의 병렬 프로세서 코어들 사이의 다수의 프로세서 코어들이 활성일 때 병렬 캐시들 사이의 데이터 코히어런시를 가능하게 한다.
다른 실시예에서, 캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책에 제공하기 위한 수단이 제공된다. 상기 수단은, 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하기 위한 수단을 포함한다. 상기 수단은, 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하기 위한 수단을 포함한다. 상기 수단은, 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하기 위한 수단을 더 포함한다.
또 다른 실시예에서, 캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법이 제공된다. 상기 방법은, 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하는 단계를 포함한다. 상기 방법은, 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하는 단계를 더 포함한다. 상기 방법은, 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하는 단계를 더 포함한다.
또 다른 실시예에서, 캐시가 제공된다. 캐시는 캐시 메모리, 및 캐시 메모리의 캐시 라이트 정책을 셋팅하도록 구성되는 캐시 제어기를 포함한다. 상기 캐시 제어기는, 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라는 표시의 수신에 응답하여 캐시 메모리에 대한 라이트-백 캐시 정책을 셋팅하도록 추가로 구성된다. 상기 캐시 제어기는, 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이라는 표시의 수신에 응답하여, 캐시 메모리에 대한 라이트-쓰루 캐시 정책을 셋팅하도록 추가로 구성된다.
또 다른 실시예에서, 멀티프로세서 시스템이 제공된다. 상기 멀티프로세서 시스템은, 복수의 병렬 캐시들, 및 복수의 병렬 캐시들에 의해 공유된 공유 메모리를 포함한다. 멀티프로세서 시스템은 또한, 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하도록 구성되는 캐시 라이트 정책 매니저를 포함한다. 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 캐시 라이트 정책 매니저는 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 추가로 구성된다. 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 캐시 라이트 정책 매니저는 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 추가로 구성된다.
다른 실시예에서, 비-일시적 컴퓨터 판독가능한 매체가 제공된다. 상기 컴퓨터 판독가능한 매체는, 프로세서로 하여금 복수의 병렬 캐시들에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하게 하기 위한 컴퓨터 실행가능한 명령들을 저장한다. 상기 명령들은, 프로세서로 하여금 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하게 한다. 상기 명령들은 추가로, 프로세서로 하여금 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하게 한다. 상기 명령들은 추가로, 프로세서로 하여금 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하게 한다.
도 1은 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하도록 구성되는 예시적인 캐시 라이트 정책 매니저를 포함하는 예시적인 멀티프로세서 시스템의 블록도이다.
도 2는 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위해서 도 1의 캐시 라이트 정책 매니저에 의해 수행될 수 있는 예시적인 상태 머신이다.
도 3은 복수의 프로세서 코어들을 갖는 다른 예시적인 멀티프로세서 시스템의 블록도이고, 각각의 프로세서 코어는 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 캐시 라이트 정책 매니저를 포함한다.
도 4는 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 캐시 라이트 정책 매니저를 포함하는 하이퍼바이저를 사용하는 또 다른 예시적인 멀티프로세서 시스템의 블록도이다.
도 5는 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 캐시 라이트 정책 매니저를 포함하는 전력 관리 유닛(PMU: power management unit)을 사용하는 또 다른 예시적인 멀티프로세서 시스템의 블록도이다.
도 6은 본 명세서에 개시되는 실시예들에 따른 캐시 라이트 정책 매니저를 포함하는 예시적인 프로세서-기반 시스템의 블록도이다.
상세한 설명에 개시되는 실시예들은 하이브리드 라이트-쓰루/라이트-백 캐시 정책 매니저들 및 관련 시스템들 및 방법들을 포함한다. 이와 관련하여, 일 실시예에서, 캐시 라이트 정책 매니저가 제공된다. 캐시 라이트 정책 매니저는 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하도록 구성된다. 병렬 캐시들은, 중간 캐시들(들) 또는 중간 메모리(들)를 통해 직접적으로 또는 간접적으로, 하나 또는 둘 이상의 공통 계통(즉, 부모) 캐시(들) 또는 메모리(들)를 공유하며, 여기서 코히어런시는 유지되어야 한다. 활성 캐시는 사용 중인 캐시이다. 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 캐시 라이트 정책 매니저는 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성된다. 이러한 방식으로, 캐시 라이트 정책 매니저는 전력을 보존하고 그리고/또는 복수의 병렬 프로세서 코어들 사이의 단지 단일 프로세서 코어가 활성일 때 성능을 증가시킬 수 있다. 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 캐시 라이트 정책 매니저는 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성된다. 이러한 방식으로, 캐시 라이트 정책 매니저는 복수의 병렬 프로세서 코어들 사이의 다수의 프로세서 코어들이 활성일 때 병렬 캐시들 사이의 데이터 코히어런시를 가능하게 한다.
도 1은 복수의 병렬 프로세서 코어들(22(0)-22(X))을 포함하는 예시적인 멀티프로세서 시스템(10)의 블록도이다. 각각의 프로세싱 코어(22(0)-22(X))는 캐시 제어기(16(0)-16(X)) 및 캐시 메모리(18(0)-18(X))를 포함하는 로컬 병렬 캐시(14(0)-14(X))에 액세스한다. 도 1의 캐시들(14(0)-14(X))이 공통 계통 공유 메모리(20)를 공유하기 때문에, 도 1의 캐시들(14(0)-14(X))은 병렬 캐시들이다. 도 1에 예시된 바와 같이, 병렬 캐시들(14(0)-14(X))은 프로세서 코어들(22(0)-22(X))에 대한 제 1-레벨 캐시들일 수 있다. 대안적으로, 병렬 캐시들(14(0)-14(X))은 더 높은-레벨 캐시들, 예를 들어, 프로세서 코어들(22(0)-22(X))의 제 2-레벨 또는 제 3-레벨 캐시들일 수 있다. 병렬 캐시들(14(0)-14(X))은 공유 메모리(20)를 공유한다. 공유 메모리(20)는 공유 캐시, 예를 들어, 제 2-레벨 캐시일 수 있다. 공유 메모리(20)는 또한, 메인 메모리일 수 있다. 도 1에 또한 예시된 바와 같이, 멀티프로세서 시스템(10)은 반도체 다이(24)로 통합될 수 있다.
멀티프로세서 시스템은 단일 프로세서 코어가 활성이게 하는 자신의 동작 시간 중 일부를 소비할 수 있다. 따라서, 활성인 단일 프로세서 코어(22(0))를 이용하여 동작할 때 더 적은 전력을 소모하도록 멀티프로세서 시스템(10)을 최적화하는 것이 유익할 수 있다. 가끔, 증가된 성능이 요구될 때, 멀티프로세서 시스템(10)의 하나 또는 둘 이상의 다른 프로세서 코어들(22(X))은 멀티프로세서 시스템(10)에 대한 증가된 프로세싱 용량을 제공하도록 활성화될 수 있다. 프로세서 코어들(22(0)-22(X)) 중 둘 이상이 활성일 때, 추가 전력이 멀티프로세서 시스템(10)에 의해 소모될 수 있지만, 멀티프로세서 시스템(10)에 의해 소모되는 증가된 전력은 성능의 증가된 버스트들이 요구될 수 있을 일정 기간들의 시간 동안에만 발생할 수 있다.
이와 관련하여, 멀티프로세서 시스템(10)은 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하도록 구성되는 캐시 라이트 정책 매니저(12)를 포함한다. 캐시 라이트 정책 매니저(12)는 복수의 병렬 캐시들(14(0)-14(X))의 캐시 라이트 정책을 관리하도록 구성된다. 캐시 라이트 정책 매니저(12)는 적어도 2개의 병렬 캐시들(14(0)-14(X))이 활성인지 여부를 결정하도록 구성된다. 복수의 병렬 캐시들(14(0)-14(X)) 사이의 하나 또는 둘 이상의 다른 캐시들(14(X)) 모두가 활성이 아니라면, 캐시 라이트 정책 매니저(12)는 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들(14(0)-14(X)) 사이의 활성 캐시(14(0))에 명령하도록 구성된다. 이러한 방식으로, 복수의 병렬 프로세서 코어들(22(0)-22(X)) 사이의 단지 단일 프로세서 코어(22(0))가 활성일 때, 캐시 라이트 정책 매니저(12)는 전력을 보존하고 그리고/또는 멀티프로세서 시스템(10)의 성능을 증가시킬 수 있다. 예를 들어, 복수의 병렬 캐시들(14(0)-14(X)) 사이의 다른 캐시들(14(X)) 모두가 비활성이 될 때, 캐시 라이트 정책 매니저(12)는 라이트-백 캐시 정책을 적용하도록 복수의 병렬 캐시들(14(0)-14(X)) 사이의 활성 캐시(14(0))에 명령하도록 구성될 수 있다.
또한, 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것이 활성이면, 캐시 라이트 정책 매니저(12)는 또한, 라이트-쓰루 캐시 정책을 적용하도록 복수의 병렬 캐시들(14(0)-14(X)) 사이의 활성 캐시(14(0))에 명령하도록 구성된다. 이러한 방식으로, 복수의 병렬 프로세서 코어들(22(0)-22(X)) 사이의 다수의 프로세서 코어들(22(0)-22(X))이 활성일 때, 캐시 라이트 정책 매니저(12)는 병렬 캐시들(14(0)-14(X)) 사이의 데이터 코히어런시를 가능하게 한다.
캐시 라이트 정책 매니저(12)는 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 구현하도록 병렬 캐시들(14(0)-14(X))의 캐시 제어기들(16(0)-16(X))에 명령들을 전송하도록 구성된다. 캐시 라이트 정책 매니저(12)는 원하는 캐시 라이트 정책이 병렬 캐시들(14(0)-14(X))에 대하여 셋팅되도록 명령하도록 구성된다. 캐시 제어기(16(0))는 캐시 메모리(18(0))에 대한 원하는 캐시 라이트 정책을 셋팅하도록 캐시 라이트 정책 매니저(12)로부터 명령들을 수신하도록 구성된다. 캐시 제어기(16(0))는 복수의 병렬 캐시들(14(0)-14(X)) 사이의 하나 또는 둘 이상의 다른 캐시들(14(X)) 모두가 활성이 아니라는 표시의 수신에 응답하여, 캐시 메모리(18(0))에 대한 캐시 라이트 정책으로서 라이트-백 캐시 정책을 셋팅하도록 구성된다. 캐시 제어기(16(0))는 복수의 병렬 캐시들(14(0)-14(X)) 사이의 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것이 활성이라는 표시의 수신에 응답하여, 캐시 메모리(18(0))에 대한 라이트-쓰루 캐시 정책을 셋팅하도록 추가로 구성된다.
캐시 라이트 정책 매니저(12)는 상태 머신으로서 구현될 수 있다. 이와 관련하여, 도 2는 도 1의 캐시 라이트 정책 매니저(12)에 의해 수행될 수 있는 예시적인 상태 머신(26)을 제공한다. 이와 관련하여, 도 2는 캐시 라이트 정책 매니저(12)에 대한 예시적인 상태 머신(26)을 예시한다. 일 실시예에서, 제 1 상태(28), 제 2 상태(30), 제 3 상태(32) 및 제 4 상태(34)를 갖는 상태 머신(26)이 제공될 수 있다.
이제, 제 1 상태(28)를 참조하면, 복수의 병렬 프로세서 코어들(22(0)-22(X)) 사이의 단지 하나의 프로세서 코어(22(0))가 활성일 때, 프로세서 코어(22(0))에 의해 액세스되는 로컬 캐시(14(0))는 복수의 병렬 캐시들(14(0)-14(X)) 사이의 단지 활성 캐시일 수 있다. 복수의 병렬 캐시들(14(0)-14(X)) 사이의 단지 하나의 제 1 캐시(14(0))가 활성일 때, 캐시(14(0))와 하나 또는 둘 이상의 다른 캐시들(14(X)) 사이의 계속적 데이터 코히어런시를 유지할 필요성이 존재하지 않는다. 따라서, 라이트-백 캐시 정책을 캐시(14(0))에 적용하는 것은 전력을 보존하고, 단독 활성 프로세서 코어(22(0))의 성능을 증가시킬 수 있다. 따라서, 도 2에 예시된 바와 같이, 단지 하나의 캐시(14(0))가 활성일 때, 캐시 라이트 정책 매니저(12)는 제 1 상태(28)에 있을 것이다. 제 1 상태(28)에서, 캐시 라이트 정책 매니저(12)는 라이트-백 캐시 정책을 활성 캐시(14(0))에 적용한다. 라이트-백 캐시 정책을 적용할 때, 캐시(14(0))는 더티 데이터를 저장할 수 있다.
그러나, 일단 다른 캐시들(14(X)) 중 하나 또는 둘 이상이 활성화되면, 캐시(14(0))는 하나 또는 둘 이상의 다른 캐시들(14(X))과 코히어런트(coherent)하게 될 필요가 있을 것이다. 따라서, 캐시 라이트 정책 매니저(12)가 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것이 활성임을 검출할 때, 캐시 라이트 정책 매니저(12)는 제 1 상태(28)로부터 제 2 상태(30)로 전이(transition)한다. 캐시 라이트 정책 매니저(12)는 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것에 전력이 공급된다고 결정함으로써 복수의 병렬 캐시들(14(0)-14(X)) 사이의 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것이 활성이라고 결정하도록 구성될 수 있다. 캐시 라이트 정책 매니저(12)는 또한, 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것에 액세스하도록 구성되는 하나 또는 둘 이상의 다른 프로세서 코어들(22(X)) 중 임의의 것에 전력이 공급되고 그리고/또는 활성이라고 결정함으로써 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것이 활성이라고 결정하도록 구성될 수 있다.
제 2 상태(30)에서, 캐시 라이트 정책 매니저(12)는 초기 활성 캐시(14(0))를 하나 또는 둘 이상의 다른 캐시들(14(X))과 코히어런트하게 한다. 데이터 코히어런시를 달성하기 위해서, 캐시 라이트 정책 매니저(12)는 모든 더티 캐시 라인들을 클린하도록 초기 활성 캐시(14(0))에 명령한다. 활성 캐시(14(0))는 임의의 더티 캐시 라인들에 의해 저장된 데이터를 복수의 병렬 캐시들(14(0)-14(X)) 사이에 공유된 공유 메모리(20)에 라이트함으로써 모든 더티 캐시 라인들을 클린할 수 있다. 공유 메모리(20)로의 모든 더티 캐시 라인들의 클린 이전에, 동안 또는 이후에, 캐시 라이트 정책 매니저(12)는 또한, 라이트-쓰루 캐시 정책을 적용하도록 초기 활성 캐시(14(0))에 명령한다. 또한 하나 또는 둘 이상의 다른 캐시들(14(X))을 관리할 때, 캐시 라이트 정책 매니저(12)는 또한, 라이트-쓰루 캐시 정책을 적용하도록 하나 또는 둘 이상의 다른 캐시들(14(X))에 명령할 것이다. 새롭게 활성화하는 다른 프로세서 코어(22(X)) 및/또는 새롭게 활성화하는 하나 또는 둘 이상의 다른 캐시들(14(X))이 완전히 활성이 되기 이전에, 캐시(14(0))의 더티 캐시 라인들의 클리닝이 완료될 수 있다. 초기 활성 캐시(14(0))에서의 임의의 더티 캐시 라인들의 클리닝이 완료된 이후에, 제 1 프로세서 코어(22(0))의 초기 활성 캐시(14(0))는 그 후에 하나 또는 둘 이상의 다른 캐시들(14(X))과의 코히어런시를 유지할 것이다. 이 실시예에서, 코히어런시는 공유 메모리(20)를 통해 유지된다. 공통 계통 공유 메모리(20)는 활성 캐시(14(0)) 및/또는 다른 캐시들(14(X))의 다음-레벨 공유 메모리일 수 있다. 대안적으로, 활성 캐시(14(0))와 공유 메모리(20) 사이에 배치된 하나 또는 둘 이상의 중간 캐시(들) 및/또는 중간 메모리(들)가 존재할 수 있다. 또한, 하나 또는 둘 이상의 다른 캐시들(14(X))과 공유 메모리(20) 사이에 배치된 하나 또는 둘 이상의 중간 캐시(들) 및/또는 중간 메모리(들)가 존재할 수 있다. 초기 활성 캐시(14(0))가 공유 메모리(20)와 코히어런트되도록 업데이트된 이후에, 하나 또는 둘 이상의 다른 프로세서 코어들(22(X)) 및/또는 하나 또는 둘 이상의 다른 캐시들(14(X))이 완전히 활성이 되도록 허용될 수 있다.
하나 또는 둘 이상의 다른 프로세서 코어들(22(X)) 및/또는 하나 또는 둘 이상의 다른 캐시들(14(X))의 활성화가 시간이 걸림에 따라, 제 2 상태(30)의 동작들은 하나 또는 둘 이상의 다른 프로세서 코어들(22(X))의 활성화 및/또는 하나 또는 둘 이상의 다른 캐시들(14(X))의 활성화와 실질적으로 동시에 발생하도록 명령될 수 있다.
도 2를 계속 참조하면, 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 하나 또는 둘 이상이 활성이 될 때, 캐시 라이트 정책 매니저(12)는 제 3 상태(32)로 전이한다. 제 3 상태(32)에서, 활성인 적어도 2개 병렬 캐시들(14)(예를 들어, 14(0), 14(X))이 존재하고, 활성 병렬 캐시들(14) 각각은 라이트-쓰루 캐시 정책을 적용하고 있다. 이것은 이 실시예에서, 활성 프로세서 코어들(22(0)-22(X))이 공유 메모리(20) 내의 활성 캐시들(14(0)-14(X))의 코히어런시를 유지하게 한다. 추가적인 다른 캐시(들)(14(X))가 활성이 되면(예를 들어, 둘 또는 셋 이상의 다른 캐시들(14(X))이 활성이면), 캐시 라이트 정책 매니저(12)는 제 3 상태(32)에서 유지되고, 추가적인 다른 캐시(들)(14(X))에는 또한, 라이트-쓰루 캐시 정책을 적용하도록 명령된다.
일부 시점에서, 하나 또는 둘 이상의 다른 프로세서 코어들(22(X))의 추가 프로세싱 용량이 멀티프로세서 시스템(10)에 의해 더 이상 요구되지 않을 수 있다. 하나 또는 둘 이상의 다른 프로세서 코어들(22(X))의 추가 프로세싱 용량이 멀티프로세서 시스템(10)에 의해 더 이상 요구되지 않을 때, 멀티프로세서 시스템(10)은 전력을 보존하기 위해서 활성화해제하도록 하나 또는 둘 이상의 다른 프로세서 코어들(22(X))에 명령할 수 있다. 결정적으로, 하나 또는 둘 이상의 다른 캐시들(14(X))은 또한, 파워 다운되고 그리고/또는 하나 또는 둘 이상의 다른 캐시들(14(X))을 공유 메모리(20)에 플러싱(flush)하지 않고 활성화해제(즉, 활성이 되지 않게)될 수 있다. 캐시 정책 매니저(12)가 하나 또는 둘 이상의 다른 캐시들(14(X)) 모두가 활성이 아니라고 결정할 때(예를 들어, 단지 하나의 캐시(14(0))가 활성 상태를 유지할 때), 캐시 라이트 정책 매니저(12)는 제 3 상태(32)로부터 제 4 상태(34)로 전이한다.
제 4 상태(34)에서, 하나 또는 둘 이상의 다른 캐시들(14(X))이 활성이 아니고 그리고/또는 하나 또는 둘 이상의 다른 캐시들(14(X))에 전력이 공급되지 않기 때문에, 단독 활성 캐시(14(0))를 하나 또는 둘 이상의 다른 캐시들(14(X))과 코히어런트하게 유지할 필요성이 더 이상 존재하지 않는다. 따라서, 제 4 상태(34)에서, 캐시 라이트 정책 매니저(12)는 라이트-백 캐시 정책을 적용하도록 잔여 활성 캐시(14(0))에 명령한다. 더티 데이터는 다시, 캐시(14(0))에 저장될 수 있다. 결과적으로, 더 적은 전력이 멀티프로세서 시스템(10)에 의해 소모된다. 또한, 구현, 워크로드 및/또는 다른 설계 인자들에 따라, 잔여 활성 프로세서 코어(22(0))는 라이트-백 캐시 정책 하에 증가된 성능을 가질 수 있다.
라이트-백 캐시 정책을 적용하도록 잔여 활성 캐시(14(0))에 명령한 이후에, 캐시 라이트 정책 매니저(12)는 제 4 상태(34)로부터 제 1 상태(28)로 전이한다. 활성 병렬 캐시(14(0))가 복수의 병렬 캐시들(14(0)-14(X)) 사이의 단지 활성 캐시(14)인 동안은, 캐시 라이트 정책 매니저(12)가 제 1 상태(28)에서 유지될 것이다. 그 후에, 캐시 라이트 정책 매니저(12)는 본 명세서에서 논의된 바와 같이 계속한다.
당업자는, 상태 머신(26)의 제 1, 제 2, 제 3 및 제 4 상태들을 통한 사이클의 끝에서의 잔여 단독 활성 캐시(14(0))가 사이클의 시작에서 초기 활성 캐시(14(0))와, 복수의 병렬 캐시들(14(0)-14(X)) 사이의 동일한 캐시(14) 또는 상이한 캐시(14)일 수 있다는 것을 본 개시로부터 인식할 것이다. 다시 말해서, 동일한 캐시(14) 또는 상이한 캐시(14)는 상태 머신(26)을 통하는 사이클의 시작에서 초기에 활성이었던 것보다, 상태 머신(26)을 통하는 사이클의 끝에서 활성 상태를 유지할 수 있다.
당업자는 또한, 캐시 라이트 정책 매니저(12)가 몇몇 상태 머신들(26)을 포함하고 이를 동작시킬 수 있다는 것을 본 개시로부터 인식할 것이다. 예를 들어, 다수의 캐시들(14)을 관리하는 캐시 라이트 정책 매니저(12)는 캐시 라이트 정책 매니저(12)에 의해 관리되는 각각의 캐시(14)에 대한 개별 상태 머신(26)을 포함하며 이를 동작시킬 수 있다.
게다가, 이전의 논의는 상태 머신(26)의 4개의 개별 상태들: 제 1 상태(28), 제 2 상태(30), 제 3 상태(32) 및 제 4 상태(34)를 나타낸다. 일반적으로, 제 1 상태(28) 및 제 3 상태(32)는 더 긴 듀레이션 상태들일 수 있고, 제 2 상태(30) 및 제 4 상태(34)는 전이(즉, 더 짧은 듀레이션) 상태들일 수 있다. 상태 머신(26)에는 또한, 더 적은 또는 추가 상태들이 제공될 수 있다. 예를 들어, 일부 실시예들에서, 제 1 상태(28) 및 전이 제 2 상태(30)가 제 1 상태(36)로서 제공되는 더 긴 듀레이션에 대하여, 그리고 제 3 상태(32) 및 전이 제 4 상태(34)가 제 2 상태(38)로서 제공되는 더 긴 듀레이션에 대하여, 상태 머신(26)은 2-상태 머신으로서 제공될 수 있다.
추가 예로서, 도 2에 예시된 선택적 제 5 시작 상태(40)가 이제 논의된다. 캐시(14)가 먼저 파워 업할 때, 캐시 라이트 정책 매니저(12)는 초기에, 다른 병렬 캐시들(14)이 활성인지 여부를 알지 못할 수 있다. 어떤 캐시들(14)이 활성인지/활성이 아닌지에 대한 결정이 이루어질 수 있기 이전에, 활성화 캐시(14)가 단지 활성 캐시(14)임을 가정하는 것이 안전하지 않을 수 있다. 따라서, 캐시 라이트 정책 매니저(12)는 어떤 캐시들(14)이 활성인지/활성이 아닌지에 대한 결정이 이루어질 수 있을 때까지 디폴트 캐시 라이트 정책으로서 라이트-쓰루 캐시 정책을 적용시키도록 캐시(14)에 명령하도록 구성될 수 있다. 결과적으로, 활성화 캐시(14)가 다른 활성 병렬 캐시들(14)의 존재 시에 라이트-백 캐시 정책을 적용시켰으면, 다르게 발생할 수 있는 데이터 코히어런시 문제들이 회피된다.
이와 관련하여, 캐시 라이트 정책 매니저(12)는 초기에 시작 상태(40)에서 시작할 수 있다. 시작 상태(40)에서, 캐시 라이트 정책 매니저(12)는 라이트-쓰루 캐시 정책을 적용하도록 캐시(14)에 명령한다. 그 다음, 캐시 라이트 정책 매니저(12)는 제 3 상태(32)로 전이한다. 그 다음, 어떤 캐시들(14)이 활성인지/활성이 아닌지에 관한 결정이 이루어질 것이다. 복수의 병렬 캐시들(14) 사이의 하나 또는 둘 이상의 다른 캐시들(14(X)) 모두가 활성이 아니라면, 활성화 캐시(14)의 캐시 라이트 정책 매니저(12)는 제 4 상태(34)(라이트-백 캐시 정책을 적용하도록 활성화 캐시(14)에 명령함)로 전이하고, 그 다음 제 1 상태(28)로 전이할 것이다. 복수의 병렬 캐시들(14) 사이의 하나 또는 둘 이상의 다른 캐시들(14(X)) 중 임의의 것이 활성이면, 활성화 캐시(14)의 캐시 라이트 정책 매니저(12)는 제 3 상태(38)에서 유지될 것이다.
도 1의 멀티프로세서 시스템(10)은 프로세서 코어들(22(0)-22(X))의 단일 클러스터를 예시한다. 그러나, 멀티프로세서 시스템(10)은 또한, 계층적 멀티프로세서 시스템(10(1))의 일부로서 제공될 수 있다. 이와 관련하여, 도 3은 복수의 프로세서 코어 클러스터들을 갖는 계층적 멀티프로세서 시스템(10(1))을 예시한다. 프로세서 코어들(22A(0)-22A(X))은 프로세서 코어들의 제 1 클러스터를 제공한다. 프로세서 코어들(22B(0)-22B(Y))은 제 2 프로세서 코어 클러스터를 형성한다. 도 3에서, 캐시들(14A(0)-14A(X))이 공통 계통 병렬 캐시(14C(0))를 공유하기 때문에, 캐시들(14A(0)-14A(X))은 병렬 캐시들이다. 캐시들(14B(0)-14B(Y))이 공통 계통 병렬 캐시(14C(Z))를 공유하기 때문에, 캐시들(14B(0)-14B(Y))은 병렬 캐시들이다. 캐시들(14C(0)-14C(Z))은 공통 계통 공유 메모리(20)를 공유하기 때문에, 캐시들(14C(0)-14C(Z))은 병렬 캐시들이다. 캐시들(14A(0)-14A(X) 및 14B(0)-14B(X))이 공통 계통 공유 메모리를 공유하기 때문에, 캐시들(14A(0)-14A(X) 및 14B(0)-14B(X))은 또한 병렬 캐시들이다. 계층적 멀티프로세서 시스템(10(1))은 반도체 다이(24(1)) 상에 제공될 수 있다. 도 3의 엘리먼트들은 도 1의 엘리먼트들과 유사한 엘리먼트 번호들을 가지며, 본 명세서에 설명된 것들을 제외하고는 도 1의 엘리먼트들과 동일한 방식으로 동작한다.
도 3에 예시된 바와 같이, 도 1의 캐시 라이트 정책 매니저(12)는 복수의 캐시 라이트 정책 매니저들(12A(0)-12A(X), 12B(0)-12B(Y))로서 제공될 수 있다. 도 3에 예시된 실시예에서, 각각의 프로세서 코어(22)(예를 들어, 프로세서 코어들(22A(0)-22A(X) 및 22B(0)-22B(Y))는 캐시 라이트 정책 매니저(12)(예를 들어, 각각 12A(0)-12A(X) 및 12B(0)-12B(Y))를 포함한다. 각각의 프로세서 코어(22)에 포함된 캐시 라이트 정책 매니저(12)는 복수의 병렬 캐시들(14A(0)-14A(X), 14B(0)-14B(Y)) 사이의 적어도 2개의 캐시들(14)이 활성인지 여부를 결정하도록 구성된다. 각각의 프로세서 코어(22)에 포함된 캐시 라이트 정책 매니저(12)는 또한, 어떤 캐시 라이트 정책을 적용할 것인지에 관하여, 자신의 프로세서 코어(22)에 의해 액세스되는 병렬 캐시(14)에 명령하도록 구성된다.
이와 관련하여, 도 3에서, 단지 제 1 프로세서 코어(22A(0))가 활성일 때, 캐시 라이트 정책 매니저(12A(0))는 라이트-백 캐시 정책을 적용하도록 병렬 캐시(14A(0))에 명령할 수 있다. 제 2 프로세서 코어 클러스터 내의 하나 또는 둘 이상의 다른 프로세서 코어들(22B(0)-22B(Y)) 중 어떠한 것도 활성이 아니라면, 캐시 라이트 정책 매니저(12A(0))는 또한 라이트-백 캐시 정책을 적용하도록 병렬 캐시(14A(0))에 명령할 수 있다. 프로세서 코어(22A(X))가 파워 온할 때, 캐시 라이트 정책 매니저(12A(X))는, 병렬 캐시(14A(0))가 이미 활성이며, 이에 따라, 라이트-쓰루 캐시 정책을 적용하도록 병렬 캐시(14A(X))에 명령한다고 결정한다. 프로세서 코어(22A(X))가 파워 업할 때, 캐시 라이트 정책 매니저(12A(0))는 또한, 프로세서 코어(22A(X))가 활성화하고 있으며, 이에 따라, 모든 더티 데이터의 자신의 캐시 라인들을 클린하도록 이전의 활성 캐시(14A(0))에 명령한다고 결정한다. 그 다음, 병렬 캐시(14A(X))는, 병렬 캐시(14A(0))의 임의의 더티 캐시에 저장된 데이터를 제 1 프로세서 코어 클러스터의 프로세서 코어들(22A(0)-22A(X)) 사이에 공유된 병렬 캐시(14C(0))에 라이트함으로써, 자신의 더티 캐시 라인들 모두를 클린할 것이다.
일단 병렬 캐시(14A(X))의 더티 캐시 라인들의 클리닝이 완료되면, 병렬 캐시(14A(0))는 프로세서 코어(22A(X))의 병렬 캐시(14A(X))와의 데이터 코히어런시를 유지하도록 준비된다. 이와 관련하여, 병렬 캐시들(14A(0), 14A(X)) 둘 모두는 이들의 로컬 캐시 메모리들(18A(0), 18A(X))에 저장된 임의의 데이터를 병렬 캐시(14C(0))에 라이트하기 위해서 라이트-쓰루 캐시 정책을 적용할 것이다.
도 2의 상태 머신(26)은 또한, 병렬 캐시들(14C(0)-14C(Z))과 같은 병렬 캐시들에 적용될 수 있다. 이 시점에서, 제 1 프로세서 클러스터에서 활성인 프로세서 코어들(22)(예를 들어, 프로세서 코어들(22A(0), 22A(X)))이 존재한다. 그러나, 하나 또는 둘 이상의 다른 프로세서 클러스터들에는 활성인 다른 프로세서 코어들(22B(0)-22B(Y))이 존재하지 않는다. 결과적으로, 병렬 캐시(14C(0))는 활성이고, 활성인 다른 병렬 캐시(들)(14C(Z))는 존재하지 않는다. 활성인 다른 병렬 캐시(들)(14C(Z))가 존재하지 않기 때문에, 병렬 캐시(14C(0))에는 라이트-백 캐시 정책을 적용하도록 명령된다. 병렬 캐시(14C(0))는 병렬 캐시(14C(0))와 병렬인 모든 다른 병렬 캐시들(예를 들어, 병렬 캐시(14C(Z)))이 비활성 상태(즉, 활성이 아닌 상태)를 유지하는 동안에는 라이트-백 캐시 정책의 적용을 계속할 수 있다.
프로세서 코어(22B(0))가 제 2 프로세서 코어 클러스터에서 활성화될 때, 도 2의 상태 머신(26)은 더 깊은 캐시 레벨에서 병렬 캐시들(14C(0)-14C(Z))의 정책들을 셋팅하는데 사용된다. (다른 프로세서 코어 클러스터에서) 프로세서 코어(22B(0))가 파워 온되고 그리고/또는 그렇지 않으면 활성화될 때, 병렬 캐시( 14B(0)) 및 병렬 캐시(14C(Z))가 또한, 파워 온하며, 활성이 될 것이다. 캐시 라이트 정책 매니저(12B(0))는 병렬 캐시들(14A(0)-14A(X))이 활성이며, 이에 따라, 라이트-쓰루 캐시 정책을 적용하도록 병렬 캐시(14B(0))에 명령한다고 결정한다. 캐시 라이트 정책 매니저(12B(0))는 또한, 병렬 캐시(14C(0))가 활성이며, 이에 따라, 라이트-쓰루 캐시 정책을 적용하도록 병렬 캐시(14C(Z))에 명령한다고 결정한다.
캐시 라이트 정책 매니저(12A(0))는 또한, 프로세서 코어(22B(0)) 및/또는 병렬 캐시(14B(0))가 활성이며, 이에 따라, 라이트-쓰루 캐시 정책을 적용하도록 병렬 캐시(14C(0))에 명령한다고 결정한다. 이것은 병렬 캐시(14C(0))가 새롭게 활성화된 병렬 캐시(14C(Z))와의 코히어런시를 유지하게 한다. 이와 관련하여, 병렬 캐시(14C(0)) 및 병렬 캐시(14C(Z))는 각각, 이들의 캐시 메모리들(18C(0), 18C(Z))에 저장된 데이터를 공유 메모리(20)에 라이트-쓰루할 것이다. 다른 프로세서 코어 클러스터의 모든 활성 프로세서 코어들(22B)(이 예에서는, 프로세서 코어(22B(0)))이 활성화해제될 때, 캐시 라이트 정책 매니저(12A(0))는 임의의 다른 프로세서 코어 클러스터들의 다른 프로세서 코어들(22B(0)-22B(Y)) 및/또는 병렬 캐시들(14B(0)-14B(Y))이 활성이 아니라고 결정할 것이다. 이것이 발생할 때, 캐시 라이트 정책 매니저(12A(0))는 라이트-백 캐시 정책을 적용시키도록 병렬 캐시(14C(0))에 명령할 수 있다. 라이트-백 캐시 정책을 적용하는 것은 전력을 보존하며 그리고/또는 단지 잔여 활성 프로세서 코어 클러스터 내의 프로세서들(12A(0)-12A(X))(즉, 프로세서들(12A(0)-12A(X)))의 성능을 강화할 수 있다. 당업자는 도 2의 상태 머신(26)이 계층적 캐시 시스템의 임의의 레벨에서 적용될 수 있다는 것을 본 개시로부터 인식할 것이다. 당업자는 또한, 도 3의 각각의 프로세서 코어 클러스터가 둘 또는 셋 이상의 프로세서 코어들(22)을 포함할 수 있다는 것을 본 개시로부터 인식할 것이다.
당업자는 또한, 계층적 멀티프로세서 시스템(10(1))이 둘 또는 셋 이상의 프로세서 코어 클러스터들을 포함할 수 있다는 것을 본 개시로부터 인식할 것이다. 도 3에 예시된 계층적 멀티프로세서 시스템(10(1))은 캐시들의 3개의 레벨들을 예시한다. 그러나, 당업자는 상태 머신(26)이 또한, 더 깊은 캐시 계층들에 적용될 수 있다는 것을 인식할 것이다.
도 3에 예시된 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y))은 각각, 자기 자신의 캐시 라이트 정책 매니저(12A(0)-12A(X), 12B(0)-12B(Y))를 포함한다.그러나, 캐시 라이트 정책 매니저(12)는 또한, 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y)) 외부에 제공될 수 있다. 이에 관련하여, 도 4는 하이퍼바이저(44)로 통합되는 캐시 라이트 정책 매니저(12)를 포함하는 멀티프로세서 시스템(10(2))을 예시한다. 하이퍼바이저(44)는 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y)) 및/또는 병렬 캐시들(14A(0)-14A(X), 14B(0)-14B(Y)) 중 임의의 것이 활성인지 여부를 결정할 수 있다. 하이퍼바이저는 또한, 병렬 캐시들(14C(0)-14C(Z)) 중 임의의 것이 활성인지 여부를 결정할 수 있다. 하이퍼바이저(44)는 또한, 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y))의 활성화 및 활성화해제 및/또는 이들의 각각의 프로세서 코어 클러스터들의 활성화 및 활성화해제를 제어할 수 있다. 일 실시예에서, 하이퍼바이저(44)는 반도체 다이(24(2)) 상에서 개별 회로로서 제공된다. 다른 실시예에서, 하이퍼바이저(44)는 소프트웨어로 제공된다. 소프트웨어로 구현될 때, 하이퍼바이저(44)는 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y))로부터의 개별 프로세서 코어(22) 상에서 실행할 수 있다. 그러나, 하이퍼바이저(44)는 또한, 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y)) 중 하나 또는 둘 이상의 프로세서 코어들 상에서 실행할 수 있다.
도 5에 멀티프로세서 시스템(10(3))에 의해 예시된 바와 같이, 캐시 라이트 정책 매니저(12)는 또한, 전력 관리 유닛(PMU)(46)으로 통합될 수 있다. PMU(46)는 반도체 다이(24(3))의 개별 회로로서 구현될 수 있다. PMU(46)는 프로세서 코어들(22A(0)-22A(X), 22B(0)-22B(Y)) 및/또는 병렬 캐시들(14A(0)-14A(X), 14B(0)-14B(Y))의 파워링 온(powering on) 및/또는 파워링 오프(powering off)를 제어한다. PMU(46)는 병렬 캐시들(14A(0)-14A(X), 14B(0)-14B(Y)) 및/또는 병렬 캐시들(14C(0)-14C(Z))에 영향을 미치기 위한 개별 상태 머신들(26)을 구현할 수 있거나 또는 구현하지 않을 수 있다.
본 명세서에 개시되는 실시예들에 따른 캐시 라이트 정책 매니저(12) 및/또는 병렬 캐시들(14)은 임의의 프로세서-기반 디바이스에 제공되거나 또는 이에 통합될 수 있다. 예들은, 한정 없이, 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정된 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너(tuner), 라디오, 위성 라디오, 음악 플레이어, 디지털 음악 플레이어, 휴대용 음악 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어, 및 휴대용 디지털 비디오 플레이어를 포함한다.
이와 관련하여, 도 6은 프로세서-기반 시스템(48)의 일례를 예시한다. 이러한 예에서, 프로세서-기반 시스템(48)은 각각이 하나 또는 둘 이상의 프로세서들(52)을 포함하는 하나 또는 둘 이상의 중앙 처리 유닛(CPU)들(50)을 포함한다. CPU(들)(50)는 일시적으로 저장된 데이터로의 신속한 액세스를 위한 프로세서(들)(52)에 커플링된 데이터 캐시(들)(53)를 가질 수 있다. 본 명세서에 논의된 바와 같이, 각각의 캐시(53)는 본 명세서에 논의된 바와 같이 제어되는 캐시 제어기(56) 및 캐시 메모리(54)를 포함할 수 있다. CPU(들)(50)는 시스템 버스(58)에 커플링되며, 프로세서-기반 시스템(48)에 포함된 마스터 디바이스들 및 슬래이브 디바이스들을 상호 커플링시킬 수 있다. 잘 알려져 있는 바와 같이, CPU(들)(50)는 시스템 버스(58)를 통해 어드레스, 제어 및 데이터 정보를 교환함으로써 이러한 다른 디바이스들과 통신한다. 예를 들어, CPU(들)(50)는 슬래이브 디바이스의 일례로서, 버스 트랜잭션 요청들을 메모리 제어기(60)로 통신할 수 있다. 도 6에 예시되지 않았지만, 다수의 시스템 버스들(58)이 제공될 수 있으며, 여기서 각각의 시스템 버스(58)는 상이한 패브릭을 구성한다.
다른 마스터 및 슬래이브 디바이스들은 시스템 버스(58)에 커플링될 수 있다. 도 6에 예시된 바와 같이, 이러한 디바이스들은 예들로서, 시스템 메모리(62), 하나 또는 둘 이상의 입력 디바이스들(64), 하나 또는 둘 이상의 출력 디바이스들(66), 하나 또는 둘 이상의 네트워크 인터페이스 디바이스들(68) 및 하나 또는 둘 이상의 디스플레이 제어기들(70)을 포함할 수 있다. 입력 디바이스(들)(64)는 입력 키들, 스위치들, 음성 프로세서들 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 입력 디바이스를 포함할 수 있다. 출력 디바이스(들)(66)는 오디오, 비디오, 다른 시각적 표시자들 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 출력 디바이스를 포함할 수 있다. 네트워크 인터페이스 디바이스(들)(68)는 네트워크(72)로의 그리고 네트워크(72)로부터의 데이터의 교환을 허용하도록 구성되는 임의의 디바이스(들)일 수 있다. 네트워크(72)는 유선 또는 무선 네트워크, 사설 또는 공공 네트워크, 로컬 영역 네트워크(LAN), 원근거리 네트워크(WLAN: wide local area network) 및 인터넷을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 네트워크일 수 있다. 네트워크 인터페이스 디바이스(들)(68)는 원하는 임의의 타입의 통신 프로토콜을 지원하도록 구성될 수 있다. 본 명세서에서 논의된 바와 같이, CPU(들)(50)는 또한, 하나 또는 둘 이상의 캐시 라이트 정책 매니저들(12)을 포함할 수 있다. 도 6에 예시된 바와 같이, 하나 또는 둘 이상의 캐시 라이트 정책 매니저들(12)은 캐시(들)(53)에 통합될 수 있고 그리고/또는 프로세서(들)(52)에 통합될 수 있다. 도 6에 또한 예시된 바와 같이, 하나 또는 둘 이상의 캐시 라이트 정책 매니저들(12)은 또한, 캐시(들)(53) 및/또는 프로세서(들)(52)와 개별적으로 CPU(들)(50)에서 제공될 수 있다. 예를 들어, 하나 또는 둘 이상의 개별적으로-제공된 캐시 라이트 정책 매니저들(12)은 CPU(들)(50)의 하이퍼바이저(44) 및/또는 PMU(46)에 통합되어 제공될 수 있다.
CPU(50)는 또한, 하나 또는 둘 이상의 디스플레이들(74)에 전송된 정보를 제어하기 위해서 시스템 버스(58)를 통해 디스플레이 제어기(들)(70)에 액세스하도록 구성될 수 있다. 디스플레이 제어기(들)(70)는 디스플레이될 정보를 디스플레이(들)(74)에 적합한 포맷으로 프로세싱하는 하나 또는 둘 이상의 비디오 프로세서들(76)을 통해 디스플레이될 정보를 디스플레이(들)(74)에 전송한다. 디스플레이(들)(74)는 캐소드 레이 튜브(CRT: cathode ray tube), 액정 디스플레이(LCD: liquid crystal display), 플라즈마 디스플레이 등을 포함하는(그러나, 이들에 한정되지 않음) 임의의 타입의 디스플레이를 포함할 수 있다. 시스템 메모리(62)는 프로세서-기반 시스템(48)의 메모리(78)에 액세스하기 위한 메모리 제어기(60)를 포함할 수 있다. 메모리(78)는 비-일시적 컴퓨터 판독가능한 매체를 포함할 수 있다. 컴퓨터 판독가능한 매체는 프로세서(들)(52)로 하여금, 본 명세서에 설명되는, 복수의 캐시들(53) 중 하나 또는 둘 이상에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법들을 구현하게 하기 위한 컴퓨터 실행가능한 명령들을 저장할 수 있다. 이와 관련하여, 메모리(78)는 프로그램 저장(80) 및/또는 데이터 저장(82)을 포함할 수 있다.
당업자들은 본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들, 회로들 및 알고리즘들이 전자 하드웨어, 메모리 또는 다른 컴퓨터 판독가능한 매체에 저장되어 프로세서 또는 다른 프로세싱 디바이스에 의해 실행되는 명령들, 또는 이 둘의 결합들로서 구현될 수 있다는 것을 추가로 인식할 것이다. 본 명세서에 설명된 캐시 라이트 정책 매니저(들), 캐시 제어기(들) 및/또는 캐시(들)는 예들로서, 임의의 회로, 하드웨어 컴포넌트, 집적 회로(IC) 또는 IC 칩에서 사용될 수 있다. 본 명세서에 개시되는 메모리는 임의의 타입 및 크기의 메모리일 수 있으며, 원하는 임의의 타입의 정보를 저장하도록 구성될 수 있다. 이러한 상호교환가능성을 명백하게 예시하기 위해서, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들 및 단계들이 일반적으로 그들의 기능에 관하여 위에서 설명되었다. 이러한 기능이 어떻게 구현되는지는 특정 애플리케이션, 설계 선택들 및/또는 전체 시스템에 부과되는 설계 제약들에 의존한다. 당업자들은 각각의 특정 애플리케이션에 대하여 다양한 방식들로, 설명된 기능을 구현할 수 있지만, 이러한 구현 결정들이 본 발명의 범위로부터의 이탈을 야기하게 하는 것으로 해석되어서는 안 된다.
본 명세서에 개시되는 실시예들과 관련하여 설명되는 다양한 예시적인 논리 블록들, 모듈들 및 회로들은 프로세서, 디지털 신호 프로세서(DSP), 주문형 집적 회로(ASIC), 필드 프로그래머블 게이트 어레이(FPGA) 또는 다른 프로그래머블 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들, 또는 본 명세서에 설명되는 기능들을 수행하도록 설계되는 이들의 임의의 결합으로 구현 또는 수행될 수 있다. 프로세싱 코어(본 명세서에 코어, 프로세싱 코어 및/또는 프로세서라 또한 칭해짐)는 마이크로프로세서일 수 있지만 대안적으로, 프로세싱 코어는 임의의 종래의 프로세서, 제어기, 마이크로제어기 또는 상태 머신일 수 있다. 프로세싱 코어는 또한 컴퓨팅 디바이스들의 결합 예를 들어, DSP 및 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합한 하나 또는 둘 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성으로 구현될 수 있다.
본 명세서에 개시되는 실시예들은 하드웨어에 저장된 명령들에서 그리고 하드웨어에서 구현될 수 있으며, 예를 들어, 랜덤 액세스 메모리(RAM), 플래쉬 메모리, 판독 전용 메모리(ROM), 전기적 프로그래머블 ROM(EPROM), 전기적 삭제가능한 프로그래머블 ROM(EEPROM), 레지스터들, 하드 디스크, 이동식(removable) 디스크, CD-ROM 또는 당해 기술분야에 알려져 있는 임의의 다른 형태의 컴퓨터 판독가능한 매체 내에 상주할 수 있다. 예시적인 저장 매체는 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안적으로, 저장 매체는 프로세서에 통합될 수 있다. 프로세서 및 저장 매체는 ASIC 내에 상주할 수 있다. ASIC는 원격국 내에 상주할 수 있다. 대안적으로, 프로세서 및 저장 매체는 원격국, 기지국 또는 서버에 개별 컴포넌트들로서 상주할 수 있다.
또한, 본 명세서에서의 예시적인 실시예들 중 임의의 것에서 설명되는 동작 단계들이 예들 및 논의를 제공하기 위해서 설명된다는 점에 주목하여야 한다. 설명되는 동작들은 예시되는 시퀀스들 외에 다수의 상이한 시퀀스들에서 수행될 수 있다. 또한, 단일 동작 단계에서 설명되는 동작들은 실제로 다수의 상이한 단계들에서 수행될 수 있다. 추가적으로, 예시적인 실시예들에서 논의되는 하나 또는 둘 이상의 동작 단계들이 결합될 수 있다. 흐름도들에 예시되는 동작 단계들은 당업자에게 용이하게 명백할 것과 같이 다수의 상이한 변경들이 취해질 수 있다는 것이 이해될 것이다. 당업자들은 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 것을 사용하여 표현될 수 있다는 것을 이해할 것이다. 예를 들어, 위의 설명의 전체에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 입자들, 광 필드들 또는 입자들 또는 이들의 임의의 결합으로 표현될 수 있다.
본 개시의 이전의 설명은 임의의 당업자가 본 개시를 실시하거나 또는 이용할 수 있도록 제공된다. 본 개시에 대한 다양한 변경들은 당업자들에게 용이하게 명백할 것이고, 본 명세서에서 정의되는 일반적인 원리들은 본 개시의 사상 또는 범위로부터 벗어나지 않고 다른 변화들에 적용될 수 있다. 따라서, 본 개시는 본 명세서에 설명되는 예들 및 설계들에 한정되는 것으로 의도된 것이 아니라, 본 명세서에 개시되는 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 따를 것이다.

Claims (23)

  1. 캐시 라이트(write) 정책 매니저로서,
    복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하고;
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하고; 그리고
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성되는,
    캐시 라이트 정책 매니저.
  2. 제 1 항에 있어서,
    상기 복수의 병렬 캐시들 사이의 다른 캐시들 모두가 비활성이 될 때, 상기 라이트-백 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성되는,
    캐시 라이트 정책 매니저.
  3. 제 1 항에 있어서,
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성화되면, 모든 더티 캐시 라인들을 클린하도록 상기 활성 캐시에 명령하도록 추가로 구성되는,
    캐시 라이트 정책 매니저.
  4. 제 3 항에 있어서,
    임의의 더티 캐시 라인들에 의해 저장된 데이터를 공유 메모리에 라이트(write)하도록 상기 활성 캐시에 명령함으로써, 모든 더티 캐시 라인들을 클린하도록 상기 활성 캐시에 명령하도록 구성되는,
    캐시 라이트 정책 매니저.
  5. 제 1 항에 있어서,
    상기 하나 또는 둘 이상의 다른 캐시들 중 임의의 것에 액세스하도록 구성되는 하나 또는 둘 이상의 프로세서 코어들 중 임의의 것에 전력이 공급되는지 여부를 결정함으로써, 상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성인지 여부를 결정하도록 구성되는,
    캐시 라이트 정책 매니저.
  6. 제 1 항에 있어서,
    상기 하나 또는 둘 이상의 다른 캐시들 중 임의의 것에 액세스하도록 구성되는 하나 또는 둘 이상의 프로세서 코어들 모두에 전력이 공급되지 않는지 여부를 결정함으로써, 상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아닌지 여부를 결정하도록 구성되는,
    캐시 라이트 정책 매니저.
  7. 제 1 항에 있어서,
    상기 활성 캐시는 디폴트 정책으로서 상기 라이트-쓰루 캐시 정책을 적용하도록 구성되는,
    캐시 라이트 정책 매니저.
  8. 제 1 항에 있어서,
    프로세싱 코어, 하이퍼바이저 및 전력 관리 유닛(PMU: power management unit) 중 적어도 하나로 통합되는,
    캐시 라이트 정책 매니저.
  9. 제 1 항에 있어서,
    반도체 다이로 통합되는,
    캐시 라이트 정책 매니저.
  10. 제 1 항에 있어서,
    상기 캐시 라이트 정책 매니저가 통합되는, 셋탑 박스, 엔터테인먼트 유닛, 네비게이션 디바이스, 통신 디바이스, 고정 위치 데이터 유닛, 모바일 위치 데이터 유닛, 모바일 폰, 셀룰러 폰, 컴퓨터, 휴대용 컴퓨터, 데스크탑 컴퓨터, 개인용 디지털 보조기(PDA), 모니터, 컴퓨터 모니터, 텔레비전, 튜너, 라디오, 위성 라디오, 뮤직 플레이어, 디지털 뮤직 플레이어, 휴대용 뮤직 플레이어, 디지털 비디오 플레이어, 비디오 플레이어, 디지털 비디오 디스크(DVD) 플레이어 및 휴대용 디지털 비디오 플레이어로 구성되는 그룹으로부터 선택된 디바이스를 더 포함하는,
    캐시 라이트 정책 매니저.
  11. 캐시에 대한 하이브리드 라이트-쓰루(write-through)/라이트-백(write-back) 캐시 정책에 제공하기 위한 수단으로서,
    복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하기 위한 수단;
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하기 위한 수단; 및
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하기 위한 수단을 포함하는,
    캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책에 제공하기 위한 수단.
  12. 캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법으로서,
    복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하는 단계;
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하는 단계; 및
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하는 단계를 포함하는,
    캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법.
  13. 제 12 항에 있어서,
    모든 더티 캐시 라인들을 클린하도록 상기 활성 캐시에 명령하는 단계는 임의의 더티 캐시 라인들에 의해 저장된 데이터를 공유 메모리에 라이트하도록 상기 활성 캐시에 명령하는 단계를 포함하는,
    캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법.
  14. 제 12 항에 있어서,
    상기 하나 또는 둘 이상의 다른 캐시들 중 임의의 것에 액세스하도록 구성되는 하나 또는 둘 이상의 프로세서 코어들 중 임의의 것에 전력이 공급되는지 여부를 결정함으로써, 상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성인지 여부를 결정하는 단계를 포함하는,
    캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법.
  15. 제 12 항에 있어서,
    상기 하나 또는 둘 이상의 다른 캐시들 중 임의의 것에 액세스하도록 구성되는 하나 또는 둘 이상의 프로세서 코어들 모두에 전력이 공급되지 않는지 여부를 결정함으로써, 상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 프로세서 코어들 모두가 활성이 아닌지 여부를 결정하는 단계를 포함하는,
    캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법.
  16. 제 12 항에 있어서,
    디폴트 정책으로서 상기 라이트-쓰루 캐시 정책을 적용하도록 상기 활성 캐시에 명령하는 단계를 더 포함하는,
    캐시에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법.
  17. 캐시로서,
    캐시 메모리; 및
    상기 캐시 메모리의 캐시 라이트 정책을 셋팅하도록 구성되는 캐시 제어기를 포함하고,
    상기 캐시 제어기는,
    복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라는 표시의 수신에 응답하여 상기 캐시 메모리에 대한 라이트-백 캐시 정책을 셋팅하고; 그리고
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이라는 표시의 수신에 응답하여, 상기 캐시 메모리에 대한 라이트-쓰루 캐시 정책을 셋팅하도록 추가로 구성되는,
    캐시.
  18. 제 17 항에 있어서,
    상기 캐시 제어기는, 상기 복수의 병렬 캐시들 사이의 상기 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성화된다는 표시의 수신에 응답하여, 상기 캐시 메모리의 모든 더티 캐시 라인들을 클린하도록 추가로 구성되는,
    캐시.
  19. 제 18 항에 있어서,
    상기 캐시 제어기는, 상기 캐시 메모리의 임의의 더티 캐시 라인들에 의해 저장된 데이터를 공유 메모리에 라이트함으로써, 상기 캐시 메모리의 모든 더티 캐시 라인들을 클린하도록 구성되는,
    캐시.
  20. 멀티프로세서 시스템으로서,
    복수의 병렬 캐시들;
    상기 복수의 병렬 캐시들에 의해 공유된 공유 메모리; 및
    캐시 라이트 정책 매니저를 포함하고,
    상기 캐시 라이트 정책 매니저는,
    상기 복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하고;
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하고; 그리고
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하도록 구성되는,
    멀티프로세서 시스템.
  21. 제 20 항에 있어서,
    상기 공유 메모리는, 공유 캐시 및 메인 메모리 중 적어도 하나인,
    멀티프로세서 시스템.
  22. 프로세서로 하여금 복수의 병렬 캐시들에 대한 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법을 구현하게 하기 위한 컴퓨터 실행가능한 명령들이 저장된 비-일시적 컴퓨터 판독가능한 매체로서,
    상기 방법은,
    복수의 병렬 캐시들 사이의 적어도 2개의 캐시들이 활성인지 여부를 결정하는 단계;
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 모두가 활성이 아니라면, 라이트-백 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하는 단계; 및
    상기 복수의 병렬 캐시들 사이의 하나 또는 둘 이상의 다른 캐시들 중 임의의 것이 활성이면, 라이트-쓰루 캐시 정책을 적용하도록 상기 복수의 병렬 캐시들 사이의 활성 캐시에 명령하는 단계를 포함하는,
    비-일시적 컴퓨터 판독가능한 매체.
  23. 제 22 항에 있어서,
    상기 프로세서에 의해 실행되는 하이퍼바이저로 하여금 상기 복수의 병렬 캐시들에 대한 상기 하이브리드 라이트-쓰루/라이트-백 캐시 정책을 제공하기 위한 방법을 구현하게 하도록 구성되는,
    비-일시적 컴퓨터 판독가능한 매체.
KR1020147022679A 2012-01-16 2013-01-16 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들 KR101747894B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261586937P 2012-01-16 2012-01-16
US61/586,937 2012-01-16
US13/470,643 2012-05-14
US13/470,643 US10025711B2 (en) 2012-01-16 2012-05-14 Hybrid write-through/write-back cache policy managers, and related systems and methods
PCT/US2013/021774 WO2013109648A1 (en) 2012-01-16 2013-01-16 Hybrid write-through/write-back cache policy managers, and related systems and methods

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177002768A Division KR20170016995A (ko) 2012-01-16 2013-01-16 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들

Publications (2)

Publication Number Publication Date
KR20140116495A true KR20140116495A (ko) 2014-10-02
KR101747894B1 KR101747894B1 (ko) 2017-06-15

Family

ID=48780824

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177002768A KR20170016995A (ko) 2012-01-16 2013-01-16 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들
KR1020147022679A KR101747894B1 (ko) 2012-01-16 2013-01-16 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020177002768A KR20170016995A (ko) 2012-01-16 2013-01-16 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들

Country Status (9)

Country Link
US (1) US10025711B2 (ko)
EP (1) EP2805243B1 (ko)
JP (1) JP5960842B2 (ko)
KR (2) KR20170016995A (ko)
CN (1) CN104067243B (ko)
ES (1) ES2573284T3 (ko)
HU (1) HUE028928T2 (ko)
TW (1) TWI489277B (ko)
WO (1) WO2013109648A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11200171B2 (en) 2018-11-14 2021-12-14 SK Hynix Inc. Memory systems having a cache system and a host controller having a host queue

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372803B2 (en) * 2012-12-20 2016-06-21 Advanced Micro Devices, Inc. Method and system for shutting down active core based caches
US9442849B2 (en) * 2012-12-29 2016-09-13 Intel Corporation Apparatus and method for reduced core entry into a power state having a powered down core cache
US10216640B2 (en) 2014-03-21 2019-02-26 Samsung Electronics Co., Ltd. Opportunistic cache injection of data into lower latency levels of the cache hierarchy
US9594628B2 (en) 2014-07-30 2017-03-14 Segate Technology Llc Operational vibration compensation through media cache management
US9740426B2 (en) * 2014-09-19 2017-08-22 Lenovo (Singapore) Pte. Ltd. Drive array policy control
US10019362B1 (en) * 2015-05-06 2018-07-10 American Megatrends, Inc. Systems, devices and methods using solid state devices as a caching medium with adaptive striping and mirroring regions
US10108344B1 (en) 2015-05-06 2018-10-23 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with an SSD filtering or SSD pre-fetch algorithm
US10089227B1 (en) 2015-05-06 2018-10-02 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a write cache flushing algorithm
US10055354B1 (en) 2015-05-07 2018-08-21 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a hashing algorithm to maintain sibling proximity
US10114566B1 (en) 2015-05-07 2018-10-30 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a read-modify-write offload algorithm to assist snapshots
US10176103B1 (en) 2015-05-07 2019-01-08 American Megatrends, Inc. Systems, devices and methods using a solid state device as a caching medium with a cache replacement algorithm
CN105740170B (zh) * 2016-01-22 2020-12-04 浪潮(北京)电子信息产业有限公司 一种缓存脏页刷写方法及装置
US9990286B1 (en) * 2017-05-05 2018-06-05 Honeywell International, Inc. Memory tracking using copy-back cache for 1:1 device redundancy
KR102430983B1 (ko) * 2017-09-22 2022-08-09 삼성전자주식회사 스토리지 장치 및 그 동작 방법
KR20190067370A (ko) * 2017-12-07 2019-06-17 에스케이하이닉스 주식회사 데이터 저장 장치 및 동작 방법, 이를 포함하는 스토리지 시스템
CN108052414B (zh) * 2017-12-28 2021-09-17 湖南国科微电子股份有限公司 一种提升ssd工作温度范围的方法及系统
TWI681293B (zh) * 2018-01-10 2020-01-01 瑞昱半導體股份有限公司 暫存記憶體處理方法、暫存記憶體程式與記憶裝置
JP6995644B2 (ja) * 2018-01-23 2022-01-14 日立Astemo株式会社 電子制御装置
KR102052312B1 (ko) * 2018-05-08 2019-12-05 주식회사 애포샤 캐싱 장치 및 방법
KR20210034372A (ko) 2019-09-20 2021-03-30 주식회사 엘지화학 배터리 관리 장치 및 방법
KR20210066631A (ko) 2019-11-28 2021-06-07 삼성전자주식회사 메모리에 데이터를 기입하기 위한 장치 및 방법
US11023375B1 (en) * 2020-02-21 2021-06-01 SiFive, Inc. Data cache with hybrid writeback and writethrough
US11567873B1 (en) * 2021-09-27 2023-01-31 Sap Se Extended cache for efficient object store access by a database
KR102641481B1 (ko) 2023-04-19 2024-02-28 메티스엑스 주식회사 멀티프로세서 시스템 및 이의 데이터 관리 방법
KR102570030B1 (ko) * 2023-04-19 2023-08-28 메티스엑스 주식회사 멀티프로세서 시스템 및 이의 데이터 관리 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01266643A (ja) * 1988-04-18 1989-10-24 Nippon Telegr & Teleph Corp <Ntt> キャッシュ制御方式
JP2533612B2 (ja) 1988-05-16 1996-09-11 富士通株式会社 メモリのデ―タ保護方式
JPH04347749A (ja) * 1991-05-24 1992-12-02 Nec Corp 情報処理装置
US5301298A (en) 1991-10-11 1994-04-05 Intel Corporation Processor for multiple cache coherent protocols
US5522057A (en) 1993-10-25 1996-05-28 Intel Corporation Hybrid write back/write through cache having a streamlined four state cache coherency protocol for uniprocessor computer systems
US6052789A (en) 1994-03-02 2000-04-18 Packard Bell Nec, Inc. Power management architecture for a reconfigurable write-back cache
JPH0883215A (ja) * 1994-09-12 1996-03-26 Hitachi Ltd メモリ制御装置
US6571324B1 (en) * 1997-06-26 2003-05-27 Hewlett-Packard Development Company, L.P. Warmswap of failed memory modules and data reconstruction in a mirrored writeback cache system
US6711691B1 (en) 1999-05-13 2004-03-23 Apple Computer, Inc. Power management for computer systems
US6725342B1 (en) * 2000-09-26 2004-04-20 Intel Corporation Non-volatile mass storage cache coherency apparatus
US7127560B2 (en) 2003-10-14 2006-10-24 International Business Machines Corporation Method of dynamically controlling cache size
US7173863B2 (en) * 2004-03-08 2007-02-06 Sandisk Corporation Flash controller cache architecture
US20080008256A1 (en) * 2004-08-02 2008-01-10 Matshushita Electric Industrial Co., Ltd. Ofdm Transmitting Apparatus, Ofdm Receiving Apparatus, and Their Methods
US7624236B2 (en) 2004-12-27 2009-11-24 Intel Corporation Predictive early write-back of owned cache blocks in a shared memory computer system
US7849350B2 (en) * 2006-09-28 2010-12-07 Emc Corporation Responding to a storage processor failure with continued write caching
US7730248B2 (en) * 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
US8145932B2 (en) * 2008-06-30 2012-03-27 Dell Products L.P. Systems, methods and media for reducing power consumption in multiple controller information handling systems
US8161247B2 (en) * 2009-06-26 2012-04-17 Microsoft Corporation Wait loss synchronization
US8751833B2 (en) 2010-04-30 2014-06-10 Arm Limited Data processing system
US8707096B2 (en) * 2011-10-12 2014-04-22 Hitachi, Ltd. Storage system, data backup method, and system restarting method of a storage system incorporating volatile and nonvolatile memory devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11200171B2 (en) 2018-11-14 2021-12-14 SK Hynix Inc. Memory systems having a cache system and a host controller having a host queue

Also Published As

Publication number Publication date
HUE028928T2 (en) 2017-01-30
KR101747894B1 (ko) 2017-06-15
US20130185511A1 (en) 2013-07-18
WO2013109648A1 (en) 2013-07-25
ES2573284T3 (es) 2016-06-07
EP2805243B1 (en) 2016-03-23
KR20170016995A (ko) 2017-02-14
JP5960842B2 (ja) 2016-08-02
CN104067243B (zh) 2017-09-12
TW201342062A (zh) 2013-10-16
US10025711B2 (en) 2018-07-17
JP2015503816A (ja) 2015-02-02
EP2805243A1 (en) 2014-11-26
TWI489277B (zh) 2015-06-21
CN104067243A (zh) 2014-09-24

Similar Documents

Publication Publication Date Title
KR101747894B1 (ko) 하이브리드 동시 기록/후기록 캐시 정책 매니저들, 및 관련 시스템들 및 방법들
TWI643125B (zh) 多處理器系統及快取共用方法
JP5367899B2 (ja) 低電力モード中にキャッシュされた情報を保存する技術
EP2476037B1 (en) Managing resources to facilitate altering the number of active processors
US10539997B2 (en) Ultra-low-power design memory power reduction scheme
WO2013062714A1 (en) Enabling a non-core domain to control memory bandwidth
JP6151465B1 (ja) プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニット、ならびに関連する方法およびシステム
DE102021117226A1 (de) Konfigurierbarer reduzierter speicherstart
US9823730B2 (en) Power management of cache duplicate tags
US10318428B2 (en) Power aware hash function for cache memory mapping
EP4022446A1 (en) Memory sharing
EP3420460B1 (en) Providing scalable dynamic random access memory (dram) cache management using dram cache indicator caches
US20140351546A1 (en) Method and apparatus for mapping a physical memory having a plurality of memory regions
US11467621B2 (en) Computer processing unit intra-frame clock and voltage scaling based on graphics application awareness
US10482016B2 (en) Providing private cache allocation for power-collapsed processor cores in processor-based systems
US20140281234A1 (en) Serving memory requests in cache coherent heterogeneous systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J301 Trial decision

Free format text: TRIAL NUMBER: 2017101000519; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20170131

Effective date: 20170428

S901 Examination by remand of revocation
GRNT Written decision to grant