KR20180078558A - 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 - Google Patents
시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 Download PDFInfo
- Publication number
- KR20180078558A KR20180078558A KR1020160183423A KR20160183423A KR20180078558A KR 20180078558 A KR20180078558 A KR 20180078558A KR 1020160183423 A KR1020160183423 A KR 1020160183423A KR 20160183423 A KR20160183423 A KR 20160183423A KR 20180078558 A KR20180078558 A KR 20180078558A
- Authority
- KR
- South Korea
- Prior art keywords
- dvfs
- target hardware
- target
- period
- interrupt
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims description 57
- 238000010977 unit operation Methods 0.000 claims description 20
- 230000004913 activation Effects 0.000 claims description 4
- 102100040862 Dual specificity protein kinase CLK1 Human genes 0.000 description 18
- 101000749294 Homo sapiens Dual specificity protein kinase CLK1 Proteins 0.000 description 18
- 238000010586 diagram Methods 0.000 description 18
- 102100040844 Dual specificity protein kinase CLK2 Human genes 0.000 description 17
- 101000749291 Homo sapiens Dual specificity protein kinase CLK2 Proteins 0.000 description 17
- 230000004044 response Effects 0.000 description 9
- 102100031577 High affinity copper uptake protein 1 Human genes 0.000 description 6
- 101710196315 High affinity copper uptake protein 1 Proteins 0.000 description 6
- 102100031145 Probable low affinity copper uptake protein 2 Human genes 0.000 description 6
- 101710095010 Probable low affinity copper uptake protein 2 Proteins 0.000 description 6
- 238000012546 transfer Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 102100040856 Dual specificity protein kinase CLK3 Human genes 0.000 description 2
- 101000749304 Homo sapiens Dual specificity protein kinase CLK3 Proteins 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920000642 polymer Polymers 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007704 transition 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/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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
-
- 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
-
- 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/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
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7807—System 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
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
- G06F9/4825—Interrupt from clock, e.g. time of day
-
- 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
-
- Y02D10/122—
-
- Y02D10/126—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Power Sources (AREA)
Abstract
CPU(central processing unit) 및 DVFS(dynamic voltage & frequency scaling) 대상 하드웨어를 포함하는 시스템 온 칩의 구동 방법에서는, DVFS 대상 하드웨어의 동작 방식을 판단한다. DVFS 대상 하드웨어의 동작 방식에 기초하여, DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정한다. DVFS 수행 방식에 기초하여 DVFS 대상 하드웨어에 대해 DVFS를 수행한다.
Description
본 발명은 전력 관리 분야에 관한 것으로서, 더욱 상세하게는 전력 관리를 위한 시스템 온 칩의 구동 방법, 상기 구동 방법을 수행하는 시스템 온 칩 및 상기 시스템 온 칩을 포함하는 전자 시스템에 관한 것이다.
시스템 온 칩(System on Chip; SoC)은 컴퓨터 시스템 또는 다른 전자 시스템을 구현하기 위해 CPU(central processing unit), 메모리, 인터페이스(interface), 디지털 신호 처리 회로, 및 아날로그 신호 처리 회로 등 다양한 기능 블록들을 하나의 반도체 집적 회로에 집적하는 기술 또는 상기 기술에 따라 집적된 하나의 집적 회로(integrated circuit; IC)를 나타낸다. 시스템 온 칩의 전력 관리를 위해 DVFS(dynamic voltage & frequency scaling) 기술이 적용될 수 있다. DVFS 기술은 구동 주파수(operating frequency) 및 구동 전압(operating voltage)을 동적으로 조절함으로써 전력 소모를 감소시킬 수 있는 기술을 나타낸다.
본 발명의 일 목적은 대상 하드웨어에 따라 최적의 DVFS 기술을 적용함으로써, 전력 소모를 효과적으로 감소시킬 수 있는 시스템 온 칩의 구동 방법을 제공하는 것이다.
본 발명의 다른 목적은 상기 시스템 온 칩의 구동 방법을 수행하는 시스템 온 칩을 제공하는 것이다.
본 발명의 또 다른 목적은 상기 시스템 온 칩을 포함하는 전자 시스템을 제공하는 것이다.
상기 일 목적을 달성하기 위해, 본 발명의 실시예들에 따른 CPU(central processing unit) 및 DVFS(dynamic voltage & frequency scaling) 대상 하드웨어를 포함하는 시스템 온 칩의 구동 방법에서는, 상기 DVFS 대상 하드웨어의 동작 방식을 판단한다. 상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정한다. 상기 DVFS 수행 방식에 기초하여 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행한다.
상기 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 시스템 온 칩은 DVFS(dynamic voltage & frequency scaling) 대상 하드웨어, DVFS 컨트롤러, CPU(central processing unit) 및 CMU(clock management unit)를 포함한다. 상기 DVFS 컨트롤러는 상기 DVFS 대상 하드웨어의 동작 방식을 판단하고, 상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정하며, 상기 DVFS 수행 방식을 기초로 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 사용되는 제1 제어 신호 및 제2 제어 신호를 발생한다. 상기 CPU는 상기 DVFS 대상 하드웨어 및 상기 DVFS 컨트롤러를 제어한다. 상기 CMU는 상기 제1 제어 신호를 기초로 클럭 신호를 발생하여 상기 DVFS 대상 하드웨어에 인가한다.
상기 또 다른 목적을 달성하기 위해, 본 발명의 실시예들에 따른 전자 시스템은 시스템 온 칩, PMIC(power management integrated circuit) 및 트리거 객체(trigger object)를 포함한다. 상기 PMIC는 상기 시스템 온 칩에 전원 신호를 인가한다. 상기 트리거 객체는 상기 시스템 온 칩에 의해 수행되는 DVFS(dynamic voltage & frequency scaling)와 관련된 적어도 하나의 트리거 신호를 발생한다. 상기 시스템 온 칩은 DVFS 대상 하드웨어, DVFS 컨트롤러, CPU(central processing unit) 및 CMU(clock management unit)를 포함한다. 상기 DVFS 컨트롤러는 상기 DVFS 대상 하드웨어의 동작 방식을 판단하고, 상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정하며, 상기 DVFS 수행 방식을 기초로 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 사용되는 제1 제어 신호 및 제2 제어 신호를 발생한다. 상기 CPU는 상기 DVFS 대상 하드웨어 및 상기 DVFS 컨트롤러를 제어한다. 상기 CMU는 상기 제1 제어 신호를 기초로 클럭 신호를 발생하여 상기 DVFS 대상 하드웨어에 인가한다.
상기와 같은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법 및 이를 수행하는 시스템 온 칩에서는, 비-CPU IP인 DVFS 대상 하드웨어의 동작 방식에 따라 최적의 DVFS 수행 방식을 결정할 수 있고, 최적의 DVFS 수행 방식에 기초하여 DVFS 대상 하드웨어에 대해 DVFS를 수행할 수 있다. 예를 들어, DVFS 대상 하드웨어에 대한 모니터링 동작의 시작 시점을 동적으로 조절하여 모니터링 동작 주기 및 DVFS 수행 주기를 조절할 수 있다. 따라서, 시스템 온 칩의 불필요한 전력 소모를 방지할 수 있고, 전력 효율 및 구동 효율이 향상될 수 있다.
도 1은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 2는 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 4 및 5는 도 3의 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 6은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 7은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 8 및 9는 도 7의 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 10은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 12는 도 11의 시스템 온 칩의 구동 방법을 설명하기 위한 도면이다.
도 13 및 14는 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 15 및 16은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도들이다.
도 17은 본 발명의 실시예들에 따른 전자 시스템에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 3은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 4 및 5는 도 3의 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 6은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 7은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 8 및 9는 도 7의 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 10은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 12는 도 11의 시스템 온 칩의 구동 방법을 설명하기 위한 도면이다.
도 13 및 14는 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 15 및 16은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도들이다.
도 17은 본 발명의 실시예들에 따른 전자 시스템에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법에서, DVFS(dynamic voltage & frequency scaling) 대상 하드웨어의 동작 방식을 판단한다(단계 S100). 상기 시스템 온 칩은 CPU(central processing unit) 및 상기 DVFS 대상 하드웨어를 포함한다. 상기 DVFS 대상 하드웨어는 상기 CPU를 제외한 비-CPU(non-CPU) IP(intellectual property)일 수 있다. 상기 비-CPU IP는 고유 특성들(unique features) 및/또는 고유 기능들을 갖는 하드웨어 모듈(hardware module)을 나타낼 수 있다. 상기 시스템 온 칩의 구조에 대해서는 도 2를 참조하여 상세하게 후술하도록 한다.
상기 판단된 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정한다(단계 S200). 상기 결정된 DVFS 수행 방식에 기초하여 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행한다(단계 S300). 이하에서는 상기 비-CPU IP에 대해 상기 DVFS를 수행하는 것을 중심으로 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 상세하게 설명하도록 한다.
일 실시예에서, 상기 DVFS 대상 하드웨어의 동작 방식은 상기 DVFS 대상 하드웨어가 제1 목표 이벤트를 수행하기 위해 요구되는 제1 단위 동작을 포함할 수 있고, 상기 DVFS 수행 방식은 상기 DVFS 대상 하드웨어에 대한 모니터링 동작(monitoring)의 시작 시점을 포함할 수 있다. 이 때, 상기 모니터링 동작의 시작 시점을 상기 제1 단위 동작의 시작 시점과 일치시킴으로써, 상기 DVFS 수행 방식을 결정할 수 있다. 이에 대해서는 도 2 내지 5를 참조하여 후술하도록 한다.
다른 실시예에서, 상기 DVFS 대상 하드웨어의 동작 방식은 상기 DVFS 대상 하드웨어가 제2 목표 이벤트를 수행하기 위해 요구되는 제2 단위 동작을 포함할 수 있다. 상기 제2 목표 이벤트 및 상기 제2 단위 동작은 상기 제1 목표 이벤트 및 상기 제1 단위 동작과 각각 다를 수 있다. 이 때, 상기 모니터링 동작의 시작 시점을 상기 제2 단위 동작의 시작 시점과 일치시킴으로써, 상기 DVFS 수행 방식을 결정할 수 있다. 이에 대해서는 도 6 내지 9를 참조하여 후술하도록 한다.
또 다른 실시예에서, 상기 DVFS 대상 하드웨어의 동작 방식은 상기 제1 및 제2 단위 동작들을 모두 포함할 수 있다. 이 때, 상기 제1 및 제2 목표 이벤트들의 우선 순위에 기초하여, 상기 모니터링 동작의 시작 시점을 제1 및 제2 단위 동작들 중 하나의 시작 시점과 일치시킴으로써, 상기 DVFS 수행 방식을 결정할 수 있다. 실시예에 따라서, 상기 DVFS 대상 하드웨어의 동작 방식은 세 개 이상의 단위 동작들을 포함할 수도 있다. 이에 대해서는 도 10 내지 14를 참조하여 후술하도록 한다.
일반적으로 CPU에 대해 DVFS를 수행하는 경우에, 미리 정해진 고정 주기에 따라 주기적으로 또는 CPU가 구동하는 경우에만 주기적으로 DVFS를 수행하였다. CPU에 대한 DVFS와 유사하게, 비-CPU IP에 대해서도 주기적으로 DVFS를 수행할 수 있다. 다만, 시스템 온 칩에서 CPU-바운드 작업(CPU-bound job)(또는 코어-바운드 작업, 컴퓨팅-바운드 작업)이 아닌 메모리-바운드 작업(memory-bound job)이 수행되는 경우에는, 비-CPU IP에 대해 주기적 DVFS를 수행하면 DVFS의 효율이 저하될 수 있다.
본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법에서는, 비-CPU IP인 DVFS 대상 하드웨어의 동작 방식에 따라 최적의 DVFS 수행 방식을 결정할 수 있고, 최적의 DVFS 수행 방식에 기초하여 DVFS 대상 하드웨어에 대해 DVFS를 수행할 수 있다. 예를 들어, DVFS 대상 하드웨어에 대한 모니터링 동작의 시작 시점을 동적으로 조절하여 모니터링 동작 주기 및 DVFS 수행 주기를 조절할 수 있다. 따라서, 시스템 온 칩의 불필요한 전력 소모를 방지할 수 있고, 전력 효율 및 구동 효율이 향상될 수 있다.
도 2는 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
도 2를 참조하면, 전자 시스템(10)은 시스템 온 칩(100), 전력 관리 집적 회로(power management integrated circuit; PMIC)(200), 메모리 장치(300) 및 트리거 객체(400)를 포함한다.
일 실시예에서, 전자 시스템(10)은 휴대폰(mobile phone), 스마트 폰(smart phone), 태블릿(tablet) PC(personal computer), 개인 정보 단말기(personal digital assistant; PDA), 휴대형 멀티미디어 플레이어(portable multimedia player; PMP), 디지털 카메라(digital camera), 음악 재생기(music player), 휴대용 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, 사물 인터넷(internet of things; IoT) 기기, 만물 인터넷(internet of everything: IoE) 기기, e-북(e-book), 가상 현실(virtual reality; VR) 기기, 증강 현실(augmented reality; AR) 기기 등과 같은 다양한 컴퓨팅 장치 또는 모바일 장치로 구현될 수 있다.
시스템 온 칩(100)은 CPU(101), DVFS 컨트롤러(110), 메모리 인터페이스(memory interface, MIF)(120), 버스(bus)를 구비하는 내부 로직(internal logic with bus, INTB)(130) 및 클럭 관리 유닛(clock management unit; CMU)(170)을 포함한다. 시스템 온 칩(100)은 제1 성능 모니터링 유닛(performance monitoring unit, PPMU)(122) 제2 PPMU(132), 타이머(timer)(140), 인터럽트 컨트롤러(interrupt controller, INTC)(150) 및 전력 관리 유닛(power management unit; PMU)(160)을 더 포함할 수 있다.
일 실시예에서, 시스템 온 칩(100)은 어플리케이션 프로세서(application processor; AP) 또는 모바일 AP로 구현될 수 있다.
메모리 인터페이스(120)는 시스템 온 칩(100)과 메모리 장치(300) 사이에서 주고받는 데이터의 전송을 제어(또는 인터페이스)한다. 메모리 인터페이스(120)는 제1 클럭 신호(CLK1) 및 제1 전원 신호(PWR1)에 기초하여 동작할 수 있다. 메모리 인터페이스(120)는 본 발명의 실시예들에 따른 DVFS 대상 하드웨어일 수 있다. 예를 들어, 메모리 인터페이스(120)에 대해 DVFS가 수행되는 경우에, 제1 클럭 신호(CLK1)의 주파수 및 제1 전원 신호(PWR1)의 전압 레벨은 동적으로 조절(예를 들어, 증가, 유지 또는 감소)될 수 있다.
제1 PPMU(122)는 메모리 인터페이스(120)의 성능을 모니터(monitor)할 수 있다. 예를 들어, 제1 PPMU(122)는 메모리 인터페이스(120)로 공급되는 제1 클럭 신호(CLK1)의 주파수, 메모리 인터페이스(120)의 데이터 트래픽(data traffic) 및/또는 메모리 인터페이스(120)의 사용률(usage 또는 utilization)을 모니터할 수 있고, 상기 모니터 결과로서 제1 모니터 신호(MT1)를 발생할 수 있다. 상기 데이터 트래픽은 제1 클럭 신호(CLK1)의 기준 주파수(즉, 원래 주파수)와 데이터 전송 시에 실제 사용된 주파수의 비율을 나타낼 수 있고, 상기 사용률은 기준 시간과 상기 기준 시간 동안 메모리 인터페이스(120)가 실제 사용된 시간의 비율을 나타낼 수 있다.
내부 로직(130)은 시스템 온 칩(100)의 내부적인 데이터 전송과 관련된 버스 및 다양한 논리 회로들을 포함한다. 내부 로직(130)은 제2 클럭 신호(CLK2) 및 제2 전원 신호(PWR2)에 기초하여 동작할 수 있다. 내부 로직(130)은 본 발명의 실시예들에 따른 DVFS 대상 하드웨어일 수 있다. 예를 들어, 내부 로직(130)에 대해 DVFS가 수행되는 경우에, 제2 클럭 신호(CLK2)의 주파수 및 제2 전원 신호(PWR2)의 전압 레벨은 동적으로 조절될 수 있다.
제2 PPMU(132)는 내부 로직(130)의 성능을 모니터할 수 있다. 예를 들어, 제2 PPMU(132)는 내부 로직(130)으로 공급되는 제2 클럭 신호(CLK2)의 주파수, 내부 로직(130)의 데이터 트래픽 및/또는 내부 로직(130)의 사용률을 모니터할 수 있고, 상기 모니터 결과로서 제2 모니터 신호(MT2)를 발생할 수 있다.
CPU(101)는 시스템 온 칩(100)의 전반적인 동작을 제어한다. CPU(101)는 메모리 인터페이스(120), 내부 로직(130)과 같은 DVFS 대상 하드웨어 및 DVFS 컨트롤러(110)를 제어할 수 있고, 그 밖에 시스템 온 칩(100)에 포함되는 구성요소들을 제어할 수 있다. CPU(101)는 제3 클럭 신호(CLK3) 및 제3 전원 신호(PWR3)에 기초하여 동작할 수 있다. 실시예에 따라서, CPU(101)는 하나의 프로세서 코어를 포함하는 형태(single core)로 구현되거나 복수의 프로세서 코어들을 포함하는 형태(multi-core)로 구현될 수 있다.
DVFS 컨트롤러(110)는 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 수행한다. DVFS 컨트롤러(110)는 메모리 인터페이스(120), 내부 로직(130)과 같은 DVFS 대상 하드웨어의 동작 방식을 판단하고, 상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정하며, 상기 DVFS 수행 방식을 기초로 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 사용되는 제1 제어 신호(CTR1) 및 제2 제어 신호(CTR2)를 발생한다.
DVFS 컨트롤러(110)는 중점 대상 식별자(focused target identifier, FTI)(112), DVFS 트리거부(DVFS trigger unit, DT)(114) 및 버스 트래픽 모니터부(bus traffic monitor unit, BTM)(116)를 포함할 수 있다.
버스 트래픽 모니터부(116)는 메모리 인터페이스(120)에 대한 모니터 결과를 나타내는 제1 모니터 신호(MT1) 및 내부 로직(130)에 대한 모니터 결과를 나타내는 제2 모니터 신호(MT2)를 리드(read)할 수 있다. 이 때, 제1 및 제2 PPMU들(122, 132)은 DVFS 컨트롤러(110)의 관점에서, 또는 DVFS 컨트롤러(110)를 제어하는 CPU(101)의 관점에서 슬레이브(slave) 장치로 동작할 수 있다.
중점 대상 식별자(112)는 트리거 객체(400)에서 발생되는 트리거 신호(예를 들어, TRGD) 및 인터럽트 컨트롤러(150)에서 발생되는 인터럽트(예를 들어, ITRD, ITRB)에 기초하여, 상기 DVFS 대상 하드웨어의 동작 방식을 판단할 수 있다. 또한, 상기 DVFS 대상 하드웨어의 동작 방식은 메모리 인터페이스(120) 및 내부 로직(130)에 대한 모니터 결과에 추가적으로 기초하여 판단될 수도 있다. 다시 말하면, 중점 대상 식별자(112)는 비-CPU IP들 중에서 DVFS 수행 방식이 변경될 필요가 있는 IP(즉, 포커스된(focused) IP)를 검출할 수 있다.
DVFS 트리거부(114)는 상기 DVFS 대상 하드웨어의 동작 방식(예를 들어, 포커스된 IP의 상태, 데이터 트래픽, 사용률 등)에 기초하여, 상기 DVFS 수행 방식을 결정할 수 있다. 또한, DVFS 트리거부(114)는 상기 DVFS 수행 방식을 기초로 제1 제어 신호(CTR1) 및 제2 제어 신호(CTR2)를 발생할 수 있다. 다시 말하면, DVFS 트리거부(114)는 상기 DVFS 대상 하드웨어에 대한 모니터링 동작 주기 및 DVFS 수행 주기를 조절(예를 들어, 증가, 유지 또는 감소)할 수 있다.
일 실시예에서, DVFS 컨트롤러(110)의 일부 또는 전부는 하드웨어의 형태로 구현될 수 있다. 예를 들어, DVFS 컨트롤러(110)는 CPU(101)에 종속되는 서브 CPU로 구현될 수 있다. 다른 실시예에서, DVFS 컨트롤러(110)의 일부 또는 전부는 프로그램(즉, 소프트웨어)의 형태로 구현될 수 있다. 예를 들어, DVFS 소프트웨어는 CPU(101) 및/또는 서브 CPU에 의해 실행될 수 있고, 시스템 온 칩(100)에 포함되는 내부 메모리(미도시) 및/또는 시스템 온 칩(100)의 외부에 배치되는 메모리 장치(300)에 저장될 수 있다.
CMU(170)는 제1 제어 신호(CTR1)에 기초하여 상기 DVFS 대상 하드웨어를 위한 제1 및 제2 클럭 신호들(CLK1, CLK2)을 발생한다. 예를 들어, CMU(170)는 제1 제어 신호(CTR1)에 기초하여 제1 및 제2 클럭 신호들(CLK1, CLK2)의 주파수를 증가, 유지 또는 감소시킬 수 있다. 또한, CMU(170)는 CPU(101)를 위한 제3 클럭 신호(CLK3)를 더 발생할 수 있다.
PMIC(200)는 제2 제어 신호(CTR2)에 기초하여 상기 DVFS 대상 하드웨어를 위한 제1 및 제2 전원 신호들(PWR1, PWR2)을 발생한다. 예를 들어, PMIC(200)는 제2 제어 신호(CTR2)에 기초하여 제1 및 제2 전원 신호들(PWR1, PWR2)의 전압 레벨을 증가, 유지 또는 감소시킬 수 있다. 또한, PMIC(200)는 CPU(101)를 위한 제3 전원 신호(PWR3)를 더 발생할 수 있다.
트리거 객체(400)는 시스템 온 칩(100)에 의해 수행되는, 즉 상기 DVFS 대상 하드웨어에 대해 수행되는 상기 DVFS와 관련된 제1 트리거 신호(TRGD)를 발생한다. 예를 들어, 제1 트리거 신호(TRGD)는 제1 목표 이벤트가 수행되는지 여부, 즉 상기 제1 목표 이벤트의 수행을 위해 상기 DVFS 대상 하드웨어가 이용되는지 여부를 나타낼 수 있다. 상기 제1 목표 이벤트가 수행되는 경우에 제1 트리거 신호(TRGD)가 활성화될 수 있고, 상기 제1 목표 이벤트가 수행되지 않는 경우에 제1 트리거 신호(TRGD)가 비활성화될 수 있다. 예를 들어, 상기 제1 목표 이벤트는 메모리-바운드 작업일 수 있다.
일 실시예에서, 트리거 객체(400)는 상기 제1 목표 이벤트를 수행을 유발할 수 있도록 사용자에 의해 제어되는 사용자 인터페이스(user interface)를 포함할 수 있다. 예를 들어, 트리거 객체(400)는 키보드, 키패드, 터치 스크린, 터치 펜, 버튼, 마이크, 아날로그 스틱 등과 같은 입력 장치들 중 적어도 하나를 포함할 수 있다. 다른 실시예에서, 트리거 객체(400)는 상기 제1 목표 이벤트의 수행을 유발하기 위한 임의의 객체일 수 있다.
인터럽트 컨트롤러(150)는 제1 트리거 신호(TRGD) 및 인터럽트 제어 신호(ITC)에 기초하여 스케줄된 각 시점에서 인터럽트를 발생할 수 있다. 예를 들어, 인터럽트 컨트롤러(150)는 제1 트리거 신호(TRGD)가 활성화된 경우에 제1 주기마다 제1 인터럽트(ITRD)를 발생할 수 있고, 제1 트리거 신호(TRGD)가 비활성화된 경우에, 제2 주기마다 제2 인터럽트(ITRB)를 발생할 수 있다.
타이머(140)는 상기 제2 주기마다 인터럽트 제어 신호(ITC)를 발생할 수 있고, 제1 인터럽트(ITRD)에 응답하여 초기화될 수 있다. 예를 들어, 타이머(140)는 슬랙(slack) 타이머일 수 있고, 제1 인터럽트(ITRD)가 발생할 때마다 초기화되어(즉, pending slack이 cancel됨) 시간 카운트 동작을 처음부터 수행할 수 있으며(즉, new slack을 start함), 상기 제2 주기 동안 제1 인터럽트(ITRD)가 발생되지 않으면 상기 시간 카운트 동작이 완료되어 인터럽트 제어 신호(ITC)를 발생할 수 있다. 인터럽트 컨트롤러(150)는 인터럽트 제어 신호(ITC)에 응답하여 제2 인터럽트(ITRB)를 발생할 수 있다.
PMU(160)는 인터럽트 컨트롤러(150)의 제어에 따라, CPU(101)의 상태를 제어할 수 있는 전력 공급을 제어할 수 있다. 예를 들어, PMU(160)는 CPU(101)의 상태를 아이들(idle) 상태에서 런(run) 상태로 변경하거나 상기 런 상태에서 상기 아이들 상태로 변경할 수 있는 전력 공급을 제어할 수 있다. 예를 들어, 상기 아이들 상태는 저전력 모드를 포함할 수 있다.
메모리 장치(300)는 메모리 인터페이스(120)를 통해 시스템 온 칩(100)과 데이터를 주고받을 수 있다. 실시예에 따라서, 메모리 장치(300)는 DRAM(dynamic random access memory), SDRAM(synchronous DRAM), SRAM(static random access memory) 등과 같은 휘발성 메모리, 및 플래시 메모리(flash memory), PRAM(phase change random access memory), RRAM(resistance random access memory), NFGM(nano floating gate memory), PoRAM(polymer random access memory), MRAM(magnetic random access memory), FRAM(ferroelectric random access memory) 등과 같은 비휘발성 메모리 중 적어도 하나를 포함할 수 있다.
편의상, 도 2에서는 DVFS 대상 하드웨어인 비-CPU IP로서 메모리 인터페이스(120) 및 내부 로직(130)만을 도시하고 이를 설명하였으나, 실시예에 따라서, 상기 DVFS 대상 하드웨어는 GPU(graphic processing unit), ISP(image signal processor), 디스플레이 프로세서(display processor), 통신 프로세서(communication processor) 등을 더 포함할 수 있다.
한편, 상세하게 설명하지는 않았으나, 메모리 인터페이스(120), 내부 로직(130)과 같은 DVFS 대상 하드웨어뿐만 아니라, CPU(101)에 대해 DVFS가 수행될 수 있다. 이 때, 상기 DVFS 대상 하드웨어에 대한 DVFS와 다르게, CPU(101)에 대한 DVFS는 미리 정해진 고정 주기에 기초하여 수행될 수 있다. 다시 말하면, 본 발명의 실시예들에 따른 시스템 온 칩(100)에서, CPU(101)와 상기 DVFS 대상 하드웨어에 대해 서로 다른 방식으로 DVFS가 수행될 수 있다.
도 3은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다. 도 4 및 5는 도 3의 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 4에서, ITR은 인터럽트 컨트롤러(도 2의 150)에 의해 발생되는 인터럽트들(ITRD, ITRB)을 포괄하여 나타낸다. ITR 상에 표시된 검정색 화살표 및 흰색 화살표는 각각 제1 인터럽트(ITRD) 및 제2 인터럽트(ITRB)를 나타낸다. 또한, 도 4에서, DVFS는 DVFS 동작의 수행을 포괄하여 나타낸다. DVFS 상에 표시된 빗금 친 화살표는 DVFS 대상 하드웨어에 대한 모니터링 동작과 클럭 및 전원 신호들의 조절이 수행됨을 나타낸다.
도 2, 3 및 4를 참조하면, 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법에서, 먼저 상기 제1 목표 이벤트의 수행 여부를 나타내는 제1 트리거 신호(TRGD)를 검출할 수 있다(단계 S110). 예를 들어, 상기 제1 목표 이벤트는 시스템 온 칩(100)을 포함하는 전자 시스템(10)에서 수행되는 화면 업데이트 동작일 수 있다. 예를 들어, 상기 화면 업데이트 동작은 VSYNC 인터럽트에 응답하여 수행될 수 있으며, 상기 제1 목표 이벤트를 수행하기 위해 요구되는 제1 단위 동작은 상기 VSYNC 인터럽트에 응답하여 수행되는 프레임 변경 동작일 수 있다.
제1 트리거 신호(TRGD)가 비활성화된 경우에(단계 S110: 아니오), 예를 들어 제1 트리거 신호(TRGD)가 로우 레벨을 갖는 경우에, 인터럽트 컨트롤러(150)는 제2 주기(TN)마다 제2 인터럽트(ITRB)를 발생할 수 있다(단계 S140). 예를 들어, 제1 인터럽트(ITRD)가 발생하지 않으므로, 타이머(140)는 제2 주기(TN)마다 인터럽트 제어 신호(ITC)를 발생할 수 있으며, 인터럽트 컨트롤러(150)는 인터럽트 제어 신호(ITC)에 응답하여 제2 인터럽트(ITRB)를 발생할 수 있다.
제1 트리거 신호(TRGD)가 비활성화된 경우에(단계 S110: 아니오), DVFS 컨트롤러(110)는 제2 인터럽트(ITRB)에 기초하여 상기 제1 목표 이벤트가 수행되지 않는 것으로 판단할 수 있고(단계 S150), 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점이 제2 인터럽트(ITRB)의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 제2 주기(TN)로 설정할 수 있다(단계 S220). 예를 들어, 도 4에 도시된 것처럼 흰색 화살표와 빗금 친 화살표가 서로 일치할 수 있다.
설정된 제2 주기(TN)에 기초하여, 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작을 수행하고 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다(단계 S310). 예를 들어, DVFS 컨트롤러(110)는 제2 주기(TN)마다 모니터 신호(MT1, MT2)를 기초로 상기 모니터링 동작을 수행할 수 있고, 제2 주기(TN)마다 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절하도록 제어 신호(CTR1, CTR2)를 발생할 수 있다. CMU(170) 및 PMIC(200)는 제어 신호(CTR1, CTR2)에 기초하여 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 제2 주기(TN)마다 조절할 수 있다.
일 실시예에서, 상기 모니터링 동작은 다음 시점에 대한 스케줄링(scheduling)을 나타낼 수 있고, 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절하는 DVFS는 현재 시점에 대한 조절을 나타낼 수 있다. 예를 들어, DVFS 컨트롤러(110)는 상기 모니터링 동작을 수행하여, 현재 시점에서 제2 주기(TN)만큼 경과된 다음 시점에서의 DVFS를 스케줄링 할 수 있다. DVFS 컨트롤러(110)는 현재 시점에서 제2 주기(TN)만큼 앞선 이전 시점에서의 스케줄링 결과에 기초하여, 상기 현재 시점에서 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다.
단계 S310 이후에, 설정된 모니터링 주기에 기초하여 단계 S110 및 이후의 단계들이 반복적으로 수행될 수 있다. 예를 들어, 제2 주기(TN)마다 상기 모니터링 동작이 수행될 수 있고, 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)가 조절될 수 있다.
시간 t1에서, 제1 트리거 신호(TRGD)가 활성화될 수 있다. 예를 들어, 상기 제1 목표 이벤트의 수행이 시작될 수 있고, 제1 트리거 신호(TRGD)가 상기 로우 레벨에서 하이 레벨로 천이될 수 있다.
제1 트리거 신호(TRGD)가 활성화된 경우에(단계 S110: 예), 예를 들어 제1 트리거 신호(TRGD)가 상기 하이 레벨을 갖는 경우에, 인터럽트 컨트롤러(150)는 제1 주기(TD)마다 제1 인터럽트(ITRD)를 발생할 수 있다(단계 S120). 예를 들어, 제1 인터럽트(ITRD)는 상기 VSYNC 인터럽트일 수 있다. 제1 인터럽트(ITRD)가 발생하였으므로, 타이머(140)는 제1 인터럽트(ITRD)에 응답하여 초기화되고 인터럽트 제어 신호(ITC)를 발생하지 않을 수 있으며, 따라서 인터럽트 컨트롤러(150)는 제2 인터럽트(ITRB)를 발생하지 않고 제1 인터럽트(ITRD)만을 발생할 수 있다.
일 실시예에서, 상술한 것처럼 타이머(140) 및 인터럽트 컨트롤러(150)의 동작을 구현하기 위해, 도 4에 도시된 것처럼 제2 주기(TN)는 제1 주기(TD)보다 길 수 있다. 예를 들어, 제1 주기(TD)는 상기 제1 단위 동작의 주파수가 약 60Hz인 경우에 약 16.67ms일 수 있고, 제2 주기(TN)는 약 100ms일 수 있다.
제1 트리거 신호(TRGD)가 활성화된 경우에(단계 S110: 예), DVFS 컨트롤러(110)는 제1 인터럽트(ITRD)에 기초하여 상기 제1 목표 이벤트가 수행되는 것으로(즉, 상기 제1 목표 이벤트를 수행을 위해 상기 DVFS 대상 하드웨어가 이용되는 것으로) 판단할 수 있고(단계 S130), 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점이 제1 인터럽트(ITRD)의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 제1 주기(TD)로 설정할 수 있다(단계 S210). 예를 들어, 도 4에 도시된 것처럼 검정색 화살표와 빗금 친 화살표가 서로 일치할 수 있다.
설정된 제1 주기(TD)에 기초하여, 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작을 수행하고 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다(단계 S310). 제2 주기(TN)에서 제1 주기(TD)로 변경된 것을 제외하면, 단계 S310의 동작은 상술한 것과 실질적으로 동일할 수 있다.
단계 S310 이후에, 설정된 모니터링 주기에 기초하여 단계 S110 및 이후의 단계들이 반복적으로 수행될 수 있다. 예를 들어, 제1 주기(TD)마다 상기 모니터링 동작이 수행될 수 있고, 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)가 조절될 수 있다.
시간 t2에서, 제1 트리거 신호(TRGD)가 비활성화될 수 있다. 예를 들어, 상기 제1 목표 이벤트의 수행이 종료될 수 있고, 제1 트리거 신호(TRGD)가 상기 하이 레벨에서 상기 로우 레벨로 천이될 수 있다. 시간 t2 이후의 동작은 시간 t1 이전의 동작과 실질적으로 동일할 수 있다.
일 실시예에서, 단계 S110, S120, S130, S140 및 S150은 도 1의 단계 S100에 포함될 수 있고, 단계 S210 및 S220은 도 1의 단계 S200에 포함될 수 있으며, 단계 S310은 도 1의 단계 S300에 포함될 수 있다. 일 실시예에서, 단계 S140 및 S150을 수행하는데 있어서, 제1 트리거 신호(TRGD)가 추가적으로 이용될 수도 있다. 일 실시예에서, 단계 S130 및 S150은 중점 대상 식별자(112)에 의해 수행될 수 있고, 단계 S210 및 S220은 DVFS 트리거부(114)에 의해 수행될 수 있다.
도 2 및 5를 참조하면, CASE1은 상기 제1 목표 이벤트가 수행되는 제1 상태를 나타내며, CASE0은 상기 제1 목표 이벤트가 수행되지 않는 제2 상태를 나타낸다. 제1 트리거 신호(TRGD)가 활성화되는 경우에(즉, EN_TRGD) 제2 상태(CASE0)에서 제1 상태(CASE1)로 전환될 수 있고, 제1 트리거 신호(TRGD)가 비활성화되는 경우에(즉, DIS_TRGD) 제1 상태(CASE1)에서 제2 상태(CASE0)로 전환될 수 있다.
도 6은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
트리거 객체(400)에서 발생되는 트리거 신호가 제1 트리거 신호(TRGD)에서 제2 트리거 신호(TRGW)로 변경되고, 이에 따라 인터럽트 컨트롤러(150)에서 발생되고 타이머(140)에 인가되는 인터럽트가 제1 인터럽트(ITRD)에서 제3 인터럽트(ITRW)로 변경되는 것을 제외하면, 도 6의 시스템 온 칩(100)은 도 2의 시스템 온 칩(100)과 실질적으로 동일할 수 있다.
도 6을 참조하면, 트리거 객체(400)는 시스템 온 칩(100)에 의해 수행되는, 즉 상기 DVFS 대상 하드웨어에 대해 수행되는 상기 DVFS와 관련된 제2 트리거 신호(TRGW)를 발생한다. 예를 들어, 제2 트리거 신호(TRGW)는 제2 목표 이벤트가 수행되는지 여부, 즉 상기 제2 목표 이벤트의 수행을 위해 상기 DVFS 대상 하드웨어가 이용되는지 여부를 나타낼 수 있다. 상기 제2 목표 이벤트가 수행되는 경우에 제2 트리거 신호(TRGW)가 활성화될 수 있고, 상기 제2 목표 이벤트가 수행되지 않는 경우에 제2 트리거 신호(TRGW)가 비활성화될 수 있다. 예를 들어, 상기 제2 목표 이벤트는 메모리-바운드 작업일 수 있고, 상기 제2 목표 이벤트와 상기 제1 목표 이벤트는 서로 다를 수 있다.
인터럽트 컨트롤러(150)는 제2 트리거 신호(TRGW) 및 인터럽트 제어 신호(ITC)에 기초하여 스케줄된 각 시점에서 인터럽트를 발생할 수 있다. 예를 들어, 인터럽트 컨트롤러(150)는 제2 트리거 신호(TRGW)가 활성화된 경우에 상기 제1 주기와 다른 제3 주기마다 제3 인터럽트(ITRW)를 발생할 수 있고, 제2 트리거 신호(TRGW)가 비활성화된 경우에, 상기 제2 주기마다 제2 인터럽트(ITRB)를 발생할 수 있다.
타이머(140)는 상기 제2 주기마다 인터럽트 제어 신호(ITC)를 발생할 수 있고, 제3 인터럽트(ITRW)에 응답하여 초기화될 수 있다. 예를 들어, 타이머(140)는 제3 인터럽트(ITRW)가 발생할 때마다 초기화되어 시간 카운트 동작을 처음부터 수행할 수 있으며, 상기 제2 주기 동안 제3 인터럽트(ITRW)가 발생되지 않으면 상기 시간 카운트 동작이 완료되어 인터럽트 제어 신호(ITC)를 발생할 수 있다.
도 7은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다. 도 8 및 9는 도 7의 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 8에서, ITR은 인터럽트 컨트롤러(도 6의 150)에 의해 발생되는 인터럽트들(ITRW, ITRB)을 포괄하여 나타내고, DVFS는 DVFS 동작의 수행을 포괄하여 나타낸다. ITR 상에 표시된 검정색 화살표 및 흰색 화살표는 각각 제3 인터럽트(ITRW) 및 제2 인터럽트(ITRB)를 나타낸다. DVFS 상에 표시된 빗금 친 화살표는 DVFS 대상 하드웨어에 대한 모니터링 동작과 클럭 및 전원 신호들의 조절이 수행됨을 나타낸다.
도 6, 7 및 8을 참조하면, 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법에서, 먼저 상기 제2 목표 이벤트의 수행 여부를 나타내는 제2 트리거 신호(TRGW)를 검출할 수 있다(단계 S112). 예를 들어, 상기 제2 목표 이벤트는 시스템 온 칩(100)을 포함하는 전자 시스템(10)에서 수행되는 대용량 데이터 전송 동작일 수 있다. 예를 들어, 상기 대용량 데이터 전송 동작은 USB(universal serial bus) 연결 환경 및/또는 Wi-Fi 연결 환경에서 데이터 트랜잭션(transaction) 인터럽트에 응답하여 수행될 수 있으며, 상기 제2 목표 이벤트를 수행하기 위해 요구되는 제2 단위 동작은 상기 데이터 트랜잭션 인터럽트에 응답하여 수행되는 단위 데이터 전송 동작일 수 있다.
제2 트리거 신호(TRGW)가 비활성화된 경우에(단계 S112: 아니오), 인터럽트 컨트롤러(150)는 제2 주기(TN)마다 제2 인터럽트(ITRB)를 발생할 수 있고(단계 S140), DVFS 컨트롤러(110)는 제2 인터럽트(ITRB)에 기초하여 상기 제2 목표 이벤트가 수행되지 않는 것으로 판단할 수 있으며(단계 S152), 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점이 제2 인터럽트(ITRB)의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 제2 주기(TN)로 설정할 수 있다(단계 S220). 또한, 설정된 제2 주기(TN)에 기초하여, 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작을 수행하고 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다(단계 S310).
도 7의 단계 S140, S152, S220 및 S310은 도 3의 단계 S140, S150, S220 및 S310과 각각 실질적으로 동일할 수 있으며, 도 8의 시간 t3 이전의 동작은 도 4의 시간 t1 이전의 동작과 실질적으로 동일할 수 있다.
시간 t3에서, 제2 트리거 신호(TRGW)가 활성화될 수 있다. 제2 트리거 신호(TRGW)가 활성화된 경우에(단계 S112: 예), 인터럽트 컨트롤러(150)는 제3 주기(TW)마다 제3 인터럽트(ITRW)를 발생할 수 있고(단계 S122), DVFS 컨트롤러(110)는 제3 인터럽트(ITRW)에 기초하여 상기 제2 목표 이벤트가 수행되는 것으로(즉, 상기 제2 목표 이벤트를 수행을 위해 상기 DVFS 대상 하드웨어가 이용되는 것으로) 판단할 수 있다(단계 S132). 예를 들어, 제3 인터럽트(ITRW)는 상기 데이터 트랜잭션 인터럽트일 수 있다. 예를 들어, 제3 주기(TW)는 상기 Wi-Fi 연결 환경인 경우에 약 4ms일 수 있다.
또한, 제2 트리거 신호(TRGW)가 활성화된 경우에(단계 S112: 예), DVFS 컨트롤러(110)는 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점이 제3 인터럽트(ITRW)의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 제3 주기(TW)의 정수 배로 설정할 수 있다(단계 S212). 다시 말하면, 상기 모니터링 동작의 주기는 제3 주기(TW)의 N(N은 2 이상의 자연수)배인 제4 주기로 설정될 수 있다. 예를 들어, 도 8에 도시된 것처럼 N은 2일 수 있고, 상기 모니터링 동작의 주기는 제3 주기(TW)의 2배인 2*TW로 설정될 수 있으며, 검정색 화살표의 일부와 빗금 친 화살표가 서로 일치하고 검정색 화살표 2개마다 빗금 친 화살표가 발생할 수 있다.
설정된 상기 제4 주기(예를 들어, 2*TW)에 기초하여, 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작을 수행하고 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다(단계 S310).
도 7의 단계 S122, S132 및 S310은 도 3의 단계 S120, S130 및 S310과 각각 실질적으로 동일할 수 있고, 도 7의 단계 S212는 도 3의 단계 S210과 유사할 수 있다.
시간 t4에서, 제2 트리거 신호(TRGW)가 비활성화될 수 있다. 시간 t4 이후의 동작은 시간 t3 이전의 동작과 실질적으로 동일할 수 있다.
도 6 및 9를 참조하면, CASE0은 상기 제2 목표 이벤트가 수행되지 않는 제2 상태를 나타내며, CASE2는 상기 제2 목표 이벤트가 수행되는 제3 상태를 나타낸다. 제2 트리거 신호(TRGW)가 활성화되는 경우에(즉, EN_TRGW) 제2 상태(CASE0)에서 제3 상태(CASE2)로 전환될 수 있고, 제2 트리거 신호(TRGW)가 비활성화되는 경우에(즉, DIS_TRGW) 제3 상태(CASE2)에서 제2 상태(CASE0)로 전환될 수 있다.
도 10은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도이다.
트리거 객체(400)에서 제2 트리거 신호(TRGW)가 추가적으로 발생되고, 이에 따라 인터럽트 컨트롤러(150)에서 발생되고 타이머(140)에 인가되는 제3 인터럽트(ITRW)가 추가되는 것을 제외하면, 도 10의 시스템 온 칩(100)은 도 2의 시스템 온 칩(100)과 실질적으로 동일할 수 있다.
도 10을 참조하면, 트리거 객체(400)는 상기 DVFS 대상 하드웨어에 대해 수행되는 상기 DVFS와 관련된 제1 및 제2 트리거 신호들(TRGD, TRGW)을 발생한다. 제1 및 제2 트리거 신호들(TRGD, TRGW)은 각각 도 2 및 6을 참조하여 상술한 것과 실질적으로 동일할 수 있다.
인터럽트 컨트롤러(150)는 제1 및 제2 트리거 신호들(TRGD, TRGW) 및 인터럽트 제어 신호(ITC)에 기초하여 스케줄된 각 시점에서 인터럽트를 발생할 수 있다.
일 실시예에서, 상기 제1 및 제2 목표 이벤트들의 수행이 적어도 일부 중첩하는 경우에, 즉 제1 트리거 신호(TRGD)의 활성화 구간 및 제2 트리거 신호(TRGW)의 활성화 구간의 적어도 일부가 중첩하는 경우에, 상기 제1 및 제2 목표 이벤트들의 우선 순위에 따라 제1 및 제3 인터럽트들(ITRD, ITRW) 중 하나를 발생할 수 있으며, 예를 들어 우선 순위가 높은 목표 이벤트에 대응하는 인터럽트를 발생할 수 있다. 예를 들어, 상기 제2 목표 이벤트가 상기 제1 목표 이벤트보다 우선 순위가 높은 경우에, 상기 제2 목표 이벤트에 대응하는 제3 인터럽트(ITRW)가 발생될 수 있으며, 상기 제2 목표 이벤트와 관련된 상기 제2 단위 동작의 시작 시점과 일치하도록 제3 인터럽트(ITRW)에 기초하여 상기 모니터링 동작의 주기가 설정될 수 있다.
타이머(140)는 상기 제2 주기마다 인터럽트 제어 신호(ITC)를 발생할 수 있고, 제1 및 제3 인터럽트들(ITRD, ITRW)에 응답하여 초기화될 수 있다.
도 11은 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 나타내는 순서도이다. 도 12는 도 11의 시스템 온 칩의 구동 방법을 설명하기 위한 도면이다.
도 10 및 11을 참조하면, 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법에서, 먼저 상기 제1 및 제2 목표 이벤트들의 수행 여부를 나타내는 제1 및 제2 트리거 신호들(TRGD, TRGW)을 검출할 수 있다.
제1 및 제2 트리거 신호들(TRGD, TRGW)이 모두 비활성화된 경우에(단계 S114: 예), 인터럽트 컨트롤러(150)는 제2 주기(TN)마다 제2 인터럽트(ITRB)를 발생할 수 있고(단계 S140), DVFS 컨트롤러(110)는 제2 인터럽트(ITRB)에 기초하여 상기 제1 및 제2 목표 이벤트들이 모두 수행되지 않는 것으로 판단할 수 있으며(단계 S152), 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점이 제2 인터럽트(ITRB)의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 제2 주기(TN)로 설정할 수 있다(단계 S220). 또한, 설정된 제2 주기(TN)에 기초하여, 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작을 수행하고 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다(단계 S310). 상술한 동작들은 도 4의 시간 t1 이전의 동작 도는 도 8의 시간 t3 이전의 동작과 실질적으로 동일할 수 있다.
도 11의 단계 S140, S154, S220 및 S310은 도 3의 단계 S140, S150, S220 및 S310과 각각 실질적으로 동일할 수 있다.
제1 및 제2 트리거 신호들(TRGD, TRGW)이 모두 활성화된 경우에(단계 S114: 아니오 & 단계 S116: 예), 우선 순위에 따라 하나의 트리거 신호 및/또는 하나의 목표 이벤트가 선택될 수 있다(단계 S118). 예를 들어, 우선 순위가 높은 목표 이벤트 또는 그에 대응하는 트리거 신호를 선택할 수 있다. 예를 들어, 단계 S118은 인터럽트 컨트롤러(150) 및/또는 DVFS 컨트롤러(110)에 의해 수행될 수 있다. 인터럽트 컨트롤러(150)는 선택된 트리거 신호에 대응하도록, 제1 주기(TD)마다 제1 인터럽트(ITRD)를 발생하거나 제3 주기(TW)마다 제3 인터럽트(ITRW)를 발생할 수 있다(단계 S124).
한편, 제1 및 제2 트리거 신호들(TRGD, TRGW) 중 하나만 활성화된 경우에(단계 S114: 아니오 & 단계 S116: 아니오), 인터럽트 컨트롤러(150)는 활성화된 트리거 신호에 대응하도록, 제1 주기(TD)마다 제1 인터럽트(ITRD)를 발생하거나 제3 주기(TW)마다 제3 인터럽트(ITRW)를 발생할 수 있다(단계 S124).
제1 및 제2 트리거 신호들(TRGD, TRGW) 중 적어도 하나가 활성화된 경우에(단계 S114: 아니오), DVFS 컨트롤러(110)는 단계 S124에서 발생된 인터럽트 및 제1 및 제2 트리거 신호들(TRGD, TRGW)의 활성화 여부에 기초하여 상기 제1 및 제2 목표 이벤트들 중 적어도 하나가 수행되는 것으로 판단할 수 있고(단계 S134), 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점이 단계 S124에서 발생된 인터럽트의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 설정할 수 있다(단계 S214). 또한, 단계 S214에서 설정된 주기에 기초하여, 상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작을 수행하고 클럭 신호(CLK1, CLK2) 및 전원 신호(PWR1, PWR2)를 조절할 수 있다(단계 S310). 상술한 동작들은 도 4의 시간 t1 내지 t2의 동작 또는 도 8의 시간 t3 내지 t4의 동작과 실질적으로 동일할 수 있다.
도 11의 단계 S124, S134 및 S310은 도 3의 단계 S120, S130 및 S310과 각각 실질적으로 동일할 수 있고, 도 11의 단계 S214는 도 3의 단계 S210 또는 도 7의 단계 S212와 실질적으로 동일할 수 있다.
도 10 및 12를 참조하면, CASE1은 상기 제1 목표 이벤트가 수행되는 제1 상태를 나타내고, CASE0은 상기 제1 및 제2 목표 이벤트들이 수행되지 않는 제2 상태를 나타내며, CASE2는 상기 제2 목표 이벤트가 수행되는 제3 상태를 나타낸다.
상기 제1 및 제2 목표 이벤트들이 동시에 수행되는 경우에, 미리 정해진 우선 순위가 높은 상기 제2 목표 이벤트에 기초하여 제3 상태(CASE2)로 전환될 수 있고, 상기 제2 목표 이벤트를 수행하기 위한 상기 제2 단위 동작의 시작 시점과 일치하도록 상기 모니터링 동작의 주기가 설정될 수 있다.
제1 상태(CASE1)와 제2 상태(CASE0) 사이의 전환은 도 5를 참조하여 상술한 것과 실질적으로 동일할 수 있다. 한편, 도시하지는 않았지만, 제2 상태(CASE0)와 제3 상태(CASE2) 사이의 전환은 도 9를 참조하여 상술한 것과 실질적으로 동일할 수 있다.
도 13 및 14는 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법을 설명하기 위한 도면들이다.
도 13 및 14에서, 제1 상태(CASE1), 제2 상태(CASE0) 및 제3 상태(CASE2)는 도 12를 참조하여 상술한 것과 실질적으로 동일할 수 있다.
도 13을 참조하면, CASE3은 상기 제1 및 제2 목표 이벤트들과 다른 제3 목표 이벤트가 수행되는 제4 상태를 나타낸다. 예를 들어, 상기 제3 목표 이벤트는 메모리-바운드 작업일 수 있다.
도 13의 실시예에서, 상기 제1 및 제3 목표 이벤트들이 동시에 수행되는 경우에, 미리 정해진 우선 순위가 높은 상기 제3 목표 이벤트에 기초하여 제4 상태(CASE3)로 전환될 수 있다. 다만, 상기 제2 및 제3 목표 이벤트들 사이의 우선 순위는 미리 설정되어 있지 않을 수 있다.
도 14를 참조하면, CASE4는 상기 제1 및 제2 목표 이벤트들과 다른 제4 목표 이벤트가 수행되는 제5 상태를 나타낸다. 예를 들어, 상기 제4 목표 이벤트는 메모리-바운드 작업일 수 있다.
도 14의 실시예에서, 상기 제1 및 제4 목표 이벤트들이 동시에 수행되는 경우에, 미리 정해진 우선 순위가 높은 상기 제4 목표 이벤트에 기초하여 제5 상태(CASE4)로 전환될 수 있다. 또한, 상기 제2 및 제4 목표 이벤트들 중 상기 제4 목표 이벤트의 우선 순위가 높을 수 있으며, 따라서 상기 제1, 제2 및 제4 목표 이벤트들이 동시에 수행되는 경우에, 미리 정해진 우선 순위가 높은 상기 제4 목표 이벤트에 기초하여 제5 상태(CASE4)로 전환될 수 있다.
이상, 특정 종류 및 특정 개수의 메모리-바운드 작업을 수행하는 경우에 기초하여 본 발명의 실시예들에 따른 비-CPU IP에 대한 DVFS 방법을 설명하였으나, 본 발명은 임의의 종류 및 임의의 개수의 메모리-바운드 작업을 수행하는 경우에 다양하게 적용될 수 있다.
도 15 및 16은 본 발명의 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 나타내는 블록도들이다.
도 15를 참조하면, 전자 시스템(10a)은 시스템 온 칩(100a), PMIC(200), 메모리 장치(300) 및 트리거 객체(400)를 포함한다.
시스템 온 칩(100a)은 CPU(101a), 메모리 인터페이스(120), 버스를 구비하는 내부 로직(130) 및 CMU(170)를 포함하며, 제1 PPMU(122) 제2 PPMU(132), 타이머(140), 인터럽트 컨트롤러(150) 및 PMU(160)를 더 포함할 수 있다.
도 15의 실시예에서, DVFS 컨트롤러(도 2의 110)는 CPU(101a) 내에 포함될 수 있다. 예를 들어, CPU(101a)는 중점 대상 식별자(112a), DVFS 트리거부(114a) 및 버스 트래픽 모니터부(116a)를 포함할 수 있다. 도 15의 중점 대상 식별자(112a), DVFS 트리거부(114a) 및 버스 트래픽 모니터부(116a)는 도 2의 중점 대상 식별자(112), DVFS 트리거부(114) 및 버스 트래픽 모니터부(116)와 각각 실질적으로 동일할 수 있다. 중점 대상 식별자(112a)는 트리거 객체(400)에서 발생되는 적어도 하나의 트리거 신호(TRG) 및 인터럽트 컨트롤러(150)에서 발생되는 적어도 하나의 인터럽트(ITR)에 기초하여, 상기 DVFS 대상 하드웨어의 동작 방식을 판단할 수 있다.
도 16을 참조하면, 전자 시스템(10b)은 시스템 온 칩(100b), PMIC(200) 및 메모리 장치(300)를 포함한다.
시스템 온 칩(100b)은 CPU(101), DVFS 컨트롤러(110), 메모리 인터페이스(120), 버스를 구비하는 내부 로직(130) 및 CMU(170)를 포함하며, 제1 PPMU(122) 제2 PPMU(132), 타이머(140), 인터럽트 컨트롤러(150), PMU(160) 및 트리거 객체(400b)를 더 포함할 수 있다.
도 16의 실시예에서, 시스템 온 칩(100b)은 트리거 객체(400b)를 더 포함할 수 있다. 다시 말하면, 트리거 객체(400b)는 시스템 온 칩(100b) 내에 포함될 수 있다. 예를 들어, 도 16의 트리거 객체(400b)는 도 2의 트리거 객체(400)와 실질적으로 동일할 수 있다.
도시하지는 않았지만, 실시예에 따라서 도 15의 시스템 온 칩(100a)은 도 16에 도시된 것처럼 트리거 객체를 포함하도록 구현될 수도 있다.
한편, 도시하지는 않았지만, 본 발명의 실시예들에 따른 시스템 온 칩은 다양한 기능 블록들 및/또는 기능 모듈들을 더 포함할 수 있다. 예를 들어, 상기 기능 블록들은 디스플레이 제어 블록, 파일 시스템 블록, 멀티 포맷 코덱 블록, 통신 제어 블록(예를 들어, CDMA(code division multiple access), LTE(long term evolution), RF(radio frequency), UWB(ultra wideband), WLAN(wireless local area network), WIMAX(worldwide interoperability for microwave access) 등), 카메라 제어 블록(예를 들어, CIS(CMOS image sensor) 등), 터치 패널 제어 블록, GPS(global positioning system) 제어 블록, 마이크 제어 블록, 스피커 제어 블록, 자이로스코프(gyroscope) 제어 블록 등을 포함할 수 있다.
한편, 본 발명의 실시예들에 따른 시스템 온 칩의 구동 방법(즉, 비-CPU IP에 대한 DVFS 방법)은, 컴퓨터로 판독 가능한 매체에 저장된 컴퓨터로 판독 가능한 프로그램 코드를 포함하는 제품 등의 형태로 구현될 수도 있다. 상기 컴퓨터로 판독 가능한 프로그램 코드는 다양한 컴퓨터 또는 다른 데이터 처리 장치의 프로세서로 제공될 수 있다. 상기 컴퓨터로 판독 가능한 매체는 컴퓨터로 판독 가능한 신호 매체 또는 컴퓨터로 판독 가능한 기록 매체일 수 있다. 상기 컴퓨터로 판독 가능한 기록 매체는 명령어 실행 시스템, 장비 또는 장치 내에 또는 이들과 접속되어 프로그램을 저장하거나 포함할 수 있는 임의의 유형적인 매체일 수 있다.
도 17은 본 발명의 실시예들에 따른 전자 시스템에서 사용되는 인터페이스의 일 예를 나타내는 블록도이다.
도 17을 참조하면, 전자 시스템(1100)은 시스템 온 칩(1110) 및 복수의 인터페이스들(1121, 1122, 1123, 1124, 1225, 1131, 1132, 1133, 1141, 1142, 1143, 1151, 1152, 1153, 1154, 1155)을 포함할 수 있다.
시스템 온 칩(1110)은 전자 시스템(1100)의 전반적인 동작을 제어할 수 있고, 본 발명의 실시예들에 따라 CPU(1112), 비-CPU IP(1114) 및 DVFS 컨트롤러(1116)를 포함할 수 있다.
시스템 온 칩(1110)은 디스플레이 인터페이스(1121), 터치 패널 인터페이스(1122), 캠코더 인터페이스(1123), TV 인터페이스(1124) 및 이미지 센서 인터페이스(1125)를 통하여 디스플레이, 터치 패널, 캠코더, TV 모듈 및 카메라 모듈(또는 이미지 센서 모듈)의 동작 상태를 제어할 수 있고, GPS 인터페이스(1131), UWB 인터페이스(1132) 및 USB 인터페이스(1133)를 통하여 GPS 모듈, UWB 모듈 및 USB 모듈의 동작 상태를 제어할 수 있고, WIFI 인터페이스(1141), 3G 인터페이스(1142) 및 LTE 인터페이스(1143)를 통하여 WIFI 모듈, 3G 모듈 및 LTE 모듈의 동작 상태를 제어할 수 있으며, DRAM 인터페이스(1151), 플래시 인터페이스(1152), MFC 인터페이스(1153), 오디오 인터페이스(1154) 및 MP3 인터페이스(1155)를 통하여 DRAM, 플래시 메모리, MFC 모듈, 오디오 모듈 및 MP3 모듈의 동작 상태를 제어할 수 있다. 여기서 모듈 또는 인터페이스는 하드웨어 또는 소프트웨어로 구현될 수 있다.
본 발명은 시스템 온 칩 및 이를 포함하는 다양한 장치 및 시스템에 적용될 수 있다. 따라서, 본 발명은 휴대폰, 스마트 폰, PDA, PMP, 디지털 카메라, 캠코더, PC, 서버 컴퓨터, 워크스테이션, 노트북, 디지털 TV, 셋-탑 박스, 음악 재생기, 휴대용 게임 콘솔, 네비게이션 기기, 웨어러블 기기, IoT 기기, VR 기기, AR 기기 등과 같은 다양한 형태의 전자 기기를 포함하는 시스템에 확대 적용될 수 있을 것이다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.
Claims (20)
- CPU(central processing unit) 및 DVFS(dynamic voltage & frequency scaling) 대상 하드웨어를 포함하는 시스템 온 칩의 구동 방법으로서,
상기 DVFS 대상 하드웨어의 동작 방식을 판단하는 단계;
상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정하는 단계; 및
상기 DVFS 수행 방식에 기초하여 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는 단계를 포함하는 시스템 온 칩의 구동 방법. - 제 1 항에 있어서,
상기 DVFS 대상 하드웨어의 동작 방식은 상기 DVFS 대상 하드웨어가 제1 목표 이벤트를 수행하기 위해 요구되는 제1 단위 동작을 포함하고,
상기 DVFS 수행 방식은 상기 DVFS 대상 하드웨어에 대한 모니터링 동작(monitoring)의 시작 시점을 포함하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 2 항에 있어서,
상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점을 상기 제1 단위 동작의 시작 시점과 일치시키는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 2 항에 있어서, 상기 DVFS 대상 하드웨어의 동작 방식을 판단하는 단계는,
상기 제1 목표 이벤트의 수행 여부를 나타내는 제1 트리거 신호를 검출하는 단계;
상기 제1 트리거 신호가 활성화된 경우에, 제1 주기마다 제1 인터럽트를 발생하는 단계; 및
상기 제1 인터럽트에 기초하여 상기 제1 목표 이벤트를 수행을 위해 상기 DVFS 대상 하드웨어가 이용되는 것으로 판단하는 단계를 포함하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 4 항에 있어서, 상기 DVFS 수행 방식을 결정하는 단계는,
상기 제1 트리거 신호가 활성화된 경우에, 상기 모니터링 동작의 시작 시점이 상기 제1 인터럽트의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 상기 제1 주기로 설정하는 단계를 포함하고,
상기 DVFS 대상 하드웨어를 이용하여 상기 제1 주기마다 상기 제1 단위 동작이 수행되며,
상기 DVFS 대상 하드웨어에 인가되는 클럭 신호 및 전원 신호를 상기 제1 주기마다 조절하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 4 항에 있어서, 상기 DVFS 대상 하드웨어의 동작 방식을 판단하는 단계는,
상기 제1 트리거 신호가 비활성화된 경우에, 제2 주기마다 제2 인터럽트를 발생하는 단계; 및
상기 제2 인터럽트에 기초하여 상기 제1 목표 이벤트가 수행되지 않는 것으로 판단하는 단계를 더 포함하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 6 항에 있어서, 상기 DVFS 수행 방식을 결정하는 단계는,
상기 제1 트리거 신호가 비활성화된 경우에, 상기 모니터링 동작의 시작 시점이 상기 제2 인터럽트의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 상기 제2 주기로 설정하는 단계를 포함하고,
상기 DVFS 대상 하드웨어에 인가되는 클럭 신호 및 전원 신호를 상기 제2 주기마다 조절하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 6 항에 있어서,
상기 제2 주기는 상기 제1 주기보다 긴 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 4 항에 있어서, 상기 DVFS 수행 방식을 결정하는 단계는,
상기 제1 트리거 신호가 활성화된 경우에, 상기 모니터링 동작의 시작 시점이 상기 제1 인터럽트의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 상기 제1 주기의 N(N은 2 이상의 자연수)배인 제2 주기로 설정하는 단계를 포함하고,
상기 DVFS 대상 하드웨어를 이용하여 상기 제1 주기마다 상기 제1 단위 동작이 수행되며,
상기 DVFS 대상 하드웨어에 인가되는 클럭 신호 및 전원 신호를 상기 제2 주기마다 조절하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 2 항에 있어서,
상기 DVFS 대상 하드웨어의 동작 방식은 상기 DVFS 대상 하드웨어가 제2 목표 이벤트를 수행하기 위해 요구되는 제2 단위 동작을 더 포함하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 10 항에 있어서,
상기 DVFS 대상 하드웨어에 대한 상기 모니터링 동작의 시작 시점을 상기 제1 단위 동작의 시작 시점 및 상기 제2 단위 동작의 시작 시점 중 하나와 일치시키는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - 제 11 항에 있어서,
상기 제1 목표 이벤트 및 상기 제2 목표 이벤트의 적어도 일부가 중첩하는 경우에, 상기 모니터링 동작의 시작 시점이 상기 제1 및 제2 목표 이벤트들 중 우선 순위가 높은 목표 이벤트를 수행하기 위한 단위 동작의 시작 시점과 일치하도록, 상기 모니터링 동작의 주기를 설정하는 것을 특징으로 하는 시스템 온 칩의 구동 방법. - DVFS(dynamic voltage & frequency scaling) 대상 하드웨어;
상기 DVFS 대상 하드웨어의 동작 방식을 판단하고, 상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정하며, 상기 DVFS 수행 방식을 기초로 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 사용되는 제1 제어 신호 및 제2 제어 신호를 발생하는 DVFS 컨트롤러;
상기 DVFS 대상 하드웨어 및 상기 DVFS 컨트롤러를 제어하는 CPU(central processing unit); 및
상기 제1 제어 신호를 기초로 클럭 신호를 발생하여 상기 DVFS 대상 하드웨어에 인가하는 CMU(clock management unit)를 포함하는 시스템 온 칩. - 제 13 항에 있어서, 상기 DVFS 대상 하드웨어는,
상기 제2 제어 신호를 기초로 전원 신호를 발생하는 외부의 PMIC(power management integrated circuit)로부터 상기 전원 신호를 인가받는 것을 특징으로 하는 시스템 온 칩. - 제 13 항에 있어서,
상기 DVFS 대상 하드웨어의 동작 방식은 상기 DVFS 대상 하드웨어가 제1 목표 이벤트를 수행하기 위해 요구되는 제1 단위 동작을 포함하고,
상기 DVFS 수행 방식은 상기 DVFS 대상 하드웨어에 대한 모니터링 동작(monitoring)의 시작 시점을 포함하며,
상기 제1 목표 이벤트의 수행 여부를 나타내는 제1 트리거 신호가 활성화된 경우에, 제1 주기마다 제1 인터럽트를 발생하는 인터럽트 컨트롤러를 더 포함하는 것을 특징으로 하는 시스템 온 칩. - 제 15 항에 있어서, 상기 DVFS 컨트롤러는,
상기 제1 트리거 신호가 활성화된 경우에, 상기 모니터링 동작의 시작 시점이 상기 제1 인터럽트의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 상기 제1 주기로 설정하며,
상기 클럭 신호를 상기 제1 주기마다 조절하도록 상기 제1 제어 신호를 발생하는 것을 특징으로 하는 시스템 온 칩. - 제 15 항에 있어서,
상기 인터럽트 컨트롤러는 상기 제1 트리거 신호가 비활성화된 경우에, 제2 주기마다 제2 인터럽트를 발생하고,
상기 DVFS 컨트롤러는 상기 제1 트리거 신호가 비활성화된 경우에, 상기 모니터링 동작의 시작 시점이 상기 제2 인터럽트의 발생 시점과 일치하도록, 상기 모니터링 동작의 주기를 상기 제2 주기로 설정하며, 상기 클럭 신호를 상기 제2 주기마다 조절하도록 상기 제1 제어 신호를 발생하는 것을 특징으로 하는 시스템 온 칩. - 제 15 항에 있어서,
상기 DVFS 대상 하드웨어의 동작 방식은 상기 DVFS 대상 하드웨어가 제2 목표 이벤트를 수행하기 위해 요구되는 제2 단위 동작을 더 포함하고,
상기 인터럽트 컨트롤러는 상기 제2 목표 이벤트의 수행 여부를 나타내는 제2 트리거 신호가 활성화된 경우에, 제2 주기마다 제2 인터럽트를 발생하는 것을 특징으로 하는 시스템 온 칩. - 제 18 항에 있어서, 상기 인터럽트 컨트롤러는,
상기 제1 트리거 신호의 활성화 구간 및 상기 제2 트리거 신호의 활성화 구간의 적어도 일부가 중첩하는 경우에, 상기 제1 및 제2 목표 이벤트들 중 우선 순위가 높은 목표 이벤트에 대응하도록, 상기 제1 및 제2 인터럽트들 중 하나를 발생하는 것을 특징으로 하는 시스템 온 칩. - 시스템 온 칩;
상기 시스템 온 칩에 전원 신호를 인가하는 PMIC(power management integrated circuit); 및
상기 시스템 온 칩에 의해 수행되는 DVFS(dynamic voltage & frequency scaling)와 관련된 적어도 하나의 트리거 신호를 발생하는 트리거 객체(trigger object)를 포함하고,
상기 시스템 온 칩은,
DVFS 대상 하드웨어;
상기 DVFS 대상 하드웨어의 동작 방식을 판단하고, 상기 DVFS 대상 하드웨어의 동작 방식에 기초하여, 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 필요한 DVFS 수행 방식을 결정하며, 상기 DVFS 수행 방식을 기초로 상기 DVFS 대상 하드웨어에 대해 상기 DVFS를 수행하는데 사용되는 제1 제어 신호 및 제2 제어 신호를 발생하는 DVFS 컨트롤러;
상기 DVFS 대상 하드웨어 및 상기 DVFS 컨트롤러를 제어하는 CPU(central processing unit); 및
상기 제1 제어 신호를 기초로 클럭 신호를 발생하여 상기 DVFS 대상 하드웨어에 인가하는 CMU(clock management unit)를 포함하는 전자 시스템.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160183423A KR20180078558A (ko) | 2016-12-30 | 2016-12-30 | 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 |
US15/838,613 US10725525B2 (en) | 2016-12-30 | 2017-12-12 | Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same |
CN201711453580.XA CN108268119B (zh) | 2016-12-30 | 2017-12-27 | 操作片上系统的方法、片上系统和电子系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020160183423A KR20180078558A (ko) | 2016-12-30 | 2016-12-30 | 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20180078558A true KR20180078558A (ko) | 2018-07-10 |
Family
ID=62712332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020160183423A KR20180078558A (ko) | 2016-12-30 | 2016-12-30 | 시스템 온 칩의 구동 방법, 이를 수행하는 시스템 온 칩 및 이를 포함하는 전자 시스템 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10725525B2 (ko) |
KR (1) | KR20180078558A (ko) |
CN (1) | CN108268119B (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3750578A4 (en) | 2018-02-09 | 2021-06-23 | Daicel Corporation | INJECTOR AND METHOD OF INJECTING A SOLUTION CONTAINING LIVE CELLS INTO AN INJECTION TARGET BY MEANS OF THE INJECTOR |
CN114185838A (zh) * | 2020-09-15 | 2022-03-15 | 阿里巴巴集团控股有限公司 | 片上系统和调节电压和频率的方法 |
WO2021035229A2 (en) * | 2020-12-03 | 2021-02-25 | Zeku, Inc. | Apparatus and method for determining a baseline voltage and ring oscillator code |
US11927981B2 (en) | 2021-05-21 | 2024-03-12 | Samsung Electronics Co., Ltd. | Integrated circuit, dynamic voltage and frequency scaling (DVFS) governor, and computing system including the same |
WO2023035630A1 (zh) * | 2021-09-07 | 2023-03-16 | 青岛海信传媒网络技术有限公司 | 一种音频控制方法及显示设备 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7861098B2 (en) | 2006-06-30 | 2010-12-28 | Intel Corporation | Method and apparatus for user-activity-based dynamic power management and policy creation for mobile platforms |
US8370663B2 (en) * | 2008-02-11 | 2013-02-05 | Nvidia Corporation | Power management with dynamic frequency adjustments |
US8171187B2 (en) * | 2008-07-25 | 2012-05-01 | Freescale Semiconductor, Inc. | System and method for arbitrating between memory access requests |
US9104411B2 (en) * | 2009-12-16 | 2015-08-11 | Qualcomm Incorporated | System and method for controlling central processing unit power with guaranteed transient deadlines |
US8671413B2 (en) | 2010-01-11 | 2014-03-11 | Qualcomm Incorporated | System and method of dynamic clock and voltage scaling for workload based power management of a wireless mobile device |
CN103348324A (zh) * | 2011-02-10 | 2013-10-09 | 富士通株式会社 | 调度方法、设计辅助方法以及系统 |
US8904208B2 (en) | 2011-11-04 | 2014-12-02 | International Business Machines Corporation | Run-time task-level dynamic energy management |
KR20130110459A (ko) | 2012-03-29 | 2013-10-10 | 삼성전자주식회사 | 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법 |
KR101991682B1 (ko) * | 2012-08-29 | 2019-06-21 | 삼성전자 주식회사 | Dvfs 제어 방법 및 이를 이용한 시스템-온 칩 |
US8984313B2 (en) * | 2012-08-31 | 2015-03-17 | Intel Corporation | Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator |
KR20140030823A (ko) * | 2012-09-04 | 2014-03-12 | 삼성전자주식회사 | 3차원 작업 부하를 이용하여 dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US20140089699A1 (en) * | 2012-09-27 | 2014-03-27 | Advanced Micro Devices | Power management system and method for a processor |
KR20140088691A (ko) * | 2013-01-03 | 2014-07-11 | 삼성전자주식회사 | Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법 |
US9285858B2 (en) | 2013-01-29 | 2016-03-15 | Blackberry Limited | Methods for monitoring and adjusting performance of a mobile computing device |
US9152214B2 (en) | 2013-05-16 | 2015-10-06 | Qualcomm Innovation Center, Inc. | Dynamic load and priority based clock scaling for non-volatile storage devices |
JP6175980B2 (ja) * | 2013-08-23 | 2017-08-09 | 富士通株式会社 | Cpuの制御方法、制御プログラム、情報処理装置 |
KR102164099B1 (ko) | 2014-03-28 | 2020-10-12 | 삼성전자 주식회사 | 시스템 온 칩, 이의 작동 방법, 및 이를 포함하는 장치 |
US20160154449A1 (en) | 2014-11-27 | 2016-06-02 | Eui Choel LIM | System on chips for controlling power using workloads, methods of operating the same, and computing devices including the same |
US10296067B2 (en) * | 2016-04-08 | 2019-05-21 | Qualcomm Incorporated | Enhanced dynamic clock and voltage scaling (DCVS) scheme |
-
2016
- 2016-12-30 KR KR1020160183423A patent/KR20180078558A/ko active IP Right Grant
-
2017
- 2017-12-12 US US15/838,613 patent/US10725525B2/en active Active
- 2017-12-27 CN CN201711453580.XA patent/CN108268119B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108268119A (zh) | 2018-07-10 |
US10725525B2 (en) | 2020-07-28 |
CN108268119B (zh) | 2023-08-04 |
US20180188789A1 (en) | 2018-07-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9378536B2 (en) | CPU/GPU DCVS co-optimization for reducing power consumption in graphics frame processing | |
TWI527051B (zh) | 記憶體控制器之調校、電力閘控與動態頻率改變 | |
US10725525B2 (en) | Method of operating system-on-chip, system-on-chip performing the same and electronic system including the same | |
JP6309641B2 (ja) | 低レイテンシスイッチングを用いた動的クロックおよび電圧スケーリング | |
US9690364B2 (en) | Systems and methods for dynamically adjusting memory state transition timers | |
JP2008059054A (ja) | プロセッサシステム | |
TWI670592B (zh) | 系統單晶片、關於其之方法及包括該系統單晶片之裝置 | |
KR20160136410A (ko) | 공유 전력 도메인에서의 이종의 프로세서들에 걸친 동적 전력 관리를 위한 장치, 시스템 및 방법 | |
EP3189394B1 (en) | Supply voltage node coupling using a switch | |
TW201626155A (zh) | 對於系統單晶片中的記憶體存取之電源管理的技術 | |
US9507641B1 (en) | System and method for dynamic granularity control of parallelized work in a portable computing device (PCD) | |
JP2015158751A (ja) | 描画方法、描画装置及びプログラム | |
US10761581B2 (en) | Method and module for programmable power management, and system on chip | |
JP2018524658A (ja) | プロセッサコア動作の調整 | |
WO2012067211A1 (ja) | 情報処理装置、電子機器、コンピュータプログラム記憶媒体、および、性能と電力の制御方法 | |
US11934248B2 (en) | Performance and power tuning user interface | |
US20240330050A1 (en) | Method and apparatus to allow adjustment of the core availability mask provided to system software | |
US20210057420A1 (en) | Method of controlling performance boosting of semiconductor device and semiconductor device performing the method | |
JP6126386B2 (ja) | 情報処理装置 | |
JP2015001832A (ja) | 情報処理装置およびその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right |