-
Die vorliegende Erfindung bezieht
sich auf eine Divisionsschaltung, und genauer auf eine solche, die
mit einer Rundungsfunktion ausgerüstet sind.
-
21 und 22 sind Schaltbilder, die
jeweils eine Teilstruktur einer herkömmlichen Multiplizierschaltung 100 zeigen.
In Kombination zeigen die 21 und 22 die gesamte Struktur der
Multiplizierschaltung 100.
-
Ein Multiplikand 1a (= A3 A2 A1 A0) und ein Multiplikator 1b (= B3 B2 B1 B0), die an die Multiplizierschaltung 100 gegeben
werden, sind jeweils in binären
4 Bits ausgedrückt.
Der Multiplikand 1a und der Multiplikator 1b werden
in einem carry-save-Multiplizierteil 30 zum Erhalt eines
ersten Multiplikationsergebnisses 4 (= P'7 P'6 P'5 P'4 P'3 P'2 P'1 P'0)
multipliziert. Das sechsthöchste
Bit (sechstsignifikante Bit) des Multiplikationsergebnisses 4 wird
in einer Bruchzahlrundungsschaltung 5 gerundet, wobei ein
zweites binäres
5-Bit Multiplikationsergebnis 2 (= P7 P6 P5 P4 P3) erhalten wird.
-
In der verwendeten Darstellung stellt
der Index i der Daten (= 0, 1, 2, 3) die Stelle von 2i dar. "Runden" bedeutet, eine gerundete
Zahl zu berechnen, und entspricht dem Runden der Bruchzahlen in dem
Dezimalsystem.
-
Der Multiplizierteil 30 wird
durch ein Erzeugungsteil 30a für Teilprodukte und einen Additionsverarbeitungsteil 30b gebildet.
Der Erzeugungsteil 30a für Teilprodukte erzeugt eine
Teilproduktgruppe 6 aus dem Multiplikanden 1a und
dem Multiplikator 1b. Der Additionsverarbeitungsteil 30b führt eine Übertragungsspar-
bzw. Übertragssicherung-Addition (carry-save
Addition) unter Verwendung der Halbaddierer (Einziffer-Addierglieder) 7a bis 7c,
der Volladdierer (Addierglieder) 8a bis 8f und
eines Hochgeschwindigkeitsaddierers 9 mit Parallelübertrag
aus, wobei die Ziffern bzw. Stellen der Teilproduktgruppe 6 ausgerichtet
werden. Das gestrichelte Gitter in dem Additionsverarbeitungsteil 30b stellt
dar, wie die Stellen aus-gerichtet werden, und stellt die Stufen,
in denen eine Addition ausgeführt
wird, dar.
-
23 ist
ein Schaltbild, das eine Struktur einer herkömmlichen Divisionsschaltung 200 zeigt. Ein
Dividend A und ein Divisor (Teiler) B, die an die Divisionsschaltung 200 gegeben
werden, sind jeweils in binären
8 Bit gegeben und erfüllen
die Beziehung A < B.
Der Dividend A und der Divisor B werden einer 9-Bit Divisionsschaltung 10 zugeführt, die
einen Quotienten Q' berechnet,
der dezimale 9 Bits enthält. Der
Quotient Q' wird
der Rundungsschaltung 5 eingegeben, welche das dezimale
neunte Bit des Quotienten Q' rundet
und einen 8-Bit Quotienten Q ausgibt.
-
24 ist
ein Schaltbild, das die Details der 9-Bit Divisionsschaltung 10 zeigt.
Die 9-Bit Divisionsschaltung 10 weist 1-Bit Quotientenbestimmungsschaltungen 12a, 12b...12i auf.
Zuerst werden 9-Bit Daten, die durch Addieren von 0 an die niedere
Bitseite des Dividenden A erhalten werden, durch den Divisor B in
der 1-Bit Quotientenbestimmungsschaltung 12a dividiert,
und das resultierende signifikanteste Bit wird als ein 1-Bit Quotient
q'8 bestimmt.
Zur selben Zeit wird ein 8-Bit Rest R8 berechnet.
-
Als nächstes werden 9-Bit Daten,
die durch Addieren von 0 an die niedere Bitseite des 8-Bit Restes
R8 erhalten werden, durch den Divisor B
in der 1-Bit Quotientenbestimmungsschaltung 12b geteilt, und
das resultierende signifikanteste Bit wird als ein 1-Bit Quotient
q'7 bestimmt, und
ein Rest R7 berechnet. Auf diese Art werden
1-Bit Quotienten nacheinander berechnet, bis letztendlich ein 1-Bit
Quotient q'0 berechnet ist. Derart wird der 9-Bit Quotient
Q' (= q'8 q'7 q'6 q'5 q'4 g'3 q'2 q'1 q'0)
erhalten.
-
Mit einer Struktur wie oben benötigen die herkömmliche
Multiplizierschaltung und die herkömmliche Divisionsschaltung
eine Rundungsschaltung, was in einem Anstieg der Anzahl von Verarbeitungsstufen,
einer größeren Schaltungsgröße und einer
verzögerten
Betriebsgeschwindigkeit resultiert.
-
Aus der
US 5 007 009 ist eine Divisionsschaltung
zum Teilen eines Dividenden, der in einem Zahlensystem mit der Grundzahl
D = 2 in M Stellen ausgedrückt
ist, durch einen Divisor, der in dem Zahlensystem mit der Grundzahl
D in N Stellen ausgedrückt
ist und der kleiner als der Dividend ist, bekannt, die m Quotientenbestimmungsteile
aufweist, die einen ersten Eingangsanschluß, der eine Stelle des Dividenden
empfängt,
einen zweiten Eingangsanschluß,
der den Divisor empfängt,
einen dritten Eingangsanschluß,
der vier weitere Zahlen empfängt,
einen ersten Ausgangsanschluß,
der einen einstelligen Quotienten ausgibt, und einen zweiten Ausgangsanschluß, der eine
Anzahl von Resten (zwischen einem und vier) ausgibt, aufweisen.
-
Aus der
DE 41 21 106 A1 ist eine
Divisionsschaltung bekannt, bei der ein Dividend durch den Divisor
beliebiger Größe geteilt
wird.
-
Es ist Aufgabe der vorliegenden Erfindung, eine
Divisionsschaltung, die nur eine kleine Schaltungsgröße benötigen und
ein Runden bei hoher Geschwindigkeit ausführen kann, zu ermöglichen.
-
Diese Aufgabe wird gelöst durch
eine Divisionsschaltung nach Anspruch 1 oder 2 oder 3 oder 4 oder
5.
-
Weiterbildungen der Erfindung sind
in den Unteransprüchen
gekennzeichnet.
-
Der Divisor C, der in der Divisionsschaltung neu
zu berechnen ist, wird im voraus zur Berechnung eines gerundeten
Quotienten erhalten. Der Divisor C braucht nicht auf einmal vollständig berechnet
zu werden. Vielmehr werden, wie in den ersten bis vierten Aspekten
der Divisionsschaltung, von dem Divisor C Stellen, die in den entsprechenden
Quotientenbestimmungsteilen benötigt
werden, seriell bzw. nacheinander berechnet.
-
Wie oben beschrieben, wird entsprechend den
Ausführungsformen
der vorliegenden Erfindung ein Runden in der Divisionsschaltung
ausgeführt, während eine
Division ausgeführt
wird. Demzufolge ist die Notwendigkeit des Vorsehens einer externen Rundungsschaltung
eliminiert, die Anzahl der Berechnungsstufen und die Schaltungsgröße werden reduziert,
und die Betriebsgeschwindigkeit wird erhöht.
-
Die Divisionsschaltungen der Ansprüche 2 und
3 sind speziell passend zur Ausführung
einer Berechnung, wenn es die Beziehungen K = N – 1 bzw. K > N – 1
gibt.
-
Die Divisionsschaltungen der Ansprüche 4 und
5 sind beide passend, wenn es eine Beziehung K < N – 1 gibt. Die Divisionsschaltung
des Anspruchs 4 ist speziell passend, wenn es bekannt ist, daß ein gerundeter
Quotient kleiner als 1 ist, während
die Divisionsschaltung des Anspruchs 5 speziell passend ist, wo
es nicht bekannt ist, daß der
gerundete Quotient kleiner als 1 ist.
-
Weitere Merkmale und Zweckmäßigkeiten der
Erfindung ergeben sich aus der Beschreibung von Ausführungsbeispielen
anhand der Figuren.
-
Von den Figuren zeigen:
- 1 bis 8 Schaltdiagramme zur Erläuterung
einer ersten bevorzugten Ausführungsform;
- 9 ein Schaltbild
zur Erläuterung
einer zweiten bevorzugten Ausführungssform;
- 10 bis 12 Schaltbilder zur Erläuterung
einer dritten bevorzugten Ausführungsform;
- 13 bis 17 Schaltbilder zur Erläuterung
einer vierten bevorzugten Ausführungsform;
- 18 bis 20 Schaltbilder zur Erläuterung
einer fünften
bevorzugten Ausführungsform;
und
- 21 bis 24 Schaltbilder zur Erläuterung
einer herkömmlichen
Technik.
-
A. Multiplizierschaltung:
-
(A-0) Grundlegende Idee:
-
Vor der detaillierten Beschreibung
der vorliegenden Erfindung, soll die grundlegende Idee der vorliegenden
Erfindung erläutert
werden. Es wird angenommen, daß 4-Bit
Ganzzahlen (Integer) zu multiplizieren sind, und daß das Multiplizierungsergebnis zu
runden ist, um die fünf
signifikantesten Bits zu belassen. Das ist erreichbar, in dem das
Multiplikationsergebnis belassen wird wie es ist, falls das sechsthöchste bzw.
sechstsignifikanteste Bit (Stelle von 22) "0" ist, und indem "1" zu
dem fünfthöchsten bzw. fünftsignifikantesten
Bit (Stelle von 23) des Multiplikaionsrgebnisses
addiert wird, falls das sechsthöchste Bit "1" ist. Diese Berechnung wird herkömmlicherweise
aufgeführt,
nachdem das gesamte Multiplikationsergebnis berechnet ist.
-
Die vorliegende Erfindung jedoch,
unter Berücksichtigung
der Tatsache, daß der
Vorgang des Berechnens des gesamten Multiplikationsergebnisses in
einen Vorgang des Berechnens von Teilprodukten und einen Vorgang
des Aufaddierens der Teilprodukte teilbar ist, verlangt die Ausführung des Rundens
vor der Berechnung des gesamten Multiplikationsergebnisses.
-
In dem oben beschriebenen Beispiel
des Rundens, "Belassen
des Multiplikationsergebnisses wie es ist, falls das sechsthöchste Bit
(Stelle von 22) '0' ist,
und Addieren von '1' zu dem fünfthöchsten Bit (Stelle
von 23) des Multiplikationsergebnisses,
falls das sechsthöchste
Bit '1' ist", ist gleich zu ""Addieren von '1' zu
dem sechsthöchsten
Bit (Stelle von 22) des Multiplikationsergebnisses". In anderen Worten, durch
Berechnen von (Multiplikand) × (Multiplikator) +
100 in dem Binärsystem
und durch Weglassen der Stellen von 22 und
niedriger wird ein Berechnungsergebnis erhalten, das an dem sechsthöchsten bzw. sechstsignifikantesten
Bit (Stelle von 22) abgerundet ist. Im folgenden
wird "1", das neu zu dem
sechsthöchsten
Bit addiert wird, als eine "Hilfszahl" bezeichnet.
-
Das heißt, "Runden einer bestimmten Stelle, die
zu runden ist, um einen Wert für
eine Stelle zu erhalten, die nicht niedriger als die bestimmte Stelle
ist" ist gleich
zu "Addieren einer
Hilfszahl zu einer Stelle, die eine Stelle niedriger als die bestimmte
Stelle ist". Andererseits
wird, wie bei einer Addition, dasselbe Additionsergebnis erhalten,
selbst falls die Abfolge der Additionsvorgänge geändert wird. Daher wird kein
Problem auftreten, falls der Vorgang des Addierens der Hilfszahl
während
eines Vorgangs des Aufaddierens von Teilprodukten ausgeführt wird.
-
Die vorliegende Erfindung wurde unter
Berücksichtigung
dieses Punktes gemacht. Dementsprechend wird ein Halbaddierer, der
exklusiv eine Funktion des Addierens einer Hilfszahl aufweist, für eine Stelle
(Ziffer) vorgesehen, die eine Stelle niedriger als die bestimmte
Stelle ist.
-
(A-1) Erste bevorzugte
Ausführungsform:
-
Die 1 und 2 sind Schaltbilder, die
jeweils einen Teil der Struktur einer Multiplizierschaltung 101 entsprechend
einer Ausführungsform
zeigen. In Kombination zeigen die 1 und 2 die gesamte Struktur der
Multiplizierschaltung 101.
-
Ein Multiplikand 1a (= A3 A2 A1 A0) und ein Multiplikator 1b (= B3 B2 B1 B0), die jeweils durch binäre 4-Bit ausgedrückt sind,
werden in die Multiplizierschaltung 101 eingegeben. Das
sechsthöchste bzw.
sechstsignifikanteste Bit wird gerundet, so daß ein binäres 5-Bit Multiplikationsergebnis 2 (=
P7 P6 P5 P4 P3) erhalten wird.
-
Die Multiplizierschaltung 101 weist
einen Übertragssicherung-Additionsteil 31 auf.
Darum wird direkt aus dem Multiplikanden 1a und dem Multiplikator 1b,
d.h. ohne Verwendung einer Rundungsschaltung, die außerhalb
der Multiplizierschaltung 101 vorgesehen ist, durch Runden
des sechsthöchsten
Bit das Multiplikationsergebnis 2 erhältlich.
-
Der Additionsteil 31 wird
durch ein Erzeugungsteil 31a für Teilprodukte und einen Additionsverarbeitungsteil 31b gebildet.
Der Erzeugungsteil 31a für Teilprodukte erzeugt eine
Teilproduktgruppe 6 (die durch Teilprodukte Cij (0 ≤ i, j ≤ 3) gebildet
wird) aus dem Multiplikanden 1a und dem Multiplikator 1b, und
weist dieselbe Struktur wie der herkömmliche Erzeugungsteil 30a für Teilprodukte
auf. Der Erzeugungsteil 31a für Teilprodukte wird durch 16
(= 4 × 4) UND-Gatter
gebildet, deren Ausgaben die Teilproduktgruppe 6 bilden.
Zum Beispiel stellt ein Teilprodukt C30 das
Produkt des signifikantesten Bits A3 des Multiplikanden 1a und
des am wenigsten signifikanten (niedrigwertigsten) Bits B0 des Multiplikators 1b dar.
-
In dem Additionsverarbeitungsteil 31b,
welcher die Teilproduktgruppe 6 empfängt, wird eine Ausrichtung
der Stellen ausgeführt,
und die Stufen, in welchen eine Addition ausgeführt wird, sind angepaßt, wie
durch das gepunktete Gitter dargestellt. In der folgenden Beschreibung
werden die Additionsverarbeitungsstufen durch die Zahl der Stufen,
die von der obersten Stufe gezählt
werden, bezeichnet. In der ersten Stufe werden Halbaddierer 7a und 7c, die
durch den eingekreisten Buchstaben "h" bezeichnet
sind, und ein rundender Halbaddierer 13, der durch das
eingekreiste Symbol "h+" bezeichnet
ist, vorgesehen. In der zweiten Stufe werden Volladdierer 8a, 8b und 8c,
die durch den eingekreisten Buchstaben "f" bezeichnet
sind, vorgesehen. In der dritten Stufe werden Volladdierer 8d, 8e und 8f,
die durch den eingekreisten Buchstaben "f" bezeichnet
sind, vorgesehen. In der vierten, oder der letzten Stufe, wird ein
3-Bit Addierer 9 mit Parallelübertrag vorgesehen.
-
In der ersten Stufe wird das Teilprodukt
C00 (= A0 B0) nicht durch irgendeine Berechnung verarbeitet.
Der Halbaddierer 7c empfängt das Teilprodukt C10 (= A1 B0) und das Teilprodukt C01 (=
A0 B1) und addiert
die zwei in ein 2-Bit Resultat. Die führende Stelle dieser Ausgabe
(d.h. das höhere
Bit) wird an den Volladdierer 8c der zweiten Stufe gegeben.
Der rundende Halbaddierer 13 empfängt das Teilprodukt C11 (= A1 B1) und das Teilprodukt C20 (=
A2 B0) und addiert diese
zwei Teilprodukte und 1 und gibt ein 2-Bit Resultat aus. Das höhere Bit
dieser Ausgabe wird an den Volladdierer 8b der zweiten
Stufe gegeben, während
das niedrigere Bit dieser Ausgabe an den Volladdierer 8c der
zweiten Stufe gegeben wird. Der Halbaddierer 7a empfängt das
Teilprodukt C21 (= A2 B1) und das Teilprodukt C30 (=
A3 B0). Das höhere Bit und
das niedrigere Bit der Summe von diesen zwei Teilprodukten wird
an die Volladdierer 8a bzw. 8b der zweiten Stufe
gegeben.
-
In der zweiten Stufe empfängt der
Volladdierer 8a weiter das Teilprodukt C22 (=
A2 B2) und das Teilprodukt
C31 (= A3 B1), der Volladdierer 8b empfängt weiter
das Teilprodukt C12 (= A1 B2) und der Volladdierer 8c empfängt weiter
das Teilprodukt C02 (= A0 B2). Die Teilprodukte empfangend führen die
entsprechenden Volladdierer die Addition der drei Eingaben aus.
In einer vergleichbaren Art und Weise empfängt in der dritten Stufe der
Volladdierer 8d das Teilprodukt C23 (=
A2 B3) und das Teilprodukt
C32 (= A3 B2) und das höhere Bit des Volladdierers 8a und
gibt einen 2-Bit Wert aus. Der Volladdierer 8e, der das
Teilprodukt C13 (= A1 B3), das niedrigere Bit der Ausgabe des Volladdierers 8a und
das höhere
Bit der Ausgabe des Volladdierers 8b empfängt, gibt
einen 2-Bit Wert aus. Der Volladdierer 8f, der das Teilprodukt
C03 (= A0 B3), das niedrigere Bit der Ausgabe des Volladdierers 8b und
das höhere
Bit der Ausgabe des Volladdierers 8c empfängt, gibt
einen 2-Bit Wert
aus.
-
In der vierten Stufe werden dem 3-Bit
Addierer 9 mit Parallelübertrag
das das Teilprodukt C33 (= A3 B3) und das höhere Bit der Ausgabe des Volladdierers 8d an
einer bzw. für
eine Stelle miteinander ausgerichtet eingegeben, das niedrigere
Bit der Ausgabe des Volladdierers 8d und das höhere Bit
der Ausgabe des Volladdierers 8e werden miteinander ausgerichtet
an einer Stelle eingegeben, und das niedrigere Bit der Ausgabe des
Volladdierers 8e und das höhere Bit der Ausgabe des Volladdierers 8f werden
miteinander ausgerichtet an einer Stelle eingegeben.
-
Das niedrigere Bit der Ausgabe des
Volladdierers 8f wird direkt das niedrigstwertigste Bit
P3 des Multiplikationsergebnisses 2. Die verbleibenden höheren Bits
(P7 P6 P5 P4) des Multiplikationsergebnisses 2 werden
von dem 3-Bit Addierer 9 mit Parallelübertrag ausgegeben.
-
Der rundende Halbaddierer 13 ist
an einer Position angeordnet, an der das sechstsignifikanteste (sechsthöchste) Bit
zu berechnen ist, d.h. an einer Position, an der der Halbaddierer 7b bei
dem herkömmlichen
Additionsverarbeitungsteil 30b, das in 22 gezeigt ist, anzuordnen ist. Dies
ermöglicht, daß eine Hilfszahl "1" zu dem sechsthöchsten Bit addiert wird. Demzufolge
ist, wie in "(A-0)
grundlegende Idee" erläutert, das
Multiplikationsergebnis 2, welches an dem sechsthöchsten Bit
gerundet wurde, und welches daher das signifikanteste bis zum fünftsignifikantesten
Bit aufweist, von der Multiplizierschaltung 101 erhältlich.
Da das Übertragsspar-Verfahren
(carry-save Verfahren) in der ersten bevorzugten Ausführungsform
verwendet wird, ist der Weg der Fortpflanzung des Übertrags
kurz, wodurch ein Hochgeschwindigkeitsbetrieb ermöglicht wird.
-
3 ist
ein Schaltbild, das eine Struktur eines entsprechenden Halbaddierers,
typischerweise des Halbaddierers 7a, des Additionsverarbeitungsteils 31b zeigt. 4 ist ein Schaltbild, das
eine Struktur des rundenden Halbaddierers 13 zeigt. In den 3 und 4 entsprechen die Eingaben K und L den
Teilprodukten, die in 2 gezeigt
sind. Die Ausgaben C und S entsprechen dem höheren Bit und dem niedrigeren
Bit der Ausgabe des Halbaddierers 7a bzw. des rundenden
Halbaddierers 13. Die Ausgabe C entspricht außerdem der
führenden
Stelle. Bei dem Halbaddierer 7a werden ein UND-Gatter 14 und ein
EXOR-Gatter 15 jeweils mit den Eingaben K und L versorgt.
Das UND-Gatter 14 gibt die Ausgabe C und das EXOR-Gatter 15 gibt
die Ausgabe S aus. Derart wird die Summe von "K" und "L", die jeweils aus einem Bit bestehen,
als 2-Bit Wert "CS" erhalten.
-
Andererseits werden in dem rundenden Halbaddierer 13 ein
ODER-Gatter 16 und
ein in EXNOR-Gatter 17 jeweils mit den Eingaben K und L
versorgt, und das ODER-Gatter 16 gibt die Ausgabe C und
das EXNOR-Gatter 17 gibt die Ausgabe S aus. Hier wird die
Summe von "K", "L" und der Hilfszahl "1" als
ein 2-Bit Wert "CS" berechnet.
-
5 ist
ein Schaltbild, das im Detail eine Struktur des UND-Gatters 14 des
Halbaddierers 7a zeigt, und 6 ist
ein Schaltbild, das im Detail eine Struktur des ODER-Gatters 16 des
rundenden Halbaddierers 13 zeigt. Wie durch Vergleich der 5 mit 6 zu verstehen ist, benötigen die
Gatter 14 und 16 jeweils 6 Transistoren. 7 ist ein Schaltbild, das
im Detail eine Struktur des EXOR-Gatters 15 des Halbaddierers 7a zeigt,
und 8 ist ein Schaltbild,
das im Detail eine Struktur des EXNOR-Gatters 17 des rundenden
Halbaddierers 13 zeigt. Wie aus dem Vergleich zwischen
den 7 und 8 offensichtlich ist, benötigen die
Gatter 15 und 17 jeweils zehn Transistoren. Dies
im Licht der in den 3 und 4 gezeigten Strukturen berücksichtigend,
ist zu verstehen, daß die
Schaltungsgrößen der
Halbaddierer 7a und 13 dieselben sind. Demzufolge
wird der Additionsverarbeitungsteil 31b der Multiplizierschaltung 101 mit
derselben Schaltungsgröße wie die
des herkömmlichen
Additionsverarbeitungsteils 30b realisiert.
-
Andererseits ist die Rundungsschaltung 5 nicht
notwendig für
die Multiplizierschaltung 101, und die Multiplizierschaltung 101 wird
in einer kleineren Größe als die
herkömmliche
Multiplizierschaltung 100 ausgebildet. Die Reduktion der
Schaltungsgröße ist für sich selbst
vorteilhaft, und weiter ist es vorteilhaft, daß ein Hochgeschwindigkeitsbetrieb
möglich wird.
-
(A-2) Zweite bevorzugte
Ausführungsform:
-
Eine zweite bevorzugte Ausführungsform
ist eine Anwendung der vorliegenden Erfindung auf eine Multiplikation,
die den Wallace-Baum
(Wallace Tree) verwendet. 9 ist
ein Schaltbild, das eine Struktur eines Additionsverarbeitungsteils 31c zeigt.
Der Additionsverarbeitungsteils 31c und der Erzeugungsteil 31a für Teilprodukte,
der in 1 gezeigt ist,
bilden einen Multiplizierteil 32. In dem Multiplizierteil 32 ist ein
Wallace-Tree-Multiplizierer ausgebildet.
-
Das heißt, daß in dem Additionsverarbeitungsteil 31c,
in den die Teilproduktgruppe 6 eingegeben wird, ein Halbaddierer 7a,
Volladdierer 8a, 8b und 8c und ein Halbaddierer 7b in
dieser Reihenfolge in der ersten Stufe angeordnet sind. In der zweiten Stufe
sind Halbaddierer 7c, 7d, 7e, ein Volladdierer 8b und
ein rundender Halbaddierer 13 in dieser Reihenfolge angeordnet.
In der dritten Stufe sind ein ODER-Gatter 9b und ein 4-Bit
Addierer mit Parallelübertrag 9a in
dieser Reihenfolge angeordnet.
-
In der ersten Stufe wird das Teilprodukt
C00 nicht durch irgendeine Berechnung verarbeitet,
der Halbaddierer 7a empfängt die Teilprodukte C23 und C32, der Volladdierer 8a empfängt die
Teilprodukte C13, C22 und
C31, der Volladdierer 8b empfängt die Teilprodukte
C12, C21 und C30, der Volladdierer 8c empfängt die
Teilprodukte C02, C11 und
C20, und der Halbaddierer 7b empfängt die
Teilprodukte C01 und C10.
Jeder der Halb- und der Volladdierer berechnet die Summe der eingegebenen
Teilprodukte als einen 2-Bit Wert.
-
In der zweiten Stufe empfängt der
Halbaddierer 7c das Teilprodukt C33 und
das höhere
Bit der Ausgabe des Halbaddierers 7a, während der Halbaddierer 7d das
niedrigere Bit der Ausgabe des Halbaddierers 7a und das
höhere
Bit der Ausgabe des Volladdierers 8a empfängt. Der
Halbaddierer 7e empfängt
das niedrigere Bit der Ausgabe des Volladdierers 8a und
das höhere
Bit der Ausgabe des Volladdierers 8b. Der Volladdierer 8d empfängt das
Teilprodukt C03, das niedrigere Bit der
Ausgabe des Volladdierers 8b und das höhere Bit der Ausgabe des Volladdierers 8c.
Der rundende Halbaddierer 13 empfängt das niedrigere Bit der
Ausgabe des Volladdierers 8c und das höhere Bit der Ausgabe des Halbaddierers 7b.
Jeder der Halb- und der Volladdierer berechnet die Summe der eingegebenen
Teilprodukte als einen 2-Bit Wert.
-
In der dritten Stufe werden dem 4-Bit
Addierer mit Parallelübertrag 9a das
niedrigere Bit der Ausgabe des Halbaddierers 7c und das
höhere
Bit der Ausgabe des Halbaddierers 7d miteinander ausgerichtet
an einer Stelle (Ziffer) eingegeben, das niedrigere Bit der Ausgabe
des Halbaddierers 7d und das höhere Bit der Ausgabe des Halbaddierers 7e werden
miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere
Bit der Ausgabe des Halbaddierers 7e und das höhere Bit
der Ausgabe des Volladdierers 8d werden miteinander ausgerichtet
an einer Stelle eingegeben, und das niedrigere Bit der Ausgabe des
Volladdierers 8d und das höhere Bit der Ausgabe des rundenden
Halbaddierers 13 werden miteinander ausgerichtet an einer
Stelle eingegeben. Das ODER-Gatter 9b berechnet die logische
Summe einer Übertragsausgabe
(das signifikanteste Bit) des Addierers 9a mit Parallelübertrag
und des höheren Bits
der Ausgabe des Halbaddierers 7c, so daß das signifikanteste Bit P7 des Multiplikationsergebnisses 2 ausgegeben
wird. Der Addierer mit Parallelübertrag 9a gibt
die verbleibenden höheren
Bits (P6 P5 P4 P3) des Multiplikationsergebnisses 2 aus.
-
Da der rundende Halbaddierer 13 in
einer Position angeordnet ist, an der das sechstsignifikanteste
Bit (das sechsthöchste
Bit) zu berechnen ist, wird eine Hilfszahl zu dem, sechstsignifikantesten
Bit addiert. Demzufolge wird der Effekt der vorliegenden Erfindung
auch dort gesichert, wo eine Multiplikation unter Verwendung des
Wallace-Baums auszuführen ist.
In anderen Worten, es ist möglich,
das Multiplikationsergebnis 2, welches an dem sechstsignifikantesten
Bit gerundet wurde, ohne Verwendung einer extern vorgesehenen Rundungsschaltung
zu erhalten. Noch vorteilhafter ist es, daß der Additionsverarbeitungsteil 31c nur
eine reduzierte Anzahl von Stufen verglichen mit dem Additionsverarbeitungsteil 31b der
ersten bevorzugten Ausführungsform
benötigt.
-
(A-3) Dritte bevorzugte
Ausführungsform:
-
Eine dritte bevorzugte Ausführungsform
ist eine Anwendung der vorliegenden Erfindung auf eine Multiplikation,
die den Booth-Algorithmus verwendet. 10 ist
ein Schaltbild, das eine Struktur einer Multiplizierschaltung 102 zeigt.
Die Multiplizierschaltung 102 wird mit einem 8-Bit Multiplikanden
X7 – X0 und einem 8-Bit Multiplikator Y7 – Y0 versorgt, die negative Zahlen sind, die
jeweils als ein Komplement von 2 ausgedrückt sind. Ohne Verwendung einer
extern vorgesehenen Rundungsschaltung wird ein binäres 12-Bit
Multiplikationsergebnis 21 (= P15...
P5 P4) erhalten,
das an dem dreizehnthöchsten
(dreizehntsignifikantesten) Bit gerundet ist.
-
Die Multiplizierschaltung 102 weist
einen Multiplizierteil 33 auf, der den Booth-Algorithmus übernimmt.
Der Multiplizierteil 33 wird durch einen Erzeugungsteil 33a für Teilprodukte
und einen Additionsverarbeitungsteil 33b gebildet.
-
Der Produkterzeugungsteil 33a erzeugt
vier Teilprodukte aus dem Multiplikanden X7 – X0 und dem Multiplikator Y7 – Y0. Der Produkerzeugungsteil 33a weist
vier Typen von Booth-Erzeugungsschaltungen 331 bis 334 für Teilprodukte
auf. Die Booth-Erzeugungsschaltung 331 für Teilprodukte
erzeugt ein 16-Bit Teilprodukt aus dem Multiplikanden X7 – X0 und den zwei am wenigsten signifikanten
(den zwei niedrigsten) Bits Y1 – Y0 des Multiplikators. Die Booth-Erzeugungsschaltung 332 für Teilprodukte
erzeugt ein 14-Bit Teilprodukt aus dem Multiplikanden X7 – X0 und den fünft-, sechst- und siebtsignifikantesten
Bits Y3 Y2 Y1 des Multiplikators. Die Booth-Erzeugungsschaltung 333 für Teilprodukte
erzeugt ein 12-Bit Teilprodukt aus dem Multiplikanden X7 – X0 und den dritt-, viert- und fünftsignifikantesten Bits Y5 Y4 Y3 des
Multiplikators. Die Booth-Erzeugungsschaltung 334 für Teilprodukte
erzeugt ein 10-Bit Teilprodukt aus dem Multiplikanden X7 – X0 und dem signifikantesten und den zweit-
und drittsignifikantesten Bits Y7 Y6 Y5 des Multiplikators.
-
Diese vier Typen von Teilprodukten
werden in den Additionsverarbeitungsteil 33b eingegeben, wobei
ihre signifikantesten Bits miteinander ausgerichtet sind. Zur Klarheit
der Darstellung zeigt 10 nur
die Bits in der Umgebung der signifikantesten (der höchsten)
und der am wenigsten signifikanten (der niedrigsten) Bits, wie sie
in den Additionsverarbeitungsteil 33b eingegeben werden.
-
Der Additionsverarbeitungsteil 33b ist
als ein Vier-Stufenteil ausgebildet. In der ersten Stufe sind Halbaddierer 7a bis 7l,
ein rundender Halbaddierer 13 und ein Halbaddierer 7m in
dieser Reihenfolge von der Seite der höheren Bits angeordnet. In der zweiten
Stufe sind Volladdierer 8a bis 8l und ein Halbaddierer 7n in
dieser Reihenfolge von der Seite der höheren Bits angeordnet. In der
dritten Stufe sind Volladdierer 8m bis 8v und
Halbaddierer 7o und 7p in dieser Reihenfolge von
der Seite der höheren
Bits angeordnet. In der vierten oder der letzten Stufe ist ein 11-Bit
Addierer 91 angeordnet.
-
11 ist
ein Schaltbild, das die Struktur des Additionsverarbeitungsteils 33b detaillierter
als in 10 zeigt. In
der ersten Stufe werden die Bits der Ausgabe der Booth-Erzeugungsschaltung 331 für Teilprodukte
jeweils in einer abnehmenden Reihenfolge vom signifikantesten zum
vierzehnten Bit in jeweils einen der Halbaddierer 7a bis 7l,
den rundenden Halbaddierer 13 und den Halbaddierer 7m eingegeben.
Zusätzlich
werden die Bits der Ausgabe der Booth-Erzeugungsschaltung 332 für Teilprodukte
jeweils in einer abnehmenden Reihenfolge vom signifikantesten Bit
in jeweils einen dieser Addierer eingegeben.
-
In der zweiten Stufe empfängt der
Volladdierer 8a die Ausgabe des Halbaddierers 7a,
das höhere Bit
der Ausgabe des Halbaddierers 7b und das signifikanteste
Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8b empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7b, das höhere Bit der Ausgabe des Halbaddierers 7c und
das zweite signifikante (zweithöchste)
Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8c empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7c, das höhere Bit der Ausgabe des Halbaddierers 7d und
das drittsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8d empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7d, das höhere Bit der Ausgabe des Halbaddierers 7e und
das viertsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8e empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7e, das höhere Bit der Ausgabe des Halbaddierers 7f und
das fünftsignifikanteste
Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8f empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7f, das höhere Bit der Ausgabe des Halbaddierers 7g und
das sechstsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8g empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7g, das höhere Bit der Ausgabe des Halbaddierers 7h und
das siebtsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8h empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7h, das höhere Bit der Ausgabe des Halbaddierers 7i und
das achtsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; der
Volladdierer 8i empfängt
das niedrigere Bit der Ausgabe des Halbaddierers 7i, das
höhere
Bit der Ausgabe des Halbaddierers 7j und das neuntsignifikanteste
Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8j empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7j, das höhere Bit der Ausgabe des Halbaddierers 7k und
das zehntsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte;
der Volladdierer 8k empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7k, das höhere Bit der Ausgabe des Halbaddierers 7l und
das elftsignifikanteste Bit der Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte; und
der Volladdierer 8l empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 7l, das höhere Bit der Ausgabe des rundenden
Halbaddierers 13 und das zwölftsignifikanteste Bit der
Ausgabe der Booth-Erzeugungsschaltung 333 für Teilprodukte. Der
Halbaddierer 7n empfängt
das niedrigere Bit der Ausgabe des rundenden Halbaddierers 13 und
das höhere
Bit der Ausgabe des Halbaddierers 7m.
-
In der dritten Stufe empfängt der
Volladdierer 8m die Ausgabe des Halbaddierers 8a,
das höhere Bit
der Ausgabe des Halbaddierers 8b und signifikanteste Bit
der Ausgabe der Booth-Erzeugungsschaltung 334 für Teilprodukte
(im folgenden Absatz Erzeugungsschaltung 334 genannt);
der Volladdierer 8n empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 8b, das höhere Bit der Ausgabe des Halbaddierers 8c und
das zweitsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334;
der Volladdierer 8o empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 8c, das höhere Bit der Ausgabe des Halbaddierers 8d und
das drittsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334;
der Volladdierer 8p empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 8d, das höhere Bit der Ausgabe des Halbaddierers 8e und
das viertsignifikanteste Bit der Ausgabe der Erzeugungsschaltung 334;
der Volladdierer 8q empfängt das niedrigere Bit der
Ausgabe des Halbaddierers 8e, das höhere Bit der Ausgabe des Halbaddierers 8f und
das fünftsignifikanteste
Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8r empfängt das
niedrigere Bit der Ausgabe des Halbaddierers 8f, das höhere Bit
der Ausgabe des Halbaddierers 8g und das sechstsignifikanteste Bit
der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8s empfängt das
niedrigere Bit der Ausgabe des Halbaddierers 8g, das höhere Bit
der Ausgabe des Halbaddierers 8h und das siebtsignifikanteste
Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8t empfängt das
niedrigere Bit der Ausgabe des Halbaddierers 8h, das höhere Bit
der Ausgabe des Halbaddierers 8i und das achtsignifikanteste
Bit der Ausgabe der Erzeugungsschaltung 334; der Volladdierer 8u empfängt das
niedrigere Bit der Ausgabe des Halbaddierers 8i, das höhere Bit der
Ausgabe des Halbaddierers 8j und das neuntsignifikanteste
Bit der Ausgabe der Erzeugungsschaltung 334; und der Volladdierer 8v empfängt das
niedrigere Bit der Ausgabe des Halbaddierers 8j, das höhere Bit
der Ausgabe des Halbaddierers 8k und das zehntsignifikanteste
Bit der Ausgabe der Erzeugungsschaltung 334. Der Halbaddierers 7o empfängt das
niedrigere Bit der Ausgabe des Volladdierers 8k, das höhere Bit
der Ausgabe des Volladdierers 8l, während der Halbaddierer 7p das
niedrigere Bit der Ausgabe des Halbaddierers 8l und das
höhere
Bit der Ausgabe des Halbaddierers 7n empfängt.
-
In der vierten Stufe werden dem 11-Bit
Addierer 91 die Ausgabe des Volladdierers 8m und
das höhere
Bit der Ausgabe des Volladdierers 8n miteinander ausgerichtet
an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8n und das
höhere
Bit der Ausgabe des Volladdierers 8o werden miteinander
ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der
Ausgabe des Volladdierers 8o und das höhere Bit der Ausgabe des Volladdierers 8p werden
miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere
Bit der Ausgabe des Volladdierers 8p und das höhere Bit
der Ausgabe des Volladdierers 8q werden miteinander ausgerichtet
an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8q und
das höhere Bit
der Ausgabe des Volladdierers 8r werden miteinander ausgerichtet
an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8r und das
höhere
Bit der Ausgabe des Volladdierers 8s werden miteinander
ausgerichtet an einer Stelle eingegeben, das niedrigere Bit der
Ausgabe des Volladdierers 8s und das höhere Bit der Ausgabe des Volladdierers 8t werden
miteinander ausgerichtet an einer Stelle eingegeben, das niedrigere
Bit der Ausgabe des Volladdierers 8t und das höhere Bit
der Ausgabe des Volladdierers 8u werden miteinander ausgerichtet
an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8u und
das höhere Bit
der Ausgabe des Volladdierers 8v werden miteinander ausgerichtet
an einer Stelle eingegeben, das niedrigere Bit der Ausgabe des Volladdierers 8v und das
höhere
Bit der Ausgabe des Halbaddierers 7o werden miteinander
ausgerichtet an einer Stelle eingegeben, und das niedrigere Bit
der Ausgabe des Halbaddierers 7o und das höhere Bit
der Ausgabe des Halbaddierers 7p werden miteinander ausgerichtet
an einer Stelle eingegeben. Als Ergebnis ergibt die Ausgabe des
Addierers 91 die höheren
Bits des Multiplikationsergebnisses 21 (P15 bis
P5). Das am wenigsten signifikante (das
niedrigste) Bit P4 des Multiplikationsergebnisses 21 ist
das niedrigere Bit der Ausgabe des Halbaddierers 7p.
-
Da der rundende Halbaddierer 13 in
einer Position angeordnet ist, in der das dreizehntsignifikanteste
Bit zu berechnen ist, wird eine Hilfszahl zu dem dreizehntsignifikantesten
Bit addiert. Daher wird der Effekt der vorliegenden Erfindung auch
dort gesichert, wo eine Multiplikation unter Verwendung des Booth-Algorithmus
auszuführen
ist. In anderen Worten, es ist möglich,
das Multiplikationsergebnis 21, welches an dem dreizehntsignifikantesten
Bit (an der dreizehnten Stelle auf die zwölfte Stelle) gerundet ist, ohne
Verwendung einer extern vorgesehenen Rundungsschaltung zu erhalten.
-
Wie oben beschrieben, ist der rundende Halbaddierer 13 an
einer Position angeordnet, an der das dreizehntsignifikanteste Bit
zu berechnen ist. Es folgt daraus, daß der rundende Halbaddierer 13 in anderen
Stufen angeordnet sein kann und nicht notwendigerweise wie im Fall
des Additionsverarbeitungsteiles 33b in der ersten Stufe
angeordnet sein muß. 12 ist ein Schaltbild eines
Additionsverarbeitungsteils 33c, der dem Additionsverarbeitungsteil 33b in
der Struktur gleich ist, wobei er so modifiziert ist, daß der Halbaddierer 7n und
der rundende Halbaddierer 13 gegeneinander ausgetauscht
sind.
-
Wenn der Additionsverarbeitungsteils 33c mit
einer solchen Struktur in Kombination mit dem Produkterzeugungsteil 33a verwendet
wird, ist die vorliegende Erfindung auf eine Multiplikation, die
den Booth-Algorithmus verwendet, anwendbar.
-
B. Divisionsschaltung:
-
(B-0) Grundlegende Idee:
-
Die grundlegende Idee wird vor der
Diskussion von Details beschrieben. Es wird als Beispiel angenommen,
daß ein
8-Bit Dividend A (= A7 A6...
A0) durch einen 8-Bit Divisor (Teiler) B
(= B7 B6... B0) > A geteilt
wird, um einen gerundeten Quotienten zu erhalten, der kleiner als
1 ist. Zum Erhalt des Divisionsergebnisses, welches auf die achte
Dezimalstelle gerundet ist, ist A ÷ B zu berechnen, und 2–9 ist
zu dem Quotienten zu addieren. Der gewünschte Quotient, der auf die
achte Stelle nach dem Komma (Radixpunkt) gerundet ist, wird als
Ergebnis erhalten. Kurz gesagt ist Q = A ÷ B + 2–9 auf
acht Dezimalstellen zu berechnen.
-
Die obige Gleichung kann zu Q = (A
+ B × 2–9) ÷ B modifiziert
werden. Daher ist das gewünschte Berechnungsergebnis
durch Teilung eines neu angenommenen Dividenden (A + B × 2–9)
durch den Divisor B auf die acht Dezimalstellen erhältlich.
-
Speziell in diesem Fall, während das niedrigstwertige
Bit ein Gewicht (Stelle) von 20 hat, hat
das signifikanteste Bit von B × 2–9 ein
Gewicht von 2–2.
Darum ist das Berechnungsergebnis, das aus dem neuen Dividenden
(A + B × 2–9)
erhalten wird, ein 17-Bit
Wert (A7 A6... A0 0 B7 B6...
B1 B0), der durch
B bis zur Stelle von 2–8 dividiert werden sollte
(d.h. bis zur achten Stelle ab dem Komma bzw. Radixpunkt). Bis dahin
werden von dem 17-Bit Wert die höheren 16-Bits
benötigt,
was impliziert, das es notwendig ist (A7 A6... A0 0 B7 B6... B1) durch (B7 B6... B0) zu teilen. Daher
gibt es keine Notwendigkeit, erneut die Rundungsschaltung 5 wie
bei der herkömmlichen
Technik vorzusehen oder einen Quotienten von der neunten Stelle
ab dem Radixpunkt zu berechnen, was das Weglassen einer Stufe der
Struktur der Quotientenbestimmungschaltung ermöglicht.
-
(B-1) Vierte bevorzugte
Ausführungsform:
-
13 ist
ein Schaltbild, das eine Struktur einer Divisionsschaltung 201 zeigt.
Die Divisionsschaltung 201 ist zum Dividieren eines 8-Bit
Dividenden A durch einen 8-Bit Divisor B (> A) und zum Runden der neunten Stelle
ab dem Komma (Radixpunkt) aufgebaut, um dadurch einen Quotienten
bis zur achten Stelle ab dem Komma zu erhalten. Zu diesem Zweck
weist die Divisionsschaltung 201 1-Bit Bestimmungsteiler 12a bis 12h auf.
-
Zuerst werden der 8-Bit Dividend
A und der 8-Bit Divisor B an den 1-Bit Quotientenbestimmungsteil 12a gegeben.
Da die Beziehung A < B
erfüllt
ist, ist der Wert vor dem Komma (Radixpunkt) immer 0. Daher wird
der Wert "0" auch an den 1-Bit
Quotientenbestimmungsteil 12a gegeben. In dem 1-Bit Quotientenbestimmungsteil 12a wird
der Wert "0" zu dem bzw, an das
Ende des 8-Bit Dividenden A addiert (an das Ende addiert bedeutet,
daß "0" an dem Ende hinzugefügt bzw,
an das Ende gefügt
wird), so daß ein 9-Bit
Wert (A7 A6... A0 0) erzeugt wird. Dieser Wert entspricht
den neun signifikantesten Bits des neuen 17-Bit Dividenden, welcher
in "(B-0) grundlegende Idee" erläutert wurde.
Da in dem 1-Bit Quotientenbestimmungsteil 12a nur ein Quotient
für ein
Bit zu bestimmen ist, gibt es keine Notwendigkeit, alle Stellen des
neuen 17-Bit Dividenden zu berechnen und den 17-Bit Dividenden durch
den Divisor B zu teilen. Es ist vielmehr nur notwendig, den 1-Bit
Wert "0" an das Ende des
8-Bit Dividenden A zu addieren. Auf diese Art und Weise werden der
Quotient q7 für die signifikanteste Stelle
(die Stelle nach dem Komma) und der 8-Bit Rest R8 in
dem 1-Bit Quotientenbestimmungsteil 12a berechnet. 14 ist eine erläuternde
Darstellung, die Berechnung in dem 1-Bit Quotientenbestimmungsteil 12a in
der Form einer Berechnung mit Platzhaltern darstellt.
-
Als nächstes werden der 8-Bit Rest
R8 und der 8-Bit Divisor B an den 1-Bit
Quotientenbestimmungsteil 12b gegeben. Weiter wird in scharfem
Gegensatz zu der herkömmlichen
Technik nicht nur der Wert "0", sondern auch der
signifikanteste Wert B7 des Divisors B,
welcher dem zehntsignifikanten Bit des neuen Dividenden entspricht,
an den 1-Bit Quotientenbestimmungsteil 12b gegeben. In
dem 1-Bit Quotientenbestimmungsteil 12b wird der Wert B7 zu dem Ende des 8-Bit Restes R8 zu
Erzeugung eines 9-Bit Wertes addiert, welcher dann durch den Divisor B
geteilt wird. 15 ist
eine erläuternde
Darstellung, die Berechnung in dem 1-Bit Quotientenbestimmungsteil 12b in
der Form einer Berechnung mit Platzhaltern zeigt. Wie in 15 gezeigt, ist das Addieren
des Wertes B7 an das Ende des 8-Bit Restes R8 und nachfolgende Dividieren des resultierenden Wertes
durch den Divisor B, soweit die Bestimmung des 1-Bit Quotienten
für die
zweite Stelle ab dem Komma betroffen ist, gleich einer Division
des neuen 17-Bit Dividenden durch den Divisor B. Auf diese Weise
werden der 1-Bit Quotient q6 für die zweite Stelle
ab dem Komma und der 8-Bit Rest R7 in dem 1-Bit
Quotientenbestimmungsteil 12b berechnet.
-
In vergleichbarer Weise werden die
1-Bit Quotientenbestimmungsteile 12c bis 12h entsprechend
mit Resten R7 bis R2 versorgt,
die in den entsprechenden vorhergehenden 1-Bit Quotientenbestimmungsteilen 12b bis 12g berechnet
werden. Bezüglich
des Divisors B werden 1-Bit Werte B6 bis
B1, die den Divisor B bilden, ebenso an
die 1-Bit Quotientenbestimmungsteile 12c bis 12h gegeben,
und entsprechend an die Enden der Reste R7 bis
R2 addiert. Die 1-Bit Quotientenbestimmungsteile 12c bis 12h geben
entsprechend 1-Bit Quotienten q5 bis q0 aus.
-
Derart wird durch Addieren (Hinzufügen) eines
1-Bit Wertes, der zu dem Divisor gehört, an das Ende des Dividenden
in jedem der 1-Bit Quotientenbestimmungsteile die Division des neuen
17-Bit Dividenden durch den Divisor B im wesentlichen durchgeführt. Daher
ist es, wie in "(B-0)
grundlegende Idee" beschrieben,
möglich,
an der neunten Stelle hinter dem Komma (Radixpunkt) zu runden, um
dadurch einen Quotienten mit acht Stellen ab dem Komma zu erhalten.
-
Es ist anzumerken, daß in dem
Fall, in dem ein Quotient bis zur siebten Stelle von dem Komma durch
Teilung eines 8-Bit Dividenden A durch einen 8-Bit Divisor B (> A) und die nachfolgende
Rundung an der achten Stelle zu berechnen ist, der neue Dividend
ein 16-Bit Wert
(A7 A6... A0 B7 B6...
B) ist, und der 1-Bit Quotientenbestimmungsteil 12a nicht
notwendig ist. 16 ist
ein Schaltbild, das eine Struktur einer Divisionsschaltung 201a zeigt,
die dort zu verwenden ist, wo eine solche Berechnung auszuführen ist.
An den 1-Bit Quotientenbestimmungsteil 12b wird der Dividend
A anstelle des Restes R8 gegeben. In dem
1-Bit Quotientenbestimmungsteil 12b wird der Wert B7 zu dem Ende des Dividenden A addiert. Die folgenden
Berechnungen sind dieselben wie die in der Divisionsschaltung 201 ausgeführten.
-
Zur Berechnung eines Quotienten herunter zur
neunten Stelle ab dem Komma (Radixpunkt) durch Teilen eines 8-Bit
Dividenden A durch einen 8-Bit Divisor B (> A) und durch nachfolgendes Runden der
zehnten Stelle, ist ein 18-Bit Wert (A7 A6... A0 0 0 B7 B6... B) als neuer
Dividend zu verwenden. Daher ist in diesem Fall ein neuer 1-Bit
Quotientenbestimmungsteil 12x vorzusehen. 17 ist ein Schaltbild, das die Struktur
einer Divisionsschaltung 201b zeigt, die in dem Fall zu
verwenden ist, in dem eine solche Berechnung auszuführen ist.
Der 1-Bit Quotientenbestimmungsteil 12x empfängt den
Dividenden A, den Divisor B und einen 1-stelligen Wert "0" und dividiert die 9-Bit Zahl (A7 A6... A0 0) durch den Divisor B, wodurch ein 1-Bit
Quotient q8 und ein 8-Bit Rest R9 erhalten werden. Als nächstes wird in dem 1-Bit Quotientenbestimmungsteil 12a ein
1-stelliger Wert "0" zu dem Ende des
Restes R9 addiert. Die folgenden Berechnungen
dieselben wie die in der Divisionsschaltung 201 ausgeführten.
-
Anders als bei der herkömmlichen
Divisionsschaltung benötigen
die Divisionsschaltungen 201, 201a und 201b die
Rundungsschaltung 5 nicht. Zusätzlich weisen diese Divisionsschaltungen
ein Stufe von 1-Bit Quotientenbestimmungsschaltungen weniger auf.
Desweiteren weisen die in diesen Divisionsschaltungen verwendeten
1-Bit Quotientenbestimmungsschaltungen dieselbe Struktur wie die
in der herkömmlichen
Divisionsschaltung verwendeten auf, und daher ist die Schaltungsgröße für eine Stufe
ungefähr
dieselbe wie bei herkömmlichen
Divisionsschaltung. Daher sind eine kleinere Schaltungsgröße und ein
schnellerer Betrieb als in der herkömmlichen Divisionsschaltung
in diesen Divisionsschaltungen möglich.
-
(B-2) Fünfte bevorzugte
Ausführungsform:
-
Bei der vorliegenden Erfindung kann,
falls die Stelle der Rundungsposition an der L-ten Stelle ab dem
Komma (Radixpunkt) angeordnet ist, abhängig von der Beziehung zwischen
der Anzahl der Stellen des Dividenden M und der Anzahl L, die Divisionsschaltung
verschiedene Strukturen aufweisen. Die vierte bevorzugte Ausführungsform
entspricht dem Fall, in dem die Beziehung L ≥ M gilt, und daher wird der "neue Dividend" in einer relativ
einfachen Art und Weise berechnet. Falls jedoch die Beziehung zwischen
L und M gleich L < M
ist, ist es in einigen Fällen
notwendig, einen Addierer vor den 1-Bit Quotientenbestimmungsschaltungen
vorzusehen. Die fünfte
bevorzugte Ausführungsform
behandelt einen solchen Fall.
-
18 ist
ein Schaltbild, das die Struktur einer Divisionsschaltung 202 zeigt.
Die Divisionsschaltung 202 ist eine Schaltung zum Dividieren
eines 8-Bit Dividenden A durch 8-Bit Divisor B (> A) und zum nachfolgenden Runden der fünften Stelle
ab dem Komma (Radixpunkt) um einen Quotienten mit vier Stellen ab
dem Komma zu erhalten. Die Divisionsschaltung 202 weist
1-Bit Bestimmungsteile 12b bis 12e und einen Addierer 19 auf.
Aus dem neuen Dividenden (A + B × 2–5)
werden 13 Bit [A7, A6,
A5, A4, A3, (A2 + B7), (A1 + B6), (A0 + B5), B4, B3, B2, B1,
B0) als Berechnungsergebnis erhalten. Hier
müssen,
in dem Addierer 19, die drei signifikantesten Bits des
Divisors B zu den niedrigsten (am wenigsten signifikanten) Bits
des Dividenden A addiert (aufaddiert) werden. In anderen Worten
werden der Dividend A und die relativ höheren drei Stellen B7, B6 und B5, welche den Divisor B bilden, dem Addierer 19 eingegeben.
-
Nun wird angenommen, daß im binären System
A ÷ B < 0.111111. In diesem
Fall ist ein (gerundeter) Quotient 22, der zu berechnen
ist, kleiner als 1, und daher ist der Wert der Stelle vor dem Komma (Radixpunkt) "0". Demzufolge wird die Ausgabe R5 des Addierers 19 in 8 Bit ausgedrückt. Die
Ausgabe R5 entspricht den acht signifikantesten
(höchsten) Bits
des neuen Dividenden (A + B × 2–5)
.
-
Die Ausgabe R5 des
Addierers 19 und der Divisor B werden dem 1-Bit Quotientenbestimmungsteil 12b eingegeben.
Das viertsignifikanteste Bit B4 des Divisors
B wird außerdem
an den 1-Bit Quotientenbestimmungsteil 12b gegeben und
an das Ende der Ausgabe R5 addiert (hinzugefügt). Der
1-Bit Quotientenbestimmungsteil 12b führt eine Division in vergleichbarer
Art und Weise zu der vierten Ausführungsform aus. 19 ist eine erläuternde
Darstellung, die die Berechnung in dem 1-Bit Quotientenbestimmungsteil 12b in
der Form einer Berechnung mit Platzhaltern zeigt. Wie in 19 gezeigt, sind das Addieren
des Wertes B4 an das Ende der Ausgabe R5 und das Dividieren des resultierenden Wertes
durch den Divisor B, soweit die Bestimmung des 1-Bit Quotienten
für das
erste signifikante Bit ab dem Komma (Radixpunkt) betroffen ist,
gleich einer Teilung des neuen 13-Bit Dividenden durch den Divisor
B. Auf diese Art werden in dem 1-Bit Quotientenbestimmungsteil 12b ein
Quotient q3 für das erste signifikante Bit
ab dem Komma und ein 8-Bit Rest R4 berechnet.
-
Nachfolgend werden vergleichbar zu
der vierten bevorzugten Ausführungsform
1-Bit Quotienten q2, q1 und
q0 in diese Reihenfolge berechnet. Durch
Berechnung des Quotienten q0, welcher an
der vierten Stelle ab dem Komma (Radixpunkt) ist, wird der gewünschte Quotient 22 erhalten.
-
Bei der fünften bevorzugten Ausführungsform
ist es, vergleichbar zu der vierten bevorzugten Ausführungsform,
nicht notwendig, den neuen Dividenden als Gesamtes zu einem Zeitpunkt
zu berechnen. Die Divisionsschaltung entsprechend dieser Ausführungsform
weist nur dieselbe Anzahl von 1-Bit Quotientenbestimmungsteilen
wie die Anzahl der Stellen, die zu berechnen sind, auf. Während die Rundungsschaltung 5 nicht
notwendig ist, wird der Addierer 19 benötigt. Demzufolge weist die
Schaltungsstruktur der Divisionsschaltung entsprechend dieser Ausführungsform
eine Stufe weniger verglichen mit der herkömmlichen Divisionsschaltung
auf. Dieses reduziert die Schaltungsgröße und ermöglicht eine höhere Betriebsgeschwindigkeit.
-
Die vorliegende Erfindung ist auch
auf den Fall anwendbar, in dem A ÷ B < 0.11111 im binären System nicht erfüllt ist.
In diesem Fall ist der zu berechnende (gerundete) Quotient 22 gleich
oder größer als
1, und sein Wert an der Stelle vor dem Komma (Radixpunkt) ist "1". Daher wird die Ausgabe R5 des
Addierers 19 in 9-Bit ausgedrückt. Die Ausgabe R5 entspricht
dem neun signifikantesten (höchsten) Bits
des neuen Dividenden (A + B × 2–5).
-
20 ist
ein Schaltbild, das eine Struktur einer Divisionsschaltung 203 zeigt,
die auf den Fall anwendbar ist, in dem es die Möglichkeit gibt, das eine wie
oben beschriebene Beziehung zwischen dem Dividenden A und dem Divisor
B existiert. Die Divisionsschaltung 203 ist gleich der
Struktur der Divisionsschaltung 202, die so modifiziert
ist, daß sie neu
einen 1-Bit Quotientenbestimmungsteil 12a zwischen dem
Addierer 19 und dem 1-Bit Quotientenbestimmungsteil 12b aufweist.
-
Auf dieselbe Art wie der Addierer 19 in
der Divisionsschaltung 202 addiert der Addierer 19 die relativ
höheren
3-Bit B7, B6 und
B5, die den Divisor B bilden, zu dem Dividenden
A, wobei das am wenigsten signifikante Bit dieser drei Bits mit
dem am wenigsten signifikanten Bit des Dividenden A ausgerichtet
wird. Als Ergebnis wird die 9-Bit Ausgabe R6 von dem
Addierer 19 an den 1-Bit Quotientenbestimmungsteil 12a ausgegeben.
-
Der 1-Bit Quotientenbestimmungsteil 12a wird
mit dem Divisor B versorgt, so daß ein Quotient q4 für das erste
Bit vor dem Komma (Radixpunkt) berechnet wird. Falls im binären System
A ÷ B < 0.11111 ist, ist
der Quotient q4 gleich 0 und andernfalls
1. Der 1-Bit Quotientenbestimmungsteil 12a gibt den 8-Bit Rest
R5 ebenso zusätzlich zu dem Quotienten q4 aus.
-
Darauf folgend werden Berechnungen
vergleichbar zu denen, die in der Divisionsschaltung 202 ausgeführt werden,
ausgeführt,
um dadurch den Quotienten 22, der an der fünften Stelle
nach dem Komma (Radixpunkt) (d.h. auf die vierte Stelle) gerundet
ist, zu erhalten, und der daher eventuell vier Stellen aufweist.
-
Für
die Divisionsschaltung 203 muß ein 1-Bit Quotientenbestimmungsteil
mehr als die Anzahl der Dezimalstellen (d.h. der Stellen), die zu
berechnen sind, vorgesehen werden, wobei die Struktur dieselbe wie
bei herkömmlichen
Divisionsschaltung ist. Während
die Rundungsschaltung 5 nicht notwendig ist, wird der Addierer 19 benötigt. Demzufolge
ist eine große
Reduzierung der Schaltungsgröße verglichen mit
der herkömmlichen
Divisionsschaltung unmöglich.
Jedoch ist es, während
es bei der herkömmlichen
Technik notwendig ist, Berechnungen bis zu einer Stelle auszuführen, die
eine Stelle niedriger als die Stelle ist, bis zu welcher der Quotient
letztendlich zu berechnen ist, bei der Divisionsschaltung 203 möglich, ein
bereits gerundetes Resultat seriell bzw. aufeinanderfolgend von
der signifikantesten bzw. höchsten
Stelle ab zu erhalten. Das ist dahingehend vorteilhaft, daß das gewünschte Resultat
seriell vom signifikantesten Bit, welches die wichtigste Information
trägt,
erhältlich
ist, obwohl es noch nicht vollständig
berechnet ist.
-
Obwohl die bevorzugten Ausführungsformen,
die zuvor beschrieben wurden, alle Werte behandeln, die alle binäre Zahlen
sind, ist die vorliegende Erfindung nicht nur auf binäre Multiplikation
und binäre
Division anwendbar. Die vorliegende Erfindung ist vielmehr allgemein
anwendbar auf eine Multiplikation und eine Division in irgendeinem
Zahlensystem bzw. numerischen System, in dem die Grundzahl (Radix)
D eine Ganzzahl (Integer) ist, die gleich zu oder größer als 2 ist.
In diesem Fall ist in der Multiplizierschaltung als eine Hilfszahl
eine Minimalzahl, die gleich oder größer als die Hälfte des
Wertes D ist, zu verwenden.