Sunteți pe pagina 1din 23

Curs 1

1.Dezvoltarea unei aplicatii de la concept la implementare

Pas 1 Simularea - Limbaje de nivel inalt traditionale (C, Pascal)


-Limbaje matematice (Matlab)
-Instrumente bazate pe diagrame bloc (Simulink)
-Instrumente de manipulare si afisare de semnale
-Instrumente de proiectare de filtre
-Instrumente de control
Pas 2 Analiza erorilor de virgula fixa Matlab, DSPwork
Pas 3 Evaluarea de timp real completeaza simularea pentru aplicatii care au nevoie de
comportarea de timp real (sinteza de voce)
2.Instrumente de dezvoltare DSP
Sistemul clasic de dezvoltare software conceptia, evaluarea, proiectarea hardware si
software, depanarea, prototipul si productia
Asamblorul pornete de la programe surs scrise n limbaj de asamblare i genereaz fiiere
obiect n limbaj main. Fiierele surs pot s conin instruciuni, directive de asamblare i
macro directive. Directivele de asamblare controleaz aspecte variate ale procesului de
asamblare, ca: formatul listingului surs, definirea simbolurilor i modul de plasare a codului
n seciuni.
Editorul de legturi combin fiierele obiect ntr-un singur modul obiect executabil,
realizeaz operaii de relocare i rezolv referinele externe.
Bibliotecarul face posibil gruparea mai multor fiiere ntr-un singur fiier bibliotec.
Compilatorul pentru limbaj de nivel nalt permite tratarea programelor surs scrise n
limbajul de nivel nalt corespunztor. Dup compilare se obine, n general, un fiier surs n
limbaj de asamblare, care se asambleaz i se leag aa cum s-a descris mai sus. Limbajul C cel mai popular limbaj de nivel nalt utilizat - standardul ANSI.
Simulatorul software - simuleaz modurile de lucru ale procesorului digital de semnal.
Instrument de dezvoltare i verificare a programului - fr hardware-ul int.

Depanatorul (Debbuger) este o interfa software avansat executat pe calculatorul gazd i


lucreaz cu suportul hardware de dezvoltare i/sau de depanare existent (modul de
evaluare sau emulator). Depanatoarele permit controlul total al resurselor sistemului i al
execuiei programelor de ctre procesorul digital de semnal din sistem prin comenzi date de
ctre operator
Sistemul de dezvoltare pentru software conine o placheta cu procesor numeric de semnal i
un pachet de programe executabile pe gazd (asamblor, editor de legturi, biblioteci pentru
procesor, depanator etc.); acestea alctuiesc un sistem ieftin de depanare a software-ului n
timp real. Poate fi utilizat, de asemenea, pentru simulare de mare vitez, cu cod executat pe
procesorul real i fiiere de I/O care nlocuiesc perifericele finale.
Emulatorul este un instrument de depanare n timp real care se conecteaz la sistemul int,
pe de o parte, i la un sistem de dezvoltare, pe de alt parte, i permite controlul execuiei
programului i a strii procesorului digital de semnal n condiiile reale de funcionare ale
sistemului int.
3.Aplicatii ale DSP. Aplicatii clasice .
1.Aplicatii clasice < 1000MIPS: Telefonie celulara, Sinteza voce, Codare/decodare,
modulare, Egalizare , estimare canal, Auto: entertainment, securitate (ABS, ESP, etc)
2.Aplicatii avansate > 1000MIPS: Multimedia, Comunicatii avansate(Smartphone,
Statii de baza), Aparatura audio-video (Televizoare, STB = Set-Top Box).
4.Enumerati cateva aplicatii avansate DSP
-Multimedia (placa de achizitie multimedia)
-Comunicatii avansate (smartphone, statii de baza)
-Aparatura audio-video (televizoare, STB)
-Ex: decodor MPEG (placi receptie DVB-S, decodor VCD), ATM switch, supraveghere IP,
compresie imagine statica camera foto, playere multimedia MP3, decodere semnale TV
digital DVB, procesoare ARM completeaza DSP hibrid dual-core.

Curs 2
1. Prelucrarea digitala a informatiei analogice. Sistem de prelucrare. Caracteristici ale
DSP.
Prelucrare primara filtrare, conversie analog / numerica, corelatie, extragere zgomot
Prelucrare secundara: recunoastere forme, structuri, luare decizii
Componentele de tip DSP implicate in ambele aspecte
Sistem de prelucrare de semnal digital:

Caracteristici ale procesarii numerice DSP:


-prelucrare in timp real Te/Tr>1
Te-perioada de esantionare
Tr durata rezolvarii taskului pe un esantion
-caz particular FFT: prelucrare pe blocuri T e = TFFT/N
Tr=Tcalcul/N
TFFT interval intre blocuri
N nr de esantioane pe bloc

2.Ce este DSP? Cazuri de aplicare a DSP. Domenii temporale si in frecventa


DSP- prelucrarea (numerica de semnal) O metoda de a prelucra semnale (reprezentate de o secvena de numere) utiliznd tehnici
matematice pentru a realiza transformri sau a extrage informaii
Digital Signal ProcessING concepte matematice si stiintifice
Digital Signal ProcessOR un sistem sau circuit care realizeaza DSP
Forme de aplicare a DSP: - domeniul temporal (amplitudine in functie de timp) si domeniul
frecventa (amplitudine(frecventa))
-Procesoarele DSP opereaza in domeniul temporal este posibila operarea in domeniul
frecventa prin simulare software
-Relatia intre domeniul timp si frecventa:

3.DSP generalitati, caracteristici


-Facilitati dotare cu ALU specializat: MAC (multiplicator-acumulator): shifter
- Aparut in anii 70 ca solutie de sistem pentru procesarea de semnal radar, voce
- Relansat in anii `80 ca procesor single chip Texas Instruments numele de DSP
devine brand
- intre ASIC si microprocesoare de uz general (GPP)
-Prima generatie prelucrari in virgula fixa
- arhitectura Harvard
- frecventa de tact 5-15 MHz
- reprezentanti TMS320C10
-A doua generatie prelucrari in virgula fixa
- lungime cuvant 16 biti
- lungime acumulator 24-32 biti
-frecventa de tact 20-50 MHz
-arhitectura Harvard
-memorie maxima adresabila: 64K cuvinte date, 4 cuvinte program
- reprezentanti: TMS320C20, TMS320C25, ADSSP-2101, DSP5000
-A treia generatie aparitia de prelucrari in virgula mobil
- lungime cuvant 32-64 biti
- frecventa de tact 40-50MHz
- reprezentanti: TMS320C30, DSP96000(Moto)
-A patra generatie toate caract procesoarelor din generatia a treia
- liniile de comunicatie interprocesor pentru sisteme multiprocesor
- facilitati pentru controlul proceselor paralele
- facilitati pentru interfata cu perifericele multimedia
- reprezentanti: TMS320C40, TMS320C80
-A cincea generatie introducerea de arhitecturi de inalta performanta (VLIW)
- generalizarea arhitecurilor multiprocesor

-o programare simplificata prin liniarizarea externa a arhitecturii


multiprocesor
- viteze de functionare de peste 200MHz (peste 5000MIPS)
- reprezentanti: TMS320C6x, TriMedia 1xxx, StarCore SC140
-A sasea generatie procesoare multiple si multi core (DSP+ARM)
- fammilii extinsse procesoare media (multimedia)
4. DSP definitii. Caracteristici comune si aplicatii
-DSP - microprocesoare destinate special prelucrrii numerice de semnal - manipularea
matematic a semnalelor reprezentate digital
- DSP sunt structuri de prelucrare numerice , cu o arhitectur i un set de instruciuni
optimizate i adaptate prelucrrii eficiente de semnal analogic reprezentat numeric.
- Explicatii: - prima definitie aplicabila initial DSP, astazi nu le mai putem considera doar
microprocesoare arhitectura unora este mult mai complexa nuclee de procesare duale,
triple
- Caracteristici comune ale DSP - posibilitatea de a realiza operaii repetate de nmulireacumulare (denumite n literatur operaii MAC- multiply and accumulate) ntr-un singur
ciclu de instruciune
- posibilitatea de a realiza accesarea multipl a memoriei ntr-un singur ciclu
de instruciune
- prezena uneia sau a mai multor uniti dedicate de generare a adreselor
- instruciuni pentru o buclare ( salt, apelare subrutine) eficient
- interfee seriale sau paralele, mecanisme de gestiune a ntrrilor i a
ntreruperilor, mecanisme de gestiune a DMA transfer eficient date
-Aplicatii DSP variate- de la sisteme radar (militare) la electronica din bunuri de larg
consum
- aplicatii ieftin de mare serie: telefoane celulare, unitati de disc, modemuri
- prelucrarea de volume de date importante cum este in cazul: sonar, radar,
explorari seismice
- ultimii ani: aplicatii multimedia
5.Criterii de avaluare. Tipuri de procesoare DSP
A. Formatul aritmetic - unele utilizeaz aritmetica n virgul fix , unde numerele sunt
reprezentate ca ntregi sau fracii ntre 1.0 i +1.0.
- alte procesoare utilizeaz aritmetica n virgul mobil , unde valorile sunt
reprezentate de o mantis i de un exponent conform relaiei mantisa x 2^exponent .
Mantisa este n general o fracie n intervalul 1.0 i +1.0, in timp ce exponentul este
un ntreg care reprezint numrul de poziii cu care trebuie deplasat stnga punctul
binar (termen definit analog cu punctul zecimal) pentru a obine valoarea reprezentat.
Virgula fixa ieftine, simple
Virgula mobila mai flexibile, gama dinamica mai mare
Alternativa-block floating point (emulare virgula mobila pe procesoare in virgula fixa)

B. Lungimea cuvantului de date


- virgula fixa 16 biti (Texas Instruments); 20-24 biti (Motorola); 32 biti (procesoare
avasate0
- virgula mobila 32 biti (24-mantisa, 8 exponentul)-IEEE 754
C. Viteza de prelucrare
- Prima metoda de masurare durata unui ciclu de instructiune; intervalul de timp
necesar ca sa se execute cea mai rapida intructiune a procesorului (masurata de
exemplu in us)
- Valoarea inversa rata de executie a intructiunilor MIPS (mega instructiuni per
secunda)
- A doua metoda compararea unei operatii de baza MAC (Multiply and
accumulate)
- A treia metoda teste benchmark programe complexe (FFT)
- Procesoare virgula mobila MFLOPS (Mega floating point operations per second)
D. Organizarea memoriei memorii multiport
- Memorii separate arhitecturi Harvard:

E. Consumul circuitului si managementul puterii absorbite


- Moduri sleep sau idle adormirea proc. in cazul neutilizarii
- Divizoare de ceas programabile reducerea frecventei
- Controlul perifericelor dezactivarea acestora in cazul neutilizarii
F. Costul circuitului
- procesoare ieftine : aplicatii de masa , telefoane mobile.
- procesoare performante : aplicatii profesionale

Curs 3
1. Definirea procesoarelor media
-

Unii consider c este o categorie de marketing mai degrab dect un termen tehnic
Definitie: - un procesor multiplu single-chip sau VLIW
- Arhitecura SIMD extinsa
- Model de programare CPU like
- Scopul este prelucrarea audio/video in timp real
MP- o combinatie a caracteristicilor microporcesoarelor (CPU), DSP si procesoarelor
VLIW (Very Long Instruction Word)
MP- convergenta a mai multor tehnologii:

MP - Un procesor cu o arhitectura, periferice si


un set de instructiuni optimizate pentru
prelucrarea in timp real, simultana si eficienta, a
fluxurilor audio-video si a datelor de organizare
atasate acestora

2. Predecesori procesoare media


- TMS320C80 1994 - MVP: Multimedia Video Processor
Bazat pe cercetrile University of - Washington Image Computing Laboratory
1MP(CPU)+4 PP(VLIW DSP) +TC+ crossbar+ memorie segmentat redus
Utilizat pentru aplicaii medicale, militare, MPEG2 encoder
4 procesoare DSP virgul fix
Un procesor RISC
Controler video (VC), controler transfer (TC)

Curs 4
1. DSP de inalta performanta (caract principale). Tipri de arhitecturi
- Abatere de la arhitecura clasica a DSP
- Arhitecutir de tip MIMD
- Arhitecturi multiprocesor
- Model de programare de tip DSP
- Programare in limbaje de nivel inalt C
- Optimizarea e facuta de compilator (cvasi-paralel)
Tipuri de arhitecturi
- Arhitectura acumulator
- Arhitectura Load-store
- Arhitectura memory-register

2. Accelerarea in procesoare paralele. Legea lui Amdahl


-

Scopul arhiteturilor paralele in DSP/PM de inalta performanta este accelerarea operatiilor


Accelerare = (Durata de executie seriala)/Durata executiei paralele legea lui Amdahl
Sp=ti/tp;

tsec durata op secventiale tpar-durata op paralele


ex: p=10, 10% secv, 90% paral -> Sp=5.26
3. Arhitectura unitati de baza ale C6000

4. Filtre FIR. Pasi de calcul


-

ecuatie cu diferente finite (vector dot product): y(n)=2x(n)+3x(n-1)+4x(n-2)+5x(n-3)


graful de semnal:

produs intre vector sesantioane si vector coeficienti


stocare intrare in bufferul circular, in aria de coef
Fiecare celula de filtrare:
Extragere esantion
Extragere coeficient
Extragere operand
Inmultire termeni
Acumulare a rezultatului multiplexarii
Calcului unui termen de filtrare intr-un ciclu
doua accese la memoria de date si unul la memoria de program
moduri de adresare autoincrement sau autodecrement
adresare modulo pentru linii de intarziere sau buffer circular

5. Etaje pipeline in C6000. Descriere


-

Operatiile CPU
Fetch intruction from (on-chip) program memory
Decode intruction
Execute intruction including reading data values

Suprapunere operatii pentru cresterea performantei


Functionare a CPU cu pipeline pentru a mari viteza ceasului raportat la o
implementare secventiala
Unitati functionale paralele separate
Interfete I/O care nu incarca CPU
- Extragere program (F). Ct in 4 faze
Generare fetch address(FG)
Trimitere adresa la memorie (FS)
Asteptare pentru data ready (FW)
Citire opcode (FR)
- Pachetul extras are 8 instructiuni de 32 biti
-

Stadiul de decodare (D) ct din doua faze


Dispecerizare instructiuni la unitatea functionala (DP)
Instructiunea decodata la unitatea functionala (DC)

Curs 5-6

1. Schema bloc generala a DSP C6000

2.Instructiuni de incarcare. Descriere. Sintaxa si versiune


- Folosite pentru incarcarea continutului memoriei in registre LDB, LDH, LDW, LDDW
- Procesorul este adresabil pe bytes, ceea ce inseamna ca fiecare byte are o adresa unica (pe 32
biti)
- Sintaxa: LD *Rn,Rm
- Rn registru care contine adresa operandului care se incarca; Rmregistrul destinatie
- Nr de bytes incarcati in registrul destinatie depinde de insructiunea aleasa:
LDB loads one byte (8 biti)
LDH jumatate de cuvant -16 biti
LDW un cuvant 32 biti
LDDW dublu cuvant 64 biti
LD singura nu exista

3.Instructiuni MVKH si MVKl


Instructiunea MVKL permite incarcarea unei constante de 16 biti intr-un registru:
MVKL .? a, A5
O adresa completa e formata din 32 de biti
Instructiunea nu incarca o valoare pe 16 biti pentru ca toate instructiunile sunt pe 32 biti
MVKH se utilizeaza pentru a incarca o valoare pe 16 biti:
MVKH .? a,A5
Pentru a incarca o adresa de 32 biti intr-un registru se poate fol:
MVKL a, A5
si
MVKH a, A5
Intotdeauna se foloseste MVKL apoi MVKH
4.Bucle conditionate. Registre utilizate
Bucla este creata utilizand instructiunea B
Sintaxa pentru instructiune conditionata:
[condition] Instruction Label
Ex:
[B1] B loop
Conditia poate fi unul din registrele urmatoare: A1, A2, B0, B1, B2
Orice instructiune poate fi conditionata
Conditia poate fi inversata prin adaugarea simbolului ! :
[!condition] Instruction Label
Ex:
[!B0] B loop; salt daca B0 = 0
[B0] B loop; salt daca B0!=0
5.Instructiuni de buclare(salt). Bucle relative si relative la registru
toate instructiunile sunt codate in 32 biti, astfel eticheta va avea o gama dinamica mai mica
decat 32 biti pentru ca si instructiunea B trebuie codata
B .S1 label
- salt relativ, eticheta limitata la un offset +/- 220; prin specificarea unui
registru ca operand in loc de o eticheta, e posibil sa avem un salt absolut; permite o gama
dinamica de 232
B .S2 register
- salt absolut functioneaza doar cu .S2!
6.Pointeri in C6000
*R pointerii sunt utlizati dar nemodificati; R-orice registru
*+R[disp] +Pre-offset
*-R[disp] -Pre-offset
Pointerii sunt modificati inainte de a fi utilizati si apoi refacuti la valorile anterioare
[disp] specifica nr de elem in DW, W, H (16 biti) sau B(8 biti)
Disp = R sau orice constanta pe 5 biti; R-orice registru
*++R[disp] Pre-increment
*--R[disp] Pre-decrement
Pointerii sunt modificati inainte de utilizare si nu sunt refacuti la valorile initiale
*R++[disp] Post increment
*R[disp] Post-decrement
Pointerii sunt modificati dupa utilizare si nu sunt refacuti la val anterioare

7.Ce sunt caile incrucisate? Date si adrese

- Sunt necesare pentru schimbul de operanzi intre cele doua parti (A si B sau 1 si 2) care sunt
-

necesare procesorului, pentru cresterea puterii de procesare


O calea incrucisata leaga o parte a CPU cu cealalta
Tipuri cai incrucisate de date si cai incrucisate de adrese
Caile de date incrucisate pot fi considerate ca si registrelorsi cai incrucisate ale registrelor.
Aceste cai incrucisate permit operanzilor dintr-partedintr-o parte sa fie utilizati de cealalta
parte. Sunt doar doua cai incrucisate:
O cale care transporta date din partea B la partea A, 1X.
O cale care transporta date din partea A in partea B, 2X
Caile incrucisate de date se aplica doar unitatilor .L, .S si .M
Caile de date incrucisate sunt foarte utile, totusi sunt unele limitari in utilizarea lor:
Registrul trebuie sa fie in aceeasi parte cu unitatea
Registrele sursa - pina la o cale incrucisata pe pachet de executie pe parte
Pachet de executie : grup de instructiuni care se executa simultan
Cai incrucisate de adrese pointerul trebuie sa fie in aceeasi unitate
Conditiile nu utilizeaza cai incrucisate: Daca un registru conditional vine din cealalta parte, nu
foloseste o cale incrucisata (date sau adrese)
8.Cai incrucisate. Sumar

Date - Registrul destinatie de aceeasi parte cu unitatea


Registrele sursa pina la o cale incrucisata pe pachet de partede executie pe parte
Utilizati x pentru a indica incrucisarea
Adrese - Pointerul trebuie sa fie pe aceeasi parte cu unitatea
Datele pot fi transferate de/la orice parte
Acces incrucisat: ambele incrucisate sau nicunul
Instructiunile conditionate nu utilizeaza caile incrucisate.
9.Tipuri de operanzi

Operanzii pot fi - Constante pe 5-biti (sau 16-bit pt. MVKL si MVKH).


- Registre 32-biti
- Registre pe 40-biti
Un registru pe 40-biti poate fi continut prin concatenarea a doua registre
Totusi, sunt 3 conditii care trebuie sa fie respectate :
Registrele trebuie sa fie din aceeasi parte
Primul registru trebuie sa fie par, al doilea impar
Registrele trebuie sa fie consecutive
10.Transferuri de date registru-registru

Pentru a muta continutul unui registru (A sau B) in alt registru (B sau A) se utilizeaza
instructiunea move MV , ex.: MV A0, B0; MV B6, B7
Pentru a muta continutul unui registru de control in alt registru (A sau B) sau viceversa se
utilizeaza instructiunea MVC , ex.: MVC IFR, A0; MVC A0, IRP

11. Schema bloc finala pentru C6x

12.Datelor impachetate (quad si dual) la C64x. Exemple de operatii posibile


-

Procesare date impachetate - Extensii de instructiuni Quad 8-bit si Dual 16-bit


Hardware suplimentar unitati functionale- Caracteristici hardware speciale
Ortogonalitate extinsa - resurse mai flexibile
Quad 8 bit adunare, scadere, adunare saturata, inmultire, dot products (a+bj)*(c+dj), pack
operations, saturated pack operations, unpack operations, max, min
Dual 16 bit - adunare, scadere, adunare saturata, inmultire, dot products (a+bj)*(c+dj),
pack operations, saturated pack operations, unpack operations, max, min, shiftare, valoarea
absoluta

13.Probleme de codare
-

Utilitati functionale cate pot realiza functia ADD?Numitile- 6: .L1, .L2, .D1, .D2, .S1, .S2
Care suporta incarcari /stocari in memorie? - .M .S .D .L - .D
Harta memoriei cate game externe exista la `C6201? 4
Cod condtionat ce registre pot fi utilizate ca registre conditionale? A1, A2, B0, B1, B2
Ce instructiuni pot fi conditionate? toate
Performanta care e ciclul de instructiune al `C6711? CLKOUT1
Cum poate `C6711 sa execute 1200 MIPS? 1200 MIPs = 8 instructiuni (units) x 150
MHz

14.Probleme de codare

- Mutare continut A0 ->A1: MV .L1 A0, A1; sau ADD .S1 A0,0, A1; sau MPY .M1, A0,
-

1, A1 (A0 poate fi doar pe 16 biti)


Muta continutul CSR -> A1
MVC CSR, A1
Sterge registrul A5
ZERO .S1 A5; sau SUB .L1 A5, A5, A5;
sau MPY .M1 A5,0,A5 ;
sau CLR .S1 A5,0,31,A5
sau MVK .S1 0,A5
sauXOR .L1 A5,A5,A5
2
A2=A0 +A1
MPY .M1 A0,A0,A2
ADD .L1 A2,A1,A2

- Daca (B1!=0) atunci B2=B5*B6


[B1] MPY .M2 B5,B6, B2
- A2 =A0*A1+10 MPY A0,A1,A2
ADD 10,A2,A2
- Incarcare constanta unsigned (19ABCh) in regisrul A6
mvk1 .s1 0x00019ABC, A6
mvkh .s1 0x00019ABC, A6

- Incarcare A7 cu continutul mem1 si post incrementarea pointerului selectat


load_mem1:

MVKL .S1 mem1, A6


MVKH .S1 mem1, A6
LDH .D1 *A6++, A7

Curs 7-8

1. Programarea DSP in C si lmbaj de asamblare. Eficienta acestora


-

C si C++ -> Compilator + optimizator -> 80-100%


Limbaj Asamblare > Asamblor + Optimizator -> 90-100%
Assamblor > Asamblor optimizat manual ->100%
2. Ce este DSP/BIOS si componentele sale

DSP(SYS)/BIOS este un sistem de operare care asigura:


interfata grafica pentru setarea statica a sistemului
Etapizarea (scheduling) de timp real
Analiza de timp real (RTA)
Schimb de date de timp real (RTDX) intre gazda (host) si target (sistem)
DSP/BIOS era elaborat initial doar pentru procesoare DSP. Odata cu unificarea mediilor de
dezvoltare sub CCS4 acest concept s-a generalizat pentru mai multe procesoare Texas sub
numele SYS/BIOS
Componente:
Utilizatorul scrie cod (C/asamblare) utilizand biblioteca DSP/BIOS
Utilizatorul poate utiliza instrumentele de configurare pentru setarea sistemului
Toate fisierele generate constituie un proiect
Proiectul este apoi compilat, asamblat si linkeditat de instrumentele de generare cod
pentru a genera un fisier executabil (*.out).
Exista unele pluginuri DSP/BIOS care pot fi folosite, pe moment, pentru testare, in
timp ce tinta functioneaza
Simulatorul/debuggerul si emulatorul pe calc. gazda sunt parti din Code Composer
Studio.
Gazda (host) si tinta comunica prin conexiunea JTAG (Joint Test Action Group)
(ssya002c.pdfssya002c.pdf))
3. Ce este un scheduler?

Este concept cheie in multitaskingul computational si designul sistemelor operationale


multiproces si in designul sistemelor de operare in timp real. In sistemele de operare
moderne, there are typically many more processes running than there are CPUs available to

run them. Scheduling refers to the way processesprocesses are assigned to run on the
available CPUs. This assignment is carried out by software known as a scheduler.
-

The sheduler is concerned mainly with:


CPU utilization - to keep the CPU as busy as possible.
Throughput - number of process that complete their execution per time unit.
Turnaround - amount of time to execute a particular process.
Waiting time - amount of time a process has been waiting in the ready queue.
Response time - amount of time it takes from when a request was submitted until the
first response is produced.
Fairness - Equal CPU time to each thread.
4. Nivele de prioritati in DSP/BIOS

Prioritati HWI setate de hardware OISR pe intrerupere


14 nivele de prioritate SWI mai multe la fiecare nivel
15 nivele de prioritate pentru TSK TSK multiple la fiecare nivel
Mai multe functii IDL bucla continua, HWI declansate de intreruperea hardware, IDL
ruleaza ca thread de background
SWI nu poate astepta, revine intotdeauna din functie
TSK revine cand nu e necesar, altfel e o bucla infinita
5. Diferenta intre intreruperi software si taskuri
Un task poate fi suspendat in timp de o intrerupere software (SWI) ruleaza pana la
terminare
Taskurile ruleaza normal intr-o bucla infinita, iar in bucla taskull testeaza semaforul
Un task se poate suspenda singur
6. Diferenta intre printf si LOG printf

LOG_printf() append a formatted message to a message log


Functia printf() necesita >34000 cicluri
LOG_printf()= fast printf
Functionarea modulului LOG este rapida si se executa in perioade constante log_printf()
~32 cicli
7. Prezentarea sumara a RTDX

RTDX real Time Data Exchange


RTDX permite comunicarea neinvaziva bidirectionala intre PC si DSP (in timpul IDL).
Deoarece ruleaza in IDL (default), are o prioritate mai redusa decat codul de timp real.
RTDX este utilizat de DSP/BIOS RTA, dar este disponibil direct programatorului DSP
(util pentru testare sau daca echipamentul final este rezident in PC).
Viteza limitata de :
Tipul de conexiune JTAG (paralela, PCI, etc.).
Nivelul de activitate al DSP
Code Composer Studio controleaza fluxul de date intre host (PC) si target

8. Sumar al DSP/BIOS
-

usor de utilizat economiseste timp


dim redusa(<2Kw) incape in spatii limitate de memorie
executie rapida ideala pt sisteme de timp real
analiza de timp real vizualizare parametrii sistem in cursul executiei fara breakpoints si
fara incarcarea executiei- testare executie si executie testare
set de functii de bibl se utiliz doar ce este necesar pt reducerea dimensiunii
extensibilitate OS Kernel complet care permite functii ulterioare
In versiunea pentru CCS 3.1 DSP/BIOS nu suporta multiprocesarea.
Sistemul de operare VSPWorks de la WindRiver Systems suporta multiprocesarea.
Alte sisteme de operare posibile : Linux, QNX, Android, WinCEAndroid, WinCE
Unele din aceste sisteme sunt posibile doar pentru arhitecturile hibride (care au si ARM)

Cursul 9
1. Filtre FIR. Ecuatia caracteristica. Structura (slides 4-5)
Coeficientii filtrului:
x[n]- reprezinta intrarea filtrului,
y[n] - reprezinta iesirea filtrului,
Structura:

-reprezinta coeficientii filtrului,


N -este numarul de coeficienti (ordinul filtrului).

2. Forma directa FIR (slide 27)


Forma directa pentru un filtru FIR:

3. Elementele codarii/decodarii JPEG (slides 43-44)


Pentru realizarea codarii JPEG , o imagine (color sau gri) este intai
subdivizata in blocuri de 8x8 pixeli.
Discrete Cosine Transform (DCT) este realizata pe fiecare bloc.
Aceasta genereaza 64 coeficienti care sunt apoi cuantizati pentru a le
reduce magnitudinea
Coeficientii sunt apoi reordonati intr-o arie unidimensionala intr-o
maniera in zigzag pentru codarea entropica.
Compresia este realizata in doi pasi; primul este in cursul cuantizarii iar
al doilea in cursul procesului de codare entropica.
Decodarea JPEG este procesul de codare inversat

4. Transformata DCT. Calculul 2D DCT folosind 1D DCT (slides 45- 48)


-Codecurile bazate pe DCT utilizeaza o versiune bidimensionala a transformatei.
-DCT 2-D si inversa sa (IDCT) a unui bloc de N x N sunt prezentate mai jos:

Nota: DCT este similar DFT deoarece descompune un semnal intr-o serie de functii cosinus.
-Una din proprietatile DCT 2-D este ca este separabila, adica poate fi separata intr-o pereche
de DCT 1-D - Pentru a obtine DCT 2-D a unui bloc este realizata intai DCT 1-D pe liniile
unui bloc apoi este realizata o DCT 1-D pe coloanele blocului ramas.
- La fel este si la IDCT.
DCT 2-D utilizand o preche de DCT 1-D

Curs 10

1.Periferice integrate in TMS320DM642 (slide 8)


Sase canale video de I/O
Trei porturi video duale (configurabile software ca intrari/iesiri)
Filtrare video, scalare orizontala
Interfata directa a componentelor video
Suporta BT656. formate digital TV (SDTV si HDTV), raw video I/O
8-biti 10-biti/16-biti/20-bit video pe port
MPEG-2 transport stream interface cu suport VCXO McASP
Multi-channel audio serial port SPDIF port interface
Pina la 8 linii stereo (16 canale)66MHz PCI
Conectare la retele IP
Conectare la sasiu prin PCI

2.OMAP. Definiie i structura (slide 11)


OMAP=Open Multimedia Application Processor (Platform)
Un nou concept in dezvoltarea DSP
Procesor dual core : DSP+ RISC (ARM)
DSP - digital signal processing
ARM calcule generale si comunicare
Structura:

3.Dezvoltarea aplicatiilor cu Procesoare media TI (slide 24)

4.Elemente ale eXpress DSP (slide 25)


eXpressDSP include:
Fundatie software, in timp real, scalabila: DSP/BIOS Real-Time OS kernel
Standarde pentru interoperabilitate in aplicatii si reutilizare : TMS320 DSP Algorithm
Standard xDAIS si XDM
Cod gata de utilizare care este comun multor aplicatii : eXpressDSP Framework Software
5.Roluri specifice in domeniul PM/DSP (slide 35)
-Application Programmer (programator aplicatii)
Utilizeaza toate resursele de Linux/BIOS/SYS BIOS pentru constructia aplicatiilor
Scrierea de soft in interfata standard
- Driver Author (creator de drivere)
Creare sau actualizare drivere
Refacere kernel
-DSP Author (Autor de algoritmi DSP)
Creare de algoritmi DSP (Codecuri)

Curs 11
1. Nuclee de procesare media : tipuri (slide 3)

Criterii de ordonare:
1. Tipul de nucleu de procesare
Bazate pe DSP : TMS320DM6xxx, Nexperia
Bazate pe RISC : ST20, MIPS, ARM

2. Disponibilitate
Proprii proprietary : DM64x, Nexperia, ST20
Deschise: ARM, MIPS
2. Periferice video in si video out (slide 12-13)

Periferice: Video In
Intrare digitala video de la camera digitala sau
camera analogica (printr-un decodor video).
Debit binar ridicat (81 MB/sec) pe fiecare canal.
Interfata 8-10 biti pentru convertoarele A/D pina
la 81-MHz rata de esantionare.
Scalare in jos (downscaling) 2x
Port de receptie pentru transferul unidirectional de
la PNX1300-la-PNX1300 (sisteme multiprocesor)
Periferice: Enhanced Video out
Iesire digitala video :
PAL si NTSC
Clock de iesire 81MHz
Programabila la orice format video
Pina la 4095 linii x 4095 pixeli, limitata de debitul binar
Amestec video cu pina la 129 nivele
Codare cromatica (Chroma keying)
Iesire YUV
Scalare in sus (upscaling) 2x
Mod de transfer mesaje
3

periferice audio in si audio out (slide 14-15)


Audio In
AI se conecteaza la un convertor extern A/D pentru a
permite:
Unul sau doua canale de intrare audio
Esantioane 8- sau 16-biti pe canal.
Rata de esantionare variabila.
Sursa de ceas de esantionare externa sau interna.
suporta scrierea autonoma a datelor audio in memorie prin
bufferare dubla (DMA).
Suporta 8-bit mono si stereo sau 16-bit mono si stereo
format de date standard PC .
Suporta formate de memorie little- si big-endian .

Periferice: Audio Output (AO)


AO se conecteaza la un convertor D/A pentru a
permite:
Pina la 8 canale de iesire audio.
Esantioane 16-bit sau 32-bit pe canal.
Rata de esantionare programabile.
Sursa de ceas de esantionare externa sau interna.

Citeste autonom datele audio procesate din memorie


utilizand bufferarea dubla (DMA).
Suporta formate de memorie little- si big-endian .
Asigura capabilitate de control pentru codecuri integrate tip
PC ca AD1847, CS4218 sau UAD1340.
Nu este suport pentru conectarea citorva D/As la o iesire
seriala
4 Nexperia- Variable Length Decoder (functii, capabiliti) (slide 16)
VLD implementeaza decodarea Huffman pentru fluxuri MPEG-1 si MPEG-2
Functioneaza independent in timpul decodarii la nivel slice
Comenzi:
Shiftare sir biti cu N biti
Cautarea urmatorului cod de start
Parcurgere N macroblocuri
Reset
Transfer rezultat in SDRAM
5

Instrumente si opiuni de depanare pentru Nexperia - NDK (slide 32)

NDK include :
C/C++ compiler/linker
Depanator la nivel sursa
Simulator cu cicluri exacte
Code profiler

Curs 12.
1. Arhitectura memoriei la ARM : tipuri si variatii (slide 12-13)
Arhitectura memoriei

Sunt cunoscute cele doua arhitecturi (Harvard si von


Neumann) (curs 2-3)
0000h
FFFFh
Cod
Data
Cod
Tabel
date
Data
Procesor
Von Neumann- O
singura cale (bus)
pentru cod si date 0000h
FFFFh
Cod
Cod
Data
Data
Procesor
Harvard magistrale
separate pentru cod
si date

2. Moduri de adresare operanzi la ARM (slide 16)


Moduri de adresare operanzi
Adresare imediata
Operandul este dat in instructiune
Adresare la registru
Operandul este stocat in registru
Adresare directa
operandul este stocat in memorie , cu adresa data in
instructiune
Adresare Indirecta (Index)
operandul este stocat in memorie , cu adresa data intr-un
registru (adresa se aduna cu un offset dat in instructiune)
Adresare implicita
Locatii implicite, ca stiva sau numaratorul de program
Toate aceste moduri exista si la procesoarele din fam. C6000 !!!
3. Pipeline la ARM (slide 17-18)
Pipeline la ARM
Arhitectura pipeline a fost prezentata si la C6000
Iata cum arata la ARM7 si ARM9

4 Detalii ale arhitecturii ARM (slide 35)


Nucleu procesor 32 biti RISC (instructiuni pe 32-bit)

37 registre ntregi pe 32 biti (16 disponibile)


Pipeline (3 etaje)
Cache ( dependent de aplicatie)
Arhitectura Von Neumann (ARM7), Harvard (ARM9)
Date pe 8 / 16 / 32 -bit
7 moduri de functionare (usr, fiq, irq, svc, abt, sys, und)
Structura simpla -> viteza buna / consum de energie
5.Instrumente si modelul de dezvoltare pentru ST20cc (slides 43-44)
Instrumente de dezvoltare ST20 - flux dezvoltare:
-St20icc- compilator C
-St20link linkeditor
-St20libr bibliotecar
-debug depanator
-Simulator
-Profiler
Modelul de dezvoltare pentru ST20cc

Sursa-> compilator-> executie/simulare/programare ROM

Cursul 13
1. Dezvoltarea de aplicatii in PM/DSP (slide 2)

Dezvoltarea DSP/PM rapida cu EZ Tools


C6EZRun:
Portare cod
ARM
pe DSP
(Programatorii ARM )
C6EZAccel:

Permite
acces ARM
la kernelul
DSP
(Dezvoltare Sistem)
C6EZFlo:
Graphical Software Development
Instrumente pentru prototipuri
rapide (Dezvoltare DS
2. Privire generala asupra EZflo (slide 6)

3. Avantaje C6EzRun (slide 13)

Ce poate face un programator ARM cu DSP?


Rulare de algoritmi matematici complecsi
Echilibrare de operatii DSP, calcule in virgula
fixa
Eliberare de MIPS pentru ARM pentru a obtine
caracteristici si performante de sistem noi
Economie prin evitarea unui nou procesor ARM!
Obtinerea unui raspuns real-time prin DSP fara
sacrificarea avantajelor unui OS ca Linux sau Android
4. Desenarea unui sistem si generarea aplicatiei in C6EZFlo (slide 8-9)
1. 5. Aplicatia C6EZAccel

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