Você está na página 1de 94

ARQUITECTURA DE COMPUTADORAS.

ARQUITECTURA DE LAS FAMILIAS DE PROCESADORES: ARM7 Y ARM9 POR: JUAN C. SANTIAGO MARTINEZ HECTOR CARDENAS VIDAL

SUBTEMAS:

I.- QU ES ARM? II.- ARQUITECTURA ARM. III.- ARQUITECTURA Y ORGANIZACIN DE LA FAMILIA ARM7. IV.- EXTENSION THUMB. V.- EXTENSION JAZELLE. VI.- ESTANDAR AMBA. VII.- ADICIONES EN EL ARM9. VIII.- APLICACIONES. IX.- VIRTUDES Y LIMITACIONES. X.- EJEMPLOS DE COMPILACION.

I.- QUE ES ARM ?

QUE ES ARM ?

Advanced RISC Machines Ltd. Compaa inglesa fundada en 1990 por Apple Computer, Acorn Computer Group y VLSI Technology. Dedicada al desarrollo de procesadores RISC, software y tecnologas relacionadas. Una de las compaas con gran presencia mundial. Cubre aprox. el 75 % del mercado mundial en procesadores RISC empotrados.

QU ES ARM ?

En la actualidad, ARM Ltd no hace procesadores, solo los disea. Licencia sus diseos a manufacturadores de tercera parte. Por ejemplo, la tecnologa ARM est licenciada por varias compaas como: Atmel, Cirrus Logic, Hyundai, Intel, Oki, Samsung, Sharp, Lucent, 3Comp, HP, IBM, Sony, entre otras.

II.- ARQUITECTURA ARM.

ARQUITECTURA ARM

Se basa en los principios RISC. 37 registros de 32 bits (16 disponibles) Memoria cach (dependiendo de la aplicacin) Estructura del bus tipo Von Neuman (ARM7), tipo Harvard ( ARM9)

ARQUITECTURA ARM.

Tipos de datos de 8/16/32 bits 6 modos de operacin: usr y sys, fiq, irq, svc, abt, sys, und. Estructura simple = excelente velocidad / bajo consumo de potencia Todos las familias de procesadores ARM comparten el mismo conjunto de instrucciones.

RAPIDAMENTE UN BREVE REPASO DE LA ARQUITECTURA RISC.


Instrucciones conceptualmente simples. Transferencias Memoria/Registros exclusivamente LOAD/STORES. Las operaciones aritmticas son entre registros. Tamao de instrucciones uniformes. Pocos formatos para las instrucciones. Conjunto de instrucciones ortogonal: poco o ningn traslape en la funcionalidad de las instrucciones. Pocos modos de direccionamiento.

BREVE REPASO DE LA ARQUITECTURA RISC.


Casi todas las instrucciones se ejecutan en un ciclo de reloj. Tendencia a tener un gran nmero de registros. Arquitectura RISC predomina en los procesadores de elevado rendimiento. Ejemplos de procesadores RISC modernos: Motorola, IBM: Power PC 8XX, 7XX, 6XX, 4XX; Sun: SPARC; MIPS: RXXXX; ARM: ARM7,9; HP: PA-RISC; Hitachi: SHX; AMD: 29K.

III.- ARQUITECTURA Y ORGANIZACIN DE LA FAMILIA ARM7

ARQUITECTURA Y ORGANIZACIN DE LA FAMILIA ARM7


1.- DESCRIPCION GENERAL. 2.- MODOS DE OPERACIN. 3.- REGISTROS. 4.- CONJUNTO DE INSTRUCCIONES. 5.- TIPOS DE DATOS. 6.- INTERFAZ DE MEMORIA. 7.- COPROCESADORES.

DIAGRAMA A BLOQUES.

DESCRIPCION GENERAL ARM7.


Caracterstica principal: bajo consumo de potencia y bajo costo. ARM7 constituye una de las familias de procesadores de ARM, al igual que las familias ARM9, ARM10 y ARM11. Emplea v4T, versin 4 de ISA de ARM. ARM7 est compuesta, principalmente, por los procesadores:
ARM7TDMI ARM7TDMI-S ARM7EJ-S ARM720T

PIPELINE DE 3 ETAPAS.

DESCRIPCION GENERAL ARM7.


Microprocesadores de propsito general de 32 bits. Arquitectura RISC Nmero de transistores: 74,209 Frecuencias de operacin: 100 133 MHz. Bus de 32 bits para datos e instrucciones. Elevado rendimiento: hasta 120 MIPS. Elevada densidad de cdigo.

DESCRIPCION GENERAL ARM7.


Alimentacin: 3.3 V y 5 V. Bajo consumo de potencia: 80 mW. Tecnologa CMOS. Extensiones: Thumb, Jazelle. Los miembros de ARM7 tienen un coprocesador de interface que permite una fcil conexin hasta con 16 coprocesadores ms.

FAMILIA ARM7

ARM7TDMI
Es la versin mas utilizada de ARM7. TDMI ? T: Thumb, soporta esta extensin. D: Debug-interface. M: Multiplier, hardware multiplicador. I: Interrupt, interrupciones veloces.

ARM7TDMI
Arquitectura de bus unificada. Lgica de depuracin EmbeddedICE-RT. Interface ETM (Embedded Trace Macrocell).

ARM7TDMI-S
Versin sintetizable del ARM7TDMI, con los mismos niveles de rendimiento y caractersticas en conjunto. Optimizado para las tendencias modernas de diseo donde portabilidad y flexibilidad son clave. Recorta el tiempo de entrega al mercado, reduciendo el tiempo de desarrollo a la vez que aumenta la flexibilidad en diseo.

ARM7TDMI

ARM7EJ-S
Versin sintetizable, incorpora las bondades del ARM7TDMI. Soporta ejecucin acelerada de Java y operaciones DSP. Emplea tecnologa ARM Jazelle.

ARM7EJ-S

ARM720T
Para sistemas que requieren manejo completo de memoria virtual y espacios de ejecucin protegidos. Memoria cach de 8K MMU: unidad controladora de memoria. Para aplicaciones de plataforma abierta como Windows CE, Linux, Palm OS y Symbian OS.

ARM720T

Buffer de escritura. Bus de interface AMBA AHB. Coprocesador de interface ETM para expansin del sistema y debugueo en tiempo real. Coprocesador para control interno de la memoria cach y la MMU. Memoria externa puede soportar procesadores adicionales o canales DMA, con prdida mnima de rendimiento.

ARM720T

MODOS DE OPERACIN ARM7.


User (usr): estado normal de ejecucin de programas FIQ (fiq): estado para transferencias de datos ( fast irq, transferencias tipo DMA) IRQ (irq): para dar servivicio a interrupciones generales Supervisor (svc): modo protegido para soporte del sistema operativo Abort mode (abt): usado cuando se aborta el ciclo fetch de datos o instrucciones. Undefined (und): usado cuando una instruccin indefinida es traida.

REGISTROS ARM7.

37 registros de 32 bits, 31 propsito general y 6 registros de estado. El nmero de registros disponibles y su estructura dependen del modo de operacin 16 registros directamente accesibles (R0 R15). R13: puntero de pila (sp) R14: enlace a subrutina (lr)
Guarda el valor de R15 cuando se ejecuta una instruccin BL

REGISTROS ARM7.

R15: contador de programa R16: registro de estado ( CPSR, Current Program Status Register ) SPSR: Saved Program Status Register

CONJUNTO DE REGISTROS ARM7

CONJUNTO DE INSTRUCCIONES ARM7


Instrucciones de 32 bits en el modo de operacin nativo ARM: longitud de palabra de 32 bits Todas las instrucciones son condicionales En ejecucin normal ( incondicional), la condicin AL (always) se establece en el campo condicin En operaciones condicionales se selecciona una de las 14 condiciones 36 formatos de instrucciones

CONJUNTO DE INSTRUCCIONES ARM7.


11 tipos bsicos de instrucciones. Dos de estos tipos emplean la ALU, el desplazador en barril y el multiplicador para ejecutar operaciones a alta velocidad sobre datos en los registros. Ejemplos: AND, EOR, SUB, RSB, ADD, ADC, SBC, RSC, TST, TEQ, CMP, CMN, ORR, MOV, BIC, MVN, ( Multiplicaciones ) MUL, MLA, MULL, MLAL

CONJUNTO DE INSTRUCCIONES ARM7.


Instrucciones de salto (Branching): BX, B, BL BX: Branch and eXchange, salto con cambio de conjunto de instrucciones ARM < -- > Thumb B: salto con desplazamiento de 24 bits con signo BL: enlace (link) PC -> R14 Instrucciones de transferencia de datos: LDR, STR, LDRH, STRH, LDRSB, LDRSH, LDM, STM, SWP.

CONJUNTO DE INSTRUCCIONES ARM7.


Instrucciones de excepciones: SWI, SoftWare Interrupt. Instrucciones del Coprocesador: CDP, LDC, STC, MRC, MCR. ARM no ejecuta estas instrucciones pero deja al coprocesador la manipulacin de ellas.

CODIGOS DE CONDICION

INSTRUCCIONES DE SALTO: B, BL

PROCESAMIENTO DE DATOS

MULTIPLICACIONES

TRANSFERENCIAS DE DATOS

INTERCAMBIO SIMPLE DE DATOS

INTERRUPCIONES DE SOFTWARE

SUMARIO: FORMATOS DEL CONJUNTO DE INSTRUCCIONES

SUMARIO: CONJUNTO DE INSTRUCCIIONES

TIPOS DE DATOS.

Emplea un bus de datos y un bus de direcciones de 32 bits. Tipos de datos que soporta el procesador: bytes ( 8 bits ) y palabras ( 32 bits ). Las instrucciones son exclusivamente palabras. Las transferencias pueden ser bytes o palabras.

INTERFAZ DE MEMORIA

Se puede emplear un sistema de memoria de bajo costo. Comunicacin va bus de datos bidireccional. Un bus de direcciones separado de 32 bits especifica la locacin de memoria a ser usada en la transferencia.

TIPOS DE CICLOS DE TRANSFERENCIA A MEMORIA.

Ciclo no secuencial: ARM7 requiere transferencia hacia o desde una direccin no relacionada con la direccin usada en el ciclo previo. Ciclo secuencial: ARM7 requiere transferencia hacia o desde una direccin que es la misma o est una palabra despus del ciclo previo. Ciclo interno: ARM7 no requiere transferencia; se ejecuta una funcin interna y no se puede ejecutar al mismo tiempo una bsqueda de instruccin.

TIPOS DE CICLOS DE TRANSFERENCIA A MEMORIA.

Transferencia de registro del coprocesador: ARM7 desea usar el bus de datos para comuicarse con un coprocesador pero no requiere ninguna accin del sistema de memoria. Estos 4 tipos de ciclos son visibles a la memoria a travs de las lineas de control nMREQ y SEQ.

COPROCESADORES.

La funcionalidad de ARM7 se incrementa agregando hasta 16 coprocesadores externos. nCPI, CPA (coporocesador ausente), CPB (coporocesador ocupado), seales que controlan la interfaz con los coprocesadores; CPA y CPB siempre activas excepto cuando el coprocesador est en handshaking. Cada coprocesador tiene un nico nmero dentro de un sistema y recibe una copia de la instruccin. Inspeccionando el campo CP#, cada coprocesador determina si la instruccin le corresponde.

COPROCESADORES.

Cada coprocesador tiene hasta 16 registros privados. Emplean aquitectura LOAD/STORE. Acoplados al bus de memoria ARM. Observan el trfico de instrucciones del bus.

TIPOS DE INSTRUCCIONES DE COPROCESADOR.

PROCESAMIENTO DE DATOS DE COPROCESADOR: invoca a un coprocesador para la ejecucin de una operacin interna. TRANSFERENCIA DE REGISTROS DE COPROCESADOR: transferencias entre registros de coprocesador y registros ARM. TRANSFERENCIA DE DATOS DE COPROCESADOR: transferencias de datos entre coprocesador y Memoria. El procesador ARM calcula la direccin.

FORMATO DE INSTRUCCIN DE TRASFERENCIA DE COPROCESADOR.

IV.- EXTENSION THUMB

EXTENSION THUMB

Representacin comprimida de 16 bits del ISA de ARM. Con el objetivo de incrementar: densidad de cdigo y rendimiento, en algunos casos. No es una arquitectura completa, es un subconjunto del ISA de ARM.

EXTENSION THUMB.

Thumb comprime las instrucciones de ARM a una longitud de palabra de 16 bits, ahorrndose del 35 al 40 % en memoria, comparado con un conjunto de instrucciones de 32 bits. Los registros se mantienen como de 32 bits, pero solo la mitad de ellos es empleado. Se emplea un decodificador de instrucciones Thumb en el pipeline. Solo los registros de la parte mas baja se emplean, los registros de la parte alta se establecen a cero.

CAMBIANDO DE MODO: ARM < -- > THUMB


Si solo se emplea el bus de datos de 16 bits, la velocidad de ejecucin de cdigo ARM nativo disminuye significativamente. Para retornar de Thumb a ARM nativo, se reestablece T-flag y se ejecuta BX a la direccin deseada.

Se activa T-flag en el registro CPSR y se ejecuta BX ( Branch and eXchange ), a la direccin en memoria donde inicia el cdigo Thumb.

El mismo espacio de memoria contiene cdigo ARM nativo mezclado con cdigo Thumb.

DESCOMPRESOR THUMB.

ESTADO DE REGISTROS THUMB.

CONJUNTO DE INSTRUCCIONES THUMB.

La longitud de palabra se reduce a 16 bits. Las instrucciones siguen su propia sintaxis, pero cada instruccin tiene su contraparte en ARM nativo. Debido a la reduccin de bits, se pierde cierta funcionalidad. Existen 19 formatos diferentes de instruccin Thumb.

MAPEO DE INSTRUCCIONES THUMB-ARM

SUMARIO: CONJUNTO DE INSTRUCCIONES THUMB.

19 FORMATOS DE INSTRUCCIONES THUMB.

APLICACIONES DE THUMB.

Para optimizar el costo y el consumo de potencia. Para rutinas de control largas y no crticas.

V.- EXTENSION JAZELLE.

EXTENSION JAZELLE.

El uso de aplicaciones basadas en tecnologa Java se est incrementando. ARM implement su extensin Jazelle. Las soluciones tpicas en Java descansan en implementaciones de software o hardware. Implementaciones de software requieren el uso de ms componentes de memoria => mayor consumo de potencia. Soluciones de hardware requieren acoplar dispositivos al procesador => costo adicional en silicio.

EXTENSION JAZELLE.

La extensin Jazelle implementa ambas soluciones sin requerir hardware o memoria adicional. Mejora el rendimiento hasta 8 veces de soluciones basadas en software y hasta el doble de soluciones basadas en co-procesadores => poder correr aplicaciones Java complejas en sistemas basados en nucleos ARM de bajo consumo de potencia. Permite a los desarrolladores correr en un solo procesador aplicaciones Java, junto con los sistemas operativos establecidos y cdigo de aplicacin.

EXTENSION JAZELLE.

En la prctica, es agregar un tercer conjunto de instrucciones al ncleo del procesador ARM ( Jazelle, ARM y Thumb ). Se crea un nuevo estado del procesador: estado Java, el procesador se comporta como un procesador Java. El cambio entre estados: Java y ARM/Thumb, es por medio del control del sistema operativo. 140 intrucciones son ejecutadas directamente en hardware, el resto ( 94 ) se ejecutan por simulacin por mltiples instrucciones ARM.

NUEVO MODO DE OPERACIN JAVA.

AMBIENTE DE EJECUCION EXTENSO DE UNA APLICACIN JAVA TIPICA.

VI.- ESTANDAR AMBA


( ADVANCED MICROCONTROLLER BUS ARCHITECTURE )

ESTANDAR AMBA.

Estndar de especificacin de buses de conexin. Detalla la estrategia para interconexin y manejo de bloques funcionales que conforman un SoC. ASB: AMBA System Bus. AHB: Advanced High performance Bus, bus de ancho de banda grande para la conexin de bloques funcionales de alta velocidad, tales como la memoria. APB: Advanced Peripherial Bus, bus ms simple para conectar perifricos de propsito general.

ESTANDAR AMBA.

ARM9

Es una familia constituida por los procesadores ARM920T, ARM922T Y ARM940T. Construida en base al procesador ARM9TDMI. Set de instrucciones de 16 Bits. El procesador es RISC de 32 Bits. Buffer de escritura de 8 entradas.

ARM9

Es una familia constituida por los procesadores ARM920T, ARM922T Y ARM940T. Construida en base al procesador ARM9TDMI. Set de instrucciones de 16 Bits. El procesador es RISC de 32 Bits. Buffer de escritura de 8 entradas.

ARM9

Pipeline de 5 estados que alcanza 1.1 MIPS/MHz, expandible a 300 MIPS. Bus de interface AMBA de 32 Bits. MMU (Memory Management Unit) que soporta Windows CE, Symbian OS, Linux, Palm OS. MPU (Memory Protection Unit) soportando una amplia gama de sistemas operativos en tiempo real, incluyendo VxWORKS.

ARM920T Y ARM922T

Macrocelulas basadas en el ARM9TDMI RISC de 32 Bits convenientes para una gama de aplicaciones basadas en plataforma OS, ofrecen caches para instrucciones y datos, son idnticos pero se diferencian en que uno es de 16k y el otro de 8k. MMU permitiendo soporte para otros sistemas operativos importantes.

APLICACIONES
En las prximas generaciones de Telfonos, comunicadores y PDAS. En procesadores 3G. En dispositivos basados en Plataforma OS. Cmaras digitales. Decodificadores de Audio y video. En la industria automotiva.

CARACTERISTICAS
Arquitectura RISC de 32/16 Bits. Set de instrucciones ARM de 32 Bits para flexibilidad y optimizacin. Set de instrucciones Thumb de 16 Bits para densidad de cdigo. Bus de interfaz estndar de la industria AMBA.

BENEFICIOS
El set de instrucciones puede ser extendido para su uso en Coprocesadores. Soporta un excelente debbugeo. Cdigo compatible con ARM10E. Mltiple fuente para la industria de vendedores de Silicio. Corre en todos los OSs.

CARACTERISTICAS DE FUNCIONAMIENTO
ARM920T ARM922T

Tamao(mm) Frecuencia
Pot.(mW/MHz) Inc. caches Pot.(mW/MHz) ex. caches

11.8 200 0.8


0.42

8.1 200 0.8


0.42

ARM940T
Comparten caractersticas de los anteriores. Se caracteriza por ser de 4k para caches de instrucciones y datos. MPU habilitada para soportar sistemas operativos en tiempo real (RTOS).

APLICACIONES
En imagen, p.ej: Impresoras, Cmaras Digitales. Decodificadores de Audio y video. Sistemas de red.

Caractersticas y Beneficios iguales a los anteriores.

CARACTERISTICAS DE FUNCIONAMIENTO
Tamao(mm) 4.2

Frecuencia

185

Pot.(mW/MHz) Inc. caches

.8

CARACTERISTICAS GENERALES
Cache size ARM 920T 16k 8k 4k Mem. Cont. MMU MMU MPU thumb Si Si Si DSP No No No Jazelle No No No

ARM 922T
ARM 940T

APLICACIONES EN LA INDUSTRIA AUTOMOTIVA

Computadoras para autos. Reproductores digitales. Consolas de grficos en colores. En GPSs.

APLICACIONES EN ENTRETENIMIENTO

Terminales de Internet. Cables decodificadores. Reproductores MP4. Tarjetas de video. Libros electrnicos. Reproductores CD/MP3. Gameboy, Nintendo, Sega. Reproductores minidisk.

APLICACIONES EN IMGENES DIGITALES

Impresoras HP, JVC, Lexmark, Xerox. Cmaras fotogrficas Agfa, HP, JVC, Kodak, Konica.

APLICACIONES EN REDES

Tarjetas de red 3COM. LAN inalmbrica. Modems externos. Servidores para LINUX. Adaptadores telefnicos. Servidores de correo. Redes de computo

APLICACIONES EN SEGURIDAD Y ALMACENAMIENTO


Sistemas de encriptado Sistemas de autenticacin. Discos duros. Minidisks. Dispositivos de almacenaje USB.

EJEMPLOS DE COMPILACION
Int combined_div_mod (int a, int b) { return (a/b)+(a%b); } int g (int x, int y) { if (x + y < 0) return 1; else return 0; } Codigo generado... g ADDS a1, a1, a2 MOVLP a1,#0 MOVMI a1,#1 MOV pc,lr

Codigo generado... Combined_div_mod STMDB sp!, {lr} MOV a3,a2 MOV a2,a1 MOV a1,a3 BL _rt_sdiv ADD a1,a1,a2 LDMIA sp!,{pc}

EJEMPLOS DE COMPILACION
Typedef unsigned int uint; Uint div16u (uint a) { return a/ 16; } Int div16s (int a) { return a/ 16; } Codigo generado... Div16u MOV a1, a1, LSR #4 MOV pc,lr Div16s CMP a1, #0 ADDLT a1, a1, #&f MOV a1, a1, ASR #4 MOV pc,lr Int sum (int x, int y) { int res; res= x + y; if ((unsigned) res < (unsigned) x) res++; return res; }

Codigo generado... Sum ADDS ADC MOV MOV a2, a1, a2 a2, a2, #0 a1, a2 pc,lr

Ligas de consulta
www.arm.com www.metaware.com www.ahare.btinternet.co.uk www.redhat.com www.ocdemon.com

www.tazenda.demon.co.uk

Você também pode gostar