KR101954668B1 - 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치 - Google Patents

이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치 Download PDF

Info

Publication number
KR101954668B1
KR101954668B1 KR1020130004344A KR20130004344A KR101954668B1 KR 101954668 B1 KR101954668 B1 KR 101954668B1 KR 1020130004344 A KR1020130004344 A KR 1020130004344A KR 20130004344 A KR20130004344 A KR 20130004344A KR 101954668 B1 KR101954668 B1 KR 101954668B1
Authority
KR
South Korea
Prior art keywords
core processor
message
buffer
timer
delay time
Prior art date
Application number
KR1020130004344A
Other languages
English (en)
Other versions
KR20140092066A (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 KR1020130004344A priority Critical patent/KR101954668B1/ko
Publication of KR20140092066A publication Critical patent/KR20140092066A/ko
Application granted granted Critical
Publication of KR101954668B1 publication Critical patent/KR101954668B1/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/329Power saving characterised by the action undertaken by task scheduling
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치에 관한 것으로, 상기 방법은 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하는 과정과, 상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하는 과정과, 상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정과, 상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 포함한다.

Description

이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치{METHOD AND APPARATUS FOR IMPROVING POWER EFFICIENCY IN ELECTRONIC DEVICE USING HETEROGENEOUS MULTICORE PROCESSOR}
본 발명은 일반적으로 전자장치에 관한 것으로, 특히 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치에 관한 것이다.
최근 컴퓨터 분야에서는 멀티태스킹과 다수의 고속연산을 요구하는 멀티미디어 성능이 중시되어 하나의 프로세서 내에 복수 개의 코어를 구비하는 멀티-코어 프로세서들이 개발되었다. 멀티 코어 프로세서는 여러 개의 작업을 한 번에 처리하기 위해 두 개 이상의 프로세싱 코어를 가진 프로세서를 말한다. 멀티 코어 프로세서는 동일한 코어가 여러 개 존재하는 대칭형 멀티코어 프로세싱(SMP, Symmetric Multi-Processing)과 DSP(Digital Processing Processor)나 GPU(Graphic Processing Unit) 등 GPP(General Purpose Processor)로 사용될 수 있는 다양한 이기종 코어들로 이루어진 비대칭 멀티코어 프로세싱(AMP, Asymmetric Multi-Processing)이 있다.
상기 멀티-코어 프로세서는 작업을 복수의 코어들이 분담하여 처리하기 때문에 처리 성능을 향상시킬 수 있다. 또한, 여러 개의 프로세서를 부가하여 사용하는 것에 비해 코어 이외의 부분을 공용할 수 있기 때문에 제조비용이 저렴하고 크기를 소형화할 수 있는 이점이 있다.
멀티 코어 시스템에서 각 프로세싱 코어는 독립적으로 태스크를 실행한다. 따라서 경우에 따라 유휴상태(idle state)의 코어가 발생할 수 있다. 예를 들어, 프로세싱 코어 중 어느 하나가 다른 프로세싱 코어의 태스크 실행이 끝날 때까지 태스크 실행을 중지하고 대기하는 경우가 발생할 수 있다. 이와 같이 작업을 처리하지 않고 대기하고 있는 프로세싱 코어를 유휴 코어라 한다.
한편, 종래에서 보조 코어(peripheral core)가 유휴상태의 중심 코어(central core)로 메시지를 전달할 때, 인터럽트를 발생시킨 후 중심 코어를 깨운다.
유휴상태의 중심 코어가 보조 코어로부터 메시지를 수신하기 위해 동작상태(active state)로 천이할 때, 전력소모가 발생한다.
따라서, 종래에는 보조 코어에서 유휴상태의 중심 코어로 메시지를 전달하는 이벤트가 발생할 때마다, 중심 코어가 유휴상태에서 동작상태로 천이하여 메시지를 처리함으로써, 전력소모가 증가한다.
그러므로, 이종 멀티코어 프로세서를 이용하는 전자장치에서 하나의 멀티코어가 다른 멀티코어로 메시지를 전달할 때, 전력효율을 개선하기 위한 방법 및 장치가 필요하다.
본 발명의 목적은 이종 멀티코어 프로세서를 이용하는 전자장치에서 하나의 멀티코어가 다른 유휴상태의 멀티코어로 메시지를 전달할 때, 전력효율을 개선하기 위한 방법 및 장치를 제공함에 있다.
본 발명의 다른 목적은 멀티코어의 상태에 따라, 메시지의 최대지연시간에 대응하는 타이머를 구동하고, 메시지를 버퍼링하여 처리하는 방법 및 장치를 제공함에 있다.
상기한 목적들을 달성하기 위한 본 발명의 제 1 견지에 따르면, 상기 제1 코어프로세서와 상기 제2 코어프로세서를 이용하는 전자장치 동작방법은, 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하는 과정과, 상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하는 과정과, 상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정과, 상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 포함한다.
상기한 목적들을 달성하기 위한 본 발명의 제 2 견지에 따르면, 상기 제1 코어프로세서와 상기 제2 코어프로세서를 이용하는 전자장치 동작방법은, 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하는 과정과, 상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지에 대한 종류를 확인하는 과정과, 상기 메시지 종류가 최대지연시간을 허용하는 메시지인 경우, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하는 과정과, 상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정과, 상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 포함한다.
상기한 목적들을 달성하기 위한 본 발명의 제 3 견지에 따르면, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행되도록 구성되는 하나 이상의 프로그램을 포함하는 전자 장치로서, 상기 프로그램은, 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하고, 상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하고, 상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하고, 상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어들을 포함한다.
상기한 목적들을 달성하기 위한 본 발명의 제 4 견지에 따르면, 하나 이상의 프로세서; 메모리; 및 상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행되도록 구성되는 하나 이상의 프로그램을 포함하는 전자 장치로서, 상기 프로그램은, 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하고, 상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지에 대한 종류를 확인하고, 상기 메시지 종류가 최대지연시간을 허용하는 메시지인 경우, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하고, 상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하고, 상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어를 포함한다.
상술한 바와 같이, 하나의 멀티코어가 다른 유휴상태의 멀티코어로 메시지를 전달할 때, 메시지 특성에 따라 최대한 전달한 메시지를 버퍼에 임시저장시켜 처리함으로써, 허용가능한 범위 내에서 다른 멀티코어의 유휴상태를 오랫동안 유지할 수 있다. 또한, 허용가능한 범위 내에서 다른 멀티코어의 유휴상태를 오랫동안 유지함으로써, 전력소모를 절감시키는 이점이 있다.
도 1은 본 발명에 따른 멀티코어 프로세서 아키텍처를 도시한 도면;
도 2는 본 발명의 제1 실시 예에 따른 멀티코어 프로세서 간 메시지 전달을 위한 흐름도;
도 3은 본 발명의 제2 실시 예에 따른 멀티코어 프로세서 간 메시지 전달을 위한 흐름도;
도 4는 본 발명의 실시 예에 따른 멀티코어 프로세서 간 메시지 전달을 위한 버퍼와 메시지를 위한 타이머 사이의 관계를 도시한 도면;
도 5는 본 발명의 실시 예에 따른 전자장치의 구성도;
도 6은 본 발명에 따른 멀티코어의 동작상태에서의 전류소모를 나태는 그래프; 및
도 7은 본 발명에 따른 멀티코어의 유휴상태에서의 전류소모를 나태는 그래프.
이하 본 발명의 바람직한 실시 예를 첨부된 도면의 참조와 함께 상세히 설명한다. 그리고, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하, 본 발명은 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치에 관해 설명하기로 한다.
모바일 터미널은 사용자에게 다양한 기능을 좋은 성능과 에너지효율(power efficiency)을 동시에 달성하기 위해 복수의 코어들로 구성되게 된다. 특히 에너지 효율적인 측면을 위해, 성능이 뛰어나지만 에너지소모가 많은 중심 코어(central core)와, 성능은 떨어지지만 에너지효율이 좋은 보조 코어(peripheral core)들로 구성하여 이종 멀티코어 플랫폼(heterogeneous multi-core platform)을 구성하게 된다. 주로 중심 코어(central core)에서는 리눅스(Linux), 안드로이드(android)와 같은 OS(Operation System)가 실행되며 보조 코어에서는 RT(Real Time) 리눅스, 쓰레드X(Thread-X), 뉴클리어스(Nucleus) OS와 같은 가벼운 OS가 실행된다. 각 코어는 다른 ISA를 사용하며 코어 사이에는 애플리케이션들이 공유될 수 없는 이종 멀티코어 플랫폼 형태를 띠게 된다.
이하 설명에서, 동작상태(active state)는 중심 코어가 어떤 작업을 수행하고 있거나 작업을 하기 위해 깨어있는 상태를 의미한다. 이때, 즉 중심 코어가 동작상태에 있을 때, 보통 주변 장치와 보조 코어들도 깨어있다. 또한, 이때 중심 코어의 전력소모와 보조 코어, 주변 장치들이 어떤 작업을 수행하는지에 따라 에너지소비가 결정된다. 그러므로 전력소모 관련최적화 작업은 각 기능, 또는 기능이 사용하는 장치를 최적화함으로써 이루어진다.
유휴상태(Idle 혹은 sleep state)는 중심 코어가 dormant mode(shut down)에 있는 상태를 의미하며, 보조 코어나 장치들은 전력절감모드(power saving mode)로 인터럽트(interrupt)를 대기 중이거나 환경(environment)를 모니터링만하는 상태를 말한다. 이때 보조 코어는 모니터링한 환경정보를 중심 코어에 주기적 또는 비주기적으로 메시지를 통해 전달하는 역할을 수행한다. 유휴상태에서의 전류소모는 얼마나 자주 보조 코어에서 중심 코어로 메시지 메시지전달을 위해 중심 코어를 깨우는지, 그리고 중심 코어가 어떤 작업을 얼마나 길게 수행하고 다시 유휴상태로 진입하는지에 따라 결정된다.
도 1의 (a) 내지 (b)은 본 발명에 따른 멀티코어 프로세서 아키텍처를 도시하고 있다. 이종 멀티코어 플랫폼을 기반으로 모바일 터미널은, 중심 코어와 보조 코어가 하나의 SoC(System on Chip)안에 존재하는 경우, 중심 코어와 보조 코어가 서로 다른 SoC안에 존재하는 경우로 분류된다.
중심 코어와 보조 코어가 하나의 SoC 안에 존재하는 경우는 보통 공유 메모리(shared-memory)를 사용하며 메모리 버스를 공유한다. 그리고, 이러한 경우 코어 간의 메시지 전송은 주로 메모리의 특정 영역에 데이터를 쓰기(write) 한 후 인터럽트(interrupt)를 통해 메시지 전송이 통보된다. 즉, 보조 코어는 메인 메모리에 전달할 메시지를 쓰기하고 인터럽트를 사용하여 메시지의 전송 여부를 알려준다. 중심 코어와 보조 코어가 다른 SoC안에 존재하게 되며, 각 코어 간에 메시지는 USB나 단순 serial 또는 HSI(High speed Serial Interface)등을 통하여 전달된다. 이러한 경우에도 인터럽트가 사용된다.
한편, 멀티코어 프로세서들의 아키텍처를 3가지로 분류될 수 있다.
도 1(a) 내지 (b)을 참조하면, 두 개 이상의 일반화된 실행 코어(100, 102)들을 갖고 있는 형태(a), 하나의 실행 코어(110)와 장치 특성에 맞는 가속기(DSP(Digital Signal Processor) 형태) 코어 혹은 코프로세서(112) 형태의 코어를 갖는 형태(b), 두 개 이상의 일반화된 실행 코어들(120, 122)과 함께 장치 특성에 맞는 코프로세서들을 갖고 있는 형태(c)로 구분된다. 코프로세서는 CPU를 보조하기 위한 컴퓨터 프로세서로써, 부동소수점 산술, 그래픽, 신호 처리 장치 등의 기능을 수행한다. 코프로세서는 CPU를 집중적으로 사용하는 작업들의 짐을 덜어 주며, 이로써 시스템 속도를 빠르게 해 준다.
각 형태의 멀티코어 프로세서들의 아키텍처에서 버스 인터페이스(104, 114, 124)를 통해 실행 코어 또는 코프로세서는 메모리 혹은 외부 장치들과 연결된다.
도 2는 본 발명의 제1 실시 예에 따른 전력소모를 줄이기 위한 멀티코어 프로세서 간 메시지 전달을 위한 흐름도를 도시하고 있다.
도 2를 참조하면, 제1 코어프로세서(보조 코어)는 200단계에서 제2 코어프로세서(중심코어)로의 메시지 전송 이벤트가 발생할 시, 202단계로 진행하여, 제2 코어프로세서가 유휴상태인지 동작상태인지를 확인한다.
이후, 제1 코어프로세서(보조 코어)는 204단계에서 제2 코어프로세서가 유휴상태일시 208단계로 진행하여 전달한 메시지를 버터에 임시저장한다. 즉, 버퍼링한다. 반면 206단계에서 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 209단계로 진행하여 바로 제2 코어프로세서로 메시지를 전송한다.
한편, 제1 코어프로세서(보조 코어)는 210단계에서 메시지를 버퍼링할 때 전송할 메시지의 최대지연시간을 이용하여 타이머를 구동한다. 다시 말해, 타이머를 메시지의 최대지연가능 시간으로 시작한다. 만약, 이전 메시지의 최대지연시간(t1)에 기반하여 타이머가 구동되고 있을 때, 현재 버퍼링할 메시지의 최대지연시간(t2)과 이전 메시지의 최대지연시간(t1)을 비교하여, 타이머를 동작시킨다. 예를 들어, 이전 버터에 있는 메시지로 인해 타이머가 만료되기까지 5초 남았고, 현재 버퍼링할 메시지의 최대지연시간 10초라면, 타이머는 계속 이전 메시지의 최대지연시간에 기반하여 계속 동작한다. 만약, 이전 버터에 있는 메시지로 인해 타이머가 만료되기까지 5초 남았고, 현재 버퍼링할 메시지의 최대지연시간 3초라면, 구동중인 타이머를 중지하고 최대지연시간 3초에 기반하여 타이머를 재구동시킨다.
다시 말해, 현재 메시지의 지연시간이 타이머의 남아있는 구동시간보다 길 때에는 타이머는 현상태를 계속 유지하고, 현재 메시지의 지연시간이 타이머의 남아있는 구동시간보다 짧을 때 타이머를 중시시키고 지연시간으로 새로 시작한다. 이는 기존에 버퍼에 있는 메시지들의 최대 지연시간을 보장하기 위해서이다.
이후, 제1 코어프로세서(보조 코어)는 212단계에서 제2 코어프로세서가 유휴상태에서 동작상태로 천이되었는지 감시하여, 제2 코어프로세서가 유휴상태에서 동작상태로 천이될 시, 220단계로 진행한다.
반면, 제2 코어프로세서가 유휴상태를 계속 유지하고 있을 시, 214단계에서, 버퍼에 메시지가 가득 찼는지 확인하여, 버퍼에 메시지가 가득 찼을 시, 218단계로 진행한다.
반면, 버퍼에 메시지를 저장할 여유가 있을 시, 216단계에서, 메시지의 최대지연시간을 보장하기 위한 타이머가 만료되었는지를 확인하여, 타이머가 만료될 시, 218단계로 진행한다. 216단계에서 타이머가 만료되지 않을 시, 200단계로 되돌아 간다.
제1 코어프로세서(보조 코어)는 218단계에서 인터럽트를 통해 유휴상태의 제2 코어프로세서를 깨우고, 220단계에서 버퍼에 있는 모든 메시지들을 제2 코어프로세서로 전송한다.
이후, 본 발명의 절차를 종료한다.
상술한 바와 같이, 보조 코어에서 메시지를 중심 코어로 전달하기 전에, 중심 코어의 상태를 확인하고 동작상태로 바뀔 때까지 기다렸다 메시지를 모아서 전달함으로써, 전력효율을 얻을 수 있다. 또한 메시지의 최대지연시간 보장을 위하여 버퍼와 타이머를 사용한다.
도 3은 본 발명의 제2 실시 예에 따른 전력소모를 줄이기 위한 멀티코어 프로세서 간 메시지 전달을 위한 흐름도를 도시하고 있다.
도 3을 참조하면, 제1 코어프로세서(보조 코어)는 300단계에서 제2 코어프로세서(중심코어)로의 메시지 전송 이벤트가 발생할 시, 302단계로 진행하여, 제2 코어프로세서가 유휴상태인지 동작상태인지를 확인한다.
이후, 제1 코어프로세서(보조 코어)는 304단계에서 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 312단계로 진행하여 바로 제2 코어프로세서로 메시지를 전송한다.
반면, 제2 코어프로세서가 유휴상태일시 306단계로 진행하여 메시지 종류를 확인한다.
이는, 유휴상태에서 보조 코어에서 중심 코어로 전송하는 모든 메시지 종류가 지연을 허용하지 않는 경우도 있기 때문이다. 경우에 따라 환경에 중대한 변화가 생길 때는 바로 중신 코어로 메시지를 전달하여 처리해야 하기 때문이다. 크게 메시지의 다음과 같이 분류할 수 있다.
버퍼링이 없이, 바로 전달해야 하는 제1 메시지, 일정 시간 동안 지연만 지연이 가능한 제2 메시지(최대지연시간 보장필요), 중심 코어가 유휴상태에서 계속 지연할 수 있는 제3 메시지(최대지연시간 보장일 필요 없음)로 구분될 수 있다. 본 발명에서 메시지 분류는 제1 메시지, 제2 메시지, 제3 메시지에 제한되지 않으며, 구현에 따라, 더 세분화하여 메시지를 분류하여 적용할 수도 있다.
이때, 현재 메시지를 버터에 임시 저장하기 전에 해당 메시지가 이미 버퍼에 있으며 중복 제거 가능한 메시지이면 버퍼에서 해당 메시지를 삭제하고 버퍼에 저장한다. 구현에 따라, 메시지 특성에 따라 메시지가 중복되더라도 삭제되지 않을 수 있다. 또한, 현재 메시지를 버려버리고 해당 메시지를 계속 버퍼링할 수도 있다.
이후, 제2 코어프로세서는 308단계에서 메시지가 바로 전송해야 메시지인 경우, 312단계로 진행하여 바로 제2 코어프로세서로 메시지를 전송한다.
반면 이후, 제1 코어프로세서(보조 코어)는, 제2 코어프로세서가 메시지가 바로 전송하지 않아도 되는 메시지(즉, 지연할 수 있는 제2 메시지 혹은 제3 메시지)인 경우, 310단계로 진행하여 전달한 메시지를 버터에 임시저장한다. 즉, 버퍼링한다. 또한, 제1 코어프로세서(보조 코어)는 메시지를 버퍼링할 때 전송할 메시지의 최대지연시간을 이용하여 타이머를 구동한다. 다시 말해, 타이머를 메시지의 최대지연가능 시간으로 시작한다. 만약, 이전 메시지의 최대지연시간(t1)에 기반하여 타이머가 구동되고 있을 때, 현재 버퍼링할 메시지의 최대지연시간(t2)과 이전 메시지의 최대지연시간(t1)을 비교하여, 타이머를 동작시킨다. 예를 들어, 이전 버터에 있는 메시지로 인해 타이머가 만료되기까지 5초 남았고, 현재 버퍼링할 메시지의 최대지연시간 10초라면, 타이머는 계속 이전 메시지의 최대지연시간에 기반하여 계속 동작한다. 만약, 이전 버터에 있는 메시지로 인해 타이머가 만료되기까지 5초 남았고, 현재 버퍼링할 메시지의 최대지연시간 3초라면, 구동중인 타이머를 중지하고 최대지연시간 3초에 기반하여 타이머를 재구동시킨다.
다시 말해, 현재 메시지의 지연시간이 타이머의 남아있는 구동시간보다 길 때에는 타이머는 현상태를 계속 유지하고, 현재 메시지의 지연시간이 타이머의 남아있는 구동시간보다 짧을 때 타이머를 중시시키고 지연시간으로 새로 시작한다. 이는 기존에 버퍼에 있는 메시지들의 최대 지연시간을 보장하기 위해서이다.
한편, 최대지연시간 보장이 필요없는 제3 메시지인 경우, 타이머를 구동할 필요없이, 제2 코어프로세서가 유휴상태에서 동작상태로 천이할 때까지 버퍼에서 대기된다. 또는 타이머 구동시간을 무한대로 설정할 수도 있다.
이후, 제1 코어프로세서(보조 코어)는 314단계에서 제2 코어프로세서가 유휴상태에서 동작상태로 천이되었는지 감시하여, 제2 코어프로세서가 유휴상태에서 동작상태로 천이될 시, 320단계로 진행한다.
반면, 제2 코어프로세서가 유휴상태를 계속 유지하고 있을 시, 316단계에서, 버퍼에 메시지가 가득 찼는지 확인하여, 버퍼에 메시지가 가득 찼을 시, 320단계로 진행한다.
반면, 버퍼에 메시지를 저장할 여유가 있을 시, 318단계에서, 메시지의 최대지연시간을 보장하기 위한 타이머가 만료되었는지를 확인하여, 타이머가 만료될 시, 320단계로 진행한다. 318단계에서 타이머가 만료되지 않을 시, 300단계로 되돌아 간다.
제1 코어프로세서(보조 코어)는 320단계에서 인터럽트를 통해 유휴상태의 제2 코어프로세서를 깨우고, 322단계에서 버퍼에 있는 모든 메시지들을 제2 코어프로세서로 전송한다.
이후, 본 발명의 절차를 종료한다.
도 4는 본 발명의 실시 예에 따른 멀티코어 프로세서 간 메시지 전달을 위한 버퍼와 메시지를 위한 타이머 사이의 관계를 도시하고 있다.
도 4를 참조하면, 유휴상태에서 보조 코어에서 중심 코어로 전달할 메시지들이 버퍼에 저장되어 있고, 보조 코어에서 중심 코어로 전달할 n+1 메시지가 발생될 때, n+1 메시지의 최대지연시간(t1)과 버퍼 내의 메시지들을 위한 최대지연시간을 보장하기 위한 타이머의 남은 시간(t2)을 비교하여 타이머의 구동시간을 제어한다.
예를 들어, n+1 메시지의 최대지연시간(t1)이 타이머의 남은 시간(t2)보다 클 시, 타이머는 t2의 구동시간을 유지하고, n+1 메시지의 최대지연시간(t1)이 타이머의 남은 시간(t2)보다 작을 시, 타이머는 t1으로 재시작한다.
도 5는 본 발명의 실시 예에 따른 전자장치의 구성도를 도시하고 있다.
전자장치는, 휴대용 전자 장치(portable electronic device)일 수 있으며, 휴대용 단말기(portable terminal), 이동 단말기(mobile terminal), 이동 패드(mobile pad), 미디어 플레이어(media player), 태블릿 컴퓨터(tablet computer), 핸드헬드 컴퓨터(handheld computer) 또는 PDA(Personal Digital Assistant)와 같은 장치일 수 있다. 또한, 이러한 장치들 중 두 가지 이상의 기능을 결합한 장치를 포함하는 임의의 휴대용 전자 장치일 수도 있다.
상기 도 5를 참조하면, 전자장치는 제어기(500), 스피커/마이크로폰(510), 카메라(520), GPS 수신기(530), RF 처리기(540), 센서모듈(550), 터치스크린(560), 터치스크린 제어기(565), 확장 메모리(570)를 포함하여 구성된다.
제어기(500)는, 인터페이스(501), 하나 이상의 프로세서(502, 503) 그리고 내부 메모리(504)를 포함할 수 있다. 경우에 따라서는, 제어기(500) 전체를 프로세서로 칭하기도 한다. 인터페이스(501), 애플리케이션 프로세서(502), 통신 프로세서(503), 내부 메모리(504)는 별개의 구성요소일 수 있거나 하나 이상의 집적화된 회로에 집적화될 수 있다. 애플리케이션 프로세서(502)는 중심 코어프로세서에 해당하고 통신 프로세서(503)는 보조 프로세서에 해당한다.
애플리케이션 프로세서(502)는 여러 가지의 소프트웨어 프로그램을 실행하여 전자장치를 위한 여러 기능을 수행하고 통신 프로세서(503)는 음성 통신 및 데이터 통신을 위한 처리 및 제어를 수행한다. 또한, 이러한 통상적인 기능에 더하여, 프로세서(502, 503)는 확장 메모리(570) 혹은 내부 메모리(504)에 저장되어 있는 특정한 소프트웨어 모듈(명령어 세트)을 실행하여 그 모듈에 대응하는 특정한 여러 가지의 기능을 수행하는 역할도 한다.
즉, 통신프로세서(503)는 확장 메모리(570) 혹은 내부 메모리(504)에 저장된 소프트웨어 모듈들과 연동하여 본 발명의 전력소모를 줄이기 위한 멀티코어 프로세서 간 메시지 전달을 위한 방법을 수행한다.
예를 들어, 통신프로세서(503)가, 제2 코어프로세서(중심코어)로의 메시지 전송 이벤트가 발생할 시, 제2 코어프로세서가 유휴상태인지 동작상태인지를 확인하고, 제1 코어프로세서(보조 코어)는 제2 코어프로세서가 유휴상태일시 전달한 메시지를 버퍼링하고, 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 바로 제2 코어프로세서로 메시지를 전송한다.
한편, 통신프로세서(503)는 또한, 메시지를 버퍼링할 때 전송할 메시지의 최대지연시간을 이용하여 타이머를 구동하고, 제2 코어프로세서가 유휴상태에서 동작상태로 천이되었는지 감시하여, 제2 코어프로세서가 유휴상태에서 동작상태로 천이될 때, 혹은 버퍼에 메시지가 가득 찼을 때, 혹은 메시지의 최대지연시간을 보장하기 위한 타이머가 만료될 시, 인터럽트를 통해 유휴상태의 제2 코어프로세서를 깨우고, 모든 메시지들을 제2 코어프로세서로 전송한다.
예를 들어, 통신프로세서(503)가, 제2 코어프로세서(중심코어)로의 메시지 전송 이벤트가 발생할 시, 제2 코어프로세서가 유휴상태인지 동작상태인지를 확인하고, 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 바로 제2 코어프로세서로 메시지를 전송하고, 제2 코어프로세서가 유휴상태일시 메시지 종류를 확인하고, 메시지가 바로 전송해야 메시지인 경우, 바로 제2 코어프로세서로 메시지를 전송하고, 제2 코어프로세서가 메시지가 바로 전송하지 않아도 되는 메시지(즉, 지연할 수 있는 제2 메시지 혹은 제3 메시지)인 경우, 전달한 메시지를 버퍼링하고, 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 바로 제2 코어프로세서로 메시지를 전송한다.
한편, 통신프로세서(503)는 또한, 메시지를 버퍼링할 때 전송할 메시지의 최대지연시간을 이용하여 타이머를 구동하고, 제2 코어프로세서가 유휴상태에서 동작상태로 천이되었는지 감시하여, 제2 코어프로세서가 유휴상태에서 동작상태로 천이될 때, 혹은 버퍼에 메시지가 가득 찼을 때, 혹은 메시지의 최대지연시간을 보장하기 위한 타이머가 만료될 시, 인터럽트를 통해 유휴상태의 제2 코어프로세서를 깨우고, 모든 메시지들을 제2 코어프로세서로 전송한다.
한편, 다른 프로세서(도시하지 않음)는 하나 이상의 데이터 프로세서, 이미지 프로세서, 또는 코덱을 포함할 수 있다. 데이터 프로세서, 이미지 프로세서 또는 코덱은 별도로 구성할 수도 있다. 또한, 서로 다른 기능을 수행하는 여러 개의 프로세서로 구성될 수도 있다. 인터페이스(501)는 전자장치의 터치 스크린 제어기(565) 및 확장 메모리(570)에 연결시킨다.
센서모듈(550)은 인터페이스(501)에 결합되어 여러 가지 기능을 가능하게 할 수 있다. 예를 들어, 움직임 센서 및 광센서가 인터페이스(501)에 결합되어 각각 전자 장치의 움직임 감지 및 외부로부터의 빛 감지를 가능하게 할 수 있다. 이외에도, 위치측정 시스템, 온도센서 또는 생체 센서 등과 같은 기타 센서들이 인터페이스(550)에 연결되어 관련 기능들을 수행할 수 있다.
카메라(520)는 인터페이스(501)를 통해 센서모듈(550)과 결합하여, 사진 및 비디오 클립 레코딩과 같은 카메라 기능을 수행할 수 있다.
RF 처리기(540)는 통신 기능이 수행된다. 예를 들어, 통신 프로세서(503)의 제어하에 RF 신호를 기저대역 신호로 변환하여 통신 프로세서(503)로 제공하거나 통신 프로세서(503)로부터의 기저대역 신호를 RF 신호로 변환하여 송신한다. 여기서, 통신 프로세서(503)는 다양한 통신방식에 기저대역신호를 처리한다. 예를 들어, 통신방식은, 이들에 한정하지는 않지만, GSM(Global System for Mobile Communication) 통신방식, EDGE(Enhanced Data GSM Environment) 통신방식, CDMA(Code Division Multiple Access) 통신방식, W-CDMA(W-Code Division Multiple Access) 통신방식, LTE(Long Term Evolution) 통신방식, OFDMA(Orthogonal Frequency Division Multiple Access) 통신방식, Wi-Fi(Wireless Fidelity) 통신방식, WiMax 통신방식 또는/및 Bluetooth 통신방식을 포함할 수 있다.
스피커/마이크로폰(510)은 음성 인식, 음성 복제, 디지털 레코딩(recording) 및 전화 기능과 같은 오디오 스트림의 입력과 출력을 담당할 수 있다. 즉, 스피커/마이크로폰(510)은 음성신호를 전기신호로 변환하거나 전기신호를 음성신호로 변환한다. 도시하지 않았지만, 탈부착 가능한(attachable and detachable) 이어폰(ear phone), 헤드폰(head phone) 또는 헤드셋(head set)이 외부포트를 통해 전자장치에 연결될 수 있다.
터치스크린 제어기(565)는 터치스크린(560)에 결합될 수 있다. 제스처 스크린(560) 및 터치 스크린 제어기(565)는, 이하에 한정되지는 않지만, 제스처 스크린(560)과의 하나 이상의 접촉점을 결정하기 위한 용량성, 저항성, 적외선 및 표면 음향파 기술들뿐만 아니라 기타 근접 센서 배열 또는 기타 요소들을 포함하는 임의의 멀티 터치 감지 기술을 이용하여 접촉 및 움직임 또는 이들의 중단을 검출할 수 있다.
터치스크린(560)은 전자장치와 사용자 사이에 입력/출력 인터페이스를 제공한다. 즉, 터치스크린(560)은 사용자의 터치입력을 전자 장치에 전달한다. 또한 전자 장치로부터의 출력을 사용자에게 보여주는 매개체이다. 즉, 터치스크린은 사용자에게 시각적인 출력을 보여준다. 이러한 시각적 출력(visual output)은 텍스트(text), 그래픽(graphic), 비디오(video)와 이들의 조합의 형태로 나타난다.
터치스크린(560)은 여러 가지 디스플레이가 사용될 수 있다. 예를 들면, 이에 한정하지는 않지만, LCD(liquid crystal display), LED(Light Emitting Diode), LPD(light emitting polymer display), OLED(Organic Light Emitting Diode), AMOLED(Active Matrix Organic Light Emitting Diode) 또는 FLED(Flexible LED)를 사용할 수 있다.
GPS 수신기(530)는 인공위성으로부터 받은 신호를 위치, 속도, 시간 등의 정보로 변환한다. 예를 들어, 위성과 GPS 수신기간 거리는 빛의 속도와 신호도달 시간을 곱하면 계산되며, 3개 위성의 정확한 위치와 거리를 구하여 공지된 삼각측량의 원리로 전자장치의 위치가 측정된다.
확장 메모리(570) 혹은 내부 메모리(504)는 하나 이상의 자기 디스크 저장 장치와 같은 고속 랜덤 액세스 메모리 및/또는 비휘발성 메모리, 하나 이상의 광 저장 장치 및/또는 플래시 메모리(예컨대, NAND, NOR)를 포함할 수 있다.
확장 메모리(570) 혹은 내부 메모리(504)는 소프트웨어를 저장한다. 소프트웨어 구성요소는 운영 체제(operating system) 소프트웨어 모듈, 통신 소프트웨어 모듈, 그래픽 소프트웨어 모듈, 사용자 인터페이스 소프트웨어 모듈 및 MPEG 모듈, 카메라 소프트웨어 모듈, 하나 이상의 애플리케이션 소프트웨어 모듈 등을 포함한다. 또한, 소프트웨어 구성요소인 모듈은 명령어들의 집합으로 표현할 수 있으므로, 모듈을 명령어 세트(instruction set)라고 표현하기도 한다. 모듈은 또한 프로그램으로 표현하기도 한다.
운영 체제 소프트웨어는 일반적인 시스템 동작(system operation)을 제어하는 여러 가지의 소프트웨어 구성요소를 포함한다. 이러한 일반적인 시스템 작동의 제어는, 예를 들면, 메모리 관리 및 제어, 저장 하드웨어(장치) 제어 및 관리, 전력 제어 및 관리 등을 의미한다. 이러한 운영 체제 소프트웨어는 여러 가지의 하드웨어(장치)와 소프트웨어 구성요소(모듈) 사이의 통신을 원활하게 하는 기능도 수행한다.
통신 소프트웨어 모듈은, RF 처리기(540)를 통해 컴퓨터, 서버 및/또는 휴대용 단말기 등 다른 전자 장치와 통신을 가능하게 할 수 있다. 그리고, 통신 소프트웨어 모듈은, 해당 통신방식에 해당하는 프로토콜 구조로 구성된다.
그래픽 소프트웨어 모듈은 터치스크린(560) 상에 그래픽을 제공하고 표시하기 위한 여러 가지 소프트웨어 구성요소를 포함한다. 그래픽(graphics)이란 용어는 텍스트(text), 웹 페이지(web page), 아이콘(icon), 디지털 이미지(digital image), 비디오(video), 애니메이션(animation) 등을 포함하는 의미로 사용된다.
사용자 인터페이스 소프트웨어 모듈은 사용자 인터페이스에 관련한 여러 가지 소프트웨어 구성요소를 포함한다. 사용자 인터페이스의 상태가 어떻게 변경되는지 또는 사용자 인터페이스 상태의 변경이 어떤 조건에서 이루어지는지 등에 대한 내용을 포함한다.
카메라 소프트웨어 모듈은 카메라 관련 프로세스 및 기능들을 가능하게 하는 카메라 관련 소프트웨어 구성요소를 포함한다. 애플리케이션 모듈은 렌더링 엔진을 포함하는 웹브라우저(browser), 이메일(email), 즉석 메시지(instant message), 워드 프로세싱(word processing), 키보드 에뮬레이션(keyboard emulation), 어드레스 북(address book), 접촉 리스트(touch list), 위젯(widget), 디지털 저작권 관리(DRM, Digital Right Management), 음성 인식(voice recognition), 음성 복제, 위치 결정 기능(position determining function), 위치기반 서비스(location based service) 등을 포함한다. 메모리(570, 504)는 위에서 기술한 모듈 이외에 추가적인 모듈(명령어들)을 포함할 수 있다. 또는, 필요에 따라, 일부의 모듈(명령어들)을 사용하지 않을 수 있다.
본 발명에 관련하여, 전력소모를 줄이기 위한 멀티코어 프로세서 간 메시지 전달을 위한 명령어들(도 2 내지 도 3 참조)을 포함한다.
예를 들어, 애플리케이션 모듈은, 제2 코어프로세서(중심코어)로의 메시지 전송 이벤트가 발생할 시, 제2 코어프로세서가 유휴상태인지 동작상태인지를 확인하고, 제1 코어프로세서(보조 코어)는 제2 코어프로세서가 유휴상태일시 전달한 메시지를 버퍼링하고, 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 바로 제2 코어프로세서로 메시지를 전송한다.
한편, 애플리케이션 모듈은 또한, 메시지를 버퍼링할 때 전송할 메시지의 최대지연시간을 이용하여 타이머를 구동하고, 제2 코어프로세서가 유휴상태에서 동작상태로 천이되었는지 감시하여, 제2 코어프로세서가 유휴상태에서 동작상태로 천이될 때, 혹은 버퍼에 메시지가 가득 찼을 때, 혹은 메시지의 최대지연시간을 보장하기 위한 타이머가 만료될 시, 인터럽트를 통해 유휴상태의 제2 코어프로세서를 깨우고, 모든 메시지들을 제2 코어프로세서로 전송한다.
예를 들어, 애플리케이션 모듈은, 제2 코어프로세서(중심코어)로의 메시지 전송 이벤트가 발생할 시, 제2 코어프로세서가 유휴상태인지 동작상태인지를 확인하고, 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 바로 제2 코어프로세서로 메시지를 전송하고, 제2 코어프로세서가 유휴상태일시 메시지 종류를 확인하고, 메시지가 바로 전송해야 메시지인 경우, 바로 제2 코어프로세서로 메시지를 전송하고, 제2 코어프로세서가 메시지가 바로 전송하지 않아도 되는 메시지(즉, 지연할 수 있는 제2 메시지 혹은 제3 메시지)인 경우, 전달한 메시지를 버퍼링하고, 제2 코어프로세서가 유휴상태가 아닐시(즉, 제2 코어프로세서가 동작상태일 시) 바로 제2 코어프로세서로 메시지를 전송한다.
한편, 애플리케이션 모듈은 또한, 메시지를 버퍼링할 때 전송할 메시지의 최대지연시간을 이용하여 타이머를 구동하고, 제2 코어프로세서가 유휴상태에서 동작상태로 천이되었는지 감시하여, 제2 코어프로세서가 유휴상태에서 동작상태로 천이될 때, 혹은 버퍼에 메시지가 가득 찼을 때, 혹은 메시지의 최대지연시간을 보장하기 위한 타이머가 만료될 시, 인터럽트를 통해 유휴상태의 제2 코어프로세서를 깨우고, 모든 메시지들을 제2 코어프로세서로 전송한다.
도 6은 본 발명에 따른 멀티코어의 동작상태에서의 전류소모를 나태는 그래프이다.
도 6을 참조하면, 110mA를 기준으로 각 장치들과 코어들이 작업을 수행할 때마다 200mA이상까지 상승하는 형태의 패턴을 보여주고 있다.
도 7은 본 발명에 따른 멀티코어의 유휴상태에서의 전류소모를 나태는 그래프이다.
도 7을 참조하면, 보통 유휴상태에서 10mA를 유지하다가 보조 코어프로세서에서 중심 코어를 깨울 때마다 전류소모가 커지는 것을 알 수 있다. 이때 유휴상태에서의 전류소모는 ①의 넓이와 ②의 횟수에 의해 결정된다.
또한, 위에서 언급한, 그리고 이하에서 언급할, 본 발명에 따른 전자장치의 다양한 기능들은 하나 이상의 프로세싱(processing) 및/또는 애플리케이션 특정 집적 회로(ASIC, Application Specific Integrated circuit)를 포함하는 하드웨어 및/또는 소프트웨어 및/또는 이들의 결합으로 실행될 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
500:제어기, 510: 스피커/마이크로폰,
520: 카메라, 530: GPS 수신기,
540: RF 처리기, 550: 센서모듈,
560: 터치스크린, 565: 터치스크린 제어기,
70: 확장 메모리.

Claims (22)

  1. 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하는 과정과,
    상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하는 과정과,
    상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정과,
    상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 포함하는,
    상기 제1 코어프로세서와 상기 제2 코어프로세서를 이용하는 전자장치 동작전자장치 동작방법.
  2. 제1항에 있어서,
    상기 타이머가 만료되기 전, 상기 버퍼가 가득 찰 때 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 더 포함하는 전자장치 동작방법.
  3. 제1항에 있어서,
    상기 타이머가 만료되기 전, 상기 제2 코어프로세서가 상기 유휴상태에서 동작상태로 천이될 때, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 더 포함하는 전자장치 동작방법.
  4. 제1항에 있어서,
    상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정은,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 클 시, 상기 남은 시간 동안 상기 타이머를 계속 구동하는 과정과,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 작을 시, 구동중인 상기 타이머를 중지하고 상기 메시지의 최대허용가능한 제1 지연시간으로 상기 타이머를 재시작하는 과정을 포함하는 전자장치 동작방법.
  5. 제1항에 있어서,
    상기 제2 코어프로세서가 동작상태에 있을 시, 상기 메시지를 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 바로 전송하는 과정을 더 포함하는 전자장치 동작방법.
  6. 제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하는 과정과,
    상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지 종류를 확인하는 과정과,
    상기 메시지 종류가 최대지연시간을 허용하는 메시지인 경우, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하는 과정과,
    상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정과,
    상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 포함하는,
    상기 제1 코어프로세서와 상기 제2 코어프로세서를 이용하는 전자장치 동작방법.
  7. 제6항에 있어서,
    상기 타이머가 만료되기 전, 상기 버퍼가 가득 찰 때 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 더 포함하는 전자장치 동작방법.
  8. 제6항에 있어서,
    상기 타이머가 만료되기 전, 상기 제2 코어프로세서가 상기 유휴상태에서 동작상태로 천이될 때, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 과정을 더 포함하는 전자장치 동작방법.
  9. 제6항에 있어서,
    상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하는 과정은,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 클 시, 상기 남은 시간 동안 상기 타이머를 계속 구동하는 과정과,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 작을 시, 구동중인 상기 타이머를 중지하고 상기 메시지의 최대허용가능한 제1 지연시간으로 상기 타이머를 재시작하는 과정을 포함하는 전자장치 동작방법.
  10. 제6항에 있어서,
    상기 제2 코어프로세서가 동작상태에 있을 시, 상기 메시지를 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 바로 전송하는 과정을 포함하는 전자장치 동작방법.
  11. 제6항에 있어서,
    상기 메시지 종류가 최대지연시간을 허용하지 않는 메시지인 경우, 상기 메시지를 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 바로 전송하는 과정을 포함하는 전자장치 동작방법.
  12. 하나 이상의 프로세서;
    메모리; 및
    상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행되도록 구성되는 하나 이상의 프로그램을 포함하는 전자 장치로서,
    상기 프로그램은,
    제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하고,
    상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하고,
    상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하고,
    상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어들을 포함하는, 전자장치.
  13. 제12항에 있어서,
    상기 프로그램은,
    상기 타이머가 만료되기 전, 상기 버퍼가 가득 찰 때 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어를 더 포함하는 전자장치.
  14. 제12항에 있어서,
    상기 프로그램은,
    상기 타이머가 만료되기 전, 상기 제2 코어프로세서가 상기 유휴상태에서 동작상태로 천이될 때, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어를 더 포함하는 전자장치.
  15. 제12항에 있어서,
    상기 프로그램은,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 클 시, 상기 남은 시간 동안 상기 타이머를 계속 구동하고,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 작을 시, 구동중인 상기 타이머를 중지하고 상기 메시지의 최대허용가능한 제1 지연시간으로 상기 타이머를 재시작하는 명령어를 포함하는 전자장치.
  16. 제12항에 있어서,
    상기 프로그램은,
    상기 제2 코어프로세서가 동작상태에 있을 시, 상기 메시지를 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 바로 전송하는 명령어를 더 포함하는 전자장치.
  17. 하나 이상의 프로세서;
    메모리; 및
    상기 메모리에 저장되어 있으며 상기 하나 이상의 프로세서에 의하여 실행되도록 구성되는 하나 이상의 프로그램을 포함하는 전자 장치로서,
    상기 프로그램은,
    제1 코어프로세서에서 제2 코어프로세서로 메시지 전송 이벤트가 발생할 시, 상기 제2 코어프로세서가 유휴상태에 있는지를 확인하고,
    상기 제2 코어프로세서가 유휴상태에 있을 시, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지에 대한 종류를 확인하고,
    상기 메시지 종류가 최대지연시간을 허용하는 메시지인 경우, 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 전송할 메시지를 버퍼에 저장하고,
    상기 메시지의 최대허용가능한 지연시간을 기반으로 타이머를 구동하고,
    상기 타이머가 만료될 시, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어를 포함하는 전자장치.
  18. 제17항에 있어서,
    상기 프로그램은,
    상기 타이머가 만료되기 전, 상기 버퍼가 가득 찰 때 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어를 더 포함하는 전자장치.
  19. 제17항에 있어서,
    상기 프로그램은,
    상기 타이머가 만료되기 전, 상기 제2 코어프로세서가 상기 유휴상태에서 동작상태로 천이될 때, 상기 버퍼에 있는 적어도 하나 이상의 메시지를 상기 제2 코어프로세서로 전송하는 명령어를 더 포함하는 전자장치.
  20. 제17항에 있어서,
    상기 프로그램은,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 클 시, 상기 남은 시간 동안 상기 타이머를 계속 구동하고,
    상기 메시지의 최대허용가능한 제1 지연시간이, 상기 버퍼에 있는 이전 메시지들을 위한 최대허용가능한 제2 지연시간에 기반하여 구동중인 상기 타이머의 남은 시간보다 작을 시, 구동중인 상기 타이머를 중지하고 상기 메시지의 최대허용가능한 제1 지연시간으로 상기 타이머를 재시작하는 명령어를 포함하는 전자장치.
  21. 제17항에 있어서,
    상기 프로그램은,
    상기 제2 코어프로세서가 동작상태에 있을 시, 상기 메시지를 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 바로 전송하는 명령어를 더 포함하는 전자장치.
  22. 제17항에 있어서,
    상기 프로그램은,
    상기 메시지 종류가 최대지연시간을 허용하지 않는 메시지인 경우, 상기 메시지를 상기 제1 코어프로세서에서 상기 제2 코어프로세서로 바로 전송하는 명령어를 포함하는 전자장치.
KR1020130004344A 2013-01-15 2013-01-15 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치 KR101954668B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130004344A KR101954668B1 (ko) 2013-01-15 2013-01-15 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130004344A KR101954668B1 (ko) 2013-01-15 2013-01-15 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20140092066A KR20140092066A (ko) 2014-07-23
KR101954668B1 true KR101954668B1 (ko) 2019-06-12

Family

ID=51738917

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130004344A KR101954668B1 (ko) 2013-01-15 2013-01-15 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101954668B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102352756B1 (ko) 2015-04-29 2022-01-17 삼성전자주식회사 애플리케이션 프로세서, 시스템 온 칩, 및 이를 포함하는 컴퓨팅 장치
CN110764605B (zh) * 2019-10-30 2021-11-02 Oppo广东移动通信有限公司 多核处理器控制方法、装置、电子设备及存储介质

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR960009468B1 (en) * 1993-03-18 1996-07-19 Korea Electronics Telecomm Communication method between processors of multi-processor system using operation and stand-by
KR940023092A (ko) * 1993-03-18 1994-10-22 양승택 이중화된 멀티프로세서 시스팀에서의 프로세서간 통신 방법
KR970002778B1 (ko) * 1993-12-23 1997-03-10 양승택 지능망 서비스 제어/관리 시스템의 프로세서간 메시지 송수신 방법
KR0173057B1 (ko) * 1995-09-26 1999-03-30 양승택 멀티 타스크 환경에서 공통메모리를 이용한 프로세서간 통신 방법
KR100231701B1 (ko) * 1997-10-14 2000-01-15 이계철 프로세서간 통신 셀의 송수신 방법
KR100977054B1 (ko) * 2008-12-30 2010-08-19 주식회사 코아로직 이종 프로세서 사이에서 단일 데이터 채널을 이용한 데이터전송 장치와 방법 및 그 장치를 포함한 어플리케이션 프로세서(ap) 통신 시스템

Also Published As

Publication number Publication date
KR20140092066A (ko) 2014-07-23

Similar Documents

Publication Publication Date Title
KR101281354B1 (ko) 유니버설 시리얼 버스 (usb) 원격 웨이크업
JP6234573B2 (ja) インテリジェント補助電子デバイス
TWI622874B (zh) 省電處理器架構
EP2695063B1 (en) Method and system for dynamically controlling power to multiple cores in a multicore processor of a portable computing device
US10248183B2 (en) System and method for power management
US9104423B2 (en) Method and system for advance wakeup from low-power sleep states
JP6370498B2 (ja) コンピューティングデバイス内の複数のsocの間における動作状態の協調のための方法およびシステム
US10444822B2 (en) Method for managing central processing unit and related products
US9170912B1 (en) System and methods for power and energy modeling in computing devices using system call tracing
US9746910B2 (en) Supporting runtime D3 and buffer flush and fill for a peripheral component interconnect device
TW201502763A (zh) 在閒置顯示情況中之記憶體電力節省
US9785447B2 (en) System standby emulation with fast resume
US9310783B2 (en) Dynamic clock and power gating with decentralized wake-ups
CN111611125A (zh) 用于改善高性能计算应用的性能数据收集的方法与设备
US9639143B2 (en) Interfacing dynamic hardware power managed blocks and software power managed blocks
US20160117269A1 (en) System and method for providing universal serial bus link power management policies in a processor environment
US9563256B2 (en) Processor hiding its power-up latency with activation of a root port and quickly sending a downstream cycle
WO2016209427A1 (en) Adaptive hardware acceleration based on runtime power efficiency determinations
KR101954668B1 (ko) 이종 멀티코어 프로세서를 이용하는 전자장치에서 전력효율을 개선하기 위한 방법 및 장치
US9158357B2 (en) System and method for conveying service latency requirements for devices connected to low power input/output sub-systems
US20240168658A1 (en) System and Method to Reduce Power Consumption When Conveying Data to a Device
US9400540B2 (en) Event based dynamic power management

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant