4. structura hardware a genera ţiei tms320c2xpns.ac.tuiasi.ro/doc/curs/prezentare_08.pdf ·...

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

Upload: others

Post on 31-Aug-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 11

4.4. StructuraStructura hardware a hardware a generageneraţţieiiei TMS320C2xTMS320C2x

4.14.1 Descrierea semnalelorDescrierea semnalelor

4.24.2 Privire generală asupra arhitecturii Privire generală asupra arhitecturii

4.34.3 Structura internă Structura internă

4.44.4 Organizarea memorieiOrganizarea memoriei

4.54.5 Unitatea centrală aritmetică Unitatea centrală aritmetică şşi logicăi logică

4.64.6 Controlul sistemuluiControlul sistemului

4.74.7 Memoria externă Memoria externă şşi interfai interfa ţţaa I/OI/O

4.84.8 ÎÎ ntreruperilentreruperile

4.94.9 PortulPortul serialserial

4.104.10Multiprocesare Multiprocesare şşi accesuli accesuldirect ladirect la memoriememorie

Page 2: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 22

4.54.5 Unitatea centrală aritmetică Unitatea centrală aritmetică şşi logicăi logică

CALU din TMS320C2x CALU din TMS320C2x conconţţineine::

•• unun circuit decircuit de deplasare deplasare şşi scalare pei scalare pe1616 bibiţţii ,,

•• un multiplicator un multiplicator paralel peparalel pe 16 x 1616 x 16bibiţţii ,,

•• o o unitateunitate ALU ALU pepe 32 de32 debibiţţii ,,

•• un acumulator peun acumulator pe3232bibiţţii (ACC) (ACC) şşii

•• circuitecircuite dede deplasare deplasare suplimentaresuplimentare lala ieieşşirile irile acumulatorului acumulatorului şşii alealemultiplicatoruluimultiplicatorului ..

Page 3: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 33

4.54.5 Unitatea centrală aritmetică Unitatea centrală aritmetică şşi logicăi logică

ÎÎ n implementarea unei instrucn implementarea unei instrucţţiuni tipiceiuni tipice a ALU,a ALU, papaşşiiii care se care se vor executa sunt următoriivor executa sunt următorii ::

1) Data 1) Data este adusăeste adusă din RAMdin RAM pe magistralape magistralade date;de date;2) Data 2) Data este trecută prin circuituleste trecută prin circuitul dede deplasare deplasare îînn ALU,ALU,

unde este executată operaunde este executată operaţţia aritmeticăia aritmetică;;3)3) Rezultatul este transferat Rezultatul este transferat îîn acumulatorn acumulator..

O O intrare intrare îînn ALUALU este este îîntotdeauna furnizatăntotdeauna furnizată dede acumulatoracumulator,, iar cealaltă intrare poateiar cealaltă intrare poate fifi transferată transferată de lade la registrulregistrul dedeprodusprodus PR alPR al multiplicatoruluimultiplicatorului ,, sausau de lade la scallingscalling shifter careshifter careeste este îîncărcatncărcat dindin memoriamemoria de date.de date.

Page 4: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 44

4.5.14.5.1 CircuitulCircuitul dede deplasare deplasare şşi scalarei scalare ((scallingscalling shifter)shifter)

TMS320C2xTMS320C2x conconţţine un scalling ine un scalling shifter care are oshifter care are o intrare peintrare pe 1616 bibiţţii legatălegată lala magistralamagistrala de datede date şşii oo ieieşşire peire pe 32 de32 de bibiţţii legată legată la ALU.la ALU.CircuitulCircuitul produce oproduce o rotirerotire lala dreapta dreapta îîntrentre 00 şşii 1616 bibiţţii aa datelordatelor dedeintrareintrare ,, după după cum ecum e programat programat îîn instrucn instrucţţiuneiune.. Cei mai puCei mai puţţin in semnificativi bisemnificativi biţţi ai iei ai ieşşirii sunt umpluirii sunt umplu ţţii cu 0,cu 0, iar cei mai semnificativiiar cei mai semnificativipot fipot fi fie umplufie umpluţţii cu 0,cu 0, fie extinfie extinşşii caca semnsemn,, îîn funcn funcţţieie dede stareastarea SXM SXM (sign extension mode) al(sign extension mode) alregistruluiregistrului de stare ST1.de stare ST1.

TMS320C2xTMS320C2x conconţţineine dede asemeneaasemeneaoo serieserie dede alte registrealte registre dede deplasaredeplasarecarecare--i permiti permit să să executeexecute deplasări numerice deplasări numerice,, extracextracţţiiii dede bibiţţii ,,extinderea preciziei aritmetice extinderea preciziei aritmetice şşi prevenirea depăi prevenirea depăşşiriloririlor .. Aceste Aceste registre sunt conectateregistre sunt conectatelala ieieşşirea multiplicatorului irea multiplicatorului şşi acumulatoruluii acumulatorului ..

Page 5: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 55

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

ALUALU şşi acumulatorul pei acumulatorul pe 32 de32 debibiţţii ale TMS320C2xale TMS320C2x realizează realizează oo gamă largă gamă largă dedefuncfuncţţii aritmetice ii aritmetice şşi logicei logice, din care, din care majoritateamajoritatea sese execută execută îîntrntr --un singur un singur cicluciclu dede ceasceas.. Odată ce Odată ce oo operaoperaţţie este executată ie este executată îînn ALU,ALU, rezultatul este rezultatul este transferat transferat îîn acumulatorn acumulator,, undeunde potpot avea loc operaavea loc operaţţiile adiiile adiţţionaleionale, cum, cum arar fifideplasareadeplasarea. D. Data care intrăata care intră îînn ALUALU poatepoate fifi scalată scalată dede către circuitul către circuitul dededeplasare deplasare şşi scalarei scalare..

ALUALU esteesteoo unitate aritmeticăunitate aritmetică dede uzuz general caregeneral care operează operează cucu cuvinte pecuvinte pe 1616bibiţţii luateluate dindin memoriamemoria RAM de dateRAM de date sau derivatesau derivate dindin instrucinstrucţţiuni imediateiuni imediate.. Pe lângă instrucPe lângă instrucţţiunile aritmetice uzualeiunile aritmetice uzuale, ALU, ALU poate executa poate executa operaoperaţţii ii booleenebooleene,, furnizând facilită furnizând facilităţţileile dede manipularemanipulare lala nivelnivel de bitde bit cerutecerute dede un un controlercontroler de marede mare viteză viteză.. UnaUna dindin intrările intrările ALUALU este furnizată totdeauna este furnizată totdeauna dede

către acumulatorcătre acumulator.. Cealaltă poate Cealaltă poate fifi furnizată furnizată dede către către registrulregistrul dede produsprodus alalmultiplicatoruluimultiplicatorului , PR, PR,, sausau de lade la intrarea lui scallingintrarea lui scalling shiftershifter care acare a adusadus data data dindin memoriamemoria RAMRAM pe magistralape magistrala de date.de date. După ce După ce ALU aALU a executat operaexecutat operaţţia ia aritmetică sau logicăaritmetică sau logică,, rezultatul este rezultatul este stocat stocat îîn acumulatorn acumulator..

Page 6: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 66

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

Acumulatorul peAcumulatorul pe 3232 bibiţţii este este îîmpărmpăr ţţit it îîn două segmenten două segmentedede câtecâte 1616 bibiţţi i pentru stocarea pentru stocarea îîn memorian memoria de date: de date: ACCH (accumulator high)ACCH (accumulator high) şşiiACCL (accumulator low)ACCL (accumulator low).. ShifteriiShifterii de lade la ieieşşirea acumulatorului irea acumulatorului furnizeazăfurnizează oo deplasare stângadeplasare stânga, cu 0 , cu 0 -- 77 pozipoziţţiiii la TMS320C25,la TMS320C25,şşii cu 0, 1cu 0, 1sausau44 pozipoziţţiiii la TMS32020la TMS32020.. Această deplasare este executată Această deplasare este executată îîn timp cen timp cedatadata este transferată pe magistrala este transferată pe magistrala de datede datepentru stocarepentru stocare.. ConConţţinutul inutul acumulatorului r ămâne neschimbatacumulatorului r ămâne neschimbat.. Când conCând conţţinutulinutul ACCHACCH este este deplasat stângadeplasat stânga,, cei mai pucei mai puţţin semnificativi biin semnificativi biţţi sunt transferai sunt transferaţţii din din ACCL,ACCL, iar cei mai semnificativi biiar cei mai semnificativi biţţii sese pierdpierd.. CândCând ACCLACCL este este deplasat stângadeplasat stânga,, cei mai pucei mai puţţin semnificativi biin semnificativi biţţi sunt umplui sunt umpluţţii cu 0,cu 0, iar iar cei mai semnificativi bicei mai semnificativi biţţii sesepierdpierd..

InstrucInstruc ţţiuneaiunea NORMNORM ((normalizarenormalizare)) este folosită pentru este folosită pentru aa normaliza normaliza numerele numerele îîn virgulă fixăn virgulă fixă dindin acumulator prin deplasări acumulator prin deplasări lala stângastânga..

Page 7: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 77

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

InstrucInstruc ţţiuneaiunea LACTLACT ((îîncarcă acumulatorulncarcă acumulatorul cu ocu o deplasare specificată prin deplasare specificată prin

registrulregistrul T)T) denormalizează un număr scris denormalizează un număr scris îîn virgulă mobilă prin deplasarea n virgulă mobilă prin deplasarea aritmeticăaritmetică lala stângastângaaa mantiseimantisei,, prin intrareaprin intrarea dede scalarescalare-- deplasaredeplasare.. ÎÎ n acest cazn acest caz,, contorul deplasărilorcontorul deplasărilor areare valoarea exponentului specificat prin cei mai puvaloarea exponentului specificat prin cei mai puţţin in semnificativisemnificativi 44 bibiţţi ai registruluii ai registrului T (TR).T (TR).

InstrucInstruc ţţiunileiunile ADDTADDT şşii SUBTSUBT ((adunăadună la /la / scadescadedindin acumulatoracumulator, cu, cu deplasare deplasare

specificată prin registrulspecificată prin registrul T) auT) au fost prevăzute fost prevăzute dede asemenea pentruasemenea pentruaa permite permite operaoperaţţii aritmetice adiii aritmetice adiţţionaleionale..

ModulModul dede lucrulucru cucu saturasaturaţţieie lala depă depăşşireire aa acumulatorului poateacumulatorului poate fifi programat programat prin instrucprin instruc ţţiunileiunile SOVMSOVM şşii ROVMROVM (set / reset overflow mode).(set / reset overflow mode).Când Când acumulatorul este acumulatorul este îîn acestn acestmodmod şşi aparei apare oo depă depăşşireire,, indicatorulindicatorul de overflow (OF)de overflow (OF)este setat este setat şşi acumulatorul este i acumulatorul este îîncărcat fiencărcat fie cucu cel mai pozitivcel mai pozitiv,, fiefie cucu cel mai cel mai

negativ numărnegativ număr ,, îîn funcn funcţţieie dede direcdirecţţia depăia depăşşiriiirii .. Valoarea acumulatorului după Valoarea acumulatorului după

saturasaturaţţie esteie este7FFF FFFF (7FFF FFFF (pozitivpozitiv)) sausau8000 0000 (8000 0000 (negativnegativ).).

Dacă bitul moduluiDacă bitul modului overflow (OVM) dinoverflow (OVM) din registrulregistrul de starede stareeste resetat este resetat şşi aparei apare oo

depădepăşşireire,, rezultatele depă rezultatele depăşşite sunt ite sunt îîncărcate ncărcate îîn acumulator fără modificărin acumulator fără modificări ..OperaOperaţţiile logice nuiile logice nupotpot da nada naşşteretere lala depă depăşşiriiri ..

Page 8: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 88

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

TMS320C2x TMS320C2x poate executapoate executaoo multitudinemultitudine dede instrucinstrucţţiuniiuni de saltde salt((ramificareramificare ) ) carecare depinddepind dede stareastareaALUALU şşii aa acumulatoruluiacumulatorului . . ÎÎ n această categorien această categorie intră intră::

-- BV (salt laBV (salt la depă depăşşireire););

-- BZ (salt laBZ (salt la atingerea valoriiatingerea valorii 0 de0 de către acumulator către acumulator).). ÎÎ nn plus, plus, BACC (salt laBACC (salt la adresaadresa dindin acumulatoracumulator)) furnizează facilitatea furnizează facilitatea

unuiunui salt la osalt la o adresă specificată adresă specificată dede acumulatoracumulator;;

-- BIT BIT şşii BITT (BITT ( instrucinstrucţţiuniiuni dede testaretestareaa bibiţţilorilor ).). Ele nu afectează Ele nu afectează

acumulatorul acumulatorul şşii permitpermit testarea unuitestarea unui bitbit specificat dintrspecificat dintr--un un cuvântcuvânt alal memorieimemoriei de date.de date.

Page 9: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 99

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

AcumulatorulAcumulatorul din TMS320C25 aredin TMS320C25 areunun bit debit de carrycarry (transport), care(transport), careeste setat sau resetateste setat sau resetat,, îîn funcn funcţţieie dede diferite operadiferite operaţţiiii din circuit. din circuit.

BitulBitul de carryde carry permite calculul mai eficient permite calculul mai eficient îîn precizie extinsăn precizie extinsă aa

rezultatului pentru adunare sau scădererezultatului pentru adunare sau scădere.. EsteEste dede asemeneaasemeneautilutil îîn n gestionarea depăgestionarea depăşşiriloririlor . .

BitulBitul de carryde carry este afectateste afectatdede majoritatea instrucmajoritatea instruc ţţiunilor aritmeticeiunilor aritmetice , , dede deplasări deplasări şşi rotai rota ţţiiii .. Nu este afectatNu este afectatdede îîncărcarea acumulatorului ncărcarea acumulatorului sausau dede operaoperaţţii logice ii logice şşi nicii nici dede alte operaalte operaţţii neii ne--aritmeticearitmetice,, sausau dedeinstrucinstrucţţiunileiunile de control. Dede control. De asemeneaasemenea,, nu este afectatnu este afectat dedeinstrucinstrucţţiunileiunile dede îînmulnmulţţireire (MPY, MPYK, MPYU),(MPY, MPYK, MPYU), dar este afectatdar este afectatdede proceseleproceseledede acumulare acumulare îîn instrucn instrucţţiunileiunile MACMAC şşii MACD. MACD.

Page 10: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1010

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

Valoarea adunată sau scăzutăValoarea adunată sau scăzută dindin acumulatoracumulator,, arătată arătată îîn exemplen exemple,, poate veni fiepoate veni fiede lade la intrarea circuituluiintrarea circuitului dede scalarescalare,, fiefie de lade la ceaceaaa circuituluicircuitului dede deplasaredeplasarede lade laieieşşirea registruluiirea registrului P.P. BitulBitul de carryde carry este setat dacă rezultatul unei adunări sau este setat dacă rezultatul unei adunări sau

"" acumulăriacumulări "" generează un generează un transport,transport, sau este resetat dacă rezultatul unei sau este resetat dacă rezultatul unei

scăderi generează un scăderi generează un îîmprumutmprumut .. ÎÎ n celelalte cazurin celelalte cazuri,, este resetat după este resetat după oo adunareadunare,, sau setat dupăsau setat după oo scădere scădere..

Page 11: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1111

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

InstrucInstruc ţţiunileiunile ADDC (ADDC (adunăadună lala acumulatoracumulator cu transport),cu transport), şşii SUBB (SUBB (scadescadedindinacumulatoracumulator cucu îîmprumutmprumut ), la TMS320C25,), la TMS320C25, folosesc valorile mai sus folosesc valorile mai sus menmenţţionate pentruionate pentru CYCY îîn operan operaţţiile loriile lor dede adunareadunare // scădere scădere..

Singura excepSingura excepţţie ie îîn operan operaţţiileiile cucu bitulbitul CY, CY, este este îîn cazul folosirii n cazul folosirii instrucinstrucţţiuniloriunilor ADDH (ADDH (adunăadună la ACCH)la ACCH) şşii SUBH (SUBH (scadescadedin ACCH). ADDHdin ACCH). ADDH

poate doar să setezepoate doar să setezeCYCY dacă dacă sese generează generează transport,transport, iariar SUBHSUBH poate doar să poate doar să

resetezeresetezeCYCY dacă dacă sese generează generează îîmprumutmprumut .. AltfelAltfel ,, nicinici oo instrucinstrucţţiune nu poate iune nu poate afecta bitulafecta bitul CY.CY.

Sunt prevăzute două instrucSunt prevăzute două instrucţţiuniiuni de salt (de salt (ramificareramificare )) funcfuncţţieie dede starea bituluistarea bituluide CY: BCde CY: BC şşii BNC.BNC. Pentru Pentru îîncărcarea bituluincărcarea bitului de carryde carry există instruc există instrucţţiunileiunileSC, RCSC, RCşşii LST1.LST1. BitulBitul CYCY este setateste setatla 1la 1 după resetul după resetul hard.hard.

Page 12: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1212

4.5.2 ALU4.5.2 ALU şşi acumulatoruli acumulatorul

InstrucInstruc ţţiunileiunile SFL /SFL / SFRSFR (introduce(introduce îînn CYCY unun bitbit prin rotireprin rotire lalastângastânga// dreaptadreapta cucu unun bit, la TMS320C2x)bit, la TMS320C2x) şşii ROL / ROR (ROL / ROR (rotarotaţţieie la la stângastânga // dreaptadreapta la TMS320C25)la TMS320C25) realizează deplasarea sau rotirea realizează deplasarea sau rotirea

conconţţinutului acumulatorului prin bitulinutului acumulatorului prin bitul de CY. de CY.

BitulBitul SXMSXM afectează defini afectează definiţţia instrucia instrucţţiunii SFRiunii SFR ((deplasarea deplasarea acumulatoruluiacumulatorului lala dreaptadreapta).). CândCând SXM = 1,SXM = 1, SFR realizează SFR realizează oo rotire rotire

aritmeticăaritmetică lala dreaptadreapta,, menmenţţinând semnul datelorinând semnul datelor dindin acumulatoracumulator..CândCând SXM = 0,SXM = 0, SFR efectuează SFR efectuează oo deplasare logică deplasare logică,, deplasând afară deplasând afară

LSBLSB--ul ul şşi punândi punând MSB = 0. SFL (MSB = 0. SFL (deplasarea acumulatoruluideplasarea acumulatorului lalastângastânga)) nunu ee afectată afectată dede bitulbitul SXMSXM şşii sese comportă comportă lala fel fel îîn ambele n ambele cazuricazuri,, deplasând afară deplasând afară MSBMSB--ul ul şşi punând i punând îîn loculn locul LSBLSB valoareavaloarea0. 0.

InstrucInstruc ţţiunileiunile RPTRPT sausau RPTK pot fiRPTK pot fi folositefolosite cucu instrucinstrucţţiunileiunile dededeplasare deplasare şşi rotire pentru num ărarea unor deplasării rotire pentru num ărarea unor deplasări multiple.multiple.

Page 13: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1313

4.5.34.5.3 MultiplicatorulMultiplicatorul,, registreleregistrele PP şşii TT

TMS320C2xTMS320C2x folosefoloseşşte un te un multiplicator pemultiplicator pe 16 x 1616 x 16bibiţţii ,, implementatimplementathardware, carehardware, care este capabil să calculeze un produs este capabil să calculeze un produs cucu semn sau fără semn sau fără

semn pesemn pe32 de32 debibiţţii ,, îîntrntr --un singur ciclu maun singur ciclu maşşinăină.. Toate instrucToate instrucţţiunileiuniledede îînmulnmulţţireire, cu, cu excepexcepţţia luiia lui MPYU (MPYU ( îînmulnmulţţire fără semnire fără semn) a) a luiluiTMS320C25,TMS320C25, execută execută îîn multiplicatorn multiplicator oo operaoperaţţieie dede îînmulnmulţţireire cucusemnsemn.. Aceasta Aceasta îînseamnănseamnă că că,, două numere două numere carecare sunt sunt îînmulnmulţţite sunt ite sunt tratatetratate caca două numere două numere îînn complementcomplement fafaţţăă de 2,de 2, iar rezultatul este iar rezultatul este

un număr peun număr pe 32 de32 debibiţţii ,, îînn complementcomplementfafaţţăă de 2. de 2.

Două registre sunt asociate multiplicatoruluiDouă registre sunt asociate multiplicatorului::-- un registru temporar peun registru temporar pe 1616 bibiţţii carecare conconţţine unuline unul dindin operanzii operanzii pentru pentru îînmulnmulţţireire, , TRTR,, şşii-- un registruun registru dede produs peprodus pe 32 de32 de bibiţţii carecare conconţţine produsuline produsul((rezultatul rezultatul îînmulnmulţţiriiirii ), ), PRPR..

Page 14: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1414

4.5.34.5.3 MultiplicatorulMultiplicatorul,, registreleregistrele PP şşii TT

IeIeşşirea luiirea lui PRPR poatepoate fifi deplasată deplasată lala stânga pestânga pe11 sausau 44 bibiţţii .. Acest lucru esteAcest lucru esteutilutil pentru pentru implementarea aritmeticii fracimplementarea aritmeticii fracţţionale sau pentru alinierea produsuluiionale sau pentru alinierea produsului fracfracţţional.ional.IeIeşşirea luiirea lui PRPR poatepoate fi defi de asemenea deplasată dreapta asemenea deplasată dreapta cu 6cu 6 bibiţţi pentrui pentru aa permite permite execuexecuţţiaia aa până până la 128la 128îînmulnmulţţiriiri // acumulări fără posibilitate acumulări fără posibilitate dede depă depăşşireire..

OO instrucinstrucţţiuneiune LTLT ((îîncărcarea registruluincărcarea registrului T)T) îîncarcă ncarcă îînn mod normal TRmod normal TR pentrupentru aafurniza unfurniza un operand (deoperand (de pe magistralape magistrala de date),de date), iar instruciar instruc ţţiuneaiunea MPY (MPY (multiplicaremultiplicare )) furnizeazăfurnizează alal doileadoilea operand (tot deoperand (tot de pe magistralape magistrala de date). Ode date). O îînmulnmulţţire poateire poate fifi realizatărealizată dede asemeneaasemeneacucu unun operandoperand imediatimediat,, folosind instrucfolosind instrucţţiuneaiunea MPYK.MPYK. ÎÎ n alte n alte cazuricazuri,, un produs poateun produs poatefifi obobţţinutinut lala fiecarefiecare 22 cicluricicluri ..

Două instrucDouă instrucţţiuniiuni dede îînmulnmulţţireire // acumulareacumulare ((MACMAC şşii MACDMACD )) folosescfolosesc integralintegralcapacitateacapacitateadede calculcalcul aa multiplicatoruluimultiplicatorului ,, permipermiţţând ambilor operanzi să fie prelucraând ambilor operanzi să fie prelucraţţi i simultansimultan.. Datele pentru aceste operaDatele pentru aceste operaţţiiii pot fipot fi rezidente oriunde rezidente oriunde îîn memoria internă sau n memoria internă sau îîn cea externăn cea externă,, sausau pot fipot fi transferate multiplicatorului transferate multiplicatorului îîn fiecare ciclu pe magistralan fiecare ciclu pe magistralade de programprogram sausau de date.de date. Acestea sunt furnizate pentru fiecare cicluAcestea sunt furnizate pentru fiecare cicludede îînmulnmulţţireire //acumulare când sunt folositeacumulare când sunt folositecucu instrucinstrucţţiuniiuni repetitive (RPT / RPTK).repetitive (RPT / RPTK). PorPorţţiuneaiuneaDMOV aDMOV a instrucinstrucţţiuniiiunii MACDMACD nu va funcnu va funcţţionaiona cucu adreseadresedindin memoriamemoria de datede date externă externă..

Page 15: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1515

4.5.34.5.3 MultiplicatorulMultiplicatorul,, registreleregistrele PP şşii TT

La TMS32020,La TMS32020, dedeîînmulnmulţţitul itul şşi i îînmulnmulţţitorul trebuie să fie rezidente itorul trebuie să fie rezidente îîn blocurin blocuri dedememoriememorie RAM separate. La TMS320C25,RAM separate. La TMS320C25,instrucinstrucţţiunileiunile MACMAC şşii MACD pot fiMACD pot fi utilizate utilizate fiefie cucu ambii operanziambii operanzi dindin memoria internă sau externă memoria internă sau externă,, fiefie cucu unulunul dindin memoriamemoria RAM RAM dede pepe circuit.circuit.

InstrucInstruc ţţiunileiunile SQRASQRA (square / addition)(square / addition) şşii SQRSSQRS (square /(square / substractionsubstraction) pun) pun aceeaaceeaşşi i valoare pe ambele intrărivaloare pe ambele intrări aleale multiplicatorului pentrumultiplicatorului pentru aa ridicaridica lala pătrat pătrat oo valoarevaloare dindinmemoriamemoria de date.de date.

InstrucInstruc ţţiuneaiunea MPYUMPYU de la TMS320C25de la TMS320C25 execută execută oo îînmulnmulţţire fără semnire fără semn,, ceea ce ceea ce

facilitează mult extinderea preciziei facilitează mult extinderea preciziei îîn operan operaţţiile aritmeticeiile aritmetice.. ConConţţinutul f ără semninutul f ără semn alalregistruluiregistrului TT este multiplicateste multiplicat cucu conconţţinutul f ără semninutul f ără semn alal unei locaunei locaţţiiii dindin memoriamemoria de de date,date, iar rezultatul este plasat iar rezultatul este plasat îîn registruln registrul P.P. Aceasta permite operanzilor mai mariAceasta permite operanzilor mai maride de 1616 bibiţţi să fie i să fie îîmpărmpăr ţţiiţţi i îîn operanzin operanzi de 16de 16 bibiţţi i şşi prelucrai prelucra ţţi separat pentrui separat pentru a generaa generaproduse mai mariproduse mai mari de 32 dede 32 debibiţţii ..

Page 16: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1616

4.5.34.5.3 MultiplicatorulMultiplicatorul,, registreleregistrele PP şşii TT

După După îînmulnmulţţireairea aa două numere pe două numere pe 1616 bibiţţii ,, produsul peprodusul pe 32 de32 de bibiţţi este i este îîncărcat ncărcat îîn n registrulregistrul PRPR pepe 32 de32 de bibiţţii alal luilui TMS320C2x.TMS320C2x. ProdusulProdusul din PRdin PRpoatepoatefifi transferat transferat îînn ALU.ALU.

ExistăExistă 44 modurimoduri dede deplasaredeplasareaa produsuluiprodusului disponibiledisponibile lala ieieşşireairea PR.PR. AcesteAceste44moduri suntmoduri sunt utileutile cândcând sese execută opera execută operaţţiiii dede multiplicaremultiplicare // acumulareacumulare,, aritmetică fracaritmetică fracţţionarăionară,, sau produse fracsau produse fracţţionareionare.. CâmpulCâmpul PMPM alal registruluiregistrului de de stare ST1stare ST1 specifică modurile specifică modurile dede deplasaredeplasarealeale rezultatuluirezultatului PM,PM, astfelastfel::

-- PM = 00,PM = 00, rezultat fără deplasare rezultat fără deplasare

-- PM = 01,PM = 01, rezultatrezultat cucu deplasare stângadeplasare stânga1 bit1 bit-- PM = 10,PM = 10, rezultatrezultat cucu deplasare stângadeplasare stânga44 bibiţţii-- PM = 11,PM = 11, rezultatrezultat cucu deplasare dreaptadeplasare dreapta66 bibiţţii

Page 17: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1717

4.5.34.5.3 MultiplicatorulMultiplicatorul,, registreleregistrele PP şşii TT

Deplasările stânga sunt folositoare pentru implementarea aritmetDeplasările stânga sunt folositoare pentru implementarea aritmet icii icii fracfracţţionareionare,, sau pentru alinierea produsuluisau pentru alinierea produsului fracfracţţional; deional; de exempluexemplu::produsulprodusul aa două numere normalizate pe două numere normalizate pe 1616 bibiţţii ,, produsulprodusul aa două numere două numere îînncomplementcomplement fafaţţăă de 2,de 2, produsulprodusul aa două numere două numere îînn format Q15,format Q15, conconţţinândinând 22bibiţţii dede semnsemn,, dintredintre carecare unul esteunul esteredundant.redundant.

FormatulFormatul Q15Q15 este unul dintre variatele tipurieste unul dintre variatele tipuri aleale formatuluiformatului Q;Q; esteeste ooreprezentarereprezentare aa numerelor folosită frecvent când numerelor folosită frecvent când sese execută opera execută operaţţiiii cucunumere nenumere ne--îîntregintregi. O. O rotarotaţţie stângaie stânga dede un singurun singur bitbit elimină bitul elimină bitul

suplimentarsuplimentar dede semnsemn dindin produsprodus,, când este transferat când este transferat îîn acumulatorn acumulator..Rezultatul Rezultatul îîn acumulatorn acumulator areare astfel aceeaastfel aceeaşşii formă ca formă ca şşi operanziii operanzii. .

ÎÎ nn mod similar,mod similar, produsul unui număr normalizat pe produsul unui număr normalizat pe 1616 bibiţţi saui sau Q15Q15 şşii oo

constantăconstantă de 13de 13 bibiţţi i îînn complementcomplement fafaţţăă de 2de 2 conconţţineine 55 bibiţţii din care 4din care 4 sunt sunt redundanredundanţţii .. Este cazul folosirii instrucEste cazul folosirii instrucţţiuniiiunii MPYK.MPYK. AiciAici , o, o deplasaredeplasare de 4de 4bibiţţi aliniază i aliniază îînn modmod adecvat rezultatul transferat adecvat rezultatul transferat îîn acumulatorn acumulator..

Page 18: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1818

4.5.34.5.3 MultiplicatorulMultiplicatorul,, registreleregistrele PP şşii TT

Folosirea deplasării dreaptaFolosirea deplasării dreapta a PM a PM permite executareapermite executarea aa până până la 128la 128 operaoperaţţiiii dedeîînmulnmulţţireire // acumulareacumulare consecutiveconsecutive fără pericolul unei depă fără pericolul unei depăşşiri aritmeticeiri aritmetice ,, astfel astfel evitânduevitându--sese problema gestionării depă problema gestionării depăşşiriloririlor ..

DeplasărileDeplasările pot fipot fi dezactivatedezactivatecaca să nu producă rotiri să nu producă rotiri îîn produs cândn produs când sese lucrează lucrează cucuîîntregi sau operantregi sau operaţţiiii cucu precizieprecizie de 32de 32 bibiţţii .. Acest lucru permite compatibilitateaAcest lucru permite compatibilitatea cu cu TMS320C1x.TMS320C1x.Trebuie notatTrebuie notat că că rotirea dreapta este rotirea dreapta este îîntotdeauna ntotdeauna îînsonsoţţităită dede extensiaextensiadedesemnsemn,, indiferentindiferent dede stareastareaSXM.SXM.

Cei mai puCei mai puţţin semnificativiin semnificativi 44 bibiţţi ai registruluii ai registrului TRTR definescdefinescdede asemeneaasemeneaoo deplasare deplasare

variabil ă prin scallingvariabil ă prin scalling shiftershifter pentru instrucpentru instruc ţţiunileiunile LACT, ADDTLACT, ADDT şşii SUBT.SUBT. Aceste Aceste instrucinstrucţţiuni suntiuni sunt utileutile îîn aritmetica n aritmetica îîn virgulă flotantăn virgulă flotantă,, când un număr trebuie să fie când un număr trebuie să fie

denormalizatdenormalizat,, ceea ce ceea ce îînseamnă realizarea conversieinseamnă realizarea conversieide lade la virgulă mobilă virgulă mobilă lala virgulă virgulă

fixăfixă..

InstrucInstruc ţţiuneaiunea BITT (bit test)BITT (bit test) permite testarea unui singurpermite testarea unui singur bitbit dintrdintr --un cuvântun cuvânt dindinmemoriamemoria de datede datepe baza valorii conpe baza valorii conţţinute inute îîn cei mai pun cei mai puţţin semnificativiin semnificativi 44 bibiţţii din TR.din TR.

Page 19: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 1919

4.64.6 Controlul sistemuluiControlul sistemului

ControlulControlul dede sistemsistemalal procesoruluiprocesorului TMS320C2xTMS320C2x este asigurateste asiguratdedenumărătorulnumărătorul de programde program (PC),(PC), stivastiva, , conexiunileconexiunile hardwarehardware,,semnalulsemnalul reset externreset extern,, îîntreruperintreruperi , , timertimer şşi un i un numărătornumărător dede

repetărirepetări .. Următoarele subcapitole vor descrie func Următoarele subcapitole vor descrie funcţţiile fiecărei iile fiecărei componente componente îîn controlul sistemului n controlul sistemului şşi i funcfuncţţionarea magistraleiionarea magistraleipipelinepipeline..

Page 20: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2020

4.6.14.6.1 Numărătorul Numărătorul de programde program şşi stivai stiva

TMS320C2x areTMS320C2x areun un numărătornumărător de programde program pepe 1616 bibiţţi i şşii oo stivăstivă hardwarehardware de de 88 nivelenivele (TMS320C25)(TMS320C25) sausau 44 nivelenivele (TMS320C20),(TMS320C20), pentru stocarea pentru stocarea

numărătoruluinumărătorului de program.de program.

NumărătorulNumărătorul de programde program (PC)(PC) adresează memoria adresează memoria de programde program internă internă şşi i externă externă îîn instrucn instrucţţiunileiunile de fetch.de fetch.Stiva Stiva este utilizată este utilizată îîn timpul subrutinelor n timpul subrutinelor şşi i îîntreruperilorntreruperilor . PC. PC adresează memoria adresează memoria program deprogram de pepe circuitcircuit sausau dindin afara afara acestuia prin magistrala adreseloracestuia prin magistrala adreselorde program.de program. Pe această magistrală este Pe această magistrală este

adusăadusă oo instrucinstrucţţiuneiune dindin memoriamemoria de programde program şşi i îîncărcată ncărcată îîn registruln registrul dedeinstrucinstrucţţiuniiuni (IR).(IR). Când registrulCând registrul IRIR este este îîncărcatncărcat, PC, PC este gata să este gata să îînceapă nceapă următorul cicluurmătorul ciclu de fetch. PCde fetch. PCpoate adresa bloculpoate adresa bloculB0 alB0 al memorieimemoriei RAM deRAM de pepecircuit,circuit, cândcând B0B0 este configurateste configuratcaca memoriememorie de program,de program, sau memoriasau memoriaROMROM

internăinternă,, precum precum şşi memoriai memoria programprogram externă prin magistrala externă externă prin magistrala externă de de date (date (liniileliniile D15D15--D0)D0) şşi adresei adrese((liniileliniile A15A15--A0).A0).

Page 21: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2121

4.6.14.6.1 Numărătorul Numărătorul de programde program şşi stivai stiva

Page 22: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2222

4.6.14.6.1 Numărătorul Numărătorul de programde program şşi stivai stiva

MemoriaMemoria de datede date este adresată este adresată de PCde PCîîn timpul instrucn timpul instruc ţţiuniiiunii BLKD,BLKD, cândcând sese mută blocurimută blocuri de datede date dintrdintr --oo zonă zonă dede memorie memorie îîn altan alta.. ConConţţinutul inutul acumulatorului poateacumulatorului poate fifi îîncărcat ncărcat îînn PC,PC, utilizând instrucutilizând instruc ţţiunileiunile BACCBACC sausauCALA.CALA.

LaLa îînceputul unui nou ciclunceputul unui nou ciclu de fetch, PCde fetch, PCeste incrementat sau este incrementat sau îîncărcatncărcat cucuadresaadresade saltde salt îîn cazul unor instrucn cazul unor instrucţţiuniiuni de salt,de salt, îîntreruperintreruperi ,, sau subrutinesau subrutine..ÎÎ n cazul instrucn cazul instrucţţiuniloriunilor de saltde salt condicondiţţionationat,, când nucând nu se facese facesaltulsaltul, PC, PC este este incrementatincrementat o dată o dată îînn plus,plus, sărindu sărindu--sesepeste adresapeste adresade salt.de salt.

TMS320C2xTMS320C2x permite repetarea execupermite repetarea execuţţiei unei instruciei unei instrucţţiuniiuni de N+1de N+1 oriori ,,îîncărcând ncărcând îîn registruln registrul RPTC (RPTC (registrul numărătorregistrul numărător dede repetări repetări)) pepe 88 bibiţţi un i un numărnumăr N.N. InstrucInstruc ţţiunea vaiunea va fifi executată până când executată până când RPTCRPTC ajungeajunge la zero,la zero,prin decrementareprin decrementare.. Acest lucru esteAcest lucru esteutilutil îîn cazul multor instrucn cazul multor instrucţţiuniiuni , cum, cum ararfi: NORM, MACD,fi: NORM, MACD, sausauSUBC.SUBC.

Page 23: 4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_08.pdf · aritmetic ă la stânga a mantisei , prin intrarea de scalare -deplasare . În acest caz

Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2323

4.6.14.6.1 Numărătorul Numărătorul de programde program şşi stivai stiva

StivaStiva are 4 (TMS320C20)are 4 (TMS320C20)sausau8 (TMS320C25)8 (TMS320C25)nivelenivele aa câtecâte 1616 bibiţţi i şşi este i este accesată accesată îîn timpul instrucn timpul instruc ţţiuniloriunilor PUSHPUSH şşii POP. POP.

CândCând PCPC este depus este depus îîn vârful stivein vârful stivei,, conconţţinutul fiecărui nivelinutul fiecărui nivel sese deplasează deplasează îîn josn jos cu ocu o pozipoziţţieie,, iar coniar conţţinutul ultimei locainutul ultimei loca ţţiiii sese pierdepierde..AcestaAcesta sese pierde pierde şşi dacăi dacă sese depune succesiv depune succesiv îîn stivăn stivă de 4,de 4, respectivrespectiv de 8de 8oriori ,, fără fără a sea sescoate cevascoate ceva. . Orice extragereOrice extrageredindin stivă stivă,, după după 33 şşi respectivi respectiv 77extrageriextrageri, duce la, duce laextragerea valoriiextragerea valorii de lade labaza stiveibaza stivei. .

InstrucInstruc ţţiunileiunile PUSHDPUSHD şşii POPDPOPD depundepun oo valoarevaloare dindin memoriamemoria de date,de date,respectiv refac memoriarespectiv refac memoria de date cude date cu conconţţinutulinutul dindin stivă stivă.. Aceste Aceste instrucinstrucţţiuniiuni permitpermit construirea unei stive construirea unei stive îîn memorian memoria de datede date,,realizândurealizându--sese nivelenivele dede imbricareimbricare aleale subrutinelor peste dimensiunea subrutinelor peste dimensiunea stivei inferioarestivei inferioare (4,(4, respectivrespectiv88 nivelenivele).).