1 de 47 - PowerPoint PPT Presentation

About This Presentation
Title:

1 de 47

Description:

Tecnolog as y Arquitecturas Parte I Temas de estas primeras clases Introducci n: Qu es y con qu se implementa un sistema embebido? Micros de los 70s y 80s ... – PowerPoint PPT presentation

Number of Views:152
Avg rating:3.0/5.0
Slides: 50
Provided by: indicartC
Category:
Tags:

less

Transcript and Presenter's Notes

Title: 1 de 47


1
Tecnologías y Arquitecturas
  • Parte I

2
Temas de estas primeras clases
  • 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
  • Circuitos digitales
  • Máquinas de estado, secuenciales sincrónicos,
    separación datapath-FSM, FPGA
  • Arquitecturas modernas. Parte I
  • RISC y pipelining
  • Algunos detalles de las ISAs ARM
  • Familias
  • Conjuntos de instrucciones Thumb / Thumb 2 / ARM

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

6
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

7
Ejemplo de uno de gama más alta
  • 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

8
Temas de estas primeras clases
  • 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
  • Circuitos digitales
  • Máquinas de estado, secuenciales sincrónicos,
    separación datapath-FSM, FPGA
  • Arquitecturas modernas. Parte I
  • RISC y pipelining
  • Algunos detalles de las ISAs ARM
  • Familias
  • Conjuntos de instrucciones Thumb / Thumb 2 / ARM

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

13
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
14
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 (!)

15
Temas de estas primeras clases
  • 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
  • Circuitos digitales
  • Máquinas de estado, secuenciales sincrónicos,
    separación datapath-FSM, FPGA
  • Arquitecturas modernas. Parte I
  • RISC y pipelining
  • Algunos detalles de las ISAs ARM
  • Familias
  • Conjuntos de instrucciones Thumb / Thumb 2 / ARM

16
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)
17
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

18
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
19
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? En
    qué momentos puede cambiar de estado un
    secuencial sincrónico? Entonces, hay que
    sincronizar?

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

23
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
24
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
25
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
26
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?

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

29
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

30
FPGA - Qué es?
Definición simplificada Arreglo de celdas
básicas programables cuyas interconexiones
también son programables
Fuente UBA - Sistemas Embebidos - FPGA
SoftCores 2010 Franco Ferrucci, Sebastián
García
31
FPGA - Flujo de Diseño
Flujo de diseño típico
Verificación
Place Route
Programación
Entrada de Diseño
Síntesis Lógica
  • Lenguaje de descripción de Hardware
  • VHDL
  • Verilog

Fuente UBA - Sistemas Embebidos - FPGA
SoftCores 2010 Franco Ferrucci, Sebastián
García
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)
  • La ventaja de la 1 es que se logra mayor
    conciencia de los recursos que se están
    pidiendo
  • Y eso sirve para optimizar, por ejemplo
    arreglándoselas con un solo sumador
  • O sea que la desventaja de la 2 es que uno no se
    da cuenta que hay una FSM por un lado y un
    datapath por otro
  • Pero eso puede ser una ventaja, porque lo hace
    más fácil de programar.

34
Temas de estas primeras clases
  • 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
  • Circuitos digitales
  • Máquinas de estado, secuenciales sincrónicos,
    separación datapath-FSM, FPGA
  • Arquitecturas modernas. Parte I
  • RISC y pipelining
  • Algunos detalles de las ISAs ARM
  • Familias
  • Conjuntos de instrucciones 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
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)
45
Mercado Actual de 32 bits
46
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

47
Temas de estas primeras clases
  • 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
  • Circuitos digitales
  • Máquinas de estado, secuenciales sincrónicos,
    separación datapath-FSM, FPGA
  • Arquitecturas modernas. Parte I
  • RISC y pipelining
  • Algunos detalles de las ISAs ARM
  • Familias
  • Conjuntos de instrucciones Thumb / Thumb 2 / ARM

Pero antes, demos un pantallazo sobre CMOS
48
Circuitos Integrados MOS
  • Ley de Moore Cada 2 años, el doble de
    transistores

NMOS
49
CMOS
Fuente Wikimedia Commons
Write a Comment
User Comments (0)
About PowerShow.com