Booth-algoritmen er en multiplikasjonsalgoritme som lar oss multiplisere de to signerte binære heltallene i henholdsvis 2-er. Det brukes også til å fremskynde ytelsen til multiplikasjonsprosessen. Det er veldig effektivt også. Den fungerer på strengbitene 0-er i multiplikatoren som ikke krever noen ekstra bit, bare skift strengbitene lengst til høyre og en streng på 1-er i multiplikatorbitvekt 2ktil vekt 2msom kan betraktes som 2k+ 1- 2m .
Følgende er den billedlige representasjonen av Booths algoritme:
I flytskjemaet ovenfor, innledningsvis, AC og Qn + 1 bits er satt til 0, og SC er en sekvensteller som representerer den totale biten som er satt n, som er lik antall biter i multiplikatoren. Det er BR som representerer multiplikante biter, og QR representerer multiplikatorbiter . Etter det møtte vi to biter av multiplikatoren som Qnog Qn + 1, der Qn representerer den siste biten av QR, og Qn + 1representerer den inkrementerte biten av Qn med 1. Anta at to biter av multiplikatoren er lik 10; det betyr at vi må trekke multiplikatoren fra delproduktet i akkumulatoren AC og deretter utføre den aritmetiske skiftoperasjonen (ashr). Hvis de to av multiplikatorene er lik 01, betyr det at vi må utføre addisjonen av multiplikaanden til delproduktet i akkumulator AC og deretter utføre den aritmetiske skiftoperasjonen ( Ashr ), gjelder også Qn + 1 . Den aritmetiske skiftoperasjonen brukes i Booths algoritme for å skifte AC- og QR-biter til høyre med én og forblir fortegnsbiten i AC uendret. Og sekvenstelleren dekrementeres kontinuerlig til beregningssløyfen gjentas, lik antall biter (n).
Jobber med Booth-algoritmen
- Sett de binære bitene Multiplikand og Multiplikator som henholdsvis M og Q.
- Til å begynne med satte vi AC og Qn + 1registrerer verdien til 0.
- SC representerer antall multiplikatorbiter (Q), og det er en sekvensteller som kontinuerlig dekrementeres til lik antall biter (n) eller nådd til 0.
- En Qn representerer den siste biten av Q, og Qn+1viser den økte biten av Qn med 1.
- På hver syklus av messealgoritmen, Qnog Qn + 1biter vil bli sjekket på følgende parametere som følger:
- Når to biter Qnog Qn + 1er 00 eller 11, utfører vi ganske enkelt den aritmetiske forskyvningsoperasjonen til høyre (ashr) til delproduktet AC. Og bitene av Qn og Qn + 1økes med 1 bit.
- Hvis bitene av Qnog Qn + 1er viser til 01, vil multiplikandbitene (M) bli lagt til AC (akkumulatorregisteret). Etter det utfører vi riktig skiftoperasjon til AC- og QR-bitene med 1.
- Hvis bitene av Qnog Qn + 1er viser til 10, vil multiplikandbitene (M) trekkes fra AC (akkumulatorregisteret). Etter det utfører vi riktig skiftoperasjon til AC- og QR-bitene med 1.
- Operasjonen fungerer kontinuerlig til vi nådde n - 1 bit i booth-algoritmen.
- Resultater av multiplikasjonsbinærbitene vil bli lagret i AC- og QR-registrene.
Det er to metoder som brukes i Booths algoritme:
markdown-bilder
1. RSC (Right Shift Circular)
Den forskyver biten lengst til høyre av det binære tallet, og deretter legges det til begynnelsen av de binære bitene.
2. RSA (Right Shift Arithmetic)
Den legger til de to binære bitene og forskyver deretter resultatet til høyre med 1-bits posisjon.
b+ tre
Eksempel : 0100 + 0110 => 1010, etter å ha lagt til det binære tallet, skift hver bit med 1 til høyre og sett den første biten av resultanten til begynnelsen av den nye biten.
Eksempel: Multipliser de to tallene 7 og 3 ved å bruke Booths multiplikasjonsalgoritme.
år . Her har vi to tall, 7 og 3. Først av alt må vi konvertere 7 og 3 til binære tall som 7 = (0111) og 3 = (0011). Sett nå 7 (i binær 0111) som multiplikant (M) og 3 (i binær 0011) som en multiplikator (Q). Og SC (Sequence Count) representerer antall biter, og her har vi 4 biter, så sett SC = 4. Den viser også antall iterasjonssykluser av messens algoritmer og deretter kjører sykluser SC = SC - 1 gang.
Qn | Qn + 1 | M = (0111) M' + 1 = (1001) & Operasjon | AC | Q | Qn + 1 | SC |
---|---|---|---|---|---|---|
1 | 0 | Første | 0000 | 0011 | 0 | 4 |
Trekke fra (M' + 1) | 1001 | |||||
1001 | ||||||
Utfør aritmetiske høyreskiftoperasjoner (ashr) | 1100 | 1001 | 1 | 3 | ||
1 | 1 | Utfør aritmetiske høyreskiftoperasjoner (ashr) | 1110 | 0100 | 1 | 2 |
0 | 1 | Tillegg (A + M) | 0111 | |||
0101 | 0100 | |||||
Utfør aritmetisk høyreskiftoperasjon | 0010 | 1010 | 0 | 1 | ||
0 | 0 | Utfør aritmetisk høyreskiftoperasjon | 0001 | 0101 | 0 | 0 |
Det numeriske eksemplet på Booths multiplikasjonsalgoritme er 7 x 3 = 21 og den binære representasjonen av 21 er 10101. Her får vi resultanten i binær 00010101. Nå konverterer vi den til desimal, som (000010101)10= 2*4 + 2*3 + 2*2 + 2*1 + 2*0 => 21.
jordnøtt vs peanøtt
Eksempel: Multipliser de to tallene 23 og -9 ved å bruke Booths multiplikasjonsalgoritme.
Her er M = 23 = (010111) og Q = -9 = (110111)
QnQn + 1 | M = 0 1 0 1 1 1 M' + 1 = 1 0 1 0 0 1 | AC | Q | Qn + 1SC |
---|---|---|---|---|
I utgangspunktet | 000 000 | 110111 | 0 6 | |
1 0 | Trekk fra M | 101001 | ||
101001 | ||||
Utfør aritmetisk høyreskiftoperasjon | 110100 | 111011 | femten | |
elleve | Utfør aritmetisk høyreskiftoperasjon | 111010 | 011101 | 1 4 |
elleve | Utfør aritmetisk høyreskiftoperasjon | 111101 | 001110 | 1. 3 |
0 1 | Tillegg (A + M) | 010111 | ||
010100 | ||||
Utfør aritmetisk høyreskiftoperasjon | 001010 | 000111 | 0 2 | |
1 0 | Trekk fra M | 101001 | ||
110011 | ||||
Utfør aritmetisk høyreskiftoperasjon | 111001 | 100011 | elleve | |
elleve | Utfør aritmetisk høyreskiftoperasjon | 111100 | 110001 | 1 0 |
Qn + 1 = 1, betyr det at utgangen er negativ.
Derfor er 23 * -9 = 2-komplement av 111100110001 => (00001100111)