DE1299146B - Befehlssteuereinheit - Google Patents

Befehlssteuereinheit

Info

Publication number
DE1299146B
DE1299146B DEJ34247A DEJ0034247A DE1299146B DE 1299146 B DE1299146 B DE 1299146B DE J34247 A DEJ34247 A DE J34247A DE J0034247 A DEJ0034247 A DE J0034247A DE 1299146 B DE1299146 B DE 1299146B
Authority
DE
Germany
Prior art keywords
instruction
branch
address
register
buffer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DEJ34247A
Other languages
English (en)
Inventor
Sparacio Francis John
Conti Carl Joseph
Tomasulo Robert Marco
Anderson David Wendell
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE1299146B publication Critical patent/DE1299146B/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/325Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for loops, e.g. loop detection or loop counter
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • G06F9/381Loop buffering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)
  • Stored Programmes (AREA)

Description

1 2
Die Erfindung betrifft eine Befehlssteuereinheit zur Maschinenzeit verloren, wenn bedingte Verzwei-
Behandlung bedingter Verzweigungsbefehle. gungsinstruktionen ausgeführt werden sollen, da der
Eines der vielen Probleme, das bei dem Entwurf genaue Zeitpunkt des Auftretens der Bedingung, von
von Datenverarbeitungssystemen großer Leistung be- der die Verzweigung abhängig ist, im voraus nicht rücksichtigt werden muß, ist das Problem des Ge- 5 bekannt ist.
schwindigkeits-Unterschiedes zwischen der Zentral- Die Aufgabe der Erfindung besteht nun darin, einheit und den Speichereinheiten. Zur Verbesserung diese Nachteile durch die Angabe einer vorteilhaften dieser Situation wird allgemein eine Technik des Einrichtung zur Behandlung von Programmverzwei- »Vorausschauens« verwendet, wobei Instruktionen gungenineinemDatenverarbeitungssystemanzugeben. vorabgerufen und in Puffern oder Warteschlangen io Für eine Befehlssteuereinheit zur Behandlung be-gespeichert werden, während frühere Instruktionen dingter Verzweigungsbefehle besteht die Erfindung decodiert und/oder ausgeführt werden. Die Existenz darin, daß die Verzweigungsziel-Befehle in Puffereiner Warteschlange von Instruktionen in einer Zen- registern zwischengespeichert sind, bevor feststeht, traleinheit kann in vielen Fällen auch dazu benutzt ob auf Grund des Vorliegens der Verzweigungswerden, um Instruktionswort-Abrufe aus dem Spei- 15 bedingung verzweigt werden kann o3er nicht, und eher in solchen Situationen zu umgehen, wo die In- daß ferner parallel zu den Pufferspeichern ein Nebenstruktionen, die decodiert werden sollen, sofort im übertragungsweg vorgesehen ist, über welchen die Puffer verfügbar sind. Eine solche Situation liegt Verzweigungsziel-Befehle vom Speicher unter Umdann vor, wenn beispielsweise eine Rückverzwei- gehung der Puffer direkt zu dem Operationsregister gungs-Instruktion in einer Instruktionsfolge erscheint. 20 übertragen werden, wenn die Verzweigung durch-Dadurch entsteht eine Folge von Instruktionen, geführt werden soll, bevor ein Speicherzugriff vollweiche im allgemeinen mehrmals wiederholt werden ständig durchgeführt ist.
muß und die im folgenden als Schleife bezeichnet Günstige Resultate lassen sich weiterhin dadurch
wird. In den meisten Rechnerprogrammen erscheinen erzielen, daß bei der Decodierung einer bedingten
solche Schleifen recht häufig, und viele von ihnen 25 Verzweigungsinstruktion, deren Bedingung noch
sind so kurz, daß die gesamte Instruktionsschleife in nicht erfüllt ist, eine Steuerung eingestellt wird,
einer Gruppe von Puflerregistern ohne übermäßigen welche die ersten Befehle der Verzweigung in Sonder-
Aufwand an Speicher- und Steuereinrichtungen ge- puffern speichert, die übrigen vom Vorabruf in den
speichert werden kann. Puffern befindlichen Befehle decodiert und mit Be-
Während die Verzweigungsinstruktion manchmal 30 dingungskennzeichen versieht, welche die Ausfüh-
speziell die Adresse der Instruktion enthält, zu wel- rung der Befehle verhindern.
eher verzweigt werden soll, wenn die Bedingung er- Die weitere Arbeitsweise kann dann so durchfüllt ist, wird diese Instruktionsadresse häufig erzeugt, geführt werden, daß die Befehlssteuereinheit das Beindem ein fester Wert, welcher in der Instruktion ent- dingungskennzeichen entfernt, wenn die Verzweigung halten ist, hinzugefügt wird oder durch die Instruk- 35 nicht ausgeführt wird.
tion als ein Wert angegeben wird, welcher sich in Schließlich ist auch von besonderem Vorteil, daß
einem gegebenen Indexregister befindet. Deshalb die Befehlssteuereinheit bei Feststellung der Bedin-
wird, wenn sich die Instruktionsschleife in den gung die konditioneil ausgegebenen Befehle löscht
Pufferregistern befindet, keine Zeit damit verloren, und den im ersten Sonderpuffer befindlichen Befehl
daß Instruktionen während der Ausführung der 40 zum Decoder für die Ausführung und in einen der
Schleife abgerufen werden. Jedoch können mehrere Puffer überträgt, den nächsten Befehl aus dem Son-
Zyklen bei einer Verzweigungsinstruktion verloren derpuffer in den Befehlspuffer einspeichert und den
werden, die eine Instruktionsschleife beendet, und Befehlsvorablauf über den Verzweigungspfad wieder
zwar jedesmal dann, wenn die Schleife vervollständigt aufnimmt.
ist, da es notwendig ist, die Adresse, zu der hin ver- 45 Der mit der Erfindung erzielbare Vorteil besteht in
zweigt werden soll, bei jeder Verzweigungsinstruk- einer beträchtlichen Zeitersparnis bei großen Daten-
tion zu bestimmen. Diese Zyklen können jedoch ver- Verarbeitungssystemen, die mit einem Vorabruf von
mieden werden, indem die Adresse der Verzweigungs- Instruktionen und mit Überlappung von InstruktionS1
instruktion, die eine Instruktionsschleife einleitet, ge- und Ausführungszyklen arbeiten, besonders aber
speichert wird. Ferner muß auch die Adresse, zu 50 dann, wenn mit diesen Systemen Problemprogramme
welcher verzweigt wird, gespeichert und außerdem bearbeitet werden müssen, die viele kurze Schleifen
direkt zu der gespeicherten Adresse übergegangen enthalten.
werden, zu welcher verzweigt werden soll, wenn die Eine besondere Zeitersparnis wird vor allem da-
Adresse einer Verzweigungsinstruktion, welche de- durch erreicht, daß, sobald die Verzweigungsbedin-
codiert wird, der gespeicherten Adresse der Ver- 55 gung bestimmt ist, die Instruktionen für die sofortige
zweigungsinstruktion entspricht. Dieses Verfahren Ausführung in etwa 50 °/o aller Verzweigungsbefehlen
kann jedoch zu einem Fehler führen, wenn die gültig gemacht werden können. Wenn der Verzwei-
Adresse, zu welcher verzweigt werden soll, sich wäh- gungspfad durchlaufen werden soll, liegen bereits
rend der Ausführung der Schleife ändert und somit alle notwendigen Daten durch den Vorabruf vor, so
nicht mit der Adresse übereinstimmt, zu der verzweigt 60 daß insbesondere das Warten auf den Abruf des Ver-
werden soll. Daher muß die Verzweigungsinstruktion zweigungsziels nach der Verzweigungsentscheidung
genügend lange zurückgehalten werden, um festzu- vermieden wird.
stellen, ob nicht die Instruktionsausführung nach Im folgenden wird die Erfindung an Hand eines
einer Verzweigungsinstruktion irgendeinen Teil der durch Zeichnungen erläuterten Ausführungsbeispiels
Adresse, zu welcher verzweigt werden soll, verändert. 65 näher beschrieben. Es zeigt
Bei großen Datenverarbeitungsanlagen, deren Fig. 1 das Blockschaltbild eines Datenverarbei-
Verarbeitungszyklus wesentlich schneller ist als tungssystems, in welchem die Instruktionseinheit ge-
deren Speicherzyklus, geht im allgemeinen sehr viel maß der Erfindung eingebaut ist, /
3 4
Fig. 2A und 2 B sowie 3A bis 3B schematische die obere Adressengrenze die Adresse der nächsten Darstellungen der Instruktionseinheit gemäß der Er- Instruktion an, die abgerufen werden soll. Dieses findung. Signal wird sowohl als eine Abrufanordnung als
Die in F i g. 1 dargestellte Zentraleinheit ist im auch als Signal für die Erhöhung des Inhalts des wesentlichen aus fünf Einheiten aufgebaut, welche 5 Registers 147 um den Wert 1 verwendet. Der Inhalt durch Daten- und Steuerleitungen miteinander ver- des Registers 147 kann weder den Inhalt des Rebunden sind. Da die E-Einheit 133 (Ausführungsein- gisters 148 noch denjenigen des Registers 150 über heit) einen Teil besitzt, welcher für das Rechnen mit treffen, da Register 150 für die untere Adressen-Gleitkommazahlen, und einen weiteren Teil besitzt, grenze von der ihm zugeordneten Inkrementierwelcher für arithmetische Operationen mit Fest- io schaltung 153 gleichzeitig mit dem Register 147 für kommazahlen und logische oder arithmetische Ope- die obere Adressengrenze erhöht wird, wenn die Gerationen mit alphanumerischen Operanden variabler fahr besteht, daß der Inhalt dieses Registers größer Länge vorgesehen ist, ist sie mit einer Gleitkomma- wird.
einheit 142 und mit einer Festkommaeinheit 143 dar- Bei der Anordnung nach den Fig. 2A und 2B
gestellt. Die hauptsächlichen Verbindungen zwischen 15 sind drei Arten von Programmschleifen möglich: den Einheiten sind ebenfalls in dieser Figur gezeigt,
wobei die Zahl der Steuerleitungen (CL), der 1. eine Schleife, bei welcher das Verzweigungsziel
Adressenleitungen (A, B, jeweils 24 Adern) und der acht oder mehr Doppelwörter (entsprechend der
Datenleitungen (DB, je 72 Bit) und außerdem die Kapazität der Pufferspeicher 156) zurückliegt,
Kommunikationsrichtungen zwischen den logischen ao 2. eine Schleife zu einer Adresse, die weniger als Einheiten angegeben sind. acht Doppelwörter zurückliegt, die aber noch
Die F i g. 1 zeigt auch das für die Bedienungs- und vor der Adresse liegt, die in dem Register 150
Wartungszwecke vorgesehene Bedienungspult mit den für die untere Adressengrenze gespeichert ist
Verbindungen zu allen Teilen des Systems. Die Ein- und daher nicht in den Puffern 156 enthalten ist,
gänge zu dem Bedienungspult 102 bestehen meistens as 3 eme Schleife zu einer Adresse, die gleich oder aus individuellen Datenbitleitungen von der Zentral- größer als die im Register 150 angegebene ist
einheit, wobei 926 Bits von der Einheit 142, 629 Bits un(j die sich daher schon innerhalb der Puffer
von der Einheit 143, 1024 Bits von der I-Einheit 134, χζβ befindet.
681 Bits von der Hauptspeicher-Steuereinheit 136
und 191 Bits von der Peripher-Speicher-Steuereinheit 30 Die Schleife der erstgenannten Art wird wie jede 137 hergeführt sind. Ferner halten eine Gruppe von andere Verzweigung mit bedingter Instruktionsaus-53 Leitungen 144 und eine Gruppe von 100 Leitun- gäbe behandelt, bis der Bedingungscode gültig ist, gen 166 die Verbindung des Steuerpultes 102 mit der mit Vorabruf der Instruktionswörter längs des Ver-Kanaleinheit 122, die nicht dargestellt ist, aufrecht. zweigungspfades und, wenn die Schleife durchlaufen Wie die F i g. 1 weiter zeigt, besitzt das System auch 35 werden muß, mit der Übertragung der Zieladresse in einen Hauptspeicher 104 und eine Erweiterung des das Register 147 für die obere Adressengrenze, in Hauptspeichers 105, die jeweils mit Speicherschutz- das I-Register 148 und in das Register 150 für die einrichtungen 138 versehen sind. untere Adressengrenze, damit der neue Programm
pfad gestartet werden kann.
Allgemeine Beschreibung der Instruktionseinheit 40 Für die Schleife nach der zweiten Art finden die
gleichen Operationen statt, um die Schleife zu star-
Wie bereits erwähnt, ist es in schnellen und großen ten. Jedoch wird nun ein Schleifenart-Trigger (nicht Datenverarbeitungssystemen mit vergleichsweise lan- dargestellt) eingestellt, damit die Erhöhung des Regen Speicherzyklen für den Abruf der Instruktionen gisters 150 verhindert wird. Ferner wird die im vorteilhaft, wenn Verarbeitungszeit dadurch gespart 45 I-Register 148 gespeicherte Verzweigungsadresse in werden kann, daß eine ganze Instruktionsschleife in das Register 179 gebracht. Wenn nun der Operations-Pufferregistern mit schnellem Zugriff gespeichert decoder 166 eine Verzweigungsinstruktion auffindet, werden kann. Hierdurch wird ein wiederholtes Ab- wird der Inhalt des Registers 179 mit demjenigen des rufen der Schleifeninstruktionen vermieden. I-Registers 148 verglichen, um so festzustellen, ob
Gemäß der Erfindung werden die Instruktions- 50 diese Instruktion das Ende der Schleife ist. Ist dieses Wörter vorabgerufen und in der Instruktionseinheit der Fall, dann wird die Zieladresse in dem Register 134, wie Fig. 2A zeigt, in einem Satz von acht In- 180 (in Fig. 2B) zu dem I-Register 148 übertragen, struktionspuffern 156 gespeichert. Als Kennzeichen um einen erneuten Durchlauf der Schleife zu starten, oder Adresse der acht Pufferspeicher dient jeweils Die Instruktionen für einen solchen erneuten Durcheine dreistellige Binärzahl, die in den drei niedrigsten 55 lauf werden konditionell ausgegeben, wenn der Be-Binärstellen der Adresse des Doppelwertes enthalten dingungscode gültig ist. Hierdurch wird auch angeist. Zur Speicherung der oberen Adressengrenze ist zeigt, daß eine erneute Verzweigung notwendigt ist. ein Register 147 vorgesehen, welches die Adresse des Die zweite Schleifenart wird automatisch bei dem
letzten Instruktionswortes, für welche eine Abruf- zweiten Umlauf zur dritten Art, da die Zielinstrukanforderung von der Maschine gegeben wurde, ent- 60 tion nun innerhalb der Puffer 156 ist. Wenn diese hält. Ein weiteres Register 148, das sogenannte I-Re- Bedingung erkannt wird, weil die Zieladresse gleich gister, enthält die Adresse desjenigen Pufferspeichers oder größer ist als die im Register 150 für die untere Nummer 0 bis 7, welcher die zu decodierende In- Adressengrenze gespeicherte, wird kein Vorabruf von struktion enthält. Für die untere Adressengrenze ist Instruktionen in die beiden Temporärpuffer 157 das Register 150 vorgesehen, welches die Adresse der 65 mehr benötigt. In jedem Fall wird der normale Prozuerst in einen Puffer 156 eingespeicherten Instruk- grammablauf wiederaufgenommen und der Schleifention enthält. Normalerweise gibt der Ausgang der Betriebsart-Trigger zurückgestellt, wenn der Bedin-Inkrementierschaltung 151 für das Register 147 für gungscode gültig wird, wodurch angezeigt wird, daß
der Schleifenpfad nicht durchlaufen wird. Mit Aus- dann sofort unter Verwendung der Adresse im Renahme einer maximal langen Schleife wird minde- gister 147 eingeleitet. Beim nächsten Maschinenstens einer dieser direkten Pfadinstruktionen in einem zyklus wird ein zweiter Abruf eingeleitet, indem die der Puffer 156 gespeichert sein, denn der normale Adresse aus der Inkrementierschaltung 151, die Abruf wird nicht gesperrt, sondern wird fortgesetzt, 5 ebenfalls in 147 gespeichert ist, verwendet wird. Ein damit diejenigen Puffer 156 gefüllt werden, welche dritter und vierter Abruf wird zu den nächsten zwei nicht für die Programmschleifen-Instruktionen be- Maschinenzyklen mit einer Erhöhung von 147 bei nötigt werden. jedem Abruf aufgerufen, nachdem die Erhöhung das
Register 147 auf eine Adresse einstellt, die um 3 Instruktionseinheit 10 höher ist ^8 die Startadresse im Register 148. Dieses
Die Instruktionseinheit (I-Einheit) 134 wird durch ist dann die Adresse des letzten abgerufenen Wortes,
die Instruktionswörter des Programms gesteuert und Die Bestimmung eines abgerufenen Wortes wird, be-
hat folgende Aufgaben: vor dieses Wort selbst übertragen wird, zur Maschi-
„ , nenzykluszeit ausgesendet. In diesem Fall werden
1. Abruf und Pufferung der Instruktionsfolgen; 15 die Eingangstore zu dem Instruktionspuffer 156 aus-
2. teilweise Decodierung der Instruktionen und gewählt, welcher die Adresse besitzt, die den niedihre Verteilung zu den entsprechenden Ausfüh- rigsten drei Ziffern der Speicheradresse entspricht, rungseinheiten; um so das zurückgekehrte Wort in den zugehörigen
3. Abruf von Operanden für die Ausführungsein- Instruktionspuffer 156 zu bringen. Da dieses der erste heiten; 20 Abruf ist, ist das Operationsregister 159 zu dieser
4. vollständige Ausführung von Verzweigungs-, Zeit nocn leer> und das abgerufene Wort wird auch Eingabe-Ausgabe- und Zustands- und Schalt- in dieses Register übertragen. Das Operationsregister Instruktionen und teilweise Ausführung von In- 1S9 wird so gesteuert, daß es Instruktionswörter von struktionen, die Vielfach-Operationen erfordern; Jedem der Instruktionspuffer 156, den Temporär-
5. Behandlung von Unterbrechungen. -3 Puffern J57 odir von der Sammelleitung 155 emp-
6 6 fangen kann. Ferner speichert es das laufende In-
Die erste Aufgabe, der Instruktionsabruf, wird von struktionswort für die Decodierung und Steuerung drei Registern gesteuert, dem Register 147 für die und enthält auch einen genügend großen Anteil des obere Adressengrenze (Fig. 4A), dem Instruktions- nächsten Instruktionswortes (oder der nächsten Inregisterl48 (I-Register) und dem Register 150 für 30 struktionswörter), damit es seine Doppelwortkapadie untere Adressengrenze. Jedes dieser drei Register zität voll ausfüllt. Aufeinanderfolgende Instruktionsist mit einer eigenen Inkrementierschaltung 151, 152 Wörter werden in aufeinanderfolgenden Instruktionsund 153 verbunden, welche immer ein Ausgangs- puffern 156 in der Reihenfolge gespeichert, wie sie signal besitzt, das einen um den Wert 1 höheren Wert empfangen werden.
repräsentiert, als das zugeordnete Register enthält. 35 Im vorliegenden Beispiel können die Instruktionen Wenn der inkrementierte Ausgangswert in das Re- drei verschiedene Längen aufweisen, nämlich 16, 32 gister zurückgebracht wird, dann nimmt das Register oder 48Bits. In Fig. 2A ist ferner nur angedeutet, den inkrementierten Wert an, welcher dann zu der daß das Operationsregister 159 eine umfangreiche Inkrementierschaltung 151, 152 oder 153 gelangt, Anordnung von Toren besitzt, die den Verkehr von welche diesen Wert dann auf den nächsthöheren 40 und zu diesem Register steuert. Auf der Eingangs-Wert erhöht. Daher wird der Inhalt des Registers seite sind vier Gruppen von 16 Bittoren, so daß eine jedesmal, wenn der Ausgang der Inkrementierschal- oder mehrere beliebige von den 16 Bitpositionen des tung auf das zugehörige Register geschaltet wird, um Registers 159 unabhängig voneinander geladen wereine Einheit erhöht. den können. Zuerst werden, wie bereits erwähnt, alle
Die Instruktionswörter vom Speicher, jeweils 45 64 Bits des ersten Instruktionswortes auf der Leitung Doppelwörter von 72 Bits, werden von der I-Einheit 155 in das Operationsregister 159 übertragen. Da die 134 auf einer Gruppe von 72 Leitungen, welche die Instruktionen an jeder beliebigen der vier Positionen Speicherausgangsleitung 155 bilden, empfangen und innerhalb dieser Instruktion starten können, ist es zu einer Gruppe von acht Instruktionspuffern 156, verständlich, daß die laufende Adresse in dem I-Redie mit 0 bis 7 numeriert sind, oder unter bestimmten 50 gister 148 zwei niedrigstellige Bits zusätzlich zur AbBedingungen zu den temporären Puffern 157, die mit rufadresse benötigt, damit der richtige Teil des In-1 und 2 numeriert sind, übertragen. Zunächst kann struktionswortes im Register 159 für die Decodierung angenommen werden, daß das erste abgerufene In- ausgewählt werden kann. Eine oder mehrere der struktionswort in dem Instruktionspuffer 156 ge- 16-Bitgruppen in der linken Position können zu speicher wird, welcher als Kennzeichen (oder Adresse) 55 einem früheren Programm gehören und werden nicht die drei niedrigsten Bits der Doppelwortadresse des verwendet. Daher werden, gesteuert durch das I-Reabgerufenen Wortes besitzt. Das zweite Wort wird gister 148, beliebige der für das Auffüllen dieser linnormalerweise eine Folgeadresse besitzen und daher ken Positionen mit kennzeichnenden Instruktionen in dem Puffer mit der nächsthöheren Nummer ge- benötigten Bits zu dem Operationsregister 159 überspeichert, bis schließlich der Instruktionspuffer Num- 60 tragen, wenn das zweite Instruktionswort über die mer 7 gefüllt ist. Das nächste Instruktionswort möge Sammelleitung 155 abgerufen worden ist. Danach, eine Größe haben, welche mit 000 endigt, so daß das da Instruktionen von dem Register 159 verwendet abgerufene Wort demzufolge in dem Instruktions- werden, wird dieses wieder vom Instruktionspuffer puffer 156 mit der Nummer 0 gespeichert wird. 156 aufgefüllt, um das Register 159 mit nicht ver-
Es wird ferner angenommen, daß alle Instruktions- 65 wendeten Instruktionen gefüllt zu halten, puffer 156 ebenso wie die Register 147, 148 und 150 Unter den Ausgangstoren des Registers 159 befin-
anfänglich leer sind. Die Startadresse des Programms det sich eine Toranordnung für den Operationscode, wird in 147,148 und 150 gespeichert. Ein Abruf wird welche aus vier Gruppen von acht Toren besteht und
eine 8adrige Sammelleitung 160 bedient. Da der Ope- gewählt wird, wird zu dem dritten Eingang 172 der rationscode stets von den acht links angeordneten Addierschaltung 168 übertragen.
Bits einer Instruktion gebildet wird und die Instruk- Die Allzweckregister befinden sich nicht in der
tion bei jeder der vier Positionen innerhalb des Re- Instruktionseinheit 134, sondern in der Festkommagisters 159 beginnen kann, werden die Leitungen 160 5 einheit 143 (Fig. 1). Da die erforderliche Zeit zur den acht links angeordneten Bits in jeder Gruppe von Übertragung eines Tor-Steuersignals zu den AIl-16 Bits zugeordnet. zweckregistern und zum Empfang ihrer gespeicher-
Die Speicheradressen innerhalb der Instruktions- ten Werte wesentlich ist und mindestens einen Verwörter können in zwei verschiedenen Formaten dar- lust von einem Maschinenzyklus in der für die Ergestellt werden. Das erste Format betrifft Instruk- io zeugung der effektiven Adresse erforderlichen Zeit tionen für solche Operationen, welche nur die Ver- bewirken, werden die in den Allzweckregistern gewendung einiger der Allzweckregister (GPR) erfor- speicherten Zahlen sofort für die I-Einheit 137 zudem. Diese Instruktionen bezeichnen ein oder zwei gänglich gemacht, indem sogenannte »heiße Leitun-Allzweckregister innerhalb der zweiten 8 Bits von gen« 173 und 174 für die Verbindung der Allzweckden ersten 16 Bits der Instruktion. Diese Adressen 15 register mit der I-Einheit bereitgestellt werden. Wenn werden über die zugeordneten Positionen einer 8adri- daher ein Wert aus einem Allzweckregister benötigt gen Sammelleitung 161 übertragen. Beim zweiten wird, dann wird dieser augenblicklich in die Addier-Format wird eine Speicheradresse in der zweiten schaltung 168 übertragen, obwohl zwischen den bei- oder dritten 16-Bitgruppe einer längeren Instruktion den Einheiten ein bestimmter Abstand vorhanden angegeben, da 4 Bits ein Allzweckregister angeben, ao ist. Die einzige Ausnahme, die eine augenblickliche welches eine Basisadresse und 12 Bits enthält, welche Verfügbarkeit eines Wertes in einem Allzweckdie Verlagerung der gewünschten Adresse von dieser register verhindert, kann dann auftreten, wenn ein Basisadresse kennzeichnen. Die 4 Bits für die Aus- Wert, welcher in einem Allzweckregister gespeichert wahl des Allzweckregisters werden bei diesem For- werden soll, in der Addierschaltung 168 erzeugt und mat zu den ausgewählten Positionen einer vieradri- 35 beim nächsten Maschinenzyklus benötigt wird. Nur gen Sammelleitung 142 übertragen. Die begleitenden dann reicht die Zeit für die Speicherung des Wertes zwölf, die Verlagerung angebenden Bits der Adresse in dem Allzweckregister und die Rückübertragung werden über eine 12adrige Sammelleitung 164 in auf die Leitungen 173 und 174 nicht aus. Diese Auseinen Pufferspeicher 165 (s. Fig. 2B) übertragen. nähme wird in der Instruktionseinheit 134 überprüft Der Operationscode einer Instruktion in dem Re- 30 und durch den Einbau eines temporären Registers gister 159 wird über die Sammelleitung 160 zu dem 176 kompensiert, welches vom Ausgang des Regi-Operationsdecoder 166 übertragen. Die Steuerung sters 168 geladen wird.
übernehmen hierbei die beiden niedrigstelligen Bits Wann immer die Instruktionseinheit 134 feststellt,
der im I-Register 148, welches, wie bereits erwähnt, daß die Adresse eines gewünschten Allzweckregiden Ort der laufenden Instruktion innerhalb des Re- 35 sters die gleiche ist, wie diejenige eines Registers, gisters 159 angibt. Die zwei höchsten Bits des Opera- welches soeben von der Addierschaltung 168 getionscodes geben das Instruktionsformat an und laden wurde, dann wird der im temporären Register steuern das Auslesen des Adressenteils der Instruk- 176 gespeicherte Wert zu der Addierschaltung 168 tion auf den Sammelleitungen 161, 162 und 164. Für übertragen. Die Verbindungen über die Leitungen eine 16 Bits umfassende Instruktion gibt die Adresse 40 173 oder 174 bleiben hierbei außer Betracht. Ein oder geben die Adressen auf der Sammelleitung 151 anderes Register 177, das W-Register, empfängt normalerweise ein Allzweckregister an, welches Ope- ebenfalls die Ausgangssignale der Addierschaltung randen für eine Operation in der E-Einheit 133 ent- 168. Der Inhalt dieses Registers kann entweder über hält. Diese werden deshalb zusammen mit den Ope- die Leitung 200 zu den Allzweckregistern oder über rations-Steuersignalen vom Decoder 166 übertragen. 45 die Leitung 201 zu dem Hauptspeicher 104 über-Für eine Instruktion mittlerer Länge, bestehend tragen werden.
aus 32 Bits, kann die zweite Hälfte der ersten 16 Bits In großen Datenverarbeitungssystemen werden
noch ein Allzweckregister angeben, welches beispiels- also Programmverzweigungen decodiert und in der weise als Adresse im Hauptspeicher 104 oder im er- Instruktionseinheit 134 verarbeitet. Die Datenverweiterten Hauptspeicher 105 verwendet wird. Eine 50 arbeitungsinstruktionen werden innerhalb der Insolche Adresse erfordert allerdings die Verwendung struktionseinheit vorverarbeitet und zu der Auseiner Addierschaltung 168 (Fig. 2A). Die Addier- führungseinheit zur Pufferung und späteren Ausfühschaltung 168 besitzt drei Eingänge, deren Signale rung übertragen. Die Instruktionen, die in der Inaddiert werden, um auf diese Weise zusammen die struktionseinheit decodiert werden sollen, werden effektive Addresse des abzurufenden Operanden zu 55 gepuffert und im Anschluß daran im Operationsbilden. Der Eingang 169 ist 12stellig und mit dem decoder entschlüsselt. Die Instruktionen für die AusPuffer 165 verbunden, welcher mit dem Verlage- führungseinheit werden in der Operationsstufe 167 rungsteil der direkten Adresse (relative Adresse) zunächst gespeichert und dann, nachdem die erforvom Operationsregister 159 geladen wird. Der Basis- derlichen Operanden vom Speicher abgerufen worteil der Adresse kann bis zu 24 Bits umfassen. Er 60 den sind, übertragen. Wenn vom Operationsdecoder wird in einem Allzweckregister gespeichert, welches 166 eine Verzweigungsinstruktion decodiert wurde, auf den zweiten Eingang 170 der Addierschaltung dann setzt eine unbedingte Verzweigung oder eine 168 geschaltet wird. Die Steuerung übernimmt hier- bedingte Verzweigung, deren Bedingungscode gültig bei die Adresse auf der Sammelleitung 162. Ein gesetzt wurde, die Verarbeitung der Instruktion auf weiterer Faktor der effektiven Adresse befindet sich 65 dem normalen Pfad fort, wenn die bedingte Verzweiin einem Indexregister, welches auch ein Allzweck- gung nicht durchgeführt wird, oder sie stoppt die register ist. Der Wert des Indexregisters, welches Verarbeitung abgerufener späterer Instruktionen und durch die Signale auf der Sammelleitung 161 aus- beginnt mit der Wiederauffüllung der Puffer 156 mit
ίο
Instruktionen längs des Verzweigungspfades, wenn der Verzweigungspfad durchlaufen werden soll.
Wenn jedoch die Bedingungen, auf denen die Verzweigung beruht, noch nicht bestimmt sind, dann stoppt die Instruktionseinheit 134 für mehrere Zyklen und bewirkt einen Abruf der ersten beiden Instruktionen der Verzweigung. Diese werden von dem Speicher auf einer Sammelleitung 155 zu einem Paar von Temporärpuffern 157 übertragen. Während diese
codeteil der nächsten Instruktion verfügbar. Der Rest der Instruktion kann dann in das Register 159 geladen werden, wenn der Operationscode decodiert wird.
Jedesmal, wenn das I-Register 148 so erhöht worden ist, daß ein Übertrag von den beiden niedrigstelligen Bitpositionen in eine höherstellige Bitposition erfolgt, dann ist dieses ein Kennzeichen dafür, daß sowohl eine andere Doppelwortinstruktion vollstän-
Abrufe durchgeführt werden, fährt die Instruktions- io dig verwendet wurde, jedenfalls soweit es die I-Eineinheit mit der Decodierung und Ausgabe der In- heit betrifft, als auch dafür, daß die Decodierung struktionen aus den Pufferspeichern 156 fort. Diese eines neuen Wortes begonnen wurde. Da der Inhalt Instruktionen haben jedoch ein Bedingungskenn- des Registers 147 für die obere Adressengrenze nun zeichen erhalten, welches die Ausführung der In- nicht drei Doppelwortadressen bezüglich des Inhalts struktion verhindert. Wenn die Bedingungen, auf 15 des I-Registers 148 voraus ist, wird der Abruf einer denen eine Verzweigung beruht, bestimmt sind, dann nächsten Instruktion aufgerufen und das Register 147 entfernt die Instruktionseinheit 134 das Bedingungs- wieder erhöht, so daß sein Inhalt nun wieder um 3 kennzeichen, wenn keine Verzweigung vorliegt, oder demjenigen des I-Registers 148 voraus ist. Das Resie löscht die konditionell ausgegebene Instruktion, gister 150 für die untere Adressengrenze ist jedoch wenn eine Verzweigung vorliegt. Im letzteren Fall 20 bei der Adresse des ersten Instruktionswortes, welwird das Instruktionswort, welches sich in dem Tem- ches in die Pufferspeicher 156 eingegeben wurde, steporärpuffer Nummer 1 befindet, sofort für die Aus- hengeblieben. Wenn das Register 147 von Fall zu führung decodiert und ferner in einen der Puffer- Fall erhöht wird, so daß es einen Abruf in das gleiche speicher 156 übertragen. Als nächstes wird dann die Pufferregister 156 anfordert, in welchem das erste InInstruktion im Temporärpuffer Nummer 2 in den 25 struktionswort gespeichert wurde, dann wird die Puffer 156 gebracht, so daß der Instruktionsabruf Adresse im Register 150 erhöht und so die nächstüber den Verzweigungspfad von diesem Punkt an höhere Adresse bestimmt. Daher enthält das Register wiederaufgenommen wird, indem das Instruktions- 147 insgesamt die Adresse des letzten Instruktionsregister 148, das Register 147 für die obere Adres- wortes, welches für einen Abruf bezeichnet wurde, sengrenze und das Register 150 für die untere Adres- 30 Das I-Register 148 enthält die Adresse desjenigen Insengrenze zurückgestellt wird. struktionswortes, welches decodiert wird. Das Re-
„. . , . . , T . , A. . , .. gister 150 schließlich enthält die Adresse des ältesten
Die Arbeitsweise der Instruktionseinheit Instruktionswortes, welches in dem Puffer 156 geblie-
Beim Betrieb der Instruktionseinheit wurde davon ben ist. Diese Operationen werden in dieser Reihenausgegangen, daß anfänglich die Register 147 für die 35 folge fortgesetzt, bis ein Verzweigungspunkt erreicht obere Adressengrenze 148 und 150 für die untere wird. Für eine Verzweigung, die eine ausreichend Adressengrenze und auch alle Instruktionspuffer 156 kurze Schleife bildet, die in den bereits in den Puf- und die temporären Register 157 frei von kennzeich- fern 156 gespeicherten Instruktionswörtern enthalten nenden Werten sind. Die Adresse der Start-Instruk- ist, wie ein Vergleich der Adresse in 150 mit der tion wird in die Register 147, 148 und 150 geladen. 40 Verzweigungsadresse, die in der laufenden Instruk-Der Instruktionsabruf wird durch Anforderungen für tion angegeben ist, zeigt, wird die I-Einheit 134 in Doppelwörter von den Adressen in dem Register 147 die Betriebsart »Schleifenbetrieb« umgeschaltet, gestartet. Das Register 147 wird bei jedem Abruf Beim »Schleifenbetrieb« wird die Adresse im Reerhöht, so daß es immer die Adresse des letzten an- gister 150 auf die Zieladresse der Verzweigung eingeforderten Instruktionsabrufes enthält. Es fordert so 45 gestellt. Das Register 150 wird darm so lange stilllange Abrufe von Instruktionswörtern an, bis es den gesetzt, wie der »Schleifenbetrieb« in der I-Einheit Adressen in dem I-Register 148 für insgesamt vier durchgeführt wird. Es ist aber auch möglich, diesen Anfangswörter um drei Wortadressen voraus ist. »Schleifenbetriebszustand« der I-Einheit herzustellen, Wenn das erste Wort zurückkommt, wird es in einen wenn das Ziel der Verzweigungsinstruktion nicht in der Instruktionspuffer 156 und in das Operations- 50 den Instruktionspuffern 156 enthalten ist. Dieses ist register 159 übertragen, wo die zwei niedrigstelligen aber nur möglich, wenn die Adresse weniger als 8 Bits des Registers 148, die beim Abruf keine Adres- volle Doppelwörter vor der Adresse der gegenwärtisenfunktion besitzen, das Auslesen der Anfangs- gen Instruktion liegt. Nur in einer solchen Situation Halbwortinstruktion von 16 Bits und deren Übertra- kann die gesamte Schleife in den Puffern 156 gespeigung zu dem Operationsdecoder 166 und den All- 55 chert werden. Beim Erkennen einer solchen Schleife, zweckregistern steuern. Sobald die erste Instruktion d. h., wenn die Verzweigungsadresse innerhalb von entweder durch Ausführung in die I-Einheit oder 8 Doppelwörtern, bezogen auf die Adresse im Rexlurch Übertragung zu einer anderen Einheit verarbei- gister 148, liegt, die jedoch zu dieser Zeit noch nicht tet ist, wird die Adresse im I-Register 148 um die in den Puffern 156 enthalten ist, wird eine Initialisie-Länge der letzten Instruktion erhöht. Diese Länge 60 rung der Instruktionseinheit gestartet. Hierbei wird, wird in den ersten beiden Bits dieser Instruktion an- wie bereits beschrieben, die Verzweigungsadresse der gezeigt, die nun auf den ersten Teil der nächsten In- Instruktion in die Register 147, 148 und 150 gespeistruktion hinweist. Zu dieser Zeit werden die Halb- chert, um somit den Instruktionsabruf zu starten. Im Wörter der Instruktion in dem Operationsregister »Schleifenbetriebszustand« bleibt das Register 150 159, welches verwendet wurde, ersetzt durch die ent- 65 unverändert bei der Startadresse. Im Register 147 sprechenden Halbwörter des nächsten Instruktions- wird eine Erhöhung ermöglicht, um somit die Puffer wortes aus einem Instruktionspuffer 156. Daher ist in 156 mit den zukünftigen Instruktionen aufzufüllen, dem Register 159 stets mindestens der Operations- sobald die notwendigen Maschinenzyklen entbehrt
11 12
werden können, nachdem die vier Zyklen, die für werden die im temporären Puffer 157 gespeicherten den anfänglichen Instruktionsabruf benötigt werden, Instruktionen gelöscht oder, wenn sie vom Speicher und nachdem derartige Operandenabrufe und andere noch nicht zurückgekehrt sind, in den Eingangstoren Speicheroperationen, soweit sie Vorrang haben, be- der Puffer 197 blockiert. Wenn aber eine Verzweiachtet wurden. 5 gungsbedingung auftritt, dann wird das im Tempo-
Bei jeder Art von »Schleifenbetrieb« ist die In- rärpuffer 157 mit der Nummer 1 gespeicherte Wort struktionsschleife in den Instruktionen, die im Puffer in einen der Instruktionspuffer 156 und in das Ope-156 gespeichert sind, enthalten. Die Instruktions- rationsregister 159 für die Decodierung als neue Inschleife wird decodiert und zur Ausführungseinheit struktionen übertragen. Die Speicheradresse dieses 133 übertragen, ohne daß die Notwendigkeit besteht, io Instruktionswortes wird in den Registern 147, 148 fortwährend Schleifeninstruktionen vom Speicher ab- und 150 untergebracht. Diese Adresse bestimmt, welzurufen. Jede Verzweigungsinstruktion, die zu einer eher der Puffer 156 zur Speicherung des Instruktions-Instruktionsschleife führt, ist eine Instruktion vom wortes ausgewählt wird. Das Instruktionswort in dem Typ der bedingten Verzweigung, weil anderenfalls Temporärpuffer 157 Nummer 2 wird nun in das die Maschine in einer endlosen Programmschleife 15 nächste angrenzende Pufferregister 156 übertragen weiterarbeiten müßte. Der Betrieb der Instruktions- und der Inhalt des Registers 147 für die obere Adreseinheit 134 ist für alle bedingten Verzweigungs- sengrenze um 1 erhöht. Das Steuersignal wird dann Instruktionen im wesentlichen der gleiche, wenn nicht zu der Inkrementierschaltung 151 zurückübertragen, die Instruktion zu dem ersten Typ von »Schleifen- Dadurch wird die um 2 erhöhte Verzweigungsadresse betrieb« führt, wo die Zielinstruktion sich bereits in 20 angegeben. Weitere Instruktionsabrufe erfolgen in den Puffern 156 befindet. Die Instruktionseinheit 134 der zuerst beschriebenen Weise. (Ausgenommen ist hat weder Schwierigkeiten mit einer unbedingten Ver- hierbei jedoch der Verzweigungspfad.) zweigungsinstruktion noch mit einer bedingten Ver- Wenn aber die bedingte Verzweigung in eine In-
zweigungsinstruktion, in welcher die Bedingung für struktionsschleife einmündet, welche in den Instrukdie Verzweigung vor der Decodierung der Instruk- 25 tionspuffern 156 enthalten sein kann, dann arbeitet tion nach ihrer Übertragung in das Operationsregister die Instruktionseinheit 134 für die erste Iteration so, 159 eingetreten ist. Bei diesen unbedingten oder vor- wie bereits oben erläutert wurde. Zusätzlich wird sie herbestimmten Verzweigungen wird die Adresse der in die »Schleifenbetriebsart« eingestellt, um damit so Instruktion in die Register 147,148 und 150 gegeben, lange zu verhindern, daß das Register 150 einen Wert sobald sie von der Addierschaltung 168 bestimmt 30 annimmt, welcher über der Zieladresse liegt, bis die worden ist, und die Bedingung wird, wenn es sich Verzweigungsbedingung festgestellt wurde. Wenn der um eine solche handelt, geprüft. Die Operation der Inhalt des Registers 150 schon über der Zieladresse Instruktionseinheit 134 wird dann in der zuerst be- liegt und daher die erste Schleifeninstruktion aus den schriebenen Weise fortgesetzt. Puffern 156 entnommen wurde, dann wird die InWenn jedoch die Verzweigung von einer Bedin- 35 struktionseinheit ebenfalls in die »Schleifenbetriebsgung abhängig ist, die zum Zeitpunkt der Instruk- art« eingestellt. Sie arbeitet dann wie bei jeder andetionsdecodierung noch nicht bestimmt ist, dann muß ren Verzweigung, d. h., die Zielinstruktion wird in die I-Einheit in einer Weise weiterarbeiten, welche den Temporärpuffer 157 mit der Nummer 1 gebracht, die größte Chance hat, Zeitverlust zu vermeiden. Die Der weitere Ablauf ist dann der gleiche, wie er bereits I-Einheit nimmt demzufolge an, daß die Bedingung 40 oben beschrieben wurde.
nicht eintritt, und fährt damit fort, die folgenden In- Solange die Instruktionseinheit 134 in der »Schlei-
struktionen zu decodieren und für die Ausführung zu fenbetriebsart« eingestellt bleibt, erfolgt kein zusätzübertragen. Sie bereitet jedoch eine Bedingungs-Prüf- licher Instruktionsabruf vom Hauptspeicher 104, schaltung zur Operation vor und aktiviert diese, wenn nachdem die Instruktionspuffer 156 mit 8 Wörtern die Bedingung erfüllt ist. Danach pausiert sie genü- 45 gefüllt wurden, beginnend bei der Zieladresse der gend lange, um zwei Speicherabrufe anzufordern, Verzweigung. Ein Abruf erfolgt erst wieder, nachdem wobei sie bei der Zieladresse der Verzweigung be- die Verzweigungsbedingung am Verzweigungspunkt ginnt. Diese zwei Instruktionswörter werden, wenn nicht mehr erfüllt wird oder sich die Zieladresse sie zurückkehren, in den Temporärpuffern 157 mit ändert. Es wurde oben erwähnt, daß normalerweise den Nummern 1 und 2 jeweils gespeichert, damit sie 50 angenommen wird, daß eine Verzweigung nicht dann zur Verfügung stehen, wenn die Programmver- durchgeführt wird und daß die Instruktionseinheit zweigung durchgeführt werden soll. Darüber hinaus nach der Verzweigungsinstruktion längs des Hauptwerden die Instruktionen, die zu der Instruktionsein- pfades ausgibt. Ferner wurde angegeben, daß solche heit 134 oder zu der Ausführungseinheit 133 übertra- Instruktionen mit Bedingungskennzeichen versehen gen werden, nachdem eine bedingte Verzweigungs- 55 und so lange nicht ausgeführt werden sollen, bis die Instruktion decodiert wurde, von einem Bedingungs- Verzweigungsbedingung festgestellt wurde. Im »Schleikennzeichen begleitet, welches die Ausführung der fenbetrieb« jedoch wird die alternative Annahme geInstruktion so lange verhindert, als es vorhanden ist, macht, daß z. B. die Verzweigung doch durchgeführt weil die Instruktionseinheit sonst nicht erfährt, ob die wird und daß sich die konditionell ausgegebenen InVerzweigung ausgeführt werden soll oder nicht. Wenn 60 struktionen in der Rückverzweigung zu der Schleife die Bedingung, auf welcher die Verzweigung be- befinden. Sie bleiben jedoch noch mit den Bedinruht, bestimmt ist, werden die mit dem Bedingungs- gungskennzeichen versehen und werden nicht eher kennzeichen versehenen Instruktionen von diesem ausgeführt, bis die vorhergehende Bedingung bebefreit, wenn die Bedingung nicht eingetreten ist. stimmt wurde. Wenn die Verzweigungsbedingung Wenn dagegen die Bedingung eingetreten ist, werden 65 verschwindet, werden auch die zugehörigen bedingdie mit dem Bedingungskennzeichen versehenen In- ten Instruktionen gelöscht. Die »Schleifenbetriebsart« struktionen gelöscht und deshalb nicht ausgeführt. wird dann verlassen und neue Instruktionen längs Wenn eine Verzweigungsbedingung nicht auftritt, des Hauptpfades ausgegeben. Das Register 150 für
13 14
die untere Adressengrenze beginnt wieder zu arbei- der Erzeugung der Adresse in der ersten Schleifenten, und auch das Register 147 für die obere Adres- iteration dargelegt und erläutert wurde, sengrenze beginnt sofort mit dem Abruf neuer In- Die Behandlung dieser Unstetigkeiten im Instruk-
struktionswörter, bis die normale Beziehung zwischen tionsstrom durch die Instruktionseinheit ist im weden in den Registern 147,148 und ISO gespeicherten S sentlichen die Aufgabe der Erfindung. Beim norma-Werten wiederhergestellt ist. len Betrieb fährt die Instruktionseinheit damit fort,
Es ist ferner auch möglich, die »Schleifenbetriebs- Instruktionswörter abzurufen und zu codieren, indem art« zu verlassen oder zu einer anderen Schleife über- das Register 147, wie bereits ausführlich beschrieben, zugehen, wenn einige Operationen durchgeführt wer- versucht, jeweils eine Adresse zu beinhalten, die den, die sich aus einer Instruktion innerhalb der io bezüglich des Registers 148 drei Instruktionswörter Schleife ergeben. Es wird daran erinnert, daß, wenn voraus ist, wobei sich dann etwa vier verwendete die Maschine in den »Schleifenbetrieb« übergangen Wörter in den Pufferregistern 156 befinden. Dieser ist, die Adresse des Verzweigungszieles in der Ad- normale Betrieb hält so lange an, bis eine Unstetigdierschaltung 168 dadurch erzeugt wird, daß die keit im Instruktionsstrom festgestellt wird. Eine solche Werte aus mindestens einem Allzweckregister und 15 Unstetigkeit ist beispielsweise eine Verzweigungsder Wert der Adressenverschiebung, der in der In- operation. Diese Verzweigungsoperationen können in struktion spezifiziert und im Puffer 165 gespeichert vier Kategorien unterteilt werden, von denen jede ist, aufsummiert werden. Wenn während der Bearbei- von der Instruktionseinheit unterschiedlich behandelt tang einer Schleife eine Instruktion denjenigen Wert wird. Die Verzweigungen können folgendermaßen verändert, welcher zur Erzeugung der Verzweigungs- ao gruppiert werden:
adresse wl einemder Allzweckregister gespeichert ist, χ unbedingte Verzweigungen (einschließlich bedann ist die alte Adresse nicht langer guttig. In die- ^ γ^^^^ |ie zum Zeitpunkt der
sem Fall muß die Verzweigungsinstruktion wieder Decodierung bestimmt sind) zu einer Wortaufgefrischt werden, damit die neue Verzweigungs- ad die s mehr ^ acht Wo'rtadressen zurück.
adresse bestimmt werden kann. Eine solche Wieder- 25 « ^
auffrischung der Verzweigungsadresse könnte bei 2> eme'bedingte Verzweigung, die noch nicht bejeder Iteration der Schleife geschehen. Es ist hierfür gtimmt. e zu einer wie 5 vo°stehend angegebenen
aber ein voller Maschinenzyklus notwendig, so daß Adresse
es vorgezogen wird zusätzliche Schaltungen in das 3_ &{m bedi verzweigung, welche zur Deco-System einzufügen damit diese zusatzlichen Maschi- 30 dieruilgSZei? entweder schon bestimmt ist oder nenzyklen vermieden werden können. Diese Schal- noch ^ zu einer Adr die weni ak
tungen umfassen das Register179, in welches die im acht Wortadressen zurückliegt, aber jenseits der
I-Register 148 gespeicherte Adresse übertragen wird, Adresse in dem Re^ster 150%6§ΐ und
wenn eine >>Schleifenbetnebsart«-Verzweigung ent- 4_ eine bedin Verzweigung, welche zur Decodeckt wird. Ferner ist das Register 180 notwendig, 35 dierungszeit entweder bestimmt ist oder noch welches die Zieladresse der Verzweigung empfangt ^ ^ einer Adre die z^sdbea der ^ Re_
wemdiesevonderA^ddierschaltungl68bereitgestellt gisterl50 und der im Register 148 gespeicherwird. Daher enthalt das Register 179 die Adresse der £en Adresse iiegt
Instruktion, welche die Verzweigung einstellt. Das
Register 180 enthält die Zieladresse für die Verzwei- 40 Für eine bedingte oder eine unbedingte Verzweigung. Wann immer in der »Schleifenbetriebsart« eine gung, für welche der Bedingungscode bereits einge-Verzweigungsinstruktion entdeckt wird, dann wird stellt wurde (z.B. bestimmte Bits des Programmdie Einstellung des I-Registers 148 in der Vergleichs- Steuerwortes, welchesimPufferregister 1006 [F i g. 3 A] schaltung 181 mit der Einstellung des Registers 179 gespeichert ist), wird durchgeführt zu einer Adresse verglichen. Wenn sie gleichen Inhalt haben, dann 45 in einem Allzweckregister, in einer Ausführungseinwird der Wert des Registers 180 in das Register 148 heit oder zu einer Adresse, welche durch die Addiübertragen, wobei dann ein Maschinenzyklus gespart tion der in zwei Allzweckregistern gespeicherten wird. Es wird ferner noch einmal erwähnt, daß die Adressen und eines 12 Bits umfassenden Verlage-Schleifeninstruktionen nach der Verzweigung so lange rungswertes, welcher in der Verzweigungsinstruknicht ausgeführt werden, bis die Verzweigungsbedin- 50 tion angegeben wird, bestimmt ist. In jedem Fall wird gung auftritt. die Verzweigungsadresse in der Addierschaltung 168
Die Zieladresse in dem Register 180 kann bei der erzeugt. Die Daten in den Allzweckregistern werden Vervollständigung der Iteration einer Schleife falsch über ständig angeschlossene Leitungen 334 (Fig. 3B) sein, wenn eines der Allzweckregister seinen gespei- zu zwei Gruppen von Toren 1030 und 1032 in die cherten Wert verändert hat, während es für die Er- 55 Instruktionseinheit übertragen. Wenn sie für eine Inzeugung der Adresse im Register 180 verwendet struktion angefordert werden, erfolgt die Durchschalwurde. Um diese Bedingung zu erkennen, speichert tung entweder über die Tore 1030 zur Sammelleitung die I-Einheit 134 während der Schleifenbetriebsart 173 oder über die Tore 1032 zur Sammelleitung 174 auch die Nummern (oder Adressen) der Allzweck- oder über beide. Wenn die Instruktion auch noch register, welche zur Erzeugung der Adresse im Re- 60 einen Verlagerungsfaktor, d. h. eine relative Adresse, gister 180 verwendet wurden, und überwacht ferner enthält, dann wird dieser vorübergehend in einem die Aktivität dieser Allzweckregister. Wenn eine Ver- Pufferspeicher 165 gespeichert und dann zusammen änderung in einem dieser überwachten Allzweck- mit den Daten der Allzweckregister auf den Sammelregister festgestellt wird, dann muß der im Register leitungen 173 und 174 übertragen, um somit die neue gespeicherte Wert als ungünstig betrachtet wer- 65 Adresse am Ausgang der Addierschaltung 168 anzuden. Daher wird die »Schleifenbetriebsart« abgeschal- geben.
tet und eine neue Verzweigungsadresse in der glei- Diese Adresse wird dann in das Arbeitsregister
chen Weise erzeugt, wie sie im Zusammenhang mit 177 und in das Temporärregister 176 übertragen. Die

Claims (4)

15 16
weitere Übertragung erfolgt dann auf der Sammel- tionell ausgegebenen Instruktionen löscht. Wenn die leitung 1033, die auf die Sammelleitung 1008 geschal- Verzweigungsbedingung auftritt, wird die Verzweitet wird. Damit erfolgt die Übertragung in die Regi- gungszieladresse, welche in den Temporärpuffern ster 148,147,150 und 1002. Die nun vorliegende Be- 156 gespeichert ist, über die Addierschaltung 168 dingung ist dann die gleiche, wie sie anfänglich für 5 und die Sammelleitungen 1033 und 1008 zu den Reden Start eines neuen Programms beschrieben wurde. gistern 1002, 150, 147 und 148 übertragen. Gleich-Die weitere Operation der I-Einheit wird dann, wie zeitig mit der Übertragung der Instruktionswörter, die oben beschrieben, von der Verzweigungsadresse aus sich in dem Temporärpuffer Nummer 1 befinden, auf weitergeführt. die Sammelleitung 1001 erfolgt auch ihre Ubertra-
Wenn die Verzweigung auf eine Bedingung gefor- io gung sowohl zu dem Pufferspeicher 156 für ihre Spei-
dert wird, die noch nicht aufgetreten ist, was durch cheradresse als auch in das Operationsregister 159 zur
das Einstellen der CC-Bits im Puffer 1006 (F i g. 3 A) sofortigen Decodierung und zur Einleitung einer
für das Programmsteuerwort angezeigt wird, dann neuen Instruktionsfolge. Beim nächsten Zyklus wird
macht die Instruktionseinheit die anfängliche An- das nächste Instruktionswort, welches in dem Tempo-
nahme, daß die Verzweigung nicht durchgeführt wird. 15 rärpuffer Nummer 2 gespeichert ist, in den Pufferspei-
Sie fährt fort mit der Decodierung der übrigen Ope- eher 156 mit der nächsthöheren Nummer übertragen,
randen, die sich ebenfalls in den Pufferregistern 156 Für die zweite Übertragung des Instruktionswortes
befinden oder die mit Hilfe eines Abrufes angefordert wird das Register 147 für die untere Adressengrenze
wurden. auf die Adresse des zweiten abgerufenen Wortes in-
Dann werden keine neuen Instruktionen mehr be- ao krementiert. Danach wird es freigegeben, damit es nötigt, um mit den Abrufen für diese Verzweigung weitere Instruktionswortabrufe entlang des Verzweivorzufahren. Statt dessen jedoch ruft die Instruktions- gungspfades, wie bereits für den normalen Instrukeinheit die ersten zwei Doppelinstruktionswörter auf tionswortabruf beschrieben wurde, einleiten kann, dem Verzweigungspfad ab, damit sie zur Verfügung Dieses ist so zu verstehen, daß wenn die Bedingungsstehen, wenn festgestellt wird, daß diese Verzweigung 95 code-Bits des im Puffer 1066 gespeicherten Proder richtige Weg der Weiterverarbeitung ist. Die grammsteuerwortes so eingestellt worden sind, daß Adresse des Verzweigungszielregisters wird in der sie gültig sind, dann fährt die Instruktionseinheit 134 Addierschaltung 168 in der oben beschriebenen unverzüglich mit der Instruktionsdecodierung fort. Weise erzeugt. Sie wird dann über die Sammelleitung Wenn die Verzweigungsbedingung noch nicht aufge- 1034 zu der Speicheradressensammelleitung 240 über- 30 treten ist, dann wird das Aktivierungssignal sofort tragen und wird nun die Adresse der Abrufanforde- ausgesendet, irgendwelche Abrufe aus den Temporärrung, die zu dieser Zeit von der Instruktionseinheit puffern 157 werden nicht ausgegeben und irgend- 134 ausgesendet wird. Die Abnehmeradresse für die- welche bereits ausgegebenen Abrufe ignoriert. Alle sen Abruf wird durch den Inhalt des Temporärpuf- übrigen Steuerungen werden auf normale Bedingunfers 157 Nummer 1 angegeben. Beim nächsten Ma- 35 gen eingestellt. Wenn die Verzweigungsbedingung schinenzyklus wird ein anderer Abruf mit der Adresse eintritt, dann wird das Löschsignal zu den Ausfühdes nächstfolgenden Doppelwortes angefordert, wel- rungseinheiten übertragen und der Abruf im Tempoches dadurch erzeugt wird, daß die über die Sammel- rärspeicher Nummer 1 direkt in die Pufferregister 156 leitung 1036 in das Register 177 zurückkehrende und das Operationsregister 159 übertragen, wenn er Adresse zu einem Eingang der Addierschaltung 168 40 zurückkehrt. Die Abrufrückkehr für den Temporärübertragen wird. Gleichzeitig wird ein + 1-Signal puffer Nummer 2 wird ebenfalls von der Speicherausüber die Leitung 1037 in eine bestimmte Bitposition gangssammelleitung 155 in die Pufferregister 156 des Eingangs 169 der Addierschaltung übertragen. übertragen. Ferner werden die Register 148,147,150 Die neue Adresse wird daraufhin über die Sammel- und 1002 auf die Verzweigungszieladresse zurückgeleitung 1034 zu der Speichersteuerung 136 übertra- 45 stellt. Im bedingten Verzweigungsbetrieb werden also gen und so gekennzeichnet, als käme sie aus dem die Verzweigungsbedingungs-Bits, sobald sie gültig Temporärspeicher 157 Nummer 2 für die Speiche- gesetzt wurden, getestet, und die Instruktionseinheit rung zurück. Die Instruktionseinheit 134 beginnt nun 134 fährt sogleich mit dem korrekten Verzweigungsmit der Decodierung und Ausgabe der übrigen In- pfad fort, sobald dieses möglich ist.
struktionen, die bereits für das Pufferregister 156 ab- 50 Die genauen Steuervorgänge und erforderlichen gerufen sind und abgerufen werden. Wie bereits frü- Torschaltungen, Register, Vergleicher und Verbinher angegeben, enthält jede dieser Instruktionen ein dungswege sind schließlich in den Fig. 3A bis 3D Bedingungskennzeichen. Sie wird so lange nicht aus- dargestellt. Sie stellen im wesentlichen nur Ergänzungeführt, bis dieses Bedingungskennzeichen, ein beson- gen der F i g. 1 bis 2B dar und werden im vorstehenderes Bit, beseitigt wird. Wenn die Bits des Bedin- 55 den Teil der Beschreibung, soweit erforderlich, ergungscodes des im Puffer 1006 gespeicherten Pro- läutert,
grammsteuerwortes gültig gesetzt sind, nämlich dann,
wenn die Bedingung der Verzweigungsinstruktion
noch nicht vorliegt, dann werden die konditioneil aus- Patentansprüche:
gegebenen Instruktionen ausgeführt, und die Instruk- 60
tionseinheit 134 sendet weiter ein Aktivierungssignal, 1. Befehlssteuereinheit zur Behandlung bedingweiches alle Bits des Bedingungskennzeichens auf ter Verzweigungsbefehle, dadurch gekenn-NuIl setzt und dadurch die Ausführung der bereits zeichnet, daß die Verzweigungsziel-Befehle decodierten Instruktionen ermöglicht. Wenn anderer- in Pufferregistern (156, 157 in Fig. 2A) zwiseits die Verzweigungsbedingung durch den gültigen 65 schengespeichert sind, bevor feststeht, ob auf Verzweigungscode vorliegt, dann sendet die Instruk- Grund des Vorliegens der Verzweigungsbedintionseinheit 134 an alle Ausführungseinheiten ein gung verzweigt werden kann oder nicht, und daß Löschsignal, welches das volle Signal für die kondi- ferner parallel zu den Pufferspeichern ein Neben-
übertragungsweg (2000) vorgesehen ist, über welchen die Verzweigungsziel-Befehle vom Speicher unter Umgehung der Puffer direkt zu dem Operationsregister (159) übertragen werden, wenn die Verzweigung durchgeführt werden soll, bevor ein Speicherzugriff vollständig durchgeführt ist.
2. Befehlssteuereinheit nach Anspruch 1, dadurch gekennzeichnet, daß bei der Decodierung einer bedingten Verzweigungsinstruktion, deren Bedingung noch nicht erfüllt ist, eine Steuerung eingestellt wird, welche die ersten Befehle der Verzweigung in Sonderpuffern (157 in Fig. 2A) speichert, die übrigen vom Vorabruf in den Puffern (156) befindlichen Befehle decodiert und mit Bedingungskennzeichen (Gültigmachen der CC-Bits im Puffer 1006 in Fig. 3 A) versieht, welche die Ausführung der Befehle verhindern.
3. Befehlssteuereinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Befehlssteuereinheit mittels eines Aktivierungssignals (bei gültigen CC-Bits) das Bedingungskennzeichen entfernt, wenn die Verzweigung nicht ausgeführt wird.
4. Befehlssteuereinheit nach Anspruch 2, dadurch gekennzeichnet, daß die Befehlssteuereinheit bei Feststellen der Bedingung die konditioneil ausgegebenen Befehle löscht und den im ersten Sonderpuffer (Nr. 1, 157 in Fig. 2A) befindlichen Wert zum Decoder (166) für die Ausführung und in einen der Puffer (156) überträgt, den nächsten Befehl aus dem Sonderpuffer (Nr. 2, 157) in den Puffer (156) einspeichert und den Befehlsvorabruf über den Verzweigungspfad wiederaufnimmt.
Hierzu 3 Blatt Zeichnungen
DEJ34247A 1966-09-21 1967-07-26 Befehlssteuereinheit Withdrawn DE1299146B (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US58105266A 1966-09-21 1966-09-21
US580910A US3418638A (en) 1966-09-21 1966-09-21 Instruction processing unit for program branches

Publications (1)

Publication Number Publication Date
DE1299146B true DE1299146B (de) 1969-07-10

Family

ID=27078163

Family Applications (1)

Application Number Title Priority Date Filing Date
DEJ34247A Withdrawn DE1299146B (de) 1966-09-21 1967-07-26 Befehlssteuereinheit

Country Status (4)

Country Link
US (2) US3490005A (de)
DE (1) DE1299146B (de)
FR (1) FR1536616A (de)
GB (1) GB1130270A (de)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3626427A (en) * 1967-01-13 1971-12-07 Ibm Large-scale data processing system
US3526878A (en) * 1967-03-27 1970-09-01 Burroughs Corp Digital computer system
US3512133A (en) * 1967-03-27 1970-05-12 Burroughs Corp Digital data transmission system having means for automatically switching the status of input-output control units
SE303056B (de) * 1967-08-31 1968-08-12 Ericsson Telefon Ab L M
US3577190A (en) * 1968-06-26 1971-05-04 Ibm Apparatus in a digital computer for allowing the skipping of predetermined instructions in a sequence of instructions, in response to the occurrence of certain conditions
US3568163A (en) * 1968-10-07 1971-03-02 Hewlett Packard Co Incremental display circuit
JPS5021821B1 (de) * 1968-10-31 1975-07-25
US3577189A (en) * 1969-01-15 1971-05-04 Ibm Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays
US3959777A (en) * 1972-07-17 1976-05-25 International Business Machines Corporation Data processor for pattern recognition and the like
JPS545942B2 (de) * 1972-10-07 1979-03-23
JPS5413949B2 (de) * 1973-05-14 1979-06-04
US3974479A (en) * 1973-05-01 1976-08-10 Digital Equipment Corporation Memory for use in a computer system in which memories have diverse retrieval characteristics
US3810110A (en) * 1973-05-01 1974-05-07 Digital Equipment Corp Computer system overlap of memory operation
US3881173A (en) * 1973-05-14 1975-04-29 Amdahl Corp Condition code determination and data processing
JPS50114944A (de) * 1974-02-18 1975-09-09
USRE31790E (en) * 1974-03-13 1985-01-01 Sperry Corporation Shared processor data entry system
DE2617485C3 (de) * 1976-04-22 1980-09-18 Nixdorf Computer Ag, 4790 Paderborn Schaltungsanordnung für Datenverarbeitungsanlagen zur Abarbeitung von Mikrobefehlsfolgen
SE403322B (sv) * 1977-02-28 1978-08-07 Ellemtel Utvecklings Ab Anordning i en styrdator for forkortning av exekveringstiden for instruktioner vid indirekt adressering av ett dataminne
US4179737A (en) * 1977-12-23 1979-12-18 Burroughs Corporation Means and methods for providing greater speed and flexibility of microinstruction sequencing
US4200927A (en) * 1978-01-03 1980-04-29 International Business Machines Corporation Multi-instruction stream branch processing mechanism
US4287561A (en) * 1978-03-16 1981-09-01 International Business Machines Corporation Address formulation interlock mechanism
US4181942A (en) * 1978-03-31 1980-01-01 International Business Machines Corporation Program branching method and apparatus
JPS5927935B2 (ja) * 1980-02-29 1984-07-09 株式会社日立製作所 情報処理装置
US4325118A (en) 1980-03-03 1982-04-13 Western Digital Corporation Instruction fetch circuitry for computers
JPS56149646A (en) * 1980-04-21 1981-11-19 Toshiba Corp Operation controller
US4373180A (en) * 1980-07-09 1983-02-08 Sperry Corporation Microprogrammed control system capable of pipelining even when executing a conditional branch instruction
US4471432A (en) * 1982-10-13 1984-09-11 Wilhite John E Method and apparatus for initiating the execution of instructions using a central pipeline execution unit
DE3626500A1 (de) * 1986-08-05 1988-02-18 Siemens Ag Verfahren und anordnung zur steuerung des vorauslesens von neuen befehlen einer befehlsfolge in den befehlspuffer einer datenverarbeitungsanlage
US4933837A (en) * 1986-12-01 1990-06-12 Advanced Micro Devices, Inc. Methods and apparatus for optimizing instruction processing in computer systems employing a combination of instruction cache and high speed consecutive transfer memories
US5197136A (en) * 1987-11-12 1993-03-23 Matsushita Electric Industrial Co., Ltd. Processing system for branch instruction
EP0315995B1 (de) * 1987-11-12 1999-01-27 Matsushita Electric Industrial Co., Ltd. Verarbeitungssystem für Verzweigungsbefehle
US4914579A (en) * 1988-02-17 1990-04-03 International Business Machines Corporation Apparatus for branch prediction for computer instructions
JPH02306341A (ja) * 1989-02-03 1990-12-19 Nec Corp マイクロプロセッサ
JP3804941B2 (ja) * 2002-06-28 2006-08-02 富士通株式会社 命令フェッチ制御装置
US7539853B2 (en) 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
US9158574B2 (en) 2002-11-18 2015-10-13 Arm Limited Handling interrupts in data processing
DE10254653B4 (de) * 2002-11-22 2009-05-28 Infineon Technologies Ag Vorrichtung zur Steuerung der Verarbeitung von Datenwörtern eines Datenstroms
US8650470B2 (en) * 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US7636810B2 (en) * 2003-11-26 2009-12-22 Intel Corporation Method, system, and apparatus for memory compression with flexible in-memory cache
JP2006243865A (ja) * 2005-03-01 2006-09-14 Seiko Epson Corp プロセッサおよび情報処理方法
US8190830B2 (en) * 2005-12-23 2012-05-29 Intel Corporation Method, apparatus, and systems to support execution pipelining in a memory controller
US9940129B2 (en) * 2015-04-24 2018-04-10 Optimum Semiconductor Technologies, Inc. Computer processor with register direct branches and employing an instruction preload structure

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US2202969A (en) * 1938-08-13 1940-06-04 Sklarek Clifford Convertible light
GB888732A (de) * 1959-12-30
US3201760A (en) * 1960-02-17 1965-08-17 Honeywell Inc Information handling apparatus
NL262931A (de) * 1960-03-29
US3156897A (en) * 1960-12-01 1964-11-10 Ibm Data processing system with look ahead feature
NL298451A (de) * 1962-10-01
US3307150A (en) * 1962-11-16 1967-02-28 Stromberg Carlson Corp Queue store
US3290648A (en) * 1963-01-02 1966-12-06 Bunker Ramo Comparator
US3292155A (en) * 1963-03-15 1966-12-13 Burroughs Corp Computer branch command
US3325788A (en) * 1964-12-21 1967-06-13 Ibm Extrinsically variable microprogram controls
DE1269392B (de) * 1965-04-05 1968-05-30 Ibm Einrichtung zur Division von Dezimalziffern

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
None *

Also Published As

Publication number Publication date
US3418638A (en) 1968-12-24
FR1536616A (fr)
GB1130270A (en) 1968-10-16
US3490005A (en) 1970-01-13

Similar Documents

Publication Publication Date Title
DE1299146B (de) Befehlssteuereinheit
DE3424962C2 (de)
DE69534113T2 (de) Kompression der Befehlswörter eines Rechners
DE69929936T2 (de) Verfahren und Vorrichtung zum Abrufen von nicht-angrenzenden Befehlen in einem Datenverarbeitungssystem
DE3750935T2 (de) Verfahren und System zum Erleichtern der Befehlsausführung in einem digitalen Rechner.
DE69622663T2 (de) Zweistufige vorausholungspufferstruktur und verfahren mit bypass
DE2855106C2 (de) Einrichtung zur Durchführung von bedingten Verzweigungen
DE3638572C2 (de)
DE69738188T2 (de) Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor
DE2130299C3 (de) Eingabe-/Ausgabekanal für eine Datenverarbeitungsanlage
DE3685913T2 (de) Vektorenverarbeitung.
DE2234867C2 (de) Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen
DE69702350T2 (de) Verzweigungsvorhersageschema für cachespeicherzeile, das von sätzen eines set-assoziativen cachespeichers gemeinsam verwendet wird
DE1285220C2 (de) Datenverarbeitungssystem mit mehreren selbstaendigen Recheneinheiten
DE3789490T2 (de) Steuerungssystem für ein Vektorprozessor.
DE3131341A1 (de) "pufferspeicherorganisation"
DE1499200B2 (de) Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung
DE2829668A1 (de) Kanaldatenpufferspeicher
DE2719295A1 (de) Programmsteuerung
DE2339636A1 (de) Programmsteuereinrichtung
DE2935906A1 (de) Mikrokomputer
DE1499206C3 (de) Rechenanlage
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
DE3043653A1 (de) Datenverarbeitungsanlage
DE2454613C2 (de) Kanaleinheit für die Steuerung der Datenübertragung auf einer Vielzahl von Kanälen zwischen den peripheren Einrichtungen und dem Hauptspeicher einer digitalen Datenverarbeitungsanlage

Legal Events

Date Code Title Description
EHJ Ceased/non-payment of the annual fee