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

Hasonló dokumentumok
2. Fejezet : Számrendszerek

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

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

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

Assembly programozás: 2. gyakorlat

Harmadik gyakorlat. Számrendszerek

Fixpontos és lebegőpontos DSP Számrendszerek

Segédlet az Informatika alapjai I. című tárgy számrendszerek fejezetéhez

(jegyzet) Bérci Norbert szeptember 10-i óra anyaga. 1. Számrendszerek A számrendszer alapja és a számjegyek

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}

LEBEGŐPONTOS SZÁMÁBRÁZOLÁS

Dr. Oniga István DIGITÁLIS TECHNIKA 2

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

Pótvizsga anyaga 5. osztály (Iskola honlapján is megtalálható!) Pótvizsga: beadandó feladatok 45 perces írásbeli szóbeli a megadott témakörökből

Negatív alapú számrendszerek

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

Kedves Diákok! A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

Digitális technika VIMIAA hét

ÁTVÁLTÁSOK SZÁMRENDSZEREK KÖZÖTT, SZÁMÁBRÁZOLÁS, BOOLE-ALGEBRA

Digitális technika VIMIAA hét

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

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

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

Aritmetikai utasítások I.

Digitális technika VIMIAA02 1. EA

Digitális technika VIMIAA01

Programozott soros szinkron adatátvitel

Számrendszerek. Bináris, hexadecimális

Digitális technika VIMIAA01

5. Fejezet : Lebegőpontos számok. Lebegőpontos számok

Bevezetés az informatikába Tételsor és minta zárthelyi dolgozat 2014/2015 I. félév

Vektorok. Octave: alapok. A fizika numerikus módszerei I. mf1n1a06- mf1n2a06 Csabai István

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

5. Fejezet : Lebegőpontos számok

Feladat: Indítsd el a Jegyzettömböt (vagy Word programot)! Alt + számok a numerikus billentyűzeten!

5.1.4 Laborgyakorlat: A Windows számológép használata hálózati címeknél

Informatikai Rendszerek Alapjai

1. Halmazok, számhalmazok, alapműveletek

I+K technológiák. Számrendszerek, kódolás

Számrendszerek. Átváltás a számrendszerek között: Általában 10-es számrendszerből váltunk tetszőlegesre és tetszőlegest 10-esre.

Informatika érettségi vizsga

A feladatok legtöbbször egy pontot érnek. Ahol ettől eltérés van, azt külön jelöljük.

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

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

Assembly Utasítások, programok. Iványi Péter

Hardverközeli programozás 1 1. gyakorlat. Kocsis Gergely

DIGITÁLIS TECHNIKA I BINÁRIS SZÁMRENDSZER BEVEZETŐ ÁTTEKINTÉS BINÁRIS SZÁMRENDSZER HELYÉRTÉK. Dr. Lovassy Rita Dr.

Műveletek lebegőpontos adatokkal

Matematikai alapok. Dr. Iványi Péter

Számrendszerek. A római számok írására csak hét jelt használtak. Ezek segítségével, jól meghatározott szabályok szerint képezték a különböz számokat.

3. óra Számrendszerek-Szg. történet

A számrendszerekrl általában

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

Összeadás BCD számokkal

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

3. óra Számrendszerek-Szg. történet

Programozás II. Segédlet az első dolgozathoz

b) Melyikben szerepel az ezres helyiértéken a 6-os alaki értékű szám? c) Melyik helyiértéken áll az egyes számokban a 6-os alaki értékű szám?

TANMENETJAVASLAT. Dr. Korányi Erzsébet MATEMATIKA. tankönyv ötödikeseknek. címû tankönyvéhez

A SZÁMFOGALOM KIALAKÍTÁSA

Hatványozás. A hatványozás azonosságai

HHF0CX. k darab halmaz sorbarendezésének a lehetősége k! Így adódik az alábbi képlet:

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

1. fogalom. Add meg az összeadásban szereplő számok elnevezéseit! Milyen tulajdonságai vannak az összeadásnak? Hogyan ellenőrizzük az összeadást?

Processzor (CPU - Central Processing Unit)

MATEMATIKA. 1. osztály

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

Nagypontosságú aritmetika I.

;3 ; 0; 1 7; ;7 5; 3. pozitív: ; pozitív is, negatív is: ;

C programozás. { Márton Gyöngyvér, 2009 } { Sapientia, Erdélyi Magyar Tudományegyetem }

Bevezetés az informatikába

Kombinációs hálózatok Számok és kódok

Gyakorló feladatok. /2 Maradék /16 Maradék /8 Maradék

HALMAZOK. A racionális számok halmazát olyan számok alkotják, amelyek felírhatók b. jele:. A racionális számok halmazának végtelen sok eleme van.

KOVÁCS BÉLA, MATEMATIKA I.

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

1. forduló Az adat, az információ és a hír jelentése és tartalma. A kommunikáció

Formális nyelvek és automaták

Bevezetés az informatikába

Számrendszerek. 1. ábra: C soportosítás 2-es számrendszerben. Helyiértékek: A szám leírva:

Számelmélet Megoldások

(jegyzet) Bérci Norbert szeptember i óra anyaga A számrendszer alapja és a számjegyek Alaki- és helyiérték...

1. tétel. A kommunikáció információelméleti modellje. Analóg és digitális mennyiségek. Az információ fogalma, egységei. Informatika érettségi (diák)

Komputeralgebrai Algoritmusok

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

Matematika (alsó tagozat)

Labor gyakorlat Mikrovezérlők

IT - Alapismeretek. Feladatgyűjtemény

Mintavételes szabályozás mikrovezérlő segítségével

Mátrixok, mátrixműveletek

Az Informatika Elméleti Alapjai

10-es számrendszer, 2-es számrendszer, 8-as számrendszer, 16-os számr. Számjegyek, alapműveletek.

Matematika 5. osztály Osztályozó vizsga

Numerikus matematika. Irodalom: Stoyan Gisbert, Numerikus matematika mérnököknek és programozóknak, Typotex, Lebegőpontos számok

Jelátalakítás és kódolás

DIGITÁLIS TECHNIKA I KÓD IRODALOM SZIMBÓLUMKÉSZLET KÓDOLÁS ÉS DEKÓDOLÁS

3. OSZTÁLY A TANANYAG ELRENDEZÉSE

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

A digitális analóg és az analóg digitális átalakító áramkör

Amit a törtekről tudni kell 5. osztály végéig Minimum követelményszint

Átírás:

7.2.1. A racionális számok és a fixpontos processzorok numerikus felületének a kapcsolata A valósidejű jel- és képfeldolgozás területére eső alkalmazások esetében legtöbbször igény mutatkozik arra, hogy a mikrokontrollert ne C nyelven programozzuk, hanem assembly alatt. Ezek a feladatok általában numerikus jellegűek valamint a műveletekbe bejövő adatok fix aritmetikával rendelkeznek és különböző pontossági osztályba tartoznak. Az ilyen nyers adatokat kezelni kell és a művelet végén keletkező adatokat, viszont értelmezni kell. Ennek az alfejezetnek az a célja, hogy ebben segítsen. Először röviden felvezetjük ennek a kérdéskörnek a matematikai alapjait, majd egy pár példán keresztül a problémakört meg fogjuk világítani. A 7.2 fejezet akkor nyer értelmet, amikor következő probléma típusokat kell megoldani: - FPGA beágyazott környezetben kell kiépíteni fix pontos aritmetikával adott adatszélességű DSP feldolgozó magot. Vagy - be kell ágyazni assembly nyelvű valós idejű részt, amit fixpontos aritmetikával rendelkező DSP processzorral kell megoldanunk. Ebben sokat segíthet ennek az anyagnak az ismerete, a nem villamosmérnök előképzettségű fejlesztőknek. Segíti megérteni, hogy működik egy beágyazott DSP mag és miként kell megépíteni egy programozható beágyazott felületet, amit a későbbiekben akár egy sajátfejlesztésű assemblyvel is programozhat a fejlesztő vagy felhasználója a környezetnek. Ebben a fejezetrészben sok minden ismert a jegyzetet használóinak, de szerettük volna összefoglalni és olyan szemszögből megvilágítani, hogy a további részek értelmet kapjanak. A számok A szám matematikai fogalom, a mennyiségek leírására szolgál. A számokat tulajdonságaik alapján hamazokba sorolhatjuk. A legelterjetteb halmazba sorolás (1. ábra): természetes, egész, racionális és valós számok halmazát különböztet meg. Ha nem hangsúlyozunk ki mást, számon általában valós számot kell érteni. A számok számossága végtelen! (megj: a 0 számot az alkalmazott definiciótól függően vagy a természetes, vagy az egész számok közé soroljuk). 1. ábra számhalmazok A számok számjegyekből állnak. A helyiértékes alakban felírt számok esetében, egy számjegy értéke függ a számban elfoglalt helyétől. Például a 53, 347 és 131 számok mindegyikében szerepel a 3-as számjegy, de más-más helyen. Ezért értéke (sorban): 3 db egyesnek, 3 db százasnak s 3 db tízesnek felel meg, amennyiben a számokat tízes számrendszerben olvassuk le. Amikor helyi értékes alakban van felírva egy szám, akkor az általa képviselt érték helyes leolvasásához elengedhetetlen, hogy ismerjük a számrendszert, amelyben fel lett írva.

Ugyanis a számrendszer alapja határozza meg a felhasználható számjegyek számát és az egyes pozíciók helyi értékét. Az emberek a hétköznapi életben a 10-es alapú számrendszert használják. Ebben a számrendszerben 10 számjegyet különböztetünk meg: 0, 1, 2, 3, 4, 5, 6, 7, 8 és 9. Ugyanekkor az érték egész része a tizedesponttól balra helyezkedik el, a törtrésze pedig jobbra. A tizedesponttól balra a helyi értékek sorban a 10 hatványai: 10 0 = 1, 10 1 = 10, 10 2 = 100, 10 3 = 1000 és így tovább, amit egyeseknek, tízeseknek, százasoknak és ezreseknek nevezünk. A tizedesponttól jobbra levő helyiértékek a 10 hatványainak recoprokai: 10-1 = 1/10 = 0.1, 10-2 = 1/100 = 0.01, 10-3 = 1/1000 = 0.001 és így tovább, amit tizednek, századnak és ezrednek nevezünk. A tízes alapú számrendszer mellett, történelmi vagy gyakorlati okokból más alapú számrendszerekkel is találkozhatunk pl.: 2, 12, 16, 60. A 2-es alapú más néven bináris számrendszer a digitális korral és a számítógépekkel lelt alkalmazásra. Ennek az alaknak csak két számjegye a 0 és 1- es van. A sokjegyes bináris számok leírása és megjegyzése körülményessége hozta életre a 16-os alapú számrendszer más néven hexadecimális használatát. Ebben a számrendszerben 16 külön egykarakterű jelnek kell jelképeznie az egyes számjegyeket. Ezt a 0-9 számjegyek és A-F betűk felhasználásával érték el. A 12-es számrendszer más néven duodecimális - ma már nem használatos, nyelvi emlékét az angol és német nyelvek őrzik a: eleven, twelve és elf és zwölf számjegyeikkel, valamint a 12 1 = 12 = dozen (tucat), 12 2 = 144 = gross és 12 3 = 1728 = grand gross helyi érték elnevezésekkel. Eredete valószínűleg Mezopotámia. Ebben a számrendszerben számolva könnyen lehet kisebb mennyiségű árút 2-es, 3- as, 4-es és 6-os csoportra bontani. A 60-as számrendszer más néven sexagesimal eredete a Sumér birodalomban (i.e. III.évezred) keresendő. Napjainkban szögméréshez, időméréshez és földrajzi koordináták jelöléséhez használatos. A 60 tizenkét osztóval rendelkezik: 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60, ezért az ebben a számrendszerben felírt számokat nagyon jól lehet egyenlő egész részekre osztani. Pl. egy órát 2, 3, 4, 6 vagy 12 részre osztva 30, 20, 15, 10 vagy 5 perces részek keletkeznek. A számok ábrázolása számítógépekben A modern digitális számítógépek felépítésükből adódóan a kettesalapú, bináris számrendszert használják az adatok és programok tárolására. A számítástechnikában az információ alapegysége a bit, amit kettes számrendszerben 0-val vagy 1-el lehet ábrázolni. Ahhoz hogy több információt lehessen ábrázolni, össze lehet kapcsolni több bitet. Minden egyes újabb bit hozzáadásával megkétszereződik a lehetséges kombinációk száma (1. táblázat). n - bitek száma elnevezés kombináció száma = 2 n 1 bit 2 2 4 3 8 4 nibble 16 8 byte 256 10 1024 16 word 65536 24 16777216 32 longword 4294967296

1. táblázat a bitek száma és a lehetséges kombinációk száma A számok számossága végtelen, de a processzorok regisztereinek, memóriájának, akumulátorának és ALU ##Arithmetical Logical Unit## bitszáma véges, általában 16 vagy 32 bit. Ebből következik, hogy a kombinációk száma, avagy az ábrázolható számok tartománya is véges. A természetes számok ábrázolása A proceszorok a természetes számokat a kettes számrendszer helyiértéke szerint tárolják. Az első 17 helyiérték a követkző: n 2 n n 2 n n 2 n 0 1 6 64 12 4096 1 2 7 128 13 8192 2 4 8 256 14 16384 3 8 9 512 15 32768 4 16 10 1024 16 65536 5 32 11 2048 2. táblázat a bináris számrendszer helyiértékei (a 2 hatványai) A 2. táblázat adatai szerint egy 16 bites regiszterben/akumulátorban a természetes számokat [0, 2 16-1], avagy [0, 65535] tartományban lehet egyes lépésekben ábrázolni. A 3. táblázatban egy nibble 4 bit minden lehetséges kombinációja szerepel. A négy biten összesen 16 különböző kombinációt lehet ábrázolni. A bináris kombinációk tízes- és tizenhatos számrendszerben leolvasva a második oszlopban tekintehetőek meg. 2 3 2 2 2 1 2 0 DEC HEX 2 3 2 2 2 1 2 0 DEC HEX 0 0 0 0 0 0 1 0 0 0 8 8 0 0 0 1 1 1 1 0 0 1 9 9 0 0 1 0 2 2 1 0 1 0 10 A 0 0 1 1 3 3 1 0 1 1 11 B 0 1 0 0 4 4 1 1 0 0 12 C 0 1 0 1 5 5 1 1 0 1 13 D 0 1 1 0 6 6 1 1 1 0 14 E 0 1 1 1 7 7 1 1 1 1 15 F 3. táblázat 4 biten ábrázolt egész számok 10-es és tízenhatos számrendszerben. A bináris szám egész számként történő leolvasását képlettel így lehet kifejteni: x = N i= 0 i a i 2 (1) Ezeket a számokat felsőbb programozási nyelvekben az unsigned int névvel szokták illetni.

Az egész számok ábrázolása A processzorok az egész számokat, kettes komplemens alakban tárolják. Jellegzetes, hogy a pozitív számok legjelentősebb bitje (MSB ##Most Significant Bit##) 0, mig a negatívoké 1 értéket vesz fel. Mivel a bitek száma ugyanannyi marad, a kombinációk száma sem változik. Csak az értéktartomány tolódik el felével balra a negatív számok irányába. Egy 16 bites regiszterben/akumulátorban az egész számokat [-2 15, 2 15-1], avagy [-32768, 32767] tartományban lehet egyes lépésekben ábrázolni. A 4. táblázatban egy nibble 4 bit minden lehetséges kombinációja szerepel. A négy biten összesen 16 különböző kombinációt lehet ábrázolni. A bináris kombinációk tízes számrendszerben leolvasva a második oszlopban tekintehetőek meg. -2 3 2 2 2 1 2 0 DEC (Z) -2 3 2 2 2 1 2 0 DEC (Z) 0 0 0 0 0 1 0 0 0-8= -8 +0 0 0 0 1 1 1 0 0 1-7= -8 +1 0 0 1 0 2 1 0 1 0-6= -8 +2 0 0 1 1 3 1 0 1 1-5= -8 +3 0 1 0 0 4 1 1 0 0-4= -8 +4 0 1 0 1 5 1 1 0 1-3= -8 +5 0 1 1 0 6 1 1 1 0-2= -8 +6 0 1 1 1 7 1 1 1 1-1= -8 +7 4. táblázat 4 biten ábrázolt egész számok 10-es és tízenhatos számrendszerben. A bináris szám egész számként történő leolvasását képlettel így lehet kifejteni: N 1 i= 0 N i x = a N 2 + a 2 (2) Ezeket a számokat felsőbb programozási nyelvekben a signed int névvel szokták illetni. Az egész számokkal való aritmetikai műveletek (összeadás, kivonás és szorzás) nagyságrendekkel gyorsabbak a lebegőpontos műveleteknél. Amíg az eredmény benne marad az ábrázolható tartományban, a számítások gyakorlatilag hiba és kerekítésmentesek. A DSP proceszorok zömét az olcsóbban előállítható, kisebb komplexitású, fix-pontos számításokra előrelátott processzorok teszik ki. Amennyiben az algoritmus hozzá van igazítva az egész számokkal való műveletekhez ezek a processzorok hatékonyabbak a lebegőpontos számításokat végző processzoroknál. A racionális számok ábrázolása A valós számok két egész szám hányadosa. Ezen számok ábrázolásakor a programozó gondolatban elmozdítja a bináris pontot balra vagy jobbra. A bináris ponttól balra továbba is 2 hatványai jelzik a helyiérték súlyzását (2. táblázat), míg a jobbra elhelyezkedőek a 2 reciporok hatványaival bírnak (5. táblázat). i

A bináris számrendszer, bináris pontjától jobbra levő helyiértékek a követkzőek: n 2 -n n 2 -n n 2 -n 1 0.5 6 0.015625 11 0.00048828125 2 0.25 7 0.0078125 12 0.000244140625 3 0.125 8 0.00390625 13 0.0001220703125 4 0.0625 9 0.001953125 14 0.00006103515625 5 0.03125 10 0.0009765625 15 0.000030517578125 5. táblázat a bináris számrendszer helyiértékei (a 2 hatványai) A számítógépeken ábrázolt racionális számok jelzése Qxx ahol az xx érték jelzi, hogy mennyi helyet lett eltolva a bináris pont balra. Így pl. a Q15 azt jelenti hogy a bináris pont 15 helyet lett eltolva balra. Mivel 2 15 = 32768, ekkor az ábrázolt racionális értéket úgy kapjuk meg, hogy leolvassuk a bináris alak által ábrázolt egész számot, amit elosztunk 32768-al. Képlettel leírva az egész számú ábrázolás és a racionális számok közötti kapcsolat: Z Qn 2 n = és Z 2 n = Q n (3) 2. ábra A Q15, Q14 és Q13 helyiértékei és a bináris pont elhelyezkedése 1. példa : Olvassuk le az A és B 16 bites Q15-ös számot, ha A = 0010 0000 0000 0000 és B = 1100 0000 0000 0000. Az A szám egészként 2 13 = +8192 őt jelent, ha ezt elosztjuk 2 15 = 32768-al akkor 0.25-öt kapunk. A B szám egészként -2 15 +2 14 = -32768+16384 = -16394-et jelent, ha ezt elosztjuk 2 15 = 32768-al akkor -0.5-öt kapunk.

Az 5x assembly eszköz hasznos szolgáltatása a.qxx és.lqxx alakú fordítási parancsok, amelyek lehetővé teszik 16 és 32 bites fix-pontos számok inicializált elhelyezését a memóriában (3.ábra). Ennek az a jelentősége, hogy közvetlenül az assembly forráskódba vihetjük be tizedes számokat, amit a fordító a megfelelő alakban fog tárolni. Természetesen a Q formátumok miatt az átalakítás gyakran a pontosság csökkenésével jár a korlátolt tárolási lehetőségek miatt. Ezt mindig a fejlesztőnek kell mérlegelnie. A 6. ábrán látható példában a 0.25 valós szám, mint 0x2000 lett ábrázolva Q15 alakban, a 9 valós szám, pedig mint 0x00000900 lett ábrázolva LQ24 alakban (3. irodalom). 3. ábra Q15 és Q24 számok inicializált elhelyezése az adatmemóriában 2. példa Gyakorlati példa `5x processzor assemblyjében írt Q15-ösz számok összeadására. A megjegyzésekben láthatóak a kiinduló, a rész- valamint a végeredmény úgy racionális alakban mint a bináris érték HEX alakban. ; Program a DSP osszeadasanak a kivizsgalasara ; pozitiv es negativ q15-os formatum.mmregs.ds 0f00h S1.q15 0.1 ; 0CCCh S2.q15 0.5 ; 4000h S3.q15-0.25 ; 0E000h S4.q15-0.0600 ; 0F852h S5.q15 0.000061035158 ; 0002h S6.q15 0.000030517579 ; 0001h.ps 0a00h.entry.include "TMSINIT.ASM" LOOP LDP #S1 LACC S3 ; ACC=- 0.25 0E00h ADD S2 ; ACC=- 0.25 + 0.5 = 0.25 2000h ADD S4 ; ACC= 0.25 + ( -.0600 ) = 0.19 1852h ADD S1 ; ACC= 0.19 + 0.1 = 0.29 251Eh B LOOP.end

3. példa Gyakorlati példa `5x processzor assemblyjében írt Q15-ösz számok kivonására. A megjegyzésekben láthatóak a kiinduló, a rész- valamint a végeredmény úgy racionális alakban mint a bináris érték HEX alakban. ; Program a DSP kivonasanak a kivizsgalasara ; pozitiv es negativ q15-os formatum.mmregs.ds 0f00h S1.q15 0.1 ; 0CCCh S2.q15 0.5 ; 4000h S3.q15-0.25 ; 0E000h S4.q15-0.0600 ; 0F852h S5.q15 0.000061035158 ; 0002h S6.q15 0.000030517579 ; 0001h.ps 0a00h.entry.include "TMSINIT.ASM" LOOP LDP #S1 LACC S3 ; ACC=- 0.25 0E00h SUB S2 ; ACC=- 0.25-0.5 =-0.75 0A000h SUB S4 ; ACC= -0.75 - ( -.0600 ) =-0.69 0A7AEh SUB S1 ; ACC= -0.69-0.1 =-0.79 9AE2h B LOOP.end (1) Stoyan Gisbert : Numerikus Matematika Mérnököknek és programozóknak, Typotex Budapest, 2007, ISBN 978 963 9664 41 8 (3) A DSK fejlesztőlap leírása: TMS320C5x DSK Users Guide.pdf ##LINK: http://www.ti.com/lit/ug/spru101a/spru101a.pdf ##