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
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
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₄+y₄a₄=y₅+x₄ · y₄
a₅=x₅+y₄a₅=y₆+x₅ · y₄
a₉=y₅+x₄ · y₄a₉=x₄+y₄
a₁₀=y₆+x₅ · y₄a₁₀=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 x₄x₅y₄y₅y₆ des Divisors und des Dividenden
entstehende Adreßbitfolge
a₄a₅a₉a₁₀
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
x₀x₁x₂x₃ = (0001)₂ ist, enthält die zugeordnete Bitfolge
des zu decodierenden Dividenden 12 Bit. Da die Bitfolge
y₈y₉y₁₀ 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 a₀a₁a₂a₃ 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 x₄x₅y₄y₅y₆ 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 x₄x₅y₄y₅y₆
des Divisors und des Dividenden zu vier Bit a₄ a₅ a₉ a₁₀
der Adreßbitfolge unter Einsprung eines Bits decodiert,
während die Adreßbitfolge a₀ a₁ a₂ a₃ 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 x₄ x₅ y₄ y₅ y₆ des Divisors und
des Dividenden zu den vier Bit der Adreßbitfolgen a₄ a₅ a₉ a₁₀
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
x₀ x₁ x₂ x₃ verwendet wird, d. h. für 256 (= 2⁸) Eingaben.
Es werden nämlich entsprechend x₀ x₁ x₂ x₃ von (0010)₂,
(0011)₂ und (0100)₂ den Adreßbit x₀ a₁ a₂ a₃ jeweils
(x₆ x₆ 1 0)₂, (x₆ x₆ 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.
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₈+ ₁ · ₂ · ₆+x₁
a₂= ₀ · ₁ · ₂ · y₉+x₂
a₃= ₀ · ₁ · ₂ · y₁₀+x₁ · ₂ · ₃ · x₆+(x₀+x₁+x₂) · x₃
a₄= x₄+y₄
a₅= x₅+y₄
a₆= ₀ · ₁ · x₇+(x₀+x₁) · y₁
a₇= ₀ · ₁ · ₂ · x₆+(x₀+x₁+x₂) · y₂
a₈= y₃
a₉= y₅+x₄ · y₄
a₁₀= y₆+x₅ · y₄
a₁₁= ₀ · y₇+x₀ · y₀.
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)
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)
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)
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 |
-
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
Cited By (1)
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 |