KR20140021283A - 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법 - Google Patents

다중 dvfs 정책을 이용한 soc 및 이의 동작 방법 Download PDF

Info

Publication number
KR20140021283A
KR20140021283A KR1020120087450A KR20120087450A KR20140021283A KR 20140021283 A KR20140021283 A KR 20140021283A KR 1020120087450 A KR1020120087450 A KR 1020120087450A KR 20120087450 A KR20120087450 A KR 20120087450A KR 20140021283 A KR20140021283 A KR 20140021283A
Authority
KR
South Korea
Prior art keywords
group
dvfs
module
policy
soc
Prior art date
Application number
KR1020120087450A
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 KR1020120087450A priority Critical patent/KR20140021283A/ko
Publication of KR20140021283A publication Critical patent/KR20140021283A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Abstract

시스템-온 칩(SoC), 이를 포함하는 전자 시스템 및 그 동작 방법이 개시된다. 본 발명의 실시예에 따르면, 복수의 모듈을 포함하는 SoC의 동작 방법은, 각각이 상기 모듈을 적어도 하나 이상 포함하는 적어도 하나 이상의 모듈 그룹을 제1 그룹과 제2 그룹으로 분류하는 단계, 및 상기 모듈 그룹이 상기 제1 그룹에 속하면 제1 DVFS 정책을 수행하고, 상기 모듈 그룹이 상기 제2 그룹에 속하면 제2 DVFS 정책을 수행하는 단계를 포함한다.

Description

다중 DVFS 정책을 이용한 SOC 및 이의 동작 방법{SOC PERFORMING MULTIPLE DYNAMIC VOLTAGE AND FREQUENCY SCALING POLICIES AND METHOD USING THE SAME}
본 발명의 실시예는 시스템-온 칩 및 이의 동작 방법에 관한 것으로, 보다 상세하게는 모듈 그룹의 특성에 따라 전력소모량과 성능을 효율적으로 관리할 수 있는 시스템-온 칩 및 이의 동작 방법에 관한 것이다.
마이크로 프로세서(Microprocessor)는 미리 확립된 순서에 의해 체계적으로 연산을 수행하여, 컴퓨터의 각 장치에 제어 신호를 제공하는 1개의 작은 실리콘 칩에 집적시킨 집적회로로 이루어진 처리 장치를 뜻한다.
시스템-온 칩(system-on chip(SoC))은 컴퓨터 시스템 또는 다른 전자 시스템을 구현하기 위해 CPU(central processing unit), 메모리, 인터페이스(interface), 디지털 신호 처리 회로, 및 아날로그 신호 처리 회로 등 다양한 기능 블록, 즉 모듈들을 하나의 반도체 집적 회로에 집적하는 기술 또는 상기 기술에 따라 집적된 하나의 집적 회로(integrated circuit(IC))를 의미한다.
SoC는 프로세서, 멀티미디어(multimedia), 그래픽(graphic), 인터페이스, 및 보안 등 다양한 기능들을 포함하는 더욱 복잡한 시스템으로 발전하고 있다.
배터리를 사용하는 휴대용 장치(portable device)에 다양한 기능이 컨버전스되면서, 휴대용 장치의 성능뿐만 아니라, 휴대용 장치의 전력 소모량을 최소화하는 방안에 대한 연구가 진행되고 있다. 이의 일환으로 DVFS(Dynamic Voltage Frequency Scaling, 이하 DVFS) 정책이 사용된다.
본 발명이 이루고자 하는 기술적인 과제는, SoC의 모듈 그룹을 복수 개로 나누어, 복수의 DVFS 정책을 적용할 수 있게 함으로써, 요구되는 성능을 유지하면서 전력소모를 줄일 수 있는 시스템-온 칩 및 그 동작 방법을 제공하는 것이다.
상술한 과제를 해결하기 위한 실시예에 따르면, 복수의 모듈을 포함하는 시스템 온 칩(SoC)의 동작 방법은, 각각이 상기 모듈을 적어도 하나 이상 포함하는 적어도 하나 이상의 모듈 그룹을 제1 그룹과 제2 그룹으로 분류하는 단계; 및 상기 모듈 그룹이 상기 제1 그룹에 속하면 제1 DVFS 정책을 수행하고, 상기 모듈 그룹이 상기 제2 그룹에 속하면 제2 DVFS 정책을 수행하는 단계를 포함한다.
상기 제1 DVFS 정책과 상기 제2 DVFS 정책은 서로 다른 임계값을 갖을 수 있다.
상기 SoC의 동작 방법은 상기 모듈 그룹에 속하는 상기 적어도 하나 이상의 모듈의 사용량을 측정하고, 상기 측정된 사용량을 가중평균하는 단계를 포함하며, 상기 DVFS 정책 수행 단계는 상기 가중평균값과 상기 제1 DVFS 정책의 임계값 또는 상기 제2 DVFS 정책의 임계값을 비교한 결과에 따라 DVFS 레벨을 변경하여, 상기 DVFS 레벨에 따라 상기 모듈 그룹의 동작 주파수와 동작 전압을 변경할 수 있다.
상기 DVFS 정책 수행 단계는 상기 모듈 그룹이 상기 제2 그룹에 속할 때 상기 모듈 그룹이 상기 제1 그룹에 속할 때보다 상기 주파수와 전압을 천천히 변경할 수 있다.
상기 제1 DVFS 정책과 상기 제2 DVFS 정책은 순차적으로 수행될 수 있다.
상기 제1 DVFS 정책과 상기 제2 DVFS 정책은 병렬적으로 수행될 수도 있다.
상기 제1 그룹 및 상기 제2 그룹 각각의 상기 DVFS 레벨에 따라 상기 제1 그룹 및 상기 제2 그룹의 동작 주파수와 동작 전압을 각각 조절할 수 있다.
상기 제1 그룹 및 상기 제2 그룹 각각의 상기 DVFS 레벨을 조합하여, 조합한 DVFS 레벨에 따라 상기 제1 그룹 및 상기 제2 그룹의 동작 주파수와 동작 전압을 조절할 수도 있다.
상술한 과제를 해결하기 위한 실시예에 따르면, 복수의 모듈들을 포함하는 시스템 온 칩(SoC)은, 상기 각 모듈의 사용량을 측정하는 측정부; 및 각각이 상기 모듈을 적어도 하나 이상 포함하는 적어도 하나 이상의 모듈 그룹이 제1 그룹에 속하는지 제2 그룹에 속하는지 판단하여, 판단 결과에 따라 각각 다른 DVFS 정책을 수행하는 DVFS 제어부를 실행하기 위한 CPU를 포함한다.
상기 DVFS 제어부는 상기 모듈 그룹이 상기 제2 그룹에 속할 때 상기 모듈 그룹이 상기 제1 그룹에 속할 때보다 상기 모듈 그룹의 동작 주파수와 동작 전압을 천천히 변경할 수 있다.
본 발명의 실시예에 따르면, SoC의 모듈 그룹을 복수 개로 나누어, 복수의 DVFS 정책을 적용할 수 있게 함으로써, 요구되는 성능을 유지하면서 전력소모를 줄일 수 있다.
도 1은 본 발명의 실시 예에 따른 전자 시스템(10)의 블록도를 나타낸다.
도 2는 본 발명의 실시예에 따른 DVFS 제어부(115) 및 다른 구성요소들 간의 관계를 도시한 블록도이다.
도 3은 SoC의 모듈 그룹의 예를 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 SoC 동작 방법을 도시한 순서도이다.
도 5는 본 발명의 다른 실시예에 따른 SoC 동작 방법을 도시한 순서도이다.
도 6은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 일 실시 예를 나타내는 블록도이다.
도 7은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 다른 실시 예를 나타내는 블록도이다.
도 8은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 전자 시스템(10)의 블록도를 나타낸다. 도 2는 본 발명의 실시예에 따른 DVFS 제어부(115) 및 다른 구성요소들 간의 관계를 도시한 블록도이다.
도 1을 참조하면, 전자 시스템(10)은 이동 전화기, 스마트폰, 태블릿 컴퓨터(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)로 구현될 수 있다.
전자 시스템(10)은 SoC(100), 메모리 장치(190) 및 디스플레이 장치(195)를 포함한다. SoC(100)는 중앙처리장치(CPU : Central Processing Unit, 110), ROM(read only memory; 120), RAM(random access memory; 130), 타이머(135), 가속기(140), 클럭 관리부(145, CMU:clock management unit), 디스플레이 컨트롤러(150), 메모리 컨트롤러(170), 및 버스(180)를 포함할 수 있다. SoC(100)는 도시된 구성요소 외에도 다른 구성요소, 예컨대, TV 프로세서 등을 더 포함할 수 있다. 전자 시스템(10)은 또한 전원관리부(160, PMIC:power management IC)를 더 포함할 수 있다.
도 1의 실시예에서는, PMIC(160)는 SoC(100) 외부에 구현되나, 다른 실시예에서는 PMIC(160)가 SoC(100) 내에 구현될 수 있다. PMIC(160)는 전압 제어부(161) 및 전압 발생부(165)를 포함할 수 있다.
프로세서(processor)라고도 불릴 수 있는 CPU(110)는 메모리 장치(190)에 저장된 프로그램들 및/또는 데이터를 처리 또는 실행할 수 있다. 예컨대, CPU(110)는 클락 신호 발생기(미 도시)로부터 출력된 클락 신호에 응답하여 상기 프로그램들 및/또는 상기 데이터를 처리 또는 실행할 수 있다.
CPU(110)는 멀티-코어 프로세서(multi-core processor)로 구현될 수 있다. 상기 멀티-코어 프로세서는 두 개 또는 그 이상의 독립적인 실질적인 프로세서들('코어들(cores)'이라고 불림)을 갖는 하나의 컴퓨팅 컴포넌트(computing component)이고, 상기 프로세서들 각각은 프로그램 명령들(program instructions)을 읽고 실행할 수 있다. 상기 멀티-코어 프로세서는 다수의 가속기를 동시에 구동할 수 있으므로, 상기 멀티-코어 프로세서를 포함하는 데이터 처리 시스템은 멀티-가속(multi-acceleration)을 수행할 수 있다.
ROM(120), RAM(130), 및 메모리 장치(190)에 저장된 프로그램들 및/또는 데이터는 필요에 따라 CPU(110)의 메모리에 로드(load)될 수 있다.
ROM(120)은 영구적인 프로그램들 및/또는 데이터를 저장할 수 있다. ROM(120)은 EPROM(erasable programmable read-only memory) 또는 EEPROM(electrically erasable programmable read-only memory)으로 구현될 수 있다.
RAM(130)은 프로그램들, 데이터, 또는 명령들(instructions)을 일시적으로 저장할 수 있다. 예컨대, 메모리(120 또는 190)에 저장된 프로그램들 및/또는 데이터는 CPU(110)의 제어 또는 ROM(120)에 저장된 부팅 코드(booting code)에 따라 RAM(130)에 일시적으로 저장될 수 있다. RAM(130)은 DRAM(dynamic RAM) 또는 SRAM(static RAM)으로 구현될 수 있다.
가속기(140)는 멀티미디어 또는 멀티미디어 데이터, 예컨대 텍스트(text), 오디오(audio), 정지 영상들(still images), 애니메이션(animation), 비디오(video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 하드웨어 장치 또는 코-프로세서(co-processor)를 의미할 수 있다.
도 1에서는 설명의 편의를 위하여 하나의 가속기(140)만을 도시하나, 실시 예에 따라 SoC(100)은 하나 또는 그 이상의 가속기들을 포함할 수 있다. 예컨대, 적어도 하나의 애플리케이션 프로그램은 하나의 가속기를 실행시킬 수 있다.
가속기(140) 내부 또는 가속기(140)의 전단에 성능 측정부(PMU : Performance Monitoring Unit, 141)가 구비된다. 성능 측정부(141)는 가속기(141)의 성능을 측정하기 위한 모듈이다. 예컨대, 가속기(141)로 입력되는 데이터의 량 및/또는 가속기(141)로부터 출력되는 데이터의 량을 측정할 수 있고, 가속기(141)의 메모리 사용량을 측정할 수도 있다.
CMU(145)는 동작 클럭 신호를 생성한다. CMU(145)는 위상 동기 루프 회로(PLL : Phase Locked Loop), 지연 동기 루프(DLL : Delayed Locked Loop), 수정자(crystal)등의 클럭 생성 장치로 이루어질 수 있다.
동작 클럭 신호는 CPU(110)로 공급될 수 있다. 물론 동작 클럭 신호는 다른 구성요소(예컨대, 메모리 컨트롤러 등)로 공급될 수도 있다.
CMU(145)는 DVFS 제어부(도 2의 115)의 제어에 따라 동작 클럭 신호의 주파수를 변경할 수 있다. 예컨대, DVFS 제어부(115)는 동작하는 모듈 그룹이 복수의 그룹 중 어느 그룹에 속하는지에 따라, 미리 설정된 복수(2이상)의 정책들 중 하나를 선택할 수 있다.
DVFS 제어부(115)는 선택된 정책에 따라 CMU(145)를 제어할 수 있고, 이에 따라, CMU(145)는 DVFS 제어부(115)의 제어를 받아, 선택된 정책(예컨대, 제1 DVFS 정책 또는 제2 DVFS 정책)을 수행하기 위하여 동작 클럭 신호의 주파수를 변경할 수 있다.
전압 제어부(161)는 DVFS 제어부(115)에서 선택된 제1 DVFS 정책 또는 제2 DVFS 정책에 기초하여 전압 발생부(165)를 제어할 수 있다. 전압 발생부(165)는 전압 제어부(160)의 제어에 따라, 선택된 제1 DVFS 정책 또는 제2 DVFS 정책에 기초하여 SoC(100)의 각 모듈 그룹의 동작 전압을 생성하여 SoC(100)의 각 모듈 그룹으로 출력할 수 있다.
메모리 콘트롤러(170)는 메모리 장치(190)와 인터페이스하기 위한 블록이다. 메모리 콘트롤러(170)는 메모리 장치(190)의 동작을 전반적으로 제어하며, 또한 호스트와 메모리 장치(190)간의 제반 데이터 교환을 제어한다. 예컨대, 메모리 콘트롤러(170)는 호스트의 요청에 따라 메모리 콘트롤러(170)를 제어하여 메모리 장치(190)에 데이터를 쓰거나 메모리 장치(190)로부터 데이터를 독출한다.
여기서, 호스트는 CPU(110), 가속기(140), 디스플레이 컨트롤러(150)와 같은 마스터 장치일 수 있다.
메모리 장치(190)는 데이터를 저장하기 위한 저장 장소로서, OS(Operating System), 각종 프로그램들, 및 각종 데이터를 저장할 수 있다. 메모리 장치(190)는 DRAM 일수 있으나, 이에 한정되는 것은 아니다. 예컨대, 메모리 장치(190)는 비휘발성 메모리 장치(플래시 메모리, PRAM, MRAM, ReRAM, 또는 FeRAM 장치)일 수도 있다. 본 발명의 다른 실시예에서는 메모리 장치(190)는 SoC(100) 내부에 구비되는 내장 메모리일 수 있다.
각 구성 요소(110, 120, 130, 140, 150, 및 170)는 시스템 버스(180)를 통하여 서로 통신할 수 있다.
디스플레이 디바이스(195)는 CPU(110)에 로드된 소프트웨어 가속기 또는 하드웨어 가속기(140)에 의하여 가속된 또는 처리된 멀티미디어를 디스플레이할 수 있다. 디스플레이 디바이스(195)는 LED, OLED 디바이스, 혹은 다른 종류의 디바이스일 수 있다.
디스플레이 콘트롤러(150)는 디스플레이 디바이스(195)의 동작을 제어한다.
메모리 콘트롤러(170)는 성능 측정부(PMU, 175)를 포함할 수 있다.
성능 측정부(175)는 메모리 장치(190)로의 억세스량을 측정할 수 있다. 즉, 성능 측정부(175)는 메모리 콘트롤러(170)에 위치하여 메모리 장치(190)로 억세스하는 중앙처리장치(110) 및 보조장치의 메모리 사용량을 측정할 수 있다.
도 1에 도시된 바와 같이, 성능 측정부(141, 175)는 복수개 구비될 수 있다. 예컨대, SoC(100)에 포함되는 모듈들 각각이 성능 측정부를 포함할 수 있다. 성능 측정부(141, 175)가 복수개 구비되는 경우, DVFS 제어부(115)는 하나 이상의 성능 측정부의 측정 결과에 기초하여 복수의 정책들 중 하나를 결정할 수 있다. 즉, DVFS 제어부(115)는 복수개의 성능 측정부의 측정 결과를 토대로 정책을 결정할 수 있고, 복수개의 성능 측정부 중 하나 이상을 선택적으로 구동하여 선택된 성능 측정부의 측정 결과를 토대로 정책을 결정할 수도 있다.
도 3은 SoC의 모듈 그룹의 예를 나타낸 도면이다.
도 1, 도 2 및 도 3을 참조하면, DVFS 제어부(115)는 소프트웨어(S/W) 또는 펌웨어(firmware)로 구현될 수 있다. DVFS 제어부(115)는 프로그램으로 구현되어 메모리(130, 120 또는 190)에 탑재되고, SoC(100)가 파워온되면 CPU(110)에 의하여 실행될 수 있다.
DVFS 제어부(115)는 메모리(130, 120, 190), 타이머(135), 복수의 PMU(111, 141, 151, 175, 187), CMU(145), 및 PMIC(160)를 제어할 수 있으며, 그 외의 모듈들도 제어할 수 있다. 메모리(130, 120, 190), 타이머(135), 복수의 PMU(111, 141, 151, 175, 187), CMU(145), 및 PMIC(160)는 각각 하드웨어(H/W)로 구현될 수 있다.
DVFS 제어부(115)와 메모리(130, 120, 190), 타이머(135), 복수의 PMU(111, 141, 151, 175, 187), CMU(145), 및 PMIC(160) 사이에는 운영체제(OS:operating system) 및 미들웨어(middleware)가 개입될 수 있다.
DVFS 제어부(115)는 모듈 그룹 각각이 제1 그룹 또는 제2 그룹 중 어느 그룹에 속하는지 판단할 수 있다. 모듈 그룹의 분류는 상기 모듈 그룹이 실행하는 작업의 특성에 따라 이루어질 수 있다. 제1 그룹은 시간 제약이 존재하여 작업을 주어진 시간 안에 반드시 처리해야 하는 실시간성(real time) 특성을 가질 수 있다. 제2 그룹은 시간 제약이 비교적 느슨하여 주어진 작업을 특정 시간 안에 처리하지 않아도 되는 비실시간성(non-real time) 특성을 가질 수 있다. 상기 모듈 그룹의 분류는 휴리스틱 시뮬레이션(Heuristic Simulation)에 의해 이루어질 수 있다.
동영상 재생의 경우, 연속적으로 동영상이 이어지기 위해서 충분히 빠른 시간 내에 데이터 출력이 이루어져야 한다. 사용자 입력에 대하여 반응이 이루어져야 하는 경우, 사용자가 반응의 지연을 느끼지 않게 하기 위해서 입력 후 충분히 빠른 시간 내 반응이 이루어져야 한다. 따라서 동영상 재생 및 사용자 입력에 대한 반응에 관련된 모듈 그룹은 제1 그룹에 해당할 수 있다.
한편, 메모리에서 파일을 전송하는 경우, 다른 작업의 동작과 동시에 백그라운드 오퍼레이션으로 실행될 수 있으며, 작업에 특별한 시간 제약이 존재하지 않는다. 따라서 메모리, USB(Universal Serial Bus) 메모리와 관련된 모듈 그룹은 제2 그룹에 해당할 수 있다.
도 3에서, CPU(110)와 비디오 디코더(185)를 포함하는 그룹(G1)은 제1 그룹에 해당할 수 있다. CPU(110)와 메모리 콘트롤러(170)를 포함하는 그룹(G2)은 제2 그룹에 해당할 수 있다. CPU(110)와 디스플레이 콘트롤러(150)를 포함하는 그룹(G3)은 제1 그룹에 해당할 수 있다.
한편, 도 3에서는 모듈 그룹 각각이 2개의 모듈들을 포함하고 있으나, 모듈 그룹은 1개의 모듈만을 포함할 수도 있고, 3개 이상의 모듈들을 포함할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 SoC 동작 방법을 도시한 순서도이다. 도 5는 본 발명의 다른 실시예에 따른 SoC 동작 방법을 도시한 순서도이다.
제1 그룹에 속한 모듈을 실시간성 모듈, 제2 그룹에 속한 모듈을 비실시간성 모듈이라고 지칭하기로 한다. 이때, 하나의 모듈은 실시간성 모듈 및 비실시간성 모듈에 모두 해당할 수 있다.
도 4를 참조하면, 실시간성 모듈과 비실시간성 모듈의 PMU 측정값으로부터 사용량(R, NR)을 도출한다(S401). 제1 그룹의 사용량(R)은 실시간성 모듈의 PMU 측정값 중 최대값이다. 제2 그룹의 사용량(NR)은 비실시간성 모듈의 PMU 측정값 중 최대값이다. 그러나 제1 그룹의 사용량(R) 및 제2 그룹의 사용량(NR)은 각각 실시간성 모듈 및 비실시간성 모듈의 현재 시점의 PMU 측정값을 가중평균한 값일 수도 있다.
제1 그룹의 사용량(R)에 따라 제1 그룹에 대해 제1 DVFS 정책을 수행하고, 제2 그룹의 사용량(NR)에 따라 제2 그룹에 대해 제2 DVFS 정책을 수행한다. 도면에서는 제1 DVFS 정책을 수행한 후 제2 DVFS 정책을 수행하도록 도시되나, 그 반대일 수도 있으며, 제1 DVFS 정책과 제2 DVFS 정책이 병렬적으로 수행될 수도 있다.
제1 그룹에 대해 제1 DVFS 정책을 수행한다. 제1 그룹의 사용량(R)을 제1 DVFS 정책의 상한 임계값(Up_Thr)과 비교하여(S403), 사용량(R)이 상한 임계값(Up_Thr)보다 클 경우 제1 그룹의 DVFS 레벨(Level(R))을 최대값 또는 실시간성 특성을 만족시키기 위한 상대적으로 높은 값으로 설정한다(S407). 사용량(R)이 상한 임계값(Up_Thr)보다 작을 경우 제1 그룹의 사용량(R)을 제1 DVFS 정책의 하한 임계값(Dn_Thr)과 비교하여(S405), 사용량(R)이 하한 임계값(Dn_Thr)보다 작을 경우 제1 그룹의 DVFS 레벨(Level(R))을 현재값보다 낮은 값으로 설정한다(S409). 사용량(R)이 상한 임계값(Up_Thr)과 하한 임계값(Dn_Thr)의 사이에 있을 경우 제1 그룹의 DVFS 레벨(Level(R))을 변경하지 않는다.
제1 DVFS 정책이 수행되면, 제2 그룹에 대해 제2 DVFS 정책을 수행한다. 제2 그룹의 사용량(NR)을 제2 DVFS 정책의 상한 임계값(Up_Thr')과 비교하여(S411), 사용량(R)이 상한 임계값(Up_Thr')보다 클 경우 제2 그룹의 DVFS 레벨(Level(NR))을 현재값보다 높은 값으로 설정한다(S415). 사용량(NR)이 상한 임계값(Up_Thr')보다 작을 경우 제2 그룹의 사용량(NR)을 제2 DVFS 정책의 하한 임계값(Dn_Thr')과 비교하여(S413), 사용량(NR)이 하한 임계값(Dn_Thr')보다 작을 경우 제2 그룹의 DVFS 레벨(Level(NR))을 현재값보다 낮은 값으로 설정한다(S417). 사용량(NR)이 상한 임계값(Up_Thr')과 하한 임계값(Dn_Thr')의 사이에 있을 경우 제2 그룹의 DVFS 레벨(Level(NR))을 변경하지 않는다. 이때 제1 DVFS 정책의 상한, 하한 임계값(Up_Thr, Dn_Thr)과 제2 DVFS 정책의 상한, 하한 임계값(Up_Thr', Dn_Thr')은 다를 수 있다.
제1 DVFS 정책에서 결정된 제1 그룹의 DVFS 레벨(Level(R))에 따라 제1 그룹의 동작 주파수(F)와 동작 전압(V)을 변경하고, 제2 DVFS 정책에서 결정된 제2 그룹의 DVFS 레벨(Level(NR))에 따라 제2 그룹의 동작 주파수(F)와 동작 전압(V)을 변경한다(S419).
제2 그룹의 주파수와 전압 변경 속도는 제1 그룹의 주파수와 전압 변경 속도보다 느릴 수 있다. 즉, 단위 시간당 제2 그룹의 주파수 변동폭은 단위 시간당 제1 그룹의 주파수 변동폭보다 작고, 단위 시간당 제2 그룹의 전압 변동폭은 단위 시간당 제1 그룹의 전압 변동폭보다 작을 수 있다. 이에 따라 소모전류가 감소된다.
이때 제1 그룹과 제2 그룹의 주파수와 전압은 다르게 설정될 수 있다. 제1 그룹과 제2 그룹에 모두 속하는 모듈의 동작 주파수와 전압은, 제1 그룹과 제2 그룹의 주파수와 전압 값 중 최대값으로 설정될 수 있다.
그러나, 도 5와 같이, 제1 그룹의 DVFS 레벨(Level(R))과 제2 그룹의 DVFS 레벨(Level(NR)) 중 하나를 선택하여, 이에 따라 제1 그룹과 제2 그룹의 주파수(F)와 전압(V)을 같은 값으로 설정할 수도 있다(S519). 이때 제1 그룹의 DVFS 레벨(Level(R))과 제2 그룹의 DVFS 레벨(Level(NR)) 중 최대값을 선택할 수 있다.
이상에서는 모듈 그룹을 두 개의 그룹으로 분류하였으나, 모듈 그룹을 가장 빠른 반응을 필요로 하는 그룹, 중간 그룹, 반응이 느려도 무관한 그룹으로 3개의 그룹으로 분류할 수도 있으며, 그 이상의 복수 개의 그룹으로 분류할 수도 있다. 모듈 그룹이 속하는 그룹에 따라 각각 다른 DVFS 정책이 수행될 수 있다.
상기 모듈 그룹들이 복수 개의 그룹 중 어느 그룹에 속하는지를 분류하는 데이터는 외부로부터의 입력에 의해 설정될 수도 있다. 각 모듈들의 PMU 측정값을 가중평균하기 위한 모듈별 가중치 및 복수 개의 DVFS 정책 각각의 상한, 하한 임계값 또한 외부로부터 입력될 수 있다. 상기 외부로부터 입력된 데이터들은 CPU 내부의 레지스터 또는 캐시 메모리, ROM, RAM 또는 외부 메모리에 저장되어, DVFS 정책 실행 시 DVFS 제어부에 로드될 수 있다.
도 6은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 다른 실시 예를 나타내는 블록도이다. 이를 참조하면, 전자 시스템(200)은 PC(personal computer) 또는 데이터 서버로 구현될 수 있다.
전자 시스템(200)은 프로세서(100), 파워 소스(210), 저장 장치(220), 메모리(230), 입출력 포트들(240), 확장 카드(250), 네트워크 장치(260), 및 디스플레이(270)를 포함한다. 실시 예에 따라. 전자 시스템(200)은 카메라 모듈(280)을 더 포함할 수 있다.
프로세서(100)는 도 1에 도시된 SoC(100)를 의미한다. 프로세서(100)는 멀티-코어 프로세서일 수 있다.
프로세서(100)는 구성 요소들(elements; 100, 및 210~280) 중에서 적어도 하나의 동작을 제어할 수 있다.
파워 소스(210)는 구성 요소들(100, 및 210~280) 중에서 적어도 하나로 동작 전압을 공급할 수 있다.
저장 장치(220)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(230)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있으며, 도 1의 메모리 장치(190)에 해당할 수 있다. 실시 예에 따라, 메모리(230)에 대한 데이터 액세스 동작, 예컨대, 리드 동작, 라이트 동작(또는 프로그램 동작), 또는 이레이즈 동작을 제어할 수 있는 메모리 컨트롤러는 프로세서(100)에 집적 또는 내장될 수 있다. 다른 실시 예에 따라, 상기 메모리 컨트롤러는 프로세서(100)와 메모리(230) 사이에 구현될 수 있다.
입출력 포트들(240)은 전자 시스템(200)으로 데이터를 전송하거나 또는 전자 시스템(200)으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트들(240)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(250)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(250)는 SIM(Subscriber Identification Module) 카드 또는 USIM(Universal Subscriber Identity Module) 카드일 수 있다.
네트워크 장치(260)는 전자 시스템(200)을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다.
디스플레이(270)는 저장 장치(220), 메모리(230), 입출력 포트들(240), 확장 카드(250), 또는 네트워크 장치(260)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(280)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(280)로부터 출력된 전기적인 이미지는 저장 장치(220), 메모리(230), 또는 확장 카드(250)에 저장될 수 있다. 또한, 카메라 모듈 (280)로부터 출력된 전기적인 이미지는 디스플레이(220)를 통하여 디스플레이될 수 있다.
도 7은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다. 도 7을 참조하면, 전자 시스템(300)은 랩탑(laptop) 컴퓨터로 구현될 수 있다.
도 8은 본 발명의 실시예에 따른 SoC를 포함하는 전자 시스템의 또 다른 실시 예를 나타내는 블록도이다. 도 8을 참조하면, 전자 시스템(400)은 휴대용 장치로 구현될 수 있다. 휴대용 장치(400)는 이동 전화기, 스마트 폰(smart phone), 태블릿 (tablet) PC, 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)으로 구현될 수 있다.
이상에서는 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
특히, 이상에서는 본 발명의 SoC의 각각의 모듈 그룹을 실시간성 및 비실시간성 특성에 따라 분류하여 복수의 정책들 중 하나의 정책을 선택하는 예를 중심으로 기술하였으나, 반드시 이에 한정되는 것은 아니다. 예를 들어, 도 1의 SoC(100)의 각각의 모듈 내부에 온도 측정부(TMU : Thermal Monitoring Unit) 을 구성하고, 온도 측정부에 의해 측정되는 온도에 기초하여 제1 DVFS 정책 및 제2 DVFS 정책을 수행할 수도 있다.
구체적으로, SoC의 각각의 모듈 그룹을 온도 변화에 민감한 그룹 및 온도 변화에 덜 민감한 그룹으로 분류하여, 온도 변화에 민감한 그룹의 경우 온도 측정부에 의해 측정되는 온도가 미리 설정된 하한 기준값보다 낮다면, 동작 주파수와 동작 전압을 높일 수 있고, 반대로, 온도 측정부에 의해 측정되는 온도가 미리 설정된 상한 기준값보다 높다면, 동작 주파수와 동작 전압을 낮출 수 있다. 한편, 온도 변화에 덜 민감한 그룹의 경우, 온도 변화에 민감한 그룹에 비해 미리 설정된 기준값의 범위를 더 넓게 하고, 동작 주파수와 동작 전압의 변경 속도를 느리게 함으로써, 전력 소모를 줄일 수 있다.
10 : 전자 시스템 100 : 시스템-온 칩
110 : 중앙처리장치 115 : DVFS 제어부
120 : ROM 130 : RAM
135 : 타이머 161 : 전압 제어부
140 : 가속기 145 : CMU
150 : 디스플레이 콘트롤러 160 : PMIC
165 : 전압 발생부 170 : 메모리 콘트롤러
175 : 성능 측정부 180 : 버스
185 : 비디오 디코더

Claims (10)

  1. 복수의 모듈들을 포함하는 시스템 온 칩(SoC)의 동작 방법에 있어서,
    각각이 상기 모듈을 적어도 하나 이상 포함하는 적어도 하나 이상의 모듈 그룹을 제1 그룹과 제2 그룹으로 분류하는 단계; 및
    상기 모듈 그룹이 상기 제1 그룹에 속하면 제1 DVFS 정책을 수행하고, 상기 모듈 그룹이 상기 제2 그룹에 속하면 제2 DVFS 정책을 수행하는 단계를 포함하는 SoC의 동작 방법.
  2. 제1항에 있어서, 상기 제1 DVFS 정책과 상기 제2 DVFS 정책은
    서로 다른 임계값을 갖는 SoC의 동작 방법.
  3. 제1항에 있어서, 상기 SoC의 동작 방법은
    상기 모듈 그룹에 속하는 상기 적어도 하나 이상의 모듈의 사용량을 측정하고, 상기 측정된 사용량을 가중평균하는 단계를 포함하며,
    상기 DVFS 정책 수행 단계는
    상기 가중평균값과 상기 제1 DVFS 정책의 임계값 또는 상기 제2 DVFS 정책의 임계값을 비교한 결과에 따라 DVFS 레벨을 변경하여, 상기 DVFS 레벨에 따라 상기 모듈 그룹의 동작 주파수와 동작 전압을 변경하는 SoC의 동작 방법.
  4. 제3항에 있어서, 상기 DVFS 정책 수행 단계는
    상기 모듈 그룹이 상기 제2 그룹에 속할 때 상기 모듈 그룹이 상기 제1 그룹에 속할 때보다 상기 주파수와 전압을 천천히 변경하는 SoC의 동작 방법.
  5. 제1항에 있어서, 상기 제1 DVFS 정책과 상기 제2 DVFS 정책은
    순차적으로 수행되는 SoC의 동작 방법.
  6. 제1항에 있어서, 상기 제1 DVFS 정책과 상기 제2 DVFS 정책은
    병렬적으로 수행되는 SoC의 동작 방법.
  7. 제4항에 있어서,
    상기 제1 그룹 및 상기 제2 그룹 각각의 상기 DVFS 레벨에 따라 상기 제1 그룹 및 상기 제2 그룹의 동작 주파수와 동작 전압을 각각 조절하는 SoC의 동작 방법.
  8. 제3항에 있어서,
    상기 제1 그룹 및 상기 제2 그룹 각각의 상기 DVFS 레벨을 조합하여, 조합한 DVFS 레벨에 따라 상기 제1 그룹 및 상기 제2 그룹의 동작 주파수와 동작 전압을 조절하는 SoC의 동작 방법.
  9. 복수의 모듈들을 포함하는 시스템 온 칩(SoC)에 있어서,
    상기 각 모듈의 사용량을 측정하는 측정부; 및
    각각이 상기 모듈을 적어도 하나 이상 포함하는 적어도 하나 이상의 모듈 그룹이 제1 그룹에 속하는지 제2 그룹에 속하는지 판단하여, 판단 결과에 따라 각각 다른 DVFS 정책을 수행하는 DVFS 제어부를 실행하기 위한 CPU를 포함하는 SoC.
  10. 제9항에 있어서, 상기 DVFS 제어부는
    상기 모듈 그룹이 상기 제2 그룹에 속할 때 상기 모듈 그룹이 상기 제1 그룹에 속할 때보다 상기 모듈 그룹의 동작 주파수와 동작 전압을 천천히 변경하는 SoC.
KR1020120087450A 2012-08-09 2012-08-09 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법 KR20140021283A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120087450A KR20140021283A (ko) 2012-08-09 2012-08-09 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120087450A KR20140021283A (ko) 2012-08-09 2012-08-09 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법

Publications (1)

Publication Number Publication Date
KR20140021283A true KR20140021283A (ko) 2014-02-20

Family

ID=50267808

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120087450A KR20140021283A (ko) 2012-08-09 2012-08-09 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법

Country Status (1)

Country Link
KR (1) KR20140021283A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216502A (zh) * 2014-08-28 2014-12-17 华南理工大学 一种具有前瞻属性的SoC动态电压频率调节方法
US9880781B2 (en) 2015-04-14 2018-01-30 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
US10019188B2 (en) 2015-02-17 2018-07-10 Samsung Electronics Co., Ltd. Storage devices, memory systems and operating methods to suppress operating errors due to variations in environmental conditions
US10211947B2 (en) 2016-12-26 2019-02-19 Samsung Electronics Co., Ltd. System-on-chip using dynamic voltage frequency scaling and method of operating the same

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104216502A (zh) * 2014-08-28 2014-12-17 华南理工大学 一种具有前瞻属性的SoC动态电压频率调节方法
CN104216502B (zh) * 2014-08-28 2017-02-15 华南理工大学 一种具有前瞻属性的SoC动态电压频率调节方法
US10019188B2 (en) 2015-02-17 2018-07-10 Samsung Electronics Co., Ltd. Storage devices, memory systems and operating methods to suppress operating errors due to variations in environmental conditions
US9880781B2 (en) 2015-04-14 2018-01-30 Samsung Electronics Co., Ltd. Storage device and operating method of storage device
US10211947B2 (en) 2016-12-26 2019-02-19 Samsung Electronics Co., Ltd. System-on-chip using dynamic voltage frequency scaling and method of operating the same

Similar Documents

Publication Publication Date Title
KR20130110459A (ko) 시스템-온 칩, 이를 포함하는 전자 시스템 및 그 제어 방법
CN104679586B (zh) 包括异构多核处理器的电子系统及其操作方法
KR101991682B1 (ko) Dvfs 제어 방법 및 이를 이용한 시스템-온 칩
US11656675B2 (en) Application processor performing a dynamic voltage and frequency scaling operation, computing system including the same, and operation method thereof
KR102002899B1 (ko) 시스템-온 칩, 이의 동작 방법, 및 이를 포함하는 장치
KR102082859B1 (ko) 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US20140184619A1 (en) System-on-chip performing dynamic voltage and frequency scaling
KR102005765B1 (ko) 시스템-온 칩과, 이의 동작 방법
US20140063026A1 (en) Soc performing dynamic voltage and frequency scaling policies using 3d workload, and method using the same
US9766647B2 (en) Clock circuit for generating clock signal and semiconductor integrated circuit device including the same
US11693466B2 (en) Application processor and system on chip
KR20170110448A (ko) 메모리 컨트롤러 및 이를 포함하는 저장 장치
KR20160032529A (ko) 시스템 온 칩과 이의 dvfs 검증 방법
US11734067B2 (en) Multi-core system and controlling operation of the same
KR20140021283A (ko) 다중 dvfs 정책을 이용한 soc 및 이의 동작 방법
US20240036627A1 (en) System on chip and semiconductor device including the same
US20230266815A1 (en) Dvfs controlling method, semiconductor device and semiconductor system using the dvfs controlling method
US20240143061A1 (en) System on chip and operation method thereof
KR20230127824A (ko) 시스템 온 칩, 그것의 버스 파워 게이팅 방법 및 시스템

Legal Events

Date Code Title Description
WITN Withdrawal due to no request for examination