7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák



Hasonló dokumentumok
Fixpontos és lebegőpontos DSP Számrendszerek

A racionális számok és a fixpontos processzorok numerikus felületének a kapcsolata

Gábor Dénes Főiskola Győr. Mikroszámítógépek. Előadás vázlat. 2004/2005 tanév 4. szemeszter. Készítette: Markó Imre 2006

Digitális technika VIMIAA01

1. Az utasítás beolvasása a processzorba

FPGA áramkörök alkalmazásainak vizsgálata

Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

Az INTEL D-2920 analóg mikroprocesszor alkalmazása

DSP architektúrák dspic30f család

Digitális technika II. (vimia111) 5. gyakorlat: Mikroprocesszoros tervezés, egyszerű feladatok HW és SW megvalósítása gépi szintű programozással

Digitális technika VIMIAA hét

Digitális technika VIMIAA hét

Számítógépek felépítése, alapfogalmak

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Aritmetikai utasítások I.

1. Kombinációs hálózatok mérési gyakorlatai

4. Fejezet : Az egész számok (integer) ábrázolása

A számítógép alapfelépítése

Nagy adattömbökkel végzett FORRÓ TI BOR tudományos számítások lehetőségei. kisszámítógépes rendszerekben. Kutató Intézet

XXI. Országos Ajtonyi István Irányítástechnikai Programozó Verseny

A MiniRISC processzor

Adattípusok. Dr. Seebauer Márta. Budapesti Műszaki Főiskola Regionális Oktatási és Innovációs Központ Székesfehérvár

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI

Assembly programozás: 2. gyakorlat

DDS alapú szinusz jelgenerátor fejlesztése

SZÁMÉRTÉKEK (ÁT)KÓDOLÁSA

Bevezetés az informatikába

Assembly Programozás Rodek Lajos Diós Gábor

Számítógép felépítése

1. ábra: Perifériára való írás idődiagramja

Központi vezérlőegység

Processzor (CPU - Central Processing Unit)

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

A Picoblaze Core implementálása FPGA-ba

Az MSP430 energiatakarékos használata

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Digitális rendszerek. Utasításarchitektúra szintje

Informatikai Rendszerek Alapjai

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

Boundary Scan. Új digitális áramkör-vizsgálati módszer alkalmazásának indokoltsága

A mikroszámítógép felépítése.

Bevezetés az informatikába

Programozott soros szinkron adatátvitel

Számítógép architektúra kidolgozott tételsor

E-Laboratórium 1 Kombinációs digitális áramkörök alkalmazása Elméleti leírás

3. Az elektronikus számítógépek fejlődése napjainkig 1

VI. SZOFTVERES PROGRAMOZÁSÚ VLSI ÁRAMKÖRÖK

Máté: Számítógép architektúrák

SZÁMRENDSZEREK KÉSZÍTETTE: JURÁNYINÉ BESENYEI GABRIELLA

Operációs rendszerek előadás Multiprogramozott operációs rendszerek

Egyszerű RISC CPU tervezése

4. KOMBINÁCIÓS HÁLÓZATOK. A tananyag célja: kombinációs típusú hálózatok analízise és szintézise.

3. gyakorlat. Kettes számrendszer: {0, 1} Tízes számrendszer: {0, 1, 2,..., 9} 16-os (hexadecimális számrendszer): {0, 1, 2,..., 9, A, B, C, D, E, F}

erettsegizz.com Érettségi tételek

Digitális hangtechnika. Segédlet a Kommunikáció-akusztika tanulásához

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Analóg és digitális jelek. Az adattárolás mértékegységei. Bit. Bájt. Nagy mennyiségû adatok mérése

ELŐADÁS SZÁMÍTÓGÉP MŰKÖDÉSE FIZIKA ÉS INFORMATIKA

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

Brósch Zoltán (Debreceni Egyetem Kossuth Lajos Gyakorló Gimnáziuma) Számelmélet I.

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

Tamás Péter (D. 424) Mechatronika, Optika és Gépészeti Informatika Tanszék (D 407)

C programnyelv 1. Kedves Kollegina, Kolléga!

INFORMATIKA MATEMATIKAI ALAPJAI

ÍRÁSBELI ÖSSZEADÁS, KIVONÁS. A MŰVELETI SORREND SZÁMÍTÁSOKBAN ÉS SZÖVEGES FELADATOK MEGOLDÁSA SORÁN. 9. modul

Máté: Számítógép architektúrák

Összeadás BCD számokkal

Joint Test Action Group (JTAG)

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

12. tétel. Lemezkezelés

Objektumorientált Programozás I.

Digitális jelfeldolgozás

Aritmetikai utasítások

Számítógép Architektúrák

A mikroprocesszor egy RISC felépítésű (LOAD/STORE), Neumann architektúrájú 32 bites soft processzor, amelyet FPGA val valósítunk meg.

Előadás_#06. Előadás_06-1 -

Az integrált áramkörök kimenetének kialakítása

Véletlenszám generátorok

4-1. ábra. A tipikus jelformáló áramkörök (4-17. ábra):

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

Digitális technika 1. Tantárgykód: VIIIA105 Villamosmérnöki szak, Bsc. képzés. Készítette: Dudás Márton

Műveletek lebegőpontos adatokkal

Számítógép Architektúrák (MIKNB113A)

Digitális technika VIMIAA02 1. EA Fehér Béla BME MIT

DIGITÁLIS TECHNIKA I Dr. Lovassy Rita Dr. Pődör Bálint

Digitális technika VIMIAA02 1. EA

A számítástechnika története

Verilog HDL ismertető 2. hét : 1. hét dia

DSP architektúrák dspic30f család memória kezelése

BEÁGYAZOTT RENDSZEREK TERVEZÉSE Részletes Hardver- és Szoftvertervezés

TARTALOMJEGYZÉK. 1. BEVEZETÉS A logikai hálózatok csoportosítása Logikai rendszerek... 6

100% BIO Natur/Bio kozmetikumok és testápolás

Nemzeti Alaptanterv Informatika műveltségterület Munkaanyag március

Digitális Rendszerek és Számítógép Architektúrák

1.1. Általános áttekintés

Átírás:

7.2.2. A TMS320C50 és TMS320C24x assembly programozására példák A TMS320C50 processzor Ez a DSP processzor az 1.3. fejezetben lett bemutatva. A TMS320C50 ##LINK: http://www.ti.com/product/tms320c50## egy 16 bites fix-pontos, módosított Harvard architektúrájú, digitális jelfeldolgozó processzor, amelyet a Texas Instruments ##LINK:www.ti.com## cég az 1990-es évek elején fejlesztett ki. A felépítése és szolgáltatásai a maga idejében és nemében ipari szabvánnyá emelték. A hardverben megvalósított újításai a mai modern DSP proceszorokban is használatosak. A processzor két évtizedes kora ellenére, ezen forradalmi újítások lényegét és assemblyben való használatát, az oktatásban kivállóan lehet demonstrálni az ezzel a processzorral szerelt DSK platformon és fejlesztőkörnyezetben (lásd 2.2 fejezet). Az utasításkészlet és a DSK részletes leírása segítséget nyújt a kódrészletek megértéséhez: (1) A teljes assembly utasításkészlet részletes leírása a TMS320C5x Users Guide.pdf található meg, ##LINK: www.ti.com/lit/ug/spru056d/spru056d.pdf## (2) A DSK fejlesztőlap leírása: TMS320C5x DSK Users Guide.pdf ##LINK: http://www.ti.com/lit/ug/spru101a/spru101a.pdf ## Az `5x és a CALU Az elődök felépítéséhez képest a TMS320C50 legjelentősebb hardveres újítása a központi aritmetikai logikai egység CALU ##Central Arithmetical Logical Unit központi aritmetikai logikai egység## (1. ábra), amely a következő elemeket tartalmazza: 16 bit x 16 bites, hardveres, párhuzamos szorzó (Multiplier), 32 bites, kettes komplemensű aritmetikai logikai egység (ALU), 32 bites akumulátor (ACC), 32 bites puffer akumulátor (ACCB), szorzat skálázó: 0, 1 vagy 4 bitet balra avagy 6 bitet képes egy órajel alatt jobbra léptetni (P-SCALER), adat előskálázó: 0-tól.. 16 bitet képes balra mozgatni (PRESCALER SFL), visszacsatolt eredmény előskálázó: 0-tól.. 16 bitet tud jobbra mozgatni (PRESCALER SFR), eredmény utóskálázó: 0-tól.. 7 bitet tud balra léptetni (POSTSCALER) Megjegyzés: az 1. ábrán a jelölés nélküli sínek és regiszterek mind 16 bitesek!

1. ábra az `5x DSP, központi aritmetikai egységének felépítése A CALU tulajdonságai: a szorzó egység 1 órajel alatt állítja elő a 32 bites szorzatot, a szorzóegység előjeles és kettes komplemensben ábrázolt számokat kezel, az ALU 1 órajel alatt állítja elő a 32 bites eredményt, minden skálázó 1 órajel alatt végzi el a teljes bitmozgatást (barrel shift),

A CALU és a MAC A valósidejű jelfeldolgozó algoritmusok szempontjából a legfontosabb mérőszám a feldolgozó egység (DSP) által egységnyi idő alatt elvégezhető műveletek száma. A jelfeldolgozó algoritmusok zömében nagyszámú szorzási és összeadási műveletből áll. Ezek a műveletek gyakran felírhatóak a következő alakban: A = B * C + D (1) Az összeadás egyszerű feladat és egy órajel alatt el tudja végezni szinte minden processzor. A kivonás visszavezethető az aritmetikai negálás és összeadás kombinációjára, ez szintén egyszerű feladatnak számít a processzorok számára. A szorzás sokkal összetettebb feladat, az általános célú processzoroknak amelyek összeadás sorozatával valósítják meg a szorzást erre több száz órajelet kell elhasználniuk. Az `5x DSP volt egyike az első proceszoroknak amely a 16x16 bites, előjeles szorzás elvégzésére hardveres szorzóegységet alkalmazott. Ez a szorzóegység a 32 bites előjeles eredményt egyetlen órajel alatt állítja elő. A hardveres szorzó és ALU egység összekapcsolásával lehetővé vált az (1) képlet által előírt műveletsor egyetlen órajel alatt való elvégzésére. Ez az utasítás a MAC (Multiply and Accumulate) mnemonikus nevet kapta az `5x asszemblyben. A CALU és a skálázók Az 1. ábrán megfigyelhető, hogy az CALU-ba (##Central Arithmetical Logical Unit központi aritmetikai logikai egység##) tartó, abban mozgó és onnan távozó adatoknak, változatos léptetésekre képes skálázókon kell áthaladniuk. Ilyen elemeket az általános célú processzorok ALU-jában (##Arithmetical Logical Unit aritmetikai logikai egység##) nem lelünk. A bitek balra léptetése esetén a bitek az eggyel nagyobb helyiértékű helyre íródnak be. A bitek jobbra léptetése esetén a bitek az eggyel kisebb helyiértékű helyre íródnak be. Általános esetben, egy adat 1 bittel való balra léptetése kettővel való szorzást, míg 1 bittel való jobbra léptetése kettővel való osztást jelent. A léptetések során kitüntetett figyelmet kap a legmagasabb helyiértékű bit MSB (##Most Significant Bit##) és a legkisebb helyiértékű bit LSB (##Least Significant Bit##). Ez alapján két féle léptetés létezik: logikai ebben az esetben (a léptetés irányától függően) az LSB vagy MSB oldalon 0 érték lép be, míg a másik oldalon levő bit elveszik, úgymond kiesik a regiszterből, aritmetikai ilyenkor az előjel megőrzése céljából, az MSB értéke visszamásolódik az MSB-be; az LSB pedig elveszik (jobbra léptetés) vagy 0-val töltődik fel (balra léptetés). Az `5x DSP skálázó egységei, az előrelátott szerepüktől függően, programozhatóan képesek logikai és aritmetikai léptetésre is. Ezek a különleges skálázó egységek az `5x DSP számára, hozzáadott processzoridő felhasználása nélkül teszik lehetővé a(z): aritmetikai skálázást ez fix pontos aritmetikai műveleteknél és előjeles számoknál jelent előnyt,

bit kiemelést előjeles szorzásnál megduplázódik az előjelbit, ezt szükséges lehet eltávolítani, megnövelt pontosságú aritmetikát szoftveres eljárások hozhatók létre a 32, 64 vagy akár több bites összeadás, kivonás és szorzás megvalósítására, túlcsordulás megelőzést jelfeldolgozás esetében ez a telítés, levágás és torzítás megakadályozását jelenti.

Példák az `5x CALU használatára Megoldások a ##7.2.2 filehez tartozo programreszek## nevű alkönyvtárban találhatók meg. 1. példa aritmetikai logikai egység## végezhető alapműveleteket 16bites előjeles egészek esetében. A bemutatásra kerülő műveletek: összeadás, kivonás, maradékos osztás valamint hardveres és léptetős szorzás. 2. példa aritmetikai logikai egység## elvégezhető, bővített aritmetikát. Ebben az esetben két 64bites szám összeadását. (forrás: (3)). W = X + Y, ahol mindhárom szám négy 16 bites adatként van tárolva a memóriában. 3. példa aritmetikai logikai egység## elvégezhető, bővített aritmetikát. Ebben az esetben két 64bites szám kivonását. (forrás: (3)). W = X - Y, ahol mindhárom szám négy 16 bites adatként van tárolva a memóriában. 4. példa aritmetikai logikai egység## elvégezhető, bővített aritmetikát. Ebben az esetben két 32bites előjeles szám szorzását. (forrás: (3)). W = X + Y, ahol a szorzandók 32 bitesek, így két 16 bites adatként vannak tárolva, míg a szorzat 64 bites, így négy 16 bites adatként van tárolva a memóriában. Az eredményt több művelet egymásutáni elvégzése (2. ábra) útján kapjuk. Ez a szorzási algoritmus egy előjeltelen 16x16 bites szorzást, három előjeles 16x16 bites szorzást és öt 32+ bites összeadást foglal magában. Az összeadások zöme a szorzással egyidőben történnek a CALU-ban, ami az APAC és MPYA assembly mnemonikus utasítások használatával válik lehetségessé.

5. példa 2. ábra két előjeles 32 bites szám szorzásának menete A 16 bites számok osztásának menete megtekinthető a (3) irodalom 2.8.4. fejezetében. 6. példa Összeadás, kivonás és szorzás műveletek q15 alakú előjeles valós számokkal. Az `5x DSP processzor egész számokkal való műveletekre van előrelátva, de a gyakorlatban szükség van a valós számokkal való munkára. Ennek elősegítésére, a processzorhoz kapott fordító- és fejlesztő programok támogatják a fixpontos valós számokkal való munkát. Az adatmemóriában deklarálva lett három-három pozitív és negatív valós szám. Az olvashatóság kedvéért váltakozva színezett programrészletek a következőket mutatják be: A1 egy nagy pozitív és egy kis negatív valós szám összeadása, A2 egy kis pozitív és egy nagy negatív valós szám összeadása, S1 egy negatív és egy pozitív valós szám különbsége, S2 két negatív valós szám különbsége, M1 két pozitív valós szám szorzása, M2 egy pozitív és egy negatív valós szám szorzása.

Amint látható a qxx alakban ábrázolt előjeles valós számokkal való összeadás és kivonás esetén nincs szükség semmilyen külön előkészületre vagy utólagos munkálatokra. A CALU ##Central Arithmetical Logical Unit központi aritmetikai logikai egység## azonosan kezeli ezeket és az előjeles számokat. A szorzás esetében (M1 és M2 kódrészlet) viszont látható, hogy a fixpontos számok szorzására jellemző előjelbit kétszereződés lép fel, úgy pozitív mint negatív szorzat esetében is. Az előjel kétszereződést egy aritmetikai balra léptetéssel lehet elhárítani, amit az utóskálázó végez el. Erre a két kódrészletnél a mnemonikus kód után írt,1 operandus ad utasítást a skálázónak.