AUTOSAR, 멀티코어와기능안전을추구하다 최근차량 ECU 와관련된소프트웨어개발의핵심에는두가지중요한이슈가있다. 멀티코어프로세서에대한컴퓨터아키텍처의추세및 ISO26262 에의해요구되는기능안전표준에관한문제이다. 개별적으로도이미충분히복잡한주제인데이두가지를함께적용하는경우에는어떤결과가발생할것인가? 멀티코어아키텍처를도입하는주된이유는클록속도를높이지않고도연산능력을증가시키기위해서이다. 하지만이것은어플리케이션소프트웨어의상당부분이병렬처리될때만가능하다. 이와관련해서일반적으로암달의법칙 (Amdahl s law) 을참고한다. 예를들어, 50% 의병렬처리가가능한듀얼코어프로세서와소프트웨어를싱글코어아키텍처와비교하면연산량은단지최대 30% 만이증가한다. AUTOSAR, 멀티코어와기능안전을추구하다 1/8
가능한최대연산능력을확보하기위해서는개발자가소프트웨어모듈을배치할때코어간자원공유를최소화하기위한모든노력을기울여야만한다. 하드웨어레지스터와대부분은데이터영역이이와관련된자원에해당한다. 코어간자원활용으로인해발생하는과제는자원에대한접근을조율하는것보다는, 공유자원에동시에접근하지않도록하여대기상태를피하는것이다. 대기상태에서는독립적인데이터처리손실이발생하고병렬처리는효용성을잃기때문이다. ISO2626 에따른기능안전 ISO26262 에서요구하는기능안전요구사항을구현하는일은차량엔지니어링개발프로세스에서이미필수불가결한사항이되었다. 리스크분석결과에기초한안전성과관련하여 ECU 의기능에대한요구사항을평가하고, 적절한 ASIL(Automotive Safety Integrity Level) 이정해진다. 안전관련기능을구현하는데있어서, 멀티코어소프트웨어아키텍처는왜중요할까? 이러한질문에답을하기이전에많은안전관련프로젝트에서사용되고있는멀티코어프로세서의 Lockstep 컨셉과관련하여몇가지언급할필요가있다. Lockstep 모드 Lockstep 모드에서는동일한코드가두개의코어가동일한코드를실행한다. 독립적인 컴퍼레이터가실행결과를비교하고불일치가발생하는경우에는트랩 (Trap) 을일으킨다. 이후의진행과정은 ECU 의하드웨어와안전성에대한컨셉에따라달라진다. 하드웨어는트랩발생이후에, 반드시안전상태가설정되도록설계되어야한다. 에러처리이외에는두개의코어가동일한코드를실행하기때문에멀티코어와관련된소프트웨어확장자가필요하지않다. 다시말하면, 비록다수의코어가사용되고있지만, 이것이연산능력을증가시키기위한멀티코어아키텍처는아니라는것이다. AUTOSAR, 멀티코어와기능안전을추구하다 2/8
분산소프트웨어를갖춘멀티코어아키텍처 멀티코어아키텍처는연산능력을증가시키기위해사용되거나, 안전과관련된시스템은 ASIL 분리와같이다양성알고리즘의구현을위해서사용된다. 개발자는병렬처리에기반을두고, 안전컨셉에따라소프트웨어모듈을 AUTOSAR 에서정의된 OS 어플리케이션에할당한다. 이것이 ISO26262 에서정의한분해 (decomposition) 에해당하며, 하나의 ECU 내에서상호간섭을일으키지않고실행될수있어야하는영역을의미한다. 멀티코어 ECU 에서는 OS 어플리케이션이서로다른프로세서코어에할당된다. ( 그림 1) 개발자의관점에서는분할의목적이병렬처리인지분해 (decomposition) 인지는상관이없다. 중요한것은 OS 어플리케이션간의간섭을배제하는것이다. 이를위해서는반드시런타임모니터링및안전과관련된메모리컨텐츠에대한잘못된수정을피해야만한다. [ 그림 1: 개발자는태스크를 OS 어플리케이션으로그룹화하고각코어에배치함 ] 런타임모니터링 Scalability class 2 에서 AUTOSAR 는런타임모니터링을지원한다. 하지만안전관련 어플리케이션에서는이것만으로충분하지않다. AUTOSAR 운영체제는태스크가과도한런타임을 AUTOSAR, 멀티코어와기능안전을추구하다 3/8
사용하거나장시간동안인터럽트를차단하지못하도록점검한다. 하지만태스크시퀀스와태스크트리거조건을정확하고안전하게설정하는일은개발자에게매우복잡한작업이다. TTTech 와벡터는이에대한솔루션을지원하고있다. 이솔루션은 ASIL-D 에따라개발된프로그램플로우모니터 (Flow Monitor) 의형태를띠며, 이모니터에포함된태스크와함수의실행시간및순서를모니터링한다. 이프로그램플로우모니터의개체는코어별로생성된다. 모니터는소프트웨어와 결합된체크포인트들을통해함수실행에관한정보를수신한다. ( 그림 2) 이정보들은 프로그램에서안전과관련된부분들이정확하게처리되어야만정확한순서와타이밍에맞춰체크 포인트들을통과할수있다. 중앙의 Watchdog Manager 는모든모니터의상태메시지를수집하고 Watchdog 을작동시킨다. 태스크가코어경계에걸쳐서독립적이기때문에개별코어를별도로관리하는것은불가능하다. 더욱이 AUTOSAR 사양은모든코어를공동으로재시작할수있도록만허용하고있다. 따라서 Watchdog Manager 를 ECU 전체를위한중앙집중형모듈로개발해야한다. 반대로실제모니터는각각의코어상에서독립적으로수행되며 Watchdog Manager 에코어경계를가로질러각각의상태를통보할수있다. [ 그림 2: 어플리케이션의체크포인터를사용하여플로우모니터링이정확한시퀀스를보증함 ] AUTOSAR, 멀티코어와기능안전을추구하다 4/8
ECU 내에서의메모리보호및안전한통신 완벽하게간섭을배제하는것은하드웨어에서 MPU(Memory Protection Unit) 가지원될때만가능하므로어플리케이션영역은이미규정된메모리영역에만접근할수있다. ( 그림 3) 이메모리영역은코어별로분리되어규정되지만, 다른코어와함께하드웨어자원 (RAM, ) 을공유해야만한다. 운영체제는중심적인역할을수행하는데, 태스크변경이발생하는시점마다, 운영체제는메모리파티션의변경이유효하도록 MPU 를재설정해야만한다. 운영체제에서컨텍스트변경을담당하는이부분은안전과관련된컴포넌트이며항상가장높은안전레벨에부합해야만한다. [ 그림 3: 메모리보호유닛이각어플리케이션에서미리정의된메모리영역만접근 ] 이는데이터의잘못된오버라이팅을예방하기위한것이며, 다양한프로세서코어와태스크간의 정확한데이터교환이필요하기때문이다. AUTOSAR 아키텍처모델에서는두태스크간의데이터 교환은 VFB(Virtual Function Bus) 의방식에의해이루어진다. 이 VFB 는 RTE(Runtime Environment) 에의해구현된다. RTE 는멀티코어아키텍처를사용하는안전관련 ECU 를위해다음과같은요구를만족해야한다. RTE 는메모리파티션간의통신을허용하고, 동시에코어경계를가로지르는통신경로인지 (inter- AUTOSAR, 멀티코어와기능안전을추구하다 5/8
core), 또는동일코어를통과하는두태스크간의통신경로인지를 (intra-core) 구별할수있어야한다. 코어간데이터전송은추가적인조율메커니즘이필요하다. 이를위해, 운영체제는 RTE 에 IOC 라고기능을제공하는데, 이를통해다양한코어상의태스크와인터럽트서비스루틴 (Interrupt Service Routine) 사이에서데이터교환이가능하다. 표준솔루션의활용 그러므로, 멀티코어 ECU 에대하여 ISO26262 에서규정한것처럼기능안전을확보하기란쉽지않다. 하지만이를위해서새로운개발이필요하기보다는, 기존의시스템을정확히활용할필요가있다. 이를위해, 벡터와 TTTech 는 ECU 개발자에게멀티코어아키텍처에서 ASIL-D 까지대응되는운영체제, RTE, 프로그램플로우모니터링을제공한다. 일반적으로싱글코어보다멀티코어시스템이더욱복잡하지만, 이는 Basic Software 의설정에적용될필요는없다. 일단프로세서코어에소프트웨어가분산되고나면, 멀티코어시스템과관련된나머지설정작업은최적화된툴의지원을받아싱글코어아키텍처의경우보다복잡하지않다. 개발자는태스크, 인터럽트서비스루틴등을 OS 어플리케이션이라는컨테이너에함께그룹화한후에이를프로세서코어에할당한다. ( 그림 1) 벡터의 DaVinci Configurator Pro 설정툴을사용하면이러한작업은간단한클릭만으로도끝낼수있다. 통합된 RTE 생성툴이소프트웨어모듈간의정확한통신방법 (intra-core 혹은 inter-core) 에대한설정을자동으로처리한다. 요컨대, Basic Software 와설정툴의형태를갖춘멀티코어 ECU 에대해많은지원이이미제공되고있다. 그러나소프트웨어아키텍처를생성하고, 프로세스코어에소프트웨어컴포넌트를분산하기위해툴을구현하는일은매우어려운작업이다. 이는실제로 variant 평가로국한되어있다. 따라서, 가까운미래에도 ECU 개발자는이분야에대한전문성과경험을계속해서요구받게될것이다. 독일출판물 Elektronik automotive, 2014 년 6 월호기사번역판 그림제공 : Vector Informatik GmbH AUTOSAR, 멀티코어와기능안전을추구하다 6/8
링크 : 벡터홈페이지 : www.vector.com 저자 : Helmut Brock 1999 년부터 Vector Informatik 에서근무중이며현재 Operating Systems 제품을담당하고있다. helmut.brock@vector.com Joachim Kalmbach 2006 년부터 Vector Informatik 에서근무중이며임베디드소프트웨어부분에서 Product Manager 로 AUTOSAR 와멀티코어를주로담당하고있다. joachim.kalmbach@vector.com 본자료배포시최종인쇄물을당사에보내주시면감사하겠습니다. 배포와관련하여문의사항이있으시면언제든지연락주시기바랍니다. 벡터코리아편집자연락처 : 마케팅팀전은영 서울특별시용산구한남대로 11 길 12 고뫄스빌딩 5 층 AUTOSAR, 멀티코어와기능안전을추구하다 7/8
Tel. 02-807-0600 Ext.5014, Fax. 02-807-0601 E-mail: eunyoung.jeon@vector.com AUTOSAR, 멀티코어와기능안전을추구하다 8/8