1 de 56 - PowerPoint PPT Presentation

About This Presentation
Title:

1 de 56

Description:

Tecnolog as y Arquitecturas Temas 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 ... – PowerPoint PPT presentation

Number of Views:44
Avg rating:3.0/5.0
Slides: 62
Provided by: indicartC
Category:
Tags: technology

less

Transcript and Presenter's Notes

Title: 1 de 56


1
Tecnologías y Arquitecturas
2
Temas 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
3
Qué 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

4
Có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

5
Circuitos Integrados MOS
  • Ley de Moore Cada 2 años, el doble de
    transistores

NMOS
6
CMOS
Fuente Wikimedia Commons
7
Sistema 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

8
Procesadores 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

9
Procesadores 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

10
Temas 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

11
MOS Technology 6502 (año 1975)
12
Algunos 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
13
Mercado en el 2006 8 bits
14
Arquitectura 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

15
Tipos 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
16
Instrucciones 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 (!)

17
Temas 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

18
Problema 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)
19
Problema 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

20
Diagramas 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
21
Actividad
  • 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?

22
Secuenciales Sincrónicos
Máq. de Moore
Máq. de Mealy
23
Secuenciales Sincrónicos
i1
o1
o1
o1
Diagrama de tiempo
señal indefinida
24
Problema 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?

25
Má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
26
Datapath 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
27
Datapath 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
28
Unidad 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?

29
Una Transición (ej.)
El codificador estáalmacenando un
solocarácter, distinto de \
? / ?
El codificador estáalmacenando doscaracteres
iguales,distintos de \
30
Có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

31
Có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

32
Lenguajes 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

33
FSM 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)

34
Temas 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

35
Procesadores
  • 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
36
Procesadores
  • 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.

37
Reduced-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

38
Caracterí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

39
El 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

40
Datapath RISC
Patterson, Hennessy Computer Organization and
Design, The Hardware Software Interface
41
Datapath RISC Unidad de Control
42
Segmentació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
43
Segmentación (Pipelining)
44
Datapaths para Punto Flotante
  • Las unidades de punto flotante pueden estar
    segmentadas o no

45
ARM
  • 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)
46
Mercado Actual de 32 bits
47
Perifé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

48
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

49
Superescalares y VLIW
Una instrucción
Otra
flujo de instrucciones
Se inician de a dos
tiempo
50
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
  • 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

51
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
52
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. us 50

53
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 us 50 se compra un TI OMAP 3515(
    Cortex A8 a 600 MHz un DSP)

54
Memoria 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
55
Temas 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

56
Medició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

57
Dhrystone
  • 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)

58
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

59
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).

60
Actividad
  • 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

61
Temas 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
Write a Comment
User Comments (0)
About PowerShow.com