Sunteți pe pagina 1din 38

CAPITOLUL 1

INTRODUCERE

Informaii generale
s.l. ing. RADU MIHNEA UDREA mihnea@comm.pub.ro , B209, 402-4879

MOODLE http://electronica.curs.ncit.pub.ro/ Punctaj:


30% laborator (sala B028 Laborator Freescale)
10% prezena; 20% colocviu;

30% teme de cas


15% tema 1 (termen 15 noiembrie);
15% tema 2 (termen 15 decembrie);

40% examen final.

FREESCALE Open Day 22.10.2009


Propuneri proiecte tehnice pentru diplom/licen/studiu master Demonstratii tehnice cu grupurile Freescale Curs inut de Erich Styger profesor de tehnologii avansate i arhitecturi embedded la Lucerne University of Applied Sciences and Arts www.freescale.com/romania
University Programs

Introducere
Microprocesoare de uz general (GPP)
Microprocesoare pentru PC
Ex: Intel Pentium

Procesoare pentru aplicaii embedded


Ex: ARM ARM7

Procesoare digitale de semnal (DSP)


Microprocesoare specializate pentru aplicaii de prelucrare a semnalului

Introducere
Arhitecturi simple (low-end)

DSP i GPP folosite n aplicaii cu pre redus, n general arhitecturi mai vechi

Arhitecturi performante (High Performance)


Includ tehnici avansate pentru paralelism i performane ridicate

Funcioneaz la frecvene de ceas mari

Exemple de procesoare

Comparaie DSP i GPP


Set de instruciuni

Low-end DSP
Set de instruciuni specializat i complex Mai multe operaii pe instruciune Ortogonalitate redus

Low-end GPP
Instruciuni de uz general O singur operaie pe instruciune Ortogonalitate bun

mac x0,y0,a

x:(r0)+,x0

y:(r4)+,y0

mpy add mov mov inc inc

r2,r3,r4 r4,r5,r5 (r0),r2 (r1),r3 r0 r1

Comparaie DSP i GPP


Set de instruciuni

High-Performance DSP
Instruciuni de complexitate simpl spre moderat

High-Performance GPP
Instruciuni simple Ortogonalitate moderat spre excelent

Ortogonalitate moderat Cu extensie SIMD: spre excelent Instruciuni de complexitate moderat Ortogonalitate moderat spre excelent

Comparaie DSP i GPP


Prelucrarea datelor

Low-end DSP
Hardware dedicat pentru a efectua operaiile aritmetice ntr-un ciclu Reprezentate pe 16-bit Suport hardware pentru a controla precizia numeric
bii de gard, saturare, rotunjire, scalare,

Low-end GPP
nmulirea, deplasarea cu mai muli bii se pot efectua n mai mult de un ciclu Reprezentare pe 32-bit, numere ntregi Saturarea, rotunjirea se fac n ntr-un ciclu separat Pot avea performane mai bune la manipularea la nivel de bit

Limitare n prelucrarea la nivel de bit

Comparaie DSP i GPP


Prelucrarea datelor

10

High-Performance DSP
Max. 8 uniti aritmetice Includ uniti aritmetice specializate:
MAC, Viterbi

High-Performance GPP
1-3 uniti aritmetice Uniti aritmetice de uz general:
integer, floating point

Permit mai multe formate pentru reprezentarea datelor

Permit mai multe formate pentru reprezentarea datelor

Comparaie DSP i GPP


Adresarea

11

Low-end and HighPerformance DSP


Uniti dedicate de generare a adreselor Moduri de adresare specializate
Autoincrement Modulo (circular) Bit-reversed (FFT)

Low-end and HighPerformance GPP


n general nu a uniti separate de adresare Folosesc modurile standard de adresare

Comparaie DSP i GPP


Accesul la memorie

12

Low-end DSP
Arhitectur Harvard Acces la 2-4 locaii de memorie pe ciclu No caches; on-chip SRAM, DMA

Low-end GPP
Arhitectur Von Neumann Tipic 1 acces pe ciclu Folosesc cache(s)

Comparaie DSP i GPP


Accesul la memorie

13

High-Performance DSP
Arhitectur Harvard Acces pe ciclu:
1-8 instruciuni

High-Performance GPP
Arhitectur Harvard Acces pe ciclu:
1-4 instruciuni

Dou sau mai multe cuvinte pe 16-64 bii

dou cuvinte 32-64 bii sau un cuvnt pe 128 bii

Faciliti DSP
Operaii de multiplicare-acumulare (MAC) ntr-un singur ciclu instruciune.
algoritmii DSP care realizeaz calculul unor filtre digitale, a unor corelaii sau a unor transformate Fourier. DSP integreaz hardware operaia de multiplicare-acumulare n unitatea central a procesorului DSP performante au dou sau mai multe uniti MAC

14

Faciliti DSP
Mai multe accesri ale memoriei ntr-un singur ciclu instruciune

15

procesorul execut o instruciune n timp ce citete simultan operanzii i/sau stocheaz rezultatul unei instruciuni anterioare n memorie DSP ofer mai multe magistrale interne de acces la memoria de pe cip i n unele cazuri mai multe memorii independente.

Faciliti DSP
uniti dedicate de generare a adreselor

16

unitatea de generare de adrese funcioneaz independent genernd adresele necesare pentru accesrile operanzilor n paralel cu execuia instruciunilor aritmetice. Cel mai des ntlnite moduri de adresare:
adresare indirect cu post-incrementare. adresare modulo. adresare Bit-reversed.

Faciliti DSP
hardware dedicat pentru ciclare eficient

17

Sunt ntlnite funcii de loop sau repeat ceea ce permite programatorului s implementeze o bucla de tip for-next fr s iroseasc cicluri de instruciuni pentru actualizarea i testarea contorului buclei sau pentru salt la nceputul buclei.

Faciliti DSP
interfee de I/O integrate
DSP ncorporeaz una sau mai multe interfee de I/O paralele sau seriale.
mecanisme specializate de I/O cum ar fi ntreruperi transparente i DMA (acces direct la memorie).

18

Faciliti DSP
Formatul datelor
Floating-point
Cel mai frecvent cuvinte pe 32 bii.

19

Fixed-point
Cel mai frecvent cuvinte pe 16 bii. Freescale DSP563xx folosete cuvinte pe 24 bii.

Productori DSP
TEXAS INSTRUMENTS
www.ti.com

20

FREESCALE
www.freescale.com

ANALOG DEVICES
www.analog.com

Aplicaii DSP
Car Electronics Solar& Wind Inverter Fuell Cells Hybrid Vehicles Industrial Sensors

21

Sensor Networks

Signal Processing DSP and Analog


Industrial Control/Automation

Medical Equipment

appliance

Digital Power Digital Motor Control Utility Meters Car Safety

TI - Audio DSP Roadmap

22

TI - Telecom DSP Roadmap

23

TI - DaVinci Digital Media Video DSP

24

C6437 Digital Video Development Platform

25

27

FREESCALE - CodeWarrior

29

ANALOG DEVICES - SHARC FAMILY

30

31

Filtrarea analogic

34

Filtrarea digital

35

Filtrul FIR Algoritmul:


y[n] ak x[n k ]
k 0 N 1

36

Pseudocod:
s=0; for (k=0; k<N; k++)

s+=a[k]*x[n-k];
y[n]=s;

DSP Freescale DSP56300

37

DSP56300
ALU adrese primare XAB YAB PAB ALU adrese secundare

38

Multiplexor Triplu EI R0 R1 R2 R3

N0 N1 N2 N3

M0 M1 M2 M3

ALU Adrese

R4 R5 R6 R7

ALU Adrese

M4 M5 M6 M7

N4 N5 N6 N7

Magistrala de date globale Magistrala de date de program

DSP56300
move $100,r0 move $100,r4 clr a do #N-1 mac x0,y0,a macr x0,y0,a move a,x:output x:(r0)+,x0 y:(r4)+,y0 x:(r0)+,x0

Magistrala de date X
39

Magistrala de date Y
24 24

Registre de date

X0 X1 Y0 Y1
24

y:(r4)+,y0

24

Multiplicator
56
56

ALU
56 24

Shifter Acumulatori

A(56) B(56)
24 56 56

Shifter/Limitator

24

24

DSP Freescale StarCore140


Level-1 Memory Expansion Area
Unified Data and Program Memory ROM, RAM Star*Core 140 D SP Core DSP Engine System Expansion Area

40

External Memory Interface DMA CACHE Interrupt Ctrl.

True 16-bit instruction set Variable Length Execution Set (VLESTM ) Model

4 Arithmetic & Logic Units

2 Address Arithmetic Units

Level-2 Memory Expansion

Peripheral and Accelerators Expansion Area Standard Input/Output Peripherals Application Specific Accelerators General Purpose Programmable Accelerator

DSP Freescale StarCore140


Spaiul unificat de memorie pentru date i program
XDBA XABB XABA

41

128

32

32

32

64

XDBB

PDB

PAB

64 128

Secveniator de Program

Setul de registre pentru Generarea Adreselor

Registre ALU pentru date

OnCE
Controlul Puterii

Accelerator pentru setul de instruciuni

StarCore 140 2 AAU


Instruction Bus

BMU
128

4 ALU

Generatorul de ceas PLL

24

Filtrul FIR StarCore140


move.w #$100,r0
$200 $100 XABB

42

MEMORIE
16 16 16 16

move.w #$200,r1 move.4f (r0)+,d0:d1:d2:d3 move.4f (r1)+,d4:d5:d6:d7 loopstart0

Registre adresa R0=$100 R0 R1=$200 R7

AAU

XABA

64

64

Registre date D15 D0 D1 D2 D3 D4 D5 D6 D7

[ mac d0,d4,d8
mac d2,d6,d10 ALU1 ALU2 ALU3 ALU4

mac d1,d5,d9
mac d3,d7,d11

XDB A XDB B

move.4f (r0)+,d0:d1:d2:d3 move.4f (r1)+,d4:d5:d6:d7 ]

loopend0
[ add d8,d9,d0 add d10,d11,d1 ] add d0,d1,d0 move.f d0,($400)

D15

S-ar putea să vă placă și