28
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 ( ( continuare continuare ) ) 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

4. Structura hardware a genera ţiei TMS320C2xpns.ac.tuiasi.ro/Doc/curs/Prezentare_10.pdfsalva ţi în memoria de date şi înc ărca ţi din ea , ceea ce permite ca starea procesorului

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

  • 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 sistemului Controlul sistemului ((continuarecontinuare))

    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

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

    4.6.3 Reset4.6.3 Reset

    EsteEste oo îîntrerupere nemascabilă ce poatentrerupere nemascabilă ce poatefifi folosită oricând pentru folosită oricând pentruaa trece procesorul trece procesorul îîntrntr --o stareo stare cunoscută cunoscută. .

    Resetul activ forResetul activ forţţează procesorul să termine execuează procesorul să termine execuţţia ia şşi fori for ţţeazăeazăPCPC îînn "0". /RS"0". /RS afectează diferite registre afectează diferite registre şşi bii bi ţţiiii de stare. de stare.

    Pentru funcPentru funcţţionarea corectăionarea corectă aa sistemului după cuplare sistemului după cuplare,, semnalulsemnalul/RS/RS trebuie activat timptrebuie activat timp de 3de 3 perioadeperioade dede ceas pentruceas pentruaa garanta garanta resetulresetul. .

    Procesorul execută instrucProcesorul execută instrucţţiunile iunile îîncepândncepând de lade la localocaţţiaia 0 care0 care îînnmod normalmod normal conconţţine unine un saltsalt îîn rutinan rutina dede iniini ţţializareializare aa sistemuluisistemului..

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

    4.6.3 Reset4.6.3 Reset

    După activarea resetuluiDupă activarea resetuluiauau loc următoarele loc următoarele iniini ţţializăriializări ::

    1) CNF = 0 din ST1,1) CNF = 0 din ST1, fapt ce va configura toată memoria fapt ce va configura toată memoria RAM caRAM ca memoriememorie de de datedate

    2) PC 2) PC este setat este setat îînn "0","0", liniileliniile A15A15--A0A0 sunt trecute sunt trecute îînn "0""0" cât timpcât timp /RS/RS este este îînnlowlow

    3)3) MagistralaMagistrala de datede date este trecută este trecută îînn stare destare deîînaltă impedannaltă impedanţţăă

    4)4) ÎÎ ntreruperile sunt dezactivatentreruperile sunt dezactivate,, prin setarea bituluiprin setarea bitului INTM (interrupt mode)INTM (interrupt mode)îînn "1";"1"; registrulregistrul IFRIFR este trecut este trecut îînn "0""0"

    5)5) SemnaleleSemnalelede control alede control ale memoriei memoriei şşi spai spaţţiuluiiului de I/O (/PS, /DS, /IS, R//W, de I/O (/PS, /DS, /IS, R//W, /STRB, /BR)/STRB, /BR) sunt dezafectate prin aducerea lor sunt dezafectate prin aducerea lor îînn highhigh cât timpcât timp /RS/RS este este îînn lowlow

    6)6) BiBiţţiiii de stare aude stare au următoarele setări următoarele setări: OV = 0, XF = 1 (TMS32020), SXM = 1, : OV = 0, XF = 1 (TMS32020), SXM = 1, PM = 0, HM = 1, FO = 0, C = 1, FSM = 1 (TMS320C25)PM = 0, HM = 1, FO = 0, C = 1, FSM = 1 (TMS320C25)

    7)7) RegistrulRegistrul GREG (global memory register)GREG (global memory register)este este şşters ters şşi toată memoria vai toată memoria va fifi localălocală

    8)8) RegistrulRegistrul RPTC (repeat counter)RPTC (repeat counter)este este şştersters

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

    4.6.3 Reset4.6.3 Reset

    9)9) PinulPinul DXDX este trecut este trecut îînn stare destare de îînaltă impedannaltă impedanţţăă.. Orice operaOrice operaţţieie dedetransmisietransmisie // receprecepţţie este terminatăie este terminată dede către portul către portul serialserial şşi bituli bitul TXM = 0.TXM = 0. Aceasta configurează pinulAceasta configurează pinul FSX caFSX ca intrareintrare .. Activarea operaActivarea operaţţiilor pe portuliilor pe portulserial areserial are loc după un impuls ce loc după un impuls ce vinevine după dezactivarea resetului după dezactivarea resetului

    10)10) RegistrulRegistrul TIMTIM este este îîncărcatncărcat cu FFFF. La TMS320C25cu FFFF. La TMS320C25registrulregistrul PRDPRD este este îîncărcatncărcat cucu aceeaaceeaşşi valoarei valoare. TMS32020. TMS32020 cerecere oo iniini ţţializareializare soft asoft a acestui acestui registruregistru.. RegistrulRegistrul TIMTIM îîncepe săncepe să sese decrementeze după dezactivarea decrementeze după dezactivarea /RS/RS

    11)11) Este generat un semnalEste generat un semnal/IACK ca la/IACK ca la îîntreruperile mascabilentreruperile mascabile

    12)12) Starea memorieiStarea memorieiRAMRAM este nedefinită este nedefinită

    13)13) BiBiţţiiii ARB, ARP, DP, IMR, OVM, TCARB, ARP, DP, IMR, OVM, TC nu sunt ininu sunt iniţţializaializaţţii de reset.de reset.

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    Cele două registreCele două registre de stare, ST0de stare, ST0şşii ST1,ST1, conconţţin starea indicatorilor in starea indicatorilor diferitelor moduridiferitelor moduri dede funcfuncţţionare ionare şşi bistabilelei bistabilele dede condicondiţţiiii . Pot fi. Pot fisalvasalvaţţi i îîn memorian memoria de datede date şşi i îîncărcancărcaţţii dindin eaea,, ceea ce permiteceea ce permitecaca starea procesorului să fie salvată starea procesorului să fie salvată şşi restaurată după subrutine i restaurată după subrutine şşi i îîntreruperintreruperi . .

    BiBiţţiiii de stare pot fide stare pot fi citiciti ţţi sau scrii sau scrişşii cucu instrucinstrucţţiunileiunile LST / LST1, LST / LST1, SST / SST1, cuSST / SST1, cuexcepexcepţţia bituluiia bitului INTM careINTM care nu poatenu poate fifi îîncărcatncărcat cu cu LST. LST.

    CâmpurileCâmpurile ARP, ARB, DPARP, ARB, DP aparapar caca registreregistre separateseparate îînn schema schema blocbloc şşi pentrui pentru că că aceste registre nuaceste registre nuauau instrucinstrucţţiuniiuni separateseparatepentru pentru stocarea lor stocarea lor îînn RAM, auRAM, au fost inclufost incluşşi i îîn registrelen registrele de stare. de stare.

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    * La TMS32020* La TMS32020 bibiţţiiii 5, 65, 6 şşii 99 ai luiai lui ST1ST1 sunt sunt îîn starea logicăn starea logică "1""1"

    ConfiguraConfiguraţţia celor două registreia celor două registre de starede stare

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    ARBARB -- bufferbuffer pentru indicatorul registrelor auxiliarepentru indicatorul registrelor auxiliare ;; cândcândsese îîncarcăncarcă ARP,ARP, vechea vechea valoarevaloareaa sasa sese îîncarcă ncarcă îînn ARB,ARB, exceptând instrucexceptând instrucţţiuneaiuneaLST;LST; cândcândARBARB este este îîncărcat ncărcat prinprin LST1,LST1, aceeaaceeaşşi valoarei valoareseseîîncarcă ncarcă îînn ARP.ARP.

    ARPARP -- indicator alindicator al registrelor auxiliareregistrelor auxiliare ;; selectează registrul auxiliar utilizat selectează registrul auxiliar utilizat îîn n adresarea indirectăadresarea indirectă.. Când este Când este îîncărcatncărcat,, vechea valoarevechea valoaresese copie copie îînn ARB;ARB; poatepoate fifimodificat prin instrucmodificat prin instrucţţiuni referitoeraiuni referitoeralala memorie cândmemorie cândsese utilizează adresarea indirectă utilizează adresarea indirectă şşi prin instruci prin instrucţţiunileiunile LARP, MA, LST;LARP, MA, LST; poatepoatefifi îîncărcatncărcat lala valoareavaloareadin ARB de LST1.din ARB de LST1.

    CC -- bitulbitul de carryde carry;; este este îînn "1""1" dacă rezultatul dacă rezultatul are transport,are transport,sau sau îînn "0""0" dacă rezultatul dacă rezultatul unei scăderi generează unei scăderi generează îîmprumutmprumut, cu, cuexcepexcepţţia instrucia instrucţţiuniloriunilor ADDHADDH sausauSUBH,SUBH, bitulbitul sese resetează după adunare resetează după adunare şşii sese setează după scădere setează după scădere;; instrucinstrucţţiunileiunile dederotarotaţţie ie şşi deplasare i deplasare afectează bitulafectează bitul,, iar salturile condiiar salturile condiţţionateionatedate de BCdate de BCşşii BNC seBNC sefac fac îîn funcn funcţţieie dedestarea starea bituluibitului; C = 1; C = 1îîn cazul unuin cazul unuireset.reset.

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    CNFCNF -- bitulbitul de control alde control al configuraconfiguraţţiei pentru memoriaiei pentru memoria RAM deRAM de pepe circuitcircuit ;; dacă dacă este este îînn "0","0", bloculblocul B0B0 este configurateste configuratcaca memoriememorie de date,de date,iar pentruiar pentru "1""1" el este el este configuratconfiguratcaca memoriememoriede program;de program;poatepoatefifi modificatmodificat dede instrucinstrucţţiunileiunile CNFD, CNFPCNFD, CNFPşşii LST1; CNF = 0LST1; CNF = 0îîn cazul unuin cazul unuireset.reset.

    DPDP -- pointer (indicator) alpointer (indicator) al paginiipaginii dede memoriememorie;; este utilizateste utilizat cucu cei mai pucei mai puţţin in semnificativisemnificativi 77 bibiţţi ai cuvântului instruci ai cuvântului instrucţţiune pentruiune pentru a formaa forma adresa directă adresa directă aamemorieimemoriei; se; sepoate modifica prin instrucpoate modifica prin instrucţţiunileiunile LST, LDPLST, LDP şşii LDPK.LDPK.

    FOFO -- bitulbitul de formatde format; pus; pusîînn "0", duce la"0", duce laconfigurarea registrelor portuluiconfigurarea registrelor portuluiserialserialpepe1616bibiţţii ; pus; pusîînn "1","1", registrele portului sunt configurate peregistrele portului sunt configurate pe88 bibiţţii ;; poatepoatefifi modificatmodificatdedeinstrucinstrucţţiunileiunile FORTFORT şşii LST1; FO = 0LST1; FO = 0 după după reset.reset.

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    FSM - bitul pentru modul cu impuls de sincronizare; indică dacă operaţiile portului serial folosesc sau nu impulsuri de sincronizare; FSM = 1 - operaţiile portuluiserial iniţializate după un impuls pe intrările FSX / FSR; FSM = 0 - intrările FSX / FSR sunt ignorate şi operaţiile portului serial sunt continue, fără impuls desincronizare; FSM = 1 după reset.

    HM - bitul modului de hold; HM = 1 - procesorul opreşte execuţiile interne când răspunde cu /HOLD activ; HM = 0 - procesorul poate continua execuţia în afara memoriei de program, dar pune interfaţa externă în înaltă impedanţă.

    INTM - bitul modului de întreruperi ; INTM = 0 - toate întreruperile mascabile suntvalidate; INTM = 1 - întreruperile mascabile sunt invalidate; este setat deinstrucţiunile EINT şi DINT şi de reset; nu este afectat de LSTşi nu are efect asupra resetului.

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    OVOV -- bitulbitul dede depă depăşşireire ; OV = 1 ; OV = 1 -- apareapareoo depă depăşşire ire îînn ALUALU şşi rămâne ai rămâne aşşa pânăa până lala ununreset,reset,sausauseseşştergetergecu BV, BNVcu BV, BNV sausauLST.LST.

    OVMOVM -- bitulbitul mod demod de depă depăşşireire ; OVM = 0 ; OVM = 0 -- rezultatul depă rezultatul depăşşeeşşte valoarea normalăte valoarea normală dindinacumulatoracumulator; OVM = 1 ; OVM = 1 -- fiecarefiecarebit albit al acumulatorului este setat acumulatorului este setat îîn funcn funcţţieie dede valoarea valoarea pozitivă sau negativă maximăpozitivă sau negativă maximă;; instrucinstrucţţiunileiunile SOVMSOVM şşii ROVMROVM setează setează,, respectiv respectiv resetează bitulresetează bitul..

    PMPM -- bibiţţii moduluiii modului dede deplasaredeplasarealal produsuluiprodusului ::00 00 -- ceicei 32 de32 debibiţţi ai rezultatului sunt i ai rezultatului sunt îîncărcancărcaţţi i îînn ALUALU fără deplasare fără deplasare01 01 -- ieieşşireaireaPRPR este deplasată este deplasată cu ocu opozipoziţţieie lala stânga stânga şşi i îîncărcată ncărcată îînn ALU,ALU, ultimii biultimii bi ţţi fiind i fiind completacompletaţţii cu 0cu 010 10 -- PRPR este deplasat stângaeste deplasat stângacu 4cu 4pozipoziţţii ii şşi i îîncărcat ncărcat îînn ALU,ALU, ultimii biultimii bi ţţi fiind completai fiind completaţţiicu 0cu 011 11 -- arearelocloc oo deplasare dreaptadeplasare dreaptacu 6cu 6bibiţţii ,, extinzânduextinzându--sesesemnulsemnul..ConConţţinutul luiinutul lui PRPR rămâne neschimbat rămâne neschimbat;; deplasareadeplasareaareare loc dacă loc dacă sese transferă con transferă conţţinutul luiinutul luiPRPRîînn ALU; PMALU; PM este este îîncărcatncărcatdede instrucinstrucţţiunileiunile SPMSPM şşii LST1; PM = 0LST1; PM = 0 după un după un reset.reset.

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

    4.6.44.6.4 RegistreleRegistrele de starede stare

    SXMSXM -- bit mod debit mod de extensieextensieaa semnuluisemnului; SXM = 1 ; SXM = 1 -- areare loc extensia semnului când loc extensia semnului când îîn n acumulatoracumulatorsese ajunge printrajunge printr--un registruun registrudede deplasaredeplasare; SXM = 0 ; SXM = 0 -- suprimă extensia suprimă extensia semnuluisemnului; SXM; SXM nu afectează rezultatul unor instruc nu afectează rezultatul unor instrucţţiuniiuni;; bitul este setatbitul este setatde SSXMde SSXM şşi i resetatresetatde RSXM;de RSXM;poatepoatefifi îîncărcatncărcatcu LST1; SXM = 1cu LST1; SXM = 1 după un după un reset.reset.

    TCTC -- bitulbitul de test / controlde test / control;; este afectateste afectatdede instrucinstrucţţiunileiunile BIT, BITT, CMPR, LST1BIT, BITT, CMPR, LST1şşiiNORM; TC = 1 NORM; TC = 1 -- bitul testatbitul testatcu BITcu BIT sausauBITTBITT esteeste"1";"1"; compararea condicompararea condiţţionată dintreionată dintreAR0AR0 şşi oricei orice ARAR sausauSAUSAU--EXCLUSIVEXCLUSIV--ul dintre primii doi biul dintre primii doi biţţi cei mai semnificativi ai i cei mai semnificativi ai acumulatorului dă un rezultat adevăratacumulatorului dă un rezultat adevărat;; instrucinstrucţţiunileiunile de saltde saltcondicondiţţionationat BBZBBZ şşii BBNZBBNZducduc lala executarea unuiexecutarea unuisaltsalt îîn funcn funcţţieie dedestarea bituluistarea bitului..

    TXMTXM -- bit mod debit mod de transmisietransmisie; TXM = 1 ; TXM = 1 -- configurează pinul configurează pinul FSX alFSX alportuluiportului serial caserial caieieşşire ire şşii se producese produce un impuls pe această ie un impuls pe această ieşşire cândire cândDXRDXR este este îîncărcat ncărcat şşii seseîîncepe ncepe transmisia pe liniatransmisia pe liniaDX; TXM = 0 DX; TXM = 0 -- configurează pinul configurează pinul FSX caFSX caintrareintrare; TXM; TXM este setateste setatde STXMde STXMşşi resetati resetatde RTXM;de RTXM; poatepoatefifi îîncărcatncărcatcu LST1; TXM = 0cu LST1; TXM = 0 după un după un reset.reset.

    XFXF -- bit de stare albit de stare alpinuluipinului XFXF ;; este este îînn general pin degeneral pin deieieşşireire;; este setateste setatde SXFde SXFşşi resetati resetatde RXF;de RXF;poatepoatefifi îîncărcatncărcatcu LST1; XF = 1cu LST1; XF = 1 după un după un reset.reset.

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

    4.6.54.6.5 TimerulTimerul

    ProcesoareleProcesoareleTMS320C2x auTMS320C2x au un registruun registru timer (timer (TIMTIM )) şşi un registrui un registru dede perioadă perioadă((PRDPRD)) pepe 1616 bibiţţi fiecarei fiecare.. Timerul este un numărător Timerul este un numărător îîn josn jos;; decrementareadecrementarease facese faceîîn n funcfuncţţieie dede ceasulceasulCLKOUT1. La TMS32020,CLKOUT1. La TMS32020, ceasulceasulare oare o perioadă perioadă de 4de 4ori maiori mai maremaredecâtdecât CLKOUT1 (CLKOUT1 ( frecvenfrecvenţţă divizatăă divizată cu 4).cu 4). RegistrulRegistrul TIMTIM este setateste setatlala valoareavaloareaFFFFFFFF îîn urma resetuluin urma resetului, la, la ambele tipuriambele tipuri dede procesoareprocesoare.. RegistrulRegistrul PRD la PRD la TMS320C2xTMS320C2x cerecere oo iniini ţţializareializare soft.soft. RegistrulRegistrul TIMTIM îîncepe decrementarea după ncepe decrementarea după dezactivarea resetului dezactivarea resetului şşi poatei poate fifi îîncărcat ncărcat îîmpreunămpreună cu PRDcu PRD prinprin program.program.

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

    4.6.54.6.5 TimerulTimerul

    RegistrulRegistrul TIMTIM (a(a doua locadoua locaţţieie dede memoriememorie)) conconţţine valoarea curentăine valoarea curentă aa timeruluitimerului . La. Lafiecarefiecare NN perioadeperioade a CLKOUT1 (N = 1a CLKOUT1 (N = 1 pentrupentru TMS320C25TMS320C25 şşii N = 4N = 4 pentrupentruTMS32020),TMS32020),conconţţinutul registrului este decrementatinutul registrului este decrementatcu 1. cu 1.

    RegistrulRegistrul PRDPRD ((localocaţţiaia aa treia treia îîn memorian memoria de date)de date)conconţţine numărătoruline numărătorul dede bază bază..

    ÎÎ ntrerupereantreruperea TINTTINT este generată este generată dede fiecarefiecare dată dată cândcând TIMTIM ajungeajunge la 0. la 0. Acesta vaAcesta vafifirereîîncărcatncărcat cucu valoareavaloarea din PRD ladin PRD la următoarea perioadă următoarea perioadă,, deci deci îîntreruperea vantreruperea va fifi programată să aparăprogramată să apară lala intervaleintervale regulate, de PRD + 1regulate, de PRD + 1perioadeperioade ale CLKOUT1 la ale CLKOUT1 la TMS32020TMS32020 şşii la 4 x PRDla 4 x PRD perioadeperioade la TMS320C25,la TMS320C25, lucrulucru utilutil pentru controlul pentru controlul funcfuncţţionării ionării şşi pentru sincronizarea perifericelori pentru sincronizarea perifericelor..

    Nu este permisă Nu este permisă îîncărcarea unei valori ncărcarea unei valori îînn PRD.PRD. RegistreleRegistrele PRDPRD şşii TIM pot fiTIM pot fi citite citite sau scrise sau scrise îîn oricen orice moment.moment. Un nou număr poate Un nou număr poate fifi îînscris nscris îînn PRDPRD fără fără aa deranja deranja numărătoarea curentănumărătoarea curentă.. Timerul va reTimerul va reîîncepencepe cucu noul număr după terminarea noul număr după terminarea numărării curentenumărării curente .. Dacă ambele registre sunt Dacă ambele registre sunt îîncărcate simultanncărcate simultan cucu noul număr noul număr,,timerul va retimerul va reîîncepe un nou ciclu fărăncepe un nou ciclu fără a generaa generaîîntrerupereantreruperea.. Dacă timerul nu este Dacă timerul nu este utilizatutilizat ,, îîntreruperea trebuie mascatăntreruperea trebuie mascată,, sau toate sau toate îîntreruperile mascabile trebuie ntreruperile mascabile trebuie dezactivatedezactivatecucu instrucinstrucţţiuneaiunea DINT.DINT. RegistrulRegistrul PRDPRD poatepoate fifi atunci utilizatatunci utilizat ca oca olocalocaţţieiedede memorie simplă memorie simplă.. Dacă Dacă sese utilizează utilizează îîntrerupereantreruperea,, registreleregistrele TIMTIM şşii PRDPRD trebuie trebuie programate programate îînaintenainte..

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

    4.6.64.6.6 Registrul numărător Registrul numărător dede repetări repetări (RPTC)(RPTC)

    Are 8Are 8 bibiţţi i şşi poatei poate fifi îîncărcatncărcat cucu un număr ce va un număr ce va face caface ca următoarea următoarea instrucinstrucţţiune să fie executatăiune să fie executată de N + 1de N + 1oriori . .

    RegistrulRegistrul sese îîncarcăncarcă cu RPTcu RPT sausau cu RPTK,cu RPTK, iariar oo instrucinstrucţţiuneiune dată dată vava fifi executatăexecutată de maxim 256de maxim 256oriori . .

    Este trecut Este trecut îînn 0 de reset. 0 de reset.

    Este utilizat Este utilizat îînn general degeneral deinstrucinstrucţţiunileiunile MAC / MACD, BLKD / BLKP, IN / MAC / MACD, BLKD / BLKP, IN / OUT, TBLR / TBLW. OUT, TBLR / TBLW.

    Nu orice instrucNu orice instrucţţiune poateiune poatefifi repetată repetată..

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

    4.6.74.6.7 ModulModul dede consum redusconsum redus (power(power --down)down)-- numainumai la TMS320C25la TMS320C25

    CândCând sese operează operează îîn acestn acestmod,mod, procesorulprocesorul intră intră îîntrntr --o stare de "o stare de "adormireadormire",", necesitând jumătatenecesitând jumătate dindin puterea normală puterea normală. .

    AcestAcest modmod este generateste generatdede instrucinstrucţţiuneaiunea IDLE,IDLE, sausau dede trecerea trecerea îînn low alow a luilui/HOLD/HOLD cândcând HM = 0. HM = 0.

    ConConţţinutul registrelorinutul registrelor interne aleinterne ale procesorului sunt menprocesorului sunt menţţinute pentruinute pentru aapermite coninuarea operapermite coninuarea operaţţiilor iilor îîn momentul când acestn momentul când acestmod semod seîîncheiencheie. .

    ÎÎ n acest timpn acest timp,, liniileliniile de control /PS, /DS, /IS, /STRBde control /PS, /DS, /IS, /STRBşşii R//WR//W sunt mensunt menţţinute inute îîn n îînaltă impedannaltă impedanţţăă. .

    ModulModul sese termină termină lala receprecepţţionarea unei ionarea unei îîntreruperintreruperi ,, cândcând sese execută execută instrucinstrucţţiuneaiunea IDLE,IDLE, sausau lala trecerea trecerea îînn high ahigh a luilui /HOLD./HOLD.

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

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

    SpaSpaţţiileiile de date, programde date, programşşii I/OI/O sunt accesate prin intermediul unei interfesunt accesate prin intermediul unei interfeţţee locale.locale.InterfaInterfa ţţa locală constăa locală constă din:din:

    -- magistralamagistrala de date (D15de date (D15--D0)D0)-- magistralamagistrala dede adreseadrese(A15(A15--A0)A0)-- semnalelesemnalelede control alede control alememorieimemoriei de date, programde date, programşşii I/O (/DS, /PS, /IS)I/O (/DS, /PS, /IS)-- alte semnalealte semnalede control.de control.

    SemnalulSemnalul R//WR//W controlează direc controlează direcţţiaia de transfer,de transfer, iariar /STRB/STRB ceasul pentru controlul ceasul pentru controlul transferurilortransferurilor . .

    SpaSpaţţiuliul I/OI/O constă constă din 16din 16 intrări intrări şşii 1616 ieieşşiriiri . O. O singură opera singură operaţţieie carecare utilizează utilizează instrucinstrucţţiunileiunile ININ şşii OUTOUT ia ia îînn mod normal 2mod normal 2 perioadeperioade,, dar cânddar când sese utilizează utilizează îîmpreunămpreună cucu numărătorul numărătorul dede repetări repetări,, este necesar un ciclueste necesar un ciclu. .

    SpaSpaţţiuliul I/OI/O este tratat este tratat îîn acelan acelaşşii mod camod ca şşi memoriai memoria,, utilizând magistraleleutilizând magistralele de datede dateşşi i adrese adrese îîn acelan acelaşşii mod camod ca porturile mapate porturile mapate îîn memorien memorie.. CândCând sese adresează memoria adresează memoria internăinternă,, magistralamagistrala de datede date trebuie trecută trebuie trecută îîn n îînaltă impedannaltă impedanţţă ă şşi semnalelei semnalele de de controlcontrol îînn starestare inactivă inactivă (high).(high). InterfaInterfa ţţaa cucu memoria memoria şşi spai spaţţiuliul I/O deI/O de diferite viteze diferite viteze utilizează liniautilizează linia READY.READY. CândCând sese comunică comunică cucu un dispozitivun dispozitiv lent,lent, procesorul va procesorul va aaşştepta după acestatepta după acesta,, până până lala activarea linieiactivarea liniei READY.READY.

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

    4.7.14.7.1 CombinaCombina ţţiile posibile pentru memorieiile posibile pentru memorie

    SecvenSecvenţţaa exactă a exactă a operaoperaţţiilor ce duciilor ce duc lala executarea unei instrucexecutarea unei instrucţţiuni depindeiuni depinde dedezonazonadede memorie undememorie undese se găsesc instrucgăsesc instrucţţiunile iunile şşi operanziii operanzii. .

    ExistăExistă 66 situasituaţţii posibileii posibile::

    -- RAM internRAM intern pentrupentru program / date interne (PI / DI)program / date interne (PI / DI)-- RAM internRAM intern pentrupentru program / dateprogram / date externeexterne(PI / DE)(PI / DE)-- Program extern / date interne (PE / DI)Program extern / date interne (PE / DI)-- Program extern / dateProgram extern / dateexterneexterne(PE / DE)(PE / DE)-- ROM internROM intern pentrupentru program / date interne (PR / DI)program / date interne (PR / DI)-- ROM internROM intern pentrupentru program / dateprogram / date externeexterne(PR / DE)(PR / DE)

    Ultimele două combinaUltimele două combinaţţii există doarii există doar la TMS320C25la TMS320C25

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

    4.7.14.7.1 CombinaCombina ţţiile posibile pentru memorieiile posibile pentru memorie

    PI / DIPI / DI sausau PR / DIPR / DI:: procesorul lucrează procesorul lucrează lala viteza maximă viteza maximă,, fără stări fără stări dede aaşşteptareteptare..InstrucInstrucţţiuneaiuneaININ necesită două cicluri pentru execu necesită două cicluri pentru execuţţieie,, iariar OUT,OUT, un singur cicluun singur ciclu..

    PE / DIPE / DI: se: se lucrează lucrează lala viteza maximă dacă memoria externă viteza maximă dacă memoria externă de programde programeste suficienteste suficientdede rapidă pentrurapidă pentrucaca dateledateledindin memoria internă apărute să coincidă memoria internă apărute să coincidă cucu accesulaccesullala memoriamemoriade de program.program. Dacă memoria nu este suficient Dacă memoria nu este suficient dede rapidă rapidă, se pot genera, se pot genera stări stări dede aaşşteptare pe teptare pe intrareaintrareaREADY.READY.

    PI / DEPI / DE, , PE / DEPE / DE sausau PR / DEPR / DE:: necesită cicluri suplimentare pentru executarea necesită cicluri suplimentare pentru executarea instrucinstrucţţiuniloriunilor.. Sunt necesare cel puSunt necesare cel puţţinin 22 cicluri pentru instruccicluri pentru instrucţţiunileiunile dede citirecitire dindin memoria memoria externăexternă de date (ADD, LAR dede date (ADD, LAR deexempluexemplu).). Cicluri suplimentareCicluri suplimentarepot fipot fi cerute cerute şşi datorită i datorită stărilorstărilor dede aaşşteptare dacă memoria externăteptare dacă memoria externă de datede datenu este suficientnu este suficientdede rapidă pentru rapidă pentru a fia fi accesată accesată îîntrntr--un singur cicluun singur ciclu. TMS320C25 are. TMS320C25 are posibilitatea să posibilitatea să executeexecuteinstrucinstrucţţiunileiunile dedecitirecitire dindin memoria externă memoria externă de datede dateîîntrntr--un singur ciclu dacă memoriaun singur ciclu dacă memoriade programde program este este internăinternă ((dacă este externădacă este externă,, sunt necesare două cicluri sunt necesare două cicluri).).

    ÎÎnn toate combinatoate combinaţţiileiile dede memorie undememorie undesese utilizează aceea utilizează aceeaşşii MDMD pentru comunicareapentru comunicareacucuspaspaţţiuliul de I/O,de I/O, memoriii externememoriii externede datede date şşi programei programe,, numărul numărul dede cicluri necesare cicluri necesare executării unei instrucexecutării unei instrucţţiuni depindeiuni depindedede locullocul dede unde este adusă instruc unde este adusă instrucţţiuneaiunea..

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

    4.7.24.7.2 RelaRelaţţii ii îîntre semnalelentre semnalele dede ceasceas interneinterne

    Frecvenţa cristalului de cuarţ sau a unei surse externe este divizată pentru a produce 4 faze interne definite de CLKOUT1 şi CLKOUT2. La TMS320C25, startul fazei atreia este definit de frontul crescător al lui CLKOUT1.

    Relaţiile de fază:

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

    4.7.34.7.3 PiniiPinii /BIO/BIO şşii XFXF

    Sunt pini controlabili prinSunt pini controlabili prin soft.soft. PinulPinul /BIO/BIO este uneste un pin depin de intrareintrare de control alde control alsalturilorsalturilor ,, iariar XFXF esteeste pin depin de ieieşşireire de flag extern.de flag extern. PinulPinul /BIO/BIO este utilizat pentru este utilizat pentru monitorizarea stărilor dispozitivelor perifericemonitorizarea stărilor dispozitivelor periferice ,, dar poatedar poate fifi folosit folosit şşii caca alternativă alternativă la la oo îîntrerupere când este necesar să nu fie perturbate buclele criticntrerupere când este necesar să nu fie perturbate buclele critice e îîn timpn timp.. CândCând /BIO/BIOeste activeste activ(low),(low), instrucinstrucţţiuneaiunea BIOZBIOZ executată cauzează apari executată cauzează apariţţia unuiia unui salt.salt. ÎÎ nn figur ăfigur ă, , /BIO/BIO este testată este testată lala sfârsfârşşitul luiitul lui Q4.Q4. Diagrama este pentruDiagrama este pentruoo secvensecvenţţăă dede un singur un singur cicluciclu, a, a unei instrucunei instrucţţiuni fărăiuni fără salt lasalt la localocaţţiiii dindin memoria externă memoria externă..

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

    4.7.34.7.3 PiniiPinii /BIO/BIO şşii XFXF

    IeIeşşireairea XFXF este setată este setată îînn high de SXFhigh de SXF şşi resetatăi resetată dede instrucinstrucţţiuneaiunea RXF.RXF. Corelarea Corelarea momentelormomentelor dede timptimp la carela care instrucinstrucţţiuneaiunea SXFSXF sausau RXFRXF este adusă este adusă şşi setarea sau i setarea sau resetarea luiresetarea luiXFXF este arătată este arătată îînn figur ăfigur ă..

    NotăNotă:: NN este locaeste locaţţiaia dede memoriememorie aa instrucinstrucţţiunii curenteiunii curente..

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

    4.84.8 ÎÎntreruperilentreruperile

    TMS320C2x are TMS320C2x are 33 îîntreruperi externe mascabilentreruperi externe mascabile (/INT2, /INT1, /INT0)(/INT2, /INT1, /INT0) disponibile disponibile pentru dispozitive externepentru dispozitive externe.. ÎÎ ntreruperile suntntreruperile sunt generate degenerate deportulportul serial (RINT, XINT), serial (RINT, XINT), de timer (TINT)de timer (TINT) şşii dede instrucinstrucţţiuneaiunea TRAP.TRAP. ÎÎ ntreruperilentreruperile auau anumite priorită anumite priorităţţii ,, resetul resetul având prioritatea cea maiavând prioritatea cea mai mare,mare, iar registruliar registrul dede transmisietransmisie aa datelor pe interfadatelor pe interfaţţa a serială cea maiserială cea mai mică mică..

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

    4.8.14.8.1 TipuriTipuri dede îîntreruperintreruperi

    Când apareCând apareoo îîntreruperentrerupere,, ea este trecută ea este trecută îîn registruln registrul IFRIFR (Interrupt Flag Register) de (Interrupt Flag Register) de 66 bibiţţii ,, fiecare fiecare îîntrerupere fiind memorată ntrerupere fiind memorată îîn el n el îînaintenainte dede recunoarecunoaşşteretere.. ÎÎ ntrerupereantrerupereade RESETde RESET nu este memorată nu este memorată îîn registrun registru.. ÎÎ ntreruperile sunt stocate pânăntreruperile sunt stocate până lalarecunoarecunoaşşterea lor terea lor şşi sunt i sunt şşterse automatterse automatdede semnalulsemnalul /IACK./IACK. Nu există instruc Nu există instrucţţiuniiuni dedecitire sau scrierecitire sau scriereaa registruluiregistrului ..

    TMS320C2x areTMS320C2x are un registru mască un registru mască aa îîntreruperilorntreruperilor (IMR),(IMR), pentru mascarea acestorapentru mascarea acestora..ConfiguraConfiguraţţia lui esteia lui este::

    BiBiţţiiii 00--55 pepe "1""1" validează validează îîntreruperile corespunzătoare dacă modulntreruperile corespunzătoare dacă modul dede funcfuncţţionare ionare esteestecucu îîntreruperintreruperi (INTM = 0).(INTM = 0).

    Registrul poateRegistrul poate fifi citit sau scriscitit sau scris,, dar nu dar nu şşii cucu instrucinstrucţţiuneaiunea BLKD. LaBLKD. La citirea luicitirea lui ,,bibiţţiiii 66--1515 sunt citisunt citiţţi i îînn "1","1", numai ultimiinumai ultimii 66 bibiţţi fiind accesibilii fiind accesibili.. Acest registru nuAcest registru nuareareefect asupra resetuluiefect asupra resetului.. BitulBitul INTM dinINTM din registrulregistrul de stare ST1de stare ST1 validează validează ("0")("0") sau sau invalideazăinvalidează ("1")("1") toate toate îîntreruperile mascabilentreruperile mascabile..

  • Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2424

    4.8.14.8.1 TipuriTipuri dede îîntreruperintreruperi

    TMS320C2x areTMS320C2x areun un sistemsistemdede protecprotecţţieie aa instrucinstrucţţiunilor multicicluiunilor multiciclu dede îîntreruperintreruperi . .

    Când apareCând apare oo îîntrerupere ntrerupere îîn timpul unei astfeln timpul unei astfel dede instrucinstrucţţiuniiuni ,, ea nu este servită ea nu este servită decâtdecât lala terminarea instructerminarea instrucţţiuniiiunii .. Acest mecanismAcest mecanismsese aplică aplică şşi instruci instruc ţţiunilor ce iunilor ce devin multiciclice datorită semnaluluidevin multiciclice datorită semnalului READY. READY.

    NuNu sese permite deservirea permite deservirea îîntreruperii ntreruperii îîn cazul repetin cazul repetiţţiei instruciei instrucţţiunii iunii îîn urma n urma instrucinstrucţţiuniloriunilor RPTRPT sausau RPTK.RPTK. ÎÎ ntreruperea este depusă ntreruperea este depusă îîn registruln registrul IFRIFR până până când registrulcând registrul RPTCRPTC ajunge prin decrementareajunge prin decrementarela 0.la 0. Chiar dacă Chiar dacă îîntreruperea este ntreruperea este dezafectată dezafectată îîn timp cen timp ce sese execută instruc execută instrucţţiuneaiunea conformconform registruluiregistrului RPTC,RPTC, ea vaea vafifi depusă depusă îîn registruln registrul IFRIFR şşi va ai va aşşteptatepta caca registrulregistrul RPTCRPTC să ajungă să ajungă la 0. la 0.

    Dacă liniaDacă linia /HOLD se/HOLD se activează simultan activează simultan cucu apariapariţţia unei ia unei îîntreruperi ntreruperi îîn timpul n timpul unei instrucunei instrucţţiuni multiciclu sauiuni multiciclu sau aa unei bucleunei bucle repetitive, /HOLDrepetitive, /HOLD vava fifi deservită mai deservită mai îîntâi după terminarea instrucntâi după terminarea instrucţţiunii sau bucleiiunii sau buclei. .

    ÎÎ ntreruperile nuntreruperile nu pot fipot fi executate executate îîntre instrucntre instruc ţţiuneaiunea EINTEINT şşi următoarea i următoarea instrucinstrucţţiuneiune din program.din program.

  • Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2525

    4.8.24.8.2 InterfaInterfa ţţa pentru a pentru îîntreruperi externentreruperi externe

    ÎÎ ntreruperilentreruperile pot fi considerate ca pot fi considerate ca activeactive pepe frontfront sau pe nivelsau pe nivel.. ÎÎ ntrerupereantreruperea /INT0/INT0 este este sincronizatăsincronizată cucu fazelefazele Q1Q1 şşii Q2Q2 pentrupentru a producea produce un semnalun semnal dede îîntreruperentrerupere,, astfel astfel îîncât circuitul poate gestiona ambele tipurincât circuitul poate gestiona ambele tipuridede îîntreruperintreruperi .. Datorită sensibilită Datorită sensibilităţţii pe ii pe nivelnivel dede semnalsemnal aa îîntreruperilor externe ntreruperilor externe şşii aa sincronizării lor sincronizării lor,, este necesară este necesară dezactivarea linieidezactivarea liniei /INT cu/INT cu cel pucel puţţinin 22 cicluri cicluri îînaintenainte dede validarea validarea îîntreruperilorntreruperilor .. Dacă Dacă acest criteriu nu este acest criteriu nu este îîndeplinitndeplinit ,, procesorul va lua procesorul va lua îîntreruperea după instrucntreruperea după instrucţţiuneaiuneaEINTEINT şşi următoarea instruci următoarea instrucţţiuneiune.. Dacă bitul Dacă bitul INTMINTM şşi registruli registrul IFRIFR sunt configurasunt configuraţţi i corectcorect,, îîntreruperea este acceptată ntreruperea este acceptată şşi procesorul va răspundei procesorul va răspundecu /IACK.cu /IACK. ÎÎ ntreruperilentreruperile/INT2 /INT2 -- /INT0/INT0 sunt acceptate pesunt acceptate pefrontfront negativnegativ,, bitul corespunzător bitul corespunzător din IFRdin IFR fiind setatfiind setat.. DacăDacă INTMINTM este dezactivat când este dezactivat când îîntreruperea este acceptatăntreruperea este acceptată,, nivelul poatenivelul poate fifi prezent prezent îîn continuare pe intrarean continuare pe intrarea INT,INT, fără generarea altor fără generarea altor îîntreruperintreruperi .. Dacă nivelul revine Dacă nivelul revine lala starea anterioară starea anterioară îînaintenainte caca instrucinstrucţţiuneaiunea EINTEINT să fie executată să fie executată,, nu mai suntnu mai sunt generategeneratealte alte îîntreruperintreruperi .. Dacă nivelul Dacă nivelul low continuă low continuă să fie prezent după să fie prezent după /EINT,/EINT, după după instrucinstrucţţiuneaiunea EINTEINT şşi următoarea instruci următoarea instrucţţiuneiune din program, sedin program, se poatepoate genera ogenera o altă altă îîntreruperentrerupere.. Dacă un impuls pe Dacă un impuls pe /INT/INT apare apare îînaintenainte de /IACKde /IACK şşii EINT, seEINT, se vava genera ogenera o altă altă îîntrerupere dupăntrerupere după EINT / RETEINT / RET pentrupentru că că bitul corespunzător bitul corespunzător dindin registrulregistrul IFRIFReste setateste setatdindin nounou. .

  • Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2626

    4.8.24.8.2 InterfaInterfa ţţa pentru a pentru îîntreruperi externentreruperi externe

    SchemaSchemacircuituluicircuitului internintern pentru tratarea pentru tratarea îîntreruperilor externentreruperilor externe ::

  • Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2727

    4.8.24.8.2 InterfaInterfa ţţa pentru a pentru îîntreruperi externentreruperi externe

    ÎÎ nn figur ă sunt arătatefigur ă sunt arătate,, îîntrntr --oo secvensecvenţţăă dede îîntreruperentrerupere,, semnalulsemnalul /IACK/IACK şşi alte semnale i alte semnale caracteristice pentru cazulcaracteristice pentru cazulspecial alspecial alunei instrucunei instrucţţiuniiuni dede un cicluun ciclu. .

  • Procesoare Numerice Procesoare Numerice de de Semnal Semnal -- CURSCURS 2828

    4.8.24.8.2 InterfaInterfa ţţa pentru a pentru îîntreruperi externentreruperi externe

    OO îîntrerupere generată ntrerupere generată îîn timpul unui ciclun timpul unui ciclu de fetchde fetchpermite aducerea permite aducerea şşi execui execuţţia ia instrucinstrucţţiuniiiunii ,, instrucinstrucţţiunileiunile de lade la localocaţţiile următoare sunt aduseiile următoare sunt aduse,, apoi sunt apoi sunt abandonateabandonate,, iar adresa celei imediat următoare iar adresa celei imediat următoare (N + 1)(N + 1) este depusă este depusă îîn vârful n vârful stiveistivei..

    InstrucInstruc ţţiuneaiunea (N + 1)(N + 1) este readusă după re este readusă după reîîntoarcereantoarcereadindin rutinarutina dede îîntreruperentrerupere. .

    SemnalulSemnalul /IACK/IACK este trecut este trecut îînn lowlow cândcând CLKOUT1CLKOUT1 este este îînn low,low, când dispozitivul când dispozitivul aduce vectorul aduce vectorul şşi inii ini ţţiază extragereaiază extragereade lade la localocaţţiaia dede deserviredeservireaa îîntreruperiintreruperii I. I.

    Un dispozitivUn dispozitiv externextern poate determina sursa poate determina sursa îîntreruperii prin ntreruperii prin îîncărcarea valorii ncărcarea valorii curente pecurente peA4A4--A1A1 pe frontul crescător pe frontul crescător alal luilui CLKOUT2CLKOUT2 cândcând /IACK/IACK este este îînn low.low.