DE3303269A1 - Verfahren und vorrichtung zur division von bcd-zahlen - Google Patents

Verfahren und vorrichtung zur division von bcd-zahlen

Info

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
Application number
DE19833303269
Other languages
English (en)
Other versions
DE3303269C2 (de
Inventor
Masaharu Hadano Fukuta
Sako Ishikawa
Toru Ohtsuki
Yoshio Oshima
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE3303269A1 publication Critical patent/DE3303269A1/de
Application granted granted Critical
Publication of DE3303269C2 publication Critical patent/DE3303269C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods 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/491Computations with decimal numbers radix 12 or 20.
    • G06F7/4915Multiplying; Dividing
    • G06F7/4917Dividing

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
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-
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)
♦ * «ι
— 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.
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ß.
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.
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-
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.
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)

BEETZ & PARTNER · I \ . : Patehtan Walte \ Steinsdorfstr. 10 · D-8000 München 22 "** "'" '·· European'PatentAttorneys Telefon (089) 2272O1 - 227244 - 295910 DipL-Ing. R. BEETZ 8ΘΠ. Telex 522048 - Telegramm Allpat München _ . ρ RPFTZ iun 81-34.6 3 3P Dr.-Ing. W. TIMPE Dipl.-Ing. J. SIEGFRIED Priv.-Doz. Dipl.-Chem. Dr. rer. nat. W. SCHMITT-FUMIAN Dipl.-Ing. K. LAMPRECHT 11981
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
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,
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
DE19833303269 1982-02-16 1983-02-01 Verfahren und vorrichtung zur division von bcd-zahlen Granted DE3303269A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1203504B (de) * 1962-11-05 1965-10-21 Ibm Divisionseinrichtung

Family Cites Families (5)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1203504B (de) * 1962-11-05 1965-10-21 Ibm Divisionseinrichtung

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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