LEON (от испанского : león означает лев ) — это радиационно-устойчивое 32-битное ядро микропроцессора центрального процессора (ЦП) , реализующее архитектуру набора команд SPARC V8 (ISA), разработанную Sun Microsystems . Первоначально он был разработан Европейским центром космических исследований и технологий (ESTEC), входящим в Европейское космическое агентство (ЕКА), без какого-либо участия Sun. Более поздние версии были разработаны Gaisler Research под разными владельцами. Он описан на синтезируемом языке описания оборудования VHSIC ( VHDL ). LEON использует модель двойной лицензии: лицензия GNU Lesser General Public License (LGPL) и GNU General Public License (GPL) на бесплатное программное обеспечение с открытым исходным кодом (FOSS), которую можно использовать без лицензионной платы, или проприетарную лицензию, которую можно приобрести. для интеграции в собственный продукт. [3] [4] Ядро настраивается с помощью дженериков VHDL и используется в конструкциях систем на кристалле (SOC) как в исследовательских, так и в коммерческих целях. [5]
Проект LEON был начат Европейским космическим агентством (ЕКА) в конце 1997 года с целью изучения и разработки высокопроизводительного процессора для использования в европейских космических проектах. [6] Целью проекта было создание открытого, портативного и непатентованного процессора, способного удовлетворить будущие требования к производительности, совместимости программного обеспечения и низкой стоимости системы. Другая цель заключалась в том, чтобы иметь возможность производить чувствительные полупроводниковые процессы, устойчивые к однократному сбою (SEU). Для поддержания корректной работы при наличии СЭУ были необходимы расширенные функции обнаружения и обработки ошибок. Цель заключалась в том, чтобы обнаружить и допустить одну ошибку в любом регистре без вмешательства программного обеспечения, а также подавить последствия ошибок единичного переходного процесса (SET) в комбинационной логике.
Семейство LEON включает в себя первый язык описания оборудования (VHDL) LEON1 VHSIC, который использовался в тестовом чипе LEONExpress, разработанном по технологии 0,25 мкм для подтверждения концепции отказоустойчивости. Вторая конструкция LEON2 VHDL использовалась в процессорном устройстве AT697 от Atmel (F) и различных устройствах «система-на-кристалле». Эти две реализации LEON были разработаны ESA. Компания Gaisler Research, которая теперь является частью Cobham (а ранее Aeroflex Gaisler), разработала третий дизайн LEON3 и объявила о доступности четвертого поколения LEON, процессора LEON4. [7]
Процессор LEON может быть реализован в виде программируемой логики , такой как программируемая вентильная матрица (FPGA), или изготовлен в виде интегральной схемы специального назначения (ASIC). В этом разделе и последующих подразделах основное внимание уделяется процессорам LEON как программным IP-ядрам , а также суммируются основные характеристики каждой версии процессора и инфраструктура, в которую входит процессор, называемая дистрибутивом LEON .
Все процессоры серии LEON используют компьютер с сокращенным набором команд SPARC V8 (RISC) ISA. LEON2(-FT) имеет пятиэтапный конвейер , а более поздние версии имеют семиэтапный конвейер. LEON2 и LEON2-FT распространяются как система-на-кристалле, которую можно модифицировать с помощью инструмента графической конфигурации. Хотя конструкция LEON2(-FT) может быть расширена и повторно использована в других конструкциях, ее структура не предполагает повторного использования частей конструкции в качестве строительных блоков и не позволяет разработчикам легко включать в конструкцию новые IP-ядра.
Стандартный дистрибутив LEON2(-FT) включает следующие ядра поддержки: [8]
Ядра LEON3, LEON3FT и LEON4 обычно используются вместе с IP-библиотекой GRLIB. В то время как дистрибутивы LEON2 содержат один дизайн, который можно использовать в нескольких целевых технологиях, GRLIB содержит несколько дизайнов шаблонов, как для плат разработки FPGA , так и для целей ASIC , которые можно изменить с помощью инструмента графической конфигурации, аналогичного тому, который есть в дистрибутиве LEON2. Пакет LEON/GRLIB содержит большее количество ядер по сравнению с дистрибутивами LEON2, а также включает расширение Plug and Play (PnP) для встроенной шины Advanced Microcontroller Bus Architecture (AMBA). IP-ядра, доступные в GRLIB, также включают: [9]
Документацию по проектированию LEON в FPGA можно получить у производителя [10] и на сторонних ресурсах. [11]
Термин LEON2/LEON2-FT часто относится к конструкции системы на кристалле LEON2, которая представляет собой ядро процессора LEON2 вместе со стандартным набором периферийных устройств, доступных в дистрибутиве LEON2(-FT). Более поздние процессоры серии LEON используются в самых разных конструкциях и поэтому не так тесно связаны со стандартным набором периферийных устройств. В случае LEON3 и LEON4 название обычно относится только к ядру процессора, тогда как LEON/GRLIB используется для обозначения всей конструкции системы на кристалле.
LEON2 имеет следующие характеристики:
Процессор LEON2-FT — это устойчивая к сбоям (FT) версия процессора LEON2 с одним событием . Триггеры защищены тройным модульным резервированием , а вся внутренняя и внешняя память защищена битами EDAC или четности . К этому IP (распространяемому Европейским космическим агентством [8] ) применяются специальные лицензионные ограничения. Помимо других спутников, процессор использовался в промежуточном экспериментальном аппарате ЕКА (IXV) в 2015 году [14] и китайском лунном корабле «Чанъэ-4» . [15]
LEON3 — это синтезируемая модель 32-битного процессора VHDL, совместимая с архитектурой SPARC V8. Модель обладает широкими возможностями настройки и особенно подходит для систем на кристалле ( SoC ). Полный исходный код доступен по лицензии GNU GPL, что позволяет использовать его для любых целей без лицензионной платы. LEON3 также доступен по собственной лицензии, что позволяет использовать его в собственных приложениях.
Между двумя моделями процессоров LEON2 и LEON3 есть несколько различий. LEON3 включает поддержку SMP и семиэтапный конвейер, тогда как LEON2 не поддерживает SMP и имеет пятиэтапный конвейер.
LEON3FT — это отказоустойчивая версия стандартного процессора LEON3 SPARC V8. Он был разработан для работы в суровых космических условиях и включает в себя функции обнаружения и исправления ошибок единичного события (SEU) во всей встроенной оперативной памяти. Процессор LEON3FT поддерживает большую часть функций стандартного процессора LEON3 и добавляет следующие возможности:
Следующие функции стандартного процессора LEON3 не поддерживаются LEON3FT.
Ядро LEON3FT распространяется вместе со специальной FT-версией IP-библиотеки GRLIP. Возможно только распределение по спискам соединений.
Реализация FPGA под названием LEON3FT-RTAX была предложена для критически важных космических приложений. [16]
В январе 2010 года была выпущена четвертая версия процессора LEON. [7] В этом выпуске представлены следующие новые функции:
В разработке. [17]
Операционными системами реального времени , поддерживающими ядро LEON, в настоящее время являются RTLinux , PikeOS , eCos , RTEMS , Nucleus, ThreadX , OpenComRTOS , VxWorks (порт от Gaisler Research), LynxOS (также порт от Gaisler Research), POK [18] (бесплатная реализация ARINC653 , выпущенная под лицензией BSD) и ORK+, [19] ядро реального времени с открытым исходным кодом для приложений реального времени с высокой степенью целостности с профилем Ravenscar , Embox [20] настраиваемое ядро реального времени с открытым исходным кодом. ОС, которая позволяет использовать программное обеспечение Linux без Linux.
До 150 МГц в FPGA и 1500 МГц в ASIC 32 нм