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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/505—Allocation 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
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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
본 발명의 다양한 실시 예는 처리가 지연되고 있는 태스크의 처리 방법 및 이를 지원하는 전자 장치 에 관한 것이다.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
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 구동하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 및 연산을 수행할 수 있다. 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하여 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 운영되고, 추가적으로 또는 대체적으로, 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화된 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 여기서, 보조 프로세서(123)는 메인 프로세서(121)와 별개로 또는 임베디드되어 운영될 수 있다.The
이런 경우, 보조 프로세서(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
프로그램(140)은 메모리(130)에 저장되는 소프트웨어로서, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다. The program 140 is software stored in the memory 130 , and may include, for example, an operating system 142 ,
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신하기 위한 장치로서, 예를 들면, 마이크, 마우스, 또는 키보드를 포함할 수 있다. The
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력하기 위한 장치로서, 예를 들면, 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용되는 스피커와 전화 수신 전용으로 사용되는 리시버를 포함할 수 있다. 일실시예에 따르면, 리시버는 스피커와 일체 또는 별도로 형성될 수 있다.The
표시 장치(160)는 전자 장치(101)의 사용자에게 정보를 시각적으로 제공하기 위한 장치로서, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치 회로(touch circuitry) 또는 터치에 대한 압력의 세기를 측정할 수 있는 압력 센서를 포함할 수 있다. The
오디오 모듈(170)은 소리와 전기 신호를 쌍방향으로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 유선 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)(예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.The
센서 모듈(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
연결 단자(178)는 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102))를 물리적으로 연결시킬 수 있는 커넥터, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.The
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.The
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈, 이미지 센서, 이미지 시그널 프로세서, 또는 플래시를 포함할 수 있다.The
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리하기 위한 모듈로서, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구성될 수 있다.The
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급하기 위한 장치로서, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.The
통신 모듈(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
일실시예에 따르면, 무선 통신 모듈(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
상기 구성요소들 중 일부 구성요소들은 주변 기기들간 통신 방식(예: 버스, 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
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치 중 적어도 하나를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.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
그래프(200)는 입력단과 출력단을 포함할 수 있으며, 그래프(200)의 입력단과 출력단은 전체 작업의 최초 입력단과 최종 출력단을 의미할 수 있다. 노드들도 각각 입력단과 출력단을 포함할 수 있으며, 노드들은 적어도 하나 이상의 입력단과 적어도 하나 이상의 출력단을 포함할 수 있다. 노드들의 입력단과 출력단은 그래프 관점에서 중간 입력단과 중간 출력단일 수 있다.The
도 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
각 노드들은 전자 장치(예: 전자 장치(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
도 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
동작 302에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는, 처리가 지연되고 있는 노드를 판단할 수 있다. 처리가 지연되는 노드는 워스트 노드를 포함할 수 있다.In
동작 303에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는 워스트 노드를 처리할 후보 타겟을 선택할 수 있다.In
동작 304에서 전자 장치(예: 전자 장치(101))의 프로세서(120)는 워스트 노드를 우선 처리한 타겟의 처리 결과를 해당 워스트 노드의 결과로 적용할 수 있다. 도 3은 본 발명의 동작을 전반적으로 나타낸 도면이며, 상세한 설명은 도 4에서 진행하도록 한다.In
도 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
마스터 모듈(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
후보 타겟 준비 모듈(Candidate Target Preparer)(405)은 워스트 노드에 추가로 투입할 제 2 타겟을 선택하고, 제 2 타겟의 동작에 필요한 자원을 제 2 타겟에게 할당하도록 리소스 매니저 모듈(402)에게 요청할 수 있다. 일 실시 예로, 후보 타겟 준비 모듈(405)은 리소스 매니저(402)에게 워스트 노드를 수행할 수 있는 타겟 리스트 및 우선순위를 요청하여 전달받을 수 있다. 후보 타겟 준비 모듈(405)은 타겟 리스트를 참조하여 우선 순위가 가장 높은 타겟을 제 2 타겟으로서 선택하고, 해당 타겟을 수행하기 위한 자원을 리소스 매니저(402)에 요청하여 해당 타겟에게 자원을 할당할 수 있다. 다른 실시 예로, 후보 타겟 준비 모듈(405)은 제 2 타겟을 선택하는 것에 있어서, 리소스 매니저(402)로부터 전달 받은 우선 순위 정보 외에 다른 요소도 고려할 수 있다.The
노드 수행 가속 모듈(Node Performance Accelerator)(406)은 워스트 노드를 수행할 시점에 그래프 실행 모듈(403)과 통신하여, 워스트 노드를 수행하고 있던 기존의 타겟과 제 2 타겟에게 해당 워스트 노드를 각각 수행(병렬 수행)시키고 먼저 종료되는 타겟의 결과물을 워스트 노드의 출력으로 반영할 수 있다.The node performance accelerator module (Node Performance Accelerator) 406 communicates with the
도 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
동작 (418)에서, 마스터 모듈(401)은 그래프 수행 시간 정보를 워스트 노드 감지 모듈(404)로 전송할 수 있다. 동작 (419)에서, 워스트 노드 감지 모듈(404)은 전달된 그래프 수행 시간 정보를 분석하여 하나 이상의 워스트 노드를 감지하고, 감지된 워스트 노드에 관한 정보를 노드 수행 가속 모듈(406)로 전달할 수 있다. 동작 (420)에서, 워스트 노드 감지 모듈(404)은 감지된 워스트 노드에 관한 정보를 후보 타겟 준비 모듈(405)로 전달할 수 있다.In
동작 (421)에서, 후보 타겟 준비 모듈(405)은 워스트 노드에 추가로 투입할 제 2 타겟을 선택하고, 제 2 타겟의 동작에 필요한 자원을 제 2 타겟에게 할당하도록 리소스 매니저 모듈(402)에게 요청할 수 있다. 동작 (422)에서, 리소스 매니저 모듈(402)은 할당된 자원 정보를 후보 타겟 준비 모듈(405)로 전달할 수 있다. 동작 (423)에서, 후보 타겟 준비 모듈(405)은 전달받은 할당된 자원 정보를 노드 수행 가속 모듈(406)로 전달할 수 있다.In
동작 (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
동작 (430)에서, 그래프 실행 모듈(403)은 그래프 수행이 종료됨을 노드 수행 가속 모듈(406)로 알릴 수 있다. 동작 (431)에서, 그래프 실행 모듈(403)은 그래프 수행이 종료됨을 마스터 모듈(401)에게 알릴 수 있다. 동작 (432)에서 마스터 모듈(401)은 그래프 실행 모듈(403)과 통신하여 그래프 수행 동작을 N번 반복할 수 있다. 동작 (433)에서, 노드 수행 가속 모듈(406)은 그래프 실행 모듈(403)에세 제 2 타겟이 더 이상 해당 워스트 노드를 수행하지 않을 것을 알릴 수 있다(reset flags).In
동작 (434)에서, 마스터 모듈(401)은 그래프 수행 시간 정보를 워스트 노드 감지 모듈(404)로 전송할 수 있다. 동작 (435)에서, 워스트 노드 감지 모듈(404)은 전달된 그래프 수행 시간 정보를 분석하여 워스트 노드가 감지되지 않음을 그래프 실행 모듈(403)에게 알릴 수 있다. 동작 (436)에서, 이를 수신한 그래프 실행 모듈(403)은 마스터 모듈(401)에게 대기 신호를 전송할 수 있다. In
도 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
본 발명의 다양한 실시 예에 따라, 워스트 노드 감지 모듈은 하위 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
도 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
다른 실시 예로, 후보 타겟 준비 모듈은 제 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
본 발명의 다양한 실시 예에 따라, 후보 타겟 준비 모듈은 반복적으로 워스트 노드를 발생시키는 타겟을 블랙리스트에 추가하고, 블랙리스트를 참조하여 후보 타겟을 선택할 수 있다. 이는 도 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
다양한 실시 예에 따라, 도 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
동작 (701)에서의 판단 결과, 이전 텀에서 감지된 워스트 노드가 이번 텀에서도 워스트 노드라고 판단한 경우, 동작 (702)로 진행할 수 있다. 동작 (702)를 참조하면 후보 타겟 준비 모듈은 이전 텀에서 워스트 노드를 수행한 타겟을, 해당 워스트 노드의 블랙리스트에 블랙리스트 타겟으로서 추가할 수 있다. 블랙리스트 타겟은 해당 노드의 처리 지연을 해결하기 위해 투입되었으나 해결하지 못한 타겟을 포함할 수 있다. 동작 (702)에서 추가 후, 동작 (703)으로 진행할 수 있다.As a result of the determination in
동작 (703)에서, 후보 타겟 준비 모듈은 타겟을 선택할 때 고려할 순위를 나타내는 값인 K를 1로 설정할 수 있다. K를 1로 설정하는 것은, 1 순위의 후보 타겟을 후보 타겟으로 고려한다는 것을 포함할 수 있다. 동작 (703)에서 설정 후, 동작 (704)로 진행할 수 있다.In
동작 (704)에서, 후보 타겟 준비 모듈은 워스트 노드가 수행될 동안 1순위 후보 타겟이 유휴 상태인지를 판단할 수 있다. 후보 타겟 준비 모듈은 마스터 모듈로부터 수신한 그래프 수행 시간 정보를 참조하여 판단할 수 있다. In
동작 (704)에서의 판단 결과 제 1 순위 후보 타겟이 유휴 상태가 아니라고 판단한 경우 동작 (708)로 진행할 수 있다. As a result of the determination in
동작 (708)에서 후보 타겟 준비 모듈은 순위를 나타내는 값인 K에 1 추가할 수 있다. K에 1을 추가 한다는 것은, 다음 순위의 후보 타겟을 후보 타겟으로 고려한다는 것을 포함할 수 있다. 예를 들어, 제 2 순위 후보 타겟을 후보 타겟으로 고려하는 것을 포함할 수 있다. In
동작 (709)로 진행하여, 후보 타겟 준비 모듈은 리소스 매니저로부터 수신한 타겟 리스트 및 우선 순위에 관한 정보를 참조하여, 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하는지 판단할 수 있다. 동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재한다고 판단한 경우 동작 (704)로 진행하여 이후 과정을 반복할 수 있다.Proceeding to
동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하지 않는다고 판단한 경우 동작 (710)으로 진행하여 다음 텀에서 워스트 노드를 수행할 후보 타겟을 선정하지 않을 수 있다.As a result of the determination in
동작 (704)에서 후보 타겟 준비 모듈이 제 1 순위 후보 타겟이 유휴 상태라고 판단한 경우 동작 (705)로 진행할 수 있다. If the candidate target preparation module determines in
동작 (705)에서 제 1 순위 후보 타겟이 이전 텀들에서 해당 워스트 노드를 실행할 타겟으로서 선택된 적이 있는지 판단할 수 있다. In
동작 (705)에서의 판단 결과, 제 1 순위 후보 타겟이 이전 텀들에서 해당 워스트 노드를 실행할 타겟으로서 선택된 적이 없다고 판단한 경우, 동작 (707)로 진행하여 후보 타겟 준비 모듈은 제 1 순위 후보 타겟을 다음 텀에서 수행될 후보 타겟으로 선택할 수 있다.As a result of the determination in
동작 (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
동작 (709)의 판단 결과, 후보 타겟 준비 모듈이 워스트 노드를 수행할 수 있는 제 2 순위 후보 타겟이 존재하지 않는다고 판단한 경우 동작 (710)으로 진행하여 다음 텀에서 워스트 노드를 수행할 후보 타겟을 선정하지 않을 수 있다.As a result of the determination in
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.
상기 프로세서는,
상기 지정된 태스크의 처리 시간 또는 상기 하나 이상의 지정된 서브 태스크들의 처리 시간 중 적어도 하나에 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하도록 설정된 전자 장치.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.
상기 프로세서는,
상기 하나 이상의 지정된 서브 태스크들의 처리 시간이, 서브 태스크 별로 지정된 시간 제한을 초과하는 것에 기반하여, 상기 하나 이상의 지정된 서브 태스크들 중 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 확인하도록 설정된 전자 장치.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 .
상기 프로세서는,
상기 프로세서를 이용해서 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하는 것에 있어서,
상기 하나 이상의 처리 회로들 중 상기 적어도 일부 처리 회로와는 다른 적어도 일부 처리 회로를 선택하고,
상기 선택된 적어도 일부 처리 회로를 이용하여 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하도록 설정된 전자 장치.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.
상기 프로세서는,
지정된 처리 회로의 우선 순위를 기반으로, 상기 다른 적어도 일부 처리 회로를 선택하도록 설정된 전자 장치.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.
상기 프로세서는,
상기 하나 이상의 처리 회로들 중 유휴 상태인 처리 회로를 상기 다른 적어도 일부 처리 회로로서 선택하도록 설정된 전자 장치.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.
상기 프로세서는,
상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크가 이전에도 처리가 지연된 적이 있는지 판단하고,
처리가 지연된 적이 있다고 판단한 경우, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 수행한 처리 회로를 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크의 블랙 리스트 타겟으로서 저장하도록 설정된 전자 장치.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.
상기 프로세서는,
상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크의 블랙 리스트 타겟으로서 기준 횟수 이하로 저장된 처리 회로를, 상기 처리가 지연되고 있는 적어도 하나의 지정된 서브 태스크를 처리하는 처리 회로로 선택하도록 설정된 전자 장치.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 처리 결과 및 상기 제 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.
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)
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)
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 |
-
2017
- 2017-10-23 KR KR1020170137733A patent/KR102408961B1/en active IP Right Grant
Patent Citations (3)
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 |