12
Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală de 16 biţi folosită pentru transportul datelor. DAB(15-0) - Magistrala de adrese a memoriei de date O magistrală de 16 biţi care grupează adresele memoriei de date. DP(8-0) - Indicatorul paginii din memoria de date Un registru pe 9 biţi indicând adresa paginii curente. O pagină de date conţine 128 cuvinte de memorie. Există 512 pagini adresabile în spaţiul memoriei de date (unele locaţii sunt rezervate). DRB(15-0) - Magistrala de adrese directe a memoriei de date O magistrală pe 16 biţi care poartă adresa directă pentru memoria de date, care este concatenarea conţinutului registrului DP cu cei mai puţin semnificativi 7 biţi ai instrucţiunii. GREG(7-0) - Registru de alocare a memoriei globale Un registru de memorie pe 8 biţi pentru alocarea mărimii spaţiului memoriei globale. IR(15-0) - Registrul de instrucţiune Un registru pe 16 biţi folosit pentru stocarea instrucţiunii curente în curs de execuţie. IFR(5-0) - Registrul bistabilelor de întrerupere Un registru pe 6 biţi folosit pentru memorarea întreruperilor externe de la utilizator, /INT(2-0), active în low, şi a întreruperilor interne XINT / RINT (transmisie / recepţie prin portul serial) şi TINT (întreruperile de la timer). IFR nu este accesibil prin soft. IMR(5-0) - Registrul de măşti pentru întreruperi Un registru de memorie pe 6 biţi folosit pentru mascarea întreruperilor. MCS(15-0) - Stiva de microapeluri O stivă pe un singur cuvânt care stochează temporar conţinutul lui PFC cât timp PFC este folosit pentru a adresa memoria de date cu mutare pe blocuri (BLKD / BLKP), acumulator-multiplicator (MAC / MACD) şi tabela instrucţiunilor de scriere - citire (TBLR / TBLW). MULT - Multiplicator Un multiplicator paralel de 16 x 16 biţi. PRD(15-0) - Registru de perioadă Un registru de memorie pe 16 biţi folosit pentru reîncărcarea timerului.

D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

Procesoare numerice de semnal - Cap. 4 11

D(15-0) - Magistrala de dateO magistrală de 16 biţi folosită pentru transportul datelor.

DAB(15-0) - Magistrala de adrese a memoriei de dateO magistrală de 16 biţi care grupează adresele memoriei de date.

DP(8-0) - Indicatorul paginii din memoria de dateUn registru pe 9 biţi indicând adresa paginii curente. O pagină de date conţine 128cuvinte de memorie. Există 512 pagini adresabile în spaţiul memoriei de date(unele locaţii sunt rezervate).

DRB(15-0) - Magistrala de adrese directe a memoriei de dateO magistrală pe 16 biţi care poartă adresa directă pentru memoria de date, care esteconcatenarea conţinutului registrului DP cu cei mai puţin semnificativi 7 biţi aiinstrucţiunii.

GREG(7-0) - Registru de alocare a memoriei globaleUn registru de memorie pe 8 biţi pentru alocarea mărimii spaţiului memorieiglobale.

IR(15-0) - Registrul de instrucţiuneUn registru pe 16 biţi folosit pentru stocarea instrucţiunii curente în curs deexecuţie.

IFR(5-0) - Registrul bistabilelor de întrerupereUn registru pe 6 biţi folosit pentru memorarea întreruperilor externe de lautilizator, /INT(2-0), active în low, şi a întreruperilor interne XINT / RINT(transmisie / recepţie prin portul serial) şi TINT (întreruperile de la timer). IFR nueste accesibil prin soft.

IMR(5-0) - Registrul de măşti pentru întreruperiUn registru de memorie pe 6 biţi folosit pentru mascarea întreruperilor.

MCS(15-0) - Stiva de microapeluriO stivă pe un singur cuvânt care stochează temporar conţinutul lui PFC cât timpPFC este folosit pentru a adresa memoria de date cu mutare pe blocuri (BLKD /BLKP), acumulator-multiplicator (MAC / MACD) şi tabela instrucţiunilor descriere - citire (TBLR / TBLW).

MULT - MultiplicatorUn multiplicator paralel de 16 x 16 biţi.

PRD(15-0) - Registru de perioadăUn registru de memorie pe 16 biţi folosit pentru reîncărcarea timerului.

Page 2: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

12 Procesoare numerice de semnal - Cap. 4

PFC(15-0) - Numărător de pre-extragere a instrucţiuniiUn numărător pe 16 biţi folosit pentru aducerea în avans a instrucţiunilor deprogram. PFC conţine adresa instrucţiunii curente de adus în avans. Este actualizatcând este iniţiat un nou ciclu de prefetch. PFC se foloseşte de asemenea pentru aadresa memoria de date când se folosesc instrucţiuni de mutare pe bloc (BLKD /BLKP), înmulţire cu acumulatorul (MAC / MACD) şi cele de scriere-citire dintabele (TBLR / TBLW).

PR(31) - Registrul de produsUn registru pe 32 de biţi folosit pentru stocarea produsului multiplicatorului. Poatefi accesat atât în partea sa superioară, cât şi inferioară, folosind instrucţiunile SPH /SPL (stocare PR High/Low).

P(15-0) - Magistrala de programO magistrală pe 16 biţi folosită pentru transportul instrucţiunilor (şi a datelorpentru instrucţiunile MAC şi MACD).

PC(15-0) - Numărătorul de programEste un numărător pe 16 biţi folosit pentru adresarea memoriei de program. PCconţine întotdeauna adresa următoarei instrucţiuni de executat. Conţinutul PC esteincrementat după decodificarea fiecărei instrucţiuni. La TMS32020, operaţiilerealizate de PFC al lui TMS320C25 sunt realizate de către PC.

PAB(15-0) - Magistrala adreselor memoriei programO magistrală pe 16 biţi care manipulează adresele memoriei de program.

QIR(15-0) - Registrul cozii de aşteptare instrucţiuniRegistrul QIR (queue instruction register) este un registru pe 16 biţi folosit pentrustocarea instrucţiunilor aduse în avans.

RAM(B0) - RAM (date sau program)Un bloc RAM cu 256 x 16 locaţii configurate fie ca memorie de date, fie camemorie program.

RAM(B1) - RAM (doar de date)Un bloc de memorie RAM de date, organizat în 256 x 16 locaţii.

RAM(B2) - RAM (doar de date)Un bloc de memorie RAM de date, organizat în 32 x 16 locaţii.

RPTC(7-0) - Contor de repetăriUn contor (repeat counter) pe 8 biţi pentru controlul execuţiei repetitve a uneisingure instrucţiuni.

Page 3: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

Procesoare numerice de semnal - Cap. 4 13

DRR(15-0) - Registru de recepţie date port serialUn registru pe 16 biţi pentru memorare al portului serial pentru recepţia datelor. Înmodul octet, sunt folosiţi numai cei mai puţin semnificativi 8 biţi.

DXR(15-0) - Registru de transmisie date port serialUn registru de memorie pe 16 biţi pentru transmisia datelor la portul serial. Numaicei mai puţin semnificativi 8 biţi sunt folosiţi în modul octet.

RSR(15-0) - Registrul de deplasare recepţie al portului serialUn registru pe 16 biţi folosit pentru rotirea datelor în portul serial de la pinul RX.Conţinutul RSR este trimis la DRR după ce un transfer serial este terminatcomplet. RSR nu este accesibil direct prin soft.

XSR(15-0) - Registrul de deplasare transmisie al portului serialRegistru pe 16 biţi folosit pentru extragerea prin rotire a datelor de la portul serialprin pinul DX. Conţinutul XSR este încărcat în DXR la începutul unei operaţii detransmisie prin portul serial. XSR nu este accesibil direct prin soft.

Shifters - Circuite de deplasareRegistre de deplasare localizate la intrarea ALU, ieşirea acumulatorului şi ieşirearegistrului de produs. Un registru shifter este de asemenea localizat în acumulator.

STACK(15-0) - StivaO stivă hard de 8 x 16 biţi folosită pentru stocarea PC în timpul întreruperilor sauapelurilor de subrutine. De asemenea, pot fi depuse şi culese din stivă valorile luiACCL şi date din memorie.

ST0, ST1(15-0) - Registre de stareSunt două registre de stare pe 16 biţi care conţin semnale de stare şi biţii decontrol.TR(15-0) - Registru temporarUn registru pe 16 biţi care poate păstra atât un operand pentru înmulţire, cât şi uncod de rotire (shift code) pentru scalling shifter.

TIM(15-0) - TimerUn registru numărător pe 16 biţi pentru controlul temporizărilor.

4.4 Organizarea memoriei

TMS320C2x asigură intern un total de 544 de cuvinte de memorie de 16 biţi, subforma unei memorii RAM pe circuit, din care 288 sunt întotdeauna memorie dedate, iar restul de 256 de cuvinte pot fi configurate fie ca memorie de program, fie

Page 4: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

14 Procesoare numerice de semnal - Cap. 4

ca memorie de date. De asemenea, TMS320C2x include 4 Kcuvinte de memorie deprogram ROM programabilă cu mască.

4.4.1 Memoria de date

Cele 544 de cuvinte de memorie de date RAM sunt împărţite în 3 blocuri separate:B0, B1 şi B2 (vezi Fig.4.4).

Fig.4.4 Memoria de date a circuitului TMS320C2x

Blocul B0 conţine 256 de cuvinte de memorie RAM, configurabile fie ca memoriede date, fie ca memorie de program, prin instrucţiuni prevăzute în acest scop.Blocurile B1 şi B2 conţin 288 de cuvinte şi sunt întotdeauna memorie de date.

Spaţiul de memorie intern de 544 de cuvinte permite lui TMS320C2x să gestionezeun masiv de date de 512 cuvinte (256 cuvinte dacă RAM de pe circuit este folositca memorie program), rămânând şi 32 locaţii pentru stocarea altor dateintermediare (vezi §4.4.3 - Harta memoriei).

TMS320C2x poate adresa 64 Kcuvinte de memorie de date. Memoria RAM dedate de pe circuit şi locaţiile rezervate intern sunt plasate pe harta memoriei pe celemai de jos 1 Kcuvinte din spaţiul de memorie de date. Memoria de date este directexpandabilă la 64 Kcuvinte, menţinându-se intactă viteza de prelucrare. LiniaREADY este prevăzută pentru adaptarea la memoriile lente, dar mai ieftine, cumsunt circuitele dinamica (DRAM).

Page 5: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

Procesoare numerice de semnal - Cap. 4 15

4.4.2 Memoria de program

Poate fi constituită din memoria RAM de pe circuit, ROM, sau memorii externe deprogram de mare viteză care se folosesc la viteza integrală, fără stări de aşteptare.Ca o alternativă, prin linia READY se poate asigura adaptarea procesorului lamemoriile mai lente şi mai ieftine (memorii externe). Este disponibil un spaţiuadresabil de memorie de 64 Kcuvinte.

Blocul intern RAM B0 poate fi configurat ca memorie program folosindinstrucţiuni speciale în acest scop. Execuţia de instrucţiuni din acest bloc poate fiiniţiată după ce spaţiul de memorie a fost reconfigurat (vezi §4.7.1 pentrudescrierea execuţiei instrucţiunilor folosind diferite configuraţii de memorie). Înplus, TMS320C25 este echipat cu 4 Kcuvinte de memorie program ROM, carepoate fi programată cu mască la producător cu un program al clientului. MemoriaROM de pe circuit permite execuţia programului la viteza integrală fără a apela lamemoria externă de program de mare viteză. Folosirea acestei memorii permite deasemenea magistralei externe de date să fie liberă pentru accesarea memorieiexterne de date.

Modul de aşezare pe harta memoriei a primelor 4 Kcuvinte din blocul de memorieprogram pe sau în afara circuitului este selectabil de către utilizator cu ajutorulpinului MP//MC al lui TMS320C25. Acest lucru permite proiectantului săaccelereze durata de dezvoltare cu ajutorul unui produs bazat pe TMS320C25folosind ROM extern, şi reducerea costului, folosind 4K de ROM intern fărăreproiectarea cablajului imprimat. Setând MP//MC la high se realizează mapareade memorie program în afara circuitului. MP//MC = low realizează maparea înmemoria ROM internă.

Bistabilul extern XF poate fi folosit pentru a trece MP//MC în stare de activaredinamică sau dezactivare dinamică a memoriei ROM de pe circuit. Este necesară ooarecare precauţie când se foloseşte comutarea bancurilor de memorie şi o bunăînţelegere a funcţionării magistralei pipeline.

MP//MC de la TMS320C25 este pentru TMS32020 un pin de alimentare (Vcc).Acest lucru permite substituirea lui TMS320C25 cu TMS32020 cât timpTMS320C25 operează automat în modul microprocesor, asigurându-se astfelcompatibilitatea.

4.4.3 Harta memoriei

TMS320C2x suportă 3 spaţii separate de adrese de memorie:- pentru memoria program,- pentru memoria de date, şi

Page 6: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

16 Procesoare numerice de semnal - Cap. 4

- pentru periferice I/O (vezi Fig.4.5)

Fig.4.5 Configuraţiile de memorie

Aceste spaţii se disting în exterior prin semnalele /PS, /DS şi /IS (selectareprogram, date şi I/O). Semnalele /PS, /DS, /IS şi /STRB sunt active numai cândmemoria externă a fost adresată. În timpul unui ciclu de adresare intern, acestesemnale rămân inactive (high), acest lucru prevenind conflictele în adresareamemoriei, când blocul B0 este configurat ca memorie de program.

Page 7: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

Procesoare numerice de semnal - Cap. 4 17

Blocurile B0, B1 şi B2 sunt compuse în total din 544 cuvinte de memorie RAM.Blocul B0 de memorie RAM de date / programe (256 cuvinte) este rezident înpaginile 4 şi 5 a hărţii memoriei de date când este configurat ca RAM de date, şi dela adresele FF00 la FFFF când este configurat ca RAM de programe. Blocul B1(întotdeauna RAM de date) este rezident în paginile 6 şi 7. Blocul B2 este rezidentîn cele 32 cuvinte de sus ale paginii 0. Restul paginii 0 este compus din registremapate în memorie şi locaţii rezervate intern, iar paginile 1-3 ale hărţii de memoriede date sunt locaţii rezervate intern. Locaţiile rezervate intern pot să nu fie folositepentru stocare, şi conţinutul lor este nedefinit la citire (alte informaţii privindaşezarea registrelor în harta memoriei se vor regăsi în capitolele despreinstrucţiuni).

Memoria RAM de pe circuit este mapată fie în spaţiul de 64 Kcuvinte de memoriede date sau de memorie program, depinzând de configuraţia memoriei (veziFig.4.5).

Instrucţiunile CNFD / CNFP sunt folosite pentru configurarea blocului B0 fie camemorie de date, fie ca memorie program.

Instrucţiunea BLKP (mutarea unui bloc din memoria program în memoria de date)poate fi folosită pentru descărcarea informaţiilor de program în blocul B0, când B0este configurat ca RAM de date. Apoi o instrucţiune CNFP (configurarea bloculuica memorie program) poate fi folosită pentru a converti B0 în RAM de program.Fără să ţină seama de configuraţie, utilizatorul poate executa programe dinmemoria externă de program. Când este accesată memoria internă de program,liniile de control externe rămân inactive.

Resetul configurează B0 ca RM de date. În timpul lucrului pe magistralele interne,când instrucţiunile CNFD sau CNFP sunt folosite pentru a reconfigura blocul B0,există un timp de întârziere până când noua configuraţie devine efectivă. Aceastăîntârziere este de un ciclu de fetch dacă execuţia este din RAM-ul de programintern. La TMS32020, are loc o întârziere de un ciclu fetch dacă execuţia este dinmemoria de program externă.

Este foarte important dacă programul se execută de la o locaţie în jurul lui FF00. Înconsecinţă, o instrucţiune CNFP trebuie să fie plasată la locaţia FEFD în memoriaexternă dacă execuţia urmează să fie continuată de la prima locaţie în blocul B0.Dacă o instrucţiune CNFP este plasată la locaţia FEFD, iar instrucţiunea de lalocaţia FEFF este pe dublu cuvânt, al doilea cuvânt al instrucţiunii va fi adus dinprima locaţie în blocul B0. Dacă execuţia este de deasupra locaţiei FF00 şi bloculB0 este reconfigurat, trebuie să ne asigurăm că execuţia se termină la cel maiapropiat punct al noii configuraţii.

Page 8: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

18 Procesoare numerice de semnal - Cap. 4

La TMS320C25, memoria de program ROM de pe circuit este localizată în celemai puţin semnificative 4 Kcuvinte de memorie program, când sunt selectate deMP//MC = 0. Când MP//MC = 1, cele mai de jos 4 Kcuvinte ale memoriei programsunt externe.

4.4.4 Registrele mapate în memorie

Cele 6 registre mapate în memoria de date sunt prezentate în continuare şi suntarătate în schema bloc din Fig.4.2. Ele pot fi accesate în aceeaşi manieră cu altelocaţii de memorie de date, cu excepţia faptului că mutarea blocurilor cuinstrucţiunea BLKD (mutarea blocului din memoria de date în memoria de date)nu se poate face din registrele mapate în memorie.

Locaţie Registru Descriere0 DRR(15-0) Registru de recepţie al portului serial1 DXR(15-0) Registru de transmisie al portului serial2 TIM(15-0) Registru Timer3 PRD(15-0) Registru de perioadă4 IMR(5-0) Registrul măştii de întreruperi5 GREG(7-0) Registrul de alocare a memoriei globale

4.4.5 Registrele auxiliare

TMS320C2x conţine un banc de registre cu până la 8 registre auxiliare (AR0 -AR7). TMS32020 are 5 registre auxiliare, iar TMS320C25 are 8 astfel de registre.În continuare sunt prezentate funcţiile fiecărui registru şi modul în care esteselectat pentru stocare un registru auxiliar.

Registrele auxiliare pot fi folosite pentru adresarea indirectă a memoriei de date şipentru stocarea temporară a datelor. Adresarea indirectă prin registrele auxiliare(vezi Fig.4.6) permite plasarea adresei unui operand (dintr-o instrucţiune) dinmemoria de date ARP (3 biţi) care este cuprins între 0 şi 7, desemnând respectivregistrele AR0-AR7. Registrele auxiliare şi ARP pot fi încărcate fie din memoriade date, fie direct cu un operand imediat găsit în instrucţiune.

Conţinutul acestui registru poate fi de asemenea stocat în memoria de date (veziprogramarea în modul de adresare indirect). Bancul registrelor auxiliare (AR0-AR4 la TMS32020 şi AR0-AR7 la TMS320C25) este conectat la ARAU (veziFig.4.7). ARAU poate autoindexa registrul auxiliar curent cât timp este adresată olocaţie a memoriei de date. Se poate face indexarea cu + sau -1 sau cu conţinutullui AR0. Ca rezultat, nu este necesară folosirea CALU pentru accesarea tabelelorcu informaţii, ceea ce lasă liberă CALU pentru alte operaţii.

Page 9: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

Procesoare numerice de semnal - Cap. 4 19

Fig.4.6 Un exemplu de adresare indirectă cu registru auxiliar

Fig.4.7 Bancul registrelor auxiliare

Aşa cum se vede în Fig.4.7, AR0 sau cei mai puţin semnificativi 8 biţi airegistrelor instrucţiune pot fi conectaţi la una din intrările ARAU. Cealaltă intrareeste alimentată de registrul AR curent (indicat de ARP), care dă spre ARAUconţinutul său.

ARAU realizează următoarele funcţii:1) AR(ARP) + AR0 → AR(ARP) ; incrementează AR curent cu valoarea întreagă

pe 16 biţi conţinută de AR02) AR(ARP) - AR0 → AR(ARP) ; decrementează AR curent cu valoarea întreagă

pe 16 biţi conţinută de AR0

Page 10: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

20 Procesoare numerice de semnal - Cap. 4

3) AR(ARP) + 1 → AR(ARP) ; incrementează AR curent cu 14) AR(ARP) - 1 → AR(ARP) ; decrementează AR curent cu 15) AR(ARP) → AR(ARP) ; AR(ARP) este neschimbat.

Pe lângă funcţiile prezentate mai sus, ARAU din TMS320C25 mai realizeazăurmătoarele:6) AR(ARP) + IR(7-0) → AR(ARP) ; adună la AR curent o valoare imediată pe 8

biţi7) AR(ARP) - IR(7-0) → AR(ARP) ; scade o valoare imediată pe 8 biţi din AR

curent8) AR(ARP) + rcAR0 → AR(ARP) ; indexare cu schimbarea biţilor, adună AR0

cu schimbarea lui carry, propagată (reverse-carry propagation) - vezi modul deadresare indirectă

9) AR(ARP) - rcAR0 → AR(ARP) ; ca mai sus, dar cu scădere.

De asemenea, ARAU este folositoare pentru manevrarea adreselor în paralel cualte operaţii, şi poate servi de asemenea ca o unitate adiţională aritmetică cu scopgeneral, odată ce registrele auxiliare pot comunica direct cu memoria de date.

ARAU implementează operaţii aritmetice cu numere fără semn pe 16 biţi, iarCALU implementează operaţii aritmetice pe 32 de biţi, cu numere în complementfaţă de 2.

Instrucţiunile furnizează salturi dependente de comparaţia registrelor auxiliareindicate de ARP, cu AR0. Instrucţiunile BANZ permit de asemenea folosirearegistrelor auxiliare drept contoare pentru bucle. ARB pe 3 biţi (bufferulindicatorului registrelor auxiliare), reprezentat ca în Fig.4.7, permite stocareaconţinutului ARP în cazul apelului de subrutine sau al întreruperilor.

4.4.6 Moduri de adresare a memoriei

TMS320C2x poate adresa în total 64 Kcuvinte de memorie program şi 64 Kcuvintede memorie de date. Memoria de date de pe circuit este mapată în spaţiul de 64Kcuvinte de memorie de date.

Memoria ROM de pe circuit în TMS320C25 este mapată în spaţiul de memorieprogram, în modul microcalculator. Harta memoriei, care se schimbă cuconfiguraţia blocului B0, a fost descrisă în §4.4.4. Magistrala de adrese memoriede date DAB pe 16 biţi adresează memoria de date într-unul din următoarelemoduri:1) Pe magistrala directă de adrese DRB, folosind modul de adresare directă (de

exemplu ADD>10);2) Pe magistrala bancului registrelor auxiliare AFB, folosind modul de adresare

indirect (de exemplu ADD*).

Page 11: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

Procesoare numerice de semnal - Cap. 4 21

Operanzii sunt de asemenea adresaţi prin conţinutul numărătorului de program, înmodul de adresare imediat. Fig.4.8 ilustrează adresarea operanzilor în moduriledirect, indirect şi imediat.

Fig.4.8 Metode de adresare a operandului instrucţiunii

În modul de ADRESARE DIRECTĂ, cei 9 biţi ai indicatorului paginii de memoriede date DP indică una din cele 512 pagini, fiecare pagină având 128 cuvinte.Adresa memoriei de date (dma), specificată prin cei mai puţin semnificativi 7 biţiai instrucţiunii, indică cuvântul dorit din pagină. Adresa de pe DRB se formeazăconcatenând cei 9 biţi ai DP cu cei 7 biţi dma.

În modul de ADRESARE INDIRECTĂ, registrul auxiliar curent selectat prinARP(AR(ARP)), prin cei 16 biţi ai săi, adresează memoria de date pe magistralaAFB (a bancului registrelor auxiliare). În timpul cât registrul auxiliar selectatfurnizează adresa datei din memoria de date şi data este manevrată de CALU,conţinutul registrului auxiliar poate fi manipulat în ARAU. Modurile de adresaredirectă şi indirectă sunt descrise în detaliu în Cap.6 (§6.1).

Când se foloseşte un operand imediat, el este conţinut fie în însuşi cuvântulinstrucţiune, fie, în cazul unui operand imediat pe 16 biţi, cuvântul este cel imediaturmător codului instrucţiunii.

4.4.7 Transferurile memorie - memorie

TMS320C2x permite instrucţiuni pentru mutarea blocurilor de date sau programeşi funcţii pentru mutarea datelor, care pot fi folosite eficient pentru memoria RAMde pe circuit:

• Instrucţiunea BLKD, mută un bloc în interiorul memoriei de date;• Instrucţiunea BLKP, mută un bloc din memoria program în memoria de date.

Page 12: D(15-0) - Magistrala de date ă de 16 biţi folosită pentru ...pns.ac.tuiasi.ro/Doc/curs/Curs_06.pdf · Procesoare numerice de semnal - Cap. 4 11 D(15-0) - Magistrala de date O magistrală

22 Procesoare numerice de semnal - Cap. 4

Când se folosesc BLKD sau BLKP cu instrucţiunile repetitive RPT / RPTK, atunciaceste instrucţiuni realizează eficient mutarea blocurilor din memoriile de pecircuit sau din afara acestuia.

Implementată în circuitul RAM de pe circuit, funcţia DMOV (data move) laTMS320C2x este echivalentă cu cea de la TMS320C1x. DMOV permite copiereaunui cuvânt de la adresa locaţiei curente din memoria de date în circuitul RAMintern la următoarea locaţie superioară în timp ce data din locaţia adresată esteoperată în acelaşi ciclu (de către CALU). De asemenea, poate fi executată ooperaţie ARAU în acelaşi ciclu, când se foloseşte modul de adresare indirectă.

Funcţia DMOV este utilă pentru implementarea algoritmilor care folosesc operaţiade întârziere Z la puterea -1, cum ar fi convoluţia sau filtrarea digitală, când datelesunt trecute printr-o fereastră în timp. DMOV se poate folosi oriunde în interiorulblocurilor B0, B1, sau B2. Este continuă în hotarele lui B0, B1, B2, dar nu poate fifolosită cu memoria de date externă.

Instrucţiunile MACD (înmulţeşte şi acumulează cu transfer de date) şi LTD(încarcă registrul T, încarcă rezultatul în acumulator şi mută data) folosesc funcţiaDMOV.

Instrucţiunile TBLR / TBLW (table read / write) permit transferul cuvintelor întrespaţiul de program şi de date. TBLR se foloseşte pentru a citi cuvinte de la unROM intern sau o memorie de program ROM / RAM externă, în memoria RAM dedate. TBLW se foloseşte pentru a scrie cuvinte dintr-o memorie internă RAM dedate într-o memorie RAM de program externă.