DE1549485B2 - Anordnung zur division binaerer operanden ohne rueckstellung des restes - Google Patents

Anordnung zur division binaerer operanden ohne rueckstellung des restes

Info

Publication number
DE1549485B2
DE1549485B2 DE19671549485 DE1549485A DE1549485B2 DE 1549485 B2 DE1549485 B2 DE 1549485B2 DE 19671549485 DE19671549485 DE 19671549485 DE 1549485 A DE1549485 A DE 1549485A DE 1549485 B2 DE1549485 B2 DE 1549485B2
Authority
DE
Germany
Prior art keywords
quotient
remainder
register
dividend
zero
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE19671549485
Other languages
English (en)
Other versions
DE1549485A1 (de
DE1549485C3 (de
Inventor
Harold Eugene Wappingers Fall. N.Y. Frye (V.StA.)
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 DE1549485A1 publication Critical patent/DE1549485A1/de
Publication of DE1549485B2 publication Critical patent/DE1549485B2/de
Application granted granted Critical
Publication of DE1549485C3 publication Critical patent/DE1549485C3/de
Expired 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/5352Non-restoring division not covered by G06F7/5375

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)
  • Executing Machine-Instructions (AREA)

Description

Die Erfindung betrifft eine Anordnung zur Division von binären Operanden mit beliebigen Vorzeichen ohne Rückstellung des Dividendenrestes durch Ausführung iterativer Subtraktionen oder Additionen des Divisors vom bzw. zum Dividenden.
Es ist bekannt, die Division binärer Zahlen durch iterative Subtraktion des Divisors vom positiven Dividenden auszuführen. Für eine Subtraktion, die einen positiven Dividendenrest ergibt, wird eine Eins in die zugeordnete Stelle eines Quotientenregisters eingegeben. Tritt dagegen ein negativer Dividendenrest auf, wird ein Null-Bit in das Quotientenregister gebracht und eine Rückstellung des Dividendenrestes auf den Wert vorgenommen, den er vor Beginn dieser Subtraktion hatte. Nach Vornahme einer Stellenverschiebung zwischen Dividend und Divisor erfolgt die nächste Subtraktionsiteration. Um die Rückstellung des Dividendenrestes, die durch Rückaddition des Divisors erfolgt und daher einen zusätzlichen Rechentakt erfordert, zu vermeiden, wird in bekannten Divisionseinrichtungen auch eine rückstellungsfreie Division verwendet (z. B. »Digitale Rechenanlagen« von A.P.Speiser, Berlin, 1961, S. 209), die darin besteht, daß bei Auftreten eines negativen Restes sofort zur nächsten Stelle weitergegangen wird und die folgende Iteration nicht als Subtraktion, sondern als Addition ausgeführt wird. Der nächste Vorzeichenwechsel des Dividendenrestes bewirkt dann wieder eine Umschaltung auf Subtraktion usw. Auch hier wird für jede Iteration nur dann ein Eins-Bit des Quotienten gebildet, wenn während dieser Iteration kein Vorzeichenwechsel des Dividendenrestes aufgetreten ist.
Die von einer Datenverarbeitungsanlage zu verarbeitenden Binärzahlen sind im allgemeinen vorzeichenbehaftet. Positive Binärzahlen werden in echter Form und negative Binärzahlen durch das Zweierkomplement des jeweiligen Wertes ausgedrückt. Die erste bzw. höchste Stelle der Binärzahlen dient dabei zumeist als Vorzeichenstelle. Die Division negativer Binärzahlen bereitet gewisse Schwierigkeiten. Solange der Dividend positiv ist und lediglich ein negativer Divisor vorliegt, ist der Unterschied zur Verarbeitung positiver Operanden nicht groß. In diesem Falle kehrt sich einfach die Operationsart der auszuführenden Iterationen um, aus Subtraktionen werden Additionen,
3 4
und umgekehrt. Außerdem ist der Quotient, der in F i g. 4 ein Blockschaltbild einer Dividenden-Vorechter Binärdarstellung entwickelt wird, obwohl er zeichensteuerschaltung, wie sie in der Anlage von ein negatives Vorzeichen besitzt, nach beendeter Fig. 1 verwendet wird,
Division zu komplementieren. F i g. 5 ein Blockschaltbild einer Quotienten-Vorist dagegen der Dividend negativ, so kompliziert 5 zeichensteuerschaltung, wie sie in der Anlage von sich die Erzeugung der Quotientenbits erheblich. F i g. 1 verwendet wird,
Während bei der Verarbeitung von positiven Divi- F i g. 6 eine Quotienten-Generatorschaltung, die
denden ein Eins-Bit des Quotienten in einfacher sich zur Verwendung in der Anlage von F i g. 1 eignet,
Weise stets dann gebildet wird, wenn der Dividend F i g. 7 ein Blockschaltbild eines Registers, das in
bzw. Dividendenrest, von dem die jeweilige Iteration io der Anlage von F i g. 1 als gemeinsames Register für
ausgeht, und das Resultat dieser Iteration (neuer einen Teil des Dividendenrestes und für den Quo-
Dividendenrest) gleiche Vorzeichen haben, gilt diese tienten dient,
Regel bei Verwendung negativer Dividenden nicht F i g. 8 ein Blockschaltbild der Steuerschaltung zur mehr ohne weiteres. Eine Reduktion eines negativen Divisorkomplementierung für die in der Anlage von Dividenden zu Null ergibt nämlich die Anzeige eines 15 F i g. 1 enthaltene Divisionsanordnung,
positiven Restes, wodurch wegen des Vorzeichen- F i g. 9 ein Blockschaltbild eines Ubertragsgeneraunterschiedes bei Anwendung der vorgenannten Regel tors, der entsprechend den Prinzipien vorliegender keine Quotienten-Eins gebildet wird, obwohl dies Erfindung in der Anlage von F i g. 1 verwendet wird, eigentlich geschehen müßte, da die betreffende Itera- Fig. 10 ein Blockschaltbild einer Null-Rest-Abtion erfolgreich war. Aus diesem Grunde wurde bis- 20 tastschaltung, die gemäß der Erfindung in der in der her die Verwendung der negativen Darstellung Anlage von Fig. 1 vorgesehenen Anordnung zur (Zweierkomplement) bei der Ausführung von Divi- Ausführung von Divisionen benutzt wird, und
sionen vermieden. Statt dessen werden bei den be- Fig. 11 ein Blockschaltbild einer Null-Rest-Verkannten Divisionseinrichtungen negative Dividenden riegelungsschaltung, die gemeinsam mit der Abtastunter Registrierung ihres Vorzeichens in die echte 25 schaltung nach Fig. 10 verwendet wird.
Binärdarstellung umgewandelt, bevor mit einer Divi- Die vorliegende Erfindung macht von der bekannsion begonnen wird. Da hierzu eine Bildung des ten Methode der rückstellungsfreien binären Division Zweierkomplementes notwendig ist, genügt es nicht, Gebrauch. Sie sieht die Verwendung negativer Dividen Dividenden einfach zu invertieren. Vielmehr muß denden in komplementärer Form vor, ohne daß eine zur invertierten Form, die das Eins-Komplement des 30 Notwendigkeit zur Umwandlung der Dividenden in ursprünglichen Wertes darstellt, noch ein Endüber- ihre echte Form vor Beginn der Divisionsoperation trag addiert werden. Zu diesem Zweck ist die Durch- notwendig ist. Die Einrichtungen, die zur Ausführung führung eines vollständigen Additionszyklusses er- bekannter Divisionsschritte benutzt werden, sind in forderlich. Die Umwandlung negativer Dividenden in der vorliegenden Beschreibung nur allgemein dardie verarbeitbare Form stellt daher einen erheblichen 35 gestellt, um den Rahmen anzugeben, in dem die ErZeitverlust dar, der sich besonders dann auswirkt, findung verwendbar ist. Es sind zahlreiche Typen von wenn innerhalb eines Programms zahlreiche Divi- Computern bekannt, die sich zur Ausführung binärer sionen auszuführen sind. Divisionen durch aufeinanderfolgende Additions-Aufgabe vorliegender Erfindung ist, diesen Nach- Iterationen von Komplementwerten eignen. Jede teil zu vermeiden und eine Anordnung anzugeben, 40 dieser Computertypen ist geeignet, als Rahmenanorddie ohne großen Mehraufwand die Verarbeitung von nung bei der Anwendung vorliegender Erfindung zu in negativer Darstellung vorliegenden binären Divi- dienen. Die nachfolgende Beschreibung beschränkt denden gestattet. Gemäß der Erfindung wird dies sich daher auf eine detaillierte Erläuterung der- der dadurch erreicht, daß negative Dividenden in der Erfindung zugrunde liegenden Theorie und von Schalvorliegenden Form, also ohne vorherige Komplemen- 45 tungsbeispielen für die Erzeugung der besonderen tierung, dem die Iterationen ausführenden Rechen- Steueroperationen, die benötigt werden, wenn die Erwerk zugeleitet werden, daß eine Null-Rest-Abtast- findung in einem bekannten binären Dividierwerk schaltung vorgesehen ist, die beim Vorhandensein Verwendung findet,
von Nullen in allen Stellen des sich bei einer Iteration
ergebenden Dividendenrestes ein Steuersignal an eine 50 Allgemeine Grundlagen
Quotientenkorrekturschaltung abgibt, die daraufhin
am Ende der Division eine Quotientenerhöhung um Zur Erleichterung des Verständnisses der Erfin-
Eins auslöst, und daß diese Quotientenkorrektur bei dung erscheint es zweckmäßig, am Beginn der Er-
Vorliegen eines positiven Dividenden durch eine Vor- läuterung zunächst kurz auf die Grundprinzipien der
zeichensteuerschaltung verhindert wird. 55 binären Arithmetik einzugehen. In der Tabelle 1 ist
Verschiedene vorteilhafte Ausgestaltungen der Er- die Addition zweier binärer Einsen mit dem Resultat
findung sind aus den Ansprüchen zu ersehen. Nach- einer binären Zwei dargestellt, wobei die Zwei als
folgend ist ein Ausführungsbeispiel der Erfindung an eine Null in der ersten Binärstelle und eine Eins in
Hand von Zeichnungen dargestellt. Es zeigt der zweiten Binärstelle ausgedrückt ist. Beschränkt
F i g. 1 ein vereinfachtes Blockschaltbild einer 60 auf die niedrigste Binärstelle kann dies auch als eine
Datenverarbeitungsanlage, in welcher die Erfindung Null mit einem Übertrag angesehen werden,
verwendet wird,
F i g. 2 eine schematische Darstellung zur Erläute- Tabelle 1
rung der im Text in Form von Tabellen angeführten
Rechenbeispiele, 65 1 = 00001
F i g. 3 ein Blockschaltbild einer Divisor-Vor- +1 = 00001
zeichensteuerschaltung, wie sie in der Anlage von
Fig. 1 verwendet wird, 2 = 00010
Zur Ausführung von Subtraktionen, wie sie bei Divisionen verwendet werden, kann die komplementäre Addition gemäß Tabelle 2 dienen. Zuerst wird das Zweierkomplement des Subtrahenden gebildet, das daraufhin zum Minuenden addiert wird, um die Differenz zu erzeugen. Das Zweierkomplement wird durch Invertierung des Subtrahenden (Bildung des Einserkomplements) und Addition einer Eins, genannt Endübertrag, in die niedrigste Binärstelle erhalten. Dies ist in Tabelle 3 dargestellt. Die Addition des so umgeformten Subtrahenden zum Minuenden zeigt die Tabelle 4.
Tabelle 2
9 = 01001
-6= -00110
00010
Tabelle 3
1'Komplement 6 = 11001
Endübertrag = 1
2'Komplement 6 = 11010
stellung / von F i g. 2. Hierzu wird das Resultat zuerst invertiert und dann ein Endübertrag zu seiner niedrigsten Stelle hinzugefügt. Dies entspricht einer Bildung des Ein-Komplements mit darauffolgender Umwertung in das Zweierkomplement.
Tabelle 6
-9 = 10111
+ 6 = 00110
— 3 = 11101 = 2' Komplement von 3,
fehlender Übertrag zeigt
negatives Resultat an.
Tabelle 7
00010 = invert, von -3
1 = Endübertrag
00011 = 3
Wenn schließlich eine negative Zahl zu einer größeren positiven Zahl zu addieren ist, ergibt sich ein positives Resultat gemäß Tabelle und der Illustration bei d in F i g. 2.
Tabelle 4
01001 = 9
-f 11010 = 2' Komplement von 6
COOOIl = 3
Übertrag zeigt positives
Resultat an.
Tabelle 8
-6 = 11010
+9 = 01001
+ 3 = COOOIl
Übertrag zeigt positives Resultat an.
. Aus Tabelle 4 ist ersichtlich, daß das Resultat (+3) größer als Null ist. Dies wird durch die Anwesenheit eines Übertragers in der höchsten Wertstelle des Addierwerkes angezeigt. Das gleiche Beispiel ist bei a in F i g. 2 dargestellt. Wenn andererseits 9 von 6 subtrahiert worden wäre, hätte sich ein negatives Resultat ergeben, das durch das Fehlen eines Übertrages in der höchsten Stelle gekennzeichnet ist, wie in Tabelle 5 und bei c von F i g. 2 angegeben.
Tabelle 5
6 = 00110
-9 = 10111
-3 = 11101
fehlender Übertrag zeigt
negatives Resultat an.
Es ist auch möglich, eine negative Zahl durch Addition einer positiven Zahl zu reduzieren, wie es die Tabelle 6 und die Darstellung bei / in F i g. 2 zeigen. Die Addition von 6 zu —9 ergibt —3, wobei der Umstand, daß es sich um ein negatives Resultat handelt, durch das Fehlen eines Übertrages in der höchsten Rechenwerkstelle angezeigt wird. Um die Drei in echter Form zu erhalten, wie es in bestimmten Fällen erwünscht ist, würde eine Komplementierung notwendig sein gemäß Tabelle 7 und der Dar-Die Prinzipien, die der vorliegenden Erfindung zugründe liegen, sind besonders deutlich aus den Tabellen 9 und 10 zu ersehen. Die Tabelle 10 erläutert den Fall, daß eine 9 von einer 9 subtrahiert wird (eine positive Zahl wird von sich selbst subtrahiert). Das aus lauter Nullen bestehende Resultat ist von einem Übertrag begleitet, der ein positives Resultat anzeigt, entsprechend den vorausgehenden Tabellen 4 und 8. Dieses Beispiel ist bei b von Fig. 2 angegeben. Wenn andererseits eine negative Zahl zu einer gleichlautenden positiven Zahl addiert wird, tritt das gleiche Resultat auf, wie es die Tabelle 10 und die Illustration e von F i g. 2 zeigt. Es ergibt sich hieraus, daß bei einer Reduktion eines Dividenden von Neun um einen Divisorwert Neun das Resultat Null erhalten wird, worin einübertrag anzeigt, daß die Null positiv ist. Ebenso ergibt sich, wenn ein Dividend von —9 um einen Divisorwert von +9 reduziert wird, ein positives Null-Resultat. Ein positives Resultat in einer Divisionsoperation, in welcher der Dividend negativ ist, stellt eine Überziehung oder eine erfolglose Subtraktion dar. Wenn eine derartige erfolglose Subtraktion angezeigt wird, hat die Erzeugung eines Quotientenbits zu unterbleiben. Das Vorhandensein eines Übertragers bewirkt somit die Anzeige dafür, daß das Resultat von Tabelle 10 eine Überziehung, also eine erfolglose Iteration ist, so daß kein Quotientenbit erzeugt wird. Praktisch ist es jedoch so, daß bei der in der Tabelle 10 dargestellten Reduktion zu Null ein Eins-Quotientenbit auftreten sollte. Auf
Grund dieser Diskrepanz ist es erklärlich, daß die Division mit einem komplementären Dividenden bisher keine befriedigende apparative Lösung gefunden hat.
Tabelle 9
9 = 01001
-9 = 10111
O = COOOOO
Übertrag zeigt positives Resultat an.
Tabelle 10
-9 = 10111
+9 = 01001
■■ c ooooo
Übertrag zeigt positives Resultat an.
Zur weiteren Erläuterung der Unterschiede zwischen positiven und negativen Dividenden werden nachfolgend verschiedene binäre Divisionsbeispiele an Hand der Tabellen 11 bis 14 erläutert. Dem Verständnis dieser Tabellen sind verschiedene Regeln vorausgesetzt.
Eine erste allgemeine Regel besteht darin, daß bei der nicht rückspeichernden binären Division der Quotient in echter Form erzeugt wird. Wenn daher der Quotient positiv ist, weil sowohl der Dividend als auch der Divisor das gleiche Vorzeichen aufweisen, handelt es sich um eine korrekte Quotientenableitung, so daß eine Komplementierung vor der Rückführung zum Speicher oder einer anderweitigen Verwendung nicht notwendig ist. Wenn andererseits die Vorzeichen von Divisor und Dividend unterschiedlich sind, definieren die Regeln der binären Division, daß der Quotient negativ ist, so daß er aus der sich während der Divisionsoperation ergebenden Form umgewertet werden muß in eine komplementäre Darstellung, bevor er abgespeichert oder weiterverwendet wird.
Eine zweite Regel besteht darin, daß, wenn immer Dividend und Divisor die gleichen Vorzeichen haben, der Divisor zu komplementieren ist, bevor die erste Divisionsiteration ausgeführt werden kann. Dies folgt aus der vorausgehenden Betrachtung der binären Arithmetik und dem Umstand, daß die Subtraktionsiterationen einer Division als komplementäre Additionen ausgeführt werden sollen. Wenn der Dividend negativ ist, muß ein echter, positiver Divise ihm zuaddiert werden, um eine Reduzierung zu Null zu erreichen. Wenn dagegen der Divisor ebenfalls negativ ist, würde die Additionsoperation bewirken, daß der Dividendenrest im negativen Bereich weiter anwachsen würde, anstatt gegen Null abzunehmen. Wenn der Dividend positiv ist, muß eine negative Zahl addiert werden oder, in einer komplementären Addition, eine positive Zahl subtrahiert werden. Wenn der Divisor negativ und der Dividend positiv ist, dann ist der Divisor direkt zum Dividienden zu addieren, um eine Reduktion zu Null zu erhalten. Ebenso sind beide Werte direkt zu addieren, wenn der Divisor positiv und der Dividend negativ ist, damit ein Rest erhalten wird, der näher an Null liegt als der Dividend.
Eine dritte Regel besteht darin, daß stets dann, wenn der Divisor negativ ist und die Additionsoperation in einer gegebenen Iteration einen Übertrag erbracht hat, der Divisor weiterhin im negativen Sinne zu verwenden ist. Ebenso ist bei einem positiven Divisor und dem Fehlen eines Übertrages der Divisor im positiven Sinne weiterzuverwenden. Wenn jedoch
ίο andererseits der Divisor positiv ist und auch ein Übertrag vorliegt oder wenn der Divisor negativ ist und ein Übertrag fehlt, dann ist der Divisor zu komplementieren, bevor die nächste Iteration begonnen wird. Diese Regel resultiert aus dem Umstand, daß bei einer nicht rückspeichernden binären Division zu dem Zeitpunkt, wenn ein Überziehen auftritt, statt einer Rückspeicherung des Restes vor dessen Verschiebung für die nächste Iteration der Rest stellenverschoben wird und der halbe Divisor im entgegengesetzten Sinne zurückaddiert wird, wodurch das gleiche Ergebnis erreicht wird, als wenn zuerst der gesamte Divisor zurückaddiert und daraufhin die Hälfte des Divisors wieder subtrahiert wird. Wenn ein Überziehen bei einem vollen Reduktionszyklus auftritt, dann war die Reduktion des Restes zu groß, so daß dieser die Nullinie überschritten hat. Dies ist der gleiche Fall, wie wenn ein zu großer Betrag von einem positiven Wert subtrahiert wird, so daß sich ein negatives Resultat ergibt. In ähnlicher Weise wird
30. in einem kombinierten Korrektur- und Reduktionszyklus, wie er als der auf eine Überziehung folgende Zyklus auftreten kann, in welchem die Korrektur für eine erste Iteration kombiniert wird mit der Reduzierung des Restes für eine zweite Iteration (nicht rückspeichernde Division), die kombinierte Rückspeicherung und Reduzierung durch eine Rückaddition eines Wertes zu dem auf der falschen Seite von Null befindlichen Rest erzielt, wodurch der Rest zurück auf die richtige Seite von Null gebracht wird, so daß der nächste Reduktionszyklus in der entgegengesetzten Richtung, also wiederum gegen Null, ablaufen muß. Wenn z.B. ein positiver Dividend um einen zu großen Wert reduziert worden ist, wodurch sich ein negativer Rest in einem ersten Zyklus ergeben hat, wird dieser in einem zweiten Zyklus zurückgespeichert und reduziert durch Zuführung eines positiven Wertes. Hierdurch wird der Rest in einen positiven Wert überführt, der kleiner ist als der ursprüngliche positive Dividend vor Beginn des ersten Zyklus. Der dritte Zyklus erfordert daher, daß ein negativer Wert dem dritten Rest zugeführt wird, um eine weitere Annäherung an Null zu erzielen. Die Polarität des Divisors muß somit nach jedem erfolgreichen kombinierten Korrektur- und Reduktionszyklus umgekehrt werden.
Eine vierte Regel besagt, daß stets ein Quotientenbit zu erzeugen ist, wenn eine erfolgreiche Reduktion gegen Null stattfindet. Die Reduktion ist erfolgreich, wenn der Rest das gleiche Vorzeichen behält wie der Dividend. Mit anderen Worten, ist bei Beginn einer Division der Dividend positiv, so ist jeder Zyklus, dessen Resultat einen positiven Rest ergibt, eine erfolgreiche Reduktion. In gleicher Weise wird ein negativer Dividend erfolgreich gegen Null reduziert, solange ein negativer Rest vorliegt. Ein Quotientenbit wird für jede dieser Reduktionen erhalten, wenn der jeweilige Rest die gleiche Polarität wie der Dividend aufweist. Aus den Tabellen 1 bis 10 ist ersichtlich, daß, beginnend mit einem negativen Dividenden, die
Abwesenheit eines Übertrages in der höchsten Rechenwerkstelle in einem Zyklus anzeigt, daß der Rest negativ ist und daher ein Quotientenbit gebildet werden sollte. Auf der anderen Seite, wenn der Dividend positiv ist, zeigt ein positiver Rest an, daß ein Quotientenbit gebildet werden sollte; dies ist durch die Anwesenheit eines Übertrages in der höchsten Wertsteile des Addierwerkes bestimmt. Ein Quotientenbit kann daher durch Bildung der logischen UND-Verknüpfung des Dividenden-Vorzeichens und eines Übertrages in dem Falle erhalten werden, wo das negative Vorzeichen durch eine binäre Eins und das positive Vorzeichen durch eine binäre Null dargestellt werden. Dieser Fall findet in den nachfolgend erläuterten Beispielen Anwendung.
Eine fünfte Regel besteht darin, daß der nach der letzten Divisionsiteration verbliebene Rest korrigiert werden muß, wenn die letzte Divisionsiteration zu einer Überziehung geführt hat oder eine vorausgehende Überziehung: nicht korrigieren konnte. Da eine Überziehung vorliegt, befindet sich der Rest nicht in echter Form, es sei denn, er wurde auf einen Wert zurückgeführt, den er nach der letzten erfolgreichen Reduktion aufgewiesen hat. Dies wird erreicht, indem auf eine einfache Überziehung eine Komplementierung des Divisors und eine Rückspeicherung erfolgt. Wenn eine versuchte Rückspeicherung nicht zum Erfolg geführt hat, geschieht es durch die Ausführung eines Korrekturzyklus, der identisch ist mit dem letzten Divisionszyklus mit der Ausnahme, daß der Rest nicht vor Ausführung dieses Zyklus verschoben wird.
Eine sechste Regel gilt für Fälle, in denen der Dividend eine größere Stellenzahl aufweist, als Quotientenstellen vorgesehen sind. In den Tabellen 11 bis 14 wird z. B. ein Dividend von zehn Bits durch einen Divisor von fünf Bits dividiert, um einen Quotienten von fünf Bits zu erhalten. Wenn alle Datenbits des Dividenden Einsen sind (oder das Komplement davon bei einer negativen Zahl) und der Divisor eine sehr kleine Zahl ist (beispielsweise ein Dezimalwert von 1,2 oder 3), dann kann der Quotient nicht nur in fünf Binärstellen ausgedrückt werden. Der maximale Dezimalwert für einen Dividenden, der in einem sinnvollen fünfstelligen Quotienten resultieren kann, wird durch einen ersten Subtraktionszyklus ermittelt, in welchem der Quotient durch Bestimmung eines einzelnen Quotientenbits geprüft wird. Dieses Quotientenbit wird nicht im endgültigen Quotienten verwendet, da es stets Null ist, ausgenommen in den Fällen, wo es nicht möglich ist, die verlangte Division auszuführen, da der Dividend in bezug auf den Divisor zu groß ist, um den Quotienten durch fünf Binärstellen ausdrücken zu können. Der erste Zyklus ist daher stets ein Testzyklus, dem eine Verschiebung des Restes folgt, wonach die ausführbaren Divisionsiterationen begonnen werden können. In manchen Fällen soll auch noch die zweite Divisionsiteration ein Null-Quotientenbit ergeben, wenn der Quotient sinnvoll sein soll. Dieser Spezialfall spielt jedoch für das Wesen der vorliegenden Erfindung keine Rolle und wird daher nachfolgend nicht weiter erläutert.
Die Tabelle 11 zeigt eine Division eines positiven Dividenden durch einen positiven Divisor. Um das Problem des Null-Restes zu erläuertn, welches zu einem fehlerhaften Quotienten führen kann, wurden Binärwerte entsprechend den Dezimalwerten 24 für den Dividenden und drei für den Divisor gewählt, die einen Null-Rest im Verlaufe der Divisionsoperation liefern. Unter Rückbeziehung auf die vorausgehend erläuterten Regeln muß, da sowohl der Dividend als auch der Divisor positiv sind, der Divisor komplementiert werden, bevor der erste Zyklus beginnt. Der Divisor liegt daher zur Zeit des Startzyklus 5 in negativer Form vor. Die jeweilige Zykluszahl 0 bis 5 wird durch den Stand eines Verschiebezählers oder einer anderen Iterationssteuerschaltung ίο während des laufenden Zyklus angezeigt.
Tabelle 11
+24-=-+3 = +8
15
3o 2 35 1 40 O 45 R Divisor ο B BX
R, Q 00000 11000
2O 5 11101
O 11101 11000
11011 1000 *
4
25
00011
O 11110 10000
3 + 11101 0000 ·
00011
1 00000 00001
00000 0001 ·
11101
O 11101 00010
+ 11010 0010*
00011
O 11101 00100
+ O 11010 0100*
00011
_11101 01000
1 11101 01000
00011
00000 01000
Es sind geeignete Steuermittel vorgesehen, um den Verschiebezähler bzw. die anderen Iterationssteuerschaltungen entweder jeweils am Ende eines Zyklus oder am Anfang des nächsten Zyklus um Eins zu dekrementieren, um die Zahl der notwendigen Divisionsschritte zu erfassen und zu bestimmen, wenn die Divisionsoperation beendet ist. Grundsätzlich ist ein Zyklus erforderlich für jede Binärstelle des Divisors.
Wenn der Dividend mehr Stellen aufweist als der zugelassene Quotient, ist ein zusätzlicher Zyklus erforderlich entsprechend der obigen Regel 6, um die relative Größe von Dividend und Divisor zu prüfen und sicherzustellen, daß der Quotient durch die vorgesehene Binärstellenzahl ausgedrückt werden kann. Im vorliegenden Fall ist der Zyklus 5 ein Testzyklus, und da sein Resultat keinen Übertrag ergibt, obwohl ein positiver Dividend vorliegt, wird kein Quotienten-
bit erzeugt. Der Test verläuft daher erfolgreich, und die Divisionsoperation kann beginnen. Das Führen eines Übertrages im Zyklus 5 zeigt an, daß eine Überziehung vorliegt. Der Zyklus 4 umfaßt daher einen kombinierten Korrektur- und Reduktionszyklus. Der Divisor wird komplementiert, um ihn noch einmal in seine echte Form zurückzuführen, und eine zweite Addition wird ausgeführt. In diesem Falle tritt kein Übertrag auf, so daß die Überziehung durch die nachfolgende Reduktion nicht vollständig korrigiert worden ist. In anderen Worten, am Ende von Zyklus 4 Hegt noch immer ein negativer Rest vor. Auf Grund dieses Umstandes muß der Divisor noch einmal im gleichen Sinne verarbeitet werden, um zu versuchen, den Rest in den positiven Bereich zurückzuführen. Der Divisor wird daher zwischen dem Zyklus 4 und dem Zyklus 3 nicht invertiert. Im Zyklus 3 ist jedoch die kombinierte Korrektur und Reduktion erfolgreich, wie durch das positive Resultat, das der Übertrag in der höchsten Stelle des Addierwerkes bezeichnet, angezeigt wird. Hieraus geht hervor, daß eine Quotientenziffer zu erzeugen und die Richtung der Operation umzukehren ist, so daß der Divisor vor seiner Verwendung im Zyklus 2 zu komplementieren ist. Der Zyklus 3 hat einen Rest ergeben, der aus lauter Nullen besteht. Dies ist aus Tabelle 11 ersichtlich. Zur Aufnahme des Dividendenrestes dienen die Register B und BX, wie nachfolgend noch erläutert wird. Der niedrigstellige Teil des Registers BX dient jeweils zur Aufnahme der erzeugten Quotientenbits. Am Ende von Zyklus 3 umfaßt der Rest alle Stellen des Registers B und die drei höchsten Stellen des Registers BX. Da diese Stellen alle Null sind, ergibt sich, daß die Divisionsoperation beendet ist. Es wurde jedoch gefunden, daß der Einrichtungsaufwand, der zur Unterscheidung zwischen den Dividendenbits und den Quotientenbits im gleichen Register BX relativ aufwendig ist, wenn der Lauter-Nullen-Zustand zur Anzeige des Divisionsendes verwendet werden soll. Es wird daher vorgezogen, die Divisionsoperation weiterzuführen. Durch Vornahme einer Korrektur des Restes in Übereinstimmung mit der oben angegebenen fünften Regel wird das richtige Resultat erhalten. Der Grund hierfür besteht darin, daß fortgesetzte Versuche einer Reduzierung und Rückspeicherung des Dividenden bewirken, daß der Rest erst negativ wird als Resultat einer Überziehung, aber mit jedem nachfolgenden Zyklus wird der halbe Divisor zurückaddiert, so daß eine einzelne Rückspeicherung des Restes am Ende der Divisionsoperation einen korrekten Rest von Null liefert, wie es durch den Rest-Korrektur-Zyklus R im unteren Teil der Tabelle 11 angegeben ist. Durch Vergleich des Zyklus 0 mit dem Zyklus R ist ersichtlich, daß der Zyklus 0 durch den Zyklus R wiederholt wird mit der Ausnahme, daß keine Verschiebung des Restes am Beginn des Korrekturyzklus stattfindet. Hierdurch wird der Rest in jedem Falle wieder zu Null, wenn er am Ende des Zyklus 0 lauter Nullen enthalten hat. Aber auch in einem anderen Beispiel, in dem der Rest nicht Null ist, wird gemäß der fünften Regel durch Ausführen eines Rest-Korrektur-Zyklus der richtige Rest erhalten. Stets wenn ein Quotientenbit im Zyklus 0 erfolgreich erzeugt worden ist, wird keine Korrektur des Restes benötigt, es sei denn, der Dividend ist negativ, und der Rest sollte Null sein. In diesem Falle wird das den Rest enthaltende Register in einfacher Weise zu Null zurückgestellt.
Die Tabelle 12 zeigt ein ähnliches Beispiel, bei dem jedoch der Dividend negativ ist. Durch Vergleich der Tabelle 12 mit der Tabelle 11 ist ersichtlich, daß der Operationsablauf identisch ist mit der Ausnahme, daß ein Quotient-Komplementierungszyklus nach dem Rest-Korrektur-Zyklus ausgeführt wird, um den Quotienten in die Zweierkomplement-Form zu überführen, in welcher er korrekt einem negativen Wert gleicht. Dies ist notwendig, da der Quotient wegen ίο der Verschiedenheit des Vorzeichens von Dividend und Divisor als negativ angezeigt wird.
Tabelle 12
+ 24-*-3 =
-8
Divisor C B BX
5 00000
11101
11000
4 + O 11101
11011
00011
11000
1000*
3 + O 11110
11101
00011
10000
0000*
1 00000
00000
00001
0001*
2 O 11101
O 11101
11010
00010
0010*
1 + 00011
11101 00100
O 11010 0100*
O + 1 00011
11101 01000
11101 01000
R + 00011
00000 01000
Q Komplement 00000 10111
R, Q 00000 1
11000
In Tabelle 13 ist ein Divisionsbeispiel mit einem negativen Dividenden und einem positiven Divisor angegeben. Es ist zu bemerken, daß die Register B und BX den Dividenden in der Form des Zweier- ; komplementes enthalten, also als negative ganze Zahl. Der Divisor ist in echter Form ausgedrückt und stellt somit eine positive ganze Zahl dar. Da die Vorzeichen ungleich sind, besteht keine Notwendigkeit, den Divisor vor Beginn der Divisionsoperation zu komplementieren. Die ersten zwei Zyklen (Zyklen 5 und 4) von Tabelle 13 sind das Komplement der Operationen in den Zyklen 5 und 4 von Tabelle 12
mit der Ausnahme, daß das Quotientenbit im komplementären Sinne erzeugt wird, so daß in beiden Beispielen im Zyklus 4 das gleiche Quotientenbit, nämlich Null, erhalten wird.
Im Zyklus 3 von Tabelle 13, die einen negativen Dividenden vorsieht, tritt ein aus lauter Nullen bestehendes Resultat im positiven Sinne auf, wodurch angezeigt wird, daß eine Überziehung vorliegt, so daß in diesem Zyklus kein Quotientenbit gewonnen wird. Wendung des Registers B als Akkumulatorregister vor, worin der hochstellige Teil des Dividenden und des Dividendenrestes gespeichert werden. Diesem Register ist ein weiteres Register BZ zugeordnet, das zur Aufnahme des niedrigstelligen Teiles des Dividenden und des gebildeten Quotienten dient. Ein Null-Detektor prüft den Inhalt des Registers B auf das Vorliegen von Nullen in allen bedeutsamen Stellen des hochstelligen Teiles des Dividenden bzw.
Da jedoch der Quotient in echter Form entwickelt 10 Restes. Diese Prüfung bezieht sich jedoch nur auf wird, sollte das in diesem Zyklus erzeugte Quotien- den hochstelligen Teil, der niedrigstellige Teil des tenbit eine Eins sein. Hierin zeigt sich das Problem, Dividenden bzw. Restes wird hiervon nicht erfaßt, mit dem sich die vorliegende Erfindung im wesent- Eine Anzeige für einen Lauter-Nullen-Zustand wird liehen befaßt. Die Divisionsoperation wird durch die in einer Null-Rest-Verriegelungsschaltung festgehal-Zyklen 2, 1 und 0 fortgesetzt. Während dieser Zyklen 15 ten. Dies geschieht beispielsweise am Ende des Zywird die Anwesenheit des aus lauter Nullen bestehen- klus 3 von Tabelle 13. In den nachfolgenden Zyden Restes, der zur Erzeugung des fehlerhaften Bits klen 2 bis 0 wird der hochstellige Teil des Registers in Zyklus 3 geführt hat, ignoriert. Im Zyklus 3 wird BX darauf überwacht, ob ein von Null abweichender Wert des Restes abgefühlt und dabei festgestellt, des Bit vom Register BX in das Register B überdaß innerhalb des zu testenden Bereiches alle Stellen ao tragen wird. Wenn dies nicht der Fall ist, dann war
Nullen aufweisen.
Tabelle 13
-24-*- +3 = -i
Divisor C B BX
1 Hill 01000
5 + 00011
1 00010 01000
00100 1000*
4 11101
1 00001 100000
00011 0001*
3 11101
1 00000 00000
00000 0000*
2 11101
0 11101 00001
11010 0001*
1 + 00011
0 11101 00011
0 11010 0011*
0 + 00011 00111
11101 00111
1 11101
R + 00011
00000 00111
PZR Korrektur 1
00000 01000
Q Komplement 10111
R, Q 1
Wie nachfolgend im Detail beschrieben wird, sieht das Ausführungsbeispiel von F i g. 1 die Verder im Zyklus 3 abgefühlte Null-Rest in der Tat der vollständige Null-Rest (Tabelle 13), so daß das Vorhandensein des Spezialfalles eines negativen Dividenden mit einem aus lauter Nullen bestehenden Rest wahrgenommen wird. Entsprechend einem wesentlichen Merkmal der Erfindung kann der Quotient, dem ein Null-Rest folgt, in einfacher Weise dadurch korrigiert werden, daß eine Eins in die niedrigste Bitstelle addiert wird. Diese Eins bewirkt einen Übertrag für aufeinanderfolgende Einsen, indem jede Eins in den Null-Zustand geschaltet wird und dabei einen Übertrag zur nächsten Stelle auslöst, der wiederum die Eins dieser Stelle in den Null-Zustand schaltet usw., bis ein Übertrag in die eine Null enthaltende Bitstelle des Quotienten gelangt, die zu der Zeit, als ein Lauter-Nullen-Rest aufgetreten ist, ein falsches Quotientenbit erhalten hat. Da ein aus lauter Nullen bestehender Rest wegen der Anwesenheit eines Übertrages in seiner höchsten Stelle als positive Zahl betrachtet wird, faßt die Divisionseinrichtung ein solches Resultat als eine erfolglose Rückspeicherung auf und leitet daher einen neuen Versuch ein, den Rest durch Addition eines negativen Divisor negativ zu machen. Dies führt zu einem negativen Rest, der dem Divisor entspricht. Nachfolgende Reduktionen können das Vorzeichen nicht ändern. Das Resultat ist daher stets negativ und ergibt jeweils eine Quotienten-Eins in den übrigen Zyklen, nachdem das Lauter-Nullen-Resultat erzielt ist.
Im Beispiel von Tabelle 13 ist der Quotient als eine negative ganze Zahl bezeichnet, da der Dividend und der Divisor ungleiche Vorzeichen haben. Obgleich der Dividend negativ ist und daher die gesamte Divisionsoperation in komplementärer Form abläuft, wird der Quotient automatisch in echter Form erzeugt, entsprechend der vorausgehend erwähnten fünften Regel. Es ist daher ein Quotienten-Komplementierungs-Zyklus notwendig, um den Quotienten in die richtige Form zu bringen in Überein-Stimmung mit seinem Vorzeichen. Die Quotienten-Komplementierungs- und Korrekturfunktionen können kombiniert werden, wie nachfolgend noch beschrieben ist.
Die Tabelle 14 zeigt den Fall, daß sowohl der Dividend als auch der Divisor negativ sind. Dieser Fall entspricht weitgehend dem Beispiel von Tabelle 13, daß ein positiver Quotient wegen der Vorzeichengleichheit von Divisor und Dividend erzeugt wird, so
daß keine Quotientenkomplementierung notwendig ist, bevor der Quotient abgespeichert oder weiterverwendet wird. In der Tabelle 14 wird im Zyklus 3 der gleiche mögliche Null-Rest erzeugt, und die übrigen Iterationen sind gleich den entsprechenden Iterationen von Tabelle 13.
Tabelle 14
-24-f--3=+8
Divisor C B BX
5 + Hill
00011
01000
4 1 00010
00100
11101
01000
1000*
3 1 00001
00011
11101
10000
0000 ·
1 00000
00000
00000
0000*
2 0 11101
0 11101
11010
00001
0001*
1 + 0 00011
1 11101 00011
11010 0011*
O + 00011
R 11101
11101
00011
00111
00111
PZR Korrektur 00000 00111
1
00000 00000
Aus den Beispielen von den Tabellen 11 bis 14 und aus der vorausgehenden Erläuterung ist ersichtlich, daß die Prinzipien der Erfindung bei einer beliebigen regulären binären Divisionsoperation angewendet werden können, unabhängig davon, ob es sich um eine rückspeichernde oder nicht rückspeichernde Division handelt. Bei nicht rückspeichernden Divisionen wird lediglich ein Zyklus stets dann eingespart, wenn ein Überziehen erfolgt, indem die nachfolgende Reduktion mit dem erforderlichen Rückspeicher-Zyklus kombiniert wird. Dies hat keinen Zusammenhang mit dem Umstand, daß ein Null-Rest im Falle eines negativen Dividenden ein falsches Quotientenbit erzeugt, mit dessen Richtigstellung sich die vorliegende Erfindung befaßt.
Die Erfindung kann daher bei beliebigen Divisionseinrichtungen angewendet werden. Dies geschieht dadurch, daß Mittel vorgesehen werden, die den jeweiligen Dividendenrest auf das Vorhandensein von lauter Nullen abtasten. Außerdem sind Mittel erforderlich, um den Quotienten bei der Beendigung der Divisionsoperation in dem Falle zu korrigieren, wenn ein Lauter-Nullen-Rest ermittelt worden ist und ein negativer Dividend vorliegt. Der Zyklus, in welchem ein aus lauter Nullen bestehender Rest auftritt, bleibt ohne Einfluß durch den Umstand, daß bei der angewendeten Quotientenkorrektur automatisch ein Endübertrag durch die niedrigen, eine Eins enthaltenden Quotientenstellen läuft und diese in Nullen umwandelt, wodurch ein Übertrag von der letzten der fehlerhaften Eins-Stellen in eine fehlerhafte Null-Stelle läuft, wird diese Null in eine Eins korrigiert.
Obgleich sich die Beispiele von den Tabellen 11 bis 14 auf die Situation beziehen, wo der Quotient in den niedrigen Bitstellen eines Registers gebildet wird, aus dem der Dividend bzw. der Dividendenrest entnommen wird, ist die Erfindung hierauf nicht beschränkt. Sie ist natürlich in gleichem Maße anwendbar, wenn der Quotient iir einem separaten Register gebildet wird.
Detaillierte Beschreibung
In F i g. 1 ist der Hauptdatenfluß einer Datenverarbeitungsanlage dargestellt, in welcher die Erfindung angewendet wird. Die in der Figur in Form von Kabeln dargestellten Ubertragungs-Sammelleitungen dienen zur parallelen Übertragung von 32 Bits aufweisenden Datenwörtern. Die Anlage weist einen Speicher 20 (STG) auf, dem Speicheradressregister 21 (SAR 1, SAR 2) zugeordnet sind. Vom Speicher 20 werden Daten zu einem Speicher-Datenregister 22 übertragen, von wo sie über eine Geradeaus/Über-
kreuz-Schaltung 24 zu einer Torschaltung 26 gelangen, an deren Ausgang Register 28 (A), 30 (B) und 32 (C) angeschlossen sind. Die Register 28 und 30 dienen als Operandenregister eines Übertragsvorausschau-Addierwerkes 32 a (CLA), dessen Ausgang zur Torschaltung 26 zurückgeführt ist. Der Ausgang des B-Registers 32 ist mit dem Speicher-Datenregister 22, den Speicheradressregistern 21 und einem Programm-Statuswort-Register 34 (PSW) verbunden. Das letzte Register umfaßt einen Befehlszählerteil IC, der entsprechend dem Inhalt des BX-Registers 33 einstellbar ist. Vom PSW-Register 34 werden Daten zum Speicher-Datenregister 22 übertragen, das außerdem die der Datenverarbeitungsanlage über eine Dateneingang-Sammelleitung 19 von außen zugeführte Daten empfängt. Das Speicher-Datenregister 22 kann seinerseits Daten zum Speicher 20 liefern und an andere Einheiten, die an die Datenverarbeitungsanlage von F i g. 1 angeschlossen sind, über eine Datenausgangs-Sammelleitung 18 abgeben.
Um das Verständnis der Erfindung nicht unnötig zu erschweren, wurden die allgemeinen Steuerschaltungen der Anlage nur vereinfacht dargestellt, da deren Natur für die Erfindung unwesentlich ist. Die Anlage weist in Gestalt des Blocks 36 eine bekannte Schaltung zur Befehlsdecodierung, Taktung und Adressierung auf. Zusätzlich ist eine ebenfalls für sich bekannte Datenfluß-Steuerschaltung 38 vorgesehen.
Der Ausgang des A-Registers 28 ist mit einem der Eingänge der Vorschaltung 26 verbunden und außerdem an eine Exponent-Register- und -Gleitkomma-Steuerschaltung 40 angeschlossen. Des weiteren gestattet das /!-Register 28 einen Datenaustausch mit
einem y4X-Register 42, indem der Inhalt des .,4-Registers zum y4X-Register zur gleichen Zeit übertragen wird wie der Inhalt vom ^4X-Register zum ^-Register. Im unteren Teil der F i g. 1 sind ferner Gleitkomma-Arbeitsregister 44 und allgemeine Gleitkommaregister 46 (FPR) dargestellt. Die Register 46 erhalten Daten vom Ausgang des B-Registers 32 ebenso wie Mehrzweckregister 48 (GR). Die Gleitkommaregister und die Mehrzweckregister sind programmabhängig adressierbar entsprechend der jeweils durchzuführenden Aufgabe.
Die B- und BZ-Register 32, 33 weisen eine nicht dargestellte, bekannte Stellenverschiebeschaltung auf, durch die eine Verschiebung des Inhaltes beider Register um eine Bitstelle nach links möglich ist. Auf diese Weise kann der Dividend und der Dividendenrest nacheinander jeweils um eine Bitstelle pro Zyklus in Richtung der höheren Wertstellen verschoben werden. Das A-Register 28 ist mit Einrichtungen ausgestattet, die eine Invertierung seines Inhaltes gestatten, wenn ein INVERT A i?EG-Signal auftritt. Hierbei ist zu bemerken, daß die Invertierung einer Zahl gleichbedeutend ist mit ihrer Überführung in ihr Eins-Komplement. Das A-Register 28 ist außerdem in den Null-Zustand rückstellbar, so daß es lauter Null-Eingangssignale zum Addierwerk 32 a liefert. Das C-Register 30 ist an einen Ausgang des B-Registers 32 angeschlossen, so daß das C-Register am Beginn einer jeden Divisionsiteration auf ein Signal B IN C EINST entsprechend dem Inhalt des B-Registers einstellbar ist. Der Ubertragsvorausschau-Addierer 32 α bildet aus den in den Registern 28 und 30 enthaltenden Operanden eine Summe, die über die Torschaltung 26 zum B-Register 32 übertragen wird. Das B-Register dient bei der Ausführung von Divisionsoperationen als Akkumulator.
Eine Subtraktionsiteration, wie sie für Divisionen in der Anlage von F i g. 1 verwendet wird, besteht aus einer komplementären Addition. Um eine derartige komplementäre Addition ausführen zu können, wird der Divisor im A -Register 28 eingestellt, während der Dividend in die B- und BZ-Register 32 und 33 eingegeben wird. Wenn das Vorzeichen des Dividenden gleich dem Vorzeichen des Divisors ist, wird der Inhalt des A -Registers 28 komplementiert, indem einerseits der Inhalt dieses Registers invertiert und andererseits seiner niedrigsten Bitstelle über das Addierwerk 32 α ein Endübertrag zugeführt wird. Die Kombination einer Invertierung und einer Addition eines Endübertrages zur niedrigsten Stelle hat die Bildung des Zweierkomplementes des im A -Register enthaltenden Divisors in der oben erläuterten Weise zur Folge. Als nächstes wird der Inhalt des B-Registers 32 in das C-Register 30 gebracht. Danach wird der Inhalt des A -Registers 28 zum Inhalt des C-Registers 30 im Addierwerk 32 a addiert. Die Summe gelangt über die Torschaltung 26 zum B-Register 32. Damit ist die erste Divisionsiteration beendet. Im Falle, daß die Operation eine Überziehung ergeben hat, wird der Divisor komplementiert. Dies geschieht in der beschriebenen Weise durch Invertierung und Hinzufügung eines Endübertrages zur niedrigsten Stelle. Das C-Register 30 wird entsprechend dem Inhalt des B-Registers 32 eingestellt, so daß der Rest nun im C-Register 30 enthalten ist. Daraufhin wird eine erneute Addition vorgenommen. Die dabei gebildete Summe gelangt wiederum zum B-Register 32. Daraufhin wird im A-Register 28 erneut das Komplement gebildet, wozu der Addierer 32 a wiederum einen Endbetrag zur niedrigsten Stelle dieses Registers liefert. Dieser Übertrag wird in noch zu beschreibender Weise überwacht, um zu bestimmen, wenn der Inhalt des A -Registers zu komplementieren und ein Quotientenbit zu erzeugen ist. Die Quotientenbits werden der niedrigsten Stelle des BZ-Registers 33 zugeführt.
Eine Null-Detektorschaltung 50 ist an den Ausgang des B-Registers 32 angeschlossen und bringt eine Rest-Null-Verriegelungsschaltung 52 in den Ein-Zustand, wenn das B-Register in allen Bitstellen Nullen enthält. Die Verriegelungsschaltung 52 ist außerdem mit der höchsten Bitstelle des BZ-Registers 33 verbunden. Die Anwesenheit eines von Null abweichenden Bits in dieser Bitstelle bewirkt eine Rückstellung der Verriegelungsschaltung 52 in ihren Null-Zustand. Es ist ferner eine Divisor-Vorzeichensteuerschaltung 54, eine Dividenden-Vorzeichensteuerschaltung 56, eine Quotienten-Vorzeichensteuerschaltung 58 und ein Quotientengenerator 60 vorgesehen. Die Quotienten-Vorzeichensteuerschaltung 58 dient zur Festlegung eines positiven Quotienten-Vorzeichens, wenn der Divisor und der Dividend die gleichen Vorzeichen haben, und zur Festlegung eines negativen Vorzeichens, wenn der Divisor und der Dividend entgegengesetzte Vorzeichen haben. Der Quotientengenerator 60 wird von der Dividenden-Vorzeichensteuerschaltung 56 und von Uberträgen aus der höchsten Stelle des Addierwerkes 32 a gesteuert, um ein Quotientenbit stets dann zu erzeugen, wenn der Dividendenrest das gleiche Vorzeichen aufweist wie der Dividend, wie vorausgehend beschrieben wurde. Eine Ubertragseingabe-Steuerschaltung 62 steuert das Addierwerk 32 A für eine Erzeugung von Endüberträgen bei einer Komplementierung und bei der Korrektur der Quotienten. Die Komplementierung des Divisors wird durch eine Komplementierschaltung 64 gesteuert.
Mit den Schaltungen 36 und 38 ist ein Verschiebezähler 66 gekoppelt, der in bekannter Weise zur Überwachung der in einer Divisionsoperation auszuführenden Iterationen dient. In den Beispielen von Tabelle 12 bis 14, wo fünfstellige Operanden verarbeitet werden, wäre der Verschiebezähler anfangs auf Sechs einzustellen. Am Beginn eines jeden Zyklus erfolgt eine Dekrementierung dieses Zählstandes um Eins, bis der Zähler den Wert Null enthält. Am Beginn der ersten Iteration würde somit der Inhalt des Zählers 66 auf den Wert Fünf reduziert zur Anzeige der ersten Divisionsiteration, die, wie vorausgehend erwähnt, lediglich ein Testzyklus ist zur Bestimmung dafür, ob der Divisor und der Dividend im richtigen Größenverhältnis zueinander stehen. Wenn der Ver-Schiebezähler 66 nach Zählung der einzelnen Divisionsiterationen den Wert Null erreicht, werden noch zusätzliche Zyklen zur Korrektur des Dividendenrestes und des Quotienten und zur Komplementierung des Quotienten ausgeführt, sofern diese Operationen erforderlich sind.
Während der Vorbereitung einer Division, nachdem der Dividend und Divisor in die entsprechenden Register wie vorbeschrieben eingespeichert worden sind, werden auch die Vorzeichen dieser Werte in die Steuerschaltung 54 und 56 eingegeben. Aus diesen beiden Vorzeichen wird das Vorzeichen des Quotienten bestimmt und die Aussage abgeleitet, ob der Quotient in der ermittelten Form weiterverwendet
19 20
werden kann oder zuvor zu komplementieren ist In F i g. 4 ist eine entsprechende Verriegelungs-(ersteres ist der Fall, wenn die Vorzeichen von Di- schaltung 74 zur Abtastung des Dividendenvorzeivisor und Dividend gleich sind, andernfalls hat eine chens gezeigt. Diese Verriegelungsschaltung wird Komplementierung zu erfolgen). Das Dividenden- über eine Und-Schaltung 75 eingestellt und eine Vorzeichen wird außerdem mit den Überträgern ver- 5 Oder-Schaltung 76 rückgestellt. Ein Eingang der glichen, die das Addierwerk 32 α während einer je- Und-Schaltung 75 ist mit der höchsten Stelle des den Divisionsiteration in seiner höchsten Ziffernstelle B-Registers 32 verbunden und wird signalführend, erzeugt. Das Resultat dieses Vergleiches dient zur wenn diese Stelle eine Null enthält. Dem zweiten EinBestimmung des Quotientenbits dieser Iteration (ein gang der Und-Schaltung 75 wird das Vorzeichen-Eins-Bit wird stets dann erzeugt, wenn kein Über- io Einstellen-Signal zugeführt. Die Oder-Schaltung 76 trag vorliegt und ein negativer Dividend verarbeitet erhält die gleichen Eingangssignale wie die Oderwird oder wenn ein Übertrag vorliegt und ein posi- Schaltung 73 von Fig. 3. Das Ausgangssignal der tiver Dividend verarbeitet wird). Der Null-Detektor Verriegelungsschaltung 74 dient zur Anzeige eines 50 überwacht kontinuierlich den Ausgang des ZJ-Re- negativen Dividenden.
gisters32. Wenn dieses Register innerhalb einer Di- 15 Die Fig. 5 zeigt eine Exklusiv-Oder-Schaltung 77,
visionsiteration in allen seinen Ziffernstellen Nullen deren Eingänge an die Ausgänge der Verriegelungs-
enthält, liefert der Null-Detektor 50 ein Einstellsignal schaltungen 72 und 74 von F i g. 3 und 4 angeschlos-
zu der Verriegelungsschaltung 52 (PZR). Hierdurch sen ist. Sie liefert stets dann ein Ausgangssignal, wenn
wird eine Aussage darüber gespeichert, daß eine entweder der Divisor oder der Dividend negativ ist.
Lauter-Nullen-Bedingung in wenigstens einem Teil 20 Dieses Ausgangssignal stellt eine Anzeige dafür dar,
des Restes aufgetreten ist. Die Verriegelungsschal- daß ein negativer Quotient zu bilden ist. Wenn so-
tung 52 bleibt in ihrem Einstellzustand unabhängig wohl der Divisor als auch der Dividend gemeinsam
davon, ob in der höchsten Bitstelle des BZ-Registers negativ oder gemeinsam positiv sind, liefert die Ex-
33 eine Eins auftaucht, die anzeigt, daß der Rest klusiv-Oder-Schaltung 77 kein Ausgangssignal. Das
zum Zeitpunkt dieser Registrierung nicht über seinen 25 Quotient-negativ-Signal von der Schaltung 77 dient
ganzen Bereich Nullen aufgewiesen hat. zur Steuerung der Komplementierung des Quotien-
Im Falle der Verwendung von Datenwörtern mit ten, nachdem dieser in echter Form ermittelt worden
einer Länge von 32 Bits, wie sie die in F i g. 1 dar- ist.
gestellte Anlage vorsieht, wird der Verschiebezähler Die F i g. 6 zeigt die Schaltung zur Eingabe eines
66 auf den Wert 33 eingestellt entsprechend der Aus- 30 Quotientenbit in das niedrigstellige Ende des BX-
führung von 33 Divisionsiterationen, von denen eine Registers 33. Es ist eine Oder-Schaltung 79 vorgese-
zur Prüfung des Größenverhältnisses zwischen Divi- hen, der zwei Und-Schaltungen 80, 81 vorgeschaltet
dend und Divisor und je eine zur Verarbeitung eines sind. Die Und-Schaltung 80 wird wirksam, wenn ein
Bits dient. Der zweite Iterationszyklus kann eine Übertrag von der höchsten Stelle des Addierwerkes
Wiederholung der Dividenden- und Divisorprüfung 35 32 a während einer Divisionsoperation geliefert wird
sein, sofern dies erforderlich ist. und wenn zugleich ein positiver Dividend vorliegt.
Zur Komplementierung des Quotienten wird der Das letztere Signal wird durch Negation des Aus-Inhalt der Register 32 und 33 untereinander ver- gangssignals der Verriegelungsschaltung 72 von tauscht, das C-Register 30 entsprechend dem Inhalt F i g. 3 gewonnen. Die Und-Schaltung 81 wird wirkdes B-Registers 32 eingestellt und des weiteren ein 40 sam bei Fehlen eines Übertrages während einer Divi-FeId von lauter Einsen von der Schaltung 24 über die sionsoperation und gleichzeitigem Vorliegen eines Torschaltung 26 und nichtdargestellte Exklusiv-Oder- negativen Dividenden (negiertes Ausgangssignal der Schaltungen in das B-Register 32 und das C-Regi- Verriegelungsschaltung 74 von Fig. 4). Die Ausster 30 eingegeben, wodurch jede Stelle in diesen gangssignale der Und-Schaltungen 80 und 81 gelan-Registern invertiert wird. Das /(-Register wird rück- 45 gen zur Oder-Schaltung 79, deren Ausgang das Quogestellt. Daraufhin wird der Inhalt des C-Registers tient-Eins-Signal in Übereinstimmung mit der oben-30 zusammen mit einer Endübertrag-Eins von der genannten Regel 4 und den Tabellen 11 bis 14 liefert. Ubertragseingabeschaltung 62 dem Addierwerk 32 a Mit Hilfe eines Inverters 79 α wird aus diesem Sizugeführt. Das Resultat, welches das Zweierkomple- gnal ein Quotient-Null-Signal erzeugt. Das Quotientment des Quotienten darstellt, wird über die Tor- 50 Eins-Signal und das Quotient-Null-Signal gelangen zu schaltung 26 in das B-Register 32 eingegeben. Und-Schaltungen 82 und 83, die zu einer geeigneten
In F i g. 3 ist die Divisor-Vorzeichensteuerschal- Quotient-Einstellen-Zeit konditioniert werden. Die tung dargestellt. Sie besteht aus einer Verriegelungs- Und-Schaltung 82 liefert an ihrem Ausgang ein Einschaltung, die mit der höchsten Wertstelle des /1-Re- Stellsignal für die niedrigste Bitstelle des BX-Regigisters 28 verbunden ist, in der sich jeweils das Vor- 55 sters 33 (F i g. 1), und die Und-Schaltung 83 liefert zeichen des in dieses Register eingegebenen Daten- ein Rückstellsignal für die gleiche Bitstelle des Rewortes befindet. Eine UND-Schaltung 71 bewirkt die gisters 33. Das BZ-Register 33 wird in für sich beEinstellung der Verriegelungsschaltung 72, wenn die kannter Weise als gemeinsames Register für einen höchste Stelle des A -Registers 28 eine Null enthält Teil des Dividenden und den zu bildenden Quotien- und ein Vorzeichen-Einstellen-Impuls an einem 60 ten benutzt. Es ist als Schieberegister ausgebildet, und zweiten Eingang der Und-Schaltung 71 vorliegt. Die vom Dividendenanteil wird bei jeder Divisionsitera-Rückstellung der Verriegelungsschaltung 72 erfolgt tion ein Bit nach links aus dem Register geschoben über eine Oder-Schaltung 73 am Ende einer Divi- und in das B-Register 32 eingegeben. Hierdurch entsionsoperation durch ein Division-Rückstellen-Signal steht der Platz für das nächste Quotientenbit. Die oder durch ein besonderes Rückstellen-Signal der 65 Zuführung von Quotientenbits zum Register 33 wird Verarbeitungseinheit. Der Ausgang der Verriege- während des Testzyklus (erste Iteration) blockiert lungsschaltung 72 gibt eine Anzeige dafür, daß der durch die Abwesenheit eines Nicht-Verschiebezähler-Divisor negativ ist. 32-Signals.
Das BX-Register 33 ist in F i g. 7 im Detail dargestellt. Die von den Und-Schaltungen 82 und 83 (F i g. 6) erzeugten Quotienten-Einstell- und Rückstellsignale gelangen zu Oder-Schaltungen 85, 86 (F i g. 7), die der niedrigsten Wertstelle des Registers von F i g. 7 zugeordnet sind.
Die Steuerschaltung 64 zur Komplementierung des Divisors zeigt im Detail die Fig. 8. Das Divisor-Komplementieren-Signal wird von einer Oder-Schaltung 88 jeweils dann geliefert, wenn eine von zwei Und-Schaltungen 89, 90 leitend wird. Die Und-Schaltung 89 wird während der ersten Divisionsiteration durch ein Signal vom Verschiebezähler 66 konditioniert, das dessen Schaltstellung 32 anzeigt. Als weiteres Eingangssignal erhält die Und-Schaltung 89 das invertierte Ausgangssignal der exklusiven Oder-Schaltung 77 von F i g. 5 zur Anzeige eines positiven Quotienten zugeführt. Dieses Signal besagt, daß sich die Vorzeichen von Divisor und Dividend gleichen und daß daher der Divisor vor Beginn der ersten Divisionsiteration aus den vorausgehend beschriebenen Gründen zu komplementieren ist. Außerdem erhält die Und-Schaltung 89 ein geeignetes Taktsignal zugeführt, das den Zeitpunkt der Komplementierung festlegt. Die Und-Schaltung 90 wird während jeder Iteration konditioniert durch entsprechende Ausgangssignale des Zählers in dessen Zählstellungen zwischen 0 und 31. Einem Eingang der Und-Schaltung 90 ist eine Exklusiv-Oder-Schaltung 91 vorgeschaltet. Ein Eingang dieser exklusiven Oder-Schaltung ist mit der höchsten Stelle des A -Registers 28 verbunden, die üblicherweise das Vorzeichen des Divisors enthält. Der andere Eingang der exklusiven Oder-Schaltung 91 erhält den Übertrag von der höchsten Stelle des Rechenwerkes 32 a zugeführt. Wenn eine Eins in der höchsten Stelle des ^-Registers 28 (negativer Divisor) gemeinsam mit einem Übertrag in der höchsten Stelle des Addierwerkes 32 α auftritt, findet aus den oben erläuterten Gründen keine Komplementierung statt; die Exklusiv-Oder-Schaltung 91 liefert daher kein Ausgangssignal zur Und-Schaltung 90, die dadurch gesperrt bleibt. Wenn andererseits die als Null-Stelle bezeichnete höchststellige Stufe des A -Registers eine Null enthält zum Zeichen dafür, daß der Dividend positiv ist, und zur gleichen Zeit ein Übertragssignal von der höchsten Stelle des Addierwerkes 32 α am Eingang der Exklusiven-Oder-Schaltung 91 vorliegt, so liefert diese ein Ausgangssignal, das die Und-Schaltung 90 leitend macht, wodurch über die Oder-Schaltung 88 ein Steuersignal zur Komplementierung des Divisors erzeugt wird. Das gleiche geschieht, wenn kein Übertrag von der höchsten Stelle des Addierwerkes 32 a abgegeben wird, jedoch eine Eins in der höchsten Stelle des Registers 28 zum Zeichen eines negativen Divisors enthalten ist.
Das Addierwerk 32 α erhält Eingangssignale von der Übertrag-Eingabeschaltung 62 zugeführt, die im einzelnen die F i g. 9 zeigt. Wie vorausgehend bereits erläutert wurde, dient diese Schaltung zur Erzeugung eines Endübertrag-Signals, das zur Bildung des Zweierkomplementes aus dem Einerkomplement verwendet wird. Das Signal wird von einer Oder-Schaltung 92 erzeugt, wenn eine der Und-Schaltungen 93 a, 93 b, 94 oder 95 leitend wird. Die Und-Schaltungen 93 α und 93 b werden wirksam, wenn der Divisor zu komplementieren ist. Dies geschieht jeweils zu in Additionszeiten der einzelnen Iterationen. Die Und-Schaltung 94 wird wirksam, wenn der Quotient zu komplementieren ist, und die Und-Schaltung 95 wird wirksam, wenn der Quotient wegen des Auftretens eines Null-Restes zu korrigieren ist. Die Und-Schaltung94 empfängt daher von der exklusiven Oder-Schaltung 77 das Quotient-Negativ-Signal und das negierte Ausgangssignal von der Null-Rest-Verriegelungsschaltung 99. Die Und-Schaltung 95 empfängt das Ausgangssignal der Null-Rest-Verriegelungsschaltung 99, das negierte Ausgangssignal der exklusiven Oder-Schaltung 77 und ein Dividend-Negativ-Signal von der Verriegelungsschaltung 77. Durch das letzte Signal wird sichergestellt, daß eine Korrektur bei Auftreten eines Null-Restes in einer Division mit einem positiven Dividenden verhindert wird. Die Eingangssignale der Und-Schaltungen 93 α und 93 b sind aus den Eintragungen in F i g. 9 zu ersehen. Die Und-Schaltung 94 ist blockiert, wenn sich die Verriegelungsschaltung 99 von Fig. 11 im Ein-Zustand befindet. Dies kann geschehen, da die Addition einer Eins zur niedrigsten Stelle des Quotienten und die darauffolgende Komplementierung des Quotienten äquivalent einer einfachen Invertierung des Quotienten ist (s. Tabelle 13). Wenn daher sowohl eine Komplementierung des Quotienten als auch eine Korrektur durchzuführen sind, wird der Quotient einfach invertiert. Die Und-Schaltung 95 wird in ähnlicher Weise stets dann gesperrt, wenn der Quotient zu komplementieren ist. Ein Ubertragssignal auf der Ausgangsleitung der Oder-Schaltung 92 wird daher nur in den Fällen erzeugt, wo eine Quotientenkomplementierung auszuführen ist, ohne daß eine Quotientenkorrektur auf Grund eines Null-Dividendenrestes notwendig ist, oder wo eine Quotientenkorrektür durchzuführen ist, ohne daß eine Komplementierung des Quotienten erforderlich ist.
Die Fig. 10 zeigt eine vereinfachte Darstellung des Null-Detektors 50 von Fig. 1, der zur Anzeige dafür dient, daß das B-Register 32 lauter Nullen enthält. Eine Oder-Schaltung 97 ist mit allen Bitstellen des B-Registers 32 verbunden. Der Ausgang der Oder-Schaltung führt zu einem Inverter 98, der nur dann ein Ausgangssignal liefert, wenn keine der Eingänge der Oder-Schaltung 97 ein Eins-Eingangssignal von den zugeordneten Stellen des Registers 32 empfängt.
Die Fig. 11 zeigt die Details der Null-Rest-Verriegelungsschaltung 52 von Fig. 1. Eine Verriegelungsschaltung 99 wird jeweils dann in den Ein-Zustand gebracht, wenn das B-Register 32 in jeder seiner Stellen eine Null enthält zu einer Zeit, in der ein Null-Rest-Einstellen-Signal vorliegt. Diese Bedingung wird durch die Und-Schaltung 100 ermittelt, die dem Einstelleingang der Verriegelungsschaltung 99 vorgeschaltet ist. Die Verriegelungsschaltung 99 wird über eine Oder-Schaltung 102 am Ende einer Divisionsoperation oder durch ein besonderes Signal von der Verarbeitungseinheit rückgestellt. Eine Rückstellung kann auch durch ein Ausgangssignal der Und-Schaltung 103 erfolgen, wenn eine Eins in der höchsten Stelle des BZ-Registers 33 (Stelle 0) erscheint. Dies geschieht zu einer geeigneten Zeit, wenn der Verschiebezähler 66 in einer von Null abweichenden Stellung steht. Es ist daraus ersichtlich, daß stets dann, wenn ein Null-Rest im B-Register 32 ermittelt wird, die Verriegelungsschaltung 99 eingestellt wird. Wenn jedoch ein Eins-Bit in demjenigen Teil des Dividenden vorliegt, der noch nicht in das B-Register
32 übertragen worden ist, wird die Verriegelungsschaltung 99 zu dem Zeitpunkt wieder rückgestellt, wenn dieses Eins-Bit in der höchsten Stelle des BX-Registers 33 während der Linksverschiebung des Dividenden erscheint. Innerhalb der gleichen Divisionsoperation ist es möglich, daß eine zweite Null-Rest-Bedingung im B-Register 32 abgefühlt wird. Hierdurch wird die Verriegelungsschaltung 99 erneut eingestellt. Sie kann daraufhin in diesem Zustand verbleiben oder erneut durch eine in der höchsten Stelle des BZ-Registers 33 abgefühlte Eins in den NuIl-Zustand zurückgestellt werden. Von Bedeutung ist hierbei lediglich, ob der Verriegelungszustand am Ende der Divisionsoperation sich im Einstellzustand befindet oder nicht, denn hierdurch wird angezeigt, daß während der Operation tatsächlich ein Null-Rest vorgelegen hat und demzufolge eine Korrektur des Quotienten durch Inkrementierung um den Wert Eins vorzunehmen ist. Die Und-Schaltung 103 ist blockiert, nachdem der Verschiebezähler 66 den NuIl-Zustand erreicht hat, so daß ein Quotientenbit, das zu dieser Zeit durch die Linksverschiebung des Quotienten im Register 33 dessen höchste Stelle erreicht, keine Rückstellung der Verriegelungsschaltung 99 bewirkt.
Der Ausgang der Verriegelungsschaltung 99 ist mit einer Und-Schaltung 106 verbunden, die eine Rückstellung des B-Registers 32 bewirkt während nach einer Division mit einem negativen Dividenden, in welcher ein Null-Rest aufgetreten ist, ein Korrekturzyklus abläuft. Dies ist notwendig, da bei einem Null-Rest in einer Division mit einem negativen Dividenden Quotientenbits in allen aufeinanderfolgenden Zyklen, einschließlich dem Zyklus Null erzeugt werden. Hierdurch kann fälschlicherweise von der Schaltung angenommen werden, daß eine erfolgreiche Reduktion im Zyklus Null erfolgt ist, so daß keine Korrektur des Restes notwendig ist, während richtigerweise jedoch der Rest durch Nullsetzen zu korrigieren ist. Wenn daher ein Lauter-Nullen-Resultat im Zyklus Null erreicht wird, würde ein falsches Fehlen eines Quotienten anzeigen, daß eine Korrektur des Restes vorzunehmen ist, während dies tatsächlich nicht der Fall ist. Um eine solche Fehlanzeige zu vermeiden, wird der Null-Zustand im B-Register 32 durch das Ausgangssignal der Und-Schaltung 106 erzwungen.
Der Ablauf einer Divisionsoperation beginnt mit dem Laden der A-, B- und BZ-Register 28, 32 und 33. Während dieser Zeit wird auch der Verschiebezähler 66 in seinen Anfangszustand gestellt, der stets um Eins höher ist als die Zahl der zu erzeugenden Quotientenbits (33 im Falle einer Datenwortlänge von 32 Bits). Nachdem die Register 28, 32 und 33 geladen sind, werden die Vorzeichen des Divisors und des Dividenden in den Verriegelungsschaltungen 72, 74 (Fig. 3 und 4) eingestellt. Damit ist die Vorbereitung der Division beendet.
Jede der nun beginnenden Divisionsiterationen umfaßt mehrere zeitlich aufeinanderfolgende Funktionen. Als erstes ist der Verschiebezähler 66 um Eins zu dekrementieren. Daraufhin wird der Inhalt der Register 32 und 33 um eine Stelle nach links verschoben. Da dies jedoch nicht während des Testzyklus stattfinden darf, wird das entsprechende Steuersignal durch den Verschiebezähler 66 blockiert, wenn sich dieser in Zählstellung 32 befindet. Nach der Verschiebung wird der Inhalt des B-Registers 32 in das C-Register30 überführt. Als nächstes wird geprüft, ob der Divisor zu komplementieren ist (Ausgangssignal der Oder-Schaltung 88 in F i g. 8). Zur Zeit des
ίο Additions-Signals (F i g. 4) erfolgt die in Verbindung mit F i g. 1 beschriebene arithmetische Operation, die in einer Addition des Inhaltes der Register 28 und 30 besteht. Nach der Addition wird die Möglichkeit geprüft, ob die Verriegelungsschaltung 99 (Fig. 11) eingestellt werden kann. Dies geschieht durch das Signal Null-Rest-Einstellen. Als nächstes wird ein Quotientenbit im Register 33 durch das Quotient-Einstellen-Signal (F i g. 6) eingegeben. Während des Testzyklus wird diese Operation durch das Nicht-Verschiebezähler-Sl-Signal (F i g. 6) blockiert. Für den Fall, daß die Verriegelungsschaltung 99 eingestellt worden ist, kann sie nun wieder in den Null-Zustand rückgestellt werden, wenn ein Eins-Bit in der höchsten Stelle des BZ-Registers 33 vorliegt. Dies geschieht durch das Null-Rest-Rückstellen-Signal von Fig. 11. Während der letzten Iteration, wenn sich der Verschiebezähler 66 in der Position Null befindet, wird diese Operation blockiert. Die vorausgehend erläuterten Funktionen werden in jeder Divisionsiteration wiederholt, bis der Verschiebezähler 66 den Null-Zustand erreicht hat.
Der Zyklus, der auf die Nullstellung des Verschiebezählers 66 folgt, ist der Rest-Korrektur-Zyklus. Dieser Zyklus umfaßt eine Komplementierungsoperation und eine Additionsoperation in der oben beschriebenen Weise. Wenn jedoch die Verriegelungsschaltung 99 im Ein-Zustand steht, wird das B-Register 32 durch das Ausgangssignal der Und-Schaltung 106 rückgestellt, ohne daß eine eigentliche Korrektur des im Zyklus Null erzeugten fehlerhaften Quotientenbits erfolgt.
Nach dem Rest-Korrektur-Zyklus wird der Quotient korrigiert und/oder komplementiert. Dies geschieht in einem zusätzlichen Zyklus, der einen gegenseitigen Austausch des Inhaltes der Register 32 und 33 sowie eine Rückstellung des A -Registers 28 umfaßt. Der Inhalt des B-Registers 32 wird in das C-Register 30 überführt. Danach wird, wenn ein Quotient-Negativ-Signal von der Exklusiven Oder-Schaltung 77 vorliegt, der Inhalt der Register 30, 33 in für sich bekannter Weise durch nicht dargestellte Mittel invertiert. Danach wird bei Vorliegen des Quotient-Korrigieren-Signals (F i g. 9) ein Übertragssignal zum Addierwerk 32 a geliefert, sofern der Quo-
tient zu komplementieren ist oder auf Grund eines Null-Restes zu korrigieren ist, jedoch nicht, wenn beides zu geschehen hat. Das Resultat vom Addierwerk 32 a wird über die Torschaltung 26 in das B-Register 32 eingegeben. Dieses Resultat stellt den endgültigen Quotienten dar, der in der Folge zum Speicher 20 übertragen oder anderweitig weiterverwendet werden kann.
Hierzu 2 Blatt Zeichnungen

Claims (7)

Patentansprüche:
1. Anordnung zur Division von binären Operanden mit beliebigen Vorzeichen ohne Rückstellung des Dividendenrestes durch Ausführung iterativer Subtraktionen oder Additionen des Divisors vom bzw. zum Dividenden, dadurch gekennzeichnet, daß negative Dividenden in der vorliegenden Form, also ohne vorherige Komplementierung, dem die Iterationen ausführenden Rechenwerk (32 a) zugeleitet werden, daß eine Null-Rest-Abtastschaltung (50,52) vorgesehen ist, die beim Vorhandensein von Nullen in allen Stellen des sich während einer Iteration ergebenden Dividendenrestes ein Steuersignal an eineQuotientenkorrekturschaltung (95) abgibt, die daraufhin am Ende der Division eine Quotientenerhöhung um Eins auslöst, und daß diese Quotientenkorrektur bei Vorliegen eines positiven Dividenden durch eine Vorzeichensteuerschaltung (56) verhindert wird.
2. Anordnung nach Anspruch 1, dadurch gekennzeichnet, daß eine Ubertragsgeneratorschaltung (62) vorgesehen ist, die auf ein Steuersignal von der Null-Rest-Abtastschaltung (50, 52) in Abhängigkeit von einem Anzeigesignal für das Vorliegen eines negativen Dividenden und eines negativen Divisors am Ende der Division ein Übertragssignal erzeugt, das zur niedrigsten Stelle des Quotienten addiert wird.
3. Anordnung nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die Quotientenkorrektur in Kombination mit der Komplementierung eines negativen Quotienten vor seiner Weiterverwendung erfolgt, indem das Ausgangssignal der Null-Rest-Abtastschaltung (50, 52) in Abhängigkeit vom Vorliegen eines negativen Quotienten dazu dient, die Komplementierungsschaltung von der Bildung des Zweierkomplementes auf die Bildung des Einerkomplementes umzuschalten.
4. Anordnung nach Anspruch 3, dadurch gekennzeichnet, daß das Ausgangssignal der Null-Rest-Abtastschaltung (50,52) während der Kornplementierung eines negativen Quotienten zur Sperrung des Endübertrages zur niedrigsten Stelle dient, durch den sonst ein durch Invertierung gewonnenes Einerkomplement in das Zweierkomplement überführt wird.
5. Anordnung nach den Ansprüchen 1 bis 4, dadurch gekennzeichnet, daß die Null-Rest-Abtastschaltung (50, 52) nur jeweils einen hochstelligen Teil des Dividendenrestes abtastet und eine Registerstufe (99) zur Speicherung eines Null-Rest-Signals aufweist, wenn dieses im Verlauf der Division auftritt, und daß ein Rückstelleingang der Registerstufe der höchsten Stelle des anderen Teiles des Dividendenrestes zugeordnet ist, so daß im weiteren Verlauf der Division bei Auftreten eines Eins-Bits in dieser Stelle eine Rückstellung der Registerstufe erfolgt und daß der Inhalt der Registerstufe am Ende der Division zur Steuerung einer eventuellen Quotientenkorrektur abgetastet wird.
6. Anordnung nach Anspruch 5, dadurch gekennzeichnet, daß der hochstellige Teil des Dividendenrestes in einem ersten Register (32) und der andere Teil in einem zweiten Register (33) enthalten ist, dessen höchste Stelle mit der niedrigsten Stelle des ersten Registers verbunden ist, und daß die beiden Register mit einer Stellenverschiebeeinrichtung versehen sind, durch die nach jeder Iteration der Inhalt beider Register um eine Stelle in Richtung des Wertstellenanstiegs verschoben wird.
7. Anordnung nach den Ansprüchen 5 und 6, dadurch gekennzeichnet, daß die bei Verschiebung des Dividendenrestes frei werdenden Stellen des zweiten Registers (33) zur Aufnahme der Quotientenziffern dienen und daß gegen Ende der Division, wenn das höchststellige Quotientenbit die höchste Stelle des zweiten Registers erreicht, der Rückstelleingang der Null-Rest-Verriegelungsstufe (99) durch eine Iterationsfolgesteuerschaltung (66) gesperrt wird.
DE1549485A 1966-09-29 1967-09-29 Anordnung zur Division binärer Operanden ohne Rückstellung des Restes Expired DE1549485C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US58287066A 1966-09-29 1966-09-29

Publications (3)

Publication Number Publication Date
DE1549485A1 DE1549485A1 (de) 1971-03-04
DE1549485B2 true DE1549485B2 (de) 1973-03-29
DE1549485C3 DE1549485C3 (de) 1973-10-18

Family

ID=24330810

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1549485A Expired DE1549485C3 (de) 1966-09-29 1967-09-29 Anordnung zur Division binärer Operanden ohne Rückstellung des Restes

Country Status (4)

Country Link
US (1) US3492468A (de)
DE (1) DE1549485C3 (de)
FR (1) FR1554668A (de)
GB (1) GB1132168A (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3816733A (en) * 1973-05-09 1974-06-11 Collins Radio Co Bit serial divider with full scale capabilities
US4381550A (en) * 1980-10-29 1983-04-26 Sperry Corporation High speed dividing circuit
US4380051A (en) * 1980-11-28 1983-04-12 Motorola, Inc. High speed digital divider having normalizing circuitry
US5016210A (en) * 1989-11-15 1991-05-14 United Technologies Corporation Binary division of signed operands
FR2720172B1 (fr) * 1994-05-20 1996-06-28 Sgs Thomson Microelectronics Dispositif de mise en Óoeuvre numérique d'une opération de division.

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3229079A (en) * 1962-04-06 1966-01-11 Jr Harry D Zink Binary divider
US3378677A (en) * 1965-10-04 1968-04-16 Ibm Serial divider

Also Published As

Publication number Publication date
GB1132168A (en) 1968-10-30
US3492468A (en) 1970-01-27
FR1554668A (de) 1969-01-24
DE1549485A1 (de) 1971-03-04
DE1549485C3 (de) 1973-10-18

Similar Documents

Publication Publication Date Title
DE2712224C2 (de) Datenverarbeitungsanlage
DE1956209C3 (de) Multipliziervorrichtung
DE2626432C2 (de) Arithmetische Einheit für automatische Rechengeräte
DE2246968A1 (de) Einrichtung zur kombination, insbesondere multiplikation, zweier gleitkommazahlen
DE1162111B (de) Gleitkomma-Recheneinrichtung
DE2930441C2 (de) Anzeigeeinrichtung zur wahlweisen dynamischen oder statischen Anzeige
DE1549476B2 (de) Anordnung zur ausfuehrung von divisionen
DE1169166B (de) Modulí¬9 Pruefzahl-Rechner
DE3303269C2 (de)
DE3440680C2 (de)
DE1114050B (de) Elektronischer Gleitkomma-Rechner
DE1549485C3 (de) Anordnung zur Division binärer Operanden ohne Rückstellung des Restes
DE1293188B (de) Schaltungsanordnung zur UEbertragung von Pruefinformationen mit vorbestimmter Paritaet in Datenverarbeitungsanlagen
DE2203143C3 (de) Rechenanordnung zum Dividieren von 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
DE1549105C3 (de) Codeprüfanordnung für die Korrektur fehlerhaft übertragener Zeichen
DE1103646B (de) Inkrement-Rechenmaschine
DE1549461C3 (de)
DE1549449A1 (de) Einrichtung zur Verarbeitung von Gleitkommazahlen
DE1808159B2 (de) Einrichtung zur umsetzung von dualzahlen in binaer codierte dezimalzahlen in paralleler darstellung
DE2539245C2 (de)
DE1524146C (de) Divisionseinrichtung
DE1111429B (de) Multiplikationsschaltung fuer eine Daten verarbeitende Maschine

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
E77 Valid patent as to the heymanns-index 1977
EHJ Ceased/non-payment of the annual fee