-
Die Erfindung betrifft eine Dividiervorrichtung und
insbesondere eine Hochgeschwindigkeits-Dividiervorrichtung für
elektronische digitale Computer.
-
Ein Übertrag-Ablage-Addierer (CSA) unterscheidet sich von
anderen Typen von Addierern durch die Tatsache, daß die aus
jeder Addition resultierenden Übertrag-Bits und
Zwischensummen-Bits nicht unmittelbar kombiniert und konsolidiert werden,
sondern statt dessen separat voneinander abgelegt werden, um
anschließend bei der nächsten Addition verwendet zu werden,
die von dem CSA durchgeführt wird, wobei deren Eingangssignale
die abgelegten Übertrag- und Zwischensummen-Bits (die
letzteren werden der Einfachheit willen im folgenden lediglich als
"Summen-Bits" bezeichnet) und die Bits eines hinzuaddierten
oder in manchen Fällen wirksam subtrahierten Operanden
aufweisen, wobei der Wert zusammen durch diese abgelegten
Übertrag- und Summen-Bits repräsentiert sind.
-
Übertrag-Ablage-Addierer werden normalerweise in
Hochgeschwindigkeits-Multipliziervorrichtungen verwendet, wo sie generell
in der Lage sind, schneller als "Übertrag-Ausbreitungs"- oder
"Welligkeits"-Addierer zu funktionieren, da ein
Übertrag-Ablage-Addierer den relativ zeitaufwendigen Vorgang des
Kombinieren von Überträgen mit Summen-Bits zwischen
aufeinanderfolgenden Additionen in dem Multiplikationsvorgang nicht vollständig
ausführt, sondern diese Aufgabe bis zu dem letzten Zyklus der
Multiplikationsoperation aufschiebt. Ferner wurde
vorgeschlagen, einen Übertrag-Ablage-Addierer in Divisionsoperationen zu
verwenden, wie in dem U. S.-Patent 4,084,254 von R. E. Birney et
al. beschrieben, wobei der Vorteil dieses Vorschlags darin
liegt, daß er eine Kombination aus Multiplizierer und
Dividierer, der mit einem einzigen Addierer des CSA-Typs zur
Verwendung sowohl bei Multiplikations- als auch bei
Divisionsoperationen versehen sein kann.
-
In der Weise, in der sie generell verwendet werden, haben
Übertrag-Ablage-Addierer einen Nachteil, der trotz des oben
erwähnten, durch sie erzielten Geschwindigkeits-Vorteils ihre
Nützlichkeit beeinträchtigt hat. Während der Durchführung der
Addier-, Komplementier- und Spaltenverschiebungs-Funktionen
ergeben sich zahlreiche Fälle, bei denen ein Übertrag- oder
Summen-Bit, das an der Ausgangsseite irgendeiner Ordnungs-
oder Bit-Position in dem Addierer auftritt, wieder als Eingabe
zu der gleichen Ordnungs- oder Bit-Position in dem Addierer
eingegeben werden muß. Aufgrund dieses
Wiedereingabe-Erfordernisses war es bisher üblich, Übertrag-Ablage-Addierer doppelt
vorzusehen und die Addierer-Paare alternierend zu betätigen,
so daß ein Ausgangsbit aus irgendeiner Ordnung oder Position
in einem Addierer des Paars bei Bedarf als Eingangssignal der
entsprechenden Ordnung oder Position in dem anderen Addierers
des Paars zugeführt werden kann, ohne dadurch eine
unerwünschte Interaktion zwischen einem Ausgangsbit und seinem
wieder eingegebenen Gegenstück an der gleichen
CSA-Bit-Position zu verursachen. Diese Duplizierung der
Addierer-Bestückung zieht einen Kostenfaktor nach sich, der gegenüber dem
Geschwindigkeitsfaktor bei einer herkömmlichen
CSA-Installation abgewogen werden muß. Während es wünschenswert ist, die
Verwendung einer doppelten Addierer-Bestückung entfallen zu
lassen und einen einzigen CSA mit nur einem einzigen
geordneten Set von Bit-Positionen zu verwenden, um die oben
beschriebenen Ergebnisse zu erzielen, muß dies erreicht werden,
ohne die Fähigkeit des DSA zu beeinträchtigen, sämtliche der
von ihm verlangten Funktionen durchzuführen. Insbesondere muß
ein Weg geschaffen werden, das Wiedereingabeproblem
handzuhaben, wenn kein doppeltes Set von CSA-Bit-Positionen zu diesem
Zweck verfügbar ist.
-
Wenn gemäß dem oben genannten Patent von Birney et al. ein
Übertrag-Ablage-Addierer als Teil einer Dividiervorrichtung
verwendet wird, existiert ein zusätzliches Erfordernis
dahingehend, daß die CSA Information liefern muß, die in einem
Lookahead-Netzwerk verwendbar ist, um auf der Basis der
verschiedenen CSA-Ausgangswerte im voraus zu bestimmen, ob jede
vorgeschlagene komplementäre Subtraktion in dem
Dividiervorgang ohne Verursachung eines Überziehens erfolgreich
durchgeführt werden kann oder nicht. Zu diesem Zweck muß jede CSA-
Bit-Position zwei Typen von Ausgangsbits erzeugen: (1)
zwischengespeicherte Summen- und Übertrag-Ausgangsbits, die nur
zu vorbestimmten Taktzeiten gesetzt oder geändert werden
können, wobei sie zu allen übrigen Zeiten stabil sind; und (2)
nicht zwischengespeicherte Summen- und Übertrag-Bits (im
folgenden als "Vor-Summen"- oder "Vor-Übertrags"-Bits
bezeichnet), deren jeweilige Werte zu jedem Zeitpunkt durch die
momentanen Werte der Strom-Eingangssignale für diese CSA-Bit-
Position bestimmt werden, wobei die letztere verwendet wird,
um die Test-Bestimmungsvorgänge zwecks Verhinderung des
Auftretens eines Überziehens durchzuführen. Der herkömmliche
Übertrag-Ablage-Addierer ist nicht in der Lage, aus der
gleichen Bit-Zelle sowohl zwischengespeicherte als auch nicht
zwischengespeicherte Ausgangssignale zu erzeugen.
-
Während eines normalen Betriebsverlaufs führt ein normaler
digitaler Computer zahlreiche Rechenvorgänge durch, zu denen
Addition, Subtraktion, Multiplikation und Division gehören.
Die Division ist bei weitem die am meisten komplexe dieser
Operationen, die typischerweise mehr Hardware und
Berechnungszeit verlangt als die anderen Operationen. Der Stand der
Technik bietet eine Vielzahl von Divisionstechniken, denen die
Verwendung eines iterativen Verfahrens zur Quotientenerzeugung
gemeinsam ist. Bei dem iterativen Verfahren wird generell eine
einzelne Quotientenziffer in jedem iterativen Zyklus erzeugt.
Im folgenden werden drei der herkömmlichen Techniken
erläutert.
-
Eine Rückstell-Divisiontechnik ist durch die Wahl von
Quotienten-Ziffern in dem Bereich von 0, 1, ... (beta-1)
gekennzeichnet, wobei beta die Wurzel der Division ist. Thornton
beschreibt in "Design of a Computer - The Control Data 6500"
(Scott, Foresman and Co., Glenview, I11., 1970, S. 101-105)
einen für die Vierer-Wurzel ausgelegten Dividierer, bei dem
diese Divisionstechnik verwendet wird. Die Vorrichtung enthält
drei Addierer-/Subtrahierer-Einheiten zur gleichzeitigen
Berechnung von Kandidaten-Divisor-Mehrfachen und arbeitet
entsprechend einem Verfahren, das demjenigen der manuellen, mit
Stift und Papier durchgeführten Division ähnlich ist.
-
Eine zweite Divisionstechnik, die Division ohne Rückstellung,
ist gekennzeichnet durch die Wahl von Quotienten-Ziffern mit
den Werten - (beta-1); ..., -2, -1, 1, 2, ..., (beta-1). Ein
Vorgang, bei dem eine modifizierte Form dieser Technik
verwendet wird, wird von Nandi et al. in "A Simple Technique for
Digital Division" diskutiert (Communications of the ACM, Nr.
10, 1967, S. 299-301). In der iterativen Phase der Quotienten-
Ziffern-Erzeugung werden bei dem Verfahren gemäß Nandi et al.
"Teil-Reste" erzeugt, Werte, die die Differenz zwischen dem
Numerator und dem Multiplikationsprodukt des Denominators und
den zuvor erzeugten Quotienten-Ziffern reflektieren. Innerhalb
der iterativen Phase wird eine einzelne
Wurzel-beta-Quotienten-Ziffer als eine mathematische Funktion jedes Teil-Restes
erzeugt.
-
Eine Variante der Divisionstechnik ohne Rückstellung besteht
in der SRT-Division, die ferner durch die Wahl von Quotierten-
Ziffern in dem Bereich -(beta-1), ...; -1, 0, 1, ..., (beta-1)
gekennzeichnet ist. Eine Erläuterung der SRT-Technik findet
sich bei Robertson, "A New Class of Digital Division
Computers", IRE Transactions on Electronic Computers, Vol. EC-7, S.
218-222, Sept. 1958. Bei dem Verfahren von Robertson wird ein
iterativer Prozeß verwendet, der dem von Nandi et al.
verwendeten ähnlich ist. Bei Robertson jedoch wird jede Quotienten-
Ziffer durch den Betrieb einer Wählschaltung erzeugt, die eine
große Look-up-Tabelle enthält.
-
Die bei den herkömmlichen Divisionsverfahren auftretenden
Nachteile sind zahlreich. Bei Thornton beispielsweise gleichen
die Leistungssteigerungen nicht die Kosten aus, die mit den
erhöhten Anforderungen an die Hardware einhergehen. Sowohl
Robertson als auch Nandi et al. erzeugen Quotienten-Ziffern
auf eine Weise, die einen höheren Hardware = Aufwand erfordert,
um eine Umsetzung einzelner Quotienten-Ziffern in eine
herkömmliche Rückstell-Form zu erzielen. Bei Nandi et. al. ist in
manchen Fällen eine weitere Prüfung der beiden vorangehenden
Wurzel-beta-Ziffern eines Teil-Restes erforderlich, um eine
einzelne Quotienten-Ziffer zu bilden. Ferner erfordert das
Verfahren von Robertson eine Look-up-Tabelle, deren Größe als
Funktion einer vergrößerten Wurzel schnell ansteigt. Zudem
verlangt dieses Verfahren eine große Datenweg-Länge, wobei es
sich um die bitweise Länge von Signalen handelt, die zwischen
Dividierer-Elementen übertragen werden.
-
US-A-4,084,254 beschreibt einen zum Durchführen einer
digitalen Division vorgesehenen Dividierer, der einen
Übertrag-Ablage-Addierer und eine Quotienten-Vorhersage-Logikschaltung
aufweist, wobei der Addierer Teil-Restsummen-Signale, Teil-
Rest-Übertrag-Signale; und Wahr- und Komplement-Funktionen
mehrerer von dem Addierer zu verarbeitender Datenwerte
empfängt.
-
US-A-4,503,512 beschreibt eine Zellen-Divisionsschaltung mit
einem ersten Addierer zum Addieren eines Dividenden und eines
Divisors zwecks Bildung eines ersten Restes, und einem zweiten
Addierer zum Addieren eines Dividenden mit dem Komplement des
Divisors zwecks Bildung eines zweiten Restes, wobei die
Schaltung eine Einrichtung zum Komplementieren des Bits höchster
Ordnung jedes der ersten und zweiten Reste aufweist, um
dadurch die ersten und zweiten Quotienten-Bits zu bilden. Es ist
eine Selektorschaltung vorgesehen, um die ersten oder zweiten
Quotienten-Bits zu wählen und die ersten oder zweiten Reste
auf ein erstes Wählsignal hin zu wählen.
-
US-A-3,621,218 beschreibt einen Dividierer, der ein erstes
Paar von Registern, einen Dekodierer, ein Paar von Gatter-
Schaltungen, einen Übertrag-Ablage-Addierer und ein zweites
Paar von Registern aufweist. Der Dekodierer erzeugt als
Reaktion auf die oberen Teile von Summen- und Übertrag-Signalen,
die einen in dem ersten Paar von Registern gehaltenen Teil-
Rest repräsentieren, einen Teil-Quotienten. Der
Übertrag-Ablage-Addierer addiert den um eine Ziffer aufwärts verschobenen
Teil-Rest mit dem Divisor, Null oder dem Komplement des
Divisors gemäß der Wahl durch das Paar von Gatter-Schaltungen als
Reaktion auf den Teil-Quotienten und erzeugt neue Summen- und
Übertrag-Signale, die einen neuen Teil-Rest repräsentieren, um
den vorherigen Teil-Rest in dem ersten Paar von Registern
durch diese Signale zu ersetzen. Somit hält das zweite Paar
von Registern nacheinander die Abfolge der durch den
Dekodierer erzeugten Teil-Quotienten.
-
EP-A-0,040,279 beschreibt einen Binär-Dividierer mit: einem
Aktivierungs-Register zum Erhalt eines Dividenden; einem
Divisor-Register zum Erhalt eines Divisors; einem
Erzeugungs-Register; und ersten und zweiten Übertrag-Ablage-Addierern. Der
erste Addierer ist derart geschaltet, daß er Eingangssignale
von dem Aktivierungs-Register, dem Divisor-Register und dem
Erzeugungs-Register empfängt, und der zweite Addierer ist
derart geschaltet, daß er Eingangssignale von dem
Aktivierungs-Register, dem Komplement des Divisor-Registers und dem
Erzeugungs-Register empfängt. Es sind Einrichtungen, die mit
den ersten und zweiten Addieren verbunden sind, vorgesehen, um
das Vorzeichen eines aktuellen Teil-Restes zu bestimmen, und
ein Vorzeichen-Aufzeichnungs-Flip-flop speichert das
Vorzeichen des vorausgegangenen Teil-Restes. Ein
Addierer-Wähl-Gatter gattert die Ausgangssignale eines der Addierer für einen
weiteren Zyklus des Divisionsvorgangs, und ein
Quotientenschieberegister speichert die Quotienten-Bits, während sie
entwickelt werden.
-
Gemäß der Erfindung wird ein Dividierer zum Durchführen einer
Hochgeschwindigkeits-Digitaldivision mit einem
Übertrag-Ablage-Addierer und einer Quotientenvorhersage-Logikschaltung
geschaffen, wobei der Addierer Teil-Restsummen-Signale, Teil-
Rest-Übertrag-Signale, und. Wahr- und Komplement-Funktionen
mehrerer von dem Addierer zu verarbeitenden Datenwerte
empfängt, wobei der Dividierer dadurch gekennzeichnet ist, daß
der Addierer sämtliche möglichen Additionen der empfangenen
Signale durchführt und eine Multiplexereinrichtung auf Signale
hin, die aus der Quotientenvorhersage-Logikschaltung empfangen
werden, eine geeignete der Additionen wählt, wobei die
Multiplexereinrichtung in einer Rückkopplungsschleife mit der
Quotientenvorhersage-Logikschaltung verbunden ist, wodurch sich
der Betrieb des Übertrag-Ablage-Addierers mit dem Betrieb der
Quotientenvorhersage-Logikschaltung zeitlich überlagert, um
die Geschwindigkeit der Division zu erhöhen.
-
Die Zeichnungen dienen lediglich als Beispiel.
-
Fig. 1 zeigt ein Blockschaltbild einer herkömmlichen
Übertrag-Ablage-Addierer-Konfiguration;
-
Fig. 2 zeigt ein Blockschaltbild einer neuen Übertrag-Ablage-
Addierer-Konfiguration, die eine kürzere iterative
Verzögerung hat als die Konfiguration gemäß Fig. 1;
-
Fig. 3 zeigt ein Blockschaltbild einer speziellen Übertrag-
Ablage-Addierer-Konfiguration gemäß den Lehren der
vorliegenden Erfindung; und
-
Fig. 4 zeigt ein detaillierteres schematisches Schaltbild des
Addierers gemäß Fig. 3.
-
Wie nun ersichtlich ist, befaßt sich der vorliegende Addierer
mit dem Problem des übermäßigen Zeitbedarfs, der bei der SRT-
und NR-Division für einen Quotienten-Vorhersage-Logik-Block
verursacht wird, wenn Signale zum Erzeugen jeder neuen
Iteration auf der Basis der Ergebnisse (des Teil-Restes) der
vorhergehenden Iteration erzeugt werden sollen. Der vorliegende
Addierer schafft eine Lösung für dieses Problem.
-
Nachdem eine Minimal-Schaltung für die Quotienten-Vorhersage-
Logik erstellt worden ist, besteht der einzige Weg zur
Reduzierung der Iterationszeit darin, die CSA-Operation mit den
Quotienten-Vorhersage-Berechnungen zu überlappen. Um dies
besser erzielen zu können, geht man hier von einer
herkömmlichen Übertrag-Ablage-Addierer-Konfiguration gemäß Fig. 1
aus, die einen Multiplexer 1, einen Übertrag-Ablage-Addierer 6
und einen Quotienten-Vorhersage-Logik-Block 4 aufweist.
Während des Betriebs einer derartigen Konfiguration wird ein
Teil-Rest PRi über den Addierer 6 über die Leitung 8 zugeführt,
und ein Teil-Rest PR0i+1 wird auf der Ergebnis-Leitung 10
ausgegeben. Zwischen dem Block 4 und dem Multiplexer 2 verlaufen
Quotienten-Wähl-Leitungen 12. Ferner weist der Multiplexer 2
eine Anzahl von Eingängen 14 auf, deren exakte Zahl von der in
der Gesamtkonfiguration verwendeten Wurzel abhängt. Bei dieser
Gesamtkonfiguration ist die gesamte Zeitverzögerung gleich der
Summe der Zeitverzögerungen in dem Addierer 6, dem Block 4 und
dem Multiplexer 2. Vor diesem Hintergrund ist ersichtlich,
daß, falls man den Zeitverzögerungsblock 4 und den Addierer 6
in "Überlappung" bringen könnte, die Gesamtkonfiguration einen
kleineren Gesamtzeitbedarf hätte.
-
Ein Weg zur Erzielung der oben erwähnten Überlappung bestände
darin, mehrere CSAs zu verwenden und dann am Ende die korrekte
Antwort herauszumultiplexen. Eine derartige Konfiguration ist
in Fig. 2 gezeigt, wobei die Summen- und Übertrag-Signale PRi
über die Leitung 8 in mehrere Addierer eingegeben werden (von
denen nur zwei gezeigt sind), und das Ausgangssignal PRi+1
verläßt den Multiplexer 2 über die Leitung I0. Da die Addieret
6 zu der gleichen Zeit arbeiten können wieder Block 4 und da
die Verwendung mehrerer Addierer gewährleistet, daß die
korrekten Werte für die Bestimmung durch den Muhtiplexer 2
erzeugt werden, kann die CSA-Zeit vernachlässigt werden und die
gesamte Iterationszeit als die Summe der Verzögerung des
Blocks 4 und der Verzögerung des Multiplexers 2 betrachtet
werden.
-
Das Problem bei der direkt oben vorgeschlagenen und in Fig. 2
gezeigten Lösung besteht darin, daß bei Divisionen mit hoher
Wurzel eine derartige Lösung in Hinblick auf die Transfer-
Anzahl und den Chip-Bereich sehr kostenaufwendig wäre. Die
Lösung gemäß Fig. 2 kann als eine teure und schnelle Lösung
des durch die Erfindung beseitigten Problems angesehen werden.
-
Fig. 3 zeigt eine Gesamtkonfiguration mit einem speziellen
Übertrag-Ablage-Addierer 20 gemäß den Lehren der vorliegenden
Erfindung. Der spezielle Übertrag-Ablage-Addierer 20 gemäß der
vorliegenden Erfindung ist dahingehend zu verstehen, daß er
ein Multiplexen und Drei-Operanden-Addieren in einer einzigen
Schaltung durchführt. Die iterative Verzögerung bei einer
derartigen Schaltung ist die Summe der Verzögerung des Addierers
20 und der Verzögerung des Blocks 4, die sehr viel kürzer wäre
als die Verzögerung der herkömmlichen Konfiguration gemäß Fig.
1. Ferner ist dieser neue Übertrag-Ablage = Addierer 20 sehr
viel kleiner als mehrere CSAs und ein Multiplexer, und somit
wäre er in den meisten Anwendungsfällen der oben anhand Fig. 2
erläuterten Konfiguration vorzuziehen.
-
Fig. 4 zeigt weitere Einzelheiten zu dem Addierer 20. Aus Fig.
4 ist ersichtlich, daß Signale aus dem Quotienten-Vorhersage-
Logik-Block 4 über die Leitung 12 in den Addierer 20
eingegeben werden, Teil-Restsummen-Signale über die Leitung 24 in den
Addierer 20 eingegeben werden und Teil-Rest-Übertrag-Signale
über die Leitung 26 in den Addierer eingegeben werden. Die
verschiedenen weiteren Eingänge, die generell mit 14
gekennzeichnet sind, betreffen den verwendeten Algorithmus und die
Wurzel, z. B. die Wurzel 4. Bei einer Ausführungsform der
Erfindung, die tatsächlich realisiert worden ist, bilden diese
Eingangssignale die Wahr- und Komplement-Funktionen vier
unterschiedlicher Werte, D0, D1, D2 und D3. Die Tatsache, daß
diese Funktionen mit den Summen- und Übertrag-Werten zur
Verfügung stehen, ermöglicht eine unabhängige Berechnung
sämtlicher möglicher Additionen, die innerhalb eines Addierers
gemäß der vorliegenden Erfindung durchgeführt werden müssen.
Somit stehen, nachdem ein Hinweis auf die unter den
unterschiedlichen Werten zu treffende korrekte Wahl verfügbar ist,
sämtliche Daten zur Ausführung dieser korrekten zur Verfügung.
Das Teil-Rest-Ausgangssignal, PRi+1, wird über Leitungen 10 aus
dem Addierer 20 ausgegeben.
-
Aus Fig. 4 ist dem Fachmann ersichtlich daß aufgrund der
Dominanz der Quotienten-Verzögerungszeit mittels des neuartigen
Addierers 20 die Verzögerung anhand einer einzigen Gatter-
Verzögerung gemessen werden kann. Ferner ist ersichtlich, daß
die Schaltung gemäß Fig. 4 sehr viel kleiner ist als mehrere
CSAs, die zu einem Multiplexer führen, und zwar aufgrund der
von den Eingangs-Termen PR suml und PR cari gemeinsam benutzten
Logik, die bei einer alternativen Implementation viele Male
repliziert würde. Vom Effekt her werden bei der
Ausführungsform der vorliegenden Erfindung sämtliche der gemeinsamen
Teil-Rest-Eingangssignale in sämtliche der CSAs gemäß Fig. 2
gemeinsam benutzt. Diese gemeinsame Benutzung von
Eingangssignalen ermöglicht ferner eine gemeinsame Bestimmung der zu
erzeugenden Ausgangssignals, so daß die Notwendigkeit eines
unabhängigen Multiplexers entfällt.
-
Aus der vorstehenden Beschreibung wird der Fachmann erkennen,
daß der vorliegende Dividierer die Iterationszeit durch zwei
Gatter-Verzögerungen in dem Haupt-Iterationsweg reduziert. Der
vorliegende Dividierer ist ferner relativ kostengünstig,
zumindest im Vergleich zu Verfahren, bei denen Addier- und
anschließend Wähl-Operationen verwendet werden.