DSP - Introducción
DSP - Introducción
Victronics Ltda
Respaldo y Seguridad en Tecnologa
AGENDA
10:00 - 11:30 11:30 - 11:45 11:45 - 13:00 13:00 - 14:30 14:30 - 15:00 15:00 - 15:30 15:30 - 15:45 15:45 - 16:15 16:15 - 16:45 16:45 - 17:15 17:15 - 17:30 Introduccin Coffe Break Familia TMS320C2000 Almuerzo Code Composer Studio Familia TMS320C5000 Coffe break Familia TMS320C6000 Microcontroladores MSP430 Plan Universitario Preguntas
2
INTRODUCCION
Muchos conceptos relacionados con el procesamiento Digital de Seales haban sido elaborados en el siglo XIX Jean Batista Joseph, Barn de Fourier, fue gobernador del bajo Egipto durante el perodo de Napolen. Cuando volvi a Francia, public un estudio sobre flujo de calor (1882), donde desarroll la Transformada de Fourier. Pierre Simon, Marqus de Laplace, astrnomo terico. Naci 20 aos despus que Fourier. Desarroll las Transformadas de Laplace que luego evolucionaron a las Transformadas Z, muy utilizadas en filtros digitales En los 40s se desarroll la Transformada Discreta de Fourier (DFT). En 1965 se desarroll la Transformada Rpida de Fourier (FFT)
3
INTRODUCCION - Continuacin
30s: Arquitectura Harvard: Memoria de Programa y datos separadas con buses dedicados 1944: Primera computadora con arquitectura Harvard, la Harvard Mark I 1946: Primer computador electrnico con arquitectura similar a la Harvard I: La ENIAC. John Von Newmann, consultor de la ENIAC, elabor la arquitectura Von Newmann: Memoria de Programa/datos en una misma zona con un nico bus (Motorola 68000, Intel i86), Set de instrucciones CISC (Complex Instrucction Set Computers) Era necesario arquitecturas que permitieran aplicaciones en tiempo real y que realicen operaciones de sumas y multiplicaciones 70s: Arquitecturas con niveles de Pipeling con tecnologa ECL (Emitter Coupled Logic)
4
INTRODUCCION - Continuacin
1971: Lincoln FDP. DSP de los laboratorios Lincoln, con tiempo de ejecucin de 600nS, arquitectura Von Newmann, compuesto por 10.000 Cis Lincoln LSP/2: Segunda generacin con arquitectura similar a la Harvard con tiempo de ejecucin de 40nS. 70s. Las tecnologas mejoraron. La ms utilizada era la N-MOS que trabaja a 5V, geometras de 3 micrones, con densidades de hasta 100.000 transistores por chip. 80s: Aparecen 4 DSPs disponibles comercialmente S2811 de American Microsystems Inc (AMI) 2920 de INTEL uPD7720 de NEC TMS32010 de Texas Instruments
5
QUE ES UN DSP?
Un Procesador Digital de Seales o DSP, es un procesador de alto performance, con un altsimo nivel de integracin, orientado a proceso de informacin digital para aplicaciones en tiempo real. Tiempo real quiere decir, que el procesador es capaz de realizar complejos procesos de informacin digital y responder a un sistema real (mecnico, elctrico, hidralico, etc) sin que este se percate Para lograr esto, las velocidad de proceso de informacin va desde 20MIPS a 3GFLOPS
6
MERCADO DE DSPs
OTROS 7%
MERCADO DE MSPs
MOTOROLA 9% PHILLIPS 10% NSC 8% SGS 11%
OTROS 21%
$B
MSP DSP
Porqu Digitalizar?
Parmetros
Tolerancia componentes
Sensibilidad componentes Inmunidad al ruido Adaptabilidad Rediseo Placa Funciones avanzadas Multi-Funciones Tamao, Potencia Confiabilifad
Filtro
Digital IIR Cancelacin de eco, Modem Filtros Adaptativos
11
alta velocidad
Etapa de Salida
12
DSP v/s uC
DSP
Aplicaciones Arquitectura Orientados a aplicaciones de gran rendimiento Arquitectura con mltiples buses (6 o ms) y muchos niveles de pipeling 20MIPS-3GFLOPS Diseadas de acuerdo a la orientacin de campo de aplicaciones (MACD) Pocos MIPS por funcin
uC
Para aplicaciones de tipo general Arquitectura con mximo 2 buses y pocos niveles de pipeling 1MIPS - 10MIPS Set de instrucciones de tipo general
Para funciones complicadas, el uC queda al limite de su capacidad de proceso
Rendimiento
14
DSP vs uC - Rendimiento
Un uC con arquitectura Harvard con un oscilador externo de 40Mhz y 2 niveles de pipeling (PIC18 Microchip), ejecuta 1 instruccin cada 100nS, por lo que puede procesar hasta 10MIPS. Un DSP bsico (TMS320F24x de TI) con arquitectura Harvard modificada, oscilador externo de 5MHz y 6 niveles de pipeling, puede procesar una instruccin en 50nS, con una capacidad de proceso de 20MIPS y puede llegar a ..... 3GFLOPS
15
TMS320F24x - 10 bits/0.5uS
10
15 20 Tiempo en uS
25
30
35
16
Seno/Coseno
0 5 10 15 20 25 30 35 40 45 50
17
Tiempo en uS
Otros
100%
Otros
20% 100% Reduce el costo del sistema Incrementa el Performance del sistema Permite un sistema con mayor eficiencia y confiabilidad Permite la reduccin de ruido elctrico Permite nuevas caractersticas en un solo sistema 18
19
20
ARQUITECTURA DSP
21
C24x
CPU
Program Address Bus Data Read address Bus Data Write Address Bus Program Read Data Bus Data Read Data Bus Data Write Exchange Bus
Address
Data
Control
22
DSP - Pipeling
La CPU de un uC o un DSP sigue los siguientes pasos con cada una de las instrucciones P = Prefetch. Clculo de la direccin de la instruccin F = Fetch. Encuentra la instruccin D = Decode. Interpreta la instruccin A = Access. Colecta las direcciones de los operandos de la instruccin R = Read. Colecta los operandos de la instruccin X = Execute. Ejecuta la instruccin En un sistema convencional, las instrucciones se ejecutan secuencialmente. En un DSP, la ejecucin de las instrucciones se realiza en forma paralela en varios niveles de pipeling P1 F1 D1 A1 R1 X1 P2 F2 D2 A2 R2 X2 P3 F3 D3 A3 R3 X3
P1 F1 D1 A1 R1 X1 P2 F2 D2 A2 R2 P3 F3 D3 A3
23
Mux
31 16 15 0 Input shifter
32
TREG
Multiplier 16x16
Mux
16
32
Seccin de Multiplicacin
16
Mux
CALU
Acumulador
16
26
Antes
Despus
ACC
X
C
EF13648C
ACC
X
C
FFF79400
ACC
X
C
EF13648C
ACC
X
C
00F79400
28
0 0
Q15 Q15
4000h 0
C000h -1/2
C 4000h 1/2 OV
-1/2
-1 32768
C000h
8000h
8000h -1 7FFFh ~1
;TREG = A ;TREG x B = PREG (Q30) ;ACC = A*B ;C = A*B. Rota acumulador 1 ;bit a la izquierda y almacena ;resultado en C. Los 16 bits ;LSBs se pierden
31
Instruccciones
32
X1 A X2 B X3 C X4 D Y
LTP X2
LTA X3
LTA X4
X1 A X2 B X3 C X4 D Y
;T = X1 ;P = A*X1 ;ACC = A*X1 ;T = X2 ;P = B*X2 ;ACC = A*X1 + B*B2 ;T = X3 ;P = C*X3 ;ACC = A*X1 + B*X2 + C*X3 ;T = X4 ;P = D*X4 ;ACC = A*X1 + B*X2 + C*X3 + D*D3 ;Y = A*X1 + B*X2 + C*X3 + D*D3
33
y = Xn
100 n=1 .text LAR MAR LACL RPT ADD LDP SACL
Memoria de Datos
AR1 x ;inicio programa AR1,#x ;Carga puntero AR1 con x *,AR1 ;Deja activo puntero AR1 #0 ;limpia acumulador (32 bits) #99 ;repite la siguiemte instruccin 100 veces *+ ;ACC + (AR1) = ACC. AR1= AR1 + 1 #y ;carga puntero de direccionamiento directo con y y ;guarda parte alta de ACC en direccin y
X1 x2 . . . . . x100 y
100
34
AR1
PC
APAC
;AR1 = 300h 0303 X4 ;AR1activo ;Limpia PREG ;Limpia ACC ;Repite siguiente instruccin 4 veces ;(PREG ) + (ACC) = ACC ;(AR1) = TREG ;AR1 + 1 = AR1 ;(TREG) * (PC) = PREG ;PC + 1 = PC ;(PREG) + (ACC) = ACC. Suma final
D
Coefn
FF03
35
a0 x
a1 x
a2 x
a3 x
a4 x
y out
Prog
a99 a98
Data
FIR:
y x
x0 x1
a0
x98 x99
Extra
37
38
39
40