Sunteți pe pagina 1din 15

OBIECTIVELE CURSULUI

PROCESORUL
component a sistemului embedded

Prezentarea i clasificarea tipurilor arhitecturale de baz pentru procesoarele embedded. Extinderea criteriilor pentru selectarea procesorului / calculatorului numeric nglobat n sistem Introducere n arhitectura procesoarelor digitale de semnal
2

Clasificare funcional
(grosier) din punctul de vedere al gradului de integrare

Microprocesoare de 8 bii (sau mai puin) cu acumulator


Cost redus, precizie redus, vitez redus - de obicei se folosesc MICROCONTROLERE - Costul este totul. Arhitectur din punctul de vedere al cii de date

Microprocesoare de 8 bii (sau mai puin de 8 bii) cu acumulator Microprocesoare de 16/32 bii (cu arhitecturi CISC i RISC) Procesoare digitale de semnal (DSP)

Acumulator

Microprocesoare de 16/32 bii


Se pot folosi CI microprocesoare/microcontrollere: cost redus, instruciunile i modurile de adresare complexe pot constitui un avantaj n unele aplicaii. Dac sunt procesoare de uz general - avantajul preului, disponibilitii pe pia, logic suplimentar ieftin i de multe tipuri; rezult sisteme nglobate cu gabarit relativ mare, dar costuri mai reduse dect dac s-ar folosi un procesor dedicat, un microcontroler, sau un DSP. Pot fi folosite ca nuclee de procesoare pentru sisteme pe CI cu aplicaii specifice - arhitecturi specifice aplicaiilor, cu performan foarte nalt. Performana, sau suportul software i hardware i aplicaiile existente sunt extrem de importante.
5

Arhitectur memorie-registre (CISC)


din punctul de vedere al cii de date

Arhitectur de tip load-store (RISC)


din punctul de vedere al cii de date

ADMINISTRARE STRUCTURI DE TIP PIPELINE


de ctre compilator sau programator
prin rezolvarea dependenei datelor ntre etajele conductei prin planificarea hardware a instruciunilor (rearanjare)

Exemple: secvenial, pipelined, superscalar, superpipelined.


7 8

Secvenial
Fetch I Decode I Fetch Op Execute

Procesoare digitale de semnal (DSP)


Superpipelined

Pipelined
Fetch Decode Fetch Read Decode Execute Read Execute

Fetch

Decode

Read Execute

Superscalar
Fetch Decode Read Execute

Viteza operaiilor DSP, costul i dimensiunea sunt extrem de importante Operaii specifice algoritmilor DSP: multiplicare i sumare repetat Operaii rapide cu matrice de eantioane i coeficieni Arhitectur de memorie cu acces multiplu
10

INTRODUCERE N ARHITECTURA PROCESOARELOR DIGITALE DE SEMNAL (DSP)

Obiective
Aplicaii ale procesrii digitale a semnalelor De ce se utilizeaz procesoare DSP (Digital Signal Processors)? Algoritmii DSP (Digital Signal Processing) tipici Caracteristici principale ale procesoarelor DSP Exemple de procesoare DSP

n expunere s-au utilizat exemple de la firma Texas Instruments: Dr. Naim Dahnoun, Bristol University, Texas Instruments 2004
11 12

PRELUCRARE DIGITAL DE SEMNAL


Avantaje ale prelucrrii n digital: Precizie garantat Repetabilitate perfect Flexibilitate mare (schimbare funcie), adaptabilitate (caracteristici semnal de intrare sau de mediu), corectare, update Folosirea avantajelor tehnologiei semiconductoare integrate: dimensiune redus, cost sczut, consum mic de putere, vitez mare, timp redus de dezvoltare. Obinerea de performane superioare - pot realiza funcii imposibile pentru prelucrrile analogice. De exemplu: Filtre FIR cu faz liniar Filtre cu band foarte ngust (notch) Filtre adaptive.
13

PRELUCRARE DIGITAL DE SEMNAL


Dezavantaje:
Vitez : Implementrile DSP pot fi imposibile, n special atunci cnd e vorba de semnale de band larg:
Convertoarele AD i DA nu au vitez suficient de conversie i o rezoluie suficient pentru aplicaii DSP de band foarte larg Aplicaiile pot fi mult prea complexe pentru a putea fi realizate n timp real, prin DSP. Lrgimile de band din domeniul sute de MHz sunt nc prelucrate prin metode analogice.

Costuri de proiectare:
Convertoare AD i DA scumpe n cazul frecvenelor mari de semnal analogic Necesit pachete software adecvate de proiectare.

Problema lungimii finite a cuvintelor - numr limitat de bii cu degradarea performanelor sistemului
14

PRELUCRARE DE SEMNAL
Semnalele sunt procesate utiliznd:
tehnici analogice (analog signal processing - ASP) tehnici digitale (digital signal processing - DSP) combinaii ale tehnicilor analogice si digitale (mixed signal processing - MSP)

APLICAII SPECIFICE PENTRU DSP Aplicaii:


Comunicaii Prelucrare audio i video Procesri de imagini, 3D, identificare i mbuntire calitate Navigaie, radar, GPS Robotic, aplicaii de control

Cerinele de performan i de cost ale ADC pot fi sczute cu preul unor circuite suplimentare de condiionare i procesare analogic de semnal
De exemplu, un amplificator cu ctig programabil, sau un amplificator logaritmic plasat n faa ADC poate reduce cerinele de domeniu dinamic pentru ADC
15

16

ALGORITMI SPECIFICI PENTRU DSP


Operaia de baz n algoritmii DSP este suma de produse (Sum of Products SOP or Multiply and Accumulate - MAC)

Digital Signal Controller (DSC)


Microcontroller (MC) un microcalculator pe un chip care are ca unitate central un microprocesor Un DSC (Digital Signal Controller) este un microcalculator pe un chip care are ca unitate central un DSP (Digital Signal Processor) Exemplu DSC : Texas Instruments C2000 family.

17

18

CARACTERISTICILE GENERALE ALE PROCESOARELOR DSP 1. Uniti aritmetice specializate de mare vitez i precizie 2. Arhitecturi performante orientate pe prelucrarea datelor, arhitecturi ce permit accesri multiple la memorie. 3. Vitez ridicat la transferul de date cu lumea extern
19

1. UNITI ARITMETICE SPECIALIZATE DE MARE VITEZ I PRECIZIE


Multiplicare-acumulare ntr-un singur ciclu instruciune (operaii MAC/SOP) Folosirea de registre (produs i sum) cu precizie extins pentru micorarea erorilor de cuantizare la reprezentarea numerelor. Aritmetic cu ntregi sau numere subunitare n virgul fix, dar i aritmetic n virgul mobil. Exemplu: nmulire pe 4 bii (fr semn): Hardware 1011 x 1110 10011010 Microcode 1011 x 1110 0000 1011. 1011.. 1011... 10011010

Cycle Cycle Cycle Cycle

1 2 3 4
20

Cycle 5

EXEMPLU DE ORGANIZARE
X Data Bus Y Data Bus

Virgul mobil / Virgul fix


Virgula mobil este necesar n aplicaiile care necesit:
Precizie mare Domeniu dinamic mare Raport semnal-zgomot mare

Reg X Reg X nmulitor

Reg Y Reg Y

Shifter

Sumator (ALU) Acumulatoare (lungime extins)

Dezavantaje ale procesoarelor cu virgul mobile:


Consum de putere mai mare Costuri mai ridicate Pot fi mai lente dect procesoarele n virgul fix i cu gabarit mai mare
21 22

Shifter Round

ARITMETICA
Virgul fix - ntregi, sau subunitare.
La subunitare mai uor de rotunjit / trunchiat, prin shift-are a coninutului acumulatorului. Reprezentarea numerelor cu semn n cod complementar (cod complement fata de 2) Avantaje C2: domeniu de reprezentare, reprezentare 0, sumare algebric, extindere de semn.
23

ARITMETICA
Virgul mobil
precizie mai bun, domeniu dinamic mai mare, ciclu de dezvoltare mai scurt folosind mantise normalizate scalarea i ncadrarea la precizie maxim este automat. dezavantaj potenial FP: hardware scaleaz automat i normalizeaz fiecare numr eroarea de trunchiere sau rotunjire depinde de dimensiunea numrului (nivelul de zgomot este modulat de mrimea semnalului).
24

PROBLEME Virgul Fix


depire a capacitii de reprezentare la nmulire i sumare repetat aproximarea numrului la format pe n bii (rotunjire, trunchiere) Bit guard, Hardware suplimentar Exemplu de utilizare (subunitare cu 4 + 1 i g bit de la op. anterioar)

Aproximare - continuare
Sticky Bit - Indic c rotunjirea ctre cel mai apropiat minimizeaz eroarea medie introdus prin rotunjire (exist un bit cu valoare 1 dup bitul de gard la rotunjire ?). Saturaie. n caz de depire superioar sau inferioar (overflow / underflow) returneaz numrul cel mai mare / cel mai mic.:
dac A 1 atunci MAX pozitiv; dac A < 1 atunci MAX negativ

1.0000 + 0.01111 1.01111

-1 + +15/32 rotunjit la 1.1000 corect! 1.0111 trunchiat, incorect!

Corect Rotunjit (g) Trunchiat

= 1.01111 = 1.1 = 1.0111

= = =

-1+0,484375 = - 0,515625 -1+0,5 = - 0,5 (diferena 0,015625) -1+0,4375 = -0,5625 (diferena 0,0625)
25 26

Aproximare - FP
Metode standardizate (IEEE 754) de rotunjire la DSP, FP:
Trunchiere Round to nearest:
< 1/ 2 rotunjire n jos, > 1/ 2 rotunjire n sus erori mai mici ca la trunchiere

Fixed Point Arithmetic - Definition


For simplicity a 4-bit representation is used:
23 22 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 21 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 20 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1

Binary Number Unsigned integer numbers

1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1

Decimal Equivalent
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Convergent (round to nearest even) : < 1/ 2 rotunjire n jos, > 1/ 2 rotunjire n sus, = 1/ 2 rotunjire ctre cel mai apropiat par
27

28

Fixed Point Arithmetic - Definition


For simplicity a 4-bit representation is used:
-23 22 0 0 0 0 0 1 1 1 1 0 0 21 0 0 0 1 1 0 0 1 1 0 0 20 1 0 1 0 1 0 1 0 1 0 1

Operaii DSP tipice


c[0] lucrul cu matrici adunare
z
-1

Binary Number Signed integer numbers

1 0 0 0 0 0 0 0 0 1 1

Decimal Equivalent
0 1 2 3 4 5 6 7 -8 -7

c[1]

nmulire ntrziere

-1

c[2]

29

30

Probleme la aritmetica n virgul fix


Ecuaia urmtoare este specific pentru majoritatea algoritmilor DSP:
N 1 k =0

Depire la nmulire
16-bii x 16-bii = 32-bii Exemplu utiliznd reprezentare pe 4 bii 0 0 0 0 1 0 0 1 0 0 x 3 8 24

y (n ) =

a(k )x(n k )

Dou probleme la utilizarea ntregilor cu semn sau fr semn:


Depire la nmulire Depire la adunare

x 0 0 0 1

1 1

31

24 nu poate fi reprezentat cu 4 bii


32

Depire la adunare
32-bii + 32-bii = 33-bii Exemplu utiliznd reprezentare pe 4 bii 1 + 1 1 0 0 0 0 0 0 0 0 0 0 + 8 8 16

Soluii la overflow n virgul fix


Soluiile pentru reducerea problemelor aprute la overflow (depire a capacitii de reprezentare) sunt:
Saturarea rezultatului Utilizarea dublei precizii pentru rezultat Utilizarea aritmeticii cu subunitare Utilizarea aritmeticii n virgul mobil

16 nu poate fi reprezentat cu 4 bii


33 34

Soluie - Saturarea rezultatului


Numere fr semn (pe 4 bii n exemplu):
Dac A x B 15 resultatul este = A x B Dac A x B > 15 resultatul este = 15

Soluie - Saturarea rezultatului


Numere cu semn:
Dac Dac Dac -8 A x B 7 resultatul = A x B AxB>7 resultatul = 7 A x B < -8 resultatul = -8

0 x 0 0 0 1 1 1 1

0 0 0 1

1 0 0 1

1 0 0 1

3 8 24 15
35

0 x 1 1 1 0 1 1 1

0 0 0 0

1 0 0 0

1 0 0 0

3 -8 -24 -8
36

Saturat

Saturat

Soluie Doubl precizie pentru rezultat


Pentru o nmulire 4-bii 4-bii rezultatul se stocheaz ntr-o locaie pe 8 bii Noi probleme:
Se utilizeaz mai mult memorie pentru stocarea datelor Dac rezultatul e utilizat ca operand pentru o nou nmulire el trebuie aproximat la dimensiunea simpl precizie Dac rezultatul se transmite ctre un convertor A/D el trebuie aproximat la simpl precizie

Soluie Aritmetic cu subunitare

Dac A i B sunt subunitare:


A x B < min(A, B) Nu va rezulta niciodat depire, dar se face aproximare la biii mai puin semnificativi

Exemple:
0.6 x 0.9 x 0.1 x 0.11 x 0.2 = 0.12 0.9 = 0.81 0.1 = 0.01 0.15 = 0.0165

37

38

Numere subunitare cu semn


Reprezentare:
- 20 -1 2- 1 2- 2 0.5 0.25
(N2-(N-1)

Numere subunitare cu semn


Reprezentare:
- 20 2- 1 2-2
(N2-(N-1)

1
= MAX
(N= 2-(N-1)
(N= MAX+2-(N-1) = 1

Care este numrul cel mai mare reprezentabil? Numrul cel mai mare:
+ - 20 2-1 2-2
(N2-(N-1)

Care este numrul cel mai mic? Cel mai mic numr:
- 20 2-1 2- 2
(N2-(N-1)

0 0 1

1 0 0

1 0 0

1 1 0

= MIN = -1

Pentru reprezentare pe 16 bii:


MAX = 1 - 2-15 = 0.999969 MIN = -1 -1 x < 1

MAX = 1-2-(N-1)

39

40

Subunitare Extensie de semn


a= 0
b= 1 0 1 1 1 0 1 1 0 0 1 1 0 1 0 . 1 1 1 0 0 . . 0 0 = 0.5 + 0.25 = 0.75 0 = -1 + 0.5 + 0.25 = -0.25 0 . . . 0 extensie de semn ntregi: Subunitar (4 bii mrime) -3/16=-0,1875 11101=-24+23+22+20=-3 111101 = -25+ 24+23+22+20=-3 1111101= -26+ 25+24+23+22+20=-3

Explicaie (C2)

1 1 1

0 0 1

Sign extension

Pentru a pstra aceeai rezoluie de reprezentare cu cea a operanzilor se selecteaz doar urmtorii 4 bii: 1 1 1 0
= -1 + 0.5 +0.25 = -0.25 (n loc de -0.1875) 0.5 0.2
41 42

2. ARHITECTURI PERFORMANTE CE PERMIT ACCESE MULTIPLE LA MEMORIE


arhitectur multi-bus: Arhitectur Harvard, Arhitectur Super Harvard (SHARC) structur multi-memorie structur de memorie multi-port
Cale de date

(a) Arhitectur von Neumann (memorie unic) Memorie date i instruciu CPU

bus adrese bus date

Memorie program

Memorie date X

Memorie date Y

43

44

(c) Arhitectur Super Harvard (memorie separat, cache de instruciuni, controller I/O) Memorie de Program
bus adrese PM bus date PM

CPU
Cache Instruciuni

(b) Arhitectur Harvard (memorie separat) Memorie de Program


doar instruciuni

bus adrese DM bus date DM

Memorie de Date
doar date

bus adrese PM bus date PM

CPU

bus adrese DM bus date DM

Memorie de Date
doar date

instruciuni i date secundare

Controller I/O

date

45

46

Arhitectura von Neumann modificat Exemplu: Lucent DSP32C la 20 MHz

MODURI SPECIALE DE ADRESARE BAZATE PE HARDWARE


Adresare modulo k (Modulo addressing) pentru tampoane circulare (de ex. la filtre FIR) Adresare prin inversarea biiilor (bit-reversed addressing), (de ex. la implementarea algoritmului transformatei Fourier rapide)
0 (000) => 0 (000) 2 (010) => 2 (010) 4 (100) => 1 (001) 6 (110) => 3 (011) 1 (001) => 4 (100) 3 (011) => 6 (110) 5 (101) => 5 (101) 7 (111) => 7 (111)

ntr-un ciclu instruciune se fac accesri multiple la memoria unic (prin magistrala unic de date) clock-ul memoriei (80 MHz) merge mai repede dect al procesorului (20 MHz). fiecare ciclu instruciune poate fi divizat n patru cicluri main de acces i citire din memorie 4 accesri pe ciclu instruciune.
47

Moduri de adresare indirect prin registre cu auto post/pre incrementare sau decrementare.
48

Generarea eficient a adreselor


Exemplu de la Lucent DSP 32C:

*rP *rP++ *rP-*rP++rI *rP++rIr citete datele adresate de coninutul registrului pointer rP dup citirea datelor se face auto-incrementarea registrului pointer. dup citirea datelor se face auto-incrementarea registrului pointer. dup citirea datelor se face auto-incrementarea registrului pointer, register postincrement cu valoarea coninut n registrul rI dup citirea datelor se face auto-incrementarea registrului pointer, bit reversed cu valoarea coninut n registrul rI, ca i cum biii de adres ar fi aezai n ordine invers. register indirect postincrement postdecrement

DSP cu set complex de instruciuni, specializat


Exemplificare set de instruciuni specializat (Motorola DSP56300) mac x0,y0,a x:(r0)+,x0 y:(r4)+,y0 Aceast instruciune specializat poate fi utilizat pentru a implementa un etaj (treapt) de filtru FIR ntr-un singur ciclu.
La procesoare de uz general: instruciuni de utilizare general i doar o operaie pe instruciune mov *r0,x0 mov *r1,y0 mpy x0,y0,a add a,b mov y0,*r2 inc r0 inc r1

49

50

Faciliti arhitecturale suplimentare


Instruciuni de salt ntrziat, pentru a prentmpina hazardul de control al conductei. Obinerea de viteze maxime pentru bucle (zero-overhead loops). O bucl poate fi implementat cu doar 2 instruciuni (nceputul buclei, care furnizeaz i numrul de iteraii i corpul buclei) Latena rutinei de servire a ntreruperilor determinist utilizarea unor registre - umbr pentru salvri la schimbarea contextului.
51

3. Vitez ridicat la transferul de date cu lumea extern


Periferice specializate
Bii I/ O grupai n porturi Controller DMA pe chip, cu mai multe canale Generatoare de ceas Porturi seriale sincrone Porturi paralele Timer / Counters Convertoare AD multicanal i DA pe chip
52

Schem bloc a arhitecturii SHARC (Analog Devices)


Generator adrese date PM Generator adrese date DM

Alte caracteristici
acumulatorul are 80 de bii pentru a reduce erorile asociate cu rotunjirile la nmulirea n virgul fix. utilizarea unor registre - umbr (dublur a registrelor), schimbarea coninutului ntre originale i umbre fcnduse ntr-un ciclu de ceas. circuitele de calcul a adreselor (generare adrese de date) pot fi folosite i ca ALU pentru operaii cu ntregi.

bus adrese PM Memorie Program


instruciuni i date secundare

bus adrese DM Memorie Date


doar date

Secveniator program Cache instruciuni

bus date PM
Registre de date nmulitor

bus date DM

Controller I/O (DMA) ALU Shifter

Intrri / ieiri de mare vitez (seriale, paralele, ADC, DAC, etc.)

53

54

PRELUCRARE SEMNALE DIN LUMEA REAL


Prelucrarea semnalelor digitale are trei surse fundamentale de limitare ( efectele limitrilor)
1. pierderea de informaie - preia doar eantioane, la momente discrete de timp

PRELUCRARE SEMNALE DIN LUMEA REAL


2.

pierderea de informaie pentru c eantionm semnalul doar pentru un anumit interval limitat de timp
pierdem frecvenele joase.

alierea este rezultatul eantionrii, ceea ce nseamn c nu putem distinge ntre frecvenele joase i cele nalte. Pierdem schimbrile brute. rezoluia limitat n frecven este rezultatul duratei limitate (a impulsului) de eantionare, ceea ce nseamn c nu putem distinge ntre frecvenele adiacente.

3.

erori datorate preciziei limitate (de ex. lungimea cuvntului) de stocare i n aritmetica folosit
eroarea de cuantizare

55

56

Exemplu
Convertim un semnal audio cu frecvena maxim de 20 kHz T. Shanon, eantionare cu minim 40 kHz (suficient ?)
Semnalul analogic de intrare conine i componente peste 20 kHz (inclusiv zgomot) eliminate prin filtru anti-aliere, ce nu este ideal band suplimentar de frecvene, de ex. 4 kHz pentru banda de tranziie a filtrului eantionare cu minim 48 KHz

Exemplu
Atenie c numrul de milioane de operaii pe secund nu este egal cu numrul de milioane de instruciuni pe secund (MIPS). Un procesor cu viteza 10 MIPS care poate efectua 8 operaii pe secund are aceeai performan cu unul de 40 MIPS care realizeaz doar 2 operaii pe secund. Pentru semnalul audio eantionat la 48 kHz, un cadru de 1024 eantioane are un interval de achiziie de 21.33 ms (1024 x 20.833 s). Procesorul DSP are maximum 21.33 ms ca s termine toate sarcinile de procesare cerute pentru acel cadru de date. Dac lucreaz n timp real DSP nu trebuie s piard nici un eantion, astfel c n timp ce prelucreaz primul cadru de date se face deja achiziia celui de-al doilea cadru de date. Se va folosi suplimentar accesul prin DMA la canalele de achiziie.

Rejecia introdus de filtru n banda de atenuare, asigur c nici un semnal peste 24 kHz, nu trebuie s aib amplitudinea mai mare dect din LSb
Soluie: supraeantionare i filtru analogic + filtru digital, apoi decimare n digital.

Viteza necesar procesorului DSP este influenat i de complexitatea algoritmului


Intervalul de timp maxim pentru calculul unui eantion de ieire este:

(1/48000 = 20,833 s)
Dac algoritmul cere n 20,833 s, 50 de operaii de prelucrare ntre eantioane, viteza minim a DSP poate fi:

DSPspeed =

Operations 50 = = 2.4 MOPS Sampling _ int erval 20.833s


57 58

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