KR20200101682A - 전자 장치 및 그 제어 방법 - Google Patents

전자 장치 및 그 제어 방법 Download PDF

Info

Publication number
KR20200101682A
KR20200101682A KR1020190019847A KR20190019847A KR20200101682A KR 20200101682 A KR20200101682 A KR 20200101682A KR 1020190019847 A KR1020190019847 A KR 1020190019847A KR 20190019847 A KR20190019847 A KR 20190019847A KR 20200101682 A KR20200101682 A KR 20200101682A
Authority
KR
South Korea
Prior art keywords
task
received
information
job
external device
Prior art date
Application number
KR1020190019847A
Other languages
English (en)
Inventor
박대동
강재석
김범진
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020190019847A priority Critical patent/KR20200101682A/ko
Priority to PCT/KR2020/002011 priority patent/WO2020171472A1/en
Priority to US16/794,400 priority patent/US11204804B2/en
Priority to CN202010103696.6A priority patent/CN111596640B/zh
Publication of KR20200101682A publication Critical patent/KR20200101682A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0208Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
    • G05B23/0213Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3017Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is implementing multitasking
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/20Pc systems
    • G05B2219/24Pc safety
    • G05B2219/24065Real time diagnostics

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Debugging And Monitoring (AREA)

Abstract

전자 장치가 개시된다. 전자 장치는, 회로(circuitry)를 포함하는 통신 인터페이스 및 제1 외부 장치로부터, 제1 외부 장치에서 순차적으로 수행되는 제1 작업(task) 및 제2 작업을 포함하는 스케줄링 정보를 통신 인터페이스를 통해 수신하고, 스케줄링 정보에 기초하여 획득된 제1 작업 및 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 제1 작업 및 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 프로세서를 포함하며, 프로세서는, 제1 외부 장치로부터 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 제2 작업의 타임아웃 시간을 갱신하고 갱신된 타임아웃 시간 내에 제2 작업에 대응되는 신호의 수신 여부를 모니터링한다.

Description

전자 장치 및 그 제어 방법 {Electronic device and control method thereof}
본 개시는 실시간 스케줄링을 고려하여 모니터링하는 전자 장치 및 그 제어 방법에 관한 것이다.
차량 및 로봇 등에 구비된 안전 필수 시스템에서는 각 모듈들이 정상적으로 작업을 수행하는지 확인하는 모니터링 모듈이 필수적으로 요구된다.
모니터링 모듈은 대상 모듈로부터 타임아웃 시간 내에 모니터링 신호를 전달받아 대상 모듈의 정상 작동 여부를 판단하는데, 타임아웃 시간이 길게 설정되면 대상 프로세스의 오류에 대해 빠르게 대처할 수 없고, 타임아웃 시간이 짧게 설정되면 대상 프로세스가 정상 상태임에도 불구하고 오류로 판단될 가능성이 높아진다.
따라서, 대상 프로세스에서 수행되는 작업에 따른 실시간 스케줄링 정보에 따라 타임아웃 시간을 유연하게 설정할 필요가 있다.
다만, 종래의 모니터링 모듈은 예정된 작업 만을 모니터링할 뿐 실시간 스케줄링 변수를 고려하지 못하였다. 따라서, 특정 모듈이 예정되지 않은 작업을 수행함에 따라 예정된 작업의 모니터링 신호를 모니터링 모듈로 전송하지 못한 경우, 모니터링 모듈은 해당 모듈에 에러가 발생된 것으로 오판하는 문제가 있었다.
본 개시는 상술한 필요성에 따른 것으로, 본 개시의 목적은, 실시간 스케줄링을 고려하여 단순 지연 중인 모니터링 대상 장치(모듈)를 불필요하게 리셋하거나 재 부팅하는 동작을 방지하기 위한 전자 장치 및 그 제어 방법을 제공함에 있다.
상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치는, 회로(circuitry)를 포함하는 통신 인터페이스 및 제1 외부 장치로부터, 상기 제1 외부 장치에서 순차적으로 수행되는 제1 작업(task) 및 제2 작업을 포함하는 스케줄링 정보를 상기 통신 인터페이스를 통해 수신하고, 상기 스케줄링 정보에 기초하여 획득된 상기 제1 작업 및 상기 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 상기 제1 작업 및 상기 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 프로세서를 포함할 수 있다.
상기 프로세서는, 상기 제1 외부 장치로부터 상기 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 상기 제2 작업의 타임아웃 시간을 갱신하고 상기 갱신된 타임아웃 시간 내에 상기 제2 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다.
상기 프로세서는, 상기 제3 작업의 우선 순위가 상기 제2 작업의 우선 순위 보다 높은 경우 상기 제2 작업의 타임아웃 시간을 갱신할 수 있다.
상기 프로세서는, 상기 제3 작업에 대한 정보에 기초하여 상기 제3 작업의 타입을 식별하고, 상기 식별된 타입에 기초하여 상기 제3 작업의 WCET(Worst Case Execution Time)를 획득하고, 상기 제3 작업의 WCET에 기초하여 상기 제2 작업의 타임아웃 시간을 연장할 수 있다.
상기 연장된 제2 작업의 타임아웃 시간은, 상기 제2 작업의 WCET 및 상기 제3 작업의 WCET가 합산된 시간일 수 있다.
상기 프로세서는, 제2 외부 장치로부터 상기 제3 작업에 대한 정보를 수신하며, 상기 제2 외부 장치는, 상기 제1 외부 장치에서 수행되는 상기 제3 작업에 의해 획득된 데이터를 상기 제1 외부 장치로부터 수신하여 처리하는 장치일 수 있다.
상기 프로세서는, 상기 제3 작업에 대한 정보가 수신되면 상기 제3 작업에 의해 획득된 데이터를 수신하여 처리하는 제2 외부 장치의 제4 작업을 상기 제2 외부 장치의 스케줄링 정보에 추가하며, 상기 제4 작업은, 상기 제2 외부 장치에서 상기 수신된 데이터를 처리하는 작업일 수 있다.
상기 제3 작업에 대한 정보는, 상기 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 상기 제1 외부 장치로부터 수신된 상기 스케줄링 정보에 포함되지 않은 것일 수 있다.
상기 전자 장치는, 워치독(watchdog) 기능을 수행하는 모듈을 포함하는 장치일 수 있다.
한편, 상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 시스템은, 상기 제1 장치에서 수행되는 작업에 대한 스케줄링 정보를 상기 제2 장치로 전송하는 제1 장치 및 상기 제1 장치로부터, 상기 제1 장치에서 순차적으로 수행되는 제1 작업 및 제2 작업을 포함하는 스케줄링 정보를 수신하고, 상기 스케줄링 정보에 기초하여 획득된 상기 제1 작업 및 상기 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 상기 제1 작업 및 상기 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 제2 장치를 포함할 수 있다.
상기 제2 장치는, 상기 제1 장치로부터 상기 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 상기 제2 작업의 타임아웃 시간을 갱신하고 상기 갱신된 타임아웃 시간 내에 상기 제2 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다.
상기 전자 시스템은, 상기 제3 작업에 의해 획득된 데이터를 상기 제1 장치로부터 수신하여 처리하는 제3 장치를 더 포함하며, 상기 제2 장치는 상기 제3 작업에 대한 정보가 수신되면 상기 제3 장치의 제4 작업을 상기 제3 장치의 스케줄링 정보에 추가하며, 상기 제4 작업은 상기 제3 장치에서 상기 제1 장치로부터 수신된 데이터를 처리하는 작업일 수 있다.
상기 제2 장치는, 상기 제3 작업의 우선순위가 상기 제2 작업의 우선 순위 보다 높은 경우, 상기 제2 작업의 타임아웃 시간을 갱신할 수 있다.
한편, 상술한 목적을 달성하기 위한 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법은, 제1 외부 장치로부터, 상기 제1 외부 장치에서 순차적으로 수행되는 제1 작업(task) 및 제2 작업을 포함하는 스케줄링 정보를 수신하는 단계, 상기 스케줄링 정보에 기초하여 획득된 상기 제1 작업 및 상기 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 상기 제1 작업 및 상기 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 단계를 포함할 수 있다.
상기 모니터링하는 단계는, 상기 제1 외부 장치로부터 상기 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 상기 제2 작업의 타임아웃 시간을 갱신하고, 상기 갱신된 타임아웃 시간 내에 상기 제2 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다.
상기 모니터링하는 단계는, 상기 제3 작업의 우선 순위가 상기 제2 작업의 우선 순위 보다 높은 경우 상기 제2 작업의 타임아웃 시간을 갱신할 수 있다.
상기 모니터링하는 단계는, 상기 제3 작업에 대한 정보에 기초하여 상기 제3 작업의 타입을 식별하고, 상기 식별된 타입에 기초하여 상기 제3 작업의 WCET(Worst Case Execution Time)를 획득하고, 상기 제3 작업의 WCET에 기초하여 상기 제2 작업의 타임아웃 시간을 연장할 수 있다.
상기 연장된 제2 작업의 타임아웃 시간은, 상기 제2 작업의 WCET 및 상기 제3 작업의 WCET가 합산된 시간일 수 있다.
상기 모니터링하는 단계는, 제2 외부 장치로부터 상기 제3 작업에 대한 정보를 수신하며, 상기 제2 외부 장치는, 상기 제1 외부 장치에서 수행되는 상기 제3 작업에 의해 획득된 데이터를 상기 제1 외부 장치로부터 수신하여 처리하는 장치일 수 있다.
상기 제어 방법은, 상기 제3 작업에 대한 정보가 수신되면 상기 제3 작업에 의해 획득된 데이터를 수신하여 처리하는 제2 외부 장치의 제4 작업을 상기 제2 외부 장치의 스케줄링 정보에 추가하는 단계를 더 포함하며, 상기 제4 작업은 상기 제2 외부 장치에서 상기 수신된 데이터를 처리하는 작업일 수 있다.
상기 제3 작업에 대한 정보는, 상기 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 상기 제1 외부 장치로부터 수신된 상기 스케줄링 정보에 포함되지 않은 것일 수 있다.
상기 전자 장치는, 워치독(watchdog) 모듈을 포함하는 장치일 수 있다.
상술한 바와 같이 본 개시의 다양한 실시 예에 따르면, 실시간 스케줄링을 고려하여 단순 지연 중인 모니터링 대상 장치(모듈)를 불필요하게 리셋하거나 재 부팅하는 동작을 방지할 수 있다.
따라서, 모니터링 대상 장치(모듈)가 리셋되거나 재 부팅되어 수행중인 동작이 중지되어 초래되는 문제가 해결될 수 있다.
도 1은 본 개시의 일 실시 예에 따른 전자 시스템을 나타내는 도면이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 블록도이다.
도 3은 전자 장치의 세부 구성을 설명하기 위한 블록도이다.
도 4a는 본 개시의 일 실시 예에 따라 전자 장치 및 단일의 타 전자 장치에서 수행되는 동작을 설명하기 위한 도면이다.
도 4b는 본 개시의 일 실시 예에 따라 전자 장치 및 복수의 타 전자 장치에서 수행되는 동작을 설명하기 위한 도면이다.
도 4c는 본 개시의 다른 실시 예에 따라 전자 장치 및 복수의 타 전자 장치에서 수행되는 동작을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시 예에 따라 제2 작업보다 우선 순위가 높은 제3 작업을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따라 타임아웃 시간에 기초하여 모니터링을 수행하는 전자 장치의 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 개시에 대해 구체적으로 설명하기로 한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시의 실시 예들은 다양한 변환을 가할 수 있고 여러 가지 실시 예를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나 이는 특정한 실시 형태에 대해 범위를 한정하려는 것이 아니며, 개시된 사상 및 기술 범위에 포함되는 모든 변환, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 실시 예들을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
A 및/또는 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 명세서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다. 본 명세서에서, 사용자라는 용어는 전자 장치를 사용하는 사람 또는 전자 장치를 사용하는 장치(예: 인공지능 전자 장치)를 지칭할 수 있다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하 첨부된 도면들을 참조하여 본 개시의 일 실시 예를 보다 상세하게 설명한다.
도 1은 본 개시의 일 실시 예에 따른 전자 시스템을 나타내는 도면이다.
전자 시스템(1000)은 전자 장치(100) 및 타 전자 장치(200)를 포함한다. 여기서, 전자 시스템(1000)은 안전에 관련된 시스템으로, 에러 발생에 관하여 엄격한 규제가 요구되는 안전 필수 시스템(safety-critical system)일 수 있다. 본 개시의 일 실시 예에 따른 전자 시스템(1000)은 차량, 로봇 등에 포함되는 안전 필수 시스템인 동시에 실시간 분산 처리 시스템(real-time distributed system)일 수 있다. 여기서, 전자 장치(100) 및 타 전자 장치(200) 각각은 상술한 하나의 시스템에 포함되는 모듈로 구현될 수 있으나, 이하에서는 설명의 편의를 위해 장치로 통칭한다.
전자 장치(100)는 타 전자 장치(200)를 모니터링 할 수 있는 장치이며, 구체적으로, 타 전자 장치(200)로부터 전송되는 신호를 모니터링하여 타 전자 장치(200)의 에러 발생 여부를 식별하는 장치이다. 전자 장치(100)는 워치독(watchdog) 기능을 수행하는 모듈을 포함하는 장치로 구현될 수 있으며, 이외에도 타 전자 장치(200)를 모니터링할 수 있는 장치라면 다양한 형태로 구현될 수 있음은 물론이다.
타 전자 장치(200)는 스케줄링의 대상이 되는 작업(task)을 수행하는 프로세스 장치를 의미하며, 모니터링의 대상이 되는 장치이다. 예를 들어, 차량의 경우 타 전자 장치(200)는 ECU(Electronic Control Unit)로 구현될 수 있다. 타 전자 장치(200)는 복수 개(200-1...200-n) 존재할 수 있으며, 전자 장치(100)로 기설정된 신호(모니터링 신호)를 전송하여 예정된 작업을 수행중인 상태 또는 완료한 상태임을 알릴 수 있다.
한편, 전자 장치(100)는 타 전자 장치(200)로부터 모니터링 신호가 기설정된 타임아웃(timeout) 시간 내에 수신되지 않는 경우, 타 전자 장치(200)에 에러가 발생된 것으로 식별하고, 타 전자 장치(200)를 정상적으로 동작시키기 위해 리셋하거나 재 부팅할 수 있다. 여기서, 타임아웃 시간이란 타 전자 장치(200)로부터 기설정된 신호를 수신하기 위해 전자 장치(100)가 대기하는 시간의 범위를 의미한다.
다만, 타 전자 장치(200)에 예정되지 않은 긴급한 작업이 추가되어 예정된 작업을 수행하지 못한 경우에도 전자 장치(100)로 예정된 작업에 대한 모니터링 신호를 전송하지 못하였으므로 타 전자 장치(200)에 에러가 발생된 것으로 식별할 수 있다. 이 경우, 타 전자 장치(200)는 리셋되거나 재 부팅되는 동안 예정된 작업을 수행할 수 없는데, 차량의 자율 주행 기술의 경우 엔진 관리 ECU(타 전자 장치)가 리셋되거나 재 부팅되는 동안 차량이 급제동하거나 장애물 회피 기동 작업을 수행하지 못하는 문제가 발생될 수 있다.
이에 따라 본 개시에서는 타 전자 장치(200)가 예정되지 않은 작업을 수행하여 타임아웃 시간 내에 모니터링 신호를 정상적으로 전자 장치(100)로 전송하지 못한 경우에도 타임아웃 시간을 연장하여 모니터링 신호를 수신할 수 있도록 하는 다양한 실시 에에 대해 자세히 설명하도록 한다. 한편, 도 1은 차량에 포함되는 안전 필수 시스템을 나타내기 위해 차량 도면을 도시하였으나 이는 일 예에 불과하고, 안전 필수 시스템은 로봇 등과 같이 실시간 분산 처리 시스템이 적용되는 다양한 장치에 적용될 수 있음은 물론이다.
도 2는 본 개시의 일 실시 예에 따른 전자 장치의 동작을 설명하기 위한 블록도이다.
도 2에 따르면, 전자 장치(100)는 통신 인터페이스(110) 및 프로세서(120)를 포함한다.
통신 인터페이스(110)는 외부 장치(200)와 데이터를 송수신할 수 있는 구성이다. 통신 인터페이스(110)는 회로(circuitry)를 포함할 수 있다.
일 예로, 통신 인터페이스(110)는 유/무선 통신 방식에 따라 외부 장치(200)로부터 데이터를 수신할 수 있는 구성이다. 일 예로, 통신 인터페이스(110)는 BT(BlueTooth), WI-FI(Wireless Fidelity), Zigbee, IR(Infrared), 이더넷(Ethernet), Serial Interface, USB(Universal Serial Bus), MIPI CSI(Mobile Industry Processor Interface Camera Serial Interface), NFC(Near Field Communication), V2X(Vehicle to Everything), 이동통신(Cellular) 등과 같은 통신 방식을 이용할 수 있다.
특히, 통신 인터페이스(110)는 외부 장치(200)로부터 스케줄링 정보 및 스케줄링 정보에 포함된 각 작업에 대응되는 신호를 수신 받을 수 있다. 여기서, 작업에 대응되는 신호란 작업이 수행중인 상태 또는 작업이 완료된 상태를 나타내기 위한 신호이며 해당 작업이 정상적으로 수행됨을 나타내는 모니터링 신호일 수 있다. 또는 통신 인터페이스(110)는 외부 서버(미도시)로부터 외부 장치(200)에서 수행되는 작업에 대한 스케줄링 정보를 수신 받을 수도 있다.
프로세서(120)는 전자 장치(100)의 전반적인 동작을 제어한다.
본 개시의 일 실시 예에 따라, 프로세서(120)는 디지털 신호를 처리하는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), TCON(Time controller)으로 구현될 수 있다. 다만, 이에 한정되는 것은 아니며, 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)), 또는 커뮤니케이션 프로세서(communication processor(CP)), ARM 프로세서 중 하나 또는 그 이상을 포함하거나, 해당 용어로 정의될 수 있다. 또한, 프로세서(120)는 프로세싱 알고리즘이 내장된 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 프로세서(120)는 메모리(미도시)에 저장된 컴퓨터 실행가능 명령어(computer executable instructions)를 실행함으로써 다양한 기능을 수행할 수 있다. 또한, 프로세서(120)는 GPU(Graphics Processing Unit), NPU(Numeric Processing Unit)를 포함할 수 있다.
한편, 이하에서 외부 장치(200)는 제1 외부 장치를 나타내고, 타 외부 장치는 제2 외부 장치를 나타낼 수 있다.
본 개시의 일 실시 예에 따르면, 프로세서(120)는 외부 장치(200)로부터, 외부 장치(200)에서 순차적으로 수행되는 제1 작업(task) 및 제2 작업을 포함하는 스케줄링 정보를 통신 인터페이스(110)를 통해 수신할 수 있다. 여기서, 작업이란 쓰레드(thread) 단위로 수행되는 것일 수 있다. 구체적으로, 프로세서(120)는 외부 장치(200)의 스케줄러(미도시)로부터 스케줄링 정보를 수신할 수 있으나 외부 서버(미도시)로부터 외부 장치(200)에서 수행되는 작업에 대한 스케줄링 정보를 수신할 수도 있다. 또는, 프로세서(120)는 외부 장치(200)의 스케줄러에 액세스(access)하여 스케줄링 정보를 획득할 수 있다.
프로세서(120)는 스케줄링 정보에 기초하여 획득된 제1 작업 및 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 제1 작업 및 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링할 수 있다. 여기서, 스케줄링 정보에는 각 작업의 타입, 각 작업의 타임아웃 시간 또는 각 작업의 우선 순위 중 적어도 하나가 포함될 수 있다. 또한, 작업에 대응되는 신호란 작업이 정상적으로 수행중인 상태 또는 완료된 상태임을 나타내기 위한 기설정된 신호일 수 있다. 또한, 타임아웃 시간이란 외부 장치(200)로부터 기설정된 신호(모니터링 신호)를 수신하기 위해 전자 장치(100)가 대기하는 시간의 범위를 의미한다. 예를 들어, 타임아웃 시간이 100ms인 경우, 프로세서(120)는 100ms 내에 외부 장치(200)로부터 기설정된 신호가 수신되었는지 여부를 식별할 수 있다. 외부 장치(200)로부터 타임아웃 시간 내에 기설정된 신호가 수신되지 않는 경우, 프로세서(120)는 외부 장치(200)를 리셋하거나 재 부팅할 수 있다. 타임아웃 시간 내에 기설정된 신호가 전자 장치(100)에 수신되지 않는 경우, 프로세서(120)는 외부 장치(200)에 에러가 발생된 것으로 판단하기 때문이다.
한편, 프로세서(120)는 스케줄링 정보에 제1 작업 및 제2 작업 각각의 타임아웃 시간이 포함된 경우 제1 작업 및 제2 작업 각각에 대한 타임아웃 시간을 직접 획득할 수 있으나, 스케줄링 정보에 타임아웃 시간이 포함되지 않은 경우 제1 작업 및 제2 작업 각각의 타입 정보로부터 타임아웃 시간을 예측하여 획득할 수 있다. 일 예로, WCET(Worst Case Execution Time) 정보에 기초하여 각 작업의 타임아웃 시간을 획득할 수 있는데, 이에 관하여는 하기에서 자세히 설명하도록 한다. 제1 작업 및 제2 작업 각각의 타임아웃 시간은 제1 작업 및 제2 작업 각각의 타입에 따라 동일하거나 상이할 수 있다.
한편, 프로세서(120)는 외부 장치(200)로부터 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 제2 작업의 타임아웃 시간을 갱신할 수 있다. 즉, 제1 작업 이후 예정된 제2 작업이 수행되지 않고 제3 작업이 수행되는 경우 프로세서(120)는 타 전자 장치(200)에 에러가 발생된 것으로 판단하지 않고 제2 작업의 타임아웃 시간을 연장할 수 있다.
여기서, 제3 작업에 대한 정보는, 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 외부 장치(200)로부터 수신된 스케줄링 정보에 포함되지 않은 것일 수 있다. 즉, 제3 작업은 예정되지 않은 새롭게 추가된 작업일 수 있다. 예를 들어, 외부 장치(200)가 차량의 엔진 관리 ECU로 구현되는 경우를 상정한다. 제1 작업 및 제2 작업은 엔진 온도를 체크하는 작업일 수 있다. 다만, 차량 전방에 갑작스럽게 장애물이 발생된 경우, 예정되지 않은 회피 기동 작업(제3 작업)이 외부 장치(200)에 추가될 수 있다.
제3 작업에 대한 정보는 외부 장치(200) 또는 타 외부 장치(미도시)로부터 수신될 수 있다. 이에 관하여는 하기에서 자세히 설명한다.
한편, 외부 장치(200) 또는 타 외부 장치로부터 제3 작업에 대한 정보를 수신하는 것으로 상술하였으나, 프로세서(120)는 외부 장치(200) 또는 타 외부 장치의 메모리(미도시)에 액세스(access)하여 제3 작업이 추가된 실시간 스케줄링 정보를 획득할 수도 있다. 예정되지 않은 제3 작업이 추가되는 경우 외부 장치(200) 또는 타 외부 장치는 각 메모리에 제3 작업이 추가된 실시간 스케줄링 정보를 추가할 수 있기 때문이다. 따라서, 프로세서(120)는 주기적으로 외부 장치(200) 또는 타 외부 장치의 메모리에 액세스할 수 있다.
한편, 제3 작업에 대한 정보는, 제3 작업에 대응되는 신호일 수도 있다. 즉, 제3 작업에 대한 정보는, 제3 작업이 정상적으로 수행중인 상태 또는 완료된 상태임을 나타내기 위한 기설정된 신호일 수 있다.
상술한 바와 같이, 다양한 실시 예에 따라 제3 작업에 대한 정보가 수신되는 경우, 프로세서(120)는 예정된 제2 작업이 지연되고 제3 작업이 제2 작업에 비해 먼저 수행되는지 여부를 식별할 필요가 있다. 따라서, 프로세서(120)는 제2 작업의 우선 순위 및 제3 작업의 우선 순위를 비교할 수 있다.
프로세서(120)는 제3 작업의 우선 순위가 제2 작업의 우선 순위 보다 높은 경우 제2 작업의 타임아웃 시간을 갱신할 수 있다. 예를 들어, 예정되지 않은 제3 작업이 추가되었으나 제2 작업 이후에 수행되는 경우, 즉 제3 작업의 우선 순위가 제2 작업의 우선 순위보다 낮은 경우 프로세서(120)는 제2 작업의 타임아웃 시간을 갱신하지 않을 수 있다. 새롭게 추가된 제3 작업은 제2 작업의 타임아웃 시간에 영향을 주지 않기 때문이다.
여기서, 우선 순위는 타 전자 장치(200), 외부 서버 또는 기저장된 우선 순위에 관한 정보 중 적어도 하나로부터 결정될 수 있다.
이후, 프로세서(120)는 갱신된 타임아웃 시간 내에 제2 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다.
예를 들어, 외부 장치(200)는 차량의 엔진 관리 ECU(Electronic Control Unit)로 구현되고 100ms 주기로 차량 엔진 온도를 체크하여 전자 장치(100)로 엔진 온도 체크 작업에 대응되는 신호(기설정된 신호)를 전송하는 경우를 상정한다. 여기서, 엔진 온도 체크 작업의 타임아웃 시간은 100ms일 수 있다. 한편, 차량 전방에 예상치 못한 장애물이 발견된 경우, 엔진 관리 ECU(외부 장치)는 엔진 온도 체크 작업(제2 작업)을 중단하고 차량의 회피 기동 작업(제3 동작)을 수행할 수 있다. 이 경우, 엔진 관리 ECU(외부 장치)는 회피 기동 작업을 처리함에 따라 엔진 온도 체크 작업에 대응되는 신호(기설정된 신호)를 전자 장치(100)에 전송하지 못할 수 있다. 다만, 프로세서(120)는 엔진 관리 ECU로부터 회피 기동 작업(제3 동작)에 대한 정보를 수신할 수 있으므로, 엔진 관리 ECU에 에러가 발생된 것이 아닌 회피 기동 작업을 수행함을 식별할 수 있다. 따라서, 프로세서(120)는 회피 기동 작업(제3 동작)의 타임아웃 시간만큼 엔진 온도 체크 작업(제2 동작)의 타임아웃 시간을 연장할 수 있다. 이에 따라, 100ms 내에 엔진 온도 체크에 관한 모니터링 신호가 수신되지 않더라도 프로세서(120)는 엔진 관리 ECU에 오류가 발생된 것으로 판단하지 않으므로, 엔진 관리 ECU는 회피 기동 작업을 정상적으로 수행하고 이후 엔진 온도 체크 작업을 수행할 수 있다. 여기서, 엔진 온도 체크 작업(제2 동작)의 타임아웃 시간이 연장되지 않을 경우, 100ms 내에 엔진 온도 체크에 대응되는 신호가 전자 장치(100)에 전송되지 않아 프로세서(120)는 엔진 관리 ECU를 리셋하거나 재 부팅하여 엔진 관리 ECU(외부 장치)에서 수행중인 회피 기동 작업이 중단될 수 있고, 이에 사고가 발생할 수 있다. 따라서, 본 개시의 실시 예에 따라 제2 작업의 타임아웃 시간이 갱신되어 긴급하게 처리되어야 하는 제3 작업이 정상적으로 수행되고 이후 제2 작업도 정상적으로 수행될 수 있다.
한편, 프로세서(120)는 제3 작업에 대한 정보에 기초하여 제3 작업의 타입을 식별하고, 식별된 타입에 기초하여 제3 작업의 WCET(Worst Case Execution Time)를 획득할 수 있다. 구체적으로, 프로세서(120)는 작업의 타입에 따른 WCET(Worst Case Execution Time) 정보에 기초하여 제 3 작업에 의해 제 2 작업이 지연되는 시간을 추정할 수 있다. 예를 들어, 외부 장치(200)가 카메라 센서로 구현되고, 제3 작업은 촬영된 이미지에 포함된 객체와의 거리를 산출하는 작업으로 상정한다. 이 경우, 프로세서(120)는 WCET 정보로부터 거리를 산출하는 작업을 수행하는데 걸리는 시간을 추정할 수 있다. 여기서, WCET 정보란 해당 작업이 수행되는데 소요되는 최대 시간을 나타내며, 타임아웃 시간은 해당 작업이 반드시 완료되어야 하는 최대 시간을 나타낸다. 예를 들어, 거리를 산출하는 작업은 50ms 또는 100ms가 소요되어 수행될 수 있다면, 거리를 산출하는 작업의 WCET는 100ms 이다. 따라서, 프로세서(120)는 WCET 정보로부터 거리를 산출하는 작업(제3 작업)의 WCET를 100ms로 획득할 수 있다.
이후, 프로세서(120)는 제3 작업의 WCET에 기초하여 상기 제2 작업의 타임아웃 시간을 연장할 수 있다. 여기서, 연장된 제2 작업의 타임아웃 시간은 제2 작업의 WCET 및 제3 작업의 WCET가 합산된 시간일 수 있다.
예를 들어, 이미지를 획득하는 작업(제2 작업)의 WCET가 20ms이며, 제2 작업보다 이미지에 포함된 객체와의 거리를 산출하는 작업 (제3 작업)의 우선 순위가 높고, 이미지에 포함된 객체와의 거리를 산출하는 작업 (제3 작업)의 WCET가 100ms인 경우, 프로세서(120)는 제2 작업의 타임아웃 시간을 120(20+100)ms로 연장할 수 있다.
한편, 프로세서(120)는 제3 작업에 대한 정보를 외부 장치(200)로부터 수신하거나 타 외부 장치(미도시)로부터 수신할 수도 있다. 타 외부 장치와 외부 장치(200)가 관련된 장치인 경우 타 외부 장치가 제3 작업에 대한 정보를 전자 장치(100)로 전송할 수도 있다. 구체적으로, 타 외부 장치는 외부 장치(200)에서 수행되는 제3 작업에 의해 획득된 데이터를 외부 장치(200)로부터 수신하여 처리하는 장치일 수 있다.
예를 들어, 외부 장치(200)가 카메라 센서이고, 타 외부 장치가 이미지를 처리하여 객체 검출(object detection), 장면 분할(scene segmentation) 등을 수행하는 장치인 경우를 상정한다. 이미지를 획득하는 제3 작업에 대한 정보는 외부 장치(200)뿐만 아니라 타 외부 장치로부터 수신될 수도 있다. 타 외부 장치는 외부 장치(200)로부터 획득된 이미지(로우 데이터)를 처리하는 장치로서 제3 작업이 외부 장치(200)에 수행됨을 인지하고 있기 때문이다.
한편, 프로세서(120)는 제3 작업에 대한 정보가 수신되면, 제3 작업에 의해 획득된 데이터를 수신하여 처리하는 타 외부 장치의 제4 작업을 타 외부 장치의 스케줄링 정보에 추가할 수 있다. 예를 들어, 이미지 획득 작업(제3 작업)에 대한 정보가 수신되면 객체 검출, 장면 분할 등과 같이 이미지를 처리하는 제4 작업이 타 외부 장치에서 수행됨을 예상할 수 있으므로, 프로세서(120)는 제4 작업을 제4 작업이 수행되는 타 외부 장치에 대한 스케줄링 정보에 추가할 수 있다. 즉, 프로세서(120)는 제3 작업이 수신되면 제3 작업뿐만 아니라 제3 작업과 관련된 제4 작업을 스케줄링 정보에 추가할 수 있다. 여기서, 제4 작업은 타 외부 장치에서 수신된 데이터를 처리하는 작업일 수 있다.
한편, 외부 장치(200)에서 제1 작업 이후 제2 작업이 순차적으로 수행되어야 하는 것으로 상술하였으나, 제1 작업 및 제2 작업이 동시에 수행되고 새롭게 추가된 제3 작업에 의해 그 이후에 예정된 작업의 수행이 지연될 수도 있다.
또한, 제1 작업 이후 예정된 제2 작업의 수행이 지연되는 것으로 상술하였으나 예정된 제1 작업도 새롭게 추가된 제3 작업에 의해 지연되며, 제3 작업이 제1 작업 및 제2 작업보다 먼저 수행될 수도 있다.
한편, 프로세서(120)는 제2 작업의 타임아웃 시간이 경과되기 전에 제3 작업에 대한 정보를 수신하여 제2 작업의 타임아웃 시간을 갱신할 수 있으나, 제2 작업의 타임아웃 시간이 경과되고 외부 장치(200) 또는 타 외부 장치의 메모리에 액세스하여 제3 작업에 대한 정보를 획득할 수도 있다.
한편, 전자 장치(100)는 워치독(watchdog) 기능을 수행하는 모듈을 포함하는 장치로 구현될 수 있다. 여기서, 워치독은 외부 장치(200)에서 발생하는 에러를 식별하기 위해 주기적으로 외부 장치(200)로부터 전송되는 신호의 수신 여부를 체크하는 모듈로, 위치독 타이머, 워치독 회로, 워치독 기계 등으로 불릴 수 있으나, 본 개시에서는 설명의 편의를 위해 워치독 기능을 수행하는 모듈을 워치독 모듈로 통칭한다.
상술한 본 개시의 실시 예에 따라 에러가 발생되지 않은 외부 장치(200)가 리셋되거나 재 부팅되는 불필요한 동작을 방지할 수 있다.
도 3은 전자 장치의 세부 구성을 설명하기 위한 블록도이다.
도 3에 따르면, 전자 장치(100)는 통신 인터페이스(110), 프로세서(120), 메모리(130), 사용자 입력부(140) 및 출력부(150)를 포함한다. 도 3에 도시된 구성 중 도 2에 도시된 구성과 중복되는 부분에 대해서는 자세한 설명을 생략하도록 한다.
통신 인터페이스(110)는 외부 장치(200) 또는 타 외부 장치와 데이터를 송수신할 수 있는 구성이다. 통신 인터페이스(110)는 이더넷(Ethernet) 모듈, CAN(Controller Area Network) 모듈, FlexRay 모듈, EtherCAT(Ethernet for Control Automation Technology) 모듈, USB(Universal Serial Bus), MIPI CSI(Mobile Industry Processor Interface Camera Serial Interface), 무선 통신 모듈(미도시) 등을 포함할 수 있다. 여기서, 각 통신 모듈은 적어도 하나의 하드웨어 칩 형태로 구현될 수 있다. 무선 통신 모듈은 상술한 통신 방식 이외에 지그비(zigbee), 와이파이 모듈(미도시), 블루투스 모듈(미도시), 3G(3rd Generation), 3GPP(3rd Generation Partnership Project), LTE(Long Term Evolution), LTE-A(LTE Advanced), 4G(4th Generation), 5G(5th Generation)등과 같은 다양한 무선 통신 규격에 따라 통신을 수행하는 적어도 하나의 통신 칩을 포함할 수 있다. 다만 이는 일 실시 예에 불과하며 통신 인터페이스(110)는 외부 장치(200)와 통신하는 경우 다양한 통신 모듈 중 적어도 하나의 통신 모듈을 이용할 수 있다.
프로세서(120)는 메모리(130)에 저장된 각종 프로그램을 이용하여 전자 장치(100)의 동작을 전반적으로 제어한다.
구체적으로, 프로세서(120)는 RAM(121), ROM(122), 메인 CPU(123), 제1 내지 n 인터페이스(124-1 ~ 124-n), 버스(125)를 포함한다.
RAM(121), ROM(122), 메인 CPU(123), 제1 내지 n 인터페이스(124-1 내지 124-n) 등은 버스(125)를 통해 서로 연결될 수 있다.
ROM(122)에는 시스템 부팅을 위한 명령어 세트 등이 저장된다. 턴온 명령이 입력되어 전원이 공급되면, 메인 CPU(123)는 ROM(122)에 저장된 명령어에 따라 메모리(130)에 저장된 O/S를 RAM(121)에 복사하고, O/S를 실행시켜 시스템을 부팅시킨다. 부팅이 완료되면, 메인 CPU(123)는 메모리(130)에 저장된 각종 어플리케이션 프로그램을 RAM(121)에 복사하고, RAM(121)에 복사된 어플리케이션 프로그램을 실행시켜 각종 동작을 수행한다. 다만, 상술한 RAM(121), ROM(122)은 프로세서(120)와 별도의 외부 메모리로 구현될 수도 있다.
메인 CPU(123)는 메모리(130)에 액세스하여, 메모리(130)에 저장된 O/S를 이용하여 부팅을 수행한다. 그리고, 메모리(130)에 저장된 각종 프로그램, 컨텐츠 데이터 등을 이용하여 다양한 동작을 수행한다.
제1 내지 n 인터페이스(124-1 내지 124-n)는 상술한 각종 구성 요소들과 연결된다. 인터페이스들 중 하나는 네트워크를 통해 외부 장치와 연결되는 네트워크 인터페이스가 될 수도 있다.
GPU(126)는 그래픽 처리를 위한 고성능의 처리 장치에 해당할 수 있다. 또한, GPU(136)는 VPU(visual processing unit)를 의미할 수 있다.
한편, 도 3에서는 메인 CPU(123), GPU(126)를 모두 표시하였지만, 실제 구현 시 프로세서(120)는 메인 CPU(123) 또는 GPU(126) 중 적어도 하나로 구현되어 동작할 수 있다.
메모리(130)는 프로세서(120)와 별도의 메모리로 구현될 수 있다. 이 경우, 메모리(130)는 데이터 저장 용도에 따라 전자 장치(100)에 임베디드된 메모리 형태로 구현되거나, 전자 장치(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 전자 장치(100)의 구동을 위한 데이터의 경우 전자 장치(100)에 임베디드된 메모리에 저장되고, 전자 장치(100)의 확장 기능을 위한 데이터의 경우 전자 장치(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 전자 장치(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현되고, 전자 장치(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결 가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
또한, 메모리(130)는 프로세서(120)에 포함된 롬(ROM)(예를 들어, EEPROM(electrically erasable programmable read-only memory)), 램(RAM) 등의 내부 메모리로 구현될 수도 있다.
메모리(130)는 외부 장치(200)로부터 수신된 스케줄링 정보를 저장할 수 있다. 또한, 메모리(130)는 제3 작업에 대한 정보 즉, 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 저장할 수 있다. 또한, 메모리(130)는 외부 장치(200)뿐만 아니라 타 외부 장치들로부터 수신된 스케줄링 정보를 저장할 수 있다.
또한, 메모리(130)는 작업의 타입에 따른 WCET(Worst Case Execution Time) 정보를 저장할 수 있다.
사용자 입력부(140)는 다양한 사용자 명령 및 정보를 입력받기 위한 구성이다. 프로세서(120)는 사용자 입력부(140)를 통해 입력된 사용자 명령에 대응되는 기능을 실행하거나, 사용자 입력부(140)를 통해 입력된 정보를 메모리(130)에 저장할 수도 있다.
일 예로, 프로세서(120)는 각 작업에 대한 우선 순위를 사용자 입력부(140)를 통해 사용자로부터 입력받아 메모리(130)에 저장할 수 있다.
사용자 입력부(140)는 사용자 명령을 음성 형태로 수신하기 위해 마이크(미도시)를 포함하거나, 사용자 명령을 터치로 입력받기 위해 터치스크린으로서 출력부(150)의 디스플레이(미도시)로 구현될 수 있다.
또한, 사용자 입력부(140)는 전자 장치(100)를 제어하기 위한 별도의 제어 장치(미도시)로부터 사용자 명령 또는 작업에 대한 정보가 포함된 신호를 입력받을 수도 있다.
출력부(150)는 디스플레이, 음성 출력부(미도시) 등을 포함할 수 있다.
출력부(150)는 외부 장치(200)에 관한 모니터링 상태를 프로세서(120)의 제어에 따라 디스플레이, 음성 출력부(미도시) 등을 통해 출력할 수 있다. 예를 들어, 출력부(150)는 카메라 장치(외부 장치)에 에러가 발생하였음을 디스플레이 또는 음성 출력부 등을 통해 알릴 수 있다.
도 4a는 본 개시의 일 실시 예에 따라 전자 장치 및 단일의 타 전자 장치에서 수행되는 동작을 설명하기 위한 도면이다.
도 4a에서 제1 작업(401) 및 제2 작업(402)은 예정된 작업이며 제3 작업(403)은 새롭게 추가된 작업이다. 또한, 전자 장치(100)는 모니터링 장치로 구현되고, 타 전자 장치(200)는 차량의 ECU로 구현되며, 타 전자 장치(200)의 통신 인터페이스는 Network Manager로 구현되는 경우를 상정한다.
모니터링 장치(100)는 타 전자 장치(200의 스케줄러로부터 타 전자 장치(200)의 스케줄링 정보를 수신할 수 있다. 또는 모니터링 장치(100)는 타 전자 장치(200)의 스케줄러에 액세스하여 스케줄링 정보를 획득할 수 있다.
타 전자 장치(200)에 예정되지 않은 제3 작업이 새롭게 발생되는 경우, 타 전자 장치(200)는 제3 작업에 대한 정보를 전자 장치(100)로 전달할 수 있다. 여기서, 제3 작업에 대한 정보는 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 전자 장치(100)가 타 전자 장치(200)로부터 수신된 스케줄링 정보에 포함되지 않은 것일 수 있다.
전자 장치(100)는 제3 작업에 대한 정보가 수신되면, 제3 작업(403)과 현재 수행 되어야하는 제2 작업(402)의 우선 순위를 비교할 수 있다. 제3 작업(403)의 우선 순위가 제2 작업(402) 보다 높은 경우, 제3 작업(403)을 제2 작업(402)보다 먼저 수행해야하므로 제1 작업(401)이 수행된 후로부터 소요되는 제2 작업(402)의 타임아웃 시간을 연장할 수 있다. 예를 들어, 제2 작업(402)은 차량의 엔진 온도를 측정하는 작업이며 타임아웃 시간이 10ms이고 새롭게 추가된 제3 작업(403)은 회피 기동 작업이며, 회피 기동 작업이 엔진 온도 측정 작업에 비해 우선순위가 높은 경우를 상정한다. 이 경우, 전자 장치(100)는 WCET를 5ms로 획득할 수 있다. 이에 따라, 전자 장치(100)는 제1 작업(401)이 종료된 후 제2 작업(402)에 관한 기설정된 신호를 받기 위한 타임아웃 시간을 연장할 수 있다. 구체적으로, 제2 작업(402)의 연장된 타임아웃 시간은 기존의 제2 작업(402)의 타임아웃 시간에 제3 작업(403)의 WCET가 더해져서 산출될 수 있다. 예를 들어, 10ms(제2 작업)과 5ms(제3 작업)가 더해져 15ms가 연장된 제2 작업(402)의 타임아웃 시간으로 산출될 수 있다. 따라서, 전자 장치(100)는 제1 작업(401) 종료 후 15ms 동안 제2 작업(402)에 대한 기설정된 신호가 수신되는지 여부를 식별할 수 있다.
도 4b는 본 개시의 일 실시 예에 따라 전자 장치 및 복수의 타 전자 장치에서 수행되는 동작을 설명하기 위한 도면이다.
도 4b에서도 제1 작업(401) 및 제2 작업(402)은 예정된 작업이며 제3 작업(403)은 새롭게 추가된 작업임을 상정한다. 다만, 도 4a와 달리 도 4b에서 제3 작업(403)은 제1 장치(200-1)의 작업(404)에 의해 발생된 작업이다. 한편, 타 전자 장치 각각은 설명의 편의를 위해 제1 장치(200-1), 제2 장치(200-2) 등으로 명명한다.
모니터링 장치(100)는 타 전자 장치(200-1 내지 200-n) 각각의 스케줄러로부터 각 타 전자 장치의 스케줄링 정보를 수신할 수 있다. 또는 모니터링 장치(100)는 타 전자 장치(200-1 내지 200-n) 각각의 스케줄러에 액세스하여 스케줄링 정보를 획득할 수 있다.
예를 들어, 비전(vision) 처리 ECU인 제1 장치(200-1)에서 차량 전방에 갑자기 발생된 장애물을 식별하고 장애물과의 거리를 산출하는 작업(404)을 수행할 수 있다. 이 경우, 제1 장치(200-1)는 갑자기 발생된 장애물과의 거리를 산출하는 작업(404)에 대한 정보를 전자 장치(100)로 전송하고 수행된 작업(404)의 결과를 제2 장치(200-2)로 전송할 수 있다.
전자 장치(100)는 통신 테이블에 기초하여 장애물과의 거리를 산출하는 작업(404)이 수행된 경우 제2 장치(200-2)에서 회피 기동 작업이 수행될 수 있음을 예측할 수 있다. 여기서, 통신 테이블은 연관된 작업에 관한 정보를 포함하는 것으로, 예를 들어, 차량과 관련된 분야에서 장애물과의 거리가 산출된 작업이 수행된 경우 회피 기동 작업이 연관되고, 이미지 촬영 작업이 수행된 경우 이미지로부터 객체를 검출하는 작업 등이 연관될 수 있다.
즉, 전자 장치(100)는 제1 장치(200-1)로부터 수신된 작업(404)에 대한 정보에 기초하여 제3 작업에 대한 정보를 획득할 수 있다. 또는 제2 장치(200-2)로부터 제3 작업에 대한 정보를 수신할 수도 있다. 여기서, 제3 작업에 대한 정보는 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 전자 장치(100)가 제1 장치(200-2)로부터 수신된 스케줄링 정보에 포함되지 않은 것일 수 있다. 이 경우 전자 장치(100)는 제3 작업을 제2 장치(200-1)에 관한 스케줄링 정보에 추가할 수 있다.
전자 장치(100)는 제3 작업(403)과 현재 수행 되어야하는 제2 작업(402)의 우선 순위를 비교할 수 있다. 제3 작업(403)의 우선 순위가 제2 작업(402) 보다 높은 경우, 제3 작업(403)을 제2 작업(402)보다 먼저 수행해야하므로 제1 작업(401)이 수행된 후로부터 소요되는 제2 작업(402)의 타임아웃 시간을 연장할 수 있다. 예를 들어, 제2 작업(402)은 차량의 엔진 온도를 측정하는 작업이며 타임아웃 시간이 10ms이고 새롭게 추가된 제3 작업(403)은 회피 기동 작업이며, 회피 기동 작업이 엔진 온도 측정 작업에 비해 우선순위가 높은 경우를 상정한다. 이 경우, 전자 장치(100)는 WCET를 5ms로 획득할 수 있다. 이에 따라, 전자 장치(100)는 제1 작업(401)이 종료된 후 제2 작업(402)에 관한 기설정된 신호를 받기 위한 타임아웃 시간을 연장할 수 있다. 구체적으로, 제2 작업(402)의 연장된 타임아웃 시간은 기존의 제2 작업(402)의 타임아웃 시간에 제3 작업(403)의 WCET가 더해져서 산출될 수 있다. 예를 들어, 10ms(제2 작업)과 5ms(제3 작업)가 더해져 15ms가 연장된 제2 작업(402)의 타임아웃 시간으로 산출될 수 있다. 따라서, 전자 장치(100)는 제1 작업(401) 종료 후 15ms 동안 제2 작업(402)에 대한 기설정된 신호가 수신되는지 여부를 식별할 수 있다. 즉, 전자 장치(100)는 타 전자 장치 간 전달 되는 작업 정보에 기초하여 제3 작업에 대한 정보를 획득할 수도 있다.
도 4c는 본 개시의 다른 실시 예에 따라 전자 장치 및 복수의 타 전자 장치에서 수행되는 동작을 설명하기 위한 도면이다.
도 4c에서도 제1 작업(401) 및 제2 작업(402)은 예정된 작업이며 제3 작업(403)은 새롭게 추가된 작업임을 상정한다. 다만, 도 4b와 달리 도 4c에서 제3 작업(403)은 제1 장치(200-1)에서 발생되어 수행되는 작업이고 제3 작업(403)의 발생에 의해 제2 장치(200-2)의 제4 작업(404)이 발생된다.
예를 들어, 예정되지 않은 이미지 획득 작업(제3 작업, 403)이 발생하여 제1 장치(200-1)는 이미지 획득 작업(403)을 제2 작업(402)보다 우선하여 수행할 수 있다. 이 경우, 제1 장치(200-1)는 이미지 획득 작업(403)에 대한 정보를 전자 장치(100)로 전송하고 이미지 획득 작업(403)의 결과인 획득된 이미지를 제2 장치(200-2)로 전송할 수 있다.
전자 장치(100)는 통신 테이블에 기초하여 이미지 획득 작업(403)이 수행된 경우 제2 장치(200-2)에서 이미지에 기초하여 객체 검출 작업(제4 작업, 404)이 수행될 수 있음을 예측할 수 있다.
따라서, 전자 장치(100)는 객체 검출 작업(404)이 수행되는 제2 장치(200-2)에 대한 스케줄링 정보에 추가할 수 있다.
즉, 전자 장치(100)는 제3 작업(403)에 대한 정보가 수신되면 제3 작업(403)뿐만 아니라 제3 작업(403)과 관련된 제4 작업(404)을 제2 장치(200-2)에 대한 스케줄링 정보에 추가할 수 있다.
도 5는 본 개시의 일 실시 예에 따라 제2 작업보다 우선 순위가 높은 제3 작업을 설명하기 위한 도면이다.
510은 타 전자 장치(200)로부터 수신된 제1 작업(Task 1) 및 제2 작업(Task 2)이 포함된 스케줄링 정보에서 Task 1 및 Task 2의 작업 처리 순서를 나타내는 도면이다.
여기서, T2(512)는 Task 2의 타임아웃 시간을 나타낸다.
520은 제3 작업(Task 3)이 새롭게 발생되었고, Task 3가 Task 2보다 우선 순위가 높은 경우의 Task 1, Task 2 및 Task 3의 작업 처리 순서를 나타내는 도면이다.
여기서, 갱신된 T2(522)는 Task 3가 발생된 이후 Task 2의 타임아웃 시간을 나타낸다. 갱신된 T2(522)는 기존 T2(512)에 Task 3의 WCET가 더해진 시간일 수 있다.
도 6은 본 개시의 일 실시 예에 따라 타임아웃 시간에 기초하여 모니터링을 수행하는 전자 장치의 동작을 설명하기 위한 도면이다.
전자 장치(100)는 타 전자 장치(200)에서 수행되는 제1 작업 및 제2 작업을 포함하는 스케줄링 정보를 수신할 수 있다(S610). 또는, 전자 장치(100)는 타 전자 장치(200)의 스케줄러에 액세스하여 스케줄링 정보를 획득할 수도 있다.
전자 장치(100)는 모니터링 대상 작업에 대한 고유한 타임아웃 시간을 가지고 있다. 여기서, 타임아웃 시간이란 타 전자 장치(200)로부터 기설정된 신호를 수신하기 위해 전자 장치(100)가 대기하는 시간의 범위를 의미한다. 예를 들어, 타임아웃 시간이 100ms인 경우, 전자 장치(100)는 100ms 내에 타 전자 장치(200)로부터 기설정된 신호가 수신되었는지 여부를 식별할 수 있다.
이후, 전자 장치(100)는 제3 작업에 대한 정보를 수신할 수 있다(S630). 여기서, 제3 작업에 대한 정보는, 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 타 전자 장치(200)로부터 수신된 스케줄링 정보에 포함되지 않은 것일 수 있다. 또는, 제3 작업에 대한 정보는 제3 작업에 대응되는 신호일 수도 있다. 즉, 제3 작업에 대한 정보는, 제3 작업이 정상적으로 수행중인 상태 또는 완료된 상태임을 나타내기 위한 기설정된 신호일 수 있다.
제3 작업에 대한 정보가 수신되는 경우, 전자 장치(100)는 예정된 제2 작업이 지연되고 제3 작업이 제2 작업에 비해 먼저 수행되는지 여부를 식별할 필요가 있다.
따라서, 전자 장치(100)는 제2 작업의 우선 순위 및 제3 작업의 우선 순위를 비교할 수 있다.
제3 작업의 우선 순위가 제2 작업의 우선 순위 보다 높은 경우(S640-Y), 전자 장치(100)는 제2 작업의 타임아웃 시간을 갱신할 수 있다(S650). 갱신된 제2 작업의 타임아웃 시간은, 제2 작업의 WCET에 제3 작업의 WCET가 더해진 값일 수 있다.
이후, 전자 장치(100)는 갱신된 타임아웃 시간에 기초하여 제2 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다(S660).
갱신된 타임아웃 시간 내에 제2 작업에 대응되는 신호가 수신되는지 여부로 타 전자 장치(200)에 에러가 발생되었는지를 식별할 수 있다(S670). 갱신된 타임아웃 시간 내에 제2 작업에 대응되는 신호가 수신되는 경우(S670-N), 전자 장치(100)는 타 전자 장치(200)에 에러가 발생되지 않은 것으로 식별하고 이후 예정된 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다(S680).
갱신된 타임아웃 시간 내에 제2 작업에 대응되는 신호가 수신되지 않는 경우(S670-Y), 전자 장치(100)는 타 전자 장치(200)에 에러가 발생된 것으로 식별하여 타 전자 장치(200)를 리셋하거나 재 부팅할 수 있다.
한편, 제3 작업의 우선 순위가 제2 작업의 우선 순위보다 낮은 경우(S640-N), 제2 작업에 대응되는 신호가 수신되었는지 여부를 식별하고 이후 제3 작업에 대응되는 신호가 수신되었는지 여부를 식별하여 타 전자 장치(200)에서 에러 발생 여부를 판단할 수 있다(S670).
도 7은 본 개시의 일 실시 예에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
전자 장치(100)는 타 전자 장치(200)로부터, 타 전자 장치(200)에서 순차적으로 수행되는 제1 작업 및 제2 작업을 포함하는 스케줄링 정보를 수신할 수 있다(S710).
전자 장치(100)는 스케줄링 정보에 기초하여 획득된 제1 작업 및 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 제1 작업 및 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링할 수 있다(S720).
전자 장치(100)는 제3 작업의 우선 순위가 제2 작업의 우선 순위 보다 높은 경우 제2 작업의 타임아웃 시간을 갱신할 수 있다.
전자 장치(100)는 제3 작업에 대한 정보에 기초하여 제3 작업의 타입을 식별하고, 식별된 타입에 기초하여 제3 작업의 WCET를 획득하고, 제3 작업의 WCET에 기초하여 제2 작업의 타임아웃 시간을 연장할 수 있다. 여기서, 제3 작업에 대한 정보는, 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며, 타 전자 장치(200)로부터 수신된 스케줄링 정보에 포함되지 않은 것일 수 있다.
전자 장치(100)는 제 3작업의 타입에 따라 WCET(Worst Case Execution Time) 를 획득할 수 있다.
전자 장치(100)는 타 외부 장치(미도시)로부터 제3 작업에 대한 정보를 수신할 수 있다. 여기서, 타 외부 장치는, 타 전자 장치(200)에서 수행되는 제3 작업에 의해 획득된 데이터를 타 전자 장치(200)로부터 수신하여 처리하는 장치일 수 있다.
전자 장치(100)는 타 전자 장치(200)로부터 제1 작업에 대응되는 제1 신호가 수신된 후, 제3 작업에 대한 정보가 수신되는 경우, 제2 작업의 타임아웃 시간을 갱신하고, 갱신된 타임아웃 시간 내에 제2 작업에 대응되는 신호의 수신 여부를 모니터링할 수 있다(S730).
한편, 전자 장치(100)는 제3 작업에 대한 정보가 수신되면, 제3 작업에 의해 획득된 데이터를 수신하여 처리하는 타 외부 장치의 제4 작업을 타 외부 장치의 스케줄링 정보에 추가할 수 있다. 여기서, 제4 작업은, 타 외부 장치가 수신된 데이터를 처리하는 작업일 수 있다.
한편, 상술한 전자 장치는, 워치독(watchdog) 기능을 수행하는 모듈을 포함하는 장치일 수 있다.
각 단계의 상세 동작에 대해서는 상술한 바 있으므로 자세한 설명은 생략하도록 한다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은, 기존 전자 장치에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 전자 장치에 구비된 임베디드 서버, 또는 전자 장치 중 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 본 개시의 일시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media에 저장된 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들에 따른 전자 장치를 포함할 수 있다. 명령이 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령에 해당하는 기능을 수행할 수 있다. 명령은 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
또한, 본 개시의 일 실시 예에 따르면, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 다양한 실시 예들에 따른 기기의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 기기에서의 처리 동작을 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
또한, 상술한 다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
100 : 전자 장치 110 : 통신 인터페이스
120 : 프로세서 130 : 메모리
200 : 타 전자 장치 1000 : 전자 시스템

Claims (19)

  1. 회로(circuitry)를 포함하는 통신 인터페이스; 및
    제1 외부 장치로부터, 상기 제1 외부 장치에서 순차적으로 수행되는 제1 작업(task) 및 제2 작업을 포함하는 스케줄링 정보를 상기 통신 인터페이스를 통해 수신하고,
    상기 스케줄링 정보에 기초하여 획득된 상기 제1 작업 및 상기 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 상기 제1 작업 및 상기 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 프로세서;를 포함하고,
    상기 프로세서는,
    상기 제1 외부 장치로부터 상기 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 상기 제2 작업의 타임아웃 시간을 갱신하고 상기 갱신된 타임아웃 시간 내에 상기 제2 작업에 대응되는 신호의 수신 여부를 모니터링하는, 전자 장치.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 제3 작업의 우선 순위가 상기 제2 작업의 우선 순위 보다 높은 경우 상기 제2 작업의 타임아웃 시간을 갱신하는, 전자 장치.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 제3 작업에 대한 정보에 기초하여 상기 제3 작업의 타입을 식별하고, 상기 식별된 타입에 기초하여 상기 제3 작업의 WCET(Worst Case Execution Time)를 획득하고, 상기 제3 작업의 WCET 에 기초하여 상기 제2 작업의 타임아웃 시간을 연장하는, 전자 장치.
  4. 제3항에 있어서,
    상기 연장된 제2 작업의 타임아웃 시간은,
    상기 제2 작업의 WCET 및 상기 제3 작업의 WCET가 합산된 시간인, 전자 장치.
  5. 제1항에 있어서,
    상기 프로세서는,
    제2 외부 장치로부터 상기 제3 작업에 대한 정보를 수신하며,
    상기 제2 외부 장치는, 상기 제1 외부 장치에서 수행되는 상기 제3 작업에 의해 획득된 데이터를 상기 제1 외부 장치로부터 수신하여 처리하는 장치인, 전자 장치.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 제3 작업에 대한 정보가 수신되면 상기 제3 작업에 의해 획득된 데이터를 수신하여 처리하는 제2 외부 장치의 제4 작업을 상기 제2 외부 장치의 스케줄링 정보에 추가하며,
    상기 제4 작업은, 상기 제2 외부 장치에서 상기 수신된 데이터를 처리하는 작업인, 전자 장치.
  7. 제1항에 있어서,
    상기 제3 작업에 대한 정보는,
    상기 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며,
    상기 제1 외부 장치로부터 수신된 상기 스케줄링 정보에 포함되지 않은 것인, 전자 장치.
  8. 제1항에 있어서,
    상기 전자 장치는,
    워치독(watchdog) 모듈을 포함하는 장치인, 전자 장치.
  9. 제1 장치 및 제2 장치를 포함하는 전자 시스템에 있어서,
    상기 제1 장치에서 수행되는 작업에 대한 스케줄링 정보를 상기 제2 장치로 전송하는 제1 장치; 및
    상기 제1 장치로부터, 상기 제1 장치에서 순차적으로 수행되는 제1 작업 및 제2 작업을 포함하는 스케줄링 정보를 수신하고,
    상기 스케줄링 정보에 기초하여 획득된 상기 제1 작업 및 상기 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 상기 제1 작업 및 상기 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 제2 장치;를 포함하며,
    상기 제2 장치는,
    상기 제1 장치로부터 상기 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 상기 제2 작업의 타임아웃 시간을 갱신하고 상기 갱신된 타임아웃 시간 내에 상기 제2 작업에 대응되는 신호의 수신 여부를 모니터링하는, 전자 시스템.
  10. 제9항에 있어서,
    상기 제3 작업에 의해 획득된 데이터를 상기 제1 장치로부터 수신하여 처리하는 제3 장치;를 더 포함하며,
    상기 제2 장치는,
    상기 제3 작업에 대한 정보가 수신되면 상기 제3 장치의 제4 작업을 상기 제3 장치의 스케줄링 정보에 추가하며,
    상기 제4 작업은,
    상기 제3 장치에서 상기 제1 장치로부터 수신된 데이터를 처리하는 작업인, 전자 시스템.
  11. 제9항에 있어서,
    상기 제2 장치는,
    상기 제3 작업의 우선순위가 상기 제2 작업의 우선 순위 보다 높은 경우, 상기 제2 작업의 타임아웃 시간을 갱신하는, 전자 시스템.
  12. 제1 외부 장치로부터, 상기 제1 외부 장치에서 순차적으로 수행되는 제1 작업(task) 및 제2 작업을 포함하는 스케줄링 정보를 수신하는 단계;
    상기 스케줄링 정보에 기초하여 획득된 상기 제1 작업 및 상기 제2 작업 각각의 타임아웃(timeout) 시간에 기초하여 상기 제1 작업 및 상기 제2 작업 각각에 대응되는 신호의 수신 여부를 모니터링하는 단계; 및
    상기 모니터링하는 단계는,
    상기 제1 외부 장치로부터 상기 제1 작업에 대응되는 제1 신호가 수신된 후 제3 작업에 대한 정보가 수신되는 경우, 상기 제2 작업의 타임아웃 시간을 갱신하고, 상기 갱신된 타임아웃 시간 내에 상기 제2 작업에 대응되는 신호의 수신 여부를 모니터링하는, 전자 장치의 제어 방법.
  13. 제12항에 있어서,
    상기 모니터링하는 단계는,
    상기 제3 작업의 우선 순위가 상기 제2 작업의 우선 순위 보다 높은 경우 상기 제2 작업의 타임아웃 시간을 갱신하는, 제어 방법.
  14. 제12항에 있어서,
    상기 모니터링하는 단계는,
    상기 제3 작업에 대한 정보에 기초하여 상기 제3 작업의 타입을 식별하고, 상기 식별된 타입에 기초하여 상기 제3 작업의 WCET를 획득하고, 상기 제3 작업의 WCET 에 기초하여 상기 제2 작업의 타임아웃 시간을 연장하는, 제어 방법.
  15. 제14항에 있어서,
    상기 연장된 제2 작업의 타임아웃 시간은,
    상기 제2 작업의 WCET 및 상기 제3 작업의 WCET가 합산된 시간인, 제어 방법.
  16. 제12항에 있어서,
    상기 모니터링하는 단계는,
    제2 외부 장치로부터 상기 제3 작업에 대한 정보를 수신하며,
    상기 제2 외부 장치는, 상기 제1 외부 장치에서 수행되는 상기 제3 작업에 의해 획득된 데이터를 상기 제1 외부 장치로부터 수신하여 처리하는 장치인, 제어 방법.
  17. 제12항에 있어서,
    상기 제3 작업에 대한 정보가 수신되면 상기 제3 작업에 의해 획득된 데이터를 수신하여 처리하는 제2 외부 장치의 제4 작업을 상기 제2 외부 장치의 스케줄링 정보에 추가하는 단계;를 더 포함하며,
    상기 제4 작업은, 상기 제2 외부 장치에서 상기 수신된 데이터를 처리하는 작업인, 제어 방법.
  18. 제12항에 있어서,
    상기 제3 작업에 대한 정보는,
    상기 제3 작업의 타입 정보 또는 우선 순위 정보 중 적어도 하나를 포함하며,
    상기 제1 외부 장치로부터 수신된 상기 스케줄링 정보에 포함되지 않은 것인, 제어 방법.
  19. 제12항에 있어서,
    상기 전자 장치는,
    워치독(watchdog) 모듈을 포함하는 장치인, 제어 방법.
KR1020190019847A 2019-02-20 2019-02-20 전자 장치 및 그 제어 방법 KR20200101682A (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020190019847A KR20200101682A (ko) 2019-02-20 2019-02-20 전자 장치 및 그 제어 방법
PCT/KR2020/002011 WO2020171472A1 (en) 2019-02-20 2020-02-13 Electronic device and control method thereof
US16/794,400 US11204804B2 (en) 2019-02-20 2020-02-19 Electronic device and control method thereof
CN202010103696.6A CN111596640B (zh) 2019-02-20 2020-02-20 电子装置及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190019847A KR20200101682A (ko) 2019-02-20 2019-02-20 전자 장치 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20200101682A true KR20200101682A (ko) 2020-08-28

Family

ID=72043313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190019847A KR20200101682A (ko) 2019-02-20 2019-02-20 전자 장치 및 그 제어 방법

Country Status (4)

Country Link
US (1) US11204804B2 (ko)
KR (1) KR20200101682A (ko)
CN (1) CN111596640B (ko)
WO (1) WO2020171472A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230032305A1 (en) * 2021-07-30 2023-02-02 Nvidia Corporation Communicating faults to an isolated safety region of a system on a chip
CN114265382A (zh) * 2021-11-12 2022-04-01 潍柴动力股份有限公司 Ecu刷写故障处理方法、装置、电子设备及存储介质

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6370656B1 (en) 1998-11-19 2002-04-09 Compaq Information Technologies, Group L. P. Computer system with adaptive heartbeat
US20050015766A1 (en) * 2003-07-01 2005-01-20 Brian Nash Time deadline based operating system
US20050268300A1 (en) * 2004-05-14 2005-12-01 Microsoft Corporation Distributed task scheduler for computing environments
US20060200705A1 (en) 2005-03-07 2006-09-07 International Business Machines Corporation Method, system and program product for monitoring a heartbeat of a computer application
JP4609381B2 (ja) * 2006-06-14 2011-01-12 株式会社デンソー 異常監視用プログラム、記録媒体及び電子装置
FR2923039A1 (fr) * 2007-10-24 2009-05-01 Centre Nat Rech Scient Procede de gestion des preemptions dans un systeme d'exploitation en temps reel
KR101658035B1 (ko) 2010-03-12 2016-10-04 삼성전자주식회사 가상 머신 모니터 및 가상 머신 모니터의 스케줄링 방법
KR101689736B1 (ko) * 2010-08-18 2016-12-27 삼성전자주식회사 작업 스케쥴링 기능을 구비한 작업 처리장치, 스케쥴링 활성화 제어장치 및 대칭형 멀티프로세싱 환경에서의 작업 스케쥴링 방법
US9745936B2 (en) 2012-02-16 2017-08-29 Delavan Inc Variable angle multi-point injection
KR101489674B1 (ko) 2013-09-13 2015-02-04 국방과학연구소 부하 분산을 위한 다중 경로 지역 최적화 기법
WO2015173533A1 (en) 2014-05-11 2015-11-19 Safetty Systems Ltd. A monitoring unit as well as method for predicting abnormal operation of time-triggered computer systems
GB2526082B (en) * 2014-05-11 2016-03-30 Safetty Systems Ltd A monitoring unit as well as method for predicting abnormal operation of time-triggered computer systems
JP6214469B2 (ja) * 2014-05-26 2017-10-18 日立オートモティブシステムズ株式会社 車両制御装置
KR101673303B1 (ko) * 2014-11-12 2016-11-22 현대자동차주식회사 와치독 제어 방법 및 장치
CN106293979B (zh) 2015-06-25 2019-11-15 伊姆西公司 检测进程无响应的方法和装置
CN106326066B (zh) * 2015-07-07 2019-04-26 北京东土科技股份有限公司 一种嵌入式系统任务响应性能的监测调整的方法及其系统
US9904585B1 (en) 2015-10-06 2018-02-27 Amazon Technologies, Inc. Error handling in executing workflow state machines
US10084678B2 (en) 2016-04-19 2018-09-25 International Business Machines Corporation Managing connections for data communications using heartbeat messaging
EP3296867B1 (en) 2016-09-18 2020-04-01 ESG Elektroniksystem- und Logistik-GmbH Method and apparatus for executing real-time tasks
KR20180099463A (ko) * 2017-02-28 2018-09-05 주식회사 알티스트 모드 변환을 통한 실시간 스케줄링 방법
FR3072197B1 (fr) 2017-10-10 2019-10-11 Krono-Safe Procede d'execution de plans de sequencement assurant une communication a faible latence entre taches temps-reel
WO2021044476A1 (ja) 2019-09-02 2021-03-11 三菱電機株式会社 マルチタスク装置およびマルチタスク方法

Also Published As

Publication number Publication date
CN111596640B (zh) 2023-10-27
CN111596640A (zh) 2020-08-28
US20200264924A1 (en) 2020-08-20
US11204804B2 (en) 2021-12-21
WO2020171472A1 (en) 2020-08-27

Similar Documents

Publication Publication Date Title
US10162673B2 (en) Controller preventing communication collisions between parallel control programs
CN101713970B (zh) 重启飞行控制系统的方法和系统
US10102045B2 (en) Control device, control method and program
US8190941B2 (en) Field control system
US10877803B2 (en) Control apparatus, control method and non-transitory storage medium
KR20200101682A (ko) 전자 장치 및 그 제어 방법
US9875166B2 (en) Method for operating a data processing unit of a driver assistance system and data processing unit
JP7067406B2 (ja) 制御システム、制御装置および制御方法
US20220308548A1 (en) Programmable logic controller, setting tool, and recording medium
US11392412B2 (en) Engineering tool, controller, and control system
US9811149B2 (en) Information processing apparatus, non-transitory computer readable medium, and information processing method
US10891180B2 (en) Multiple-processor error detection system and method thereof
US9829874B2 (en) Numerical control device
US10627784B2 (en) Control system and control device
JP7047728B2 (ja) コントローラ、およびコントローラの制御方法
US11467990B2 (en) Programmable logic controller, external apparatus, method, and recording medium
CN115981924B (zh) 设备控制方法、电子设备及存储介质
US12001538B2 (en) On-board computer, computer execution method, and computer program
US11226603B2 (en) Automation system for process automation and a corresponding method
TWI696904B (zh) 顯示控制裝置、顯示系統、顯示裝置、顯示方法以及顯示程式產品
US20220207129A1 (en) On-board computer, computer execution method, and computer program
JP2018055318A (ja) 電子装置およびプログラム
US20210042154A1 (en) Data processing device, task control method, and program
JP2009288953A (ja) 電子制御装置
JPS6034132B2 (ja) プログラマブル・コントロ−ラ

Legal Events

Date Code Title Description
A201 Request for examination