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 ORGANIZACIÓN 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.
Compañía inglesa fundada en 1990 por Apple
Computer, Acorn Computer Group y VLSI
Technology.
Dedicada al desarrollo de procesadores RISC,
software y tecnologías relacionadas.
Una de las compañías 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 diseña.
Licencia sus diseños a manufacturadores de
tercera parte.
Por ejemplo, la tecnología ARM está licenciada
por varias compañías 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 aplicación)
Estructura del bus tipo Von Neuman (ARM7), tipo
Harvard ( ARM9)
ARQUITECTURA ARM.




Tipos de datos de 8/16/32 bits
6 modos de operación: 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 aritméticas son entre registros.
Tamaño de instrucciones uniformes.
Pocos formatos para las instrucciones.
Conjunto de instrucciones ortogonal: poco o
ningún 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 número 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
ORGANIZACIÓN DE LA
FAMILIA ARM7
ARQUITECTURA Y ORGANIZACIÓN DE
LA FAMILIA ARM7







1.- DESCRIPCION GENERAL.
2.- MODOS DE OPERACIÓN.
3.- REGISTROS.
4.- CONJUNTO DE INSTRUCCIONES.
5.- TIPOS DE DATOS.
6.- INTERFAZ DE MEMORIA.
7.- COPROCESADORES.
DIAGRAMA A BLOQUES.
DESCRIPCION GENERAL ARM7.




Característica 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, versión 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 propósito general de
32 bits.
 Arquitectura RISC
 Número de transistores: 74,209
 Frecuencias de operación: 100 – 133 MHz.
 Bus de 32 bits para datos e instrucciones.
 Elevado rendimiento: hasta 120 MIPS.
 Elevada densidad de código.

DESCRIPCION GENERAL ARM7.
Alimentación: 3.3 V y 5 V.
 Bajo consumo de potencia: 80 mW.
 Tecnología CMOS.
 Extensiones: Thumb, Jazelle.
 Los miembros de ARM7 tienen un
coprocesador de interface que permite una
fácil conexión hasta con 16 coprocesadores
más.

FAMILIA ARM7
ARM7TDMI
Es la versión mas utilizada de ARM7.
 ¿ TDMI ?
 T: “Thumb”, soporta esta extensión.
 D: “Debug-interface”.
 M: “Multiplier”, hardware multiplicador.
 I: “Interrupt”, interrupciones veloces.

ARM7TDMI
Arquitectura de bus unificada.
 Lógica de depuración EmbeddedICE-RT.
 Interface
ETM
(Embedded
Trace
Macrocell).

ARM7TDMI-S
Versión sintetizable del ARM7TDMI, con
los mismos niveles de rendimiento y
características en conjunto.
 Optimizado para las tendencias modernas
de diseño 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 diseño.

ARM7TDMI
ARM7EJ-S
Versión sintetizable, incorpora las bondades
del ARM7TDMI.
 Soporta ejecución acelerada de Java y
operaciones DSP.
 Emplea tecnología ARM Jazelle.

ARM7EJ-S
ARM720T
Para sistemas que requieren manejo
completo de memoria virtual y espacios de
ejecución 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 expansión
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 pérdida mínima
de rendimiento.
ARM720T
MODOS DE OPERACIÓN ARM7.






User (usr): estado normal de ejecución 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 instrucción
indefinida es traida.
REGISTROS ARM7.





37 registros de 32 bits, 31 propósito general y 6
registros de estado.
El número de registros disponibles y su estructura
dependen del modo de operación
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
instrucción 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 operación
nativo ARM: longitud de palabra de 32 bits
Todas las instrucciones son condicionales
En ejecución normal ( incondicional), la condición
AL (always) se establece en el campo condición
En operaciones condicionales se selecciona una de
las 14 condiciones
36 formatos de instrucciones
CONJUNTO DE INSTRUCCIONES ARM7.



11 tipos básicos 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 manipulación 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.
Comunicación vía bus de datos bidireccional.
Un bus de direcciones separado de 32 bits
especifica la locación 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 dirección no relacionada con la
dirección usada en el ciclo previo.
Ciclo secuencial: ARM7 requiere transferencia
hacia o desde una dirección que es la misma o está
una palabra después del ciclo previo.
Ciclo interno: ARM7 no requiere transferencia; se
ejecuta una función interna y no se puede ejecutar
al mismo tiempo una búsqueda de instrucción.
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 acción del
sistema de memoria.
Estos 4 tipos de ciclos son visibles a la memoria a
través 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), señales que controlan la
interfaz con los coprocesadores; CPA y CPB
siempre activas excepto cuando el coprocesador
está en “handshaking”.
Cada coprocesador tiene un único número dentro
de un sistema y recibe una copia de la instrucción.
Inspeccionando el campo CP#, cada coprocesador
determina si la instrucción le corresponde.
COPROCESADORES.




Cada coprocesador tiene hasta 16 registros
privados.
Emplean aquitectura LOAD/STORE.
Acoplados al bus de memoria ARM.
“Observan” el tráfico de instrucciones del bus.
TIPOS DE INSTRUCCIONES DE
COPROCESADOR.



PROCESAMIENTO
DE
DATOS
DE
COPROCESADOR: invoca a un coprocesador
para la ejecución de una operación 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 dirección.
FORMATO DE INSTRUCCIÓN DE
TRASFERENCIA DE COPROCESADOR.
IV.- EXTENSION
THUMB
EXTENSION “THUMB”



Representación comprimida de 16 bits del ISA de
ARM.
Con el objetivo de incrementar: densidad de
código 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, ahorrándose 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 ejecución de código ARM
nativo disminuye significativamente.
 Para retornar de Thumb a ARM nativo, se
reestablece T-flag y se ejecuta BX a la
dirección deseada.

Se activa T-flag en el registro CPSR y se ejecuta BX ( Branch
and eXchange ), a la dirección en memoria donde inicia el
código
Thumb.

El mismo espacio de
memoria
contiene
código ARM nativo
mezclado con código
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 instrucción tiene su contraparte en ARM
nativo.
Debido a la reducción de bits, se pierde cierta
funcionalidad.
Existen 19 formatos diferentes de instrucción
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 críticas.
V.- EXTENSION
JAZELLE.
EXTENSION JAZELLE.





El uso de aplicaciones basadas en tecnología Java
se está incrementando.
ARM implementó su extensión Jazelle.
Las soluciones típicas en Java descansan en
implementaciones de software o hardware.
Implementaciones de software requieren el uso de
más componentes de memoria => mayor consumo
de potencia.
Soluciones de hardware requieren acoplar
dispositivos al procesador => costo adicional en
silicio.
EXTENSION JAZELLE.



La extensión 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 código de
aplicación.
EXTENSION JAZELLE.




En la práctica, es agregar un tercer conjunto de
instrucciones al núcleo 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
simulación por múltiples instrucciones ARM.
NUEVO MODO DE OPERACIÓN JAVA.
AMBIENTE DE EJECUCION EXTENSO DE UNA
APLICACIÓN JAVA TIPICA.
VI.- ESTANDAR AMBA
( ADVANCED MICROCONTROLLER
BUS ARCHITECTURE )
ESTANDAR AMBA.





Estándar de especificación de buses de conexión.
Detalla la estrategia para interconexión 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 conexión de
bloques funcionales de alta velocidad, tales como
la memoria.
APB: Advanced Peripherial Bus, bus más simple
para conectar periféricos de propósito 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 idénticos
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 próximas generaciones de Teléfonos,
comunicadores y PDA’S.
 En procesadores 3G.
 En dispositivos basados en Plataforma OS.
 Cámaras 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 optimización.
 Set de instrucciones Thumb de 16 Bits para
densidad de código.
 Bus de interfaz estándar de la industria
AMBA.

BENEFICIOS
El set de instrucciones puede ser extendido
para su uso en Coprocesadores.
 Soporta un excelente debbugeo.
 Código compatible con ARM10E.
 Múltiple fuente para la industria de
vendedores de Silicio.
 Corre en todos los OS’s.

CARACTERISTICAS DE
FUNCIONAMIENTO
ARM920T
ARM922T
Tamaño(mm²)
11.8
8.1
Frecuencia
200
200
0.8
0.8
0.42
0.42
Pot.(mW/MHz)
Inc. caches
Pot.(mW/MHz)
ex. caches
ARM940T
Comparten características 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, Cámaras
Digitales.
 Decodificadores de Audio y video.
 Sistemas de red.


Características y Beneficios iguales a los
anteriores.
CARACTERISTICAS DE
FUNCIONAMIENTO
Tamaño(mm²)
4.2
Frecuencia
185
Pot.(mW/MHz)
Inc. caches
.8
CARACTERISTICAS
GENERALES
Cache
size
Mem.
Cont.
thumb
ARM
920T
16k
MMU
Si
No
No
ARM
922T
8k
MMU
Si
No
No
ARM
940T
4k
MPU
Si
No
No
DSP
Jazelle
APLICACIONES EN LA
INDUSTRIA AUTOMOTIVA




Computadoras para autos.
Reproductores digitales.
Consolas de gráficos en colores.
En GPS’s.
APLICACIONES EN
ENTRETENIMIENTO








Terminales de Internet.
Cables decodificadores.
Reproductores MP4.
Tarjetas de video.
Libros electrónicos.
Reproductores CD/MP3.
Gameboy, Nintendo, Sega.
Reproductores minidisk.
APLICACIONES EN IMÁGENES
DIGITALES

Impresoras HP, JVC, Lexmark,
Xerox.

Cámaras fotográficas Agfa, HP,
JVC, Kodak, Konica.
APLICACIONES EN REDES







Tarjetas de red 3COM.
LAN inalámbrica.
Modems externos.
Servidores para LINUX.
Adaptadores telefónicos.
Servidores de correo.
Redes de computo
APLICACIONES EN SEGURIDAD
Y ALMACENAMIENTO





Sistemas de encriptado
Sistemas de autenticación.
Discos duros.
Minidisks.
Dispositivos de almacenaje
USB.
EJEMPLOS DE
COMPILACION
Int combined_div_mod (int a, int b)
{
return (a/b)+(a%b);
}
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}
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
EJEMPLOS DE
COMPILACION
Typedef unsigned int uint;
Uint div16u (uint a)
{ return a/ 16;
}
Int div16s (int a)
{ return a/ 16;
}
Int sum (int x, int y)
{ int res;
res= x + y;
if ((unsigned) res < (unsigned) x)
res++;
return res;
}
Codigo generado...
Codigo generado...
Div16u
Sum
MOV a1, a1, LSR #4
MOV pc,lr
Div16s
CMP a1, #0
ADDLT a1, a1, #&f
MOV a1, a1, ASR #4
MOV pc,lr
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
Descargar

ARQUITECTURA DE COMPUTADORAS.