Введение
MicroBlaze — это программно-реализуемое микропроцессорное ядро, разработанное для полевых программируемых вентильных матриц (FPGA) Xilinx. Поскольку MicroBlaze является процессором с программно-реализуемым ядром, он полностью реализован в универсальной памяти и логической структуре FPGA Xilinx. MicroBlaze был представлен в 2002 году.
Обзор
С точки зрения архитектуры набора инструкций, MicroBlaze похож на архитектуру DLX на основе RISC, описанную в популярной книге по компьютерной архитектуре Паттерсона и Хеннесси. За редким исключением, MicroBlaze может выдавать новую инструкцию каждый цикл, поддерживая пропускную способность в один цикл в большинстве случаев. MicroBlaze имеет универсальную систему межсоединений для поддержки различных встраиваемых приложений. Основная шина ввода-вывода MicroBlaze, AXI interconnect, представляет собой системную шину с отображением памяти в адресное пространство, поддерживающую режимы работы "мастер-ведомый". В более ранних версиях MicroBlaze использовалась шина CoreConnect PLB. Большинство поставляемых производителями и сторонних IP-интерфейсов подключаются к AXI напрямую (или через AXI-соединение). Для доступа к локальной памяти (FPGA RAM) MicroBlaze использует выделенную шину LMB, обеспечивающую быстрое хранение данных на кристалле. Копроцессоры, определяемые пользователем, поддерживаются через выделенные соединения AXI4 Stream. Интерфейс сопроцессора может ускорить ресурсоемкие алгоритмы, перенося часть или всю вычислительную нагрузку на аппаратный модуль, разработанный пользователем. Многие аспекты MicroBlaze могут быть сконфигурированы пользователем: размер кэша, глубина конвейера (3-ступенчатый, 5-ступенчатый или 8-ступенчатый), встроенные периферийные устройства, блок управления памятью и шинные интерфейсы. Версия MicroBlaze, оптимизированная по площади, использующая 3-ступенчатый конвейер, жертвует тактовой частотой ради уменьшения занимаемой логической площади. Версия, оптимизированная по производительности, расширяет конвейер исполнения до 5 ступеней, обеспечивая максимальную скорость более 700 МГц (на FPGA семейства Virtex UltraScale+). Кроме того, ключевые инструкции процессора, которые редко используются, но более дороги в аппаратной реализации, могут быть выборочно добавлены или удалены (например, операции умножения, деления и с плавающей точкой). Такая настройка позволяет разработчику находить оптимальные компромиссы в проектировании для конкретного набора требований к аппаратному обеспечению и прикладному программному обеспечению. С блоком управления памятью MicroBlaze способен поддерживать операционные системы, требующие аппаратной реализации страничной организации памяти и защиты, такие как ядро Linux. В противном случае он ограничен операционными системами с упрощенной моделью защиты и виртуальной памяти, например, FreeRTOS или Linux без поддержки MMU. Общая пропускная способность MicroBlaze существенно ниже, чем у сопоставимого аппаратного ядра процессора (например, ARM Cortex A9 в Zynq). MicroBlaze V основан на архитектуре RISC V.
Вивадо
Vivado Design Suite от Xilinx – это среда разработки для создания современных встроенных процессорных систем MicroBlaze (или ARM, см. Zynq) на FPGA Xilinx. В более ранних версиях использовался пакет разработки EDK (Embedded Development Kit) от Xilinx. Разработчики используют Vivado IP Integrator для конфигурирования и создания аппаратной спецификации своей встроенной системы (ядра процессора, контроллера памяти, периферийных устройств ввода-вывода и т.д.). IP Integrator преобразует блочную схему разработчика в синтезируемое RTL-описание (Verilog или VHDL) и автоматизирует реализацию встроенной системы (от RTL до файла битового потока). Для ядра MicroBlaze Vivado генерирует зашифрованный (нечитаемый) нетлист. SDK управляет программным обеспечением, которое будет выполняться на встроенной системе. SDK, основанный на инструментарии GNU (GNU Compiler Collection, GNU Debugger), позволяет программистам разрабатывать, компилировать и отлаживать приложения на C/C++ для своей встроенной системы. Инструменты Xilinx предоставляют возможность запуска программного обеспечения в режиме симуляции или загрузки и выполнения на реальной системе с использованием подходящей платы FPGA. Покупатели Vivado получают бессрочную лицензию на использование MicroBlaze в FPGA Xilinx без уплаты периодических лицензионных отчислений. Лицензия не предоставляет права на использование MicroBlaze вне устройств Xilinx. Альтернативные компиляторы и инструменты разработки доступны от Altium, но для этого по-прежнему требуется установка и лицензия EDK.
Открытый исходный код
В июне 2009 года MicroBlaze стал первой архитектурой программно-реализуемого процессора, включенной в основную ветку исходного кода ядра Linux. Эту работу выполнил Михал Симек при поддержке компаний PetaLogix и Xilinx. С сентября 2009 года поддержка инструментов GNU для MicroBlaze также предоставляется в основные репозитории Фонда свободного программного обеспечения. Поддержка MicroBlaze включена в выпуски GCC, начиная с версии 4.6.
Поддержка была добавлена в LLVM в апреле 2010 года, но впоследствии удалена в июле 2013 года из-за отсутствия сопровождающего.