Automotive

SDV 개발에서 HW/SW Decoupling (디커플링)

chbae 2024. 8. 1. 05:51
728x90

SDV (Software Defined Vehicle)는 Automotive 분야에서 가장 많이 듣는 용어 중에 하나이다. 물론 회사 내부에서 개발을 할 때 많이 들어보지는 못했다. 내부적으로는 그냥 MB.OS (Mercecdes-Benz Operating System) 이라는 용어를 훨씬 더 많이 쓴다. 하지만 여기저기 미디어나 다른 회사 블로그 등에서 보면 대중적으로 사용하는 것은 분명하다.

 

그럼에도 불구하고 이전에 유비쿼터스 등과 같은 용어와 같이 이미 있는 기술을 잘 포장하는 듯한 느낌이 많이 나는것은 필자만의 생각일까? 또한 여러군데서 여러 사람들이 조금씩 다르게 SDV라는 용어에 대해서 이야기한다. 여기서는 그 내용 중 하나인 차량용 SW 개발에서 하드웨어와 분리되어 SW를 개발할 수 있는 환경에 대해서 이야기하고자 한다.

출처: https://techblog.samsung.com/blog/article/277

 

삼성전자의 테크 블로그 중 https://techblog.samsung.com/blog/article/277 글에서 보면 클라우드 네이티브 플랫폼이라는 용어로 이야기한다. 차량용 소프트웨어는 하드웨어 구성이 정말 복잡하고 하드웨어 확보도 어려워서 개발에 어려움을 겪는다. 하드웨어 없이 가상환경에서 개발을 할 수 있는 방법을 제공하고 더 나아가 그 환경에서 테스트한 바이너리를 재컴파일 하지 않고 그대로 실제 타깃에서 활용할 수 있다면 개발 속도와 통합 속도가 엄청나게 빨라질 것이다. 현대자동차에서 발표한 내용을 https://brunch.co.kr/@hmgjournal/963 글에서도 잘 설명해주고 있다.

 

그 가상 환경은 다양한 방식으로 구현될 수 있다. 위 그림에서 보이는 각 VM 별로 (Linux VM, Android VM) 각각 QEMU 이미지를 만들어서 통신하게 만들 수도 있고 QNX 하이퍼바이저를 사용하면 AWS에 Marketplace에 QNX 하이퍼바이저를 사용하고 그 위에 QEMU ARM64의 Linux, Android 이미지를 만들어 사용할 수도 있다.

 

아직까지 현실적으로 완전 성숙단계에 왔다고 이야기하기는 어렵다. 많은 곳에서 시도하고 있고 이러한 환경을 제공하기 위해 많은 노력을 하고 있다. 개발 및 선 검증을 이 환경에서 하고 실제 타깃에서 최종 하드웨어 테스트를 하는 것이 목표이다. 당연히 동일한 바이너리로 하고 가능하면 동일하게 이슈가 나와서 재현도 하고 사전에 문제를 발견해 차단도 해야한다.

 

하드웨어의 개수를 줄이기 위해 여러개의 ECU로 나눠져 있던 것들을 작은 단위의 ECU 개수로 통합하고 이러면서 하나의 ECU 안에서 다양한 종류의 OS가 돌아가면서 다양한 기능을 한다. 그러면서 그 안에서의 소프트웨어의 복잡도가 높아지고 어떻게 잘 모듈화를 하는가가 또 다른 화두이다. 당연히 의존성 문제도 많고 그것을 해결해야한다. 하지만 레거시를 걷어내기는 쉽지 않다. 여기서 이야기하고 싶은 것은 소프트웨어 복잡도가 높아지기 때문에 가상 개발 환경을 만드는데도 어렵다는 것이다.

 

정리하자면  차량용 소프트웨어 개발에서 하드웨어에 의존적이지 않고 소프트웨어를 개발하는 방법을 Virtualization을 통해서 만들려고 노력하고 있다. vECU라는 용어도 사용하기도 한다. 이때 각 개발자 PC를 통해 실행할 수 있도록 만들수도 있고 클라우드에서 환경을 꾸밀 수 도 있다. 궁극적인 목표는 동일한 바이너리를 가상 환경과 실제 환경에서 사용하여 쉽고 빠른 개발 및 선검증을 하고 동일한 이슈를 재현하여 디버깅을 쉽게 하고자 함에 있다. 하지만 현실적으로 복잡성과 레거시 코드/아키텍처 등의 문제로 어려움을 겪을 수 있다. 이를 극복하고 잘 환경을 만들면 빠르게 개발을 해서 SDV의 다른 큰 부분이라고 이야기하는 OTA를 통해 자주 업데이트도 할 수 있는 날이 오지 않을까 싶다.

 

다음 글에서는 Virtualization의 일환으로 AWS에서 QNX 하이퍼바이저 위에 Guest VM을 올리는 방법을 아주 간단히 이야기해볼까 한다.