BRAZO | |
---|---|
logotipo de A.R.M. | |
Desarrollador | BRAZO limitado |
Profundidad de bits | ARMv7 64/32 bits, hasta ARMv8 solo 64 bits |
presentado | 1985 |
Arquitectura | RISC |
Tipo de | registro-registro |
codificación SK |
ARMv8: fijo (64 bits), excepto en el modo de compatibilidad de código ARMv7 ARMv7/6: mixto (32 y 16 bits alineados) ARMv3/2: fijo (32 bits) |
Implementación de Transición | por banderas de condición |
Orden de bytes | Conmutable (big-endian), generalmente de bajo a alto (little-endian) |
Extensiones |
NEON, Thumb-2 (obligatorio desde ARMv7), Jazelle, VFPv4-D16, VFPv4 (todos obligatorios en ARMv8) En microcontroladores: FPv4-SP |
Archivos multimedia en Wikimedia Commons |
Arquitectura ARM (del inglés Advanced RISC Machine - una máquina RISC avanzada; a veces - Acorn RISC Machine ) - un sistema de comandos y una familia de descripciones y topologías listas para usar de núcleos de microprocesador / microcontrolador de 32 y 64 bits desarrollados por BRAZO limitado [1] .
Entre los licenciatarios de topologías de núcleo ARM listas para usar se encuentran AMD , Apple , Analog Devices , Atmel , Xilinx , Cirrus Logic , Intel (hasta el 27 de junio de 2006), Marvell , NXP , STMicroelectronics , Samsung , LG , MediaTek , Qualcomm , Sony , Texas Instruments , Nvidia , Freescale , Milandr , ELVIS [2] , HiSilicon , Baikal Electronics .
Familias de procesadores importantes: ARM7 , ARM9 , ARM11 y Cortex [3] [4] .
Muchos licenciatarios diseñan sus propias topologías centrales basadas en el conjunto de instrucciones ARM: DEC StrongARM , Freescale i.MX, Intel XScale , NVIDIA Tegra , ST-Ericsson Nomadik , Krait y Kryo en Qualcomm Snapdragon , Texas Instruments OMAP , Samsung Hummingbird , LG H13 , Apple A6 y HiSilicon K3 .
En 2006, alrededor del 98% de los más de mil millones de teléfonos móviles vendidos anualmente estaban equipados con al menos un procesador ARM [5] . A partir de 2009, los procesadores ARM representaron hasta el 90 % de todos los procesadores integrados de 32 bits [6] . Los procesadores ARM se utilizan ampliamente en productos electrónicos de consumo, incluidos teléfonos inteligentes, teléfonos móviles y reproductores, consolas de juegos portátiles, calculadoras, relojes inteligentes y periféricos informáticos, como discos duros o enrutadores.
Estos procesadores tienen un bajo consumo de energía, por lo que son muy utilizados en sistemas embebidos y dominan el mercado de dispositivos móviles, para lo cual este factor es crítico.
Después de lograr cierto éxito con la computadora BBC Micro , la compañía británica Acorn Computers pensó en pasar de los procesadores MOS Technology 6502 relativamente débiles a soluciones más potentes e ingresar al mercado de computadoras comerciales con la misma plataforma BBC Micro . Los procesadores como el Motorola 68000 y el 32016 de National Semiconductor no eran adecuados para esto, y el 6502 no era lo suficientemente potente para admitir una interfaz gráfica de usuario [7] .
La empresa necesitaba una arquitectura completamente nueva después de probar todos los procesadores disponibles y encontrarlos ineficientes. Acorn se tomó en serio el desarrollo de su propio procesador, y sus ingenieros comenzaron a estudiar la documentación del proyecto RISC , desarrollado en la Universidad de California en Berkeley . Pensaron que dado que un grupo de estudiantes logró crear un procesador completamente competitivo, entonces sus ingenieros no serían difíciles. Un viaje al Western Design Center (Arizona) demostró a los ingenieros Steve Ferber y Sophie Wilson (entonces conocido como Roger [8] ) que no necesitarían recursos increíbles para llevar a cabo este plan.
Wilson se dedicó a desarrollar el conjunto de instrucciones construyendo una simulación del nuevo procesador en una computadora BBC Micro. Su éxito en esto convenció a los ingenieros de Acorn de que estaban en el camino correcto. Pero antes de que pudieran ir más lejos, necesitaban más recursos, por lo que era hora de que Wilson fuera con el director ejecutivo de Acorn, Herman Hauser , y le explicara lo que estaba pasando. Después de que dio el visto bueno, se reunió un pequeño equipo para implementar el modelo de Wilson en hardware.
El proyecto oficial de la máquina Acorn RISC comenzó en octubre de 1983. VLSI Technology silicio, ya que ya había suministrado a Acorn chips ROM y algunos circuitos integrados personalizados El desarrollo estuvo a cargo de Wilson y Ferber . Su objetivo principal era lograr el manejo de interrupciones de baja latencia del MOS Technology 6502. La arquitectura de acceso a la memoria tomada del 6502 permitió a los desarrolladores lograr un buen rendimiento sin la costosa implementación del módulo DMA . El primer procesador fue producido por VLSI el 26 de abril de 1985, fue entonces cuando comenzó a funcionar y se llamó ARM1. Los primeros procesadores producidos en masa, llamados ARM2, estuvieron disponibles al año siguiente.
Su primer uso fue como segundo procesador en BBC Micro , donde se utilizó en el desarrollo de software de simulación, que completaba los chips de soporte de la computadora, además de acelerar el software CAD utilizado en el desarrollo de ARM2. Wilson optimizó el conjunto de instrucciones ARM para ejecutar BBC BASIC . El objetivo original de una computadora totalmente ARM se logró en 1987 con el lanzamiento de Acorn Archimedes.
El ambiente en torno al proyecto ARM era tan reservado que cuando Olivetti estaba negociando para comprar una participación mayoritaria en Acorn en 1985, no hablaron sobre el desarrollo del proyecto hasta el final de las negociaciones. En 1992, Acorn volvió a ganar el Queen's Award for Enterprise por ARM.
ARM2 tenía un bus de datos de 32 bits, un espacio de direcciones de 26 bits y 16 registros de 32 bits. El código del programa tenía que estar en los primeros 64 megabytes de memoria y el contador del programa estaba limitado a 26 bits, ya que los 4 bits superiores y los 2 inferiores de un registro de 32 bits servían como banderas. ARM2 se ha convertido quizás en el más simple de los procesadores de 32 bits más populares del mundo, con solo 30 mil transistores (en comparación, el procesador Motorola 68000 , fabricado 6 años antes, tenía 68 mil transistores). Gran parte de esta sencillez se debe a la falta de microcódigo (que en el 68000 ocupa entre un cuarto y un tercio del área del troquel) y la falta de caché , como ocurría con muchos procesadores de la época. Esta simplicidad condujo a bajos costos de energía, mientras que ARM fue mucho más productivo que el Intel 80286 . Su sucesor, el procesador ARM3, ya contaba con una caché de 4 KB, lo que aumentaba aún más el rendimiento.
A fines de la década de 1980, Apple Computer y VLSI Technology comenzaron a trabajar con Acorn Computers en nuevas versiones del núcleo ARM. El trabajo era tan importante que Acorn convirtió el equipo de desarrollo en 1990 en una nueva empresa llamada Advanced RISC Machines . Por esta razón, ARM a veces se abrevia como Advanced RISC Machines en lugar de Acorn RISC Machine . Advanced RISC Machines se convirtió en ARM cuando su empresa matriz ARM Holdings cotizó en la Bolsa de Valores de Londres y NASDAQ en 1998.
El nuevo trabajo de Apple-ARM finalmente se convirtió en ARM6, lanzado por primera vez en 1992. Apple usó el procesador ARM610 basado en ARM6 como base para su producto Apple Newton PDA. En 1994, Acorn comenzó a utilizar el ARM610 como procesador principal en sus computadoras PC RISC . DEC también compró una licencia para la arquitectura ARM6 (causando un poco de confusión ya que también fabricaban procesadores Alpha ) y comenzó a fabricar StrongARM. A 233 MHz, este procesador requería solo 1 vatio de potencia (las versiones posteriores requerían mucho menos). Intel obtuvo posteriormente los derechos de esta obra como resultado de una demanda. Intel aprovechó la oportunidad para complementar su línea heredada I960 con el procesador StrongARM y luego desarrolló su versión del núcleo bajo la marca XScale , que posteriormente vendió a Marvell .
El núcleo ARM mantuvo el mismo tamaño después de todos estos cambios. ARM2 tenía 30.000 transistores.
Básicamente, los procesadores de la familia han conquistado el segmento de productos móviles masivos (celulares, PDA) y sistemas embebidos de mediano y alto rendimiento (desde enrutadores de red y puntos de acceso hasta televisores). Algunas empresas anuncian el desarrollo de servidores eficientes basados en clusters de procesadores ARM [10] , pero hasta el momento estos son solo proyectos experimentales con una arquitectura de 32 bits [11] .
El anterior líder de la lista, la supercomputadora Summit (OLCF-4) , desarrollada conjuntamente por IBM (nodos de servidor), Mellanox (interconexión) y Nvidia (aceleradores de gráficos), e instalada en el Laboratorio Nacional de Oak Ridge , pasó a ser la segunda, perdiendo el honorable primer lugar para el nuevo sistema superior japonés Fugaku ( rus. Fugaku ), que mostró un resultado de alto rendimiento / altamente paralelo Linpack (HPL) de 415,5 petaflops. Este indicador supera las capacidades de Summit en 2,8 veces. Fugaku funciona con el SoC A64FX de 48 núcleos de Fujitsu, lo que lo convierte en el primer sistema número 1 en la lista TOP500 que cuenta con procesadores ARM. Con precisión simple o menor, que a menudo se usa para tareas de aprendizaje automático e inteligencia artificial, Fugaku alcanza un máximo de más de 1000 petaflops (1 exaflops). El nuevo sistema está instalado en el Centro de Ciencias Computacionales RIKEN (R-CCS) en Kobe, Japón.
Varias familias de procesadores ARM son actualmente significativas:
En 2010, el fabricante anunció los procesadores Cortex-A15 con nombre en código Eagle, ARM afirma que el núcleo Cortex A15 es un 40 por ciento más rápido a la misma frecuencia que el núcleo Cortex-A9 con la misma cantidad de núcleos por chip [12] . El producto, fabricado con una tecnología de proceso de 28 nm, tiene 4 núcleos, puede funcionar a una frecuencia de hasta 2,5 GHz y será compatible con muchos sistemas operativos modernos [13] [14] .
La popular familia de microprocesadores xScale de Marvell (hasta el 27 de junio de 2007 - Intel [15] ) es en realidad una extensión de la arquitectura ARM9 , complementada con el conjunto de instrucciones Wireless MMX , especialmente desarrollado por Intel para admitir aplicaciones multimedia.
Versiones del kernel ARM (tabla)familia del núcleo | Versión de arquitectura | Núcleo | Funciones | Caché (I/D)/ MMU | MIPS típicos a MHz | Uso |
---|---|---|---|---|---|---|
ARM1 | ARMv1 (obsoleto) | ARM1 | No | Sistema de evaluación ARM BBC Microprocesador | ||
ARM2 | ARMv2 (obsoleto) | ARM2 | Comando MUL agregado (multiplicar) | No | 4 MIPS a 8 MHz 0,33 DMIPS /MHz |
Bellota Arquímedes , Máquina de ajedrez |
ARMv2a (obsoleto) | ARM250 | Comandos integrados MEMC (MMU), GPU, SWP y SWPB (swap) agregados | No, MEMC1a | 7 MIPS a 12 MHz | Bellota Arquímedes | |
ARM3 | ARMv2a (obsoleto) | ARM2a | Caché usado por primera vez | 4 KB en total | 12 MIPS a 25 MHz 0,50 DMIPS/MHz |
Bellota Arquímedes |
BRAZO6 | ARMv3 (obsoleto) | ARM60 | Espacio de direcciones de memoria de 32 bits (en lugar de 26 bits) introducido por primera vez | No | 10 MIPS a 12 MHz | Multijugador interactivo 3DO , receptor GPS Zarlink |
ARM600 | Como ARM60, coprocesador matemático de coma flotante FPA10 | 4 KB en total | 28 MIPS a 33 MHz | |||
ARM610 | Como ARM60, caché, sin bus de coprocesador | 4 KB en total | 17 MIPS a 20 MHz 0,65 DMIPS/MHz |
Bellota Risc PC 600 , serie Apple Newton 100 | ||
ARM7 | ARMv3 (obsoleto) | ARM700 | 8 KB en total | 40 MHz | Prototipo de tarjeta de CPU Acorn Risc PC | |
ARM710 | Me gusta ARM700 | 8 KB en total | 40 MHz | Bellota Risc PC 700 | ||
ARM710a | Me gusta ARM700 | 8 KB en total | 40 MHz 0,68 DMIPS /MHz |
Bellota Risc PC 700 , Apple eMate 300 | ||
ARM7100 | Como ARM710a, SoC integrado | 8 KB en total | 18 MHz | Serie Psion 5 | ||
ARM7500 | Como ARM710a, SoC integrado. | 4 KB en total | 40 MHz | Bellota A7000 | ||
ARM7500FE | Al igual que ARM7500, "FE" agregó controladores de memoria FPA y EDO | 4 KB en total | 56 MHz 0,73 DMIPS/ MHz |
Computadora de red Acorn A7000+ | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | Transportador de 3 etapas, modo de pulgar | No | 15 MIPS a 16,8 MHz 63 DMIPS a 70 MHz |
Game Boy Advance , Nintendo DS , Apple iPod , Lego NXT , Atmel AT91SAM 7, Juice Box , NXP Semiconductors LPC2000 y LH754xx , Actel 's CoreMP7 |
ARM710T | Como ARM7TDMI, caché | 8 KB compartidos, MMU | 36 MIPS a 40 MHz | Serie Psion 5mx , Psion Revo /Revo Plus/Diamond Mako | ||
ARM720T | Como ARM7TDMI, caché | 8 KB compartidos , MMU con extensión de cambio de contexto rápido | 60 MIPS a 59,8 MHz | Mensajero inalámbrico Zipit , NXP Semiconductors LH7952x | ||
ARM740T | Como ARM7TDMI, caché | MPU | ||||
ARMv5TEJ | ARM7EJ-S | Pipeline de 5 etapas, Thumb, Jazelle DBX, comandos DSP avanzados | ninguna | |||
Brazo fuerte | ARMv4 | SA-110 | MMU de 16 KB/16 KB | 203MHz 1.0DMIPS/MHz |
Serie Apple Newton 2x00, Acorn Risc PC , Rebel/Corel Netwinder, Chalice CATS | |
SA-1100 | Como SA-110, SoC integrado | MMU de 16 KB/8 KB | 203 MHz | NetBook de Psion | ||
SA-1110 | Como SA-110, SoC integrado | MMU de 16 KB/8 KB | 206 MHz | LART (computadora) , Intel Assabet, Ipaq H36x0, Balloon2 , Zaurus SL-5x00, HP Jornada 7xx, serie Jornada 560 , Palm Zire 31 | ||
ARM8 | ARMv4 | ARM810 [16] | Pipeline de 5 etapas, predicción de rama estática, memoria de doble ancho de banda | 8 KB unificados, MMU | 84 MIPS a 72 MHz 1,16 DMIPS/MHz |
Prototipo de tarjeta de CPU Acorn Risc PC |
ARM9TDMI | ARMv4T | ARM9TDMI | Transportador de 5 etapas, Pulgar | ninguna | ||
ARM920T | Como ARM9TDMI, caché | 16 KB/16 KB, MMU con FCSE (extensión de cambio de contexto rápido) [17] | 200 MIPS a 180 MHz | Armadillo , Atmel AT91SAM 9, GP32 , GP2X (primer núcleo), Tapwave Zodiac ( Motorola i. MX1), Calculadoras Hewlett Packard HP-49/50 , Sun SPOT , Cirrus Logic EP9302, EP9307, EP9312, EP9315, Samsung S3C2442 ( HTC TyTN , FIC Neo FreeRunner [18] ), Samsung S3C2410 ( dispositivos de navegación TomTom ) [19] | ||
ARM922T | Como ARM9TDMI, caché | MMU de 8 KB/8 KB | Semiconductores NXP LH7A40x | |||
ARM940T | Como ARM9TDMI, caché | MPU de 4 KB/4 KB | GP2X (segundo núcleo), mini reproductor Meizu M6 [20] [21] | |||
ARM9E | ARMv5TE | ARM946E-S | Pulgar, instrucciones DSP mejoradas, cachés | memorias variables estrechamente acopladas, MPU | Nintendo DS , Nokia N-Gage , Canon PowerShot A470 , Canon EOS 5D Mark II [22] , chips Conexant 802.11, Samsung S5L2010 | |
ARM966E-S | Pulgar, instrucciones DSP mejoradas | sin caché, TCM | STM STR91xF, incluido Ethernet [23] | |||
ARM968E-S | Como ARM966E-S | sin caché, TCM | Semiconductores NXP LPC2900 | |||
ARMv5TEJ | ARM926EJ-S | Pulgar, Jazelle DBX, instrucciones DSP mejoradas | variables, TCM, MMU | 220 MIPS a 200 MHz | Teléfonos móviles: Sony Ericsson (series K, W); Siemens y Benq (serie x65 y posteriores); LG Arena , Galleta fresca de LG ; TI OMAP1710 ... OMAP1612 , OMAP-L137 , OMAP-L138 ; Qualcomm MSM6100…MSM6800; Freescale i.MX21 , i.MX27, Atmel AT91SAM 9, NXP Semiconductors LPC3000 , GPH Wiz, NEC C10046F5-211-PN2-A SoC: núcleo no documentado en el chip gráfico ATi Hollywood utilizado en Wii, [24] Samsung S3C2412 utilizado en Controlador de Squeezebox Duet . Squeezebox Radio ; Familia NeoMagic MiMagic MM6, MM6+, MM8, MTV; Buffalo TeraStation Live ( NAS ); Telechips TCC7801, TCC7901; Sistema ZMS-05 de ZiiLABS en un chip; Western Digital MyBook I Edición mundial | |
ARMv5TE | BRAZO996HS | Procesador sin reloj como ARM966E-S | sin cachés, TCM, MPU | |||
ARM10E | ARMv5TE | ARM1020E | Pipeline de 6 etapas, Thumb, instrucciones DSP mejoradas, (VFP) | MMU de 32 KB/32 KB | ||
ARM1022E | Me gusta ARM1020E | MMU de 16 KB/16 KB | ||||
ARMv5TEJ | ARM1026EJ-S | Pulgar, Jazelle DBX, instrucciones DSP mejoradas, (VFP) | variable, MMU o MPU | Western Digital MyBook II edición mundial; SoC Conexant so4610 y so4615 ADSL | ||
Xescala | ARMv5TE | 80200/IOP310/IOP315 | Procesador de E/S, pulgar, instrucciones DSP mejoradas | |||
80219 | 400/600 MHz | Thecus N2100 | ||||
IOP321 | 600 Bogo Mips a 600 MHz | Ionix | ||||
PIO33x | ||||||
PIO34x | 1-2 núcleos, Aceleración RAID | 32K/32K L1, 512K L2, MMU | ||||
PXA210/PXA250 | Procesador de aplicaciones, tubería de 7 etapas | PXA210: 133 y 200 MHz, PXA250: 200, 300 y 400 MHz | Zaurus SL-5600, iPAQ H3900, Sony CLIÉ NX60, NX70V, NZ90 | |||
PXA255 | MMU de 32 KB/32 KB | 400 Bogo Mips a 400 MHz; 371-533 MIPS a 400 MHz [25] | Gumstix basix & connex , Palm Tungsten E2, Zaurus SL-C860, Mentor Ranger & Stryder , iRex ILiad | |||
PXA263 | 200, 300 y 400 MHz | Sony CLIÉ NX73V, NX80V | ||||
PXA26x | predeterminado 400 MHz, hasta 624 MHz | Palma Tungsteno T3 | ||||
PXA27x | Procesador de aplicaciones | MMU de 32 KB/32 KB | 800 MIPS a 624 MHz | Gumstix verdex , "Trizeps-Modules" PXA270 COM, HTC Universal, HP hx4700, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim x30, x50 y x51 series, Motorola Q, Balloon3 , Trolltech Greenphone , Palm TX , Motorola Plataforma Ezx A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Siemens LOOX N560, Toshiba Portégé G500, Toshiba Portégé G900, Treo 650-755p, Zipit Z2 6 , HP iPaq navegador de negocios | ||
PXA800(E)F | ||||||
PXA3XX (nombre en código "Monahans") | PXA31x tiene un acelerador de gráficos de hardware | 32 KB/32 KB L1, TCM, MMU | 800 MIPS a 624 MHz | alex pantalla alta | ||
PXA900 | Blackberry 8700, Blackberry Perla (8100) | |||||
IXC1100 | Procesador de plano de control | |||||
IXP2400/IXP2800 | ||||||
IXP2850 | ||||||
IXP2325/IXP2350 | ||||||
IXP42x | NSLU2 IXP460/IXP465 | |||||
BRAZO11 | ARMv6 | BRAZO1136J(F)-S [26] | Pipeline de 8 etapas, SIMD , Thumb, Jazelle DBX, (VFP), instrucciones DSP mejoradas | variable, UMM | 740 @ 532-665 MHz (SoC i.MX31), 400-528 MHz | TI OMAP2420 ( Nokia E90 , Nokia N93 , Nokia N95 , Nokia N82 ), Zune , BUGbase [1] , Nokia N800 , Nokia N810 , Qualcomm MSM7200 (con coprocesador ARM926EJ-S integrado a 274 MHz, utilizado en Eten Glofiish , HTC TyTN II , HTC Nike ), Freescale i.MX31 (utilizado en el Zune original de 30 gb y Toshiba Gigabeat S), Freescale MXC300-30 ( Nokia E63 , Nokia E71 , Nokia E72 , Nokia 5800 , Nokia E51 , Nokia 6700 Classic , Nokia 6120 Classic , Qualcomm MSM7201A como se ve en HTC Dream , HTC Magic , Motorola ZN5 , Motorola E8 , Motorola VE66 , Nokia 6210 Navigator , Nokia 6220 Classic , Nokia 6290 , Nokia 6710 Navigator , Nokia 6720 Classic , Motorola Z6 , HTC Hero y Samsung SGH- i627 (Propel Pro) , Qualcomm MSM7227/MSM7227T, HTC Legend , HTC Wildfire S , LG P500, LG GT540, [27] [28] |
ARMv6T2 | ARM1156T2(F)-S | Pipeline de 9 etapas, SIMD , Thumb-2, (VFP), instrucciones DSP mejoradas | variable, UPM | |||
ARMv6KZ | BRAZO1176JZ(F)-S | Como ARM1136EJ(F)-S | variable, MMU+Zona de Confianza | Apple iPhone (original y 3G) , Apple iPod touch (1ra y 2da generación) , Conexant CX2427X , Motorola RIZR Z8 , Motorola RIZR Z10 , NVIDIA GoForce 6100 [29] ; Mediatek MT6573 [30] ; Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60 , Samsung S3C6410 (por ejemplo , Samsung Moment ), S3C6430 [31] | ||
ARMv6K | ARM11MPCore | Como ARM1136EJ(F)-S, SMP de 1-4 núcleos | variable, UMM | Nvidia APX 2500 | ||
familia del núcleo | Versión de arquitectura | Núcleo | Funciones | Caché (I/D)/MMU | MIPS típicos a MHz | Aplicaciones |
Corteza | ARMv7-A | Corteza-A5 | VFP, NEON, Jazelle RCT y DBX, Thumb-2, canalización de 8 etapas, en orden, SMP de 1 a 4 núcleos | variable (L1), MMU+Zona de Confianza | hasta 1500 (1,5 DMIPS/MHz) | "Gorrión" (nombre en clave ARM) [32] [33] [34] |
Corteza-A8 | VFP, NEON, Jazelle RCT, Pulgar-2; Tubería de 13 etapas, en orden, 2 decodificadores [35] | variable (L1+L2), MMU+Zona de Confianza | hasta 2000 (2,0 DMIPS/MHz en velocidad de 600 MHz a más de 1 GHz) | Serie TI OMAP3xxx , SBM7000, Oregon State University OSWALD , Gumstix Overo Earth , Pandora , Apple iPhone 3GS , Apple iPod touch (3.ª generación) , Apple iPad ( procesador Apple A4 ), Apple iPhone 4 ( procesador Apple A4 ), Archos 5 , Archos 101 , FreeScale i.MX51- SOC , BeagleBoard , Motorola Droid , Motorola Droid X , Palm Pre , Samsung Omnia HD , Samsung Wave S8500 , Nexus S , Sony Ericsson Satio , Touch Book , Nokia N900 , Meizu M9 , sistema ZiiLABS ZMS-08 en un chip, Boxchip A13 | ||
Corteza-A9 | Perfil de aplicación, (VFP), (NEON), Jazelle RCT y DBX, Thumb-2, superescalar de emisión especulativa fuera de servicio (2 decodificadores); 9-12 [35] etapas de tubería | MMU+Zona de confianza | 2.5DMIPS/MHz | Apple iPhone 4S , Apple iPad 2 ( Apple A5 ), MediaTek MT6575/6515M, iconBIT NetTAB SKY 3G | ||
Cortex-A9 MPCore | Como Cortex-A9, SMP de 1-4 núcleos | MMU+Zona de confianza | 10 000 DMIPS a 2 GHz en rendimiento optimizado TSMC 40G (¿cuatro núcleos?) (2,5 DMIPS/MHz por núcleo) | PlayStation®Vita , TI OMAP4430/4440 , ST-Ericsson U8500, Nvidia Tegra2 , Samsung Exynos 4210, MediaTek MT6577/6517 | ||
Cortex-A15 MPCore | SMP de 1 a 32 núcleos; Superescalar fuera de orden (3 decodificadores); más de 15 etapas de transporte [35] ; VFPv4, NEÓN [36] | UMM, LPAE | 3,5 DMIPS/MHz/núcleo; 1,0 GHz - 2,5 GHz (@ 28 nm [35] ) | |||
Cortex-A7 MPCore [37] | FPU,NEÓN; En orden (1 decodificador); Transportador de 8 etapas. | UMM, LPAE | 1,9 DMIPS/MHz/CPU; 0,8-1,5 GHz (@28nm) | (Broadcom, Freescale, HiSilicon, LG, Samsung, STEricsson, Texas Instruments, MediaTek) | ||
ARMv7-R | Corteza-R4(F) | Perfil integrado, pulgar-2, (FPU) | caché variable, MPU opcional | 600 DMIPS a 475 MHz | Broadcom es un usuario, TI TMS570 | |
ARMv7-ME | Cortex-M4 (nombre en código "Merlín") [38] | Perfil de microcontrolador, tanto Thumb como Thumb-2, FPU. Hardware MAC, SIMD e instrucciones de división | MPU opcional | 1,25 DMIPS/MHz | Semiconductores NXP , STM32 , TI Stellaris LM4F | |
ARMv7-M | Corteza-M3 | Perfil de microcontrolador, solo Thumb-2. instrucción de división de hardware | sin caché, MPU opcional | 125 DMIPS a 100 MHz | TI Stellaris , STM STM32 , NXP LPC1700 , Toshiba TMPM330FDFG , Ember 's EM3xx Series, Atmel AT91SAM 3, Europe Technologies EasyBCU , Energy Micro 's EFM32 , Actel 's SmartFusion , Milandre 1986BE91T [2] | |
ARMv6-M | Cortex-M0 (nombre en código "Swift") [39] | Perfil de microcontrolador, subconjunto Thumb-2 (instrucciones Thumb de 16 bits y BL, MRS, MSR, ISB, DSB y DMB) | Sin caché | 0.9DMIPS/MHz | NXP Semiconductors NXP LPC1100 [40] , Triad Semiconductor [41] , Melfas [42] , Chungbuk Technopark [43] , Nuvoton [44] , austriamicrosystems [45] , Milandre K1986BE2T [3] | |
Corteza-M1 | FPGA específico, perfil de microcontrolador, subconjunto Thumb-2 (instrucciones Thumb de 16 bits y BL, MRS, MSR, ISB, DSB y DMB) | Ninguno, memoria fuertemente acoplada opcional | Hasta 136 DMIPS @ 170 MHz [46] (0.8 DMIPS/MHz, [47] MHz alcanzable dependiente de FPGA) | Los dispositivos Actel ProASIC3, ProASIC3L, IGLOO y Fusion PSC , Altera Cyclone III , otros productos FPGA también son compatibles, por ejemplo , Synplicity | ||
familia del núcleo | Versión de arquitectura | Núcleo | Funciones | Caché (I/D)/ MMU | MIPS típicos a MHz | Aplicaciones |
Hace tiempo que existe una guía de referencia de la arquitectura ARM que delimita todos los tipos de interfaces que admite ARM, ya que los detalles de implementación de cada tipo de procesador pueden variar. La arquitectura ha evolucionado con el tiempo y desde ARMv7 se han definido 3 perfiles:
Los perfiles pueden admitir menos comandos (comandos de cierto tipo).
El procesador puede estar en uno de los siguientes modos de funcionamiento:
El cambio del modo del procesador ocurre cuando ocurre una excepción apropiada o al modificar el registro de estado.
Para mantener el dispositivo limpio, simple y rápido, la fabricación ARM original se realizó sin microcódigo , como el procesador 6502 de 8 bits más simple utilizado en las microcomputadoras anteriores de Acorn Computers .
Conjunto de instrucciones ARMEl modo en el que se ejecuta el conjunto de instrucciones de 32 bits.
Conjunto de instrucciones base ARM: [49]
ADC, ADD, AND, B/BL, BIC, CMN, CMP, EOR, LDM, LDR/LDRB, MLA, MOV, MUL, MVN, ORR, RSB, RSC, SBC, STM, STR/STRB, SUB, SWI, SWP, EQT, TST
Conjunto de comandos de pulgarPara mejorar la densidad del código, los procesadores que comienzan con ARM7TDMI están equipados con un modo de "pulgar". En este modo, el procesador ejecuta un conjunto alternativo de instrucciones de 16 bits. La mayoría de estas instrucciones de 16 bits se traducen en instrucciones ARM normales. La reducción en la longitud de las instrucciones se logra ocultando algunos operandos y limitando la direccionabilidad en comparación con el modo de conjunto de instrucciones ARM completo.
En el modo Thumb, los códigos de operación más pequeños tienen menos funcionalidad. Por ejemplo, solo las ramas pueden ser condicionales y muchos códigos de operación están limitados a acceder solo a la mitad de los registros del procesador principal. Los códigos de operación más cortos generalmente dan como resultado una mayor densidad de código, aunque algunos códigos de operación requieren instrucciones adicionales. En situaciones en las que el puerto de memoria o el ancho del bus están limitados a 16 bits, los códigos de operación del modo Thumb más cortos son mucho más rápidos que los códigos de operación ARM normales de 32 bits, ya que se debe cargar menos código en el procesador con un ancho de banda de memoria limitado.
El hardware como Game Boy Advance normalmente tiene una pequeña cantidad de RAM disponible con un canal de datos completo de 32 bits. Pero la mayoría de las operaciones se realizan a través de un canal de información de 16 bits o más estrecho. En este caso, tiene sentido usar el código Thumb y optimizar manualmente algunas secciones de código pesadas cambiando a instrucciones ARM completas de 32 bits.
El primer procesador con un decodificador de comandos Thumb fue el ARM7TDMI. Todos los procesadores de la familia ARM9 , así como XScale , tenían un decodificador de comandos Thumb incorporado.
Conjunto de instrucciones Thumb-2Thumb-2 es una tecnología introducida en el núcleo ARM1156, que se anunció en 2003. Amplía el conjunto limitado de instrucciones Thumb de 16 bits con instrucciones adicionales de 32 bits para darle un ancho adicional al conjunto de instrucciones. El objetivo de Thumb-2 es lograr una densidad de código similar a la de Thumb y un rendimiento del conjunto de instrucciones ARM de 32 bits. Podemos decir que en ARMv7 se logró este objetivo.
Thumb-2 amplía las instrucciones ARM y Thumb con aún más instrucciones, incluida la manipulación de campos de bits, la bifurcación de tablas y la ejecución condicional. El nuevo "Lenguaje ensamblador unificado" (UAL) admite la creación de comandos para ARM y Thumb desde el mismo código fuente. Las versiones ARMv7 de Thumb parecen código ARM. Esto requiere precaución y el uso del nuevo comando if-then, que admite la ejecución de hasta 4 comandos de estado de prueba consecutivos. Se ignora durante la compilación del código ARM, pero genera comandos durante la compilación del código ARM. Por ejemplo:
; si (r0 == r1) CMP r0 , r1 ITE EQ ; BRAZO: sin código ... Pulgar: instrucción de TI ; entonces r0 = r2; MOVEQ r0 , r2 ; BRAZO: condicional; Pulgar: condición vía ITE 'T' (entonces) ; de lo contrario r0 = r3; MOVIMIENTO r0 , r3 ; BRAZO: condicional; Pulgar: condición a través de ITE 'E' (si no) ; recuerde que la instrucción Thumb MOV no tiene bits para codificar "EQ" o "NE"Todos los troqueles ARMv7 admiten el conjunto de instrucciones Thumb-2, mientras que algunos troqueles, como el Cortex-m3, solo admiten Thumb-2. Los troqueles Cortex y ARM11 restantes admiten conjuntos de instrucciones Thumb-2 y ARM.
Conjunto de comandos de JazelleJazelle es una tecnología que permite que el bytecode de Java se ejecute directamente en la arquitectura ARM como un tercer estado de ejecución (y conjunto de instrucciones) junto con las instrucciones ARM regulares y el modo Thumb. La compatibilidad con la tecnología Jazelle se indica con la letra "J" en el nombre del procesador; por ejemplo, ARMv5TEJ. Esta tecnología ha sido compatible desde la arquitectura ARMv6, aunque los núcleos más nuevos solo contienen implementaciones limitadas que no admiten la aceleración de hardware.
ARMv8 y el conjunto de instrucciones ARM de 64 bitsA finales de 2011 se publicó una nueva versión de la arquitectura, ARMv8. Introdujo la definición de la arquitectura AArch64, en la que se ejecuta el conjunto de instrucciones A64 de 64 bits. El soporte para comandos de 32 bits se llama A32 y se ejecuta en arquitecturas AArch32. Las instrucciones de pulgar son compatibles con el modo T32, solo cuando se utilizan arquitecturas de 32 bits. Se permite ejecutar aplicaciones de 32 bits en un sistema operativo de 64 bits y ejecutar un sistema operativo virtualizado de 32 bits utilizando un hipervisor de 64 bits [50] . Applied Micro, AMD, Broadcom, Calxeda, HiSilicon, Samsung, STM y otros han anunciado planes para usar ARMv8. Los núcleos Cortex-A53 y Cortex-A57 compatibles con ARMv8 fueron presentados por ARM el 30 de octubre de 2012 [51] .
Tanto AArch32 como AArch64 admiten VFPv3, VFPv4 y SIMD avanzado (NEON). También se agregaron instrucciones criptográficas para trabajar con AES , SHA-1 y SHA-256 .
Características de AArch64:
La arquitectura ARM tiene las siguientes características RISC:
Para compensar el diseño simple, se han utilizado algunas características de diseño en comparación con los procesadores modernos como Intel 80286 o Motorola 68020:
Una de las diferencias significativas entre la arquitectura ARM (arquitectura original) y otras arquitecturas de CPU es la llamada predicación : la capacidad de ejecutar instrucciones condicionalmente. Por "ejecución condicional" aquí queremos decir que la instrucción será ejecutada o ignorada dependiendo del estado actual de los indicadores de estado del procesador. En Thumb and Arm 64, la predicación no se usa; en el primer modo, no hay lugar para ella en el comando (solo 16 bits), y en el segundo, la predicación no tiene sentido y difícil de implementar en arquitecturas superescalares .
Mientras que para otras arquitecturas, por regla general, solo las instrucciones de salto condicional tienen esta propiedad, la arquitectura ARM fue diseñada para ejecutar condicionalmente casi cualquier instrucción. Esto se logró agregando un campo especial de 4 bits ( predicado ) a sus códigos de instrucción. Uno de sus valores está reservado para el hecho de que la instrucción debe ejecutarse incondicionalmente, y el resto codifican una u otra combinación de condiciones (flags). Por un lado, dada la longitud total limitada de la instrucción, esto redujo la cantidad de bits disponibles para codificar compensaciones en los comandos de acceso a la memoria, pero por otro lado, hizo posible deshacerse de las instrucciones de bifurcación al generar código para pequeños si-bloques.
Un ejemplo comúnmente considerado para ilustración es el algoritmo basado en la resta de Euclides . En lenguaje C se ve así:
mientras ( yo != j ) { si ( yo > j ) { yo -= j ; } más { j- = yo ; } }Y en el ensamblador ARM, así:
bucle CMP Ri , Rj ; establece la condición "NE" if (i != j), ; "GT" si (i > j), ; o "LT" si (i < j) SUBGT Ri , Ri , Rj ; si "GT" (mayor que), i = ij; SUBLT Rj , Rj , Ri ; si "LT" (menor que), j = ji; Bucle BNE ; _ si "NE" (no es igual), entonces bucleSe puede ver en el código que el uso de la predicación hizo posible evitar por completo la bifurcación en las sentencias else y then. Tenga en cuenta que si Ri y Rj son iguales, entonces no se ejecutará ninguna de las instrucciones SUB, eliminando por completo la necesidad de una bifurcación que implemente una verificación while en cada inicio del ciclo, que podría implementarse, por ejemplo, usando SUBLE ( menor o igual que) instrucción.
Una forma en que el código Thumb logra un mayor ahorro de espacio es precisamente eliminando el predicado de 4 bits de todas las instrucciones excepto las ramas.
Otra característica del conjunto de instrucciones es la capacidad de combinar turnos y rotaciones en una instrucción de "procesamiento de información" (aritmética, lógica, movimiento registro-registro) de modo que, por ejemplo, la expresión C:
a += ( j << 2 );se puede convertir a una instrucción de una palabra y un ciclo en ARM:
AGREGAR Ra , Ra , Rj , LSL #2Esto hace que los programas ARM típicos sean más densos de lo habitual con menos acceso a la memoria. Por lo tanto, la tubería se utiliza de manera mucho más eficiente. Aunque ARM se ejecuta a velocidades que muchos considerarían lentas, compite con bastante facilidad con muchas arquitecturas de CPU más sofisticadas.
El procesador ARM también tiene algunas características que rara vez se encuentran en otras arquitecturas RISC, como el direccionamiento relativo al contador de programa (de hecho, el contador de programa ARM es uno de los 16 registros), así como los modos de direccionamiento previo y posterior al incremento.
Otra característica que vale la pena señalar es que algunos de los primeros procesadores ARM (antes de ARM7TDMI), por ejemplo, no tienen instrucciones para almacenar números de 2 bytes. Por lo tanto, estrictamente hablando, les es imposible generar un código eficiente que se comporte como se espera de los objetos C del tipo "volátil int16_t".
ARM7 y versiones anteriores tienen una canalización de tres etapas. Estas son las etapas de transferencia, decodificación y ejecución. Las arquitecturas de mayor rendimiento como ARM9 tienen canalizaciones más complejas. Cortex-a8 tiene una canalización de 13 etapas.
La arquitectura proporciona una forma de ampliar el conjunto de instrucciones utilizando coprocesadores que se pueden direccionar mediante MCR, MRC, MRRC, MCRR e instrucciones similares. El espacio del coprocesador se divide lógicamente en 16 coprocesadores numerados del 0 al 15, y el 15 se reserva para algunas funciones de administración típicas, como la administración de caché y la operación de la unidad de administración de memoria (en los procesadores que las tienen).
En las máquinas basadas en ARM, los periféricos generalmente se conectan al procesador asignando sus registros físicos en la memoria ARM o la memoria del coprocesador, o conectándolos a los buses, que a su vez están conectados al procesador. El acceso a los coprocesadores tiene una latencia más larga, por lo que algunos periféricos están diseñados para ser accedidos en ambas direcciones. En otros casos, los desarrolladores de chips solo usan el mecanismo de integración del coprocesador. Por ejemplo, un motor de procesamiento de imágenes debe consistir en un pequeño núcleo ARM7TDMI junto con un coprocesador que admita operaciones primitivas para procesar codificaciones elementales de HDTV.
SIMD mejorado (NEON)Una extensión de SIMD avanzada, también conocida como tecnología NEON, es un conjunto de instrucciones combinadas de datos múltiples ( SIMD ) de instrucción única de 64 bits y 128 bits que proporciona aceleración estandarizada para aplicaciones de procesamiento de señales y medios. NEON puede decodificar el formato de audio mp3 a una frecuencia de procesador de 10 MHz y puede funcionar con el códec de voz GSM AMR (multivelocidad adaptativa) a un máximo de 13 MHz. Tiene un impresionante conjunto de instrucciones, archivos de registro separados y un sistema de ejecución independiente a nivel de hardware. NEON admite información de punto flotante, precisión simple y enteros de 8, 16, 32 y 64 bits, y funciona en operaciones SIMD para procesamiento de audio y video (gráficos y juegos). En NEON SIMD admite hasta 16 operaciones a la vez.
Una de las desventajas (o, digamos, una característica) del SIMD mejorado es que el coprocesador ejecuta las instrucciones del SIMD mejorado con un retraso bastante significativo en relación con el código del procesador principal, el retraso alcanza dos docenas de ciclos o más (dependiendo de la arquitectura y condiciones específicas). Por esta razón, cuando el procesador principal intente utilizar los resultados del cálculo del coprocesador, la ejecución se congelará durante un tiempo significativo.
VFPLa tecnología VFP (Vector Floating Point) es una extensión del coprocesador en la arquitectura ARM. Realiza cálculos de bajo costo en números de punto flotante de precisión simple/doble que cumplen totalmente con el estándar ANSI/IEEE Std 754-1985 para aritmética binaria de punto flotante . VFP realiza cálculos de coma flotante adecuados para una amplia gama de aplicaciones, como PDA, teléfonos inteligentes, compresión de audio, gráficos 3D y audio digital, así como impresoras y decodificadores. La arquitectura VFP también admite la ejecución de instrucciones vectoriales cortas. Pero, dado que el procesador realiza operaciones secuencialmente en cada elemento del vector, VFP no puede llamarse un verdadero conjunto de instrucciones SIMD. Este modo puede ser útil en aplicaciones de procesamiento de señales y gráficos, ya que reduce el tamaño del código y la generación de instrucciones.
Otros coprocesadores de punto flotante y/o SIMD que se encuentran en los procesadores ARM incluyen FPA , FPE , iwMMXt . Proporcionan la misma funcionalidad que VFP, pero no son compatibles con él a nivel de código de operación .
Las extensiones de seguridad comercializadas como TrustZone Technology se encuentran en ARMv6KZ y otras arquitecturas de perfiles de aplicaciones más recientes. Proporciona una alternativa de bajo costo para agregar un motor de seguridad dedicado al proporcionar 2 vCPU compatibles con el control de acceso de hardware. Esto permite que el núcleo de la aplicación cambie entre dos estados llamados "mundos" (para evitar confusiones con posibles nombres de dominio) para evitar que la información se filtre del mundo más importante al menos importante. Este cambio mundial suele ser ortogonal a todas las demás capacidades del procesador. Por lo tanto, cada mundo puede ejecutarse independientemente de otros mundos utilizando el mismo núcleo. La memoria y los periféricos, respectivamente, están hechos para encajar en el mundo del kernel y pueden usar esto para obtener control de acceso a los secretos y códigos del kernel. Las aplicaciones típicas de TrustZone Technology deben ejecutar un sistema operativo completo en el mundo menos importante y un código compacto y específico de seguridad en el mundo más importante, lo que permite a Digital Rights Management mucho más control sobre el uso de medios en dispositivos basados en ARM y evita el acceso no autorizado a el dispositivo. .
En la práctica, dado que los detalles específicos de la implementación de TrustZone siguen siendo propiedad de la empresa y no se divulgan, no está claro qué nivel de seguridad se garantiza para este modelo de amenaza.
Todos los procesadores ARM modernos tienen hardware de depuración, porque sin ellos, los depuradores de software no podrían realizar las operaciones más básicas, como detener, sangrar, establecer puntos de interrupción después del reinicio.
La arquitectura ARMv7 define funciones básicas de depuración a nivel de arquitectura. Estos incluyen puntos de interrupción, puntos de observación y ejecución de comandos en modo de depuración. Dichas herramientas también estaban disponibles con el módulo de depuración EmbeddedICE. Se admiten ambos modos: detener y revisar. El mecanismo de transporte real que se utiliza para acceder a las herramientas de depuración no está especificado en la arquitectura, pero la implementación normalmente incluye compatibilidad con JTAG .
Hay una arquitectura de depuración de "vista de kernel" separada que no es requerida arquitectónicamente por los procesadores ARMv7.
ARM proporciona 31 registros de propósito general de 32 bits . Según el modo y el estado del procesador, el usuario tiene acceso solo a un conjunto estrictamente definido de registros. En estado ARM, 17 registros están constantemente disponibles para el desarrollador:
En todos los modos, excepto en el modo Usuario y el modo Sistema, también está disponible el registro de estado del programa guardado (SPSR). Después de que ocurre una excepción, el registro CPSR se almacena en el SPSR. Así, el estado del procesador (modo, estado; banderas de operaciones aritméticas, lógicas, habilitación de interrupción) se fija en el momento inmediatamente anterior a la interrupción [52] .
usuario | sistema | servicio | sobre | und | Irq | fiq |
---|---|---|---|---|---|---|
R0 | ||||||
R1 | ||||||
R2 | ||||||
R3 | ||||||
R4 | ||||||
R5 | ||||||
R6 | ||||||
R7 | ||||||
R8 | R8_fiq | |||||
R9 | R9_fiq | |||||
R10 | R10_fiq | |||||
R11 | R11_fiq | |||||
R12 | R12_fiq | |||||
R13 | R13_svc | R13_abt | R13_und | R13_irq | R13_fiq | |
R14 | R14_svc | R14_abt | R14_und | R14_irq | R14_fiq | |
R15 | ||||||
CPSR | ||||||
SPSR_svc | SPSR_abt | SPSR_und | SPSR_irq | SPSR_fiq |
Registrar alias:
registro | funkt | argumentos | vars | CCG | Comentario |
---|---|---|---|---|---|
R0 | a1 | aN - argumento de función | |||
R1 | a2 | ||||
R2 | a3 | ||||
R3 | a4 | ||||
R4 | v1 | vN - variable de registro | |||
R5 | v2 | ||||
R6 | v3 | ||||
R7 | v4 | ||||
R8 | v5 | ||||
R9 | SB | v6 | SB - Registro de base estática | ||
R10 | v7 | SL | SL-? | ||
R11 | v8 | FP | FP - ¿Dirección de marco de pila ? | ||
R12 | IP | IP - Registro de llamadas intraprocedimiento | |||
R13 | SP | puntero de pila | |||
R14 | LR | Registro de enlaces | |||
R15 | ordenador personal | Contador de programa |
La arquitectura ARM utiliza un único espacio de direcciones [53] . En la práctica, este esquema significa que una dirección puede apuntar a la memoria ( RAM o ROM ) o puertos de E/S, a diferencia de un esquema en el que los puertos de E/S tienen su propio espacio de direcciones.
La mayoría de los productos existentes que utilizan la arquitectura ARM son sistemas completos en un chip que tienen la capacidad de trabajar con memoria dinámica de acceso aleatorio ( DRAM ) externa y contienen controladores para muchos buses periféricos, en particular USB , IIC (I2C), dispositivos de sonido, controladores para trabajar con medios flash de estándares SD y MMC , controladores de pantalla y cámaras digitales (MIPI).
Todos los procesadores tienen líneas de entrada/salida de propósito general (GPIO). En los dispositivos de consumo, se les pueden conectar botones de "inicio rápido" y control de volumen, LED de señal, un teclado, etc.
Después de encender el sistema basado en el procesador ARM, el gestor de arranque y la dirección de su punto de entrada se cargan desde la memoria ROM. El cargador de arranque preinicializa el sistema, por lo que cumple la misma función que el BIOS realiza en los sistemas x86, después de lo cual puede cargar el cargador del sistema o el sistema operativo directamente.
No existe un estándar único para el gestor de arranque. Se puede usar un cargador de arranque U-Boot , y UEFI se usa a menudo para ARMv8 de 64 bits. Muchas aplicaciones utilizan sus propios cargadores.
La arquitectura ARM es compatible con muchos sistemas operativos. Más utilizados: Linux (incluido Android ), iOS , Windows Phone .
Varios sistemas operativos Unix y similares a Unix pueden funcionar en sistemas con un procesador ARM: Linux (muchas distribuciones), iOS , Android , BSD ( FreeBSD , NetBSD , OpenBSD ), QNX , Plan 9 , Inferno , OpenSolaris (2008—2009 [54 ] ), Firefox OS , macOS Big Sur .
La plataforma también lanza variantes separadas de la familia Windows : Windows CE , Windows Phone , Windows RT , Windows 10 .
Además, ARM es compatible con: A2 , FreeRTOS , Nucleus , Symbian OS , RISC OS , RISC iX .
Microcontroladores | ||||||||
---|---|---|---|---|---|---|---|---|
Arquitectura |
| |||||||
Fabricantes |
| |||||||
Componentes | ||||||||
Periferia | ||||||||
Interfaces | ||||||||
sistema operativo | ||||||||
Programación |
|
Tecnologías de procesadores digitales | |||||||||
---|---|---|---|---|---|---|---|---|---|
Arquitectura | |||||||||
Set de instrucciones arquitectura | |||||||||
palabra maquina | |||||||||
Paralelismo |
| ||||||||
Implementaciones | |||||||||
Componentes | |||||||||
Administración de energía |
Arquitecturas de procesador basadas en tecnologías RISC | |
---|---|