Sunteți pe pagina 1din 38

Procesoare Numerice de Semnal - CURS 1

3.3 Generaţia TMS320C2x

Generaţia C2x este o versiune extinsă a arhitecturii C1x (arhitectură


Harvard pe 16 biţi, în virgulă fixă).
Atunci când sunt necesare performanţe superioare faţă de cele oferite
de DSP-ul C1x, TMS320C2x oferă o compatibilitate a codului dar mai
multe îmbunătăţiri structurale şi funcţionale. Aceste îmbunătăţiri
adăugate oferă o mai bună flexibilitate a performanţei, mai multă
memorie on-chip şi o mai mare putere de calcul.
Există de asemenea un compilator ANSI C proiectat pentru C2x, care
translatează limbajul ANSI C direct în limbajul de asamblare al lui
C2x.
Procesoare Numerice de Semnal - CURS 2

3.3.1 C2x - Introducere

Procesoarele DSP C2x realizează 10-12,5 MIPS. C2x oferă o performanţă de 4


ori mai bună decât generaţia C1x şi acceptă cod sursă de la dispozitivele C1x.

Durata ciclului instrucţiune este de 80ns. Au fost introduse noi facilităţi precum:
74 instrucţiuni suplimentare (un total de 134 de instrucţiuni), 8 registre
auxiliare, stiva hardware pe 8 nivele, un spaţiu mai mare de memorie on-chip şi
operaţii de multiplicare / ALU într-un singur ciclu cu execuţie simultană. C2x
implementează adresarea cu bit inversat pentru transformările Fourier rapide
(FFT - Fast Fourier Transforms) prin hardware, eliminând soluţiile software
greoaie şi îmbunătăţind astfel performanţa.

O altă facilitate introdusă odată cu generaţia C2x este prezenţa unui generator
de stări de aşteptare pentru comunicarea cu memoriile mai lente off-chip.

Pentru generaţia C2x a fost pus la dispoziţie un compilator ANSI C optimizator.


Acesta permite dezvoltarea şi depanarea codului în ANSI C, fără necesitatea
învăţării unui nou limbaj de asamblare. El scurtează de asemenea durata
ciclului de dezvoltare a produsului şi timpul în care acesta poate ajunge pe piaţă.
Procesoare Numerice de Semnal - CURS 3

3.3.2 C2x - Trăsături specifice

• Memorie RAM de date programabilă on-chip de 544 de cuvinte


(incluzând RAM-ul de program / date de 256 de cuvinte)
• Memorie RAM de program / date configurabilă de 1568 de
cuvinte (C26)
• Memorie de program ROM on-chip de 4 Kcuvinte (C25)
• Memorie de program OTP on-chip de 4 Kcuvinte
• Spaţiu total de memorie de date / program de 128 Kcuvinte
• ALU / acumulator de 32 de biţi
• Multiplicator paralel 16 x 16 cu produs pe 32 de biţi
• Multiplicare cu acumulare într-un singur ciclu
• Instrucţiuni de repetare pentru utilizarea eficientă a spaţiului de
program şi o execuţie îmbunătăţită
• Deplasare blocurilor pentru managementul datelor /
programului
• Timer on-chip pentru operaţii de control
• Până la 8 registre auxiliare cu o unitate aritmetică specifică.
Procesoare Numerice de Semnal - CURS 4

3.3.3 C2x - Multiplicatorul / ALU


Într-un mod similar generaţiei
C1x, multiplicatorul on-chip
realizează o înmulţire 16 x 16 cu
produsul pe 32 de biţi, într-un
singur ciclu. Totuşi, pentru a
dubla performanţa, dispozitivele
din generaţia C2x pot extrage 2
operanzi de date în timpul
execuţiei înmulţirii şi acumulării
rezultatului (MAC).

Shifterul cu recirculare de 16 biţi


scalează datele în paralel cu
operaţiile efectuate de ALU;
datele sunt deplasate cu până la 16
poziţii pe durata aceluiaşi ciclu
folosit şi de ALU. Shifterul cu
deplasare la stânga cu 0, 1, 4, sau
6 poziţii operează de asemenea în
paralel cu ALU pentru a realiza
atât o aritmetică întreagă, cât şi
una fracţionară.
Procesoare Numerice de Semnal - CURS 5

3.3.4 C2x - Interfaţa pentru dispozitivele off-chip


Generaţia C2x dispune de o arhitectură internă
Harvard modificată pentru a realiza extrageri paralele
de date şi instrucţiuni. În exterior, aceste magistrale
sunt multiplexate pentru a reduce dimensiunile capsulei
şi costul dispozitivului. Cea mai mare parte a aplicaţiilor
plasează fie programul, fie datele, în memoria on-chip,
cealaltă componentă regăsindu-se în memoria off-chip
pentru a minimiza conflictele pe magistralele externe şi
pentru a maximiza performanţa sistemului.

Semnalul de strobare corespunzător este selectat de


către procesor după cum se execută un ciclu fetch, sau o
comandă I/O. Aceste semnale uşurează interfaţarea cu
memoria off-chip şi cu perifericele externe.

Linia READY permite adăugarea stărilor de aşteptare în vederea accesului la


memoria externă. Acest fapt este util în cazul sistemelor cu preţ redus (low cost), care
utilizează o memorie externă mai lentă pentru a reduce costul, în timp ce
performanţa rămâne nealterată prin utilizarea intensivă a memoriei on-chip.
Procesoare Numerice de Semnal - CURS 6

3.3.4 C2x - Interfaţa pentru dispozitivele off-chip


Semnalele /HOLD (hold) şi /HOLDA (hold acknowledge) permit unui procesor extern
să oprească execuţia, să acceseze direct memoria externă a lui C25 şi să permită
reluarea operării. Această soluţie este extrem de utilă în unele proiecte cu mai multe
dispozitive C25, sau în sisteme care dispun de un procesor gazdă. Un semnal separat
pentru selecţia I/O permite implementarea a 16 porturi I/O pe seama magistralei de
date de 16 biţi. Porturile I/O permit o interfaţare simplă cu convertoarele ADC şi
DAC, deoarece aceste porturi I/O dispun de un semnal de selecţie separat, pe lângă
semnalele standard ale interfeţei cu magistrala de date.

Portul serial reprezintă o interfaţă de separare faţă de circuitele de intefaţă analogice.


Acest port este dublu bufferat cu circuite separate pentru transmisie şi pentru
recepţie, permiţând rate seriale de transmisie de până la 6,25 Mbps.

Trăsăturile specifice interfeţei pentru dispozitivele off-chip ale procesoarelor C24x


sunt:
• Interfaţa de 16 biţi, de tip microprocesor, la o singură magistrală
• Stări de aşteptare pentru comunicaţia cu memorii sau periferice mai lente
• 16 canale de intrare/ieşire care permit accesuri I/O într-un singur ciclu
• Port serial.
Procesoare Numerice de Semnal - CURS 7

3.3.5 C2x - Realizarea sumei de produse (TMS320C25)


Exemplul ilustrează implementarea unui filtru FIR cu 50 de derivaţii, care este o sumă
de produse. Această operare necesită 4 funcţii pentru fiecare ramură a filtrului.
Procesoare Numerice de Semnal - CURS 8

3.3.5 C2x - Realizarea sumei de produse (TMS320C25)

Mai întâi, conţinutul registrului temporar (TR - Temporary Register) trebuie încărcat
în multiplicator utilizând comanda LT.

Apoi, se execută o deplasare a datelor (DMOV). DMOV este o metodă de adresare a


seturilor de date anterioare pentru algoritmii DSP obişnuiţi. De exemplu, după ce
primul set de calcule este executat asupra unui set de date asociate unui filtru FIR, o
nouă valoare trebuie adusă, iar vechea valoare trebuie descărcată. DMOV permite
acest lucru prin tratarea datelor într-o manieră circulară, cu vechile şi noile valori
plasate unele lângă celelalte. La sfârşitul fiecărui calcul, o nouă valoare se plasează în
memorie în locul vechii valori. În sfârşit, rezultatul înmulţirii anterioare este
"acumulat" (APAC), iar înmulţirea (MPY) este realizată.

La un procesor C1x, s-ar putea realiza primele 3 funcţii în paralel utilizând


instruţiunea LTD, multiplicarea ocupând un al doilea ciclu. Procesorul C25 merge un
pas mai departe executând toate cele 4 funcţii într-un singur ciclu prin instrucţiunea
MACD (multiplică, acumulează şi deplasează datele). Utilizând instrucţiunea MACD
în combinaţie cu instrucţiunea de repetare (RPTK), este posibilă o reducere
substanţială a spaţiului de memorie şi o dublare a performanţei.
Procesoare Numerice de Semnal - CURS 9

3.3.6 TMS320C25
Trăsături ale dispozitivului C25:
• Operaţie de multiplicare cu
acumulare (MAC) într-un singur
ciclu
• Instrucţiune de repetare pentru
creşterea eficienţei execuţiei
• Unitate ALU şi acumulator de
32 de biţi
• 8 registre auxiliare cu unitate
aritmetică dedicată
• Multiplicator paralel 16 x 16 cu
produsul pe 32 de biţi
• Shifter paralel de 0 până la 16
biţi
• Acceptă cod sursă de la
generaţia C1x
• Dotări de tip multiprocesor
• Facilităţi de tip microprocesor
• Periferice mapate în memoria
on-chip
• Compilator ANSI C.
Procesoare Numerice de Semnal - CURS 10

3.3.6 TMS320C25

C25 dispune de un set de 134 de instrucţiuni de uz general şi specifice DSP,


8 registre auxiliare, o stivă hardware cu 8 nivele, 4 Kcuvinte de 16 biţi de
memorie ROM de program on-chip şi 544 cuvinte de 16 biţi de memorie
RAM on-chip care poate fi configurată ca memorie de date sau de program,
un câmp de adrese externe de până la 64 Kcuvinte atât pentru date, cât şi
pentru program, un port serial şi 16 porturi I/O.

C25 operează la 80ns, 100ns, sau la 120ns, ceea ce permite realizarea a 12,5
MIPS, 10 MIPS, sau 8,25 MIPS, respectiv. C25 este prezentat într-o capsulă
PLCC cu 68 de pini, sau într-una PQFP OTP cu 80 de pini.

Versiunea OTP înlocuieşte ROM-ul de program de 4K cu ROM OTP


pentru realizarea prototipurilor.
Procesoare Numerice de Semnal - CURS 11

3.3.7 TMS320C26
C26 este compatibil în cod obiect şi la
pini cu C25. Memoria on-chip a lui C26
a fost configurată pentru sisteme bazate
pe RAM. Dispozitivul dispune de un
ROM de bootare şi de 1,5 Kcuvinte de
16 biţi de RAM, care pot fi configurate
ca memorie de program sau de date.

Caracteristicile lui C26:


•Ciclu instrucţiune de 100ns
•Acceptă cod sursă de la generaţia C1x
•Domeniu de adrese extins până la 128
Kcuvinte
•Multiplicare cu acumulare (MAC)
într-un singur ciclu
•Set cu 134 de instrucţiuni de uz
general şi specifice DSP
•Carcteristici multiprocesor
•Caracteristici microprocesor
•Periferice mapate în memoria on-chip
•Compilator ANSI C
•Capsulă PLCC cu 68 de pini.
Procesoare Numerice de Semnal - CURS 12

3.4 Generaţia TMS320C2xx

Generaţia C2xx îmbină o performanţă crescută cu un cost mai scăzut.


C2xx conţine dispozitive DSP pe 16 biţi în virgulă fixă, bazate pe o
arhitectură Harvard modificată, care oferă o performanţă de până la
40 MIPS şi o putere disipată de 1,1mA / MIPS.

Dispozitivele C2xx sunt realizate în tehnologie statică, dispun de


versiuni de 3V, au un mod idle şi pot utiliza opţiuni on-chip pentru
PLL. Aceste facilităţi contribuie la reducerea puterii solicitate.

Dispozitivele C2xx sunt compatibile în cod sursă cu generaţia C2x şi


sunt compatibile în sus cu generaţia C5x. Asamblorul C5x acceptă
instrucţiunile C2xx ca şi instrucţiunile specifice C5x. Setul de
instrucţiuni pentru C2xx încorporează toate instrucţiunile lui C2x şi
adaugă altele 11 noi.
Procesoare Numerice de Semnal - CURS 13

3.4.1 C2xx - Introducere


Nucleul CPU la C2xx dispune de memorie RAM cu dublu acces de 544
de cuvinte. Domeniul de adrese externe este de 224 Kcuvinte; câte 64
de Kcuvinte pentru date, program şi I/O şi 32 de Kcuvinte de memorie
globală pentru operarea de tip multiprocesor.

Generaţia C2xx este însoţită de o suită completă de unelte de


dezvoltare, care permit uşurarea procesului de proiectare - dezvoltare.
Texas Instruments oferă un compilator C / asamblor / linker, un
simulator, un modul de evaluare şi un emulator / depanator care
suportă standardul JTAG IEEE 1149.1. Numeroase alte companii
furnizează de asemenea unelte de dezvoltare pentru generaţia C2xx.

Generaţia C2xx conţine de asemenea primele dispozitive DSP ale


firmei TI care dispun de memorie flash on-chip. F206 are 32 de
Kcuvinte de memorie flash şi 4,5 de Kcuvinte de RAM, permiţând
eliminarea memoriilor externe mai scumpe.
Procesoare Numerice de Semnal - CURS 14

3.4.2 C2xx - Trăsături specifice

• Memorie RAM de date / program on-chip de până la 4,5


Kcuvinte
• Memorie flash on-chip de 32 Kcuvinte (F206)
• ALU / acumulator de 32 de biţi
• Multiplicator paralel 16 x 16 cu produs pe 32 de biţi
• Instrucţiuni de repetare pentru utilizarea eficientă a spaţiului de
program şi o execuţie îmbunătăţită
• Timer on-chip de 16 biţi
• Shifter cu recirculare de 16 biţi
• Stivă hardware cu 8 nivele
• Mod "power down"
• Generator de stări de aşteptare software
• Capsulă TQFP cu 80 sau 100 de pini
• Opţiuni multiple pentru PLL pentru reducerea interferenţelor
electromagnetice (EMI) şi a puterii disipate pe dispozitiv
Procesoare Numerice de Semnal - CURS 15

3.4.3 C2xx - Portul serial sincron


C2xx oferă un port serial sincron full-
duplex cu rată de transfer de până la
20 Mbps (la o durată a ciclului
instrucţiune de 25ns). Rata de transfer
este jumătate din viteza ceasului extern
al dispozitivului. Acest port serial
sincron bidirecţional permite
comunicaţia directă cu diverse
dispozitive seriale precum, codec-uri,
ADC seriale şi alte sisteme seriale.
Portul serial poate fi utilizat pentru
intercomunicaţii între procesoare în
aplicaţiile cu multiprocesare.

Atât latura de recepţie, cât şi cea de


transmisie, ale portului serial dispun de
un buffer cu 4 nivele de adâncime, sau
FIFO, permiţând ca CPU să accepte o
întrerupere de 1, 2, 3, sau 4 nivele de
adâncime. Această capacitate permite o
intervenţie redusă din partea CPU şi o
creştere a flexibilităţii şi a eficienţei în
ce priveşte transferul datelor.
Procesoare Numerice de Semnal - CURS 16

3.4.4 C2xx - Portul serial asincron


C2xx dispune de un port serial
asincron full-duplex şi dublu
bufferat. El acceptă date de 8
biţi şi poate fi programat prin
intermediul unui registru care
acceptă rate de transfer de
până la 2,5 Mbps.

Portul serial asincron poate fi


utilizat pentru a comunica cu
alte dispozitive, precum
microcontrolere, sau pentru
conexiuni RS-232 care suportă
transferuri de date de până la
115,2 Kbps.
Procesoare Numerice de Semnal - CURS 17

3.4.5 C2xx - Încărcătorul (boot loader)


Unele dispozitive C2xx dispun on-chip de
un boot loader codificat hard, care permite
încărcarea codului dintr-un EPROM
extern de 8 biţi în RAM-ul intern sau
extern. EPROM-ul este mapat în zona
memoriei de date globale. Odată ce
operaţia de încărcare începe, datele de 8
biţi sunt citite de dispozitiv şi reasamblate
în cuvinte de 16 biţi la o destinaţie
specificată de utilizator. La terminarea
încărcării, controlul dispozitivului este
trecut la începutul programului.
Procesoare Numerice de Semnal - CURS 18

3.4.6 C2xx - Magistrala memoriei

Arhitectura de tip Harvard avansată a generaţiei C2xx maximizează puterea de procesare prin
menţinerea a două structuri separate pentru magistrala de memorie, de program şi de date, în
vederea unei execuţii la întreaga viteză. Această structură cu magistrale multiple permite citirea
simultană atât a datelor, cât şi a instrucţiunilor. Instrucţiunile suportă transferuri de date între
cele două spaţii. Această arhitectură permite stocarea coeficienţilor în memoria program, citirea
lor în memoria RAM, eliminarea necesităţii unui ROM separat pentru coeficienţi. Aceasta,
împreună cu pipeline-ul pe 4 nivele de adâncime, permit lui C2xx să execute cea mai mare parte
a instrucţiunilor într-un singur ciclu.
Procesoare Numerice de Semnal - CURS 19

3.4.6 C2xx - Magistrala memoriei

Memoria DARAM (RAM cu dublu acces) permite scrieri şi citiri din RAM în
acelaşi ciclu, fără restricţiile de adresare ca în cazul RAM-ului cu acces unic
(SARAM). DARAM este configurată în 3 blocuri: B0, B1 şi B2. Blocul B0 este de
256 de cuvinte şi poate fi configurat ca memorie de program sau de date. Blocul
B1 conţine 256 de cuvinte, iar B2, 32 de cuvinte. B1 şi B2 sunt blocuri de memorie
de date.

Unele dispozitive C2xx dispun şi de memorie SARAM şi/sau ROM. F206 include
o memorie flash de 32 de Kcuvinte. Memoria flash oferă o alternativă excelentă la
RAM datorită costului ei mai redus şi a stocării nevolatile; ea reprezintă o
alternativă şi faţă de ROM datorită reprogramabilităţii sale.

Abilitatea memoriei DARAM de a efectua două accesuri într-un ciclu, împreună


cu arhitectura pur paralelă a generaţiei C2xx, permite acestor dispozitive să
realizeze 3 accesuri concurente la memorie în orice ciclu maşină.
Procesoare Numerice de Semnal - CURS 20

3.4.7 TMS320C203
C203 încorporează toate
trăsăturile nucleului C2xx şi
adaugă două porturi seriale
de înaltă performanţă pentru
îmbunătăţirea comunicaţiei
cu dispozitive periferice.
Există un port serial sincron
cu un FIFO cu 4 nivele de
adâncime, care conduce la o
intervenţie scăzută a CPU şi
la un preţ redus. Un port
serial asincron full-duplex,
un generator programabil de
stări de aşteptare şi un timer
de 16 biţi reprezintă alte
facilităţi ale dispozitivului.
Porturile seriale, timer-ul şi
generatorul de stări de
aşteptare sunt mapate în
spaţiul I/O. C203 este
încapsulat în TQFP cu 100
pini.
Procesoare Numerice de Semnal - CURS 21

3.4.8 TMS320C204
C204 se bazează pe
acelaşi nucleu ca şi C203
şi oferă aceleaşi
performanţe şi
periferice. În plus, C204
adaugă 4 Kcuvinte de
ROM mascat pentru
stocarea on-chip a
programului la un preţ
scăzut. C204 este inclus
într-o capsulă TQFP cu
100 de pini şi este
compatibil la pin cu
C203.
Procesoare Numerice de Semnal - CURS 22

3.4.9 TMS320C/F206
F206 este primul DSP
produs de firma TI
care încorporează on-
chip memorie flash.
Dispozitivul Flash DSP
F206 dispune de 32 de
Kcuvinte de memorie
flash integrată în
spaţiul memoriei
program. Memoria
flash este atractivă ca
memorie de program
deoarece ea are un cost
mai redus decât SRAM
şi o mai mare
flexibilitate decât
ROM.

Alături de memoria flash, F206 dispune şi de un spaţiu total de memorie RAM on-chip
de 4,5K. Acest nivel de integrare a memoriei permite cu adevărat realizarea unor soluţii
"one-chip" pentru multe sisteme.
Procesoare Numerice de Semnal - CURS 23

3.4.10 TMS320C209
C209 a fost primul
membru al generaţiei
C2xx. El preia nucleul
C2xx şi adaugă 4
Kcuvinte de ROM şi încă
4 Kcuvinte de RAM (un
total de 4,5 Kcuvinte).
Memoria on-chip
suficient de mare, capsula
destul de mică şi costul
relativ scăzut fac ca acest
dispozitiv să fie unul
extrem de atractiv pentru
aplicaţii cu constrângeri
severe de spaţiu, ca de
exemplu controlerele
miniatură pentru hard-
disk-uri.

C209 nu include porturile seriale ale lui C203.


Procesoare Numerice de Semnal - CURS 24

3.5 Generaţia TMS320C24x

Dispozitivele C24x reprezintă un grup de procesoare optimizate


pentru controlul digital al motoarelor şi includ managere de
evenimente special proiectate pentru a permite un control robust şi
eficient din punct de vedere energetic al motoarelor.
Aceste produse sunt în mod special adecvate controlului cu viteză
variabilă a motoarelor fără perii, incluzând:
• motoare de curent continuu cu magneţi permanenţi,
• de curent alternativ de inducţie, sau
• cu reluctanţă comutată.
Procesoare Numerice de Semnal - CURS 25

3.5.1 C24x - Introducere

Controlerele DSP din generaţia TMS320C24x sunt dispozitive optimizate pentru


controlul performant al motoarelor şi fac parte din generaţia C2xx a firmei TI.
Ele au fost special concepute pentru aplicaţiile de control şi combină toate
facilităţile necesare pentru implementarea de controlere single-chip, îmbinând
înalta performanţă a unui nucleu DSP cu perifericele on-chip ale unui
microcontroler.
Această abordare conduce la obţinerea unui controler DSP de înaltă performanţă,
care costituie o alternativă mai ieftină faţă de MCU-urile mai lente, dar şi faţă de
ASIC-urile scumpe sau proiectele multichip.
La o durată de 50ns a ciclului instrucţiune, C24x oferă de 10 până la 20 de ori
viteza microcontrolerelor sau a microprocesoarelor de 16 biţi tradiţionale.
Nucleul de 16 biţi, în virgulă fixă, care constituie motorul DSP al dispozitivelor
C24x furnizează o variantă de control digital care nu sacrifică precizia şi
performanţa soluţiilor. De fapt, performanţa sistemului poate fi chiar
îmbunătăţită prin utilizarea algoritmilor avansaţi de control pentru tehnici
precum controlul adaptiv, filtrarea Kalman, sau controlul după stare.
Procesoare Numerice de Semnal - CURS 26

3.5.2 C24x - Arhitectura


Din punct de vedere al arhitecturii,
C24x se bazează pe nucleul DSP al
generaţiei C2xx. Flexibilitatea
operaţională şi viteza lui C24x este
rezultatul implementării unei
arhitecturi avansate de tip Harvard
modificată (care dispune de
magistrale separate pentru
memoria de program şi cea de
date), a unui pipeline multinivel, a
unor periferice on-chip, a memoriei
on-chip şi a unui set de instrucţiuni
specializat. C24x realizează până la
40 MIPS.

Dispozitivele C24x sunt compatibile


în cod sursă cu generaţia C2x, în
jos, şi cu generaţia C5x, în sus.
Asamblorul C5x acceptă
instrucţiunile C24x, precum şi
instrucţiunile specifice C5x. Setul
de instrucţiuni C24x încorporează
toate instrucţiunile C2x şi adaugă
alte 11 noi instrucţiuni.
Procesoare Numerice de Semnal - CURS 27

3.6 Generaţia TMS320C3x

Generaţia TMS320C3x reprezintă prima serie de DSP-uri


în virgulă mobilă a firmei TI. Dispozitivele C3x permit o
utilizare uşoară şi dispun de o arhitectură de înaltă
performanţă care permite dezvoltarea rapidă a proiectelor.

Dispozitivele C3x pot fi utilizate într-o mare varietate de


domenii, incluzând domeniul aplicaţiilor pentru:
• autovehicole (transporturi),
• controlul digital audio,
• automatizările şi controlul industrial,
• comunicaţiile de date şi
• echipamentele de birotică, precum perifericele
multifuncţionale, copiatoarele şi imprimantele laser.
Procesoare Numerice de Semnal - CURS 28

3.6.1 C3x - Introducere

C3x are o arhitectură von Neumann, care furnizează un spaţiu unificat pentru program şi pentru
date. Pentru a îmbunătăţi performanţele, dispozitivele C3x dispun de 4 magistrale interne de date
şi de cel puţin o magistrală externă de date. Arhitectura de bază este completată cu numeroase
periferice on-chip.

Unitatea CPU dispune de un bloc de multiplicare şi un ALU independente, pentru a realiza până
la 60 MFLOPS (Million Floating-Point Operations Per Second) şi până la 30 MIPS.

Controlerul DMA dispune de propria sa magistrală de date şi operează în paralel cu CPU. El este
programat pentru transferuri de date intrare / ieşire, permitând CPU să se axeze doar pe operaţii
aritmetice. Controlerul DMA poate accesa orice zonă din harta de memorie, fie ea on-chip, off-
chip, sau registrele perifericelor mapate în memorie.

Spaţiul total de memorie pentru C3x este de 16 Mcuvinte de 32 de biţi. Includerea datelor, a
programului şi a spaţiului I/O în acest domeniu adresabil de 16 Mcuvinte, maximizează utilizarea
memoriei şi permite alocarea spaţiului de memorie în funcţie de necesităţi. Ambele blocuri RAM
de câte 1 Kcuvânt de 32 de biţi pot suporta două accesuri ale CPU într-un singur ciclu.
Magistralele separate pentru program, date şi DMA permit cicluri fetch paralele, citiri / scrieri de
date şi operaţii DMA. Pentru a menţine înalta performanţă atunci când se utilizează o memorie
externă mai lentă, C3x dispune de un cache on-chip de 64 de cuvinte.
Procesoare Numerice de Semnal - CURS 29

3.6.2 C3x - Trăsături specifice

CPU
• Cuvânt instrucţiune de 32 biţi, cuvânt de date de 32 biţi, adrese de
24 biţi
• Întregi pe 24/32 biţi, reprezentare în virgulă mobilă pe 32/40 biţi,
operaţii logice pe 32 biţi
• Instrucţiuni cu doi sau trei operanzi
• Unitate ALU paralelă şi instrucţiuni de multiplicare într-un
singur ciclu
• Capacitate de repetare a blocurilor
• Bucle cu depăşire zero şi ramificări într-un singur ciclu
• Apeluri şi reveniri condiţionate
• Instrucţiuni cu interblocare pentru multiprocesare
• Două generatoare de adrese cu 8 registre auxiliare şi două unităţi
aritmetice pentru registrele auxiliare
• 8 registre de 40 de biţ pentru precizie extinsă
• Shifter cu recirculare (de intrare) de 32 biţi
Procesoare Numerice de Semnal - CURS 30

3.6.2 C3x - Trăsături specifice (cont.)

Periferice
• Controler DMA mapat în memoria on-chip pentru operaţii
concurente ale CPU şi de I/O
• Două canale cu prioritate configurabilă (C32)
• Porturi seriale mapate în memorie pentru realizarea
transferurilor de 8, 16, 24, sau 32 de biţi, în mod full-duplex
ƒ Un port serial (C31 / C32)
ƒ Două porturi seriale (C30)
• Două timere de 32 de biţi mapate în memorie
• Două indicatoare externe (flags) de uz general şi 4 întreruperi
externe
• Logică de scanare (scan logic) pentru test şi evaluare
Procesoare Numerice de Semnal - CURS 31

3.6.2 C3x - Trăsături specifice (cont.)

Memorie
• Cache de instrucţiuni de 64 de cuvinte de 32 biţi
• Un singur bloc DARAM on-chip de 4 Kcuvinte de 32 de biţi
(C30)
• Două blocuri DARAM on-chip de 1 Kcuvânt de 32 de biţi
(C30/C31)
• Două blocuri RAM de 256 de cuvinte de 32 de biţi (C32)
• Spaţiu de adrese de 16 Mcuvinte
• Încărcător (boot loader) preprogramat (C31/C32)

Interfeţe ale memoriei


• Două magistrale de extindere pentru memorie / I/O (C30)
• O magistrală externă de memorie (C31/C32)
• Flexibilitate a mărimii datelor de 8, 16, sau 32 de biţi (C32)
Procesoare Numerice de Semnal - CURS 32

3.6.3 C3x - CPU

• Multiplicator de 32 sau 40 de
biţi care operează cu numere
întregi sau în virgulă mobilă
• Unitate ALU de 32 sau 40 de
biţi care operează cu numere
întregi sau în virgulă mobilă
• Shifter cu recirculare de
intrare de 32 de biţi
• 8 registre pe 40 de biţi cu
precizie extinsă
• 2 generatoare de adrese
• 2 registre index
• 8 registre pentru adresare
indirectă
Procesoare Numerice de Semnal - CURS 33

3.6.4 C3x - Memoria


C3x extrage până la 4
cuvinte per ciclu.
Acestea constau în
codul operaţiei, doi
operanzi pentu CPU şi
un transfer de date
DMA. Magistralele
interne pot transfera
toate cele 4 cuvinte în
paralel, bazat pe 7 surse
de date din memorie.

C3x utilizează 7 magistrale


interne pentru a accesa
resursele interne:
• Adrese program / date: CPU utilizează aceste magistrale pentru a menţine extragerea instrucţiunilor
la fiecare ciclu
• Adrese date / date: În fiecare ciclu, CPU poate extrage doi operanzi, deoarece el dispune de două
magistrale de adrese pentru date şi de o magistrală de date care poate fi accesată de două ori într-un
ciclu
• Adrese DMA / date: DMA utilizează aceste magistrale pentru a realiza transferurile DMA în paralel
cu operarea CPU.
Procesoare Numerice de Semnal - CURS 34

3.6.5 C3x - Controlerul DMA


Controlerul DMA transferă
date între resursele de memorie.
Porturile seriale şi timerele lui
C3x sunt mapate în memorie,
permiţând transferuri DMA
spre şi dinspre aceste periferice.
Pentru a realiza un transfer,
DMA citeşte o locaţie de
memorie indicată de registrul
de adrese sursă şi apoi scrie în
locaţia de memorie indicată de
registrul de adrese destinaţie.

Adresele sursă şi destinaţie sunt incrementate sau decrementate după fiecare


transfer, în funcţie de valoarea din registrul de control global. Controlerul DMA
realizează transferuri în mod continuu pe magistrala DMA până când valoarea din
registrul de contorizare a transferului atinge 0, iar o întrerupere programabilă este
trimisă spre CPU.
Procesoare Numerice de Semnal - CURS 35

3.6.6 C3x - Sumă de produse - exemplu


Codul prezentat, pentru calculul unei
sume de produse, este tipic pentru
algoritmii DSP şi demonstrează puterea
de calcul a arhitecturii C3x. Mai întâi,
trebuie notat că instrucţiunea de
repetare a unei singure instrucţiuni este
utilizată pentru realizarea unei bucle cu
depăşire 0. Barele paralele din faţa
instrucţiunii ADDF indică că adunarea
este executată în paralel cu
multiplicarea. Registrele auxiliare 0 şi 1
sunt utilizate pentru extragerea celor doi
operanzi cu o post-incrementare a unuia
dintre ei.
Rezultatul multiplicatorului este plasat într-unul dintre cele 8 registre cu precizie
extinsă. Registrul auxiliar setat este apoi utilizat ca intrare şi ieşire pentru
adunare. În sfârşit, DMA poate efectua transferul următorului set de date pentru
CPU care să realizeze procesarea în paralel cu multiplicarea şi acumularea.
Toate aceste operaţii au loc într-un singur ciclu, ilustrând astfel paralelismul din
arhitectura C3x.
Procesoare Numerice de Semnal - CURS 36

3.6.7 TMS320C30
C30 dispune de o a doua
magistrală externă de date, de
două timere şi de două porturi
seriale. Magistrala extinsă este
formată dintr-o magistrală de
adrese de 13 biţi şi o
magistrală de date de 32 biţi.
Fiecare port serial are câte o
secţiune independentă de
transmisie şi de recepţie dublu
bufferate, cu o rată maximă de
transfer a datelor de 15 Mbps
la o frecvenţă de intrare a
ceasului de 60 MHz.
Procesoare Numerice de Semnal - CURS 37

3.6.8 TMS320C31
C31 este cel de-al doilea
membru al generaţiei C3x şi
este compatibil în cod obiect
cu C3x. C31 dispune de
aceeaşi unitate CPU rapidă ca
şi toţi ceilalţi membri ai
generaţiei C3x, dar oferă o
configuraţie diferită a
perifericelor.

C31 este o variantă cu preţ


redus faţă de C30, prin
eliminarea magistralei extinse
şi a unuia dintre porturile
seriale şi prin înlocuirea celor
4 Kcuvinte de 32 de biţi de
memorie ROM internă printr-
un ROM de bootare.
Procesoare Numerice de Semnal - CURS 38

3.6.9 TMS320C32
C32 este cel mai ieftin DSP în
virgulă mobilă oferit de TI. El este
compatibil în cod obiect cu C30 şi
C31. C32 dispune de o interfaţă
flexibilă cu memoria, care suportă
formatul datelor de 8, 16, sau 32 de
biţi. În plus, permite stocarea
programului în memoria de 16 sau
de 32 de biţi. Aceasta poate conduce
la reduceri semnificative ale costului
unui sistem DSP.
Există de asemenea două moduri de
putere redusă implementate pe C32.
Unul reduce frecvenţa ceasului
dispozitivului, dar continuă
execuţia, în timp ce cel de-al doilea
suspendă execuţia instrucţiunilor şi
aduce dispozitivul în starea Hold.
Aceste facilităţi sunt resurse extrem
de importante în aplicaţiile în care
consumul este un factor critic.

C32 dispune de acelaşi ROM de bootare ca şi C31 şi are două blocuri cu câte 256 de cuvinte de 32 de biţi de
memorie RAM on-chip.

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