sábado, 22 de noviembre de 2014
Arquitectura Del Microprocesador ARM
Arquitectura Del Microprocesador ARM:
Desde 1995, la arquitectura ARM Manual de referencia ha
sido la principal fuente de documentación sobre la arquitectura del procesador
ARM y el sistema de instrucción, distinguiendo interfaces que todos los
procesadores ARM son necesarias para apoyar a los detalles de implementación
que puede variar. La arquitectura ha evolucionado con el tiempo, ya partir de
la serie de la corteza de los núcleos, tres "perfiles" se definen:
"La aplicación" Perfil: Cortex-A series
"En tiempo real" perfil: Serie Cortex-R
"Microcontrolador" perfil: Serie Cortex-M.
Los perfiles se pueden subconjunto de la arquitectura.
Por ejemplo, el perfil ARMv6-M es un subconjunto del perfil de ARMv7-M, que
soporta un menor número de instrucciones.
Núcleos de ARM
Una lista de los proveedores que implementan núcleos ARM
en su diseño es proporcionada por ARM.
Algunos ejemplos de aplicaciones de núcleos ARM
Núcleos ARM se utilizan en una serie de productos, en
particular los PDAs y teléfonos inteligentes. Algunos ejemplos son la
computación Surface Microsoft, Apple iPad y ASUS Eee Pad Transformer. Otros
incluyen el teléfono inteligente de Apple iPhone, iPod reproductor multimedia
portátil, Canon PowerShot A470 cámara digital, consola de juegos portátil
Nintendo DS y TomTom turn-by-turn sistema de navegación.
En 2005, ARM participó en el desarrollo del equipo,
spinnaker de la Universidad de Manchester, que utiliza núcleos ARM para simular
el cerebro humano.
Chips ARM también se utilizan en Raspberry Pi,
BeagleBoard, BEAGLEBONE, PandaBoard, y otras computadoras de una sola tarjeta,
ya que son muy pequeños, baratos y consumen muy poca energía.
Conjunto de Instrucciones
La implementación ARM original cableado sin microcódigo,
como el procesador de 8 bits 6502 mucho más simple utilizado en
microcomputadoras Acorn anteriores.
La arquitectura ARM incluye las siguientes
características RISC:
Cargar/Arquitectura tienda.
No hay soporte para accesos a memoria desalineadas.
Uniforme 16 banco de registros de 32 bits.
Ancho de instrucción fija de 32 bits para facilitar la
decodificación y de la canalización, a costa de la disminución de la densidad
del código. Más tarde, la instrucción Thumb establece aumento de la densidad de
código.
Ejecución del ciclo de reloj mayoría de una sola.
Para compensar el diseño más simple, en comparación con
los procesadores como el Intel 80286 y Motorola 68020, se utilizan algunas de
las características de diseño adicionales:
Ejecución condicional de la mayoría de las instrucciones,
reducir los gastos generales y la rama de compensar la falta de un predictor de
ramificación.
Instrucciones aritméticas modifican los códigos de
condición sólo cuando se desee.
Desplazador de barril de 32 bits que se puede utilizar
sin penalización en el rendimiento con la mayoría de las instrucciones
aritméticas y cálculos de direcciones.
Potente modos de direccionamiento indexado.
Un enlace registrarse para rápidas llamadas a funciones
de hoja.
Simple, pero rápido, el subsistema de interrupción de
2-nivel de prioridad con conmutación de bancos de registros.
Instrucciones aritméticas
El ARM apoya sumar, restar y multiplicar las
instrucciones. Las instrucciones Dividir enteros sólo se aplican mediante
núcleos ARM basado en las siguientes arquitecturas ARM:
Arquitecturas ARMv7E-M ARMv7-M y siempre incluye
instrucciones de dividirse.
Arquitectura ARMv7-R incluye siempre las instrucciones de
dividir en el conjunto de instrucciones Thumb, pero opcionalmente, en el
conjunto de instrucciones ARM.
ARMv7-A arquitectura incluye opcionalmente las
instrucciones de dividirse. Las instrucciones no pueden ser implementadas, o
implementadas sólo en el conjunto de instrucciones Thumb, o implementadas tanto
en el pulgar e instrucciones ARM conjuntos, o se aplican si se incluyen las
extensiones de virtualización.
Registros
Registros R0-R7 son los mismos en todos los modos de la
CPU, que nunca se apilan.
R13 y R14 se apilan en todos los modos excepto en el modo
privilegiado de CPU del sistema. Es decir, cada modalidad que se pueden
introducir a causa de una excepción tiene sus propias R13 y R14 - Estos
registros contienen generalmente el puntero de pila y la dirección de retorno
de llamadas a funciones, respectivamente.
Alias:
R13 también se conoce como SP, el puntero de pila.
R14 también se conoce como LR, el Registro Enlace.
R15 también se conoce como PC, el contador de programa.
Historia Del ARM
HISTORIA DEL ARM:
El diseño del ARM comenzó en 1983 como un proyecto de
desarrollo en la empresaAcorn Computers. Sophie Wilson y Steve Furber lideraban
el equipo, cuya meta era, originalmente, el desarrollo de un procesador
avanzado, pero con una arquitectura similar a la del MOS 6502. La razón era que
Acorn tenía una larga línea de ordenadores personales basados en dicho micro, por
lo que tenía sentido desarrollar uno con el que los desarrolladores se
sintieran cómodos.
El equipo terminó el diseño preliminar y los primeros
prototipos del procesador en el año 1985, al que llamaron ARM1. La primera
versión utilizada comercialmente se bautizó como ARM2 y se lanzó en el año
1986.
El ARM2 es probablemente el procesador de 32 bits útil
más simple del mundo, ya que posee sólo 30.000 transistores. Su simplicidad se
debe a que no está basado en microcódigo (sistema que suele ocupar en torno a
la cuarta parte de la cantidad total de transistores usados en un procesador) y
a que, como era común en aquella época, no incluye caché. Gracias a esto, su
consumo en energía es bastante bajo, a la vez que ofrece un mejor rendimiento
que un 286. Su sucesor, el ARM3, incluye una pequeña memoria caché de 4 KB, lo
que mejora los accesos a memoria repetitivos.
A finales de los años 80, Apple Computer comenzó a
trabajar con Acorn en nuevas versiones del núcleo ARM. En Acorn se dieron
cuenta de que el hecho de que el fabricante de un procesador fuese también un
fabricante de ordenadores podría echar para atrás a los clientes, por lo que se
decidió crear una nueva compañía llamada Advanced RISC Machines, que sería la
encargada del diseño y gestión de las nuevas generaciones de procesadores ARM.
Ocurría esto en el año 1990.
Este trabajo derivó en el ARM6, presentado en 1991. Apple
utilizó el ARM 610 (basado en el ARM6), como procesador básico para su
innovador PDA, el Apple Newton. Por su parte, Acorn lo utilizó en 1994 como
procesador principal en suRiscPC.
Familia | Versión de Arquitectura | Núcleo | Características | Cache (I/D)/MMU | MIPS efectivos @ MHz | Campos de Aplicación |
---|---|---|---|---|---|---|
ARM1 | ARMv1 (obsoleto) | ARM1 | Nulo | ARM Evaluation System segundo procesador para BBC Micro | ||
ARM2 | ARMv2 (obsoleto) | ARM2 | Añadida instrucción MUL (multiplicar) | Nulo | 4 MIPS @ 8 MHz 0.33 DMIPS/MHz | Acorn Archimedes,Chessmachine |
ARMv2a (obsoleto) | ARM250 | Integrado MEMC (MMU), gráficos y un procesador de E / S. Añadidas instrucciones SWP y SWPB (swap). | Nulo, MEMC1a | 7 MIPS @ 12 MHz | Acorn Archimedes | |
ARM3 | ARMv2a (obsoleto) | ARM2a | Primera integración de una memoria caché en un ARM. | 4K unificados | 12 MIPS @ 25 MHz 0.50 DMIPS/MHz | Acorn Archimedes |
ARM6 | ARMv3 (obsoleto) | ARM60 | Soporte de dirección de memoria de 32 bits (frente a los 26 bits) | Nulo | 10 MIPS @ 12 MHz | 3DO Interactive Multiplayer, Zarlink GPS Receiver |
ARM600 | Como ARM60, caché y un bus cooprocesador (para la unidad de coma flotante FPA10). | 4K unificados | 28 MIPS @ 33 MHz | |||
ARM610 | Como ARM60, caché, sin bus coprocesador. | 4K unificados | 17 MIPS @ 20 MHz 0.65 DMIPS/MHz | Acorn Risc PC 600,Apple Newton Serie 100 | ||
ARM7 | ARMv3 (obsoleto) | ARM700 | 8 KB unificados | 40 MHz | Acorn Risc PCprototipo de CPU card | |
ARM710 | Como ARM700 | 8 KB unificados | 40 MHz | Acorn Risc PC 700 | ||
ARM710a | Como ARM700 | 8 KB unificados | 40 MHz 0.68 DMIPS/MHz | Acorn Risc PC 700,Apple eMate 300 | ||
ARM7100 | Como ARM710a,SoC integrado. | 8 KB unificados | 18 MHz | Psion Series 5 | ||
ARM7500 | Como ARM710a, SoC integrado. | 4 KB unificados | 40 MHz | Acorn A7000 | ||
ARM7500FE | ARM7500, "FE" añadido un FPA y un controlador de memoria EDO. | 4 KB unificados | 56 MHz 0.73 DMIPS/MHz | Acorn A7000+ Network Computer | ||
ARM7TDMI | ARMv4T | ARM7TDMI(-S) | Segmentación de 3 etapas, Thumb | nulo | 15 MIPS @ 16.8 MHz 63 DMIPS @ 70 MHz | Game Boy Advance,Nintendo DS, Apple iPod, Lego NXT, AtmelAT91SAM7, Juice Box,NXP SemiconductorsLPC2000 andLH754xx, Actel'sCoreMP7 |
ARM710T | ARM7TDMI, caché | 8 KB unificados, MMU | 36 MIPS @ 40 MHz | Psion Series 5mx,Psion Revo/Revo Plus/Diamond Mako | ||
ARM720T | ARM7TDMI, caché | 8 KB unificados, MMU con FCSE | 60 MIPS @ 59.8 MHz | Zipit Wireless Messenger, NXP SemiconductorsLH7952x | ||
ARM740T | ARM7TDMI, caché | MPU | ||||
ARMv5TEJ | ARM7EJ-S | Segmentación de 5 etapas, Thumb, Jazelle DBX, mejora de instruciones DSP | nulo | |||
StrongARM | ARMv4 | SA-110 | 16 KB/16 KB, MMU | 203 MHz 1.0 DMIPS/MHz | Apple Newton serie 2x00, Acorn Risc PC, Rebel/Corel Netwinder, Chalice CATS | |
SA-1100 | SA-110, SoC integrado | 16 KB/8 KB, MMU | 203 MHz | Psion netBook | ||
SA-1110 | SA-110, SoC integrado | 16 KB/8 KB, MMU | 206 MHz | LART (computer), Intel Assabet, Ipaq H36x0,Balloon2, Zaurus SL-5x00, HP Jornada 7xx,Jornada 560 series, Palm Zire 31 | ||
ARM8 | ARMv4 | ARM8105 | Segmentación de 5 fases, predilección de salto estático, memoria de doble ancho de banda | 8 KB unificados, MMU | 84 MIPS @ 72 MHz 1.16 DMIPS/MHz | Acorn Risc PCprototipo de CPU card |
ARM9TDMI | ARMv4T | ARM9TDMI | Segmentación de 5 fases, Thumb | nulo | ||
ARM920T | ARM9TDMI, caché | 16 KB/16 KB, MMU con FCSE (Fast Context Switch Extension)6 | 200 MIPS @ 180 MHz | Armadillo, AtmelAT91SAM9, GP32,GP2X (primer núcleo),Tapwave Zodiac(Motorola i. MX1), Hewlett-PackardCalculadoras HP-49/50, Sun SPOT, Cirrus Logic EP9302, EP9307, EP9312, EP9315, SamsungS3C2442 (HTC TyTN,FIC Neo FreeRunner7), Samsung S3C2410 (Dispositivos de navegación TomTom)8 | ||
ARM922T | ARM9TDMI, cachés | 8 KB/8 KB, MMU | NXP SemiconductorsLH7A40x | |||
ARM940T | ARM9TDMI, cachés | 4 KB/4 KB, MPU | GP2X (segundo núcleo), Meizu M6 Mini Player9 10 | |||
ARM9E | ARMv5TE | ARM946E-S | Thumb, mejora de instrucciones DSP, caché | variables, memoria estrechamente acoplada, MPU | Nintendo DS, Nokia N-Gage, Canon PowerShot A470,Canon EOS 5D Mark II,11 Conexant 802.11 chips, Samsung S5L2010 | |
ARM966E-S | Thumb, Mejora de instrucciones DSP | sin caché, TCMs | ST Micro STR91xF, integra Ethernet12 | |||
ARM968E-S | ARM966E-S | sin caché, TCMs | NXP SemiconductorsLPC2900 | |||
ARMv5TEJ | ARM926EJ-S | Thumb, Jazelle DBX, Mejora de instrucciones DSP | variables, TCMs, MMU | 220 MIPS @ 200 MHz, | Teléfonos móviles:Sony Ericsson (K, W series); Siemens yBenq (serie x65 y posterior); LG Arena; Texas InstrumentsOMAP1710,OMAP1610,OMAP1611,OMAP1612, OMAP-L137, OMAP-L138;Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800; Freescalei.MX21, i.MX27, AtmelAT91SAM9, NXP SemiconductorsLPC3000, GPH Wiz, NEC C10046F5-211-PN2-A SoC – núcleo en la ATi HollywoodGPU usada en la Wii,13 SamsungS3C2412 usado enSqueezebox Duet's Controller. Squeezebox Radio; NeoMagicMiMagic Family MM6, MM6+, MM8, MTV;Buffalo TeraStation Live (NAS); Telechips TCC7801, TCC7901;ZiiLABS' ZMS-05 SoC; Western Digital MyBook "I World Edition"; RockchipRK2806 y RK2808. | |
ARMv5TE | ARM996HS | Procesador sin reloj, como ARM966E-S | sin cachés, TCMs, MPU | |||
ARM10E | ARMv5TE | ARM1020E | Segmentación de 6 fases, Thumb, Mejora de instrucciones DSP, (VFP) | 32 KB/32 KB, MMU | ||
ARM1022E | ARM1020E | 16 KB/16 KB, MMU | ||||
ARMv5TEJ | ARM1026EJ-S | Thumb, Jazelle DBX, Mejora de instrucciones DSP, (VFP) | variable, MMU o MPU | Western DigitalMyBook "II World Edition";Conexantso4610 y so4615 ADSL SoC | ||
XScale | ARMv5TE | 80200/IOP310/IOP315 | Procesador E/S, Thumb, Mejora de instrucciones DSP | |||
80219 | 400/600 MHz | Thecus N2100 | ||||
IOP321 | 600 BogoMips @ 600 MHz | Iyonix | ||||
IOP33x | ||||||
IOP34x | 1–2 núcleos, Acelerador de RAID | 32K/32K L1, 512K L2, MMU | ||||
PXA210/PXA250 | Procesador de aplicaciones, Segmentación de 7 fases | PXA210: 133 y 200 MHz, PXA250: 200, 300, and 400 MHz | Zaurus SL-5600, iPAQH3900, Sony CLIÉNX60, NX70V, NZ90 | |||
PXA255 | 32KB/32KB, MMU | 400 BogoMips @ 400 MHz; 371–533 MIPS @ 400 MHz14 | Gumstix basix & connex, Palm Tungsten E2, ZaurusSL-C860, Mentor Ranger & Stryder, iRexILiad | |||
PXA263 | 200, 300 y 400 MHz | Sony CLIÉ NX73V, NX80V | ||||
PXA26x | default 400 MHz, más de 624 MHz | Palm Tungsten T3 | ||||
PXA27x | Procesador de Aplicaciones | 32 KB/32 KB, MMU | 800 MIPS @ 624 MHz | Gumstix verdex,"Trizeps-Modules" PXA270 COM, HTC Universal,HP hx4700, Zaurus SL-C1000, 3000, 3100, 3200, Dell Axim x30, x50, and x51 series, Motorola Q, Balloon3,Trolltech Greenphone,Palm TX(312MHz), Motorola Ezx Platform A728, A780, A910, A1200, E680, E680i, E680g, E690, E895, Rokr E2, Rokr E6, Fujitsu Palm Zire 72(PXA270), Siemens LOOX N560, Toshiba Portégé G500, Trēo 650-755p, Zipit Z2, HP iPaq 614c Business Navigator. | ||
PXA800(E)F | ||||||
PXA3XX (nombre en clave "Monahans") | 32KB/32KB L1, TCM, MMU | 1000 MIPS @ 1.25 GHz | Samsung Omnia | |||
PXA900 | Blackberry 8700, Blackberry Pearl (8100) | |||||
IXC1100 | Procesador de control de vuelo | |||||
IXP2400/IXP2800 | ||||||
IXP2850 | ||||||
IXP2325/IXP2350 | ||||||
IXP42x | NSLU2 IXP460/IXP465 | |||||
ARM11 | ARMv6 | ARM1136J(F)-S15 | Segmentación de 8 etapas, SIMD, Thumb, Jazelle DBX, (VFP), Mejora de instrucciones DSP | variable, MMU | 740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHz | Texas InstrumentsOMAP2420 (Nokia E90, Nokia N93, Nokia N95, Nokia N82), Zune,BUGbase[2], Nokia N800, Nokia N810,Qualcomm MSM7200 (con coprocesador ARM926EJ-S@274 MHz, usado enEten Glofiish, HTC TyTN II, HTC Nike), Freescale i.MX31 (del Zune original de 30 GB, Toshiba Gigabeat S y Kindle DX), Freescale MXC300-30 (Nokia E63, Nokia E71,Nokia 5800, Nokia E51,Nokia 6700 Classic,Nokia 6120 Classic,Nokia 6210 Navigator,Nokia 6220 Classic,Nokia 6290, Nokia 6710 Navigator, Nokia 6720 Classic, Nokia E75, Nokia N97, Nokia N81), Qualcomm MSM7201A visto en losHTC Dream, HTC Magic, Motorola Z6,HTC Hero, & Samsung SGH-i627 (Propel Pro),Qualcomm MSM7227 usado en ZTE Link,1617 |
ARMv6T2 | ARM1156T2(F)-S | Segmentación de 9 etapas, SIMD, Thumb-2, (VFP), Mejora de instrucciones DSP | variable, MPU | |||
ARMv6KZ | ARM1176JZ(F)-S | ARM1136EJ(F)-S | variable, MMU+TrustZone | Apple iPhone (EDGE y 3G), Apple iPod touch (1.ª y 2.ª generación),Conexant CX2427X,Motorola RIZR Z8,Motorola RIZR Z10,NVIDIA GoForce 6100;18 Telechips TCC9101, TCC9201, TCC8900, Fujitsu MB86H60, Samsung S3C6410 (ej. Samsung Omnia II, Samsung Moment, SmartQ 5), S3C6430,19 Raspberry Pi | ||
ARMv6K | ARM11 MPCore | As ARM1136EJ(F)-S, 1–4 core SMP | variable, MMU | Nvidia APX 2500 | ||
Familia | Versión de arquitectura | Núcleo | Características | Caché (I/D)/MMU | MIPS efectivos @ MHz | Campo de aplicación |
Cortex | ARMv7-A | Cortex-A5 | VFP, NEON, Jazelle RCT and DBX, Thumb-2, Segmentación de 8 fases, 1–4 núcleos SMP | variable (L1), MMU+TrustZone | Más de 1500 (1.5 DMIPS/MHz) | "Sparrow" (nombre en clave)20 21 22 |
Cortex-A8 | VFP, NEON, Jazelle RCT, Thumb-2, Segmentación Superscalar de 13 etapas | variable (L1+L2), MMU+TrustZone | Más de 2000 (2.0 DMIPS/MHz de reloj desde 600 MHz hasta más de 1 GHz) | Texas Instrumentsserie OMAP3xxx, SBM7000, Oregon State UniversityOSWALD, Gumstix Overo Earth, Pandora,Apple iPhone 3GS,Apple iPod touch (3rd Generation), Apple iPad (SoCApple A4),Apple iPhone 4 (SocApple A4, fabricado por Samsung e Intrensity), Archos 5,FreeScale i.MX51-SOC, BeagleBoard,Motorola Milestone,Motorola Milestone X,Palm Pre, Samsung Omnia HD, Samsung Wave S8500(Hummingbird),Samsung i9000 Galaxy S (Hummingbird), Sony Ericsson Satio, Woxter Tablet PC 80, Touch Book, Nokia N900,Meizu M9, ZiiLABSZMS-08 SoC. | ||
Qualcomm Scorpion | GPU Adreno 200, VFPv3, NEON, Jazelle RCT, Thumb-2, Segmentación Superscalar de 13 etapas, | variable (L1+L2), MMU+TrustZone | Más de 2000 (2.0 DMIPS/MHz de reloj desde 1 GHz hasta más de 1,5 GHz dual core) | Toshiba TG01, HTC Desire, Google Nexus One, HTC EVO 4G,HTC Incredible, HTC Scorpion, HTC HD2,HTC HD7 Sony Ericsson Xperia ARC/ARC S | ||
Cortex-A9 | Perfil de aplicaciones, (VFP), (NEON), Jazelle RCT y DBX, Thumb-2, Out-of-order speculative issue superscalar | MMU+TrustZone | 2.5 DMIPS/MHz | Acer Iconia A200,Galaxy Nexus,Motorola RAZR | ||
Cortex-A9 MPCore | Cortex-A9, 1–4 núcleos SMP | MMU+TrustZone | 10,000 DMIPS @ 2 GHz optimizados en TSMC 40G (Doble núcleo) (2.5 DMIPS/MHz por núcleo) | Texas InstrumentsOMAP4430/4440, ST-Ericsson U8500, NvidiaTegra2, QualcommSnapdragon 8X72PlayStation Vita,Samsung Galaxy S II(Exynos 4210),Samsung Galaxy S III(Exynos 4212) | ||
ARMv7-R | Cortex-R4(F) | Perfil Embebido, Thumb-2, (FPU) | variable caché, MPU opcional | 600 DMIPS @ 475 MHz | Broadcom, TMS570 from Texas Instruments | |
ARMv7-ME | Cortex-M4 (nombre en clave "Merlin")23 | Perfil microcontrolador, Thumb y Thumb-2, FPU. MAC, SIMD e instrucciones divididas. | MPU opcional. | 1.25 DMIPS/MHz | ||
ARMv7-M | Cortex-M3 | Perfil microcontrolador, Thumb-2 únicamente. Reparto de instrucciones por Hardware. | sin caché, MPU opcional. | 125 DMIPS @ 100 MHz | Texas InstrumentsStellarismicrocontroller family,ST MicroelectronicsSTM32, NXP SemiconductorsLPC1700, ToshibaTMPM330FDFG,Ember's EM3xx Series,Atmel AT91SAM3,Europe TechnologiesEasyBCU, Energy Micro's EFM32, Actel'sSmartFusion | |
ARMv6-M | Cortex-M0 (nombre en clave "Swift")24 | Perfil microcontrolador, Thumb-2 subset (instrucciones 16-bit Thumb & BL, MRS, MSR, ISB, DSB, and DMB). | Sin caché. | 0.9 DMIPS/MHz | NXP SemiconductorsNXP LPC1100,25Triad Semiconductor,26Melfas,27 Chungbuk Technopark,28Nuvoton,29austriamicrosystems,30Rohm31 | |
Cortex-M1 | FPGA targeted, Microcontroller profile, Thumb-2 subset (instrucciones 16-bit Thumb & BL, MRS, MSR, ISB, DSB, and DMB). | Sin | Más de 136 DMIPS @ 170 MHz32 (0.8 DMIPS/MHz,33 MHz achievable FPGA-dependent) | Actel ProASIC3, ProASIC3L, IGLOO and Fusion PSC devices, Altera Cyclone III, otros productos FPGA están soportados, por ejemplo: Synplicity | ||
Familia | Versión de Arquitectura | Núcleo | Características | Caché (I/D)/MMU | MIPS efectivos @ MHz | Campo de Aplicación |
Suscribirse a:
Entradas (Atom)