kategória | ||||||||||
| ||||||||||
| ||
|
||||||||||
Az aritmetikai egységek felépítése II. (a fixpontos szorzás algoritmusai és gyorsítási lehetöségek)
Hagyományos szorzás: Algoritmizált változat:
13×123 13×123
39 0000 felveszünk egy gyüjtöt, amit nullázunk
26 39
13 0039
1599 260 10-zel szorozzuk
0299
1300 100-zal szorozzuk
1599
10/100-zal való szorzás helyett léptetés:
13×123
0000 Konklúzió (decimális számoknál):
39 Az összeadási ciklus annyiszor fut le,
0039 ahány helyiértékböl áll a szorzó.
26
0299
13
1599
A bináris szorzás sajátosságai:
A bináris szám hossza
Példa |
Decimális szám |
Bináris szám |
9 |
1 |
4 |
99 |
2 |
7 |
999 |
3 |
10 |
Konklúzió:
A bináris szám hosszabb, mint a decimális, ezért a ciklus többször fut le.
A szorzat hossza
|
A decimális helyiértékek száma |
Általánosítva |
|||
A |
1 |
2 |
2 |
m |
|
B |
1 |
1 |
2 |
n |
|
Xmax |
2 |
3 |
4 |
m+n |
|
Példa: |
|
9×9 |
99×9 |
99×99 |
|
A szorzó és a szorzandó egy-egy regiszterben helyezkedik el, ezért az eredmény két regiszterben képzödik.
Példa:
Legyen egy regiszterünk három helyiértékü, a szorzat kisebb helyiértékei keletkeznek a szorzó helyén:
|
|
|
|
1 |
2 |
3 |
|
|
|
|
|
9 |
1 |
2 |
|
|
|
|
|
9 |
9 |
1 |
|
0 |
0 |
1 |
|
5 |
9 |
9 |
eredmény |
A bináris szorzás gyorsítása:
Bitcsoportokkal való szorzás: A
szorzó helyiértékeit nem egyesével, hanem csoportokban kezeljük, így a
csoportokat léptethetjük, ami gyorsabb.
Pl.: kettes csoportokban:
00 - kettöt léptetünk balra.
01 - a gyüjtöhöz hozzáadjuk a szorzandó egyszeresét és kettöt
léptetünk balra.
10 - a gyüjtöhöz hozzáadjuk a szorzandó kétszeresét és kettöt
léptetünk balra.
11 - a gyüjtöhöz hozzáadjuk a szorzandó háromszorosát és kettöt
léptetünk balra.
Segédszámítás: a
szorzandó kétszerese: 0111 0111 1110 0111→1110
Példa:
7×9 = 0111×10|01
A: összeadással
0000
0111
B: léptetéssel
0111
1110
111111B = 63D
Booth féle algoritmus:
Bináris számok esetén az összeadási ciklus annyiszor fut le, ahány egyes van a szorzóban (nulla esetén csak léptetünk).
A szorzóban lévö egyesek számának csökkentése a cél.
Példa:
62-vel kell szorozni:
62=111110B 5 db összeadás.
Helyette:
×64=100000B 1 db összeadás Összesen 3 db müvelet, 40%-os
×2=000010B 1 db összeadás idömegtakarítás, pl.: mai processzorok
- 1 db kivonás mindegyike.
Találat: 473