콘텐츠로 건너뛰기
Home » [LDRA] MCP의 WCET(Worst-Case Execution Time)측정 및 검증 방안

[LDRA] MCP의 WCET(Worst-Case Execution Time)측정 및 검증 방안

[vc_row][vc_column][vc_column_text]

Single-core processors는 수십 년간 여러 방면으로 활용되어 왔으나, 최근 각 산업 분야에서는 MCP(Multicore processor)를 활용한 임베디드 시스템에 관한 관심이 높아지고 있습니다.

높아지는 관심에 반해 MCP를 활용하면 코어를 여러 개 사용하기 때문에 Single-core processors에서는 없던 코어 간의 공유메모리 사용으로 인한 간섭과 시간 지연이 발생을 초래하게 됩니다. 

해당 문제를 해결하는 방안으로의 Partitioning은 MCP를 활용할 때 발생하는 간섭과 시간 지연을 해결하기 위한 하나의 방법으로 거론됩니다. 하지만 최근 들어 Partitioning 방법으로는 충분하지 않아서 WCET(Worst-Case Execution Time)를 측정하여 해결하는 방법이 대두되고 있습니다.

Partitioning과 WCET를 설명하기 위해서는 먼저 MCP의 실시간 시스템에 대해 알아야 합니다. 임베디드 시스템에 MCP는 실시간 시스템을 제어함에 따라, 엄격한 타이밍 제약조건을 충족해야 합니다.

그림 1 유도 미사일 운용 개념도

(출처: https://bemil.chosun.com/nbrd/bbs/view.html?b_bbs_id=10040&num=70653)

유도 미사일을 예시로 들어보면 GPS 방식의 유도 미사일에는 위성항법과 관성항법 시스템이 탑재되어 위치를 실시간으로 확인하고 목표물에 대한 위치로 거리를 계산하여 속도와 방향을 계속 보정하며 비행합니다.

계산하는 시간이 지연되면 미사일의 방향이 틀어져 오폭으로 이어지게 됩니다. 그렇게 되면 피해가 크기 때문에 계산에 소요되는 시간 제약이 중요합니다.

그림 2 2003년 이라크 전쟁 중 시장 오폭으로 불타고 있는 차

(출처: https://www.abc.net.au/news/2003-03-26/missile-strikes-kill-14-in-baghdad-market/1824312)

2003년 이라크 전쟁 중, 미국이 발사한 GPS 유도 미사일이 바그다드의 시장을 오폭하여 수십 명의 민간인이 사망하는 사고가 발생했습니다. 이 사건은 GPS 신호 방해 및 미사일 유도 시스템 오류로 인해 발생한 것으로 알려져 있습니다.

이러한 오폭 사례들이 발생하지 않게 하기 위해서는 무엇보다도 엄격한 시간 제약조건을 충족하는 것이 중요합니다. 이번 글에서는 임베디드 시스템에서의 실시간 시스템과 시간 제약조건을 충족시키기 위한 Robust Partitioning과 WCET(Worst-Case Execution Time) 검증에 대하여 알아보겠습니다.

 

Real-Time Control System

그림 3 Real-time control systems

(출처: https://www.ti.com/document-viewer/lit/html/SSZT063)

임베디드 시스템에서 실시간 프로세스는 할당된 시간 내에 실행을 완료하느냐에 따라서 성능과 안전성이 판별됩니다.

그림 4 Hard Real-Time Systems Vs Soft Real-Time Systems

(출처: https://techdifferences.com/difference-between-hard-and-soft-real-time-systems.html)

실시간 시스템은 크게 Hard와 Soft로 구분이 됩니다.

Soft Real-Time Systems는 deadline이 지나더라도 그 결과에 유효성이 떨어지지만, 완전히 무효가 되지 않을 때 쓰이는 시스템으로 시간 안에 결과를 낸다는 보장이 없습니다.

하지만 Hard Real-Time Systems는 시간 안에 결과가 무조건 나와야 하고 만약 시간 안에 결과가 나오지 않으면 시스템의 실패로 결정될 때 사용됩니다. 주로 비행 제어, 미사일, 철도 신호 시스템과 같은 안전에 중요한 시스템이 포함되어 시간 제약이 지켜지지 못하여 심각한 피해가 초래될 때 Hard Real Time System을 적용합니다.

 

Robust Partitioning에 대하여

임베디드 시스템에 MCP를 활용하게 되면 코어 간에 공유메모리 사용으로 인하여 두 가지의 문제점이 발생합니다.

– 간섭(Interference)

– 시간 지연(Time-delay)

이 두 가지 문제점을 완화하기 위해 Partitioning을 이용합니다.

그림 5 Flight control task execution time history

(출처:https://www.electronicdesign.com/technologies/embedded/article/21800314/memory-partitioning-and-slack-scheduling-boost-performance-in-safety-critical-applications)

CAST-32A 및 A(M)C20193의 민간 항공 지침은 MCP(Multicore processor)의 Robust Time Partitioning을 “파티션이 다른 활성 코어에서 실행되지 않거나 다른 모든 활성 코어에서 실행되는지에 관계없이 소프트웨어 파티션이 실행되는 코어에서 할당된 실행 시간보다 더 많이 소비하지 않도록 서로 다른 코어에서 호스팅 되는 파티션 간의 시간 간섭을 완화한 결과”로 정의합니다.

위에 그림처럼 Partitioning을 적용하게 되면 시간 간섭이 큰 폭으로 완화되는 것을 볼 수 있습니다.

하지만 MCP 환경에서 Robust Partitioning만으로는 간섭을 완화하기가 충분하지 않습니다.
모든 HSR(Hardware Shared Resources)에 대해 적용이 되어야 하지만 바르셀로나 슈퍼컴퓨터 센터(BSC)의 멀티 코어 안전 연구 결과에서는 오늘날의 MCP 기술로는 완벽하게 Partitioning을 구현하는 것은 사실상 불가능하다고 합니다.

 

WCET에 대하여

그래서 간섭을 더욱 완화하기 위해서는 시스템적 접근이 필요하고 여러 가지 환경 변수들을 고려할 필요가 있으므로 WCET를 측정하는 방법을 사용합니다.

그림 6 Timing Graph

위에 그림처럼 WCET란 실시간 시스템에서 수행되는 프로세스가 최악의 경우를 가정하고 수행되는데 걸리는 시간을 의미합니다.

MCP에서 Partitioning만으로는 여러 가지 환경 변수들로 인해서 시간 제약조건을 충족하기 어려우므로 WCET 검증을 이용하여 소프트웨어를 최악의 상황에 맞춰서 테스트 케이스를 만들어 분석한 다음에 deadline을 넘지 않는지 검증하는 것을 의미합니다.

그림 7 DO-178C Test

(출처: https://afuzion.com/do-178-introduction-copy/)

민간 항공에서는 일부 특성에 대한 우려로 단일 코어만 사용하는 것으로 제한되었습니다. CAST-32A는 MCP를 사용 시, WCET 검증에 관련된 DO-178C를 보충하고 이유 및 근거 제공, 해결 방안을 제시할 것을 요구하고 있습니다.

그래서 MCP를 활용하려면 WCET 검증이 필수적입니다. 다음으로는 LDRA를 활용한 WCET 검증에 대하여 알아보겠습니다.

 

Static Analysis for WCET

정적 분석은 더욱 정확하고 신뢰할 수 있는 접근 방식을 제시합니다.

그림 8 Example of Static Analysis Code Metrics for WCET

LDRA에 Halstead 메트릭에서는 개발자가 연산자, 피연산자, 소프트웨어 모듈 크기, 소프트웨어 복잡성 및 데이터 흐름 정보를 평가하여 알고리즘의 구현 또는 표현을 반영할 수 있습니다.

코드의 연산자와 피연산자의 수를 바탕으로 다양한 지표를 계산하여 프로그램의 복잡도, 유지 보수성, 오류 가능성을 평가하는 데 사용됩니다.

이러한 접근 방식으로 처리 시간을 가장 많이 요구하는 함수를 식별할 수 있지만, 최대 실행 시간에 대한 측정값은 제공할 수 없으므로 동적 시험을 통해 이를 해결할 수 있습니다.

 

Dynamic Test for WCET

그림 9 LDRA 도구를 이용한 WCET 동적 시험

동적 시험에서는 정적 분석에서 예측된 함수 간의 간섭이 없을 경우의 WCET 측정과 부하를 통한 테스트 케이스로 WCET를 측정하여 비교 분석합니다.

그림 10 TBwcet without interference timing diagram report

그림 11 TBwcet with interference timing diagram report

위에 그림들은 LDRA Tool TBwcet 모듈을 통해 동적 시험 결과를 그래프로 분석한 내용입니다.

동적 시험을 통해 WCET가 범위 내에 속해 있는 경우는 간섭 완화가 적절하다는 것을 알 수 있고, 그렇지 않으면 관련 기능에 대해 개발 사양과 비교하여 작업에 할당된 시간이 적절하게 진행될 수 있게 정보를 제공해 줍니다.

결론

임베디드 시스템에서 MCP를 활용하기 위해서는 시간 제약조건을 준수해야 합니다. 그렇지 않으면 유도 미사일 오폭 사례 같은 재앙을 초래할 수 있기 때문입니다. Robust Partitioning만으로는 충분하지 않기 때문에 LDRA 에서는 WCET를 측정한 결과를 토대로 분석하여 문제를 식별하고 해결할 수 있는 기능을 제공합니다.

 

우주항공용 SW의 MCP/WCET에 대한 해답 ‘LDRA’

우주항공 시스템의 요구사항과 SW의 크기가 증가함에 따라 단일 코어 프로세서가 아닌, 멀티코어 프로세서의 사용이 급증하고 있습니다. 멀티코어 프로세서는 복잡한 SW의 성능 향상을 위하여 공유 리소스를 생성하여 병렬적인 연산이 가능하지만, 공유 리소스가 가지고 있는 취약점을 동반하고 있습니다.

DO-178C, CAST 32A, A(M)C20-193에서는 이러한 취약점들을 해소하기 위한 솔루션으로 Worst-Case Execution Time(WCET)을 리뷰 · 분석 · 시험을 요구하고 있습니다.

LDRA TBWcet는 WCET을 측정하고 MCP에 임베디드되는 SW의 성능 향상을 보장합니다.

LDRA TBWcet 문의 : 02-6945-2120 / Contact us – (주)모아소프트 (moasoftware.co.kr)

 

[/vc_column_text][/vc_column][/vc_row]