Sunteți pe pagina 1din 25

Procesoare Numerice de Semnal - CURS 1

4. Structura hardware a generaţiei TMS320C2x

4.1 Descrierea semnalelor


4.2 Privire generală asupra arhitecturii
4.3 Structura internă
4.4 Organizarea memoriei
4.5 Unitatea centrală aritmetică şi logică
4.6 Controlul sistemului
4.7 Memoria externă şi interfaţa I/O
4.8 Întreruperile
4.9 Portul serial
4.10 Multiprocesare şi accesul direct la memorie
Procesoare Numerice de Semnal - CURS 2

4.4 Organizarea memoriei

TMS320C2x asigură intern un total de 544 de cuvinte de memorie


de 16 biţi, sub forma unei memorii RAM pe circuit, din care:
288 sunt întotdeauna memorie de date, iar restul de
256 de cuvinte pot fi configurate fie ca memorie de program, fie ca
memorie de date.
De asemenea, TMS320C2x include 4 Kcuvinte de memorie de
program ROM programabilă cu mască.
Procesoare Numerice de Semnal - CURS 3

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
Procesoare Numerice de Semnal - CURS 4

4.4.1 Memoria de date

Blocul B0 conţine 256 de cuvinte de memorie RAM, configurabile fie ca


memorie de 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ă


gestioneze un masiv de date de 512 cuvinte (256 cuvinte dacă RAM de pe
circuit este folosit ca memorie program), rămânând şi 32 locaţii pentru
stocarea altor date intermediare (vezi §4.4.3 - Harta memoriei).

TMS320C2x poate adresa 64 Kcuvinte de memorie de date. Memoria RAM de


date de pe circuit şi locaţiile rezervate intern sunt plasate pe harta memoriei pe
cele mai de jos 1 Kcuvinte din spaţiul de memorie de date. Memoria de date
este direct expandabilă la 64 Kcuvinte, menţinându-se intactă viteza de
prelucrare. Linia READY este prevăzută pentru adaptarea la memoriile lente,
dar mai ieftine, cum sunt circuitele dinamice (DRAM).
Procesoare Numerice de Semnal - CURS 5

4.4.2 Memoria de program


Poate fi constituită din memoria RAM de pe circuit, ROM, sau memorii
externe de program 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 la memoriile mai lente şi mai ieftine (memorii
externe). Este disponibil un spaţiu adresabil de memorie de 64 Kcuvinte.

Blocul intern RAM B0 poate fi configurat ca memorie program folosind


instrucţiuni speciale în acest scop. Execuţia de instrucţiuni din acest bloc
poate fi iniţiată după ce spaţiul de memorie a fost reconfigurat (vezi §4.7.1
pentru descrierea execuţiei instrucţiunilor folosind diferite configuraţii de
memorie). În plus, TMS320C25 este echipat cu 4 Kcuvinte de memorie
program ROM, care poate fi programată cu mască la producător cu un
program al clientului. Memoria ROM de pe circuit permite execuţia
programului la viteza integrală fără a apela la memoria externă de program
de mare viteză. Folosirea acestei memorii permite de asemenea magistralei
externe de date să fie liberă pentru accesarea memoriei externe de date.
Procesoare Numerice de Semnal - CURS 6

4.4.2 Memoria de program

Modul de aşezare pe harta memoriei a primelor 4 Kcuvinte din blocul de


memorie program pe sau în afara circuitului este selectabil de către
utilizator cu ajutorul pinului MP//MC al lui TMS320C25. Acest lucru
permite proiectantului să accelereze durata de dezvoltare cu ajutorul unui
produs bazat pe TMS320C25 folosind ROM extern, şi reducerea costului,
folosind 4K de ROM intern fără reproiectarea cablajului imprimat.
Setând MP//MC la high se realizează maparea de memorie program în
afara circuitului. MP//MC = low realizează maparea în memoria ROM
internă.

MP//MC de la TMS320C25 este pentru TMS32020 un pin de alimentare


(Vcc). Acest lucru permite substituirea lui TMS320C25 cu TMS32020 cât
timp TMS320C25 operează automat în modul microprocesor, asigurându-
se astfel compatibilitatea.
Procesoare Numerice de Semnal - CURS 7

4.4.3 Harta memoriei

TMS320C2x suportă 3 spaţii separate de adrese de memorie:


- pentru memoria program,
- pentru memoria de date, şi
- pentru periferice I/O

Aceste spaţii se disting în exterior prin semnalele /PS, /DS şi /IS (selectare
program, date şi I/O). Semnalele /PS, /DS, /IS şi /STRB sunt active numai
când memoria externă a fost adresată. În timpul unui ciclu de adresare
intern, aceste semnale rămân inactive (high), acest lucru prevenind conflictele
în adresarea memoriei, când blocul B0 este configurat ca memorie de
program.
Procesoare Numerice de Semnal - CURS 8

4.4.3 Harta memoriei


Procesoare Numerice de Semnal - CURS 9

4.4.3 Harta memoriei


Procesoare Numerice de Semnal - CURS 10

4.4.3 Harta memoriei


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 în
paginile 4 şi 5 ale hărţii memoriei de date când este configurat ca RAM de
date, şi de la 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 registre mapate în memorie şi locaţii rezervate intern, iar
paginile 1-3 ale hărţii de memorie de date sunt locaţii rezervate intern.
Locaţiile rezervate intern pot să nu fie folosite pentru stocare, şi conţinutul lor
este nedefinit la citire.

Memoria RAM de pe circuit este mapată fie în spaţiul de 64 Kcuvinte de


memorie de date sau de memorie program, depinzând de configuraţia
memoriei.
Procesoare Numerice de Semnal - CURS 11

4.4.3 Harta memoriei

Instrucţiunile CNFD / CNFP sunt folosite pentru configurarea blocului


B0 fie ca memorie 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 B0 este configurat ca RAM de date. Apoi o
instrucţiune CNFP (configurarea blocului ca 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 din memoria externă
de program. Când este accesată memoria internă de program, liniile de
control externe rămân inactive.
Procesoare Numerice de Semnal - CURS 12

4.4.3 Harta memoriei

Resetul configurează B0 ca RAM 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 program intern. La TMS32020,
are loc o întârziere de un ciclu fetch dacă execuţia este din memoria de
program externă.

La TMS320C25, memoria de program ROM de pe circuit este


localizată în cele mai puţin semnificative 4 Kcuvinte de memorie
program, când sunt selectate de MP//MC = 0. Când MP//MC = 1, cele
mai de jos 4 Kcuvinte ale memoriei program sunt externe.
Procesoare Numerice de Semnal - CURS 13

4.4.4 Registrele mapate în memorie

Registrele mapate în memorie pot fi accesate în aceeaşi manieră cu alte


locaţii de memorie de date, cu excepţia faptului că mutarea blocurilor cu
instrucţiunea BLKD (mutarea blocului din memoria de date în memoria de
date) nu se poate face din registrele mapate în memorie.

Cele 6 registre mapate în memoria de date:

Locaţie Registru Descriere


0 DRR(15-0) Registru de recepţie al portului serial
1 DXR(15-0) Registru de transmisie al portului serial
2 TIM(15-0) Registru Timer
3 PRD(15-0) Registru de perioadă
4 IMR(5-0) Registrul măştii de întreruperi
5 GREG(7-0) Registrul de alocare a memoriei globale
Procesoare Numerice de Semnal - CURS 14

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.

Registrele auxiliare pot fi folosite pentru adresarea indirectă a memoriei de date şi


pentru stocarea temporară a datelor. Adresarea indirectă prin registrele auxiliare
permite plasarea adresei unui operand (dintr-o instrucţiune) din memoria de date
prin ARP (3 biţi) care este cuprins între 0 şi 7, desemnând respectiv registrele AR0-
AR7. Registrele auxiliare şi ARP pot fi încărcate fie din memoria de 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.

Bancul registrelor auxiliare (AR0-AR4 la TMS32020 şi AR0-AR7 la TMS320C25) este


conectat la ARAU. ARAU poate autoindexa registrul auxiliar curent cât timp este
adresată o locaţie a memoriei de date. Se poate face indexarea cu + sau -1 sau cu
conţinutul lui AR0. Ca rezultat, nu este necesară folosirea CALU pentru accesarea
tabelelor cu informaţii, ceea ce lasă liberă CALU pentru alte operaţii.
Procesoare Numerice de Semnal - CURS 15

4.4.5 Registrele auxiliare


Un exemplu de adresare indirectă cu registru auxiliar
Procesoare Numerice de Semnal - CURS 16

4.4.5 Registrele auxiliare


Bancul registrelor auxiliare
Procesoare Numerice de Semnal - CURS 17

4.4.5 Registrele auxiliare

AR0 sau cei mai puţin semnificativi 8 biţi ai registrelor instrucţiune


pot fi conectaţi la una din intrările ARAU. Cealaltă intrare este
alimentată de registrul AR curent (indicat de ARP), care transmite
spre ARAU conţ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 AR0
2) AR(ARP) - AR0 → AR(ARP) ; decrementează AR curent cu
valoarea întreagă pe 16 biţi conţinută de AR0
3) AR(ARP) + 1 → AR(ARP) ; incrementează AR curent cu 1
4) AR(ARP) - 1 → AR(ARP) ; decrementează AR curent cu 1
5) AR(ARP) → AR(ARP) ; AR(ARP) este neschimbat.
Procesoare Numerice de Semnal - CURS 18

4.4.5 Registrele auxiliare

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ţi
7) AR(ARP) - IR(7-0) → AR(ARP) ; scade o valoare imediată
pe 8 biţi din AR curent
8) AR(ARP) + rcAR0 → AR(ARP) ; indexare cu schimbarea
biţilor, adună AR0 cu schimbarea lui carry, propagată
(reverse-carry propagation) - vezi modul de adresare indirectă
9) AR(ARP) - rcAR0 → AR(ARP) ; ca mai sus, dar cu
scădere.
Procesoare Numerice de Semnal - CURS 19

4.4.5 Registrele auxiliare

De asemenea, ARAU poate fi folosită pentru manevrarea adreselor în


paralel cu alte operaţii, şi poate servi de asemenea ca o unitate aritmetică
adiţională, cu scop general, din moment ce registrele auxiliare pot
comunica direct cu memoria de date.

ARAU implementează operaţii aritmetice cu numere fără semn pe 16 biţi,


iar CALU implementează operaţii aritmetice pe 32 de biţi, cu numere în
complement faţă de 2.

Instrucţiunile de ramificare determină salturi dependente de comparaţia


registrelor auxiliare indicate de ARP, cu AR0.
Instrucţiunile BANZ permit de asemenea folosirea registrelor auxiliare
drept contoare pentru bucle.
ARB pe 3 biţi (bufferul indicatorului registrelor auxiliare), permite
stocarea conţinutului ARP în cazul apelului de subrutine sau al
întreruperilor.
Procesoare Numerice de Semnal - CURS 20

4.4.6 Moduri de adresare a memoriei


TMS320C2x poate adresa în total 64 Kcuvinte de memorie program şi 64 Kcuvinte de
memorie de date.
Memoria de date de pe circuit este mapată în spaţiul de 64 Kcuvinte de memorie de
date.
Memoria ROM de pe circuit în TMS320C25 este mapată în spaţiul de memorie
program, în modul microcalculator.
Magistrala de adrese a memoriei de date, DAB, pe 16 biţi, adresează memoria de date
într-unul din următoarele moduri:
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*).

Operanzii sunt de asemenea adresaţi prin conţinutul numărătorului de program, în


modul de adresare imediat.
Procesoare Numerice de Semnal - CURS 21

4.4.6 Moduri de adresare a memoriei

Metode de adresare a operandului instrucţiunii


Procesoare Numerice de Semnal - CURS 22

4.4.6 Moduri de adresare a memoriei


În modul de ADRESARE DIRECTĂ, cei 9 biţi ai indicatorului paginii de
memorie de 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ţi ai 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


prin ARP (AR(ARP)), prin cei 16 biţi ai săi, adresează memoria de date pe
magistrala AFB (a bancului registrelor auxiliare). În timpul cât registrul
auxiliar selectat furnizează adresa datei din memoria de date şi data este
manevrată de CALU, conţinutul registrului auxiliar poate fi manipulat în
ARAU.

Când se foloseşte un operand imediat, el este conţinut fie în însuşi cuvântul


instrucţiune, fie, în cazul unui operand imediat pe 16 biţi, cuvântul este cel
imediat următor codului instrucţiunii.
Procesoare Numerice de Semnal - CURS 23

4.4.7 Transferurile memorie - memorie

TMS320C2x dispune de instrucţiuni pentru mutarea blocurilor de date


sau programe şi funcţii pentru mutarea datelor, care pot fi folosite eficient
pentru memoria RAM de 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.

Când se folosesc BLKD sau BLKP cu instrucţiunile repetitive RPT /


RPTK, atunci aceste instrucţiuni realizează eficient mutarea blocurilor din
memoriile de pe circuit sau din afara acestuia.
Procesoare Numerice de Semnal - CURS 24

4.4.7 Transferurile memorie - memorie

Implementată în circuitul RAM de pe circuit, funcţia DMOV (data


move) la TMS320C2x este echivalentă cu cea de la TMS320C1x.
DMOV permite copierea unui cuvânt de la adresa locaţiei curente din
memoria de date în circuitul RAM intern la următoarea locaţie
superioară, în timp ce data din locaţia adresată este operată în acelaşi
ciclu (de către CALU). De asemenea, poate fi executată o operaţ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ţia de întârziere Z la puterea -1, cum ar fi convoluţia sau
filtrarea digitală, când datele sunt trecute printr-o fereastră în timp.
DMOV se poate folosi oriunde în interiorul blocurilor B0, B1, sau B2.
Este continuă în hotarele lui B0, B1, B2, dar nu poate fi folosită cu
memoria de date externă.
Procesoare Numerice de Semnal - CURS 25

4.4.7 Transferurile memorie - memorie

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ţia DMOV.

Instrucţiunile TBLR / TBLW (table read / write) permit transferul


cuvintelor între spaţiul de program şi de date.
• TBLR se foloseşte pentru a citi cuvinte de la un ROM intern
sau o memorie de program ROM / RAM externă, în memoria
RAM de date.
• TBLW se foloseşte pentru a scrie cuvinte dintr-o memorie
internă RAM de date într-o memorie RAM de program
externă.

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