KR20230073245A - 전압 제한 조건에서의 프로세서 성능 증가 - Google Patents

전압 제한 조건에서의 프로세서 성능 증가 Download PDF

Info

Publication number
KR20230073245A
KR20230073245A KR1020237012350A KR20237012350A KR20230073245A KR 20230073245 A KR20230073245 A KR 20230073245A KR 1020237012350 A KR1020237012350 A KR 1020237012350A KR 20237012350 A KR20237012350 A KR 20237012350A KR 20230073245 A KR20230073245 A KR 20230073245A
Authority
KR
South Korea
Prior art keywords
subset
operating
processing unit
enabling
performance characteristics
Prior art date
Application number
KR1020237012350A
Other languages
English (en)
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 KR20230073245A publication Critical patent/KR20230073245A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • 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/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/3243Power saving in microcontroller unit
    • 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
    • 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)
  • Human Computer Interaction (AREA)
  • Power Sources (AREA)
  • Advance Control (AREA)

Abstract

처리 유닛을 동작시키는 방법(500)은, 처리 유닛이 전압 제한된 상태(507)에서 동작하는 것을 검출하는 것에 응답하여, 처리 유닛의 동작 제약들의 세트에서 각각의 동작 제약에 대한 헤드룸 값을 계산함으로써 헤드룸 값들(511)의 세트를 계산하는 단계, 헤드룸 값들의 계산된 세트에 기초하여, 처리 유닛에서 가능화(519)를 위한 하나 이상의 성능 특징들(513)의 서브세트를 성능 특징들의 세트로부터 선택하는 단계, 및 처리 유닛에서 선택된 성능 특징들의 서브세트를 가능화하는 단계를 포함한다.

Description

전압 제한 조건에서의 프로세서 성능 증가
본 발명은 컴퓨팅 디바이스 및 그 동작 방법에 관한 발명이다.
현대의 컴퓨팅 시스템들은 일련의 열적 및 전기적 제약에 따라 동작하도록 설계된다. 이러한 제약 내에서 동작을 보장하는 것은 컴퓨팅 시스템 컴포넌트에 대한 손상을 방지하고 시스템의 수명을 최대화하는 것을 돕는다. 중앙 처리 유닛(CPU) 및 그래픽 처리 유닛(GPU)과 같은 처리 유닛은 과열로 인해 손상될 수 있으며, 따라서 제약이 위반될 때 처리 유닛 또는 처리 유닛(예를 들어, 특정 코어)의 일부를 자동으로 셧다운하거나 스로틀링하는 동작 안전 가드로 설계된다. 따라서, 전력 소비가 감소되어 안전한 동작 온도가 유지되고, 처리 유닛 하드웨어에 대한 손상이 방지된다.
또한, 처리 유닛들은 전형적으로 열 및 전기적 제약 내에서 동작하는 동안 가능한 한 신속하고 효율적으로 작업을 수행하도록 설계된다(예를 들어, 소비된 전력의 와트당 성능을 최대화함). 성능을 개선하기 위한 하나의 전략은 열 및 전기 파라미터를 더 효과적으로 관리하기 위해 더 높은 효율 메커니즘 (예를 들어, 보다 효율적인 냉각 시스템)을 활용하여 열 및 전기적 제약에서 헤드룸을 증가시키는 것이다. 이는 빈도 및 전압을 증가시키는 것을 포함하여, 프로세서를 더 높은 상태로 실행할 수 있게 한다. 또한, 동작 전압은 프로세서에 대한 더 높은 유효 전압을 제공하기 위해 그리고 그 결과 더 높은 성능을 달성하기 위해, 드룹(droop) 완화와 같은 메커니즘에 의해 최적화될 수 있다.
본 개시내용은 첨부된 도면의 도면에서 제한이 아닌, 예로서 예시된다.
도 1은 실시예에 따른 컴퓨팅 시스템을 도시한다.
도 2는 실시예에 따른 처리 유닛을 도시한다.
도 3은 실시예에 따른 시스템 관리 유닛에서의 성능 최적화 프레임워크를 도시한다.
도 4는 실시예에 따른 성능 최적화 프로세스를 도시한다.
다음의 설명은 실시예들의 양호한 이해를 제공하기 위해 특정 시스템들, 컴포넌트들, 방법들 등의 예들과 같은 다수의 특정 세부사항들을 설명한다. 그러나, 적어도 일부 실시예가 이러한 특정 세부 사항 없이 실시될 수 있다는 것이 당업자에게 명백할 것이다. 다른 예들에서, 잘 알려진 컴포넌트들 또는 방법들은 상세히 설명되지 않거나, 실시예들을 불필요하게 모호하게 하는 것을 피하기 위해 간단한 블록도 형식으로 제시된다. 따라서, 제시된 특정 세부사항은 단지 예시적인 것이다. 특정 구현예들은 이러한 예시적인 세부사항들과 달라질 수 있고, 실시예들의 범위 내에 있는 것으로 여전히 고려될 수 있다.
일 실시예에서, 프로세서의 동작은 열 설계된 전력(TDP), 열적으로 설계된 전류 (TDC), 전기적으로 설계된 전류(EDC) 및/또는 동작 온도(Tj)를 포함하는 열 및 전기 동작 제약에 의해 제한된다. TDP는 컴퓨터의 냉각 시스템에 의해 소산될 수 있는 처리 유닛 또는 컴포넌트(예를 들어, 중앙 처리 유닛(CPU) 그래픽 처리 유닛(GPU) 등)에 의해 생성된 최대 열량이다. TDC는 열 제약을 위반하지 않고 컴퓨터 시스템의 전압 레귤레이터에 의해 전달될 수 있는 최대 전류량이다. EDC는 컴퓨팅 시스템의 전압 레귤레이터에 의해 전달될 수 있는 피크 전류의 최대량이다.
진행된 컴퓨팅 노드들에 의해 전달되는 전력 효율이 증가함에 따라, 이러한 노드들 내의 처리 유닛들은 특정 유형들의 작업부하들에 대해 TDC, TDP, EDC 또는 Tj 제약들에 의해 더 이상 결합되지 않는다. 더 높은 전압에서 나타나는 기능적 결함 및 장기간 신뢰성 문제가 있으면, 처리 유닛은 동작 전압에 의해 제한된다.
전압 한계에서 이미 동작하는 프로세서의 계산 성능은, 헤드룸이 여전히 상기 열 및 전기적 제약에 존재하는 경우 더 증가될 수 있다. 일 실시예에서, 동작 전압의 증가 없이 성능을 증가시키는 프로세서 특징들이 식별되고 가능화된다. 가능한 특징들은 열 및 전기적 제약(예를 들어, TDC, TDP, EDC, Tj)이 회피되도록 이용 가능한 열 및 전기 예산에 대한 영향에 기초하여 선택된다.
프로세서의 동작 동안, 성능 최적화 프레임워크는 프로세서가 그 전압 한계에서 동작할 때, 열 및 전기적 제약을 위반하지 않고 가능화될 수 있는 프로세서 특징을 식별함으로써 전압 제한된 조건에 응답하고, 식별된 특징이 프로세서의 계산 성능을 개선할 수 있게 한다. 따라서, 프레임워크는 프로세서 성능을 동적으로 최대화하면서 프로세서가 전압 제한된 상태에 의해 시행되는 신뢰성 한계 내에서 계속 동작할 수 있게 한다.
도 1은 전압 제한된 프로세서의 계산 성능을 증가시키기 위한 상기 프레임워크가 (예를 들어, 사이클당 명령들에 의해 측정된 바와 같이) 구현되는 컴퓨팅 시스템(100)의 실시예를 도시한다. 일반적으로, 컴퓨팅 시스템(100)은 랩탑 또는 데스크탑 컴퓨터, 모바일 디바이스, 서버 등을 포함하지만 이에 제한되지 않는 다수의 상이한 유형의 디바이스 중 임의의 것으로 구현된다. 컴퓨팅 시스템(100)은 버스(101)를 통해 서로 통신하는 다수의 컴포넌트(102-108)를 포함한다. 컴퓨팅 시스템(100)에서, 각각의 컴포넌트(102-108)는 버스(101)를 통해 직접 또는 하나 이상의 다른 컴포넌트(102-108)를 통해 임의의 다른 컴포넌트(102-108)와 통신할 수 있다. 컴퓨팅 시스템(100)의 컴포넌트(101-108)는 랩탑 또는 데스크탑 섀시 또는 휴대폰 케이스와 같은 단일 물리적 인클로저 내에 포함된다. 대안적인 실시예에서, 컴퓨팅 시스템(100)의 컴포넌트 중 일부는 전체 컴퓨팅 시스템(100)이 단일 물리적 인클로저 내에 위치하지 않도록 주변 디바이스로 구현된다.
컴퓨팅 시스템(100)은 또한 사용자로부터 정보를 수신하거나 사용자에게 정보를 제공하기 위한 사용자 인터페이스 디바이스를 포함한다. 구체적으로, 컴퓨팅 시스템(100)은 사용자로부터 정보를 수신하기 위한 키보드, 마우스, 터치 스크린, 또는 다른 디바이스와 같은 입력 디바이스(102)를 포함한다. 컴퓨팅 시스템(100)은 모니터, 발광 다이오드 (LED) 디스플레이, 액정 디스플레이, 또는 다른 출력 디바이스와 같은 디스플레이(105)를 통해 사용자에게 정보를 디스플레이한다.
컴퓨팅 시스템(100)은 유선 또는 무선 네트워크를 통해 데이터를 전송 및 수신하기 위한 네트워크 어댑터(107)를 추가로 포함한다. 컴퓨팅 시스템(100)은 또한 하나 이상의 주변 디바이스(108)를 포함한다. 주변 디바이스(108)는 질량 저장 디바이스, 위치 검출 디바이스, 센서, 입력 디바이스, 또는 컴퓨팅 시스템(100)에 의해 사용되는 다른 유형의 디바이스를 포함할 수 있다.
컴퓨팅 시스템(100)은 다수의 처리 유닛들(104)의 경우에 병렬로 동작할 수 있는 하나 이상의 처리 유닛들(104)을 포함한다. 처리 유닛(104)은 메모리 서브시스템(106)에 저장된 명령어(109)를 수신하고 실행한다. 일 실시예에서, 처리 유닛(104) 각각은 공통 집적 회로 기판 상에 위치하는 다수의 컴퓨팅 노드를 포함한다. 메모리 서브시스템(106)은, 랜덤 액세스 메모리(RAM) 모듈들, 판독 전용 메모리(ROM) 모듈들, 하드 디스크들, 및 다른 비일시적 컴퓨터 판독가능 매체와 같은, 컴퓨팅 시스템(100)에 의해 사용되는 메모리 디바이스들을 포함한다.
컴퓨팅 시스템(100)의 일부 실시예들은 도 1에 도시된 바와 같은 실시예보다 더 적거나 더 많은 컴포넌트들을 포함할 수 있다. 예를 들어, 특정 실시예들은 임의의 디스플레이(105) 또는 입력 디바이스들(102) 없이 구현된다. 다른 실시예들은 특정 컴포넌트 중 하나 이상을 갖는다. 예를 들어, 컴퓨팅 시스템(100)의 일 실시예는 다수의 버스들(101), 네트워크 어댑터들(107), 메모리 디바이스들(106) 등을 가질 수 있다. 전력 공급부(110)에 의해 컴퓨팅 시스템(100)의 컴포넌트들(101 내지 108)에 전력이 공급된다.
도 2는 일 실시예에 따른 처리 유닛(들)(104) 중 하나를 나타내는 처리 유닛(200)의 하드웨어 컴포넌트들을 도시한다. 처리 유닛(200)은 하나 이상의 프로세서 코어들(210)의 세트, 시스템 관리 유닛(220), 및 단일 집적 회로 다이 상에 존재하는 센서들(230)을 포함한다. 대안적인 실시예에서, 컴포넌트들(210 내지 230) 중 일부 또는 전부는 별도의 다이 상에 또는 별개의 디바이스 패키지에 위치된다. 컴포넌트들(210 내지 230)은 하드웨어 회로부 또는 하드웨어, 소프트웨어, 및/또는 펌웨어 컴포넌트들의 조합을 사용하여 구현된다.
시스템 관리 유닛(220)은 열 및 전력 조건들을 모니터링하고, 프로세서 코어들의 동작을 제어하여, 성능을 최적화하거나 또는 (예를 들어, 과열 조건에 응답하여 코어들(210)을 스로틀링함으로써) 처리 유닛(200)을 손상시킬 수 있는 조건들을 방지한다. 또한, 시스템 관리 유닛(220)은 처리 유닛(200)이 동작 전압에 의해 제한되는지 여부를 결정하기 위해 동작 전압 및 TDC, EDC, TDP, 및 Tj 동작 제약을 모니터링하기 위한 성능 최적화 프레임워크를 구현한다. 처리 유닛(200)이 전압 제한된 상태에서 동작하고 있지 않을 때, 프로세서 코어들(210)은 성능의 한계 개선을 초래하는 더 높은 전력 소비 컴퓨팅 전략을 회피함으로써 와트당 성능을 최대화하여, 불필요한 작업을 감소시키고 와트당 성능을 최대화한다.
처리 유닛(200)이 전압 제한된 상태에서 동작하고 있을 때, 처리 유닛을 공급하는 동작 전압은 최대 전압 임계값 Vmax를 초과하지 않으면서 더 증가될 수 없다. 시스템 관리 유닛(220)에서의 성능 최적화 프레임워크는, EDC, TDC, TDP, Tj, 및 Vmax와 같은 시스템의 동작 제약들 각각에서 헤드룸의 양을 결정하고, 동작 제약들을 초과하지 않고 프로세싱 코어들(210)에서 성능을 향상시키는 특징들(예를 들어, 사이클당 명령들에 의해 측정된 바와 같음)을 가능하게 한다. 일 실시예에서, 프레임워크에 의한 일부 특징들의 가능화는 처리 유닛(200)의 전체 전력 효율을 감소시키지만, 동작 제약들을 초과하지 않고 전체 성능을 증가시킨다.
모니터링되는 동작 제약(예컨대, EDC, TDC, TDP, Tj, Vmax) 중 하나에 대응하는 동작 파라미터들 각각은, 프로세서 코어(들)(210) 전체에 걸쳐 전략적 위치들에 위치된 센서들(231)뿐만 아니라 처리 유닛(200)의 다른 곳에 위치된 센서들(230)을 포함하는 센서들(230-231)의 세트를 사용하여 측정된다. 측정된 동작 파라미터 값은 시스템 관리 유닛(220)으로 전송되고, 동작 제약 각각에 이용가능한 헤드룸의 양을 계산하는 데 사용된다. 이어서, 시스템 관리 유닛(220)은, 헤드룸의 양 및 각각의 제약에 대한 미리 결정된 임계값에 기초하여, 동작 제약들을 초과하지 않고 가능화될 수 있는 하나 이상의 성능 특징들의 세트를 식별한다. 일 실시예에서, 임계값은, 이용가능한 헤드룸이 임계값을 초과하는 경우 특징들의 세트가 가능화되도록, 특징들의 세트를 가능화함으로써 발생될 예상되는 페널티를 나타낸다.
명령어(109)에 의해 제공된 작업부하는 처리 유닛(200)의 하나 이상의 프로세서 코어(들)(210)에서 실행된다. 프로세서 코어(들)(210) 각각은 분기 예측 모듈(211), 하나 이상의 캐시(212) 및 이들의 캐시 컨트롤러, 레지스터(213), 프리페치(prefetch) 로직(214) 등과 같은 실행 프로세스를 용이하게 하는 디지털 로직 회로를 포함한다. 일부 특징은 프로세서 코어(들)(210)에서 디지털 로직 회로의 추가 기능을, 예를 들어 상이하고 보다 연산-집중적인 분기 예측 기능을, 가능하게 함으로써 시스템 관리 유닛(220)의 성능 최적화 프레임워크에 의해 가능해진다. 다른 특징들의 가능화는, 프로세싱 코어(들)(210)에서 이미 동작하는 메커니즘들 또는 기능들이 상이한 파라미터들에 따라 동작하게 한다. 예를 들어, 기존 기능(예를 들어, 분기 예측, 프리페칭 등)은 더 많은 양의 추론적 작업(종종 병렬로 수행됨)을 수행하거나 특정 기능이 더 큰 빈도에서 수행되게 하도록 튜닝될 수 있으며, 이는 추가적인 계산 및 전력 소비를 댓가로 성능의 증가를 초래한다.
더 높은 활동의 비용에서 더 높은 성능을 달성하기 위해 전압 제한된 모드가 검출될 때 가능화될 수 있는 성능 특징들의 예들은 시스템(100)에 따라 다음을 포함할 수 있다(다른 성능 특징들도 다른 시스템들에서 가능화될 수 있음):
예측기 효율 : 예측 모델의 사용을 가능하게 하고 처리 유닛(200)이 전압 제한된 상태에서 동작할 때 경량 기계 학습 알고리즘의 실행을 허용함으로써 예측기 효율 및 성능이 증가된다.
런어헤드 실행: 전압 제한된 상태에 있을 때, 명령어 및 데이터 스트림을 페치 및 분기 결과를 계산하고 이들을 시프트 레지스터에 저장하는 것은 분기 예측자의 정확도를 증가시키고 프리페처의 히트 레이트를 증가시킨다.
캐시 웨이 결정: 비전압 제한된 상태에서, 방향 예측은 판독을 위한 캐시 방식들을 선택하는 데 사용된다. 전압 제한된 상태에서, 방법 예측에 의존하는 대신 모든 캐시 방식들의 판독을 가능화함으로써, 캐시 히트 시간들이 감소되고 성능이 증가된다.
분기 예측기 룩업 분무립화: 비전압 제한된 상태에서, 분기 예측 모듈(211)은 레벨 2(L2) 캐시 룩업을 수행하기 전에 레벨 1(L1) 캐시 히트를 기다린다. 전압 제한된 상태에서, L1 캐시 룩업과 병렬로 L2 캐시 룩업을 수행하기 위한 예측자를 구현하기 위해 추가적인 계산 자원들의 사용을 가능화함으로써 하부 캐시 레이턴시가 달성된다.
더 빈번한 OC-IC 모드 스위칭 허용: op-캐시(OC)와 명령 캐시(IC)의 스위칭에 에너지 비용이 든다. 비전압 제한된 동작 동안, 과도한 모드 스위칭이 방지되어 에너지 비용을 최소화한다. 전압 제한된 상태에서, OC와 IC 사이에서 더 빈번한 모드 스위칭을 허용함으로써 성능이 증가된다.
OC의 조밀한 희박도: 비전압 제한된 상태에서, OC 내의 라인들은 IC에서 히트(hit)가 발생할 때에만 IC의 라인들로부터 구축된다. 즉, OC 라인은 전력을 절약하기 위해 재사용되는 IC 라인에 대해서만 구축된다. 전압 제한된 상태에서, IC 라인에서 히트가 발생했는지 여부에 관계없이 OC 라인이 IC 라인으로부터 구축될 때 성능이 증가된다.
모든 사이클 동시 다중 스레드(SMT) 스케줄링: 실행 파이프라인의 특정 컴포넌트들은 주어진 사이클에서 하나의 스레드만을 처리하고, 따라서 다수의 스레드들이 실행될 때 스레드들 사이를 스위칭한다. 스레드들 사이의 스위칭은, 새로운 스레드 상태를 반영하기 위해 조합 멀티플렉서 로직 노드들 전이 상태들로서 에너지 페널티를 초래한다. 비전압 제한된 상태에서, 스레드들 사이의 스위칭은 전력을 절약하기 위해 덜 빈번하게(예를 들어, 모든 사이클 대신에 매 2 또는 4 사이클마다) 발생한다. 전압 제한된 상태에서, 모든 사이클에서 스레드 스위칭을 허용함으로써 성능이 증가된다.
프로세서 코어(들)의 레지스터(213)는 프로세서 코어(들)(210)의 상이한 디지털 로직 회로의 동작을 가능화 및 제어하기 위한 구성 레지스터를 포함한다. 따라서, 특징들은 레지스터들(213)의 특정 구성 비트들을 어써트(assert)함으로써, 또는 분기 예측 모듈(211), 캐시(들)(212), 프리페처(214), 또는 다른 로직 회로들의 동작 파라미터들을 제어하는 레지스터들(213)의 값들을 변경함으로써 가능화된다.
도 3은 실시예에 따른 시스템 관리 유닛(220)에서의 성능 최적화 프레임워크의 컴포넌트들을 도시한다. 시스템 관리 유닛(220)은 시스템에 대한 최대 동작 전압 Vmax를 결정하기 위한 모듈(302), 동작 제약들(314) 각각에 대한 이용 가능한 헤드룸(316)의 양을 계산하기 위한 모니터링 로직(301), 가능화를 위해 성능 특징들의 세트를 식별하기 위한 선택 로직(304), 및 성능 특징을 가능화 및 불능화하기 위한 가능화 로직(305)을 포함한다.
최대 전압 계산 모듈(302)은 시스템의 온도(311)에 따라 변할 수 있는 최대 동작 전압(Vmax)을 계산한다. 최대 전압 계산 모듈(302)은 하나 이상의 센서(230-231)로부터 업데이트된 온도 값(311)을 수신하고, 처리 유닛(200)은 온도(311)에서 동작하도록 허용되는 Vmax(313)를 (예를 들어, 계산, 테이블 룩업 등에 의해) 결정한다. 비교 블록(303)에서, 업데이트된 동작 전압 값(312)이 센서(230-231)로부터 수신되고 Vmax(313)의 값과 비교된다. 비교 블록(303)은, 측정된 동작 전압(312)이 Vmax(313) 이상일 때 처리 유닛(200)이 전압 제한된 상태에서 동작하고 있음을 나타내도록 어써트되는 전압 제한된 표시(315)를 생성한다. 측정된 동작 전압(312)이 Vmax(313) 이하인 경우, 전압 제한된 표시(315)가 디어써트된다. 처리 유닛(200)은 전압 제한된 상태에서 동작할 때, 일부 헤드룸이 다른 동작 제약들(314)의 하나 이상에서 이용가능하다.
모니터링 로직(301)은 TDP, TDC, EDC, 및 Tj와 같은 동작 제약들(314) 각각에 대한 헤드룸 값을 포함하는 헤드룸 값들(316)의 세트를 계산한다. 센서(230-231)는 제약들(314) 각각에 대응하는 동작 파라미터를 포함하여 측정된 동작 파라미터들(310)의 세트를 모니터링 로직(301)으로 제공한다. 일 실시예에서, 처리 유닛(200)이 비전압 제한된 상태에서 동작할 때, 센서들 (230-231)은 특정 빈도(예를 들어, 전력, 전류, 및 1 밀리초마다 샘플링된 온도)에서의 동작 파라미터들의 서브세트를 주기적으로 감지한다. 전압 제한 상태가 검출될 때, 센서(230-231)는 감지 빈도를 증가시키고/시키거나 추가 동작 파라미터의 감지를 시작한다. 감지 빈도 및/또는 추가 센서들의 가능화의 증가는 전력 소비를 증가시킬 수 있지만, 처리 유닛(200)은 신속하게 변화하는 작업부하 또는 다른 조건에 의해 야기되는 변화에 더 신속하고 정확하게 응답할 수 있게 한다.
측정된 동작 파라미터(310)는 센서(230-231)로부터 모니터링 로직(301)으로 전송되고, 각각의 제약에 대한 헤드룸 값은 제약 값과 그 대응하는 측정된 동작 파라미터 사이의 차이를 결정함으로써 모니터링 로직(301)에서 계산된다. 예를 들어, Tj에 대한 이용 가능한 헤드룸은 제약 Tj (특정된 최대 동작 온도)와 센서(230-231)로부터의 측정된 동작 온도 사이의 차이에 의해 결정된다. 일 실시예에서, 모니터링 로직(301)은 전압 제한된 표시(315)가 처리 유닛(200)가 전압 제한된 상태에서 동작하고 있음을 나타낼 때 헤드룸 값(316)을 계산한다. 대안적으로, 모니터링 로직(301)은 처리 유닛(200)이 전압 제한된 상태 또는 비전압 제한된 상태에서 동작하고 있는지 여부에 관계없이 헤드룸 값들(316)을 계산한다.
모니터링 로직(301)은 헤드룸 값(316)을 선택 로직(304)에 제공한다. 선택 로직(304)은 처리 유닛(200)에서 지원되는 성능 특징들의 세트로부터 성능 특징들의 서브세트를 선택한다. 성능 특징들의 서브세트는 특징 서브세트들 각각에 대한 헤드룸 값들(316) 및 캘리브레이션 정보(317)에 의해 표시된 이용가능한 헤드룸에 기초하여 가능하게 하기 위해 선택된다. 성능 특징들의 각각의 서브세트는 함께 가능화되거나 불능화되는 하나 이상의 특징들을 포함하며, 여기서 각각의 특징은 다수의 특징 서브세트들에 존재할 수 있다.
선택 로직(314)은 캘리브레이션 테이블(306)로부터 캘리브레이션 정보(317)를 판독한다. 캘리브레이션 테이블(306)은 이용가능한 특징 서브세트들 각각을, 임계값들, 우선순위들 등을 가능하게 하는 것을 포함하는 서브세트에 대한 캘리브레이션 정보와 연관시킨다. 일 실시예에서, 특징 서브세트에 대한 캘리브레이션 정보는 동작 제약들 각각에 대한 가능화 임계값을 포함한다. 가능화 임계값들은 특징 서브세트가 가능화되기 전에 관찰되는 그들의 대응하는 동작 제약들에 대한 헤드룸의 최소량을 정의한다.
특징 서브세트에 대한 가능화 임계값들, 우선순위들 및 다른 캘리브레이션 정보(317), 서브세트 내의 성능 특징들이 프로세싱 코어(들)(210)의 하나 이상의 벤치마크 루틴들의 실행 동안 토글되고 오프되는 캘리브레이션 프로세스에 의해 결정된다. 특징 서브세트를 가능화하는 영향은 특징 세트가 가능화될 때 측정된 동작 파라미터들로 특징 세트가 불능화될 때 측정된 동작 파라미터들을 비교함으로써 결정된다. 각각의 동작 파라미터의 변화는 동작 파라미터와 연관된 동작 제약에 대한 가능화 임계값으로서 기록된다. 예를 들어, 특징 서브세트가 ΔT의 동작 온도의 증가를 야기하는 경우, ΔT는 최대 동작 온도 제약 Tj와 연관된 가능화 임계값로서 기록된다. 따라서, 특징 서브세트는 Tj에 대한 이용 가능한 헤드룸이 ΔT보다 작으면 가능화되지 않는데, 이는 서브세트의 가능화가 Tj를 넘어 동작 온도를 증가시킬 것으로 예상되기 때문이다.
가능화 임계값들에 더하여, 캘리브레이션 프로세스는 또한 (예를 들어, 사이클당 명령들에 의해 측정된 바와 같이) 성능의 예상된 증가에 기초하여 상이한 특징 서브세트들에 대한 우선순위 값들을 생성한다. 예상된 성능 증가는 특징 서브세트가 불능화되고 가능화되는 벤치마크 루틴을 실행함으로써 특징 서브세트에 대해 측정된다. 이어서, 측정된 성능 증가에 기초하여 우선순위 값이 특징 서브세트에 할당되며, 이때 더 높은 우선순위 값들은 (예를 들어, 사이클당 명령들에 의해 측정된 바와 같이) 성능이 더 크게 증가하는 특징 서브세트들에 할당된다.
따라서, 캘리브레이션 프로세스는 처리 코어(들)(210)에서 가능화될 수 있는 이용 가능한 특징 서브세트들 각각에 대한 가능화 임계값들 및 우선순위 값들의 세트를 결정한다. 주어진 특징은 다른 특징들이 동시에 가능화되는지에 따라 동작 파라미터들 및 성능에 상이한 효과들을 가질 수 있기 때문에, 가능화 임계값들 및 우선순위들이 특징들의 상이한 조합들을 나타내는 특징 서브세트들에 대해 기록될 수 있다. 일 실시예에서, 캘리브레이션 프로세스로부터 생성된 캘리브레이션 정보(317)는 각각의 처리 유닛(200)에 고유하고, 교정은 각각의 처리 유닛 디바이스에 대해 독립적으로 수행된다.
일 실시예에서, 상이한 유형의 작업부하를 시뮬레이션하기 위한 상이한 벤치마크 루틴을 사용하여 각각의 특징 서브세트에 대해 교정이 수행된다. 이어서, 선택 로직(304)은 프로세서 코어(들)(210)에서 실행되는 실제 작업량에 런타임 시 실제 워크로드와 가장 밀접하게 매칭되는 워크로드 유형에 대한 가능화 임계값들의 세트에 기초하여 가능하게 하는 특징 서브세트를 선택한다. 예를 들어, 캐시-집중적 벤치마크 루틴은 특징 서브세트에 대한 가능화 임계값들의 세트를 생성하기 위해 캘리브레이션 동안 실행될 수 있다. 이어서, 선택 로직(304)은 캐시-집중적 작업부하가 전압 제한된 상태에서 실행되고 있다고 결정하면, 선택 로직(304)은 임의의 동작 제약들(314)을 위반하지 않고 특징 서브세트가 가능화될 수 있는지 여부를 결정할 때 캐시-집중적 벤치마크 루틴을 사용하여 생성된 가능화 임계값들을 사용한다.
캘리브레이션 프로세스에 의해 생성된 가능화 임계값들 및 다른 캘리브레이션 정보의 세트들은 캘리브레이션 테이블(306)에 저장된다. 선택 로직(304)이 프로세싱 코어(들)(210)이 전압 제한된 표시 신호(315)를 통해 전압 제한된 상태에서 동작하고 있음을 검출할 때, 선택 로직(304)은 업데이트된 헤드룸 값(316) 및 후보 특징 서브세트 각각에 대한 캘리브레이션 정보(317)에 기반한 동작 제약(314)을 위반하지 않고 활성화될 수 있는 특징 서브세트(있는 경우)를 결정한다. 특히, 선택 로직(304)은 특징 서브세트에 대한 가능화 임계값과 특징 서브세트에 대한 이의 대응하는 헤드룸 값을 비교함으로써 동작 제약들(314)을 위반하지 않고 특징 서브세트가 가능화될 수 있다고 결정한다. 각각의 헤드룸 값이 그의 대응하는 가능화 임계값을 초과하면, 선택 로직(304)은 제약(314)을 위반하지 않고 특징 서브세트가 가능화될 수 있다고 결정한다. 다수의 대안적인 특징 서브세트들을 가능하게 하기 위해 충분한 헤드룸이 존재할 때, 더 높은 우선순위 특징 서브세트들이 먼저 선택되는데, 그 이유는 이러한 특징 서브세트들이 성능의 가장 높은 예상된 증가를 초래할 수 있게 하기 때문이다.
일단 선택 로직(304)에 의해 가능화를 위해 성능 특징들의 서브세트가 선택되면, 가능화 로직(305)은 선택된 특징 서브세트를 가능하게 한다. 가능화에 응답하여, 더 많은 수의 추론적 계산, 모드 스위치, 및/또는 다른 성능 향상 활동이 프로세서 코어(들)(210)에 의해 (예를 들어, 분기 예측 모듈(211), 캐시(들)(212), 프리페치 모듈(214), 또는 다른 로직 회로에 의해) 수행된다. 가능화 로직(305)은, 특징들을 구현하는 디지털 로직 회로들의 동작 파라미터들을 가능하게 하거나 제어하는 구성 레지스터들에 비트들이 어서팅되거나 값들이 기록되게 함으로써, 선택된 서브세트 내의 성능 특징들 각각을 가능하게 한다. 일 실시예에서, 적절한 값들은 가능화 로직(305)으로부터 수신된 가능화 신호(319)에 응답하여 프로세싱 코어(들)(210)에서 실행되는 마이크로코드에 의해 구성 레지스터들에 기록된다. 다양한 실시예에서, 가능화 신호(319)는 프로세서 코어(들)(210)에 전송된 메시지, 성능 특징을 구현하는 디지털 로직 회로에 대한 직접 와이어 세트, 또는 가능화될 특징 또는 특징을 식별하는 다른 유형의 신호로서 구현될 수 있다.
성능 최적화 프레임워크는 또한 가능화된 특징 서브세트들을 추적하기 위한 가능화된 특징 스택(307)을 포함한다. 특징 서브세트를 가능하게 할 때, 가능화 로직(305)은 식별자(318)를 스택(307)의 상단 위치에 밀어냄으로써 스택(307)의 특징 서브세트에 대한 식별자(318)를 기록한다. 따라서, 가능화된 특징 서브세트들에 대한 식별자들은 이들이 가능화되는 순서로 스택에 기록되어, 보다 최근에 가능화되는 서브세트들의 식별자들이 스택의 상단에 더 가깝다.
가능화 로직(305)이 전압 제한된 표시(315)를 통해 처리 유닛(200)이 더 이상 전압 제한된 상태에서 동작하고 있지 않다는 것을 검출하는 경우, 가능화 로직(305)은 가장 최근에 가능한 성능 특징들의 서브세트를 불능화한다. 일부 경우들에서, 처리 유닛(200)은 동작 제약이 초과되게 하는 작업부하, 환경, 또는 다른 동작 조건들의 변화로 인해 전압 제한된 상태에서 동작하는 것을 중단한다. 동작 전압은 동작 제약이 초과되지 않을 때까지 감소된다. 일부 경우들에서, 특징 서브세트의 가능화로 인해 하나 이상의 동작 제약이 초과된다. 처리 유닛(200)이 전압 제한된 상태에서의 동작을 중단할 때, 가능화 로직(305)은 가능화된 특징 스택(307)의 상단 위치로부터 식별자(320)를 검색하고, (예를 들어, 구성 레지스터 쓰기에 영향을 미침으로써, 적절한 가능화 신호들을 디어써트함으로써 등) 식별자(320) 의해 식별된 특징 서브세트를 불능화시킨다.
성능 최적화 프레임워크는 또한, 특징 서브세트들이 가능화된 후 너무 빨리 불능화되는 것을 방지하는 이력 현상 타이머(308)를 포함한다. 가능한 각각의 특징 서브세트에 대해, 이력 현상 타이머(308)는 특징 서브세트가 가능화된 후 얼마나 많은 시간이 경과했는지의 표시를 기록한다. 일 실시예에서, 이력 현상 타이머(308)는 특징 서브세트가 가능화되었을 때를 나타내는 타임스탬프를 저장한다. 대안적으로, 타이머(308)는 주기적으로 증가되는 카운터 값을 저장할 수 있다. 특징 서브세트에 대한 이력 현상 타이머(308) 값은 서브세트가 가능화될 때 시작되거나 설정된다. 이어서, 가능화 로직(305)은 이력 현상 타이머(308)를 체크하고, 서브세트에 대한 타이머(308)가 만료될 때까지 특징 서브세트를 불능화하지 않는다.
성능 특징들의 서브세트의 가능화로 인해 하나 이상의 동작 제약이 초과되는 경우, 캘리브레이션 테이블(306)에 저장된 서브세트에 대한 가능화 임계값들이 업데이트된다. 예를 들어, 캘리브레이션 프로세스는 런타임 시 실제 동작 조건들 또는 작업부하에 대해 부정확한 특정 서브세트에 대한 가능화 임계값들의 세트를 결정할 수 있다. 너무 낮은 임계 값들은 불충분한 헤드룸이 이용 가능할 때 특징 서브세트들이 가능화되게 할 수 있다. 너무 높은 임계 값들은 충분한 헤드룸이 이용 가능할 때 특징 서브세트들이 가능화되는 것을 방지할 수 있다. 따라서, 부정확한 것으로 결정된 임계값들은 캘리브레이션 테이블(306)에서 저장된 값을 변경함으로써 선택 로직(304)에 의해 수정되어, 원래의 캘리브레이션된 임계값으로부터 추가되거나 감산되는 정정 값을 업데이트하거나, 또는 그렇지 않으면 원래의 값을 무시한다.
일 실시예에서, 특징 서브세트가 불능화될 때 특징 서브세트에 대해 캘리브레이션 값들이 업데이트된다. 부정확한 임계값에 기초하여 특징 서브세트를 가능하게 하는 것은 동작 제약이 초과되는 것으로 이어질 수 있다. 이는 결과적으로, 제약들이 더 이상 초과되지 않을 때까지 동작 전압이 감소됨에 따라 처리 유닛(200)이 전압 제한된 상태에서 동작하는 것을 중지하도록 하고, 특징 서브세트를 불능화함으로써 가능화 로직(305)이 응답하도록 한다. 가능화 로직(305)에 의한 특징 서브세트의 불능화 시, 선택 로직(304)은 특징 서브세트가 불능화되는 가능화 임계값을 업데이트한다. 특징 서브세트가 가능화될 때 관찰된 동작 파라미터(310)의 변화는 새로운 가능화 임계값을 결정하는 데 사용된다.
도 4는 일 실시예에 따른 성능 최적화 프로세스(500)를 도시하는 흐름도이다. 성능 최적화 프로세스(500)는 시스템 관리 유닛(220)에서 성능 최적화 프레임워크의 컴포넌트들을 포함하여 처리 유닛(200)의 컴포넌트들에 의해 수행된다. 프로세스(500)의 동작들은 처리 유닛 내의 하드웨어 회로에 의해, 또는 하드웨어, 소프트웨어, 및/또는 펌웨어의 조합에 의해 수행된다.
블록(501-503)에서 프로세서 코어(들)(210) 및 성능 최적화 프레임워크에 의해 캘리브레이션 프로세스가 수행된다. 블록(503)에서, 프로세서 코어(들)(210)은 성능 특징들의 각각의 서브세트에 대해, 가능화된 서브세트가 존재 및 부재 하에 벤치마크 루틴들의 세트를 실행한다. 각각의 특징 서브세트에 대해, 가능화 임계값 및 우선순위는 벤치마크 실행에 기초하여 결정되고 블록(503)에서 제공된 바와 같이 캘리브레이션 테이블(306)에 기록된다.
블록(505)에서, 센서(230-231)는 전력, 전류 및 온도와 같은 동작 파라미터를 감지하기 위해 사용된다. 측정된 동작 파라미터들은 주기적으로 감지되고(예를 들어, 매 밀리초), 감지된 동작 파라미터들 각각은 TDP, TDC, EDC, 및 Tj와 같은 동작 제약들 중 하나에 대응한다.
블록(507)에서, 프레임워크는 처리 유닛(200)이 전압 제한된 상태에서 동작하고 있는지 여부를 결정하며, 여기서 동작 전압은 최대 전압 Vmax에 도달하였다. 처리 유닛(200)이 전압 제한된 상태에서 동작하고 있는 경우, 프로세스(500)는 블록(509)에서 계속된다. 전압 제한된 상태에서 동작할 때, 센서(230-231)는 블록(509)에서 제공된 바와 같이 더 높은 빈도에서 동작 파라미터를 샘플링한다. 다른 동작 파라미터들을 감지하기 위해 추가 센서들이 또한 가능하다. 추가적인 센서 데이터는 성능 최적화 프레임워크가, 대응하는 동작 제약이 초과되게 할 수 있는 동작 파라미터의 변화에 더 신속하게 응답하게 한다.
블록(511 내지 519)에서, 프레임워크는 처리 유닛(200)에 의해 지원되는 성능 특징들의 세트로부터의 성능 특징들의 임의의 서브세트들이 동작 제약들을 초과하지 않고 가능화될 수 있는지 여부를 결정하는 프로세스를 수행하고, 그렇다면, 하나 이상의 서브세트들이 가능화될 수 있다. 블록(511)에서, 모니터링 로직(301)은 동작 제약들(314) 및 그들의 대응하는 측정된 동작 파라미터들(310) 사이의 차이를 계산함으로써 동작 제약들(314) 각각에 대한 헤드룸 값들(316)의 세트를 결정한다. 동작 제약들은, 예를 들어, 처리 유닛의 TDP, TDC, EDC, 및 Tj 제약들을 포함한다.
블록(513)에서, 선택 로직(304)은 가장 높은 우선순위 값을 갖고 캘리브레이션 테이블(306)로부터의 우선순위 정보에 기초하여 현재 불능화되는 특징 서브세트를 식별한다. 블록(515)에서, 선택 로직은 캘리브레이션 테이블(306)로부터 식별된 가장 높은 우선순위 특징 서브세트에 대한 가능화 임계값들을 판독한다. 블록(517)에서, 선택 로직(304)은 특징 서브세트에 대한 가능화 임계값들을 그들의 대응하는 계산된 헤드룸 값(316)과 비교한다. 헤드룸 값이 그의 대응하는 가능화 임계값을 초과하면, 특징 서브세트의 가능화는 제약이 초과되지 않도록 할 것으로 예상된다.
그들의 각각의 동작 파라미터들이 제약 값보다 높을 때 일부 제약(예를 들어, 최대 허용 값들)이 초과되는 반면, 그들의 동작 파라미터들이 제약 값보다 낮을 때 다른 제약(예를 들어, 최소 허용 값들)이 초과되는 것에 유의해야 한다. 따라서, 이용가능한 헤드룸은 헤드룸의 절대 값이 가능화 임계값의 절대값보다 클 때 가능화 임계값을 초과한다.
헤드룸 값(316) 중 임의의 것이 그의 대응하는 가능화 임계값을 초과하지 않는 경우, 특징 서브세트의 가능화는 제약이 초과되도록 할 것으로 예상된다. 이 경우, 특징 서브세트는 가능화에 대해 선택되지 않고, 프로세스(500)는 다음의 가장 높은 우선순위 특징 서브세트가 가능화될 수 있는지 여부를 결정하기 위해 블록(513)으로 복귀한다.
블록(517)에서, 모든 헤드룸 값들(316) 전부가 그들의 각각의 가능화 임계값들을 초과하면, 특징 서브세트의 가능화는 동작 제약들(314) 중 임의의 것이 초과되지 않도록 할 것으로 예상된다. 이 경우, 프로세스(500)는 블록(519)에서 계속된다. 블록(519)에서, 가능화 로직(305)은 처리 유닛(200)에서 선택된 특징 서브세트를 가능하게 한다. 가능화 로직(305)은 특징에 대한 가능화 신호를 어써트하거나, 프로세서 코어(들)(210)에 메시지를 전송하거나, 하나 이상의 구성 레지스터 쓰기에 영향을 미치거나, 또는 그렇지 않으면 프로세서 코어(들)(210)와/과 통신함으로써, 서브세트의 각각의 성능 특징을 가능화한다. 성능 특징들의 가능화는 프로세서 코어(들)(210)에서 동작하는 로직 회로들(예를 들어, 분기 예측 모듈(211), 프리페치 모듈(214) 등)에서의 전력 소비 및 계산 양의 증가(예를 들어, 추론적 작업, 모드 스위칭 등)의 증가를 야기한다. 블록(519)에서, 가능한 성능 특징들의 서브세트에 대한 식별자가 또한 가능화된 특징 스택(307)의 상단 위치에 기록되고, 이력 현상 타이머(308)는 가능화된 특징 서브세트에 대해 시작 또는 설정된다. 블록(519)로부터, 프로세스(500)는 동작 파라미터들을 계속하고 성능을 추가로 최적화하도록 가능화될 수 있는 임의의 추가적인 특징 서브세트들을 식별하기 위해 블록(505)으로 복귀한다. 처리 유닛(200)은 특징 서브세트의 가능화 후 전압 제한된 상태에서 계속 동작하는 경우, 프레임워크는 블록(509-519)의 후속 반복에서 다른 특징 서브세트가 가능화될 수 있는지 여부를 결정한다. 이러한 방식으로, 처리 유닛(200)은 더 이상 전압 제한된 상태에서 동작하고 있지 않을 때까지, 또는 하나 이상의 동작 제약들을 초과하지 않고 추가 특징 서브세트들이 가능화될 수 없을 때까지 추가 특징 서브세트들이 가능화된다.
블록(507)에서, 처리 유닛(200)은 전압 제한된 상태에서 동작하고 있지 않으면, 프로세스(500)는 가장 최근에 가능화된 특징 서브세트가 불능화되는 블록(521-531)으로 계속된다. 처리 유닛(200)은 비전압 제한된 상태에서 동작하고 있을 때, 동작 제약 중 적어도 하나는 그 한계에 있다. 블록(521)에서, 성능 특징들의 서브세트가 가능화되지 않은 경우, 프로세스(500)는 동작 파라미터들을 계속해서 모니터링하고 가능화될 수 있는 임의의 특징 서브세트들을 식별하기 위해 블록(505)로 복귀한다. 적어도 하나의 특징 서브세트가 가능화되는 경우, 프로세스(500)는 블록(523)에서 계속된다.
블록(523)에서, 가능화 로직(305)은 가장 최근에 가능화된 성능 특징들의 식별자를 가능화된 특징 스택(307)의 상단으로부터 검색한다. 블록(525)에서, 가능화 로직(305)은 이력 현상 타이머(308)가 식별된 가장 최근에 가능화된 서브세트에 대해 만료되었는지 여부를 결정한다. 블록(525)에서, 이력 현상 타이머(308)가 만료되지 않았다면, 프로세스(500)는 특징 서브세트를 불능화하지 않으면서 블록(505)로 복귀한다. 따라서, 이력 현상 타이머(308)는 특징 서브세트가 가능화된 후 너무 빨리 불능화되는 것을 방지한다. 블록(525)에서, 가능화 로직(305)은 가장 최근에 가능한 특징 서브세트에 대해 이력 현상 타이머(308)가 만료되었다고 결정하면, 프로세스(500)는 블록 (527)에서 계속된다.
블록(527)에서, 가능화 로직(305)은 식별된 가장 최근에 가능화된 특징 서브세트를 불능화한다. 블록(527)에서, 선택 로직(304)은 또한 서브세트가 불능화되는 동안 캘리브레이션 정보(317)를 업데이트한다. 선택 로직(304)은 캘리브레이션 테이블(306)의 특징 서브세트와 연관된 임계값 및/또는 우선순위 값들의 세트를 수정한다. 업데이트된 임계값들은 측정된 동작 파라미터들(310)에 대한 서브세트 가능화 효과에 기초하여 계산된다. 업데이트된 우선순위 값들은 특징 서브세트 가능화 성능에 대한 효과에 기초하여 결정된다.
블록(529)에서, 성능 특징들의 임의의 서브세트들이 가능화되는 것으로 유지되면, 프로세스(500)는 센서들(230-231)의 동작에 대한 변경 없이 블록(505)로 복귀한다. 그러나, 성능 특징들의 더 많은 서브세트들이 가능화되지 않으면, 센서들(230-231)의 감지 빈도들이 번복되고, 이전에 가능화되었던 임의의 추가 센서들이 블록(531)에서 불능화되어 블록(509)의 변화들을 반전시킨다. 따라서, 센서 활동은 추가 센서 데이터를 사용하여 성능 특징들 중 어느 것도 가능화되지 않을 때 전력을 절약하기 위해 감소된다. 블록(531)로부터, 프로세스(500)는 블록(505)로 복귀하여 동작 파라미터들(310)을 계속해서 감지하고, 전압 제한된 상태가 다시 검출될 때를 가능하게 하기 위해 특징 서브세트들을 식별한다. 처리 유닛(200)은 전압 제한 상태에서 계속 동작하는 경우, 다음의 가장 최근에 가능화된 특징 서브세트가, 존재하는 경우, 블록들(521 내지 531)에 따라 불능화된다. 이러한 방식으로, 특징 서브세트들은 더 많은 특징 서브세트들이 가능화되지 않을 때까지 이들이 가능화되는 역순에서 불능화되거나, 처리 유닛(200)이 전압 제한 상태에서 동작하는 것으로 복귀한다.
처리 유닛을 동작시키는 방법은, 처리 유닛이 전압 제한된 상태에서 동작하는 것을 검출하는 것에 응답하여, 처리 유닛의 동작 제약들의 세트에서 각각의 동작 제약에 대한 헤드룸 값을 계산함으로써 헤드룸 값들의 세트를 계산하는 단계, 헤드룸 값들의 계산된 세트에 기초하여, 처리 유닛에서 가능화를 위한 하나 이상의 성능 특징들의 서브세트를 성능 특징들의 세트로부터 선택하는 단계, 및 처리 유닛에서 선택된 성능 특징들의 서브세트를 가능화하는 단계를 포함한다.
방법은, 성능 특징들의 세트의 상이한 서브세트를 각각 포함하는 복수의 특징 서브세트들의 각각의 서브세트에 대해, 동작 제약들의 세트에서의 각각의 동작 제약에 대한 서브세트에 가능화 임계값을 결정하기 위해 서브세트에 포함된 성능 특징들을 사용하여 처리 유닛에서 벤치마크 루틴을 실행하는 단계, 및 동작 제약들의 세트에서의 각각의 동작 제약에 대해, 동작 제약에 대한 가능화 임계값을 캘리브레이션 테이블의 서브세트와 연관시키는 단계를 더 포함한다.
방법은, 복수의 특징 서브세트들의 적어도 하나의 서브세트에 대해, 적어도 하나의 서브세트의 가능화 후에 처리 유닛이 전압 제한된 상태에서 동작하는 것을 중지했음을 검출하는 것에 응답하여 가능화 임계값을 수정하는 단계를 더 포함한다.
본 방법에서, 동작 제약은 열적으로 설계된 전력, 열적으로 설계된 전류, 전기적으로 설계된 전류, 및 처리 유닛의 최대 동작 온도를 포함한다.
본 방법에서, 동작 제약들의 세트의 각각의 동작 제약에 대해, 방법은 동작 제약과 연관된 동작 파라미터를 측정하는 단계를 더 포함한다. 동작 제약에 대한 헤드룸을 계산하는 단계는 측정된 동작 파라미터와 동작 제약 사이의 차이를 계산하는 단계를 포함한다.
방법은 처리 유닛의 하나 이상의 동작 파라미터를 주기적으로 감지하는 단계, 및 처리 유닛이 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 감지의 빈도를 증가시키는 단계를 더 포함한다.
본 방법에서, 가능화를 위한 성능 특징들의 서브세트를 선택하는 단계는 서브세트와 연관된 가능화 임계값들의 세트를 캘리브레이션 테이블로부터 판독하는 단계를 포함한다. 서브세트는 가능화 임계값들의 세트의 각 가능화 임계값을 계산된 헤드룸 값들의 세트의 대응하는 헤드룸 값과 비교하는 것에 기초하여 선택된다.
본 방법에서, 선택된 성능 특징들의 서브세트를 가능화하는 단계는 처리 유닛에서 동작하는 로직 회로에 의해 수행되는 계산의 양을 증가시키는 단계를 포함한다.
본 방법에서, 선택된 성능 특징들의 서브세트를 가능화하는 단계는 선택된 서브세트에 대한 식별자를 스택 상에 기록하는 단계를 포함한다. 방법은, 선택된 성능 특징들의 서브세트를 가능화하는 단계 후에 처리 유닛이 전압 제한된 상태에서 동작하는 것을 중지함을 검출한 것에 응답하여, 스택의 상단 위치로부터 식별자를 검색하는 단계, 및 식별자에 기초하여, 식별자에 대응하는 선택된 성능 특징들의 서브세트를 불능화하는 단계를 더 포함한다.
컴퓨팅 디바이스는 처리 유닛의 동작 제약들의 세트에서 각각의 동작 제약에 대한 헤드룸 값을 계산함으로써 헤드룸 값들의 세트를 계산하도록 구성되는 모니터링 로직; 모니터링 로직과 결합되고, 처리 유닛이 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여 및 헤드룸 값들의 계산된 세트에 기초하여, 처리 유닛에서 가능화를 위한 하나 이상의 성능 특징들의 서브세트를 성능 특징들의 세트로부터 선택하도록 구성되는 선택 로직; 및
선택 로직과 결합되고 처리 유닛에서 선택된 성능 특징들의 서브세트를 가능화하도록 구성되는 가능화 로직을 포함한다.
컴퓨팅 디바이스는, 성능 특징들의 세트의 상이한 서브세트를 각각 포함하는 복수의 특징 서브세트들의 각각의 서브세트에 대해, 서브세트에 포함된 성능 특징들을 사용하여 벤치마크 루틴을 실행하여 동작 제약들의 세트에서의 각각의 동작 제약에 대한 서브세트에 가능화 임계값을 결정하도록 구성되는 프로세서 코어들의 세트; 및 동작 제약들의 세트에서의 각각의 동작 제약에 대해, 서브세트와의 동작 제약에 대한 가능화 임계값 사이의 연관성을 저장하도록 구성되는 캘리브레이션 테이블을 더 포함한다.
컴퓨팅 디바이스에서, 선택 로직은 복수의 특징 서브세트들의 적어도 하나의 서브세트에 대해, 적어도 하나의 서브세트의 가능화 후에 처리 유닛이 상기 전압 제한된 상태에서 동작하는 것을 중지했음을 검출하는 것에 응답하여 동작 제약들의 세트에서 각각의 동작 제약에 대한 가능화 임계값을 수정한다.
컴퓨팅 디바이스는, 동작 제약들의 세트의 각각의 동작 제약에 대해, 동작 제약과 연관된 동작 파라미터를 측정하는 모니터링 로직과 결합된 복수의 센서를 더 포함한다. 모니터링 로직은, 동작 제약들의 세트의 각각의 동작 제약에 대해, 동작 제약과 동작 제약과 연관된 측정된 동작 파라미터 사이의 차이를 계산함으로써 동작 제약에 대한 헤드룸을 계산한다.
컴퓨팅 디바이스는, 처리 유닛의 하나 이상의 동작 파라미터를 주기적으로 감지하기 위해, 그리고 처리 유닛이 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 주기적 감지의 빈도를 증가시키기 위해 모니터링 로직과 결합된 복수의 센서를 더 포함한다.
컴퓨팅 디바이스는 선택 로직과 결합되고 선택된 성능 특징들의 서브세트에 대한 가능화 임계값들의 세트를 저장하기 위한 캘리브레이션 테이블을 더 포함한다. 선택 로직은 캘리브레이션 테이블로부터 가능화 임계값들의 세트를 판독함으로써 가능하게 하기 위한 성능 특징들의 서브세트를 선택한다. 서브세트는 가능화 임계값들의 세트의 각 가능화 임계값을 계산된 헤드룸 값들의 세트의 대응하는 헤드룸 값과 비교하는 것에 기초하여 선택된다.
컴퓨팅 디바이스는 가능화 로직과 결합된 스택을 더 포함한다. 가능화 로직은 선택된 서브세트에 대한 식별자를 스택 상에 기록하여 선택된 성능 특징들의 서브세트를 가능화하고, 선택된 성능 특징들의 서브세트를 가능화한 후에 처리 유닛이 전압 제한된 상태에서 동작하는 것을 중지함을 검출한 것에 응답하여, 스택의 상단 위치로부터 식별자를 검색하고, 식별자에 기초하여, 식별자에 대응하는 선택된 성능 특징들의 서브세트를 불능화한다.
컴퓨팅 시스템은 처리 유닛 내의 하나 이상의 프로세서 코어들의 세트 및 프로세서 코어들의 세트와 결합된 시스템 관리 유닛을 포함한다. 시스템 관리 유닛은, 처리 유닛이 전압 제한된 상태에서 동작하는 것을 검출하는 것에 응답하여, 처리 유닛의 동작 제약들의 세트에서 각각의 동작 제약에 대한 헤드룸 값을 계산함으로써 헤드룸 값들의 세트를 계산하고, 헤드룸 값들의 계산된 세트에 기초하여, 처리 유닛에서 가능화를 위한 하나 이상의 성능 특징들의 서브세트를 성능 특징들의 세트로부터 선택하고, 및 처리 유닛에서 선택된 성능 특징들의 서브세트를 가능화한다.
컴퓨팅 시스템은 모니터링 로직과 결합되고 각각이 프로세서 코어들의 세트 중 하나에 위치된 복수의 센서를 포함한다. 복수의 센서들은 동작 제약들의 세트의 각각의 동작 제약에 대해, 동작 제약과 연관된 동작 파라미터를 측정하고, 처리 유닛의 하나 이상의 동작 파라미터를 주기적으로 감지하고, 처리 유닛이 상기 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 상기 주기적 감지의 빈도를 증가시킨다. 시스템 관리 유닛은, 동작 제약들의 세트의 각각의 동작 제약에 대해, 동작 제약과 동작 제약과 연관된 측정된 동작 파라미터 사이의 차이를 계산함으로써 동작 제약에 대한 헤드룸을 계산한다.
컴퓨팅 시스템에서, 프로세서 코어들의 세트는, 선택된 성능 특징들의 서브세트의 가능화에 응답하여, 프로세서 코어들의 세트 내의 하나 이상의 로직 회로들의 세트에 의해 수행되는 다수의 추론적 계산들을 증가시킨다.
컴퓨팅 시스템에서, 프로세서 코어들의 세트는 성능 특징들의 서브세트에 대한 가능화 임계값들의 세트를 결정한다. 컴퓨팅 시스템은 시스템 관리 유닛과 결합되고 가능화 임계값들의 세트를 저장하도록 구성되는 캘리브레이션 테이블을 더 포함한다. 시스템 관리 유닛은, 캘리브레이션 테이블로부터 가능화 임계값들의 세트를 판독함으로써 그리고 가능화 임계값들의 세트의 각 가능화 입계값을 계산된 헤드룸 값들의 세트로부터의 대응하는 헤드룸 값과 비교함으로써 가능화를 위한 성능 특징들의 서브세트를 선택한다.
본 명세서에 사용된 바와 같이, 용어 "~에 결합된"은 하나 이상의 개재 컴포넌트를 통해 직접적으로 또는 간접적으로 결합된 것을 의미할 수 있다. 본 명세서에 설명된 다양한 버스들에 걸쳐 제공되는 임의의 신호들은 다른 신호들과 시간 다중화되고 하나 이상의 공통 버스들을 통해 제공될 수 있다. 추가적으로, 회로 컴포넌트들 또는 블록들 사이의 상호연결은 버스들로서 또는 단일 신호 라인들로서 도시될 수 있다. 각각의 버스는 대안적으로 하나 이상의 단일 신호 라인일 수 있고, 각각의 단일 신호 라인은 대안적으로 버스일 수 있다.
특정 실시예들은 비일시적 컴퓨터 판독 가능 매체에 저장된 명령들을 포함할 수 있는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 이러한 명령들은 설명된 동작들을 수행하기 위해 범용 또는 특수 목적 프로세서를 프로그래밍하는 데 사용될 수 있다. 컴퓨터 판독 가능 매체는 기계(예를 들어, 컴퓨터)에 의해 판독가능한 형태(예를 들어, 소프트웨어, 처리 애플리케이션)로 정보를 저장하거나 전송하기 위한 임의의 메커니즘을 포함한다. 비일시적 컴퓨터 판독가능 저장 매체는 다음을 포함할 수 있지만, 이에 제한되지 않는다: 자기 저장 매체 (예를 들어, 플로피 디스켓); 광학 저장 매체(예를 들어, CD-ROM); 자기-광학 저장 매체; 판독 전용 메모리(ROM); 랜덤 액세스 메모리(RAM); 소거가능한 프로그래밍 가능 메모리(예를 들어, EPROM 및 EEPROM); 플래시 메모리, 또는 전자 명령어를 저장하기에 적합한 다른 유형의 매체.
또한, 일부 실시예들은 컴퓨터 판독 가능 매체가 하나 이상의 컴퓨터 시스템에 저장되고/되거나 이에 의해 실행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 또한, 컴퓨터 시스템들 사이에서 전달되는 정보는 컴퓨터 시스템들을 연결하는 전송 매체를 통해 풀링되거나 푸시될 수 있다.
일반적으로, 컴퓨팅 시스템(100)을 나타내는 데이터 구조는 및/또는 컴퓨터-판독가능 저장 매체 상에서 운반되는 그의 일부는, 컴퓨팅 시스템(100)을 포함하는 하드웨어를 제조하기 위해, 프로그램에 의해 판독될 수 있고 직접적으로 또는 간접적으로 사용될 수 있는 데이터베이스 또는 다른 데이터 구조일 수 있다. 예를 들어, 데이터 구조는 Verilog 또는 VHDL과 같은 고레벨 설계 언어(HDL)에서의 하드웨어 기능의 거동 레벨 설명 또는 레지스터-전송 레벨 (RTL) 설명일 수 있다. 설명은 합성 라이브러리로부터 게이트들의 리스트를 포함하는 네트리스트를 생성하기 위해 설명을 합성할 수 있는 합성 도구에 의해 판독될 수 있다. 네트리스트는 컴퓨팅 시스템(100)을 포함하는 하드웨어의 기능을 나타내는 게이트 세트를 포함한다. 이어서 네트리스트는 마스크들에 적용될 기하학적 형상들을 설명하는 데이터 세트를 생성하도록 배치 및 라우팅될 수 있다. 그런 다음 마스크는 컴퓨팅 시스템(100)에 대응하는 반도체 회로 또는 회로들을 생성하기 위해 다양한 반도체 제조 단계에서 사용될 수 있다. 대안적으로, 컴퓨터 판독 가능 저장 매체 상의 데이터베이스는, 원하는 바에 따라, 네트리스트(합성 라이브러리를 갖거나 갖지 않음) 또는 데이터 세트, 또는 그래픽 데이터 시스템(GDS) II 데이터일 수 있다.
본 명세서의 방법(들)의 동작들이 특정 순서로 도시되고 설명되었지만, 각각의 방법의 동작들의 순서는 특정 동작들이 역순서로 수행될 수 있거나, 또는 특정 동작들이 다른 동작들과, 적어도 부분적으로, 동시에 수행될 수 있도록 변경될 수 있다. 다른 실시예에서, 별개의 동작들의 명령들 또는 하위 동작들은 간헐적 및/또는 교번 방식으로 있을 수 있다.
전술한 명세서에서, 실시예는 이의 특정 예시적인 실시예를 참조하여 설명되었다. 그러나, 첨부된 청구범위에 기재된 바와 같은 실시예의 더 넓은 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음이 명백할 것이다. 따라서, 명세서 및 도면은 제한적인 의미보다는 예시적인 것으로 간주되어야 한다.

Claims (20)

  1. 처리 유닛을 동작시키는 방법으로서,
    전압 제한된 상태에서 동작하는 처리 유닛에 응답하여, 상기 처리 유닛에서 성능 특징들의 세트로부터 하나 이상의 성능 특징들의 서브세트를 가능화하는 단계를 포함하고, 상기 하나 이상의 성능 특징들의 서브세트는 상기 처리 유닛의 동작 제약들의 세트에서 하나 이상의 동작 제약들에 대한 헤드룸 값들에 응답 가능화되는, 방법.
  2. 제1항에 있어서,
    상기 성능 특징들의 세트의 상이한 서브세트를 각각 포함하는 복수의 특징 서브세트들의 각각의 서브세트에 대해,
    상기 동작 제약들의 세트에서의 각각의 동작 제약에 대한 상기 서브세트에 가능화 임계값을 결정하기 위해 상기 서브세트에 포함된 성능 특징들을 사용하여 상기 처리 유닛에서 벤치마크 루틴을 실행하는 단계, 및
    상기 동작 제약들의 세트에서의 각각의 동작 제약에 대해, 상기 동작 제약에 대한 상기 가능화 임계값을 캘리브레이션 테이블의 상기 서브세트와 연관시키는 단계를 더 포함하는, 방법.
  3. 제2항에 있어서,
    상기 복수의 특징 서브세트들의 적어도 하나의 서브세트에 대해, 상기 적어도 하나의 서브세트의 가능화 후에 상기 처리 유닛이 상기 전압 제한된 상태에서 동작하는 것을 중지했음을 검출하는 것에 응답하여 상기 가능화 임계값을 수정하는 단계를 더 포함하는, 방법.
  4. 제1항에 있어서,
    상기 동작 제약은 열적으로 설계된 전력, 열적으로 설계된 전류, 전기적으로 설계된 전류, 및 상기 처리 유닛의 최대 동작 온도를 포함하는, 방법.
  5. 제1항에 있어서, 상기 동작 제약들의 세트의 각각의 동작 제약에 대해,
    상기 동작 제약과 연관된 동작 파라미터를 측정하는 단계; 및
    상기 측정된 동작 파라미터와 상기 동작 제약 사이의 차이를 계산함으로써 상기 동작 제약에 대한 상기 헤드룸을 계산하는 단계를 더 포함하는, 방법.
  6. 제1항에 있어서,
    상기 처리 유닛의 하나 이상의 동작 파라미터를 주기적으로 감지하는 단계; 및
    상기 처리 유닛이 상기 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 상기 감지의 빈도를 증가시키는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 하나 이상의 성능 특징들의 서브세트를 가능화하는 단계는 상기 서브세트와 연관된 가능화 임계값들의 세트를 캘리브레이션 테이블로부터 판독하고;
    상기 서브세트는 상기 가능화 임계값들의 세트의 각 가능화 임계값을 상기 헤드룸 값들의 대응하는 헤드룸 값과 비교하는 것에 기초하여 선택되는, 방법.
  8. 제1항에 있어서,
    상기 선택된 성능 특징들의 서브세트를 가능화하는 단계는 상기 처리 유닛에서 동작하는 로직 회로에 의해 수행되는 계산의 양을 증가시키는 단계를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 선택된 성능 특징들의 서브세트를 가능화하는 단계는 상기 선택된 서브세트에 대한 식별자를 스택 상에 기록하는 단계를 포함하고;
    상기 방법은, 상기 선택된 성능 특징들의 서브세트를 가능화하는 상기 단계 후에 상기 처리 유닛이 상기 전압 제한된 상태에서 동작하는 것을 중지했음을 검출하는 것에 응답하여,
    상기 스택의 상단 위치로부터 상기 식별자를 검색하는 단계, 및
    상기 식별자에 기초하여, 상기 식별자에 대응하는 상기 선택된 성능 특징들의 서브세트를 불능화하는 단계를 더 포함하는, 방법.
  10. 컴퓨팅 디바이스로서,
    처리 유닛의 동작 제약들의 세트에서 각각의 동작 제약에 대한 헤드룸 값을 계산함으로써 헤드룸 값들의 세트를 계산하도록 구성되는 모니터링 로직;
    상기 모니터링 로직과 결합되고, 상기 처리 유닛이 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여 및 상기 헤드룸 값들의 계산된 세트에 기초하여, 상기 처리 유닛에서 가능화를 위한 하나 이상의 성능 특징들의 서브세트를 성능 특징들의 세트로부터 선택하도록 구성되는 선택 로직; 및
    상기 선택 로직과 결합되고 상기 처리 유닛에서 상기 선택된 성능 특징들의 서브세트를 가능화하도록 구성되는 가능화 로직을 포함하는, 컴퓨팅 디바이스.
  11. 제10항에 있어서,
    상기 성능 특징들의 세트의 상이한 서브세트를 각각 포함하는 복수의 특징 서브세트들의 각각의 서브세트에 대해, 상기 서브세트에 포함된 성능 특징들을 사용하여 벤치마크 루틴을 실행하여 상기 동작 제약들의 세트에서의 각각의 동작 제약에 대한 상기 서브세트에 가능화 임계값을 결정하도록 구성되는 프로세서 코어들의 세트; 및
    상기 동작 제약들의 세트에서의 각각의 동작 제약에 대해, 상기 서브세트와의 상기 동작 제약에 대한 상기 가능화 임계값 사이의 연관성을 저장하도록 구성되는 캘리브레이션 테이블을 더 포함하는, 컴퓨팅 디바이스.
  12. 제11항에 있어서, 상기 선택 로직은,
    상기 복수의 특징 서브세트들의 적어도 하나의 서브세트에 대해, 상기 적어도 하나의 서브세트의 가능화 후에 상기 처리 유닛이 상기 전압 제한된 상태에서 동작하는 것을 중지했음을 검출하는 것에 응답하여 상기 동작 제약들의 세트에서 각각의 동작 제약에 대한 상기 가능화 임계값을 수정하도록 더 구성되는, 컴퓨팅 디바이스.
  13. 제10항에 있어서,
    상기 모니터링 로직과 결합되고, 상기 동작 제약들의 세트의 각각의 동작 제약에 대해, 상기 동작 제약들과 연관된 동작 파라미터를 측정하도록 구성되는 복수의 센서를 더 포함하고, 상기 모니터링 로직은 상기 동작 제약들의 세트의 각각의 동작 제약에 대해, 상기 동작 제약과 상기 동작 제약과 연관된 상기 측정된 동작 파라미터 사이의 차이를 계산함으로써 상기 동작 제약에 대한 상기 헤드룸을 계산하도록 더 구성되는, 컴퓨팅 디바이스.
  14. 제10항에 있어서, 상기 모니터링 로직과 결합되고, 다음을 수행하도록 구성된 복수의 센서를 더 포함하는, 컴퓨팅 디바이스:
    상기 처리 유닛의 하나 이상의 동작 파라미터를 주기적으로 감지; 및
    상기 처리 유닛이 상기 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 상기 주기적 감지의 빈도를 증가.
  15. 제10항에 있어서,
    상기 선택 로직과 결합되고, 상기 선택된 성능 특징들의 서브세트에 대한 가능화 임계값들의 세트를 저장하도록 구성되는 캘리브레이션 테이블을 더 포함하고,
    상기 선택 로직은 상기 캘리브레이션 테이블로부터 상기 가능화 임계값들의 세트를 판독함으로써 가능화를 위한 상기 성능 특징들의 서브세트를 선택하도록 더 구성되고,
    상기 서브세트는 상기 가능화 임계값들의 세트의 각 가능화 임계값을 상기 계산된 헤드룸 값들의 세트의 대응하는 헤드룸 값과 비교하는 것에 기초하여 선택되는, 컴퓨팅 디바이스.
  16. 제10항에 있어서,
    상기 가능화 로직과 결합되는 스택을 더 포함하고, 상기 가능화 로직은 다음을 수행하도록 더 구성된, 컴퓨팅 디바이스:
    상기 선택된 서브세트에 대한 식별자를 상기 스택 상에 기록함으로써 상기 선택된 성능 특징들의 서브세트를 가능화,
    상기 선택된 성능 특징들의 서브세트를 상기 가능화한 후에 상기 처리 유닛이 전압 제한된 상태에서 동작하지 않음을 검출하는 것에 응답하여,
    상기 스택의 상단 위치로부터 상기 식별자를 검색, 및
    상기 식별자에 기초하여, 상기 식별자에 대응하는 상기 선택된 성능 특징들의 서브세트를 불능화.
  17. 컴퓨팅 시스템으로서,
    처리 유닛 내의 하나 이상의 프로세서 코어들의 세트; 및
    상기 프로세서 코어들의 세트와 결합되고, 상기 처리 유닛이 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 다음을 수행하도록 구성되는 시스템 관리 유닛을 포함하는, 컴퓨팅 시스템:
    상기 처리 유닛의 동작 제약들의 세트에서 각각의 동작 제약에 대한 헤드룸 값을 계산함으로써 헤드룸 값들의 세트를 계산,
    상기 계산된 헤드룸 값들의 세트에 기초하여, 상기 처리 유닛에서 가능화를 위한 하나 이상의 성능 특징들의 서브세트를 성능 특징들의 세트로부터 선택, 및
    상기 처리 유닛에서 상기 선택된 성능 특징들의 서브세트를 가능화.
  18. 제17항에 있어서,
    상기 모니터링 로직과 결합되고 각각이 상기 프로세서 코어들의 세트 중 하나에 위치되는 복수의 센서를 더 포함하고, 상기 복수의 센서는,
    상기 동작 제약들의 세트의 각각의 동작 제약에 대해, 상기 동작 제약과 연관된 동작 파라미터를 측정하고,
    상기 처리 유닛의 하나 이상의 동작 파라미터를 주기적으로 감지하고,
    상기 처리 유닛이 상기 전압 제한된 상태에서 동작하고 있음을 검출하는 것에 응답하여, 상기 주기적 감지의 빈도를 증가시키도록 구성되고, 상기 시스템 관리 유닛은, 상기 동작 제약들의 세트의 각각의 동작 제약에 대해, 상기 동작 제약과 상기 동작 제약과 연관된 상기 측정된 동작 파라미터 사이의 차이를 계산함으로써 상기 동작 제약에 대한 상기 헤드룸을 계산하도록 더 구성되는, 컴퓨팅 시스템.
  19. 제17항에 있어서,
    상기 프로세서 코어들의 세트는, 상기 선택된 성능 특징들의 서브세트의 가능화에 응답하여, 상기 프로세서 코어들의 세트 내의 하나 이상의 로직 회로들의 세트에 의해 수행되는 추론적 계산들의 수를 증가시키도록 구성되는, 컴퓨팅 시스템.
  20. 제17항에 있어서,
    상기 프로세서 코어들의 세트는 상기 성능 특징들의 서브세트에 대한 가능화 임계값들의 세트를 결정하도록 더 구성되고;
    상기 컴퓨팅 시스템은 상기 시스템 관리 유닛과 결합되고 상기 가능화 임계값들의 세트를 저장하도록 구성되는 캘리브레이션 테이블을 더 포함하고;
    상기 시스템 관리 유닛은, 다음을 통해 가능화를 위한 상기 성능 특징들의 서브세트를 선택하도록 더 구성되는, 컴퓨팅 시스템:
    상기 캘리브레이션 테이블로부터 상기 가능화 임계값들의 세트를 판독, 및
    상기 가능화 임계값들의 세트의 각 가능화 입계값을 상기 계산된 헤드룸 값들의 세트로부터의 대응하는 헤드룸 값과 비교.
KR1020237012350A 2020-09-23 2021-09-19 전압 제한 조건에서의 프로세서 성능 증가 KR20230073245A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/030,324 2020-09-23
US17/030,324 US11347289B2 (en) 2020-09-23 2020-09-23 Enabling performance features for voltage limited processors
PCT/US2021/051011 WO2022066544A1 (en) 2020-09-23 2021-09-19 Increasing processor performance in voltage limited conditions

Publications (1)

Publication Number Publication Date
KR20230073245A true KR20230073245A (ko) 2023-05-25

Family

ID=78086147

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237012350A KR20230073245A (ko) 2020-09-23 2021-09-19 전압 제한 조건에서의 프로세서 성능 증가

Country Status (6)

Country Link
US (1) US11347289B2 (ko)
EP (1) EP4217822A1 (ko)
JP (1) JP2023545643A (ko)
KR (1) KR20230073245A (ko)
CN (1) CN116209970A (ko)
WO (1) WO2022066544A1 (ko)

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721892B1 (en) * 2000-05-09 2004-04-13 Palmone, Inc. Dynamic performance adjustment of computation means
US9032223B2 (en) 2008-09-05 2015-05-12 Intel Corporation Techniques to manage operational parameters for a processor
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US20160077565A1 (en) 2014-09-17 2016-03-17 Advanced Micro Devices, Inc. Frequency configuration of asynchronous timing domains under power constraints
US9710043B2 (en) * 2014-11-26 2017-07-18 Intel Corporation Controlling a guaranteed frequency of a processor
US11137807B2 (en) * 2018-03-28 2021-10-05 Intel Corporation System, apparatus and method for controllable processor configuration based on a temperature specification
US11039404B2 (en) * 2018-07-18 2021-06-15 Dell Products L.P. Method for control and distribution of the amount of power to be lowered or raised in a multi-load system

Also Published As

Publication number Publication date
US11347289B2 (en) 2022-05-31
EP4217822A1 (en) 2023-08-02
US20220091653A1 (en) 2022-03-24
CN116209970A (zh) 2023-06-02
WO2022066544A1 (en) 2022-03-31
JP2023545643A (ja) 2023-10-31

Similar Documents

Publication Publication Date Title
KR101518440B1 (ko) 프로세싱 노드의 동적 성능 제어
EP1023656B1 (en) Localized performance throttling to reduce ic power consumption
JP6154843B2 (ja) 電力制御方法および電力制御装置
US8135970B2 (en) Microprocessor that performs adaptive power throttling
US8171319B2 (en) Managing processor power-performance states
US20130079946A1 (en) On-chip thermal management techniques using inter-processor time dependent power density data for indentification of thermal aggressors
US9021207B2 (en) Management of cache size
US20090287909A1 (en) Dynamically Estimating Lifetime of a Semiconductor Device
US20050223257A1 (en) Processor employing implementing real-time power conservation and thermal management
US20080082844A1 (en) Method and System for Improving Processing Performance by Using Activity Factor Headroom
WO2017096338A1 (en) Execution time prediction for energy-efficient computer systems
WO2012158728A2 (en) Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
JP2010039655A (ja) コンピュータの放熱システム
JP2005284625A (ja) プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
EP3072028A1 (en) System and method for multi-correlative learning thermal management of a system on a chip in a portable computing device
US11347289B2 (en) Enabling performance features for voltage limited processors
JP6877381B2 (ja) 情報処理装置、情報処理方法およびプログラム
Singh et al. Power, Performance And Thermal Management Using Hardware Performance Counters
Lang Components for Energy-Efficient Operating Systems
JP2011054018A (ja) 情報処理装置及びスケジューリング方法
Yun et al. Proactive Thermal-Aware Multicore Scheduling Using Job Migration and Power-Gating