KR20100021003A - 저 전력 모드 동안 캐시된 정보를 유지하는 방법, 장치, 시스템 및 기계 판독 가능한 매체 - Google Patents
저 전력 모드 동안 캐시된 정보를 유지하는 방법, 장치, 시스템 및 기계 판독 가능한 매체 Download PDFInfo
- Publication number
- KR20100021003A KR20100021003A KR1020107001251A KR20107001251A KR20100021003A KR 20100021003 A KR20100021003 A KR 20100021003A KR 1020107001251 A KR1020107001251 A KR 1020107001251A KR 20107001251 A KR20107001251 A KR 20107001251A KR 20100021003 A KR20100021003 A KR 20100021003A
- Authority
- KR
- South Korea
- Prior art keywords
- processor
- cache
- low power
- power mode
- processor core
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 38
- 230000015654 memory Effects 0.000 claims description 56
- 230000004044 response Effects 0.000 claims description 5
- 239000008358 core component Substances 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 5
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000306 component Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3287—Power saving characterised by the action undertaken by switching off individual functional units in the computer system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0811—Multiuser, multiprocessor or multiprocessing cache systems with multilevel cache hierarchies
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/084—Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0815—Cache consistency protocols
- G06F12/0831—Cache consistency protocols using a bus scheme, e.g. with bus monitoring or watching means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
- G06F2212/1024—Latency reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1048—Scalability
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Power Sources (AREA)
Abstract
본 발명은 적어도 일실시예에 따른 저 전력 모드 동안 캐시된 정보를 유지하는 기법을 제공한다. 일실시예에서, 프로세서의 로컬 캐시에 저장된 정보는 프로세서가 저 전력 모드로 되기 전에 공유 캐시에 저장되며, 따라서 저 전력 모드 프로세서가 저 전력 모드로부터 자신의 로컬 캐시에 대한 액세스를 제공하게 하는 대신에, 다른 프로세서들이 공유 캐시로부터의 정보에 액세스할 수 있다.
Description
본 발명의 실시예는 일반적으로 정보 처리 분야에 관한 것으로, 보다 구체적으로는 컴퓨팅 시스템 및 마이크로프로세서에서의 전력 관리 분야에 관한 것이다.
일부 마이크로프로세서 및/또는 프로세서 코어(본 명세서에서는 일반적으로 "프로세서"라 함)는 레벨 1("L1") 캐시와 같은 주 캐시 메모리(primary cache memory) 또는 프로세서가 프로세서 또는 컴퓨팅 시스템 내의 다른 메모리 구조들에 비해 상대적으로 빨리 데이터 또는 인스트럭션과 같은 빈번하게 액세스되는 정보를 검색할 수 있게 하는 기타 메모리 구조를 포함하거나 또는 이들에 액세스할 수 있다. 또한, 일부 프로세서는 레벨 2("L2") 캐시 메모리와 같은 부 캐시 메모리(secondary cache memory) 또는 주 캐시 메모리보다는 빠르지 않지만 DRAM(dynamic random access memory), 하드 드라이브 메모리 등과 같은 시스템 메모리보다는 빨리 데이터 또는 인스트럭션과 같은 덜 빈번하게 액세스되는 정보를 검색할 수 있게 하는 기타 메모리 구조를 포함하거나 또는 이들에 액세스 할 수 있다.
일부 컴퓨터 시스템은 각각이, 대응 프로세서에 의해 주로 사용되는 정보를 저장하는 L1 캐시와 같은 로컬 캐시 메모리를 포함하거나 또는 이들 메모리에 액세스할 수 있는 프로세서들을 포함할 수 있다. 또한, 일부 컴퓨터 시스템은 하나보다 많은 프로세서에 의해 사용될 수 있는 L2 캐시와 같은 공유 캐시 메모리를 포함할 수 있다. 공유 캐시 메모리를 구비한 컴퓨터 시스템에서는, 공유 캐시 메모리가 각각의 로컬 캐시 메모리에 저장된 정보의 전부 또는 일부를 저장할 수 있으며, 따라서 복수의 로컬 캐시 메모리가 공유 캐시 메모리에 저장된 빈번하게 사용된 정보의 서브세트를 저장한다. 로컬 캐시 메모리에 저장된 정보는 공유 캐시 메모리 내의 대응 정보보다 더 빈번하게 갱신될 수 있으며, 따라서, 컴퓨터 시스템은 캐시 일관성 기법(cache coherency scheme)을 구현하여 하나 이상의 로컬 캐시 메모리에 저장되는 것과 동일한 정보를 공유 캐시 메모리에 유지할 수 있다.
일부 컴퓨터 시스템은 전력 관리 기법을 사용하여, 특정 프로세서가 사용되지 않는 경우 또는 프로세서 또는 컴퓨터 시스템의 온도를 감시하여 임계 온도를 초과하지 않도록 하는 것과 같은 다른 알고리즘에 응답하여, 시스템 내의 하나 이상의 프로세서에 대한 클록 주파수 및/또는 전압의 감소를 통해 시스템 내의 프로세서들을 저 전력 모드로 할 수 있다. 저 전력 모드로 된 프로세서들은, 예컨대 로컬 캐시에 대한 전력을 유지함으로써 저 전력 모드 동안 이들의 대응 로컬 캐시 메모리에 저장된 정보를 유지할 수 있으며, 따라서 프로세서가 저 전력 모드로부터 복귀할 때 이들 정보를 이용할 수 있다.
저 전력 모드 동안 캐시된 정보를 유지하는 종래기술의 한가지 단점은, 예를 들어 "스누프(snoop)" 사이클을 통해 저 전력 모드에서 프로세서의 캐시에 액세스할 수 있는 프로세서가, 저 전력 모드 상태의 프로세서가 저 전력 모드로부터 복귀하여 다른 프로세서에 의한 액세스에 응답할 수 있을 때까지 기다려야 할 수도 있다는 것이다. 저 전력 모드 프로세서의 캐시에 대한 액세스 시점과 요구된 데이터가 검색되는 시점 또는 저 전력 모드 프로세서의 캐시에 존재하지 않는 것으로 판정되는 시점 사이의 지연은 대응 컴퓨터 시스템의 성능을 크게 떨어뜨릴 수 있다. 이 문제는, 프로세서의 수가 증가할 때, 저 전력 모드 상태에 있을 수 있는 프로세서의 수 및 이들 프로세서에 대한 액세스의 수가 증가하므로, 악화될 수 있다. 또한, 컴퓨터 시스템은 특히 요구된 정보가 저 전력 모드 상태의 프로세서의 로컬 캐시에 존재하지 않는 것으로 판정될 경우에 불필요하게 전력을 소모할 수도 있다.
도 1은 본 발명의 적어도 일실시예가 사용될 수 있는 멀티코어 마이크로프로세서의 블록도.
도 2는 본 발명의 적어도 일실시예가 사용될 수 있는 공유형 버스 컴퓨터 시스템의 블록도.
도 3은 본 발명의 적어도 일실시예가 사용될 수 있는 점대점(point-to-point) 상호접속 컴퓨터 시스템의 블록도.
도 4는 본 발명의 적어도 일실시예가 사용될 수 있는 깅 기반 멀티코어 마이크로프로세서의 블록도.
도 5는 본 발명의 일실시예에 따른, 저 전력 모드 동안 캐시된 정보를 유지하는데 사용될 수 있는 동작 순서도.
도 2는 본 발명의 적어도 일실시예가 사용될 수 있는 공유형 버스 컴퓨터 시스템의 블록도.
도 3은 본 발명의 적어도 일실시예가 사용될 수 있는 점대점(point-to-point) 상호접속 컴퓨터 시스템의 블록도.
도 4는 본 발명의 적어도 일실시예가 사용될 수 있는 깅 기반 멀티코어 마이크로프로세서의 블록도.
도 5는 본 발명의 일실시예에 따른, 저 전력 모드 동안 캐시된 정보를 유지하는데 사용될 수 있는 동작 순서도.
이하, 예를 통해 본 발명의 실시예를 설명한다. 도면에서 유사 참조번호는 유사한 요소를 나타낸다.
컴퓨터 시스템 내에서 저 전력 모드 동안에 캐시된 정보를 유지하는 적어도 하나의 기법을 설명한다. 이하의 설명에서는, 설명의 목적으로, 본 발명의 철저한 이해를 위해 다수의 특정 세부사항을 설명한다. 그러나, 본 발명의 실시예는 이들 특정 세부사항없이도 실시할 수 있음이 당업자에게는 명백할 것이다.
일반적으로, 본 명세서에 개시된 실시예는 복수의 마이크로프로세서, 복수의 프로세서 코어를 갖는 단일 마이크로프로세서 또는 복수의 프로세서 코어를 각각 갖는 복수의 프로세서를 포함하는 임의의 수의 멀티프로세서 시스템에 적용될 수 있다. 단순화를 위해, 마이크로프로세서 및 마이크로프로세서 코어는 일반적으로 본 명세서에서 "프로세서"라고 지칭한다. 또한, 주 캐시(즉, 프로세서에 의해 가장 빈번하게 사용된 정보를 저장하는데 사용되는 캐시)를 총칭하여 본 명세서에서는 "로컬 캐시"라고 지칭하고, 둘 이상의 프로세서의 주 캐시에 저장된 적어도 일부 정보를 저장하는데 사용되는 부 캐시(즉, L2 캐시, L3 캐시 등과 같이 지역 캐시보다 덜 빈번하게 사용된 정보를 저장하는데 사용되는 캐시)를 총칭하여 본 명세서에서는 "공유 캐시(shared cache)"라고 지칭한다. 마지막으로, 하나 이상의 프로세서 클록이 유휴 상태이거나, 중지 또는 정지되거나 또는 최대 동작 주파수 이하로 감소되고/또는 하나 이상의 프로세서 전압이 최대 동작 전압보다 낮게 감소되는 상태를 포함하여 프로세서가 동작할 수 있는 전압 및/또는 주파수 상태를 총칭하여 본 명세서에서는 "전력 모드"라고 지칭한다.
일부 실시예에서, 프로세서는 다른 프로세서들이 저 전력 모드 프로세서의 로컬 캐시로부터의 정보에 액세스를 시도하는 대신 공유 캐시로부터 요구된 정보를 검색할 수 있도록 저 전력 모드로 되기 전에 로컬 캐시에 저장된 정보를 공유 캐시 내의 대응 위치에 저장할 수 있으며, 저 전력 모드 프로세서는 다른 전력 모드가 요구될 때까지 저 전력 모드로 유지할 수 있다. 바람직하게는, 저 전력 상태의 프로세서가 저 전력 상태로부터 다른 프로세서에 의한 상기 프로세서의 로컬 캐시로의 액세스를 제공하는 상태로 복귀하기를 시스템이 기다리는 대신에, 저 전력 모드 프로세서가 저 전력 상태로 되기 전에 정보를 저장한 공유 캐시로부터 정보가 검색될 수 있기 때문에, 적어도 일실시예는 컴퓨터 시스템의 성능을 향상시킬 수 있다. 일부 실시예에서, 공유 캐시로의 액세스는 저 전력 모드의 프로세서의 로컬 캐시로의 액세스보다 더 빠르게 제공될 수 있다. 또한, 저 전력 모드의 프로세서는 저 전력 모드로부터 자신의 로컬 캐시로의 액세스를 제공하는 상태로 복귀할 필요가 없기 때문에, 적어도 일실시예는 그 일실시예가 사용되는 시스템에서 전력을 절약하는 것을 도울 수 있다.
일실시예에서, 저 전력 모드의 프로세서는 먼저 캐시 플러시(cache flush) 동작, 캐시 무효(cache invalidate) 동작, 쓰기 저장(writeback) 동작 또는 프로세서의 로컬 캐시에 저장된 정보가 공유 캐시에 저장되게 하는 다른 동작을 수행할 수 있다. 일실시예에서, 저 전력 모드는 프로세서가 저 전력 모드가 되도록 하나 이상의 클록을 턴오프하는 것을 포함할 수 있다. 다른 실시예에서, 저 전력 모드는 프로세서 또는 로컬 캐시 또는 이들 모두에 전력을 공급하는데 사용되는 하나 이상의 동작 전압을 감소시키거나 또는 제거하는 것을 포함할 수 있다. 또 다른 실시예에서는, 저 전력 모드가 프로세서에 대한 주파수와 전압 모두를 감소시키거나 또는 완전히 불능으로 할 수 있다.
도 1은 본 발명의 적어도 일실시예가 사용될 수 있는 멀티코어 마이크로프로세서를 도시한 것이다. 보다 구체적으로, 도 1은 관련 로컬 캐시(107, 113)를 각각 구비하는 적어도 2개의 프로세서 코어(105, 110)를 포함하는 마이크로프로세서(100)를 도시하고 있다. 또한 도 1에는 각각의 로컬 캐시(107, 113)에 저장된 정보의 적어도 일부의 버전들을 저장할 수 있는 공유 캐시 메모리(115)가 도시되어 있다. 일부 실시예에서는, 마이크로프로세서(100)가 집적 메모리 컨트롤러, 집적 그래픽 컨트롤러와 같은 도 1에 도시되지 않은 다른 로직 및 I/O 제어부와 같이 컴퓨터 시스템 내에서 다른 기능을 수행하는 기타 로직을 포함할 수 있다. 일실시예에서, 멀티 프로세서 시스템 내의 각각의 마이크로프로세서 또는 멀티 코어 프로세서 내의 각각의 프로세서 코어는 임의의 주어진 시간에 프로세서/코어의 전력 상태에 따라서 로컬 캐시 또는 공유 캐시에 대한 액세스를 지시하는 로직(119)을 포함하거나 또는 이 로직과 연관될 수 있다. 이러한 로직은 컴퓨터 시스템의 동작 동안에 임의의 시간에서 코어 또는 프로세서의 전력 상태를 저장하는, 비휘발성 프로그램 가능한 메모리와 같은 메모리를 포함하거나 또는 이 메모리와 연관될 수 있다. 이와 같은 실시예에서, 프로세서 또는 코어에 대한 액세스는 타겟 프로세서 또는 코어의 전력 상태와 무관하게 이루어지며, 따라서 스누프와 같은 동일한 유형의 액세스가 각각의 프로세서 또는 코어로 전송될 수 있고, 타겟 프로세서 또는 코어가 프로세서 또는 코어의 전력 상태에 따라 스누프를 자신의 로컬 캐시로 제공하거나 또는 스누프를 공유 캐시에 대한 액세스(스누프 또는 다른 동작)로 전환할 수 있다.
일실시예에서는, 도 1에 도시된 프로세서들 중 하나가 저 전력 모드로 진입하기 전에 자신의 로컬 캐시에 저장된 정보의 최신 버전을 공유 캐시에 저장할 수 있다. 저 전력 모드 코어는 저 전력 모드로 진입하기 전에 로컬 캐시로부터 공유 캐시로 가장 최근의 정보를 저장하였으므로, 코어들 중 하나가 저 전력 모드에 있을 때("저 전력 모드 코어"), 다른 코어(또는 코어들)가 공유 캐시에 액세스함으로써 저 전력 모드 코어의 로컬 캐시에 저장된 정보의 최신 버전을 획득할 수도 있다. 일실시예에서는, 저 전력 모드 코어가 캐시 플러시 동작을 수행했을 수도 있는데, 여기서 저 전력 모드 코어의 로컬 캐시에 저장된 일부 또는 모든 정보가 로컬 캐시된 정보의 일부 또는 전부가 무효로되거나 저 전력 모드 코어가 저 전력 모드로 진입하기 전에 공유 캐시에 저장된다. 다른 실시예에서는, 코어의 인스트럭션 설정 아키텍처에 따라서 저 전력 모드 코어의 로컬 캐시의 정보의 일부 또는 전부를 공유 캐시에 저장하는 다른 동작이 수행될 수도 있다.
일실시예에서, 프로세서는 언제라도 하나 이상의 저 전력 모드를 포함하는 다수의 상이한 전력 상태 중 하나가 될 수 있다. 예를 들면, 프로세서는 최대 가용 전력량이 소비되는 풀 파워 컴포넌트 상태(fully powered component state)("C0"), C0 상태보다 적은 가용 전력 소비로 정의된 감소된 전력 컴포넌트 상태("C1") 또는 점진적으로 보다 낮은 가용 전력 소비로 각각 정의된 다른 저 전력 상태(예컨대, C3, C6, 등)에 있을 수 있다. 또한, 하나 이상의 프로세서의 클록 또는 전원 공급은 각 상태와 관련된 가용 전력 소비를 달성하도록 조정될 수 있다.
예를 들어, 일실시예에서, 풀 파워 C0 상태는 프로세서의 성능을 최대화하도록 하나 이상의 프로세서 클록을 주파수 범위 내에서 작동시키고 전압 범위 내에서 프로세서로의 하나 이상의 전원 공급을 작동시킴으로써 달성될 수 있다. 이러한 전력 상태는, 예컨대 프로세서 상에서 실행하는 프로그램에 의해 프로세서에 대해 많은 성능 요구가 있을 때 유용할 수 있다. 감소된 전력 상태, C1은, 전압 범위 내에서 프로세서로의 하나 이상의 전원 공급을 유지하면서, 하나 이상의 프로세서 클록을 정지시키거나 감소시킴으로써 프로세서를 유휴 상태, 정지 상태 또는 기타 저 성능 상태가 되게 함으로써 달성될 수 있다. 이러한 감소된 전력 상태에서, 프로세서는 C0 상태에서보다 낮은 전력을 소비할 수 있지만, 예를 들어 스누프 동작에 비해서는 여전히 다른 프로세서로부터의 자신의 로컬 캐시로의 액세스를 제공할 수 있다.
일실시예에서, 도 1에 도시된 코어들 중 하나와 같은 프로세서는, 프로세서로의 하나 이상의 클록을 정지시키거나 감소시키고 프로세서에 공급된 하나 이상의 전원의 전압을 제거하거나 감소시켜 프로세서의 로컬 캐시에 저장된 정보가 유지되지 않게 함으로써 C0 또는 C1보다 더 낮은 전력 상태가 될 수도 있다. 도 1에서, 예컨대 코어들 중 하나는 코어로의 모든 클록이 정지하고 전원 전압이 제거되거나 또는 비활성 레벨로 낮아지는 저 전력 코어 컴포넌트 상태("CC3" 상태)가 될 수도 있다. CC3 상태에서는, 일실시예에 따라, 코어가 최소량의 전력을 소비할 수도 있고, 전혀 소비하지 않을 수도 있다. 따라서, 도 1에 도시된 프로세서 또는 코어가 CC3 상태로 되기 전에, 코어의 로컬 캐시에 저장된 적어도 임의의 변경된 정보는 공유 캐시 내의 대응 위치에 저장될 수 있다. 일실시예에서는, 변경된 정보(즉, 공유 캐시에 저장된 동일 정보의 버전보다 더 최신인 로컬 캐시 내의 정보의 버전)만이 코어가 CC3 상태로 되기 전에 공유 캐시에 저장된다. 다른 실시예에서는, 로컬 캐시의 내용이 공유 캐시 내의 가용 버전으로부터 변경되었는 지의 여부에 관계없이, 코어가 CC3 상태로 되기 전에 로컬 캐시의 전체 내용이 공유 캐시에 저장된다.
바람직하게는, 공유 캐시가 적어도 CC3 상태에 있는 코어의 로컬 캐시에 저장되어 있는 변경된 정보를 포함하기 때문에, 일실시예에서는, 액세스될 코어가 감소된 코어 컴포넌트 상태(예컨대, "CC1")에 있는 경우와 같이, CC3 코어의 캐시에 액세스하고자 시도할 수 있는 도 1에 도시된 다른 프로세서 또는 코어가 CC3 코어는 저 전력 모드로 두면서 바로 공유 캐시로부터 요구된 정보에 액세스할 수 있어, 전력을 절감할 수 있다. 또한, 일실시예에서는, CC3 코어가 자신의 저 전력 상태로부터 다른 코어 또는 프로세서로부터의 로컬 캐시에 대한 액세스를 제공하도록 복귀하지 않기 때문에, 예컨대 스누프 동작에 비해, 액세싱 프로세서 또는 코어는 액세스된 코어가 저 전력 상태로부터 요구를 제공하도록 복귀하면 기다려야되는 만큼 요구하는 정보를 기다릴 필요가 없다. 여러 실시예에서 전술한 기법들은 임의의 수의 프로세서 또는 프로세서 코어를 갖는 시스템에도 적용될 수 있다.
예컨대, 도 2는 본 발명의 일실시예가 사용될 수 있는 FSB(front-side-bus) 컴퓨터 시스템을 도시하고 있다. 임의의 프로세서(201, 205, 210 또는 215)는 프로세서 코어들(223, 227, 233, 237, 243, 247, 253, 257) 중 하나 내의 또는 이들과 연관된 임의의 로컬 레벨 1(L1) 캐시 메모리로부터의 정보에 액세스할 수 있다. 또한, 임의의 프로세서(201, 205, 210 또는 215)는 공유 레벨 2(L2) 캐시(203, 207, 213, 217) 중 어느 하나 또는 칩셋(265)을 통해 시스템 메모리(260)로부터의 정보에 액세스할 수 있다. 도 2의 프로세서들 중 하나 이상은 임의의 주어진 시간에 프로세서/코어의 전력 상태에 따라 로컬 캐시 또는 공유 캐시에 액세스하게 하는 로직(219)을 포함하거나 또는 이와 연관될 수 있다. 로직은 컴퓨터 시스템의 동작 동안 임의의 시간에 코어 또는 프로세서의 전력 상태를 저장하는 비휘발성 프로그램 가능한 메모리와 같은 메모리를 포함하거나 이와 연관될 수 있다.
도 2에 도시된 예에서, 두 코어는 프로세서(201) 내에서 활성 코어 컴포넌트 상태("CC0" 상태)에 있고, 프로세서(205) 내에서는 각각의 코어가 활성 코어(223, 227)로부터 스누프 또는 이와 유사한 동작을 제공하도록 두 코어가 CC1과 같은 감소된 전력 상태에 있다. 프로세서(210, 215)는 각각 CC3 상태와 같은 프로세서(201, 205)의 코어들보다 더 낮은 전력 모드의 코어를 각각 가지며, 따라서 로컬 캐시(243, 247, 253, 257) 내의 정보는 더 이상 가용하지 않다. 일실시예에서, 활성 코어(223 또는 227)가 프로세서(210, 215)의 코어의 로컬 캐시에 저장된 정보에 액세스하면, 이들 코어는 각각 프로세서(210, 215)의 공유된 캐시로부터 정보를 획득해야 할 것이다. 이는, 일실시예에서, 프로세서(223, 227)의 코어가 CC3 상태로 되기 전에 적어도 이들의 로컬 캐시에 저장된 정보의 변경된 버전을 이들 각각의 공유 캐시(213, 217)에 저장하였기 때문이다. 프로세서(201)의 코어로부터 요구된 정보가 공유 캐시(213, 217)에서 이용가능하지 않거나 로컬 캐시(230 또는 235)에서 이용가능하지 않으면, 프로세서(201)의 코어는 칩셋(265) 또는 하드 드라이브 또는 도 2에 도시되지 않은 다른 메모리 소스를 통해 시스템 메모리(260)로부터의 정보에 액세스하도록 해야 할 것이다.
일부 실시예에서, 도 2의 프로세서 각각의 코어는 도 2에 도시된 것과 같이 동일 전력 모드에 있지 않고 서로 다른 전력 모드에 있을 수도 있다. 일실시예에서는, 코어가 CC3 상태 또는 다른 상태에서 액세스되든간에 스누프 또는 유사한 동작을 나타내는 로직이 각각의 프로세서 또는 코어에 포함되어, 요구 코어가 액세스되는 코어의 적절한 메모리 구조(로컬 캐시 또는 공유 캐시)에 어드레스하는 적절한 트랜잭션을 발행할 수도 있다. 일부 실시예에서는, 코어 전력 상태의 표시가 컴퓨터 시스템의 BIOS에 의해 액세스가능한 테이블과 같은 소프트웨어 프로그램으로 기록되고 트래킹될 수도 있다. 예를 들면, 일실시예에서는, 코어 또는 프로세서가 전력 상태를 변경할 때마다, 이 변경이 시스템 BIOS가 판독할 수 있으며 다른 프로세서 또는 코어의 로컬 캐시에 대한 액세스를 시도할 수 있는 임의의 코어 또는 프로세서에게 통지할 수 있는 로직 또는 메모리에 저장된 테이블에 기록된다. 다른 프로세서 또는 코어의 전력 모드에 대해 액세싱 프로세서 또는 코어에게 통지함으로써, 그것은 액세스되는 대응 로컬 캐시가 CC3와 같은 감소된 전력 상태에 있을 때 공유 캐시와 같은 적절한 메모리 구조에 액세스할 수 있다. 다른 실시예에서는, 각각의 프로세서 또는 코어에 대한 전력 모드 정보가 하드웨어 로직 또는 BIOS 외의 다른 소프트웨어를 포함하는 다른 수단을 통해 변경되고 기록될 수 있다.
일부 실시예에서는, 액세스되는 프로세서 또는 코어가 액세스된 프로세서/코어의 응답을 제어하는 로직을 포함할 수도 있다. 예를 들어, 일실시예에서는, 본 명세서에 개시된 기법들을 사용하는 컴퓨터 시스템 내의 각 프로세서(또는 코어)가 임의의 주어진 시간에 프로세서의 전력 상태를 저장하는 비휘발성 프로그램 가능한 메모리와 같은 저장부를 포함할 수 있으며, 관련 로직이 다른 프로세서/코어로부터의 스누프 요구 또는 다른 유사한 동작에 응답하는 방법을 결정할 수 있다. 일실시예에서는, 예컨대 CC3 상태에 있는 프로세서 또는 코어에 대한 액세스가 프로세서 또는 코어의 로컬 캐시로부터 공유 캐시 또는 다른 L2 캐시로 전환되게 하는 저장부 및 로직이 사용될 수도 있다. 한편, 액세스되는 프로세서 또는 코어가 CC0 또는 CC1 상태(즉, CC3보다 높은 전력 상태)에 있으면, 액세스된 프로세서 또는 코어 내의 로직은 자신의 로컬 캐시가 스누핑되게 하거나 또는 다른 방식으로 액세스되게 할 수 있다. 그러한 실시예에서, 액세싱 프로세서 코어는 어떠한 프로세서의 전력 상태도 알 필요가 없고, 단순히 스누프와 같은 액세스를 임의의 다른 프로세서의 로컬 캐시에게 발행하고 액세스된 프로세서(또는 코어)는 그 시간에 자신의 전력 상태에 따라 진행할 필요가 있는 액세스를 가리킬 수 있다.
도 2에 도시된 FSB 컴퓨터 시스템 외에, P2P(point-to-point) 상호접속 시스템 및 링 상호접속 시스템을 포함한 다른 시스템 구성을 본 발명의 다양한 실시예와 함께 사용해도 된다. 예컨대, 도 3의 P2P 시스템은 여러개의 프로세서를 포함할 수 있는데, 예로서 단 2개의 프로세서(370, 380)만이 도시되어 있다. 프로세서(370, 380)는 각각 메모리(32, 34)에 접속되는 로컬 메모리 컨트롤러 허브(MCH)(372, 382)를 포함할 수 있다. 프로세서(370, 380)는 PtP(point-to-point) 인터페이스 회로(378, 388)를 사용하는 PtP 인터페이스(350)를 통해 데이터를 교환할 수 있다. 프로세서(370, 380)는 각각 PtP 인터페이스 회로(376, 394, 386, 398)를 사용하는 개별 PtP 인터페이스(352, 354)를 통해 칩셋(390)과 데이터를 교환할 수 있다. 칩셋(390)은 또한 고성능 그래픽 인터페이스(339)를 통해 고성능 그래픽 회로(338)와 데이터를 교환할 수 있다. 본 발명의 실시예는 임의의 수의 프로세싱 코어를 갖는 임의의 프로세서 또는 도 3의 각각의 PtP 버스 에이전트 내에 위치할 수 있다. 일실시예에서, 임의의 프로세서 코어는 로컬 캐시 메모리(도시되어 있지 않음)를 포함하거나 또는 이와 연관될 수 있다. 또한, 공유 캐시(도시되어 있지 않음)는 P2P 상호접속을 통해 두 프로세서 외부에 있지만 이들 프로세서에 접속되지 않은 프로세서에 포함될 수 있으며, 따라서 프로세서가 저 전력 모드에 있지 않으면 두 프로세서 또는 어느 한 프로세서의 로컬 캐시 정보가 공유 캐시에 저장될 수 있다. 도 3의 하나 이상의 프로세서 또는 코어는 임의의 주어진 시간에 프로세서/코어의 전력 상태에 따라서, 로컬 캐시 또는 공유 캐시에 대한 액세스를 제공하는 로직(319)을 포함하거나 또는 이와 연관될 수 있다. 이 로직은 컴퓨터 시스템의 동작 동안 임의의 시간에 코어 또는 프로세서의 전력 상태를 저장하는 비휘발성 프로그램 가능한 메모리와 같은 메모리를 포함하거나 이와 연관될 수 있다.
도 4는 적어도 하나의 실시예가 사용될 수 있는 링 구성으로 조직된 컴퓨터 시스템 또는 프로세서를 도시한 것이다. 도 1의 링 시스템은 동심형 링 상호접속부를 따라서 조직된 8개의 프로세서 또는 프로세서 코어(401, 405, 410, 415, 420, 425, 430, 435)를 포함하며, 여기서 각각의 프로세서 또는 코어는 링 상호접속부를 따라 다른 코어에 의해 액세스될 수 있는 대응하는 로컬 캐시를 갖는다. 도 4의 시스템 또는 프로세서는 또한, 로컬 캐시에 저장된 정보의 모든 또는 일부 버전을 저장하는 공유된 최종 레벨 캐시(LLC)(440)를 포함한다. 일실시예에서, 도 4의 프로세서들 또는 코어들 중 하나는 더 이상 프로세서의 코어의 로컬 캐시로부터 정보가 액세스될 수 없는 전력 모드에 있으면, 저 전력 모드 프로세서/코어의 로컬 캐시에 저장된 정보에 대한 액세스를 시도하는 임의의 다른 프로세서 또는 코어는 LLC로부터 이 정보에 대한 액세스를 시도해야 한다. 일실시예에서, 이 정보가 LLC에서 이용가능하지 않으면, 액세싱 프로세서 또는 코어는 메모리 컨트롤러(445)를 통해 시스템 메모리 소스(도시되어 있지 않음)로부터의 데이터에 액세스할 필요가 있을 수 있다. 도 4의 프로세서들 중 하나 이상은 임의의 주어진 시간에 프로세서/코어의 전력 상태에 따라서 로컬 캐시 또는 공유 캐시에 대한 액세스를 제공하는 로직(419)을 포함하거나 또는 이와 연관될 수 있다. 이 로직은 컴퓨터 시스템의 동작 동안 임의의 시간에 코어 또는 프로세서의 전력 상태를 저장하는 비휘발성 프로그램 가능한 메모리와 같은 메모리를 포함하거나 또는 이와 연관될 수 있다.
도 5는 실시예가 사용될 수 있는 프로세서 또는 시스템 구성에 관계없이, 본 발명의 적어도 하나의 실시예와 함께 사용될 수 있는 동작의 순서도를 도시한 것이다. 동작 501에서, 프로세서에서 예를 들어 스누프 동작 또는 기타 캐시 액세스 동작과 같은 액세스가 행해진다. 동작 505에서 액세스된 프로세서가 CC3 상태와 같은 저 전력 모드에 있으면, 동작 510에서 프로세서의 공유 캐시가 액세스된다. 액세스는 공유 캐시에 대한 스누프일 수도 있고 또는 사용된 프로토콜에 따라 스누프가 공유 캐시에 액세스하기 위한 다른 동작으로 변환될 수도 있다. 동작 515에서 요구된 정보가 공유 캐시 내에 존재하지 않으면, 동작 520에서 시스템 메모리에 대한 액세스가 이루어지고 동작 530에서 시스템 메모리로부터 정보가 반환되며, 그렇지 않으면 동작 525에서 정보가 공유 캐시로부터 반환된다.
동작 505에서 프로세서가 CC3와 같은 저 전력 모드에 있지 않으면, 동작 535에서 프로세서의 로컬 캐시가 액세스된다. 동작 540에서 정보가 로컬 캐시에서 이용가능하면, 동작 545에서 이 정보는 로컬 캐시로부터 반환된다. 그렇지 않으면, 프로세서는 동작 510으로 돌아가서 전술한 바와 같이 공유 캐시 또는 시스템 메모리로부터의 정보에 액세스한다. 일실시예에서, 액세싱 프로세서는 이들의 전력 상태에 관계없이 스누프를 시스템 내의 다른 프로세서로 송신하고 액세스된 프로세서는 액세스된 프로세서의 전력 상태에 기초하여 액세스를 로컬 캐시 또는 공유 캐시로 전송한다. 예컨대, 액세스된 프로세서가 액세스될 때 CC3 상태에 있으면, 다른 프로세서로부터의 스누프 동작이 스누프 또는 다른 동작으로서 액세스된 프로세서의 공유 캐시로 전환된다. 그렇지 않으면, 스누프 동작은 액세스된 프로세서가 로컬 캐시가 스누프되게 하는 전력 상태가 되면 액세스된 프로세서의 로컬 캐시에 대한 액세스로 될 수 있다. 다른 실시예에서는, 테이블에 표시된 전력 상태에 기초하여 프로세서의 로컬 캐시가 액세스되는지 그 공유 캐시가 액세스되는지를 판정하기 위해 다른 프로세서에 액세스하기 전에 액세싱 프로세서가 참조할 수 있는 테이블이 예컨대 BIOS를 통해 유지된다. 다른 실시예에서는, 액세스된 프로세서의 전력 상태에 기초하여 액세스가 제공되는 다른 관리 기법이 사용될 수도 있다.
본 명세서에서 설명한 실시예들은 다수의 기술을 이용하는 다수의 방법들로 구현될 수 있다. 예컨대, 적어도 하나의 실시예는 CMOS 로직으로 구현되는 반면에, 다른 실시예는 소프트웨어로 구현된다. 또 다른 실시예는 하드웨어 로직과 소프트웨어의 결합을 통해 구현된다.
일실시예에서, 루틴을 용이하게 하는데 사용된 소프트웨어가 기계 판독가능한 매체로 구현될 수 있다. 기계 판독가능한 매체는 기계(컴퓨터, 네트워크 장치, 개인용 디지털 보조장치, 제조 툴, 하나 이상의 프로세서 세트를 구비한 장치 등)에 의해 액세스 가능한 형태로 정보를 제공하는(즉, 저장 및/또는 전송) 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독가능한 매체는 기록가능/기록불가능 매체(예컨대, 펌웨어를 포함하는 판독 전용 메모리(ROM), RAM(random access memory), 자기 디스크 저장 매체, 광학 저장 매체, 플래시 메모리 디바이스 등) 및 전기, 광학, 음향 또는 기타 유형의 전파 신호(예컨대, 반송파, 적외선 신호, 디지털 신호 등) 등을 포함한다.
적어도 하나의 실시예의 하나 이상의 측면들이, 기계에 의해 판독될 때 기계로 하여금 본 명세서에 개시된 기법들을 수행하는 로직을 만들게 하는, 프로세서 내의 다양한 로직을 나타내는 기계 판독가능한 매체에 저장된 표시 데이터에 의해 구현될 수 있다. "IP 코어"로 알려져 있는 이러한 표시는 기계 판독 가능한 매체("테이프")에 저장될 수 있으며, 다양한 고객 또는 제조 설비에 공급되어 실제로 로직 또는 프로세서를 만드는 제조 기계에 로딩될 수 있다.
이상, 마이크로구성의 메모리 영역을 제공하는 방법 및 장치를 설명하였다. 상기 설명은 예시적일 뿐 제한적인 것은 아니다. 이상의 설명을 읽고 이해한 당업자는 많은 다른 실시예가 존재함을 알 수 있을 것이다. 따라서, 본 발명의 범위는 첨부한 청구범위 및 그 균등물과 관련하여 결정되어야 한다.
Claims (30)
- 적어도 제 1 프로세서 코어의 로컬 캐시 내에 저장되어 있는 변경된 정보가 공유 캐시(shared cache)에 저장되는 저 전력 모드로 되는 제 1 프로세서 코어와,
상기 제 1 프로세서 코어가 상기 저 전력 모드로 진입하기에 앞서 상기 로컬 캐시 내에서 액세스 가능한 정보를 위해 상기 공유 캐시에 액세스하는 제 2 프로세서 코어를 포함하되,
상기 제 2 프로세서 코어는 상기 제 1 프로세서 코어가 상기 저 전력 모드로 되는 것에 응답하여 상기 로컬 캐시 대신에 상기 공유 캐시에 액세스하는
장치.
- 제 1 항에 있어서,
상기 제 1 프로세서 코어는 자신이 상기 저 전력 모드로 진입하는 지를 나타내고 그에 따라 액세스를 지시하는
장치.
- 제 2 항에 있어서,
상기 제 1 프로세서 코어는 자신이 상기 저 전력 모드에 있는 지를 판정하고 상기 제 1 프로세서가 상기 저 전력 모드에 있는지의 여부에 기초하여 상기 제 1 프로세서 코어의 로컬 캐시로부터의 정보에 대한 액세스를 시도하는 로직을 포함하는
장치.
- 제 1 항에 있어서,
상기 공유 캐시는 적어도 2개의 프로세서 코어에 대응하는 적어도 2개의 로컬 캐시 내에 저장된 적어도 일부 정보를 저장하는
장치.
- 제 4 항에 있어서,
상기 로컬 캐시는 레벨 1(L1) 캐시를 포함하고, 상기 공유 캐시는 레벨 2(L2) 캐시를 포함하는
장치.
- 제 1 항에 있어서,
상기 저 전력 모드는 상기 제 1 프로세서 코어의 적어도 하나의 클록을 감소시키고 상기 제 1 프로세서 코어에 대한 전력 공급을 억제하는
장치.
- 제 1 항에 있어서,
상기 저 전력 모드는 상기 제 1 프로세서 코어가 유휴 상태(idle state)가 되게 하고 상기 제 1 프로세서 코어의 동작 전압이 실질적으로 0이 되게 하는 것을 포함하는
장치.
- 제 1 항에 있어서,
상기 로컬 캐시는 상기 저 전력 상태 진입 결과로서 플러시되는(flushed)
장치.
- 적어도 2개의 프로세서 코어 -상기 프로세서 코어 중 적어도 하나의 프로세서 코어는 상기 적어도 하나의 프로세서 코어의 로컬 캐시에 저장된 정보가 더 이상 액세스 가능하지 않는 저 전력 모드로 진입함- 를 구비한 제 1 프로세서와,
상기 적어도 하나의 프로세서 코어가 상기 저 전력 모드에 있으면 공유 캐시 -상기 공유 캐시는 상기 적어도 2개의 프로세서 코어의 로컬 캐시 각각에 저장된 정보의 버전을 저장함- 로부터의 정보에 액세스하는 적어도 하나의 프로세서 코어를 구비하는 제 2 프로세서와,
상기 공유 캐시에 저장된 정보의 버전을 저장하는 시스템 메모리와,
메모리 컨트롤러 -상기 메모리 컨트롤러를 통해 상기 제 2 프로세서의 적어도 하나의 프로세서 코어가 상기 시스템 메모리에 액세스함- 를 포함하는
시스템.
- 제 9 항에 있어서,
상기 제 1 프로세서의 적어도 하나의 프로세서 코어의 전력 상태를 저장하는 비휘발성 메모리를 더 포함하는
시스템.
- 제 10 항에 있어서,
상기 제 2 프로세서의 적어도 하나의 프로세서 코어는 상기 제 1 프로세서의 적어도 하나의 프로세서 코어가 어떠한 전력 상태에 있는지에 관계없이 상기 제 1 프로세서의 적어도 하나의 프로세서 코어로부터의 상기 정보에 대한 액세스를 시도하는
시스템.
- 제 11 항에 있어서,
상기 제 1 프로세서의 적어도 하나의 프로세서 코어가 상기 저 전력 모드에 진입하지 않았으면, 상기 제 2 프로세서의 적어도 하나의 프로세서 코어가 상기 제 1 프로세서의 적어도 하나의 프로세서 코어의 로컬 캐시를 스누프하는(snoop)
시스템.
- 제 9 항에 있어서,
상기 제 1 및 제 2 프로세서는 FSB(front-side-bus)를 통해 결합되는
시스템.
- 제 9 항에 있어서,
상기 제 1 및 제 2 프로세서는 점대점(point-to-point) 상호접속을 통해 결합되는
시스템.
- 제 9 항에 있어서,
상기 제 1 및 제 2 프로세서는 링 상호접속을 통해 결합되는
시스템.
- 제 9 항에 있어서,
상기 저 전력 모드는 클록을 중지하고 상기 제 1 프로세서의 적어도 하나의 프로세서 코어에 대한 전력 공급을 억제하는
시스템.
- 제 9 항에 있어서,
상기 공유 캐시로부터의 정보에 액세스하는데 요구되는 시간이 상기 제 1 프로세서의 적어도 하나의 프로세서 코어가 상기 저 전력 모드로부터 복귀하여 자신의 로컬 캐시에 액세스하기를 기다리는데 요구되는 시간보다 더 적은
시스템.
- 제 1 프로세서 코어가 저 전력 모드로 되는 단계 -상기 저 전력 모드는 상기 제 1 프로세서 코어의 레벨 1(L1) 캐시로부터의 적어도 변경된 정보를 레벨 2(L2) 캐시로 저장하는 것을 포함함- 와,
상기 제 1 프로세서 코어가 상기 저 전력 모드로 진입하는 것에 응답하여 상기 L1 캐시 대신에 상기 L2 캐시에 액세스하는 단계와,
상기 제 2 프로세서 코어에 의해 요구된 정보가 상기 L2 캐시에 저장되지 않으면 시스템 메모리로의 액세스를 발생하는 단계를 포함하는
방법.
- 제 18 항에 있어서,
상기 제 1 프로세서 코어는 상기 제 1 프로세서 코어의 상기 저 전력 모드에 기초하여 상기 L1 또는 L2 캐시에 대한 액세스를 정하는
방법.
- 제 19 항에 있어서,
상기 저 전력 모드는 상기 제 1 프로세서 코어와 연관된 비휘발성 프로그램 가능한 메모리에 표시되는
방법.
- 제 18 항에 있어서,
상기 제 1 프로세서는 상기 제 1 프로세서가 상기 저 전력 모드에 있는 지의 여부에 기초하여 상기 제 2 프로세서로부터의 액세스를 어디로 정할지를 결정하는 로직을 포함하는
방법.
- 제 18 항에 있어서,
상기 저 전력 모드는 상기 제 1 프로세서 코어를 유휴 상태로 되게 하고 동작 전압을 감소시키는 단계를 포함하는
방법.
- 인스트럭션 세트가 저장되어 있는 기계 판독 가능한 매체로서,
상기 인스트럭션 세트는 기계에 의해 실행되면 상기 기계가, 제 1 프로세서로 하여금 적어도 제 2 프로세서 및 제 3 프로세서 중 적어도 하나가 저 전력 모드로 진입하였다는 판정에 응답하여 상기 제 2 및 제 3 프로세서 중 하나에 대응하는 로컬 캐시 대신에 상기 제 2 및 제 3 프로세서 사이에 공유된 캐시에 액세스하게 하는 단계를 포함하는 방법을 수행하게 하고,
상기 저 전력 모드에 진입하는 것은 상기 제 2 및 제 3 프로세서 중 적어도 하나가 자신의 각 로컬 캐시로부터의 정보를 상기 공유 캐시에 저장하게 하고 상기 제 2 및 제 3 프로세서 중 적어도 하나로의 클록을 차단하게 하며 상기 제 2 및 제 3 프로세서 중 적어도 하나에 공급하는 전력을 실질적으로 0으로 감소시키도록 하는
기계 판독 가능한 매체.
- 제 23 항에 있어서,
상기 방법은 상기 적어도 제 2 및 제 3 프로세서가 상기 저 전력 모드에 있는 지의 여부를 판정하는 단계를 더 포함하는
기계 판독 가능한 매체.
- 제 24 항에 있어서,
상기 방법은 상기 적어도 제 2 및 제 3 프로세서의 전력 상태 정보를 포함하는 저장 영역에 액세스하는 단계를 더 포함하는
기계 판독 가능한 매체.
- 제 25 항에 있어서,
상기 저장 영역은 상기 적어도 제 2 및 제 3 프로세서에 의해 유지되는
기계 판독 가능한 매체.
- 제 26 항에 있어서,
상기 판정 단계는 소프트웨어 루틴을 실행하는 단계를 포함하는
기계 판독 가능한 매체.
- 제 23 항에 있어서,
상기 로컬 캐시는 레벨 1(L1) 캐시인
기계 판독 가능한 매체.
- 제 28 항에 있어서,
상기 공유 캐시는 레벨 2(L2) 캐시인
기계 판독 가능한 매체.
- 제 23 항에 있어서,
상기 저 전력 모드는 코어 컴포넌트 3(CC3; core component three) 전력 상태인
기계 판독 가능한 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/880,357 US8527709B2 (en) | 2007-07-20 | 2007-07-20 | Technique for preserving cached information during a low power mode |
US11/880,357 | 2007-07-20 | ||
PCT/US2008/069962 WO2009014931A2 (en) | 2007-07-20 | 2008-07-14 | Technique for preserving cached information during a low power mode |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20100021003A true KR20100021003A (ko) | 2010-02-23 |
KR101227219B1 KR101227219B1 (ko) | 2013-01-28 |
Family
ID=40265786
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020107001251A KR101227219B1 (ko) | 2007-07-20 | 2008-07-14 | 저 전력 모드 동안 캐시된 정보를 유지하는 방법, 장치, 시스템 및 기계 판독 가능한 매체 |
Country Status (8)
Country | Link |
---|---|
US (3) | US8527709B2 (ko) |
JP (2) | JP5138036B2 (ko) |
KR (1) | KR101227219B1 (ko) |
CN (2) | CN101349996B (ko) |
DE (1) | DE112008001895B4 (ko) |
GB (1) | GB2463828B (ko) |
TW (1) | TWI360046B (ko) |
WO (1) | WO2009014931A2 (ko) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110114264A (ko) * | 2010-04-13 | 2011-10-19 | 삼성전자주식회사 | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 |
KR20140078394A (ko) * | 2012-12-17 | 2014-06-25 | 삼성전자주식회사 | 시스템-온 칩과, 이의 동작 방법 |
KR20160108707A (ko) * | 2015-03-05 | 2016-09-20 | 삼성전자주식회사 | 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법 |
KR20170015524A (ko) * | 2010-12-21 | 2017-02-08 | 인텔 코포레이션 | 마이크로프로세서 내의 열 설계 전력을 구성하기 위한 방법 및 장치 |
Families Citing this family (41)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8527709B2 (en) | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US8725953B2 (en) * | 2009-01-21 | 2014-05-13 | Arm Limited | Local cache power control within a multiprocessor system |
US20100332877A1 (en) * | 2009-06-30 | 2010-12-30 | Yarch Mark A | Method and apparatus for reducing power consumption |
CN102053946B (zh) * | 2009-10-30 | 2014-05-28 | 国际商业机器公司 | 多核***中处理请求的数据处理方法、设备和*** |
JP5495822B2 (ja) * | 2010-01-29 | 2014-05-21 | キヤノン株式会社 | 情報処理装置、その制御方法及びプログラム |
US8533505B2 (en) * | 2010-03-01 | 2013-09-10 | Arm Limited | Data processing apparatus and method for transferring workload between source and destination processing circuitry |
US8751833B2 (en) | 2010-04-30 | 2014-06-10 | Arm Limited | Data processing system |
JP5485055B2 (ja) * | 2010-07-16 | 2014-05-07 | パナソニック株式会社 | 共有メモリシステム及びその制御方法 |
US8806232B2 (en) | 2010-09-30 | 2014-08-12 | Apple Inc. | Systems and method for hardware dynamic cache power management via bridge and power manager |
US20120166731A1 (en) * | 2010-12-22 | 2012-06-28 | Christian Maciocco | Computing platform power management with adaptive cache flush |
JPWO2013057886A1 (ja) * | 2011-10-17 | 2015-04-02 | パナソニックIpマネジメント株式会社 | 集積回路、マルチコアプロセッサ装置及び集積回路の製造方法 |
KR101858159B1 (ko) * | 2012-05-08 | 2018-06-28 | 삼성전자주식회사 | 멀티-cpu 시스템과 이를 포함하는 컴퓨팅 시스템 |
US9256531B2 (en) * | 2012-06-19 | 2016-02-09 | Samsung Electronics Co., Ltd. | Memory system and SoC including linear addresss remapping logic |
US9086980B2 (en) | 2012-08-01 | 2015-07-21 | International Business Machines Corporation | Data processing, method, device, and system for processing requests in a multi-core system |
US9760150B2 (en) * | 2012-11-27 | 2017-09-12 | Nvidia Corporation | Low-power states for a computer system with integrated baseband |
US9703707B2 (en) * | 2012-12-04 | 2017-07-11 | Ecole polytechnique fédérale de Lausanne (EPFL) | Network-on-chip using request and reply trees for low-latency processor-memory communication |
US9128857B2 (en) * | 2013-01-04 | 2015-09-08 | Apple Inc. | Flush engine |
US9710303B2 (en) * | 2013-06-06 | 2017-07-18 | Empire Technology Development Llc | Shared cache data movement in thread migration |
CA2875926C (en) | 2013-06-14 | 2019-07-30 | Wavelight Gmbh | Automatic machine settings for customized refractive surgery |
JP6347633B2 (ja) * | 2013-06-14 | 2018-06-27 | キヤノン株式会社 | 通信装置、通信方法およびプログラム |
JP6366717B2 (ja) * | 2013-09-27 | 2018-08-01 | インテル・コーポレーション | 複数のデバイスにわたる複数のメモリリソースを構成するための技術 |
US9836113B2 (en) | 2013-12-23 | 2017-12-05 | Intel Corporation | Method and apparatus to manage power usage in a processor |
US9665155B2 (en) | 2013-12-28 | 2017-05-30 | Intel Corporation | Techniques for increasing energy efficiency of sensor controllers that receive data from one or more sensors |
US9436972B2 (en) | 2014-03-27 | 2016-09-06 | Intel Corporation | System coherency in a distributed graphics processor hierarchy |
US20150370707A1 (en) * | 2014-06-24 | 2015-12-24 | Qualcomm Incorporated | Disunited shared-information and private-information caches |
KR102347657B1 (ko) * | 2014-12-02 | 2022-01-06 | 삼성전자 주식회사 | 전자 장치 및 이의 공유 캐시 메모리 제어 방법 |
US9563431B2 (en) | 2014-12-26 | 2017-02-07 | Intel Corporation | Techniques for cooperative execution between asymmetric processor cores |
CN104765698B (zh) * | 2015-03-17 | 2018-02-13 | 中国科学院声学研究所 | 一种高速缓冲存储器及路预测方法 |
TWI667570B (zh) * | 2015-07-15 | 2019-08-01 | 聯華電子股份有限公司 | 半導體裝置及其運作方法 |
CN105487875B (zh) * | 2015-12-18 | 2019-08-27 | 杭州士兰微电子股份有限公司 | 程序存储器的控制方法、控制装置及其处理器*** |
CN109656838A (zh) * | 2015-12-18 | 2019-04-19 | 杭州士兰微电子股份有限公司 | 处理器***及其存储器控制方法 |
US10606339B2 (en) * | 2016-09-08 | 2020-03-31 | Qualcomm Incorporated | Coherent interconnect power reduction using hardware controlled split snoop directories |
US10324850B2 (en) * | 2016-11-11 | 2019-06-18 | Microsoft Technology Licensing, Llc | Serial lookup of tag ways |
US10649684B2 (en) * | 2017-03-16 | 2020-05-12 | Arm Limited | Memory access monitoring |
US10565122B2 (en) | 2017-05-30 | 2020-02-18 | Microsoft Technology Licensing, Llc | Serial tag lookup with way-prediction |
CN110443360B (zh) * | 2017-06-16 | 2021-08-06 | 上海兆芯集成电路有限公司 | 用于操作处理器的方法 |
US10956332B2 (en) | 2017-11-01 | 2021-03-23 | Advanced Micro Devices, Inc. | Retaining cache entries of a processor core during a powered-down state |
US10705590B2 (en) | 2017-11-28 | 2020-07-07 | Google Llc | Power-conserving cache memory usage |
CN109542830B (zh) * | 2018-11-21 | 2022-03-01 | 北京灵汐科技有限公司 | 一种数据处理***及数据处理方法 |
US11134030B2 (en) * | 2019-08-16 | 2021-09-28 | Intel Corporation | Device, system and method for coupling a network-on-chip with PHY circuitry |
US11615022B2 (en) * | 2020-07-30 | 2023-03-28 | Arm Limited | Apparatus and method for handling accesses targeting a memory |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5247649A (en) * | 1988-05-06 | 1993-09-21 | Hitachi, Ltd. | Multi-processor system having a multi-port cache memory |
US5632038A (en) * | 1994-02-22 | 1997-05-20 | Dell Usa, L.P. | Secondary cache system for portable computer |
US6052789A (en) * | 1994-03-02 | 2000-04-18 | Packard Bell Nec, Inc. | Power management architecture for a reconfigurable write-back cache |
US6658532B1 (en) * | 1999-12-15 | 2003-12-02 | Intel Corporation | Cache flushing |
US7111178B2 (en) * | 2001-09-28 | 2006-09-19 | Intel Corporation | Method and apparatus for adjusting the voltage and frequency to minimize power dissipation in a multiprocessor system |
US6763435B2 (en) * | 2001-10-16 | 2004-07-13 | International Buisness Machines Corporation | Super-coherent multiprocessor system bus protocols |
US6792551B2 (en) * | 2001-11-26 | 2004-09-14 | Intel Corporation | Method and apparatus for enabling a self suspend mode for a processor |
US6804632B2 (en) * | 2001-12-06 | 2004-10-12 | Intel Corporation | Distribution of processing activity across processing hardware based on power consumption considerations |
US6976181B2 (en) * | 2001-12-20 | 2005-12-13 | Intel Corporation | Method and apparatus for enabling a low power mode for a processor |
US6920574B2 (en) * | 2002-04-29 | 2005-07-19 | Apple Computer, Inc. | Conserving power by reducing voltage supplied to an instruction-processing portion of a processor |
US7017054B2 (en) * | 2002-07-02 | 2006-03-21 | Dell Products L.P. | Mirrored tag snoop optimization |
US6976131B2 (en) * | 2002-08-23 | 2005-12-13 | Intel Corporation | Method and apparatus for shared cache coherency for a chip multiprocessor or multiprocessor system |
US7194638B1 (en) * | 2002-09-27 | 2007-03-20 | Cypress Semiconductor Corporation | Device and method for managing power consumed by a USB device |
US7461213B2 (en) * | 2002-10-08 | 2008-12-02 | Rmi Corporation | Advanced processor system using request, data, snoop, and response rings |
US6971034B2 (en) * | 2003-01-09 | 2005-11-29 | Intel Corporation | Power/performance optimized memory controller considering processor power states |
US6711447B1 (en) * | 2003-01-22 | 2004-03-23 | Intel Corporation | Modulating CPU frequency and voltage in a multi-core CPU architecture |
GB2403561A (en) * | 2003-07-02 | 2005-01-05 | Advanced Risc Mach Ltd | Power control within a coherent multi-processor system |
US20050138296A1 (en) | 2003-12-18 | 2005-06-23 | Coulson Richard L. | Method and system to alter a cache policy |
US7237131B2 (en) * | 2003-12-30 | 2007-06-26 | Intel Corporation | Transaction-based power management in a computer system |
US7451333B2 (en) | 2004-09-03 | 2008-11-11 | Intel Corporation | Coordinating idle state transitions in multi-core processors |
US20070156992A1 (en) * | 2005-12-30 | 2007-07-05 | Intel Corporation | Method and system for optimizing latency of dynamic memory sizing |
US7694080B2 (en) * | 2004-12-29 | 2010-04-06 | Intel Corporation | Method and apparatus for providing a low power mode for a processor while maintaining snoop throughput |
US20060171244A1 (en) * | 2005-02-03 | 2006-08-03 | Yoshiyuki Ando | Chip layout for multiple cpu core microprocessor |
US7337280B2 (en) * | 2005-02-10 | 2008-02-26 | International Business Machines Corporation | Data processing system and method for efficient L3 cache directory management |
US20070005907A1 (en) | 2005-06-29 | 2007-01-04 | Intel Corporation | Reduction of snoop accesses |
US7899990B2 (en) * | 2005-11-15 | 2011-03-01 | Oracle America, Inc. | Power conservation via DRAM access |
JP2007148952A (ja) * | 2005-11-30 | 2007-06-14 | Renesas Technology Corp | 半導体集積回路 |
US20070150663A1 (en) * | 2005-12-27 | 2007-06-28 | Abraham Mendelson | Device, system and method of multi-state cache coherence scheme |
US7584327B2 (en) * | 2005-12-30 | 2009-09-01 | Intel Corporation | Method and system for proximity caching in a multiple-core system |
US8225046B2 (en) * | 2006-09-29 | 2012-07-17 | Intel Corporation | Method and apparatus for saving power by efficiently disabling ways for a set-associative cache |
US7937535B2 (en) * | 2007-02-22 | 2011-05-03 | Arm Limited | Managing cache coherency in a data processing apparatus |
US8527709B2 (en) | 2007-07-20 | 2013-09-03 | Intel Corporation | Technique for preserving cached information during a low power mode |
US8489906B2 (en) * | 2010-05-25 | 2013-07-16 | Freescale Semiconductor, Inc. | Data processor having multiple low power modes |
-
2007
- 2007-07-20 US US11/880,357 patent/US8527709B2/en active Active
-
2008
- 2008-07-01 TW TW097124713A patent/TWI360046B/zh active
- 2008-07-14 DE DE112008001895.2T patent/DE112008001895B4/de active Active
- 2008-07-14 WO PCT/US2008/069962 patent/WO2009014931A2/en active Application Filing
- 2008-07-14 JP JP2010518285A patent/JP5138036B2/ja active Active
- 2008-07-14 GB GB1000648.4A patent/GB2463828B/en active Active
- 2008-07-14 KR KR1020107001251A patent/KR101227219B1/ko active IP Right Grant
- 2008-07-18 CN CN2008101377476A patent/CN101349996B/zh active Active
- 2008-07-18 CN CN201310108148.2A patent/CN103257701B/zh active Active
-
2012
- 2012-11-13 JP JP2012249462A patent/JP5367899B2/ja active Active
-
2013
- 2013-03-06 US US13/787,311 patent/US8732399B2/en active Active
- 2013-12-27 US US14/141,926 patent/US9274592B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110114264A (ko) * | 2010-04-13 | 2011-10-19 | 삼성전자주식회사 | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 |
KR20170015524A (ko) * | 2010-12-21 | 2017-02-08 | 인텔 코포레이션 | 마이크로프로세서 내의 열 설계 전력을 구성하기 위한 방법 및 장치 |
KR20140078394A (ko) * | 2012-12-17 | 2014-06-25 | 삼성전자주식회사 | 시스템-온 칩과, 이의 동작 방법 |
KR20160108707A (ko) * | 2015-03-05 | 2016-09-20 | 삼성전자주식회사 | 전력 상태 정보를 사용하는 저장 장치 및 그것의 동작 방법 |
Also Published As
Publication number | Publication date |
---|---|
JP2010534377A (ja) | 2010-11-04 |
WO2009014931A2 (en) | 2009-01-29 |
GB2463828A (en) | 2010-03-31 |
JP5367899B2 (ja) | 2013-12-11 |
US8527709B2 (en) | 2013-09-03 |
DE112008001895B4 (de) | 2018-09-06 |
TWI360046B (en) | 2012-03-11 |
US20130179639A1 (en) | 2013-07-11 |
CN101349996B (zh) | 2013-04-24 |
US20090024799A1 (en) | 2009-01-22 |
US9274592B2 (en) | 2016-03-01 |
CN101349996A (zh) | 2009-01-21 |
US20140115369A1 (en) | 2014-04-24 |
GB2463828B (en) | 2012-08-22 |
GB201000648D0 (en) | 2010-03-03 |
JP5138036B2 (ja) | 2013-02-06 |
US8732399B2 (en) | 2014-05-20 |
DE112008001895T5 (de) | 2010-06-02 |
JP2013069320A (ja) | 2013-04-18 |
TW200915059A (en) | 2009-04-01 |
CN103257701B (zh) | 2016-08-03 |
WO2009014931A3 (en) | 2009-04-02 |
KR101227219B1 (ko) | 2013-01-28 |
CN103257701A (zh) | 2013-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101227219B1 (ko) | 저 전력 모드 동안 캐시된 정보를 유지하는 방법, 장치, 시스템 및 기계 판독 가능한 매체 | |
US7404043B2 (en) | Cache memory to support a processor's power mode of operation | |
US7752474B2 (en) | L1 cache flush when processor is entering low power mode | |
US9317102B2 (en) | Power control for cache structures | |
US20140095801A1 (en) | System and method for retaining coherent cache contents during deep power-down operations | |
US20100064108A1 (en) | Data processing apparatus and method for managing snoop operations | |
US9128842B2 (en) | Apparatus and method for reducing the flushing time of a cache | |
US8706966B1 (en) | System and method for adaptively configuring an L2 cache memory mesh | |
US20060053258A1 (en) | Cache filtering using core indicators | |
US20100180085A1 (en) | Handling of memory access requests to shared memory in a data processing apparatus | |
US20070186045A1 (en) | Cache eviction technique for inclusive cache systems | |
US9823730B2 (en) | Power management of cache duplicate tags | |
US10514751B2 (en) | Cache dormant indication | |
US9411663B2 (en) | Conditional notification mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20160104 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20180103 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20190103 Year of fee payment: 7 |