KR102635344B1 - 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공 - Google Patents

전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공 Download PDF

Info

Publication number
KR102635344B1
KR102635344B1 KR1020227009254A KR20227009254A KR102635344B1 KR 102635344 B1 KR102635344 B1 KR 102635344B1 KR 1020227009254 A KR1020227009254 A KR 1020227009254A KR 20227009254 A KR20227009254 A KR 20227009254A KR 102635344 B1 KR102635344 B1 KR 102635344B1
Authority
KR
South Korea
Prior art keywords
processor
cores
voltage
core
same architecture
Prior art date
Application number
KR1020227009254A
Other languages
English (en)
Other versions
KR20220043225A (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 KR20220043225A publication Critical patent/KR20220043225A/ko
Application granted granted Critical
Publication of KR102635344B1 publication Critical patent/KR102635344B1/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/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/189Power distribution
    • 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/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/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
    • 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
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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/4403Processor initialisation
    • 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/266Arrangements to supply power to external peripherals either directly from the computer or under computer control, e.g. supply of power through the communication port, computer controlled power-strips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0038System on Chip
    • 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

Abstract

멀티코어 프로세서 SoC(System on Chip) 외부로부터의 액세스를 제공하기 위한 장치들, 방법들, 및 저장 매체가 본 명세서에 개시된다. 실시예들에서, SoC는 아키텍처가 동일한 복수의 코어들과 대응하여 연관되는 복수의 내장된 값들을 저장하는 메모리를 포함할 수 있다. 각각의 내장된 값은 아키텍처가 동일한 복수의 코어들 각각에 대한 디폴트 전압을 표시할 수 있다. 실시예들에서, 장치는 아키텍처가 동일한 복수의 코어들의 전압들을 디폴트 전압들의 값들과 상이한 값들로 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스를 제공하는 하나 이상의 프로세서, 디바이스, 및/또는 회로를 포함할 수 있다. 다른 실시예들이 설명 및/또는 청구될 수 있다.

Description

전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공{PROVIDING ACCESS FROM OUTSIDE A MULTICORE PROCESSOR SoC TO INDIVIDUALLY CONFIGURE VOLTAGES}
<관련된 출원>
본 출원은 2016년 1월 26일자로 출원된 "PROVIDING ACCESS FROM OUTSIDE A MULTICORE PROCESSOR SoC TO INDIVIDUALLY CONFIGURE VOLTAGES"라는 명칭의 미국 특허 출원 15/007,021에 대한 우선권을 주장한다.
<기술분야>
본 개시 내용은 멀티코어 프로세서들, 예를 들어 SoC(System on Chip) 아키텍처의 멀티코어 프로세서들에 관한 것이고, 보다 구체적으로는 프로세서 코어들의 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 외부로부터의 액세스에 관한 것이다.
본 명세서에 제공되는 배경 설명은 본 개시 내용의 정황을 일반적으로 제시하기 위한 것이다. 본 명세서에 달리 표시되지 않는 한, 본 섹션에서 설명되는 자료들은 본 출원에서의 청구항들에 대한 종래 기술이 아니고 본 섹션에서의 포함에 의해 종래 기술인 것으로 인정되는 것은 아니다.
품질과 신뢰성을 유지하면서 멀티코어 프로세서들의 제조 동안 제조 편차를 관리하기 위해, 테스트 동안 보수적인 보호 대역이 이용되고, 디바이스들은 그들의 속도 및 전력 특성들에 기초하여 "비닝(binned)"되거나 또는 분류된다. 종래의 속도 비닝(binning)은 전체적으로 프로세서에 대해 단일 관련 속도 및 최소 동작 전압을 할당하는 것에 의해 멀티코어 프로세서들을 싱글 코어 디바이스로 취급한다. 정격 속도 및 최소 전압은 가장 느린 코어의 속도 및 가장 약한 최소 전압을 갖는 코어의 최소 전압을 통상적으로 반영한다.
실시예들은 첨부 도면들과 함께 이하의 상세한 설명에 의해 쉽게 이해될 것이다. 이러한 설명을 용이하게 하기 위해서, 유사한 참조 번호들은 유사한 구조적 엘리먼트들을 지정한다. 실시예들은 첨부 도면들의 도면들에서, 제한으로가 아니라 예로 도시된다.
도 1은, 다양한 실시예들에 따라, 프로세서 코어들의 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 외부로부터의 액세스를 갖는 예시적인 시스템을 도시한다.
도 2는, 다양한 실시예들에 따라, 도 1의 시스템에 의해 수행될 수 있는 예시적인 동작들을 도시한다.
도 3은, 다양한 실시예들에 따라, PCU(Processor Control Unit) 및 통합형 전압 조정기를 포함할 수 있는 시스템의 예를 도시한다.
도 4는, 다양한 실시예들에 따라, 도 3의 예시적인 시스템에서 사용될 수 있는 예시적인 프로세스를 도시한다.
도 5는, 다양한 실시예들에 따라, 본 명세서에 설명되는 장치들 및/또는 방법들을 이용할 수 있는 예시적인 컴퓨팅 디바이스를 도시한다.
프로세서 코어들의 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스를 제공하는 것을 포함하는 컴퓨팅과 연관된 장치들, 방법들 및 저장 매체가 본 명세서에 개시된다. 실시예들에서, 장치는 아키텍처가 동일한 복수의 코어들의 전압들을 디폴트 전압들의 값들과 상이한 값들로 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스를 제공하는 하나 이상의 프로세서, 디바이스, 및/또는 회로를 포함할 수 있다.
이하의 상세한 설명에서는, 유사한 번호들이 유사한 부분들을 전반적으로 지정하고, 실시될 수 있는 실시예들이 예시로서 도시되는, 본 명세서의 일부를 형성하는 첨부 도면들에 대한 참조가 이루어진다. 본 개시 내용의 범위로부터 벗어나지 않고 다른 실시예들이 이용될 수 있고 구조적 또는 논리적 변경들이 이루어질 수 있다는 점이 이해되어야 한다. 따라서, 이하의 상세한 설명은 제한적인 의미로 취해져서는 안 되며, 실시예들의 범위는 첨부된 청구항들 및 이들의 균등물들에 의해 정의된다.
본 개시 내용의 양태들은 첨부된 설명에서 개시된다. 본 개시 내용의 대안적인 실시예들 및 이들의 균등물들이 본 개시 내용의 사상 또는 범위로부터 벗어나지 않고 고안될 수 있다. 아래에 개시되는 유사한 엘리먼트들은 도면들에서 유사한 참조 번호들에 의해 표시된다는 점이 주목되어야 한다.
청구되는 주제를 이해하는데 가장 유용한 방식으로, 다양한 동작들이 다수의 개별적인 액션 또는 동작들로서 차례로 설명될 수 있다. 그러나, 이러한 동작들이 반드시 순서에 의존함을 의미하는 것으로 설명의 순서가 해석되어서는 안 된다. 특히, 이러한 동작들은 제시의 순서로 수행되지 않을 수 있다. 설명되는 동작들은 설명되는 실시예와 상이한 순서로 수행될 수 있다. 다양한 추가적인 동작들이 수행될 수 있고/있거나 설명되는 동작들이 추가적인 실시예들에서 생략될 수 있다.
본 개시 내용의 목적들을 위해, "A 및/또는 B"라는 문구는 (A), (B), 또는 (A 및 B)를 의미한다. 본 개시 내용의 목적들을 위해, "A, B, 및/또는 C"라는 문구는 (A), (B), (C), (A 및 B), (A 및 C), (B 및 C), 또는 (A, B 및 C)를 의미한다.
본 설명은 "실시예에서(in an embodiment)" 또는 "실시예들에서(in embodiments)"라는 문구들을 사용할 수 있으며, 이들은 각각 동일한 또는 상이한 실시예들 중 하나 이상을 지칭할 수 있다. 더욱이, 본 개시 내용의 실시예들에 대해 사용되는 용어들 "포함하는(comprising)", "포함하는(including)", "갖는(having)" 등은 동의어들이다.
본 명세서에서 사용되는 바와 같이, "회로(circuitry)"라는 용어는, 하나 이상의 소프트웨어 또는 펌웨어 프로그램을 실행하는 ASIC(Application Specific Integrated Circuit), 전자 회로, 프로세서(공유, 전용, 또는 그룹), 및/또는 메모리(공유, 전용 또는 그룹), 조합 로직 회로, 및/또는 설명되는 기능성을 제공하는 다른 적합한 컴포넌트들을 지칭하거나, 이들의 일부이거나, 또는 이들을 포함할 수 있다.
알려진 멀티코어 프로세서 SoC들에서는, 제조 편차들과 같은, 다양한 이유들로, 모든 프로세서 코어들(이하, 간단히 "코어들(cores)")이 동일하게 생성되지는 않는다. 코어들은 논리적으로 동일할 수 있지만(예를 들어, 아키텍처가 동일함), 코어들이 상이한 물리적 특성들을 가질 수 있다. 멀티코어 프로세서 SoC의 하나의 코어는 멀티코어 프로세서 SoC의 다른 코어보다 높은 성능 레벨, 예를 들어, 더 높은 주파수 또는 더 낮은 전압에서 동작하는 것이 가능할 수 있다.
일부 프로세서들에서는, 제조시에, "제조 퓨즈 전압들(manufacturing fused voltages)"이라고 불릴 수 있는 상이한 전압들이 상이한 코어들과 연관될 수 있고, 그들의 상이한 동작 능력을 반영한다. 제조 퓨즈 전압들은 각각의 코어에 대해 고정 최대 전압을 구성할 수 있다. 제조 퓨즈 전압들은 멀티코어 프로세서의 판독 전용 메모리에 저장될 수 있다.
때때로 "오버클로킹(overclocking)" 툴들이라고 지칭되는 성능 수정 툴들이 전압 구성 가능성을 제공할 수 있다. 알려진 성능 수정 툴들에서, 운영 체제 인터페이스 또는 BIOS(Basic Input Output System) 인터페이스는 PCU(Processor Control Unit)와 통신할 수 있어 시스템 관리자가, PCU 로의 신호에 의해, 멀티코어 프로세서의 퓨즈 전압들의 적어도 일부와 상이한 동작 전압을 선택할 수 있게 한다. 예를 들어, (더 높은 주파수 및/또는 성능 레벨을 달성하기 위해) 1.55V에서 동작할 수 있는 예시적인 6 코어 멀티코어 프로세서는 코어 0, 코어 1, 코어 2, 코어 3, 코어 4, 및 코어 5에 대해 각각 전압들 1.3V, 1.35V, 1.55V, 1.35V, 1.35V, 및 1.3V를 저장하는 판독 전용 메모리를 포함할 수 있다. 시스템 관리자는, 연관된 트레이드오프들을 수락하여, 알려진 성능 수정 툴들로 1.55V 동작을 위해 멀티코어 프로세서를 구성할 수 있어, 코어 0, 코어 1, 코어 2, 코어 3, 코어 4, 및 코어 5에 대해 각각 전압들 1.55V, 1.55V, 1.55V, 1.55V, 1.55V, 및 1.55V에서 코어들을 동작시키려고 시도한다. 멀티코어 프로세서를 사용하는 컴퓨팅 시스템이 관리 멀티코어 프로세서 설정(예를 들어, 위의 예에서 1.55V)에서 안정적인 것으로 보이면, (명백한 안정성에도 불구하고) 특정 트레이드오프들이 여전히 실현된다. 이러한 트레이드오프들은 가속화된 신뢰성 저하 및 열적 고려 사항들을 포함할 수 있다. 전압이 높을수록, 주어진 프로세서 코어의 수명이 더 짧아질 것이다. 모든 프로세서 코어들은 "가장 약한(weakest)" 코어에 의해 요구되는 전압에서 모두 작동하기 때문에 가속화된 저하를 겪는다. 관리 멀티코어 프로세서 설정은 더 높은 프로세서 패키지 온도를 또한 초래할 것이다. 이것은 스로틀링(더 낮은 성능)을 초래할 수 있고/있거나, 보다 비싼 것과 같은, 보다 적극적인 냉각 솔루션을 요구할 수 있다.
본 명세서에 개시되는 다양한 실시예들은 SoC 아키텍처로 멀티코어 프로세서의 각각의 코어의 전압을 외부적으로 구성하는 능력을 가능하게 하고, 이는 성능, 전력 효율, 신뢰성 등, 또는 이들의 조합들을 향상시키는데 사용될 수 있다. 예에서, 시스템은 각각의 프로세서 코어에 대한 프로세서 코어 전압의 사용자/시스템/소프트웨어 프로그램 가능성을 지원할 수 있다. 예에서, 시스템은 멀티코어 프로세서의 제조 퓨즈 전압들의 각각의 고정 전압 최대 전압 위인 개별 프로세서 코어 전압들을 지원할 수 있다.
다양한 실시예들은 코어 당 전압 설정들에 대한 외부적으로 구성 가능한 인터페이스(예를 들어, 제조 퓨즈 전압들의 값들과 상이한 값들로 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스)를 포함할 수 있다. 예에서, BIOS 또는 다른 소프트웨어(예를 들어, 운영 체제, 드라이버, 애플리케이션 등)에 액세스 가능한 프로세서 인터페이스는 개별 코어 당 기반으로 전압의 구성을 가능하게 할 수 있다. 예에서, 인터페이스는 제어 레지스터(들)과 같은 레지스터(들)(예를 들어, MSR(model specific register(s))), OC(overclocking) Mailbox와 같은 메시징 인터페이스 등, 또는 이들의 조합들을 이용할 수 있다. 이러한 인터페이스는 외부 구성이 관리될 수 있는 하나보다 많은 포맷, 예를 들어, 프로세서 코어 당 실제 전압 값, 제조 퓨즈 전압들과 같은 디폴트로부터의 오프셋, 단일 전압 값 및 단일 전압 값으로부터의 오프셋 등, 또는 이들의 조합들을 제공할 수 있다.
다양한 실시예들은 자동화 시스템을 포함할 수 있고, 이는 프로세서 내부에 있을 수 있다. 예에서, 자동화 시스템은, 외부적으로 요청되는 주파수(예를 들어, 사용자-선택 주파수 또는 멀티코어 프로세서와 연관된 운영 체제의 애플리케이션과 같은 외부 시스템에 의해 선택되는 주파수)에 기초하여와 같이, 외부적으로 구성 가능한 인터페이스로부터 수신되는 정보에 기초하여 개별 프로세서 코어들에 대한 전압 값들을 스케일링 및/또는 선택하는 PCU를 포함할 수 있다. 자동화 시스템은 개별화된 전압 모드에 대한 요청을 포함하는 및/또는 이를 표시하는 외부 구성 입력을 수신할 수 있다. 이러한 요청은 BIOS, (운영 체제와 같은) 다른 소프트웨어, (제어 레지스터와 같은) 레지스터, 메시징 인터페이스 등, 또는 이들의 조합들로부터의 것일 수 있다. PCU는 동작 특성을 스케일링하는, 예를 들어, 전압을 스케일링 업하는 방법에 대한 추정치를 생성하고, 다음으로 요청을 수신하는 것에 응답하여 PCU 생성 추정치를 적용할 수 있다.
다양한 실시예들은 컴퓨팅 시스템의 멀티코어 프로세서, 예를 들어, SoC 아키텍처의 멀티코어 프로세서를 포함할 수 있다. 이러한 멀티코어 프로세서는 컴퓨팅 시스템에 노출된 인터페이스를 포함할 수 있고, 이러한 노출된 인터페이스는 컴퓨팅 시스템에 의해 요청되는 전압 값들을 수락하고 구현한다. 이러한 컴퓨팅 시스템은 노출된 인터페이스와 통신하여 이러한 전압 값들로 멀티코어 프로세서를 프로그래밍하는 (BIOS, 애플리케이션, 운영 체제 등의) 소프트웨어 코드를 포함할 수 있다.
다양한 실시예들은 성능 및/또는 신뢰성을 향상시킬 수 있다. 증가된 성능은 적어도 하나의 코어에 대한 더 낮은 개별 전압과 연관될 수 있고, 이는 열을 덜 생성할 수 있다. 더 낮은 열은 다른 코어에 더 높은 "오버클록(overclock)"을 초래할 수 있고, 이는 향상된 컴퓨팅 성능을 제공할 수 있다. 더 낮은 열은 자동화 터보 운영 체제들의 향상된 성능을 초래할 수 있다. 향상된 신뢰성은 코어 당 평균 전압의 감소에 기초할 수 있다.
도 1은, 다양한 실시예들에 따라, 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 외부로부터의 액세스를 갖는 예시적인 시스템을 도시한다.
이러한 시스템(100)은 멀티코어 프로세서(21), 예를 들어, SoC 멀티코어 프로세서를 포함할 수 있다. 멀티코어 프로세서(21)는 복수의 코어들(99), 예를 들어, 아키텍처가 동일한 복수의 코어들을 포함할 수 있다. 복수의 코어들(99) 중 제1 코어는 제1 물리적 특성을 가질 수 있고, 복수의 코어들(99) 중 제2 코어는 제1 물리적 특성과 상이한 제2 물리적 특성을 가질 수 있다. 이러한 상이한 물리적 특성들은 제조 동안의 프로세스, 열, 또는 온도 편차들, 멀티코어 프로세서(21)에서의 복수의 코어들(99)의 상이한 상대적 위치들 등, 또는 이들의 조합들에 관련될 수 있다.
멀티코어 프로세서(21)는 복수의 코어들(99)과 대응하여 연관되는 복수의 내장된 값들(22)- 각각의 내장된 값은 복수의 코어들(99) 각각에 대한 디폴트 전압을 표시함 -을 저장하는 메모리(23)를 포함할 수 있다.
컴포넌트(51)는 복수의 코어들(21)의 전압들을 내장된 값들(22)과 상이한 값들로 개별적으로 설정/프로그래밍하기 위한 멀티코어 프로세서(21) 외부로부터의 액세스를 제공할 수 있다. 이러한 컴포넌트(51)는 내장된 값들(22) 중 적어도 하나를 개별적으로 오버라이드(override)하기 위한, 예를 들어, 값들(22)의 적어도 서브세트를 오버라이드(override)하기 위한 및/또는 값들(22) 중 하나를 이러한 값들 중 다른 하나와 상이하게 오버라이드하기 위한 외부 선택(15)을 수신할 수 있다. 외부 선택(15)은 멀티코어 프로세서(21)가 상주하는 컴퓨팅 시스템의 BIOS 또는 다른 소프트웨어(애플리케이션, 운영 체제)로부터의 것일 수 있다. 다양한 실시예들에서, 컴포넌트(51)는 레지스터-기반 인터페이스, 메시지-기반 인터페이스, 명령어-기반 인터페이스, 핀들 등, 또는 이들의 조합들을 포함할 수 있다.
멀티코어 프로세서(21)가 멀티코어 프로세서(21)에 전압을 제공하는 개별 전압 조정기를 이용하는 예에서, 개별 전압 조정기는 외부 전압 조정기일 수 있다. 이러한 경우, 컴포넌트(21)는 멀티코어 프로세서(21)를 다수의 개별 전압 조정기들의 각각의 전압 조정기 또는 외부 전압 조정기의 다수의 개별 전압 조정기 컴포넌트들에 연결하는 핀들(예를 들어, 입력 핀들)을 포함할 수 있다. 외부 전압 조정기는, 핀들을 통해, 그 중 적어도 하나가 제조 퓨즈 전압들과 상이한 전압들을 제공하도록, 멀티코어 프로세서(21)의 회로(예를 들어, PCU)에 의해 제어될 수 있다. 컴포넌트(21)는, 외부 전압 조정기에 대한 전압 조정기 설정을 결정하기 위한, PCU와 같은 제어 회로 및, 마이크로코드 및/또는 pcode와 같은 코드를 또한 포함할 수 있다.
도 2는, 다양한 실시예들에 따라, 도 1의 시스템에 의해 수행될 수 있는 예시적인 동작들을 도시한다.
블록 201에서, 시스템(100)은 멀티코어 프로세서(21)의 복수의 코어들과 대응하여 연관되는 복수의 내장된 값들을 액세스할 수 있다. 이러한 액세스는 제1 시간에 발생할 수 있다.
블록 202에서, 시스템(100)은 복수의 코어들에 코어 전압들을 제공할 수 있다. 이러한 코어 전압들은 디폴트 전압들에 대응할 수 있다. 시스템(100)은 복수의 내장된 값들을 판독하기 위해 제어 프로세서에 의해 코어 전압들을 제공하고, 코어 전압들을 제공하기 위해 FIVR(Fully Integrated Voltage Regulator)와 같은 통합형 전압 조정기를 시그널링할 수 있다. 다른 예에서, 시스템(100)은 외부 전압 조정기가 코어 전압들을 제공하게 하기 위해 BIOS와 같은 컴포넌트에 의해 코어 전압들을 제공할 수 있다.
블록 203에서, 시스템(100)은, 오버라이드 선택을 수신하는 것에 응답하여, 제공된 코어 전압들 중 대응하는 것과 상이한 새로운 코어 전압을 식별할 수 있다. 이러한 오버라이드 선택은 (시스템 관리자에 의해) 수동으로 결정되는 오버라이드 선택이거나, 또는 그렇지 않으면, 예를 들어 튜닝 애플리케이션, BIOS, 운영 체제 등, 또는 이들의 조합들과 같은 소프트웨어에 의해, 결정되는 오버라이드 선택일 수 있다.
블록 204에서, 시스템(100)은 복수의 코어들의 코어들 중 대응하는 것에 새로운 코어 전압을 제공할 수 있다. 시스템(100)은 제1 시간보다 늦은 제2 시간에 새로운 코어 전압을 제공할 수 있다.
도 3은, 다양한 실시예들에 따라, PCU(253) 및 통합형 전압 조정기(FIVR(255))를 포함할 수 있는 시스템의 예를 도시한다. 시스템(200)에서, 멀티코어 프로세서(21)는 멀티코어 프로세서(21)의 FIVR(255)을 제어하기 위해 PCU(253)의 코드(254)(예를 들어, 마이크로코드 및/또는 pcode)를 포함할 수 있다.
이러한 코드(254)는 코어들(99)에 대응하는 퓨즈 전압(들)을 개별적으로 오버라이드하기 위한 외부 선택(215)을 인식할 수 있다. 예에서, 코드(215)는 메시징 인터페이스 또는 다른 인터페이스의 프로토콜을 이용하여 외부 선택(215)을 인식할 수 있다.
코드(254)는 외부 선택(215)을 수신하는 것에 응답하여 FIVR(255)이 코어들(99)에 Vcore들(257)을 제공하게 하도록 FIVR(255)을 제어할 수 있다. 예를 들어, FIVR(255)이 메모리(23)의 복수의 내장된 값들(22) 중 각각에 대응하는 전압을 이미 제공하고 있으면, FIVR(255)은 제공된 전압들 중 적어도 하나를 PCU(253)로부터의 제어에 기초하여 변경할 수 있다. 코어들(99)의 각각의 코어(들)는 이전에 제공된 전압과 상이한 새로운 코어 전압을 수신할 수 있다.
도 4는, 다양한 실시예들에 따라, 도 3의 예시적인 시스템에서 사용될 수 있는 예시적인 프로세스를 도시한다.
블록 301에서, 시스템(200)이 파워 온(또는 콜드 리셋)될 수 있다. 블록 302에서, PCU(253)는 메모리(23)의 코어 전압들에 대한 퓨즈 값들(22)을 판독할 수 있고 그에 따라 구성할 수 있다.
블록 303에서, 시스템(200)은 BIOS/EFI(extensive firmware interface) 또는 운영 체제를 통해 동작하고 있을 수 있다. 블록 304에서, 소프트웨어 자동화 또는 시스템 관리는 적어도 하나의 개별 코어에 대한 새로운 전압을 결정할 수 있다. 코드(254)는 이러한 프로토콜을 사용하여 새로운 전압에 대한 요청을 인식할 수 있다.
블록(305)에서, 시스템(200)은 대응하는 퓨즈 전압(들)을 오버라이드할 수 있고, 예를 들어, PCU(253)는 새로운 코어 전압(들)이 코어들(99) 중 적절한 것에 제공되게 하도록 FIVR(255)을 제어할 수 있다. 블록 306에서, 시스템(200)은 수정 설정(예를 들어, 새로운 코어 전압에 대한 튜닝 또는 오버클록킹 설정)이 허가된, 예를 들어, PCU(253)에 의해 허가된 표시를 BIOS, 애플리케이션 및/또는 운영 체제에 출력할 수 있다. 이러한 프로세스는 다음 새로운 전압에 대한 복귀 화살표로 도시되는 바와 같이(소프트웨어 자동화 또는 시스템 관리에 의해 또한 결정될 수 있음) 부분적으로 반복될 수 있다(멀티코어 프로세서의 제어 프로세서가 다음 요청에 대해 조사(poll)할 수 있음).
예에서, 1.40V로 더 높은 주파수들에서 자신의 코어들 중 2개를 동작시킬 수 있는 예시적인 6 코어 멀티코어 프로세서는, 코어 0, 코어 1, 코어 2, 코어 3, 코어 4, 및 코어 5에 대해 각각 전압들 1.3V, 1.35V, 1.25V, 1.35V, 1.35V, 및 1.25V를 저장하는 판독 전용 메모리를 포함할 수 있다. 시스템 관리자는, 연관된 트레이드오프들을 수락하여, 1.40V 동작에서 2개의 코어들을 구성할 수 있어, 코어 0, 코어 1, 코어 2, 코어 3, 코어 4, 및 코어 5에 대해 각각 전압들 1.3V, 1.35V, 1.40V, 1.35V, 1.35V, 및 1.40V에서 코어들을 동작시키려고 시도한다. 이와 같이, 코어 2 및 코어 5는 다른 코어들의 전압을 변경할 필요 없이 더 높은 주파수로 구성될 수 있다.
도 5는, 다양한 실시예들에 따라, 본 명세서에 설명되는 장치들 및/또는 방법들을 이용할 수 있는 예시적인 컴퓨팅 디바이스를 도시한다.
예시적인 컴퓨팅 디바이스(500)는, 다양한 실시예들에 따라, 본 명세서에서 설명되는 장치들 및/또는 방법들을 이용할 수 있다. 도시되는 바와 같이, 컴퓨팅 디바이스(500)는 하나 이상의 프로세서(504)(하나가 도시됨) 및 적어도 하나의 통신 칩(506)과 같은 다수의 컴포넌트들을 포함할 수 있다.
다양한 실시예들에서, 하나 이상의 프로세서(들)(504) 각각은 하나 이상의 프로세서 코어를 포함할 수 있다. 하나 이상의 프로세서(들)(504) 중 적어도 하나는 도 1 또는 3의 멀티코어 프로세서 SoC일 수 있다. 다양한 실시예들에서, 적어도 하나의 통신 칩(506)은 하나 이상의 프로세서(들)(504)에 물리적으로 및 전기적으로 연결될 수 있다. 추가의 구현들에서, 통신 칩(506)은 하나 이상의 프로세서(들)(504)의 일부일 수 있다. 다양한 실시예들에서, 컴퓨팅 디바이스(500)는 PCB(printed circuit board)(502)을 포함할 수 있다. 이러한 실시예들에 대해, 하나 이상의 프로세서(들)(504) 및 통신 칩(506)이 그 상에 배치될 수 있다. 대안적인 실시예들에서, 다양한 컴포넌트들은 PCB(502)의 이용없이 연결될 수 있다.
그 적용들에 의존하여, 컴퓨팅 디바이스(500)는 PCB(502)에 물리적으로 및 전기적으로 연결될 수 있거나 또는 그렇지 않을 수 있는 다른 컴포넌트들을 포함할 수 있다. 이러한 다른 컴포넌트들은 , 이에 제한되는 것은 아니지만, 메모리 제어기(도시되지 않음), 휘발성 메모리(예를 들어, DRAM(dynamic random access memory)(520)), ROM(read only memory)(524)과 같은 비-휘발성 메모리, 플래시 메모리 522), I/O 제어기(도시되지 않음), 디지털 신호 프로세서(도시되지 않음), 암호 프로세서(도시되지 않음), 그래픽 프로세서(530), 하나 이상의 안테나(528), 디스플레이(도시되지 않음), 터치 스크린 디스플레이(532), 터치 스크린 제어기(546), 배터리(536), 오디오 코덱(도시되지 않음), 비디오 코덱(도시되지 않음), GPS(global positioning system) 디바이스(540), 나침반(542), 가속도계(도시되지 않음), 자이로스코프(도시되지 않음), 스피커(550), 카메라(552), 및 (하드 디스크 드라이브, 고체 상태 드라이브, CD(compact disk), DVD(digital versatile disk)와 같은) 대용량 저장 디바이스(도시되지 않음) 등을 포함한다.
일부 실시예들에서, 하나 이상의 프로세서(들)(504), 플래시 메모리(522), 및/또는 저장 디바이스(도시되지 않음)는, 하나 이상의 프로세서(들)(504)에 의한 프로그래밍 명령어들의 실행에 응답하여, 컴퓨팅 디바이스(500)로 하여금 본 명세서에 설명되는 방법들의 모든 또는 선택된 양태들을 실시할 수 있게 하도록 구성되는 프로그래밍 명령어들을 저장하는 연관된 펌웨어(도시되지 않음)를 포함할 수 있다. 예를 들어, 이러한 프로그래밍 명령어들은 도 1 내지 도4의 각각에 대해 참조하여 전술한 제어 프로세서, 예를 들어, PCU를 구현할 수 있다. 다양한 실시예들에서, 이러한 양태들은 하나 이상의 프로세서(들)(504), 플래시 메모리(512), 또는 저장 디바이스(511)와 별개인 하드웨어를 사용하여 추가적으로 또는 대안적으로 구현될 수 있다. 예를 들어, 대안적인 하드웨어는, 도 1 내지 도 4의 각각을 참조하여 앞서 설명된 동작들을 수행하기 위해, 코드, 예를 들어, 마이크로코드 및/또는 pcode를 갖춘 앞서 설명된 제어 프로세서를 포함할 수 있다.
통신 칩들(506)은 컴퓨팅 디바이스(500)로의 그리고 이로부터의 데이터의 전송을 위한 유선 및/또는 무선 통신을 가능하게 할 수 있다. "무선(wireless)"이라는 용어 및 그 파생어들은, 비-고체 매체를 통한 변조된 전자기 방사의 사용을 통해 데이터를 통신할 수 있는 회로들, 디바이스들, 시스템들, 방법들, 기술들, 통신 채널들 등을 설명하는데 사용될 수 있다. 이러한 용어는, 일부 실시예들에서는 그렇지 않을 수도 있지만, 연관된 디바이스들이 어떠한 와이어도 포함하지 않는다는 것을 암시하는 것은 아니다. 통신 칩(506)은, 이에 제한되는 것은 아니지만 IEEE 702.20, LTE(Long Term Evolution), LTE-A(LTE Advanced), GPRS(General Packet Radio Service), Ev-DO(Evolution Data Optimized), HSPA+(Evolved High Speed Packet Access), HSDPA+(Evolved High Speed Downlink Packet Access), HSUPA+(Evolved High Speed Uplink Packet Access), GSM(Global System for Mobile Communications), EDGE(Enhanced Data rates for GSM Evolution), CDMA(Code Division Multiple Access), TDMA(Time Division Multiple Access), DECT(Digital Enhanced Cordless Telecommunications), WiMAX(Worldwide Interoperability for Microwave Access), Bluetooth, 이들의 파생물들 뿐만 아니라, 3G, 5G, 5G 이상으로서 지정되는 임의의 다른 무선 프로토콜들을 포함하는, 다수의 무선 표준들 또는 프로토콜들 중 임의의 것을 구현할 수 있다. 컴퓨팅 디바이스(500)는 복수의 통신 칩들(506)을 포함할 수 있다. 예를 들어, 제1 통신 칩(506)은 Wi-Fi 및 Bluetooth와 같은 더 단거리의 무선 통신들에 전용될 수 있고, 제2 통신 칩(506)은 GPS, EDGE, GPRS, CDMA, WiMAX, LTE, Ev-DO 등과 같은 더 장거리의 무선 통신들에 전용될 수 있다.
다양한 구현들에서, 컴퓨팅 디바이스(500)는 랩톱, 넷북, 노트북, 울트라북, 스마트폰, 컴퓨팅 태블릿, PDA(personal digital assistant), 울트라 모바일 PC, 모바일 폰, 데스크톱 컴퓨터, 서버, 프린터, 스캐너, 모니터, 셋-톱 박스, 엔터테인먼트 제어 유닛(예를 들어, 게이밍 콘솔 또는 차량용 엔터테인먼트 유닛), 디지털 카메라, 어플라이언스, 휴대용 뮤직 플레이어, 또는 디지털 비디오 레코더일 수 있다. 추가의 구현들에서, 컴퓨팅 디바이스(500)는 데이터를 처리하는 임의의 다른 전자 디바이스일 수 있다.
하나 이상의 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체(들)의 임의의 조합이 이용될 수 있다. 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체는, 예를 들어, 이에 제한되는 것은 아니지만, 전자, 자기, 광, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스, 또는 전파 매체일 수 있다. 컴퓨터 판독 가능 매체의 보다 구체적인 예들(비-배타적인 리스트)은 하나 이상의 와이어를 갖는 전기적 접속, 휴대용 컴퓨터 디스켓, 하드 디스크, RAM(random access memory), ROM(read-only memory), EPROM(erasable programmable read-only memory) 또는 Flash 메모리, 광 섬유, 휴대용 CD-ROM(compact disc read-only memory), 광 저장 디바이스, 인터넷 또는 인트라넷을 지원하는 것들과 같은 송신 매체, 또는 자기 저장 디바이스를 포함할 수 있다. 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체는 심지어 종이 또는 프로그램이 인쇄되기에 적합한 다른 매체일 수 있는데, 그 이유는 프로그램이, 예를 들어, 종이 또는 다른 매체의 광 스캐닝을 통해, 전자적으로 캡처되고, 다음으로, 필요하다면, 적합한 방식으로 컴파일링되고, 해석되거나, 또는 달리 처리되고 나서, 컴퓨터 메모리에 저장될 수 있기 때문이라는 점에 주목한다. 본 문헌의 맥락에서, 컴퓨터 사용 가능 또는 컴퓨터 판독 가능 매체는 명령어 실행 시스템, 장치 또는 디바이스에 의해 또는 그와 관련하여 사용하기 위한 프로그램을 포함하거나, 저장하거나, 통신하거나, 전파하거나, 또는 전송할 수 있는 임의의 매체일 수 있다. 컴퓨터 사용 가능 매체는 컴퓨터 사용 가능 프로그램 코드가 구현되는 전파 데이터 신호를, 기저대역에 또는 반송파(carrier wave)의 일부로서 포함할 수 있다. 컴퓨터 사용 가능 프로그램 코드는 이에 제한되는 것은 아니지만 무선, 유선, 광 섬유 케이블, RF 등을 포함하는 임의의 적절한 매체를 사용하여 송신될 수 있다.
본 개시 내용의 동작들을 수행하기 위한 컴퓨터 프로그램 코드는, Java, Smalltalk, C++ 등과 같은 객체 지향 프로그래밍 언어 및 "C" 프로그래밍 언어 또는 유사한 프로그래밍 언어들과 같은 종래의 절차형 프로그래밍 언어들을 포함하는 하나 이상의 프로그래밍 언어의 임의의 조합으로 작성될 수 있다. 이러한 프로그램 코드는 전부가 사용자의 컴퓨터 상에, 일부가 사용자의 컴퓨터 상에, 독립형 소프트웨어 패키지로서, 일부가 사용자의 컴퓨터 상에 그리고 일부가 원격 컴퓨터 상에 또는 전부가 원격 컴퓨터 또는 서버 상에 실행될 수 있다. 후자의 시나리오에서, 원격 컴퓨터는, LAN(local area network) 또는 WAN(wide area network)를 포함하는, 임의의 타입의 네트워크를 통해 사용자의 컴퓨터에 접속될 수 있고, 또는 이러한 접속은 (예를 들어, Internet Service Provider를 사용하여 Internet을 통해) 외부 컴퓨터에 대해 이루어질 수 있다.
예들
예 1은 코어 당 전압 조정 기능이 있는 장치이다. 이러한 장치는 멀티코어 프로세서 SoC(system-on-chip)를 포함할 수 있고, 이는, 아키텍처가 동일한 복수의 코어들- 아키텍처가 동일한 복수의 코어들 중 제1 코어는 제1 물리적 특성을 갖고 아키텍처가 동일한 복수의 코어들 중 제2 코어는 제1 물리적 특성과 상이한 제2 물리적 특성을 가짐 -; 및 아키텍처가 동일한 복수의 코어들과 대응하여 연관되는 복수의 내장된 값들을 저장하는 메모리- 각각의 내장된 값은 아키텍처가 동일한 복수의 코어들 각각에 대한 디폴트 전압을 표시함 -; 및 멀티코어 프로세서 SoC 외부로부터의 액세스를 제공하여 아키텍처가 동일한 복수의 코어들의 전압들을 디폴트 전압들의 값들과 상이한 값들로 개별적으로 설정하는 컴포넌트를 포함한다.
예 2는 예 1의 주제를 포함하고, 멀티코어 프로세서 SoC는 아키텍처가 동일한 복수의 코어들에 연결되는 전압 조정기- 전압 조정기는 개별적으로 설정되는 전압들을 아키텍처가 동일한 복수의 코어들에 제공함 -를 추가로 포함한다.
예 3은 예 1 및 예 2 중 임의의 것의 주제를 포함하고, 멀티코어 프로세서 SoC에 연결되는 외부 전압 조정기를 추가로 포함한다.
예 4는 예 1 내지 예 3 중 임의의 것의 주제를 포함하고, 컴포넌트는 아키텍처가 동일한 복수의 코어들의 각각의 코어에 각각 대응하는 복수의 핀들을 포함한다.
예 5는 예 1 내지 예 4 중 임의의 것의 주제를 포함하고, 멀티코어 프로세서 SoC는, PCU(power control unit); 및 PCU에 의한 실행에 응답하여, PCU가 동작들을 수행하게 하는 명령어들을 저장하고 있는 메모리를 추가로 포함하고, 이러한 동작들은, 컴포넌트를 통해 멀티코어 프로세서 SoC에 의해 수신되는 신호의 정보를 인식하는 동작; 및 전압 조정기로 하여금 정보의 인식에 응답하여 아키텍처가 동일한 복수의 코어들 중 제1 코어에 제1 전압을 제공하게 하도록 인식의 정보에 기초하여 멀티코어 프로세서 SoC의 전압 조정기를 제어하는 동작- 제1 전압의 크기는 디폴트 전압들 중 대응하는 것의 크기와 상이함 -을 포함한다.
예 6은 예 1 내지 예 5 중 임의의 것의 주제를 포함하고, 인식의 정보는 코어들 각각에 대응하는 실제 전압 값, 디폴트 전압들 각각으로부터의 오프셋, 또는 기본 전압 값으로부터의 전압 값 및 오프셋 중 적어도 하나를 포함한다.
예 7은 예 1 내지 예 6 중 임의의 것의 주제를 포함하고, 사용자가 컴포넌트를 액세스하여 아키텍처가 동일한 복수의 코어들의 전압들을 디폴트 전압들의 값들과 상이한 값들로 개별적으로 설정하는 것을 용이하게 하는 모듈을 추가로 포함한다.
예 8은 예 1 내지 예 7 중 임의의 것의 주제를 포함하고, 모듈은 사용자로부터의 입력들에 응답하여 인터페이스를 메시징하는 것이다.
예 9는 예 1 내지 예 8 중 임의의 것의 주제를 포함하고, 컴포넌트는 제어 레지스터를 포함한다.
예 10은 예 1 내지 예 10 중 임의의 것의 주제를 포함하고, 사용자가 컴포넌트를 액세스하여 아키텍처가 동일한 복수의 코어들의 전압들을 디폴트 전압들의 값들과 상이한 값들로 개별적으로 설정하는 것을 용이하게 하는 BIOS(Basic Input Output System)를 추가로 포함한다.
예 11은, 처리 디바이스에 의한 실행에 응답하여 처리 디바이스로 하여금 동작들을 수행하게 하는 코어 당 프로세서 프로그래밍의 명령어들을 저장하고 있는 컴퓨터 판독 가능 매체이고, 이러한 동작들은, 멀티코어 프로세서 SoC(system on chip)에 의해 수신되는 신호의 정보를 인식하는 동작- 멀티코어 프로세서 SoC의 제1 코어는 제1 물리적 특성을 갖고 멀티코어 프로세서 SoC의 제2 코어는 제1 물리적 특성과 상이한 제2 물리적 특성을 가짐 -; 및 전압 조정기로 하여금 복수의 코어들 중 제1 코어에 제1 전압을 선택적으로 제공하게 하도록 인식의 정보에 기초하여 멀티코어 프로세서 SoC의 전압 조정기를 제어하는 동작을 포함한다.
예 12는 예 11의 주제를 포함하고, 이러한 동작들은 추가로 복수의 코어들 중 제2 코어에 제2 전압을 선택적으로 제공하고, 제2 코어에 제2 전압을 선택적으로 제공하는 것은 제1 코어에 제1 전압을 선택적으로 제공하는 것과 동시이다.
예 13은 예 11 내지 예 12 중 임의의 것의 주제를 포함하고, 제2 전압은 상기 제2 코어에 대응하는 디폴트 전압이다.
예 14는 예 11 내지 예 13 중 임의의 것의 주제를 포함하고, 인식의 정보는 코어들 각각에 대응하는 실제 전압 값, 제1 코어에 대응하는 디폴트 전압 각각으로부터의 오프셋, 또는 기본 전압 값 및 기본 전압 값으로부터의 오프셋 중 적어도 하나를 포함하고; 제1 전압은 실제 전압 값, 디폴트 전압들 각각으로부터의 오프셋, 또는 기본 전압 값으로부터의 오프셋 중 적어도 하나에 대응한다.
예 15는 코어 당 기반으로 프로세서 전압을 프로그래밍하는 방법이다. 이러한 방법은, 멀티코어 프로세서의 복수의 코어들과 대응하여 연관되는 복수의 내장된 값들을 액세스하는 단계- 각각의 내장된 값은 아키텍처가 동일한 복수의 코어들 각각에 대한 디폴트 전압을 표시함 -; 제1 시간에, 복수의 코어들에 코어 전압들을 제공하는 단계- 코어 전압들은 디폴트 전압들에 대응함 -; 오버라이드 선택을 수신하는 것에 응답하여, 제공된 코어 전압들과 상이한 새로운 코어 전압을 식별하는 단계; 및 제1 시간보다 늦은 제2 시간에, 새로운 코어 전압을 복수의 코어들의 코어들 중 하나에 제공하는 단계를 포함할 수 있다.
예 16은 예 15의 주제를 포함하고, 제2 시간에, 코어 전압들의 코어 전압을 복수의 코어들의 코어들 중 상이한 것에 제공하는 단계를 포함한다.
예 17은 예 15 내지 예 16 중 임의의 것의 주제를 포함하고, 제2 시간에, 상이한 새로운 코어 전압을 복수의 코어들의 코어들 중 상이한 것에 제공하는 단계를 포함한다.
예 18은 예 15 내지 예 17 중 임의의 것의 주제를 포함하고, 오버라이드 선택은 오버볼트 명령을 포함한다.
예 19는 예 15 내지 17 중 임의의 것의 주제를 포함하고, 오버라이드 선택은 언더볼트 명령을 포함한다.
예 20은 예 15 내지 예 19 중 임의의 것의 주제를 포함하고, 오버라이드 선택은 전압 범위를 표시하고, 이러한 방법은, 전압 범위로부터 새로운 코어 전압을 선택하는 단계를 추가로 포함한다.
예 21은 코어 당 기반으로 프로세서 전압을 프로그래밍하는 장치이다. 이러한 장치는 멀티코어 프로세서의 복수의 코어들과 대응하여 연관되는 복수의 내장된 값들을 액세스하는 수단- 각각의 내장된 값은 아키텍처가 동일한 복수의 코어들 각각에 대한 디폴트 전압을 표시함 -; 제1 시간에 복수의 코어들에 코어 전압들을 제공하는 수단- 코어 전압들은 디폴트 전압들에 대응함 -; 오버라이드 선택을 수신하는 것에 응답하여 제공된 코어 전압들과 상이한 새로운 코어 전압을 식별하는 수단; 및 제1 시간보다 늦은 제2 시간에 복수의 코어들의 코어들 중 하나에 새로운 코어 전압을 제공하는 수단을 포함할 수 있다.
예 22는 예 21의 주제를 포함하고, 제2 시간에 코어 전압들의 코어 전압을 복수의 코어들의 코어들 중 상이한 것에 제공하는 수단을 포함한다.
예 23은 예 21 및 예 22 중 임의의 것의 주제를 포함하고, 제2 시간에 상이한 새로운 코어 전압을 복수의 코어들의 코어들 중 상이한 것에 제공하는 수단을 포함한다.
예 24는 예 21 내지 예 23 중 임의의 것의 주제를 포함하고, 오버라이드 선택은 오버볼트 명령을 포함한다.
예 25는 예 21 내지 예 23 중 임의의 것의 주제를 포함하고, 오버라이드 선택은 언더볼트 명령을 포함한다.
예 26은 예 21 내지 예 25 중 임의의 것의 주제를 포함하고, 오버라이드 선택은 전압 범위를 표시하고, 이러한 장치는, 전압 범위로부터 새로운 코어 전압을 선택하는 수단을 포함할 수 있다.

Claims (15)

  1. 프로세서로서,
    아키텍처가 동일한 복수의 코어들 - 아키텍처가 동일한 상기 복수의 코어들 중 제1 코어는 제1 물리적 특성을 갖고, 아키텍처가 동일한 상기 복수의 코어들 중 제2 코어는 상기 제1 물리적 특성과 상이한 제2 물리적 특성을 갖고, 아키텍처가 동일한 상기 복수의 코어들의 디폴트 전압들에 대응하는 복수의 내장된 값들이 상기 프로세서에 포함되고, 각각의 내장된 값은 아키텍처가 동일한 상기 복수의 코어들의 각각의 코어에 대한 디폴트 전압을 결정하는 데 사용됨 -;
    상기 프로세서를 컴포넌트에 통신 가능하게 결합하기 위한 메시징 인터페이스 - 상기 컴포넌트는 아키텍처가 동일한 상기 코어들 중 하나 이상에 대응하는 하나 이상의 값들을 제공함 -; 및
    상기 컴포넌트에 의해 제공되는 상기 하나 이상의 값들 중의 값에 기초하여 아키텍처가 동일한 상기 복수의 코어들 중의 코어의 전압을 설정하기 위한 프로세서 제어 유닛(PCU: processor control unit)을 포함하고, 상기 전압은, 상기 대응하는 디폴트 전압을 개별적으로 오버라이드하는 것이고, 상기 대응하는 디폴트 전압과 상이하고,
    상기 컴포넌트는 펌웨어를 저장하는 플래시 메모리를 포함하고, 아키텍처가 동일한 상기 코어들 중 하나 이상에 대응하는 상기 하나 이상의 값들을 설정하기 위해 상기 플래시 메모리에 대한 액세스가 사용자에게 제공되는, 프로세서.
  2. 삭제
  3. 제1항에 있어서, 상기 펌웨어는 BIOS(Basic Input Output System) 코드 또는 EFI(Extensible Firmware Interface) 코드를 포함하는, 프로세서.
  4. 제1항 또는 제3항에 있어서, 아키텍처가 동일한 상기 코어들 중 하나 이상에 대응하는 상기 하나 이상의 값들은 전압 값들 또는 상기 내장된 값들로부터의 오프셋들을 포함하는, 프로세서.
  5. 제1항 또는 제3항에 있어서, 상기 제1 물리적 특성은 제1 주파수 및/또는 성능 레벨을 포함하고, 상기 제2 물리적 특성은 제2 주파수 및/또는 성능 레벨을 포함하는, 프로세서.
  6. 제5항에 있어서, 상기 하나 이상의 값들 중의 상기 값은 상기 제1 주파수 및/또는 성능 레벨과 연관되는, 프로세서.
  7. 제1항 또는 제3항에 있어서, 상기 PCU는 아키텍처가 동일한 상기 하나 이상의 코어들 중의 상기 코어가 상기 전압에서 동작하게 하는 마이크로코드를 실행하는, 프로세서.
  8. 제7항에 있어서, 상기 PCU는 아키텍처가 동일한 상기 하나 이상의 코어들 중의 상기 코어가 상기 전압에서 동작하게 하도록 외부 전압 조정기를 제어하는, 프로세서.
  9. 제1항 또는 제3항에 있어서,
    상기 PCU에 의한 실행에 응답하여 상기 PCU로 하여금 동작들을 수행하게 하는 명령어들을 저장하고 있는 메모리를 더 포함하고, 상기 동작들은,
    상기 메시징 인터페이스를 통한 상기 컴포넌트와의 통신에 기초하여 상기 전압을 결정하는 동작, 및
    아키텍처가 동일한 상기 복수의 코어들의 각각의 코어를 상기 전압으로 독립적으로 설정하는 동작을 포함하는, 프로세서.
  10. 삭제
  11. 제1항에 있어서, 상기 플래시 메모리는 상기 사용자로부터의 입력에 기초하여 상기 하나 이상의 값들을 포함하도록 업데이트되는, 프로세서.
  12. 제1항 또는 제3항에 있어서, 상기 메시징 인터페이스는 메시징 인터페이스 프로토콜을 구현하는, 프로세서.
  13. 프로세서에서의 방법으로서,
    상기 프로세서는 각각이 각자의 물리적 특성을 갖는 아키텍처가 동일한 복수의 코어들을 포함하고, 상기 방법은:
    아키텍처가 동일한 상기 복수의 코어들의 디폴트 전압들에 대응하는 복수의 내장된 값들을 포함하는 단계 - 각각의 내장된 값은 아키텍처가 동일한 상기 복수의 코어들의 각각의 코어에 대한 디폴트 전압을 결정하는데 사용됨 -;
    메시징 인터페이스를 통해 상기 프로세서에 결합된 컴포넌트로부터, 아키텍처가 동일한 상기 코어들 중 하나 이상에 대응하는 하나 이상의 값들을 수신하는 단계; 및
    프로세서 제어 유닛(PCU)에 의해, 상기 컴포넌트에 의해 제공되는 상기 하나 이상의 값들 중의 값에 기초하여 아키텍처가 동일한 상기 복수의 코어들 중의 코어의 전압을 설정하는 단계를 포함하고, 상기 전압은, 상기 대응하는 디폴트 전압을 개별적으로 오버라이드하는 것이고, 상기 대응하는 디폴트 전압과 상이하고,
    상기 컴포넌트는 펌웨어를 저장하는 플래시 메모리를 포함하고, 아키텍처가 동일한 상기 코어들 중 하나 이상에 대응하는 상기 하나 이상의 값들을 설정하기 위해 상기 플래시 메모리에 대한 액세스가 사용자에게 제공되는, 방법.
  14. 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 프로그램으로서,
    프로세서에 의해 실행될 때 상기 프로세서로 하여금 제13항의 방법을 수행하게 하는 명령어들을 포함하는, 컴퓨터 프로그램.
  15. 제14항의 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체.
KR1020227009254A 2016-01-26 2016-12-20 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공 KR102635344B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US15/007,021 2016-01-26
US15/007,021 US10013392B2 (en) 2016-01-26 2016-01-26 Providing access from outside a multicore processor SoC to individually configure voltages
PCT/US2016/067837 WO2017131902A1 (en) 2016-01-26 2016-12-20 PROVIDING ACCESS FROM OUTSIDE A MULTICORE PROCESSOR SoC TO INDIVIDUALLY CONFIGURE VOLTAGES
KR1020187018097A KR20180099691A (ko) 2016-01-26 2016-12-20 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020187018097A Division KR20180099691A (ko) 2016-01-26 2016-12-20 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공

Publications (2)

Publication Number Publication Date
KR20220043225A KR20220043225A (ko) 2022-04-05
KR102635344B1 true KR102635344B1 (ko) 2024-02-13

Family

ID=59360627

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020187018097A KR20180099691A (ko) 2016-01-26 2016-12-20 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공
KR1020227009254A KR102635344B1 (ko) 2016-01-26 2016-12-20 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공

Family Applications Before (1)

Application Number Title Priority Date Filing Date
KR1020187018097A KR20180099691A (ko) 2016-01-26 2016-12-20 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공

Country Status (6)

Country Link
US (4) US10013392B2 (ko)
KR (2) KR20180099691A (ko)
CN (1) CN106997233B (ko)
DE (1) DE112016006306T5 (ko)
SG (1) SG10201610418VA (ko)
WO (1) WO2017131902A1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10013392B2 (en) * 2016-01-26 2018-07-03 Intel Corporation Providing access from outside a multicore processor SoC to individually configure voltages
US11061429B2 (en) * 2017-10-26 2021-07-13 Advanced Micro Devices, Inc. Fine-grained speed binning in an accelerated processing device
KR102442921B1 (ko) * 2017-12-11 2022-09-13 삼성전자주식회사 디지털 시그널 프로세서(dsp)의 태스크 관리 효율을 높일 수 있는 전자 장치
GB201810638D0 (en) * 2018-06-28 2018-08-15 Nordic Semiconductor Asa Power-management in a system on chip
US11442495B2 (en) * 2020-03-06 2022-09-13 Advanced Micro Devices, Inc. Separate clocking for components of a graphics processing unit
CN111736982B (zh) * 2020-05-12 2023-12-08 深圳震有科技股份有限公司 一种5g数据转发平面的数据转发处理方法和服务器

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136823A1 (en) * 2012-11-15 2014-05-15 Daniel J. Ragland Enabling A User And/Or Software To Dynamically Control Performance Tuning Of A Processor

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6769069B1 (en) * 2000-10-19 2004-07-27 International Business Machines Corporation Service processor control of module I / O voltage level
US7080263B2 (en) 2002-08-12 2006-07-18 Hewlett-Packard Development Company, L.P. Voltage management of processors in a bladed system based on number of loaded processors
US20040128565A1 (en) * 2002-12-31 2004-07-01 Intel Corporation (A Delaware Corporation) System for driving clock signal over a bus for a slave device
US7490254B2 (en) * 2005-08-02 2009-02-10 Advanced Micro Devices, Inc. Increasing workload performance of one or more cores on multiple core processors
US7263457B2 (en) 2006-01-03 2007-08-28 Advanced Micro Devices, Inc. System and method for operating components of an integrated circuit at independent frequencies and/or voltages
US7949887B2 (en) 2006-11-01 2011-05-24 Intel Corporation Independent power control of processing cores
US7900069B2 (en) * 2007-03-29 2011-03-01 Intel Corporation Dynamic power reduction
US9134782B2 (en) * 2007-05-07 2015-09-15 Nvidia Corporation Maintaining optimum voltage supply to match performance of an integrated circuit
US20090235108A1 (en) 2008-03-11 2009-09-17 Gold Spencer M Automatic processor overclocking
US8112647B2 (en) * 2008-08-27 2012-02-07 Globalfoundries Inc. Protocol for power state determination and demotion
TWI379185B (en) * 2008-11-05 2012-12-11 Asustek Comp Inc Method and apparatus of tuning operation clock and voltage of computer system
TWI398752B (zh) * 2009-04-30 2013-06-11 Asustek Comp Inc 中央處理器的超頻控制方法和超頻控制程式
US8635470B1 (en) * 2009-12-16 2014-01-21 Applied Micro Circuits Corporation System-on-chip with management module for controlling processor core internal voltages
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US9116692B1 (en) * 2010-12-10 2015-08-25 The Board Of Trustees Of The University Of Illinois System and method for improving power conversion for advanced electronic circuits
US8972707B2 (en) 2010-12-22 2015-03-03 Via Technologies, Inc. Multi-core processor with core selectively disabled by kill instruction of system software and resettable only via external pin
US8874941B2 (en) * 2011-06-14 2014-10-28 Utah State University Apparatus and method for designing an architecturally homogeneous power-performance heterogeneous multicore processor using simulated annealing optimization
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9405340B2 (en) * 2013-06-27 2016-08-02 Intel Corporation Apparatus and method to implement power management of a processor
US9748002B2 (en) * 2013-10-23 2017-08-29 Etron Technology, Inc. System-in-package module with memory
US20150198988A1 (en) * 2014-01-16 2015-07-16 Qualcomm Incorporated Core specific process voltage scaling for optimizing multi-core operation
US9557797B2 (en) * 2014-05-20 2017-01-31 Qualcomm Incorporated Algorithm for preferred core sequencing to maximize performance and reduce chip temperature and power
US20160054788A1 (en) * 2014-08-22 2016-02-25 Apple Inc. Parameter-Based Sensor Selection
US10013392B2 (en) * 2016-01-26 2018-07-03 Intel Corporation Providing access from outside a multicore processor SoC to individually configure voltages

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140136823A1 (en) * 2012-11-15 2014-05-15 Daniel J. Ragland Enabling A User And/Or Software To Dynamically Control Performance Tuning Of A Processor

Also Published As

Publication number Publication date
US20220114134A1 (en) 2022-04-14
DE112016006306T5 (de) 2018-10-18
US10783110B2 (en) 2020-09-22
CN106997233B (zh) 2021-04-27
US20190004993A1 (en) 2019-01-03
US11892969B2 (en) 2024-02-06
US20170212572A1 (en) 2017-07-27
SG10201610418VA (en) 2017-08-30
WO2017131902A1 (en) 2017-08-03
KR20180099691A (ko) 2018-09-05
US11216409B2 (en) 2022-01-04
US10013392B2 (en) 2018-07-03
CN106997233A (zh) 2017-08-01
KR20220043225A (ko) 2022-04-05
US20210004348A1 (en) 2021-01-07

Similar Documents

Publication Publication Date Title
KR102635344B1 (ko) 전압들을 개별적으로 구성하기 위한 멀티코어 프로세서 SoC 외부로부터의 액세스 제공
US10228740B2 (en) Sensor device and method
RU2624563C2 (ru) Оперативное регулирование производительности твердотельных запоминающих устройств
JP2019075067A (ja) サーバシステムにおける最大ファンデューティの動的調整
TWI631452B (zh) 用於動態優化伺服器系統之操作頻率之電腦實施方法以及系統
US9471329B2 (en) Optimizing computer hardware usage in a computing system that includes a plurality of populated central processing unit (‘CPU’) sockets
US11500435B2 (en) Information handling system having regional cooling
US9519041B2 (en) System and method for providing an accurate and cost-effective current sensor calibration
US10552068B2 (en) Access method and device for random access memories, control chip and storage medium
TWI665390B (zh) 複數冷卻風扇模組控制方法、伺服器系統以及非暫態電腦可讀儲存媒體
US11496454B2 (en) System and method for providing comprehensive remote authorized access to multiple equipment in a datacenter
US20160162006A1 (en) User Scheduled Portable Device Power Management
US20210048863A1 (en) System and Method for Controlling a Power-On Sequence and Power Throttling using Power Brake
CN104597983A (zh) 一种计算机风扇转速调节方法及主板系统
US20140047226A1 (en) Managing hardware configuration of a computer node
WO2022011586A1 (en) Equalizer settings for a re-driver
US20210224128A1 (en) Technologies for managing workloads in processor cores
CN110928587A (zh) 控制方法和控制装置
US20230418350A1 (en) Programmable biasing of operating frequencies for optimal power scaling
US11237606B2 (en) System parameter trace and test coverage optimization in a computer system
JP2023506502A (ja) 自動電圧再構成
US9594413B2 (en) Interface for communication between circuit blocks of an integrated circuit, and associated apparatuses, systems, and methods

Legal Events

Date Code Title Description
A107 Divisional application of patent
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant