Tecnologías y Arquitecturas
Parte II
Andrés Djordjalian <[email protected]>
Seminario de Sistemas Embebidos
19 de mayo de 2011
Facultad de Ingeniería de la UBA
07:00
1 de 22
Temas de esta Clase
 Medición de performance
 Dhrystone MIPS y mejores benchmarks
 Arquitecturas de gama alta
 Superescalares, VLIW, memorias caches y MMU
 ¿Preguntas?
 ¡Gracias!
07:00
2 de 22
Medición de Performance
 Velocidad = cant._de_procesamiento / tiempo
 MIPS (pico) = millones de instrucciones nativas por
segundo

No es una buena métrica, porque:
1. Las instrucciones individuales de diferentes ISAs no
necesariamente hacen la misma cantidad de procesamiento.
2. Si MIPS se basa en la instrucción más rápida (ej., NOP), entonces
dice poco sobre el procesamiento real.
 Como “cantidad de procesamiento”, mejor que
instrucciones nativas es usar un programa

…escrito en un lenguaje, por ejemplo C
1. así puede ser el mismo procesamiento, aunque los micros tengan
diferentes conjuntos de instrucciones.
2. así puede emplearse un mix realista de instrucciones.
 A los programas que se usan para esto se los llama
benchmarks
07:00
3 de 22
Dhrystone
 Problema: ¿Qué programa usar como benchmark?
 Dhrystone (1984)

Se lo usa mucho, aunque es cuestionado porque:
1.
2.
3.
4.

Es pequeño, utiliza poca memoria
No hace procesamiento en punto flotante
No es representativo de las aplicaciones actuales
El micro puede ser optimizado para “hacer trampa”
La versión actual es Dhrystone 2.1 (1988)
 Para expresar el resultado de Dhrystone, se usa
DMIPS (Dhrystone [VAX] MIPS)



Para fijar una referencia, a una minicomputadora VAX 11/780
se le asigna 1 DMIPS
A una máquina que corre Dhrystone n veces más rápido que la
VAX, se le atribuyen n DMIPS
Frecuentemente se le dice MIPS a secas
•
07:00
Pero no confundirlo con el otro MIPS (pico)
4 de 22
Ejemplos
Procesador
DMIPS (aprox.)
ATmega32A (AVR, 8 bits, 16 MHz)
5,9
ARM Cortex-M0 a 50 MHz
45
ARM Cortex-M3 a 100 MHz
125
ARM Cortex-A8 a 1 GHz
2000
Intel Atom-Z530 a 1,6 GHz
3200
Intel Core i7 EE-990x (6 cores) a
3,46 GHz
159000
(Sin embargo, para que esta tabla fuera más precisa, convendría aclarar
qué compilador se usó en cada caso, qué opciones de compilación y
otros detalles de ese estilo.)
07:00
5 de 22
MFLOPS
 MFLOPS (megaflops) = Millones de instrucciones de
punto flotante por segundo
 Es similar a MIPS pico, pero la instrucción en cuestión
es de punto flotante
 Puede ser una instrucción nativa, o una operación codificada en
varias instrucciones nativas
 Pero ¿de qué operación se trata, y con qué precisión?
• Esas cosas no están bien definidas, lo que le quita mérito a la
métrica
 Representa (imperfectamente) la performance del
procesador para ejecutar programas de punto
flotante
 Cuando un procesador incluye una unidad de punto
flotante, aumenta mucho su performance medida en
MFLOPS
07:00
6 de 22
Mejores Benchmarks
 SPEC CPU
 Estándar para medir performance de computadoras
 Regularmente actualizado. La versión más reciente es CPU2006
 Es una serie de programas (i.e., un suite) y sus datos de entrada
• Para integrar los resultados en uno solo, se usa la media
geométrica
 Los programas se dividen en enteros y de punto flotante
• Se reporta SPECint06 y SPECfp06
 EEMBC (suena como embassy)
 Son varios suites de benchmarks, cada uno apunta a un área de
aplicación de sistemas embebidos.
• Ej.: Automotive, Consumer, Networking, etc.
 Tienen también uno genérico y gratuito: Coremark
 BDTI
 Para productos que hacen procesamiento digital de señales
(DSP).
07:00
7 de 22
Actividad
1. ¿Qué métrica podríamos usar para densidad de
código?
 O sea, algo que represente qué tanta memoria ocupan los
programas para el procesador en cuestión
2. ¿Qué representa DMIPS dividido por frecuencia del
ciclo de máquina?
 O sea que su unidad es [ DMIPS / MHz ]
3. ¿Qué métricas podríamos usar para el consumo?
 Discútanlo en grupos de 2 a 4 personas, en unos
minutos comparamos las respuestas
07:00
8 de 22
Temas de esta Clase
 Medición de performance
 Dhrystone MIPS y mejores benchmarks
 Arquitecturas de gama alta
 Superescalares, VLIW, memorias caches y MMU
 ¿Preguntas?
 ¡Gracias!
07:00
9 de 22
Segmentación (Pipelining)
Ejemplos de
código Assembly:
07:00
LDR R1,[R0]
LDR R3,[R2]
ADD R1,R1,#200
CMP R5,R6
BEQ SonIguales
ADD R5,R5,R4
Repaso
ADD R5,R6,R7
SUB R4,R4,R5
10 de 22
Segmentación (Pipelining)
07:00
Repaso
11 de 22
Multiple Inicio de Instrucciones
 Como vimos, un pipeline procesa varias instrucciones
al mismo tiempo, pero en cada ciclo sólo se inicia una
 Pero un procesador puede tener “n” pipelines, para
iniciar “n” instrucciones por ciclo y lograr así más
paralelismo
 Los pipelines puede ser iguales o no
• Ej., uno para instrucciones aritméticas, otro para loads y stores
• Si el procesador puede iniciar “n” a la vez, se le dice n-issue.
 Para esto, hay dos tipos de arquitectura, que difieren
en dónde se decide qué instrucciones se van a iniciar
en paralelo:
 Superescalar: Lo decide el procesador, en tiempo de
ejecución
• Se usa, por ej., en los procesadores de PC desde el Pentium, y en
procesadores para embebidos de alta gama
 VLIW (Very-Long Instruction Word): Lo decide el compilador o
el programador
• Se usa, por ej., en los DSP de la serie C6x de Texas Instruments
07:00
12 de 22
Superescalares y VLIW
flujo de instrucciones
Una instrucción
Otra
Se inician de a dos
tiempo
07:00
13 de 22
Un Pipeline Superescalar
Pipeline del ARM Cortex A8
(Para un ejemplo de VLIW, ver DSP de la familia C6x de TI, como
el que acompaña al Cortex A8 en la BeagleBoard.)
07:00
14 de 22
Memorias Cache
 La tecnología de las memorias no experimenta tanto
incremento de velocidad como la de los procesadores
 A frecuencias altas, la velocidad de procesamiento empieza a
estar dominada por las esperas hasta que responda la memoria.
 Para alivianar el problema, a veces se usan memorias
cache
 Son memorias rápidas, puestas entre la memoria principal y el
procesador.
 Conservan un subconjunto del contenido de la memoria principal
• Gracias a la localidad espacial y temporal del software, con ese
contenido se atiende la mayoría de los accesos que requiere el
procesador.
 Frecuentemente, se usan varios niveles de cache
07:00




Un cache de nivel 1 (L1) pequeño y bien rápido
Un cache de nivel 2 (L2) más grande, aunque más lento
Quizás, un L3…
Las cache L1 y L2 suelen estar en el mismo chip del procesador
15 de 22
Memorias Cache
 El cache L1 generalmente está dividido en cache de
instrucciones y cache de datos
 Así, segmentos como IF y MEM del pipeline no compiten por el
acceso a memoria.
 Las memorias cache tienen sus contras:
 Complican la predicción del tiempo de ejecución
• Porque no se sabe si la información va a estar o no en cache.
 Ocupan superficie de silicio (=costo)
 Consumen energía
 Sin embargo, si la frecuencia de clock es alta, son
imprescindibles para lograr buena performance.
Foto del die (pastilla)
del Intel Atom
07:00
16 de 22
ARM Cortex A8
 32 bits
 Arquitectura RISC
 ISA ARM (32 bits) y Thumb-2 (16/32 bits)
 desde 600 MHz hasta más de 1 GHz
 Superescalar (2 issue)
 Lanzado en 2009
 Pipelines de 13 etapas
 Caches L1: split, 16KB o 32 KB c/u
 Cache L2: 64 KB a 2 MB
 2 DMIPS/MHz
 Extensión para
multimedia: NEON
 Por unos u$s 50 se
compra un TI OMAP 3515
(= Cortex A8 a 600 MHz
+ un DSP)
07:00
17 de 22
Intel Atom
 Z530
 32 bits
 ISA x86 (PC compatible) pero
con núcleo RISC
 1,6 GHz
 Superescalar (2 issue)
 Lanzado en 2008
 Pipelines de 16 etapas
 Caches L1: split, 32 KB (I) + 24 KB (D)
 Cache L2: 512 KB
 Extensión para multimedia: SSE3
 Máx TDP (thermal design power): 2 W
 Vcore = 1,1 V
 2 DMIPS/MHz
 Fabricado con un proceso de 45 nm
 Cuesta aprox. u$s 50
07:00
18 de 22
ARM
Cortex
A9
07:00
19 de 22
07:00
20 de 22
Memoria Virtual y MMU
 Con sistemas operativos (tipo Linux) se pueden
correr varios procesos “simultáneamente”.
Memoria Virtual
Memoria Física
Memoria del
Proceso A
…del B
mapeo
Almacenamiento
de las “Páginas”
de la Memoria
Virtual
…del C
 El mapeo lo hace una combinación de HW y SW
 Al bloque de HW que se ocupa de eso se le dice Unidad de
Administración de Memoria (MMU)
 La memoria virtual tiene contras similares a las cache
07:00
21 de 22
Temas de esta Clase
 Medición de performance
 Dhrystone MIPS y mejores benchmarks
 Arquitecturas de gama alta
 Superescalares, VLIW, memorias caches y MMU
 ¿Preguntas? ¿Comentarios? ¿Etc.?
 ¡Gracias!
07:00
22 de 22