DE2224537A1 - Einrichtung und verfahren zur instruktionsselektion - Google Patents
Einrichtung und verfahren zur instruktionsselektionInfo
- Publication number
- DE2224537A1 DE2224537A1 DE2224537A DE2224537A DE2224537A1 DE 2224537 A1 DE2224537 A1 DE 2224537A1 DE 2224537 A DE2224537 A DE 2224537A DE 2224537 A DE2224537 A DE 2224537A DE 2224537 A1 DE2224537 A1 DE 2224537A1
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- processing unit
- register
- buffer
- processing
- 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
Links
- 238000000034 method Methods 0.000 title claims description 13
- 238000012545 processing Methods 0.000 claims description 126
- 239000000872 buffer Substances 0.000 claims description 65
- 238000012360 testing method Methods 0.000 claims description 47
- 230000006870 function Effects 0.000 claims description 20
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000012546 transfer Methods 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000009434 installation Methods 0.000 claims 1
- 238000012432 intermediate storage Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3818—Decoding for concurrent execution
- G06F9/3822—Parallel decoding, e.g. parallel decode units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Description
Amtliches Aktenzeichen:
Neuanme!dung
Aktenzeichen der Anmelderin: WA 971 002
Die Erfindung betrifft eine Einrichtung in einem elektronischen Datenverarbeitungssystem mit einem Hauptspeicher und einer
Instruktionsverarbeitungseinrichtung zur Instruktionsselektion und ein Verfahren zu deren Betrieb.
Auf dem Gebiet der Hochgeschwindigkeits-Digitalrechenanlagen wurden
bisher mehrere Techniken für die Verbesserung der Instruktionsverarbeitung innerhalb eines elektronischen Datenrechners entwickelt.
Ein Mittel hierfür besteht in der Optimierung der Systemarchitektur/ wie sie beispielsweise in der US-Patentschrift
3 400 371 ausführlich beschrieben ist.
Ein weiteres Mittel für die genannte Geschwindigkeitsverbesserung betrifft eine Architekturänderung, nach der die traditionelle
Speicherfunktion auf zwei unterschiedliche Arten von Speicherelementen verteilt ist: einen langsamen Großraumspeicher und
einen sehr schnellen Speicher mit nur geringer Speicherkapazität. In einem solchen Datenverarbeitungssystem versucht die
Steuereinheit, alle Instruktionen zu verarbeiten, indem sie Daten verwendet, die sich innerhalb des Hochgeschwindigkeitsspeichers
mit der geringen Speicherkapazität befinden. Da die Geschwindigkeit dieses Speichers sehr hoch ausgelegt und mit
der Verarbeitungsgeschwindigkeit des Systems vergleichbar ist, können Instruktionen, die Daten aus diesem Speicher benötigen,
mit sehr hoher Geschwindigkeit verarbeitet werden, wobei
309810/0597
allerdings vorausgesetzt ist, daß sich diese Daten bereits in diesem Hochgeschwindigkeitsspeicher (mit der geringen Kapazität)
befinden. Wenn die Daten in diesem Hochgeschwindigkeitsspeicher nicht verfügbar sind, muß zunächst erst wieder ein Datenblock
vom Hauptspeicher abgerufen und zu dem Hochgeschwindigkeitsspeicher übertragen werden. Bei einer geeigneten Programmierung
können die Blockabrufe vom langsamen Großraumspeicher (Hauptspeicher) zu dem Hochgeschwindigkeitsspeicher mit geringer
Speicherkapazität (z.B. Pufferspeicher) bis auf ein geringes Maß verringert werden, so daß die Gesamtverarbeitungszeit
eines solches Systems, im Vergleich zu einem konventionellen System, das im allgemeinen einen einzigen, relativ langsamen
Speicher verwendet, effizienter ist.
Ein weiteres Mittel zur Verbesserung der Verarbeitungsgeschwindigkeit
von Datenrechnern kann darin bestehen, die Instruktionen in einer Pipeline-Verarbeitungseinheit zu verarbeiten. Diese
Verarbeitungseinheiten können viele Instruktionen mit sehr großer Geschwindigkeit verarbeiten, da ihre interne Organisation
so ausgelegt ist, daß sie die Zahl der Instruktionen, die in einer bestimmten Zeitperiode verarbeitet werden können,
optimiert. Eine Pipeline-Verarbeitungseinheit verarbeitet bestimmte
Operationen bezüglich mehrerer verschiedener Instruktionen gleichzeitig. So kann beispielsweise eine Instruktion eine
Operation bezüglich zweier Operanden erfordern, die sich innerhalb des Speichers befinden. Diese Operanden können
vom Hauptspeicher während der gleichen Zeit abgerufen werden, in der eine zweite Instruktion zur Bestimmung ihres Typs
sowie ihrer Datenerfordernisse decodiert wird. Auch eine dritte Instruktion kann sich noch ihrer Vervollständigung nähern, wobei
sich dieses alles im gleichen Maschinenzyklus abspielt.
Obwohl eine Pipeline-Verarbeitungseinheit im Vergleich zu anderen Datenverarbeitungseinheiten in hohem Maße effizient ist, existiert
ein inherentes Problem, das eine maximale Verwendung ihrer Daten-
WA971OO2 309810/0597
verarbeitungsfähigkeiten verhindert. Als Folge von Programmabhängigkeiten
kann auch eine Pipeline-Verarbeitungseinheit in einen Wartezustand versetzt werden, während Daten vom Speicher
abgerufen werden. Während dieser Warteperioden kann auch eine Pipeline-Verarbeitungseinheit nicht alle verfügbaren Verarbeitungsfähigkeiten
ausnutzen. Verzweigungsinstruktionen bieten hierbei eine andere Form eines Engpasses innerhalb eines normalen
Programms und sie haben eine beträchtliche Wirkung auf die Verarbeitungsfähigkeiten einer Pipeline-Verarbeitungseinheit.
Aus den vorstehend genannten Nachteilen bekannter digitaler Datenverarbeitungssysteme leitet sich die Aufgabe der Erfindung
ab, deren primäres Ziel es ist, eine Pipeline-Verarbeitungseinheit anzugeben, deren Wirkungsgrad dem bekannter Pipeline-Verarbeitungseinheiten
überlegen ist.
Eine weitere Aufgabe .der Erfindung besteht darin, diese Wirkungsgradverbesserung
ohne eine nennenswerte Erhöhung des Schaltkreisaufwandes zu erreichen.
Zu den Aufgaben der Erfindung zählt ferner, eine Pipeline-Verarbeitungseinheit
anzugeben, die in der Lage ist, mindestens zwei voneinander unabhängige Instruktionsströme gleichzeitig
zu verarbeiten und die Simultanität der Operation ohne wesentliche Kostensteigerung zu realisieren.
Für eine Einrichtung in einem elektronischen Datenverarbeitungssystem
mit einem Hauptspeicher und einer Instruktionsverarbeitungseinrichtung
zur Instruktionsselektion besteht die Erfindung darin, daß mindestens ein erster und zweiter Instruktionspuffer für die
Zwischenspeicherung mindestens einer Instruktion in jedem Puffer, wobei jeder Instruktionspuffer einem von mindestens zwei voneinander
unabhängigen Instruktionsströmen fest zugeordnet ist, vorgesehen ist und daß eine Wählschaltung mit den mindestens zwei Instruktionspuffern
verbunden ist und die nächste von den in einem
309810/0597
WA 9 71 002
der mindestens zwei Instruktionspuffer gespeicherten Instruktionen
für die Verarbeitung durch die Verarbeitungseinheit auswählt, indem sie mit ihrem Durchschaltnetzwerk die ausgewählte Instruktion zur
Verarbeitungseinheit überträgt.
Für ein Verfahren zum Betrieb dieser Einrichtung besteht die Erfindung
in der Durchführung der folgenden Verarbeitungsschritte:
1. Abfrage der Verfügbarkeit von Verarbeitungsmitteln in der Verarbeitungseinheit für die nächste Instruktion
in jedem der unabhängigen Instruktionsströme,
2. Erzeugung einer Verfügbarkeitsangabe für jede Instruktion, für die Verarbeitungsmittel für deren
spezifische Verarbeitung gerade vorhanden sind und
3. Sperrung oder übertragung einer Instruktion zur Verarbeitungseinheit, in Abhängigkeit von einer
Verfügbarkeitsangabe.
Weitere Merkmale, vorteilhafte Ausgestaltungen und Weiterbildungen
des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen .
Die Beseitigung der Nachteile des bekannten Standes der Technik durch die Erfindung bringt eine Reihe von Vorteilen mit sich.
Diese Vorteile beziehen sich auf die Geschwindigkeitsverbesserung von Pipeline-Verarbeitungseinheiten, bei denen, wenn zwei unabhängige
Instruktionsströme zugrundegelegt werden, eine kombinierte Verarbeitungsgeschwindigkeit erzielt wird, die annähernd
der doppelten Datenverarbeitungsgeschwindigkeit einer ähnlichen Pipeline-Verarbeitungseinheit entspricht, die für die Verarbeitung
von Instruktionen eines einzigen Instruktionsstromes ausgelegt wurde, wobei sich ein weiterer Vorteil daraus ergibt, daß die
Verarbeitungsgeschwindigkeit nur mit verhältnismäßig geringem Mehraufwand erreicht wird. Der Vorteil liegt also in einer
30981 0/0597
WA 9 71 Oü?
wesentlich effektiveren Verwendung der Verarbeitungsmittel in einer Multi-Verarbeitungseinheit.
Im folgend wird die Erfindung anhand der Zeichnungen näher erläutert. Es zeigen:
Fig. 1 ein Blockschaltbild des Gesamtsystems, in dem
die Erfindung verwirklicht ist,
Fig. 2 das Blockschaltbild eines Ausführungsbeispiels
der Erfindung, einschließlich der Gesamtstruktur der Schaltkreise des Systems für die Mischung
von Instruktionen aus zwei unabhängigen Instruktionsströmen in eine Pipeline-Verarbeitungseinheit,
Fign. 3A, 3B Ablaufdiagramme für die Vordecodierungsfunktion
und
Fign. 4A, 4B ein Blockschaltbild der Schaltungsanordnung, die
notwendig ist, um Torsteuersignale zu erzeugen, die die Vordecodierungsfunktion vervollständigen.
Das Blockschaltbild in Fig. 1 zeigt in schematischer Form ein elektronisches
Datenverarbeitungssystem, in dem die Erfindung verwirklicht
ist. Dieses Datenverarbeitungssystem besitzt einen Speicher
10, der mit der Verarbeitungseinheit 12 verbunden ist. Dieser Speicher 10 kann beispielsweise ein Kernspeicher sein, wie es
beispielsweise aus vielen vorhandenen Datenverarbeitungseinrichtungen
bekannt ist. Es kann aber auch einen beliebigen anderen Aufbau für eine Hochgeschwindigkeitsspeicherung besitzen, beispielsweise
nach Art eines monolithischen Speichers oder nach Art eines direkt adressierbaren Großraumspeichers. Die Verarbeitungseinheit
12 besteht aus einer Datenverarbeitungseinheit, die fähig ist, Instruktionen in Maschinensprache zu interpretieren und auszuführen,
die dieser über die Datensammelleitung 22 zugeführt werden.
30 9 8 10/0597
WA 9 71 002
Eine derartige Verarbeitungseinheit kann beispielsweise ein
Datenrechner des IBM System/360 sein, in dem die Modifizierungen der vorliegenden Erfindung realisiert sind. Diese Modifizierungen
beeinflussen die Instruktionsregisterfunktion innerhalb einer solchen Maschine.
Die Instruktionsregisterfunktion des in Fig. 1 dargestellten Systems verwendet zwei Instruktionspuffer 14 und 16. Der Instruktionspuffer
14 ist ein Standardinstruktionspuffer, wie er in jeder Maschine, beispielsweise des IBM System/36O gefunden werden
kann, in der der Instruktionsstrom (I-Strom) aus einer Serie von Maschinenspracheninstruktionen besteht, die einem einzelnen
speziellen Programm entsprechen. Der zweite Instruktionspuffer 16, der ebenfalls in Fig. 1 dargestellt ist, enthält Maschinenspracheinstruktionen
von einem zweiten unabhängigen Instruktionsstrom. In der Verarbeitungseinheit 12 sind spezielle Schaltkreise
für den Abruf von Instruktionen zweier unabhängiger Instruktionsströme vom Speicher 10 vorgesehen. Die hierfür vorgesehenen Schaltkreise
müssen jedoch sicherstellen, daß die Instruktionen von jedem unabhängigen Instruktionsstrom nur zu dem Instruktionspuffer
übertragen werden, der diesem Instruktionsstrom zugeordnet ist.
Die Selektionsschaltung, im folgendem kurz mit Wählschaltung 18 bezeichnet, ist, wie Fig. 1 zeigt, mit den Instruktionspuffern
14 und 16 verbunden. Die Funktion der Wählschaltung 18 besteht darin, eine Maschinenspracheinstruktion von entweder dem Instruktionspuffer
14 oder dem Instruktionspuffer 16 auszuwählen und die ausgewählte Instruktion über die Datensammelleitung 22 zu der Verarbeitungseinheit
12 zu übertragen.
Die Fig. 1 zeigt ferner eine Datensammelleitung, die eine Verbindung
zwischen der Verarbeitungseinheit 12 und der Wählschaltung 18 darstellt. Der Zweck der Datensammelleitung 20 ist die Informationsübertragung
von der Verarbeitungseinheit 12 zu der Wählschaltung 18. Die Information, die über diesen Weg zu der Wählschaltung
18 übertragen wird, bezieht sich auf die Verfügbarkeit von Verarbei-
WA 971 002 3098 10/0597
tungsmitteln innerhalb der Verarbeitungseinheit 12. In seiner einfachsten Ausführungsform überträgt das in Fig. 1 dargestellte
System über die Datensammelleitung 20 nur solche Information zu der Wählschaltung 18, die angibt, daß die Verarbeitungseinheit
eine Instruktion vollständig verarbeitet hat und bereit ist, eine andere Instruktion zu empfangen. Die vorliegende Erfindung ist
jedoch vorteilhafter bei Systemen, in denen die Verarbeitungseinheit 12 nach Art der Pipeline-Verarbeitungseinheiten aufgebaut
ist. Bei einer Pipeline-Verarbeitungseinheit können mehr als eine Instruktion zu einem bestimmten Zeitpunkt ausgeführt
werden. Eine solche Verarbeitungseinheit kann als eine Pipeline gedacht werden, in der Instruktionen und Daten an einem Ende
während eines Maschinenzyklus eintreten und während des gleichen Maschinenzyklus die Ergebnisse der vorher in die Verarbeitungseinheit eingetretenen Instruktionen austreten. Ferner wird
während der gleichen Zykluszeit die Verarbeitung in der Pipeline-Verarbeitungseinheit
bezüglich anderer Instruktionen vorgenommen, die während früherer Zyklen in die Pipeline-Verarbeitungseinheit
eintraten, aber noch nicht vollständig ausgeführt wurden.
Bei einem nach Fig. 1 gekennzeichneten System, bei dem die Verarbeitungseinheit 12 eine Pipeline-Verarbeitungseinheit ist,
wird die Kommunikation zwischen der Wählschaltung 18 und der Verarbeitungseinheit 12 längs der Datensammelleitung 20 komplizierter,
als es bei der vorher erläuterten Ausführungsform der
Fall war. In normalen Programmen existieren oft Datenabhängigkeiten zwischen zwei aufeinanderfolgenden Instruktionen. D.h.,
daß die Antwort, die von einer Instruktion erzeugt wird, als Eingangsdaten für eine nachfolgende Instruktion erforderlich
ist. Solche Abhängigkeiten können als Sperre bezeichnet werden, die per Definition die Maschine daran hindert, weitere Operationen
einzuleiten, bis die im Gange befindliche Operation vollständig beendet ist. Bei einer Pipeline-Verarbeitungseinheit ist es
notwendig, daß die erste Instruktion vollständig verarbeitet wird, bevor einer zweiten Instruktion im gleichen Datenstrom
gestattet werden kann, in die Verarbeitungseinheit einzutreten.
309810/0^97
WA 9 71 002 JUyö (U/Uoy /
Daher ist die Wählschaltung 18 erforderlich, um festzulegen, welche Instruktion von den beiden Instruktionen in den Instruktionspuffern
14 und 16 längs der Datensamme1leitung 22 zu der
Verarbeitungseinheit 12 während eines beliebigen Instruktionszyklus übertragen werden kann.
Da eine Pipeline-Verarbeitungseinheit an sich eine sehr komplizierte
Datenverarbeitungseinheit darstellt, erfordert der Entwurf eines Systems mit Pipeline-Verarbeitungsfähigkeiten für die
gleichzeitige Verarbeitung von Instruktionen zweier verschiedener Instruktionsströme auch spezielle komplizierte Schaltkreisstrukturen,
um die Puffer- und Selektionsfunktion, die in Fig. 1
schematisch dargestellt sind, zu inplementieren. Flg. 2 zeigt
nun in ausführlicherer Weise die erforderlichen Schaltungen für die Durchführung der Instruktionsverschachtelungsfunktion, die
notwendig ist, um für die beiden Instruktionsströme eine gemeinsame Pipeline-Verarbeitungeeinheit zu benutzen.
In Flg. 2 sind die beiden Instruktionspuffer A und B mit 40 und 42 bezeichnet. Diese Puffer entsprechen an sich konkreten
Registern, in denen mindestens eine Instruktion von zwei verschiedenen Instruktionsströmen gepuffert, d.h. zwischengespeichert
werden kann. Die Maschinenspracheninstruktion des Instruktionsstromes A wird im Instruktionspuffer 40 und, ähnlich, die
Maschinenspracheninstruktion für den Instruktionsstrom B im Puffer 42 gepuffert. An den Instruktionspuffer 40 und 42 sind,
obwohl sie nicht dargestellt sind, bestimmte Schaltkreise angeschlossen, die sicherstellen, daß Instruktionen vom Hauptspeicher,
so wie sie erforderlich sind, abgerufen werden, so daß jeder Instruktionspuffer stets eine Instruktion für jeden unabhängigen
Instruktionsstrom für die Verarbeitung enthält.
An jeden Instruktionspuffer in Fig. 2 ist ein Vordecodierer
A oder B angeschlossen, der mit 44 oder 46 bezeichnet ist. Die Vordecodierungsfunktion ist eine solche Funktion, die die
WA 971 002 309810/0597
Instruktionstype untersucht, die im angeschlossenen Instruktionspuffer gespeichert ist und bestimmt, ob diese Instruktion erfolg- reich
ausgeführt werden könnte, wenn sie zu dem Instruktionsregister 48 übertragen werden würde.
Zum besseren Verständnis der Vordecodierungsfunktion dienen die
Fign. 3A und 3B, die ein Ablaufdiagramm der Vordecodierungsfunktion
zeigen. Die erste Funktion jeder Vordecodierungeinheit dient zur Prüfung, ob die Q-Register für einen gegebenen Instruktionsstrom noch voll von vorher geprüften und teilweise verarbeiteten
Instruktionen ist. Die Q-Register sind in Fig. 2 dargestellt und werden später noch erläutert werden. Wenn festgestellt wird,
daß die Q-Register für einen gegebenen Instruktionsstrom noch voll sind, dann kann.keinen weiteren Instruktionen dieses Instruktionsstromes
die übertragung von entweder dem Instruktionspuffer,
40 oder 42 in das Instruktionsregister 48, kurz I-Register genannt,
in Fig. 2 gestattet werden.
Die zweite Prüfung, die von jeder Vordecodierungsfunktion vorgenommen
werden muß, ist festzustellen, ob die Adressensperren für die Allzweckregister aufgehoben wurden. Diese Prüfung bezieht
sich auf die Programmdatenabhängigkeit, die auf den X- und B-Feldern beruht, die bei den Adressenrechnungen verwendet werden.
D.h., ob die Adressenrechnung einer Instruktion von Daten abhängt, die von einer vorangehenden Instruktion generiert werden.
Wenn dieses der Fall ist, dann darf einer nachfolgenden Instruktion solange nicht gestattet werden, in die Pipeline-Verarbeitung
einzutreten, bis die vorhergehende Instruktion den Inhalt des Allzweckregisters modifiziert hat, das von der nachfolgenden
Instruktion benutzt wird. Wenn die Adressensperren (X-, B-Sperren) de» Allzweckregisters (GPR-nicht dargestellt) noch nicht aufgehoben wurden, kann auch eine Instruktion noch nicht von dem
Instruktionspuffer in das I-Register durchgeschaltet werden.
Eine dritte Prüfung, die von der Vordecodierungsfunktion durchgeführt
werden muß, bezieht sich auf Datenabrufe vom Hauptspeicher
WA 971 002 309 8 10/0597
durch vorangegangene Instruktionen. Da eine Pipeline-Verarbeitungseinheit
normalerweise eine sehr schnelle Datenverarbeitungseinheit ist, im Vergleich zu der Geschwindigkeit des Speichers,
kann eine Instruktion, die Daten vom Hauptspeicher benötigt, eine Verzögerung in der Verarbeitung von Instruktionen in
diesem Instruktionestrom verursachen. Bei einer variablen Feldlängeninstruktion (VFL), ist es im allgemeinen die Fall, daß
sie eine ganze Reihe von Datenabrufen benötigt. Daher muß die Vordecodierungsfunktion bestimmen, ob zuvor eine VFL-Instruktion
injiziert wurde. Wenn dieses für einen gegebenen Instruktionsstrom der Fall ist, dann muß die nächste Instruktion in diesem
Instruktionsstrom untersucht werden um festzustellen, ob sie einen Speicheroperanden benötigt. Ein Speicheroperand besteht
aus Daten, die im Hauptspeicher untergebracht sind. Wenn die Instruktionen keinen Speicheroperanden erfordert, dann wird die
dritte Prüfung der Vordecodierungsfunktion erfüllt sein und die nächste Instruktion in diesem Datenstrom für die Durchschaltung
in das I-Register verfügbar sein, wobei allerdings vorausgesetzt
ist, daß auch alle übrigen Prüfungen erfolgreich waren. Wenn jedoch eine Instruktion in dem gegebenen Instruktionsstrom
einen Speicheroperanden benötigt und eine vorangegangene Instruktion eine VFL-Instruktion war, die noch nicht vollständig ausgeführt
wurde, dann erfordert die dritte Prüfung eine weitere Untersuchung in der Richtung, ob mehr als ein Datenabruf für die
vorher herausgegebene VFL-Instruktion noch aussteht. Der Grund für diese dritte Prüfung ist der Versuch, sicherzustellen, daß
Hauptspeieherabrufe für einen gegebenen Instruktionsstrom in
einer Folge behandelt werden, da das Abrufen verschiedener Datenwörter aus einer Folge dazu tendiert, die Verarbeitung
eines gegebenen Instruktionsstromes zu verlangsamen.
Die vierte Prüfung, die mittels der Vordecodierung durchgeführt wird, bezieht sich darauf, ob ein gegebener Instruktionsstrom
sich im Bedingungsmodus befindet. Der Bedingungsmodus, wobei Modus als Betriebsart zu verstehen ist, wird durch das Vorhanden-
309810/0597
sein einer Verzweigungs- oder einer Ausführungsinstruktion angegeben.
Wenn entweder eine Verzweigungs- oder Ausführungsinstruktion
im Instruktionsstrom festgestellt wird, dann wird das Bedingungsmodus-Register für den gegebenen Instruktionsstrom gesetzt. Ist
dieses Bedingungsmodus-Register für einen Instruktionsstrom gesetzt,
können für diesen speziellen Instruktionsstrom keine Verzweigungs- oder Ausführungsinstruktionen mehr ausgeführt werden,
bis die vorher iniziierte Verzweigungs- oder Ausführungsinstruktion vollständig erledigt ist.
Jede der vorstehend genannten vier Prüfungen muß für jeden der
beiden voneinander unabhängigen Instruktionsströme durchgeführt werden. In Situationen, in denen eine der vier Prüfungen für
jeden der beiden Instruktionsströme mißlingt,wird keine Instruktion
von den Instruktionspuffern während eines gegebenen Zyklus zu dem I-Register übertragen. Während des nächsten Vordecodierungszyklus
wird die gleiche Prüfung wieder durchgeführt, so daß es dann möglich ist, daß eine Instruktion danach von dem Instruktionspuffer
in das !-Register Übertragen wird, da die Bedingungen für jede der soweit erläuterten vier Prüfungen dynamisch sind
und diese Bedingungen sich ändern können, in Abhängigkeit von den Zustandsänderungen der Pipeline-Verarbeitungseinheit für
einen gegebenen Instruktionsstrom.
Es ist auch möglich, daß die vier Prüfungen für den einen Instruktionsstrom gelingen, während sie für den zweiten bei
einer oder mehreren der Prüfungen mißlingt. In dieser Situation werden die Instruktionen des Instruktionsstromes, bei dem die
vier Prüfungen erfolgreich verliefen, von dem Instruktionspuffer in das I-Register durchgeschaltet. Wenn die Instruktionen für
die beiden unabhängigen Instruktionsströme die vier genannten Prüfungen erfolgreich durchlaufen, muß eine zusätzliche Prüfung
durchgeführt werden. Diese zusätzliche Prüfung ist in dem Ab lauf diagramm in Fig. 3B dargestellt. Dieses symbolisiert den Sachverhalt,
daß alle vier Prüfungen erfolgreich von den beiden Instruktionsströmen A und B durchlaufen würden.
309810/Q597
WA 9 71 002
Ob zwar vorstehend besonders vier Prüflingen erwähnt wurden, können
auch mehr oder weniger Prüfungen durchgeführt werden. Die Anzahl und die Art der Prüfungen ist eine Frage der Schaltkreisstruktur
der Pipeline-Verarbeitungseinheit und ihrer Verarbeitungsmittel. Je größer die Anzahl der Operationen ist, die unabhängig durchgeführt
werden können, umso mehr unabhängige Prüfungen müssen durchgeführt werden, wobei auch die Umkehrung Gültigkeit besitzt. Unabhängig
davon, welche Prüfungen durchgeführt werden, ist jedoch der Zweck zu bestimmen, ob eine Instruktion verarbeitet werden
wird, wenn sie in das I-Register (der ersten Position der Instruktionen
in der Pipeline-Verarbeitungseinheit) durchgeschaltet wird. Alle derartigen notwendigen Prüfungen müssen im Vordecodierungsbereich
durchgeführt werden.
Wenn die ersten vier Prüfungen für beide Ströme erfolgreich durchgeführt
wurden, wird die erste gemeinsame Prüfung bezüglich beider Instruktionsströme durchgeführt, das ist eine Prüfung, die sich
auf den Bedingungsmodus bezieht. Wenn ein Instruktionsstrom sich im Bedingungsmodus befindet und der andere nicht, dann wird die
Instruktion aus demjenigen Instruktionsstrom, der sich nicht im Bedingungemodus befindet, vom Instruktionspuffer zu dem I-Register
durchgeschaltet.
Sind aber beide Instruktionsströme im Bedingungsmodus, dann muß eine weitere Prüfung durchgeführt werden, die bestimmt, welcher
Instruktionsstrom eine Instruktion aufwies, die im vorhergehenden Zyklus in das I-Register durchgeschaltet wurde. Wenn der Instruktionsstrom
A eine vorhergehende Instruktion besaß, die im vorhergehenden Zyklus in das I-Register durchgeschaltet wurde und beide
Instruktionsströme sich im Bedingungsmodus befinden, dann wird die nächste Instruktion, die zu dem I-Register übertragen wird,
dem Instruktionsstrom B entnommen. Diese Art der Durchschaltung oder übertragung stellt einen alternierenden Algorithmus dar,
der Instruktionen erfordert, die zwischen beiden Instruktionsströmen in Fällen abwechseln, in denen alle anderen Prüfungen
WA971OO2 309810/0597
mißlingen, um die Entscheidung zu treffen, welche Instruktion
als nächste in das I-Register übertragen werden soll.
Das Ablaufdiagramm in Fig. 3B zeigt, daß wenn beide Instruktionsströme
sich nicht im Bedingungsmodus befinden, die nächste Prüfung sich auf die Bestimmung bezieht, ob die nächste
Instruktion in jedem Instruktionsstrom entweder eine Verzweigungs- oder AusführungsInstruktion ist. Wenn alle vorausgegangenen
Prüfungen bezüglich der Auswahl der nächsten Instruktion mißlangen, wird derjenige Instruktionsstrom, der eine Verzweigungs-
oder Ausführungsinstruktion enthielt, derjenige Instruktionsstrom sein, aus dem eine Instruktion vom Instruktionspuffer in das I-Register übertragen wird. Wo beide Instruktionsströme wieder Verzweigungs- oder AusführungsInstruktionen aufweisen,
die in dem jeweiligen Instruktionspuffer warten, wird ein alternierender Algorithmus angewendet.
In denjenigen Fällen, in denen alle anderen Prüfungen versagten, um festzusetzen, welcher Instruktionsstrom seine Instruktion
vom Instruktionspuffer in das I-Register überträgt, wird ein alternierender Algorithmus verwendet. Der alternierende Algorithmus
dient prinzipiell dazu, sicherzustellen, daß kein Instruktionsstrom die Verarbeitungseinheit monopolisieren kann,
so daß er überhaupt Instruktionen aus dem anderen Instruktionsstrom gegen eine Verarbeitung sperren kann.
Fig. 4A zeigt eine logische Schaltkreisstruktur als Blockschaltbild,
die in der Vordecodierung verwendet wird. Das UND-Tor 100 dient zur Durchführung der ersten Prüfung, die die Vordecodierung
bezüglich des Instruktionsstroms A vornimmt. Das UND-Tor 100 erfordert 3 Eingangssignale. Das erste Signal ist eine
Anzeige dafür, ob es das Q-Register A mit dem Bezugszeichen
in Fig. 2 voll ist. Es wird später noch gezeigt, daß alle Instruktionen des Instruktionsstroms A durch das Q-Register A
hindurchlaufen. Der zweite Signaleingang für das UND-Tor 100
in Fig. 4A ist ein Signal, das angibt, ob das Ql-Register 54
WA 971 002 309810/0597
222A537
voll ist. Der dritte Eingang liefert eine Angabe darüber, ob das Q2-Register 56 ebenfalls voll ist. In der Situation, in
der ein positives Signal an jedem der Eingänge des UND-Tores 100 auftritt, liefert der Ausgang dieses UND-Tores 100 ein
negatives Signal. Wenn ein positives Signal an jedem der Eingänge angibt, daß das zugeordnete Q-Register voll ist, gibt
das negative Ausgangssignal des UND-Tores 100 an, daß alle Q-Register des entsprechenden Instruktionsstromes voll sind
und daß die Prüfung Nummer 1 nicht erfolgreich verlief. Daher wird ein negatives Signal am Ausgang Nummer 1 in Fig. 4A erzeugt,
das als Eingangssignal Nummer 1 zu dem ODER-Tor 102 in Fig. 4B übertragen wird. Das Ausgangssignal dieses ODER-Tores
102 ist positiv, wenn ein Signal an einem seiner vier Eingänge negativ ist. Ein positives Ausgangssignal des ODER-Tores
102 dient zur Angabe, daß der Inhalt des Instruktionspuffers A nicht in das I-Register übertragen werden sollte.
Die zweite Prüfung, die für jeden der Instruktionsströme in der Vordecodierung durchgeführt wird, ist die Prüfung auf
Sperrung der Allzweckregister (X, B-Feld) (in den Fign. 1 und 2 nicht dargestellt). Bei dieser besonderen Prüfung wird der
Inhalt der Allzweckregister, der schon von früher in der Pipeline ausgeführten Instruktionen eingespeichert wurde, mit
dem Inhalt des Allzweckregisters verglichen, daß für die Adressierung durch Instruktionen verwendet wird, die laufend in
dem Instruktionspuffer enthalten sind. Diese Prüfung wird mit Hilfe des Exklusiv-ODER-Tores 104 realisiert. Die X- und B-Felder
der Instruktion des Instruktionsstromes A treten in der Darstellung nach Fig. 4A in das Exklusiv-ODER-Tor 104 ein.
Diese Felder dienen für die Adreßrechnungen des Allzweckregisters, das durch die Ausführung der sich gerade im Instruktionspuffer A
befindlichen Instruktion verändert werden wird. Die noch ausstehende Information der Allzweckregister von den Q-Registern sind
ebenfalls in der Phase dargestellt, in der sie in das Exklusiv-ODER-Tor 1.04 einlaufen. Diese Bits repräsentieren die Adresse
der Allzweckregister für den Instruktionsstrom A, der von
WA 971 002 309810/0597
Instruktionen verändert wird, die sich bereits in der Pipeline befinden. Wenn ein exaktes Vergleichsergebnis zwischen den
Allzweckregisteradressen, die in der Instruktion im Instruktionspuffer enthalten sind und der Adresse des Allzweckregisters,
das von einer schon initialisierten Instruktion verändert wird, dann sollte die Instruktion im Instruktionspuffer für denjenigen
Instruktionsstrom, der diese Bedingung aufweist, nicht ausgeführt werden. Diese Bedingung kann durch das genaue Vergleichsergebnis zwischen diesen Adressen und durch ein negatives Ausgangssignal
des Exklusiv-ODER-Tores 104 angegeben werden. Dieses negative Signal wird weiter zu dem ODER-Tor 102 in Fig. 4B übertragen
und dient zur Erzeugung eines Signals, das die Durchschaltung der Instruktionen vom Instruktionspuffer A in das I-Register
verhindert. Diese Prüfung ist notwendig, um sicherzustellen, daß die Instruktion, die sich im Instruktionspuffer befindet, die
korrekten Daten im Allzweckregister benutzt, die von der Instruktion verwendet werden. Dieses wird dadurch erreicht, daß sichergestellt
wird, daß alle DatenVeränderungen in diesem Allzweckregister
abgeschlossen sind, bevor die Instruktion im Instruktionspuffer iniziiert wird.
Die dritte Prüfung in der Vordecodierung wird mit einem Flip-Flop 106 und einem UND-Tor 108 durchgeführt. Das Ausgangssignal des
Flip-Flop 106 ist positiv, wenn es eingestellt wurde, so daß es anzeigt, daß der Instruktionsstrom A bereits eine VFL-Instruktion
(Instruktion mit variabler Feldlänge) iniziiert hat. Das UND-Tor 108 arbeitet auf die gleiche Weise wie das UND-Tor
100, so daß es ein negatives Signal erzeugt, wenn die entsprechenden Eingangsbedingungen erfüllt sind. Dieses ist der Fall,
wenn für den Instruktionsstrom A eine VFL-Instruktion iniziiert wurde, daß diese Instruktion Operanden besitzt, die nicht innerhalb
Doppelwortgrenzen liegen und daß die nächste Instruktion des Instruktionsstromes A einen Speicheroperanden benötigt. Wenn
alle diese Bedingungen erfüllt sind, dann verläuft die Prüfung Nummer 3 nicht erfolgreich und das Ausgangssignal des UND-Tores
108 ist negativ, so daß es die Durchschaltung des Inhaltes des
WA 97! 002 309810/0597
222A537
- 16 Instruktionspuffers A in das I-Register verhindert.
Die Prüfung Nummer 4 wird mit Hilfe des Flip-Flops 110 und des ÜND-Tores 112 durchgeführt. Der Flip-Flop ilO wird eingestellt,
wenn der Instruktionsstrom A eine VerzweigungsInstruktion
feststellt, d.h., daß sich der Instruktionsstrom A im
Bedingungsmodus befindet. Das Ausgangssignal des Flip-Flop 110 ist positiv, wenn dieser Flip-Flop eingestellt ist. Durch
die Decodierung des Instruktionscodes der Instruktion in dem
Puffer A kann ein Signal erzeugt werden, das zu dem UND-Tor 112 gelangt, das angibt, ob die im Instruktionspuffer A befindliche
Instruktion eine Verzweigungsinstruktion ist. Wenn sich der Instruktionsstrom A im Bedingungsmodus befindet und
die nächste Instruktion in dem Instruktionspuffer A eine Verzweigungsinstruktion
ist, dann verläuft die Prüfung Nummer 4 nicht erfolgreich und es erscheint ein negatives Signal am
Ausgang des UND-Tores 112. Dieses Signal wird ebenfalls zu dem ODER-Tor 102 in Fig. 4B übertragen und erzeugt dort ein
Signal, das die Durchschaltung der im Puffer A befindlichen Instruktion in das I-Register verhindert.
Die in Fig. 4B dargestellte Schaltung ist prinzipiell so entworfen
worden, daß sie die ersten vier Prüfbedingungen für den Instruktionsstrom A behandeln kann. Für den Instruktionsstrom B muß daher eine identische logische Struktur und es
müssen die'angegebenen entsprechenden Eingangssignale vorliegen. In der Fig. 4B sind die Eingänge für die vier Prüfungen
des Instruktionsstroms B mit Nummer I1, 21, 31 und 41 bezeichnet.
Diese Eingänge beziehen sich auf das ODER-Tor 114, dessen Ausgangssignal positiv ist, wenn irgendeiner der Eingänge ein
negatives Signal führt. Darüber hinaus wird immer wenn das Ausgangssignal des ODER-Tores 114 positiv ist, die Instruktion,
die sich im Instruktionspuffer B befindet, nicht in das I-Register übertragen.
Der Rest der Schaltung in Fig. 4B besitzt ferner die gleichen
WA9710O2 309810/0597
logischen Merkmale der UND- und ODER-Tore, die bereits in Zusammenhang
mit Fig. 4A erläutert wurden. Darüber hinaus sind in der linken Seite von Fig. 4B bestimmte zusätzliche Rückwirkungseingänge
von der Pipeline-Verarbeitungseinheit dargestellt. Die Signale an diesen Eingängen sind immer dann positiv, wenn die
an jeder Eingangsleitung angegebene Bedingung erfüllt ist. Die Schaltung nach Fig. 4B erzeugt am Ausgang des ODER-Tores 116 ein
Signal, das den Inhalt des Instruktionspuffers B in das I-Register
durchschaltet und zwar gemäß allen Prüfungen, die in den Ablaufdiagrammen in den Fign. 3A und 3B erläutert wurden. Das gleiche
trifft zu für den Ausgang des ODER-Tores 118, der ein Signal für die Durchschaltung der Instruktion im Instruktionspuffer A in
das I-Register erzeugt.
Wie Fig. 2 zeigt, empfängt das I-Register 48 (Instruktions-Register)
Informationen von beiden Vordecodierern 44 und 46. Tatsächlich erzeugen die Vordecodierer Signale für die Durchschaltung der in den
beiden Instruktionspuffern 40 und 42 gepufferten Information.
Die Funktion des I-Registers besteht in der Einleitung der Ausführungsphase
für die von einem Vordecodierer ausgewählte Instruktion. Das I-Register 48 kann daher als die erste Position in einer
Pipeline-Verarbeitungseinheit betrachtet werden, durch die eine Instruktion laufen muß, wenn sie ausgeführt werden soll.
Wenn die sich in dem I-Register befindliche Instruktion eine Adressenrechnung
benötigt, dann wird der notwendige Zugriff zu einem Allzweckregister für die Instruktion im I-Register vorgenommen.
Bevor jedoch die Adressenrechnung durchgeführt wird, müssen die Verfügbarkeit eines Adressenregisters und der Operandenpuffer
sichergestellt und diese Mittel der Instruktionsoperation zugeteilt werden. Zusätzlich zu der Mittelzuteilung wird die Instruktion,
während sie sich in dem I-Register befindet, auf Gültigkeit geprüft und ferner werden die Adressenfelder der Allzweckregister
geprüft, um zu bestimmen, ob sie die durch den besonderen Operationscode der Instruktion diktierten Restriktionen erfüllen. Wenn
309810/0597
WA 971 002
eine Ausnahme festgestellt wird, wird der betreffende Instruktionsstrom
unterbrochen und eine ungültige Instruktion angezeigt. Die oben erwähnten Prüfungen erfolgen durch externe Schaltkreise,
die in den beiliegenden Figuren nicht dargestellt sind, die aber direkt an das I-Register angeschlossen sind. Diese Prüfungen werden
durch Schaltkreise durchgeführt, die im wesentlichen den gleichen Aufbau besitzen wie die Prüfschaltungen in den bekannten
Maschinen des IBM System/360.
Wenn die Prüfungen in dem I-Register 48 beendet sind, gelangt die Instruktion in die Q-Register 54, 56, 50 und 52. Die Q-Register
dienen als Zwischenpuffer für die Instruktionen der verschiedenen Instruktionsströme und als Kurzzeitspeicherplätze
für diese Instruktionen für die Zeit, während der die Pipeline-Verarbeitungseinheit
für die Verarbeitung der Instruktion fertig gemacht wird. Wenn die Instruktionen des I-Register 48 verlassen,
können sie zu drei Speicherplätzen gelangen: Ql-Register 54, Q-Register A 50 und Q-Register B 52. Wenn die Instruktion eine
Instruktion des Instruktionsstroms A ist, kann diese Instruktion nur zu dem Ql-Register 54 oder dem Q-Register A 50 gehen, während
eine Instruktion aus dem Instruktionsstrom B entweder zu dem
Ql-Register 54 oder dem Q-Register B 52 gelangen kann. In jedem Falle muß jede Instruktion des Instruktionsstromes A mindestens
eine Zykluszeit im Q-Register A 50 zubringen, während jede Instruktion des Instruktionsstroms B mindestens eine Zykluszeit im Q-Register
B 52 verbringen muß.
Wenn sich eine Instruktion im Q-Register A 50 beispielsweise befindet, wird die Instruktion einer Allzweckregister-Gültigkeitsprüfung
unterworfen, eine Prüfung, die durch geführt wird, um sicherzustellen, ob die Verarbeitungseinheit Operanden vom Speicher
sucht, die für die Verarbeitung der Instruktion notwendig sind. Eine ähnliche Prüfung wird gleichzeitig bezüglich des
Q-Registers B 52 für jede Instruktion durchgeführt, die sich in ihm befindet. Wenn diese Prüfungen vorüber sind, wird die
Instruktion während des nächsten Zyklus in ein I-Register über-
971 002 309810/0597
- 19 übertragen, die jedem Q-Register zugeordnet ist.
Unter bestimmten Umständen verlaufen die Prüfungen In dem Q-Register
für einen bestimmten Instruktionsstrom ungünstig. Daher wird beispielsweise der sich im Q-Register A 50 befindlichen
Instruktion eine übertragung in das E*-Register A 58 nicht erlaubt.
Dieses bedeutet, daß, wenn das I-Register 48 eine Instruktion
vom Instruktionsstrom A enthielte, die Instruktion vom I-Register
48 zu dem Ql-Register 54 übertragen würde, da das Q-Register A eine Instruktion enthielte, die noch nicht verarbeitet worden
wäre. Wenn gleichzeitig eine Instruktion im Ql-Register 54 enthalten
wäre, würde diese Instruktion zu dem Q2-Register 56 Übertragen. Wenn die Instruktion im Ql-Register eine Instruktion
des Instruktionsstroms B wäre, dann würde diese vom Ql-Register 54 zu dem Q-Register B 52 übertragen, wenn das Q-Register B 52
leer wäre.
Die Register 54 und 56 dienen als Zwischenpuffer zwischen dem I-Register 48 und dem Q-Register A 50 und dem Q-Register B 52.
Die Durchschaltesammelleitungen, die in Fig. 2 dargestellt sind,
zeigen, daß die Ql-Register 54 und Q2-Register 56 mit dem Q-Register A 50 oder Q-Register B 52 verbunden werden können.
Diese Durchschaltung kann jedoch nur erfolgen, wenn entweder das Q-Register A 50 oder das Q-Register B 52 leer sind und die
Instruktion, die vom Ql-Register 54 oder dem Q2-Register 56 her übertragen wird, zu dem entsprechenden Instruktionsstrom
gehört. Die Durchschaltungseinrichtung ist ferner so ausgebaut, daß die Instruktionen in einem gegebenen Instruktionsstrom nicht
außerhalb ihrer Reihenfolge verarbeitet werden. Obwohl die Durchschaltungseinrichtung
nicht dargestellt ist, sind ihre Funktionen so deutlich beschrieben, daß der Fachmann die Steuerung für den
Betrieb der Q-Register ohne weiteres entwerfen kann.
Wenn eine Instruktion das Ε-Register (Ausführung) erreicht, werden
nur noch ein paar Prüfungen durchgeführt, bevor die Instruktion von der Pipeline-Verarbeitungseinheit 62 verarbeitet wird.
971 Ü02 3098 10/0597
Wenn eine Instruktion, die einen Speicheroperanden benötigt, in
das Ε-Register übertragen wird, wird eine Prüfung durchgeführt, um sicherzustellen, daß der Operand auch verfügbar ist. Wenn
diese Prüfung nicht erfolgreich verläuft, dann ist die Pipeline-Verarbeitungseinheit
nicht in der Lage, diese Daten abzurufen und die Verarbeitung dieses Instruktionsstroms muß so lange zurückgestellt
werden, bis der Speicherabruf erfolgreich beendet ist. Wenn die Prüfung dagegen anzeigt, daß der Speicheroperand verfügbar
ist, dann wird dieser in die Arbeitsregister der Pipeline-Verarbeitungseinheit übertragen. Zusätzlich werden alle Allzweckregisterzugriffe
durchgeführt, während sich die Instruktion im Ε-Register befindet. Wenn diese Prüfungen und Operationen beendet
sind, ist die Instruktion für eine sofortige Verarbeitung in der Pipeline-Verarbeitungseinheit 62 bereit. Unter besonderen Umständen
kann eine Instruktion, die sich im Ε-Register A 58 und im Ε-Register B 60 befindet, gleichzeitig von der Pipeline-Verarbeitungseinheit
verarbeitet werden, wenn dort genügend Parallelkapazität für diese Verarbeitung vorhanden ist. Diese Parallelkapazität
ist eine Entwurfsfrage der betreffenden Pipeline-Verarbeitungseinheit und wird hier nicht als Teil der Erfindung behandelt.
Unter normalen-Umständen jedoch werden die Instruktionen,
die in den E-Registern 58 und 60 fertig für die Verarbeitung vorliegen, wechselweise verarbeitet. Nur unter Bedingungen, in denen
die Instruktion im Ε-Register diese Prüfungen nicht erfolgreich besteht, werden zwei oder mehr Instruktionen aus einem einzigen
Ε-Register in aufeinanderfolgenden Maschinenzyklen von der Pipeline-Verarbeitungseinheit
62 verarbeitet.
WA 971 002 309810/0597
Claims (5)
- - 21 -PATENTANSPRÜCHE -Einrichtung in einem elektronischen Datenverarbeitungssystem mit einem Hauptspeicher und einer Instruktionsverarbeitungseinrichtung zur Instruktionsselektion, dadurch gekennzeichnet, daß mindestens ein erster (14; Fig. 1) und zweiter (16) Instruktionspuffer für die Zwischenspeicherung mindestens einer Instruktion in jedem Puffer, wobei jeder Instruktionspuffer einem von mindestens zwei voneinander unabhängigen Instruktionsströmen (A oder B) fest zugeordnet ist, vorgesehen ist und daß eine Wählschaltung (18) mit den mindestens zwei Instruktionspuffern verbunden ist und die nächste von den in einem der mindestens zwei Instruktionspuffer gespeicherten Instruktionen für die Verarbeitung durch die Verarbeitungseinheit (12) auswählt, indem die mit ihrem . Durchschaltenetzwerk (22) die ausgewählte Instruktion zur Verarbeitungseinheit überträgt.
- 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Wählschaltung mit einem Eingangsnetzwerk (20; Fig. 1) mit der Verarbeitungseinheit (12) verbunden ist, in dem Prüfkreise* (Fign. 4A, B) vorgesehen sind, die die Verfügbarkeit vöii Verarbeitungsmitteln in der Verarbeitungseinheit prüfen und daß die Wählschaltung davon abhängig die nächste auszuführende Instruktion aus einem entsprechenden Instruktionspuffer (14, 16) auswählt.
- 3. Einrichtung nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß mindestens zwei Prüfeinrichtungen (45, 46; Fig. 2) vorgesehen sind, die jeweils zur Abfrage der Verfügbarkeit der Verarbeitungsmittel einerseits mit der Verarbeitungseinheit (62) und andererseits mit einem Instruktionspuffer (40 oder 42) zur Bestimmung verbunden sind, ob für die im angeschlossenen Instruktionspuffer befindliche Instruktion' die Verarbeitungsmittel für die Verarbeitung dieser Instruktion geeignet sind, wobei an den Ausgängen (auf 102,WA 971 002 309810/0597114, 116, 118; Fig. 4B) Signale erzeugt werden, die die Verfügbarkeit von Verarbeitungsinittels für die Instruktion im angeschlossenen Instruktionspuffer angeben und daß das Durchschaltenetzwerk (64) in Abhängigkeit von diesen Signalen nur eine Instruktion von den Instruktionen in den Instruktionspuffern zur Verarbeitungseinheit überträgt.
- 4. Verfahren zum Betrieb einer Einrichtung nach einem oder mehreren der Ansprüche 1 bis 3, gekennzeichnet durch folgende Verfahrensschritte:1. Abfrage der Verfügbarkeit von Verarbeitungsmitteln in der Verarbeitungseinheit für die nächste Instruktion in jedem der unabhängigen Instruktionsströme,2. Erzeugung einer Verfügbarkeitsangabe für jede Instruktion über die Verarbeitungsmittel, die für deren spezifische Verarbeitung gerade vorhanden sind und3. Sperrung oder Übertragung einer Instruktion zur. Verarbeitungseinheit in Abhängigkeit von einer Verfügbarkeitsangabe.
- 5. Verfahren nach Anspruch 4, gekennzeichnet durch folgende Verfahrensschritte für den Betrieb des Durchschaltenetzwerks:1. Sperrung der übertragung jeder Instruktion, für die keine Verfügbarkeitsanzeige vorliegt, vom Instruktionspuffer zur Verarbeitungseinheit,2. Übertragung der Instruktion, für die eine Verfügbarkeitsangabe vorliegt, wenn nur eine Prüfeinrichtung ein solches Signal erzeugt,3. übertragung einer Verzweigungs- oder AusführungsInstruktion, wenn beide Prüfschaltungen eine Verfügbarkeitsangabe erzeugen,4. abwechselnde übertragung der Instruktionen aus allen Instruktionspuffern, wenn keine der genannten Entscheidungen über die nächste zu übertragende Instruktion getroffen werden kann,WA 971 002 30,9810/0597O "3übertraung der Instruktion desjenigen Instruktionsstroms, der Im unmittelbar vorhergehenden Zyklus nicht übertragen wurde undWiederholung der vorstehend genannten Operationen, bis alle Instruktionen in jedem-unabhängigen Instruktionsstrom zu der Verarbeitungseinheit übertragen wurden.97! 002 309810/0597Leerseite
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17649571A | 1971-08-31 | 1971-08-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2224537A1 true DE2224537A1 (de) | 1973-03-08 |
DE2224537C2 DE2224537C2 (de) | 1985-01-17 |
Family
ID=22644580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2224537A Expired DE2224537C2 (de) | 1971-08-31 | 1972-05-19 | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor |
Country Status (7)
Country | Link |
---|---|
US (1) | US3771138A (de) |
JP (1) | JPS5317023B2 (de) |
CA (1) | CA954227A (de) |
DE (1) | DE2224537C2 (de) |
FR (1) | FR2151801A5 (de) |
GB (1) | GB1378565A (de) |
IT (1) | IT951839B (de) |
Families Citing this family (73)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4001787A (en) * | 1972-07-17 | 1977-01-04 | International Business Machines Corporation | Data processor for pattern recognition and the like |
US3959777A (en) * | 1972-07-17 | 1976-05-25 | International Business Machines Corporation | Data processor for pattern recognition and the like |
JPS5039437A (de) * | 1973-08-10 | 1975-04-11 | ||
US3875391A (en) * | 1973-11-02 | 1975-04-01 | Raytheon Co | Pipeline signal processor |
JPS5745684Y2 (de) * | 1974-05-20 | 1982-10-08 | ||
US4062058A (en) * | 1976-02-13 | 1977-12-06 | The United States Of America As Represented By The Secretary Of The Navy | Next address subprocessor |
SE435429B (sv) * | 1977-04-26 | 1984-09-24 | Ericsson Telefon Ab L M | Anordning for att mot utgaende informationsflodesgrenar forgrena ett inkommande "pipeline"-informationsflode |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
US4236204A (en) * | 1978-03-13 | 1980-11-25 | Motorola, Inc. | Instruction set modifier register |
US4320453A (en) * | 1978-11-02 | 1982-03-16 | Digital House, Ltd. | Dual sequencer microprocessor |
JPS5585956A (en) * | 1978-12-21 | 1980-06-28 | Hitachi Ltd | Information processor |
US4295193A (en) * | 1979-06-29 | 1981-10-13 | International Business Machines Corporation | Machine for multiple instruction execution |
US4539635A (en) * | 1980-02-11 | 1985-09-03 | At&T Bell Laboratories | Pipelined digital processor arranged for conditional operation |
US4439827A (en) * | 1981-12-28 | 1984-03-27 | Raytheon Company | Dual fetch microsequencer |
DE3241357A1 (de) * | 1982-11-09 | 1984-05-10 | Siemens AG, 1000 Berlin und 8000 München | Vorrichtung zur mikrobefehls-bereitstellung fuer mindestens zwei unabhaengig arbeitende funktionseinheiten in einem integrierten, mikroprogrammierten elektronischen baustein und verfahren zu ihrem betrieb |
US5093775A (en) * | 1983-11-07 | 1992-03-03 | Digital Equipment Corporation | Microcode control system for digital data processing system |
DE3419602A1 (de) * | 1984-05-25 | 1985-11-28 | Philips Patentverwaltung Gmbh, 2000 Hamburg | Schaltungsanordnung zur verringerung der verzerrungen bei einem fm-quadraturdemodulator |
US4631662A (en) * | 1984-07-05 | 1986-12-23 | The United States Of America As Represented By The Secretary Of The Navy | Scanning alarm electronic processor |
JPH0776917B2 (ja) * | 1984-12-29 | 1995-08-16 | ソニー株式会社 | マイクロコンピユ−タ |
JPH07107783B2 (ja) * | 1985-05-30 | 1995-11-15 | ソニー株式会社 | エラ−情報チエツク装置 |
US4734852A (en) * | 1985-08-30 | 1988-03-29 | Advanced Micro Devices, Inc. | Mechanism for performing data references to storage in parallel with instruction execution on a reduced instruction-set processor |
DE3751503T2 (de) * | 1986-03-26 | 1996-05-09 | Hitachi Ltd | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. |
US4773041A (en) * | 1986-06-02 | 1988-09-20 | Unisys Corporation | System for executing a sequence of operation codes with some codes being executed out of order in a pipeline parallel processor |
JPH0760388B2 (ja) * | 1987-06-09 | 1995-06-28 | 三菱電機株式会社 | パイプライン制御回路 |
GB8817912D0 (en) * | 1988-07-27 | 1988-09-01 | Int Computers Ltd | Data processing apparatus |
JPH0770961B2 (ja) * | 1988-08-12 | 1995-07-31 | 日本電気株式会社 | マイクロコンピュータ |
JP2810068B2 (ja) | 1988-11-11 | 1998-10-15 | 株式会社日立製作所 | プロセッサシステム、コンピュータシステム及び命令処理方法 |
US5127093A (en) * | 1989-01-17 | 1992-06-30 | Cray Research Inc. | Computer look-ahead instruction issue control |
JPH02306341A (ja) * | 1989-02-03 | 1990-12-19 | Nec Corp | マイクロプロセッサ |
US5113515A (en) * | 1989-02-03 | 1992-05-12 | Digital Equipment Corporation | Virtual instruction cache system using length responsive decoded instruction shifting and merging with prefetch buffer outputs to fill instruction buffer |
US5151981A (en) * | 1990-07-13 | 1992-09-29 | International Business Machines Corporation | Instruction sampling instrumentation |
JPH0476626A (ja) * | 1990-07-13 | 1992-03-11 | Toshiba Corp | マイクロコンピュータ |
JP2908598B2 (ja) * | 1991-06-06 | 1999-06-21 | 松下電器産業株式会社 | 情報処理装置 |
EP1526446A3 (de) * | 1991-07-08 | 2007-04-04 | Seiko Epson Corporation | RISC-Prozessor mit erweiterbarer Architektur |
EP0547240B1 (de) * | 1991-07-08 | 2000-01-12 | Seiko Epson Corporation | Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus |
US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
US5539911A (en) * | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
US5493687A (en) | 1991-07-08 | 1996-02-20 | Seiko Epson Corporation | RISC microprocessor architecture implementing multiple typed register sets |
WO1993019416A1 (en) * | 1992-03-25 | 1993-09-30 | Zilog, Inc. | Fast instruction decoding in a pipeline processor |
US5438668A (en) * | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
EP0636256B1 (de) | 1992-03-31 | 1997-06-04 | Seiko Epson Corporation | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
EP0638183B1 (de) | 1992-05-01 | 1997-03-05 | Seiko Epson Corporation | Vorrichtung und verfahren zum befehlsabschluss in einem superskalaren prozessor. |
US6735685B1 (en) * | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
KR100248903B1 (ko) | 1992-09-29 | 2000-03-15 | 야스카와 히데아키 | 수퍼스칼라마이크로프로세서에서의 적재 및 저장연산처리방법 및 시스템 |
DE69330889T2 (de) | 1992-12-31 | 2002-03-28 | Seiko Epson Corp., Tokio/Tokyo | System und Verfahren zur Änderung der Namen von Registern |
US5628021A (en) | 1992-12-31 | 1997-05-06 | Seiko Epson Corporation | System and method for assigning tags to control instruction processing in a superscalar processor |
US5925125A (en) * | 1993-06-24 | 1999-07-20 | International Business Machines Corporation | Apparatus and method for pre-verifying a computer instruction set to prevent the initiation of the execution of undefined instructions |
US5481743A (en) * | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
US5872946A (en) * | 1997-06-11 | 1999-02-16 | Advanced Micro Devices, Inc. | Instruction alignment unit employing dual instruction queues for high frequency instruction dispatch |
US5928355A (en) * | 1997-06-27 | 1999-07-27 | Sun Microsystems Incorporated | Apparatus for reducing instruction issue stage stalls through use of a staging register |
US5918034A (en) * | 1997-06-27 | 1999-06-29 | Sun Microsystems, Inc. | Method for decoupling pipeline stages |
US6658447B2 (en) * | 1997-07-08 | 2003-12-02 | Intel Corporation | Priority based simultaneous multi-threading |
US6076157A (en) * | 1997-10-23 | 2000-06-13 | International Business Machines Corporation | Method and apparatus to force a thread switch in a multithreaded processor |
US6567839B1 (en) | 1997-10-23 | 2003-05-20 | International Business Machines Corporation | Thread switch control in a multithreaded processor system |
US6212544B1 (en) | 1997-10-23 | 2001-04-03 | International Business Machines Corporation | Altering thread priorities in a multithreaded processor |
US6697935B1 (en) | 1997-10-23 | 2004-02-24 | International Business Machines Corporation | Method and apparatus for selecting thread switch events in a multithreaded processor |
US6105051A (en) * | 1997-10-23 | 2000-08-15 | International Business Machines Corporation | Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor |
US6044460A (en) * | 1998-01-16 | 2000-03-28 | Lsi Logic Corporation | System and method for PC-relative address generation in a microprocessor with a pipeline architecture |
US6317820B1 (en) | 1998-06-05 | 2001-11-13 | Texas Instruments Incorporated | Dual-mode VLIW architecture providing a software-controlled varying mix of instruction-level and task-level parallelism |
US6263424B1 (en) * | 1998-08-03 | 2001-07-17 | Rise Technology Company | Execution of data dependent arithmetic instructions in multi-pipeline processors |
US6535905B1 (en) | 1999-04-29 | 2003-03-18 | Intel Corporation | Method and apparatus for thread switching within a multithreaded processor |
US6542921B1 (en) | 1999-07-08 | 2003-04-01 | Intel Corporation | Method and apparatus for controlling the processing priority between multiple threads in a multithreaded processor |
US6357016B1 (en) | 1999-12-09 | 2002-03-12 | Intel Corporation | Method and apparatus for disabling a clock signal within a multithreaded processor |
US6889319B1 (en) * | 1999-12-09 | 2005-05-03 | Intel Corporation | Method and apparatus for entering and exiting multiple threads within a multithreaded processor |
US6496925B1 (en) | 1999-12-09 | 2002-12-17 | Intel Corporation | Method and apparatus for processing an event occurrence within a multithreaded processor |
US7051329B1 (en) * | 1999-12-28 | 2006-05-23 | Intel Corporation | Method and apparatus for managing resources in a multithreaded processor |
US7856633B1 (en) | 2000-03-24 | 2010-12-21 | Intel Corporation | LRU cache replacement for a partitioned set associative cache |
US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
US7139898B1 (en) | 2000-11-03 | 2006-11-21 | Mips Technologies, Inc. | Fetch and dispatch disassociation apparatus for multistreaming processors |
US7035998B1 (en) | 2000-11-03 | 2006-04-25 | Mips Technologies, Inc. | Clustering stream and/or instruction queues for multi-streaming processors |
US8024735B2 (en) | 2002-06-14 | 2011-09-20 | Intel Corporation | Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution |
US7310722B2 (en) * | 2003-12-18 | 2007-12-18 | Nvidia Corporation | Across-thread out of order instruction dispatch in a multithreaded graphics processor |
US20060229638A1 (en) * | 2005-03-29 | 2006-10-12 | Abrams Robert M | Articulating retrieval device |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2015971A1 (de) * | 1969-04-03 | 1970-10-15 | International Business Machines Corp., Armonk, N.Y. (V.St.A.) | Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden |
-
1971
- 1971-08-31 US US00176495A patent/US3771138A/en not_active Expired - Lifetime
-
1972
- 1972-03-16 FR FR7209923A patent/FR2151801A5/fr not_active Expired
- 1972-04-18 IT IT23250/72A patent/IT951839B/it active
- 1972-05-11 GB GB2199972A patent/GB1378565A/en not_active Expired
- 1972-05-19 DE DE2224537A patent/DE2224537C2/de not_active Expired
- 1972-05-24 CA CA143,245A patent/CA954227A/en not_active Expired
- 1972-05-26 JP JP5178072A patent/JPS5317023B2/ja not_active Expired
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2015971A1 (de) * | 1969-04-03 | 1970-10-15 | International Business Machines Corp., Armonk, N.Y. (V.St.A.) | Datenverarbeitungssystem zur Verarbeitung eines Stromes mehrfacher Operanden |
Also Published As
Publication number | Publication date |
---|---|
JPS5317023B2 (de) | 1978-06-05 |
US3771138A (en) | 1973-11-06 |
GB1378565A (en) | 1974-12-27 |
FR2151801A5 (de) | 1973-04-20 |
CA954227A (en) | 1974-09-03 |
DE2224537C2 (de) | 1985-01-17 |
JPS4834447A (de) | 1973-05-18 |
IT951839B (it) | 1973-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2224537A1 (de) | Einrichtung und verfahren zur instruktionsselektion | |
DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
DE3750306T2 (de) | System zum Gewährleisten der logischen Unversehrtheit von Daten. | |
DE2430127C2 (de) | Einrichtung zur Steuerung des Speicherzugriffs konkurrierender Benutzer | |
DE2714805C2 (de) | ||
DE3750935T2 (de) | Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner. | |
DE3650156T2 (de) | Auf regeln basiertes datenwiederauffindverfahren und anordnung. | |
DE4301417C2 (de) | Computersystem mit Einrichtung zur parallelen Befehlsausführung | |
DE3687724T2 (de) | Digitalprozessorsteuerung. | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE3486211T2 (de) | Kodebestimmung mit einem auf Halbaddierer basierten Operandenvergleicher. | |
DE3788492T2 (de) | Vorrichtung und Verfahren zur Verbesserung des Cachezugriffdurchflusses in Pipelineprozessoren. | |
DE69418146T2 (de) | Temporärer Registersatz für einen superpipeline-superskalaren Prozessor | |
DE2855106A1 (de) | Einrichtung zur durchfuehrung von instruktionsverzweigungen | |
DE1774296B2 (de) | Restruktuierbare Steuereinheit für elektronische Digitalrechner | |
DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE69324967T2 (de) | Cache-Speicherfehlgriffvorhersageverfahren und -vorrichtung für einen nach Seiten organisierten Hauptspeicher in einem Datenverarbeitungssystem | |
DE1524898C3 (de) | Datenspeicher mit direktem mehrdimensionalen Zugriff zur gleichzeitigen Entnahme mehrerer Wörter | |
DE2906685C2 (de) | ||
DE2617485A1 (de) | Verfahren und schaltungsanordnung zur abarbeitung von mikrobefehlsfolgen in datenverarbeitungsanlagen | |
DE3105115C2 (de) | ||
DE2759120C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |