KR20140122745A - 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링 - Google Patents

칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링 Download PDF

Info

Publication number
KR20140122745A
KR20140122745A KR1020147024520A KR20147024520A KR20140122745A KR 20140122745 A KR20140122745 A KR 20140122745A KR 1020147024520 A KR1020147024520 A KR 1020147024520A KR 20147024520 A KR20147024520 A KR 20147024520A KR 20140122745 A KR20140122745 A KR 20140122745A
Authority
KR
South Korea
Prior art keywords
performance
reliability information
processor core
chip
processor
Prior art date
Application number
KR1020147024520A
Other languages
English (en)
Other versions
KR101655137B1 (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 KR20140122745A publication Critical patent/KR20140122745A/ko
Application granted granted Critical
Publication of KR101655137B1 publication Critical patent/KR101655137B1/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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4405Initialisation of multiprocessor systems
    • 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/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/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Power Sources (AREA)
  • Microcomputers (AREA)
  • Hardware Redundancy (AREA)

Abstract

여기에 기술된 기법은 일반적으로 복수의 프로세서 코어를 가지는 칩 멀티프로세서를 제조하는 것에 관한 방법 및 시스템을 포함한다. 예시적인 방법은 복수의 프로세서 코어 각각과 연관된 받은 성능 또는 신뢰도 정보를 수신하는 단계 - 수신된 성능 또는 신뢰도 정보는 칩 멀티프로세서의 패키징 이전에 결정됨 -; 저장된 성능 또는 신뢰도 정보가 칩 멀티프로세서의 복수의 프로세서 코어 중 적어도 하나의 동작 파라미터를 조정하는 데 이용되도록 수신된 성능 또는 신뢰도 정보를 저장하는 단계를 포함할 수 있다.

Description

칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링{CORE-LEVEL DYNAMIC VOLTAGE AND FREQUENCY SCALING IN A CHIP MULTIPORCESSOR}
여기에서 달리 지적되지 않는다면, 본 섹션에서 설명되는 접근법은 본 출원에서 청구범위에 대한 종래 기술이 아니며, 본 섹션에 포함함으로써 종래 기술로 인정되지 않는다.
무어의 법칙(Moore's Law)에 따라, 집적회로(integrated circuit)에 실현 가능하게 포함될 수 있는 트랜지스터의 수는 약 2년마다 두 배씩 증가해 왔다. 이러한 경향은 반세기 보다 오랫동안 계속되어 왔고, 적어도 2015년이나 2020년까지 계속될 것으로 예상된다. 그러나 단순히 보다 많은 트랜지스터를 단일 스레드형 프로세서(single-threaded processor)에 추가 하는 것은 상당히 더 빠른 프로세서를 더 이상 생산하지 않는다. 그 대신에, 칩 멀티프로세서를 생성하도록 복수 프로세서 코어를 단일 칩 상에 통합하고, 칩 멀티프로세서의 복수 프로세서 코어 사이에서 프로세스들을 공유함으로써 증가된 시스템 성능이 획득되어 왔다. 또한, 칩 멀티프로세서의 복수 프로세서 코어는 기타 공통의 시스템 컴포넌트들을 공유할 수 있으며, 이는 전체적으로 동일한 프로세싱 성능을 가질 수 있는 복수의 단일 코어 프로세서에 비하여, 비용에 있어 더 낮고, 크기에 있어 보다 작은, 시스템의 제조를 용이하게 할 수 있다.
본 개시의 적어도 일부 실시예에 따르면, 복수 프로세서 코어를 가지는 칩 멀티프로세서를 제조하기 위한 방법이 일반적으로 설명된다. 여기서 설명된 예시적인 방법은 복수 프로세서 코어 각각과 연관된 성능 또는 신뢰도 정보를 수신하는 단계를 포함할 수 있고, 여기서 수신된 성능 또는 신뢰도 정보는 칩 멀티프로세서의 패키징 전에 결정될 수 있다. 일부 설명된 방법은 또한 수신된 성능 또는 신뢰도 정보가 검색되고 칩 멀티프로세서의 복수 프로세서 코어 중 하나 이상의 하나 이상의 동작 파라미터를 조정하는 데 사용될 수 있도록 수신된 성능 또는 신뢰도 정보를 저장하는 단계를 포함할 수 있다.
본 개시의 적어도 일부 실시예에 따르면, 칩 멀티프로세서 내 프로세서 코어에 할당된 동작 주파수 및 전압을 관리하기 위한 방법이 설명된다. 일부 예시적인 방법은 칩 멀티프로세서에 의해 완료될 태스크에 대한 연산 요건을 결정하는 단계를 포함할 수 있다. 결정된 연산 요건 및 프로세서 코어 각각과 연관된 저장된 성능 또는 신뢰도 정보에 기초하여, 프로세서 코어 중 적어도 하나의 하나 이상의 동작 파라미터가 조정될 수 있다. 일부 예시에서, 저장된 성능 또는 신뢰도 정보는 칩 멀티프로세서의 패키징 전에 결정될 수 있다.
본 개시의 적어도 일부 실시예에 따르면, 멀티프로세서가 싱글 다이(single die)에 형성될 수 있는 칩 멀티프로세서가 설명된다. 예를 들어, 제1 프로세서 코어, 제2 프로세서 코어 및 온 칩 레지스트리(on-chip registry)가 다이(die)에 형성될 수 있다. 온 칩 레지스트리는 제1 프로세서 코어와 연관된 성능 또는 신뢰도 정보 및 제2 프로세서 코어와 연관된 성능 또는 신뢰도 정보를 저장하도록 구성될 수 있다. 멀티프로세서의 동작 동안, 저장된 성능 또는 신뢰도 정보는 온 칩 레지스트리 및 검색될 수 있고, 제1 및/또는 제2 프로세서 코어의 다양한 동작 파라미터가 조정될 수 있다.
이상의 요약은 단순히 예시적인 것으로서 어떠한 방식으로든 제한적으로 의도된 것이 아니다. 이하의 상세한 설명과 도면을 참조함으로써, 상기 설명된 예시적인 양태들, 실시예들, 그리고 특징들에 더하여, 추가적인 양태들, 실시예들, 그리고 특징들 또한 명확해질 것이다.
본 개시의 전술한 특징 및 다른 특징은 첨부 도면과 결합하여, 다음의 설명 및 첨부된 청구범위로부터 더욱 충분히 명백해질 것이다. 이들 도면은 본 개시에 따른 단지 몇 개의 실시예를 묘사할 뿐이고, 따라서, 그 범위를 제한하는 것으로 고려되어서는 안 될 것이다. 본 개시는 첨부 도면의 사용을 통해 더 구체적이고 상세하게 설명될 것이다.
도 1은 칩 멀티프로세서의 예시적인 실시예의 블록도를 도시하고;
도 2는 프로세서 코어의 예시적인 실시예의 블록도를 도시하고;
도 3은 복수의 프로세서 코어를 가지는 칩 멀티프로세서를 제조하기 위한 예시적인 방법을 요약하는 흐름도를 제시하고;
도 4는 칩 멀티프로세서에서 프로세싱 코어에 제공된 주파수 및 전압을 관리하기 위한 예시적인 방법을 요약하는 흐름도를 제시하고;
도 5는 다중 프로세서 코어를 가지는 칩 멀티프로세서를 제조하기 위한 방법을 구현하기 위한 컴퓨터 프로그램 제품의 예시적인 실시예의 블록도이며,
도 6은 복수의 프로세서 코어를 가지는 칩 멀티프로세서를 제조하기 위해 배열되는 예시적인 컴퓨팅 장치를 도시하는 블록도이고, 모두 본 개시의 적어도 일부 실시예에 따라 배열된다.
이하의 상세한 설명에서 본 개시의 일부를 이루는 첨부된 도면들이 참조된다. 문맥에서 달리 지시하고 있지 않은 한, 일반적으로, 도면에서 유사한 부호들은 유사한 구성들을 나타낸다. 상세한 설명, 도면, 그리고 청구범위에 설명되는 예시적인 실시예들은 제한적으로 여겨지지는 않는다. 여기에서 제시되는 대상의 범위 또는 사상에서 벗어나지 않으면서도 다른 실시예들이 이용되거나, 다른 변경들이 이루어질 수 있다. 여기에서 일반적으로 설명되고, 도면들에 도시되어 있는 본 개시의 양태들은 다양한 다른 구성으로 배열, 대체, 결합, 및 설계될 수 있음과 이 모두가 여기에서 명백히 고려되고 본 개시의 일부가 됨이 기꺼이 이해될 것이다.
반도체 칩 제조는 포토그래픽 처리 단계 및 화학적 처리 단계의 시퀀스를 포함하며, 포토그래픽 프로세싱 단계(photographic processing step) 및 화학적 프로세싱 단계의 시퀀스 동안, 전자 장치와 회로가 반도체의 재료로 만들어진 웨이퍼(wafer) 상에서 점진적으로 생성된다. 웨이퍼(wafer)의 프론트 엔드 오브 라인 (front-end-of-line) 프로세싱으로부터 웨이퍼(wafer)로부터 생성된 칩들의 패키징까지, 전체적인 제조 프로세스는 수백의 프로세스 단계들을 포함할 수 있으며, 그 각각은 특정 수준의 무작위 변형의 대상일 수 있다. 따라서, 동일한 프로세싱을 명목상으로 수행한 칩은, 동일한 웨이퍼(wafer) 상의 인접한 위치로부터 형성된 칩이라 하더라도, 다양한 성능을 가질 수 있다. 동일한 설계, 프로세스 및 마스크가 전체 웨이퍼 작업에 이용될 수 있지만, 제조 프로세스의 마지막에는 어떠한 최대 클럭(clock) 속도(또는 작동 주파수)가 신뢰할만한 것으로 고려되는지를 수립하도록, 각 칩이 보통 길고 복잡한 검사의 대상이 되어, 칩이 버려질 수 있고 측정된 신뢰 가능한 최대 클럭(clock) 속도에 기초하여 상이한 제품으로서 팔릴 수 있도록 한다.
현재, 칩 멀티프로세서(CMP)의 제조업자는 보통 총 코어 수에 관계 없이, CMP 내 각 프로세서에 대한 단일 최대 동작 주파수를 할당하고, 그 최대 동작 주파수로 클럭된 CMP 다이를 미리 설정한다. 차동 전압 주파수 스케일링(DVFS), 즉, 동작하는 동안 마이크로 프로세서의 동작 전압 및/또는 동작 주파수의 조정은 이후, 전력 보존, 발열 감소 등을 위해, CMP의 전력 사용을 관리하는 데 이용될 수 있다. 적은 수의 프로세서 코어를 가지는 CMP에 대하여, 그러한 접근법은 간단하고 효과적일 수 있다. 그러나 보다 높은 코어 수를 가지는 CMP에 대하여, 모든 프로세서 코어가 기본적으로 동일한 성능 및/또는 신뢰도 파라미터로 동작한다는 가정은 CMP에 의한 원치 않은 전력 사용 및/또는 상당한 성능 손실을 야기할 수 있다. 높은 코어 수의 CMP(high core-count CMP) 내 많은 수의 프로세서 코어는 일반적으로 넓은 분포의 최대 동작 주파수 및 기타 성능 파라미터를 가지므로 이러한 성능 손실이 발생한다. 그러므로 CMP에서 최저로 수행하는 프로세서 코어와 호환되도록 높은 코어 수 CMP의 최대 작동 주파수를 설정하는 것은 프로세서 코어의 다수가 그 최대 성능 수준에서 이용되는 것을 막을 수 있다. 보다 높은 코어 수의 CMP(higher core-count CMPs)로 최대 동작 주파수의 분포가 넓어지고 그러한 CMP 의 손실된 잠재적 성능이 비례하여 증가할 수 있다.
여기서 개시된 실시예는 프로세서 코어의 코어 수준 성능 또는 신뢰도 정보를 프로세서 코어를 포함하는 CMP에 제공하기 위한 시스템, 방법 및/또는 장치를 고려한다. 각 프로세서 코어에 대한 코어 수준 성능 또는 신뢰도 정보는 웨이퍼 수준 검사와 같이 패키징 전에 발생하는 CMP의 검사 동안에 획득될 수 있다. 그러한 사전 패키징 검사가 각 개별 프로세서 코어 및 각 프로세서 코어의 컴퓨팅 서브 모듈에 대한 상세한 성능 및/또는 신뢰도 정보의 수집을 허용하므로, 그러한 정보는 프로세서 코어의 성능 또는 신뢰도의 보다 포괄적인 특징을 CMP의 전력 관리 유닛(power management unit (PMU))에 전달할 수 있다. 따라서 동작 동안, PMU는 그 고유한 특징들을 따르는 각 개별 프로세서 코어의 동작 주파수 및 전압을 관리하도록 구성될 수 있다. 또한, 일부 실시예에서, PMU는 CMP에 할당된 특정 태스크의 구성에 기초하여 개별 프로세서 코어의 사용, 동작 주파수, 및/또는 동작 전압을 조정하도록 구성될 수 있다.
도 1은, 본 개시의 적어도 일부 실시예에 따라 배열된, 칩 멀티프로세서(CMP)(100)의 예시적인 실시예의 블록도를 도시한다. CMP(100)는 다이 상에 형성된 복수의 프로세서 코어를 이용하여 병렬 프로세싱 태스크를 수행(예컨대, 복수의 스레드를 프로세싱)하도록 구성될 수 있는 단일 집적회로 다이(die)로부터 형성된 멀티-코어 프로세서이다. CMP(100)는 전력 관리 유닛(power management unit (PMU))(110) 및 복수의 프로세서 코어(140)를 포함할 수 있다. 또한, CMP(100)는 글로벌 큐(global queue)(120) 및 디스패처(dispatcher)(130)에 결합될 수 있다.
PMU(110)는 CMP(100)에 대하여 글로벌 컨트롤러(global controller) 또는 멀티 코어 매니저(multicore manager)로서 역할할 수 있고, 복수의 프로세서 코어(140) 각각의 동작 전압 및/또는 주파수 수준을 조정하도록 구성될 수 있다. PMU(110)는 구성 및 동작에 있어 CMP에 대하여 구성되는 기존의 PMU에 실질적으로 유사할 수 있다. 일부 실시예에서, PMU(110)는 복수의 프로세서 코어(140)에 대하여 DVFS를 수행하도록 구성될 수 있다. 따라서, PMU(110)는 복수의 전압 제어 장치를 포함할 수 있고, 각각은 요구되는 바에 따라 프로세서 코어(140) 각각에 적용된 동작 전압을 독립적으로 조정하도록 구성될 수 있다. 일부 실시예에서, PMU(110)는 DC/DC 컨트롤러 및 복수의 DC/DC 컨버터들을 포함할 수 있다. PMU(110)는 또한 요구 되는 바에 따라 각 프로세서 코어(140)에 제공된 클럭 신호를 동적으로 조정하도록 구성될 수 있는 일부 다른 주파수 제어 장치 또는 클럭 소스 유닛(clock source unit)을 포함할 수 있다. 도 1에 도시된 실시예에서, PMU(110)는 CMP(100)와 온-칩으로 배치되며, 따라서 CMP(100)의 컴포넌트일 수 있다. 다른 실시예에서, PMU(110)은 CMP(100)로부터 오프-칩(off-chip)으로 배치될 수 있다.
고수준 운영 체제 구동 정책(high-level operating-system-driven policy), 예측된 사용에 대한 대응, 활동 수요에 따른 프로세서 자원의 동적 관리, 칩 멀티프로세서(CMP) 환경 내 프로세서로의 태스크의 동적 스케줄링 및 DVFS를 위한 하드웨어 기법을 포함하는, 광범위한 시스템 특성들을 커버하는 PMU에 의해 이용될 수 있는 여러 전력 관리 접근법이 개발되어 왔다. 다른 접근법은 어댑티브 바디 바이어싱(adaptive body biasing(ABB)) 및 어댑티브 공급 전압(adaptive supply voltage (ASV)) 구현예를 포함한다.
일부 실시예에 따르면, 그러한 전력 관리에 대하여 이용 가능한 하드웨어 작동기는, 조인트 전압 및 주파수 스케일링, 주파수 스케일링 및 마이크로 아키텍처 스위치, 예컨대, 명령어 페치 스로틀링(instruction fetch throttling)을 포함한다. PMU(110)는 규칙적인 시간 간격에서 모든 컴포넌트의 전력, 성능 및 용량을 질의(query)하고 주어진 전력 관리 정책, 예컨대, 고정된 전력 예산을 준수하도록 각 컴포넌트의 이용 가능한 작동기를 어떻게 가장 잘 제어할 지를 결정한다. 하드웨서 작동기를 통하여 정책을 구현하기 위한 알고리즘이 단일-코어에 대하여 존재하며, 개별 코어-수준 특징 데이터, 즉, 성능/신뢰도 정보(145) 덕분에 여기서 CMP(100)에 이용될 수 있다. DVFS를 위하여 PMU(110)에 의해 이용되기 적합한 그러한 구현 알고리즘의 두 가지 예시는 MaxBIPS 와 LinOpt이다.
MaxBIPS 알고리즘은, PMU(110)가 프로세서 코어 각각을 개별적으로 제어할 수 있는, 개별 전력 모드의 세트(Vdd-주파수 쌍)를 가정한다. 그러한 알고리즘의 목표는, 주어진 전력 예산 하에서, 기간 당 프로세서 코어(140) 모두에 의해 완료된 명령어의 총 수에 의해 측정되는 것과 같은 CMP(100)의 전체적인 성능을 최대화하기 위함이다. MaxBIPS 알고리즘은, 주어진 코어가 관측창 N에서의 전력 모드 A(VddA, freqA)로부터 관측창 N+1에서의 전력 모드 B(VddB, freqB)로 스위칭하는 경우, 장래의 성능과 전력이 간단한 공식을 이용하여 예측 가능하다는 점에 의존한다. LinOpt는 선형 프로그래밍을 이용하여 CMP에서 코어 각각에 대하여 가장 좋은 전압 및 주파수 수준을 찾는다. 이전에 이러한 공식은 이용 가능한 성능 창의 칩범위 추정을 이용해왔다. 일부 실시예에 따르면, 이러한 알고리즘은, CMP(100) 상의 프로세서 코어(140)가 패키징 되기 전에 코어 수준에서 수집될 수 있는, 온-칩 레지스트리(143)(이하에서 설명됨)에 의해 제공된 것과 같은 데이터를 이용하도록 수정될 수 있다.
사이클 당 명령어(IPC)에서 측정된, 프로세서 코어(140) 중 하나에서 실행하는 어플리케이션의 성능은 메모리 엑세스를 위하여 대기하는 데 보낸 시간에 대하여 얼마나 많은 시간을 어플리케이션이 연산을 하는 데 보내는 지에 따른다. 특정 프로세서 코어(140)의 주파수는 직접적으로 연산 속도에 영향을 미치지만, 프로세서 코어(140)와 연관된 메모리 대기 기간에 작은 영향을 준다. 따라서, 연산 집중적인 어플리케이션의 성능은 메모리-결합 어플리케이션 보다 전압 및 주파수 스케일링에 보다 민감하다. 따라서 프로세서 코어(140)에 대한 정책은 그들이 실행하고 있는 태스크와 관련될 수 있고, PMU(110)는 예를 들어 상이한 정책을 상이한 프로세서 코어(140)또는 태스크(101)와 연관시킬 수 있는 가상 머신 관리기(virtual machine manager) 또는 컴퓨터 운영 체제(OS)(190)와 같은 아키텍처 내 보다 높은 수준의 관리기에 의해 전달된 정책을 가질 수 있다.
일부 실시예에 따르면, PMU(110)에 의하여 이용된 관측창은 변경될 수 있다. PMU 관측창을 변경하는 것은, PM 알고리즘이 실행하는 경우, 100 μs 와 500 μs 사이에서, 실험 중 단지 작은 효과 만을 가지고, 따라서 PMU 관측 시간은 활동 코어의 수와 변경될 수 있다. 또한, 일부 실시예에서, 단일 PMU가 복수의 프로세서 코어(140)의 관측을 시간적으로 상이한 기간에 취해진 일련의 샘플로 분할할 수 있으므로 단일 PMU(110)는 큰 CMP(100)에 대하여 이용될 수 있다. PMU(110)는 프로세서 코어(140) 모두를 동시에 관측할 수 있거나 단지 복수의 프로세서 코어(140)의 서브그룹을 한번에 관측하고 프로세서 코어의 상이한 서브그룹을 여러 번에 관측할 수 있다. 일부 실시예에 따르면, CMP(100)는 복수의 PMU를 포함할 수 있고, 그 각각은 CMP(100)의 서브도메인을 관리하도록 구성될 수 있다. 예를 들어, 그러한 일 실시예에서, 4개의 PMU(110)는 각각 CMP(100)의 대략 사분의 일을 전체로서 관리할 수 있다. 이러한 실시예에서, 복수의 PMU(100)가 글로벌 정책을 협력하여 관리하도록 서로와 통신할 있거나, 대안적으로, 각 PMU(110)가 가상 머신 관리기 또는 OS(190)와 같은 소프트웨어 관리기로부터 그 서브도메인으로 직결되는 정책을 수신할 수 있다.
일부 제어 시스템은 감소된 수의 제어를 최적화하는 것이 보다 쉬움을 발견할 수 있으며, 이 경우, 상술한 서브도메인 시스템은 프로세서 코어(140)에 관한 성능/신뢰도 정보(145)에 의해, 예컨대, 유사한 성능/신뢰도 정보(145)를 가지는 프로세서 코어(140)를 함께 그룹화함으로써 그룹화된 서브도메인과 이용될 수 있다. 일부 실시예에서, 그러한 그룹화는 사전 패키징 검사의 시간에 정의될 수 있고, 성능/신뢰도 정보(145)에 대하여 여기에 설명된 방식으로 저장될 수 있다. 기타 실시예에서, 그러한 그룹화는 관리를 단순화하기 위하여 나중에 수행될 수 있다. 그룹화는, 디스패처(130)에 의하여, 예컨대, 태스크(101)의 세트를 가장 낮은 전력에서 실행하도록 성능/신뢰도 정보(145)에 의해 식별된 프로세스 코어(140)에 분산시킴으로써 이용될 수 있다.
글로벌 큐(Global queue)(120)는 OS(190)로부터 들어오는 태스크를 수신하고 저장하도록 구성될 수 있다. 디스패처(130)는 글로벌 큐(Global queue)(120)에서의 태스크(101)를 프로세서 코어(140) 각각에 주기적으로 할당하도록 구성될 수 있는 스케줄러 모듈이다. 디스패처(130)의 기능들은 OS(190)와 CMP(100) 사이에서 분류되지만, 명확함을 위해서, 도 1에서 단일 요소로서 도시된다. 일부 실시예에서, 온-칩 레지스트리(143)는 프로세싱 코어(140) 각각에 위치하거나 아니면 프로세싱 코어(140) 각각과 연관될 수 있다. 예컨대, 일부 실시예에서, 온-칩 레지스트리는 프로세싱 코어(140)와 같이 동일한 칩에 있을 수 있으나, 도 1에서 도시된 바와 같이 물리적으로 프로세싱 코어(140)의 부분이 아닐 수 있다. 다른 실시예에서, 오프-칩 레지스트리(off-chip registry)(102)(또한 도1 에 도시됨)는 CMP(100)에 외부적으로 처리될 수 있다.
도 2는, 본 개시의 적어도 일부 실시예에 따라 배열되는, 프로세서 코어(140) 중 하나의 예시적인 실시예의 블록도를 도시한다. 프로세서 코어(140)는 로컬 큐(local queue)(141), 프로세서 회로(142) 및 온-칩 레지스트리(143)를 포함할 수 있다. 로컬 큐(141)는 디스패처(130)에 의해 코어(140)에 할당되는 태스크(101)를 수신하고 저장하도록 구성될 수 있다. 프로세서 회로(142)는 로컬 큐(141)에 저장된 태스크를 수행하도록 구성될 수 있는 프로세서 코어(140)의 다양한 컴퓨팅 서브 모듈(149)을 포함할 수 있다. 프로세서 회로(142) 내 그러한 컴퓨팅 서브모듈(149)의 예시들은 시프터, 가산기, 캐시, 메모리 통신 유닛, 버스-프로세싱 유닛, 네트워크 인터페이스, 부동 소수점 유닛, 산술 연산 유닛, 특수 동작 유닛 등을 포함할 수 있다. 온-칩 레지스트리(143)는 프로세서 코어(140)를 이루는 집적회로의 부분으로서 형성될 수 있는 프로세서 코어(140)와 연관될 수 있는 레지스트리이다. 일부 실시예에서, 온-칩 레지스트리(143)는 프로세서 코어(140)에 관련된 성능/신뢰도 정보(145)를 저장하도록 구성될 수 있고, 저장된 정보(145)는 PMU(110)에 의해 검색되거나 PMU(110)로 제공될 수 있다. 온-칩 레지스트리 (143)는 롬(ROM), PROM, 삭제 가능한 PROM(EPROM, EEPROM), 퓨즈 맵(a fuse map), 플래쉬 메모리 등을 포함하는 레지스트리의 임의의 기술적으로 실현 가능한 명시일 수 있다.
성능/신뢰도 정보(145)는, 예컨대, 웨이퍼-수준 검사 프로세스 동안, CMP(100)의 패키징에 앞서, 코어(140) 상에 측정될 수 있는 계측학 데이터를 포함할 수 있다. 성능/신뢰도 정보(145)가 CMP(100)의 패키징에 앞서 다이싱된 칩(diced chip) 상에 또는 웨이퍼 수준에서 수집될 수 있으므로, 패키지 된 다이(die)보다 많은 검사 접촉이 - 일부 예시에서 4회 정도 까지 - 가능하다. 또한, 패키징에 앞서 컴퓨터 칩의 검사는 제어된 온도에서 그리고 정교한 검사 신호 및 검사 장비로 수행될 수 있고, 미리 정해진 신뢰도 및 기타 성능 파라미터에서 집적회로의 최대 클럭 주파수를 수립할 수 있다. 다이의 패키징에 앞서 이용 가능한 추가적인 검사 접촉으로 인하여, 그러한 검사를 위하여 이용 가능한 집적회로는 각 개별 프로세서 코어(140) 및/또는 각 개별 프로세서 코어(140)의 컴퓨팅 서브모듈(149) 각각을 포함할 수 있다. 결과적으로, 일부 실시예에서, 성능/신뢰도 정보(145)는 PMU(110)가 동작 동안 CMP(100)의 전력 사용 및/또는 동작 주파수를 효과적으로 최적화하는 것을 가능하게 하도록 이용될 수 있는 코어-수준 및/또는 서브모듈-수준 정보를 포함할 수 있다.
일부 실시예에서, 성능/신뢰도 정보(145)는 연관된 프로세서 코어(140)의 신뢰가능한 동작과 연관된 최대 동작 전압 및/또는 클럭 주파수 값을 포함할 수 있다. 일부 실시예에서, 성능/신뢰도 정보(145)는 프로세서 코어(140) 각각에 대한 평균 전력 소비 값 및/또는 피크 전력 소비 값을 포함할 수 있다. 일부 실시예에서, 성능/신뢰도 정보(145)는 연관된 프로세서 코어(140)의 동작 범위를 전체에 걸쳐 측정된 누설율 및/또는 기타 성능 메트릭을 더 포함할 수 있다. 일부 실시예에서, 성능/신뢰도 정보(145)는관심있는 프로세서 코어(140)의 특정 행동을 나타내는 함수, 예를 들어 주파수 대 전력 사용을 생성하기 위한 기울기 및 절편 값(intercept value)의 형태일수 있다. 대안적으로, 일부 실시예에서, 성능/신뢰도 정보(145)는 관심 있는 프로세서 코어(140)의 동작 범위 전체에 걸쳐 특정 행동을 나타내는 최적 곡선을 구성하도록 이용될 수 있는 복수의 데이터 포인트들의 형태일 수 있다. 그러한 실시예에서, 데이터 포인트들은 패키징에 앞서 검사하는 동안 측정된 성능 특징에 대응할 수 있다. 따라서, CMP(100)의 동작 동안, 각 프로세서 코어(140)의 고유 성능 특징은 PMU(110)에 제공될 수 있으며, 이로써 코어 단위 당 각 프로세서 코어(140)의 최적의 전력 사용 및/또는 주파수를 용이하게 할 수 있다.
일부 실시예에서, 성능/신뢰도 정보(145)는 컴퓨팅 모듈(149) 중 하나 이상 및/또는 프로세서 코어(140) 내 기타 서브 회로에 대한 성능 또는 신뢰도 정보를 포함할 수 있다. 구체적으로, 성능/신뢰도 정보(145)는 전력 사용, 누설 전류, 등을 포함할 수 있고, 그러한 정보는 프로세서 코어의 동작 범위 전체에 걸쳐 정의된 개별 값 또는 함수를 포함할 수 있다. 이러한 방식으로, CMP(100) 내 각 프로세서 코어(140)의 고유한 동작 특징이 결정될 수 있고, PMU(100)는 상기 동작 특징에 기초하여 각 프로세서 코어(140)의 사용에 맞출 수 있다.
예를 들어, 일부 실시예에서, 특정 태스크에 대하여 요구된 전력 사용을 최적화하기 위해서, PMU(110)는, 태스크가 글로벌 큐(global queue)(110)로부터 특정한 프로세서 코어(140)에 태스크가 할당될 수 있도록, 입력 데이터를 디스패처(130)에 제공하도록 구성될 수 있다. 태스크의 할당은 태스크에 포함된 실행 명령어와 태스크가 할당되는 프로세서 코어(140)의 고유한 동작 특징에 기초할 수 있다. 그러한 실시예에서, 성능/신뢰도 정보(145)는 각 프로세서 코어(140)에서 각 컴퓨팅 서브 모듈(149)에 대하여 전력 사용에 대한 절편 값 및 주파수 기울기 값을 포함할 수 있다. 태스크가 OS(190)에 의해 컴파일되면, 프로세서 코어의 각 컴퓨팅 서브모듈 및 서브회로에 의해 수행된 명령어의 카테고리에 가중될 수 있도록 그러한 전력 사용 정보의 표가 (예를 들어 PMU(110), OS(190) 또는 디스패처(130)에 의해) 생성될 수 있다. 이러한 방식으로, 효과적인 메트릭이 생산될 수 있으며, 이에 의해 각 프로세서 코어(140)의 성능이 추정될 수 있으며 컴파일된 태스크는 태스크를 완료하기에 가장 적합하도록 결정되는 프로세서 코어(140)에 할당될 수 있다. 간단한 예시에서, 많은 수의 곱이 있는 주어지면, 곱셈 동작을 위하여 가장 낮은 전력 사용을 가지는 프로세서 코어(140)가 태스크를 실행하기 위하여 선택될 것이다. 일부 실시예에서, 프로세서 코어의 선택은 PMU(110)에 의해 수행될 수 있다. 다른 실시예에서, 프로세서 코어의 선택이 OS(190) 또는 디스패처(130)에 의해 수행될 수 있다.
동작에서, CMP(100)는 디스패처(130)을 통하여 OS(190)로부터 태스크(101)를 수신하도록 구성될 수 있다. PMU(110)가 멀티 프로세서 코어(140) 각각의 주파수 수준 및 동작 전압을 효과적으로 설정 할 수 있도록 PMU(110)는 CMP(100)에 대한 글로벌 컨트롤러로서 동작하도록 구성될 수 있다. 일부 실시예에서, PMU(110)는 프로세싱 코어(140) 각각에 위치한 온-칩 레지스트리(143)로부터 성능/신뢰도 정보(145)를 수신하도록 구성될 수 있다. 다른 실시예에서, 성능/신뢰도 정보(145)는 단일 오프-칩 레지스트리(single off-chip registry)(102)에 저장될 수 있다. 그러한 실시예에서, 성능/신뢰도 정보(145)는 (예컨대, CMP(100)의 초기 부팅 동안) OS(190)에 의해 엑세스될 수 있는 원격 데이터베이스에 저장될 수 있다. 예를 들어, 원격 데이터베이스는 CMP(100) 또는 OS(190)가 CMP(100)와 연관된 고유 식별자 코드를 이용하여 원격 데이터베이스를 자동적으로 액세스할 수 있도록 인터넷을 통하여 액세스할 수 있도록 구성될 수 있으며, 여기서 성능/신뢰도 정보(145)는 원격 데이터베이스에 저장될 수 있다. 프라이버시 염려에 비추어, 성능/신뢰도 정보(145)가 CMP(100)에 의해 수신되는 이후에 고유 식별자 코드가 OS(190)에 의하여 제거되거나 차단될 수 있다. 대안적으로, 비-고유 코드(non-unique code)는, 성능/신뢰도 정보(145)를 알고리즘적으로 재생산하도록, 원격 데이터베이스에 의해 이용될 수 있는 CMP(100)에 대한 칩 ID에 포함될 수 있다. 다른 수단은 또한 보통의 동작에 앞서 성능/신뢰도 정보(145)를 CMP(100)에 제공하기 위하여 이용될 수 있다.
CMP(100)가 DVFS를 위하여 구성될 수 있는 실시예에서, PMU(110)는 멀티 프로세서 코어 각각의 동작 전압 및/또는 주파수 수준을 동적으로 변동하도록 구성 될 수 있다. 칩 멀티프로세서 내 복수의 코어의 DVFS가 다소 종래적이지만, 코어 당, 사전 패키징 검사 정보(즉, 성능/신뢰도 정보(145))가 종래 기법을 통하여 보통 이용 가능할 수 있는 것 보다 CMP(100) 내 복수의 프로세서 코어(140)에 대하여 폭넓은 신뢰 가능한 동작 범위를 제공하도록 사용될 수 있으므로, DVFS의 유효성이 본 개시에서 설명된 다양한 실시예에 의하여 상당히 개선될 수 있다.
성능/신뢰도 정보(145)와 균등한 정보는 CMP(100)가 패키징된 이후에 보통 측정될 수 없다는 점을 주목한다. 일부 코어-수준 특징의 추정 및 일부 간접적인 측정이 패키징 된 CMP 상의 고문 테스트(torture tests)를 이용하고 한번에 단지 하나의 코어가 작동하여 CMP 상에서 검사를 수행함으로써 이루어질 수 있는 한편, 그러한 결과들은 본 개시에서 설명된 바 보다 본질적으로 덜 정확하다. 또한, 그러한 간접적인 측정들은 컴퓨팅 서브 모듈 또는 서브회로 성능을 결정하지 않으므로 대체로 정확하지 않고, 시간 소비적이고, 본질적으로 복수의 성능 파라미터를 합성한다. 따라서, 그러한 종래 측정은 비교 가능한 정보를 패키징에 앞서 CMP의 검사에 의해 생성되는 코어-수준 정보에 제공하지 않는다.
도 3은 본 개시의 적어도 일부 실시예에 따라, 복수의 프로세서 코어를 가지는 CMP를 제조하기 위한 예시적인 방법(300)을 요약하는 흐름도를 제시한다. 방법(300)은 블록(301) 및/또는 블록(302) 중 하나 이상에 의해 도시된 바와 같은 하나 이상의 동작, 기능 또는 작용을 포함할 수 있다. 블록이 순차적인 순서로 도시되었지만, 이러한 블록은 또한 병렬로 및/또는 여기서 설명된 바와 상이한 순서로 수행될 수 있다. 또한 다양한 블록들은 요구되는 구현예에 기초하여 더 적은 블록들로 조합될 수 있고, 추가적인 블록들로 분할될 수 있고, 및/또는 제거 될 수 있다.
설명의 편의를 위하여, 방법(300)은 CMP(100)에 실질적으로 유사한 CMP에 관하여 설명된다. 당업자는 방법(300)이 CMP의 다른 구성에 의해 수행될 수 있으며 본 개시의 범위 내에 여전히 포함됨을 인정할 것이다. 방법(300)의 첫 번째 동작에 앞서, CMP(100)는 반도체 웨이퍼 상에 형성될 수 있으며 패키징에 앞서 검사를 받을 수 있을 것이다.
사전 패키징 검사는 CMP(100)에 포함된 개별 프로세서 코어(140) 각각과 연관된 성능/신뢰도 정보(145) 및 일부 실시예에서, 각 프로세서 코어(140)의 컴퓨팅 서브 모듈(149) 및/또는 다른 서브회로에 대한 성능/신뢰도 정보(145)를 생산하기 위해 이용될 수 있다.
방법(300)에 대한 프로세싱은 "코어-수준 성능/신뢰도 정보를 수신"하는 동작(301)에서 시작할 수 있다. 블록(301)은 "코어-수준 성능/신뢰도 정보를 저장"하는 블록(302)으로 이어질 수 있다.
동작(301)에서, CMP(100)에서 복수의 프로세서 코어(140) 각각과 연관된 성능/신뢰도 정보(145)가 수신될 수 있다. 웨이퍼-수준 또는 칩-수준 검사 동안, 성능/신뢰도 정보(145)가 멀티 코어 프로세서의 패키징에 앞서 생성될 수 있음을 주목한다.
동작(302)에서, 프로세서 코어 중 적어도 하나의 동작 파라미터가 CMP(100)의 동작 동안 조정될 수 있도록 성능/신뢰도 정보(145)는 저장될 수 있다. 일부 실시예에서, 성능/신뢰도 정보(145)를 저장하는 것은 단일 오프-칩 레지스트리 (102) 또는 복수의 온-칩 레지스트리(143) 중 하나에 성능 또는 신뢰도 정보를 기록하는 것을 포함할 수 있다. 다른 실시예에서, 단일의 온-칩레지스트리는 성능/신뢰도 정보(145)를 저장하는 데 이용될 수 있다. 또 다른 실시예에서, 성능/신뢰도 정보(145)를 OS(190)를 통하여 PMU (110)를 시작하면 액세스될 수 있는 PMU(110)에 의해 액세스 가능할 수 있는 데이터베이스에 저장하는 것을 포함할 수 있다.
일부 실시예에서, 프로세서 코어(140) 중 적어도 하나의 동작 파라미터를 조정하는 것은 동작(301)에서 사전에 저장된 성능/신뢰도 정보(145)에 기초하여 CMP(100)의 프로세서 코어(140) 중 적어도 하나의 전력 소요, 주파수, 및 동작 전압 중 하나를 결정하도록 PMU(110)를 프로그래밍하는 것을 포함할 수 있다. 예를 들어, PMU(110)는 성능/신뢰도 정보(145)를 이용하여 전력 사용 감소하거나 프로세싱 성능 증가시키기 위하여 DVFS 절차를 최적화하도록 구성될 수 있다. 구체적으로, CMP(100)가 가벼운 프로세싱 로드를 가지도록 결정되는 경우, PMU(110)는 태스크를 보다 적은 전력 소비를 가지도록 알려진 프로세서 코어(140)에 할당할 수 있다. 동일한 연산적인 성능에서 코어 대 코어 전력 소비 차이가, PMU(110)가 이용 가능한 적절한 성능/신뢰도 정보를 가지는 경우 실현될 수 있는 전력 절약을 약 20%를 초과하도록 문헌에 도시되어왔다. 유사하게, CMP(100)가 많은 프로세싱 로드를 가지는 경우, PMU(110)는 태스크를 보다 높은 연산적인 성능을 가지도록 알려진 프로세서 코어로 보낼 수 있다. 또한, PMU(110)가 프로세서 코어(140) 각각의 성능 또는 신뢰도에 관한 상세한 정보를 가지므로, PMU(110)는 CMP(100)에 대한 단일의 명목상의 피크 주파수에서 모든 프로세서 코어(140)를 동작하는 것보다, 대략적인 피크 주파수에서 각 프로세서 코어(140)를 작동할 수 있다. 칩 멀티프로세서가 많은 수의 프로세싱 코어로 설계됨에 따라, 개별적으로 측정된 피크 주파수에서의 각 프로세싱 코어(140)의 동작은, 여기에 설명된 바와 같이, 예컨대, 약 100% 까지, CMP(100)의 전체적인 연산 성능에서 상당한 향상을 제공할 수 있다.
도 4는, 본 개시의 적어도 일부 실시예에 따르는, 칩 멀티프로세서 내 프로세싱 코어에게 제공된 주파수 및/또는 전압을 관리하기 위한 예시적인 방법(400)을 요약하는 흐름도를 제시한다. 방법(400)은 블록 401, 402, 및/또는 403 중 하나 이상에 의해 도시된 바와 같은 하나 이상의 동작, 기능, 또는 작용을 포함할 수 있다. 블록은 순차적인 순서로 도시되었지만, 이러한 블록은 또한 병렬로 및/또는 여기서 설명된 바와 상이한 순서로 수행될 수 있다. 또한 다양한 블록들이 요구된 구현예에 기초하여 더 적은 블록들로 조합될 수 있고, 추가적인 블록으로 분할될 수 있고, 및/또는 제거될 수 있다.
설명의 편의를 위하여, 방법(400)은 CMP(100)에 실질적으로 유사한 CMP에 관하여 설명된다. 본 개시에 비추어, 방법(400)은 CMP의 다른 구성에 의해 수행될 수 있고, 이는 본 개시의 범위 내에 포함되는 것으로 인정된다. 방법(400)의 첫 번째 동작에 앞서, 프로세서 코어(140) 각각과 연관된 성능/신뢰도 정보(145)가 CMP(100)의 사전 패키징 검사 동안 수집될 수 있다.
방법(400)에 대한 프로세싱은 "태스크에 대한 연산적인 요구사항을 결정"하는 동작(401)에서 시작할 수 있다. 동작(401)은 "프로세서 코어의 파라미터 동작을 조정"하는 동작(402)으로 이어질 수 있다. 동작(402)은 "프로세서 코어를 선택"하는 동작(403)으로 이어질 수 있다.
동작(401)에서, CMP(100)에 의해 완성될 태스크에 대한 연산적인 요구사항이 결정될 수 있다. 예컨대, 실행 명령어는 태스크의 명령어를 분석함으로써 낮은 수요 태스크 또는 높은 수요 태스크이도록 결정될 수 있다. 일부 실시예에서, 태스크를 실행함에 있어 각 프로세서 코어(140)의 성능은 실행 명령어의 구성에 기초하고 또한 각 프로세서 코어(140)의 고유한 작동 특징에 기초하여 추정될 수 있다. 일부 실시예에서, 명령어에 대한 연산적인 요구사항은 PMU(110)에 의하여 그리고 다른 실시예에서는 OS(190)에 의하여 결정될 수 있다.
동작(402)에서, 프로세서 코어(140) 중 하나 이상의 동작 파라미터는 동작(401)에서 결정된 연산적인 요구사항 또는 프로세서 코어 각각과 연관된 저장된 성능/신뢰도 정보(145)에 기초하여 조정될 수 있다. 일부 실시예에서, 동작(402)에서 조정된 동작 파라미터는 프로세서 코어(140)중 하나 이상의 전력 사용 및/또는 클럭 주파수를 최적화하는 것을 포함할 수 있다.
선택적인 동작(403)에서, 하나 이상의 프로세서 코어(140)는 성능/신뢰도 정보(145)에 기초하여 선택될 수 있다. 선택된 프로세서 코어 또는 코어들(140)은 이후 태스크를 수행하는 것으로부터 방지될 수 있다. 예컨대, 실행 명령어가 낮은 수요 태스크를 나타내는 것으로 동작(401)에서 결정되는 경우, 성능/신뢰도 정보(145)에 의해 나타난 바와 같이, 높은 전력 사용을 가지는 프로세서 코어는 태스크의 일부 또는 전부를 실행하도록 이용되지 않을 수 있으며, 이로써 CMP(100)의 전력 사용을 최소화할 수 있다.
도 5는 본 개시의 적어도 일부 구현 예에 따라 배열된, 멀티 프로세서 코어를 가지는 CMP를 제조하기 위한 방법을 구현하기 위한 컴퓨터 프로그램 제품(500)의 예시적인 실시예의 블록도이다. 컴퓨터 프로그램 제품(500)은 신호 베어링 매체(504)0를 포함할 수 있다. 신호 베어링 매체(504)는, 예컨대, 컴퓨팅 장치의 프로세서에 의해 실행되는 경우, 도 3에 대하여 상술된 기능을 적어도 제공할 수 있는 실행 가능한 명령어(502)의 하나 이상의 세트를 포함할 수 있다.
일부 구현예에서, 신호 베어링 매체(504)는 하드 디스크 드라이브, CD(Compact Disk), DVD(Digital Video Disk), 디지털 테이프, 메모리 등과 같은 비-일시적 컴퓨터 판독 가능 매체(508)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(504)는 메모리, 읽기/쓰기(R/W) CD, R/W DVD 등과 같은 기록 가능 매체(510)를 포함할 수 있으나, 이에 제한되지는 않는다. 일부 구현예에서, 신호 베어링 매체(504)는 디지털 및/또는 아날로그 통신 매체(예컨대, 광섬유 케이블, 도파관(waveguide), 유선 통신 링크, 무선 통신 링크 등)와 같은 통신 매체(506)를 포함할 수 있으나, 이에 제한되지는 않는다. 컴퓨터 프로그램 제품(500)은 비-일시적 컴퓨터 판독 가능 매체(508) 또는 그 밖에 유사한 기록 가능 매체(510)에 기록될 수 있다.
도 6은 본 개시의 적어도 일부 예시에 따라 복수의 프로세서 코어를 가지는 칩 멀티프로세서를 생산하기 위해 배열되는 예시적인 컴퓨팅 장치(600)를 도시하는 블록도이다. 매우 기본적인 구성(602)에서, 컴퓨팅 장치(600)는 하나 이상의 프로세서(604) 및 시스템 메모리(606)를 포함한다. 메모리 버스(608)가 프로세서(604)와 시스템 메모리(606)사이에 통신을 위해 사용될 수 있다.
요구되는 구성에 따라, 프로세서(604)는 마이크로프로세서(μP), 마이크로 컨트롤러(μC), 디지털 신호 프로세서(DSP) 또는 그 임의의 조합을 포함하는 임의의 유형일 수 있지만, 이에 한정 되는 것은 아니다. 프로세서(604)는 레벨 1 캐시(610) 및 레벨 2 캐시(612)와 같은 하나 이상의 레벨의 캐시, 프로세서 코어(614) 및 레지스터(616)를 포함할 수 있다. 예시적인 프로세서 코어(614)는 ALU(arithmetic logic unit), FPU(floating point unit), DSP 코어(digital signal processing core), 또는 그 임의의 조합을 포함할 수 있다. 예시적인 메모리 컨트롤러(618)는 또한 프로세서(604)와 사용될 수 있거나, 또는 몇몇 구현예에서, 메모리 컨트롤러(618)는 프로세서(604)의 내부 부품일 수 있다.
요구되는 구성에 따라, 시스템 메모리(606)는 (RAM과 같은) 휘발성 메모리, (ROM, 플래시 메모리 등과 같은) 비휘발성 메모리, 또는 그 임의의 조합을 포함할 수 있지만, 이에 한정되지 않는 임의의 유형일 수 있다. 시스템 메모리(606)는 운영 체제(620), 하나 이상의 애플리케이션(622) 및 프로그램 데이터(624)를 포함할 수 있다. 애플리케이션(622)은 도 3의 방법(300) 및/또는 도 4의 방법(400)에 대하여 설명된 바와 같이, 칩 프로세서 내 프로세서 코어에 할당된 동작 주파수 및 전압을 관리 하기 위하여 배열된 알고리즘(626)을 포함할 수 있다. 프로그램 데이터(624)는, 여기에서 설명되는 바와 같이 데이터 모니터링 알고리즘(626)과의 동작을 위하여 유용할 수 있는 성능/신뢰도 데이터(628)를 포함할 수 있다. 일부 실시예에서, 애플리케이션(622)은, 운영 체제(620) 상에서 프로그램 데이터(624)와 동작하도록 배열될 수 있다. 이러한 기술된 기본 구성(602)은 내부 파선 내의 컴포넌트에 의해 도 6에 도시된다.
컴퓨팅 장치(600)는 추가적인 특징 또는 기능, 및 기본 구성(802)과 임의의 요구되는 장치와 인터페이스 간 통신을 용이하게 하기 위한 추가적인 인터페이스를 가질 수 있다. 예를 들면, 버스/인터페이스 컨트롤러(640)는 저장 인터페이스 버스(641)를 통한 기본 구성(602)과 하나 이상의 데이터 저장 장치(650) 간의 통신을 용이하게 하는데 사용될 수 있다. 데이터 저장 장치(650)는 분리형 저장 장치(651), 비분리형 저장 장치(652), 또는 그들의 조합일 수 있다. 분리형 저장 장치 및 비분리형 저장 장치의 예로는, 몇 가지 말하자면, 플렉서블 디스크 드라이브 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다기능 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 고체 상태 드라이브(solid state drive; SSD), 및 테이프 드라이브가 포함된다. 예시적인 컴퓨터 저장 매체는, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성의, 분리형 및 비분리형 매체를 포함할 수 있다.
시스템 메모리(606), 분리형 저장 장치(651) 및 비분리형 저장 장치(652)는 컴퓨터 저장 매체의 예이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다기능 디스크(DVD) 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨팅 장치(600)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되는 것은 아니다. 그러한 임의의 컴퓨터 저장 매체는 컴퓨팅 장치(600)의 일부일 수 있다.
컴퓨팅 장치(600)는 버스/인터페이스 컨트롤러(640)를 통한 다양한 인터페이스 장치(예를 들면, 출력 장치(660), 주변 인터페이스(670) 및 통신 인터페이스(680))로부터 기본 구성(602)으로의 통신을 용이하게 하기 위한 인터페이스 버스(642)도 포함할 수 있다. 예시적인 출력 장치(660)는 그래픽 처리 유닛(661) 및 오디오 처리 유닛(662)을 포함하며, 이는 하나 이상의 A/V 포트(663)를 통해 디스플레이 또는 스피커와 같은 다양한 외부 장치로 통신하도록 구성될 수 있다. 예시적인 주변 인터페이스(670)는 직렬 인터페이스 컨트롤러(671) 또는 병렬 인터페이스 컨트롤러(672)를 포함하며, 이는 하나 이상의 I/O 포트(673)를 통해 입력 장치(예를 들면, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 다른 주변 장치(예를 들면, 프린터, 스캐너 등)와 같은 외부 장치와 통신하도록 구성될 수 있다. 예시적인 통신 장치(680)는 네트워크 컨트롤러(681)를 포함하며, 이는 하나 이상의 통신 포트(682)를 통해 제한 없이, 광학 섬유, LTE(Long Term Evolution), 3G, 와이맥스(Wimax)와 같은 네트워크 통신 링크 상에서의 하나 이상의 다른 컴퓨팅 장치(690)와의 통신을 용이하게 하도록 배열될 수 있다.
네트워크 통신 링크는 통신 매체의 일 예시일 수 있다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파 또는 다른 전송 메커니즘 같은 변조된 데이터 신호 내의 다른 데이터에 의해 구현될 수 있고, 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호"는 신호 내에 정보를 인코딩하기 위한 방식으로 설정되거나 변경된 특성 중 하나 이상을 갖는 신호일 수 있다. 제한적인지 않은 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 접속과 같은 유선 매체, 및 음파, 무선 주파수(RF), 마이크로웨이브, 적외선(IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다. 여기서 사용되는 컴퓨터 판독가능 매체라는 용어는 저장 매체 및 통신 매체 둘 다를 포함할 수 있다.
컴퓨팅 장치(600)는, 휴대 전화, PDA(personal data assistant), 개인용 미디어 플레이어 장치, 무선 웹-워치(web-watch) 장치, 개인용 헤드셋 장치, 특수 용도 장치, 또는 위 기능 중 임의의 것을 포함하는 하이브리드 장치 같은 소형 폼 팩터(small-form factor)의 휴대용(또는 모바일) 전자 장치의 일부로서 구현될 수 있다. 컴퓨팅 장치(600)는 또한 랩톱 컴퓨터 및 랩톱이 아닌 컴퓨터 구성을 모두 포함하는 개인용 컴퓨터로서 구현될 수 있다.
요컨대, 본 개시의 실시예는 프로세서 코어의 코어-수준 성능 또는 신뢰도 정보를 프로세서 코어를 포함하는 CMP에 제공하기 위한 시스템과 방법을 제공한다. 멀티코어 관리 프로세스로의 코어-수준 성능 또는 신뢰도 정보의 포함은 CMP의 멀티코어 관리기가 각 코어에 대하여 보다 폭넓은 동작 범위를 사용하는 것을 허용할 수 있다. 이는 높은 수요 태스크에 대한 전체적인 처리 전력을 향상시킬 수 있으며 낮은 수요 태스크에 대한 전체적인 전력 사용을 낮춘다. 또한, 이러한 향상은 기존의 칩 설계 또는 프로세스에 있어서 변화 없이 이루어 질 수 있음을 주목한다.
시스템 양상들의 하드웨어와 소프트웨어 구현 사이에는 구별이 거의 없다. 하드웨어 또는 소프트웨어의 사용은 일반적으로 (그러나 어떤 맥락에서 하드웨어 및 소프트웨어 사이의 선택이 중요하게 될 수 있다는 점에서 항상 그런 것은 아니지만) 비용 대비 효율의 트레이드오프(tradeoff)를 나타내는 설계상 선택(design choice)이다. 여기에서 기술된 프로세스 및/또는 시스템 및/또는 다른 기술들이 영향 받을 수 있는 다양한 수단(vehicles)(예를 들어, 하드웨어, 소프트웨어 및/또는 펌웨어)이 있으며, 선호되는 수단은 프로세스 및/또는 시스템 및/또는 다른 기술이 사용되는 맥락(context)에 따라 변경될 것이다. 예를 들어, 구현자가 속도와 정확성을 주요하다고 결정하면, 구현자는 주로 하드웨어 및/또는 펌웨어 수단을 선택할 수 있을 것이다; 만약 유연성이 주요하면, 구현자는 주로 소프트웨어 구현을 선택할 수 있을 것이다; 또는 대안적으로, 구현자는 하드웨어, 소프트웨어 및/또는 펌웨어의 일부 조합을 선택할 수 있을 것이다
전술한 상세한 설명은 블록도, 흐름도, 및/또는 예시의 사용을 통해 장치 및/또는 프로세스의 다양한 실시예를 설명하였다. 그러한 블록도, 흐름도, 및/또는 예시가 하나 이상의 기능 및/또는 동작을 포함하는 한, 당업자라면 그러한 블록도, 흐름도, 또는 예시 내의 각각의 기능 및/또는 동작은 하드웨어, 소프트웨어, 펌웨어, 또는 실질적으로 그들 임의의 조합의 넓은 범위에 의해 개별적으로 및/또는 집합적으로 구현될 수 있다는 것이 이해될 것이다. 일 실시예에서, 여기에서 기술된 대상의 몇몇 부분은 ASIC(Application Specific Integrated Circuit), FPGA(Field Programmable Gate Array), DSP(Digital Signal Processor) 또는 다른 집적의 형태를 통해 구현될 수 있다. 그러나, 당업자라면, 여기에서 기술된 실시예의 일부 양상이, 하나 이상의 컴퓨터 상에 실행되는 하나 이상의 컴퓨터 프로그램(예를 들어, 하나 이상의 컴퓨터 시스템 상에 실행되는 하나 이상의 프로그램), 하나 이상의 프로세서 상에서 실행되는 하나 이상의 프로그램(예를 들어, 하나 이상의 마이크로프로세서 상에서 실행되는 하나 이상의 프로그램), 펌웨어 또는 실질적으로 그들의 조합으로서, 전체적으로 또는 부분적으로 균등하게 집적 회로에 구현될 수 있다는 알 수 있으며, 소프트웨어 및/또는 펌웨어를 위한 코드의 작성 및/또는 회로의 설계는 본 개시에 비추어 당업자에게 자명할 것이다. 또한, 당업자라면, 여기에서 기술된 대상의 수단(mechanism)들이 다양한 형태의 프로그램 제품으로 분포될 수 있음을 이해할 것이며, 여기에서 기술된 대상의 예시는, 분배를 실제로 수행하는데 사용되는 신호 베어링 매체(signal bearing medium)의 특정 유형과 무관하게 적용됨을 이해할 것이다. 신호 베어링 매체의 예시는, 플로피 디스크, 하드 디스크 드라이브(HDD), CD(Compact Disc), DVD(Digital Versatile Disk), 디지털 테이프, 컴퓨터 메모리 등과 같은 판독가능 유형의 매체 및 디지털 및/또는 아날로그 통신 매체(예를 들어, 섬유 광학 케이블, 웨이브가이드, 유선 통신 링크, 무선 통신 링크 등)와 같은 전송 유형 매체를 포함할 수 있으나, 이에 제한되지는 않는다.
당업자라면, 여기서 설명된 형식으로 장치 및/또는 프로세스를 기술하고, 이후, 공학 실무를 사용하여 그러한 기술된 장치 및/또는 프로세스를 데이터 처리 시스템에 통합한다는 것은 당해 분야에서는 일반적이란 것을 인식할 것이다. 즉, 여기서 기술된 장치 및/또는 방법의 적어도 일부는 합당한 실험 량을 통해 데이터 처리 시스템에 통합될 수 있다. 당업자라면, 전형적인 데이터 처리 시스템은 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 장치, 휘발성 및 비휘발성 메모리 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 운영 체제, 드라이버, 그래픽 사용자 인터페이스 및 애플리케이션 프로그램과 같은 컴퓨터 엔티티(computational entities), 터치 패드 또는 스크린 같은 하나 이상의 상호작용 장치, 및/또는 피드백 루프 및 제어 모터(예를 들면, 위치 및/또는 속도를 감지하기 위한 피드백; 컴포넌트 및/또는 양(quantities)을 이동하고 및/또는 조정하기 위한 제어 모터)를 포함하는 제어 시스템 중 하나 이상을 일반적으로 포함한다는 것을 인식할 것이다. 전형적인 데이터 처리 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템에서 전형적으로 발견되는 바와 같은 임의의 적절한 상업적으로 이용 가능한 컴포넌트를 이용하여 구현될 수 있다.
당업자라면, 여기서 설명된 형식으로 장치 및/또는 프로세스를 기술하고, 이후, 공학 실무를 사용하여 그러한 기술된 장치 및/또는 프로세스를 데이터 처리 시스템에 통합한다는 것은 당해 분야에서는 일반적이란 것을 인식할 것이다. 즉, 여기서 기술된 장치 및/또는 방법의 적어도 일부는 합당한 실험 량을 통해 데이터 처리 시스템에 통합될 수 있다. 당업자라면, 전형적인 데이터 처리 시스템은 일반적으로 시스템 유닛 하우징, 비디오 디스플레이 장치, 휘발성 및 비휘발성 메모리 같은 메모리, 마이크로프로세서 및 디지털 신호 프로세서와 같은 프로세서, 운영 체제, 드라이버, 그래픽 사용자 인터페이스 및 애플리케이션 프로그램과 같은 컴퓨터 엔티티(computational entities), 터치 패드 또는 스크린 같은 하나 이상의 상호작용 장치, 및/또는 피드백 루프 및 제어 모터(예를 들면, 위치 및/또는 속도를 감지하기 위한 피드백; 컴포넌트 및/또는 양(quantities)을 이동하고 및/또는 조정하기 위한 제어 모터)를 포함하는 제어 시스템 중 하나 이상을 일반적으로 포함한다는 것을 인식할 것이다. 전형적인 데이터 처리 시스템은 데이터 컴퓨팅/통신 및/또는 네트워크 컴퓨팅/통신 시스템에서 전형적으로 발견되는 바와 같은 임의의 적절한 상업적으로 이용 가능한 컴포넌트를 이용하여 구현될 수 있다.
여기에서 기술된 대상은 때때로 상이한 다른 컴포넌트 내에 포함되거나 접속된 상이한 컴포넌트를 도시한다. 도시된 그러한 아키텍처는 단순히 예시적인 것이고, 사실상 동일한 기능을 달성하는 다른 많은 아키텍처가 구현될 수 있다는 것이 이해되어야 한다. 개념적으로, 동일한 기능을 달성하기 위한 컴포넌트의 임의의 배치는 원하는 기능이 달성되도록 유효하게 "연관"된다. 이에 따라, 특정 기능을 달성하기 위해 여기서 결합된 임의의 두 개의 컴포넌트는, 아키텍처 또는 중간 컴포넌트와는 무관하게, 원하는 기능이 달성되도록 서로 "연관"된 것으로 볼 수 있다. 마찬가지로, 연관된 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 접속"되거나 또는 "동작적으로 연결"되는 것으로 간주될 수 있고, 그와 같이 연관될 수 있는 임의의 두 개의 컴포넌트는 또한 원하는 기능을 달성하기 위해 서로 "동작적으로 연결가능"한 것으로 볼 수 있다. 동작적으로 연결가능하다는 것의 특정예는 물리적으로 양립가능(mateable)하고 및/또는 물리적으로 인터액팅하는 컴포넌트 및/또는 무선으로 인터액팅이 가능하고 및/또는 무선으로 인터액팅하는 컴포넌트 및/또는 논리적으로 인터액팅하고 및/또는 논리적으로 인터액팅이 가능한 컴포넌트를 포함하지만, 이에 한정되는 것은 아니다.
여기에서 실질적으로 임의의 복수 및/또는 단수의 용어의 사용에 대하여, 당업자는 맥락 및/또는 응용에 적절하도록, 복수를 단수로 및/또는 단수를 복수로 해석할 수 있다. 다양한 단수/복수의 치환은 명확성을 위해 여기에서 명시적으로 기재될 수 있다.
당업자라면, 일반적으로 본 개시에 사용되며 특히 첨부된 청구범위(예를 들어, 첨부된 청구범위)에 사용된 용어들이 일반적으로 "개방적(open)" 용어(예를 들어, 용어 "포함하는"은 "포함하지만 이에 제한되지 않는"으로, 용어 "갖는"는 "적어도 갖는"으로, 용어 "포함하다"는 "포함하지만 이에 한정되지 않는" 등으로 해석되어야 함)로 의도되었음을 이해할 것이다. 또한, 당업자라면, 도입된 청구항의 기재사항의 특정 수가 의도된 경우, 그러한 의도가 청구항에 명시적으로 기재될 것이며, 그러한 기재사항이 없는 경우, 그러한 의도가 없음을 또한 이해할 것이다. 예를 들어, 이해를 돕기 위해, 이하의 첨부 청구범위는 "적어도 하나" 및 "하나 이상" 등의 도입 구절의 사용을 포함하여 청구항 기재사항을 도입할 수 있다. 그러나, 그러한 구절의 사용이, 부정관사 "하나"("a" 또는 "an")에 의한 청구항 기재사항의 도입이, 그러한 하나의 기재사항을 포함하는 예시들로, 그러한 도입된 청구항 기재사항을 포함하는 특정 청구항을 제한함을 암시하는 것으로 해석되어서는 안되며, 동일한 청구항이 도입 구절인 "하나 이상" 또는 "적어도 하나" 및 "하나"("a" 또는 "an")과 같은 부정관사(예를 들어, "하나"는 "적어도 하나" 또는 "하나 이상"을 의미하는 것으로 전형적으로 해석되어야 함)를 포함하는 경우에도 마찬가지로 해석되어야 한다. 이는 청구항 기재사항을 도입하기 위해 사용된 정관사의 경우에도 적용된다. 또한, 도입된 청구항 기재사항의 특정 수가 명시적으로 기재되는 경우에도, 당업자라면 그러한 기재가 전형적으로 적어도 기재된 수(예를 들어, 다른 수식어가 없는 "두개의 기재사항"을 단순히 기재한 것은, 전형적으로 적어도 두 개의 기재사항 또는 두 개 이상의 기재사항을 의미함)를 의미하도록 해석되어야 함을 이해할 것이다. 또한, "A, B 및 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 및 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). "A, B 또는 C 등 중의 적어도 하나"와 유사한 규칙이 사용된 경우에는, 일반적으로 그러한 해석은 당업자가 그 규칙을 이해할 것이라는 전제가 의도된 것이다(예를 들어, "A, B 또는 C 중의 적어도 하나를 갖는 시스템"은, A만을 갖거나, B만을 갖거나, C만을 갖거나, A 및 B를 함께 갖거나, A 및 C를 함께 갖거나, B 및 C를 함께 갖거나, A, B, 및 C를 함께 갖는 시스템 등을 포함하지만 이에 제한되지 않음). 또한 당업자라면, 실질적으로 임의의 이접 접속어(disjunctive word) 및/또는 두 개 이상의 대안적인 용어들을 나타내는 구절은, 그것이 상세한 설명, 청구범위 또는 도면에 있는지와 상관없이, 그 용어들 중의 하나, 그 용어들 중의 어느 하나, 또는 그 용어들 두 개 모두를 포함하는 가능성을 고려했음을 이해할 것이다. 예를 들어, "A 또는 B"라는 구절은 "A" 또는 "B" 또는 "A 및 B"의 가능성을 포함하는 것으로 이해될 것이다.
다양한 양상 및 예시들이 여기에서 개시되었지만, 다른 양상 및 예시들이 당업자에게 명확할 것이다. 본 개시에 기재된 다양한 양상 및 예시는 예시의 목적으로 제시된 것이고, 제한하려고 의도된 것이 아니며, 진정한 범위와 사상은 이하 청구범위에 의해 나타낸다.

Claims (20)

  1. 복수의 프로세서 코어를 가지는 칩 멀티프로세서를 제조하는 방법으로서,
    상기 복수의 프로세서 코어 각각과 연관된 성능 또는 신뢰도 정보를 수신하는 단계 - 상기 수신된 성능 또는 신뢰도 정보는 상기 칩 멀티프로세서의 패키징(packaging)에 앞서 저장됨 -; 및
    저장된 성능 또는 신뢰도 정보가 상기 칩 멀티 프로세서의 복수의 프로세서 코어 중 적어도 하나의 동작 파라미터를 조정하는 데 이용되도록 상기 수신된 성능 또는 신뢰도 정보를 저장하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 복수의 프로세서 코어 중 적어도 하나의 동작 파라미터를 조정하는 것은 상기 저장된 성능 또는 신뢰도 정보에 기초하여 적어도 하나의 프로세서 코어의 클럭 주파수를 최적화하도록 상기 칩 멀티프로세서와 연관된 전력 관리 유닛을 프로그래밍하는 것을 포함하는, 방법.
  3. 제2항에 있어서,
    상기 칩 멀티프로세서의 클럭 주파수 및 전력 사용을 최적화하는 것 중 하나는 태스크를 적어도 하나의 프로세서 코어와 연관된 저장된 성능 또는 신뢰도 정보에 기초하여 상기 복수의 프로세서 코어 중 적어도 하나에 할당하는 단계를 포함하는, 방법.
  4. 제1항에 있어서,
    상기 동작 파라미터는 전력 관리 유닛에 의하여 상기 복수의 프로세서 코어 중 적어도 하나에 제공된 전압 또는 주파수를 포함하는, 방법.
  5. 제1항에 있어서,
    상기 복수의 프로세서 코어 각각과 연관된 상기 성능 또는 신뢰도 정보는 각 프로세서 코어의 적어도 하나의 컴퓨팅 서브모듈에 대한 주파수 대 전력 사용 정보를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 적어도 하나의 컴퓨팅 서브모듈은 시프터(shifter), 가산기, 캐시, 버스 프로세싱 유닛, 네트워크 인터페이스, 부동 소수점 유닛, 산술 연산 유닛 또는 특수 동작 유닛을 포함하는, 방법.
  7. 제5항에 있어서,
    상기 적어도 하나의 컴퓨팅 서브 모듈에 대한 주파수 대 전력 사용 정보는 적어도 하나의 컴퓨팅 서브 모듈에 대한 전력 사용에 대한 주파수 기울기 및 절편을 포함하는, 방법.
  8. 제1항에 있어서,
    상기 수신된 성능 또는 신뢰도 정보를 저장하는 단계는 상기 성능 또는 신뢰도 정보를 상기 칩 멀티프로세서의 온-칩 레지스트리에 기록하는 단계를 포함하는, 방법.
  9. 제1항에 있어서,
    상기 수신된 성능 또는 신뢰도 정보를 저장하는 단계는 상기 성능 또는 신뢰도 정보를 상기 칩 멀티 프로세서와 연관된 전력 관리 유닛에 의해 엑세스 가능한 데이터베이스에 저장하는 단계를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 수신된 성능 또는 신뢰도 정보를 저장하는 단계는 상기 적어도 하나의 프로세서 코어에 대한 상기 수신된 성능 또는 신뢰도 정보를 상기 프로세서 코어 상에 저장하는 단계를 포함하는 방법.
  11. 제1항에 있어서,
    상기 복수의 프로세서 코어 중 적어도 하나의 동작 파라미터를 조정하는 것은 상기수신된 성능 또는 신뢰도 정보에 기초하여 상기 복수의 프로세서 코어 중 적어도 하나의 전력 소요(power rating), 주파수 및 동작 전압 중 하나를 결정하는 것을 포함하는, 방법.
  12. 제11항에 있어서,
    상기 전력 소요는 상기 적어도 하나의 프로세서 코어의 평균 전력 소비 및 피크 전력 소비 중 하나를 포함하는, 방법.
  13. 칩 멀티프로세서 내 프로세서 코어에 제공된 주파수 및 전압을 관리하는 방법으로서,
    상기 칩 프로세서에 의해 완료될 위한 태스크에 대한 연산적인 요구사항을 결정하는 단계; 및
    상기 결정된 연산적인 요구사항 및 상기 프로세서 코어 각각과 연관된 저장된 성능 또는 신뢰도 정보에 기초하여, 상기 칩 멀티프로세서의 상기 프로세서 코어 중 적어도 하나의 동작 파라미터를 조정하는 단계
    를 포함하고,
    상기 저장된 성능 또는 신뢰도 정보는 상기 칩 멀티프로세서의 패키징 이전에 결정되는, 방법.
  14. 제13항에 있어서,
    상기 프로세서 코어 중 적어도 하나의 동작 파라미터를 조정하는 단계는 상기 저장된 성능 또는 신뢰도 정보에 기초하여 상기 적어도 하나의 프로세서 코어의 전력 사용 또는 클럭 주파수를 최적화하는 단계를 포함하는, 방법.
  15. 제14항에 있어서,
    상기 칩 멀티프로세서의 전력 사용 및 클럭 주파수를 최적화하는 단계 중 하나는 태스크를 상기 적어도 하나의 프로세서 코어와 연관된 상기 저장된 성능 또는 신뢰도 정보에 기초하여 프로세서 코어 중 적어도 하나에 할당하는 단계를 포함하는, 방법.
  16. 제13항에 있어서,
    상기 저장된 성능 또는 신뢰도 정보는 상기 칩 멀티프로세서의 온-칩 레지스트리에 배치되는, 방법.
  17. 제13항에 있어서,
    상기 프로세서 코어와 연관된 상기 저장된 성능 또는 신뢰도 정보에 기초하여, 상기 칩 멀티프로세서 내 프로세서 코어로부터 프로세서 코어를 선택하는 단계; 및
    상기 프로세서 코어가 상기 태스크를 수행하는 것을 방지하는 단계
    를 더 포함하는 방법.
  18. 단일 다이(die) 상에 형성된 칩 멀티프로세서로서,
    상기 다이 상에 형성된 제1 프로세서 코어;
    상기 다이 상에 형성된 제2 프로세서 코어; 및
    상기 다이 상에 형성되고 상기 제1 프로세서 코어와 연관된 성능 또는 신뢰도 정보 및 상기 제2 프로세서 코어와 연관된 성능 또는 신뢰도 정보로 구성된 온-칩 레지스트리(on-chip registry);
    를 포함하는 칩 멀티프로세서.
  19. 제18항에 있어서,
    상기 온-칩 레지스트리는 상기 제1 프로세서 코어에 배치된 레지스트리 및 상기 제2 프로세서 코어에 배치된 레지스트리를 포함하는, 칩 멀티프로세서.
  20. 제18항에 있어서,
    상기 성능 또는 신뢰도 정보는 상기 제1 프로세서 코어의 적어도 하나의 컴퓨팅 서브 모듈에 대한 주파수 대 전력 사용 정보 및 상기 제2 프로세서 코어의 적어도 하나의 컴퓨팅 서브 모듈에 대한 주파수 대 전력 사용 정보를 포함하는, 칩 멀티프로세서.
KR1020147024520A 2012-02-04 2012-02-04 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링 KR101655137B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/023896 WO2013115829A2 (en) 2012-02-04 2012-02-04 Core-level dynamic voltage and frequency scaling in a chip multiprocessor

Publications (2)

Publication Number Publication Date
KR20140122745A true KR20140122745A (ko) 2014-10-20
KR101655137B1 KR101655137B1 (ko) 2016-09-07

Family

ID=48903967

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147024520A KR101655137B1 (ko) 2012-02-04 2012-02-04 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링

Country Status (5)

Country Link
US (1) US9619240B2 (ko)
KR (1) KR101655137B1 (ko)
CN (1) CN104205087B (ko)
TW (1) TWI497410B (ko)
WO (1) WO2013115829A2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109408A (ko) * 2017-01-26 2019-09-25 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9003218B2 (en) 2012-05-21 2015-04-07 International Business Machines Corporation Power shifting in multicore platforms by varying SMT levels
US9075556B2 (en) * 2012-12-21 2015-07-07 Intel Corporation Controlling configurable peak performance limits of a processor
US9513688B2 (en) 2013-03-16 2016-12-06 Intel Corporation Measurement of performance scalability in a microprocessor
WO2015005909A1 (en) 2013-07-09 2015-01-15 Empire Technology Development Llc Differential voltage and frequency scaling (dvfs) switch reduction
EP3126928A4 (en) * 2014-04-04 2017-11-08 Empire Technology Development LLC Instruction optimization using voltage-based functional performance variation
US9785481B2 (en) * 2014-07-24 2017-10-10 Qualcomm Innovation Center, Inc. Power aware task scheduling on multi-processor systems
JP6308092B2 (ja) * 2014-10-06 2018-04-11 株式会社デンソー 電子制御装置
US9977699B2 (en) 2014-11-17 2018-05-22 Mediatek, Inc. Energy efficient multi-cluster system and its operations
US10031573B2 (en) * 2014-11-17 2018-07-24 Mediatek, Inc. Energy efficiency strategy for interrupt handling in a multi-cluster system
KR101665794B1 (ko) * 2014-12-22 2016-10-13 현대오트론 주식회사 다이 기반의 차량 제어기 전용 반도체 설계 방법 및 이에 의해 제조되는 차량 제어기 전용 반도체
WO2016114771A1 (en) * 2015-01-14 2016-07-21 Hewlett Packard Enterprise Development Lp Reduced core count system configuration
EP3062142B1 (en) 2015-02-26 2018-10-03 Nokia Technologies OY Apparatus for a near-eye display
US20170023997A1 (en) * 2015-07-20 2017-01-26 Mediatek Inc. Dynamic switching of voltage regulators in a multiprocessor system
US9996138B2 (en) * 2015-09-04 2018-06-12 Mediatek Inc. Electronic system and related clock managing method
JP6631374B2 (ja) * 2016-04-13 2020-01-15 富士通株式会社 情報処理装置、動作状況収集プログラム及び動作状況収集方法
WO2018111368A1 (en) * 2016-12-15 2018-06-21 Siemens Aktiengesellschaft Configuration and parameterization of energy control system
US10650552B2 (en) 2016-12-29 2020-05-12 Magic Leap, Inc. Systems and methods for augmented reality
EP3343267B1 (en) 2016-12-30 2024-01-24 Magic Leap, Inc. Polychromatic light out-coupling apparatus, near-eye displays comprising the same, and method of out-coupling polychromatic light
CN106843815B (zh) * 2017-01-18 2019-02-19 电子科技大学 片上多处理器系统多线程同时运行的优化方法
US10551901B2 (en) * 2017-07-01 2020-02-04 Microsoft Technology Licensing, Llc Core frequency management using effective utilization for power-efficient performance
US10578870B2 (en) 2017-07-26 2020-03-03 Magic Leap, Inc. Exit pupil expander
KR102539044B1 (ko) * 2017-10-30 2023-06-01 삼성전자주식회사 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템
CN116990888A (zh) 2017-12-10 2023-11-03 奇跃公司 光波导上的抗反射涂层
KR102442921B1 (ko) 2017-12-11 2022-09-13 삼성전자주식회사 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치
AU2018392482A1 (en) 2017-12-20 2020-07-02 Magic Leap, Inc. Insert for augmented reality viewing device
CN112136152A (zh) 2018-03-15 2020-12-25 奇跃公司 由观看设备的部件变形导致的图像校正
WO2019231850A1 (en) 2018-05-31 2019-12-05 Magic Leap, Inc. Radar head pose localization
US11579441B2 (en) 2018-07-02 2023-02-14 Magic Leap, Inc. Pixel intensity modulation using modifying gain values
US11510027B2 (en) 2018-07-03 2022-11-22 Magic Leap, Inc. Systems and methods for virtual and augmented reality
US11856479B2 (en) 2018-07-03 2023-12-26 Magic Leap, Inc. Systems and methods for virtual and augmented reality along a route with markers
US11624929B2 (en) 2018-07-24 2023-04-11 Magic Leap, Inc. Viewing device with dust seal integration
US11598651B2 (en) 2018-07-24 2023-03-07 Magic Leap, Inc. Temperature dependent calibration of movement detection devices
EP3831058A4 (en) 2018-08-02 2022-04-20 Magic Leap, Inc. VIEWING SYSTEM WITH PUPILE DISTANCE COMPENSATION BASED ON HEAD MOVEMENT
JP7438188B2 (ja) 2018-08-03 2024-02-26 マジック リープ, インコーポレイテッド ユーザ相互作用システムにおけるトーテムの融合姿勢の非融合姿勢ベースのドリフト補正
WO2020102412A1 (en) 2018-11-16 2020-05-22 Magic Leap, Inc. Image size triggered clarification to maintain image sharpness
CN113518961A (zh) * 2019-02-06 2021-10-19 奇跃公司 限制由多个处理器产生的总热量的基于目标意图的时钟速度确定和调整
CN113544766A (zh) 2019-03-12 2021-10-22 奇跃公司 在第一和第二增强现实观看器之间配准本地内容
WO2020223636A1 (en) 2019-05-01 2020-11-05 Magic Leap, Inc. Content provisioning system and method
JP2022542363A (ja) 2019-07-26 2022-10-03 マジック リープ, インコーポレイテッド 拡張現実のためのシステムおよび方法
KR20210016707A (ko) * 2019-08-05 2021-02-17 삼성전자주식회사 성능효율을 바탕으로 한 스케줄링 방법, 스케줄링 장치 및 컴퓨터 판독가능 저장 매체
CN114667538A (zh) 2019-11-15 2022-06-24 奇跃公司 用于在外科手术环境中使用的观看系统
US11886224B2 (en) * 2020-06-26 2024-01-30 Advanced Micro Devices, Inc. Core selection based on usage policy and core constraints
US11755100B2 (en) * 2021-03-18 2023-09-12 Dell Products L.P. Power/workload management system
US20230098742A1 (en) * 2021-09-30 2023-03-30 Advanced Micro Devices, Inc. Processor Power Management Utilizing Dedicated DMA Engines
TWI789064B (zh) * 2021-10-20 2023-01-01 鯨鏈科技股份有限公司 基於晶圓堆疊架構的計算機系統

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090313623A1 (en) * 2008-06-12 2009-12-17 Sun Microsystems, Inc. Managing the performance of a computer system
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6684341B1 (en) 2000-03-09 2004-01-27 International Business Machines Corporation Method of altering the appearance of an icon of a program to provide an indication to a user that a power management is associated with the particular program
US7941675B2 (en) 2002-12-31 2011-05-10 Burr James B Adaptive power control
US7065641B2 (en) 2002-06-13 2006-06-20 Intel Corporation Weighted processor selection apparatus and method for use in multiprocessor systems
US7953990B2 (en) * 2002-12-31 2011-05-31 Stewart Thomas E Adaptive power control based on post package characterization of integrated circuits
JP4196333B2 (ja) 2003-05-27 2008-12-17 日本電気株式会社 並列処理システム及び並列処理プログラム
EP1555595A3 (en) 2004-01-13 2011-11-23 LG Electronics, Inc. Apparatus for controlling power of processor having a plurality of cores and control method of the same
KR101108397B1 (ko) 2005-06-10 2012-01-30 엘지전자 주식회사 멀티-코어 프로세서의 전원 제어 장치 및 방법
US20070226795A1 (en) * 2006-02-09 2007-09-27 Texas Instruments Incorporated Virtual cores and hardware-supported hypervisor integrated circuits, systems, methods and processes of manufacture
US7420378B2 (en) * 2006-07-11 2008-09-02 International Business Machines Corporation Power grid structure to optimize performance of a multiple core processor
WO2010037177A1 (en) * 2008-10-03 2010-04-08 The University Of Sydney Scheduling an application for performance on a heterogeneous computing system
US8639855B2 (en) * 2008-10-20 2014-01-28 International Business Machines Corporation Information collection and storage for single core chips to 'N core chips

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090313623A1 (en) * 2008-06-12 2009-12-17 Sun Microsystems, Inc. Managing the performance of a computer system
US20100332909A1 (en) * 2009-06-30 2010-12-30 Texas Instruments Incorporated Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190109408A (ko) * 2017-01-26 2019-09-25 에이티아이 테크놀로지스 유엘씨 적응적 전력 제어 루프

Also Published As

Publication number Publication date
WO2013115829A2 (en) 2013-08-08
US9619240B2 (en) 2017-04-11
TWI497410B (zh) 2015-08-21
CN104205087B (zh) 2018-01-16
CN104205087A (zh) 2014-12-10
KR101655137B1 (ko) 2016-09-07
TW201403464A (zh) 2014-01-16
US20130205126A1 (en) 2013-08-08
WO2013115829A3 (en) 2014-04-17

Similar Documents

Publication Publication Date Title
KR101655137B1 (ko) 칩 멀티프로세서에서 코어-수준 동적 전압과 주파수 스케일링
JP6005895B1 (ja) ワット当たりの最適パフォーマンスのためのインテリジェントマルチコア制御
Marathe et al. A run-time system for power-constrained HPC applications
TWI512447B (zh) 配置功率預算給處理器的方法、設備及系統及其電腦可讀取媒體
KR101534449B1 (ko) 이기종 멀티 코어 프로세서에서의 열 에너지 생성을 관리하는 시스템 및 방법
Sheikh et al. An overview and classification of thermal-aware scheduling techniques for multi-core processing systems
KR101747308B1 (ko) 이종의 다중-프로세서 시스템 온 칩에서 열 구동식 작업로드 스케줄링
US10474208B2 (en) Systems, methods and devices for using thermal margin of a core in a processor
US20140380025A1 (en) Management of hardware accelerator configurations in a processor chip
JP6162350B1 (ja) 性能を最大化し、チップ温度および電力を低減する好ましいコア順序付けのためのアルゴリズム
WO2011011155A1 (en) Core selection for applications running on multiprocessor systems based on core and application characteristics
JP2009069921A (ja) マルチプロセッサシステム
TWI477955B (zh) 用於圖形處理器之效能改善的方法、非暫時性電腦可讀取媒體以及圖形處理器
Winter et al. Scheduling algorithms for unpredictably heterogeneous cmp architectures
US10281964B2 (en) Determining thermal time constants of processing systems
Alsafrjalani et al. Tasat: Thermal-aware scheduling and tuning algorithm for heterogeneous and configurable embedded systems
EP3295276B1 (en) Reducing power by vacating subsets of cpus and memory
Moghaddam et al. Investigation of DVFS based dynamic reliability management for chip multiprocessors
US10242652B2 (en) Reconfigurable graphics processor for performance improvement
JP6083278B2 (ja) 計算システム及びその電力管理方法
Chien et al. A thermal-aware scheduling for multicore architectures
US20160350117A1 (en) Thermal availability based instruction assignment for execution
US9389914B2 (en) Information processing apparatus and control method thereof
US20160085219A1 (en) Scheduling applications in processing devices based on predicted thermal impact
Jiashu et al. A design flow for partially reconfigurable heterogeneous multi-processor platforms

Legal Events

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

Payment date: 20200225

Year of fee payment: 4