Advanced RISC Machines
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.
Història

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.