ARM9 es un grupo de núcleos de procesador RISC ARM de 32 bits más antiguos con licencia de ARM Holdings para uso de microcontroladores . [1] La familia de núcleos ARM9 consta de ARM9TDMI, ARM940T, ARM9E-S, ARM966E-S, ARM920T, ARM922T, ARM946E-S, ARM9EJ-S, ARM926EJ-S, ARM968E-S, ARM996HS. Dado que los núcleos ARM9 se lanzaron de 1998 a 2006 , ya no se recomiendan para nuevos diseños de CI, sino que se prefieren los núcleos ARM Cortex-A , ARM Cortex-M , ARM Cortex-R . [1]
Información general | |
---|---|
Diseñada por | ARM Holdings |
Arquitectura y clasificación | |
Microarquitectura | ARMv4T |
Conjunto de instrucciones | BRAZO (32 bits) , pulgar (16 bits) |
Arquitectura y clasificación | |
---|---|
Microarquitectura | ARMv5TE |
Conjunto de instrucciones | BRAZO (32 bits) , pulgar (16 bits) |
Arquitectura y clasificación | |
---|---|
Microarquitectura | ARMv5TEJ |
Conjunto de instrucciones | ARM (32 bits) , Pulgar (16 bits) , Jazelle (8 bits) |
Descripción general
Con esta generación de diseño, ARM pasó de una arquitectura von Neumann ( arquitectura Princeton) a una arquitectura Harvard (modificada; es decir, caché dividida) con buses de instrucción y datos separados (y cachés), aumentando significativamente su velocidad potencial. [2] La mayoría de los chips de silicio que integran estos núcleos los empaquetarán como chips de arquitectura Harvard modificados , combinando los dos buses de direcciones en el otro lado de los cachés de CPU separados y las memorias estrechamente acopladas.
Hay dos subfamilias que implementan diferentes versiones de arquitectura ARM.
Diferencias con los núcleos ARM7
Las mejoras clave sobre los núcleos ARM7 , habilitadas al gastar más transistores, incluyen: [3]
- Disminución de la producción de calor y menor riesgo de sobrecalentamiento.
- Mejoras en la frecuencia del reloj. El cambio de una tubería de tres etapas a una de cinco etapas permite que la velocidad del reloj se duplique aproximadamente, en el mismo proceso de fabricación de silicio.
- Mejoras en el recuento de ciclos. Se midió que muchos binarios ARM7 no modificados tomaban aproximadamente un 30% menos de ciclos para ejecutarse en núcleos ARM9. Las mejoras clave incluyen:
- Cargas y almacenamientos más rápidos; muchas instrucciones ahora cuestan solo un ciclo. Esto es ayudado tanto por la arquitectura Harvard modificada (reduciendo la contención de bus y caché) como por las nuevas etapas de canalización.
- Exponer los enclavamientos de la tubería, lo que permite las optimizaciones del compilador para reducir el bloqueo entre las etapas
Además, algunos núcleos ARM9 incorporan instrucciones de "DSP mejorado", como una acumulación múltiple, para admitir implementaciones más eficientes de algoritmos de procesamiento de señales digitales .
El cambio desde una arquitectura de von Neumann implicó el uso de una caché no unificada, de modo que las búsquedas de instrucciones no desalojen los datos (y viceversa). Los núcleos ARM9 tienen señales de bus de direcciones y datos independientes, que los diseñadores de chips utilizan de diversas formas. En la mayoría de los casos, conectan al menos parte del espacio de direcciones en estilo von Neumann, utilizado tanto para instrucciones como para datos, generalmente a una interconexión AHB que se conecta a una interfaz DRAM y una interfaz de bus externa utilizable con memoria flash NOR . Estos híbridos ya no son procesadores de arquitectura pura de Harvard.
Licencia ARM
ARM Holdings no fabrica ni vende dispositivos de CPU basados en sus propios diseños, sino que otorga licencias de la arquitectura del procesador a las partes interesadas. ARM ofrece una variedad de términos de licencia, que varían en costo y entregables. Para todos los licenciatarios, ARM proporciona una descripción de hardware integrable del núcleo ARM, así como un conjunto completo de herramientas de desarrollo de software y el derecho a vender silicio fabricado que contiene la CPU ARM.
Personalización de silicio
Los fabricantes de dispositivos integrados (IDM) reciben la IP del procesador ARM como RTL sintetizable (escrito en Verilog ). De esta forma, tienen la capacidad de realizar optimizaciones y extensiones a nivel arquitectónico. Esto permite al fabricante lograr objetivos de diseño personalizados, como mayor velocidad de reloj, muy bajo consumo de energía, extensiones de conjuntos de instrucciones, optimizaciones de tamaño, soporte de depuración, etc. Para determinar qué componentes se han incluido en un chip de CPU ARM en particular, consulte el hoja de datos del fabricante y documentación relacionada.
Núcleos
Año | Núcleos ARM9 |
---|---|
1998 | ARM9TDMI |
1998 | ARM940T |
1999 | ARM9E-S |
1999 | ARM966E-S |
2000 | ARM920T |
2000 | ARM922T |
2000 | ARM946E-S |
2001 | ARM9EJ-S |
2001 | ARM926EJ-S |
2004 | ARM968E-S |
2006 | ARM996HS |
La familia ARM MPCore de procesadores multinúcleo admite software escrito utilizando los paradigmas de programación de multiprocesador asimétrico ( AMP ) o simétrico ( SMP ) . Para el desarrollo de AMP, cada unidad de procesamiento central dentro de MPCore puede verse como un procesador independiente y, como tal, puede seguir las estrategias tradicionales de desarrollo de un solo procesador. [4]
ARM9TDMI
ARM9TDMI es un sucesor del popular núcleo ARM7TDMI y también se basa en la arquitectura ARMv4T . Los núcleos basados en él admiten conjuntos de instrucciones ARM de 32 bits y Thumb de 16 bits e incluyen:
- ARM920T con 16 KB cada uno de caché de I / D y una MMU
- ARM922T con 8 KB cada uno de caché de I / D y una MMU
- ARM940T con caché y una unidad de protección de memoria (MPU)
ARM9E-S y ARM9EJ-S
ARM9E y su hermano ARM9EJ implementan la canalización ARM9TDMI básica , pero agregan soporte para la arquitectura ARMv5TE , que incluye algunas extensiones de conjuntos de instrucciones DSP-esque. Además, el ancho de la unidad del multiplicador se ha duplicado, reduciendo a la mitad el tiempo requerido para la mayoría de las operaciones de multiplicación. Admiten conjuntos de instrucciones de 32 bits, 16 bits y, a veces, de 8 bits.
- ARM926EJ-S con tecnología ARM Jazelle , que permite la ejecución directa de código de bytes Java de 8 bits en hardware y una MMU
- ARM946
- ARM966
- ARM968
Papas fritas
- ARM920T
- Samsung S3C2440
- Atmel AT91RM9200 [5]
- ARM926EJ-S
- Cypress Semiconductor EZ-USB FX3
- Tecnología de microchip (antes Atmel ) AT91SAM9260, [5] AT91SAM9G, [6] AT91SAM9M, [7] AT91SAM9N / CN, [8] AT91SAM9R / RL, [9] AT91SAM9X, [10] AT91SAM9XE [11] (ver AT91SAM9 )
- Nintendo Starlet ( coprocesador de Wii ) [12]
- Serie i.MX2 de NXP (antes Freescale Semiconductor ), [13] (ver I.MX ), Serie LPC3100 y LPC3200 [14]
- Texas Instruments OMAP 850, 750, 733, 730, L137, L138, 5912 (también 5948, que es una versión específica del cliente, hecha para Bosch)
- Controladora de gestión de placa base HP iLO 4 [15]
- Tecnologías 5V 5VT1310 / 1312/1314
- STMicroelectronics SPEAr300 / 600 [16]
- ARM940T
- Conexant CX22490 STB SoC
- ARM966E-S
- STMicroelectronics STR9 [17]
- Núcleo ARM9 sin referencia
- ASPEED AST2400
- Atmel AT91CAP9
- CSR Quatro 4300
- Atlas de centralidad III
- CPU Cirrus Logic EP9315 ARM9, 200 MHz
- Digi NS9215, NS9210 [18]
- HiSilicon Kirin K3V1
- Infineon Technologies S-GOLDlite PMB 8875
- LeapFrog LF-1000
- Nintendo NTR-CPU (CPU de Nintendo DS ), TWL-CPU (CPU de Nintendo DSi ; igual que la DS pero con una frecuencia de 133 MHz en lugar de 67 MHz)
- NXP Semiconductors LPC2900 , LH7A, (antes Freescale Semiconductor ) i.MX1x
- Nuvoton NUC900
- Marvell Kirkwood
- MediaTek MT1000, MT6235-39, MT6268, MT6516
- PRAGMATEC RABBITV3 (ARM920T rev 0 (v4l)) utilizado en Karotz )
- Qualcomm MSM6xxx
- Qualcomm Atheros AR6400
- Samsung S3C24xx
- STMicroelectronics Nomadik
- Texas Instruments OMAP 1
- Texas Instruments Sitara AM1x
- Texas Instruments TMS320DM365 / TMS320DM368 ARM9EJ-S
- VIA WonderMedia 8505 y 8650
- Zilog Encore! 32
Documentación
La cantidad de documentación para todos los chips ARM es abrumadora, especialmente para los recién llegados. La documentación para microcontroladores de décadas pasadas fácilmente se incluiría en un solo documento, pero a medida que los chips han evolucionado, también ha crecido la documentación. La documentación total es especialmente difícil de comprender para todos los chips ARM, ya que consta de documentos del fabricante de circuitos integrados y documentos del proveedor del núcleo de la CPU ( ARM Holdings ).
Un árbol de documentación de arriba hacia abajo típico es: diapositivas de marketing de alto nivel, hoja de datos para el chip físico exacto, un manual de referencia detallado que describe los periféricos comunes y otros aspectos de los chips físicos dentro de la misma serie, manual de referencia para el procesador central ARM exacto dentro de el chip, manual de referencia para la arquitectura ARM del núcleo que incluye una descripción detallada de todos los conjuntos de instrucciones.
- Árbol de documentación (de arriba a abajo)
- Diapositivas de marketing del fabricante de circuitos integrados.
- Fichas técnicas del fabricante de circuitos integrados.
- Manuales de referencia del fabricante de circuitos integrados.
- Manuales de referencia básicos de ARM.
- Manuales de referencia de arquitectura ARM.
El fabricante de circuitos integrados tiene documentos adicionales, que incluyen: manuales de usuario de la placa de evaluación, notas de aplicación, introducción al software de desarrollo, documentos de la biblioteca de software, erratas y más.
Ver también
- Arquitectura ARM
- Lista de arquitecturas y núcleos ARM
- JTAG
- Interrupción , manejador de interrupciones
- Sistema operativo en tiempo real , Comparación de sistemas operativos en tiempo real
Referencias
- ^ a b Página web de la familia ARM9; ARM Holdings.
- ^ Furber, Steve (2000). Arquitectura ARM System-on-Chip . pag. 344 . ISBN 0201675196.
- ^ "Rendimiento de los núcleos ARM9TDMI y ARM9E-S en comparación con el núcleo ARM7TDMI", Número 1.0, de fecha 9 de febrero de 2000, ARM Ltd.
- ^ "Código de muestra de MPCore" . Archivado desde el original el 11 de abril de 2015.
- ^ a b Soluciones basadas en ARM de Atmel Legacy; Atmel.
- ^ Microcontroladores SAM9G ARM9; Atmel.
- ^ Microcontroladores SAM9M ARM9; Pastilla.
- ^ Microcontroladores SAM9N / CN ARM9; Atmel.
- ^ Microcontroladores SAM9R / RL ARM9; Atmel.
- ^ Microcontroladores SAM9X ARM9; Atmel.
- ^ Microcontroladores SAM9XE ARM9; Atmel.
- ^ "Hardware / Starlet" . Wiibrew . Archivado desde el original el 16 de mayo de 2020 . Consultado el 14 de junio de 2020 .
- ^ Procesadores de aplicaciones i.MX28; NXP.
- ^ "Serie LPC3100 / 200: Microcontroladores basados en Arm9 | NXP" . www.nxp.com . Consultado el 27 de julio de 2018 .
- ^ https://csrc.nist.gov/csrc/media/projects/cryptographic-module-validation-program/documents/security-policies/140sp2574.pdf
- ^ https://www.st.com/en/microcontrollers-microprocessors/spear-arm-926-microprocessors.html
- ^ Microcontroladores STR9 ARM9; STMicroelectronics.
- ^ "Familia de procesadores NET + ARM NS9210 / NS9215 de 32 bits" (PDF) . Digi International .
enlaces externos
- Documentos oficiales ARM9
- Sitio web oficial de ARM9
- Manual de referencia de arquitectura: ARMv4 / 5/6
- Manuales de referencia básicos: ARM9E-S , ARM9EJ-S , ARM9TDMI , ARM920T , ARM922T , ARM926EJ-S , ARM940T , ARM946E-S , ARM966E-S , ARM968E-S
- Manuales de referencia del coprocesador: VFP9-S (punto flotante) , MOVE (MPEG4)
- Tarjetas de referencia rápida
- Instrucciones: Pulgar ( 1 ), ARM y Pulgar-2 ( 2 ), Punto flotante vectorial ( 3 )
- Códigos de operación: Pulgar ( 1 , 2 ), ARM ( 3 , 4 ), Directivas de ensamblador GNU 5 .