DE2248296A1 - Programmsteuereinrichtung - Google Patents

Programmsteuereinrichtung

Info

Publication number
DE2248296A1
DE2248296A1 DE19722248296 DE2248296A DE2248296A1 DE 2248296 A1 DE2248296 A1 DE 2248296A1 DE 19722248296 DE19722248296 DE 19722248296 DE 2248296 A DE2248296 A DE 2248296A DE 2248296 A1 DE2248296 A1 DE 2248296A1
Authority
DE
Germany
Prior art keywords
instruction
execution
signal
during
cycle
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.)
Pending
Application number
DE19722248296
Other languages
English (en)
Inventor
Joseph C Briley
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.)
Lockheed Martin Corp
Original Assignee
Sanders Associates Inc
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 Sanders Associates Inc filed Critical Sanders Associates Inc
Publication of DE2248296A1 publication Critical patent/DE2248296A1/de
Pending 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3889Concurrent 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
    • 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)

Description

DIPL.-ING. KLAUS BEHN
DIPL.-PHYS. ROBERT MÜNZHUEIER
PATENTANWÄLTE
B MÜNCHEN 22 WIDENMAyERSTRASSE β TEL. (0811) 222530-295192
2. Oktober I972 A 254 72 Ml/ib
Firma SANDERS ASSOCIATES, INC., Daniel Webster Highway, South, Nashua, New Hampshire 0306O/USA
Programmsteuereinrichtung
Die Erfindung betrifft Datenprozesseinriehtungen und insbesondere Einrichtungen zur Aufnahme und zur Ausführung von Instruktionen in Digitalcomputern mit gespeicherten Programmen.
In Computern mit gespeicherten Programmen werden Instruktions- oder Befehlsworte sowohl dazu benutzt, Datenworte (Operanden) aufzunehmen oder zu adressieren, als. auch dazu, verschiedene Operationen, die mit derartigen Datenworten durchgeführt werden, zu steuern. Ein typisches Instruktionswort enthält eine Mehrzahl von Bits, von denen einige als Qperationf-Iode Field (QP Code) andere als Adressfield bekannt sind. Der OP Code bezeichnet eine bestimmte Operation, die der Computer durchzuführen hat, und das Adressfield steht für den Platz oder die Plä,t-
309514/0111
ze entweder Im Computerspeicher oder in den Computerregistern für die Datenworte, an welchen die speziellen Operationen durchzuführen sind. Das Durchführen einer bestimmten Tätigkeit mit Hilfe des Computers erfordert im allgemeinen eine bestimmte Anzahl derartiger Instruktionen, die in einer geordneten Folge, welche man als Programm bezeichnet, zueinander angeordnet sind. ■Das heißt also, ein Programm besteht aus einer geordneten Folge von Instruktionsworten, die in einem Computerspeicher gespeichert sind.
Bekannte Synchroncomputer arbeiten im allgemeinen mit einer zyklischen Basis, in welcher eine Instruktion während eines Aufnahmeabschnittes des Zyklus aufgenommen und ihr Inhalt dann während eines Ausführungsabschnittes des Zyklus durchgeführt wird. Die Instruktionsaufnahme wird mittels einer Programmsteuereinheit (PCU) durchgeführt, die ebenfalls den Instruktions OP Code ausliest und Ausführungs- oder Steuersignale an die Computerrechen- und Loglkeinheit(ALU) abgibt, die dann ihrerseits die speziellen Operationen durchführt.' Die p'CU enthält im allgemeinen einen Zähler oder einen Register, genannt Programmzähler, der eine Zahl enthält, die für den Adressen- oder Speicherplatz bezeichnend ist, von der die Instruktion genommen wurde. Der Programmzähler wird während jedes Zyklus auf den neuesten
309814/0958
Stand gebracht,, so daß er die Speicheradresse beinhaltet der nächsten Instruktion, die aufgenommen werden soll. In vielen Fällen bedeutet dieses Auf-den-neuesten-Stand-Bringen lediglich ein Portschalten um einen Schritt, wenn nämlich die Instruktionen der Programmfolge in den Speicheradressen aufeinander der Reihe nach folgen. Dies ist jedoch nicht immer der Fall, da Programme auch gelegentlich Anruf- oder Verzweigungs- oder Sprungoperationen enthalten, wobei dann der Programmzähler oder Adressenzeiger um mehr als eins verändert werden muß.
Bei einer Anrufoperation ist es nötig, zeitweilig die Hauptprogramminstruktionsfolge zu verlassen, um die gesamte Folge eines Nebenprogramms durchzuführen, worauf dann wieder auf die nächste Instruktionsadresse im Hauptprogramm zurückgekehrt wird. Eine oder mehrere Verbindungsinstruktionen werden benötigt, um in die Nebeninstruktionsfolge einzutreten und aus ihr zurückzukehren. Die Verbindungsinstruktion dient im wesentlichen dazu, (1) die Parameter einzusetzen, die während . der Nebenrechnung benötigt werden, und dies an Plätzen,- wo sie während der Durchführung dieses Nebenprogramms aufgefunden werden können, und (2) die Adresse der nächsten Hauptprogramminstruktion für die Rückkehr aus dem Nebenprogramm für dieses greifbar zu machen.
3098H/0958 ~ \~
Bei Verzweigungs- oder Sprungoperationen hängt die Auswahl der nächsten Instruktion vom Auftreten einer speziellen Bedingung ab. Im allgemeinen wird für die Festlegung der Verzweigungsauswahl eine oder werden mehrere Instruktionen benötigt, mit deren Hilfe dann die spezielle Bedingung geprüft wird.
Bei den Computern bekannter Ausführung erfolgt das Aufden-neuesten-Stand-Bringen des Programmzählers oder Adressenzeigers am Ende eines jeden DurchfUhrungsabschnittes eines Zyklus. Dadurch werden verhältnismäßig lange Zykluszeiten erreicht, denn die nächste Instruktion kann noch nicht aufgenommen werden, scu-lange die augenblickliche Instruktion durchgeführt wird.
Aufgabe der Erfindung ist es deshalb, mit Hilfe einer verbesserten Programmsteuereinheit eine zeitliche Überlappung zu erreichen, wobei das Durchführen der augenblicklichen Instruktion und das Aufnehmen der nächsten innerhalb desselben Instruktionszyklus vorgenommen wird.
Weiter wird mit der Erfindung angestrebt, eine Programmsteuereinheit zu schaffen, bei der die Durchführung einer ersten Instruktion, das Adressieren einer zweiten Instruktion und das
3098H/0958
Rechnen einer dritten Instruktionsadresse parallel zueinander während eines Instruktionszyklus durchgeführt werden können.
Schließlich wird noch angestrebt, mit der erfindungsgemäßen Programmsteuereinheit die Möglichkeit zu schaffen, die Durchführung einer augenblicklichen Instruktion zu unterbinden. Kurz gesagt enthält ein Computer gemäß der Erfindung einen adressierbaren Speicher, in dem eine Vielzahl von Instruktionen gespeichert ist. Eine Instruktionszyklus-Zeitsteuerung erzeugt ein Timingsingal zu Beginn eines jeden Instruktionszyklus. Währ rend jedes Instruktionszyklus werden erste und zweite QueLlen für die nächste Instruktionsädresse geschaffen. Ein Instruktionsregister wird, wenn es vom Speicher auf das Timingsignal hin zu Beginn eines jeden Instruktionszyklus adressiert ist, mit jeder Instruktion gefüllt. Auf das Speichern jeder Instruktion hin dem .Instruktionsregister erzeugt ein Dekoder eine Gruppe von DurchfUhrungssignalen, die für die durch die Instruktion festgelegte Operation maßgebend sind. Instruktionsdurchführungsmittel reagieren auf die Gruppen von Durchführungssignalen und führen die Instruktionen aus. Eine weitere Einrichtung spricht auf jede im Instruktionsregister gespeicherte Instruktion an und verbindet eine der.nächsten Adressenauswahlquellen mit dem Speicher bereits während derjenigen Zeitspanne, während der die Ausführungsmittel dieselbe Instruktion durchführen.
30 9 814/0958 _6_
Bei einem bevorzugten AusfUhrungsbeispiel enthalten einige Instruktionen ein Testfeld. Die weitere Einrichtung enthält einen vom Timingsignal abhängigen Zustandsspelcher, der den sich aus der Durchführung einer ersten Instruktion ergebenden Zustand speichert, welcher während eines ersten Instruktionszyklus erreicht wurde. Die weitere Einrichtung enthält darüberhinaus erste Prüfmittel, die auf den Zustandsspeicher ansprechen wie auch auf das Testfeld einer zweiten nachfolgenden Instruktion, wodurch ausgewählt eine der nächsten Adressauswahlquellen mit dem Speicher verbunden wird. Zweite Prüfmittel reagieren auf den Zustandsspeicher und das Testfeld der zweiten Instruktion, wodurch dann wahlweise die Durchführung der zweiten Instruktion verhindert wird.
Die Figuren der Zeichnung zeigen im einzelnen:
Fig. 1 ein Blockdiagramm mit Signalflußpfad eines Computers, bei welchem die erfindungsgemäße Programmsteuereinheit eingesetzt werden kann;
Fig. 2 eine bildliche Darstellung einer Instruktionsform, die bei dem Computer gemäß Pig. I eingesetzt wirdj
Fig. 3 ein Zeitablaufdiagramm, das das Überlappen der Ausführung einer augenblicklichen Instruktion und der Aufnahme der nächstfolgenden Instruktion innerhalb eines Instruktionszyklus verdeutlicht;
_ γ _ 309814/0958
Pig. 4 die gegenseitige Anordnung der Schaltungsdarstellungen der Fig. 4A und 4Bj
Fig.4A zum Teil als Bloekdiagramme zum Teil als und 4B logische Schaltschemata dargestellte Schaltungen der Programmsteuereinheit nach der Erfindung;
Fig. 5 ein logisches Schaltschema eines typischen Dekodernetzwerkes, das in der erfindungsgemäßen Programmsteuereinheit in der Schaltung der Fig. 4a eingesetzt wirdj und
Fig. 6 ein logisches Schaltschema eines in der
grammsteuereinheit nach der Erfindung verwendbaren Timinggenerators.
Die erfindungsgemäße Programmsteuereinheit kann bei jedem Computer, in dem Programme gespeichert werden, angewendet werden, wenn dieser die Möglichkeit besitzt, Programmsprünge, Verzweigungen oder Programmabrufe und dergleichen,durchzuführen. Der Vollständigkeit der Beschreibung wegen jedoch soll die Programmsteuereinheit nach der Erfindung im Zusammenhang' mit einem programmspeichernden Computer besehrieben werden, der die ganz allgemein wiedergegebene Ausbildung gemäß Fig. 1 hat. Der in Fig. 1 dargestellte Computer besitzt eine Programmsteuereinheit (PCU), eine Arithmetik- oder Logikeinheit (ALU) 11 und einen oder mehrere Speicher, die als Programmspeicher 12 bezeichnet sind, den Programm/Datenspeicher 1/5 und den Datenspeicher 14. Die ALU 11 ist von sogenannter Sammeileitungstype und besitzt mehrere Register (in Fig. 1 nicht dargestellt), die so angeordnet fiind, daß sie ihren Inhalt gesteuert an beide Synchronsam-
309814/0958
melleitungen eines Paares abgeben, die Α-Sammelleitung und die B-Sammelleitung, die zusammen die Eingänge zum Addierwerk des Computers bilden. Die A- und B-Sammelleitung sind aus der ALU 11 so herausgeführt, daß sie für einen Anschluß einer beliebigen Funktionseinheit 15 zugänglich sind. Die beliebigen Funktionseinheiten 15 können z.B. zusätzliche Register, eine Schnellschiebeeinheit, eine Hochgeschwlndigkeitsmodifizierschaltung, eine Emulatoreinheit oder ein sonstiges geeignetes Gerät sein. Wie in Fig. 1 durch Teile angedeutet, wirkt die Α-Sammelleitung in einer Richtung von der ALU weg, so daß sie den Inhalt jedes in der ALU enthaltenen Registers auf eine außerhalb liegende Vorrichtung oder Funktionseinheit übertragen kann, wogegen die B-Sammelleitung in einer Richtung zum Übertragen von einer Funktionseinheit in jedes der ALU-Register geeignet ist.
Eingang und Ausgabe von Daten zu und von der ALU 11 werden mit Hilfe einer asynchronen I/O-Sammelleitung durchgeführt, die in beiden Richtungen benutzbar sein kann, wie dies in Fig. 1 gezeigt ist, oder auch aus zwei Sammelleitungen in jeweils einer Richtung bestehen kann, eine für die Eingabe von Daten und die andere für die Ausgabe in die bzw. von der ALU. Mit der I/O-Sammelleitung sind I/O-Vorrichtungen 16 verbunden
309814/0958
(beispielsweise ein Tastenfeld, ein Drucker, Wiedergabeanschlußklemmen, Kartenlocher oder -leser und dergleichen) sowie der Programm/Datenspeicher 13 und der Datenspeicher 14. Alle diese Einrichtungen 13* 14 und 16 sind somit selbstständig adressierbare Einrichtungen. Wenn beispielsweise die ALU 11 einen Daten-operanden auf den Speicher 14 benötigt, wird in ihr die Adresse des Datenoperanden gebildet und über die I/Q-Sammelleitung dem Datenspeicher 14 zugeleitet. Der Datenspeicher 14 schickt daraufhin den angewählten Datenoperanden an die ALU über die I/O-Sammelleitung während des nachfolgenden Instruktionszyklus. '
Die PCU 10 ist mit den Speichern 12 und 13 über eine Instruktionsadressenleitung IA und eine Instruktionssammelleitung I verbunden. Die I/A-Sammel,leitung wird dazu benutzt, Programminstruktionsadressen von der PCU zu den Speichern 12 und 13 zu senden, die I-Sammelleitung dazu, adressierte Programminstruktionen von den Speichern 12 und 13 der PCU zuzuführen. Wie die I/O-Sammelleitung werden auch die I-und die IA-Sammelleitung in asynchroner Weise betätigt. Jede der Sammelleitungen enthält einige Steuerleitungen zu-sätzlich zu den Leitun- ■ gen für jedes Bit in einem Datenwort.Die PCU 10 z.B. muJ3 mit jeder Instruktionsadresse ein instruktionsanforderungssignal
-IQ-
309814/0958
aussenden. Die angewählte Instruktion kann dann nicht ausgenommen werden, bis der angewählte Speicher ein Instruktionsantwortsignal aussendet.
Der asynchrone Zugriff zu den Speichern 12; 13 und 14 erlaubt die Verwendung einer Kombination von Speichergeschwin- -digkeiten und Größen, so daß in dem Computer'system das Verhältnis der Kosten zur Leistung verbessert werden kann. Z.B. kann ein kleiner aber schneller nur auslesender Speicher mit einem großen aber langsamen Lese- und Schreibspeicher zusammen verwendet werden. Es sei bemerkt, daß der Programm-Datenspeicher 13 ein Speicher mit zwei Zutritten ist, von denen ein Zutritt von der ALU gebildeten Adressen für Datenoperanden dient, während der andere Zutritt von der PCU geformten Instruktionsadressen für Programminstruktionen dient.
Die PCU 10 interpretiert jede Instruktion und erzeugt Durchführungs- oder Steuersignale, die sie über eine Steuersammelleitung an die ALU 11 abgibt. Di« ALU 11 reagiert auf die Steuersignale dadurch, daß die die durch die Instruktionen bezeichneten Operationen an den Inhalten, der durch die Instruktionen bezeichneten ALU-Registern durchführt. In der Pig. I sind außerdem eine Ε-Sammelleitung und eine T-Sammelleitung gezeigt. Die E-Sammelleitung wird von der PCU dazu verwendet, ei-
309814/0958
- Ii -
ne Instruktionsadresse durch Speichern in einem der ALU-Register zu bewahren. Andererseits wird die T-Sammelleitung dazu verwendet, eines der ALU-Register als Quelle für die nächste Adresseninstruktion auszuwählen.
INSTRUKTIONSGRUPPE
Eine allgemeine Instruktion ist in Fig. 2 als Beispiel mit einer 16-Bit-Instruktionslänge dargestellt. Die Bitpositionen 11 bis 15 der Instruktion stellen den Operationscode (OP-Code) dar. Bei der allgemeinen Darstellung sind die Bitpositionen 0 bis 10 freigelassen. Diese Bitpositionen können für eine Anzahl unterschiedlicher Zwecke benutzt werden, so z.B. als ALU-Registeradressen, für Steuer- und äussere Vorrichtungen, Veränderung des Inhalts der angewählten ALU-Register oder der PCU-Register und, wichtig in Zusammenhang mit der Erfindung, Testcodes, die für logische Testope-· rationen verwendet werden können.
Für eine Erläuterung der Erfindung sind zwei· Arten von Instruktionen, die Testcodes benutzen, in Fig. 2 gezeigt. In der Konditionalbinärinstrukti.on stellt der Α-Code in den Bitpositionen 0 bis 2 das Register dar, dessen Inhalt in der Wei-
309814/09 5'8
se zu bearbeiten ist, wie sie durch den OP-Code angegeben ist. Die Ergebnisse der durchgeführten Instruktion würden dann in dem durch das D-Feld in den Bitpositionen 3 bis 5 angegebenen Register untergebracht werden. In der Konditionalunärinstruktion stellt der Α-Code das Register dar, dessen Inhalt einer Behandlung in der Weise unterworfen werden soll, wie sie durch den OP-Code angegeben ist. Das Ergebnis der durchgeführten Instruktion bleibt dann jedoch in dem durch den Α-Code bezeichneten Register. Das W-Bit in Position 6 dieser beiden Instruktionen gibt an, ob die Operation an einem Datenwort (16 Bits bei dem dargestellten Ausführungsbeispiel) oder einem Byte (8 Bits) vorgenommen werden soll.
Das Testfeld der Bitposition 7 bis 10 wird dazu verwendet, logische Testoperationen an den Ergebnissen vorher ausgeführter Instruktionen durchzuführen. Eine dieser Testoperationen wählt eine Condition Latch, z.B. eine Linkstatuslatch, und prüft deren Ausgang. Ist das Ergebnis richtig, dann wird die augenblickliche Instruktion ausgeführt, und ein richtiger Pfad ist für die nächstfolgende Instruktionsadr.esse gewählt . Ist das Ergebnis dagegen nicht richtig, dann wird die augenblickliche Instruktion nicht durchgeführt, und ein falscher Pfad ist für die nächste Instruktionsadressenauswahl genommen
309814/0958
worden. Es sei bemerkt, daß die möglichen unären und möglichen binären Instruktionen hier nur stellvertretend für mehrere verschiedenen Typen von Instruktionen aufgezeigt sind,' die in dem Testfeld enthalten sein können. Die Instruktionsgruppe kann beispielsweise auch Conditional Branch und/oder Indexing Instruktionen enthalten, bei denen die Durchführung von Verzweigungs- oder Indexing-Operationen von den Ergebnissen eines logischen Testes abhängig gemacht werden. Wie nachstehend noch deutlich wird, ist das Vorhandensein des Testcodes insbesondere von Vorteil bei der Überprüfung von Programmschleifenoperationen.
Die Instruktionsgruppe enthält außerdem weitere Instruktionen zur Bildung von I/O-Adressen für die I/O-Sammelleitung und zur Steuerung der Betätigung der Punktionalvorrichtungen 15 über die synchronen A-B-Sammelleitungen.Diese und andere Instruktionen werden hier nicht beschrieben, da sie für'das Verständnis der Erfindung nicht wichtig sind.
ÜBERLAPPTE AUFNAHME,DURCHFÜHRUNG UND ADRESSENBERECHNUNG
Gemäß der Erfindung führt die PCU 10 die Operationen für die nächste Instruktionsaufnähme einschließlich Programmübertragungen (Sprung (Jump),Verzweigung (Branch), Anruf (Call)
30 981A/0958
usw) durch sowie parallel dazu die Durchführung der augenblicklichen Instruktion. Mit anderen Worten, die Aufnahme der nächsten Instruktion und die Durchführung der laufenden Instruktion werden in sich überlappenden Zeitspannen und nicht in aufeinanderfolgenden.Perioden vorgenommen. Zusätzlich dazu ist aber noch die Durchführung der laufenden Instruktion abhängig von dem Ergebnis einer vorhergehenden Instruktion.
,1
Das Zeitdiagramm der Fig. 3 zeigt die zeitliche Überlappung bei der Aufnahme für die nächstfolgende Instruktion und der Durchführung der augenblicklichen Instruktion in einem einzigen Instruktionszyklus. Der Bequemlichkeit halber und wegen des besseren Verständnisses ist der Instruktionszyklus beliebig in 7 Zeitintervalle zwischen den Zeiten tQ und t„ eingeteilt worden. Der Zeitsteuerkreis des Computers erzeugt ein Paar von Zöitimpulssignalen CPl und CP2 in unmittelbar aufeinanderfolgenden Zeitintervallen zu Beginn eines jeden Instruktionszyklus von t„ bis t^ und von t- bis tp. Es ist noch zu bemerken, daß wegen der asynchronen Natur der I/A-Sammelleitung und der I-Sammelleitung eine Wartespanne oder Verzögerungszeit zwischen dem Ende eines Instruktionszyklus und der Zeitimpulssignalerzeugung des nächsten Zyklus sein kann.
- 15 309814/0958
Der erste der beiden Zeitimpulse CPl dient dazu, die ALU-Register mit dem Ergebnis der zuvor durchgeführten Instruktion zu füllen, welche Instruktion sich noch im Instruktionsregister (IR) innerhalb dieser Zeitspanne von t~ bis t. befindet. Hier ist zu bemerken, daß das Laden des ALU-Registers mit dem Ergebnis der Durchführung der vorhergehenden Instruktion vom Wert eines Auslösesignals(XEA) abhängt. Wenn dieses XEA-Signal den Wert· 1 hat, wird das ALU-Register geladen. Hat dagegen das XEA-Signal den Wert Null, dann wird die das Durchführungsergebnis der vorherigen Instruktion nicht übertragen. Mit anderen Worten, das Durchführungsergebnis der vorherigen Instruktion wird dann beseitigt. Das XEA-Signal wird seinem Wert 'nach durch den logischen Test bestimmt, der während des, Zeitintervalls tg bis t, innerhalb eines Instruktionszyklus durchgeführt wird. Der Wert des XEA-Signals wird also während des einen Instruktionszyklus bestimmt, jedoch erst während des darauffolgenden nächsten. Instruktionszyklus verwendet.
Das CP2-Zeitsteuersignal wird während der Zeitspanne t bis tp dazu verwendet, das Instruktionsregister (IR.) mit der laufenden Instruktion und das Instruktionsadressenregister (IAR) mit dem Wert der entweder um eins erhöhten oder mit einem anderen Wert modifizierten laufenden Instruktions-
- 16 -
309814/09S8
adresse gefüllt. Wie bereits vorstehend erwähnt, findet die Testfeiddekodierung während der Zeit tp bis t, statt. Überlappt mit diesem Zeitintervall findet die Dekodierungsoperation für die ALU-Durchführungssignale und die ALU-Multiplexor (MUX)-Register-Auswahlsignale statt. Im Zeitpunkt tu haben diese Durchführungssignale einen gleichförmigen Zustand angenommen, so daß das ALU-Register bzw. die Register gefüllt und ausgewählt sind und die Datensignale zur Ausbeutung durch den ALU-Addierer ohne zusätzliche Timingimpulse auf der A-Sammelleitung verfügbar sind. Die Addiererausbreitung findet also, wie dies in Fig. J> gezeigt ist, zwischen der Zeit t^ und der Zeit t^ am Ende des Instruktionszyklus statt.
In der Zeit t bis t^, in der auch die ALU-Dekodierungsoperation stattfindet, wird außerdem die näohste Instruktionsadressenberechnung und Quellenauswahl vorgenommen. Das Testfeld der laufenden Instruktion wird zwischen t« und t-. dekodiert und wird dazu verwendet, entweder die IAR oder eine Branch (Programmtransfer) -Adresse, die im ALU-Register gespeichert ist (hierin bezeichnet als R7) auszuwählen. Zur Zeit t^ ist diese Auswahl beendet, so daß die nächste Instruktionsadresse auf die I/ASammelleitung gegeben wird. Polglich hat die nächste Instruk-
- 17 -
309814/0958
tion Zutritt während der Zeitspanne t^, bis t„, sich bis über das erste Zeitintervall (tß bis t.) des nächsten Instruktionszyklus erstreckend. Überlappt mit diesem Zutritt der nächsten Speicherinstruktion und der Durchführung der . augenblicklichen Instruktion findet das Portsehalten der nächsten Instruktionsadresse um eins statt.
Wenngleich aus Gründen der Darstellung der CPl-Zeitsteuerimpuls während des ersten Zeitintervalls eines Instruktionszyklus gezeigt ist, kann er auch wäh'rend des letzten Zeitintervalls des Instruktionszyklus auftreten. Mit anderen · Worten, die ALU-Register könnten genaust gut mit dem Ergebnis der durchgeführten Instruktion während des letzten Zeitintervalls eines Instruktionszyklus geladen werden, wenn nur die Zykluszeit lang genug ist, daß die Durchführung der Instruktion beendet werden kann.
Es läßt sich so sehen, daß die Anwendung des Testcodes ein Überlappen der Durchführung der augenblicklichen Instruktion mit der Aufnahme der nächsten Instruktion in einem einzigen Instruktionszyklus erlaubt. Die Art und Weise, wie dies ,erreicht wird, wird aus der nun folgenden Beschreibung der PCU und ALU deutlich.
3098U/0958 . .
Es werden jetzt die Fig. 4A und 4B betrachtet, welche nach dem Schemabild der Fig. 4 zusammenzufügen sind. Die PCU und ALU sind darin stärker ins einzelne.gehend mit einer Anzahl von Blocks, die bekannte Schaltkreisanordnungen enthalten, dargestellt, die ihrerseits durch elektrische Zweipegelsignale in Wirkung gesetzt werden, die ihnen zugeführt werden. Ist das Signal auf dem einen Pegel (angenommen dem hohen Pegel), so wird dadurch der Binärwert "1" wiedergegeben, auf dem anderen Pegel hingegen stellt sich eine Wiedergabe des Binärwertes "θ" dar. Um die Diskussion zu vereinfachen,wird, statt von einem elektrischen Signal zu sprechen, das einem Block oder einer logischen Stufe zugeführt wird, häufig davon gesprochen, daß dem Block oder der Stufe der Wert "1" oder "0M zugeführt wird.
Die in der Zeichnung dargestellten Dekoder, Multiplexer, Register, Addierer, Latchs, Flip-Flop und logischen Verknüpfungsglieder können jede bekannte Form haben. Sie sind allgemein im Handel erhältlich. Weiterhin ist zur leichteren Darstellung des Signalwegverlaufs des öfteren ein Koinzidenzgatter am Eingang eines Registers dargestellt, obgleich derartige Gatternetzwerke normalerweise in den Registerblock einbezogen sind. Koinzidenzgatter werden in der Zeichnung durch übliche UND-GatterSymbole mit einem Punkt darin dargestellt, während ODER-Gatter durch das übliche ODER-Gattersymbol mit einem Plus-
309814/0968 " 1^ -
zeichen darin bezeichnet sind. Ein kleiner Kreis am Ausgang dieser Verknüpfungsglieder deutet auf eine Signalinversitpn hin, so daß die UND- oder ODER-Gatter zu NAND- bzw. NOR-Gattern werden. Wenn ein Signalweg mehr als eine einzige Verbindungsleitung enthält, ist ein Querstrich'mit einer daran befindlichen Zahl vorgesehen, welche ihrerseits die Anzahl der Verbindungsleitungen bezeichnet. Wenn dann nur einzelne Verknüpfungsglieder in der Zeichnung dargestellt sind, liegen in Wirklichkeit diese Verknüpfungsglieder in solcher Anzahl in der Schaltung vor wie Signalverbindungsleitungen vorhanden sind. Das Gatternetzwerk 2OB in Pig. ^A z.B. enthält 16 voneinander getrennte UND-Gatter, je eines für die 16 Verbindungen in der I-Sammelleitung, und jedes dieser 16 UND-Gatter wird durch den CP2-Impuls zeitgesteuert.
in
Als letztes noch, bevor/die genaue Beschreibung eingestiegen wird, sei bemerkt, daß die. Signalleitungen'in einigen Fällen unterbrochen und mit einer Beschriftung an dieser Unterbrechungsstelle versehen sind, was den Sinn hat, eine unübersichtliche Verwirrung von Verbindungsleitungen zu vermeiden. Wo nur ein Teil der Leitungen oder einer Sammelleitung oder eines Registers als Eingang für einen Block verwendet wird, sind diese ebenfalls mit der Bezeichnung ihrer Herkunft und der
- 20 30 98 U/09 5 8
zugehörigen Bitposition beschriftet. Beispielsweise sind Ausgänge des Instruktionsregisters 20A mit IO bis 115 beschriftet, um deren 16 Bitpositionen anzugeben.
1I
Es wurde bereits vorher gesagt, daß zu Beginn eines jeden Instruktionszyklus der PCU-Zeitsteuergenerator 19 einen Zeits teuer impuls CPl abgibt. Der CPl-Impuls wird dazu verwendet, ein ausgewähltes ALU-Register mit den Ergebnissen einer durchgeführten Instruktion zu laden. Zu dem Zweck wird der CPl-Impuls in einem UND-Gatter 23 mit dem XEA-Signal kombiniert, woraus ein Signal CPl XEA erzeugt wird. Das CPl XEA-Signal wird dazu benutzt, das InstruktiorHäurchführungsergebnis in das ALU-Register einzugeben, was mit dem A- oder D-Feld der Instruktion bezeichnet ist, die in der IR20A während der Zeitspanne tQ bis t, eines Instruktionszyklus gespeichert ist. Wie bereits früher gesagt, ist die gerade durchgeführte Instruktion in den IR zu dieser Zeit gespeichert.
Der CPl-Impuls wird außerdem dazu benutzt, den Cf2-Impuls zu erzeugen, der während der nachfolgenden Zeitspanne t. bis t2 auftritt. Dazu wird der CPl-Impuls gemäß Fig. 4A auf das Verzögerungsglied 49 gegeben, das ihn um eine Zeitspanne verzögert, woraus der CP2-Impuls entsteht. Es versteht sich, daß der
- Pl -
309814/09 5 8
CP2-Impuls auch vom Zeitsteuergenerator 19 erzeugt werden könnte.
Der CP2-Impuls dient dazu, zwei Register zu laden. Zunächst wirkt der CP2-Impuls auf das Gatternetzwerk 20b, so daß die augenblickliche Instruktion in das Instruktionsregister (IR) 20a freigegeben wird, wobei die augenblickliche Instruktion auf der I-Sammelleitung durch einen der Speicher 12 und 13 (Fig. 1) ansteht. Weiterhin markiert der CP2-Impuls das Gatternetzwerk 22a, wodurch in das Instruktionsadressenregister IAR 22b die Adresse der um eins vergrößerten laufenden Instruktion eingegeben wird. Im weiteren Verlauf der Beschreibung wird noch deutlich, daß die laufenden Instruktionsadresse während des vorhergehenden Instruktionszyklus durch ein IAR-Modifiziernetzwerk 21b weitergeschaltet wurde, welches die laufende Adresseninstruktion von der ΙΑ-Sammelleitung zu dieser Zeit erhalten hatte. Das IAR-Modifiziernetzwerk 21b kann ein geeignetes Addiernetzwerk sein, das jeweils eins zu der von der IA-Sammolleitung empfangenen Adresse hinzufügt, wenn sein Eingangsgatternetzwerk 21a'nicht gesperrt ist. Das Sperren des Gatternetzwerks 21a und die Modifizieroperation des IAR-Modifiziernetzwerks 21d wird später noch erläutert.
- 22 3098U/0958
Wenn das Instruktionsregister 20a geladen 1st, dekodiert ein ALU-Dekoder 29 die Instruktion in der IR und erzeugt einen Satz von ALU-Instruktionssignalen zu der ALU (Fig. 4b). Diese ALU-Durchführungssignale steuern im wesentlichen den Operationsablauf der ALU und sind im wesentlichen für das Verständnis der Erfindung unerheblich. Als Beispiel ist eine Gruppe von ALU-Durchführungssignalen in den Pig. 4a und 4b dargestellt, nämlich die RD-Signale. Diese Signale erscheinen auf 9 Leitern und wählen ein oder mehrere der ALU-Register RO - R7 oder des I/O-Adressenregisters (I/O AR) aus, die dann mit den Ergebnissen der Durchführung der vorhergehenden Instruktion aus der ALU D-rSammelleitung geladen werden. Wie an früherer Stelle gesagt, ist jedoch dieses Laden der ALU-Register mit dem Ergebnis der Durchführung der vorhergehenden Instruktion davon abhängig, was der durch die laufende Instruktion durchgeführte logische Test erbringt, der das XEA-Signal zur Freigabe der Durchführung erzeugt. Darauf werden die RD-Signale über eine UND-Schaltung in einem Gatternetzwerk 30 mit dem CPl XEA-Signal zusammengefügt. Die neuen Ausgangsleitungen des Gatternetzwerks 30 werden als Freischaltleitungen mit unterschiedlicher ladung in Registern RO bis R7 und I/OAR zugefügt.
- 23 309814/0958
Zusätzlich zu den Registern enthält die ALU,A- und B-Multiplexer A-MUX 3I und B-MUX 32, einen Addierer 33, einen R6 MUX 34, einen RJ MUX 35 und einen I/O MUX 56, Der A-MUX ist so angeordnet, daß er sämtliche ALU-Register RO bis R7 mit A-Sammelleitung unter Steuerung des A-Peldes der augenblicklichen Instruktion,, das durch den.ALU-Dekoder dekodiert ist, verbindet. Der B-MUX 32 ist so eingesetzt, daß 'er entweder das RO-Register (das als ALU-Akkumulator dient),oder den Inhalt einer S-Sammelschiene unter dem steuernden Einfluß des Instruktions-OP-Code und W Bit ΐβ mit der B-Sammelleitung verbindet. Die S-Sammelleitung wird eingesetzt,, um eine zirkuläre Verschiebung nach links, um eine Anzahl von Bits hervorzurufen, welche durch die Verbindung mit der A-Sammelleitung bestimmt wird. Um beispielsweise eine zirkuläre Linksverschiebung um 8· Stellen zu erreichen, werden die niedrigstwertigen 8 Bits der A-Sammelleitung mit den höchstwertigen 8 Bits der.S-Sammelleitung verbunden, und die 8 höchstwertigen Bits der A- Sammelleitung werden mit den 8 niedrigstwertigen Bits der S-Sammelleitung verbunden.
Der Addierer 33 erhält Eingangswerte von der A-Sammelleitung und der B-Sammelleitung und führt damit entweder eine Addition oder eine logische Operation oder (wenn nur Datenübertragung vorgenommen werden soll) weder das eine noch das an-
3098 14/09 5 8
dere durch, je nach dem was der vom ALÜ-Dekoder 29 dekodierte OP-Code befiehlt. Die Ausschaltung der ALU-Durchführungssignale auf die verschiedenen Blocks der Fig. 4B ist weggelassen worden, um der Zeichnung nicht die Übersichtlichkeit zu nehmen. Der Ausgang des Addierers 53 ist die D-Sammelleitung, die die Aufgabe hat, die Werte in ein oder mehrere der ALU-Register RO bis R? und I/O AR zu Beginn eines jeden Instruktionszyklus einzuspeisen. Die Addiererdurchführung C wird als Eingang zum Linklatch 24a benutzt.
Der R6 MUX }4 stellt ein Mittel dar, durch das Register R6 entweder von der D-Sammelleitung oder von der I/O-Sammelleitung gespeist werden kann. Zu dem Zweck ist dargestellt daß ein Laderegister R6 (LR6)- Signal dem R6 MUX 54 zugeführt wird. Das LR6-Signal kann von einer I/O-Instruktion (nicht dargestellt) in ähnlicher Weise wie bei dem LR7-Signal nach der Darstellung der Fig. 5 abgeleitet werden.
Neben seiner Verwendung als Eingangsregister für den Computer wird das R6-Register auch dazu benutzt, als Ausgangsregister für die I/O-Sammelleitung zu dienen. Dazu 1st der I/O MUX 56 so angeordnet, daß er entweder das Register R6 oder das Register I/O AR mit der l/0-Sammelleitung verbindet. Das I/O AR-Register wird benutzt, eine Adresse einer I/O-Vorrichtung zu
309814/0958
bilden (z.B. eine Operantenadresse entweder im Speicher IJ
oder im Speicher 14 der Fig. 1).
' Der R7 MUX 35 ermöglicht, daß das R7-Register entweder von der D-Sammelleitung oder von der Ε-Sammelleitung, die die Ausgänge des IAR in Pig. 4A enthält, geladen wird. Dazu wird der Kf MUX vom LR7-Signal gesteuert, um den Inhalt der D-Sammelschiene in R7 einzugeben, wenn das Signal den Wert 0 hat, und den Inhalt der E-Sammelschiene in R7 einzugeben, wenn das Signal den Wert 1 hat. ■ '
Mit den gemäß Fig. 4B gezeigten Aufbau der ALU läßt -sich leicht erkennen, daß die Datenoperanten sich durch den A-MUX, B-MUX und Addierer 33 fortpflanzen, sobald die laufende Instruktion durch den ALU-Dekoder 29 (Fig. 4B) dekodiert ist. Fig. 3 zeigt, daß die ALU-Fortpflanzung in der Zeitspanne zwischen t^ und ty stattfindet. Fig. 3 zeigt ebenfalls, daß diese Zeitspanne das Auswählen und Adressieren der nächsten Instruktionsadresse durch die PGUlO überlappt.
Die .nächste Adressenauswahl und .die Erzeugung des DurchfUhrungsfreischalt-XEA-Signals und des CP XEA-Signals ist eine Funktion des logischen Tests, der durch die laufende Instruktion
309814/0958
vorgenommen wird. Der logische Test, der das XEA-Signal erzeugt, wird mit Hilfe eines True- oder False-Multiplexers (T oder P MUX) 37 unter Steuerung der drei höchstwertigen Bits 18 bis 110 vorgenommen, welche dem Testcode der laufenden Instruktion"entnommen werden. Die Eingänge zum MUX 37 sind die Conditionlatchausgänge Q-, Q™ und Q1 und ein weiterer, unabhängiger Eingang (für unabhängige Programmübertragungen), der durch die Quelle für sämtliche O-Werte 38 wiedergegeben ist. Es sei vermerkt, daß die Quelle für sämtliche O-Werte 38 (O's) einfach eine Verbindung zum Massepotential in den Systemen sein kann, in welchen der O-Signalpegel tatsächlich O Volt ist. Der Ausgang des T- oder P-MUX 37 folgt dann dem ausgewählten Eingang und ist entweder True (Freigabe) oder False (Sperrung). Wie bereits früher gesagt, ist, wenn das XEA-Signal während -des laufenden Instruktionszyklus durch den logischen Test False ist, kein CPl XEA-Signal während des nächstfolgenden Instruktionszyklüs vorhanden. Dadurch wird als wesentlichste Auswirkung die Durchführung der laufenden Instruktion verhindert, indem deren Ergebnis nicht in das ALU-Register zu Beginn des nächstfolgenden Instruktionszyklus eingegeben werden kann.
Dieser T oder F MUX-Ausgang kann in geeigneter Weise das XEA-Signal in einigen Systemen bilden. Es ist jedoch so
309814/0958 _ 27 _
dargestellt, daß es durch ein UND-Gatter 39 weiter behandelt wird, so daß es in den Fällen, wo es wünschenswert erscheint, die Erzeugung des XEA-Signals verhindern kann. Es kann z.B. wünschenswert sein, das XEA-Signal zu unterbinden in Abhängigkeit von bestimmten Arten von Instruktionen, die in der Instruktionsgruppe enthalten sind. Beispielsweise ist der Erzeugung eines Verhinderungssignals in Zusammenhang mit Fig. 4A für eine Branchinstruktion bereits an früherer Stelle angesprochen jedoch nicht im einzelnen dargestellt worden. Ein typisches relatives Branchinstruktionsformat könnte einen OP-Code und einen Testcode und eine weitere Zahl von Bitpositionen bis 16 enthalten, welche die Zahl bedeuten, durch die die laufende Instruktion modifiziert werden muß, so daß sie auf die nächste, zu adressierende Instruktion hinweist. Das geht im wesentlichen so vor sich, daß die Branchinstruktion durch einen Dekoder 40 in Abhängigkeit von den Bits 17 bis 115 der laufenden Instruktion aufgespürt wird. Nach Aufspüren der Branchin- -struktion gibt der Dekoder 40 dann ein Branchsignäl (BR) ab, das durch einen Inverter 41 invertiert wird in das Komplementärsignal BR, welches als Sperrsignal für das XEA UND-Gatter 39 verwendet wird. Dieses BR-Signal wird als True bewertet, wenn die laufenden Instruktion keine Branchinstruktion ist, so daß da-
.- 28 30 9814/0958
durch das UND-Gatter j59 freigeschaltet wird. Wenn andererseits eine Branchinstruktion vorhanden ist, wird das SW-Signal als False gewertet und das UND-Gatter 39 davor bewahrt, ein True XEA-Signal zu erzeugen.
Um das Beispiel einer Branchinstruktion noch zu vervollständigen, ist ^eigt, daß das BR-Signal außerdem ein Preischaltgatternetzwerk 21a am Eingang des IAR-Modlfizieres 21b steuert. Der IAR-Modifizierer 21b erhält normalerweise die laufende Adresseninstruktion von der ΙΑ-Sammelleitung und schaltet sie um eins weiter. Im Falle einer Branchinstruktion ist das Gatterne-tzwerk 21a in der Lage, die Bits 10 bis 16 der Branchinstruktion auf die sechs höchstwertigen Bitpositionen des IAR-Modifizieres 21b durchzulassen. Der Ausgang des IAR-Modifizieres 21b würde dann die Adresse der Instruktion darstellen, um die bei der Branchinstruktion nachgesucht wurde. Es sei vermerkt, daß die voranstehende Besprechung der Branchinstruktion nur beispielhaft ist und daß andere Typen von Instruktionen ebenfalls die Erzeugung des XEA-Signals unterbinden können.
Wie früher schon gesagt, ist die nächste Adressenquellenanwahl ebenfalls eine Funktion eines logischen Tests, der auf Anruf durch die laufende Instruktion durchgeführt wird.
309814/0958 - 29 -
Der IA MUX-Dekoder 26 spricht auf den Testcode der laufenden Instruktion dadurch an, daß er entweder eine der Conditionlätches 24a bis 24c auswählt, wenn nämlich eine bedingte Programmübertragung vorliegt, oder eine permanente Quelle von Einswerten 27, wenn eine unbedingte Programmübertragung durchgeführt werden soll. Der Ausgang des .Dekoders 26 wird auf einen Instruktionsadressenmultiplexer (IA-MUX) 25 gegeben, wodurch die nächste Instruktionsadresse entsprechend dem True- und SLsetest angewählt wird. Eine beispielhafte Gruppe von Testcodebits für typische Programmübertragungeh ist in der nachstehenden Testfeldübersicht zur Auswahl der Conditionlatehes und der Permanentquellen der Einwerte aufgeführt.
TEST FELD ÜBERSICHT
110 19 18 17 Bedingung True Pfad False Pfad
0010
0011
Link
Link
Schritt
Sprung
Sprung
Schritt
0110
Olli
Nicht Null
Nicht Null.
Schritt
Sprung
Sprung ·
Schritt
1000 bedingungslos Schritt
1010
1011
Index Nicht Null
Index Nicht Null
Schritt
Sprung
Sprung
Schritt
1100 bedingungslos ohne Verän
derung
1101 bedingungslos Sprung
1110 bedingungslos Ruf
309814/0958
-50 -
Nur Truepfade werden benutzt, um die bedingungslosen Programmübertragungsoperationen wie Schritt, ohne Veränderung, Sprung und Ruf durchzuführen. Die Bitfolgen dagegen, die die Conditionallatches 24a, Linklatch,24b NOT ZERO (NZ) Latch, oder 24c, Indexlatch, auswählen, können entweder Sprung-oder Rufübertragungsbedingungen sein, je nachdem der angewählte Latchausgang True ..oder False ist. Der Test code 0010 z.B. wählt einen -Programmschritt, wenn der Ausgang des Linklatch True ist, und ein Programmsprung, wenn der Linklatchausgang False ist.
Der IA MUX-Dekoder kann jede geeigrAe Form annehmen, wie dies durch die Testfeldübersicht wiedergegeben wird. Ein logisches Schema ist als Beispiel in Fig. 5 dargestellt. Der aus Bitmustern bestehende Testcode wird in Koinzidenzgattern kombiniert mit Conditionlatchausgängen für bedingte Programmubertragüngen. Für den Fall unbedingter Übertragungen sind Koinzidenzgatter vorgesehen, die lediglich das Vorhandensein des Bitmusters feststellenj die Quelle der Einswerte ist weggelassen. In der Fig. 5 ist dies dadurch angedeutet, daß bei den mit zwei Eingängen gezeichneten Koinzidenzgattern der dritte Eingang weggelassen ist.
Wenn der Ausgang eines ausgewählten Koinzidenzgatters den Wert 1 hat, ist die Programmübertragung eine Schrittoperation mit der Folge, daß die IAR als Quelle der nächsten Instruk-
309814/0958 " 31 "
tionsadresse ausgewählt ist. Ist dagegen der Ausgang eines angewählten Koinzidenzgatters 0> ist die Programmübertragung ein Sprung, ein Ruf oder die Erhaltung des Zustands, im welchem Fall Register R7 ausgewählt wird als Quelle für die Instruktionsadresse. Deshalb sind die Ausgänge sämtlicher Koinzidenzgatter in Fig. 5 über ein ODER-Gatter zusammengefaßt, wodurch eine einzige Steuerleitung auf den IA MUX 25 (Fig. 4A) erhalten wird. In Fig. 5 ist außerdem ein besonderes UND-Gatter dargestellt zur Bestimmung des unbedingten Erhaltungstestcodes und Erzeugen eines Laderegister . R7 (LR7) Signals.
Wie an früherer Stelle dargelegt, werden die Conditionlatches 24a, 24b und 24c durch das Ergebnis der Durchführung einer laufenden Instruktion konditioniert aber in Abhängigkeit vom CPl XEA-Signal des nächstfolgenden Instruktionszyklus geladen. Der Indexlatch "24b wird dazu verwendet, anzuzeigen, daß eine Fortschaltoperation stattfindet. Für eine· Fortschaltoperation (Indexing Operation) wird eines der ALU-Register, das hieri mit R4 tezeichnet ist, mit einem Indexwert geladen, der für die Anzahl von Malen maßgebend ist, wie oft eine Programmschleife durchlaufen werden soll. Nach Beendigung eines jeden Durchlaufs durch die Programmschleife wird der Indexwert um eins verringert. Wenn der Indexwert dann 0 ist, ist die itera-
- 32 -
309814/0958
tive Operation der Programmschleife beendet. Dieser Nullzustand wird durch einen Dekoder 42 festgestellt,' der daraufhin einen einswertigen- oder Trueeingang auf Latch 24c gibt.
Der NZ (Not Zero) Latch 24b dient zur Anzeige, daß das Ergebnis der Durchführung der vorhergehenden Instruktion nicht gleich 0 ist. Deswegen ist ein ODER»Netzwerk 47 vorgesehen, um sämtliche Leitungen des D-Sammelleitung BO bis Bl$ im Falle einer Wortoperation darüberzuleiten. Der Ausgang des ODER-Netzwerkes 47 ist 0 nur dann, wenn die D-Sammelleitung ausschließlich Oen aufweist. Ein weiteres ODER-Netzwerk 48 ist vorgesehen, um die 8 niedrigstwertigen Bitstell^-en DO bis D7 der D-Sammelleitung für den Fall einer Byte-Operation zusammenzufassen. Die Einfachleitungausgänge der ODER-Gatter 47 und 48 werden auf ein NZ-MUX 45 gegeben. Der NZ-MUX 45 verbindet die Ausgänge entweder des ODER-Netzwerkes 47 oder das Netzwerk 48 mit dem Dateneingang des NZ-Latch 24b unter Steuerung der Bits l6 und 111 bis 115 der augenblicklichen Instruktion, wenn diese im Dekoder 4^ dekodiert sind.
- 35 -
3098U/0958
- 353 -
Durch Ändern des Wertes des Testcodes in der bedingten Unärinstruktion können alle die Schleifen-Kontrollinstruktionen früherer Art (vorwärtsgezählte Basisadresse). rückwärtsgezählter Zähler, Testzähler und Verzweigung) durch eine einzige Instruktion ersetzt werden. Bei diesen Beispiel würde der Testcode dann folgendermaßen ablaufen. Wenn der Inhalt von R6 nicht O'ist, darf XEA zu sein/ so daß die Instruktion ausgeführt wird durch Vorwärtszählen von R5 und Rückwärtszählen von r6. Das Programm springt dann zu der Adresse, auf die durch den Inhalt des Registers R7 hingewiesen wird. Ist hingegen der Inhalt von Rö gleich 0, wird der False-Pfad genommen, wodurch die Programmquelle für die nächste Instruktionsadresse das Instruktionsadressenregister ist. Es sei noch vermerkt, daß für dieses Beispiel zusätzliche Verbindungen in dem Diagram der Figur -M-A und der Figur 4B gemacht werden müssen. Diese Verbindungen würden es ermöglichen, daß der Ausgang des IA-MUX Decoders 26 .als Fehlfreigabeeingang auf das R6 Fehlerregister gelangt . . ,
In Figur 6 ist als Beispiel ein Zeitsteuergenerator dargestellt, der bei dem Gerät nach der Erfindung verwendet werden kann. Der Zeitsteuergenerator enthält einen Oszillator 55> der Zeitimpulseingänge auf eine Vielzahl von JK Flip-Flop-Stufen gibt, die einen Pulsteilernetzwerk bilden.
30 98 TA/095 8
22A8296
Der J-Eingang der ersten Flip-Flop-Stüfe PFl ist mit einer Quelle von 1-Werten verbunden. Die K-Klemraen der ersten 4 Stufen sind mit dem Q-Ausgang der letzten Stufe FF5 verbunden. Die O-AuRgänge der ersten zweiten und dritten Stufe sind an die J-Eingänge. der zweiten dritten und vierten Stufe gekoppelt. Die vierte Stufe FF4 ist an den K-Eingang der letzten Stufe FF5 geschaltet. Außerdem ist der Q-Q.uerausgang der vierten Stufe FF4 über ein NOR-Gatter 56 auf den J-Eingang der letzten Stufe FF5 geschaltet. Das CP-Zeitsteuersignal wird dann vom 0-Ouerausgang der letzten Stufe FF5 abgenommen. Bei dieser Art der Zusammenschaltung, wie sie die Figur 6 zeigt, hat das Impulsteilernetzwerk auf aufeinanderfolgende Zeitimpulse, solange das NOR-Gatter 56 freigeschaltet ist) ein IT-Verteilungsmuster, wie es die nachstehende Tabelle des Zeitsteuergenerators wiedergibt.
FF2 ZEITSTEUERGENERATORTABELLE FF4 FF5
FFl O FF3 O O
O ο O O O
1 1 O O O
1 1 ο O O
1 1 1 1 O
1 1
O
1 1
O
1
O
1
O
1
3Q98U/Q958
Der Tabelle ist entnehmbar, daß die letzte Stufe FF5 auf jeden sechsten Oszillatorimpuls hin ihren Zustand ändert, solange das NOR-Gatter 56 freigeschaltet bleibt. Zweck des NOR-Gatters 56 ist es, eine Asynchronoperationsweise für Kontrollzwecke auf der IA-Sammelleitung und der I-Sammelleitung zu 'ermöglichen. So geht das Bit-Muster von dem Zustand,in dem sämtliche Stufen 0 aufweisen, in den Zustand über, in welchem FF2 den Werf 1 annimmt, wobei dann der Q-Ouerausgang von PP2 den Wert 0 bekommt, wodurch ein Instruktionsanfrage-Signal (INST. RÜQ) geschaffen wird vom Werte 1, daß über die IA-Sammelleitung (Figur l) mit dem adressierten Speicher 12 oder 13 je nach Bedarf verbunden ist.. Dieses INST REQ Signal bleibt solange auf dem Wert 1, bis der für sämtliche Stufen 0 aufweisende Status deo Impulsteilernetzwerks wieder am Ende des CP Taktgabesignals erreicht ist.
Der Zweck des NOR-Gatters 56 iat der zu verhindern, · daß das Impulsteilernetzwerk auf jeden weiteren Zeitgabeimpuls anspricht, nachdem der 1110 Zustand erreicht ist, bis der adressierte Speicher ein Instruktionsantwortsignal (INST RES) übermittelt, das andeutet, daß eine Instruktion auf die I-Sammelleitung ausgelesen ist. Der Komplementärwert dieses Signals INST RES dient als Sperreingang zum NOR-Gatter 56. Solange das INST RES Signal den Wert 1
309814/0958
- 36 -
behält, was andeutet, daß sich auf der I-.Sammelleitung keine Instruktion befindet, ist der Ausgang des NOR-Gatters 56 0* so daß FF5 sich aus seinem O-Zustand nicht ändern kann. Wenn das INST RES Signal dann den Wert 0 bekommt, was andeutet, daß die Instruktion auf der I-Sammelleitung vorhanden ist, wird der Ausgang des NOR-Gatters 56 1, wodurch dann PP5 auf den nächstfolgenden Oszillatorimpuls kippt.
Im bisherigen ist eine Programmsteuervorrichtung beschrieben, in welcher die Durchführungen einer laufenden Instruktion und die Aufnahme der nächstfolgenden Instruktion parallel zueinander während demselben Instruktionszyklus erfolgen. Es versteht sich, daß das logische Schaltbild in der erläuternden Zeichnung als ein Beispiels aufzufassen ist und daß andere Ausgestaltung dieser Schaltung möglich ist. Auch sind die möglichen Bewegungs- und möglichen Binärinstruktionen und die Verzweigungsinstruktion nur beispielhaft für die Arten derartiger Instruktionen, die bei einem Testcode angewendet werden können. Der Instruktionssatz kann zusätzlicher Instruktionen erhalten die keinen Testcode haben. Instruktionen dieser Art können derart sein,.daß das IAR für eine Programmfortschaltoperation genommen wird. Um dies zu erreichen, würde das IA-MUX Decodiernetzwerk 26 weitere logische Schaltungsteile erhalten, um das Fehlen eines Testcodes festzustellen.
3098 14/0958
- 37 -

Claims (7)

  1. PATENTANSPRÜCHE
    1, . Computer mit einem adressierbaren Speicher, indem eine Vielzahl von Instruktionen gespeichert.ist, Instruktionszyklus-Zeitsteuermitteln zum Erzeugen eines Zeitsteuersignals zu Beginn eines jeden In&truktionszyklus, gekennzeichnet durch eine Instruktionsadresse schaffende Mittel für eine erste und eine zweite Quelle für die nächste Instruktionsadresse während jedes Instruktionszyklus, erste Mittel, die-abhängig vom Zeitsteuersignal ein Instruktionsregister mit jeder von dem Speicher adressierten Instruktion laden, zweite Mittel, die abhängig von jeder gespeicherten Instruktion im Instruktionsregister einen Satz von.Durchführungssignalen erzeugen, welche die dadurch spezifizierte Operation verkörpern, Instruktionsdurchführungsmittel, die abhängig von den Durchführungssignalsätzen die Instruktionen durchführen, und dritte Mittel abhängig von jeder gespeicherten Instruktion im Instruktionsregister um ausgewählt eine der nächsten Adressauswahlquellen mit dem Speicher während desselben Zeitintervalls zu verbinden, in dem die Durchführungsmittel dieselbe
    309814/0958 "3
    Instruktion durchführen.
  2. 2. Gerät nach Anspruch 1, dadurch gekennzeichnet, daß einige der Instruktionen ein Testfeld darstellen, in welchem die dritten Mittel einen Bedingungsspeicher enthalten, der abhängig vom Zeitsteuersignal während eines zweiten Instruktionszyklus den Zustand einer Bedingung speichert, die von der Durchführung der ersten Instruktion während eines ersten Instruktionszyklus stammt, in welchem der erste Instruktionszyklus das erste Mal auftritt, sowie erste Testmittel abhängig von den Bedingungsspeichermitteln und vom Testfeld einer zweiten Instruktion, die während des zweiten Instruktionszyklus auftritt, um wahlweise einer der nächsten Adressenauswahlquellen mit dem Speicher zu verbinden.
  3. 3. Gerät nach Anspruch 2, dadurch gekennzeichnet, daß die dritten Mittel zweite Te^tmittel enthalten, die abhängig von den Bedingungsspeichermitteln und dem Testfeld der zweiten Instruktion während des' zweiten Instruktionszyklus sind, um wahlweise die Durchführung der zweiten Instruktion zu unterbinden.
  4. 4. Gerät nach Anspruch 3> dadurch gekennzeichnet, daß die zweiten Testmittel ein zweiwertiges Durchführungsfreischaltsignal erzeugen, die Instruktions-Durchführungsmittel
    309814/0958.
    - 39 -
    eine Vielzahl von Registern und ein Addier- und logisches Netzwerk enthalten, welches abhängig von den Durchführungssignalsätzen während des ersten und zweiten Instruktionszyklus ist zum Ausführen der Operationen, die von den entsprechenden Instruktionen des Inhalts der ausgewählten Register verlangt werden, um erste und zweite Instruktionsergebnissignalsätze zu erzeugen, wobei einzelne der Durchführungsergebnissignale auf die Bedihgungsspeichermittel übertragen werden, und Gattermittel auf einen Wert der Durchführungsfreigabesignale und auf das Instruktionszykluszeitsteuersignal während eines dritten Instruktionszyklus ansprechen, .der dem zweiten Instruktionszyklus folgt, um den Satz von zweiten Durchführungsergebnissignalen in ein bestimmtes ausgewähltes Register einzugeben, und damit der andere Wert des Durchführungsfreigabesignals das Laden des zweiten Instruktionsdurchführungsergebnispignalsatzes verhindert.
  5. 5. Gerät nach Anspruch 1, dadurch gekennzeichnet, daß einige 'der Instruktionen ein Testfeld enthalten, und die dritten Mittel einen Bedingungsspeicher aufweisen, der in Abhängigkeit vom Zeitsteuersignal arbeitet, um den Zustand eines Bedingungsergebnisses von einer ersten Instruktionsdurchführung zu speichern, die während des ersten Instruktionszyklus vorgenommen wurde, und erste Testmittel
    309814/0958 " 40 "
    in Abhängigkeit von dem Bedingungsspeicher und von dem Testfeld einer zweiten Instruktion, die während eines zweiten nachfolgenden Instruktionszyklus auftritt, um wahlweise eine der nächsten Adressenauswahlquellen mit dem Speicher zu verbinden.
    ,Ill'
  6. 6. Gerät nach Anspruch 5» dadurch gekennzeichnet, daß die dritten Mittel zweite Testmittel enthalten, die abhängig vom Bedingungsspeicher und vom Testfeld der zweiten Instruktion während des zweiten Instruktionszyklus wahlweise die Durchführung der zweiten Instruktion freigeben oder verhindern.
  7. 7. Gerät nach Anspruch 6, dadurch gekennzeichnet, daß die zweiten Testmittel ein zweiwertiges Durchführungsfreigabesignal erzeugen und daß die Instruktionsdurchführungsmittel eine Mehrzahl von Registern enthalten, ein Addier- und logisches Netzwerk in Abhängigkeit vom Durchführungssignalsatz während des ersten und des zweiten Durchführungszyklus zur Vornahme der Operationen, und das Gattermittel auf einen Wert der Durchführungsfreigabesignale und auf das Instruktionszykluszeitsteuersignal hin während eines dritten Instruktionszyklus ansprechen, der den zweiten Instruktionszyklus folgt, wodurch der zweite Durchführungsergebnissignalsatz in ein ausgewähltes Register eingegeben wird,
    3098U/0958 " 4l "
    während auf den anderen Wert des Durchführungsfreigabesignals das.Einspeisen des zweiten Instruktionsdurchführungsergebnissignalsatzes unterbunden wird.
    309814/0958
DE19722248296 1971-10-01 1972-10-02 Programmsteuereinrichtung Pending DE2248296A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US18564971A 1971-10-01 1971-10-01

Publications (1)

Publication Number Publication Date
DE2248296A1 true DE2248296A1 (de) 1973-04-05

Family

ID=22681876

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19722248296 Pending DE2248296A1 (de) 1971-10-01 1972-10-02 Programmsteuereinrichtung

Country Status (13)

Country Link
US (1) US3766527A (de)
JP (1) JPS4844063A (de)
AU (1) AU464291B2 (de)
BE (1) BE789583A (de)
CA (1) CA954229A (de)
CH (1) CH560933A5 (de)
DE (1) DE2248296A1 (de)
FR (1) FR2158833A5 (de)
GB (1) GB1402585A (de)
IL (1) IL40388A (de)
IT (1) IT967959B (de)
NL (1) NL7213248A (de)
SE (1) SE393200B (de)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4040031A (en) * 1973-04-13 1977-08-02 Compagnie Honeywell Bull (Societe Anonyme) Computer instruction control apparatus and method
FR2226079A5 (de) * 1973-04-13 1974-11-08 Honeywell Bull Soc Ind
JPS605978B2 (ja) * 1974-09-12 1985-02-15 富士通株式会社 記憶装置のアクセス制御方式
US3961313A (en) * 1974-12-04 1976-06-01 International Business Machines Corporation Computer control apparatus
CA1059639A (en) * 1975-03-26 1979-07-31 Garvin W. Patterson Instruction look ahead having prefetch concurrency and pipe line features
US3969724A (en) * 1975-04-04 1976-07-13 The Warner & Swasey Company Central processing unit for use in a microprocessor
SU613401A1 (ru) * 1976-07-07 1978-06-30 Предприятие П/Я В-2892 Запоминающее устройство
US4159520A (en) * 1977-01-03 1979-06-26 Motorola, Inc. Memory address control device with extender bus
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
US4287561A (en) * 1978-03-16 1981-09-01 International Business Machines Corporation Address formulation interlock mechanism
US4255785A (en) * 1978-09-25 1981-03-10 Motorola, Inc. Microprocessor having instruction fetch and execution overlap
US4298927A (en) * 1978-10-23 1981-11-03 International Business Machines Corporation Computer instruction prefetch circuit
SE456051B (sv) * 1980-02-11 1988-08-29 Western Electric Co Digital processoranordning anordnad for pipeline-databehandlingsoperationer
US4521858A (en) * 1980-05-20 1985-06-04 Technology Marketing, Inc. Flexible addressing and sequencing system for operand memory and control store using dedicated micro-address registers loaded solely from alu
JPS58151655A (ja) * 1982-03-03 1983-09-08 Fujitsu Ltd 情報処理装置
JPH0776917B2 (ja) * 1984-12-29 1995-08-16 ソニー株式会社 マイクロコンピユ−タ
US4755966A (en) * 1985-06-28 1988-07-05 Hewlett-Packard Company Bidirectional branch prediction and optimization
EP0211487A1 (de) * 1985-06-28 1987-02-25 Hewlett-Packard Company Bedingte Operationen in Rechnern
JPS6341932A (ja) * 1985-08-22 1988-02-23 Nec Corp 分岐命令処理装置
US5101341A (en) * 1988-08-25 1992-03-31 Edgcore Technology, Inc. Pipelined system for reducing instruction access time by accumulating predecoded instruction bits a FIFO
US5163139A (en) * 1990-08-29 1992-11-10 Hitachi America, Ltd. Instruction preprocessor for conditionally combining short memory instructions into virtual long instructions
GB2282245B (en) * 1993-09-23 1998-04-15 Advanced Risc Mach Ltd Execution of data processing instructions
JPH0863355A (ja) * 1994-08-18 1996-03-08 Mitsubishi Electric Corp プログラム制御装置及びプログラム制御方法
JP3452989B2 (ja) * 1994-09-26 2003-10-06 三菱電機株式会社 中央処理装置
JP4791909B2 (ja) * 2006-08-21 2011-10-12 株式会社東芝 高速入出力機能を備える制御装置、及びその制御データの制御方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3058658A (en) * 1957-12-16 1962-10-16 Electronique Soc Nouv Control unit for digital computing systems
US3058659A (en) * 1958-12-31 1962-10-16 Ibm Add address to memory instruction
USRE26087E (en) * 1959-12-30 1966-09-20 Multi-computer system including multiplexed memories. lookahead, and address interleaving features
NL276236A (de) * 1961-03-24
US3242464A (en) * 1961-07-31 1966-03-22 Rca Corp Data processing system
NL287533A (de) * 1962-01-22
US3387278A (en) * 1965-10-20 1968-06-04 Bell Telephone Labor Inc Data processor with simultaneous testing and indexing on conditional transfer operations
US3401376A (en) * 1965-11-26 1968-09-10 Burroughs Corp Central processor
US3533075A (en) * 1967-10-19 1970-10-06 Ibm Dynamic address translation unit with look-ahead
US3551895A (en) * 1968-01-15 1970-12-29 Ibm Look-ahead branch detection system
US3544974A (en) * 1968-04-01 1970-12-01 Ibm Data processing system including buffered operands and means for controlling the sequence of processing of same
US3573852A (en) * 1968-08-30 1971-04-06 Texas Instruments Inc Variable time slot assignment of virtual processors
US3573854A (en) * 1968-12-04 1971-04-06 Texas Instruments Inc Look-ahead control for operation of program loops
US3609700A (en) * 1970-02-24 1971-09-28 Burroughs Corp Data processing system having an improved fetch overlap feature
US3651475A (en) * 1970-04-16 1972-03-21 Ibm Address modification by main/control store boundary register in a microprogrammed processor
US3717850A (en) * 1972-03-17 1973-02-20 Bell Telephone Labor Inc Programmed data processing with facilitated transfers

Also Published As

Publication number Publication date
NL7213248A (de) 1973-04-03
GB1402585A (en) 1975-08-13
BE789583A (fr) 1973-02-01
FR2158833A5 (de) 1973-06-15
CH560933A5 (de) 1975-04-15
AU4699272A (en) 1974-03-28
CA954229A (en) 1974-09-03
IL40388A (en) 1975-11-25
IL40388A0 (en) 1972-11-28
IT967959B (it) 1974-03-11
US3766527A (en) 1973-10-16
JPS4844063A (de) 1973-06-25
AU464291B2 (en) 1975-08-21
SE393200B (sv) 1977-05-02

Similar Documents

Publication Publication Date Title
DE2248296A1 (de) Programmsteuereinrichtung
DE2724125C2 (de)
DE2316296C2 (de) Mikroprogrammierbarer Prozessor
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE3638572C2 (de)
DE1303416B (de)
DE2806045A1 (de) Dv-system mit pufferspeicher
DE2806024A1 (de) Speichersystem mit fehlerfeststell- und korrekturmoeglichkeit
DE1499175A1 (de) Digitalrechner-Datenverarbeitungszentralanlage
DE2635592A1 (de) Multiprozessor-abrufsystem
DE2357003A1 (de) Programmierbarer prozessor
DE2612139A1 (de) Ein/ausgang-steuerungssystem
DE2715073A1 (de) Mikroprogrammierte rechner-steuervorrichtung
DE1929010A1 (de) Modular aufgebautes Datenverarbeitungssystem
DE2400064A1 (de) Speicherpruefanordnung und diese verwendendes endgeraetsystem in einem datenverarbeitungssystem
DE1935944C3 (de) Steuereinrichtung in einer elektronischen Datenverarbeitungsanlage
DE3114921A1 (de) Datenverarbeitungssystem
DE1499206B2 (de) Rechenanlage
DE2556617A1 (de) Datenverarbeiter zum rotierbaren verschieben von bits eines datenwortes
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
DE1549548A1 (de) Vorrichtung zur Aktivierung eines bestimmten Befehls aus einer Vielzahl von Befehlen,die in einem Befehlsspeicher eines Rechners gespeichert sind
DE1922304A1 (de) Datenspeichersteuergeraet
DE3307194C2 (de)
DE2835110A1 (de) Schneller echtzeit-rechneremulator

Legal Events

Date Code Title Description
OD Request for examination
OHW Rejection