KR20240034854A - 페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩 - Google Patents

페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩 Download PDF

Info

Publication number
KR20240034854A
KR20240034854A KR1020247006683A KR20247006683A KR20240034854A KR 20240034854 A KR20240034854 A KR 20240034854A KR 1020247006683 A KR1020247006683 A KR 1020247006683A KR 20247006683 A KR20247006683 A KR 20247006683A KR 20240034854 A KR20240034854 A KR 20240034854A
Authority
KR
South Korea
Prior art keywords
power
power stages
setting
stages
operating voltages
Prior art date
Application number
KR1020247006683A
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
Priority claimed from US17/572,664 external-priority patent/US11709512B2/en
Application filed by 애플 인크. filed Critical 애플 인크.
Publication of KR20240034854A publication Critical patent/KR20240034854A/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05FSYSTEMS FOR REGULATING ELECTRIC OR MAGNETIC VARIABLES
    • G05F1/00Automatic systems in which deviations of an electric quantity from one or more predetermined values are detected at the output of the system and fed back to a device within the system to restore the detected quantity to its predetermined value or values, i.e. retroactive systems
    • G05F1/10Regulating voltage or current
    • G05F1/46Regulating voltage or current wherein the variable actually regulated by the final control device is dc
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/28Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/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 Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Automation & Control Theory (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

장치는 하드웨어 회로들(48, 52, 56, 60, 56, 68), 프론트 엔드 전력 공급부, 전압 조절기들(92), 및 제어 회로부(80, 96)를 포함한다. 프론트 엔드 전력 공급부는, 전력의 부분들을 생성하고 독립적으로 활성화 및 비활성화되는 전력 스테이지들(84)을 포함한다. 전압 조절기들은 프론트 엔드 전력 공급부의 출력에 연결되고, 하드웨어 회로들에 조정가능한 동작 전압들을 제공한다. 제어 회로부는 하드웨어 회로들로부터의 요청들에 응답하여 전압 조절기들을 제어하여 조정가능한 동작 전압들을 공급하고, 조정가능한 동작 전압들을, 프론트 엔드 전력 공급부의 사전정의된 일부 개수의 전력 스테이지들에 의해 프로비저닝에 안전한 것으로 특정된 설정들에 비교하고, 동작 전압들이 안전 설정들과 매칭하는 동안에만 활성 전력 스테이지들의 개수가 사전정의된 일부 개수로 설정됨을 보장하는 것을 포함하여, 전력 스테이지들을 적응적으로 활성화 및 비활성화한다.

Description

페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩
관련 출원에 대한 상호 참조
본 출원은 2021년 9월 14일자로 출원된 미국 가특허 출원 제63/243,754호, 및 2022년 1월 11일자로 출원된 미국 특허 출원 제17/572,664호로부터의 우선권을 주장하며, 그의 개시내용들은 본 명세서에 참고로 포함된다.
기술분야
본 명세서에서 설명된 실시예들은 대체적으로 전자 회로부에서의 전력 관리에 관한 것으로, 특히 전력 공급부의 전력 스테이지들의 적응적 활성화 및 비활성화에 관한 것이다.
다양한 전력 관리 스킴들은, 예컨대 가변 부하 조건들에 효율적으로 적응하기 위해, 복수의 전압 조절기들을 사용한다. 예를 들어, 미국 특허 출원 공개 제2004/0061380호는 하나 이상의 가변 부하들에 대한 전력의 분배 및 컨디셔닝을 위한 기법들을 설명한다. 전력은 하나 이상의 가변 부하들에 연결된 하나 이상의 전력 컨버전 유닛(power conversion unit, PCU)들에 공급된다. PCU들은 전력을 목적지 시스템의 컴포넌트들에 의한 사용에 적합한 다른 형태들로 컨버팅하도록 적응된다. 추가적으로, 전력 제어 모듈은 하나 이상의 가변 부하들의 (현재 및 미래 둘 모두의) 부하 요건들을 모니터링하도록 적응된다. 부하 요건들에 적어도 부분적으로 기초하여, 전력 제어 모듈은 하나 이상의 PCU들의 동작을 제어하여, 적절한 시간에 하나 이상의 부하들에 충분한 전력을 제공하면서 임의의 불필요한 PCU들을 비활성화함으로써 낭비된 전력 발생을 최소화한다.
다른 예로서, 미국 특허 제7,161,339호는 단일 고전압 조절기, 및 고전압 조절기로부터 중간 전압을 수신할 수 있고 조절된 출력 전압을 출력할 수 있는 복수의 병렬 저전압 조절기들을 포함하는 전압 조절기 회로를 설명한다.
미국 특허 출원 공개 제2013/0207467호는 부하들, 선형 조절기들, 스위치들 및 제어기를 포함하는 시스템을 설명한다. 선형 조절기들은 부하들에 전력을 공급하고, 제어기는 스위치들을 사용하여 전원들을 선형 조절기들에 선택적으로 결합하여 선형 조절기들의 집합적 전력 손실을 조절하도록 적응된다.
본 명세서에서 설명된 실시예는 다수의 하드웨어 회로들, 프론트 엔드 전력 공급부, 다수의 전압 조절기들, 및 제어 회로부를 포함하는 장치를 제공한다. 프론트 엔드 전력 공급부는 다수의 하드웨어 회로들에 전력을 공급하기 위한 전력을 생성하도록 구성된다. 프론트 엔드 전력 공급부는 전력 스테이지들의 세트를 포함하는데, 이들은 전력의 각자의 부분들을 생성하도록 그리고 서로 독립적으로 활성화 및 비활성화되도록 구성된다. 전압 조절기들은 프론트 엔드 전력 공급부의 출력에 연결되고, 하드웨어 회로들에 조정가능한 동작 전압들을 제공하도록 구성된다. 제어 회로부는 하드웨어 회로들로부터의 요청들에 응답하여 전압 조절기들을 제어하여 조정가능한 동작 전압들의 설정을 하드웨어 회로들에 공급하도록, 조정가능한 동작 전압들의 설정을, 프론트 엔드 전력 공급부의 사전정의된 일부 개수의 전력 스테이지들에 의해 프로비저닝에 안전한 것으로 특정된 하나 이상의 안전 설정들에 비교하도록, 그리고 동작 전압들의 설정이 안전 설정들 중 적어도 하나에 매칭되는 동안에만 활성 전력 스테이지들의 개수가 사전정의된 일부 개수로 설정됨을 보장하는 것을 포함하여, 전력 스테이지들을 적응적으로 활성화 및 비활성화하도록 구성된다.
일부 실시예들에서, 전력 스테이지들을 적응적으로 활성화 및 비활성화하기 위해, 제어 회로부는, (i) 설정이 안전 설정들 중 적어도 하나와 매칭되는 시간들에, 프론트 엔드 전력 공급부를 제어하여 사전정의된 일부 개수의 전력 스테이지들만이 활성이게 하도록, 그리고 (ii) 설정이 안전 설정들 중 어떠한 것과도 매칭되지 않는 다른 시간들에, 프론트 엔드 전력 공급부를 제어하여 사전정의된 일부 개수 초과의 전력 스테이지들이 활성이게 하도록 추가로 구성된다.
일 실시예에서, 전력 스테이지들을 적응적으로 활성화 및 비활성화하는 것에 더하여, 제어 회로부는 전력 스테이지들 중 하나 이상을 정상 모드와 대기 모드 사이에서 적응적으로 전환하도록 구성된다. 개시된 실시예에서, 사전정의된 일부 개수의 전력 스테이지들은 단일 전력 스테이지이다.
예시적인 실시예에서, 활성 전력 스테이지들의 개수가 사전정의된 일부 개수인 동안, 제어 회로부는, (i) 하드웨어 회로들 중 하나로부터의 요청이 동작 전압들의 설정을 안전 설정으로부터 불안전 설정으로 변경할 것으로 예상됨을 검출하도록, 그리고 (ii) 전압 조절기들을 제어하여 활성 전력 스테이지들의 개수를 증가시킨 후에만 불안전 설정으로 스위칭하도록 구성된다.
일 실시예에서, 안전 설정들 중 적어도 하나는 하나 이상의 특정된 온도 임계치들에 의존하고, 조정가능한 동작 전압들의 설정을 안전 설정들에 비교할 시, 제어 회로부는 장치와 연관된 하나 이상의 온도들을 하나 이상의 온도 임계치들에 비교하도록 구성된다.
추가적으로, 본 명세서에서 설명된 실시예에 따르면, 전력 스테이지들의 세트를 포함하는 프론트 엔드 전력 공급부를 사용하여 다수의 하드웨어 회로들에 전력을 공급하기 위한 전력을, 전력 스테이지들을 사용하여 전력의 각자의 부분들을 생성함으로써 생성하는 단계를 포함하는 방법이 제공된다. 프론트 엔드 전력 공급부의 출력에 연결된 다수의 전압 조절기들을 사용하여 하드웨어 회로들에 조정가능한 동작 전압들이 제공된다. 전압 조절기들은 하드웨어 회로들로부터의 요청들에 응답하여, 조정가능한 동작 전압들의 설정을 하드웨어 회로들에 공급하도록 제어된다. 조정가능한 동작 전압들의 설정은 프론트 엔드 전력 공급부의 사전정의된 일부 개수의 전력 스테이지들에 의해 프로비저닝에 안전한 것으로 특정된 하나 이상의 안전 설정들에 비교된다. 전력 스테이지들은 동작 전압들의 설정이 안전 설정들 중 적어도 하나에 매칭되는 동안에만 활성 전력 스테이지들의 개수가 사전정의된 일부 개수로 설정됨을 보장하는 것을 포함하여, 적응적으로 활성화 및 비활성화된다.
이들 및 다른 실시예들은 도면들과 함께 취해진 본 발명의 실시예들의 아래의 상세한 설명으로부터 보다 완전히 이해될 것이다.
도 1은 본 명세서에서 설명되는 실시예에 따른, 시스템-온-칩(System-on-Chip chip, SOC)으로서 구현된 컴퓨팅 시스템을 개략적으로 예시하는 블록도이다.
도 2는 본 명세서에서 설명되는 실시예에 따른, SOC 및 연관된 전력 공급부를 개략적으로 예시하는 블록도이다.
도 3은 본 명세서에서 설명되는 실시예에 따른, 안전 동작 전압 설정들의 목록을 질의하기 위한 회로부를 개략적으로 예시하는 블록도이다.
도 4는 본 명세서에서 설명되는 실시예에 따른, 저전력(단일 페이즈) 모드와 정상(전 페이즈(all-phase)) 모드 사이에서 전환하기 위한 상태 머신을 개략적으로 예시하는 도면이다.
도 5는 본 명세서에서 설명되는 실시예에 따른 시스템을 개략적으로 예시하는 블록도이다.
도 6은 본 명세서에서 설명되는 실시예에 따른 컴퓨터 판독가능 저장 매체를 개략적으로 예시하는 블록도이다.
개요
본 명세서에서 설명되는 실시예들은 전자 회로부 내에서의 전력 관리를 위한 개선된 방법들 및 장치를 제공한다. 개시된 기법들은, 예를 들어, 배터리-작동형 컴퓨팅 또는 통신 디바이스 내의 시스템-온-칩(SOC)에 전력을 공급하기 위해 사용될 수 있다.
일부 실시예들에서, SOC는 중앙 프로세싱 유닛(Central Processing Unit, CPU)들, 그래픽스 프로세싱 유닛(Graphics Processing Unit, GPU)들, 애플 뉴럴 엔진(Apple Neural Engine, ANE)들, 통신 패브릭들 등과 같은 다양한 하드웨어 회로들을 포함한다. SOC 내의 하드웨어 회로들 중 적어도 일부는 일차 스테이지("프론트 엔드 스테이지" 또는 "프론트 엔드 전력 공급부"로도 지칭됨) 및 이차 스테이지를 갖는 2-스테이지 전력 공급부에 의해 전력을 공급받는다.
전력 공급부의 일차 스테이지는 총 전력의 각자의 부분들을 생성하는 병렬 전력 스테이지들("페이즈들"로도 지칭됨)의 세트를 포함한다. 전력 스테이지들의 출력들은 조합되어 단일 전압 레일을 생성한다. 전력 스테이지들은 서로 독립적으로, 개별적으로 활성화 및 비활성화될 수 있다. 전력 공급부의 이차 스테이지는 단일 전압 레일에 의해(즉, 프론트 엔드 스테이지의 출력에 의해) 급전되는 다수의 조정가능한 전압 조절기들을 포함한다. 전압 조절기들은 하드웨어 회로들에 조정가능한 동작 전압들을 제공하도록 구성된다. 전형적인 구현에서, 전압 조절기들은, 잡음을 최소화하고 전압 정확도를 최대화하기 위해, 그들이 서빙하는 하드웨어 회로들에 매우 근접하게 배치된다.
일부 실시예들에서, SOC는 전력 스테이지들 및 전압 조절기들을 제어하는 제어 회로부를 추가로 포함한다. 하나의 예시적인 실시예에서, 제어 회로부는 전력 관리자 (power manager, "PMGR") 및 프론트 엔드 제어기를 포함한다. 전력 관리자는 하드웨어 회로들(예컨대, CPU들, GPU들 등)에 결합되고, 전압 조절기들 및 프론트 엔드 제어기 둘 모두를 제어한다. 프론트 엔드 제어기는 PMGR로부터의 명령들에 응답하여 프론트 엔드 전력 공급부의 전력 스테이지들을 제어한다. 대안적인 실시예들에서, 제어 회로부는 임의의 다른 적합한 (중앙집중형 또는 분산형) 구성을 가질 수 있다.
일부 실시예들에서, 전력 공급부는 제어 회로부에 의해 관리되는 다양한 동작 모드들을 지원한다. 이러한 모드들 중 하나가 저전력 모드이며, 여기서 소형의 사전정의된 개수의 전력 스테이지들(예컨대, 단일 스테이지)만이 활성으로 유지되어, 누설 전류를 감소시키고 따라서 효율을 증가시킨다. 그러한 저전력 모드는 SOC의 유휴 및 다른 저효용 시나리오들에서 특히 유리하며, 여기서 전력 스테이지의 누설 전류는 무시될 수 없다. 수치 예들이 하기에 추가로 주어진다. 개시된 기법들은 저전력 모드로의 그리고 그로부터의 빠르고 안전한 하드웨어 구현 전환을 가능하게 한다.
본 개시내용의 맥락에서 그리고 청구범위에서, 용어 "비활성화"는, 개시된 저전력 모드에서 사용되는 바와 같이, 전력 스테이지의 누설 전류를 감소시키는 임의의 적합한 메커니즘을 지칭한다. 비활성화는, 예를 들어, 전력 스테이지가 제로 전류를 인출하게 하는 전력 스테이지의 실제 셧오프(shut-off), 또는 누설 전류를 일부 작지만 0이 아닌 값으로 감소시키는 일부 부분 디스에이블링을 수반할 수 있다. 예를 들어, 전력 스테이지는 누설 전류를 감소시키기 위해 그의 드라이버 및 비-필수 블록들을 디스에이블함으로써 비활성화될 수 있다. 그러나, 전력 스테이지의 일부 블록들은 재활성화의 레이턴시를 감소시키기 위해 전력공급되는 상태를 유지할 수 있다. 비활성화는 전형적으로, 전력 스테이지의 대부분 또는 모든 활성 회로부, 예컨대 바이어싱 및 기준 회로부를 디스에이블하는 것을 수반한다. 그러나, 일부 실시예들에서, 입력 전력이 유지된다. 전력 스테이지에 적용될 수 있는 다양한 대기 모드에 더하여, 가능하게는 비활성화가 채용된다.
전력 스테이지들의 비활성화에 기초하는 저전력 모드를 구현할 때, 주요 과제는 이러한 모드로부터 전환할 때 전력 스테이지의 비교적 긴 웨이크업 시간이다. 전형적인 구현에서, 전력 스테이지의 웨이크업 시간은 수십 또는 수백 마이크로초 정도이다. 다른 한편으로, 부하의 변화들은, 예컨대 1 마이크로초 또는 수 마이크로초 정도로, 상당히 더 빠를 수 있다. (본 예에서, 부하의 변화는 하드웨어 회로들 중 하나 이상의 회로들의 전력 소비의 변화들로 인해, 이차 스테이지의 전압 조절기들 중 하나 이상의 조절기들의 전력 소비의 변화이다.) 요구된 웨이크업 시간을 충족하지 못하는 것은, 성능 저하, 또는 심지어 SOC의 재설정 또는 고장으로 이어질 수 있는 심각한 전압 강하들을 야기할 수 있다.
일부 실시예들에서, 제어 회로부는 "안전 설정들"의 특정된 목록에 따라 저전력 모드로 그리고 그로부터 전환한다. 상기에서 언급된 바와 같이, 이차 전력 공급 스테이지의 다양한 전압 조절기들은 다양한 하드웨어 회로들로부터의 요청들에 응답하여 그들이 제공하는 동작 전압들을 조정하도록 제어된다. 예를 들어, 소정 CPU는 그의 계산 활동의 임박한 증가로 인해 그의 동작 전압을 증가시키라는, 또는 유휴 또는 덜 바쁜 기간에 진입할 시에 그의 동작 전압을 감소시키라는 요청을 제어 회로부로 전송할 수 있다. 제어 회로부는 해당 CPU를 서빙하는 전압 조절기를 조정함으로써 그러한 요청들에 응답할 수 있다. 소정 상황들 하에서, 제어 회로부는 요청을 거절할 수 있다.
따라서, 임의의 주어진 시간에, 제어 회로부는 이차 전력 공급부 스테이지의 다수의 전압 조절기들에 의해 공급되는 실제 동작 전압들을 인식한다. 주어진 시간에 다수의 전압 조절기들에 의해 공급되는 다수의 동작 전압들의 값들은 본 명세서에서 간결함을 위해 "전압 설정" 또는 간단히 "설정"으로 지칭된다. 일부 실시예들에서, 제어 회로부는 안전한 것으로서 정의되는 하나 이상의 설정들의 목록을 보유한다. 이러한 맥락에서, 설정은, 저전력 모드에 대해 특정된 소수의 전력 스테이지들만이 활성인 상태로 프론트 엔드 전력 공급부가 동작하는 동안 대응하는 동작 전압들이 생성될 수 있는 경우에(그리고 그러한 경우에만) 안전한 것으로 간주된다.
예를 들어, 단일 활성 전력 스테이지만을 사용하는 저전력 모드 동안, 설정은, 전압 조절기들의 대응하는 동작 전압들이 프론트 엔드 전력 공급부 내의 단일 활성 전력 스테이지만을 사용하여 공급될 수 있는 경우에 안전한 것으로 간주된다. 소정 설정이 하나 초과의 전력 스테이지가 활성일 것을 요구하는 경우, 그것은 불안전한 것으로 간주된다.
유사한 안전 및 불안전 설정이, 다른 개수들의 활성 전력 스테이지들을 갖는 저전력 모드들에 대해 정의될 수 있다. 단순화를 위해, 하기의 설명은 주로 "단일 페이즈" 저전력 모드를 지칭하며, 여기서 단일 전력 스테이지만이 활성이고 다른 것들은 비활성이다. 그러나, 개시된 기법들은 하나 초과(예컨대, 2개)의 스테이지들이 동작 중인 다른 저전력 모드들을 구현하는 데 사용될 수 있다.
다양한 실시예들에서, 제어 회로부는 저전력 모드로 그리고 그로부터 안전하게 전환하기 위해, 다양한 방식들로 안전 설정들의 목록을 사용할 수 있다. 예를 들어, 하나의 실시예에서, 제어 회로부는 하드웨어 회로들로부터 수신된 동작 전압 변화들에 대한 요청들을 연속적으로 모니터링한다. 저전력 모드에서 동작할 때, 제어 회로부는 동작 전압의 증가를 위한 하드웨어 회로로부터의 요청이 새로운 설정(새롭게 요청된 전압을 포함하는 복수의 동작 전압들)을 불안전하게 만들 것임을 검출할 수 있다. 그러한 경우에, 제어 회로부는 요청을 일시적으로 거절할 수 있고, 이어서 추가적인 전력 스테이지들(예컨대, 모든 전력 스테이지들)을 활성화함으로써 저전력 모드로부터 전환할 수 있고, 이어서, 적절한 전압 조절기만을 조정하여 동작 전압을 요청된 바와 같이 증가시킬 수 있다. 이러한 방식으로, 전환은 전력 스테이지들의 느린 응답 시간에도 불구하고 무조건적으로 안전하다. 대안적인 실시예들에서, 다른 적합한 전환 스킴들이 또한 사용될 수 있다.
본 명세서에서 설명된 실시예들 중 대부분에서, 제어 회로부는 하드웨어 회로들의 동작 전압들에 기초하여 저전력 모드로의 그리고 그로부터의 전환들에 대해 결정한다. 실제로, 동작 전압들 단독에 기초한 결정들은 구현하기에 안전하고 간단하지만, 차선일 수 있다. 다시 말하면, 추가적인 파라미터들이 이용가능하다면, 안전 설정들의 목록이 개선될 수 있고, 저전력 모드가 더 자유롭게 적용될 수 있다.
예를 들어, 대안적인 실시예들에서, 안전 설정들의 목록은 또한 (예컨대, 하드웨어 회로들 중 하나 이상 또는 그 근처에서의 온도에 관한) 하나 이상의 온도 임계치들을 특정할 수 있다. 그러한 실시예들에서, 제어 회로부는 SOC 내의 하나 이상의 온도 센서들로부터 온도 측정치들을 획득할 수 있고, 온도 측정치들을 온도 임계치들과 비교할 수 있다. 이러한 방식으로, 제어 회로부는 또한, 온도에 기초하여 특정 설정이 안전한지의 여부를 결정할 수 있다. 추가적으로 또는 대안적으로, 하드웨어 회로들 중 하나 이상이 동작 전압들에 더하여 그들의 클록 주파수들을 적응시킬 때, 클록 주파수는 또한, 안전 설정들의 정의 및 제어 회로부의 결정들을 개선하는 파라미터로서 사용될 수 있다.
개시된 기법들은 신뢰성을 손상시키지 않으면서, 전력 스테이지들의 완전한 셧다운(shut-down)을 수반하는 고도로 효율적인 저전력 모드들의 구현을 가능하게 한다. 일부 실시예들에서, 개시된 제어 회로부는 순수하게 하드웨어에서 구현되어, 솔루션을 적대적인 공격들에 대해 빠르고 안전하게 만든다.
개시된 기법들은 또한 구현하기에 간단한데, 이는 그들이 서빙되는 하드웨어 회로들의 동작 전압들에 대한 단지 대략적인 지식만을 요구하기 때문이다. 동작 전압이 전력 소비에 대한 대략적인 간접 표시("프록시")일 뿐이더라도, 본 명세서에서 설명되는 방법들 및 시스템들은 상당한 에너지 절감을 제공한다. 개시된 기법들은 저효용 사용 패턴들에서 컴퓨팅 및 통신 디바이스들의 배터리 수명을 연장하는 데 특히 효과적이다.
시스템 설명
도 1은 본 명세서에서 설명되는 실시예에 따른, 시스템-온-칩(SOC)(10)으로서 구현된 컴퓨팅 시스템을 개략적으로 예시하는 블록도이다. SOC(10)는 메모리(12)에 결합된 것으로 도시되어 있다. 명칭에서 암시되는 바와 같이, SOC(10)의 컴포넌트들은 집적 회로 "칩"으로서 단일의 반도체 기판 상에 집적될 수 있다. 일부 실시예들에서, 컴포넌트들은 시스템 내의 2개 이상의 별개의 칩들 상에 구현될 수 있다. 그러나, SOC(10)는 본 명세서에서 예로서 사용될 것이다. 예시된 실시예에서, SOC(10)의 컴포넌트들은 복수의 프로세서 클러스터들(14), 메모리 제어기(Memory Controller, MC)(22), 통신 패브릭(27), 및 선택적으로 하나 이상의 주변 컴포넌트들(더 간단하게는, "주변기기들" - 도면에 도시되지 않음)을 포함한다. 프로세서 클러스터들(14) 및 MC(22)는 모두 통신 패브릭(27)에 결합될 수 있다.
메모리 제어기(22)는 사용 중에 메모리(12)에 결합될 수 있다. 일부 실시예들에서, 대응하는 메모리에 결합된 하나 초과의 메모리 제어기가 있을 수 있다. 메모리 어드레스 공간은 임의의 원하는 방식으로 메모리 제어기들에 걸쳐 맵핑될 수 있다. 예시된 실시예에서, 프로세서 클러스터들(14)은 각자의 복수의 프로세서(P)들(30)을 포함할 수 있다. 프로세서들(30)은 SOC(10)의 중앙 프로세싱 유닛들(CPU(들))을 형성할 수 있다. 일 실시예에서, 하나 이상의 프로세서 클러스터들(14)은 CPU들로서 사용되지 않을 수 있다.
전술한 바와 같이, 프로세서 클러스터들(14)은 SOC(10)의 CPU로서 역할을 할 수 있는 하나 이상의 프로세서(30)를 포함할 수 있다. 시스템의 CPU는 시스템의 메인 제어 소프트웨어, 예컨대 운영 체제를 실행하는 프로세서(들)를 포함한다. 일반적으로, 사용 동안 CPU에 의해 실행되는 소프트웨어는 시스템의 다른 컴포넌트들을 제어하여 시스템의 원하는 기능을 실현할 수 있다. 프로세서들은 또한 다른 소프트웨어, 예를 들어, 애플리케이션 프로그램들을 실행할 수 있다. 애플리케이션 프로그램들은 사용자 기능을 제공할 수 있고, 저-레벨 디바이스 제어, 스케줄링, 메모리 관리 등을 위해 운영 시스템에 의존할 수 있다. 따라서, 프로세서들은 또한 애플리케이션 프로세서들로 지칭될 수 있다.
대체적으로, 프로세서는 프로세서에 의해 구현된 명령 세트 아키텍처(instruction set architecture, ISA)에 정의된 명령들을 실행하도록 구성된 임의의 회로부 및/또는 마이크로코드를 포함할 수 있다. 프로세서들은 시스템-온-칩(SOC(10)) 또는 다른 레벨들의 통합부로서 다른 컴포넌트들과 함께 집적 회로 상에 구현된 프로세서 코어들을 망라할 수 있다. 프로세서들은 별개의 마이크로프로세서들, 멀티칩 모듈 구현부들 내에 집적화된 프로세서 코어들 및/또는 마이크로프로세서들, 다수의 집적 회로들로서 구현된 프로세서들 등을 추가로 망라할 수 있다.
메모리 제어기(22)는 대체적으로, SOC(10)의 다른 컴포넌트들로부터 메모리 동작들을 수신하고, 메모리(12)에 액세스하여 메모리 동작들을 완료하기 위한 회로부를 포함할 수 있다. 메모리 제어기(22)는 임의의 유형의 메모리(12)에 액세스하도록 구성될 수 있다. 예를 들어, 메모리(12)는 SRAM(static random access memory), DRAM(dynamic RAM), 예컨대 더블 데이터 레이트(double data rate)(DDR, DDR2, DDR3, DDR4 등) DRAM을 포함하는 동기식 DRAM(synchronous DRAM, SDRAM)일 수 있다. 저전력/모바일 버전들의 DDR DRAM(예컨대, LPDDR, mDDR 등)이 지원될 수 있다. 메모리 제어기(22)는, 동작들을 순서화하기 위한(그리고 잠재적으로 재정렬하기 위한) 그리고 동작들을 메모리(12)에 제시하기 위한, 메모리 동작들에 대한 큐(queue)들을 포함할 수 있다. 메모리 제어기(22)는 메모리로의 기입을 대기하는 기입 데이터 및 메모리 동작의 소스로의 복귀를 대기하는 판독 데이터를 저장하기 위한 데이터 버퍼들을 추가로 포함할 수 있다. 일부 실시예들에서, 메모리 제어기(22)는 최근에 액세스된 메모리 데이터를 저장하기 위한 메모리 캐시를 포함할 수 있다. SOC 구현들에서, 예를 들어, 메모리 캐시는, 데이터가 다시 곧 액세스될 것으로 예상되는 경우에 메모리(12)로부터의 데이터의 재-액세스를 회피시킴으로써 SOC에서의 전력 소비를 감소시킬 수 있다. 일부 경우들에서, 메모리 캐시는 또한, 소정의 컴포넌트들만을 서빙하는 프로세서들 내의 L2 캐시 또는 캐시들과 같은 개인 캐시(private cache)들과는 대조적으로, 시스템 캐시로서 지칭될 수 있다. 추가적으로, 일부 실시예들에서, 시스템 캐시는 메모리 제어기(22) 내에 위치될 필요가 없다.
SOC(10) 내의 주변기기들은 SOC에 포함된 추가적인 하드웨어 기능의 임의의 세트일 수 있다. 예를 들어, 주변기기들은 비디오 주변기기들, 예컨대 카메라 또는 다른 이미지 센서로부터의 이미지 캡처 데이터를 프로세싱하도록 구성된 이미지 신호 프로세서, GPU들, 비디오 인코더/디코더, 스케일러, 로테이터, 블렌더, 디스플레이 제어기 등을 포함할 수 있다. 주변기기들은 오디오 주변기기들, 예컨대 마이크로폰, 스피커, 마이크로폰 및 스피커에 대한 인터페이스, 오디오 프로세서, 디지털 신호 프로세서, 믹서 등을 포함할 수 있다. 주변기기들은, USB(Universal Serial Bus), PCIe(peripheral component interconnect(PCI) Express)를 비롯한 PCI, 직렬 및 병렬 포트 등과 같은 인터페이스들을 포함한, SOC(10) 외부의 다양한 인터페이스들에 대한 인터페이스 제어기들을 포함할 수 있다. 주변기기들은 매체 액세스 제어기(media access controller, MAC)들과 같은 네트워킹 주변기기들을 포함할 수 있다. 하드웨어의 임의의 세트가 포함될 수 있다.
통신 패브릭(27)은 SOC(10)의 컴포넌트들 사이에서 통신하기 위한 임의의 통신 상호연결부 및 프로토콜일 수 있다. 통신 패브릭(27)은 공유 버스 구성, 크로스 바(cross bar) 구성, 및 브리지들을 갖는 계층구조 버스들을 포함하는 버스 기반일 수 있다. 통신 패브릭(27)은 또한 패킷 기반일 수 있고, 브리지들을 갖는 계층구조, 크로스 바, 포인트-투-포인트(point-to-point), 또는 다른 상호연결부들일 수 있다.
각각의 프로세서 클러스터(14) 내의 프로세서들(30)과 같은 SOC(10)의 컴포넌트들의 개수(및 도 1에 도시된 것들에 대한 서브컴포넌트들의 개수)는 실시예마다 다를 수 있다는 것에 유의한다. 추가적으로, 하나의 프로세서 클러스터(14) 내의 프로세서들(30)의 개수는 다른 프로세서 클러스터(14) 내의 프로세서들(30)의 개수와 상이할 수 있다. 도 1에 도시된 개수보다 더 많거나 더 적은 각각의 컴포넌트/서브컴포넌트가 존재할 수 있다.
전력 스테이지들의 안전 적응적 활성화 및 비활성화
도 2는 본 명세서에서 설명되는 실시예에 따른, SOC(44)에 전력을 공급하는 전력 공급부(40)를 개략적으로 예시하는 블록도이다. SOC(44)는, 예를 들어, 위의 도 1의 SOC(10)의 예시적인 구현일 수 있다. SOC(44)는, 예를 들어, 개인용 컴퓨터, 태블릿 또는 스마트폰과 같은 임의의 적합한 호스트 시스템 또는 디바이스에서 사용될 수 있다.
SOC(44)는 개시된 기법들을 사용하여 전력을 공급받는 복수의 하드웨어 회로들을 포함한다. 본 예에서, 하드웨어 회로들은 2개의 CPU들(48), 4개의 GPU들(52), 2개의 애플 뉴럴 엔진(ANE)들(56), 및 메모리 상호연결 패브릭(60)을 포함한다. 일부 실시예들에서, 추가적인 하드웨어 회로(68), 또는 다수의 추가적인 회로들(68)이 포함될 수 있다. 그러나, 대안적으로, SOC는 임의의 적합한 종류의 임의의 다른 적합한 개수들의 하드웨어 회로들을 포함할 수 있다. 전력 관리자(PMGR)(80)는 하기에서 설명되는 바와 같이, SOC(44)에 대한 다양한 전력 관리 태스크들을 수행한다.
전력 공급부(40)는 일차 스테이지("프론트 엔드 스테이지" 또는 "프론트 엔드 전력 공급부"로도 지칭됨) 및 이차 스테이지를 갖는 2-스테이지 전력 공급부이다. 일차 스테이지는 총 전력의 각자의 부분들을 생성하는 병렬 전력 스테이지들(84)("페이즈들"로도 지칭됨)의 세트를 포함한다. 전력 스테이지들(84)은 호스트 시스템의 배터리 전압(VBAT로 표시됨)에 의해 급전된다. 전력 스테이지들(84)의 출력들은 각자의 인덕터들(88)을 통해 VDDH로 표시된 단일 전압 레일에 조합된다. 프론트 엔드 제어기(96)는 전력 스테이지(84)를 제어하고, 특히, 전력 스테이지들을 적절하게 활성화 및 비활성화한다. 제어기(96)는 다른 전력 스테이지들과 독립적으로, 각각의 전력 스테이지(84)를 개별적으로 활성화 및 비활성화할 수 있다. 개시된 저전력 모드들을 구현하는 데 있어서의 제어기(96)의 역할은 하기에서 상세히 설명된다.
다양한 실시예들에서, 배터리 전압(VBAT)은 임의의 적합한 배터리 기술과 호환가능하고, 프론트 엔드 스테이지의 출력 전압(VDDH)은 사용되는 임의의 적합한 프로세스 노드와 호환가능하다. 각각의 전력 스테이지(84)는, 예를 들어, 수 와트 내지 수 십 와트의 전력 레벨을 전달할 수 있다. 도 2에 도시된 예에서, 전력 스테이지들(84)의 개수는 5이다. 그러나, 이러한 값들은 단지 비제한적인 예들로서 주어진다. 전력 스테이지들의 개수, 및 개별적인 전력 스테이지의 전력 정격(rating)은, 예컨대 SOC(44)의 전력 요건들에 따라, 임의의 원하는 값들로 설정될 수 있다. 또한, 전력 스테이지들(24)이 반드시 동일한 전력 정격의 것일 필요는 없다. 추가적으로 또는 대안적으로, 하나 이상의 전력 스테이지들(24)이 SOC(44) 내부에 있을 수 있다. 대체적으로, 전력 스테이지들(24)은 SOC 내부 및/또는 외부에 필요에 따라 분배될 수 있다.
전력 공급부(40)의 이차 스테이지는 단일 전압 레일에 의해(즉, VDDH에 의해) 급전되는 다수의 조정가능한 전압 조절기들(92)을 포함한다. 전압 조절기들(92)은 하드웨어 회로들에(본 예에서, CPU들(48), GPU들(52), ANE들(56) 및 패브릭(60)에) 조정가능한 동작 전압들을 제공하도록 구성된다. 본 예에서, 각각의 하드웨어 회로는 각자의 조절기(92)에 의해 서빙된다. 각각의 하드웨어 회로는 시스템 전력 관리 인터페이스(System Power Management Interface, SPMI) 프로토콜을 사용하여 그의 각자의 조절기와 통신한다. 하나의 예시적인 실시예에서, 조절기들의 개수는 5이고, 각각의 조절기(92)의 전압은 0.4 내지 1.2 V의 범위에 걸쳐 5 mV의 스텝들로 조정가능하다. 그러나, 이러한 값들은 단지 비제한적인 예들로서 주어진다. 임의의 다른 적합한 수치 값들을 갖는 임의의 다른 구성들이 대안적인 실시예들에서 사용될 수 있다. SOC(44) 내의 PMGR(80)은 임의의 적합한 프로토콜 또는 프로토콜들을 사용하여 조절기들(92) 및 프론트 엔드 제어기(96)와 통신한다.
본 맥락에서, PMGR(80) 및 제어기(96)는 집합적으로, 개시된 기법들을 수행하는 "제어 회로부"로 지칭된다. 본 명세서의 설명은 순수하게 예로서, PMGR(80)과 제어기(96) 사이의 소정 태스크 파티셔닝("분업")을 제시한다. 대안적인 실시예들에서, 제어 회로부는 임의의 다른 적합한 구성을 사용하여 구현될 수 있다. 대안적인 실시예들에서, 임의의 다른 적합한 인터페이스들이 제어기(96), PMGR(80), 조절기들(92) 및 다양한 하드웨어 회로들 사이에서 사용될 수 있다. 하나의 가능성이 GPIO이다.
일부 실시예들에서, 제어 회로부는, 단일 전력 스테이지(84)만이 활성이고 다른 전력 스테이지들(84)이 비활성화되는 저전력 모드를 지원한다. 이러한 모드는 "단일 페이즈" 모드로도 지칭된다. 저전력 모드로의 그리고 그로부터의 안전한 전환을 위해, PMGR(80)은 하나 이상의 안전 설정들의 목록(98)을 저장한다. 각각의 안전 설정은 단일 활성 전력 스테이지(84)만을 사용하여 안전하게 제공될 수 있는 (하드웨어 회로들에 공급된) 동작 전압들의 조합을 특정한다.
하기의 표 1은 안전 동작 전압 설정들의 예시적인 목록을 제공한다:
[표 1]
본 예에서, 목록은 8개의 엔트리들(행들)을 포함한다. 각각의 엔트리는 하드웨어 회로들의 동작 전압들의 각자의 안전 설정을 특정한다. "CPU 최대" 열은 CPU들(48) 중에서 최고 전압을 수신하는 CPU(48)의 동작 전압을 특정한다. "다른 CPU들" 열은 CPU들(48) 중에서 두 번째 최고 전압을 수신하는 CPU(48)의 동작 전압(즉, "최대 CPU" 열 상에 나타나는 CPU 이외의 모든 CPU들에 걸친 최대 전압)을 특정한다. "GPU 최대" 열은 GPU들(52) 중에서 최고 전압을 수신하는 GPU(52)의 동작 전압을 특정한다. "ANE 최대" 열은 ANE들(56) 중에서 최고 전압을 수신하는 ANE(56)의 동작 전압을 특정한다. "FAB" 열은 패브릭(60)의 동작 전압을 특정한다. "기타" 열은 추가적인 회로(68)의 동작 전압을 특정한다.
소정 설정은, 설정 내의 모든 동작 전압이 엔트리에서 특정된 대응하는 동작 전압 이하인 경우에 "엔트리와 매칭하는 것" 또는 "안전 설정들 중 하나와 매칭하는 것"으로 간주된다. 소정 설정은 그것이 적어도 하나의 엔트리와 매칭하는 경우에 안전한 것으로 간주된다. 따라서, 동작 전압들의 소정 설정을 안전 설정들의 목록에 비교함으로써, PMGR(80)는 저전력 모드를 사용한 프로비저닝에 설정이 안전한지의 여부를 결정할 수 있다.
일부 실시예들에서, SOC(44)는 개시된 기법들에 참여하지 않는 하드웨어 회로들을 포함함에 유의한다. 그러한 하드웨어 회로들은, 예를 들어, 고정 전압들에 의해 급전되는 하드웨어 회로들을 포함할 수 있다.
도 3은 본 명세서에서 설명되는 실시예에 따른, 안전 설정들의 목록(98)을 질의하기 위한 예시적인 회로부(100)를 개략적으로 예시하는 블록도이다. 회로부(100)는, 예를 들어, SOC(44) 내의 PMGR(80)의 일부일 수 있다.
도면의 상단 좌측은, 본 예시적인 CPU들(48), GPU들(52), ANE들(56), 패브릭(60) 및 추가적인 회로(68)에서, 동작 전압 설정들에 참여하는 다양한 하드웨어 회로들에 공급되는 동작 전압들을 예시한다. 도면의 상단 좌측에 있는 회로부는 하기를 포함한다:
MAX 블록(104)이 CPU들(48)의 동작 전압들 중에서 최대치를 출력한다. 이러한 값은 목록(98)의 "CPU 최대" 열에 대해 비교될 것이다.
MIN 블록(105)이 CPU들(48)의 동작 전압들 중에서 최소치를 출력한다. 이러한 값은 목록(98)의 "CPU 두 번째" 열에 대해 비교될 것이다.
MAX 블록(106)이 GPU들(52)의 동작 전압들 중에서 최대치를 출력한다. 이러한 값은 목록(98)의 "GPU 최대" 열에 대해 비교될 것이다.
MAX 블록(107)이 ANE들(52)의 동작 전압들 중에서 최대치를 출력한다. 이러한 값은 목록(98)의 "ANE 최대" 열에 대해 비교될 것이다.
패브릭(60) 및 추가적인 회로(68)의 동작 전압들이 또한, 목록(98)의 "FAB" 및 "기타" 열들에 대한 비교를 위해 각각 제공된다.
본 예에서, 위의 6개의 값들 각각은 8개의 비트들을 사용하여 표현된다. 6개의 값들은 비교기들(108)의 어레이에 의해 프로세싱된다. 어레이 내의 각각의 행은 안전 설정들의 목록(98)의 각자의 행(엔트리)에 대응한다.
주어진 행에서, 최좌측 비교기(108)는 MAX 블록(104)의 출력으로부터 수신된 값을 각자의 엔트리의 "CPU 최대" 값에 비교한다. 다음 비교기(108)는 MIN 블록(105)의 출력으로부터 수신된 값을 각자의 엔트리의 "CPU 두 번째" 값에 비교한다. 다음 비교기(108)는 MAX 블록(106)의 출력으로부터 수신된 값을 각자의 엔트리의 "GPU 최대" 값에 비교한다. 다음 비교기(108)는 MAX 블록(107)의 출력으로부터 수신된 값을 각자의 엔트리의 "ANE 최대" 값에 비교한다. 마지막 2개의(최우측) 비교기들(108)은 패브릭(60) 및 추가적인 회로(68)의 동작 전압들을 각자의 엔트리의 "FAB" 및 "기타" 값들에 각각 비교한다.
따라서, 주어진 행의 비교기들은 총 6개의 비트들을 출력한다. 비교기들의 각각의 행은 각자의 AND 게이트(112)와 연관되는데, 이는 6개의 비트들의 논리 AND를 출력한다. 주어진 AND 게이트(112)의 출력에서의 논리 "1"은 평가되는 설정이 목록(98)의 각자의 엔트리(행)와 매칭되고 그 반대도 성립함을 나타낸다. OR 게이트(116)는 AND 게이트들(112)의 출력들의 논리 OR을 출력한다. 따라서, OR 게이트(116)의 출력에서의 논리 "1"은 평가되는 설정이 목록(98)의 적어도 하나의 엔트리와 매칭됨을 나타낸다. 다시 말하면, OR 게이트(116)의 출력에서의 논리 "1"은 평가되는 설정이 안전하다는 것을 나타낸다.
일부 실시예들에서, PMGR(80)은 회로부(100)를 사용하여, 다양한 동작 전압 설정들이 단일 페이즈 저전력 모드를 사용한 프로비저닝에 안전한지 아니면 불안전한지를 평가한다. 대안적인 실시예들에서, PMGR(80)는 이러한 목적을 위해 임의의 다른 적합한 회로부를 사용할 수 있다. 하나의 실시예에서, PMGR는 하드웨어 회로로부터의 모든 요청에 응답하여 매칭을 재평가하여 그의 동작 전압을 조정한다. 대안적인 실시예에서, PMGR은 동작 전압을 증가시키라는 요청들에만 응답하여 매칭을 재평가한다.
도 4는 본 명세서에서 설명된 실시예에 따른, 저전력(단일 페이즈) 모드와 정상(전 페이즈) 모드 사이에서 전환하기 위한 유한 상태 머신(Finite State Machine, FSM)을 개략적으로 예시하는 도면이다. 일부 실시예들에서, 이러한 분류의 FSM은 제어 회로부에 의해 실행된다. 본 예에서, FSM은 PMGR(80)에 의해 실행되고 사용되어, 특히, 모든 전력 스테이지들(84)을 활성화할지 아니면 단일 전력 스테이지만을 활성화할지를 제어기(96)에게 명령한다.
도 4의 FSM은 2개의 신호 입력들을 수신한다:
"인에이블됨"으로 표기된 레지스터 비트 - 이는 FSM이 동작 중일 때 설정됨.
도 3의 회로부(100)에 의해 생성된 "매칭" 신호 - 이는 매칭 기준이 충족되는지의 여부(즉, 동작 전압들의 현재 설정이 단일 전력 스테이지만을 사용한 프로비저닝에 안전한지의 여부)를 나타냄.
본 예에서, FSM은 총 7개의 상태들을 포함한다. 2개의 주요 안정 상태들은, 제어기(96)가 모든 전력 스테이지들(84)을 활성으로 유지하는 "전 페이즈"("전-Φ") 상태(120), 및 제어기(96)가 단일 전력 스테이지(84)만을 활성으로 유지하는 "단일 페이즈"("1Φ") 상태(124)이다.
FSM이 전 페이즈 상태(120)에 있고 매칭 기준들이 충족될 때, PMGR(80)은 구성가능한 타이머(예컨대, 약 1 msec의 타이머)를 준비하고, FSM을 "타이머가 준비된" 상태(140)로 전환한다. 매칭 기준들이 충족되는 한, 새로운 전압 변화 요청들이 하드웨어 회로들로부터 도달하더라도 타이머는 계속해서 카운팅한다. 이러한 상태에서, 모든 전압 변화 요청들이 승인되고, PMGR(80)은 그에 따라 조절기들(92)(도 2)을 조정한다.
하드웨어 회로들 중 하나로부터의 새로운 전압 변화 요청이 매칭 신호를 디어써트하는 경우, PMGR은 타이머를 중지하고, FSM은 전 페이즈 상태(120)로 복귀한다. 타이머가 만료될 때, PMGR(80)은 제어기(96)(및 대체적으로, 전력 공급부)를 저전력 모드로, 즉 단일 페이즈 상태(124)로 전환하는 제어된 프로세스를 시작한다. (일부 실시예들에서, 외부 소프트웨어는 상태(140)로부터 상태(144)로의 즉각적인 전환을 강제하기 위해 타이머 카운트를 단축시키는 능력을 갖는다.)
타이머의 만료(또는 단축)에 이어서, 단일 페이즈 커맨드 발행 상태(144)에서, PMGR은 SPMI 커맨드를 제어기(96)로 전송하여, 하나를 제외한 모든 전력 스테이지(84)를 비활성화할 것을 제어기(96)에게 명령한다. FSM은 단일 페이즈 대기 ack 상태(148)로 전환하며, 여기서 PMGR은 제어기(96)가 비활성화를 확인응답할 것을 기다린다. SPMI 확인응답을 수신할 시, PMGR(80)은 FSM을 단일 페이즈 상태(124)로 전환한다.
FSM은 매칭 신호가 디어써트될 때(즉, 동작 전압들의 현재 설정이 단일 페이즈 모드에 대해 불안전해질 때), 또는 FSM이 디스에이블될 때, 단일 페이즈 상태(124)를 종료한다.
단일 페이즈 상태(124)를 종료할 시에, PMGR(80)은 제어기(96)(및 전체로서 전력 공급부)를 전 페이즈 상태(120)로 전환하는 제어된 프로세스를 시작한다. 전 페이즈 커맨드 발행 상태(152)에서, PMGR은 SPMI 커맨드를 제어기(96)로 전송하여, 모든 전력 스테이지들(84)을 활성화할 것을 제어기(96)에게 명령한다. FSM은 전 페이즈 대기 ack 상태(156)로 전환하며, 여기서 PMGR은 제어기(96)가 활성화를 확인응답할 것을 기다린다. SPMI 확인응답을 수신할 시, PMGR(80)은 FSM을 전 페이즈 상태(120)로 전환한다.
일부 실시예들에서, 보안 조치로서, 외부 소프트웨어에 의한 "인에이블" 비트의 설정은 전 페이즈 상태(120)에서만 하드웨어로 반영되고, 안정하게 유지된다. 이러한 메커니즘은, 소프트웨어가 FSM을 디스에이블할 때마다, FSM 전환 동안, 소프트웨어가 디스에이블링 이후의 일부 스테이지에서 FSM을 재인에이블하더라도, FSM이 전 페이즈 상태(120)로 복귀할 때까지 디스에이블 표시가 유효 상태로 유지될 것임을 보장한다.
도 4에 도시된 바와 같이, 라인(128)은 상태 공간을 비-모니터링 영역(132) 및 모니터링 영역(136)으로 표기되는 2개의 영역들로 분할한다. 일부 실시예들에서, FSM이 모니터링 영역(136)에 있을 때, PMGR(80)은 하드웨어 회로들로부터 새로운 전압 변화 요청들을 모니터링하며, 요청이 새로운 설정을 불안전하게 하는 경우에 전압 변화 요청을 차단한다. PMGR은 FSM이 라인(128)과 성공적으로 교차한 후에만(즉, 전 페이즈 상태(120)로 전환됨) 요청을 서빙한다(즉, 적절한 조절기 또는 조절기들(92)을 조정함). FSM이 비-모니터링 영역(132)에 있을 때, PMGR(80)은 매칭 기준이 충족되는지의 여부에 관계없이, 새로운 전압 변화 요청들을 모니터링 및 차단하는 것을 억제한다. 이러한 메커니즘은 전 페이즈 모드에 있는 동안 전압 변화 요청들에 응답할 시에 불필요한 레이턴시를 제거한다.
추가적인 실시예들 및 변형들
대안적인 실시예에서, 안전 설정들의 목록(98)을 사용하는 대신에, 더 간단한 메커니즘은 각각의 하드웨어 회로에 대한 1-비트 "안전/불안전" 표시를 정의하는 것이다. 예를 들어, 제어 회로부는 각각의 하드웨어 회로에 대한 "안전/불안전" 비트를, 예컨대 그 회로의 현재 전압 및/또는 클록 주파수에 따라, 수신 또는 생성할 수 있다. 모든 "안전/불안전" 비트들이 "안전"을 나타내는 경우, 제어 회로부는 저전력 모드를 적용한다. 하나 이상의 "안전/불안전" 비트들이 "불안전"을 나타내는 경우, 제어 회로부는 정상(전 페이즈) 모드로 복귀한다.
또 다른 가능성은 동작 전압들에 관계없이, 온도에만 기초하여 저전력(단일 페이즈) 모드와 정상(전 페이즈) 모드 사이에서 결정 및 스위칭하는 것이다.
본 명세서에서 설명된 실시예들은 주로 SOC의 프론트 엔드 전력 공급부 내의 전력 스테이지들의 비활성화를 다루지만, 본 명세서에서 설명된 방법들 및 시스템들은 또한, 복수의 전력 스테이지들을 사용하는 임의의 다른 시스템 또는 응용에서 사용될 수 있다.
도 5는 본 명세서에서 설명되는 실시예에 따른 시스템(700)을 개략적으로 예시하는 블록도이다. 예시된 실시예에서, 시스템(700)은 하나 이상의 주변기기들(704) 및 외부 메모리(702)에 결합된 시스템 온 칩(SOC)(10)의 적어도 하나의 인스턴스를 포함한다. SOC(10)에 공급 전압들을 공급할 뿐만 아니라, 메모리(702) 및/또는 주변기기들(154)에 하나 이상의 공급 전압들을 공급하는 전력 공급부(PMU)(708)가 제공된다. 일부 실시예들에서, SOC(10)(예를 들어, SOC들(10A-10q))의 하나 초과의 인스턴스가 포함될 수 있다(그리고 하나 초과의 메모리(702)가 또한 포함될 수 있다).
주변기기들(704)은 시스템(700)의 유형에 의존하여 임의의 원하는 회로부를 포함할 수 있다. 예를 들어, 일 실시예에서, 시스템(704)은 모바일 디바이스(예를 들어, 개인 휴대 정보 단말기(personal digital assistant, PDA), 스마트 폰 등)일 수 있고, 주변기기들(704)은 Wi-Fi, 블루투스(Bluetooth), 셀룰러, 글로벌 포지셔닝 시스템 등과 같은 다양한 유형들의 무선 통신용 디바이스들을 포함할 수 있다. 주변기기들(704)은 또한 RAM 저장소, 솔리드 스테이트 저장소(solid state storage) 또는 디스크 저장소를 포함하는 부가적인 저장소를 포함할 수 있다. 주변기기들(704)은 사용자 인터페이스 디바이스들, 예컨대 터치 디스플레이 스크린 또는 멀티터치 디스플레이 스크린을 포함한 디스플레이 스크린, 키보드 또는 다른 입력 디바이스, 마이크로폰, 스피커 등을 포함할 수 있다. 다른 실시예들에서, 시스템(700)은 임의의 유형의 컴퓨팅 시스템(예컨대, 데스크톱 개인용 컴퓨터, 랩톱, 워크스테이션, 넷톱 등)일 수 있다.
외부 메모리(702)는 임의의 유형의 메모리를 포함할 수 있다. 예를 들어, 외부 메모리(702)는 SRAM, 동적 RAM(DRAM), 예컨대, 동기식 DRAM(SDRAM), 더블 데이터 레이트(DDR, DDR2, DDR3 등) SDRAM, RAMBUS DRAM, 저전력 버전들의 DDR DRAM(예를 들어, LPDDR, mDDR 등) 등일 수 있다. 외부 메모리(702)는 메모리 디바이스들이 장착되는 하나 이상의 메모리 모듈들, 예컨대, 단일 인라인 메모리 모듈(single inline memory module, SIMM)들, 듀얼 인라인 메모리 모듈(dual inline memory module, DIMM)들 등을 포함할 수 있다. 대안적으로, 외부 메모리(702)는 칩-온-칩(chip-on-chip) 또는 패키지-온-패키지(package-on-package) 구현에서 SOC(10) 상에 장착되는 하나 이상의 메모리 디바이스들을 포함할 수 있다.
예시된 바와 같이, 시스템(700)은 넓은 범위의 영역들의 애플리케이션을 갖는 것으로 도시되어 있다. 예를 들어, 시스템(700)은 데스크톱 컴퓨터(710), 랩톱 컴퓨터(720), 태블릿 컴퓨터(730), 셀룰러 또는 모바일 폰(740), 또는 텔레비전(750)(또는 텔레비전에 결합된 셋톱 박스)의 칩들, 회로부, 컴포넌트들 등의 부분으로서 이용될 수 있다. 스마트워치 및 건강 모니터링 디바이스(760)가 또한 예시된다. 일부 실시예들에서, 스마트워치는 다양한 범용 컴퓨팅 관련 기능들을 포함할 수 있다. 예를 들어, 스마트워치는 이메일, 셀폰 서비스, 사용자 캘린더 등에 대한 액세스를 제공할 수 있다. 다양한 실시예들에서, 건강 모니터링 디바이스는 전용 의료 디바이스일 수 있거나, 또는 그렇지 않으면 전용 건강 관련 기능을 포함할 수 있다. 예를 들어, 건강 모니터링 디바이스는 사용자의 바이탈 사인(vital sign)들을 모니터링하고, 역학적인 사회적 거리두기의 목적을 위해 다른 사용자들에 대한 사용자의 근접도를 추적하고, 접촉을 추적하고, 건강 위험의 경우 응급 서비스에 통신을 제공하는 등일 수 있다. 다양한 실시예들에서, 위에서 언급된 스마트워치는 일부 또는 임의의 건강 모니터링 관련 기능들을 포함할 수 있거나 포함하지 않을 수 있다. 목부 주위에 착용된 디바이스들, 인체에서 이식가능한 디바이스들, 증강 및/또는 가상 현실 경험을 제공하도록 설계된 안경 등과 같은 다른 웨어러블 디바이스들이 또한 고려된다.
시스템(700)은 클라우드 기반 서비스(들)(770)의 일부로서 추가로 사용될 수 있다. 예를 들어, 이전에 언급된 디바이스들, 및/또는 다른 디바이스들은 클라우드 내의 컴퓨팅 자원들(즉, 원격으로 위치된 하드웨어 및/또는 소프트웨어 자원들)에 액세스할 수 있다. 더 추가적으로, 시스템(700)은 이전에 언급된 것들 이외의 홈(home)의 하나 이상의 디바이스들에서 이용될 수 있다. 예를 들어, 홈 내의 기기들은 주의를 요하는 조건들을 모니터링하고 검출할 수 있다. 예를 들어, 홈 내의 다양한 디바이스들(예를 들어, 냉장고, 냉각 시스템 등)은 디바이스의 상태를 모니터링하고, 특정 이벤트가 검출되면 경보를 집주인(또는 예를 들어, 수리 설비)에게 제공할 수 있다. 대안적으로, 서모스탯(thermostat)은 홈 내의 온도를 모니터링할 수 있고, 집주인에 의한 다양한 조건들에 대한 응답들의 이력에 기초하여 가열/냉각 시스템에 대한 조정들을 자동화할 수 있다. 또한, 다양한 운송 모드들에 대한 시스템(700)의 적용이 도 5에 예시되어 있다. 예를 들어, 시스템(700)은 항공기, 기차들, 버스들, 임대용 자동차들, 개인용 자동차들, 개인용 보트들로부터 유람선(cruise liner)들까지의 수상 선박들, (대여 또는 소유를 위한) 스쿠터들 등의 제어 및/또는 엔터테인먼트 시스템들에서 사용될 수 있다. 다양한 경우들에서, 시스템(700)은 자동화된 안내(예를 들어, 자율-주행 차량들), 일반적인 시스템 제어 등을 제공하기 위해 사용될 수 있다. 이들 임의의 많은 다른 실시예들이 가능하고 고려된다. 도 5에 예시된 디바이스들 및 애플리케이션들이 단지 예시적인 것이며 제한하려는 의도가 아니라는 것을 유의한다. 다른 디바이스들이 가능하고 고려된다.
도 6은 본 명세서에서 설명되는 실시예에 따른, 컴퓨터 판독가능 저장 매체(800)를 개략적으로 예시하는 블록도이다. 일반적으로 말하면, 컴퓨터 액세스가능 저장 매체는 명령들 및/또는 데이터를 컴퓨터에 제공하기 위하여 사용 동안 컴퓨터에 의해 액세스가능한 임의의 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 액세스가능 저장 매체는, 자기 또는 광학 매체, 예를 들어, 디스크(고정식 또는 착탈식), 테이프, CD-ROM, DVD-ROM, CD-R, CD-RW, DVD-R, DVD-RW, 또는 블루레이(Blu-Ray)와 같은 저장 매체들을 포함할 수 있다. 저장 매체들은, RAM(예를 들어, 동기식 동적 RAM(SDRAM), 램버스 DRAM(RDRAM), 정적 RAM(SRAM) 등), ROM, 또는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리 매체들을 추가로 포함할 수 있다. 저장 매체들은 저장 매체들이 명령들/데이터를 제공하는 컴퓨터 내에 물리적으로 포함될 수 있다. 대안적으로, 저장 매체들은 컴퓨터에 연결될 수 있다. 예를 들어, 저장 매체들은 네트워크 부착형 저장소와 같이, 네트워크 또는 무선 링크를 통해 컴퓨터에 연결될 수 있다. 저장 매체들은 USB(Universal Serial Bus)와 같은 주변기기 인터페이스를 통해 연결될 수 있다. 일반적으로, 컴퓨터 액세스가능 저장 매체(800)는 비일시적 방식으로 데이터를 저장할 수 있고, 이러한 맥락에서 비일시적은 신호 상에서 명령들/데이터를 송신하지 않는 것을 지칭할 수 있다. 예를 들어, 비일시적 저장소는 휘발성(그리고 전력 차단에 응답하여 저장된 명령들/데이터를 상실할 수 있음) 또는 비휘발성일 수 있다.
도 6의 컴퓨터 액세스가능 저장 매체(800)는 SOC(10)를 표현하는 데이터베이스(804)를 저장할 수 있다. 대체적으로, 데이터베이스(804)는, 프로그램에 의해 판독될 수 있고 SOC(10)를 포함하는 하드웨어를 제조하기 위해 직접적으로 또는 간접적으로 사용될 수 있는 데이터베이스일 수 있다. 예를 들어, 데이터베이스는 베릴로그(Verilog) 또는 VHDL과 같은 고레벨 설계 언어(high level design language, HDL)에서 하드웨어 기능의 거동-레벨 디스크립션(behavioral-level description) 또는 레지스터-전송 레벨(register-transfer level, RTL) 디스크립션일 수 있다. 디스크립션은 합성 라이브러리로부터의 게이트들의 목록을 포함하는 넷리스트(netlist)를 생성하기 위해 디스크립션을 합성할 수 있는 합성 도구에 의해 판독될 수 있다. 넷리스트는 SOC(10)를 포함하는 하드웨어의 기능을 또한 표현하는 한 세트의 게이트들을 포함한다. 이어서, 넷리스트는 마스크들에 적용될 기하학적 형상들을 설명하는 데이터 세트를 생성하기 위해 배치되고 라우팅될 수 있다. 이어서, 마스크들은 SOC(10)에 대응하는 반도체 회로 또는 회로들을 생성하기 위한 다양한 반도체 제조 단계들에서 사용될 수 있다. 대안적으로, 컴퓨터 액세스가능 저장 매체(800) 상의 데이터베이스(804)는, 원하는 대로, 넷리스트(합성 라이브러리가 있거나 없음) 또는 데이터 세트일 수 있다.
컴퓨터 액세스가능 저장 매체(800)가 SOC(10)의 표현을 저장하지만, 다른 실시예들은, 예를 들어, 도 2에 도시된 컴포넌트들의 임의의 서브세트를 포함하여, 원하는 대로, SOC(10)의 임의의 부분의 표현을 반송할 수 있다. 데이터베이스(804)는 위의 것의 임의의 부분을 표현할 수 있다.
본 개시내용은 "실시예" 또는 "실시예들의 그룹들"(예를 들어, "일부 실시예들" 또는 "다양한 실시예들")에 대한 언급들을 포함한다. 실시예들은 개시된 개념들의 상이한 구현들 또는 인스턴스들이다. "일 실시예", "하나의 실시예", "특정 실시예" 등에 대한 언급들은 반드시 동일한 실시예를 지칭하는 것은 아니다. 구체적으로 개시된 것들 뿐만 아니라, 본 개시내용의 사상 또는 범주 내에 속하는 수정들 또는 대안들을 포함하는 많은 가능한 실시예들이 고려된다.
본 개시내용은 개시된 실시예들로부터 발생할 수 있는 잠재적인 이점들을 논의할 수 있다. 이러한 실시예들의 모든 구현들이 반드시 잠재적인 이점들 중 임의의 또는 모든 것을 나타내는 것은 아닐 것이다. 특정 구현에 대해 이점이 실현되는지 여부는 많은 인자들에 의존하며, 이들 중 일부는 본 개시내용의 범위를 벗어난다. 실제로, 청구항들의 범위 내에 속하는 구현이 임의의 개시된 이점들 중 일부 또는 전부를 나타내지 않을 수 있는 많은 이유들이 있다. 예를 들어, 특정 구현은 개시된 실시예들 중 하나와 함께, 하나 이상의 개시된 이점들을 무효화하거나 약화시키는, 본 개시내용의 범위 밖의 다른 회로부를 포함할 수 있다. 더욱이, 특정 구현의 차선의 설계 실행(예를 들어, 구현 기술들 또는 도구들)은 또한 개시된 이점들을 무효화하거나 약화시킬 수 있다. 숙련된 구현을 가정하더라도, 이점들의 실현은 구현이 전개되는 환경 상황들과 같은 다른 인자들에 여전히 의존할 수 있다. 예를 들어, 특정 구현에 공급되는 입력들은 본 개시내용에서 해결되는 하나 이상의 문제들이 특정 기회에 발생하는 것을 방지할 수 있으며, 그 결과, 그 해결책의 이익이 실현되지 않을 수 있다. 본 개시내용 외부의 가능한 인자들의 존재를 고려할 때, 본 명세서에서 설명되는 임의의 잠재적인 이점들은, 침해를 입증하기 위해 충족되어야 하는 청구항 제한들로서 해석되지 않아야 한다는 것이 명백하게 의도된다. 오히려, 그러한 잠재적 이점들의 식별은 본 개시내용의 이익을 갖는 설계자들에게 이용가능한 개선의 유형(들)을 예시하도록 의도된다. 그러한 이점들이 허용가능하게 설명된다는 것(예를 들어, 특정 이점이 "발생할 수 있다"고 언급함)은 그러한 이점들이 실제로 실현될 수 있는지에 대한 의구심을 전달하도록 의도되는 것이 아니라, 그러한 이점들의 실현이 종종 부가적인 인자들에 의존한다는 기술적 현실을 인식하도록 의도된다.
달리 언급되지 않는 한, 실시예들은 비제한적이다. 즉, 개시된 실시예들은, 특정 특징에 대해 단일 예만이 설명되는 경우에도, 본 개시내용에 기초하여 작성되는 청구항들의 범위를 제한하도록 의도되지 않는다. 개시된 실시예들은, 이에 반하는 본 개시내용의 어떠한 진술도 없이, 제한적이기보다는 예시적인 것으로 의도된다. 따라서, 본 출원은 개시된 실시예들을 커버하는 청구항들뿐만 아니라, 본 개시내용의 이익을 갖는 당업자에게 명백할 그러한 대안들, 수정들 및 등가물들을 허용하도록 의도된다.
예를 들어, 본 출원에서의 특징들은 임의의 적합한 방식으로 조합될 수 있다. 따라서, 특징들의 임의의 그러한 조합에 대해 본 출원(또는 그에 대한 우선권을 주장하는 출원)의 심사 동안에 새로운 청구범위가 작성될 수 있다. 특히, 첨부된 청구항들을 참조하면, 종속 청구항들로부터의 특징들은 다른 독립 청구항들로부터 의존하는 청구항들을 포함하여, 적절한 경우 다른 종속 청구항들의 특징들과 조합될 수 있다. 유사하게, 개개의 독립 청구항들로부터의 특징들은 적절한 경우 조합될 수 있다.
따라서, 첨부된 종속 청구항들은 각각이 단일의 다른 청구항에 의존하도록 작성될 수 있지만, 부가적인 종속성들이 또한 고려된다. 본 개시내용과 일치하는 종속물에서의 특징들의 임의의 조합들이 고려되며, 이러한 또는 다른 출원에서 청구될 수 있다. 간단히 말하면, 조합들은 첨부된 청구항들에 구체적으로 열거된 것들로 제한되지 않는다.
적절한 경우, 하나의 포맷 또는 법정 유형(예를 들어, 장치)으로 작성된 청구항들은 다른 포맷 또는 법정 유형(예를 들어, 방법)의 대응하는 청구항들을 지원하도록 의도되는 것으로 또한 고려된다.
본 개시내용은 법적인 문서이기 때문에, 다양한 용어들 및 문구들은 행정적 및 사법적 해석의 대상이 될 수 있다. 본 개시내용 전반에 걸쳐 제공되는 정의들뿐만 아니라 다음의 단락들이 본 개시내용에 기초하여 작성되는 청구항들을 해석하는 방법을 결정하는 데 사용될 것이라는 공지가 본 명세서에 주어진다.
물품의 단수 형태(즉, "a", "an" 또는 "the"가 선행되는 명사 또는 명사 문구)에 대한 언급들은, 문맥상 명확하게 달리 지시되지 않는 한, "하나 이상"을 의미하는 것으로 의도된다. 따라서, 청구항에서 "항목"에 대한 언급은, 수반되는 상황 없이, 항목의 부가적인 인스턴스들을 배제하지 않는다. "복수"의 항목들은 항목들 중 2개 이상의 세트를 지칭한다.
"~할 수 있다"라는 단어는 본 명세서에서 강제적인 의미(즉, ~ 해야 하는)가 아니라 허용적인 의미(즉, ~할 가능성을 갖는, ~할 수 있는)로 사용된다.
용어들 "포함하는"("comprising" 및 "including") 및 이들의 형태들은 개방형(open-ended)이며, "포함하지만 이로 한정되지 않는"을 의미한다.
용어 "또는"이 옵션들의 리스트에 관하여 본 개시내용에서 사용될 때, 문맥이 달리 제공하지 않는 한, 일반적으로 포괄적인 의미로 사용되는 것으로 이해될 것이다. 따라서, "x 또는 y"의 언급은 "x 또는 y, 또는 둘 모두"와 동등하고, 따라서 1) x지만 y 아님, 2) y지만 x 아님 및 3) x 및 y 둘 모두를 커버한다. 반면에, "둘 모두가 아니라 x 또는 y 중 어느 하나"와 같은 문구는 "또는"이 배타적인 의미로 사용되고 있다는 것을 명확하게 한다.
"w, x, y, 또는 z, 또는 이들의 임의의 조합" 또는 "... w, x, y, 및 z 중 적어도 하나"의 언급은 세트 내의 요소들의 총 수까지 단일 요소를 수반하는 모든 가능성들을 커버하도록 의도된다. 예를 들어, 세트 [w, x, y, z]가 주어지면, 이러한 문구들은 세트의 임의의 단일 요소(예를 들어, w지만 x, y, 또는 z 아님), 임의의 2개의 요소들(예를 들어, w 및 x지만 y 또는 z 아님), 임의의 3개의 요소들(예를 들어, w, x 및 y지만, z 아님) 및 4개의 요소들 모두를 커버한다. 따라서, "... w, x, y, 및 z 중 적어도 하나"라는 문구는 세트 [w, x, y, z]의 적어도 하나의 요소를 지칭하고, 이로써 요소들의 이러한 리스트 내의 모든 가능한 조합들을 커버한다. 이러한 문구는 w의 적어도 하나의 인스턴스, x의 적어도 하나의 인스턴스, y의 적어도 하나의 인스턴스, 및 z의 적어도 하나의 인스턴스가 있음을 요구하도록 해석되지 않아야 한다.
본 개시내용에서 다양한 "라벨들"이 명사들 또는 명사 문구들에 선행할 수 있다. 문맥이 달리 제공하지 않는 한, 특징에 대해 사용되는 상이한 라벨들(예를 들어, "제1 회로", "제2 회로", "특정 회로", "주어진 회로" 등)은 특징의 상이한 인스턴스들을 지칭한다. 추가적으로, 특징에 적용될 때, "제1", "제2" 및 "제3" 라벨들은, 달리 언급되지 않는 한, 어떠한 유형의 순서화(예를 들어, 공간적, 시간적, 논리적 등)를 의미하지 않는다.
문구 "기초하여"는 결정에 영향을 주는 하나 이상의 인자들을 설명하기 위해 사용된다. 이러한 용어는 부가적인 인자들이 결정에 영향을 줄 수 있는 가능성을 배제하지 않는다. 즉, 결정은 단지 특정된 인자들에 기초하거나 또는 그 특정된 인자들뿐만 아니라 다른, 불특정된 인자들에 기초할 수 있다. "B에 기초하여 A를 결정한다"라는 문구를 고려한다. 이러한 문구는 B가 A를 결정하는 데 사용되거나 A의 결정에 영향을 주는 인자라는 것을 명시한다. 이러한 문구는 A의 결정이 C와 같은 일부 다른 인자에 또한 기초할 수 있음을 배제하지 않는다. 또한, 이 문구는 A가 B만에 기초하여 결정되는 실시예를 커버하도록 의도된다. 본 명세서에서 사용되는 바와 같이, "에 기초하여"라는 문구는 "적어도 부분적으로 기초하여"라는 문구와 동의어이다.
문구들 "~ 에 응답하여" 및 "~ 에 응답으로"는 효과를 트리거하는 하나 이상의 인자들을 설명한다. 이러한 문구는 부가적인 인자들이 특정된 인자들과 공동으로 또는 특정된 인자들과는 독립적으로 영향을 주거나 또는 달리 효과를 트리거할 수 있는 가능성을 배제하지 않는다. 즉, 효과는 단지 이들 인자들에만 응답할 수 있거나 또는 특정된 인자들뿐만 아니라 다른 불특정된 인자들에 응답할 수 있다. "B에 응답하여 A를 수행한다"라는 문구를 고려한다. 이러한 문구는 B가 A의 수행을 트리거하는 또는 A에 대한 특정 결과를 트리거하는 인자라는 것을 명시한다. 이러한 문구는 A를 수행하는 것이 C와 같은 일부 다른 인자에 또한 응답할 수 있음을 배제하지 않는다. 이러한 문구는 또한 A를 수행하는 것이 B와 C에 응답하여 공동으로 수행될 수 있다는 것을 배제하지 않는다. 이러한 문구는 또한 A가 B에만 응답하여 수행되는 실시예를 커버하도록 의도된다. 본 명세서에서 사용되는 바와 같이, 문구 "응답하여"는 문구 "적어도 부분적으로 응답하여"와 동의어이다. 유사하게, 문구 "~에 응답하여"는 문구 "적어도 부분적으로 응답하여"와 동의어이다.
본 개시내용 내에서, 상이한 엔티티들(이는, "유닛들", "회로들", 다른 구성요소들 등으로 다양하게 지칭될 수 있음)은 하나 이상의 태스크들 또는 동작들을 수행하도록 "구성된" 것으로 설명되거나 또는 청구될 수 있다. 이러한 표현??[하나 이상의 태스크들을 수행]하도록 구성된 [엔티티]??은 본 명세서에서 구조체(즉, 물리적인 것)를 지칭하는 데 사용된다. 더 상세하게는, 이러한 표현은 이러한 구조체가 동작 동안 하나 이상의 태스크들을 수행하도록 배열됨을 나타내는 데 사용된다. 구조체는 그 구조체가 현재 동작되고 있지 않더라도 일부 태스크를 수행하도록 "구성된다"고 말할 수 있다. 따라서, 일부 태스크를 수행"하도록 구성된" 것으로 설명된 또는 언급된 엔티티는 디바이스, 회로, 태스크를 구현하도록 실행가능한 프로그램 명령들을 저장하는 메모리 및 프로세서 유닛을 갖는 시스템 등과 같은 물리적인 것을 지칭한다. 이러한 문구는 본 명세서에서 무형인 것을 지칭하기 위해 사용되지는 않는다.
일부 경우들에서, 다양한 유닛들/회로들/구성요소들은 태스크 또는 동작들의 세트를 수행하는 것으로 본 명세서에서 설명될 수 있다. 이들 엔티티들은, 구체적으로 언급되지 않더라도, 그러한 태스크들/동작들을 수행하도록 "구성"된다는 것이 이해된다.
용어 "~ 하도록 구성된"은 "~하도록 구성가능한"을 의미하도록 의도되지 않는다. 예를 들어, 프로그래밍되지 않은 FPGA는 특정 기능을 수행하도록 "구성된" 것으로 간주되지 않을 것이다. 그러나, 이러한 프로그래밍되지 않은 FPGA는 그 기능을 수행하도록 "구성가능"할 수 있다. 적절한 프로그래밍 후에, 이어서 FPGA는 특정 기능을 수행하도록 "구성된다"고 말할 수 있다.
본 개시내용에 기초한 미국 특허 출원들의 목적들을 위해, 구조가 하나 이상의 태스크들을 수행하도록 "구성"된다고 청구항에서 언급하는 것은 명백히 그 청구항 요소에 대하여 35 U.S.C. §112(f)를 적용하지 않도록 의도된다. 출원인이 본 개시내용에 기초하여 미국 특허 출원의 심사 동안 섹션 112(f)의 적용을 원하면, [기능을 수행]"하기 위한 수단" 구조를 이용하여 청구항 요소들을 열거할 것이다.
상이한 "회로들"이 본 개시내용에서 설명될 수 있다. 이러한 회로들 또는 "회로부"는 조합 로직, 클로킹된 저장 디바이스들(예를 들어, 플립-플롭들, 레지스터들, 래치들 등), 유한 상태 머신들, 메모리(예를 들어, 랜덤 액세스 메모리, 내장형 동적 랜덤 액세스 메모리), 프로그래밍가능 로직 어레이들 등과 같은 다양한 유형들의 회로 요소들을 포함하는 하드웨어를 구성한다. 회로부는 맞춤 설계되거나 표준 라이브러리들로부터 취해질 수 있다. 다양한 구현들에서, 회로부는 적절하게 디지털 구성요소들, 아날로그 구성요소들, 또는 둘 모두의 조합을 포함할 수 있다. 특정 유형들의 회로들은 일반적으로 "유닛들"(예를 들어, 디코드 유닛, 산술 로직 유닛(ALU), 기능 유닛, 메모리 관리 유닛(MMU) 등)로 지칭될 수 있다. 그러한 유닛들은 또한 회로들 또는 회로부를 지칭한다.
따라서, 도면들에 예시되고 본 명세서에서 설명된 개시된 회로들/유닛들/구성요소들 및 다른 요소들은 이전 단락에서 설명된 것들과 같은 하드웨어 요소들을 포함한다. 많은 경우들에서, 특정 회로 내의 하드웨어 요소들의 내부 배열은 그 회로의 기능을 설명함으로써 특정될 수 있다. 예를 들어, 특정 "디코드 유닛"은 "명령의 오피코드(opcode)를 프로세싱하고 그 명령을 복수의 기능 유닛들 중 하나 이상에 라우팅하는" 기능을 수행하는 것으로 설명될 수 있으며, 이는 디코드 유닛이 이러한 기능을 수행하도록 "구성됨"을 의미한다. 이러한 기능의 규격은, 컴퓨터 분야의 당업자들에게, 회로에 대한 가능한 구조체들의 세트를 암시하기에 충분하다.
다양한 실시예들에서, 이전 단락에서 논의된 바와 같이, 회로들, 유닛들, 및 이들이 구현하도록 구성된 기능들 또는 동작들에 의해 정의된 다른 요소들, 배열 및 그러한 회로들/유닛들/구성요소들은 서로에 대해 그리고 이들이 상호작용하는 방식으로, 마이크로아키텍처 정의의 물리적 구현을 형성하도록 집적 회로에서 궁극적으로 제조되거나 FPGA로 프로그래밍되는 하드웨어의 마이크로아키텍처 정의를 형성한다. 따라서, 마이크로아키텍처 정의는 많은 물리적 구현들이 유도될 수 있는 구조체로서 당업자들에 의해 인식되며, 이들 모두는 마이크로아키텍처 정의에 의해 설명된 더 넓은 구조체에 속한다. 즉, 본 개시내용에 따라 공급되는 마이크로아키텍처 정의를 제공받는 당업자는, 과도한 실험 없이 그리고 통상의 기술의 적용으로, 회로들/유닛들/구성요소들의 디스크립션을 Verilog 또는 VHDL과 같은 하드웨어 디스크립션 언어(HDL)로 코딩함으로써 구조체를 구현할 수 있다. HDL 디스크립션은 종종, 기능적으로 보일 수 있는 방식으로 표현된다. 그러나, 본 분야의 당업자들에게, 이러한 HDL 디스크립션은 회로, 유닛 또는 구성요소의 구조체를 다음 레벨의 구현 세부사항으로 변환하는 데 사용되는 방식이다. 그러한 HDL 디스크립션은 (통상적으로 합성가능하지 않은) 거동 코드, (거동 코드와는 대조적으로, 통상적으로 합성가능한) 레지스터 전송 언어(RTL) 코드, 또는 구조적 코드(예를 들어, 로직 게이트들 및 그들의 연결을 특정하는 넷리스트)의 형태를 취할 수 있다. HDL 디스크립션은 주어진 집적 회로 제조 기술을 위해 설계된 셀들의 라이브러리에 대해 순차적으로 합성될 수 있고, 타이밍, 전력 및 다른 이유들로 인해 수정되어 최종 설계 데이터베이스를 생성할 수 있으며, 이는 파운드리(foundry)로 송신되어 마스크들을 생성하고 궁극적으로 집적 회로를 생성할 수 있다. 일부 하드웨어 회로들 또는 그의 부분들은 또한 회로도 편집기(schematic editor)로 맞춤 설계될 수 있고 합성된 회로부와 함께 집적 회로 설계 내로 캡처될 수 있다. 집적 회로들은 트랜지스터들, 및 다른 회로 요소들(예를 들어, 커패시터들, 저항기들, 인덕터들 등과 같은 수동 요소들) 및 트랜지스터들과 회로 요소들 사이의 상호연결부를 포함할 수 있다. 일부 실시예들은 하드웨어 회로를 구현하기 위해 함께 조합된 다수의 집적 회로들을 구현할 수 있고/있거나 일부 실시예들에서는 이산 요소들이 사용될 수 있다. 대안적으로, HDL 설계는 FPGA(Field Programmable Gate Array)와 같은 프로그래밍가능 로직 어레이로 합성될 수 있으며 FPGA에서 구현될 수 있다. 회로들의 그룹의 설계와 이들 회로들의 후속 저레벨 구현 사이의 이러한 분리는 일반적으로, 회로 또는 로직 설계자가 회로가 무엇을 하도록 구성되는지의 설명을 넘어서 저레벨 구현에 대한 특정 세트의 구조체들을 특정하지 않는 시나리오를 도출하는데, 이는 이러한 프로세스가 회로 구현 프로세스의 상이한 스테이지에서 수행되기 때문이다.
회로 요소들의 많은 상이한 저레벨 조합들이 회로의 동일한 규격을 구현하는 데 사용될 수 있다는 사실은 그 회로에 대한 다수의 등가 구조체들을 초래한다. 언급된 바와 같이, 이러한 저레벨 회로 구현들은 제조 기술의 변화들, 집적 회로를 제조하기 위해 선택된 파운드리, 특정 프로젝트를 위해 제공된 셀들의 라이브러리 등에 따라 변할 수 있다. 많은 경우들에서, 이들 상이한 구현들을 생성하기 위해 상이한 설계 도구들 또는 방법론들에 의해 이루어지는 선택들은 임의적일 수 있다.
게다가, 회로의 특정 기능 규격의 단일 구현이 주어진 실시예에 대해 많은 수의 디바이스들(예를 들어, 수백만 개의 트랜지스터들)을 포함하는 것이 일반적이다. 따라서, 엄청난 체적의 이러한 정보는, 등가의 가능한 구현들의 방대한 어레이는 말할 것도 없이, 단일 실시예를 구현하는 데 사용되는 저레벨 구조체의 완전한 설명을 제공하는 것을 비실용적으로 만든다. 이러한 이유로, 본 개시내용은 업계에서 일반적으로 사용되는 기능적 속기(shorthand)를 사용하여 회로들의 구조체를 설명한다.

Claims (12)

  1. 장치로서,
    다수의 하드웨어 회로들;
    상기 다수의 하드웨어 회로들에 전력을 공급하기 위한 전력을 생성하도록 구성된 프론트 엔드 전력 공급부 - 상기 프론트 엔드 전력 공급부는 전력 스테이지들의 세트를 포함하고, 상기 전력 스테이지들은 상기 전력의 각자의 부분들을 생성하도록 그리고 서로 독립적으로 활성화 및 비활성화되도록 구성됨 -;
    상기 프론트 엔드 전력 공급부의 출력에 연결되고 상기 하드웨어 회로들에 조정가능한 동작 전압들을 제공하도록 구성된 다수의 전압 조절기들; 및
    제어 회로부를 포함하고, 상기 제어 회로부는,
    상기 하드웨어 회로들로부터의 요청들에 응답하여, 상기 전압 조절기들을 제어하여 상기 조정가능한 동작 전압들의 설정을 상기 하드웨어 회로들에 공급하도록;
    상기 조정가능한 동작 전압들의 설정을, 상기 프론트 엔드 전력 공급부의 사전정의된 일부 개수의 전력 스테이지들에 의해 프로비저닝에 안전한 것으로 특정된 하나 이상의 안전 설정들에 비교하도록; 그리고
    상기 동작 전압들의 설정이 상기 안전 설정들 중 적어도 하나에 매칭되는 동안에만 활성 전력 스테이지들의 개수가 상기 사전정의된 일부 개수로 설정됨을 보장하는 것을 포함하여, 상기 전력 스테이지들을 적응적으로 활성화 및 비활성화하도록 구성되는, 장치.
  2. 제1항에 있어서, 상기 전력 스테이지들을 적응적으로 활성화 및 비활성화하기 위해, 상기 제어 회로부는,
    상기 설정이 상기 안전 설정들 중 적어도 하나와 매칭되는 시간들에, 상기 프론트 엔드 전력 공급부를 제어하여 상기 사전정의된 일부 개수의 전력 스테이지들만이 활성이게 하도록; 그리고
    상기 설정이 상기 안전 설정들 중 어떠한 것과도 매칭되지 않는 다른 시간들에, 상기 프론트 엔드 전력 공급부를 제어하여 상기 사전정의된 일부 개수 초과의 전력 스테이지들이 활성이게 하도록 추가로 구성되는, 장치.
  3. 제1항 또는 제2항에 있어서, 상기 전력 스테이지들을 적응적으로 활성화 및 비활성화하는 것에 더하여, 상기 제어 회로부는 상기 전력 스테이지들 중 하나 이상을 정상 모드와 대기 모드 사이에서 적응적으로 전환하도록 구성되는, 장치.
  4. 제1항 또는 제2항에 있어서, 상기 사전정의된 일부 개수의 전력 스테이지들은 단일 전력 스테이지인, 장치.
  5. 제1항 또는 제2항에 있어서, 상기 활성 전력 스테이지들의 개수가 상기 사전정의된 일부 개수인 동안, 상기 제어 회로부는,
    상기 하드웨어 회로들 중 하나로부터의 요청이 상기 동작 전압들의 설정을 안전 설정으로부터 불안전 설정으로 변경할 것으로 예상됨을 검출하도록; 그리고
    상기 전압 조절기들을 제어하여 상기 활성 전력 스테이지들의 개수를 증가시킨 후에만 상기 불안전 설정으로 스위칭하도록 구성되는, 장치.
  6. 제1항 또는 제2항에 있어서, 상기 안전 설정들 중 적어도 하나는 하나 이상의 특정된 온도 임계치들에 의존하고, 상기 조정가능한 동작 전압들의 설정을 상기 안전 설정들에 비교할 시, 상기 제어 회로부는 상기 장치와 연관된 하나 이상의 온도들을 상기 하나 이상의 온도 임계치들에 비교하도록 구성되는, 장치.
  7. 방법으로서,
    전력 스테이지들의 세트를 포함하는 프론트 엔드 전력 공급부를 사용하여 다수의 하드웨어 회로들에 전력을 공급하기 위한 전력을, 상기 전력 스테이지들을 사용하여 상기 전력의 각자의 부분들을 생성함으로써 생성하는 단계;
    상기 프론트 엔드 전력 공급부의 출력에 연결된 다수의 전압 조절기들을 사용하여 상기 하드웨어 회로들에 조정가능한 동작 전압들을 제공하는 단계;
    상기 하드웨어 회로들로부터의 요청들에 응답하여, 상기 전압 조절기들을 제어하여 상기 조정가능한 동작 전압들의 설정을 상기 하드웨어 회로들에 공급하는 단계;
    상기 조정가능한 동작 전압들의 설정을, 상기 프론트 엔드 전력 공급부의 사전정의된 일부 개수의 전력 스테이지들에 의해 프로비저닝에 안전한 것으로 특정된 하나 이상의 안전 설정들에 비교하는 단계; 및
    상기 동작 전압들의 설정이 상기 안전 설정들 중 적어도 하나에 매칭되는 동안에만 활성 전력 스테이지들의 개수가 상기 사전정의된 일부 개수로 설정됨을 보장하는 것을 포함하여, 상기 전력 스테이지들을 적응적으로 활성화 및 비활성화하는 단계를 포함하는, 방법.
  8. 제7항에 있어서, 상기 전력 스테이지들을 적응적으로 활성화 및 비활성화하는 단계는,
    상기 설정이 상기 안전 설정들 중 적어도 하나와 매칭되는 시간들에, 상기 프론트 엔드 전력 공급부를 제어하여 상기 사전정의된 일부 개수의 전력 스테이지들만이 활성이게 하는 단계; 및
    상기 설정이 상기 안전 설정들 중 어떠한 것과도 매칭되지 않는 다른 시간들에, 상기 프론트 엔드 전력 공급부를 제어하여 상기 사전정의된 일부 개수 초과의 전력 스테이지들이 활성이게 하는 단계를 포함하는, 방법.
  9. 제7항 또는 제8항에 있어서, 상기 전력 스테이지들을 적응적으로 활성화 및 비활성화하는 것에 더하여, 상기 전력 스테이지들 중 하나 이상을 정상 모드와 대기 모드 사이에서 적응적으로 전환하는 단계를 포함하는, 방법.
  10. 제7항 또는 제8항에 있어서, 상기 사전정의된 일부 개수의 전력 스테이지들은 단일 전력 스테이지인, 방법.
  11. 제7항 또는 제8항에 있어서, 상기 활성 전력 스테이지들의 개수가 상기 사전정의된 일부 개수인 동안,
    상기 하드웨어 회로들 중 하나로부터의 요청이 상기 동작 전압들의 설정을 안전 설정으로부터 불안전 설정으로 변경할 것으로 예상됨을 검출하는 단계; 및
    상기 전압 조절기들을 제어하여 상기 활성 전력 스테이지들의 개수를 증가시킨 후에만 상기 불안전 설정으로 스위칭하는 단계를 포함하는, 방법.
  12. 제7항 또는 제8항에 있어서, 상기 안전 설정들 중 적어도 하나는 하나 이상의 특정된 온도 임계치들에 의존하고, 상기 조정가능한 동작 전압들의 설정을 상기 안전 설정들에 비교하는 단계는 상기 장치와 연관된 하나 이상의 온도들을 상기 하나 이상의 온도 임계치들에 비교하는 단계를 포함하는, 방법.
KR1020247006683A 2021-09-14 2022-06-19 페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩 KR20240034854A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US202163243754P 2021-09-14 2021-09-14
US63/243,754 2021-09-14
US17/572,664 US11709512B2 (en) 2021-09-14 2022-01-11 System-on-chip with power supply mode having reduced number of phases
US17/572,664 2022-01-11
PCT/US2022/034125 WO2023043514A1 (en) 2021-09-14 2022-06-19 System-on-chip with power supply mode having reduced number of phases

Publications (1)

Publication Number Publication Date
KR20240034854A true KR20240034854A (ko) 2024-03-14

Family

ID=82839252

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020247006683A KR20240034854A (ko) 2021-09-14 2022-06-19 페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩

Country Status (4)

Country Link
US (1) US20230280772A1 (ko)
KR (1) KR20240034854A (ko)
DE (1) DE112022003384T5 (ko)
WO (1) WO2023043514A1 (ko)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040061380A1 (en) 2002-09-26 2004-04-01 Hann Raymond E. Power management system for variable load applications
US7161339B2 (en) 2003-08-20 2007-01-09 Broadcom Corporation High voltage power management unit architecture in CMOS process
US7869228B2 (en) * 2007-06-29 2011-01-11 Intel Corporation Power delivery systems and methods with dynamic look-up table
US8271819B2 (en) * 2009-03-31 2012-09-18 Dell Products L.P. Methods and systems for initiating power to an information handling system
US9570908B2 (en) 2012-02-09 2017-02-14 Silicon Laboratories Inc. Power management system
US9240722B2 (en) * 2014-06-19 2016-01-19 Dell Products Lp Methods and systems for improving light load efficiency for power stages of multi-phase voltage regulator circuits
US9891700B2 (en) * 2015-10-02 2018-02-13 Infineon Technologies Austria Ag Power management for datacenter power architectures
US11016551B2 (en) * 2019-03-29 2021-05-25 Microsoft Technology Licensing, Llc Thermal rotation of power supply phases
US11710726B2 (en) * 2019-06-25 2023-07-25 Microsoft Technology Licensing, Llc Through-board power control arrangements for integrated circuit devices

Also Published As

Publication number Publication date
WO2023043514A1 (en) 2023-03-23
US20230280772A1 (en) 2023-09-07
DE112022003384T5 (de) 2024-04-18

Similar Documents

Publication Publication Date Title
US8793512B2 (en) Method and apparatus for thermal control of processing nodes
US9261949B2 (en) Method for adaptive performance optimization of the soc
US8924758B2 (en) Method for SOC performance and power optimization
CN106415521B (zh) 多处理动态非对称和对称模式切换的硬件设备和方法
EP3198364B1 (en) Novel low cost, low power high performance smp/asmp multiple-processor system
US20230214350A1 (en) Die-to-die Dynamic Clock and Power Gating
KR20240034854A (ko) 페이즈들의 수가 감소된 전력 공급 모드를 갖는 시스템-온-칩
US11709512B2 (en) System-on-chip with power supply mode having reduced number of phases
US11528016B2 (en) Low latency comparator with local clock circuit
CN117897672A (zh) 带有具有减少数量的相的功率源模式的片上系统
JP2012084123A (ja) メモリ制御装置、メモリ制御方法
US11822411B2 (en) Telemetry push aggregation
US20240104280A1 (en) Functional Circuit Block Harvesting in Integrated Circuits
US20240038310A1 (en) Non-Volatile Memory Power Cycle Protection Mechanism
KR20240033275A (ko) 스케일링가능한 계층적 전력 전달 시스템
US20230109984A1 (en) Request and Floor Interface for Current Control with Correctness in an SOC
US20230101217A1 (en) Global Integrated Circuit Power Control
US20240085968A1 (en) Dynamic Interface Circuit to Reduce Power Consumption
KR20230175316A (ko) 멀티-다이 전력 동기화
WO2023048930A1 (en) Global integrated circuit power control

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal