curs 3 arhitectura adsp 2181

Download Curs 3 Arhitectura ADSP 2181

Post on 24-Jul-2015

124 views

Category:

Documents

6 download

Embed Size (px)

TRANSCRIPT

Capitolul 2 Structura hardware a microcalculatorului ADSP21812.1 Arhitectura ADSP 2181 Familia de procesoare ADSP 21xx este o familie de procesoare optimizata pentru prelucrarea semnalelor si aplicatii de viteza ce necesita calcule numerice. Arhitectura utilizata este Harvard modificata.

Figura 2.1 Arhitectura microcalculatorului ADSP-2181

Exista posibilitatea incarcarii programelor dintr-o memorie EPROM externa (numita boot memory); in acest scop in figura 1 apare generatorul de adrese pentru boot memory. Incarcarea se face la initializarea procesorului daca este indeplinita o conditie electrica externa. Microcalculatorul ASDP 2101 permite cedarea magistralelor prin semnale specifice si poate utiliza pana la 6 nivele de intrerupere. ADSP 2101 poate sa realizeze intr-un singur ciclu: - generarea adresei instructiunii urmatoare - incarcarea instructiunii urmatoare - 1 sau 2 transferuri de date - actualizarea a 1 sau 2 pointeri de adresa - efectuarea oricarei operatii de calcul - receptia si transmiterea unui bit pe porturile seriale Setul de instructiuni este puternic; permite transferuri flexibile de date si instructiuni multifunctie (transferuri de 1 sau 2 date urmate de o operatie de calcul). Orice instructiune se executa intr-un singur ciclu masina (tipic de 80 ns la o frecventa a ceasului de 12,5 MHz). Sintaxa limbajului de asamblare este algebrica.11

ADSP 2101 are 5 busuri interne:PMA (Program Memory Address) busul adreselor pentru memoria de program DMA (Data Memory Address) busul adreselor pentru memoria de date PMD (Program Memory Data) busul adreselor pentru memoria de program DMD (Data Memory Data) busul adreselor pentru memoria de date R (Result) bus de rezultate

Pe busul R se interconecteaza unitatile de calcul. Aceste unitati sunt prezentate in continuare pe scurt: Unitatea ALU poate efectua setul standard de operatii aritmetice si logice; in plus are si 2 primitive de impartire. Unitatea MAC permite efecuarea operatiilor de inmultire, inmultire cu acumulare, inmultire cu scadere fiecare intr-un singur ciclu. Unitaea SHIFTER permite efectuarea deplasarilor logice si aritmetice si a operatiilor de normalizare si denormalizare a blocurilor de date. Iesirea oricarei unitati de calcul poate fi intrare in oricare unitate de calcul la urmatorul ciclu masina. In timpul executiei unei operatii in registrul de intrare al unitatii de calcul se poate incarca un operand. Toate cele 3 unitati de calcul au registre de intrare si registre de iesire care pot fi citite sau scrise de pe busul DMD. Rezulta existenta unui nivel de pipe-line la intrare si la iesire pentru unitatile de calcul (intre memorie si unitatea de calcul exist registre atat la intrare cat si la iesire). Busul R permite rezultatelor unor operatii anterioare sa fie utilizate direct ca intrare pentru operatia urmatoare. Acest lucru evita intarzierile excesive datorate pipe-line-ului existent, cand se executa o serie de operatii diferite. Cele 2 generatoare de adrese (DAG1 si DAG2) determina adresa datelor pentru memoria de date (DAG1) si pentru memoria de date si program (DAG2). Se pot genera adrese cu modificarea ulterioara a poiterului de adresa. Fiecare unitate de deplasare poate genera 4 adrese indirecte prin registru. Se pot implementa buffere de memorie circulare (utile in realizarea filtrelor digitale FIR). Exista modul de generare a adreselor cu inversarea bitilor (bit reverse) util pentru calculul FFT. Secventorul de program genereaza adresa instructiunii din memoria de program. Exista un registru de instructiuni in care se memoreaza codul instruciunii curente. Acest registru introduce un nivel de pipe-line. Instruciunea este citita din memoria de program si incarcata in registrul de instructiuni (IR) intr-un singur ciclu; este executata in ciclul urmator cand instructiunea urmatoare este incarcata in IR. Secventorul permite salturi conditionate, apeluri de subrutine si reintoarcere din acest apel intrun singur ciclu. Datorita faptului ca exista stive hardware, in componetnta secventorului, se pot executa bucle DO UNTIL fara cicluri suplimentare (zero overhead). Salturile conditionate se executa de asemenea fara cicluri suplimentare. Secventorul de program contine si un controler de intreruperi asociat. Circuitul de timp programabil contine un registru de prescalare pe 8 biti, un registru numarator pe 16 biti si un registru pentru constanta de numarare pe 16 biti. La trecerea prin zero a registrului numarator se genereaza o intrerupere. Cele doua porturi seriale (SPORT0 si SPORT1) permit relizarea unei comunicatii seriale sincrone; protocolul de comunicatie este flexibil, programabil. Pentru a se interschimba informatii intre memoria de program interna si memoria de date interna exista blocul bus exchange. Busurile PMA si DMA sunt multilplexate pentru a rezulta magistrala de adrese externa (pentru memoria externa de program sau de date). Busurile DMA si DMD sunt multilplexate pentru a rezulta magistrala de date externa. Separarea memoriei externe in memorie de program si memorie de date se efectueaza prin semnale de selectie separate; totodata exista si semnale specifice pentru citirea si scrierea memoriei externe. Sunt prevazute de asemenea si semnale pentru acceptarea si confirmarea cedarii magistralelor externe altor dispozitive.12

In continuare sunt prezentate semnalele microcalculatorului ADSP 2101:A0 A13 bus de adrese extern (pentru date, program si boot) D0 D23 bus de date extern (pentru date, program si boot) RESET/ - semnal de initializare IRQ2 intrerupere externa (#2) BR/ - cerere de bus BG/ - confirmarea cererii de magistrala PMS/ - selectie memorie de program DMS/ - selectie memorie de date BMS/ - selectie memorie boot RD/ - citire WR/ - scriere MMAP configurare memorie de program CLIKIN,XTAL pentru conectarea ceasului CLKOUT iesire de ceas SPORT0 (TFS0,RFS0,DT0,DR0,SCLK0) semnale asociate portului serial #0 (sincronizare la transmisie, sincronizare la receptie, transmisie de date, receptie de date, ceas serial ) SPORT1 (TFS1,RFS1,DT1,DR1,SCLK1) semnale asociate portului serial #1 (sincronizare la transmisie, sincronizare la receptie, transmisie de date, receptie de date, ceas serial ) sau (IRQ1/,IRQ0/,SCLK1,FO,FI) cerere de intrerupere #1, cerere de intrerupere #0, ceas programabil, flag aut, flag in in functie de configurarea procesorului.

2.2 Unitati de calcul Microcalculatorul ADSP 2181 lucreaza n virgula fixa pe 16 biti. Interpretarea datelor este urmatoarea:siruri de biti (pentru operatii logice NOT,AND,OR,XOR nu se interpreteaza sirul binar ca numar) numere ntregi fara semn numere ntregi cu semn (in complement de 2) numere fractionare (in format 1.15 in complement de 2)

Aritmetica ALU

Cu exceptia primitivei de mpatrire cu semn (DIVS) ALU interpreteaza operanzii si rezultatele ca operanzii ca siruri binare de 16 biti. Rezultatul poate fi interpretat ca numar cu semn prin intermediul indicatorilor conditionali (flag-uri). Detectarea depasirii aritmetice se face conform aritmeticii n complement fata de 2 (daca bitul MSB al rezultatului se modifica n mod incorect). De exemplu adunarea a doua numere pozitive trebuie sa genereze un rezultat pozitiv, n caz contrar a aparut o depasire aritmetica ce a alternat cu bitul de semn (MSB) al rezultatului.Aritmetica MAC

Multiplicatorul produce rezultate ca siruri de biti. Intrarile pe 16 biti sunt interpretate n conformitate cu informatia continuta n instructiune (ambii operanzi cu semn, unul cu semn si celalalt fara semn). Rezultatul pe 32 biti este considerat cu semn, iar bitul de semn (MSB) este extins pna la 40 biti. Exista doua formate posibile pentru nmultitor: 1.15 (pentru numere cu semn) si 16.0 (pentru numere ntregi).Aritmetica SHIFTER

Deplasarile logice interpreteaza operanzii ca numere ntregi fara semn sau ca siruri binare, iar deplasarea aritmetica interpreteaza rezultatul ca un numar cu semn n complement de 2. Exponentul pentru numerele n virgula mobila se reprezinta n complement de 2. Se poate lucra n blocuri de date n virgula mobila care sunt interpretate n complement de 2.

13

2.2.1 Unitatea aritmetica si logica (ALU) Este prezentata n figura 2.2 Este o unitate pe 16 biti cu doua porturi de intrare X si Y si un port de iesire R.

Figura 2.2 Unitatea ALU ADSP 2181

DESCRIERE: Intrarea X a ALU poate accepta date din doua surse: registrul AX sau busul de rezultate R. Conectarea directa pe busul R permite utilizarea operanzilor de tip imediat (acest lucru este specific pentru toate unitatile de calcul ale ADSP 2181). Registrul AX este dedicat pentru intrarea X si are n compunere doua registre de 16 biti AX0 si AX1 care se pot citi/scrie de pe magistrala DMD; cu ajutorul blocului de interschimbare DMD PMD aceste registre sunt accesibile si pe magistrala PMD. Un registru PMX poate fi intrare n ALU n acelasi timp n care celalalt registru este citit/scris de pe magistrala DMD. Intrarea Y a unitatii ALU poate de asemenea sa accepte date din doua surse: registrul AY si registrul de reactie AF. Registrul AY este dedicat pentru intrarea Y si contine 2 registre: AY0 si AY1; aceste doua registre se pot citi/scrie de pe magistrala DMD si se pot scrie direct de pe magistrala PMD; ele se pot citi de pe magistrala PMD prin intermediul blocului de interschimb intre PMD si DMD. n mod similar unul dintre registrele AY poate fi intrare n ALU n timp ce celalalt registru este citit/scris de pe magistrala DMD. Iesirea ALU este ncarcata n registrul AF sau n registrul de rezultat AR; iesirea ncarcata n AF poate fi utilizata ca intrare n ALU. Registrul AR poate fi ncarcat si n mod direct de pe magistrala DMD; prin blocul de interschimbare DMD PMD registrul AR poate fi citit /scris de pe magistrala PMD. Orice registru asociat unitatii ALU poate fi citit sau scris intr-un singur ciclu masina; citirea se face la nceputul ciclului iar scrierea la sfrsitul acestuia. A

Recommended

View more >