KR20160054850A - 다수의 프로세서들을 운용하는 장치 및 방법 - Google Patents

다수의 프로세서들을 운용하는 장치 및 방법 Download PDF

Info

Publication number
KR20160054850A
KR20160054850A KR1020140154392A KR20140154392A KR20160054850A KR 20160054850 A KR20160054850 A KR 20160054850A KR 1020140154392 A KR1020140154392 A KR 1020140154392A KR 20140154392 A KR20140154392 A KR 20140154392A KR 20160054850 A KR20160054850 A KR 20160054850A
Authority
KR
South Korea
Prior art keywords
processor
electronic device
memory
module
perform
Prior art date
Application number
KR1020140154392A
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 KR1020140154392A priority Critical patent/KR20160054850A/ko
Priority to EP15193525.1A priority patent/EP3018582A3/en
Priority to CN201510752416.3A priority patent/CN105589336B/zh
Priority to US14/934,419 priority patent/US10127051B2/en
Publication of KR20160054850A publication Critical patent/KR20160054850A/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/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
    • 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
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B15/00Systems controlled by a computer
    • G05B15/02Systems controlled by a computer electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS], computer integrated manufacturing [CIM]
    • 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
    • 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/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/26Pc applications
    • G05B2219/2642Domotique, domestic, home control, automation, smart house
    • 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
    • G06F9/4401Bootstrapping
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0225Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal
    • H04W52/0229Power saving arrangements in terminal devices using monitoring of external events, e.g. the presence of a signal where the received signal is a wanted signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W52/00Power management, e.g. TPC [Transmission Power Control], power saving or power classes
    • H04W52/02Power saving arrangements
    • H04W52/0209Power saving arrangements in terminal devices
    • H04W52/0261Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level
    • H04W52/0287Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment
    • H04W52/0293Power saving arrangements in terminal devices managing power supply demand, e.g. depending on battery level changing the clock frequency of a controller in the equipment having a sub-controller with a low clock frequency switching on and off a main controller with a high clock frequency
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Automation & Control Theory (AREA)
  • Computer Security & Cryptography (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)
  • Hardware Redundancy (AREA)
  • Multimedia (AREA)

Abstract

다양한 실시예들에 따르면, 전자 장치는 제 1 프로세서 및 제 2 프로세서를 포함하고, 상기 제 2 프로세서는, 전자 장치와 연관된 이벤트에 기반하여, 상기 제 1 프로세서와 제 3 프로세서를 포함하는 다수의 프로세서들 중에서 제1 정보를 표현하는 하나 이상의 동작을 수행할 프로세서를 결정하고, 상기 결정된 프로세서에게 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하도록 설정된 전자 장치를 포함할 수 있다. 다른 실시예들이 가능하다.

Description

다수의 프로세서들을 운용하는 장치 및 방법{APPARATUS AND METHOD FOR OPERATING PROCESSORS}
본 발명의 다양한 실시예는 전자 장치에 관한 것으로서, 예컨대, 다수의 프로세서들을 운용하는 장치 및 방법에 관한 것이다.
전자 장치는 다수의 프로세서들을 포함할 수 있으며, 전자 장치의 기능을 수행하기 위해 하나 이상의 태스크를 다수의 프로세서들을 이용하여 처리할 수 있다. 전자 장치는 메인 프로세싱 모듈과 서브 프로세싱 모듈을 포함할 수 있다. 메인 프로세싱 모듈은, 예를 들면, 어플리케이션 프로세서 (application processor: AP)와 같이 전자 장치의 전반적인 동작이나 기능을 제어하는 프로세서를 포함할 수 있다. 서브 프로세싱 모듈은, 메인 프로세싱 모듈의 동작이나 기능을 지원하기 위해, 특정 기능을 수행하도록 설정된 전용 프로세서를 포함할 수 있다. 서브 프로세싱 모듈은, 예를 들면, 센서 허브 (sensor hub)와 같이 외부 환경 정보를 센싱하는 센서 전용 프로세서를 포함할 수 있다.
종래 기술에 따르면, 전자 장치에서, 전력 소모를 줄이기 위해, 다수의 프로세서들 중 현재 활성화된 프로세서 및 해당 프로세서에 연결된 기능 블록에만 전력을 공급할 수 있었다. 하지만, 블루투스와 같은 근거리 통신 모듈은 다수의 프로세서들 중 메인 프로세싱 모듈에 연결되기 때문에, 근거리 통신 모듈이 연결된 메인 프로세싱 모듈이 활성화된 경우에 근거리 통신 관련 어플리케이션을 구동할 수 있었다. 메인 프로세싱 모듈의 전류 소모가 상대적으로 크기 때문에, 메인 프로세싱 모듈은 제한적으로 활성화되며, 따라서, 근거리 통신 모듈은 제한적으로 운용될 수 있다. 아울러, 근거리 통신 모듈을 메인 프로세싱 모듈이 아닌 다른 프로세싱 모듈, 예를 들면, 서브 프로세싱 모듈을 통해 구동하는 경우에는, 메인 프로세싱 모듈과 서브 프로세싱 모듈 간의 동기화 문제가 발생할 수 있다. 또한, 근거리 통신 모듈을 메인 프로세싱 모듈 및 서브 프로세싱 모듈에 선택적으로 연결하기 위한 연결회로 (예: 스위치)를 추가하는 경우에는, 끊김 없는 연결을 구현하기 어렵고, 스위치 추가에 따른 실장 면적 및 재료비가 증가할 수 있다.
다양한 실시예들은, 다수의 프로세서들을 사용한 전자 장치에서 이벤트 발생 시, 다수의 프로세서들 중 해당 이벤트를 처리할 프로세서를 결정하여, 다수의 프로세서들을 구동하는 데에 소모되는 전력을 줄이는 방법 및 장치를 제공할 수 있다.
다양한 실시예에 따른 전자 장치는, 제 1 프로세서; 및 제 2 프로세서를 포함하고, 상기 제 2 프로세서는, 전자 장치와 연관된 이벤트에 기반하여, 상기 제 1 프로세서와 제 3 프로세서를 포함하는 다수의 프로세서들 중에서 제1 정보를 표현하는 하나 이상의 동작을 수행할 프로세서를 결정하고, 상기 결정된 프로세서에게 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하도록 설정될 수 있다.
다양한 실시예에 따른 다수의 프로세서들을 운용하는 방법은, 제1 프로세서 또는 제2 프로세서에서, 전자 장치와 연관된 이벤트를 감지하는 동작; 상기 제2 프로세서에서, 상기 이벤트에 기반하여, 정보를 표현할 하나 이상의 동작을 수행할지 여부를 결정하는 동작; 상기 제2 프로세서에서, 상기 결정에 기반하여, 제1 프로세서 내지 제3 프로세서를 포함하는 다수의 프로세서들 중에서 상기 하나 이상의 동작을 수행할 프로세서를 결정하는 동작; 및 상기 제2 프로세서에서, 상기 결정된 프로세서로 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하는 동작을 포함할 수 있다.
다양한 실시예에 따른 전자 장치는 다수의 프로세서들 중 일부의 프로세서의 동작이 불필요한 상황에서, 일부의 프로세서들을 슬립 모드로 구동함으로써, 전자 장치 전체의 전력 소모를 줄일 수 있다. 한 실시예에 따르면, 제 2 프로세서는, 제 1 프로세서 혹은 제 3 프로세서가 슬립 모드인 상태에서, 이벤트에 기반하여 해당 이벤트에 연관된 동작을 수행할 주체가 어떤 프로세서인지를 결정하여 해당 프로세서의 동작 모드를 변경할 수 있다. 제 3 프로세서는 액티브 모드로 동작 시, 제 1 프로세서를 슬립 모드에서 액티브 모드로 전환하지 않고, 제 1 프로세서의 일부 기능을 수행 (예: 제 3 프로세서가 외부로부터 제 1 프로세서에 수신된 데이터를 획득하여, 획득된 데이터를 처리)할 수 있다.
다양한 실시예에 따른 전자 장치는 제 2 프로세서에 근거리 통신 모듈을 연결하여 근거리 통신 모듈을 통해 데이터를 송수신할 시, 제 1 프로세서가 슬립 모드인 상태에서, 제 1 프로세서를 슬립 모드에서 액티브 모드로 전환하지 않고도 제 2 프로세서에서 수신되거나 송신할 데이터를 처리할 수 있다.
다양한 실시예에 따른 전자 장치는 제 1 프로세서 또는 제 2 프로세서를 하나의 칩 (예: system on chip, SOC)으로 구현함으로써, 각 프로세서에서 제어하는 메모리 및 주변 장치에 접근하는데 동일한 어드레스를 사용할 수 있다. 또한 실장 면적을 줄일 수 있기 때문에, 웨어러블 기기 (wearable device)와 같이 부피가 작은 휴대용 기기에 활용할 수 있다.
도 1은 다양한 실시예에 따른, 전자 장치를 포함하는 네트워크 환경을 도시한다.
도 2는 다양한 실시예에 따른, 전자 장치의 블록도를 도시한다.
도 3은 다양한 실시예에 따른, 전자 장치의 프로그램 모듈의 블록도를 도시한다.
도 4는 다양한 실시예에 따른, 근거리 통신 시스템을 도시한다.
도 5는 다양한 실시예에 따른, 전자 장치의 프로세서들의 블록도를 도시한다.
도 6a 및 6b는 다양한 실시예에 따른, 전자 장치의 프로세싱 모듈의 블록도들을 도시한다.
도 7은 다양한 실시예에 따른, 전자 장치의 블록도를 도시한다.
도 8은 다양한 실시예에 따른, 전자 장치에서 저전력으로 시간 표시 화면을 제공하는 과정을 도시한다.
도 9는 다양한 실시예에 따른, 전자 장치의 이벤트 처리 방법의 흐름도를 도시한다.
도 10a 및 10b는 다양한 실시예에 따른, 전자 장치의 이벤트 처리 과정에서의 프로세서 간 통신을 도시한다.
도 11은 다양한 실시예에 따른, 사용자가 전자 장치를 통해 이벤트 관련 정보를 제공받는 예를 도시한다.
이하, 본 개시의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 개시를 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 개시의 실시예의 다양한 변경 (modification), 균등물 (equivalent), 및/또는 대체물 (alternative)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다", "가질 수 있다", "포함한다" 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B", "A 또는/및 B 중 적어도 하나", 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B", "A 및 B 중 적어도 하나", 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
다양한 실시예에서 사용된 "제1", "제2", "첫째", 또는 "둘째" 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 해당 구성요소들을 한정하지 않는다. 상기 표현들은 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 수 있다. 예를 들면, 제 1 사용자 기기와 제 2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 개시의 권리 범위를 벗어나지 않으면서 제 1 구성요소는 제 2 구성요소로 명명될 수 있고, 유사하게 제 2 구성요소도 제 1 구성요소로 바꾸어 명명될 수 있다.
어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소 (예: 제 3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제 1 구성요소)가 다른 구성요소(예: 제 2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제 3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는 (capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성(또는 설정)된"은 하드웨어적으로 "특별히 설계된 (specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성 (또는 설정)된 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서 (예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서 (generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시의 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 일반적으로 사용되는 사전에 정의된 용어들은 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미를 가지는 것으로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 개시의 실시예들을 배제하도록 해석될 수 없다.
본 개시의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 전자 장치는 스마트폰 (smartphone), 태블릿 PC (tablet personal computer), 이동 전화기 (mobile phone), 화상 전화기, 전자북 리더기 (e-book reader), 데스크탑 PC (desktop personal computer), 랩탑 PC (laptop personal computer), 넷북 컴퓨터 (netbook computer), 워크스테이션 (workstation), 서버, PDA (personal digital assistant), PMP (portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라 (camera), 또는 웨어러블 장치 (wearable device)(예: 스마트 안경, 머리 착용형 장치 (head-mounted-device(HMD)), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 앱세서리 (appcessory), 전자 문신, 스마트 미러, 또는 스마트 와치 (smart watch))중 적어도 하나를 포함할 수 있다.
어떤 실시예들에서, 전자 장치는 스마트 가전 제품 (smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들면, 텔레비전, DVD (digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스 (set-top box), 홈 오토매이션 컨트롤 패널 (home automation control panel), 보안 컨트롤 패널 (security control panel), TV 박스 (예: 삼성 HomeSync™, 애플TV™ 또는 구글 TV™, 게임 콘솔 (예: Xbox™, PlayStation™), 전자 사전, 전자 키, 캠코더 (camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기 (예: 각종 휴대용 의료측정기기 (혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA (magnetic resonance angiography), MRI (magnetic resonance imaging), CT (computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 (navigation) 장치, GPS 수신기 (global positioning system receiver), EDR (event data recorder), FDR (flight data recorder), 자동차 인포테인먼트 (infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기 (avionics), 보안 기기, 차량용 헤드 유닛 (head unit), 산업용 또는 가정용 로봇, 금융 기관의 ATM (automatic teller? machine), 상점의 POS (point of sales), 또는 사물 인터넷 장치 (internet of things)(예: 전구, 각종 센서, 전기 또는 가스 미터기, 스프링클러 장치, 화재경보기, 온도조절기 (thermostat), 가로등, 토스터 (toaster), 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다.
어떤 실시예에 따르면, 전자 장치는 가구 (furniture) 또는 건물/구조물의 일부, 전자 보드 (electronic board), 전자 사인 수신 장치 (electronic signature receiving device), 프로젝터 (projector), 또는 각종 계측 기기 (예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 개시의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않으며, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
이하, 첨부 도면을 참조하여, 다양한 실시예에 따른 전자 장치가 설명된다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치 (예: 인공지능 전자 장치)를 지칭할 수 있다.
도 1을 참조하여, 다양한 실시예에서의, 네트워크 환경 100 내의 전자 장치 101가 기재된다. 상기 전자 장치 101는 버스 110, 프로세서 120, 메모리 130, 입출력 인터페이스 150, 디스플레이 160, 및 통신 인터페이스 170를 포함할 수 있다. 어떤 실시예에서는, 전자 장치 101는, 상기 구성요소들 중 적어도 하나를 생략하거나 다른 구성 요소를 추가적으로 구비할 수 있다.
상기 버스 110는, 예를 들면, 상기 구성요소들 110-170을 서로 연결하고, 상기 구성요소들 간의 통신 (예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.
상기 프로세서 120는, 중앙처리장치 (central processing unit (CPU)), 어플리케이션 프로세서 (application processor (AP)), 또는 커뮤니케이션 프로세서 (communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 상기 프로세서 120은, 예를 들면, 상기 전자 장치 101의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
상기 메모리 130는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 상기 메모리 130는, 예를 들면, 상기 전자 장치 101의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 상기 메모리 130는 소프트웨어 및/또는 프로그램 140을 저장할 수 있다. 상기 프로그램 140은, 예를 들면, 커널 141, 미들웨어 143, 어플리케이션 프로그래밍 인터페이스 (application programming interface (API)) 145, 및/또는 어플리케이션 프로그램 (또는 "어플리케이션") 147 등을 포함할 수 있다. 상기 커널 141, 미들웨어 143, 또는 API 145의 적어도 일부는, 운영 시스템 (operating system (OS))라 불릴 수 있다.
상기 커널 141은, 예를 들면, 다른 프로그램들 (예: 미들웨어 143, API 145, 또는 어플리케이션 프로그램 147)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들 (예: 버스 110, 프로세서 120, 또는 메모리 130 등)을 제어 또는 관리할 수 있다. 또한, 상기 커널 141은 상기 미들웨어 143, 상기 API 145, 또는 상기 어플리케이션 프로그램 147에서 상기 전자 장치 101의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
상기 미들웨어 143는, 예를 들면, 상기 API 145 또는 상기 어플리케이션 프로그램 147이 상기 커널 141과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 상기 미들웨어 143는 상기 어플리케이션 프로그램 147로부터 수신된 작업 요청들과 관련하여, 예를 들면, 상기 어플리케이션 프로그램 147 중 적어도 하나의 어플리케이션에 상기 전자 장치 101의 시스템 리소스(예: 버스 110, 프로세서 120, 또는 메모리 130 등)를 사용할 수 있는 우선 순위를 배정하는 등의 방법을 이용하여 작업 요청에 대한 제어(예: 스케쥴링 또는 로드 밸런싱)을 수행할 수 있다.
상기 API 145는, 예를 들면, 상기 어플리케이션 147이 상기 커널 141 또는 상기 미들웨어 143에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 화상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다.
상기 입출력 인터페이스 150은, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 상기 전자 장치 101의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 상기 입출력 인터페이스 150은 상기 전자 장치 101의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
상기 디스플레이 160은, 예를 들면, 액정 디스플레이 (LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(micro electromechanical systems:MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 상기 디스플레이 160은, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 상기 디스플레이 160은, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.
상기 통신 인터페이스 170은, 예를 들면, 상기 전자 장치 101와 외부 전자 장치(예: 제 1 외부 전자 장치 102, 제 2 외부 전자 장치 104, 또는 서버 106) 간의 통신을 설정할 수 있다. 예를 들면, 상기 통신 인터페이스 170은 무선 통신 또는 유선 통신을 통해서 네트워크 162에 연결되어 상기 외부 전자 장치 (예: 제 2 외부 전자 장치 104 또는 서버 106)와 통신할 수 있다.
상기 무선 통신은, 예를 들면, 셀룰러 통신 프로토콜로서, 예를 들면, LTE, LTE-A, CDMA, WCDMA, UMTS, WiBro, 또는 GSM 등 중 적어도 하나를 사용할 수 있다. 상기 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard 232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 상기 네트워크 162는 통신 네트워크(telecommunications network), 예를 들면, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.
상기 제 1 및 제 2 외부 전자 장치 102, 104 각각은 상기 전자 장치 101와 동일한 또는 다른 종류의 장치일 수 있다. 한 실시예에 따르면, 상기 서버 106는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시예에 따르면, 상기 전자 장치 101에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치 102, 104, 또는 서버 106)에서 실행될 수 있다. 한 실시예에 따르면, 상기 전자 장치 101가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 상기 전자 장치 101는 상기 기능 또는 상기 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치 102, 104, 또는 서버 106)에게 요청할 수 있다. 상기 다른 전자 장치(예: 전자 장치 102, 104, 또는 서버 106)는 상기 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 상기 전자 장치 101로 전달할 수 있다. 상기 전자 장치 101는 수신된 결과를 그대로 또는 추가적으로 처리하여 상기 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
도 2는 다양한 실시예에 따른 전자 장치 201의 블록도 200이다. 상기 전자 장치 201는, 예를 들면, 도 1에 도시된 전자 장치 101의 전체 또는 일부를 포함할 수 있다. 상기 전자 장치 201는 하나 이상의 어플리케이션 프로세서(AP: application processor) 210, 통신 모듈 220, SIM(subscriber identification module) 카드 224, 메모리 230, 센서 모듈 240, 입력 장치 250, 디스플레이 260, 인터페이스 270, 오디오 모듈 280, 카메라 모듈 291, 전력 관리 모듈 295, 배터리 296, 인디케이터 297, 및 모터 298 를 포함할 수 있다.
상기 AP 210는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 상기 AP 210에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 상기 AP 210는, 예를 들면, SoC(system on chip) 로 구현될 수 있다. 한 실시예에 따르면, 상기 AP 210는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서(image signal processor)를 더 포함할 수 있다. 상기 AP 210는 도 2에 도시된 구성요소들 중 적어도 일부(예: 셀룰러 모듈 221)를 포함할 수도 있다. 상기 AP 210 는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드(load)하여 처리하고, 다양한 데이터를 비휘발성 메모리에 저장(store)할 수 있다.
상기 통신 모듈 220은, 도 1의 상기 통신 인터페이스 160와 동일 또는 유사한 구성을 가질 수 있다. 상기 통신 모듈 220은, 예를 들면, 셀룰러 모듈 221, WIFI 모듈 223, BT 모듈 225, GPS 모듈 227, NFC 모듈 228 및 RF(radio frequency) 모듈 229를 포함할 수 있다.
상기 셀룰러 모듈 221은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈 221은 가입자 식별 모듈(예: SIM 카드 224)을 이용하여 통신 네트워크 내에서 전자 장치 201의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈 221은 상기 AP 210가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 상기 셀룰러 모듈 221은 커뮤니케이션 프로세서(CP: communication processor)를 포함할 수 있다.
상기 WIFI 모듈 223, 상기 BT 모듈 225, 상기 GPS 모듈 227 또는 상기 NFC 모듈 228 각각은, 예를 들면, 해당하는 모듈을 통해서 송수신되는 데이터를 처리하기 위한 프로세서를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈 221, WIFI 모듈 223, BT 모듈 225, GPS 모듈 227 또는 NFC 모듈 228 중 적어도 일부(예: 두 개 이상)는 하나의 집적화된 칩(IC: integrated chip) 또는 IC 패키지 내에 포함될 수 있다.
상기 RF 모듈 229는, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. 상기 RF 모듈 229는, 예를 들면, 트랜시버(transceiver), PAM(power amp module), 주파수 필터(frequency filter), LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈 221, WIFI 모듈 223, BT 모듈 225, GPS 모듈 227 또는 NFC 모듈 228 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다.
상기 SIM 카드 224는, 예를 들면, 가입자 식별 모듈을 포함하는 카드 및/또는 내장 SIM(embedded SIM)을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
상기 메모리 230(예: 메모리 130)는, 예를 들면, 내장 메모리 232 또는 외장 메모리 234를 포함할 수 있다. 상기 내장 메모리 232는, 예를 들면, 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나를 포함할 수 있다.
상기 외장 메모리 234는 flash drive, 예를 들면, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), 또는 메모리 스틱(memory stick) 등을 더 포함할 수 있다. 상기 외장 메모리 234는 다양한 인터페이스를 통하여 상기 전자 장치 201과 기능적으로 및/또는 물리적으로 연결될 수 있다.
상기 센서 모듈 240은, 예를 들면, 물리량을 계측하거나 전자 장치 201의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 상기 센서 모듈 240은, 예를 들면, 제스처 센서 240A, 자이로 센서 240B, 기압 센서 240C, 마그네틱 센서 240D, 가속도 센서 240E, 그립 센서 240F, 근접 센서 240G, color 센서 240H(예: RGB (red, green, blue) 센서), 생체 센서 240I, 온/습도 센서 240J, 조도 센서 240K, 또는 UV(ultra violet) 센서 240M 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 상기 센서 모듈 240은, 예를 들면, 후각 센서(E-nose sensor), EMG 센서(electromyography sensor), EEG 센서(electroencephalogram sensor), ECG 센서(electrocardiogram sensor), IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 상기 센서 모듈 240은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치 201는 AP 210의 일부로서 또는 별도로, 센서 모듈 240을 제어하도록 구성된 프로세서를 더 포함하여, 상기 AP 210가 슬립(sleep) 상태에 있는 동안, 센서 모듈 240을 제어할 수 있다.
상기 입력 장치 250은, 예를 들면, 터치 패널(touch panel) 252, (디지털) 펜 센서(pen sensor) 254, 키(key) 256, 또는 초음파(ultrasonic) 입력 장치 258를 포함할 수 있다. 상기 터치 패널 252은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 상기 터치 패널 252은 제어 회로를 더 포함할 수도 있다. 상기 터치 패널 252은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다.
상기 (디지털) 펜 센서 254는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트(sheet)를 포함할 수 있다. 상기 키 256는, 예를 들면, 물리적인 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 상기 초음파 입력 장치 258는 초음파 신호를 발생하는 입력 도구를 통해, 전자 장치 201에서 마이크(예: 마이크 288)로 음파를 감지하여 데이터를 확인할 수 있다.
상기 디스플레이 260(예: 디스플레이 160)은 패널 262, 홀로그램 장치 264, 또는 프로젝터 266을 포함할 수 있다. 상기 패널 262은, 도 1의 디스플레이 160과 동일 또는 유사한 구성을 포함할 수 있다. 상기 패널 262은, 예를 들면, 유연하게(flexible), 투명하게(transparent), 또는 착용할 수 있게(wearable) 구현될 수 있다. 상기 패널 262은 상기 터치 패널 252과 하나의 모듈로 구성될 수도 있다. 상기 홀로그램 장치 264은 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 상기 프로젝터 266는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 상기 스크린은, 예를 들면, 상기 전자 장치 201의 내부 또는 외부에 위치할 수 있다. 한 실시예에 따르면, 상기 디스플레이 260은 상기 패널 262, 상기 홀로그램 장치 264, 또는 프로젝터 266를 제어하기 위한 제어 회로를 더 포함할 수 있다.
상기 인터페이스 270는, 예를 들면, HDMI(high-definition multimedia interface) 272, USB(universal serial bus) 274, 광 인터페이스(optical interface) 276, 또는 D-sub(D-subminiature) 278를 포함할 수 있다. 상기 인터페이스 270는, 예를 들면, 도 1에 도시된 통신 인터페이스 160에 포함될 수 있다. 추가적으로 또는 대체적으로, 상기 인터페이스 270는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD(secure digital) 카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
상기 오디오 모듈 280은, 예를 들면, 소리(sound)와 전기 신호를 쌍방향으로 변환시킬 수 있다. 상기 오디오 모듈 280의 적어도 일부 구성요소는, 예를 들면, 도 1 에 도시된 입출력 인터페이스 140에 포함될 수 있다. 상기 오디오 모듈 280은, 예를 들면, 스피커 282, 리시버 284, 이어폰 286, 또는 마이크 288 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다.
상기 카메라 모듈 291은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, ISP(image signal processor), 또는 플래쉬(flash)(예: LED 또는 xenon lamp)를 포함할 수 있다.
상기 전력 관리 모듈 295은, 예를 들면, 상기 전자 장치 201의 전력을 관리할 수 있다. 한 실시예에 따르면, 상기 전력 관리 모듈 295은 PMIC(power management integrated circuit), 충전 IC(charger integrated circuit), 또는 배터리 또는 연료 게이지(battery or fuel gauge)를 포함할 수 있다. 상기 PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 상기 배터리 게이지는, 예를 들면, 상기 배터리 296의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 상기 배터리 296는, 예를 들면, 충전식 전지(rechargeable battery) 및/또는 태양 전지(solar battery)를 포함할 수 있다.
상기 인디케이터 297는 상기 전자 장치 201 혹은 그 일부 (예: AP 210)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 상기 모터 298는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동(vibration), 또는 햅틱(haptic) 효과 등을 발생시킬 수 있다. 도시되지는 않았으나, 상기 전자 장치 201는 모바일 TV 지원을 위한 처리 장치(예: GPU)를 포함할 수 있다. 상기 모바일 TV 지원을 위한 처리 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어 플로우(media flow) 등의 규격에 따른 미디어 데이터를 처리할 수 있다.
상기 전자 장치의 전술한 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성 요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치는 전술한 구성요소 중 적어도 하나를 포함하여 구성될 수 있으며, 일부 구성요소가 생략되거나 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 또한, 다양한 실시예에 따른 전자 장치의 구성 요소들 중 일부가 결합되어 하나의 개체(entity)로 구성됨으로써, 결합되기 이전의 해당 구성 요소들의 기능을 동일하게 수행할 수 있다.
도 3은 다양한 실시예에 따른 프로그램 모듈 310의 블록도 300이다. 한 실시예에 따르면, 상기 프로그램 모듈 310 (예: 프로그램 140)은 전자 장치 (예: 전자 장치 101)에 관련된 자원을 제어하는 운영 체제(operation system (OS)) 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램 147)을 포함할 수 있다. 상기 운영 체제는, 예를 들면, 안드로이드(android), iOS, 윈도우즈(windows), 심비안(symbian), 타이젠(tizen), 또는 바다(bada) 등이 될 수 있다.
프로그램 모듈 310은 커널 320, 미들웨어 330, API(application programming interface) 360, 및/또는 어플리케이션 370을 포함할 수 있다. 상기 프로그램 모듈 310의 적어도 일부는 전자 장치 상에 프리로드(preload) 되거나, 서버(예: 서버 106)로부터 다운로드(download) 가능하다.
상기 커널 320(예: 도 1의 커널 141)은, 예를 들면, 시스템 리소스 매니저 321 또는 디바이스 드라이버 323를 포함할 수 있다. 상기 시스템 리소스 매니저 321는 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시예에 따르면, 상기 시스템 리소스 매니저 321는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 상기 디바이스 드라이버 323는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WIFI 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다.
상기 미들웨어 330는, 예를 들면, 상기 어플리케이션 370이 공통적으로 필요로 하는 기능을 제공하거나, 상기 어플리케이션 370이 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 상기 API 360를 통해 다양한 기능들을 상기 어플리케이션 370으로 제공할 수 있다. 한 실시예에 따르면, 상기 미들웨어 330(예: 미들웨어 143)는 런타임 라이브러리 335, 어플리케이션 매니저(application manager) 341, 윈도우 매니저(window manager) 342, 멀티미디어 매니저(multimedia manager) 343, 리소스 매니저(resource manager) 344, 파워 매니저(power manager) 345, 데이터베이스 매니저(database manager) 346, 패키지 매니저(package manager) 347, 연결 매니저 (connectivity manager) 348, 통지 매니저 (notification manager) 349, 위치 매니저(location manager) 350, 그래픽 매니저(graphic manager) 351, 또는 보안 매니저(security manager) 352 중 적어도 하나를 포함할 수 있다.
상기 런타임 라이브러리 335는, 예를 들면, 상기 어플리케이션 370이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 상기 런타임 라이브러리 335는 입출력 관리, 메모리 관리, 또는 산술 함수에 대한 기능 등을 수행할 수 있다.
상기 어플리케이션 매니저 341는, 예를 들면, 상기 어플리케이션 370 중 적어도 하나의 어플리케이션의 생명 주기(life cycle)를 관리할 수 있다. 상기 윈도우 매니저 342는 화면에서 사용하는 GUI 자원을 관리할 수 있다. 상기 멀티미디어 매니저 343는 다양한 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱(codec)을 이용하여 미디어 파일의 인코딩(encoding) 또는 디코딩(decoding)을 수행할 수 있다. 상기 리소스 매니저 344는 상기 어플리케이션 370 중 적어도 어느 하나의 어플리케이션의 소스 코드, 메모리 또는 저장 공간 등의 자원을 관리할 수 있다.
상기 파워 매니저 345는, 예를 들면, 바이오스(BIOS: basic input/output system) 등과 함께 동작하여 배터리(battery) 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보 등을 제공할 수 있다. 상기 데이터베이스 매니저 346는 상기 어플리케이션 370 중 적어도 하나의 어플리케이션에서 사용할 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 상기 패키지 매니저 347는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 업데이트를 관리할 수 있다.
상기 연결 매니저 348는, 예를 들면, WIFI 또는 블루투스 등의 무선 연결을 관리할 수 있다. 상기 통지 매니저 349는 도착 메시지, 약속, 근접성 알림 등의 사건(event)을 사용자에게 방해되지 않는 방식으로 표시 또는 통지할 수 있다. 상기 위치 매니저 350는 전자 장치의 위치 정보를 관리할 수 있다. 상기 그래픽 매니저 351는 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 상기 보안 매니저 352는 시스템 보안 또는 사용자 인증 등에 필요한 제반 보안 기능을 제공할 수 있다. 한 실시예에 따르면, 전자 장치(예: 전자 장치 101)가 전화 기능을 포함한 경우, 상기 미들웨어 330는 상기 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화 매니저(telephony manager)를 더 포함할 수 있다.
상기 미들웨어 330는 전술한 구성요소들의 다양한 기능의 조합을 형성하는 미들웨어 모듈을 포함할 수 있다. 상기 미들웨어 330는 차별화된 기능을 제공하기 위해 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 또한, 상기 미들웨어 330는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다.
상기 API 360(예: API 145)는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠(tizen)의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
상기 어플리케이션 370 (예: 어플리케이션 프로그램 147)은, 예를 들면, 홈 371, 다이얼러 372, SMS/MMS 373, IM(instant message) 374, 브라우저 375, 카메라 376, 알람 377, 컨택트 378, 음성 다이얼 379, 이메일 380, 달력 381, 미디어 플레이어 382, 앨범 383, 또는 시계 384, 건강 관리(health care)(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보 제공(예: 기압, 습도, 또는 온도 정보 등을 제공) 등의 기능을 제공할 수 있는 하나 이상의 어플리케이션을 포함할 수 있다.
한 실시예에 따르면, 상기 어플리케이션 370은 상기 전자 장치 (예: 전자 장치 101)와 외부 전자 장치(예: 전자 장치 102, 104) 사이의 정보 교환을 지원하는 어플리케이션(이하, 설명의 편의상, "정보 교환 어플리케이션")을 포함할 수 있다. 상기 정보 교환 어플리케이션은, 예를 들면, 상기 외부 전자 장치에 특정 정보를 전달하기 위한 알림 전달(notification relay) 어플리케이션, 또는 상기 외부 전자 장치를 관리하기 위한 장치 관리(device management) 어플리케이션을 포함할 수 있다.
예를 들면, 상기 알림 전달 어플리케이션은 상기 전자 장치의 다른 어플리케이션 (예: SMS/MMS 어플리케이션, 이메일 어플리케이션, 건강 관리 어플리케이션, 또는 환경 정보 어플리케이션 등)에서 발생된 알림 정보를 외부 전자 장치(예: 전자 장치 102, 104)로 전달하는 기능을 포함할 수 있다. 또한, 상기 알림 전달 어플리케이션은, 예를 들면, 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 상기 장치 관리 어플리케이션은, 예를 들면, 상기 전자 장치와 통신하는 외부 전자 장치(예: 전자 장치 104)의 적어도 하나의 기능 (예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 상기 외부 전자 장치에서 동작하는 어플리케이션 또는 상기 외부 전자 장치에서 제공되는 서비스(예: 통화 서비스 또는 메시지 서비스)를 관리(예: 설치, 삭제, 또는 업데이트)할 수 있다.
한 실시예에 따르면, 상기 어플리케이션 370은 상기 외부 전자 장치(예: 전자 장치 102, 104)의 속성(예: 전자 장치의 속성으로서, 전자 장치의 종류가 모바일 의료 기기)에 따라 지정된 어플리케이션(예: 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 상기 어플리케이션 370은 외부 전자 장치(예: 서버 106 또는 전자 장치 102, 104)로부터 수신된 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 상기 어플리케이션 370은 프리로드 어플리케이션(preloaded application) 또는 서버로부터 다운로드 가능한 제3자 어플리케이션(third party application)을 포함할 수 있다. 도시된 실시예에 따른 프로그램 모듈 310의 구성요소들의 명칭은 운영 체제의 종류에 따라서 달라질 수 있다.
다양한 실시예에 따르면, 상기 프로그램 모듈 310의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 상기 프로그램 모듈 310의 적어도 일부는, 예를 들면, 프로세서(예: AP 210)에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그램 모듈 310의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들면, 모듈, 프로그램, 루틴, 명령어 세트(sets of instructions) 또는 프로세스 등을 포함할 수 있다.
본 문서에서 사용된 용어 "모듈"은, 예를 들면, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들면, 유닛(unit), 로직(logic), 논리 블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들면, "모듈"은 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.
다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어는, 프로세서(예: 프로세서 120)에 의해 실행될 경우, 상기 하나 이상의 프로세서가 상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들면, 상기 메모리 130가 될 수 있다.
상기 컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digital versatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.
다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술한 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
그리고 본 문서에 개시된 실시예는 개시된, 기술 내용의 설명 및 이해를 위해 제시된 것이며, 본 개시의 범위를 한정하는 것은 아니다. 따라서, 본 개시의 범위는, 본 개시의 기술적 사상에 근거한 모든 변경 또는 다양한 다른 실시예를 포함하는 것으로 해석되어야 한다.
도 4는 다양한 실시예에 따른, 근거리 통신 시스템 400을 도시한다. 한 실시예에 따르면, 근거리 통신 시스템 400은, 예를 들면, 제 1 전자 장치 410, 제 2 전자 장치 420 및 제 3 전자 장치 440를 포함할 수 있다.
제 1 전자 장치 410(예: 전자 장치 102)는 웨어러블 장치(wearable device)(예: 스마트 시계 또는 스마트 안경)일 수 있다. 제 2 전자 장치 420(예: 전자 장치 101)는 휴대 단말기 (예: 스마트 폰 또는 태블릿 PC)일 수 있다.
한 실시예에 따르면, 제 1 전자 장치 410는 제 2 전자 장치 420와 근거리 통신 430을 통해 메시지 또는 데이터를 송수신할 수 있다. 제 2 전자 장치 420는 네트워크 450(예: 네트워크 162)에 연결해 제 3 전자 장치 440(예: 전자 장치 104)와 통신 할 수 있다.
한 실시예에 따르면, 제 2 전자 장치 420는 제 3 전자 장치 440로부터 네트워크 450를 통해 메시지를 수신할 수 있다. 제 2 전자 장치 420는 제 1 전자 장치 410에게, 근거리 통신 430을 통해 상기 메시지를 전송할 수 있다. 제 1 전자 장치 410를 소지하거나 부착한 사용자는 제 1 전자 장치 410를 통해 제 2 전자 장치 420에 수신된 메시지 또는 해당 메시지와 관련된 다른 정보를 확인하거나, 해당 메시지와 관련된 기능/서비스를 제공받을 수 있다.
한 실시예에 따르면, 제 2 전자 장치 420는 네트워크 450(예: 네트워크 162)를 통해 제 3 전자 장치(예: 서버 106)로부터 오디오 데이터(예: 라디오 스트리밍)를 수신할 수 있다. 제 1 전자 장치 410는 제 2 전자 장치 420와 근거리 통신 430을 통해 제 3 전자 장치로부터 전달받은 오디오 데이터를 수신할 수 있다. 제 1 전자 장치 410를 소지하거나 부착한 사용자는 제 1 전자 장치 410를 통해 제 2 전자 장치 420에 수신된 오디오 데이터 또는 해당 오디오 데이터와 관련된 다른 정보를 확인하거나, 해당 오디오 데이터와 관련된 기능/서비스를 저전력으로 제공받을 수 있다.
한 실시예에 따르면, 제 1 전자 장치 410는 제 2 전자 장치 420 또는 외부 장치(예: 비콘 장치(beaconing device))를 통해 주기적으로 비콘(beacon) 신호를 수신할 수 있다. 제 1 전자 장치 410가 슬립 모드에서 비콘 신호에 포함된 데이터를 이용하여 해당 데이터와 관련된 다른 정보를 비교/확인하거나, 해당 데이터와 관련된 기능/서비스를 저전력으로 제공받을 수 있다.
도 5는 다양한 실시예에 따른, 전자 장치 500의 프로세서들의 블록도를 도시한다. 도 5를 참조하면, 전자 장치 500(예: 제 1 전자 장치 410 또는 제 2 전자 장치 420)는, 다수의 프로세서들, 예를 들어, 제 1 프로세서 510, 제 2 프로세서 520, 및 제 3 프로세서 530를 포함할 수 있다.
한 실시예에 따르면, 전자 장치 500는 태스크의 처리에 대한 전력 소모를 줄이기 위하여, 프로세서를 전력 소모의 정도를 달리하는 복수의 동작 모드들, 예를 들면, 액티브 모드와 슬립 모드로 구동할 수 있다. 액티브 모드는, 예를 들면, 프로세서가 활성화되어, 프로세서에 할당된 특정 태스크를 처리하는 상태일 수 있다. 프로세서가 액티브 모드인 경우, 프로세서 및 프로세서와 연결된 다른 기능 블록들이 전력을 공급받아 프로세서에 할당된 특정 태스크와 연관된 기능들을 수행할 수 있다. 슬립 모드는 프로세서가 동작하지 않을 때, 예를 들면, 프로세서가 비활성화되어, 프로세서가 처리 가능한 태스크의 할당을 대기하는 상태일 수 있다. 프로세서가 슬립 모드인 경우, 프로세서 및 프로세서와 연결된 다른 기능 블록들은 상대적으로 적은 전력을 공급받거나, 프로세서 및 상기 다른 기능 블록들의 적어도 일부는 실질적으로(substantially) 전력을 공급받지 않을 수 있다. 따라서, 전자 장치는 다수의 프로세서들을 복수의 동작 모드로 운용함으로써, 전력 소모를 보다 효율적으로 관리할 수 있다.
제 1 프로세서 510는 전자 장치 500의 전반적인 동작 또는 내부 구성 요소들 간의 신호 흐름을 제어하고, 데이터를 처리하는 기능을 수행할 수 있다. 제 1 프로세서 510는, 예를 들면, 중앙 처리 장치(central processing unit: CPU) 또는 어플리케이션 프로세서(application processor: AP) 등을 포함할 수 있으나, 이에 한정하지 않는다.
제 2 프로세서 520는, 예를 들면, 이벤트 감지 모듈 521, 프로세서 결정 모듈 523, 및 제어 명령 송신 모듈 525을 포함할 수 있다. 이벤트 감지 모듈 521은, 예를 들면, 전자 장치 500와 연관된 이벤트를 감지할 수 있다. 전자 장치 500와 연관된 이벤트는 전자 장치 500 내의 다른 프로세서(예: 제 1 프로세서 510 또는 제 3 프로세서 530)의 동작 모드 변경(예: 액티브 모드에서 슬립 모드로의 변경 또는 슬립 모드에서 액티브 모드로의 변경), 전자 장치 500에 기능적으로 연결된 센서(예: 센서 모듈 240)를 통한 외부 환경 정보 감지, 외부 전자 장치로부터의 메시지 또는 데이터 수신, 및 타이머 이벤트 등을 포함할 수 있다. 프로세서 결정 모듈 523은 이벤트 감지 모듈 521에서 감지된 이벤트에 반응하여, 이벤트와 관련한 동작을 다수의 프로세서들 510, 520, 530 중 어느 프로세서에서 수행할지를 결정할 수 있다. 제어 명령 송신 모듈 525은 프로세서 결정 모듈 523에서의 결정에 기반하여, 이벤트와 관련한 동작을 수행하기 위해 결정된 프로세서의 동작 모드를 변경할 명령을 전송할 수 있다. 예를 들어, 이벤트와 관련한 동작을 수행할 프로세서가 제 1 프로세서 510로 결정되었을 경우, 제 2 프로세서 520가 제 1 프로세서 510의 동작 모드를 슬립 모드에서 액티브 모드로 변경하기 위한 제어 명령을 제 1 프로세서 510 또는 제 1 프로세서 510와 연결된 다른 구성요소(예: 도 2의 전력 관리 모듈 295)에 전송할 수 있다. 혹은, 제어 명령 송신 모듈 525는, 레지스터의 설정을 변경하여 제 1 프로세서 510의 동작 모드를 변경할 수 있다. 프로세서의 동작 모드 변경 과정은, 구현 방법에 따라 달라질 수 있으므로, 이에 한정하지 않는다.
한 실시예에 따르면, 제 2 프로세서 520는, 예를 들면, 마이크로프로세서(microprocessor unit: MPU), MCU(micro control unit), 센서 허브 프로세서(sensor hub processer), 저전력 프로세서 등을 포함할 수 있다.
제 3 프로세서 530는, 예를 들면, 제 1 프로세서 510가 슬립 모드인 경우 제 1 프로세서 510의 일부 기능을 저전력으로 수행할 수 있다. 한 실시예에 따르면, 제 3 프로세서 530는, 예를 들어, 디스플레이 컨트롤러를 통해 전자 장치 500에 기능적으로 연결된 디스플레이(예: 디스플레이 160)에 제 3 프로세서 530과 기능적으로 연결된 메모리(예: 메모리 130)에 저장되어 있는 간단한 이미지 정보를 디스플레이할 수 있다. 한 실시예에 따르면, 제 3 프로세서 530는 제 3 프로세서 530와 기능적으로 연결된 메모리(예: 메모리 130)에 저장되어 있는 오디오 데이터를 전자 장치 500에 기능적으로 연결된 오디오 모듈(예: 오디오 모듈 280)을 통해 출력할 수 있다. 한 실시예에 따르면, 제 3 프로세서 530는 다른 프로세서, 예를 들면, 제 1 프로세서 510가 슬립 모드인 경우, 제 1 프로세서 510와 연결된 다른 구성요소(예: 오디오 모듈 280 또는 입력 장치 250)에 대한 전력 공급을 관리할 수 있다. 제 3 프로세서 530은, 예를 들면, 전자 장치500의 전력 관리 모듈(예: 전력 관리 모듈 295)에 전력 공급 관련 명령을 전송할 수 있다.
한 실시예에 따르면, 제 3 프로세서 530는 마이크로프로세서(micro processor unit: MPU), MCU(micro control unit) 또는 저전력 프로세서 등을 포함할 수 있다.
도 6a 및 6b는 다양한 실시예에 따른, 전자 장치 600의 프로세싱 모듈의 블록도들을 도시한다. 도 6a에 따르면, 전자 장치 600(예: 제 1 전자 장치 410)는 메모리 610, 디스플레이 620, 오디오 모듈 630, 센서 모듈 640, 근거리 통신 모듈 650, 및 프로세싱 모듈 660를 포함할 수 있다.
메모리 610(예: 메모리 230)는 전자 장치 600의 운영체제 또는 다양한 어플리케이션을 비롯하여, 전자 장치에서 실행되고 처리되는 다양한 데이터를 저장할 수 있다.
메모리 610는, 예를 들면, 데이터 영역 및 프로그램 영역을 포함할 수 있다. 메모리 610의 데이터 영역은 전자 장치 600에서 생성되거나 외부로부터 다운로드된 데이터 또는 이러한 데이터의 속성을 나타내는 메타 데이터를 저장할 수 있다. 메모리 610의 프로그램 영역에는 전자 장치 600를 부팅시키기 위한 운영 체제, 통화 기능, 동영상 또는 음악 재생 기능, 이미지 디스플레이 기능, 또는 카메라 촬영 기능 등을 제공하는 응용 프로그램 등을 저장할 수 있다.
한 실시예에 따르면, 메모리 610는 다수의 프로세서들 663, 665, 667의 각각에 의해 접근가능하고, 해당 프로세서에 의해 제어되는 별도의 전용 메모리 영역(예: 제 1 프로세서 전용 메모리 영역, 제 2 프로세서 전용 메모리 영역 또는 제 3 프로세서 전용 메모리 영역)을 더 포함할 수 있다. 이러한 전용 메모리 영역은 해당 프로세서 외부에 형성될 수도 있고, 해당 프로세서 내부의 (레지스터) 회로로 형성될 수 있다.
한 실시예에 따르면, 제 2 프로세서 전용 메모리 영역(예: SRAM)은, 예를 들면, 제 1 프로세서 663가 슬립 모드에 진입한 경우에, 제 2 프로세서 667에서 접근 가능하도록 설정될 수 있다. 제 3 프로세서 전용 메모리 영역(예: SRAM)은, 예를 들면, 제 1 프로세서 663이 슬립 모드에 진입한 경우에, 제 3 프로세서 665에서 접근 가능하도록 설정될 수 있다.
디스플레이 620(예: 디스플레이 260)는 전자 장치 600의 각종 메뉴를 비롯하여 사용자가 입력한 정보 또는 사용자에게 제공하는 정보를 표시할 수 있다. 디스플레이 620는 전자 장치의 사용자를 위한 다양한 화면을 제공할 수 있다. 메뉴 화면, 메시지 작성 화면, 통화 화면, 게임 화면, 음악 재생 화면, 또는 동영상 재생 화면 등을 제공할 수 있다.
디스플레이 620는, 예를 들면, 터치 스크린으로 형성된 경우에, 해당 터치 스크린에 대한 터치 입력을 인식하여, 그에 대응하는 입력 신호를 메인 프로세싱 모듈 661 또는 제 1 프로세서 663에 전달할 수 있다. 제 1 프로세서 663은, 예를 들면, 해당 입력 신호에 반응하여, 터치 입력과 관련된 기능을 수행할 수 있다.
센서 모듈 640는 서브 프로세싱 모듈 662 (또는, 제 2 프로세서 667)과 연결되어 전자 장치 600와 관련된 다양한 센서 정보, 예를 들면 위치 정보 또는 주변 환경 변화를 감지 또는 수집하고, 감지 또는 수집된 센서 정보를 서브 프로세싱 모듈 662(또는, 제 2 프로세서 667)로 전달할 수 있다. 한 실시예에 따르면, 센서 모듈 640의 감지 기능은 제 2 프로세서 667의 제어에 기반하여 수행되도록 설정될 수 있다. 센서 모듈 640은 저전력에서 동작할 수 있다.
근거리 통신 모듈 650은 외부 전자 장치(예: 전자 장치 420)와 근거리 통신을 수행할 수 있다. 한 실시예에 따르면, 근거리 통신 모듈 650은 블루투스 모듈, 또는 저전력 와이파이 모듈 등을 포함할 수 있으며, 이에 한정하지 않는다. 하기 설명에서는 발명의 이해를 돕기 위해 근거리 통신 모듈을 블루투스 통신 모듈을 예를 들어 설명한다.
한 실시예에 따르면, 근거리 통신 모듈 650은 BT 패킷 또는 BLE 패킷을 송수신할 수 있다. 제 1 프로세서 663가 액티브 모드인 경우, 제 1 프로세서 663의 제어 하에 BT 통신 또는 BLE 통신을 수행할 수 있다. 제 1 프로세서 663이 슬립 모드인 경우, 제 2 프로세서 667의 제어 하에 BLE 통신을 수행할 수 있다.
한 실시예에 따르면, '저전력 블루투스(bluetooth low energy) 모듈(이하, BLE 모듈)'은 고속 블루투스 기술과 비교하여 상대적으로 작은 듀티 사이클(duty cycle)을 가지며, 저속의 데이터 전송률을 통해 전력 소모를 크게 줄인 통신 기술 모듈을 의미한다. BLE 모듈에서 송수신되는 패킷은 예를 들어, 약 1Mbps의 속도로 전송되는 데이터 패킷(이하, BLE 패킷)일 수 있으나, 이에 한정하는 것은 아니다.
한 실시예에 따르면, '블루투스 모듈(이하, BT 모듈)'은 BLE 통신 기술 이외의 고속 블루투스 통신 기술, 또는 대용량 블루투스 통신 기술을 위한 모듈을 포함 할 수 있다. BT 모듈에서 송수신되는 패킷은, 예를 들어, 약 4Mbps의 속도로 전송되는 데이터 패킷(이하, BT 패킷)일 수 있으나, 이에 한정하는 것은 아니다.
한 실시예에 따르면, '블루투스 통신 데이터'는 블루투스 통신 채널을 통해 송수신되는 데이터를 의미하며, 블루투스 통신 데이터는, 예를 들면, 전송 속도나, 소모 전력에 따라, BLE 패킷 또는 BT 패킷으로 구분될 수 있다.
한 실시예에 따르면, 프로세싱 모듈 660는 메인 프로세싱 모듈 661 및 서브 프로세싱 모듈 662를 포함할 수 있다. 메인 프로세싱 모듈 661은 제 1 프로세서 663 및 제 3 프로세서 665를 포함할 수 있다. 제 1 프로세서 663는 고성능 프로세서일 수 있다. 제 3 프로세서 665는 저전력 프로세서일 수 있다.
한 실시예에 따르면, 메인 프로세싱 모듈 661은 서브 프로세싱 모듈 662에 비해 상대적으로 빠른 속도로 동작하는 고성능 프로세서를 포함할 수 있다. 전자 장치는 소모 전류를 줄이기 위해, 서브 프로세싱 모듈 662은 저성능 프로세서를 사용할 수 있다. 메인 프로세싱 모듈 661은 파워 도메인이 높은 고전력 프로세서를 사용할 수 있으며, 서브 프로세싱 모듈 662은 파워 도메인이 낮은 저전력 프로세서를 사용할 수 있다. 메인 프로세싱 모듈 661이 슬립 모드인 경우, 서브 프로세싱 모듈 662이 액티브 모드로 동작하여, 센싱과 같은 일부의 기능을 상대적으로 낮은 전력으로 수행할 수 있다.
한 실시예에 따르면, 제 1 프로세서 663는 액티브 모드에서 근거리 통신 모듈 650을 통해 수신되는 근거리 통신 데이터(예: 블루투스 통신 데이터)를 처리할 수 있다. 제 1 프로세서 663는 액티브 모드에서 BLE 패킷 또는 BT 패킷을 처리할 수 있다.
제 3 프로세서 665는 제 1 프로세서 663가 슬립 모드인 경우 제 1 프로세서 663의 일부 기능을, 제 1 프로세서 663에 비해 상대적으로 적은 전력을 소모하여 수행할 수 있다.
서브 프로세싱 모듈 662은 제 2 프로세서 667를 포함할 수 있다. 제 2 프로세서 667은 근거리 통신 모듈 650에 연결될 수 있다. 제 2 프로세서 667는 제 1 프로세서 663이 슬립 모드인 경우, 근거리 통신 모듈 650로부터 BLE 패킷 또는 BT 패킷을 획득할 수 있다. 제 2 프로세서 667는 획득된 BLE 패킷 또는 BT 패킷에 포함된 헤더 또는 프로파일 정보를 분석하여, 획득된 BLE 패킷 또는 BT 패킷와 관련된 기능/동작을 수행할 프로세서가 다수의 프로세서들 663, 665, 667 중 어느 프로세서인지를 결정할 수 있다.
한 실시예에 따르면, 상기 획득된 BLE 패킷 또는 BT 패킷와 관련된 기능/동작을 수행할 프로세서가 제 1 프로세서 663로 결정되면, 제 2 프로세서 667는, 제 1 프로세서 663의 동작 모드를 변경하는 명령을 전력 관리 모듈(예: 전력 관리 모듈 295)에, 전송할 수 있다. 제 2 프로세서 667는, 동작 모드를 변경하는 명령과 동시에, 또는 독립적으로, BLE 패킷 또는 BT 패킷이 저장된 위치 또는 BLE 패킷 또는 BT 패킷과 관련하여 수행될 기능/동작을 가리키는 정보를 제 1 프로세서 663로 전달할 수 있다. 상기 획득된 BLE 패킷 또는 BT 패킷와 관련된 기능/동작을 수행할 프로세서가 제 2 프로세서 667로 결정되면, 제 2 프로세서 667는, 근거리 통신 모듈 650로부터 획득된 BLE 패킷 또는 BT 패킷에 포함된 정보에 기반하여, BLE 패킷 또는 BT 패킷와 관련된 기능/동작을 수행할 수 있다.
한 실시예에 따르면, 제 2 프로세서 667는 제 1 프로세서 663의 동작 모드와 무관하게, 센서 모듈 640로부터 센서 정보를 획득하여, 전자 장치 600의 내부의 다른 구성요소에 전달하거나, 센서 정보와 관련된 기능/동작을 수행할 수 있다. 제 2 프로세서 667는, 예를 들면, 제 1 프로세서 663의 동작 모드가 슬립 모드인 경우에, 근거리 통신 모듈 650을 통해 수신된 근거리 통신 데이터를 획득하여, 근거리 통신 데이터와 관련된 기능/동작을 수행할 수 있다.
한 실시예에 따르면, 제 2 프로세서 667는 전자 장치 600와 연관된 이벤트를 감지할 수 있다. 예를 들어, 제 2 프로세서 667는 센서 모듈 640을 통해 음향, 빛, 움직임, 또는 기울기와 같은 센서 정보를 획득하는 경우에 발생하는 센서 이벤트를 감지할 수 있다. 제 2 프로세서 667는 근거리 통신 모듈 650을 통해 외부 전자 장치 (예: 전자 장치 420)로부터 메시지를 수신하는 경우에 발생하는 근거리 통신 이벤트를 감지할 수 있다. 제 2 프로세서 667는 전자 장치 600와 기능적으로 연결된 타이머로부터 특정 시점으로부터 미리 설정된 시간이 경과되었을 경우 발생하는, 타이머 이벤트를 감지하여 그에 따른 특정 동작을 수행할 수 있다. 한 실시예에 따르면, 제 2 프로세서 667는, 이러한 타이머 이벤트를 위한 타이머 회로를 포함하도록 형성될 수 있다.
한 실시예에 따르면, 제 1 프로세서 663의 동작 모드가 슬립 모드인 경우에, 제 2 프로세서 667는 감지된 이벤트가 디스플레이 620를 통해 정보를 표현하는 기능/동작과 연관된 이벤트인지 판단할 수 있다. 제 2 프로세서 667는 이벤트가 정보를 표현하는 기능/동작과 연관 있는 이벤트인 경우, 다수의 프로세서들 663, 665, 667 중 해당 기능/동작을 수행할 프로세서가 어느 프로세서인지를 결정할 수 있다. 제 1 프로세서 663가 해당 기능/동작을 수행할 프로세서로 결정된 경우, 제 2 프로세서 667는 제 1 프로세서 663의 동작 모드를 슬립 모드에서 액티브 모드로 변경하는 명령을 전력 관리 모듈 (예: 전력 관리 모듈 295)에 전송할 수 있다. 제 3 프로세서 665가 해당 기능/동작을 수행할 프로세서로 결정된 경우, 제 2 프로세서 667는 제 3 프로세서 665의 동작 모드를 변경하는 명령을 전력 관리 모듈 (예: 전력 관리 모듈 295)에 전송할 수 있다.
한 실시예에 따르면, 각 프로세서(예: 제 1 프로세서 663, 제 2 프로세서 667, 제 3 프로세서 665)는 프로세서간 통신을 위해 통신부(예: 메일 박스)를 통해 각 프로세서가 해야 할 동작을 전달 할 수 있다. 예를 들어, 제 1 프로세서 663가 슬립 모드인 경우, 제 2 프로세서 667는 통신부(예: 메일 박스)를 통해 제 1 프로세서 663가 슬립 모드에서 액티브 모드로 전환될 경우 해야 할 동작을 전달할 수 있다.
한 실시예에 따르면, 각 프로세서(예: 제 1 프로세서 663, 제 2 프로세서 667, 제 3 프로세서 665)는 정보를 표현하는 기능/동작을 수행하기 위한 장치(예: 디스플레이 620, 오디오 모듈 630)로부터 해당 기능/동작이 수행됐음을 알리는 인터럽트 신호를 수신할 수 있다. 예를 들어, 제 3 프로세서 665가 디스플레이 620를 통해 표현할 정보(예: 저전력으로 디스플레이 가능한 이미지 데이터)를 디스플레이할 경우, 해당 정보를 디스플레이 했음을 알리는 인터럽트 신호를 제 1 프로세서 663, 제 2 프로세서 667에 전달 할 수 있다. 해당 인터럽트 신호를 수신한 제 1 프로세서 663는 해당 인터럽트 신호에 기반하여, 표현하기 위한 정보를 생성할 것인지를 결정할 수 있다. 한 실시예에 따르면, 다수의 프로세서들 663, 665, 667 중 적어도 둘 이상의 프로세서들은 하나의 시스템 온 칩(system on chip)으로 구현될 수 있다. 따라서, 하나의 시스템 온 칩으로 구현된 적어도 둘 이상의 프로세서들 각각은, 내부 인터페이스 666(예: 버스)를 통하여 어드레스 단위로 나머지 프로세서에 접근할 수 있다. 다수의 프로세서들 663, 665, 667의 각각은 버스를 통하여 프로세서 간의 통신(예: 제어 메시지 및/또는 데이터)을 할 수 있다. 내부 인터페이스 666 사이의 연결 방식은, 예를 들면, AXI/AHB(advanced extensible interface/advanced high-performance bus) 인터페이스로 구성될 수 있다. 본 실시예에서는, 이해를 돕기 위해 버스가 2개로 도시되어 있으나, 실제로는 계층별로 나누어 질 수 있으며, 더 많은 수로 구성될 수 있다. 아울러, 전력 관리 모듈(예: 전력 관리 모듈 295)에서 전력을 관리하는 데 있어, (예: 파워 게이팅 시) 전자 장치 600 내의 모든 버스가 일괄적으로 전력 공급이 중단되는 것은 아니다.
도 6b에 따르면, 프로세싱 모듈 670는, 예를 들면, 메인 프로세싱 모듈 671 및 서브 프로세싱 모듈 672을 포함할 수 있다. 메인 프로세싱 모듈 671은 제 1 프로세서 673를 포함할 수 있다. 제 1 프로세서 673는 고성능 프로세서일 수 있다. 서브 프로세싱 모듈 672은 제 2 프로세서 675를 포함할 수 있다. 제 2 프로세서 675는 저전력 프로세서일 수 있다. 제 2 프로세서 675는, 예를 들면, 도6a에 도시된 제 3 프로세서 665의 기능을 수행할 수 있다. 예를 들어, 제 2 프로세서 675는, 메모리 610에 접근할 수 있다. 또한, 제 2 프로세서 675는 디스플레이 컨트롤러를 통하여 디스플레이 620를 제어할 수 있다. 또한, 제 1 프로세서 673 및 제 2 프로세서 675의 각각은, 내부 인터페이스 676(예: 버스)를 통하여 어드레스 단위로 다른 프로세서에 접근할 수 있다. 프로세싱 모듈 670는, 도 6a에 도시된 바와 달리, 제 3 프로세서 665와 같은 별도의 프로세서를 포함하지 않거나, 제 3 프로세서 665에 대응되는 구성요소를 제 2 프로세서 675 또는 서브 프로세싱 모듈 672의 적어도 일부로 포함되도록 구성할 수 있다.
도 7은 다양한 실시예에 따른, 전자 장치 700의 블록도를 도시한다. 도 7을 참조하면, 전자 장치 700(예: 제 1 전자 장치 410)는, 예를 들면, 전력 관리 모듈 710, 제 1 프로세서 720, 및 제 2 프로세서 730를 포함할 수 있다.
전력 관리 모듈 710(예: 전력 관리 모듈 295)은 전자 장치 700의 전력을 관리할 수 있다. 전력 관리 모듈 710은, 예를 들면, PMIC(power management integrated circuit)를 포함할 수 있다.
제 1 프로세서 720(예: 제 1 프로세서 510)는, 예를 들면, 제 1 프로세싱 코어 721, 제 1 메모리 723 및 시스템 제어 모듈 725을 포함할 수 있다. 제 1 프로세싱 코어 721는, 예를 들면, 제 1 운영 체제를 구동할 수 있다. 제 1 메모리 723는, 예를 들면, 제 1 운영 체제를 구동하기 위한 바이너리를 저장할 수 있다 (예: 제 1 메모리 723의 프로그램 영역). 제 1 메모리 723는 전자 장치 700에서 실행되고 처리되는 다양한 데이터를 저장할 수 있다. 시스템 제어 모듈 725은 제 1 프로세서 720 또는 제 2 프로세서 730에 리셋(reset) 명령을 전송할 수 있다. 시스템 제어 모듈 725은, 예를 들면, 전력 관리 모듈 710을 통해 제 1 프로세서 720 또는 제 2 프로세서 730 중 적어도 하나의 동작 모드를 제어할 수 있다.
제 2 프로세서 730(예: 제 2 프로세서 520)는, 예를 들면, 제 2 프로세싱 코어 731 및 제 2 메모리 733를 포함할 수 있다. 제 2 프로세싱 코어 731는 제 2 운영 체제를 구동할 수 있다. 제 2 메모리 733는 제 2 운영 체제를 구동하기 위한 바이너리를 저장할 수 있다(제 2 메모리 733의 프로그램 영역).
제 2 프로세서 730는, 예를 들면, 전자 장치 700에 관련된 이벤트에 기반하여, 해당 이벤트에 대응하는 기능/동작을 수행할 프로세서를 결정할 수 있다. 제 2 프로세서 730는 결정된 프로세서의 동작 모드를 변경하기 위한 명령을 전력 관리 모듈 710에 전달할 수 있다. 전력 관리 모듈 710은 명령에 기반하여 결정된 프로세서 또는 해당 프로세서와 연결된 다른 구성요소에 대한 전력을 공급하거나, 전력 공급을 적어도 부분적으로 중단할 수 있다.
한 실시예에 따르면, 전력 관리 모듈 710은, 제 1 프로세서 720 또는 제 2 프로세서 730의 동작 모드를 감시하여, 현재 동작 모드가 슬립 모드인 프로세서 또는 해당 프로세서와 연결된 다른 구성요소에 대한 전력 공급을 적어도 부분적으로 중단할 수 있다. 전력 관리 모듈 710은, 현재 동작 모드가 액티브 모드인 프로세서 또는 해당 프로세서와 연결된 다른 구성요소에 대한 전력을 공급할 수 있다. 한 실시예에 따르면, 제 2 프로세서 730은, 전력 관리 모듈 710에 의해 공급된 전력에 기반하여, 센서 관련 기능/동작을 수행하거나, 전자 장치의 센서 모듈을 통해 획득된 센서 정보를 처리할 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서 720 또는 제 2 프로세서 730는 근거리 통신 모듈의 구동 코드 중 적어도 일부를 포함할 수 있다. 예를 들어, 제 1 프로세서 720는 근거리 통신 모듈(예: BT 모듈 또는 BLE 모듈)을 구동하기 위한 BT 스택(stack) 또는 BLE 스택 중 적어도 일부를 포함할 수 있다. 제 2 프로세서 730는 근거리 통신 모듈을 구동하기 위한 BLE 스택을 포함할 수 있다. 구현 방식에 따라, 제 1 프로세서 720는 BLE 스택의 상위 스택(upper stack)을 포함할 수 있으며, 제 2 프로세서 730는 BLE 스택의 하위 스택(lower stack)을 포함할 수 있으나, 이에 한정하지 않는다.
한 실시예에 따르면, 제 1 프로세서 720과 제 2 프로세서 730은 하나의 시스템 온 칩 (system on chip)으로 구현될 수 있다. 제 1 프로세서 720와 제 2 프로세서 730 간의 통신은 내부 인터페이스 740(예: 버스)를 통해 이루어질 수 있다. 제 1 프로세서 720는 제 1 메모리 723 또는 제 2 메모리 733에 접근할 수 있다. 제 2 프로세서 730는 제 2 메모리에 접근할 수 있다. 제 1 메모리 723, 제 2 메모리 733는 별도의 저장 공간일 수 있으며, 하나의 저장 공간(예: 메모리 610)일 수도 있으나, 이에 한정하지 않는다.
한 실시예에 따르면, 제 1 프로세서 720 및 제 2 프로세서 730의 각각이 독립적인 운영 체제(예: 제 1 운영 체제 및 제 2 운영 체제)를 구동하기 위하여 프로세서 별로 순차적으로 부팅을 수행할 수 있다. 제 1 프로세서 720는 제 1 메모리 723를 이용하여 제 1 운영 체제를 부팅할 수 있다. 예를 들어, 전력 관리 모듈 710은 제 1 메모리 723와 주변 장치(예: UART, DMA(direct memory access), 타이머, SDIO(secure digital input output) 등) 중 시스템 제어 모듈 725(예: reset management unit: RMU)과 관련된 부분만 전력을 공급할 수 있다. 최초 리셋 신호(예: power on reset)가 전력 관리 모듈 710을 통해 시스템 제어 모듈 725(예: reset management unit: RMU)로 전달되면, 최초 리셋 신호에 반응하여, 시스템 제어 모듈 725(예: RMU)에 의해, 시스템 리셋(system reset) 과정이 내부적으로 진행될 수 있다. 시스템 리셋 과정의 적어도 일부로, 제 1 프로세싱 코어 721가 리셋(reset)되어 제 1 운영 체제의 부팅을 시작할 수 있다. 이를 통해, 제 1 프로세싱 코어 721는, 예를 들면, 제 1 메모리 723(예: DRAM 또는 eMMC)를 초기화 하고 제 1 운영 체제의 부팅 바이너리 코드를 로딩할 수 있다.
한 실시예에 따르면, 제 1 프로세싱 코어 721는, 제 1 운영 체제의 부팅이 완료되면, 제 1 메모리 723를 통해 제 2 운영 체제의 부팅 바이너리 코드를 제 2 메모리 733(예: SRAM)에 로드(load)할 수 있다. 예를 들어, 제 1 프로세싱 코어 721의 어드레스 메모리 맵 상에 제 2 메모리 733 영역의 어드레스가 0x0800_0000일 경우, 제 2 운영 체제의 부팅 바이너리 코드에 대한 복사 동작도 0x0800_0000으로 어드레싱될 수 있다. 제 2 메모리 733의 (0x0800_0000에 대응하는) 해당 영역은 제 2 프로세싱 코어 731의 어드레스 메모리 맵 상 0x0000_0000으로 리맵(remap)될 수 있다. 제 2 메모리 733의 프로그램 영역이 0x0000_0000로 리맵되면 시스템 제어 모듈 725은 소프트웨어 리셋(reset) 신호를 제 2 프로세서 730에 전달하여 제 2 프로세서 코어 731가 리셋 동작을 수행하도록 할 수 있다. 제 2 프로세싱 코어 731의 PC 카운터가 제 2 메모리 733의 시작 주소를 0x0000_0000으로 인지하여 부팅을 수행할 수 있다.
한 실시예에 따르면, 제 2 프로세서 730는 제 2 메모리 733를 이용하여 제 2 운영 체제의 부팅 바이너리 코드를 실행시켜 제 2 운영 체제를 부팅할 수 있다. 제 2 메모리 733의 프로그램 영역은, 제 2 운영 체제의 부팅 바이너리 코드를 저장할 수 있으며, 전자 장치 700에서 원하는 대로 설정할 수 있으며, 이에 한정하지 않는다. 한 실시예에 따르면, 제 2 프로세서 730는 제 2 메모리 733 중 프로그램 영역을 다른 프로세서(예: 제 1 프로세서 720)가 접근하지 못하도록 배타적인 영역으로 설정할 수 있다. 제 1 프로세서 720는 제 2 메모리 733 중 프로그램 영역을 제외한 나머지 영역(예: 데이터 영역)에 접근할 수 있다.
한 실시예에 따르면, 제 2 메모리 733의 프로그램 영역의 크기를, 예를 들면, 32KB로 가정하면, 제 2 프로세싱 코어 731에 의해 제 2 운영체제가 부팅된 이후에, 0x0800_0000부터 32KB까지의 영역인 0x0803_FFFF 영역은 제 2 프로세싱 코어 731를 위한 바이너리 영역이므로 제 1 프로세싱 코어 721는 접근하지 못하도록 설정될 수 있다. 제 1 프로세싱 코어 721는 0x0804_0000부터 접근 가능할 수 있다. 한 실시예에 따르면, (0x0804_0000 이후의) 해당 영역을 제 2 프로세싱 코어 731의 어드레스 맵 기준의 다른 주소(예: 0x2004_0000)로 접근 가능하도록 해주는 공유 어드레스 맵(shared address map) 기능이 버스 아키텍쳐 상에서 구현됨으로써, 해당 영역을 제 1 프로세싱 코어 721와 제 2 프로세싱 코어 731가 함께 사용할 수 있게 된다.
한 실시예에 따르면, 전력 관리 모듈 710은 각 프로세서의 동작 모드에 따라, 각 프로세서 및 각 프로세서와 관련된 다른 구성요소에 대한 전력 공급 여부를 결정할 수 있다. 예를 들면, 제 1 프로세서 720가 슬립 모드로 동작 할 때, 제 2 프로세서 730도 슬립 모드로 동작 할 수 있다. 이 경우, 전력 관리 모듈 710은 제 2 프로세싱 코어 731에 대한 전력을 적어도 부분적으로 공급하지 않고, 제 2 메모리 733에 대한 전력을 정상적으로(예: 제 2 프로세서 730가 액티브 모드인 경우와 실질적으로 (substantially) 동일하게) 공급할 수 있다. 제 1 프로세서 720가 슬립 모드로 동작할 때, 제 2 프로세서 730는 액티브 모드로 동작할 수 있다. 제 2 프로세서 730가 액티브 모드로 동작하는 경우, 전력 관리 모듈 710은 제 2 프로세서 730의 제 2 프로세싱 코어 731 및 제 2 메모리 733에 전력을 공급할 수 있다.
한 실시예에 따르면, 제 1 프로세서 720는 제 2 프로세서 730가 수행 할 동작을 통신부(예: 메일 박스)를 통해 전달 할 수 있다. 제 1 프로세서 720는 수행해야 할 동작이 없을 경우, 전력 소모를 줄이기 위해 액티브 모드에서 슬립 모드로 전환할 수 있다. 전력 관리 모듈 710은 제 1 프로세서 720의 동작 모드를 변경할 수 있다. 제 2 프로세서 730는 이벤트에 기반하여 동작의 주체가 제 1 프로세서 720라고 결정했을 경우, 통신부를 통해 제 1 프로세서 720가 수행할 동작/기능을 전송한 후, 전력 관리 모듈 710을 통해 제 1 프로세서 720의 동작 모드를 슬립 모드에서 액티브 모드로 전환하는 명령을 전송할 수 있다. 본 실시예에 따른 전자 장치에서는, 제 1 프로세서 720 및 제 2 프로세서 730를 포함하는 것으로 도시되어 있으나, 추가적인 프로세서(예: 제 3 프로세서 665)를 더 포함하여 구성될 수도 있으며, 제 1 프로세서 720 또는 제 2 프로세서 730 중 적어도 하나에 추가적인 프로세싱 코어를 포함하여 구성될 수도 있다. 전력 관리 모듈 710은, 추가적인 프로세서의 동작 모드에 따라, 해당 프로세서 및 해당 프로세서와 관련된 다른 구성요소에 대한 전력 공급을 제어할 수 있다.
도 8은 다양한 실시예에 따른, 전자 장치 800에서 저전력으로 시간 표시 화면을 제공하는 과정을 도시한다. 도 8을 참조하면, 전자 장치 800(예: 제 1 전자 장치 410)는, 항상 시간 표시 화면을 제공하도록 설정된 기기, 예를 들면 스마트 워치일 수 있다.
한 실시예에 따르면, 전자 장치 800의 디스플레이를 통해 시간 표시 화면을 표시함에 있어서, 시간 표시 화면을 통해 출력되는 시간 관련 이미지의 변화가 크지 않으므로, 시간 표시 화면의 표시 외에 다른 기능/동작이 요구되지 않는 시점에는 제 1 프로세서 810가 슬립 모드로 동작하도록 설정하고, 제 1 프로세서 810에 비해 상대적으로 소모 전력이 적은 저전력 프로세서인 제 3 프로세서 830를 이용하여, 시간 표시 화면의 표시 기능을 수행할 수 있다.
한 실시예에 따르면, 제 1 프로세서 810는 디스플레이를 통해 표시할 시간 관련 이미지를 제 1 프로세서 810 또는 제 2 프로세서 820가 접근 가능한 메모리 840(예: 메모리 610)에 저장할 수 있다. 예를 들어, 제 1 프로세서 810는 제 1 시점 851(예: 10시 40분), 제 1 시점 851으로부터 1분 후인 제 2 시점 853(예: 10시 41분), 제 1 시점 851으로부터 2분 후인 제 3 시점 855(예: 10시 42분)에 대한 이미지를 생성해서 제 1 메모리 영역 841 내지 제 3 메모리 영역 845에 각각 저장할 수 있다. 제 1 프로세서 810는, 액티브 모드에서, 제 2 프로세서 820에게 제 1 시점 851에, 타이머를 구동할 것을 명령하고, 슬립 모드로 전환될 수 있다. 제 2 프로세서 820는, 제 1 시점 851에 타이머를 구동시켜, 제 1 시점 851으로부터 미리 정한 시간(예: 1분)이 경과되었으면, 타이머 이벤트를 감지할 수 있다. 제 2 프로세서 820는, 타이머 이벤트에 반응하여, 타이머 이벤트에 대응하는 동작/기능이, 시간 표시 화면의 표시인지를 확인하여, 해당 기능/동작을 수행할 제 3 프로세서 830에게 해당 기능/동작과 관련된 명령을 전달할 수 있다. 제 2 프로세서 820로부터 전달받은 명령에 기반하여 제 3 프로세서 830는 슬립 모드에서 액티브 모드로 전환할 수 있다. 제 3 프로세서 830는 메모리 840 내 제 2 메모리 영역 843에 저장되어 있는 제 2 시점 853에 대한 이미지를 디스플레이를 통해 표시할 수 있다. 한 실시예에 따르면, 제 3 프로세서 830는 디스플레이 컨트롤러가 제 2 시점 853에 대한 이미지를 디스플레이하도록 디스플레이 컨트롤러 내부의 레지스터를 설정할 수 있다. 제 3 프로세서 830는 디스플레이 동작이 종료된 후 액티브 모드에서 슬립 모드로 전환될 수 있다. 제 2 프로세서 820는 타이머가 미리 정한 시간이 경과 되었을 경우, 디스플레이를 통해 표시하기 위해 제 3 프로세서 830의 동작 모드를 변경하는 명령을 전송할 수 있다. 제 3 프로세서 830는 제 3 메모리 영역 845에 저장되어 있는 2분 후 시간 855을 디스플레이를 통해 표시할 수 있다. 따라서 3분 동안 제 1 프로세서 810는 슬립 모드로 운용하여 저전력 상태를 유지할 수 있다.
부분 디스플레이가 구현 가능한 경우, 이전의 화면에서 갱신이 필요한 부분 화면만 계속적으로 업데이트되고, 상기 부분 화면을 제외한 나머지 화면은 변경 없이 계속 유지되도록 설정될 수 있다. 제 3 프로세서 830는 적은 양의 데이터(예: 갱신이 필요한 부분 화면)를 제 3 프로세서 830에 의해 별도로 제어되는 메모리(예: 제 3 메모리(미도시))에 저장하여 제 2 프로세서 820의 이벤트 감지에 기반하여, 해당 이벤트와 관련된 디스플레이를 업데이트할 수 있다.
한 실시예에 따르면, 전자 장치는 제 1 프로세서, 및 제 2 프로세서를 포함하고, 상기 제 2 프로세서는, 전자 장치와 연관된 이벤트에 기반하여, 상기 제 1 프로세서와 제 3 프로세서를 포함하는 다수의 프로세서들 중에서 제1 정보를 표현하는 하나 이상의 동작을 수행할 프로세서를 결정하고, 상기 결정된 프로세서에게 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서, 상기 제 2 프로세서 및 상기 제 3 프로세서는 하나의 칩에 구현될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서의 성능(performance capability)은 상기 제 2 프로세서의 성능보다 좋을 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서, 상기 제 2 프로세서 및 상기 제 3 프로세서와 기능적으로 연결된 전력 관리 모듈을 더 포함하고, 상기 전력 관리 모듈은 상기 제1 명령에 기반하여 상기 하나 이상의 동작을 수행할 프로세서의 동작 모드를 변경하도록 설정될 수 있다.
한 실시예에 따르면, 제 2 프로세서는 근거리 통신 모듈에 연결되고, 상기 제 1 프로세서가 슬립 모드일 경우, 외부 전자 장치로부터 상기 근거리 통신 모듈을 통해 제1 데이터를 수신하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서는 제 1 운영체제를 구동하고, 상기 제 2 프로세서는 제 2 운영체제를 구동하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서는 상기 제 1 프로세서와 기능적으로 연결된 제 1 메모리를 이용하여, 상기 제 1 운영체제를 부팅하고, 상기 제 1 메모리를 통해, 상기 제 2 운영 체제의 부팅 바이너리 코드를 상기 제 2 프로세서와 기능적으로 연결된 제 2 메모리에 로드하도록 설정되고, 상기 제 2 프로세서는, 상기 제 2 메모리를 이용하여, 상기 부팅 바이너리 코드를 실행시켜, 상기 제 2 운영체제를 부팅하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서는 상기 제 1 메모리 또는 상기 제 2 메모리 중 적어도 하나의 메모리에 접근하도록 설정되고, 상기 제 2 프로세서는 상기 제 2 메모리에 접근하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서는 상기 제 2 메모리 중 프로그램 영역을 제외한 나머지 영역에 접근하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 2 프로세서는 외부 전자 장치로부터 상기 제1 정보와 연관된 제1 데이터를 획득하고, 상기 제1 데이터를 상기 제 2 메모리에 저장하도록 설정되고, 상기 제 1 프로세서는 상기 하나 이상의 동작을 수행할 프로세서가 상기 제 1 프로세서일 경우, 상기 제1 명령에 기반하여 상기 제 2 메모리에 접근하여 상기 제1 데이터를 획득하고, 상기 제1 데이터에 기반하여 상기 하나 이상의 동작을 수행하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 2 프로세서는 상기 제 1 프로세서가 슬립 모드인 경우, 상기 제 1 프로세서가 슬립 모드에서 액티브 모드로 변경되었을 때 수행할 작업에 관한 제2 정보를 상기 제2 프로세서로 전송하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서는 상기 하나 이상의 동작에 사용될 제2 데이터를 상기 제 3 프로세서가 접근 가능한 메모리에 저장하도록 설정되고, 상기 제 3 프로세서는 상기 하나 이상의 동작을 수행할 프로세서가 상기 제 3 프로세서일 경우, 상기 제1 명령에 기반하여 상기 제2 데이터를 사용하기 위해 상기 메모리에 접근하도록 설정될 수 있다.
한 실시예에 따르면, 상기 제 3 프로세서는 상기 제 1 프로세서에 비해 낮은 전력을 소모하도록 설정되고, 상기 제 2 프로세서는, 상기 이벤트가 주기적으로 발생하는 타이머 이벤트이고, 상기 하나 이상의 동작이 저장된 이미지 중 상기 이벤트에 대응되는 이미지를 표현하는 동작 또는 저전력으로 수행될 수 있는 동작인 경우에, 상기 하나 이상의 동작을 수행할 프로세서로 상기 제 3 프로세서를 결정하도록 설정될 수 있다.
한 실시예에 따르면, 상기 이벤트가 상기 전자 장치와 일정 거리 내에 위치한 외부 장치로부터 상기 외부 장치와 관련된 상품 정보를 포함하는 비콘 신호를 수신한 때에 발생한 이벤트이고, 상기 상품 정보가 상기 전자 장치의 사용자에 의해 설정된 설정 정보에 대응되는 경우에, 상기 하나 이상의 동작을 수행할 프로세서로 상기 제 3 프로세서를 결정하도록 설정될 수 있다.
도 9는 다양한 실시예에 따른, 전자 장치의 이벤트 처리 방법의 흐름도를 도시한다. 도 9를 참조하면, 다수의 프로세서들을 포함하는 전자 장치(제 1 전자 장치 410)에서, 감지된 이벤트가 특정 이벤트(예: 화면에 표시하는 기능/동작에 관련된 이벤트)인 경우, 해당 이벤트에 대한 기능/동작을 다수의 프로세서들 중 어느 프로세서에서 처리할 지를 결정할 수 있다.
동작 901에서, 다수의 프로세서들 중 특정 프로세서(예: 제 2 프로세서 520)는 전자 장치와 연관된 이벤트를 감지할 수 있다. 이벤트는 예를 들어, 전자 장치 주변의 음향, 빛, 움직임, 기울기와 같은 센서 정보의 수신, (근거리 통신을 통한) 외부 전자 장치(예: 전자 장치 420)로부터 메시지/데이터의 수신 또는 타이머 이벤트 등을 포함할 수 있다.
한 실시예에 따르면, 타이머 이벤트의 감지를 위해, 특정 프로세서는 특정 프로세서의 내부 회로 또는 특정 프로세서와 인접한 다른 구성요소에 타이머를 포함할 수 있다. 이 경우에, 특정 프로세서는 타이머를 동작시킨 후에 미리 설정된 시간이 경과되면 발생하는 타이머 이벤트를 감지할 수 있다.
동작 903에서, 특정 프로세서는 동작 901에서 감지된 이벤트에 반응하여 디스플레이를 통해 이벤트 관련 정보를 표현하는 기능/동작을 수행할지를 결정할 수 있다. 예를 들어, 감지된 이벤트가 근거리 통신을 통한 외부 전자 장치로부터 메시지(예: BT 패킷)의 수신인 경우, 특정 프로세서는 수신된 메시지의 적어도 일부(예: 헤더)에 포함된 정보에 기반하여, 해당 메시지에 대응하는 기능/동작이 해당 메시지와 관련된 정보를 표시하는 기능/동작인지를 결정할 수 있다. 특정 프로세서는 예를 들면, 수신된 메시지의 적어도 일부에 디스플레이를 통해 표현할 정보(예: 메시지 또는 알림)가 포함되어 있는 경우, 해당 메시지에 대응하는 기능/동작을 해당 메시지와 관련된 정보를 표시하는 기능/동작으로 결정할 수 있다.
동작 905에서, 특정 프로세서는, 이벤트 관련 정보를 표시하는 기능/동작을 수행하기로 결정된 경우에, 다수의 프로세서들 중 해당 기능/동작을 수행할 프로세서를 결정할 수 있다. 한 실시예에 따르면, 특정 프로세서(예: 제 2 프로세서 520)는, 해당 기능/동작을 수행할 프로세서로, 다수의 프로세서들 중 특정 프로세서 외의 나머지 프로세서들(예: 제 1 프로세서 510, 제 3 프로세서 530) 중의 하나를 선택할 수 있으나, 이에 국한되는 것은 아니며, 제 2 프로세서 520 자신을 선택 가능하도록 설정될 수도 있다.
동작 907에서, 특정 프로세서는, 동작 905에서 결정된 프로세서가 슬립 모드인 경우에, 해당 프로세서의 동작 모드를 변경하기 위한 명령을 전달할 수 있다. 한 실시예에 따르면, 제 2 프로세서는, 메시지(예: BT 패킷)의 프로파일에 기반하여, 제 2 프로세서 또는 제 3 프로세서가 해당 메시지를 처리 할 수 없다고 판단되는 경우(예: 메시지를 디스플레이를 통해 표시)에, 제 1 프로세서를 해당 메시지를 처리할 프로세서로 결정하고, 제 1 프로세서가 슬립 모드인 경우에, 제 1 프로세서의 동작 모드를 변경하는 명령을 제 1 프로세서 또는 제 1 프로세서와 연결된 다른 구성요소(예: 도 7의 전력 관리 모듈 710)에 전송할 수 있다.
도 10a 및 10b는 다양한 실시예에 따른, 전자 장치의 이벤트 처리 과정에서의 프로세서 간 통신을 도시한다. 도 10a를 참조하면, 한 실시예에 따른 전자 장치(예: 제 1 전자 장치 410)의 다수의 프로세서들, 제 1 프로세서 1001, 제 2 프로세서 1002, 또는 제 3 프로세서 1003 각각은 통신부(예: 메일 박스)를 통해 외부 전자 장치에 대하여 데이터를 송수신할 수 있다. 다수의 프로세서들의 각각은 서로 독립적으로 동작 모드(예: 액티브 모드 또는 슬립 모드)를 전환할 수 있다.
한 실시예에 따르면, 동작 1010에서, 제 1 프로세서 1001는 동작 모드를 액티브 모드에서 슬립 모드로 전환하는 경우에, 슬립 모드와 관련된 슬립 정보를 다른 프로세서, 예를 들면, 제 2 프로세서 1002 또는 제 3 프로세서 1003에게 전달할 수 있다. 한 실시예에 따르면, 제 1 프로세서 1001는 레지스터에 지정된 값을 설정하여 제 1 프로세서 1001의 동작 모드를 표시할 수 있다. 제 2 프로세서 1002 또는 제 3 프로세서 1003는, 제 1 프로세서 1001가 슬립 모드인 경우에, 액티브 모드로 동작하여, 제 1 프로세서 1001가 슬립 모드인 때에 발생한 이벤트를, 제 1 프로세서 1001를 대신하여 처리할 수 있다.
한 실시예에 따르면, 동작 1020에서, 제 2 프로세서 1002는 센서 모듈을 통해 전자 장치 주변의 환경 정보를 감지할 수 있으며, 근거리 통신 모듈을 통해 외부 장치(예: 제 2 전자 장치 420)와 통신할 수 있다. 제 2 프로세서 1002는, 예를 들면, 외부 장치와의 근거리 통신의 적어도 일부로, 외부 장치와 근거리 통신이 연결되었는지 확인하기 위한 BLE 패킷을 수신할 수 있으며, 외부 장치로부터 메시지나 알림 같은 BT패킷을 수신할 수 있다. 외부 장치로부터 BT 패킷이 수신된 경우, 제 2 프로세서 1002는, BT 패킷의 헤더나 프로파일 정보에 기반하여, 다수의 프로세서들 중 해당 BT 패킷에 대응되는 동작/기능을 수행할 프로세서로 제 1 프로세서 1001를 결정할 수 있다.
제 2 프로세서 1002는 제 1 프로세서 1001가 해당 BT 패킷의 수신에 반응하여 수행할 동작/기능을 가리키는 정보를 통신부(예: 메일 박스)를 통해, 제 1 프로세서 1001에 전달할 수 있다. 동작 1030에서, 제 2 프로세서 1002는, 제 1 프로세서 1001가 슬립 모드인 경우에, 제 1 프로세서 1001의 동작을 액티브 모드로 변경하기 위한 제어 명령을 송신할 수 있다. 예를 들어, 제 1 프로세서 1001의 동작 모드를 바꾸기 위해 레지스터를 설정할 수 있다. 제 1 프로세서 1001 및 제 2 프로세서 1002에 제어 신호를 전달하는 다른 모듈(예: 시스템 제어 모듈 725)은, 설정된 레지스터에 기반하여, 제 1 프로세서 1001에게 리셋(reset) 신호를 전달할 수 있다.
제 1 프로세서 1001는 리셋 신호에 의해 슬립 모드에서 액티브 모드로 전환되며(1040), 액티브 모드에서, 통신부를 확인하여, 해당 BT 패킷과 관련된 기능/동작을 수행할 수 있다. 예를 들어, 해당 BT 패킷에 포함된 정보(예: BT 패킷의 발신자, 메시지, 수신 시각 등) 또는 BT 패킷과 관련된 다른 정보(예: BT 패킷을 처리/표시하기 위한 애플리케이션 표시)를 디스플레이를 통해 디스플레이할 수 있다.
도 10b를 참조하면, 한 실시예에 따른, 전자 장치(예: 제 1 전자 장치 410)의 다수의 프로세서들, 제 1 프로세서 1051, 제 2 프로세서 1052, 또는 제 3 프로세서 1053 각각은 통신부(예: 메일 박스)를 통해 외부 전자 장치에 대하여 데이터를 송수신할 수 있다. 다수의 프로세서들의 각각은 서로 독립적으로 동작 모드(예: 액티브 모드 또는 슬립 모드)를 전환할 수 있다.
한 실시예에 따르면, 제 1 프로세서 1051는 액티브 모드에서 디스플레이를 통해 표현 할 정보를 미리 생성할 수 있다. 디스플레이를 통해 표현 할 정보는 전자 장치(예: 제 1 전자 장치 410)에서 생성하거나 외부 장치를 통해 수신할 수 있다. 동작 1060에서, 제 1 프로세서 1051는 생성한 정보를 제 3 프로세서 1053에 전달 할 수 있다. 또는 제 3 프로세서 1053가 접근할 수 있는 메모리에 저장할 수 있다. 제 1 프로세서 1051는 제 2 프로세서 1052가 수행할 동작/기능을 가리키는 정보(예: 타이머 수행)를 통신부(예: 메일 박스)를 통해, 제 2 프로세서 1052에 전달할 수 있다. 동작 1065에서, 제 1 프로세서 1051는 액티브 모드로 동작하다 슬립 모드로 전환하는 경우에, 액티브 모드에서 슬립 모드로 전환한다는 슬립 정보를 다른 프로세서, 예를 들면, 제 2 프로세서 1052 또는 제 3 프로세서 1053에게 전달할 수 있다. 한 실시예에 따르면, 제 1 프로세서 1051는 레지스터에 지정된 값을 설정하여 제 1 프로세서 1051의 동작 모드를 표시할 수 있다.
한 실시예에 따르면, 동작 1070에서, 제 3 프로세서 1053는 제 3 프로세서 1053 의 상황에 따라 슬립 모드로 전환할 수 있다. 예를 들어, 제 1 프로세서 1051 및 제 2 프로세서 1052가 슬립 모드로 동작하는 상황에서, 제 2 프로세서 1052는 액티브 모드로 동작할 수 있다. 제 2 프로세서 1052는 통신부를 통해 제 1 프로세서 1051로부터 전달받은 명령에 기반하여 제 2 프로세서 1052가 수행할 동작/기능(예: 타이머 이벤트)을 실행할 수 있다. 동작 1080에서, 제 2 프로세서 1052는 타이머 실행에 기반하여 미리 정의된 시간이 경과한 시점에 타이머 이벤트를 감지할 수 있다. 이벤트(예: 타이머 경과 이벤트) 발생에 기반하여, 제 2 프로세서 1052는 디스플레이를 통해 표현 할 정보에 기반하여, 다수의 프로세서들 중 해당 정보를 처리할 프로세서로 제 3 프로세서 1053를 결정할 수 있다. 동작 1085에서, 제 2 프로세서 1052는 제 3 프로세서 1053가 액티브 모드에서 해야 할 동작/기능을 통신부(예: 메일 박스)를 통해 전달할 수 있다. 제 2 프로세서 1052는 제 3 프로세서 1053의 동작 모드를 변경하기 위한 제어 명령을 송신할 수 있다. 예를 들어, 제 3 프로세서 1053의 동작 모드를 바꾸기 위해 레지스터를 설정할 수 있다. 레지스터에 기반하여 시스템 제어 모듈 725은 제 3 프로세서 1053에게 리셋(reset) 신호를 전달할 수 있다.
동작 1090에서, 제 1 프로세서 1051는 리셋 신호에 의해 슬립 모드에서 액티브 모드로 전환되며, 통신부를 확인하여 미리 정의된 동작을 수행할 수 있다. 예를 들어, 제 1 프로세서 1051가 생성한 정보 1060를 디스플레이를 통해 디스플레이할 수 있다. 제 3 프로세서 1053는 제 1 프로세서 1051 또는 제 2 프로세서 1052가 통신부(예: 메일 박스)를 통해 전달한 동작에 따라 상기 디스플레이 동작을 이벤트 발생에 기반하여 반복적으로 수행할 수 있다. 표현될 정보가 메모리(예: 메모리 840)에 남아 있는 경우, 통신부를 통해 제 2 프로세서 1052에게 다음 동작(예: 타이머 실행)을 전송할 수 있다. 표현될 정보가 메모리에 남아 있지 않은 경우, 통신부를 통해 제 1 프로세서 1051에게 다음 동작(예: 표현될 정보 생성)을 전송할 수 있다.
도 11은 다양한 실시예에 따른, 사용자 1110가 전자 장치 1120를 통해 이벤트 관련 정보를 제공받는 예를 도시한다. 전자 장치 1120는, 예를 들면 사용자 1110가 용이하게 소지 또는 휴대할 수 있는, 웨어러블 디바이스(예: 제 1 전자 장치 410) 또는 휴대 단말기(예: 제 2 전자 장치 420)일 수 있다.
한 실시예에 따르면, 사용자 1110는 전자 장치 1120를 소지하고, 물건(예: 식료품이나 전자 기기)을 판매하는 상점에 방문할 수 있다. 사용자 1110는 물건을 구매하러 가기 전, 사야 할 품목 1130을 포함하는 위시 리스트(wish list)를 전자 장치 1120에 저장할 수 있다. 위시 리스트는, 상대적으로 적은 전력을 소모하도록 설정된 특정 프로세서(예: 제 2 프로세서 520)를 통해 색인 될 수 있다. 예를 들면, 전자 장치 1120에서 상대적으로 적은 전력을 소모하도록 설정된 특정 프로세서(예: 제 2 프로세서 520)를 통해 BLE가 구동되는 경우에, 위시 리스트는 상대적으로 적은 전력을 소모하도록 설정된 특정 프로세서(예: 제 2 프로세서 520)를 통해 활성화될 수 있으며, 위시 리스트 상에 없는 품목에 대한 쿠폰 또는 광고가 BLE를 통해 수신되어도 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)를 깨워 사용자 1110에게 관련 정보를 알려 주지 않도록 설정될 수 있다. 한편, 위시 리스트 상에 있는 품목에 대한 쿠폰 또는 광고가 수신되거나 해당 품목의 비콘 장치에 근접하게 되면, 상대적으로 적은 전력을 소모하도록 설정된 특정 프로세서(예: 제 2 프로세서 520)를 통해 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)가 슬립 모드로부터 액티브 모드로 전환되어 사용자 1110 에게 알림을 주거나 구매 행위를 하도록 할 수 있다.
전자 장치 1120는, 다수의 프로세서들 중 상대적으로 적은 전력을 소모하도록 설정된 특정 프로세서(예: 제 2 프로세서 520)를 통해 BLE를 구동할 수 있다. 이때, BLE 외에 다른 기능/동작의 수행이 요구되지 않는 경우에는, 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)는, 슬립 모드로 동작하여, 저전력 상태를 유지할 수 있다.
한 실시 예에 따르면, 전자 장치 1120는, 사용자 1110가 위시 리스트에 있는 품목 1130을 사지 않고 해당 품목 1130이 위치한 진열대를 지나친 것으로 판단되는 경우(예: 전자 장치 1120가 비콘 장치 1140(예: BLE AP 또는 WiFi AP)로부터 특정 거리 이상 멀어진 경우), 상대적으로 적은 전력을 소모하도록 설정된 프로세서(예: 제 2 프로세서 520)가 해당 위시 리스트에 있는 목록이 사용자로부터 멀어졌음을 BT 프로파일을 통해 알아내고, 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)가 슬립 모드에서 액티브 모드로 전환되도록 하여, 위시 리스트에 등록된 품목을 구매하지 않음에 대한 알림을 표시, 소리 또는 진동 중 적어도 하나를 통해 표현할 수 있다.
한 실시예에 따르면, 매장에 BLE 포인트 기기 1140가 설치되어 사용자 1110의 전자 장치 1120에, BLE 통신을 통해, 위시 리스트에 포함된 품목과 관련된 광고를 전달할 수 있다. 관련 광고는 상대적으로 적은 전력을 소모하도록 설정된 프로세서(예: 제 2 프로세서 520)를 통해 사용자의 데이터 베이스나 특정 리스트에 저장 될 수 있으며, 이를 통해 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)가 관련 광고에 데이터 베이스 관리나 리스트 저장을 하지 않고 광고마다 알림을 주지 않아도 되기 때문에 배터리 사용 시간을 늘릴 수 있다. 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)는 관련 광고의 디스플레이나 결제 행위 등의 반드시 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)의 사용이 필요한 경우에만 슬립 모드에서 액티브 모드로 전환될 수 있으며, 관련 광고 리스트도 사용자가 원하거나 배터리 여유가 충분한 시점에 특정 프로세서 외의 다른 프로세서(예: 제 1 프로세서 510)를 통해 한번에 표시 될 수 있다. 사용자 1110는 구매를 희망하는 상품을 선택하고 계산대로 이동하여, 전자 장치 1120를 제시하면, 매장에서는 전자 장치 1120를 통해 고객 정보를 확인하고, 사용자 1110가 선택한 상품에 대해 결제 요청을 할 수 있다. BLE 통신이나 상품 정보 또는 결재 정보의 단순 표시는 상대적으로 높은 전력을 요구하지 않는 기능/동작이므로, 전자 장치의 다수의 프로세서들 중 상대적으로 소모 전력이 높은 프로세서(예: 제 1 프로세서 510)는 슬립 모드를 유지하고, 상대적으로 소모 전력이 낮은 프로세서(예: 제 3 프로세서 530)가 구매 상품 리스트나 결제 요청 화면을 디스플레이 하도록 설정될 수 있다.
한 실시예에 따르면, 다수의 프로세서들을 운용하는 방법은 제1 프로세서 또는 제2 프로세서에서, 전자 장치와 연관된 이벤트를 감지하고, 상기 제 2 프로세서에서, 상기 이벤트에 기반하여, 정보를 표현할 하나 이상의 동작을 수행할지 여부를 결정하고, 상기 제 2 프로세서에서, 상기 결정에 기반하여, 제 1 프로세서내지 제 3 프로세서를 포함하는 다수의 프로세서들 중에서 상기 하나 이상의 동작을 수행할 프로세서를 결정하고, 상기 제 2 프로세서에서, 상기 결정된 프로세서로 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하는 동작을 포함할 수 있다.
한 실시예에 따르면, 상기 감지하는 동작은 외부 전자 장치로부터 상기 정보를 획득하고, 접근 가능한 메모리에 상기 정보를 저장하고, 상기 결정된 프로세서가 상기 제1 명령에 기반하여 상기 하나 이상의 동작을 수행하기 위해 상기 메모리에 접근하여 상기 정보를 획득하는 동작을 포함할 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서가 상기 하나 이상의 동작과 연관된 데이터를 메모리에 저장하고, 상기 이벤트를 생성하기 위한 제2 명령을 상기 제 2 프로세서에 전달하고, 상기 결정된 프로세서가 상기 제 3 프로세서일 경우, 상기 제1 명령에 기반하여 상기 데이터를 이용하여 상기 하나 이상의 동작을 수행하는 동작을 더 포함할 수 있다.
한 실시예에 따르면, 상기 데이터를 이용하여 상기 하나 이상의 동작을 수행하는 동작은, 디스플레이를 통해 수행되었음을 상기 제 2 프로세서 또는 상기 제 3 프로세서에게 인터럽트 채널을 통해 알려주는 동작을 포함할 수 있다.
한 실시예에 따르면, 상기 전송하는 동작은, 상기 결정된 프로세서가 상기 제 1 프로세서일 경우, 상기 제 1 프로세서에 전력을 공급하고, 상기 결정된 프로세서가 상기 제 3 프로세서일 경우, 상기 제 3 프로세서에 전력을 공급하는 동작을 포함할 수 있다.
한 실시예에 따르면, 상기 제 1 프로세서 또는 제 2 프로세서는 근거리 통신 모듈의 구동 코드 중 적어도 일부를 포함할 수 있다.
한 실시예에 따르면, 명령들을 저장하고 있는 저장 매체에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은, 제1 프로세서 또는 제2 프로세서에서, 전자 장치와 연관된 이벤트를 감지하는 동작; 상기 제 2 프로세서에서, 상기 이벤트에 기반하여, 정보를 표현할 하나 이상의 동작을 수행할지 여부를 결정하는 동작; 상기 제 2 프로세서에서, 상기 결정에 기반하여, 제 1 프로세서와 제 3 프로세서를 포함하는 다수의 프로세서들로부터 동작 모드를 변경할 프로세서를 결정하는 동작; 및 상기 제 2 프로세서에서, 상기 결정된 프로세서로 명령을 전송하는 동작을 포함할 수 있다.
다양한 실시예에 따른 전자 장치는 다수의 프로세서들 중 일부의 프로세서의 동작이 불필요한 상황에서, 일부의 프로세서들을 슬립 모드로 구동함으로써, 전자 장치 전체의 전력 소모를 줄일 수 있다. 한 실시예에 따르면, 제 2 프로세서는, 제 1 프로세서 혹은 제 3 프로세서가 슬립 모드인 상태에서, 이벤트에 기반하여 해당 이벤트에 연관된 동작을 수행할 주체가 어떤 프로세서인지를 결정하여 해당 프로세서의 동작 모드를 변경할 수 있다. 제 3 프로세서는 액티브 모드로 동작 시, 제 1 프로세서를 슬립 모드에서 액티브 모드로 전환하지 않고, 제 1 프로세서의 일부 기능을 수행 (예: 제 3 프로세서가 외부로부터 제 1 프로세서에 수신된 데이터를 획득하여, 획득된 데이터를 처리)할 수 있다.
다양한 실시예에 따른 전자 장치는 제 2 프로세서에 근거리 통신 모듈을 연결하여 근거리 통신 모듈을 통해 데이터를 송수신할 시, 제 1 프로세서가 슬립 모드인 상태에서, 제 1 프로세서를 슬립 모드에서 액티브 모드로 전환하지 않고도 제 2 프로세서에서 수신되거나 송신할 데이터를 처리할 수 있다.
다양한 실시예에 따른 전자 장치는 제 1 프로세서 또는 제 2 프로세서를 하나의 칩(예: SOC, system on chip)으로 구현함으로써, 각 프로세서에서 제어하는 메모리 및 주변 장치에 접근하는데 동일한 어드레스를 사용할 수 있다. 또한 실장 면적을 줄일 수 있기 때문에, 웨어러블 기기(wearable device)와 같이 부피가 작은 휴대용 기기에 활용할 수 있다.
510: 제 1 프로세서
520: 제 2 프로세서
521: 이벤트 감지 모듈
523: 프로세서 결정 모듈
525: 제어 명령 송신 모듈
530: 제 3 프로세서

Claims (20)

  1. 제 1 프로세서; 및
    제 2 프로세서를 포함하고,
    상기 제 2 프로세서는, 전자 장치와 연관된 이벤트에 기반하여, 상기 제 1 프로세서와 제 3 프로세서를 포함하는 다수의 프로세서들 중에서 제1 정보를 표현하는 하나 이상의 동작을 수행할 프로세서를 결정하고, 상기 결정된 프로세서에게 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하도록 설정된 전자 장치.
  2. 제 1 항에 있어서,
    상기 제 1 프로세서, 상기 제 2 프로세서 및 상기 제 3 프로세서는 하나의 칩에 구현되는 전자 장치.
  3. 제 1 항에 있어서,
    상기 제 1 프로세서의 성능(performance capability)은 상기 제 2 프로세서의 성능보다 좋은 전자 장치.
  4. 제 1 항에 있어서,
    상기 제 1 프로세서, 상기 제 2 프로세서 및 상기 제 3 프로세서와 기능적으로 연결된 전력 관리 모듈을 더 포함하고,
    상기 전력 관리 모듈은 상기 제1 명령에 기반하여 상기 하나 이상의 동작을 수행할 프로세서의 동작 모드를 변경하도록 설정된 전자 장치.
  5. 제 1항에 있어서,
    제 2 프로세서는 근거리 통신 모듈에 연결되고,
    상기 제 1 프로세서가 슬립 모드일 경우, 외부 전자 장치로부터 상기 근거리 통신 모듈을 통해 제1 데이터를 수신하도록 설정된 전자 장치.
  6. 제 1 항에 있어서,
    상기 제 1 프로세서는 제 1 운영체제를 구동하고, 상기 제 2 프로세서는 제 2 운영체제를 구동하도록 설정된 전자 장치.
  7. 제 6 항에 있어서,
    상기 제 1 프로세서는 상기 제 1 프로세서와 기능적으로 연결된 제 1 메모리를 이용하여, 상기 제 1 운영체제를 부팅하고, 상기 제 1 메모리를 통해, 상기 제 2 운영 체제의 부팅 바이너리 코드를 상기 제 2 프로세서와 기능적으로 연결된 제 2 메모리에 로드하도록 설정되고,
    상기 제 2 프로세서는, 상기 제 2 메모리를 이용하여, 상기 부팅 바이너리 코드를 실행시켜, 상기 제 2 운영체제를 부팅하도록 설정된 전자 장치.
  8. 제 7 항에 있어서,
    상기 제 1 프로세서는 상기 제 1 메모리 또는 상기 제 2 메모리 중 적어도 하나의 메모리에 접근하도록 설정되고, 상기 제 2 프로세서는 상기 제 2 메모리에 접근하도록 설정된 전자 장치.
  9. 제 7항에 있어서,
    상기 제 1 프로세서는 상기 제 2 메모리 중 프로그램 영역을 제외한 나머지 영역에 접근하도록 설정된 전자 장치.
  10. 제 6 항에 있어서,
    상기 제 2 프로세서는 외부 전자 장치로부터 상기 제1 정보와 연관된 제1 데이터를 획득하고, 상기 제1 데이터를 상기 제 2 메모리에 저장하도록 설정되고,
    상기 제 1 프로세서는 상기 하나 이상의 동작을 수행할 프로세서가 상기 제 1 프로세서일 경우, 상기 제1 명령에 기반하여 상기 제 2 메모리에 접근하여 상기 제1 데이터를 획득하고, 상기 제1 데이터에 기반하여 상기 하나 이상의 동작을 수행하도록 설정된 전자 장치.
  11. 제 10 항에 있어서,
    상기 제 2 프로세서는 상기 제 1 프로세서가 슬립 모드인 경우, 상기 제 1 프로세서가 슬립 모드에서 액티브 모드로 변경되었을 때 수행할 작업에 관한 제2 정보를 상기 제1 프로세서로 전송하도록 설정된 전자 장치.
  12. 제 1 항에 있어서,
    상기 제 1 프로세서는 상기 하나 이상의 동작에 사용될 제2 데이터를 상기 제 3 프로세서가 접근 가능한 메모리에 저장하도록 설정되고,
    상기 제 3 프로세서는 상기 하나 이상의 동작을 수행할 프로세서가 상기 제 3 프로세서일 경우, 상기 제1 명령에 기반하여 상기 제2 데이터를 사용하기 위해 상기 메모리에 접근하도록 설정된 전자 장치.
  13. 제 1 항에 있어서,
    상기 제 3 프로세서는 상기 제 1 프로세서에 비해 낮은 전력을 소모하도록 설정되고,
    상기 제 2 프로세서는, 상기 이벤트가 상기 전자 장치와 일정 거리 내에 위치한 외부 장치로부터 상기 외부 장치와 관련된 상품 정보를 포함하는 비콘 신호를 수신한 때에 발생한 이벤트이고, 상기 상품 정보가 상기 전자 장치의 사용자에 의해 설정된 설정 정보에 대응되는 경우에, 상기 하나 이상의 동작을 수행할 프로세서로 상기 제 3 프로세서를 결정하도록 설정된 전자 장치.
  14. 제 1 프로세서 또는 제 2 프로세서에서, 전자 장치와 연관된 이벤트를 감지하는 동작;
    상기 제2 프로세서에서, 상기 이벤트에 기반하여, 정보를 표현할 하나 이상의 동작을 수행할지 여부를 결정하는 동작;
    상기 제2 프로세서에서, 상기 결정에 기반하여, 제 1 프로세서 내지 제 3 프로세서를 포함하는 다수의 프로세서들 중에서 상기 하나 이상의 동작을 수행할 프로세서를 결정하는 동작; 및
    상기 제2 프로세서에서, 상기 결정된 프로세서로 상기 하나 이상의 동작을 수행하기 위한 제1 명령을 전달하는 동작을 포함하는 다수의 프로세서들을 운용하는 방법.
  15. 제 14항에 있어서,
    상기 감지하는 동작은,
    외부 전자 장치로부터 상기 정보를 획득하는 동작;
    접근 가능한 메모리에 상기 정보를 저장하는 동작; 및
    상기 결정된 프로세서가 상기 제1 명령에 기반하여 상기 하나 이상의 동작을 수행하기 위해 상기 메모리에 접근하여 상기 정보를 획득하는 동작을 포함하는 다수의 프로세서들을 운용하는 방법.
  16. 제 14항에 있어서,
    상기 제 1 프로세서가 상기 하나 이상의 동작과 연관된 데이터를 메모리에 저장하는 동작;
    상기 이벤트를 생성하기 위한 제2 명령을 상기 제 2 프로세서에 전달하는 동작; 및
    상기 결정된 프로세서가 상기 제 3 프로세서일 경우, 상기 제1 명령에 기반하여 상기 데이터를 이용하여 상기 하나 이상의 동작을 수행하는 동작을 더 포함하는 다수의 프로세서들을 운용하는 방법.
  17. 제 16항에 있어서,
    상기 데이터를 이용하여 상기 하나 이상의 동작을 수행하는 동작은, 디스플레이를 통해 수행되었음을 상기 제 2 프로세서 또는 상기 제 3 프로세서에게 인터럽트 채널을 통해 알려주는 동작을 포함하는 다수의 프로세서들을 운용하는 방법.
  18. 제 14항에 있어서, 상기 전송하는 동작은,
    상기 결정된 프로세서가 상기 제 1 프로세서일 경우, 상기 제 1 프로세서에 전력을 공급하고, 상기 결정된 프로세서가 상기 제 3 프로세서일 경우, 상기 제 3 프로세서에 전력을 공급하는 동작을 포함하는 다수의 프로세서들을 운용하는 방법.
  19. 제 14항에 있어서,
    상기 제 1 프로세서 또는 상기 제 2 프로세서는 근거리 통신 모듈의 구동 코드 중 적어도 일부를 포함하는 다수의 프로세서들을 운용하는 방법.
  20. 명령들을 저장하고 있는 저장 장치에 있어서, 상기 명령들은 적어도 하나의 프로세서에 의하여 실행될 때에 상기 적어도 하나의 프로세서로 하여금 적어도 하나의 동작을 수행하도록 설정된 것으로서, 상기 적어도 하나의 동작은,
    제 1 프로세서 또는 제 2 프로세서에서, 전자 장치와 연관된 이벤트를 감지하는 동작;
    상기 제 2 프로세서에서, 상기 이벤트에 기반하여, 정보를 표현할 하나 이상의 동작을 수행할지 여부를 결정하는 동작;
    상기 제 2 프로세서에서, 상기 결정에 기반하여, 제 1 프로세서와 제 3 프로세서를 포함하는 다수의 프로세서들로부터 동작 모드를 변경할 프로세서를 결정하는 동작; 및
    상기 제 2 프로세서에서, 상기 결정된 프로세서로 명령을 전송하는 동작을 포함하는 저장 장치.
KR1020140154392A 2014-11-07 2014-11-07 다수의 프로세서들을 운용하는 장치 및 방법 KR20160054850A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020140154392A KR20160054850A (ko) 2014-11-07 2014-11-07 다수의 프로세서들을 운용하는 장치 및 방법
EP15193525.1A EP3018582A3 (en) 2014-11-07 2015-11-06 Multi-processor device
CN201510752416.3A CN105589336B (zh) 2014-11-07 2015-11-06 多处理器设备
US14/934,419 US10127051B2 (en) 2014-11-07 2015-11-06 Multi-processor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140154392A KR20160054850A (ko) 2014-11-07 2014-11-07 다수의 프로세서들을 운용하는 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20160054850A true KR20160054850A (ko) 2016-05-17

Family

ID=54540883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140154392A KR20160054850A (ko) 2014-11-07 2014-11-07 다수의 프로세서들을 운용하는 장치 및 방법

Country Status (4)

Country Link
US (1) US10127051B2 (ko)
EP (1) EP3018582A3 (ko)
KR (1) KR20160054850A (ko)
CN (1) CN105589336B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019172723A1 (ko) * 2018-03-08 2019-09-12 삼성전자 주식회사 이미지 센서와 연결된 인터페이스 및 복수의 프로세서들간에 연결된 인터페이스를 포함하는 전자 장치
KR102211853B1 (ko) * 2019-12-24 2021-02-03 주식회사 텔레칩스 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102306359B1 (ko) 2015-01-28 2021-09-30 삼성전자주식회사 복수의 프로세서들을 이용한 데이터 운용 방법 및 장치
JP2016208269A (ja) * 2015-04-22 2016-12-08 キヤノン株式会社 情報処理装置、画像処理装置、通知制御方法、並びにプログラム
US11874716B2 (en) 2015-08-05 2024-01-16 Suunto Oy Embedded computing device management
US9742278B2 (en) 2015-10-13 2017-08-22 Solantro Semiconductor Corp. Event-based switching for power conversion
CN106775609A (zh) * 2015-11-19 2017-05-31 飞思卡尔半导体公司 用于减少休眠及恢复时间的系统及方法
US10104171B1 (en) * 2015-11-25 2018-10-16 EMC IP Holding Company LLC Server architecture having dedicated compute resources for processing infrastructure-related workloads
US9733695B2 (en) * 2015-11-30 2017-08-15 International Business Machines Corporation Battery life management in portable terminal
FI127926B (en) 2015-12-21 2019-05-31 Suunto Oy Sensor-based context management
US11541280B2 (en) 2015-12-21 2023-01-03 Suunto Oy Apparatus and exercising device
US11284807B2 (en) 2015-12-21 2022-03-29 Amer Sports Digital Services Oy Engaging exercising devices with a mobile device
US11838990B2 (en) 2015-12-21 2023-12-05 Suunto Oy Communicating sensor data in wireless communication systems
US11587484B2 (en) 2015-12-21 2023-02-21 Suunto Oy Method for controlling a display
CN105611409B (zh) * 2016-01-04 2019-12-27 京东方科技集团股份有限公司 一种广告机控制系统及其控制方法和广告机
JP6752640B2 (ja) * 2016-06-27 2020-09-09 キヤノン株式会社 撮像装置
US10628172B2 (en) 2016-06-27 2020-04-21 Qualcomm Incorporated Systems and methods for using distributed universal serial bus (USB) host drivers
US10678494B2 (en) 2016-06-27 2020-06-09 Qualcomm Incorporated Controlling data streams in universal serial bus (USB) systems
JP2018013970A (ja) * 2016-07-21 2018-01-25 レノボ・シンガポール・プライベート・リミテッド ウェアラブルコンピュータ
US20180059640A1 (en) * 2016-09-01 2018-03-01 Esab Ab Techniques for event driven scheduling in a welding or cutting system
CN106774788B (zh) * 2016-11-23 2020-01-17 深圳市博巨兴微电子科技有限公司 一种基于mcu的soc及其内核协作控制单元
US11182303B2 (en) * 2016-12-21 2021-11-23 Vmware, Inc. Constructing bootloader address space without guaranteed physical memory layout
KR102235803B1 (ko) * 2017-03-31 2021-04-06 삼성전자주식회사 반도체 장치
US10649771B2 (en) 2017-03-31 2020-05-12 Samsung Electronics Co., Ltd. Semiconductor device
US20200147793A1 (en) * 2017-04-06 2020-05-14 Hewlett-Packard Development Company, L.P. Robot
EP3410285B1 (en) 2017-04-17 2019-09-25 Shenzhen Goodix Technology Co., Ltd. Electronic device and detection method
CN107454664B (zh) * 2017-07-28 2020-04-17 维沃移动通信有限公司 一种数据传输方法及移动终端
CN107277758B (zh) * 2017-07-31 2020-04-17 维沃移动通信有限公司 一种数据传输方法及移动终端
CN107490975A (zh) * 2017-09-14 2017-12-19 东莞市鼎锋智能电子科技有限公司 基于声音手势识别的智能家居系统及控制方法
JP2019056996A (ja) * 2017-09-20 2019-04-11 セイコーエプソン株式会社 情報処理装置、および、情報処理装置の制御方法
WO2019081358A1 (en) * 2017-10-27 2019-05-02 Signify Holding B.V. MICROPHONE CALIBRATION SYSTEM
CN111713141B (zh) * 2018-04-04 2021-12-31 华为技术有限公司 一种蓝牙播放方法及电子设备
CN110412881B (zh) * 2018-04-30 2022-10-14 仁宝电脑工业股份有限公司 分离式移动智能系统及其操作方法与基座装置
TWI749236B (zh) 2018-05-31 2021-12-11 元太科技工業股份有限公司 電泳顯示器系統及開發方法
WO2020140184A1 (en) 2018-12-31 2020-07-09 Intel Corporation Methods and apparatus to implement always-on context sensor hubs for processing multiple different types of data inputs
US11070377B1 (en) * 2019-02-14 2021-07-20 Bank Of America Corporation Blended virtual machine approach for flexible production delivery of intelligent business workflow rules
CN110300447B (zh) * 2019-06-28 2021-07-16 联想(北京)有限公司 一种控制方法和设备
CN112559196B (zh) * 2019-09-10 2024-03-26 航天科工惯性技术有限公司 一种进程间通讯数据共享的传输方法
US11537190B2 (en) * 2019-09-11 2022-12-27 Silicon Laboratories Inc. Dual processor system for reduced power application processing
JP7315020B2 (ja) * 2019-10-21 2023-07-26 日本電気株式会社 管理サーバ、管理システム、制御方法及びプログラム
US10840961B1 (en) * 2019-10-23 2020-11-17 Motorola Solutions, Inc. Method and apparatus for managing feature based user input routing in a multi-processor architecture using single user interface control
CN111123184A (zh) * 2019-11-07 2020-05-08 上海精密计量测试研究所 Fpga结温测试的校准装置及方法
WO2021104267A1 (zh) 2019-11-27 2021-06-03 出门问问信息科技有限公司 一种数据传输方法、装置和智能手表设备
CN110891259B (zh) * 2019-11-27 2021-11-09 出门问问信息科技有限公司 一种智能手表的低功耗蓝牙ble数据的传输方法、装置
CN111263339B (zh) * 2020-01-14 2021-06-04 荣耀终端有限公司 无线通信方法和具有无线通信功能的设备
CN113311736A (zh) * 2020-02-27 2021-08-27 Oppo广东移动通信有限公司 可穿戴设备的控制方法、装置、电子设备和可读存储介质
CN113535342A (zh) * 2020-04-15 2021-10-22 Oppo广东移动通信有限公司 一种切换方法、可穿戴设备及存储介质
KR20210132806A (ko) * 2020-04-28 2021-11-05 에스케이하이닉스 주식회사 메모리 시스템, 메모리 컨트롤러 및 메모리 시스템의 동작 방법
US11315209B2 (en) * 2020-05-08 2022-04-26 Black Sesame Technolgies Inc. In-line and offline staggered bandwidth efficient image signal processing
CN113760082A (zh) * 2020-06-02 2021-12-07 Oppo广东移动通信有限公司 电子设备
GB2597082B (en) * 2020-07-14 2022-10-12 Graphcore Ltd Hardware autoloader
CN112416441A (zh) * 2020-11-03 2021-02-26 西安领创电子科技有限公司 基于物联网的设备管理方法及装置、系统
CN112732341B (zh) * 2020-11-30 2023-08-01 北京百度网讯科技有限公司 车载计算平台的休眠控制方法、设备及可读存储介质
CN112492564B (zh) * 2020-12-08 2023-01-24 Oppo广东移动通信有限公司 系统切换方法和装置、电子设备、可读存储介质
CN114693292A (zh) * 2020-12-30 2022-07-01 Oppo广东移动通信有限公司 支付方法、装置、电子设备和计算机可读存储介质
CN113884976B (zh) * 2021-11-25 2022-10-14 安徽南瑞中天电力电子有限公司 一种基于云平台的智能电表数据保护方法、系统

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6240521B1 (en) * 1998-09-10 2001-05-29 International Business Machines Corp. Sleep mode transition between processors sharing an instruction set and an address space
US7328277B2 (en) * 2000-03-03 2008-02-05 Enterasys Networks, Inc. High-speed data processing using internal processor memory space
US6901276B1 (en) * 2001-05-01 2005-05-31 Palmone, Inc. Direct digital signal processor control of multi-channel scan for re-establishing connections in a wirelessly networked device
US7752423B2 (en) * 2001-06-28 2010-07-06 Intel Corporation Avoiding execution of instructions in a second processor by committing results obtained from speculative execution of the instructions in a first processor
US6904040B2 (en) * 2001-10-05 2005-06-07 International Business Machines Corporaiton Packet preprocessing interface for multiprocessor network handler
US7898994B2 (en) * 2002-02-25 2011-03-01 Hewlett-Packard Development Company, L.P. Power saving in multi-processor device
US7162620B2 (en) * 2002-03-13 2007-01-09 Sony Computer Entertainment Inc. Methods and apparatus for multi-processing execution of computer instructions
US7219121B2 (en) * 2002-03-29 2007-05-15 Microsoft Corporation Symmetrical multiprocessing in multiprocessor systems
US7450963B2 (en) * 2002-08-27 2008-11-11 Qualcomm Incorporated Low power dual processor architecture for multi mode devices
US20050132239A1 (en) * 2003-12-16 2005-06-16 Athas William C. Almost-symmetric multiprocessor that supports high-performance and energy-efficient execution
JP3830491B2 (ja) * 2004-03-29 2006-10-04 株式会社ソニー・コンピュータエンタテインメント プロセッサ、マルチプロセッサシステム、プロセッサシステム、情報処理装置および温度制御方法
JP2006323761A (ja) 2005-05-20 2006-11-30 Toshiba Corp 計算機装置、通信装置及びこれを用いた消費電力制御方法
US7496770B2 (en) * 2005-09-30 2009-02-24 Broadcom Corporation Power-efficient technique for invoking a co-processor
TW200721013A (en) * 2005-11-25 2007-06-01 Via Tech Inc Power source management apparatus of multi-processor system and method thereof
KR101275752B1 (ko) * 2005-12-06 2013-06-17 삼성전자주식회사 메모리 시스템 및 그것의 부팅 방법
US8799687B2 (en) * 2005-12-30 2014-08-05 Intel Corporation Method, apparatus, and system for energy efficiency and energy conservation including optimizing C-state selection under variable wakeup rates
JP2007206885A (ja) * 2006-01-31 2007-08-16 Toshiba Corp コンピュータシステム及びシステム起動方法
KR101173539B1 (ko) * 2006-02-15 2012-08-14 삼성전자주식회사 멀티프로세서 시스템 그리고 멀티프로세서 시스템의 초기화방법
US8136111B2 (en) * 2006-06-27 2012-03-13 International Business Machines Corporation Managing execution of mixed workloads in a simultaneous multi-threaded (SMT) enabled system
US7676683B2 (en) * 2006-08-24 2010-03-09 Sony Computer Entertainment Inc. Method and system for rebooting a processor in a multi-processor system
US20080127192A1 (en) * 2006-08-24 2008-05-29 Capps Louis B Method and System for Using Multiple-Core Integrated Circuits
US7734942B2 (en) * 2006-12-28 2010-06-08 Intel Corporation Enabling idle states for a component associated with an interconnect
US8504121B1 (en) * 2007-05-30 2013-08-06 Marvell International Ltd. Method and apparatus for reducing power consumption in a portable device
KR101417010B1 (ko) 2007-10-02 2014-07-08 엘지전자 주식회사 휴대단말기 및 그 부팅방법
TWI358635B (en) * 2008-02-26 2012-02-21 Mstar Semiconductor Inc Power managing method for a multi-microprocessor s
FI20085217A0 (fi) * 2008-03-07 2008-03-07 Nokia Corp Tietojenkäsittelyjärjestely
EP2263137A1 (en) 2008-04-07 2010-12-22 ST-Ericsson SA Mobile phone with low-power media rendering sub-system
US8683247B2 (en) * 2008-06-12 2014-03-25 Advanced Micro Devices, Inc. Method and apparatus for controlling power supply to primary processor and portion of peripheral devices by controlling switches in a power/reset module embedded in secondary processor
WO2010020151A1 (zh) * 2008-08-18 2010-02-25 成都市华为赛门铁克科技有限公司 报文处理方法、装置和系统
US8370605B2 (en) * 2009-11-11 2013-02-05 Sunman Engineering, Inc. Computer architecture for a mobile communication platform
US9098274B2 (en) * 2009-12-03 2015-08-04 Intel Corporation Methods and apparatuses to improve turbo performance for events handling
US8464035B2 (en) * 2009-12-18 2013-06-11 Intel Corporation Instruction for enabling a processor wait state
US8549339B2 (en) * 2010-02-26 2013-10-01 Empire Technology Development Llc Processor core communication in multi-core processor
US8194869B2 (en) * 2010-03-17 2012-06-05 Harman International Industries, Incorporated Audio power management system
CN101883446B (zh) * 2010-06-28 2014-03-26 华为终端有限公司 一种sd控制芯片及数据通信方法
US20110289332A1 (en) * 2010-05-24 2011-11-24 Advanced Micro Devices, Inc. Method and apparatus for power management in a multi-processor system
WO2012023152A2 (en) * 2010-08-19 2012-02-23 Ineda Systems Pvt. Ltd Multi-processor electronic systems
US8706172B2 (en) * 2010-10-26 2014-04-22 Miscrosoft Corporation Energy efficient continuous sensing for communications devices
US20130232538A1 (en) * 2010-11-18 2013-09-05 Thomson Licensing Bluetooth sharing for multiple processors
US8661290B2 (en) * 2011-01-14 2014-02-25 International Business Machines Corporation Saving power in computing systems with redundant service processors
EP2490403A1 (en) * 2011-02-17 2012-08-22 Alcatel Lucent Network communication node comprising a plurality of processors for processing layers of communication and associated node
GB2491914A (en) 2011-06-08 2012-12-19 Inst Information Industry Method of operating a heterogeneous computer system
WO2013036222A1 (en) * 2011-09-06 2013-03-14 Intel Corporation Power efficient processor architecture
US9348656B2 (en) * 2011-12-19 2016-05-24 Advanced Micro Devices, Inc. Apparatus and method for managing power among a plurality of processors sharing a thermal platform
US9569278B2 (en) * 2011-12-22 2017-02-14 Intel Corporation Asymmetric performance multicore architecture with same instruction set architecture
CN103294157A (zh) * 2012-02-27 2013-09-11 联想(北京)有限公司 一种电子设备的功耗优化方法、系统及一种电子设备
US9391047B2 (en) * 2012-04-20 2016-07-12 International Business Machines Corporation 3-D stacked and aligned processors forming a logical processor with power modes controlled by respective set of configuration parameters
US8615766B2 (en) * 2012-05-01 2013-12-24 Concurix Corporation Hybrid operating system
US9342362B2 (en) * 2012-06-15 2016-05-17 Nvidia Corporation Service-processor-centric computer architecture and method of operation thereof
KR101925412B1 (ko) 2012-07-03 2018-12-05 삼성전자주식회사 휴대 단말기의 슬립 모드 제어 방법 및 장치
US9569279B2 (en) * 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
US9063731B2 (en) * 2012-08-27 2015-06-23 Samsung Electronics Co., Ltd. Ultra low power apparatus and method to wake up a main processor
KR101947652B1 (ko) * 2012-09-28 2019-04-25 삼성전자 주식회사 휴대 단말기의 저전력 근거리 통신 기능 운용 방법 및 장치
CN103731762B (zh) * 2012-10-15 2019-06-07 马维尔国际贸易有限公司 用于光学网络终端片上系统的高级功率管理的系统和方法
US20150277988A1 (en) * 2012-10-18 2015-10-01 Toyota Jidosha Kabushiki Kaisha Parallel computing device
US20140191991A1 (en) * 2013-01-04 2014-07-10 Motorola Mobility Llc Responding to a touch input
KR102082859B1 (ko) * 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US8909219B2 (en) * 2013-01-17 2014-12-09 Qualcomm Incorporated Methods and apparatus for providing unified wireless communication through efficient memory management
US9195606B2 (en) * 2013-03-15 2015-11-24 Intel Corporation Dead block predictors for cooperative execution in the last level cache
WO2015096129A1 (en) * 2013-12-27 2015-07-02 Intel Corporation Apparatus, system and article for smart card device and associated host device
US9665155B2 (en) * 2013-12-28 2017-05-30 Intel Corporation Techniques for increasing energy efficiency of sensor controllers that receive data from one or more sensors
US20150187339A1 (en) * 2013-12-29 2015-07-02 Motorola Mobility Llc Previewing Notification Content
CN103838353B (zh) * 2014-01-02 2017-09-22 深圳市金立通信设备有限公司 一种控制处理器运行的方法及终端
US10067555B2 (en) * 2014-02-20 2018-09-04 Advanced Micro Devices, Inc. Control of performance levels of different types of processors via a user interface

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019172723A1 (ko) * 2018-03-08 2019-09-12 삼성전자 주식회사 이미지 센서와 연결된 인터페이스 및 복수의 프로세서들간에 연결된 인터페이스를 포함하는 전자 장치
US11601590B2 (en) 2018-03-08 2023-03-07 Samsung Electronics Co., Ltd. Interface connected to image sensor and electronic device comprising interfaces connected among plurality of processors
KR102211853B1 (ko) * 2019-12-24 2021-02-03 주식회사 텔레칩스 이종의 멀티 cpu가 탑재된 시스템-온-칩 및 cpu 리부팅을 제어하는 방법

Also Published As

Publication number Publication date
US10127051B2 (en) 2018-11-13
US20160132369A1 (en) 2016-05-12
CN105589336B (zh) 2021-01-01
EP3018582A3 (en) 2016-07-20
CN105589336A (zh) 2016-05-18
EP3018582A2 (en) 2016-05-11

Similar Documents

Publication Publication Date Title
US10127051B2 (en) Multi-processor device
KR102449533B1 (ko) 전자 장치 및 전자 장치에서 어플리케이션의 실행을 제어하는 방법
KR102294180B1 (ko) 전자장치 및 전자장치의 전원제어 방법
KR102451469B1 (ko) 외부 전자 장치를 제어하기 위한 방법 및 전자 장치
KR102327803B1 (ko) 전력 소모를 줄이기 위한 전력 제어 방법 및 장치
KR102293660B1 (ko) 전자 장치의 근거리 무선 통신 방법 및 이를 사용하는 전자 장치
EP3349094B1 (en) Method for displaying content and electronic device thereof
KR20160031357A (ko) 정보 처리 방법 및 이를 지원하는 전자 장치
KR102332136B1 (ko) 다수의 프로세서들을 가지는 전자장치에서 디스플레이 제어 방법 및 장치
EP3410299B1 (en) Electronic device for controlling application and operation method thereof
KR20160101600A (ko) 스크린 미러링 서비스 제공방법 및 장치
US10216244B2 (en) Electronic device and method for controlling the same
KR20160100153A (ko) 장치 검색 방법 및 이를 지원하는 전자 장치
KR20160016360A (ko) 전자 기기의 어플리케이션 동기화 방법 및 장치
KR20170050702A (ko) 제스처 감지 방법 및 이를 지원하는 전자 장치
KR20170081903A (ko) 전자 장치 및 그 동작 방법
KR20160147432A (ko) 디스플레이의 서로 다른 영역을 독립적으로 제어하는 전자 장치 및 방법
KR102459370B1 (ko) 전자 장치 및 그 동작 방법
KR20170017590A (ko) 전자 장치들 사이의 연결을 수행하기 위한 방법 및 전자 장치
KR20160104965A (ko) 전자 장치, 그 동작 방법 및 기록 매체
US20170017373A1 (en) Electronic device and method for controlling the same
KR20210087417A (ko) 디스플레이 제어 방법 및 그 전자 장치
KR20170052003A (ko) 복수의 디스플레이들을 갖는 전자 장치 및 그 동작 방법
KR20180069640A (ko) 전자 장치를 충전하는 방법, 전자 장치 및 저장 매체
CN109844687B (zh) 电子设备及其控制方法

Legal Events

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