Title: 1 de 56
1Tecnologías y Arquitecturas
2Temas de esta Unidad
- Introducción Qué es y con qué se implementa un
sistema embebido? - Micros de los 70s y 80s
- Todavía con cierta vigencia
- Ej., Intel 8051
- Repaso de digitales
- Máquinas de estado, secuenciales sincrónicos y
separación datapath-FSM - Arquitecturas modernas
- RISC, pipelining, superescalares y VLIW, memorias
caches y MMU - Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Algunos detalles de los conjuntos de
instrucciones ARM - Thumb / Thumb 2 / ARM
viene ahora
3Qué son los Sistemas Embebidos?
- Son circuitos que hacen algún procesamiento de
datos, destinados a una aplicación particular - a diferencia de las computadoras, que tienen
múltiples aplicaciones según el software que se
instale. - Generalmente forman parte de un sistema mayor
- que puede incluir partes analógicas,
electromecánicas, etc. - Por eso se le dice embebido
- Ejemplos de aplicaciones
- Control industrial ? cajas registradoras ?
calculadoras ? periféricos para computadoras ?
domótica ? PDAs ? teléfonos ? control de
electrodomésticos ? controles remotos ? cámaras
digitales ? reproductores de DVD y mp3 ? equipos
para medicina ? GPS ? telemetría ? routers ?
señalización ? avionics ? control de automóviles
? videojuegos ? etcétera ? etcétera
4Cómo se Implementan los SE?
- Son sistemas principalmente digitales
- Compuestos por circuitos combinacionales y
secuenciales - Estos últimos, en la gran mayoría de los casos,
son sincrónicos. - Pueden incluir un procesador, o incluso varios
- En la materia, vamos a ocuparnos de los que
incluyen uno. - Distintas formas de implementarlos
- Todos componentes COTS (commercial off-the-shelf)
- Esos y algún ASIC (application-specific
integrated circuit) - En lugar de un ASIC, una FPGA (field-programmable
gate array) - Cada vez hay más aplicaciones, porque pueden
hacerse dispositivos que - Cuestan menos x transistor
- Consumen menos x transistor
- Son más rápidos
5Circuitos Integrados MOS
- Ley de Moore Cada 2 años, el doble de
transistores
NMOS
6CMOS
Fuente Wikimedia Commons
7Sistema en un Chip (SoC)
- En un chip, se pueden conectar entre sí distintos
bloques prediseñados, como si fueran componentes
que se interconectan en un circuito impreso - A esos bloques se los llama cores (núcleos) o IP
(intellectual-property, o propiedad intelectual) - Se forma así un SoC (Systemon Chip)
- El la manera típica de diseñarun ASIC complejo
- ASIC Application-Specific IC
- Se puede hacer lo mismo con una FPGA
- y se le dice PSoC Programmable System on a
Chip - Para mejor performance, algunas FPGA traen (fijo)
un procesador - La integración normalmente se hace mediante
- Un lenguaje de descripción de hardware (ej. VHDL,
Verilog) - O una herramienta gráfica
- Un core puede ser un procesador
8Procesadores Que Vamos a Usar
- ARM 7TDMI ( ? unos us 3 )
- Arquitectura RISC
- 32 bits
- Lanzado en 1995
- Pipeline de 3 etapas
- ISA ARM (32 bits) y Thumb (16 bits)
- 0,95 DMIPS/MHz (con el set ARM)
- 0,28 mW/MHz (con proceso TSMC 0.18G)
- ARM Cortex M3 ( ? unos us 2 )
- Arquitectura RISC
- 32 bits
- Lanzado en 2004
- Pipeline de 3 etapas conbranch speculation
- ISA Thumb 2 (16/32 bits)
- 1,25 DMIPS/MHz
- 0,19 mW/MHz (con proceso TSMC 0.18G)
- Un 8051 procesa a unos 0,1 DMIPS/MHz
9Procesadores que Vamos a Usar
- TI OMAP 3530 ? us 45, trae dos cores
- 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
- Arquitectura 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
- TMS320C64x
- Procesador digital de señales (DSP)
- 32 bits
- Arquitectura VLIW (8 issue)
- Aritmética de punto fijo de 40 bits
10Temas de esta Unidad
- Introducción Qué es y con qué se implementa un
sistema embebido? - Micros de los 70s y 80s
- Todavía con cierta vigencia
- Ej., Intel 8051
- Repaso de digitales
- Máquinas de estado, secuenciales sincrónicos y
separación datapath-FSM - Arquitecturas modernas
- RISC, pipelining, superescalares y VLIW, memorias
caches y MMU - Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Algunos detalles de los conjuntos de
instrucciones ARM - Thumb / Thumb 2 / ARM
11MOS Technology 6502 (año 1975)
12Algunos de los Primeros Micros
1985
1970
1975
1980
68020
32 bits
PMOS NMOS HMOS
CMOS
80386
Motorola 68000
16 bits
Intel 8086
80286
8088
GI PIC1640
MOS T. 6502
Zilog Z80
8 bits
8008
8080
Intel 8048
8051
6805
68HC11
Motorola 6800
4 bits
Intel 4004
tiempo
13Mercado en el 2006 8 bits
14Arquitectura de Computadoras
- Paremos un minuto para definir algunas cosas
- Arquitectura es la descripción de un sistema en
un nivel de abstracción alto - Ej., mediante un diagrama de bloques
- Ej., arquitectura de computadoras
(refiriéndonos al procesador nomás no al disco,
interfaces, etc.), de la cual hay dos tipos - Arquitectura de Conjunto de Instrucciones
- Instruction-Set Architecture, o ISA
- Es la arquitectura vista desde afuera
- Registros, conjunto de instrucciones, esquema de
interrupciones, etc. - A esta, a veces se le dice arquitectura a secas
- Microarquitectura
- Es la arquitectura interna del procesador
- O sea, cómo está implementada la ISA
15Tipos de ISA
Acumulador Registro-Memoria Load-Store
Código para foobarbaz Load barAdd bazStore foo Load R1,barAdd R1,bazStore foo,R1 Load R1,barLoad R2,bazAdd R3,R1,R2Store foo,R3
Algunos de los micros con ISA de este tipo Prácticamente todos los de 8 bits Intel 8086,Motorola 68000 Los de 32 bits modernos
16Instrucciones en el 8086 y 68000
- Las dos arquitecturas son register-memory de 2
operandos (como máximo) - No pueden haber dos accesos a memoria en una
instrucción. - 8086 ADC AX,baz 68000 ADD.W baz,D0
- En el 68000 original, la anterior tardaba 8
ciclos (!) - Suponiendo que la memoria respondía sin esperas
- Un simple MOVE.B D0,D1 tardaba 4 ciclos (!)
- Tienen muchos modos de direccionamiento
- 12 en el 8086, 8 en el 68000
- Incluyendo cosas como CMPM.B (A1),(A2)
CMPA.L 100H(A2,D0.W),A3 - Multiplicación MULU foo,D1 70 ciclos (!)
17Temas de esta Unidad
- Introducción Qué es y con qué se implementa un
sistema embebido? - Micros de los 70s y 80s
- Todavía con cierta vigencia
- Ej., Intel 8051
- Repaso de digitales
- Máquinas de estado, secuenciales sincrónicos y
separación datapath-FSM - Arquitecturas modernas
- RISC, pipelining, superescalares y VLIW, memorias
caches y MMU - Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Algunos detalles de los conjuntos de
instrucciones ARM - Thumb / Thumb 2 / ARM
18Problema a Resolver
- Diseñar un circuito que codifique una cadena de
bytes a código RLE - Codificar en RLE (run-length encoding) significa
convertir las secuencias de un mismo número en la
tupla ltcódigo de escape, número, cantidad de
repeticionesgt - Ej. abccbaaaaaba ? abccb/a5ba
- Es particularmente útil para comprimir gráficos
- Se usa en el formato PCX
(La interfaz es como la de una memoria FIFO)
19Problema a Resolver
- Va a ser un circuito combinacional o secuencial?
- Que sea un secuencial sincrónico
- Son más fáciles de diseñar
- En particular, de validar que la temporización
sea correcta - Son escalables
- Por eso, la electrónica digital está orientada
hacia sincrónicos - Los componentes, el software EDA, etc.
- Dejemos las técnicas asincrónicas (que son
diversas) para casos especiales, más avanzados - Recordemos que un secuencial es una máquina de
estados finitos (finite-state machine, o FSM) - Que, a su vez, puede ser descripta mediante un
diagrama de estados
20Diagramas de Estado
- Ejemplo Detector de secuencia abac
entradas a,b,c salidas sí, no Produce
sí sólo cuando las últimas cuatro entradas
fueron abac
Moore
Mealy
21Actividad
- Formen grupos
- de 2 a 4 personas
- Dibujen el diagrama de estados de una máquina de
Moore que produzca, en la salida, un 1, 2 o 3,
cuando sus últimas dos entradas fueron 1, 2 o 3,
respectivamente - Entrada 1,2,3
- Salida -,1,2,3
- Lo mismo, pero para una máquina de Mealy
- Cuándo se producen las transiciones en estas
máquinas y las de la diapositiva anterior? Cómo
puedo hacer para implementarlas con secuenciales
sincrónicos?
22Secuenciales Sincrónicos
Máq. de Moore
Máq. de Mealy
23Secuenciales Sincrónicos
i1
o1
o1
o1
Diagrama de tiempo
señal indefinida
24Problema a Resolver
- Va a ser un circuito combinacional o secuencial?
- Que sea un secuencial sincrónico
- Más o menos, qué cantidad de estados necesita
tener este secuencial?
25Máquina de estados Datapath
- Para encarar estos problemas, se suele separar en
dos subsistemas - Una ruta de datos (o datapath), compuesta por los
combinacionales y registros que se repiten n
veces (en este caso, 8) dado que trabajan sobre
cada bit. - Una máquina de estados (o FSM) que controla el
datapath - Frecuentemente se le dice unidad de control.
- (FSM Finite-State Machine)
- Implementándolo así, la FSM de un codificador RLE
necesita no más que un número manejable de estados
Control
Datapath
U.C.
Status
26Datapath para un codificador RLE
Comparador
Qué pasa si entra un \?
TS1
Registro A
Data in
Data out
cargar
TS2
Contador
contar
TC (terminal count)
resetar
TS3
\(const)
Valid2
Valid1
Ready2
Ready1
27Datapath para un codificador RLE
Comparador contra \
Comparador
Data in
TS1
Registro A
Data out
cargar
TS2
Contador
contar
TC
resetar
TS3
\(const)
Valid1
Valid2
Ready1
Ready2
28Unidad de Control del Codificador
- No la vamos a hacer toda porque es grande
- aunque no tanto (unos 12 o 15 estados?)
- Pero planteemos una de las transiciones a modo de
ejemplo - haciéndola una máquina de Mealy
- Un estado va a ser El codificador está
almacenando un solo carácter, distinto de \. - Otro estado va a ser El codificador está
almacenando dos caracteres iguales, distintos
de \. - Qué condiciones producen la transición del
primero al segundo? - Qué salidas tiene que presentar la U.C. durante
esa transición?
29Una Transición (ej.)
El codificador estáalmacenando un
solocarácter, distinto de \
? / ?
El codificador estáalmacenando doscaracteres
iguales,distintos de \
30Cómo no implimentaríamos hoy ese codificador
- Difícilmente nos interese implementarlo con
componentes MSI - Componentes MSI son CIs de compuertas,
contadores, etc., por ejemplo de series 74LSxx,
74HCxx, 74Fxx, CD4xxx, etc. - porque no sería tan económico como las
alternativas - Debido, entre otros factores, a los costos de
interconexión - y porque no sería tan rápido y/o de bajo consumo
como las alternativas - Debido, también, a las interconexiones
- Porque salir de un integrado y entrar en otro
implica que hayan capacitancias parásitas - Estas bajan la velocidad y aumentan el consumo
- Si no necesitáramos velocidad y/o bajo consumo,
seguramente preferiríamos usar un micro
31Cómo sí implimentaríamos hoy ese codificador
- Usaríamos una FPGA o un CPLD
- FPGAs Field-Programmable Gate Array
- (o arreglo de compuertas programable in situ)
- CPLDs Complex Programmable Logic Device
- (o dispositivo lógico programable complejo)
- o lo implementaríamos en un circuito integrado
full custom CMOS - Full custom que se diseña todo a medida
- o usaríamos un Structured ASIC o un Gate Array
- Esto es un término medio entre las dos opciones
anteriores - Significa fabricar un circuito integrado
(generalmente CMOS), pero haciendo a medida
únicamente algunas capas de metal (o sea,
interconexión), utilizando el resto prefabricado - Las capas prefabricadas pueden proveer un arreglo
de compuertas, o celdas más complejas
32Lenguajes de Descripción de HW
- Para el diseño de circuitos digitales, los
circuitos de compuertas fueron reemplazados, en
gran medida, por lenguajes de descripción de
hardware - hardware-description languages, o HDL
- Los más populares son VHDL y Verilog
- O sea que, para diseñar un ASIC o una FPGA,
normalmente se escribe un código VHDL o Verilog,
que un software EDA puede simular y sintetizar - Se puede usar en dos niveles de abstracción
- Nivel de comportamiento (behavioral level)
- Describe la funcionalidad del circuito, similar a
un programa de computación - Nivel de transferencia de registros
(register-transfer level, o RTL) - Describe cómo se implementa lo de arriba moviendo
datos de un circuito a otro - Este código tiene unas 10 veces más líneas que el
anterior
33FSM Datapath en un HDL
- Para codificarlos, hay dos estilos
- Poner la FSM y el datapath en distintas partes
del código - Para implementar la FSM se usa algo similar a un
switch-case de C - o juntar el FSM y el datapath
- Intercalando transferencias de registros en la
estructura símil switch-case que se usa para
implementar la FSM - (ver ejemplos en archivos separados)
34Temas de esta Unidad
- Introducción Qué es y con qué se implementa un
sistema embebido? - Micros de los 70s y 80s
- Todavía con cierta vigencia
- Ej., Intel 8051
- Repaso de digitales
- Máquinas de estado, secuenciales sincrónicos y
separación datapath-FSM - Arquitecturas modernas
- RISC, pipelining, superescalares y VLIW, memorias
caches y MMU - Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Algunos detalles de los conjuntos de
instrucciones ARM - Thumb / Thumb 2 / ARM
35Procesadores
- Lo explicado hasta ahora puede usarse para
diseñar y fabricar procesadores - Un datapath simple de ejemplo
Fuente S. Furber ARM System-on-Chip
Architecture, 2nd ed Pearson Education 2000
36Procesadores
- En un procesador, la unidad de control puede ser
compleja - En particular si las instrucciones nativas (o sea
en Assembly) realizan operaciones complicadas o
requieren varios ciclos de máquina - Esa era la tendencia hasta los ochentas
- Estas UCs podían demandar bastante tiempo de
diseño y ocupar buena parte del silicio de los
primeros microprocesadores - Frecuentemente, para implementar UCs complejas
sin perder flexibilidad, se usaba una técnica
llamada microprogramación - Consistía en guardar el comportamiento de la UC
en una ROM, como si fuera un programa, que era
ejecutado por un circuito secuencial sencillo y
genérico.
37Reduced-Instr.-Set Computer (RISC)
- En los 70s, en IBM primero, y en las
universidades de Stanford y Berkeley después, se
empezó a cuestionar esta tendencia de sumarle
complejidad a los conjuntos de instrucciones - Sus argumentos
- Gracias a los compiladores, las instrucciones
sofisticadas dejan de ser útiles - Eliminándolas, se puede optimizar las que sí lo
son - y se ahorra mucho tiempo de diseño
- y se libera superficie de silicio ocupada por la
unidad de control, la que puede usarse para
mejorar el datapath - Por ej, para ponerle un mejor multiplicador
- Nace el estilo RISC para el diseño de
arquitecturas de computadoras - que, desde entonces, tiene enorme influencia en
la disciplina
38Características del Estilo RISC
(no excluyentes)
- Arquitectura tipo load-store
- Las operaciones lógicas y aritméticas operan sólo
sobre registros. Las únicas instrucciones que
acceden a memoria son para transferir su
contenido desde o hacia un registro - Conjunto de instrucciones reducido
- aunque, hoy en día, hay RISC con montones de
instrucciones - Las intrucciones tienen largo uniforme (ej. 32
bits) - aunque, hoy en día, hay ISAs RISC con largo
variable, como Thumb 2 - Todas las instrucciones pueden ser ejecutadas en
1 ciclo - suponiendo que la memoria responde lo
suficientemente rápido
39El Estilo RISC
- Se habla de arquitecturas RISC versus
arquitecturas CISC - La mayoría de las arquitecturas planteadas desde
entonces son RISC - En algunas de las que no son RISC, se traducen
internamente las instrucciones CISC a un código
RISC que es ejecutado por un núcleo RISC - Eso se hace, por ejemplo, en las
microarquitecturas modernas para PC - Una de las ventajas de RISC es que es óptimo para
pipelining - Pipelining es una técnica para aumentar la
frecuencia de clock, y como consecuencia, la
velocidad de procesamiento - Pero primero veamos un típico datapath RISC
40Datapath RISC
Patterson, Hennessy Computer Organization and
Design, The Hardware Software Interface
41Datapath RISC Unidad de Control
42Segmentación (Pipelining)
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
43Segmentación (Pipelining)
44Datapaths para Punto Flotante
- Las unidades de punto flotante pueden estar
segmentadas o no
45ARM
- Acorn era la Apple británica. En los 80s creó
su propio procesador RISC para sus computadoras - Acorn, Apple y VLSI Technology forman ARM en 1990
- El modelo de negocios es ofrecer IP, para que
licencien - Fabricantes demicrocontroladorescomo NXP,
Atmel,ST, TI, etc. - O quienes necesitan microsen sus ASICs
- Ej., fabricantesde teléfonos celulares
(Semicast Research)
46Mercado Actual de 32 bits
47Periféricos
- Un microcontrolador es un procesador con memoria
y periféricos, todo en un mismo chip - Ejemplos de periféricos de uso actual
- Interfase serie asincrónicas (UART) ? Interfase
serie sincrónica ? pines de E/S (puerto paralelo)
? Modulador de ancho de pulso (PWM) ? Conversores
A/D y D/A ? Comparador de tensión ? Temporizador
(timer) ? Puerto I2C / SPI ? Interfase USB ?
Controlador CAN ? Puerto I2S ? reloj de tiempo
real ? Controlador Ethernet (MAC/PHY) ?
Controlador de LCD ? Etc. - Otros circuitos que pueden tener
- Oscilador para fck ? Circuito de reset ? Watchdog
timer ? Brown-out reset ? Puerto JTAG ? Etc. - Los periféricos son un factor importante a tener
en cuenta para decidir qué microcontrolador usar
48Multiple 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
49Superescalares y VLIW
Una instrucción
Otra
flujo de instrucciones
Se inician de a dos
tiempo
50Memorias 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
51Memorias 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
52Intel 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
53ARM 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)
54Memoria 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
55Temas de esta Unidad
- Introducción Qué es y con qué se implementa un
sistema embebido? - Micros de los 70s y 80s
- Todavía con cierta vigencia
- Ej., Intel 8051
- Repaso de digitales
- Máquinas de estado, secuenciales sincrónicos y
separación datapath-FSM - Arquitecturas modernas
- RISC, pipelining, superescalares y VLIW, memorias
caches y MMU - Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Algunos detalles de los conjuntos de
instrucciones ARM - Thumb / Thumb 2 / ARM
56Medició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
57Dhrystone
- 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
- 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)
58MFLOPS
- 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
59Mejores 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).
60Actividad
- 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
61Temas de esta Unidad
- Introducción Qué es y con qué se implementa un
sistema embebido? - Micros de los 70s y 80s
- Todavía con cierta vigencia
- Ej., Intel 8051
- Repaso de digitales
- Máquinas de estado, secuenciales sincrónicos y
separación datapath-FSM - Arquitecturas modernas
- RISC, pipelining, superescalares y VLIW, memorias
caches y MMU - Medición de performance
- Dhrystone MIPS y mejores benchmarks
- Algunos detalles de los conjuntos de
instrucciones ARM - Thumb / Thumb 2 / ARM