Наборы инструкций Cisc в автомобильных встраиваемых системах: пример
Введение: Роль архитектуры набора инструкций в автомобильных встроенных системах
Современные транспортные средства больше не являются чисто механическими сборками; они представляют собой высокоразвитые сети встроенных систем, которые управляют всем, от времени работы двигателя и передового управления переходами к информационно-развлекательным системам, расширенной помощи водителю и обновлениям прошивки по воздуху. В основе каждой из этих подсистем лежит процессор, чья архитектура набора инструкций (ISA) диктует, насколько эффективно может быть выполнено программное обеспечение. Две доминирующие философии ISA - Complex Instruction Set Computing (FLT: 0) CISC (FLT: 1)) и Reduced Instruction Set Computing (FLT: 2) RISC (FLT: 3)) - долго формировали компромиссы между плотностью кода, скоростью исполнения, потреблением энергии и сложностью оборудования. В автомобильных встроенных системах, где ограничения в реальном времени, надежность и давление затрат являются крайними, выбор ISA может быть разницей между адаптивной системой безопасности и катастрофическим сбоем.
В этой статье приводится подробное тематическое исследование наборов инструкций CISC в автомобильных встроенных системах, с акцентом на их применение в блоках управления двигателем (ECUs). В нем рассматриваются архитектурные сильные стороны CISC, конкретные требования автомобильной среды, реализация в реальном мире и текущие проблемы, с которыми инженеры должны ориентироваться. Цель состоит в том, чтобы предложить действенные идеи для разработчиков, системных архитекторов и лиц, принимающих решения, оценивающих варианты ISA для электроники транспортных средств следующего поколения.
Архитектура CISC: праймер
CISC архитектуры, впервые разработанные в 1970-х и 1980-х годах такими компаниями, как Intel, Motorola и IBM, определяются большим и универсальным набором инструкций. Отдельные инструкции могут выполнять многоступенчатые операции — загрузку данных из памяти, выполнение арифметики и хранение результата — в одном коде. Эта философия дизайна направлена на сокращение семантического разрыва между языками программирования высокого уровня и машинным кодом, позволяя разработчикам выражать сложные алгоритмы с меньшим количеством инструкций по сборке.
К ключевым характеристикам CISC относятся:
- Переменная длина команд : Инструкции варьируются от 1 до 15 байт (на x86, самом известном примере CISC), что позволяет использовать плотный код для памяти небольших программ.
- Комплексные режимы адресации: Прямая, косвенная, индексированная и базовая+оффсетная адресация позволяют осуществлять гибкий доступ к данным без нескольких явных операций.
- Микропрограммируемое управление: Большинство процессоров CISC декодируют сложные инструкции в серию микроопераций, выполняемых встроенным ПЗУ, упрощая логику управления, но добавляя задержку для каждой инструкции.
- Меньшее количество команд для каждой задачи : Поскольку каждая инструкция выполняет больше работы, программы, написанные для CISC, как правило, меньше, чем их эквиваленты RISC — значительное преимущество, когда память на чипе стоит дорого.
В отличие от этого, архитектуры RISC (ARM, MIPS, RISC-V) используют фиксированную длину команд (обычно 32 бита), небольшой набор однородных инструкций и конструкцию хранилища нагрузки, где доступ к памяти отделен от арифметических операций. Процессоры RISC часто достигают более высоких тактовых частот и меньшей мощности за операцию, но за счет большего размера кода и большего количества инструкций за программу. Понимание этих компромиссов имеет решающее значение при оценке CISC для автомобильных задач.
Исторически CISC доминировал на рынках настольных компьютеров и серверов через линейку x86, в то время как RISC процветал в мобильных и встроенных доменах. Однако в последние десятилетия граница размыта: современные процессоры x86 внутренне переводят инструкции CISC в микрооперации, подобные RISC, а последние архитектуры ARM включают некоторые функции, подобные CISC (например, условные инструкции AArch64 и множество загрузки / хранилища). Тем не менее, для высоконадежной, маломощной и детерминированной среды автомобильных ECU, чистые или почти чистые процессоры CISC продолжают использоваться в конкретных нишах.
Автомобили встраиваемые системы: требования и ограничения
Прежде чем погрузиться в тематическое исследование, важно понять уникальные требования, которые автомобильные приложения предъявляют к встроенным процессорам.
- Детерминизм в реальном времени : Контуры управления двигателем, антиблокировочное торможение и развертывание подушек безопасности должны выполняться в строгом диапазоне временных окон — часто в микросекундах.
- Высокая надежность и безопасность: Автомобильные системы должны работать безупречно в течение десятилетий при экстремальных температурах, вибрации и электромагнитных помехах. ISO 26262 (функциональная безопасность) требует строгой проверки как аппаратного, так и программного обеспечения.
- Эффективность питания: В то время как генератор двигателя вырабатывает электричество, рассеивание тепла ограничено. Процессоры должны потреблять минимальную мощность, чтобы избежать активного охлаждения, что добавляет стоимость и снижает надежность.
- Плотность кода: Флэш-память на чипе дорогая и дефицитная во многих ЭБУ. Меньшие изображения программ снижают стоимость БОМ (сборника материалов) и могут позволить использовать более дешевые микроконтроллеры.
- Долгий жизненный цикл продукта: платформа для транспортных средств часто работает в течение 10-15 лет, требуя, чтобы процессоры и инструменты разработки были доступны и поддерживались в течение десятилетий.
RISC обычно превосходит по энергоэффективности и высокой тактовой частоте, в то время как CISC может предложить превосходную плотность кода и иногда более быстрое выполнение сложных операций, таких как многоступенчатые алгоритмы управления, используемые в управлении двигателем.
Тематическое исследование: CISC в блоках управления двигателем
Блок управления двигателем (ECU) является одной из самых вычислительно интенсивных подсистем в транспортном средстве. Он должен считывать дюжину или более датчиков (положение колена, уровень кислорода, температура всасывания воздуха, угол дроссельной заслонки), вычислять время и продолжительность впрыска топлива, ускорение искры и скорость холостого хода, а затем приводить в действие соответствующие выходы - все в пределах временного окна одного цикла двигателя. Для двигателя 6000 оборотов в минуту это означает завершение всего цикла управления менее чем за 10 мс. Кроме того, современные ECU должны выполнять диагностику, мониторинг выбросов и связь с другими сетями транспортных средств.
Подробности осуществления
Ведущий европейский производитель автомобилей, называемый здесь «AutoTronic AG» для конфиденциальности, выбрал 32-битный микроконтроллер CISC из семейства Renesas RH850 для своих последних дизельных и бензиновых ECU. Серия RH850 построена вокруг фирменного ядра CISC, которое предлагает богатый набор инструкций, включая многократное накопление (MAC), насыщенную арифметику и одноцикловые сдвиги ствола. Эти инструкции предназначены для обработки сигналов и управления замкнутым контуром.
Программный стек был разработан в C с случайной ручной сборкой для критических циклов. Команда использовала компактный код CISC, чтобы соответствовать полному стеку управления двигателем, совместимому с OBD-II, в пределах 512 кБ Flash - впечатляющий подвиг, который потребовал бы по крайней мере 1 МБ Flash с сопоставимым ядром RISC. Ключевые функции, используемые в ISA, включали:
- Макро-операции для управляющих контуров: Инструкция выполнила полный кран фильтра FIR в одной операции, уменьшив как размер кода, так и время выполнения для сглаживания датчика.
- Арифметика памяти к памяти: Возможность загружать значение датчика, выполнять арифметическую операцию и хранить результат в регистре управления с одной командой сокращает количество циклов извлечения-декода почти на 40% в основной петле управления.
- Автоприрост и адресация декрементов: Доступ к массивам таблиц калибровки или компенсации был сделан без явной арифметики указателей, уменьшая двоичное и уменьшая давление регистра.
Результаты деятельности
Анализ времени выполнения в худшем случае (WCET) показал, что 90% циклов управления были потреблены тремя наиболее сложными процедурами: временем впрыска топлива, продвижением зажигания и мониторингом крутящего момента. Благодаря плотному набору инструкций весь цикл вписывается в сегмент 4-kB тесно связанной памяти (TCM), устраняя промахи кэша, которые могут вызвать дрожь.
Дополнительные преимущества наблюдаются:
- Сниженное энергопотребление: Для данного алгоритма ядро CISC выполняло примерно на 30% меньше инструкций, чем эквивалентное ядро RISC с той же тактовой частотой. Это напрямую переводилось в более низкую динамическую мощность (продукт емкости, напряжения и коэффициента активности) и снижение среднего тока ядра на 12%.
- Быстрее время разработки: Высокоуровневый характер инструкций CISC облегчил инженерам написание и проверку сложных выражений управления в бэкэндах C. Компилятор для RH850 агрессивно сопоставляет такие выражения для использования единых инструкций CISC, уменьшая необходимость в ручной оптимизации сборки.
- Меньшая программная память: Окончательный двоичный код составлял 570 кБ (включая диагностические процедуры и калибровки), по сравнению с предполагаемым объемом 780 кБ для реализации RISC. Это позволило производителю использовать более дешевое устройство Flash, экономя примерно 1,20 доллара за ECU — значительный объем производства 2 миллиона единиц в год.
Другие автомобильные приложения CISC
Хотя тематическое исследование ECU является наиболее заметным, процессоры CISC появляются в нескольких других автомобильных областях, где плотность кода или сложная математика имеют первостепенное значение.
Системы помощи водителю (ADAS)
Модули ADAS на основе раннего видения, такие как предупреждение о вылете полосы и распознавание сигналов трафика, выиграли от способности CISC обрабатывать данные пикселей переменной длины и матричные операции. Процессоры, такие как Infineon TriCore (хотя гибридный RISC / CISC) и некоторые пользовательские DSP с CISC-подобными функциями мультиаккумуляции, обычно использовались до того, как отрасль перешла на решения на основе GPU и нейронных процессоров. Даже сегодня некоторые ЭКУ ADAS среднего уровня используют микроконтроллеры CISC для критического арбитражного уровня безопасности, который объединяет данные датчиков с радаров и камер.
Единицы управления передачей (TCU)
Автоматическое управление передачей включает в себя высокоширотное соленоидное вождение, логику планирования сдвига и управление скольжением крутящего момента-конвертера. TCU требуют быстрой обработки прерываний и возможности выполнять PID-алгоритмы с замкнутым циклом с минимальными накладными расходами. Несколько поставщиков Tier-1 используют NXP MPC5777C, основанный на Power Architecture CISC MCU, именно для его комбинации кода высокой плотности и детерминированного исполнения. CISC ISA помогает поддерживать прошивку под строгим бюджетом Flash, обеспечиваемым местоположением модуля контроллера передачи - часто внутри самой передачи, где пространство и рассеивание тепла ограничены.
Информационно-развлекательная и связность
В информационно-развлекательной области происходит переход от чистых процессоров приложений RISC (например, Qualcomm Snapdragon) к гетерогенным архитектурам. Однако системы на чипах (SoC), используемые для телематики и информационно-развлекательных систем в автомобиле, часто содержат остров безопасности на основе CISC - отдельное, закаленное ядро, которое обрабатывает функции «всегда включено», такие как удаленный доступ без ключа, управление батареей и службы экстренных вызовов. Этот остров, как правило, серия ARM Cortex-R (которая имеет некоторые характеристики CISC), поддерживает соответствие ISO 26262 ASIL-B, в то время как основной процессор приложений работает на Android или Linux.
Вызовы и компромиссы
Несмотря на преимущества, продемонстрированные в корпусе ECU, CISC не является универсальным решением для автомобильных встраиваемых систем. Инженеры должны тщательно взвесить несколько недостатков.
- Повышенная аппаратная сложность: ядра CISC требуют больше транзисторов для микрокодовой ПЗУ, сложной логики декодера и динамического предсказания ветвей. Это повышает стоимость кремния и утечку мощности по сравнению с более простым ядром RISC. Для 32-битного MCU в объемном ECU премия площади матрицы для CISC может составлять 15-25%.
- Переменная задержка команд: Поскольку инструкции CISC могут выполнять различное количество микроопераций, количество циклов на инструкцию неоднородно. Это затрудняет гарантию времени выполнения в худшем случае (WCET) без обширного анализа и часто требует от разработчиков переоценки тактовой частоты или использования детерминированных кэшей.
- Утечка электроэнергии : ПЗУ микрокода и больший регистровый файл способствуют статическому потреблению энергии. В модулях с батарейным питанием (например, без ключа или в ECU с выходом в течение нескольких дней) даже милливатт статического тока может сократить продолжительность режима сна — критическая проблема для современных транспортных средств, которые могут быть припаркованы на недели.
- Составитель и зрелость инструмента: В то время как автомобильные компиляторы для ядер CISC, таких как Renesas RH850, являются зрелыми, они часто отстают от экосистем ARM/RISC-V с точки зрения оптимизационных пропусков и инструментов статического анализа.
- Долгосрочная доступность: Автомобильные платформы требуют гарантированного предложения в течение десятилетия или более. Архитектура на основе RISC, такая как ARM, широко распространена на нескольких литейных заводах, обеспечивая непрерывность. CISC IP часто является собственностью одного поставщика (например, Renesas, NXP PowerPC), создавая риск цепочки поставок, если этот поставщик прекращает линейку продуктов.
Эти проблемы означают, что CISC редко выбирают в современных автомобильных конструкциях, если нет четкого, количественного преимущества — чаще всего превосходная плотность кода для очень ограниченного бюджета памяти или необходимость в конкретной сложной инструкции, которая резко сокращает время выполнения по сравнению с многоступенчатой последовательностью RISC.
Направления будущего: CISC в эпоху автономного вождения и электромобилей
Поскольку автомобильная промышленность поворачивается к электромобилям и автономному вождению, роль CISC претерпевает трансформацию.
Неоднородные вычисления и архитектуры, управляемые доменами
Архитектура транспортных средств следующего поколения объединяет функциональность в менее мощные контроллеры домена. Например, «Контроллер домена динамики транспортного средства» может обрабатывать двигатель, трансмиссию, торможение и рулевое управление. В таких конструкциях высокопроизводительный кластер RISC (обычно ARM Cortex-A или RISC-V) обрабатывает тяжелый сжатие чисел для синтеза датчиков, в то время как меньшее CISC или гибридное ядро действует как супервизор безопасности и планировщик в режиме реального времени. Этот подход «большой-LITTLE» сохраняет преимущества плотности кода CISC для функций безопасности прошивки-света, при выгрузке вычислительных задач на сторону RISC.
Электромобильный двигатель Control
Для тяговых инверторов EV требуется чрезвычайно быстрое полевое управление (FOC) синхронными двигателями с постоянным магнитом. Алгоритм управления включает в себя несколько тригонометрических и координационно-трансформационных шагов (преобразования Кларка / Парка), которые естественным образом подходят для инструкций типа CISC. Некоторые производители добавляют расширения CISC-подобные одноинструкционные множественные данные (SIMD) к ядрам RISC по этой причине, но широко используются несколько специализированных MCU для управления двигателем, таких как серия Texas Instruments TMS320C2000 (CISC-подобный DSP) и STMicroelectronics STM32 G4 (Arm Cortex-M4 с инструкциями DSP, подобными CISC).
Обновления безопасности и внеземного обслуживания
С ростом программно-определяемых транспортных средств плотность кода остается ценной, потому что безопасные загрузочные изображения и прошивка шифрования должны вписываться в ограниченный ПЗУ. Небольшой кодовый след CISC облегчает реализацию надежного шифрования без внешней памяти. Кроме того, некоторые микроконтроллеры CISC предлагают аппаратное ускорение для криптографии с помощью выделенных расширений инструкций - естественная эволюция, которая усиливает случай для CISC в подключенных транспортных средствах.
Однако растущее доминирование RISC-V как открытого, расширяемого ISA может подорвать долю рынка CISC. Модульная конструкция RISC-V позволяет дизайнерам добавлять пользовательские инструкции (например, для бит-манипуляции или многократного накопления), которые имитируют плотный подход CISC к макро-инструкции, сохраняя при этом базовую простую и лицензируемую. Многие поставщики автомобилей активно оценивают RISC-V для функциональной безопасности ASIL-B и ASIL-D, предполагая, что будущее выбора ISA может быть не столько о жестком CISC против RISC-бинарного и больше о выборе правильных расширений инструкций для рабочей нагрузки.
Заключение
Данное тематическое исследование демонстрирует, что наборы инструкций CISC сохраняют жизнеспособную и ценную нишу в автомобильных встроенных системах, особенно в блоках управления двигателем, где плотность кода и способность выполнять сложные многоступенчатые операции в одной инструкции снижают стоимость, мощность и время разработки.Реализация Renesas RH850 доказала, что хорошо спроектированное ядро CISC может соответствовать строгим требованиям реального времени, обеспечивая измеримую экономию в флэш-памяти и динамическом токе.
Тем не менее, автомобильная экосистема переходит к гетерогенным вычислениям и открытым стандартам ISA, таким как RISC-V. Инженеры должны оценивать CISC не как выбор по умолчанию, а как целевой инструмент для задач с высокой плотностью, детерминированным управлением. Когда приложение требует глубокого сжатия кода и где стоимость дополнительной памяти перевешивает кремниевый штраф CISC, архитектура по-прежнему обеспечивает. Во многих других областях, особенно ADAS, информационно-развлекательные и будущие автономные платформы вождения, RISC или гибридные решения обеспечивают лучший баланс производительности, масштабируемости и зрелости экосистемы.
Ключевым выводом для системных архитекторов является проведение дисциплинированного количественного анализа бюджета памяти, времени выполнения в худшем случае, ограничений мощности и риска цепочки поставок, прежде чем брать на себя обязательства по ISA. наследие CISC в автомобильной промышленности далеко не закончилось; он продолжает развиваться вместе со своими аналогами RISC, гарантируя, что правильная архитектура доступна для конкретных требований каждой подсистемы.
Для дальнейшего чтения обратитесь к официальному описанию Renesas RH850 Automotive MCU family, в котором подробно описаны особенности CISC, используемые в данном тематическом исследовании.JSTOR статья о CISC vs. RISC во встроенных системах предоставляет контекст компромиссов производительности.Введение Arrow Electronics в RISC-V для автомобилей описывает, как новые ISA меняют конкурентный ландшафт.