KR102289140B1 - 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치 - Google Patents
전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치 Download PDFInfo
- Publication number
- KR102289140B1 KR102289140B1 KR1020190158910A KR20190158910A KR102289140B1 KR 102289140 B1 KR102289140 B1 KR 102289140B1 KR 1020190158910 A KR1020190158910 A KR 1020190158910A KR 20190158910 A KR20190158910 A KR 20190158910A KR 102289140 B1 KR102289140 B1 KR 102289140B1
- Authority
- KR
- South Korea
- Prior art keywords
- core
- request signal
- response
- software
- response signal
- 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric 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/02—Electric 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
-
- 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/54—Interprogram communication
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Hardware Redundancy (AREA)
Abstract
본 발명의 다양한 실시 예들은, 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치에 관한 것으로서, 전자 장치는, 메모리, 상기 메모리와 연결되고, 복수의 코어(core)를 포함하는 프로세서를 포함하고, 상기 복수의 코어 중 제1 코어는, 제1 소프트웨어를 실행하고, 상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 요청 신호를 송신하고, 상기 제1 요청 신호를 송신한 것에 응답하여, 대기 상태로 동작하고, 상기 대기 상태로 동작하는 동안 상기 제2 코어로부터 제2 요청 신호가 수신된 것에 응답하여, 상기 제2 요청 신호에 대응하는 응답 신호를 생성하고, 상기 제2 요청 신호에 대응하는 응답 신호를 상기 제2 코어로 송신할 수 있다. 다른 실시 예들도 가능하다.
Description
본 발명의 다양한 실시 예들은 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치에 관한 것이다.
차량은, AVN(audio/video/navigation) 장치, 입출력 제어 시스템, 엔진 관리 시스템(engine management system(EMS)), 변속 관리 시스템(transmission management system(TMS)), 제동 제어 장치(brake-by-wire), 조향 제어 장치 등과 같이, 다양한 전자 장치를 포함할 수 있다.
최근에는, 하드웨어의 효율적인 사용을 위해, 엔진 관리 시스템(EMS)의 소프트웨어와 변속 관리 시스템(TMS)의 소프트웨어를 복수의 코어를 포함하는 하나의 프로세서(또는 CPU)에서 수행하는 기술이 연구되고 있다. 하지만, 하나에 프로세서에 포함된 복수의 코어 각각에서 다른 소프트웨어를 실행하는 경우, 소프트웨어들 간의 상호 요청에 의한 응답 대기에 의해 교착 상태가 발생할 수 있다. 따라서, 하나에 프로세서에 포함된 복수의 코어 각각에서 다른 소프트웨어를 실행하는 경우에 발생될 수 있는 교착 상태를 방지하기 위한 방안(solution)이 요구될 수 있다.
본 발명의 배경기술은 대한민국 등록특허 제10-1911519호(2018.10.18 등록, 차량 및 차량의 제조 방법)에 개시되어 있다.
본 발명의 다양한 실시 예들은, 하나에 프로세서에 포함된 복수의 코어 각각에서 다른 소프트웨어를 실행하는 경우에 발생될 수 있는 교착 상태를 방지하는 방법 및 장치에 관하여 개시한다.
본 발명의 다양한 실시 예들에 따른 전자 장치는, 메모리, 상기 메모리와 연결되고, 복수의 코어(core)를 포함하는 프로세서를 포함하고, 상기 복수의 코어 중 제1 코어는, 제1 소프트웨어를 실행하고, 상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 요청 신호를 송신하고, 상기 제1 요청 신호를 송신한 것에 응답하여, 대기 상태로 동작하고, 상기 대기 상태로 동작하는 동안 상기 제2 코어로부터 제2 요청 신호가 수신된 것에 응답하여, 상기 제2 요청 신호에 대응하는 응답 신호를 생성하고, 상기 제2 요청 신호에 대응하는 응답 신호를 상기 제2 코어로 송신할 수 있다.
다양한 실시 예들에 따르면, 상기 제2 코어는, 제2 소프트웨어를 실행하고, 상기 제2 소프트웨어와 연관된 제2 제어 명령이 수신된 것에 응답하여, 상기 제1 코어로 상기 제2 요청 신호를 송신하고, 상기 제1 요청 신호가 수신된 것에 응답하여, 상기 제1 요청 신호에 대응하는 응답 신호를 생성하고, 상기 제1 요청 신호에 대응하는 응답 신호를 상기 제1 코어로 송신할 수 있다.
다양한 실시 예들에 따르면, 상기 제1 코어는, 상기 제2 코어로부터 상기 제1 요청 신호에 대응하는 응답 신호를 수신하고, 상기 제1 요청 신호에 대응하는 응답 신호에 기반하여 상기 제1 제어 명령에 대응하는 제1 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 상기 제2 코어는, 상기 제1 코어로부터 상기 제2 요청 신호에 대응하는 응답 신호를 수신하고, 상기 제2 요청 신호에 대응하는 응답 신호에 기반하여 상기 제2 제어 명령에 대응하는 제2 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 상기 제1 소프트웨어는, 차량의 엔진 관리 시스템(engine management system(EMS)) 제어기의 소프트웨어 또는 차량의 변속 관리 시스템(transmission management system(TMS)) 제어기의 소프트웨어를 포함하고, 상기 제2 소프트웨어는, 마이크로컨트롤러 추상화 레이어(microcontroller abstraction layer(MCAL))의 소프트웨어를 포함할 수 있다.
본 발명의 다양한 실시 예들에 따른 전자 장치는, 메모리, 상기 메모리와 연결되고, 복수의 코어(core)를 포함하는 프로세서를 포함하고, 상기 복수의 코어 중 제1 코어는, 제1 소프트웨어를 실행하고, 상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 우선 순위를 갖는 제1 요청 신호를 송신하고, 상기 제1 소프트웨어와 연관된 제2 제어 명령이 수신된 것에 응답하여, 상기 제2 코어로 상기 제1 우선 순위보다 높은 제2 우선 순위를 갖는 제2 요청 신호를 송신하고, 상기 제2 요청 신호에 대응하는 응답 신호를 수신한 것에 응답하여, 상기 제2 요청 신호에 대응하는 응답 신호에 기반하여 제2 기능을 수행하고, 상기 제1 요청 신호에 대응하는 응답 신호를 수신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 응답 신호에 기반하여 제1 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 상기 제2 코어는, 제2 소프트웨어를 실행하고, 상기 제1 우선 순위를 갖는 상기 제1 요청 신호를 수신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 응답 신호를 생성하고, 상기 제1 요청 신호에 대응하는 응답 신호를 생성하는 동안, 상기 제2 우선 순위를 갖는 상기 제2 요청 신호를 수신하고, 상기 제2 요청 신호를 수신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 응답 신호를 생성하는 동작을 중지하고, 상기 제2 요청 신호에 대응하는 응답 신호를 생성하고, 상기 제2 요청 신호에 대응하는 응답 신호를 상기 제1 코어로 송신할 수 있다.
다양한 실시 예들에 따르면, 상기 제2 코어는, 상기 제2 요청 신호에 대응하는 응답 신호를 송신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 응답 신호를 생성하는 동작을 재개하고, 상기 제1 요청 신호에 대응하는 응답 신호가 생성되면, 상기 제1 요청 신호에 대응하는 응답 신호를 상기 제1 코어로 송신할 수 있다.
본 발명의 다양한 실시 예들에 따른 전자 장치의 동작 방법은, 전자 장치의 프로세서에 포함된 복수의 코어(core) 중 제1 코어가 제1 소프트웨어를 실행하는 단계, 상기 제1 코어가 상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 요청 신호를 송신하는 단계, 상기 제1 코어가 상기 제1 요청 신호를 송신한 것에 응답하여, 대기 상태로 동작하는 단계, 상기 제1 코어가 상기 대기 상태로 동작하는 동안 상기 제2 코어로부터 제2 요청 신호가 수신된 것에 응답하여, 상기 제2 요청 신호에 대응하는 응답 신호를 생성하는 단계, 및 상기 제1 코어가 상기 제2 요청 신호에 대응하는 응답 신호를 상기 제2 코어로 송신하는 단계를 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치의 동작 방법은, 상기 제2 코어가 제2 소프트웨어를 실행하는 단계, 상기 제2 코어가 상기 제2 소프트웨어와 연관된 제2 제어 명령이 수신된 것에 응답하여, 상기 제1 코어로 상기 제2 요청 신호를 송신하는 단계, 상기 제2 코어가 상기 제1 요청 신호가 수신된 것에 응답하여, 상기 제1 요청 신호에 대응하는 응답 신호를 생성하는 단계, 및 상기 제2 코어가 상기 제1 요청 신호에 대응하는 응답 신호를 상기 제1 코어로 송신하는 단계를 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치의 동작 방법은, 상기 제1 코어가 상기 제2 코어로부터 상기 제1 요청 신호에 대응하는 응답 신호를 수신하는 단계 및 상기 제1 코어가 상기 제1 요청 신호에 대응하는 응답 신호에 기반하여 상기 제1 제어 명령에 대응하는 제1 기능을 수행하는 단계를 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 전자 장치의 동작 방법은, 상기 제2 코어가 상기 제1 코어로부터 상기 제2 요청 신호에 대응하는 응답 신호를 수신하는 단계 및 상기 제2 코어가 상기 제2 요청 신호에 대응하는 응답 신호에 기반하여 상기 제2 제어 명령에 대응하는 제2 기능을 수행하는 단계를 더 포함할 수 있다.
다양한 실시 예들에 따르면, 상기 제1 소프트웨어는, 차량의 엔진 관리 시스템(engine management system(EMS)) 제어기의 소프트웨어 또는 차량의 변속 관리 시스템(transmission management system(TMS)) 제어기의 소프트웨어를 포함하고, 상기 제2 소프트웨어는, 마이크로컨트롤러 추상화 레이어(microcontroller abstraction layer(MCAL))의 소프트웨어를 포함할 수 있다.
본 발명의 다양한 실시 예들은, 하나에 프로세서에 포함된 복수의 코어 각각에서 다른 소프트웨어를 실행하는 동안 소프트웨어들 간의 상호 요청이 발생하는 경우, 응답 대기 시간에 요청에 대응하는 응답을 생성하여 전달함으로써, 교착 상태가 발생하는 것을 방지할 수 있다.
도 1은 다양한 실시 예들에 다른 전자 장치의 블록도이다.
도 2는 다양한 실시 예들에 따른 소프트웨어 플랫폼의 블록도이다.
도 3은 다양한 실시 예들에 따른 전자 장치에서 소프트웨어들 간의 상호 요청에 의한 응답 대기에 의해 교착 상태를 방지하는 방법을 설명하기 위한 흐름도이다.
도 4는 다양한 실시 예들에 따른 전자 장치에서 우선 순위에 기반하여 응답을 생성하는 방법의 일 예를 설명하기 위한 흐름도이다.
도 5는 다양한 실시 예들에 따른 전자 장치에서 우선 순위에 기반하여 응답을 생성하는 방법의 다른 예를 설명하기 위한 흐름도이다.
도 2는 다양한 실시 예들에 따른 소프트웨어 플랫폼의 블록도이다.
도 3은 다양한 실시 예들에 따른 전자 장치에서 소프트웨어들 간의 상호 요청에 의한 응답 대기에 의해 교착 상태를 방지하는 방법을 설명하기 위한 흐름도이다.
도 4는 다양한 실시 예들에 따른 전자 장치에서 우선 순위에 기반하여 응답을 생성하는 방법의 일 예를 설명하기 위한 흐름도이다.
도 5는 다양한 실시 예들에 따른 전자 장치에서 우선 순위에 기반하여 응답을 생성하는 방법의 다른 예를 설명하기 위한 흐름도이다.
이하, 본 문서의 다양한 실시 예들이 첨부된 도면을 참조하여 기재된다. 실시 예 및 이에 사용된 용어들은 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 해당 실시 예의 다양한 변경, 균등물, 및/또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 본 문서에서, "A 또는 B" 또는 "A 및/또는 B 중 적어도 하나" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", "첫째", 또는 "둘째" 등의 표현들은 해당 구성요소들을, 순서 또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에 "(기능적으로 또는 통신적으로) 연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제 3 구성요소)를 통하여 연결될 수 있다.
본 문서에서, "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들어, 하드웨어적 또는 소프트웨어적으로 "~에 적합한", "~하는 능력을 가지는", "~하도록 변경된", "~하도록 만들어진", "~를 할 수 있는", 또는 "~하도록 설계된"과 상호 호환적으로(interchangeably) 사용될 수 있다. 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들어, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(예: CPU 또는 application processor)를 의미할 수 있다.
도 1은 다양한 실시 예들에 다른 전자 장치의 블록도이다.
도 1을 참조하면, 전자 장치(100)는 프로세서(120), 메모리(130), 및 통신 회로(140) 중 적어도 일부를 포함할 수 있다. 다만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 입력 정보를 수신하기 위한 입력 장치 및/또는 정보를 출력하기 위한 출력 장치를 더 포함할 수도 있다.
다양한 실시 예들에 따르면, 프로세서(120)는 운영 체제 또는 어플리케이션을 구동하여 프로세서(120)에 연결된 복수의 하드웨어 또는 소프트웨어 구성요소들을 제어할 수 있고, 각종 데이터 처리 및 연산을 수행할 수 있다. 일 실시 예에 따르면, 프로세서(120)는 SoC(system on chip)로 구현될 수 있다. 프로세서(120)는 다른 구성요소들 중 적어도 하나로부터 수신된 인스트럭션(instruction) 또는 데이터를 메모리(130)에 로드(load)하여 처리하고, 다양한 데이터를 메모리(130)에 저장할 수 있다.
다양한 실시 예들에 따르면, 프로세서(120)는 복수의 코어를 포함하고, 각각의 코어에서 서로 다른 소프트웨어를 실행할 수 있다. 예를 들어, 프로세서(120)는 복수의 코어 중 하나의 코어에서 차량의 엔진 관리 시스템과 연관된 제1 소프트웨어를 실행하고, 복수의 코어 중 다른 하나의 코어에서 차량의 변속 관리 시스템과 연관된 제2 소프트웨어를 실행하고, 복수의 코어 중 또 다른 하나의 코어에서 마이크로컨트롤러 추상화 계층(micro controller abstraction layer(MCAL))과 연관된 제3 소프트웨어를 실행할 수 있다. 제3 소프트웨어는, 제1 소프트웨어와 제2 소프트웨어에서 공통으로 사용되는 기능을 처리하고, 하드웨어의 관리를 위한 기능을 처리하기 위한 소프트웨어일 수 있다.
다양한 실시 예들에 따르면, 프로세서(120)는 통신 회로(140)를 통해 특정 기능(예: 차량의 엔진 관리 시스템과 연관된 제1 기능 또는 차량의 변속 관리 시스템과 연관된 제2 기능)을 수행할 것을 요청하는 제어 명령이 수신된 경우, 제어 명령과 연관된 소프트웨어를 실행하는 코어들을 이용하여 제어 명령에 대응하는 기능을 수행할 수 있다. 예를 들어, 수신된 제어 명령이, 프로세서(120)에 포함된 복수의 코어들 중 제1 코어와 제2 코어에서 실행되는 소프트웨어들과 연관된 경우, 제1 코어와 제2 코어에서 실행되는 소프트웨어들을 이용하여 수신된 제어 명령에 대응하는 기능을 수행할 수 있다. 구체적으로, 제1 코어는 제어 명령이 수신된 것에 응답하여, 제1 제어 명령과 연관된 정보를 요청하는 제1 요청 신호를 제2 코어로 송신하고, 제2 코어로부터 제1 요청 신호에 대응하는 제1 응답 신호를 수신하고, 수신된 제1 응답 신호에 기반하여 제어 명령에 대응하는 기능을 수행할 수 있다. 일 실시 예에 따르면, 제1 코어(예: 제1 소프트웨어 또는 제2 소프트웨어가 실행되는 코어)는 제1 요청 신호를 제2 코어(예: 제3 소프트웨어가 실행되는 코어)로 송신한 이후 제2 코어로부터 제1 응답 신호를 수신하기 이전에 제2 코어로부터 제2 요청 신호를 수신한 경우, 제2 요청 신호에 대응하는 제2 응답 신호를 생성하여 제2 코어로 송신할 수 있다. 제1 코어는 제2 응답 신호를 생성하는 동안 제1 응답 신호가 수신된 경우, 제2 응답 신호를 생성하는 동작을 완료한 이후, 제1 응답 신호에 기반하여 제1 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 프로세서(120)는 제어 명령의 우선 순위에 기반하여 제어 명령에 대응하는 기능을 수행할 수 있다. 예를 들어, 제1 코어는, 제2 코어로부터 제1 우선 순위를 갖는 제1 요청 신호를 수신함에 따라 제1 요청 신호에 대응하는 제1 응답 신호를 생성하는 동안 제1 코어로부터 제1 우선순위보다 높은 제2 우선 순위를 갖는 제2 요청 신호를 수신한 경우, 제1 응답 신호를 생성하는 동작을 중지하고, 제2 요청 신호에 대응하는 제2 응답 신호를 생성하여 제1 코어로 송신할 수 있다. 제2 코어는, 제2 응답 신호를 송신한 이후, 제1 응답 신호를 생성하는 동작을 재개함으로써, 제1 응답 신호를 생성하고, 제1 응답 신호를 제2 코어로 송신할 수 있다.
다양한 실시 예들에 따르면, 통신 회로(140)는 전자 장치(100)와 외부 전자 장치 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다.
도 2는 다양한 실시 예들에 따른 소프트웨어 플랫폼의 블록도이다.
다양한 실시 예들에 따르면, 도 2의 소프트웨어 플랫폼은 엔진 관리 시스템 제어기 및 변속 관리 시스템 제어기의 소프트웨어를 복수의 코어를 포함하는 하나의 프로세서에서 실행되도록 설계될 수 잇다.
도 2를 참조하면, 소프트웨어 플랫폼은, 제1 소프트웨어(201), 제2 소프트웨어(203), 제3 소프트웨어(205), 및 하드웨어(207)를 포함할 수 있다.
다양한 실시 예들에 따르면, 제1 소프트웨어(201)는 차량의 엔진 관리 시스템 제어기의 소프트웨어를 포함하고, 제2 소프트웨어(203)는 차량의 변속 관리 시스템 제어기의 소프트웨어를 포함하고, 제3 소프트웨어(205)는 마이크로프로세서 추상화 계층의 소프트웨어를 포함할 수 있다. 일 실시 예에 따르면, 제1 소프트웨어(201), 제2 소프트웨어(203), 및 제3 소프트웨어(205)는 하드웨어(207)에서 실행될 수 있다.
다양한 실시 예들에 따르면, 제1 소프트웨어(201)는 차량의 엔진 관리 시스템의 기능을 수행할 것을 요청하는 제어 명령이 수신된 경우, 제어 명령에 대응하는 기능을 수행할 수 있다. 예를 들어, 제1 소프트웨어(201)는 차량의 엔진 관리 시스템의 기능을 수행하는 제어 명령이 수신된 경우, 제3 소프트웨어(205)로 제어 명령에 대응하는 기능과 연관된 정보를 제공할 것을 요청하는 요청 신호를 송신하고, 제3 소프트웨어(205)로부터 응답 신호가 수신되면, 수신된 응답 신호에 기반하여 제어 명령에 대응하는 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 제2 소프트웨어(203)는 차량의 변속 관리 시스템의 기능을 수행할 것을 요청하는 제어 명령이 수신된 경우, 제어 명령에 대응하는 기능을 수행할 수 있다. 예를 들어, 제2 소프트웨어(203)는 차량의 변속 관리 시스템의 기능을 수행하는 제어 명령이 수신된 경우, 제3 소프트웨어(205)로 제어 명령에 대응하는 기능과 연관된 정보를 제공할 것을 요청하는 요청 신호를 송신하고, 제3 소프트웨어(205)로부터 응답 신호가 수신되면, 수신된 응답 신호에 기반하여 제어 명령에 대응하는 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 제3 소프트웨어(205)는 차량의 엔진 관리 시스템의 기능 또는 차량의 변속 관리 시스템의 기능과 연관된 정보를 제1 소프트웨어(201) 또는 제2 소프트웨어(203)로 제공할 수 있다. 예를 들어, 제3 소프트웨어(205)는 제1 소프트웨어(201) 또는 제2 소프트웨어(203)로부터 제어 명령에 대응하는 기능과 연관된 정보를 요청하는 요청 신호가 수신되면, 수신된 요청 신호에 대응하는 응답 신호를 생성하여 제1 소프트웨어(201) 또는 제2 소프트웨어(203)로 송신할 수 있다.
다양한 실시 예들에 따르면, 제3 소프트웨어(205)는 응답 신호를 생성하는 동안, 필요한 정보를 획득하기 위해 제1 소프트웨어(201) 또는 제2 소프트웨어(203)로 정보를 요청하는 요청 신호를 송신할 수 있다. 예를 들어, 제3 소프트웨어(205)는 제1 소프트웨어(201) 또는 제2 소프트웨어(203)로 정보를 요청하는 요청 신호를 송신하고, 제1 소프트웨어(201) 또는 제2 소프트웨어(203)로부터 응답 신호를 수신함으로서, 필요한 정보를 획득할 수 있다.
다양한 실시 예들에 따르면, 제3 소프트웨어(205)는 전자 장치(예: 도 1의 전자 장치(100))의 하드웨어 관리를 위한 기능을 수행하는 제어 명령이 수신된 경우, 수신된 명령에 대응하는 기능을 수행할 수 있다. 예를 들어, 제3 소프트웨어(205)는 차량의 엔진 관리 시스템과 연관된 하드웨어의 관리 기능을 수행할 것을 요청하는 제어 명령이 수신된 경우, 제1 소프트웨어(201)로 제어 명령에 대응하는 기능과 연관된 정보를 제공할 것을 요청하는 요청 신호를 송신하고, 제1 소프트웨어(201)로부터 응답 신호가 수신되면, 수신된 응답 신호에 기반하여 제어 명령에 대응하는 기능을 수행할 수 있다. 다른 예를 들어, 제3 소프트웨어(205)는 차량의 변속 관리 시스템과 연관된 하드웨어의 관리 기능을 수행할 것을 요청하는 제어 명령이 수신된 경우, 제2 소프트웨어(203)로 제어 명령에 대응하는 기능과 연관된 정보를 제공할 것으로 요청하는 요청 신호를 송신하고, 제2 소프트웨어(203)로부터 응답 신호가 수신되면, 수신된 응답 신호에 기반하여 제어 명령에 대응하는 기능을 수행할 수 있다.
다양한 실시 예들에 따르면, 제1 소프트웨어(201), 제2 소프트웨어(203), 또는 제3 소프트웨어(205)는 다른 소프트웨어로 요청 신호를 송신한 이후, 다른 소프트웨어로부터 요청 신호에 대한 응답 신호가 수신되기 이전까지 대기 상태를 유지할 수 있다. 일 실시 예에 따르면, 제1 소프트웨어(201), 제2 소프트웨어(203), 또는 제3 소프트웨어(205)는 대기 상태인 동안, 다른 소프트웨어로부터 요청 신호가 수신되면, 수신된 요청 신호에 대응하는 응답 신호를 생성하고, 생성된 응답 신호를 다른 소프트웨어로 송신할 수 있다.
다양한 실시 예들에 따르면, 제1 소프트웨어(201), 제2 소프트웨어(203), 또는 제3 소프트웨어(205)는 다른 소프트웨어로부터 수신된 요청 신호에 대응하는 응답 신호를 생성하는 동안, 다른 소프트웨어로부터 다른 요청 신호가 수신되면, 수신된 요청 신호들의 우선 순위에 기반하여 응답 신호의 생성 순서를 결정할 수 있다. 예를 들어, 제1 소프트웨어(201), 제2 소프트웨어(203), 또는 제3 소프트웨어(205)는 다른 소프트웨어로부터 제1 우선 순위를 갖는 제1 요청 신호를 수신함에 따라 제1 요청 신호에 대응하는 제1 응답 신호를 생성하고, 제1 응답 신호를 생성하는 동안, 다른 소프트웨어로부터 제1 우선 순위보다 높은 제2 우선 순위를 갖는 제2 요청 신호가 수신된 경우, 제1 응답 신호를 생성하는 동작을 중지하고, 제2 요청 신호에 대응하는 제2 응답 신호를 생성할 수 있다. 이 경우, 제1 소프트웨어(201), 제2 소프트웨어(203), 또는 제3 소프트웨어(205)는 제2 응답 신호를 다른 소프트웨어로 송신한 이후, 제1 응답 신호를 생성하는 동작을 재개할 수 있다.
도 3은 다양한 실시 예들에 따른 전자 장치에서 소프트웨어들 간의 상호 요청에 의한 응답 대기에 의해 교착 상태를 방지하는 방법을 설명하기 위한 흐름도이다. 이하 설명에서, 전자 장치는 도 1의 전자 장치(100)의 적어도 일부를 포함할 수 있다.
동작 305에서, 전자 장치의 프로세서에 포함된 복수의 코어들 중 제1 코어(301)는 제1 소프트웨어(예: 도 2의 제1 소프트웨어(201) 또는 도 2의 제2 소프트웨어(203))를 실행할 수 있다. 일 실시 예에 따르면, 제1 소프트웨어는 차량의 엔진 관리 시스템 제어기의 소프트웨어 또는 차량의 변속 관리 시스템 제어기의 소프트웨어를 포함할 수 있다.
동작 307에서, 전자 장치의 프로세서에 포함된 복수의 코어들 중 제2 코어(303)는 제2 소프트웨어(예: 도 2의 제3 소프트웨어(205))를 실행할 수 있다. 일 실시 예에 따르면, 제2 소프트웨어는 마이크로컨트롤러 추상화 계층과 연관된 소프트웨어를 포함할 수 있다. 일 실시 예에 따르면, 동작 305와 동작 307은 병렬적으로 수행될 수 있다.
동작 309에서, 제1 코어(301)는 차량의 엔진 관리 시스템의 기능 또는 차량의 변속 관리 시스템의 기능과 연관된 제어 명령이 수신된 것에 응답하여, 제어 명령에 대응하는 기능을 수행하기 위해 제2 코어(303)로 제1 요청 신호를 송신할 수 있다. 일 실시 예에 따르면, 제1 코어(301)는 제1 요청 신호를 송신한 것에 응답하여 대기 상태를 동작할 수 있다.
동작 311에서, 제2 코어(303)는 하드웨어 관리 기능과 연관된 제어 명령이 수신된 것에 응답하여, 제어 명령에 대응하는 기능을 수행하기 위해 제1 코어(301)로 제2 요청 신호를 송신할 수 있다. 일 실시 예에 따르면, 제1 요청 신호를 송신하는 동작 309와 제2 요청 신호를 송신하는 동작 311은 실질적으로 동시에 수행되거나 일정 시간 내에 수행될 수 있다.
동작 313에서, 제1 코어(301)는 대기 상태로 동작하는 동안, 제2 요청 신호가 수신된 것에 응답하여, 제2 요청 신호에 대응하는 제2 응답 신호를 생성할 수 있다.
동작 315에서, 제2 코어(303)는 제1 요청 신호가 수신된 것에 응답하여, 제1 요청 신호에 대응하는 제1 응답 신호를 생성할 수 있다.
동작 317에서, 제1 코어(301)는 제2 응답 신호를 생성한 것에 응답하여, 제2 응답 신호를 제2 코어(303)로 송신할 수 있다.
동작 319에서, 제2 코어(303)는 제1 응답 신호를 생성한 것에 응답하여, 제1 응답 신호를 제1 코어(301)로 송신할 수 있다. 일 실시 예에 따르면, 동작 319는 동작 317과 병렬적으로 수행될 수 있다.
동작 321에서, 제1 코어(301)는 수신된 제1 응답 신호에 기반하여 제어 명령에 대응하는 제1 기능을 수행할 수 있다.
동작 323에서, 제2 코어(303)는 수신된 제2 응답 신호에 기반하여 제어 명령에 대응하는 제2 기능을 수행할 수 있다. 일 실시 예에 따르면, 동작 323은 동작 321과 병렬적으로 수행될 수 있다.
상술한 바와 같이, 전자 장치는 각각의 코어에서 서로 다른 소프트웨어가 구동되는 동안, 각각의 코어 간의 상호 요청이 발생하면, 각각의 코어가 대기 상태로 동작하더라도, 요청에 대응하는 응답을 제공함으로써, 교착 상태가 발생하는 것을 방지할 수 있다.
도 4는 다양한 실시 예들에 따른 전자 장치에서 우선 순위에 기반하여 응답을 생성하는 방법의 일 예를 설명하기 위한 흐름도이다. 이하 설명에서, 전자 장치는 도 1의 전자 장치(100)의 적어도 일부를 포함할 수 있다.
동작 405에서, 전자 장치의 프로세서에 포함된 복수의 코어들 중 제1 코어(401)는 제1 소프트웨어를 실행할 수 있다. 일 실시 예에 따르면, 제1 소프트웨어는 차량의 엔진 관리 시스템 제어기의 소프트웨어 또는 차량의 변속 관리 시스템 제어기의 소프트웨어를 포함할 수 있다.
동작 407에서, 전자 장치의 프로세서에 포함된 복수의 코어들 중 제2 코어(403)는 제2 소프트웨어를 실행할 수 있다. 일 실시 예에 따르면, 제2 소프트웨어는 마이크로컨트롤러 추상화 계층과 연관된 소프트웨어를 포함할 수 있다. 일 실시 예에 따르면, 동작 407은 동작 405와 병렬적으로 수행될 수 있다.
동작 409에서, 제1 코어(401)는 차량의 엔진 관리 시스템의 기능 또는 차량의 변속 관리 시스템의 제1 기능을 수행할 것을 요청하는 제어 명령을 수신한 것에 응답하여, 제1 우선 순위를 갖는 제1 요청 신호를 제2 코어(403)로 송신할 수 있다.
동작 411에서, 제2 코어(403)는 제1 요청 신호를 수신한 것에 응답하여, 제1 요청 신호에 대응하는 제1 응답 신호를 생성할 수 있다.
동작 413에서, 제1 코어(401)는 차량의 엔진 관리 시스템의 기능 또는 차량의 변속 관리 시스템의 제2 기능을 수행할 것을 요청하는 제어 명령을 수신한 것에 응답하여, 제2 우선 순위를 갖는 제2 요청 신호를 제2 코어(403)로 송신할 수 있다. 일 실시 예에 따르면, 제2 우선 순위는 제1 우선 순위보다 높을 수 있다. 일 실시 예에 따르면, 요청 신호의 우선 순위는, 제어 명령 또는 제어 명령에 대응하는 기능별로 할당되며, 빠른 수행이 필요한 제어 명령 또는 기능에 높은 우선 순위가 할당될 수 있다.
동작 415에서, 제2 코어(403)는 제1 응답 신호를 생성하는 동작을 중지하고, 제2 요청 신호에 대응하는 제2 응답 신호를 생성할 수 있다. 예를 들어, 제2 코어(403)는 제2 요청 신호의 제2 우선 순위와 제1 요청 신호의 제1 우선 순위를 비교하고, 제2 요청 신호의 제2 우선 순위가 제1 요청 신호의 제1 우선 순위보다 높음을 식별한 것에 응답하여, 제2 요청 신호에 대응하는 제2 응답 신호를 먼저 생성하기 위해, 제1 응답 신호를 생성하는 동작을 중지하고, 제2 요청 신호에 대응하는 제2 응답 신호를 생성할 수 있다.
동작 417에서, 제2 코어(403)는 제2 응답 신호가 생성된 것에 응답하여, 제2 응답 신호를 제1 코어(401)로 송신할 수 있다.
동작 419에서, 제1 코어(401)는 수신된 제2 응답 신호에 기반하여 제2 기능을 수행할 수 있다.
동작 421에서, 제2 코어(403)는 제2 응답 신호를 송신한 것에 응답하여, 제1 요청 신호에 대응하는 제1 응답 신호를 생성하는 동작을 재개할 수 있다. 일 실시 예에 따르면, 동작 421은 동작 419와 병렬적으로 수행될 수 있다.
동작 423에서, 제2 코어(403)는 제1 응답 신호가 생성된 것에 응답하여, 제1 응답 신호를 제1 코어(401)로 송신할 수 있다.
동작 425에서, 제1 코어(401)는 수신된 제1 응답 신호에 기반하여 제1 기능을 수행할 수 있다.
상술한 바와 같이, 전자 장치는 각각의 코어에서 서로 다른 소프트웨어가 구동되는 동안, 각각의 코어 간의 상호 요청이 발생하면, 요청에 대응하는 우선 순위에 기반하여 응답의 생성 및 제공 순서를 결정함으로써, 빠른 수행이 필요한 기능을 우선적으로 제공할 수 있다.
도 5는 다양한 실시 예들에 따른 전자 장치에서 우선 순위에 기반하여 응답을 생성하는 방법의 다른 예를 설명하기 위한 흐름도이다. 이하 설명에서, 전자 장치는 도 1의 전자 장치(100)의 적어도 일부를 포함할 수 있다.
동작 505에서, 전자 장치의 프로세서에 포함된 복수의 코어들 중 제1 코어(501)는 제1 소프트웨어를 실행할 수 있다. 일 실시 예에 따르면, 제1 소프트웨어는 차량의 엔진 관리 시스템 제어기의 소프트웨어 또는 차량의 변속 관리 시스템 제어기의 소프트웨어를 포함할 수 있다.
동작 507에서, 전자 장치의 프로세서에 포함된 복수의 코어들 중 제2 코어(503)는 제2 소프트웨어를 실행할 수 있다. 일 실시 예에 따르면, 제2 소프트웨어는 마이크로컨트롤러 추상화 계층과 연관된 소프트웨어를 포함할 수 있다. 일 실시 예에 따르면, 동작 507은 동작 505와 병렬적으로 수행될 수 있다.
동작 509에서, 제1 코어(501)는 차량의 엔진 관리 시스템의 기능 또는 차량의 변속 관리 시스템의 제1 기능을 수행할 것을 요청하는 제어 명령을 수신한 것에 응답하여, 제2 우선 순위를 갖는 제1 요청 신호를 제2 코어(503)로 송신할 수 있다.
동작 511에서, 제2 코어(503)는 제1 요청 신호를 수신한 것에 응답하여, 제1 요청 신호에 대응하는 제1 응답 신호를 생성할 수 있다.
동작 513에서, 제1 코어(501)는 차량의 엔진 관리 시스템의 기능 또는 차량의 변속 관리 시스템의 제2 기능을 수행할 것을 요청하는 제어 명령을 수신한 것에 응답하여, 제1 우선 순위를 갖는 제2 요청 신호를 제2 코어(503)로 송신할 수 있다. 일 실시 예에 따르면, 제1 우선 순위는 제2 우선 순위보다 낮을 수 있다. 일 실시 예에 따르면, 요청 신호의 우선 순위는, 제어 명령 또는 제어 명령에 대응하는 기능별로 할당되며, 빠른 수행이 필요한 제어 명령 또는 기능에 높은 우선 순위가 할당될 수 있다.
동작 515에서, 제2 코어(503)는 제1 응답 신호를 생성하는 동작을 유지할 수 있다. 예를 들어, 제2 코어(503)는 제1 요청 신호의 제2 우선 순위와 제2 요청 신호의 제1 우선 순위를 비교하고, 제1 요청 신호의 제2 우선 순위가 제2 요청 신호의 제1 우선 순위보다 높음을 식별한 것에 응답하여, 제1 요청 신호에 대응하는 제1 응답 신호를 먼저 생성하기 위해, 제1 응답 신호를 생성하는 동작을 유지할 수 있다.
동작 517에서, 제2 코어(503)는 제1 응답 신호가 생성된 것에 응답하여, 제1 응답 신호를 제1 코어(501)로 송신할 수 있다.
동작 519에서, 제1 코어(501)는 수신된 제1 응답 신호에 기반하여 제1 기능을 수행할 수 있다.
동작 521에서, 제2 코어(503)는 제1 응답 신호를 송신한 것에 응답하여, 제2 요청 신호에 대응하는 제2 응답 신호를 생성할 수 있다. 일 실시 예에 따르면, 동작 521은 동작 519와 병렬적으로 수행될 수 있다.
동작 523에서, 제2 코어(503)는 제2 응답 신호가 생성된 것에 응답하여, 제2 응답 신호를 제1 코어(501)로 송신할 수 있다.
동작 525에서, 제1 코어(501)는 수신된 제1 응답 신호에 기반하여 제1 기능을 수행할 수 있다.
상술한 바와 같이, 전자 장치는 각각의 코어에서 서로 다른 소프트웨어가 구동되는 동안, 각각의 코어 간의 상호 요청이 발생하면, 요청에 대응하는 우선 순위에 기반하여 응답의 생성 및 제공 순서를 결정함으로써, 빠른 수행이 필요한 기능을 우선적으로 제공할 수 있다.
다양한 실시 예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시 예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
100 : 전자 장치
120 : 프로세서
130 : 메모리
140 : 통신 회로
120 : 프로세서
130 : 메모리
140 : 통신 회로
Claims (13)
- 메모리;
상기 메모리와 연결되고, 복수의 코어(core)를 포함하는 프로세서를 포함하고,
상기 복수의 코어 중 제1 코어는,
제1 소프트웨어를 실행하고,
상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 요청 신호를 송신하고,
상기 제1 요청 신호를 송신한 것에 응답하여, 대기 상태로 동작하고,
상기 대기 상태로 동작하는 동안 상기 제2 코어로부터 제1 우선 순위를 갖는 제2 요청 신호와, 상기 제1 우선 순위와는 다른 값의 제2 우선 순위를 갖는 제3 요청 신호가 수신된 경우, 상기 제2 요청 신호에 대응하는 제2 응답 신호와 상기 제3 요청 신호에 대응하는 제3 응답 신호를 생성하여 상기 제2 코어로 송신하되,
상기 제2 응답 신호 및 상기 제3 응답 신호가 상기 제1 코어로부터 상기 제2 코어로 송신되는 시점은, 상기 제1 우선 순위 및 상기 제2 우선 순위의 크기에 따라 결정되는, 전자 장치.
- 제1항에 있어서,
상기 제2 코어는,
제2 소프트웨어를 실행하고,
상기 제2 소프트웨어와 연관된 제2 제어 명령이 수신된 것에 응답하여, 상기 제1 코어로 상기 제2 요청 신호를 송신하고,
상기 제1 요청 신호가 수신된 것에 응답하여, 상기 제1 요청 신호에 대응하는 제1 응답 신호를 생성하고, 및
상기 제1 요청 신호에 대응하는 제1 응답 신호를 상기 제1 코어로 송신하는 전자 장치.
- 제2항에 있어서,
상기 제1 코어는,
상기 제2 코어로부터 상기 제1 요청 신호에 대응하는 제1 응답 신호를 수신하고, 및
상기 제1 요청 신호에 대응하는 제1 응답 신호에 기반하여 상기 제1 제어 명령에 대응하는 제1 기능을 수행하는 전자 장치.
- 제2항에 있어서,
상기 제2 코어는,
상기 제1 코어로부터 상기 제2 요청 신호에 대응하는 제2 응답 신호를 수신하고, 및
상기 제2 요청 신호에 대응하는 제2 응답 신호에 기반하여 상기 제2 제어 명령에 대응하는 제2 기능을 수행하는 전자 장치.
- 제2항에 있어서,
상기 제1 소프트웨어는, 차량의 엔진 관리 시스템(engine management system(EMS)) 제어기의 소프트웨어 또는 차량의 변속 관리 시스템(transmission management system(TMS)) 제어기의 소프트웨어를 포함하고,
상기 제2 소프트웨어는, 마이크로컨트롤러 추상화 레이어(microcontroller abstraction layer(MCAL))의 소프트웨어를 포함하는 전자 장치.
- 메모리;
상기 메모리와 연결되고, 복수의 코어(core)를 포함하는 프로세서를 포함하고,
상기 복수의 코어 중 제1 코어는,
제1 소프트웨어를 실행하고,
상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 우선 순위를 갖는 제1 요청 신호를 송신하고,
상기 제1 소프트웨어와 연관된 제2 제어 명령이 수신된 것에 응답하여, 상기 제2 코어로 상기 제1 우선 순위보다 높은 제2 우선 순위를 갖는 제2 요청 신호를 송신하고,
상기 제2 요청 신호에 대응하는 제2 응답 신호를 수신한 것에 응답하여, 상기 제2 요청 신호에 대응하는 제2 응답 신호에 기반하여 제2 기능을 수행하고,
상기 제1 요청 신호에 대응하는 제1 응답 신호를 수신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 제1 응답 신호에 기반하여 제1 기능을 수행하되,
상기 제2 응답 신호가 상기 제1 코어에 의해 수신되는 시점은 상기 제1 응답 신호가 상기 제1 코어에 의해 수신되는 시점보다 앞서는, 전자 장치.
- 제6항에 있어서,
상기 제2 코어는,
제2 소프트웨어를 실행하고,
상기 제1 우선 순위를 갖는 상기 제1 요청 신호를 수신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 제1 응답 신호를 생성하고,
상기 제1 요청 신호에 대응하는 제1 응답 신호를 생성하는 동안, 상기 제2 우선 순위를 갖는 상기 제2 요청 신호를 수신하고,
상기 제2 요청 신호를 수신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 제1 응답 신호를 생성하는 동작을 중지하고,
상기 제2 요청 신호에 대응하는 제2 응답 신호를 생성하고, 및
상기 제2 요청 신호에 대응하는 제2 응답 신호를 상기 제1 코어로 송신하는 전자 장치.
- 제7항에 있어서,
상기 제2 코어는,
상기 제2 요청 신호에 대응하는 제2 응답 신호를 송신한 것에 응답하여, 상기 제1 요청 신호에 대응하는 제1 응답 신호를 생성하는 동작을 재개하고, 및
상기 제1 요청 신호에 대응하는 제1 응답 신호가 생성되면, 상기 제1 요청 신호에 대응하는 제1 응답 신호를 상기 제1 코어로 송신하는 전자 장치.
- 전자 장치의 프로세서에 포함된 복수의 코어(core) 중 제1 코어가 제1 소프트웨어를 실행하는 단계;
상기 제1 코어가 상기 제1 소프트웨어와 연관된 제1 제어 명령이 수신된 것에 응답하여, 상기 복수의 코어 중 제2 코어로 제1 요청 신호를 송신하는 단계;
상기 제1 코어가 상기 제1 요청 신호를 송신한 것에 응답하여, 대기 상태로 동작하는 단계;
상기 제1 코어가 상기 대기 상태로 동작하는 동안 상기 제2 코어로부터 제1 우선 순위를 갖는 제2 요청 신호와, 상기 제1 우선 순위와는 다른 값의 제2 우선 순위를 갖는 제3 요청 신호가 수신된 경우, 상기 제2 요청 신호에 대응하는 제2 응답 신호와 상기 제3 요청 신호에 대응하는 제3 응답 신호를 생성하는 단계; 및
상기 제1 코어가 상기 제2 요청 신호에 대응하는 제2 응답 신호와 상기 제3 요청 신호에 대응하는 제3 응답 신호를 상기 제2 코어로 송신하는 단계를 포함하고,
상기 제2 응답 신호 및 상기 제3 응답 신호가 상기 제1 코어로부터 상기 제2 코어로 송신되는 시점은, 상기 제1 우선 순위 및 상기 제2 우선 순위의 크기에 따라 결정되는, 전자 장치의 동작 방법.
- 제9항에 있어서,
상기 제2 코어가 제2 소프트웨어를 실행하는 단계;
상기 제2 코어가 상기 제2 소프트웨어와 연관된 제2 제어 명령이 수신된 것에 응답하여, 상기 제1 코어로 상기 제2 요청 신호를 송신하는 단계;
상기 제2 코어가 상기 제1 요청 신호가 수신된 것에 응답하여, 상기 제1 요청 신호에 대응하는 제1 응답 신호를 생성하는 단계; 및
상기 제2 코어가 상기 제1 요청 신호에 대응하는 제1 응답 신호를 상기 제1 코어로 송신하는 단계를 더 포함하는 전자 장치의 동작 방법.
- 제10항에 있어서,
상기 제1 코어가 상기 제2 코어로부터 상기 제1 요청 신호에 대응하는 제1 응답 신호를 수신하는 단계; 및
상기 제1 코어가 상기 제1 요청 신호에 대응하는 제1 응답 신호에 기반하여 상기 제1 제어 명령에 대응하는 제1 기능을 수행하는 단계를 더 포함하는 전자 장치의 동작 방법.
- 제10항에 있어서,
상기 제2 코어가 상기 제1 코어로부터 상기 제2 요청 신호에 대응하는 제2 응답 신호를 수신하는 단계; 및
상기 제2 코어가 상기 제2 요청 신호에 대응하는 제2 응답 신호에 기반하여 상기 제2 제어 명령에 대응하는 제2 기능을 수행하는 단계를 더 포함하는 전자 장치의 동작 방법.
- 제10항에 있어서,
상기 제1 소프트웨어는, 차량의 엔진 관리 시스템(engine management system(EMS)) 제어기의 소프트웨어 또는 차량의 변속 관리 시스템(transmission management system(TMS)) 제어기의 소프트웨어를 포함하고,
상기 제2 소프트웨어는, 마이크로컨트롤러 추상화 레이어(microcontroller abstraction layer(MCAL))의 소프트웨어를 포함하는 전자 장치의 동작 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190158910A KR102289140B1 (ko) | 2019-12-03 | 2019-12-03 | 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190158910A KR102289140B1 (ko) | 2019-12-03 | 2019-12-03 | 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210069761A KR20210069761A (ko) | 2021-06-14 |
KR102289140B1 true KR102289140B1 (ko) | 2021-08-13 |
Family
ID=76417485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190158910A KR102289140B1 (ko) | 2019-12-03 | 2019-12-03 | 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102289140B1 (ko) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101100439B1 (ko) | 2010-12-16 | 2011-12-30 | 한국과학기술연구원 | 멀티코어 환경에서의 효율적인 적시 컴파일 수행 방법 |
JP2015039983A (ja) * | 2013-08-22 | 2015-03-02 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2062603A1 (en) * | 1991-06-28 | 1992-12-29 | Christopher P. Puchalla | One-piece transmission band |
KR101080845B1 (ko) * | 2009-10-30 | 2011-11-07 | (주)지노게임즈 | 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 |
US10977092B2 (en) * | 2015-10-16 | 2021-04-13 | Qualcomm Incorporated | Method for efficient task scheduling in the presence of conflicts |
-
2019
- 2019-12-03 KR KR1020190158910A patent/KR102289140B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101100439B1 (ko) | 2010-12-16 | 2011-12-30 | 한국과학기술연구원 | 멀티코어 환경에서의 효율적인 적시 컴파일 수행 방법 |
JP2015039983A (ja) * | 2013-08-22 | 2015-03-02 | 日立オートモティブシステムズ株式会社 | 車両制御装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20210069761A (ko) | 2021-06-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101664108B1 (ko) | 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법 | |
US10846124B2 (en) | Communication method, apparatus and system for virtual machine and host machine | |
KR101080845B1 (ko) | 교착 상태의 방지를 위한 데이터 처리 방법 및 시스템 | |
WO2009147802A1 (ja) | 優先度制御装置及び優先度制御方法 | |
US8245231B2 (en) | Method of launching low-priority tasks | |
US20140137091A1 (en) | Automobile open system architecture(autosar)-based electronic control unit (ecu) and method for updating ecu | |
US20140196034A1 (en) | Virtual machine control apparatus and virtual machine control method | |
CN110971591B (zh) | 一种多进程访问可信应用的方法和系统 | |
CN110058926B (zh) | 用于处理gpu任务的方法、设备和计算机可读介质 | |
CN108292244B (zh) | 数据处理装置、数据处理方法及计算机可读取的记录介质 | |
JP2016532950A (ja) | I/oプロトコルまたはターゲットデバイスによってサポートされないときにキューバリアを設けること | |
KR102289140B1 (ko) | 전자 장치에서 소프트웨어를 실행하는 방법 및 그 전자 장치 | |
KR102109125B1 (ko) | Autosar 기반 차량 ecu 상태 관리 방법 | |
KR20180052930A (ko) | 클라우드 기반의 스마트 팩토리 서비스 제공 방법 및 장치 | |
US8806082B2 (en) | Direct memory access device for multi-core system and operating method of the same | |
US8909873B2 (en) | Traffic control method and apparatus of multiprocessor system | |
KR20220074993A (ko) | 콘트롤러 | |
CN103003772A (zh) | 电子电路、安全关键系统以及用于提供重置信号的方法 | |
JP7057328B2 (ja) | 車両制御装置、及び車両制御方法 | |
KR102287300B1 (ko) | 데이터 처리 아키텍쳐 및 데이터 처리 방법 | |
US11782702B2 (en) | Generation of code for a system | |
KR102300908B1 (ko) | 다중 코어 제어 방법 | |
JP2019164621A (ja) | 起動制御ユニット、制御システムおよび起動制御方法 | |
US12112206B2 (en) | Control device for controlling multiple applications based on priority-based message encryption arbitration | |
JP6138482B2 (ja) | 組み込みシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right |