KR20210022850A - 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치 - Google Patents

반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치 Download PDF

Info

Publication number
KR20210022850A
KR20210022850A KR1020190102097A KR20190102097A KR20210022850A KR 20210022850 A KR20210022850 A KR 20210022850A KR 1020190102097 A KR1020190102097 A KR 1020190102097A KR 20190102097 A KR20190102097 A KR 20190102097A KR 20210022850 A KR20210022850 A KR 20210022850A
Authority
KR
South Korea
Prior art keywords
boosting
semiconductor device
policy
policies
input
Prior art date
Application number
KR1020190102097A
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 KR1020190102097A priority Critical patent/KR20210022850A/ko
Priority to US16/823,483 priority patent/US11442522B2/en
Publication of KR20210022850A publication Critical patent/KR20210022850A/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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/04Generating or distributing clock signals or signals derived directly therefrom
    • G06F1/12Synchronisation of different clock signals provided by a plurality of clock generators
    • 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/325Power saving in peripheral device
    • G06F1/3262Power saving in digitizer or tablet
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B20/00Read-only memory [ROM] devices

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)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Sources (AREA)

Abstract

본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 제어 방법에서는 사용자의 입력을 모니터링하고, 상기 사용자의 입력과 관련된 입력 이벤트 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅한다. 상기 복수의 부스팅 정책들은 적어도 순차적으로 수행되는 제1 부스팅 정책 및 제2 부스팅 정책을 포함한다. 따라서 에너지 소모를 감소시키면서, 성능 부스팅을 효율적으로 수행할 수 있다.

Description

반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치{control method of performance boosting of semiconductor device and semiconductor device performing the same}
본 발명은 반도체 장치에 관한 것으로, 더욱 상세하게는 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치에 관한 것이다.
스마트 폰을 비롯한 모바일 장치들은 일반적으로 배터리에 의해 동작한다. 배터리와 같은 한정된 자원만이 제공되는 동작 환경에서 그 동작 효율을 증대시키기 위해서는 구체적인 상황에 따라 모바일 장치들의 성능을 적절히관리하는 것이 필요하다.
모바일 장치들은 대부분 터치 스크린을 입력 수단으로 사용할 수 있다. 터치 스크린은 사용자로부터 제스처(gesture) 동작을 입력 받고, 해당 동작이 발생된 위치 정보나 해당 동작에 대한 속성 정보를 모바일 장치에 제공한다.
모바일 장치들의 성능 관리를 위해 터치 스크린을 통해 제공되는 입력 정보가 활용될 수 있다. 예를 들어, 터치 스크린에 아무런 입력이 없는 경우보다 사용자로부터 입력이 있는 경우에 모바일 장치의 성능을 부스팅(boosting)할 수 있다. 그런데 성능 부스팅은 불필요한 상황에서 사용될 경우 배터리의 전력을 낭비할 수도 있기 때문에, 성능 부스팅을 정교하게 수행하기 위한 방안이 요구된다.
본 발명의 일 목적은, 에너지 소모를 감소시키면서 효율적으로 성능을 부스팅할 수 있는 반도체 장치의 성능 부스팅 제어 방법을 제공하는 것이다.
본 발명의 일 목적은 에너지 소모를 감소시키면서 효율적으로 성능을 부스팅할 수 있는 반도체 장치를 제공하는 것이다.
상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 제어 방법에서는 사용자의 입력을 모니터링하고, 상기 사용자의 입력과 관련된 입력 이벤트 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅한다.
상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 반도체 장치는 프로세서, 입력 모니터 및 부스트 매니저를 포함한다. 상기 입력 모니터는 사용자의 입력을 모니터링한다. 상기 부스트 매니저는 상기 프로세서에 의하여 실행되어, 상기 입력 모니터로부터 제공되는 상기 사용자의 입력과 관련된 입력 이벤트 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각에서 기술되는 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅한다.
상기 목적을 달성하기 위한 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 제어 방법에서는 사용자의 입력을 모니터링하고, 상기 반도체 장치의 사용량을 모니터링하고, 상기 사용자의 입력과 관련된 입력 이벤트, 상기 반도체 장치의 사용량 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅한다. 상기 복수의 부스팅 정책들은 적어도 순차적으로 수행되는 제1 부스팅 정책 및 제2 부스팅 정책을 포함하고, 상기 제2 부스팅 정책을 수행하는 것은 상기 제1 부스팅 정책에서 부스팅된 제1 부스팅 레벨, 상기 제1 부스팅 정책의 수행 결과에 기초하여 상기 반도체 장치의 사용량과 관련된 제1 피드백 신호 및 상기 제1 부스팅 정책에서 소모된 제1 소모 에너지에 기초하여 상기 제2 부스팅 정책에서 부스팅될 제2 부스팅 레벨을 적응적으로 결정한다.
본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 제어 방법 및 반도체 장치에서는 복수의 부스팅 정책들을 연쇄적으로 수행하되, 현재 부스팅 정책을 수행함에 있어, 이전 부스팅 정책에서 사용된 부스팅 및 반도체 장치의 사용량을 고려하여 가용 에너지 내에서 각 부스팅 정책에서의 부스팅 레벨을 적응적으로 결정하고, 부스팅 정책들을 연쇄적으로 수행할 수 있다. 따라서 에너지 소모를 감소시키면서, 성능 부스팅을 효율적으로 수행할 수 있다.
도 1은 본 발명의 실시예들에 따른 반도체 장치를 나타내는 블록도이다.
도 2는 본 발명의 실시예들에 따른 성능 부스팅 시스템을 설명하기 위한 블록도이다.
도 3은 본 발명의 실시예들에 따른 도 2의 모니터링 유닛을 설명하기 위한 도면이다.
도 4는 본 발명의 실시예들에 따른 도 1의 적응적 부스팅 유닛을 설명하기 위한 블록도이다.
도 5는 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 시스템의 예를 나타내는 도면이다.
도 6은 본 발명의 실시예들에 따른 도 1의 매크로 리스트 테이블을 나타낸다.
도 7은 본 발명의 실시예들에 따른 부스팅 동작을 설명하기 위한 도면이다.
도 8은 본 발명의 실시예들에 따른 도 7의 부스팅 동작을 설명하기 위한 도면이다.
도 9는 본 발명의 다른 실시예들에 따른 반도체 장치를 나타내는 블록도이다.
도 10은 본 발명의 실시예들에 따른 도 9의 HMP 코어를 나타내는 블록도이다.
도 11은 본 발명의 실시예들에 따른 성능 부스팅 시스템을 설명하기 위한 블록도이다.
도 12는 본 발명의 실시예들에 따른 도 11의 적응적 부스팅 유닛을 설명하기 위한 블록도이다.
도 13은 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 시스템의 예를 나타내는 도면이다.
도 14는 본 발명의 실시들예들에 따른 모바일 장치를 니타내는 블록도이다.
도 15는 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 제어 방법을 나타내는 흐름도이다.
도 16은 본 발명의 실시예들에 따른 도 15의 성능 부스팅 제어 방법에서 성능을 부스팅하는 단계를 보다 상세히 나타낸다.
도 17은 본 발명의 실시예들에 따른 전자 시스템을 나타내는 블록도이다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 실시예들에 따른 반도체 장치를 나타내는 블록도이다.
도 1을 참조하면, 본 발명의 실시예들에 따른 반도체 장치(5)는 프로세서(10), 메모리(20), 터치 패널(30), 전력 관리 유닛(Power Management Unit, PMU)(40), 클럭 관리 유닛(Clock Management Unit, CMU)(50), 입력 모니터(60), 시스템 사용량 모니터(70) 및 타이머(80)를 포함할 수 있다.
프로세서(10), 메모리(20), 터치 스크린(30), PMU(40), CMU(50), 입력 모니터(60), 시스템 사용량 모니터(70) 및 타이머(80)는 버스(90)에 의해 전기적으로 연결되어 서로 신호 및/또는 데이터를 주고 받을 수 있다.
실시예에 있어서, 반도체 장치(5)는 전기 회로로 구현된 부스트 매니저(100)를 더 포함할 수 있다.
본 발명의 다양한 실시예에서 설명되는 성능 부스팅 기술은 하드웨어로 구현되거나, 소프트웨어로 구현되거나, 또는 하드웨어 및 소프트웨어로 구현될 수 있다.
상기 부스트 매니저(100)는 반도체 장치(5)의 프로세서(10)가 메모리(20)에 로드된 성능 부스팅 소프트웨어를 수행하여 구현되거나, 별도의 하드웨어로 구현될 있다.
반도체 장치(5)는 예컨대, 스마트 폰, 태블릿 컴퓨터, 노트북 컴퓨터를 비롯한 모바일 장치 또는 휴대용 장치일 수 있다. 그러나 본 발명의 범위는 이에 제한되지 않는다.
프로세서(10)는 반도체 장치(5)의 다른 구성 요소들을 제어하고, 동작에 필요한 여러 가지 연산들을 처리한다. 프로세서(10)는 예컨대, CPU(Central Processing Unit), GPU(Graphic Processing Unit), AP(Application Processor) 및 CP(Communication Processor) 중 적어도 하나를 포함할 수 있으나, 본 발명의 범위가 이에 제한되는 것은 아니다.
메모리(20)는 성능 부스팅 소프트웨어를 저장하고, 프로세서(10)가 성능 부스팅 소프트웨어를 실행시킬 수 있도록 한다. 메모리(20)는 DRAM(Dynamic Random Access Memory)를 비롯한 휘발성 메모리를 포함하거나, 플래시 메모리를 비롯한 비휘발성 메모리를 포함할 수도 있다.
터치 패널(30)은 사용자로부터 제스처 동작을 입력 받고, 해당 동작이 발생된 위치 정보나 해당 동작에 대한 속성 정보를 반도체 장치(50)에 제공한다. 터치 패널(30)은 저항막 방식, 정전 용량 방식, 적외선 방식, 초음파 방식 등으로 구현될 수 있나, 본 발명의 범위가 이에 제한되는 것은 아니다.
PMU(40)는 반도체 장치(5)에 대한 전력을 관리한다. 구체적으로 PMU(40)는 반도체 장치(5)의 부팅 동작을 제어할 수도 있고, 반도체 장치(5)를 저 전력 모드 또는 슬립 모드로 동작시켜 소모 전력을 낮출 수도 있다.
CMU(50)는 반도체 장치(5)에 탑재된 요소들에 대해 제공되는 클럭 신호를 관리한다. 예를 들어, CMU(50)는 프로세서(10)와 같은 다른 요소들을 동작시키기 위한 클럭 신호를 생성하고, 상황에 따라 클럭 신호의 주파수를 변경하거나, 필요에 따라 클럭 게이팅을 수행하기도 한다.
입력 모니터(60)는 사용자의 입력을 모니터링하고, 사용자의 입력과 관련된 입력 이벤트가 발생하는 경우, 이를 나타내는 트리거 신호(TRG)를 부스트 매니저(100) 및/또는 성능 부스팅 시스템 및 타이머(80)에 제공할 수 있다.
시스템 사용량 모니터(70)는 반도체 장치(5)의 사용량을 모니터링하여 이를 나타내는 피드백 신호(SFB)를 부스트 매니저(100)에 제공할 수 있다.
타이머(80)는 트리거 신호(TRG)가 수신되는 시점부터의 경과 시간을 산출하고, 상기 산출된 경과 시간이, 미리 정해진 가용 시간을 초과하는 경우에 활성화되는 타임 아웃 신호(TMO)를 부스트 매니저(100)에 제공할 수 있다.
부스트 매니저(100)ㅡ는 타임 아웃 신호(TMO)를 수신하는 경우, 성능 부스팅 동작을 종료시킬 수 있다.
부스트 매니저(100)는 복수의 부스팅 정책들을 기술하는 복수의 매크로들을 테이블 형태로 저장하는 매크로 리스트 테이블(110)을 포함할 수 있다.
도 2는 본 발명의 실시예들에 따른 성능 부스팅을 설명하기 위한 블록도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 반도체 장치의 성능 부스팅은 메모리(20) 상의 소프트웨어로 구현될 수 있다.
메모리(20)는 논리적으로 크게 커널(200), 플랫폼(210) 및 어플리케이션(220)이 탑재되는 영역들로 구분될 수 있다.
커널(200)은 플랫폼(210) 또는 어플리케이션(220)이 실행되기 위해 사용되는 시스템 자원들을 제어하고 관리한다. 예를 들어, 커널(200)은 사용자 입력 드라이버(202), 전력 관리 모듈(204) 및 후술할 주파수 제어부(206)를 통해 디스플레이에 장착된 터치 스크린(30), PMU(40) 및 CMU(50)과 같은 시스템 자원들을 제어 및 관리할 수 있다. 본 발명의 실시예들에서, 커널(200)은 예컨대 리눅스 커널일 수 있으나, 본 발명의 범위는 이에 제한되지 않는다.
플랫폼(210)은 커널(200)을 근간으로 하여 어플리케이션(220)이 실행될 수 있는 동작 환경을 제공한다. 예를 들어, 플랫폼(210)은 커널(200)로부터 제공되는 사용자 입력 드라이버(202), 전력 관리 모듈(204) 및 후술할 주파수 제어부(206)를 활용하면서 어플리케이션(220)이 사용할 수 있는 다양한 기능들을 제공한다. 실시예에 있어서, 플랫폼(210)은 예컨대 아파치 플랫폼일 수 있으나, 본 발명의 범위는 이에 제한되지 않는다.
어플리케이션(220)은 사용자로부터 요청을 수신하고, 플랫폼(210) 상에서 커널(200)을 통해 시스템 자원을 이용하여 상기 요청을 처리한 후, 그 결과를 사용자에게 제공할 수 있다.
도 2에서 본 발명의 실시예에 따른 성능 부스팅 소프트웨어는 플랫폼(210)에 구현된 것으로 나타냈으나, 본 발명의 범위는 이에 제한되지 않고 어플리케이션(220) 또는 커널(200) 수준에서 구현이 될 수도 있다.
플랫폼(210)에 구현된 본 발명의 다양한 실시예에 따른 성능 부스팅 소프트웨어는 모니터링 유닛(212) 및 적응적 부스팅 유닛(214)을 포함한다.
모니터링 유닛(212)은 사용자의 입력 및 시스템 사용량을 모니터링하고, 적응적 부스팅 유닛(214)은 모니터링 유닛(212)이 파악한 사용자의 입력 및 시스템 사용량에 기초하여 적응적으로 성능 부스팅을 수행한다. 모니터링 유닛(212)은 입력 모니터(60)의 기능과 시스템 사용량 모니터(70)의 기능을 수행할 수 있다.
구체적으로, 모니터링 유닛(212)은, 예컨대 터치 스크린(30)을 통해 수신된 사용자의 입력과, PMU(40)로부터 제공 받은 시스템 사용량을 모니터링하고, 어떤 이벤트가 발생한 경우, 사용자의 입력에 대한 정보를 포함하는 사용자 시스템 정보(USI)를 생성한다. 여기서 이벤트는 터치 프레스 이벤트, 터치 릴리즈 이벤트, 어플리케이션 런치 이벤트 등을 포함할 수 있다.
적응적 부스팅 유닛(214)은 사용자 시스템 정보(USI) 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하고, 부스팅 정책들에 따라 주파수 제어기(206)를 통해 CMU(50)를 제어하여 클럭 신호의 주파수를 조정함으로써 프로세서(10)의 동작 주파수를 부스트할 수 있다. 사용자 시스템 정보(USI)는 시스템의 사용량 정보를 더 포함할 수 있다.
PMU(40)는 반도체 장치(5)에 대한 전력을 관리한다. 구체적으로 PMU(40)는 반도체 장치(5)의 부팅 동작을 제어할 수도 있고, 반도체 장치(1)를 저 전력 모드 또는 슬립 모드로 동작시켜 소모 전력을 낮출 수도 있다.
CMU(50)는 반도체 장치(5)에 탑재된 요소들에 대해 제공되는 클럭 신호를 관리한다. 예를 들어, CMU(50)는 프로세서(10)와 같은 다른 요소들을 동작시키기 위한 클럭 신호를 생성하고, 상황에 따라 클럭 신호의 주파수를 변경하거나, 필요에 따라 클럭 게이팅을 수행하기도 한다.
도 3은 본 발명의 실시예들에 따른 도 2의 모니터링 유닛을 설명하기 위한 도면이다.
도 3을 참조하면, 모니터링 유닛(212)은 타임 스탬프 생성 모듈(2122), 제스처 모니터링 모듈(2124), 시스템 사용량 모니터링 모듈(2126) 및 사용자 시스템 정보 생성 모듈(2128)을 포함한다.
제스처 모니터링 모듈(2124)은 터치 스크린(30)을 통해 입력된 제스처 입력을 모니터링한다. 제스처 모니터링모듈(2124)은 제스처 입력으로부터 제스처가 발생한 위치를 나타내는 좌표 정보 및 제스처의 속성을 나타내는 프레스/릴리즈(press/release) 정보 등을 획득할 수 있다.
시스템 사용량 모니터링 모듈(2126)은 PMU(40)를 통해 제공받는 시스템 사용량을 모니터링한다. 예를 들어, 시스템 사용량 모니터링 모듈(2126)은 PMU(40)를 통해 실시간으로 시스템 사용량을 백분율(%)의 형태로 제공 받을 수 있다. 실시예에 있어서, 시스템 사용량은 프로세서(10)의 사용율을 포함할 수 있다.
사용자 시스템 정보 생성 모듈(2128)은 제스처 모니터링 모듈(2124)이 획득한 제스처의 좌표 정보 및 프레스/릴리즈 정보와, 시스템 사용량 모니터링 모듈(2126)이 PMU(40)로부터 제공 받은 시스템 사용량을 포함하는 사용자 시스템 정보(USI)를 생성한다. 사용자 시스템 정보(USI)는 타임 스탬프 생성 모듈(2122)에서 생성된 타임 스탬프 정보를 더 포함할 수 있다. 모니터링 유닛(212)은 이와 같이 생성된 사용자 시스템 정보(80)를 적응적 부스팅 유닛(214)에 전송한다.
도 4는 본 발명의 실시예들에 따른 도 1의 적응적 부스팅 유닛을 설명하기 위한 블록도이다.
도 4를 참조하면, 적응적 부스팅 유닛(214)은 제스처 부스팅 모듈(2142), 시스템 부스팅 모듈(2144) 및 부스팅 관리 모듈(2146)을 포함한다.
적응적 부스팅 유닛(214)은 모니터링 유닛(212)으로부터 사용자 시스템 정보(USI)를 수신한다.
제스처 부스팅 모듈(2142)은 사용자 시스템 정보(USI)에 포함된 제스처에 관한 정보, 예컨대 제스처의 좌표 정보 및 프레스/릴리즈 정보를 이용하여 사용자의 입력에 대한 속도, 가속도 등을 연산하거나, 프레스/릴리즈 패턴을 인지한다.
시스템 부스팅 모듈(2144)은 사용자 시스템 정보(USI)에 포함된 시스템 사용량을 이용하여, 시스템 사용량의 변화량을 연산하거나, 시스템 사용량의 변화 추이를 파악하여 이를 나타내는 피드백 신호(SFB)를 부스팅 관리 모듈(2146)에 제공한다.
부스팅 관리 모듈(2146)은 제스처 부스팅 모듈(2142)과 시스템 부스팅 모듈(2144)에 의해 연산된 정보들을 이용하여, 예컨대 CMU(50)를 제어하여 클럭 신호의 주파수를 조정함으로써 프로세서(10)의 동작 주파수를 부스트하기 위한 주파수 제어기(206)를 제어한다.
실시예에 있어서, 부스팅 관리 모듈(2146)은 제스처 부스팅 모듈(2142)에 의해 제스처의 좌표 정보로부터 연산된 사용자의 입력에 대한 속도(이동 속도)와, 시스템 부스팅 모듈(2144)로부터 제공 받은 시스템 사용량에 기초하여 동작 주파수의 값을 결정할 수 있다.
예를 들어, 부스팅 관리 모듈(2146)은 속도가 커지면 동작 주파수의 값을 상향 조정할 수 있다. 그 이유는 일반적으로 사용자 입력의 속도가 커진다는 것은 그 만큼 단위 시간 당 처리해야 할 작업이 많아짐을 의미할 수있기 때문이다. 같은 이유로 부스팅 관리 모듈(2146)은 속도가 작아지면 동작 주파수의 값을 하향 조정할 수 있다.
한편, 부스팅 관리 모듈(2146)은 속도가 크더라도 시스템 사용량이 현저하게 적은 상황에서는 동작 주파수의 값을 증가시키지 않을 수도 있다.
실시예에 있어서, 부스팅 관리 모듈(2146)은 제스처 부스팅 모듈(2142)에 의해 제스처의 좌표 정보로부터 연산된 사용자의 입력에 대한 가속도와, 시스템 부스팅 모듈(2144)로부터 제공 받은 시스템 사용량의 변화량에 기초하여 동작 주파수를 부스트하는 시간의 길이를 결정할 수 있다.
예를 들어, 부스팅 관리 모듈(2146)은 가속도가 커지면 동작 주파수를 부스트하는 시간의 길이를 상향 조정할 수 있다. 그 이유는 일반적으로 사용자 입력의 가속도가 커진다는 것은 터치 릴리즈 이후 단위 시간 당 처리해야 할 작업이 많아짐을 의미할 수 있기 때문이다. 같은 이유로 부스팅 관리 모듈(2146)은 가속도가 작아지면 동작 주파수를 부스트하는 시간의 길이를 하향 조정할 수 있다.
전술한 바와 같이, 모니터링 유닛(212) 및 적응정 부스팅 유닛(214)을 포함하는 성능 부스팅 시스템에 의해, 성능 부스팅을 사용자의 입력 패턴과 시스템 사용량에 따라 부스팅 구간 내에서 적응적으로 복수 번 조절할 수 있게 된다. 따라서 반도체 장치(50)에 대한 최적의 성능 부스팅을 제공함과 동시에 전력 또는 에너지 소모를 감소시킬 수 있다.
도 5는 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 시스템의 예를 나타내는 도면이다.
도 5를 참조하면, 실선으로 표시된 것은 본 발명의 실시예들에 따른 성능 부스팅 방법 및 성능 부스팅 시스템에 따라 부스팅된 동작 주파수이고, 점선으로 표시된 것은 기존의 전력 관리 방식에 의하여 부스팅된 동작 주파수이다.
시점(t0)에서 터치 프레스 이벤트가 처음으로 발생한 경우, 단위 시간 당 처리해야 할 작업의 양은 급격히 많아질 것으로 예상되므로, (예컨대 프로세서(10)에 제공되는) 클럭 신호의 주파수는 시점들(t0, t1) 사이에서는 미리 설정된 동작 주파수(F1)로 증가하고, 시점들(t1, t2, t3, t4) 사이에서는 이전 부스팅 정책에서 결정된 동작 주파수 및 시스템 사용량에 기초하여 동작 주파수들(f4, f3, f2) 각각으로 조절될 수 있다.
시점들(t0~t4) 사이는 각각 제1 내지 제4 서브 부스팅 구간들(BST11~BST14)를 나타내며 제1 부스팅 구간(BP1)에 포함될 수 있다. 제2 내지 제4 서브 부스팅 구간들(BTS12~BTS14)은 이전 서브 부스팅 구간인 제1 내지 제3 서브 부스팅 구간들(BTS11~BTS13)로부터 해당 부스팅 구간에서의 동작 주파수 및 동작 전압 중 적어도 하나에 대한 부스팅 레벨에 대한 정보를 획득할 수 있다.
시점(t4)에서 터치 프레스 이벤트 발생 후 일정 시간이 경과한 경우, 단위 시간 당 처리해야 할 작업의 양은 다소 감소할 것이므로, 클럭 신호의 주파수는 주파수(f0)로 감소하고 시점(t6)까지 지속된다.
이후 터치 릴리즈 이벤트가 발생할 것이 예상되는 시점(t6)이나, 터치 릴리즈 이벤트가 발생한 시점(t7)에서, 다시 단위 시간 당 처리해야 할 작업의 양은 급격히 많아질 것으로 예상되므로, 클럭 신호의 주파수는 주파수(f0)보다 큰 동작 주파수로 증가된다. 시점들(t7, t8, t9, t10, t11) 사이는 각각 제1 내지 제4 서브 부스팅 구간들(BST21~BST24)를 나타내며 제2 부스팅 구간(BP2)에 포함될 수 있다. 제2 부스팅 구간(BP2)에서도 이전 부스팅에서의 동작 주파수 및 시스템 사용량에 기초하여 동작 주파수가 부스팅될 수 있다.
도 5에서 참조 번호(121)는 기존의 고정된 주파수를 사용하는 부스팅 방법에 비하여 본 발명의 실시예들에 따른 부스팅 방법에서 절약된 에너지를 나타내고, 참조 번호(123)는 절약된 에너지(121)와 동일한 양의 에너지를 나타내며, 절약된 에너지에 의하여 추가적인 부스트가 수행될 수 있음을 나타낸다.
이와 같은 방식으로 반도체 장치의 성능 부스팅을 가용한 에너지 내에서 시스템 사용량과 이전 부스팅 정책에서 결정된 부스팅 레벨에 기초하여 적응적으로 조절할 수 있으며, 이에 따라 반도체 장치(5)에 대한 최적의 성능 부스팅을 제공함과 동시에 전력이 낭비되는 것을 방지할 수 있다.
도 6은 본 발명의 실시예들에 따른 도 1의 매크로 리스트 테이블을 나타낸다.
도 6을 참조하면, 도 1의 매크로 리스트 테이블(110)는 복수의 부스팅 정책들(P1, P2,…, Pn, n은 3 이상의 자연수) 각각과 관련된 매크로들(MCR1, MCR2,…, MCRn)을 저장할 수 있다. 매크로들(MCR1, MCR2,…, MCRn) 각각은 부스팅 구간에서의 가용 에너지(EB) 및 부스팅 정책들(P1, P2, …, Pn) 각각의 가용 수행 시간(T1, T2,…, Tn)을 저장할 수 있다.
도 7은 본 발명의 실시예들에 따른 부스팅 동작을 설명하기 위한 도면이다.
도 1 내지 도 7을 참조하면, 부스트 매니저(100)는 입력 모니터(60)가 사용자의 입력에 의한 입력 이벤트를 감지하는 경우 활성화되는 트리거 신호(TRG)에 응답하여 제1 부스팅 정책(310)에 따라 시스템을 부스팅한다. 제1 부스팅 정책(310)은 입력 이벤트를 입력으로 하고, 미리 결정된 부스팅 정책을 수행하며, 타임 아웃 신호가 인가되는 경우 종료될 수 있다.
제1 부스팅 정책(310)의 수행 결과로 획득된 제1 부스팅 레벨에 관한 정보(BF1)와 제1 부스팅 정책(310)에서 소모된 제1 소모 에너지(CE1) 및 시스템 사용량 모니터(70)에서 제공되는 제1 부스팅 정책(310)의 수행 결과에 기초한 시스템 사용량을 나타내는 제1 피드백 신호(SFB1)가 제2 부스팅 정책(320)에서 고려될 수 있다.
제2 부스팅 정책(320)은 제1 부스팅 레벨에 관한 정보(BF1), 제1 소모 에너지(CE1) 및 제1 피드백 신호(SFB1)를 입력으로 하고, 상기 입력들에 기초하여 제2 부스팅 레벨을 결정하는 것을 포함할 수 있다. 제2 부스팅 레벨을 결정하는 것은 제1 부스팅 레벨에 관한 정보(BF1), 제1 소모 에너지(CE1) 및 제1 피드백 신호(SFB1)를 변수로 하는 함수(f2)에 의하여 수행될 수 있다.
이와 마찬가지로, 제n 부스팅 정책(340)은 제(n-1) 부스팅 레벨에 관한 정보(BFn-1), 제(n-1) 소모 에너지(CEn-1) 및 제(n-1) 피드백 신호(SFBn-1)를 입력으로 하고, 상기 입력들에 기초하여 제n 부스팅 레벨을 적응적으로 결정하는 것을 포함할 수 있다. 제n 부스팅 레벨을 결정하는 것은 제(n-1) 부스팅 레벨에 관한 정보(BFn-1), 제(n-1) 소모 에너지(CEn-1) 및 제(n-1) 피드백 신호(SFBn-1)를 변수로 하는 함수(fn)에 의하여 수행될 수 있다.
부스팅 정책들(310, 320, 340) 각각을 수행하여 획득된 부스팅 레벨에 관한 정보(BF) 및 소모 에너지(CE)는 부스트 매니저(100) 또는 반도체 장치(5) 내부의 이력 레지스터(360)에 저장될 수 있다. 즉, 최근에 수행된 부스팅 정책과 관련된 부스팅 레벨에 관한 정보(BF) 및 소모 에너지(CE)가 이력 레지스터(360)에 갱신될 수 있다.
또한 부스트 매니저(100)은 종료 조건(350)이 만족되는 경우 성능 부스팅 동작을 종료시킬 수 있다. 부스트 매니저(100)가 성능 부스팅 동작을 종료시키는 종료 조건(350)은 부스팅 구간이 종료되기 전에 부스팅 정책들에 따른 소모 에너지가 가용 에너지를 초과하는 제1 조건, 부스팅 정책들의 수가 문턱값에 도달하는 제2 조건 및 부스팅 정책들이 수행될 수 있는 가용 시간이 만료되는 제3 조건을 포함할 수 있다.
도 8은 본 발명의 실시예들에 따른 도 7의 부스팅 동작을 설명하기 위한 흐름도이다.
도 1 내지 도 8을 참조하면, 부스트 매니저(100)는 입력 이벤트를 감지하고(S310), 입력 이벤트가 감지되는 경우, 제i번째 부스팅 정책에 따라 반도체 장치(5)의 성능을 부스팅한다(S320). 부스트 매니저(100)는 종료 조건(EXIT CONDITION)이 만족되는지를 판단하고(S330)고, 종료 조건 종료 조건(EXIT CONDITION)이 만족되지 않은 경우(S330에서 NO), i를 1만큼 증가시켜 제(i+1)번째 부스팅 정책에 따라 반도체 장치(5)의 성능을 부스팅한다(S320). 여기서 i는 1에서 n일 수 있다.
도 8의 부스팅 동작은 다음과 같이 수학식 1에 의하여 표현될 수 있다. 부스팅 동작의 종료 조건은 다음의 수학식 2에 의하여 표현될 수 있다.
[수학식 1]
Pi+1 = min({Power(Pk), where Pk ∈ (Perf(Pi) + Perf(SFBi) ≥ R)}, i = 1~n
[수학식 2]
∑Power(Pi)×Ti ≤ EB or ∑Ti ≤BP or n < N
여기서 Pi는 i번째 부스팅 정책을 나타내고, Ti는 i번째 부스팅 정책(Pi)이 수행될 수 있는 시간을 나타내고, SFBi는 i번째 부스팅 정책(Pi)에서 이용되는 i번째 피드백 신호를 나타내고, EB는 복수의 부스팅 정책들이 수행되는 동안 소모할 수 있는 가용 에너지를 나타내고, N은, 연쇄적으로 수행되는 적용가능한 부스팅 정책들의 수를 나타내고, BP는 부스팅 정책들이 수행될 수 있는 가용 시간인 부스팅 구간을 나타내고, R은 소모 전력 및 요구 성능 등의 시스템의 요구 조건을 나타낸다. BP는 시점과 종점을 포함할 수 있다.
여기서, Power(Pi)는 Pi가 주파수와 관련되는 경우에는 Pi×Vi 2(Vi는 Pi에서의 전압)+ 정적 전력으로 표현될 수 있고, Pi가 가변할 수 있는 경우에는 미리 측정된 값을 가질 수 있다.
또한 Perf(Pi)는 i번째 부스팅 정책(Pi)에 의하여 부스팅되는 성능을 나타내고, Perf(SFBi)는 i번째 피드백 신호(SFBi)에 의하여 부스팅 되는 성능을 나타낸다., 또한, Perf(SFBi)는 i번째 필요한 성능값 Perf(Pi)을 보정하는 목적으로 피드백되는 값으로 음수, 0, 양수 중 하나일 수 있다.
따라서 수학식 1은 시스템의 요구 조건(R) 이상을 만족하는 Perf(Pi)와 Perf(SFBi)의 합을 충족시키는 하나 이상의 부스팅 정책 중 최소 에너지(min(Power(Pk))를 소모하는 부스팅 정책이 (i+1)번째 부스팅 정책(Pi+1)으로 결정됨을 의미한다. 여기서 k는 1 이상의 자연수이다.
수학식 2에 의하면, 종료 조건은 부스팅 구간이 종료되기 전에 부스팅 정책들에 따른 누적 소모 에너지(∑Power(Pi)×Ti)가 가용 에너지(EB)를 초과하는 제1 조건, 부스팅 정책들의 수(n)가 적용가능한 부스팅 정책들의 수(N)에 도달하는 제2 조건 및 부스팅 정책들이 수행될 수 있는 가용 시간(BP)이 만료되는 제3 조건을 포함할 수 있다. 부스트 매니저(100)는 제1 조건, 제2 조건 및 제3 조건 중 어느 하나를 만족하는 경우 부스팅 동작을 종료시킬 수 있다.
도 9는 본 발명의 다른 실시예들에 따른 반도체 장치를 나타내는 블록도이다.
도 9의 반도체 장치(7)는 프로세서(10) 대신에 HMP(Heterogeneous Multi-Processing) 코어(12)를 포함한다는 점에서 도 1의 반도체 장치(50)와 차이가 있다.
이에 따라 반도체 장치(7)는 HMP 코어(12), 메모리(20), 터치 패널(30), PMU(40), CMU(50), 입력 모니터(60), 시스템 사용량 모니터(70) 및 타이머(80)를 포함할 수 있다. 프로세서(10), 메모리(20), 터치 스크린(30), PMU(40), CMU(50), 입력 모니터(60), 시스템 사용량 모니터(70) 및 타이머(80)는 버스(90)에 의해 전기적으로 연결되어 서로 신호 및/또는 데이터를 주고 받을 수 있다.
도 1에서 설명한 것과 마찬가지로, 성능 부스팅 기술이 하드웨어로 구현되는 경우, 반도체 장치(7)는 전기 회로로 구현된 부스트 매니저(100)를 더 포함할 수 있다.
이와 다르게 상기 성능 부스팅 기술이 소프트웨어로 구현되는 경우, 반도체 장치(7)의 HMP 코어(12)는 메모리(20)에 로드된 성능 부스팅 소프트웨어를 실행시킬 수 있다. 즉, HMP 코어(12)는 사용자의 입력 및 반도체 장치의 사용량에 기초하여 HMP 코어(12)에 포함되는 복수의 빅 코어들 및 복수의 리틀 코어들 중 상기 빅 코어들을 선택적으로 활성화시키는 HMP 부스트를 설정할 수 있다.
도 10은 본 발명의 실시예들에 따른 도 9의 HMP 코어를 나타내는 블록도이다.
도 10을 참조하면, HMP 코어(12)는 복수의 빅 코어들(BC1 내지 BC4) 및 복수의 리클 코어들(LC1 내지 LC4)를 포함할 수 있다.
본 발명의 실시예들에서, HMP 코어(12)는 ARM 사의 빅리틀(big.LITTLE) 아키텍처일 수 있으나, 본 발명의 범위는 이에 제한되지 않는다.
복수의 빅 코어들(BC1 내지 BC4)은 상대적으로 전력 소모가 많은 고 성능 코어이고, 복수의 리틀 코어들(LC1 내지 LC4)은 상대적으로 전력 소모가 적은 저 성능 코어를 말한다.
일반적으로 두 종류의 코어들 중 한 쪽만이 활성화되어 작동하며, 코어들이 동일한 메모리 영역을 사용하므로 상황에 따라 작업이 복수의 빅 코어(BC1 내지BC4)와 복수의 리틀 코어(LC1 내지 LC4) 사이에서 동적으로 할당된다. 이러한 구조의 목적은 멀티코어 환경에서 그때 그때 필요한 계산량에 따라 동적으로 코어를 할당함으로써 단순히 클럭을 조절하는 것보다 더 높은 수준의 전력소모 절감을 달성하는 것이다.
스케쥴러(208)는 이기종 간 다중 처리(heterogeneous multi-processing)를 지원하기 위해 전역 태스크 스케쥴링을 수행할 수 있다. 스케쥴러(208)는 커널(200) 수준에서 구현되는 것이 일반적이나, 본 발명의 범위가 이에 제한되는 것은 아니다.
도 11은 본 발명의 실시예들에 따른 성능 부스팅을 설명하기 위한 블록도이다.
모니터링 유닛(212)은 사용자의 입력 및 시스템 사용량을 모니터링하고, 적응적 부스팅 유닛(214a)은 모니터링 유닛(212)이 파악한 사용자의 입력 및 시스템 사용량에 기초하여 적응적으로 성능 부스팅을 수행한다.
구체적으로, 모니터링 유닛(212)은, 예컨대 터치 스크린(30)을 통해 수신된 사용자의 입력과, PMU(40)로부터 제공 받은 시스템 사용량을 모니터링하고, 어떤 이벤트가 발생한 경우, 사용자의 입력에 대한 정보를 포함하는 사용자 시스템 정보(USI)를 생성한다.
여기서 이벤트는 터치 프레스 이벤트, 터치 릴리즈 이벤트, 어플리케이션 런치 이벤트 등을 포함할 수 있다.
적응적 부스팅 유닛(214a)은 사용자 시스템 정보(USI) 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하고, 부스팅 정책들에 따라 주파수 제어기(206)를 통해 CMU(50)를 제어하여 클럭 신호의 주파수를 조정함으로써 프로세서(10)의 동작 주파수를 부스트할 수 있다. 사용자 시스템 정보(USI)는 시스템의 사용량 정보를 더 포함할 수 있다.
도 2의 실시예와는 달리, 적응적 부스팅 유닛(214a)은 동작 주파수를 부스팅함에 있어, 스케쥴러(208)를 제어하여 HMP 부스트를 추가적으로 설정할 수 있다. 즉, 단위 시간 당 처리해야 할 작업의 양이 많아질 것으로 예상되는 구간에서는 HMP 코어(12) 중 빅 코어(BC1 내지 BC4)를 활성화할 수 있다.
도 12는 본 발명의 실시예들에 따른 도 11의 적응적 부스팅 유닛을 설명하기 위한 블록도이다.
도 12를 참조하면, 적응적 부스팅 유닛(214a)은 제스처 부스팅 모듈(2142), 시스템 부스팅 모듈(2144) 및 부스팅 관리 모듈(2146a)을 포함한다. 그리고 적응적 부스팅 유닛(214a)은 모니터링 유닛(212)으로부터 사용자 시스템 정보(USI)를 수신한다.
부스팅 관리 모듈(2146a)은 제스처 부스팅 모듈(2142)과 시스템 부스팅 모듈(2144)에 의해 연산된 정보들을 이용하여, 예컨대 CMU(50)를 제어하여 클럭 신호의 주파수를 조정함으로써 프로세서(10)의 동작 주파수를 부스트하기 위한 주파수 제어기(206)를 제어한다. 또한 부스팅 관리 모듈(2146a)은 스케쥴러(208)를 제어하여 HMP 부스트를 추가적으로 설정할 수 있다.
실시예에 있어서, 부스팅 관리 모듈(2146a)은 제스처 부스팅 모듈(2142)에 의해 제스처의 좌표 정보로부터 연산된 사용자의 입력에 대한 속도(이동 속도)와, 시스템 부스팅 모듈(2144)로부터 제공 받은 시스템 사용량에 기초하여 동작 주파수의 값을 결정할 수 있다.
실시예에 있어서, 부스팅 관리 모듈(2146a)은 제스처 부스팅 모듈(2142)에 의해 제스처의 좌표 정보로부터 연산된 사용자의 입력에 대한 가속도와, 시스템 부스팅 모듈(2144)로부터 제공 받은 시스템 사용량의 변화량에 기초하여 HMP 부스트를 설정할 수 있다.
예를 들어, 부스팅 관리 모듈(2146a)은 가속도가 커지면 HMP 코어(12) 중 빅 코어(BC1 내지 BC4)를 활성화할 수 있다. 그 이유는 일반적으로 사용자 입력의 가속도가 커진다는 것은 터치 릴리즈 이후 단위 시간 당 처리해야 할 작업이 많아짐을 의미할 수 있기 때문이다.
같은 이유로 부스팅 관리 모듈(2146a)은 가속도가 작아지면 HMP 코어(12) 중 리틀 코어(LC1 내지 LC4)를 활성화할 수 있다. 한편, 부스팅 관리 모듈(2146a)은 시스템 사용량의 변화량이 큰 경우, HMP 코어(12) 중 빅 코어(BC1 내지 BC4)를 활성화할 수도 있다.
전술한 바와 같이, 모니터링 유닛(212a) 및 적응적 부스팅 유닛(214a)을 포함하는 성능 부스팅 장치에 의해, 성능 부스팅을 사용자의 입력 패턴과 시스템 사용량에 따라 적응적으로 조절할 수 있게 된다. 따라서 반도체 장치(7)에 대한 최적의 성능 부스팅을 제공함과 동시에 전력 또는 에너지 소모를 감소시킬 수 있다.
도 13은 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅의 예를 나타내는 도면이다.
도 13을 참조하면, 실선으로 표시된 것은 본 발명의 실시예들에 따른 성능 부스팅 방법 및 부스트 매니저(100)에 따라 부스팅된 동작 주파수이고, 점선으로 표시된 것은 기존의 전력 관리 방식에 의하여 부스팅된 동작 주파수이다. 또한 일점 쇄선으로 표시된 것은 HMP 부스트가 설정된 것을 나타낸다.
시점(t0)에서 터치 프레스 이벤트가 처음으로 발생한 경우, 단위 시간 당 처리해야 할 작업의 양은 급격히 많아질 것으로 예상되므로, (예컨대 프로세서(10)에 제공되는) 클럭 신호의 주파수는 시점들(t0, t1) 사이에서는 미리 설정된 동작 주파수(F1)로 증가하고, 시점들(t1, t2, t3, t4) 사이에서는 이전 부스팅 정책에서 결정된 동작 주파수 및 시스템 사용량에 기초하여 동작 주파수들(f4, f3, f2) 각각으로 조절될 수 있다. 또한 시점들(t1~t4) 사에이서 HMP 부스트가 설정되어 HMP 코어(12) 중 빅 코어들(BC1 내지 BC4)이 활성화되어 동작한다.
이후 터치 릴리즈 이벤트가 발생할 것이 예상되는 시점(t6)이나, 터치 릴리즈 이벤트가 발생한 시점(t7)에서, 다시 단위 시간 당 처리해야 할 작업의 양은 급격히 많아질 것으로 예상되므로, 클럭 신호의 주파수는 주파수(f0)보다 큰 동작 주파수로 증가된다. 또한, 시점들(t8~t9) 사이에서 HMP 부스트가 설정되어 HMP 코어(12) 중 빅 코어들(BC1 내지 BC4)이 활성화되어 동작할 수 있다.
도 14는 본 발명의 실시들예들에 따른 모바일 장치를 니타내는 블록도이다.
도 14를 참조하면, 모바일 장치(500)는 시스템 온 칩(SoC, 505), 워킹 메모리(530), 액정 표시 장치(552), 터치 패널(554), 저장 장치(570). 전력관리 집적회로(600) 등을 포함할 수 있다.
시스템 온 칩(505)은 멀티-코어 프로세서(510), 메모리 컨트롤러(520), 성능 컨트롤러(540), PMU(530), CMU(535), 사용자 인터페이스 컨트롤러(550), 메모리 인터페이스(560), 가속기(580) 등을 포함할 수 있다.
멀티-코어 프로세서(510)는 모바일 장치(500)에서 수행될 소프트웨어(응용 프로그램, 운영 체제, 장치 드라이버들)를 실행한다. 멀티-코어 프로세서(510)는 워킹 메모리(530)에 로드되는 운영 체제(OS)를 실행할 것이다. 멀티-코어 프로세서(510)는 운영 체제(OS) 기반에서 구동될 다양한 응용 프로그램들(Application Program)을 실행할 것이다. 멀티-코어 프로세서(510)는 동종 멀티-코어 프로세서(Homogeneous Multi-Core Processor) 또는 이종 멀티-코어 프로세서(Heterogeneous Multi-Core Processor)로 제공될 수 있다.
멀티-코어 프로세서(510)의 멀티-코어들 각각은 독립된 구동 클록 및 독립된 구동 전압에 의해서 동작하는 복수의 파워 도메인(Power Domain)으로 구성될 수 있다. 그리고 멀티-코어들 각각에 공급되는 구동 전압과 구동 클록을 코어 단위로 차단 또는 연결할 수 있다.
멀티-코어들 각각은 구동 클록의 주파수 및 구동 전압의 레벨은 코어들 각각의 처리 로드에 따라 가변될 수 있다. 즉, 각각의 코어는 부하의 크기에 따라 구동 클록의 주파수나 구동 전압의 레벨을 상승시키는 동적 전압 주파수 스케일링(Dynamic Voltage Frequency Scaling: 이하, DVFS) 방식으로 제어될 수 있다.
멀티-코어 프로세서(510)에 어느 하나의 쓰레드를 스케줄링할 경우, 고성능의 코어에서 실행되는 쓰레드와 동일한 컨텍스트를 가졌는지 검출된다. 검출 결과, 고성능의 코어에서 실행되는 쓰레드와 컨텍스트를 공유하는 것으로 검출되는 쓰레드는 고성능 코어에서 실행되도록 쓰레드 마이그레이션(Thread migration)이 수행될 수 있다. 이러한 스케줄링은 운영 체제(OS)의 커널(Kernel)에서 수행될 것이다.
메모리 컨트롤러(520)는 워킹 메모리(530)와 시스템 온 칩(505) 사이에서 인터페이싱을 제공한다. 메모리 컨트롤러(530)는 멀티-코어 프로세서(510)나 다른 기능 블록(Intellectual Property: IP)의 요청에 따라 워킹 메모리(530)를 액세스할 것이다.
예를 들면, 메모리 컨트롤러(520)는 멀티-코어 프로세서(510)의 기입 요청에 따라 데이터를 워킹 메모리(530)에 기입할 수 있다. 또는, 메모리 컨트롤러(520)는 멀티-코어 프로세서(510)의 독출 요청에 따라 워킹 메모리(530)로부터 데이터를 독출하여 데이터 버스(Data bus)를 통해서 멀티-코어 프로세서(510)나 메모리 인터페이스(160)에 전달할 수 있다.
워킹 메모리(530)에는 부팅시에 운영 체제(OS, 533)나 응용 프로그램들(Application Program, 531)이 로드될 것이다. 예를 들면, 모바일 장치(500)의 부팅시에 저장 장치(570)에 저장된 OS 이미지(573)가 부팅 시퀀스에 의거하여 워킹 메모리(530)로 로드된다. 운영 체제(OS, 533)에 의해서 모바일 장치(500)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스 제공을 위해서 응용 프로그램들이 워킹 메모리(530)에 로드될 수 있다.
성능 컨트롤러(540)는 운영 체제(OS)의 커널(Kernel)로부터 제공되는 제어 요청에 따라 시스템 온 칩(505)의 동작 파라미터들을 조정할 수 있다. 예를 들면, 성능 컨트롤러(540)는 시스템 온 칩(SoC)의 성능을 높이기 위해서 DVFS(Dynamic Voltage Frequency Scaling)의 레벨을 조정할 수 있다. 또는, 성능 컨트롤러(540)는 커널(Kernel)의 요청에 따라 멀티-코어 프로세서(510)의 빅앤리틀(Big.LITTLE)과 같은 구동 모드를 제어할 수 있다.
이때, 성능 컨트롤러(540)는 내부에 전술한 복수의 부스팅 정책들을 연쇄적으로 수행하여 성능 부스팅을 수행하는 부스트 매니저(545)를 포함할 수 있다. 성능 컨트롤러(540)는 PMIC(600)에 연결된 PMU(530) 및 CMU(535)가 각 파워 도메인에 지정된 구동 전압 및 구동 클록을 제공하도록 제어할 수 있다.
사용자 인터페이스 컨트롤러(550)는 사용자 인터페이스 장치들로부터의 사용자 입력 및 출력을 제어한다. 예를 들면, 사용자 인터페이스 컨트롤러(550)는 멀티-코어 프로세서(510)의 제어에 따라 액정 표시 장치(552)에 데이터를 입력하기 위한 키보드 화면 등을 표시할 수 있다. 또는, 사용자 인터페이스 컨트롤러(550)는 사용자가 요청한 데이터를 표시하도록 액정 표시 장치(552)를 제어할 수 있다. 사용자 인터페이스 컨트롤러(550)는 터치 스크린(554)과 같은 사용자 입력 수단으로부터의 제공되는 데이터를 사용자 입력 데이터로 디코딩할 수 있다.
메모리 인터페이스(560)는 멀티-코어 프로세서(510)의 요청에 따라 저장 장치(570)를 액세스한다. 즉, 메모리 인터페이스(560)는 시스템 온 칩(505)과 저장 장치(570) 사이의 인터페이스를 제공한다. 예를 들면, 멀티-코어 프로세서(510)에 의해서 처리된 데이터가 메모리 인터페이스(560)를 통해 저장 장치(570)에 저장된다. 다른 예이서 저장 장치(570)에 저장된 데이터는 메모리 인터페이스(560)를 통해 멀티-코어 프로세서(510)에 제공될 수 있다.
저장 장치(570)는 모바일 장치(500)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(570)는 응용 프로그램들(Application Program, 531), 운영 체제 이미지(OS Image, 573) 및 각종 데이터를 저장할 수 있다. 저장 장치(570)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 저장 장치(570)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다.
가속기(580)는 멀티미디어 또는 멀티미디어 데이터의 처리 속도를 향상하기 위한 별도의 기능 블록(IP)으로 제공될 수 있다. 예를 들면, 가속기(580)는 텍스트(Text), 오디오(Audio), 정지 영상들(Still images), 애니메이션(Animation), 비디오(Video), 2차원 데이터, 또는 3차원 데이터의 처리 성능을 향상시키기 위한 기능 블록(IP)으로 제공될 수 있다.
시스템 인터커넥터(590)는 시스템 온 칩(505)의 내부에서 온칩 네트워크를 제공하기 위한 시스템 버스(System Bus)이다.
시스템 인터커넥터(190)는 예를 들면, 데이터 버스(Data bus), 어드레스 버스(Address bus) 및 컨트롤 버스(Control bus)를 포함할 것이다. 데이터 버스(Data bus)는 데이터가 이동하는 경로이다. 주로, 워킹 메모리(530)이나 저장 장치(170)로의 메모리 접근 경로를 제공될 것이다. 어드레스 버스(Address bus)는 기능 블록들(IPs) 간의 어드레스 교환 경로를 제공한다. 컨트롤 버스(Control bus)는 기능 블록들(IPs) 간의 제어 신호를 전달하는 경로를 제공한다.
도 15는 본 발명의 실시예들에 따른 반도체 장치의 성능 부스팅 제어 방법을 나타내는 흐름도이다.
도 1 내지 도 15를 참조하면, 반도체 장치(5 또는 7)의 성능 부스팅 제어 방법에서는 사용자의 입력을 모니터링하고(S610), 사용자의 입력과 관련된 입력 이벤트 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하여 반도체 장치(5 또는 7)의 성능을 부스팅한다(S630).
실시예에 있어서, 복수의 부스팅 정책들 각각은 상기 반도체 장치의 동작 주파수 및 동작 전압 중 적어도 하나를 부스팅하는 것에 관련될 수 있다.
복수의 부스팅 정책들은 적어도 순차적으로 수행되는 제1 부스팅 정책 및 제2 부스팅 정책을 포함하고, 상기 제2 부스팅 정책을 수행하는 것은 상기 제1 부스팅 정책에서 부스팅된 제1 부스팅 레벨, 상기 제1 부스팅 정책의 수행 결과에 기초하여 상기 반도체 장치의 사용량과 관련된 제1 피드백 신호 및 상기 제1 부스팅 정책에서 소모된 제1 소모 에너지에 기초하여 상기 제2 부스팅 정책에서 부스팅될 제2 부스팅 레벨을 적응적으로 결정할 수 있다.
실시예에 있어서, 상기 부스팅 제어 방법은 반도체 장치의 사용량을 더 모니터링할 수 있고(S620), 상기 모니터링된 반도체 장치의 사용량에 기초하여 복수의 부스팅 정책들을 연쇄적으로 수행할 수 있다.
도 16은 본 발명의 실시예들에 따른 도 15의 성능 부스팅 제어 방법에서 성능을 부스팅하는 단계를 보다 상세히 나타낸다.
도 1 내지 도 16을 참조하면, 성능을 부스팅하기 위하여(S630), 부스트 매니저(100) 또는 성능 부스팅 시스템은 입력 이벤트 및 가용 에너지에 기초하여 제1 부스팅 정책을 수행하여 동작 주파수 및 동작 전압 중 적어도 하나를 부스팅 제1 레벨로 부스팅한다(S640). 부스트 매니저(100) 또는 성능 부스팅 시스템은 제1 부스팅 정책의 수행에서 소모된 제1 소모 에너지, 반도체 자치의 사용량과 관련된 제1 피드백 신호 및 제1 레벨에 기초하여 제2 부스팅 정책에서 부스팅될 동작 주파수 및 동작 전압 중 적어도 하나의 제2 부스팅 레벨을 적응적으로 결정한다(S660).
예를 들어, 제1 피드백 신호가 제1 부스팅 정책의 수행 후 반도체 장치의 사용량이 증가함을 나타내는 경우, 부스트 매니저(100) 또는 성능 부스팅 시스템은 상기 제2 부스팅 레벨을 상기 제1 부스팅 레벨보다 증가시킬 수 있다.
예를 들어, 제1 피드백 신호가 제1 부스팅 정책의 수행 후 반도체 장치의 사용량이 감소함을 나타내는 경우, 부스트 매니저(100) 또는 성능 부스팅 시스템은 상기 제2 부스팅 레벨을 상기 제1 부스팅 레벨보다 감소시킬 수 있다.
도 16에서는 복수의 부스팅 정책들이 제1 부스팅 정책 및 제2 부스팅 정책을 포함하는 것으로 설명하였지만, 상술한 바와 같이, 복수의 부스팅 정책들은 제1 내지 제n 부스팅 정책들을 포함할 수 있고, 현재 부스팅 정책을 수행함에 있어, 이전 부스팅 정책에서 사용된 부스팅 및 반도체 장치의 사용량을 고려하여 가용 에너지 내에서 각 부스팅 정책에서의 부스팅 레벨을 적응적으로 결정하고, 부스팅 정책들을 연쇄적으로 수행할 수 있다. 따라서 에너지 소모를 감소시키면서, 성능 부스팅을 효율적으로 수행할 수 있다.
도 17은 본 발명의 실시예들에 따른 전자 시스템을 나타내는 블록도이다.
도 17을 참조하면, 전자 시스템(800)은 컨트롤러(810), 파워 소스(820), 저장 장치(830), 메모리(840), 입출력 포트들(850), 확장 카드(860), 네트워크 장치(870), 및 디스플레이(880)를 포함한다. 실시 예에 따라. 전자 시스템(800)은 카메라 모듈(890)을 더 포함할 수 있다.
컨트롤러(810)는 구성 요소들(elements; 810~880) 각각의 동작을 제어할 수 있다. 파워 소스(820)는 구성 요소들(810~880) 중에서 적어도 하나로 동작 전압을 공급할 수 있다. 저장 장치(830)는 하드디스크 드라이브(hard disk drive) 또는 SSD(solid state drive)로 구현될 수 있다.
메모리(840)는 휘발성 메모리 또는 불휘발성 메모리로 구현될 수 있다.
입출력 포트들(850)은 전자 시스템으로 데이터를 전송하거나 또는 전자 시스템으로부터 출력된 데이터를 외부 장치로 전송할 수 있는 포트들을 의미한다. 예컨대, 입출력 포트들(850)은 컴퓨터 마우스와 같은 포인팅 장치(pointing device)를 접속하기 위한 포트, 프린터를 접속하기 위한 포트, 또는 USB 드라이브를 접속하기 위한 포트일 수 있다.
확장 카드(860)는 SD(secure digital) 카드 또는 MMC(multimedia card)로 구현될 수 있다. 실시 예에 따라, 확장 카드(860)는 SIM(subscriber identification module) 카드 또는 USIM(universal subscriber identity Module) 카드일 수 있다.
네트워크 장치(870)는 전자 시스템을 유선 네트워크 또는 무선 네트워크에 접속시킬 수 있는 장치를 의미한다. 디스플레이(880)는 저장 장치(830), 메모리(840), 입출력 포트들(850), 확장 카드(860), 또는 네트워크 장치(870)로부터 출력된 데이터를 디스플레이할 수 있다.
카메라 모듈(890)은 광학 이미지를 전기적인 이미지로 변환할 수 있는 모듈을 의미한다. 따라서, 카메라 모듈(890)로부터 출력된 전기적인 이미지는 저장 장치(830), 메모리(840), 또는 확장 카드(860)에 저장될 수 있다. 또한, 카메라 모듈(890)로부터 출력된 전기적인 이미지는 디스플레이(880)를 통하여 디스플레이될 수 있다.
컨트롤러(810)는 도 1 또는 도 9를 참조하여 설명한 바와 같이 부스트 매니저(100)를 포함하거나, 성능 부스팅 시스템을 실행시킬 수 있다. 따라서 컨트롤러(810)는 성능 부스팅을 사용자의 입력 패턴과 시스템 사용량에 따라 적응적으로 조절할 수 있게 된다. 따라서 전자 시스템(800)에 대한 최적의 성능 부스팅을 제공함과 동시에 전력 또는 에너지 소모를 감소시킬 수 있다.
이와 같이, 본 발명의 실시예들에 따른 반도체 장치 및 반도체 장치의 성능 부스팅 제어 방법은 입력 이벤트 및 가용 에너지를 고려하여 복수의 부스팅 정책들을 연쇄적으로 수행함에 있어, 이전 부스팅 정책에서 사용된 부스팅 레벨 및 반도체 장치의 사용량을 고려하여 가용 에너지 내에서 각 부스팅 정책에서의 부스팅 레벨을 적응적으로 결정할 수 있다. 따라서 에너지 소모를 감소시키면서, 성능 부스팅을 효율적으로 수행할 수 있다.
본 발명의 실시예들은 효율적인 성능 부스팅이 요구되는 장치 및 이를 포함하는 시스템에 유용하게 이용될 수 있다.
특히 본 발명의 실시예들은 메모리 카드, 솔리드 스테이트 드라이브(Solid State Drive; SSD), 임베디드 멀티미디어 카드(eMMC, embedded multimedia card), 유니버셜 플래시 스토리지(UFS, universal flash storage), 컴퓨터(computer), 노트북(laptop), 핸드폰(cellular phone), 스마트폰(smart phone), MP3 플레이어, 피디에이(Personal Digital Assistants; PDA), 피엠피(Portable Multimedia Player; PMP), 디지털 TV, 디지털 카메라, 포터블 게임 콘솔(portable game console), 네비게이션(navigation) 기기, 웨어러블(wearable) 기기, IoT(internet of things;) 기기, IoE(internet of EBerything:) 기기, e-북(e-book), VR(virtual reality) 기기, AR(augmented reality) 기기 등과 같은 전자 기기에 더욱 유용하게 적용될 수 있다.
상기에서는 본 발명이 바람직한 실시예를 참조하여 설명하였지만, 해당 기술분야의 숙련된 당업자는 하기의 특허청구범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 것이다.

Claims (10)

  1. 반도체 장치의 성능 부스팅 제어 방법으로서,
    사용자의 입력을 모니터링하는 단계; 및
    상기 사용자의 입력과 관련된 입력 이벤트 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅하는 단계를 포함하는 반도체 장치의 성능 부스팅 제어 방법.
  2. 제1항에 있어서,
    상기 복수의 부스팅 정책들 각각은 상기 반도체 장치의 동작 주파수 및 동작 전압 중 적어도 하나를 부스팅하는 것에 관련되고,
    상기 복수의 매크로들 각각은 상기 복수의 부스팅 정책들 중 대응되는 부스팅 정책과 관련된 내용을 테이블 형태로 저장하고,
    상기 복수의 매크로들 각각은 상기 대응되는 부스팅 정책의 가용 수행 시간, 상기 가용 에너지 및 상기 부스팅 정책들의 가용 적용 시간을 기술하는 반도체 장치의 성능 부스팅 제어 방법.
  3. 제1항에 있어서,
    상기 반도체 장치의 사용량을 모니터링하는 단계를 더 포함하고,
    상기 반도체 장치의 사용량에 더 기초하여 상기 복수의 부스팅 정책들 각각에서의 부스팅 레벨을 적응적으로 결정하는 반도체 장치의 성능 부스팅 제어 방법.
  4. 제3항에 있어서,
    상기 복수의 부스팅 정책들은 적어도 순차적으로 수행되는 제1 부스팅 정책 및 제2 부스팅 정책을 포함하고,
    상기 제2 부스팅 정책을 수행하는 것은 상기 제1 부스팅 정책에서 부스팅된 제1 부스팅 레벨, 상기 제1 부스팅 정책의 수행 결과에 기초하여 상기 반도체 장치의 사용량과 관련된 제1 피드백 신호 및 상기 제1 부스팅 정책에서 소모된 제1 소모 에너지에 기초하여 상기 제2 부스팅 정책에서 부스팅될 제2 부스팅 레벨을 적응적으로 결정하는 단계를 포함하고,
    상기 제1 피드백 신호가 상기 반도체 장치의 사용량이 증가함을 나타내는 경우,
    상기 제2 부스팅 은 상기 가용 에너지 내에서 상기 제2 부스팅 레벨을 상기 제1 부스팅 레벨보다 증가시켜 수행되는 반도체 장치의 성능 부스팅 제어 방법.
  5. 제3항에 있어서,
    상기 복수의 부스팅 정책들은 적어도 순차적으로 수행되는 제1 부스팅 정책 및 제2 부스팅 정책을 포함하고,
    상기 제2 부스팅 정책을 수행하는 것은 상기 제1 부스팅 정책에서 부스팅된 제1 부스팅 레벨, 상기 제1 부스팅 정책의 수행 결과에 기초하여 상기 반도체 장치의 사용량과 관련된 제1 피드백 신호 및 상기 제1 부스팅 정책에서 소모된 제1 소모 에너지에 기초하여 상기 제2 부스팅 정책에서 부스팅될 제2 부스팅 레벨을 적응적으로 결정하는 단계를 포함하고,
    상기 제1 피드백 신호가 상기 반도체 장치의 사용량이 감소함을 나타내는 경우,
    상기 제2 부스팅 정책은 상기 가용 에너지 내에서 상기 제2 부스팅 레벨을 상기 제1 부스팅 레벨보다 감소시켜 수행되는 반도체 장치의 성능 부스팅 제어 방법.
  6. 제1항에 있어서,
    상기 가용 에너지, 상기 복수의 부스팅 정책들의 수 및 상기 복수의 부스팅 정책들이 적용되는 가용 적용 시간 중 적어도 하나와 관련된 종료 조건 만족되는 경우, 상기 부스팅은 종료되고,
    상기 부스팅 구간은 시점과 종점을 포함하고, 상기 종점에 도달하기 건에 상기 가용 에너지가 소모되는 제1 조건, 상기 부스팅 정책들이 수가 문턱값에 도달하는 제2 조건 및 상기 가용 적용 시간이 만료되는 제3 조건 중 적어도 하나가 만족되는 경우에 상기 부스팅은 종료되는 반도체 장치의 성능 부스팅 제어 방법.
  7. 제1항에 있어서,
    상기 입력 이벤트는 상기 사용자의 입력으로부터 획득한 좌표 정보 및 프레스/릴리스 정보를 포함하고,
    상기 복수의 부스팅 정책들 각각은 상기 반도체 장치의 동작 주파수 및 동작 전압 중 적어도 하나를 부스팅하는 것에 관련되고,
    상기 동작 주파수 및 상기 동작 전압 중 적어도 하나의 부스팅 레벨은 상기 좌표 정보에 기초하여 연산된 상기 사용자의 입력에 대한 속도에 기초하여 결정되는 반도체 장치의 성능 부스팅 제어 방법.
  8. 반도체 장치로서,
    프로세서;
    사용자의 입력을 모니터링하는 입력 모니터; 및
    상기 프로세서에 의하여 실행되는 부스트 매니저를 포함하고, 상기 부스트 매니저는 상기 입력 모니터로부터 제공되는 상기 사용자의 입력과 관련된 입력 이벤트 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각에서 기술되는 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅하는 부스트 매니저를 포함하는 반도체 장치.
  9. 제8항에 있어서,
    상기 반도체 장치의 사용량을 모니터링하는 사용량 모니터를 더 포함하고,
    상기 부스트 매니저는 상기 반도체 장치의 사용량에 더 기초하여 상기 복수의 부스팅 정책들 각각에서의 부스팅 레벨을 적응적으로 결정하고,
    상기 입력 이벤트의 발생 시부터의 경과 시간을 산출하고, 상기 산출된 시간이 상기 부스팅 정책들의 가용 적용 시간을 초과하는 경우, 타임 아웃 신호를 상기 부스트 매니저에 제공하는 타이머를 더 포함하고,
    상기 프로세서는 복수의 빅 코어들과 복수의 리틀 코어들을 포함하는 HMP(Heterogeneous Multi-Processing) 코어이고,,
    상기 부스트 매니저는 상기 반도체 장치의 사용량에 기초하여 상기 복수의 빅 코어들과 상기 복수의 리틀 코어들 중 상기 복수의 빅 코어들을 선택적으로 활성화시키는 HMP 부스트를 설정하는 반도체 장치.
  10. 반도체 장치의 성능 부스팅 제어 방법으로서,
    사용자의 입력을 모니터링하는 단계;
    상기 반도체 장치의 사용량을 모니터링하는 단계; 및
    상기 사용자의 입력과 관련된 입력 이벤트, 상기 반도체 장치의 사용량 및 부스팅 구간 내에서의 가용 에너지에 기초하여 복수의 매크로들 각각과 관련된 복수의 부스팅 정책들을 연쇄적으로 수행하여 상기 반도체 장치의 성능을 부스팅하는 단계를 포함하고,
    상기 복수의 부스팅 정책들은 적어도 순차적으로 수행되는 제1 부스팅 정책 및 제2 부스팅 정책을 포함하고,
    상기 제2 부스팅 정책을 수행하는 것은 상기 제1 부스팅 정책에서 부스팅된 제1 부스팅 레벨, 상기 제1 부스팅 정책의 수행 결과에 기초하여 상기 반도체 장치의 사용량과 관련된 제1 피드백 신호 및 상기 제1 부스팅 정책에서 소모된 제1 소모 에너지에 기초하여 상기 제2 부스팅 정책에서 부스팅될 제2 부스팅 레벨을 적응적으로 결정하는 단계를 포함하는 반도체 장치의 성능 부스팅 제어 방법.
KR1020190102097A 2019-08-21 2019-08-21 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치 KR20210022850A (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020190102097A KR20210022850A (ko) 2019-08-21 2019-08-21 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치
US16/823,483 US11442522B2 (en) 2019-08-21 2020-03-19 Method of controlling performance boosting of semiconductor device based on at least user input and feedback from previous boosting policies and semiconductor device performing the method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190102097A KR20210022850A (ko) 2019-08-21 2019-08-21 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치

Publications (1)

Publication Number Publication Date
KR20210022850A true KR20210022850A (ko) 2021-03-04

Family

ID=74645389

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190102097A KR20210022850A (ko) 2019-08-21 2019-08-21 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치

Country Status (2)

Country Link
US (1) US11442522B2 (ko)
KR (1) KR20210022850A (ko)

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739532B2 (en) 2004-06-07 2010-06-15 Intel Corporation Method, apparatus and system for enhanced CPU frequency governers
US7730340B2 (en) 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
US7913071B2 (en) * 2007-07-31 2011-03-22 Northwestern University Systems and methods for process and user driven dynamic voltage and frequency scaling
US8601298B2 (en) * 2010-09-15 2013-12-03 Qualcomm Incorporated System and method for determining optimal operating parameters for conserving power in a portable device from a hypersurface which represents optimal values of the operating parameters under various synthetic workloads
CN102446197B (zh) * 2010-09-30 2015-11-25 国际商业机器公司 一种数据转换方法和数据转换器
US20120284543A1 (en) * 2011-05-02 2012-11-08 Microsoft Corporation User input triggered device power management
KR20140088691A (ko) 2013-01-03 2014-07-11 삼성전자주식회사 Dvfs 정책을 수행하는 시스템-온 칩 및 이의 동작 방법
KR20140126949A (ko) * 2013-04-24 2014-11-03 삼성전자주식회사 터치스크린을 구비하는 전자 장치의 메뉴 운용 방법 및 장치
US9244747B2 (en) 2014-03-13 2016-01-26 Qualcomm Incorporated System and method for providing dynamic clock and voltage scaling (DCVS) aware interprocessor communication
WO2016195225A1 (ko) 2015-05-29 2016-12-08 이화여자대학교 산학협력단 Gpgpu 어플리케이션을 위한 dvfs 기법이 적용된 모바일 디바이스
US9904612B2 (en) 2015-07-08 2018-02-27 Futurewei Technologies, Inc. Dynamic voltage/frequency scaling for multi-processors using end user experience metrics
US10054977B2 (en) 2016-04-28 2018-08-21 International Business Machines Corporation Controlling system clocks in virtual machines
KR20180076631A (ko) * 2016-12-28 2018-07-06 삼성전자주식회사 반도체 장치의 성능 부스팅 방법 및 시스템

Also Published As

Publication number Publication date
US11442522B2 (en) 2022-09-13
US20210057420A1 (en) 2021-02-25

Similar Documents

Publication Publication Date Title
US9996400B2 (en) Multi-CPU system and multi-CPU system scaling method
KR101861742B1 (ko) 이종의 가속기들 사이에서 스위칭할 수 있는 데이터 처리 시스템과 그 방법
CN106415498B (zh) 虚拟机功率管理
US20170024316A1 (en) Systems and methods for scheduling tasks in a heterogeneous processor cluster architecture using cache demand monitoring
US9588915B2 (en) System on chip, method of operating the same, and apparatus including the same
US11693466B2 (en) Application processor and system on chip
US20150015589A1 (en) Device and method of power management for graphic processing unit
US9128703B1 (en) Processor that transitions to an idle mode when no task is scheduled to execute and further enters a quiescent doze mode or a wait mode depending on the value of a reference counter
JP2002533801A (ja) 自動cpu速度制御のための装置及び方法
KR102222752B1 (ko) 프로세서의 동적 전압 주파수 스케일링 방법
EP2375324A2 (en) Virtualization apparatus for providing a transactional input/output interface
US10635337B2 (en) Dynamic configuration of compressed virtual memory
US10539995B2 (en) Performance boosting method and system of semiconductor device
US20170212581A1 (en) Systems and methods for providing power efficiency via memory latency control
EP3857335A1 (en) Per-core operating voltage and/or operating frequency determination based on effective core utilization
CN115357389A (zh) 内存管理方法、装置及电子设备
JP2014167780A (ja) 情報処理装置、動作状態制御方法及びプログラム
US20160091949A1 (en) Performance management for a multiple-cpu platform
US9323317B2 (en) System and methods for DIMM-targeted power saving for hypervisor systems
US9229760B2 (en) Virtual memory management to reduce power consumption in the memory
US12001880B2 (en) Multi-core system and method of controlling operation of the same
US10678705B2 (en) External paging and swapping for dynamic modules
KR20210022850A (ko) 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치
US20240061492A1 (en) Processor performing dynamic voltage and frequency scaling, electronic device including the same, and method of operating the same
KR20240043635A (ko) 전력 관리 칩, 그것을 포함하는 전자 장치, 및 그것의 동작 방법

Legal Events

Date Code Title Description
A201 Request for examination