tecnologias y arquitecturas - indicart carteles … y arquitecturas... · micros de los 70s y 80s...

61
17:28 1 de 56 Andrés Djordjalian <[email protected]> Seminario de Sistemas Embebidos 2do cuatrimestre de 2010 Facultad de Ingeniería de la UBA Tecnologías y Arquitecturas

Upload: vunga

Post on 15-Feb-2018

220 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 1 de 56

Andrés Djordjalian <[email protected]>Seminario de Sistemas Embebidos

2do cuatrimestre de 2010Facultad de Ingeniería de la UBA

Tecnologías y Arquitecturas

Page 2: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 2 de 56

Temas de esta UnidadIntroducció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 modernasRISC, pipelining, superescalares y VLIW, memorias caches y MMU

Medición de performanceDhrystone MIPS y mejores benchmarks

Algunos detalles de los conjuntos de instrucciones ARM

Thumb / Thumb 2 / ARM

viene ahora…

Page 3: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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…

Page 4: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 5: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 5 de 56

Circuitos Integrados MOSLey de Moore: Cada 2 años, el doble de transistores

NMOS

Page 6: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 6 de 56

CMOS

Fuente: Wikimedia Commons

Page 7: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 7 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

Page 8: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 8 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

Page 9: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 9 de 56

Procesadores que Vamos a UsarTI 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

Page 10: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 10 de 56

Temas de esta UnidadIntroducció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 modernasRISC, pipelining, superescalares y VLIW, memorias caches y MMU

Medición de performanceDhrystone MIPS y mejores benchmarks

Algunos detalles de los conjuntos de instrucciones ARM

Thumb / Thumb 2 / ARM

Page 11: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 11 de 56

MOS Technology 6502 (año 1975)

Page 12: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 12 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

Page 13: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 13 de 56

Mercado en el 2006: 8 bits

Page 14: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 14 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

Page 15: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 15 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

Page 16: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 16 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 (!)

Page 17: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 17 de 56

Temas de esta UnidadIntroducció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 modernasRISC, pipelining, superescalares y VLIW, memorias caches y MMU

Medición de performanceDhrystone MIPS y mejores benchmarks

Algunos detalles de los conjuntos de instrucciones ARM

Thumb / Thumb 2 / ARM

Page 18: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 18 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

Page 19: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 19 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

Page 20: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 20 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”

Page 21: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 21 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? ¿Cómo puedo hacer para implementarlas con secuenciales sincrónicos?

Page 22: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 22 de 56

Secuenciales Sincrónicos

Máq. de Moore

Máq. de Mealy

Page 23: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 23 de 56

Secuenciales Sincrónicos

Diagrama de tiempo= señal indefinida

i1

o1

o1

o1

Page 24: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 24 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

Page 25: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 25 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

Page 26: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 26 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 ‘\’?

Page 27: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 27 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=‘\’

Page 28: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 28 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?

Page 29: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 29 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 ‘\’

? / ?

Page 30: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 30 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

Page 31: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 31 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

Page 32: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 33: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 33 de 56

FSM + Datapath en un HDLPara codificarlos, hay dos estilos:

1. Poner la FSM y el datapath en distintas partes del códigoPara implementar la FSM se usa algo similar a un switch-case de C

2. …o juntar el FSM y el datapathIntercalando transferencias de registros en la estructura símil switch-case que se usa para implementar la FSM

(ver ejemplos en archivos separados)

Page 34: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 34 de 56

Temas de esta UnidadIntroducció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 modernasRISC, pipelining, superescalares y VLIW, memorias caches y MMU

Medición de performanceDhrystone MIPS y mejores benchmarks

Algunos detalles de los conjuntos de instrucciones ARM

Thumb / Thumb 2 / ARM

Page 35: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 36: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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.

Page 37: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 38: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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)

Page 39: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 40: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 41: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 41 de 56

Datapath RISC + Unidad de Control

Page 42: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 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

Page 43: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 43 de 56

Segmentación (Pipelining)

Page 44: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 44 de 56

Datapaths para Punto FlotanteLas unidades de punto flotante pueden estar segmentadas o no

Page 45: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 45 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)

Page 46: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 46 de 56

Mercado Actual de 32 bits

Page 47: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 47 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

Page 48: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 48 de 56

Multiple Inicio de InstruccionesComo vimos, un pipeline procesa varias instrucciones al mismo tiempo, pero en cada ciclo sólo se inicia unaPero 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

Page 49: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 49 de 56

Superescalares y VLIW

tiempo

flujo de instrucciones

Se inician de a dos

Una instrucción

Otra

Page 50: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 50 de 56

Memorias CacheLa 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 cacheUn cache de nivel 1 (L1) pequeño y bien rápidoUn cache de nivel 2 (L2) más grande, aunque más lentoQuizás, un L3…Las cache L1 y L2 suelen estar en el mismo chip del procesador

Page 51: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 51 de 56

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

Page 52: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 52 de 56

Intel AtomZ530

32 bitsISA x86 (PC compatible) pero

con núcleo RISC1,6 GHz

Superescalar (2 issue)Lanzado en 2008

Pipelines de 16 etapasCaches L1: split, 32 KB (I) + 24 KB (D)

Cache L2: 512 KBExtensión para multimedia: SSE3

Máx TDP (thermal design power): 2 WVcore = 1,1 V2 DMIPS/MHz

Fabricado con un proceso de 45 nmCuesta aprox. u$s 50

Page 53: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 53 de 56

ARM Cortex A832 bits

Arquitectura RISCISA ARM (32 bits) y Thumb-2 (16/32 bits)

desde 600 MHz hasta más de 1 GHzSuperescalar (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 Por unos u$s 50 se

compra un TI OMAP 3515(= Cortex A8 a 600 MHz

+ un DSP)

Page 54: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 54 de 56

Con sistemas operativos (tipo Linux) se pueden correr varios procesos “simultáneamente”.

El mapeo lo hace una combinación de HW y SWAl 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 y MMU

Memoria del Proceso A

…del B

…del C

mapeo

Almacenamientode las “Páginas”de la Memoria

Virtual

Memoria VirtualMemoria Física

Page 55: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 55 de 56

Temas de esta UnidadIntroducció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 modernasRISC, pipelining, superescalares y VLIW, memorias caches y MMU

Medición de performanceDhrystone MIPS y mejores benchmarks

Algunos detalles de los conjuntos de instrucciones ARM

Thumb / Thumb 2 / ARM

Page 56: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 56 de 56

Medición de PerformanceVelocidad = cant._de_procesamiento / tiempoMIPS (pico) = millones de instrucciones nativas por segundo

No es una buena métrica, porque:1. Las instrucciones individuales de diferentes ISAs no

necesariamente hacen la misma cantidad de procesamiento.2. 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 C1. así puede ser el mismo procesamiento, aunque los micros tengan

diferentes conjuntos de instrucciones.2. así puede emplearse un mix realista de instrucciones.

A los programas que se usan para esto se los llama benchmarks

Page 57: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 57 de 56

DhrystoneProblema: ¿Qué programa usar como benchmark?Dhrystone (1984)

Se lo usa mucho, aunque es cuestionado porque:1. Es pequeño, utiliza poca memoria2. No hace procesamiento en punto flotante3. No es representativo de las aplicaciones actuales4. 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 DMIPSA una máquina que corre Dhrystone n veces más rápido que la VAX, se le atribuyen n DMIPSFrecuentemente se le dice MIPS a secas• Pero no confundirlo con el otro MIPS (pico)

Page 58: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 58 de 56

MFLOPSMFLOPS (megaflops) = Millones de instrucciones de punto flotante por segundoEs 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 nativasPero ¿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 flotanteCuando un procesador incluye una unidad de punto flotante, aumenta mucho su performance medida en MFLOPS

Page 59: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 59 de 56

Mejores BenchmarksSPEC CPU

Estándar para medir performance de computadorasRegularmente actualizado. La versión más reciente es CPU2006Es 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

BDTIPara productos que hacen procesamiento digital de señales (DSP).

Page 60: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 60 de 56

Actividad1. ¿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

2. ¿Qué representa DMIPS dividido por frecuencia del ciclo de máquina?

O sea que su unidad es [ DMIPS / MHz ]

3. ¿Qué métricas podríamos usar para el consumo?Discútanlo en grupos de 2 a 4 personas, en unos minutos comparamos las respuestas

Page 61: Tecnologias y Arquitecturas - INDICART Carteles … y Arquitecturas... · Micros de los 70s y 80s ... •GPS •telemetría •routers •señalización ... en la gran mayoría de

17:28 61 de 56

Temas de esta UnidadIntroducció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 modernasRISC, pipelining, superescalares y VLIW, memorias caches y MMU

Medición de performanceDhrystone MIPS y mejores benchmarks

Algunos detalles de los conjuntos de instrucciones ARM

Thumb / Thumb 2 / ARM