Технология виртуализации умных автомобилей (Часть 2)
Технология виртуализации умных автомобилей (Часть 2)

Предисловие:

Предыдущая статьяСодержание в основном знакомитвиртуализация Основные понятия о самой технологии,А также некоторые особенности технологии автомобильной виртуализации. Содержание этой статьи в основном сосредоточено на некоторых технических путях виртуализации и некоторых приложениях в отрасли.,Также приводите нашего менеджера виртуальных продукция машиностроения (Фотон Введение в гипервизор).

Дорожная карта технологии совместной работы гипервизора и виртуальных машин

(1) Полная виртуализация

Первоначальная виртуализация заключается в моделировании компьютерной системы с полным набором функций аппаратной системы с помощью программного обеспечения и запуске в изолированной среде. То есть программное виртуальное аппаратное устройство предоставляется для использования GuestOS. Преимущество заключается в том, что GuestOS не воспринимает внешнее реальное оборудование. среды и не нуждается в изменении.

Поскольку каждый раз, когда в GuestOS осуществляется доступ к полностью виртуализированному оборудованию, оно должно быть поймано в гипервизоре, что напрямую приводит к снижению производительности виртуализированного оборудования. Таким образом, оно обычно используется только для моделирования относительно простого оборудования, такого как последовательные порты. Моделирование оборудования может быть смоделировано непосредственно в гипервизоре или запрос может быть передан другим виртуальным машинам для моделирования, например, моделирование через QEMU в определенной виртуальной машине.

(2) Аппаратная виртуализация

Intel была первой, кто предложил технологию аппаратной виртуализации. Аппаратное обеспечение напрямую обеспечивает функции общего доступа, поддерживает доступ к нескольким гостевым ОС и снижает задержки и потери производительности, вызванные технологией программной виртуализации.

Intelпредлагается отдельно для процессора&Память、IO、Intel VT-x для сетей、Intel ВТ-д и Intel технология VT-c и т. д. По мере того как вычислительная мощность ARM увеличивается и развивается от мобильных до периферийных и даже облачных вычислительных центров, ARM также постоянно совершенствует свою технологию аппаратной виртуализации, такую ​​​​как преобразование таблицы страниц stage2, виртуальные исключения и т. д.

(3) Паравиртуализация

На этапе разработки, когда технология аппаратной виртуализации не является совершенной и мощной, или для совместного повторного использования некоторых сложных периферийных устройств, чтобы избежать проблем с производительностью, связанных с полной виртуализацией, можно использовать технологию паравиртуализации, в которой GuestOS и гипервизор взаимодействуют.

Эта технология обычно применяется для виртуализации устройств ввода-вывода. Для реализации виртуализации устройств ввода-вывода используются внешние и внутренние методы. Внешний драйвер реализован в гостевой ОС, а внутренний драйвер — в гипервизоре или HostOS. -end и back-end обычно реализуются в соответствии со стандартом VirtIO. Back-end Драйвер действует как фактическая сторона доступа к оборудованию.

В GuestOS внешний драйвер взаимодействует с внутренним драйвером через механизмы связи, такие как Virt Queue. Внешний драйвер передает запрос гостевой ОС внутреннему драйверу, а внутренний драйвер отправляет запрос. драйвер оборудования. После обработки результат отправляется обратно на внешний диск. Паравиртуализация обеспечивает более высокую производительность оборудования, чем полная виртуализация, и позволяет реализовать относительно сложное оборудование, такое как блочные устройства, сетевые карты, устройства отображения и т. д.

Гипервизор поддерживает прямое выделение аппаратных ресурсов гостевой ОС в виртуальной машине на ней, без необходимости трансляции адресов и инструкций через гипервизор. Например: ресурсы последовательного порта, ресурсы USB и другие ресурсы с богатыми интерфейсами могут быть напрямую выделены виртуальной машине через сквозную передачу.

Доступ к контроллерам устройств обычно осуществляется в режиме MMIO, поэтому вам нужно только сопоставить область адреса контроллера с виртуальной машиной, чтобы реализовать распределение контроллера устройства. В то же время вам также необходимо назначить виртуальное прерывание, соответствующее аппаратному прерыванию устройства. напрямую к виртуальной машине. Прозрачный метод передачи заключается в том, что виртуальная машина имеет эксклюзивный доступ к оборудованию, поэтому он является лучшим с точки зрения производительности.

В сценариях виртуализации в автомобиле используются как аппаратная виртуализация, так и паравиртуализация.

Поскольку используемое в настоящее время аппаратное обеспечение с архитектурой ARM64 поддерживает аппаратную виртуализацию, общее решение по сути представляет собой решение для паравиртуализации.

Продукты для виртуализации транспортных средств

Гипервизоры для виртуализации транспортных средств в настоящее время производятся многими отечественными и зарубежными производителями, такими как зарубежные гипервизор QNX, Opensynergy, гипервизор ACRN, гипервизор Mentor и т. д., отечественный гипервизор RAITE, гипервизор Alios и гипервизор Guoke Jishi's Photon и т. д.

Для массового производства автомобилей основным решением в отрасли являются, по сути, продукты QNX Hypervisor.

Гипервизор QNX относится к микроядерной архитектуре, а также адаптирован к нескольким платформам (Qualcomm, Renesas, NXP, Rockchip и т. д.). В настоящее время на внутреннем рынке мы видим относительно много комбинированных решений, использующих «Гипервизор QNX + Qualcomm 8155».

В настоящее время наиболее зрелые решения работают в области кабины. В связи с тенденцией интеграции кабины и водителя нижний уровень изолируется через гипервизор. В будущем будет важно использовать автоматические системы помощи при вождении, интеллектуальную кабину и высокую производительность. вычислительный шлюз на одном аппаратном направлении SOC.

Фотонный гипервизор

Cuguang Virtual Machine Manager — это продукт гипервизора, выпущенный Guoke Cushi. Он основан на архитектуре макроядра гипервизора I-типа и может поддерживать одновременную работу нескольких операционных систем виртуальных машин, таких как Linux, Android и RTOS, для реализации ЦП, памяти, периферийные устройства и т. д. Эффективная изоляция аппаратных ресурсов между операционными системами отвечает требованиям функциональной безопасности и информационной безопасности.

Менеджер виртуальных машин в основном состоит из следующих трех частей:

  1. Возможности виртуализации
  • Виртуализация процессора: работает на ARMv8 с разными уровнями EL
  • виртуализация памяти: двухэтапное сопоставление памяти VTTBR
  • Прерывание виртуализации:на основеGICv2/GICv3виртуализация Расширенные функции
  • Виртуализация Устройство: реализовать драйвер и заднюю часть на уровне гипервизора. часть / Агентский метод
  1. базовое ядро
  • Управление динамической памятью ядра
  • Вытесняемое планирование в реальном времени на основе приоритета
  • Поддержка прерываний для GICv2/GICv3
  • Поддержка структуры драйверов, поддержка clk, emmc и других драйверов
  1. BSP
  • Поддержка дцааппаратное программное обеспечение Конфигурация ресурса
  • Драйверы, связанные с платой, такие как последовательный порт

менеджер виртуальных машин(Photon Hypervisor)Некоторые основные функции

  1. Виртуализация процессора

Виртуализация ЦП позволяет нескольким виртуальным машинам совместно использовать физические ресурсы ЦП, перехватывать и имитировать выполнение конфиденциальных инструкций на виртуальных машинах.

Принцип виртуализации ЦП Chuguang Virtual Machine Manager основан на аномальном уровне ARMV8. Гипервизор обычно работает на уровне EL2, ядро ​​GuestOS работает на уровне EL1, а пользовательский режим GuestOS работает на уровне EL0. На самом деле, виртуализация ЦП в основном предназначена для решения проблемы переключения между различными состояниями.

Фактически, операционная система может выполнять переключение EL только тогда, когда возникает исключение (включая прерывание) или возвращается обработка исключения (включая прерывание).

Когда возникает исключение:

Есть два варианта: остаться на текущем EL или перейти на более высокий EL с возможностью понижения.

EL0 => EL1: SVC (system call)

EL1 => EL2: HVC (hypervisor call)

EL2 => EL3: SMC (secure monitor call)

Когда возвращается исключение:

Есть два варианта: остаться на текущем EL или перейти на более низкий EL.

Вы можете перейти к более низкому EL через ERET (возврат исключения, используя текущие SPSR_ELx и ELR_ELx). Адрес возврата сохраняется в ELR_ELx, а уровень исключения возврата сохраняется в M[3:0] в SPSR_ELx.

Изображение ниже может быть более интуитивным.

Виртуальная машина фактически состоит из нескольких VCPU. С точки зрения гипервизора каждый VCPU фактически соответствует определенной задаче.

Гипервизор сам по себе представляет собой операционную систему реального времени, включающую управление процессами, планирование процессов и другие функции. Задачи фактически делятся на два типа:

  • Одна – обычная задача,Например вHypervisorБудут очереди на работуtask,Задачи такого рода в основном выполняет сам гипервизор.,Мы можем назвать это нормальной задачей,Его особенность в том, что он не связан с VCPU.,
  • Еще есть задача, которая связана с VCPU.То естьVCPUбудет соответствоватьtask,В конечном итоге планирование на уровне гипервизора выполняется в единицах задач.

На рисунке ниже можно кратко объяснить процесс переключения между задачами.

Обычное переключение задач происходит от предварительной задачи к следующей, при этом некоторые регистры сохраняются и восстанавливаются.

Если задействовано переключение VCPU, помимо сохранения и восстановления регистров, связанных с задачами, необходимо сохранить и восстановить дополнительные регистры, такие как vgic и виртуальные часы, связанные с VCPU. Сюда также входит несколько ситуаций:

  • vcpu --> task Сохранить контекст виртуального процессора
  • task --> vcpu Восстановить контекст vcpu
  • vcpu --> vcpu держать&Восстановить контекст vcpu
  • task --> task Не включает контекст vcpu
  1. виртуализация памяти

Виртуализация памяти диспетчера виртуальных машин Cuguang — это двухэтапное сопоставление, основанное на виртуализации памяти ARMv8. Виртуальная машина завершает преобразование адреса этапа 1 через TTBRn_EL1, преобразуя VA, используемый виртуальной машиной, в промежуточный физический адрес (IPA, промежуточный физический адрес). Затем VTTBR_EL2 используется для завершения трансляции адреса на этапе 2 и преобразования IPA в PA. Ядро гипервизора работает на EL2, а используемая им память выполняет сопоставление адресов через TTBR0_EL2. На этом сопоставление конечного физического адреса завершено.

Изображение ниже более интуитивно понятно. Крайний левый угол представляет собой вид виртуальной машины. Помимо ядра, здесь вы видите также виртуальный адрес виртуальной машины. Затем он преобразуется в физический адрес виртуальной машины посредством сопоставления первого уровня (этап 1), а затем, наконец, преобразуется в физический адрес в HostOS посредством сопоставления второго уровня (этап 2), который представляет собой адрес, который оборудование может видеть.

Конкретные методы сопоставления различных типов адресов IPA виртуальных машин см. на следующем рисунке:

Различные типы адресов IPA виртуальных машин в конечном итоге будут сопоставлены с оборудованием разными методами сопоставления. например:

  • Вспышка: виртуальная вспышка,Используется для хранения файлов изображений, связанных с виртуальной машиной.,Память динамически применяется гипервизором,Сопоставление не 1:1
  • gicd:Прерывание виртуализациианалоговых устройств,Нет необходимости отображать в реальную память,Выполните симуляцию чтения и записи в гипервизоре.
  • RAM:виртуальная МашинаRAM-память, в стадии разработки 2 сопоставления выполняют сопоставление 1:1
  • Периферийная память MMIO: Периферийная память MMIO, в стадии разработки. 2 сопоставления выполняют сопоставление 1:1
  1. Прерывание виртуализации

Самый нижний уровень виртуализации прерываний в Basic Light Virtual Machine Manager основан на функциях расширения виртуализации GICv2/GICv3. Давайте возьмем в качестве примера GICv3. Он имеет модуль перераспределения. Мы можем понять, что каждый из них соответствует физическому процессору. Для поддержки виртуализации помимо предоставления физического интерфейса процессора существует также виртуальный интерфейс процессора. В основном мы используем функции виртуального процессора для виртуализации прерываний.

Итак, как это реализовать? Давайте возьмем GICv3 в качестве примера. Общий процесс таков:

1) Физическое прерывание отправляется от перераспределителя на физический интерфейс ЦП.

2) Гипервизор считывает информацию о прерывании и решает, отправлять ли прерывание на виртуальный интерфейс ЦП.

3) Гипервизор устанавливает регистр LR и вводит виртуальные прерывания.

4) В виртуальной машине EL1 генерируется прерывание, и виртуальная машина его обрабатывает.

  1. Виртуализация устройств

Вышеупомянутая виртуализация ЦП, виртуализация памяти и виртуализация прерываний являются наиболее основными функциями гипервизора, но на самом деле сложность и направленность всего гипервизора заключаются в виртуализации устройств.

Как понять виртуализацию устройств? Например, помимо процессора, памяти и некоторых контроллеров функций прерываний, аппаратное обеспечение также имеет множество периферийных устройств, таких как USB, аудио, камеры и другие устройства. Как мы можем предоставить эти периферийные устройства виртуальной машине? необходимо использовать функцию виртуализации устройства.

В настоящее время доступны два решения: прозрачная передача данных и совместное использование устройств. Различия между ними заключаются в следующем.

  • Прозрачная передача устройства — устройство используется исключительно виртуальной машиной.
  • Совместное использование устройств. Устройства могут совместно использоваться несколькими виртуальными машинами.

Например, в сценарии с несколькими виртуальными машинами оборудование имеет только одну сетевую карту. Когда виртуальной машине требуется внешний обмен данными через решение прозрачной передачи устройства, сетевая карта может использоваться только одной виртуальной машиной и устройством. является общим. Его могут использовать несколько виртуальных машин.

В наших продуктах мы в основном используем совместное использование устройств для виртуализации устройств.

О совместном использовании устройств,В настоящее время в отрасли существует два основных решения.,Прямо сейчассерверный метод хостаиСерверный метод прокси.

Разница между этими двумя методами заключается в том, что один из них заключается в реализации серверной части на уровне гипервизора, а другой — в реализации серверной части в одной из гостевых ОС. Оба метода имеют свои плюсы и минусы. Прежде всего, преимущество метода бэкенда хоста заключается в том, что перезапуск виртуальных машин не влияет друг на друга, и нет необходимости модифицировать ядро ​​виртуальной машины. -глубинное сотрудничество с производителями чипов/драйверов. С одной стороны, это универсально и адаптируемо. Рабочая нагрузка огромна, а также требует добавления множества модулей в гипервизор, что делает его относительно сложным и вызывает нестабильность.

Метод прокси-сервера является противоположным. Он может в полной мере использовать зрелую экосистему Linux. Кроме того, после того, как серверная часть реализована как GuestOS, гипервизор реализует только прокси-фреймворк, который, однако, является более легким и универсальным; виртуальная машина ВМ0 перезапускается, это повлияет на другие виртуальные машины. При этом ядро ​​виртуальной машины (бэкенд) также необходимо модифицировать.

Наш гипервизор может выбрать лучший способ реализации виртуализации устройств на основе различных условий адаптации оборудования.

Конечно, в виртуализации устройств есть более конкретные основные функции, а также есть и другие функциональные точки, помимо вышеупомянутых функций виртуализации, но место ограничено, и мы пока не будем их подробно представлять.

Благодаря постоянному углублению разработки продуктов наши продукты для управления виртуальными машинами теперь адаптированы для многих основных производителей микросхем, и мы продолжаем усердно работать над сертификацией функциональной безопасности. Мы продолжим предоставлять всем синхронизированный прогресс в продуктах. обращать внимание.

Если вы хотите узнать больше о Фотонный Ваш партнер по продуктам гипервизора,Вы можете оставлять сообщения в фоновом режиме,Мы будем общаться с вами дальше.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose