Está en la página 1de 7

Tarea 10 ARM

30 de abril de 2012

ARQUITECTURA DE COMPUTADORAS AVANZADA ARQUITECTURA ARM Arquitectura ARM ARM es una arquitectura ARM de la familia RISC de 32 bits. Con esta generacin, ARM pas de una arquitectura Von Neumann (arquitectura Princeton) a una arquitectura Harvard con instrucciones y data buses separados, incrementando significativamente su velocidad potencial. ARM es una arquitectura desarrollada por ARM Holdings. Fue llamado Advanced RISC Machine, y anteriormente Acorn RISC Machine. La arquitectura ARM es el conjunto de instrucciones de 32 bits ms ampliamente utilizado en unidades producidas. Originalmente concebida por Acorn Computers para su uso en ordenadores personales, los primeros productos basados en ARM eran los Acorn Archimedes, lanzados en 1987. La relativa simplicidad de los procesadores ARM los hace ideales para aplicaciones de baja potencia. Como resultado, se han convertido en dominante en el mercado de la electrnica mvil e integrada, encarnados en microprocesadores y microcontroladores pequeos, de bajo consumo y relativamente bajo coste. En 2005, alrededor del 98% de los ms de mil millones de telfonos mviles vendidos cada ao utilizan al menos un procesador ARM. Desde 2009, los procesadores ARM son aproximadamente el 90% de todos los procesadores RISC de 32 bits empotrados y se utilizan ampliamente en la electrnica de consumo, incluyendo PDAs, tabletas, telfonos mviles, videoconsolas de mano, calculadoras, reproductores digitales de msica y medios (fotos, vdeos, etc.), y perifricos de ordenador como discos duros y routers. La arquitectura ARM es licenciable. Las empresas que son titulares de licencias ARM actuales o anteriores incluyen a Alcatel-Lucent, Apple Inc., AppliedMicro, Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Ember, Energy Micro, Freescale, Intel (a travs de DEC), LG, Marvell Technology Group, Microsemi, Microsoft, NEC, Nintendo, Nuvoton, Nvidia, Sony, NXP (antes Philips), 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 licencias de ARM. Prominentes familias de procesadores ARM desarrollados por ARM Holdings incluyen el ARM7, ARM9, ARM11 y Cortex. Los procesadores ARM notables desarrollados por los licenciatarios incluyen AppliedMicro X-Gene, DEC StrongARM, Freescale i.MX, Marvell (antes Intel) XScale, Nvidia Tegra, ST-Ericsson Nova y NovaThor, Qualcomm Snapdragon, la lnea de productos Texas Instruments OMAP, los Samsung Exynos y los Apple A4 y A5. Historia

Oscar Eduardo Escobedo Vzquez

Pgina 1

Tarea 10 ARM

30 de abril de 2012

El diseo del ARM comenz en 1983 como un proyecto de desarrollo en la empresa Acorn Computers. Roger Wilson y Steve Furber lideraban el equipo, cuya meta era, originalmente, el desarrollo de un procesador avanzado, pero con una arquitectura similar a la del MOS 6502. La razn era que Acorn tena una larga lnea de ordenadores personales basados en dicho micro, por lo que tena sentido desarrollar uno con el que los desarrolladores se sintieran cmodos. El equipo termin el diseo preliminar y los primeros prototipos del procesador en el ao 1985, al que llamaron ARM1. La primera versin utilizada comercialmente se bautiz como ARM2 y se lanz en el ao 1986. La arquitectura del ARM2 posee un bus de datos de 32 bits 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, aprovechndose 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 ms simple del mundo, ya que posee slo 30.000 transistores. Su simplicidad se debe a que no est basado en microcdigo (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 comn en aquella poca, no incluye cach. Gracias a esto, su consumo en energa es bastante bajo, a la vez que ofrece un mejor rendimiento que un 286. Su sucesor, el ARM3, incluye una pequea memoria cach de 4 KB, lo que mejora los accesos a memoria repetitivos. A finales de los aos 80, Apple Computer comenz a trabajar con Acorn en nuevas versiones del ncleo ARM. En Acorn se dieron cuenta de que el hecho de que el fabricante de un procesador fuese tambin un fabricante de ordenadores podra echar para atrs a los clientes, por lo que se decidi crear una nueva compaa llamada Advanced RISC Machines, que sera la encargada del diseo y gestin de las nuevas generaciones de procesadores ARM. Ocurra esto en el ao 1990. Este trabajo deriv en el ARM6, presentado en 1991. Apple utiliz el ARM 610 (basado en el ARM6), como procesador bsico para su innovador PDA, el Apple Newton. Por su parte, Acorn lo utiliz en 1994 como procesador principal en su RiscPC. El ncleo mantuvo su simplicidad a pesar de los cambios: en efecto, el ARM2 tiene 30.000 transistores, mientras que el ARM6 slo cuenta con 35.000. La idea era que el usuario final combinara el ncleo del ARM con un nmero opcional de perifricos integrados y otros elementos, pudiendo crear un procesador completo a la medida de sus necesidades. La mayor utilizacin de la tecnologa ARM se alcanz con el procesador ARM7TDMI, con millones de unidades en telfonos mviles y sistemas de videojuegos porttiles. DEC licenci el diseo, lo cual gener algo de confusin debido a que ya produca el DEC Alpha, y cre el StrongARM. Con una velocidad de reloj de 233 MHz, este procesador consuma solo 1 W de potencia (este consumo de energa se ha reducido en versiones ms recientes). Esta tecnologa pas posteriormente a manos de Intel, como fruto de un acuerdo
Oscar Eduardo Escobedo Vzquez Pgina 2

Tarea 10 ARM

30 de abril de 2012

jurdico, que la integr en su lnea de procesadores Intel i960 e hizo ms ardua la competencia. Freescale (una empresa que deriv de Motorola en el ao 2004), IBM, Infineon Technologies, OKI, Texas Instruments, Nintendo, Philips, VLSI, Atmel, Sharp, Samsung y STMicroelectronics tambin licenciaron el diseo bsico del ARM. El diseo del ARM se ha convertido en uno de los ms usados del mundo, desde discos duros hasta juguetes. Hoy en da, cerca del 75% de los procesadores de 32 bits poseen este chip en su ncleo. Diseo El juego de instrucciones del ARM es similar al del MOS 6502, pero incluye caractersticas adicionales que le permiten conseguir un mejor rendimiento en su ejecucin. Para mantener el concepto tradicional de RISC, se estableci la ejecucin de una orden en un tiempo, por lo general, de un ciclo. La caracterstica ms interesante es el uso de los 4 bits superiores como cdigo de condicin, haciendo que cualquier instruccin 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 pequeos trozos de cdigo con ejecucin condicional. El ejemplo tpico es el Mximo comn divisor, segn el algoritmo de Euclides. Ejemplo en C
int gcd(int i, int j) { while (i != j) if (i > j) i -= j; else j -= i; return i; }

Expresado en cdigo ensamblador ARM, el ciclo, incluyendo una rotacin de operandos, puede expresarse del siguiente modo:
loop test b test subgt suble cmp bne Ri, Ri, Rj Rj, Rj, Ri Ri, Rj loop

Otra caracterstica nica del juego de instrucciones es la posibilidad de aadir shifts y rotar en el procesamiento de datos (aritmtico, lgico y movimiento de registros), por ejemplo, la instruccin en C "a += (j << 2);" puede ser mejorada como una nica instruccin en el ARM, permitiendo la reubicacin del registro.

Oscar Eduardo Escobedo Vzquez

Pgina 3

Tarea 10 ARM

30 de abril de 2012

Todo esto ocasiona que se necesiten menos operaciones de carga y almacenamiento, mejorando el rendimiento. El procesador ARM tambin tiene algunas caractersticas que son raras en otras arquitecturas tambin 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, ms rpidas y potentes (hay instrucciones que slo estn en este modo) pero con mayor consumo de memoria y de electricidad. Y el modo THUMB, ms limitado, con instrucciones que ocupan 2 bytes y con menor consumo de corriente. Tecnologas Thumb Quizs en parte por el uso condicional de usar 4 bytes por cada instruccin, los procesadores ms recientes traen un conjunto de instrucciones de 16 bits adicional, llamado Thumb. Este pretende disminuir la cantidad de cdigo escrito. As como mejorar la densidad del cdigo, el rendimiento puede ser superior a un cdigo de 32 bits en donde el puerto de memoria o ancho del bus de comunicaciones son menores a 32 bits. Por lo general en aplicaciones inserta un pequeo rango de direcciones de memoria con un datapath de 32 bits (por ejemplo: Game Boy Advance), y el resto son 16 bits en modo wide o narrower. El primer procesador con la tecnologa Thumb fue el ARM7TDMI. Toda la familia posterior al ARM9, incluyendo el procesador Intel XScale, tienen incorporada la tecnologa en su ncleo. Jazelle ARM tiene implementada una tecnologa que permite que ciertos tipos de arquitecturas ejecuten Java bytecode nativamente en el hardware. El primer procesador en usar Jazelle fue el ARM926EJ-S, siendo denominados con una J a todos los procesadores que soportaran esta tecnologa. Procesador ARM946E-S El procesador sintetizado ARM946E-S se adapta bien a una amplia gama de aplicaciones integradas. Ofrece instruccin y cach de datos flexibles, instrucciones e interfaces de datos estrechamente unidos (TCM), una unidad de proteccin de memoria, y una interfaz AMBA AHB. El procesador ejecuta el conjunto de instrucciones ARMv5TE y caracteriza un mejorado multiplicador de 16 x 32 bits capaz de operaciones MAC de un solo ciclo, e instrucciones de 16 bits de punto fijo DSP para acelerar los algoritmos de procesamiento de seales y aplicaciones.

Oscar Eduardo Escobedo Vzquez

Pgina 4

Tarea 10 ARM

30 de abril de 2012

Estndar de la industria El procesador ARM946E-S es un probado y fiable procesador, que ha sido utilizado en una amplia gama de productos y aplicaciones que requieren respuesta en tiempo real. Ofreciendo un estable y probado rendimiento, que ofrece a los diseadores una solucin de bajo riesgo, con el tiempo muy rpido al mercado. El procesador ARM946E-S es usado en una gran cantidad de productos digitales avanzados. Arquitectura de Nintendo DS El problema principal al que se enfrenta cualquier programador de Nintendo DS es su atpica organizacin y esquema de memoria. Entender cmo y para qu se usa cada banco de memoria es fundamental para poder hacer funcionar hasta la ms simple de las aplicaciones. Los puntos a destacar son: Memoria principal (4MB) Almacena los ejecutables y la mayora de los datos de juego en curso. Los juegos caseros normalmente no pasan de estos 4MB para evitar tener que acceder a la memoria del flashcart mediante FAT16/32, siendo el mtodo dependiente de cada familia de cartuchos. Procesador ARM 9 ( 32bits / 66Mhz ) Recoge las instrucciones de memoria principal, y cuenta con una cach de 32KB para instrucciones y otra de 16KB para datos. Por lo general, este procesador es el encargado de llevar las riendas del programa, ejecutar la lgica del juego, gestionar los recursos, etctera. Procesador ARM 7 ( 32 bits / 33Mhz ) Para minimizar el acceso a memoria principal, al ARM 7 tiene acceso a una pseudo-cach 'IWRAM' de 64KB para instrucciones y datos. Este procesador suele gestionar el audio e input, haciendo las funciones de un DSP a veces. Por lo tanto, es necesario que los ejecutables para el ARM7 sean pequeos y quepan totalmente en la IWRAM(justo debajo en el esquema) Las aplicaciones para la consola requieren usar dos ejecutables diferentes: uno para el ARM9 y otro para el ARM7. El ltimo normalmente ser 'esclavo' del primero, y atender sus peticiones en cuanto a playback de sonidos, lectura del touchscreen etc. Por tanto, es necesario algn mecanismo para que ambos procesadores puedan comunicarse entre s.

Oscar Eduardo Escobedo Vzquez

Pgina 5

Tarea 10 ARM

30 de abril de 2012

Una manera es, usar los dos bancos de memoria compartida etiquetados como 'wram' en el esquema. Cada banco posee 16KB y slo est disponible para un slo procesador a la vez. Alternando el acceso a cada banco, se puede implementar un sistema de paso de mensajes para por ejemplo transferir paquetes de red o buffers de sonido. Por suerte, ndslib (librera del nintendo DS) provee un ejecutable estndar para el ARM7 que ya implementa funcionalidades bsicas para gestionar efectos de sonido y lectura de los botones y la pantalla tctil. DMA El DMA, o 'acceso directo a memoria' permite la lectura y escritura de la memoria principal sin la intervencin de la CPU, esto es, con una circuitera dedicada. Las ventajas de usar DMA para transferencias de memoria son varias, pero a nosotros nos interesa especialmente por 1) su rapidez y 2) eficiencia. Las operaciones DMA pueden ser en modo sncrono (la CPU permanece bloqueada hasta que la operacin termina) o asncrono. ste ltimo modo es el utilizado por los SO modernos para permitir p.ej. que podrs estar reproduciendo un vdeo y a la vez grabando un CD sin saturar la CPU. En un PC corriendo Windows o Linux es el propio SO el que gestiona la DMA, siendo totalmente transparente al programador de aplicaciones. Sin embargo, la Nintendo DS no tiene un sistema operativo en s, sino una coleccin de rutinas BIOS y un puado de registros que activan ciertas funciones. Debemos pues gestionar el DMA manualmente Por suerte ndslib nos provee de varias funciones para hacer uso del hardware DMA de la consola, y as poder hacer transferencias sncronas o asncronas de manera eficiente. Si miramos en "include/nds/dma.h" podemos ver p.ej. el cdigo de la funcin dmaCopy: static inline void dmaCopy(const void * source, void * dest, uint32 size) { DMA_SRC(3) = (uint32)source; DMA_DEST(3) = (uint32)dest; DMA_CR(3) = DMA_COPY_HALFWORDS | (size>>1); while(DMA_CR(3) & DMA_BUSY); }

Oscar Eduardo Escobedo Vzquez

Pgina 6

Tarea 10 ARM

30 de abril de 2012

En total tenemos siete (7) funciones para controlar el DMA, siendo sus nombres autoexplicativos: * dmaCopyWords * dmaCopyHalfWords * dmaCopy * dmaCopyWordsAsynch * dmaCopyHalfWordsAsynch * dmaCopyAsynch * dmaBusy Si usamos las funciones -Asynch desde el ARM9 o ARM7, podremos seguir utilizando la CPU mientras la transferencia se realiza en un 'segundo plano'. Esto puede ser til para aplicaciones que hacen decompresin de audio MP3/OGG o vdeo en tiempo real y que usan un sistema de doble buffer. Otro ejemplo prctico: si tuvisemos que hacer un MMORPG, usaramos transferencias asncronas para ir cargando el terreno y objetos segn avanzsemos por el mundo virtual, de manera que el juego no se viese nunca interrumpido por estas cargas.

Oscar Eduardo Escobedo Vzquez

Pgina 7

También podría gustarte