fbpx
Wikipedia

Arquitectura ARM

ARM, anteriormente Advanced RISC Machine, originalmente Acorn RISC Machines, es una arquitectura RISC (Reduced Instruction Set Computer=Ordenador con Conjunto Reducido de Instrucciones) de 32 bits y, con la llegada de su versión V8-A, también de 64 Bits, desarrollada por ARM Holdings. La arquitectura ARM es el conjunto de instrucciones de 32 y 64 bits más ampliamente utilizado en unidades producidas.[1][2]​ Concebida originalmente por Acorn Computers para su uso en ordenadores personales, los primeros productos basados en ARM eran los Acorn Archimedes, lanzados en 1987.

El logo de ARM
Procesador ARM en una impresora HP

Un enfoque de diseño basado en RISC permite que los procesadores ARM requieran una cantidad menor de transistores que los procesadores x86 CISC, típicos en la mayoría de ordenadores personales. Este enfoque de diseño nos lleva, por tanto, a una reducción de los costes, calor y energía. Estas características son deseables para dispositivos que funcionan con baterías, como los teléfonos móviles, tabletas, etc.

La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia. Como resultado, se han convertido en los dominantes dentro del mercado de la electrónica móvil e integrada, encarnados en microprocesadores y microcontroladores pequeños, de bajo consumo y relativamente bajo costo. En 2005, alrededor del 98% de los más de mil millones de teléfonos móviles vendidos utilizaban al menos un procesador ARM.[3]​ Desde 2009, los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits integrados. Cabe hacer mención que no existe una tabla de equivalencias de rendimiento entre las distintas tecnologías de procesadores[4]​ que se utilizan generalmente en la electrónica de consumo, incluyendo PDA, tabletas, teléfonos móviles, teléfonos inteligentes, relojes inteligentes, videoconsolas portátiles, calculadoras, reproductores digitales multimedia (fotos, vídeos, etc.) y periféricos de ordenador como discos duros y enrutadores.

La arquitectura ARM es licenciable. Esto significa que el negocio principal de ARM Holdings es la venta de núcleos IP (propiedad intelectual), estas licencias se utilizan para crear microcontroladores y CPUs basados en este núcleo. Las empresas que son titulares de licencias ARM actuales o anteriores incluyen a Alcatel-Lucent, Apple Inc., AppliedMicro, Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Ember, Energy Micro, Freescale, Intel (a través de DEC), LG, Marvell Technology Group, Microsemi, Microsoft, NEC, Nintendo, Nokia, Nuvoton, Nvidia, Sony, MediaTek, NXP (antes Philips Semiconductors), Oki, ON Semiconductor, Psion, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha, y ZiiLABS.

Los procesadores ARM son desarrollados por ARM y los titulares de las licencias de ARM. Prominentes familias de procesadores ARM desarrollados por ARM Holdings incluyen el ARM7,V8-A ARM9, ARM11 y Cortex. Entre los procesadores ARM desarrollados por firmas licenciatarias se incluyen Applied Micro Circuits Corporation X-Gene, DEC StrongARM, Freescale i.MX, Marvell Technology Group XScale, NVIDIA Tegra, Qualcomm Snapdragon, Texas Instruments OMAP, Samsung Exynos, Apple Ax, ST-Ericsson NovaThor, Huawei K3V2 e Intel Medfield.

Historia

 
Microprocesador ARM en un router

El diseño de la arquitectura ARM comenzó en 1983 como un proyecto de desarrollo por la empresa Acorn 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 microprocesador, 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.

La arquitectura del ARM2 posee un bus de datos de 32 bits y ofrece un espacio de direcciones de 26 bits, junto con 16 registros de 32 bits. Uno de estos registros se utiliza como contador de programa, aprovechándose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador.

El ARM2 es probablemente el procesador de 32 bits útil más simple del mundo, ya que posee solo 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 1980, 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 su RiscPC.

El núcleo mantuvo su simplicidad a pesar de los cambios: en efecto, el ARM2 tiene 30 000 transistores, mientras que el ARM6 solo cuenta con 35 000. La idea era que el usuario final combinara el núcleo del ARM con un número opcional de periféricos integrados y otros elementos, pudiendo crear un procesador completo a la medida de sus necesidades.

La mayor utilización de la tecnología ARM se alcanzó con el procesador ARM7TDMI, con millones de unidades en teléfonos móviles y sistemas de videojuegos portátiles.

DEC licenció el diseño, lo cual generó algo de confusión debido a que ya producía el DEC Alpha, y creó el StrongARM. Con una velocidad de reloj de 233 MHz, este procesador consumía solo 1 W de potencia (este consumo de energía se ha reducido en versiones más recientes). Esta tecnología pasó posteriormente a manos de Intel, como fruto de un acuerdo jurídico, que la integró en su línea de procesadores Intel i960 e hizo más ardua la competencia.

Freescale (una empresa que derivó de Motorola en el año 2004), IBM, Infineon Technologies, OKI, Texas Instruments, Nintendo, Philips, VLSI, Atmel, Sharp, Samsung y STMicroelectronics también licenciaron el diseño básico del ARM.

El diseño del ARM se ha convertido en uno de los más usados del mundo, desde discos duros hasta juguetes. Hoy en día, cerca del 75% de los procesadores de 32 bits poseen este chip en su núcleo.

Familias

Familia Versión de Arquitectura Núcleo Características Caché (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 PC prototipo 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, Atmel AT91SAM7, Juice Box, NXP Semiconductors LPC2000 and , Actel's CoreMP7
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 Semiconductors
ARM740T ARM7TDMI, caché MPU
ARMv5TEJ ARM7EJ-S Segmentación de 5 etapas, Thumb, Jazelle DBX, mejora de instrucciones 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 ARM810[5] 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 PC prototipo 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, Atmel AT91SAM9, GP32, GP2X (primer núcleo), Tapwave Zodiac (Motorola i. MX1), Hewlett-Packard Calculadoras HP-49/50, Sun SPOT, Cirrus Logic EP9302, EP9307, EP9312, EP9315, Samsung S3C2442 (HTC TyTN, FIC Neo FreeRunner[7]​), Samsung S3C2410 (Dispositivos de navegación TomTom)[8]
ARM922T ARM9TDMI, cachés 8 KB/8 KB, MMU NXP Semiconductors
ARM940T ARM9TDMI, cachés 4 KB/4 KB, MPU GP2X (segundo núcleo), Meizu M6 Mini Player[9][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 Ethernet[12]
ARM968E-S ARM966E-S sin caché, TCMs NXP Semiconductors
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 y Benq (serie x65 y posterior); LG Arena; Texas Instruments OMAP1710, OMAP1610, OMAP1611, OMAP1612, OMAP-L137, OMAP-L138; Qualcomm MSM6100, MSM6125, MSM6225, MSM6245, MSM6250, MSM6255A, MSM6260, MSM6275, MSM6280, MSM6300, MSM6500, MSM6800; Freescale i.MX21, i.MX27, Atmel AT91SAM9, NXP Semiconductors , GPH Wiz, NEC C10046F5-211-PN2-A SoC – núcleo en la ATi Hollywood GPU usada en la Wii,[13]Samsung S3C2412 usado en Squeezebox Duet's Controller. Squeezebox Radio; NeoMagic MiMagic Family MM6, MM6+, MM8, MTV; Buffalo TeraStation Live (NAS); Telechips TCC7801, TCC7901;ZiiLABS' ZMS-05 SoC; Western Digital MyBook "I World Edition"; Rockchip RK2806 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 Digital MyBook "II World Edition";Conexant so4610 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, iPAQ H3900, Sony CLIÉ NX60, NX70V, NZ90
PXA255 32KB/32KB, MMU 400 BogoMips @ 400 MHz; 371–533 MIPS @ 400 MHz[14] 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 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)-S[15] 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 Instruments OMAP2420 (Nokia E90, Nokia N93, Nokia N95, Nokia N82), Zune, BUGbase[2], Nokia N800, Nokia 500, Nokia N810, Qualcomm MSM7200 (con coprocesador ARM926EJ-S@274 MHz, usado en Eten 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 los HTC Dream, HTC Magic, Motorola Z6, HTC Hero, & Samsung SGH-i627 (Propel Pro), Qualcomm MSM7227 usado en ZTE Link,[16][17]
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 Nintendo 3DS
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 Instruments serie OMAP3xxx, SBM7000, Oregon State University OSWALD, Gumstix Overo Earth, Pandora, Apple iPhone 3GS, Apple iPod touch (3rd Generation), Apple iPad (SoCApple A4), Apple iPhone 4 (Soc Apple 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, Touch Book, Nokia N900, Meizu M9, ZiiLABS ZMS-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 Instruments OMAP4430/4440, ST-Ericsson U8500, Nvidia Tegra2, Qualcomm Snapdragon 8X72 PlayStation 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 Instruments Stellaris microcontroller family, ST Microelectronics , NXP Semiconductors , Toshiba TMPM330FDFG, Ember's EM3xx Series, Atmel AT91SAM3, Europe Technologies , Energy Micro's EFM32, Actel's SmartFusion
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 Semiconductors ,[25]​ Triad Semiconductor,[26]​ Melfas,[27]​ Chungbuk Technopark,[28]Nuvoton,[29]​ austriamicrosystems,[30]Rohm[31]
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 MHz[32]​ (0.8 DMIPS/MHz,[33]​ MHz achievable FPGA-dependent) Actel ProASIC3, ProASIC3L, IGLOO and Fusion PSC devices, , otros productos FPGA están soportados, por ejemplo:

[34]

Familia Versión de Arquitectura Núcleo Características Caché (I/D)/MMU MIPS efectivos @ MHz Campo de Aplicación

Diseño

El juego de instrucciones del ARM es similar al del MOS 6502, pero incluye características adicionales que le permiten conseguir un mejor rendimiento en su ejecución. Para mantener el concepto tradicional de RISC, se estableció la ejecución de una orden en un tiempo, por lo general, de un ciclo. La característica más interesante es el uso de los 4 bits superiores como código de condición, haciendo que cualquier instrucción pueda ser condicional. Este corte reduce el espacio para algunos desplazamientos en el acceso a la memoria, pero permite evitar perder ciclos de reloj en el pipeline al ejecutar pequeños trozos de código con ejecución condicional. El ejemplo típico es el Máximo común divisor, según el algoritmo de Euclides.

Ejemplo en C:

 while (i != j) // Ingresa en el ciclo cuando i<j o i>j, no cuando i==j  {  if (i > j) // Cuando i>j realiza lo siguiente  i -= j;  else // en otro cso, realiza lo siguiente  j -= i;  } 

En cambio con código ensamblador ARM, el ciclo puede hacerse más eficiente haciendo:

loop:  // Compara i y j  GT = i > j;  LT = i < j;  NE = i != j;  // Operaciones mejoradas usando resultados de flags  if(GT) i -= j; // Sustrae *solo* si es mayor  if(LT) j -= i; // Sustrae *solo* si es menor  if(NE) goto loop; // Ciclo *solo* si los valores comparados no son iguales 

y esto se codifica como:

loop: CMP Ri, Rj ; establece la condicion "NE" if (i != j), ; "GT" si (i > j), ; o "LT" si (i < j) SUBGT Ri, Ri, Rj ; si "GT" (Mayor que), i = i-j; SUBLT Rj, Rj, Ri ; si "LT" (Menor que), j = j-i; BNE loop ; si "NE" (No igual), entonces realiza el ciclo 

Otra característica única del juego de instrucciones es la posibilidad de añadir shifts y rotar en el procesamiento de datos (aritmético, lógico y movimiento de registros), por ejemplo, la instrucción en C "a += (j << 2);" puede ser mejorada como una única instrucción en el ARM, permitiendo la reubicación del registro.

Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento, mejorando el rendimiento.

El procesador ARM también tiene algunas características que son raras en otras arquitecturas también consideradas RISC, como el direccionamiento relativo, y el pre y post incremento en el modo de direccionamiento.

Tiene dos modos de funcionamiento: el ARMI con instrucciones que ocupan 4 bytes, más rápidas y potentes (hay instrucciones que sólo están en este modo) pero con mayor consumo de memoria y de electricidad. Y el modo THUMB, más limitado, con instrucciones que ocupan 2 bytes y con menor consumo de corriente.

Tecnologías

Thumb

Los procesadores más recientes traen un conjunto de instrucciones adicional llamado Thumb, de 16 bits (2 bytes) de longitud por instrucción, en lugar de 32 bits (4 bytes) como el juego estándar de ARM. Thumb es un subconjunto formado por las instrucciones que se usan con más frecuencia. Al tener la mitad de longitud, se consigue disminuir la cantidad de código y mejorar su densidad. El rendimiento puede ser superior a un código de 32 bits en donde el puerto de memoria o ancho del bus de comunicaciones son menores a 32 bits. Por lo general, en las aplicaciones se inserta un pequeño rango de direcciones de memoria con un datapath de 32 bits (por ejemplo: Game Boy Advance), y el resto son 16 bits en modo wide o narrower.

El primer procesador con la tecnología Thumb fue el ARM7TDMI. Toda la familia posterior al ARM9, incluyendo el procesador Intel XScale, tienen incorporada la tecnología en su núcleo.

Jazelle

ARM tiene implementada una que permite que ciertos tipos de arquitecturas ejecuten Java bytecode nativamente en el hardware. El primer procesador en usar Jazelle fue el ARM926EJ-S, siendo denominados con una J a todos los procesadores que soportaran esta tecnología.

Sistemas operativos

 
Android, un popular sistema operativo basado en el kernel Linux[35][36]​ que opera principalmente sobre la arquitectura ARM.

Acorn systems

El primer ordenador personal basado en ARM es el Acorn Archimedes que ejecutaba un sistema operativo provisional llamado Arthur, que se convirtió en RISC OS, utilizado en posteriores modelos de Acorn y otros vendedores.

Sistemas operativos integrados

La arquitectura ARM está soportada por un gran número de sistemas operativos integrados y de tiempo real, incluyendo Windows CE, Windows 8 RT, .NET Micro Framework, Symbian, ChibiOS/RT, FreeRTOS, eCos, Integrity, Nucleus PLUS, MicroC/OS-II, QNX, RTEMS, BRTOS, RTXC Quadros, ThreadX, Unison Operating System, uTasker, VxWorks, MQX y OSE.[37]

UNIX

Los sistemas que acreditan la especificación estándar UNIX y que soportan la arquitectura ARM son:

Tipo UNIX

Las variantes de UNIX soportadas son:

Linux

Las siguientes distribuciones Linux soportan los procesadores ARM:

BSD

Los siguientes sistemas BSD soportan los procesadores ARM:

Windows

Microsoft anunció el 5 de enero de 2011 que la próxima gran versión de la familia Windows NT (hoy Windows 8)[41]​ incluye soporte para procesadores ARM. Microsoft mostró una versión preliminar de Windows (versión 6.2.7867) que se ejecuta en un equipo basado en ARM en el Consumer Electronics Show 2011.[42]​ La arquitectura ARM también es soportada por los sistemas operativos móviles de Microsoft, Windows Phone y Windows Mobile. ARM también es compatible con Windows Embedded CE que ahora se llama Windows Embedded Compact. Esta última versión soporta ARM 5,6 y 7. Windows CE 5 es el sistema operativo subyacente para Windows Mobile y Windows Embedded Compact 7 es el sistema operativo subyacente para Windows Phone 7. El pequeño Microsoft OS.NET Microframework utiliza exclusivamente ARM.

El 29 de octubre de 2012 salió a la venta la tableta Surface de Microsoft la cual tiene un procesador ARM y utiliza como sistema operativo Windows 8 RT, versión que no se puede descargar ni comprar ya que viene instalada en tabletas con arquitectura ARM. Hay otra versión de Windows 8 distinta a esta que es el Windows 8 PRO para computadoras x86.

Recientemente se ha estado trabajando en un emulador de Windows 10 de arquitectura de x86 para procesadores ARM en una marca de procesadores en específico.

Véase también

Referencias

  1. "ARM Cores Climb Into 3G Territory" by Mark Hachman, 2002.
  2. "The Two Percent Solution" el 26 de septiembre de 2007 en Wayback Machine. by Jim Turley 2002.
  3. "ARMed for the living room".
  4. Fitzpatrick, J. (2011). «An interview with Steve Furber». Communications of the ACM 54 (5): 34. doi:10.1145/1941487.1941501. 
  5. ARM Holdings presentation at Hot Chips 1996-08-07.
  6. Register 13, FCSE PID register ARM920T Technical Reference Manual
  7. «Neo1973: GTA01Bv4 versus GTA02 comparison». Consultado el 15 de noviembre de 2007. 
  8. «S3C2410». Consultado el 13 de enero de 2010. 
  9. «Rockbox Samsung SA58xxx series». Consultado el 22 de febrero de 2008. 
  10. «Rockbox Meizu M6 Port – Hardware Information». Consultado el 22 de febrero de 2008. 
  11. [1]
  12. . Mcu.st.com. Archivado desde el original el 10 de febrero de 2007. Consultado el 18 de abril de 2009. 
  13. Starlet.
  14. . Albatross-uav.org. 18 de junio de 2005. Archivado desde el original el 2 de agosto de 2009. Consultado el 18 de abril de 2009. 
  15. «ARM1136J(F)-S – ARM Processor». Arm.com. Consultado el 18 de abril de 2009. 
  16. «Qualcomm chips kernel ARM - from phones to laptops». xi0.info. Archivado desde el original el 13 de marzo de 2012. Consultado el 8 de mayo de 2010. 
  17. «Qualcomm MSM7227 RISC Chipset». pdadb.net. Consultado el 8 de mayo de 2010. 
  18. «GoForce 6100». Nvidia.com. Consultado el 18 de abril de 2009. 
  19. . Samsung. Archivado desde el original el 1 de septiembre de 2009. Consultado el 8 de octubre de 2009. , y el Qualcomm MSM7627 visto en el Palm Pixi y el Motorola Calgary/Devour
  20. Merrit, Rick (21 de octubre de 2009). «"ARM stretches out with A5 core, graphics, FPGAs"». EE Times. Archivado desde el original el 13 de marzo de 2012. Consultado el 28 de octubre de 2009. 
  21. Clarke, Peter (3 de febrero de 2009). «ARM tips plans for Swift and Sparrow processor cores». EE Times. Archivado desde el original el 13 de marzo de 2012. Consultado el 18 de abril de 2009. 
  22. Segan, Sascha (9 de abril de 2009). «ARM's Multicore Chips Aim for Netbooks». PC Magazine. Consultado el 18 de abril de 2009. 
  23. Benz, Benjamin (2 de febrero de 2010). «Cortex Nachwuchs bei ARM». Heise.de. Consultado el 3 de mayo de 2010. 
  24. Clarke, Peter (23 de febrero de 2009). «ARM preps tiny core for low-power microcontrollers». EE Times. Archivado desde el original el 13 de marzo de 2012. Consultado el 30 de noviembre de 2009. 
  25. Walko, John (23 de marzo de 2009). «NXP first to demo ARM Cortex-M0 silicon». EE Times. Archivado desde el original el 13 de marzo de 2012. Consultado el 29 de junio de 2009. 
  26. http://www.design-reuse.com/news/22137/arm-cortex-m0-processor.html
  27. http://translate.google.co.uk/translate?hl=en&sl=zh-TW&u=http://www.nuvoton.com/hq/enu/NewsAndEvents/News/MediaCoverage/20091005.htm
  28. http://www10.edacafe.com/nbc/articles/view_article.php?articleid=752000
  29. http://www.arm.com/about/newsroom/rohm-licenses-arm-cortex-m0-processor.php
  30. "ARM Extends Cortex Family with First Processor Optimized for FPGA", ARM press release, March 19, 2007. Retrieved April 11, 2007.
  31. , ARM product website. Retrieved April 11, 2007.
  32. ARM Extends Cortex Family with First Processor Optimized for FPGA.
  33. Richard Stallman. «Android y la libertad de los usuarios». www.gnu.org. Consultado el 24 de diciembre de 2016. 
  34. Richard Stallman. «Preguntas frecuentes sobre GNU/Linux». www.gnu.org. Consultado el 24 de diciembre de 2016. 
  35. . www.arm.com. ARM Ltd. Archivado desde el original el 16 de noviembre de 2010. Consultado el 18 de noviembre de 2010. 
  36. «FreeBSD/ARM Project». Consultado el 1 de junio de 2009. 
  37. «Hardware supported by NetBSD». Consultado el 1 de junio de 2009. 
  38. «OpenBSD/armish». Consultado el 1 de junio de 2009. 
  39. . San Francisco Chronicle. 2 de junio de 2011. Archivado desde el original el 6 de junio de 2011. Consultado el 2 de junio de 2011. 
  40. Microsoft demonstrates early build of Windows 8 el 1 de noviembre de 2012 en Wayback Machine.

Enlaces externos

  • ARM Ltd.
  •   Datos: Q16980
  •   Multimedia: ARM microprocessors

arquitectura, redirige, aquí, para, otras, acepciones, véase, desambiguación, anteriormente, advanced, risc, machine, originalmente, acorn, risc, machines, arquitectura, risc, reduced, instruction, computer, ordenador, conjunto, reducido, instrucciones, bits, . ARM redirige aqui Para otras acepciones vease ARM desambiguacion ARM anteriormente Advanced RISC Machine originalmente Acorn RISC Machines es una arquitectura RISC Reduced Instruction Set Computer Ordenador con Conjunto Reducido de Instrucciones de 32 bits y con la llegada de su version V8 A tambien de 64 Bits desarrollada por ARM Holdings La arquitectura ARM es el conjunto de instrucciones de 32 y 64 bits mas ampliamente utilizado en unidades producidas 1 2 Concebida originalmente por Acorn Computers para su uso en ordenadores personales los primeros productos basados en ARM eran los Acorn Archimedes lanzados en 1987 El logo de ARM Procesador ARM en una impresora HP Un enfoque de diseno basado en RISC permite que los procesadores ARM requieran una cantidad menor de transistores que los procesadores x86 CISC tipicos en la mayoria de ordenadores personales Este enfoque de diseno nos lleva por tanto a una reduccion de los costes calor y energia Estas caracteristicas son deseables para dispositivos que funcionan con baterias como los telefonos moviles tabletas etc La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia Como resultado se han convertido en los dominantes dentro del mercado de la electronica movil e integrada encarnados en microprocesadores y microcontroladores pequenos de bajo consumo y relativamente bajo costo En 2005 alrededor del 98 de los mas de mil millones de telefonos moviles vendidos utilizaban al menos un procesador ARM 3 Desde 2009 los procesadores ARM son aproximadamente el 90 de todos los procesadores RISC de 32 bits integrados Cabe hacer mencion que no existe una tabla de equivalencias de rendimiento entre las distintas tecnologias de procesadores 4 que se utilizan generalmente en la electronica de consumo incluyendo PDA tabletas telefonos moviles telefonos inteligentes relojes inteligentes videoconsolas portatiles calculadoras reproductores digitales multimedia fotos videos etc y perifericos de ordenador como discos duros y enrutadores La arquitectura ARM es licenciable Esto significa que el negocio principal de ARM Holdings es la venta de nucleos IP propiedad intelectual estas licencias se utilizan para crear microcontroladores y CPUs basados en este nucleo Las empresas que son titulares de licencias ARM actuales o anteriores incluyen a Alcatel Lucent Apple Inc AppliedMicro Atmel Broadcom Cirrus Logic Digital Equipment Corporation Ember Energy Micro Freescale Intel a traves de DEC LG Marvell Technology Group Microsemi Microsoft NEC Nintendo Nokia Nuvoton Nvidia Sony MediaTek NXP antes Philips Semiconductors Oki ON Semiconductor Psion Qualcomm Samsung Sharp STMicroelectronics Symbios Logic Texas Instruments VLSI Technology Yamaha y ZiiLABS Los procesadores ARM son desarrollados por ARM y los titulares de las licencias de ARM Prominentes familias de procesadores ARM desarrollados por ARM Holdings incluyen el ARM7 V8 A ARM9 ARM11 y Cortex Entre los procesadores ARM desarrollados por firmas licenciatarias se incluyen Applied Micro Circuits Corporation X Gene DEC StrongARM Freescale i MX Marvell Technology Group XScale NVIDIA Tegra Qualcomm Snapdragon Texas Instruments OMAP Samsung Exynos Apple Ax ST Ericsson NovaThor Huawei K3V2 e Intel Medfield Indice 1 Historia 2 Familias 3 Diseno 4 Tecnologias 4 1 Thumb 4 2 Jazelle 5 Sistemas operativos 5 1 Acorn systems 5 2 Sistemas operativos integrados 5 3 UNIX 5 4 Tipo UNIX 5 4 1 Linux 5 4 2 BSD 5 5 Windows 6 Vease tambien 7 Referencias 8 Enlaces externosHistoria Editar Microprocesador ARM en un router El diseno de la arquitectura ARM comenzo en 1983 como un proyecto de desarrollo por la empresa Acorn 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 razon era que Acorn tenia una larga linea de ordenadores personales basados en dicho microprocesador por lo que tenia sentido desarrollar uno con el que los desarrolladores se sintieran comodos El equipo termino el diseno preliminar y los primeros prototipos del procesador en el ano 1985 al que llamaron ARM1 La primera version utilizada comercialmente se bautizo como ARM2 y se lanzo en el ano 1986 La arquitectura del ARM2 posee un bus de datos de 32 bits y ofrece un espacio de direcciones de 26 bits junto con 16 registros de 32 bits Uno de estos registros se utiliza como contador de programa aprovechandose sus 4 bits superiores y los 2 inferiores para contener los flags de estado del procesador El ARM2 es probablemente el procesador de 32 bits util mas simple del mundo ya que posee solo 30 000 transistores Su simplicidad se debe a que no esta basado en microcodigo 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 comun en aquella epoca no incluye cache Gracias a esto su consumo en energia es bastante bajo a la vez que ofrece un mejor rendimiento que un 286 Su sucesor el ARM3 incluye una pequena memoria cache de 4 KB lo que mejora los accesos a memoria repetitivos A finales de los anos 1980 Apple Computer comenzo a trabajar con Acorn en nuevas versiones del nucleo ARM En Acorn se dieron cuenta de que el hecho de que el fabricante de un procesador fuese tambien un fabricante de ordenadores podria echar para atras a los clientes por lo que se decidio crear una nueva compania llamada Advanced RISC Machines que seria la encargada del diseno y gestion de las nuevas generaciones de procesadores ARM Ocurria esto en el ano 1990 Este trabajo derivo en el ARM6 presentado en 1991 Apple utilizo el ARM 610 basado en el ARM6 como procesador basico para su innovador PDA el Apple Newton Por su parte Acorn lo utilizo en 1994 como procesador principal en su RiscPC El nucleo mantuvo su simplicidad a pesar de los cambios en efecto el ARM2 tiene 30 000 transistores mientras que el ARM6 solo cuenta con 35 000 La idea era que el usuario final combinara el nucleo del ARM con un numero opcional de perifericos integrados y otros elementos pudiendo crear un procesador completo a la medida de sus necesidades La mayor utilizacion de la tecnologia ARM se alcanzo con el procesador ARM7TDMI con millones de unidades en telefonos moviles y sistemas de videojuegos portatiles DEC licencio el diseno lo cual genero algo de confusion debido a que ya producia el DEC Alpha y creo el StrongARM Con una velocidad de reloj de 233 MHz este procesador consumia solo 1 W de potencia este consumo de energia se ha reducido en versiones mas recientes Esta tecnologia paso posteriormente a manos de Intel como fruto de un acuerdo juridico que la integro en su linea de procesadores Intel i960 e hizo mas ardua la competencia Freescale una empresa que derivo de Motorola en el ano 2004 IBM Infineon Technologies OKI Texas Instruments Nintendo Philips VLSI Atmel Sharp Samsung y STMicroelectronics tambien licenciaron el diseno basico del ARM El diseno del ARM se ha convertido en uno de los mas usados del mundo desde discos duros hasta juguetes Hoy en dia cerca del 75 de los procesadores de 32 bits poseen este chip en su nucleo Familias EditarFamilia Version de Arquitectura Nucleo Caracteristicas Cache I D MMU MIPS efectivos MHz Campos de AplicacionARM1 ARMv1 obsoleto ARM1 Nulo ARM Evaluation System segundo procesador para BBC MicroARM2 ARMv2 obsoleto ARM2 Anadida instruccion MUL multiplicar Nulo 4 MIPS 8 MHz0 33 DMIPS MHz Acorn Archimedes ChessmachineARMv2a obsoleto ARM250 Integrado MEMC MMU graficos y un procesador de E S Anadidas instrucciones SWP y SWPB swap Nulo MEMC1a 7 MIPS 12 MHz Acorn ArchimedesARM3 ARMv2a obsoleto ARM2a Primera integracion de una memoria cache en un ARM 4K unificados 12 MIPS 25 MHz0 50 DMIPS MHz Acorn ArchimedesARM6 ARMv3 obsoleto ARM60 Soporte de direccion de memoria de 32 bits frente a los 26 bits Nulo 10 MIPS 12 MHz 3DO Interactive Multiplayer Zarlink GPS ReceiverARM600 Como ARM60 cache y un bus cooprocesador para la unidad de coma flotante FPA10 4K unificados 28 MIPS 33 MHzARM610 Como ARM60 cache sin bus coprocesador 4K unificados 17 MIPS 20 MHz0 65 DMIPS MHz Acorn Risc PC 600 Apple Newton Serie 100ARM7 ARMv3 obsoleto ARM700 8 KB unificados 40 MHz Acorn Risc PC prototipo de CPU cardARM710 Como ARM700 8 KB unificados 40 MHz Acorn Risc PC 700ARM710a Como ARM700 8 KB unificados 40 MHz0 68 DMIPS MHz Acorn Risc PC 700 Apple eMate 300ARM7100 Como ARM710a SoC integrado 8 KB unificados 18 MHz Psion Series 5ARM7500 Como ARM710a SoC integrado 4 KB unificados 40 MHz Acorn A7000ARM7500FE ARM7500 FE anadido un FPA y un controlador de memoria EDO 4 KB unificados 56 MHz0 73 DMIPS MHz Acorn A7000 Network ComputerARM7TDMI ARMv4T ARM7TDMI S Segmentacion de 3 etapas Thumb nulo 15 MIPS 16 8 MHz63 DMIPS 70 MHz Game Boy Advance Nintendo DS Apple iPod Lego NXT Atmel AT91SAM7 Juice Box NXP Semiconductors LPC2000 and LH754xx Actel s CoreMP7ARM710T ARM7TDMI cache 8 KB unificados MMU 36 MIPS 40 MHz Psion Series 5mx Psion Revo Revo Plus Diamond MakoARM720T ARM7TDMI cache 8 KB unificados MMU con FCSE 60 MIPS 59 8 MHz Zipit Wireless Messenger NXP Semiconductors LH7952xARM740T ARM7TDMI cache MPUARMv5TEJ ARM7EJ S Segmentacion de 5 etapas Thumb Jazelle DBX mejora de instrucciones DSP nuloStrongARM ARMv4 SA 110 16 KB 16 KB MMU 203 MHz1 0 DMIPS MHz Apple Newton serie 2x00 Acorn Risc PC Rebel Corel Netwinder Chalice CATSSA 1100 SA 110 SoC integrado 16 KB 8 KB MMU 203 MHz Psion netBookSA 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 31ARM8 ARMv4 ARM810 5 Segmentacion de 5 fases predileccion de salto estatico memoria de doble ancho de banda 8 KB unificados MMU 84 MIPS 72 MHz1 16 DMIPS MHz Acorn Risc PC prototipo de CPU cardARM9TDMI ARMv4T ARM9TDMI Segmentacion de 5 fases Thumb nuloARM920T ARM9TDMI cache 16 KB 16 KB MMU con FCSE Fast Context Switch Extension 6 200 MIPS 180 MHz Armadillo Atmel AT91SAM9 GP32 GP2X primer nucleo Tapwave Zodiac Motorola i MX1 Hewlett Packard Calculadoras HP 49 50 Sun SPOT Cirrus Logic EP9302 EP9307 EP9312 EP9315 Samsung S3C2442 HTC TyTN FIC Neo FreeRunner 7 Samsung S3C2410 Dispositivos de navegacion TomTom 8 ARM922T ARM9TDMI caches 8 KB 8 KB MMU NXP Semiconductors LH7A40xARM940T ARM9TDMI caches 4 KB 4 KB MPU GP2X segundo nucleo Meizu M6 Mini Player 9 10 ARM9E ARMv5TE ARM946E S Thumb mejora de instrucciones DSP cache variables memoria estrechamente acoplada MPU Nintendo DS Nokia N Gage Canon PowerShot A470 Canon EOS 5D Mark II 11 Conexant 802 11 chips Samsung S5L2010ARM966E S Thumb Mejora de instrucciones DSP sin cache TCMs ST Micro STR91xF integra Ethernet 12 ARM968E S ARM966E S sin cache TCMs NXP Semiconductors LPC2900ARMv5TEJ ARM926EJ S Thumb Jazelle DBX Mejora de instrucciones DSP variables TCMs MMU 220 MIPS 200 MHz Telefonos moviles Sony Ericsson K W series Siemens y Benq serie x65 y posterior LG Arena Texas Instruments OMAP1710 OMAP1610 OMAP1611 OMAP1612 OMAP L137 OMAP L138 Qualcomm MSM6100 MSM6125 MSM6225 MSM6245 MSM6250 MSM6255A MSM6260 MSM6275 MSM6280 MSM6300 MSM6500 MSM6800 Freescale i MX21 i MX27 Atmel AT91SAM9 NXP Semiconductors LPC3000 GPH Wiz NEC C10046F5 211 PN2 A SoC nucleo en la ATi Hollywood GPU usada en la Wii 13 Samsung S3C2412 usado en Squeezebox Duet s Controller Squeezebox Radio NeoMagic MiMagic Family MM6 MM6 MM8 MTV Buffalo TeraStation Live NAS Telechips TCC7801 TCC7901 ZiiLABS ZMS 05 SoC Western Digital MyBook I World Edition Rockchip RK2806 y RK2808 ARMv5TE ARM996HS Procesador sin reloj como ARM966E S sin caches TCMs MPUARM10E ARMv5TE ARM1020E Segmentacion de 6 fases Thumb Mejora de instrucciones DSP VFP 32 KB 32 KB MMUARM1022E ARM1020E 16 KB 16 KB MMUARMv5TEJ ARM1026EJ S Thumb Jazelle DBX Mejora de instrucciones DSP VFP variable MMU o MPU Western Digital MyBook II World Edition Conexant so4610 y so4615 ADSL SoCXScale ARMv5TE 80200 IOP310 IOP315 Procesador E S Thumb Mejora de instrucciones DSP80219 400 600 MHz Thecus N2100IOP321 600 BogoMips 600 MHz IyonixIOP33xIOP34x 1 2 nucleos Acelerador de RAID 32K 32K L1 512K L2 MMUPXA210 PXA250 Procesador de aplicaciones Segmentacion de 7 fases PXA210 133 y 200 MHz PXA250 200 300 and 400 MHz Zaurus SL 5600 iPAQ H3900 Sony CLIE NX60 NX70V NZ90PXA255 32KB 32KB MMU 400 BogoMips 400 MHz 371 533 MIPS 400 MHz 14 Gumstix basix amp connex Palm Tungsten E2 Zaurus SL C860 Mentor Ranger amp Stryder iRex ILiadPXA263 200 300 y 400 MHz Sony CLIE NX73V NX80VPXA26x default 400 MHz mas de 624 MHz Palm Tungsten T3PXA27x 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 Portege G500 Treo 650 755p Zipit Z2 HP iPaq 614c Business Navigator PXA800 E FPXA3XX nombre en clave Monahans 32KB 32KB L1 TCM MMU 1000 MIPS 1 25 GHz Samsung OmniaPXA900 Blackberry 8700 Blackberry Pearl 8100 IXC1100 Procesador de control de vueloIXP2400 IXP2800IXP2850IXP2325 IXP2350IXP42x NSLU2 IXP460 IXP465ARM11 ARMv6 ARM1136J F S 15 Segmentacion 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 Instruments OMAP2420 Nokia E90 Nokia N93 Nokia N95 Nokia N82 Zune BUGbase 2 Nokia N800 Nokia 500 Nokia N810 Qualcomm MSM7200 con coprocesador ARM926EJ S 274 MHz usado en Eten 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 los HTC Dream HTC Magic Motorola Z6 HTC Hero amp Samsung SGH i627 Propel Pro Qualcomm MSM7227 usado en ZTE Link 16 17 ARMv6T2 ARM1156T2 F S Segmentacion de 9 etapas SIMD Thumb 2 VFP Mejora de instrucciones DSP variable MPUARMv6KZ ARM1176JZ F S ARM1136EJ F S variable MMU TrustZone Apple iPhone EDGE y 3G Apple iPod touch 1 ª y 2 ª generacion 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 PiARMv6K ARM11 MPCore As ARM1136EJ F S 1 4 core SMP variable MMU Nvidia APX 2500 Familia Nintendo 3DSFamilia Version de arquitectura Nucleo Caracteristicas Cache I D MMU MIPS efectivos MHz Campo de aplicacionCortex ARMv7 A Cortex A5 VFP NEON Jazelle RCT and DBX Thumb 2 Segmentacion de 8 fases 1 4 nucleos SMP variable L1 MMU TrustZone Mas de 1500 1 5 DMIPS MHz Sparrow nombre en clave 20 21 22 Cortex A8 VFP NEON Jazelle RCT Thumb 2 Segmentacion Superscalar de 13 etapas variable L1 L2 MMU TrustZone Mas de 2000 2 0 DMIPS MHz de reloj desde 600 MHz hasta mas de 1 GHz Texas Instruments serie OMAP3xxx SBM7000 Oregon State University OSWALD Gumstix Overo Earth Pandora Apple iPhone 3GS Apple iPod touch 3rd Generation Apple iPad SoCApple A4 Apple iPhone 4 Soc Apple 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 Touch Book Nokia N900 Meizu M9 ZiiLABS ZMS 08 SoC Qualcomm Scorpion GPU Adreno 200 VFPv3 NEON Jazelle RCT Thumb 2 Segmentacion Superscalar de 13 etapas variable L1 L2 MMU TrustZone Mas de 2000 2 0 DMIPS MHz de reloj desde 1 GHz hasta mas 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 SCortex 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 RAZRCortex A9 MPCore Cortex A9 1 4 nucleos SMP MMU TrustZone 10 000 DMIPS 2 GHz optimizados en TSMC 40G Doble nucleo 2 5 DMIPS MHz por nucleo Texas Instruments OMAP4430 4440 ST Ericsson U8500 Nvidia Tegra2 Qualcomm Snapdragon 8X72 PlayStation Vita Samsung Galaxy S II Exynos 4210 Samsung Galaxy S III Exynos 4212 ARMv7 R Cortex R4 F Perfil Embebido Thumb 2 FPU variable cache MPU opcional 600 DMIPS 475 MHz Broadcom TMS570 from Texas InstrumentsARMv7 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 MHzARMv7 M Cortex M3 Perfil microcontrolador Thumb 2 unicamente Reparto de instrucciones por Hardware sin cache MPU opcional 125 DMIPS 100 MHz Texas Instruments Stellaris microcontroller family ST Microelectronics STM32 NXP Semiconductors LPC1700 Toshiba TMPM330FDFG Ember s EM3xx Series Atmel AT91SAM3 Europe Technologies EasyBCU Energy Micro s EFM32 Actel s SmartFusionARMv6 M Cortex M0 nombre en clave Swift 24 Perfil microcontrolador Thumb 2 subset instrucciones 16 bit Thumb amp BL MRS MSR ISB DSB and DMB Sin cache 0 9 DMIPS MHz NXP Semiconductors NXP LPC1100 25 Triad Semiconductor 26 Melfas 27 Chungbuk Technopark 28 Nuvoton 29 austriamicrosystems 30 Rohm 31 Cortex M1 FPGA targeted Microcontroller profile Thumb 2 subset instrucciones 16 bit Thumb amp BL MRS MSR ISB DSB and DMB Sin Mas de 136 DMIPS 170 MHz 32 0 8 DMIPS MHz 33 MHz achievable FPGA dependent Actel ProASIC3 ProASIC3L IGLOO and Fusion PSC devices Altera Cyclone III otros productos FPGA estan soportados por ejemplo Synplicity 34 Familia Version de Arquitectura Nucleo Caracteristicas Cache I D MMU MIPS efectivos MHz Campo de AplicacionDiseno EditarEl juego de instrucciones del ARM es similar al del MOS 6502 pero incluye caracteristicas adicionales que le permiten conseguir un mejor rendimiento en su ejecucion Para mantener el concepto tradicional de RISC se establecio la ejecucion de una orden en un tiempo por lo general de un ciclo La caracteristica mas interesante es el uso de los 4 bits superiores como codigo de condicion haciendo que cualquier instruccion pueda ser condicional Este corte reduce el espacio para algunos desplazamientos en el acceso a la memoria pero permite evitar perder ciclos de reloj en el pipeline al ejecutar pequenos trozos de codigo con ejecucion condicional El ejemplo tipico es el Maximo comun divisor segun el algoritmo de Euclides Ejemplo en C while i j Ingresa en el ciclo cuando i lt j o i gt j no cuando i j if i gt j Cuando i gt j realiza lo siguiente i j else en otro cso realiza lo siguiente j i En cambio con codigo ensamblador ARM el ciclo puede hacerse mas eficiente haciendo loop Compara i y j GT i gt j LT i lt j NE i j Operaciones mejoradas usando resultados de flags if GT i j Sustrae solo si es mayor if LT j i Sustrae solo si es menor if NE goto loop Ciclo solo si los valores comparados no son iguales y esto se codifica como loop CMP Ri Rj establece la condicion NE if i j GT si i gt j o LT si i lt j SUBGT Ri Ri Rj si GT Mayor que i i j SUBLT Rj Rj Ri si LT Menor que j j i BNE loop si NE No igual entonces realiza el ciclo Otra caracteristica unica del juego de instrucciones es la posibilidad de anadir shifts y rotar en el procesamiento de datos aritmetico logico y movimiento de registros por ejemplo la instruccion en C a j lt lt 2 puede ser mejorada como una unica instruccion en el ARM permitiendo la reubicacion del registro Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento mejorando el rendimiento El procesador ARM tambien tiene algunas caracteristicas que son raras en otras arquitecturas tambien consideradas RISC como el direccionamiento relativo y el pre y post incremento en el modo de direccionamiento Tiene dos modos de funcionamiento el ARMI con instrucciones que ocupan 4 bytes mas rapidas y potentes hay instrucciones que solo estan en este modo pero con mayor consumo de memoria y de electricidad Y el modo THUMB mas limitado con instrucciones que ocupan 2 bytes y con menor consumo de corriente Tecnologias EditarThumb Editar Los procesadores mas recientes traen un conjunto de instrucciones adicional llamado Thumb de 16 bits 2 bytes de longitud por instruccion en lugar de 32 bits 4 bytes como el juego estandar de ARM Thumb es un subconjunto formado por las instrucciones que se usan con mas frecuencia Al tener la mitad de longitud se consigue disminuir la cantidad de codigo y mejorar su densidad El rendimiento puede ser superior a un codigo de 32 bits en donde el puerto de memoria o ancho del bus de comunicaciones son menores a 32 bits Por lo general en las aplicaciones se inserta un pequeno rango de direcciones de memoria con un datapath de 32 bits por ejemplo Game Boy Advance y el resto son 16 bits en modo wide o narrower El primer procesador con la tecnologia Thumb fue el ARM7TDMI Toda la familia posterior al ARM9 incluyendo el procesador Intel XScale tienen incorporada la tecnologia en su nucleo Jazelle Editar ARM tiene implementada una tecnologia que permite que ciertos tipos de arquitecturas ejecuten Java bytecode nativamente en el hardware El primer procesador en usar Jazelle fue el ARM926EJ S siendo denominados con una J a todos los procesadores que soportaran esta tecnologia Sistemas operativos Editar Android un popular sistema operativo basado en el kernel Linux 35 36 que opera principalmente sobre la arquitectura ARM Acorn systems Editar El primer ordenador personal basado en ARM es el Acorn Archimedes que ejecutaba un sistema operativo provisional llamado Arthur que se convirtio en RISC OS utilizado en posteriores modelos de Acorn y otros vendedores Sistemas operativos integrados Editar La arquitectura ARM esta soportada por un gran numero de sistemas operativos integrados y de tiempo real incluyendo Windows CE Windows 8 RT NET Micro Framework Symbian ChibiOS RT FreeRTOS eCos Integrity Nucleus PLUS MicroC OS II QNX RTEMS BRTOS RTXC Quadros ThreadX Unison Operating System uTasker VxWorks MQX y OSE 37 UNIX Editar Los sistemas que acreditan la especificacion estandar UNIX y que soportan la arquitectura ARM son SolarisTipo UNIX Editar Las variantes de UNIX soportadas son BSD Linux Plan 9 from Bell Labs Apple iOSLinux Editar Las siguientes distribuciones Linux soportan los procesadores ARM BSD Editar Los siguientes sistemas BSD soportan los procesadores ARM FreeBSD 38 NetBSD 39 OpenBSD 40 RISC iX solo sistemas basados en Acorn ARM2 ARM3 Windows Editar Microsoft anuncio el 5 de enero de 2011 que la proxima gran version de la familia Windows NT hoy Windows 8 41 incluye soporte para procesadores ARM Microsoft mostro una version preliminar de Windows version 6 2 7867 que se ejecuta en un equipo basado en ARM en el Consumer Electronics Show 2011 42 La arquitectura ARM tambien es soportada por los sistemas operativos moviles de Microsoft Windows Phone y Windows Mobile ARM tambien es compatible con Windows Embedded CE que ahora se llama Windows Embedded Compact Esta ultima version soporta ARM 5 6 y 7 Windows CE 5 es el sistema operativo subyacente para Windows Mobile y Windows Embedded Compact 7 es el sistema operativo subyacente para Windows Phone 7 El pequeno Microsoft OS NET Microframework utiliza exclusivamente ARM El 29 de octubre de 2012 salio a la venta la tableta Surface de Microsoft la cual tiene un procesador ARM y utiliza como sistema operativo Windows 8 RT version que no se puede descargar ni comprar ya que viene instalada en tabletas con arquitectura ARM Hay otra version de Windows 8 distinta a esta que es el Windows 8 PRO para computadoras x86 Recientemente se ha estado trabajando en un emulador de Windows 10 de arquitectura de x86 para procesadores ARM en una marca de procesadores en especifico Vease tambien EditarStrongARMReferencias Editar ARM Cores Climb Into 3G Territory by Mark Hachman 2002 The Two Percent Solution Archivado el 26 de septiembre de 2007 en Wayback Machine by Jim Turley 2002 ARMed for the living room Fitzpatrick J 2011 An interview with Steve Furber Communications of the ACM 54 5 34 doi 10 1145 1941487 1941501 ARM810 Dancing to the Beat of a Different Drum ARM Holdings presentation at Hot Chips 1996 08 07 Register 13 FCSE PID register ARM920T Technical Reference Manual Neo1973 GTA01Bv4 versus GTA02 comparison Consultado el 15 de noviembre de 2007 S3C2410 Consultado el 13 de enero de 2010 Rockbox Samsung SA58xxx series Consultado el 22 de febrero de 2008 Rockbox Meizu M6 Port Hardware Information Consultado el 22 de febrero de 2008 1 STR9 STR912 STR912FW44 microcontroller documents and files download page Mcu st com Archivado desde el original el 10 de febrero de 2007 Consultado el 18 de abril de 2009 Starlet Benchmarks Albatross Albatross uav org 18 de junio de 2005 Archivado desde el original el 2 de agosto de 2009 Consultado el 18 de abril de 2009 ARM1136J F S ARM Processor Arm com Consultado el 18 de abril de 2009 Qualcomm chips kernel ARM from phones to laptops xi0 info Archivado desde el original el 13 de marzo de 2012 Consultado el 8 de mayo de 2010 Qualcomm MSM7227 RISC Chipset pdadb net Consultado el 8 de mayo de 2010 GoForce 6100 Nvidia com Consultado el 18 de abril de 2009 Samsung S3C6410 and S3C6430 Series ARM Proccessors Samsung Archivado desde el original el 1 de septiembre de 2009 Consultado el 8 de octubre de 2009 y el Qualcomm MSM7627 visto en el Palm Pixi y el Motorola Calgary Devour Merrit Rick 21 de octubre de 2009 ARM stretches out with A5 core graphics FPGAs EE Times Archivado desde el original el 13 de marzo de 2012 Consultado el 28 de octubre de 2009 Clarke Peter 3 de febrero de 2009 ARM tips plans for Swift and Sparrow processor cores EE Times Archivado desde el original el 13 de marzo de 2012 Consultado el 18 de abril de 2009 Segan Sascha 9 de abril de 2009 ARM s Multicore Chips Aim for Netbooks PC Magazine Consultado el 18 de abril de 2009 Benz Benjamin 2 de febrero de 2010 Cortex Nachwuchs bei ARM Heise de Consultado el 3 de mayo de 2010 Clarke Peter 23 de febrero de 2009 ARM preps tiny core for low power microcontrollers EE Times Archivado desde el original el 13 de marzo de 2012 Consultado el 30 de noviembre de 2009 Walko John 23 de marzo de 2009 NXP first to demo ARM Cortex M0 silicon EE Times Archivado desde el original el 13 de marzo de 2012 Consultado el 29 de junio de 2009 https web archive org web 20110716112427 http www triadsemi com services arm powered vcas Cortex M0 used in low power touch controller http www design reuse com news 22137 arm cortex m0 processor html http translate google co uk translate hl en amp sl zh TW amp u http www nuvoton com hq enu NewsAndEvents News MediaCoverage 20091005 htm http www10 edacafe com nbc articles view article php articleid 752000 http www arm com about newsroom rohm licenses arm cortex m0 processor php ARM Extends Cortex Family with First Processor Optimized for FPGA ARM press release March 19 2007 Retrieved April 11 2007 ARM Cortex M1 ARM product website Retrieved April 11 2007 ARM Extends Cortex Family with First Processor Optimized for FPGA Richard Stallman Android y la libertad de los usuarios www gnu org Consultado el 24 de diciembre de 2016 Richard Stallman Preguntas frecuentes sobre GNU Linux www gnu org Consultado el 24 de diciembre de 2016 Software Enablement www arm com ARM Ltd Archivado desde el original el 16 de noviembre de 2010 Consultado el 18 de noviembre de 2010 FreeBSD ARM Project Consultado el 1 de junio de 2009 Hardware supported by NetBSD Consultado el 1 de junio de 2009 OpenBSD armish Consultado el 1 de junio de 2009 Microsoft Says Faster ARM Chips Make Windows 8 Natural Fit San Francisco Chronicle 2 de junio de 2011 Archivado desde el original el 6 de junio de 2011 Consultado el 2 de junio de 2011 Microsoft demonstrates early build of Windows 8 Archivado el 1 de noviembre de 2012 en Wayback Machine Enlaces externos Editar Wikimedia Commons alberga una categoria multimedia sobre Arquitectura ARM ARM Ltd Datos Q16980 Multimedia ARM microprocessors Obtenido de https es wikipedia org w index php title Arquitectura ARM amp oldid 138002345, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos