1 Arquitecturas Arquitecturas y 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
1/31
Arquitecturas y procesadores ARM
1.1 Historia
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 (2 26). 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
Antonio Sánchez Perea
2/31
Arquitecturas y procesadores ARM
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.2 Licencias
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.3 Núcleos ARM
A continuación vamos a mostrar una tabla con los principales núcleos licenciados por esta marca.
Antonio Sánchez Perea
3/31
Arquitecturas y procesadores ARM
Familia
Arquitectura Caracterí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
ARM7T ARMv4T
Pipeline de 3 etapas y caché
DMI StrongA ARMv4
Pipeline de 5 etapas
RM Xscale
ARMv5TE
Pipeline de 7 etapas, instrucciones multimedia MMX y MMX2
ARM11 ARMv6/T2/Z Pipeline de 8 etapas y SIMD K/K Cortex-
ARMv7-A
A Cortex-
genérico, superescalar de 13 etapas ARMv7-R
R Cortex-
1 a 4 núcleos, controladores de interrupciones
Pipeline de 8 u 11 etapas (depende del núcleo) con dual-core
ARMv6-M
M
Perfil
de
microcontrolador
(procesador
+
memoria), hardware para multiplicación ARMv7-M
Hardware para división y multiplicación
ARMv7-ME
Antonio Sánchez Perea
4/31
Arquitecturas y procesadores ARM
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.4 Tecnologías
Antes de empezar a hablar de procesadores y sus usos, vamos a definir algunas tecnologías propias que usan estos.
JTAG 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/Thumb2
La tecnología 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. Antonio Sánchez Perea
5/31
Arquitecturas y procesadores ARM
Para hacer posible esta tecnología se utiliza un descompresor de instrucciones Thumb.
La tecnología 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]
Jazzele
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]
TrustZone
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]
Antonio Sánchez Perea
6/31
Arquitecturas y procesadores ARM
1.5 ARM7/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:
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.
Antonio Sánchez Perea
7/31
Arquitecturas y procesadores ARM
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]
Antonio Sánchez Perea
8/31
Arquitecturas y procesadores ARM
Figura 1.2:
Diagrama de bloques de la arquitectura
ARM7 [8]
Antonio Sánchez Perea
9/31
Arquitecturas y procesadores ARM
La figura 1.2 muestra las distintas partes de la arquitectura ARM7 y cómo se conectan entre ellas: “Instruction Instruction Decoder & Control Logic” 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 Address Register” Register es necesario para mantener las 32 direcciones del bus de direcciones (A[31:0]). “Address Address Incrementer” Incrementer incrementa la dirección en 4 bytes y la coloca para usarla en el bus de direcciones. “Register Register Bank” Bank contiene los 31 registros de 32 bits y 6 registros de estado. “Barrel Barrel Shifter” Shifter se utiliza para cambiar entre buses de datos y direcciones. “ALU ALU” ALU unidad aritmético lógica de 32 bits. “Write Write Data Register” Register desde aquí salen los datos que se escriben en memoria. “Read Read Data Register”, 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]
ARM7TDMI 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 Antonio Sánchez Perea
10/31
Arquitecturas y procesadores ARM
comentado, la tecnología Thumb le proporciona la capacidad de trabajar tanto con instrucciones de 32 como de 16 bits. [20]
1.5.1 Aplicaciones
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.6 StrongARM
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.
Antonio Sánchez Perea
11/31
Arquitecturas y procesadores ARM
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:
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]
Antonio Sánchez Perea
12/31
Arquitecturas y procesadores ARM
De esa familia de procesadores hubo varios modelos con características distintas que se muestran a continuación:
1.6.1 SASA-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.2 SASA-1100
Este nuevo procesador fue un derivado de su antecesor, el SA110. 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 Antonio Sánchez Perea
13/31
Arquitecturas y procesadores ARM
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.3 SASA-1110
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]
Antonio Sánchez Perea
14/31
Arquitecturas y procesadores ARM
1.6.4 SASA-1500
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.7 ARM9TDMI
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. Antonio Sánchez Perea
15/31
Arquitecturas y procesadores ARM
1.8 Xscale
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.
Antonio Sánchez Perea
16/31
Arquitecturas y procesadores ARM
PXA 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]
Antonio Sánchez Perea
17/31
Arquitecturas y procesadores ARM
IXC
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]
IOP 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]
CE 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.
Antonio Sánchez Perea
18/31
Arquitecturas y procesadores ARM
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:
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.
Antonio Sánchez Perea
19/31
Arquitecturas y procesadores ARM
1.9 ARM11
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 littleendian 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]
Antonio Sánchez Perea
20/31
Arquitecturas y procesadores ARM
1.9.1 Productos
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:
Nintendo 3DS. Procesadores a 266MHz.
[12]
Antonio Sánchez Perea
21/31
Arquitecturas y procesadores ARM
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]
Antonio Sánchez Perea
22/31
Arquitecturas y procesadores ARM
1.10 CortexCortex-A/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.
CortexCortex-A Esta gama está formada por las arquitecturas A5, A8, A9 y A15 y aunque cada una de ellas tiene unas caracterí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.
Antonio Sánchez Perea
23/31
Arquitecturas y procesadores ARM
Figura 1.6:
Arquitectura Cortex-A5
Las interfaz inferior de la figura 1.6 llamada AMBA AMBA 33 AXI 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 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 Thumb Thumb 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]
Antonio Sánchez Perea
24/31
Arquitecturas y procesadores ARM
CortexCortex-R 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í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 usos 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. Antonio Sánchez Perea
25/31
Arquitecturas y procesadores ARM
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:
Arquitectura Cortex-R4
Además de lo ya comentado de la figura 1.6, en esta (figura 1.7) se puede ver lo siguiente:
Antonio Sánchez Perea
26/31
Arquitecturas y procesadores ARM
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]
CortexCortex-M
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:
Relación
coste/rendimiento
de
los
procesadores Cortex-M.
Antonio Sánchez Perea
27/31
Arquitecturas y procesadores ARM
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 Aplicaciones de 16 y Aplicaciones de 32 bits 16 bits
32 bits
Las caracterí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.11 Anotaciones
La referencia [13] se ha utilizado a lo largo de todo el documento, por eso es difícil situarla.
Antonio Sánchez Perea
28/31
Arquitecturas y procesadores ARM
Referencias
[1] ARM architecture – Wikipedia [http://en.wikipedia.org/wiki/ARM_architecture] [2] BBC Micro – Wikipedia [http://en.wikipedia.org/wiki/BBC_Micro] [3] ARM9 – Wikipedia [http://en.wikipedia.org/wiki/ARM9] [4] Instruction Set Architecture – ARM [http://www.arm.com/products/processors/technologies/instruction-setarchitectures.php] [5] ARM and Thumb-2 Instruction Set [http://infocenter.arm.com/help/topic/com.arm.doc.qrc0001l/QRC0001_UAL .pdf ] [6] Jazelle – ARM [http://www.arm.com/products/processors/technologies/jazelle.php ] [7] ARM7 Processor Family [http://www.arm.com/products/processors/classic/arm7/index.php ] [8] 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 ] [9] StrongARM – Wikipedia [http://en.wikipedia.org/wiki/StrongARM ] [10 10]] XScale – Wikipedia [http://en.wikipedia.org/wiki/XScale] [11 11]] New Nintendo 3DS Hardware Info – Gear News at IGN [http://uk.gear.ign.com/articles/112/1122613p1.html ] [12 12]] 3DS Mainboard image – [http://techon.nikkeibp.co.jp/english/NEWS_EN/20110301/189976/?SS=im gview_e&FD=52237706&ad_q]
Antonio Sánchez Perea