DE2816711A1 - Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau - Google Patents

Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau

Info

Publication number
DE2816711A1
DE2816711A1 DE19782816711 DE2816711A DE2816711A1 DE 2816711 A1 DE2816711 A1 DE 2816711A1 DE 19782816711 DE19782816711 DE 19782816711 DE 2816711 A DE2816711 A DE 2816711A DE 2816711 A1 DE2816711 A1 DE 2816711A1
Authority
DE
Germany
Prior art keywords
carry
bit
csa
sum
bits
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.)
Withdrawn
Application number
DE19782816711
Other languages
English (en)
Inventor
Richard Eugene Birney
Joel Calvin Leininger
George Phillips Taylor
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2816711A1 publication Critical patent/DE2816711A1/de
Withdrawn 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/52Multiplying; Dividing
    • G06F7/535Dividing only
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/535Indexing scheme relating to groups G06F7/535 - G06F7/5375
    • G06F2207/5353Restoring division

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)

Description

Anmelderin: International Business Machines
Corporation, Armonk, K.Y. 10504
te/bra
Divisionseinrichtung mit Übertrags--Rettungsaddierwerk und nicht ausführender Vorausschau
Die Erfindung betrifft arithmetische Einheiten für Hochgeschwindigkeits-Datenprozessoren und insbesondere die Multiplikations/Divisionseinrichtungen solcher Einheiten.
In einem Datenprozessor mit einer Multiplikations/Divisionsschaltung wird der Multiplikationsprozeß im wesentlichen in Form einer Reihe von Additionen und die Division im wesentlichen in Form einer Reihe von Subtraktionen ausgeführt, diese speziell als komplementäre Subtraktionen. Multiplikationen werden im allgemeinen durch den Einsatz von Übertrags-Rettungsaddierer (Carry-Save-Adder) für die aufeinanderfolgenden Additionen beschleunigt. Ein übertrags-Rettungsaddierer arbeitet so, daß er nicht direkt die übertragsbits mit den Grundsummenbits kombiniert (manchmal auch Halbsummenbits genannt), die sich aus jeder Addition ergeben, sondern stattdessen diese Summen- und übertragsbits vorübergehend in separaten Registern bis zu einem späteren Zeitpunkt festhält, zu dem sie in geeigneter Weise kombiniert werden. Dieses Verfahren spart die Zeit ein, die sonst für das Warten auf die Weiterleitung von Überträgen durch die lange Reihe von Summenbits nach jeder Addition verbraucht wird. Stattdessen werden die übertragsbits unentschieden gehalten, so daß der nächste Zyklus der Multiplikation ablaufen kann.
In Datenprozessoren mit Teilereinheiten (Divisionseinrichtungen) verwendet die Teilerschaltung üblicherweise einen anderen als den übertrags-Rettungsaddierer. Wie schon gesagt, besteht die Division aus einer Folge von Subtraktionen, die normalerweise als Additionen ausgeführt werden, worin einer der Ausdrücke in die Komplementärform invertiert wird. Bei jeder Subtraktion BC 976 026
muß geprüft werden, ob sie erfolgreich oder erfolglos verläuft, bevor die nächste Subtraktion stattfinden kann.
Eine erfolglose Subtraktion führt zu einer Überziehung, weil der Subtrahend (d.h. bei einer Division der Divisor) größer ist als der wahre Wert des Minuenden (d.h. der laufende Rest von der vorhergehenden Subtraktion oder der erste Dividendenwert bei der ersten Subtraktion). Die Überziehung muß entweder vorhergesehen und verhindert werden, indem die Subtraktion nicht tatsächlich ausgeführt wird. Wenn die Subtraktion ausgeführt wurde, muß sie annuliert werden durch Wiederherstellung des vorhergehenden Minuendenwertes und entsprechende Neueinstellung des Wertes der Zahl in der laufenden Reihenfolge des Quotientenwertes. Vorzugsweise wird jedoch eine Überziehung vorhergesehen und die tatsächliche Ausführung der Subtraktion verhindert und nicht die Subtraktion ausgeführt und dann der vorherige Minuendenwert wieder hergestellt.
üblicherweise in Teilereinheiten verwendete Addierer ersetzen den in Multiplikatoren verwendeten Übertrags-Rettungsaddierer im allgemeinen nicht. Ein Übertrags-Rettungsaddierer hält absichtlich den Effekt der während einer laufenden Addition erzeugten Überträge bis zur Ausführung des nächsten Additionsschrittes zurück. Dieses Prinzip ist im Grunde genommen einer Vorausschaufunktion entgegengesetzt, die verlangen würde, daß der Effekt der aus einem Schritt im Rechenprozeß resultierenden Überträge sichergestellt ist, bevor der nächste Schritt in diesem Prozeß ausgeführt wird. Somit war es allgemein üblich, separate Addierer für Multiplikation und Division vorzusehen, wobei in der Multiplikationseinheit ein Rettungsaddierer und in der Divisionseinheit ein anderer Addierertyp, vorzugsweise mit Vorausschaumöglichkeit verwendet wurde. Wenn die Divisionsfunktion vorgesehen ist, wird somit in herkömmlichen Prozessoren die Recheneinheit teuerer und es muß außerdem zusätzlicher Raum für einen weiteren Addierer vorgesehen werden. Während weiterhin ein her- BC 976 026 80984Λ/0774
kömmlicher Vorausschauaddierer einige Zeit spart, die sonst für die Ausführung und die anschließende Rückstellung einer vergeblichen Subtraktion gebraucht würde, ist ein solcher Addierer doch nicht völlig untätig, sondern braucht einige Zeit für die echte Ausführung wenigstens eines Teiles des Subtraktionsprozesses. Diese Zeit ist vergeudet, wenn sich der Subtraktionsversuch als erfolglos herausstellt.
Eine Hauptaufgabe der vorliegenden Erfindung ist die Schaffung einer verbesserten Divisionseinrichtung hoher Geschwindigkeit, die einen Übertrags-Rettungsaddierer benutzt und die Verwendung desselben Addierers für Division und Multiplikation ermöglicht. Eine weitere Aufgabe ist die Schaffung einer schnellen Vorhersageschaltung für jede komplementäre Subtraktionsphase eines Divisionsprozesses mit Übertragsrettung. Dabei wird vorhergesagt, ob die Subtraktion erfolgreich verlaufen wird oder nicht und die eigentliche Ausführung dieser Subtraktion bei einer erfolglosen Vorhersage verhindert. Diese Vorhersagen sollen durch einfache logische Funktionen möglich sein, die durchschnittlich wesentlich weniger Zeit brauchen als eine echte Addition besagter Bitreihen durch besagten Addierer.
Eine weitere Aufgabe der Erfindung besteht in der Schaffung eines Übertrags-Rettungsaddierers neuartiger miniaturisierter Konstruktion, der die darin gespeicherten Bitreihen nach Bedarf nach links oder rechts verschieben und gleichzeitig verschiedene Sätze von Summen- und Übertragsbits ohne Dualaddierer festhalten kann. Besagter Übertragsrettungsaddierer erzeugt Summen- und Übertragsbits, die zwischen Taktimpulsen verriegelt bleiben, sowie nicht verriegelte Vorsummen- und Vorübertragsbits, die in einer neuartigen Vorausschauschaltung zur Bestimmung der Ergebnisse einer vorgeschlagenen Addition benutzt werden können, ohne die verriegelten Werte der Summen- und Übertragsbits zu beeinflussen.
EC976026 809644/077«
Ein Ausführungsbeispiel der Erfindung ist in den beigefügten Zeichnungen dargestellt und wird anschließend näher beschrieben.
Es zeigen;
Fig. 1 in einem Diagramm den allgemeinen Datenfluß in einem die Erfindung enthaltenden Prozessor,
Fign. 2 in vereinfachter Darstellung den Datenfluß in bis 5 verschiedenen Schiebe- und Additionsfunktionen,
die vom erfindungsgemäßen Übertrags-Rettungs-
addierer ausgeführt werden können,
Fig„ 6 allgemein eine typische Bitposition im übertrags-
Rettraigsaddierer,
Fig. 7 eine Anweisung einer mathematischen Funktion, die von der hier beschriebenen neuen Vorausschauschaltung ausgeführt wird,
Fign. 3 logische Diagramme verschiedener Aspekte der bis 11 Vorausschauschaltung und ihrer Arbeitsweise,
Fig. 12 ein logisches Diagramm des Aufbaus der Bitposition im Übertrags-Rettungsaddierer im einzelnen
und
Fign. 13 in vereinfachten Diagrammen die obengenannte bis 15 Bitposition im Übertrags-Rettungsaddierer mit
verschiedenen Funktionen der hier verwendeten
Flankentriggerschaltung.
BC 976 026
809844/0774
Zuerst werden das logische und arithmetische Verfahren für die Ausführung einer Division nach dem Erfindungsgedanken beschrieben. Die Division ist ein Prozeß aufeinanderfolgender Subtraktionen, während denen ein Divisor genannter Operand progressiv von einem anderen Operanden subtrahiert wird, der am Anfang Dividend genannt wird und dadurch von seinem Anfangswert auf eine Reihe von Zwischen-Minuenden oder Teilrestwerten abnehmender Größe reduziert wird, bis ein Endrest errechnet wird, der kleiner ist als der Divisor. Dieser Endrest ist null, wenn der Dividend ein genaues Vielfaches des Divisors ist.
Auch wenn der Anfangsdividend wesentlich größer ist als der Divisior, ist nicht sichergestellt, daß jeder der Teilrestwerte so groß ist, daß der Divisor davon subtrahiert werden kann. Somit ist am Anfang nicht bekannt, ob in jedem der nachfolgenden Subtraktionsschritte eine Überziehung auftritt oder nicht. Erfolg oder Erfolglosigkeit einer bestimmten Subtraktion in der Subtraktionsreihe hängen vom jeweiligen Bitmuster des betreffenden Minuenden ab, der von der jeweiligen Subtraktion betroffen ist. Wenn die Subtraktion nicht erfolgreich ausgeführt werden kann (d.h., wenn sie nicht ohne Überziehung ausgeführt werden kann), sollte diese Tatsache vorzugsweise festgestellt werden, bevor die Subtraktion versucht wird, so daß die Operation direkt zum nächsten Subtraktionsschritt weitergeht (nach der notwendigen Spaltenverschiebung), ohne eine erfolglose Subtraktion auszuführen.
Die Vorhersage von Überziehungen bei einer Division wurde schon auf vielerlei Art vorgenommen. Soweit bekannt ist, wurde jedoch nirgendwo eine Einrichtung vorgesehen, um eine genaue Vorhersage zu treffen, wenn die Division durch einen komplementären Subtraktionsprozeß mit einem übertragsrettungs-Addierer (wie normalerweise bei Multiplikationen) ausgeführt wird.
BC 976 026
80984h
Die Verwendung eines Übertrags-Rettungsaddierers für die Division bringt gewisse Probleme mit sich, die bei Verwendung eines solchen Addierers für die Multiplikation nicht auftreten. Bei der Multiplikation können die verschiedenen Additionsschritte im allgemeinen ohne Rücksicht auf die relative Größe der betroffenen Operanden ausgeführt werden und es entstehen keine Schwierigkeiten dadurch, daß aus jeder Addition resultierende Übertragsbits festgehalten werden bis zur Ausführung der nächsten Addition. Bei einer Division führt das Retten der aus einem Subtraktionsschritt in einem Zyklus ausgeführten Überträge bis zur Subtraktion des nächsten Zyklus zu Komplikationen beim Problem der Vorhersage der erfolgreichen Ausführbarkeit einer Subtraktion ohne Überziehung. Bevor diese Komplikationen näher betrachtet werden, wird zuerst das Problem der Vorhersage von Überziehungen allgemein behandelt. Danach werden die durch die Übertrags-Rettungstechnik eingeführten Sonderprobleme betrachtet. Soweit die Division als eine Reihe von komplementären Subtraktionen ausgeführt wird, ist es am einfachsten, den Dividenden am Anfang in seine Einer-Komplementform umzuwandeln und die Division durch sukzessive Addition des Divisors zu einem Minuenden durchzuführen, der bereits in Komplementform steht.
Am Anfang eines jeden neuen Subtraktionszyklus einer Teilungsoperation findet eine Spaltenverschiebung statt, durch die der laufende Teilrestwert um eine Bitposition nach links verschoben wird. Die Linksverschiebung ist effektiv eine Sonderform der Addition mit teilweiser Weiterleitung der Überträge und die nicht weitergeleiteten Überträge müssen bei der Bestimmung des links ausgeschobenen Bits berücksichtigt werden. Wenn als Ergebnis dieser Linksverschiebung und unter Berücksichtigung der nicht weitergeleiteten Überträge ein wahres Einer-Bit oder ein komplementäres Null-Bit am werthohen Ende des Restes nach links über die werthöchste Bitposition im Divisor hinausgeschoben wird, heißt das, daß eine Subtraktion erfolgreich ausgeführt werden kann, weil dann der wahre Minuendenwert not-
BC 976 026
wendigerweise den Divisor- oder Subtrahendenwert übersteigt. Sobald also bei der ersten Linksverschiebung eine komplementäre Null aus dem laufenden Rest links vom Divisor ausgeschoben wird, wird eine erfolgreiche Subtraktion angezeigt, weil auch der höchstmögliche Divisorwert kleiner ist als der nach links verschobene Rest, von dem er zu subtrahieren ist. Wenn das links ausgeschobene Bit des Divisors jedoch einen komplementären Einer-Wert oder einen wahren Null-Wert hat, kann der Erfolg der Subtraktion nicht gesichert werden, weil der Subtraktionsprozeß einen werthohen Ausgangsübertrag ergeben kann, und unter diesen Umständen würde eine Oberziehung eintreten.
Bei der Vorhersage einer erfolgreichen oder erfolglosen Subtraktion muß also die Möglichkeit eines wertdarstellenden Ausgangsübertrages von der Bitposition berücksichtigt werden, die der werthöchsten Stelle des Divisors entspricht. In diesem Fall wird eine erfolgreiche Subtraktion nämlich nur möglich, wenn das werthöchste Bit des Minuenden, das links aus dem Divisor ausgeschoben wurde, eine wahre Eins oder eine komplementäre Null ist. Wenn andererseits kein Ausgangsübertrag erfolgt (d.h. Äusgangsübertragsbit = 0) ist der Erfolg der Subtraktion gesichert, weil dann keine Überziehung auftreten kann, auch wenn das Minuendenbit links vom Divisor eine wahre Null ist. Wenn der Übertragsausgang also eine wahre Eins ist, hängt der Erfolg der Subtraktion davon ab, ob das links aus dem Divisor ausgeschobene Bit eine wahre Eins, d.h. eine komplementäre Null, ist.
Eine erfolgreiche Subtraktion wird also angezeigt, wenn eine der folgenden Bedingungen erfüllt ist:
1. Die Linksverschiebung des komplementären Minuendenwertes ! vor der Subtraktion schiebt eine komplementäre Null links aus oder
BC 976 026
809844/0774
2 ο Die Addition des komplementären Minuenden und des Divisors erzeugen einen übertragsausgang von Hull=
Man kann also vorher feststellen, ob eine vorgeschlagene Subtraktion erfolgreich ist oder nicht, wenn ein zuverlässiger Weg dafür entwickelt werden kann, aus den verschiedenen den komplementären Minuenden und den Subtrahenden darstellenden Bitmustern sicherzustellen, daß eine der obigen beiden Bedingungen erfüllt ist.
Wenn diese Art der Vorhersage bei Verwendung eines Übertrags-Rettungsaddierer s für die komplementären Subtraktionen bei einer Division getroffen werden soll, sind bestimmte Spezialprobleme zn lösen. Diese Probleme entstehen dadurch, daß in einem Übertrags-Rettungsaddierer einige oder alle während eines gegebenen Subtraktionszyklus erzeugten Überträge festgehalten werden bis zur Ausführung des nächsten Subtraktionszyklus. Die Vorhersage des Wertes des ausgeschobenen Bits und somit des Erfolges der nächsten Subtraktion muß daher die Wirkung dieser geretteten oder ausgesetzten Überträge mit berücksichtigen. Bisher wurde es für unmöglich gehalten, den Erfolg von Subtraktionen mit vollständiger Genauigkeit vorauszusagen, wenn, diese Subtraktionen durch einen Übertrags-Rettungsaddierer ausgeführt werden. Mit der hier gezeigten Analysetechnik sind solche Voraussagen jedoch mit vollständiger Zuverlässigkeit möglich. Dadurch kann die Ausführung von Subtraktionen verhindert werden, die aus irgendeinem Grund erfolglos verlaufen würden, ohne die Ausführung der Subtraktionen zu behindern oder wesentlich zu verzögern, die erfolgreich ausgeführt werden können. Diese Vorhersagemöglichkeit ist durch eine neuartige Schaltung gegeben, die in den Zeichnungen dargestellt und anschließend näher beschrieben ist.
:Bevor Einzelheiten der in dem gerade erwähnten Vorausschauproseö verwendeten Schaltung betrachtet werden, werden die
BC 976 026 Λ Λ Ä Ä , , , „ * * .
verschiedenen Datenflüsse in den relevanten Rechenoperationen im Zusammenhang mit den Fign. 1 bis 5 beschrieben. Anschließend werden Einzelheiten des Übertrags-Rettungsaddierers und der zugehörigen Vorausschau- und Schiebeschaltung im Zusammenhang mit den Fign. 6 bis 12 beschrieben. An einigen Beispielen wird dann gezeigt, wie das Gerät Divisionsprobleme behandelt.
Fig. 1 zeigt in Form eines Blockdiagrammes Teile eines Prozessors einschließlich des Übertrags-Rettungsaddierers (CSA 20), die von der Ausführung des hier beschriebenen Divisionsverfahrens direkt betroffen sind. In der Praxis ist das schematisch in Fig. 1 dargestellte Gerät enthalten in einem Gleitkommaprozessor, der mit demselben Addierer 20 Multiplikation, Division und andere Rechenoperationen durchführt. Diese Vielseitigkeit erhält der CSA 20 durch die nachfolgend beschriebenen neuartigen Einrichtungen, von denen einige in Fig. 1 dargestellt sind. Andere von der vorliegenden Erfindung nicht betroffene Teile des Gleitkommaprozessors wurden in der Darstellung weggelassen.
Die vorliegende Erfindung ist in ihrem Grundgedanken natürlich nicht auf die Anwendung in Gleitkommaprozessoren beschränkt. Der Nutzen der Erfindung ließ sich jedoch in diesem Prozessortyp am besten demonstrieren, das Prinzip läßt sich jedoch ebensogut auf Festkommaprozessoren anwenden.
In dem betrachteten Prozessor werden hereinkommende Daten in Gruppen von jeweils 8 oder 16 Bits in ein 56 Bit großes Schieberegister 22 geleitet, das die Bits in ihrer richtigen Reihenfolge zusammensetzt, beginnend von der werthöchsten Bitposition 0 auf dem äußersten linken Ende und weiterlaufend bis zu den niederen Positionen, deren Rang der Nummer der Bitposition umgekehrt ist. Der volle Bereich von 56 Bitpositionen wird aktiv nur beim Arbeiten im Doppelpräzisions-
BC976026
betrieb genutzt.
Die im Schieberegister 22 gespeicherte Zahl wird zu gegebener Zeit in ein sogenanntes F-Register 24 übertragen, von wo sie in wahrer oder in Komplementform an den Dateneingabeanschluß des CSA 20 angelegt werden kann. Im allgemeinen wird einer der beiden Operanden vom F-Register 24 an den CSA 20 übertragen, während der andere im F-Register gehalten wird, bis er im Rechenprozeß gebraucht wird. In der hier beschriebenen Division wird der Dividend in den CSA 20 in einer Komplementform zu Beginn der Operation eingegeben und der Divisor im F-Register gehalten. Bei Ausführung der Division wird der Anfangswert des Dividenden progressiv reduziert durch Komplementärsubtraktion des Divisors in der noch zu beschreibenden Art, wodurch eine Folge von Teilresten abnehmender Größe gebildet wird. Nach Darstellung in Fig. 1 ist der Übertrags-Rettungsaddierer CSA zum Empfang von dreierlei Eingängen geeignet, nämlich einem Summeneingang, einem Übertragseingang und einem Dateneingang. Manchmal kann eine Eingabe auch aus einer Reihe von Null-Bits bestehen. In jedem Fall werden drei Eingabereihen benötigt, ob sie nun einen Wert darstellen oder nicht. Die Summeneingabe wird durch die Summenausgabeverriegelungen 26 geliefert (vorzugsweise Teil des CSA 20, obwohl in Fig. 1 separat dargestellt) , die die als Ergebnis einer von CSA 20 ausgeführten Addition erzeugten Halbsummenbits speichern. Der einfacheren Beschreibung halber werden diese Halbsummenbits nachfolgend als "Summenbits" bezeichnet. Wenn dieser Ausdruck benutzt wirdr sind darunter Summenbits zu verstehen, die nicht unbedingt die durch die Addition erzeugten Überträge einschließen, die in den meisten Fällen von solchen Überträgen separat stehen.
In ähnlicher Weise wird der Übertragseingang an den Übertrags-Rettungsaddierer 20 durch die Übertragsausgangsverriegelungen 28 geliefert, die vorzugsweise ein Teil des CSA 20 sind, obwohl sie in Fig. 1 separat dargestellt sind. Die durch eine
EC976026 8098U/07U
Addition erzeugten Überträge werden gerettet, d.h., sie v/erden nicht direkt mit den durch dieselbe Addition erzeugten Summenbits kombiniert. Wenigstens einige der in jedem Zyklus einer Multiplikation oder Division vom Prozessor erzeugten tiberträge können bis zu seinem nächsten Zyklus gerettet werden. Sobald aus irgendeinem Grund die Kombination der Überträge mit den Summenbits gewünscht wird, müssen diese beiden Bitsätze in den CSA 20 zurückgeleitet werden.
In vielen Fällen muß eine Reihe von Ausgabesummenbits oder Ausgabeübertragsbits um eine Spalte verschoben werden, bevor sie wieder in die Eingabeseite des CSA gegeben wird. Abhängig von den jeweiligen Umständen verschieben die Summenschiebetore 29 die Summenbitreihe bei einer Addition oder Komplementärfunktion überhaupt nicht oder sonst nach links oder rechts. Die Übertragsbitreihe wird abhängig von den Umständen in den Übertragsschiebetoren 30 entweder überhaupt nicht oder um eine oder zwei Bitpositionen nach links verschoben. Die verschiedenen Situationen für die einzelnen Verschiebungen werden nachfolgend kurz beschrieben. Im hier gezeigten Ausführungsbeispiel sind die Schiebetore 29 und tatsächlich Teil des CSA 20, obwohl sie in Fig. 1 separat dargestellt sind.
Soweit die vorliegende Erfindung betroffen ist, spielt es keine Rolle, ob die AusgabeVerriegelungen 26 und 28 sowie die Schiebetore 29 und 30 als von dem CSA 20 separate Einheiten oder eingebaute Einheiten ausgeführt sind. In dem nachfolgend zu beschreibenden Ausführungsbeispiel sind die Einheiten 26, 28, 29 und 30 in den CSA so integriert, daß bestimmte Teile Öer CSA-Schaltung Doppelfunktionen übernehmen, wodurch Größe Und Kosten des Speichers wirtschaftlich werden.
BC 976 026 ~ ta„ .
809844/07*74
Sobald Im Lauf einer Rechenoperation das F-Register 24 auf die Dateneingangsanschlüsse des CSA 20 geschaltet ist, liefert es als Eingang die in diesem Register gespeicherten Daten, d.h. den zweiten Operanden des ausgeführten Rechenprozesses. Bei einer Division ist der zweite Operand der Divisor. Wenn dieser Operand nicht in den CSA eingegeben werden soll, wird das F-Register vom CSA abgetrennt und in diesem Fall ist die Dateneingabe eine Reihe von Nullen.
Im Zusammenhang mit Fig. 1 wurde bereits darauf hingewiesen, daß der CSA 20 eine Reihe von 56 Bitpositionen hat, beginnend mit der werthöchsten Position Null und durchlaufend bis zur v/ertföiedersten Position 55» Die Fign. 6 bzw. 12 zeigen in einem Blockdiagraram und in einem detaillierten Schaltbild die Elemente einer Bitposition N im CSA und der zugehörigen Eingabe/ Äusgabaleiter. Dieselbe Schaltungsform ist an jeder anderen Bitposition des CSA vorgesehen. Diese Schaltung wird später im einzelnen beschrieben.
Es wurde bereits erwähnt, daß die Ausgaben des CSA 20 Summenbits und Übertragsbits enthalten, die beide verriegelt werden, und daß sie auch Vorsummen- und Vorübertragsbits enthalten, die nicht verriegelt werden. D.h., die Werte dieser Vorsummen- und Vorübertragsbits können unter bestimmten Umständen geändert werden, ohne daß die verriegelten Summen- und Übertragswerte geändert werden. Diese nicht verriegelten Vorsummenbits und Vorübertragsbits (bezeichnet mit "PS" und "PC" zum unterschied von den verriegelten Summen- und Übertragsbits S und C) i/erden einer Vorausschauschaltung 32 zugeführt, die diese Bitmuster durch einen rekursiven logischen Prozeß darauf analysiert, ob der Divisor im F-Register 24 vom laufenden Wert des Teiirestes ohne Überziehung subtrahiert werden kann.
.Jetzt wird das Vorausschauverfahren analysiert. Mit ihm soll $chnell festgestellt werden, ob eine vorgeschlagene Komplement-
BC 976 026 8 0 § 8 4 4 / Q 7 Ή
subtraktion gültig ausgeführt werden kann oder ob sie verhindert werden muß, wenn dieser Versuch erfolglos wäre. Das soll heißen, die projizierten Ausgabedaten, die sich aus einem erfolglosen Subtraktionsversuch ergeben, werden nicht in die Summen- und Übertragsausgabeverriegelungen 26 und 28 übertragen und die Maschinenzykluszeit wird entsprechend abgekürzt. Die Ausgabe der Vorausschauschaltung 32 ist ein DOK-Signal, das aus einem Einer-Bit besteht, wenn die Subtraktion ohne überziehen ausgeführt werden kann. Dieser Zustand wird als "erfolgreiche Division" der Vorausschau bezeichnet. Mit diesem Vorausschauverfahren werden erfolglose Subtraktionen jedesmal ausnahmslos vorweg erkannt.
Die eigentlich in den CSA 20 integrierten Schiebeverriegelungen 29 und 30 funktionieren wie folgt. Im Laufe einer Division sind manchmal Spaltenverschiebungsfunktionen erforderlich. Wenn die betreffenden Größen von Dividend und Divisor am Anfang nicht in der richtigen Beziehung zueinander stehen v muß der Dividend um eine Reihe von Positionen relativ zum Divisor nach rechts verschoben werden. Wenn das äußerste linke Hexadezimalzeichen des wahren Dividendenwertes das äußerste linke wertdarstellende Hexadezimalzeichen des Divisors überschreitet, muß der Dividend um eine Hexadezimalstelle, d.h. 4 Bitpositionen, relativ zum Divisor nach rechts verschoben werden, bevor mit der Division begonnen werden kann. Diese Funktion ist als Rechtsausrichtung bekannt. Die auf diese Weise leergewordenen Bitpositionen links vom rechts verschobenen Dividenden werden mit komplementären Einer-Bits (wahre ; Null) aufgefüllt. Eine Rechtsverschiebung kann aber auch erforderlich werden, um die CSA-Ausgabebits auf die richtigen Speicherzellenpositionen im Speicher auszurichten.
Bei Ausführung mit einem Übertrags-Rettungsaddierer verlangt jede Rechtsverschiebung eine Rechtsverschiebung der Summenbits (S) um eine Position, ohne daß die Übertragsbits (C)
BC976026 8098U/0774
verschoben werden. Dieser Vorgang ist in kleinem Maßstab in Fig. 2 dargestellt, wo der Datenfluß in die und aus den benachbarten CSA-Bitpositionen während einer Rechtsverschiebung gezeigt ist. Die Beschriftung "Verschiebe Summe R1 und übertrag LO" besagt, daß das Summenbit in jeder CSA-Position, z.B. N-1, in die nächsthöher nummerierte (d.h. nächst wertniedere) Position nach rechts verschoben wird, z.B. nach N. "LO" ist der hier verwendete Ausdruck, mit dem "keine Verschiebung" bezeichnet wird und "übertrag LO" bedeutet, daß das ausgegebene Übertragsbit von jeder CSA-Position in die Eingangsseite derselben CSA-Bitposition zurückgeführt wird. Das F-Register wird während einer Schiebeoperation abgetrennt, so daß in den Dateneingangsanschluß einer jeden CSA-Bitposition eine Null eingegeben wird. Die Eingänge zu jeder Bitposition während einer Rechtsverschiebung bestehen also aus dem Summenbit von der nächsthöheren Bitposition links, dem Übertragsbit von der gegenwärtigen Bitposition und einem Null-Datenbit vom abgetrennten F-Register. Diese Eingänge werden kombiniert zu den neuen S- und C-Ausgängen von jeder CSA-Bitposition.
Zu der teilweise in Fig. 3 dargestellten LinksverSchiebung gehört eine Linksverschiebung des Summenbits um eine Position und eine Linksverschiebung des Übertragsbits um zwei Positionen aus der jeweiligen CSA-Position. Dieser Vorgang ist bezeichnet mit der Beschriftung "Verschiebe Summe L1 und übertrag L2". Während einer Linksverschiebung empfängt daher jede CSA-Bitposition, z.B. die Position N, als Eingänge das Summenbit von der nächstniederen Position, z.B. N+1, und das Übertragsbit von der zweitniederen Position, z.B. N+2, zusammen mit einem Null-Datenbit vom abgetrennten F-Register. Diese Eingänge werden zu den neuen S- und C-Ausgangswerten von jeder CSA-Bitposition kombiniert.
BC 976026 8098U/07H
Bei einer normalen Addition, wie sie teilweise in Fig. 4 dargestellt ist, bestehen die Eingänge zu jeder CSA-Bitposition, z.B, der Position N, aus dem Summenbit S von derselben Position, dem Übertragsbit C von der nächstniederen Position, z.B. Position N+1 und einem Datenbit (in diesem Fall einem Divisor-Bit) von der entsprechenden Position des F-Registers. Neue Werte für S und C werden durch diese Addition erzeugt und in die Summen- bzw. tJbertragsverriegelungen geleitet und dort gespeichert (Fig. 1).
Während der Vorausschaufunktionen, von denen hier zwei Typen beschrieben werden sollen, gibt es einen vorläufigen Schritt, in dem eine Additionsfunktion vorgenommen wird. Bei einem Vorausschautyp, nachfolgend als "Vorausschau nach Verschiebung" bezeichnet, betrifft der erste Additionsschritt dieselben Summen- und übertragseingänge, die in Fig. 4 gezeigt sind, jedoch wird das F-Register vom CSA abgetrennt, so daß effektiv nur die Bits S„ und Cn+- in jeder Bitposition N zueinander addiert werden. Bei dem anderen Vorausschautyp, nachfolgend "Versuchssubtraktion mit Divisorleitung an CSA" erfolgt der erste Additionsschritt wie in Fig. 4 gezeigt, der Divisor (F-Register) wird jedoch an den CSA geleitet. Diese Art der Vorausschauadditionsfunktxon ist in Fig. 5 gezeigt. In jedem Fall sind die nutzbaren Ausgänge der CSA-Bitpositionen die Vorsummenbits (PS) und die Vorübertragsbits (PC), die in die Vorausschauschaltung 32 geleitet werden. Die PS-Werte und die PC-Werte werden nicht verriegelt. Die als Eingänge zum CSA benutzten S-Werte und C-Werte werden jedoch verriegelt und bleiben verriegelt, während die Vorausschaufunktionen ausgeführt werden. Die Ausgabe der Vorausschauschaltung 32 ist das DOK-Signal, das durch seinen Einer-Wert oder Null-Wert angibt, ι ob die vorgeschlagene Subtraktion erfolgreich ausgeführt werden kann oder nicht. !
BC976026 809844/0774
Fig. δ zeigt in Form eines Diagrammes eine Konstruktion einer jeden Bitposifcion in dem in Fig. 1 dargestellten Übertrags-Rettungsaddiarer 20, auch CSA genannt. In jeder CSA-Bitposition in Fig. δ sind zwei flankengetriggerte Flip-Flops vom Typ D vorgesehen, nachfolgend Flankentrigger oder einfach Trigger genannt, und zwar der Summentrigger 34 und der Übertragstrigger 36. Die beiden Trigger enthalten jeweils eine Verriegelungsschaltung zum Speichern eines Wertes aufgrund eines Taktimpulses. So enthält der Summentrigger 34 eine Summenverriegelung 26 , die zu den Summenverriegelungen 26 in Fig. 1 gehört. Der Übertragstrigger 36 hat eine Übertragsverriegelung 28N, die zu der Gruppe der ÜbertragsVerriegelungen 28 in Fig. 1 gehört. Die CSA-Bitpositionen haben oft bestimmte Eingangssteuerungen, wozu die Schiebetore 29 und gehören.
Die Triggerschaltung jeder Bitposition des übertrags-Rettungsaddierers ist so angelegt, daß der Verriegelungsteil eines jeden Triggers beim Anlegen eines Taktimpulses entsprechend den bei der ansteigenden Flanke des Taktimpulses vorhandenen Eingängen geschaltet wird, d.h. zu dem Zeitpunkt, wenn die Spannung der Taktleitung 38 in Fig. 6 vom niedrigen auf den hohen Pegel umschaltet. Die Verriegelung reagiert nur auf Dateneingänge während der ansteigenden Flanken der Taktimpulse. Somit enthält jede Verriegelung den an der ansteigenden Flanke eines Taktimpulses gespeicherten Wert wenigstens bis zur ansteigenden Flanke des nächsten Taktimpulses ungeachtet der Eingangsänderung in der Zwischenzeit. Der in den Sumaienausgabeverriegelungen 26 und in den Übertragsausgangsverriegelungen 28 gespeicherte Bitwert bleibt somit Zwischen den Taktimpulsen stabil.
per Summentrigger 34 und der Übertragstrigger 36 in Fig. 6 Xiefern ebenfalls unverriegelte Ausgangswerte in Form der Vorsfjiunen- und Vorübertragsbits. An der ansteigenden Flanke
BC976026 8098U/0774
eines jeden Taktimpulses sind die unverriegelten Werte für Vorsumme und Vorübertrag identisch mit den Werten für Summe und Übertrag, die in den entsprechenden Verriegelungen gespeichert sind. Während der Zeit zwischen zwei aufeinanderfolgenden Taktimpulsen können der Vorsummenwert und der Vorübertragswert jedoch aufgrund anderer Eingabedaten wechseln, während die Werte für das S-Bit und das C-Bit in dieser Zeit ungeachtet der anderen Eingabedaten dieselben bleiben. Wie bereits gesagt, werden die PS-Bits und die PC-Bits im Vorausschauprozeß der Vorausschauschaltung 32 benutzt.
Schiebefunktionen der in den Fign. 2 bis 5 beschriebenen Art werden nach dem Pulsen bestimmter Leitungen ausgeführt, die zu den EingangsSteuerungen einer jeden CSA-Bitposition führen. Zu diesen Steuerungen gehören die Summenschiebetore 29 und die übertragsschiebetore 30.
Wenn die CSA z.B. eine Addition durchzuführen hat (eine normale Addition, wie sie in Fig. 4 gezeigt ist oder eine Addition vor einer Vorausschau, wie sie in Fig. 5 gezeigt ist), wird dia Steuerleitung 40 in Fig. 6 erregt. Diese bereitet die Schaltung in jeder Bitposition N des CSA zum Empfang eines Summeneinganges über die Leitung 41 vor, die das Ausgangssummenbit Sw von der Summenverriegelung derselben CSA-Bitposition N führt, sowie zum Empfang eines Übertragseingangs über die Leitung 42, die das Übertragsbit von der Ausgabeübertragsverriegelung der CSA-Bitposition N+1 (die nächste wertniedere Bitposition) führt. Abhängig von den jeweiligen Bedingungen kann ein wertdarstellender Eingang von der N-ten Bitposition des F-Registers über die Leitung 44 zu den Summen- und Übertragstriggern der CSA-Bitposition N kommen. Wenn der Divisor vom gegenwärtig im CSA registrierten Wert subtrahiert wird, wird der Inhalt des F-Registers an den CSA geleitet. Wenn die Addition jedoch nur mit den Summen- und Übertragseingängen durchzuführen ist, ohne wertdarstellenden Eingang vom F-Register,
BC976026 809844/071*
wird das F-Register abgetrennt und dadurch sichergestellt, daß ein Hull-Eingang vom F-Register auf der Leitung 44 auf jede CSA-Bitposition kommt.
Spaltenverschiebungen x-xerden von diesem Gerät als Spezialadditionen ausgeführt. Wenn die CSA zur Ausführung einer LinksverSchiebung ihres Inhaltes aufgefordert wird, verschiebt sie alle verriegelten Summenbits S um eine Bitposition nach links und gleichzeitig alle verriegelten Übertragsbits C um zwei Bitpositionen nach links, addiert dann die zusammenfallenden Summen- und übertragsbits in jeder CSA-Bitposition zu neuen S-Ausgabebits und C-Ausgabebits, wobei das F-Register nach Darstellung in Fig. 3 diesesmal abgetrennt ist. Zur Ausführung einer LinksverSchiebung wird die Steuerleitung 46 in Fig. 6 erregt. Diese bereitet die CSÄ-Bitposition N zum Empfang von Eingängen über die Leitungen 47 bzw. 48 vor, und zwar zum Empfang des verriegelten Summenbits von der CSA-Bitposition W+1 und des verriegelten übertragsbits von der CSA-Bitposition 1-1+2. Für eine Rechtsverschiebung wird die Steuerleitung 50 in Fig. 6 erregt, wodurch jede CSA-Bitposition N als Eingänge über die Leitungen 51 bzw. 52 das verriegelte Summenbit von der CSA-Bitposition N-1 (die nächste werthöhere Position) und das verriegelte Übertragsbit von derselben Bitposition N empfängt, wobei das F-Register zu dieser Zeit abgetrennt ist. Diese Rechtsverschiebung ist ebenfalls in Fig. 2 dargestellt.
Wenn die Summen- und Übertragstrigger in jeder Bitposition des CSA auf Null zurückgestellt werden müssen, wird die Rückstell-Leitung 54 in Fig. 6 erregt. Wenn der im CSA gespeicherte !Wert aus irgendeinem Grund invertiert werden soll, wird die Komplementsumraenleitung 56 in Fig. 6 erregt und dadurch die in den Summenverriegelungen des CSA gespeicherten Bits in ι jihren Einer-Komplementwert umgesetzt. Die Summenverriegelungen 26 des CSA speichern das Endergebnis einer durch diesen Addierer ausgeführten Rechenoperation, während die Übertrags-
BC 976 026
8098U/0774
Verriegelungen 28 am Ende des letzten Zyklus im Prozeß Nullen speichern.
Die Vorausschauschaltung 32 ist für die Ausführung der in den Fign. 7 bis 11 dargestellten logischen Funktionen ausgelegt. Zum besseren Verständnis dieser Funktionen wird zuerst das Grundprinzip des Vorausschauverfahrens beschrieben. Ob eine vorgeschlagene komplementäre Subtraktion erfolgreich ausgeführt werden kann,läßt sich feststellen, wenn zuverlässig gesichert werden kann, ob einer der folgenden Vorgänge unter den herrschenden Bedingungen möglich ist:
1. Eine Linksverschiebung des komplementären Minuendenwertes, der im CSA unmittelbar vor der Subtraktion registriert ist, ■ führt zum Ausschieben eines Null-Bit aus der äußersten linken CSA-Position oder;
2. Die Beziehung zwischen den entsprechenden Bitmustern des links verschobenen Minuenden und des Divisors sind so, daß die Addition der Divisorbits zu den Bits des komplementären, darauf ausgerichteten Minuendenwertes einen Obertragsausgang von Null erzeugt. i
Die Vorausschauschaltung 32 trifft diese beiden Bestimmungen j
durch logische Prozesse, in denen die verriegelten Summen- und i
Übertragsbitwerte nicht verändert werden, die gegenwärtig im <
CSA 20 registriert sind. |
Soweit der Minuendenwert in einem Übertrags-Rettungsaddierer (CSA 20) registriert ist, der Summen- und Übertragsbits !separat speichert, wird dieser Minuend gemeinsam dargestellt durch eine Reihe von S-Bits und einer Reihe von C-Bits; die
beiden in den Absätzen 1 und 2 oben definierten Bestimmungen müssen diesen Umstand also berücksichtigen. Das hierzu beschreijpende Vorausschauverfahren führt die Vorausschaufunktionen jingeachtet der durch das Übertrags-Rettungsverfahren
BC 976 026
809844/0774
bedingten Komplexität der Addition durch.
Bei der LinksausSchiebung des Vorausschauverfahrens wurde hier schon festgestellt, daß die Durchführung eines jeden Zyklus im Divisionsprozeß eingeleitet wird durch eine Linksverschiebung des komplementären Minuenden, der im Übertrags-Rettung saddier er registriert ist. Zu Beginn des Divisionsprozesses ist dieser Minuend das Einer-Komplement des Dividenden. Danach enthält er einen Teiirest, der im CSA am Ende eines jeden Zyklus nach der komplementären Subtraktion des Divisors von dem vorher im CSA registrierten Betrag steht (unter der Annahme, daß die Subtraktion tatsächlich stattgefunden hat) oder einen bereits vorher im CSA registrierten Betrag,, falls keine Subtraktion in dem gerade ausgeführten Zyklus erfolgte. In jedem Fall erscheint der Minuend am Anfang mit einem wahren Wert, der kleiner ist als der des Divisors, und bevor eine Subtraktion ausgeführt werden kann, muß der Minuend nach links verschoben werden, um eine entsprechende Spaltenausrichtung mit dem Divisor zu haben. Wenn durch die Linksverschiebung ein komplementäres Null-Bit (wahre Eins) ausgeschoben wird, so daß sie links von der höchsten Divisorstelle steht, garantiert diese Tatsache, daß keine Überziehung erfolgt, wenn der Divisor hinterher von dem nach links verschobenen Minuenden subtrahiert wird. Wenn also ein Null-Bit links ausgeschoben wird, heißt das, daß eine erfolgreiche Subtraktion in dem gerade begonnenen Zyklus vorgenommen werden kann.
,Wenn der Addierer die Summen- und tibertragsbits nach jeder Addition vollständig addiert, könnte man den Wert im äußersten flinken Bit in der resultierenden Summe leicht bestimmen. Wo jedoch ein Übertrags-Rettungsaddierer verwendet wird, wie im !vorliegenden Fall, kann man nicht genau feststellen, welches Idas äußerste linke Summenbit tatsächlich ist, ohne zu wissen, welche Wirkung die geretteten Übertrags-Bits auf den Wert des
Be 91<5 O26
809844/0774
äußersten linken Summenbits haben würden, wenn diese Überträge mit den Summenbits kombiniert und nicht von ihnen getrennt worden wären. In dem hier beschriebenen Gerät erfolgt diese Bestimmung in zwei Schritten. Zuerst wird der Wert des äußersten linken, gegenwärtig in den CSA-Summenverriegelungen gespeicherten Bit, hier S genannt, und der Wert des in der nächst niederen Position der CSA-übertragsverriegelungen gespeicherten Bit, hier S1 genannt, vor der Liniesverschiebung an ein Antivalenzschaltglied 60 in Fig. 11 angelegt, dessen Ausgang den Wert des Halbsummenbit darstellt, das aus der logischen Addition von Sn und C1 resultiert. Diese Ausgabe wird an ein UND-Glied 62 angelegt, das den Bitwert Sn V C1 an ein ODER-Glied 64 zu einem Zeitpunkt anlegt, der durch das Anlegen eines Taktimpulses auf einer Steuerleitung 63 an das UND-Glied 62 bestimmt wird. (Das Symbol V stellt die Antivalenzfunktion dar). Nach Passieren des ODER-Gliedes 64 wird der Bitwert Sn V C1 in ein flankengetriggertes Flip-Flop 66 vom Typ D eingegeben, hier als "SUMOL-Trigger" bezeichnet. "SUMOL" ist eine Abkürzung für "Summenbit aus links". Zu diesem Zeitpunkt ist der SUMOL-Wert unvollständig, weil der Wert Sn V C1 in sich selbst nicht unbedingt der Wert des äußersten linken Summenbit ist, der sich ergeben würde, wenn alle Überträge voll in den nachfolgenden Additionszyklen weitergeleitet worden wären. Trotzdem wird dieser vorläufige Wert S_ V C1 in den SUMOL-Trigger 66 eingegeben und zur entsprechenden Zeit in den Verriegelungsteil 67 des Triggers 66 durch einen Taktimpuls auf der Steuerleitung 68 in Fig. 11 geleitet, so daß er jetzt zu einem verriegelten Wert wird. Die in dieser Phase des Verfahrens betroffenen Werte S_ und C1 sind bekanntlich das Summenbit in Position Null und das Übertragsbit in Position Eins des CSA vor der Linksverschiebung des CSA-Inhaltes. Der Flankentrigger 66 kann aus NAND-Gliedern in entsprechender Anordnung zur Ausführung der Flankentriggerfunktion bestehen, wodurch i der Verriegelungsteil 67 entsprechend dem an den Trigger 66
BC 976 °26 8098U/0774
über das ODER-Glied 64 angelegten Bitwert in dem Moment eingestellt wird, wenn die Vorderflanke des geleiteten Taktimpulses über die Steuerleitung 68 an den Trigger 66 angelegt wird. Mögliche Konstruktionsänderungen sind für Fachleute selbstverständlich.
Um den SUMOL-Wert vollständig zu bestimmen, muß man den Wert des Übertragsausganges kennen, der sich ergeben würde, wenn die gegenwärtig im CSA registrierten Summen- und Übertragsbits nach der Linksverschiebung kombiniert würden. Das ist eine der Funktionen der in den Fign. 8 bis 10 dargestellten Vorausschauschaltungen. Mit ihrer Ausgabe wird der SUMOL-Wert endgültig bestimmt. Zuerst wird jedoch die Ermittlung der Übertragsausgabe-Vorausschauwerte (COLA) durch die in den Fign. 8 bis 10 gezeigte logische Schaltung beschrieben. Diese Schaltung spricht auf die vom CSA erzeugten Vorsummenbits und Vorübertragsbits an.
Die Bestimmung des Übertrages durch die Vorausschauschaltung wird an einigen Beispielen erklärt. Als Beispiel wird angenommen, daß in den ersten vier Bitpositionen des CSA mit den Nummern 0 bis 3 die nachstehend aufgeführten Werte für die Vorsummen- und Vorübertragsbits gespeichert sind:
CSA-Bitpositionen 0 12 3 Vorsummenbits (PS) 10 0 0 Vorübertragsbits (PC) 0 1 O 0
Wenn die PS-Bits und die PC-Bits in obigem Beispiel zu kombinieren sind, ergäbe sich aus der Addition des Bitwertes 1 für fC. zum Bitwert 1 für PSn ein übertrag von Eins in der Position Null. Anstatt nun diese PS-Bits und PC-Bits wirklich zu addieren, müßte man die logische UND-Funktion von PSn und PC1 bestimmen. Der logische Ausgang dieser UND-Funktion wäre ein Vorausschauwert von Eins, der das Übertragsbit darstellt, das
BC 976 O26
— 4l D ~
an der CSA-Bitposition Null erzeugt würde, wenn das Bit auf PCj tatsächlich zum Bit von PS0 addiert würde. Das Symbol "K " stellt hier den Übertragsvorausschauwert von der Bitposition N dar. Kn ist die Vorausschau von der Bitposition Null, deren Wert in diesem Beispiel mit Eins bestimmt wurde. Zur Ermittlung des Wertes des letzten Ausgangsübertragsbits muß man eine Antivalenzfunktion der Vorausschau von Position Null haben, d.h. K und das Vorübertragsbit an der Position Null, d.h. PCQ. Da in diesem Fall PCQ = 0 und KQ = 1 ist, ist die übertragsausgabevorausschau COLA eine Eins.
Manchmal sind die Bitmuster von Vorsummen- und Vorübertragsbitreihen so, daß die Vorausschau KQ von der Bitposition Null ist, sich aber trotzdem eine übertragsausgabevorausschau von Eins ergibt, aufgrund der logischen Weiterleitung eines Übertrages von einer niedrigeren Stelle. Dazu das folgende Beispiel, in dem ein übertrag von niedrigeren Stellen in die Bitposition 3 läuft:
CSA-Bitpositionen 0 12 3 Vorsummenbits (PS) 1110 Vorübertragsbits (PC) 0 0 0 1
Hier erzeugen die oben angeführten PS-Bits und PC-Bits aus der Bitposition 0 oder 1 keine Vorausschau von 1, wenn man nur die Muster der PS-Bits und PC-Bits in den ersten drei Positionen 0 bis 2 betrachtet. Ein Vorübertragsbitwert von Eins in der vierten Position (PC3) erzeugt jedoch bei UND-Verknüpfung mit dem Vorsummenwert in der dritten Position (PS2) einen Vorausschauwert K~ von 1 aus der CSA-Bitposition 2. Wenn dieser Vorausschauwert K2 mit dem Vorsummenwert PS1 von 1 in der Bitposition 1 UND-verknüpft wird, wird die Vorausschau dadurch logisch von der Position 2 in die Position 1 weitergeleitet. Wenn diese weitergeleitete Vorausschau von 1 wieder mit dem Vorsummenwert PS von 1 in der Bitposition Null UND-verknüpft wird, wird er dadurch weiter-
BC 976 026
809844/0774
geleitet und ergibt einen Vorausschauwert Kn von 1 an der Bitposition Mull. Wenn dieser Wert antivalent mit dem PC_-Bit von 0 verknüpft wird, ergibt sich eine übertragsausgabevorausschau (COLa) von 1.
Ein Übertragsausgangs-Vorausschaubit von 1 kann sich also als direkte übertragsvorausschau aus der UND-Verknüpfung von PSQ und PC1 mit einem Wert von jeweils 1 ergeben oder auch durch Tieiterleitung einer solchen Vorausschau von einer niederen Position, wenn die Muster von Vorsummen- und Vorübertragsbits in den höheren Stellen zu solcher Weiterleitung neigen. Allgemein kann die Vorausschau von einer Bitposition N logisch dargestellt werden durch die rekursive Gleichung im oberen Teil der Fig= 7. Die Vorausschau KM von der Bitposition mit der höchsten Nummer (d.h. der wertniedersten) ist Nail ο Der entsprechende Vorausschauwert K für die werthöheren Positionen wird dann progressiv für abnehmende Werte von N bestimmt, bis schließlich die Vorausschau K von der Position Hull bestimmt wird. Der übertragsausgangsvorausschauwert (COLA) wird dann als Antivalensverknüpfung von PC und K bestimmt, wie es im unteren Teil der Fig. 7 dargestellt ist. Je nach der Form des der Vorausschaufunktion unmittelbar vorhergehenden Additionsschritt.es (Fig. 5) kann der Wert von COLA unter zwei verschiedenen Bedingungen bestimmt werden. Xtfenn das F-Register während dieser Addition vom CSA abgetrennt ist, wird der Divisor vom Additionsprozeß nicht berührt, und dann wird der COLA-Wert aus den resultierenden Bitraustern für PS und PC ermittelt, nachfolgend mit "COLA 2" bezeichnet, um anzuzeigen, daß er aus der Addition von nur zv7ei Termen abgeleitet ist, nämlich den verriegelten Summen- und übertragswerten, ohne einen dritten Eingang vom F-Register. Im zweiten Fall, in dem das F-Register an den CSA geleitet wird, ist der Divisor als dritter Term in den Additionsjprozeß eingeschlossen und der unter diesen Umständen aus den resultierenden Vorsummenwerten und Vorübertragswerten abge-
BC 976 026
8098U/0774
leitete Übertragsausgangs-Vorausschauwert wird bezeichnet mit "COLA 3". In jedem Fall kann der ermittelte COLA-Wert jedoch mathematisch wie in Fig. 7 gezeigt dargestellt werden
In der Rekursivfunktion zur Bestimmung der Vorausschau K im oberen Teil der Fig. 7 stellt der Ausdruck "(PSn-PCn+1)" die direkte Vorausschau von der Bitposition N dar, d.h. die logische UND-Verknüpfung von PS und PC ... Der Klammerausdruck stellt die Weiterleitung einer Vorausschau von der nächstniederen Position N+1 zur Position N dar, die erfolgt, wenn entweder PS oder PC .. einen Bitwert von 1 hat. (Das Pluszeichen zwischen den Ausdrücken bezeichnet eine logische ODER-Funktion). Eine direkte Vorausschau von 1 aus der Position W ergibt sich somit, wenn PSn und PC .. Einer-Bits sind. Eine weitergeleitete Vorausschau von 1 aus der Position N ergibt sich, wenn entweder PS oder PC .. ein Einer-Bit ist und die Vorausschau Kn+1 von der Position N+1 einen Wert 1 hat.
Die gerade beschriebenen logischen Beziehungen sind in der in Fig. 8 gezeigten Schaltung realisiert, wo das Gerät zur Bestimmung der Vorausschau aus einer Gruppe von vier aufeinanderfolgenden CSA-Bitpositionen mit der Nummerierung i bis i+3 gezeigt ist. Die direkte Vorausschau von der Position i erfolgt durch das UND-Glied 70, das ein Einer-Bit erzeugt, wenn PS. und PC+1 beide den Wert 1 haben. Die Weiterleitungs funktionen werden wahrgenommen von den ODER-Gliedern 71, 72 und 73 in Verbindung mit den UND-Gliedern 74, 75 und 76. Wenn eines der Bits PS. und PC+1 beispielsweise einen Einer-Wert hat und eine Vorausschau von 1 aus der Position i+1 aufgrund der Tatsache erfolgt, daß die beiden Bits PSi+1 und PC+2 den Wert 1 haben, dann liefern das ODER-Glied 71 und das UND-Glied 74 zusammen eine weitergeleitete Vorausschau von 1. Auf ähnliche Weise prüft die in Fig. 8 gezeigte Schaltung auf Vorausschau- und Weiterleitungsbedingungen die restlichen Bitpositionen. Wenn im CSA mehr
BC 976 026
809ΘΑΑ/07Ή
als drei Bitpositionen hinter der Position i verbleiben, dann empfängt das letzte UND-Glied 76 ein Vorübertrags-Eingangsbit PC. . von der nächsthöher nummerierten Bitposition i+4. Wenn keine höher nummerierte Bitposition vorhanden ist, kann das UND-Glied 76 weggelassen werden. Wenn ein Vorausschaubit von 1 direkt an der Position i oder an einer niedrigeren Position erzeugt wird, von wo es durch dazwischenliegende PS- und PC-Bitmuster in die Position i weitergeleitet werden kann, wird an den Ausgängen von einem oder mehreren der UND-Glieder 70, 74, 75 und 76 ein Einer-Bit erzeugt und dieses Bit durch ein ODER-Glied 77 weitergeleitet als Gruppenvorausschaubit von 1. Wenn die Muster der PS-Bits und PC-Bits nicht so sind, daß eine dieser Bedingungen erfüllt ist, dann ist das Gruppenvorausschaubit eine Null.
Weil eine gewählte Gruppe von CSA-Bitpositionen Muster von PS-Bits und PC-Bits speichert, die von sich aus kein Einer-Bit als Gruppenübertragsvorausschau ergeben, heißt das nicht unbedingt, daß die Gruppe als ganze die übertragung eines 1-Vorausschaubits von einer niederwertigeren Gruppe der CSA-Bitpositionen blockiert. Die Muster der PS-Bits und PC-Bits in der betrachteten Gruppe können so liegen, daß eine Vorausschau von einer wertniederen Gruppe sich vollständig durch die |Ln Frage kommende Gruppe weiterleitet. Die Gruppenweiterleitungsschaltung in Fig. 9 prüft die PS- und PC-Bitmuster innerhalb einer Gruppe von CSA-Positionen i bis i+3, um deren Vor- £usschau-Weiterleitungsmöglichkeit zu sichern. Wenn ein Bit- £>aar in dieser Gruppe ein PS-Bit mit einem gegebenen Rang und ein PC-Bit des nächstniederen Ranges enthält, das wenigstens einen Bitwert 1 enthält, dann leiten eines oder mehrere der pDER-Glieder 80 bis 83 in Fig. 9 ein Einer-Bit an das UND-felied 84. Wenn alle ODER-Glieder Einer-Bits an das UND-Glied leiten, dann wird ein Gruppenweiterleitungsbit mit dem Wert Erzeugt, sonst ein O-Bit. Wenn eine Gruppe ein Gruppenweiterleitungsbit von 1 erzeugt, kann sie eine Übertragsvorausschau
BC 976 026
809844/0774
von der nächstniederen Gruppe weiterleiten.
In den Fign. 8 und 9 ist somit dargestellt, wie die gezeigte logische Schaltung für die Vorausschau verwendet werden kann, um festzustellen, ob eine Gruppe von vier aufeinanderfolgenden CSA-Bitpositionen ein Muster aus Vorsummenbits und Vorübertragsbits enthält, das bei tatsächlicher Addition der genannten Bits einen Übertragsausgang von der werthöchsten Position in der Gruppe erzeugt oder ob diese Bitmuster einen übertrag von der nächstniederen Stelle außerhalb der Gruppe weiterleiten würden.
Im Zusammenhang mit Fig. 10 wird jetzt die Vorausschauschaltung weiter beschrieben. In Fig. 10 ist dargestellt, wie die Ausgänge der verschiedenen Gruppenvorausschauschaltungen und Gruppenweiterleitungsschaltungen kombiniert werden zur endgültigen Vorausschau KQ von der Position 0, mit der zu verschiedenen Zeiten die Übertragsausgabe-Vorausschauwerte COLA 2 und COLA 3 bestimmt werden. Wenn die Gruppe 0 (die die CSA-Bitpositionen 0 bis 3 umfaßt) eine Gruppenvoraussch.au von 1 erzeugt hat, läuft dieses Bit durch ein ODER-Glied 86 und erzeugt eine CSA-Vorausschau K von 1. Wenn eine Gruppenvor- . ausschau von 1 von der Gruppe 1 und eine Gruppenweiterleitung j von 1 von der Gruppe O kommen, leitet das UND-Glied 87 eine 1 \ an das ODER-Glied 86 und erzeugt einen K -Wert von 1. In ähnli-i eher Weise erzeugt jedes der UND-Glieder 88, 89, 90 usw. einen \ Ausgang, der die Vorausschau von der entsprechenden Gruppe mit ; der Weiterleitung von allen niedriger nummerierten Gruppen (d.h. höherwertigen Gruppen) der CSA-Positionen kombiniert. ; Wo ein erweiterter Gruppenweiterleitungswert von 1 mit einer ; Gruppenvorausschau von 1 auf diese Weise UND-verkmipft wird,' ist das Ergebnis ein CSA-Vorausschauwert ΚΛ von 1. Bei anderen ! als den oben beschriebenen Bedingungen ist der Wert von K_ I eine O. '
BC 976 026
8Q98U/0774
Die CSA-Vorausschau Kn muß jetzt antivalent mit dem werthöchsten Vorübertragsbit PCQ verknüpft v/erden, um die Übertragsvorausschau COLA zu erzeugen, die gleich dem Wert des übertragsausganges ist, der sich ergeben würde/ wenn die verschiedenen Vorübertragsbits tatsächlich zu den zugehörigen Vorsummenbits addiert würden, anstatt als separate CSA-Ausgänge registriert zu werden. Wie oben schon gesagt, wird der Vorausschauprozeß zweimal in jedem Zyklus des Divisionsprozesses durchgeführt - einmal mit dem vom CSA abgetrennten Divisor und dann mit dem auf den CSA geschalteten Divisor. Im ersten Falls wird die durch diesen logischen Prozeß erzeugte übertragsausgangsvorausschau "C0LA2" genannt und im zweiten Falle "CQLA3".
Die beiden gerade beschriebenen Situationen sind in Fig. 10 symbolisch dargestellt durch das Antivalenzschaltglied 92, das das Bit COLA 2 erzeugt und durch das Antivalenzschaltglied 94, das das Bit GQIA 3 erzeugt. Die beiden Schaltglieder 92 und 94 können natürlich jederzeit gleichzeitig denselben COLA-Ausgangswert erzeugen. C0LA2 wird jedoch durch das Schaltglied 92 su einem Zeitpunkt erzeugt, wenn der Divisor abgetrennt ist und dann in dem CSA-Vorausschautrigger 96 gespeichert, der ein flankengetriggertes Flip-Flop in Standardbauweise darstellt. Der Verriegelungsteil 98 des Triggers 96 wird sur entsprechenden Zeit getaktet, um das Bit C0LA2 als einen verriegelten Wert für künftige Benutzung festzuhalten. Zu diesem Zeitpunkt wird die Ausgabe des Antivalenzgliedes 94 ignoriert. Su einem späteren Zeitpunktwenn der Divisor auf den CSA geschaltet ist, erzeugt das Antivalenzschaltglied ein Bit C0LA3, dessen Wert von den Werten PS und PC abhängt, die dann im CSA registriert sind. C0L&3 ist ein nicht-verriegelter Wert, der direkt in der beschriebenen Art benutzt wird. Zu diesem Seitpunkt liefert das Schaltglied 92 den Wert C0LA3 auf den Trigger 96; da dieses Signal aber nicht gleichzeitig mit einem Taktimpuls am Triggereingang erscheint, empfängt die Verriegelung 98 den
EC 976 026 .
3098 4 4/0774
Wert COLA 3 nicht und der Trigger 96 ignoriert ihn so effektiv. Variationen der in den Fign. 10 und 11 gezeigten logischen Schaltung sind jederzeit möglich, ohne vom Rahmen der Erfindung abzuweichen. In diesen Fign. ist eine logische Schaltung auf einer höheren Ebene gezeigt, die aus praktischen Gründen in NAND- oder NOR-Konfigurationen realisiert werden kann.
Fig. 11 zeigt die letzte Stufe der Vorausschauschaltung 32 (Fig. 1), worin festgestellt wird, ob jede vorgeschlagene komplementäre Subtraktion des Divisionsprozesses tatsächlich erfolgreich ausgeführt wird.
Wie schon erklärt wurde, werden bestimmte durch vorhergehende Aktionen dieser logischen Schaltung erzeugte Werte gegenwärtig in einem verriegelten Zustand festgehalten. Die antivalente Verknüpfung der Bits SQ und C1 (wie sie vor der Linksverschiebung existierten) erfolgt durch die in Fig. 11 gezeigte SUMOL-Verriegelung 67. Die Antivalenzverknüpfung der Bits KQ und PCQ, wie sie nach der Linksverschiebung, aber vor dem Ausschalten des Divisors auf den CSA standen, erfolgt durch die CSA-Vorausschauverriegelung 98, Fig. 10, in Form des Bits COLA 2. (übertragsausgangsvorausschau vor Anschalten des Divisors).
An diesem Punkt im Zyklus muß bestimmt werden, welchen Wert das äußerste linke Bit in der Summe haben würde, wenn Summen- und Übertragsbits vor der Linksverschiebung des CSA-Inhaltes kombiniert worden wären, und das ist der SÜMOL-Wert. Ein Bestandteil dieses SUMOL-Wertes wurde bereits bestimmt, nämlich der Wert SQ V C1 vor der Linksverschiebung (V symbolisiert die Antivalenzfunktion). Ein weiterer Bestandteil ist COLA 2, der projizierte Übertragsausgang, der sich aus der Addition der Bits PS und PC nach der Linksverschiebung ergeben würde. : Dieser Wert wurde auch bereits vorher bestimmt. Diese beiden Bestandteilwerte sind verriegelt. Ein weiterer Bestandteil des SUMOL-Wertes ist CQ, der verriegelte Wert des gegenwärtig in der O-Position der CSA-übertragsverriegelungen 28 regi-BC 976 026
809844/0774
strierten Übertragsbits. Wenn entweder C0LA2 oder CQ den Wert 1 hat, würde dieser in die Stelle links von der O-Bitposition des CSA bei einer tatsächlichen Addition gesetzt. Dieser Ausgang müßte daher mit dem Anfangswert S_ V C1 UND-verknüpft werden, der vorher bestimmt wurde, um sicherzustellen, welches Summenbit während der Linksverschiebung aus dem CSA ausgeschoben worden wäre, wenn alle Summen- und übertragsbits vor der Verschiebung kombiniert worden wären. Dieser ist einer von zwei kritischen Werten, die bestimmen, ob eine vorgeschlagene Subtraktion erfolgreich ist. Das ODER-Glied 100 und das UND-Glied 102 in Fig. 11 übernehmen zusammen die Funktion der logischen Bestimmung des endgültigen SUMOL-Wertes wie folgt:
Endgültiger Wert SUMOL = (SQ V Cj) · (C0LA2 + CQ)
Unter Steuerung eines Taktimpulses auf der Steuerleitung in Fig. 11 wird dieser endgültige SUMOL-Wert zu gegebener Zeit durch das UND-Glied 106 und das ODER-Glied 64 an den SUMOL-Trigger 66 geleitet, von wo er als unverriegelter SUMOL-Ausgangswert erscheint, der durch den Inverter 108 invertiert wird. Der komplementäre SUMOL-Wert läuft dann durch das ODER-Glied 110 zum DOK-Trigger 112, bei dem es sich um ein flankengetriggertes Standard-Flip-Flop handelt. Wenn der endgültige SUMOL-Wert eine 0 ist, heißt das, daß die Linksverschiebung des CSA-Inhaltes als Vorbedingung vor jeder Subtraktion eine komplementäre 0 oder ein wahres Einer-Bit aus dem CSA schieben würde, wenn die Summen- und übertragsbits vor der Linksverschiebung kombiniert und nicht separat im Addierer registriert worden wären. Wo ein Bit mit diesem Wert links vom Divisor steht, ist der Erfolg der vorgeschlagenen Subtraktion !gesichert. Wenn also das endgültige SUMOL-Bit eine 0 ist, Wird dieses durch den Inverter 108 in eine wahre Eins invertiert und das Einer-Bit läuft dann durch das ODER-Glied 110 Und schaltet den DOK-Trigger 112, um so eine erfolgreiche
BC 976 026 „ „ t
8098U/0774
VersuchsSubtraktion anzuzeigen. Der DOK-Trigger 112 wird zu gegebener Zeit getaktet, setzt seine Verriegelung 114 auf 1 und liefert ein verriegeltes DOK-Signal desselben Wertes. Ein DOK-Bit von 1 bereitet den Addierer zur Ausführung einer eigentlichen Subtraktion vor.
Wenn der Wert des SUMOL-Bits den Erfolg der vorgeschlagenen Subtraktion nicht sichert, d.h. wenn SUMOL = 1 ist, kann immer noch eine erfolgreiche Subtraktion stattfinden, wenn die komplementäre Subtraktion des Divisors von dem nach links verschobenen Minuenden kein öbertragsausgangsbit von 1 erzeugt. Man kann sofort ableiten, ob ein Übertragsausgang ans der Addition des Divisors zum Minuenden resultieren würde, dargestellt durch das Vorsummenbit (PS) und das Vorübertragsbit (PC), zuerst muß jedoch bekannt sein, wie sich die Addition des PS-Bits und des PC-Bits alleine ohne den Divisor auf die Erzeugung eines Übertragsausganges auswirken würde. Diese Auswirkung wird angezeigt durch den Vorausschauwert CöLA2? der in der beschriebenen Art ermittelt wurde. Diese übertragsausgangsvorausschau ohne Divisor (COLA2) wird dann mit der ■ Übertragsausgangsvorausschau C0LA3 verglichen, die sich ergibt, wenn der Divisor auf den CSA geleitet wird. Wenn COLA2 ; und COLA 3 gleichwertig sind heißt das? daß sich der Übertragsausgang, der sich aus dem Leiten des Divisors auf den CSA ergibt, nicht von dem Übertragsausgang unterscheidet, den man bei reiner Addition des Summen- und Übertragsbits vor dem Aufschalten des Divisors erhält. Somit erzeugt die Sub- i traktion des Divisors vom laufenden Minuenden keinen über- ι, tragsausgang und somit kein überziehen. Eine Verschiedenheit : von C0LA2 und C0LA3 zeigt umgekehrt an, daß bei einer tat- ! sächlichen Ausführung der Subtraktion ein Überziehen auftritt»
jNfach Darstellung in Fig. 11 werden die van der in Fig. 10 j gezeigten Schaltung gelieferten Werte C0LA2 und C0LA3 im Antivalenzglied 116 miteinander verglichen. Der diesen Ver~ i
BC 976 026 .
809844/077&
gleich darstellende Wert (O für Gleichheit, 1 für Ungleichheit) wird durch den Inverter 117 invertiert und der komplementäre Ausgang (1 für Gleichheit von C0LA2 und C0LÄ3, O für Ungleichheit) wird durch das ODER-Glied an den DOK-Trigger 112 geleitet. Wenn dieser nicht bereits auf 1 geschaltet wurde, setzt ein Ausgang von 1 vom Inverter 117 zu gegebener Zeit die DOK-Verriegelung 114 in den Einer-Zustand, um eine erfolgreiche Divisionsbedingung zu registrieren. Wenn der Trigger 112 einen Einer-Eingang entweder vom Inverter 108 oder vom Inverter 117 empfängt, zeigt das 1-BOK-Ausgangssignal dem System an, daß es mit der vorgeschlagenen komplementären Subtraktion weiterarbeiten soll. Wenn der DOK-Ausgang zur Taktseit eine 0 ist, dann wird im laufenden Zyklus keine eigentliche Subtraktion ausgeführt und d@z nächste Zyklus beginnt direkt und startet eine neue Reihe iron Bestimmungen mit der Linksverschiebung des Minuenden oder Restes (wenn nicht die zugeordnete Anzahl von LinksverSchiebungen bereits erfolgte, und damit die Divisionsoperation-aadetj„
Die in den Figa. 10 und, 11 gezeigten Trigger 66, 96 und 112 wurden als flankengetriggerte Standard-Flip-Flops vom Typ D beschrieben. Wenn Einsparungen bei der Schaltungsentwicklung raöglich sind, kaan die Trigger-Schaltung auch für kombinierte Trigger- und Lsitfunktionen modifiziert werden. Anschließend werden einige Beispiele dafür beschrieben, wie eine derartige Schaltung für eine wirtschaftlichere Entwicklung im Falle eines Übertrags-Rettungsaddierers eingesetzt wurde (Fig. 12).
Anschließend werden einige Betriebsbeispiele für die verschiedenen Funktionen des oben beschriebenen gezeigten Gerätes besprochen. Im ersten nachstehenden Beispiel wird ein dezimaler Dividend 131 durch einen dezimalen Divisor 9 dividiert, was leinen Dezimalquotienten von 14 und einen Rest von 5 ergibt. <In Hexadezimalnotierung wird der Dividend als 83 und der Divisor als 9 dargestellt. Da die äußerste linke Hexadezimalzahl 8 kleiner ist als die äußerste linke Divisorzahl 9, ist
BC976026 8098U/07U
eine vorläufige Rechtsausrichtung {Rechtsverschiebung durch eine Hexadezimalposition) des Dividenden nicht nötig. Eine Grundforderung lautet, daß der wahre Wert der äußersten linken Hexadezimalstelle eines Dividenden zu Beginn des Divisionsprozesses nicht gleich oder größer sein darf als die äußerste linke Hexadezimalstelle des Divisors. Wenn diese Bedingung am Anfang nicht erfüllt ist, muß der Dividend um eine Hexadezimalstelle (4 Bits) nach rechts verschoben und dadurch effektiv ein wahrer Nullenwert an das linke Ende des Dividenden gesetzt werden.
In dem nachfolgenden Beispiel 1 wird lediglich zur Illustration angenommen, daß der Übertrags-Rettungsaddierer CSA 20 in Fig. 1 in einen Gleitkommaprozessor eingebaut ist, der die Operandenwerte nach der Hexadezimalschreibweise "Excess 40" registriert. Der Hexadezimaldividend "83" ist z.B. eine positive zweistellige Zahl und somit ist seine Hexadezimalcharakteristik 40+2, d.h. 42, worin 2 der positive Exponend ist. Der Divisor 9 hat einen positiven Exponendenj von 1 und somit ist seine Gleitkommacharakteristik 41. Der Dividend wird zuerst eingegeben und läuft nacheinander durch ; das Schieberegister 22 und das F-Register 24 in Fig. 1 zum CSA 20, wo er an die Dateneingangsanschlüsse in invertierter binärer Form (Einer-Komplement) gelangt. Im vorliegenden Fall ist also der wahre binäre Wert des Dividenden (nur die ersten zwölf Stellen) 1 000001 1 0000 und sein invertiertes komplementäres Äquivalent ist 01 1111001111. Dieses Dividendenkomplement wird in den Summenausgabeverriegelungen 26 des CSA 20 gespeichert. Die Übertrags-Ausgangsverriegelungen 28 werden am Anfang auf 0 zurückgestellt. Der binäre Divisor 1O0100000000 wird in das F-Register 24 eingegeben, wo er in wahrer Form während der Divisionsoperation gespei- j chert ist.
BC 976 026
8098U/0774
Die vom Prozessor zur Lösung des im Beispiel 1 gezeigten Problems ausgeführten Aktionen werden nachfolgend in Tabellenform dargestellt. Nach der Tabelle wird die Operation beschrieben. Der Einfachheit halber erhalten verschiedene Linien in der Tabelle aufeinanderfolgende Bezugszahlen, von denen wenigstens einige in jedem nachfolgenden Subtraktionszyklus wiederholt werden. In dieser Darstellung werden nur die ersten 12 Stellen des numerischen Wertes betrachtet. Wenn der Prozessor im Doppelpräzisionsbetrieb arbeitet, wird der volle Bereich von 56 Bitpositionen benutzt. Diese brauchen jedoch für den vorliegenden Fall nicht alle betrachtet zu werden. Der hier verfolgte Divisionsprozeß ist außerdem nicht auf die Benutzung eines Gleitkommaprozessors beschränkt, sondern kann ebenso bei Festpunkt-Rechenoperationen benutzt werden. Die Verarbeitung der Gleitkommacharakteristik wird hier nicht beschrieben, da sie für die Erfindung keine Rolle spielt. Die Indexzahlen der verschiedenen Bitbezeichnungen beziehen sich auf die Bitpositionsnummern. SQ bezeichnet z.B. das Summenbit in der Position 0, C. bezeichnet das Übertragsbit in der Position 1 usw.
BC 976 026
809844/0774
Beispiel 1
Dezimal Hexadezimal Binär
131:9 83:9 10000011:1001
Ersten Operanden eingeben (Dividend)
Hex. 42830000
Zweiten Operanden eingeben (Divisor)
Hex. 4 1 9 0 0 0 0 0
CSA-An£angswerte, Summenverriegelung (S) und Übertragsverriegelung (C): Invertierter Dividend S 011111001111 (übrige Bits nicht dargestellt) Erste Überträge COOOOOOOOOOOO
Bitpositionsnumraern 012345678 etc. *■*
S0 ¥ C^ - O (SUMOL-Anfangswert) ι
Verschiebe Summe L1 Übertrag L2 (erste Linksverschiebung) Eingänge zum CSA für Verschiebung:
Divisor abgetrennt 000000000000 Summeneingang 111110011111
Übertragseingang 000000000000 Ausgaben des CSA nach Verschiebungs
Summenverriegelungen S 111110011111 übertragsverriegelungen, C 000000000000 Vorausschau nach Verschiebung
Ergebniswerte aus NichtausfUhrung der Addition von S + C:
Vorsummen PS 111110 0 11111
Vorüberträge PC 00000000000
COLA-Bestimmung mit abgetrenntem Divisor (C0LA2)
C0L&2 =5 0. Ergebnis in CSA-Yorausschauriegel eingeben SUMOL ermittelt: SUMOL « Anfangs-SUMOL ¥ (C0LA2 +C0) =0
~BC 9T6"~02"6"
- 38 -
Versuchssufateraktion mit auf CSA geleitetem Divisor Eingänge an CSÄ zur Bestimmung von COLÄ3; Divisor (angeschlossen) 1 001 00000000
Suiraneneingang 111110011111
übertragsQingang 000000000000
Ergebniswerte ams Niehtausführung der Addition von SC und Divisors
VoEsuiraaen PS 0 110 10 0 11111
Vorüberträge PC 100100000000
COIA-Bestimmung mit angeschlossenem Divisor (GQLA3) C0LA3 = Feststellung, ob Division erfolgreich
DOK - SÜMOL + C0LÄ2 ¥ CO3LA3
DOK » 1 (Division erfolgreich) Subtraktion mit Einer-Komplement (erster Halbzyklus) Eingänge ^um CSA für ersten Halbzykluss Divisor (angeschaltet) 100 100000
Summeneingang 111110011
Übertragseingang 000000000000
Ausgaben des CSA nach Addition der Eingänge des ersten Halbzyklus:
Summenverriegelungen S011010011111 Übertragsverriegelungen C 1 001 00000000 Addition zur Weiterleitung der Überträge (zweiter Halbzyklus) Eingänge zum CSA für zweiten Halbzyklus:
Divisor (abgetrennt) 000000000000
Summeneingang 01101001111
Übertragseingang 001 00000000
Ausgaben des CSA nach Addition der Eingänge des zweiten Halbzyklus Suramenverriegelungen S01001001 1 1 1 Übertragsverriegelungen C001 000000000 Quotientenbit erzeugen Q = Schiebezähler erhöhen Schiebung =1
Erster Zyklus beendet.
000 111
1 0
BC 976
Start zweiter Zyklus
1 SUMOL-Anfangswert = O C0LA2 = O O O O O O O Schiebung O C0LA3 = O mit O 1 1 O O (zweite O O O O I geschalt Subtraktion von Einer-Komplement 1 O O 1 O O O O O O Q = 1 1 O O O O O O O O O O Linksverschiebung) O O Zweiter Z
2 Verschiebe Summe L1 O O O 1 O O O O 1 O O 1 O O O 1 1 1 O O Eingänge zum CSA: O O O 1 O O 1 1 1 1 Verschiebung = 2 1 O O O O O 1 1 1 1 O 1 1
3 Eingänge zum CSA: O O O O O O O O O 1 O O O O 1 O O O O O O O O O O 026 O O 1 O O O O O O O 1 O O
4 O O 1 O O SUMOL = SUMOL-Anfangswert O O V O O 1 1 1 O O 1 O O O O O 1 1 1 1 1 O 1 O O O 1 1 1 1 O 1 1
5 O O O O O Ver suchs subtraktion 1 O auf 1 1 O O O O 1 Ausgänge des CSA:S O O O 1 O O O O O O O O O O O O O O O O 1 O O
6 Ausgänge des CSA: S Eingänge zum CSA: O O O O C O
7 C Übertrag L2 O 1 1 1 1
8 O O 1 O O O 1 O
9 1 Ausgänge des CSA:PS O O O O O O O
10 1 PC O (C0LA2 + Cn) 1 1 1 = 1 1
11 O CSA O O O ;eten Divisor O
OO 12 1 O 1 1 1 O 1
O 13 Vorausschau nach der ί O O O O 1 O
OO 14 PS O Addition zur Weiterleitung der Überträge O
15 PC O Eingänge zum CSA: 1 O
*■*■ 16 O O 1
17 O
CD 18 DOK = 1 (Division erfolgreich) Ausgänge des CSA:S 1
-J 19 C O
20 O
21 1
22 O
23 1
24 O
25
26 O
27 1
28 O
29 1
30 O
31
32
33
34
BC 976
O CD OO -C-
Start dritter Zyklus
1 SÜMOL-Anfangswert = 1
2 Verschiebe Summe L1 und 3-5 Nicht dargestellt
Übertrag L2 (dritte Linksverschiebung)
6 S 0 10 0 0 1 C0LA2 = O PS 1 10 10 1 C0LA3 = O S 1 10 10 1 1 1 1 1 S 1 10 10 1 Q = 1 1 1 1 1 1 1 1 1 1
7 C 0 0 0 0 0 0 SUMOL = 1 V (O V O) = 1 PC O O O O O O DOK = 1 (Division erfolgreich) COOOOOO 0 0 0 0 COOOOOO Verschiebung = 3 0 0 0 0 0 I 0 ι 0
orausi schau nach der Schiebung Versuchssubtraktion ausführen Subtraktion des Einer-Komplements
9 PS 0 10 0 0 1 Nicht dargestellt Nicht dargestellt 1 1 1 1 1 1
10 PC 0 0 0 0 0 0 0 0 0 0 » 0 ι 0
11
12 1 1
13 0 0
14-16
17 1 1 1 1
18 0 0 1 0 0
19 0
20
21
22-24
25 1 1 1 1
26 0 0 0 0
27 Addition zur Weiterleitung der Überträge
28-30 Nicht dargestellt
31 1 1
32 0 0
33
34
Dritter Zyklus beendet
BC 976 026
- 41 Start vierter Zyklus
1 SUMOL-Anfangswert = 1
2 Verschiebe Sume L1 Übertrag L2 (vierte Linksverschiebung) 3-5 Nicht dargestellt
6 S 101011111111
j 7 C 000000000000
j 8 Vorausschau nach der Schiebung
! 9 PS 1 O 1 O 1 1 1 1 1 1 1 1
!1O PC 000000000000
11 C0LA2 =0
a» j 12 SUMOL = 1 V (O V O) = 1
o i 13 Versuchssubtraktion ausführen
to ! 14-16 Nicht dargestellt '
00J17 PS 001111111111
^ ! 18 PC 10 0000000000
^ ! 19 C0LA3 = 1
o j 20 DOK = O (Division erfolglos)
-j : 21-32 Weggelassen. Diesen Subtraktionszyklus überspringen. S + C nicht verändert.
•4 I 33 Q = 1 1 1 0
**" I 34 Verschiebung = 4
j Vierter Zyklus beendet
j Die übrigen Zyklen nicht dargestellt.
BC 976 026
Die oben gezeigte Division wird jetzt im einzelnen beschrieben. Am Anfang werden die Summenverriegelungen S des CSA so eingestellt, daß sie die Bits des invertierten Dividenden speichern. Die Übertragsverriegelungen (C) des CSA speichern am Anfang Nullen. Die äußersten linken vier Bits des invertierten Dividenden (Bitpositionen 0 bis 3) stellen gemäß obiger Erklärung das Komplement der ersten Hexadezimalzahl in diesem Operanden dar, dessen wahrer Wert nach Definition kleiner ist als der Wert der ersten Hexadezimalzahl (Bitposition 0 bis 3) im Divisor, der gegenwärtig im F-Register gespeichert ist. Bevor die erste Subtraktion beginnen kann, muß also der CSA-Inhalt nach links verschoben werden. Unmittelbar vor dieser Linksverschiebung wird nach Darstellung in Zeile Nr. 1 der obigen Tabelle der SüMOL-Anfangswert dadurch bestimmt, daß man die Antivalenzfunktion der Bitwerte S und C1 nimmt. Dann führt der CSA eine Linksverschiebung aus, bei der die S-Bits um eine Position und die C-Bits um zwei Positionen nach links verschoben werden. Nach Darstellung in den Zeilen 3 bis bestehen die Eingänge zu jeder CSA-Bitposition aus einem Null-Divisorbit (da der Divisor abgetrennt ist) und dem Summenbit ,von der nächsthöher nummerierten CSA-Bitposition, sowie dem iÜbertragsbit von der um zwei Nummern höheren CSA-Bitposition (in dieser Anfangsstufe des Divisionsprozesses unveränderlich eine Null). Wenn die Summenbits in den S-Verriegelungen !nach links verschoben werden, ergeben sie Eingänge zu den benachbarten CSA-Bitpositionen und es wird ein zusätzliches Einer-Bit als Surameneingang in die letzte CSA-Bitposition eingegeben (hier nicht dargestellt). Das ist gleichwertig mit
dem Setzen einer wahren Null an das Ende des links verschobenen Dividenden. Diese übliche Addition einer komplementären 1 ■ zur links verschobenen Summe wird bei der Beschreibung der j weiteren Linksverschiebungen in späteren Zyklen des Divisions-i Prozesses nicht weiter erwähnt. ι
BC 976 026
8098U/0774
In den Zeilen 6 und 7 sind die CSA-Ausgabewerte dargestellt, die in den Summen- und Übertragsverriegelungen gespeichert werden, aufgrund der Addition der verschiedenen in den Zeilen 3 bis 5 angegebenen Eingangswerte. Diese Addition bewirkt effektiv die obenerwähnte Linksverschiebung des Dividenden. Die Summen- und Übertragsverriegelungen des CSA enthalten jetzt zusammen einen neuen komplementären Minuendenwert, der die Bits S_ und C1 nicht enthält, wie diese vor der Verschiebung standen. Diese Bits wurden aus dem CSA ausgeschoben und durch neue Bits ersetzt.
Das hier verfolgte zyklische Vorgehe.! verlangt eine Vorausschaufunktion, unmittelbar nach einer Linksverschiebung des CSA-Inhaltes. Dabei handelt es sich insofern um eine akademische Übung, als der erste Zyklus betroffen ist, weil der Vorausschauwert unveränderlich 0 ist, wenn alle in den C-Verriege-^ lungen gespeicherten übertragswerten Nullen sind und somit keine Überträge erzeugt wurden. Trotzdem wird die Vorausschauoperation zu dieser Zeit als reine Routine ausgeführt und nicht versucht, diesen Teil des regulären zyklischen Vorgehens zu umgehen.
Der erste Schritt in einer Vorausschauroutine besteht in der i
Durchführung einer "nichtausfuhrenden Addition" der gegen- !
wärtig im CSA stehenden Summen- und übertragswerte, wie sie j oben im Zusammenhang mit Fig. 5 beschrieben wurde. Bei einer \ nichtausführenden Addition werden die verriegelten Ausgangswerte für S und C als Eingänge zum CSA benutzt, und dadurch Vorsummen- und Vorübertragswerte PS bzw. PC erzeugt, die sich abhängig von den jeweiligen Umständen von den S-Werten und C-Werten unterscheiden können. Dabei werden die verriegelten S-Werte und C-Werte insofern nicht verändert, als die neuen PS-Werte und PC-Werte nicht in die S-Verriegelungen und C-Verriege lungen des CSA geleitet werden. Wenn die neuen S-Werte und C-Werte im Laufe einer Addition nicht getaktet werden, wird die Addition hier als "nicht ausführend" bezeichnet, mit anderen
BC 976 026 β ο 9 8 4 Ul 0 7 7 4
Worten, der Unterschied zwischen einer ausführenden und einer nichtausführenden Addition besteht im Fehlen eines Taktimpulses auf der Steuerleitung 38 in letzterem Fall.
In der Vorausschau nach einer Linksverschiebung wird der Divisor abgetrennt, da zu diesem Zeitpunkt nur interessant ist, ob die Addition der C-Bits zu den S-Bits einen Obertragsausgang von 1 oder 0 aus der äußersten linken CSA-Bitposition erzeugt. Die aus dieser Addition resultierenden Vorsummen- und Vorübertragswerte sind im vorliegenden Fall in den Zeilen 9 und 10 der obigen Tabelle dargestellt. Diese PS-Werte und PC-Werte werden jetzt in das Vorausschaunetzwerk eingespeist, um den Vorausschauwert K_ und den CSA-Übertragsausgangsvorausschauwert C0LA2 sicherzustellen, und zwar mit der in den Fign. 8 bis 10 symbolisch dargestellten logischen Schaltung. Im vorliegenden Fall ergibt sich der Wert 0 für C0LA2 nach Darstellung in Zeile 11 der Tabelle, und dieser Wert für C0LA2 wird jetzt mit dem SÜMOL-Anfangswert antivalent verknüpft (Antivalenzverknüpfung der Bits S0 und C-, wie sie Ivor der Linksverschiebung standen) zum endgültigen SUMOL-■Wert, der das komplementäre Minuendenbit darstellt, das links ausgeschoben worden wäre, wenn alle Summen- und Übertragsbits ' ,vor der Linksverschiebung kombiniert worden wären. Im vorliegenden Beispiel hat der erste Operand (Dividend) ein solches Bitmuster, daß sich im ersten Zyklus ein SUMOL-Endwert von 0 !ergibt (entsprechend dem wahren Wert 1), wie es in Zeile 12 jder obigen Tabelle dargestellt ist. ■
Wenn sich der Wert des SUMOL-Bits mit 0 herausstellt, heißt das, daß eine erfolgreiche Subtraktion ohne Rücksicht auf die Größe des Divisors im betrachteten Zyklus vorgenommen werden kann, weil kein Oberziehen auftreten kann, wenn das links vom Subtrahenden ausgeschobene Minuendenbit einen Komplementwert von 0 (wahre 1) hat. In diesem Fall ist es wirklich unwesentlich, welchen Wert das Übertragsbit hat, wenn die
BC 976 026 809844/0774
Subtraktion des Divisors vom laufenden Minuenden tatsächlich durchgeführt wird, weil ungeachtet seines Wertes keine über-Ziehung während dieser Subtraktion auftreten kann. Routinemäßig führt der Prozessor jetzt trotzdem eine Versuchssubtraktion mit dem vom F-Register auf den CSA geschalteten Divisor durch, um den Übertragsausgang logisch zu bestimmen, der auftritt, wenn der Divisor tatsächlich vom laufenden Minuendenwert im CSA subtrahiert wird. Dieser Vorgang ist in den Zeilen 13 bis 19 der obigen Tabelle dargestellt.
Die Versuchssubtraktion bildet eigentlich eine zweite Vorausschauoperation. Als erster Schritt in dieser Operation werden der Divisor bzw. Summen- und übertragswerte, die im F-Register und in den S-Riegeln und C-Riegeln des CSA gespeichert sind, als neue CSA-Eingänge eingegeben (Zeilen 14 bis 16) und dadurch neue Sätze von Vorsummen- und Vorübertragsbits (PS und PC) am CSA-Ausgang erzeugt (Zeilen 17 und 18), ohne daß die verriegelten S-Werte und C-Werte zerstört werden. Diese PS-Bits und PC-Bits werden der Vorausschauschaltung, Fign. 8 bis 10, zugeführt, um den Vorausschauwert C0LA3 zu bilden, der in diesem Fall 1 ist (Zeile 19). Als nächstes wird in der in Fig. 11 gezeigten Schaltung der neue Wert C0LA3 mit dem vorher bestimmten Wert für C0LA2 (Zeile 11) antivalent verknüpft, um den wahren Übertragsausgang zu bestimm men, der durch Subtraktion des Divisors von dem Minuendenwert entstehen würde, der gegenwärtig gemeinsam durch die S-Bits und C-Bits in den Summen- und Übertragsverriegelungen des ; CSA dargestellt wird. Dieses Übertragsausgangsbit (C0LA2 V , C0LA3) wird dann invertiert und das Komplement zusammen mit j dem invertierten SUMOL-Bit an den DOK-Trigger 112 in Fig. 11 i ■ gegeben.
;Im vorliegenden Fall hat C0LA3 den Wert 1 (Zeile 19) und die Antivalenzverknüpfung dieses Wertes mit dem Wert 0 von C0LA2
I(Zeile 11) ist 1, der wahre Übertragsausgang. Dieser würde
BC 976 026
809844/0774
eine erfolglose Versuchssubtraktion anzeigen, wenn nicht das aus dem CSA ausgeschobene SUMOL-Bit vorher schon mit dem Wert ermittelt worden wäre (Zeile 12). Das invertierte SUMOL-Bit ist daher 1 und schaltet die DOK-Verriegelung 114 in Fig. 11 in den Einer-Zustand. Der invertierte übertragsausgangswert (Komplement von C0LA2 V C0LA3) ist 0 und wird daher nicht durch das ODER-Glied 110 auf den DOK-Trigger 112 geleitet. Das hat im Augenblick jedoch nichts zu sagen, da das DOK-Bit bereits durch das invertierte SUMOL-Bit auf 1 gesetzt ist.
In Zeile 20 der obigen Tabelle findet sich zu diesem Zeitpunkt die Bedingung "Division erfolgreich" und der Prozessor wird dadurch zur Ausführung einer komplementären Subtraktion des Divisors vom Minuendenwert vorbereitet, der gegenwärtig im CSA registriert ist. Bis zu diesem Punkt brauchte eine eigentliche Subtraktion nicht ausgeführt zu werden und die in den S- und C-Riegeln stehenden Summen- und übertragswerte blieben wie sie waren nach der vorhergehenden Linksverschiebung (Zeilen 6 und 7). Die dazwischenliegenden "nicht ausführenden" Schritte der Vorausschaufunktion (Zeilen 8 bis 20) wurden sehr schnell ausgeführt und brauchten nur wenig Zeit zur Beendigung. Wenn die vorgeschlagene komplementäre Subtraktion als erfolglos vorausgesagt worden wäre (DOK = 0), dann wäre die eigentliche Subtraktion während dieses Zyklus übersprungen worden und das System wäre direkt in den nächsten Zyklus des Divisionsprozesses gegangen, wodurch Zeit gespart worden wäre, die sonst dem gerade beendeten Zyklus zugeordnet worden wäre.
Da in diesem Fall das DOK-Bit auf 1 steht, führt der Prozessor jetzt die komplementäre Subtraktion des Divisors vom Dividenden durch. Der Prozessor, in dem die Erfindung tatsächlich praktiziert wurde, führt für diese Subtraktion zwei Additionsschritte aus. Im ersten Halbzyklus wird eine Einerkomplement-Subtraktion ausgeführt (Zeilen 21 bis 26). In diesem Halbzyklus werden die Divisor-Bits vom F-Register zu den Summen-
BC 976 026 . „ rt ,
809844/0774
und Übertragsbits S und C in der in Fig. 4 gezeigten Art addiert und die resultierenden Summen und Übertragsbits in die S- und C-Riegel geleitet als Ausgänge, die gemeinsam einen Teilrest darstellen. Im zweiten Halbzyklus wird eine weitere Addition dieser Summen- und Übertragsbits vom CSA ausgeführt. Diesmal ist der Divisor von dem CSA-Eingang abgeschaltet (Zeilen 27 bis 32) , so daß durch diese weitere Addition wenigstens eine Teilkonsolidierung der Überträge mit den Summenbits erfolgt. Wenn ein Übertragsbit von 1 zu einem Summenbit von in der nächsthöheren Stelle addiert wird, wird das Übertragsbit auf diese Weise in die nächsthöhere Stelle weitergeleitet, Überträge werden jedoch während des Restes dieses Zyklus nicht weitergeleitet. Die resultierenden Summen und Übertragsbits werden in die S- und C-Riegel geleitet (Zeilen 31 und 32), wo sie gemeinsam den laufenden Wert des Teilrestes darstellen.
Nach jeder komplementären Subtraktion muß aus der Sicht des Erfindungsgedankens nicht unbedingt ein übertragsweiterleitungsschritt folgen. Die aus der komplementären Subtraktion resultierenden Überträge können einfach in den C-Verriegelungen des CSA gespeichert werden (ohne versuchte Weiterleitung), um ; dort auf die Verarbeitung während des nächst folgenden Zyklus der Divisionsoperationen zu warten. Bei Bedarf kann nach der letzten Subtraktion nach der letzten Linksverschiebung im Divisionsprozeß der übertrags-Rettungsaddierer dann einmal oder mehrmals im Additionsbetrieb laufengelassen werden, um die Überträge weiterzuleiten und sie mit den Summenbits zu konsolidieren, bis alle Übertragsbits auf Null reduziert wurden. Zu diesem Zeitpunkt stellt der Wert in den Summenriegeln des CSA das letzte Restkomplement dar. Eine eingebaute Funktion erkennt den Zustand, wenn alle übertragswerte Null sind, und beendet die übertragsweiterleitung. Bei Gleitkomma-Rechenoperationen wird der letzte Rest einer Division im allgemeinen vernachlässigt. Wenn man ihn jedoch erhalten will, nutzeji die Teilübertrags-Weiterleitungsschritte, wie sie in den
BC 976 026
8098U/0774
Zeilen 27 bis 32 dargestellt sind, die Zeit, die sonst in der zweiten Hälfte eines jeden Maschinenzyklus vergeudet wird und verkürzen die Anzahl der Übertrags-Weiterleitungsschritte, die in der Endphase des Divisionsprozesses ausgeführt werden müssen.
Der hier für die Lösung von Divisionsproblemen verwendete Übertrags-Rettungsaddierer kann auch für die Lösung von Multiplikationsproblemen eingesetzt werden, wo alle Überträge vollständig in der Endphase der Operation weitergeleitet werden müssen, um das Multiplikationsprodukt zu bekommen. Bei einem 56 Bit großen Übertrags-Rettungsaddierer kann die letzte Weiterleitung von Überträgen viele Zyklen belegen, wenn die Überträge nicht bereits teilweise während der vorhergehenden Zyklen weitergeleitet worden sind, wie es oben erklärt wurde, wobei Teile der Maschinenzykiuszeiten ausgenutzt werden, die sonst vergeudet werden.
Der erste Zyklus des Divisionsprozesses in dem oben beschriebenen Beispiel 1 ist jetzt bis auf zwei Abschlußschritte fertig, die in den Zeilen 33 und 34 gezeigt sind. Da eine Subtraktion erfolgreich ausgeführt wurde, wird ein erstes Quotientenbit von 1 erzeugt und in einen geeigneten Speicher wie beispielsweise das Schieberegister 22 eingegeben. Die Schiebezahl wird von 0 auf 1 erhöht. Die obere Grenze der Schiebezahl wird durch die Bedingungen des Problems und die üblichen Maschinenparameter in bekannter Art bestimmt.
Für jeden weiteren von der Maschine in der Division ausgeführten Zyklus werden die Zeilen mit den Bezugszahlen 1 bis in der obigen Tabelle wiederholt, wobei entsprechende Funktionen in den verschiedenen Zyklen mit derselben Zeilenzahl bezeichnet sind. Beim Beginn eines jeden neuen Zyklus (Zeile 1) wird ein SUMOL-Anfangswert (S_ V C) bestimmt. In Zeile 2 folgt dann eine Linksverschiebung des Inhaltes der
BC 976 026 809844/0774
CSA-Verriegelungen und der Erzeugung neuer S- und C-Werte (Zeilen 6 und 7). Aus den neuen Bitwerten für S und C wird der erste übertragsausgangsvorausschauwert COLA2 bestimmt. (Zeilen 8 bis 11). Dann wird der-SUMOL-Wert bestimmt (Zeile 12) und danach die zweite übertragsausgangsvorausschau C0LA3 (Zeilen 13 bis 19). Alle diese Bestimmungen erfolgen durch die schnellen logischen Prüfverfahren, die oben im Zusammenhang mit den Fign. 7 bis 11 beschrieben wurden. Gemäß Zeile 20 wird dann eine DOK-Prüfung vorgenommen und wenn das Ergebnis ein Einer-Bit ist, wird der Übertrags-Rettungsaddierer zur Ausführung einer echten Einerkomplement-Subtraktion veranlaßt (Zeilen 21 ff.) und ein neues Quotientenbit von 1 erzeugt.
Im betrachteten Beispiel wird in jedem der ersten drei Zyklen eine erfolgreiche Subtraktion ausgeführt. Die Vorausschaumöglichkeit nach der vorliegenden Erfindung kann die für jede erfolgreiche Subtraktion benötigte Zeit geringfügig verlängern. Diese Verlängerung ist jedoch vernachlässigbar klein und kann bei anderen Konstruktionstoleranzen absorbiert werden, die normalerweise sowieso zugelassen sind. In den Zyklen des Divisionsprozesses, in denen die numerischen Bedingungen keine Subtraktion ohne überzug gestatten, ist die Vorausschaumöglichkeit nach der vorliegenden Erfindung jedoch sehr vorteilhaft und er-1 möglicht eine beträchtliche Ersparnis an Maschinenzeit, die sonst für die Ausführung einer vergeblichen Subtraktion mit überzug gebraucht würde, der dann noch korrigiert werden müßte.
Eine Bedingung der gerade beschriebenen Art tritt im vierten Zyklus des obigen Beispiels 1 auf (der letzte in der obigen Tabelle dargestellte Zyklus). In diesem Fall haben sowohl das SÜMOL-Bit als auch das CSA-Übertragsausgangsbit (C0LA2 V C0LA3) den Wert 1 und somit das DOK-Bit den Wert 0. Wenn dieser Fall eintritt, wird keine komplementäre Subtraktion im vorliegenden Zyklus ausgeführt und die Operation geht weiter zum nächsten Zyklus nach Erzeugung des Quotientenbit 0 und Fortschreibung
BC 976 026 e 0 9 8 A U I 0 7 7 U
der Schiebezahl.
Wenn die Division an diesem Punkt unter den Bedingungen des vorliegenden Problemes beendet wurde, enthalten der Summenriegel (S) und der Übertragsriegel (C) des CSA gemeinsam das Restkomplement. Wenn alle C-Werte 0 sind oder durch Übertragsweiterleitung auf 0 reduziert werden, dann stellen die S-Werte das Restkomplement dar. Wenn aus irgendeinem Grund
der wahre Wert des Restes gebraucht wird, erhält man diesen durch Pulsen einer Komplementsummen-Steuerleitung 56, die zum CSA führt (Fign. 6 und 12) während dieser im ADD-Betrieb
läuft, wodurch der in den S-Riegeln gespeicherte numerische Wert in das Einer-Komplement umgesetzt wird.
Wenn die von der Division betroffenen Operanden so groß sind, daß die erste Hexadezimalstelle des Dividenden die erste
Hexadezimalstelle des Divisors überschreitet, muß eine Rechtsausrichtung vorgenommen werden, bevor der erste Divisionszyklus beginnen kann. Diese Bedingung ist in dem nachfolgend in Tabellenform aufgeführten Beispiel 2 dargestellt. In diesem einfachen Beispiel ist der Dividend, hexadezimal A oder dezimal 10, zu dividieren durch 5. Der Vergleich dieser Hexadezimalwerte zeigt die Notwendigkeit einer Rechtsausrichtung. Diese Rechtsausrichtung erfolgt durch eine Reihe von vier
Rechtsverschiebungen, von denen jede genauso vorgenommen
wird, wie es in Fig. 2 gezeigt ist. Das Übertragsbit in der C-Verriegelung einer jeden CSA-Bitposition wird einfach als Übertragseingang wieder in dieselbe Bitposition eingegeben. Der Summeneingang zu jeder CSA-Bitposition kommt von der links danebenliegenden Bitposition. Das F-Register (Divisor) wird zu dieser Zeit abgetrennt. Die resultierende Addition bewirkt eine Rechtsverschiebung des CSA-Inhaltes um eine Bitposition oder Spalte. Für die Rechtsausrichtung werden vier derartige Rechtsverschiebungen gebraucht. Bei jeder Rechts-
BC 976 026
809844/0774
Verschiebung wird in die Suinmenverriegelung der äußersten linken CSA-Bitposition ein Komplement 1 eingegeben.
In dem nachstehenden Beispiel 2 ist nur der erste Zyklus des Divisionsprozesses dargestellt. Wenn die Rechtsausrichtung einmal erfolgt ist, läuft die Operation genauso ab, wie sie oben in Verbindung mit Beispiel 1 beschrieben wurde. Eine erforderliche Rechtsausrichtung läßt sich dadurch einfach erkennen, daß man am Anfang die SUMOL-Verriegelung 67 zu Beginn der Division auf 1 setzt (durch entsprechendes Pulsen des Triggers 66) und dann eine Versuchssabtraktion mit auf den CSA geschalteten Divisor durchführt, die resultierenden Bits für Vorsumme und Vorübertrag in die Vorausschauschaltung einspeist und schließlich die Stellung der DOK-Verriegelung 114 prüft. Wenn DOK = 1 ist, heißt das, daß das Dividendenkomplement rechts ausgerichtet werden muß, bevor die Division beginnen kann.
BC 976 026
809844/0774
- 52 Beispiel 2
Dezimal
10:5
Ersten Operanden eingeben
Hex. 41AOOOOO
Operator eingeben:
Zweiten Operanden eingeben
Hex. 41500000
Anfangswerte für Summenverriegelung
Invertierter Dividend S 0 10 1
Hexadezimal A:5 Binär
1010:0101
Erste Überträge C 000000000000 Dividend rechts ausgerichtet 1 Hexadezimalzeichen
S 11110101111
(S) und Übertragsverriegelungen (C):
11111111 (übrige Bits nicht gezeigt)
S0VC1
= 1
1 (übrige Bits nicht gezeigt) C 000000000000 (erster SUMOL-Wert)
Verschiebe Summe L1 Übertrag L2 (erste Linksverschiebung) Eingänge zum CSA:
Divisor abgetrennt) 000000000000
Summene ingang
Übertragseingang
1110 10 111111
000000000000 Ausgänge des CSA nach Verschiebung:
Summenriegel S 111010111111
Übertragsriegel C 000000000000
Vorausschau nach Verschiebung
Resultatwerte aus nicht ausführender Addition von S und C: Vorsummen PS 1110 10 111111
Vorüberträge PQ 0 0 0000000000 COLA mit abgetrenntem Divisor ermitteln (C0LA2)
C0LA2 = 0
SUMOL = SUMOL-Anfangswert V (C0LA2 + CQ) = 1
BC 976 026
O
CO
OQ
Versuchssubtraktion mit auf CSA geschalteten Divisor ausführen Eingänge zum CSA:
Divisor (aufgeschaltet) 0 10 111111111
Summeneingang 111010111111
Übertragseingang 000000000000
Resultatwerte aus nicht ausführender Addition von S, C und Divisor:
Vorsummen PS 10 1110 111111
Vorüberträge PC 010000000000
COLA mit aufgeschaltetem Divisor bestimmen (C0LA3)
C0LA3 = 1
DOK = SUMOL + C0LA2 V C0LA3 = 0 (Division erfolglos) Subtraktion dieses Zyklus überspringen. S und C nicht geändert.
Erstes Quotientenbit erzeugen: Q=O Schiebezähler erhöhen. Schiebung = 1 übrige Zyklen aus dieser Darstellung weggelassen.
Endgültiger Quotient Q=OO! 00000
BC 976 026
Die exemplarischen Rechts- und LinksSchiebefunktionen wurden oben in bezug auf die CSA-Eingänge beschrieben. Manchmal müssen jedoch auch die CSA-Ausgabebitreihen nach rechts oder links zur Ausrichtung verschoben werden, wenn sie von den CSA-Riegeln in andere Register oder in den Speicher übertragen werden. Die Rechts- und Linksschiebeeinrichtungen des gezeigten CSA erleichtern diese eventuell erforderlichen Ausrichtoperationen wesentlich.
Übertrags-Rettungsaddierer (CSA)
Wie schon gesagt wurde, verlangt das beschriebene Divisionsgerät nicht unbedingt eine bestimmte Form von Übertrags-Rettungsaddierer, auch andere Arten von Übertrags-Rettungsaddierer können für die vorliegende Erfindung verwendet werden, solange sie über folgende Einrichtungen verfügen:
1. Der Addierer muß nicht verriegelte Summen- und Übertragsausgänge (wie die Vorsummen- und Vorübertragsbits) und verriegelte Summen- und Übertragsausgänge (S-Bit und C-Bit) liefern können.
2. Der Addierer muß eine entsprechende Rechts- und Linksschiebeschaltung enthalten oder damit verbunden sein.
3. Der Addierer muß seine Ausgabesummenbits und/oder Übertragsbits wieder auf der Eingabeseite eingeben können, wie es für verschiedene Operationen des Divisionsgerätes gebraucht wird.
Alle obengenannten Merkmale können in herkömmlichen CSA's vorgesehen werden, die für die verschiedenen Funktionen entr sprechend modifiziert sind. Die dritte Forderung nach Wiedereingabe kann beispielsweise durch ein Paar CSA's erfüllt werden, die abwechselnd Ausgänge liefern und Eingänge empfangen und eine separate Schiebeschaltung für die jeweils benötigte Spaltenverschiebung benutzen. Alle CSA's haben interne Schal-
BC 976 026
8O98U/O7U
tungsverbindungen, die an entsprechender Stelle für die nicht verriegelten Vorsuitunen- und Vorübertrags-Ausgangsbits angezapft werden können, die als Eingänge für die Vorausschauschaltung gebraucht werden.
Wo jedoch wesentliche Kosten und Platzersparnisse erzielt werden sollen, ist die hier gezeigte besondere Konstruktion des Übertrags-Rettungsaddierers von Vorteil. Diese allgemein in Fig. 6 gezeigte Schaltung ist genauer in Fig. 12 dargestellt. Aus Fig. 12 geht in Verbindung mit den Fign. 1 bis 6 hervor, daß jede Bitposition N des CSA 23 NAND-Glieder und ein NOR-Glied enthält (in den Zeichnungen entsprechend dargestellt durch ä und OR). Diese 24 Schaltungen nehmen alle Additions-, Schiebe-, Komplement- und sonstigen Funktionen wahr, die mit jeder CSA-Bitposition unter den verschiedenen Umständen durchgeführt werden müssen. Einige dieser Schaltglieder bilden Elemente von flankengetriggerten Flip-Flops, die den Summentrigger 34 und den Übertragstrigger 36 der Fig. 6 enthalten, und andere sind in verschiedenen Steuerungs- und Datenverarbeitungsschaltungen enthalten, die sowohl als Summen- als auch als Übertragstriggerschaltung dienen. Die Summen- und Übertrag sverriegelungen 26„ und 28 der entsprechenden CSA-Bitposition N umfassen Elemente, die als Ausgangstore der Flankentrigger 34 und 36 dienen und so eingestellt werden, daß sie die Summen- und Übertragsbitwerte darstellen, die allein durch die Eingänge bestimmt werden, die gleichzeitig mit den Führungsflanken der an die Steuerleitung 38 angelegten Taktimpulse erfolgen. Die verriegelten Summen- und Übertragswerte ändern sich zwischen aufeinanderfolgenden Taktimpulsen normalerweise nicht, ungeachtet der Änderungen, die in den Eingängen zum CSA während dieser Zeit auftreten können. Andere, Tore sorgen für das Ausgangsvorsummenbit (PS) und das Vorübertragsbit (PC), die gleichzeitig mit oder unabhängig von den Taktimpulsen auf Leitung 38 abhängig von den jeweils herrschenden Bedingungen erzeugt werden können. Die nichtverriegelten
BC 976 026 ,■,*««»
8098U/077Ä
PS-Werte und PC-Werte können sich zwischen den Taktimpulsen ändern, ohne daß die verriegelten S-Werte und C-Werte davon betroffen werden. Die PS-Werte und PC-Werte werden nur solange dargestellt, wie die sie erzeugenden Eingangssignale an den CSA angelegt werden. Somit sind es nur vorübergehend erzeugte Werte, die sofort benutzt werden müssen, wenn sie überhaupt genutzt werden.
Die in Fig. 12 gezeigte CSA-Schaltung spricht auf verschiedene Dateneingänge an, die unter den unten aufgelisteten Eingangstypen entsprechend der jeweils vom CSA ausgeführten Funktionen ausgewählt werden.
Beschreibung des Einganges
Summeneingang von derselben Stelle
Invertierter Summeneingang von derselben Stelle
Summeneingang von einer anderen Stelle Übertragseingang von derselben Stelle Übertragseingang von einer anderen Stelle Divisoreingang vom F-Register Null-Eingang vom F-Register
Bei der Ausführung einer gegebenen CSA-Funktion werden nur bestimmte Eingänge benutzt, gemäß der obigen Erklärung in Verbindung mit den Fign. 2 bis 5. Die verschiedenen CSA-Funktionen werden im besonderen Zusammenhang mit Fig. 12 beschrieben.
Fig. 13 zeigt in vereinfachter Form die Konstruktion der hier verwendeten Trigger-Schaltung. Jeder Summen- und Übertragstrigger enthält eine Reihe von NAND-Gliedern, z.B. 120 bis 124, in der gezeigten Schaltungsanordnung. Das in jeden Trigger ein-'gegebene Datenbit wird durch einen Satz von Datentoren 125
976 026 6Q98U/077 ti
Eingangsleitung
Fign. 6 u. 7
4
160
oder 51
47 52
oder 48
42 44
(abgetrennt)
44
geliefert, die bestimmte logische Verarbeitungsoperationen mit den Eingangsdaten entsprechend der Größe der entsprechenden Eingangsbits vornehmen (Summeneingang, Übertragseingang und Divisoreingang). Die Herkunft der Eingabedatenbits hängt von der durch den CSA auszuführenden Funktion ab und die Auswahl der Datenquellen erfolgt durch die Eingabesteuerung 126 aufgrund des gegenwärtig wirksamen Steuersignales. Wenn das aktive Steuersignal beispielsweise eine Rechtsverschiebung anfordert, dann sind die Eingangsbits zu einer gegebenen CSA-Position N ein Summenbit S1, ein Übertragsbit Cn und ein NuI1-Divisorbit (F-Register). Wenn das Steuersignal eine Linksverschiebung verlangt, werden die Eingangsbits ein Summenbit S„ *, ein Übertragsbit Cn+2 und kein Divisorbit. Wenn eine Addition verlangt wird (Verschiebe Übertrag L1 Summe LO), werden als Eingänge gewählt: ein Summenbit Sn, das : Übertragsbit Cn * und ein Divisorbit F oder kein Divisorbit, je nach dem Zweck der Addition. Für eine Komplementsummenfunktion ist der einzig wertdarstellende Eingang das Komplement des Summenbit S..; das Divisoreingangsbit und das Übertragseingangsbit sind in diesem Fall 0.
Wenn die Eingangssteuerungen 126 in Fig. 13 die Eingabedaten- , quellen einmal gewählt haben, verarbeiten die Datentore 125 ; diese Eingangsbits nach ihren Werten und ohne Rücksicht auf ihren Ursprung. Die Tore 125 erzeugen verschiedene Ausgabe- . bits, von denen eines in invertierter Form die Antivalenzfunktion der Eingangsbits und ein anderes ebenso in invertierter Form die UND-Funktion der Eingabebits darstellen. Das Komplement eines jeden dieser Bits ist als Ausgang des entsprechenden Summen- oder Übertragstriggers darzustellen. ; Die Antivalenzfunktion wird durch den Summentrigger und die UND-Funktion durch den Übertragstrigger dargestellt. Die nach- > folgende Beschreibung gilt für beide Fälle. Für die Erfindung ; büß weiterhin jeder Trigger seinen Ausgang in verriegelter ; und unverriegelter Form darstellen. Der verriegelte Ausgang
976 026 . 8098U/0774
bleibt zwischen den Taktimpulsen stabil, während der unverriegelte sich zwischen Taktimpulsen ändert.
Im normalen Ruhezustand der Triggerschaltung, wenn kein Taktimpuls oder Rückstellimpuls angelegt ist, liefert die Taktleitung 38 negative Eingänge oder logische Null-Eingänge an die NAND-Glieder 121 und 122 und die Rückstelleitung 54 liefert positive oder logische Einer-Eingänge an die NAND-Glieder 124 und 125 nach Darstellung in Fig. 13. Die Rückstelleitung wird nur negativ, wenn der Trigger zurückgestellt werden soll. Mit Takteingängen von Null, haben die Schaltglieder 121 und
122 logische Einer-Ausgänge. Das NAND-Glied 121 legt seinen Einer-Ausgang als Eingang an die Schaltglieder 120, 122 und
123 an.
Wenn jetzt ein Einer-Bit am Ausgang der DATEN-TORE 125 erscheint, wird es nach Darstellung in Fig. 14 als Eingang an das NAND-Glied 120 angelegt. Wenn beide Eingänge zum NAND-Glied 120 auf Eins stehen, geht sein Ausgang auf Null, der
dadurch als nichtverriegeltes Ausgangsbit dargestellt wird. Dieser Ausgang wird außerdem als ein Eingang an das NAND-Glied 121 angelegt. Wenn ein Taktimpuls an die NAND-Glieder und 122 angelegt wird, geht der Takteingang auf Eins, so daß jetzt beide Eingänge zum NAND-Glied 122 auf Eins stehen, wie es in Fig. 14 gezeigt ist. Der Ausgang des NAND-Gliedes 122 geht daraufhin auf Null, und diese Null ist ein Eingang zum NAND-Glied 124, das einen Ausgang von Eins erzeugt, der wieder als Eingang an das NAND-Glied 123 angelegt wird. Beide Eingänge zum NAND-Glied 123 sind jetzt auf Eins, so daß sein
Ausgang auf Null geht und das ist das verriegelte Ausgangsbit. ,Die NAND-Glieder 123 und 124 sind über Kreuz gekoppelt und
!halten sich selbst in den in Fig. 14 gezeigten Zuständen,
!wenigstens bis zum nächsten an diese Trigger-Schaltung angelegten Taktimpuls, ungeachtet der eventuell im Wert der
michtverriegelten Ausgangsbits in dieser Zeit auftretenden
BC 976 O26 809844/0774
Änderungen. Eine Verbindung 128 vom Ausgang des NAND-Gliedes 122 zu einem entsprechenden Punkt im NAND-Glied 125, sperrt momentan jede Änderung des Ausganges des NAND-Gliedes 125, während eine Null durch das NAND-Glied 122 in die Verriegelung gesetzt wird.
Wenn eine Null am Ausgang der Daten-Tore 125 erscheint, wird sie als Eingang an das Schaltglied 120 angelegt, wodurch dessen Ausgang nach Darstellung in Fig. 15 eine Eins ist. Das Schaltglied 120 erzeugt somit ein nichtverriegeltes Ausgangsbit von Eins, was als Eingang an das in Fig. 15 gezeigte NAND-Glied 121 angelegt wird. Wenn die Taktleitung gepulst wird, erscheint dieser Einer-Takteingang zum Schaltglied 121, wodurch beide Eingänge zu diesem Schaltglied einen Einer-Wert haben. Sein Ausgang geht daraufhin auf Null, und diese Null wird als Eingang an das Schaltglied 123 gegeben, wodurch dieses ein verriegeltes Eins-Ausgangsbit erzeugt. Der Null-Ausgang vom Schaltglied 121 wird außerdem als Eingang an das Schaltglied 122 gegeben, so daß dieses seinen normalen Einer-Ausgang hat, der das Schaltglied 124 in den Komplementzustand des Schaltgliedes 123 versetzt. Die Schaltglieder 123 und 124 behalten diesen stabilen Zustand wenigstens bis zum nächsten Taktimpuls bei, trotz aller Änderungen, die inzwischen im Wert des nichtverriegelten Ausgangsbits auftreten können.
Die obige Beschreibung erklärt die Arbeitsweise der Trigger. Die in Fig. 12 gezeigten NAND-Glieder 130 bis 136 entsprechen dem Eingangssteuerteil 126 der CSA-Bitpositionen in Fig. 13. Die Schaltglieder 138 bis 144 in Fig. 12 entsprechen den Datenschaltgliedern 125 in Fig. 13. Die NAND-Glieder 145 bis 149 in Fig. 12 bilden eine Summentrigger-Schaltung, die funktionell der Schaltung aus den Schaltgliedern 120 bis 124 in Fig. 13 eentspricht. Die die NAND-Glieder 150 bis 154 in Fig. 12 umfassende Übertragstrigger-Schaltung liefert in ähnlicher Weise ein Gegenstück zu den Schaltgliedern 120 bis 124 in Fig. 13.
BC 976 026
809844 / 077
In diesem Zusammenhang soll nicht die ganze in Fig. 12 gezeigte Schaltung sondern nur bestimmte Schlüsselaktionen und der Zustand aller Datentore und Triggertore beschrieben und tabellarisch für alle möglichen Kombinationen von Eingangsbits während der verschiedenen Funktionen des CSA (Addieren, rechts verschieben, links verschieben, Komplementieren) dargestellt werden. Diese Darstellungen bilden zusammen mit den oben gegebenen Erklärungen eine ausreichende Veröffentlichung der Operationen des Übertrags-Rettungsaddierers.
Addition
Bei Additionsfunktionen kann das F-Register an den CSA angeschaltet sein. Wenn das F-Register abgetrennt ist, kommt ein Null-Eingang auf der Leitung 44 vom F-Register. Sonst liefert die Leitung 44 an die CSA-Bitposition N ein Eingangsbit F von der N-ten Stelle des im F-Register gespeicherten Divisors.
Zur Einleitung einer Addition wird die Steuerleitung 40 erregt und dadurch die NAND-Glieder 131 und 134 zur Erzeugung von Ausgängen vorbereitet, die das Einer-Komplement des Übertragsbits C1 auf Leitung 42 bzw. des Summenbits Sn auf Leitung 41 darstellen. Die Ausgabe des Schaltgliedes 131 wird an eine der Verbindungen der negativen verdrahteten ODER-Schaltung (DOT-ODER, Phantom-ODER) 156 angelegt. Bei einem derartigen Netzwerk ist der Ausgang negativ, wenn ein Eingang negativ ist. Ähnlich wird der Ausgang des Schaltgliedes 134 an eine Verbindung des negativen DOT-ODER-Netzwerkes 158 angelegt. Die beiden Ausgänge der Netzwerke 156 und 158 werden an das NOR-Glied 139 und an das NAND-Glied 138 angelegt. Wenn die ursprünglichen Summen- und Übertrags-Eingangsbits gleiche Werte haben, haben bei einer derartigen Schaltung die entsprechenden Ausgänge der Schaltglieder 138 und 139 den Originaleingangswerten entsprechende gleiche Ausgangswerte. Wenn das Eingangssummenbit und das Eingangsübertragsbit verschiedene
BC976026 809844/077* '
Werte haben, hat das NAND-Glied 138 einen positiven Ausgangswert (1) und das NOR-Glied 139 einen negativen Ausgangswert (0).
Der Eingang vom F-Register auf der Leitung 44 in Fig. 12 wird an die Datentore 140, 142 und 144 angelegt, wenn der Inhalt des F-Registers auf den CSA geschaltet wird. Wenn das F-Register vom CSA getrennt ist, liefert die Leitung 44 Pseudo-Eingänge von 0 an diese Schaltglieder. Während einer Addition, von der auch der Divisor betroffen ist (d.h. während einer komplementären Subtraktion), liefert die Leitung 44 auf jede CSA-Bitposition N das Divisorbit F , das in der entsprechenden Position N des F-Registers steht.
Die Eingangssteuertore 130, 132, 133, 135 und 136 in Fig. 12 spielen während einer Addition eine passive Rolle. Da die verschiedenen an diese NAND-Glieder angeschlossenen Steuerleitungen im vorliegenden Fall nicht erregt werden, haben diese NAND-Glieder positive Ausgänge (1). Wenn das Eingabedatenbit, das an eines der aktiven Schaltglieder 131 und 134 angelegt wird, jedoch eine Eins ist, wird der Ausgang dieses Schaltgliedes negativ (0), so daß die ganze Schaltung 156 oder 158 negativ wird. Somit können die inaktiven Steuertore 130, 132, 133, 135 und 136 die Eingänge nicht beeinflussen, die an die Additionssteuertore 131 und 134 des NAND-Gliedes 138 und des NOR-Gliedes 139 angelegt werden.
Die nachstehende Tabelle zeigt die betreffenden Ausgänge der Datentore 138 bis 144, der Triggertore 145 bis 154 und der Schaltglieder 156 und 158 für jede mögliche Bitkombination von Summeneingang, Übertragseingang und Divisoreingang. Einige i [dieser Zustände werden gezeigt, da sie unter Bedingungen auf- i treten, die nur beim Anlegen des Taktimpulses an den CSA vor- \ liegen. Mit geringfügigen Änderungen kann mit derselben ' j Tabelle auch die Wirkung der Tore für die anderen CSA-Funktiona;n
BC 976 026 809844/0774
(Rechts- und Linksverschiebung sowie Komplement-Summe) gezeigt werden.
Tabelle der Torausgänge für Addition
Eingänge zur CSA-Bitposition N Summeneingang Übertragseingang (C
N+1
Divisoreingang (F ) DOT OR 156
Torausgänge DOT OR 158
NAND 138
NOR 139
NAND 140
NAND 141
NAND 142
NAND 143
NAND 144
NAND 145
NAND 146
PSN NAND 147
NAND 148
NAND 149
SN NAND 150
NAND 151
PCN NAND 152
NAND 153
NAND 154
CN
0 10 10 10 1 0 0 110 0 11 0 0 0 0 1 1 1 1
110 0 110 0 10 10 10 10 0 1110 111 0 0 0 1 0 0 0 1 111110 0 0 1110 1110 11111110 10 0 11111 11110 111
0 110 10 0 1
1 0*0*1 0*1 1 0*
0*1 1 0*1 0*0*1 0 1 10 10 0 1 10 0 10 1 10
0 0 0 10 1 1 1
1 1 1 0*1 0*0*0*
0*0*0*1 0*1 1 1
0 0 0 10 111
1 1 10 10 0 0
Nur zur Taktzeit; sonst 1.
BC 976 026
8098U/07
Die die Summen- und Übertragsausgänge liefernden Verriegelungstore 148, 149, 153 und 154 halten ihre Einstellung nach Beendigung des Taktimpulses und Abzug der Dateneingänge. Die Triggertore 145 und 150, die die Vorsummen- und Vorübertragsausgänge liefern, kehren in den Ausgabezustand lauter Nullen zurück, wenn die Dateneingänge abgezogen werden, da sie keine wertdarstellenden Ausgänge zu halten brauchen, wenn die Vorausschaufunktion einmal ausgeführt wurde. Die Triggertore 146, 147, 151 und 152 kehren in den Ausgabezustand lauter Einsen zurück, wenn der Taktimpuls endet.
Verschiebung
Rechts- und Linksverschiebung sind Spezialadditionen, die sich von der normalen oben beschriebenen Addition nur darin unterscheiden, daß die Summen- und Übertragseingangsbits von verschiedenen Bitpositionen abgeleitet werden und der Divisoreingang immer 0 ist (F-Register abgetrennt). Zur Ausführung einer Rechtsverschiebung beispielsweise wird die Steuerleitung 50 erregt und dadurch das NAND-Glied 130 in Fig. 12 zur Lieferung eines negativen Ausganges (0) vorbereitet, wenn das übertragseingangsbit (in diesem Fall Cn) 1 ist. Wenn Cn 0 ist, wird ein positiver Ausgang (1) geliefert. Durch Erregung der Steuerleitung 50 wird in ähnlicher Weise das NAND-Glied 133 zur Erzeugung eines Null-Ausganges vorbereitet, wenn das Summeneingangsbit (Sn-1) 1 ist oder umgekehrt. Jedes Null-Ausgangsbit von den Toren 130 und 133 wird durch die Schaltungen 156 und/oder 158 an das NOR-Glied 139 und/oder NAND-Glied 138 geleitet. Von hier funktionieren die Datentore und Triggertore genauso wie bei der Erzeugung der endgültigen Ausgabebits für Vorsumme (PSn), Vorübertrag (PCn), Summen (S ) und übertrag (C ) aus der hier betrachteten CSA-Bitposition N.
BC 976 O26 80 9 844/077
Die obige Ausgangswerttabelle gilt auch für eine Rechtsschiebeoperation unter der Voraussetzung, daß diese Tabelle wie folgt verändert wird:
a) Das Summeneingangsbit ist in diesem Fall S- und nicht Sn und das Übertragseingangsbit ist C-, und nicht C^+1.
b) Spalten, die eine Eingabebitkombination mit dem Divisorbit (F„) = 1 enthalten, können übergangen werden, da sie für die hier betrachtete Schiebeoperation nicht zutreffen.
Die durch diese Rechtsschiebung erzeugten Summen- und Übertrangsausgangsbits werden in die Summen- und Taktverriegelungen geleitet.
Für eine Linksverschiebung wird die Steuerleitung 46 in den Fign. 6 und 12 erregt und dadurch das NAND-Glied 132 in Fig. zur Erzeugung eines Null-Ausganges vorbereitet, wenn das Übertragseingangsbit (in diesem Fall CN+?) 1 ist oder eines Eins-Ausganges, wenn das Übertragseingangsbit 0 ist. Die Erregung der Leitung 46 bereitet auch das NAND-Glied 135 zu einem Null-Ausgang vor, wenn das Summeneingangsbit (Sn+-) 1 ist oder sonst zu einem Einer-Ausgang. Jedes Null-Ausgangsbit (d.h. negativer Ausgang) von den Toren 132 und 134 wird durch die Schaltung 156 und/oder 158 an das NAND-Glied 138 und das NOR-Glied 139 geleitet. Von hier an funktionieren die Datentore und Triggertore genauso, wie es oben für eine Addition beschrieben wurde, unter der Voraussetzung, daß folgende Änderungen an der Ausgangstabelle für Additionen vorgenommen werden:
a) Das Summeneingabebit ist in diesem Fall Sn- und nicht Sn und das Übertragseingangsbit ist C+2 und nicht C-.
b) Spalten mit Eingabekombinationen, die das Divisorbit Fn = enthalten, sind zu übergehen.
BC 976 O26 8098U/0774
Die durch diese LinksverSchiebung erzeugten Summen- und Übertragsausgangsbits werden in die Summen- und Übertragsverriegelungen geleitet.
Komplementäre Summe
Manchmal braucht man am Ende einer Rechenoperation das Komplement der in den Summenverriegelungen 26 des CSA registrierten Zahl. In diesem Fall wird die Steuerleitung 56 in den Fign. 6 und 12 erregt und dadurch das NAND-Glied 136 einer jeden CSA-Bitposition hin zur Abgabe eines Ausgangssignales vorbereitet, das die invertierte Form des komplementären Summenbits Sn ist, das zu dem Zeitpunkt in der Summenverriegelung 26 N der entsprechenden CSA-Bitposition steht. Dieses komplementäre Summenbit wird vom Ausgang des Verriegelungstores 149 in Fig. 12, das das Komplement von S speichert, über eine Leitung 160 an den Summeneingangsanschluß des Tores 136 geleitet. Der Ausgang des Tores 136, der den Wert des Summenbits Sn darstellt, der dann in der Summenverriegelung gespeichert ist, wird über das bekannte Netzwerk an die Tore 138 und 139 geleitet.
Bei einer Summenkomplementierung gibt es keinen wertdarstellen·* den Übertragseingang oder Divisoreingang. Da der Übertragseingang 0 ist, ist der Ausgang des Netzwerkes 156 eine Eins. : Diese wird an die Tore 138 und 139 angelegt, um sie so vorzu- i bereiten, daß das Tor 138 einen Einer-Ausgang und das Tor 139 ' einen Null-Ausgang erzeugt, wenn der Wert von Sn 0 ist. Wenn der Wert von Sn 1 ist, erzeugt das Tor 138 einen Null-Ausgang und das Tor 139 einen Einer-Ausgang. Der schließlich in die Summenverriegelung 26 getaktete Ausgabewert ist somit das Komplement des Summenbits Sn, das vorher dort gespeichert i war. ;
BC 976026 809844/0774
Die Ausgänge der Datentore und Triggertore in Fig. 12 können durch die obige Torausgangstabelle bei einer komplementären Summenfunktion im CSA dargestellt werden, wenn diese Tabelle wie folgt verändert wird:
a) Alle Spalten, in denen der Übertragseingang und/oder Divisor-Eingang eine Eins enthält, sind zu übergehen.
b) In jeder der übrigen beiden Spalten ist der Summeneingang das Komplement des Summenbit S„, das zu Anfang in der Summenverriegelung stand.
Rückstellung
Während einer Rückstellung wird die Steuerleitung 54 negativ gepulst und daher jedes der UND-Glieder 141, 143, 149 und in Fig. 12 zur Annahme eines Zustandes veranlaßt, in der es einen positiven Ausgang (1) darstellt, wenn es nicht bereits in diesem Zustand steht. Solche Vorgänge wiederum veranlassen die NAND-Glieder 148 und 153 zur Annahme ihres Null-Ausgangszustandes, so daß alle Summen- und Übertragsverriegelungen zurückgestellt sind und außerdem die NAND-Glieder 145 und in dem Zustand stehen, in dem sie Null-Ausgänge für Vorsumme und Vorübertrag darstellen.
Zusammenfassung der Vorteile
Das gezeigte Divisionsgerät und sein Übertrags-Rettungsaddierer haben gegenüber herkömmlichen Geräten folgende Vorteile:
1. Der Teiler benutzt denselben Hochgeschwindigkeits-Übertrags-Rettungsaddierer, der auch bei Multiplikationen benutzt wird und erübrigt somit die Ausstattung des Prozessors mit separaten Addierern für Multiplikation und Division.
BC 976 °26 8098U/077A
Der Teiler versucht keine komplementäre Subtraktion in einem Divisionsprozeß auszuführen, wenn nicht hundertprozentig sicher ist, daß die vorgeschlagene Subtraktion ohne überzug möglich ist.
Die erfolgreiche Ausführung einer vorgeschlagenen Subtraktion wird durch ein logisches Vorausschauverfahren, das nur wenig Zeit zum Subtraktionszyklus bei tatsächlicher Ausführung der Subtraktion hinzufügt, vorherbestimmt und spart so die Zeit, die sonst bei einem vergeblichen Subtraktionsversuch vergeudet würde.
Der tibertrags-Rettungsaddierer liefert nicht-verriegelte Vorsummenbits und Vorübertragsbits für das Vorausschauverfahren und liefert separat verriegelte Summen- und Übertragsbits, die sich zwischen Taktimpulsen trotz Änderung der Eingabedaten während der Zwischenperiode nicht ändern.
Für alle Funktionen bei einer Division und/oder Multiplikation einschließlich der Addition-Subtraktion, Rechtsverschiebung, Linksverschiebung und der Komplementierung wird nur ein Übertrags-Rettungsaddierer benutzt und alle diese Funktionen können in eine einheitliche CSA-Schaltungskonfiguration eingebaut werden.
Eine kompakte CSA-Schaltungskonstruktion läßt sich durch Verwendung von flankengetriggerten Flip-Flops und Datentoren erreichen, die auf die von den Summen- und Übertrags-Verriegelungen derselben Trigger gelieferten Summen- und Übertragseingänge zusammen mit einem anderen Dateneingang zum CSA wie etwa dem Divisor ansprechen und neue Summen- und Übertragsausgänge in besagte Verriegelungen liefern, sowie neue Vorsummen- und Vorübertragsbits, die nichtverriegelt werden.
Die Eingangstore des CSA sind so ausgelegt, daß Eingangsdaten durch die anderen Tor- und Triggerschaltungen des CSA entsprechend der jeweils ausgeführten CSA-Funktion
BC 976 O26 809844/0774
(Addition, Rechtsverschiebung, Linksverschiebung, Komplement) geleitet werden. Separate Schiebe- oder Komplementärschaltungen werden nicht benötigt.
Zur Reduktion der Betriebszeit können durch entsprechende Programmierung hier separat beschriebene Funktionen in einigen Fällen kombiniert werden. Eine Linksverschiebung kann z.B. mit einer Vorausschauaddition so kombiniert werden, daß Vorsummen- und Vorübertragsbits, die durch die Linksverschiebung erzeugt werden, direkt in der anschließenden Vorausschauverschiebung benutzt werden.
976 026 80984 A /07? 4

Claims (1)

  1. PATENTANSPRÜCHE
    Divisionseinrichtung mit Übertrags-Rettungsaddierwerk, bei der die Division als Folge von Subtraktionen (Komplementärwert-Addition) durchgeführt wird, dadurch gekennzeichnet, daß eine Vorausschau-Schaltung (32, Fig. 1) vorgesehen ist, der bei jedem Subtraktionsschritt die jeweiligen Halbsumraen- (PS.) und Übertragsbits (PC.) des Addierers (20) zugeführt werden und die ein Freigabesignal (DOK — 1) abgibt, wenn der nächste Subtraktionsschritt ohne überziehen ausgeführt werden kann.
    2. Divisionseinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Vorausschau-Schaltung (32) das Freigabesignal abgibt, wenn folgende logische Beziehung erfüllt ist (Fig. 11):
    (S0 V C1) · (C0LA2 + C0) + C0LA2 V C0LA3 =1,
    wobei S = verriegeltes Halbsummenbit der werthöchsten
    Bitposition
    C = verriegeltes Übertragsbit der i-ten Bit- :
    position
    COLA2 = PCqV-K0 , bestimmt bei abgetrenntem Divisorregister (24, Fig. 1), ι COLA3 - PCqVK , bestimmt bei angeschaltetem
    D ivi sorregi ster PCq = nicht verriegeltes Übertragsbit der wert-i
    höchsten Bitposition
    Kq = Übertragsvorausschau für die werthöchste ' j Bitposition.
    j
    ;3. Divisionseinrichtung nach Anspruch 2, dadurch gekenn- j zeichnet, daß zur Übertragsvorausschau KQ für die wert-
    höchste.Bitposition die nicht verriegelten Halbsummen-BC 976 026 M§
    009844/0774
    ORIGINAL INSPECTED
    (PS ) und Übertragsbits (PC.) gruppenweise zusammengefaßt werden, daß für jede dieser Gruppen logische Schaltungen zur Feststellung der Erzeugung (Fig. 8) und der Weiterleitung (Fig. 9) eines Übertrags vorgesehen sind und daß die in einer Bitgruppe erzeugten
    Übertragssignale jeweils durch ein UND-Glied (87 90,
    Fig. 10) mit den übertrags-Weiterleitungssignalen der vorhergehenden Bitgruppen verknüpft werden (Fig. 10).
    4. Divisionseinrichtung nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet, daß der Übertrags-Rettungsaddierer (CSA 20) in jeder Bitposition einen Übertragstrigger (36, Fig. 6) mit zugehöriger Übertragsverriegelung (28) sowie einen Summentrigger (34) mit zugehöriger Verriegelung (26) aufweist und an seinen Ausgängen verriegelte (S
    bzw. C ) und unverriegelte (PS bzw. PC ) Halbsummenn η η
    bzw. Übertragsbits abgibt.
    5. Divisionseinrichtung nach Anspruch 4, dadurch gekennzeichnet, daß der Übertrags-Rettungsaddierer (20) in jeder Bitposition Datentore (25, Fig. 13) und Eingangssteuerungen (126) aufweist, mit denen in Abhängigkeit einer äußeren Datenquelle (Divisor, F-Register 24) Additionen, Links- und Rechtsverschiebungen sowie Komplementbildungen durchgeführt werden.
    6. Divisionseinrichtung nach Anspruch 5, dadurch gekennzeichnet, daß die verriegelten Ausgangssignale des Übertrags-Rettungsaddlerers an seinen Eingang zurückgeführt werden können.
    BC976°26 809844/0774
DE19782816711 1977-04-28 1978-04-18 Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau Withdrawn DE2816711A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/792,078 US4084254A (en) 1977-04-28 1977-04-28 Divider using carry save adder with nonperforming lookahead

Publications (1)

Publication Number Publication Date
DE2816711A1 true DE2816711A1 (de) 1978-11-02

Family

ID=25155727

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19782816711 Withdrawn DE2816711A1 (de) 1977-04-28 1978-04-18 Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau

Country Status (7)

Country Link
US (1) US4084254A (de)
JP (1) JPS53135534A (de)
BR (1) BR7802528A (de)
DE (1) DE2816711A1 (de)
FR (1) FR2389172A1 (de)
GB (1) GB1585595A (de)
IT (1) IT1109988B (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4449196A (en) * 1979-04-27 1984-05-15 Pritchard Eric K Data processing system for multi-precision arithmetic
US4320464A (en) * 1980-05-05 1982-03-16 Control Data Corporation Binary divider with carry-save adders
JPS61166628A (ja) * 1985-01-18 1986-07-28 Hitachi Ltd 除算装置
US5012439A (en) * 1986-12-29 1991-04-30 Hughes Aircraft Company Method and apparatus for performing division
GB2202974A (en) * 1987-03-31 1988-10-05 Plessey Co Plc Digital divider
US5097436A (en) * 1990-01-09 1992-03-17 Digital Equipment Corporation High performance adder using carry predictions
DE69130621T2 (de) * 1990-04-02 1999-09-09 Advanced Micro Devices Inc Schneller digitaler Dividierer
EP0478731A4 (en) * 1990-04-04 1993-09-22 International Business Machines Corporation Early scism alu status determination apparatus
JPH04172526A (ja) * 1990-11-07 1992-06-19 Toshiba Corp 浮動小数点除算器
US6116768A (en) * 1993-11-30 2000-09-12 Texas Instruments Incorporated Three input arithmetic logic unit with barrel rotator
US6219688B1 (en) * 1993-11-30 2001-04-17 Texas Instruments Incorporated Method, apparatus and system for sum of plural absolute differences
US6173305B1 (en) * 1993-11-30 2001-01-09 Texas Instruments Incorporated Division by iteration employing subtraction and conditional source selection of a prior difference or a left shifted remainder
US5619441A (en) * 1994-10-14 1997-04-08 International Business Machines Corporation High speed dynamic binary incrementer
JP2000165444A (ja) * 1998-11-30 2000-06-16 Nec Corp 光パケットスイッチ
US7127483B2 (en) * 2001-12-26 2006-10-24 Hewlett-Packard Development Company, L.P. Method and system of a microprocessor subtraction-division floating point divider
US6591286B1 (en) 2002-01-18 2003-07-08 Neomagic Corp. Pipelined carry-lookahead generation for a fast incrementer
US20090094306A1 (en) * 2007-10-09 2009-04-09 Krishnakalin Gahn W Cordic rotation angle calculation
US8239430B2 (en) * 2007-10-09 2012-08-07 International Business Machines Corporation Accuracy improvement in CORDIC through precomputation of the error bias
US8402078B2 (en) * 2008-02-26 2013-03-19 International Business Machines Corporation Method, system and computer program product for determining required precision in fixed-point divide operations

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3319057A (en) * 1965-06-14 1967-05-09 North American Aviation Inc Parallel division with separate carry storage
US3378677A (en) * 1965-10-04 1968-04-16 Ibm Serial divider
US3621218A (en) * 1967-09-29 1971-11-16 Hitachi Ltd High-speed divider utilizing carry save additions
DE2007353C3 (de) * 1970-02-18 1973-11-29 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt Vierteiliges Addierwerk
JPS5517424B2 (de) * 1974-09-05 1980-05-12

Also Published As

Publication number Publication date
FR2389172A1 (fr) 1978-11-24
JPS5517426B2 (de) 1980-05-12
FR2389172B1 (de) 1981-07-31
IT1109988B (it) 1985-12-23
US4084254A (en) 1978-04-11
IT7821589A0 (it) 1978-03-24
GB1585595A (en) 1981-03-04
BR7802528A (pt) 1979-02-13
JPS53135534A (en) 1978-11-27

Similar Documents

Publication Publication Date Title
DE2816711A1 (de) Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau
DE2616717C2 (de) Digitales Addierwerk
DE1956209C3 (de) Multipliziervorrichtung
DE2658248C2 (de)
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE2814078A1 (de) Addierschaltung mit zeitweiliger zwischenspeicherung des uebertrags
DE1549478B1 (de) Gleitkomma-Rechenwerk zur schnellen Addition oder Subtraktion binaerer Operanden
DE2352686B2 (de) Dezimaler Parallel-Addierer/Substrahierer
DE2221693B2 (de) Schaltungsanordnung zur Ausführung einer Multiplikation zwischen zwei Binärzahlen
DE2034841B2 (de) Matrixanordnung für Digital Rechenanlage
DE3447634C2 (de)
DE2207286A1 (de) Verfahren und Vorrichtung zur rechnerischen Behandlung von Zeitangaben
DE2826773A1 (de) Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern
DE2746355A1 (de) Einrichtung und verfahren zur wahlweisen multiplikation oder division zweier als binaerzahlen vorliegender operanden
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE1524117B1 (de) Datenverarbeitungsanlage mit Umlaufregistern
DE1449564C3 (de) Recheneinrichtung zur Subtraktion mehrerer Operanden oder zu deren Addition durch Verwendung von Komplementärwerten eines der Operanden
DE1499227C3 (de) Schaltungsanordnung für arithmetische und logische Grundoperationen
DE1549461C3 (de)
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE1549485A1 (de) Anordnung zur Division binaerer Operanden
DE19635111A1 (de) Multiplizierer
DE2902488C2 (de)
DE1303692C2 (de) Binaerrechner
DE1524117C (de) Datenverarbeitungsanlage mit Umlaufregistern

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee