55525832 Arquitecturas y Procesadores ARM

31
1 1 Arquitectura Arquitectura Arquitectura Arquitecturas y y y y procesadores ARM procesadores ARM procesadores ARM procesadores ARM Las arquitecturas ARM que forman los procesadores, tienen una gran importancia dentro del mundo de la computación debido a sus avances en cuanto a consumo y rendimiento. Debido a las licencias que concede sobre sus arquitecturas, ha crecido rápidamente casi copando el mercado de los microcomputadores y electrónica de consumo

Transcript of 55525832 Arquitecturas y Procesadores ARM

Page 1: 55525832 Arquitecturas y Procesadores ARM

11

ArquitecturaArquitecturaArquitecturaArquitecturassss y y y y

procesadores ARMprocesadores ARMprocesadores ARMprocesadores ARM

Las arquitecturas ARM que forman los procesadores, tienen una gran importancia dentro del mundo de la

computación debido a sus avances en cuanto a consumo y rendimiento. Debido a las licencias que concede sobre sus arquitecturas, ha crecido rápidamente casi copando el mercado de los microcomputadores y electrónica de

consumo

Page 2: 55525832 Arquitecturas y Procesadores ARM
Page 3: 55525832 Arquitecturas y Procesadores ARM

1/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.11.11.11.1 HistoriaHistoriaHistoriaHistoria

Acorn Computer fue el fabricante de los equipos Micro BBC [2], que utilizaban un procesador MOS 6502. El nuevo proyecto de esta empresa comenzó en Octubre de 1983 donde se buscaba un procesador con una arquitectura similar a la del MOS 6502, pero más avanzada, para

hacer competencia al IBM PC lanzado en 1981. La elección de este procesador es porque la empresa Acorn ya contaba con una extensa línea de ordenadores personales basados en este y así se conseguiría que los desarrolladores de software se sintieran cómodos en su trabajo.

El primer procesador ARM se fabricó en abril de 1985, se bautizó

como ARM1, aunque sólo fue una prueba y no se usó comercialmente. Para el mercado se creó el ARM2 en 1986. Su primer uso fue para los BBC Micro1. Este ARM2 destacaba por sus 32 bits de bus de datos, bus de direcciones de 26 bits y 16 registros de 32 bits. Los 26 bits del bus de direcciones limitaba la zona de memoria de programas a 64 MB (226). Los

6 bits restantes hasta 32 fueron utilizados como flags de estados. Probablemente el ARM2 fue el procesador de 32 bits más simple y

útil del mundo, ya que sólo contaba con 30.000 transistores (el Motorola 68000, también de los años 80, debía su nombre al número de transistores). Esta simplicidad en gran medida es debida a no tener microcódigo ni memoria caché. Su sucesor, el ARM3, contaba con 4 KB

de memoria caché, que mejoraba bastante su rendimiento.

1 Serie de microcomputadores y periféricos fabricados por Acorn

Computers

Page 4: 55525832 Arquitecturas y Procesadores ARM

2/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

La empresa ARM comenzó a trabajar con Apple y a principios de 1992 lanzaron el ARM6. Apple lo utilizó como base para su PDA “Apple Newton”'. La empresa DEC licenció esta arquitectura y produjo el StrongARM. Este último procesador funcionaba a una frecuencia de 233Mhz y consumía sólo 1 vatio.

Es considerado el primer procesador RISC fabricado

comercialmente. [1]

1.21.21.21.2 LicenciasLicenciasLicenciasLicencias

Acorn hizo sus arquitecturas licenciables, esto es, ellos venden el núcleo de la arquitectura y con unos pocos cambios en el diseño se podía

construir microcontroladores o CPUs completas basadas en este. El gran éxito de esto radica en que con estos pequeños cambios se pueden realizar en las ya existentes fábricas de semiconductores, con lo que la nueva inversión económica es mínima.

La implementación que más éxito ha tenido ha sido la del

ARM7TDMI con cientos de millones de ventas.[1]

1.31.31.31.3 Núcleos ARMNúcleos ARMNúcleos ARMNúcleos ARM

A continuación vamos a mostrar una tabla con los principales

núcleos licenciados por esta marca.

Page 5: 55525832 Arquitecturas y Procesadores ARM

3/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

FamiliaFamiliaFamiliaFamilia ArquitecturaArquitecturaArquitecturaArquitectura CaracterísticasCaracterísticasCaracterísticasCaracterísticas

ARM1 ARMv1 Primer núcleo fabricado.

ARM2 ARMv2 Agrega la instrucción MUL (Multiplicar)

ARMv2a Integra gráficos y entrada/salida

ARM3 ARMv2a Primero en integrar memoria caché

ARM7 ARMv3 Elimina el bus del coprocesador matemático

ARM7TDMI

ARMv4T Pipeline de 3 etapas y caché

StrongARM

ARMv4 Pipeline de 5 etapas

Xscale ARMv5TE Pipeline de 7 etapas, instrucciones multimedia MMX y MMX2

ARM11 ARMv6/T2/ZK/K

Pipeline de 8 etapas y SIMD

Cortex-A

ARMv7-A 1 a 4 núcleos, controladores de interrupciones genérico, superescalar de 13 etapas

Cortex-R

ARMv7-R Pipeline de 8 u 11 etapas (depende del núcleo) con dual-core

ARMv6-M Perfil de microcontrolador (procesador + memoria), hardware para multiplicación

ARMv7-M Hardware para división y multiplicación

Cortex-M

ARMv7-ME

Page 6: 55525832 Arquitecturas y Procesadores ARM

4/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

En los siguientes puntos vamos a pasar a estudiar las familias de

procesadores más recientes y usadas, por ello, vamos a empezar por la ARM7 y ARM7TDMI (una mejora de la anterior). [1]

1.41.41.41.4 TecnologíasTecnologíasTecnologíasTecnologías

Antes de empezar a hablar de procesadores y sus usos, vamos a

definir algunas tecnologías propias que usan estos.

JTAGJTAGJTAGJTAG JTAG (Joint Test Action Group) es un conjunto de tests de puertos de acceso y escáner de límites de la arquitectura. Actualmente está

estandarizado como IEEE 1149.1 y se usa para casi todos los procesadores y circuitos integrados con pines suficientes para realizar el test.

Thumb/Thumb2Thumb/Thumb2Thumb/Thumb2Thumb/Thumb2

La tecnología Thumb Thumb Thumb Thumb es una extensión de la arquitectura ARM de 32 bits. El conjunto de instrucciones Thumb cuenta con un subconjunto de las funciones más utilizadas del ARM de 32 bits que se han compromido en códigos de operación de 16 bits. A la hora de la ejecución, estas

instrucciones de 16 bits son descomprimidas transparentemente a instrucciones de 32 bits en tiempo real sin pérdida de rendimiento. A la hora de desarrollar se pueden utilizar tanto instrucciones de 32 bits como de 16 bits, siendo transparente para el programador.

Page 7: 55525832 Arquitecturas y Procesadores ARM

5/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Para hacer posible esta tecnología se utiliza un descompresor de

instrucciones Thumb. La tecnología Thumb2 Thumb2 Thumb2 Thumb2 (sucedora de Thumb) optimiza el uso de memoria (hasta un 31% menos), lo cuál también reduce el precio del sistema. Por otro lado aumenta el rendimiento hasta un 38%, disminuyendo el consumo de energía (batería en dispositivos portátiles). Se ha de nombrar que se

trata de una tecnología retrocompatible, es decir, todos los dispositivos dotados de Thumb2 son compatibles con Thumb.[4] [5]

JazzeleJazzeleJazzeleJazzele Es una tecnología de ARM que es capaz de ejecutar código

bytecode (código intermedio de Java) sobre los núcleos de procesadores que soporten Jazzele. Es multitarea y está optimizada para ser ejecutado sobre los mismos sin ningún tipo de traducción, es decir, directamente. [6]

TrustZoneTrustZoneTrustZoneTrustZone Se trata de una tecnología que da soporte a la seguridad, tanto en

pagos, gestión de derechos digitales (DRM), servicios Web y NFC.[17]

Page 8: 55525832 Arquitecturas y Procesadores ARM

6/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.51.51.51.5 ARM7/ARM7TDMIARM7/ARM7TDMIARM7/ARM7TDMIARM7/ARM7TDMI

Tras la familia ARM6, que como características especiales tenía sus 28 MIPS a 33Mhz, unidad de coma flotante, y bus para el coprocesador externo, en ARM7 se introduce la tecnología Thumb, que con códigos de instrucción de 16 bits podía realizar las funciones de un código de 32 bits.

También incluyen depurado JTAG. Como todos sus predecesores, se basan en una arquitectura Von Neumann, que recordemos consistía en utilizar el mismo dispositivo para memoria de instrucciones y de datos.

Figura 1.1:Figura 1.1:Figura 1.1:Figura 1.1: Esquema de Arquitectura Von Neumann. Se introdujo en el mercado en 1994 y fue la arquitectura que hizo

de puerta de entrada al resto de procesadores ARM.

Page 9: 55525832 Arquitecturas y Procesadores ARM

7/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Normalmente se habla de él a la vez que su sucesor, el

ARM7TDMI ya que este último le ha dado toda la importancia que tiene. ARM7 y ARM7TDMI se basan en arquitecturas distintas, ARMv3 y ARMv4T, respectivamente, por eso no pueden englobarse dentro de la misma familia.

Los procesadores de la familia ARM7 cuenta con una velocidad de 40Mhz y una memoria caché (tanto para instrucciones como para datos)

de 8KB. Los de la familia ARM7TDMI va desde los 16.8Mhz hasta los

60Mhz, también con una memoria caché de 8KB. [1] [7]

Page 10: 55525832 Arquitecturas y Procesadores ARM

8/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Figura 1.2:Figura 1.2:Figura 1.2:Figura 1.2: Diagrama de bloques de la arquitectura ARM7 [8]

Page 11: 55525832 Arquitecturas y Procesadores ARM

9/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

La figura 1.2 muestra las distintas partes de la arquitectura ARM7

y cómo se conectan entre ellas: “Instruction Decoder & Control LogicInstruction Decoder & Control LogicInstruction Decoder & Control LogicInstruction Decoder & Control Logic” tiene la funcionalidad de

decodificar las instrucciones y mandar señales de control a otras partes del procesador para la ejecución de las instrucciones.

“Address RegisterAddress RegisterAddress RegisterAddress Register” es necesario para mantener las 32 direcciones del bus de direcciones (A[31:0]).

“Address IncrementerAddress IncrementerAddress IncrementerAddress Incrementer” incrementa la dirección en 4 bytes y la coloca para usarla en el bus de direcciones.

“Register BankRegister BankRegister BankRegister Bank” contiene los 31 registros de 32 bits y 6 registros de estado.

“Barrel ShifterBarrel ShifterBarrel ShifterBarrel Shifter” se utiliza para cambiar entre buses de datos y

direcciones. “ALUALUALUALU” unidad aritmético lógica de 32 bits. “Write Data RegisterWrite Data RegisterWrite Data RegisterWrite Data Register” desde aquí salen los datos que se escriben

en memoria. “Read Data RegisterRead Data RegisterRead Data RegisterRead Data Register”, al contrario que WDR sirve para leer datos e

instrucciones de la memoria. El dato leído se coloca aquí para su uso.

[8] ARM7TDMIARM7TDMIARM7TDMIARM7TDMI es un procesador de 32 bits RISC (conjunto reducido

de instrucciones). Las siglas TDMI provienen de las siguientes tecnologías que contiene:

“T”: Thumb, “D”: JTAG para depuración, “M”: Instrucciones de multiplicación e “I” de ICEBreak.

En cuanto a sus especificaciones podemos decir que se diseñó

pensando en su posible uso en dispositivos móviles y aparatos de baja potencia. Es capaz de procesar hasta 130 MIPS y como ya se ha

Page 12: 55525832 Arquitecturas y Procesadores ARM

10/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

comentado, la tecnología ThumbThumbThumbThumb le proporciona la capacidad de trabajar

tanto con instrucciones de 32 como de 16 bits. [20]

1.5.11.5.11.5.11.5.1 AplicacionesAplicacionesAplicacionesAplicaciones

Estas familias de procesadores han tenido usos variados, aquí vamos a mostrar los más llamativos:

� Router D-Link modelo 604+. � iPod. � Juice Box: Videoconsola portátil fabricada por Mattel que contiene

un procesador Samsung con arquitectura ARM7TDMI a 66MHz. � La mayoría de teléfonos móviles Nokia. � Nintendo DS (como coprocesador) y la Game Boy Advance. � Los robots de limpieza Roomba serie 500, fabricados por iRobot. � En dispositivos Perfect Pass: sistema de control de velocidad de

precisión usado en competiciones de esquí acuático y barcos. � Sistema de control de automóviles. [20]

1.61.61.61.6 StrongARMStrongARMStrongARMStrongARM

Esta familia de procesadores fueron los sucesores del ARM7EJ y el ARM8, posteriores al ARM7TDMI.

El StrongARM utiliza la arquitectura ARMv4 licenciada por DEC

(Digital Equipment Corporation), el cual posteriormente fue vendido a Intel.

Page 13: 55525832 Arquitecturas y Procesadores ARM

11/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Este procesador surgió de un proyecto entre DEC y ARM, para

crear el procesador ARM más rápido hasta entonces. Inicialmente, el objetivo de uso de este nuevo procesador eran los

PDA y los Set-top Box (Dispositivos para la recepción y decodificación de televisión digital o analógica). [9]

Figura 1.3:Figura 1.3:Figura 1.3:Figura 1.3: Diagrama de bloques de los procesadores StrongARM [18]

En la figura 1.3 se pueden apreciar los distintas partes del

procesador, del cuál vamos a destacar las IMMU y DMMU por ser las más

novedosas en esta versión. La IMMU y la DMMU (Instruction-Data Memory Management Unit) son las unidades de gestión de memoria de instrucciones y datos respectivamente. Cada unidad contiene 32 entradas que pueden asociar páginas de 4KB, 64KB o 1 MB.[18]

Page 14: 55525832 Arquitecturas y Procesadores ARM

12/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

De esa familia de procesadores hubo varios modelos con

características distintas que se muestran a continuación:

1.6.11.6.11.6.11.6.1 SASASASA----110 110 110 110

De este modelo de procesador se fabricaron dos versiones. La primera se empezó a comercializar en febrero de 1996 y contaba con una

velocidades de 100, 160 y 200Mhz. Una segunda versión se anunció en septiembre de ese mismo año (1996) y trabaja a unas frecuencias de 166 y 233MHz. Ambas contenían una memoria caché de 16KB.

Internamente funciona con un pipeline de 5 etapas que ejecuta las

instrucciones de manera ordenada. Contiene unos 2.5 millones de

transistores y externamente utiliza un encapsulado cuadrado de 20mm de lado. [9]

1.6.21.6.21.6.21.6.2 SASASASA----1100110011001100

Este nuevo procesador fue un derivado de su antecesor, el SA-110. Fue anunciado por el licenciatario DEC en 1997 y su principal objetivo de uso eran las PDA. Para ello se adaptó la memoria caché y se redujo de 16 a 8KB.

Se le añadieron controladores integrados para memoria, PCMCIA

y pantalla LCD a color. Intel fabricó a mediados de 1998 un integrado llamado SA-1101 que proporcionaba periféricos adicionales y puertos de

Page 15: 55525832 Arquitecturas y Procesadores ARM

13/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

E/S tales como salida de vídeo, PS/2, un controlador USB y uno PCMCIA

que sustituye al del SA-1100. Posteriormente Intel compra el diseño del SA-1100 y con él la

planta de producción de DEC en Massachusetts. Al igual que su predecesor también tenía unos 2.5 millones de

transistores y un encapsulado cuadrado.[9]

1.6.31.6.31.6.31.6.3 SASASASA----1110111011101110

Este procesador también deriva del SA-110 y es desarrollado íntegramente por Intel. Disponía de dos versiones, una a 133MHz y otra a 206Mhz. Se diferencia del SA-1100 por el soporte para SDRAM a 66MHz

y 103MHz para cada una de las frecuencias de procesador respectivamente.

Fue utilizado en PDAs, como el iPAQ o el Jornada, de HP, el

Sharp SL serie 5000 y el Simputer, una PDA basada en Linux.[9]

Page 16: 55525832 Arquitecturas y Procesadores ARM

14/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.6.41.6.41.6.41.6.4 SASASASA----1500150015001500

También fue un derivado del SA-110, desarrollado pensando en decodificadores y soportaba unas frecuencias de 200 a 300MHz. DEC sólo produjo algunas muestras e Intel nunca lo llegó a comercializar.[9]

1.71.71.71.7 ARM9TDMIARM9TDMIARM9TDMIARM9TDMI

Esta familia de procesadores, al igual que la mayoría de sus predecesores, utiliza una arquitectura RISC de 32 bits. Es importante comentarla porque ARM dio un salto en estas arquitecturas, de procesadores basados en la arquitectura de Von Neumann a la

arquitectura Harvard, que recordemos que separaba memoria para datos y para instrucciones (también las memorias caché), aunque la mayoría adoptaron un enfoque híbrido, combinando los dos buses (para datos e instrucciones) y dos cachés con una memoria compartida.[3]

Alguna de sus múltiples aplicaciones son: � Cámaras digitales, como la Canon EOS 5D Mark II.

� Calculadora HP 50g a 90MHz � Sistema Blue&Me de Fiat, usado para conectar sistemas del

usuario con el vehículo (móvil, música, …). � El circuito encargado de la conectividad WiFi de la PlayStation

Portable (PSP).

� SmartPhones: HTC Wizard, LG Cookie, Nokia N-Gage, Sony Ericsson series K, M y W.

Page 17: 55525832 Arquitecturas y Procesadores ARM

15/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.81.81.81.8 XscaleXscaleXscaleXscale

Tras los procesadores ARM9TDMI surgieron el ARM9E y ARM10E que usaban también la arquitectura ARMv5, pero la serie fuerte fueron los procesadores XScale licenciados por Intel y Marvell.

Se basa en una arquitectura ARMv5TE y lo forman varias familias

que comentaremos más abajo. Esta arquitectura ejecuta instrucciones en 7 etapas y para la

ejecución de instrucciones de memoria, 8 etapas. No contiene instrucciones de punto flotante. Usa 2 memorias caché, una para instrucciones y otra para datos, ambas de 32KB, aunque las últimas versiones de la arquitectura ya incorporan caché de segundo nivel de

512KB. Se considera el sucesor del StrongARM, del cual hemos hablado anteriormente.

Todas las generaciones de procesadores con Xscale son de 32 bits y usan tecnologías de 0.18µm y de 0.13µm.

Entre sus aplicaciones se pueden nombrar productos de

BlackBerry, Pocket PC de Dell (la gama Axim), la mayoría de productos Zire, Treo y Tungsten de Palm, el Motorola A780, la PDA Acer n50, el Compaq iPaq 3900. También se utilizó en ordenadores personales de escritorio (el Iyonix PC) usando el sistema operativo RISC OS. También se usa en dispositivos portátiles como reproductores de vídeo y multimedia, lectores de ebooks (Kindle de Amazon) y en sistemas empotrados

industriales. [10] A continuación diremos características de las distintas

generaciones de esta familia.

Page 18: 55525832 Arquitecturas y Procesadores ARM

16/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

PXAPXAPXAPXA Esta serie de procesadores tuvo diversos usos, aunque

especialmente fue para móviles y también para PDAs, ya que eran capaces de codificar vídeo mediante hardware.

Las frecuencias de trabajo son muy variadas, desde 133MHz a 1.25GHz, pasando por 200, 300, 400 y 624MHz entre otras.

Aparte del diseño, que ya está centrado en la necesidad de ahorrar energía, incorpora mecanismos para reducir el consumo cuando no se está utilizando el microprocesador.

Algunos modelos de la serie PXA27 tienen memoria flash y RAM incluida (hasta 64MB)

En cuanto los procesos de fabricación, reducen la distancia de los transistores a 130nm, 65nm y hasta 45nm, dependiendo del modelo.

Uno de los últimos modelos, el PXA940, aunque se sabe muy poco de él, es usado para la BlackBerry Torch 9800 y está construido con una tecnología de 45nm.

Como última curiosidad, Intel vendió la familia PXA a Marvell en Junio de 2006.[10]

Page 19: 55525832 Arquitecturas y Procesadores ARM

17/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

IXCIXCIXCIXC Esta serie sólo consta de un procesador, el IXC1100 que trabaja a

unas frecuencias de 266, 400 y 533MHz. Tiene una caché de datos de 32KB y otra mini-caché de nivel más alto de 2KB. Está diseñado para un bajo consumo, llegando a 2.4W en su modo de funcionamiento a 533MHz.

Está encapsulado en un integrado cuadrado de 35mm de lado cuyos pines se conectan por la parte inferior (PBGA).[10]

IOPIOPIOPIOP Esta línea de microprocesadores está diseñada para permitir a los

ordenadores y dispositivos de almacenamiento transferir datos e incrementar las prestaciones no teniendo que utilizar la CPU para esta tarea. Vendría a ser como un procesador DMA pero para memoria secundaria. Las frecuencias de trabajo de estos procesadores van desde los 100MHz a los 1.2GHz. Una de sus aplicaciones es en los sistemas de

entrada/salida de almacenamiento de datos en algunos servidores basados en Intel Xeon. [10]

CECECECE

Esta serie de procesadores fue anunciada por Intel en 2007 para el mercado de la electrónica de consumo (Consumer Electronics).

Dentro de éste podemos destacar (porque es el único del que se ha podido encontrar algo de información) el CE 2110, que está diseñado para, entre otros, para decodificadores y grabadores de televisión y vídeo.

Page 20: 55525832 Arquitecturas y Procesadores ARM

18/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Trabaja a una frecuencia de 1GHz, soporta hasta 512MB de

memoria DDR2, tiene un coprocesador gráfico integrado para 2D y 3D, aceleración hardware para cifrar y descrifrar (seguridad), 11 GPIO (General Purpose Input Output) y muchas cosas más.

Figura 1.4:Figura 1.4:Figura 1.4:Figura 1.4: Diagrama de procesador Intel 2110

basado en XScale CE

En la figura 1.4 se pueden ver casi todas las características de este tipo de procesador, que como vemos, ya está muy influenciado por las licencias que Intel tiene sobre los núcleos ARM. [21]

El resto de información acerca de este procesador se puede encontrar en la referencia.

Page 21: 55525832 Arquitecturas y Procesadores ARM

19/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.91.91.91.9 ARM11ARM11ARM11ARM11

Esta familia de procesadores ya utilizan la arquitectura ARMv6 en la que se incluye instrucciones SIMD (Single Instruction, Multiple Data) para procesamiento multimedia, soporte multiprocesador y una nueva arquitectura caché. Los primeros procesadores de esta clase fueron

introducidos a finales de 2002. [22] Con respecto a los procesadores de la familia 9 introduce varias

mejoras: � Instrucciones sobre múltiples datos para uso multimedia (como se

ha dicho antes), y mejora la velocidad de procesamiento de video y audio del MPGE-4.

� Memoria no alineada y añadido el formato múltiple (tanto little-endian como big-endian).

� La temperatura del procesador se ha mejorado, evitando problemas de sobrecalentamiento.

� El pipeline aumenta de 5 (que tenía ARM9) a 8.

� Finalización de instrucciones desordenada. � Predicción dinámica de saltos (XScale ya lo soportaba). � Paralelismo en carga y almacenamiento de memoria.

Como curiosidad, y una utilidad encontrada a última hora, un

desarrollador, David Braben, ha conseguido introducir en un espacio

reducido (algo similar a un pen drive), un procesador ARM11 a 700MHz con 128MB de RAM e instalarle un sistema operativo basado en GNU/Linux.[19]

Page 22: 55525832 Arquitecturas y Procesadores ARM

20/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.9.11.9.11.9.11.9.1 ProductosProductosProductosProductos

Los procesadores basados en esta arquitectura son sobre todo usados en telefonía móvil y dispositivos portátiles.

Actualmente la Nintendo 3DS está formada por dos procesadores ARM11 a 266MHz (Figura 1.5), y respaldado por una GPU a 200MHz

PICA200, propia de Nintendo.[11]

Figura 1.5:Figura 1.5:Figura 1.5:Figura 1.5: Nintendo 3DS. Procesadores a 266MHz. [12]

Page 23: 55525832 Arquitecturas y Procesadores ARM

21/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Por otro lado lado están los teléfonos móviles y smartphones. Nos

encontramos con marcas como GeeksPhone, start-up española del 2009 dedicada a la creación de smatphones. Por ahora tiene dos modelos, el One y el Zero, y ambos utilizan un procesador basado en la arquitectura ARM11.

HTC también apuesta por esta arquitectura, basando muchos de sus modelos, como el Aria, Dream, Wildfire, Hero, Magic, Legend, Touch,

y el TyTN II. Apple lo usó para los modelos 2G y 3G de su teléfono, el iPhone,

aunque para las nuevas versiones ya apuesta por una arquitectura propia. El iPod Touch (1G y 2G) también lo utiliza.

Los lectores de libros electrónicos de Amazon, Kindle, en todas

sus versiones. Además de marcas como LG, Motorola, Nokia en casi todos los

modelos que funcionan bajo Symbian S60 de 3ª y 4ª generación, Samsung, Sony Ericsson, Microsoft en sus teléfonos Kin One y Zune HD, hasta la empresa Zeebo para marcos digitales y una consola de videojuegos del mismo nombre. [22]

Page 24: 55525832 Arquitecturas y Procesadores ARM

22/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

1.101.101.101.10 CortexCortexCortexCortex----A/R/MA/R/MA/R/MA/R/M

Los procesadores Cortex están diseñados para un amplio rango de usos, desde decodificadores de televisión hasta smartphones pasando por automóviles, portátiles, disco duros, impresoras, cámaras de fotos, sistemas empotrados... A continuación vamos a ver algunas de las

características más importantes de ellos detalladamente.

CortexCortexCortexCortex----AAAA Esta gama está formada por las arquitecturas A5, A8, A9 y A15 y

aunque cada una de ellas tiene unas característicascaracterísticascaracterísticascaracterísticas particulares, vamos a comentarlas globalmente:

Se trata de procesadores de 32 bits, con un pipeline de 13 etapas, capaz de soportar varios núcleos (hasta 4) y con una predicción de saltos bastante acertada, por lo que no suele perder ciclos de CPU y todo ello con un conjunto de instrucciones RISC.

En cuanto al soporte multimedia dispone de operaciones sobre enteros y sobre número de punto flotante, además de la tecnología Jazelle que ya comentamos anteriormente.

Tiene un nuevo sistema de acceso a memoria que reduce a 1 o 2 ciclos el acceso a memoria caché, con cargas y escrituras en memoria

principal con varias etapas y memorias de nivel 1 y 2 integradas.

Page 25: 55525832 Arquitecturas y Procesadores ARM

23/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

Figura 1.6:Figura 1.6:Figura 1.6:Figura 1.6: Arquitectura Cortex-A5

Las interfaz inferior de la figura 1.6 llamada AMBA 3 AXIAMBA 3 AXIAMBA 3 AXIAMBA 3 AXI trata de

conectar los diferentes núcleos (en caso de que haya más de 1) y sus entradas/salidas a memoria para que a vista de los demás procesadores, haya sólo una, es decir, conecta un núcleo con todos los demás y con memoria principal.

El módulo marcado como Prefetch UnitPrefetch UnitPrefetch UnitPrefetch Unit se encarga de captar las instrucciones de memoria (o de caché en caso de que se encuentren en esta), además de detectar las instrucciones ThumbThumbThumbThumb y pasarlas a instrucciones comprensibles para la CPU.

Como dato curioso decir que el procesador Cortex-A5 es el más pequeño de la serie Cortex-A. [14]

Page 26: 55525832 Arquitecturas y Procesadores ARM

24/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

CortexCortexCortexCortex----RRRR La serie R de Cortex está más centrada en el uso de aplicaciones

de tiempo real, normalmente para sistemas embebidos con ciertas restricciones en el tiempo de respuesta.

De esta gama existen los núcleos R4, R5 y R7. Las característicascaracterísticascaracterísticascaracterísticas se pueden resumir en las siguientes:

� Altas frecuencias de reloj (cerca de 1GHz) y una arquitectura muy segmentada para conseguir un alto rendimiento.

� Pre-captado de instrucciones, predicción de saltos y ejecución superescalar.

� Divisiones por hardware y varias unidades de coma flotante, para

evitar que varias instrucciones entren en conflicto por la necesidad de usarla.

� Compatibilidad de binarios con algunas de los procesadores de las familias ARM7TDMI, ARM9 y ARM11.

� Memoria principal altamente acoplada con el procesador, para

evitar pérdidas de tiempo en carga. � Procesadores deterministas. Con ello se consigue cumplir los

objetivos de tiempo real. � Relación precio/eficiencia: su bajo precio y su bajo consumo de

energía la han hecho una arquitectura muy interesante para muchos fines.

Algunos de sus usosusosusosusos son en:

� Unidades de disco duro: para controlar las altas velocidades de movimiento del sistema de rotación de disco y colocación del cabezal y los canales de lectura y escritura con tasas de

transferencia muy alta.

Page 27: 55525832 Arquitecturas y Procesadores ARM

25/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

� Automoción: En el actual mercado de la automoción todo se

controla electrónicamente, para ello se crearon las ECU (Electronic Control Units) y se encargan de mantener todos los sistemas en orden, tales como controles de estabilidad, airbags, luces, dirección asistida, ABS. Se usan este tipo de arquitecturas porque como es de imaginar, estos sistemas deben realizar sus acciones en tiempo real.

Figura 1.7:Figura 1.7:Figura 1.7:Figura 1.7: Arquitectura Cortex-R4 Además de lo ya comentado de la figura 1.6, en esta (figura 1.7)

se puede ver lo siguiente:

Page 28: 55525832 Arquitecturas y Procesadores ARM

26/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

� VIC Port: Este puerto se usa para manejar interrupciones de

distintas fuentes, normalmente se encuentra en el controlador de interrupciones, pero este nuevo VIC (Vectored Interrupt Controller) además determina la fuente de la interrupción y la rutina a ejecutar, acciones que antes se realizaban mediante software.

� ETM Interface: Provee al procesador de instrucciones de soporte de depuración.

� FPU (Float Point Units): Unidades para realizar operaciones de coma flotante. [15]

CortexCortexCortexCortex----MMMM El objetivo de la serie M de Cortex es el consumo, una gama de

procesadores que tengan una relación precio/consumo aceptable. Los núcleos disponibles dentro de esta gana son el M0, M1, M3 y

M4.

Figura 1.8:Figura 1.8:Figura 1.8:Figura 1.8: Relación coste/rendimiento de los procesadores Cortex-M.

Page 29: 55525832 Arquitecturas y Procesadores ARM

27/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

En la figura 1.7 podemos ver las diferencias entre los distintos

tipos dentro de la gama M, siendo el M1 una FPGA y el M4 a un procesador de alto rendimiento. Para ver las diferencias más claramente podemos ver la siguiente tabla:

Cortex-M0 Cortex-M3 Cortex-M4

Aplicaciones de 8 y 16 bits

Aplicaciones de 16 y 32 bits

Aplicaciones de 32 bits

Las característicascaracterísticascaracterísticascaracterísticas más destacables son:

� CPU de 32 bits con juego de instrucciones RISC.

� Escalar de 3 etapas. � Modo de bajo consumo integrado. � Rutinas de interrupción de servicio en C (no en ensamblador). � Modo de depuración. � Soporte para múltiples procesadores. � Seguimiento de ejecución en tiempo real.[16]

1.111.111.111.11 AnotacionesAnotacionesAnotacionesAnotaciones

La referencia [13] se ha utilizado a lo largo de todo el documento, por eso es difícil situarla.

Page 30: 55525832 Arquitecturas y Procesadores ARM

28/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

ReferenciasReferenciasReferenciasReferencias

[[[[1111] ] ] ] ARM architecture – Wikipedia [http://en.wikipedia.org/wiki/ARM_architecture] [[[[2222]]]] BBC Micro – Wikipedia [http://en.wikipedia.org/wiki/BBC_Micro] [[[[3333]]]] ARM9 – Wikipedia [http://en.wikipedia.org/wiki/ARM9]

[[[[4444] ] ] ] Instruction Set Architecture – ARM [http://www.arm.com/products/processors/technologies/instruction-set-architectures.php] [[[[5555]]]] ARM and Thumb-2 Instruction Set [http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL.pdf]

[[[[6666]]]] Jazelle – ARM [http://www.arm.com/products/processors/technologies/jazelle.php] [[[[7777]]]] ARM7 Processor Family [http://www.arm.com/products/processors/classic/arm7/index.php] [[[[8888] ] ] ] The ARM stand for Advanced RISC machine and was Developed by

Acorn Company intented for use those applications requiring power effcient processor – Diagram [http://home.southernct.edu/~elahia1/ARM-New.htm] [[[[9999] ] ] ] StrongARM – Wikipedia [http://en.wikipedia.org/wiki/StrongARM ] [[[[10101010] ] ] ] XScale – Wikipedia [http://en.wikipedia.org/wiki/XScale] [[[[11111111]]]] New Nintendo 3DS Hardware Info – Gear News at IGN [http://uk.gear.ign.com/articles/112/1122613p1.html]

[[[[12121212]]]] 3DS Mainboard image – [http://techon.nikkeibp.co.jp/english/NEWS_EN/20110301/189976/?SS=imgview_e&FD=52237706&ad_q]

Page 31: 55525832 Arquitecturas y Procesadores ARM

29/31 Arquitecturas y procesadores ARM

Antonio Sánchez Perea

[[[[13131313]]]] ARM Architecture Reference Manual – Download from

http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0100i/index.html [[[[14141414]]]] Cortex-A Series – ARM [http://www.arm.com/products/processors/cortex-a/] [[[[15151515]]]] Cortex-R Series – ARM [http://www.arm.com/products/processors/cortex-r/]

[[[[16161616]]]] Cortex-M Series – ARM [http://www.arm.com/products/processors/cortex-m/] [[[[17171717]]]] TrustZone – ARM [http://www.arm.com/products/processors/technologies/trustzone.php] [[[[18181818] ] ] ] StrongARM Data Sheet V2.0

[http://www.renan.org/ARM/doc/sa110.pdf] [[[[19191919] ] ] ] PC on a USB Stick – Slashdot [http://www.renan.org/ARM/doc/sa110.pdf] [[[[20202020] ] ] ] ARM7 – Wikipedia [http://en.wikipedia.org/wiki/ARM7] [[[[21212121]]]] Intel unveils new XScale set-top box chip - News - Linux for Devices [http://www.linuxfordevices.com/c/a/News/Intel-unveils-new-XScale-settop-

box-chip/] [[[[22222222] ] ] ] ARM11 – Wikipedia [http://en.wikipedia.org/wiki/ARM11]