Professional Documents
Culture Documents
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.
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.
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.
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.
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.
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.
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.
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
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
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
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
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.
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
INTERRUPCIONES DE SOFTWARE
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.
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.
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.
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.
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.
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.
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.
APLICACIONES DE THUMB.
Para optimizar el costo y el consumo de potencia. Para rutinas de control largas y no crticas.
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.
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
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.
CARACTERISTICAS DE FUNCIONAMIENTO
Tamao(mm) 4.2
Frecuencia
185
.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 ENTRETENIMIENTO
Terminales de Internet. Cables decodificadores. Reproductores MP4. Tarjetas de video. Libros electrnicos. Reproductores CD/MP3. Gameboy, Nintendo, Sega. Reproductores minidisk.
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
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