Booths multiplikationsalgoritme

Booths multiplikationsalgoritme

Booth-algoritmen er en multiplikationsalgoritme, der giver os mulighed for at multiplicere de to fortegnede binære heltal i henholdsvis 2's komplement. Det bruges også til at fremskynde udførelsen af ​​multiplikationsprocessen. Det er også meget effektivt. Det virker på strengbits 0'erne i multiplikatoren, der ikke kræver yderligere bit, forskyd kun strengbittene længst til højre og en streng på 1'er i en multiplikatorbitvægt 2 k til vægt 2 m der kan betragtes som 2 k+1 - 2 m .

Følgende er den billedlige repræsentation af Booth's Algorithm:

Booth

I ovenstående flowchart, indledningsvis, AC og Q n + 1 bit er sat til 0, og SC er en sekvenstæller, der repræsenterer det samlede antal bitsæt n, som er lig med antallet af bits i multiplikatoren. Der er BR der repræsenterer multiplikante bits, og QR repræsenterer multiplikator bits . Derefter stødte vi på to bits af multiplikatoren som Q n og Q n + 1 , hvor Qn repræsenterer den sidste bit af QR, og Q n + 1 repræsenterer den øgede bit af Qn med 1. Antag, at to bits af multiplikatoren er lig med 10; det betyder, at vi skal trække multiplikatoren fra partialproduktet i akkumulatoren AC og derefter udføre den aritmetiske skiftoperation (ashr). Hvis de to af multiplikatorerne er lig med 01, betyder det, at vi skal udføre additionen af ​​multiplikaanden til delproduktet i akkumulator AC og derefter udføre den aritmetiske skiftoperation ( Ashr ), herunder Q n + 1 . Den aritmetiske skiftoperation bruges i Booths algoritme til at flytte AC- og QR-bits til højre med én og forbliver fortegnsbitten i AC uændret. Og sekvenstælleren dekrementeres kontinuerligt, indtil beregningsløkken gentages, svarende til antallet af bit (n).

Arbejder på Booth Algorithm

  1. Indstil Multiplikand og Multiplikator binære bits som henholdsvis M og Q.
  2. Til at begynde med indstillede vi AC og Q n + 1 registrerer værdi til 0.
  3. SC repræsenterer antallet af multiplikatorbit (Q), og det er en sekvenstæller, der kontinuerligt dekrementeres, indtil det er lig med antallet af bit (n) eller nås til 0.
  4. En Qn repræsenterer den sidste bit af Q, og Q n+1 viser den øgede bit af Qn med 1.
  5. I hver cyklus af kabinealgoritmen, Q n og Q n + 1 bits vil blive kontrolleret på følgende parametre som følger:
    1. Når to bit Q n og Q n + 1 er 00 eller 11, udfører vi blot den aritmetiske skift til højre (ashr) til delproduktet AC. Og biterne af Qn og Q n + 1 øges med 1 bit.
    2. Hvis bits af Q n og Q n + 1 er viser til 01, vil multiplikand-bittene (M) blive tilføjet til AC (akkumulatorregisteret). Derefter udfører vi den rigtige skiftoperation til AC- og QR-bittene med 1.
    3. Hvis bits af Q n og Q n + 1 er viser til 10, vil multiplikandbittene (M) blive trukket fra AC (akkumulatorregisteret). Derefter udfører vi den rigtige skiftoperation til AC- og QR-bittene med 1.
  6. Operationen fungerer kontinuerligt, indtil vi nåede n - 1 bit i booth-algoritmen.
  7. Resultaterne af de binære multiplikationsbits vil blive gemt i AC- og QR-registrene.

Der er to metoder, der bruges i Booths algoritme:

1. RSC (Right Shift Circular)

Det forskyder bit længst til højre i det binære tal, og derefter tilføjes det til begyndelsen af ​​de binære bit.

Booth

2. RSA (Right Shift Arithmetic)

Den tilføjer de to binære bit og flytter derefter resultatet til højre med 1-bit position.

Eksempel : 0100 + 0110 => 1010, efter at have tilføjet det binære tal forskyd hver bit med 1 til højre og sæt den første bit af resultant til begyndelsen af ​​den nye bit.

Eksempel: Gang de to tal 7 og 3 ved at bruge Booths multiplikationsalgoritme.

Flere år . Her har vi to tal, 7 og 3. Først og fremmest skal vi konvertere 7 og 3 til binære tal som 7 = (0111) og 3 = (0011). Indstil nu 7 (i binær 0111) som multiplikant (M) og 3 (i binær 0011) som en multiplikator (Q). Og SC (Sequence Count) repræsenterer antallet af bits, og her har vi 4 bit, så sæt SC = 4. Den viser også antallet af iterationscyklusser af standens algoritmer og derefter kører cykler SC = SC - 1 gang.

Q n Q n + 1 M = (0111)
M' + 1 = (1001) & Operation
AC Q Q n + 1 SC
1 0 Initial 0000 0011 0 4
Trække fra (M' + 1) 1001
1001
Udfør aritmetiske højreskiftoperationer (ashr) 1100 1001 1 3
1 1 Udfør aritmetiske højreskiftoperationer (ashr) 1110 0100 1 2
0 1 Tilføjelse (A + M) 0111
0101 0100
Udfør aritmetisk højreskifteoperation 0010 1010 0 1
0 0 Udfør aritmetisk højreskifteoperation 0001 0101 0 0

Det numeriske eksempel på Booths multiplikationsalgoritme er 7 x 3 = 21, og den binære repræsentation af 21 er 10101. Her får vi resultanten i binær 00010101. Nu konverterer vi den til decimal, som (000010101) 10 = 2*4 + 2*3 + 2*2 + 2*1 + 2*0 => 21.

Eksempel: Gang de to tal 23 og -9 ved at bruge Booths multiplikationsalgoritme.

Her er M = 23 = (010111) og Q = -9 = (110111)

Q n Q n + 1 M = 0 1 0 1 1 1
M' + 1 = 1 0 1 0 0 1
AC Q Q n + 1 SC
I første omgang 000000 110111 0 6
1 0 Træk M fra 101001
101001
Udfør aritmetisk højreskiftoperation 110100 111011 femten
elleve Udfør aritmetisk højreskiftoperation 111010 011101 1 4
elleve Udfør aritmetisk højreskiftoperation 111101 001110 1 3
0 1 Tilføjelse (A + M) 010111
010100
Udfør aritmetisk højreskiftoperation 001010 000111 0 2
1 0 Træk M fra 101001
110011
Udfør aritmetisk højreskifteoperation 111001 100011 elleve
elleve Udfør aritmetisk højreskiftoperation 111100 110001 1 0

Q n + 1 = 1, betyder det, at outputtet er negativt.

Derfor er 23 * -9 = 2'er komplement af 111100110001 => (00001100111)