KR20140005808A - 프로세싱 유닛에 대한 전력 관리 시스템 및 방법 - Google Patents

프로세싱 유닛에 대한 전력 관리 시스템 및 방법 Download PDF

Info

Publication number
KR20140005808A
KR20140005808A KR1020130078535A KR20130078535A KR20140005808A KR 20140005808 A KR20140005808 A KR 20140005808A KR 1020130078535 A KR1020130078535 A KR 1020130078535A KR 20130078535 A KR20130078535 A KR 20130078535A KR 20140005808 A KR20140005808 A KR 20140005808A
Authority
KR
South Korea
Prior art keywords
processing unit
memory access
information indicative
level
events
Prior art date
Application number
KR1020130078535A
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 KR20140005808A publication Critical patent/KR20140005808A/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
    • 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
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • 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
    • 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
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

프로세싱 유닛(processing unit)의 전력 관리를 위한 방법들과, 장치 및 컴퓨터 판독 가능 저장 매체들이 제공된다. 상기 프로세싱 유닛은 복수의 동작 모드(mode)들에서 동작할 수 있고, 메모리 액세스 미스 이벤트(memory access miss event)들을 나타내는 정보를 제공한다. 메모리 액세스 미스 이벤트들을 나타내는 정보가 수신되고, 적어도 상기 수신된 정보를 기반으로, 상기 프로세싱 유닛에 대한 희망하는 동작 모드가 결정된다. 그리고 나서, 상기 프로세싱 유닛은 상기 결정을 기반으로 상기 희망하는 동작 모드에서 동작하도록 초래된다.

Description

프로세싱 유닛에 대한 전력 관리 시스템 및 방법{SYSTEM AND METHOD FOR POWER MANAGEMENT FOR A PROCESSING UNIT}
본 발명의 실시 예는 프로세싱 유닛(processing unit)에 대한 전력 관리를 위한 시스템들 및 방법들에 관한 것이다.
중앙 프로세싱 유닛(central processing unit: CPU)들과 같은 많은 프로세싱 유닛들은 상이한 전력/성능 레벨(level)들에서 동작할 수 있다. 높은 전력 레벨들에서, 상기 CPU의 성능은 증가하지만, 상기 CPU에 의해서 소비되는 전력 역시 증가한다. 이와는 반대로, 낮은 전력 레벨들에서, 상기 CPU에 의해 소비되는 전력은 감소하지만, 그 성능 역시 감소한다.
많은 애플리케이션(application)들에서, 특히 상기 CPU가 스마트 폰(smartphone), PDA, 태블릿 컴퓨터(tablet computer) 또는 랩탑(laptop)과 같은 모바일 디바이스(device)에서 제공될 경우, 성능과 전력 소비 간의 정확한 밸런스(balance)를 달성하는 것이 중요하다. 효율적인 전력 관리, 즉 정확한 밸런스를 달성하는 것은 적절한 성능을 유지하는 동안 상기 디바이스의 배터리 수명(battery life)을 연장시킬 수 있다. 상기 CPU에 의해 소비되는 전력은 상기 CPU의 동작 전압 및/또는 동작 주파수를 변경함으로써 다양하게 변화될 수 있다.
CPU에 대한 전력 관리의 알려진 방법은 상기 CPU 상에서 실행하는 운영 시스템의 프로세스(process) 큐(queue) 길이를 독출(reading))함으로써 상기 소프트웨어 로드(software load)를 주기적으로 샘플링(sampling)하는 것이다. 상기 큐 길이는 상기 CPU에 의해서 실행되기를 대기하는 프로세스들의 개수의 양(measure)이다. 상기와 같은 알려진 방법들에서, 상기 큐 길이가 클 경우, 상기 CPU 전력은 증가되고, 이와는 달리 상기 큐 길이가 작을 경우, 상기 CPU 전력은 감소된다.
본 발명의 목적은 프로세싱 유닛에 대한 전력 관리를 위한 개선된 시스템 및 방법을 제공하는 것에 있다.
본 발명의 적어도 하나의 실시 예에 따라, 방법들과, 디바이스(device)들과, 시스템들 및 소프트웨어(software)가 프로세싱 유닛(processing unit)에 대한 전력 관리를 제공하는 기능을 지원하기 위해 또는 구현하기 위해 제공된다.
본 발명의 첫 번째 측면에 따르면, 본 발명은 복수의 동작 모드(operating mode)들에서 동작하도록 구성되고, 메모리 액세스 미스 이벤트(memory access miss event)들을 나타내는 정보를 제공하도록 더 구성되는 프로세싱 유닛(processing unit)에 대한 전력 관리 방법에 있어서, 상기 메모리 액세스 미스 이벤트들을 나타내는 정보를 수신하는 과정과, 적어도 상기 수신된 정보를 기반으로 상기 프로세싱 유닛에 대한 희망하는 동작 모드를 결정하는 과정과, 상기 프로세싱 유닛이 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 포함함을 특징으로 한다.
스레드들과 같은 명령들을 처리하는 과정에서, 일부 명령들 또는 상기 프로세싱 유닛에 의해 요구되는 데이터는 가장 낮은 레벨의 캐쉬 메모리에 저장되지 않는다. 그러므로, 이러한 명령들 또는 데이터는 상기 프로세싱 유닛이 상기 명령을 처리할 수 있기 전에, RAM 또는 디스크 스토리지와 같은 또 다른 소스로부터 검색되어져야 할 것이다. 상기 검색이 발생하는 동안, 상기 프로세싱 유닛은 아이들(idle) 상태이다. 이러한 이벤트들은 메모리 액세스 미스 이벤트(memory access miss event)들이라 칭하며, 이들은 상기 프로세서의 작업량을 나타낸다. 전형적으로 말해서, 비교적 높은 수의 메모리 액세스 미스 이벤트들은 상기 프로세서의 작업량을 더 크게 한다.
미스 이벤트들을 사용함으로써, 상기 명령들 큐(queue)의 길이의 양(즉, 상기 프로세싱 유닛에 의해 처리될 미처리 명령들의 개수)을 사용하는 것과 같은, 다른 알려진 방법들이 아닌, 프로세싱 유닛의 동작 모드를 제어하는 보다 정확하고 보다 세부적인 방법을 달성하는 것이 가능하다.
상기 방법은 상기 메모리 액세스 미스 이벤트들을 나타내는 상기 수신된 정보를 기반으로 제1 값을 계산하고, 상기 제1 값을 기반으로 상기 희망하는 동작 모드를 선택하는 과정을 포함할 수 있다.
상기 프로세싱 유닛은 복수의 별도의 모드들 중 하나에서 동작할 수 있지만, 상기 모드를 결정하기 위해 사용되는 값들은 더 높은 입상도(granularity)에서 변경될 수 있다. 따라서, 상기 값은 일 예로 룩업 테이블(look up table)을 기반으로 모드를 선택하기 위해 사용될 수 있다.
다른 유형들의 메모리 액세스 미스 이벤트들이 있을 수 있다. 그러므로, 상기 메모리 액세스 미스 이벤트들을 나타내는 정보는 각각이 다른 메모리 액세스 미스 이벤트들에 대한 카운트(count)를 나타내는 복수의 값들을 포함할 수 있다. 그와 같이, 본 발명의 실시 예에 따른 전력 관리 방법은 상기 복수의 값들의 가중된 평균(weighted average)을 기반으로 상기 제1 값을 계산하는 과정을 포함할 수 있다. 많은 프로세싱 유닛들은 특정 미스 이벤트에 대한 카운터의 형태로 메모리 액세스 미스 이벤트들을 나타내는 정보를 제공하고, 상기 특정 미스 이벤트에 대한 카운터는 특정 주기에서의 이벤트를 위한 카운트를 제공할 수 있다. 예를 들면, 상기 프로세싱 유닛은 일 예로 100ms(또는 1 내지 100ms 사이의)의 주기에서 어떤 유형의 메모리 액세스 미스 이벤트를 위한 카운터를 제공할 수 있다. 그러므로, 이런 카운터들의 가중된 평균을 계산하는 것은 상기 프로세싱 유닛을 위한 모드를 결정하는 효율적인 방법을 제공한다.
레벨 2 메모리 액세스 미스 이벤트와 연관되는 값들에 주어지는 가중치(weighting)는 레벨 1 메모리 액세스 미스 이벤트와 연관되는 값들에 주어지는 가중치보다 높을 수 있다. 레벨 2 메모리 액세스는 레벨 1 메모리 액세스보다 더 큰 전력을 요구할 수 있다.
일부 실시 예들에서, 상기 프로세싱 유닛은 복수의 코어(core)들을 포함하고, 상기 코어들 각각에 대한 메모리 액세스 미스 이벤트들을 나타내는 정보를 제공하기 위해 구성될 수 있다. 상기와 같은 실시 예들에서, 상기 방법은: 상기 각 코어들에 대해, 각각의 제1 값들에 기반하여 희망하는 동작 모드를 결정하는 과정과, 상기 프로세싱 유닛으로 하여금 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 포함할 수 있다. 멀티 코어 프로세싱 유닛에서, 제1 값들은 메모리 액세스 미스 이벤트들의 카운터들의 가중된 평균일 수 있으며, 각 코어에 대해 독립적으로 계산될 수 있다. 상기 프로세싱 유닛은 상기 코어들의 각각의 동작 모드가 동일하도록 설정될 수 있다. 그러므로, 각 코어와 관련된 상기 제1 값들로부터, 전체로서 상기 프로세싱을 위한 동작 모드를 결정하기 위한 하나가 선택될 수 있다. 상기 제1 값들 중 선택된 하나는 가장 높은 프로세싱 처리량(processing throughput)을 제공하는 모드를 동작시키는 프로세싱 유닛에 관련될 수 있으며, 그러므로 상기 프로세싱 유닛은 그의 필요로 하는 모든 동시의 태스크(task)들을 위한 충분한 성능을 제공할 수 있다.
또한, 상기 프로세싱 유닛은 상기 코어들 중 적어도 2개 간에 공유되는 메모리에 대한 메모리 액세스 이벤트들을 나타내는 추가 정보를 제공하도록 구성될 수 있으며, 상기 방법은: 상기 추가 정보를 기반으로 제2 값을 결정하는 과정과, 상기 프로세싱 유닛이 상기 제1 값들 중 선택된 하나와 상기 제2 값의 조합을 기반으로 희망하는 동작 모드에서 동작하도록 하는 과정을 포함할 수 있다.
일부 실시 예들에서, 상기 프로세싱 유닛은 공유 메모리를 가질 수 있다. 따라서, 상기 제1 값에 추가하여, 이 공유된 메모리와 연관되는 이벤트들을 기반으로 제2 값이 계산될 수 있다. 그리고 나서, 상기 동작 모드는 상기 제1 값들과 제2 값을 기반으로 결정될 수 있다. 이는 상기 값들의 합, 평균 또는 가중된 평균을 계산하는 과정을 포함할 수 있다. 멀티 코어 프로세싱 유닛에 대해, 상기 제1 값들 중 선택된 하나는 가장 높은 프로세싱 처리량을 제공하는 모드를 동작하는 프로세싱 유닛과 연관될 수 있다.
상기 복수의 모드들 각각은 상기 프로세싱 유닛의 상이한 전력 소비 및/또는 프로세싱 처리량과 연관될 수 있다. 또한, 상기 복수의 모드들 각각은 상기 프로세싱 유닛에 대한 상이한 동작 주파수 및/또는 동작 전압과 연관될 수 있다.
상기 메모리 액세스 미스 이벤트들을 나타내는 정보는 레벨 1 메모리 액세스 미스 이벤트들을 나타내는 정보를 포함한다. 이러한 이벤트들은: 레벨 1 명령 캐쉬 미스(level 1 instruction cache miss)들과; 레벨 1 데이터 캐쉬 미스(level 1 data cache miss)들과; 레벨 1 변환 색인 버퍼 미스(level 1 translation lookaside buffer miss)들 중 하나 또는 그 이상을 포함할 수 있다.
상기 메모리 액세스 미스 이벤트들을 나타내는 정보는 레벨 2 메모리 액세스 미스 이벤트(level 2 memory access miss event)들을 나타내는 정보를 포함할 수 있다. 이러한 이벤트들은: 레벨 2 통합 캐쉬 미스(level 2 unified cache miss)들과; 메인 변환 색인 버퍼 미스(main translation lookaside buffer miss)들 중 하나 또는 그 이상을 포함할 수 있다.
상기 동작 모드는 캐쉬 미스(cache miss)들의 개수가 비교적 높을 경우 비교적 높은 전력 동작 모드가 되도록 선택될 수 있고, 상기 동작 모드는 캐쉬 미스들의 개수가 비교적 낮을 경우 비교적 낮은 전력 동작 모드가 되도록 선택된다.
많은 개수의 캐쉬 미스들이 존재할 경우, 상기 프로세싱 유닛은 높은 로드를 가진다고 가정될 수 있고, 따라서 더 높은 전력 동작 모드로 배치될 수 있다. 이와는 반대로, 작은 개수의 캐쉬 미스들은 상기 프로세싱 유닛 상의 낮은 로드를 나타내기 위해 사용될 수 있고, 따라서 상기 프로세싱 유닛은 더 낮은 전력 동작 모드로 배치될 수 있다.
상기 프로세싱 유닛은 상기 프로세싱 유닛에 의해 실행되는 명령(instruction)들을 나타내는 정보를 제공하도록 더 구성될 수 있고, 상기 방법은: 상기 프로세싱 유닛에 의해 실행되는 명령들을 나타내는 정보를 수신하는 과정과; 메모리 액세스 미스 이벤트들을 나타내는 상기 수신된 정보와 상기 프로세싱 유닛에 의해 실행되는 명령들을 나타내는 상기 수신된 정보 모두를 기반으로 상기 희망하는 동작 모드를 결정하는 과정을 더 포함할 수 있다.
상기 프로세싱 유닛은 실행되는 명령들의 개수에 대한 정보를 제공할 수 있다. 이 정보는 상기 동작 모드의 결정시 사용될 수 있다.
본 발명의 두 번째 측면에 따르면, 복수의 동작 모드(mode)들에서 동작하도록 구성되고, 메모리 액세스 미스 이벤트(memory access miss event)들을 나타내는 정보를 제공하도록 더 구성되는 프로세싱 유닛(processing unit)에 대한 전력 관리 장치가 제공되며, 상기 장치는 메모리 액세스 미스 이벤트들을 나타내는 상기 정보를 수신하도록 구성되는 인터페이스(interface)와, 적어도 상기 수신된 정보를 기반으로 상기 프로세싱 유닛에 대한 희망하는 동작 모드를 결정하도록 구성되는 프로세서(processor)를 포함하며, 상기 장치는 상기 프로세싱 유닛이 상기 결정을 기반으로 상기 희망하는 동작 모드에서 동작하도록 구성될 수 있다. 상기 장치는 상기 프로세싱 유닛을 포함할 수 있다.
본 발명의 세 번째 측면에 따르면, 컴퓨터 판독 가능 명령(computer readable instruction)들을 저장하고 있는 비-일시적 컴퓨터-판독 가능 저장 매체(non-transitory computer-readable storage medium)가 제공되며, 상기 컴퓨터 판독 가능 명령들은 상기 컴퓨터화된 디바이스가 프로세싱 유닛에 대한 전력 관리를 위한 방법을 수행하도록 하는 상기 컴퓨터화된 디바이스에 의해 실행될 수 있으며, 상기 프로세싱 유닛은 복수의 동작 모드들에서 동작하도록 구성되며, 메모리 액세스 미스 이벤트들을 나타내는 정보를 제공하도록 더 구성되며, 상기 방법은: 메모리 액세스 미스 이벤트들을 나타내는 상기 정보를 수신하는 과정과, 적어도 상기 수신된 정보를 기반으로 상기 프로세싱 유닛에 대한 희망하는 동작 모드를 결정하는 과정과, 상기 프로세싱 유닛이 상기 결정을 기반으로 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 포함할 수 있다.
또한, 본 발명의 특징들 및 이점들은 첨부 도면들을 참조하여 생성되는, 단지 하나의 예시로서 주어지는, 본 발명의 바람직한 실시 예들의 하기와 같은 설명으로부터 자명하게 될 것이다.
본 발명의 실시 예에 따르면, 가장 높은 프로세싱 처리량(processing throughput)을 제공하는 모드를 동작시키는 프로세싱 유닛을 제공할 수 있으며, 그에 따라 상기 프로세싱 유닛은 그의 필요로 하는 모든 동시의 태스크(task)들을 위한 충분한 성능을 제공할 수 있는 장점이 있다.
프로세싱 유닛은 이제 첨부된 도면들을 참조하여 생성되는, 단지 하나의 예시로서 주어지는, 본 발명의 실시 예로서 설명될 것이다:
도 1은 본 발명의 실시 예에 따른 프로세싱 유닛의 개략도이다.
도 2는 본 발명의 일 실시 예에 따른 방법을 도시하고 있는 흐름도이다.
본 발명의 일부 구성부들 및 컴포넌트(component)들은 하나 이상의 도면에서 나타나고; 명료성을 위해, 동일한 참조 번호들은 모든 도면들에서 동일한 구성부 및 컴포넌트를 참조하기 위해 사용될 것이다.
먼저, 본 발명의 실시 예들이 사용될 수 있는 프로세싱 유닛(processing unit)이 도 1을 참조하여 설명될 것이다.
도 1은 프로세싱 시스템(1)의 선택된 엘리먼트(element)들의 개략도이다. 상기 시스템(1) 내에서, 프로세싱 유닛(2)은 버스(bus)(4)에 연결되고, 상기 버스(4)를 통해 메인 메모리(main memory)(6)에 연결된다.
상기 프로세싱 유닛(2) 내에서, 4개의 코어(core)들(10, 20, 30, 40)이 제공된다. 제1 코어(10)는 중앙 프로세싱 유닛(central processing unit: CPU)(12)과, 레벨 1(level one: L1) 변환 색인 버퍼(lookaside buffer)(14)와, 레벨 1 데이터 캐쉬(data cache)(16)와, 레벨 1 명령 캐쉬(instruction cache)(18)를 포함할 수 있다. 상기 레벨 1 변환 색인 버퍼(translation lookaside buffer: TLB)(14)와 함께, 레벨 1 데이터 캐쉬(16)와 레벨 1 명령 캐쉬(18)는 레벨 1 메모리 시스템(memory system)(11)을 포함할 수 있다.
상기 제1 코어(10)와 같이, 상기 제2 코어는 중앙 프로세싱 유닛(22)과, 레벨 1 변환 색인 버퍼(24)를 포함하는 레벨 1 메모리 시스템(21)과, 레벨 1 데이터 캐쉬(26) 및 레벨 1 명령 캐쉬(28)를 포함하고; 제3 코어는 중앙 프로세싱 유닛(32)과, 레벨 1 변환 색인 버퍼(34)를 포함하는 레벨 1 메모리 시스템(31)과, 레벨 1 데이터 캐쉬(36) 및 레벨 1 명령 캐쉬(38)를 포함하고; 제4 코어는 중앙 처리 유닛(42)과, 레벨 1 변환 색인 버퍼(44)를 포함하는 레벨 1 메모리 시스템(41)과, 레벨 1 데이터 캐쉬(46) 및 레벨 1 명령 캐쉬(48)를 포함할 수 있다.
단일 레벨 2(level two: L2) 메모리 시스템(51)이 제공될 수 있으며, 이는 4개의 코어들(10, 20, 30, 40) 모두에 공통이다. 상기 레벨 2 메모리 시스템은 레벨 2 변환 색인 버퍼(54)와 통합(즉, 데이터 및 명령들) 캐쉬(56)를 포함한다.
전력 관리 유닛(power management unit)(60)은 상기 프로세싱 유닛(2) 내에서 제공될 수 있다. 상기 전력 관리 유닛(60) 상기 프로세싱 유닛(2) 내의 다른 회로 엘리먼트(circuit element)들로부터의 마이크로 아키텍쳐 이벤트(microarchitectural event)들과 관련되는 정보를 수신하는 인터페이스(interface)(64)를 포함할 수 있다. 이 정보의 특징은 하기에서 보다 구체적으로 설명될 것이다. 게다가, 상기 전력 관리 유닛(60)은 하기에서 설명될 단계들을 수행할 수 있도록 프로세서(processor)(62)와, 선택적으로 메모리(66)를 포함할 수 있다.
또한, 상기 프로세싱 유닛(2)은 상기 프로세싱 유닛의 상기 동작 주파수를 결정하는 신호를 제공하는 클록(clock)(72)과, 상기 프로세싱 유닛(2) 내에서 상기 엘리먼트들에 상기 동작 전압을 제공하는 가변 전압 공급원(variable voltage supply)(74)을 포함할 수 있다.
상기 전력 관리 유닛(60)은 상기 프로세싱 유닛(2)이 복수의 다른 모드들 중의 하나에서 동작하도록 할 수 있다. 그와 같이, 상기 인터페이스는 적정한 출력 신호를 상기 클록(72) 및 전압 공급원(74)에 제공하여 상기 프로세싱 시스템의 동작 주파수 및 동작 전압을 제어하도록 구성되는 인터페이스가 전력 관리 유닛(60) 및 클록(72) 및 전압 공급원(74) 사이에 있을 수 있다.
도시되어 있지는 않지만, 상기에서 설명한 바와 같은 특징들은 그들 간의 데이터를 전달할 수 있도록 상호 연결된다. 또한, 메모리 제어기와 같은, 추가로 알려진 엘리먼트들이 상기 프로세싱 유닛(2) 내에서 제공될 수 있다.
예를 들면, 사용상에서, CPU(12)는 상기 L1 데이터 캐쉬(16)에서의 데이터를 상기 L1 명령 캐쉬(18)에서의 명령들을 사용하여 처리한다. 데이터 또는 명령들을 검색할 때, 상기 TLB(14)는 상기 관련 메모리 내에서 가상 어드레스(virtual address)를 물리 어드레스(physical address)로 변환하고, 상기 데이터 또는 명령들의 빠른 검색을 가능하도록 하기 위해 사용된다. 종합하여, 상기 L1 데이터 캐쉬(16)와, L1 명령 캐쉬(18)로부터의 데이터 또는 명령들의 검색 및 상기 TLB(14)를 사용하는 어드레스 변환은 상기 레벨 1 메모리 시스템(11)으로부터의 메모리 액세스(memory access)로 언급될 것이다.
상기 L1 메모리 시스템(11)은 비교적 작은 사이즈를 가진다. 결과적으로, 상기 레벨 1 메모리 시스템(11)으로부터 정보를 액세스할 때 메모리 액세스 미스 이벤트(memory access miss event)가 비교적 자주 발생한다. 미스 이벤트는 상기 레벨 1 메모리 시스템(11)으로부터 프로세싱 유닛에 의해 요구되지만, 레벨 1 메모리 시스템(11)에서 유용하지 않다. 즉, 데이터 또는 명령들은 레벨 1 메모리 시스템(11)에서 유용하지 않거나, 또는 적절한 어드레스 변환은 상기 TLB(14)에 저장되지 않는다. 미스 이벤트가 발생할 때, 데이터 또는 명령 캐쉬 미스 이벤트의 경우에 상기 CPU(12)는 상기 희망하는 데이터 또는 명령들이 상위 레벨 메모리, 즉 상기 L2 메모리 시스템(51) 또는 상기 메인 메모리(6)로부터 검색되는 동안; 또는 TLB 미스 이벤트의 경우 상기 적절한 어드레스 변환이 도출되는 동안 지연(stall)될 것이다(정지 또는 아이들(idle) 상태가 될 것이다).
지연(정지 또는 아이들) 동안, 상기 CPU(12)는 명령들을 프로세싱하는 것을 중단하고, 상기 CPU(12)의 전체 프로세싱 처리량(throughput)이 떨어지도록(drop) 하는 것을 중단시킬 것이다. 때때로, 멀티-스레딩(multi-threading)이라고 칭해지는, 상기 CPU(12)가 다른 명령들, 즉 다른 스레드를 사용하여 다른 데이터를 처리하는 것을 가능하게 하는 종래의 알려진 기술들이 존재하는 반면에, 지연(또는 아이들) 동안, 천체 프로세싱 처리량은 지연(또는 아이들)에 의해 여전히 감소된다는 것을 유의하여야 한다.
레벨 1 메모리 액세스 미스 이벤트 후에, 데이터 또는 명령들이 상위 메모리로부터 검색되어야만 할 것이다. 첫 번째 예에서, 상기 레벨 2 메모리 시스템(51)으로부터 상기 희망하는 정보를 검색하는 시도가 이루어질 것이다. 상기 정보가 상기 레벨 2 메모리 시스템(51) 내에 포함되어 있을 경우, 이 데이터는 상기 코어(10)으로 송신될 것이고, 해당 캐쉬 메모리(16) 또는 캐쉬 메모리(18)에 저장될 것이고, 상기 L1 TLB(14)는 또한 업데이트될 수 있다. 상기 레벨 2 TLB는 유사한 방식으로 이 프로세스를 돕는 어드레스 변환을 상기 L1 TLB(14)로 제공할 수 있다.
상기 희망하는 정보가 상기 레벨 2 메모리 시스템(51)으로부터 유용하지 않을 경우, 또는 상기 L2 TLB(54)가 상기 어드레스의 적절한 변환을 제공하지 못할 경우, 레벨 2 메모리 액세스 미스 이벤트가 발생한다. 다시, 상기 CPU가 지연될(아이들 상태가 될) 것이고, 상기 관련된 정보는 상기 버스(4)를 통해 상기 메인 메모리(6)로부터 검색된다. 그리고 나서, 상기 데이터는 희망하는 바와 같이 상기 L1 및/또는 L2 메모리 시스템들에 저장될 수 있다. 상기 L1 TLB(14) 및 L2 TLB(54) 중 하나 또는 모두는 상기 새로운 데이터를 반영하기 위해 업데이트(update)될 수 있다.
상기 레벨 1 메모리 시스템(11, 21, 31 및 41) 및 상기 레벨 2 메모리 시스템(51)은 상기 메모리 액세스 미스 이벤트들에서 정보를 수집할 수 있다. 이 정보는 미스 이벤트들의 개수의 카운트(count), 또는 그들의 상대 주파수의 측정의 형태가 될 수 있다. 또한, 상기 CPU(12)는 처리되는 명령들의 개수에 대한 정보를 수집할 수 있다. 이 정보는 상기 전력 관리 유닛(60)으로 전달될 수 있고, 상기 전력 관리 유닛(60)은 하기에서 설명되는 방법을 사용하여 상기 정보를 수신 및 프로세싱한다.
상기와 같은 내용이 제1 코어(10) 측면에서 설명되었을 지라도, 동일한 프로세스들이 각 코어 내에서 발생한다는 것은 이해될 수 있을 것이다. 또한, 상기 레벨 2 메모리 시스템(51)이 공유되기 때문에, 레벨 2 메모리 액세스 미스 이벤트들은 상기 코어들 중 어느 하나에 의한 데이터에 액세스하는 시도에 의해 생성될 수 있다.
상기 메모리 액세스 미스 이벤트들에 대한 정보와, 선택적으로, 상기 CPU들로부터의 프로세싱되는 명령들의 개수에 대한 정보를 프로세싱하고, 상기 전력 관리 유닛(60)은 상기 프로세싱 유닛의 동작 모드를 변경하도록 할 수 있다. 전형적으로, 각 동작 모드는 다른 전력 소모에서 상이한 레벨의 프로세싱 처리량을 제공할 수 있다. 상기에서 설명한 바와 같이, 전형적으로 프로세싱 처리량과 전력 소모간에는 트레이드 오프(trade off)가 존재하고, 따라서 적어도 하나의 모드는 낮은 전력과, 낮은 프로세싱 처리량 구성(configuration)을 나타낼 것이고, 또한 적어도 하나의 모드는 높은 전력과, 높은 처리량 구성을 나타낼 것이다. 전형적으로, 상기 높은 극단(extreme)과 낮은 극단 간에서 분산되는, 정밀한 입상도 및 제어를 위한 많은 다른 모드들이 존재할 수 있다.
실시 예들에 따른 상이한 모드들에서 동작하는 상기 프로세싱 유닛(2)을 구성하는 한 방법이 이하에서 설명될 것이다. 이러한 실시 예들에서, 상기 프로세싱 유닛은 복수의 상이한 전압들(V) 및 동작 주파수들(f)에서 동작할 수 있다.
상기 프로세싱 유닛에서 소비되는 전력은 상기 전압(V)의 제곱과 곱해지는 상기 주파수(f)에 비례할 것이다. 상기 프로세싱 유닛의 프로세싱 처리량은 전형적으로 상기 주파수(f)를 기반으로 할 것이다. 그러나, 더 높은 주파수(f)에서, 상기 회로 컴포넌트들을 시간에 맞춰 스위칭(switch)하는 것을 가능하게 하도록 하기 위해서는 더 높은 전압(V)이 요구된다. 다시 말하면, 상기 주파수(f)가 감소할 경우 상기 동작 전압(V)이 감소할 수 있다. 상기 전압(V)의 제곱으로서 전체 전력이 증가하기 때문에; 임의의 특정 프로세싱 처리량에 대해서, 즉, 주파수(f)에 대해서, 상기 프로세싱 유닛이 상기 희망하는 처리량으로 동작하도록 하는 것을 여전히 가능하게 하는 동시에 가능한 가장 낮은 전압(V)을 사용하는 것이 바람직하다.
이러한 실시 예들에서, 일련의 동작 모드들이 설정될 수 있고, 상기 동작 모드들 각각은 전압 및 주파수의 고유한 조합 및 관련된 프로세싱 처리량 및 전력 소비를 가진다. 일 예로, 하기 <표 1>과 같은 동작 모드들이 사용될 수 있다.
모드 번호 동작 전압(V) 동작 주파수(f)
1 1.2V 1.2GHz
2 1.0V 1.0GHz
3 0.9V 0.9GHz
4 0.8V 0.5GHz
상기 동작 모드는 프로세싱 처리량과 전력 소비 간의 희망하는 밸런스(balance)를 달성하기 위해 상기 프로세싱 유닛에서의 요구 사항들에 의하여 실행 시간(run time) 동안 변경될 수 있다. 상기에서 설명한 바와 같은 방법은 동적 전압 및 주파수 스케일링(dynamic voltage and frequency scaling: DVFS)으로 칭해질 수 있다.
상기 프로세싱 유닛은 복수의 이산된 모드들 중 하나에서 동작할 수 있으나, 모드를 결정하기 위해 사용되는 값들은 훨씬 더 큰 입상도(granularity)의 값을 가질 수 있다. 예를 들면, 상기 복수의 모드들을 위해 사용된 값들은 룩업 테이블에 저장될 수 있다.
상기 전력 관리 유닛(60)은 적절한 인터페이스를 통해 상기 클록(72) 및 전압 제어 유닛(74)으로 적절한 신호들을 송신함으로써 상기 동작 전압 및 동작 주파수를 제어할 수 있다.
이제, 상기에서 설명한 바와 같은 상기 전력 관리 유닛(60)이 실시 예들에 따라 상기 프로세싱 유닛의 동작 모드를 변경할 수 있는 방법이 도 2를 참조하여 설명될 것이다.
단계 S1에서, 상기 전력 관리 유닛(60)은 상기 프로세싱 유닛(2) 내의 상기 회로 엘리먼트들(circuit elements)로부터 이벤트(event) 정보를 수신한다. 전형적으로 이는 상기 레벨 1 메모리 시스템들(11, 21, 31, 41)로부터 레벨 1 미스 이벤트 정보를 포함할 것이고; 상기 레벨 2 메모리 시스템(51)으로부터 레벨 2 미스 이벤트 정보를 포함할 것이고; 또한 상기 코어들 내에서 상기 CPU들(12, 22, 32, 42)에 의해 실행되는 상기 명령들을 나타내는 정보를 포함할 것이다. 이 정보는 상기 인터페이스(64)를 통해 수신될 수 있다.
상기에서 나타낸 바와 같이, 상기 프로세싱 유닛(2)은 복수의 코어들을 가지며, 따라서 다른 정보는 각 코어에 대해 수신될 수 있다. 하기의 설명에서, 일반화된 코어에는 서픽스(suffix) N이 주어질 수 있고, 상기 서픽스 N은 N 번째 코어를 나타낸다. 상기에서 개시된 바와 같이, 상기 수신된 이벤트 정보는 하기와 같은 값들을 포함할 수 있다.
실행되는 명령들 (N = 1 내지 4에 대한 I1N);
레벨 1 명령 캐쉬 미스들 (N = 1 내지 4에 대한 IC1N);
레벨 1 데이터 캐쉬 미스들 (N = 1 내지 4에 대한 DC1N);
레벨 1 TLB 미스들 (N = 1 내지 4에 대한 TM1N);
레벨 2 (통합) 캐쉬 미스들 (C2); 및
레벨 2 (메인) TLB 미스들 (TM2).
상기 값들 각각은 상기 관련된 이벤트에 대한 주어진 주기의 시간에 대한 카운트(즉, 주파수)를 나타낼 수 있다. 상기 주어진 주기의 시간은 미리 결정될 수 있고, 필요할 경우, 일 예로 상기 프로세싱 유닛(2)이 동작하는 주파수를 기반으로 선택될 수 있다. 전형적으로, 상기 시간의 주기는 1 및 100ms 사이가 될 것이다. 그러나, 이러한 주어진 주기의 시간은 실행 시간 동안 상기 프로세싱 유닛(2)의 동작 주파수에 의하여 조절되고 갱신될 수 있다.
단계들 S2, S3, S4, S5에서, 상기 전력 관리 유닛(60)의 프로세서(62)는 상기 수신된 정보를 기반으로 각 코어에 대한 제1 값 PN을 계산한다. 따라서, PN은 하기 <수학식 1>에 따라 이러한 수신된 정보의 가중된 평균(weighted average)으로서 계산될 수 있다.
Figure pat00001
코어들 1, 2, 3, 4 각각에 대해 P1, P2, P3, P4가 계산되고, 단계 S6에서, 상기 전력 관리 유닛(60)의 프로세서(62)는 상기 수신된 정보를 기반으로 제2 값을 계산할 수 있다. 상기 제2 값은 PL2로 나타내진다. PL2는 하기 <수학식 2>에 따라 계산될 수 있다.
Figure pat00002
상기 수학식들은 상기 가중치들(weights) α1, α2, α3, α4, α5, α6을 사용한다. 이러한 가중치들은 상기 프로세싱 유닛의 규격(specification)들을 기반으로 미리 결정될 수 있다. 레벨 2 메모리 액세스 미스 이벤트와 관련된 값들에 주어진 가중치는 레벨 1 메모리 액세스 미스 이벤트와 관련된 값들에 주어진 가중치보다 더 클 수 있다. 이것은 레벨 2 메모리 액세스가 레벨 1 메모리 액세스보다 더 큰 전력을 필요로 하기 때문이다.
단계 S7에서, 상기 전력 관리 유닛(60)은 상기 제1 값 및 제2 값을 결합하여 전체적인 제3 값 PTOT을 생성한다. 이 실시 예에서, PTOT는 하기 <수학식 3>을 사용하여 계산된다.
Figure pat00003
PTOT를 계산하고, 단계 S8에서, 상기 전력 관리 유닛(60)은 PTOT를 기반으로 희망하는 동작 모드를 선택한다. 이 실시 예에서, 상기 프로세싱 유닛(2)은 복수의 상이한 동작 모드들을 가질 수 있고, 적절한 동작 모드는 일 예로 룩업 테이블(lookup table)을 사용하여 선택될 수 있다.
조건 모드 번호
β3 ≤ PTOT 1
β2 ≤ PTOT < β3 2
β1 ≤ PTOT < β2 3
PTOT < β1 4
여기서, β1, β2, β3, β4는 미리 결정된 상수들이다.
희망하는 동작 모드를 선택하고, 단계 S9에서, 상기 전력 관리 유닛(60)은 변경된 모드가 상기 희망하는 동작 모드 및 상기 프로세싱 유닛(2)의 현재의 동작 모드를 기반으로 요구되는지를 결정한다. 변경이 요구될 경우, 즉 상기 희망하는 동작 모드 및 현재의 동작 모드가 일치하지 않을 경우, 단계 S10에서 상기 전력 관리 유닛(60)은 상기 프로세싱 유닛(2)의 동작 모드를 변경하도록 한다. 이는 상기 프로세싱 유닛 내에서, 일 예로, 상기 프로세싱 유닛에 클록 유닛(72) 또는 전압 공급원(74) 내의 하나 이상의 회로 엘리먼트들로 신호를 송신함으로써 가능할 수 있다.
상기 동작 모드에서의 변경이 요구되지 않을 경우, 상기 전력 관리 유닛(60)은 단계들 S1을 이어서 반복하여 새롭게 수신된 정보를 기반으로 상기 프로세싱 유닛(2)에 대한 동작 모드를 결정한다.
상기에서 설명한 바와 같은 실시 예들이 멀티 코어 프로세싱 유닛(2)을 참조하여 설명되는 동안, 상기에서 설명한 바와 같은 방법은 단일 코어만 존재하는 실시 예들에 적용 가능함은 자명할 것이다. 상기와 같은 실시 예들에서, 별도의 제1 값 및 제2 값은 계산되지 않을 수 있고, 상기 제3 값 PTOT은 다음과 같은 <수학식 4>를 사용하여 직접 계산될 수 있다.
Figure pat00004
이제부터, 실제 애플리케이션(real world application)에 대한 계산들의 일 예가 설명될 것이다. 이 예는 스마트 폰(smartphone) 또는 유사한 휴대 디바이스(device)상에서 웹(web)을 브라우징(browsing)하는 사용자에 관해 설명될 것이다. 상기 디바이스는 단일 코어 프로세서를 가진다. 상기 브라우징 프로세스에 포함되는 복수의 스테이지들이 존재하고, 상기 스테이지들은 CPU 집약적(intensive), I/O 집약적 또는 이 둘의 조합이다. 상기 브라우저는 상기 프로세싱 유닛으로부터 과중한 작업량을 필요로 하는 유일한 주된 애플리케이션이라는 것을 가정하기로 한다. 브라우징 동안 상기 디바이스의 동작에서 바람직한 스테이지들은 다음을 포함한다.
1. HTML/JavaScript 해석기를 실행: CPU 집약적.
2. 네트워크를 통한 송신 및 수신: I/O 집약적.
3. RAM 또는 비-휘발성 저장 장치로 데이터 저장: I/O 집약적.
4. 아이들(Idle), 상기 사용자가 일 예로 상기 페이지를 열람할 동안.
이러한 예에서, 상기 이벤트 카운터들의 샘플링은 100ms의 비율로 수행된다. 각 카운트 값은 각 샘플링 주기에 대해서 리셋(reset)된다. 또한, 상기 카운트 값들은 정규화(normalized)될 것이고, 즉 상기 값의 타입을 기반으로 1000과 100,000 사이의 인수(factor)로 분할된다. 상기 결과는 반내림 될 수 있다. 이러한 예에서 상기 PTOT의 계산을 위해 사용되는 값들은 하기와 같이 결정된다.
실행되는 명령들 (I1) - 8000까지의 범위를 부여하는 100 천(thousand)의 인수(factor)에 의해 정규화되는, 100ms 구간 마다 800 백만(million) 이벤트들까지;
레벨 1 명령 캐쉬 미스들(IC1) - 1000까지의 범위를 부여하는 6000의 인수에 의해 정규화되는, 100ms 구간 마다 6 백만(million) 이벤트들까지;
레벨 1 데이터 캐쉬 미스들(DC1) - 1000까지의 범위를 부여하는 1000의 인수에 의해 정규화되는, 100ms 구간마다 1 백만(million) 이벤트들까지;
레벨 1 TLB 미스들(TM1) - 2000까지의 범위를 부여하는 1000의 인수에 의해 정규화되는, 100ms 구간마다 2 백만(million) 이벤트들까지; 및
레벨 2(통합) 캐쉬 미스들(C2) - 1000까지의 범위를 부여하는 1000의 인수에 의해 정규화되는, 100ms 구간마다 1 백만(million) 이벤트들까지.
상기 레벨 2 TLB(TM2) 미스들은 이 예에서 사용되지 않는다. 따라서, PTOT를 계산하기 위해 사용될 수학식은 하기 <수학식 5>와 같다.
Figure pat00005
상기 사용되는 가중치들은 다음과 같다:
α1 = 0.3
α2 = 0.4
α3 = 0.4
α4 = 0.5
α5 = 0.7
스테이지 1에서, 상기 프로세싱 유닛(2)은 상기 HTML/JavaScript를 해석하는 중이고, CPU 집약적인 프로세스는 다음 값들을 결과로 가진다.
I1 = 180,951,779 이벤트들, 1809까지 정규화되는;
IC1 = 430,188 이벤트들, 71까지 정규화되는;
DC1 = 34,115 이벤트들, 34까지 정규화되는;
TM1 = 3123 이벤트들, 3까지 정규화되는; 및
C2 = 14748 이벤트들, 14까지 정규화되는.
이 값들을 사용하여, PTOT는 하기 <수학식 6>과 같이 계산된다.
Figure pat00006
스테이지 2에서, 상기 프로세싱 유닛(2)은 서버로부터 데이터를 검색하는 네트워킹 동작들을 수행하고 있고, 이는 I/O 집약적이며, 다음 값들을 결과로 가진다.
I1 = 25,685,502 이벤트들, 250까지 정규화되는;
IC1 = 399,492 이벤트들, 66까지 정규화되는;
DC1 = 68762 이벤트들, 68까지 정규화되는;
TM1 = 5181 이벤트들, 5까지 정규화되는; 및
C2 = 31264 이벤트들, 31까지 정규화되는;
따라서, 하기 <수학식 7>과 같이 계산된다.
Figure pat00007
스테이지 3은 디스크(disk) 상에서 또는 플래쉬 메모리(flash memory)에서와 같은 RAM 또는 비휘발성 메모리에 저장되는, 수신되는 데이터를 포함하고, I/O 집약적인 프로세스, 다음 값들을 결과로 가진다.
I1 = 62,120,181 이벤트들, 620까지 정규화되는;
IC1 = 2,924,859 이벤트들, 190까지 정규화되는;
DC1 = 177,803 이벤트들, 177까지 정규화되는;
TM1 = 30,833 이벤트들, 30까지 정규화되는; 및
C2 = 60,444 이벤트들, 60까지 정규화되는.
따라서, 하기 <수학식 8>과 같이 계산된다.
Figure pat00008
스테이지 4는 상기 프로세싱 유닛(2)이 아이들일 경우이고, 상기 사용자가 상기 디스플레이에서 상기 페이지를 리드함에 따라, 다음 값들을 결과로 가진다
I1 = 2,146,099 이벤트들, 21까지 정규화되는;
IC1= 196,899 이벤트들, 32까지 정규화되는;
DC1 = 12,058 이벤트들, 12까지 정규화되는;
TM1 = 930 이벤트들, 0까지 정규화되는; 및
C2 = 4908 이벤트들, 5까지 정규화되는.
따라서, 하기 <수학식 9>와 같이 계산된다.
Figure pat00009
PTOT에 대해 상기와 같이 계산된 값들은 이후 상기 프로세싱 유닛에 대한 동작 모드를 결정하기 위해 사용될 수 있다. 일 예로, β에 대한 상기 값들은 상기 모드에 대한 하기 <표 3>과 같은 룩업 조건(lookup condition)들을 제공하기 위해 선택될 수 있다.
조건 모드 번호
450 ≤ PTOT 1
300 ≤ PTOT < 450 2
150 ≤ PTOT < 300 3
PTOT < 150 4
따라서, 상기 스테이지 1에서, 상기 HTML/JavaScript의 상기 프로세서 집약 해석이 수행될 경우, 모드 1(가장 높은 전력 모드)이 선택될 수 있다. 마찬가지로, 스테이지 2는 선택될 모드 3을 초래하고, 상기 스테이지 3은 모드 2를 초래하고, 상기 아이들 스테이지인 상기 스테이지 4는 저전력 스테이트에 상응하게 모드 4가 선택되도록 하는 것을 초래할 것이다.
상기에서 설명한 바와 같은 실시 예들에서, P1, P2, P3, P4의 최댓값은 상기 4개의 코어들을 효율적으로 나타내도록 선택된다. 이는 4개의 코어들 모두가 동일한 주파수 및 전압에서 동작할 경우 수행되고, 상기 코어들 중 일부가 요구되는 것보다 높은 프로세싱 처리량에서 동작할 경우라도 모든 코어들이 적절한 성능을 제공하는 것을 보장한다. 그럼에도 불구하고, 다른 실시 예들에서, 상기 최댓값은 사용되지 않을 수 있다. 예를 들면, 평균, 또는 두 번째로 높은 값이 취해져서 상기 동작 모드를 결정하는 데에 사용될 수 있다. 이 평균은 최댓값을 향해 가중될 수 있다. P1, P2, P3, P4를 결합하거나, 또는 P1, P2, P3, P4 중 단일한 1개를 선택하는 다른 방법들이 사용될 수 있다.
또한, 상기에서 설명한 바와 같은 실시 예들에서 P의 높은 값들이 높은 프로세싱 처리량에 대한 요구 사항을 나타내는 동안, 이는 상기와 같은 경우가 될 수 없다. 희망하는 모드들의 다른 양(measure)들을 제공하는 다른 수학식들이 사용될 수 있다는 것은 자명할 수 있을 것이다. 예를 들어, 값 QN은 하기 <수학식 10>을 사용하여 각 코어에 대해 계산될 수 있다.
Figure pat00010
QN에 대한 상기 값들은 이후에 상기에서 설명한 바와 같은 방식을 사용하여 등가 값 QL2과 결합될 수 있다. 이 2개의 예들은 오직 상기 수학식들 만이 아니다. 상기 수신된 정보를 사용하여 상기 희망하는 동작 모드를 결정하는데 이러한 및 다른 수학식들이 사용될 수 있다.
일부 실시 예들에서, 멀티 코어 프로세싱 유닛에서 별도의 코어들은 독립적으로 제어 가능할 수 있고, 즉 다른 코어들은 다른 동작 모드들에서 동작할 수 있다. 그러한 실시 예들에서, 상기 전력 관리 유닛(60)은 각 코어를 상기에서 설명한 바와 같은 별도의 프로세싱 유닛으로서 처리될 수 있다. 상기와 같은 실시 예들은 공유될 상기 레벨 2 메모리 시스템(51)을 불가능하게 하지 않는다.
상기 단계들 S2, S3, S4, S5는 도 2에 도시되어 있는 바와 같이, 동시에 수행될 수 있다. 그러나, 다른 실시 예들에서, 상기 단계들은 임의의 바람직한 순서로도 수행될 수 있다. 마찬가지로, 상기 이벤트 정보가 수신되는 단계 S1이 상기 방법의 시작에서 별도의 단계로 도시되어 있는 반면에, 상기와 같은 정보는 최근 데이터를 기반으로 임의의 기간들에서 결정되는 동작 모드를 사용하여 상기 전력 관리 유닛(60)에 의해 실행 시간 동안 지속적으로 수신될 수 있음은 자명할 것이다. 상기와 같은 기간들은 전형적으로 1ms에서 100ms의 범위가 될 수 있다.
일부 실시 예들에서, 복수의 공존 값(concurrent value)들은 상기 동작 모드를 결정하기 위해 평균화될 수 있다. 이와 같이, 값들 PN ,t는 각각 t에 의해 나타나는 다양한 시간들에서 코어 N에 대해서 계산될 수 있다. 이러한 값들로부터, 평균이 획득될 수 있고, 상기 프로세싱 유닛(2)의 동작 모드를 결정하는데 사용될 수 있다. 일 예로, 값들 P'N은 하기와 같은 수학식들을 사용하여 계산될 수 있다.
Figure pat00011
그리고, 이러한 값들로부터, PTOT는 하기와 <수학식 12>와 같이 계산될 수 있다.
Figure pat00012
이러한 예에서, PL2는 평균화되지 않지만, 이는 상기 경우에 필수적인 경우가 될 필요는 없음은 당업자에게 자명할 것이다. 즉, 변형된 실시 예에서, PL2는 유사한 프로세스를 사용하여 평균화될 수 있다. 이와는 달리, 오직 PL2만 평균화될 수도 있다. 일부 실시 예들에서, PTOT에 대한 복수의 샘플들이 평균화될 수 있다. 복수의 평균들이 계산될 경우, 이런 평균들을 계산하기 위해 사용되는 샘플들의 개수는 다를 수 있다. 다른 실시 예들에서, 보다 많은 현재의 샘플들을 기반으로 가중된 평균이 사용될 수 있다. 일 예로, 리키 적분기(leaky integrator)가 임의의 특정 값에 대한 실행 평균을 유지하기 위해 사용될 수 있다.
상기에서 설명한 바와 같은 실시 예들에서, 상기 값들 PN, PL2, PTOT은 절대값들이다. 그러나, 일부 또는 전체가 일 예로 최댓값의 퍼센트로 표시될 수 있다.
상기 전력 관리 유닛(60)은 상기 프로세싱 유닛(2)의 일부로서 도시되고 있지만, 이는 반드시 그런 경우가 되지 않을 수도 있다. 즉, 상기 전력 관리 유닛(60)은 상기 전체 시스템에서 별도의 엔터티(entity)가 될 수도 있다. 이와는 달리, 상기에서 설명된 모든 엘리먼트들은 단일 유닛, 즉, 시스템 온 칩(System-on-A-Chip; SoC)의 일부로서 형성될 수 있다. 상기와 같은 실시 예들에서, 상기 버스(4) 및 메인 메모리(6)는 상기 프로세싱 유닛(2) 내에서 형성될 수 있다. 또한, 상기 프로세싱 유닛(2) 내의 코어들의 개수는 상기 기술의 현재 상태에서 전형적으로 1,2, 또는 4이지만, 2가 아닐 수 있고, 종종 1 내지 9 사이의 임의의 가능한 임의의 수가 될 수도 있다.
상기 미리 결정된 값들 αi 및 βi는 상기 프로세싱 유닛이 구성될 경우 결정될 수 있다. 일 예로, 상기 가중치들 αi에 대한 값들은 상기 메모리 시스템들(11, 21, 31, 41, 51) 및/또는 상기 메모리 시스템들(11, 21, 31, 41, 51) 내의 개별 컴포넌트(component)들의 사이즈(size) 및/또는 속도(즉, 개별 캐쉬 또는 TLB 사이즈들)를 기반으로 선택될 수 있다. 또한, 상기 CPU들(12, 22, 32, 42)의 명령 파이프라인 폭(instruction pipeline width) 뿐만 아니라 상기 메인 메모리(6)의 사이즈는 인수(factor)가 될 수 있다. 전형적으로, 상기 레벨 2 메모리 시스템 값들에 대한 가중치들, 즉 α5 및 α6 는 순서대로 상기 실행되는 명령들 α1에 대한 가중치보다 높을 상기 레벨 1 메모리 시스템 값들, 즉 α2, α3 및 α4에 대한 가중치들 보다 높을 것이다. 이는 레벨 2 메모리 시스템 미스 이벤트들은 레벨 1 메모리 시스템 미스 이벤트들과 비교하여 해결되는 보다 긴 시간을 가지고, 따라서 상기 시스템의 전력 소모에 보다 큰 효과를 가지기 때문이다. 상기 최적 값들을 계산하는 한 방법은 시행 착오 메커니즘(trial-and-error mechanism)에 대한 스탠다드 성능 메트릭 툴(performance metric tool)들을 사용하고, 최적 경우 및 최악 경우 값들을 획득하는 것은 당업자에게 알려져 있다.
이와는 달리, 또는 추가적으로, α 및/또는 β에 대한 복수의 다른 값들은 추가적인 인수들을 기반으로 사용될 수 있다. 일 예로, 상기 사용자가 '보다 나은 성능'과 '보다 나은 배터리 라이프'간에서 선택할 수 있는 사용자 구성 가능 옵션(user configurable option)은 사용될 α 및 β에 대한 다른 값들을 초래할 수 있다. 동일하게, 상기 전력 관리 유닛(60)은 언제 모바일 디바이스가 전력의 소스(source)(메인 충전기와 같은)에 연결되는지 검출할 수 있고, 이에 따라 α 및 β에 대한 값들을 선택할 수 있다.
상기에서 설명한 바와 같은 예에서, 상기 이벤트 카운트 값들은 먼저 정규화되고, 그런 다음 상기 가중된 평균들을 사용하여 결합되었다는 것이 당업자에 의해 이해될 수 있을 것이다. 상기 가중화(weighting) 및 정규화(normalizing) 단계들은 다른 실시 예들에서 결합되거나 변경될 수 있다는 것이 자명할 것이다.
상기 전력 관리 유닛(60)은 상기 프로세서에서 상기 다양한 엘리먼트들로부터 카운트 값들과 같은 정보를 수신하는 것으로 설명된 바 있다. 그러나, 일부 실시 예들에서, 상기 전력 관리 유닛(60)은 상기 마이크로 아키텍쳐 이벤트들을 측정할 수 있고, 상기 전력 관리 유닛(60) 내의 메모리에 상기 카운트를 저장할 수 있다. 따라서, 상기 프로세서는 상기 전력 관리 유닛(60) 내의 메모리로부터 상기와 같은 카운트 값들을 수신할 수 있다.
상기 전력 관리 유닛(60)의 상기 프로세서(62)는 프로그램 가능 프로세싱 유닛이 될 수도 있고, 또는 이와는 달리 미리 구성된 하드웨어(hardware)가 될 수도 있다. 평균 값들과 그와 유사한 값들이 계산되는 것으로 설명될 경우, 이전 값들은 상기 메모리(66)에 저장될 수 있다.
본 발명의 실시 예들은 특히 스마트 폰들과, 태블릿 컴퓨터들과 PDA들 및 랩톱 컴퓨터들에서와 같은 모바일 애플리케이션(mobile application)들에 적합하지만, 이는 필수 사항은 아니며, 실시 예들은 프로세싱 유닛의 전력 관리를 요구하는 어떤 시스템에서도 사용될 수 있다.
본 발명에 따른 상기 개시된 방법들은 하드웨어, 펌 웨어 또는 CD ROM, RAM, 플로피 디스크, 하드 디스크 또는 자기-광 디스크와 같은 기록 매체에 저장될 수 있는 소프트웨어 또는 컴퓨터 코드, 또는 원격 기록 매체 또는 비일시적 기계로 독출 가능한 매체에 최초 저장된 네트워크를 통해 다운로드된 컴퓨터 코드로 구현될 수 있다. 그에 따라, 여기에 개시된 방법들은 범용 컴퓨터, 또는 특정 프로세서를 사용하는 기록 매체 상에 저장된 그러한 소프트웨어에서 또는 ASIC 또는 FPGA와 같은 프로그램 가능한 또는 전용 하드웨어에서 렌더링될 수 있다. 당 업계에 이해되어질 수 있는 바와 같이, 상기 프로세서, 마이크로 프로세서 컨트롤러 또는 프로그램 가능한 하드웨어는 상기 컴퓨터에 의해 액세스되고 실행될 때, 프로세서 또는 하드웨어가 여기에 개시된 처리 방법들을 실행하는 소프트웨어 또는 컴퓨터 코드를 저장 또는 수신할 수 있는 메모리 컴포넌트들, 예컨대, RAM, ROM, 플래시 등을 포함할 수 있다. 추가로, 여기에 나타난 프로세싱을 구현하기 위해 범용 컴퓨터가 액세스할 때, 상기 코드의 실행은 상기 범용 컴퓨터가 여기에 나타난 프로세싱을 실행하기 위한 특정 목적 컴퓨터로 변환된다는 것이 인식될 것이다.
임의의 일 실시 예에 관해 설명된 임의의 특징은 독립적으로도 사용될 수 있고, 또는 설명된 다른 특징들과 결합하여 사용될 수도 있고, 또한 상기 실시 예들 중 다른 임의의 실시 예, 또는 상기 실시 예들 중 다른 임의의 실시 예의 임의의 조합의 하나 또는 그 이상의 특징들과 결합하여 사용될 수도 있다. 또한, 상기에서 설명되지 않은 균등들 및 수정들 역시 상기 첨부 도면들에서 정의되어 있는, 본 발명의 범위를 벗어남이 없이 사용될 수 있다. 클레임들의 특징들은 클레임들에서 특정되고 있는 내용들 이외의 조합들에서 조합될 수도 있다.
4 : 버스 6 : 메인 메모리
16 : L1 데이터 캐쉬 18 : L1 명령 캐쉬
26 : L1 데이터 캐쉬 28 : L1 명령 캐쉬
36 : L1 데이터 캐쉬 38 : L1 명령 캐쉬
46 : L1 데이터 캐쉬 48 : L1 명령 캐쉬
56 : L2 통합 캐쉬

Claims (20)

  1. 복수의 동작 모드(mode)들에서 동작하도록 구성되고, 메모리 액세스 미스 이벤트(memory access miss event)들을 나타내는 정보를 제공하기 위해 더 구성되는 프로세싱 유닛(processing unit)에 대한 전력 관리 방법에 있어서,
    메모리 액세스 미스 이벤트들을 나타내는 상기 정보를 수신하는 과정과,
    적어도 상기 수신된 정보를 기반으로 상기 프로세싱 유닛에 대한 희망하는 동작 모드를 결정하는 과정과,
    상기 프로세싱 유닛이 상기 결정을 기반으로 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  2. 제1항에 있어서, 상기 동작하도록 하는 과정은,
    상기 결정을 기반으로 상기 복수의 동작 모드들 중 다른 하나에서 동작하도록 하는 과정을 더 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  3. 제1항에 있어서, 상기 결정하는 과정은,
    메모리 액세스 미스 이벤트들을 나타내는 상기 수신된 정보를 기반으로 제1 값을 계산하고, 상기 제1 값을 기반으로 상기 희망하는 동작 모드를 선택하는 과정을 더 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  4. 제3항에 있어서,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보는 각각이 주어진 시간 주기에서 연관된 메모리 액세스 미스 이벤트에 대한 카운트(count)를 나타내는 복수의 값들을 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  5. 제4항에 있어서,
    상기 복수의 값들의 가중된 평균(weighted average)을 기반으로 상기 제1 값을 계산하는 과정을 더 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  6. 제5항에 있어서,
    레벨 2 메모리 액세스 미스 이벤트와 연관되는 값들에 주어지는 가중치(weighting)는 레벨 1 메모리 액세스 미스 이벤트와 연관되는 값들에 주어지는 가중치보다 높은, 프로세싱 유닛에 대한 전력 관리 방법.
  7. 제3항 내지 제6항 중 어느 한 항에 있어서, 상기 프로세싱 유닛은 복수의 코어(core)들을 포함하고, 상기 코어들 각각에 대한 메모리 액세스 미스 이벤트들을 나타내는 정보를 제공하기 위해 구성되고,
    상기 방법은,
    상기 코어들 각각에 대해서, 각각의 제1 값들에 기반한 희망하는 동작 모드를 결정하는 과정과,
    상기 프로세싱 유닛이 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 더 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  8. 제7항에 있어서,
    상기 프로세싱 유닛은 상기 코어들 중 적어도 2개간에 공유되는 메모리에 대한 메모리 액세스 이벤트들을 나타내는 추가 정보를 제공하기 위해 구성되고, 상기 방법은,
    상기 추가 정보를 기반으로 제2 값을 결정하는 과정과,
    상기 프로세싱 유닛이 상기 제1 값들 중 선택된 하나와 상기 제2 값의 조합을 기반으로 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  9. 제8항에 있어서,
    상기 제1 값들 중 선택된 하나는 가장 높은 프로세싱 처리량(processing throughput)을 제공하는 모드를 동작시키는 상기 프로세싱 유닛에 연관되는, 프로세싱 유닛에 대한 전력 관리 방법.
  10. 제9항에 있어서,
    상기 복수의 모드들 각각은 상기 프로세싱 유닛의 다른 전력 소비 또는 프로세싱 처리량과 연관되는, 프로세싱 유닛에 대한 전력 관리 방법.
  11. 제10항에 있어서,
    상기 복수의 모드들 각각은 상기 프로세싱 유닛에 대한 다른 동작 주파수 또는 동작 전압과 연관되는, 프로세싱 유닛에 대한 전력 관리 방법.
  12. 제11항에 있어서,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보는 레벨 1 메모리 액세스 미스 이벤트들을 나타내는 정보를 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  13. 제12항에 있어서,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보는:
    레벨 1 명령 캐쉬 미스(level 1 instruction cache miss)들과;
    레벨 1 데이터 캐쉬 미스(level 1 data cache miss)들과;
    레벨 1 변환 색인 버퍼 미스(level 1 translation lookaside buffer miss)들 중 하나 이상을 나타내는 정보를 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  14. 제13항에 있어서,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보는 레벨 2 메모리 액세스 미스 이벤트(level 2 memory access miss event)들을 나타내는 정보를 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  15. 제14항에 있어서,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보는:
    레벨 2 통합 캐쉬 미스(level 2 unified cache miss)들과;
    메인 변환 색인 버퍼 미스(main translation lookaside buffer miss)들 중 하나 이상을 나타내는 정보를 포함하는, 프로세싱 유닛에 대한 전력 관리 방법.
  16. 제15항에 있어서,
    상기 동작 모드는 캐쉬 미스(cache miss)들의 개수가 상대적으로 높을 경우 상대적으로 높은 전력 동작 모드가 되도록 선택되고, 상기 동작 모드는 캐쉬 미스들의 개수가 상대적으로 낮을 경우 상대적으로 낮은 전력 동작 모드가 되도록 선택되는, 프로세싱 유닛에 대한 전력 관리 방법.
  17. 제16항에 있어서,
    상기 프로세싱 유닛은 또한 상기 프로세싱 유닛에 의해 실행되는 명령(instruction)들을 나타내는 정보를 제공하기 위해 구성되고, 상기 방법은:
    상기 프로세싱 유닛에 의해 실행되는 명령들을 나타내는 정보를 수신하는 과정과;
    상기 수신된, 상기 메모리 액세스 미스 이벤트들을 나타내는 정보와 상기 수신된, 상기 프로세싱 유닛에 의해 실행되는 명령들을 나타내는 정보 모두를 기반으로 상기 희망하는 동작 모드를 결정하는, 프로세싱 유닛에 대한 전력 관리 방법.
  18. 복수의 동작 모드(mode)들에서 동작하도록 구성되고, 메모리 액세스 미스 이벤트(memory access miss event)들을 나타내는 정보를 제공하기 위해 더 구성되는 프로세싱 유닛(processing unit)에 대한 전력 관리 장치에 있어서,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보를 수신하도록 구성되는 인터페이스(interface)와,
    적어도 상기 수신된 정보를 기반으로 상기 프로세싱 유닛에 대한 희망하는 동작 모드를 결정하도록 구성되는 프로세서(processor)를 포함하며,
    상기 장치는 상기 결정을 기반으로 상기 프로세싱 유닛이 상기 희망하는 동작 모드에서 동작하도록 하기 위해 구성되는, 프로세싱 유닛에 대한 전력 관리 장치.
  19. 제18항에 있어서,
    상기 프로세싱 유닛을 포함하는, 프로세싱 유닛에 대한 전력 관리 장치.
  20. 컴퓨터 판독 가능 명령(computer readable instruction)들을 저장하고 있는 비-일시적 컴퓨터 판독 가능 저장 매체에 있어서,
    상기 컴퓨터 판독 가능 명령들은 컴퓨터화된 디바이스가 복수의 동작 모드(mode)들에서 동작하도록 구성되고, 메모리 액세스 미스 이벤트(memory access miss event)들을 나타내는 정보를 제공하기 위해 더 구성되는 프로세싱 유닛(processing unit)에 대한 전력 관리 방법을 수행하도록 하는 컴퓨터화된 디바이스에 의해 실행 가능하며,
    상기 방법은,
    상기 메모리 액세스 미스 이벤트들을 나타내는 정보를 수신하는 과정과,
    적어도 상기 수신된 정보를 기반으로 상기 프로세싱 유닛에 대한 희망하는 동작 모드를 결정하는 과정과,
    상기 프로세싱 유닛이 상기 결정을 기반으로 상기 희망하는 동작 모드에서 동작하도록 하는 과정을 포함하는, 프로그램이 수록된 컴퓨터 판독 가능 저장 매체.
KR1020130078535A 2012-07-06 2013-07-04 프로세싱 유닛에 대한 전력 관리 시스템 및 방법 KR20140005808A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB1212095.2A GB2503743B (en) 2012-07-06 2012-07-06 Processing unit power management
GB1212095.2 2012-07-06

Publications (1)

Publication Number Publication Date
KR20140005808A true KR20140005808A (ko) 2014-01-15

Family

ID=46766296

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130078535A KR20140005808A (ko) 2012-07-06 2013-07-04 프로세싱 유닛에 대한 전력 관리 시스템 및 방법

Country Status (3)

Country Link
US (1) US20140013142A1 (ko)
KR (1) KR20140005808A (ko)
GB (1) GB2503743B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210107485A (ko) * 2020-02-24 2021-09-01 아주대학교산학협력단 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180024610A1 (en) * 2016-07-22 2018-01-25 Futurewei Technologies, Inc. Apparatus and method for setting a clock speed/voltage of cache memory based on memory request information
US10955901B2 (en) * 2017-09-29 2021-03-23 Advanced Micro Devices, Inc. Saving power in the command processor using queue based watermarks
US12008398B2 (en) * 2019-12-28 2024-06-11 Intel Corporation Performance monitoring in heterogeneous systems
US20220413584A1 (en) * 2021-06-25 2022-12-29 Advanced Micro Devices, Inc. System and method for controlling power consumption in processor using interconnected event counters and weighted sum accumulators

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69224661T2 (de) * 1991-12-17 1998-08-27 Compaq Computer Corp Vorrichtung zur verminderung des energieverbrauchs eines rechnersystems
US5787267A (en) * 1995-06-07 1998-07-28 Monolithic System Technology, Inc. Caching method and circuit for a memory system with circuit module architecture
US5781783A (en) * 1996-06-28 1998-07-14 Intel Corporation Method and apparatus for dynamically adjusting the power consumption of a circuit block within an integrated circuit
US7051227B2 (en) * 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US7249268B2 (en) * 2004-06-29 2007-07-24 Intel Corporation Method for performing performance optimization operations for a processor having a plurality of processor cores in response to a stall condition
US7814485B2 (en) * 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
US7475262B2 (en) * 2005-06-29 2009-01-06 Intel Corporation Processor power management associated with workloads
US7650472B2 (en) * 2005-07-12 2010-01-19 Electronics And Telecommunications Research Institute Method for reducing memory power consumption
JP4231516B2 (ja) * 2006-08-04 2009-03-04 株式会社日立製作所 実行コードの生成方法及びプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210107485A (ko) * 2020-02-24 2021-09-01 아주대학교산학협력단 전자 장치 및 이의 프로세싱 유닛의 소모 전력 산출 방법

Also Published As

Publication number Publication date
GB2503743A (en) 2014-01-08
US20140013142A1 (en) 2014-01-09
GB2503743B (en) 2015-08-19
GB201212095D0 (en) 2012-08-22

Similar Documents

Publication Publication Date Title
EP3274827B1 (en) Technologies for offloading and on-loading data for processor/coprocessor arrangements
US8131843B2 (en) Adaptive computing using probabilistic measurements
KR101518440B1 (ko) 프로세싱 노드의 동적 성능 제어
US9116703B2 (en) Semi-static power and performance optimization of data centers
US20120297232A1 (en) Adjusting the clock frequency of a processing unit in real-time based on a frequency sensitivity value
KR101471303B1 (ko) 그래픽 처리 장치를 위한 전력 관리 장치 및 방법
KR101529802B1 (ko) 효율적인 콘텍스트 분류를 제공하기 위한 방법 및 장치
KR20140005808A (ko) 프로세싱 유닛에 대한 전력 관리 시스템 및 방법
EP3483771A1 (en) Multi-level cpu high current protection
US20160077571A1 (en) Heuristic Processor Power Management in Operating Systems
TWI594116B (zh) 管理運算系統的操作之技術
CN108664367B (zh) 一种基于处理器的功耗控制方法及装置
US9268609B2 (en) Application thread to cache assignment
JP2021517697A (ja) リソーススケジューリング方法および端末デバイス
US20160342191A1 (en) Cpu frequency scaling apparatus and method
US10242418B2 (en) Reconfigurable graphics processor for performance improvement
JP5674954B2 (ja) ストリームデータの異常検知方法および装置
JP6297748B2 (ja) プロデューサ/コンシューマワークロードシリアライゼーションの検出に基づいたプロセッサ状態制御
US10942850B2 (en) Performance telemetry aided processing scheme
US10242652B2 (en) Reconfigurable graphics processor for performance improvement
KR101765830B1 (ko) 멀티 코어 시스템 및 그 구동 방법
US8843775B2 (en) Energy optimization techniques in a computing system
US20170075589A1 (en) Memory and bus frequency scaling by detecting memory-latency-bound workloads
JP6836065B2 (ja) 情報処理装置、pld管理プログラム及びpld管理方法
US10621008B2 (en) Electronic device with multi-core processor and management method for multi-core processor

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid