DE2421130C2 - - Google Patents
Info
- Publication number
- DE2421130C2 DE2421130C2 DE2421130A DE2421130A DE2421130C2 DE 2421130 C2 DE2421130 C2 DE 2421130C2 DE 2421130 A DE2421130 A DE 2421130A DE 2421130 A DE2421130 A DE 2421130A DE 2421130 C2 DE2421130 C2 DE 2421130C2
- Authority
- DE
- Germany
- Prior art keywords
- bit
- operands
- operand
- signals
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/02—Comparing digital values
- G06F7/026—Magnitude comparison, i.e. determining the relative order of operands based on their numerical value, e.g. window comparator
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
- G06F7/483—Computations 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
Die Erfindung bezieht sich auf eine Vorrichtung zur
Datenverarbeitung, in welcher zwei Operanden, die je aus
einer Vielzahl von der höchsten bis zur niedrigsten Wertigkeit
angeordneter Bits bestehen, zur Ausführung von Befehlen
verwendet werden, nach dem Oberbegriff des Patentanspruchs
1. Solche und ähnliche Datenverarbeitungsvorrichtungen
sind bereits bekannt (US-PS 28 84 616), ebenso wie die
Bearbeitung von Vergleichssignalen in weiteren Logikstufen
(US-PS 31 434 645).
Bei solchen Datenverarbeitungssystemen werden häufig
einen Operandenvergleich erfordernde Befehle anhand aufeinanderfolgender
Additionen oder Subtraktionen ausgeführt,
zu deren vollständiger Durchführung eine Vielzahl
von Rekursivzyklen oder Rekursivfolgen von Arbeitsgängen
der Befehlseinheit erforderlich ist. Derartige Systeme
benötigen verhältnismäßig lange Ausführungszeiten.
Die Auswirkungen langer Ausführungszeiten wie z. B.
aufgrund von Rekursivfolgen von Arbeitsgängen kumulieren
in Systemen, in welchen Befehle vorabgerufen oder
vorgespeichert werden. Wenn beispielsweise ein Verzweigungsbefehl
durch einen Operandenvergleich im Hinblick
auf eine Gleichheitsbeziehung wie z. B. Gleichheit oder
Ungleichheit bedingt ist, muß eine Entscheidung getroffen
werden, ob eine durch den Verzweigungsbefehl angegebene
zielgerichtete Befehlsfolge oder die unveränderte Nichtverzweigungs-Befehlsfolge
durchgeführt werden soll.
Zwar könnte durch Vorabfrage und Vorspeicherung beider
Befehlsfolgen eine Verzögerung vermieden werden, jedoch
müßten für diese Lösung aufwendige redundante Vorrichtungen
vorhanden sein. Andererseits wird durch das Warten
auf die Ausführung des Befehls und die entsprechende Einstellung
der Bedingungskodes wertvolle Verarbeitungszeit
verschenkt. Daher besteht ein Bedarf nach neuartigen
Operandenvergleichern, die Vergleiche mit hoher Geschwindigkeit
ausführen und die frühzeitige Einstellung der
Bedingungskodes ermöglichen.
Der Erfindung liegt die Aufgabe zugrunde, eine der
eingangs genannten Gattung entsprechende Vorrichtung zur
Datenverarbeitung zu schaffen, welche eine ganz besonders
rasche Erzeugung der Zustandskodes ermöglicht und Verzögerungen
bei der Durchführung von Befehlen vermeidet, welche
von den Eigenschaften zweier Operanden abhängen, wie z. B.
Verzweigungsbefehlen.
Diese Aufgabe wird erfindungsgemäß durch die in dem
Patentanspruch 1 genannten Merkmale gelöst.
Eine vorteilhafte Ausgestaltung der Erfindung
ist im Patentanspruch 2 genannt.
Die frühzeitige Erzeugung der Zustandskodes geschieht
durch einen Vergleich von Bit zu Bit der Bitstellungen
jedes Operanden derart, daß eine vorbestimmte Gleichheitsbeziehung
festgestellt wird, wobei unter der Gleichheitsbeziehung
die erste Gleichheit oder Ungleichheit in einander
entsprechenden Bits zu vestehen ist, die von einer
höheren zu einer niederen Wertigkeit der Bits fortschreitend
festgestellt wird. Das Kriterium zur Interpretierung
des Vergleichs der Operanden wird in den Tabellen I
bis IV weiter unten (siehe Seiten 10-14 der DE-OS 24 21 130) gegeben.
Die Durchführung des Vergleichs durch den Operandenvergleicher
erfolgt mit gegenüber dem bisherigen Stand
der Technik außerordentlich hoher Geschwindigkeit. Durch
den bitweisen Vergleich wird die erste Gleichheitsbeziehung
zwischen einander entsprechenden Bits ermittelt,
welche entweder Identität, d. h. 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 -subtraktion. 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
entgegengesetztem Vorzeichen die erste Gleichheitsbeziehung
Identität.
Bei Überlaufanzeige wird die Gleichheitsbeziehung
mit Signalen kombiniert, welche angeben, ob es sich um
eine Substraktions- oder 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.
Im folgenden wird die Erfindung anhand der Zeichnungen
näher erläutert.
Fig. 1 ist ein Blockschaltbild eines Datenverarbeitungssystems,
wobei die den erfindungsgemäßen Operandenvergleicher
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 Darstellung 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 Speichersteuerenheit 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 über die Speichersteuereinheit 4 durch die
Instruktionseinheit 8 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 typischwerweise 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
und Operanden unterschiedlicher 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-R 1-Kode,
einen 4-bit-X 2-Kode, einen 4-bit-B 2-Kode und einen 12-bit-
p 2-Kode. Der OP-Kode spezifiziert eine von 256 möglichen Instruktionen.
Die Felder R 1, X 2 und B 2 identifizieren jeweils
eines von 16 allgemeinen Registern. Das Feld D 2 enthält eine
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 R 1 identifizierten Registers zum Inhalt der Hauptspeicherstelle,
welche adressiert ist durch die Summe der Zahl im Feld
D 2, addiert zum Inhalt des durch das Feld X 2 identifizierten
Registers und wiederum addiert zum Inhalt des durch das Feld
B 2 identifizierten Registers. Das Ergebnis wird in das Register
eingegeben, welches durch das Feld R 1 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ührungseinheit 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ührungseinheit 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ührungseinheit 10 als Teil ihrer Steuerung Zustandstriggerschaltungen
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 Zustandskodebestimmung
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 274 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 Zustandskode 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 bewirkt logische Operationen, Vergleiche,
Zählvorgänge und Prüffunktionen an den Operanden OP 2 und OP 1,
welche über die 32-bit-Vielfachleitungen 285 und 286 eingegeben
werden. Die LUCK-Einheit 20 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 Phasenteiler 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 270 führt Exklusiv-ODER-Funktionen an den Eingangsoperanden
aus und liefert ein Ausgangssignal in der Vielfachleitung
283, sowie ein Eingangssignal für den Operandenvergleicher
274. Der Logikblock 271 führt Exklusiv-NOR-Funktionen
an den Eingangsoperanden aus und liefert an seinem Ausgang
ein Eingangssignal zum Operandenvergleicher 274.
Einzelheiten des Operandenvergleichers 274 von Fig. 1: Der
Operandenvergleicher 274 vergleicht das Eingangssignal OP 1 in
der Vielfachleitung 286 mit dem Eingangssignal OP 2 in der Vielfachleitung
285. In Fig. 2 sind weitere Einzelheiten des
Operandenvergleichers einschließlich der Phasenspalter 266
und 267 und der Logikblöcke 270 und 271 von Fig. 1 dargestellt.
Die Phasenteiler 266 und 267, der Exklusiv-ODER-Logikblock
270 und der Exklusiv-NOR-Logikblock 271 bilden einen Teil des
Operandenvergleichers, 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 274 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 285
und 286 größer, kleiner oder gleich groß sind oder nicht und
ermittelt außerdem, wenn eine
Addition oder eine Subtraktion vorgegeben ist, ob ein Überlaufzustand besteht. 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=0),
Zustandskode-gleich-eins (CC=1) 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)-Zustand
angesetzt. Das Signal Zustandskode-gleich-null heißt,
daß OP 1 gleich ist OP 2. Zustandskode-gleich-eins heißt, daß
OP 1 kleiner ist als OP 2 in der Vergleichsinstruktion und
weiter, daß das Ergebnis kleiner ist als null in den Additions-
und Subtraktionsinstruktionen. Zustandskode-gleich-zwei
heißt, daß OP 2 kleiner ist als OP 1 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 Gleitkommaoperanden 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 Tabelle I bis
IV näher erläutert. In diesen Tabellen werden die Operanden
OP 1 und OP 2 bitweise, d. h. Bit um Bit verglichen. Jedes Bit
in Operand OP 1 wird mit dem entsprechenden im Operanden OP 2
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 OP 1 und OP 2
entweder beide positiv oder beide negativ sind, lassen sich
die Vergleichsregeln in der nachstehenden Tabelle I wie folgt
zusammenfassen:
In Tabelle I gibt die mit "ERSTE DIFF BIT STELLUNG" bezeichnete
Spalte an, ob eine Ungleichheitsbeziehung ("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 OP 1 bezeichnete Spalte gibt an, ob der Operand OP 1
positiv (pos) oder negativ (neg) ist und ob das erste "Differenzbit"
("DIFF" BIT) für OP 1 eine eines (1) oder eine Null (0)
ist, was in den Fällen 3-6 durch die nachgestellten Ziffern
1 bzw. 0 angezeigt ist.
Die Spalte OP 2 gibt für den Operanden OP 2 die gleiche Information
wie die Spalte OP 1 für den ersten Operanden an.
Die Spalte VGL = Vergleich gibt die Beziehung zwischen OP 1 und
OP 2 an, wenn die in den vorstehenden drei Spalten angegebenen
Bedingungen herrschen. Die Vergleichsbeziehung von OP 1 und
OP 2 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 OP 1 identisch ist dem jeweils
entsprechenden Bit im Operanden OP 2. Unter diesen Bedingungen
ist OP 1 gleich OP 2, 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 OP 1 und OP 2 entgegengesetztes
Vorzeichen aufweisen, d. h. der eine Operand
positiv und der andere Operand negativ ist, lassen sich die
Vergleichsregeln wie folgt in Tabelle II zusammenfassen:
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ärschreibweise 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 beide 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.
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 OP 1 und OP 2 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
Gleichheitssuche (auf Nichtidentität) für die in Tabelle I
dargestellten Operationen.
Außer dem anhand der Tabellen I und II dargestellten Größenvergleich
ermitelt 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 negativen 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 OP 1 und OP 2 entsprechend
einer Instruktion addiert werden. Die Operanden
OP 1 und OP 2 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:
In Tabelle III werden die Operanden OP 1 und OP 2 auf Identitäts-
Gleichheitsbeziehung 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 Überlaufzustand ermittelt.
Im Falle 4 wird keine Identität in einander entsprechenden Bits
gefunden, und da beide Operanden negativ sind, besteht ein
Überlaufzustand.
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 OP 2 von OP 1 erfolgt entsprechend den in der
nachstehenden Tabelle IV zusammengefaßten Regeln:
Der Vergleich der Operanden OP 1 und OP 2 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 OP 1 und OP 2.
Im Fall 1 der Tabelle IV wird die Gleichheitsbeziehung nicht
gefunden, da keines der einander entsprechenden Bits einen
Unterschied zeigt, so daß wenn OP 1 positiv und OP 2 negativ
ist, ein Überlaufzustand besteht.
Im Fall 2 wird kein Unterschied gefunden, die Gleichheitsbeziehung
der Nichtidentität besteht nicht und da OP 1 negativ
und OP 2 positiv ist, besteht kein Überlaufzustand.
Im Fall 3 wird die Gleichheitsbeziehung für eine positive Eins
für OP 1 und eine negative Null für OP 2 gefunden, wodurch ein
Überlaufzustand erzeugt wird.
Im Fall 4 wird die Gleichheitsbeziehung mit einer positiven
Null für OP 1 und einer negativen Eins für OP 2 gefunden, wodurch
kein Überlaufzustand erzeugt wird.
Im Fall 5 wird die Gleichheitsbeziehung mit einem negativen
Eins für OP 1 und einer positiven Null für OP 2 gefunden, wodurch
kein Überlaufzustand erzeugt wird.
Im Fall 6 wird die Gleichheitsbeziehung mit einer negativen
Null für OP 1 und einer positiven Eins für OP 2 gefunden, wodurch
ein Überlaufzustand erzeugt wird.
Im Fall 7 wird die Gleichheitsbeziehung für beide positiven
Operanden OP 1 und OP 2 gefunden, wodurch kein Überlaufzustand
erzeugt wird.
Im Fall 8 wird die Gleichheitsbeziehung für beide Operanden OP 1
und OP 2 negativ gefunden, bei welcher kein Überlaufzustand erzeugt
wird.
In den Tabellen I, II, III und IV sind die logischen Vergleiche
angegeben, welche durch den Operandenvergleicher 274
in den Fig. 1 und 2 ausgeführt werden. Alle Vergleiche beruhen
sowohl für Größenvergleich als auch für Überlaufermittlung auf
einer gemeinsamen Vergleichstechnik. Diese Vergleichstechnik
besteht aus einem bitweisen, d. h. Bit um Bit fortschreitenden
Vergleich der Bitstellen beider Operanden zwecks Ermittlung
einer vorbestimmten Gleichheitsbeziehung. Diese Gleichheitsbeziehung
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 Phasenteiler 266 und 267 den die gleichen Bezugszeichen
aufweisenden Phasenteilern von Fig. 1, welche jeweils
an die 32-bit-Eingangs-Vielfachleitung 285 bzw. 286 angelegt
sind. Der Operand OP 1 wird über die Vielfachleitung 286 zugeführt
und besteht aus den 32 bits +a (0), +a (1), . . . +a (31),
welche in Block I-1 als +a (0 . . . 31) bezeichnet sind. Der
Block I-1 weist 32 Phasenteiler, nämlich einen für jeden der
32 Eingänge auf, welche die 32 bipolaren Ausgänge ±a (0), ±a (1),
. . . ±a (31) liefern, die als ±a (0) . . . 31) bezeichnet sind.
In entsprechender Weise werden dem Block I-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 Ausgangssignale
±b (0), ±b (1), . . . ±b (31) liefern, welche als ±b (0 . . . 31) bezeichnet
sind. In Fig. 3 sind die Blöcke I-1 und I-2 in
weiteren Einzelheiten in Verbindung mit einer typischen einzelnen
Bistelle 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 "X 32"
in den rechten unteren Ecken der Blöcke I-1 und I-2 dargestellt
sind. Das Eingangssignal +b (0) wird in entsprechender
Weise phasengespalten und bildet die bipolaren Ausgangssignale
-b (0) und +b (0) oder vereinfacht ±b (0).
Die Ausgangssignale beider Blöcke I-1 und I-2 von Fig. 2 sind
als Eingänge an die Blöcke II-1 bis II-4 in der zweiten Logikstufe II
geschaltet.
In Fig. 2 bilden die mit 270 bezeichneten Logikstufen II-1 die Exklusiv-ODER-Werte
der entsprechenden Bits von OP 1 und OP 2. Die Eingänge ±a (0 . . . 31)
und ±b (0 . . . 31), welche von der Logikstufe I geliefert werden,
bilden die 32 Ausgangssignale -DIF (0 . . . 31).
Die in Fig. 3 dargestellte Schaltung II-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 (0). Das -DIF (0)-Ausgangssignal
ist eine Eins, wenn die Eingangsbits +a (0) und +b (0)
der Operanden OP 1 und OP 2 gleich sind, und ist eine Null, wenn
diese Bits unterschiedlich sind.
Der mit 271 bezeichnete Block II-2 von Fig. 2 bildet den Exklusiv-NOR-Wert der
Eingangsoperanden auf bitweiser Basis und bildet die 32 Ausgangssignale
-SAM (0 . . . 31) aus.
Der Block II-2 in Fig. 3 zeigt eine typische Exklusiv-NOR-Schaltung
für das Bit 0. Die Eingägne -a (0), +b (0), +a (0)
und -b (0) erzeugen das Ausgangssignal +DIF (0).
In Fig. 2 bildet der Block II-3 ODER/NOR und UND/NAND-Kombinationen
der Nullbits von OP 1 und OP 2. Da die Nullbits die
Vorzeichenbits darstellen, geben die Ausgangssignale der Schaltung
von Block II-3 die positiven und negativen Vorzeichenverhältnisse
zwischen OP 1 und OP 2 vor.
Fig. 3 zeigt Einzelheiten der Vorzeichenbitvergleiche in
Block II-3. So stellt beispielsweise das Gatter 920 ein
typisches Gatter, 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-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 II-4 insgesamt 32 ODER-Verknüpfungen
an jedem der entsprechenden Bits 0 bis 32 für OP 1 und OP 2,
welche die 32 Ausgangssignale -Z (0 . . . 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 (0), 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 II.
So kombiniert insbesondere der Block III-1 die Signalgruppen
-DIF (0 . . . 31) logisch und bildet wie in Einzelheiten in den
Fig. 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
logische NAND-Verknüpfung dieser Signale und liefert das Ausgangssigal
-DIF (14-15). Sämtliche anderen Schaltungen in
Block III-1A werden einmal (X 1) 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 X 2 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 (X 4) dupliziert. Die
erste Verwendung dieser Schaltung ist mit den Eingängen -DIF (1),
-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 (0 . . . 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 (0 . . . 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
an, daß in der ersten Bitstelle ein Unterschied zwischen entsprechenden
Bits in OP 1 und OP 2 besteht, indem OP 1 an dieser
Stelle eine Eins (und OP 2 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üpfungen verbunden
werden, bedeutet eine Eins, daß die erste Unterschiedsbitstelle
eine Eins in Operand OP 1 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 (1) und
-a (1) bildet eine logische UND-Verknüpfung dieser Eingänge und
erzeugt das Ausgangssignal +DIF (1). Wenn +DIF (1) eine Eins
ist, ist dadurch angezeigt, daß Bit 1 von Operand OP 1 eine Eins
ist, wenn zwischen Bit 1 von OP 1 und OP 2 eine Differenz besteht.
In Fig. 5 erzeugt das Gatter mit den Eingängen -SAM (1),
-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 OP 1 und OP 2 unterschiedlich
sind und Bit 2 in Operand OP 1 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 OP 1 und
OP 2 unterschiedlich ist und Bit 4 in Operand OP 1 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.
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 OP 1-Bit
eine Eins ist, sämtliche Bits höherer Ordnung für beide Operanden
gleich sind und die entsprechende Bitstelle in OP 2 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 OP 1 besteht. Die Schaltung von Block
IV-1 in Fig. 5 führt die erste Differenzsuche aus, welche in
Verbindung mit den vorstehenden Tabellen Iund 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 . . . 31) und ±DIF (1 . . . 31). Die Signale ±DIF (0 . . . 31) und
±DIF (1 . . . 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-24),
-DIF (25-29), -DIF (30), -DIF (31) und -DIF (0) 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 OP 1 und OP 2 identischen
Bits Einsen sind. Der Block IV-3 weist die Eingänge
-SAM (0 . . . 31), -a (1 . . . 31), -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
+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. 3 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 OP 1 und OP 2. 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), um die Identität von OP 1 und OP 2 unter
Nichtbeachtung des 0-Bits hoher Ordnung anzuzeigen. Die
zweite Schaltung des Blocks IV-4 führt den UND-NAND-Vergleich
außerdem einschließlich des 0-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ämtlche Bits in
den Opeanden OP 1 und OP 2 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 (0 . . . 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
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 -ZR 3. Das
Eingangssignal -Z (3) zeigt an, daß in OP 1 und OP 2 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 -ZR 3
zeigt daber an, daß sämtliche Bits 3 bis 31 einschließlich
in beiden Operanden Nullen sind. In entsprechender Weise
erzeugen sämtliche 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 OP 1 und OP 2 von hoher Ordnung zu niedriger Ordnung
eine Eins in OP 1 und eine Null in OP 2 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 dargestellt. Die Ausgänge ±ERSTE
SAM PLUS zeigen an, daß an der ersten Stelle von der hohen zur
nierigen Ordnung, in welcher einander entsprechende Bits von
OP 1 und OP 2 identisch sind, die Indentität aus einer Eins besteht.
Der Block V-3 von Fig. 2 bildet die NOR-Verknüpfung der Eingänge
+ERSTE SAM (A . . . D), +DIF (0-31), -DIF (0) und +a (0)
zwecks Bildung der Ausgangssignale -UN 1 und -UN 2. Die Einzelheiten
von Block V-3 sind in Fig. 9 dargestellt, in welcher
die erste Schaltung das Ausgangssignal -UN 1, und die zweite
Schaltung das Ausgangssignal -UN 2 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 (0), sowie
daß OP 1 positiv, +a (0) ist. Das Ausgangssignal -UN 1 ist ein
ODER-Wert der negativen Ausgangssignale beider Gatter und
zeigt an, daß OP 1 größer oder gleich ist in Absolutwert zu
OP 2. 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ß OP 2 größer oder gleich ist im Absolutwert
zu OP 1, 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 (0) und -ZR und bildet die Ausgangssignale
+OP 1 = OP 2 (A . . . D). Die Funktion von Block V-4 besteht
darin, bei unterschiedlichen 0-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 OP 1 =
OP 2 (A . . . D) erzeugen. Das erste Gatter, welches dem ersten Signal
+OP 1 = OP 2 (A) zugeordnet ist, ist typisch für sämtliche
Gatter und weist die Eingänge -DIF (0), -ERSTE 1 SAm (1) und
-ZR (2) auf. Dieses Gatter führt die UND-Verknüpfung dieser
Eingangssignale aus, durch welche angezeigt wird, daß die
ersten Bits Null (0) 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 +OP 1 = OP 2 (A). In entprechender
Weise verknüpfen die anderen drei Schaltungen in Block
V-4 und bilden die vier angezeigten Signale +OP 1 = OP 2 (A . . . D),
welche wie in Verbindung mit Fig. 11 beschrieben bei ODER-
Verknüpfung anzeigen, daß OP 1 gleich ist OP 2.
In Fig. 2 erhält der Block V-5 die Eingangssignale +ERSTE SAM
(A . . . D), -DIF (0), +b (0) und +a (0) zugeführt und erzeugt die
Ausgangssignale -AR 1 und -AR 2. Die Einzelheiten des Blocks
V-5 sind in Fig. 9 dargestellt, aus welchem ersichtlich ist,
daß das Signal -AR 1 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 OP 2 keine 1 ist. Das Signal
-AR 2 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.
Fig. 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.
Für die Schaltung VI-4 von Fig. 11 und für den Fall 3 der vorstehenden
Tabelle I ergibt sich die Beziehung, daß der Absolutwert
von OP 1 größer ist als der Absolutwert von OP 2, was
immer dann der Fall ist, wenn ein Ausgangssignal +OP 1 <OP 2 LS
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 OP 1 (-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 (1-31)) und wenn der erste Unterschied eine 1 in OP 1
(+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-0.
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
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 M 1 bis M 6 angelegt. So ist beispielsweise
das Ausgangssignal der Schaltung IV-4-2 der Fig. 7
und das Ausgangssignal der Schaltung VI-0 an die
UND-Gatter M 1 bzw. M 2 angelegt. Diese Eingangssignale werden
durch eine UND-Verknüpfung 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=0) der
vier Ausgangsleitungen 147 erregt werden muß.
In entsprechender Weise kombinieren die UND-Gatter M 3 bis M 3
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 M 3 bis M 6 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) L 1 bis L 8 dienen dazu, in den Gattern OF 1
bis OF 8 erzeugte Überlaufbedingungen zu speichern. Die Überlaufbedingungen
in den Gattern OF 1 bis OF 8 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 OF 1 in Fig. 10 und aus
Fig. 1 ersichtlich ist, wird das Eingangssignal -A CYC 1 von
den Steuer-Triggerschaltungen 145 über die Leiung 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 OP 1 und OP 2
negativ sind, während das dritte Eingangssignal angibt, daß
nicht in jeder Bitstelle 1 bis 31 eine Differenz vorhanden ist.
Das Ausgangssignal von Gatter O 1 wird in die Halteschaltung
L 1 eingerückt. Das zweite Gatter OF 2 liefert ein Ausgangssignal,
wenn die erste Gleichheitsstelle ein 1-Bit ist. Dieses
Signal wird in L 2 gespeichert und in Gatter 957 einer UND-
Verknüpfung unterworfen. Das UND-Gatter behandelt die Eingangssignale
als negativ, so daß das Eingangssignal von L 2
ein Signal ist, welches anzeigt, daß das erste Gleichheitsbit
in den entsprechenden Bits von OP 1 und OP 2 keine 1 ist
und daher eine 0 sein muß. Die Kombination der Zustände von
OF 2 und OF 1 genügt den Erfordernissen von Fall 5 in Tabelle III.
In entsprechender Weise genügt die Kombination der Gatter OF 2
und OF 3 den Bedingungen von Fall 3 in Tabelle III.
Das Gatter OF 4 von Fig. 10 genügt den Bedingungen von Fall 4
in Tabelle III.
Wie anhand Fig. 10 und Tabelle IV ersichtlich, erzeugt das
Gatter OF 6 ein Ausgangssignal, welches anzeigt, daß die erste
Differenz eine 1 in OP 1 ist und reziprok, daß die erste Differenz
eine 0 in OP 2 ist. Gatter OF 5 in Kombination mit Gatter
OF 6 genügt nach UND-Verknüpfung hinter den Schaltungen L 5 und
L 6 in Gatter 957 der Bedingung von Fall 3 in Tabelle IV. In
entsprechender Weise genügt die Kombination der Gatter OF 6
und OF 7 der Bedingung von Fall 3 in Tabelle IV. Schließlich
genügt das Gatter OF 8 der Bedingung von Fall 1 in Tabelle IV.
Die Ausgänge der Halteschaltungen L 4 und L 8 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 Steuersignel gemeinsam mit
der Takt- und Steuerschaltung 924 von Fig. 1 und den Ausgängen
der Steuer-Triggerschaltungen 145 erzeugt.
Die Eingangssignale
in den Leitungen 285 und 286 werden
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. L 1 bis L 8 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,
wenn der Zustandskode zu Ende des Takts E 1 der Instruktionsverarbeitungseinheit
eingestellt werden soll. Dementsprechend
sind die Takt- und Steuersignale in Fig. 10 und die Eingangssignale
zu dem Operandenvergleicher von Fig. 2 und im System
von Fig. 1 allgemein wirksam während der beiden vor dem Takt
E 1 liegenden Takte, d. h. während OP 1 für Operandenpufferzugriffsbeginn
und OP 2 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 CYC 1 eine Addition, und das Signal -S CYC 1 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 E 1.
Zur Darstellung der Arbeitsweise des erfindungsgemäßen Operandenvergleichers
soll ein Vergleich von zwei Gleitkommaoperanden
entsprechend Tabelle I, Fall 4 wie folgt beschrieben werden,
wobei OP 1 gleich +1/2 × 16 -23 und OP 2 gleich +3/4 × 16 -63
ist:
Der Vergleich von OP 1 und OP 2 beginnt mit dem OP 1-Eingang in
der Vielfachleitung 286 und dem OP 2-Eingang in der Vielfachleitung
285 von Fig. 2, wobei diese in den Blöcken I-1 und
I-2 phasengeschaltet 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 OP 1 an. Keine der anderen
Schaltungen in Block II-1 wird erregt. In Block II-2 werden
die Schaltungen -SAM (0 . . . 8) und -SAM (10 . . . 31) erregt, wohingegen
die Schaltung -SAM (9) nicht erregt wird. In Block II-3
wird das Signal +OPS POS erregt, da beide Operanden OP 1 und
OP 2 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 (0 . . . 6) und die Signale
-Z (10 . . . 31) erregt und zeigen Nullen in sämtlichen Bits mit
Ausnahme der Bits 7, 8 und 9 von OP 1 und OP 2 an.
In Block III-1 wird keines der Gruppendifferenzsignale -DIF (G)
erregt. In Block III-2 sind die Gruppensignale -SAM (14-15),
-SAM (22-23), -SAM (1-3), -SAM (17-19), -SAM (25-27), SAM (1-5),
-SAM (17-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-31), -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 Gatter mit den Eingängen -SAM (1-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),
+ERSTEDIF (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 Fig. 9 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. 4 ersichtlich, ist die Schaltung VI-3 erregt
und erzeugt ein logisches Ausgangssignal +OP 1 < OP 2 LS, weil
das Eingangssignal -OPS POS von Block II-3 und das Eingangssignal
+ERSTE DIF PLUS von Block V-1 (Fig. 9) gleichzeitig angelegt
sind. Das Ausgangssignal +OP 1 < OP 2 LS ist Eingangssignal am
Gatter M 6 von Fig. 10. Das Ausgangssignal von Gatter M 6,
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 Gleitkommavergleichsinstruktion
ist während des Segments E 1 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 OP 1 gleich -4 in 2′er Komplementärschreibweise
ist, während der 32-bit-Operand OP 2 gleich +2 in Binärschreibweise
ist:
Ein Beispiel für Tabelle III, Fall 3 bei Festkomma-Additionsinstruktion
sei für den Fall angeführt, daß OP 1 den Wert
+1,610612736 × 10⁹ und OP 2 den gleichen Wert aufweist:
Als Beispiel für Tabelle IV, Fall 6 für Festkommasubtraktionsinstruktion
sei angenommen, daß OP 2 einen Wert +1,610612736 × 10⁹
aufweist und von OP 1 subtrahiert wird, welches den Wert
-2,147418113 × 10⁹ aufweist:
Ein Überlauf besteht in den Beispielen für die Tabellen III
und IV, weil die maximale negative Zahl (32 Nullen)
-2,147483648 × 10⁹ und die maximale positive Zahl
+2,147483647 × 10⁹ ist.
Claims (2)
1. Vorrichtung zur Datenverarbeitung, in welcher
zwei Operanden, die je aus einer Vielzahl von der
höchsten bis zur niedrigsten Wertigkeit angeordneter
Bits bestehen, zur Ausführung von Befehlen verwendet
werden, wobei jeweils der in Ausführung begriffene
Befehl einen zur Identifizierung des in Ausführung
begriffenen Befehls und der Operationsart (Gleitkommaarithmetik,
Festkommaarithmetik mit zwei negativen
oder zwei positiven Operanden oder mit einem
negativen und einem positiven Operanden oder Überlaufarithmetik)
dienenden Operationskode aufweist,
die einen Operandenvergleicher (274) enthält,
der Schaltungen aufweist, welche dazu dienen,
gleichzeitig einander entsprechende Bits in
den beiden Operanden zu vergleichen, von der
höchsten bis zur niedrigsten Wertigkeit fortschreitend
das erste Auftreten von Gleichheit
oder Ungleichheit einander entsprechender Bits
zu ermitteln und einen der Ausführung eines
Befehls zugeordneten Konditions- oder Zustandskode
zu bestimmen,
und die eine zusätzliche Steuerschaltung (145)
enthält, welche dazu dient, Steuersignale während
der Bestimmung des Zustandskodes vorübergehend zu
speichern, sie (über Leitungen 146) dem Operandenvergleicher
(274) zuzuleiten und diesen zu veranlassen,
jeweils passend Gleichheit oder Ungleichheit
auszuwählen, dadurch gekennzeichnet,
daß ein Operationskode-Dekoder (142) zum Dekodieren des Operationskodes des auszuführenden Befehls vorgesehen ist,
daß der Dekodiervorgang die in der Steuerschaltung (145) zu speichernden Steuersignale liefert,
daß die Schaltungen des Operandenvergleichers (274) entsprechend dem Operationskode des in Ausführung begriffenen Befehls gesteuert werden, um zu bestimmen, ob der eine der über je eine Vielfachleitung (285, 286) zugeführten Eingangsoperanden im Vergleich zu dem anderen größer, kleiner oder gleich ist,
und daß das Ausgangssignal aus dem Operandenvergleicher (274) den Zustandskode als eine Funktion dieser Bestimmung (über Leitungen 147) liefert und der so gewonnene Zustandskode zum Steuern der von der Datenverarbeitungsvorrichtung durchzuführenden Operationsart dient.
daß ein Operationskode-Dekoder (142) zum Dekodieren des Operationskodes des auszuführenden Befehls vorgesehen ist,
daß der Dekodiervorgang die in der Steuerschaltung (145) zu speichernden Steuersignale liefert,
daß die Schaltungen des Operandenvergleichers (274) entsprechend dem Operationskode des in Ausführung begriffenen Befehls gesteuert werden, um zu bestimmen, ob der eine der über je eine Vielfachleitung (285, 286) zugeführten Eingangsoperanden im Vergleich zu dem anderen größer, kleiner oder gleich ist,
und daß das Ausgangssignal aus dem Operandenvergleicher (274) den Zustandskode als eine Funktion dieser Bestimmung (über Leitungen 147) liefert und der so gewonnene Zustandskode zum Steuern der von der Datenverarbeitungsvorrichtung durchzuführenden Operationsart dient.
2. Vorrichtung zur Datenverarbeitung nach Anspruch 1,
dadurch gekennzeichnet, daß die Schaltungen des Operandenvergleichers
(274) EXKLUSIV-ODER-Gatter (270) zur
Bildung des EXKLUSIV-ODER-Wertes auf einer bitweisen
Basis für die Bildung von -DIF-Signalen und EXKLUSIV-
NOR-Gatter (271) zur Bildung des EXKLUSIV-NOR-Wertes
der Operanden auf einer bitweisen Basis für die Bildung
von -SAM-Signalen aufweisen, wobei die -DIF-Signale und
die -SAM-Signale die Ungleichheit bzw. Gleichheit
der Operanden anzeigen.
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 DE2421130A1 (de) | 1974-12-05 |
DE2421130C2 true 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)
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 |
US4683546A (en) * | 1984-01-03 | 1987-07-28 | Motorola, Inc. | Floating point condition code generation |
KR910006142B1 (ko) * | 1984-01-03 | 1991-08-16 | 모토로라 인코포레이티드 | 부동점 상태 코드 발생방법 및 장치 |
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 | 松下電器産業株式会社 | 浮動小数点演算装置 |
GB2317248B (en) | 1996-09-02 | 2001-08-15 | Siemens Plc | Floating point number data processing means |
GB9618262D0 (en) * | 1996-09-02 | 1996-10-16 | Siemens Plc | Floating point number data processing means for microcontrollers |
US6298365B1 (en) * | 1999-02-24 | 2001-10-02 | International Business Machines Corporation | Method and system for bounds comparator |
US7895419B2 (en) | 2008-01-11 | 2011-02-22 | International Business Machines Corporation | Rotate then operate on selected bits facility and instructions 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 |
US9280480B2 (en) | 2008-01-11 | 2016-03-08 | International Business Machines Corporation | Extract target cache attribute facility and instruction therefor |
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 |
US7870339B2 (en) * | 2008-01-11 | 2011-01-11 | International Business Machines Corporation | Extract cache attribute facility and instruction 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 |
Family Cites Families (9)
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 |
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 |
-
1973
- 1973-05-14 US US00360331A patent/US3825895A/en not_active Expired - Lifetime
-
1974
- 1974-04-03 CA CA196,723A patent/CA1022682A/en not_active Expired
- 1974-04-03 GB GB1479374A patent/GB1453769A/en not_active Expired
- 1974-04-26 JP JP4743574A patent/JPS5629303B2/ja not_active Expired
- 1974-05-02 DE DE2421130A patent/DE2421130A1/de active Granted
- 1974-05-13 FR FR7416440A patent/FR2230015B1/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
FR2230015B1 (de) | 1978-03-24 |
US3825895A (en) | 1974-07-23 |
JPS5054258A (de) | 1975-05-13 |
FR2230015A1 (de) | 1974-12-13 |
JPS5629303B2 (de) | 1981-07-07 |
DE2421130A1 (de) | 1974-12-05 |
CA1022682A (en) | 1977-12-13 |
GB1453769A (en) | 1976-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2421130C2 (de) | ||
DE2616717C2 (de) | Digitales Addierwerk | |
DE3486211T2 (de) | Kodebestimmung mit einem auf Halbaddierer basierten Operandenvergleicher. | |
DE19914210B4 (de) | Verfahren und Prozessor für eine gestaffelte Ausführung einer Anweisung | |
DE3991231C2 (de) | Vektorprozessor und Verfahren zum Suchen einer Stichwortzeichenfolge in einer Textzeichenfolge | |
DE68907518T2 (de) | Inhaltsadressierte Speicheranordnung. | |
DE3840969C2 (de) | ||
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen | |
DE2658248C2 (de) | ||
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE3121742C2 (de) | Mikroprogramm-Steuereinrichtung | |
DE4334294C1 (de) | Prozessor für Zeichenketten variabler Länge | |
DE1197650B (de) | Parallel-Addierer | |
DE4403917A1 (de) | Vorrichtung zum Berechnen einer Besetzungszählung | |
DE3688806T2 (de) | Instruktionsprozessor. | |
DE2900586C2 (de) | Anordnung zum Decodieren von Codewörtern variabler Länge | |
DE19628039B4 (de) | Speicheradressen-Steuerschaltung | |
DE2403039C2 (de) | Einrichtung zur Befehlsausführung in einer adressenerweiterten elektronischen Datenverarbeitungsanlage | |
DE102014105218A1 (de) | Suchvorrichtung mit Verwendung von endlichen Automaten für Teilworte | |
DE69424387T2 (de) | Verfahren und Gerät zum Modifizieren des Inhalts eines Registers | |
DE2952072C2 (de) | Rechenschaltung zum Addieren oder Subtrahieren binär codierter Dezimalzahlen | |
DE3688434T2 (de) | Schneller bcd/binaer-addierer. | |
DE3104256C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition |