Der Booth-Algorithmus ist ein Multiplikationsalgorithmus, der es uns ermöglicht, die beiden vorzeichenbehafteten binären Ganzzahlen jeweils im Zweierkomplement zu multiplizieren. Es wird auch verwendet, um die Leistung des Multiplikationsprozesses zu beschleunigen. Es ist auch sehr effizient. Es funktioniert mit den Nullen der String-Bits im Multiplikator, der kein zusätzliches Bit erfordert, sondern nur die ganz rechten String-Bits und eine Folge von Einsen in einem Multiplikatorbit mit der Gewichtung 2 verschiebtkGewicht 2Mdas kann als angesehen werden 2k+ 1- 2M .
Es folgt die bildliche Darstellung des Booth-Algorithmus:
Im obigen Flussdiagramm zunächst Wechselstrom Und Qn + 1 Bits werden auf 0 gesetzt und die SC ist ein Sequenzzähler, der die Gesamtzahl der gesetzten Bits darstellt N, was gleich der Anzahl der Bits im Multiplikator ist. Es gibt BR die repräsentieren die Multiplikandenbits, und QR repräsentiert das Multiplikatorbits . Danach stießen wir auf zwei Bits des Multiplikators als QNund Qn + 1, wobei Qn das letzte Bit von QR darstellt und Qn + 1stellt das um 1 erhöhte Bit von Qn dar. Angenommen, zwei Bits des Multiplikators sind gleich 10; Das bedeutet, dass wir den Multiplikator vom Partialprodukt im Akkumulator AC subtrahieren und dann die arithmetische Schiebeoperation (ashr) durchführen müssen. Wenn die beiden Multiplikatoren gleich 01 sind, bedeutet das, dass wir die Addition des Multiplikanden zum Partialprodukt im Akkumulator AC durchführen und dann die arithmetische Schiebeoperation durchführen müssen ( Ashr ), einschließlich Qn + 1 . Die arithmetische Schiebeoperation wird im Booth-Algorithmus verwendet, um AC- und QR-Bits um eins nach rechts zu verschieben und das Vorzeichenbit in AC unverändert zu lassen. Und der Sequenzzähler wird kontinuierlich dekrementiert, bis die Rechenschleife wiederholt wird, und zwar entsprechend der Anzahl der Bits (n).
Arbeiten am Booth-Algorithmus
- Stellen Sie die Binärbits Multiplikand und Multiplikator auf M bzw. Q ein.
- Zunächst stellen wir AC und Q einn + 1Registriert den Wert auf 0.
- SC stellt die Anzahl der Multiplikatorbits (Q) dar und ist ein Sequenzzähler, der kontinuierlich dekrementiert wird, bis er der Anzahl der Bits (n) entspricht oder 0 erreicht.
- Ein Qn stellt das letzte Bit von Q dar, und das Qn+1zeigt das um 1 erhöhte Bit von Qn.
- Bei jedem Zyklus des Booth-Algorithmus QNund Qn + 1Bits werden für die folgenden Parameter wie folgt überprüft:
- Wenn zwei Bits QNund Qn + 100 oder 11 sind, führen wir einfach die arithmetische Rechtsverschiebungsoperation (ashr) zum Partialprodukt AC durch. Und die Bits von Qn und Qn + 1wird um 1 Bit erhöht.
- Wenn die Bits von QNund Qn + 1Ist der Wert 01, werden die Multiplikandenbits (M) zum AC (Akkumulatorregister) hinzugefügt. Danach führen wir die rechte Verschiebungsoperation zu den AC- und QR-Bits um 1 durch.
- Wenn die Bits von QNund Qn + 1Ist der Wert 10, werden die Multiplikandenbits (M) vom AC (Akkumulatorregister) subtrahiert. Danach führen wir die rechte Verschiebungsoperation zu den AC- und QR-Bits um 1 durch.
- Die Operation funktioniert kontinuierlich, bis wir n – 1 Bit im Booth-Algorithmus erreicht haben.
- Die Ergebnisse der Multiplikations-Binärbits werden in den AC- und QR-Registern gespeichert.
Im Booth-Algorithmus werden zwei Methoden verwendet:
F-String-Python
1. RSC (Right Shift Circular)
Es verschiebt das ganz rechte Bit der Binärzahl und fügt es dann am Anfang der Binärbits hinzu.
2. RSA (Rechtsverschiebungsarithmetik)
Es addiert die beiden Binärbits und verschiebt das Ergebnis dann um eine 1-Bit-Position nach rechts.
Abschlag durchgestrichen
Beispiel : 0100 + 0110 => 1010, nach der Addition der Binärzahl jedes Bit um 1 nach rechts verschieben und das erste Bit der Resultierenden an den Anfang des neuen Bits setzen.
Beispiel: Multiplizieren Sie die beiden Zahlen 7 und 3 mit dem Multiplikationsalgorithmus von Booth.
Jahre . Hier haben wir zwei Zahlen, 7 und 3. Zunächst müssen wir 7 und 3 in Binärzahlen wie 7 = (0111) und 3 = (0011) umwandeln. Stellen Sie nun 7 (in Binärzahl 0111) als Multiplikand (M) und 3 (in Binärzahl 0011) als Multiplikator (Q) ein. Und SC (Sequence Count) stellt die Anzahl der Bits dar, und hier haben wir 4 Bits, also setzen Sie SC = 4. Außerdem zeigt es die Anzahl der Iterationszyklen der Booth-Algorithmen an und dann werden die Zyklen SC = SC - 1 Mal ausgeführt.
QN | Qn + 1 | M = (0111) M' + 1 = (1001) & Operation | Wechselstrom | Q | Qn + 1 | SC |
---|---|---|---|---|---|---|
1 | 0 | Anfänglich | 0000 | 0011 | 0 | 4 |
Subtrahieren (M' + 1) | 1001 | |||||
1001 | ||||||
Arithmetische Rechtsverschiebungsoperationen ausführen (ashr) | 1100 | 1001 | 1 | 3 | ||
1 | 1 | Arithmetische Rechtsverschiebungsoperationen ausführen (ashr) | 1110 | 0100 | 1 | 2 |
0 | 1 | Addition (A + M) | 0111 | |||
0101 | 0100 | |||||
Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 0010 | 1010 | 0 | 1 | ||
0 | 0 | Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 0001 | 0101 | 0 | 0 |
Das numerische Beispiel des Booth-Multiplikationsalgorithmus ist 7 x 3 = 21 und die binäre Darstellung von 21 ist 10101. Hier erhalten wir das Ergebnis in binärer Form 00010101. Jetzt wandeln wir es in eine Dezimalzahl um, als (000010101).10= 2*4 + 2*3 + 2*2 + 2*1 + 2*0 => 21.
So ermitteln Sie die Anzeigegröße
Beispiel: Multiplizieren Sie die beiden Zahlen 23 und -9 mit dem Multiplikationsalgorithmus von Booth.
Hier ist M = 23 = (010111) und Q = -9 = (110111)
QNQn + 1 | M = 0 1 0 1 1 1 M' + 1 = 1 0 1 0 0 1 | Wechselstrom | Q | Qn + 1SC |
---|---|---|---|---|
Anfänglich | 000000 | 110111 | 0 6 | |
1 0 | Subtrahiere M | 101001 | ||
101001 | ||||
Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 110100 | 111011 | fünfzehn | |
elf | Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 111010 | 011101 | 1 4 |
elf | Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 111101 | 001110 | 1 3 |
0 1 | Addition (A + M) | 010111 | ||
010100 | ||||
Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 001010 | 000111 | 0 2 | |
1 0 | Subtrahiere M | 101001 | ||
110011 | ||||
Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 111001 | 100011 | elf | |
elf | Führen Sie eine arithmetische Rechtsverschiebungsoperation durch | 111100 | 110001 | 1 0 |
Qn + 1 = 1 bedeutet, dass die Ausgabe negativ ist.
Daher ist 23 * -9 = 2er-Komplement von 111100110001 => (00001100111)