Articulo de referencia

MicroBlaze

MicroBlaze es un núcleo de microprocesador programable diseñado para matrices de puertas programables en campo (FPGA) de Xilinx . Como procesador de núcleo programable, MicroBla...

MicroBlaze es un núcleo de microprocesador programable diseñado para matrices de puertas programables en campo (FPGA) de Xilinx . Como procesador de núcleo programable, MicroBlaze se implementa completamente en la memoria de propósito general y la estructura lógica de las FPGA de Xilinx.

MicroBlaze se introdujo en 2002. [ 1 ]

Descripción general

En cuanto a su arquitectura de conjunto de instrucciones, MicroBlaze es similar a la arquitectura DLX basada en RISC descrita en un popular libro de arquitectura de computadoras de Patterson y Hennessy . Salvo algunas excepciones, MicroBlaze puede emitir una nueva instrucción en cada ciclo, manteniendo un rendimiento de un solo ciclo en la mayoría de los casos.

MicroBlaze cuenta con un sistema de interconexión versátil para admitir diversas aplicaciones embebidas. Su bus de E/S principal, la interconexión AXI , es un bus de transacciones mapeado a memoria del sistema con capacidad maestro-esclavo. Las versiones anteriores de MicroBlaze utilizaban el bus CoreConnect PLB. La mayoría de las IP de proveedores y terceros se conectan directamente a AXI (o a través de una interconexión AXI). Para acceder a la memoria local ( RAM de la FPGA ), MicroBlaze utiliza un bus LMB dedicado, que proporciona almacenamiento rápido en el chip. Se admiten coprocesadores definidos por el usuario mediante conexiones AXI4-Stream dedicadas. La interfaz del coprocesador puede acelerar algoritmos computacionalmente intensivos descargando parte o la totalidad del cálculo a un módulo de hardware diseñado por el usuario.

Muchos aspectos de MicroBlaze pueden ser configurados por el usuario: el tamaño de la caché, la profundidad de la tubería (3, 5 u 8 etapas), los periféricos integrados, la unidad de gestión de memoria y las interfaces de bus se pueden personalizar. La versión optimizada de MicroBlaze, que utiliza una tubería de 3 etapas, sacrifica la frecuencia de reloj para reducir el área lógica. La versión optimizada para el rendimiento amplía la tubería de ejecución a 5 etapas, lo que permite velocidades máximas de más de 700 MHz (en la familia de FPGA Virtex UltraScale+ ). Además, las instrucciones clave del procesador que se utilizan con poca frecuencia pero que son más costosas de implementar en hardware se pueden agregar o eliminar selectivamente (por ejemplo, operaciones de multiplicación, división y punto flotante). Esta personalización permite al desarrollador realizar las compensaciones de diseño adecuadas para un conjunto específico de requisitos de hardware del host y software de aplicación.

Gracias a su unidad de gestión de memoria, MicroBlaze puede alojar sistemas operativos que requieren paginación y protección basadas en hardware, como el kernel de Linux . De lo contrario, se limita a sistemas operativos con un modelo simplificado de protección y memoria virtual, como FreeRTOS o Linux sin soporte para MMU . El rendimiento general de MicroBlaze es considerablemente inferior al de un núcleo de CPU comparable (como el ARM Cortex-A9 del Zynq ).

MicroBlaze V se basa en la arquitectura RISC-V .

Fast Simplex Link (FSL) es una interfaz de 32 bits de ancho en MicroBlaze . Los canales FSL son interfaces de transmisión de datos unidireccionales punto a punto . [ 2 ] Un procesador MicroBlaze admite hasta ocho canales FSL. [ 3 ] Esta interfaz permite que los procesadores MicroBlaze se comuniquen con periféricos u otros procesadores. [ 4 ] El FSL se puede utilizar para extender la unidad de ejecución del procesador con aceleradores de hardware personalizados gracias a una interfaz dedicada de baja latencia a la canalización del procesador. Además, el mismo canal FSL se puede utilizar para transmitir o recibir palabras de control o de datos. La interfaz es FIFO , y un bit separado indica si la palabra transmitida o recibida es información de control o de datos. [ 5 ] FSL tiene baja latencia en comparación con el On-chip Peripheral Bus de CoreConnect . [ 6 ]

Vivado

Vivado Design Suite de Xilinx es el entorno de desarrollo para crear sistemas de procesadores integrados MicroBlaze (o ARM , véase Zynq) en FPGAs de Xilinx. Las versiones anteriores utilizaban el paquete de desarrollo EDK (Embedded Development Kit) de Xilinx.

Los diseñadores utilizan Vivado IP Integrator para configurar y construir la especificación de hardware de su sistema embebido (núcleo del procesador, controlador de memoria, periféricos de E/S, etc.). IP Integrator convierte el diseño de bloques del diseñador en una descripción RTL sintetizable ( Verilog o VHDL ) y automatiza la implementación del sistema embebido (desde RTL hasta el archivo bitstream). Para el núcleo MicroBlaze, Vivado genera una lista de conexiones encriptada (no legible por humanos).

El SDK gestiona el software que se ejecutará en el sistema embebido. Gracias al conjunto de herramientas GNU ( GNU Compiler Collection , GNU Debugger ), el SDK permite a los programadores escribir, compilar y depurar aplicaciones C/C++ para su sistema embebido. Las herramientas de Xilinx ofrecen la posibilidad de ejecutar el software en simulación o utilizar una placa FPGA adecuada para descargarlo y ejecutarlo en el sistema real.

Los compradores de Vivado obtienen una licencia perpetua para usar MicroBlaze en FPGAs de Xilinx sin regalías recurrentes. Esta licencia no otorga el derecho a usar MicroBlaze fuera de los dispositivos de Xilinx.

Altium ha puesto a disposición compiladores y herramientas de desarrollo alternativos, pero aún se requiere la instalación y la licencia de EDK.

Código abierto

En junio de 2009, MicroBlaze se convirtió en la primera arquitectura de CPU flexible en integrarse al código fuente principal del kernel de Linux. Este trabajo fue realizado por Michal Simek y contó con el apoyo de PetaLogix y Xilinx.

En 2009, se añadió soporte para las herramientas GNU de MicroBlaze a los repositorios principales de la Free Software Foundation. El soporte para MicroBlaze está incluido en las versiones de GCC a partir de la versión 4.6 [ 7 ].

Se agregó soporte a LLVM en abril de 2010, [ 8 ] pero posteriormente se eliminó en julio de 2013 [ 9 ] debido a la falta de un mantenedor.

Clones

  • aeMB, implementado en Verilog, licencia LGPL
  • Subconjunto de OpenFire, implementado en Verilog, licencia MIT.
  • MB-Lite, implementado en VHDL, licencia LGPL.
  • MB-Lite+, implementado en VHDL, licencia LGPL.
  • myBlaze, implementado en MyHDL , licencia LGPL
  • SecretBlaze, implementado en VHDL, licencia GPL.

Otros procesadores de software

Véase también

Referencias

  1. Xilinx (21 de agosto de 2002). "Hoja de datos del procesador suave RISC de 32 bits MicroBlaze" (PDF) .
  2. Sputh, Bernhard HC; Faust, Oliver; Allen, Alastair R. (2006). Diseño portátil basado en CSP para sistemas multinúcleo embebidos . Arquitecturas de procesos comunicantes. Ámsterdam: IOS Press. pág. 127. ISBN  9781586036713.
  3. Schaumont, Patrick R. (27 de noviembre de 2012). Introducción práctica al codiseño de hardware y software . Springer Science & Business Media. pág. 330. ISBN  978-1-4614-3737-6. Consultado el 2 de octubre de 2025 .
  4. Kretz, Moritz; Kugel, Andreas (2012). "Linux en plataformas FPGA: software de control para conectar periféricos personalizados" . ACM SIGBED Review . 9 (2): 12– 16. doi : 10.1145/2318836.2318838 . ISSN 1551-3688 . Recuperado el 2 de octubre de 2025 . 
  5. Lazanyi, J. (2005). Extensión del conjunto de instrucciones mediante el procesador Microblaze . Conferencia Internacional sobre Lógica Programable en Campo y Aplicaciones. IEEE. págs. 729–730 . doi : 10.1109/FPL.2005.1515829 . ISBN  978-0-7803-9362-2.
  6. Wu, Liming; Liu, Junxiu; Luo, Yuling (2009). La implementación y evaluación del método de codiseño hardware/software para el procesamiento rápido de imágenes mediante FPGA . Conferencia internacional sobre inteligencia computacional e ingeniería de software. pág. 1–4. doi : 10.1109/CISE.2009.5365959 . 
  7. "Cambios, nuevas características y correcciones de la serie de versiones GCC 4.6" . 15 de marzo de 2011. Consultado el 15 de marzo de 2011. Se ha añadido compatibilidad con el procesador de núcleo blando Xilinx MicroBlaze (microblaze-elf) para sistemas embebidos.
  8. "Notas de la versión LLVM 2.7" . releases.llvm.org . Consultado el 7 de abril de 2019 .
  9. Christopher, Eric (24-07-2013). " [ LLVMdev ] Desaprobando y eliminando el backend MBlaze" . Recuperado el 07-04-2019 .
  • MicroBlaze en el sitio web de Xilinx