Sunteți pe pagina 1din 14

PROCESORUL

component a sistemului
embedded
2
OBIECTIVELE CURSULUI
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
3
Clasificare funcional
(grosier) din punctul de vedere al gradului de integrare
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)
4
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

Acumulator
5
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.
6
Arhitectur memorie-registre (CISC)
din punctul de vedere al cii de date





7
Arhitectur de tip load-store (RISC)
din punctul de vedere al cii de date





8
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.
9
Fetch
I
Decode I Fetch
Op
Execute
Secvenial
Fetch Decode Read Execute
Pipelined
Fetch Decode Read Execute
Superscalar
Fetch Decode Read Execute
Fetch Decode Read Execute
Superpipelined
10
Procesoare digitale de semnal
(DSP)
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
11
INTRODUCERE N
ARHITECTURA
PROCESOARELOR DIGITALE
DE SEMNAL (DSP)
n expunere s-au utilizat exemple de la firma Texas
Instruments: Dr. NaimDahnoun, Bristol University,
Texas Instruments 2004
12
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
13
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.
14
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
15
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)
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
16
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
17
ALGORITMI SPECIFICI PENTRU DSP
Operaia de baz n algoritmii DSP este suma de produse (Sum of
Products SOP or Multiply and Accumulate - MAC)
18
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.
19
CARACTERISTICILE GENERALE ALE
PROCESOARELOR DSP
1. Uniti aritmetice specializate de mare
vitez i precizie
2. Arhitecturi performante orientate pe
prelucrarea datelor i care permit accesri
multiple la memorie.
3. Vitez ridicat la transferul de date cu
lumea extern
20
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):
1011 1011
x 1110 x 1110
1011 1011
x 1110 x 1110
Hardware Hardware Microcode Microcode
10011010 10011010 0000 0000
1011. 1011.
1011.. 1011..
1011... 1011...
10011010 10011010
Cycle 1 Cycle 1
Cycle 2 Cycle 2
Cycle 3 Cycle 3
Cycle 4 Cycle 4
Cycle 5 Cycle 5
21
EXEMPLU DE ORGANIZARE
Y
Data Bus
Reg X Reg Y
nmulitor

Sumator
(ALU)

Acumulatoare
(lungime extins)
Shifter
Shifter
Round
X
Data Bus
Reg X Reg Y
22
Virgul mobil / Virgul fix
Virgula mobil este necesar n aplicaiile care
necesit:
Precizie mare
Domeniu dinamic mare
Raport semnal-zgomot mare
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
23
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.
24
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).
25
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)
Corect = 1.01111 = -1+0,484375 = - 0,515625
Rotunjit (g) = 1.1 = -1+0,5 = - 0,5 (diferena 0,015625)
Trunchiat = 1.0111 = -1+0,4375 = -0,5625 (diferena 0,0625)
1.0000 + -1 +
0.01111 +15/32
1.01111 rotunjit la 1.1000 corect!
1.0111 trunchiat, incorect!
26
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
27
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
Convergent (round to nearest even) : < 1/ 2 rotunjire n
jos, > 1/ 2 rotunjire n sus, = 1/ 2 rotunjire ctre cel mai
apropiat par
28
Operaii DSP tipice
lucrul cu matrici
c[0]
z
-1

c[1]
z
-1

c[2]
adunare
nmulire
ntrziere
29
Probleme la aritmetica n virgul fix
Ecuaia urmtoare este specific pentru majoritatea algoritmilor DSP:
Dou probleme la utilizarea ntregilor cu semn sau fr semn:
Depire la nmulire
Depire la adunare
( ) ( ) ( )

=
=
1
0
N
k
k n x k a n y( ) ( ) ( )

=
=
1
0
N
k
k n x k a n y
30
16-bii x 16-bii = 32-bii
Exemplu utiliznd reprezentare pe 4 bii
Depire la nmulire
3 3
8 8
24 24
x x
0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0
x x
1 1 0 0 0 0 0 0 0 0 0 0 0 0 1 1
24 nu poate fi reprezentat cu 4 bii
31
32-bii + 32-bii = 33-bii
Exemplu utiliznd reprezentare pe 4 bii
Depire la adunare
1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0
+ +
8 8
8 8
16 16
+ +
0 0 0 0 0 0 0 0 1 1
16 nu poate fi reprezentat cu 4 bii
32
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
33
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
0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0
x x
1 1 0 0 0 0 0 0
1 1 1 1 1 1 1 1
0 0 0 0 0 0 1 1
3 3
8 8
24 24
15 15 Saturat Saturat
34
Soluie - Saturarea rezultatului
Numere cu semn:
Dac -8 A x B 7 resultatul = A x B
Dac A x B > 7 resultatul = 7
Dac A x B < -8 resultatul = -8
0 0 0 0 1 1 1 1
1 1 0 0 0 0 0 0
x x
1 1 0 0 0 0 0 0
1 1 0 0 0 0 0 0
1 1 1 1 1 1 0 0
3 3
- -8 8
- -24 24
- -8 8 Saturat Saturat
35
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
36
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.2 = 0.12
0.9 x 0.9 = 0.81
0.1 x 0.1 = 0.01
0.11 x 0.15 = 0.0165
37
Numere subunitare cu semn
Reprezentare:
- -2 2
0 0
2 2
- -1 1
2 2
- -2 2
2 2
- -(N (N- -1) 1)
+ +
= MAX+2 = MAX+2
- -(N (N- -1) 1)
= 1 = 1
0 0 1 1 1 1 1 1 = MAX = MAX
0 0 0 0 0 0 1 1 = 2 = 2
- -(N (N- -1) 1)
1 1 0 0 0 0 0 0
MAX = 1-2
-(N-1)
Numrul cel
mai mare:
Care este numrul cel mai mare reprezentabil?
0 0 0 0 1 1
- -2 2
0 0
2 2
- -1 1
2 2
- -2 2
1 1
2 2
- -(N (N- -1) 1)
- -1 1 0.5 0.5 0.25 0.25
38
Numere subunitare cu semn
Reprezentare:
0 0 0 0 1 1
- -2 2
0 0
2 2
- -1 1
2 2
- -2 2
1 1
2 2
- -(N (N- -1) 1)
1 1 0 0 0 0
- -2 2
0 0
2 2
- -1 1
2 2
- -2 2
0 0
2 2
- -(N (N- -1) 1)
= MIN = = MIN = - -1 1
Pentru reprezentare pe 16 bii:
MAX = 1 - 2
-15
= 0.999969
MIN = -1
-1 x < 1
Cel mai mic
numr:
Care este numrul cel mai mic?
39
Subunitare Extensie de semn
Pentru a pstra aceeai rezoluie de reprezentare cu cea a
operanzilor se selecteaz doar urmtorii 4 bii:
1 1 1 1 1 1 0 0
Sign extension Sign extension
0 0 1 1 1 1 0 0 a= a= = 0.5 + 0.25 = 0.75 = 0.5 + 0.25 = 0.75
1 1 1 1 1 1 0 0 b= b= = = - -1 + 0.5 + 0.25 = 1 + 0.5 + 0.25 = - -0.25 0.25
0 0 0 0 0 0 0 0
0 0 1 1 1 1 0 0 . .
0 0 1 1 1 1 0 0 . . . .
1 1 0 0 1 1 0 0 . . . . . .
0 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1

= = - -1 1 + 0. + 0.5 5 +0.25 +0.25 = = - -0. 0.2 25 5 (n loc de (n loc de - -0.1875) 0.1875)
40
Explicaie (C2)
ntregi: Subunitar (4 bii mrime)
11101=-2
4
+2
3
+2
2
+2
0
=-3 -3/16=-0,1875
111101 = -2
5
+ 2
4
+2
3
+2
2
+2
0
=-3
1111101= -2
6
+ 2
5+
2
4+
2
3
+2
2
+2
0
=-3
extensie de semn
41
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


Memorie
program

Cale de date
Memorie
date
X
Memorie
date
Y
42
(a) Arhitectur von Neumann (memorie unic)
bus adrese
bus date
Memorie
date i
instruciu
CPU
43
(b) Arhitectur Harvard (memorie separat)
bus adrese PM
bus date PM
Memorie
de
Program
doar
instruciuni
CPU
bus adrese DM
bus date DM
Memorie
de Date
doar date
44
(c) Arhitectur Super Harvard (memorie
separat, cache de instruciuni, controller I/O)
bus adrese PM
bus date PM
Memorie
de
Program
instruciuni
i date
secundare
CPU
bus adrese DM
bus date DM
Memorie
de Date
doar date
Cache
Instruciuni
Controller
I/O
date
45
Arhitectura von Neumann modificat
Exemplu: Lucent DSP32C la 20 MHz
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.
46
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) 1 (001) =>4 (100)
2 (010) =>2 (010) 3 (011) =>6 (110)
4 (100) =>1 (001) 5 (101) =>5 (101)
6 (110) =>3 (011) 7 (111) =>7 (111)
Moduri de adresare indirect prin registre cu auto
post/pre incrementare sau decrementare.
47
Generarea eficient a adreselor
Exemplu de la Lucent DSP 32C:
*rP register indirect citete datele adresate de coninutul registrului pointer rP
*rP++ postincrement dup citirea datelor se face auto-incrementarea registrului pointer.
*rP-- postdecrement dup citirea datelor se face auto-incrementarea registrului pointer.
*rP++rI register postincrement
dup citirea datelor se face auto-incrementarea registrului pointer,
cu valoarea coninut n registrul rI
*rP++rIr bit reversed
dup citirea datelor se face auto-incrementarea registrului pointer,
cu valoarea coninut n registrul rI, ca i cum biii de adres ar fi
aezai n ordine invers.

48
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
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.
50
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
51
Schem bloc a arhitecturii SHARC (Analog Devices)

Generator
adrese date
PM
Generator
adrese date
DM
bus adrese PM bus adrese DM





Memorie
Program

instruciuni i
date
secundare





Memorie
Date


doar date
Secveniator program
Cache
instruciuni
Registre
de date
bus date PM bus date DM
nmulitor
ALU
Shifter

Controller I/O
(DMA)
Intrri / ieiri de mare
vitez (seriale,
paralele, ADC, DAC,
etc.)
52
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 fcndu-
se ntr-un ciclu de ceas.
circuitele de calcul a adreselor (generare adrese de date)
pot fi folosite i ca ALU pentru operaii cu ntregi.
53
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
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.
54
PRELUCRARE
SEMNALE DIN LUMEA
REAL
2. pierderea de informaie pentru c eantionm semnalul
doar pentru un anumit interval limitat de timp
pierdem frecvenele joase.
3. erori datorate preciziei limitate (de ex. lungimea
cuvntului) de stocare i n aritmetica folosit
eroarea de cuantizare
55
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
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:
MOPS
s erval Sampling
Operations
DSP
speed
4 . 2
833 . 20
50
int _
= = =

56
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.

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