Nios II es una arquitectura de procesador embebido de 32 bits diseñada específicamente para la familia de circuitos integrados de matriz de puertas programables en campo (FPGA) de Altera . Nios II incorpora muchas mejoras con respecto a la arquitectura original del procesador embebido Nios , lo que lo hace más adecuado para una gama más amplia de aplicaciones de computación embebida, desde el procesamiento de señales digitales (DSP) hasta el control de sistemas. Nios II es el sucesor del primer procesador embebido configurable de 16 bits de Altera, Nios, presentado en 2000. [ 1 ] Intel anunció la descontinuación de Nios II en 2023, siendo su sucesor Nios V , basado en la arquitectura RISC-V . [ 2 ]
Características principales
Al igual que el Nios original, la arquitectura Nios II es una arquitectura RISC de núcleo blando que se implementa completamente en los bloques de lógica programable y memoria de los FPGA de Altera. A diferencia de su predecesor, es un diseño completo de 32 bits :
- 32 registros de propósito general de 32 bits,
- Conjunto completo de instrucciones de 32 bits, ruta de datos y espacio de direcciones,
- Multiplicación y división de 32 × 32 con una sola instrucción, produciendo un resultado de 32 bits.
La naturaleza de núcleo flexible del procesador Nios II permite al diseñador del sistema especificar y generar un núcleo Nios II personalizado, adaptado a los requisitos específicos de su aplicación. Los diseñadores de sistemas pueden ampliar la funcionalidad básica del Nios II, por ejemplo, añadiendo una unidad de gestión de memoria (MMU) predefinida o definiendo instrucciones y periféricos personalizados.
Instrucciones personalizadas
Al igual que las instrucciones nativas de Nios II, las instrucciones definidas por el usuario aceptan valores de hasta dos registros fuente de 32 bits y, opcionalmente, escriben el resultado en un registro destino de 32 bits. Mediante el uso de instrucciones personalizadas, los diseñadores del sistema pueden ajustar el hardware para cumplir con los objetivos de rendimiento y, además, pueden gestionar fácilmente la instrucción como una macro en C.
Periféricos personalizados
En sistemas críticos para el rendimiento que dedican la mayor parte de los ciclos de la CPU a ejecutar una sección específica de código, un periférico definido por el usuario puede potencialmente descargar parte o la totalidad de la ejecución de un algoritmo de software a la lógica de hardware definida por el usuario , mejorando la eficiencia energética o el rendimiento de la aplicación.
Unidad de gestión de memoria
Introducida con Quartus 8.0, la MMU opcional permite a Nios II ejecutar sistemas operativos que requieren paginación y protección basadas en hardware, como el kernel de Linux . Sin una MMU, Nios se limita a sistemas operativos que utilizan un modelo simplificado de protección y memoria virtual, como μClinux y FreeRTOS .
Unidad de protección de memoria
Introducida con Quartus 8.0, la MPU opcional proporciona una protección de memoria similar a la que ofrece una MMU, pero con un modelo de programación más sencillo y sin la sobrecarga de rendimiento asociada a una MMU.
Familia de procesadores Nios II
El Nios II Classic se ofrece en 3 configuraciones diferentes: Nios II/f (rápido), Nios II/s (estándar) y Nios II/e (económico). El Nios II Gen2 se ofrece en 2 configuraciones diferentes: Nios II/f (rápido) y Nios II/e (económico).
Nios II/f
El núcleo Nios II/f está diseñado para ofrecer el máximo rendimiento a costa de un mayor tamaño. Las características del Nios II/f incluyen:
- Cachés de instrucciones y datos independientes (de 512 B a 64 KB )
- MMU o MPU opcional
- Acceso a hasta 2 GB de espacio de direcciones externas
- Memoria opcional estrechamente acoplada para instrucciones y datos.
- Pipeline de seis etapas para lograr el máximo DMIPS /MHz
- Multiplicador de hardware de un solo ciclo y selector de barril
- Opción de división de hardware opcional
- Predicción dinámica de ramificaciones
- Hasta 256 instrucciones personalizadas y aceleradores de hardware ilimitados.
- Módulo de depuración JTAG
- Mejoras opcionales del módulo de depuración JTAG, que incluyen puntos de interrupción de hardware, disparadores de datos y seguimiento en tiempo real.
Nios II/s
El núcleo Nios II/s está diseñado para mantener un equilibrio entre rendimiento y coste. Esta implementación del núcleo ya no es compatible con Altera Quartus II v.17 y versiones posteriores. Las características de Nios II/s incluyen:
- caché de instrucciones
- Hasta 2 GB de espacio de direcciones externas
- Memoria opcional de acoplamiento estrecho para instrucciones
- Tubería de cinco etapas
- Predicción de ramificación estática
- Opciones de multiplicación, división y desplazamiento por hardware
- Hasta 256 instrucciones personalizadas
- Módulo de depuración JTAG
- Mejoras opcionales del módulo de depuración JTAG, que incluyen puntos de interrupción de hardware, disparadores de datos y seguimiento en tiempo real.
Nios II/e
El núcleo Nios II/e está diseñado para lograr la menor utilización lógica posible de las FPGA. Esto resulta especialmente eficiente para aplicaciones de FPGA Cyclone II de bajo costo. Las características de Nios II/e incluyen:
Interfaz de tejido de conmutación Avalon
Nios II utiliza la matriz de conmutación Avalon como interfaz para sus periféricos integrados. En comparación con un bus tradicional en un sistema basado en procesador, que permite que solo un maestro acceda al bus a la vez, la matriz de conmutación Avalon, mediante un esquema de arbitraje del lado del esclavo, permite que varios maestros operen simultáneamente.
Procesos de desarrollo
El desarrollo de Nios II consta de dos etapas diferenciadas: la generación de hardware y la creación de software.
El desarrollo se realiza dentro de una aplicación de Altera llamada Embedded Design Suite (EDS). La EDS contiene un entorno de desarrollo integrado completo para gestionar tanto el hardware como el software en dos pasos separados:
Proceso de generación de hardware
Los diseñadores de hardware de Nios II utilizan la herramienta de integración de sistemas Qsys, un componente del paquete Quartus-II, para configurar y generar un sistema Nios. La interfaz gráfica de usuario (GUI) de configuración permite a los usuarios elegir el conjunto de características de Nios-II y añadir periféricos y bloques de E/S (temporizadores, controladores de memoria, interfaz serie, etc.) al sistema embebido. Una vez completada la especificación del hardware, Quartus-II realiza la síntesis, la colocación y el enrutamiento para implementar todo el sistema en la FPGA seleccionada. Qsys está sustituyendo al antiguo SOPC (System-on-a-Programmable-Chip) Builder, que también podía utilizarse para construir un sistema Nios II, y se recomienda para nuevos proyectos. [ 3 ]
proceso de creación de software
Un paquete independiente, denominado Embedded Design Suite (EDS), gestiona el desarrollo del software. Basado en el IDE Eclipse , EDS incluye un compilador de C/C++ (basado en el conjunto de herramientas GNU ), un depurador y un simulador de conjunto de instrucciones. EDS permite a los programadores probar su aplicación en simulación o descargar y ejecutar la aplicación compilada en el host FPGA real.
Dado que la cadena de desarrollo de C/C++ se basa en GCC , la gran mayoría del software de código abierto para Linux se compila y ejecuta con mínimas o ninguna modificación. También se han adaptado sistemas operativos de terceros a Nios II. Entre ellos se incluyen Micrium MicroC/OS-II , eCos , Segger Microcontroller embOS, ChibiOS/RT , μCLinux y FreeRTOS .
GCC 15 eliminó la compatibilidad con los procesadores Nios II debido a la descontinuación de Nios II. [ 4 ]
Licencias
Nios II es comparable a MicroBlaze , una CPU softcore de la competencia para la familia de FPGA de Xilinx . A diferencia de MicroBlaze, Nios II se puede licenciar para ASIC de celda estándar a través de un proveedor de propiedad intelectual externo, Synopsys Designware. Mediante la licencia de Designware, los diseñadores pueden portar diseños basados en Nios desde una plataforma FPGA a un dispositivo ASIC de producción en masa.
Véase también
Referencias
- ↑ Altera. "Información general sobre el procesador integrado Nios II" (PDF) .
- ↑ "Intel está descontinuando los códigos de pedido de IP enumerados en PDN2312 para IP de Nios® II" . Intel . Consultado el 22 de enero de 2025 .
- ↑ "5 razones para cambiar de SOPC Builder a Qsys" . Altera . Consultado el 16 de marzo de 2012 .
- ↑ "GCC 15 finaliza el soporte para los procesadores integrados Altera Nios II" . www.phoronix.com . Consultado el 22 de enero de 2025 .
Enlaces externos
- Sitio web de Intel sobre Nios II
- Foro de Nios II Embedded Design Suite
- Wiki de la comunidad de Nios
- Sistema operativo en tiempo real RTEMS
- Curso de microcontroladores ECE576 de Cornell utilizando NiosII
- Documentación de demostración de FreeRTOS para NiosII
- Curso UPB ECE31289 utilizando Nios II
- microprocesadores blandos