일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 완전자율주행
- smart_city
- 오로라자율주행
- UAM
- 코로나백신대상
- 아마존자율주행
- 6G
- 월마트드론
- 오로라이노베이션
- CES2021LG
- 에어택시
- 우버자율주행
- 우버 매각
- 자율주행오로라
- 자율주행택시
- 자율주행차량
- Starlink
- 로보택시
- 스마트시티
- 김래아
- 자율주행
- 코로나백신피해야할대상
- 로봇택시
- UAM사례
- 기술경영
- 드론배송시작
- 코로나백신
- 해외UAM
- CES2021
- UAMT
- Today
- Total
RDX 공식블로그
자동차 소프트웨어 및 하드웨어 가상화 본문
추상화 계층(abstraction layer)이 자동차 디자인에서 어떻게 그리고 왜 필수적인가
(2020.08.06.) 자동차 산업이 전기화, 차량 자율성 향상, 차량 내 ECU 통합 그리고 엄격한 안전 및 보안 요구 사항으등으로 복잡성을 겪고 있는 가운데, 자동차 생태계 참가자들은 미래의 차량을 실현하기 위해 여러 가지 방법으로 가상화 개념을 찾고 있다.
한 가지 방법은 하드웨어 가상화를 사용하는 것이다. GPU와 같은 디바이스가 하나 이상의 가상 머신을 호스팅할 수 있는 기능으로써 각각 고유한 운영 체제와 함께 독립적 머신처럼 작동하며 모두 동일한 기본 디바이스 하드웨어에서 실행된다. 즉, 단일 GPU가 동시에 실행되는 여러 운영 체제를 지원할 수 있으며, 각 운영 체제는 단일 그래픽 하드웨어 장치에 워크로드를 제출한다.
차내의 완전히 분리된 모듈은 물리적으로 서로 분리되어 있으며 다양하게 구성된다. SoC를 만드는 사람도 있지만 실제로 두 개의 그래픽 코어를 넣었을 때 하나는 대시보드에, 다른 하나는 화면을 구동하기 위한 것이며 이것들은 물리적으로 분리되어 있다. 문제는 성능에 차이가 있고, 그런 GPU 중 하나가 다른 GPU보다 작고, 강력하지 않다면 다른 GPU를 사용하여 속도를 높일 수 없다. 또 너무 많은 모듈을 내려놓고 오버엔지니어링하는 것도 비용이 많이 든다.
자동차 산업에서 일어나고 있는 활동들이 더욱 구체화 되고 있다. 먼저 전기화 기술이 도입될 것이며 여기에는 다양한 소프트웨어의 특징과 기능이 필요하게 될 것이다. 또한 자동차 제조사들 중 어느 곳도 통제하지 못할 것이다. 두 번 째는 ADAS와 자율주행차의 진화이다. OEM 회사들 중 어느 곳도 어떻게 생산해낼지 모르며 모두 연구 단계에 있다. 업계는 어떤 OS으로 실행할지에 대해서는 아직 파악하지 못했다. 게다가 자동차 생산업체들은 자동차 내 컴퓨팅 비용이 자동차 비용의 백분율로 계속 오르고 있어 큰 문제이다.
1950년, 전자기술은 자동차 비용의 겨우 1%를 차지했다. 오늘날 자동차 비용의 약 40%가 전자기술이며, 이는 자율주행 능력과 안전기능이 추가 되고, 소프트웨어가 이들 시스템에 맞춤형으로 개발되면서 계속 상승할 것이다. 그러나 기업들은 특히 차별화가 거의 없는 분야에서 모든 것을 독립적으로 개발할 필요가 있는지에 대해서 의문을 제기하기 시작했다.
OEM에는 자체 제작, 테스트 및 규정 준수, 안전 및 보안 처리 해결을 위한 1000명의 엔지니어가 상주하지 않기 때문에 누군가가 OS를 가지고 나타나서 자율주행 문제, ADAS 문제, 보안 문제, 그리고 다른 모든 전기화 문제 등 돈을 절약하기 위한 비즈니스 모델로 사용할 수 있다면 바로 수용할 것이다.
테슬라는 아이폰을 이용해 차의 전원을 켜고 차를 확인하고 차 안의 카메라를 볼 수 있는 커넥티드 카에 대해 자화자찬 하고 있다. 이런 기술들로 다른 자동차회사들은 빠르게 따라잡히고 있다. 차 안에는 100대의 컴퓨터가 있지만 각자 한 가지 일만 하기 때문에 제조업체들은 어떻게 시작해야 할지 조차 모른다. 백업 할 때 카메라를 볼 수 있도록 해주는 카메라 시스템이 있어서 좋지만 그 컴퓨터는 다른 컴퓨터와 통신하지 않는다. OnStar사의 휴대전화 모뎀을 설치했다면 차가 충돌했을 때 휴대폰으로 도움 받을 수 있지만 두 컴퓨터가 달라 연결하여 볼 수 있는 방법이 없다.
OEM회사들은 어려운 상황에 처해있다. 테슬라가 자체 OS를 OEM업체들에게 제공하지 않을 것이기 때문에 또 다른 OS가 필요하다.
하드웨어 가상화는 이러한 문제들을 해결하기 위해 필요한 것이다. GPU는 1개 있지만 클라이언트 운영 체제가 여러 개 있으며 기본적으로 GPU의 일부 비율을 차지할 수 있는 여러 개의 보호된 워크로드를 가지고 있다. 오버헤드를 최소화하기 위해 하드웨어에 모든 것을 적용했다. 왜냐하면 GPU의 100%를 보유하고 있기 때문에, 이 모든 워크로드를 매우 정교하게 분산시키기를 원했기 때문이다. GPU는 CPU와 비슷하며 일종의 시간 슬라이싱 기반 시스템이다. 기본적으로 GPU를 사용하며 모든 소프트웨어 기반 규칙을 사용하여 서로 다른 워크로드를 스케줄링하고 서로 보호 한다.
가상화는 매우 중요한데 오디오나 비디오 같은 덜 중요한 측면과 중요한 측면을 분리할 때에는 주의가 필요하다. 그 중 일부가 충돌할 수 있지만 자율주행에 중요한 카메라와 그런 종류의 어플리케이션에는 해당되지 않는다.
하드웨어 가상화는 주로 서버 랙에 전력을 공급하고 냉각하는 데 비용이 들기 때문에 서버 활용도를 개선하기 위해 데이터 센터 전반에서 광범위하게 구현되어 왔다. 하이퍼바이저의 사용으로 여러 작업, 운영 체제 및 애플리케이션이 동일한 하드웨어를 공유할 수 있다.
동일한 하드웨어의 가상 인스턴스화를 여러 개 만드는 방법이며, 모든 인스턴스는 사실상 특정 제품이나 소프트웨어 또는 애플리케이션에 전용된다. 하이퍼바이저는 하드웨어에서 직접 실행되며 위에서 실행되는 다른 애플리케이션이나 소프트웨어 프로그램과 관련하여 중간 계층을 생성하는 베어메탈 운영 체제이다. 따라서 위에서 아래로 아키텍처를 살펴보려면 애플리케이션이 표시되고 하이퍼바이저가 표시되며 하드웨어 계층이 표시되며 하이퍼바이저는 SoC의 모든 리소스가 자신들에게 전용되는 애플리케이션에 이러한 착각을 일으키는 것이다.
이는 자율주행차에서도 문제를 해결하는데, 자동차에는 여러 가지 분산형 프로세서가 있지만, 그 하나하나가 특정 기능에 전용되는 것은 아니다. 무게와 비용이 더해지는 중복성을 피하기 위한 방편으로 비치는 경우가 많지만 이런 접근방식은 또한 자율 차량에 필요한 장애 조치 시스템의 기능도 제한한다.
모든 제공업체가 특정 프로세서를 위한 애플리케이션인 운영체제를 제공할 예정이었다. 여러분은 아마 수십개의 다른 프로세서를 가지고 있을 것이다. 시스템의 복잡성이 증가하면서 현재 트렌드는 모든 계산된 능력을 중앙 집중화된 단일 컴퓨터에 집중해 보는 것이다.
그러나 그것들을 합치려면 최소한 과거의 어플리케이션, 운영 체제 등의 투자를 다시 하고 싶을 것이다. 하지만 우리는 이 모든 것들을 같은 하드웨어에서 각각 작동하기를 원한다. 모든 어플리케이션은 다른 안전 요구사항과 ASIL(Automotive Safety Integrity Level)을 가질 수 있고 이것이 자동차 OEM의 문제이다. 예를 들어 브레이크 시스템은 ASIL D이어야 하고 다른 어플리케이션은 ASIL B여야 하며 다른 어플리케이션은 안전에 중요하지 않기 때문에 ASIL 등급이 없는 것일 수 있다. 이러한 모든 어플리케이션을 결합하는 순간, 이러한 서로 다른 소프트웨어 태스크 간의 분리 또는 분리를 보장해야 한다. 이것이 바로 가상화가 할 수 있는 일이다. 왜냐하면 가상화가 작업을 할당하는 착각을 일으킬 수 있기 때문이다. 가상화는 모든 작업을 분리하는데 예를 들어 소프트웨어 결함으로 인해 하나의 특정 태스크가 실패하더라도 다른 태스크는 모두 영향을 받지 않는다.
하드웨어 가상화 유형
이 분야의 작업이 계속 발전함에 따라 엔지니어링 팀은 하드웨어 가상화를 구현할 수 있는 para-virtualization(반가상화)과 full hardware virtualization(전가상화)를 구현한다. para-virtualization는 하나의 GPU와 그 GPU를 제어하는 큰 소프트웨어 스위치와 함께 작동한다. 사용자 측에서는 대시보드와 인포테인먼트 시스템이라는 두 개의 어플리케이션이 있을 수 있으며, 그 소프트웨어가 둘 사이의 전환을 가능하게 하는 것이다.
이 접근 방식의 문제점은 소프트웨어에서 모든 것을 기본적으로 수행하고 있기 때문에 실제 가상화가 이루어지지 않는다는 것이다. 또 다른 문제는 일반적으로 GPU를 제어하는 드라이버 소프트웨어가 하나뿐이기 때문에 이러한 앱 중 하나가 잘못 될 경우 해당 소프트웨어를 손상시킬 수 있다. 그런 시스템은 실제로 적용할 때 훨씬 더 많은 위험이 있다. 또한 소프트웨어와 수동 전환을 하기 때문에 오버헤드가 훨씬 더 많다. 일반적으로 신뢰할 수 있는 응용프로그램의 프레임을 실행한 후 하드웨어가 오염되지 않도록 하드웨어를 소프트 리셋하여 정리해야한다. 그런 다음 다른 응용 프로그램을 실행한다. 이러한 종류의 리셋은 하드웨어에 상당한 시간이 걸리지만 그렇지 않으면 이전 애플리케이션의 데이터가 다음 애플리케이션에 영향을 미칠 수 있기 때문에 리셋을 해야 한다.
Full hardware virtualization은 모든 것을 하드웨어로 구축한다. 하드웨어 설계에는 소프트웨어 인터페이스가 여러 개 있기 때문에 완전히 독립적인 드라이버 스택을 많이 실행할 수 있다. 모든 사람들은 그것이 자체 GPU를 가지고 있고, 실제로 하드웨어와 대화하고 있다고 믿는다. Imagination과 같은 일부 GPU 제공자들은 감시자 역할뿐만 아니라 이러한 우선순위를 관리하기 위해 GPU 내부의 작은 펌웨어 프로세서를 사용한다.
잘못된 행동들은 무엇이 오래걸리고 왜 이상한 일을 하고 있는지를 결정 할 수 있다. 또한 워크로드를 거부할 수 있다.
게다가 소프트웨어 모듈은 우선순위 체계를 사용하여 GPU의 특정 하위 부분에 대한 워크로드를 격리함으로써 사용자가 요구사항을 충족하기 위해 GPU를 세분화할 수 있는 방법에 대한 유연성을 제공한다.
소프트웨어
가상화는 서로 다른 소프트웨어 스택을 구분하고 전체 하드웨어 비용을 절감할 수 있는 효과적인 방법이다. 하지만 자동차 분야에서 안전과 보안에 관한 문제들은 여전히 해결되어야 한다.
자동차 어플리케이션용 프로세서 코어는 천천히 진화한다. 가상화를 지원하기 위해서는 추가적인 하드웨어 기능이 필요하다. 이것은 더 많은 소프트웨어 계층과 결합되어 전체적인 검증과 기능 안전 준수를 더욱 복잡하게 만든다. 특정 저수준 소프트웨어 기능에 대한 공식적인 검증은 이미 특정 안전공간에서 사용되고 있다. 하드웨어에 대한 정식 검증을 추가하는 것만이 시스템이 의도한 대로 작동하고, 간섭과 중요한 성능의 병목현상이 없다는 것을 확인 할 수 있는 유일한 방법이다.
자동차 전용 운영체제처럼 표준화된 솔루션이 없으면 문제가 더욱 어려워진다. 이 공간에서 수많은 고유한 안전, 보안 및 복잡성 요구 사항을 처리하는 것이 OS의 임무지만 경쟁 독점 OS로는 이를 달성하기가 훨씬 어렵다.
자동차는 세계에서 유일하게 자체 OS가 없는 대용량 소비자 장치이며 이는 인증 및 기능 안전과 관련이 있다. 리눅스나 안드로이드 같은 것은 어느 정도 테스트가 된다. 하지만 그것들은 여전히 오픈소스이고 많은 사람들이 이용한다. 그것들은 또한 매우 복잡하다. 그것들은 매우 크고, 많은 코드들을 가지고 있기 때문에 버그가 없다고 장담할 수 없다. 대시보드가 사용자에게 매우 중요한 자동차에서는 기본적으로 단일 어플리케이션을 실행하는 것이기 때문에 이러한 풍부한 기능을 모두 필요로 하지 않는다. 따라서 훨씬 더 간단한 운영 체제를 사용할 수 있지만, 제3자에 의해 제대로 작성되고, 요구 사항을 충족하며, 검증 작업을 수행하는 툴도 있다. 하지만 코드베이스가 너무 크다면 그건 불가능하다.
가장 잘 알려진 자동차 중심 운영 체제로는 INTEGRITY와 QNX가 있다. Linux의 자동화 등급 버전도 있는데 단순화된 버전이다. 이 모든 것을 가상화된 시스템에서 실행할 수 있다.
이렇게 분리된 도메인 샌드박스를 모두 만들 수 있고, 각각의 샌드박스가 자체 OS를 실행할 수 있다. 그 중 일부는 INTEGRITY같은 기능적으로 안전한 운영체제이다. 다른 것들은 표준 안드로이드나 리눅스일 수도 있다. 그리고 충돌하면 기본적으로 작업 제출을 중단하기 때문에 GPU는 더 많은 렌더링 명령을 받지 않으며, 대시보드가 리소스의 다른 하위 집합에서 자체적인 작은 OS를 실행하고 있기 때문에 계속 진행할 수 있다.
보안 및 가상 모델
보안은 가상화가 중요한 역할을 할 수 있는 또 다른 영역이다. '가상화'라는 용어의 반대편에는 디지털 트윈 개념이 있는데, 이 개념은 모델에서 전체 시스템을 가상화한다. 이러한 관점에서 다루어질 수 있는 보안 기능도 설계 흐름에서 더 멀리 떨어져 있다.
반도체 회사에서 서브시스템을 만들고 있다면 공격자가 그 서브시스템에 어떻게 침입할지는 정말 이해하기 어렵다. 하지만 가상화의 관점에서 ADAS 시스템이라고 하면, 어떤 객체에 부딪칠지 여부를 감지하려고 하는 것이다. 공격자가 시스템을 접속한다면 디버그 포트와 같은 시스템에 대한 외부 입력일 수도 있고 OS와 같은 다른 도메인에서 사용자 코드나 다른 방법으로 액세스할 수도 있다. 하지만 공격자가 실제로 무언가를 적용한다면 ADAS 시스템의 행동에 영향을 줄 수 있다. 이러한 전체 동작을 모델링 할 수 있고 하드웨어에서 OS를 거쳐 어플리케이션 레벨까지 전체 시스템 레벨에서 모델링할 수 있다.
가상화는 기업은 프로세서의 성능늘 최대한 활용하고 아키텍처를 최적화하여 증가하는 소프트웨어의 복잡성을 해결할 수 있다. 또한 소프트웨어 개발, 통합 및 테스트를 가속화할 수 있는 새로운 도구의 온보딩이 필요하다. 하드웨어 가용성에 의존하면 지연, 불확실성 및 생산성이 제한된다. 가상 하드웨어 시뮬레이션에서 호스트 기반 실행까지 다양한 가상 프로토타입을 사용하여 하드웨어를 개발 목적으로 가상화는 개발을 조기에 시작하고, 더 생산적인 디버그 및 테스트를 구현하며, 서버 팜에서 개발을 확장하고, 협력 팀 간에 언제 어디서나 이러한 개발을 가능하게 하는 핵심 기술이다.
앞으로 더 많은 작업
자동차의 진화에 있어서의 난제의 규모는 여러 가지 방법으로 설명할 수 있는데, 그 중 하나는 자동차 개발의 V 모델에 대한 ISO 26262 요건의 오버레이이다. 개발 주기의 모든 시점에서 차량에 해당되지 않는 개발 단계도 적절히 회계처리해야 하며 추적 가능하고 테스트할 수 있어야 하며, 가상화는 여기서도 중요한 역할을 한다. 특히 안전에 중요한 시스템의 경우 가상화는 시스템 엔지니어링 프로세스의 모든 부분에 영향을 미치지만 테스트는 여전히 동떨어져있다. 안전성을 위해 수행되는 테스트나 설계 단계에서 이와 같은 것들은 설계 주기의 하드웨어 우위 때문에 공정의 후반부와 너무나 단절되어 있다. 특히 자동차에서는 하드웨어 중심이다.
자동차 OEM들은 소프트웨어 전문성을 키우기 위해 고군분투하고 있다. 어려움을 겪고 있는 것 중 하나는 하드웨어 중심 사고방식으로 가상화, 디지털화, 디지털 트윈은 실제 하드웨어에서 모든 것을 검증하는 것이 물리적으로 불가능하기 때문에 OEM 제조 업체에게 도움이 될 수 있다. 테스트는 설계에서 검증까지 단절되어 있으며 디지털 트윈과 가상화의 활용을 통한 추상화는 이러한 장벽을 깨는 데 도움이 되는 방법이다. 그리고 더 많은 자율적인 차량의 개발 과정을 가속화하고 개선할 수 있을 것이다.
[출처]
https://semiengineering.com/virtualization-in-the-car/
Edited by Lucy
'Tech.Trend' 카테고리의 다른 글
기술기업의 독점 그리고 시장정의(market definition) (0) | 2020.12.01 |
---|---|
주 정부 및 지방 정부가 자율차량의 ODD에 접근하려면... (0) | 2020.08.27 |
연결되고 자동화된 모빌리티 ‘C’ (0) | 2020.07.28 |
美 아칸소 교통부, 자율주행차 파일럿 프로그램 승인 (0) | 2020.07.14 |
일본 정부 및 민간기업의 자율주행 서비스 실증 프로젝트 동향 (0) | 2020.05.22 |