DE3303269A1 - Verfahren und vorrichtung zur division von bcd-zahlen - Google Patents
Verfahren und vorrichtung zur division von bcd-zahlenInfo
- Publication number
- DE3303269A1 DE3303269A1 DE19833303269 DE3303269A DE3303269A1 DE 3303269 A1 DE3303269 A1 DE 3303269A1 DE 19833303269 DE19833303269 DE 19833303269 DE 3303269 A DE3303269 A DE 3303269A DE 3303269 A1 DE3303269 A1 DE 3303269A1
- Authority
- DE
- Germany
- Prior art keywords
- quotient
- divisor
- dividend
- bits
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/491—Computations with decimal numbers radix 12 or 20.
- G06F7/4915—Multiplying; Dividing
- G06F7/4917—Dividing
Landscapes
- Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Description
HITACHI, LTD., Tokyo
Japan
Japan
Verfahren und Vorrichtung zur Division von BCD-Zahlen
Die Erfindung betrifft ein Verfahren und eine Vorrichtung zur Division von BCD-Zahlen, bei denen ein Quotient
in BCD-Darsteilung durch Bezug auf eine Quotientenvoraussagetabelle
Ziffer für Ziffer bestimmt wird.
Es sind bereits Verfahren zur Division von Binärzahlen bekannt, die zur Beschleunigung der Verarbeitung
der arithmetischen Operation eine Quotientenvoraussagetabelle verwenden. In gleicher Weise kann man bei der Division
von BCD-Zahlen zur ziffernweisen Bestimmung eines Quotienten in BCD-Darstellung eine Quotientenvoraussagetabelle
verwenden, wobei die Verarbeitung mit der höchstwertigen Stelle beginnt.
In Fig. 1 der Zeichnung ist eine bekannte Vorrichtung zur Division von BCD-Zahlen dargestellt, wo die
Quotientenvoraussagetabelle verwendet wird. Bei der in Fig. 1 dargestellten Vorrichtung wird ein Dividend in
ein Dividendenregister 1 und ein Divisor in ein Divisor-
jju
register 3 geladen und zusammen mit einem ausgewählten Vielfachen des Divisors, das in einem Divisor-Vielfachen
Register 7 gespeichert ist, den Eingängen eines Dezimaladdierers Ί 8 angelegt. Außerdem werden jeweils die
höherwertigen Bitstellen des Dividendenregisters 1 und des Divisorregisters 3 einer Quotientenvoraussagetabelle
4 eingegeben, und ein vorausgesagter Quotient wird in ein Quotientenvoraussageregister 5 geladen.
Der von einer Quotientenbestimmungsschaltung 6 bestimmte Quotient wird in ein Quotientenregister 2 geladen.
Die Quotientenvoraussagetabelle enthält vorausgesagte Quotienten, die jeweils aus einer vier Bit umfaseenden
Ziffer der BCD-Zahl bestehen, die durch die Kombination eines Eingangswerts des Dividenden mit einem Eingangswert des Divisors bestimmt wird. Die in der Quotientenvoraussagetabelle
gespeicherten Quotientenwerte sind
t Il
der richtige Quotient und der um 1 erhöhte Quotient. Ob der Wert dem richtigen Quotienten entspricht, wird
aufgrund eines Übertrags bei der momentanen Subtraktion eines Divisorvielfachen vom Dividenden entschieden.
Wenn im Gegensatz kein übertrag erzeugt wird, heißt das, daß die Subtraktion bereichsüberschreitend ist. Dann wird
ein einfaches Vielfaches des Divisors addiert.
Im folgenden wird das herkömmliche BCD-Divisionsverfahren
näher beschrieben.
Zur Bestimmung des Quotienten einer BCD-Zahl aufgrund der vom Dividendenregister 1 und der vom Divisorregister
zur Verfügung gestellten Werte, wird auf einen vorhergesagten Quotienten in der Quotientenvoraussagetabelle
abhängig von einer aufgrund einer vorgegebenen Anzahl
* f
höherwertiger Bitstellen des im Dividendenregister 1
gespeicherten Dividenden und aufgrund einer vorgegebenen Anzahl höherwertiger Bitstellen des im Divisorregistor
gespeicherten Divisors ermittelten Adresse geschlossen.
ausgelesene/
Der / vorhergesagte Quotient wird in das Quotienten-
Der / vorhergesagte Quotient wird in das Quotienten-
voraussageregister 5, das man folglich auch Register des
vorausgesagten Quotienten nennen kann, geladen. Folglich wird aus der Registergruppe 7f in der jeweils vorgegebene
Vielfache des Divisors gespeichert sind, jeweils das Register ausgewählt, das der vorausgesagte Quotient
angibt. Das ausgewählte Vielfache "Y" des Divisors wird dann dem Dezimaladdierer 8 eingegeben und vom Dividenden
des Wertes HX" subtrahiert.
Wenn diese Subtraktion ein positives Ergebnis hat (d. h. "X" - "Y" ^ O), wird der vom Dezimaladdierer
ausgegebene Wert (das ist der Zwischenrest) zum Dividendenregister
1 übertragen und darin gespeichert. Somit kann man das Dividendenregister 1 auch als Zwischenrestregister
bezeichnen.
Gleichzeitig wird der Inhalt des Quotientenvoraussageregisters 5 unverändert durch die Quotienten^bestimmungsschaltung
6 dem Quotientenregister 2 übertragen und darin gespeichert.
Nachdem der Quotient und der Zwischenrest jeweils im Register 2 und Register 1 gespeichert wurden, wird der
Inhalt beider Register jeweils um eine Ziffer der BCD-Zahl nach links verschoben.
Wenn die oben erwähnte Subtraktion den Bereich überschreitet
00U0ZD3
d. h.,daß das Subtraktionsergebnis negativ ist ("X" - "Y"<:o)
wird der vom Dezimaladdierer 8 ausgegebene Wert zunächst
dem Dividendenregister 1 übertragen und darin abgespeichert. Außerdem wird der angegebene Wert dem Dezimaladdierer
8 erneut eingegeben und mit dem einfachen Vielfachen des im Divisorregister 3 stehenden Divisors
addiert.
Das Additionsergebnis wird als Zwischenrest dgn Dividenden
register 1 übertragen und darin abgespeichert. Gleichzeitig wird ein dem Inhalt des Quotientenvoraussageregisters
2 minus "1" entsprechender Wert von der Quotientenbestimmungsschaltung 6 gewählt, dem Quotientenregister
2 übertragen und darin gespeichert.
Auf diese Weise wird im Falle der bereichsüberschreitenden Subtraktion der Zwischenrest korrigiert, indem er
mit dem einfachen Vielfachen des Divisors addiert wird, wodurch in der Folge die Quotientenziffer den korrekten
Wert annimmt. Nach dem Laden des Zwischenrests und des Quotienten werden das Dividendenregister 1 und das
Quotientenregister 2 jeweils um eine Ziffer oder Stelle der BCD-Zahl nach links verschoben. Auf diese Weise werden
die oben beschriebenen Operationen einige benötigte Male wiederholt und der Quotient in BCD-Darstellung im
Quotientenregister 2 Ziffer für Ziffer von der höchstwertigen Ziffer an gebildet.
Bei der in Fig. 1 dargestellten BCD-Divisionsvorrichtung
wird eine Quotientenvoraussagetabelle benötigt, die die Auslese des vorausgesagten Quotienten selbst (d. h. des
um
richtigen Quotienten oder des/'"!" größeren Werts)
richtigen Quotienten oder des/'"!" größeren Werts)
♦ * «ι
— 9 —
entsprechend jeder Kombination des Dividendenwerts und des Divisorwerts ermöglicht. In diesem Zusammenhang soll
erwähnt werden, daß zur Bestimmung des auf zwei mögliche.. Werte beschränkten Quotienten zumindest
drei Ziffern des Dividenden und zwei Ziffern des Divisors benötigt werden.
Fig. 2 stellt einen Teil der in Fig. 1 angegebenen Quotientenvoraussagetabelle 4 dar. In dieser Tabelle sind
in Reihen die Dividenden und in Spalten die Divisoren aufgelistet. Diese Teiltabelle weist einen Teil der
Werte auf, die der Quotient aufgrund der Kombination der Dividendenwerte mit den Divisorwerten annehmen kann, falls
der Wert der höchstwertigen Ziffer des Divisors "1" ist.
Ein Kennzeichen "X" stellt numerische Werte der Dezimalzahl einer Ziffer im Bereich O bis 9 dar. Beispielsweise
stellt der Ausdruck "O7OX" die möglichen Werte "0700", "0701", "0702",...und "0709" dar. Die an den
Kreuzungsstellen der Reihen und Spalten eingetragenen Zahlen geben jeweils Werte an, die der betrachtete
Quotient annehmen kann. Beispielsweise gibt der Ausdruck "6/7" an, daß der Quotient einer Ziffer des jeweils
betrachteten Dividenden und Divisors entweder 6 oder 7 ergibt.
Wenn beispielsweise angenommen wird, daß der Quotientenwert zweier Dividendenziffern und einer Divisorziffer
mit der Bedingung, daß der numerische Wert der zwei höchstwertigen Ziffern des Dividenden "07" und daß der numerische
Wert der höchstwertigen Ziffer des Divisors "1" sind, aus der Tabelle ermittelt werden soll,
ju
kann der Quotient einen von fünf verschiedenen numerischen Werten 3/4/5/6/7 annehmen, wie der von einer dicken Linie
umrandete Block A in Fig. 2 zeigt.
Zum andern kann der Quotient aus zwei Dividendenziffern und zwei Divisorziffern, z. B. der Quotient aus dem
Dividenden "07X" und dem Divisor "11X" einen von drei
verschiedenen Werten 5/6/7 annehmen, wie der strichpunktiert umrandende Block B in Fig. 2 zeigt. Zum dritten
kann ein Quotient aus einem vier-ziffrigen Dividenden z. B. "071X" und einem zwei-ziffrigen Divisor , z. B.
"1X" einen von fünf unterschiedlichen Werten "3/4/5/6/7" annehmen, wie der in Fig. 2 strichpunktiert umrahmte
Block C zeigt.
Diese beispielshafte Beschreibung zeigt, daß bei der
in Fig. 1 und Fig. 2 dargestellte^bekannten Quotientenvoraussage
tabelle, falls die Ziffernzahlkombination
von Dividend und Divisor jeweils "3" und "1", "2" und "2", oder "1" und "3" sind, der numerische Bereich des
Quotienten nicht auf zwei unterschiedliche Werte eingeschränkt werden kann.
Block D der Fig. 2 zeigt,daß sich im Gegensatz dazu der numerische Bereich des Quotienten bei der Kombination
eines drei-ziffrigen Dividenden und einesjzwei-ziffrigen
Divisors auf zwei verschiedene Werte beschränkt.
Nun ist deutlich, daß sich der numerische Bereich des Quotienten für die Kombination eines drei-ziffrigen
Dividenden und eines zwei-ziffrigen Divisors nur dann auf zwei Werte beschränkt, wenn die höchstwertige Ziffer
des Divisors eine "1" ist. Dann kann die Quotientenvoraussagetabelle
aufgrund dieser Werte erstellt werden. Wenn jedoch die vdfaussagetabelle einen solchen Aufbau
haben soll, daß ein vorausgesagter Quotient als Funktion einer aufgrund eines drei-ziffrigen Dividenden und eines zwei-ziffrigen Divisors vorbereiteten Adresse abgeleitet wird/ erreicht die Anzahl benötigter Adreßbits die Anzahl einer fünf-ziffrigen BCD-Zahl, das
sind 20 Bit, da jede Ziffer aus vier Bit besteht.
haben soll, daß ein vorausgesagter Quotient als Funktion einer aufgrund eines drei-ziffrigen Dividenden und eines zwei-ziffrigen Divisors vorbereiteten Adresse abgeleitet wird/ erreicht die Anzahl benötigter Adreßbits die Anzahl einer fünf-ziffrigen BCD-Zahl, das
sind 20 Bit, da jede Ziffer aus vier Bit besteht.
Unter der Annahme, daß die Quotientenvoraussagetabelle aus schnellen 4K-BIt-RAM1S aufgebaut ist, werden
1024 (= 220 χ 4/4096) RAM-Bausteine benötigt, weil jede
Ziffer einer BCD-Zahl aus vier Bit besteht. Diese Anzahl von RAM-Bausteinen ist über die Maßen groß.
1024 (= 220 χ 4/4096) RAM-Bausteine benötigt, weil jede
Ziffer einer BCD-Zahl aus vier Bit besteht. Diese Anzahl von RAM-Bausteinen ist über die Maßen groß.
Es ist somit Aufgabe der Erfindung, die Nachteile herkömmlicher Systems zu vermeiden und ein verbessertes
Verfahren und eine verbesserte Vorrichtung zur Division
von BCD-Zahlen anzugeben, bei denen die Anzahl der Adreßbit der Quotientenvoraussagetabelle wesentlich verringert
ist, was die Gesamtdatenmenge der Divisionsvorrichtung
ebenfalls wesentlich reduziert und deren Leistung im
Vergleich mit den herkömmlichen Verfahren und der herkömmlichen Vorrichtung trotzdem nicht verringert.
Verfahren und eine verbesserte Vorrichtung zur Division
von BCD-Zahlen anzugeben, bei denen die Anzahl der Adreßbit der Quotientenvoraussagetabelle wesentlich verringert
ist, was die Gesamtdatenmenge der Divisionsvorrichtung
ebenfalls wesentlich reduziert und deren Leistung im
Vergleich mit den herkömmlichen Verfahren und der herkömmlichen Vorrichtung trotzdem nicht verringert.
In dem zur Lösung der obigen Aufgabe verwendeten Verfahren wird für die Division von BCD-Zahlen ein Dividend
in BCD-Darstellung durch eine Divisor in BCD-Darstellung
ziffernweise mit Zugriff zu einer Quotientenvoraussagetabelle dividiert, wobei der Zugriff zur Quotientenvoraussagetabelle
einen richtigen Wert oder einen um "1"
- 12 -
größeren Wert ergibt. Im letzteren Fall wird vom ausgelesenen
Wert "1" subtrahiert, um den Quotienten korrekt zu bestimmen. Zur Adressierung der Quotientenvoraussagetabelle
werden höherwertig Bit von Dividend und Divisor einem Decoder eingespeist und so verändert, daß
auch redundanten Teilen des Dividenden und des Divisors (das sind die Teile von (101O)2 bis (111D2 Adressen
zugeordnet werden. Die Darstellung (...)2 bedeutet, daß
die Zahl in der Klammer eine Binärdarstellung ist. Bevorzugte Ausführungsbeispiele der Erfindung werden im folgenden
anhand der Zeichnung näher beschrieben. Es zeigen:
Fig. 1 ein Blockschaltbild einer herkömmlichen BCD-Divisionsschaltung mit Quotientenvoraussagetabelle;
Fig. 2 ein den Aufbau eines Teils der Quotientenvoraussage
tabelle von Fig. 1 darstellendes Diagramm;
Fig. 3 ein Blockschaltbild eines wesentlichen Teils einer erfindungsgemäßen Ausführungsart einer
BCD-DiVisionsvorrichtung;
Fig. 4a und Fig. 4b jeweils Diagramme der in der Fig. gezeigten Divisionsvorrichtung verwendeten
Quotientenvoraussagetabelle;
Fig. 5a, 5b und 5c Diagramme, die jeweils die Bitzahl
von Divisor und Dividend, deren Darstellung in Bitreihen und die Anzahl der Quotientenwerte der
erfindungsgemäßen Quotientenvoraussagetabelle darstellen;
Fig. 6 eine Darstellung eines Decodierverfahrens, bei
dem der redundante Teil einer BCD-Zahl verwendet wird;
— 1 "\ —
Fig. 7a eine Darstellung eines Adreßdecodierverfahrens
der erfindungsgemäßen Quotientenvoraussagetabelle;
Fig. 7b eine Darstellung von logischen Gleichungen (Boole'sehe Ausdrücke) des Decodierverfahrens
für die Adressen der Quotientenvoraussagetabelle ;
Fig. 7c eine logische Schaltung, die einige der in
Fig. 7b dargestellten logischen Gleichungen ausführt.
Während in Fig. 3 ein wesentlicher Teil der erfindungsgeraäßen
Ausführungsart der Divisionsvorrichtung dargestellt
ist, stellen die Fig. 4a und 4b jeweils die in dieser Divisionsvorrichtung verwendete Quotientenvoraussagetabelle
dar.
Im wesentlichen ist die in Fig. 3 dargestellte Quotientenvoraussagetabelle so gestaltet, daß ein Wert,
der dem korrekten Quotienten oder ein Wert, der dem um "1" erhöhten korrekten Quotientenwert entspricht,
bei der ziffernweisen Bestimmung des Quotienten in BCD-Darstellung ausgelesen werden.
In dieser Grundfunktion ist die Quotientenvoraussagetabelle 4 der. bekannten Tabelle äquivalent.
Damit die für eine Quotientenziffer in Dezimaldarstellung
benötigte Anzahl bei der ziffernweisen Bestimmung des Quotienten auf 2 beschränkt bleibt (der korrekte Wert
und der um "1" größere Wert des Quotienten) werden die drei höchstwertigen Ziffern des Dividenden und die
zwei höchstwertigen Ziffern des Divisors jeweils in Dezimaldarstellung benötigt. Bei einer Division von Zahlen
in BCD-Darstellung können die Längen der zur Quotientenvoraussage
benötigten Teile des Dividenden und des Divisors verringert werden. Beispielsweise ist es denkbar,
daß drei Bit der höchstwertigen Ziffer des Dividendenregisters 1 und zwei Bit der höchstwertigen Ziffer des
Divisorregisters 3 einem Tabellenadreßdecoder 9 eingegeben werden, der aus den fünf insgesamt eingegebenen Bits
eine Vierbitadresse bildet und dadurch ein Bit einspart. Dies wird anhand Fig. 6 später beschrieben.
Die Fig. 4a und 4b enthalten die zur Bildung der Adresse der Quotientenvorauseagetabelle benötigten
Bitzahlen des Dividenden und des Divisors. Genauer gesagt enthält das Diagramm in Fig. 4a einen Teil der Werte,
die der Quotient für den Dividenden und den Divisor im angenommenen Fall, daß die zwei höchstwertigen Ziffern
des Divisors "11" sind, annehmen kann.
Man sieht,daß der Bereich jedes möglichen Quotienten
auf einen Wert oder zwei Werte entsprechend einem drei-ziffrigen (12 Bit) Dividenden und einem zwei-ziffrigen
(8 Bit) Divisor beschränkt ist, wobei jede Spalte einen von 10 Quotientenwerten liefert. Wenn z. B. der Dividend
"067" und der Divisor "11" ist, nimmt der Quotient einen der 10 in der Spalte "067X" stehenden Werte "5"
und "6" an.
Das niedrigstwertige Bit soll nun von den 12 Bit, die
·. m
- 15 -
die drei höchstwertigen Ziffern des Dividenden bilden,
getrennt sein. Das heißt, daß die beispielhaft angegebene Zahl "O7X" durch die Abtrennung der niedrigstwertigen
Bitstelle in dezimaler Darstellung in folgende fünf Gruppen eingeteilt ist.; "070-071", "072-073",
074-075", "076-077" und "078-079", während sonst, wenn der Dividend 12 Bit enthielte, zehn Zahlen "070",
"071",... und "079" entstehen würden.
Dementsprechend ist der Quotient des aus 11 Bit bestehenden Dividen, und des aus 8 Bit bestehenden Divisors
einer von 20 Werten, die in den den Dividenden entsprechenden Spalten stehen deren 11 höchstwertige
Bit gleich sind, z. B. einer der 20 in den Spalten 070 und 071 in Dezimaldarstellung aufgeführten Werte.(Die
Werte 5 und 6 im angenommenen Fall). Aus demselben Grund ist der Bereich des Quotienten für andere Dividenden
und Divisoren auf zwei Werte beschränkt.
Wenn zusätzlich eine weitere Bitstelle vom Dividenden abgetrennt wird, der dann noch 10 Bitstellen umfaßt, wird
z. B. die Dezimaldarstellung "07X" in drei Gruppen "070-073", "074-077" und "077-079" eingeteilt. Wenn der
Wert des Quotienten für jede dieser Gruppen aufgrund der in Fig. 4a dargestellten Tabelle bestimmt wird, wird
deutlich, daß der Wertebereich, den der Quotient annehmen kann, ebenfalls auf zwei Werte beschränkt bleibt.
Wenn in gleicher Weise die Anzahl der Bit des Dividenden weiter verringert wird, kann der Quotient zum Beispiel
einen der drei Werte "5/6/7" der Gruppe "070" bis 077" annehmen. Das zeigt, daß dann der Wertebereich des
ν» \J U \J £-
Quotienten nicht mehr auf zwei beschränkt ist.
Die obige Untersuchung beweist, daß mindestens 10 Bit
des Dividenden und 8 Bit des Divisors nötig sind, um den Wertebereich des Quotienten auf zwei Werte zu beschränken,
unter der Voraussetzung, daß die zwei höchstwertigen Ziffern des Divisors "11" sind.
Fig. 4b zeigt einen Teil der Werte, die der Quotient unter der Voraussetzung annimmt, daß die höchstwertige
Ziffer des Divisors "5" ist.
Der Wertebereich des ausgelesenen Quotienten ist bei zwei Ziffern (8 Bit) des Dividenden und zwei Ziffern
(8 Bit) des Divisors auf zwei Werte beschränkt.
Wenn man das im Zusammenhang mit der Tabelle der Fig. 4a beschriebene Verfahren der Verringerung der Bitstellen
des Dividenden auf die in Fig. 4b dargestellten Quotientenvoraussagetabelle anwendet, wird deutlich,daß der Wertebereich
des Quotienten ebenfalls auf zwei Werte beschränkt werden kann, obwohl 8 Bit des Dividenden in Gruppen,
die jeweils zwei Spalten umfassen, eingeteilt sind, wie dicke, senkrechte. Linien andeuten.
Die Beschränkuncfdes Wertebereichs des Quotienten ist ebenfalls gültig, obwohl die 8 Bit des Divisors in
jeweils - vier Reihen umfassende Gruppen eingeteilt sind,wie
durch dicke, waagerechte Linien angezeigt ist.
Somit kann mit Sicherheit gesagt werden, daß zur Beschränkung des Wertebereichs des Quotienten auf zwei Werte
• P- 9
- 17 -
in der Quotientenvoraussagetabelle, falls die höchstwertige Ziffer des Divisors "5" ist, 7 Bit des Dividenden und
6 Bit des Divisors ausreichen.
Die Fig. 5a, 5b und 5c sind Diagramme, die jeweils
die Bitanzahl, die Darstellung in Bitfolgen und die Zahl der vorhergesagten Quotienten, die in der Quotientenvoraussagetabelle
gespeichert werden und zur Bestimmung des Quotienten einer Ziffer in BCD-Darstellung benötigt
werden, enthalten.
Fig. 5a zeigt ^genauer gesagt^die für den Dividenden
und den Divisor benötigten Bitanzahlen, die durch das oben beschriebene Verfahren erreicht werden, und
zwar -in den Fällen, in denen die höchstwertige Ziffer des Divisors "1", "2", "3",..., "9" ist.
Damit zur ziffernweisen Bestimmung des Quotienten in BCD-Darstellung der Wertebereich des ein-ziffrigen
Quotienten auf den richtigen Quotienten oder den um t erhöhten richtigen Quotienten beschränkt werden kann,
werden die in Fig. 5a dargestellten Bitanzahlen jeweils für die Dividenden und die Divisoren benötigt. Wenn z. B.
die höchstwertige Ziffer des Divisors "1" ist, werden für den Divisor 8 Bit benötigt, während für den Divisor
mit der höchstwertigen Ziffer "9" vier Bit für den Divisor benötigt werden. Man sieht somit aus Fig.5a, daß so
wie der Wert der höchstwertigen Ziffer des Divisors wächst sich der Wertebereich, den der Quotient annehmen kann,
verringert, wodurch man die Anzahl der für den Dividenden und Divisor jeweils benötigten zusätzlichen Bit auch entsprechend
verringern kann.
• β rf
- 18 -
In Fig. 5b sind die Anzahlen der für den Dividenden und den Divisor benötigten Bit jeweils in Bitfolgen
des Dividenden und des Divisors dargestellt. In Fig. 5b stellt das Kennzeichen X die dem Divisor als auch die
dem Dividenden hinzuzufügenden Bitstellen dars Ein
Zeichen. ^. stellt ein Zusatzbit dar, das die Wahrerhöht
,
scheinlichkeit daß der aus der Quotientenvorausssage-
scheinlichkeit daß der aus der Quotientenvorausssage-
tabelle ausgelesene Quotientenwert für eine gegebene Kombination von Divisor und Dividend auf 1 beschränkt
ist. Das durch das Zeichen Δ dargestellte Bit ist für die Veränderung der Adressen der Quotientenvoraussagetabelle
wichtig, wie nachfolgend beschrieben wird. Fig.6 zeigt . zwei Beispiele der zur Reduzierung
der absoluten Anzahl der Adressen für Divisor und Dividend durchgeführten Adreßdecodierung unter Verwendung der
redundanten Teile (10 bis 15), das ist (101O)2 - (111I)2
der BCD-Zahl, wie sie den in Fig. 5b enthaltenen Divisoren und Dividenden hinzugefügt werden.
Da die zwei durch x, und X5 dargestellte Bit in Fig.5b
jeweis die höchstwertigen zwei Bitider zweithöchsten
Ziffer einer BCD-Zahl sind, können die Binärwertkombinationen mit den Bits X4 und X5 drei Werte ergeben,
das ist (00) 2/O1)2 un<* (10)2· Aus demselben Grund können
Kombinationen der drei höchstwertigen Bits y4, V5 und
Yc der zweiten Ziffer eines Divisors in BCD-Darstellung
fünf Wertekombinationen ergeben. Diese sind (00O)2/ (001 )2, (01O)2, (01D2 und (10O)2. Entsprechend kann eine
aus fünf Bit X4, X5, y4,y5 und yg bestehende Bitfolge in eine
vier Bit-Binärzahl decodiert werden, deren Beispiele in Fig. 6 enthalten sind. Zusätzlich zum ersten Decodierbeispiel
enthält Fig.6 noch ein zweites Beispiel, bei dem
die ersten zwei Bit und die letzten zwei Bit des ersten Beispiels gegeneinander ausgetauscht sind. Diese Decodierungen
können durch die folgenden logischen Gleichungen, die unter Verwendung von ODER-Schaltungen und UND-Schaltungen
leicht realisiert werden können, dargestellt werden. Deshalb ist keine Darstellung des Decoderaufbaus
beigegeben.
Adreßdecodierung Erstes Beispiel Zweites Beispiel
a9 =y5 + x4.y4
ai0 = *6 + X5^
a4 * | «4*4 |
a5 * | X5'V4 |
a9 = | y4 |
aio ■ | + y4 |
y6 + | |
X4 + | |
X5 |
Fig. 5c zeigt die Anzahl der vorhergesagten Quotienten,
die in der Quotientenvorhersagetabelle zu speichern sind. In Fig. 5c ist die Anzahl der vom Divisor und
Dividenden gebildeten Kombinationen abhängig vom Wert der höchst wertigen Ziffer des Divisors aufgrund des Inhalts*
der in Fig. 5b dargestellten Tabelle bestimmt. Die Anzahl der Kombinationen aus Dividend und Divisor, die die
Quotientenvoraussagetabelle bilden, beträgt insgesamt mindestens 1562. Wenn Divisor oder Dividend von den mit
dem Zeichen Δ in Fig. 5 markierten Bitstellen ergänzt wird, um die Genauigkeit und Zuverlässigkeit der Quotientenvoraussage
zu steigern, d. h. die Wahrscheinlichkeit
JJU
daß der vorausgesagte Quotient richtig ist, zu steigern sowie die Decodierlogik zu vereinfachen, wächst die
Gesamtanzahl der Kombinationen des Divisors und des Dividenden auf 3220, wie die in Klammer gesetzten
Zahlen in Fig. 5c angeben. Weil 3220 kleiner ist als 4096 (=212), besteht die Adrej
Voraussagetabelle aus 12 Bit.
Voraussagetabelle aus 12 Bit.
4096 (=212), besteht die Adresse der Quotienten-
Beispiele der aus 12 Bit bestehenden Adresse der Quotientenvorhersagetabelle, die aufgrund des Decodierergebnisses
des Divisors und des Dividenden in der in Fig. 6 dargestellten Art erhalten werden, sind in
Fig. 7a dargestellt. Ein Zeichen . * gibt die in Fig. 6 dargestellten/decodierten Ädreßbitfolgen an.
Genauer gesagt werden die aus der Decodierung der fünf Bits x.Xcy.YcYgdes Divisors und des Dividenden
zu den aus vier Bits a^a^a^a^Q bestehenden Ädreßbitfolgen
unverändert übernommen, während die Adressen für die Divisoren, deren höchstwertige Ziffer einen zwischen 1
und 4 liegenden Wert besitzt, d. h. die Adressen für die Divisoren und Dividenden, die jeweils eine größere
Anzahl von zu decodierenden Bits aufweisen, der 12 Bitfolge unter Verwendung des redundanten Teils der BCD-Zahl zugeordnet
werden.
Nachfolgend wird ein Beispiel beschrieben, wie eine der höchstwertigen Ziffer eines Divisors entsprechende
Adreßbitfolge der Quotientenvoraussagetabelle decodiert wird.
Im Falle, wo die höchstwertige Ziffer des Divisors
X0X1x2 x3 ~ ^0001^2 ist' enthält die zugeordnete Bitfolge
des zu decodxerenden Dividenden 12 Bit. Da die Bitfolge y8ygy..o des Dividenden drei Bit der dritthöchsten
Ziffer einer BCD-Zahl entspricht, können aus diesen Bits fünf Werte gebildet werden, und zwar (00O)2/ (001)2/
(01O)2/ (01D2 und (10O)2* Dementsprechend werden die
Adreßbitfolgen aoa-a2a3 in fünf aus vier Bit bestehende
Binärzahlen decodiert. Das sind (100O)2/ (1001)2/
(101O)2, (1O11)2 und(1100)2.
Mit dem in Fig. 6 dargestellten Verfahren werden die
fünf Bit. Χ4χ5ν4νςν6 des Divisors und des Dividenden
in Adreßbitfolgen aus vier Bit unter Einsparung eines Bits decodiert, und die verbleibenden vier Bit werden
in a6, a?, ag und a ^ decodiert. Wie Fig. 5b zeigt,ist
im Falle, wo der Divisor einen zwischen 5 und 9 liegenden Wert annimmt, das ist χ , χ-, x~, X3 = (0101 )2, ...,
(1001)2 die Anzahl der zu decodierenden Bit des Divisors
und des Dividenden höchstens 9. Mit demselben, oben geschilderten Verfahren werden die fünf Bit χ4χ5Υ4ν5ν6
des Divisors und des Dividenden zu vier Bit a4 a5 a9 aiQ
der Adreßbitfolge unter Einsparung eines Bits decodiert, während die Adreßbitfolge a_ a^ a2 a3 jeweils (0101 )2,
(000O)2, (0111)2, (000O)2 und (0001)2 ergibt (s. Fig.7).
Im Falle der Divisor einen der Werte 2, 3 und 4 annimmt, das heißt xQ, X1, X3, X3 = (001O)2, ... ,
(010O)2, wird die. Bitzahl des Divisors und des Dividenden
höchstens 10. In der gleichen, oben angeführten Weise werden die 5 Bit X4 X5 y^,· y^. yß des Divisors und
des Dividenden zu den vier Bit der Adreßbitfe-lgen a. a5 ag
unter Einsparung eines Bit decodiert. Die vier Bit x-, y2,
Y3 1 yη (mit Ausnahme von Xg) der verbleibenden fünf werden
unverändert decodiert, während das restliche Bit xg zur zweifachen Ausdehnung des Adreßbereichs der
Quotientenvoraussagetabelle entsprechend den Werten von
XO X1 X2 X3 verwendet wird, d. h. für 256 (= 2 ) Eingaben.
Es werden nämlich entsprechend xQ x^ X2 X3 von (001O)2/
(001D2 und (010O)2 den Adreßbit a_ a- a2 a3 jeweils
(Xg Xg 1 O)2, (Xg Xg 1 D2 und (x, 1 O Xg)2 zugeordnet.
Fig. 7b zeigt die logischen Gleichungen,die die
in Fig. 7a dargestellte Adreßdecodierung realisieren und die Fig. 7c ein Beispiel einer zur Ausführung der logischen
Gleichung aQ dienenden logischen Schaltung. In Fig. 7c
sind mit den Bezugszeichen 101a bis 101d Inverter gekennzeichnet, deren Eingänge die Divisorbits erhalten
und mit 102a bis 102c UND-Schaltungen, wobei die UND-Schaltung 102b an einem Eingang das Divisorbit Xg erhält. Ein
Bezugszeichen 103 kennzeichnet ein ODER-Gatter, mit dem die Ausgänge der UND-Schaltungen 102a bis 102c geodert
werden, und das das Decodierergebnis aQ ausgibt.
Die vorangehende Beschrebtng macht die erfindungsgemäße
Lehre deutliaaß zur Erstellung der Quotientenvoraussagetabelle
deren Adressen unter Verwendung der in Fig. 5b dargestellten vorgegebenen Bitstellen des Divisors
und des Dividenden gebildet werden, wobei deren redundande Teile zur Veränderung der Adressen durch den Quotiententabellenadreßdecoder
9 verwendet werden. Dabei ist vorteilhaft, daß Divisor und Dividend in binärcodierter
Dezimaldarstellung vorliegen.
Es wird deutlich,daß die absolute Bitmenge der Adressen
für die Quotientenvoraussagetabelle, die mit dem korrekten
Quotienten oder einem um eins größeren Wert eingerichtet ist, abhängig von einigen höherwertigen Bit des Dividenden
und des Divisors auf 12 Bit reduziert werden kann (Fig. 7),
wodurch die Quotientenvoraussagetabelle mit vier RAM-Bausteinen verwirklicht werden kann. Das bedeutet, daß sich
die Quotientenvoraussagetabelle auf 3/5 der absoluten Menge der Adreßbit und auf 1/80 (= 4K/32OOK) der für
die Tabelle benötigten Datenmenge im Vergleich mit der Quotientenvoraussagetabelle, bei der keine Adreßmodifikation
am redundanten Teil vorgenommen wird, reduziert.
Bei dem vorliegenden Ausführungsbeispiel wurden zusätzliche Bitstellen, die in Fig. 5b durch ein Δ markiert
sind, zur Erhöhung der Wahrscheinlichkeit verwendet, daß der numerische Wert, den die Quotienten bei Zugriff
zur Quotientenvoraussagetabelle aufgrund der Kombinationen von Dividenden und Divisoren annehmen, nur einen Wert
betrifft. Dieses Zusatzbit kann jedoch weggelassen werden, wodurch sich die Adreßkapazität der Quotientenvoraussagetabelle
bis auf 11 Bit reduziert.
Leerseite
Claims (8)
1. Febr. 1983
Patentansprüche
Verfahren zur Division von BCD-Zahlen, bei dem ein Quotient ziffernweise aus einem Dividenden und einem
Divisor jeweils in BCD-Darstellung, durch Zugriff
auf eine Quotientenvoraussagetabelle ermittelt wird, die den richtigen Quotienten oder einen um 1 größeren
Ziffernwert liefert, wobei, wenn der Wert nicht dem genauen Quotienten entspricht, von dem von der
Quotientenvoraussagetabelle gelieferten Wert eine 1 subtrahiert wird,
d a d u rc h gekennzeichnet, dai-äyzfjr Adressierung der Quotientenvoraussagetabelle
verwendete Adresse so decodiert wird, daß vorbestimmte Bitstellen des Dividenden und des Divisors und modifizierte
redundante Bitstelle des Dividenden und des Divisors in einer zur Auslese des Quotienten benötigten
Anzahl zur Bildung der Adresse verwendet werden, um so eine Adreßbitfolge einer Bitzahl für die Quotientenvoraussagetabelle
zu bilden.
2. Verfahren nach Anspruch 1,
dadurch gekennzeichnet,
daß redundante Bits (101O)2 bis (111I)2 in Binärstellung
des Dividenden und des Divisors der Adresse zugeordnet werden.
81-A749O-O3-AtF
33Ü326B
3. Verfahren nach Anspruch 1 und 2, dadurch gekennzeichnet,
daß die Bitzahlen des Dividenden und des Divisors in BCD-Darstellung, die zum Zugriff zum vorausgesagten
Quotienten in der Quotientenvoraussagetabelle benötigt werden, jeweils 11 Bit und 8 Bit umfassen und die
Adreßbitfolge für die Quotientenvoraussagetabelle 12 Bit umfaßt.
4. Verfahren nach Anspruch 1 bis 3, dadurch gekennzeichnet,
daß die Bitfolgen des Divisors durch X0X1X3X3X4Xj-XgX7,
die Bitfolgen des Dividenden durch Y0Y1Y2Y3Y4Y5Y6Y7Y3Y9Y1
und die Adreßbitfolge durch aQa1a2a3a4ai-aga7agaga1oa1..
gegeben sind und die Adreßbitfolgen als decodierte Ausgaben entsprechend den folgenden logischen Gleichungen
erzeugt werden:
a0 = X0-X1-X2 + *i-x2'X6 + ΧΓΧ2*Χ3Χ6
al * V*l'Vy8 + VV*6 + Xl
a2 =
(XO + Xl
a4 = X4 + Y4
a5 - X5 + Y4
a5 - X5 + Y4
a6 = X0'Xl-X7 + (XO + H*'*!
a7 = X0-X1-X2-X6 + (X0 +X1+ x2).y2
a8 = y3
a9 = Y5 + X4-Y4
a10 = y6 + X5'y4
= X0'y7
5. Vorrichtung zur Division von BCD-Zahlen, in der ein
Quotient ziffernweise von einem Dividenden und einem Divisor, die beide in BCD-Darstellung gegeben sind,
durch Zugriff auf eine Quotientenvoraussagetabelle (4) ermittelt wird, die einen Ziffernwert liefert, der dem
korrekten Quotienten oder einem um 1 größeren Wert entspricht, wobei der von der Quotientenvoraussagetabelle
gelieferte Wert mit 1 subtrahiert wird, wenn der Wert nicht der richtige Quotient ist,
gekennzeichnet durch einen Adreßdecoder (9), der die Adressender Quotientenvoraussagetabelle
(4) decodiert, wobei der Adreßdecoder mit vorgegebenen Bitstellen sowohl des Dividenden
als auch des Divisors gespeist wird und damit deren aiedundante Bitstellen modifiziert und Adreßbitfolgen
zum Zugriff zur Quotientenvoraussagetabelle erzeugt.
6. Vorrichtung nach Anspruch 5,
dadurch gekennzeichnet,
dadurch gekennzeichnet,
daß redundante Bits (1010), bis (1111), in Binärdarstellung
des Dividenden und des Divisors der Adresse zugeordnet werden.
7. Vorrichtung nach Anspruch 5-6, dadurch gekennzeichnet,
daß die Bitzahlen des Dividenden und des Divisors in BCD-Darstellung, die zum Zugriff zum vorausgesagten
Quotienten in der Quotientenvoraussagetabelle benötigt werden, jeweils 11 Bit und 8 Bit umfassen und die
Adreßbitfolge für die Quotientenvoraussagetabelle 12 Bit umfaßt.
8. Vorrichtung nach einem der Ansprüche 5 bis 7, dadurch gekennzeichnet,
daß die Bitfolgen des Divisors durch X-X1X2X3X4X5XgX7, daß
die Bitfolgen des Dividenden durch Y0Y1Y2Y3Y4Y5YgY7YgY9Y10
und die Adreßfolge durch a a..a2a3a4a5aga7äga9a1oa1..
gegeben sind und die Adreßbitfolgen als decodierte Ausgaben entsprechend den folgenden logischen Gleichungen
erzeugt werden:
a0 = S0-X1-X2 + X1-X2-X6 + X1-S2-X3-X6
al - VVVy8 + VV*6 + Xl
a2 = X0-X1-X2-Y9 + x2
a3 = S0-X1-S2-Y10 +X1-X2-X3-X6 + (X0 + X1 + X2)-X3
a4 - X4 + Y4
a5 - x5 + y4
a6 = V*1"X7 + (x0 + xl)#yl
a8 -
Il = Vy7
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP57023230A JPS58140846A (ja) | 1982-02-16 | 1982-02-16 | 2進化10進数除算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3303269A1 true DE3303269A1 (de) | 1983-08-25 |
DE3303269C2 DE3303269C2 (de) | 1988-08-25 |
Family
ID=12104816
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19833303269 Granted DE3303269A1 (de) | 1982-02-16 | 1983-02-01 | Verfahren und vorrichtung zur division von bcd-zahlen |
Country Status (4)
Country | Link |
---|---|
US (1) | US4603397A (de) |
JP (1) | JPS58140846A (de) |
DE (1) | DE3303269A1 (de) |
GB (1) | GB2115961B (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3340362A1 (de) * | 1982-11-09 | 1984-05-10 | Hitachi, Ltd., Tokio/Tokyo | Verfahren und vorrichtung zur division von bcd-zahlen |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60101640A (ja) * | 1983-11-07 | 1985-06-05 | Hitachi Ltd | 10進除算装置 |
JPS60164837A (ja) * | 1984-02-07 | 1985-08-27 | Nec Corp | 除算装置 |
US4817048A (en) * | 1986-08-11 | 1989-03-28 | Amdahl Corporation | Divider with quotient digit prediction |
US4992968A (en) * | 1989-02-17 | 1991-02-12 | Digital Equipment Corporation | Division method and apparatus including use of a Z--Z plot to select acceptable quotient bits |
JPH0386619U (de) * | 1989-12-22 | 1991-09-02 | ||
DE4121106A1 (de) * | 1991-06-26 | 1993-01-07 | Siemens Nixdorf Inf Syst | Verfahren fuer datenverarbeitungsanlagen zur radix-division eines dividenden und eines divisors von jeweils beliebiger laenge und schaltungsanordnung zur durchfuehrung des verfahrens |
JP2541758B2 (ja) * | 1993-06-02 | 1996-10-09 | 日本電気株式会社 | 剰余算出回路 |
US6341327B1 (en) | 1998-08-13 | 2002-01-22 | Intel Corporation | Content addressable memory addressable by redundant form input |
US6172933B1 (en) * | 1998-09-04 | 2001-01-09 | Intel Corporation | Redundant form address decoder for memory system |
US7519649B2 (en) * | 2005-02-10 | 2009-04-14 | International Business Machines Corporation | System and method for performing decimal division |
US20150378726A1 (en) * | 2014-06-27 | 2015-12-31 | Oracle International Corporation | Implementation for a high performance bcd divider |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1203504B (de) * | 1962-11-05 | 1965-10-21 | Ibm | Divisionseinrichtung |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3527930A (en) * | 1967-07-19 | 1970-09-08 | Ibm | High speed division system |
US3917935A (en) * | 1974-12-23 | 1975-11-04 | United Technologies Corp | Reduction of look-up table capacity |
JPS55103642A (en) * | 1979-02-01 | 1980-08-08 | Tetsunori Nishimoto | Division unit |
JPS5626866A (en) * | 1979-08-13 | 1981-03-16 | Sagami Chem Res Center | Unsaturated ketoester derivative and its preparation |
JPS57155667A (en) * | 1981-03-23 | 1982-09-25 | Sony Corp | Arithmetic circuit of galois matter |
-
1982
- 1982-02-16 JP JP57023230A patent/JPS58140846A/ja active Granted
-
1983
- 1983-01-28 GB GB08302367A patent/GB2115961B/en not_active Expired
- 1983-01-31 US US06/462,423 patent/US4603397A/en not_active Expired - Fee Related
- 1983-02-01 DE DE19833303269 patent/DE3303269A1/de active Granted
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE1203504B (de) * | 1962-11-05 | 1965-10-21 | Ibm | Divisionseinrichtung |
Non-Patent Citations (2)
Title |
---|
SPANIOL, Arithmetik in Rechenanlagen, Teubner Stuttgart, 1976, S. 118 bis 119 * |
US-B: Kai Hwang, "Computer Arithmetik Principles, Architecture and Design", John Wiley & Sons Inc., 1979 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3340362A1 (de) * | 1982-11-09 | 1984-05-10 | Hitachi, Ltd., Tokio/Tokyo | Verfahren und vorrichtung zur division von bcd-zahlen |
Also Published As
Publication number | Publication date |
---|---|
JPS6315619B2 (de) | 1988-04-05 |
JPS58140846A (ja) | 1983-08-20 |
GB2115961A (en) | 1983-09-14 |
GB8302367D0 (en) | 1983-03-02 |
US4603397A (en) | 1986-07-29 |
DE3303269C2 (de) | 1988-08-25 |
GB2115961B (en) | 1985-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2712224C2 (de) | Datenverarbeitungsanlage | |
DE2626432C2 (de) | Arithmetische Einheit für automatische Rechengeräte | |
DE2231458A1 (de) | Digitaler frequenzzusammensetzer | |
DE2311220A1 (de) | Digital-informations-verarbeitungsvorrichtung zur zeichenerkennung | |
DE3229452C2 (de) | Anordnung zur Durchführung von arithmetischen und logischen Operationen | |
DE3303269A1 (de) | Verfahren und vorrichtung zur division von bcd-zahlen | |
DE2524749C2 (de) | Digitale Filteranordnung | |
DE2758130C2 (de) | Binärer und dezimaler Hochgeschwindigkeitsaddierer | |
DE2063199B2 (de) | Einrichtung zur Ausführung logischer Funktionen | |
DE3505314A1 (de) | Bitmusterwandler | |
DE2918692A1 (de) | Digitalfilter | |
DE1271433B (de) | Adressiereinrichtung fuer einen Tabellenwertspeicher | |
DE3440680C2 (de) | ||
DE2039228C3 (de) | Schaltungsanordnung in einer Datenverarbeitungsanlage zum Verschieben einer binär kodierten Oktalzahl um eine Anzahl von Dezimalstellen nach rechts | |
DE3434777C2 (de) | ||
DE3340362C2 (de) | ||
EP0139207B1 (de) | Schaltung zur CSD-Codierung einer im Zweierkomplement dargestellten, binären Zahl | |
DE2000565A1 (de) | Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler | |
DE2426253C3 (de) | Vorrichtung zunv ZAehen det Quadratwurzel aus einer binären Zahl | |
DE2158011A1 (de) | Digitales Anzeigesystem | |
DE2523755A1 (de) | Divisionsverarbeitungssystem mit 2n-facher genauigkeit | |
DE2952689C2 (de) | ||
DE1549485C3 (de) | Anordnung zur Division binärer Operanden ohne Rückstellung des Restes | |
DE1808159B2 (de) | Einrichtung zur umsetzung von dualzahlen in binaer codierte dezimalzahlen in paralleler darstellung | |
DE3302013A1 (de) | Divisionsvorrichtung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |