Tecnologías y Arquitecturas
Parte I
Andrés Djordjalian <[email protected]>
Seminario de Sistemas Embebidos
1er cuatrimestre de 2011
FIUBA
00:51
1 de 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
00:51
2 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ú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…
00:51
3 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 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



00:51
Cuestan menos x transistor
Consumen menos x transistor
Son más rápidos
4 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 (System
on Chip)
 El la manera típica de diseñar
un 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
00:51
5 de 56
Procesadores que vamos a usar
 ARM 7TDMI (  unos u$s 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 u$s 2 )
 Arquitectura RISC
 32 bits
 Lanzado en 2004
 Pipeline de 3 etapas con
branch 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
 Los precios son por microcontroladores con 8K flash y 2K RAM o más
00:51
6 de 56
Ejemplo de uno de gama más alta
 TI OMAP 3530  u$s 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
 TMS320C64x+
 2 DMIPS/MHz
 Procesador digital de señales (DSP)
 Extensión para
multimedia: NEON
 32 bits
 Arquitectura VLIW (8 issue)
 Aritmética de punto fijo de 40 bits
00:51
7 de 56
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
00:51
8 de 56
MOS Technology 6502 (año 1975)
00:51
9 de 56
Algunos de los primeros micros
1985
1970
32 bits
1975
PMOS
1980
| NMOS
| HMOS
68020
| CMOS
80386
Motorola 68000
16 bits
Intel 8086
80286
8088
GI PIC1640
MOS T. 6502
Zilog Z80
8 bits
8008
8080
Motorola 6800
4 bits
00:51
Intel 8048
8051
6805
68HC11
tiempo
10 de 56
Intel 4004
Mercado en el 2006: 8 bits
00:51
11 de 56
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:
1) “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
2) “Microarquitectura”

Es la arquitectura interna del procesador
•
00:51
O sea, cómo está implementada la ISA
12 de 56
Tipos de ISA
Acumulador
Código para:
foo=bar+baz
Load bar
Add
baz
Store foo
Algunos de los
micros con ISA
de este tipo
Prácticamente
todos los de 8
bits
00:51
RegistroMemoria
Load-Store
Load R1,bar Load R1,bar
Add
R1,baz Load R2,baz
Store foo,R1 Add R3,R1,R2
Store foo,R3
Intel 8086,
Motorola 68000
Los de 32 bits
modernos
13 de 56
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 (!)
00:51
14 de 56
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
00:51
15 de 56
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:
<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
8
8
Data in
Data out
Codificador RLE
Valid1
Ready1
Valid2
Ready2
CK
(La interfaz es como la de una memoria FIFO)
00:51
16 de 56
Problema
a resolver
8
8
Data in
Codificador RLE
Valid1
Ready1
Data out
Valid2
Ready2
CK
 ¿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
00:51
17 de 56
Diagramas de estado
 Ejemplo: Detector de secuencia “abac”
entradas = {a,b,c}
salidas = {sí, no}
Moore
Produce “sí” sólo
cuando las últimas
cuatro entradas
fueron “abac”
Mealy
00:51
18 de 56
Actividad
 Formen 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 Mealy
3. ¿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?
00:51
19 de 56
Secuenciales sincrónicos
Máq. de Moore
00:51
Máq. de Mealy
20 de 56
Secuenciales
sincrónicos
i1
o1
o1
o
1
= señal indefinida
00:51
Diagrama de tiempo
21 de 56
Problema a resolver
8
8
Data out
Data in
Codificador RLE
Valid1
Valid2
Ready2
Ready1
CK
 ¿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?
00:51
22 de 56
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)
Control
Datapath
U.C.
Status
 Implementándolo así, la FSM de un codificador RLE
necesita no más que un número manejable de
estados
00:51
23 de 56
Datapath para un codificador RLE
A=Din
¿Qué pasa si
entra un ‘\’?
Data
in
Comparador
TS1
Registro A
Registro B
Data
out
cargar
TS2
cargar
contar
resetar
Valid1
Ready1
00:51
Contador
TC
(terminal
count)
TS3
‘\’
(const)
Valid2
Ready2
24 de 56
Datapath para un codificador RLE
Comparador
contra ‘\’
Din=‘\’
A=Din
Comparador
Data in
TS1
Registro A
Registro B
Data
out
cargar
cargar
contar
resetar
Valid1
Ready1
00:51
TS2
Contador
TC
‘\’
(const)
TS3
Valid2
Ready2
25 de 56
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
‘\’.”
1. ¿Qué condiciones producen la transición del primero
al segundo?
2. ¿Qué salidas tiene que presentar la U.C. durante esa
transición?
00:51
26 de 56
Una Transición (ej.)
Comparador
contra ‘\’
El codificador está
‘almacenando’ un solo
carácter, distinto de ‘\’
?/?
Din=‘\’
El codificador está
‘almacenando’ dos
caracteres iguales,
distintos de ‘\’
A=Din
Comparador
Data in
TS1
Registro A
Registro B
Data
out
cargar
cargar
contar
resetar
Valid1
Ready1
00:51
TS2
Contador
TC
TS3
‘\’
(const)
Valid2
Ready2
27 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
00:51
28 de 56
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
00:51
29 de 56
FPGA - ¿Qué es?
Definición simplificada:
Arreglo de celdas básicas programables cuyas
interconexiones también son programables
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
Arquitectura genérica de FPGA
00:51
Fuente: UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García
30 de 56
FPGA - Flujo de Diseño
Flujo de diseño típico:
Verificación
Entrada
de Diseño
Síntesis
Lógica
Place &
Route
Programación
Lenguaje de descripción de
Hardware:
-VHDL
-Verilog
00:51
Fuente: UBA - Sistemas Embebidos - FPGA – SoftCores – 2010 – Franco Ferrucci, Sebastián García
31 de 56
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
00:51
32 de 56
FSM + Datapath en un HDL
 Para 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 C
2. … o juntar el FSM y el datapath
• Intercalando transferencias de registros en la estructura símil switchcase 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.
00:51
33 de 56
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
00:51
34 de 56
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
00:51
35 de 56
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.
00:51
36 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 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
00:51
37 de 56
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
00:51
38 de 56
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
00:51
39 de 56
Datapath RISC
Patterson, Hennessy; Computer
Organization and Design, The
Hardware Software Interface
Ejemplo de una Instrucción con 3 Operandos:
01001 … 010
Opcode, etc.
00:51
0 0 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0
Reg. destino
Registros fuente
0…1
40 de 56
Datapath RISC + Unidad de Control
00:51
41 de 56
Segmentación (Pipelining)
Ejemplos de
código Assembly:
00:51
LDR R1,[R0]
LDR R3,[R2]
ADD R1,R1,#200
CMP R5,R6
BEQ SonIguales
ADD R5,R5,R4
ADD R5,R6,R7
SUB R4,R4,R5
42 de 56
Segmentación (Pipelining)
00:51
43 de 56
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 de
microcontroladores
como NXP, Atmel,
ST, TI, etc.
 O quienes
necesitan micros
en sus ASICs
• Ej., fabricantes
de teléfonos
celulares
00:51
(Semicast Research)
44 de 56
Mercado Actual de 32 bits
00:51
45 de 56
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  Brownout reset  Puerto JTAG  Etc.
 Los periféricos son un factor importante a tener en
cuenta para decidir qué microcontrolador usar
00:51
46 de 56
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
00:51
Pero antes, demos un pantallazo sobre CMOS…
47 de 56
Circuitos Integrados MOS
 Ley de Moore: Cada
2 años, el doble de
transistores
NMOS
00:51
48 de 56
CMOS
Fuente: Wikimedia Commons
00:51
49 de 56