KR20220079196A - Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 - Google Patents
Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 Download PDFInfo
- Publication number
- KR20220079196A KR20220079196A KR1020200168724A KR20200168724A KR20220079196A KR 20220079196 A KR20220079196 A KR 20220079196A KR 1020200168724 A KR1020200168724 A KR 1020200168724A KR 20200168724 A KR20200168724 A KR 20200168724A KR 20220079196 A KR20220079196 A KR 20220079196A
- Authority
- KR
- South Korea
- Prior art keywords
- sub
- blocks
- power
- dvfs
- power consumption
- Prior art date
Links
- 238000011017 operating method Methods 0.000 title description 3
- 238000000034 method Methods 0.000 claims abstract description 53
- 230000008569 process Effects 0.000 claims abstract description 18
- 230000015654 memory Effects 0.000 claims description 23
- 238000012545 processing Methods 0.000 claims description 17
- 230000001537 neural effect Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 230000000903 blocking effect Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 21
- 238000013528 artificial neural network Methods 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000004043 responsiveness Effects 0.000 description 4
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 3
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 3
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 2
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000005669 field effect Effects 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 102100035964 Gastrokine-2 Human genes 0.000 description 1
- 101001075215 Homo sapiens Gastrokine-2 Proteins 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/28—Supervision thereof, e.g. detecting power-supply failure by out of limits supervision
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3237—Power saving characterised by the action undertaken by disabling clock generation or distribution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/14—Time supervision arrangements, e.g. real time clock
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/04—Generating or distributing clock signals or signals derived directly therefrom
- G06F1/08—Clock generators with changeable or programmable clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/324—Power saving characterised by the action undertaken by lowering clock frequency
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5094—Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Power Sources (AREA)
- Semiconductor Integrated Circuits (AREA)
Abstract
본 개시의 기술적 사상에 따른 집적 회로는, 동작 조건에 따라 명령어를 처리하도록 구성된 복수의 서브 블록들, 상기 복수의 서브 블록들 각각이 명령어를 처리하는 시간인 액티브 시간을 카운트하도록 구성된 복수의 액티브 카운터들 및 액티브 시간을 기초로, 샘플 주기 동안 복수의 서브 블록들의 소모 전력을 산출하고, 소모 전력을 기초로 복수의 서브 블록들의 동작 조건을 조정하도록 구성된 DVFS(Dynamic Voltage and Freuqnecy Scaling) 제어부를 포함한다.
Description
본 개시의 기술적 사상은 집적 회로에 관한 것으로서, 자세하게는 전력 소모를 고려하여 DVFS 동작을 수행하는 집적 회로 및 집적 회로의 동작 방법에 관한 것이다.
기술의 발달에 따라 컴퓨팅 시스템, 예를 들면, 모바일 장치에 대한 전력 관리 및 사용자 경험이 중요시된다. 모바일 환경에서의 멀티 쓰레드(multi-thread) 성능 증가를 위하여 코어의 개수가 증가하고 점점 어플리케이션 프로세서 내에 여러 멀티미디어 시나리오에 특허된 마스터 IP들이 지속적으로 추가되면서 메모리를 사용하는 경쟁 주체가 다양화되는 실정이다. 따라서, 어플리케이션 프로세서는 DVFS(Dynamic Voltage and Frequency Scaling) 동작을 수행하여 어플리케이션 프로세서 내의 주파수 및 전압을 조절함으로써, 성능과 전력 소모 정도를 제어할 수 있다.
본 개시의 기술적 사상은 컴퓨팅 시스템에 관한 것으로서, 서브 블록의 소모 전력을 고려하여 DVFS 동작을 수행함으로써 전력 마진을 성능 향상에 반영하는 집적 회로, 이를 포함하는 컴퓨팅 시스템 및 집적 회로의 동작 방법을 제공한다.
상기와 같은 목적을 달성하기 위하여, 본 개시의 일 측면에 따른 집적 회로는, 동작 조건에 따라 명령어를 처리하도록 구성된 복수의 서브 블록들, 복수의 서브 블록들 각각이 명령어를 처리하는 시간인 액티브 시간을 카운트하도록 구성된 복수의 액티브 카운터들 및 액티브 시간을 기초로, 샘플 주기 동안 복수의 서브 블록들의 소모 전력을 산출하고, 소모 전력을 기초로 복수의 서브 블록들의 동작 조건을 조정하도록 구성된 DVFS(Dynamic Voltage and Freuqnecy Scaling) 제어부를 포함한다.
본 개시의 다른 측면에 따른 집적 회로의 동작 방법은, 샘플 주기와, 복수의 서브 블록들 중 적어도 하나가 액티브 상태인 토탈 액티브 시간의 비율을 기초로 워크 로드를 획득하는 단계, 상기 샘플 주기 동안 복수의 서브 블록들의 소모 전력을 기초로 전력 사용률을 획득하는 단계 및 워크 로드와 전력 사용률 간의 비율에 따라 동작 조건을 조정하는 단계를 포함한다.
본 개시의 다른 측면에 따른 집적 회로의 동작 방법은, 각각 명령어를 처리하는 복수의 서브 블록들, 복수의 서브 블록들에 각각 대응되고, 각각 대응되는 서브 블록의 액티브 시간인 서브 액티브 시간을 카운트하는 액티브 카운터들, 복수의 서브 블록들 중 적어도 하나가 액티브 상태인 토탈 액티브 시간을 카운트하는 토탈 카운터, 복수의 서브 블록들에 인가되는 클럭 신호를 생성하는 클럭 관리부, 복수의 서브 블록들에 인가되는 전원 전압을 생성하는 전력 관리부 및 서브 액티브 시간 및 토탈 액티브 시간을 기초로 복수의 서브 블록들이 샘플 주기 동안 소모하는 소모 전력을 산출하고, 소모 전력을 기초로 클럭 신호의 주파수 또는 전원 전압의 크기가 조정되도록 클럭 관리부 또는 전력 관리부를 제어하는 DVFS 제어부를 포함한다.
본 개시의 예시적 실시 예에 따라, 서브 블록의 소모 전력을 고려하여 DVFS 동작을 수행함으로써 전력 마진을 성능 향상에 반영하는 집적 회로, 이를 포함하는 컴퓨팅 시스템 및 집적 회로의 동작 방법이 제공될 수 있다.
도 1은 본 개시의 예시적 실시 예에 따른 시스템을 설명하는 블록도이다.
도 2는 본 개시의 예시적 실시 예에 따른 서브 블록의 소모 전력을 설명하는 도면이다.
도 3은 본 개시의 예시적 실시 예에 따른 서브 블록의 소모 전력을 설명하는 도면이다.
도 4는 본 개시의 예시적 실시 예에 따른 컴퓨팅 시스템을 설명하는 블록도이다.
도 5는 본 개시의 예시적 실시 예에 따른 전력 계수 테이블을 설명하는 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법을 설명하는 흐름도이다.
도 7은 본 개시의 예시적 실시 예에 따른 게이팅 회로를 포함하는 시스템을 설명하는 블록도이다.
도 8은 본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법을 설명하는 흐름도이다.
도 9는 본 개시의 예시적 실시 예에 따른 전력 사용률을 산출하는 방법을 설명하는 흐름도이다.
도 10은 본 개시의 예시적 실시 예에 따른 동작 조건의 변경을 설명하는 도면이다.
도 11은 본 개시의 예시적 실시 예에 따른 DVFS 동작의 반응성을 설명하기 위한 도면이다.
도 12는 본 개시의 예시적 실시 예에 따른 복수의 클러스터들을 포함하는 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시 예에 따른 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시 예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.
도 2는 본 개시의 예시적 실시 예에 따른 서브 블록의 소모 전력을 설명하는 도면이다.
도 3은 본 개시의 예시적 실시 예에 따른 서브 블록의 소모 전력을 설명하는 도면이다.
도 4는 본 개시의 예시적 실시 예에 따른 컴퓨팅 시스템을 설명하는 블록도이다.
도 5는 본 개시의 예시적 실시 예에 따른 전력 계수 테이블을 설명하는 도면이다.
도 6은 본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법을 설명하는 흐름도이다.
도 7은 본 개시의 예시적 실시 예에 따른 게이팅 회로를 포함하는 시스템을 설명하는 블록도이다.
도 8은 본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법을 설명하는 흐름도이다.
도 9는 본 개시의 예시적 실시 예에 따른 전력 사용률을 산출하는 방법을 설명하는 흐름도이다.
도 10은 본 개시의 예시적 실시 예에 따른 동작 조건의 변경을 설명하는 도면이다.
도 11은 본 개시의 예시적 실시 예에 따른 DVFS 동작의 반응성을 설명하기 위한 도면이다.
도 12는 본 개시의 예시적 실시 예에 따른 복수의 클러스터들을 포함하는 시스템을 나타내는 블록도이다.
도 13은 본 개시의 예시적 실시 예에 따른 시스템을 나타내는 블록도이다.
도 14는 본 개시의 예시적 실시 예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다.
도 1은 본 개시의 예시적 실시 예에 따른 시스템을 설명하는 블록도이다.
도 1을 참조하면, 시스템(10)은 IP 장치(11), 클럭 관리부(12), 전력 관리부(13) 및 메모리(14)를 포함할 수 있다.
시스템(10)은 다양한 종류의 데이터 처리 장치에 해당될 수 있으며, 일 예로서 모바일 장치에 해당할 수 있다. 또한, 시스템(10)은 랩탑 컴퓨터, 이동 전화기, 스마트폰, 태블릿 PC, PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 모바일 인터넷 장치(mobile internet device(MID), 웨어러블 컴퓨터, 사물 인터넷 (internet of things(IoT)) 장치, 만물 인터넷(internet of everything(IoE)) 장치, 또는 e-북(e-book)에 해당될 수 있다.
시스템(10)은 다양한 종류의 메모리 장치를 포함할 수 있다. 예컨대, 메모리(14)는 다양한 종류의 반도체 메모리 장치에 해당할 수 있으며, 일 실시예에 따라 DDR SDRAM(Double Data Rate Synchronous Dynamic Ramdom Access Memory), LPDDR(Low Power Double Data Rate) SDRAM, GDDR(Graphics Double Data Rate) SDRAM, RDRAM(Rambus Dynamic Ramdom Access Memory) 등과 같은 동적 랜덤 억세스 메모리(Dynamic Ramdom Access Memory, DRAM)일 수 있다. 또한, 메모리(14)는 더 나아가 플래시 메모리(Flash Memory), PRAM(Phase-change RAM), MRAM(Magnetoresistive RAM), ReRAM(Resistive RAM) 및 FeRAM(Ferroelectric RAM) 중 어느 하나일 수 있다.
일부 실시 예들에서, 시스템(10)은 시스템 온 칩(System on Chip, SoC)으로 구현될 수 있다. 시스템 온 칩(SoC)은 소정의 표준 버스 규격을 갖는 프로토콜이 적용된 시스템 버스를 포함할 수 있으며, 시스템(10)에 포함되는 구성요소들은 시스템 버스에 연결될 수 있다. 예를 들어, 시스템 버스의 표준 규격으로서, ARM(Advanced RISC Machine) 사의 AMBA(Advanced Microcontroller Bus Architecture) 프로토콜이 적용될 수 있다. AMBA 프로토콜의 버스 타입에는 AHB(Advanced High-Performance Bus), APB(Advanced Peripheral Bus), AXI(Advanced eXtensible Interface), AXI4, ACE(AXI Coherency Extensions) 등이 포함될 수 있다. 이외에도, 소닉사(SONICs Inc.)의 uNetwork 이나 IBM의 CoreConnect, OCP-IP의 오픈 코어 프로토콜(Open Core Protocol) 등 다른 타입의 프로토콜이 적용되어도 무방하다.
IP 장치(11)는 복수의 서브 블록들(11_1), 복수의 액티브 카운터들(11_2), 토탈 카운터(11_3) 및 DVFS 제어부(11_4)를 포함할 수 있다. IP 장치는 복수의 트랜지스터들로 구현되는 집적 회로로 설계될 수 있다. IP 장치(11)는 예를 들어, CPU(Central Processing Unit), GPU(Graphic Processing Unit), NPU(Neural Processing Unit) 또는 ISP(Image Signal Processor)일 수 있다. 도 1은 하나의 IP 장치(11)를 도시하고 있으나, 시스템(10)에 포함되는 IP 장치의 종류 및 개수는 이에 제한되지 않을 수 있다. 일부 실시 예들에서, 복수의 액티브 카운터들(11_2), 토탈 카운터(11_3) 및 DVFS 제어부(11_4) 중 적어도 일부는 IP 장치(11) 외부에 위치할 수 있다.
복수의 서브 블록들(11_1) 각각은 독립적으로 명령어를 처리할 수 있다. 서브 블록은 CPU 코어, GPU 코어, NPU 코어 또는 ISP 코어일 수 있다. IP 장치(11)에 복수의 코어들이 포함되므로, 시스템(10)은 멀티-코어 프로세서로 지칭될 수도 있다. 서브 블록은 서브 기능 블록(sub function block)으로 지칭될 수도 있다. 서브 블록이 명령어를 처리하는 상태는 액티브 상태로 지칭될 수 있고, 서브 블록이 명령어를 처리하지 않는 상태는 유휴(idle) 상태로 지칭될 수 있다. 서브 블록이 액티브 상태인 시간은 서브 액티브 시간으로 지칭될 수 있고, 서브 블록이 유휴 상태인 시간은 유휴 시간으로 지칭될 수 있다.
복수의 서브 블록들(11_1) 각각은 클럭 신호(CLK) 및 전원 전압(VDD)에 따라 명령어를 처리할 수 있다. 서브 블록의 성능은 클럭 신호(CLK) 및 전원 전압(VDD)에 의존할 수 있다. 전원 전압(VDD)의 크기가 증가하고, 클럭 신호(CLK)의 주파수가 상승할수록 IP 장치(11)의 성능이 향상되는 한편 IP 장치(11)의 전력 소비는 증가할 수 있다. 본 명세서에서, 클럭 신호(CLK)의 주파수 및 전원 전압(VDD)의 크기는 IP 장치(11)의 동작 조건으로 정의될 수 있다. 또한, 클럭 신호(CLK)의 주파수는 동작 주파수로 지칭될 수 있다. 이하에서 설명의 편의를 위하여, 본 개시의 예시적 실시예들은 클럭 신호(CLK)의 주파수에 대응하는 동작 조건을 주로 참조하여 설명될 것이다.
복수의 액티브 카운터들(11_2) 각각은 서브 블록에 대응하는 서브 액티브 시간을 카운트할 수 있다. 예를 들어, 제1 액티브 카운터는 제1 서브 블록의 서브 액티브 시간을 카운트할 수 있고, 제2 액티브 카운터는 제2 서브 블록의 서브 액티브 시간을 카운트할 수 있다. 본 명세서에서, 하나의 서브 블록에 대한 액티브 시간은 서브 액티브 시간이라고 지칭될 수 있다. 복수의 액티브 카운터들(11_2)은 복수의 서브 블록들(111)과 각각 대응될 수 있다. 일 예에서, 도 7을 참조하여 후술되는 바와 같이 액티브 카운터는 서브 블록에 인가되는 클럭 신호(CLK) 또는 전원 전압(VDD)의 공급을 제어하는 게이팅 신호를 기초로, 서브 액티브 시간을 카운트할 수 있다. 다른 예에서, 액티브 카운터는 서브 블록이 액티브 상태일 때 서브 블록에 인가되는 클럭 신호(CLK)의 사이클의 개수를 카운트함으로써 서브 액티브 시간을 획득할 수 있다. 도 3을 참조하여 서브 액티브 시간이 후술될 수 있다.
토탈 카운터(11_3)는 토탈 액티브 시간을 카운트할 수 있다. 본 명세서에서, 토탈 액티브 시간은 IP 장치(110)가 액티브 상태인 시간을 의미할 수 있다. 구체적으로, 토탈 액티브 시간은 복수의 서브 블록들(111) 중 적어도 하나가 액티브 상태인 시간일 수 있다. 도 3을 참조하여 토탈 액티브 시간이 후술될 수 있다.
DVFS 제어부(11_4)는 샘플 주기(Sample Period, SP)마다 IP 장치(11)의 동작 조건을 제어하는 제어 신호들(CTRL_CLK, CTRL_VDD)을 출력할 수 있다. 구체적으로, DVFS 제어부(11_4)는 클럭 신호(CLK)의 주파수를 제어하는 클럭 제어 신호(CTRL_CLK)를 출력할 수 있고, 전원 전압(VDD)의 레벨을 제어하는 전압 제어 신호(CTRL_VDD)를 출력할 수 있다.
DVFS 제어부(11_4)는 복수의 서브 블록들(11_1)의 서브 액티브 시간들 및 IP 장치(11)의 토탈 액티브 시간을 기초로, 샘플 주기 동안 복수의 서브 블록들(11_1)이 소모하는 전력을 산출할 수 있다. 구체적으로, 도 4를 참조하여 후술되는 바와 같이, DVFS 제어부(11_4)는 내부 메모리(14)에 저장된 전력 계수 테이블을 참조하여, 복수의 서브 블록들(11_1)이 소모하는 전력을 산출할 수 있다.
DVFS 제어부(11_4)는 복수의 서브 블록들(11_1)이 소모하는 전력을 기초로 동작 조건을 제어할 수 있다. 예를 들어, DVFS 제어부(11_4)는 복수의 서브 블록들(11_1)이 소모하는 전력이 상대적으로 낮은 경우, 더 높은 주파수를 갖는 클럭 신호(CLK)가 생성되도록 클럭 관리부(12)를 제어함으로써, IP 장치(11)의 성능을 향상시킬 수 있다.
DVFS 제어부(11_4)는 DVFS 기능과 동작을 수행할 수 있는 하드웨어를 의미하거나 DVFS 기능과 동작을 수행할 수 있는 컴퓨터 프로그램 코드를 의미할 수 있다. 다만, 이에 한정되지 않으며 DVFS 기능과 동작을 수행시킬 수 있는 컴퓨터 프로그램 코드가 탑재된 전자적 기록 매체, 예컨대 프로세서를 의미할 수 있다. 즉, DVFS 제어부(113)는 본 발명의 기술적 사상을 수행하기 위한 하드웨어 및/또는 하드웨어를 구동하기 위한 소프트웨어의 기능적 및/또는 구조적 결합을 의미할 수 있다.
클럭 관리부(12)는 클럭 신호(CLK)를 생성할 수 있고, 클럭 제어 신호(CTRL_CLK)를 기초로 클럭 신호(CLK)의 주파수를 조절할 수 있다. 예를 들어, 클럭 관리부(120)는 클럭 제어 신호(CTRL_CLK)에 기초하여 클럭 신호(CLK)를 생성하는 오실레이터를 포함할 수 있다. 클럭 관리부(120)는 클락 생성기, 클락 생성 회로로 지칭될 수도 있다.
전력 관리부(13)는 전원 전압(VDD)을 생성할 수 있고, 전압 제어 신호(CTRL_VDD)를 기초로 전원 전압(VDD)의 크기를 조절할 수 있다. 예를 들면, 전력 관리부(13)는 제어 신호(CTRL_VDD)에 기초하여 전원 전압(VDD)을 생성하는 스위칭 레귤레이터를 포함할 수 있다. 전력 관리부(13)는 PMIC(power management integrated circuit)로 지칭될 수도 있다.
메모리(14)는 IP 장치(11)에 의해서 액세스될 수 있고 IP 장치(11)는 메모리(14)에 데이터를 저장하거나 메모리(140)에 저장된 데이터를 독출할 수 있다. 메모리(14)는 SRAM(static random access memory), DRAM(dynamic random access memory) 등과 같은 휘발성(volatile) 메모리 장치를 포함할 수도 있고, 플래시 메모리, RRAM(resistive random access memory) 등과 같은 비휘발성(non-volatile) 메모리 장치를 포함할 수도 있다. 일부 실시 예들에서, 도 4을 를 참조하여 후술되는 바와 같이, 메모리(14)는 전력 계수 테이블을 저장할 수 있다. 일부 실시 예들에서, 도 1에 도시된 바와 상이하게, 메모리(14)는 IP 장치(11)에 포함될 수 있다.
도시되지 않았으나, 시스템(10)은 IP(Intellectual Propertie) 장치(11)와 통신하는 IO 인터페이스 블록(input/output interface block), USB 호스트 블록(universal serial bus host block), USB 슬레이브 블록(universal serial bus slave block) 등 다양한 종류의 기능 블록들을 포함할 수 있다.
도면들을 참조하여 후술되는 바와 같이, DVFS 제어부(11_4)는 토탈 액티브 시간 및 서브 액티브 시간을 기초로 샘플 주기 동안 IP 장치(11)가 소모하는 전력을 산출할 수 있고, 소모 전력을 기초로 제어 신호들(CTRL_CLK, CTRL_VDD)을 생성하여 클럭 관리부(12) 및 전력 관리부(13)에 제공할 수 있다. 이에 따라, IP 장치(11)는 소모 전력이 상대적으로 낮은 경우, 남는 전력 마진을 성능 향상에 반영할 수 있다.
도 2는 본 개시의 예시적 실시 예에 따른 서브 블록의 소모 전력을 설명하는 도면이다. 도 2를 참조하면, 서브 블록의 소모 전력 P은 [수학식 1]과 같이 표현될 수 있다.
여기서, C는 서브 블록의 커패시턴스이고, V는 서브 블록에 인가되는 전원 전압의 크기이고, f는 서브 블록에 인가되는 클럭 신호의 주파수일 수 있다. 서브 블록에 포함되는 커패시터는 전원 전압이 높을수록 빠르게 충전될 수 있으므로, 전원 전압의 크기와 클럭 신호의 주파수는 비례할 수 있다. 이에, 소모 전력은 클럭 신호의 주파수의 세제곱에 비례할 수 있다.
본 명세서에서, 전력과 연관되는 파라미터들 중 클럭 신호의 주파수 f 및 전원 전압의 크기 V를 제외한 파라미터는 전력 계수로 통칭될 수 있다. 예를 들어, [수학식 1]에서 서브 블록의 커패시턴스는 전력 계수로 지칭될 수 있다.
복수의 서브 블록들(11_1)은 서로 상이한 회로 구조를 가질 수 있고, 이에 따라 서로 상이한 성능을 가질 수 있다. 즉, 복수의 서브 블록들(11_1)이 단위 시간 당 처리할 수 있는 명령어의 개수는 상이할 수 있다. 한편, 상이한 회로 구조로 인해, 전원 전압의 크기 및 클럭 신호의 주파수가 동일하더라도, 복수의 서브 블록들(11_1)이 소모하는 전력은 상이할 수 있다. 즉, 복수의 서브 블록들의 전력 계수들은 상이할 수 있다.
도 2를 참조하면, 제1 서브 블록(SB1)의 전력 계수는 C1이고, 제2 서브 블록(SB2)의 전력 계수는 C2이고, 제3 서브 블록(SB3)의 전력 계수는 C3이고, 제4 서브 블록(SB4)의 전력 계수는 C4일 수 있다. 한편, 일부 실시 예들에서, 도 2와 상이하게, 복수의 서브 블록들(SB1, SB2, SB3, SB4) 중 일부의 전력 계수는 동일할 수 있다. 예를 들어, 도 12를 참조하여 후술되는 바와 같이, 복수의 서브 블록들은 동일한 성능을 갖는 서브 블록들의 집합인 클러스터들로 구분될 수 있다. 구체적으로, 복수의 서브 블록들은 제1 클러스터에 포함되는 서브 블록들 및 제2 클러스터에 포함되는 서브 블록들로 구분될 수 있다. 제1 클러스터에 포함되는 서브 블록은 제2 클러스터에 포함되는 서브 블록보다 적은 전력을 소모하되, 상대적으로 낮은 성능을 제공할 수 있다.
도 3은 본 개시의 예시적 실시 예에 따른 서브 블록의 소모 전력을 설명하는 도면이다. 도 3의 내용은 도 1을 참조하여 후술될 수 있다. 도 3을 참조하면, DVFS 제어부(11_4)는 샘플 주기(SP)가 도래하면 샘플 주기(SP) 동안 IP 장치(11)가 소모하는 전력을 기초로 DVFS 동작을 시작할 수 있다. DVFS 동작은 IP 장치(11)의 동작 조건, 즉 클럭 신호(CLK)의 주파수 또는 전원 전압(VDD)의 크기를 조정하는 동작일 수 있다.
IP 장치(11)에 포함되는 복수의 서브 블록들(SB1 내지 SB4)은 서로 상이한 시간에서 활성화될 수 있다. 제1 서브 블록(SB1)은 제1 서브 액티브 시간(SACT1) 동안 활성화될 수 있고, 제2 서브 블록(SB2)은 제2 서브 액티브 시간(SACT2) 동안 활성화될 수 있고, 제3 서브 블록(SB3)은 제3 서브 액티브 시간(SACT3) 동안 활성화될 수 있고, 제4 서브 블록(SB4)은 제4 서브 액티브 시간(SACT4) 동안 활성화될 수 있다. 복수의 서브 블록들(SB1 내지 SB4) 중 적어도 하나는 토탈 액티브 시간(TACT) 동안 활성화될 수 있다.
각 서브 블록이 소모하는 전력은 도 2에서 전술된 바와 같이 전력 계수, 클럭 신호(CLK)의 주파수 및 전원 전압(VDD)의 크기를 통해 결정될 수 있다. 샘플 주기(SP) 동안 IP 장치(11)에 인가되는 클럭 신호(CLK)의 주파수 및 전원 전압(VDD)의 크기는 고정될 수 있다. 따라서, 서브 블록이 소모하는 전력은 서브 블록에 대응하는 전력 계수(C)에 비례할 수 있다. 도 3을 참조하면, 제1 서브 블록(SB1)이 소모하는 전력은 P1이고, 제2 서브 블록(SB2)이 소모하는 전력은 P2이고, 제3 서브 블록(SB3)이 소모하는 전력은 P3이고, 제4 서브 블록(SB4)이 소모하는 전력은 P4일 수 있다.
샘플 주기(SP) 동안 IP 장치(11)가 소모하는 에너지는 복수의 서브 블록들이 소모하는 에너지의 합일 수 있다. 따라서, 적어도 하나의 서브 블록이 활성화되는 토탈 액티브 시간(TACT) 동안 IP 장치의 평균 소모 전력 Pave은 [수학식 2]와 같이 표현될 수 있다.
DVFS 제어부(11_4)는 샘플 주기(SP)가 도래할 때마다 샘플 주기(SP) 동안 IP 장치(11)의 평균 소모 전력 Pave를 산출하고, 평균 소모 전력 Pave를 기초로 동작 조건을 조정할 수 있다.
발열량을 제어하거나 제한된 전력을 원활히 공급하기 위하여, IP 장치(11)에 할당 가능한 최대 전력은 미리 정해질 수 있다. 샘플 주기(SP) 동안 평균 소모 전력 Pave가 낮은 경우, 최대 전력에 대한 전력 마진이 커지므로, 본 개시의 예시적 실시 예에 따른 DVFS 제어부(11_4)는 클럭 신호(CLK)의 주파수 또는 전원 전압(VDD)의 크기를 상향시킴으로써 IP 장치(11)의 성능을 향상시킬 수 있다.
도 4는 본 개시의 예시적 실시 예에 따른 컴퓨팅 시스템을 설명하는 블록도이다. 도 5는 본 개시의 예시적 실시 예에 따른 전력 계수 테이블을 설명하는 도면이다. 도 4를 참조하면, 컴퓨팅 시스템(400)은 DVFS 제어부(410), 복수의 액티브 카운터들(421, 422, 423), 토탈 카운터(430), 메모리(440), 클럭 관리부(451), 전력 관리부(452) 및 타이머(460)를 포함할 수 있다. 도 1과 중복되는 구성요소에 대한 설명은 생략될 수 있다. DVFS 제어부(410)는 DVFS 관리자 모듈(411), 클럭 관리부 드라이버(412) 및 전력 관리부 드라이버(413)를 포함할 수 있다.
DVFS 관리자 모듈(411)은 DVFS 동작을 전반적으로 제어할 수 있다. 일부 일시 예들에서, DVFS 관리자 모듈(411)은 복수의 액티브 카운터들(421, 422, 423)로부터 서브 액티브 시간을 획득하고, 토탈 카운터(430)로부터 토탈 액티브 시간을 획득할 수 있다. DVFS 관리자 모듈(411)은 메모리(440)에 액세스하여 전력 계수 테이블을 참조할 수 있다. DVFS 관리자 모듈(411)은 서브 블록의 전력 계수, 서브 액티브 시간 및 토탈 액티브 시간을 기초로 IP 장치의 소모 전력을 산출할 수 있다. DVFS 관리자 모듈(411)은 소모 전력을 기초로 동작 조건이 조정되도록 클럭 관리부 드라이버(412) 및 전력 관리부 드라이버(413)를 제어할 수 있다.
클럭 관리부 드라이버(412)는 DVFS 관리자 모듈(411)의 제어에 따라 클럭 제어 신호(CTRL_CLK)를 클럭 관리부(451)로 출력할 수 있다. 클럭 관리부(451)는 클럭 제어 신호(CTRL_CLK)에 따라 조정된 주파수를 갖는 클럭 신호(CLK)를 출력할 수 있다. 전력 관리부 드라이버(413)는 DVFS 관리자 모듈(411)의 제어에 따라 전압 제어 신호(CTRL_VDD)를 전력 관리부(452)로 출력할 수 있다. 전력 관리부(452)는 전압 제어 신호(CTRL_VDD)에 따라 조정된 크기를 갖는 전원 전압 (VDD)을 출력할 수 있다.
메모리(440)는 전력 계수 테이블을 저장할 수 있다. 도 5를 참조하면, 전력 계수 테이블은 서브 블록과 전력 계수 간의 관계를 나타낼 수 있다. 구체적으로, 도 2를 참조하여 전술된 바와 같이, 전력 계수 테이블은 제1 내지 4 서브 블록들(SB1 내지 SB4)과 제1 내지 4 전력 계수(C1 내지 C4) 간의 관계를 나타낼 수 있다.
DVFS 관리자 모듈(411)은 토탈 카운터(430) 및 복수의 액티브 카운터들(421, 422, 423)로부터 서브 액티브 시간 및 토탈 액티브 시간을 획득하고, 전력 계수 테이블을 참조함으로써, 샘플 구간 내에 IP 장치(11)의 소모 전력을 산출할 수 있다.
DVFS 관리자 모듈(411)은 소모 전력을 기초로 동작 조건을 조정할 수 있다. 예를 들어, DVFS 관리자 모듈(411)은 [수학식 3]을 통해 클럭 신호(CLK)의 다음 주파수(Fnext)를 결정할 수 있다..
여기서, Fnext는 샘플 주기(SP) 이후 클럭 신호(CLK)의 주파수이고, 워크 로드(WL)는 샘플 주기(SP) 동안 IP 장치(11)의 워크 로드이고, 전력 사용률(Power utilization, PU)은 최대 허용 전력 대비 샘플 주기(SP) 동안 소모된 전력의 비율이고, Fcurrent는 샘플 주기(SP) 동안 클럭 신호(CLK)의 주파수일 수 있다. 클럭 신호(CLK)의 주파수는 동작 주파수로 지칭될 수 있다. [수학식 1]을 통해 전술한 바와 같이, 전력은 주파수의 세제곱에 비례할 수 있으므로, [수학식 3]과 달리, 일부 실시예들에서, Fnext는 [수학식 4]와 같이 전력 사용률의 세제곱근에 반비례하는 것으로 산출될 수도 있다. 한편, Fnext를 조율하기 위해 전력 사용률 또는 워크 로드에 상수 또는 변수가 곱해지거나 더해질 수 있음은 통상에 기술자에게 자명할 것이다.
[수학식 3] 및 [수학식 4]에 따르면, DVFS 관리자 모듈(411)은 클럭 신호(CLK)의 주파수를 조정하기 위하여, 샘플 주기(SP) 동안의 워크 로드 뿐만 아니라 전력 사용률을 고려할 수 있다. 즉, DVFS 관리자 모듈(411)은 IP 장치(11)의 전력 소모가 적은 경우, 동작 주파수를 더 높게 상향시킴으로써 IP 장치(11)의 성능 향상을 도모할 수 있다.
DVFS 관리자 모듈(411)은 [수학식 5]에 따라 전력 사용률 PU을 결정할 수 있다.
여기서, Pave는 평균 소모 전력으로서 [수학식 2]를 통해 산출될 수 있고, Pmax는 최대 허용 전력으로서 샘플 주기 동안 소모될 수 있는 IP 장치(11)의 최대 전력을 의미할 수 있다. IP 장치(11)의 소모 전력이 한계 전력을 초과하는 경우, 기준 전류 이상의 과전류가 흘러서 시스템이 손상되거나, 시스템의 온도가 기준 온도 이상으로 올라가는 등, 시스템이 정상적으로 동작하지 못할 수 있다. 따라서, 최대 허용 전력 Pmax는 한계 전력의 일부분, 예를 들어, 80% 수준으로 설계될 수 있다.
[수학식 3]을 참조하면, 전력 사용률은 1 이하의 값을 가질 수 있다. 즉, 모든 서브 블록들이 샘플 주기 동안 액티브 상태인 경우 전력 사용률은 1이고, 그 외의 경우에 전력 사용률은 1보다 낮을 수 있다. [수학식 2]을 참조하면, 전력 사용률이 1보다 낮은 경우, 동작 주파수는 워크 로드만 고려할 때보다 상대적으로 높게 상향될 수 있다. 결과적으로, 본 개시의 예시적 실시 예에 따른 DVFS 관리자 모듈(411)은 전력 사용률을 고려하여 동작 주파수를 결정함으로써, IP 장치(11)의 성능 향상을 도모하고, 전력을 효율적으로 관리할 수 있다.
워크 로드는 다양한 방법을 통해 산출될 수 있다. 예를 들어, 워크 로드(WL)는 샘플 주기(SP) 대비 토털 액티브 시간(TACT)의 비율을 나타내는 [수학식 6]를 통해 산출될 수 있다.
다만 실시예는 이에 제한되지 않으며, 워크 로드는 샘플 주기 동안 처리되는 명령의 개수, 캐시 히트의 개수 또는 캐시 미스의 개수 등을 기초로 산출될 수도 있다.
도 6은 본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법을 설명하는 흐름도이다. 구체적으로, 도 6은 DVFS 동작을 수행하는 IP 장치의 동작 방법을 설명하는 흐름도이다. 도 6을 참조하면, IP 장치의 동작 방법은 복수의 단계들(S610 내지 S630)을 포함할 수 있다. 도 6의 각 단계는 도 1을 참조하여 후술될 수 있다.
S610 단계에서, 복수의 액티브 카운터들(11_2) 및 토탈 카운터(11_3)는 샘플 주기(SP) 동안 복수의 서브 블록들(11_1)의 액티브 시간을 카운트할 수 있다. 복수의 액티브 카운터들(11_2)은 복수의 서브 블록들(11_1)과 각각 대응될 수 있다. 도 3을 참조하여 전술된 바와 같이, 액티브 카운터는 대응되는 서브 블록의 액티브 시간을 카운트할 수 있다. 하나의 서브 블록에 대한 액티브 시간은 서브 액티브 시간(SACT)으로 지칭될 수 있다. 도 3을 참조하여 전술된 바와 같이, 토탈 카운터(11_3)는 복수의 서브 블록들(11_1) 중 적어도 하나의 서브 블록이 액티브 상태인 토털 액티브 시간(TACT)을 카운트할 수 있다.
S620 단계에서, DVFS 제어부(11_4)는 액티브 시간을 기초로 샘플 주기(SP) 동안 IP 장치(11)가 소모한 소모 전력을 산출할 수 있다. 구체적으로, DVFS 제어부(11_4)는 전력 계수 테이블을 참조하여 복수의 서브 블록들(11_1) 각각이 소모하는 소모 전력을 산출하고, 복수의 서브 블록들(11_1)의 소모 전력들의 합을 토탈 액티브 시간(TACT)로 나눔으로써 IP 장치(11)가 소모한 평균 소모 전력을 산출할 수 있다.
S630 단계에서, DVFS 제어부(11_4)는 IP 장치(11)가 소모한 소모 전력을 기초로 DVFS 동작을 수행할 수 있다. 구체적으로, DVFS 제어부(11_4)는 평균 소모 전력과 최대 허용 전력을 이용하여 전력 사용률을 산출하고, 산출된 전력 사용률을 기초로 IP 장치(11)에 대한 동작 조건을 조정할 수 있다. 예를 들어, 전력 사용률이 낮은 경우 IP 장치(11)에 인가되는 클럭 신호(CLK)의 주파수가 상향되거나, IP 장치(11)에 인가되는 전원 전압(VDD)의 크기가 상향되도록 제어 신호들(CTRL_CLK, CTRL_VDD)을 출력할 수 있다.
본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법은, IP 장치의 소모 전력을 기초로 DVFS 동작을 수행함으로써, IP 장치의 성능 및 전력 관리의 효율성을 향상시킬 수 있다.
도 7은 본 개시의 예시적 실시 예에 따른 게이팅 회로를 포함하는 시스템을 설명하는 블록도이다.
도 7을 참조하면, 시스템(700)은 게이팅 회로(713)를 포함할 수 있다. 게이팅 회로(713)는 유휴(idle) 상태인 서브 블록에 인가되는 클럭 신호(CLK) 또는 전원 전압(VDD)이 차단되도록 제어함으로써 유휴 상태일 때 낭비되는 전력을 최소화할 수 있다. 구체적으로, 게이팅 회로(713)는 복수의 게이팅 신호들(CG 1, CG N, PG1, PG N)을 출력함으로써, 클럭 신호(CLK) 또는 전원 전압(VDD)이 복수의 서브 블록들(711, 712)에 선택적으로 인가되도록 제어할 수 있다.
시스템(700)은 복수의 스위치들(CS1, CS2, PS1, PS2)을 포함할 수 있다. 제1 및 2 클럭 스위치(CS1, CS2)는 클럭 게이팅 신호들(CG 1, CG N)에 따라 클럭 신호(CLK)를 스위칭할 수 있다. 예를 들어, 클럭 게이팅 신호가 논리 하이 레벨인 경우, 클럭 스위치는 턴-온될 수 있고, 클럭 신호(CLK)를 대응하는 서브 블록에 제공할 수 있다. 즉, 클럭 게이팅 신호가 클럭 신호의 활성화를 지시하는 경우, 클럭 신호(CLK)는 서브 블록에 제공될 수 있다. 실시 예는 이에 제한되지 않으며, 클럭 스위치의 구조는 다양할 수 있다. 제1 및 2 전원 스위치(PS1, PS2)는 전원 게이팅 신호들(PG 1, PG N)에 따라 전원 전압(VDD)을 스위칭할 수 있다. 예를 들어, 전원 게이팅 신호가 논리 하이 레벨인 경우, 전원 스위치는 턴-온될 수 있고, 전원 전압(VDD)을 대응하는 서브 블록에 제공할 수 있다. 즉, 전원 게이팅 신호가 전원 전압의 활성화를 지시하는 경우, 전원 전압(VDD)은 서브 블록에 제공될 수 있다. 실시 예는 이에 제한되지 않으며, 클럭 스위치의 구조는 다양할 수 있다. 일부 실시예들에서, 전원 스위치는 PFET(P-type Field Effect Transistor)로 구현되는 헤더 스위치 또는 NFET(N-type Field Effect Transistor)로 구현되는 풋 스위치일 수 있다.
복수의 액티브 카운터들(741, 742)은 게이팅 신호들(CG 1, CG N, PG1, PG N)을 기초로 복수의 서브 블록들(711, 712)의 서브 액티브 시간을 카운트할 수 있다. 예를 들어, 제1 클럭 게이팅 신호(CG 1)가 논리 하이 레벨인 경우, 제1 서브 블록(711)은 액티브 상태이므로, 제1 액티브 카운터(741)는 제1 클럭 게이팅 신호(CG 1)가 논리 하이 레벨인 구간을 카운트함으로써 제1 서브 액티브 시간(SACT1)을 획득할 수 있다. 즉, 서브 액티브 시간은, 클럭 게이팅 신호가 클럭 신호의 활성화를 지시하는 시간에 대응될 수 있다. 또는, 서브 액티브 시간은, 전원 게이팅 신호가 전원 전압의 활성화를 지시하는 시간에 대응될 수 있다.
본 개시의 예시적 실시 예에 따른 DVFS 제어부(750)는 게이팅 제어 신호를 기초로 획득되는 서브 액티브 시간을 사용함으로써, 소모 전력이 반영된 DVFS 동작을 수행할 수 있다. 따라서, 시스템(700)의 성능이 향상되고, 전력 관리의 효율성이 제고될 수 있다.
도 8은 본 개시의 예시적 실시 예에 따른 IP 장치의 동작 방법을 설명하는 흐름도이다. 구체적으로, 도 8은 서브 블록들의 동작 조건을 조정하는 DVFS 제어부의 동작 방법을 설명하는 흐름도이다. 도 8을 참조하면, IP 장치의 동작 방법은 복수의 단계들(S810 내지 S830)을 포함할 수 있다. 도 8의 각 단계는 도 1 또는 도 4를 참조하여 후술될 수 있다.
S810 단계에서, DVFS 제어부(11_4)는 샘플 주기(SP) 중 토탈 액티브 시간이 차지하는 비율을 기초로 워크 로드를 획득할 수 있다. 구체적으로, DVFS 제어부(11_4)는 [수학식 6]를 참조하여 워크 로드를 획득할 수 있다. 샘플 주기(SP)는 DVFS 제어부(11_4)가 DVFS 동작을 수행하는 주기에 해당할 수 있다. 타이머(460)는 샘플 주기(SP)를 주기적으로 카운트하고, 샘플 주기(SP)가 도과할 때마다 DVFS 제어부(410)에 트리거 신호(Trriger_SG)를 출력함으로써 DVFS 동작의 개시를 지시할 수 있다. 토탈 액티브 시간은 복수의 서브 블록들 중 적어도 하나가 활성화 상태인 시간을 의미할 수 있다. 워크 로드를 획득하는 방법은 이에 제한되지 않으며, 샘플 구간 동안 처리되는 명령의 개수, 캐시 히트의 개수 또는 캐시 미스의 개수 등을 기초로 산출될 수도 있다.
S820 단계에서, DVFS 제어부(11_4)는 샘플 주기(SP) 동안 복수의 서브 블록들의 소모 전력을 기초로 전력 사용률을 획득할 수 있다. 예를 들어, DVFS 제어부(11_4)는 [수학식 5]를 참조하여 전력 사용률을 획득할 수 있다. 전력 사용률은 IP 장치(11)가 소모할 수 있는 최대 전력 대비 실제 사용한 소모 전력의 비율을 나타낼 수 있다.
S830 단계에서, DVFS 제어부(11_4)는 워크 로드 및 전력 사용률을 기초로 서브 블록들에 대한 동작 조건을 조정할 수 있다. 예를 들어, DVFS 제어부(11_4)는 [수학식 3] 또는 [수학식 4]를 참조하여 클럭 신호(CLK)의 주파수를 조정할 수 있다. 즉, 본 개시의 예시적 실시 예에 따른 DVFS 제어부(11_4)는 전력 사용률은 기초로 동작 조건을 조정함으로써, 전력 마진에 여유가 있는 경우 IP 장치의 성능을 향상시킬 수 있다. 성능 향상(동작 주파수의 상승 또는 전원 전압의 크기 상승)에 의해 소모되는 전력이 커지더라도, 전력 마진에 여유가 있으므로 효율적인 전력 관리가 가능할 수 있다.
도 9는 본 개시의 예시적 실시 예에 따른 전력 사용률을 산출하는 방법을 설명하는 흐름도이다. 구체적으로, 도 9는 도 8의 단계 S820에 대응되는 방법일 수 있다. 전력 사용률을 산출하는 방법은 복수의 단계들(S910 내지 S930)을 포함할 수 있다. 도 9의 각 단계는 도 1, 도 4 또는 도 7을 참조하여 후술될 수 있다.
S910 단계에서, DVFS 제어부(410)는 복수의 액티브 카운터들(421 내지 423)로부터 복수의 서브 블록들의 서브 액티브 시간들을 획득할 수 있다. 서브 액티브 시간은 서브 블록이 활성화 상태인 시간을 의미할 수 있다. 도 7을 참조하여 전술된 바와 같이, 서브 액티브 시간은 게이팅 회로(713)가 출력하는 게이팅 제어 신호가 클럭 신호 또는 전원 전압의 활성화를 지시하는 시간에 대응될 수 있다.
S920 단계에서, DVFS 제어부(410)는 서브 액티브 시간과 전력 계수를 기초로 샘플 구간에서 IP 장치의 평균 소모 전력을 산출할 수 있다. 구체적으로, DVFS 제어부(410)는 메모리(440)에 저장된 전력 계수 테이블을 기초로, 각 서브 블록에 대응하는 전력 계수를 식별하고, [수학식 1]을 사용하여 각 서브 블록이 소모하는 개별적인 소모 전력을 산출할 수 있다. 그 후, [수학식 2]를 사용하여 IP 장치의 평균 소모 전력을 산출할 수 있다. 구체적으로, 서브 블록의 개별적인 소모 전력과 서브 블록의 서브 액티브 시간을 곱함으로써 서브 블록이 소모한 에너지를 산출하고, 복수의 서브 블록들이 소모한 에너지를 토탈 액티브 시간으로 나눔으로써 평균 소모 전력을 산출할 수 있다.
S930 단계에서, DVFS 제어부(410)는 평균 소모 전력과 최대 허용 전력 간의 비율을 기초로 전력 사용률을 산출할 수 있다.
도 10은 본 개시의 예시적 실시 예에 따른 동작 조건의 변경을 설명하는 도면이다. 구체적으로, 도 10은 IP 장치(900)에 포함된 복수의 서브 블록들(910 내지 940) 중 제1 서브 블록(910)이 샘플 주기(SP) 동안 활성화 상태인 것을 나타내는 도면이다. 도 9에서 서브 블록이 활성화 상태인 경우 ON으로 표시되고, 서브 블록이 유휴 상태인 경우 OFF로 표시될 수 있다. 도 9에서, 각 서브 블록이 소모하는 전력은 동일하다고 가정될 수 있다. 즉, 도 2에 도시된 그래프와 달리, 복수의 서브 블록들의 전력 계수는 동일할 수 있다.
도 10의 좌측을 참조하면, 샘플 주기(SP) 동안 제1 주파수(F1)를 갖는 클럭 신호(CLK)가 IP 장치(900)에 인가될 수 있다. 서브 블록들(910 내지 940)은 클럭 신호(CLK)를 기초로 명령어를 처리할 수 있다. 도 10의 우측을 참조하면, 샘플 주기(SP)가 도과하면 DVFS 제어부(11_4)는 클럭 신호(CLK)의 주파수를 제2 주파수(F2)로 조정할 수 있다. 도 10은 [수학식 3]을 사용한 주파수 조정을 도시하고 있으나, 실시 예는 이에 제한되지 않는다. 예를 들어, DVFS 제어부(11_4)는 [수학식 4]를 사용하여 주파수를 조정할 수도 있다.
샘플 주기(SP) 동안 하나의 서브 블록만 활성화되었으므로, 전력 사용률은 1/4일 수 있고, 샘플 주기(SP) 동안 적어도 하나의 서브 블록이 항상 활성화되었으므로 워크 로드는 1일 수 있다. 따라서, 제2 주파수(F2)는 제1 주파수(F1)의 4배로 결정될 수 있다. 다만, 실시 예는 이에 제한되지 않으며, 주파수 조정의 최적화를 위하여, 워크 로드 및 전력 사용률 각각에 파라미터가 더해지거나 곱해질 수 있다.
도 11은 본 개시의 예시적 실시 예에 따른 DVFS 동작의 반응성을 설명하기 위한 도면이다. 구체적으로, 도 11을 참조하면, 실선은 전력 사용률을 고려한 동작 주파수 조정의 그래프를 나타내고, 점선은 전력 사용률을 고려하지 않은 동작 주파수 조정의 그래프를 나타낼 수 있다. 예를 들어, 실선의 그래프는 도 10을 참조하여 전술된 동작 주파수 조정에 대응하는 그래프일 수 있다. 도 11에서 샘플 주기(SP)마다 동작 주파수가 조정될 수 있다.
도 11의 실선으로 도시된 바와 같이, 전력 사용률을 고려하여 동작 주파수를 조정하는 경우, 제1 샘플 주기(SP1)가 도과하면 동작 주파수는 제1 주파수(F1)에서 제2 주파수(F2)로 상승할 수 있다. 도 10을 참조하여 전술된 바와 같이, 전력 사용률에 의해 동작 주파수가 상승하는 폭은 커질 수 있다.
반면, 도 11의 점선으로 도시된 바와 같이, 전력 사용률을 고려하지 않고 동작 주파수를 조정하는 경우, 제1 샘플 주기(SP1)가 도과하면 동작 주파수는 제1 주파수(F1)에서 제3 주파수(F3)로 상승할 수 있다. 제3 주파수(F3)는 제2 주파수(F2)보다 작을 수 있다. 전력 사용률을 고려하지 않고 동작 주파수를 조정하는 경우, 제n 샘플 주기(SPn)가 도과한 후에 동작 주파수가 제2 주파수(F2)에 도달할 수 있다. 즉, 전력 사용률을 고려하여 동작 주파수를 조정하는 경우 빠른 속도로 동작 주파수가 상승할 수 있다.
결과적으로, 본 개시의 예시적 실시 예에 따라 전력 사용률을 사용하여 DVFS 동작을 수행하는 경우, 동작 주파수의 상승 폭이 커짐으로써 IP 장치(900)의 성능을 높이기 위한 반응성이 향상될 수 있다.
도 12는 본 개시의 예시적 실시 예에 따른 복수의 클러스터들을 포함하는 시스템을 나타내는 블록도이다. 도 12를 참조하면, 시스템(1000)은 제1 클러스터(1010), 제2 클러스터(1020), 클럭 관리부(1030) 및 DVFS 제어부(1040)를 포함할 수 있다. 제1 클러스터(1010)는 제1 내지 4 코어들(1011 내지 1014)을 포함할 수 있고, 제2 클러스터(1020)는 제5 내지 제8 코어들(1021 내지 1024)을 포함할 수 있다. 설명의 편의를 위하여, 제1 클러스터(1010) 및 제2 클러스터(1020)가 각각 4개의 코어들을 포함하는 것으로 도시하였으나, 실시 예는 이에 제한되지 않는다. 도시되지 않았으나, 시스템(1000)은 제1 클러스터(1010)에 포함된 코어들(1011 내지 1014) 및 제2 클러스터(1020)에 포함된 코어들(1021 내지 1024)의 서브 액티브 시간 및 토탈 액티브 시간을 카운트하는 카운터들을 더 포함할 수 있다.
제1 클러스터(1010)에 포함된 코어들(1011 내지 1014)과 제2 클러스터(1020)에 포함된 코어들(1021 내지 1024)의 성능은 상이할 수 있다. 이하에서, 제1 클러스터(1010)에 포함된 코어들(1011 내지 1014)의 단위 시간당 연산량은 제2 클러스터(1020)에 포함된 코어들(1021 내지 1024)의 단위 시간당 연산량보다 작은 것으로 가정한다. 클럭 관리부(1030)는 제1 클럭 신호(CLK1) 및 제2 클럭 신호(CLK2)를 출력할 수 있고, 제1 클러스터(1010)는 제1 클럭 신호(CLK1)에 따라 명령어를 처리하고, 제2 클러스터(1020)는 제2 클럭 신호(CLK2)에 따라 명령어를 처리할 수 있다.
코어의 워크 워드가 기준 값보다 큰 경우, 해당 코어는 헤비 로드 상태(heavy load state)일 수 있다. 예를 들어, 제1 클러스터(1010)의 제2 코어(1012)는 헤비 로드 상태(heavy load state)일 수 있다. 헤비 로드 상태인 제2 코어(1012)에 인가되는 제1 클럭 신호(CLK1)의 주파수가 기준 주파수에 도달하면, 제2 코어(1012)에 할당된 태스크의 적어도 일부는 제2 클러스터(1020)에 포함된 코어로 마이그레이션될 수 있다. 연산량이 상대적으로 큰 코어로 태스크의 일부가 마이그레이션됨으로써 시스템(1000)의 성능 및 전력 관리 효율성이 높아질 수 있다.
동작 주파수가 빠르게 기준 값에 도달할수록 태스크 마이그레이션에 유리할 수 있다. 도 11을 참조하여 전술한 바와 같이 본 개시의 예시적 실시 예에 따른 DVFS 제어부(1040)는 전력 사용률을 기초로 동작 주파수를 조정함으로써 주파수의 반응성을 향상시킬 수 있고, 이에 따라 태스크 마이그레이션 성능이 향상될 수 있다.
도 13은 본 개시의 예시적 실시 예에 따른 시스템을 나타내는 블록도이다. 도 13을 참조하면, 시스템(2000)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(tablet computer), PDA(personal digital assistant), EDA(enterprise digital assistant), 디지털 스틸 카메라(digital still camera), 디지털 비디오 카메라(digital video camera), PMP(portable multimedia player), PDN(personal navigation device) 또는 portable navigation device), 손으로 들고 다닐 수 있는 게임 콘솔(handheld game console), 또는 e-북(e-book)과 같이 손으로 들고 다닐 수 있는 장치(handheld device)로 구현될 수 있다.
시스템(2000)은 SoC(2200) 및 메모리 장치(2300)를 포함할 수 있다. SoC(2200)는 CPU(central processing unit)(2210), GPU(graphic processing unit)(2220), NPU(neural processing unit)(2230), ISP(Image Signal Processor)(2240), MIF(memory interface)(2250), CMU(clock management unit)(2260), PMU(power management unit)(2270)를 포함할 수 있다. CPU(2210), GPU(2220), NPU(2230) 및 ISP(2240)은 마스터 IP 장치로 지칭될 수 있고, MIF(2250)는 슬레이브 IP 장치로 지칭될 수 있다. CPU(2210), GPU(2220), NPU(2230), ISP(2240) 및 MIF(2250) 중 적어도 하나는 도 1 내지 12를 통해 전술된 IP 장치의 일 구현 예일 수 있다. 따라서, CPU(2210), GPU(2220), NPU(2230), ISP(2240) 및 MIF(2250) 중 적어도 하나는 복수의 서브 블록들을 포함할 수 있고, 복수의 서브 블록들이 소모하는 전력을 기초로 DVFS 동작을 수행하는 DVFS 제어부를 포함할 수 있다. CPU(2210), GPU(2220), NPU(2230), ISP(2240) 및 MIF(2250)에 포함된 DVFS 제어부는 CMU(2260) 또는 PMU(2270)를 제어할 수 있고, CPU(2210), GPU(2220), NPU(2230), ISP(2240) 및 MIF(2250)는 CMU(2260)로부터 클럭 신호(CLK)를 수신하고, PMU(2270)로부터 전원 전압을 수신함으로써 명령어를 처리할 수 있다.
CPU(2210)는 CMU(2260)에 의해 생성된 클럭 신호에 응답하여 메모리 장치(2300)에 저장된 명령들 및/또는 데이터를 처리 또는 실행할 수 있다.
GPU(2220)는 CMU(2260)에 의해 생성된 클럭 신호에 응답하여 메모리 장치(2300)에 저장된 이미지 데이터를 획득할 수 있다. GPU(2220)는 MIF(2250)로부터 제공되는 이미지 데이터로부터 디스플레이 장치(미도시)를 통해서 출력되는 영상을 위한 데이터를 생성할 수도 있고, 이미지 데이터를 인코딩할 수도 있다.
NPU(2230)는 기계 학습 모델을 실행하는 임의의 장치를 지칭할 수 있다. NPU(2230)는 기계 학습 모델을 실행하기 위하여 설계된 하드웨어 블록일 수 있다. 기계 학습 모델은 인공 신경망(artificial neural network), 결정 트리, 서포트 벡터 머신, 회귀 분석(regression analysis), 베이즈 네트워크(Bayesian network), 유전 계획법(genetic algorithm) 등에 기초한 모델일 수 있다. 인공신경망은, 비제한적인 예시로서 CNN(convolution neural network), R-CNN(region with convolution neural network), RPN(region proposal network), RNN(recurrent neural network), S-DNN(stacking-based deep neural network), S-SDNN(state-space dynamic neural network), Deconvolution Network, DBN(deep belief network), RBM(restricted Boltzmann machine), Fully Convolutional Network, LSTM(long short-term memory) Network, Classification Network를 포함할 수 있다.
ISP(2240)는 SoC(2200) 외부에 위치하는 이미지 센서(미도시)로부터 수신된 로우(RAW) 데이터에 대해 신호 처리 동작을 수행하고, 향상된 이미지 품질을 갖는 디지털 데이터를 생성할 수 있다.
MIF(2250)는 SoC(2200)의 외부에 위치하는 메모리 장치(2300)에 대한 인터페이스를 제공할 수 있다. 메모리 장치(2300)는 DRAM(Dynamic Random Access Memory), PRAM(Phase-change Random Access Memory), ReRAM(Resistive Random Access Memory) 또는 플래시 메모리일 수 있다.
CMU(2260)는 클럭 신호를 생성하고, 클럭 신호를 SoC(2200)의 구성요소들에 제공할 수 있다. CMU(2260)는 위상 동기 루프 회로(Phase Locked Loop; PLL), 지연 동기 루프(Delayed Locked Loop; DLL), 수정자(crystal)등의 클럭 생성 장치를 포함할 수 있다. PMU(2270)는 외부 전원을 내부 전원으로 변환하고, 내부 전원을 SoC(2200)의 구성요소들에 전력을 공급할 수 있다.
도 14는 본 개시의 예시적 실시 예에 따른 어플리케이션 프로세서를 포함하는 통신 장치를 나타내는 블록도이다.
도 14를 참조하면, 통신 장치(3000)는 어플리케이션 프로세서(3010), 메모리 장치(3020), 디스플레이(3030), 입력 장치(3040) 및 무선 송수신기(3050)를 포함할 수 있다. 어플리케이션 프로세서(3010)는 도 1 내지 13을 참조하여 전술된 IP 장치들 중 적어도 하나의 구현 예일 수 있다.
무선 송수신기(3050)는 안테나(3060)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(3050)는 안테나(3060)를 통하여 수신된 무선 신호를 어플리케이션 프로세서(3010)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 어플리케이션 프로세서(3010)는 무선 송수신기(3050)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(3030)로 전송할 수 있다. 또한, 무선 송수신기(3250)는 어플리케이션 프로세서(3010)로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(3060)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(3040)는 어플리케이션 프로세서(3010)의 동작을 제어하기 위한 제어 신호 또는 어플리케이션 프로세서(3010)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
일 실시 예에 따라, 어플리케이션 프로세서(3010)는 복수의 서브 블록들 및 복수의 서브 블록들의 동작 조건을 제어하는 DVFS 제어부를 포함할 수 있다. 도 1 내지 13을 참조하여 전술된 바와 같이, DVFS 제어부는 복수의 서브 블록들이 소모하는 전력을 기초로 동작 조건을 조정할 수 있다.
도 14에는 도시되지 않았으나, 통신 장치(3000)에 구비되는 각종 구성들에 클럭 신호를 제공하는 클럭 관리부 및 전원 전압을 제공하는 전력 관리부를 더 포함할 수 있다. 클럭 관리부는 DVFS 제어부의 제어에 따라 조정된 주파수를 갖는 클럭 신호를 출력할 수 있고, 전력 관리부는 DVFS 제어부의 제어에 따라 조정된 크기를 갖는 전원 전압을 출력할 수 있다.
이상에서와 같이 도면과 명세서에서 예시적인 실시 예들이 개시되었다. 본 명세서에서 특정한 용어를 사용하여 실시 예들을 설명되었으나, 이는 단지 본 개시의 기술적 사상을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 개시의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 개시의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
Claims (20)
- 동작 조건에 따라 명령어를 처리하도록 구성된 복수의 서브 블록들;
상기 복수의 서브 블록들 각각이 명령어를 처리하는 시간인 액티브 시간을 카운트하도록 구성된 복수의 액티브 카운터들; 및
상기 액티브 시간을 기초로, 샘플 주기 동안 상기 복수의 서브 블록들의 소모 전력을 산출하고, 상기 소모 전력을 기초로 상기 복수의 서브 블록들의 동작 조건을 조정하도록 구성된 DVFS(Dynamic Voltage and Freuqnecy Scaling) 제어부를 포함하는 집적 회로. - 제1항에 있어서,
상기 DVFS 제어부는,
상기 복수의 서브 블록들의 워크 로드를 산출하고, 상기 소모 전력을 기초로 전력 사용률을 산출하고, 상기 워크 로드와 상기 전력 사용률의 비율을 기초로 상기 동작 조건을 조정하는 것을 특징으로 하는 집적 회로. - 제2항에 있어서,
상기 복수의 서브 블록들 중 적어도 하나가 액티브 상태인 토털 액티브 시간을 카운트하도록 구성된 토털 카운터를 더 포함하고,
상기 DVFS 제어부는,
상기 복수의 서브 블록들 각각의 액티브 시간과 개별 소모 전력을 곱함으로써 상기 샘플 주기 동안 상기 복수의 서브 블록들이 소모한 에너지를 산출하고, 상기 복수의 서브 블록들이 소모한 에너지들의 합을 상기 토털 액티브 시간으로 나눔으로써 상기 소모 전력을 산출하는 것을 특징으로 하는 집적 회로. - 제3항에 있어서,
상기 DVFS 제어부는,
상기 샘플 주기와, 상기 복수의 서브 블록들 중 적어도 하나가 액티브 상태인 시간의 비율을 기초로 상기 워크 로드를 획득하는 것을 특징으로 하는 집적 회로. - 제3항에 있어서,
상기 DVFS 제어부는,
외부 메모리에 저장된 전력 계수 테이블을 참조하여 상기 복수의 서브 블록들 각각에 대응하는 전력 계수를 획득하고, 상기 전력 계수와 상기 동작 조건을 사용하여 상기 개별 소모 전력을 산출하는 것을 특징으로 하는 집적 회로. - 제5항에 있어서,
상기 동작 조건은,
상기 복수의 서브 블록들에 인가되는 클럭 신호의 주파수 또는 상기 복수의 서브 블록들에 인가되는 전원 전압의 크기인 것을 특징으로 하는 집적 회로. - 제6항에 있어서,
게이팅 제어 신호를 사용하여 상기 클럭 신호 또는 상기 전원 전압을 상기 복수의 서브 블록들에 선택적으로 제공하는 게이팅 회로를 더 포함하고,
상기 복수의 액티브 카운터들은,
상기 게이팅 제어 신호를 기초로 상기 액티브 시간을 카운트하는 것을 특징으로 하는 집적 회로. - 제1항에 있어서,
상기 복수의 서브 블록들은,
제1 클럭 신호에 따라 명령어를 처리하는 제1 서브 블록들; 및
제2 클럭 신호에 따라 명령어를 처리하는 제2 서브 블록들을 포함하고,
상기 제1 서브 블록들의 소모 전력을 기초로 조정되는 상기 제1 클럭 신호의 주파수가 기준 값을 초과하면, 상기 제2 서브 블록들 중 적어도 하나가 상기 제1 서브 블록들 중 적어도 하나에 할당된 명령어를 처리하는 것을 특징으로 하는 집적 회로. - 제1항에 있어서,
상기 복수의 서브 블록들 각각은,
CPU(Central Processing Unit) 코어, GPU(Graphic Processing Unit) 코어, NPU(Neural Processing Unit) 코어 또는 ISP(Image Signal Processor) 코어 중 하나인 것을 특징으로 하는 집적 회로. - 동작 조건에 따라 명령어를 처리하는 복수의 서브 블록들을 포함하는 집적 회로의 동작 방법에 있어서,
샘플 주기와, 상기 복수의 서브 블록들 중 적어도 하나가 액티브 상태인 토탈 액티브 시간의 비율을 기초로 워크 로드를 획득하는 단계;
상기 샘플 주기 동안 상기 복수의 서브 블록들의 소모 전력을 기초로 전력 사용률을 획득하는 단계; 및
상기 워크 로드와 상기 전력 사용률 간의 비율에 따라 동작 조건을 조정하는 단계를 포함하는 집적 회로의 동작 방법. - 제10항에 있어서,
상기 전력 사용률을 획득하는 단계는,
상기 샘플 주기 중 상기 복수의 서브 블록들 각각의 서브 액티브 시간을 획득하는 단계;
상기 서브 액티브 시간을 기초로 상기 샘플 주기 동안 상기 복수의 서브 블록들의 평균 소모 전력을 산출하는 단계; 및
상기 평균 소모 전력과 미리 결정된 최대 허용 전력 간의 비율을 기초로 전력 사용률을 산출하는 단계를 포함하는 집적 회로의 동작 방법. - 제11항에 있어서,
상기 동작 조건은,
상기 복수의 서브 블록들에 인가되는 클럭 신호의 주파수 또는 상기 복수의 서브 블록들에 인가되는 전원 전압의 크기인 것을 특징으로 하는 집적 회로의 동작 방법. - 제12항에 있어서,
상기 서브 액티브 시간을 획득하는 단계는,
상기 복수의 서브 블록들에 인가되는 상기 클럭 신호 또는 상기 전원 전압의 차단을 제어하는 게이팅 제어 신호를 기초로 상기 서브 액티브 시간을 산출하는 단계를 포함하는 것을 특징으로 하는 집적 회로의 동작 방법. - 제11항에 있어서,
상기 평균 소모 전력을 산출하는 단계는,
전력 계수 테이블을 참조하여 상기 복수의 서브 블록들 각각에 대응하는 전력 계수를 획득하는 단계;
상기 전력 계수와 동작 조건을 사용하여 상기 샘플 주기 동안 상기 복수의 서브 블록들 각각의 소모 전력을 산출하는 단계;
상기 복수의 서브 블록들 각각의 소모 전력과 상기 서브 액티브 시간을 기초로 상기 복수의 서브 블록들이 소모한 에너지를 산출하는 단계; 및
상기 에너지를 상기 토탈 액티브 시간으로 나눔으로써 상기 평균 소모 전력을 산출하는 단계를 포함하는 것을 특징으로 하는 집적 회로의 동작 방법. - 각각 명령어를 처리하는 복수의 서브 블록들;
상기 복수의 서브 블록들에 각각 대응되고, 각각 대응되는 서브 블록의 액티브 시간인 서브 액티브 시간을 카운트하는 액티브 카운터들;
상기 복수의 서브 블록들 중 적어도 하나가 액티브 상태인 토탈 액티브 시간을 카운트하는 토탈 카운터;
상기 복수의 서브 블록들에 인가되는 클럭 신호를 생성하는 클럭 관리부;
상기 복수의 서브 블록들에 인가되는 전원 전압을 생성하는 전력 관리부; 및
상기 서브 액티브 시간 및 상기 토탈 액티브 시간을 기초로 상기 복수의 서브 블록들이 샘플 주기 동안 소모하는 소모 전력을 산출하고, 상기 소모 전력을 기초로 상기 클럭 신호의 주파수 또는 상기 전원 전압의 크기가 조정되도록 상기 클럭 관리부 또는 상기 전력 관리부를 제어하는 DVFS 제어부를 포함하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 샘플 주기마다 DVFS 트리거 신호를 생성하고, 상기 DVFS 트리거 신호를 상기 DVFS 제어부에 출력하는 타이머를 더 포함하고,
상기 DVFS 제어부는,
상기 DVFS 트리거 신호에 응답하여 상기 클럭 관리부 또는 상기 전력 관리부를 제어하는 것을 특징으로 하는 컴퓨팅 시스템. - 제16항에 있어서,
상기 복수의 서브 블록들 각각에 대응하는 전력 계수를 나타내는 전력 계수 테이블을 저장하는 메모리를 더 포함하고,
상기 DVFS 제어부는,
상기 전력 계수 테이블을 참조하여 상기 샘플 주기 동안 상기 복수의 서브 블록들이 소모하는 전력을 산출하는 것을 특징으로 하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 클럭 신호 또는 상기 전원 전압이 상기 복수의 서브 블록들에 제공 또는 차단되도록 제어하는 게이팅 제어 신호를 출력하는 게이팅 회로를 더 포함하고,
상기 DVFS 제어부는,
상기 게이팅 제어 신호를 기초로 상기 서브 액티브 시간을 획득하는 것을 특징으로 하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 복수의 서브 블록들은,
상대적으로 낮은 성능을 갖는 제1 서브 블록들; 및
상대적으로 높은 성능을 갖는 제2 서브 블록들을 포함하고,
상기 소모 전력을 기초로 조정되는 클럭 신호의 주파수가 기준 주파수에 도달하면, 상기 제2 서브 블록들 중 적어도 하나는 상기 제1 서브 블록들 중 적어도 하나에 할당되는 명령어를 처리하는 것을 특징으로 하는 컴퓨팅 시스템. - 제15항에 있어서,
상기 DVFS 제어부는,
상기 소모 전력과, 상기 복수의 서브 블록들이 상기 샘플 주기 동안 소모할 수 있는 최대 허용 전력의 비율을 기초로, 상기 클럭 신호의 상기 샘플 주기 이후의 주파수를 결정하는 것을 특징으로 하는 컴퓨팅 시스템.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200168724A KR20220079196A (ko) | 2020-12-04 | 2020-12-04 | Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 |
US17/489,299 US11907036B2 (en) | 2020-12-04 | 2021-09-29 | Integrated circuit performing dynamic voltage and frequency scaling operation and operating method thereof |
CN202111337343.3A CN114594849A (zh) | 2020-12-04 | 2021-11-12 | 执行动态电压和频率调节操作的集成电路及其操作方法 |
TW110144303A TW202230085A (zh) | 2020-12-04 | 2021-11-29 | 計算系統、積體電路以及操作積體電路的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200168724A KR20220079196A (ko) | 2020-12-04 | 2020-12-04 | Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220079196A true KR20220079196A (ko) | 2022-06-13 |
Family
ID=81803771
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200168724A KR20220079196A (ko) | 2020-12-04 | 2020-12-04 | Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11907036B2 (ko) |
KR (1) | KR20220079196A (ko) |
CN (1) | CN114594849A (ko) |
TW (1) | TW202230085A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117670647A (zh) * | 2022-09-08 | 2024-03-08 | 象帝先计算技术(重庆)有限公司 | 图像处理系统、gpu电源管理方法和电子设备 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8484498B2 (en) * | 2010-08-26 | 2013-07-09 | Advanced Micro Devices | Method and apparatus for demand-based control of processing node performance |
US9304570B2 (en) * | 2011-12-15 | 2016-04-05 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including power and performance workload-based balancing between multiple processing elements |
US9575542B2 (en) * | 2013-01-31 | 2017-02-21 | Hewlett Packard Enterprise Development Lp | Computer power management |
KR102086719B1 (ko) | 2014-03-11 | 2020-03-09 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 시스템 |
US9715272B2 (en) * | 2014-04-24 | 2017-07-25 | Htc Corporation | Portable electronic device and core swapping method thereof |
US9760160B2 (en) * | 2015-05-27 | 2017-09-12 | Intel Corporation | Controlling performance states of processing engines of a processor |
US9851774B2 (en) * | 2016-01-04 | 2017-12-26 | Qualcomm Incorporated | Method and apparatus for dynamic clock and voltage scaling in a computer processor based on program phase |
KR102670999B1 (ko) | 2016-12-28 | 2024-05-30 | 삼성전자주식회사 | Dvfs 동작을 수행하는 어플리케이션 프로세서, 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법 |
US10642338B2 (en) | 2017-09-28 | 2020-05-05 | Intel Corporation | Hierarchical power management unit for low power and low duty cycle devices |
WO2019117961A1 (en) * | 2017-12-15 | 2019-06-20 | Intel Corporation | Power governance of processing unit |
KR102118799B1 (ko) | 2018-10-15 | 2020-06-03 | 중앙대학교 산학협력단 | 모바일 단말 장치 내의 프로세서의 전력을 관리하는 장치 및 방법 |
KR102641520B1 (ko) | 2018-11-09 | 2024-02-28 | 삼성전자주식회사 | 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 태스크 스케줄링 방법 |
KR20200101210A (ko) | 2019-02-19 | 2020-08-27 | 삼성전자주식회사 | 전자 장치 및 프로세서의 동작 주파수를 결정하는 방법 |
US10928886B2 (en) | 2019-02-25 | 2021-02-23 | Intel Corporation | Frequency overshoot and voltage droop mitigation apparatus and method |
WO2021184248A1 (zh) * | 2020-03-18 | 2021-09-23 | 华为技术有限公司 | 测量处理器核功率的方法和装置 |
-
2020
- 2020-12-04 KR KR1020200168724A patent/KR20220079196A/ko active Search and Examination
-
2021
- 2021-09-29 US US17/489,299 patent/US11907036B2/en active Active
- 2021-11-12 CN CN202111337343.3A patent/CN114594849A/zh active Pending
- 2021-11-29 TW TW110144303A patent/TW202230085A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
US20220179471A1 (en) | 2022-06-09 |
TW202230085A (zh) | 2022-08-01 |
US11907036B2 (en) | 2024-02-20 |
CN114594849A (zh) | 2022-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102670999B1 (ko) | Dvfs 동작을 수행하는 어플리케이션 프로세서, 이를 포함하는 컴퓨팅 시스템 및 이의 동작 방법 | |
US9626307B2 (en) | Mobile device and a method of controlling the mobile device | |
US9377830B2 (en) | Data processing device with power management unit and portable device having the same | |
KR102190453B1 (ko) | 전력 관리 장치 및 이를 포함하는 시스템 온 칩 | |
US11803225B2 (en) | Apparatus, method, and system for power consumption management of system-on-chip | |
EP3862843B1 (en) | Storage device and method of operating the same | |
US10990153B2 (en) | Application processor and system on chip | |
JP2012150815A (ja) | 複数の回路における性能パラメータの整合 | |
US11809263B2 (en) | Electronic circuit for controlling power | |
CN105242967B (zh) | 一种基于dvfs技术的多核系统内混合内存上数据迁移的方法 | |
KR20210032213A (ko) | 전력 스텝에 기초한 동적 다이내믹 전압 주파주 스케일링(dvfs) 수행 방법 | |
US12021523B2 (en) | Integrated circuit and computing system performing dynamic voltage and frequency scaling and method of operating integrated circuit | |
CN118202319A (zh) | 电源电压下降期间的性能管理 | |
US11907036B2 (en) | Integrated circuit performing dynamic voltage and frequency scaling operation and operating method thereof | |
KR20200068635A (ko) | 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법 | |
EP4160358A2 (en) | System on chip and application processor | |
KR20230000209A (ko) | Dvfs 동작을 수행하는 집적 회로 및 이의 동작 방법 | |
US20240053809A1 (en) | Integrated circuit capable of performing dynamic voltage and frequency scaling operation based on workload and operating method thereof | |
US11768531B2 (en) | Power management for storage controllers | |
Li et al. | Ultra-Large Last-Level Cache (UL^ 3C) of Phase Change Memory | |
KR20230036589A (ko) | 시스템-온-칩 및 그의 동작 방법 | |
Kant | Energy Efficiency Issues in Computing Systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination |