KR102060703B1 - 모바일 시스템의 최적화 방법 - Google Patents

모바일 시스템의 최적화 방법 Download PDF

Info

Publication number
KR102060703B1
KR102060703B1 KR1020130025875A KR20130025875A KR102060703B1 KR 102060703 B1 KR102060703 B1 KR 102060703B1 KR 1020130025875 A KR1020130025875 A KR 1020130025875A KR 20130025875 A KR20130025875 A KR 20130025875A KR 102060703 B1 KR102060703 B1 KR 102060703B1
Authority
KR
South Korea
Prior art keywords
application
mobile system
performance
workload
built
Prior art date
Application number
KR1020130025875A
Other languages
English (en)
Other versions
KR20140111558A (ko
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 KR1020130025875A priority Critical patent/KR102060703B1/ko
Priority to US14/198,744 priority patent/US9658674B2/en
Publication of KR20140111558A publication Critical patent/KR20140111558A/ko
Application granted granted Critical
Publication of KR102060703B1 publication Critical patent/KR102060703B1/ko

Links

Images

Classifications

    • 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/44Arrangements for executing specific programs
    • 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
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Stored Programmes (AREA)
  • Power Sources (AREA)

Abstract

본 발명의 하나의 실시형태에 따른 모바일 시스템의 최적화 방법은 적어도 하나의 애플리케이션이 설치된 모바일 시스템의 최적화 방법에 있어서, 상기 애플리케이션을 실행하는 단계, 상기 애플리케이션의 실행 조건을 판단하는 단계 및 상기 애플리케이션이 실제 작업로드를 실행하기 전, 상기 판단된 결과에 따라 상기 모바일 시스템의 성능을 증가시키는 단계를 포함한다. 따라서, 발명의 실시 예에 따른 모바일 시스템의 최적화 방법은 동일한 자원을 활용하여 모바일 시스템의 성능을 향상시킬 것이다.

Description

모바일 시스템의 최적화 방법{OPTIMIZING METHOD OF MOBILE SYSTEM}
본 발명은 모바일 시스템에 관한 것으로, 좀더 구체적으로는 모바일 시스템에 설치된 애플리케이션의 실행을 최적화하기 위한 모바일 시스템의 최적화 방법에 관한 것이다.
모바일 시스템에는 복수의 애플리케이션들이 설치될 것이다. 모바일 시스템에 설치된 애플리케이션이 실행되면, 애플리케이션의 구동에 의하여 애플리케이션 프로세서의 작업로드가 증가할 것이다. 상기 애플리케이션 프로세서의 작업로드가 증가하면, 상기 모바일 시스템은 상기 애플리케이션 프로세서의 동작 클록 또는 구동 전압을 증가시킬 것이다.
일반적으로 모바일 시스템은 한정된 자원에 따라 동일한 성능을 제공할 것이다. 상기 모바일 시스템의 성능은 벤치마킹 애플리케이션에 의하여 점수로 나타날 것이다. 모바일 시스템의 벤치마킹에 사용되는 애플리케이션으로는 QuadrantTM 또는 antutuTM 등이 있다.
본 발명의 목적은 애플리케이션을 실행하기 위한 최적의 성능을 제공할 수 있는 모바일 시스템의 최적화 방법을 제공하는 것이다.
상기 목적을 달성하기 위하여 본 발명의 하나의 실시형태에 따른 모바일 시스템의 최적화 방법은 적어도 하나의 애플리케이션이 설치된 모바일 시스템의 최적화 방법에 있어서, 상기 애플리케이션을 실행하는 단계, 상기 애플리케이션의 실행 조건을 판단하는 단계 및 상기 애플리케이션이 실제 작업로드를 실행하기 전, 상기 판단된 결과에 따라 상기 모바일 시스템의 성능을 제어하는 단계를 포함한다.
실시 예에 따라, 상기 애플리케이션을 실행하는 단계는 상기 애플리케이션의 작업로드를 위한 준비 단계, 상기 애플리케이션이 실제 작업로드를 실행하는 단계 및 상기 애플리케이션이 작업로드를 종료하는 단계를 포함한다.
실시 예에 따라, 상기 모바일 시스템의 성능을 증가시키는 단계는 상기 애플리케이션이 실제 작업로드를 위한 준비 단계에서 상기 모바일 시스템의 성능을 증가시키는 단계를 포함한다.
실시 예에 따라, 상기 애플리케이션의 실행 조건을 판단하는 단계는 상기 애플리케이션을 파싱(parsing)하는 단계 및 상기 파싱된 결과에 따라 상기 모바일 시스템의 성능을 제어하는 단계를 포함한다.
실시 예에 따라, 상기 애플리케이션을 파싱하는 단계는 상기 애플리케이션의 ID, 이벤트, 유즈 케이스 중 어느 하나가 사용되는지를 확인하는 단계를 포함한다.
실시 예에 따라, 상기 모바일 시스템의 성능을 제어하는 단계는 상기 모바일 시스템의 동작 클록, 상기 모바일 시스템을 구성하는 하드웨어에 공급되는 구동 전압 및 데이터 버스의 대역폭 중 어느 하나를 조절하는 단계를 포함한다.
실시 예에 따라, 상기 애플리케이션의 실행이 종료되면, 상기 모바일 시스템의 성능을 감소시키는 단계를 더 포함한다.
본 발명의 다른 하나의 실시형태에 따른 모바일 시스템의 최적화 방법은 빌트인 애플리케이션이 설치된 모바일 시스템의 최적화 방법에 있어서, 상기 빌트인 애플리케이션을 실행하는 단계, 상기 빌트인 애플리케이션의 실행 정보를 수신하는 단계 및 상기 빌트인 애플리케이션이 실제 작업로드를 실행하기 전, 상기 수신된 실행 정보를 바탕으로 상기 모바일 시스템의 성능을 제어하는 단계를 포함한다.
실시 예에 따라, 상기 빌트인 애플리케이션을 실행하는 단계는 상기 빌트인 애플리케이션의 작업로드를 위한 준비 단계, 상기 빌트인 애플리케이션이 실제 작업로드를 실행하는 단계 및 상기 애플리케이션이 작업로드를 종료하는 단계를 포함한다.
실시 예에 따라, 상기 모바일 시스템의 성능을 제어하는 단계는 상기 빌트인 애플리케이션이 실제 작업로드를 위한 준비 단계에서 상기 모바일 시스템의 성능을 증가시키는 단계를 포함한다.
실시 예에 따라, 상기 빌트인 애플리케이션의 실행 정보를 수신하는 단계는 상기 빌트인 애플리케이션이 어떤 동작을 실행할 것인지에 관한 정보를 수신하는 단계를 포함한다.
실시 예에 따라, 상기 모바일 시스템의 성능을 증가시키는 단계는 상기 모바일 시스템의 동작 클록, 상기 모바일 시스템을 구성하는 하드웨어에 공급되는 구동 전압 및 데이터 버스의 대역폭 중 어느 하나를 제어하는 단계를 포함한다.
실시 예에 따라, 상기 빌트인 애플리케이션의 실행이 종료되면, 상기 모바일 시스템의 성능을 감소시키는 단계를 더 포함한다.
실시 예에 따라, 상기 빌트인 애플리케이션이 실제 작업로드를 실행하는 단계는 상기 모바일 시스템의 작업로드가 증가되는 단계를 포함한다.
실시 예에 따라, 상기 모바일 시스템의 작업로드가 증가되는 단계는 상기 모바일 시스템의 작업로드에 따른 상기 모바일 시스템의 성능을 증가시키는 단계를 포함한다.
본 발명의 실시 예에 따른 모바일 시스템의 최적화 방법은 동일한 자원을 활용하여 모바일 시스템의 성능을 향상시킬 것이다.
도 1은 본 발명의 하나의 실시 예에 따른 모바일 시스템(100)를 도시한 블록도이다.
도 2는 도 1에 도시된 모바일 시스템(100)의 계층적 구조(hierarchical structure)를 도시한 블록도이다.
도 3는 도 1에 도시된 모바일 시스템(100)을 도시한 블록도이다.
도 4는 도 3에 도시된 애플리케이션 프로세서(110)를 도시한 블록도이다.
도 5는 도 1에 도시된 모바일 시스템(100)의 유즈 케이스(use case)의 구동을 도시한 순서도이다.
도 6a 및 도 6b는 도 5에 도시된 액션의 동작 단계와 중앙 처리 장치의 로드를 도시한다.
도 7은 노말 애플리케이션(41)의 구동에 따른 모바일 시스템의 최적화 방법을 도시한 순서도이다.
도 8은 빌트인 애플리케이션(42)의 구동에 따른 모바일 시스템의 최적화 방법을 도시한 순서도이다.
도 9는 본 발명의 실시 예에 따른 모바일 시스템의 최적화 방법을 적용한 순서도이다.
도 10a은 도 1에 도시된 모바일 시스템(100)에 설치된 애플리케이션들을 도시한다.
도 10b는 도 10a에 도시된 애플리케이션들 중 quadrant 애플리케이션을 실행한 화면을 도시한다.
도 11은 도 1에 도시된 모바일 시스템(100)의 구동 동작을 도시한다.
도 12은 도 3에 도시된 애플리케이션 프로세서(110)를 포함하는 컴퓨터 시스템(310)의 일 실시 예를 나타낸다.
도 13은 도 3에 도시된 애플리케이션 프로세서(110)를 포함하는 컴퓨터 시스템(320)의 다른 실시 예를 나타낸다.
도 14는 도 3에 도시된 애플리케이션 프로세서(110)를 포함하는 컴퓨터 시스템(330)의 또 다른 실시 예를 나타낸다.
본문에 개시되어 있는 본 발명의 실시 예들에 대해서, 특정한 구조적 내지 기능적 설명들은 단지 본 발명의 실시 예를 설명하기 위한 목적으로 예시된 것으로, 본 발명의 실시 예들은 다양한 형태로 실시될 수 있으며 본문에 설명된 실시 예들에 한정되는 것으로 해석되어서는 안 된다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는 바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위로부터 이탈되지 않은 채 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 출원에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 개시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
한편, 어떤 실시 예가 달리 구현 가능한 경우에 특정 블록 내에 명기된 기능 또는 동작이 순서도에 명기된 순서와 다르게 일어날 수도 있다. 예를 들어, 연속하는 두 블록이 실제로는 실질적으로 동시에 수행될 수도 있고, 관련된 기능 또는 동작에 따라서는 상기 블록들이 거꾸로 수행될 수도 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예들을 설명한다.
도 1은 본 발명의 하나의 실시 예에 따른 모바일 시스템(100)를 도시한 블록도이다.
도 1을 참조하면, 모바일 시스템(100)에는 복수의 애플리케이션들이 설치될 것이다. 복수의 애플리케이션들 중에는 앱스토어(Appstore)를 통하여 다운로드된 노말 애플리케이션(41)들과 제조사에서 모바일 시스템(100)에 미리 설치된 빌트인 애플리케이션(42)들이 있다.
모바일 시스템(100)에 설치된 애플리케이션이 실행되면, 애플리케이션의 구동에 의하여 작업로드가 증가할 것이다. 작업로드의 증가하면, 모바일 시스템(100)은 동작 클록 또는 구동 전압을 증가시킬 것이다. 즉, 일반적으로 모바일 시스템(100)은 한정된 자원에 따라 동일한 성능이 제공될 것이다. 또한, 모바일 시스템의 성능(100)은 벤치마킹 애플리케이션에 의하여 점수로 나타난다. 모바일 시스템(100)의 벤치마킹에 사용되는 애플리케이션으로는 QuadrantTM 또는 antutuTM 등이 있다.
일반적으로, 모바일 시스템(100)의 작업로드가 증가하면, 모바일 시스템(100)은 동작 클럭, 동작 전압 또는 데이터 버스의 전송대역(bandwidth)을 증가시킬 것이다. 이에 반하여, 본 발명의 실시 예에 따른 모바일 시스템(100)은 애플리케이션이 실제 구동 전, 애플리케이션의 구체적 실행 조건을 판단하고, 상기 판단된 결과에 따라 모바일 시스템(100)의 성능을 증가시킬 것이다. 모바일 시스템(100)의 내부 구조는 도 3 및 도 4을 통하여 상세히 설명될 것이다.
모바일 시스템(100)은 안드로이드 운영체제를 기반으로 하는 스마트 폰(smart phone), 테블릿(tablet) 또는 디지털 카메라(digital camera) 등으로 구현될 수 있을 것이다. 실시 예에 따라, 모바일 시스템(100)는 갤럭시S3TM (16), 갤럭시 노트 10.1TM (17) 및 갤럭시 카메라TM(18)로 구현될 수 있다.
도 2는 도 1에 도시된 모바일 시스템(100)의 계층적 구조(hierarchical structure)를 도시한 블록도이다.
도 2를 참조하면, 모바일 시스템(100)는 디스플레이 장치, 터치 패널, 카메라, 애플리케이션 프로세서 등과 같은 하드웨어(hardware; 10)로 구성될 것이다.
하드웨어(10)는 커널(kernel; 20)에 의하여 제어될 것이다. 커널(20)은 파일 시스템(file system; 21), 스케쥴러(scheduler; 22), DVFS(dynamic voltage & frequency scaling; 23) 및 디바이스 드라이버(device driver; 24)를 포함할 것이다.
플랫폼(platform; 30)은 커널(20)을 통하여 하드웨어(10)를 관리할 뿐 아니라 애플리케이션(40)을 실행하기 위한 하드웨어 추상화 플랫폼(HAL; hardware abstract layer)과 공통 시스템 서비스(system service)를 제공할 것이다. 실시 예에 따라, 플랫폼(30)은 블랙베리OSTM, iOSTM, 안드로이드(AndroidTM) 또는 타이젠(TIZENTM) 등을 포함할 것이다.
또한, 모바일 시스템(100)는 기능적 확장을 위하여 플랫폼(30) 상에서 하드웨어(10)를 제어하는 애플리케이션(40)을 포함할 것이다.
플랫폼(30)은 라이브러리/HAL 모듈(library/HAL module; 31) 및 애플리케이션 프레임워크(framework; 32)를 포함할 것이다.
애플리케이션 프레임워크(32)는 Dalvik(33), Power manager(34), Network manager(35), Platform services(36), File manager(37) 및 Activity manager(38)를 포함할 것이다.
라이브러리/HAL 모듈(31)은 라이브러리와 애플리케이션(40)을 실행하기 위한 하드웨어 추상화 플랫폼을 제공할 것이다.
플랫폼(30)이 AndroidTM 플랫폼이라고 가정하면, Dalvik(33)은 AndroidTM 플랫폼에서 구동되는 process virtual machine이다. Power manager(34)는 모바일 시스템(100)의 전원을 관리할 것이다. Network manager(35)는 모바일 시스템(100)의 네트워크 자원(resource)을 관리할 것이다. Platform services(36)는 AndroidTM 플랫폼에서 구현되는 서비스를 관리할 것이다. File manager(37)는 파일(file)을 관리할 것이다. Activity manager(38)는 애플리케이션의 생명 주기를 관리할 것이다.
애플리케이션(40)은 빌트인 애플리케이션(built-in application; 41), 노말 애플리케이션(normal application; 42), 비디오 플레이어 애플리케이션(43) 등을 포함할 것이다.
노말 애플리케이션(normal application; 41)은 모바일 시스템(100)의 사용자가 앱스토어를 통하여 유료 또는 무료로 구매한 애플리케이션이다.
빌트인 애플리케이션(42)은 플랫폼 제공자, 모바일 시스템(100)의 제조사 또는 모바일 시스템(100)의 통신사에서 제공하는 애플리레이션으로 사용자의 고려없이 제품에 설치될 것이다. 예를 들면, 안드로이드 운영체제에서 제공하는 지메일(gmail) 등이 있다.
비디오 플레이어 애플리케이션(43)은 모바일 시스템(100)에 저장된 동영상 파일을 재생할 것이다.
도 3는 도 1에 도시된 모바일 시스템(100)을 도시한 블록도이다.
도 3을 참조하면, 모바일 시스템(100)은 애플리케이션 프로세서(application processor; 110), 메모리 장치(120) 및 애플리케이션 프로세서(110)와 메모리 장치(120)에 전원을 공급하고 관리하는 PMIC(power management integrated circuit; 130)를 포함할 것이다.
애플리케이션 프로세서(110)는 메모리 장치(120)를 억세스할 것이다. 또한, 애플리케이션 프로세서(110)는 메모리 장치(120)를 제어하기 위한 메모리 컨트롤러를 포함할 것이다. 애플리케이션 프로세서(110)는 도 4를 통하여 상세히 설명될 것이다. 실시 예에 따라, 애플리케이션 프로세서(110)는 스마트 폰(smart phone), 태블릿(tablet), 디지털 카메라(digital camera), 스마트 TV(smart television) 등에 적용될 것이다.
메모리 장치(120)는 모바일 시스템(100)을 구동하기 위한 운영체제(operating system; OS) 또는 운영체제 상에서 구동되는 애플리케이션을 저장할 것이다. 또한, 메모리 장치(120)는 애플리케이션 프로세서(110)의 요청에 따라 데이터를 저장하거나 출력할 것이다. 실시 예로서, 메모리 장치(120)는 DRAM(dynamic random access memory) 또는 비휘발성 메모리 장치인 플래시 메모리 장치(flash memory device)로 구현될 수 있다.
PMIC(130)는 모바일 시스템(100)을 구성하는 모든 컴포넌트(component)들에게 전원을 공급할 것이다. 구체적으로, PMIC(130)는 애플리케이션 프로세서(110) 및 메모리 장치(120)에 전원을 공급하고 관리할 것이다. 예를 들면, 애플리케이션 프로세서(110)의 작업로드(workload)가 증가하면, PMIC(130)는 애플리케이션 프로세서(110)로 공급되는 전압을 증가시킬 것이다. 마찬가지로, 애플리케이션 프로세서(110)의 작업로드가 감소하면, PMIC(130)는 애플리케이션 프로세서(110)로 공급되는 전압을 감소시킬 것이다.
도 4는 도 3에 도시된 애플리케이션 프로세서(110)를 상세히 도시한 블록도이다.
도 1 내지 도 4를 참조하면, 애플리케이션 프로세서(110)는 중앙 처리 장치(111), MCU(memory control unit; 112) 및 DVFS 컨트롤러(dynamic voltage and frequency scaling controller; 113)를 포함할 것이다.
중앙 처리 장치(111)는 MCU(112)를 통하여 메모리 장치(120)를 억세스할 것이다. 실시 예로서, 중앙 처리 장치(111)는 ARMTM 프로세서로 구현될 것이다.
MCU(112)는 메모리 장치(120)를 제어할 것이다. 메모리 장치(120)가 DRAM으로 구현되면, MCU(112)는 DRAM 컨트롤러로 구현될 것이다. 또한, 메모리 장치(120)가 플래시 메모리 장치로 구현되면, MCU(112)는 플래시 메모리 컨트롤러로 구현될 것이다.
DVFS 컨트롤러(113)는 중앙 처리 장치(111) 및 MCU(112)의 작업로드에 따라 공급되는 전압을 조절하도록 명령(cmd)을 통하여 제어할 것이다.
예를 들면, MCU(112)의 작업 큐(queue)에 명령이 많이 저장되면, MCU(112)는 MCU(112)의 작업로드(MS)를 DVFS 컨트롤러(113)로 전송할 것이다. DVFS 컨트롤러(113)는 MCU(112)의 작업로드(MS)를 바탕으로 MCU(112)의 현재 작업량을 판단할 것이다. DVFS 컨트롤러(113)는 MCU(112)의 작업로드가 크다고 판단하면, DVFS 컨트롤러(113)는 PMIC(130)로 MCU(112)에 공급되는 전압을 증가시키는 명령(cmd)을 전송할 것이다.
마찬가지로, MCU(112)의 작업 큐(queue)에 명령이 적게 저장되면, MCU(112)는 MCU(112)의 작업로드(MS)를 DVFS 컨트롤러(113)로 전송할 것이다. DVFS 컨트롤러(113)는 MCU(112)의 작업로드(MS)를 바탕으로 MCU(112)의 현재 작업량을 판단할 것이다. DVFS 컨트롤러(113)는 MCU(112)의 작업로드가 적다고 판단하면, DVFS 컨트롤러(113)는 PMIC(130)로 MCU(112)에 공급되는 전압을 감소시키는 명령(cmd)을 전송할 것이다.
또한, 애플리케이션 프로세서(110)는 중앙 처리 장치(111) 및 MCU(112)을 연결하는 시스템 버스(system bus; 114)를 더 포함할 것이다.
중앙 처리 장치(111)는 중앙 처리 장치(111)의 작업로드(CS)를 DVFS 컨트롤러(113)로 전송할 것이다. DVFS 컨트롤러(113)는 중앙 처리 장치(111)의 작업로드(CS)에 따른 명령을 PMIC(130)로 전송할 것이다. PMIC(130)는 명령(cmd)을 바탕으로 중앙 처리 장치(111)로 공급되는 전압(Vc)을 조절할 것이다.
MCU(112)는 MCU(112)의 작업로드(MS)를 DVFS 컨트롤러(113)로 전송할 것이다. DVFS 컨트롤러(113)는 MCU(112)의 작업로드(PS)에 따른 명령을 PMIC(130)로 전송할 것이다. PMIC(130)는 명령(cmd)을 바탕으로 MCU(112)으로 공급되는 전압(Vp), MCIO(114)로 공급되는 전압(Vio) 및 MIO(121)로 공급되는 전압(Vio)을 조절할 것이다. 또한, PMIC(130)는 MCU(112)의 작업로드(PS)에 따른 명령(cmd)을 바탕으로 메모리 장치(120)으로 공급되는 전압(Vd)을 조절할 것이다.
예를 들면, 사용자(user)는 모바일 시스템(100)에 설치된 노말 애플리케이션(41)을 실행할 것이다. 노말 애플리케이션(41)의 실행에 의하여 중앙 처리 장치(110)의 작업로드는 증가할 것이다. 중앙 처리 장치(110)는 작업로드에 따른 상태 정보(CS)를 DVFS 컨트롤러(113)로 전송할 것이다.
DVFS 컨트롤러(113)는 명령(CMD)를 통하여 PMIC(130)를 제어할 것이다. 또한, DVFS 컨트롤러(113)는 중앙 처리 장치(110)의 동작 클록을 증가하도록 제어할 것이다.
이에 반하여, 본 발명의 실시 예에 따른 모바일 시스템(100)은 노말 애플리케이션(41)을 파싱(parsing)하고, 파싱된 결과에 따라 애플리케이션 프로세서(110)의 성능을 제어할 것이다. 즉, 모바일 시스템(100)은 중앙 처리 장치(111)의 작업로드가 증가하기 이전에 중앙 처리 장치(110)의 성능을 증가시킬 것이다.
또는 본 발명의 실시 예에 따른 모바일 시스템(100)은 빌트인 애플리케이션(42)을 실행하고, 빌트인 애플리케이션(42)으로부터 실행 정보를 수신하고, 그리고 빌트인 애플리케이션(42)이 실제 작업로드를 실행하기 전, 상기 수신된 실행 정보를 바탕으로 모바일 시스템(100)의 성능을 제어할 것이다. 즉, 모바일 시스템(100)은 중앙 처리 장치(111)의 작업로드가 증가하기 이전에 중앙 처리 장치(110)의 성능을 증가시킬 것이다.
또한, 모바일 시스템(100)은 노말 애플리케이션(41)의 파싱된 결과가 조건을 만족하지 않거나 낮은 성능의 조건 조합이 이루어 지는 경우 애플리케이션 프롤세서(110)의 성능을 감소시킬 것이다.
도 5는 도 1에 도시된 모바일 시스템(100)의 유즈 케이스(use case)의 구동을 도시한 순서도이다.
유즈 케이스란 모바일 시스템(100)에 요구되는 기능을 애플리케이션관점에서 나타낸 것이다. 유즈 케이스는 구체적인 액션(action)들로 구성될 것이다. 따라서, 유즈 케이스는 액션들의 동작 시나리오를 구성할 것이다.
애플리케이션은 적어도 하나의 유즈 케이스를 포함할 것이다. 벤치마크 애플리케이션인 QuadrantTM 애플리케이션을 예로 들면, QuadrantTM 애플리케이션은 IO 테스트 유즈 케이스, 3D 테스트 유즈 케이스 등을 포함할 것이다.
도 5를 참조하면, 예를 들면, 노말 애플리케이션(41)이 실행될 것이다.
S11 단계에서, 제1 유즈 케이스(UC1)가 실행되었는지 또는 제2 유즈 케이스(UC2)가 실행되었는지를 판단한다. 만약 제1 유즈 케이스(UC1)이 실행되었다면, S12, S13 및 S14 단계를 실행할 것이다. 그렇지 않고, 제2 유즈 케이스(UC2)가 실행되었다면, S15, S16 및 S17 단계를 실행할 것이다.
S12 및 S13 단계에서, 제1 유즈 케이스(UC1)을 실행할 것이다. 구체적으로, S12 단계에서, 제1 유즈 케이스(UC1)의 액션1-1을 실행하고, S13 단계에서, 제1 유즈 케이스(UC1)의 액션1-2를 실행할 것이다. 그리고, S14 단계에서, 액션3을 실행하고, 애플리케이션을 종료할 것이다.
S15 및 S16 단계에서, 제2 유즈 케이스(UC2)을 실행할 것이다. 구체적으로, S15 단계에서, 제2 유즈 케이스(UC2)의 액션2-1을 실행하고, S16 단계에서, 제2 유즈 케이스(UC2)의 액션2-2를 실행할 것이다. 그리고, S17 단계에서, 액션4을 실행하고, 애플리케이션을 종료할 것이다.
도 6a 및 도 6b는 도 5에 도시된 제1 유즈 케이스(UC1)의 액션의 동작 단계와 중앙 처리 장치의 작업로드를 도시한다.
도 6a은 제1 유즈 케이스(UC1)의 액션1-1의 동작 단계와 이에 따른 중앙 처리 장치(111)의 워크로드가 도시된다. 그리고 도 6b은 제1 유즈 케이스(UC1)의 액션1-2의 동작 단계와 이에 따른 중앙 처리 장치(111)의 워크로드가 도시된다.
도 6a를 참조하면, 제1 유즈 케이스(UC1)의 액션1-1은 프리액션(pre-action) 단계, 리얼 액션(real action) 단계 및 포스트 액션(post action) 단계로 구성될 것이다.
프리액션 단계는 애플리케이션의 구동에 따른 중앙 처리 장치(111)의 작업로드를 위한 준비 단계이다. 리얼 액션 단계는 애플리케이션의 구동에 따른 중앙 처리 장치(111)의 실제 작업로드를 실행하는 단계이다. 그리고 포스트 액션 단계는 애플리케이션을 종료하기 위한 단계이다.
제1 유즈 케이스(UC1)의 액션1-1의 경우 중앙 처리 장치(111)의 작업로드는 리얼 액션 단계에서 증가할 것이다. 일반적으로, 중앙 처리 장치(111)의 작업로드가 증가하면, 애플리케이션 프로세서(110)의 성능을 증가시킬 것이다. 이에 반하여, 본 발명의 실시 예에 따른 모바일 시스템(100)은 중앙 처리 장치(111)의 작업로드가 증가하기 이전에 애플리케이션 프로세서(110)의 성능을 증가시킬 것이다. 구체적으로, 프리액션 단계 즉, 중앙 처리 장치(111)의 실제 작업로드를 위한 준비 단계에서 모바일 시스템(100)은 애플리케이션 프로세서(110)의 성능을 증가시킬 것이다.
도 6b를 참조하면, 제1 유즈 케이스(UC1)의 액션1-1과 마찬가지로, 제1 유즈 케이스(UC1)의 액션1-2은 프리액션(pre-action) 단계, 리얼 액션(real action) 단계 및 포스트 액션(post action) 단계로 구성될 것이다.
제1 유즈 케이스(UC1)의 액션1-2의 경우 중앙 처리 장치(111)의 작업로드는 리얼 액션 단계에서 증가할 것이다. 따라서, 본 발명의 실시 예에 따른 모바일 시스템(100)은 중앙 처리 장치(111)의 작업로드가 증가하기 이전 즉, 프리액션 단계에서 애플리케이션 프로세서(110)의 성능을 증가시킬 것이다.
도 7은 노말 애플리케이션(41)의 구동에 따른 모바일 시스템의 최적화 방법을 도시한 순서도이다.
도 7을 참조하면, S21 단계에서, 사용자는 모바일 시스템(100)에 설치된 복수의 애플리케이션들 중 어느 하나를 실행할 것이다. 예를 들면, 사용자는 노말 애플리케이션(41)을 실행할 것이다.
노말 애플리케이션(41)이 실행되는 단계는 노말 애플리케이션(41)의 작업로드를 위한 준비 단계, 노말 애플리케이션(41)이 실제 작업로드를 실행하는 단계, 및 노말 애플리케이션(41)이 작업로드를 종료하는 단계를 포함할 것이다.
S22 단계에서, 모바일 시스템(100)은 노말 애플리케이션(41)의 실행 조건을 판단할 것이다.
노말 애플리케이션(41)의 실행 조건을 판단하는 단계는 노말 애플리케이션(41)을 파싱(parsing)하는 단계 및 상기 파싱된 결과에 따라 모바일 시스템(100)의 성능을 제어하는 단계를 포함할 것이다. 구체적으로, 노말 애플리케이션(41)을 파싱하는 단계는 노말 애플리케이션(41)이 어떤 동작을 실행할 지를 판단하는 단계를 포함할 것이다.
또한, 모바일 시스템(100)의 성능을 제어하는 단계는 애플리케이션 프로세서(110)의 동작 클록, 애플리케이션 프로세서(110)에 공급되는 구동 전압 및 데이터 버스의 대역폭 중 어느 하나를 조절하는 단계를 포함할 것이다.
S23 단계에서, 모바일 시스템(100)은 상기 애플리케이션이 실제 작업로드를 실행하기 전, 상기 판단된 결과에 따라 애플리케이션 프로세서(110)의 성능을 제어할 것이다. 그리고, 노말 애플리케이션(41)의 실행이 종료되면, 애플리케이션 프로세서(110)의 성능을 감소시키는 단계를 더 포함할 것이다.
도 8은 빌트인 애플리케이션(42)의 구동에 따른 모바일 시스템의 최적화 방법을 도시한 순서도이다.
도 8을 참조하면, S31 단계에서, 사용자는 모바일 시스템(100)에 설치된 복수의 애플리케이션들 중 어느 하나를 실행할 것이다. 예를 들면, 사용자는 빌트인 애플리케이션(42)을 실행할 것이다.
빌트인 애플리케이션(42)이 실행되는 단계는 빌트인 애플리케이션(42)의 작업로드를 위한 준비 단계, 빌트인 애플리케이션(42)이 실제 작업로드를 실행하는 단계, 및 빌트인 애플리케이션(42)이 작업로드를 종료하는 단계를 포함할 것이다.
S32 단계에서, 애플리케이션 프로세서(110)는 빌트인 애플리케이션(42)의 실행 정보를 수신할 것이다. 빌트인 애플리케이션(42)의 실행 정보를 수신하는 단계는 빌트인 애플리케이션(42)이 어떤 동작을 실행할 것인지에 관한 정보를 수신하는 단계를 포함할 것이다. 또한, 모바일 시스템(100)의 성능을 제어하는 단계는 애플리케이션 프로세서(110)의 동작 클록, 애플리케이션 프로세서(110)에 공급되는 구동 전압 및 데이터 버스의 대역폭 중 어느 하나를 조절하는 단계를 포함할 것이다.
S33 단계에서, 빌트인 애플리케이션(42)이 실제 작업로드를 실행하기 전, 상기 수신된 실행 정보를 바탕으로 상기 모바일 시스템의 성능을 제어할 것이다.
도 9는 본 발명의 실시 예에 따른 모바일 시스템의 최적화 방법을 적용한 순서도이다.
도 9를 참조하면, S41 단계에서, 모바일 시스템(100)은 정보를 대기할것이다. 예를 들면, 모바일 시스템(100)은 노말 애플리케이션(41)의 실행 조건에 관한 정보를 수신할 것이다. 또는 모바일 시스템(100)은 빌트인 애플리케이션(42)의 실행 정보를 수신할 것이다.
S42 단계에서, 모바일 시스템(100)은 정보가 유용한지를 판단한다. 만약 정보가 유용하면, S4j3 단계를 실행하고, 그렇지 않으면, S41 단계를 실행한다.
S43 단계에서, 모바일 시스템(100)은 조합을 체크한다. 예를 들면, 모바일 시스템(100)이 노말 애플리케이션(41)의 실행 조건에 관한 정보를 수신한 경우, 모바일 시스템(100)은 상기 실행 조건들의 조합이 모두 만족되었는지를 판단한다.
또는, 모바일 시스템(100)이 빌트인 애플리케이션(42)의 실행 정보를 수신한 경우, 모바일 시스템(100)은 상기 실행 정보의 조합이 모두 만족되었는지를 판단한다. 만약 조합이 모두 만족되면, S44 단계를 실행하고, 그렇지 않으면, S41 단계를 실행한다.
S44 단계에서, 모바일 시스템(100)은 모바일 시스템(100)의 성능을 제어하기 위하여 설정을 변경할 것이다.
도 10a은 도 1에 도시된 모바일 시스템(100)에 설치된 애플리케이션들을 도시한다. 그리고, 도 10b는 도 10a에 도시된 애플리케이션들 중 QuadrantTM 애플리케이션을 실행한 화면을 도시한다.
도 10a 및 도 10b를 참조하면, 사용자(user)는 QuadrantTM 애플리케이션을 실행할 것이다. QuadrantTM 애플리케이션은 모바일 시스템(100)의 성능을 측정하는 대표적인 벤치마킹 애플리케이션이다.
QuadrantTM 애플리케이션의 유즈 케이스가 실행되면, Activity manager(38)는 런칭(launching)되는 애플리케이션의 정보를 파싱(parsing)하여 QuadrantTM 애플리케이션이 벤치마킹 애플리케이션임을 인지할 것이다.
모바일 시스템(100)의 성능을 증가시키기 위하여 Power manager(34)는 미리 정의된 BENCH_START의 설정 세트를 커널(20)을 통해 설정할 것이다.
아래는 모바일 시스템(100)이 QuadrantTM 애플리케이션의 실행을 감지하여 모바일 시스템(100)의 성능을 제어하는 명령과 그에 따른 결과를 나타낸다.
Write(BENCH_START, kernel_sysfs_opt)
CPU1, CPU2, CPU3, CPU4 max freq 1.8GHz
Kernel_sysfs_opt는 BENCH_START 설정 세트를 저장하는 저장 장소이다. 예시적으로, 중앙 처리 장치(111)는 4개 프로세스 코어(CPU1-CPU4)를 포함할 것이다. 4개 프로세스 코어(CPU1-CPU4)들 각각의 동작 클록은 최대 주파수인 1.8GHz로 설정될 것이다.
즉, 모바일 시스템(100)은 Activity manager(38)를 통하여 QuadrantTM 애플리케이션의 유즈 케이스가 실행된 것을 감지하면, Power manager(34)를 통하여 모바일 시스템(100)의 성능을 조절하기 위한 설정 세트를 변경할 것이다.
QuadrantTM 애플리케이션의 테스트 유즈 케이스가 실행되면, Activity manager(38)는 벤치마크 프로세서의 spawn child thread를 감시하여 중앙 처리 장치(111)의 test runner thread 인 pool-thread1부터 pool-thread4의 생성을 인지할 것이다.
모바일 시스템(100)의 성능을 증가시키기 위하여 Power manager(34)는 미리 정의된 BENCH_CPU의 설정 세트를 커널(20)을 통해 설정할 것이다.
아래는 모바일 시스템(100)이 QuadrantTM 애플리케이션의 실행을 감지하여 모바일 시스템(100)의 성능을 제어하는 명령과 그에 따른 결과를 나타낸다.
Write(BENCH_CPU, kernel_sysfs_opt)
CPU1, CPU2 freq 1.6GHz CPU3, CPU4 OFF
Kernel_sysfs_opt는 BENCH_CPU 설정 세트를 저장하는 저장 장소이다. 예시적으로, 중앙 처리 장치(111)는 4개 프로세스 코어(CPU1-CPU4)를 포함할 것이다. CPU1 및 CPU2 각각의 동작 클록은 1.6GHz로 설정될 것이다. 또한, CPU3 및 CPU4 각각은 오프(off) 상태로 설정될 것이다.
QuadrantTM 애플리케이션의 IO(input/output) 테스트 유즈 케이스가 실행되면, File manager(37)는 IO 테스트에 사용되는 파일의 억세스에 대한 이벤트를 대기시킬 것이다. 또한, File manager(37)는 디렉토리 /data/data/com .aurorasoftworks.quadrant/files/에 _tmp.file의 open event를 통하여 IO 테스트 시작 직전임을 인지할 것이다.
모바일 시스템(100)의 성능을 증가시키기 위하여 Power manager(34)는 미리 정의된 BENCH_IO의 설정 세트를 커널(20)을 통해 설정할 것이다.
아래는 모바일 시스템(100)이 QuadrantTM 애플리케이션의 실행을 감지하여 모바일 시스템(100)의 성능을 제어하는 명령과 그에 따른 결과를 나타낸다.
Write(BENCH_IO, kernel_sysfs_opt)
CPU1, CPU2 freq 1.6GHz CPU3, CPU4 OFF
MIF800/INT400
Kernel_sysfs_opt는 BENCH_IO 설정 세트를 저장하는 저장 장소이다. 예시적으로, 중앙 처리 장치(111)는 4개 프로세스 코어(CPU1-CPU4)를 포함할 것이다. CPU1 및 CPU2 각각의 동작 클록은 1.6GHz로 설정될 것이다. 또한, CPU3 및 CPU4 각각은 오프(off) 상태로 설정될 것이다. 그리고, 메모리 동작 클록은 800MHz 로 설정되고, 버스의 대역폭은 400MHz로 설정될 것이다.
QuadrantTM 애플리케이션의 3D(dimension) 테스트 유즈 케이스가 실행되면, Activity manager(38)는 3D test runner thread 생성을 인지할 것이다. 그리고, Activity manager(38)는 /proc/<testID>/stat를 파싱(parsing)하여 resume state 변경시 3D 테스트 시작임을 인지할 것이다.
모바일 시스템(100)의 성능을 증가시키기 위하여 Power manager(34)는 미리 정의된 BENCH_3D의 설정 세트를 커널(20)을 통해 설정할 것이다.
아래는 모바일 시스템(100)이 QuadrantTM 애플리케이션의 실행을 감지하여 모바일 시스템(100)의 성능을 제어하는 명령과 그에 따른 결과를 나타낸다.
Write(BENCH_3D, kernel_sysfs_opt)
CPU1, CPU2 freq 1.6GHz CPU3, CPU4 OFF
MIF800/INT400
GPU clock 480MHz, GPU Voltage 1.1v
Kernel_sysfs_opt는 BENCH_3D 설정 세트를 저장하는 저장 장소이다. 예시적으로, 중앙 처리 장치(111)는 4개 프로세스 코어(CPU1-CPU4)를 포함할 것이다. CPU1 및 CPU2 각각의 동작 클록은 1.6GHz로 설정될 것이다. 또한, CPU3 및 CPU4 각각은 오프(off) 상태로 설정될 것이다. 그리고, 메모리 동작 클록은 800MHz 로 설정되고, 버스의 대역폭은 400MHz로 설정될 것이다. 또한, 그래픽 프로세서(GPU)의 동작 클록은 480MHz로 설정되고, 그래픽 프로세서(GPU)의 동작 전압은 1.1 V로 설정될 것이다.
도 11은 도 1에 도시된 모바일 시스템(100)의 구동 동작을 도시한다.
도 2 및 도 11을 참조하면, 모바일 시스템(100)은 WIFI 인터페이스를 통하여 삼성 클라우드(Samsung cloud; S-Cloud) 서비스(210)를 사용할 수 있다. 즉, 모바일 시스템(100)은 빌트인 애플리케이션(42)으로 삼성 클라우드(S-Cloud) 애플리케이션을 실행할 것이다.
모바일 시스템(100)은 빌트인 애플리케이션(42)의 실행 정보로부터 네트워크(network) 권한 및 삼성 클라우드(S-Cloud) 애플리케이션을 인지하고, 빌트인 애플리케이션(42)이 요청한 URL이 삼성 클라우드(Samsung cloud) 주소인 경우 파일 다운로드를 요청하는 경우 모바일 시스템(100)의 성능을 증가시킬 것이다.
모바일 시스템(100)의 성능을 증가시키기 위하여, Network manager(35)은 http connection을 2개에서 4개로 증가할 것이다. 그리고, File manager(37)는 서버 파일(server file)의 read ahead를 128byte에서 1024Kbyte로 증가시킬 것이다.
또 다른 예로서, 모바일 시스템(100)이 Gallery 애플리케이션을 실행하면, 모바일 시스템(100)은 외부 장치를 억세스할 것이다. 예를 들면, 모바일 시스템(100)은 USB 케이블을 통하여 디지털 카메라(220)에 접속할 수 있다. 또한, 모바일 시스템(100)은 무선 USB 인터페이스를 통하여 USB storage(230)에 접속할 수 있다. 그리고, 모바일 시스템(100)은 내장된 SD 카드(240)에 접속할 수 있다.
모바일 시스템(100)은 Gallery 애플리케이션의 실행 정보로부터 SD 카드의 리드/라이트(read/write)를 위한 group ID를 인지하여 Gallery 애플리케이션을 확인할 것이다. 그리고, 모바일 시스템(100)은 Gallery 애플리케이션이 원도우 최상위에서 구동되는 것을 인지할 것이다. 또한, 모바일 시스템(100)은 Gallery 애플리케이션이 마운트 서비스(mount service)의 요청을 인지할 것이다.
3가지 조건의 조합이 모두 만족되면, 모바일 시스템(100)은 아래와 같이 모바일 시스템(100)의 성능을 증가시킬 것이다. 구체적으로, Dalvic(33)은 마운트 서비스(mount service)의 우선권(priority)를 증가시킬 것이다. 또한, Dalvic(33)은 미디어 스캐너(scanner) 작업을 CPU0로 이주(migration)시킨 후 CPU0의 클록 주파수를 최대로 증가시킬 것이다. 그리고, File manager(37)는 요청한 외부 장치에 대한 read ahead를 128byte에서 1024Kbyte로 증가시킬 것이다.
도 12은 도 3에 도시된 애플리케이션 프로세서(110)를 포함하는 컴퓨터 시스템(310)의 일 실시 예를 나타낸다.
도 12을 참조하면, 컴퓨터 시스템(310)은 메모리 장치(311), 메모리 장치(311)을 제어하는 메모리 컨트롤러(312), 무선 송수신기(313), 안테나(314), 애플리케이션 프로세서(315), 입력 장치(316) 및 디스플레이(317)를 포함한다.
무선 송수신기(313)는 안테나(314)를 통하여 무선 신호를 주거나 받을 수 있다. 예컨대, 무선 송수신기(313)는 안테나(314)를 통하여 수신된 무선 신호를 애플리케이션 프로세서(315)에서 처리될 수 있는 신호로 변경할 수 있다.
따라서, 애플리케이션 프로세서(315)는 무선 송수신기(4120)로부터 출력된 신호를 처리하고 처리된 신호를 디스플레이(317)로 전송할 수 있다. 또한, 무선 송수신기(313)는 애플리케이션 프로세서(315)으로부터 출력된 신호를 무선 신호로 변경하고 변경된 무선 신호를 안테나(314)를 통하여 외부 장치로 출력할 수 있다.
입력 장치(316)는 애플리케이션 프로세서(315)의 동작을 제어하기 위한 제어 신호 또는 애플리케이션 프로세서(315)에 의하여 처리될 데이터를 입력할 수 있는 장치로서, 터치 패드 (touch pad)와 컴퓨터 마우스(computer mouse)와 같은 포인팅 장치(pointing device), 키패드(keypad), 또는 키보드로 구현될 수 있다.
실시 예에 따라, 메모리 장치(311)의 동작을 제어할 수 있는 메모리 컨트롤러(312)는 애플리케이션 프로세서(315)의 일부로서 구현될 수 있고 또한 애플리케이션 프로세서(315)와 별도의 칩으로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(315)는 도 2에 도시된 애플리케이션 프로세서(110)로 구현될 수 있다.
도 13은 도 3에 도시된 애플리케이션 프로세서(110)를 포함하는 컴퓨터 시스템(320)의 다른 실시 예를 나타낸다.
도 13을 참조하면, 컴퓨터 시스템(320)은 PC(personal computer), 네트워크 서버(Network Server), 태블릿(tablet) PC, 넷-북(net-book), e-리더(e-reader), PDA (personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 또는 MP4 플레이어로 구현될 수 있다.
컴퓨터 시스템(320)은 메모리 장치(321)와 메모리 장치(321)의 데이터 처리 동작을 제어할 수 있는 메모리 컨트롤러(322), 애플리케이션 프로세서(323), 입력 장치(324) 및 디스플레이(325)를 포함한다.
애플리케이션 프로세서(323)는 입력 장치(324)를 통하여 입력된 데이터에 따라 메모리 장치(321)에 저장된 데이터를 디스플레이(325)를 통하여 디스플레이할 수 있다. 예컨대, 입력 장치(324)는 터치 패드 또는 컴퓨터 마우스와 같은 포인팅 장치, 키패드, 또는 키보드로 구현될 수 있다. 애플리케이션 프로세서(323)는 컴퓨터 시스템(320)의 전반적인 동작을 제어할 수 있고 메모리 컨트롤러(322)의 동작을 제어할 수 있다.
실시 예에 따라 메모리 장치(321)의 동작을 제어할 수 있는 메모리 컨트롤러(322)는 애플리케이션 프로세서(323)의 일부로서 구현될 수 있고 또한 애플리케이션 프로세서(323)와 별도의 칩으로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(323)는 도 2에 도시된 애플리케이션 프로세서(110)로 구현될 수 있다.
도 14는 도 3에 도시된 애플리케이션 프로세서(110)를 포함하는 컴퓨터 시스템(330)의 또 다른 실시 예를 나타낸다.
도 14을 참조하면, 컴퓨터 시스템(330)은 이미지 처리 장치(Image Process Device), 예컨대 디지털 카메라 또는 디지털 카메라가 부착된 이동 전화기, 스마트 폰(smart phone) 또는 테블릿(tablet) 으로 구현될 수 있다.
컴퓨터 시스템(330)은 메모리 장치(331)와 메모리 장치(331)의 데이터 처리 동작, 예컨대 라이트(write) 동작 또는 리드(read) 동작을 제어할 수 있는 메모리 컨트롤러(332)를 포함한다. 또한, 컴퓨터 시스템(330)은 애플리케이션 프로세서(333), 이미지 센서(334) 및 디스플레이(335)을 더 포함한다.
컴퓨터 시스템(330)의 이미지 센서(334)는 광학 이미지를 디지털 신호들로 변환하고, 변환된 디지털 신호들은 애플리케이션 프로세서(333) 또는 메모리 컨트롤러(332)로 전송된다. 애플리케이션 프로세서(333)의 제어에 따라, 상기 변환된 디지털 신호들은 디스플레이(335)를 통하여 디스플레이되거나 또는 메모리 컨트롤러(332)를 통하여 메모리 장치(331)에 저장될 수 있다.
또한, 메모리 장치(331)에 저장된 데이터는 애플리케이션 프로세서(333) 또는 메모리 컨트롤러(332)의 제어에 따라 디스플레이(335)를 통하여 디스플레이된다.
실시 예에 따라, 메모리 장치(331)의 동작을 제어할 수 있는 메모리 컨트롤러(332)는 애플리케이션 프로세서(333)의 일부로서 구현될 수 있고 또한 애플리케이션 프로세서(333)와 별개의 칩으로 구현될 수 있다.
실시 예에 따라, 애플리케이션 프로세서(333)는 도 2에 도시된 애플리케이션 프로세서(110)로 구현될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 모바일 시스템의 성능을 증가시킬 수 있는 모바일 시스템의 최적화 방법에 적용이 가능하다.
상기에서는 본 발명의 바람직한 실시 예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10 : 하드웨어
20 : 커널
30 : 플랫폼
40 : 애플리케이션
41 : 노말 애플리케이션
42 : 빌트인 애플리케이션
100 : 모바일 시스템
110 : 애플리케이션 프로세서
111 : 중앙 처리 장치
112 : MCU
113 : DVFS Controller
120 : 메모리 장치
130 : PMIC
310 : 제1 실시 예에 따른 컴퓨터 시스템
320 : 제2 실시 예에 따른 컴퓨터 시스템
330 : 제3 실시 예에 따른 컴퓨터 시스템

Claims (12)

  1. 모바일 시스템의 성능 관리 방법에 있어서,
    상기 모바일 시스템에서, 애플리케이션을 실행하는 단계;
    상기 애플리케이션이 실행하기 전에, 상기 애플리케이션이 노말 애플리케이션인 경우 상기 애플리케이션을 파싱(parsing)하고, 상기 애플리케이션이 빌트인 애플리케이션인 경우 실행 조건을 수신함으로써 상기 애플리케이션의 실행 조건을 판별하는 단계;
    상기 애플리케이션이 실제 작업로드를 실행하기 전에, 상기 판별된 실행 조건에 응답하여 상기 모바일 시스템의 성능을 제어하는 단계를 포함하고,
    상기 모바일 시스템은 상기 애플리케이션을 처리하여 상기 실제 작업로드를 실행하는 프로세서를 포함하고,
    상기 프로세서의 성능은 상기 프로세서의 작업로드가 증가하기 전에 증가되고,
    상기 애플리케이션을 실행하는 단계는:
    상기 애플리케이션의 작업로드를 준비하는 단계;
    상기 애플리케이션에 의해 상기 실제 작업로드를 실행하는 단계;
    상기 애플리케이션에 의해 상기 작업로드를 종료하는 단계를 포함하고,
    상기 모바일 시스템의 상기 성능을 제어하는 단계는:
    상기 애플리케이션이 상기 작업로드를 준비하는 것과 동시에 상기 모바일 시스템의 상기 성능을 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  2. 제 1 항에 있어서,
    상기 애플리케이션을 파싱하는 것은 상기 애플리케이션의 ID, 이벤트, 및 유즈 케이스 중 어느 하나가 사용되는지를 확인하는 것을 포함하는 모바일 시스템의 성능 관리 방법.
  3. 제 1 항에 있어서,
    상기 모바일 시스템의 상기 성능을 제어하는 단계는:
    상기 모바일 시스템의 동작 클럭, 상기 모바일 시스템을 구성하는 하드웨어로 제공되는 구동 전압, 및 데이터 버스의 대역폭 중 적어도 하나를 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  4. 제 1 항에 있어서,
    상기 애플리케이션의 상기 실행의 종료에 응답하여 상기 모바일 시스템의 상기 성능을 감소시키는 단계를 더 포함하는 모바일 시스템의 성능 관리 방법.
  5. 빌트-인 애플리케이션이 내장된 모바일 시스템의 성능 관리 방법에 있어서,
    상기 빌트-인 애플리케이션을 실행하기 전에, 상기 애플리케이션에 대한 실행 정보를 수신하여 상기 애플리케이션을 식별하는 단계;
    상기 빌트-인 애플리케이션이 실제 작업로드를 실행하기 전에, 상기 수신된 실행 정보를 참조하여 상기 모바일 시스템의 성능을 제어하는 단계; 및
    상기 빌트-인 애플리케이션을 실행하는 단계를 포함하고,
    상기 모바일 시스템은 상기 빌트-인 애플리케이션을 실행하여 상기 실제 작업로드를 수행하는 프로세서를 포함하고, 상기 프로세서의 성능은 상기 프로세서의 작업로드가 증가하기 전에 증가되고,
    상기 빌트-인 애플리케이션을 실행하는 단계는:
    상기 빌트-인 애플리케이션의 작업로드를 준비하는 단계;
    상기 빌트-인 애플리케이션에 의해 상기 실제 작업로드를 실행하는 단계; 및
    상기 빌트-인 애플리케이션의 상기 작업로드를 종료하는 단계를 포함하고,
    상기 모바일 시스템의 상기 성능을 제어하는 단계는:
    상기 애플리케이션이 상기 작업로드를 준비하는 것과 동시에 상기 모바일 시스템의 상기 성능을 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  6. 제 5 항에 있어서,
    상기 빌트-인 애플리케이션에 대한 실행 정보를 수신하는 단계는:
    상기 빌트-인 애플리케이션에 의해 실행되는 동작에 대한 정보를 수신하는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  7. 제 5 항에 있어서,
    상기 모바일 시스템의 성능을 제어하는 단계는:
    상기 모바일 시스템의 동작 클럭, 상기 모바일 시스템을 구성하는 하드웨어로 제공되는 구동 전압, 및 데이터 버스의 대역폭 중 적어도 하나를 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  8. 제 5 항에 있어서,
    상기 빌트-인 애플리케이션의 상기 실행의 종료에 응답하여, 상기 모바일 시스템의 상기 성능을 감소시키는 단계를 더 포함하는 모바일 시스템의 성능 관리 방법.
  9. 제 5 항에 있어서,
    상기 빌트-인 애플리케이션의 상기 실제 작업로드를 실행하는 단계를;
    상기 모바일 시스템의 작업로드를 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  10. 제 9 항에 있어서,
    상기 모바일 시스템의 상기 작업로드를 증가시키는 단계는:
    상기 모바일 시스템의 상기 작업로드에 따라 상기 모바일 시스템의 상기 성능을 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  11. 모바일 시스템의 성능 관리 방법에 있어서,
    애플리케이션을 실행하기 전에, 상기 애플리케이션이 노말 애플리케이션인 경우 상기 애플리케이션을 파싱함으로써 실행 조건을 판별하고, 상기 애플리케이션이 빌트-인 애플리케이션인 경우 상기 실행 조건을 수신함으로써 상기 실행 조건을 판별하는 단계;
    상기 모바일 시스템의 프로세서에 의해 상기 애플리케이션을 실행하는 단계;
    상기 애플리케이션의 상기 실행 조건이 기준 조건에 만족되는지 판별하는 단계; 및
    상기 애플리케이션의 상기 실행 조건이 상기 기준 조건에 만족되는 것에 응답하여 상기 모바일 시스템의 성능을 제어하는 단계를 포함하고,
    상기 프로세서의 성능은 상기 프로세서의 작업로드가 증가하기 전에 향상되고,
    상기 모바일 시스템의 상기 성능은 상기 애플리케이션의 실제 작업로드가 실행되기 전에 제어되고,
    상기 모바일 시스템의 상기 성능을 제어하는 단계는:
    상기 애플리케이션이 작업로드를 준비하는 것과 동시에 상기 모바일 시스템의 상기 성능을 증가시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.
  12. 제 11 항에 있어서,
    상기 애플리케이션의 상기 실행의 종료에 응답하여 상기 모바일 시스템의 상기 성능을 감소시키는 단계를 포함하는 모바일 시스템의 성능 관리 방법.

KR1020130025875A 2013-03-11 2013-03-11 모바일 시스템의 최적화 방법 KR102060703B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020130025875A KR102060703B1 (ko) 2013-03-11 2013-03-11 모바일 시스템의 최적화 방법
US14/198,744 US9658674B2 (en) 2013-03-11 2014-03-06 Mobile system optimization method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130025875A KR102060703B1 (ko) 2013-03-11 2013-03-11 모바일 시스템의 최적화 방법

Publications (2)

Publication Number Publication Date
KR20140111558A KR20140111558A (ko) 2014-09-19
KR102060703B1 true KR102060703B1 (ko) 2020-02-11

Family

ID=51489407

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130025875A KR102060703B1 (ko) 2013-03-11 2013-03-11 모바일 시스템의 최적화 방법

Country Status (2)

Country Link
US (1) US9658674B2 (ko)
KR (1) KR102060703B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180032374A1 (en) * 2016-08-01 2018-02-01 Intel Corporation Application launch booster
KR20230057786A (ko) * 2021-10-22 2023-05-02 삼성전자주식회사 전자 장치 및 전자 장치에서 어플리케이션 실행 성능 최적화 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543233A (ja) 2006-07-06 2009-12-03 アコリ ネットワークス,インコーポレイテッド アプリケーションシステムの負荷管理
US20120210325A1 (en) * 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Method And Apparatus Of Smart Power Management For Mobile Communication Terminals Using Power Thresholds

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6006192A (en) 1997-03-12 1999-12-21 International Business Machines Corporation Method for production planning in an uncertain demand environment
US7016870B1 (en) 1997-12-02 2006-03-21 Financial Engines Identifying a recommended portfolio of financial products for an investor based upon financial products that are available to the investor
US8214250B2 (en) 1998-09-18 2012-07-03 Jda Software Group, Inc. System and method for multi-enterprise supply chain optimization
JP2000293569A (ja) 1999-04-02 2000-10-20 Rg Asset Management Co Ltd ポートフォリオの提示方法、提示装置、提示システム及びコンピュータプログラムの記憶媒体
US7512543B2 (en) 2002-05-29 2009-03-31 Schlumberger Technology Corporation Tools for decision-making in reservoir risk management
US20080177994A1 (en) 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US20070128899A1 (en) 2003-01-12 2007-06-07 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US20050108687A1 (en) 2003-11-18 2005-05-19 Mountain Highland M. Context and content sensitive distributed application acceleration framework
US8312549B2 (en) 2004-09-24 2012-11-13 Ygor Goldberg Practical threat analysis
US7319908B2 (en) 2005-10-28 2008-01-15 Microsoft Corporation Multi-modal device power/mode management
US7716151B2 (en) * 2006-02-13 2010-05-11 Infosys Technologies, Ltd. Apparatus, method and product for optimizing software system workload performance scenarios using multiple criteria decision making
CN101385000A (zh) * 2006-02-17 2009-03-11 高通股份有限公司 用于多处理器应用程序支持的***及方法
US20080085497A1 (en) 2006-09-18 2008-04-10 Holmes Lauren L Method for enhancing leadership, entrepreneurship, performance, innovation, creativity, and career achievement.
US7680719B1 (en) 2006-12-12 2010-03-16 Goldman Sachs & Co. Method, system and apparatus for wealth management
US8175990B1 (en) 2007-01-04 2012-05-08 Iloop Mobile, Inc. Situational decision engine and method for contextual user experience
US20090187425A1 (en) 2007-09-17 2009-07-23 Arthur Solomon Thompson PDA software robots leveraging past history in seconds with software robots
US20090116597A1 (en) 2007-11-06 2009-05-07 Jordi Cortadella Variability-Aware Asynchronous Scheme for High-Performance Communication Between an Asynchronous Circuit and a Synchronous Circuit
US7893335B2 (en) 2008-01-04 2011-02-22 Joseph P Szczap Key leveler for musical instruments, computerized key leveling system, and methods of use
US8311652B2 (en) 2008-03-28 2012-11-13 Saudi Arabian Oil Company Control method of refrigeration systems in gas plants with parallel trains
US8260928B2 (en) * 2008-05-05 2012-09-04 Siemens Industry, Inc. Methods to optimally allocating the computer server load based on the suitability of environmental conditions
US20100015579A1 (en) 2008-07-16 2010-01-21 Jerry Schlabach Cognitive amplification for contextual game-theoretic analysis of courses of action addressing physical engagements
US8316428B2 (en) 2008-09-25 2012-11-20 Ntt Docomo, Inc. Method and apparatus for security-risk based admission control
US8255716B2 (en) 2009-08-27 2012-08-28 Qualcomm Incorporated Power optimization for data services
US8224348B2 (en) 2009-12-18 2012-07-17 Trueposition, Inc. Location intelligence management system
US8645732B2 (en) 2010-02-19 2014-02-04 Qualcomm, Incorporated Protocol stack power optimization for wireless communications devices
US9183560B2 (en) 2010-05-28 2015-11-10 Daniel H. Abelow Reality alternate
KR101183124B1 (ko) 2010-06-21 2012-09-14 한국과학기술원 상황 모니터링을 지원하는 모바일 장치, 이를 이용하는 상황 모니터링 방법 및 이를 포함하는 상황 모니터링 시스템
US8320898B2 (en) * 2010-09-16 2012-11-27 Qualcomm Incorporated Systems and methods for optimizing the configuration of a set of performance scaling algorithms
US20120084028A1 (en) * 2010-09-30 2012-04-05 Ibm Corporation Framework and Methodology for a Real-Time Fine-Grained Power Profiling with Integrated Modeling
US9536269B2 (en) 2011-01-19 2017-01-03 24/7 Customer, Inc. Method and apparatus for analyzing and applying data related to customer interactions with social media

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009543233A (ja) 2006-07-06 2009-12-03 アコリ ネットワークス,インコーポレイテッド アプリケーションシステムの負荷管理
US20120210325A1 (en) * 2011-02-10 2012-08-16 Alcatel-Lucent Usa Inc. Method And Apparatus Of Smart Power Management For Mobile Communication Terminals Using Power Thresholds

Also Published As

Publication number Publication date
US9658674B2 (en) 2017-05-23
US20140258751A1 (en) 2014-09-11
KR20140111558A (ko) 2014-09-19

Similar Documents

Publication Publication Date Title
US9710309B2 (en) Task scheduling in big and little cores
TWI720047B (zh) 控制在處理器中的遙測資料通訊
US9811497B2 (en) Memory extension system and method
CN107250946B (zh) 执行对平台装置的动态功率控制
KR20240016449A (ko) 프로세서의 최적화된 스로틀링을 위한 시스템, 장치 및 방법
US11526440B2 (en) Providing multiple memory modes for a processor including internal memory
US8984200B2 (en) Task scheduling in big and little cores
EP3886385A1 (en) Device, system and method to dynamically prioritize a data flow based on user interest in a task
US10948968B2 (en) Controlling processor performance scaling based on context
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
JP2013543613A (ja) プラットフォーム省電力化のための装置・アプリケーションブレークイベント協調
KR20110094764A (ko) 트랜잭션 기반 입출력 인터페이스를 제공하는 가상화 장치 및 방법
US10572667B2 (en) Coordinating power management between virtual machines
WO2018236543A1 (en) MAXIMUM DYNAMIC FREQUENCY LIMIT FOR TREATING HEART GROUPS
KR102060703B1 (ko) 모바일 시스템의 최적화 방법
EP3855285B1 (en) System, apparatus and method for latency monitoring and response
US20170308154A1 (en) Fast system setting changes
US9690619B2 (en) Thread processing method and thread processing system for setting for each thread priority level of access right to access shared memory
US20140359187A1 (en) Control apparatus and control method
US20150212826A1 (en) Information processing apparatus, information processing method, and storage medium
KR101334842B1 (ko) 가상화 지원 단말 플랫폼을 위한 가상머신 관리장치 및 방법
KR102671425B1 (ko) 프로세서 코어 상의 작업 배치를 결정하기 위한 시스템, 방법 및 디바이스
KR20240091183A (ko) 프로세서 코어 상의 작업 배치를 결정하기 위한 시스템, 방법 및 디바이스
US9697114B2 (en) Netmory
KR20210022850A (ko) 반도체 장치의 성능 부스팅 제어 방법 및 이를 수행하는 반도체 장치

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant