KR102408961B1 - Method for processing a delayed task and electronic device implementing the same - Google Patents

Method for processing a delayed task and electronic device implementing the same Download PDF

Info

Publication number
KR102408961B1
KR102408961B1 KR1020170137733A KR20170137733A KR102408961B1 KR 102408961 B1 KR102408961 B1 KR 102408961B1 KR 1020170137733 A KR1020170137733 A KR 1020170137733A KR 20170137733 A KR20170137733 A KR 20170137733A KR 102408961 B1 KR102408961 B1 KR 102408961B1
Authority
KR
South Korea
Prior art keywords
processing
designated
delayed
processor
electronic device
Prior art date
Application number
KR1020170137733A
Other languages
Korean (ko)
Other versions
KR20190045001A (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 KR1020170137733A priority Critical patent/KR102408961B1/en
Publication of KR20190045001A publication Critical patent/KR20190045001A/en
Application granted granted Critical
Publication of KR102408961B1 publication Critical patent/KR102408961B1/en

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/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/5038Allocation 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 execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • 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
    • 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

Abstract

본 발명의 다양한 실시예에 따라, 전자 장치에 있어서, 태스크에 포함된 서브 태스크를 처리할 수 있는 하나 이상의 처리 회로들; 및 상기 하나 이상의 처리 회로들 중 적어도 일부 처리 회로를 이용하여 상기 태스크를 처리할 수 있는 프로세서를 포함하고, 상기 프로세서는, 하나 이상의 지정된 서브 태스크들을 포함하는 지정된 태스크를 처리하고, 상기 하나 이상의 지정된 서브 태스크들이 처리되고 있는 상태를 확인하고, 상기 상태에 적어도 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하고, 상기 적어도 일부 처리 회로를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고, 상기 프로세서를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고, 상기 적어도 일부 처리 회로를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 1 처리 결과 및, 상기 프로세서를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 2 처리 결과 중 지정된 조건을 만족하는 하나의 처리 결과를 상기 처리가 지연되고 있는 적어도 하나의 서브 태스크에 대응하는 처리 결과로 적용하도록 설정된 전자 장치를 포함할 수 있다.
다른 실시예가 가능하다.
According to various embodiments of the present disclosure, an electronic device may include one or more processing circuits capable of processing a sub-task included in a task; and a processor capable of processing the task using at least some of the one or more processing circuits, wherein the processor processes a designated task comprising one or more designated sub-tasks; ascertain a status in which tasks are being processed, and, based at least on the status, identify at least one designated subtask among the one or more designated subtasks whose processing is being delayed, using the at least some processing circuitry, process at least one designated sub-task for which processing is being delayed, using the processor to process at least one designated sub-task for which processing is delayed; a first processing result corresponding to the at least one designated subtask being delayed, and a second processing result corresponding to the at least one designated subtask being delayed, the processing processed using the processor satisfying a specified condition and an electronic device configured to apply one processing result as a processing result corresponding to at least one sub-task whose processing is being delayed.
Other embodiments are possible.

Description

처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치 {METHOD FOR PROCESSING A DELAYED TASK AND ELECTRONIC DEVICE IMPLEMENTING THE SAME}A method for processing a task with delayed processing and an electronic device supporting the same

본 발명의 다양한 실시 예는 처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치 에 관한 것이다.Various embodiments of the present disclosure relate to a method of processing a task whose processing is being delayed, and an electronic device supporting the same.

기술이 고도화됨에 따라, 전자 장치는 복잡한 작업을 처리하는 것이 요구된다. 뿐만 아니라, 전자 장치는 작업 처리 성능이 뛰어나야 하며 소모 전류도 최적화되는 것이 요구된다.As technology is advanced, electronic devices are required to handle complex tasks. In addition, the electronic device is required to have excellent processing performance and to optimize current consumption.

복잡한 작업을 처리하기 위해, 전자 장치는 하나의 작업을 처리하기 위해 하나의 작업을 복수개의 서브 작업 단위로 처리하며, 각각의 서브 작업들은 적어도 하나의 컴퓨팅 자원에 의해 수행된다.In order to process a complex task, the electronic device processes one task in a plurality of sub-task units to process one task, and each sub-task is performed by at least one computing resource.

그러나, 각각의 서브 작업들이 적어도 하나의 컴퓨팅 자원에 의해 수행되면, 전자 장치가 실시간으로 자원 상황을 파악하는데 한계가 있고 전자 장치의 성능상의 이유로 각 서브 작업에 적합한 컴퓨팅 자원을 할당하지 못하는 문제점이 있다. 이로 인해, 각각의 서브 작업들로 이루어진 하나의 작업의 처리 속도는 지연되는 등의 연쇄적인 문제가 발생한다.However, when each sub-task is performed by at least one computing resource, there is a problem in that the electronic device has a limitation in grasping the resource situation in real time and it is not possible to allocate a computing resource suitable for each sub-task due to the performance of the electronic device. . Due to this, a chain problem such as a delay in the processing speed of one job composed of each sub-job occurs.

본 발명의 다양한 실시예에 따라, 전자 장치에 있어서, 태스크에 포함된 서브 태스크를 처리할 수 있는 하나 이상의 처리 회로들; 및 상기 하나 이상의 처리 회로들 중 적어도 일부 처리 회로를 이용하여 상기 태스크를 처리할 수 있는 프로세서를 포함하고, 상기 프로세서는, 하나 이상의 지정된 서브 태스크들을 포함하는 지정된 태스크를 처리하고, 상기 하나 이상의 지정된 서브 태스크들이 처리되고 있는 상태를 확인하고, 상기 상태에 적어도 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하고, 상기 적어도 일부 처리 회로를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고, 상기 프로세서를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고, 상기 적어도 일부 처리 회로를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 1 처리 결과 및, 상기 프로세서를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 2 처리 결과 중 지정된 조건을 만족하는 하나의 처리 결과를 상기 처리가 지연되고 있는 적어도 하나의 서브 태스크에 대응하는 처리 결과로 적용하도록 설정된 전자 장치를 포함할 수 있다.According to various embodiments of the present disclosure, an electronic device may include one or more processing circuits capable of processing a sub-task included in a task; and a processor capable of processing the task using at least some of the one or more processing circuits, wherein the processor processes a designated task comprising one or more designated sub-tasks; ascertain a status in which tasks are being processed, and, based at least on the status, identify at least one designated subtask among the one or more designated subtasks whose processing is being delayed, using the at least some processing circuitry, process at least one designated sub-task for which processing is being delayed, using the processor to process at least one designated sub-task for which processing is delayed; a first processing result corresponding to the at least one designated subtask being delayed, and a second processing result corresponding to the at least one designated subtask being delayed, the processing processed using the processor satisfying a specified condition and an electronic device configured to apply one processing result as a processing result corresponding to at least one sub-task whose processing is delayed.

다양한 실시예에 따른 처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치 는, 실시간으로 발생하는 작업 성능 지연 현상을 해결하여 작업의 성능을 정상화 할 수 있다.A method for processing a task whose processing is delayed according to various embodiments and an electronic device supporting the same can normalize the performance of a task by resolving a task performance delay that occurs in real time.

도 1은 다양한 실시 예에 따른, 네트워크 환경 내의 전자 장치의 블럭도이다.
도 2는 다양한 실시 예에 따른 태스크와 서브 태스크를 나타낸 예시도이다.
도 3은 다양한 실시 예에 따른 동작의 흐름을 나타낸 도면이다.
도 4는 다양한 실시 예에 따른 동작의 흐름을 나타낸 도면이다.
도 5a 및 도 5b는 워스트 노드를 감지하는 예를 나타낸 도면이다.
도 6은 타겟 별 노드를 수행하는 시간을 나타낸 도면이다.
도 7은 다양한 실시 예에 따른 후보 타겟을 선택하는 동작의 흐름을 나타낸 도면이다.
1 is a block diagram of an electronic device in a network environment, according to various embodiments of the present disclosure;
2 is an exemplary diagram illustrating a task and a sub-task according to various embodiments of the present disclosure;
3 is a diagram illustrating a flow of operations according to various embodiments of the present disclosure;
4 is a diagram illustrating a flow of operations according to various embodiments of the present disclosure;
5A and 5B are diagrams illustrating an example of detecting a worst node.
6 is a diagram illustrating a time for performing a node for each target.
7 is a diagram illustrating a flow of an operation of selecting a candidate target according to various embodiments of the present disclosure;

도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제 1 네트워크(198)(예: 근거리 무선 통신)를 통하여 전자 장치(102)와 통신하거나, 또는 제 2 네트워크(199)(예: 원거리 무선 통신)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 및 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 예를 들면, 표시 장치(160)(예: 디스플레이)에 임베디드된 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)의 경우와 같이, 일부의 구성요소들이 통합되어 구현될 수 있다.1 is a block diagram of an electronic device 101 in a network environment 100 according to various embodiments of the present disclosure. Referring to FIG. 1 , in a network environment 100 , an electronic device 101 communicates with the electronic device 102 through a first network 198 (eg, short-range wireless communication) or a second network 199 ( For example, it may communicate with the electronic device 104 or the server 108 through long-distance wireless communication. According to an embodiment, the electronic device 101 may communicate with the electronic device 104 through the server 108 . According to an embodiment, the electronic device 101 includes a processor 120 , a memory 130 , an input device 150 , a sound output device 155 , a display device 160 , an audio module 170 , and a sensor module ( 176 , interface 177 , haptic module 179 , camera module 180 , power management module 188 , battery 189 , communication module 190 , subscriber identification module 196 , and antenna module 197 . ) may be included. In some embodiments, at least one of these components (eg, the display device 160 or the camera module 180 ) may be omitted or another component may be added to the electronic device 101 . In some embodiments, for example, as in the case of a sensor module 176 (eg, a fingerprint sensor, an iris sensor, or an illuminance sensor) embedded in a display device 160 (eg, a display), some components It can be integrated and implemented.

프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.The processor 120, for example, runs software (eg, the program 140) to execute at least one other component (eg, a hardware or software component) of the electronic device 101 connected to the processor 120 . It can control and perform various data processing and operations. The processor 120 loads and processes commands or data received from other components (eg, the sensor module 176 or the communication module 190 ) into the volatile memory 132 , and stores the result data in the non-volatile memory 134 . can be stored in According to an embodiment, the processor 120 is operated independently of the main processor 121 (eg, central processing unit or application processor), and additionally or alternatively, uses less power than the main processor 121, or Alternatively, the auxiliary processor 123 (eg, a graphic processing unit, an image signal processor, a sensor hub processor, or a communication processor) specialized for a specified function may be included. Here, the auxiliary processor 123 may be operated separately from or embedded in the main processor 121 .

이런 경우, 보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 수행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부 구성 요소로서 구현될 수 있다. 메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 저장할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다. In this case, the auxiliary processor 123 is, for example, on behalf of the main processor 121 while the main processor 121 is in an inactive (eg, sleep) state, or when the main processor 121 is active (eg, in a sleep) state. : While in the application execution) state, together with the main processor 121 , at least one of the components of the electronic device 101 (eg, the display device 160 , the sensor module 176 , or the communication module ( 190))) and related functions or states. According to one embodiment, the coprocessor 123 (eg, image signal processor or communication processor) is implemented as some component of another functionally related component (eg, camera module 180 or communication module 190). can be The memory 130 includes various data used by at least one component (eg, the processor 120 or the sensor module 176 ) of the electronic device 101 , for example, software (eg, the program 140 ). ) and input data or output data for commands related thereto. The memory 130 may include a volatile memory 132 or a non-volatile memory 134 .

프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program 140 is software stored in the memory 130 , and may include, for example, an operating system 142 , middleware 144 , or an application 146 .

입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다. The input device 150 is a device for receiving commands or data to be used by a component (eg, the processor 120) of the electronic device 101 from the outside (eg, a user) of the electronic device 101, for example, For example, it may include a microphone, mouse, or keyboard.

음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.The sound output device 155 is a device for outputting a sound signal to the outside of the electronic device 101, and includes, for example, a speaker used for general purposes such as multimedia playback or recording playback, and a receiver used exclusively for receiving calls. may include According to an embodiment, the receiver may be formed integrally with or separately from the speaker.

표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다. The display device 160 is a device for visually providing information to a user of the electronic device 101 , and may include, for example, a display, a hologram device, or a projector and a control circuit for controlling the corresponding device. According to an embodiment, the display device 160 may include a touch circuitry or a pressure sensor capable of measuring the intensity of the pressure applied to the touch.

오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.The audio module 170 may interactively convert a sound and an electrical signal. According to an embodiment, the audio module 170 acquires a sound through the input device 150 , or an external electronic device (eg, a sound output device 155 ) connected to the electronic device 101 by wire or wirelessly. Sound may be output through the electronic device 102 (eg, a speaker or headphones).

센서 모듈(176)은 전자 장치(101)의 내부의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다. The sensor module 176 may generate an electrical signal or data value corresponding to an internal operating state (eg, power or temperature) of the electronic device 101 or an external environmental state. The sensor module 176 may include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, Alternatively, it may include an illuminance sensor.

인터페이스(177)는 외부 전자 장치(예: 전자 장치(102))와 유선 또는 무선으로 연결할 수 있는 지정된 프로토콜을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는 HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.The interface 177 may support a designated protocol capable of connecting to an external electronic device (eg, the electronic device 102 ) in a wired or wireless manner. According to an embodiment, the interface 177 may include a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The connection terminal 178 is a connector capable of physically connecting the electronic device 101 and an external electronic device (eg, the electronic device 102 ), for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector. (eg a headphone connector).

햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The haptic module 179 may convert an electrical signal into a mechanical stimulus (eg, vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic sense. The haptic module 179 may include, for example, a motor, a piezoelectric element, or an electrical stimulation device.

카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.The camera module 180 may capture still images and moving images. According to an embodiment, the camera module 180 may include one or more lenses, an image sensor, an image signal processor, or a flash.

전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.The power management module 188 is a module for managing power supplied to the electronic device 101 , and may be configured as, for example, at least a part of a power management integrated circuit (PMIC).

배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The battery 189 is a device for supplying power to at least one component of the electronic device 101 , and may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 유선 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되는, 유선 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함하고, 그 중 해당하는 통신 모듈을 이용하여 제 1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제 2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 모듈(190)은 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다. The communication module 190 establishes a wired or wireless communication channel between the electronic device 101 and an external electronic device (eg, the electronic device 102, the electronic device 104, or the server 108), and establishes the established communication channel. It can support performing communication through The communication module 190 may include one or more communication processors that support wired communication or wireless communication, which are operated independently of the processor 120 (eg, an application processor). According to one embodiment, the communication module 190 is a wireless communication module 192 (eg, a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module 194 (eg, : including a local area network (LAN) communication module, or a power line communication module), and using a corresponding communication module among them communication network) or the second network 199 (eg, a cellular network, the Internet, or a telecommunication network such as a computer network (eg, LAN or WAN)). The above-described various types of communication modules 190 may be implemented as a single chip or as separate chips.

일실시예에 따르면, 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 사용자 정보를 이용하여 통신 네트워크 내에서 전자 장치(101)를 구별 및 인증할 수 있다. According to an embodiment, the wireless communication module 192 may use the user information stored in the subscriber identification module 196 to distinguish and authenticate the electronic device 101 in the communication network.

안테나 모듈(197)은 신호 또는 전력을 외부로 송신하거나 외부로부터 수신하기 위한 하나 이상의 안테나들을 포함할 수 있다. 일시예에 따르면, 통신 모듈(190)(예: 무선 통신 모듈(192))은 통신 방식에 적합한 안테나를 통하여 신호를 외부 전자 장치로 송신하거나, 외부 전자 장치로부터 수신할 수 있다. The antenna module 197 may include one or more antennas for externally transmitting or receiving a signal or power. According to an example, the communication module 190 (eg, the wireless communication module 192 ) may transmit a signal to or receive a signal from the external electronic device through an antenna suitable for a communication method.

상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input/output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되어 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.Some of the components are connected to each other through a communication method between peripheral devices (eg, a bus, general purpose input/output (GPIO), serial peripheral interface (SPI), or mobile industry processor interface (MIPI)) to signal (eg commands or data) can be exchanged with each other.

일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 전자 장치에서 실행될 수 있다. 일실시예에 따르면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 전자 장치에게 요청할 수 있다. 상기 요청을 수신한 외부 전자 장치는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. According to an embodiment, the command or data may be transmitted or received between the electronic device 101 and the external electronic device 104 through the server 108 connected to the second network 199 . Each of the electronic devices 102 and 104 may be the same or a different type of device from the electronic device 101 . According to an embodiment, all or some of the operations performed by the electronic device 101 may be executed by one or a plurality of external electronic devices. According to an embodiment, when the electronic device 101 is to perform a function or service automatically or upon request, the electronic device 101 performs the function or service with it instead of or in addition to executing the function or service itself. At least some related functions may be requested from the external electronic device. Upon receiving the request, the external electronic device may execute the requested function or additional function, and may transmit the result to the electronic device 101 . The electronic device 101 may provide the requested function or service by processing the received result as it is or additionally. For this purpose, for example, cloud computing, distributed computing, or client-server computing technology may be used.

본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.The electronic device according to various embodiments disclosed in this document may have various types of devices. The electronic device may include, for example, at least one of a portable communication device (eg, a smart phone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, and a home appliance device. The electronic device according to the embodiment of the present document is not limited to the above-described devices.

본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및/또는 B 중 적어도 하나", "A, B 또는 C" 또는 "A, B 및/또는 C 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째" 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.The various embodiments of this document and the terms used therein are not intended to limit the technology described in this document to a specific embodiment, but it should be understood to cover various modifications, equivalents, and/or substitutions of the embodiments. In connection with the description of the drawings, like reference numerals may be used for like components. The singular expression may include the plural expression unless the context clearly dictates otherwise. In this document, expressions such as “A or B”, “at least one of A and/or B”, “A, B or C” or “at least one of A, B and/or C” refer to all of the items listed together. Possible combinations may be included. Expressions such as "first", "second", "first" or "second" can modify the corresponding elements regardless of order or importance, and are used only to distinguish one element from another element. The components are not limited. When an (eg, first) component is referred to as being “(functionally or communicatively) connected” or “connected” to another (eg, second) component, that component is It may be directly connected to the component or may be connected through another component (eg, a third component).

본 문서에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구성된 유닛을 포함하며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로 등의 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 모듈은 ASIC(application-specific integrated circuit)으로 구성될 수 있다. As used herein, the term “module” includes a unit composed of hardware, software, or firmware, and may be used interchangeably with terms such as, for example, logic, logic block, component, or circuit. A module may be an integrally formed part or a minimum unit or a part of performing one or more functions. For example, the module may be configured as an application-specific integrated circuit (ASIC).

본 문서의 다양한 실시예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 명령어를 포함하는 소프트웨어(예: 프로그램(140))로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시예들에 따른 전자 장치(예: 전자 장치(101))를 포함할 수 있다. 상기 명령이 프로세서(예: 프로세서(120))에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어하에 다른 구성요소들을 이용하여 상기 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.Various embodiments of the present document include instructions stored in a machine-readable storage media (eg, internal memory 136 or external memory 138) that can be read by a machine (eg, a computer). It may be implemented as software (eg, the program 140). The device is a device capable of calling a stored command from a storage medium and operating according to the called command, and may include the electronic device (eg, the electronic device 101 ) according to the disclosed embodiments. When the instruction is executed by a processor (eg, the processor 120 ), the processor may perform a function corresponding to the instruction by using other components directly or under the control of the processor. Instructions may include code generated or executed by a compiler or interpreter. The device-readable storage medium may be provided in the form of a non-transitory storage medium. Here, 'non-transitory' means that the storage medium does not include a signal and is tangible, and does not distinguish that data is semi-permanently or temporarily stored in the storage medium.

일시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.According to an example, the method according to various embodiments disclosed in this document may be included and provided in a computer program product. Computer program products may be traded between sellers and buyers as commodities. The computer program product may be distributed in the form of a machine-readable storage medium (eg, compact disc read only memory (CD-ROM)) or online through an application store (eg, Play Store™). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily generated in a storage medium such as a memory of a server of a manufacturer, a server of an application store, or a relay server.

다양한 실시예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.Each of the components (eg, a module or a program) according to various embodiments may be composed of a singular or a plurality of entities, and some sub-components of the aforementioned sub-components may be omitted, or other sub-components may be It may be further included in various embodiments. Alternatively or additionally, some components (eg, a module or a program) may be integrated into a single entity to perform the same or similar functions performed by each corresponding component prior to integration. According to various embodiments, operations performed by a module, program, or other component are sequentially, parallel, repetitively or heuristically executed, or at least some operations are executed in a different order, are omitted, or other operations are added. can be

이하, 도 2 내지 도 7에서 본 발명에 대해 상세히 설명한다. Hereinafter, the present invention will be described in detail with reference to FIGS. 2 to 7 .

도 2는 다양한 실시 예에 따른 태스크와 서브 태스크를 나타낸 예시도이다. 태스크는 처리할 전체 작업을 의미하며, 전체 작업의 일부에 해당하는 복수개의 서브 태스크들을 포함할 수 있다. 본 발명의 상세한 설명에서, 태스크는 그래프(graph)로 설명할 수 있고, 서브 태스크들은 노드(node)들로 설명할 수 있다. 이하, 상세한 설명에서 그래프와 노드로 설명하도록 한다.2 is an exemplary diagram illustrating a task and a sub-task according to various embodiments of the present disclosure; The task means an entire job to be processed, and may include a plurality of sub-tasks corresponding to a part of the overall job. In the detailed description of the present invention, tasks may be described as graphs, and sub-tasks may be described as nodes. Hereinafter, it will be described with graphs and nodes in the detailed description.

도 2를 참조하면, 그래프(200)는 노드들(210 내지 218)을 포함할 수 있다. 노드들(210 내지 218)은 전체 작업을 이루고 있는 각각의 역할들을 수행할 수 있다. 각 노드들마다 수행하는 작업들은 상이할 수 있다. 도 2를 참조하면, 도 2에 도시된 그래프(200)는 영상 또는 이미지를 편집하는 것과 관련된 그래프로 가정한다. 노드 0(210)은 추출(extract)과 관련된 작업을 수행할 수 있다. 노드 1(211), 노드 2(212) 및 노드 3(213)은 크기(scale)와 관련된 작업을 수행할 수 있다. 노드 4(214)는 잘라내기(crop, 크롭)와 관련된 작업을 수행할 수 있다. 노드 5(215) 및 노드 6(216)은 노이즈필터(noisefilter)와 관련된 작업을 수행할 수 있다. 노드 7(217)은 가장자리를 강조(edge enhance)와 관련된 작업을 수행할 수 있다. 노드 8(218)은 결합(combine)과 관련된 작업을 수행할 수 있다.Referring to FIG. 2 , the graph 200 may include nodes 210 to 218 . The nodes 210 to 218 may perform respective roles constituting the overall task. Operations performed by each node may be different. Referring to FIG. 2 , it is assumed that the graph 200 shown in FIG. 2 is a graph related to video or image editing. Node 0 210 may perform an extract-related operation. Node 1 211 , node 2 212 , and node 3 213 may perform a scale-related operation. Node 4 214 may perform an operation related to cropping. Nodes 5 215 and 6 216 may perform operations related to noise filters. Node 7 217 may perform an operation related to edge enhancement. Node 8 218 may perform operations related to combine.

그래프(200)는 입력단과 출력단을 포함할 수 있으며, 그래프(200)의 입력단과 출력단은 전체 작업의 최초 입력단과 최종 출력단을 의미할 수 있다. 노드들도 각각 입력단과 출력단을 포함할 수 있으며, 노드들은 적어도 하나 이상의 입력단과 적어도 하나 이상의 출력단을 포함할 수 있다. 노드들의 입력단과 출력단은 그래프 관점에서 중간 입력단과 중간 출력단일 수 있다.The graph 200 may include an input end and an output end, and the input end and the output end of the graph 200 may mean an initial input end and a final output end of the entire job. Each of the nodes may include an input terminal and an output terminal, and the nodes may include at least one input terminal and at least one output terminal. The input and output terminals of the nodes may be intermediate input and intermediate output from a graph point of view.

도 2를 참조하면, 노드 0(210)의 입력단(251)은 그래프(200)의 최초 입력단일 수 있으며, 노드 8(218)의 출력단(252)은 그래프(200)의 최종 입력단일 수 있다. 노드 0(210)의 출력단(210a, 210b, 210c)은 3개일 수 있으며, 노드 0(210)의 각각의 출력단(210a, 210b, 210c)은 노드 1(211), 노드 2(212) 및 노드 3(213)의 각각의 입력단일 수 있다. 노드 5(215), 노드 6(216) 및 노드 7(217)의 각각의 출력은 노드 8(218)의 입력들로 연결될 수 있다. 노드 0(210)의 출력이 노드 1(211)의 입력과 연결되듯이, 두 노드들 간에는 순서 또는 인과관계 등이 존재할 수 있다.Referring to FIG. 2 , the input terminal 251 of the node 0 210 may be the initial input terminal of the graph 200 , and the output terminal 252 of the node 8 218 may be the final input terminal of the graph 200 . The output terminals 210a, 210b, and 210c of the node 0 210 may be three, and each of the output terminals 210a, 210b, 210c of the node 0 210 is the node 1 211 , the node 2 212 and the node Each of the three (213) input terminals may be. Each output of node 5 215 , node 6 216 , and node 7 217 may be connected to the inputs of node 8 218 . Just as the output of the node 0 210 is connected to the input of the node 1 211 , an order or a causal relationship may exist between the two nodes.

각 노드들은 전자 장치(예: 전자 장치(101))의 처리 회로들에 의해서 처리될 수 있으며, 처리 회로들은 타겟(target)으로 설명할 수 있다. 타겟들은 전자 장치(예: 전자 장치(101))의 프로세서(120)의 일부를 포함할 수 있다. 일 실시 예로 타겟은 CPU(central processing unit), Advanced SIMD(NEON or “MPE” Media Processing Engine), GPU(graphics processing unit), DSP(digital signal processor) 및 Vision Acceleration hardware 등을 포함할 수 있다. 다른 실시 예로, 카메라에 이미지 시그널 프로세서(Image signal processor(ISP))를 포함하고 있는 경우, 타겟은 카메라에 포함된 이미지 시그널 프로세서를 포함할 수 있다.Each node may be processed by processing circuits of the electronic device (eg, the electronic device 101), and the processing circuits may be described as a target. The targets may include a part of the processor 120 of the electronic device (eg, the electronic device 101 ). In an embodiment, the target may include a central processing unit (CPU), an advanced SIMD (NEON or “MPE” media processing engine), a graphics processing unit (GPU), a digital signal processor (DSP), and vision acceleration hardware. In another embodiment, when the camera includes an image signal processor (ISP), the target may include an image signal processor included in the camera.

도 3 및 도 4는 다양한 실시 예에 따른 동작의 흐름을 나타낸 도면이다. 3 and 4 are diagrams illustrating a flow of operations according to various embodiments of the present disclosure.

도 3을 참조하면, 동작 301에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는 그래프에 포함된 노드들을 처리할 수 있는 타겟들이 그래프에 포함된 노드들을 처리하도록 제어할 수 있다. 전자 장치(예: 전자 장치(101))의 프로세서(120)는 타겟들이 처리하고 있는 노드들의 상태를 확인할 수 있다. Referring to FIG. 3 , in operation 301 , the processor 120 of the electronic device (eg, the electronic device 101 ) may control targets capable of processing nodes included in the graph to process the nodes included in the graph. . The processor 120 of the electronic device (eg, the electronic device 101 ) may check the states of nodes processed by the targets.

동작 302에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는, 처리가 지연되고 있는 노드를 판단할 수 있다. 처리가 지연되는 노드는 워스트 노드를 포함할 수 있다.In operation 302, the processor 120 of the electronic device (eg, the electronic device 101) may determine a node whose processing is delayed. A node whose processing is delayed may include a worst node.

동작 303에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는 워스트 노드를 처리할 후보 타겟을 선택할 수 있다.In operation 303, the processor 120 of the electronic device (eg, the electronic device 101) may select a candidate target to process the worst node.

동작 304에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는 워스트 노드를 우선 처리한 타겟의 처리 결과를 해당 워스트 노드의 결과로 적용할 수 있다. 도 3은 본 발명의 동작을 전반적으로 나타낸 도면이며, 상세한 설명은 도 4에서 진행하도록 한다.In operation 304 , the processor 120 of the electronic device (eg, the electronic device 101 ) may apply the processing result of the target that has processed the worst node first as the result of the corresponding worst node. 3 is a view showing the overall operation of the present invention, detailed description will proceed with FIG.

도 4를 참조하면, 본 발명의 다양한 실시 예에 따라 태스크 성능 지연 탐지 및 정상화를 위해 필요한 적어도 하나의 소프트웨어 모듈 간의 통신을 나타낼 수 있다. 본 발명의 다양한 실시 예에 따른 소프트웨어 모듈은, 마스터 모듈(Master)(401), 리소스 매니저 모듈(Resource Manager)(402), 그래프 실행 모듈(Graph Execution Module)(403), 워스트 노드 감지 모듈(Worst Node Detector)(404), 후보 타겟 준비 모듈(Candidate Target Preparer)(405), 노드 수행 가속 모듈(Node Performance Accelerator)(406)을 포함할 수 있다. 전자 장치(예: 전자 장치(101))의 프로세서(120)는 적어도 하나의 소프트웨어 모듈의 일부 혹은 전체를 포함할 수 있다.Referring to FIG. 4 , communication between at least one software module required for task performance delay detection and normalization may be shown according to various embodiments of the present disclosure. Software modules according to various embodiments of the present disclosure include a master module (Master) 401, a resource manager module (Resource Manager) 402, a graph execution module (Graph Execution Module) 403, a worst node detection module (Worst) It may include a Node Detector 404 , a Candidate Target Preparer 405 , and a Node Performance Accelerator 406 . The processor 120 of the electronic device (eg, the electronic device 101) may include a part or all of at least one software module.

마스터 모듈(Master)(401)은 스케쥴러(Scheduler)를 포함할 수도 있고, 스케쥴러로부터 데이터를 수신할 수 있다. 데이터는 그래프를 구성하는 각 노드들을 수행할 타겟을 결정하기 위한 스케쥴 테이블을 포함할 수 있다.The master module (Master) 401 may include a scheduler and receive data from the scheduler. The data may include a schedule table for determining a target for performing each node constituting the graph.

리소스 매니저 모듈(Resource Manager)(402)은 각 노드들을 수행할 타겟에게 필요한 자원을 할당할 수 있다. 자원은 타겟이 노드를 수행할 때 필요한 자원을 포함할 수 있다. 또는, 타겟이 노드를 수행할 때 접근할 수 있는 자원을 포함할 수 있다. 예를 들어, 특정 노드를 수행하는 타겟이 GPU인 경우, 상기 타겟에 할당되는 자원은 GPU가 접근할 수 있는 메모리를 포함할 수 있다. The resource manager module (Resource Manager) 402 may allocate necessary resources to a target to perform each node. The resource may include a resource required when the target executes a node. Alternatively, the target may include resources that can be accessed when performing a node. For example, when a target for performing a specific node is a GPU, a resource allocated to the target may include a memory accessible to the GPU.

그래프 실행 모듈(Graph Execution Module)(403)은 그래프를 실행시키는 모듈을 포함할 수 있다.The graph execution module (Graph Execution Module) 403 may include a module for executing a graph.

워스트 노드 감지 모듈(Worst Node Detector)(404)은 그래프 실행 모듈(403)로부터 전달된 그래프 수행 시간 정보를 분석하여 하나 이상의 워스트 노드(Worst node)를 감지할 수 있다. 본 발명의 다양한 실시 예에 따른, 워스트 노드는 그래프를 이루는 노드들 중에서 처리가 지연되고 있는 적어도 하나의 노드를 포함할 수 있다. 그래프 수행 시간 정보는 그래프 N회 수행에 대한 그래프 전제 수행 시간 및 노드 별 수행 시간 정보를 포함할 수 있다. 그래프 수행 시간 정보는 그래프 N회 수행 종료될 때마다 그래프 실행 모듈(403)로부터 전달될 수 있다.The worst node detection module 404 may detect one or more worst nodes by analyzing the graph execution time information transmitted from the graph execution module 403 . According to various embodiments of the present disclosure, the worst node may include at least one node whose processing is delayed among nodes constituting the graph. The graph execution time information may include graph premise execution time and execution time information for each node for performing the graph N times. The graph execution time information may be transmitted from the graph execution module 403 every time the graph execution is finished N times.

후보 타겟 준비 모듈(Candidate Target Preparer)(405)은 워스트 노드에 추가로 투입할 제 2 타겟을 선택하고, 제 2 타겟의 동작에 필요한 자원을 제 2 타겟에게 할당하도록 리소스 매니저 모듈(402)에게 요청할 수 있다. 일 실시 예로, 후보 타겟 준비 모듈(405)은 리소스 매니저(402)에게 워스트 노드를 수행할 수 있는 타겟 리스트 및 우선순위를 요청하여 전달받을 수 있다. 후보 타겟 준비 모듈(405)은 타겟 리스트를 참조하여 우선 순위가 가장 높은 타겟을 제 2 타겟으로서 선택하고, 해당 타겟을 수행하기 위한 자원을 리소스 매니저(402)에 요청하여 해당 타겟에게 자원을 할당할 수 있다. 다른 실시 예로, 후보 타겟 준비 모듈(405)은 제 2 타겟을 선택하는 것에 있어서, 리소스 매니저(402)로부터 전달 받은 우선 순위 정보 외에 다른 요소도 고려할 수 있다.The Candidate Target Preparer 405 selects a second target to be additionally added to the worst node, and requests the resource manager module 402 to allocate resources necessary for the operation of the second target to the second target. can As an embodiment, the candidate target preparation module 405 may request and receive the target list and priority for performing the worst node from the resource manager 402 . The candidate target preparation module 405 selects a target with the highest priority as a second target with reference to the target list, requests the resource manager 402 for a resource for performing the target, and allocates the resource to the target. can In another embodiment, the candidate target preparation module 405 may consider factors other than the priority information received from the resource manager 402 in selecting the second target.

노드 수행 가속 모듈(Node Performance Accelerator)(406)은 워스트 노드를 수행할 시점에 그래프 실행 모듈(403)과 통신하여, 워스트 노드를 수행하고 있던 기존의 타겟과 제 2 타겟에게 해당 워스트 노드를 각각 수행(병렬 수행)시키고 먼저 종료되는 타겟의 결과물을 워스트 노드의 출력으로 반영할 수 있다.The node performance accelerator module (Node Performance Accelerator) 406 communicates with the graph execution module 403 at the time of performing the worst node, and performs the corresponding worst node to the existing target and the second target that were performing the worst node, respectively. (Parallel execution) and the result of the target that is terminated first can be reflected as the output of the worst node.

도 4을 참조하면, 동작 (411)에서, 마스터 모듈(401)은 스케쥴러로부터 스케쥴 테이블을 수신할 수 있다. 동작 (412)에서 마스터 모듈(401)은 리소스 매니저 모듈(402)로 각각의 노드를 수행할 타겟에세 필요한 자원을 할당할 수 있도록 요청할 수 있다. 동작 (413)에서, 리소스 매니저 모듈(402)는 마스터 모듈(401)에세 상기 요청에 대한 답변을 전송할 수 있다. 동작 (414)에서, 마스터 모듈(401)은 그래프 실행 모듈(403)로 그래프를 실행시키도록 요청할 수 있고, 동작 (415)에서, 그래프 실행 모듈(403)은 그래프를 실행할 수 있다. 동작 (416)에서, 그래프 실행 모듈(403)은 그래프 수행이 종료됨을 마스터 모듈(401)에게 알릴 수 있다. 동작 (417)에서 마스터 모듈(401)은 그래프 실행 모듈(403)과 통신하여 그래프 수행 동작을 N번 반복할 수 있다.Referring to FIG. 4 , in operation 411 , the master module 401 may receive a schedule table from a scheduler. In operation 412 , the master module 401 may request the resource manager module 402 to allocate a necessary resource to a target for performing each node. In operation 413 , the resource manager module 402 may transmit a response to the request to the master module 401 . In operation 414 , the master module 401 may request the graph execution module 403 to execute the graph, and in operation 415 , the graph execution module 403 may execute the graph. In operation 416 , the graph execution module 403 may notify the master module 401 that the graph execution is finished. In operation 417 , the master module 401 communicates with the graph execution module 403 to repeat the graph execution operation N times.

동작 (418)에서, 마스터 모듈(401)은 그래프 수행 시간 정보를 워스트 노드 감지 모듈(404)로 전송할 수 있다. 동작 (419)에서, 워스트 노드 감지 모듈(404)은 전달된 그래프 수행 시간 정보를 분석하여 하나 이상의 워스트 노드를 감지하고, 감지된 워스트 노드에 관한 정보를 노드 수행 가속 모듈(406)로 전달할 수 있다. 동작 (420)에서, 워스트 노드 감지 모듈(404)은 감지된 워스트 노드에 관한 정보를 후보 타겟 준비 모듈(405)로 전달할 수 있다.In operation 418 , the master module 401 may transmit graph execution time information to the worst node detection module 404 . In operation 419 , the worst node detection module 404 may detect one or more worst nodes by analyzing the transferred graph execution time information, and transmit information about the detected worst nodes to the node performance acceleration module 406 . . In operation 420 , the worst node detection module 404 may transmit information about the detected worst node to the candidate target preparation module 405 .

동작 (421)에서, 후보 타겟 준비 모듈(405)은 워스트 노드에 추가로 투입할 제 2 타겟을 선택하고, 제 2 타겟의 동작에 필요한 자원을 제 2 타겟에게 할당하도록 리소스 매니저 모듈(402)에게 요청할 수 있다. 동작 (422)에서, 리소스 매니저 모듈(402)은 할당된 자원 정보를 후보 타겟 준비 모듈(405)로 전달할 수 있다. 동작 (423)에서, 후보 타겟 준비 모듈(405)은 전달받은 할당된 자원 정보를 노드 수행 가속 모듈(406)로 전달할 수 있다.In operation 421, the candidate target preparation module 405 selects a second target to be additionally committed to the worst node, and tells the resource manager module 402 to allocate a resource necessary for the operation of the second target to the second target. you can request In operation 422 , the resource manager module 402 may transmit the allocated resource information to the candidate target preparation module 405 . In operation 423 , the candidate target preparation module 405 may transmit the received allocated resource information to the node performance acceleration module 406 .

동작 (424)에서, 노드 수행 가속 모듈(404)은 제 2 타겟에게 해당 워스트 노드를 수행시키기 위해, 스케쥴 테이블에 제 2 타겟을 추가하길 그래프 실행 모듈(403)에게 요청할 수 있다(set flags). 동작 (425)에서, 이를 수신한 그래프 실행 모듈(403)은 마스터 모듈(401)에게 대기 신호를 전송할 수 있다. 동작 (426)에서, 마스터 모듈(401)은 그래프 실행 모듈(403)로 그래프를 실행시키도록 요청할 수 있고, 동작 (427)에서, 그래프 실행 모듈(403)은 그래프를 실행할 수 있다. 동작 (428)에서, 그래프 실행 모듈(403)은 그래프 실행 후, 워스트 노드가 수행되는 시점에 워스트 노드의 수행이 시작됨을 노드 수행 가속 모듈(406)로 알릴 수 있다. 이를 수신한 노드 수행 가속 모듈(406)은 제 2 타겟과 기존의 타겟 각각에 해당 워스트 노드를 수행하도록 할 수 있다. 동작 (429)에서, 노드 수행 가속 모듈(406)은 워스트 노드를 가장 먼저 처리한 타겟에 대해, 타겟의 처리가 종료되었음을 그래프 실행 모듈(403)에게 알리고, 또한 가장 먼저 처리한 타겟의 처리 결과를 해당 워스트 노드의 처리 결과로 반영하도록 그래프 실행 모듈(403)에게 명령할 수 있다. In operation 424 , the node execution acceleration module 404 may request the graph execution module 403 to add the second target to the schedule table in order to cause the second target to perform the corresponding worst node (set flags). In operation 425 , the graph execution module 403 receiving this may transmit a standby signal to the master module 401 . In operation 426 , the master module 401 may request the graph execution module 403 to execute the graph, and in operation 427 , the graph execution module 403 may execute the graph. In operation 428 , the graph execution module 403 may notify the node performance acceleration module 406 that the execution of the worst node starts at a time point when the worst node is executed after the graph execution. Upon receiving this, the node execution acceleration module 406 may perform a corresponding worst node on each of the second target and the existing target. In operation 429, the node execution acceleration module 406 notifies the graph execution module 403 that the processing of the target has been completed for the target that has processed the worst node first, and also displays the processing result of the target that has been processed first The graph execution module 403 may be instructed to reflect the processing result of the corresponding worst node.

동작 (430)에서, 그래프 실행 모듈(403)은 그래프 수행이 종료됨을 노드 수행 가속 모듈(406)로 알릴 수 있다. 동작 (431)에서, 그래프 실행 모듈(403)은 그래프 수행이 종료됨을 마스터 모듈(401)에게 알릴 수 있다. 동작 (432)에서 마스터 모듈(401)은 그래프 실행 모듈(403)과 통신하여 그래프 수행 동작을 N번 반복할 수 있다. 동작 (433)에서, 노드 수행 가속 모듈(406)은 그래프 실행 모듈(403)에세 제 2 타겟이 더 이상 해당 워스트 노드를 수행하지 않을 것을 알릴 수 있다(reset flags).In operation 430 , the graph execution module 403 may notify the node execution acceleration module 406 that graph execution is finished. In operation 431 , the graph execution module 403 may notify the master module 401 that the graph execution is finished. In operation 432 , the master module 401 may communicate with the graph execution module 403 to repeat the graph execution operation N times. In operation 433 , the node execution acceleration module 406 may notify the graph execution module 403 that the second target will no longer perform the corresponding worst node (reset flags).

동작 (434)에서, 마스터 모듈(401)은 그래프 수행 시간 정보를 워스트 노드 감지 모듈(404)로 전송할 수 있다. 동작 (435)에서, 워스트 노드 감지 모듈(404)은 전달된 그래프 수행 시간 정보를 분석하여 워스트 노드가 감지되지 않음을 그래프 실행 모듈(403)에게 알릴 수 있다. 동작 (436)에서, 이를 수신한 그래프 실행 모듈(403)은 마스터 모듈(401)에게 대기 신호를 전송할 수 있다. In operation 434 , the master module 401 may transmit graph execution time information to the worst node detection module 404 . In operation 435 , the worst node detection module 404 may analyze the transmitted graph execution time information to notify the graph execution module 403 that the worst node is not detected. In operation 436 , the graph execution module 403 receiving this may transmit a standby signal to the master module 401 .

도 5a 및 도 5b는 워스트 노드(worst node)를 감지하는 예를 나타낸 도면이다.5A and 5B are diagrams illustrating an example of detecting a worst node.

워스트 노드 감지 모듈은 그래프 실행 모듈로부터 전달된 그래프 수행 시간 정보를 분석하여 하나 이상의 워스트 노드를 감지할 수 있다. 본 발명의 다양한 실시 예에 따른, 워스트 노드는 그래프를 이루는 노드들 중에서 처리가 지연되고 있는 적어도 하나의 노드를 포함할 수 있다. 그래프 수행 시간 정보는 그래프 N회 수행에 대한 그래프 전제 수행 시간 및 노드 별 수행 시간 정보를 포함할 수 있다. The worst node detection module may detect one or more worst nodes by analyzing the graph execution time information transmitted from the graph execution module. According to various embodiments of the present disclosure, the worst node may include at least one node whose processing is delayed among nodes constituting the graph. The graph execution time information may include graph premise execution time and execution time information for each node for performing the graph N times.

워스트 노드 감지 모듈은 N(예: 5)회 수행하여 획득한 그래프 수행 시간 정보에서 그래프 수행 시간을 기준으로 하위 그래프 수행 시간을 가지는 텀과 상위 그래프 수행 시간을 가지는 텀의 수행 시간 격차가 기준 값을 넘는지 확인할 수 있다. 워스트 노드 감지 모듈은 상위 텀과 하위 텀의 그래프 수행 시간 격차가 기준 값을 넘는다고 판단하면, 워스트 노드가 포함되어 있다고 판단할 수 있다. 하위 텀은 그래프 수행 시간이 오래 걸린 텀을 의미할 수 있다. 일 실시 예로, 하위 텀은 그래프 수행 시간 순을 기준으로 하위 20%에 대응하는 텀을 포함할 수 있다. 상위 텀은 그래프 수행 시간 순을 기준으로 상위 80%에 대응하는 텀을 포함할 수 있다. 도 5a를 참조하면, 하위 텀은 소요 시간이 7ms인 2번째로 수행된 텀을 포함할 수 있다. 상위 텀은 소요 시간이 4ms인 1번째, 3번째 및 5번째 텀을 포함할 수 있다. 워스트 노드 감지 모듈은 기준 값이 2ms라고 가정하면, 상위 텀과 하위 텀의 각각 수행 시간의 차이는 3ms이므로 워스트 노드가 포함되어 있다고 판단할 수 있다.In the graph execution time information obtained by performing N (eg 5) times, the worst node detection module determines that the difference in execution time between the term having the lower graph execution time and the term having the upper graph execution time is the reference value based on the graph execution time. You can check if it is over. If the worst node detection module determines that the graph execution time gap between the upper term and the lower term exceeds the reference value, it may determine that the worst node is included. The lower term may mean a term in which a graph execution time is long. As an embodiment, the lower term may include a term corresponding to the lower 20% based on the graph execution time order. The upper term may include a term corresponding to the top 80% based on the graph execution time order. Referring to FIG. 5A , the lower term may include a second performed term having a required time of 7 ms. The upper term may include first, third, and fifth terms having a required time of 4 ms. Assuming that the reference value is 2 ms, the worst node detection module may determine that the worst node is included because the difference between the execution times of the upper term and the lower term is 3 ms.

본 발명의 다양한 실시 예에 따라, 워스트 노드 감지 모듈은 하위 텀인 2번째 수행된 텀과 상위 텀인 1번째 수행된 텀 각각의 노드의 수행 시간을 비교하여 가장 차이가 큰 노드를 워스트 노드로 판단할 수 있다. 하기 도 5a를 참조하면, 워스트 노드 감지 모듈은 워스트 노드가 노드 0이라고 판단할 수 있다.According to various embodiments of the present disclosure, the worst node detection module compares the execution time of each node of the second performed term, which is the lower term, and the first performed term, which is the upper term, to determine the node with the largest difference as the worst node. have. Referring to FIG. 5A below, the worst node detection module may determine that the worst node is node 0.

본 발명의 다양한 실시 예에 따라, 워스트 노드 감지 모듈은 하위 20%에 대응하는 텀인 2번째 수행된 텀에서 노드 별 수행 시간이 노드 별로 기 설정된 제한 시간을 초과하는 노드를 워스트 노드로 판단할 수 있다. 하기 도 5a를 참조하면, 워스트 노드 감지 모듈은 워스트 노드가 노드 0이라고 판단할 수 있다. 워스트 노드 감지 모듈은 하위 20%에 대응하는 텀이 복수개인 경우, 노드 별로 기 설정된 제한 시간을 초과하는 노드의 횟수가 가장 많은 노드를 워스트 노드로 판단할 수 있다.According to various embodiments of the present disclosure, the worst node detection module may determine a node in which the execution time for each node exceeds a preset time limit for each node in the second performed term, which is a term corresponding to the lower 20%, as a worst node. . Referring to FIG. 5A below, the worst node detection module may determine that the worst node is node 0. When there are a plurality of terms corresponding to the lower 20%, the worst node detection module may determine a node having the largest number of nodes exceeding a preset time limit for each node as a worst node.

도 6은 타겟 별 노드를 수행하는 시간을 나타낸 도면이다.6 is a diagram illustrating a time for performing a node for each target.

후보 타겟 준비 모듈(Candidate Target Preparer)은 워스트 노드에 추가로 투입할 제 2 타겟을 선택하고, 제 2 타겟의 동작에 필요한 자원을 제 2 타겟에게 할당하도록 리소스 매니저 모듈에게 요청할 수 있다. 일 실시 예로, 후보 타겟 준비 모듈은 리소스 매니저에게 워스트 노드를 수행할 수 있는 타겟 리스트 및 타겟 들의 우선 순위에 관한 정보를 요청하여 전달받을 수 있다. 후보 타겟 준비 모듈은 타겟 리스트를 참조하여 우선 순위가 가장 높은 타겟을 제 2 타겟으로서 선택하고, 해당 타겟을 수행하기 위한 자원을 리소스 매니저에 요청하여 해당 타겟에게 자원을 할당할 수 있다. 한 예로, 후보 타겟 준비 모듈은 리소스 매니저로부터 타겟 A, 타겟 B, 타겟 C 및 타겟 D를 포함하는 타겟 리스트 및 각각의 타겟들의 우선 순위를 확인할 수 있다. 타겟 들의 우선 순위는 노드 별로 지정될 수 있다. 워스트 노드로 확인된 노드 0를 수행할 수 있는 타겟들의 우선 순위는 타겟 D가 타겟 B 보다 높을 수 있다. 후보 타겟 준비 모듈은 우선 순위를 참조하여 타겟 D를 노드 0을 수행할 수 있는 후보 타겟으로 선택할 수 있다.The candidate target preparer may select a second target to be additionally input to the worst node and request the resource manager module to allocate resources necessary for the operation of the second target to the second target. As an embodiment, the candidate target preparation module may request and receive information about a target list capable of performing a worst node from the resource manager and information on the priority of the targets. The candidate target preparation module may select a target with the highest priority as the second target by referring to the target list, request a resource for performing the target from the resource manager, and allocate the resource to the target. As an example, the candidate target preparation module may check the target list including the target A, the target B, the target C, and the target D and the priority of each target from the resource manager. The priority of the targets may be designated for each node. Target D may be higher than target B in priority of targets capable of performing node 0 identified as a worst node. The candidate target preparation module may select target D as a candidate target capable of performing node 0 with reference to the priority.

다른 실시 예로, 후보 타겟 준비 모듈은 제 2 타겟을 선택하는 것에 있어서, 리소스 매니저로부터 전달 받은 우선 순위 정보 외에 다른 요소도 고려할 수 있다. 도 6를 참조하면, 도 6는 타겟 별로 노드를 수행하는 시간을 나타내는 도면이다. 후보 타겟 준비 모듈은, 다른 요소로서, 타겟 별로 노드를 수행하는 시간을 참조하여 후보 타겟을 선택할 수 있다. 후보 타겟 준비 모듈은 워스트 노드로 판단된 노드 0이 수행되는 시간 동안 유휴 상태인 타겟을 확인하고, 후보 타겟 준비 모듈은, 유휴 상태인 타겟 B를 후보 타겟으로 선택할 수 있다.In another embodiment, the candidate target preparation module may consider factors other than the priority information received from the resource manager when selecting the second target. Referring to FIG. 6 , FIG. 6 is a diagram illustrating a time for performing a node for each target. As another element, the candidate target preparation module may select a candidate target by referring to a time for performing a node for each target. The candidate target preparation module may identify a target that is in an idle state during a time in which node 0 determined as the worst node is performed, and the candidate target preparation module may select the idle target B as a candidate target.

본 발명의 다양한 실시 예에 따라, 후보 타겟 준비 모듈은 반복적으로 워스트 노드를 발생시키는 타겟을 블랙리스트에 추가하고, 블랙리스트를 참조하여 후보 타겟을 선택할 수 있다. 이는 도 7에서 상세히 설명하도록 한다.According to various embodiments of the present disclosure, the candidate target preparation module may repeatedly add a target for generating a worst node to a blacklist, and select a candidate target by referring to the blacklist. This will be described in detail with reference to FIG. 7 .

도 7은 다양한 실시 예에 따른 후보 타겟을 선택하는 동작의 흐름을 나타낸 도면이다. 도 7을 참조하면, 후보 타겟 준비 모듈은 그래프 수행 시간 정보, 워스트 노드에 관한 정보 및 후보 타겟 우선 순위에 관한 정보를 수신할 수 있다. 후보 타겟 준비 모듈은 마스터 모듈로부터 그래프 수행 시간 정보를 수신할 수 있다. 그래프 수행 시간 정보는 그래프 전체 수행 시간 및/또는 노드 별 수행 시간을 포함할 수 있다. 그래프 수행 시간 정보는 도 4의 동작 418에서 전달될 수 있다. 후보 타겟 준비 모듈은 워스트 노드 감지 모듈로부터 감지된 워스트 노드에 관한 정보를 수신할 수 있다. 워스트 노드에 관한 정보는 도 4의 동작 420에서 전달될 수 있다. 후보 타겟 준비 모듈은 리소스 매니저로부터 워스트 노드를 수행할 수 있는 타겟 리스트 및 타겟 들의 우선 순위에 관한 정보를 요청하여 전달받을 수 있다.7 is a diagram illustrating a flow of an operation of selecting a candidate target according to various embodiments of the present disclosure; Referring to FIG. 7 , the candidate target preparation module may receive graph execution time information, information about a worst node, and information about a candidate target priority. The candidate target preparation module may receive graph execution time information from the master module. The graph execution time information may include an entire graph execution time and/or an execution time for each node. The graph execution time information may be transmitted in operation 418 of FIG. 4 . The candidate target preparation module may receive information about the detected worst node from the worst node detection module. Information about the worst node may be transmitted in operation 420 of FIG. 4 . The candidate target preparation module may request and receive information about a target list capable of performing a worst node and priorities of targets from the resource manager.

다양한 실시 예에 따라, 도 7에서는 후보 타겟 준비 모듈은 이전에 수행된 텀들 동안, 워스트 노드를 감지해서 해당 워스트 노드에 투입될 적어도 하나의 후보 타겟 선택한 적이 있다고 가정한다. 동작 (701)을 참조하면, 후보 타겟 준비 모듈은 이전 텀(N-1)에서 후보 타겟으로 수행된 워스트 노드가, 이번 텀(N)에서도 워스트 노드 인지 판단할 수 있다. According to various embodiments, it is assumed in FIG. 7 that the candidate target preparation module detects a worst node and selects at least one candidate target to be input to the corresponding worst node during previously performed terms. Referring to operation 701 , the candidate target preparation module may determine whether the worst node performed as the candidate target in the previous term (N-1) is a worst node also in this term (N).

동작 (701)에서의 판단 결과, 이전 텀에서 감지된 워스트 노드가 이번 텀에서도 워스트 노드라고 판단한 경우, 동작 (702)로 진행할 수 있다. 동작 (702)를 참조하면 후보 타겟 준비 모듈은 이전 텀에서 워스트 노드를 수행한 타겟을, 해당 워스트 노드의 블랙리스트에 블랙리스트 타겟으로서 추가할 수 있다. 블랙리스트 타겟은 해당 노드의 처리 지연을 해결하기 위해 투입되었으나 해결하지 못한 타겟을 포함할 수 있다. 동작 (702)에서 추가 후, 동작 (703)으로 진행할 수 있다.As a result of the determination in operation 701 , if it is determined that the worst node detected in the previous term is also a worst node in this term, operation 702 may be performed. Referring to operation 702 , the candidate target preparation module may add a target that performed the worst node in the previous term to the blacklist of the corresponding worst node as a blacklist target. The blacklist target may include a target that has not been resolved even though it has been introduced to resolve the processing delay of the corresponding node. After adding in operation 702 , the process may proceed to operation 703 .

동작 (703)에서, 후보 타겟 준비 모듈은 타겟을 선택할 때 고려할 순위를 나타내는 값인 K를 1로 설정할 수 있다. K를 1로 설정하는 것은, 1 순위의 후보 타겟을 후보 타겟으로 고려한다는 것을 포함할 수 있다. 동작 (703)에서 설정 후, 동작 (704)로 진행할 수 있다.In operation 703 , the candidate target preparation module may set K, which is a value indicating a rank to be considered when selecting a target, to 1 . Setting K to 1 may include considering the candidate target of the 1st rank as the candidate target. After setting in operation 703 , operation 704 may be performed.

동작 (704)에서, 후보 타겟 준비 모듈은 워스트 노드가 수행될 동안 1순위 후보 타겟이 유휴 상태인지를 판단할 수 있다. 후보 타겟 준비 모듈은 마스터 모듈로부터 수신한 그래프 수행 시간 정보를 참조하여 판단할 수 있다. In operation 704 , the candidate target preparation module may determine whether the first-ranked candidate target is idle while the worst node is being performed. The candidate target preparation module may determine by referring to graph execution time information received from the master module.

동작 (704)에서의 판단 결과 제 1 순위 후보 타겟이 유휴 상태가 아니라고 판단한 경우 동작 (708)로 진행할 수 있다. As a result of the determination in operation 704 , when it is determined that the first-ranked candidate target is not in an idle state, operation 708 may be performed.

동작 (708)에서 후보 타겟 준비 모듈은 순위를 나타내는 값인 K에 1 추가할 수 있다. K에 1을 추가 한다는 것은, 다음 순위의 후보 타겟을 후보 타겟으로 고려한다는 것을 포함할 수 있다. 예를 들어, 제 2 순위 후보 타겟을 후보 타겟으로 고려하는 것을 포함할 수 있다. In operation 708 , the candidate target preparation module may add 1 to K, which is a value indicating a rank. Adding 1 to K may include considering a next-ranked candidate target as a candidate target. For example, it may include considering the second rank candidate target as a candidate target.

동작 (709)로 진행하여, 후보 타겟 준비 모듈은 리소스 매니저로부터 수신한 타겟 리스트 및 우선 순위에 관한 정보를 참조하여, 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하는지 판단할 수 있다. 동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재한다고 판단한 경우 동작 (704)로 진행하여 이후 과정을 반복할 수 있다.Proceeding to operation 709 , the candidate target preparation module may determine whether a second priority candidate target capable of performing the worst node exists with reference to the target list and priority information received from the resource manager. As a result of the determination in operation 709, when the candidate target preparation module determines that the second-ranked candidate target capable of performing the worst node exists, the process proceeds to operation 704 and the subsequent process may be repeated.

동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하지 않는다고 판단한 경우 동작 (710)으로 진행하여 다음 텀에서 워스트 노드를 수행할 후보 타겟을 선정하지 않을 수 있다.As a result of the determination in operation 709, when the candidate target preparation module determines that the second-ranked candidate target capable of performing the worst node does not exist, the process proceeds to operation 710 to select a candidate target for performing the worst node in the next term may not

동작 (704)에서 후보 타겟 준비 모듈이 제 1 순위 후보 타겟이 유휴 상태라고 판단한 경우 동작 (705)로 진행할 수 있다. If the candidate target preparation module determines in operation 704 that the first-ranked candidate target is in an idle state, operation 705 may be performed.

동작 (705)에서 제 1 순위 후보 타겟이 이전 텀들에서 해당 워스트 노드를 실행할 타겟으로서 선택된 적이 있는지 판단할 수 있다. In operation 705 , it may be determined whether the first-ranked candidate target has been selected as a target for executing the corresponding worst node in previous terms.

동작 (705)에서의 판단 결과, 제 1 순위 후보 타겟이 이전 텀들에서 해당 워스트 노드를 실행할 타겟으로서 선택된 적이 없다고 판단한 경우, 동작 (707)로 진행하여 후보 타겟 준비 모듈은 제 1 순위 후보 타겟을 다음 텀에서 수행될 후보 타겟으로 선택할 수 있다.As a result of the determination in operation 705, if it is determined that the first-ranked candidate target has never been selected as a target for executing the corresponding worst node in previous terms, the process proceeds to operation 707 and the candidate target preparation module selects the first-ranked candidate target as the next It can be selected as a candidate target to be performed in the term.

동작 (705)에서의 판단 결과, 제 1 순위 후보 타겟이 이전 텀들에서 해당 워스트 노드를 실행할 타겟으로서 선택된 적이 있다고 판단한 경우, 동작 (706)으로 진행할 수 있다. 동작 (706)에서 제 1 순위 후보 타겟이 해당 워스트 노드의 블랙리스트에 블랙리스트 타겟으로서 추가된 횟수가 기준 횟수 이상인지 판단할 수 있다. 동작 (706)에서의 판단 결과, 기준 횟수 이상이 아닌 경우, 동작 (707)로 진행하여 후보 타겟 준비 모듈은 제 1 순위 후보 타겟을 다음 텀에서 수행될 후보 타겟으로 선택할 수 있다. 동작 (706)에서의 판단 결과, 기준 횟수 이상인 경우 동작 (708)로 진행할 수 있다. 동작 (708)에서 후보 타겟 준비 모듈은 순위를 나타내는 값인 K에 1 추가할 수 있다. 동작 (709)로 진행하여, 후보 타겟 준비 모듈은 리소스 매니저로부터 수신한 타겟 리스트 및 우선 순위에 관한 정보를 참조하여, 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하는지 판단할 수 있다. 동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재한다고 판단한 경우 동작 (704)로 진행하여 이후 과정을 반복할 수 있다.As a result of the determination in operation 705 , if it is determined that the first-ranked candidate target has been selected as a target for executing the corresponding worst node in previous terms, operation 706 may be performed. In operation 706 , it may be determined whether the number of times the first-ranked candidate target is added as a blacklist target to the blacklist of the corresponding worst node is equal to or greater than a reference number. As a result of the determination in operation 706, if the number of times is not equal to or greater than the reference number, in operation 707, the candidate target preparation module may select the first-ranked candidate target as a candidate target to be performed in the next term. As a result of the determination in operation 706 , if the reference number is greater than or equal to the reference number, operation 708 may be performed. In operation 708 , the candidate target preparation module may add 1 to K, which is a value indicating a rank. Proceeding to operation 709 , the candidate target preparation module may determine whether a second priority candidate target capable of performing the worst node exists with reference to the target list and priority information received from the resource manager. As a result of the determination in operation 709, when the candidate target preparation module determines that the second-ranked candidate target capable of performing the worst node exists, the process proceeds to operation 704 and the subsequent process may be repeated.

동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하지 않는다고 판단한 경우 동작 (710)으로 진행하여 다음 텀에서 워스트 노드를 수행할 후보 타겟을 선정하지 않을 수 있다.As a result of the determination in operation 709, when the candidate target preparation module determines that the second-ranked candidate target capable of performing the worst node does not exist, the process proceeds to operation 710 to select a candidate target for performing the worst node in the next term may not

101: 전자 장치
120: 프로세서
130: 메모리
101: electronic device
120: processor
130: memory

Claims (20)

전자 장치에 있어서,
태스크에 포함된 서브 태스크를 처리할 수 있는 하나 이상의 처리 회로들; 및
상기 하나 이상의 처리 회로들 중 적어도 일부 처리 회로를 이용하여 상기 태스크를 처리할 수 있는 프로세서를 포함하고,
상기 프로세서는,
하나 이상의 지정된 서브 태스크들을 포함하는 지정된 태스크를 처리하고,
상기 하나 이상의 지정된 서브 태스크들이 처리되고 있는 상태를 확인하고, 상기 상태에 적어도 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하고,
상기 적어도 일부 처리 회로를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고,
상기 프로세서를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고,
상기 적어도 일부 처리 회로를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 1 처리 결과 및, 상기 프로세서를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 2 처리 결과 중 지정된 조건을 만족하는 하나의 처리 결과를 상기 처리가 지연되고 있는 적어도 하나의 서브 태스크에 대응하는 처리 결과로 적용하도록 설정된 전자 장치.
In an electronic device,
one or more processing circuits capable of processing a sub-task included in the task; and
a processor capable of processing the task using at least some of the one or more processing circuits;
The processor is
process a designated task comprising one or more designated subtasks;
check a status in which the one or more designated subtasks are being processed, and check at least one designated subtask whose processing is delayed among the one or more designated subtasks, based at least on the status;
process, using the at least some processing circuitry, at least one designated subtask whose processing is being delayed;
processing, using the processor, at least one designated subtask whose processing is being delayed;
a first processing result corresponding to the at least one designated subtask for which the processing is being delayed, processed using the at least some processing circuitry, and the at least one designated subtask processed using the processor, for which the processing is being delayed. An electronic device configured to apply one processing result that satisfies a specified condition among the second processing results corresponding to , as a processing result corresponding to the at least one subtask whose processing is delayed.
제 1 항에 있어서,
상기 프로세서는,
상기 지정된 태스크의 처리 시간 또는 상기 하나 이상의 지정된 서브 태스크들의 처리 시간 중 적어도 하나에 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하도록 설정된 전자 장치.
The method of claim 1,
The processor is
The electronic device is configured to identify at least one designated subtask whose processing is delayed among the one or more designated subtasks, based on at least one of a processing time of the designated task or a processing time of the one or more designated subtasks.
제 1 항에 있어서,
상기 프로세서는,
상기 하나 이상의 지정된 서브 태스크들의 처리 시간이, 서브 태스크 별로 지정된 시간 제한을 초과하는 것에 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하도록 설정된 전자 장치.
The method of claim 1,
The processor is
an electronic device configured to identify at least one designated subtask whose processing is delayed among the one or more designated subtasks, based on the fact that the processing time of the one or more designated subtasks exceeds a time limit designated for each subtask .
제 1 항에 있어서,
상기 프로세서는,
상기 프로세서를 이용해서 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하는 것에 있어서,
상기 하나 이상의 처리 회로들 중 상기 적어도 일부 처리 회로와는 다른 적어도 일부 처리 회로를 선택하고,
상기 선택된 적어도 일부 처리 회로를 이용하여 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하도록 설정된 전자 장치.
The method of claim 1,
The processor is
In processing the at least one designated subtask whose processing is delayed using the processor,
selecting at least some of the one or more processing circuits different from the at least some processing circuits;
an electronic device configured to process the at least one designated subtask whose processing is being delayed using the selected at least some processing circuitry.
제 4 항에 있어서,
상기 프로세서는,
지정된 처리 회로의 우선 순위를 기반으로, 상기 다른 적어도 일부 처리 회로를 선택하도록 설정된 전자 장치.
5. The method of claim 4,
The processor is
an electronic device configured to select the other at least some processing circuits based on a priority of the specified processing circuitry.
제 4 항에 있어서,
상기 프로세서는,
상기 하나 이상의 처리 회로들 중 유휴 상태인 처리 회로를 상기 다른 적어도 일부 처리 회로로서 선택하도록 설정된 전자 장치.
5. The method of claim 4,
The processor is
an electronic device configured to select an idle processing circuit among the one or more processing circuits as the other at least some processing circuitry.
제 3 항에 있어서,
상기 프로세서는,
상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크가 이전에도 처리가 지연된 적이 있는지 판단하고,
처리가 지연된 적이 있다고 판단한 경우, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 수행한 처리 회로를 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크의 블랙 리스트 타겟으로서 저장하도록 설정된 전자 장치.
4. The method of claim 3,
The processor is
It is determined whether the processing of at least one designated sub-task whose processing is being delayed has been delayed before,
an electronic device configured to store, as a blacklist target of the at least one designated subtask whose processing is delayed, a processing circuit that has performed the at least one designated subtask whose processing has been delayed, when it is determined that the processing has been delayed.
제 7 항에 있어서,
상기 프로세서는,
상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크의 블랙 리스트 타겟으로서 기준 횟수 이하로 저장된 처리 회로를, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하는 처리 회로로 선택하도록 설정된 전자 장치.
8. The method of claim 7,
The processor is
an electronic device configured to select a processing circuit stored less than a reference number of times as a black list target of the at least one designated subtask whose processing is delayed as the processing circuit for processing the at least one designated subtask whose processing is delayed.
제 1 항에 있어서,
상기 프로세서는,
상기 제 1 처리 결과 및 상기 제 2 처리 결과 중 가장 빨리 처리된 결과를 상기 적어도 하나의 서브 태스크에 대응하는 처리 결과로 적용하는 동작을 포함하는 전자 장치.
The method of claim 1,
The processor is
and applying the earliest processed result among the first processing result and the second processing result as a processing result corresponding to the at least one sub task.
프로세서를 이용하여, 하나 이상의 지정된 서브 태스크들을 포함하는 지정된 태스크를 처리하는 동작;
상기 프로세서를 이용하여, 상기 하나 이상의 지정된 서브 태스크들이 처리되고 있는 상태를 확인하는 동작;
상기 프로세서를 이용하여, 상기 상태에 적어도 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하는 동작;
적어도 일부 처리 회로를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하는 동작;
상기 프로세서를 이용하여, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하고,
상기 적어도 일부 처리 회로를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 1 처리 결과 및, 상기 프로세서를 이용하여 처리된 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크에 대응하는 제 2 처리 결과 중 지정된 조건을 만족하는 하나의 처리 결과를 상기 처리가 지연되고 있는 적어도 하나의 서브 태스크에 대응하는 처리 결과로 적용하는 동작을 포함하는 방법.
processing, using the processor, a designated task including one or more designated sub-tasks;
checking a state in which the one or more designated sub-tasks are being processed using the processor;
identifying, using the processor, at least one designated subtask whose processing is being delayed from among the one or more designated subtasks, based on at least the state;
processing, using at least some processing circuitry, the at least one designated subtask whose processing is being delayed;
processing, using the processor, at least one designated subtask whose processing is being delayed;
a first processing result corresponding to the at least one designated subtask for which the processing is being delayed, processed using the at least some processing circuitry, and the at least one designated subtask processed using the processor, for which the processing is being delayed. and applying one processing result that satisfies a specified condition among second processing results corresponding to , as a processing result corresponding to at least one subtask whose processing is delayed.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020170137733A 2017-10-23 2017-10-23 Method for processing a delayed task and electronic device implementing the same KR102408961B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170137733A KR102408961B1 (en) 2017-10-23 2017-10-23 Method for processing a delayed task and electronic device implementing the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170137733A KR102408961B1 (en) 2017-10-23 2017-10-23 Method for processing a delayed task and electronic device implementing the same

Publications (2)

Publication Number Publication Date
KR20190045001A KR20190045001A (en) 2019-05-02
KR102408961B1 true KR102408961B1 (en) 2022-06-13

Family

ID=66581783

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170137733A KR102408961B1 (en) 2017-10-23 2017-10-23 Method for processing a delayed task and electronic device implementing the same

Country Status (1)

Country Link
KR (1) KR102408961B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008144187A1 (en) 2007-05-15 2008-11-27 The Mathworks, Inc. Parallel programming interface
KR101595967B1 (en) 2014-12-16 2016-02-22 충북대학교 산학협력단 System and Method for MapReduce Scheduling to Improve the Distributed Processing Performance of Deadline Constraint Jobs
US20170017522A1 (en) 2015-07-15 2017-01-19 Xerox Corporation Methods and systems for assigning resources to a task

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050228967A1 (en) * 2004-03-16 2005-10-13 Sony Computer Entertainment Inc. Methods and apparatus for reducing power dissipation in a multi-processor system
KR20090000025A (en) * 2006-12-15 2009-01-07 주식회사 케이티 Process information management system and method thereof
US8656145B2 (en) * 2008-09-19 2014-02-18 Qualcomm Incorporated Methods and systems for allocating interrupts in a multithreaded processor

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008144187A1 (en) 2007-05-15 2008-11-27 The Mathworks, Inc. Parallel programming interface
KR101595967B1 (en) 2014-12-16 2016-02-22 충북대학교 산학협력단 System and Method for MapReduce Scheduling to Improve the Distributed Processing Performance of Deadline Constraint Jobs
US20170017522A1 (en) 2015-07-15 2017-01-19 Xerox Corporation Methods and systems for assigning resources to a task

Also Published As

Publication number Publication date
KR20190045001A (en) 2019-05-02

Similar Documents

Publication Publication Date Title
US20220091905A1 (en) Method and device for providing application list by electronic device
US11422852B2 (en) Electronic device capable of increasing task management efficiency of digital signal processor
US11630699B2 (en) Virtual process scheduling and execution using cores allocated via host operating system having host ready queue and virtual ready queue
KR102498597B1 (en) Electronic device and method for identifying object based on setting region-of-interest by using the same
US11645387B2 (en) Electronic device for classifying malicious code and operation method thereof
US11024266B2 (en) Method for maintaining performance of an application and electronic device thereof
KR20210037320A (en) Method and electronic device for executing application
KR102372644B1 (en) Operation method of operating system and electronic device supporting the same
US11595902B2 (en) Electronic device for filtering packet and method for operating same
US11429178B2 (en) Electronic device and method for determining operating frequency of processor
US10929085B2 (en) Electronic apparatus for controlling display of virtual input interface in environment of a plurality of output screens and operating method thereof
KR102408961B1 (en) Method for processing a delayed task and electronic device implementing the same
US20190227705A1 (en) Method for displaying user interface of application and electronic device thereof
US20190238891A1 (en) Method of processing images and electronic device thereof
US11768702B2 (en) Electronic device for scheduling based on heterogeneous multi-processor and operating method thereof
US11360752B2 (en) Electronic device performing restoration on basis of comparison of constant value and control method thereof
US11113215B2 (en) Electronic device for scheduling a plurality of tasks and operating method thereof
US11392282B2 (en) Electronic device for providing graphical content and method for controlling same
KR102539578B1 (en) Method for mapping function of application and electronic device thereof
KR102423768B1 (en) Method for processing a plurality of instructions included in a plurality of threads and electronic device thereof
US11609596B2 (en) Electronic device for controlling frequency of processor and method of operating the same
US20210248011A1 (en) Electronic device having heterogeneous processors and method of processing task using the heterogeneous processors
US20210056932A1 (en) Electronic device for improving graphic performance of application program and operating method thereof
KR20210104521A (en) An electronic device performing a restoration based on a comparison of constant value and control method thereof
KR20230108063A (en) Control method and system based on layer-wise adaptive channel pruning

Legal Events

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