KR101196951B1 - 전력/성능 균형을 개선하기 위한 멀티코어 메모리 열 억제 알고리즘 - Google Patents

전력/성능 균형을 개선하기 위한 멀티코어 메모리 열 억제 알고리즘 Download PDF

Info

Publication number
KR101196951B1
KR101196951B1 KR1020107021344A KR20107021344A KR101196951B1 KR 101196951 B1 KR101196951 B1 KR 101196951B1 KR 1020107021344 A KR1020107021344 A KR 1020107021344A KR 20107021344 A KR20107021344 A KR 20107021344A KR 101196951 B1 KR101196951 B1 KR 101196951B1
Authority
KR
South Korea
Prior art keywords
dram
logic
memory
level cache
memory controller
Prior art date
Application number
KR1020107021344A
Other languages
English (en)
Other versions
KR20100113175A (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 KR20100113175A publication Critical patent/KR20100113175A/ko
Application granted granted Critical
Publication of KR101196951B1 publication Critical patent/KR101196951B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)

Abstract

본 발명의 실시예들은 일반적으로 멀티코어 메모리 열 억제 알고리즘들과 관련된 전력/성능 균형을 개선하기 위한 시스템들, 방법들 및 장치들에 관한 것이다. 일부 실시예들에서, 공유 자원 할당의 우선 순위는 시스템이 동적 랜덤 액세스 메모리(DRAM) 억제 모드에 있는 동안 시스템의 하나 이상의 포인트에서 변경된다. 이것은 메모리 지향 작업 부하들에 대해 DRAM을 계속 억제하면서 캐시 지향 작업 부하들의 진행을 가능하게 할 수 있다.

Description

전력/성능 균형을 개선하기 위한 멀티코어 메모리 열 억제 알고리즘{MULTI-CORE MEMORY THERMAL THROTTLING ALGORITHMS FOR IMPROVING POWER/PERFORMANCE TRADEOFFS}
본 발명의 실시예들은 일반적으로 집적 회로의 분야에 관한 것으로서, 구체적으로는 멀티코어 메모리 열 억제 알고리즘들과 관련된 전력/성능 균형들을 개선하기 위한 시스템들, 방법들 및 장치들에 관한 것이다.
최신의 컴퓨팅 시스템들은 통상적으로 단일 다이 상에 집적된 2개 이상의 프로세서 코어(또는 간단히 코어)를 포함한다. 이러한 코어들은 균일한 작업 부하들을 갖거나, 상이한 작업 부하들을 가질 수 있다. "균일한 작업 부하들"이라는 용어는 상이한 코어들 상에서 수행되는 작업 부하들이 공유 자원들(예를 들어, 최종 레벨 캐시, 상호 접속부들, 메인 시스템 메모리 등)에 대해 실질적으로 유사한 요구들을 갖는 경우들을 지칭한다. "상이한 작업 부하들"이라는 용어는 상이한 코어들 상에서 수행되는 작업 부하들이 공유 자원들에 대해 실질적으로 상이한 요구들을 나타내는 경우를 지칭한다.
통상적으로, 다수의 코어는 메인 시스템 메모리라고 하는 메모리 자원들의 공동 집합을 공유한다. 메인 시스템 메모리는 다수의 동적 랜덤 액세스 메모리 장치(DRAM)를 포함할 수 있다. DRAM들의 온도는 DRAM들의 사용 레벨의 함수이다.
최신의 컴퓨팅 시스템들은 DRAM들의 온도를 제어하기 위한 메커니즘들을 포함할 수 있다. 예컨대, 이들은 DRAM 장치의 온도가 사전 설정된 안전 임계 온도를 초과할 때 온/오프 듀티 사이클 제어가 존재하는 DRAM 억제 모드(DTM)를 지원할 수 있다. 온 상태 동안, 메모리 제어기는 정상 스케줄링 알고리즘들을 적용하여, 지정된 수의 클럭 사이클(예를 들어, 256개의 DRAM 클럭) 동안 요청들을 스케줄링한다. 오프 상태 동안, 메모리 제어기는 지정된 수의 클럭 사이클(예를 들어, 256 클럭) 동안 DRAM들에 대한 모든 요청들을 차단(억제)하여, 메모리가 더 낮은 온도로 냉각되게 한다.
본 발명의 실시예들은 동일 참조 번호들이 유사한 요소들을 지시하는 첨부 도면들에서 한정이 아니라 예시적으로 도시된다.
도 1은 본 발명의 일 실시예에 따라 구현된 공유 최종 레벨 캐시를 구비하는 멀티코어 컴퓨팅 시스템의 선택된 양태들을 나타내는 하이 레벨 블록도.
도 2는 본 발명의 일 실시예에 따라 구현된 멀티 코어 메모리 억제 솔루션의 선택된 양태들을 나타내는 블록도.
도 3은 시스템이 억제 모드에 있을 때 최종 레벨 캐시(LLC) 요청 우선 순위화를 위한 휴리스틱의 선택된 양태들을 나타내는 도면.
도 4는 시스템이 DRAM 억제 모드(DTM)에 있을 때 메모리 제어기에 대한 LLC 비적중(miss)들을 억제하기 위한 휴리스틱의 선택된 양태들을 나타내는 도면.
도 5는 시스템이 억제 모드에 있을 때 메모리에 대한 액세스를 억제하기 위한 휴리스틱의 선택된 양태들을 나타내는 도면.
도 6은 본 발명의 일 실시예에 따른 메모리 억제 모드에서의 LLC 및 스위치 스케줄링의 선택된 양태들을 나타내는 흐름도.
도 7은 본 발명의 일 실시예에 따른 DTM에서 동작하는 동안에 DRAM에 대한 요청들을 발행하기 위한 알고리즘의 선택된 양태들을 나타내는 흐름도.
본 발명의 실시예들은 상이한 작업 부하들을 수행하는 멀티코어 시스템에서의 효율적인 동적 랜덤 액세스 메모리(DRAM) 열 억제를 위한 하드웨어 기술에 관한 것이다. 일부 실시예들에서, 멀티코어 시스템은 집적 메모리 제어기를 구비할 수 있다. 다른 실시예들에서, 멀티코어 시스템은 개별 칩셋을 구비할 수 있다.
상이한 작업 부하들을 수행하는 멀티코어 시스템은 각각의 코어(또는 스레드) 상에서 다양한 상이한 작업 부하들을 수행할 수 있다. 작업 부하들 중 일부는 많은 DRAM 메모리 대역폭을 필요로 할 수 있다. 다른 작업 부하들은 (실질적으로) 중간 레벨 또는 최종 레벨 캐시로 지향될 수 있으며, 적은 DRAM 대역폭만을 생성할 수 있다. 비교적 많은 양의 메모리 대역폭을 사용하는 작업 부하들은 DRAM 장치들의 온도를 증가시킬 수 있다. DRAM 열 억제(또는 열 억제 또는 간단히 억제)라는 용어는 DRAM 대역폭을 제한하여 DRAM 장치의 온도를 제어하는 것을 말한다.
DRAM 열 억제를 위한 통상의 접근법은 온/오프 듀티 사이클 제어가 존재하는 DRAM 억제 모드(DTM)를 이용하는 것을 포함한다. 온 상태 동안, 메모리 제어기는 정상 스케줄링 알고리즘들을 적용하여, 지정된 수의 클럭 사이클(예를 들어, 256 클럭) 동안 요청들을 스케줄링한다. 오프 상태 동안, 메모리 제어기는 지정된 수의 클럭 사이클(예를 들어, 256 클럭) 동안 DRAM들에 대한 모든 요청들을 차단(억제)한다. DTM은 "상류(upstream)" 자원들에 대한 백 프레셔(back pressure)를 생성할 수 있는데, 그 이유는 요청들이 공유 자원들의 다양한 큐들 내에 수집되기 때문이며, 요청들이 DRAM들에 대해 발행되고 있지 않으므로, 요청들은 진행되지 못한다. 이러한 백 프레셔는 결국 코어들(또는 스레드들)의 정지로 이어질 수 있다. 본 특허의 목적으로, "코어" 및 "스레드"라는 용어는 교환 가능하게 사용된다.
원칙적으로, 캐시로 지향되는 작업 부하들은 많은 DRAM 대역폭을 필요로 하지 않으므로 진행되는 것이 허가될 수 있고 허가되어야 한다. 본 발명의 실시예들은 요청 우선 순위화 및 억제에 있어서 더 많은 지능을 제공하여, (양호한 절전을 달성하기 위하여) DRAM 대역폭의 대량 사용자들인 작업 부하들의 억제를 가능하게 하고, 캐시로 지향되는 다른 작업 부하들이 상이한 멀티코어 작업 부하들과 더불어 (양호한 성능 균형을 제공하기 위해) 진행되는 것을 허가한다.
도 1은 본 발명의 일 실시예에 따라 구현된 공유 최종 레벨 캐시를 구비하는 멀티코어 컴퓨팅 시스템의 선택된 양태들을 나타내는 하이 레벨 블록도이다. 시스템(100)은 다수의 코어(110), 자원 공유 로직(114), 최종 레벨 캐시(LLC)(116), 상호접속부(118), 메모리 제어기(120) 및 DRAM들(122)을 포함한다. 대안 실시예들에서, 시스템(100)은 더 많은 요소, 더 적은 요소 및/또는 상이한 요소들을 포함할 수 있다. 일부 실시예들에서, 코어들(110), 자원 공유 로직(114) 및 메모리 제어기(120)는 동일 집적 회로 상에 위치한다. 대안 실시예들에서, 코어들(110) 및 자원 공유 로직(114)은 제1 집적 회로 상에 위치하고, 메모리 제어기(120)는 제2 집적 회로 상에 (예를 들어, 개별 칩셋의 일부로서) 위치한다. 일부 대안 실시예들에서, 각각의 코어(110)는 (공유 LLC(116) 대신에) 개별 LLC를 구비하며, 코어들(110)은 LLC로부터 하류의 다수의 자원(예를 들어, 상호접속부(118), 메모리 제어기(120), DRAM(122) 등)을 공유한다.
코어들(110)은 범용 프로세서, 그래픽 프로세서 등을 포함하는 프로세서 코어들의 임의의 다양한 어레이일 수 있다. 도시의 편의를 위해, 도 1은 3개의 코어 프로세서를 나타낸다. 그러나, 시스템(100)은 거의 모든 수의 프로세서 코어를 구비할 수 있다는 것을 알아야 한다.
각각의 코어(110)는 사적인 제1 및 제2 레벨 캐시들을 구비할 수 있다. 코어들(110)은 또한 LLC(116)를 공유할 수 있다. 또한, 코어들(110)은 예를 들어 상호접속부(118), 메모리 제어기(120) 및 DRAM들(122)을 포함하는 다른 하류 자원들을 공유할 수 있다.
도시된 실시예에서, 각각의 코어(110)는 LLC 요청 큐(112)와 연관된다. 일부 실시예들에서는 각각의 코어(110)에 대한 개별 큐(112)가 존재할 수 있다. 대안 실시예들에서는 2개 이상의 코어(110)가 큐(112)를 공유할 수 있다. 아래에 더 설명되는 바와 같이, 일부 실시예들에서, 큐들(112)의 점유(사용)는 각각의 코어(110)에 대해 소정 기간에 걸친 평균 점유를 결정하기 위해 모니터링된다. 이 값은 시스템(100)이 DTM에 있을 때 어느 코어(110)가 어느 공유 자원에 대한 액세스의 우선 순위를 갖는지를 결정하는 데 사용될 수 있다.
자원 공유 로직(114)은 다수의 중재, 스위칭 및 큐잉(queuing) 기능을 제공한다. 예컨대, 자원 공유 로직(114)은 코어들(110)의 LLC(116) 및 상호접속부(118)에 대한 액세스를 중재할 수 있다. 시스템(100)이 DTM에 있지 않은 경우, 로직(114)은 통상의 중재 스킴(예를 들어, 요구 기반 또는 라운드 로빈 중재)을 적용하여 공유 자원들에 대한 액세스를 제어할 수 있다. 시스템에서 DTM 이벤트가 시그널링될 때, 그의 발생은 시스템이 DTM에 있는 한은 메모리 대역폭의 대량 사용자들인 스레드들이 메모리 대역폭의 소량 사용자들 및 캐시들의 대량 사용자들인 스레드들보다 낮은 우선 순위로 동작할 수 있음을 지시하며, 이러한 정보는 시스템 자원 할당을 제어하여 더 양호한 전력/성능 균형화를 행하는 데 이용된다. 그러나, 시스템(100)이 DTM에 있을 때, 로직(114)은 메인 시스템 메모리(예를 들어, DRAM들(122))에 주로 액세스하고 있는 코어들을 억제하면서 (메인 시스템 메모리가 아니라) LLC(116)에 주로 액세스하고 있는 코어들에 대해 진행을 허가하는 사전 지정된 중재 스킴을 적용할 수 있다. 일부 실시예들에서, 사전 지정된 중재 스킴은 더 간단한 구현을 위해 큐들(112)의 점유에 적어도 부분적으로 기초한다. 아래에 더 설명되는 바와 같이, 사전 지정 중재 스킴은 사전 설정된 간격 동안의 코어별 평균 LLC 적중률, 사전 설정된 간격 동안의 코어별 평균 메모리 대역폭 등을 포함하는 다른 특성들을 이용하여 향상될 수 있다.
상호접속부(118)는 로직(114)과 메모리 제어기(120) 사이의 접속을 제공한다. 로직(114) 및 메모리 제어기(120)가 동일 다이 내에 함께 위치하는 경우, 상호접속부(118)는 온-다이 상호접속부일 수 있다. 대안으로, 로직(114) 및 메모리 제어기(120)가 동일 다이 상에 위치하지 않는 경우, 상호접속부(118)는 오프-다이 상호접속부(예컨대, 버스 또는 점대점 상호접속부)일 수 있다.
메모리 제어기(120)는 미해결 요청들(예를 들어, LLC 비적중 후에 상호접속부(118)를 통해 로직(114)으로부터 전송받은 요청들) 사이를 중재하고, 선택된 요청을 (예를 들어, 데이터를 읽고 쓰기 위해) DRAM들(122) 중 하나로 전송한다. 메모리 장치들(122) 중 적어도 일부는 온도 센서(124)를 포함할 수 있다. 온도 센서(124)는 DRAM(122)과 동일한 다이 상에 있거나, DRAM(122)에 대해 편하게 배치되어 온도 데이터를 수집할 수 있다. 메모리 제어기(120)는 센서들(124)로부터 입력을 수신하고, 열 폭주를 방지하기 위해 DRAM들(122)의 온도를 정해진 한도들 내로 유지하려고 시도한다. DRAM(122)의 온도가 정해진 한도를 초과하는 경우, 메모리 제어기(120)는 DRAM 억제 모드에 들어가서, DRAM(122)에 대한 요청들을 억제하기 시작한다. 일부 실시예들에서, DRAM들은 DRAM 대역폭이 임계치를 초과할 때 DRAM 대역폭을 간단하게 제어/억제하는 개루프 DRAM 열 억제 알고리즘을 갖는 센서들을 구비하지 않는다.
일부 실시예들에서는, 시스템(100)이 DTM에 있을 때, 사전 지정된 스케줄링 정책이 코어들(110)로부터의 요청들에 적용된다. 이러한 사전 지정 스케줄링 정책은 DTM의 온/오프 듀티 사이클과 연계하여 동작한다. 온 사이클 동안, 사전 지정 스케줄링 정책은 (어느 코어로부터의) 어느 요청들의 진행을 허가할 것인지를 결정한다. 오프 사이클 동안, DRAM들(122)을 냉각시키기 위해 메모리에 대한 요청들이 억제된다. 일부 실시예들에서, 사전 지정 스케줄링 정책은 LLC(116)에 주로 적중하는 코어들로부터의 요청들을 DRAM들(122)로 주로 지향되는 것들보다 우선 순위화한다. 요청들이 "주로 LLC(116)에 적중하는" 것으로 판정되는지의 여부는 시스템에 고유할 수 있다. 일부 실시예들에서는, 코어가 소정 간격 동안 발행하는 요청들의 적어도 90%(+/- 10%)가 LLC(116)에 의해 충족될 경우에 그 코어는 주로 LLC(116)에 적중하는 것으로 판정된다. "캐시 지향 코어"라는 용어는 캐시(예를 들어, LLC(116))에 주로 적중하는 요청들을 (관련 시간 간격 동안) 생성하는 코어를 지칭한다. "DRAM 지향 코어"라는 용어는 주로 DRAM(122)으로 지향되는 요청들을 (관련 시간 간격 동안) 생성하는 코어를 지칭한다. 그러한 코어는 LLC에 적중하는 요청들의 상당한 컴포넌트들도 가질 수 있다.
일부 실시예들에서, 캐시 지향 코어들로부터의 요청들은 시스템(100)의 둘 이상의 포인트에서 DRAM 지향 코어들로부터의 요청들보다 우선 순위화된다. 예컨대, 일부 실시예들에서, 캐시 지향 코어들로부터의 요청들은 LLC(116)에 대한 중재 동안에 DRAM 지향 코어들로부터의 요청들보다 선호된다. 이것은 메모리 제어기(120)가 DTM의 오프 사이클 동안에 DRAM들(122)에 대한 모든 요청들을 억제할 때에도 캐시 지향 코어들이 캐시 자원들을 효과적으로 사용하는 것을 돕는다. 일부 실시예들에서는, (메모리 제어기(120)로 전송될) 상호접속부(118)에 대한 액세스를 중재할 때, LLC(116)에 비적중하는 요청들 중에서, 캐시 지향 코어들로부터의 요청들이 DRAM 지향 코어들로부터의 요청들보다 선호된다. 일부 실시예들에서, 메모리 제어기(120)는 DTM의 온 사이클 동안 캐시 지향 코어들로부터의 요청들을 선호한다. 이것은 캐시 지향 코어로부터의 임시 DRAM 요청이 DTM의 온 사이클 동안에 진행되는 것을 도와서, DRAM 지향 요청들에 의존하는 코어에서의 임의의 요청들도 오프 사이클 동안에 진행할 수 있게 한다.
도 2는 본 발명의 일 실시예에 따라 구현된 공유 최종 레벨 캐시를 갖는 멀티코어 컴퓨팅 시스템의 선택된 양태들을 나타내는 블록도이다. 도 2에 도시된 다수의 요소들은 도 1에 도시된 것들과 실질적으로 유사하며, 이러한 요소들은 동일하 참조 번호들을 공유한다. 대안 실시예들에서, 시스템(200)은 더 많은 요소, 더 적은 요소 및/또는 상이한 요소들을 포함할 수 있다.
시스템(200)은 다양한 위치에서 요청 우선 순위/중재 결정들을 가능하게 하는 다수의 휴리스틱을 구현하기 위한 로직을 포함한다. 표 1은 다수의 그러한 휴리스틱을 나타낸다. 대안 실시예들에서, 시스템(200)은 더 많은 휴리스틱, 더 적은 휴리스틱 및/또는 상이한 휴리스틱들을 구현할 수 있다.
휴리스틱 타입
간격 동안의 코어별 평균 LLC 요청 점유
DRAM 열 억제 온/오프
사전 설정된 간격 동안의 코어별 평균 LLC 적중률
간격 동안의 코어별 평균 메모리 BW
DTM에서의 트랜잭션별 MC 요청 우선 순위
일부 실시예들에서, 처음 2개의 리스트된 휴리스틱은 제1 레벨의 전력/성능 균형을 제공한다. 후속하여 리스트되는 휴리스틱들은 추가 및/또는 옵션 레벨의 전력/성능 균형들을 제공한다. 리스트된 휴리스틱들은 휴리스틱들을 구현하는 시스템(200) 내의 요소들과 관련하여 아래에 설명된다.
큐 점유 모니터(202)가 LLC 요청 큐들(112)의 각각에 결합된다. 일부 실시예들에서, 모니터(202)는 각각의 코어(110)에 대해 지정 시간 간격 동안의 평균 LLC 요청 큐 점유를 결정한다. 모니터(202)는 이러한 데이터를 자원 공유 로직(114)의 억제 우선 순위 선택 로직(214)에 제공한다.
도시된 실시예에서, 로직(114)은 우선 순위 중재 로직(210), 스위치(212), 억제 우선 순위 선택 로직(214) 및 LLC 비적중률 모니터(216)를 포함한다. 스위치(212)는 LLC(116) 및 상호접속부(118)에 대한 스위칭 기능들을 제공한다. 일부 실시예들에서, 스위치(212)는 다방향 크로스바 스위치이다. 대안 실시예들에서, 스위치(212)는 링 스위치이다. LLC 비적중률 모니터(216) 및 억제 우선 순위 선택 로직(214)은 멀티코어 열 억제 전력/성능 균형 휴리스틱들을 지원하기 위해 로직(114)에 추가된 새로운 요소들이다.
LLC 비적중률 모니터(216)는 코어들(110)의 각각으로부터 LLC(116)로 향하는 요청들을 모니터링한다. 일부 실시예들에서, LLC 비적중률 모니터(216)는 각각의 코어에 대한 평균 LLC 적중률 카운터를 포함한다. 모니터(216)는 각각의 코어에 대해 지정 간격 동안의 평균 LLC 적중률을 계산할 수 있다. 적중률은 다양한 임계치에 기초하여 더 미세한 레벨들로 양자화될 수 있다. 일부 실시예들에서, 적중률은 높은 적중률과 낮은 적중률로 분할된다. 이 정보는 어느 코어들이 많은 LLC 적중을 생성하고 있고, 어느 코어들이 많은 수의 캐시 비적중을 생성하고 있는지를 지시한다. 아래에 더 설명되는 바와 같이, 본 발명의 실시예들은 이 정보를 이용하여, 어느 요청들을 우선 순위화할지를 결정할 수 있다.
억제 우선 순위 선택 로직(214)은 (예를 들어, 시스템(200)이 DTM에 있는 경우) DRAM 지향 코어들(110)보다 캐시 지향 코어들(110)로부터의 요청들을 우선 순위화한다. 로직(214)은 시스템(200)으로부터 다양한 입력들을 수집하여, 요청 및 자원 할당 우선 순위들에 관한 정보를 얻을 수 있다. 예컨대, LLC 모니터(216)의 출력이 억제 우선순위 선택 로직(214)에 제공된다. 마찬가지로, 각각의 코어(110)에 대한 평균 LLC 큐 점유에 관한 정보를 제공하기 위해 큐 점유 모니터(202)의 출력도 로직(214)에 제공된다. 메모리 제어기(120)는 시스템(200)이 DTM에 있는지의 여부에 대한 지시를 상호접속부(118)를 통해 로직(214)에 제공한다. 이러한 지시는 메모리 제어기(120)가 자원 공유 로직(114)과 동일한 다이 상에 집적되어 있는지의 여부에 따라 메시지로서 또는 개별 신호로서 전송될 수 있다.
일부 실시예들에서, 시스템(200)이 DTM에 있지 않은 경우, 억제 우선 순위 선택 로직(214)은 어떠한 요청 및 자원 할당 우선 순위도 변경하지 않고 시스템(200)이 정상적인 방식으로 동작하는 것을 허가한다. 시스템(200)이 DTM에서 동작하고 있는 경우, 로직(214)은 하나 이상의 휴리스틱을 이용하여 요청 및 자원 할당 우선순위들을 변경한다. 예컨대, 일부 실시예들에서, 시스템(200)이 DTM에서 동작하고 있는 경우, 로직(214)은 2개의 결정을 제어한다.
제1 결정은 LLC(116)에 대한 중재 정책이다. 도 3은 로직(214)이 LLC(116)에 대한 중재 정책을 결정하기 위해 적용하는 휴리스틱의 일례를 나타낸다. 도시된 휴리스틱에서, 로직(214)은 각각의 코어에 대해 수집된 LLC 요청 큐 점유 정보(예를 들어, 모니터(202)에 의해 수집됨) 및 LLC 적중률 정보(예를 들어, 모니터(216)에 의해 수집됨)를 이용하여, 각각의 코어로부터의 요청들을 우선 순위화한다. 예를 들어, 코어에 대한 평균 LLC 요청 큐 점유가 낮고, 큐에 대한 LLC 적중률이 높은 경우, 로직(214)은 그 큐로부터의 요청들에 높은 우선 순위를 할당할 수 있다. 대안 실시예들에서, 로직(214)은 상이한 휴리스틱을 적용하여 LLC(116)에 대한 중재 정책을 결정할 수 있다.
로직(214)이 제어하는 제2 결정은 요청들이 LLC(116)에 비적중되고 메모리 제어기(120)로 전송될 때의 스위치(212)에 대한 중재 정책이다. 이 결정은 통상적으로 스위치(212)의 자원들에 대한 액세스를 우선 순위화하는 것에 더하여 메모리 제어기(120) 내의 DRAM 채널 큐 크레디트들 또는 다른 자원들을 중재하는 것을 포함한다. 도 4는 로직(214)이 LLC(116)에 비적중된 요청들을 어떻게 우선 순위화하는지의 일례를 나타낸다. 도시된 휴리스틱에서, 로직(214)은 각각의 코어에 대해 수집된 (예를 들어, 모니터(216)에 의해 수집된) LLC 적중률 정보 및 각각의 코어에 대해 수집된 (예컨대, 모니터(228)에 의해 수집된) 메모리 대역폭 정보를 이용하여, 각각의 코어로부터의 요청들을 우선 순위화한다. 일부 실시예들에서, 로직(214)은 도 4에 도시된 휴리스틱에 기초하여 요청들에 가중된 우선순위들을 할당한다. 예컨대, 요청이 낮은 메모리 대역폭 및 높은 LLC 적중률과 연관된 코어로부터 생성되는 경우(도 4의 좌하), 로직(214)은 요청에 높은 우선 순위 태그를 할당할 수 있다. 이 태그는 요청이 DRAM들(122)에 액세스할 때 우선 순위를 받아야 한다는 것을 메모리 제어기(120)에 지시한다. 따라서, 캐시 지향 코어들로부터의 요청들은 이들이 가끔 LLC(116)에 비적중할 때에도 계속 진행될 수 있다. 대안 실시예들에서, 로직(214)은 상이한 휴리스틱을 적용하여 스위치(212)에 대한 중재 정책을 결정할 수 있다.
메모리 제어기(120)는 중재기(222), DRAM 채널 제어 로직(224), DRAM 대역폭 모니터(228) 및 DRAM 억제 로직(226)을 포함한다. 메모리 제어기(120)는 상호접속부(118)로부터 요청들을 수신하고, 이들을 큐들(230) 내에 큐잉한다. 시스템(200)이 DTM에 있지 않은 경우, 중재기(222)는 정상적인 스케줄링 정책들(예를 들어, DRAM 사용을 최적화할 수 있음)을 적용하여 큐들(230) 내의 요청들을 스케줄링할 수 있다. DRAM 채널 제어 로직(224)은 스케줄링된 요청들을 DRAM들(122)에 대해 발행한다.
일부 실시예들에서, 메모리 제어기(120)는 시스템(200)이 DTM에 있는 경우 사전 지정 스케줄링 정책을 큐들(230) 내의 요청들에 대해 적용한다. 사전 지정 스케줄링 정책은 캐시 지향 코어들로부터의 요청들을 DRAM 지향 코어들로부터의 요청들보다 우선 순위화하도록 설계될 수 있다. 메모리 제어기(120)는 사전 지정 스케줄링 정책을 구현하기 위한 DRAM 대역폭 모니터(228) 및 DRAM 억제 로직(226)을 포함한다. DRAM 대역폭 모니터(228)는 지정 간격 동안 각각의 코어의 평균 DRAM 대역폭 사용을 모니터링한다.
DRAM 억제 모니터(226)는 블록 228로부터 DRAM 대역폭 사용 정보는 물론, 센서(124)로부터 온도 정보도 수신한다. DRAM(122)의 온도가 임계치를 초과하는 경우, DRAM 억제 로직(226)은 DTM을 개시할 수 있다. DRAM 억제 로직(226)은 DTM 이벤트들을 개시할 때 (예를 들어, 메시지 또는 신호를 통해) 로직(114)에 지시를 제공할 수 있다.
도 5는 시스템(200)이 DTM에서 동작하고 있을 때 로직(226)이 DRAM들에 대한 요청들을 어떻게 우선 순위화하는지의 일례를 나타낸다. 도시된 실시예에서, 로직(226)은 모니터(228)에 의해 제공되는 메모리 대역폭 정보 및 로직(214)에 의해 할당되는 우선 순위 태그들을 이용하여 큐들(230) 내에 큐잉된 요청들을 우선 순위화한다. 예를 들어, 요청이 (관련 간격 동안) 낮은 메모리 대역폭 사용을 갖는 코어와 관련되는 경우, 그리고 요청이 높은 우선 순위 태그를 할당받은 경우(예를 들어, 도 5의 우하), 로직(226)은 그 요청에 DRAM들(122)에 대한 최고 우선 순위의 액세스를 제공할 수 있다. 대안 실시예들에서, 로직(226)은 상이한 알고리즘을 구현하여 DRAM들(122)로 지향되는 요청들을 우선 순위화할 수 있다.
DTM에서 동작하고 있을 때, 메모리 제어기(120)는 온 억제 간격 동안 DRAM 전력을 턴온한 후에 DRAM(122)에 전송될 N개의 요청을 선택할 수 있다. N개의 요청을 전송한 후, 메모리 제어기(120)는 DRAM 전력 턴오프하고, 메모리 대역폭을 억제하기 위해 M개의 클럭 동안 기다린다. 전송할 N개의 요청의 올바른 세트를 선택하는 것은 상류 유닛들에서의 진행을 유지하는 데에 중요하다. DRAM 전력을 턴오프하는 데 K개의 사이클이 소요되고, 요청들에 대한 평균 DRAM 액세스 시간이 L개 사이클인 경우, DRAM(122)의 스위칭 온/오프의 오버헤드를 작게 유지하기 위해 K/L*N 및 K/M이 매우 작아야 한다.
일부 대안 실시예들에서, 메모리 제어기(120)는 (예를 들어, DRAM 대역폭 사용 정보가 이용 가능하지 않은 경우에) 요청들에 할당되는 태그들만을 이용하여 요청들을 중재한다. 또 다른 대안 실시예들에서, 우선 순위 태그들이 구현되지 않는 경우, 무작위 선택이 이용될 수 있다. 이것은 아마도 캐시로 지향되는 코어들로부터의 요청들을 드레인하여, DRAM 효율을 최적화하고 메모리 지향 코어 요청들을 선택할 수 있는 정상 스케줄링 알고리즘들보다 잠재적으로 양호하게 그들 요청이 진행되게 할 것이다. 일부 실시예들에서, 사전 설정된 간격 동안의 코어별 메모리 대역폭이 측정될 때, 중요한 과거 이력이 유지되도록 간격이 선택되며, 간격은 DTM 동안에만 전송되는 요청들에 의해 좌우되지 않는데, 이는 간격이 원하는 결과들을 제공하지 않으며, 잘못된 타입의 코어들로부터의 요청들을 억제할 것이기 때문이다.
일부 실시예들에서, 온/오프 사이클 정책의 변형을 이용하여 추가적인 성능 이익들이 달성될 수 있다. 이러한 변형은 2개가 아니라 3개의 사이클을 사용할 수 있다. 제1 사이클은 전술한 바와 같이 캐시 지향 스레드들을 선호하는 정책을 이용하여 N개의 요청을 전송하는 것을 포함할 수 있다. 제2 사이클은 M개의 사이클 동안 DRAM을 억제하는 것을 포함할 수 있다. 제3 사이클은 아마도 대역폭 집중 코어들을 선호하는 정상적인 DRAM 스케줄링 정책을 이용하여 DRAM들(122)로 전송할 R개의 요청을 선택하는 것을 포함할 수 있다. 다른 대안 실시예들에서, 다양한 스케줄링 정책을 이용하는 상이한 수의 사이클이 이용될 수 있다.
도 6은 본 발명의 일 실시예에 따른 메모리 억제 모드에서의 LLC 및 스위치 스케줄링의 선택된 양태들을 나타내는 흐름도이다. 프로세스 블록 602를 참조하면, 로직(예를 들어, 도 2에 도시된 억제 우선 순위 로직(214))은 시스템이 DTM에 있는지를 결정한다. 로직은 시스템이 DTM에 있는지의 지시를 관련 메모리 제어기로부터 수신할 수 있다. 이 지시는 메시지, 신호 등일 수 있다. 시스템이 DTM에 있지 않은 경우, 로직은 시스템이 통상의 알고리즘들에 따라 요청들을 계속 우선 순위화하게 할 수 있다(블록 606).
시스템이 DRAM 억제 모드(DTM)에 있는 경우, 로직은 둘 이상의 코어 각각에 대한 LLC 적중률의 지시가 이용 가능한지를 결정한다. 일부 실시예들에서, LLC 적중률의 지시는 LLC 비적중률 모니터(예를 들어, 도 2에 도시된 LLC 비적중률 모니터(216))에 의해 제공된다. LLC 적중률 정보가 이용 가능한 경우, 로직은 도 3에 도시된 것과 같은 알고리즘을 이용하여 LLC 중재 가중치를 계산한다(블록 608). LLC 적중률 정보가 이용 가능하지 않은 경우, 로직은 블록 610에 도시된 바와 같이 LLC 요청 큐 점유에 기초하여 LLC 중재 가중치를 계산한다.
프로세스 블록 612를 참조하면, 로직은 둘 이상의 코어 각각에 대해 메모리 대역폭 사용 정보가 이용 가능한지를 결정한다. 그러한 경우, 로직은 도 4에 도시된 것과 같은 알고리즘에 따라 그 정보에 (적어도 부분적으로) 기초하여 요청들에 대한 우선 순위 태그들을 결정하고, 스위치에 대한 액세스를 중재한다(블록 614). 그렇지 않은 경우, 로직은 LLC 중재 할당과 유사한 방식으로 우선 순위 태그들을 결정하고, 스위치에 대한 액세스를 중재한다(블록 616).
프로세스 블록 618을 참조하면, 로직은 LLC 비적중을 생성한 요청들에 우선 순위 태그들을 할당한다. 이어서, 요청들은 메모리 제어기(예를 들어, 도 2에 도시된 메모리 제어기(120))로 전송된다.
도 7은 본 발명의 일 실시예에 따른, DTM에서 동작하는 동안에 DRAM에 대한 요청들을 발행하기 위한 알고리즘의 선택된 양태들을 나타내는 흐름도이다. 프로세스 블록 702를 참조하면, 로직(예를 들어, 도 2에 도시된 DRAM 억제 로직(226))은 시스템이 DTM에 있는지를 결정한다. 예컨대, 로직은 DRAM 장치 온도가 임계치를 초과했음을 지시하는 정보를 온도 센서(예를 들어, 도 2에 도시된 센서(124))로부터 수신할 수 있다. 이에 응답하여, 로직은 DTM을 개시할 수 있다. 시스템이 DTM에 있지 않는 경우, 로직은 정상 스케줄링 정책이 구현되게 할 수 있다(블록 706).
시스템이 DTM에 있는 경우, 로직은 반복적인 일련의 온/오프 사이클들의 온 상태를 개시할 수 있다. 예컨대, 로직은 DRAM 전력을 턴온하고, 지정된 전력 온 지연 동안 기다리고, 이어서 DRAM에 발행할 N개의 요청을 선택하기 위해 N번 반복될 수 있는 루프(예를 들어, 블록 708-718)를 개시할 수 있다.
프로세스 블록 708을 참조하면, 로직은 블록 708에서 (예를 들어, 도 5에 도시된 것과 같은) DRAM 대역폭 휴리스틱이 이용 가능한지를 결정할 수 있다. DRAM 휴리스틱이 이용 가능한 경우, 로직은 휴리스틱에 의해 결정되는 스케줄링 우선순위들에 기초하여 가중된 라운드 로빈 중재 스킴을 적용할 수 있다(블록 710). 휴리스틱이 이용 가능하지 않은 경우, 로직은 블록 714에서 요청들에 우선 순위 태그들이 첨부되었는지를 결정한다. 요청들이 우선 순위 태그들을 가진 경우, 로직은 우선 순위 태그들에 적어도 부분적으로 기초하여 DRAM에 발행할 요청을 선택한다(블록 716). 요청들이 우선 순위 태그들을 갖지 않은 경우, 로직은 예를 들어 무작위 선택 정책을 이용하여 요청을 선택할 수 있다(블록 712).
프로세스 블록 718을 참조하면, DTM의 온 상태 동안, 로직은 N개의 요청을 선택하고 발행하기 위한 (전술한 바와 같은) 루프를 구현한다. N개의 요청이 DRAM에 대해 발행된 후에, 로직은 오프 사이클로 전환될 수 있다. 예를 들어, 로직은 DRAM 전력을 턴오프하고, 지정된 지연 기간 동안 기다리고, 이어서 M 클럭 오프 카운터를 개시할 수 있다(블록 720). M개 사이클의 종료 후, 프로세스는 블록 722로 나타내는 바와 같이 블록 702로 복귀할 수 있다.
본 발명의 실시예들의 요소들은 기계 실행 가능 명령어들을 저장하기 위한 기계 판독 가능 매체로서도 제공될 수 있다. 기계 판독 가능 매체는 플래시 메모리, 광 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 디지털 다기능/비디오 디스크(DVD) ROM, 랜덤 액세스 메모리(RAM), 소거 가능하고 프로그래밍 가능한 판독 전용 메모리(EPROM), 전기적으로 소거 가능하고 프로그래밍 가능한 판독 전용 메모리(EEPROM), 자기 또는 광 카드, 전파 매체 또는 전자 명령어들을 저장하기에 적합한 다른 타입의 기계 판독 가능 매체를 포함할 수 있지만, 이에 한정되지는 않는다. 예를 들어, 본 발명의 실시예들은 통신 링크(예를 들어, 모뎀 또는 네트워크 접속)를 경유하여 반송파 또는 다른 전파 매체 내에 구현된 데이터 신호들을 통해 원격 컴퓨터(예를 들어, 서버)에서 요청 컴퓨터(예를 들어, 클라이언트)로 전송될 수 있는 컴퓨터 프로그램으로서 다운로드될 수 있다.
위의 설명에서, 본 발명의 실시예들을 설명하기 위해 소정의 용어가 사용된다. 예를 들어, "로직"이라는 용어는 하나 이상의 기능을 수행하는 하드웨어, 펌웨어, 소프트웨어(또는 이들의 임의 조합)를 나타낸다. 예를 들어, "하드웨어"의 예들은 집적 회로, 유한 상태 머신 또는 조합 로직도 포함하지만 이에 한정되지 않는다. 집적 회로는 마이크로프로세서, 주문형 집적 회로, 디지털 신호 프로세서, 마이크로컨트롤러 등과 같은 프로세서의 형태를 가질 수 있다.
본 명세서 전반에서의 "하나의 실시예" 또는 "일 실시예"에 대한 언급은 그 실시예와 관련하여 설명되는 특정 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다는 알아야 한다. 따라서, 명세서의 다양한 부분에서의 "일 실시예" 또는 "하나의 실시예" 또는 "대안 실시예"에 대한 둘 이상의 언급은 모두가 반드시 동일 실시예를 지칭하지는 않는다는 것을 강조하며, 알아야 한다. 더구나, 특정 특징들, 구조들 또는 특성들은 본 발명의 하나 이상의 실시예에서 적합할 때 결합될 수 있다.
마찬가지로, 본 발명의 실시예들의 위의 설명에서, 개시를 간략화하여 다양한 발명의 양태들 중 하나 이상의 이해를 돕기 위한 목적으로 다양한 특징들이 단일 실시예, 도면 또는 그의 설명 내에 종종 함께 그룹화된다는 것을 알아야 한다. 그러나, 이러한 개시 방법은 청구 발명이 각각의 청구항에 명확하게 기재된 것보다 많은 특징을 필요로 한다는 의도를 반영하는 것으로 해석되지 않아야 한다. 오히려, 아래의 청구항들이 보여주듯이, 발명의 양태들은 단일의 위에 개시된 실시예의 모든 특징보다 적은 특징들 내에 존재한다. 따라서, 상세한 설명에 이어지는 청구항들은 상세한 설명에 명백히 포함된다.

Claims (28)

  1. 둘 이상의 프로세서 코어들-각각의 프로세서 코어는 각각의 프로세서 코어에 대한 최종 레벨 캐시 파이프라인 요청 점유 값을 모니터링하기 위한 큐 점유 모니터와 연관됨-; 및
    상기 둘 이상의 프로세서 코어들과 결합되는 자원 공유 로직-상기 자원 공유 로직은 선택된 프로세서 코어를 결정하고, 상기 선택된 프로세서 코어는 상기 선택된 프로세서 코어에 대응하는 상기 최종 레벨 캐시 파이프라인 요청 점유 값에 기초하여 적어도 하나의 자원에 대한 액세스를 가짐-
    을 포함하는 시스템.
  2. 제1항에 있어서, 상기 자원 공유 로직은 메모리 제어기가 동적 랜덤 액세스 메모리(DRAM) 억제(throttling) 모드에 있다는 지시(indication)를 수신하기 위한 입력을 포함하고, 또한 상기 선택된 프로세서 코어는 상기 메모리 제어기가 DRAM 억제 모드에 있는 경우에 상기 적어도 하나의 자원에 대한 액세스를 갖는 시스템.
  3. 제2항에 있어서, 상기 적어도 하나의 자원은 공유되는 최종 레벨 캐시인 시스템.
  4. 제3항에 있어서,
    상기 자원 공유 로직은
    상기 둘 이상의 프로세서 코어들 각각에 대한 코어별 최종 레벨 캐시 적중률을 모니터링하기 위한 제2 모니터; 및
    상기 최종 레벨 캐시에 대한 액세스의 중재의 우선 순위를 변경하기 위한 억제 우선 순위 선택 로직
    을 포함하는 시스템.
  5. 제4항에 있어서, 상기 자원 공유 로직은 최종 레벨 캐시 비적중(miss)을 생성하는 요청들을 메모리 제어기로 전송하기 위한 스위칭 로직을 더 포함하고, 상기 억제 우선 순위 선택 로직은 상기 메모리 제어기에 대한 액세스를 중재하는 시스템.
  6. 제5항에 있어서, 상기 적어도 하나의 자원은 메인 시스템 메모리인 시스템.
  7. 제6항에 있어서, 메인 시스템 메모리에 대한 액세스를 제어하는 상기 메모리 제어기를 더 포함하고, 상기 메모리 제어기는 상기 시스템이 DRAM 억제 모드에 있는지를 결정하고, 상기 시스템이 DRAM 억제 모드에 있는지에 대한 지시를 상기 자원 공유 로직에 제공하기 위한 DRAM 억제 로직을 포함하는 시스템.
  8. 제7항에 있어서, 상기 메모리 제어기는 상기 DRAM 억제 로직에 결합되는 DRAM 대역폭 모니터를 더 포함하고, 상기 DRAM 대역폭 모니터는 상기 둘 이상의 프로세서 코어들 각각에 대해, 대응하는 프로세서 코어에 대한 DRAM 대역폭 사용의 레벨을 지시하는 DRAM 대역폭 사용 값을 결정하는 시스템.
  9. 제7항에 있어서, 상기 둘 이상의 프로세서 코어들, 상기 자원 공유 로직 및 상기 메모리 제어기는 동일 집적 회로 상에 위치하는 시스템.
  10. 제7항에 있어서, 상기 둘 이상의 프로세서 코어들 및 상기 자원 공유 로직은 제1 집적 회로 상에 위치하고, 상기 메모리 제어기는 제2 집적 회로 상에 위치하는 시스템.
  11. 시스템 내의 공유 자원에 대한 액세스를 제어하기 위한 방법으로서,
    자원 공유 로직에서, 상기 시스템이 동적 랜덤 액세스 메모리(DRAM) 억제 모드에 있다는 지시를 수신하는 단계;
    상기 자원 공유 로직과 결합되는 둘 이상의 프로세서 코어들 각각에 대해 최종 레벨 캐시 중재 가중치를 계산하는 단계-상기 둘 이상의 프로세서 코어들 각각에 대한 상기 최종 레벨 캐시 중재 가중치는 사전 결정된 간격 동안의 최종 레벨 캐시 요청 큐 점유 및 해당 코어에 대한 최종 레벨 캐시 적중률에 기초함-; 및
    상기 최종 레벨 캐시 중재 가중치들에 기초하여 상기 둘 이상의 프로세서 코어들 중 선택된 하나가 최종 레벨 캐시에 액세스할 수 있게 하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 둘 이상의 프로세서 코어들 각각에 대해 최종 레벨 캐시 적중률을 계산하는 단계; 및
    복수의 메모리 요청 각각에 우선 순위 태그를 첨부하는 단계-각각의 요청에 대한 우선 순위 태그는 상기 요청을 발행한 코어와 관련된 최종 레벨 캐시 적중률 및 메모리 대역폭 사용에 기초함-
    를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 둘 이상의 프로세서 코어들 각각에 대해 평균 메모리 대역폭 값을 결정하는 단계; 및
    시스템 메모리에 전송할 요청을 상기 요청과 관련된 우선 순위 태그 및 상기 요청을 발행한 프로세서 코어와 관련된 평균 메모리 대역폭 값에 기초하여 선택하는 단계
    를 더 포함하는 방법.
  14. 제13항에 있어서, 상기 방법은 하드웨어에서 구현되는 방법.
  15. 둘 이상의 프로세서 코어들-각각의 프로세서 코어는 각각의 프로세서 코어에 대한 최종 레벨 캐시 점유 값을 모니터링하기 위한 큐 점유 모니터와 연관됨-, 및
    상기 둘 이상의 프로세서 코어들과 결합되는 자원 공유 로직-상기 자원 공유 로직은 선택된 프로세서 코어를 결정하고, 상기 선택된 프로세서 코어는 상기 선택된 프로세서 코어에 대응하는 상기 최종 레벨 캐시 점유 값 및 상기 코어에 대한 최종 레벨 캐시 적중률에 기초하여 적어도 하나의 자원에 대한 액세스를 가짐-
    을 포함하는 집적 회로; 및
    상기 집적 회로에 메인 시스템 메모리를 제공하기 위해 상기 집적 회로에 결합되는 적어도 하나의 동적 랜덤 액세스 메모리 장치
    를 포함하는 시스템.
  16. 제15항에 있어서, 상기 자원 공유 로직은 메모리 제어기가 동적 랜덤 액세스 메모리(DRAM) 억제 모드에 있다는 지시를 수신하기 위한 입력을 포함하고, 또한 상기 선택된 프로세서 코어는 상기 메모리 제어기가 DRAM 억제 모드에 있는 경우에 상기 적어도 하나의 자원에 대한 액세스를 갖는 시스템.
  17. 제16항에 있어서, 상기 적어도 하나의 자원은 공유되는 최종 레벨 캐시인 시스템.
  18. 삭제
  19. 제17항에 있어서,
    상기 자원 공유 로직은
    상기 둘 이상의 프로세서 코어들 각각에 대한 코어별 최종 레벨 캐시 적중률을 모니터링하기 위한 제2 모니터; 및
    상기 최종 레벨 캐시에 대한 액세스를 중재하기 위한 억제 우선 순위 선택 로직
    을 포함하는 시스템.
  20. 제19항에 있어서, 상기 자원 공유 로직은 최종 레벨 캐시 비적중을 생성하는 요청들을 메모리 제어기로 전송하기 위한 스위칭 로직을 더 포함하고, 또한 상기 억제 우선 순위 선택 로직은 상기 메모리 제어기에 대한 액세스를 중재하는 시스템.
  21. 제20항에 있어서, 상기 적어도 하나의 자원은 메인 시스템 메모리인 시스템.
  22. 제21항에 있어서, 메인 시스템 메모리에 대한 액세스를 제어하는 상기 메모리 제어기를 더 포함하고, 상기 메모리 제어기는 상기 시스템이 DRAM 억제 모드에 있는지를 결정하고, 상기 시스템이 DRAM 억제 모드에 있는지에 대한 지시를 상기 자원 공유 로직에 제공하기 위한 DRAM 억제 로직을 포함하는 시스템.
  23. 제22항에 있어서, 상기 메모리 제어기는 상기 DRAM 억제 로직에 결합되는 DRAM 대역폭 모니터를 더 포함하고, 상기 DRAM 대역폭 모니터는 상기 둘 이상의 프로세서 코어들 각각에 대해, 대응하는 프로세서 코어에 대한 DRAM 대역폭 사용의 레벨을 지시하는 DRAM 대역폭 사용 값을 결정하는 시스템.
  24. 제22항에 있어서, 상기 둘 이상의 프로세서 코어들, 상기 자원 공유 로직 및 상기 메모리 제어기는 동일 집적 회로 상에 위치하는 시스템.
  25. 제22항에 있어서, 상기 둘 이상의 프로세서 코어들 및 상기 자원 공유 로직은 제1 집적 회로 상에 위치하고, 상기 메모리 제어기는 제2 집적 회로 상에 위치하는 시스템.
  26. 열 이벤트의 지시를 수신하는 단계;
    상기 열 이벤트의 지시의 수신에 응답하여, 둘 이상의 코어들 각각에 대한 공유 자원 사용을 측정하는 단계; 및
    상기 둘 이상의 코어들의 공유 자원 사용에 기초하여 공유 자원에 대한 할당의 코어 우선 순위를 동적으로 재배열하여, 많은 DRAM 대역폭을 사용하는 코어들보다, 많은 캐시를 사용하고 적은 동적 랜덤 액세스 메모리(DRAM) 대역폭을 사용하는 코어들에게 공유 자원의 액세스에 대해 더 높은 우선 순위를 부여하는 단계
    를 포함하는 방법.
  27. 제26항에 있어서,
    상기 둘 이상의 코어들 각각에 대한 공유 자원 사용을 측정하는 단계는
    최종 레벨 캐시 파이프라인 요청 점유 값을 측정하는 단계;
    코어별 최종 레벨 캐시 적중률을 측정하는 단계; 및
    동적 랜덤 액세스 메모리(DRAM) 대역폭 사용 값을 측정하는 단계
    중 적어도 하나를 포함하는 방법.
  28. 제26항에 있어서, 상기 공유 자원은 DRAM인 방법.
KR1020107021344A 2008-03-26 2009-03-23 전력/성능 균형을 개선하기 위한 멀티코어 메모리 열 억제 알고리즘 KR101196951B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/055,417 US8209493B2 (en) 2008-03-26 2008-03-26 Systems and methods for scheduling memory requests during memory throttling
US12/055,417 2008-03-26
PCT/US2009/037931 WO2009120620A2 (en) 2008-03-26 2009-03-23 Multi-core memory thermal throttling algorithms for improving power/performance tradeoffs

Publications (2)

Publication Number Publication Date
KR20100113175A KR20100113175A (ko) 2010-10-20
KR101196951B1 true KR101196951B1 (ko) 2012-11-05

Family

ID=41114613

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020107021344A KR101196951B1 (ko) 2008-03-26 2009-03-23 전력/성능 균형을 개선하기 위한 멀티코어 메모리 열 억제 알고리즘

Country Status (4)

Country Link
US (1) US8209493B2 (ko)
KR (1) KR101196951B1 (ko)
CN (1) CN101960418B (ko)
WO (1) WO2009120620A2 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8635625B2 (en) * 2008-04-04 2014-01-21 International Business Machines Corporation Power-aware workload allocation in performance-managed computing environments
US8301742B2 (en) * 2008-04-07 2012-10-30 International Business Machines Corporation Systems and methods for coordinated management of power usage and runtime performance in performance-managed computing environments
US8769201B2 (en) * 2008-12-02 2014-07-01 Intel Corporation Technique for controlling computing resources
EP2549384B1 (en) * 2010-03-18 2018-01-03 Fujitsu Limited Multi-core processor system, arbitration circuit control method, and arbitration circuit control program
US8819687B2 (en) 2010-05-07 2014-08-26 Advanced Micro Devices, Inc. Scheduling for multiple memory controllers
US8667493B2 (en) * 2010-05-07 2014-03-04 Advanced Micro Devices, Inc. Memory-controller-parallelism-aware scheduling for multiple memory controllers
US8639887B2 (en) * 2010-06-23 2014-01-28 International Business Machines Corporation Dynamically altering a pipeline controller mode based on resource availability
US8635409B2 (en) 2010-06-23 2014-01-21 International Business Machines Corporation Dynamic mode transitions for cache instructions
US8407411B2 (en) * 2010-06-28 2013-03-26 Wuxi Vimicro Corporation Operation frequency adjusting system and method
US8850131B2 (en) 2010-08-24 2014-09-30 Advanced Micro Devices, Inc. Memory request scheduling based on thread criticality
US9658678B2 (en) 2011-03-31 2017-05-23 Intel Corporation Induced thermal gradients
US9490003B2 (en) * 2011-03-31 2016-11-08 Intel Corporation Induced thermal gradients
TWI550408B (zh) * 2011-04-22 2016-09-21 晨星半導體股份有限公司 多核心電子系統及其速率調節裝置
US20120304186A1 (en) * 2011-05-26 2012-11-29 International Business Machines Corporation Scheduling Mapreduce Jobs in the Presence of Priority Classes
US8463960B2 (en) * 2011-08-08 2013-06-11 Arm Limited Synchronisation of data processing systems
US8661163B2 (en) * 2011-08-22 2014-02-25 Apple Inc. Tag allocation for queued commands across multiple devices
WO2013101138A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Identifying and prioritizing critical instructions within processor circuitry
US9201804B1 (en) 2012-02-06 2015-12-01 Google Inc. Dynamically adapting the configuration of a multi-queue cache based on access patterns
US9373182B2 (en) * 2012-08-17 2016-06-21 Intel Corporation Memory sharing via a unified memory architecture
US9684633B2 (en) 2013-01-24 2017-06-20 Samsung Electronics Co., Ltd. Adaptive service controller, system on chip and method of controlling the same
US10402232B2 (en) * 2013-02-11 2019-09-03 Wind River Systems, Inc. Method and system for deterministic multicore execution
CN106164881B (zh) * 2013-03-15 2022-01-14 英特尔公司 异构计算系统中的工作窃取
CN104572493A (zh) * 2013-10-23 2015-04-29 华为技术有限公司 一种存储器资源优化方法和装置
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US10289547B2 (en) 2014-02-14 2019-05-14 Western Digital Technologies, Inc. Method and apparatus for a network connected storage system
US10587689B2 (en) * 2014-02-14 2020-03-10 Western Digital Technologies, Inc. Data storage device with embedded software
US9911508B2 (en) 2014-09-18 2018-03-06 Via Alliance Semiconductor Co., Ltd Cache memory diagnostic writeback
US9645935B2 (en) 2015-01-13 2017-05-09 International Business Machines Corporation Intelligent bandwidth shifting mechanism
JP6197817B2 (ja) * 2015-03-27 2017-09-20 日本電気株式会社 中継装置、中継方法及び中継システム
US10169235B2 (en) 2015-12-15 2019-01-01 Apple Inc. Methods of overriding a resource retry
US10146681B2 (en) 2015-12-24 2018-12-04 Intel Corporation Non-uniform memory access latency adaptations to achieve bandwidth quality of service
US10049714B1 (en) * 2017-07-19 2018-08-14 Nanya Technology Corporation DRAM and method for managing power thereof
US10810141B2 (en) * 2017-09-29 2020-10-20 Intel Corporation Memory control management of a processor
US20190303281A1 (en) * 2018-03-30 2019-10-03 Amin Firoozshahian Survivability guarantees for memory traffic
CN110795202B (zh) * 2018-08-02 2023-11-17 华为技术有限公司 一种虚拟化集群资源管理系统的资源分配方法以及装置
US10901893B2 (en) * 2018-09-28 2021-01-26 International Business Machines Corporation Memory bandwidth management for performance-sensitive IaaS
US10929062B2 (en) 2018-11-07 2021-02-23 International Business Machines Corporation Gradually throttling memory due to dynamic thermal conditions
US20230137769A1 (en) * 2021-11-03 2023-05-04 Intel Corporation Software thread-based dynamic memory bandwidth allocation
US11941250B2 (en) * 2022-05-06 2024-03-26 Hewlett Packard Enterprise Development Lp Optimizing application execution based on memory-level parallelism (MLP)-based metrics

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006638A1 (en) 2002-07-08 2004-01-08 Lewis Oberlander Method and apparatus for communication control using adaptive throttling
US20040260804A1 (en) 2003-06-19 2004-12-23 International Business Machines Corporation System and method for throttling events in an information technology system

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5434678A (en) * 1993-01-11 1995-07-18 Abecassis; Max Seamless transmission of non-sequential video segments
US6701272B2 (en) * 2001-03-30 2004-03-02 Intel Corporation Method and apparatus for optimizing thermal solutions
US7248585B2 (en) * 2001-10-22 2007-07-24 Sun Microsystems, Inc. Method and apparatus for a packet classifier
US7318130B2 (en) 2004-06-29 2008-01-08 Intel Corporation System and method for thermal throttling of memory modules
US7191088B1 (en) 2004-10-25 2007-03-13 Nvidia Corporation Method and system for memory temperature detection and thermal load management
US7581064B1 (en) * 2006-04-24 2009-08-25 Vmware, Inc. Utilizing cache information to manage memory access and cache utilization
US8272781B2 (en) 2006-08-01 2012-09-25 Intel Corporation Dynamic power control of a memory device thermal sensor
US7739461B2 (en) * 2007-07-10 2010-06-15 International Business Machines Corporation DRAM power management in a memory controller
US8302098B2 (en) * 2007-12-06 2012-10-30 Oracle America, Inc. Hardware utilization-aware thread management in multithreaded computer systems

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040006638A1 (en) 2002-07-08 2004-01-08 Lewis Oberlander Method and apparatus for communication control using adaptive throttling
US20040260804A1 (en) 2003-06-19 2004-12-23 International Business Machines Corporation System and method for throttling events in an information technology system

Also Published As

Publication number Publication date
KR20100113175A (ko) 2010-10-20
CN101960418B (zh) 2013-04-24
WO2009120620A3 (en) 2009-12-23
US20090248976A1 (en) 2009-10-01
US8209493B2 (en) 2012-06-26
CN101960418A (zh) 2011-01-26
WO2009120620A2 (en) 2009-10-01

Similar Documents

Publication Publication Date Title
KR101196951B1 (ko) 전력/성능 균형을 개선하기 위한 멀티코어 메모리 열 억제 알고리즘
US9201816B2 (en) Data processing apparatus and a method for setting priority levels for transactions
US7992017B2 (en) Methods and apparatuses for reducing step loads of processors
US8392633B2 (en) Scheduling requesters of a shared storage resource
KR101286700B1 (ko) 멀티 코어 프로세서 시스템에서 로드 밸런싱을 위한 장치및 방법
CN105320608B (zh) 用于控制存储器设备处理访问请求的存储器控制器和方法
US7647444B2 (en) Method and apparatus for dynamic hardware arbitration
JP6058303B2 (ja) 異なる複数の優先度レベルのトランザクション要求をサポートする集積回路および方法
JP2008234659A (ja) 通信チャネルを介して送られるメッセージ間の調停を行うデータ処理装置および方法
JP4910022B2 (ja) 低バンド幅で局所集中アクセスを保証する調停装置、調停方法、調停装置を含む動画処理装置、及び集積回路
JPWO2003083693A1 (ja) 分散処理システムにおけるタスクスケジューリング装置
JP2006202244A (ja) ソースデバイスに対するリクエストをスケジューリングする装置及び方法
KR101356033B1 (ko) 하이브리드 주메모리 시스템 및 이를 위한 태스크 스케줄링 방법
JP2005216308A (ja) 帯域幅成形システム及び方法
US20180341592A1 (en) Prefetch performance
US10705985B1 (en) Integrated circuit with rate limiting
JP5678923B2 (ja) ストレージシステム、入出力制御装置、入出力制御方法、および、コンピュータ・プログラム
JP2000250853A (ja) バス調整制御装置
US11743201B1 (en) Dynamic client-server arbiter
US10721173B2 (en) Credit distribution to clients
Liu et al. Cooperative job scheduling and data allocation for busy data-intensive parallel computing clusters
Ma et al. Improve LLC Bypassing Performance by Memory Controller Improvements in Heterogeneous Multicore System
US20190391943A1 (en) Semiconductor device and bus generator
CN114760327A (zh) 云盘资源配置的调整方法及装置
JPH05314063A (ja) 多重バス制御方式

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20151002

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160929

Year of fee payment: 5