4
1)Arhitectura generala a unui procesor DSP: Procesorul DSP realizeaza functiile esentiale de prelucrare a semnalelor. Dezvoltarea unui sistem DSP eficient se bazeaza pe: arhitecturile hard si soft ale procesorului DSP, transferul datelor, capacitatile sale aritmetice, configuratiile posibile ale memoriei, structurile I/O, programabilitatea si setul de instructiuni al procesorului. Arhitectura procesorului si algoritmul DSP folosit trebuie sa fie complementare. Pentru unele aplicatii, algoritmul este dat si trebuie ales cel mai potrivit procesor care sa-l realizeze. Pentru altele, procesorul disponibil este cunoscut si sarcina proiectarii este de a dezvolta algoritmi eficienti care sa satisfaca cerintele aplicatiei. Scopul este de a dezvolta un algoritm DSP astfel încât sa se utilizeze un minim de resurse ale procesorului, lasând astfel neutilizate resurse pentru îmbunatatiri si dezvoltari ulterioare. Marea majoritate a procesoarelor DSP sunt proiectate sa realizeze operatii repetitive de tip MAC (multiply- add computation), precum filtrarea raspunsului la impuls finit (FIR - Finite-Impulse Response) Majoritatea procesoarelor DSP utilizeaza o arhitectura Harvard modificata, cu doua sau trei magistrale de memorie (una de program si înca una sau doua pentru date). Este facilitat astfel accesul simultan la coeficientii filtrului si la semnalul de intrare în acelasi ciclu de ceas. Totusi, utilizarea arhitecturii Harvard creaza unele dificultati în scrierea programelor în C care utilizeaza întreaga capacitate a structurii MAC si a accesurilor repetate la memorie. 2)Procesoarele TMS c24x Principalele blocuri functionale: Structura interna a procesorului TMS320C2x implementeaza functii pe care alte procesoare le realizeaza de obicei prin soft sau prin microcod. De exemplu, circuitul contine hardware pentru înmultire 16 biti x 16 biti, rotire de date, manevrarea adreselor, fiecare dintre acestea realizându-se într-un singur ciclu. Acest hard eficient furnizeaza o putere de calcul care n-ar fi fost disponibila cu un singur circuit cu putin timp în urma. Prezentarea principalelor blocuri functionale ACC(31-0), ACCH(31-16), ACCL(15-0) - Acumulator Este un acumulator pe 32 de biti împartit în doua jumatati: acumulator high (ACCH) si acumulator low (ACCL). Este folosit pentru stocarea rezultatelor ALU. ALU - Unitatea aritmetica si logica Este o unitate aritmetica si logica pe 32 de biti în complement fata de 2, având doua porturi de intrare pe 32 de biti si un port de iesire pe 32 de biti, legat la acumulator. ARAU - Unitate aritmetica registre auxiliare Este o unitate aritmetica pe 16 biti, fara semn, folosita pentru a realiza operatii cu datele din registrele auxiliare. AR0-AR7 (15-0) - Bancul registrelor auxiliare Un banc de registre continând 5/8 registre auxiliare pe 16 biti (AR0-AR7), folosit pentru adresarea memoriei de date, stocari temporare sau prelucrari aritmetice cu numere întregi prin ARAU. AFB(15-0) - Magistrala bancului registrelor auxiliare O magistrala pe 16 biti care poarta datele de la registrul auxiliar (AR) indicat prin ARP.

S1.pdf

Embed Size (px)

DESCRIPTION

Procesoare numerice de semnal

Citation preview

  • 1)Arhitectura generala a unui procesor DSP:

    Procesorul DSP realizeaza functiile esentiale de prelucrare a semnalelor. Dezvoltarea

    unui sistem DSP eficient se bazeaza pe: arhitecturile hard si soft ale procesorului DSP,

    transferul datelor, capacitatile sale aritmetice, configuratiile posibile ale memoriei,

    structurile I/O, programabilitatea si setul de instructiuni al procesorului. Arhitectura

    procesorului si algoritmul DSP folosit trebuie sa fie complementare. Pentru unele

    aplicatii, algoritmul este dat si trebuie ales cel mai potrivit procesor care sa-l realizeze.

    Pentru altele, procesorul disponibil este cunoscut si sarcina proiectarii este de a dezvolta

    algoritmi eficienti care sa satisfaca cerintele aplicatiei. Scopul este de a dezvolta un

    algoritm DSP astfel nct sa se utilizeze un minim de resurse ale procesorului, lasnd

    astfel neutilizate resurse pentru mbunatatiri si dezvoltari ulterioare. Marea majoritate a

    procesoarelor DSP sunt proiectate sa realizeze operatii repetitive de tip MAC (multiply-

    add computation), precum filtrarea raspunsului la impuls finit (FIR - Finite-Impulse

    Response)

    Majoritatea procesoarelor DSP utilizeaza o arhitectura Harvard modificata, cu doua sau

    trei magistrale de memorie (una de program si nca una sau doua pentru date). Este

    facilitat astfel accesul simultan la coeficientii filtrului si la semnalul de intrare n acelasi

    ciclu de ceas. Totusi, utilizarea arhitecturii Harvard creaza unele dificultati n scrierea

    programelor n C care utilizeaza ntreaga capacitate a structurii MAC si a accesurilor

    repetate la memorie.

    2)Procesoarele TMS c24x Principalele blocuri functionale:

    Structura interna a procesorului TMS320C2x implementeaza functii pe care alte

    procesoare le realizeaza de obicei prin soft sau prin microcod. De exemplu, circuitul

    contine hardware pentru nmultire 16 biti x 16 biti, rotire de date, manevrarea adreselor,

    fiecare dintre acestea realizndu-se ntr-un singur ciclu. Acest hard eficient furnizeaza o

    putere de calcul care n-ar fi fost disponibila cu un singur circuit cu putin timp n urma.

    Prezentarea principalelor blocuri functionale

    ACC(31-0), ACCH(31-16), ACCL(15-0) - Acumulator

    Este un acumulator pe 32 de biti mpartit n doua jumatati: acumulator high (ACCH) si

    acumulator low (ACCL). Este folosit pentru stocarea rezultatelor ALU.

    ALU - Unitatea aritmetica si logica

    Este o unitate aritmetica si logica pe 32 de biti n complement fata de 2, avnd doua

    porturi de intrare pe 32 de biti si un port de iesire pe 32 de biti, legat la acumulator.

    ARAU - Unitate aritmetica registre auxiliare

    Este o unitate aritmetica pe 16 biti, fara semn, folosita pentru a realiza operatii cu datele

    din registrele auxiliare.

    AR0-AR7 (15-0) - Bancul registrelor auxiliare

    Un banc de registre continnd 5/8 registre auxiliare pe 16 biti (AR0-AR7), folosit pentru

    adresarea memoriei de date, stocari temporare sau prelucrari aritmetice cu numere ntregi

    prin ARAU.

    AFB(15-0) - Magistrala bancului registrelor auxiliare

    O magistrala pe 16 biti care poarta datele de la registrul auxiliar (AR) indicat prin ARP.

  • ARP(2-0) - Indicatorul registrelor auxiliare

    Un registru pe 3 biti folosit pentru a selecta unul din cele 5/8 registre auxiliare.

    ARB(2-0) - Bufferul indicatorului registrelor auxiliare (ARP)

    Un registru pe 3 biti folosit ca buffer pentru ARP. De fiecare data cnd ARP este ncarcat,

    vechea valoare este nscrisa n ARB, cu exceptia cazului cnd se executa o instructiune

    LST (Load Status Register - ncarcarea registrului de stare). Cnd ARB este ncarcat cu

    un LST1, acea valoare este de asemenea copiata n ARP.

    CALU - Unitatea centrala aritmetica si logica

    Un bloc functional complex care grupeaza ALU, multiplicatorul, acumulatorul si

    circuitele de deplasare-scalare. D(15-0) - Magistrala de date O magistrala de 16 biti

    folosita pentru transportul datelor.

    DAB(15-0) - Magistrala de adrese a memoriei de date

    O magistrala de 16 biti care grupeaza adresele memoriei de date.

    DP(8-0) - Indicatorul paginii din memoria de date

    Un registru pe 9 biti indicnd adresa paginii curente. O pagina de date contine 128

    cuvinte de memorie. Exista 512 pagini adresabile n spatiul memoriei de date.

    DRB(15-0) - Magistrala de adrese directe a memoriei de date

    O magistrala pe 16 biti care poarta adresa directa pentru memoria de date, care este

    concatenarea continutului registrului DP cu cei mai putin semnificativi 7 biti ai

    instructiunii.

    GREG(7-0) - Registru de alocare a memoriei globale

    Un registru de memorie pe 8 biti pentru alocarea marimii spatiului memoriei globale.

    IR(15-0) - Registrul de instructiune

    Un registru pe 16 biti folosit pentru stocarea instructiunii curente n curs de executie.

    IFR(5-0) - Registrul bistabilelor de ntrerupere

    Un registru pe 6 biti folosit pentru memorarea ntreruperilor externe de la utilizator,

    /INT(2-0), active n low, si a ntreruperilor interne XINT / RINT (transmisie / receptie

    prin portul serial) si TINT (ntreruperile de la timer). IFR nu este accesibil prin soft.

    IMR(5-0) - Registrul de masti pentru ntreruperi

    Un registru de memorie pe 6 biti folosit pentru mascarea ntreruperilor.

    MCS(15-0) - Stiva de microapeluri

    O stiva pe un singur cuvnt care stocheaza temporar continutul lui PFC ct timp PFC este

    folosit pentru a adresa memoria de date cu mutare pe blocuri (BLKD / BLKP),

    acumulator-multiplicator (MAC / MACD) si tabela instructiunilor de scriere - citire

    (TBLR / TBLW).

    MULT - Multiplicator

    Un multiplicator paralel de 16 x 16 biti.

    PRD(15-0) - Registru de perioada

    Un registru de memorie pe 16 bit i folosit pentru rencarcarea timerului.

  • PR(31) - Registrul de produs

    Un registru pe 32 de biti folosit pentru stocarea produsului multiplicatorului. Poate fi

    accesat att n partea sa superioara, ct si inferioara, folosind instruct iunile SPH / SPL

    (stocare PR High/Low).

    P(15-0) - Magistrala de program

    O magistrala pe 16 biti folosita pentru transportul instructiunilor (si a datelor pentru

    instructiunile MAC si MACD).

    PC(15-0) - Numaratorul de program

    Este un numarator pe 16 biti folosit pentru adresarea memoriei de program. PC contine

    ntotdeauna adresa urmatoarei instructiuni de executat. Continutul PC este incrementat

    dupa decodificarea fiecarei instructiuni. La TMS32020, operatiile realizate de PFC al lui

    TMS320C25 sunt realizate de catre PC.

    Shifters - Circuite de deplasare

    Registre de d eplasare localizate la intrarea ALU, iesirea acumulatorului si iesirea

    registrului de produs. Un registru shifter este de asemenea localizat n acumulator.

    STACK(15-0) - Stiva

    O stiva hard de 8 x 16 biti folosita pentru stocarea PC n timpul ntreruperilor sau

    apelurilor de subrutine. De asemenea, pot fi depuse si culese din stiva valorile lui ACCL

    si date din memorie.

    ST0, ST1(15-0) - Registre de stare

    Sunt doua registre de stare pe 16 biti care cont in semnale de stare si bitii de control.

    TR(15-0) - Registru temporar

    Un registru pe 16 biti care poate pastra att un operand pentru nmultire, ct si un cod de

    rotire (shift code) pentru scalling shifter.

    TIM(15-0) - Timer

    Un registru numarator pe 16 bit i pentru controlul temporizarilor.

    3)Circuite de control ale sistemului resetare, oscilator:

    Aceste circuite au functii critice pentru functionarea corecta a sistemului. Sunt prezentate

    scheme de resetare la punerea sub tensiune si oscilatoare de tact.

    Circuitul de resetare la punerea sub tensiune asigura ca resetarea se va face numai dupa

    functionarea stabila a circuitului oscilator. Acesta foloseste n general cuarturi n mod

    "overtone" pentru frecvente mai mari de 20 MHz, dar experienta practica arata ca se pot

    folosi cuarturi normale pna la 25 - 30 MHz.

    Circuitul de resetare la punerea sub tensiune

    Acest circuit asigura resetarea lui TMS320C2x n momentul aplicarii tensiunii de

    alimentare. n schema este inclus si un circuit de eliminare a oscilatiilor contactelor.

    Aplicnd "0" logic pe intrarea RESET se initializeaza procesorul. Resetul afecteaza

    diferite registre si bitii de conditie, asa cum s-a aratat anterior. Pentru o initializare

    corecta a sistemului, semnalul reset trebuie aplicat n timpul ultimelor 3 cicluri CLKOUT,

    adica 300ns pentru TMS320C25 care lucreaza la 40 MHz. Dupa pornire vor trece cteva

    sute de ms naintea stabilizarii oscilatorului.

    Din aceasta cauza, circuitul de pornire trebuie sa genereze un "0" logic pe linia de reset

    pna cnd oscilatorul se stabilizeaza (100 - 200 ms). Tensiunea de pe pinul RS este

    controlata de reteaua R1C1. Dupa resetare, aceasta tensiune creste exponential n acord

    cu constanta de timp a circuitului R1C1. Durata t1 este timpul ct exista "0" logic pe RS,

    timp n care condensatorul C1 se ncarca la 1,5V. Aceasta este tensiunea aproximativa la

  • care intrarea de reset trece n "1" logic. Tensiunea condensatorului este data de o functie

    exponentiala din care rezulta valorile pentru condensator si rezistor.

    Circuitul oscilator cu cristal de cuart

    Acest circuit este proiectat sa lucreze la 40,96 MHz. Cristalele care lucreaza la frecvente

    mai mari de 30 MHz nu sunt larg raspndite, de aceea este folosit un circuit oscilant

    paralel "third-overtone" care foloseste a treia armonica superioara.

    n oscilator, frecventa fundamentala a cristalului oscilator trebuie atenuata, fiindca

    oscilatorul foloseste a treia armonica. Acest lucru este realizat de un circuit LC care

    elimina fundamentala si lasa sa treaca a treia armonica. Filtrul LC trebuie sa aiba caracter

    inductiv n jurul fundamentalei si caracter capacitiv n jurul armoniciin a treia. Frecventa

    de rezonanta trebuie aleasa aproximativ la jumatatea dintre frecventa fundamentala si a

    treia armonica. n cazul considerat: fr = 26,5 MHz, C = 20pF, L = 1,8 H.