Struktura a architektura počítačů

Podobné dokumenty
Struktura a architektura počítačů

Struktura a architektura počítačů (BI-SAP) 6

v aritmetické jednotce počíta

Architektury počítačů

Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Základní principy zobrazení čísla Celá čísla s pevnou řádovou čárkou Zobrazení reálných čísel Aritmetika s binárními čísly

Struktura a architektura počítačů (BI-SAP) 5

Čísla v plovoucířádovéčárce. INP 2008 FIT VUT v Brně

Y36SAP. Osnova. Číselné soustavy a kódy, převody, aritmetické operace Y36SAP Poziční číselné soustavy a převody.

Y36SAP - aritmetika. Osnova

Ahoj mami. Uložení dat v počítači. Příklady kódování dat. IAJCE Přednáška č. 4

E. Pohyblivářádováčárka

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

Mikroprocesorová technika (BMPT)

Fz =a z + a z +...+a z +a z =

Principy počítačů I Reprezentace dat

3 Jednoduché datové typy Interpretace čísel v paměti počítače Problémy s matematickými operacemi 5

Jak v Javě primitivní datové typy a jejich reprezentace. BD6B36PJV 002 Fakulta elektrotechnická České vysoké učení technické

Aritmetické operace a obvody pro jejich realizaci

Algoritmy I. Číselné soustavy přečíst!!! ALGI 2018/19

PJC Cvičení #2. Číselné soustavy a binární reprezentace proměnných

C2115 Praktický úvod do superpočítání

Principy počítačů a operačních systémů

Čísla a číselné soustavy.

Popis instrukční sady - procesory PIC Aritmetické a logické operace

B. Sčítání,odčítání adoplňkovýkód

Čísla, reprezentace, zjednodušené výpočty

Pohyblivářádováčárka

1. Chyby vstupních dat metody převedení úlohy na numerickou (řád použité metody) zaokrouhlovací reprezentace čísel v počítači

Číselné soustavy. Binární číselná soustava

ČÍSELNÉ SOUSTAVY PŘEVODY

Popis instrukční sady procesoru ADOP

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

REPREZENTACE DAT. Principy počítačů I. Literatura. Literály. Typy dat. Literály. Čísla Instrukce. Znaky. Logické hodnoty

Aritmetické operácie v rôznych číselných sústavách. Ľudmila MACEKOVÁ, KEMT-FEI-TUKE, sep. 2017

Pokročilá algoritmizace amortizovaná složitost, Fibonacciho halda, počítačová aritmetika

Pohled do nitra mikroprocesoru Josef Horálek

Číselné vyjádření hodnoty. Kolik váží hrouda zlata?

Informatika Datové formáty

Algoritmy a datové struktury

Reprezentace dat. INP 2008 FIT VUT v Brně

Architektura počítačů Logické obvody

Čísla a aritmetika. Řádová čárka = místo, které odděluje celou část čísla od zlomkové.

Čísla, reprezentace, zjednodušené výpočty

Architektura počítačů

Násobení. MI-AAK(Aritmetika a kódy)

Datové typy a jejich reprezentace v počítači.

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Architektura počítačů Logické obvody

BI-JPO (Jednotky počítače) Cvičení

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Číselné soustavy. Prvopočátky. Starověký Egypt a Mezopotámie. Již staří Římané

Procesor z pohledu programátora

Aplikovaná numerická matematika

Čísla v počítači Výpočetní technika I

Strojový kód. Instrukce počítače

Floating Point. Jak je reprezentovaný a proč někdy nefunguje. 2. června 2013

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

35POS 2010 Počítačové systémy 1 Úvod, jazyk C Doc. Ing. Bayer Jiří, Csc. Ing. Pavel Píša

PB002 Základy informačních technologií

Principy počítačů. Prof. RNDr. Peter Mikulecký, PhD.

Přednáška 2: Čísla v počítači. Práce s počítačem. Číselné soustavy. Převody mezi soustavami. Aritmetické operace. Uložení čísel v paměti počítače

VY_32_INOVACE_CTE_2.MA_04_Aritmetické operace v binární soustavě Střední odborná škola a Střední odborné učiliště, Dubno Ing.

8. Laboratoř: Aritmetika a řídicí struktury programu

Racionální čísla, operátory, výrazy, knihovní funkce

VÝRAZY výrazy = operandy prokládané operátory, vyhodnocované podle priority operátorů

Kódováni dat. Kódy používané pro strojové operace

Princip funkce počítače

Dělení. INP 2008 FIT VUT v Brně

Architektura počítačů

Vícebytová celočíselná aritmetika

- speciální symboly + - * / =., < > <> <= >= a další. Klíčová slova jsou chráněnými útvary, které nelze použít ve významu identifikátorů.

Číselné soustavy. Ve světě počítačů se využívají tři základní soustavy:

Úloha 1 Spojte binární obrazy na obrázku s hodnotami, které reprezentují.

UMÍ POČÍTAČE POČÍTAT?

KALKULÁTORY EXP LOCAL SIN

Převod Bin do BCD pomocí Hornerova schématu

Číselné soustavy. Jedná se o způsob reprezentace čísel.

Převody mezi číselnými soustavami

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Algoritmizace a programování

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

3. Aritmetika nad F p a F 2

Dělení. MI-AAK(Aritmetika a kódy)

MATA Př 3. Číselné soustavy. Desítková soustava (dekadická) základ 10, číslice 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Jak do počítače. aneb. Co je vlastně uvnitř

UNIVERZITA PARDUBICE. Fakulta elektrotechniky a informatiky. Vybrané problémy výpočtů na PC s pohyblivou řádovou čárkou Nomindalai Naranbaatar

Programování v jazyce C pro chemiky (C2160) 12. Specifické problémy při vývoji vědeckého softwaru

Operace ALU. INP 2008 FIT VUT v Brně

Racionální čísla, operátory, výrazy, knihovní funkce

Principy cpypočítačůčů a operačních systémů

P2 Číselné soustavy, jejich převody a operace v čís. soustavách

Assembler - 2.část. poslední změna této stránky: Zpět

LEKCE 6. Operátory. V této lekci najdete:

Program "Světla" pro mikropočítač PMI-80

a operačních systémů

ARITMETICKÉ OPERACE V BINÁRNÍ SOUSTAVĚ

Kubatova Y36SAP procesor - control unit obvodový a mikroprogramový řadič RISC Y36SAP-control unit 1

RISC a CISC architektura

Transkript:

Struktura a architektura počítačů Aritmetické operace Pevná a pohyblivá řádová čárka České vysoké učení technické Fakulta elektrotechnická Ver..2 J. Zděnek 23

Aritmetické operace pevná řádová čárka Pevná řádová čárka (Fixed Point) Řádová čárka má vzhledem k řádové mřížce pevně definovanou pozici Nejčastěji používané formáty (v doplňkovém kódu): Integer (celá čísla) Př. Integer6 Fraction (čísla menší než ) Značení Fx.y nebo Qx.y, kde x je počet řádových pozic před řádovou čárkou (n+), y pak počet pozic za řádovou čárkou (m) Nejčastěji se používá formát F.y, kdy před řádovou čárkou je pouze znaménkový bit (čísla v doplňkovém kódu) Př. i --2... -5 Fraction F.5 n, m5 A7B4SAP Struktura a architektura počítačů - Aritmetické operace 2

Aritmetické operace pevná řádová čárka Pevná řádová čárka (Fixed Point) shrnutí: Procesor řádovou čárku nesleduje (sledovat ji musí programátor) Procesor pracuje pouze nad bitovými obrazci Čísla bez znaménka (unsigned) jsou v přímém binárním kódu Čísla se znaménkem (signed) jsou kódována v doplňkovém kódu (Twos s Complement Code) (též dvojkový nebo druhý doplněk) K výpočtu doplňkového kódu stačí operace NOT a + Odčítání je možné nahradit přičtením čísla v doplňkovém kódu A7B4SAP Struktura a architektura počítačů - Aritmetické operace 3

Aritmetické operace pevná řádová čárka Pevná řádová čárka (Fixed Point) - shrnutí Instrukční soubor procesoru obsahuje vždy alespoň operace: Sčítání, not, and, or, posuvy vlevo a vpravo Pomocí těchto operací se ostatní operace (odčítání, násobení, dělení) dají sestavit. Některé procesory mají přímo instrukce pro: Přičtení, odečtení (Increment, Decrement) Odčítání, Násobení, Dělení, Výpočet dvojkového doplňku (Negate, NEG), A7B4SAP Struktura a architektura počítačů - Aritmetické operace 4

Aritmetické operace pevná řádová čárka Pevná řádová čárka (Fixed Point) shrnutí: Důležité: Význam příznakových bitů (Flags, PSW, Status) pro aritmetické operace: Po aritmetických operacích (a některých dalších) se nastaví příznakové bity C, OV, AC, N, Z ve stavovém slově (Flags, PSW, Status) procesoru. Příznaky se použijí v dalších operacích: Pro spojení operací přesahujících šířku slova ALU V podmíněném větvení programu (podmíněné skoky), C (Carry) indikuje přenos z nejvyššího řádu použitého slova, pří odčítání má význam výpůjčky (borrow) z vyššího řádu. Používá se pro spojení operací sčítání a odčítání při šířce zpracovávaného slova větší než je šířka slova ALU. Indikuje přeplnění formátu u čísel bez znaménka. A7B4SAP Struktura a architektura počítačů - Aritmetické operace 5

Aritmetické operace pevná řádová čárka Pevná řádová čárka (Fixed Point) shrnutí: Důležité: Význam příznakových bitů (Flags, PSW, Status) pro aritmetické operace: OV (Overflow) sleduje přenos z nejvyššího a nejbližšího nižšího řádu použitého slova. Indikuje přeplnění formátu u čísel se znaménkem. OV C s xor C s- AC (Auxiliary Carry)(též DC) indikuje přenos mezi třetím a čtvrtým bitem slova (Některé procesory ho nemají). Používá se pro dekadickou korekci pří počítání s binárně kódovanými desítkovými čísly (BCD - Binary Coded Decimal Numbers). A7B4SAP Struktura a architektura počítačů - Aritmetické operace 6

Aritmetické operace pevná řádová čárka Pevná řádová čárka (Fixed Point) shrnutí: Důležité: Význam příznakových bitů (FLAGs, PSW, Status) pro aritmetické operace: Z (Zero) indikuje, že výsledek předchozí operace ALU je nulový. Z pokud je výsledek nula, jinak Z (tj. výsledek nebyl nula) N (Negative) sleduje hodnotu nejvyššího bitu použitého slova. N pokud je výsledek operace záporné číslo (v doplňkovém kódu). ALU nerozlišuje, zda programátor považuje zpracovávané hodnoty za číslo se znaménkem nebo bez znaménka. ALU nastaví vždy všechny příznakové bity dle jejich definice. Programátor pak musí zvolit pro další operace správné příznaky a ty testovat nebo jinak použít. A7B4SAP Struktura a architektura počítačů - Aritmetické operace 7

pic8f Family ALU and Multiplier A7B4SAP Struktura a architektura počítačů - Aritmetické operace 8

Výpočet dvojkového doplňku C( x) NOT( C( x)) + Př: C( x) x 6 2 x 6 C( x)? Výpočet: Kontrola: NOT( C( x)) C( x) 2 + 2 C( x) + ( C( x)) 2 2 A7B4SAP Struktura a architektura počítačů - Aritmetické operace 9

Sčítání čísla bez znaménka (kladná) Jednobitové sčítání (pravdivostní tabulka): D 2 3 4 5 6 7 a b c i c s s Př. Vícebitové sčítání (předpoklad C i ): 24 d b +7 d b 248 d b C s 25 d +8 d 258 d C s b b b Mimo formát: A7B4SAP Struktura a architektura počítačů - Aritmetické operace

Odečítání čísla bez znaménka (kladná) Jednobitové odčítání (pravdivostní tabulka) d i a i b i c i D 2 3 4 5 6 7 a i b i c i c s d i Př. Vícebitové odčítání (předpoklad C i, význam borrow ): 243 d 7 d 236 d b b b (borrow) C s A7B4SAP Struktura a architektura počítačů - Aritmetické operace

Přeplnění (Overflow) čísla se znaménkem U čísel se znaménkem je přeplnění (Overflow), tj. výsledek je mimo formát, indikováno nastavením příznakového bitu OV (Overflow). Bit OV je součástí stavového slova procesoru (PSW, Flags). Logika bitu OV musí sledovat přenos z posledního a ještě předposledního bitu formátu. OV C s xor C s- Odečítání pomocí dvojkového doplňku (Two s Complement) Tento způsob je použitý v počítači d x y x + ( y) x + ( NOT ( y) + ) A7B4SAP Struktura a architektura počítačů - Aritmetické operace 2

Přeplnění (Overflow) čísla se znaménkem Př: Přeplnění z formátu (M, zde formát +7,-8) 7 d b 7 d b d b C s C s- OV 4 d b 3 d b 7 d b x x C s C s- OV 4 d b 4 d b 8 d b C s C s- OV 4 d b 4 d b 8 d b x C s C s- OV 6 d b 3 d b 9 d b x C s C s- OV 4 d b 5 d b 9 d b x C s C s- OV A7B4SAP Struktura a architektura počítačů - Aritmetické operace 3

Sčítání a odčítání čísla se znaménkem Př. Sčítání a odčítání 4bitovou sčítačkou ve dvojkovém doplňku 73 d b b 73 d b b +27 d b b 27 d b b C s b C s b C s b C s b d x x b C s C s- b OV 46 d b C s C s- b OV 2 d b b 2 d b b +6 d b b 6 d b b C s b C s b C s b C s b 36 d b x C s C s- b OV 36 d b x C s C s- b OV A7B4SAP Struktura a architektura počítačů - Aritmetické operace 4

Násobení bez znaménka V desítkové soustavě (připomenutí): 43 x 246 3578 858 43 x 6. +572 43 x 4. +286 43 x 2. 2 3578 součet Zapisujeme přehledněji (Viz následující strana) Ve dvojkové soustavě (stejný princip): Př. 9 d x 6 d 54 d x x.2 + x.2 + + x.2 2 x.2 3 součet Zapisujeme přehledněji (Viz následující strana) A7B4SAP Struktura a architektura počítačů - Aritmetické operace 5

Násobení bez znaménka - postup V desítkové soustavě (připomenutí): 43 x 246 3578 858 43 x 6. +572 43 x 4. +286 3578 43 x 2. 2 součet Ve dvojkové soustavě (stejný princip): Př: 9 d x 6 d 54 d + + + x x.2 x.2 x.2 2 x.2 3 součet A7B4SAP Struktura a architektura počítačů - Aritmetické operace 6

Násobení bez znaménka - algoritmus uct a x b, (8 x 8 6 bits) UMul UMulInit: add a b count 8 UMulNextCycle:? count no yes b yes? LSB no add + shift bit count count- uct a x b A7B4SAP Struktura a architektura počítačů - Aritmetické operace 7

Násobení bez znaménka - příklad Př. 4 x 4 8 bitů Desítkově: a 7, b 4, p 7 x 4 28 Dvojkově: a b, b b, p? Init add a + + b Step ) shift logical right 2) shift logical right 3) add & shift logical right add + add shift logical right 4) 28 d A7B4SAP Struktura a architektura počítačů - Aritmetické operace 8

Násobení bez znaménka - realizace ; ****************************************************************** ; Unsigned multiplication algorithm ; ; 8 x 8 6 bit ; ; a, b E (, 255) ; ; inputs: addh, addl addh a multiplicand, addl ; H, L H, L b multiplier ; ; outputs: H, L uct ; ; affects: STATUS, WREG ; ;******************************************************************** #define BIT #define BIT7 7 #define F #define UMul_LOOP_CNT 9 A7B4SAP Struktura a architektura počítačů - Aritmetické operace 9

Násobení bez znaménka - realizace UMul: movlw UMul_LOOP_CNT ; Preset loop counter movwf loopctr UMulNextCycle: dcfsnz loopctr ; Run loop 8 times bra UmExit UmTestLsb: btfsc L, BIT bra UmAdd ; LSB bcf STATUS, C ; Clear C SLR only bra UmSar ; LSb UmAdd: movff addl, WREG ; Add multiplicand to partial uct addwf L, F movff addh, WREG addwfc H, F bra UmSar UmSar: ; Shift logical right, including C rrcf H ; Shift partial uct bit right rrcf L ; 6bit shift bra UMulNextCycle UmExit: return A7B4SAP Struktura a architektura počítačů - Aritmetické operace 2

Násobení se znaménkem - postup Čísla v doplňkovém kódu (Two s Complement) Př. 4 x 4 8 bitů Desítkově: a 3 b -5, p 3 x (-5) -5 Dvojkově: a b, b b, p? x + + + b partial sum x sign extension (not carry) xxxx xxx xxxx xx xxxx x Last step minus (+ two s complement) b -5 d A7B4SAP Struktura a architektura počítačů - Aritmetické operace 2

Násobení se znaménkem - postup Čísla v doplňkovém kódu (Two s Complement) Př. 4 x 4 8 bitů Desítkově: a 3 b 5, p 3 x 5 5 Dvojkově: a b, b b, p? x + + + b partial sum x sign extension (not carry) xxxx xxx xxxx xx xxxx x Last step minus (+ two s complement) b 5 d A7B4SAP Struktura a architektura počítačů - Aritmetické operace 22

Násobení se znaménkem - postup Čísla v doplňkovém kódu (Two s Complement) Př. 4 x 4 8 bitů Desítkově: a -3 b -5, p (-3) x (-5) 5 Dvojkově: a b, b b, p? x + + + b partial sum x sign extension (not carry) xxxx xxx xxxx xx xxxx x Last step minus (+ two s complement) b 5 d A7B4SAP Struktura a architektura počítačů - Aritmetické operace 23

Násobení se znaménkem - algoritmus uct a x b, (8 x 8 6 bits) SMul SMulInit: add +a sub a b SMulNextCycle: count 7 no? count yes b b yes? LSB no yes? LSB no add + sub + shift bit shift bit count count- uct a x b A7B4SAP Struktura a architektura počítačů - Aritmetické operace 24

Násobení se znaménkem - příklad Př. 4 x 4 8 bitů Desítkově: a 3, b -5, p 3 x (-5) -5 Dvojkově: a b, b b, p? Init: add +a + sub a + + b Pokračování na dalším snímku A7B4SAP Struktura a architektura počítačů - Aritmetické operace 25

Násobení se znaménkem - příklad Step ) add & shift arithm. right add shift arithm. right 2) add & shift arithm. right add shift arithm. right 3) shift arithm. right 4) sub & shift arithm. right sub (i.e. add a) shift arithm. right -5 d A7B4SAP Struktura a architektura počítačů - Aritmetické operace 26

Násobení se znaménkem - realizace ; ****************************************************************** ; Signed multiplication algorithm ; ; 8 x 8 6 bit ; ; a, b E (-28,27) ; ; inputs: addh,addl addh a multiplicand, addl ; subh,subl subh -a multiplicand, subl ; H,L H, L b multiplier ; ; outputs: H,L uct ; ; affects: STATUS, WREG ; ;******************************************************************** #define BIT #define BIT7 7 #define F #define SMul_LOOP_CNT 9 #define SMul_LAST_CYCLE A7B4SAP Struktura a architektura počítačů - Aritmetické operace 27

Násobení se znaménkem - realizace SMul: movlw SMul_LOOP_CNT ; Preset loop counter movwf loopctr SMulNextCycle: dcfsnz loopctr ; Run loop 8 times bra BmExit SmTestLsb: btfss L, BIT ;? multiply by bra SmSar ; yes, shift only movlw SMul_LAST_CYCLE cpfsgt loopctr ;?last cycle bra SmSub ; yes, subtract multiplicand bra SmAdd ; no, add multiplicand SmAdd: movff addl,wreg addwf L, F movff addh, WREG addwfc H, F movff addh, WREG bra SmSar A7B4SAP Struktura a architektura počítačů - Aritmetické operace 28

Násobení se znaménkem - realizace SmSub: movff subl,wreg addwf L, F movff subh, WREG addwfc H, F movff subh, WREG bra SmSar SmSar: ; Extend correct sign bsf STATUS, C ; preset sign btfss WREG, BIT7 ;? number positive bcf STATUS, C ; yes, clear sign rrcf H ; shift arithmetic right bit rrcf L ; 6bit shift bra SMulNextCycle BmExit: return A7B4SAP Struktura a architektura počítačů - Aritmetické operace 29

Násobení 6 x 6 32 násobičkou 8 x 8 6 Použití hardwarové násobičky 8 x 8 6 bitů k násobení čísel 6 x 6 32 bitů (zde příklad násobičky čísel bez znaménka) ( m.2 8 + r).( a.2 8 + b) m. a.2 6 + r. a.2 8 + m. b.2 8 + r. b A7B4SAP Struktura a architektura počítačů - Aritmetické operace 3

Dělení bez znaménka V desítkové soustavě (připomenutí): Dělení beze zbytku 3578 286 657-572 858-858 / 43 246 43 x 2. 2 43 x 4. 43 x 6. 2 zbytek podíl A7B4SAP Struktura a architektura počítačů - Aritmetické operace 3

Dělení bez znaménka V desítkové soustavě (připomenutí): Dělení se zbytkem 78 5 28-25 3 / 5 5 + 3/5 podíl 5 x. 5 x 5. zbytek po dělení A7B4SAP Struktura a architektura počítačů - Aritmetické operace 32

Dělení bez znaménka Ve dvojkové soustavě (stejný princip): Př. 78 / 5 5 + 3/5 - - - - - / + / x.2 4 x.2 3 x.2 2 x.2 x.2 zbytek po dělení podíl A7B4SAP Struktura a architektura počítačů - Aritmetické operace 33

Aritmetické operace - chyby Rozsah zobrazení čísel v počítači je omezený: Velikostí registrů, velikostí paměti, Formát zobrazitelných čísel určuje použitá řádová mřížka (ř.m.) ř.m. definuje nejvyšší (n) a nejnižší (-m) dvojkového čísla. Při aritmetických operacích v dané ř.m. vznikají chyby: Při přeplnění formátu směrem nahoru (přes n) vznikají neodstranitelné (hrubé) chyby. Pro správnou funkci je nutné řádovou mřížku rozšířit (zvětšit n). Při přeplnění formátu směrem dolů (pod m) dochází ke ztrátě přesnosti. Velikost chyby můžeme ovlivnit: Rozšířením ř.m. směrem dolů (zvětšit m) Způsobem zaokrouhlování výsledku. A7B4SAP Struktura a architektura počítačů - Aritmetické operace 34

Aritmetické operace - zaokrouhlování Způsoby zaokrouhlování při přeplnění formátu ř.m. směrem dolů (pod -m) Preference většího čísla,434,43,435,44 Preference sudé číslice,434,43,435,43,436,44 Zaokrouhlení dolů (oříznutí),435,43 Zaokrouhlení nahoru,432 +,,442,44 A7B4SAP Struktura a architektura počítačů - Aritmetické operace 35

Pohyblivá řádová čárka Čísla v pohyblivé řádové čárce (Floating Point) mají tvar: kde: x m z e z. m mantisa (mantissa, significant) e exponent (characteristic, exponent) z základ číselné soustavy m mantisa obsahuje informace o hodnotě čísla. e - exponent obsahuje informace o pozici řádové čárky. K vyjádření m a e používáme kódy pro zobrazení záporných čísel. Čísla v pevné řádové čárce mají značně omezený rozsah hodnot. Pro zvětšení rozsahu hodnot používáme formát pohyblivé řádové čárky. A7B4SAP Struktura a architektura počítačů - Aritmetické operace 36

Pohyblivá řádová čárka V desítkové soustavě čísla v pohyblivé řádové čárce běžně používáme. V desítkové soustavě má pohyblivá řádová čárka formát: ± e x d ± m. Př. +3,582. 2 3,582. 358 +3,582. -3 3,582.,,3582-2,47. -2,47. -24,7-2,47. - -2,47., -,247 Ve dvojkové soustavě používá formát čísel v pohyblivé čárce stejné principy jako v soustavě desítkové. Kódování m (mantisy) a e (exponentu) je ale jiné. V počítačích se používá několik různých formátů čísel v pohyblivé čárce. A7B4SAP Struktura a architektura počítačů - Aritmetické operace 37

Pohyblivá řádová čárka IEEE Std.754 Nejčastěji se používá formát pohyblivé řádové čárky podle normy ANSI/IEEE Standard 754 Formát čísla dle této normy má tvar: s E BIAS s e xd ( ).2. m ( ).2. m mantisa je kódovaná přímým kódem (Sign&Magnitude) s znaménkový bit mantisy m normalizovaný tvar absolutní hodnoty mantisy, m<2 m je normalizovaná na tvar,xxx, jedničku před řádovou čárkou pak není třeba uchovávat v paměti (ušetří se bit pro zvýšení přesnosti). Takové jedničce se říká skrytá. e exponent je kódovaný aditivním kódem (Biased Code) Formát dle IEEE 754 má dvě formy: Single precision celkem 32 bitů Double precision celkem 64 bitů A7B4SAP Struktura a architektura počítačů - Aritmetické operace 38

Pohyblivá řádová čárka IEEE Std.754 Hodnoty čísla x d ve formátu Single Precision (32 bitů): q zlomková část mantisy (ostatní značení viz předchozí snímek) E q s x d Komentář - 254 q / / xd ( ).2.( + x s s E 27 26 d ( ).2. q q) Normalizovaný tvar Denormalizovaný tvar x d x d 255 x d + 255 x d 255 > / x d NaN Not a Number A7B4SAP Struktura a architektura počítačů - Aritmetické operace 39

Pohyblivá řádová čárka IEEE Std.754 Dvě varianty formátu dle IEEE 754: Precision Memory Sign Exponent Bias (K) Mantissa Single 32b b 8b 27 23b (24b) Double 64b b b 23 52b (53b) Formát Single Precision v paměti: Formát Double Precision v paměti: A7B4SAP Struktura a architektura počítačů - Aritmetické operace 4

Pohyblivá řádová čárka IEEE Std.754 Př. Převeďte číslo 62,25 d do formátu Single precision IEEE 754. ) Převod 62 d do dvojkového formátu (postupným dělením 2) 62 d b 2) Převod,25d do dvojkového formátu (postupným násobením 2),25 d, b 3) Formát celého čísla 62,25 d v binárním tvaru 62,25 d, b 4) Normalizace ( m < 2),,.2 7,.2 b tedy: e 7 d b 5) Zápis čísla ve formátu Single Precision dle IEEE 754 BIAS 27, e E BIAS E e + BIAS 7+27 34 b A7B4SAP Struktura a architektura počítačů - Aritmetické operace 4

Pohyblivá řádová čárka aritmetické operace Sčítání / odčítání Srovnat exponenty a sečíst/odečíst mantisy. x y x x + y + x x + y x y : a.2 ± b.2 a.2 ± b.2 ( a. ± b.2 ). 2 x x y x y + y y y + x y x< y : a.2 ± b.2 a.2 ± b.2 ( a.2 ± b.). 2 Násobení Sečíst exponenty, vynásobit mantisy. Dělení Odečíst exponenty, vydělit mantisy. Porovnání Srovnat exponenty, porovnat mantisy. Normalizace Normalizovaný tvar vstupních operandů operace nezaručí normalizovaný tvar výsledku. Normalizaci (úpravu výsledku do normalizovaného tvaru) je nutné provádět po každé operaci. A7B4SAP Struktura a architektura počítačů - Aritmetické operace 42

FPU platformy x86 FPU (Floating Point Unit) některých platforem mají mimo základních operací (+,, *, /) instrukce i pro další matematické operace. Např. FPU platformy x86 (tj. PC) vykonává v pohyblivé řádové čárce tyto operace: Basic operations: + add subtract * multipoly / divide Konst :. log log log log π 2 2 e e 2 2 Functions: x x compare 2 x y.log y.log 2 2 x ( x + ) Functions : sin ( x) cos( x) sin ( x),cos( x) tg ( x) arctq ( x) x Vztahy pro prepocet ( FPU neumi pocitat primo) : x x. log 2() x.log 2( e) x.log 2( y) 2 e x 2 y x 2 A7B4SAP Struktura a architektura počítačů - Aritmetické operace 43

Struktura a architektura počítačů Aritmetické operace Pevná a pohyblivá řádová čárka KONEC České vysoké učení technické Fakulta elektrotechnická A7B4SAP Struktura a architektura počítačů - Aritmetické operace 44