DE2421130A1 - Operandenvergleicher - Google Patents

Operandenvergleicher

Info

Publication number
DE2421130A1
DE2421130A1 DE2421130A DE2421130A DE2421130A1 DE 2421130 A1 DE2421130 A1 DE 2421130A1 DE 2421130 A DE2421130 A DE 2421130A DE 2421130 A DE2421130 A DE 2421130A DE 2421130 A1 DE2421130 A1 DE 2421130A1
Authority
DE
Germany
Prior art keywords
operands
operand
signals
bits
bit
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
DE2421130A
Other languages
English (en)
Other versions
DE2421130C2 (de
Inventor
Michael Reid Clements
Dee Edwin Larsen
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.)
Fujitsu IT Holdings Inc
Original Assignee
Amdahl 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 Amdahl Corp filed Critical Amdahl Corp
Publication of DE2421130A1 publication Critical patent/DE2421130A1/de
Application granted granted Critical
Publication of DE2421130C2 publication Critical patent/DE2421130C2/de
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • G06F7/026Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
    • 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/483Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)

Description

.va!t PQ 4 74
• '.ji'-^cssEqjAMM * **· Tt ' ·
2 :;an:3urg 3δ
Neuer Wall 10 Il
A. 74 042 Fl.
Amdahl Corporation Sunnyvale, Kalif. (V.St.A.)
Operandenvergleicher
Für diese Anmeldung wird die Priorität aus der entsprechenden U.S. Anmeldung Serial No. 360 331 vom 14. Mai 1973 in Anspruch genommen.
Die Erfindung bezieht sich allgemein auf Datenverarbeitungssysteme und betrifft insbesondere einen Operandenvergleicher für das Vergleichen von Operanden in einem Datenverarbeitungssystem.
In vielen Datenverarbeitungssystemen werden einen Operandenvergleich erfordernde Instruktionen häufig anhand aufeinanderfolgender Additionen oder Subtraktionen ausgeführt, zu deren vollständiger Durchführung eine Vielzahl von Rekursivfolgen von Arbeitsgängen der Instruktionseinheit notwendig ist. Derartige Systeme benötigen daher verhältnismäßig lange Ausführungszeiten, die in Hochleistungssystemen unerwünscht sind.
Die Auswirkungen langer Ausführungszeiten wie z.B. aufgrund von Rekursivfolgen von Arbeitsgängen sind kumulativ in Systemen, in welchen Instruktionen vorabgerufen oder vorgespeichert werden. Wenn beispielsweise eine Verzweigungsinstruktion durch einen Operandenvergleich im Hinblick auf eine Gleichheitsbeziehung bedingt ist, muß eine Entscheidung getroffen werden, ob eine durch die Verzweigungsinstruktion angegebene zielgerichtete Instruktionsfolge oder die unveränderte Nichtverzweigungsinstruktionsfolge genommen werden soll. Zwar
409849/0993
könnte durch Vorabfrage und Vorspeicherung beider Instruktionsfolgen eine Verzögerung vermieden werden, jedoch müßten für diese Lösung aufwendige redundante Vorrichtungen vorgesehen sein. Andererseits wird durch das Warten auf die Ausführung der Instruktion und die dementsprechende Einstellung der Zustandskode wertvolle Verarbeitungszeit verschenkt. Daher besteht ein Bedarf an einem neuartigen Operandenvergleicher, der Vergleiche hoher Geschwindigkeit ausführt und die frühzeitige Einstellung der Zustandskode ermöglicht.
Der Erfindung liegt daher die Aufgabe zugrunde, einen verbesserten Operandenvergleicher zur Ausführung von Geschwindigkeitsvergleichen, die für die frühzeitige Einstellung von Zustandskodes für die Steuerung der Instruktionsverarbeitung geeignet sind, zu schaffen.
Der erfindungsgemäß vorgeschlagene Operandenvergleicher für ein Datenverarbeitungssystem, in welchem zur Ausführung von Instruktionen zwei Operanden verwendbar sind, die jeweils aus einer Vielzahl geordneter, von der höchsten bis zur niedrigsten Ordnung angeordneter Bits bestehen, wobei der Operandenvergleicher zum Vergleichen beider Operanden innerhalb des Datenverarbeitungssystems dient und aus einer Vielzahl zur bitweisen Bearbeitung der Operanden dienender elektronischer Schaltungen besteht, ist gekennzeichnet durch eine erste Schaltung, welche dazu dient, gleichzeitig einander entsprechende Bits in beiden Operanden zu vergleichen und von der höchsten zur niedrigsten Ordnung fortschreitend das erste Auftreten einer ersten Gleichheitsbeziehung zwischen einander entsprechenden Bits zu ermitteln, eine zweite Schaltung, welche dazu dient, gleichzeitig einander entsprechende Bits in beiden Operanden zu vergleichen und von der höchsten zur niedrigsten Ordnung fortschreitend das erste Auftreten einer zweiten Gleichheitsbeziehung zwischen einander entsprechenden Bits zu ermitteln, und eine dritte Schaltung, welche zur Auswahl der ersten oder der zweiten Schaltung und entsprechender Auswahl
409849/0993
der ersten oder der zweiten Gleichheitsbeziehung dient.
Vermittels des erfindungsgemäßen Operandenvergleichers werden in einem Datenverarbeitungssystem Gleichheitsbeziehungen ermittelt. Dazu werden die Operanden bitweise, d.h. Bit um Bit von den Bits hoher Ordnung bis zu den Bits niedriger Ordnung miteinander verglichen. Durch den bitweisen Vergleich wird die erste Gleichheitsbeziehung zwischen einander entsprechenden Bits ermittelt, welche entweder Identität, d.h. daß einander entsprechende Bits gleich sind, oder NichtIdentität, d.h. daß einander entsprechende Bits ungleich sind, ergibt. Der Vergleich wird für positive und negative Operanden in Festkommaarithmetik oder in normalisierter Gleitkommaarithmetik ausgeführt. Die ermittelten Vergleichswerte sind "größer als", "kleiner als", "gleich" und "überlauf" im Falle von Festkommaadditionen und -Subtraktionen. Bei Gleitkommaarithmetik ist die erste Gleichheitsbeziehung Nichtidentität. In entsprechender Weise ist bei Festkommaarithmetik, wenn beide Operanden positiv oder beide Operanden negativ sind, die erste Gleichheitsbeziehung Nichtidentität. Bei Festkommaarithmetik ist für Operanden mit entgegengesetzem Vorzeichen die erste Gleichheitsbeziehung Identität.
Bei Überlaufanzeige wird die Gleichheitsbeziehung mit Signalen kombiniert, welche angeben, ob es sich um eine Subtraktionsoder eine Additionsinstruktion handelt.
Gemäß einer bevorzugten Ausführungsform der Erfindung werden zwei 32-bit Operanden bitweise gleichzeitig und parallel zueinander verglichen, um die erste Gleichheitsbeziehung zu ermitteln.
Die einzelnen und weitere Merkmale, sowie die Vorteile der Erfindung werden im nachfolgenden anhand der Beschreibung der in der Zeichnung dargestellten bevorzugten Ausführungsbeispiele näher erläutert.
409849/0993
Fig. 1 ist ein Blockschaltbild eines Datenverarbeitungssystems, wobei die den erfindungsgemäßen Operändenvergleicher enthaltende Ausführungseinheit in weiteren Einzelheiten dargestellt ist.
Fig. 2 ist ein Blockschaltbild des erfindungsgemäßen Operandenvergleichers, der in die Logikblockstufen I, II, III, IV, V, VI, VII und VIII organisiert ist.
Fig. 3 sind schematische Darstellungen der Schaltungen innerhalb der Blöcke I, II und III der Schaltung von Fig. 2.
Fig. 4 ist eine schematische Darstellung von Schaltungen innerhalb des Blocks III der Schaltung von Fig. 2.
Fig. 5 sind schematische Darstellungen der Schaltungen innerhalb des Blocks IV der Schaltung von Fig.2.
Fig. 6 sind schematische Darstellungen der Schaltungen innerhalb des Blocks IV der Schaltung von Fig.2.
Fig. 7 sind schematische Darstellungen von Schaltungen innerhalb des Blocks IV der Schaltung von Fig.2.
Fig. 8 sind schematische Darstellungen von Schaltungen innerhalb des Blocks V der Schaltung von Fig. 2.
Fig. 9 sind schematische Darstellungen von Schaltungen innerhalb des Blocks V der Schaltung von Fig. 2.
Fig.10 sind schematische Darstellungen von Ausgangsschaltungen innerhalb der Blöcke VI, VII und VIII der Schaltung von Fig. 2.
Fig.11 sind schematische Darstellungen von Schaltungen in Block VI der Schaltung von Fig. 2.
Das in Fig. 1 schematisch dargestellte Datenverarbeitungssystem besteht aus einem Hauptspeicher 2, einer Speichersteuer-
409849/0993
einheit 4, einer Instruktions- oder Befehlseinheit 8, einer Ausführungseinheit 10, einer Kanaleinheit 6 mit zugeordneten Ein- und Ausgabevorrichtungen und einem Bedienungspult 12. Das in Fig. 1 dargestellte Datenverarbeitungssystem arbeitet gesteuert durch Instruktionen, wobei eine organisierte Gruppe von Instruktionen ein Programm bildet. Instruktionen und die Daten, auf welche die Instruktionen einwirken, werden über die Ein-Ausgabevorrichtungen durch die Kanalheit 6 und durch die Speichersteuereinheit 4 hindurch in den Hauptspeicher 2 eingeführt. Vom Hauptspeicher 2 werden Instruktionen durch die Instruktionseinheit 8 über die SpeicherSteuereinheit 4 abgerufen (fetched), verarbeitet und steuern die Ausführung innerhalb der Ausführungseinheit 10. Das in Fig. 1 dargestellte Datenverarbeitungssystem ist aus Zweckmäßigkeitsgründen kompatibel mit den Systemen IBM 360 und IBM 370.
Zur Einführung sei hier .ausgeführt, daß das Informationsformat bei diesem Datenverarbeitungssystem acht Bits zu einer Grundspeichereinheit organisiert, welche als "Byte" bezeichnet ist. Jedes Byte weist außerdem typischerweise ein neuntes Paritätsbit zur Fehlerermittlung auf. Obwohl in der nachstehenden Beschreibung das neunte Bit in jedem Byte nicht ausdrücklich erwähnt ist, soll jedem Byte ein Paritätsbit zugeordnet sein, und das System soll in an sich bekannter Weise eine normale Paritätsprüfschaltung enthalten.
Zwei Bytes sind zu einem als Halbwort bezeichneten größeren Feld organisiert, und vier Bytes oder zwei Halbwörter sind zu einem als Wort bezeichneten, noch größeren Feld organisiert. Zwei Wörter bilden ein Doppelwort. Ein Wort besteht aus vier aufeinanderfolgenden Bytes. Diese Definitionen liegen der Beschreibung zugrunde, wobei jedoch vorausgesetzt werden soll, daß Wörter oder Bytes jeder beliebigen Anzahl von Bits entsprechen können.
Innerhalb des Datenverarbeitungssystems können unterschiedliche Datenformate verwendet werden, so daß demzufolge Instruktionen
409849/0993
und Operanden unterschiedliche Länge aufweisen, je nachdem welche Operation auszuführen ist. Die Instruktionsformate umfassen RR, RX, RS, SI und SS. Als typisches Beispiel umfaßt die RX-Instruktion einen 8-bit OP-Kode, einen 4-bit Ri-Kode, einen 4-bit X2-Kode, einen 4-bit B2-Kode und einen 12-bit D2-Kode. Der OP-Kode spezifiziert eine von 256 möglichen Instruktionen. Die Felder R1, X2 und B2 identifizieren jeweils eines von 16 allgemeinen Registern. Das Feld D2 enthält eine
12 Verschiebungszahl (displacement number) zwischen null und 2" Als Beispiel für die RX-Instruktion addiert die Additionsinstruktion, abgekürzt ADD-Instruktion, den Inhalt des durch das Feld R1 identifizierten Registers zum Inhalt der Hauptspeicherstelle, welche adressiert ist durch die Summe der Zahl im Feld D2, addiert zum Inhalt des durch das Feld X2 identifizierten Registers und wiederum addiert zum Inhalt des durch das Feld B2 identifizierten Registers. Das Ergebnis wird in das Register eingegeben, welches durch das Feld R1 identifiziert ist. Die RX-Instruktionen machen zwei Zugriffe zum Speicher für die Ausführung erforderlich, nämlich einen Zugriff zum Abrufen der Instruktion, und einen weiteren Zugriff zum Abrufen eines der beiden Operanden. Die RR-Instruktionen machen einen Speicherzugriff erforderlich, wohingegen die SS-Instruktionen drei oder mehrere Speicherzugriffe benötigen.
Die in Fig. 1 dargestellte Ausführungsexnhext 10 umfaßt mehrere, mit 18, 19, 30 und 32 bezeichnete Funktionseinheiten, sowie eine als LUCK-Einheit 20 bezeichnete Funktionseinheit. Daten gelangen in die Ausführungsexnhext 10 durch die LUCK-Einheit 20 über die Eingangs-Vielfachleitungen 285 und 286. Diese Eingangsdaten werden verarbeitet und führen zu einem Ergebnis in den allgemein mit 24, 25, 28 und 29 bezeichneten Registern. Die Daten in den Registern 24 - 29 werden anschließend über Gatter durch eine oder mehrere der anderen Funktionseinheiten 18, 19, 30 oder 32 durchgeschaltet, um im R-Register 34 ein Ergebnis zu bilden. Außerdem umfaßt die Ausführungsexnhext 10 als Teil ihrer Steuerung Zustandstrigger-
409849/0993
schaltungen 141, einen Op-Dekoder 142 und verschiedene Zähler 143, welche zur Taktsteuerung innerhalb des Datenverarbeitungssystems dienen. Der Op-Dekoder 142 ist so geschaltet, daß ihm die gerade verarbeitete Instruktion von der Instruktionseinheit 8 in einem durch die Zähler 143 spezifizierten Zeitpunkt zugeführt wird, vorausgesetzt, daß eine entsprechende Zustandstriggerschaltung 141 anzeigt, daß eine Zustandskodebestiinmung im laufenden Verarbeitungsgang erfolgen soll. Die Zustandstriggerschaltungen, im nachfolgenden kurz Trigger genannt, welche mit 141 bezeichnet sind, sowie der Dekoder 142 und die Zähler 143 dienen zur Einstellung entsprechender Steuer-Triggerschaltungen 145, vermittels welcher über die Leitungen 146 der durch den Operandenvergleicher 2 74 in der LUCK-Einheit 20 auszuführende Vergleich gesteuert wird. Wenn der Vergleich der in die LUCK-Einheit 20 eingeführten Operanden anzeigt, daß der Konditionskode für die Anzeige einer Verzweigung eingestellt werden soll, wird ein Ausgangssignal vom Operandenvergleicher 274 über die Leitungen 147 der Instruktionseinheit 8 zugeführt, in welcher dieses Signal dazu führt, daß die Instruktionsverarbeitungssteuerungen die von dem Zustandskode abhängige korrekte Entscheidung treffen.
Die LUCK-Einheit 20 führt aus logische Operationen, Vergleiche, Zählvorgänge und Prüffunktionen an den Operanden OP2 und OP1, welche über die 32-bit Vielfachleitungen 285 und 286 eingegeben werden. Die LUCK-Einheit 2o umfaßt allgemein fünf oder mehrere Logikstufen und mehrere Datenwege mit die angezeigten Funktionen darstellenden Ausgängen. Die erste Logikstufe I weist herkömmliche Phasenspalter oder -teiler 266 und 267 auf, welche aus den unipolaren Eingangssignalen in den Vielfachleitungen 285 und 286 bipolare Ausgangssignale bilden, die den Logikblöcken 270 und 271 zugeführt werden.
Der Logikblock 27o führt Exklusiv-ODER-Funktionen an den Eingangsoperanden aus und liefert ein Ausgangssignal in der Vielfachleitung 283, sowie ein Eingangssignal für den Operandenver-
409849/0993
gleicher 274. Der Logikblock 271 führt Exklusiv-NOR-Funktionen an den Eingangsoperanden aus und liefert an seinem Ausgang ein Eingangssignal zum Operandenvergleicher 2 74.
Einzelheiten des Operandenverglexchers 274 von Fig. 1: Der Operandenvergleicher 274 vergleicht das Eingangssignal OP1 in der Vielfachleitung 286 mit dem Eingangssignal OP2 in der Vielfachleitung 285. In Fig. 2 sind weitere Einzelheiten des Operandenverglexchers einschließlich der Phasenspalter 266 und 267 und der Logikblöcke 270 und 271 von Fig. 1 dargestellt. Die Phasenspalter 266 und 267, der Exklusiv-ODER-Logikblock 270 und der Exklusiv-NOR-Logikblock 271 bilden einen Teil des erfindungsgemäßen Operandenverglexchers, können jedoch auch als getrennte Einheiten ausgebildet sein, welche die erforderlichen Eingangssignale für den Operandenvergleicher 274 und die übrige Schaltung von Fig. 1 liefern.
Wie Fig. 1 zeigt, werden dem Operandenvergleicher zusätzliche Eingangssignale über die Vielfachleitung 146 von der Steuer-Triggerschaltung 145 und der Takt- und Steuerschaltung 924 zugeführt. Die Vielfachleitung 146 ermittelt Kriterien aus einer Dekodierung des Operationskodes der gerade in der LUCK-Einheit 20 verarbeiteten Instruktion und bildet Kriterien aus, durch welche der jeweils durch den Operandenvergleicher auszuführende Vergleich spezifiziert wird. Der Operandenvergleicher ermittelt, ob die Eingangsoperanden in den Vielfachleitungen und 286 größer, kleiner oder gleich groß sind oder nicht und ermittelt außerdem, ob ein Überlaufszustand besteht, wenn eine Addition oder eine Subtraktion vorgegeben ist. Die Ergebnisse des Vergleichs werden vom Vergleicher 274 über die Leitungen 147 abgegeben. Diese Leitungen führen die vier Signale Zustandskode-gültig (CCV), Zustandskode-gleich-null (CC=O), Zustandskode-gleich-eins (CC=D und Zustandskode-gleich-drei (CC=3). Wenn das Zustandskode-gültig- oder CCV-Signal erregt ist und die drei anderen Leitungen stromlos sind, wird aufgrund eines Fehlers der Konditionskode-gleich-zwei (CC=2)-Zu-
409849/0993
stand angesetzt. Das Signal Zustandskode-gleich-null heißt, daß OP1 gleich ist OP2. Zustandskode-gleich-eins heißt, daß OP1 kleiner ist als OP2 in der VergleichsInstruktion und weiter, daß das Ergebnis kleiner ist als null in den Additions- und Subtraktionsinstruktionen. Zustandskode-gleichzwei heißt, daß OP2 kleiner ist als OP1 in der Vergleichsinstruktion und weiterhin, daß die Summe größer ist als null in den Additions- und Subtraktionsinstruktionen. Zustandskodegleich-drei heißt, daß eine Addition oder eine Subtraktion vorgegeben ist und daß diese Addition oder Subtraktion zu einem Überlauf führt. Ein Überlauf erfolgt dann, wenn der Übertrag in das Vorzeichenbit nicht das gleiche ist wie der Übertrag aus dem Vorzeichenbit. Der Wert des Zustandskodes wird über die Leitungen 147 an die Instruktionseinheit 8 angelegt und in dieser zur Steuerung der Instruktionsverarbeitung verwendet. Bei den vorgenannten Zustandskodeeinstellungen handelt es sich um typische Einstellungen. Im allgemeinen werden Zustandskodeeinstellungen zur Anzeige vieler unterschiedlicher Zustände innerhalb eines Datenverarbeitungssystems wie z.B. im System IBM 370 verwendet.
Beim System der Fig. 1 sind für Festkommaarithmetik positive Zahlen in binärer Schreibweise und negative Zahlen in 2"er Komplementärbinärschreibweise, wobei das Bit hoher Ordnung das Vorzeichen angibt. Für Gleitkommaarithmetik gibt das Bit hoher Ordnung das Vorzeichen an, die nächsten sieben Bits von der hohen zur niedrigen Ordnung geben einen Exponenten an, während die übrigen vierundzwanzig Bits einen Bruchteil angeben. Beim Operandenvergleicher nach der Erfindung sind die Bruchteile von Gleitkoiranaoperanden auf Hexadezimalziffernbasis normalisiert, um sämtliche hexadezimalen Nullen hoher Ordnung zu eliminieren.
Die logischen Funktionen des in Fig. 2 dargestellten Operandenvergleichers werden nun anhand der nachstehenden Tabellen I bis IV näher erläutert. In diesen Tabellen werden die Operanden OP1 und OP2 bitweise, d.h. Bit um Bit verglichen. Jedes Bit
409849/0993
in Operand OP1 wird mit dem entsprechenden im Operanden OP2 in einer Reihenfolge verglichen, welche vom Bit hoher Ordnung zum Bit niedriger Ordnung fortschreitet. Die Vergleiche erfolgen entsprechend einer Anzahl von Regeln, die in den nachstehenden Tabellen angegeben sind.
Wenn im Falle von Festkommaarithmetik die Operanden OP1 und OP2 entweder beide positiv oder beide negativ sind, lassen sich die Vergleichsregeln in der nachstehenden Tabelle I wie folgt zusammenfassen:
Tabelle I
(Beide Operanden positiv oder negativ) ERSTE 11DIFF" BIT
0P2 VGL Schaltung
1 STELLUNG
Fall 2 keine
Fall 3 keine
Fall 4 ja
Fall 5 ja
Fall 6 ja
Fall ja
pos pos 0P1 = 0P2 IV-4(2)
neg neg OP1 = OP2 IV-4(2)
pos-1 pos-0 |OP1.|>|OP2J VI-(4)
pos-0 pos-1 |OPil < |OP2| VI-(3)
neg-1 neg-0 |0Pi| < |OP2| VI-(3)
neg-0 neg-1 |OPi| > (OP21 VI-(4)
In Tabelle I gibt die mit "ERSTE DIFF BIT STELLUNG" bezeichnete Spalte an, ob eine Unglexchheitsbeziehung ("DIFF" oder Differenz soll Nichtidentität bedeuten) während des bitweisen Vergleichs von erstem und zweitem Operanden, die der Schaltung von Fig. 2 zugeführt werden, ermittelt wird. Die "ERSTE" Bitstellung, in welcher eine Ungleichheit besteht, ist diejenige Stellung, welche bei Beginn mit dem Bit höchster Ordnung und Fortschreiten zu dem Bit niedrigster Ordnung während des bitweisen Gleichheitsvergleichs ermittelt wird.
Die mit OP1 bezeichnete Spalte gibt an, ob der Operand 0P1 positv (pos) oder negativ (neg) ist und ob das erste "Differenzbit11 ("DIFF" BIT) für OP1 eine eines (1) oder eine null (0) ist, was in den Fällen 3-6 durch die nachgestellten Ziffern 1 bzw. 0 angezeigt ist.
409849/0993
Die Spalte OP2 gibt für den Operanden OP2 die gleiche Information wie die Spalte OP1 für den ersten Operanden an.
Die Spalte VGL - Vergleich gibt die Beziehung zwischen OP1 und OP2 an, wenn die in den vorstehenden drei Spalten angegebenen Bedingungen herrschen. Die Vergleichsbeziehung von OP1 und OP2 ist ein Größenvergleich.
Die mit "Schaltung" bezeichnete letzte Spalte gibt den jeweiligen Schaltungsblock in Fig. 2, in welchem der dargestellte Vergleich ausgeführt wird.
In den Fällen 1 und 2 von Tabelle I sind die Bedingungen angegeben, daß jedes Bit in Operand 0P1 identisch ist dem jeweils entsprechenden Bit im Operanden 0P2. Unter diesen Bedingungen ist OP1 gleich OP2, wenn beide Operanden entweder positiv oder negativ sind.
In den Fällen 3 und 4 von Tabelle I sind beide Operanden positiv. Die erste Bitstellung in der Gleichheitsbestimmung, in welcher die erste Ungleichheit auftritt, gibt vor, welcher Operand größer ist. Bei den hier dargestellten Beispielen ist der Operand, der in der ersten Ungleichheitsstellung eine Eins (1) aufweist, größer als der andere Operand, der in der entsprechenden Bitstellung eine Null (0) aufweist.
In den Fällen 5 und 6 von Tabelle I sind beide Operanden negativ. Der Operand, welcher in der ersten Ungleichheitsstellung die Null aufweist, ist größer als der andere Operand, welcher in der entsprechenden Bitstellung eine Eins aufweist.
Wenn bei Festkommaarithmetik die Operanden OP1 und OP2 entgegengesetztes Vorzeichen aufweisen, d.h. der eine Operand positiv und der andere Operand negativ ist, lassen sich die Vergleichregeln wie folgt in Tabelle II zusammenfassen:
409849/0993
Fall 1 keine
Fall 2 keine
Fall 3 O
Fall 4 O
Fall 5 1
Fall 6 1
Fall 7 1
Fall 8 1
Tabelle II
(Ein Operand positiv, der andere negativ)
ERSTE "SAM" BIT Alle Bits
STELLUNG " niedriger
Ordnung OP1 OP2 VGL Schaltung
pos neg |oPik|OP2| VI-(9)
neg pos |OP1I>|OP2| VI-(IO)
pos neg |OPil<|OP2i VI-(11)
neg pos |0Pil>!0P2f VI-(12)
pos neg |OP1I^|OP2| V-3 (1)
neg pos |OPiUlOP2l V-3-(2)
0 pos neg loPiHoP2i VI-(O)
0 neg pos |OP1| = |OP2| VI-(O)
In Tabelle II gibt die mit "ERSTE "SAM" BIT STELLUNG" bezeichnete Spalte an, ob eine Gleichheitsbeziehung ("SAM" steht als Abkürzung für "SAME", das englische Wort "gleich") während des bitweisen Vergleichs ermittelt wird.
In Tabelle II ist der positive Operand (pos) in gerader Binärschreibweise dargestellt, während der negative Operand (neg) in 2'er Komplementärschrexbwexse dargestellt ist. Wie oben werden die Operanden auf Gleichheit bitweise verglichen, wobei die Reihenfolge von dem Bit höchster Ordnung zum Bit niedrigster Ordnung verläuft. Während die Vergleichsreihenfolge logisch von hoch zu niedrig erfolgt, wird der tatsächliche Vergleich vorzugsweise parallel und gleichzeitig auf Zeitbasis durchgeführt. Im Falle von Tabelle II erfolgt der Vergleich, um die erste Identität (beide Einsen oder beiden Nullen) zu ermitteln, welche durch die Spalte "ERSTE "SAM" BIT STELLUNG" (erste Bitstellung mit gleichen Bits) angezeigt ist.
In den Fällen 1 und 2 von Tabelle II ist kein Bit in den einander entsprechenden Bitstellen gleich. Unter diesen Bedingungen ist der Absolutwert des positiven Operanden kleiner als der Absolutwert des negativen Operanden.
409849/0993
In den Fällen 3 und 4 von Tabelle II handelt es sich bei der ersten Stellung mit gleichen Bits um eine Stellung, in welcher diese Bits Nullen sind. Unter diesen Bedingungen ist der Absolutwert des positiven Operanden kleiner als der Absolutwert des negativen Operanden.
In den Fällen 5 und 6 von Tabelle II sind in der ersten Stellung mit identischen Bits die betreffenden Bits Einsen. Unter diesen Bedingungen ist der Absolutwert des positiven Operanden größer oder gleich dem Absolutwert des negativen Operanden.
In den Fällen 7 und 8 von Tabelle II handelt es sich bei der ersten Stellung mit identischen Bits um eine Stellung, in welcher die Bits beide Einsen sind, wobei außerdem alle nachfolgenden Bits niedriger Ordnung Nullen sind. Unter diesen Bedingungen sind positiver und negativer Operand gleich.
Im Falle normalisierter Gleitkommaarithmetik sind die Vergleichsregeln die gleichen wie die vorstehend in Tabelle I für positive Operanden angegebenen, mit der Ausnahme, daß das erste Bit in jedem Gleitkommaoperanden getrennt behandelt werden muß, da es sich dabei um das Vorzeichenbit handelt. Der Vergleich ist gültig für die ersten sieben Bits, welche den Exponenten spezifizieren, sowie auch für die übrigen 24 Bits, welche einen Bruchteil spezifizieren. Es muß nicht festgestellt werden, ob ein Bruchteilbit oder ein Exponentenbit an der ersten Differenzbitstellung steht, welche in der Gleichheitssuche ermittelt wird.
Zusammenfassend läßt sich sagen, daß der Operandenvergleicher 274 die Größen von OP1 und OP2 sowohl für normalisierte Gleitkommaarithmetik als auch für Festkommaarithmetik und für positive und negative Operanden vergleicht, wobei die gleichen allgemeinen Vergleichsregeln gültig sind. Dazu ist zu bemerken, daß die Gleichheitssuche (Suche nach Identität) anhand der in Tabelle II dargestellten Vorgänge umgekehrt ist zur
409849/0993
Gleichheitssuche (auf Nichtidentität) für die in Tabelle I dargestellten Operationen.
Außer dem anhand der Tabellen I und II dargestellten Größenvergleich ermittelt der in Fig. 2 dargestellte Operandenvergleicher auch Überlaufbedingungen bei Addition und Subtraktion von Operanden, wobei die Operanden tatsächlich nicht addiert oder subtrahiert werden. Eine Instruktion, welche Operationen mit zwei Operanden angibt, führt im Falle der Addition zu einer Summe und im Falle der Subtraktion zu einer Differenz, welche die Kapazität des Datenverarbeitungssystems überschreitet. Eine Möglichkeit, um festzustellen, ob ein Überlauf erfolgt oder nicht, ist, die spezifizierte Instruktion tatsächlich auszuführen und dadurch festzustellen, ob ein Überlauf stattfindet oder nicht. Entsprechend der Erfindung wird dagegen bevorzugt ein Vergleich der Operanden vorgenommen, wobei der Operationskode der Additions- und Subtraktionsinstruktion dekodiert wird.
Die Formatregeln in einem typischen System" für die Operanden sind die gleichen wie die anhand von Tabellen I und II beschriebenen. Bei Festkommaarithmetik sind Binärziffern in binärer Schreibweise und negative Ziffern in 2'er Komplementärschreibweise. Das erste Bit hoher Ordnung ist das Vorzeichenbit, welches für positive Zahlen und für negative Zahlen eine Eins ist.
Die Überlaufanzeige soll zunächst anhand einer Addition beschrieben werden, bei welcher die Operanden OP1 und OP2 entsprechend einer Instruktion addiert werden. Die Operanden OP1 und OP2 liegen als Eingänge an dem Vergleicher der Fig. 2, wobei sich die Operationsregeln im Falle einer Addition wie nachstehend in Tabelle III angegeben zusammenfassen lassen:
409849/0933
1 ERSTE "SAM"
BIT
STELLUNG
Tabelle III 0P2 CC = 3
ÜBERLAUF
Fig. 10
Halte
schaltung
2 keine pos nein
3 O (Additionsüberlauf) pos nein
Fall 4 1 OP1 pos ja L2/L3
Fall 5 keine pos neg ja L4
Fall 6 O pos neg ja L1/L2
Fall 7 1 pos neg nein
Fall 8 keine,1,0 neg pos nein
Fall keine,1,0 neg neg nein
Fall neg
Fall neg
pos
In Tabelle III werden die Operanden 0P1 und 0P2 auf Identitäts-Gleichheit sbezxehung bitweise von dem Bit höchster Ordnung ausgehend fortlaufend bis hin zum Bit niedrigster Ordnung verglichen. Die mit "ERSTE "SAM" BIT STELLUNG" bezeichnete Spalte gibt an, ob ein Bit in dem einen Operanden das gleiche (Identität) ist wie das entsprechende Bit im anderen Operanden.
Im Falle 1 wird die Identitäts- oder Gleichheitsbeziehung in keiner der einander entsprechenden Bitstellen festgestellt, so daß mit beiden Operanden positiv kein überlauf besteht.
Im Falle 2 besteht die Gleichheitsbeziehung der Identität für die ersten einander entsprechenden Bits aus Nullen, und da beide Operanden positiv sind, besteht kein überlauf.
Im Falle 3 sind die ersten Identitätsbits Einsen, und da beide Operanden positiv sind, wird ein Überlaufszustand ermittelt.
Im Falle 4 wird keine Identität in einander entsprechenden Bits gefunden, und da beide Operanden negativ sind, besteht ein Überlaufzustand.
409849/0993
Im Fall 5 sind die ersten Identitätsbits Nullen, und da beide Operanden negativ sind, besteht ein überlaufzustand.
Im Fall 6 sind die ersten Identitätsbits Einsen, und da beide Operanden negativ sind, besteht kein Überlaufzustand.
In den Fällen 7 und 8 besteht für jede Gleichheitsbeziehung zwischen einem negativen und einem positiven Operanden kein Überlaufzustand.
Die Überlaufzustandsermittlung im Vergleicher der Fig. 2 bei Subtraktion von OP2 von OP1 erfolgt entsprechend den in der nachstehenden Tabelle IV zusammengefaßten Regeln:
1 ERSTE "DIFF"
BIT
STELLUNG
Tabelle IV 0P2 Überlauf Fig. 10
Halte
schaltung
2 keine neg ja L8
3 keine (Subtraktionsüberlauf) pos nein
Fall 4 ja OP1 neg-0 ja L6/L7
Fall 5 ja pos neg-1 nein
Fall 6 ja neg pos-0 nein
Fall 7 ja pos-1 pos-1 ja L5/L6
Fall 8 ja pos-0 pos nein
Fall ja neg-1 neg nein
Fall neg-0
Fall pos
neg
Der Vergleich der Operanden OP1 und OP2 erfolgt bitweise von den Bits hoher Ordnung zu den Bits niedriger Ordnung, wobei das Vorzeichenbit hoher Ordnung unberücksichtigt bleibt. Für Subtraktion ist die gesuchte Gleichheitsbeziehung Nichtidentität, d.h. das erste Auftreten eines Unterschiedes ("DIFF") zwischen den einander entsprechenden Bits in OP1 und OP2.
Im Fall 1 der Tabelle IV wird die GleichheitsbezMiung nicht gefunden, da keines der einander entsprechenden Bits einen
409849/0993
Unterschied zeigt, so daß wenn OP1 positiv und OP2 negativ ist, ein Überlaufzustand besteht.
Im Fall 2 wird kein Unterschied gefunden, die Gleichheitsbeziehung der Nichtidentität besteht nicht und da OP1 negativ und OP2 positiv ist, besteht kein"Überlaufzustand.
Im Fall 3 wird die Gleichheitsbeziehung für eine positive Eins für OP1 und eine negative Null für OP2 gefunden, wodurch ein Überlaufzustand erzeugt wird.
Im Fall 4 wird die Gleichheitsbeziehung mit einer positiven Null für OP1 und .einer negativen Eins für 0P2 gefunden, wodurch kein überlaufzustand erzeugt wird.
Im Fall 5 wird die Gleichheitsbeziehung mit einem negativen Eins für OP1 und einer positiven Null für OP2 gefunden, wodurch kein Überlaufzustand erzeugt wird.
Im Fall 6 wird die Gleichheitsbeziehung mit einer negativen Null für 0P1 und einer positiven Eins für OP2 gefunden, wodurch ein überlaufzustand erzeugt wird.
Im Fall 7 wird die Gleichheitsbeziehung für beide positiven Operanden OP1 und OP2 gefunden, wodurch kein überlaufzustand erzeugt wird.
Im Fall 8 wird die Gleichheitsbeziehung für beide Operanden 0P1 und 0P2 negativ gefunden, bei welcher kein überlaufzustand erzeugt wird.
In den Tabellen I, II, III und IV sind die logischen Vergleiche angegeben, welche durch die Operandenvergleicherschaltung in den Fig. 1 und 2 ausgeführt werden. Alle Vergleiche beruhen sowohl für Größenvergleich als auch für Überlaufermittlung auf
409849/0993
einer gemeinsamen Vergleichstechnik. Diese Vergleichstechnik besteht aus einem bitweisen,d.h. Bit um Bit fortschreitenden Vergleich der Bitstellen beider Operanden zwecks Ermittlung einer vorbestimmten Glexchheitsbeziehung. Diese Glexchheitsbeziehung ist die erste Identität oder erste Nichtidentität in einander entsprechenden Bits, welche in der Reihenfolge von Bits hoher Ordnung zu Bits niedriger Ordnung geprüft werden. Die Kriterien für die Interpretation des Operandenvergleichs sind in den vorstehenden vier Tabellen angegeben. Diese Kriterien sind die Vorzeichen der Operanden (positiv oder negativ), der Arithmetiktyp (Gleitkomma oder Festkomma), der Wert (Eins oder Null) der die Identitätsbeziehung aufweisenden ersten Bitstelle und die Beschaffenheit der auszuführenden Operation (Addition, Subtraktion, Vergleich usw.).
Der in Fig. 2 schematisch dargestellte Operandenvergleicher weist acht Logikstufen I bis VIII auf. In der Stufe I entsprechen die Phasenspalter 2 66 und 267 den die gleichen Bezugszeichen aufweisenden Phasenspaltern von Fig. 1, welche jeweils an die 32-bit Eingangs-Vielfachleitung 285 bzw. 286 angelegt sind. Der Operand OP1 wird über die Vielfachleitung 286 zugeführt und besteht aus den 32 bits +a(0), +a(1), ... +a(31), welche in Block 1-1 als +a(0...31) bezeichnet sind. Der Block 1-1 weist 32 Phasenspalter, nämlich einen für jeden der 32 Eingänge auf, welche die 32 bipolaren Ausgänge ^a(O) , +_a(1) , .... +a(31) liefern, die als +a(0 ... 31) bezeichnet sind. In entsprechender Weise werden dem Block 1-2 die 32 Eingänge +b(0), +b(1), +b(2), ... +b(31) zugeführt, die als +b(0 ...31) bezeichnet sind und die 32 Paare bipolarer AusgangsSignaIe +b(0), +b(1), ... +b(31) liefern, welche als +b(0 ... 31) bezeichnet sind. In Fig. 3 sind die Blöcke 1-1 und 1-2 in weiteren Einzelheiten in Verbindung mit einer typischen einzelnen Bitstelle für das Bit 0 dargestellt. In Fig. 3 bilden die +a(0)-Eingänge die -a(0)- und die +a(0)-Ausgänge. Das Null-Bit (0) ist typisch für die 32 bits, welche durch "X32" in den rechten unteren Ecken der Blöcke 1-1 und 1-2 darge_
409843/0993
stellt sind. Das Eingangssignal +b(O) wird in entsprechender Weise phasengespalten und bildet die bipolaren Ausgangssignale -b(0) und +b(0) oder vereinfacht +b(0).
Die Ausgangssignale beider Blöcke 1-1 und 1-2 von Fig. 2 sind als Eingänge an die Blöcke II-1 bis XI-4 in der zweiten Logikstufe II geschaltet.
In Fig. 2 bilden die Logilcstufen XI-1 die Exklusiv-ODER-Werte der entsprechenden Bits von OP1 und OP2. Die Eingänge +a(O...31) und +b(0...31)f welche von der Logikstufe I geliefert werden, bilden die 32 Ausgangssignale -DIF(O...31).
Die in Fig. 3 dargestellte Schaltung 1-1 für das Bit 0 ist typisch für die 32 Exklusiv-ODER-Schaltungen. Die Eingänge +a(0), +b(0), -a(0) und -b(0) werden kombiniert und bilden das Exklusiv-ODER-Ausgangssignal -DIF(O). Das -DIF(O)-Ausgangssignal ist eine Eins, wenn die Eingangsbits +a(0) und +b(0) der Operanden OP1 und OP2 gleich sind, und ist eine Null, wenn diese Bits unterschiedlich sind.
Der Block II-2 von Fig. 2 bildet den Exklusiv-NOR-Wert der Eingangsoperanden auf bitweiser Basis und bildet die 32 Ausgangssignale -SAM(O...31) aus.
Der Block II-2 in Fig.3 zeigt eine typische Exklusiv-NOR-Schaltung für das Bit 0. Die Eingänge -a(0), +b(0), +a(0) und -b(0) erzeugen das Ausgangssignal +DIF(O).
In Fig. 2 bildet der Block II-3 ODER/NOR und UND/NAND-Kombinationen der Nullbits von OP1 und OP2. Da die Nullbits die Vorzeichenbits darstellen, geben die Ausgangssignale der Schaltung von Block II-3 die positiven und negativen Vorzeichenverhältnisse zwischen OP1 und OP2 vor.
409849/0993
Fig. 3 zeigt Einzelheiten der Vorzeichenbitvergleiche in Block II-3. So stellt beispielsweise das Gatter 920 ein typisches Gatter dar, an welchem die Eingangsbits +a(0) und +b(0) zu den Ausgangssignalen +OPS POS und -OPS POS führen. Das Gatter 920 führt die logischen Funktionen eines NOR/ODER-Gatters für positive Eingangssignale aus. Andererseits führt das Gatter auch die logischen Funktionen eines NAND/UND-Gatters für negative Eingangssignale aus. Dementsprechend bildet das Gatter 920 zur Ausbildung der Ausgangssignale +OPS POS die ODER/NOR-Funktion von +a(0) und +b(0). Andererseits kann das Gatter 920 auch die UND/NAND-Funktion von -a(0) und -b(0) ausführen. Das Gatter 920 ist typisch für die Gatter im erfindungsgemäßen Operandenvergleicher. Alle diesem Gatter 920 entsprechenden Gatter lassen sich als NOR/ODER-Gatter für positive Eingangssignale oder als NAND/UND-Gatter für negative Eingangssignale bezeichnen. Die logischen Funktionen sind wie angedeutet unabhängig von der jeweils bevorzugten Nomenklatur.
In Fig. 2 bildet der Block IX-4 insgesamt 32 ODER-Verknüpfungen an jedem der entsprechenden Bits 0 bis 32 für 0P1 und OP2, welche die 32 Ausgangssignale - Z(O...31) bilden.
Der Block II-4 von Fig. 3 ist typisch für die 32 Bits, insbesondere Bit 0. Die Eingangssignale +a(0) und +b(0) erzeugen das ODER-Ausgangssignal -Z(O), das eine Eins ist, wenn eines der beiden Eingangssignale nicht Null ist.
Die Blöcke III-1, III-2 und III-3 von Fig. 2 bilden logische UND-Werte von Ausgangssignalgruppen der Schaltungen in Stufe So kombiniert insbesondere der Block III-1 die Signalgruppen -DIF(O...31) logisch und bildet wie in Einzelheiten in den Figuren 3 und 4 dargestellt die Gruppendifferenzsignale -DIF(G).
Anhand Block III-1A von Fig. 3 und Block III-1B von Fig. 4 soll nunmehr eine typische Schaltung beschrieben werden. Die Schaltung mit den Eingängen -DIF(14) und -DIF(15) bildet die
409849/0993
logische NAND-Verknüpfung dieser Signale und liefert das Ausgangssignal -DIF(14-15). Sämtliche anderen Schaltungen in Block III-1A werden einmal (X1) verwendet, um die angezeigten NAND-Ausgangssignale zu liefern. In Fig. 4 und Block III-1B werden einige Schaltungen mehrfach verwendet. So erzeugt beispielsweise die Schaltung mit den -Eingängen -DIF(14) und -DIF(15) im Schaltungsblock III-1B den NAND-Ausgang -DIF(14-15). Wie durch das Symbol X2 angedeutet, wird diese Schaltung doppelt verwendet und bildet durch NAND-Verknüpfung der Eingangssignale -DIF(22) und -DIF(23) das Ausgangssignal -DIF(22-23). In entsprechender Weise ist die zweite Schaltung von oben in Block III-1B von Fig. 4 insgesamt vierfach (X4) dupliziert. Die erste Verwendung dieser Schaltung ist mi.t den Eingängen -DIFd), -DIF(2) und -DIF(3), welche durch NAND-Verknüpfung das Ausgangssignal -DIF (1.-3) bilden. Diese Schaltung wird ein zweites, drittes und viertes Mal verwendet, bis bei der vierten Verwendung die Eingangssignale -DIF(25), -DIF(26), -DIF(27) durch NAND-Verknüpfung das Ausgangssignal -DIF(25-27) bilden.
Der Block III-2 von Fig. 2 bildet die NAND-Verknüpfungen der Signalgruppen -SAM(O...31), welche von Block II-2 geliefert werden. Die Ausgangssignale des Blocks III-2 sind die in Fig. 4 dargestellten Gruppen-UND-Signale -SAM(G). In Fig.4 werden die Schaltungen von Block III-2 ebenfalls wie dargestellt doppelt verwendet.
In Fig. 2 bildet der Block III-3 die Gruppen-NAND-Verknüpfungen von Signalkombinationen -Z(0...31), welche von Block II-4 geliefert werden. Einzelheiten der Schaltung von Block III-3 sind in Fig. 4 dargestellt.
In Fig. 2 besteht die Logikstufe IV aus den Blöcken IV-1,IV-2, IV-3, IV-4 und IV-5. Der Block IV-1 bildet durch UND-Verknüpfung Kombinationen der Signale -DIF(O...31), -a(1...31), -SAM(G) und -SAM(X) und bildet die vier Ausgangssignale +ERSTE DIF (A...D). Ein Ausgangssignal von Block IV-1 zeigt
409849/0993
an, daß in der ersten Bitstelle ein Unterschied zwischen entsprechenden Bits in OP1 und OP2 besteht, indem OP1 an dieser Stelle eine Eins (und OP2 notwendigerweise eine Null) aufweist.
Der in Fig. 5 dargestellte Block IV-1 weist vier Schaltungsgruppen auf, welche die Ausgangssignale +ERSTE DIF(A), +ERSTE DIF(B), + ERSTE DIF(C) und +ERSTE DIF(D) erzeugen. Wenn diese vier Signale ihrerseits in ODER-Verknüpfung verbunden werden, bedeutet eine Eins, daß die erste Unterschiedsbitstelle eine Eins in Operand OP1 ist. In den Schaltungen, welche das erste Ausgangssignal +ERSTE DIF(A) erzeugen, sind sieben UND-Gatter an ihren Ausgängen logisch in ODER-Schaltung miteinander verknüpft. Das Gatter mit den Eingängen -DIF(I) und -a(1) bildet eine logische UND-Verknüpfung dieser Eingänge und erzeugt das Ausgangssignal +DIF(D. Wenn +DIF(I) eine Eins ist, ist dadurch angezeigt, daß Bit 1 von Operand OP1 eine Eins ist, wenn zwischen Bit 1 von 0P1 und 0P2 eine Differenz besteht.
In Fig. 5 erzeugt das Gatter mit den Eingängen -SAM(I), -DIF(2) und -a(2) ein Ausgangssignal, wenn sämtliche Bits höherer Ordnung von Bit 2 (mit Ausnahme des Vorzeichenbits) gleich sind, die entsprechenden Bits 2 von OP1 und 0P2 unterschiedlich sind und Bit 2 in Operand 0P1 eine Eins ist.
In Fig. 5 erzeugt das Gatter mit den Eingängen -SAM(1-3), -DIF(4) und -a(4) ein Ausgangssignal, wenn sämtliche Bits höherer Ordnung von Bit 4 an gleich sind, Bit 4 in OP1 und 0P2 unterschiedlich ist und Bit 4 in Operand OP1 eine Eins ist.
In entsprechender Weise werden die Gatter von Block IV-1 mit den Eingängen -a(17) und -a(25) abgetastet, um zu ermitteln, ob ein Unterschied in den entsprechenden Bits besteht und ob alle Bits hoher Ordnung mit Ausnahme des Vorzeichenbits gleich sind. Wenn eines der sieben angedeuteten Gatter ein Ausgangssignal erzeugt, erzeugt die DOT-ODER-Verknüpfung ein Ausgangssignal, welches zur Entstehung des Signals +ERSTE DIF(A) führt.
409849/0993
Die zweite Gatterspalte in Fig. 5 gilt für die Bitstellen 20, 18, 14, 12, 10, 7, 5 und 3 und erzeugt ein Ausgangssignal bei +ERSTE DIF(B), wenn für eines dieser Bits das OPi-Bit eine Eins ist, sämtliche Bits höherer Ordnung für beide Operanden gleich sind und die entsprechende Bitstelle in OP2 eine Null ist. Die vier Signale +ERSTE DIF(A...D) suchen zusammen sämtliche Bits 1 bis 31 ab, so daß ein logisches ODER dieser vier Signale anzeigt, daß bei erstmaliger Erregung ein Unterschied aus einer 1 in OP1 besteht. Die Schaltung von Block IV-1 in Fig. 5 führt die erste Differenzsuche aus, welche in Verbindung mit den vorstehenden Tabellen I und IV erforderlich ist.
In Fig. 2 erhält der Block IV-2 die Gruppen-UND-Signale -DIF(G), und als -DIF(X) bezeichnete ausgewählte einzelne -DIF(0...31)-Signale zugeführt und erzeugt die Ausgangssignale +DIF (0.,.V-3.1) und +DIF (1 . . . 31) . Die Signale +DIF (0 ... 31) und +_DIF(1o..31) zeigen an, daß eine Differenz an jeder Bitstelle 0 bis 31 bzw. 1 bis 31 besteht. Die Einzelheiten des Blocks IV-2 sind in Fig. 7 dargestellt. Die Eingänge -DIF(1-34), -DIF(25-29), -DIF(30), -DIF(31) und -DIF(O) werden logisch UND-verknüpft zum Ausgangssignal +DIF(0-31), sowie logisch NAND-verknüpft zum Ausgangssignal -DIF(0-31). Die Ausgänge für Bits 1 bis 31 werden in entsprechender Weise gebildet, mit dem Unterschied, daß das Eingangssignal für Bit 0 nicht an das UND/NAND-Gatter angelegt ist.
In Fig. 2 zeigt der Block IV-3 bei Erregung an, daß die ersten, in einander entsprechenden Bitstellen von OP1 und 0P2 identischen Bits Einsen sind. Der Block IV-3 weist die Eingänge
-SAiIiO. ..31) , -a(1 31), -DIF(G) und -DIF(X) auf. Die
Einzelheiten des Blocks IV-3 sind in Fig. 6 dargestellt und analog zu dem vorstehend beschriebenen Block IV-1. In Fig.6 wird jede Bitstelle von 1 bis 31 auf Identität geprüft, unter der Bedingung, daß sämtliche Bits hoher Ordnung mit Ausnahme des Vorzeichenbits unterschiedlich sind. Die Ausgänge jeder Bitstelle werden durch ODER-Verknüpfung zu den vier Signalen
409849/0993
+ERSTE SAM(A...D) geformt, die bei ODER-Verknüpfung und nach Erregung anzeigen, daß das erste Gleichheitsbit eine Eins ist. Der Block IV-3 erzeugt außerdem die Ausgänge -ERSTE 1 SAM für jede der Bitstellen 1 bis 31. So zeigt beispielsweise das Ausgangssignal -ERSTE 1 SAM(25) an, daß die Bitstelle 25 die erste Bitstelle mit Gleichheit ist.
Die Schaltung von Block IV-3 von Fig. 6 führt die gleiche Suche in Verbindung mit den vorstehenden Tabellen II und III aus.
Der in Fig. 2 dargestellte Block IV-4 verwendet eine Kombination von -SAM-Signalen für sämtliche Bits 0 bis 31 oder 1 bis 31 zwecks Herleitung von Identitätsbeziehungen mit oder ohne Vorzeichen für OP1 und OP2. So verknüpft insbesondere die erste Schaltung von Block IV-4 in Fig. 7 durch UND- und NAND-Verknüpfung die Eingangssignale -SAM(1-24), -SAM(25-29), -SAM(30) und -SAM(31)f um die Identität von OP1 und OP2 unter Nichtbeachtung des O-Bits hoher Ordnung anzuzeigen. Die zweite Schaltung des Blocks IV-4 führt den UND-NAND-Vergleich außerdem einschließlich des O-Bits aus. Die dritte Schaltung von Block IV-4 in Fig. 7 erzeugt die gleichen Ausgangssignale wie die erste Schaltung und zeigt an, daß sämtliche Bits in den Operanden OP1 und OP2 von 1 bis 31 identisch sind, wobei die dritte Schaltung aus Stromversorgungsgründen zusätzlich zur ersten Schaltung eingeschlossen ist. Die Schaltung IV-2(2) wird für die Bedingungen verwendet, welche in den Fällen 1 und 2 der vorstehenden Tabelle I genannt sind.
Der Block IV-5 von Fig. 2 erhält Eingangssignale -Z(G) von dem Gruppen-NAND-Block III-3 und ausgewählte der Signale -Z(O...31) von den ODER-Gattern des Blocks II-4. Die Funktion des Blocks IV-5 besteht darin, Ausgangssignale -ZR zu erzeugen, welche angeben, daß sämtliche Bits niedriger Ordnung Nullen sind, beginnend mit einander entsprechenden, unterschiedlichen Bits in beiden Operanden. In Fig. 7 sind die Einzelheiten von Block IV-5 dargestellt. Als typisches Gatter verknüpft das
409849/0933
Gatter mit den Eingängen -Z(3), -Z(4-7) und -Z(8-31) bei seiner entsprechenden Ansteuerung durch NAND-Verknüpfung diese Eingangssignale und erzeugt ein Ausgangssignal -ZR3. Das Eingangssignal -Z(3) zeigt an, daß in OP1 und OP2 beide Bits 3 Nullen sind. Das Eingangssignal -Z(4-7) zeigt an, daß sämtliche Bits 4 bis 7 in beiden Operanden Nullen sind. Das Eingangssignal -Z(8-31) zeigt an, daß sämtliche Bits 8 bis 31 in beiden Operanden Nullen sind. Das Ausgangssignal -ZR3 zeigt daher an, daß sämtliche Bits 3 bis 31 einschließlich in beiden Operanden Nullen sind. In entsprechender Weise erzeugen sämtlichen anderen Gatter in Block IV-5 von Fig. 7 Signale, welche anzeigen, daß sämtliche Bits niedriger Ordnung einschließlich der nachgestellten Ziffer bis hin zu Bit 31 einschließlich identisch gleich Null sind in beiden Operanden. Der Nullzustand von Bits niedriger Ordnung, welcher durch die Schaltung IV-5 erzeugt wird, wird für die Fälle 7 und 8 der Tabelle II verwendet.
In Fig. 2 erhält der Block V-1 die Eingangssignale +ERSTE DIF (A...D) zugeführt und verknüpft diese durch ODER- oder NOR-Verknüpfung zur Erzeugung der Ausgangssignale +ERSTE DIF PLUS. Wie in Block V—1 von Fig. 9 im einzelnen angedeutet, besteht die Funktion des Blocks V-1 darin, eine ODER-Verknüpfung der Eingangssignale und Ausgangssignale zu bilden, durch welche angezeigt wird, daß der erste Unterschied in entsprechenden Bits von OP1 und OP2 von hoher Ordnung zu niedriger Ordnung eine Eins in OP1 und eine Null in 0P2 ist.
Der Block V-2 in Fig. 2 erhält die vier Eingangssignale +ERSTE SAM(A...D) zugeführt und bildet.eine ODER- oder NOR-Verknüpfung derselben zwecks Herleitung der Ausgangssignale +ERSTE SAM PLUS. Die ODER-NOR-Verknüpfung ist in Einzelheiten in Block V-2 von Fig. 9 dargestellt. Die Ausgänge +ERSTE SAM PLUS zeigen an, daß an der ersten Stelle von der hohen zur niedrigen Ordnung,in welcher einander entsprechende Bits von 0P1 und 0P2 identisch sind, die Identität aus einer Eins besteht.
409849/0993
Der Block V-3 von Fig. 2 bildet die NOR-Verknüpfung der Ein- . gänge +ERSTE SAM(A...D), +DIF(0-31), -DIF(O), +b(0) und +a(0) zwecks Bildung der Ausgangssignale -UN1 und -UN2. Die Einzelheiten von Block V-3 sind in Fig. 9 dargestellt, in welcher die erste Schaltung das Ausgangssignal -ÜN1, und die zweite Schaltung das Ausgangssignal -UN2 erzeugt. In der ersten Schaltung ist das obere Gatter ein NOR-Gatter, welches bei Vorhandensein einer Gleichheit anzeigt, ob diese erste Gleichheit eine Eins ist. Das untere Gatter ist ein NAND-Gatter, welches anzeigt, daß nicht alle Bits 0 bis 31 unterschiedlich sind, +DIF(0-31), und daß Bit 0 unterschiedlich, -DIF(O), sowie daß OP1 positiv, +a(0) ist. Das Ausgangssignal -ÜN1 ist ein ODER-Wert der negativen Ausgangssignale beider Gatter und zeigt an, daß OP1 größer oder gleich ist in Absolutwert zu OP2. Die Schaltung V-3-1 von Fig. 9 wird verwendet bei Ausführung des Vergleichs im Falle 5 der vorstehenden Tabelle II. In entsprechender Weise zeigt die zweite Schaltung von Block V-3 in Fig. 9 an, daß OP2 größer oder gleich ist im Absolutwert zu OP1, wie in Fall 6 von vorstehender Tabelle II angegeben .
Der Block V-4 von Fig. 2 bildet die UND-Verknüpfung der Signale -ERSTE 1 SAM(1...31), -DIF(O) und -ZR und bildet die Ausgangssignale +OP1 = OP2(A...D). Die Funktion von Block V-4 besteht darin, bei unterschiedlichen O-Bits (Operanden entgegengesetzten Vorzeichens) und erster Gleichheit in Form einer Eins anzuzeigen, daß sämtliche Bits niedriger Ordnung von der ersten Gleichheitsbitstelle an Nullen sind.
In Fig. 8 sind Einzelheiten von Block V-4 dargestellt. Dieser weist vier Schaltungen auf, welche die vier Signale OPi = OP2(A...D) erzeugen. Das erste Gatter, welches dem ersten Signal +0P1 = OP2(A) zugeordnet ist, ist typisch für sämtliche Gatter und weist die Eingänge -DIF(O), -ERSTE 1 SAM(D und -ZR(2) auf. Dieses Gatter führt die UND-Verknüpfung dieser Eingangssignale aus, durch welche angezeigt wird, daß die
409849/0993
ersten Bits Null (O) unterschiedlich sind, das erste Gleichheitsbit eine Eins (1) ist und sämtliche Bits niedriger Ordnung (d.h. die Bits 2 bis 31) in beiden Operanden Nullen sind. Der Ausgang des ersten Gatters wird durch ODER-Verknüpfung mit den Ausgängen sieben weiterer UND-Gatter verknüpft und bildet das erste Ausgangssignal +OP1 = OP2(A). In entsprechender Weise verknüpfen die anderen drei Schaltungen in Block V-4 und bilden die vier angezeigten Signale +OP1 = OP2(A...D)f welche wie in Verbindung mit Fig. 11 beschrieben bei ODER-Verknüpfung anzeigen, daß OP1 gleich ist OP2.
In Fig. 2 erhält der Block V-5 die Eingangssignale +ERSTE SAM (A,..D), -DIF(O), +b(0) und +a(0) zugeführt und erzeugt die Ausgangssignale -AR1 und -AR2. Die Einzelheiten des Blocks V-5 sind in Fig. 9 dargestellt, aus welchem ersichtlich ist, daß das Signal -AR1 durch eine ODER-Verknüpfung der negativen Ausgänge beider Gatter erzeugt wird. Das erste Gatter ist ein NOR-Gatter, welches anzeigt, daß das erste Gleichheitsbit ein Bit 1 ist. Das zweite Gatter zeigt an, daß das Bit 0 unterschiedlich ist und das Bit 0 von OP2 keine 1 ist. Das Signal -AR2 wird unter den gleichen Bedingungen erzeugt, mit der Ausnahme, daß Bit 0 von Operand nicht eine 1 ist.
Die Stufen VI, VII und VIII der Schaltung von Fig. 2 erhalten Eingangssignale von den vorhergehenden Stufen I bis V zugeführt" und entwickeln weitere Gleichheitsbeziehungen, die typischerweise dazu verwendet werden, Konditions- oder Zustandskodesignale in den Ausgangsleitungen 147 einzustellen. Die Einzelheiten der Blöcke VI, VII und VIII von Fig. 2 sind in den Fig. 10 und 11 dargestellt.
Figur 11 zeigt sechzehn Schaltungen, welche von 0 bis 15 durchnumeriert sind. Die Schaltungen VI-4 stellen die Ausgänge für die Fälle 3 und 6 der vorstehenden Tabelle I dar.
409849/0993
Für die Schaltung VI-4 von Fig. 11 und für Fall 3 der vorstehenden Tabelle I ergibt sich die Beziehung, daß der Absolutwert von OP1 größer ist als der Absolutwert von OP2, was immer dann der Fall ist, wenn ein Ausgangssignal +OP1 > OP2LS vorhanden ist. Dieses Signal wird in der Schaltung VI-4 durch ODER-Verknüpfung der Ausgänge der beiden UND-Gatter erzeugt. Das erste UND-Gatter wird immer dann angeschaltet, wenn beide Operanden positiv (-OPS POS) sind und der erste Unterschied eine 1 in OP1 (-ERSTE DIF POS) ist. Das zweite UND-Gatter liefert ein Ausgangssignal, wenn beide Operanden negativ (-OPS NEG) sind, die Bits 1 bis 31 nicht alle gleich sind (+SAM(I-31)) und wenn der erste Unterschied eine 1 in 0P1 (+ERSTE DIF POS) ist. In der Schaltung VI-4 ist das oberste Gatter in Betrieb für Fall 3 von Tabelle I, während das unterste Gatter in Betrieb ist für Fall 6 von Tabelle I.
In entsprechender Weise wird die Schaltung VI-3 für die Fälle 4 und 5 der Tabelle I benutzt.
Die Fälle 1 bis 4 von Tabelle II werden entsprechend Fig. 11 durch die Schaltungen VI-9, VI-10, VI-11 bzw. VI-12 gedeckt. Die Fälle 5 und 6 von Tabelle II werden durch die Schaltungen V-3-1 bzw. V-3-2 wie oben beschrieben ausgeführt. Die Fälle 7 und 8 von Tabelle II werden gedeckt durch die positiven Ausgänge der Schaltungen VI-O.
Die anderen Schaltungen VI-1, VI-2, VI-5, VI-6, VI-7, VI-8, VI-13, VI-14 und VI-15 in Fig. 11 stellen weitere interessierende Gleichheitsbeziehungen dar, die entsprechend der Erfindung ermittelt werden können. Die in Fig. 11 veranschaulichten Gleichheitsbeziehungen stellen jedoch lediglich Veranschaulichungsbeispiele dar und umfassen keineswegs sämtliche Möglichkeiten. So lassen sich beispielsweise die Schaltungen VI-14 und VI-15 zur Klärung der Mehrdeutigkeit in den Fällen 5 und 6 von Tabelle II verwenden, bei welcher es darum geht, ob die Gleichheitsbeziehung besteht oder ob einer der
409849/0993
beiden Operanden größer oder kleiner als der jeweils andere ist. Wie in den Schaltungen VI-14 und VI-15 angedeutet, wird die Abwesenheit von Fall 7 und Fall 8 der Bedingungen von Tabelle II dazu verwendet, anzuzeigen, daß die Ungleichheit der Fälle 5 und 6 als Ergebnis erscheinen muß.
Die in Fig. 10 dargestellte Ausgangsschaltung 922 stellt einen Teil der Blöcke VI, VII und VIII von Fig. 2 dar. Die Schaltung 922 erhält Eingangssignale von Block VI der Fig. 11 und von den anderen Blöcken der Fig. 2 zugeführt und liefert Ausgangssignale in den vier Leitungen 147. Insbesondere werden die Größensteuersignale der Schaltung von Fig. 11 als Eingangssignale an die UND-Gatter M1 bis M6 angelegt. So ist beispielsweise das Ausgangssignal der Schaltung IV-4-2 der Fig.7 und das Ausgangssignal der Schaltung VI-O der Fig. 11 an die UND-Gatter M1 bzw. M2 angelegt. Diese Eingangssignale werden durch eine UND-Verknüpfüng mit dem Ausgangssignal der Steuerschaltung 931 bzw. 932 verknüpft und bilden Eingangssignale an dem ODER-Gatter 950. Im angesteuerten Zustand liefert das ODER-Gatter 950 ein Ausgangssignal, durch welches angezeigt ist, daß die Leitung für Zustandskode-gleich-null (CC=O) der vier Ausgangsleitungen 147 erregt werden muß.
In entsprechender Weise kombinieren die UND-Gatter M3 bis M6 Steuersignale von den Steuerschaltungen 932 bis 936 mit Ausgangssignalen der Schaltungen V-3-2, VI-10. VI-12 bzw. VI-3. Diese Ausgangssignale der UND-Gatter M3 bis M6 werden im Gatter 951 ODER-verknüpft und bilden auf einer der vier Leitungen 147 das Signal Zustandskode-gleich-eins (CC =1).
Das Ausgangssignal Zustandskode-gültig (CCV) erscheint außerdem auf einer der Leitungen 147 und wird durch die Schaltung 949 erzeugt.
Die in Fig. 10 dargestellten Einrück- oder Halteschaltungen (latch circuits) L1 bis L8 dienen dazu, in den Gattern OF1
409849/0993
bis OF8 erzeugte überlaufbedxngungen zu speichern. Die Überlaufbedingungen in den Gattern OF1 bis OF8 entsprechen den vorstehend in Verbindung mit den Fällen 3, 4 und 5 der Tabelle III und den Fällen 1, 3 und 6 der Tabelle IV beschriebenen Bedingungen.
Wie anhand der Betrachtung von Gatter OF1 in Fig. 10 und aus Fig. 1 ersichtlich ist, wird das Eingangssignal -A CYC1 von den Steuer-Tri'ggerschaltungen· 145 über die Leitung 146 von Fig. 1 erzeugt und gibt als Dekodierung des Operationskodes an, daß eine Additionsinstruktion spezifiziert ist. Das zweite Eingangssignal gibt an, daß beide Operanden OP1 und OP2 negativ sind, während das dritte Eingangssignal angibt, daß nicht in jeder Bitstelle 1 bis 31 eine Differenz vorhanden ist. Das Ausgangssignal von Gatter OF1 wird in die Halteschaltung L1 eingerückt. Das zweite Gatter OF2 liefert ein Ausgangssignal, wenn die erste Gleichheitsstelle ein 1-Bit ist. Dieses Signal wird in L2 gespeichert und in Gatter 957 einer UND-Verknüpfung unterworfen. Das UND-Gatter behandelt die Eingangssignale als negativ, so daß das Eingangssignal von L2 ein Signal ist, welches anzeigt, daß das erste Gleichheitsbit in den entsprechenden Bits von OP1 und OP2 keine 1 ist und daher eine 0 sein muß. Die Kombination der Zustände von OF 2 und OF1 genügt den Erfordernissen von Fall 5 in Tabelle III, In entsprechender Weise genügt die Kombination der Gatter 0F2 und OF3 den Bedingungen von Fall 3 in Tabelle III.
Das Gatter OF4 von Fig. 10 genügt den Bedingungen von Fall 4 in Tabelle III.
Wie anhand Fig. 10 und Tabelle IV ersichtlich, erzeugt das Gatter OF6 ein Ausgangssignal, welches anzeigt, daß die erste Differenz eine 1 in 0P1 ist und reziprok, daß die erste Differenz eine 0 in OP2 ist. Gatter OF5 in Kombination mit Gatter OF6 genügt nach UND-Verknüpfung hinter den Schaltungen L5 und L6 in Gatter 957 der Bedingung von Fall 3 in Tabelle IV. In
409849/0993
entsprechender Weise genügt die Kombination der Gatter OF6 und OF7 der Bedingung von Fall 3 in Tabelle IV. Schließlich genügt das Gatter OF8 der Bedingung von Fall 1 in Tabelle IV. Die Ausgänge der Halteschaltungen L4 und L8 durchlaufen Inverter 958 und werden zusammen mit den Ausgängen der UND-Gatter 957 in ODER-Verknüpfung gebracht, um das Ausgangssignal Zustandskode-gleich-3 (CC =3) zu bilden, welches einen der vier Ausgänge in den Leitungen 147 bildet.
Wie anhand Fig. 10 ersichtlich, werden die durch die Steuerschaltungen 931 bis 936 (die typischerweise Halteschaltungen wie die Halteschaltungen 941 bis 948 aufweisen) und die Halteschaltungen 941 bis 948 erzeugten Steuersignale gemeinsam mit der Takt- und Steuerschaltung 924 von Fig. 1 und den Ausgängen der Steuer-Triggerschaltungen 145 erzeugt. Die Taktsteuerung des Datenverarbeitungssystems erfolgt bevorzugt in der Weise, welche in einer weiteren Patentanmeldung derselben Anmelderin mit dem Titel "Taktgeber und Verfahren zur Taktsignalerzeugung in einem Datenverarbeitungssystem", Akt.-Z. P 23 53 253.8, Anmeldetag 24. Oktober 1973 beschrieben ist. Die Eingangssignale in den Leitungen 285 und 286 werden wie in dieser anderen Patentanmeldung beschrieben als Ausgangssignale von (nicht dargestellten) Halteschaltungen in einer Taktperiode erzeugt, die Information durchläuft den Operandenvergleicher von Fig.2 und wird in der nächstfolgenden Taktperiode in Halteschaltungen wie z.B. L1 bis L8 von z.B. Fig. 8 gespeichert. Die Halteschaltungen können einen Teil des erfindungsgemäßen Operandenvergleichers bilden oder nach freier Wahl des Konstrukteurs auch getrennt von dieser ausgebildet sein. Wenn der Vergleich nicht innerhalb der Taktperiode des Datenverarbeitungssystems ausgeführt werden kann, werden Halteschaltungen verwendet, um Daten wo erforderlich an einem Vergleichszwischenpunkt zu speichern. Der Vergleich wird dann in einer zweiten oder nachfolgenden Taktperiode vervollständigt.
Der erfindungsgemäße Operandenvergleicher wird dann verwendet,
409849/0993
wenn der Zustandskode zu Ende des Takts E1 der Instruktionsverarbeitungseinheit eingestellt werden soll. Dementsprechend sind die Takt- und Steuersignale in Fig. 10 und die Eingangssignale zu dem Operandenverglexcher von Fig. 2 und im System von Fig. 1 allgemein wirksam während der beiden vor dem Takt E1 liegenden Takte, d.h. während OP1 für Operandenpufferzugriffsbeginn und OP2 für Operandenzugriffsende. Vor oder während dieser Periode wird der Operationskode der Zustandskodeeinstellinstruktion dekodiert, um die Steuer-Triggerschaltungen 145 einzustellen. Wie aus Fig. 10 ersichtlich, zeigt das Signal -A CYC1 eine Addition, und das Signal -S CYC1 eine Subtraktion an, die anderen Takt- und Steuersignale liegen als Eingangssignale an den Gattern von Fig. 10 und dienen zur Ansteuerung der Ausgangssignale in den Leitungen 147 bei Beendigung des Takts E1.
Zur Darstellung der Arbeitsweise des erfindungsgemäßen Operandenvergleichers soll ein Vergleich von zwei Gleitkommaoperanden entsprechend Tabelle I, Fall 4 wie folgt beschrieben werden, wobei OP1 gleich +1/2 χ 16~ und OP2 gleich +3/4 χ 16" ist:
OP1 0 0...01, 100...0, 0 0, 0...0
OP2 0 0...01, 110...0, 0...0, 0...0
ERSTE "DIFF"
Der Vergleich von OP1 und OP2 beginnt mit dem OP1-Eingang in der Vielfachleitung 286 und dem OP2-Eingang in der Vielfachleitung 285 von Fig. 2, wobei diese in den Blöcken 1-1 und 1-2 phasengespaltet werden und Eingangssignale zu den Blöcken der Stufe II bilden.
In Block II-1 wird die Schaltung -DIF(9) erregt und zeigt eine Differenz in Bit 9 von OP1 und OP2 an. Keine der anderen Schaltungen in Block II-1 wird erregt. In Block II-2 werden die Schaltungen -SAM(O 8) und -SAM(IO...31) erregt, wohingegen die Schaltung -SAM(9) nicht erregt wird. In Block II-3
409849/0993
33 " 24211
wird das Signal +OPS POS erregt, da beide Operanden 0P1 und 0P2 positiv sind, wie durch Nullen in den Bits hoher Ordnung (d.h. den am weitesten links stehenden Bits) angedeutet ist. In Block II-4 werden die Signale -Z(O...6) und die Signale -Z(10...31) erregt und zeigen Nullen in sämtlichen Bits mit Ausnahme der Bits 7,8 und 9 von OP1 und OP2 an.
In Block III-1 wird keines der Gruppendifferenzsignale -DIF(G) erregt. In Block III-2 sind die Gruppensignale -SAM(I4-15), -SAM(22-23), -SAM(1-3), -SAM(17-19), -SAM(25-27), SAM(1-5), -SAM(I7-21), -SAM(25-29), -SAM(1-8), -SAM(0-7), -SAM(16-23) und -SAM(24-31) erregt. In Block III-2 sind die Gruppensignale -z(28-3i), -Z(20-23), -Z(12-15), -Z(24-31) und -Z(16-31) erregt. Die Gruppensignale -Z(8-31) und -Z(4-7), welche eines oder mehrere der Bits 7, 8 und 9 einschließen, sind die einzigen, nicht erregten Signale.
In Block IV-1, der in Einzelheiten in Fig. 5 dargestellt ist, ist das UND-Gatter mit den Eingängen -SAM(I-8), -DIF(9) und -a(9) das einzige Gatter, welches angesteuert werden könnte. Dieses UND-Gatter wird jedoch nicht angesteuert, weil das Signal -a(9) null ist. Daher ist keines der Signale +ERSTE DIF(A), ++ERSTE DIF(B), +ERSTE DIF(C) und +ERSTE DIF(D) erregt. In Block IV-2 ist keine Schaltung erregt. In Block IV-3 ist keine Schaltung erregt. In Block IV-4 ist keine Schaltung erregt. In Block IV-5 sind die Signale -ZR(10...31) erregt.
In Block V-1 ist die Schaltung nicht erregt, weil keine der Schaltungen in Block IV-1 erregt ist. In Block V-2 ist keine Schaltung erregt, weil in Block IV-3 keine Schaltung erregt ist. In Block V-4 ist keine Schaltung erregt.
Wie anhand Fig. 11 ersichtlich, ist die Schaltung VI-3 erregt und erzeugt ein logisches Ausgangssignal +0P1 ^ OP2LS, weil das Eingangssignal -OPS POS von Block II-3 und das Eingangssignal +ERSTE DIF PLUS von Block V-1 gleichzeitig angelegt sind. Das Ausgangssignal +0P1 < OP2LS ist Eingangssignal am
409849/0993
Gatter M6 von Fig. 10. Das Ausgangssignal von Gatter M6, welches an einem von der Steuerung 936 vorgegebenen Zeitpunkt erzeugt wird, beaufschlagt das Gatter 951 und erregt eine der Ausgangsleitungen 147, wodurch angezeigt ist, daß der Zustand CC = 1 besteht. Die Steuerung 936 für die typische Gleitkommavergleichsinstuktion ist während des Segments E1 dieser Instruktion erregt.
In den folgenden Beispielen von Tabelle II, Tabelle III und Tabelle IV läßt sich die Arbeitsweise des Operandenvergleichers in den Schaltungen von Fig. 2 in gleicher Weise wie vorstehend für Tabelle I ausgeführt verfolgen.
Als Beispiel sei hier lediglich ein Vorgang in Festkommaarithmetik nach Fall 4 der Tabelle II angegeben, bei dem der 32-bit Operand OP1 gleich -4 in 2'er Komplementärschreibweise ist, während der 32-bit Operand OP2 gleich +2 in Binärschreibweise ist:
OP1 1 1...1100
OP2 0 0...0010
ERSTE "SAM" (=erste Gleichheit)
Ein Beispiel für Tabelle III, Fall 3 bei Festkomma-Additionsinstruktion sei für den Fall angeführt, daß OP1 den Wert
g
+1,610612736 χ 10 und OP2 den gleichen Wert aufweist:
OP1 0 110...0, 0...0, 0...0, 0...0
OP2 0 110 0, 0 0, 0 0, 0 0
I ERSTE "SAM"
OP1 + OP2 1 100...0, 0 0, 0 0, 0 0
Überlauf
Als Beispiel für Tabelle IV7 Fall 6 für Festkommasubtraktionsinstruktion sei angenommen, daß OP2 einen Wert +1,610612736
g
x 10 aufweist und von OP1 subtrahiert wird, welches den Wert
-2,147418113 χ 109 aufweist:
409849/0993
OP1 1 000 0, 0...0, 1...1, 1...1
OP2 0 110...0, 0...0, 0...0, 0...0 * ERSTE "DIFF"
OP1 - OP2 1,0 010...0, 0 0, 1...1, 1...1
L-I ■ Überlauf
Ein Überlauf besteht in den Beispielen für die Tabellen III
und IV, weil die maximale negative Zahl (32 Nullen)
9
-2,147483648 χ 10 und die maximale positive Zahl +2,147483647 χ 109 ist.
-Patentansprüche:
409849/0 993

Claims (9)

  1. Patentansprüche :
    3 Operandenvergleicher für ein Datenverarbeitungssystem, in welchem zur Ausführung von Instruktionen zwei Operanden verwendbar sind, die jeweils aus einer Vielzahl geordneter, von der höchsten bis zur niedrigsten Ordnung angeordneter Bits bestehen, wobei der Operandenvergleicher zum Vergleichen beider Operanden innerhalb des Datenverarbeitungssystems dient und aus einer Vielzahl zur bitweisen Bearbeitung der Operanden dienender elektronischer Schaltungen besteht, gekennzeichnet durch eine erste Schaltung, welche dazu dient/ gleichzeitig einander entsprechende Bits in beiden Operanden zu vergleichen und von der höchsten zur niedrigsten Ordnung fortschreitend das erste Auftreten einer ersten Gleichheitsbeziehung zwischen einander entsprechenden Bits zu ermitteln, eine zweite Schaltung, welche dazu dient, gleichzeitig einander entsprechende Bits in beiden Operanden zu vergleichen und von der höchsten zur niedrigsten Ordnung fortschreitend das erste Auftreten einer zweiten Gleichheitsbeziehung zwischen einander entsprechenden Bits zu ermitteln, und eine dritte Schaltung, welche zur Auswahl der ersten oder der zweiten Schaltungund entsprechenden Auswahl der ersten oder der zweiten Gleichheitsbeziehung dient.
  2. 2. Operandenvergleicher nach Anspruch 1, dadurch gekennzeichnet, daß für Operanden in Festkommaarithmetik die erste Gleichheitsbeziehung aus Identität von Bits besteht, wenn der eine Operand in binärer Schreibweise positiv und der andere Operand in 2"er Komplementärschreibweise negativ ist, und die zweite Gleichheitsbeziehung aus NichtIdentität von Bits besteht, wenn beide Operanden in binärer Schreibweise positiv oder in 2'er Komplementärschreibweise negativ sind.
    409849/0993
  3. 3. Operandenvergleicher nach Anspruch 1, dadurch gekennzeichnet, daß für Operanden in normalisierter Gleitkommaarithmetik die zweite Gleichheitsbeziehung aus Nichtidentität entsprechender Bits mit Ausnahme der Vorzeichenbits besteht, und daß die dritte Schaltung zur Auswahl der zweiten Schaltung ausgelegt ist.
  4. 4. Operandenvergleicher nach Anspruch 1, wobei das Datenverarbeitungssystem zum Abrufen und Speichern erster und zweiter Operanden in Verbindung mit der Ausführung von Instruktionen dienende Vorrichtungen aufweist, und erster und zweiter Operand jeweils aus einer Vielzahl durch die Signale ^a(O. ..n) bzw. +;b(0...n) angegebener geordneter Bits bestehen und "h" gleich ist der Anzahl der Bits, g e k e nnzeichnet durch eine erste Logikstufe, welche die Operanden jeweils als bipolare Signale +a(0...n) bzw. +b(0...n) angibt, eine zweite Logikstufe mit einer zur Ausbildung des Exklusiv-ODER-Werts der Operanden +a(0...n) und +h{0...n) auf einer bitweisen Basis zwecks Herleitung der Signale -DIF dienenden Vorrichtung und mit einer zur Ausbildung des Exklusiv-NOR-Werts der Operanden +a(0...n) und _+b(0...n) auf einer bitweisen Basis zwecks Herleitung der Signale -SAM dienenden Vorrichtung, eine dritte Logikstufe mit einer zur Kombination von -DIF-Signalgruppen dienenden Vorrichtung und einer zur Kombination von -SAM-Signalgruppen dienenden Vorrichtung, eine vierte Logikstufe mit einer zur Kombinationder Signale der ersten, zweiten und dritten Logikstufe und Ausbildung von Signalen ERSTE DIF dienenden Vorrichtungen, wobei diese Signale angeben, daß die erste Differenz zwischen entsprechenden Bits hoher und niedriger Ordnung in den ersten und zweiten Operanden eine Eins im ersten Operanden ist, sowie mit einer zur Kombination der Signale der ersten, zweiten und dritten Logikstufe und Ausbildung von Signalen ERSTE SAM dienenden Vorrichtungen, wobei diese Signale angeben, daß die erste Identität zwischen den Bits in den ersten und zweiten Operanden eine Eins ist.
    409849/0993
  5. 5. Operandenvergleicher nach Anspruch 4, gekennzeichnet durch eine Vorrichtung, welche dazu dient, die Bits hoher Ordnung des ersten und zweiten Operanden abzufühlen, Identität festzustellen und wenn die Bits hoher Ordnung beide Null sind, ein Signal OPS POS, und wenn die Bits hoher Ordnung beide Eins sind, ein Signal OPS NEG zu liefern, eine auf die SAM-Signale ansprechbare Vorrichtung, vermittels welcher anzeigbar ist, daß der Absolutwert des ersten Operanden gleich ist dem Absolutwert des zweiten Operanden, und vermittels welcher ein Signal OP1 = 0P2 S erzeugbar ist, und eine Vorrichtung, welche auf die Signale OPS POS, SAM und ERSTE DIF ansprechbar und vermittels welcher anzeigbar ist, daß der Absolutwert des ersten Operanden größer oder kleiner ist als der Absolutwert des zweiten Operanden.
  6. 6. Operandenvergleicher nach Anspruch 4, wobei die DIF-Signale auch Signale DIF(O) umfassen, vermittels welcher anzeigbar ist, daß erster und zweiter Operand entgegengesetztes Vorzeichen aufweisen, dadurchfcfekennzeichnet, daß eine auf die Signale ERSTE SAM und - DIF(O) ansprechbare Vorrichtung vorgesehen ist, welche dazu dient, die gegenseitigen Größenbeziehungen zwischen erstem und zweitem Operanden, durch welche ausgedrückt ist, welcher der beiden Operanden größer ist, anzuzeigen.
  7. 7. Operandenvergleicher nach Anspruch 6, gekennzeichnet durch eine Vorrichtung, welche auf die Signale ERSTE SAM ansprechbar ist und zur Anzeige dient, wann sämtliche Bits niedriger Ordnung nach dem ersten Identitätsbit, welches eine Eins ist, Nullen sind, und damit anzeigt, daß der Absolutwert des ersten Operanden gleich ist dem Absolutwert des zweiten Operanden.
  8. 8. Operandenvergleicher nach Anspruch 4, gekennzeichnet durch eine auf die Signale ERSTE SAM ansprechbare Vorrichtung,
    409849/0993
    -■- 39 -
    wenn beide Operanden positiv sind und die erste Identität eine Eins ist, wodurch anzeigbar ist, daß überlauf bei der Addition von erstem und zweitem Operanden besteht, eine auf die Abwesenheit von Identität in jeder entsprechenden Bitstelle von erstem und zweitem Operanden, wenn beide Operanden negativ sind, ansprechbare Vorrichtung, vermittels welcher anzeigbar ist, daß überlauf bei der Addition von erstem und zweitem Operanden besteht, und durch eine auf die Signale ERSTE SAM ansprechbare Vorrichtung, wenn beide Operanden negativ sind und die erste Identität eine Null ist, wodurch anzeigbar ist, daß Überlauf bei der Addition von erstem und zweitem Operanden besteht.
  9. 9. Operandenverglexcher nach Anspruch 4, gekennzeichnet durch eine auf die Signale ERSTE DIF ansprechbare Vorrichtung, vermittels welcher für Operanden entgegengesetzten Vorzeichens das NichtVorhandensein von Unterschieden und ein Überlauf bei Subtraktion der Operanden anzeigbar ist, eine auf die Signale ERSTE DIF ansprechbare Vorrichtung, wenn der erste Operand positiv ist und in der ersten entsprechenden Nichtidentitätsstelle eine Eins aufweist, während der zweite Operand negativ ist und eine Null aufweist, wodurch ein überlauf bei Subtraktion der Operanden anzeigbar ist,und eine auf die Signale ERSTE DIF ansprechbare Vorrichtung, wenn der erste Operand negativ ist und in der ersten Nichtidentitätsstelle eine Null aufweist, während der zweite Operand positiv ist und an der entsprechenden Bitstelle eine Eins aufweist, wodurch ein Überlauf bei Subtraktion der Operanden anzeigbar ist.
    409849/0993
DE2421130A 1973-05-14 1974-05-02 Operandenvergleicher Granted DE2421130A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US00360331A US3825895A (en) 1973-05-14 1973-05-14 Operand comparator

Publications (2)

Publication Number Publication Date
DE2421130A1 true DE2421130A1 (de) 1974-12-05
DE2421130C2 DE2421130C2 (de) 1987-07-16

Family

ID=23417529

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2421130A Granted DE2421130A1 (de) 1973-05-14 1974-05-02 Operandenvergleicher

Country Status (6)

Country Link
US (1) US3825895A (de)
JP (1) JPS5629303B2 (de)
CA (1) CA1022682A (de)
DE (1) DE2421130A1 (de)
FR (1) FR2230015B1 (de)
GB (1) GB1453769A (de)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4007439A (en) * 1975-08-18 1977-02-08 Burroughs Corporation Select high/low register method and apparatus
EP0168406B1 (de) * 1984-01-03 1991-04-24 Motorola, Inc. Gleitkomma-zustandskode-erzeugung
US4683546A (en) * 1984-01-03 1987-07-28 Motorola, Inc. Floating point condition code generation
JPS6111003U (ja) * 1984-06-27 1986-01-22 パイオニア株式会社 コ−ドクランパ−
US4967351A (en) * 1986-10-17 1990-10-30 Amdahl Corporation Central processor architecture implementing deterministic early condition code analysis using digit based, subterm computation and selective subterm combination
AU606559B2 (en) * 1987-12-24 1991-02-07 Nec Corporation Circuit for comparing a plurality of binary inputs
JPH0776911B2 (ja) * 1988-03-23 1995-08-16 松下電器産業株式会社 浮動小数点演算装置
GB9618262D0 (en) * 1996-09-02 1996-10-16 Siemens Plc Floating point number data processing means for microcontrollers
GB2317248B (en) 1996-09-02 2001-08-15 Siemens Plc Floating point number data processing means
US6298365B1 (en) * 1999-02-24 2001-10-02 International Business Machines Corporation Method and system for bounds comparator
US9280480B2 (en) 2008-01-11 2016-03-08 International Business Machines Corporation Extract target cache attribute facility and instruction therefor
US7895419B2 (en) 2008-01-11 2011-02-22 International Business Machines Corporation Rotate then operate on selected bits facility and instructions therefore
US7734900B2 (en) * 2008-01-11 2010-06-08 International Business Machines Corporation Computer configuration virtual topology discovery and instruction therefore
US20090182988A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Compare Relative Long Facility and Instructions Therefore
US7870339B2 (en) * 2008-01-11 2011-01-11 International Business Machines Corporation Extract cache attribute facility and instruction therefore
US20090182984A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Execute Relative Long Facility and Instructions Therefore
US20090182992A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Load Relative and Store Relative Facility and Instructions Therefore
US20090182985A1 (en) * 2008-01-11 2009-07-16 International Business Machines Corporation Move Facility and Instructions Therefore
US7739434B2 (en) * 2008-01-11 2010-06-15 International Business Machines Corporation Performing a configuration virtual topology change and instruction therefore

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2884616A (en) * 1954-04-30 1959-04-28 Rca Corp Multiple character comparator
US3143645A (en) * 1961-02-01 1964-08-04 Hughes Aircraft Co Two-way data compare-sort apparatus

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3241114A (en) * 1962-11-27 1966-03-15 Rca Corp Comparator systems
CH431145A (de) * 1963-04-22 1967-02-28 Licentia Gmbh Digitales Vergleichsglied
US3316535A (en) * 1965-04-02 1967-04-25 Bell Telephone Labor Inc Comparator circuit
US3390378A (en) * 1965-10-22 1968-06-25 Nasa Usa Comparator for the comparison of two binary numbers
US3492644A (en) * 1966-03-02 1970-01-27 Monroe Int Parallel comparator using transistor logic
US3601804A (en) * 1969-03-14 1971-08-24 British Aircraft Corp Ltd Digital comparator utilizing dual circuits for self-checking
US3660823A (en) * 1970-07-20 1972-05-02 Honeywell Inc Serial bit comparator with selectable bases of comparison

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2884616A (en) * 1954-04-30 1959-04-28 Rca Corp Multiple character comparator
US3143645A (en) * 1961-02-01 1964-08-04 Hughes Aircraft Co Two-way data compare-sort apparatus

Also Published As

Publication number Publication date
DE2421130C2 (de) 1987-07-16
GB1453769A (en) 1976-10-27
US3825895A (en) 1974-07-23
FR2230015B1 (de) 1978-03-24
JPS5054258A (de) 1975-05-13
CA1022682A (en) 1977-12-13
FR2230015A1 (de) 1974-12-13
JPS5629303B2 (de) 1981-07-07

Similar Documents

Publication Publication Date Title
DE2421130A1 (de) Operandenvergleicher
DE3840969C2 (de)
DE3991231C2 (de) Vektorprozessor und Verfahren zum Suchen einer Stichwortzeichenfolge in einer Textzeichenfolge
DE4309314C2 (de) Feldzusammenstellungseinrichtung zum Vereinigen von Daten
DE2658248C2 (de)
DE2751097A1 (de) Triggerschaltungseinheit
DE1246289B (de) Bedingungsregister fuer eine programmgesteuerte Datenverarbeitungsanlage
DE2626432A1 (de) Arithmetische einheit fuer automatische rechengeraete
DE1197650B (de) Parallel-Addierer
DE2758130C2 (de) Binärer und dezimaler Hochgeschwindigkeitsaddierer
DE2940653A1 (de) Programmierbare logische anordnung
DE2816711A1 (de) Divisionseinrichtung mit uebertrags- rettungsaddierwerk und nicht ausfuehrender vorausschau
DE3524981A1 (de) Anordnung mit einem saettigbaren carry-save-addierer
DE19618120B4 (de) Parallelverarbeitungs-Divisionsschaltung
EP0051079A1 (de) Binäres MOS-Ripple-Carry-Parallel-Addier/Subtrahierwerk und dafür geeignete Addier/Subtrahierstufe
DE2826773A1 (de) Verfahren und schaltungsanordnung zum feststellen der wertigkeit von ziffern in arithmetischen operationen mit dezimalrechnern
DE3303269A1 (de) Verfahren und vorrichtung zur division von bcd-zahlen
DE2830334A1 (de) Multipliziereinrichtung
DE4019646A1 (de) Vorrichtung fuer echtzeitmultiplikation in 2er-komplement-darstellung in einem digitalen signalprozessorsystem und ein verfahren dafuer
DE2952072C2 (de) Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen
DE3104256C2 (de)
DE3134057A1 (de) Datenverarbeitungsanlage
DE1424746A1 (de) Datenverarbeitungsanlage
DE1449540B2 (de) Digitalrechner
DE2135607C2 (de) Schaltungsanordnung zur Inkrementierung oder Dekrementierung

Legal Events

Date Code Title Description
OD Request for examination
D2 Grant after examination
8364 No opposition during term of opposition