-hardware pppara sistemas empotrados- · lluvia (vehículos convencionales, diodos). imagen: ccd...

86
-Hardware para sistemas empotrados- [email protected] Sistemas empotrados y ubicuos. MUII.

Upload: lethu

Post on 30-Jul-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

-Hardware para sistemas empotrados-p [email protected]

Sistemas empotrados y ubicuos. MUII.

ÍndiceÍndice Introducción / HW para sistemas empotrados Conceptos/Técnicas básicas

Arquitectura básica computador Von-Neumann Mejoras y características de un computador actual

Ejemplos: Sensores / Sistemas Procesadores Computadores modulares

Problemas/Ideas/Técnicas utilizadas en s. empotrados Normativa (PdM)

2

BibliografíaBibliografía

Marwedel, P. Embedded System Design. Springer 2006 (2nd ed, 2011).y g p g ( ) Yaghmour, K., Masters, J., Ben-Yossef, G., Gerum, P., Building Embedded Linux

Systems (2nd ed.), O’Reilly, 2008. C t li J D i i E b dd d H d 2 d Editi O’R ill M di 2005 Catsoulis, J. Designing Embedded Hardware. 2nd Edition. O’Reilly Media, 2005. Edward A. Lee and Sanjit A. Seshia, Introduction to Embedded Systems, A Cyber-

Physical Systems Approach, Second Edition, http://LeeSeshia.org, ISBN 978-1-312-42740 2 201542740-2, 2015.

https://software.intel.com/en-us/articles/harvard-iot-course https://software.intel.com/en-us/articles/intel-internet-of-things-short-course

Stallings, W. Organización y arquitectura de computadores. Prentice Hall. 7ª Edición, 2006.

Patterson, D. A., Hennessy, J. L. Computer Organization and Design. Morgan-Kaufmann. 4ª edición, 2009.

3

IntroducciónIntroducción No existe

“Hardware estándar de sistemas empotrados”

ya que no existe un“Sistema empotrado estándar”

Sí hay características particulares de un sistema empotrado: Bajo consumo / consumo regulable (alimentación, memoria) Tiempo real. Tolerancia a fallos Inmunidad a radiación / a ruido electromagnético

R b d l di i i / l d d l i Robustez del dispositivo/encapsulado del sistema Altas prestaciones / Ancho de banda garantizado Etc Etc.

4

Sistema empotrado (MSerra U Victoria)Sistema empotrado (MSerra, U Victoria)Cualquiera que incluya un dispositivo programable, con propósito específico1 y que

disponga de múltiples unidades de interfaz para medir, controlar y/o manipular el p g p p y pentorno.

( http://webhome.cs.uvic.ca/~mserra/HScodesign.html Micaela Serra )

1 nota: “no de propósito general”5

Sistema empotrado (CMU 2005)Sistema empotrado (CMU-2005) Undergraduate Embedded System Education at Carnegie Mellon

( )(ACM Transactions on Embedded Computing Systems, Vol. 4, No. 3, August 2005, Pages 500–528)

Embedded applications are very diverse and span a tremendous range of pp y p gcomplexity.

Indeed embedded computing is more readily defined by what it is not (it is not Indeed, embedded computing is more readily defined by what it is not (it is not generic application software executing on the main CPU of a “desktop computer”) than what it is.

Embedded CPUs comprise the vast majority of processors, although many of those processors are used in very high-volume applications.

We believe that it is the rare embedded system developer who will need, or even be able to absorb, expertise in all areas of embedded systems.p y

6

Características S empotrado (CMU)Características S. empotrado (CMU) From an application perspective, CMU think of embedded computing as falling

into the following distinct categories:into the following distinct categories: Small and single microcontroller applications

Control systems

Distributed embedded control

System on chip

Networking

Embedded PCs

Critical systems

Roboticsobot cs

Computer peripherals

Wireless data systems

Signal processing Signal processing

Command and control.

7

Características S empotrado (CMU)Características S. empotrado (CMU) From an application perspective, CMU think of embedded computing as falling

into the following distinct categories:into the following distinct categories: Small and single microcontroller applications. Contador de personas, Riego automático, …

Control systems. Control de posición de un motor eléctrico (robot, seguimiento cámara, control de velocidad de vehículo) control de temperatura HVAC etcde velocidad de vehículo), control de temperatura HVAC, etc.

Distributed embedded control. Sistemas de automoción: ABS, Airbags, ESP, etc

System on chip. Reproductores multimedia, máquina de fotos, teléfono inalámbrico, móvil, etc.

Networking. Dispositivos de conexión: routers, switches, wi-fi, etc.

Embedded PCs. Sistemas de control de una fábrica, una planta industrial, grua robotizada, etc.

Critical systems. Seguridad de vehículos (coches, aviones, satélites), instrumental médico, etc.

Robotics. Robots industriales, exploradores, vehículos autónomos, robots caminantes, juguetes, etc.

Computer peripherals. Controladores gráficos, de red, de audio, Impresoras, proyectores, etc.

Wireless data systems. Mandos a distancia, dispositivos bluetooth (p.e. manos libres), etc.y , p (p ),

Signal processing. Procesamiento de audio/vídeo, filtros digitales de sonido, etc.

Command and control. Sistemas de control de vehículos (coches, aviones, trenes, tranvías). Sistemas de señalización (p.e. trenes)(p )

8

Campos de actuación de s empotradosCampos de actuación de s. empotrados

9

(V. Rodellar, Informática Industrial, GII)

More Moore / More than MooreMore Moore / More than Moore

10

Campos: automoción (I)Campos: automoción (I)

11

(V. Rodellar, Informática Industrial, GII)

Campos: automoción (II)Campos: automoción (II)

12

(V. Rodellar, Informática Industrial, GII)

Curso Harvard : Secure and Intelligent Internet of Things (2014)

13

Curso Harvard : Secure and Intelligent Internet of Things (2014)

14

Curso Harvard : Secure and Intelligent Internet of Things (2014)

15

Diseño de un sistema empotradoDiseño de un sistema empotrado Necesario considerar: Hardware + Software

Metodología apropiada: basada en reutilización Codiseño HW-SW

16

Sistema empotrado: componentesSistema empotrado: componentes En general, el sistema empotrado se usa como controlador de un bucle:

Componentes: Entradas. Sensores, Circuitos Sample-&-Hold, Conversores A/D … Salidas. Displays, Conversores D/A, Actuadores (p.e. electro-mecánicos) Comunicaciones. Requisitos: Eficiencia, mantenibilidad, robustez ante ruidos, … Comunicaciones. Requisitos: Eficiencia, mantenibilidad, robustez ante ruidos, … Unidades de proceso. ASICs, Procesadores, DSPs, Multimedia, VLIW, Microcontroladores,

lógica reconfigurable, … Memorias Memorias

17

Sistema empotrado: EntradasSistema empotrado: Entradas. Sensores:

P á i d i d fí i P V l id d A l ió T Prácticamente para cada magnitud física, p.e. Peso, Velocidad, Aceleración, Temperatura, Voltaje, Corriente eléctrica, …, detectores de sustancias químicas, humedad, imagen, biométricos, biomédicos, …

Ci i S l & H ld Circuitos Sample-&-Hold

C n ers res A/D Conversores A/Da) Flashb) Aproximaciones

sucesivas

18

SensoresSensores

P á i l i i d fí i Ej l Prácticamente cualquier magnitud física. Ejemplos: Aceleración (pequeña masa, mueve los cables

conductores que la rodean, cambia su resistencia).

Lluvia (vehículos convencionales, diodos). Imagen: CCD (mejor calidad de imagen) / CMOS (más económicos, permiten ser

integrados junto con circuitería lógica menor consumo)integrados junto con circuitería lógica, menor consumo). Biometría (huellas, iris, cara, retina…). Ojos artificiales (cámara más interface eléctrico/sonoro). RFID (Radio Frequency Identification). Identificación de objetos, animales, personas.

(tarjeta de transportes). Otros: presión, proximidad, control de motores (cod. óptico), efecto Hall, etc.

19

Sensores (características)Sensores (características) Miden alguna magnitud física. Pueden estar empaquetados junto con procesadores,

conversores A/D o D/A, constituyendo módulos “inteligentes” que forman parte del IoT.conversores A/D o D/A, constituyendo módulos inteligentes que forman parte del IoT. Características:

magnitudmedida: x(t) f(x(t)) frecuentemente función afín: f(x(t) = A· x(t) + B

Sensibilidad. Constante de proporcionalidad “A”

Rango operativo: Normalmente los valores a medir son limitados entre L y H, t t d 20ºC +70ºC (f ió fí lí it )p.e. temperatura de -20ºC a +70ºC (función afín con límites)

Precisión p: diferencia más pequeña en valor absoluto que es capaz de distinguir (p.e. 0,01ºC)

Rango dinámico: D=(H-L)/p normalmente medido en decibelios: DdB=20 log10(H-L)/p

Quantization: sensor digital mide con n-bits, solo distingue 2n medidas. Idealmente coincide con la precisión (dos medidas con valores consecutivos difieren en 1 bit)

Noise: diferencia entre la magnitud observada (medida) y el valor real de la misma. El ruido RMS ( t ) l l d áti di d l id t d l RMS (root mean square) es el valor cuadrático medio del ruido en todo el rango.

Signal to Noise ratio: Si X es el valor cuadrático medio de la señal y N el del ruido, se mide en decibelios y es: SNR=20 log10X/N

S li d h t l ñ l bti i t l l t l Sampling: cuando hay muestreo, la señal se obtiene a intervalos normalmente regulares (periodo de muestreo)

20

Sensores (ejemplo: temperatura DS18B20)Sensores (ejemplo: temperatura, DS18B20)

S “i li ” di i l di l bl Sensor “inteligente”: genera temperatura en digital, dispara alarmas, programable

21

Sensores (ejemplo: temperatura DS18B20)Sensores (ejemplo: temperatura, DS18B20)

Key FeaturesUnique 1-Wire® Interface Requires Only One Port Pin for Communication Reduce Component Count with Integrated Temperature Sensor and EEPROMReduce Component Count with Integrated Temperature Sensor and EEPROM

Measures Temperatures from -55°C to +125°C (-67°F to +257°F) ±0.5°C Accuracy from -10°C to +85°C Programmable Resolution from 9 Bits to 12 Bits gNo External Components Required

Parasitic Power Mode Requires Only 2 Pins for Operation (DQ and GND) Simplifies Distributed Temperature-Sensing Applications with Multidrop Capability

Each Device Has a Unique 64-Bit Serial Code Stored in On-Board ROM Flexible User-Definable Nonvolatile (NV) Alarm Settings with Alarm Search Command Identifies Devices with Temperatures Outside Programmed Limits Available in 8-Pin SO (150 mils), 8-Pin µSOP, and 3-Pin TO-92 Packages

22

Conversores A/DConversores A/D Realizan la conversión de una señal analógica a digital. Varias técnicas.

Flash converters: rápidos, costosos (paralelos). 2n -1 comparadores.p.e. 12 bits 4095 comparadores.¿ Precisión de las resistencias ?

Aproximaciones sucesivas: Basados en conversión D/A, más lento(búsqueda binaria)

¿ Precisión de las resistencias ?

23

Circuitos Sample & HoldCircuitos Sample & Hold Evitan variaciones en la señal de entrada de los conversores A/D que podrían

corromper la medidacorromper la medida.

Son “memorias analógicas”, recuerdan el nivel de una señal durante un tiempo determinado.

Permiten conectar varias entradas analógicas a un único conversor A/D.

Permiten construir conversores A/D por aproximaciones sucesivas.

24

Sistema empotrado: Salidas (I)Sistema empotrado: Salidas (I) Displays

Á i l i d P j l ( li i d ) Área muy importante para los sistemas empotrados. Por ejemplo (pero no limitado a) en: Teléfonos móviles, Navegadores GPS, Instrumentación de automóviles (cuadro de instrumentos,

radio-CD, etc)

Diferentes tipos de dispositivos:Diferentes tipos de dispositivos: LCD

Organic displays (OLED)

25

Sistema empotrado: Salidas (II)Sistema empotrado: Salidas (II) Dispositivos Electro-mecánicos

R bó i A i ió M d li Robótica, Automatización, Modelismo, etc.

26

Sistema empotrado: Salidas (III)Sistema empotrado: Salidas (III)

Actuadores, mecatrónica: une ingeniería mecánica, ingeniería electrónica, ingeniería de control e ingeniería informática

Motores piezoeléctricos, de ultrasonidos: p.e. autofocus de cámara, RMN.

No se ven afectados por campos magnéticos. Pequeños, par motor elevado.

27

Sistema empotrado: Conversores D/ASistema empotrado: Conversores D/A Realizan la conversión de una señal digital, binaria, a analógica. Varias técnicas.

M d l ió d h d l Modulación de ancho de pulsos

Conversión de 1-bit mediante la modulación sigma-delta

Redes de resistencias o condensadores preajustadosp j

PWM

28

Periféricos analógicos/de control (I)Periféricos analógicos/de control (I) Cuatro tipos de periféricos de control:

L ló i RIAA Lectura analógica Accionamiento analógico Lectura digital

RIAA(ejemploconformador)

Accionamiento digital

(Fundamentos de los Computadores, Pedro de Miguel, Paraninfo 2004)

29

Periféricos analógicos/de control (II)Periféricos analógicos/de control (II) Etapa de aislamiento:

(para señal digital)

30

Periféricos analógicos/de control (III)Periféricos analógicos/de control (III) Manejo de señales analógicas:

Conversor digital-analógico

Conversor analógico-digital (aprox. sucesivas)Co e so a a óg co d g a (ap o suces as)

31

Sistema empotrado: Comunicaciones (I)Sistema empotrado: Comunicaciones (I) Canales: entidades abstractas, caracterizadas por las propiedades de la

comunicación como ancho de banda o inmunidad al ruidocomunicación, como ancho de banda o inmunidad al ruido.

Medio de transmisión: soporte físico de la comunicación, como cable, radio (wi-fi, bluetooth), medio óptico (infrarrojos, fibra óptica).

Múltiples requisitos, p.e.: Eficiencia: buses, conexiones punto a punto, consumo de energía, etc. M t ibilid d f ilid d d ió / i ió j t t Mantenibilidad: facilidad de reparación y/o revisión, ajuste, etc. Robustez: temperaturas extremas, influencia en voltajes y frecuencias, … Capacidad de trabajar bajo condiciones de Tiempo Real, Tolerancia a fallos

Robustez ante ruidos: cableado simple/diferenciala) Cableado simple b) cableado diferencial

32

Sistema empotrado: Comunicaciones (II)Sistema empotrado: Comunicaciones (II)

Buses de sensores/actuadores: Comunicación entre dispositivos simples, como p p ,pulsadores o iluminadores, con el equipo de proceso.

Buses de campo (field busses): Con el mismo propósito de los buses de sensores y Buses de campo (field busses): Con el mismo propósito de los buses de sensores y actuadores pero estructurados para obtener mayores prestaciones. Ejemplos: CAN: Bosch e Intel. Automoción. Señales diferenciales, Arbitraje CSMA/CA. 10kb/s a 1Mb/s. Latencia

máxima de 134 us (alta prioridad). Codificación similar a RS-232.máxima de 134 us (alta prioridad). Codificación similar a RS 232.

TTP: Time triggered protocol. Para sistemas de seguridad tolerantes a fallos, por ejemplo, los airbagsde un vehículo.

FlexRay: Consorcio BMW, DaimlerChrysler, GeneralMotors, Ford, Bosch, Motorola, Philips. y y pCombinación de protocolos TTP (variante) y byteflight.

MAP: Manufacturing Automation Protocol. General Motors. Diseñado para interconectar dispositivos habituales en fábricas de coches.

EIB/KNX: European Installation Bus. Diseñado para viviendas inteligentes. KNX es la versión actualizada.

33

Sistema empotrado: U de Proceso Diferentes alternativas: de lo específico a lo general… Eficiencia.

Sistema empotrado: U. de Proceso.

ASICs: “custom hardware”Desarrollo máscara ~ 100.000 € Full custom … semi-custom/gate arrayg y

Structured design

Cell libraries, IP-based design, hard and soft macros

Multi-project wafers Multi project wafers

Lógica reconfigurable: FPGAExcelente relación potencia/coste

Procesadores de propósito general: CPU/DSP Procesadores de propósito general: CPU/DSPGran flexibilidad. Múltiples posibilidades: Procesadores 8-32 bits, Microcontroladores, DSPs, VLIW, Procesadores multimedia, etc.

34

Sistema empotrado: FPGASistema empotrado: FPGA

35

(V. Rodellar, Informática Industrial, GII)

Sistema empotrado: Memorias ISistema empotrado: Memorias I.Almacenamiento de datos, programas, configuraciones en: CPU / ASICs / FPGA

Eficiencia en cuanto a: Tiempo de ejecución:

¿ influencia de la memoria ? Tamaño del código:

¿ dispositivos de memoria / compilador ? Consumo de energía: g

¿ jerarquía de memoria ?

36

Sistema empotrado: Memorias IISistema empotrado: Memorias II.Almacenamiento de datos, programas, configuraciones en: CPU / ASICs / FPGA

Eficiencia en cuanto a: Tiempo de ejecución: ¿ influencia de la memoria ? Tamaño del código: ¿ dispositivos de memoria / compilador / ISA ?g ¿ p p Consumo de energía: ¿ jerarquía de memoria / tamaño ?

37

Ejemplos:Ejemplos: Robot escalador(A tailless timing belt climbing platform utilizing dry adhesives with mushroom caps)

http://www.youtube.com/watch?v=tont-BzM1II “S ” Robot “Sand Flea”

(Boston Dynamics: Changing Your Idea of What Robots Can Do)

http://www youtube com/watch?v=6b4ZZQkcNEohttp://www.youtube.com/watch?v=6b4ZZQkcNEo “STARMAC”(The Stanford/Berkeley Testbed of Autonomous Rotorcraft for Multi Agent Control)(The Stanford/Berkeley Testbed of Autonomous Rotorcraft for Multi-Agent Control)

http://hybrid.eecs.berkeley.edu/starmac/ MIT Robotic Cheetah MIT Robotic Cheetah(MIT Biomimetic Robotics Laboratory)

http://newsoffice.mit.edu/2014/mit-cheetah-robot-runs-jumps-0915http://newsoffice.mit.edu/2014/mit cheetah robot runs jumps 0915

38

ÍndiceÍndice Introducción / HW para sistemas empotrados Conceptos/Técnicas básicas

Arquitectura básica computador Von-Neumann Computador actual de propósito general

Ejemplos: Procesadores Computadores modulares

Problemas/Ideas/Técnicas utilizadas en s. empotrados Normativa (PdM)

39

Computador Von Neumann (I)Computador Von-Neumann (I) Computador “completo”, dotado de los periféricos necesarios: Procesador Sistema de Memoria (RAM + ROM, niveles, MMU) Entrada/Salida: módulos / periféricos Buses (jerarquía, características)

DireccionesCPU

Datos

Control

Memoria

PrincipalControl

Unidad de E/S

40

Computador Von Neumann (II)Computador Von-Neumann (II) Unidad de Entrada/Salida

Direcciones

DatosCPU

Control

Módulo de E/S

41

Computador personal actual (PC / WS)Computador personal actual (PC / WS)

PCH: Platform

Core2-duo Core i5/i7 (P55)

MCH: Memory controller hubICH: I/O controller hub

PCH: Platformcontroller hub

42

ProcesadorProcesador Componente del computador que ejecuta las

instrucciones del programa. Manipula y mueve los datos.

Inicialmente implementado en placas (múltiples chips) Actualmente un solo chip que integra otros componentes

(M i hé MMU l d áfi )(Memorias caché, MMU, controlador gráfico, etc.) Se caracteriza por:

Ancho de palabra (4 8 16 32 64 bits 1024 bits) Ancho de palabra (4, 8, 16, 32, 64 bits, … 1024 bits) Velocidad de reloj (pocos MHz hasta 5 GHz) Juego de instrucciones: CISC / RISC / VLIW / DSPJ g Implementación: “Convencional” / Segmentada / Superescalar

43

Procesador: CISC / RISC / VLIW / DSPProcesador: CISC / RISC / VLIW / DSP

CISC RISC

Énfasis en el hardware Énfasis en el software

Utiliza instrucciones complejas,(la mayoría multiciclo)

Define/emplea instrucciones simples uniciclo(implementa también multiciclo)

Arquitectura memoria-memoria:Carga y almacenamiento puedenformar parte de otras instrucciones

Arquitectura registro-registro:instrucciones “ load / store ” independientes

Tamaño de código reducido,baja velocidad de reloj

Tamaño de código considerable,elevada velocidad de reloj

Unidad de control compleja. Unidad de control sencilla.Sili i di ibl t f iUnidad de control compleja.

Área de silicio importante. Silicio disponible para otras funciones:registros, caché, MMU, etc.

implementación CISC/RISCp /

44

Memoria de programa eficienteMemoria de programa eficiente

CISC. Es uno de sus principales objetivos:p p j RISC: ejecución más rápida CISC: Una instrucción tiene mayor contenido semánticoy Frente a la tendencia actual de los µP de propósito general

(RISC), tiene sentido usar CISC en los sistemas empotrados. Ejemplo:

http://www.freescale.com/webapp/sps/site/homepage.jsp?code=PC68KCF

Técnicas de compresión:Al i i id d d difi d Almacenamiento comprimido y uso de decodificador

Uso de juego de instrucciones alternativo (ARM THUMB) U d di i i

45

Uso de diccionarios

Instrucciones comprimidas (I)Instrucciones comprimidas (I) Con instrucciones comprimidas se limita:

El tamaño de la memoria (RAM y ROM) necesaria La energía necesaria para hacer el fetch de instrucciones

Objetivos de diseño: Evitar que se añada penalización al ejecutar (tiempo).q p j ( p ) Decodificación muy rápida. Codificación puede ser lenta. Resolver el problema de los saltos.

46

(Memoria de programa eficiente)

Instrucciones comprimidas (II)Instrucciones comprimidas (II) Segundo juego de instrucciones: Utilización de un formato más compacto Se restringe/impide el uso de algunas características: p.e.

‘ d d ’ d ó‘predicados’ en cada instrucción Ejemplo: ARM (32 bits) instrucciones THUMB

Coste incrementado en herramientas de desarrollo(Memoria de programa eficiente)

47

Instrucciones comprimidas (III)Instrucciones comprimidas (III) Uso de diccionarios: Almacenar cada instrucción diferente una única vez

¿Qué se hace con los datos inmediatos?

Uso de una ‘lookup table’ para acceder al ‘diccionario’ Los punteros pueden ser de tamaño muy reducido

Denominaciones: almacenamiento de dos niveles, ‘procedure exlining’, nanoprogramación

48

exlining , nanoprogramación(Memoria de programa eficiente)

Ejecución eficiente (Procesador)Ejecución eficiente (Procesador)

“Convencional”Convencional

pipeline

superescalar

49

Procesador (superescalar)Procesador (superescalar)

atio

n tio

ns

Superescalar

I iInstruction

Decode Win

dow

Res

erva

Stat Execution

Retire d

Superescalar

Instruction Fetch

. . . Decode and

Rename

. . .

Inst

ruct

ion Issue

ion

ons

. . . and Write Back

I

Res

erva

tiSt

atio

ExecutionEjemplo, falsas dependenciasdiv r10, r3, r5mul r3, r2, r2

Ventana de instrucciones:

add r3, r3, r10add r10, r8, r9

no hay dependencias de control ni falsas dependencias ( http://www.informatik.uni-augsburg.de/~ungerer/books/proc-arch/procarch00-01/pr00-7.pdf )

( http://www.informatik.uni-augsburg.de/~ungerer/books/proc-arch/prslides00-01.html ) ( http://www.informatik.uni augsburg.de/ ungerer/books/proc arch/prslides00 01.html )

50

Procesador (ejemplo P6)Procesador (ejemplo, P6)

51

Procesador (VLIW / Superescalar)Procesador (VLIW / Superescalar)

52

Procesador (VLIW Superescalar)Procesador (VLIW - Superescalar)• Hardware más sencillo, simplifica:

D difi ió • Facilita:DecodificaciónDetección de dependencias de datosEmisión de instruccionesShelving

• Facilita:Elevada frecuencia de relojMayor número de unidades funcionalesg

RenombradoDespacho de instruccionesReordenamiento de las instrucciones

• Mayor tamaño y ancho de banda para

• Requiere:

• Compilador más complejo:Detectar y resolver dependencias:

Datos: Verdaderas Antidependencias Dependencias de escritura

• Mayor tamaño y ancho de banda para la memoria

• Imposible programar en ensamblador

Datos: Verdaderas. Antidependencias. Dependencias de escritura.Control

Conocer detalles particulares de la arquitectura e implementación del procesador y sistema de memoria:

Tipo y número de unidades funcionalesLatencia y “tasa de repetición” de cada unidad funcionalTiempos de espera del sistema de memoria (acierto/fallo en cache)

53

Procesador DSP (I)Procesador DSP (I) DSP, Digital Signal Processor. Procesador especializado en ejecutar de forma eficiente las

operaciones propias del procesado digital de señal.

La operación típica del procesado de señal es el “multiply-accumulate”:accumulate :

A A + B x C Se puede hacer con enteros o en coma flotante Se puede hacer con enteros o en coma flotante. El redondeo (FP) puede ser doble (en cada operación) o único

(como si fuese una sola operación: fused MAC o FMAC).( p )

54

Procesador DSP (II)Procesador DSP (II)

Proceso digital de señal:Proceso digital de señal:

y[n] = (c[k] * x[n-k])+Z-1

c[0]X[n]

Z 1

+Z-1

c[1]

c[2]

- Sumas- Productos

Retardos+

c[2] - Retardos- Manejo de vectores/matrices

Normalmente se requieren múltiples operaciones de suma y producto.

A su vez, suma y producto necesitan:- fetch de dos operandos/ciclo- realizar suma y producto- almacenar el resultado

El aspecto crítico puede ser el fetch de dos operandos en un solo ciclo de instrucción.

55

DSP (III)DSP (III)

56

Procesador DSP (IV)Procesador DSP (IV)

MR:=0; A1:=1; A2:=n-2; MX:=x[n-1]; MY:=a[0];MX: x[n 1]; MY: a[0];

for (j=1; j<=n; j++) {MR:= MR + MX*MY;MX:= x[A2];MY:= a[A1];MY:= a[A1];A1++; A2--;

}

(+ 0 overhead loop insts.)

TOT en DSP: 1 inst/iteration

ADSP 2100 DSP processor

57

ADSP 2100 DSP processor

Procesador DSP (V)Procesador DSP (V)

ADSP 2100 DSP processor

58

ADSP 2100 DSP processor

Procesador DSP Técnicas (I) Modos de direccionamiento específicos

Procesador DSP. Técnicas (I)

Ring buffers (solo disponibles los n últimos elementos de x)

59

Procesador DSP Técnicas (II) Unidades independientes de generación de direcciones

Procesador DSP. Técnicas (II)

Para trabajar en tiempo real Bancos de memoria múltiples

B d h é Bancos de registros heterogéneos (propósito general + específicos)

Instrucciones producto/acumulación (FMAC)A i é i d ió Aritmética de saturaciónEjemplo: 0111+1001 = (1)0000 –aritmética convencional-( )

0111+1001 = 1111 –aritmética de saturación-

Aritmética de coma fija (reducir coste y consumo):s

60

Procesador (extensiones multimedia)Procesador (extensiones multimedia)

R1: R2:R1: R2:

x1 x2 x3 x4 y1 y2 y3 y4

* * * *

z[i] = x[i] * y[i]

R3: z1 z2 z3 z4

• Modelo SIMD: una operación común a todos los datos• Datos empaquetados en registros compartidos o especializados

61

Eficiencia Consumo de energía IDynamic Power Management

Eficiencia. Consumo de energía I.

Se dispone de varios modos de bajo consumo, además del normal de “operación”.

El paso de uno a otro modo tiene coste. El consumo global puede reducirse.

Ejemplo (StrongARM):

Run

400mW

Idle Sleep90s

50mW 160W50mW 160W

Run state: Procesador operativo

Idle state: Solo monitoriza interrupciones

Sleep state: Prácticamente toda la actividad del chip está desactivada

62

Eficiencia Consumo de energía IIEficiencia. Consumo de energía II. Fundamento:

Dynamic Voltage Scaling

A) El consumo de energía en circuitos CMOS crece de forma cuadrática con la tensión de alimentación y de forma lineal con la frecuencia (aprox.)

P = Vdd2 fdd

B) La máxima frecuencia de reloj crece de forma lineal con la tensión de alimentación (aprox.)

f = Vddf Vdd

Al reducir la tensión de alimentación: disminuye el consumo de forma cuadrática

crece el tiempo de proceso (disminuye la frecuencia máxima) de forma lineal

Implementación: Permitir diversos niveles de tensión de alimentación y conmutar de uno a otro en función

de los requisitos que se dan en cada instante.q q

63

Eficiencia Consumo de energía IIIEficiencia. Consumo de energía III. Ejemplo1 (Ishihara –Yasuura, 1998)

P d d b j 2 5V 4 0V 5 0V

Dynamic Voltage Scaling

• Procesador que puede trabajar a 2,5V, 4,0V y 5,0V.

• Energía consumida por ciclo/frecuencia máxima/Período de reloj según tabla:

V [volts] 5 0 4 0 2 5Vdd[volts] 5,0 4,0 2,5

Energía/ciclo [nJ] 40 25 10

fmax [MHz] 50 40 25

• Tarea a realizar: requiere 109 ciclos y tiene un plazo de ejecución de 25 segundos

S l i

t de ciclo [ns] 20 25 40

• Soluciones:

V2

deadline52109 Ciclos @ 50 MHz V2

deadline

109 Ciclos @ 40 MHz25 J52

V2

deadline

750 MCiclos @ 50 MHz250 MCiclos @ 25 MHz

52

t(s)5 10 15 20 25

42

2,5240 J

t(s)5 10 15 20 25

42

2,52

t(s)5 10 15 20 25

32,5 J42

2,52

64

Memoria (sistema)Memoria (sistema) Jerarquía de memorias

CPUCPU

DirDatosControl

Caché L2

Caché L1i Caché L1d

MemoriaPrincipal

DirDatosControl

MemoriaPrincipal

Entrada/Salida

Velocidad / Protección / Espacio direccionable (Mca/MV).

Disco

65

Memoria virtual + cachéMemoria virtual + cachéDv

PV desp. Tipo deacceso

M ca

M P desp.

Df

bloque M ca byte

A ctua lización

etiqueta

Fallode página

M cabloque M ca byte

F allo M ca

M M U

A cceso a la T.P.

Accesono vá lido

etiqueta

Inform aciónde traducc ión

M p

T P

Velocidad / Protección / Espacio direccionable

Palabraa/desdela CPU

p

66

Buses (I)Buses (I) Jerarquía de buses en los sistemas reales:

La velocidad de transmisión por un bus es menor cuanto mayor sea la distancia a recorrer por las señales: retardos de propagación, degradación de señal, acoplamiento

t i ñ l lé t i t Solución:

entre varias señales eléctricas, etc.

establecer una jerarquía, independizando capas.j q , p p

Procesador MemoriaBus procesador-memoria

Adaptadorback-plane Buses de E/S

Bus backplane Controlador E/S

Controlador E/SControlador E/S

67

Buses (II)Buses (II)

Temporización: Síncrona (basada en reloj)

Asíncrona (propagación de señales) Asíncrona (propagación de señales)

Modo de operación (protocolo): Síncrono

Asíncrono

Isócrono …

Ej l d ió T i ió I ó Ejemplo de operación Transmisión Isócrona:Transacciones en que debe asegurarse que cada bloque de datos se propaga cumpliendo unos plazos estrictos de tiempo. Por ejemplo, en transmisiones multimedia en que se ha de asegurar que el audio y eltransmisiones multimedia, en que se ha de asegurar que el audio y el video están sincronizados aunque se envíen en tramas diferentes.

68

Buses (III)Buses (III) Transmisiones Isócronas. Ejemplo

Ravi Budruk, Don Anderson, Tom Shanley,“PCI Express System Architecture”, MindShare Inc,

20032003

69

ÍndiceÍndice Introducción / HW para sistemas empotrados Conceptos/Técnicas básicas

Arquitectura básica computador Von-Neumann Computador actual de propósito general

Ejemplos: Procesadores Computadores modulares

Problemas/Ideas/Técnicas utilizadas en s. empotrados Normativa (PdM)

70

Ejemplo: Procesadores ARMEjemplo: Procesadores ARM ARM: Advanced RISC Machine. RISC de 32 bits (arquitectura Load/Store).

I t i d t ñ fij (32 bit ) + j Th b d 16 bit ARM 8 64 bit Instrucciones de tamaño fijo (32 bits) + juego Thumb, de 16 bits. ARMv8: 64 bits.

Procesadores simples, inicialmente para aplicaciones de baja potencia / consumo.

Para compensar su simplicidad, se añaden algunas particularidades:p p g p Ejecución condicional de la mayoría de las instrucciones.

Unidad de desplazamientos hardware de 32-bit que puede utilizarse con la mayoría de las instrucciones aritméticas y en el cálculo de direcciones.y

ARM: arquitectura con licencia comercial. Múltiples fabricantes: Alcatel-Lucent, Apple Inc., Atmel, Broadcom, Cirrus Logic, Digital Equipment Corporation, Freescale, Intel (through DEC), LG, Marvell Technology Group, Microsoft, NEC, Nuvoton, Nvidia, NXP (previously Philips), Oki, Qualcomm, Samsung, Sharp, STMicroelectronics, Symbios Logic, Texas Instruments, VLSI Technology, Yamaha and ZiiLABS.

Algunas denominaciones: … Apple: ARM6, DEC: StrongARM, Intel: Xscale

En enero de 2008 se habían fabricado más de 10.000 millones de ARM cores En enero de 2008 se habían fabricado más de 10.000 millones de ARM cores

Solo en 2010 se vendieron más de 6.100 millones de procesadores ARM.

en.wikipedia.org: 2011, ARM's customers reported 7.9 billion ARM processors hi d 95% f t h 90% f h d di k d i 40% f di it l t l i i shipped: 95% of smartphones, 90% of hard disk drives, 40% of digital televisions …

71

Ejemplo procesadores ARMEjemplo procesadores ARM Ejecución condicional (“predicados” en cada instrucción):

Algoritmo de Euclides para calcular el MCD: Algoritmo de Euclides para calcular el MCD:while(i!=j) {

if (i > j)i = i - j;

elsej = j - i;

}

Con instrucciones ARM:loop CMP Ri, Rj ; set condition "NE" if (i != j),loop CMP Ri, Rj ; set condition NE if (i ! j),

; "GT" if (i > j),; or "LT" if (i < j)

SUBGT Ri, Ri, Rj ; if "GT" (greater than), i = i-j;SUBLT Rj, Rj, Ri ; if "LT" (less than), j = j-i;BNE loop ; if "NE" (not equal), then loop

Desplazamientos y rotaciones incorporados a otras instrucciones. Ejemplo:a = a + (j << 2);

Se puede implementar con una única instrucción de una palabra:ADD Ra, Ra, Rj, LSL #2

72

Procesadores (System on a Chip)Procesadores (System on a Chip)

Ejemplo deSystem-on-a-chip

73

Ejemplos (ARM+sensores)Ejemplos (ARM+sensores)FREESCALE ADDS SMARTS TO SENSORS

Xtrinsic Embeds ColdFire into Accelerometers Gyros Other SensorsXtrinsic Embeds ColdFire into Accelerometers, Gyros, Other Sensors

By Jim Turley {07/19/10-02} (Microprocessor-Reports July-2010)

“Freescale hasn’t announced pricing for itsFreescale hasn t announced pricing for itsXtrinsic 9550L three-axis accelerometer chip, except tosuggest it will likely cost around $2.50 in small quantities—more than triple the price of a typical, non-intelligentequivalent.”

Fully 90% of smartphones will include an accelerometerby 2014, according to ARCchart, and 60% will havea gyroscope and a magnetometer (compass).

Figure 1. MMA9550L block diagram. The first Xtrinsic“smart” sensor chip includes a three-axis accelermeter,ColdFire v1 CPU core power management and serialColdFire v1 CPU core, power-management, and serialinterfaces to an upstream host processor and up to 12 optionaldownstream slave sensors.

74

ÍndiceÍndice Introducción / HW para sistemas empotrados Conceptos/Técnicas básicas

Arquitectura básica computador Von-Neumann Computador actual de propósito general

Ejemplos: Procesadores Computadores modulares

Problemas/Ideas/Técnicas utilizadas en s. empotrados Normativa (PdM)

75

Sistemas modulares (ejemplo: PC/104)Sistemas modulares (ejemplo: PC/104)Specification: PC/104-PlusProduct Type: CPU or Single Board Computer (SBC)

http://www.pc104.org/

The Cheetah is a high-performance stand-out in a compact PC/104-Plussystem It offers flexible RAM

Product Type: CPU or Single Board Computer (SBC)Features:High-performance Pentium M ProcessorExtreme Graphics 2 Video10/100 EthernetHigh speed DDR RAM system. It offers flexible RAM

options and scalable processing for optimum application performance with minimal power draw.

High-speed DDR RAMCompactFlash socketSmall PC/104-Plus form factorRoHS-compliant versions

VersaLogic Cheetah

Specification: PC/104Product Type: Motor ControllerSingle board DC servo motor solution,0 to +70 CT i d d t t i t f

VersaLogic Cheetah

Two independent motor interfacesControl position, velocity and acceleration using dedicated motor control chipsetTwo full bridges for direct motor connection60 V, 10 A onboard MOSFET H-bridges gIncremental Encoder inputsGalvanic isolation (ISC629)Output control port for external power stage24 TTL Digital I/O, 8255 based RTD Embedded Technologies, Inc

DC Servo Motor Controller - ESC629/ISC629

76

Prototipos de bajo coste ArduinoPrototipos de bajo coste. Arduino

What is arduino?Arduino is an open-source electronics platform based on easy-to-usehardware and software. It's intended for anyone making interactive projects.

ARDUINO BOARDArduino senses the environment by receiving inputs from many sensors, and affects its surroundings by controlling lights, motors, and other actuators.

ARDUINO SOFTWAREYou can tell your Arduino what to doby writing code in the Arduinoprogramming language and using theArduino development environment.

77

Prototipos de bajo coste Raspberry PiPrototipos de bajo coste. Raspberry-PiThe Raspberry Pi is a credit-card sized computer that plugs into your TV and a keyboard. It is a capable little computer which can be used in electronics projects, and for many of the things th t d kt PC d lik d h tthat your desktop PC does, like spreadsheets, word-processing and games. It also plays high-definition video. We want to see it being used by kids all over the world to learn how computerskids all over the world to learn how computers work, how to manipulate the electronic world around them, and how to program.

78

ÍndiceÍndice Introducción / HW para sistemas empotrados Conceptos/Técnicas básicas

Arquitectura básica computador Von-Neumann Computador actual de propósito general

Ejemplos: Procesadores Computadores modulares

Problemas/Ideas/Técnicas utilizadas en s. empotrados Normativa (PdM)

79

Sistemas empotrados ProblemasSistemas empotrados. Problemas Presupuesto limitado / producción a gran escala:

Sistemas a la medida ahorro de componentes uso limitado de memoria Sistemas a la medida, ahorro de componentes, uso limitado de memoria,

Alimentación por baterías bajo consumo: Sistemas a la medida, técnicas de reducción de consumo, modos de funcionamiento

l i blseleccionables

Plazo de respuesta estricto tiempo real (hard): Evitar técnicas de mejora “estadística”: memorias caché, predicción de saltos, paginación

Tolerancia a fallos sistemas críticos (funcionamiento asegurado): Técnicas de tolerancia a fallos

Altas prestaciones: Altas prestaciones: Multiprocesador, VLIW, Superescalar, DSP, etc.

Robustez mecánica, tolerancia a golpes: Ausencia de partes móviles, componentes adaptados a la función (vehículos, máquinas, etc)

Inmunidad a la radiación y a ruido electromagnético Encapsulado apropiado componentes de mayor tamaño Encapsulado apropiado, componentes de mayor tamaño

80

Problemas/Soluciones IProblemas/Soluciones I. Presupuesto limitado / producción a gran escala:

Ahorro de componentes uso limitado de memoria: microcontroladores/ASIC Ahorro de componentes, uso limitado de memoria: microcontroladores/ASIC (Application Specific Integrated Circuits) Ejemplos:

Tarjetas (felicitación), juguetes, relojes y temporizadores electrónicos

Teléfonos GPS Cámaras de fotos/vídeo Libros electrónicos Teléfonos, GPS, Cámaras de fotos/vídeo, Libros electrónicos

Tarjetas bancarias / de identificación (incluyen cifrado)

Ejemplo, el DNI 3.0:

http://www.dnielectronico.es/PDFs/Guia_de_Referencia_DNIe_con_NFC.pdf

Chip SLE78CLFx408AP de Infineon Technologies.

Características:

400KB memoria Flash (código + personalización)

8 KB memoria RAM

Dual Interface (contacto + sin contacto) Dual Interface (contacto + sin contacto)

Criptolibrería RSA

81

Problemas/Soluciones IIProblemas/Soluciones II.

Alimentación por baterías bajo consumo:p j Sistemas a la medida, técnicas de reducción de consumo: DPM y DVS Modos de funcionamiento/espera: Suspensión e Hibernación (ACPI)

Ejemplos: Intel SpeedStep (DVS) AMD PowerNow! (DVS) IBM EnergyScale (DVS) Ejemplos: Intel SpeedStep (DVS), AMD PowerNow! (DVS), IBM EnergyScale (DVS)

Apagado de componentes: Intel Core functional units power control, AMD CoolCore

Ti R l Tiempo Real: Memoria Virtual:

Ventaja para facilitar protección entre procesos, pero desventaja para TR: Genera plazos de respuesta impredecibles

Fallos de página críticos (evitables, gestión de la MV hw/sw)

Memorias Caché: Ventaja para obtener mayor eficiencia en la ejecución, pero desventaja para TR:

Fragmentos de código con tiempo de ejecución no predecible

82

Problemas/Soluciones IIIProblemas/Soluciones III. Alternativas a las Memorias Caché:

Uso de zonas “no-cacheables”Uso de scratchpad RAM:

Zona de memoria especializada (mayor velocidad)Non-uniform Memory Access (NUMA)No tiene porqué contener una copia del siguiente nivel (L1-L2-L3-Mp)Gestionada por las aplicaciones, no por el HW

Tolerancia a fallos sistemas críticos: Tolerancia a fallos sistemas críticos: Un sistema se dice tolerante a fallos cuando puede continuar trabajando,

posiblemente en un modo degradado, cuando alguno de sus componentes falla. Soluciones:

Redundancia (HW y/o SW). Ejemplos: Discos duros (RAID), Fuentes de alimentación, Procesadores/Memoria

Algunas desventajas:g j Coste. Riesgos de “ocultación”:

del fallo(s) al ser compensado de fallos en otros componentes

83

Problemas/Soluciones IVProblemas/Soluciones IV. Altas prestaciones:

M lti d VLIW S l DSP t Multiprocesador, VLIW, Superescalar, DSP, etc.

Inmunidad a la radiación y al ruido electromagnético Encapsulado apropiado, componentes de mayor tamaño Interferencia Electromagnética (EMI):

Emisiones electromagnéticas de un dispositivo o sistema queinterfieren con el funcionamiento normal de otro dispositivoo sistema.

Se denominan también Interferencias de Radiofrecuencia (RFI)

Compatibilidad Electromagnética (EMC) Capacidad de los equipos o sistemas para trabajar satisfactoriamente en su entorno

electromagnético (EME) sin introducir ruido o influencia electromagnética indeseable en cualquier otro sistema de dicho entorno.

Resumen: Debe evitarse la generación de interferencias que sobrepasen un cierto nivel prefijado

Debe tolerarse un cierto nivel predeterminado de interferencias.

Los sistemas deben ser “auto-compatibles” electromagnéticamente.

84

Problemas/Soluciones VProblemas/Soluciones V. Robustez mecánica, tolerancia a golpes:

Encapsulado especial: problema de ingeniería mecánica: Encapsulado especial: problema de ingeniería mecánica:

PC industrial

PC plano, pantalla táctil, industrial

Ausencia de partes móviles:

Eliminación de ventiladores

Discos duros sustituidos por discos de estado sólido

Fanless touch screen industrial panel PC

Embeddedpanel PC

Point of sale panel PC (POS)

Stainless steelindustrial panel PC

Industrial panel PC (IP65)

Touch screen panel PC for medical applications (IP65/54)

85

PC (IP65) applications (IP65/54)

Sistemas Empotrados: HWSistemas Empotrados: HW

86