stringtranslate.com

Microblaze

MicroBlaze es un núcleo de microprocesador blando diseñado para matrices de puertas programables en campo (FPGA) de Xilinx . Como procesador de núcleo blando, 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 términos de la arquitectura de su conjunto de instrucciones, MicroBlaze es similar a la arquitectura DLX basada en RISC descrita en un popular libro de arquitectura informática de Patterson y Hennessy . Con pocas excepciones, MicroBlaze puede emitir una nueva instrucción en cada ciclo, manteniendo el rendimiento de un solo ciclo en la mayoría de las circunstancias.

El MicroBlaze tiene un sistema de interconexión versátil para soportar una variedad de aplicaciones integradas. El bus de E/S principal del MicroBlaze, la interconexión AXI , es un bus de transacciones mapeado en la memoria del sistema con capacidad maestro-esclavo. Las versiones anteriores del MicroBlaze usaban el bus PLB CoreConnect . La mayoría de las interfaces IP proporcionadas por el proveedor y de terceros se conectan directamente a AXI (o a través de una interconexión AXI). Para acceder a la memoria local (FPGA RAM ), MicroBlaze usa un bus LMB dedicado, que proporciona un rápido almacenamiento en chip. Los coprocesadores definidos por el usuario son compatibles a través de conexiones AXI4-Stream dedicadas. La interfaz de los coprocesadores puede acelerar algoritmos computacionalmente intensivos al descargar partes o la totalidad del cálculo a un módulo de hardware diseñado por el usuario.

Muchos aspectos del MicroBlaze pueden ser configurados por el usuario: el tamaño de la caché, la profundidad del pipeline (3 etapas, 5 etapas u 8 etapas), los periféricos integrados, la unidad de gestión de memoria y las interfaces de bus pueden personalizarse. La versión optimizada en área de MicroBlaze, que utiliza un pipeline de 3 etapas, sacrifica la frecuencia de reloj para reducir el área lógica. La versión optimizada en rendimiento expande el pipeline 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 rara vez se utilizan pero que son más caras de implementar en hardware se pueden agregar o eliminar de forma selectiva (por ejemplo, multiplicar, dividir y operaciones de punto flotante). Esta personalización permite a un desarrollador hacer las compensaciones de diseño adecuadas para un conjunto específico de requisitos de hardware host y software de aplicación.

Con la unidad de gestión de memoria, MicroBlaze es capaz de alojar sistemas operativos que requieren paginación y protección basadas en hardware, como el kernel de Linux . De lo contrario, está limitado a sistemas operativos con un modelo de memoria virtual y protección simplificado, por ejemplo, FreeRTOS o Linux sin soporte MMU . El rendimiento general de MicroBlaze es sustancialmente menor que el de un núcleo de CPU duro comparable (como el ARM Cortex-A9 en Zynq ).

MicroBlaze V se basa en la arquitectura RISC-V .

Vivado

Vivado Design Suite de Xilinx es el entorno de desarrollo para construir los sistemas de procesadores embebidos MicroBlaze (o ARM , consulte Zynq) actuales en FPGAs de Xilinx. Las versiones anteriores utilizaban el paquete de desarrollo EDK (Embedded Development Kit) de Xilinx.

Los diseñadores utilizan el Integrador IP Vivado para configurar y construir la especificación de hardware de su sistema integrado (núcleo del procesador, controlador de memoria, periféricos de E/S, etc.). El Integrador IP 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 integrado (de RTL al archivo de flujo de bits). Para el núcleo MicroBlaze, Vivado genera una lista de conexiones cifrada (no legible por humanos).

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

A los compradores de Vivado se les otorga una licencia perpetua para usar MicroBlaze en FPGAs de Xilinx sin regalías recurrentes. La licencia no otorga el derecho a usar MicroBlaze fuera de los dispositivos de Xilinx.

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

Código abierto

En junio de 2009, MicroBlaze se convirtió en la primera arquitectura de CPU blanda que se fusionó con el árbol de código fuente del núcleo principal de Linux. Este trabajo fue realizado por Michal Simek y contó con el apoyo de PetaLogix y Xilinx.

A partir de septiembre de 2009, el soporte para herramientas GNU de MicroBlaze también se incluye en 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 [2]

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

Clones

Otros procesadores de software

Véase también

Referencias

  1. ^ Xilinx (21 de agosto de 2002). "Hoja de datos del procesador de software MicroBlaze RISC de 32 bits" (PDF) .
  2. ^ "Cambios, nuevas características y correcciones en la serie de versiones GCC 4.6". 2011-03-15 . Consultado el 2011-03-15 . Se agregó compatibilidad con el objetivo integrado del procesador de núcleo blando Xilinx MicroBlaze (microblaze-elf).
  3. ^ "Notas de la versión de LLVM 2.7". releases.llvm.org . Consultado el 7 de abril de 2019 .
  4. ^ Christopher, Eric (24 de julio de 2013). «[LLVMdev] Desactivación y eliminación del backend MBlaze» . Consultado el 7 de abril de 2019 .

Enlaces externos