KR20230036589A - 시스템-온-칩 및 그의 동작 방법 - Google Patents

시스템-온-칩 및 그의 동작 방법 Download PDF

Info

Publication number
KR20230036589A
KR20230036589A KR1020210118488A KR20210118488A KR20230036589A KR 20230036589 A KR20230036589 A KR 20230036589A KR 1020210118488 A KR1020210118488 A KR 1020210118488A KR 20210118488 A KR20210118488 A KR 20210118488A KR 20230036589 A KR20230036589 A KR 20230036589A
Authority
KR
South Korea
Prior art keywords
core
frequency
information
processor
operating
Prior art date
Application number
KR1020210118488A
Other languages
English (en)
Inventor
박충훈
박종래
박범규
이영태
한동희
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020210118488A priority Critical patent/KR20230036589A/ko
Priority to US17/720,483 priority patent/US20230071632A1/en
Priority to CN202211079623.3A priority patent/CN115774485A/zh
Publication of KR20230036589A publication Critical patent/KR20230036589A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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/66Regulating electric power
    • 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
    • G05F1/462Regulating voltage or current wherein the variable actually regulated by the final control device is dc as a function of the requirements of the load, e.g. delay, temperature, specific voltage/current characteristic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • 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)
  • Computer Hardware Design (AREA)
  • Electromagnetism (AREA)
  • Automation & Control Theory (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)

Abstract

SoC(System-on-Chip) 및 그의 동작 방법이 개시된다. 제 1 코어 및 DVFS(Dynamic Voltage and Frequency Scaling) 모듈을 포함하는 프로세서 및 상기 제 1 코어로 동작 클럭을 공급하는 CMU(Clock Management Unit)을 포함하는 SoC의 동작 방법은: 상기 제 1 코어의 요구 성능을 획득하는 단계; 상기 요구 성능을 만족하는 가용 주파수들을 찾는 단계; 상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계; 상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계; 상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하는 단계; 및 상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하는 단계를 포함할 수 있다.

Description

시스템-온-칩 및 그의 동작 방법{SYSTEM-ON-CHIP AND OPERATING METHOD THEREOF}
본 개시는 시스템-온-칩 및 그의 동작 방법에 관한 것으로, 좀 더 구체적으로는 시스템-온-칩에 의해 DVFS(Dynamic Voltage and Frequency Scaling)를 수행하는 방법에 관한 것이다.
시스템-온-칩(System-on-Chip; SoC)은 컴퓨팅 시스템 또는 다른 컴퓨팅 시스템을 구현하기 위해 CPU(central processing unit), 메모리, 인터페이스(interface), 디지털 신호 처리 회로, 및 아날로그 신호 처리 회로 등 다양한 기능 블록들을 하나의 반도체 집적 회로에 집적하는 기술 또는 상기 기술에 따라 집적된 하나의 집적 회로(integrated circuit; IC)를 지칭할 수 있다.
시스템-온-칩의 전력 관리를 위해 DVFS(dynamic voltage & frequency scaling) 기술이 적용될 수 있다. DVFS 기술은 동작 주파수(operating frequency) 및 동작 전압(operating voltage)을 동적으로 조절함으로써 전력 소모를 감소시킬 수 있는 기술을 나타낸다. 예를 들어, 시스템-온-칩의 동작 주파수 또는 동작 전압이, 시스템의 동작에 필요한 성능에 기반하여 동적으로 스케일링될 수 있다. 모바일 장치에 탑재된 시스템-온-칩에 있어서, 컴퓨팅 시스템이 저전력으로 동작할 것이 요구되고 있다. 이에 따라, 컴퓨팅 시스템의 프로세서의 전력 소모가 감소될 필요가 있다.
본 개시의 목적은 DVFS(Dynamic Voltage and Frequency Scaling)를 수행하는 시스템-온-칩 및 그의 동작 방법을 제공하는 데 있다.
본 개시의 몇몇 실시 예들에 따른 제 1 코어 및 DVFS(Dynamic Voltage Module) 모듈을 포함하는 프로세서 및 상기 제 1 코어로 동작 클럭을 공급하는 CMU(Clock Management Unit)을 포함하는 SoC(System-on-Chip)의 동작 방법은: 상기 제 1 코어의 요구 성능을 획득하는 단계; 상기 요구 성능을 만족하는 가용 주파수들을 찾는 단계; 상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계; 상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계; 상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하는 단계; 및 상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하는 단계를 포함할 수 있다.
본 개시의 몇몇 실시 예들에 따른 제 1 코어 및 제 2 코어를 포함하는 제 1 클러스터 그리고 DVFS(Dynamic Voltage Module) 모듈을 포함하는 프로세서 및 상기 제 1 코어로 동작 클럭을 공급하는 CMU(Clock Management Unit)을 포함하는 SoC(System-on-Chip)의 동작 방법은: 상기 제 1 코어의 요구 성능을 획득하는 단계; 상기 요구 성능을 만족하는 가용 주파수들을 찾는 단계; 상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계; 상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계; 상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하는 단계; 및 상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하는 단계를 포함하되, 상기 정보는 상기 제 1 클러스터에 포함된 제 2 코어의 동작 전압의 레벨을 포함할 수 있다
본 개시의 몇몇 실시 예들에 따른 SoC(System-on-Chip)는: 제 1 코어를 포함하는 프로세서; 상기 프로세서의 제어 하에, 동작 클럭을 생성하고 그리고 상기 동작 클럭을 상기 제 1 코어로 공급하는 CMU(Clock Management Unit); 및 DVFS(Dynamic Voltage and Frequency Scaling) 프로그램을 저장하는 메모리를 포함하되, 상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금: 상기 제 1 코어의 요구 성능을 획득하고, 상기 요구 성능을 만족하는 가용 주파수들을 찾고, 상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하고, 상기 정보에 기반하여, 에너지 소모를 계산하기 위한 정보를 계산하고, 상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하고, 그리고 상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하도록 야기할 수 있다.
본 개시의 몇몇 실시 예들에 따르면, DVFS가 수행될 때, 요구 성능을 만족하는 가용 주파수들 각각에 대해 에너지 소모가 워크로드 수행 시간, 주파수 및 동작 전압 사이의 관계, 및 정적 전력에 영향을 미치는 다양한 요소들에 기반하여 계산될 수 있다. 컴퓨팅 시스템에 포함된 특정 코어의 동작 주파수는 그 에너지 소모가 최소인 주파수로 스케일링될 수 있다. 이에 따라, 컴퓨팅 시스템의 워크로드 처리 시간 및 에너지 소모가 최소화될 수 있다.
도 1은 본 개시의 몇몇 실시 예들에 따라, 컴퓨팅 시스템의 블록도를 도시한다.
도 2는 본 개시의 몇몇 실시 예들에 따라, 도 1의 컴퓨팅 시스템에 구현되는 DVFS 모듈을 도시한다.
도 3은 본 개시의 몇몇 실시 예들에 따라, DVFS를 수행하는 방법의 순서도를 도시한다.
도 4는 본 개시의 몇몇 실시 예들에 따라, 주파수 테이블을 도시한다.
도 5는 본 개시의 몇몇 실시 예들에 따라, 전압 테이블을 도시한다.
도 6은 본 개시의 몇몇 실시 예들에 따라, 누설 전력 테이블을 도시한다.
도 7은 본 개시의 몇몇 실시 예들에 따라, 전력 테이블을 도시한다.
도 8은 본 개시의 몇몇 실시 예들에 따라, 프로세서의 블록도를 도시한다.
도 9는 본 개시의 몇몇 실시 예들에 따라, 전자 장치의 블록도를 도시한다.
이하에서, 본 개시의 기술 분야에서 통상의 지식을 가진 자가 본 개시를 용이하게 실시할 수 있을 정도로, 본 개시의 실시 예들이 명확하고 상세하게 기재될 것이다.
이하에서, 첨부한 도면들을 참조하여, 본 개시의 몇몇 실시 예들을 보다 상세하게 설명하고자 한다. 본 개시를 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 유사한 구성요소에 대해서는 유사한 참조부호가 사용되고, 그리고 유사한 구성요소에 대해서 중복된 설명은 생략된다.
도 1은 본 개시의 몇몇 실시 예들에 따라, 컴퓨팅 시스템(10)의 블록도를 도시한다. 도 1을 참조하면, 컴퓨팅 시스템(10)은 SoC(System-on-Chip; 100), PMIC(Power Management Integrated Circuit; 11) 및 스토리지 장치(12)를 포함할 수 있다. 몇몇 실시 예들에 있어서, 컴퓨팅 시스템(10)은 컴퓨터, 노트북, 핸드폰, 스마트폰, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 장치, 웨어러블(wearable) 장치, IoT(Internet of Things) 장치, IoE(Internet of Everything) 장치, E-book, VR(Virtual Reality) 장치, 또는 AR(Augmented Reality) 장치 등과 같은 다양한 전자 장치들 중 적어도 하나를 포함하는 컴퓨팅 시스템으로서 구현될 수 있다.
SoC(100)는 프로세서(110), RAM(Random Access Memory; 120), CMU(Clock Management Unit; 130), TMU(Temperature Management Unit; 140), GPU(Graphics Processing Unit; 150), 스토리지 컨트롤러(160), 및 버스(170)를 포함할 수 있다.
프로세서(110)는 SoC(100)의 동작에 필요한 다양한 연산들을 수행할 수 있다. 예를 들어, 프로세서(110)는 RAM(120)에 로드된 소프트웨어, 펌웨어, 명령어, 또는 프로그램 코드 등을 실행할 수 있다. 프로세서(110)는 CMU(130)로부터 출력되는 동작 클럭에 응답하여, 상기 소프트웨어, 펌웨어, 명령어, 또는 프로그램 코드 등을 실행할 수 있다. 프로세서(110)는 RAM(120)에 로드되는 운영 체제(Operating System)를 실행할 수 있다. 프로세서(110)는 운영 체제 기반에서 구동되는 다양한 응용 프로그램들을 실행할 수 있다. 프로세서(110)는 연산들의 결과를 RAM(120)에 저장하거나, 또는 GPU(150)로 전송할 수 있다. 예를 들어, 프로세서(110)는 그래픽스 데이터의 처리를 GPU(150)로 요청할 수 있다.
프로세서(110)는 하나 이상의 코어들(111) 및 DVFS(Dynamic Voltage and Frequency Scaling; 동작 전압 주파수 스케일링) 모듈(112)을 포함할 수 있다. 하나 이상의 코어들(111)은 동종(homogeneous) 또는 이종(heterogeneous)일 수 있다. 프로세서(110)가 적어도 두 개의 코어들을 포함할 때, 프로세서(110)는 멀티 코어 프로세서로서 지칭될 수 있고, 그리고 SoC(100)는 멀티 코어 시스템으로서 지칭될 수 있다. 하나 이상의 코어들(111) 각각은 독립적으로 구동 가능한 프로세서 코어로서 구현될 수 있다. 예를 들어, 하나 이상의 코어들(111) 각각은 프로그램 명령어들을 독립적으로 읽고 그리고 실행할 수 있다.
하나 이상의 코어들(111)은 독립된 동작 클럭 및/또는 독립된 공급 전원에 의해서 동작하는 복수의 클러스터들로 그룹화될 수 있다. 동일한 클러스터에 속하는 코어들은 동일한 동작 클럭에 응답하여 동작하는 클럭 도메인(clock domain) 및/또는 동일한 공급 전원에 응답하여 동작하는 파워 도메인(power domain; 또는 전압 도메인)에 포함될 수 있다. 그룹화된 하나 이상의 코어들(111)은 도 8을 참조하여 구체적으로 후술될 것이다.
DVFS 모듈(112)은 하나 이상의 코어들(111) 각각의 동작 주파수(예를 들어, 하나 이상의 코어들(111) 각각에 제공되는 동작 클럭의 주파수) 또는 하나 이상의 코어들(111) 각각의 동작 전압(예를 들어, 하나 이상의 코어들(111) 각각에 제공되는 공급 전원의 전압 레벨)을 DVFS 방식으로 제어할 수 있다. DVFS 모듈(112)은 대상 코어의 요구 성능을 고려하여, 그 코어의 동작 주파수를 결정할 수 있다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 대상 코어의 에너지 소모를 최소화하는 주파수를 코어의 동작 주파수로서 결정할 수 있다. 예를 들어, DVFS 모듈(112)은 코어의 워크로드(workload) 수행 시간, 코어의 동작 주파수 및 동작 전압 사이의 관계, 온도 등과 같이 정적 전력의 크기에 영향을 미치는 다양한 요소들 등을 종합적으로 고려하여, 코어의 요구 성능을 만족하는 가용 주파수들 각각에 대한 에너지 소모를 계산할 수 있다. DVFS 모듈(112)은 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하고, 그리고 최적 주파수를 코어의 동작 주파수로서 설정할 수 있다. 이에 따라, 코어의 워크로드 처리 시간 및 에너지 소모가 최소화(또는 최적화)될 수 있다. DVFS 모듈(112)에 기반하여 수행되는 동작 주파수의 제어는 구체적으로 후술될 것이다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 RAM(120)에 로드되고 프로세서(110)에 의해 실행되는 소프트웨어(또는 프로그램) 형태로서 구현될 수 있다. 이러한 실시 예들에 있어서, DVFS 모듈(112)은 하나 이상의 코어들(111), RAM(120), CMU(130), 또는 PMIC(11) 중 적어도 하나를 제어할 수 있고, 이때 DVFS 모듈(112) 및 각 구성 요소 사이에는 운영 체제 및/또는 미들웨어(middleware)가 개입될 수 있다. 또는, 몇몇 실시 예들에 있어서, DVFS 모듈(112)은 별개의 하드웨어 형태, 또는 하드웨어와 소프트웨어의 조합의 형태로서 구현될 수도 있다.
RAM(120)은 프로세서(110) 및 GPU(150)가 데이터를 처리하는 데 필요한 정보 또는 데이터를 저장할 수 있다. RAM(120)은 프로세서(110) 및 GPU(150)에 의해 처리된 데이터를 저장할 수 있다. RAM(120)은 프로세서(110) 또는 GPU(150)에 의해 실행될 수 있는 소프트웨어, 펌웨어, 프로그램 코드, 또는 명령어들을 저장할 수 있다. 예를 들어, RAM(120)은 프로세서(110)에 실행될 수 있는 DVFS 프로그램을 저장할 수 있다. RAM(120)은 SRAM(Static Random Access Memory) 또는 DRAM(Dynamic Random Access Memory) 등과 같은 휘발성 메모리, 또는 플래시 메모리, PRAM(Phase-change RAM), MRAM(Magneto-resistive RAM), ReRAM(Resistive RAM), FRAM(Ferro-electric RAM) 등과 같은 불휘발성 메모리를 포함할 수 있다. 몇몇 실시 예들에 있어서, RAM(120)은 버퍼 메모리, 캐시 메모리, 또는 워킹 메모리로서 지칭될 수 있다.
CMU(130)는 동작 클럭을 생성할 수 있다. CMU(130)에 의해 생성되는 동작 클럭은 SoC(100)의 구성 요소들로 제공될 수 있다. 예를 들어, 프로세서(110), GPU(150), 또는 스토리지 컨트롤러(160) 등은 CMU(130)로부터 제공되는 동작 클럭에 응답하여 동작할 수 있다. CMU(130)에 의해 생성되는 동작 클럭의 주파수는 DVFS 모듈(112)의 제어에 따라 조절될 수 있다. 몇몇 실시 예들에 있어서, CMU(130)는 위상 동기 루프(Phase Locked Loop; PLL), 지연 동기 루프(Delayed Locked Loop; DLL), 또는 크리스탈 오실레이터 등과 같은 동작 클럭을 생성하기 위한 회로 또는 장치를 포함할 수 있다.
TMU(140)는 SoC(100)의 온도를 제어할 수 있다. 예를 들어, SoC(100)는 SoC(100) 또는 그의 구성 요소들(예를 들어 프로세서(110), 또는 코어들(111) 중 어느 하나)의 온도를 측정하기 위한 온도 센서(미도시)를 포함할 수 있다. TMU(140)는 온도 센서로부터 제공되는 온도 정보에 기초하여 동적 열 관리(Dynamic Thermal Management; DTM)를 위한 제어 신호를 생성할 수 있다. 예를 들어, TMU(140)는 온도 센서로부터 제공되는 온도 정보에 응답하여, SoC(100)의 성능 또는 SoC(100)의 전력 레벨을 제한하기 위한 제어 신호를 생성할 수 있다. TMU(140)에 의해 생성된 제어 신호에 응답하여, SoC(100)의 온도가 하강할 수 있다. 몇몇 실시 예들에 있어서, TMU(140)는 온도 센서로부터 제공되는 온도 정보를 DVFS 모듈(112)로 제공할 수 있다.
GPU(150)는 프로세서(110)로부터 전송된 데이터 및 RAM(120)에 저장된 데이터를 이용하여 그래픽스 처리와 연관된 다양한 연산들을 수행할 수 있다. 예를 들어, GPU(150)는 RAM(120) 또는 GPU(150)의 내부 메모리(미도시)에 저장된 프로그램 코드들이나 명령어들, 또는 프로세서(110)로부터 제공되는 컴파일된 코드들 등을 실행함으로써, 그래픽스 데이터를 처리(또는 생성)할 수 있다. 몇몇 실시예에서 GPU(150)는 인공지능 (Artificial Intelligence) 또는 뉴럴 네트워크 (Neural Network) 구현을 위한 연산에 사용될 수 있다.
스토리지 컨트롤러(160)는 프로세서(110)의 제어 하에, 스토리지 장치(12)를 액세스할 수 있다. 예를 들어, 프로세서(110) 또는 GPU(150)에 의해 처리된 데이터는 스토리지 컨트롤러(160)를 통해 스토리지 장치(12)에 저장될 수 있고, 그리고 스토리지 장치(12)에 저장된 데이터는 스토리지 컨트롤러(160)를 통해 프로세서(110) 또는 GPU(150)로 제공될 수 있다.
PMIC(11; 전력 관리 집적 회로)는 SoC(100)로 동작 전압을 제공할 수 있다. 예를 들어, PMIC(11)는 DVFS 모듈(112)의 제어 하에, 프로세서(110)의 하나 이상의 코어들(111) 각각에서 사용되기 위한 동작 전압을 생성하고, 그리고 생성된 동작 전압을 하나 이상의 코어들(111) 각각으로 제공할 수 있다.
도 1의 실시 예에서, PMIC(11)는 SoC(100)의 외부에 구현되나, 다른 실시 예들에 있어서, PMIC(11)는 SoC(100)의 내부에 포함될 수 있다.
스토리지 장치(12)는 SoC(100)의 저장 매체(Storage Medium)으로서 제공될 수 있다. 스토리지 장치(12)는 응용 프로그램들, 운영 체제 이미지, 및 다양한 데이터를 저장할 수 있다. 스토리지 장치(12)는 MMC, eMMC, SD, MicroSD 등과 같은 메모리 카드로서 제공될 수 있다. 또는, 스토리지 장치(12)는 NAND 플래시 메모리, NOR 플래시 메모리, PRAM, MRAM, ReRAM, FRAM 등과 같은 불휘발성 메모리를 포함할 수 있다. 몇몇 실시 예들에 있어서, 도시된 실시 예와 달리, 스토리지 장치(12)는 SoC(100)의 내부에 구비되는(또는 내장되는) 메모리로서 구현될 수 있다.
도 2는 본 개시의 몇몇 실시 예들에 따라, 도 1의 컴퓨팅 시스템(10)에 구현되는 DVFS 모듈(112)을 도시한다. 도 1 및 도 2를 참조하면, 도 2는 도 1의 컴퓨팅 시스템(10)의 예시적인 소프트웨어 구조를 도시할 수 있다. 도 2에 도시된 실시 예에서, DVFS 모듈(112)은 RAM(120)에 로드되고 프로세서(110)에 의해 실행되는 소프트웨어 형태로서 도시되었다.
RAM(120)에 로드되고 프로세서(110)에 의해서 구동되는 컴퓨팅 시스템(10)의 소프트웨어 계층 구조는 간략히 응용 프로그램들(APP) 및 운영 체제(OS)의 커널(Kernel; KER)을 포함할 수 있다. 몇몇 실시 예들에 있어서, 운영 체제(OS)에는 메모리나 모뎀, 이미지 처리 장치 등과 같은 다양한 장치들을 관리하는 장치 드라이버(Device Driver)가 더 포함될 수 있다.
응용 프로그램들(APP)은 기본적인 서비스로서 구동되거나, 사용자의 요청에 의해서 구동되는 상위 계층의 소프트웨어일 수 있다. 사용자로 다양한 서비스를 제공하기 위하여, 동시에 복수의 응용 프로그램들(예를 들어, 응용 프로그램들(APP0, APP1, APP2))이 실행될 수 있다. 실행되는 응용 프로그램들(APP0, APP1, APP2) 각각은 RAM(120)에 로드된 후 프로세서(110)에 의해서 실행될 수 있다. 예를 들어, 사용자에 의해서 동영상 파일의 재생이 요청되면, 동영상을 재생하기 위한 응용 프로그램(예를 들면, 비디오 플레이어)이 실행된다. 그러면, 실행된 플레이어는 사용자가 요청한 동영상 파일을 재생하기 위한 스토리지 장치(12)로의 읽기 요청(Read request) 또는 쓰기 요청(Write request)을 생성할 것이다.
커널(KER)은 운영 체제(OS)의 구성으로, 응용 프로그램들(APP) 및 하드웨어(Hardware) 사이에서 제어 동작을 수행할 수 있다. 커널(KER)은 프로그램의 실행, 인터럽트, 멀티 태스킹, 메모리 관리, 파일 시스템, 그리고 장치 드라이버 등을 포함할 수 있다. 도시된 실시 예에서, 커널(KER)은 DVFS 모듈(112) 및 태스크 스케줄러(SCH) 등을 포함할 수 있다.
태스크 스케줄러(SCH)는 프로세서(110)에 포함된 코어들(111) 각각에 대한 태스크 큐들을 모니터링하고 관리할 수 있다. 태스크 큐들은 복수의 태스크들이 동시에 수행될 때, 활성화된 태스크(Active task)들의 대기 열을 지칭할 수 있다. 예를 들어, 태스크 큐들에 존재하는 태스크들은 다른 태스크들에 비해서 프로세서(110)에 의해 곧(또는 다른 태스크들에 우선하여) 처리될 태스크들일 수 있다. 태스크 스케줄러(SCH)는 태스크 큐들에 로드된 태스크 정보를 참조하여 현재의 후속되는 프로세스를 결정할 수 있다. 태스크 스케줄러(SCH)는 태스크 큐들에 저장된 우선 순위 값들에 따라 컴퓨팅 자원(computing resources)의 우선 순위를 결정할 수 있다. 몇몇 실시 예들에 있어서, 운영 체제(OS)가 리눅스(Linux)에 기반할 때, 리눅스 기반 커널(KER) 상의 태스크 큐들은 코어들(111)에 각각 대응할 수 있다. 태스크 스케줄러(SCH)는 태스크 큐들의 각각에 대응하는 태스크들을 해당하는 코어에 할당할 수 있다.
몇몇 실시 예들에 있어서, 태스크 스케줄러(SCH)는 프로세서(110)에 포함된 코어들(111) 각각을 추적(또는 모니터링)할 수 있다. 태스크 스케줄러(SCH)는 추적 결과에 기반하여, 코어들(111) 각각에 대한 요구 성능을 계산할 수 있다. 예를 들어, 한 코어의 요구 성능은 그 코어의 현재 워크로드(또는 그 코어로 할당된 태스크)를 처리하는 데 필요한 성능일 수 있다. 해당 코어의 요구 성능은 그 코어에 의한 서비스 처리를 지연시키지 않기 위한 최소 동작 주파수를 포함할 수 있다. 최소 태스크 스케줄러(SCH)는 계산된 요구 성능을 DVFS 모듈(112)로 제공할 수 있다.
DVFS 모듈(112)은 DVFS 알고리즘을 수행할 수 있다. DVFS 모듈(112)은 태스크 스케줄러(SCH), SoC(100)의 다른 구성 요소들(예를 들어, TMU(140) 또는 CMU(130)), 또는 PMIC(11)로부터 제공되는 정보에 기반하여 DVFS 알고리즘을 수행함으로써, 프로세서(110)로 제공되는 동작 전압의 레벨 또는 동작 주파수를 결정할 수 있다.
DVFS 모듈(112)은 주파수가 조절되고자 하는 코어의 요구 성능, 각 코어로 제공될 수 있는 동작 클럭의 주파수 테이블, 각 코어로 공급될 수 있는 동작 전력의 전압 레벨 테이블, 현재 SoC(100) 또는 프로세서(110)의 온도 정보, 및 누설 전력 정보 등과 같은 다양한 정보를 획득할 수 있다. DVFS 모듈(112)은 획득된 정보에 기반하여 주파수가 조절되고자 하는 상기 코어의 가용 주파수들 각각에 대해 에너지 소모를 계산할 수 있다. DVFS 모듈(112)은 계산 결과에 기반하여 동작 클럭의 최적 주파수를 결정할 수 있다. 몇몇 실시 예들에 있어서, DVFS 모듈(112)은 프로세서(110)로 제공되는 동작 전압의 레벨 또는 동작 주파수를 조절하기 위한 소프트웨어 또는 하드웨어 등을 더 포함할 수 있다.
도 3은 본 개시의 몇몇 실시 예들에 따라, DVFS를 수행하는 방법의 순서도를 도시한다. 도 1 내지 도 3을 참조하면, SoC(100)의 프로세서(110)는 S101 내지 S105 단계들을 수행함으로써, 하나 이상의 코어들(111) 중 DVFS의 대상인 제 1 코어로 제공되는 동작 주파수를 선택할 수 있다. 몇몇 실시 예들에 있어서, DVFS 모듈(112)은 프로세서(110)로부터의 요청에 응답하여, S101 내지 S105 단계들을 수행할 수 있다. 예를 들어, 프로세서(110)는 DVFS 모듈(112)로 제 1 코어의 DVFS의 수행을 요청할 수 있다. 다른 예를 들어, 프로세서(110)는 DVFS 모듈(112)을 통해(또는 DVFS 모듈(112)을 실행하거나 제어함으로써), S101 내지 S105 단계들을 수행할 수 있다.
S101 단계에서, DVFS 모듈(112)은 제 1 코어의 요구 성능을 획득할 수 있다. 요구 성능은 제 1 코어에 의해 현재 수행되고자 하는 연산(또는 태스크, 서비스, 워크로드, 소프트웨어, 응용 프로그램 등)을 지연 없이(또는 주어진 처리 시간 내에) 수행하기 위한 최소한의 성능일 수 있다. 요구 성능은 제 1 코어로 제공되는 동작 주파수의 최소 주파수 또는 제 1 코어로 제공되는 동작 전압의 최소 레벨 등을 포함할 수 있다.
몇몇 실시 예들에 있어, DVFS 모듈(112)은 클라이언트(client)로부터 요구 성능을 획득할 수 있다. 클라이언트는 태스크 스케줄러(SCH) 또는 프로세서(110)를 포함할 수 있다. 클라이언트는 제 1 코어(또는 제 1 코어가 속한 도메인)의 상황(예를 들어, 워크로드)을 추적(또는 모니터링)할 수 있다. 클라이언트는 추적에 기반하여, 제 1 코어(또는 제 1 코어가 속한 도메인)가 요구하는 성능을 만족시킬 수 있는(또는 그러한 성능을 제공할 수 있는) 최소 주파수 등을 계산할 수 있다. 클라이언트는 계산된 최소 주파수를 DVFS 모듈(112)로 제공할 수 있다.
S102 단계에서, DVFS 모듈(112)은 요구 성능을 만족하는 가용 주파수들을 찾을 수 있다. 예를 들어, DVFS 모듈(112)은 CMU(130)로부터 제 1 코어로 공급되는 동작 주파수로서 사용될 수 있는 주파수들의 리스트(예를 들어, 도 4의 주파수 테이블(TBF))를 획득할 수 있다. DVFS 모듈(112)은 상기 리스트의 주파수들 중 제 1 코어의 요구 성능을 만족하는 최소 주파수 이상의 주파수들을 가용 주파수들로서 결정할 수 있다.
S103 단계에서, DVFS 모듈(112)은 에너지 소모를 계산하기 위한 정보를 획득할 수 있다. 예를 들어, 상기 정보는 CMU(130)로부터 제 1 코어로 제공되는 동작 주파수로서 사용될 수 있는 주파수들의 정보(예를 들어, 도 4의 주파수 테이블(TBF)), PMIC(11)로부터 제 1 코어로 공급되는 동작 전압(예를 들어, 동작 전력의 전압) 레벨로서 사용될 수 있는 전압 레벨들의 정보(예를 들어, 도 5의 전압 테이블(TBV)), TMU(140)에 의해 온도 센서로부터 획득되는 현재 제 1 코어의 온도 정보, 또는 누설 전력 정보(예를 들어, 도 6의 누설 전력 테이블(TBL)) 등을 포함할 수 있다.
DVFS 모듈(112)은 제 1 코어로 공급되는 동작 주파수로서 사용될 수 있는 주파수들의 정보를 CMU(130)로부터 획득할 수 있다. DVFS 모듈(112)은 제 1 코어로 공급되는 동작 전압 레벨로서 사용될 수 있는 전압 레벨들의 정보를 PMIC(11)로부터 획득할 수 있다. DVFS 모듈(112)은 현재 제 1 코어(또는 프로세서(110), 또는 SoC(100))의 온도 정보를 TMU(140)로부터 획득할 수 있다. DVFS 모듈(112)은 주파수 정보, 전압 정보, 및 온도 정보에 기반하여 누설 전력을 계산하거나, 또는 미리 계산된 누설 전력을 포함하는 테이블을 스토리지 장치(12)로부터 RAM(120)으로 로드할 수 있다.
S104 단계에서, DVFS 모듈(112)은 각각의 가용 주파수들에 대한 에너지 소모를 계산할 수 있다. 예를 들어, DVFS 모듈(112)은 S103 단계에서 획득된 정보에 기반하여, 각각의 가용 주파수들에 대한 동적 전력(Dynamic Power) 및 정적 전력(Static Power; 또는 누설 전력(Leakage Power))을 계산할 수 있다. DVFS 모듈(112)은 계산된 동적 전력에 기반하여 동적 에너지를 계산하고, 계산된 정적 전력에 기반하여 정적 에너지를 계산하고, 그리고 동적 에너지 및 정적 에너지를 합함으로써, 각각의 가용 주파수들에 대한 에너지 소모를 계산할 수 있다.
동적 전력은 수학식 1에 기반하여 계산될 수 있다.
Figure pat00001
수학식 1에서, Pdynamic은 동적 전력을 나타낼 수 있다. C는 회로의 정전 용량(capacitance)의 값으로, 제 1 코어의 부하에 따라 결정될 수 있다. f는 제 1 코어의 동작 주파수(예를 들어, 가용 주파수들 중 어느 하나)를 나타낼 수 있다. V는 코어의 동작 전압의 레벨을 나타낼 수 있다. DVFS 모듈(112)은 가용 주파수들 각각에 대해, 현재 제 1 코어로 공급되는(또는 공급될 예정인) 동작 전압의 레벨에 기반하여, 동적 전력을 계산할 수 있다. DVFS 모듈(112)은 계산된 동적 전력에, 제 1 주파수의 동작 클럭이 인가될 시간(예를 들어, 워크로드 처리 시간)을 곱하여, 동적 에너지를 계산할 수 있다.
정적 전력은 제 1 코어의 온도 및 제 1 코어의 동작 전압의 레벨에 비례할 수 있다. DVFS 모듈(112)은 가용 주파수들 각각에 대해, 현재 제 1 코어로 공급되는(또는 공급될 예정인) 동작 전압의 레벨 및 TMU(140)로부터 제공된 온도 정보에 기반하여, 정적 전력을 계산할 수 있다. DVFS 모듈(112)은 계산된 정적 전력에, 제 1 코어에 전원이 인가되는 시간을 곱하여, 정적 에너지를 계산할 수 있다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 미리 계산된 동적 전력 및 미리 계산된 정적 전력을 참조함으로써, 에너지 소모를 계산할 수도 있다. 예를 들어, DVFS 모듈(112)은 각각의 가용 주파수들에 대해, 현재 제 1 코어로 공급되는(또는 공급될 예정인) 동작 전압의 레벨에 기반하여, 미리 계산된 동적 전력을 찾을 수 있다. DVFS 모듈(112)은 각각의 가용 주파수들에 대해, 현재 제 1 코어로 공급되는(또는 공급될 예정인) 동작 전압의 레벨 및 TMU(140)로부터 제공된 온도 정보에 기반하여, 미리 계산된 정적 전력을 찾을 수 있다. DVFS 모듈(112)은 미리 계산된 동적 전력 및 미리 계산된 정적 전력에 기반하여, 동적 에너지 및 정적 에너지를 계산하고, 계산된 동적 에너지 및 정적 에너지를 합함으로써, 제 1 코어의 현재 태스크를 처리하는 데 필요한 에너지 소모를 계산할 수 있다.
몇몇 실시 예들에 있어서, 워크로드 처리 시간 또는 전원 인가 시간 등을 예측(또는 측정)하기 어려운 경우에, DVFS 모듈(112)은 계산된 동적 전력 및 계산된 정럭 전력 각각에 대해 미리 정해진 단위 시간 등을 곱함으로써 단위 에너지 소모(또는 순간 에너지 소모)를 계산할 수 있다. 예를 들어, DVFS 모듈(112)은 계산된 동적 전력에 단위 워크로드 처리 시간 또는 평균 워크로드 처리 시간 등과 같이, 미리 정해진 상수 시간을 곱함으로써, 단위 동적 에너지를 계산할 수 있다. 유사한 방식으로, DVFS 모듈(112)은 계산된 누설 전력에 단위 전원 공급 시간, 최소 전원 공급 시간, 또는 평균 전원 공급 시간 등과 같이, 미리 정해진 상수 시간을 곱함으로써, 단위 정적 에너지를 계산할 수 있다.
S105 단계에서, DVFS 모듈(112)은 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정할 수 있다. 예를 들어, DVFS 모듈(112)은 S104 단계의 계산 결과에 기반하여, 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정할 수 있다. 이후, DVFS 모듈(112)은 제 1 코어의 동작 주파수(예를 들어, CMU(130)로부터 제 1 코어로 제공되는 동작 클럭의 주파수)를 최적 주파수로 스케일링할 수 있다.
몇몇 실시 예들에 있어서, 제 1 코어의 동작 주파수를 최적 주파수로 스케일링함과 동시에, DVFS 모듈(112)은 제 1 코어의 동작 전압을 최적 전압으로 스케일링할 수 있다. 예를 들어, DVFS 모듈(112)은 가용 주파수들 중 제 1 주파수에 대해 사용될 수 있는 제 1 가용 전압들을 PMIC(11)로부터 제공된 전압 정보에 기반하여 찾을 수 있다. DVFS 모듈(112)은 제 1 가용 전압들 각각에 대해, 제 1 주파수 하에서의 에너지 소모를 계산할 수 있다. 유사한 방식으로, DVFS 모듈(112)은 가용 주파수들 각각에 대해 가용 전압들을 계산하고 그리고 가용 전압들 각각에 대해, 대응하는 주파수 하에서의 에너지 소모를 계산할 수 있다. DVFS 모듈(112)은 그 에너지 소모가 최소인 주파수 및 전압의 쌍을 최적 주파수 및 최적 전압의 쌍으로서 선택할 수 있다. DVFS 모듈(112)은 제 1 코어의 동작 주파수를 최적 주파수로 스케일링하고, 그리고 제 1 코어의 동작 전압을 최적 전압으로 스케일링할 수 있다.
몇몇 실시 예들에 있어서, 제 1 코어의 동작 주파수를 최적 주파수로 스케일링한 후에, DVFS 모듈(112)은 제 1 코어의 동작 전압을 최적 전압으로 스케일링할 수 있다. 예를 들어, DVFS 모듈(112)은 최적 주파수와 함께 제 1 코어의 동작 전압으로 인가될 수 있는 가용 전압들을 PMIC(11)로부터 제공된 전압 정보에 기반하여 찾을 수 있다. DVFS 모듈(112)은 가용 전압들 각각에 대해 에너지 소모를 계산하고, 그리고 그 에너지 소모가 최소인 전압을 최적 전압으로 결정할 수 있다.도 3에 도시된 실시 예에서, DVFS 모듈(112)은 제 1 코어에 의해 처리되는 태스크가 요구하는 성능을 만족하는 가장 낮은 주파수 대신에, 제 1 코어에 의해 소모되는 에너지가 최소인 주파수를 제 1 코어의 동작 주파수로 설정할 수 있다. 이때, DVFS 모듈(112)은 정적 전력의 크기에 영향을 주는 다양한 요소들을 고려하여 에너지 소모를 계산하고, 그리고 그 에너지 소모가 최소인 주파수를 제 1 코어의 동작 주파수로 설정할 수 있다. 이에 따라, 제 1 코어의 에너지 소모가 최소화될 수 있다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 S101 단계 내지 S105 단계들을 주기적으로 수행할 수 있다. 예를 들어, DVFS 모듈(112)은 미리 결정된 주기로, 제 1 코어에 대해 S101 내지 S105 단계들을 수행할 수 있다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 S101 내지 S105 단계들을, TMU(140)로부터 제공되는 온도 정보에 응답하여 수행할 수 있다. 예를 들어, SoC(100)의 온도 또는 프로세서(110)의 온도가 미리 결정된 범위를 벗어나는 것에 응답하여, DVFS 모듈(112)은 코어들(111) 각각에 대해 S101 내지 S105 단계들을 수행할 수 있다. 다른 예를 들어, 제 1 코어의 온도가 미리 결정된 범위를 벗어나는 것에 응답하여, DVFS 모듈(112)은 제 1 코어에 대해 S101 내지 S105 단계들을 수행할 수 있다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 S101 내지 S105 단계들을, 제 1 코어의 동작 전압의 변화에 응답하여 수행할 수 있다. 예를 들어, 제 1 코어의 동작 전압이 미리 결정된 단위 시간 동안 미리 결정된 값 이상으로 변하는 것에 응답하여, DVFS 모듈(112)은 S101 내지 S105 단계들을 수행할 수 있다.
몇몇 실시 예들에 있어서, DVFS 모듈(112)은 제 1 코어에 의해 새로운 태스크가 처리되기 시작하는 것에 응답하여(또는 제 1 코어로 새로운 태스크가 할당되는 것에 응답하여) S101 내지 S105 단계들을 수행할 수 있다.
도 4는 본 개시의 몇몇 실시 예들에 따라, 주파수 테이블(TBF)을 도시한다. 도 1 내지 4를 참조하면, 주파수 테이블(TBF)은 CMU(130)에 의해 프로세서(110)의 코어들(111) 각각으로 제공되는 동작 주파수로서 사용될 수 있는 주파수들의 리스트일 수 있다. 예를 들어, CMU(130)에 의해 생성되는 동작 주파수는 주파수들(f1, f2, …fn) 중 어느 하나일 수 있다(n은 자연수).
주파수 테이블(TBF)은 스토리지 장치(12)에 저장될 수 있고, 그리고 프로세서(110)의 요청에 응답하여 RAM(120)으로 로드될 수 있다. DVFS 모듈(112)은 RAM(120)으로 로드된 주파수 테이블(TBF)을 참조하여, 가용 주파수들을 찾고 그리고 가용 주파수들 각각에 대해 에너지를 계산할 수 있다. 예를 들어, DVFS 모듈(112)은 주파수들(f1, f2, …fn) 중 요구 성능을 만족하는 최소 주파수 이상인 주파수들을 가용 주파수들로서 판단할 수 있다.
도 5는 본 개시의 몇몇 실시 예들에 따라, 전압 테이블(TBV)을 도시한다. 도 1, 3, 4, 및 5를 참조하면, 전압 테이블(TBV)은 PMIC(11)로부터 프로세서(110)로 공급되는 동작 전압 레벨로서 사용될 수 있는 전압 레벨들의 리스트일 수 있다. 예를 들어, PMIC(11)로부터 프로세서(110)의 각 코어로 공급되는 동작 전압 레벨은 전압들(V1, V2, …Vm; m은 자연수) 중 어느 하나일 수 있다.
몇몇 실시 예들에 있어서, 동작 전압 레벨은 해당 코어의 동작 주파수에 맵핑될 수 있다. 예를 들어, 동작 주파수에 따라, 동작 전압 레벨이 전압들(V1, V2, …Vm) 중 적어도 하나로 결정될 수 있다. 즉, 하나의 동작 주파수에 대한 가용 전압들은 미리 결정될 수 있고, 그리고 하나의 동작 주파수에 대한 가용 전압의 개수는 하나 이상일 수 있다. 전압 테이블(TBV)은 동작 전압 레벨 및 동작 주파수 사이의 맵핑 관계와 관련된 정보를 더 포함할 수 있다. 이에 따라, 동작 주파수 및 동작 전압 사이의 관계가 DVFS를 수행할 때 고려될 수 있다. 결과적으로, 에너지 소모 계산의 정확도가 개선되고, 그리고 DVFS의 성능이 개선될 수 있다.
전압 테이블(TBV)은 프로세서(110)의 요청에 응답하여 RAM(120)으로 로드될 수 있다. 예를 들어, 전압 테이블(TBV)은 PMIC(11)로부터 제공되거나, 또는 스토리지 장치(12)에 미리 저장되어 있을 수 있다. DVFS 모듈(112)은 RAM(120)으로 로드된 전압 테이블(TBV)을 참조하여, 가용 주파수들 각각에 대해 에너지 소모를 계산할 수 있다.
도 6은 본 개시의 몇몇 실시 예들에 따라, 누설 전력 테이블(TBL)을 도시한다. 도 1, 도 3, 도 4, 도 5, 및 도 6을 참조하면, 누설 전력 테이블(TBL)은 PMIC(11)로부터 프로세서(110)로 공급되는 동작 전압 레벨로서 사용될 수 있는 전압 레벨 및 프로세서(110)의 온도에 기반하여, 각각의 상태에 대해 미리 계산된 누설 전력의 리스트일 수 있다.
몇몇 실시 예들에 있어서, 누설 전력을 매번 연산하는 대신에, DVFS 모듈(112)은 누설 전력 테이블(TBL)을 참조하여 가용 주파수들 각각에 대해 누설 전력을 찾을 수 있다. 예를 들어, 가용 주파수들 각각에 대해, DVFS 모듈(112)은 테이블(TBV)을 참조하여 대응하는 동작 전압의 레벨을 찾고, TMU(140)로부터 제공되는 온도 정보에 기반하여, 대응하는 누설 전력을 누설 전력 테이블(TBL)으로부터 찾을 수 있다.
예를 들어, 동작 전압의 레벨이 'V1' 이고 온도가 'tmp1'일 때, 누설 전력은 'PL1'일 수 있다. 동작 전압의 레벨이 'V1' 이고 온도가 'tmp2'일 때, 누설 전력은 'PL2'일 수 있다. DVFS 모듈(112)은 누설 전력 테이블(TBL)에 포함된, 미리 계산된 누설 전력을 주어진 전압 정보 및 온도 정보에 기반하여 찾을 수 있다.
다른 예를 들어, 해당 코어(또는 프로세서(110), 또는 SoC(100))의 현재 온도 또는 해당 코어로 전달되는 동작 전압의 레벨이 누설 전력 테이블(TBL)의 인덱스들에 포함되지 않을 때, DVFS 모듈(112)은 누설 전력 테이블(TBL)에 기반하여 보간 연산을 수행함으로써, 대응하는 누설 전력을 계산할 수 있다. 예를 들어, 해당 코어의 현재 온도 'tmpcurr'가 수학식 2를 만족할 때, DVFS 모듈(112)은 내분 연산을 수행함으로써, 해당 코어의 현재 온도 'tmpcurr'에 대응하는 누설 전력 PLcurr을 수학식 3과 같이 계산할 수 있다(a는 0 이상 1 이하의 실수). 유사한 방식으로, DVFS 모듈(112)은 누설 전력 테이블(TBL)의 인덱스들에 포함되지 않은 전압 레벨에 대해서도, 대응하는 누설 전력을 계산할 수 있다.
Figure pat00002
Figure pat00003
몇몇 실시 예들에 있어서, 누설 전력 테이블(TBL)은 스토리지 장치(12)에 저장되고 그리고 RAM(120)으로 로드될 수 있다. 누설 전력 테이블(TBL)은 외부 장치에 의해 미리 생성되어 스토리지 장치(12)에 저장될 수 있다. 또는, 누설 전력 테이블(TBL)은 프로세서(110)에 의해 미리 생성되어 스토리지 장치(12)에 저장될 수 있다.
도 7은 본 개시의 몇몇 실시 예들에 따라, 전력 테이블(TBP)을 도시한다. 도 1 내지 도 7을 참조하면, 전력 테이블(TBP)은 CMU(130)로부터 프로세서(110)로 공급되는 동작 주파수, PMIC(11)로부터 프로세서(110)로 공급되는 동작 전압 레벨로서 사용될 수 있는 전압 레벨, 프로세서(110)의 온도, 및 누설 전력에 기반하여, 각각의 상태에 대해 미리 계산된 정적 전력 및 동적 전력의 리스트일 수 있다. 전력 테이블(TBP)은 다차원 테이블로서 구현될 수 있다.
몇몇 실시 예들에 있어서, 동적 전력 및 정적 전력을 매번 계산하는 대신에, DVFS 모듈(112)은 전력 테이블(TBP)을 참조하여 가용 주파수들 각각에 대해 에너지 소모를 계산할 수 있다. 예를 들어, DVFS 모듈(112)은 가용 주파수들 각각에 대해, PMIC(11)로부터 제공되는 전압 정보 및 TMU(140)로부터 제공되는 온도 정보에 기반하여, 대응하는 누설 전력 및 동적 전력을 전력 테이블(TBP)으로부터 찾을 수 있다. DVFS 모듈(112)은 찾은 누설 전력 및 동적 전력에 기반하여, 에너지 소모를 계산할 수 있다.
예를 들어, 동작 주파수가 'f1'이고, 동작 전압의 레벨이 'V1' 이고, 온도가 'tmp1'일 때, 누설 전력은 'PL1'이고, 그리고 동적 전력은 'PD1'일 수 있다. 동작 전압의 레벨이 'V1' 이고 온도가 'tmp2'일 때, 누설 전력은 'PL2'이고, 그리고 동적 전력은 'PD1'일 수 있다. DVFS 모듈(112)은 전력 테이블(TBP)에 포함된, 미리 계산된 누설 전력 및 동적 전력을 주어진 전압 정보 및 온도 정보에 기반하여 찾을 수 있다. DVFS 모듈(112)은 찾은 누설 전력에, 해당 코어에 전원이 인가되는 시간을 곱하여, 정적 에너지를 계산할 수 있다. DVFS 모듈(112)은 찾은 동적 전력에, 해당 주파수의 동작 클럭이 인가될 시간을 곱하여, 동적 에너지를 계산할 수 있다.
다른 예를 들어, 해당 코어(또는 프로세서(110), 또는 SoC(100))의 현재 온도 또는 해당 코어의 동작 전압의 레벨 등이 전력 테이블(TBP)의 인덱스들에 포함되지 않을 때, DVFS 모듈(112)은 전력 테이블(TBP)에 기반하여 보간 연산을 수행함으로써, 해당 코어의 현재 온도에 대응하는 누설 전력을 계산할 수 있다. 예를 들어, DVFS 모듈(112)은 도 6을 참조하여 상술된 방식과 유사한 방식으로, 전력 테이블(TBP)의 인덱스들에 포함되지 않는 동작 전압의 레벨 또는 온도에 대응하는 누설 전력 및 동적 전력을 계산할 수 있다.
몇몇 실시 예들에 있어서, 전력 테이블(TBP)은 스토리지 장치(12)에 저장되고 그리고 RAM(120)으로 로드될 수 있다. 전력 테이블(TBP)은 외부 장치에 의해 미리 생성되어 스토리지 장치(12)에 저장될 수 있다. 또는, 전력 테이블(TBP)은 프로세서(110)에 의해 미리 생성되어 스토리지 장치(12)에 저장될 수 있다.
도 8은 본 개시의 몇몇 실시 예들에 따라, 프로세서(210)의 블록도를 도시한다. 도 1, 2, 및 8을 참조하면, SoC(100)는 도 1의 프로세서(110) 대신에 도 8의 프로세서(210)를 포함할 수 있다. 프로세서(210)는 코어들(CR1~CR5)을 포함하는 멀티 코어 프로세서로서 이해될 수 있다. 프로세서(210)에 포함된 코어들의 개수는 도시된 실시 예에 한정되지 아니한다. 프로세서(210)는 코어들(CR1~CR5) 및 DVFS 모듈(212)을 포함할 수 있다. DVFS 모듈(212)은 도 1의 DVFS 모듈(112)과 유사하게 구현될 수 있고, 그리고 그와 유사하게 동작할 수 있다.
상술된 바와 같이, 코어들(CR1~CR5)은 독립된 동작 블록 및/또는 독립된 공급 전원에 의해서 동작하는 복수의 클러스터들(CL1, CL2)로 그룹화될 수 있다. 도시된 실시 예에서, 클러스터(CL1)는 코어들(CR1, CR2, CR3)을 포함할 수 있고, 그리고 클러스터(CL2)는 코어들(CR4, CR5)을 포함할 수 있다. 프로세서(210)에 포함된 클러스터들의 개수는 도시된 실시 예에 한정되지 아니한다.
동일한 클러스터에 속하는 코어들은 동일한 동작 클럭에 응답하여 동작하는 클럭 도메인 및/또는 동일한 공급 전원에 응답하여 동작하는 파워 도메인에 종속될 수 있다. 예를 들어, 클러스터(CL1)에 포함된 코어들(CR1, CR2, CR3)은 모두 제 1 클럭 및/또는 제 1 전원에 응답하여 동작할 수 있다. 클러스터(CL2)에 포함된 코어들(CR4, CR5)는 모두 제 2 클럭 및/또는 제 2 전원에 응답하여 동작할 수 있다.
몇몇 실시 예들에 있어서, 하나의 전압 도메인에 종속된 코어들 중 어느 하나에 대해 DVFS를 수행할 때, DVFS 모듈(212)은 다른 코어들의 동작 전압의 레벨을 고려할 수 있다. 예를 들어, DVFS 모듈(212)은 코어(CR1)에 대해 도 3의 순서도에 기반하여 DVFS를 수행할 때, PMIC(11)로부터 코어(CR1)가 종속된 전압 도메인의 현재 전압 레벨(예를 들어, 코어들(CR2, CR3)의 현재 공급 전원의 전압 레벨)을 포함하는 전압 정보를 더 획득할 수 있다. DVFS 모듈(212)은 획득된 전압 정보에 기반하여, 가용 주파수들 각각에 대해 코어(CR1)의 에너지 소모를 계산하고, 그리고 에너지 소모가 최소인 주파수를 최적 주파수로서 결정할 수 있다. 이에 따라, DVFS 모듈(212)에 의해 계산되는 에너지 소모의 정확도가 상승하고, 결과적으로 코어(CR1)의 에너지 소모가, 코어(CR1)의 워크로드 처리 속도를 고려하면서, 최소화될 수 있다.
도 9는 본 개시의 몇몇 실시 예들에 따라, 전자 장치(1000)의 블록도를 도시한다. 도 9를 참조하면, 본 발명의 실시 예에 따른 전자 장치(1000)는 이미지 처리부(1100), 무선 송수신부(1200), 오디오 처리부(1300), 이미지 파일 생성부(1400), 불휘발성 메모리 장치(1500), 사용자 인터페이스(1600), 그리고 컨트롤러(1700)를 포함한다.
이미지 처리부(1100)는 렌즈(1110), 이미지 센서(1120), 이미지 프로세서(1130), 그리고 디스플레이부(1140)를 포함한다. 무선 송수신부(1200)는 안테나(1210), 트랜시버(1220), 모뎀(1230)을 포함한다. 오디오 처리부(1300)는 오디오 프로세서(1310), 마이크(1320), 그리고 스피커(1330)를 포함한다.
여기서, 불휘발성 메모리 장치(1500)는 본 발명의 실시 예에 따른 메모리 카드(MMC, eMMC, SD, micro SD) 등으로 제공될 수 있다. 더불어, 컨트롤러(1700)는 응용 프로그램, 운영 체제 등을 구동하는 시스템 온 칩(SoC)으로 제공될 수 있다. 시스템 온 칩(SoC)에서 구동되는 운영 체제의 커널(Kernel)에는 본 발명의 실시 예에 따라 DVFS를 수행할 수 있는 모듈(예를 들어, 도 1의 DVFS 모듈(112) 또는 도 8의 DVFS 모듈(212))이 포함될 수 있다.
상술된 내용은 본 개시를 실시하기 위한 구체적인 실시 예들이다. 본 개시는 상술된 실시 예들뿐만 아니라, 단순하게 설계 변경되거나 용이하게 변경할 수 있는 실시 예들 또한 포함할 것이다. 또한, 본 개시는 실시 예들을 이용하여 용이하게 변형하여 실시할 수 있는 기술들도 포함될 것이다. 따라서, 본 개시의 범위는 상술된 실시 예들에 국한되어 정해져서는 안 되며 후술하는 특허청구범위뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 할 것이다.
100: 시스템-온-칩
110, 210: 프로세서
112, 212: DVFS 모듈

Claims (20)

  1. 제 1 코어 및 DVFS(Dynamic Voltage and Frequency Scaling) 모듈을 포함하는 프로세서 및 상기 제 1 코어로 동작 클럭을 공급하는 CMU(Clock Management Unit)을 포함하는 SoC(System-on-Chip)의 동작 방법에 있어서:
    상기 제 1 코어의 요구 성능을 획득하는 단계;
    상기 요구 성능을 만족하는 가용 주파수들을 찾는 단계;
    상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계;
    상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계;
    상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하는 단계; 및
    상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하는 단계를 포함하는 SoC의 동작 방법.
  2. 제 1 항에 있어서,
    상기 제 1 코어의 상기 요구 성능을 획득하는 단계는 상기 제 1 코어의 상기 요구 성능에 대응하는 최소 주파수를 획득하는 단계를 포함하는 SoC의 동작 방법.
  3. 제 2 항에 있어서,
    상기 가용 주파수들을 찾는 단계는:
    상기 제 1 코어의 상기 동작 주파수로서 사용될 수 있는 주파수들의 리스트를 포함하는 주파수 테이블을 획득하는 단계; 및
    상기 주파수 테이블에 포함된 상기 리스트의 상기 주파수들 중, 상기 최소 주파수 이상의 주파수들을 상기 가용 주파수들로서 결정하는 단계를 포함하는 SoC의 동작 방법.
  4. 제 1 항에 있어서,
    상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계는:
    상기 제 1 코어로 공급되는 상기 동작 주파수로서 사용될 수 있는 주파수들의 정보를 획득하는 단계;
    상기 제 1 코어로 공급되는 동작 전압의 레벨로서 사용될 수 있는 전압 레벨들의 정보를 획득하는 단계; 및
    상기 제 1 코어의 온도 정보를 획득하는 단계를 포함하는 SoC의 동작 방법.
  5. 제 1 항에 있어서,
    상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계는:
    상기 정보에 기반하여, 상기 가용 주파수들 중 제 1 주파수에 대한 동적 전력을 계산하는 단계; 및
    상기 정보에 기반하여, 상기 제 1 주파수에 대한 정적 전력을 계산하는 단계를 포함하는 SoC의 동작 방법.
  6. 제 5 항에 있어서,
    상기 정보에 기반하여, 상기 제 1 주파수에 대한 정적 전력을 계산하는 단계는:
    상기 제 1 주파수에 대응하는 제 1 전압 및 상기 제 1 코어의 현재 온도에 대응하는 제 1 누설 전력을 누설 전력 테이블에서 찾는 단계를 포함하되,
    상기 정보는 상기 제 1 전압의 레벨 및 상기 제 1 코어의 상기 현재 온도를 포함하는 SoC의 동작 방법.
  7. 제 1 코어 및 제 2 코어를 포함하는 제 1 클러스터 그리고 DVFS(Dynamic Voltage and Frequency Scaling) 모듈을 포함하는 프로세서 및 상기 제 1 코어로 동작 클럭을 공급하는 CMU(Clock Management Unit)을 포함하는 SoC(System-on-Chip)의 동작 방법에 있어서:
    상기 제 1 코어의 요구 성능을 획득하는 단계;
    상기 요구 성능을 만족하는 가용 주파수들을 찾는 단계;
    상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계;
    상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계;
    상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하는 단계; 및
    상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하는 단계를 포함하되,
    상기 정보는 상기 제 1 클러스터에 포함된 제 2 코어의 동작 전압의 레벨을 포함하는 SoC의 동작 방법.
  8. 제 7 항에 있어서,
    상기 제 1 코어의 상기 요구 성능을 획득하는 단계는 상기 제 1 코어에 의해 요구되는 최소 주파수를 획득하는 단계를 포함하는 SoC의 동작 방법.
  9. 제 8 항에 있어서,
    상기 가용 주파수들을 찾는 단계는:
    상기 제 1 코어에 의해 사용될 수 있는 주파수들의 리스트를 포함하는 주파수 테이블을 획득하는 단계; 및
    상기 리스트의 상기 주파수들 중, 상기 최소 주파수 이상의 주파수들을 상기 가용 주파수들로 결정하는 단계를 포함하는 SoC의 동작 방법.
  10. 제 7 항에 있어서,
    상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하는 단계는:
    상기 제 1 코어로 공급되는 상기 동작 주파수로서 사용될 수 있는 주파수들의 정보를 획득하는 단계;
    상기 제 2 코어의 동작 전압의 레벨의 정보를 획득하는 단계; 및
    상기 제 1 코어의 온도 정보를 획득하는 단계를 포함하는 SoC의 동작 방법.
  11. 제 7 항에 있어서,
    상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계는:
    상기 정보에 기반하여, 상기 가용 주파수들 중 제 1 주파수에 대한 동적 전력을 계산하는 단계; 및
    상기 정보에 기반하여, 상기 제 1 주파수에 대한 정적 전력을 계산하는 단계를 포함하는 SoC의 동작 방법.
  12. 제 11 항에 있어서,
    상기 정보에 기반하여, 상기 제 1 주파수에 대한 정적 전력을 계산하는 단계는:
    상기 제 1 주파수에 대응하는 제 1 전압 및 상기 제 1 코어의 현재 온도에 대응하는 제 1 누설 전력을 누설 전력 테이블에서 찾는 단계를 포함하되,
    상기 정보는 상기 제 1 전압의 레벨 및 상기 제 1 코어의 상기 현재 온도를 포함하는 SoC의 동작 방법.
  13. 제 7 항에 있어서,
    상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하는 단계는:
    상기 가용 주파수들 중 제 1 주파수 및 상기 제 2 코어의 동작 전압의 레벨에 대응하는 제 1 동적 전력을 전력 테이블에서 찾는 단계; 및
    상기 제 1 주파수, 상기 제 2 코어의 동작 전압의 레벨, 및 상기 제 1 코어의 현재 온도에 대응하는 제 1 누설 전력을 상기 전력 테이블에서 찾는 단계를 포함하되,
    상기 전력 테이블은 미리 계산된 정적 전력 및 동적 전력의 리스트를 포함하고, 그리고
    상기 정보는 상기 제 2 코어의 동작 전압의 레벨, 및 상기 제 1 코어의 상기현재 온도를 포함하는 SoC의 동작 방법.
  14. SoC(System-on-Chip)에 있어서:
    제 1 코어를 포함하는 프로세서;
    상기 프로세서의 제어 하에, 동작 클럭을 생성하고 그리고 상기 동작 클럭을 상기 제 1 코어로 공급하는 CMU(Clock Management Unit); 및
    DVFS(Dynamic Voltage and Frequency Scaling) 프로그램을 저장하는 메모리를 포함하되,
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 제 1 코어의 요구 성능을 획득하고,
    상기 요구 성능을 만족하는 가용 주파수들을 찾고,
    상기 가용 주파수들에 대한 에너지 소모를 계산하기 위한 정보를 획득하고,
    상기 정보에 기반하여, 상기 가용 주파수들 각각에 대한 에너지 소모를 계산하고,
    상기 가용 주파수들 중 그 에너지 소모가 최소인 주파수를 최적 주파수로서 결정하고, 그리고
    상기 제 1 코어로 공급되는 동작 주파수를 상기 최적 주파수로 스케일링하도록 야기하는 SoC.
  15. 제 14 항에 있어서,
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 제 1 코어의 상기 요구 성능에 대응하는 최소 주파수를 획득하고,
    상기 제 1 코어에 의해 사용될 수 있는 주파수들의 리스트를 포함하는 주파수 테이블을 획득하고, 그리고
    상기 리스트의 상기 주파수들 중, 상기 최소 주파수 이상의 주파수들을 상기 가용 주파수들로서 결정하도록 더 야기하는 SoC.
  16. 제 14 항에 있어서,
    상기 프로세서의 제어 하에, 상기 제 1 코어의 온도를 측정하는 온도 센서; 및
    상기 온도 센서의 측정에 기반하여, 상기 제 1 코어의 온도를 관리하는 TMU(Temperature Management Unit)를 더 포함하고, 그리고
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 CMU로부터, 상기 제 1 코어로 공급되는 상기 동작 주파수로서 사용될 수 있는 주파수들의 정보를 획득하고,
    상기 제 1 코어로 공급되는 동작 전압 레벨로서 사용될 수 있는 전압 레벨들의 정보를 획득하고, 그리고
    상기 TMU로부터 상기 제 1 코어의 온도 정보를 획득하도록 더 야기하는 SoC.
  17. 제 14 항에 있어서,
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 정보에 기반하여, 상기 가용 주파수들 중 제 1 주파수에 대한 제 1 동적 전력 및 제 1 정적 전력을 계산하고,
    상기 제 1 동적 전력에 기반하여 상기 제 1 주파수에 대한 제 1 동적 에너지를 계산하고,
    상기 제 1 정적 전력에 기반하여 상기 제 1 주파수에 대한 제 1 정적 에너지를 계산하고, 그리고
    상기 제 1 동적 에너지 및 상기 제 1 정적 에너지에 기반하여 상기 제 1 주파수에 대한 제 1 에너지 소모를 계산하도록 더 야기하는 SoC.
  18. 제 17 항에 있어서,
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 제 1 주파수에 대응하는 제 1 전압 및 상기 제 1 코어의 현재 온도에 대응하는 제 1 누설 전력을 누설 전력 테이블에서 찾도록 더 야기하되,
    상기 정보는 상기 제 1 전압의 레벨 및 상기 제 1 코어의 상기 현재 온도를 포함하는 SoC.
  19. 제 14 항에 있어서,
    상기 프로세서의 제어 하에, 상기 제 1 코어의 온도를 측정하는 온도 센서; 및
    상기 온도 센서의 측정에 기반하여, 상기 제 1 코어의 온도를 관리하는 TMU(Temperature Management Unit)를 더 포함하고,
    상기 프로세서는 상기 제 1 코어 및 제 2 코어를 포함하는 제 1 클러스터를 더 포함하고, 그리고
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 CMU로부터, 상기 제 1 코어로 공급되는 상기 동작 주파수로서 사용될 수 있는 주파수들의 정보를 획득하고,
    상기 제 2 코어의 동작 전압의 레벨의 정보를 획득하고, 그리고
    상기 TMU로부터 상기 제 1 코어의 온도 정보를 획득하도록 더 야기하는 SoC.
  20. 제 19 항에 있어서,
    상기 DVFS 프로그램은 상기 프로세서에 의해 실행될 때 상기 프로세서로 하여금:
    상기 제 2 코어의 동작 전압의 레벨에 기반하여, 상기 가용 주파수들 중 제 1 주파수에 대한 제 1 동적 전력을 계산하고,
    상기 제 1 동적 전력에 기반하여, 상기 제 1 주파수에 대한 제 1 동적 에너지를 계산하고,
    상기 제 1 코어의 상기 온도 정보 및 상기 제 2 코어의 동작 전압의 레벨에 기반하여, 상기 제 1 주파수에 대한 제 1 정적 전력을 계산하고,
    상기 제 1 정적 전력에 기반하여, 상기 제 1 주파수에 대한 제 1 정적 에너지를 계산하고, 그리고
    상기 제 1 동적 에너지 및 상기 제 1 정적 에너지에 기반하여, 상기 제 1 주파수에 대한 제 1 에너지 소모를 계산하도록 야기하는 SoC.
KR1020210118488A 2021-09-06 2021-09-06 시스템-온-칩 및 그의 동작 방법 KR20230036589A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210118488A KR20230036589A (ko) 2021-09-06 2021-09-06 시스템-온-칩 및 그의 동작 방법
US17/720,483 US20230071632A1 (en) 2021-09-06 2022-04-14 System-on-chip and an operating method thereof
CN202211079623.3A CN115774485A (zh) 2021-09-06 2022-09-05 片上系统及其操作方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210118488A KR20230036589A (ko) 2021-09-06 2021-09-06 시스템-온-칩 및 그의 동작 방법

Publications (1)

Publication Number Publication Date
KR20230036589A true KR20230036589A (ko) 2023-03-15

Family

ID=85385415

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210118488A KR20230036589A (ko) 2021-09-06 2021-09-06 시스템-온-칩 및 그의 동작 방법

Country Status (3)

Country Link
US (1) US20230071632A1 (ko)
KR (1) KR20230036589A (ko)
CN (1) CN115774485A (ko)

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052895B2 (en) * 2010-04-07 2015-06-09 International Business Machines Power budget allocation in multi-processor systems
US8612984B2 (en) * 2010-04-28 2013-12-17 International Business Machines Corporation Energy-aware job scheduling for cluster environments
WO2012108058A1 (ja) * 2011-02-10 2012-08-16 富士通株式会社 スケジューリング方法、設計支援方法、およびシステム
KR101991682B1 (ko) * 2012-08-29 2019-06-21 삼성전자 주식회사 Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
KR101471303B1 (ko) * 2013-10-02 2014-12-10 포항공과대학교 산학협력단 그래픽 처리 장치를 위한 전력 관리 장치 및 방법
US20160054779A1 (en) * 2014-08-22 2016-02-25 Devadatta Bodas Managing power performance of distributed computing systems
US9665161B2 (en) * 2014-08-27 2017-05-30 Mediatek Inc. Method and computer-readable medium for dynamically managing power of multi-core processor
EP3196732B1 (en) * 2014-12-12 2021-03-24 VIA Alliance Semiconductor Co., Ltd. System and method for dynamically adjusting voltage frequency
KR20160137030A (ko) * 2015-05-22 2016-11-30 한국전자통신연구원 씨피유 주파수 제어 장치 및 방법
US9811389B2 (en) * 2015-09-23 2017-11-07 Intel Corporation Task assignment for processor cores based on a statistical power and frequency model
US10503238B2 (en) * 2016-11-01 2019-12-10 Microsoft Technology Licensing, Llc Thread importance based processor core parking and frequency selection
US10048741B1 (en) * 2017-01-26 2018-08-14 Advanced Micro Devices, Inc. Bandwidth-aware multi-frequency performance estimation mechanism
US10627885B2 (en) * 2018-01-09 2020-04-21 Intel Corporation Hybrid prioritized resource allocation in thermally- or power-constrained computing devices
WO2019183785A1 (zh) * 2018-03-26 2019-10-03 华为技术有限公司 一种帧率调整方法及终端
CN111902790B (zh) * 2018-08-30 2022-05-31 华为技术有限公司 一种调频方法、装置及计算机可读存储介质
US11281279B2 (en) * 2019-04-02 2022-03-22 Apple Inc. Tracking power consumption using multiple sampling frequencies

Also Published As

Publication number Publication date
CN115774485A (zh) 2023-03-10
US20230071632A1 (en) 2023-03-09

Similar Documents

Publication Publication Date Title
US11327555B2 (en) Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
US9696771B2 (en) Methods and systems for operating multi-core processors
NL2011348B1 (en) Dynamic voltage frequency scaling method and apparatus.
JP2014053006A (ja) 3次元作業負荷を用いてDVFS政策を行うSoC及びその動作方法
US20130262894A1 (en) System-on-chip, electronic system including same, and method controlling same
US20130205126A1 (en) Core-level dynamic voltage and frequency scaling in a chip multiprocessor
US20130061033A1 (en) Data processing system and method for switching between heterogeneous accelerators
CN108780342B (zh) 用于使用处理器中的核的热裕量的系统、方法和设备
US9746902B2 (en) System-on-chip including multi-core processor and dynamic power management method thereof
US9891690B2 (en) Dynamic voltage and frequency scaling of a processor
US11693466B2 (en) Application processor and system on chip
JP2013539571A (ja) コンピュータシステムにおける電流および電力管理
KR20210032213A (ko) 전력 스텝에 기초한 동적 다이내믹 전압 주파주 스케일링(dvfs) 수행 방법
KR20230036589A (ko) 시스템-온-칩 및 그의 동작 방법
US10635594B1 (en) Dynamically redistribute cache space based on time savings
KR20220113087A (ko) Dvfs 동작을 수행하는 집적 회로, 컴퓨팅 시스템 및 집적 회로의 동작 방법
US10592420B1 (en) Dynamically redistribute cache space with min-max technique
US20230266815A1 (en) Dvfs controlling method, semiconductor device and semiconductor system using the dvfs controlling method
US11442522B2 (en) Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method
US20230214271A1 (en) Method of scheduling cache budget in multi-core processing device and multi-core processing device performing the same
US20240053809A1 (en) Integrated circuit capable of performing dynamic voltage and frequency scaling operation based on workload and operating method thereof
KR20230000209A (ko) Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법
KR20220079196A (ko) Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법