KR20160087274A - 오토사 기반의 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량 - Google Patents
오토사 기반의 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량 Download PDFInfo
- Publication number
- KR20160087274A KR20160087274A KR1020150006394A KR20150006394A KR20160087274A KR 20160087274 A KR20160087274 A KR 20160087274A KR 1020150006394 A KR1020150006394 A KR 1020150006394A KR 20150006394 A KR20150006394 A KR 20150006394A KR 20160087274 A KR20160087274 A KR 20160087274A
- Authority
- KR
- South Korea
- Prior art keywords
- core
- electronic control
- function
- control unit
- sub
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛 멀티코어 아키텍처는, BSW(Basic Software) 및 제1 기능을 수행하는 메인 코어(main core), 및, 메인 코어와 통신하고, 제2 기능을 수행하는 제1 서브 코어(sub core)를 포함하고, 메인 코어가 수행하는 제1 기능과 제1 서브 코어가 수행하는 제2 기능은, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당되는 것을 특징으로 하고, 본 발명의 일실시예에 따른 차량은, 각각, BSW 및 소정 기능을 수행하는 메인 코어(main core) 및, 메인 코어와 통신하고, 메인 코어와 다른 기능을 수행하는 제1 서브 코어(sub core)를 구비하는 제1,2 전자제어유닛들을 포함하고, 제1,2 전자제어유닛들의 메인 코어와 제1 서브 코어가 수행하는 기능들은, 각각 소프트웨어 컴포넌트 별로 러너블들이 수행되는 주기 및 코어에 기초하여 할당되는 것을 특징으로 한다.
Description
본 발명은 오토사(AUTOSAR) 표준을 기반으로 하는 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량에 관한 것으로서, 보다 상세하게는, 차량 내 전자제어유닛의 개수를 증가시키지 않으면서도 데이터 부하를 효율적으로 빠르게 처리할 수 있는 멀티코어 아키텍처를 가지는 오토사 기반의 전자제어유닛 및 이를 포함하는 차량에 관한 것이다.
최근 차량들은 지능형 서비스들의 증가에 따라 제동장치(ABS), 조향 장치 등의 장치들과, 이러한 장치들의 제어를 위한 전자제어유닛(Electronic Control Unit; ECU)를 구비하고 있다.
또한, 고성능/고편의 기능을 원하는 수요 증가에 의해, 차량내 전자제어유닛의 수량이 증가되게 되어 이를 해결할 필요가 생기게 되었다. 이를 위해 전자제어유닛의 수량을 줄일 수 있는 물리적인 통합이 구상되게 되었고, 이를 위해 멀티코어가 필요하게 되었다.
한편, 차량용 전자제어유닛 관련 표준으로 자동차 전장 소프트웨어 구조-오토사(AUTomotive Open System ARchitecture : AUTOSAR) 등 소프트웨어 아키텍처 표준 등이 제시되고 있다. 오토사(AUTOSAR)는 자동차용 소프트웨어 규격과 실행 환경에 관한 것이다.
따라서, 오토사(AUTOSAR)가 적용된 멀티코어 소프트웨어(SW)가 최적의 성능을 내기 위한 아키텍처 설계가 필요하다.
본 발명의 목적은, 데이터 부하를 효율적으로 빠르게 처리할 수 있는 멀티코어 아키텍처를 가지는 오토사 기반의 전자제어유닛 및 이를 포함하는 차량을 제공하는 것이다.
본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛 멀티코어 아키텍처는, BSW(Basic Software) 및 제1 기능을 수행하는 메인 코어(main core), 및, 메인 코어와 통신하고, 제2 기능을 수행하는 제1 서브 코어(sub core)를 포함하고, 메인 코어가 수행하는 제1 기능과 제1 서브 코어가 수행하는 제2 기능은, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당되는 것을 특징으로 한다.
본 발명의 일실시예에 따른 차량은, 각각, BSW(Basic Software) 및 소정 기능을 수행하는 메인 코어(main core) 및, 메인 코어와 통신하고, 메인 코어와 다른 기능을 수행하는 제1 서브 코어(sub core)를 구비하는 제1,2 전자제어유닛들을 포함하고, 제1,2 전자제어유닛들의 메인 코어와 제1 서브 코어가 수행하는 기능들은, 각각 소프트웨어 컴포넌트 별로 러너블들이 수행되는 주기 및 코어에 기초하여 할당되는 것을 특징으로 한다.
본 발명의 실시예에 따르면, 차량 내 전자제어유닛의 개수를 줄이면서도 데이터 부하를 효율적으로 빠르게 처리할 수 있다.
도 1은 오토사(AUTOSAR)의 소프트웨어 아키텍처를 설명하기 위한 블록도이다.
도 2는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 데이터 흐름 및 소프트웨어 배치 조건을 설명하기 위해 참조되는 도면이다.
도 3과 도 4는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 성능 테스트 결과의 예들을 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처를 나타내는 도면이다.
도 6은 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어들의 예들을 나타내는 도면이다.
도 7은 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛들의 소프트웨어 아키텍처를 나타내는 도면이다.
도 8과 도 9는 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 성능을 설명하기 위해 참조되는 도면이다.
도 2는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 데이터 흐름 및 소프트웨어 배치 조건을 설명하기 위해 참조되는 도면이다.
도 3과 도 4는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 성능 테스트 결과의 예들을 나타내는 도면이다.
도 5는 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처를 나타내는 도면이다.
도 6은 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어들의 예들을 나타내는 도면이다.
도 7은 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛들의 소프트웨어 아키텍처를 나타내는 도면이다.
도 8과 도 9는 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 성능을 설명하기 위해 참조되는 도면이다.
이하에서는 도면을 참조하여 본 발명을 더욱 상세하게 설명한다. 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 하고, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.
이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 단순히 본 명세서 작성의 용이함만이 고려되어 부여되는 것으로서, 그 자체로 특별히 중요한 의미 또는 역할을 부여하는 것은 아니다. 따라서, 상기 "모듈" 및 "부"는 서로 혼용되어 사용될 수도 있다.
제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다.
본 출원에서, "포함한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
도 1은 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처를 설명하기 위한 블록도이고, 도 2는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 데이터 흐름 및 소프트웨어 배치 조건을 설명하기 위해 참조되는 도면이다.
도 3과 도 4는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 성능 테스트 결과의 예들을 나타내는 도면이다.
도 1은 더욱 자세하게는 멀티코어 기반에서 오토사규약에 의하여 센서 입력 데이터가 액츄에이터 출력 데이터까지 흘러가는 과정을 묘사하고 있다.
도 1과 도 2를 참조하면, 오토사 소프트웨어 아키텍처는, 기본 소프트웨어 계층인 BSW(Basic Software) 계층, 응용 소프트웨어 계층, 및 런-타임 환경(Run Time Environment : RTE)으로 구분된 계층화 구조를 가질 수있다.
한편, BSW는 소프트웨어 컴포넌트가 필요한 작업을 수행하는데, 필요로 하는 서비스를 제공하는 표준화된 소프트웨어 계층으로써 소프트웨어 컴포넌트에게 입출력, 메모리, 통신 등과 관련된 서비스를 제공한다.
BSW는, 서비스 계층(Services Layer), 복합 디바이스 드라이버(Complex device driver : CDD) 등을 포함할 수 있다.
서비스 계층은 통신, 서비스, OS 블록을 포함하고 있는 계층으로 응용 프로그램과 BSW를 위한 서비스를 자신의 상위 계층에 제공하는 역할을 담당한다. 메모리, 통신 네트워크, 시스템 등의 서비스 기능을 수행할 수 있다.
한편, 서비스 계층의 통신 네트워크 서비스는 RTE(RunTime Communication)에 통일된 통신 방식을 제공한다. 통신 네트워크 서비스는 CAN, LIN, FlexRay 등과 같은 차량 네트워크 통신, 통신 하드웨어 추상화와 같은 통신 드라이버 인터페이스, 서로 다른 응용 프로그램 사이의 통신을 위한 차량 네트워크 인터페이스 제공 등과 같은 기능을 하는 소프트웨어 컴포넌트(Software Component : SWC)로 구성될 수 있다.
RTE(RunTime Communication)는 데이터 교환, 예를 들어, 소프트웨어 컴포넌트(SWC)와 BSW 사이 및 각 소프트웨어 컴포넌트(SWC) 사이의 데이터 교환, 통신을 담당할 수 있다.
응용 소프트웨어 계층은 특정 전자제어유닛에 매핑된 오토사 소프트웨어 컴포넌트들로 구성되어 있는 계층으로, 하위 계층의 모든 자원들(resources)과 RTE를 통해서 통신한다.
오토사의 기본 단위가 되는 컴포넌트 중에서 응용 프로그램의 기본 단위가 되는 컴포넌트를 소프트웨어 컴포넌트(SWC)라고 하고, 소프트웨어 컴포넌트(SWC)는 응용 프로그램의 실행 단위가 된다.
각 소프트웨어 컴포넌트(SWC)는 응용 소프트웨어 기능을 구현하며, 전자제어유닛에 매핑되는 기본 단위로서 상호 데이터를 교환할 수 있다.
한편, 모든 소프트웨어 컴포넌트(SWC)는 RTE(RunTime Environment)라는 가상의 버스를 통하여 데이터를 주고받아야 하며, 멀티 코어 간의 데이터 교환은 IOC(Inter OS application Communication)을 통해서 이루어지게 된다.
이때 데이터가 전달되는데에 걸리는 응답 시간 R은 각 데이터가 코어에서 연산 되는 시간인 C와 각 데이터가 코어를 통과하는데에 걸리는 부하 시간 R/T의 합으로 다음과 같이 표현될 수 있다.
여기서, D는 한계 목표치가 되는 데드 타임, T는 전체 수행 시간, i는 원하는 기능에 할당된 조합 순서를 의미할 수 있다.
도 1을 다시 참조하면, 센서로부터의 데이터 및 이에 기초한 데이터는 BSE, RTE를 반복적으로 거쳐 소프트웨어 컴포넌트(SWC)들로 전달되고, 직접 소프트웨어 컴포넌트(SWC), BSE를 거쳐 하드웨어로 전달되거나, IOC로 다른 코어로 전달될 수 있다.
또한, 다수의 전달 과정을 거쳐 CAN 통신으로 대응하는 전자제어유닛(ECU), 예를 들어, 조향 ECU, 제동 ECU로 전달될 수 있다.
도 2는 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 데이터 흐름 및 소프트웨어 배치 조건을 설명하기 위해 참조되는 도면으로, 특히 오토사(AUTOSASR) R4.0.3의 조건에 따라 데이터 흐름 등을 예시한 것이다.
도 2를 참조하면, 오토사(AUTOSASR) R4.0.3의 조건에 따라, 모든 BSW(basic software)는 하나의 코어에서 실행되어야 하며, 마스터 코어(core-0)에서 OS가 수행되어야 한다. 또한, 코어간의 통신은 반드시 IOC를 통해서 이루어진다.
한편, 소프트웨어 컴포넌트(SWC)는 RTE를 거치지 않고 직접 하드웨어나 BSW 모듈에 접근할 수 없기 때문에, 소프트웨어 컴포넌트(SWC)의 기능을 수행하기 위해 러너블(Runnable)들을 구성하며, 이를 통해 소프트웨어 컴포넌트의 스케줄링을 처리
한편, 러너블(Runnable)은 오토사 소프트웨어 컴포넌트(SWC)의 수행 단위이며 기능 함수라고 할 수 있다. 하나의 소프트웨어 컴포넌트(SWC) 안에는 여러 개의 러너블(R1~R4, Ra~Rf, R5~R8)이 존재할 수 있다.
한편, BSW간의 데이터 통신이나, 코어간의 통신을 할 때에는 도 3과 도 5와 같은 추가 부하가 발생하게 된다.
도 3은 코어 내,외의 통신 성능 테스트 결과 예를 도시한 것으로, 도 3의 (a)는 동일 코어 내에서 러너블(Runnable) 간의 통신 일예를 도시한 것이고, 도 3의 (b)는 다른 코어 사이의 통신 일예를 도시한 것이다.
도 3의 (c)를 참조하면, 다른 코어 사이의 통신 시 동일 코어 내의 통신 보다 많은 부하가 발생함을 확인할 수 있다.
도 4는 BSW 모듈의 통신 성능 테스트 결과 예를 도시한 것이다.
도 4의 (a)는 동일 코어 내 러너블(Runnable) 동작 시, 도 4의 (b)는 다른 코어의 러너블(Runnable) 동작 시의 예를 도시한 것이다.
도 4의 (c)를 참조하면, 역시 다른 코어 사이의 통신 시 동일 코어 내의 통신 보다 많은 부하가 발생함을 확인할 수 있다.
상기 수학식 1과 도 3, 도 4를 참조하면, 코어간 통신시 부하가 크고 시간이 오래 걸린다는 것을 알 수 있다.
따라서, 이러한 제약 조건들을 전제로 각 시스템이 하나의 컨트롤러 유닛에서 수행되는 성능을 최대로 가져가기 위해서, 본 발명에서는 코어간의 통신 수를 최적화하는 방식으로 소프트웨어 아키텍처 설계하는 것을 제안한다.
또한, 본 발명에서는 여러 기능들의 물리적인 통합시 가장 최적의 응답 시간이 나올 수 있도록 각 코어간에 배치되는 기능들의 구성을 제안한다.
특히, 물리적으로 빠른 반응 속도가 필요한 모터 제어 기반 시스템들의 통합을 통하여 그 효과가 더욱 극대화 될 수 있음을 제안하고자 한다.
특히, 본 발명에서는 모터제어기반 조향장치(MDPS)와 모터제어기반 제동장치(EMB), 능동형 시트벨트(ASB)를 대상 시스템으로 하여 소프트웨어 아키텍처 설계를 통하여 최적 응답시간을 낼 수 있다.
본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛 멀티코어 아키텍처는 BSW(Basic Software) 및 제1 기능을 수행하는 메인 코어(main core)와상기 메인 코어와 통신하고, 제2 기능을 수행하는 제1 서브 코어(sub core)를 포함할 수 있다. 도 5와 도 7은 메인 코어가 수행하는 기능 중 일부가 각각 조향 제어, 제동 제어인 예들을 도시한 것이다.
또한, 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛 멀티코어 아키텍처는 상기 메인 코어와 통신하고, 제2 기능을 수행하는 제2 서브 코어를 더 포함할 수 있다.
한편, 상기 메인 코어가 수행하는 제1 기능과 상기 제1 서브 코어가 수행하는 제2 기능은, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당될 수 있다. 즉, 멀티 코어의 각 코어들이 수행하는 기능은 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당될 수 있다.
이 경우에, 상기 메인 코어가 수행하는 제1 기능과 상기 제1 서브 코어가 수행하는 제2 기능은, 코어간 통신 IOC(Inter OS application Communication)양의 합을 최소화하도록 할당될 수 있다.
도 5는 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처를 나타내는 도면이고, 도 6은 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어들의 예들을 나타내는 도면이다.
본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처는, 먼저 코어간의 통신 수를 최소화 및 최적화 하기 위하여, 도 5와 같이, 먼저, 각 시스템들을 기능별로 분류할 수 있다.
도 5를 참조하면, 조향 제어(511), 제동 제어(521), 벨트 제어(531) 기능을 통합하여 제어할 전자제어유닛의 멀티 코어는 메인 코어(510, Core-0), 제1 서브 코어(520, Core-1), 제2 서브 코어(530, Core-2)를 포함할 수 있다.
실시예에 따라서는, 하나 이상의 코어는 코어가 수행하는 동작과 동일한 동작을 수행하면서 코어의 동작을 점검하는 실시간 점검부(Lockstep)를 포함할 수 있다. 도 5에서는 메인 코어(510, Core-0)와 제1 서브 코어(520, Core-1)가 실시간 점검부(Lockstep)를 포함하는 경우를 예시하였다.
한편, 멀티 코어의 각 코어들이 수행하는 기능은 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당될 수 있다. 예를 들어, 도 5와 같이, 메인 코어(510)가 조향 제어(511)을 수행하고, 제1 서브 코어(520)가 제동 제어(521)를 수행하고, 제2 서브 코어(530)가 벨트 제어(531) 기능을 수행하도록 설정될 수 있다.
또는, 실시예에 따라서는 개별 시스템들의 기능들이 어느 코어에서 실행되는지는 따지지 않고, 시스템의 기능들 간의 데이터 흐름을 파악하여 전체 시스템 개요를 설계할 수 있다
이 후에 코어간의 통신수를 각 코어별 부하가 어느 정도 균등해질 수 있도록 코어별 부하를 비교해 가며 최적화할 수 있다.
본 발명의 실시예에 따르면, 각 기능들 간의 데이터 흐름을 정의하고, 그 흐름들이 수행되는 주기와, 데이터가 저장되는 메모리 위치를 명확히 하여, 각 코어들이 수행하는 기능은 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당하는 데 이용할 수 있다.
또한, 각 기능들간의 전체 IOC 수를 최적화 할 수 있도록, 도 6과 같은 각 기능들 간의 데이터 흐름 분석 결과로 구성되는 매트릭스(Matrix)를 이용할 수 있다.
한편, 각 코어들이 수행하는 기능은 코어간 통신 IOC(Inter OS application Communication)양의 합을 최소화하도록 할당될 수 있다.
즉, 소프트웨어 컴포넌트(SWC) 별로 수행되는 러너블(Runnable)들이 수행되는 주기, 실행되는 코어를 명확히 하여 도 6과 같이 계산하는 매트릭스(Matrix)를 이용하여 코어별 부하가 균등하게 유지되면서 전체 IOC를 최적화하도록 각 코어들이 수행하는 기능을 설정할 수 있다.
예를 들어, 도 6을 참조하면, Source 측의 Com 소프트웨어 컴포넌트(SWC)의 Com 러너블(Runnable)은 제2 서브 코어에서 5ms를 주기로 수행되고, Destination 측의 조향 관련 MDPS 소프트웨어 컴포넌트(SWC)의 MDPS_Assist 러너블(Runnable)은 메인 코어에서 1ms를 주기로 수행될 수 있으며, 도 6과 같이 전체 IOC는 1200이 된다.
또한, Source 측의 Com 소프트웨어 컴포넌트(SWC)의 Com 러너블(Runnable)은 제2 서브 코어에서 5ms를 주기로 수행되고, Destination 측의 ICC 소프트웨어 컴포넌트(SWC)의 ICC_MDPS 러너블(Runnable)은 메인 코어에서 1ms를 주기로 수행될 수 있으며, 도 6과 같이 전체 IOC는 1200이 된다.
반면에, Source 측의 ADC_CDD 소프트웨어 컴포넌트(SWC)의 Read_ADC 러너블(Runnable)은 메인 코어에서 1ms를 주기로 수행되고, estination 측의 조향 관련 MDPS 소프트웨어 컴포넌트(SWC)의 MDPS_Assist 러너블(Runnable)은 메인 코어에서 1ms를 주기로 수행될 수 있으며, 동일한 코어 내의 통신 과정일 뿐이므로 도 6과 같이 전체 IOC는 0이 된다.
상기와 같이, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어들을 분석하여, 각 기능별로 각 코어들이 수행하는 기능을 코어간 통신 IOC(Inter OS application Communication)양의 합이 최소가 되도록 할당할 수 있다.
위 과정을 통하여 도 7과 같은 멀티코어 소프트웨어 아키텍처를 구성할 수 있다.
본 발명의 실시예에 따른 차량은, 각각, BSW(Basic Software) 및 소정 기능을 수행하는 메인 코어(main core), 및, 상기 메인 코어와 통신하고, 상기 메인 코어와 다른 기능을 수행하는 제1 서브 코어(sub core)를 구비하는 제1,2 전자제어유닛들을 포함하고, 상기 제1,2 전자제어유닛들의 상기 메인 코어와 상기 제1 서브 코어가 수행하는 기능들은, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당될 수 있다.
또한, 본 발명의 실시예에 따른 차량은, 상기 제1,2 전자제어유닛들은 상기 메인 코어와 통신하고, 상기 메인 코어 및 상기 제1 서브 코어와 다른 기능을 수행하는 제2 서브 코어(sub core)를 더 구비할 수 있다.
즉, 도 5와 도 6을 참조하여 설명한 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에 따른 전자제어유닛을 2 이상 포함할 수 있다.
도 7은 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 전자제어유닛들의 소프트웨어 아키텍처를 나타내는 도면이고, 도 8과 도 9는 본 발명의 일실시예에 따른 오토사(AUTOSAR) 기반의 소프트웨어 아키텍처에서의 성능을 설명하기 위해 참조되는 도면이다.
실시예에 따라서는, 상기 제1 전자제어유닛은 복수의 기능에 대한 상위 로직 연산을 수행하고, 상기 제2 전자제어유닛은 개별 기능에 대한 하위 동작 제어를 수행할 수 있다.
도 7의 (a)는 제동 제어, 조향 제어, 벨트 제어 기능을 통합하여 제어할 수 있고, 복수의 기능에 대한 상위 로직 연산을 수행하는 제1 전자제어유닛의 구조를 예시한다.
또한, 상기 제1 전자제어유닛의 메인 코어는 제4 기능에 대한 상위 동작 제어를 더 수행할 수 있다.
도 7의 (b)는 개별 기능에 대한 하위 동작 제어, 예를 들어, 모터 구동을 전담하여 제어할 수 있는 제2 전자제어유닛의 구조를 예시한다.
본 발명에 따르면, 제동 제어, 조향 제어, 벨트 제어, 3개의 시스템을 두 개의 ECU 시스템으로 물리적 통합을 하여 위와 같이 하나의 제1 전자제어유닛(ECU)에서는 상위 로직 연산을 담당하고 다른 하나의 제2 전자제어유닛(ECU)에서는 모터 구동을 전담할 수 있다.
또한, 상기 제1 전자제어유닛의 제1 서브 코어는 제5 기능에 대한 상위 동작 제어 및 상기 제5 기능의 하위 동작을 제어하는 제2 전자제어유닛과의 연계 제어를 수행할 수 있다.
이 경우에, 상기 제2 전자제어유닛의 메인 코어는, 상기 제1 전자제어유닛의 제1 서브 코어와 통신하고, 상기 제1 전자제어유닛의 제1 서브 코어의 연계 제어에 따라, 상기 제2 전자제어유닛의 서브 코어들을 제어할 수 있다.
도 7을 참조하면, 제1 전자제어유닛(ECU)은 CAN과 Flexray통신을 가지고, 메인 코어(core0)에서는 제동 관련된 기능들을 전담하고, 제1 서브 코어(core1)에서는 조향 관련된 상위 제어와 전자제어유닛들 사이의 협조 제어를 담당하고, 제2 서브 코어(core2)에서는 시트벨트의 상위 연산을 담당할 수 있다.
또한, 도 7을 참조하면, 제2 전자제어유닛(ECU)에서는 메인 코어(core0)가 통신부와 조향 시스템의 모터제어의 상위를 담당하고 제1 서브 코어(core1)에서는 조향 시스템의 모터 하위 제어를, 제2 서브 코어(core2)에서는 ASB의 모터 제어를 담당할 수 있다.
도 7과 같은 시스템은 단일 시스템의 구동시에는 시스템의 성능 향상을 보장하기 어려울 수 있으나, 도 7에 도시된 바와 같이 제동 기능과 조향 기능의 협조 제어가 이루어지는 기능에 대해서는 10%이상의 성능 향상을 가져올 수 있다.
예를 들어, 상기와 같이, 제동 센서에서 Yaw rate를 계산하여 제동 제어에서 Yaw rate error를 계산하고, 이를 통합 로직(ECU)에 넘겨주어 필요한 보조 토크를 계산하고, 이를 통신을 통하여 다른 쪽 전자제어유닛(ECU)으로 넘겨주고, 이를 통해 모터를 구동할 경우, 기존의 분리형에서는 도 8과 같이 worst excution path가 9ms가 나오지만, 본 제안과 같은 시스템에서는 도 9와 같이, 8ms이내에서 응답이 이루어진다.
도 8과 도 9를 참조하면, 종전의 시스템의 경우에는 응답시간이 최대 9ms가 나오며 본 제안의 시스템의 경우 8ms이내에서 응답이 이루어지는 것을 확인할 수 있다.
상기와 같이 본 발명에서는 모터기반 시스템들의 통합 전자제어유닛(ECU) 소프트웨어(SW)에 오토사(AUTOSASR) 표준의 제약 조건을 고려하여, 2이상의 전자제어유닛(ECU)의 기능을 배분할 뿐만 아니라, 각 전자제어유닛(ECU)에서 코어별 기능을 배분하는 아키텍처를 제시함으로써, 전체적인 속도를 향상시킬 수 있다.
본 발명에 따르면, 여러 기능들의 물리적인 통합시 가장 최적의 응답 시간이 나올 수 있도록 각 코어간에 배치되는 기능들을 구성할 수 있다.
또한, 물리적으로 빠른 반응 속도가 필요한 모터 제어 기반 시스템들의 통합을 통하여 그 효과가 더욱 극대화할 수 있다.
또한, 본 발명에서는 모터제어기반 조향장치(MDPS)와 모터제어기반 제동장치(EMB), 능동형 시트벨트(ASB)를 대상 시스템으로 하여 소프트웨어 아키텍처 설계를 통하여 최적 응답시간을 낼 수 있다.
한편, 본 발명에 따른 전자제어유닛 및 차량의 동작 방법은 전자제어유닛 및/또는 차량에 구비된 프로세서가 읽을 수 있는 기록매체에 프로세서가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 프로세서가 읽을 수 있는 기록매체는 프로세서에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 프로세서가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있으며, 또한 인터넷을 통한 전송 등과 같은 캐리어 웨이브의 형태로 구현되는 것도 포함한다. 또한 프로세서가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 프로세서가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상에서 설명한 본 발명의 실시예를 구성하는 모든 구성요소들이 하나로 결합하거나 결합하여 동작하는 것으로 기재되어 있다고 해서, 본 발명이 반드시 이러한 실시예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다.
또한, 기술적이거나 과학적인 용어를 포함한 모든 용어들은, 상세한 설명에서 다르게 정의되지 않는 한, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 갖는다. 사전에 정의된 용어와 같이 일반적으로 사용되는 용어들은 관련 기술의 문맥상의 의미와 일치하는 것으로 해석되어야 하며, 본 발명에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위 내에서 다양한 수정, 변경 및 치환이 가능할 것이다. 따라서, 본 발명에 개시된 실시예 및 첨부된 도면들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예 및 첨부된 도면에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구 범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리 범위에 포함되는 것으로 해석되어야 할 것이다.
510 : 메인 코어
520, 530 : 서브 코어
520, 530 : 서브 코어
Claims (9)
- BSW(Basic Software) 및 제1 기능을 수행하는 메인 코어(main core); 및,
상기 메인 코어와 통신하고, 제2 기능을 수행하는 제1 서브 코어(sub core);를 포함하고,
상기 메인 코어가 수행하는 제1 기능과 상기 제1 서브 코어가 수행하는 제2 기능은, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당되는 것을 특징으로 하는 오토사(AUTOSAR) 기반의 전자제어유닛 멀티코어 아키텍처. - 제1항에 있어서,
상기 메인 코어가 수행하는 제1 기능과 상기 제1 서브 코어가 수행하는 제2 기능은, 코어간 통신 IOC(Inter OS application Communication)양의 합을 최소화하도록 할당되는 것을 특징으로 하는 오토사 기반의 전자제어유닛 멀티코어 아키텍처. - 제1항에 있어서,
상기 메인 코어와 통신하고, 제2 기능을 수행하는 제2 서브 코어;를 더 포함하는 오토사 기반의 전자제어유닛 멀티코어 아키텍처. - 각각, BSW(Basic Software) 및 소정 기능을 수행하는 메인 코어(main core); 및,
상기 메인 코어와 통신하고, 상기 메인 코어와 다른 기능을 수행하는 제1 서브 코어(sub core);를 구비하는 제1,2 전자제어유닛들을 포함하고,
상기 제1,2 전자제어유닛들의 상기 메인 코어와 상기 제1 서브 코어가 수행하는 기능들은, 소프트웨어 컴포넌트 별로 러너블(Runnable)들이 수행되는 주기 및 코어에 기초하여 할당되는 것을 특징으로 하는 차량. - 제4항에 있어서,
상기 제1 전자제어유닛은 복수의 기능에 대한 상위 로직 연산을 수행하고, 상기 제2 전자제어유닛은 개별 기능에 대한 하위 동작 제어를 수행하는 것을 특징으로 하는 차량. - 제4항에 있어서,
상기 제1,2 전자제어유닛들은 상기 메인 코어와 통신하고, 상기 메인 코어 및 상기 제1 서브 코어와 다른 기능을 수행하는 제2 서브 코어(sub core);를 더 구비하는 것을 특징으로 하는 차량. - 제4항에 있어서,
상기 제1 전자제어유닛의 메인 코어는 제4 기능에 대한 상위 동작 제어를 더 수행하는 것을 특징으로 하는 특징으로 하는 차량. - 제4항에 있어서,
상기 제1 전자제어유닛의 제1 서브 코어는 제5 기능에 대한 상위 동작 제어 및 상기 제5 기능의 하위 동작을 제어하는 제2 전자제어유닛과의 연계 제어를 수행하는 것을 특징으로 하는 특징으로 하는 차량. - 제8항에 있어서,
상기 제2 전자제어유닛의 메인 코어는, 상기 제1 전자제어유닛의 제1 서브 코어와 통신하고, 상기 제1 전자제어유닛의 제1 서브 코어의 연계 제어에 따라, 상기 제2 전자제어유닛의 서브 코어들을 제어하는 것을 특징으로 하는 특징으로 하는 차량.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006394A KR102304387B1 (ko) | 2015-01-13 | 2015-01-13 | 오토사 기반의 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150006394A KR102304387B1 (ko) | 2015-01-13 | 2015-01-13 | 오토사 기반의 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량 |
Publications (3)
Publication Number | Publication Date |
---|---|
KR20160087274A true KR20160087274A (ko) | 2016-07-21 |
KR102304387B1 KR102304387B1 (ko) | 2021-09-23 |
KR102304387B9 KR102304387B9 (ko) | 2022-03-15 |
Family
ID=56680553
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150006394A KR102304387B1 (ko) | 2015-01-13 | 2015-01-13 | 오토사 기반의 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102304387B1 (ko) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190132729A (ko) * | 2018-05-21 | 2019-11-29 | 국민대학교산학협력단 | 러너블 주기 결정을 통한 제어성능 최적화 장치 및 방법 |
KR20220085580A (ko) | 2020-12-15 | 2022-06-22 | 현대오토에버 주식회사 | 오토사 플랫폼의 메인 기능과 태스크의 매핑 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110109608A (ko) * | 2010-03-31 | 2011-10-06 | 삼성전자주식회사 | 다중 코어에서 동적으로 부하를 분배하는 장치 및 방법 |
KR20140066531A (ko) * | 2012-11-23 | 2014-06-02 | 엘지전자 주식회사 | AUTOSAR(AUTomotive Open System Architecture) 기반의 컴포넌트 구조 |
-
2015
- 2015-01-13 KR KR1020150006394A patent/KR102304387B1/ko active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110109608A (ko) * | 2010-03-31 | 2011-10-06 | 삼성전자주식회사 | 다중 코어에서 동적으로 부하를 분배하는 장치 및 방법 |
KR20140066531A (ko) * | 2012-11-23 | 2014-06-02 | 엘지전자 주식회사 | AUTOSAR(AUTomotive Open System Architecture) 기반의 컴포넌트 구조 |
Non-Patent Citations (2)
Title |
---|
AUTOSAR. ‘Guide to Mulit-Core Systems’. V1.1.0, R4.1 Rev 3, 2014.03.31. (출처: https://www.autosar.org/fileadmin/user_upload/standards/classic/4-1/AUTOSAR_EXP_MultiCoreGuide.pdf)* * |
한컴MDS, 'AUTOSAR 모델 기반의 멀티 코어 시스템에 대한 타이밍 시뮬레이션'. 블로그 게시물, 2014.09.14. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190132729A (ko) * | 2018-05-21 | 2019-11-29 | 국민대학교산학협력단 | 러너블 주기 결정을 통한 제어성능 최적화 장치 및 방법 |
KR20220085580A (ko) | 2020-12-15 | 2022-06-22 | 현대오토에버 주식회사 | 오토사 플랫폼의 메인 기능과 태스크의 매핑 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR102304387B9 (ko) | 2022-03-15 |
KR102304387B1 (ko) | 2021-09-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Bandur et al. | Making the case for centralized automotive E/E architectures | |
US10214189B2 (en) | Interface for interchanging data between redundant programs for controlling a motor vehicle | |
Reinhardt et al. | Domain controlled architecture | |
CN102736538B (zh) | 基于接口的可重构电气架构 | |
KR20170109169A (ko) | Autosar를 적용한 샤시/안전 통합제어 시스템의 응용 소프트웨어 설계 및 멀티코어 기반 각 러너블의 할당 방법 | |
KR20130105609A (ko) | 시뮬레이션 방법, 시스템 및 프로그램 | |
CN110291504B (zh) | 用于机动车的控制器和相应的机动车 | |
KR20160076270A (ko) | 차량용 멀티 코어 시스템 | |
US20220222129A1 (en) | System for parallel processing middleware node application algorithms using threads | |
Stolz et al. | Domain control units-the solution for future E/E architectures? | |
KR20220085366A (ko) | 차량용 제어기 및 그것의 운영체제 스케쥴링 방법 | |
Ernst | Automated driving: The cyber-physical perspective | |
KR20160087274A (ko) | 오토사 기반의 전자제어유닛 멀티코어 아키텍처 및 이를 포함하는 차량 | |
KR102360725B1 (ko) | 차량용 제어기 및 그것의 에러 관리 방법 | |
Senthilkumar et al. | Designing multicore ECU architecture in vehicle networks using AUTOSAR | |
CN107771388A (zh) | 用于在机动车中的软件组件之间通信的方法 | |
WO2023114165A2 (en) | Zonal control architecture for software-defined vehicle | |
US10356009B2 (en) | Processor designed for a deterministic switched ethernet network | |
CN116974261A (zh) | 基于虚拟化技术的汽车电子电气架构前期评估系统 | |
Buttle et al. | MCUs and Virtualization in Zone E/E Architectures | |
Stähle et al. | Towards the deployment of a centralized ict architecture in the automotive domain | |
Patterson | The Evolution of Embedded Architectures for the Next Generation of Vehicles | |
US20130131914A1 (en) | Apparatus and method for receiving and sending messages | |
Sivaram et al. | AUTOSAR: In-vehicle Standardization with Certainty of Operations towards Globalization | |
WO2023210314A1 (ja) | 車載装置、プログラム及び情報処理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
G170 | Re-publication after modification of scope of protection [patent] |