KR102406483B1 - 멀티 프로세서의 동작 방법 및 제어 시스템 - Google Patents

멀티 프로세서의 동작 방법 및 제어 시스템 Download PDF

Info

Publication number
KR102406483B1
KR102406483B1 KR1020220020985A KR20220020985A KR102406483B1 KR 102406483 B1 KR102406483 B1 KR 102406483B1 KR 1020220020985 A KR1020220020985 A KR 1020220020985A KR 20220020985 A KR20220020985 A KR 20220020985A KR 102406483 B1 KR102406483 B1 KR 102406483B1
Authority
KR
South Korea
Prior art keywords
processor
processors
mode
state information
information
Prior art date
Application number
KR1020220020985A
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 KR1020220067620A priority Critical patent/KR20220083985A/ko
Priority to KR1020220067619A priority patent/KR20220083984A/ko
Application granted granted Critical
Publication of KR102406483B1 publication Critical patent/KR102406483B1/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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5012Processor sets
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 장치의 프로세서(제어부, 제어장치)에 관한 것이다.
또한 본 발명은 멀티 프로세서의 동작 방법 및 제어 시스템에 관한 것이다.

Description

멀티 프로세서의 동작 방법 및 제어 시스템 {method of operation and control system of multi-processor}
본 발명은 장치의 프로세서(제어부, 제어장치)에 관한 것이다.
또한 본 발명은 멀티 프로세서의 동작 방법 및 제어 시스템에 관한 것이다.
일반적으로 마이크로 프로세서를 사용하는 시스템에서 프로그램 처리를 신속히 하기 위하여 마이크로 프로세서(이하 "CPU"라 칭함)를 복수로 구성된 멀티프로세서(CPU 2개이상)에 의해 기능별 프로그램을 따로 나누어 처리해 왔었다.
상기 다중화된 멀티 프로세서를 사용한 시스템에서는 현재 운용 중이던 마스터 프로세서(시스템)가 다운되거나 현재 운용중이던 작업을 로컬 프로세서로 처리를 넘겨줄 때 대기중이던 로컬 프로세서에 인터럽트를 걸어서 로컬 프로세서의 액티브된 것이 인식되면 처리를 넘겨주고, 원래의 마스터 프로세서는 대기상태로 들어가게 된다.
상기 구체적인 종래의 실시예를 도 1을 참조하여 설명하면, 어떠한 동작을 실행하다가 마스터 프로세서(M CPU)에서 로컬 프로세서(S CPU)를 이용할 필요가 있다고 할 때 마스터 프로세서(M CPU)의 출력포트(P12)에서 로컬 프로세서(S CPU)로 넘어가게 되고, 로컬 프로세서(S CPU)는 필요한 동작을 수행하게 된다. 상기 로컬 프로세서(S CPU)의 출력 포트(P22)에서 마스터 프로세서(M CPU)의 입력포트(P11)로 동작수행이 끝났음을 알려주게 된다.
상기와 같은 원리로 로컬 프로세서(S CPU)에서 어떠한 일로 마스터 프로세서(M CPU)를 호출할 경우가 발생하면 로컬 프로세서(S CPU)의 출력포트(P21)에서 마스터 프로세서(M CPU)에 인터럽트(INT)를 건다. 이 경우에 제어하는 마스터 프로세서(M CPU)로 넘어가게 되고, 필요한 동작을 수행한 다음에 마스터 프로세서(M CPU)의 출력포트(P13)에서 로컬 프로세서(S CPU)의 입력포트(P23)로 필요한 동작수행이 끝났음을 알려주게 된다.
상술한 두 경우 모두가 상대편 프로세서의 출력포트로부터 인터럽트 서비스가 끝났다는 신호를 받은 다음에 다시 출력포트로 신호를 내보내어 인터럽트 상태를 해제시키게 된다.
상기한 종래의 방법으로 인터럽트를 수행하게 되면 상대편 프로세서 인터럽트 수행이 끝났음을 알려주는 신호를 받은 후에 다시 출력포트로 신호를 내보내어 인터럽트 신호를 해제시켜 주어야 하기 때문에 상기와 같은 동작을 하는 동안 소프트웨어는 계속 기다려야 한다. 이로 인하여 시간낭비가 많아 전체처리에 있어 처리시간이 길어지는 문제점이 있었다.
국내등록실용신안 제20-0060266호 (1991.11.04) 국내등록특허 제10-0145925호 (1998.05.06) 국내등록특허 제10-0390403호 (2003.06.25) 국내등록특허 제10-0097307호 (1996.03.22) 국내공개특허 제10-2000-0020328호 (2000.04.15) 국내공개특허 제10-2000-0044392호 (2000.07.15) 국내공개특허 제10-1988-0008188호 (1988.08.30) 국내공개특허 제10-2003-0089734호 (2003.11.28) 국내공개특허 제10-1999-0047715호 (1999.07.05)
본 발명의 일 실시예는 멀티 프로세서의 동작 방법 및 제어 시스템을 제공하는데 그 목적이 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명은 멀티 프로세서의 동작 방법 및 제어 시스템을 제안한다.
본 발명의 일 실시예는, 복수의 프로세서를 포함하는 멀티 프로세서(multi-processor)와 상기 복수의 프로세서를 제어하는 프로세서 관리부를 포함하는 제어 장치; 를 포함하고, 상기 프로세서 관리부는: 상기 복수의 프로세서에 대한 상태 정보를 수집하고, 상기 복수의 프로세서에 대한 상태 정보에 기반하여 재설정 정보를 생성하거나 멀티 프로세서 모드를 설정하고, 상기 재설정 정보 또는 상기 멀티 프로세서 모드에 따라 상기 복수의 프로세서를 제어할 수 있다.
상기 프로세서 관리부는: 상기 복수의 프로세서에 대한 상태 정보를 소정의 주기(period)마다 수집하고, 상기 소정의 주기는 상기 복수의 프로세서에 대한 상태 정보에 기반하여 재설정될 수 있다.
상기 프로세서 관리부는: 상기 복수의 프로세서에 대한 상태 정보에 기반하여 상기 재설정 정보를 생성하고, 상기 복수의 프로세서에 대한 상태 정보에 기반하여 상기 멀티 프로세서 모드를 설정하고, 상기 재설정 정보 및 상기 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어할 수 있다.
상기 프로세서 관리부는: 상기 재설정 정보 및 상기 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어한 후에 상기 복수의 프로세서에 대한 제2 상태 정보를 더 수집하고, 상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 상기 복수의 프로세서에 대한 제2 재설정 정보를 생성하고, 상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 제2 멀티 프로세서 모드를 설정하고, 상기 제2 재설정 정보 및 상기 제2 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 더 제어할 수 있다.
상기 시스템은, 사용자 단말; 또는 관리 서버; 중 적어도 어느 하나를 더 포함하고, 상기 제어 장치는, 상기 복수의 프로세서에 대한 상태 정보를 상기 사용자 단말 또는 상기 관리 서버 중 적어도 어느 하나에게 공유할 수 있다.
본 발명의 일 실시예는 개선된(enhanced) 멀티 프로세서의 동작 방법 및 제어 시스템을 제공할 수 있다.
본 발명의 일 실시예는 복수의 프로세서 각각의 상태를 고려하여 적응적으로 설정 정보의 생성 및/또는 모드 결정을 가능케 할 수 있다.
본 발명에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
본 발명의 특정한 바람직한 실시예들의 상기에서 설명한 바와 같은 또한 다른 측면들과, 특징들 및 이득들은 첨부 도면들과 함께 처리되는 하기의 설명으로부터 보다 명백하게 될 것이다.
도 1은 종래의 멀티 프로세서를 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따른 멀티 프로세서 제어 시스템을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따른 제어장치를 나타내는 블록도이다.
도 4는 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 6 내지 도 8은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
도 9는 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 10은 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
실시예를 설명함에 있어서 본 발명이 속하는 기술 분야에 익히 알려져 있고 본 발명과 직접적으로 관련이 없는 기술 내용에 대해서는 설명을 생략한다. 이는 불필요한 설명을 생략함으로써 본 발명의 요지를 흐리지 않고 더욱 명확히 전달하기 위함이다.
마찬가지 이유로 첨부 도면에 있어서 일부 구성요소는 과장되거나 생략되거나 개략적으로 도시되었다. 또한, 각 구성요소의 크기는 실제 크기를 전적으로 반영하는 것이 아니다. 각 도면에서 동일한 또는 대응하는 구성요소에는 동일한 참조 번호를 부여하였다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
이때, 처리 흐름도 도면들의 각 블록과 흐름도 도면들의 조합들은 컴퓨터 프로그램 인스트럭션들에 의해 수행될 수 있음을 이해할 수 있을 것이다. 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 흐름도 블록(들)에서 설명된 기능들을 수행하는 수단을 생성하게 된다. 이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 흐름도 블록(들)에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다. 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성해서 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 흐름도 블록(들)에서 설명된 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.
또한, 각 블록은 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 실행 예들에서는 블록들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들은 사실 실질적으로 동시에 수행되는 것도 가능하고 또는 그 블록들이 때때로 해당하는 기능에 따라 역순으로 수행되는 것도 가능하다.
이 때, 본 실시 예에서 사용되는 '~부'라는 용어는 소프트웨어 또는 FPGA(field-Programmable Gate Array) 또는 ASIC(Application Specific Integrated Circuit)과 같은 하드웨어 구성요소를 의미하며, '~부'는 어떤 역할들을 수행한다. 그렇지만 '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. '~부'는 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들, 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.
본 발명의 실시예들을 구체적으로 설명함에 있어서, 특정 시스템의 예를 주된 대상으로 할 것이지만, 본 명세서에서 청구하고자 하는 주요한 요지는 유사한 기술적 배경을 가지는 여타의 통신 시스템 및 서비스에도 본 명세서에 개시된 범위를 크게 벗어나지 아니하는 범위에서 적용 가능하며, 이는 당해 기술분야에서 숙련된 기술적 지식을 가진 자의 판단으로 가능할 것이다.
도 2는 본 발명의 일 실시예에 따른 멀티 프로세서 제어 시스템을 나타내는 도면이고, 도 3은 본 발명의 일 실시예에 따른 제어장치를 나타내는 도면이다.
도 2를 참조하면, 본 발명의 일 실시예는 제어장치(110)를 포함하는 제1 단말(120) 및/또는 제2 단말(130)을 포함하며, 선택적으로 관리서버(140) 및/또는 외부서버(150)를 더 포함하는 멀티 프로세서 제어 시스템(100)을 제안한다.
한편, 상기 제1 단말(120) 및/또는 제2 단말(130)은 전자 장치로 대체될 수 있으며, 상기 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 제어장치(110)는 멀티 프로세서(200), 모니터링부(250), 및/또는 프로세서 제어부(260)를 포함한다.
멀티 프로세서(200)는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230) 및/또는 제4 프로세서(240)를 포함할 수 있으며, 멀티 프로세서(200)에 포함되는 프로세서의 개수는 도 3에서 도시된 예시에 제한되지 않는다. 예를 들면, 멀티 프로세서(200)는 N개의 프로세서(미도시)를 포함할 수 있으며, N은 4, 8, 16, 32, 64, 128 등의 자연수로 가능하다. 일 예로, 멀티 프로세서(200)가 8개의 프로세서, 즉 제1 프로세서 내지 제8 프로세서를 포함하는 경우, 상기 멀티 프로세서(200)는 옥타코어(octa-core), 8코어에 상응할 수 있으며, 멀티 프로세서(200)에 대한 상태 정보는 제1 프로세서 상태 정보 내지 제8 프로세서 상태 정보를 포함할 수 있다. 일 예로, 멀티 프로세서(200)가 16개의 프로세서, 즉 제1 프로세서 내지 제16 프로세서를 포함하는 경우, 상기 멀티 프로세서(200)는 16코어에 상응할 수 있으며, 멀티 프로세서(200)에 대한 상태 정보는 제1 프로세서 상태 정보 내지 제16 프로세서 상태 정보를 포함할 수 있다. 또한 본 발명에서 제1 프로세서(210) 내지 제4 프로세서(240)를 전제로 설명되는 특징들은 N개의 프로세서에서도 적용될 수 있을 것이다.
제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230) 및/또는 제4 프로세서(240) 각각은 적어도 하나의 중앙 처리 유닛(CPU, central processing unit) 및/또는 적어도 하나의 그래픽 처리 디바이스(GPU, graphic processing unit)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 제어장치(110)는 멀티 프로세서(200)는 제어장치 관리부(250)를 더 포함할 수 있다. 제어장치 관리부(250)는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230) 및/또는 제4 프로세서(240)에 관한 상태 정보를 수집하거나(예; 모니터링 역할), 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230) 및/또는 제4 프로세서(240)를 제어하기 위한 제어 정보를 생성할 수 있다(예; 관리 역할, ON/OFF 제어, 모드 설정).
도 2 및 도 3을 참조하면, 본 발명의 일 실시예에 따른 단말(120, 130)은 제어장치(110) 뿐만 아니라, 송수신기(transceiver), 입력 인터페이스(input interface), 출력 인터페이스(output interface), 및/또는 메모리(memory)를 포함할 수 있다.
또한 서버(140, 150)는, 프로세서(processor), 송수신기(transceiver), 입력 인터페이스(input interface), 출력 인터페이스(output interface), 및/또는 메모리(memory)를 포함할 수 있다.
한편, 실시예에 따라 서버(140, 150)의 경우에도, 일반적인 프로세서 대신 전술한 제어장치(110)를 포함할 수 있다.
제어장치(110) 및/또는 프로세서는 본 발명의 일 실시예에 따른 동작/단계/과정을 구현할 수 있도록 본 발명의 단말(120, 130) 및/또는 서버(140, 150)을 직/간접적으로 제어할 수 있다.
송수신기는 본 발명의 단말(120, 130) 및/또는 서버(140, 150) 등과 각종 데이터, 신호, 정보를 송수신할 수 있다. 또한, 송수신기는 무선 통신 모듈(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 또한, 송수신기는 제1 네트워크(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다.
입력 인터페이스는 본 발명의 단말(120, 130) 및/또는 서버(140, 150)의 구성요소(예: 제어장치(110) 및/또는 프로세서 등)에 사용될 명령 또는 데이터를 본 발명의 단말(120, 130) 및/또는 서버(140, 150)의 사용자로부터 수신할 수 있다. 또한, 입력 인터페이스는 터치인식가능 디스플레이, 터치패드, 버튼형 인식 모듈, 음성인식센서, 마이크, 마우스, 또는 키보드 등을 포함할 수 있다. 여기서 터치인식가능 디스플레이, 터치패드, 버튼형 인식 모듈은 감압식 및/또는 정전식 방식을 통하여 사용자의 신체(예; 손가락)를 통한 터치를 인식할 수 있다.
출력 인터페이스는 본 발명의 단말(120, 130) 및/또는 서버(140, 150)의 제어장치(110) 및/또는 프로세서에 의해 생성되거나 송수신기를 통하여 획득된 신호(예; 음성 신호), 정보, 데이터, 이미지, 및/또는 각종 객체(object) 등을 표시하는 모듈이다. 또한 출력 인터페이스는 디스플레이, 스크린, 표시부(displaying unit), 스피커 및/또는 발광장치(예; LED 램프) 등을 포함할 수도 있다.
메모리는 본 발명의 단말(120, 130) 및/또는 서버(140, 150)의 동작을 위한 기본 프로그램, 응용 프로그램, 설정 정보 등의 데이터를 저장한다. 또한, 저장 모듈은 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(Random Access Memory, RAM), SRAM(Static Random Access Memory), 롬(Read-Only Memory, ROM), PROM(Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory) 중 적어도 하나의 저장매체를 포함할 수 있다.
또한, 상기 저장 모듈은 본 발명의 단말(120, 130) 및/또는 서버(140, 150)를 사용하는 사용자의 개인정보를 포함할 수 있다. 여기서 개인정보는 이름, 아이디(ID; identifier), 패스워드, 주민등록번호, 도로명 주소, 전화 번호, 휴대폰 번호, 및/또는 이메일 주소 등을 포함할 수 있다. 또한, 제어장치(110) 및/또는 프로세서는 저장 모듈에 저장된 각종 프로그램, 컨텐츠, 데이터 등을 이용하여 다양한 동작을 수행할 수 있다.
도 4는 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 4를 참조하면, 본 발명의 일 실시예에 따른 방법은 복수의 프로세서에 대한 상태 정보를 수집하는 단계(S310)를 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200)에 대한 상태 정보를 생성할 수 있다. 일 예로, 프로세서 관리부(250)는 멀티 프로세서(200) 내에 포함되는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나에 대한 상태 정보를 측정, 생성 및/또는 수집할 수 있다. 이때 멀티 프로세서(200)에 대한 상태 정보는 제1 프로세서(210)에 대한 제1 프로세서 상태 정보, 제2 프로세서(220)에 대한 제2 프로세서 상태 정보, 제3 프로세서(230)에 대한 제3 프로세서 상태 정보, 제4 프로세서(240)에 대한 제4 프로세서 상태 정보를 포함할 수 있다.
예를 들면, 각 프로세서 상태 정보는 멀티 프로세서(200)의 프로세서들 각각에서의 소음(sound)[dB], 온도(temperature)[°C, °F], 진동수(frequency)[Hz] 등을 나타내는 정보를 포함할 수 있다. 이를 위해 멀티 프로세서(200)의 프로세서들 각각에는 소리 감지 센서, 마이크, 온도 감지 센서, 적외선 센서, 진동 감지 센서 등이 내장되거나 설치될 수 있다. 이때 소리 감지 센서, 마이크는 프로세서들 각각에서 발생하는 소음, 소리를 측정하기 위한 것이고, 온도 감지 센서, 적외선 센서는 프로세서들 각각의 온도, 프로세서들 각각에서 발생하는 열을 측정하기 위한 것일 수 있다.
또한 프로세서 관리부(250)는 소정의 주기(period)마다 멀티 프로세서(200)에 대한 상태 정보(즉, 프로세서 상태 정보)를 생성할 수 있다. 일 예로, 상기 소정의 주기는 프로세서 관리부(250), 관리서버(140), 및/또는 외부서버(150)에 의해 설정될 수 있다. 일 예로, 상기 소정의 주기는 프로세서 관리부(250), 관리서버(140), 및/또는 외부서버(150)에 의해 제1 프로세서 상태 정보, 제2 프로세서 상태 정보, 제3 프로세서 상태 정보, 제4 프로세서 상태 정보 중 적어도 어느 하나에 기반하여 설정될 수 있다.
예를 들면, 상태 정보는, 각 프로세서 상태 정보는 멀티 프로세서(200)의 프로세서들 각각의 소정의 주기(period) 동안의 온도(temperature), 진동수(frequency) 등에 대한 통계, 멀티 프로세서(200)의 프로세서들 각각의 소정의 주기(period) 동안의 평균 온도, 평균 진동수, 최고 온도, 최고 진동수, 최저 온도, 최저 진동수 등을 나타내는 정보를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 방법은 복수의 프로세서에 대한 상태 정보에 기반하여 재설정 정보를 생성하는 단계(S320)를 더 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 제1 프로세서 상태 정보, 제2 프로세서 상태 정보, 제3 프로세서 상태 정보, 제4 프로세서 상태 정보 중 적어도 어느 하나에 기반하여 재설정 정보를 생성할 수 있다.
예를 들면, 재설정 정보는 멀티 프로세서(200)에 대한 설정(예; 세팅, 설정 값, 옵션, 모드)의 수정 및/또는 변경을 요청하는 명령어를 포함할 수 있다. 일 예로, 재설정 정보는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나에 대한 설정(예; 세팅(setting), 설정 값, 옵션(option), 모드(mode))의 수정 및/또는 변경을 요청하는 명령어를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 방법은 복수의 프로세서에 대한 상태 정보에 기반하여 멀티 프로세서 모드를 결정하는 단계(S330)를 더 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 제1 프로세서 상태 정보, 제2 프로세서 상태 정보, 제3 프로세서 상태 정보, 제4 프로세서 상태 정보 중 적어도 어느 하나에 기반하여 멀티 프로세서 모드를 결정할 수 있다.
또한 본 발명의 일 실시예에 따른 방법은 재설정 정보 및 멀티 프로세서 모드에 기반하여 복수의 프로세서를 제어하는 단계(S340)를 더 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 재설정 정보 및/또는 멀티 프로세서 모드에 따라 상기 멀티 프로세서를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 재설정 정보에 기반하여 멀티 프로세서(200)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 멀티 프로세서 모드에 기반하여 멀티 프로세서(200)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나를 제어할 수 있다.
본 발명의 일 실시예에 따른 방법은, 일 예에 따라 상기 S310 내지 S340 중 일부만을 포함할 수도 있으며, 다른 예에 따라 상기 S310 내지 S340의 순서는 변경될 수 있다.
예를 들면, 프로세서 관리부(250)는 제1 프로세서 상태 정보, 제2 프로세서 상태 정보, 제3 프로세서 상태 정보, 제4 프로세서 상태 정보 중 적어도 어느 하나에 기반하여, i) 재설정 정보를 생성하거나, 또는 ii) 멀티 프로세서 모드를 결정할 수 있다(즉 S320, S330 중 어느 하나의 동작만이 구현될 수도 있다).
또한 본 발명의 일 실시예는 다음과 같은 특징을 더 포함할 수도 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200)를 통하여 처리할 처리 대상 정보(information to be processed)에 영상(video)가 포함되어 있는지 여부, 이미지(image)가 포함되어 있는지 여부, 및/또는 텍스트(text)가 포함되어 있는지 여부에 기반하여 i) 재설정 정보를 생성하거나, 및/또는 ii) 멀티 프로세서 모드를 결정할 수 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200)를 통하여 처리할 처리 대상 정보(information to be processed)에 포함되는 영상(video)의 개수(number, amount), 용량(capacity, volume), 해상도(resolution) 및/또는 이미지(image)의 개수, 용량, 해상도 및/또는 텍스트(text)의 개수, 용량에 기반하여 i) 재설정 정보를 생성하거나, 및/또는 ii) 멀티 프로세서 모드를 결정할 수 있다.
예를 들면, 프로세서 관리부(250)는 상기 처리 대상 정보를 멀티 프로세서(200)를 통하여 처리하는 것이, 제어장치(110) 및/또는 멀티 프로세서(200)가 온(ON) 상태인 동안 처리되어야 하는 것인지, 아니면 무인 모드로 진행되어도 되는 것인지 여부에 따라, i) 재설정 정보를 생성하거나, 및/또는 ii) 멀티 프로세서 모드를 결정할 수 있다.
이때 무인 모드(unmanned mode)라 함은 사용자가 제어장치(110)를 제어하지 않고, 밤새 켜두는 상태에 상응할 수 있다. 또한 상기 무인 모드는 소정의 기간 동안 설정되는 모드일 수도 있으며, 처리 대상 정보 각각에 따라 상이하게 설정되는 모드일 수도 있다.
예를 들면, 프로세서 관리부(250)는 반복성을 추정하거나 및/또는 상기 반복성을 유추하기 위한 값을 산출할 수 있다. 또한 프로세서 관리부(250)는 상기 반복성에 기반하여 상기 처리 대상 정보를 멀티 프로세서(200)를 통하여 처리하는 것이, 제어장치(110) 및/또는 멀티 프로세서(200)가 온(ON) 상태인 동안 처리되어야 하는 것인지, 아니면 무인 모드로 진행되어도 되는 것인지 여부를 판단할 수 있다.
일 예로, 프로세서 관리부(250)는 제어장치(110)가 포함되는 단말(120, 130) 등에서 실행되는 프로그램/소프트웨어 등에 로그인한 계정, 사용 이력 등을 고려하여 상기 반복성을 추정하거나, 및/또는 상기 반복성을 유추하기 위한 값을 산출할 수 있다.
또한 본 발명의 일 실시예는 다음과 같은 특징을 더 포함할 수도 있다.
프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 프로세서 판단 지수(PRI, Processor Rating Index)를 아래의 수학식들을 이용하여 산출할 수 있다.
[수학식 1]
Figure 112022018105070-pat00001
상기 수학식 1은, 해당 프로세서가 테스트 데이터를 처리하는데 소요되는 시간(Time)[sec, min], 해당 프로세서가 테스트 데이터의 용량(Volume)[kb, mb]에 기반하여 산출될 수 있다.
[수학식 2]
Figure 112022018105070-pat00002
상기 수학식 2는, 해당 프로세서가 테스트 데이터를 처리하는데 발생하는 평균 소음(PSound, Processing Sound)[dB], 제어장치, 단말 및/또는 서버의 전원이 오프(off)된 상태에서 측정되는 평균 소음(USound, Usual Sound)[dB], 해당 프로세서가 테스트 데이터를 처리하는데 발생하는 평균 진동(Vib, Vibration)[Hz]을 더 고려하여 산출될 수 있다. 나머지 파라미터는 수학식 1과 동일할 수 있다.
[수학식 3]
Figure 112022018105070-pat00003
이때 PTemp(Processing Temperature)는 해당 프로세서가 테스트 데이터를 처리하는 동안의 평균 온도를 나타내고, UTemp(Usual Temperature)는 제어장치, 단말 및/또는 서버의 전원이 오프(off)된 상태에서 측정되는 평균 온도를 나타낸다. 나머지 파라미터들은 수학식 1, 2와 동일하게 적용될 수 있다.
[수학식 3]
Figure 112022018105070-pat00004
수학식 3의 파라미터들은 수학식 1 내지 3과 동일하게 적용될 수 있다.
또한 수학식 1 내지 수학식 4에서 활용되는 파라미터들의 값은 해당 프로세서에 대한 프로세서 상태 정보로부터 확인(및/또는 식별)될 수 있다.
프로세서 관리부(250)는 전술한 수학식 1을 활용하여, 테스트 데이터에 포함되는 테스트 영상을 이용한 제1-1 프로세서 판단 지수(PRI1-1), 테스트 데이터에 포함되는 테스트 이미지를 이용한 제2-1 프로세서 판단 지수(PRI2-1), 테스트 데이터에 포함되는 테스트 텍스트를 이용한 제3-1 프로세서 판단 지수(PRI3-1)를 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대하여 산출할 수 있다.
프로세서 관리부(250)는 전술한 수학식 2를 활용하여, 테스트 데이터에 포함되는 테스트 영상을 이용한 제1-2 프로세서 판단 지수(PRI1-2), 테스트 데이터에 포함되는 테스트 이미지를 이용한 제2-2 프로세서 판단 지수(PRI2-2), 테스트 데이터에 포함되는 테스트 텍스트를 이용한 제3-2 프로세서 판단 지수(PRI3-2)를 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대하여 산출할 수 있다.
프로세서 관리부(250)는 전술한 수학식 3을 활용하여, 테스트 데이터에 포함되는 테스트 영상을 이용한 제1-3 프로세서 판단 지수(PRI1-3), 테스트 데이터에 포함되는 테스트 이미지를 이용한 제2-3 프로세서 판단 지수(PRI2-3), 테스트 데이터에 포함되는 테스트 텍스트를 이용한 제3-3 프로세서 판단 지수(PRI3-3)를 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대하여 산출할 수 있다.
프로세서 관리부(250)는 전술한 수학식 4를 활용하여, 테스트 데이터에 포함되는 테스트 영상을 이용한 제1-4 프로세서 판단 지수(PRI1-4), 테스트 데이터에 포함되는 테스트 이미지를 이용한 제2-4 프로세서 판단 지수(PRI2-4), 테스트 데이터에 포함되는 테스트 텍스트를 이용한 제3-4 프로세서 판단 지수(PRI3-4)를 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대하여 산출할 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제1-1 프로세서 판단 지수(PRI1-1), 제1-2 프로세서 판단 지수(PRI1-2), 제1-3 프로세서 판단 지수(PRI1-3), 제1-4 프로세서 판단 지수(PRI1-4)의 평균을 토대로 제1 프로세서 판단 지수(PRI1)를 산출할 수 있다. 이때 제1 프로세서 판단 지수는 테스트 영상에 관한 값으로 취급될 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제2-1 프로세서 판단 지수(PRI2-1), 제2-2 프로세서 판단 지수(PRI2-2), 제2-3 프로세서 판단 지수(PRI2-3), 제2-4 프로세서 판단 지수(PRI2-4)의 평균을 토대로 제2 프로세서 판단 지수(PRI2)를 산출할 수 있다. 이때 제2 프로세서 판단 지수는 테스트 이미지에 관한 값으로 취급될 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제3-1 프로세서 판단 지수(PRI3-1), 제3-2 프로세서 판단 지수(PRI3-2), 제3-3 프로세서 판단 지수(PRI3-3), 제3-4 프로세서 판단 지수(PRI3-4)의 평균을 토대로 제3 프로세서 판단 지수(PRI3)를 산출할 수 있다. 이때 제3 프로세서 판단 지수는 테스트 텍스트에 관한 값으로 취급될 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제1-1 프로세서 판단 지수(PRI1-1), 제2-1 프로세서 판단 지수(PRI2-1), 제3-1 프로세서 판단 지수(PRI3-1)의 평균을 토대로 제4 프로세서 판단 지수(PRI4)를 산출할 수 있다. 이때 제4 프로세서 판단 지수는 전술한 수학식 1에 관한 값으로 취급될 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제1-2 프로세서 판단 지수(PRI1-2), 제2-2 프로세서 판단 지수(PRI2-2), 제3-2 프로세서 판단 지수(PRI3-2)의 평균을 토대로 제5 프로세서 판단 지수(PRI5)를 산출할 수 있다. 이때 제5 프로세서 판단 지수는 전술한 수학식 2에 관한 값으로 취급될 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제1-3 프로세서 판단 지수(PRI1-3), 제2-3 프로세서 판단 지수(PRI2-3), 제3-3 프로세서 판단 지수(PRI3-3)의 평균을 토대로 제6 프로세서 판단 지수(PRI6)를 산출할 수 있다. 이때 제6 프로세서 판단 지수는 전술한 수학식 3에 관한 값으로 취급될 수 있다.
또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들 각각에 대한 제1-4 프로세서 판단 지수(PRI1-4), 제2-4 프로세서 판단 지수(PRI2-4), 제3-4 프로세서 판단 지수(PRI3-4)의 평균을 토대로 제7 프로세서 판단 지수(PRI7)를 산출할 수 있다. 이때 제7 프로세서 판단 지수는 전술한 수학식 4에 관한 값으로 취급될 수 있다.
프로세서 관리부(250)는, 전술한 제1 프로세서 판단 지수(PRI1) 내지 제7 프로세서 판단 지수(PRI7) 중 적어도 어느 하나를 고려하여, 멀티 프로세서(200)에 포함되는 프로세서들(예; 제1 프로세서 내지 제N 프로세서 또는 제1 프로세서 내지 제16 프로세서) 각각을 제1 프로세서 그룹 내지 제4 프로세서 그룹 중 적어도 어느 하나에 할당(및/또는 분류)할 수 있다. 한편 하나의 프로세서가 복수의 프로세서 그룹에 속할 수도 있다.
또한 프로세서 관리부(250)는, 전술한 제1 프로세서 판단 지수(PRI1) 내지 제7 프로세서 판단 지수(PRI7) 중 적어도 어느 하나를 고려하여, 비디오 시청 모드, 일반 모드 또는 무인 모드에서 처리 대상 정보를 처리하는데 이용할 프로세서를 멀티 프로세서(200)에 포함되는 프로세서들(예; 제1 프로세서 내지 제N 프로세서 또는 제1 프로세서 내지 제16 프로세서) 중에서 적어도 어느 하나를 선택할 수 있다.
또한, 프로세서 관리부(250)는 멀티 프로세서(200)를 통하여 처리할 처리 대상 정보(information to be processed)에 영상(video)가 포함되어 있는지 여부, 이미지(image)가 포함되어 있는지 여부, 및/또는 텍스트(text)가 포함되어 있는지 여부에 기반하여 i) 재설정 정보를 생성하거나, 및/또는 ii) 멀티 프로세서 모드를 결정할 수 있다.
또한, 프로세서 관리부(250)는 처리 대상 정보(information to be processed)에 영상(video)이 포함되어 있는지 여부, 영상의 개수 및 용량, 이미지(image)가 포함되어 있는지 여부, 이미지의 개수 및 용량, 텍스트(text)가 포함되어 있는지 여부, 텍스트의 개수 및 용량을 고려하여 소정의 판단 지표를 산출할 수 있으며, 상기 산출되는 소정의 판단 지표를 이용하여 멀티 프로세서 모드를 결정할 수 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 프로세서들의 조합을 설정할 수 있다. 일 예로, 프로세서 관리부(250)는 프로세서들을 다양하게 조합하여 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 제4 프로세서 그룹을 설정할 수 있다.
예를 들면, 프로세서 관리부(250)는 소정의 기간 동안 테스트를 위해 임의로 설정해놓은 테스트 영상(test video), 테스트 이미지(test image), 테스트 텍스트(test text) 중 적어도 어느 하나를 멀티 프로세서(200)에 포함되는 프로세서들 중 적어도 어느 하나를 선택하여 처리(processing)하여 소요되는 시간과, 상기 소정의 기간 동안 상기 선택된 프로세서에서 발생되는 열, 소음, 진동을 고려하여 복수의 프로세서 그룹 중에서 어느 하나를 매칭시킬 수 있다. 일 예로, 테스트 영상(test video)은 제어장치(110)(및/또는 단말(120, 130), 서버(140, 150))의 메모리(및/또는 저장부)에 저장된 복수의 영상 중에서 소정의 기준에 따라 또는 기 설정된(pre-determined) 영상 중 어느 하나일 수 있다. 일 예로, 테스트 이미지(test image)는 제어장치(110)(및/또는 단말(120, 130), 서버(140, 150))의 메모리(및/또는 저장부)에 저장된 복수의 이미지 중에서 소정의 기준에 따라 또는 기 설정된(pre-determined) 이미지 중 어느 하나일 수 있다. 일 예로, 테스트 텍스트(test text)는 제어장치(110)(및/또는 단말(120, 130), 서버(140, 150))의 메모리(및/또는 저장부)에 저장된 복수의 텍스트 중에서 소정의 기준에 따라 또는 기 설정된(pre-determined) 텍스트 중 어느 하나일 수 있다.
또한 테스트 영상은 멀티 프로세서(200) 및/또는 상기 멀티 프로세서(200) 내에 포함되는 프로세서들 중 적어도 어느 하나를 통해 처리(processing)가 완료된 적어도 하나의 영상 중에서 선택(및/또는 설정)될 수 있으며, 테스트 이미지는 멀티 프로세서(200) 및/또는 상기 멀티 프로세서(200) 내에 포함되는 프로세서들 중 적어도 어느 하나를 통해 처리(processing)가 완료된 적어도 하나의 이미지 중에서 선택(및/또는 설정)될 수 있으며, 테스트 텍스트는 멀티 프로세서(200) 및/또는 상기 멀티 프로세서(200) 내에 포함되는 프로세서들 중 적어도 어느 하나를 통해 처리(processing)가 완료된 적어도 하나의 영상 중에서 선택(및/또는 설정)될 수 있다.
또한 본 발명에서 영상은 avi, mp4 등의 확장자를 갖는 비디오 파일을 포함하고, 이미지는 jpg, gif 등의 확장자를 갖는 이미지 파일을 포함하고, 텍스트는 txt, doc, docx, xls, xlsx, ppt, pptx 등의 확장자를 갖는 문서 파일을 포함할 수 있다.
또한 본 발명에서 영상, 이미지, 텍스트가 처리(processing)된다는 것은 영상, 이미지, 텍스트에 상응하는 화면이 상기 멀티 프로세서(200)가 탑재된(및/또는 내장된, 설치된) 단말(120, 130) 및/또는 전자 장치에서 표시(display)되기 위한 과정(및/또는 절차)이 완료되었음을 나타낼 수 있다.
전술한 멀티 프로세서 모드는 비디오 시청 모드, 일반 모드(normal mode), 무인 모드(unmanned mode, manless mode)를 포함할 수 있다. 설정된 멀티 프로세서 모드가 비디오 시청 모드인지, 또는 일반 모드인지, 또는 무인 모드인지에 따라 해당 처리 대상 정보를 처리(processing)할 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 제4 프로세서 그룹이 상이하게 선택될 수 있다. 한편 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 제4 프로세서 그룹 각각에 속하는 프로세스는 적어도 어느 하나가 중복될 수도 있다.
설정된 멀티 프로세서 모드가 비디오 시청 모드인 경우에는 처리 대상 정보의 처리(processing)에 제1 프로세서 그룹 및 제2 프로세서 그룹 중 적어도 어느 하나를 이용할 수 있으며, 설정된 멀티 프로세서 모드가 비디오 시청 모드인 경우에는 처리 대상 정보의 처리(processing)에 제2 프로세서 그룹 및 제3 프로세서 그룹 중 적어도 어느 하나를 이용할 수 있으며, 설정된 멀티 프로세서 모드가 비디오 시청 모드인 경우에는 처리 대상 정보의 처리(processing)에 제3 프로세서 그룹 및 제4 프로세서 그룹 중 적어도 어느 하나를 이용할 수 있다.
본 발명에서 비디오 시청 모드는 소정의 시간 길이를 넘는 시간 길이를 갖거나 및/또는 소정의 용량을 초과하는 용량을 갖는 영상에 대하여 처리를 필요로 하는 모드에 해당되고, 무인 모드는 소정의 시간(예; 사용자가 설정한 수면 시간, 사용자의 웨어러블 디바이스를 통해 식별되는 사용자의 평균 수면 시간, 사용자에 의해 임의로 설정된 시간)에 해당되면서 비디오 시청 모드의 조건을 만족하지 않는 경우를 위한 모드에 해당되고, 일반 모드는 상기 비디오 시청 모드의 조건과 무인 모드의 조건에 모두 만족되지 않는 경우를 나타낼 수 있다. 프로세서 관리부(250)는 전술한 조건의 만족 여부를 판단함으로써, 비디오 시청 모드를 선택할지 또는 일반 모드를 선택할지 또는 무인 모드를 선택할지를 결정할 수 있다.
프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 복수의 프로세서들 중에서, 전술한 제1 프로세서 판단 지수(PRI1)가 소정의 제1 기준치를 초과하고, 전술한 제6 프로세서 판단 지수(PRI6)가 소정의 제6 기준치를 초과하고, 전술한 제7 프로세서 판단 지수(PRI7)가 소정의 제7 기준치를 초과하는 적어도 하나의 프로세서를 제1 프로세서 그룹으로 설정할 수 있다. 또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 복수의 프로세서들 중에서, 전술한 제1 프로세서 판단 지수(PRI1)가 소정의 제1 기준치를 초과하고, 제2 프로세서 판단 지수(PRI2)가 소정의 제2 기준치를 초과하고, 제3 프로세서 판단 지수(PRI1)가 소정의 제3 기준치를 초과하는 적어도 하나의 프로세서를 제2 프로세서 그룹으로 설정할 수 있다. 또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 복수의 프로세서들 중에서, 전술한 제4 프로세서 판단 지수(PRI4)가 소정의 제4 기준치를 초과하고, 전술한 제5 프로세서 판단 지수(PRI5)가 소정의 제5 기준치를 초과하고, 전술한 제6 프로세서 판단 지수(PRI6)가 소정의 제6 기준치를 초과하고, 전술한 제7 프로세서 판단 지수(PRI7)가 소정의 제7 기준치를 초과하는 적어도 하나의 프로세서를 제3 프로세서 그룹으로 설정할 수 있다. 또한 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 복수의 프로세서들 중에서, 전술한 제4 프로세서 판단 지수(PRI4)가 소정의 제4 기준치를 초과하는 적어도 하나의 프로세서를 제4 프로세서 그룹으로 설정할 수 있다.
도 5는 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 방법은 재설정 정보 및 멀티 프로세서 모드에 기반하여 복수의 프로세서 중 적어도 어느 하나의 ON/OFF를 제어하는 단계(S410)를 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 재설정 정보 및/또는 멀티 프로세서 모드에 따라 멀티 프로세서(200)의 온오프(ON/OFF)를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 재설정 정보에 기반하여 멀티 프로세서(200)의 온오프(ON/OFF)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나의 온오프(ON/OFF)를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 멀티 프로세서 모드에 기반하여 멀티 프로세서(200)의 온오프(ON/OFF)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나의 온오프(ON/OFF)를 제어할 수 있다.
본 발명의 일 실시예에 따른 방법은 복수의 프로세서에 대한 상태 정보에 더 수집하는 단계(S420)를 더 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200)에 대한 추가 상태 정보(또는 "제2 상태 정보"라고 칭할 수 있다)를 생성할 수 있다. 일 예로, 프로세서 관리부(250)는 멀티 프로세서(200) 내에 포함되는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나에 대한 추가 상태 정보(또는 "제2 상태 정보"라고 칭할 수 있다)를 측정, 생성 및/또는 수집할 수 있다. 이때 멀티 프로세서(200)에 대한 추가 상태 정보(또는 "제2 상태 정보"라고 칭할 수 있다)는 제1 프로세서(210)에 대한 제1-2 프로세서 상태 정보, 제2 프로세서(220)에 대한 제2-2 프로세서 상태 정보, 제3 프로세서(230)에 대한 제3-2 프로세서 상태 정보, 제4 프로세서(240)에 대한 제4-2 프로세서 상태 정보를 포함할 수 있다. 한편 S410 단계 또는 S320, S330, S340 단계 이전에 생성된 멀티 프로세서(200)에 대한 상태 정보(또는 "제1 상태 정보"라고 칭할 수 있다)는 제1 프로세서(210)에 대한 제1-1 프로세서 상태 정보, 제2 프로세서(220)에 대한 제2-1 프로세서 상태 정보, 제3 프로세서(230)에 대한 제3-1 프로세서 상태 정보, 제4 프로세서(240)에 대한 제4-1 프로세서 상태 정보를 포함할 수 있다.
또한 프로세서 관리부(250)는 소정의 주기(period)마다 멀티 프로세서(200)에 대한 추가 상태 정보를 생성할 수 있다. 일 예로, 상기 소정의 주기는 프로세서 관리부(250), 관리서버(140), 및/또는 외부서버(150)에 의해 설정될 수 있다. 일 예로, 상기 소정의 주기는 프로세서 관리부(250), 관리서버(140), 및/또는 외부서버(150)에 의해 제1-1 프로세서 상태 정보, 제1-2 프로세서 상태 정보, 제2-1 프로세서 상태 정보, 제2-2 프로세서 상태 정보, 제3-1 프로세서 상태 정보, 제3-2 프로세서 상태 정보, 제4-1 프로세서 상태 정보, 제4-2 프로세서 상태 정보 중 적어도 어느 하나에 기반하여 설정될 수 있다.
본 발명의 일 실시예에 따른 방법은 더 수집된 복수의 프로세서에 대한 상태 정보에 기반하여 멀티 프로세서 모드를 재설정하는 단계(S430)를 더 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 제2 재설정 정보를 생성하거나 및/또는 제2 멀티 프로세서 모드를 결정(및/또는 설정)할 수 있다. 일 예로, 제1-2 프로세서 상태 정보, 제2-2 프로세서 상태 정보, 제3-2 프로세서 상태 정보, 제4-2 프로세서 상태 정보 중 적어도 어느 하나에 기반하여 제2 재설정 정보를 생성하거나 및/또는 제2 멀티 프로세서 모드를 결정(및/또는 설정)할 수 있다. 일 예로, 제1-1 프로세서 상태 정보, 제1-2 프로세서 상태 정보, 제2-1 프로세서 상태 정보, 제2-2 프로세서 상태 정보, 제3-1 프로세서 상태 정보, 제3-2 프로세서 상태 정보, 제4-1 프로세서 상태 정보, 제4-2 프로세서 상태 정보 중 적어도 어느 하나에 기반하여 제2 재설정 정보를 생성하거나 및/또는 제2 멀티 프로세서 모드를 결정(및/또는 설정)할 수 있다.
예를 들면, 제2 재설정 정보는 멀티 프로세서(200)에 대한 설정(예; 세팅, 설정 값, 옵션, 모드)의 수정 및/또는 변경을 요청하는 명령어를 포함할 수 있다. 일 예로, 제2 재설정 정보는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나에 대한 설정(예; 세팅, 설정 값, 옵션, 모드)의 수정 및/또는 변경을 요청하는 명령어를 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 제2 재설정 정보 및/또는 제2 멀티 프로세서 모드에 따라 상기 멀티 프로세서(200)를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 제2 재설정 정보에 기반하여 멀티 프로세서(200)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 제2 멀티 프로세서 모드에 기반하여 멀티 프로세서(200)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나를 제어할 수 있다.
예를 들면, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 제2 재설정 정보 및/또는 제2 멀티 프로세서 모드에 따라 멀티 프로세서(200)의 온오프(ON/OFF)를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 제2 재설정 정보에 기반하여 멀티 프로세서(200)의 온오프(ON/OFF)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나의 온오프(ON/OFF)를 제어할 수 있다. 일 예로, 프로세서 관리부(250)는 전술한 바와 같이 결정(및/또는 설정, 생성)되는 제2 멀티 프로세서 모드에 기반하여 멀티 프로세서(200)의 온오프(ON/OFF)를 제어하거나 및/또는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나의 온오프(ON/OFF)를 제어할 수 있다.
본 발명의 일 실시예에 따른 방법은, 일 예에 따라 상기 S410 내지 S430 중 일부만을 포함할 수도 있으며, 다른 예에 따라 상기 S410 내지 S430의 순서는 변경될 수 있다.
또한 본 발명의 일 실시예는 다음과 같은 특징을 더 포함할 수 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200) 중에서 적어도 하나의 프로세서는 '독립 프로세서(independent processor)'로 설정하고, 나머지 적어도 하나의 프로세서는 '종속 프로세서(dependent processor)'로 설정할 수 있다.
예를 들면, 프로세서 관리부(250)는 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중 적어도 어느 하나에 대한 상태 정보에 기반하여 상기 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중에서 적어도 어느 하나를 독립 프로세서로써 설정하고, 나머지를 종속 프로세서로써 설정할 수 있다. 일 예로, 프로세서 관리부(250)는 제1 프로세서(210)에 대한 제1-1 상태 정보 및/또는 제1-2 상태 정보, 제2 프로세서(220)에 대한 제2-1 상태 정보 및/또는 제2-2 상태 정보, 제3 프로세서(230)에 대한 제3-1 상태 정보 및/또는 제3-2 상태 정보, 제4 프로세서(240)에 대한 제4-1 상태 정보 및/또는 제4-2 상태 정보 중 적어도 어느 하나에 기반하여 결정되는 값을 소정의 임계치와 비교한 결과에 따라 상기 제1 프로세서(210), 제2 프로세서(220), 제3 프로세서(230), 제4 프로세서(240) 중에서 적어도 어느 하나를 독립 프로세서로써 설정하고, 나머지를 종속 프로세서로써 설정할 수 있다.
예를 들면, 프로세서 관리부(250)는 멀티 프로세서(200)에 포함되는 복수의 프로세서 중에서 둘 이상의 독립 프로세서와 둘 이상의 종속 프로세서를 설정할 수 있다. 이때 상기 복수의 프로세서 각각은 독립 프로세서 또는 종속 프로세서 중 어느 하나로써만 설정될 수 있다.
또한 프로세서 관리부(250)는 상기 둘 이상의 독립 프로세서 각각을 상기 둘 이상의 종속 프로세서 각각에 매칭시킬 수 있다.
또한 프로세서 관리부(250)는 멀티미디어 데이터로부터 분할된 복수개의 데이터 유닛들 중에서, 할당된 제1 데이터 유닛에 관한 연산 작업을 수행하고; 상기 할당된 제1 데이터 유닛에 관한 연산 작업의 수행 완료 여부와 독립적으로, 상기 복수의 프로세서 중에서 기 설정된 적어도 하나의 프로세서로부터 상기 복수개의 데이터 유닛들 중에서 적어도 하나의 제2 데이터 유닛에 수행되는 연산 작업의 작업 완료 정보를 획득하고; 상기 적어도 하나의 프로세서 각각으로부터 획득한 작업 완료 정보를 상기 제어장치(110)가 포함되는(및/또는 내장되는) 단말(120, 130) 및/또는 서버(140, 150)의 메모리에 저장하도록 제어할 수 있다.
또한 프로세서 관리부(250)는 상기 적어도 하나의 프로세서로부터 획득되어 저장된 작업 완료 정보 및 상기 할당된 제1 데이터 유닛에 관한 연산 작업에 기초하여, 상기 멀티미디어 데이터에 관한 연산 작업의 완료 여부를 판단할 수 있다.
또한 프로세서 관리부(250)는 제어장치(110) 및/또는 멀티 프로세서(200)에서 애플리케이션(APP, application)을 실행하기 위한 요청을 외부(예; 단말(120, 130) 및/또는 서버(140, 150)로부터 수신하고; 상기 애플리케이션과 연관된 속성(property)을 식별하고(상기 속성은 상기 멀티 프로세서(200) 내에서 상기 애플리케이션을 실행하기 위해 이용할 프로세서(예; 제1 프로세서(210) 내지 제4 프로세서(240) 중에서 적어도 어느 하나를 직접 특정하기 보다 상기 애플리케이션의 수용가능한 성능 레벨을 달성하기 위한 최소 전력 요구조건을 식별함); 상기 식별된 속성에 기반하여 결정된 프로세서를 통한 실행을 위해 상기 애플리케이션을 스케줄링하고; 상기 결정된 프로세서를 이용하여 상기 애플리케이션을 실행하도록 제어할 수 있다.
또한 프로세서 관리부(250)는 제어장치(110) 및/또는 멀티 프로세서(200)에서의 애플리케이션의 실행을 위한 요청을 외부(예; 단말(120, 130) 및/또는 서버(140, 150)로부터 수신할 수 있다. 예를 들면, 프로세서 관리부(250)는 시스템 호출 등을 통해 애플리케이션을 실행하라는 명령을 수신할 수 있다.
또한 프로세서 관리부(250)는 애플리케이션과 관련된 속성을 식별할 수 있다. 이때 애플리케이션과 관련된 속성은 제어장치(110) 내에서 어떤 프로세서가 애플리케이션을 실행할지를 결정하는데 사용되는 정보를 제공한다. 일 예로, 애플리케이션과 관련된 속성은 제어장치(110)의 성분에 의해 판단(및/또는 결정)된다.
또한 프로세서 관리부(250)는 상기 판단(및/또는 결정) 속성을 기초로 지정된 프로세서, 즉 제1 프로세서(210) 내지 제4 프로세서(240) 중 적어도 어느 하나를 통한 실행을 위해 애플리케이션 스케줄링을 제어할 수 있다. 예를 들면, 프로세서 관리부(250)는 특정된(및/또는 지정된) 프로세서가 현재 애플리케이션의 실행을 지원하기 위해 수용가능한 이용에서 동작하고 있는지를 판단할 수 있다. 일 예로, 프로세서 관리부(250)는 애플리케이션을 실행하기 위한 절차(프로세스)를 생성한 다음, 특정된(및/또는 지정된) 프로세서에서의 실행을 위해 해당 프로세스를 스케줄링한다.
또한 프로세서 관리부(250)는 애플리케이션의 스케줄링에 응답하여 애플리케이션 로딩을 수행(및/또는 제어)할 수 있다. 예를 들면, 로딩될 애플리케이션을 스케줄링하는 스케줄러에 응답하여 애플리케이션을 상기 제어장치(110)가 포함되는(및/또는 내장되는) 단말(120, 130) 및/또는 서버(140, 150)의 메모리로부터 출력(및/또는 로딩)할 수 있다.
또한 프로세서 관리부(250)는 특정된(및/또는 지정된) 프로세서를 이용하여 애플리케이션을 실행한다.
도 6 내지 도 8은 본 발명의 일 실시예에 따른 전자 장치를 나타내는 블록도이다.
본 문서의 다양한 실시예들에 따른 전자 장치는, 예를 들면, 스마트폰, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 서버, PDA, PMP(portable multimedia player), MP3 플레이어, 의료기기, 카메라, 또는 웨어러블 장치 중 적어도 하나를 포함할 수 있다. 웨어러블 장치는 액세서리형(예: 시계, 반지, 팔찌, 발찌, 목걸이, 안경, 콘택트 렌즈, 또는 머리 착용형 장치(head-mounted-device(HMD)), 직물 또는 의류 일체형(예: 전자 의복), 신체 부착형(예: 스킨 패드 또는 문신), 또는 생체 이식형 회로 중 적어도 하나를 포함할 수 있다. 어떤 실시예들에서, 전자 장치는, 예를 들면, 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스, 홈 오토매이션 컨트롤 패널, 보안 컨트롤 패널, 미디어 박스(예: 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(예: XboxTM, PlayStationTM), 전자 사전, 전자 키, 캠코더, 또는 전자 액자 중 적어도 하나를 포함할 수 있다.
다른 실시예에서, 전자 장치는, 각종 의료기기(예: 각종 휴대용 의료측정기기(혈당 측정기, 심박 측정기, 혈압 측정기, 또는 체온 측정기 등), MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 또는 초음파기 등), 네비게이션 장치, 위성 항법 시스템(GNSS(global navigation satellite system)), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트 장치, 선박용 전자 장비(예: 선박용 항법 장치, 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛(head unit), 산업용 또는 가정용 로봇, 드론(drone), 금융 기관의 ATM, 상점의 POS(point of sales), 또는 사물 인터넷 장치 (예: 전구, 각종 센서, 스프링클러 장치, 화재 경보기, 온도조절기, 가로등, 토스터, 운동기구, 온수탱크, 히터, 보일러 등) 중 적어도 하나를 포함할 수 있다. 어떤 실시예에 따르면, 전자 장치는 가구, 건물/구조물 또는 자동차의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터, 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시예에서, 전자 장치는 플렉서블하거나, 또는 전술한 다양한 장치들 중 둘 이상의 조합일 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다. 본 문서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
또한 전자 장치는 버스, 프로세서, 메모리, 입출력 인터페이스, 디스플레이, 및 통신 인터페이스를 포함할 수 있다. 어떤 실시예에서는, 전자 장치는, 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다. 버스는 구성요소들을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 또는 데이터)을 전달하는 회로를 포함할 수 있다. 프로세서는, 중앙처리장치, 어플리케이션 프로세서, 또는 커뮤니케이션 프로세서(communication processor(CP)) 중 하나 또는 그 이상을 포함할 수 있다. 프로세서는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.
메모리는, 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 메모리는, 예를 들면, 전자 장치의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 메모리는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 프로그램은, 예를 들면, 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(API), 및/또는 어플리케이션 프로그램(또는 "어플리케이션") 등을 포함할 수 있다. 커널, 미들웨어, 또는 API의 적어도 일부는, 운영 시스템으로 지칭될 수 있다. 커널은, 예를 들면, 다른 프로그램들(예: 미들웨어, API, 또는 어플리케이션 프로그램)에 구현된 동작 또는 기능을 실행하는 데 사용되는 시스템 리소스들(예: 버스, 프로세서, 또는 메모리 등)을 제어 또는 관리할 수 있다. 또한, 커널은 미들웨어, API, 또는 어플리케이션 프로그램에서 전자 장치의 개별 구성요소에 접근함으로써, 시스템 리소스들을 제어 또는 관리할 수 있는 인터페이스를 제공할 수 있다.
미들웨어는, 예를 들면, API 또는 어플리케이션 프로그램이 커널과 통신하여 데이터를 주고받을 수 있도록 중개 역할을 수행할 수 있다. 또한, 미들웨어는 어플리케이션 프로그램으로부터 수신된 하나 이상의 작업 요청들을 우선 순위에 따라 처리할 수 있다. 예를 들면, 미들웨어는 어플리케이션 프로그램 중 적어도 하나에 전자 장치의 시스템 리소스(예: 버스, 프로세서, 또는 메모리 등)를 사용할 수 있는 우선 순위를 부여하고, 상기 하나 이상의 작업 요청들을 처리할 수 있다. API는 어플리케이션이 커널 또는 미들웨어에서 제공되는 기능을 제어하기 위한 인터페이스로, 예를 들면, 파일 제어, 창 제어, 영상 처리, 또는 문자 제어 등을 위한 적어도 하나의 인터페이스 또는 함수(예: 명령어)를 포함할 수 있다. 입출력 인터페이스는, 예를 들면, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 전자 장치의 다른 구성요소(들)에 전달하거나, 또는 전자 장치의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.
디스플레이는, 예를 들면, 액정 디스플레이(LCD), 발광 다이오드(LED) 디스플레이, 유기 발광 다이오드(OLED) 디스플레이, 또는 마이크로 전자기계 시스템(MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 디스플레이는, 예를 들면, 사용자에게 각종 콘텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 및/또는 심볼 등)을 표시할 수 있다. 디스플레이는, 터치 스크린을 포함할 수 있으며, 예를 들면, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다. 통신 인터페이스는, 예를 들면, 전자 장치와 외부 장치(예: 제1 외부 전자 장치, 제2 외부 전자 장치, 또는 서버) 간의 통신을 설정할 수 있다. 예를 들면, 통신 인터페이스는 무선 통신 또는 유선 통신을 통해서 네트워크에 연결되어 외부 장치(예: 제2 외부 전자 장치 또는 서버)와 통신할 수 있다.
무선 통신은, 예를 들면, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 한 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 한실시예에 따르면, 무선 통신은 GNSS를 포함할 수 있다. GNSS는, 예를 들면, GPS(Global Positioning System), Glonass(Global Navigation Satellite System), Beidou Navigation Satellite System(이하 "Beidou") 또는 Galileo, the European global satellite-based navigation system일 수 있다. 이하, 본 문서에서는, "GPS"는 "GNSS"와 상호 호환적으로 사용될 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
제1 및 제2 외부 전자 장치 각각은 전자 장치와 동일한 또는 다른 종류의 장치일 수 있다. 다양한 실시예에 따르면, 전자 장치에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 전자 장치(예: 전자 장치, 또는 서버에서 실행될 수 있다. 한 실시예에 따르면, 전자 장치가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 다른 장치(예: 전자 장치, 또는 서버)에게 요청할 수 있다. 다른 전자 장치(예: 전자 장치, 또는 서버)는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치로 전달할 수 있다. 전자 장치는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
전자 장치는 하나 이상의 프로세서(예: AP), 통신 모듈, (가입자 식별 모듈, 메모리, 센서 모듈, 입력 장치, 디스플레이, 인터페이스, 오디오 모듈, 카메라 모듈, 전력 관리 모듈, 배터리, 인디케이터, 및 모터를 포함할 수 있다. 프로세서는, 예를 들면, 운영 체제 또는 응용 프로그램을 구동하여 프로세서에 연결된 다수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 프로세서는, 예를 들면, SoC(system on chip)로 구현될 수 있다. 한 실시예에 따르면, 프로세서는 GPU(graphic processing unit) 및/또는 이미지 신호 프로세서를 더 포함할 수 있다. 프로세서는 다른 구성요소들(예: 비휘발성 메모리) 중 적어도 하나로부터 수신된 명령 또는 데이터를 휘발성 메모리에 로드)하여 처리하고, 결과 데이터를 비휘발성 메모리에 저장할 수 있다.
통신 모듈(예: 통신 인터페이스)와 동일 또는 유사한 구성을 가질 수 있다. 통신 모듈은, 예를 들면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈, NFC 모듈 및 RF 모듈을 포함할 수 있다. 셀룰러 모듈은, 예를 들면, 통신망을 통해서 음성 통화, 영상 통화, 문자 서비스, 또는 인터넷 서비스 등을 제공할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 가입자 식별 모듈(예: SIM 카드)을 이용하여 통신 네트워크 내에서 전자 장치의 구별 및 인증을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 프로세서가 제공할 수 있는 기능 중 적어도 일부 기능을 수행할 수 있다. 한 실시예에 따르면, 셀룰러 모듈은 커뮤니케이션 프로세서(CP)를 포함할 수 있다. 어떤 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 일부(예: 두 개 이상)는 하나의 integrated chip(IC) 또는 IC 패키지 내에 포함될 수 있다. RF 모듈은, 예를 들면, 통신 신호(예: RF 신호)를 송수신할 수 있다. RF 모듈은, 예를 들면, 트랜시버, PAM(power amp module), 주파수 필터, LNA(low noise amplifier), 또는 안테나 등을 포함할 수 있다. 다른 실시예에 따르면, 셀룰러 모듈, WiFi 모듈, 블루투스 모듈, GNSS 모듈 또는 NFC 모듈 중 적어도 하나는 별개의 RF 모듈을 통하여 RF 신호를 송수신할 수 있다. 가입자 식별 모듈은, 예를 들면, 가입자 식별 모듈을 포함하는 카드 또는 임베디드 SIM을 포함할 수 있으며, 고유한 식별 정보(예: ICCID(integrated circuit card identifier)) 또는 가입자 정보(예: IMSI(international mobile subscriber identity))를 포함할 수 있다.
메모리(예: 메모리)는, 예를 들면, 내장 메모리 또는 외장 메모리를 포함할 수 있다. 내장 메모리는, 예를 들면, 휘발성 메모리(예: DRAM, SRAM, 또는 SDRAM 등), 비휘발성 메모리(예: OTPROM(one time programmable ROM), PROM, EPROM, EEPROM, mask ROM, flash ROM, 플래시 메모리, 하드 드라이브, 또는 솔리드 스테이트 드라이브(SSD) 중 적어도 하나를 포함할 수 있다. 외장 메모리는 플래시 드라이브(flash drive), 예를 들면, CF(compact flash), SD(secure digital), Micro-SD, Mini-SD, xD(extreme digital), MMC(multi-media card) 또는 메모리 스틱 등을 포함할 수 있다. 외장 메모리는 다양한 인터페이스를 통하여 전자 장치와 기능적으로 또는 물리적으로 연결될 수 있다.
센서 모듈은, 예를 들면, 물리량을 계측하거나 전자 장치의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서 모듈은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서, 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수 있다. 추가적으로 또는 대체적으로, 센서 모듈은, 예를 들면, 후각(e-nose) 센서, 일렉트로마이오그라피(EMG) 센서, 일렉트로엔씨팔로그램(EEG) 센서, 일렉트로카디오그램(ECG) 센서, IR(infrared) 센서, 홍채 센서 및/또는 지문 센서를 포함할 수 있다. 센서 모듈은 그 안에 속한 적어도 하나 이상의 센서들을 제어하기 위한 제어 회로를 더 포함할 수 있다. 어떤 실시예에서는, 전자 장치는 프로세서의 일부로서 또는 별도로, 센서 모듈을 제어하도록 구성된 프로세서를 더 포함하여, 프로세서가 슬립(sleep) 상태에 있는 동안, 센서 모듈을 제어할 수 있다.
입력 장치는, 예를 들면, 터치 패널, (디지털) 펜 센서, 키, 또는 초음파 입력 장치를 포함할 수 있다. 터치 패널은, 예를 들면, 정전식, 감압식, 적외선 방식, 또는 초음파 방식 중 적어도 하나의 방식을 사용할 수 있다. 또한, 터치 패널은 제어 회로를 더 포함할 수도 있다. 터치 패널은 택타일 레이어(tactile layer)를 더 포함하여, 사용자에게 촉각 반응을 제공할 수 있다. (디지털) 펜 센서는, 예를 들면, 터치 패널의 일부이거나, 별도의 인식용 쉬트를 포함할 수 있다. 키는, 예를 들면, 하드웨어 버튼, 광학식 키, 또는 키패드를 포함할 수 있다. 초음파 입력 장치는 마이크를 통해, 입력 도구에서 발생된 초음파를 감지하여, 상기 감지된 초음파에 대응하는 데이터를 확인할 수 있다.
디스플레이는 패널, 홀로그램 장치, 프로젝터, 및/또는 이들을 제어하기 위한 제어 회로를 포함할 수 있다. 패널은, 예를 들면, 유연하게, 투명하게, 또는 착용할 수 있게 구현될 수 있다. 패널은 터치 패널과 하나 이상의 모듈로 구성될 수 있다. 한 실시예에 따르면, 패널은 사용자의 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서(또는 포스 센서)를 포함할 수 있다. 상기 압력 센서는 터치 패널과 일체형으로 구현되거나, 또는 터치 패널과는 별도의 하나 이상의 센서로 구현될 수 있다. 홀로그램 장치는 빛의 간섭을 이용하여 입체 영상을 허공에 보여줄 수 있다. 프로젝터는 스크린에 빛을 투사하여 영상을 표시할 수 있다. 스크린은, 예를 들면, 전자 장치의 내부 또는 외부에 위치할 수 있다. 인터페이스는, 예를 들면, HDMI, USB, 광 인터페이스(optical interface), 또는 D-sub(D-subminiature)(278)를 포함할 수 있다. 추가적으로 또는 대체적으로, 인터페이스는, 예를 들면, MHL(mobile high-definition link) 인터페이스, SD카드/MMC(multi-media card) 인터페이스, 또는 IrDA(infrared data association) 규격 인터페이스를 포함할 수 있다.
오디오 모듈은, 예를 들면, 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 오디오 모듈은, 예를 들면, 스피커, 리시버, 이어폰, 또는 마이크 등을 통해 입력 또는 출력되는 소리 정보를 처리할 수 있다. 카메라 모듈은, 예를 들면, 정지 영상 및 동영상을 촬영할 수 있는 장치로서, 한 실시예에 따르면, 하나 이상의 이미지 센서(예: 전면 센서 또는 후면 센서), 렌즈, 이미지 시그널 프로세서(ISP), 또는 플래시(예: LED 또는 xenon lamp 등)를 포함할 수 있다. 전력 관리 모듈은, 예를 들면, 전자 장치의 전력을 관리할 수 있다. 한 실시예에 따르면, 전력 관리 모듈은 PMIC(power management integrated circuit), 충전 IC, 또는 배터리 또는 연료 게이지를 포함할 수 있다. PMIC는, 유선 및/또는 무선 충전 방식을 가질 수 있다. 무선 충전 방식은, 예를 들면, 자기공명 방식, 자기유도 방식 또는 전자기파 방식 등을 포함하며, 무선 충전을 위한 부가적인 회로, 예를 들면, 코일 루프, 공진 회로, 또는 정류기 등을 더 포함할 수 있다. 배터리 게이지는, 예를 들면, 배터리의 잔량, 충전 중 전압, 전류, 또는 온도를 측정할 수 있다. 배터리는, 예를 들면, 충전식 전지 및/또는 태양 전지를 포함할 수 있다.
인디케이터는 전자 장치 또는 그 일부(예: 프로세서)의 특정 상태, 예를 들면, 부팅 상태, 메시지 상태 또는 충전 상태 등을 표시할 수 있다. 모터는 전기적 신호를 기계적 진동으로 변환할 수 있고, 진동, 또는 햅틱 효과 등을 발생시킬 수 있다. 전자 장치는, 예를 들면, DMB(digital multimedia broadcasting), DVB(digital video broadcasting), 또는 미디어플로(mediaFloTM) 등의 규격에 따른 미디어 데이터를 처리할 수 있는 모바일 TV 지원 장치(예: GPU)를 포함할 수 있다. 본 문서에서 기술된 구성요소들 각각은 하나 또는 그 이상의 부품(component)으로 구성될 수 있으며, 해당 구성요소의 명칭은 전자 장치의 종류에 따라서 달라질 수 있다. 다양한 실시예에서, 전자 장치(예: 전자 장치)는 일부 구성요소가 생략되거나, 추가적인 구성요소를 더 포함하거나, 또는, 구성요소들 중 일부가 결합되어 하나의 개체로 구성되되, 결합 이전의 해당 구성요소들의 기능을 동일하게 수행할 수 있다.
본 발명의 다양한 실시예에서, 전자 장치(또는, 전자 장치)는, 전면, 후면 및 상기 전면과 상기 후면 사이의 공간을 둘러싸는 측면을 포함하는 하우징을 포함할 수도 있다. 터치스크린 디스플레이(예: 디스플레이)는, 상기 하우징 안에 배치되며, 상기 전면을 통하여 노출될 수 있다. 마이크는, 상기 하우징 안에 배치되며, 상기 하우징의 부분을 통하여 노출될 수 있다. 적어도 하나의 스피커는, 상기 하우징 안에 배치되며, 상기 하우징의 다른 부분을 통하여 노출될 수 있다. 하드웨어 버튼(예: 키)는, 상기 하우징의 또 다른 부분에 배치되거나 또는 상기 터치스크린 디스플레이 상에 표시하도록 설정될 수 있다. 무선 통신 회로(예: 통신 모듈)은, 상기 하우징 안에 위치할 수 있다. 상기 프로세서(또는, 프로세서)는, 상기 하우징 안에 위치하며, 상기 터치스크린 디스플레이, 상기 마이크, 상기 스피커 및 상기 무선 통신 회로에 전기적으로 연결될 수 있다. 상기 메모리(또는, 메모리)는, 상기 하우징 안에 위치하며, 상기 프로세서에 전기적으로 연결될 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제1 사용자 인터페이스를 포함하는 제1 어플리케이션 프로그램을 저장하도록 설정되고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제1 동작과 제2 동작을 수행하도록 야기하는 인스트럭션들을 저장하고, 상기 제1 동작은, 상기 제1 사용자 인터페이스가 상기 터치스크린 디스플레이 상에 표시되지 않는 도중에, 상기 버튼을 통하여 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제1 사용자 발화를 수신하고, 자동 스피치 인식(ASR: automatic speech recognition) 및 지능 시스템(intelligence system)을 포함하는 외부 서버로 상기 제1 사용자 발화에 대한 제1 데이터를 제공하고, 상기 제1 데이터를 제공한 이후에, 상기 외부 서버로부터 상기 제1 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성되는 태스크를 수행하도록 하는 적어도 하나의 명령을 수신하고, 상기 제2 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스가 표시되는 도중에 상기 버튼을 통하여 상기 제1 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제2 사용자 발화를 수신하고, 상기 외부 서버로 상기 제2 사용자 발화에 대한 제2 데이터를 제공하고, 상기 제2 데이터를 제공한 이후에, 상기 서버로부터, 상기 제2 사용자 발화로부터 상기 자동 스피치 인식에 의하여 생성된 텍스트에 대한 데이터를 수신하지만, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않고, 상기 제1 사용자 인터페이스에 상기 텍스트를 입력할 수 있다.
본 발명의 다양한 실시예에서, 상기 버튼은, 상기 하우징의 상기 측면에 위치하는 물리적인 키를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 타입의 사용자 입력은, 상기 버튼에 대한 1회 누름, 상기 버튼에 대한 2회 누름, 상기 버튼에 대한 3회 누름, 상기 버튼에 대한 1회 누른 이후에 누름 유지, 또는 상기 버튼에 대한 2회 누름 및 누름 유지 중 하나일 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스를 가상 키보드와 함께 표시하도록 더 야기할 수 있다. 상기 버튼은, 상기 가상 키보드의 일부가 아닐 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 서버로부터, 상기 제1 동작 내에서의 상기 제1 사용자 발화로부터 ASR에 의하여 생성되는 텍스트에 대한 데이터를 수신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 노트 어플리케이션 프로그램, 이메일 어플리케이션 프로그램, 웹 브라우저 어플리케이션 프로그램 또는 달력 어플리케이션 프로그램 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 메시지 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 텍스트를 입력한 이후에 선택된 시간 기간이 초과하면, 상기 무선 통신 회로를 통하여 자동으로 입력된 텍스트를 송신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 제3 동작을 수행하도록 더 야기하고, 상기 제3 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스를 표시하는 도중에, 상기 버튼을 통하여 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제3 사용자 발화를 수신하고, 상기 외부 서버로 상기 제3 사용자 발화에 대한 제3 데이터를 제공하고, 상기 제3 데이터를 제공한 이후에, 상기 제3 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 제4 동작을 수행하도록 더 야기하고, 상기 제4 동작은, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스가 표시되지 않는 도중에, 상기 버튼을 통하여 상기 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제4 사용자 발화를 수신하고, 상기 제4 사용자 발화에 대한 제4 데이터를 상기 외부 서버로 제공하고, 상기 제4 데이터를 제공한 이후에, 상기 제4 사용자 발화에 응답하여, 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신하고, 상기 마이크를 통하여 제5 사용자 발화를 수신하고, 상기 외부 서버로, 상기 제5 사용자 발화에 대한 제5 데이터를 제공하고, 및 상기 제5 데이터를 제공한 이후에, 상기 제5 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 타입의 사용자 입력 및 상기 제2 타입의 사용자 입력은 서로 다르며, 상기 버튼에 대한 1회 누름, 상기 버튼에 대한 2회 누름, 상기 버튼에 대한 3회 누름, 상기 버튼에 대한 1회 누른 이후에 누름 유지, 또는 상기 버튼에 대한 2회 누름 및 누름 유지 중 하나로부터 선택될 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제2 사용자 인터페이스를 포함하는 제2 어플리케이션 프로그램을 저장하도록 더 설정되며, 상기 인스트럭션들은, 실행 시에, 상기 프로세서가, 제3 동작을 수행하도록 더 야기하고, 상기 제3 동작은, 상기 제2 사용자 인터페이스를 표시하는 도중에 상기 버튼을 통하여 상기 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력이 수신된 이후에, 상기 마이크를 통하여 제3 사용자 발화를 수신하고, 상기 외부 서버로, 상기 제3 사용자 발화에 대한 제3 데이터를 제공하고, 상기 제3 데이터를 제공한 이후에, 상기 외부 서버로부터, 상기 제3 사용자 발화로부터 ASR에 의하여 생성된 텍스트에 대한 데이터를 수신하면서, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않고, 상기 제2 사용자 인터페이스에 상기 텍스트를 입력하고, 및 상기 텍스트를 입력하고, 선택된 시간 기간이 초과하면, 상기 무선 통신 회로를 통하여 상기 입력된 텍스트를 자동으로 송신할 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 텍스트 입력을 수신하기 위한 제1 사용자 인터페이스를 포함하는 제1 어플리케이션 프로그램을 저장하도록 설정되고, 상기 메모리는, 실행 시에, 상기 프로세서가, 제1 동작과 제2 동작을 수행하도록 야기하는 인스트럭션들을 저장하고, 상기 제1 동작은, 상기 버튼을 통하여 제1 타입의 사용자 입력을 수신하고, 상기 제1 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제1 사용자 발화를 수신하고, 자동 스피치 인식(ASR: automatic speech recognition) 및 지능 시스템(intelligence system)을 포함하는 외부 서버로, 상기 제1 사용자 발화에 대한 제1 데이터를 제공하고, 및 상기 제1 데이터를 제공한 이후에, 상기 제1 사용자 발화에 응답하여 상기 지능 시스템에 의하여 생성된 태스크를 수행하기 위한 적어도 하나의 명령을 상기 외부 서버로부터 수신하고, 상기 제2 동작은, 상기 버튼을 통하여 제2 타입의 사용자 입력을 수신하고, 상기 제2 타입의 사용자 입력을 수신한 이후에, 상기 마이크를 통하여 제2 사용자 발화를 수신하고, 상기 외부 서버로 상기 제2 사용자 발화에 대한 제2 데이터를 제공하고, 상기 제2 데이터를 제공한 이후에, 상기 서버로부터, 상기 제2 사용자 발화로부터 ASR에 의하여 생성된 텍스트에 대한 데이터를 수신하면서, 상기 지능 시스템에 의하여 생성되는 명령은 수신하지 않으며, 상기 제1 사용자 인터페이스에 상기 텍스트를 입력할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스를 가상 키보드와 함께 표시하도록 더 야기할 수 있으며, 상기 버튼은, 상기 가상 키보드의 일부가 아닐 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 외부 서버로부터 상기 제1 동작 내에서 상기 제1 사용자 발화로부터 상기 ASR에 의하여 생성되는 텍스트에 대한 데이터를 수신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 노트 어플리케이션 프로그램, 이메일 어플리케이션 프로그램, 웹 브라우저 어플리케이션 프로그램 또는 달력 어플리케이션 프로그램 중 적어도 하나를 포함할 수 있다.
본 발명의 다양한 실시예에서, 상기 제1 어플리케이션 프로그램은, 메시지 어플리케이션을 포함하고, 상기 인스트럭션들은, 상기 프로세서가, 상기 텍스트를 입력한 이후에 선택된 시간 기간이 초과하면, 상기 무선 통신 회로를 통하여 자동으로 입력된 텍스트를 송신하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가 상기 제1 사용자 인터페이스의 상기 디스플레이 상에 표시와 독립적으로 상기 제1 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 전자 장치가 잠금 상태에 있거나 또는 상기 터치스크린 디스플레이가 턴 오프된 것 중 적어도 하나인 경우에, 상기 제2 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 인스트럭션들은, 상기 프로세서가, 상기 터치스크린 디스플레이 상에 상기 제1 사용자 인터페이스를 표시하는 도중에, 상기 제2 동작을 수행하도록 더 야기할 수 있다.
본 발명의 다양한 실시예에서, 상기 메모리는, 실행 시에, 상기 프로세서가, 상기 마이크를 통하여 사용자 발화를 수신하고, 자동 스피치 인식(automatic speech recognition: ASR) 또는 자연어 이해(natural language understanding: NLU) 중 적어도 하나를 수행하는 외부 서버로, 상기 사용자 발화에 대한 데이터와 함께, 상기 사용자 발화에 대한 데이터에 대하여 상기 ASR을 수행하여 획득된 텍스트에 대하여 상기 자연어 이해를 수행할지 여부와 연관된 정보를 송신하고, 상기 정보가 상기 자연어 이해를 수행하지 않을 것을 나타내면, 상기 외부 서버로부터 상기 사용자 발화에 대한 데이터에 대한 상기 텍스트를 수신하고, 상기 정보가 상기 자연어 이해를 수행할 것을 나타내면, 상기 외부 서버로부터 상기 텍스트에 대한 상기 자연어 이해 수행 결과 획득된 명령을 수신하도록 야기하는 인스트럭션을 저장할 수 있다.
한 실시예에 따르면, 프로그램 모듈(예: 프로그램)은 전자 장치(예: 전자 장치)에 관련된 자원을 제어하는 운영 체제 및/또는 운영 체제 상에서 구동되는 다양한 어플리케이션(예: 어플리케이션 프로그램)을 포함할 수 있다. 운영 체제는, 예를 들면, AndroidTM, iOSTM, WindowsTM, SymbianTM, TizenTM, 또는 BadaTM를 포함할 수 있다. 프로그램 모듈은 커널(예: 커널), 미들웨어(예: 미들웨어), (API(예: API), 및/또는 어플리케이션(예: 어플리케이션 프로그램)을 포함할 수 있다. 프로그램 모듈의 적어도 일부는 전자 장치 상에 프리로드 되거나, 외부 전자 장치(예: 전자 장치, 서버 등)로부터 다운로드 가능하다.
커널은, 예를 들면, 시스템 리소스 매니저 및/또는 디바이스 드라이버를 포함할 수 있다. 시스템 리소스 매니저는 시스템 리소스의 제어, 할당, 또는 회수를 수행할 수 있다. 한 실시예에 따르면, 시스템 리소스 매니저는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부를 포함할 수 있다. 디바이스 드라이버는, 예를 들면, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, WiFi 드라이버, 오디오 드라이버, 또는 IPC(inter-process communication) 드라이버를 포함할 수 있다. 미들웨어는, 예를 들면, 어플리케이션이 공통적으로 필요로 하는 기능을 제공하거나, 어플리케이션이 전자 장치 내부의 제한된 시스템 자원을 사용할 수 있도록 API를 통해 다양한 기능들을 어플리케이션으로 제공할 수 있다. 한 실시예에 따르면, 미들웨어는 런타임 라이브러리, 어플리케이션 매니저, 윈도우 매니저, 멀티미디어 매니저, 리소스 매니저, 파워 매니저, 데이터베이스 매니저, 패키지 매니저, 커넥티비티 매니저, 노티피케이션 매니저, 로케이션 매니저, 그래픽 매니저, 또는 시큐리티 매니저 중 적어도 하나를 포함할 수 있다.
런타임 라이브러리는, 예를 들면, 어플리케이션이 실행되는 동안에 프로그래밍 언어를 통해 새로운 기능을 추가하기 위해 컴파일러가 사용하는 라이브러리 모듈을 포함할 수 있다. 런타임 라이브러리는 입출력 관리, 메모리 관리, 또는 산술 함수 처리를 수행할 수 있다. 어플리케이션 매니저는, 예를 들면, 어플리케이션의 생명 주기를 관리할 수 있다. 윈도우 매니저는 화면에서 사용되는 GUI 자원을 관리할 수 있다. 멀티미디어 매니저는 미디어 파일들의 재생에 필요한 포맷을 파악하고, 해당 포맷에 맞는 코덱을 이용하여 미디어 파일의 인코딩 또는 디코딩을 수행할 수 있다. 리소스 매니저는 어플리케이션의 소스 코드 또는 메모리의 공간을 관리할 수 있다. 파워 매니저는, 예를 들면, 배터리의 용량 또는 전원을 관리하고, 전자 장치의 동작에 필요한 전력 정보를 제공할 수 있다. 한 실시예에 따르면, 파워 매니저는 바이오스(BIOS: basic input/output system)와 연동할 수 있다. 데이터베이스 매니저는, 예를 들면, 어플리케이션에서 사용될 데이터베이스를 생성, 검색, 또는 변경할 수 있다. 패키지 매니저는 패키지 파일의 형태로 배포되는 어플리케이션의 설치 또는 갱신을 관리할 수 있다.
커넥티비티 매니저는, 예를 들면, 무선 연결을 관리할 수 있다. 노티피케이션 매니저는, 예를 들면, 도착 메시지, 약속, 근접성 알림 등의 이벤트를 사용자에게 제공할 수 있다. 로케이션 매니저는, 예를 들면, 전자 장치의 위치 정보를 관리할 수 있다. 그래픽 매니저는, 예를 들면, 사용자에게 제공될 그래픽 효과 또는 이와 관련된 사용자 인터페이스를 관리할 수 있다. 보안 매니저는, 예를 들면, 시스템 보안 또는 사용자 인증을 제공할 수 있다. 한 실시예에 따르면, 미들웨어는 전자 장치의 음성 또는 영상 통화 기능을 관리하기 위한 통화(telephony) 매니저 또는 전술된 구성요소들의 기능들의 조합을 형성할 수 있는 하는 미들웨어 모듈을 포함할 수 있다. 한 실시예에 따르면, 미들웨어는 운영 체제의 종류 별로 특화된 모듈을 제공할 수 있다. 미들웨어는 동적으로 기존의 구성요소를 일부 삭제하거나 새로운 구성요소들을 추가할 수 있다. API는, 예를 들면, API 프로그래밍 함수들의 집합으로, 운영 체제에 따라 다른 구성으로 제공될 수 있다. 예를 들면, 안드로이드 또는 iOS의 경우, 플랫폼 별로 하나의 API 셋을 제공할 수 있으며, 타이젠의 경우, 플랫폼 별로 두 개 이상의 API 셋을 제공할 수 있다.
어플리케이션은, 예를 들면, 홈, 다이얼러, SMS/MMS, IM(instant message), 브라우저, 카메라, 알람, 컨택트, 음성 다이얼, 이메일, 달력, 미디어 플레이어, 앨범, 와치, 헬스 케어(예: 운동량 또는 혈당 등을 측정), 또는 환경 정보(예: 기압, 습도, 또는 온도 정보) 제공 어플리케이션을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션은 전자 장치와 외부 전자 장치 사이의 정보 교환을 지원할 수 있는 정보 교환 어플리케이션을 포함할 수 있다. 정보 교환 어플리케이션은, 예를 들면, 외부 전자 장치에 특정 정보를 전달하기 위한 노티피케이션 릴레이 어플리케이션, 또는 외부 전자 장치를 관리하기 위한 장치 관리 어플리케이션을 포함할 수 있다. 예를 들면, 알림 전달 어플리케이션은 전자 장치의 다른 어플리케이션에서 발생된 알림 정보를 외부 전자 장치로 전달하거나, 또는 외부 전자 장치로부터 알림 정보를 수신하여 사용자에게 제공할 수 있다. 장치 관리 어플리케이션은, 예를 들면, 전자 장치와 통신하는 외부 전자 장치의 기능(예: 외부 전자 장치 자체(또는, 일부 구성 부품)의 턴-온/턴-오프 또는 디스플레이의 밝기(또는, 해상도) 조절), 또는 외부 전자 장치에서 동작하는 어플리케이션을 설치, 삭제, 또는 갱신할 수 있다. 한 실시예에 따르면, 어플리케이션은 외부 전자 장치의 속성에 따라 지정된 어플리케이션(예: 모바일 의료 기기의 건강 관리 어플리케이션)을 포함할 수 있다. 한 실시예에 따르면, 어플리케이션은 외부 전자 장치로부터 수신된 어플리케이션을 포함할 수 있다. 프로그램 모듈의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어(예: 프로세서), 또는 이들 중 적어도 둘 이상의 조합으로 구현(예: 실행)될 수 있으며, 하나 이상의 기능을 수행하기 위한 모듈, 프로그램, 루틴, 명령어 세트 또는 프로세스를 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 9를 참조하면, 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 멀티 프로세서에 대한 정보를 수집하는 단계(S910)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 멀티 프로세서에 대한 정보에 기반하여 제1 방열 모드 또는 제2 방열 모드를 선택하는 단계(S920)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 제1 방열 모드를 실행하는 단계(S930)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 제2 방열 모드를 실행하는 단계(S940)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 긴급 정지 모드를 실행하는 단계(S950)를 포함할 수 있다.
본 발명의 일 실시예에 따른 방법은, 일 예에 따라 상기 S910 내지 S950 중 일부만을 포함할 수도 있으며, 다른 예에 따라 상기 S910 내지 S950의 순서는 변경될 수 있다.
도 10은 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법을 나타내는 흐름도이다.
도 10을 참조하면, 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 멀티 프로세서에 대한 정보를 수집하는 단계(S1010)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 멀티 프로세서에 대한 정보에 기반하여 단독 모드 또는 공유 모드를 선택하는 단계(S1020)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 공유 모드가 선택됨에 기반하여 외부 요청 메시지를 단말 또는 서버에게 전송하는 단계(S1030)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 외부 처리 정보를 단말 또는 서버로부터 수신하는 단계(S1040)를 포함할 수 있다.
또한 본 발명의 일 실시예에 따른 멀티 프로세서를 제어하는 방법은, 외부 처리 정보를 내부 처리 정보와 결합하는 단계(S1050)를 포함할 수 있다.
본 발명의 일 실시예에 따른 방법은, 일 예에 따라 상기 S1010 내지 S1050 중 일부만을 포함할 수도 있으며, 다른 예에 따라 상기 S1010 내지 S1050의 순서는 변경될 수 있다.
본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시예는 필요에 따라 서로 조합되어 운용할 수 있다. 예컨대, 본 발명의 모든 실시예는 일부분들이 서로 조합되어 본 발명의 시스템(100), 단말(120, 130) 및/또는 서버(140, 150)에 의해 구현될 수 있다.
또한, 본 발명의 시스템(100), 단말(120, 130) 및/또는 서버(140, 150)를 제어하는 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다.
이와 같이, 본 발명의 다양한 실시예들은 특정 관점에서 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의해 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 리드 가능 기록 매체의 예들은 읽기 전용 메모리(read only memory: ROM)와, 랜덤-접속 메모리(random access memory: RAM)와, 컴팩트 디스크- 리드 온니 메모리(compact disk-read only memory: CD-ROM)들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(인터넷을 통한 데이터 송신 등)을 포함할 수 있다. 컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통해 분산될 수 있고, 따라서 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 발명의 다양한 실시예들을 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 발명이 적용되는 분야에서 숙련된 프로그래머들에 의해 쉽게 해석될 수 있다.
또한 본 발명의 다양한 실시예들에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 콤팩트 디스크(compact disk: CD), DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 발명의 다양한 실시예들에 따른 방법은 제어장치, 제어부 및/또는 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의해 구현될 수 있고, 이러한 메모리는 본 발명의 실시예들을 구현하는 명령들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다.
따라서, 본 발명은 본 명세서의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통해 전달되는 통신 신호와 같은 임의의 매체를 통해 전자적으로 이송될 수 있고, 본 발명은 이와 균등한 것을 적절하게 포함한다.
본 명세서와 도면에 개시된 본 발명의 실시 예들은 본 발명의 기술 내용을 쉽게 설명하고, 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 또한 앞서 설명된 본 발명에 따른 실시예들은 예시적인 것에 불과하며, 당해 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 범위의 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 다음의 특허청구범위에 의해서 정해져야 할 것이다.

Claims (8)

  1. 복수의 프로세서를 포함하는 멀티 프로세서(multi-processor)와 상기 복수의 프로세서를 제어하는 프로세서 관리부를 포함하는 제어 장치; 를 포함하고,
    상기 프로세서 관리부는:
    상기 복수의 프로세서에 대한 제1 상태 정보를 소정의 주기(period)마다 수집하되, 상기 소정의 주기는 상기 복수의 프로세서에 대한 제1 상태 정보에 기반하여 재설정되고,
    상기 멀티 프로세서를 통하여 처리할 처리 대상 정보(information to be processed)에 영상(video)가 포함되어 있는지 여부, 이미지(image)가 포함되어 있는지 여부, 또는 텍스트(text)가 포함되어 있는지 여부에 기반하여 소정의 판단 지표를 산출하고,
    상기 판단 지표를 이용하여 제1 멀티 프로세서 모드를 비디오 시청 모드, 일반 모드(normal mode), 무인 모드(unmanned mode) 중에서 어느 하나로 결정하고,
    상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어하고,
    상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어한 후에 상기 복수의 프로세서에 대한 제2 상태 정보를 더 수집하고,
    상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 상기 복수의 프로세서에 대한 제2 재설정 정보를 생성하고,
    상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 제2 멀티 프로세서 모드를 설정하고,
    상기 제2 재설정 정보 및 상기 제2 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 더 제어하는, 전자 장치.
  2. 제 1 항에 있어서,
    상기 복수의 프로세서는 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 및 제4 프로세서 그룹으로 구분되고,
    상기 비디오 시청 모드는 상기 제1 프로세서 그룹, 상기 제2 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 일반 모드는 상기 제2 프로세서 그룹, 상기 제3 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 무인 모드는 상기 제3 프로세서 그룹, 상기 제4 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 비디오 시청 모드는 상기 처리 대상 정보에 소정의 시간 길이를 넘는 시간 길이를 갖고 소정의 용량을 초과하는 용량을 갖는 영상이 포함된 경우를 위한 모드인, 전자 장치.
  3. 전자 장치에 구비되는 제어 장치에 있어서,
    복수의 프로세서를 포함하는 멀티 프로세서(multi-processor); 및
    상기 복수의 프로세서를 제어하는 프로세서 관리부; 를 포함하고,
    상기 프로세서 관리부는:
    상기 복수의 프로세서에 대한 제1 상태 정보를 소정의 주기(period)마다 수집하되, 상기 소정의 주기는 상기 복수의 프로세서에 대한 제1 상태 정보에 기반하여 재설정되고,
    상기 멀티 프로세서를 통하여 처리할 처리 대상 정보(information to be processed)에 영상(video)가 포함되어 있는지 여부, 이미지(image)가 포함되어 있는지 여부, 또는 텍스트(text)가 포함되어 있는지 여부에 기반하여 소정의 판단 지표를 산출하고,
    상기 판단 지표를 이용하여 제1 멀티 프로세서 모드를 비디오 시청 모드, 일반 모드(normal mode), 무인 모드(unmanned mode) 중에서 어느 하나로 결정하고,
    상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어하고,
    상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어한 후에 상기 복수의 프로세서에 대한 제2 상태 정보를 더 수집하고,
    상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 상기 복수의 프로세서에 대한 제2 재설정 정보를 생성하고,
    상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 제2 멀티 프로세서 모드를 설정하고,
    상기 제2 재설정 정보 및 상기 제2 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 더 제어하는, 제어 장치.
  4. 제 3 항에 있어서,
    상기 복수의 프로세서는 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 및 제4 프로세서 그룹으로 구분되고,
    상기 비디오 시청 모드는 상기 제1 프로세서 그룹, 상기 제2 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 일반 모드는 상기 제2 프로세서 그룹, 상기 제3 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 무인 모드는 상기 제3 프로세서 그룹, 상기 제4 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 비디오 시청 모드는 상기 처리 대상 정보에 소정의 시간 길이를 넘는 시간 길이를 갖고 소정의 용량을 초과하는 용량을 갖는 영상이 포함된 경우를 위한 모드인, 제어 장치.
  5. 복수의 프로세서를 포함하는 멀티 프로세서(multi-processor)와 상기 복수의 프로세서를 제어하는 프로세서 관리부를 포함하는 제어 장치의 동작 방법에 있어서,
    상기 프로세서 관리부가 상기 복수의 프로세서에 대한 제1 상태 정보를 소정의 주기(period)마다 수집하되, 상기 소정의 주기는 상기 복수의 프로세서에 대한 제1 상태 정보에 기반하여 재설정되는 단계;
    상기 프로세서 관리부가 상기 멀티 프로세서를 통하여 처리할 처리 대상 정보(information to be processed)에 영상(video)가 포함되어 있는지 여부, 이미지(image)가 포함되어 있는지 여부, 또는 텍스트(text)가 포함되어 있는지 여부에 기반하여 소정의 판단 지표를 산출하는 단계;
    상기 프로세서 관리부가 상기 판단 지표를 이용하여 제1 멀티 프로세서 모드를 비디오 시청 모드, 일반 모드(normal mode), 무인 모드(unmanned mode) 중에서 어느 하나로 결정하는 단계;
    상기 프로세서 관리부가 상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어하고,
    상기 프로세서 관리부가 상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어한 후에 상기 복수의 프로세서에 대한 제2 상태 정보를 더 수집하고,
    상기 프로세서 관리부가 상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 상기 복수의 프로세서에 대한 제2 재설정 정보를 생성하고,
    상기 프로세서 관리부가 상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 제2 멀티 프로세서 모드를 설정하는 단계; 및
    상기 프로세서 관리부가 상기 제2 재설정 정보 및 상기 제2 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 더 제어하는 단계; 를 포함하는, 동작 방법.
  6. 제 5 항에 있어서,
    상기 복수의 프로세서는 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 및 제4 프로세서 그룹으로 구분되고,
    상기 비디오 시청 모드는 상기 제1 프로세서 그룹, 상기 제2 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 일반 모드는 상기 제2 프로세서 그룹, 상기 제3 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 무인 모드는 상기 제3 프로세서 그룹, 상기 제4 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 비디오 시청 모드는 상기 처리 대상 정보에 소정의 시간 길이를 넘는 시간 길이를 갖고 소정의 용량을 초과하는 용량을 갖는 영상이 포함된 경우를 위한 모드인, 동작 방법.
  7. 복수의 프로세서를 포함하는 멀티 프로세서(multi-processor)를 포함하는 단말; 및 서버; 를 포함하고,
    상기 단말은:
    상기 복수의 프로세서에 대한 제1 상태 정보를 소정의 주기(period)마다 수집하되, 상기 소정의 주기는 상기 복수의 프로세서에 대한 제1 상태 정보에 기반하여 재설정되고,
    상기 멀티 프로세서를 통하여 처리할 처리 대상 정보(information to be processed)에 영상(video)가 포함되어 있는지 여부, 이미지(image)가 포함되어 있는지 여부, 또는 텍스트(text)가 포함되어 있는지 여부에 기반하여 소정의 판단 지표를 산출하고,
    상기 판단 지표를 이용하여 제1 멀티 프로세서 모드를 비디오 시청 모드, 일반 모드(normal mode), 무인 모드(unmanned mode) 중에서 어느 하나로 결정하고,
    상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어하고,
    상기 서버는 상기 제1 상태 정보에 기반하여 상기 소정의 주기를 재설정하고,
    상기 단말은:
    상기 제1 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 제어한 후에 상기 복수의 프로세서에 대한 제2 상태 정보를 더 수집하고,
    상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 상기 복수의 프로세서에 대한 제2 재설정 정보를 생성하고,
    상기 복수의 프로세서에 대한 제2 상태 정보에 기반하여 제2 멀티 프로세서 모드를 설정하고,
    상기 제2 재설정 정보 및 상기 제2 멀티 프로세서 모드에 따라 상기 복수의 프로세서 각각의 온오프(ON/OFF)를 더 제어하는, 시스템.
  8. 제 7 항에 있어서,
    상기 복수의 프로세서는 제1 프로세서 그룹, 제2 프로세서 그룹, 제3 프로세서 그룹, 및 제4 프로세서 그룹으로 구분되고,
    상기 비디오 시청 모드는 상기 제1 프로세서 그룹, 상기 제2 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 일반 모드는 상기 제2 프로세서 그룹, 상기 제3 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 무인 모드는 상기 제3 프로세서 그룹, 상기 제4 프로세서 그룹 중 적어도 어느 하나에 상응하고,
    상기 비디오 시청 모드는 상기 처리 대상 정보에 소정의 시간 길이를 넘는 시간 길이를 갖고 소정의 용량을 초과하는 용량을 갖는 영상이 포함된 경우를 위한 모드인, 시스템.
KR1020220020985A 2022-02-14 2022-02-17 멀티 프로세서의 동작 방법 및 제어 시스템 KR102406483B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020220067620A KR20220083985A (ko) 2022-02-14 2022-06-02 멀티 프로세서
KR1020220067619A KR20220083984A (ko) 2022-02-14 2022-06-02 멀티 프로세서 시스템

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR1020220019024 2022-02-14
KR20220019024 2022-02-14
KR1020220019361 2022-02-15
KR20220019361 2022-02-15

Related Child Applications (2)

Application Number Title Priority Date Filing Date
KR1020220067620A Division KR20220083985A (ko) 2022-02-14 2022-06-02 멀티 프로세서
KR1020220067619A Division KR20220083984A (ko) 2022-02-14 2022-06-02 멀티 프로세서 시스템

Publications (1)

Publication Number Publication Date
KR102406483B1 true KR102406483B1 (ko) 2022-06-10

Family

ID=81986294

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020220020985A KR102406483B1 (ko) 2022-02-14 2022-02-17 멀티 프로세서의 동작 방법 및 제어 시스템
KR1020220067620A KR20220083985A (ko) 2022-02-14 2022-06-02 멀티 프로세서
KR1020220067619A KR20220083984A (ko) 2022-02-14 2022-06-02 멀티 프로세서 시스템

Family Applications After (2)

Application Number Title Priority Date Filing Date
KR1020220067620A KR20220083985A (ko) 2022-02-14 2022-06-02 멀티 프로세서
KR1020220067619A KR20220083984A (ko) 2022-02-14 2022-06-02 멀티 프로세서 시스템

Country Status (1)

Country Link
KR (3) KR102406483B1 (ko)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880008188A (ko) 1986-12-22 1988-08-30 엘리 와이스 멀티프로세서 시스템용 신호 조정장치 및 방법
KR0145925B1 (ko) 1995-01-27 1998-09-15 박성규 컴퓨터 분야의 인터럽트 제어 장치
KR19990047715A (ko) 1997-12-05 1999-07-05 유기범 전전자 교환기에 있어서 스탠바이 프로세서의 사용자 프로그램로딩 방법
KR20000020328A (ko) 1998-09-19 2000-04-15 윤종용 멀티프로세서를 구비한 전자 장치 및 마스터 프로세서를 통한슬래브 프로세서의 디버깅 방법
KR20000044392A (ko) 1998-12-30 2000-07-15 윤종용 다수의 프로세서간 인터페이스 장치
KR20010094293A (ko) * 2000-04-06 2001-10-31 윤종용 프로세서 상태 관리 방법
KR100390403B1 (ko) 1999-10-21 2003-07-07 엘지전자 주식회사 이중화 프로세서의 소프트웨어 프로세서 절체 방법
KR20030089734A (ko) 2002-05-18 2003-11-28 엘지전자 주식회사 프로세서 보드 이중화 장치 및 그 운용방법
KR100901286B1 (ko) * 2008-12-23 2009-06-09 어울림정보기술주식회사 다중 코어 프로세서에서의 부하 변화에 따른 실시간 프로세스 동적 할당 시스템 및 그 방법
JP2010231511A (ja) * 2009-03-27 2010-10-14 Panasonic Corp 情報処理装置および情報処理方法
KR20150054152A (ko) * 2013-11-11 2015-05-20 삼성전자주식회사 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR880008188A (ko) 1986-12-22 1988-08-30 엘리 와이스 멀티프로세서 시스템용 신호 조정장치 및 방법
KR0145925B1 (ko) 1995-01-27 1998-09-15 박성규 컴퓨터 분야의 인터럽트 제어 장치
KR19990047715A (ko) 1997-12-05 1999-07-05 유기범 전전자 교환기에 있어서 스탠바이 프로세서의 사용자 프로그램로딩 방법
KR20000020328A (ko) 1998-09-19 2000-04-15 윤종용 멀티프로세서를 구비한 전자 장치 및 마스터 프로세서를 통한슬래브 프로세서의 디버깅 방법
KR20000044392A (ko) 1998-12-30 2000-07-15 윤종용 다수의 프로세서간 인터페이스 장치
KR100390403B1 (ko) 1999-10-21 2003-07-07 엘지전자 주식회사 이중화 프로세서의 소프트웨어 프로세서 절체 방법
KR20010094293A (ko) * 2000-04-06 2001-10-31 윤종용 프로세서 상태 관리 방법
KR20030089734A (ko) 2002-05-18 2003-11-28 엘지전자 주식회사 프로세서 보드 이중화 장치 및 그 운용방법
KR100901286B1 (ko) * 2008-12-23 2009-06-09 어울림정보기술주식회사 다중 코어 프로세서에서의 부하 변화에 따른 실시간 프로세스 동적 할당 시스템 및 그 방법
JP2010231511A (ja) * 2009-03-27 2010-10-14 Panasonic Corp 情報処理装置および情報処理方法
KR20150054152A (ko) * 2013-11-11 2015-05-20 삼성전자주식회사 대칭형 다중 프로세서를 구비한 시스템 온-칩 및 이를 위한 최대 동작 클럭 주파수 결정 방법

Also Published As

Publication number Publication date
KR20220083985A (ko) 2022-06-21
KR20220083984A (ko) 2022-06-21

Similar Documents

Publication Publication Date Title
KR102319803B1 (ko) 전자 장치, 그 동작 방법 및 기록 매체
KR102449533B1 (ko) 전자 장치 및 전자 장치에서 어플리케이션의 실행을 제어하는 방법
KR20180042725A (ko) 전자 장치 및 전자 장치의 멀티미디어 콘텐트 재생 방법
KR102387157B1 (ko) 장치 관리 방법 및 이를 지원하는 전자 장치
US10795720B2 (en) Electronic device for controlling application and operation method thereof
KR20160101600A (ko) 스크린 미러링 서비스 제공방법 및 장치
KR20170092966A (ko) 외부 전자 장치와 연결을 수립하는 방법 및 전자 장치
KR102369126B1 (ko) 메모 기능을 제공하는 전자 장치 및 그 방법
KR20160114930A (ko) 모듈 인식 방법 및 이를 수행하는 전자 장치
KR102473790B1 (ko) 저전력 상태에서 시간 정보 제공 방법 및 이 방법을 포함하는 전자 장치
KR102313588B1 (ko) 전자 장치, 그 동작 방법 및 기록 매체
KR102358849B1 (ko) 스마트 워치에 대한 정보를 제공하는 전자 장치와 이의 동작 방법
KR20170050702A (ko) 제스처 감지 방법 및 이를 지원하는 전자 장치
KR20170019817A (ko) 어플리케이션을 관리하는 방법 및 그를 위한 전자 장치
KR20170017590A (ko) 전자 장치들 사이의 연결을 수행하기 위한 방법 및 전자 장치
KR20170081903A (ko) 전자 장치 및 그 동작 방법
KR20170109401A (ko) 전자 장치 및 그 제어 방법
KR20170105262A (ko) 전자장치 및 그의 생체 정보 획득 방법
US20190222245A1 (en) Electronic device and operation method therefor
KR20170105863A (ko) 전자 장치 및 전자 장치의 디스플레이 제어 방법
KR20160112236A (ko) 전원을 제어하는 전자 장치 및 방법
KR20180089803A (ko) 인증을 수행하는 전자 장치 및 방법
KR20180090484A (ko) 전자 장치 및 전자 장치의 전류소모 방지 방법
KR102323797B1 (ko) 전자 장치 및 그의 정보 공유 방법
US10298733B2 (en) Method for executing function of electronic device using bio-signal and electronic device therefor

Legal Events

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