Movatterモバイル変換


[0]ホーム

URL:


Ir al contenido
WikipediaLa enciclopedia libre
Buscar

Arquitectura ARM

De Wikipedia, la enciclopedia libre
«ARM» redirige aquí. Para otras acepciones, véaseARM (desambiguación).
Arquitectura ARM
Información
TipoRegistro–Registro
Desarrollador

Sophie Wilson
Steve Furber

Acorn Computers/Arm Ltd.
Fecha de lanzamiento1985
Datos técnicos
Conjunto de instruccionesRISC
Ancho en bits32-bit • 64-bit
El logo deARM
Procesador ARM en unaimpresoraHP

ARM, anteriormenteAdvanced RISC Machine, originalmenteAcorn RISC Machines, es unaarquitecturaRISC (Reduced Instruction Set Computer, «Ordenador con Conjunto Reducido de Instrucciones») de32 bits y, con la llegada de su versión V8-A, también de64 Bits, desarrollada porARM Holdings. La arquitectura ARM es elconjunto de instrucciones de 32 y 64 bits más ampliamente utilizado en unidades producidas.[1][2]​ Concebida originalmente porAcorn Computers para su uso enordenadores personales, los primeros productos basados en ARM eran losAcorn Archimedes, lanzados en 1987.

Un enfoque de diseño basado enRISC 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 enmicroprocesadores ymicrocontroladores pequeños, de bajo consumo y relativamente bajo costo. En 2005, alrededor del 98% de los más de mil millones detelé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, incluyendoPDA,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 comodiscos duros yenrutadores.

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 aAlcatel-Lucent,Apple Inc., AppliedMicro,Atmel,Broadcom,Cirrus Logic,Digital Equipment Corporation, Ember, Energy Micro,Freescale,Intel (a través deDEC),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 yCortex. Entre los procesadores ARM desarrollados por firmas licenciatarias se incluyen Applied Micro Circuits Corporation X-Gene,DECStrongARM,Freescale i.MX, Marvell Technology GroupXScale,NVIDIATegra,QualcommSnapdragon,Texas InstrumentsOMAP,SamsungExynos,AppleAx,ST-EricssonNovaThor,HuaweiK3V2 eIntelMedfield.

Historia

[editar]
Microprocesador ARM en unrúter

El diseño de la arquitectura ARM comenzó en 1983 como un proyecto de desarrollo por la empresaAcorn Computers.Sophie Wilson ySteve Furber lideraban el equipo, cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la delMOS 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 unbus de datos de 32bits 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 000transistores. Su simplicidad se debe a que no está basado enmicrocó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 incluyecaché. Gracias a esto, su consumo en energía es bastante bajo, a la vez que ofrece un mejor rendimiento que un286. Su sucesor, el ARM3, incluye una pequeña memoria caché de 4KB, 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 en 1990 se decidió crear una nueva compañía llamadaAdvanced RISC Machines, que sería la encargada del diseño y gestión de las nuevas generaciones de procesadores ARM.

Este trabajo derivó en el ARM6, presentado en 1991. Apple utilizó el ARM 610 (basado en el ARM6), como procesador básico para su innovadorPDA, elApple Newton. Por su parte, Acorn lo utilizó en 1994 como procesador principal en suRiscPC.

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 devideojuegos portátiles.

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

Freescale (una empresa que derivó deMotorola en el año 2004),IBM,Infineon Technologies,OKI,Texas Instruments,Nintendo,Philips,VLSI,Atmel,Sharp,Samsung ySTMicroelectronics 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

[editar]
FamiliaVersión de ArquitecturaNúcleoCaracterísticasCaché (I/D)/MMUMIPS efectivos @ MHzCampos de Aplicación
ARM1ARMv1 (obsoleto)ARM1NuloARM Evaluation System segundo procesador paraBBC Micro
ARM2ARMv2 (obsoleto)ARM2Añadida instrucción MUL (multiplicar)Nulo4 MIPS @ 8 MHz
0.33 DMIPS/MHz
Acorn Archimedes,Chessmachine
ARMv2a (obsoleto)ARM250Integrado MEMC (MMU), gráficos y un procesador de E / S. Añadidas instrucciones SWP y SWPB (swap).Nulo, MEMC1a7 MIPS @ 12 MHzAcorn Archimedes
ARM3ARMv2a (obsoleto)ARM2aPrimera integración de una memoria caché en un ARM.4K unificados12 MIPS @ 25 MHz
0.50 DMIPS/MHz
Acorn Archimedes
ARM6ARMv3 (obsoleto)ARM60Soporte de dirección de memoria de 32 bits (frente a los 26 bits)Nulo10 MIPS @ 12 MHz3DO Interactive Multiplayer, Zarlink GPS Receiver
ARM600Como ARM60, caché y un bus cooprocesador (para la unidad de coma flotante FPA10).4K unificados28 MIPS @ 33 MHz
ARM610Como ARM60, caché, sin bus coprocesador.4K unificados17 MIPS @ 20 MHz
0.65 DMIPS/MHz
Acorn Risc PC 600,Apple Newton Serie 100
ARM7ARMv3 (obsoleto)ARM7008KB unificados40 MHzAcorn Risc PC prototipo de CPU card
ARM710Como ARM7008 KB unificados40 MHzAcorn Risc PC 700
ARM710aComo ARM7008 KB unificados40 MHz
0.68 DMIPS/MHz
Acorn Risc PC 700,Apple eMate 300
ARM7100Como ARM710a,SoC integrado.8 KB unificados18 MHzPsion Series 5
ARM7500Como ARM710a, SoC integrado.4 KB unificados40 MHzAcorn A7000
ARM7500FEARM7500, "FE" añadido un FPA y un controlador de memoria EDO.4 KB unificados56 MHz
0.73 DMIPS/MHz
Acorn A7000+Network Computer
ARM7TDMIARMv4TARM7TDMI(-S)Segmentación de 3 etapas, Thumbnulo15 MIPS @ 16.8 MHz
63 DMIPS @ 70 MHz
Game Boy Advance,Nintendo DS,Apple iPod,Lego NXT,AtmelAT91SAM7,Juice Box,NXP SemiconductorsLPC2000 andLH754xx,Actel'sCoreMP7Archivado el 18 de julio de 2011 enWayback Machine.
ARM710TARM7TDMI, caché8 KB unificados, MMU36 MIPS @ 40 MHzPsion Series 5mx,Psion Revo/Revo Plus/Diamond Mako
ARM720TARM7TDMI, caché8 KB unificados, MMU con FCSE60 MIPS @ 59.8 MHzZipit Wireless Messenger,NXP SemiconductorsLH7952x
ARM740TARM7TDMI, cachéMPU
ARMv5TEJARM7EJ-SSegmentación de 5 etapas, Thumb, Jazelle DBX, mejora de instrucciones DSPnulo
StrongARMARMv4SA-11016 KB/16 KB, MMU203 MHz
1.0 DMIPS/MHz
Apple Newton serie 2x00,Acorn Risc PC, Rebel/Corel Netwinder, Chalice CATS
SA-1100SA-110, SoC integrado16 KB/8 KB, MMU203 MHzPsion netBook
SA-1110SA-110, SoC integrado16 KB/8 KB, MMU206 MHzLART (computer), Intel Assabet,Ipaq H36x0,Balloon2,Zaurus SL-5x00,HP Jornada 7xx,Jornada 560 series, Palm Zire 31
ARM8ARMv4ARM810[5]Segmentación de 5 fases, predilección de salto estático, memoria de doble ancho de banda8 KB unificados, MMU84 MIPS @ 72 MHz
1.16 DMIPS/MHz
Acorn Risc PC prototipo de CPU card
ARM9TDMIARMv4TARM9TDMISegmentación de 5 fases, Thumbnulo
ARM920TARM9TDMI, caché16 KB/16 KB, MMU con FCSE (Fast Context Switch Extension)[6]200 MIPS @ 180 MHzArmadillo,AtmelAT91SAM9,GP32,GP2X (primer núcleo),Tapwave Zodiac (Motorola i. MX1), Hewlett-PackardCalculadoras HP-49/50,Sun SPOT, Cirrus Logic EP9302, EP9307, EP9312, EP9315,Samsung S3C2442 (HTC TyTN,FICNeo FreeRunner[7]​),Samsung S3C2410 (Dispositivos de navegaciónTomTom)[8]
ARM922TARM9TDMI, cachés8 KB/8 KB, MMUNXP SemiconductorsLH7A40x
ARM940TARM9TDMI, cachés4 KB/4 KB, MPUGP2X (segundo núcleo), MeizuM6 Mini Player[9][10]
ARM9EARMv5TEARM946E-SThumb, mejora de instrucciones DSP, cachévariables, memoria estrechamente acoplada, MPUNintendo DS,NokiaN-Gage,Canon PowerShot A470,Canon EOS 5D Mark II,[11]​ Conexant 802.11 chips, Samsung S5L2010
ARM966E-SThumb, Mejora de instrucciones DSPsin caché, TCMsST Micro STR91xF, integra Ethernet[12]
ARM968E-SARM966E-Ssin caché, TCMsNXP SemiconductorsLPC2900
ARMv5TEJARM926EJ-SThumb, Jazelle DBX, Mejora de instrucciones DSPvariables, TCMs, MMU220 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 laATi Hollywood GPU usada en la Wii,[13]Samsung S3C2412 usado enSqueezebox 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";RockchipRK2806 yRK2808.
ARMv5TEARM996HSProcesador sin reloj, como ARM966E-Ssin cachés, TCMs, MPU
ARM10EARMv5TEARM1020ESegmentación de 6 fases, Thumb, Mejora de instrucciones DSP, (VFP)32 KB/32 KB, MMU
ARM1022EARM1020E16 KB/16 KB, MMU
ARMv5TEJARM1026EJ-SThumb, Jazelle DBX, Mejora de instrucciones DSP, (VFP)variable, MMU o MPUWestern DigitalMyBook "II World Edition";Conexant so4610 y so4615 ADSL SoC
XScaleARMv5TE80200/IOP310/IOP315Procesador E/S, Thumb, Mejora de instrucciones DSP
80219400/600 MHzThecus N2100
IOP321600BogoMips @ 600 MHzIyonix
IOP33x
IOP34x1–2 núcleos, Acelerador de RAID32K/32K L1, 512K L2, MMU
PXA210/PXA250Procesador de aplicaciones, Segmentación de 7 fasesPXA210: 133 y 200 MHz, PXA250: 200, 300, and 400 MHzZaurus SL-5600,iPAQ H3900,SonyCLIÉ NX60, NX70V, NZ90
PXA25532KB/32KB, MMU400 BogoMips @ 400 MHz; 371–533 MIPS @ 400 MHz[14]Gumstix basix & connex,Palm Tungsten E2,Zaurus SL-C860,Mentor Ranger & Stryder, iRexILiad
PXA263200, 300 y 400 MHzSonyCLIÉ NX73V, NX80V
PXA26xdefault 400 MHz, más de 624 MHzPalm Tungsten T3
PXA27xProcesador de Aplicaciones32 KB/32 KB, MMU800 MIPS @ 624 MHzGumstix 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, FujitsuPalm 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, MMU1000 MIPS @ 1.25 GHzSamsung Omnia
PXA900Blackberry 8700, Blackberry Pearl (8100)
IXC1100Procesador de control de vuelo
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42xNSLU2 IXP460/IXP465
ARM11ARMv6ARM1136J(F)-S[15]Segmentación de 8 etapas,SIMD, Thumb, Jazelle DBX, (VFP), Mejora de instrucciones DSPvariable, MMU740 @ 532–665 MHz (i.MX31 SoC), 400–528 MHzTexas InstrumentsOMAP2420 (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 enEten Glofiish,HTC TyTN II,HTC Nike), Freescalei.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 enZTE Link,[16][17]
ARMv6T2ARM1156T2(F)-SSegmentación de 9 etapas,SIMD, Thumb-2, (VFP), Mejora de instrucciones DSPvariable, MPU
ARMv6KZARM1176JZ(F)-SARM1136EJ(F)-Svariable, MMU+TrustZoneApple 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
ARMv6KARM11 MPCoreAs ARM1136EJ(F)-S, 1–4 core SMPvariable, MMUNvidia APX 2500,Familia Nintendo 3DS
FamiliaVersión de arquitecturaNúcleoCaracterísticasCaché (I/D)/MMUMIPS efectivos @ MHzCampo de aplicación
CortexARMv7-ACortex-A5VFP, NEON, Jazelle RCT and DBX, Thumb-2, Segmentación de 8 fases, 1–4 núcleos SMPvariable (L1), MMU+TrustZoneMás de 1500 (1.5 DMIPS/MHz)"Sparrow" (nombre en clave)[20][21][22]
Cortex-A8VFP, NEON, Jazelle RCT, Thumb-2, Segmentación Superscalar de 13 etapasvariable (L1+L2), MMU+TrustZoneMá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,Touch Book,Nokia N900,Meizu M9,ZiiLABS ZMS-08 SoC.
Qualcomm ScorpionGPU Adreno 200, VFPv3, NEON, Jazelle RCT, Thumb-2, Segmentación Superscalar de 13 etapas,variable (L1+L2), MMU+TrustZoneMá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, GoogleNexus One,HTC EVO 4G,HTC Incredible,HTC Scorpion,HTC HD2,HTC HD7Sony Ericsson Xperia ARC/ARC S
Cortex-A9Perfil de aplicaciones, (VFP), (NEON), Jazelle RCT y DBX, Thumb-2, Out-of-order speculative issue superscalarMMU+TrustZone2.5 DMIPS/MHzAcer Iconia A200,Galaxy Nexus, Motorola RAZR
Cortex-A9 MPCoreCortex-A9, 1–4 núcleos SMPMMU+TrustZone10,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-RCortex-R4(F)Perfil Embebido, Thumb-2, (FPU)variable caché, MPU opcional600DMIPS @ 475 MHzBroadcom, TMS570 from Texas Instruments
ARMv7-MECortex-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-MCortex-M3Perfil microcontrolador, Thumb-2 únicamente. Reparto de instrucciones por Hardware.sin caché, MPU opcional.125 DMIPS @ 100 MHzTexas InstrumentsStellaris microcontroller family,ST MicroelectronicsSTM32,NXP SemiconductorsLPC1700,ToshibaTMPM330FDFGArchivado el 14 de junio de 2011 enWayback Machine.,Ember's EM3xx Series,AtmelAT91SAM3,Europe TechnologiesEasyBCU,Energy Micro'sEFM32,Actel'sSmartFusionArchivado el 18 de junio de 2013 enWayback Machine.
ARMv6-MCortex-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/MHzNXP SemiconductorsNXP LPC1100,[25]Triad Semiconductor,[26]Melfas,[27]Chungbuk Technopark,[28]Nuvoton,[29]austriamicrosystems,[30]Rohm[31]
Cortex-M1FPGA targeted, Microcontroller profile, Thumb-2 subset (instrucciones 16-bit Thumb & BL, MRS, MSR, ISB, DSB, and DMB).SinMás de 136 DMIPS @ 170 MHz[32]​ (0.8 DMIPS/MHz,[33]​ MHz achievable FPGA-dependent)Actel ProASIC3, ProASIC3L, IGLOO and Fusion PSC devicesArchivado el 7 de julio de 2011 enWayback Machine.,Altera Cyclone III, otros productos FPGA están soportados, por ejemplo:Synplicity

[34]

FamiliaVersión de ArquitecturaNúcleoCaracterísticasCaché (I/D)/MMUMIPS efectivos @ MHzCampo de Aplicación

Diseño

[editar]

El juego de instrucciones del ARM es similar al delMOS 6502, pero incluye características adicionales que le permiten conseguir un mejor rendimiento en su ejecución. Para mantener el concepto tradicional deRISC, se estableció la ejecución de una orden a la vez, 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 elMáximo común divisor, según elalgoritmo deEuclides.

Ejemplo enC:

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 siguientei-=j;else// en otro caso, realiza lo siguientej-=i;}

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

loop:// Compara i y jGT=i>j;LT=i<j;NE=i!=j;// Operaciones mejoradas usando resultados de flagsif(GT)i-=j;// Sustrae *solo* si es mayorif(LT)j-=i;// Sustrae *solo* si es menorif(NE)gotoloop;// Ciclo *solo* si los valores comparados no son iguales

y esto se codifica como:

loop:CMPRi,Rj; establece la condicion "NE" if (i != j),;               "GT" si (i > j),;            o  "LT" si (i < j)SUBGTRi,Ri,Rj; si "GT" (Mayor que), i = i-j;SUBLTRj,Rj,Ri; si "LT" (Menor que), j = j-i;BNEloop; 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 poco comunes 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.

Registros

[editar]

La familia ARM dispone de 16 registros (utilizables por el programador) de 32 bits, que se designan desde R0 a R15. En principio son todos idénticos y sólo 3 tienen funciones específicas que son el R15 (se emplea como contador de programa o PC), y el R14 (utilizado para almacenar la dirección de retorno cuando se llama a una subrutina o se genera una excepción) y el R13 (stack Pointer).

Ventajas

[editar]
  • Amplio abanico de fabricantes: Como se ha comentado antes, ARM permite la compra a terceros de su licencia, dando lugar a un gran número de marcas productoras de esta arquitectura, cada cual, ofreciendo nuevas mejoras, avances, y, en general, un mayor abanico de opciones para el consumidor.
  • Simpleza de instrucciones: Nos encontramos con un set de instrucciones mucho más pequeño, pero mucho más atómico; esto quiere decir que las instrucciones se pueden cambiar prácticamente por instrucciones de tipo máquina, ahorrando tanto tiempo como energía en su traducción.
  • Bajo uso energético: Nos encontramos con RISC, y su "simpleza". Estos buscan la mayor eficiencia por ciclo; además, dan lugar a chips más pequeños y simples y, por tanto, a una mejora considerable en cuanto a eficiencia energética.
  • Rendimiento aceptable y en mejora: Como se ha dicho anteriormente, la compra de terceros ofrece nuevas mejoras y avances en el rendimiento.

Tecnologías

[editar]

Thumb

[editar]

Los procesadores más recientes traen un conjunto de instrucciones adicional llamadoThumb, 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 undatapath de 32 bits (por ejemplo:Game Boy Advance), y el resto son 16 bits en modowide onarrower.

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

Jazelle

[editar]

ARM tiene implementada unatecnología que permite que ciertos tipos de arquitecturas ejecuten Java bytecode nativamente en elhardware. El primer procesador en usarJazelle fue elARM926EJ-S, siendo denominados con una J a todos los procesadores que soportaran esta tecnología.

Sistemas operativos

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

Acorn systems

[editar]

El primerordenador personal basado en ARM es elAcorn Archimedes que ejecutaba un sistema operativo provisional llamadoArthur, que se convirtió enRISC OS, utilizado en posteriores modelos de Acorn y otros vendedores.

Sistemas operativos integrados

[editar]

La arquitectura ARM está soportada por un gran número de sistemas operativos integrados y detiempo real, incluyendoAndroid,Windows 11,Windows 10,macOS,iOS,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 yOSE.[37]

UNIX

[editar]

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

Tipo UNIX

[editar]

Las variantes de UNIX soportadas son:

Linux

[editar]

Las siguientesdistribuciones Linux soportan los procesadores ARM:

BSD

[editar]

Los siguientes sistemas BSD soportan los procesadores ARM:

Windows

[editar]

Microsoft anunció el 5 de enero de 2011 que la próxima gran versión de la familiaWindows NT (hoyWindows 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 elConsumer Electronics Show 2011.[42]​ La arquitectura ARM también es soportada por los sistemas operativos móviles de Microsoft,Windows Phone yWindows Mobile.ARM también es compatible conWindows Embedded CE que ahora se llamaWindows 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 tabletaSurface 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.

Las últimas versiones de Windows,10 y11, ya disponen de soporte para arquitectura ARM, pero no se dispone de ninguna herramienta para el uso de programasx86 en arquitectura ARM, por lo que el soporte de ARM no es completo.[43]

iOS y macOS

[editar]

Desde el desarrollo deliPhone en 2007,Apple ha utilizado procesadores ARM para sus plataformas de telefonía móvil (iPhone), relojes inteligentes (Apple Watch), tabletas (iPad), reproductores en streaming(Apple Tv) y más recientemente en todos sus ordenadores(iMac,MacBook,Mac Mini yMac Pro). Apple optó por procesadores ARM para estas plataformas debido a la ventaja que ofrecen por su bajo consumo de energía y poca refrigeración necesaria.

También el ARM acabó con los famososHackintosh , ganando la batalla contra la piratería por el momento.

Véase también

[editar]

Referencias

[editar]
  1. "ARM Cores Climb Into 3G Territory" by Mark Hachman, 2002.
  2. "The Two Percent Solution"Archivado el 26 de septiembre de 2007 enWayback Machine. by Jim Turley 2002.
  3. "ARMed for the living room".
  4. Fitzpatrick, J. (2011).«An interview with Steve Furber».Communications of the ACM54 (5): 34.doi:10.1145/1941487.1941501. 
  5. "ARM810 – Dancing to the Beat of a Different Drum" ARM Holdings presentation atHot 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. «STR9 – STR912 – STR912FW44 microcontroller – documents and files download page». Mcu.st.com. Archivado desdeel original el 10 de febrero de 2007. Consultado el 18 de abril de 2009. 
  13. Starlet.
  14. «Benchmarks – Albatross». Albatross-uav.org. 18 de junio de 2005. Archivado desdeel 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 desdeel 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 S3C6410 and S3C6430 Series ARM Proccessors». Samsung. Archivado desdeel original el 1 de septiembre de 2009. Consultado el 8 de octubre de 2009. , y el Qualcomm MSM7627 visto en elPalm 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 desdeel 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 desdeel 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 desdeel 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 desdeel original el 13 de marzo de 2012. Consultado el 29 de junio de 2009. 
  26. https://web.archive.org/web/20110716112427/http://www.triadsemi.com/services/arm-powered-vcas/
  27. Cortex-M0 used in low power touch controller
  28. http://www.design-reuse.com/news/22137/arm-cortex-m0-processor.html
  29. «Copia archivada». Archivado desdeel original el 22 de enero de 2020. Consultado el 18 de mayo de 2022. 
  30. http://www10.edacafe.com/nbc/articles/view_article.php?articleid=752000
  31. http://www.arm.com/about/newsroom/rohm-licenses-arm-cortex-m0-processor.php
  32. "ARM Extends Cortex Family with First Processor Optimized for FPGA", ARM press release, March 19, 2007. Retrieved April 11, 2007.
  33. "ARM Cortex-M1", ARM product website. Retrieved April 11, 2007.
  34. ARM Extends Cortex Family with First Processor Optimized for FPGA.
  35. Richard Stallman.«Android y la libertad de los usuarios».www.gnu.org. Consultado el 24 de diciembre de 2016. 
  36. Richard Stallman.«Preguntas frecuentes sobre GNU/Linux».www.gnu.org. Consultado el 24 de diciembre de 2016. 
  37. «Software Enablement».www.arm.com. ARM Ltd. Archivado desdeel original el 16 de noviembre de 2010. Consultado el 18 de noviembre de 2010. 
  38. «FreeBSD/ARM Project». Consultado el 1 de junio de 2009. 
  39. «Hardware supported by NetBSD». Consultado el 1 de junio de 2009. 
  40. «OpenBSD/armish». Consultado el 1 de junio de 2009. 
  41. «Microsoft Says Faster ARM Chips Make Windows 8 'Natural Fit'».San Francisco Chronicle. 2 de junio de 2011. Archivado desdeel original el 6 de junio de 2011. Consultado el 2 de junio de 2011. 
  42. Microsoft demonstrates early build of Windows 8Archivado el 1 de noviembre de 2012 enWayback Machine.
  43. Windows ARM SupportArchivado el 3 de agosto de 2023 enWayback Machine.

Enlaces externos

[editar]
Control de autoridades
Obtenido de «https://es.wikipedia.org/w/index.php?title=Arquitectura_ARM&oldid=171677678»
Categorías:
Categorías ocultas:

[8]ページ先頭

©2009-2026 Movatter.jp