Vés al contingut

Advanced RISC Machines

De la Viquipèdia, l'enciclopèdia lliure
Aquesta és una versió anterior d'aquesta pàgina, de data 11:32, 5 feb 2010 amb l'última edició de Mcapdevila (discussió | contribucions). Pot tenir inexactituds o contingut no apropiat no present en la versió actual.
(dif.) ←la pròxima versió més antiga | vegeu la versió actual (dif.) | Versió més nova → (dif.)

Es denomina ARM ( Advanced RISC Machines ) a una família de microprocessador és RISC dissenyats per l'empresa Acorn Computers i desenvolupats per Advanced RISC Machines Ltd ., una empresa derivada de l'anterior.

Processador ARM en una impressora HP

Història

Microprocessador ARM en un router

El disseny del ARM va començar el 1983 com un projecte de desenvolupament en l'empresa Acorn Computers Ltd Roger Wilson i Steve Furber lideraven l'equip, l'objectiu era, originalment, el desenvolupament d'un processador avançat, però amb una arquitectura similar a la del MOS 6.502. La raó era que Acorn tenia una llarga línia d'ordinadors personals basats en aquest micro, per la qual cosa tenia sentit desenvolupar un amb el qual els desenvolupadors se sentissin còmodes.

L'equip va acabar el disseny preliminar i els primers prototips del processador l'any 1985, al que van anomenar ARM1. La primera versió utilitzada comercialment es va batejar com ARM2 i es va llançar l'any 1986.

L'arquitectura del ARM2 té un bus de dades de 32 bit si ofereix un espai d'adreces de 26 bits, juntament amb 16 registres de 32 bits. Un d'aquests registres s'utilitza com a comptador de programa, aprofitant els seus 4 bits superiors i els 2 inferiors per contenir el flag d'estat del processador.

El ARM2 és probablement el processador de 32 bits útil més simple del món, ja que té només 30 000 transistor és. La seva simplicitat es deu a que no està basat en microcodi (sistema que sol ocupar al voltant de la quarta part de la quantitat total de transistors utilitzats en un processador) ja que, com era comú en aquella època, no inclou memòria cau . Gràcies a això, el seu consum en energia és bastant baix, alhora que ofereix un millor rendiment que un 286. El seu successor, el ARM3, inclou una petita memòria cau de 4 KB, el que millora els accessos a memòria repetitius.

A finals dels anys 80, Apple Computer va començar a treballar amb Acorn en noves versions del nucli ARM. En Acorn es van adonar que el fet que el fabricant d'un processador fos també un fabricant d'ordinadors podria fer enrere als clients, per la qual cosa es va decidir crear una nova companyia anomenada Advanced RISC Machines, que seria l'encarregada del disseny i gestió de les noves generacions de processadors ARM. Passava això en l'any 1990.

Aquest treball va derivar en l'ARM6, presentat en 1991. Apple va utilitzar el ARM 610 (basat en el ARM6), com processador bàsic per el seu innovador PDA, el Apple Newton. Per la seva banda, Acorn el va utilitzar a 1994 com a processador principal a la RiscPC.

El nucli va mantenir la seva simplicitat tot i els canvis: en efecte, el ARM2 té 30 000 transistors, mentre que el ARM6 només compta amb 35 000. La idea era que l'usuari final combinés el nucli del ARM amb un nombre opcional de perifèrics integrats i altres elements, podent crear un processador complet a la mesura de les seves necessitats.

La major utilització de la tecnologia ARM es va assolir amb el processador ARM7TDMI, amb milions d'unitats en telèfons mòbils i sistemes de videojoc s portàtils.

DEC llicenciar el disseny, la qual cosa va generar una mica de confusió degut a que ja produïa el DEC Alpha, i va crear el StrongARM. Amb una velocitat de rellotge de 233 MHz, aquest processador consumia només 1 W de potència (aquest consum d'energia s'ha reduït en més nous). Aquesta tecnologia va passar posteriorment a mans de Intel, com a fruit d'un acord jurídic, que la va integrar en la seva línia de processadors Intel i960 i va fer més àrdua la competència.

Freescale (una empresa que va derivar de Motorola l'any 2004), IBM, Infineon Technologies, OKI, Texas Instruments, Nintendo, Philips, VLSI, Atmel, Sharp, Samsung i STMicroelectronics també llicenciar el disseny bàsic de l'ARM .

El disseny del ARM s'ha convertit en un dels més usats del món, des de discs durs fins joguines. Avui en dia, prop del 75% dels processadors de 32 bits tenen aquest xip en el seu nucli.

Els nuclis

Família Nucli Característica Cache (I/D)/MMU MIPS MHz Ús
ARM7TDMI ARM7TDMI (-S) segmentació de 3 etapes cap 15 MIPS 16,8 MHz Game Boy Advance
ARM710T MMU
ARM720T 8KB unificats, MMU
ARM740T MPU
ARM7EJ-S Jazelle DBX sense
ARM9TDMI ARM9TDMI segmentació de 5 etapes sense
ARM920T 16KB/16KB, MMU 200 MIPS 180 MHz Consola GPX2, Calculadores HP-49/50
ARM922T 8KB/8KB, MMU
ARM940T MPU
ARM9E ARM946E-S variable, memòries altament acoblades, MPU Nintendo DS
ARM966E-S sense cache, TCMs
ARM968E-S sense cache, TCMs
ARM926EJ-S Jazelle DBX variable, TCMs, MMU
ARM10E ARM1020E (VFP) 32KB/32KB, MMU
ARM1022E (VFP) 16KB/16KB, MMU
ARM1026EJ-S Jazelle DBX variable, MMU o MPU
ARM11 ARM1136J (F)-S SIMD, Jazelle DBX, (VFP) variable, MMU Motorola Z6
ARM1156T2 (F)-S SIMD, Thumb-2, (VFP) variable, MPU
ARM1176JZ (F)-S SIMD, Jazelle DBX, (VFP) variable, MMU+TrustZone 420 MHz iPhone
ARM11 MPCore 1/4 nuclis SMP SIMD, Jazelle DBX, (VFP) variable, MMU
Cortex Cortex-M3 Microcontroller profile sense cache, (MPU)
Cortex-A8 NEON, Jazelle RCT, Thumb-2 variable (L1+L2), MMU+TrustZone fins a 2000 (2.0 DMIPS/MHz velocitats des de 600MHz fins a més de 1GHz) Pandora (consola)
Cortex-A9 Nuclis múltiples o simples, fins a 4 nuclis. NEON, Thumb ® -2, TrustZone, Jazelle, CoreSight L2 fins a 2MB Més de 8000 Dhrystone MIPS agregats a 1GHz IPADE (Apple A4)
XScale 80200/IOP310/IOP315 Processador d'entrada/sortida
80.219
IOP321
IOP33x
PXA210/PXA250 Processador d'aplicacions
PXA255
PXA26x
PXA27x 800 MIPS 624 MHz
PXA800 (E) F
Monahans 1000 MIPS 1,25 GHz
IXC1100 Processador de control de pla
IXP2400/IXP2800
IXP2850
IXP2325/IXP2350
IXP42x
IXP460/IXP465

Disseny

El joc d'instruccions del ARM és similar al del MOS 6.502, però inclou característiques addicionals que li permeten aconseguir un millor rendiment en la seva execució. Per mantenir el concepte tradicional de RISC, es va incloure l'ordre d'execució en un temps bastant bo, i en general, en un cicle. La característica més interessant és l'ús dels 4 bits de codi condicional a la part superior de cada instrucció, fent que cada instrucció pugui ser una condició.

Aquest tall permet augmentar l'espai per a alguns desplaçaments en l'accés a la memòria, però també permet evitar caure en cicles fora de control quan l'aplicació sigui per a petites instruccions condicionades. L'exemple estàndard és el màxim comú divisor, segons el algorisme de Euclides.

Exemple a C

int GCD (int i, int j)

{

   while (i ! = j)
      if (i> j)
          i -= j;
      else
          j -= i;
   return i;

}

Expressat en codi assemblador ARM, el cicle, amb una petita rotació, permet veure una cosa similar a això

       b test
loop subgt Ri, Ri, Rj
       sublevat, que tenien Rj, Rj, Ri
test cmp Ri, Rj
       BNE loop

el qual permet girar al voltant de la condició.

Una altra característica única del joc d'instruccions és la possibilitat d'afegir shifts i rotar en el processament de dades (aritmètic, lògic i moviment de registres), per exemple, la instrucció en C "a+= (j <<2);" pot ser millorada com una instrucció simple en l'ARM, permetent la reubicació del registre.

Tot això fa que es necessitin menys operacions de càrrega i emmagatzematge, millorant el rendiment.

El processador ARM també té algunes característiques que són rares en altres arquitectures també considerades RISC, com l'adreçament relatiu, i el pre i post increment en el mode d'adreçament.

Té dos modes de funcionament: l'Armi amb instruccions que ocupen 4 bytes, més ràpides i potents (hi ha instruccions que només estan en aquesta manera) però amb major consum de memòria i d'electricitat. I la manera THUMB, més limitat, amb instruccions que ocupen 2 bytes i amb menor consum de corrent

Tecnologies

Thumb

Potser en part per l'ús condicional d'usar 4 bytes per cada instrucció, els processadors més recents porten una instrucció de 16 bits, anomenada Thumb . Aquest pretén disminuir la quantitat de codi escrit. Així com millorar la densitat del codi, el rendiment pot ser superior a un codi de 32 bits on el port de memòria o amplada del bus de comunicacions són menors a 32 bits. En general en aplicacions insereix un petit rang d'adreces de memòria amb un datapath de 32 bits (per exemple: Game Boy Advance), i la resta són 16 bits en mode wide o narrower .

La primera CPU amb la tecnologia Thumb va ser el ARM7TDMI. Tota la família posterior al ARM9, incloent el processador Intel XScale, tenen incorporada la tecnologia en el seu núcleo.3

Jazelle

ARM té implantada una tecnologia que permet que certs tipus d'arquitectures executin Java bytecode nativament al maquinari. La primera CPU en utilitzar Jazelle va ser el ARM926EJ-S , sent anomenats amb una J a tots els processadors que suportessin aquesta tecnologia.

Vegeu també