tecnologías y arquitecturas - indicart carteles · pdf filemicros de los 70s y 80s ......
TRANSCRIPT
03:57 1 de 47
Andrés Djordjalian <[email protected]>Seminario de Sistemas Embebidos
1er cuatrimestre de 2011FIUBA
Tecnologías y ArquitecturasParte I
03:57 2 de 56
Temas de estas primeras clasesIntroducció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 digitalesMáquinas de estado, secuenciales sincrónicos y separación datapath-FSM
Arquitecturas modernas. Parte IRISC y Pipelining
Algunos detalles de las ISAs ARMFamiliasConjuntos de instrucciones Thumb / Thumb 2 / ARM
03:57 3 de 56
¿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últiplesaplicaciones 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…
03:57 4 de 56
¿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 variosEn 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 transistorConsumen menos x transistorSon más rápidos
03:57 5 de 56
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
03:57 6 de 56
Procesadores que vamos a usarARM 7TDMI ( ≥ unos u$s 3 )
Arquitectura RISC32 bits
Lanzado en 1995Pipeline 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 u$s 2 )Arquitectura RISC
32 bitsLanzado 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/MHzLos precios son por microcontroladores con 8K flash y 2K RAM o más
03:57 7 de 56
Ejemplo de uno de gama más altaTI OMAP 3530 ≅ u$s 45, trae dos cores:
ARM Cortex A832 bits
Arquitectura RISCISA ARM (32 bits) y Thumb-2 (16/32 bits)
desde 600 MHz hasta más de 1 GHzArquitectura superescalar (2 issue)
Lanzado en 2009Pipelines de 13 etapas
Caches L1: split, 16KB o 32 KB c/uCache L2: 64 KB a 2 MB
2 DMIPS/MHzExtensió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
03:57 8 de 56
Temas de estas primeras clasesIntroducció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 digitalesMáquinas de estado, secuenciales sincrónicos y separación datapath-FSM
Arquitecturas modernas. Parte IRISC y Pipelining
Algunos detalles de las ISAs ARMFamiliasConjuntos de instrucciones Thumb / Thumb 2 / ARM
03:57 10 de 56
Algunos de los primeros micros
Intel 4004
8008
Motorola 6800
8080
Intel 8086
32 bits
16 bits
4 bits
8 bits
1970 1975 19801985
8088
80286
Intel 8048 8051
6805 68HC11
Zilog Z80
MOS T. 6502
Motorola 6800080386
68020
GI PIC1640
PMOS | NMOS | HMOS | CMOS
tiempo
03:57 12 de 56
Arquitectura de ComputadorasParemos 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 bloquesEj., “arquitectura de computadoras” (refiriéndonos al procesador nomás; no al disco, interfaces, etc.), de la cual hay dos tipos:
1) “Arquitectura de Conjunto de Instrucciones”Instruction-Set Architecture, o ISAEs la arquitectura “vista desde afuera”• Registros, conjunto de instrucciones, esquema de interrupciones,
etc.A esta, a veces se le dice “arquitectura” a secas
2) “Microarquitectura”Es la arquitectura interna del procesador• O sea, cómo está implementada la ISA
03:57 13 de 56
Tipos de ISA
Los de 32 bits modernos
Intel 8086,Motorola 68000
Prácticamente todos los de 8
bits
Algunos de los micros con ISA de este tipo
Load R1,barLoad R2,bazAdd R3,R1,R2Store foo,R3
Load R1,barAdd R1,bazStore foo,R1
Load barAdd bazStore foo
Código para:foo=bar+baz
Load-StoreRegistro-MemoriaAcumulador
03:57 14 de 56
Instrucciones en el 8086 y 68000Las 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,baz68000: ADD.W baz,D0
En el 68000 original, la anterior tardaba 8 ciclos (!)Suponiendo que la memoria respondía sin esperasUn simple MOVE.B D0,D1 tardaba 4 ciclos (!)
Tienen muchos modos de direccionamiento12 en el 8086, 8 en el 68000Incluyendo cosas como:
CMPM.B (A1)+,(A2)+ CMPA.L 100H(A2,D0.W),A3
MultiplicaciónMULU foo,D1 …70 ciclos (!)
03:57 15 de 56
Temas de estas primeras clasesIntroducció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 digitalesMáquinas de estado, secuenciales sincrónicos y separación datapath-FSM
Arquitecturas modernas. Parte IRISC y Pipelining
Algunos detalles de las ISAs ARMFamiliasConjuntos de instrucciones Thumb / Thumb 2 / ARM
03:57 16 de 56
Problema a resolverDiseñ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:
<código de escape, número, cantidad de repeticiones>• 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)
Codificador RLE
Data in
Valid1Ready1
Data out
Valid2Ready2
8 8
CK
03:57 17 de 56
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 escalablesPor 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
Codificador RLE
Data in
Valid1Ready1
Data out
Valid2Ready2
8 8
CK
03:57 18 de 56
Diagramas de estado
Moore
Mealy
Ejemplo: Detector de secuencia “abac”entradas = {a,b,c}salidas = {sí, no}
Produce “sí” sólo cuando las últimas cuatro entradas fueron “abac”
03:57 19 de 56
ActividadFormen grupos
de 2 a 4 personas
1. 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}
2. Lo mismo, pero para una máquina de Mealy3. ¿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?
03:57 22 de 56
Problema a resolver
¿Va a ser un circuito combinacional o secuencial?Que sea un secuencial sincrónicoMás o menos, ¿qué cantidad de estados necesita tener este secuencial?
Codificador RLE
Data in
Valid1
Ready1
Data out
Valid2
Ready2
8 8
CK
03:57 23 de 56
Máquina de estados + DatapathPara 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
Datapath U.C.Status
Control
03:57 24 de 56
Datapath para un codificador RLE
Comparador
Registro A
Contador
‘\’(const)
A=Din
TC (terminalcount)
Data in
Valid1Ready1
Data out
Valid2Ready2
cargar
contar
resetar
Registro B
cargar
TS1
TS2
TS3
¿Qué pasa si entra un ‘\’?
03:57 25 de 56
Datapath para un codificador RLE
Comparador
Registro A
Contador
‘\’(const)
A=Din
TC
Data in
Valid1Ready1
Data out
Valid2Ready2
cargar
contar
resetar
Registro B
cargar
TS1
TS2
TS3
Comparadorcontra ‘\’
Din=‘\’
03:57 26 de 56
Unidad de control del codificadorNo 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 ‘\’.”
1. ¿Qué condiciones producen la transición del primero al segundo?
2. ¿Qué salidas tiene que presentar la U.C. durante esa transición?
03:57 27 de 56
Una Transición (ej.)
Comparador
Registro A
Contador
‘\’(const)
A=Din
TC
Data in
Valid1
Ready1
Data out
Valid2
Ready2
cargar
contar
resetar
Registro B
cargar
TS1
TS2
TS3
Comparadorcontra ‘\’
Din=‘\’
El codificador está‘almacenando’ un solocarácter, distinto de ‘\’
El codificador está‘almacenando’ doscaracteres iguales,
distintos de ‘\’
? / ?
03:57 28 de 56
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
03:57 29 de 56
Cómo sí implimentaríamos hoy ese codificador
Usaríamos una FPGA o un CPLDFPGAs = 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 ArrayEsto es un término medio entre las dos opciones anterioresSignifica 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
03:57 30 de 56
FPGA - ¿Qué es?
Definición simplificada:
Arreglo de celdas básicas programables cuyasinterconexiones también son programables
Arquitectura genérica de FPGA
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
? ? ? ? ?
Fuente: UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García
03:57 31 de 56
FPGA - Flujo de Diseño
Fuente: UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García
Flujo de diseño típico:
Entradade Diseño
SíntesisLógica
Place &Route Programación
Verificación
Lenguaje de descripción de Hardware:-VHDL-Verilog
03:57 32 de 56
Lenguajes de Descripción de HWPara 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 VerilogO 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 sintetizarSe puede usar en dos niveles de abstracción:
Nivel de comportamiento (behavioral level):• Describe la funcionalidad del circuito, similar a un programa de
computaciónNivel 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
03:57 33 de 56
FSM + Datapath en un HDLPara codificarlos, hay dos estilos:1. 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 C2. … 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 sumadorO 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.
03:57 34 de 56
Temas de estas primeras clasesIntroducció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 digitalesMáquinas de estado, secuenciales sincrónicos y separación datapath-FSM
Arquitecturas modernas. Parte IRISC y Pipelining
Algunos detalles de las ISAs ARMFamiliasConjuntos de instrucciones Thumb / Thumb 2 / ARM
03:57 35 de 56
ProcesadoresLo explicado hasta ahora puede usarse para diseñar y fabricar procesadores
Un datapathsimple de ejemplo:
Fuente: S. Furber; ARM System-on-Chip Architecture, 2nd ed; Pearson Education;
2000
03:57 36 de 56
ProcesadoresEn 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 microprocesadoresFrecuentemente, 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.
03:57 37 de 56
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 instruccionesSus argumentos:
Gracias a los compiladores, las instrucciones sofisticadas dejande ser útilesEliminá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
03:57 38 de 56
Características del Estilo RISCArquitectura 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
(no excluyentes)
03:57 39 de 56
El Estilo RISCSe habla de “arquitecturas RISC” versus “arquitecturas CISC”
La mayoría de las arquitecturas planteadas desde entonces son RISCEn 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 procesamientoPero primero veamos un típico datapath RISC
03:57 40 de 56
Datapath RISC
Patterson, Hennessy; ComputerOrganization and Design, TheHardware Software Interface
Reg. destino Registros fuenteOpcode, etc.
01001 … 010 0 … 10 0 000 1 1 1
Ejemplo de una Instrucción con 3 Operandos:
1 1 10 0 0 0 0 0 0
03:57 42 de 56
Segmentación (Pipelining)
CMP R5,R6BEQ SonIgualesADD R5,R5,R4
ADD R5,R6,R7SUB R4,R4,R5
Ejemplos decódigo Assembly:
LDR R1,[R0]LDR R3,[R2]ADD R1,R1,#200
03:57 44 de 56
ARMAcorn era “la Apple británica”. En los 80s creó su propio procesador RISC para sus computadorasAcorn, Apple y VLSI Technology forman ARM en 1990El 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)
03:57 46 de 56
PeriféricosUn microcontrolador es un procesador con memoria y periféricos, todo en un mismo chipEjemplos 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
03:57 47 de 56
Temas de estas primeras clasesIntroducció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 digitalesMáquinas de estado, secuenciales sincrónicos y separación datapath-FSM
Arquitecturas modernas. Parte IRISC y Pipelining
Algunos detalles de las ISAs ARMFamiliasConjuntos de instrucciones Thumb / Thumb 2 / ARM