KR20240016010A - 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치 - Google Patents

시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치 Download PDF

Info

Publication number
KR20240016010A
KR20240016010A KR1020220094002A KR20220094002A KR20240016010A KR 20240016010 A KR20240016010 A KR 20240016010A KR 1020220094002 A KR1020220094002 A KR 1020220094002A KR 20220094002 A KR20220094002 A KR 20220094002A KR 20240016010 A KR20240016010 A KR 20240016010A
Authority
KR
South Korea
Prior art keywords
block
operating frequency
fps
temperature
blocks
Prior art date
Application number
KR1020220094002A
Other languages
English (en)
Inventor
박경민
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020220094002A priority Critical patent/KR20240016010A/ko
Priority to US18/316,697 priority patent/US20240036627A1/en
Publication of KR20240016010A publication Critical patent/KR20240016010A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/206Cooling means comprising thermal management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • G06F1/203Cooling means for portable computers, e.g. for laptops
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)

Abstract

시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치가 제공된다. 시스템 온 칩은 복수의 IP 블록, 복수의 IP 블록에 의해 프로세싱된 데이터에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기, 복수의 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit), 복수의 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러, 및 복수의 IP 블록의 전원을 독립적으로 조절하는 전력 관리 유닛(PMU: Power Management Unit)을 포함하되, DVFS 컨트롤러는, 복수의 IP 블록의 동작 주파수를 각각 제한했을 때 복수의 IP 블록에 대한 FPS의 감소량을 각각 확인하고, 확인된 FPS의 감소량과 복수의 IP 블록의 온도 정보를 이용하여 복수의 IP 블록 중 적어도 하나의 동작 주파수를 임계값 이하로 제한한다.

Description

시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치{SYSTEM ON CHIP AND SEMICONDUCTOR DEVICE INCLUDING THE SAME}
본 발명은 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치에 관한 것이다.
모바일 환경에서, 스마트폰이나 태블릿 기기 등의 모바일 기기에 애플리케이션 프로세서(AP: Application Processor)가 널리 사용되고 있다. 애플리케이션 프로세서는 시스템 온 칩(system on chip, SoC) 형태로 구현될 수 있다. 시스템 온 칩은 하나의 집적회로에 집적된 컴퓨터나 전자 시스템 부품을 의미하며, 일반적으로 임베디드 시스템 영역에 주로 사용된다.
모바일 기기의 고성능화, 기능의 다양화, 크기의 축소화에 대한 경쟁이 치열해지고 있다. 이러한 추세 속에, 애플리케이션 프로세서에 수많은 기능 블록(IP: Intellectual Property)들이 포함되게 되었다.
시스템 온 칩이나 모바일 기기의 고온 상황이 지속될 경우, 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 통해 IP의 동작 주파수를 낮추는 방법을 사용하고 있다. 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scaling)은 알고리즘(algorithm)을 활용하여 동작 주파수(operating frequency)와 동작 전압(operating voltage)을 동적으로 조절하는 기술이다.
IP의 동작 주파수를 낮추는 경우 사용자가 체감하는 모바일 기기의 성능 측면에서 손해가 발생할 수 있으므로, 사용자 체감 측면에서 모바일 기기의 성능 감소를 최소화하면서 시스템 온 칩에 대해 스로틀링(throttling)을 수행하는 방법에 대한 연구가 진행중이다.
본 발명이 해결하고자 하는 기술적 과제는 사용자 체감 측면에서 성능 감소를 최소화하면서 스로틀링을 수행하는 시스템 온 칩을 제공하는 것이다.
본 발명이 해결하고자 하는 기술적 과제는 사용자 체감 측면에서 성능 감소를 최소화하면서 스로틀링을 수행하는 반도체 장치를 제공하는 것이다.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 시스템 온 칩은, 복수의 IP 블록, 복수의 IP 블록에 의해 프로세싱된 데이터에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기, 복수의 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit), 복수의 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러, 및 복수의 IP 블록의 전원을 독립적으로 조절하는 전력 관리 유닛(PMU: Power Management Unit)을 포함하되, DVFS 컨트롤러는, 복수의 IP 블록의 동작 주파수를 각각 제한했을 때 복수의 IP 블록에 대한 FPS의 감소량을 각각 확인하고, 확인된 FPS의 감소량과 복수의 IP 블록의 온도 정보를 이용하여 복수의 IP 블록 중 적어도 하나의 동작 주파수를 임계값 이하로 제한한다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 시스템 온 칩은, 제1 IP 블록, 제2 IP 블록, 제1 IP 블록 및 제2 IP 블록에 의해 프로세싱된 데이터에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기, 제1 IP 블록 및 제2 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit), 및 제1 IP 블록 및 제2 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러를 포함하되, DVFS 컨트롤러는, 제1 IP 블록의 동작 주파수를 제한했을 때의 FPS의 감소량이 제2 IP 블록의 동작 주파수를 제한했을 때의 FPS의 감소량보다 작고, 제1 IP 블록의 동작 주파수를 제한했을 때의 제1 IP 블록의 온도 감소 폭이 제2 IP 블록의 동작 주파수를 제한했을 때의 제2 IP 블록의 온도 감소 폭 보다 큰 것에 응답하여, 제1 IP 블록의 동작 주파수를 임계값 이하로 제한하고, 제2 IP 블록의 동작 주파수를 임계값 이하로 제한하지 않는다.
상기 기술적 과제를 달성하기 위한 본 발명의 몇몇 실시예에 따른 반도체 장치는, 복수의 IP 블록을 포함하는 시스템 온 칩, 및 복수의 IP 블록에 의해 처리된 데이터를 기초로 영상을 출력하는 표시 장치를 포함하되, 시스템 온 칩은, 영상에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기와, 복수의 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit)과, 복수의 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러를 포함하고, DVFS 컨트롤러는, 복수의 IP 블록의 동작 주파수를 각각 제한했을 때 복수의 IP 블록에 대한 FPS의 감소량을 각각 확인하고, 확인된 FPS의 감소량과 복수의 IP 블록의 온도 정보를 이용하여 복수의 IP 블록 중 적어도 하나의 동작 주파수를 제1 임계값 이하로 제한한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1은 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 설명하기 위한 블록도이다.
도 2는 도 1의 시스템 온 칩을 설명하기 위한 블록도이다.
도 3은 몇몇 실시예들에 따른 시스템 온 칩의 동작을 설명하기 위한 블록도이다.
도 4는 도 3의 시스템 온 칩의 동작을 설명하기 위한 순서도이다.
도 5 내지 도 7은 몇몇 실시예들에 따른 DVFS 컨트롤러가 컨트롤 타겟 IP를 선택하는 동작을 설명하기 위한 예시적인 도면이다.
도 8은 다른 몇몇 실시예들에 따른 시스템 온 칩의 동작을 설명하기 위한 블록도이다.
도 9는 도 8의 시스템 온 칩의 동작을 설명하기 위한 순서도이다.
도 10은 몇몇 실시예들에 따른 효과를 설명하기 위한 예시적인 도면이다.
도 11은 몇몇 실시예들에 따른 효과를 설명하기 위한 예시적인 도면이다.
도 12는 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 전자시스템의 실시예를 나타낸 블록도이다.
이하, 첨부된 도면을 참조하여 본 발명의 몇몇 실시예에 따른 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치에 대해서 설명한다.
도 1은 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템을 설명하기 위한 블록도이다.
도 1을 참조하면, 전자 시스템(1)은 이동 전화기, 스마트폰, 태블릿 PC (tablet personal computer), 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), 또는 e-북(e-book)과 같이 손으로 들고다닐 수 있는 장치(handheld device)로 구현될 수 있다. 전자 시스템(1)은 시스템 온 칩(system on chip(SoC); 100), 외부 메모리(200), 및 디스플레이 디바이스(300)를 포함한다. 단, 실시예는 이에 제한되지 않으며, 전자 시스템(1)은 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다(예를 들어, 도 12 참조).
SoC(100)는 제1 기능 블록(Intellectual Property 1(IP 1); 110), 제2 기능 블록(Intellectual Property 2(IP 2); 120), ROM(Read Only Memory; 130), RAM(Random Access Memory; 140), FPS(Frame Per Second) 측정기(150), DVFS(Dynamic Voltage Frequency Scailing) 컨트롤러(160), 온도 관리 유닛(Temperature Management Unit(TMU); 170), 클럭 관리 유닛(Clock Management Unit(CMU); 180), 전력 관리 유닛(Power Management Unit(PMU); 190), 메모리 컨트롤러(210), 디스플레이 컨트롤러(310) 및 버스(400)를 포함할 수 있다. 단, 실시예는 이에 제한되지 않으며, SoC(100)는 도시된 구성 요소 이외에 다른 구성 요소들을 더 포함할 수 있다.
IP는 특정 기능을 수행하는 기능 블록(function block)이다. 도 1에는 IP 1(110), IP 2(120)만이 도시되어 있으나, 이는 설명의 편의를 위한 것이며, SoC(100)는 3개 이상의 IP들을 포함할 수 있다. SoC(100)에 포함되는 기능 블록들은 도 2를 참조하여 후술한다.
ROM(130), RAM(140), 및/또는 외부 메모리(200)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(111, 도 2에 도시됨)의 메모리에 로드(load)될 수 있다. ROM(130)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(130)은 EPROM(erasable programmable read-only memory) 또는 EEPROM (electrically erasable programmable read-only memory)으로 구현될 수 있다. RAM(140)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(130 또는 200)에 저장된 프로그램들 및/또는 데이터는 CPU(111, 도 2에 도시됨)의 제어에 따라 또는 ROM(130)에 저장된 부팅 코드 (booting code)에 따라 RAM(140)에 일시적으로 저장될 수 있다. RAM(140)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
CMU(180)는 동작 클락 신호를 생성하고 제어할 수 있다. CMU(180)는 위상 동기 루프(phase locked loop(PLL)), 지연 동기 루프 (delayed locked loop(DLL)), 또는 크리스탈 오실레이터 등과 같은 클락 신호 생성 장치를 포함할 수 있다. 동작 클락 신호는 GPU(114, 도 2에 도시됨)로 공급될 수 있다. 물론, 동작 클락 신호는 다른 구성 요소(예컨대, CPU(111, 도 2에 도시됨) 또는 메모리 컨트롤러(210) 등)로 공급될 수도 있다. CMU(180)는 동작 클락 신호의 주파수를 변경할 수 있다.
메모리 컨트롤러(210)는 외부 메모리(200)와 인터페이싱 할 수 있다. 메모리 컨트롤러(210)는 외부 메모리(200)의 동작을 전반적으로 제어하며, 호스트와 외부 메모리(200) 사이의 데이터 교환을 제어한다. 예컨대, 메모리 컨트롤러(210)는 호스트의 요청에 따라 외부 메모리(200)에 데이터를 쓰거나 외부 메모리(200)로부터 데이터를 읽을 수 있다. 여기서, 호스트는 CPU(111, 도 2에 도시됨), GPU(114, 도 2에 도시됨), 또는 디스플레이 컨트롤러(310)와 같은 마스터(master) 장치일 수 있다.
외부 메모리(200)는 데이터를 저장하기 위한 저장 매체(storage medium)로서, OS(Operating System), 각종 프로 그램들, 및/또는 각종 데이터를 저장할 수 있다. 외부 메모리(200)는 예컨대 DRAM 일 수 있으나 이에 한정되는 것은 아니다. 예컨대, 외부 메모리(200)는 비휘발성 메모리 장치(예컨대, 플래시 메모리, PRAM(phase change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), 또는 FeRAM 장치)일 수도 있다. 몇몇 실시 예에서 외부 메모리(200)는 SoC(100)의 내부에 구비되는 내장 메모리일 수 있다. 또한, 외부 메모리(200)는 플래시 메모리, eMMC(embedded multimedia card), 또는 UFS(universal flash storage)일 수 있다. 각 구성 요소(110, 120, 130, 140, 150, 160, 170, 180, 190, 210, 310)는 버스(400)를 통하여 서로 통신할 수 있다.
디스플레이 디바이스(300)는 디스플레이 컨트롤러(310)로부터 출력된 이미지 신호들을 디스플레이할 수 있다. 예컨대, 디스플레이 디바이스(300)는 LCD(liquid crystal display), LED(light emitting diode) 디스플레이, OLED(organic LED) 디스플레이, AMOLED(active-matrix OLED) 디스플레이, 또는 플렉시블(flexible) 디스플레이로 구현될 수 있다. 디스플레이 컨트롤러(310)는 디스플레이 디바이스(300)의 동작을 제어한다. FPS 측정기(150), DVFS 컨트롤러(160), TMU(170)에 관한 보다 구체적인 설명은 도 3을 참조하여 후술한다.
도 2는 도 1의 시스템 온 칩을 설명하기 위한 블록도이다.
도 1 및 도 2를 참조하면, IP 1(110) 및 IP 2(120)는 중앙처리장치(Central Processing Unit(CPU); 111), 그래픽 프로세싱 유닛(Graphics Processing Unit(GPU); 114), 메모리 인터페이스(Memory Interface(MIF); 115), 내부 블록(Internal Block(INT); 116)을 포함할 수 있다. 그러나, 실시예는 이에 제한되지 않으며, IP 1(110) 및 IP 2(120)는 NPU(Neural Network Processor), CP(Communication Processor), PCI(Peripheral Component Interconnect), 디지털 신호 프로세서(Digital Signal Processor(DSP)), 와이어드 인터페이스(Wired Interface), 무선 인터페이스(Wireless Interface), 임베디드 소프트웨어(Embedded Software), 코덱(Codec), 비디오 모듈(예컨대, 카메라 인터페이스(Camera Interface), JPEG(Joint Photographic Experts Group) 프로세서, 비디오 프로세서(Video Processor), 또는 믹서(Mixer) 등), 3D 그래픽스 코어(3-Dimensional Graphics Core), 오디오 시스템(Audio System), 또는 드라이버(Driver) 등과 같은 기능 블록을 포함할 수도 있다.
프로세서(processor)라고도 불릴 수 있는 CPU(111)는 외부 메모리(200)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(111)는 CMU(180)로부터 출력된 동작 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다. CPU(111)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트 (computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다.
몇몇 실시예에서, CPU(111)는 이종멀티코어, 예컨대 제1 타입 코어 및 제2 타입 코어를 포함할 수 있다. 실시예에 따라 CPU(111)는 제1 타입 코어 및 제2 타입 코어 외에도 제3 타입 코어를 더 포함할 수 있다. 몇몇 실시예에서, 제1 타입 코어는 빅 코어(Big core; 112)에, 제2 타입 코어는 리틀 코어(Little core; 113)에 해당할 수 있다. 빅 코어(112)는 고성능 코어에, 리틀 코어(113)는 저전력 코어에 해당할 수 있다.
CPU(111)는 리틀 코어(113)에 태스크를 할당하고 상기 태스크가 할당된 리틀 코어에서 CPU 로드를 측정하고, 측정된 CPU 로드가 저전력 코어에서 수행될 수 있는 작업 로드를 초과하면, 고성능 코어로 스위칭한다. 또한, CPU(111)는 측정된 CPU 로드에 기초하여 상기 고성능 코어에서 수행 중인 작업 로드가 저전력 코어에서도 수행할 수 있다고 판단되면, 고성능 코어로부터 저전력 코어로 역스위칭한다. CPU(111), 빅 코어(112), 리틀 코어(113), GPU(114), MIF(115), INT(116)는 버스(400)를 통하여 서로 통신할 수 있다.
도 3은 몇몇 실시예들에 따른 시스템 온 칩의 동작을 설명하기 위한 블록도이다.
도 3을 참조하면, TMU(170)는 IP 1(110)의 온도 데이터를 IP 1(110) 내부의 제1 온도 센서(121)로부터 수신할 수 있다. 또한, TMU(170)는 IP 2(120)의 온도 데이터를 IP 2(120) 내부의 제2 온도 센서(122)로부터 수신할 수 있다. TMU(170)는 기능 블록들의 온도 데이터를 DVFS 컨트롤러(160)에 제공할 수 있다. -> 도면에 160번 도면부호 추가 필요합니다.
FPS 측정기(150)는 IP 1(110), IP 2(120)에 의해 프로세싱된 데이터에 기초한 초당 프레임 수(Frame Per Second(FPS))를 측정할 수 있다. FPS는 디스플레이 장치에 연속적인 이미지가 출력될 때, 디스플레이 화면에 이미지 데이터가 표시되는 속도이다. FPS는 전자 시스템(1, 도 1에 도시됨)을 사용하여 수행되는 다양한 시나리오(예를 들어, 3D game, 영상 통화, 카메라 동작 등) 상황에서 유저(user)가 체감하는 성능 지표 중의 하나이다. FPS 측정기(150)는 예를 들어, IP 1(110), IP 2(120)에 의해 프로세싱된 데이터가 디스플레이 디바이스(300, 도 1에 도시됨)에 출력될 때의 FPS를 측정하고, 해당 FPS 데이터를 DVFS 컨트롤러(160)에 제공할 수 있다.
DVFS 컨트롤러(160)는 TMU(170)로부터 수신한 온도 데이터 및 FPS 측정기(150)로부터 수신한 FPS 데이터에 기초하여 IP 1(110) 및 IP 2(120)에 대하여 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행할 수 있다. 도 3에는 IP 1(110), IP 2(120)만이 도시되어 있으나, 실시예는 이에 제한되지 않으며, DVFS 컨트롤러(160)에 의해 동작 전압 및 동작 주파수의 제어를 받는 기능블록은 3개 이상으로 구현될 수 있다.
전자 시스템(1, 도 1에 도시됨)이 3D game, 영상 통화, 카메라 동작 등 다양한 시나리오 동작을 수행할 때, SoC(100)에 포함되는 IP들(110, 120)의 동작 주파수가 높을수록, 전자 시스템(1, 도 1에 도시됨)이 고성능을 발휘할 수 있다. 단, IP들(110,120)의 동작 주파수가 높아질수록, SoC(100)의 온도 또한 지속적으로 높아질 수 있다. 따라서, 전자 시스템(1, 도 1에 도시됨)의 사용자의 안전을 위해, DVFS 컨트롤러(160)는 열적 스로틀링(throttling) 동작을 수행하여 SoC(100)의 온도를 안전한 수준으로 낮출 수 있다.
DVFS 컨트롤러(160)는 SoC(100)의 온도를 낮추는 스로틀링 동작을 수행하기 위하여, 복수의 IP에 대하여 선택적으로 DVFS 동작을 수행할 수 있다. 예를 들어, DVFS 컨트롤러(160)는 IP 1(110)의 동작 주파수를 임계값 이하로 제한하고, IP 2(120)의 동작 주파수를 임계값 이하로 제한하지 않을 수 있다. 또는, DVFS 컨트롤러(160)는 IP 1(110)의 동작 주파수를 임계값 이하로 제한하지 않고, IP 2(120)의 동작 주파수를 임계값 이하로 제한할 수 있다. 또는, DVFS 컨트롤러(160)는 IP 1(110)의 동작 주파수와 IP 2(120)의 동작 주파수를 모두 임계값 이하로 제한할 수 있다.
이 때, IP들(110, 120)의 동작 주파수 제한의 기준이 되는 임계값은 실시예에 따라서 달라질 수 있다. 예를 들어, 임계값은 IP의 종류에 따라서 달라 질 수 있다. 또한, 임계값은 전자시스템(1, 도 1에 도시됨)이 수행하는 시나리오의 종류에 따라서 달라질 수 있다. DVFS 컨트롤러가 임계값을 설정하는 기준은 도 6 내지 도 7을 참조하여 후술한다.
도 4는 도 3의 시스템 온 칩의 동작을 설명하기 위한 순서도이다.
도 4를 참조하면, TMU(170)가 동작할 때, TMU(170)는 IP들(110, 120)의 온도 데이터를 DVFS 컨트롤러(160)에 전송한다(S100). FPS 측정기(150)는 IP들(110, 120)에 의해 프로세싱된 데이터에 기초한 FPS 데이터를 DVFS 컨트롤러(160)에 전송한다(S110).
DVFS 컨트롤러(160)는 TMU(170)로부터 IP들(110, 120)의 온도 데이터 및 FPS 측정기(150)로부터 FPS 데이터를 수신한다(S120). 이후, DVFS 컨트롤러(160)는 IP들(110, 120)의 온도 데이터에 기초하여 SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨(throttling level)보다 높은지 판단한다(S130).
SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨보다 높지 않다고 판단되면(S130-N), Soc(100, 도 1에 도시됨)에 대한 스로틀링 동작이 수행되지 않고, DVFS 컨트롤러(160)는 IP들(110, 120)의 동작 주파수를 제한하지 않는다(S140). 만약, SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨보다 높다고 판단한 경우(S130-Y), DVFS 컨트롤러(160)는 각 IP들(110, 120)의 동작 주파수를 제한했을 때의 FPS 감소량 및 SoC(100, 도 1에 도시됨)의 온도 감소량을 확인한다(S150).
DVFS 컨트롤러(160)는 각 IP들(110, 120)의 동작 주파수를 제한했을 때의 FPS 감소량 및 SoC(100, 도 1에 도시됨)의 온도 감소량에 기초하여 각 시나리오별로 발열 상황 발생 시, FPS 저하를 최소화하면서 SoC(100, 도 1에 도시됨)의 온도를 효과적으로 감소시킬 수 있는 IP(이하, 컨트롤 타겟 IP(Control Target IP)라고 한다)를 선택한다(S160). DVFS 컨트롤러(160)가 컨트롤 타겟 IP를 선택하는 기준 및 방법은 도 5 내지 7을 참조하여 후술한다.
DVFS 컨트롤러(160)는 컨트롤 타겟 IP의 동작 주파수를 임계값 이하로 제한하고(S170), 이에 따라서, SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨 이하로 쿨 다운(cool down)된다(S180). 이에 따라, SoC(100, 도 1에 도시됨)가 탑재된 전자 시스템(1, 도 1에 도시됨)의 유저(user)가 성능 저하(frame drop)를 체감하지 못하면서, 전자 시스템(1, 도 1에 도시됨)의 안정성이 보장될 수 있다.
이후, TMU(170)에 의해 감지되는 SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨 이하로 하강하는 것에 응답하여, DVFS 컨트롤러(160)는 컨트롤 타겟 IP에 대한 동작 주파수 제한을 해제할 수 있다(S190).
도 5 내지 도 7은 몇몇 실시예들에 따른 DVFS 컨트롤러가 컨트롤 타겟 IP를 선택하는 동작을 설명하기 위한 예시적인 도면이다.
도 5를 참조하면, 전자시스템(1, 도 1에 도시됨)이 특정 시나리오(예를 들어, 3D game, 영상 통화, 카메라 동작 등)를 수행할 때, SoC(100, 도 1에 도시됨)를 구성하는 IP들은 서로 각각 다른 주파수로 동작할 수 있다. 도 5에 도시된 각 IP의 동작 주파수는 설명의 편의를 위해 예시를 든 것이며, 각 IP의 동작 주파수는 실시예에 따라서 달라질 수 있다. 도 5에는 5개의 IP가 도시되어 있으나, 이는 설명의 편의를 위한 것이며, SoC(100, 도 1에 도시됨)를 구성하는 IP의 개수는 실시예에 따라 더 적거나 더 많을 수 있다.
DVFS 컨트롤러(160, 도 3에 도시됨)는 해당 시나리오에서 각 IP들의 동작 주파수를 파악하고, 발열 문제 개선을 위해 튜닝(tuning)할 수 있는 컨트롤 타겟 IP를 선택할 수 있다. 구체적으로, DVFS 컨트롤러(160, 도 3에 도시됨)는 복수의 IP들 중 동작 주파수를 제한했을 때 FPS 감소량이 전자 시스템(1, 도 1에 도시됨)의 사용자가 체감하지 못하는 범위 내이고, SoC(100, 도 1에 도시됨)의 온도를 효과적으로 낮출 수 있는 IP를 컨트롤 타겟 IP로 적어도 하나 선택하여, 그 동작 주파수를 임계값 이하로 제한할 수 있다.
이하, 기능 블록(IP 1)이 CPU(111, 도 2에 도시됨)의 빅 코어(112, 도 2에 도시됨)이고 기능 블록(IP 2)이 CPU(111, 도 2에 도시됨)의 리틀 코어(113, 도 2에 도시됨)인 경우를 예시로 들어 설명한다.
이때, 고성능 코어인 빅 코어(112, 도 2에 도시됨)가 800Mhz로 동작하고 있음에도, 리틀 코어(113, 도 2에 도시됨)가 1.5Ghz라는 상당히 높은 주파수로 동작하고 있음을 알 수 있다. 이에 따라서, DVFS 컨트롤러(160, 도 3에 도시됨)는 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 제한해보고, 그 때 FPS 감소량 및 SoC(100, 도 1에 도시됨)의 온도 감소량을 확인할 수 있다.
도 6을 참조하면, 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 제한하지 않았을 때(즉, 1.5Ghz로 동작할 때)의 FPS를 FPS 1, 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 1.1Ghz 이하로 제한했을 때의 FPS를 FPS 2, 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 600Mhz 이하로 제한했을 때의 FPS를 FPS 3이라고 가정한다. 이 때, FPS 1이 FPS 2보다 크고, FPS 2가 FPS 3보다 클 수 있다.
리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 1.1Ghz 이하로 제한했을 때 FPS를 기준으로 하는 성능 저하(Frame Drop)의 정도가 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 제한하지 않았을 때에 비하여 0.24% 감소할 수 있다. 또한, 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 600Mhz 이하로 제한했을 때 FPS를 기준으로 하는 성능 저하(Frame Drop)의 정도가 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 제한하지 않았을 때에 비하여 0.95% 감소할 수 있다.
도 7을 참조하면, 그래프 A는 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 600Mhz 이하로 제한했을 때 SoC(100, 도 1에 도시됨)의 온도를 나타내는 그래프(IP 2_600Mhz Lock)이다. 그래프 B는 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 제한하지 않았을 때(즉, 1.5Ghz로 동작할 때) SoC(100, 도 1에 도시됨)의 온도를 나타내는 그래프(IP 2_1.5Ghz)이다. 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 600Mhz 이하로 제한했을 때 SoC(100, 도 1에 도시됨)의 온도가 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 제한하지 않았을 때에 비해 효과적으로 감소할 수 있다.
이 때, 전자 시스템(1, 도 1에 도시됨)의 사용자가 성능 저하(Frame Drop)를 느끼지 못하는 FPS의 범위가 0.95% 이하라고 가정하면, DVFS 컨트롤러(160, 도 3에 도시됨)는 리틀 코어(113, 도 2에 도시됨)를 컨트롤 타겟 IP로 선택하고 그 동작 주파수를 600Mhz 이하로 제한하여 스로틀링을 수행할 수 있다.
이 때, 컨트롤 타겟 IP의 동작 주파수 제한의 기준이 되는 임계값은 전자 시스템(1, 도 1에 도시됨)의 사용자가 성능 저하(Frame Drop)를 느끼지 못하는 FPS의 범위 내의 최소 값에 대응되는 최저 동작 주파수에 해당할 수 있다. 단, 실시예는 이에 제한되지 않으며, 임계값은 전자 시스템(1, 도 1에 도시됨)의 사용자가 성능 저하(Frame Drop)를 느끼지 못하는 FPS의 범위에 대응되는 모든 동작 주파수에 해당할 수 있다.
이상에서는 컨트롤 타겟 IP가 리틀 코어(113, 도 2에 도시됨)인 경우를 예시로 들어 설명했으나, 실시예는 이에 제한되지 않으며, 컨트롤 타겟 IP는 실시예에 따라서 달라질 수 있다. 또한, 실시예에 따라서는 컨트롤 타겟 IP의 개수가 2개 이상일 수 있다. 예를 들어, DVFS 컨트롤러(160, 도 3에 도시됨)는 기능 블록(IP 1)의 온도를 제1 임계값 이하로 제한하고, 기능 블록(IP 2)의 온도를 제2 임계값 이하로 제한하여 스로틀링을 수행할 수 있다.
이상에서는 컨트롤 타겟 IP의 동작 주파수가 1개의 임계값을 기준으로 제한되는 경우를 예시로 들어 설명했으나, 실시예는 이에 제한되지 않으며, 임계값은 2개 이상일 수 있다.
예를 들어서, 기능 블록(IP 1)의 온도가 제1 온도(T1) 이상일 때, 기능 블록(IP 1)의 동작 주파수는 제1 임계값(V1) 이하로 제한될 수 있다. 또한, 기능 블록(IP 1)의 온도가 제1 온도 이하 및 제2 온도 이상일 때, 기능 블록(IP 1)의 동작 주파수는 제2 임계값(V2) 이하로 제한될 수 있다. 또한, 기능 블록(IP 1)의 온도가 제2 온도 이하 및 제3 온도 이상일 때, 기능 블록(IP 1)의 동작 주파수는 제3 임계값(V3) 이하로 제한될 수 있다. 이 때, T1>T2>T3 및 V3>V2>V1이 성립할 수 있다.
이와 같이, 기능블록의 동작 주파수 제한의 기준이 되는 임계값을 2개 이상으로 설정함으로써, 임계값이 1개로 설정된 경우에 비하여 SoC(100, 도 1에 도시됨)이 스로틀링 레벨에 도달하는 시점이 지연될 수 있다.
도 8은 다른 몇몇 실시예들에 따른 시스템 온 칩의 동작을 설명하기 위한 블록도이다. 이하에서는, 상술된 설명과 중복된 설명은 생략한다.
도 8을 참조하면, 도 3과는 달리, PMU(190)가 IP 1(110), IP 2(120)의 전원을 독립적으로 조절할 수 있다. 예를 들어, PMU(190)는 스로틀링 동작을 수행하기 위해, IP 1(110) 및 IP 2(120) 중 어느 하나의 전원을 턴 오프(turn-off)할 수 있다. 이 때, PMU(190)는 IP들 중 상대적으로 낮은 주파수로 동작하고, 전자 시스템(1, 도 1에 도시됨)이 수행하고 있는 특정 시나리오(예를 들어, 3D game, 영상 통화, 카메라 동작 등)에 불필요한 IP(이하, 타겟 IP(Target IP)라고 한다)의 전원을 턴 오프하여 스로틀링을 수행할 수 있다.
예를 들어, IP 1(110)이 빅 코어(112, 도 2에 도시됨)이고 IP 2(120)가 리틀 코어(113, 도 2에 도시됨)인 경우, PMU(190)는 빅 코어(112, 도 2에 도시됨)의 전원을 턴 오프(turn off)하고, DVFS 컨트롤러(160)는 리틀 코어(113, 도 2에 도시됨)의 동작 주파수를 임계값 이하로 제한할 수 있다.
이와 같이, SoC(100, 도 1에 도시됨)에 대하여 스로틀링을 수행할 때, 컨트롤 타겟 IP의 동작 주파수를 제한하는 방법(도 3에 도시됨) 외에 낮은 주파수로 동작 중이고, 전자 시스템(1, 도 1에 도시됨)의 동작에 불필요한 IP의 전원을 턴 오프하는 방법(도 8에 도시됨)을 추가하면, 컨트롤 타겟 IP의 동작 주파수 제한의 기준이 되는 임계값을 도 3에 비해 높일 수 있다. 따라서, 전자 시스템(1, 도 1에 도시됨)의 사용자가 체감하는 전자 시스템(1, 도 1에 도시됨)의 성능 저하(Frame Drop)의 정도를 감소시킬 수 있다.
도 9는 도 8의 시스템 온 칩의 동작을 설명하기 위한 순서도이다.
도 9를 참조하면, TMU(170)가 동작할 때, TMU(170)는 IP들(110, 120)의 온도 데이터를 DVFS 컨트롤러(160)에 전송한다(S200). FPS 측정기(150)는 IP들(110, 120)에 의해 프로세싱된 데이터에 기초한 FPS 데이터를 DVFS 컨트롤러(160)에 전송한다(S210).
DVFS 컨트롤러(160)는 TMU(170)로부터 IP들(110, 120)의 온도 데이터 및 FPS 측정기(150)로부터 FPS 데이터를 수신한다(S220). 이후, DVFS 컨트롤러(160)는 IP들(110, 120)의 온도 데이터에 기초하여 SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨(throttling level)보다 높은지 판단한다(S230).
SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨보다 높지 않다고 판단되면(S230-N), Soc(100, 도 1에 도시됨)에 대한 스로틀링 동작이 수행되지 않고, DVFS 컨트롤러(160)는 IP들(110, 120)의 동작 주파수를 제한하지 않는다(S240). 만약, SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨보다 높다고 판단한 경우(S230-Y), PMU(190)는 타겟 IP의 전원을 턴 오프한다(S250). 이후, DVFS 컨트롤러(160)는 각 IP들(110, 120)의 동작 주파수를 제한했을 때의 FPS 감소량 및 SoC(100, 도 1에 도시됨)의 온도 감소량을 확인한다(S260).
DVFS 컨트롤러(160)는 각 IP들(110, 120)의 동작 주파수를 제한했을 때의 FPS 감소량 및 SoC(100, 도 1에 도시됨)의 온도 감소량에 기초하여 각 시나리오별로 발열 상황 발생 시, FPS 저하를 최소화하면서 SoC(100, 도 1에 도시됨)의 온도를 효과적으로 감소시킬 수 있는 컨트롤 타겟 IP를 선택한다(S270).
DVFS 컨트롤러(160)는 컨트롤 타겟 IP의 동작 주파수를 임계값 이하로 제한하고(S280), 이에 따라서, SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨 이하로 쿨 다운(cool down)된다(S290). 이에 따라, SoC(100, 도 1에 도시됨)가 탑재된 전자 시스템(1, 도 1에 도시됨)의 유저(user)가 성능 저하(frame drop)를 체감하지 못하면서, 전자 시스템(1, 도 1에 도시됨)의 안정성이 보장될 수 있다.
이후, TMU(170)에 의해 감지되는 SoC(100, 도 1에 도시됨)의 온도가 스로틀링 레벨 이하로 하강하는 것에 응답하여, DVFS 컨트롤러(160)는 컨트롤 타겟 IP에 대한 동작 주파수 제한을 해제할 수 있다(S300).
도 10은 몇몇 실시예들에 따른 효과를 설명하기 위한 예시적인 도면이다.
도 10을 참조하면, 컨트롤 타겟 IP(예를 들어, IP 2)의 동작 주파수를 임계값(예를 들어, 600Mhz) 이하로 제한할 경우, 컨트롤 타겟 IP의 동작 주파수를 임계값 이하로 제한하지 않을 경우에 비하여 SoC(100, 도 1에 도시됨)의 스로틀링 발생 횟수(throttling count)가 감소할 수 있다. 예를 들어, 기능 블록(IP 2)의 동작 주파수를 제한하지 않았을 때, 즉 기능 블록(IP 2)이 기본 동작 주파수인 1.5Ghz로 동작할 때의 스로틀링 발생 횟수는 55회이고, 기능 블록(IP 2)의 동작 주파수를 임계값(예를 들어, 600Mhz) 이하로 제한했을 때의 스로틀링 발생 횟수는 6회일 수 있다. 이처럼, SoC(100, 도 1에 도시됨)의 스로틀링 발생 횟수가 감소함에 따라, 사용자가 체감하는 전자 시스템(1, 도 1에 도시됨)의 성능 저하(Frame Drop)의 정도 및 그 횟수가 감소할 수 있다.
도 11은 몇몇 실시예들에 따른 효과를 설명하기 위한 예시적인 도면이다. 이하, 기능 블록(IP 1)의 동작 주파수를 임계값 이하로 제한하고, 기능 블록(IP 2)의 동작 주파수를 제한하지 않는 경우를 예시로 들어 설명한다. 이때, 기능 블록(IP 1)은 그 동작 주파수를 제한 했을 때의 FPS 감소량이 기능 블록(IP 2)의 동작 주파수를 제한했을 때의 FPS 감소량보다 작을 수 있다. 또한, 기능 블록(IP 1)은 그 동작 주파수를 제한했을 때의 SoC(100, 도 1에 도시됨)의 온도 감소량이 기능 블록(IP 2)의 동작 주파수를 제한했을 때의 온도 감소량보다 클 수 있다. 또한, 기능 블록(IP 2)는 그 동작 주파수를 제한했을 때, 전자 시스템(1, 도 1에 도시됨)의 사용자가 체감하는 성능 저하(frame drop)의 정도가 기능 블록(IP 1)의 동작 주파수를 제한했을 때 전자 시스템(1, 도 1에 도시됨)의 사용자가 체감하는 성능 저하(frame drop)의 정도보다 클 수 있다.
도 11을 참조하면, 그래프 A는 기능 블록(IP 1)의 동작 주파수를 임계값 이하로 제한했을 때, 기능 블록(IP 1)의 온도를 나타내는 그래프(IP 1_Solution)이다. 그래프 B는 기능 블록(IP 1)의 동작 주파수를 제한하지 않았을 때, 기능 블록(IP 1)의 온도를 나타내는 그래프(IP 1_Default)이다. 그래프 C는 기능 블록(IP 1)의 동작 주파수를 임계값 이하로 제한했을 때, 기능 블록(IP 2)의 온도를 나타내는 그래프(IP 2_Solution)이다. 그래프 D는 기능 블록(IP 1)의 동작 주파수를 임계값 이하로 제한하지 않았을 때, 기능 블록(IP 2)의 온도를 나타내는 그래프(IP 2_Default)이다.
SoC(100, 도 1에 도시됨) 내에서 복수의 기능 블록들이 집적되어 있기 때문에, 기능 블록들은 서로 간에 온도의 영향을 주고 받는 관계에 있다. 이 때, 기능 블록(IP 2)는 그 동작 주파수를 제한했을 때, 전자 시스템(1, 도 1에 도시됨)의 사용자가 체감하는 성능 저하의 정도가 크기 때문에, 상대적으로 성능에 미치는 영향이 적은 기능 블록(IP 1)의 동작 주파수를 제한하여 스로틀링을 수행할 수 있다.
기능 블록(IP 1)의 동작 주파수를 임계값 이하로 제한했을 때 기능 블록(IP 2)의 온도 상승 시점은 기능 블록(IP 1)의 동작 주파수를 임계값 이하로 제한하지 않았을 때 기능 블록(IP 2)의 온도 상승 시점에 비하여 지연될 수 있다. 이에 따라서, SoC(100, 도 1에 도시됨)가 스로틀링 레벨에 도달하는 시점 또한 지연될 수 있다. 따라서, 전자 시스템(1, 도 1에 도시됨)의 사용자가 성능 저하(frame drop)를 느끼는 시점이 도달하기 전에 높은 동작 전압 및 높은 동작 주파수를 요구하는 고용량의 작업이 종료되어 SoC(100, 도 1에 도시됨)에 대해 자동으로 쿨 다운(cool down)이 수행될 수 있다.
도 12는 몇몇 실시예들에 따른 시스템 온 칩을 포함하는 전자 시스템의 실시예를 나타낸 블록도이다.
도 12를 참조하면, 전자 시스템은 PC(personal computer), 데이터 서버, 또는 휴대용 전자 장치로 구현될 수 있다. 상기 휴대용 전자 장치는 랩탑(laptop) 컴퓨터, 이동 전화기, 스마트폰 (smart phone), 태블릿 (tablet) PC, PDA(personal digital assistant), EDA (enterprise digital assistant), 디지털 스틸 카메라 (digital still camera), 디지털 비디오 카메라 (digital video camera), PMP(portable multimedia player), 42-24 PND(personal navigation device 또는 portable navigation device), 휴대용 게임 콘솔(handheld game console), 또는 e-북(e-book)으로 구현될 수 있다. 전자 시스템은 SoC(100), 파워 소스(510), 스토리지(520), 메모리(530), 입출력 포트(540), 확장 카드(550), 네트워크 디바이스(560), 및 디스플레이(570)를 포함한다. 실시 예에 따라. 전자 시스템은 카메라 모듈(580)을 더 포함할 수 있다. SoC(100)는 도 2에 도시된 CPU(111)를 포함할 수 있다. 이때, CPU(111)는 멀티-코어 프로세서일 수 있다. SoC(100)는 구성 요소들(elements; 510~580) 중에서 적어도 하나의 동작을 제어할 수 있다. 파워 소스(510)는 구성 요소들(100, 및 520~580) 중에서 적어도 하나로 동작 전압을 공급할 수 있다. 스토리지(520)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다. 메모리(530)는 휘발성 메모리 또는 비휘발성 메모리로 구현될 수 있으며, 도 1의 외부 메모리(200)에 해당할 수 있다. 실시 예에 따라, 메모리(530)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러(210, 도 1에 도시됨)는 SoC(100)에 집적 또는 내장될 수 있다. 다른 실시예에 따라, 상기 메모리 컨트롤러(210, 도 1에 도시됨)는 SoC(100)와 메모리(530) 사이에 구현될 수 있다. 입출력 포트(540)는 전자 시스템으로 데이터를 전송하거나 또는 전자 시스템으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트(540)는 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속 하기 위한 포트일 수 있다. 확장 카드(550)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시예에 따라, 확장 카드(550)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity module) 카드일 수 있다. 네트워크 디바이스(560)는 전자 시스템을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다. 디스플레이(570)는 스토리지(520), 메모리(530), 입출력 포트(540), 확장 카드(550), 또는 네트워크 디바이스(560)로부터 출력된 데이터를 디스플레이할 수 있다. 디스플레이(570)는 도 1의 디스플레이 디바이스(300)일 수 있다. 카메라 모듈(580)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(580)로부터 출력된 전기적인 이미지는 스토리지(520), 메모리(530), 또는 확장 카드(550)에 저장될 수 있다. 또한, 카메라 모듈(580)로부터 출력된 전기적인 이미지는 디스플레이(570)를 통하여 디스플레이될 수 있다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
1: 전자 시스템 100: 시스템 온 칩
110: 제1 기능 블록 120: 제2 기능 블록
111: CPU 112: 빅 코어
113: 리틀 코어 114: GPU
150: FPS 측정기 160: DVFS 컨트롤러
170: 온도 관리 유닛 190: 전력 관리 유닛

Claims (10)

  1. 복수의 IP 블록;
    상기 복수의 IP 블록에 의해 프로세싱된 데이터에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기;
    상기 복수의 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit);
    상기 복수의 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러; 및
    상기 복수의 IP 블록의 전원을 독립적으로 조절하는 전력 관리 유닛(PMU: Power Management Unit)을 포함하되,
    상기 DVFS 컨트롤러는,
    상기 복수의 IP 블록의 동작 주파수를 각각 제한했을 때 상기 복수의 IP 블록에 대한 상기 FPS의 감소량을 각각 확인하고, 확인된 상기 FPS의 감소량과 상기 복수의 IP 블록의 온도 정보를 이용하여 상기 복수의 IP 블록 중 적어도 하나의 동작 주파수를 임계값 이하로 제한하는 시스템 온 칩(SoC).
  2. 제1항에 있어서,
    상기 임계값은 기설정된 상기 FPS의 범위 내의 최소 값에 대응되는 최저 동작 주파수인 시스템 온 칩(SoC).
  3. 제1항에 있어서,
    상기 복수의 IP 블록은 제1 IP 블록 및 제2 IP 블록을 포함하고,
    상기 DVFS 컨트롤러는,
    상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 FPS의 감소량이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 FPS의 감소량보다 작고, 상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 제1 IP 블록의 온도 감소 폭이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 제2 IP 블록의 온도 감소 폭보다 큰 것에 응답하여,
    상기 제1 IP 블록의 동작 주파수를 임계값 이하로 제한하고, 상기 제2 IP 블록의 동작 주파수를 상기 임계값 이하로 제한하지 않는 시스템 온 칩(SoC).
  4. 제3항에 있어서,
    상기 제1 IP 블록의 온도가 제1 온도 이상일 때, 상기 제1 IP 블록의 동작 주파수를 제1 임계값 이하로 제한하고,
    상기 제1 IP 블록의 온도가 제1 온도 이하 및 제2 온도 이상일 때, 상기 제1 IP 블록의 동작 주파수를 제2 임계값 이하로 제한하고,
    상기 제1 IP 블록의 온도가 제2 온도 이하 및 제3 온도 이상일 때, 상기 제1 IP 블록의 동작 주파수를 제3 임계값 이하로 제한하고,
    상기 제1 온도는 상기 제2 온도보다 높고,
    상기 제2 온도는 상기 제3 온도보다 높고,
    상기 제1 임계값은 상기 제2 임계값보다 작고,
    상기 제2 임계값은 상기 제3 임계값보다 작은 시스템 온 칩(SoC).
  5. 제3항에 있어서,
    상기 복수의 IP 블록은 제3 IP 블록을 더 포함하고,
    상기 제3 IP 블록의 동작 주파수를 제한 했을 때의 상기 FPS의 감소량이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 FPS의 감소량보다 크고,
    상기 제1 IP 블록의 동작 주파수가 상기 임계값 이하로 제한되는 경우, 상기 제3 IP 블록의 온도 상승 시점은 상기 제1 IP 블록의 동작 주파수를 임계값 이하로 제한하지 않는 경우에 비해 지연되는 시스템 온 칩(SoC).
  6. 제1항에 있어서,
    상기 복수의 IP 블록은 제1 IP 블록 및 제2 IP 블록을 포함하고,
    상기 온도 관리 유닛에 의해 감지되는 상기 제1 IP 블록 및 상기 제2 IP 블록의 온도가 스로틀링 레벨에 도달하는 것에 응답하여, 상기 전력 관리 유닛이 제1 동작을 수행하거나 상기 DVFS 컨트롤러가 제2 동작을 수행하여 상기 복수의 IP 블록의 온도를 스로틀링 레벨 이하로 유지하되,
    상기 제1 동작은,
    상기 전력 관리 유닛이 상기 제1 IP 블록의 동작 주파수가 상기 제2 IP 블록의 동작 주파수보다 낮은 것에 응답하여, 제1 IP 블록의 전원을 턴 오프하는 동작을 포함하고,
    상기 제2 동작은,
    상기 DVFS 컨트롤러가,
    상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 FPS의 감소량이 상기 제2 IP 블록의 동작 주파수를 제한 했을 때의 상기 FPS의 감소량 보다 크고, 상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 제1 IP 블록의 온도 감소 폭이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 제2 IP 블록의 온도 감소 폭보다 작은 것에 응답하여, 상기 제2 IP 블록의 동작 주파수를 임계값 이하로 제한하는 동작을 포함하는 시스템 온 칩(SoC).
  7. 제1 IP 블록;
    제2 IP 블록;
    상기 제1 IP 블록 및 상기 제2 IP 블록에 의해 프로세싱된 데이터에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기;
    상기 제1 IP 블록 및 상기 제2 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit); 및
    상기 제1 IP 블록 및 상기 제2 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러를 포함하되,
    상기 DVFS 컨트롤러는,
    상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 FPS의 감소량이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 FPS의 감소량보다 작고, 상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 제1 IP 블록의 온도 감소 폭이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 제2 IP 블록의 온도 감소 폭 보다 큰 것에 응답하여,
    상기 제1 IP 블록의 동작 주파수를 임계값 이하로 제한하고, 상기 제2 IP 블록의 동작 주파수를 상기 임계값 이하로 제한하지 않는 시스템 온 칩(SoC).
  8. 제7항에 있어서,
    상기 온도 관리 유닛에 의해 감지되는 상기 제1 IP 블록 및 상기 제2 IP 블록의 온도가 스로틀링 레벨(throttling level) 이하로 하강하는 것에 응답하여,
    상기 DVFS 컨트롤러는,
    상기 제1 IP 블록에 대한 동작 주파수 제한을 해제하는 시스템 온 칩(SoC).
  9. 복수의 IP 블록을 포함하는 시스템 온 칩; 및
    상기 복수의 IP 블록에 의해 처리된 데이터를 기초로 영상을 출력하는 표시 장치를 포함하되,
    상기 시스템 온 칩은,
    상기 영상에 기초한 FPS(Frame Per Second)를 측정하는 FPS 측정기와,
    상기 복수의 IP 블록의 온도를 센싱하는 온도 관리 유닛(TMU: Thermal Management Unit)과,
    상기 복수의 IP 블록에 대한 동적 전압 주파수 스케일링(DVFS: Dynamic Voltage Frequency Scailing)을 수행하는 DVFS 컨트롤러를 포함하고,
    상기 DVFS 컨트롤러는,
    상기 복수의 IP 블록의 동작 주파수를 각각 제한했을 때 상기 복수의 IP 블록에 대한 상기 FPS의 감소량을 각각 확인하고, 확인된 상기 FPS의 감소량과 상기 복수의 IP 블록의 온도 정보를 이용하여 상기 복수의 IP 블록 중 적어도 하나의 동작 주파수를 제1 임계값 이하로 제한하는 반도체 장치.
  10. 제9항에 있어서,
    상기 복수의 IP 블록은 제1 IP 블록 및 제2 IP 블록을 포함하고,
    상기 DVFS 컨트롤러는,
    상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 표시 장치의 FPS의 감소량이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 표시 장치의 FPS의 감소량보다 작고, 상기 제1 IP 블록의 동작 주파수를 제한했을 때의 상기 시스템 온 칩의 온도 감소 폭이 상기 제2 IP 블록의 동작 주파수를 제한했을 때의 상기 시스템 온 칩의 온도 감소 폭보다 큰 것에 응답하여,
    상기 제1 IP 블록의 동작 주파수를 상기 제1 임계값 이하로 제한하고, 상기 제2 IP 블록의 동작 주파수를 상기 제1 임계값 이하로 제한하지 않는 반도체 장치.
KR1020220094002A 2022-07-28 2022-07-28 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치 KR20240016010A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220094002A KR20240016010A (ko) 2022-07-28 2022-07-28 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치
US18/316,697 US20240036627A1 (en) 2022-07-28 2023-05-12 System on chip and semiconductor device including the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220094002A KR20240016010A (ko) 2022-07-28 2022-07-28 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치

Publications (1)

Publication Number Publication Date
KR20240016010A true KR20240016010A (ko) 2024-02-06

Family

ID=89665295

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220094002A KR20240016010A (ko) 2022-07-28 2022-07-28 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치

Country Status (2)

Country Link
US (1) US20240036627A1 (ko)
KR (1) KR20240016010A (ko)

Also Published As

Publication number Publication date
US20240036627A1 (en) 2024-02-01

Similar Documents

Publication Publication Date Title
TWI675289B (zh) 包含異質多核心處理器的電子系統及其操作方法
US9606920B2 (en) Multi-CPU system and computing system having the same
US11372472B2 (en) System on chip for reducing wake-up time, method of operating same, and computer system including same
US10255118B2 (en) Processing system including a plurality of cores and method of operating the same
US20140184619A1 (en) System-on-chip performing dynamic voltage and frequency scaling
US9054680B2 (en) Methods of controlling clocks in system on chip including function blocks, systems on chips and semiconductor systems including the same
US9766647B2 (en) Clock circuit for generating clock signal and semiconductor integrated circuit device including the same
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
CN105825800B (zh) 显示控制器和包括显示控制器的半导体集成电路装置
US9996398B2 (en) Application processor and system on chip
US11693466B2 (en) Application processor and system on chip
US11775036B2 (en) Enhanced power management for support of priority system events
KR20200068635A (ko) 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
KR20150106144A (ko) 메모리 스왑 오퍼레이션 제어 방법 및 이를 적용하는 데이터 처리 시스템
KR20240016010A (ko) 시스템 온 칩 및 시스템 온 칩을 포함하는 반도체 장치
US11899974B2 (en) Method and apparatus for performing automatic setting control of memory device in predetermined communications architecture with aid of auxiliary setting management
US20230273630A1 (en) System on chip, bus power gating method thereof, and bus power gating system
KR20230127824A (ko) 시스템 온 칩, 그것의 버스 파워 게이팅 방법 및 시스템
CN117581189A (zh) 降低远存储器中的存储器功率使用