Title: 1 de 22
1Tecnologías y Arquitecturas
2Temas de esta Clase
- Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Arquitecturas de gama alta
- Superescalares, VLIW, memorias caches y MMU
- Preguntas?
- Gracias!
3Medición de Performance
- Velocidad cant._de_procesamiento / tiempo
- MIPS (pico) millones de instrucciones nativas
por segundo - No es una buena métrica, porque
- Las instrucciones individuales de diferentes ISAs
no necesariamente hacen la misma cantidad de
procesamiento. - 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
- así puede ser el mismo procesamiento, aunque los
micros tengan diferentes conjuntos de
instrucciones. - así puede emplearse un mix realista de
instrucciones. - A los programas que se usan para esto se los
llama benchmarks
4Dhrystone
- Problema Qué programa usar como benchmark?
- Dhrystone (1984)
- Se lo usa mucho, aunque es cuestionado porque
- 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
- Pero no confundirlo con el otro MIPS (pico)
5Ejemplos
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.)
6MFLOPS
- 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
7Mejores 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).
8Actividad
- 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 - Qué representa DMIPS dividido por frecuencia del
ciclo de máquina? - O sea que su unidad es DMIPS / MHz
- Qué métricas podríamos usar para el consumo?
- Discútanlo en grupos de 2 a 4 personas, en unos
minutos comparamos las respuestas
9Temas de esta Clase
- Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Arquitecturas de gama alta
- Superescalares, VLIW, memorias caches y MMU
- Preguntas?
- Gracias!
10Segmentación (Pipelining)
Repaso
CMP R5,R6 BEQ SonIguales ADD R5,R5,R4
Ejemplos decódigo Assembly
LDR R1,R0 LDR R3,R2 ADD R1,R1,200
ADD R5,R6,R7 SUB R4,R4,R5
11Segmentación (Pipelining)
Repaso
12Multiple 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
13Superescalares y VLIW
Una instrucción
Otra
flujo de instrucciones
Se inician de a dos
tiempo
14Un 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.)
15Memorias 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
- 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
16Memorias 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
17ARM 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 us 50 se compra un TI OMAP 3515(
Cortex A8 a 600 MHz un DSP)
18Intel 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. us 50
19ARMCortex A9
20(No Transcript)
21Memoria Virtual y MMU
- Con sistemas operativos (tipo Linux) se pueden
correr varios procesos simultáneamente. - 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
Memoria Virtual
Memoria Física
Memoria del Proceso A
Almacenamientode las Páginasde la
MemoriaVirtual
mapeo
del B
del C
22Temas 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!