DE3303269C2 - - Google Patents

Info

Publication number
DE3303269C2
DE3303269C2 DE3303269A DE3303269A DE3303269C2 DE 3303269 C2 DE3303269 C2 DE 3303269C2 DE 3303269 A DE3303269 A DE 3303269A DE 3303269 A DE3303269 A DE 3303269A DE 3303269 C2 DE3303269 C2 DE 3303269C2
Authority
DE
Germany
Prior art keywords
quotient
divisor
dividend
bits
register
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.)
Expired
Application number
DE3303269A
Other languages
English (en)
Other versions
DE3303269A1 (de
Inventor
Toru Ohtsuki
Yoshio Oshima
Sako Ishikawa
Masaharu Hadano Jp Fukuta
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

Description

Die Erfindung betrifft eine Vorrichtung zur Division von BCD-Zahlen nach dem Oberbegriff des Patentanspruchs 1.
Es sind bereits Vorrichtungen zur Division von Binärzahlen bekannt, die zur Beschleunigung 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, bei der eine Quotientenvoraussagetabelle verwendet wird (US-Fachbuch "Computer Arithmetik Principles, Architecture and Design", Verfasser: Kai Hwang, Verlag: John Wiley & Sons Inc., 1979). Bei der in Fig. 1 dargestellten Vorrichtung wird ein Dividend in ein Dividendenregister 1 und ein Divisor in ein Divisorregister 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 umfassenden 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 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 Divisionsregister 3 zur Verfügung gestellten Werte, wird auf einen vorhergesagten Quotienten in der Quotientenvoraussagetabelle abhängig von einer aufgrund einer vorgegebenen Anzahl höherwertiger Bitstellen des im Dividendenregister 1 gespeicherten Dividenden und aufgrund einer vorgegebenen Anzahl höherwertiger Bitstellen des im Divisorregister 3 gespeicherten Divisors ermittelten Adresse geschlossen. Der ausgelesene, vorhergesagte Quotient wird in das Quotientenvoraussageregister 5, das man folglich auch Register des vorausgesagten Quotienten nennen kann, geladen. Folglich wird aus der Registergruppe 7, 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 "X" subtrahiert.
Wenn diese Subtraktion ein positives Ergebnis hat (d. h. "X"-"Y"0), wird der vom Dezimaladdierer 8 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 Quotientenbestimmungsschaltung 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, d. h., daß das Subtraktionsergebnis negativ ist ("X"-"Y"<0) 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 dem Dividendenregister 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 richtigen Quotienten oder des um "1" größeren Werts) 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 0 bis 9 dar. Beispielsweise stellt der Ausdruck "070X" 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, 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 umandete Block B in Fig. 2 zeigt. Zum dritten kann ein Quotient aus einem vierziffrigen Dividenden z. B. "071X" und einem zweiziffrigen 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 beispielhafte Beschreibung zeigt, daß bei der in Fig. 1 und Fig. 2 dargestellten, bekannten Quotientenvoraussagetabelle, falls die Anzahl der Ziffern 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 dreiziffrigen Dividenden und eines zweiziffrigen Divisors auf zwei verschiedene Werte beschränkt.
Nun ist deutlich, daß sich der numerische Bereich des Quotienten für die Kombination eines dreiziffrigen Dividenden und eines zweiziffrigen 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 Voraussagetabelle einen solchen Aufbau haben soll, daß ein vorausgesagter Quotient als Funktion einer aufgrund eines dreiziffrigen Dividenden und eines zweiziffrigen Divisors vorbereiteten Adresse abgeleitet wird, erreicht die Anzahl benötigter Adreßbits die Anzahl einer fünfziffrigen BCD-Zahl, das sind 20 Bit, da jede Ziffer aus vier Bit besteht.
Unter der Annahme, daß die Quotientenvoraussagetabelle aus schnellen 4K-Bit-RAM's aufgebaut ist, werden 1024 (=2²⁰×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, eine Vorrichtung zur Division von BCD-Zahlen anzugeben, bei der die Anzahl der Adreßbits für die Quotientenvoraussagetabelle und damit diese selbst reduziert werden kann und damit ein kleinerer Speicher verwendbar ist.
Die obige Aufgabe wird bei einer Vorrichtung zur Division von BCD-Zahlen gemäß dem Oberbegriff des Anspruchs 1 erfindungsgemäß durch die in dessen kennzeichnenden Teil angegebenen Merkmale gelöst.
Anspruch 2 kennzeichnet eine vorteilhafte Ausbildung davon.
Bevorzugte Ausführungsbeispiele der Erfindung werden im folgenden anhand der Zeichnung näher beschrieben. Es zeigt
Fig. 1 ein Blockschaltbild einer herkömmlichen, bekannten BCD-Divisionsschaltung mit Quotientenvoraussagetabelle;
Fig. 2 ein den Aufbau eines Teils dieser Quotientenvoraussagetabelle von Fig. 1 darstellendes Diagramm;
Fig. 3 ein Blockschaltbild eines wesentlichen Teils einer erfindungsgemäßen Ausführungsart einer BCD-Divisionsvorrichtung;
Fig. 4a und 4b jeweils Diagramme der in der Fig. 3 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;
Fig. 7a eine Darstellung eines Adreßdecodierverfahrens der vorgeschlagenen Quotientenvoraussagetabelle;
Fig. 7b eine Darstellung von logischen Gleichungen (Boole'sche 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 erfindungsgemäß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 Wertezahl 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 Quotientenvoraussagetabelle 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 die 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 bei dreiziffrigen (12 Bit) Dividenden und zweiziffrigen (8 Bit) Divisoren beschränkt ist, wobei jede Spalte zehn Quotienten jeweils eines oder zweier Werte liefert. Wenn z. B. der Dividend "067" und der Divisor "11" ist, nimmt der Quotient einen der in der Spalte "067X" stehenden Werte "5" oder "6" an.
Das niedrigstwertige Bit soll nun von den 12 Bit, die die drei höchstwertigen Ziffern des Dividenden bilden, getrennt sein. Das heißt, daß z. B. die Zahl "07X" 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 eines aus 11 Bit bestehenden Dividenden und eines aus 8 Bit bestehenden Divisors aus 20 Werten, die in den den Dividenden, deren 11 höchstwertige Bitstellen gleich sind, entsprechenden Spalten stehen, z. B. aus einer der Spalten 070 und 071 auszuwählen. (Die Werte 5 und 6 im angenommenen Fall.) Aus demselben Grund ist der Wertebereich 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 Quotienten nicht mehr auf zwei Werte 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 um 1 Bit auf die in Fig. 4b dargestellten Quotientenvoraussagetabelle anwendet, wird deutlich, daß der Wertebereich des Quotienten ebenfalls auf zwei Werte beschränkt werden kann, wenn 8 Bit des Dividenden durch Weglassen der niedrigstwertigen Bitstelle in Gruppen, die jeweils zwei Spalten umfassen, eingeteilt sind, wie dicke, senkrechte Linien andeuten.
Die Beschränkung des Wertebereichs des Quotienten auf zwei Werte ist ebenfalls gültig, wenn die 8 Bit des Divisors durch Weglassen der zwei niedrigstwertigen Bitstellen 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 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 Bitanzahlen, die Darstellung der Bitfolgen und die Anzahlen 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 einziffrigen Quotienten auf den richtigen Quotienten und den um 1 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 Dividendenbits und für den Divisor benötigten zusätzlichen Bits auch entsprechend verringern kann.
In Fig. 5b sind die 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 × die dem Divisor als auch die dem Dividenden hinzuzufügenden Bitstellen dar. Ein Zeichen ∆ stellt ein Zusatzbit dar, das die Wahrscheinlichkeit erhöht, daß der aus der Quotientenvoraussagetabelle ausgelesene Quotient für eine gegebene Kombination von Divisor und Dividend auf einen Wert 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 von zur Reduzierung der absoluten Adreßbitzahl für Divisor und Dividend durchgeführten Adreßdecodierungen unter Verwendung redundanter Anteile (10 bis 15), das ist (1010)₂-(1111)₂ der BCD-Zahl, wie sie den in Fig. 5b enthaltenen Divisoren und Dividenden hinzugefügt sind.
Da die zwei durch x₄ und x₅ dargestellte Bit in Fig. 5b jeweils die höchstwertigen zwei Bit der zweithöchsten Ziffer einer BCD-Zahl sind, ergeben die Binärkombinationen mit den Bits x₄ und x₅ drei Werte, das sind (00)₂ (01)₂ und (10)₂. Aus demselben Grund können die drei höchstwertigen Bits y₄, y₅ und y₅ der zweiten Ziffer eines Divisors in BCD-Darstellung fünf Kombinationen ergeben. Diese sind (000)₂, (001)₂, (010)₂, (011)₂ und (100)₂. Entsprechend kann eine aus fünf Bit x₄, x₅, y₄, y₅ und y₆ bestehende Bitfolge in vier-Bit-Binärzahlen 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 beiden Decodierungsbeispiele sind durch die folgenden logischen Gleichungen, die unter Verwendung von ODER-Schaltungen und UND-Schaltungen leicht realisiert werden können, dargestellt. Deshalb ist keine Darstellung des Decoderaufbaus beigegeben.
Adreßdecodierung
Erstes BeispielZweites Beispiel
a₄=x₄+ya₄=y₅+x₄ · ya₅=x₅+ya₅=y₆+x₅ · ya₉=y₅+x₄ · ya₉=x₄+ya₁₀=y₆+x₅ · ya₁₀=x₅+y
Fig. 5c zeigt die Anzahlen der vorhergesagten Quotienten, die in der Quotientenvoraussagetabelle zu speichern sind. In Fig. 5c ist die Anzahl der vom Divisor und Dividenden gebildeten Kombinationen abhängig vom Wert der höchstwertigen 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 durch die mit dem Zeichen ∆ in Fig. 5 markierten Bitstellen ergänzt werden, um die Genauigkeit und Zuverlässigkeit der Quotientenvoraussage zu steigern, d. h. die Wahrscheinlichkeit, 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 (=2¹²), besteht die Adresse der Quotientenvoraussagetabelle aus 12 Bit.
Beispiele der aus 12 Bit bestehenden Adresse der Quotientenvoraussagetabelle, 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 Adreßbitfolgen an.
Genauer gesagt wird die aus der Decodierung der fünf Bits xxyyy₆ des Divisors und des Dividenden entstehende Adreßbitfolge aaaa₁₀ unverändet ü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 xxxx₃ = (0001)₂ ist, enthält die zugeordnete Bitfolge des zu decodierenden Dividenden 12 Bit. Da die Bitfolge yyy₁₀ des Dividenden drei Bit der dritthöchsten Ziffer einer BCD-Zahl entspricht, können aus diesen Bits fünf Werte gebildet werden, und zwar (000)₂, (001)₂, (010)₂, (011)₂ und (100)₂. Dementsprechend werden die Adreßbitfolgen aaaa₃ in fünf aus vier Bit bestehende Binärzahlen decodiert. Das sind (1000)₂, (1001)₂, (1010)₂, (1011)₂ und (1100)₂.
Mit dem in Fig. 6 dargestellten Verfahren werden die fünf Bit xxyyy₆ des Divisors und des Dividenden in Adreßbitfolgen aus vier Bit unter Einsparung eines Bits decodiert, und die verbleibenden vier Bits werden in a₆, a₇, a₈ und a₁₁ decodiert. Wie Fig. 5b zeigt, ist im Falle, wo der Divisor einen zwischen 5 und 9 liegenden Wert annimmt, das ist x₀, x₁, x₂, x₃ = (0101)₂, . . ., (1001)₂, die Anzahl der zu decodierenden Bit des Divisors und des Dividenden höchstens 9. Mit demselben, oben geschilderten Verfahren werden die fünf Bit xxyyy₆ des Divisors und des Dividenden zu vier Bit aaaa₁₀ der Adreßbitfolge unter Einsprung eines Bits decodiert, während die Adreßbitfolge aaaa₃ jeweils (0101)₂, (0000)₂, (0111)₂, (0000)₂ und (0001)₂ ergibt (s. Fig. 7).
Im Falle der Divisor einen der Werte 2, 3 und 4 annimmt, das heißt x₀, x₁, x₂, x₃ = (0010)₂, . . ., (0100)₂, wird die Bitzahl des Divisors und des Dividenden höchstens 10. In der gleichen, oben angeführten Weise werden die 5 Bit xxyyy₆ des Divisors und des Dividenden zu den vier Bit der Adreßbitfolgen aaaa₁₀ unter Einsparung eines Bit decodiert. Die vier Bit x₇, y₂, y₃, y₇ (mit Ausnahme von x₆) der verbleibenden fünf werden unverändert decodiert, während das restliche Bit x₆ zur zweifachen Ausdehnung des Adreßbereichs der Quotientenvoraussagetabelle entsprechend den Werten von xxxx₃ verwendet wird, d. h. für 256 (= 2⁸) Eingaben. Es werden nämlich entsprechend xxxx₃ von (0010)₂, (0011)₂ und (0100)₂ den Adreßbit xaaa₃ jeweils (xx₆ 1 0)₂, (xx₆ 1 1)₂ und (x₆ 1 0 x₆)₂ 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 a₀ dienenden logischen Schaltung. In Fig. 7c sind mit den Bezugszeichen 101 a bis 101 d Inverter gekennzeichnet, deren Eingänge die Divisorbits erhalten und mit 102 a bis 102 c UND-Schaltungen, wobei die UND-Schaltung 102 b an einem Eingang das Divisorbit x₆ erhält. Ein Bezugszeichen 103 kennzeichnet ein ODER-Gatter, mit dem die Ausgänge der UND-Schaltungen 102 a bis 102 c geodert werden, und das das Decodierergebnis a₀ ausgibt.
Die vorangehende Beschreibung macht die erfindungsgemäße Lehre deutlich, daß zur Erstellung der Quotientenvoraussagetabelle deren Adressen unter Verwendung der in Fig. 5b dargestellten vorgegebenen Bitstellen des Divisors und des Dividenden gebildet werden, wobei deren redundante 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/3200K) 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 annimmt. Dieses Zusatzbit kann jedoch weggelassen werden, wodurch sich die Adreßkapazität der Quotientenvoraussagetabelle bis auf 11 Bit reduziert.

Claims (2)

1. Vorrichtung zur Division von BCD-Zahlen, bei der ein Quotient ziffernweise aus einem Dividenden und einem Divisor, die beide in BCD-Darstellung gegeben sind, durch Zugriff auf eine Quotientenvoraussagetabelle ermittelt wird, die einen Ziffernwert liefert, der dem korrekten Quotienten oder einem um 1 größeren Wert entspricht, wobei in letzterem Falle, wenn der Wert nicht der richtige Quotient ist, von ihm eine 1 abgezogen wird, mit
einem Dividenden-Restregister,
einem Divisor-Register,
einem Speicher, der die Quotientenvoraussagetabelle speichert,
einem mit dem Ausgang des Speichers verbundenen Quotienten-Register,
einem Adreß-Decoder, der zwei Ziffern von Divisor-Bits und drei Ziffern von Dividenden-Bits jeweils von dem Divisor-Register und dem Dividenden-Register empfängt und die empfangenen Bits zur Erzeugung von Adressen für die Quotientenvoraussagetabelle decodiert,
eine auf einen aus dem Speicher ausgelesenen Ziffernwert, der in dem Quotienten-Register steht, sowie die Inhalte des Dividenden-Restregisters und des Divisor-Registers ansprechende Einrichtung, die einen Quotienten erzeugt,
und der Speicher den Voraussageziffernwert in der Weise speichert, daß dieser an einem bestimmten Speicherplatz als Ergebnis der Division eines Dividenden durch einen Divisor gespeichert ist, wobei der Dividend und der Divisor jeweils eine Bitfolge aufweist, die zur Gewinnung der Adresse des Speicherplatzes verwendbar sind,
dadurch gekennzeichnet, daß die Bitfolge des Divisors durch x₀, x₁, x₂, x₃, x₄, x₅, x₆, x₇, die Bitfolge des Dividenden durch y₀, y₁, y₂, y₃, y₄, y₅, y₆, y₇, y₈, y₉, y₁₀ dargestellt sind, und der Adreß-Decoder dergestalt ausgebildet ist, daß er daraus Adressen für die Quotientenvoraussagetabelle nach folgender Tabelle erzeugt: wobei die Adreßbits a₄, a₅, a₉, a₁₀ allein durch Decodieren der Bits x₄, x₅, y₄, y₅, y₆ erzeugbar sind, und das Symbol das jeweils zu erzeugende Adreßbit darstellt.
2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Adreßbitfolgen entsprechend den folgenden logischen Gleichungen erzeugbar sind: a₀= ₀ · ₁ · ₂+ ₁ · ₂ · ₆+x₁ · ₂ · ₃ · a₁= ₀ · ₁ · ₂ · y₈+ ₁ · ₂ · ₆+xa₂= ₀ · ₁ · ₂ · y₉+xa₃= ₀ · ₁ · ₂ · y₁₀+x₁ · ₂ · ₃ · x₆+(x₀+x₁+x₂) · xa₄= x₄+ya₅= x₅+ya₆= ₀ · ₁ · x₇+(x₀+x₁) · ya₇= ₀ · ₁ · ₂ · x₆+(x₀+x₁+x₂) · ya₈= ya₉= y₅+x₄ · ya₁₀= y₆+x₅ · ya₁₁= ₀ · y₇+x₀ · y₀.
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 DE3303269A1 (de) 1983-08-25
DE3303269C2 true 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
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

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5987543A (ja) * 1982-11-09 1984-05-21 Hitachi Ltd 2進化10進数除算方式
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
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
CN111865329A (zh) * 2020-07-24 2020-10-30 刘彦君 电气二次解码二进制数字信号的方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3234367A (en) * 1962-11-05 1966-02-08 Ibm Quotient guess divider
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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Also Published As

Publication number Publication date
GB2115961A (en) 1983-09-14
GB8302367D0 (en) 1983-03-02
GB2115961B (en) 1985-11-13
DE3303269A1 (de) 1983-08-25
JPS58140846A (ja) 1983-08-20
US4603397A (en) 1986-07-29
JPS6315619B2 (de) 1988-04-05

Similar Documents

Publication Publication Date Title
DE2712224C2 (de) Datenverarbeitungsanlage
DE1956209C3 (de) Multipliziervorrichtung
DE3303269C2 (de)
DE1237363B (de) Arithmetisch-Logische-Einheit
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE2626432C2 (de) Arithmetische Einheit für automatische Rechengeräte
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE2814078A1 (de) Addierschaltung mit zeitweiliger zwischenspeicherung des uebertrags
DE3340362C2 (de)
DE3434777C2 (de)
DE3440680C2 (de)
DE3447729A1 (de) Verfahren und vorrichtung zur dezimal-multiplikation
EP0139207B1 (de) Schaltung zur CSD-Codierung einer im Zweierkomplement dargestellten, binären Zahl
DE1499174B1 (de) Dividiervorrichtung fuer Digitalrechner
EP0144066B1 (de) Schaltungsanordnung zur schnellen Ermittlung der betragsmässig grössten Differenz von drei binär dargestellten Zahlenwerten
DE2807857A1 (de) O-bit-detektorschaltung
DE2158011A1 (de) Digitales Anzeigesystem
DE3302013C2 (de)
DE2523755A1 (de) Divisionsverarbeitungssystem mit 2n-facher genauigkeit
DE1549485C3 (de) Anordnung zur Division binärer Operanden ohne Rückstellung des Restes
DE2952689C2 (de)
DE1499227C3 (de) Schaltungsanordnung für arithmetische und logische Grundoperationen
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE4121106C2 (de)
DE2737483A1 (de) Korrektur-schaltungsanordnung fuer additions- oder substraktionsoperationen mit nicht-hexadezimalen operanden in hexadezimalen rechenwerken

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