OBSAH WEBU
ČTĚTE!
Zde můžete vidět rozdíly mezi vybranou verzí a aktuální verzí dané stránky.
temata:09-reprezentace_cisel:main [2011/04/28 13:19] jasho [Násobenie] |
temata:09-reprezentace_cisel:main [2011/06/02 09:46] (aktuální) george [Zobrazenie čísel v pohyblivej rádovej čiarke] |
||
---|---|---|---|
Řádek 1: | Řádek 1: | ||
+ | ~~ODT~~ | ||
+ | |||
====== 09 - Reprezentácia čísiel a základné dvojkové aritmetické operácie v počítači ====== | ====== 09 - Reprezentácia čísiel a základné dvojkové aritmetické operácie v počítači ====== | ||
Řádek 134: | Řádek 136: | ||
---- | ---- | ||
- | 17<sub>10</sub> = 10001<sub>2</sub> = 10001 * 2<sup>5</sup> | + | 17<sub>10</sub> = 10001<sub>2</sub> = 0,10001 * 2<sup>5</sup> |
{{:temata:09-reprezentace_cisel:fp_17.jpeg?400|FP - 17}} | {{:temata:09-reprezentace_cisel:fp_17.jpeg?400|FP - 17}} | ||
Řádek 180: | Řádek 182: | ||
* robí sa s kladnými operandmi, keď je jeden záporný tak sa výsledok nakoniec prevedie | * robí sa s kladnými operandmi, keď je jeden záporný tak sa výsledok nakoniec prevedie | ||
{{:temata:09-reprezentace_cisel:04_cele_cisla_aritmetika_delenie_01.png|}} | {{:temata:09-reprezentace_cisel:04_cele_cisla_aritmetika_delenie_01.png|}} | ||
+ | |||
{{:temata:09-reprezentace_cisel:04_cele_cisla_aritmetika_delenie_02.png|}} | {{:temata:09-reprezentace_cisel:04_cele_cisla_aritmetika_delenie_02.png|}} | ||
+ | |||
+ | * zavedieme skratky: | ||
+ | * D - delenec | ||
+ | * d - deliteľ | ||
+ | * Q - podiel | ||
+ | * <m>q_i</m> - i-ty bit podielu | ||
+ | * <m>R_i</m> - i-ty zbytok | ||
+ | |||
+ | * v praxi sa posúva dielčí zbytok vľavo a deliteľ je v pevnej polohe | ||
+ | * keď je deliteľ väčší ako <m>2R_i</m> | ||
+ | * potom <m>q_(n-i) = 0</m> | ||
+ | * inak <m>q_(n-i) = 1</m> | ||
+ | |||
+ | {{:temata:09-reprezentace_cisel:delenie_posun_zbytku.png|}} | ||
+ | |||
+ | === Reštaurácia nezáporného zbytku === | ||
+ | |||
+ | * v praxi sa porovnávanie založené na komparátoroch nepoužíva | ||
+ | * odčítanie sa prevedie skúšobne, teda keď <m>2R_i - d</m> je menšie ako: | ||
+ | * potom <m>q_(n-i) = 0</m> | ||
+ | * inak <m>q_(n-i) = 1</m> | ||
+ | * ak je <m>q_(n-i) = 0</m> výsledok skúšobného odčítania nie je správny, treba pričítať d - reštaurácia nezáporného zvyšku | ||
+ | * postup bez reštaurácie: | ||
+ | * v každom kroku prevádzame len jednu operáciu: | ||
+ | * keď je <m>q_(n-i) = 1</m>, použijeme: <m>R_(i+1) = 2R_i - d</m> | ||
+ | * keď je <m>q_(n-1) = 0</m>, použijeme: <m>R_(i+1) = 2R_i + d</m> | ||
+ | * v každom kroku teda len pričítame alebo odćítame, nemusíme robiť zbytočne 2 operácie | ||
+ | |||
+ | {{:temata:09-reprezentace_cisel:delenie_bez_restauracie.png|}} | ||
+ | |||
+ | === Delenie SRT === | ||
+ | |||
+ | * algoritmus pre delenie znamienkových čísel | ||
+ | * vykonávané operácie sa pre každý krok určujú podľa najvyšších bitov priebežného zbytku | ||
+ | * pre demonštráciu - odhad podľa 3 bitov, ale pre niektoré hodnoty D a d postup zlyháva | ||
+ | |||
+ | {{:temata:09-reprezentace_cisel:delenie_srt_priklad.png|}} | ||
+ | |||
+ | * v praxi sa odhaduje podľa viacerých bitov - napr. Pentium - podľa 7 bitov priebežného zbytku a 5 bitov deliteľa | ||
+ | * obvodová realizácia - sekvenčná delička, odhad podľa 3 bitov priebežného zbytku: | ||
+ | * ak má delenec aj deliteľ k ľavostranných núl, posunú sa obsahy registrov PA aj B o k bitov vľavo | ||
+ | * ak je <m>p_n = p_(n-1) = p_(n - 2)</m>, potom <m>q_(n-i) = 0</m> - posun registra PA o 1 bit vľavo | ||
+ | * ak je <m>p_n = 0</m>, potom <m>q_(n-i) = 1</m>, odčítanie PA - B, posun registra PA o 1 bit vľavo | ||
+ | * ak je <m>p_n = 1</m>, potom <m>q_(n-i) = -1</m>, pričítanie PA + B, posun registra PA o 1 bit vľavo | ||
+ | * ak je koncový zbytok menší ako nula, pričítame P + B a odčítame Q - 1 | ||
==== Násobenie ==== | ==== Násobenie ==== | ||
Řádek 280: | Řádek 328: | ||
* Základem n-bitové násobičky s uchováním přenosu je n-bitová SUP: | * Základem n-bitové násobičky s uchováním přenosu je n-bitová SUP: | ||
{{:temata:09-reprezentace_cisel:nasobicka_s_uchovanim_prenosu.png|}} | {{:temata:09-reprezentace_cisel:nasobicka_s_uchovanim_prenosu.png|}} | ||
+ | {{:temata:09-reprezentace_cisel:blokova_schema_nasobicka_6x6.png|}} | ||
+ | {{:temata:09-reprezentace_cisel:blokova_schema_nasobicka_8x8.png|}} | ||
+ | == Príklad na násobenie s uchovaním prenosu == | ||
+ | - Nejdříve jsou sečteny částečné součiny A, B a C, výsledek je v S1 a C1. | ||
+ | - Potom jsou sečteny částečné součiny D, E a F, výsledek je v S2 a C2. | ||
+ | - Následuje součet S1, C1 a S2, výsledek je v S3 a C3. | ||
+ | - Nakonec jsou sečteny S3, C3 a C2, výsledek je v S4 a C4. | ||
+ | - Sčítačkou s postupným přenosem jsou nakonec sečteny S4 a C4. | ||
+ | - Kromě posledního sčítaní jsou všechna ostatní sčítání s uchováním přenosu. | ||
+ | {{:temata:09-reprezentace_cisel:nasobicka_s_uchovanim_prenosu_priklad.png|}} | ||
+ | == Wallaceov strom == | ||
+ | * Zrychlené sčítání částečných součinů | ||
+ | * 6x6 bitov: | ||
+ | {{:temata:09-reprezentace_cisel:wallaceov_strom_6x6.png|}} | ||
+ | * 8x8 bitov: | ||
+ | {{:temata:09-reprezentace_cisel:wallaceov_strom_8x8.png|}} | ||
===== Zdroj ===== | ===== Zdroj ===== | ||
+ | <note> | ||
+ | Čerpal som zo slidov k IAS: | ||
+ | https://wis.fit.vutbr.cz/FIT/st/course-files-st.php/course/IAS-IT/lectures/10ias_1.pdf | ||
+ | |||
+ | a zo slidov k INP: | ||
+ | https://wis.fit.vutbr.cz/FIT/st/course-files-st.php/course/INP-IT/lectures/inp2010_08mult.pdf | ||
+ | https://wis.fit.vutbr.cz/FIT/st/course-files-st.php/course/INP-IT/lectures/inp2010_09div.pdf | ||
+ | </note> | ||
===== Potvrzení ===== | ===== Potvrzení ===== | ||