DE2913492A1 - Prozessor und anlage mit einem derartigen prozessor - Google Patents

Prozessor und anlage mit einem derartigen prozessor

Info

Publication number
DE2913492A1
DE2913492A1 DE19792913492 DE2913492A DE2913492A1 DE 2913492 A1 DE2913492 A1 DE 2913492A1 DE 19792913492 DE19792913492 DE 19792913492 DE 2913492 A DE2913492 A DE 2913492A DE 2913492 A1 DE2913492 A1 DE 2913492A1
Authority
DE
Germany
Prior art keywords
mentioned
address
register
memory
value
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.)
Ceased
Application number
DE19792913492
Other languages
English (en)
Inventor
Jared Arnold Anderson
Jimmy Elroy Braun
Gelder Robert Vanya Van
Lauren Felice Yazolino
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.)
Koninklijke Philips NV
Original Assignee
Philips Gloeilampenfabrieken NV
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 Philips Gloeilampenfabrieken NV filed Critical Philips Gloeilampenfabrieken NV
Publication of DE2913492A1 publication Critical patent/DE2913492A1/de
Ceased 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/18Packaging or power distribution
    • G06F1/181Enclosures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/20Cooling means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1036Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] for multiple virtual address spaces, e.g. segmentation
    • HELECTRICITY
    • H05ELECTRIC TECHNIQUES NOT OTHERWISE PROVIDED FOR
    • H05KPRINTED CIRCUITS; CASINGS OR CONSTRUCTIONAL DETAILS OF ELECTRIC APPARATUS; MANUFACTURE OF ASSEMBLAGES OF ELECTRICAL COMPONENTS
    • H05K7/00Constructional details common to different types of electric apparatus
    • H05K7/14Mounting supporting structure in casing or on frame or rack
    • H05K7/1422Printed circuit boards receptacles, e.g. stacked structures, electronic circuit modules or box like frames
    • H05K7/1424Card cages

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Power Engineering (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Cooling Or The Like Of Electrical Apparatus (AREA)
  • Executing Machine-Instructions (AREA)
  • Bus Control (AREA)

Description

17.3.79 * PHA.IO36
"Prozessor und Anlage mit einem derartigen Prozessor"
BEREICH DER ERFINDUNG
Der funktioneile Aufbau eines Rechnersystems wird, wenn es auch viele Formen haben kann, durch den Befehlsvorrat definiert. Der Befehlsvorrat stellt eine vollständige und erschöpfende Spezifikation aller Betriebsmöglichkeiten dar, die das System dem Programaierer zur - Verfügung stellt. Mit dem Befehlsvorrat allein können Programme geschrieben werden, ohne dass weitere Einzelheiten über den inneren Betrieb des Systems bekannt sind. Also spezifiziert der Rechnerkonstrukteur durch die Spezifika-· tion des Befehlsvorrats gleichzeitig die Umgebung, in der Programme arbeiten müssen, und definiert alle Funktionen, die die Hardware geben muss.
Früher waren die Aufgaben der funkt±one1-
len und Hardware—Planung im wesentlichen unabhängig. Der Funktionsbauherr machte den Versuch, einen Befehlsvorrat herzustellen, der sowohl leistungsfähig als auch einfach war, um die ¥ünsche des Benutzers so gut wie möglich zu erfüllen. Der Hardware-Bauherr versuchte, die funktioneIlen
Zielsetzungen, die vom Befehlsvorrat gegeben sind, mit geringster Anzahl von Teilen (Vakuumröhren, Ti'ansistoren und später kleinintegrierte Schaltungen mit Gattern \md Flipflops) zu erreichen, um mit geringstem Kostenaufwand ein System zu erstellen.
909842/0770
17.3.79 *f PHA.1036
Beim Auftakt des Mediums zu Grossintegration mit einer Vielzahl von Gattern per Chip wurden die einstmals stark getrennten Aufgaben beim Systemaufbau, Logikaufbau und bei der ¥ahl der Teile weitgehend voneinander abhängig. Der Entwerfer muss den gewählten funktioneilen Aufbau mit den Möglichkeiten der grossen Auswahl verfügbarer komplexer Teile im Einklang bringen. Geeignete ¥ahl der Teile ist somit äusserst wichtig und wirkt sich wesentlich auf den Entwurf des Systems und des Untersystems aus.
'Ρ Wesentlich wichtig bei der ¥ahl der
Teile ist die gebotene Auswahl zwischen den verschiedenen verfügbaren Familien der Integrierten Schaltungen. Die erste dieser Art, RTL (Yiderstaiid-Transistor-Logik) verzeichnet hohe Leistungen, jedoch hat sie nur geringen Yiderstand gegen externe Geräusche. DTL (Diode-Transistor-Logik) weist geringere Störanfälligkeit auf, ist aber langsam, und wurde durch die stark verwandte Familie TTL (Transistor-Transistor-Logik) überholt. TTL ist wesentlich unempfindlich gegen Störungen, ist schnellarbeitend und (wichtig)
wurde für die Herstellung der grössten Auswahl an komplexen Normalteilen verwendet. Noch schnellere ECL-Schaltungen (Emittergekoppelte Logik, auch mit CML — Current Mode Logic bezeichnet) bieten heute die höchste Geschwindigkeit und wurden häufig für schnellste Systeme gewählt, wenn sie
auch geringen Störxingswiderstand im Vergleich zu TTL-Geräten haben, und einige komplexe Normalfunktionen wurden mit ECL verwirklicht.
MOS-Logik (Metal Oxide Semiconductor)
hat einige Vorteile vor den erwähnten bipolaren Logik-
Familien. Darunter befinden sich sehr hohe Bauelementdichten und eine hohe Ausgangslasteigenschaft. Diese Vorteile ermöglichen die Einfügung besonders komplexer Anordnungen in eine einzige Integrierte Schaltungseinrichtung. Also kann bei der Verwendung von MOS-Anordnungen der Unterschied
zwischen Systemaufbau und Bauelemontwahl verschwinden. Zur Erläuterung diene der im weiten Bereich angewandte 8OSO "Mikroprozessor", der eingeführt von der Intel Corporation
909842/0770
17·3· 79 ■ sf PlLi. 1036
im Jahre 1973» ein vollständiger Rechner (ohne Arbeitsspeicher) auf einem einzigen Chip ist. Dieser 8-Bit-Prozessor enthält ·'ein Befehlsregister und einen Decoder, einen kleinen Ortsspeicher, ein Rechen- und Steuerwerk sowie Eingabe/Ausgabe-Schaltungen. Es gibt 48 Befehle im 8O8O-Befehlsvorrat, vier adressierbare Mehrzweckregister, ein" Akkumulatorregister und zwei Zusatzregister zum Festhalten einer Adresse in einem einzelnen Arbeitsspeicher, der I6.5OO Einbyte-Wörter enthalten kann. (Siehe die Betriebs- * anleitung für den 8O8O 8-Bit~Parallelprozessor, Intel Corporation (i973)·)·
Mikroprozessoren vom Typ 8080 bedeuten eine wesentliche Verringerung in den Abmessungen und in den
Herstellungskosten und eignen sich auf ideale Weise für 15
Kleinschaltkreise, bei denen keine grosse Rechnerkapazität benötigt wird, wie in Prozesssteuereinrichtungen. Der grösste Nachteil bei der Verwendung von MOS-Schaltungen besteht in ihrer niedrigen Geschwindigkeit: 10 bis 100-mal
langsamer als ihre bipolaren Äquivalente. !Tür mittelgrosse 20
und grosse Prozessoren, bei denen hohe Geschwindigkeit wesentlich wichtig ist, bieten bipolare Schaltungen grosse Vorteile.
Vergrösserung der Gatterintegration in
der Verbindung mit der Verfügbarkeit von "Tristate" 25
Schottky-Logik hat weiter das Potential bipolarer Anordnungen vergrössert. Tristate-Logik fördert BUS-orientierten Hardware-Aufbau, der selbst durch die sich verringernden Kosten und die grössere Dichte der Mikrocode-Festwertspei-
cheranox-dnungen vorteilhafter geworden ist. Schliesslich 30
stellt die Technologie der Mikroprozessor-Bitschnitte (^i*- slice), beispielsweise gekennzeichnet durch die AM2900-Familie der bipolaren Anordnungen eingeführt dui*ch Advanced Micro Devices, Inc., einen weiteren Schritt vorwärts auf
dem Niveau der bipolaren Gatterinfcegration. Diese Vorteile 35
im Bau bipolarer Integrierter Schaltungen haben wesentlich zum Aufbau des in dieser Beschreibung gegebenen Prozessors beigetragen.
909842/0770
17.3.79 14 PHA.1036
DARSTELLUNG DER ERFINDUNG
Der Erfindung liegt die Aufgabe zugrunde,
einen leistungsfähigen, preisgünstigen Zentralprozessor zu schaffen, der den sog. "Universellen Befehlsvorrat" ausführen kann, wie dieser benutzt wird in den weit verbreiteten IBM System/360- und System/370-Zentralprozessoren sowie in Prozessoren anderer Hersteller.
Die Wahl des universellen Befehlsvorrats
basiert auf der praktischen Realität, dass er zur Industriet Norm geworden ist. Andere Befehlsvorräte wurden gewählt und könnten gewählt werden, die vom rein technischen Standpunkt aus betrachtet mit bestimmten besseren Eigenschaften im Vergleich zu denen des Normal-Vorrats gedacht werden könnten. Welche auch diese Vorteile sein mögen, sie sind unbedeutend im Vergleich zu den Vorteilen eines Prozessors, der den gefestigten Techniken anpassbar ist. Die Mehrheit versierter Programmierer besitzen entsprechende Ausbildung und ausreichende Erfahrungen im Gebrauch von Programmierungstechniken (insbesondere Assemblersprachenprogrammierung),
die mit dem gefestigten Befehlsvorrat verknüpft sind.
Eben weil die Industrie grosse Investitionen in die Ausbildung von Programmierungspersonal gemacht hat, hat sie auch riesige Ausgaben für die Erstellung
von Systemen und die Beschaffung von Programmausrüstungen 25
gemacht. Während diese Programmausrüstungen ohne weiteres bei Prozessoren verwendbar sand, die mit dem universellen Befehlsvorrat betrieben werden, lassen sich derartige Programme normalerweise nur mit grossen Schwierigkeiten und
unvorhersagbaren Ergebnissen für die Verwendung mit einem 30
abweichenden Vorrat anpassen.
Das IBM-System/370 wird mit einem Befehlsvorrat betrieben, der eine Erweiterung des früheren System/ 360-Befehlsvorrats ist. Also können für die früheren
System/360-Prozessoren geschriebene Programme auch durch 35
Prozessoren in der späteren System/370-Familie ausgeführt wex-den. Vor nicht zu langer Zeit wurden Prozessoren anderer Herstellung eingeführt, die den universellen Befehlsvorrat
909842/0770
17-3.79 15 PHA.1036
ausführen, einschliesslich der vom Amdahl, Control Data und Itel Korporationen auf den Markt gebrachten Grossprozesso« ren.
Die Erfindung betrifft einen Zentralprozessor für ein Datenverarbeitungssystem mit einem einmaligen Aufbau und insbesondere geeignet zum Erfüllen der erwähnten Bedingungen.
Diese Aufgabe wird bei einem erfindungs-
gemässen Zentralprozessor für ein elektronisches Datenverarbeitungssystem dadurch erfüllt, dass er in der Kombination einen Arbeitsbus für Daten und Befehle zum direkten Uebertragen von Daten auf und zu ein jedes folgender Register enthält:
(1) ein Programmstatuswortregister zum
Speichern der Arbeitsspeicheradresse
des folgenden auszuführen Befehls und der für die Art des ausführenden Verfahrens spezifischen Steuerinformation;
, ,
(2) ein Arbeitsspeicherzugriffsregister;
und
(3) ein Befehlsregister zum Speichern des in der Ausführung begriffenen Befehls.
der aus einem Operationscode und einem 25
oder mehreren Operanden besteht;
ein Datenregister zum Speichern von Daten aus dem erwähnten Arbeitsbus;
eine Vielzahl von Mehrzweckregistern zum Speichern
von Daten an adressierbaren Stellen, die von den im Befehls-30
register gespeicherten Operanden spezifiziert sind;
ein Rechen- und Steuerwerk (ALU) zur Durchführung arithmetischer und logischer Operationen mit Eingangstoren zum selektiven Datenempfang aus dem Datenregister und ausgewählten Registern der Mehrzweckregister sowie mit einem 35
Ausgabetor zum Durchlassen der Ergebnisse der erwähnten Operationen zum Arbeitsbus oder zu einem ausgewählten Register der Mehrzweckregister,
909842/0770
17.3.79 ή€ PHA.1036
einen Mikroprogrammspeicher zum Aufnehmen einer Vielzahl adressierbarer Mikrobefehle, die je eine "Vielzahl codierter Felder enthalten,
Decoder zum Umsetzen der erwähnten codierten Felder in Steuersignale,
Mittel zum Uebersetzen des erwähnten Operationscodes in die Mikroprogrammspeicheradresse des ersten Mikrobefehls, die während der Ausführung des vorliegenden Befehls im erwähnten Befehlsregister dem erwähnten Decoder zugeführt wer— den muss, und
ein Mikroprogramm-Steuerwerk zum anschliessenden Erzeugen einer Folge von Mikroprogrammspeicheradressen zur Vervollständigung der Ausführung des vorliegenden Befehls und zum anschliessenden Ersetzen des vorliegenden Befehls durch den folgenden Befehl, dessen Adresse im Programmstatuswortregister gespeichert ist.
Durch diesen Aufbau verringern sich die
Abmessungen, die Kosten und die Komplexität des Zentralprozessors. Die Verwendung des erwähnten Arbeitsbusses zum
wesentlichen Verdichten sämtlicher Daten- und Befehlsübertragungen reduziert die Störunge-,Uebersprech- und Taktsteuerprobleme auf ein Minimum, die durch mehrere, gleichzeitig betriebene Datenwege hervorgerufen werden. Die einfache Arbeitsbuseinrichtung reduziert weiterhin die erfor-
derliche Registeranzahl auf ein Minimum, die zum Instrumentieren einer gegebenen Funktion erforderlich ist, und eignet sich besonders für codierte Mikroprogrammsteuerung.
Die Aufgabe der Erfindung besteht weiter
darin, einen Prozessor zu schaffen, in dem häufig durchge-
führte Funktionen mit niedrigen Kosten, bei hoher Geschwindigkeit und mit Bauelementen für Grossschaltkreise (LSl) ausgeführt werden.
Zur1 Lösung dieser Aufgabe ist eine Ausfuhr ungs form des Zentralprozessors dadurch gekennzeichnet,
dass das erwähnte Mehrzweckregister sowie das Rechen- und Steuerwerk Mikroprozessor-Grossschaltkreise enthalten.
Hauptsächlich werden die zentralen Funktio-
909842/0770
17-3*79 /\ f PHA. 1036
nen des zu beschreibenden Prozessors mit bestehenden bipolaren (zum Beispiel (Schottky) TTL-) LSI-Baugruppen mit sehr hohen Geschwindigkeiten instrumentiert. Da derartige Schaltungen in einer1 Vielzahl anderer digitaler Anwendungen ver-
^ wendet werden, werden niedrige Herstellungskosten durch Massenfertigung erzielt. Indem auf diese Weise Bauelementkosten reduziert werden, weist der entstandene Prozessor ein. besseres Kosten-Leistungsverhältnis auf als durch die Verwendung von Schaltungen mit einer ad hoc Konstruktion
t erreicht werden könnte.
Insbesondere und entsprechend einer wichtigen Eigenschaft dieser Erfindung sind alle zum Durchführen der Rechen- und Steuer- sowie Mehrzweckregister-Funktionen, die im Befehlsvorrat spezifiziert sind, benötigten Funktionen
in einer Kaskadengruppe von Mikroprozessoren vom Integrationsschaltungs-Bitschnittentyp konzentriert. Hierdurch werden die häufig durchgeführten Register-Register- und Index-Register-Funktionen bei sehr hohen Geschwindigkeiten ausgeführt. Dabei sollen die Mikroprozessoren insbesondere in
bipolare Integrationsschaltungstechiiologie ausgeführt sein.
Nachstehend sind einige besondere Aus-
führungsformen mit weiterer Ausführungsdetails des Zentralprozessors nach der Erfindung aufgeführt.
Eine derartige Ausführungsform ist da~
durch gekennzeichnet, dass das- erwähnte Rechen- und Steuerwerk einen Statusausgang hat, der mit dein erwähnten MikroprogrammSteuerwerk verbunden ist, um. die Folge der Mikrobefehle zu variieren, die infolge der Ergebnisse der vom erwähnten Rechen- und Steuerwerk durchgeführten Operationen
adressiert wurden.
Eine andere Ausführungsform ist dadurch
gekennzeichnet, dass der Prozessor Mittel zum Empfangen des Werts des erwähnten Operationscodes und des am erwähnten
Statusausgang erscheinenden Werts zum Erzeugen eines Befehls-35
ausführungswerts sowie Mittel zum Speichern des genannten Befehlsausführungswerts im ex'wähnten Programnistatuswortregister enthält.
909842/0770
17.3-79 4% PHA. 1036
Eine weitere Ausführungsform ist dadurch.
gekennzeichnet, dass die codierten Felder, die je einen Mikrobefehl bilden, ein Mikrobefehl-Zweigadressfeld, ein
ALU-Steuerfeld, ein Mikroprogramm-Steuerwerkfeld sowie eine 5
Vielzahl von Feldersn für die Spezifikation von Registern enthalten, die Daten auf den erwähnten Arbeitsbus übertragen oder daraus erhalten.
Eine weitere Eigenschaft dieser Ausführungsform ist dadurch gekennzeichnet, dass Mittel vorgesehen sind, die zusätzlich den Wert im erwähnten Mikrobefehl-Zweigadressfeld mit einem ¥ert am Arbeitsbus kombinieren, um eine versetzte Zweigadresse für den nächsten auszuführenden Befehl zu bilden.
Eine andere Eigenschaft der erwähnten 15
Ausfuhrungsform besteht darin, dass Mittel vorgesehen sind, die einen codierten Wert für die Angabe des Vorhandenseins von Operanden ungleich Null im erwähnten Befehlsregister liefern, sowie Mittel zum Aendern der Adresse des nächsten
Mikrobefehls, der ausgeführt werden muss, als Ergebnis des 20
erwähnten codierten Werts.
Ein wesentlicher Vorteil des erfindungs-
geinässen Zentralprozessor-s besteht in dor Verwendung des sog. Stapelpirinzips , das im Mikroprogramm-Steuerwerk angewendet ist. Durch diese Verwirklichung ist der Zentralpro-20
zessor dadurch gekennzeichnet, dass das Mikroprogramm-Steuerwerk zum Erzeugen einer Adressfolge für den Zugriff auf Programmwörtcr die im Mikroprogrammspeicher gespeichert sind, in dem jedes Programmwort ein Zweigadressfeld sowie
ein Steuerwerlo-Betriebsfeld enthält, enthält in der Kombi-30
nation
ein Mikroprograramspeicher-Adressregister zum Speichern der vorliegenden Adresse des im Mikroprograunnspeicher für Zugriff bereitstehenden Programmworts,
Mittel, ansteuerbar durch das erwähnte Steuerwerk-35
Betriebsfeld, um den im erwähnten Mikroprogrammspeicher-Adressregister gespeicherten Wert selektiv zu erhöhen, erste und zweite adressierbare Stapelspeicher zum
S098A2/0770
17.3-79 ή S PHA.1036
Festhalten von Steuerzählungen bzw. Rückkehradressen} einen Stapelzeiger-Zähler zum Adressieren der erwähnten Stapelspeicher, und
Mittel, die durch das erwähnte Steuerwerk-Betriebsfeld ansteuerbar sind, um die im erwähnten Stapelzeiger-Zähler festgehaltene Zählung selektiv zu erhöhen, festzuhalten oder zu vermindern.
Ein weiterer Vorteil besteht darin, dass
der Zentralprozessor Mittel zum Uebertragen eines Werts aus ^ dem erwähnten Zweigadressfeld auf den erwähnten ersten Stapelspeicher enthält.
Ein anderer Vorteil besteht darin, dass
der Zentralprozessor Mittel enthält, die vom erwähnten Steuerwerk-Betriebsfeld zum selektiven Vermindern eines im erwähnten ersten Stapelspeicher vorhandenen Yerts angesteuert werden.
Wieder ein anderer Vorteil besteht darin,
dass der Zentralprozessor Mittel zum Speichern der Mikro— programmspeicher-Ergebnisadresse einer eine Routine beschreibenden Adressfolge, Mittel zum Vergleicher der erwähnten Ergebnisadresse mit der im erwähnten Mikroprogrammspeicher-Adressregister gespeicherten laufenden Adresse sowie Mittel zum Vermindern des erwähnten Stapelzeigers enthält, um eine Rückkehr von der erwähnten Routine zu bewirken, wenn die
erwähnte laufende Adresse der Ergebnisadresse entspricht.
Der Aufbau eines elektronischen Datenverarbeitungssystems mit dem erwähnten Zentralprozessor ergibt. erfindungsgemäss ein elektronisches Datenverarbeitungssystem zum sequentiellen Ausführen einer Reihe von Befehlen, die
je einen Operationscode, der die Art der durchzuführenden Operation spezifiziert, sowie einen oder mehrere Operanden enthalten, die zu bearbeitende Verte spezifizieren, wobei das erwähnte System in der Kombination folgende Elemente enthält:
einen Arbeitsspeicher mit direktem Zugriff zum
Speichern von Daten und Befehlen an durch Adressen spezifizierten Stellen,
909842/0770
17-3.79 " ZJl· PHA.1036
einen Arbeitsbus zum Uebertragen von Daten, Befehlen und Adressen zwischen dem erwähnten Arbeitsspeicher und einem Zentralprozessor, der dadurch gekennzeichnet ist, dass er in der Kombination einen Daten- und Befehlsarbeitsbus zum direkten Uebertragen von Informationen von und nach einem jeden folgender Register des Zentralprozessors:
(1) einem Programmstatuswortregister zum Speichern der Arbeitsspeicheradresse des nächsten auszuführenden Befehls und zum Speichern der die Art der Operation beschrei-
1P benden St euer information;
(2) einem Arbeitsspeicher-Zugriffsregister, und
(3) einem Befehlsregister zum Speichern des in der Ausführung begriffenen Befehls, der sich aus einem Operationscode und. einem oder mehreren Operanden zusammensetzt;
ein Datenregister zum Speichern von Daten aus dem erwähnten Arbeitsbus,
eine Vielzahl von Mehrzweckregistern zum Speichern von Daten an adressierbaren Stellen, die von den erwähnten, im genannten Befehlsregister gespeicherten Operanden spezifiziert werden,
ein Rechen- und Steuerwerk (ALU) zum Durchführen von Rechen- und Steueroperationen, mit Eingangstoren zum selektiven Dateriernpfang aus dem erwähnten Datenregister und ausgewählten Registern der erwähnten Mehrzweckregister sowie mit einem Ausgabetor zum Weiterleiten der Ergebnisse der erwähnten Operationen zum erwähnten Arbeitsbus oder zu einem ausgewählten Register der erwähnten Mehrzweckregister,
einen Mikroprogramitispeicher zum Speichern einer Vielzahl adressierbarer Mikrobefehle, die je eine Vielzahl co-
dierter Felder enthalten,
Decoder zum Umsetzen der erwähnten codierten Felder in Steuersignale,
Mittel ztim Uebersetzen des erwähnten Operationscodes
in die Mxkroprogrammspeicheradresse des ersten Mikrobefehls,
der während der Ausführung des laufenden Befehls im erwähnten Befehlsregister dem erwähnten Decoder zugeführt werden muss, und
909842/0770
ein Mikroprogramm-Steuerwerk zum anschliessenden Erzeugen einer Folge von Mikroprogrammspeicheradressen zur Vervollständigung der Ausführung des erwähnten laufenden Befehls und zum anschliessenden Ersetzen des erwähnten laufenden Befehls durch den folgenden Befehl enthält, dessen Adresse im erwähnten Programmstatuswortregister gespeichert ist.
Wie bereits erwähnt,werden zum Erreichen einer guten Leistungsfähigkeit handelsübliche, preisgünstige,
^ schnelle Bauelemente für Grossschaltkreise (LSI) verwendet. Insbesondere ist der erfindungsgemässe Zentralprozessor dadurch gekennzeichnet, dass das erwähnte Mehrzweckregister und das erwähnte Rechen- und Steuerwerk Mikroprozessor-Grossintegriert schaltkreise enthalten.
Eine weitere Ausführungsform ist dadurch
gekennzeichnet, dass die erwähnten Mikroprozessor-Grossintegriertschaltkreise eine Kaskadengruppe von Mikroprozessoren vom Integrationsechaltung-Bitscheibentyp enthalten.
Eine andere Ausführungsform ist dadurch
gekennzeichnet, dass die erwähnte Mikroprozessoren in bipolare Xntegrationsschaltungstechnologie ausgeführt sind.
Nachstehend werden einige Eigenschaften
weiterer Ausführungseinzelheiten des elektronischen Datenverarbeitungssystems nach der Erfindung aufgeführt.
Eine derartige Ausführungsform ist dadurch
gekennzeichnet, dass das Datenverarbeitungssystem weiter eine Vielzahl adressierbarer Steuerregister in direkter Verbindung mit dem erwähnten Arbeitsbus enthält, um weitere Daten über den laufenden Vorgang zu speichern.
Eine andere Ausf'ühr-ungsform ist dadurch
gekennzeichnet, dass die erwähnten adressierbaren, im erwähnten Mikroprogrammspe:1 eher gespeicherten Mikrobefehle aus einer Vielzahl codierter Wertfelder bestehen, von denen
ein erstes Feld einen Wert enthält, der die Datenquelle der 35
Informationen zum Uebortragen über den erwähnten Arbeitsbus angibt, ein zweites Feld einen Wert enthält, der die Bestimmung der über den erwähnten Bus übertragenen Daten angibt,
909842/0770
17.3-79
und ein drittes Feld einen Wert, der die vom erwähnten Rechen- und Steuerwerk durchzuführende Operation angibt, enthält. ι
Eine weitere Ausführungsform ist dadurch
gekennzeichnet, dass das" Datenverarbeitungssystem ein Vorzeichen-Erweiterungsregister enthält, das zum Erhalten eines numerischen n-Bit~Werts aus dem erwähnten Arbeitsbus und zum Zurücksenden eines numerischen gleichwertigen n-Bit-Verts zum erwähnten Arbeitsbus angeschlossen ist. t · Eine weitere Ausführungsform ist dadurch
gekennzeichnet, dass das elektronische Datenverarbeitungssystem eine Vielzahl plan-paralleler Schaltkreisplatten, die je einen oder mehrere Funktionsteile des erwähnten Systems realisieren, einen einzigen Mehrdraht-Datenbtis zum
Verbinden der erwähnten Schaltkreisplatten miteinander, ein Zweiweg-Trnstate-Sende/Empfangsgerät auf einer jeden der Platten zum gegenseitigen Verbinden der darauf befindlichen Funktionsteile mit dem erwähnten Datenbus enthält, und dass ein erwähnter Mikroprogrammspeicher zum Speichern einer
Vielzahl adressiej/barer Mikrocodewörter vorgesehen ist, die je eine Unteroperation des erwähnten Systems spezifizieren und von denen wenigstens ausgewählte dieser Wörter ein SENDE-FeId zum Anschliessen einer ausgewählten Platte der erwähnten Schaltkreisplatten an den Datenbus als eine
Datenquelle und ein EMPFANGsfeld zum Anschliessen einer ausgewählten Platte der erwähnten Schaltkreisplatten an den erwähnten Bus als Datenziel enthalten.
Hinsichtlich weiterer Einzelheiten der
Anpassung des erfindungsgemässeii Zentralprozessors für
die Ausführung von Maschinensprachenbefehlen im Format des Universal-BefehlsYorrats ist der erwähnte Zentralprozessor dadurch gekennzeichnet, dass der laufende Befehl einen Achtbit-Operationscode und wenigstens ein Vierbit-
Mohrzwockregistor-Auswahlfeld enthält, und dass das Rechen-35
und Steuerwerk des Melirzwockregi.sters eine Breite von 32 Bits besitzt, die in den erwähnten Mikroprozessor-Grossschaltkreisen verwirklicht wird.
909842/0770
17·3·79 la' PHA.1030
Insbesondere ist dieser Zentralprozessor
dadurch gekennzeichnet, dass diese Mikroprozessor-Grossschaltkreise' eine Kombination von acht bipolaren, kaskadengeschalteten Vierbit-Integrationsschaltungs-Mikroprozessoren enthalten.
In dem für die Ausführung im Format des
Universal-Befehlsvorrats ausgedrücktes Maschinenbefehle angepassten Datenverarbeitungssystem werden die obengenannten Zentralprozessoren verwendet.
- Der Erfindung liegt weiter noch die Aufgabe zugrunde, eine besonders wirksame Betriebsumgebung für virtuelle Adressierung zu schaffen»
Ein Datcnverarbeitungssystem nach obiger
Beschreibung und zur Realisierung einer Betriebsumgebung 15
zur virtuellen Adressierung angepasst, in welcher Umgebung Daten und Befehle durch physikalische Adresswerte an Stellen des Arbeitsspeichers für direkten Zugriff gespeichert und die erwähnten Arbeitsspeicherstellen durch logische
Adressenwerte im Zentralprozessor spezifiziert werden, wel— 20
ches System eine dynamische Adressübersetzungseinheit zwischen dem erwähnten Zentralprozessor und dem erwähnten Arbeitsspeicher zum Umsetzen der erwähnten logischen Adresswerte in entsprechende physikalische Adresswerte mit Hilfe
einer Tabellensuchoperation enthält, ist dadurch gekenn-25
zeichnet, dass zur Umgehung der erwähnten Tabellensuchoperation für eine begrenzte Anzahl bereits früher übersetzter logischer Adresswerte darin in der Kombination enthalten ist
ein Adressumsetzungsspeicher, der aus einem direkt 30
adressierbaren Speicher für direkten Zugriff zum Speichern eines Tabelleneintrags bei einer jeden der 2 , von einer n-Bit-Pufferspeicheradresse spezifizierten Stel3.en besteht, welcher Tabelleneintrag ein physikalisches Adressfeld und
ein logisches Teiladressfeld enthält, 35
Mittel zur Bildung der erwähnten n-Bit-Pufferspeicheradresse aus einem ersten Teil eines logischen Adresswerts aus dem erwähnten Zentralprozessor für die Adressie-
909842/0770
17.3-79 3& PHA.Ί036
rung eines ausgewählten Tabelleneintrags,
Mittel zum Vergleichen eines zweiten Teils des erwähnten logischen Adresswerts mit dem erwähnten logischen Teiladressfeld im erwähnten ausgewählten Tabelleneintrag, und
Mittel zur Bildung eines physikalischen Adresswerts aus der Kombination eines dritten Teiles des erwähnten logischen Adresswerts und des erwähnten physikalischen Adressfelds im erwähnten ausgewählten Tabelleneintrag.
, Eine weitere Eigenschaft dieses Datenverarbeitungssystems in der Betriebsumgebung zur virtuellen Adressierung ist dadurch gekennzeichnet, dass der logische Adresswert ein Binärwert ist, der höchste, mittlere und niedrigste Bitstellen hat, die den erwähnten zweiten, ersten bzw. dritten Teilen entsprechen.
Noch eine andere Ausführung des Datenver-
arbeitungssystems nach der Erfindung, angepasst für virtuelle Adressierung und mit einem Arbeitsspeicher zum Speichern von Daten und Befehlen an von physikalischen Adresswerten
spezifizierten Stellen, einem Zentralprozessor zum aufeinanderfolgenden Durchführen einer Vielzahl von Anwender-Ιτο-graminen, die je Befehle enthalten, in denen Arbeitsspeichersteilen durch logische Adresswerte spezifiziert sind, Mikro— programmspeichermitteln im erwähnten Zentralprozessor zum
Speichern eines Inhaltsverzeichnis-Anfangswerts, der die Arberi tsspeä cherstelle einer Inhaltsverzeichnis-Datenstruktur spezifiziert, die die logischen Adresswerte des laufenden Anwender-Programms auf entsprechende physikalische Adresswerte bezieht, und mit einer dynamischen Adressüber-
Setzungseinheit zum Umsetzen der erwähnten logischen Adresswerte in physikalische Adresswerte mit Hilfe einer Nachschlagoper-ation unter Zuhilfenahme des erwähnten Anfangswerts, ist erfindungsgemäss dadurch gekennzeichnet, dass es
zum Umgehen der erwähnten Tabollensuchoperation für eine 30
begrenzte Anzahl bereits früher übersetzter logischer Adresswerte folgende Elemente enthält
ein Anwender-Treiinspeicherregister,
909842/0770
17-3.79 rf PHA.1036
einen Anfangswert-Stapelspeicher zxiin Speichern von Anfangswerten, die zu vom erwähnten Zentralprozessor bereits früher durchgeführten Anwender-Programmen gehören, wobei ein jeder der erwähnten Anfangswerte im erwähnten Anfangswert-Stape3.speich.er an einer Stelle gespeichert wird, die von einem im erwähnten Trennspeicherregister gespeicherten Zeigerwert spezifiziert wird,
Mittel zum Ansprechen auf eine Aenderung im Inhalt des erwähnten Mikroprogrammspeichermittels zum Abändern des erwähnten Zeigerwerts, um den erwähnten Stapelspeicher nach einem bereits früher gespeicherten Inhaltsverzeichnis-Anfangswert gleichwertig dem im erwähnten Mikroprogrammspeicher augenblicklich vorliegenden Anfangswert abzufragen,
einen Adressumsetzungsspeicher, der aus einem direkt adressierbaren Speichel· für direkten Zugriff zum Speichern eines Tabelleneintrags an von einer Pufferspeicheradresse spezifizierten Stellen besteht, wobei ein jeder der erwähnten Tabelleneinträge ein logisches Teiladressfeld sowie ein physikalisches Adressfeld enthält, Mittel zur Bildung der erwähnten Pufferspelcher-
* adresse aus der" Kombination eines ausgewählten Teils des logischen Adresswerts des laufenden Anwender-Programms und des erwähnten Zeigerwerts für den Zugriff auf einen ausgewählten Tabelleneintrag,
^5 Mittel zum Vergleichen des logischen Teiladressfelds des erwähnten, ausgewählten Tabelleneintrags mit den höchsten Bits im erwähnten logischen Adresswert, und
Mittel zum Erzeugen eines physikalischen Adress— werts aus der Kombination der niedrigsten Bits im erwähnten 3" logischen Adresswert und dem physikalischen Adressfeld des erwähnten ausgewählten Tabelleneintrags. .
Diese Eigenschaften und Vorteile der Erfindung worden an Hand der Zeichnung näher erläutert.
BESCHREIBUNG, DER AlTSFCTDHTliraGSBEISPIEI^
Diese und andere 3ügenschäften und Vorteile der vorliegenden Erfindung werden für ein besseres Verständnis in der detaillierten Beschreibung weiter unten
9G9842/Q77G
17-3-79 >6 PHA.1036
erläutert. Es zeigen
Fig. 1 ein Blockschaltbild der grundsätzlichen Funktionsbauteile eines Zentralprozessors nach der Erfindung,
Fig. 2 das Format der sechs Grundtypen von Befehlen, die im bestehenden Befehlsvorrat verwendet werden,
Fig. 3 einen Entwurfsplan für die Datenfelder, aus denen das Programmstatuswort aufgebaut wird, wie es in der BC-Betriebsart benutzt wird,
Fig. k einen Feldentwurf des PSW in der EC-Betriebsart,
Fig. 5 ein Blockschaltbild mit den Haupt—
elementen eines verfügbaren TTL-Mikroprozessorachnittenchips, der zum Instrumentieren des Rechen- und Steuerwerks sowie der Mehrzweckregisterfunktionon dient, die vom bestehenden Befehlsvorrat erfordert werden,
Fig. 6 die gegenseitige Verbindung von
acht Mikroprozessorschnitten vom Typ nach Fig. 5 zur BiI-
dung einer Einheit mit einer Kapazität von 32 Bits,
Fig. 7 ein Blockschaltbild mit den wichtigsten Eigenschaften der Kombinationseinheit, bestehend aus Rechen- und Steuerwerk, Mehrzweckregister und Quotientenregister,
Fig. 8 ein Blockschaltbild mit den wichtigsten Funkt ions element en des MikroprograimTi-Logikbausteins 5h nach Fig. 1,
Fig. 9 weitere Einzelheiten der Teile des
Flagstatus-Logikbausteins I68 nach Fig. 8,
Fig. 10 den Feideutwurf eines einzigen
Mikrobefehls aus dem Mikroprogramm-Festwertspeicher 50 nach Fig. 1 und 8,
Fig. 11 eine schematische Darstellung dos
Zusammenhangs zwischen den Schaltkrcisplatten, der Mutter-35
platte und den Tristate-Sende/Einpfangsbus-Isolationseinrich-·
aktiviert von Mikrobefehlscodes, in der Perspektive, Fig. 12 ein Blockschaltbild, das darstellt,
909842/0770
17.3-79 yf PHa.1036
auf welche ¥eise die Anwesenheit von Ungleich-NuIl-Basis- und Indexregisteradresswerten Mikroroutine-Verzweigung steuert,
Fig. 13 ein Blockschaltbild zur Yeransch.aulichung von Statusbus- und Befehlsausführungsanzeigeverarbeitung,
Fig. lh ein Blockschaltbild der Unterbrechungsbehandlungstechnik,
Fig. 15 ein Blockschaltbild zur Darstel-
< lung der wichtigsten Eigenschaften der dynamischen Adressübersetzungseinheit zwr Realisierung virtueller Adressierungsoperationen.
ALLGEMEINE BESCHREIBUNG
In Fig. 1 ist in Blockschaltbild die
Grundkonfiguration eines Zentralprozessors und eines Arbeitsspeichers dargestellt, die nach, den Grundsätzen der Ex-findung betrieben werden. Ins Zentralprozessor erfolgen im wesentlichen sämtliche Daten- und BefehlsÜbertragungen zwischen Funktionsbauteilen des Systems auf einer einzigen
Daten-Vielfaeinleitung, dem Zentralprozessor-Arbeitsbus Es werden mit Hilfe eines dynamischen Adressübersetzungseinheit 14 Daten zwischen dem Zentralprozessorbus 10 und einem Arbeitsspeicherbus 12 ausgetauscht. Daten und Befehle werden in Speichermoduln 16 durch eine Speichersteuerein-
hext 18 gespeichert und daraus abgegriffen, welche Einheit auch Zugriff auf eine Sicherungsschlüssel-Speichereinheit 20 hat.
Befehle werden zur Ausführung vom Speicher über den Speicherbus 12 und den Zentralprozessorbus 30
auf ein Befehlsregister 22 übertragen. Wie weiter unten
näher erläutert wird, enthält ein Befehl einen Operationscode ("op code"), dor angibt, vreIcher der vielen möglichen Befehlstypen im Befehlsvorrat ausgeführt werden muss. Ausserde in kann der im Register 22 gespeicherte Befehl die Kennung 35
(Adresse) eines oder mehrerer· Mehrzweckregister enthalten, die während der Ausführung des Befehls verwendet werden müssen. Diese Mehrzweckregisteradressen gelangen direkt
909842/0770
17-3-79 PHA.1036
vom Befehlsregister zu einer Kombination 2k eines Rechen- und Steuerwerks, eines Mehrzweckregisters und eines Quotientenregisters über den A-Adressbus 26 und den B-Adressbus 27· Es erreichen auch Daten die Einheit 2k aus dem Zentralprozessorbus 10 über ein Datenregister (Verriegelung) 30, während Ausgabedaten aus der Einheit 2k über den ALU-Ausgabebus 32 zum Arbeitsbus 10 zurückgesandt werden.
Andere Funktionseinheiten, die zum Ausführen von Befehlen im Befehlsvorrat selektiv verwendet ^ werden und mit dem übrigen Teil des Systems mit Hilfe des Zentalprozessorbusses 10 in Verbindung stehen, enthalten
ein Vorzeichen-Erweiterungsregister 3k zum Durchschieben des (an der bedeutsamsten Stelle vorhandenen) Vorzeichenbits eines Halbworts durch die bedeutsameren Bitstellen, wenn ein Halbwort zu einem Wort erweitert wird,
einen Zwischenspeicher 36 mit einer Kapazität von 6k Wörtern an Betriebsregisterstellen, die auf nachstehend zu beschreibende Weise durch Mikrobefehlscode adressierbar sind,
eine Systemzeiteinheit 38 mit einem Uhrseitgeber,
einem Zentralprozessor-Taktgeber und einem Uhrzeitkoinparotor, deren Zugriff durch ausgewählte Befehle im Befehlsvorrat möglich 1st,
eine Einheit 39 mit Frontplattenadress- und Datenindicatorregistern,
ein Dezimal- und Gleitkomma-Rechenwerk ^O zum Durchführen arithmetischer Funktionen an numerischen Daten, die in gepacktem Dezimal- oder Gleitkomma-Format ausgedrückt sind. (Das bereits früher erwähnte, in der Einheit 2k ent-
haltene Rechen- und Steuerweirk führt binäre, arithmetische und logische Festkomma-Operationen aus),
ein Programmstatuswortregisterpaar k2 und kk, die zusammen das 6k Bits lange Programmstatuswort (PSW) festhalten, das, wie noch erläutert wird, Felder enthält, die 35
während der Ausführung von Befehlen des Befehlsvorrats einzeln bearbeitet werden.
eine Gruppe von bis ku I6 Steuerregistern k6, die
8098A2/0770
17.3-79 yf PHA.1036
faktisch, eine Erweiterung des Programmstatusworts darstellen. Diese Steuerregister sind durch Mikrobefehlscode und durch gewisse privilegierte Befehle im Befehlsvorrat adressierbar und
^ ein Aufbereitungsregister 47, das unter Mikrobefehlscodesteuerung dazu benutzt wird, Felder in einem Wort nach Bedarf auszublenden, neuzuordnen, und auf andere ¥eise zu bearbeiten und aufzubereiten.
Im allgemeinen betrügt die Zugriffsbreite
aller obengenannten Funktionseinheiten ein ¥ort (32 Bits) sowie die Zugriffsbreite des Arbeitsspeicherbusses 12 und des Zentralprozessorbusses 10. Also, wie bei der Erfindung davon ausgegangen wird, erfolgen im wesentlichen alle Daten- und Befehlsübertragungen mit einem ¥ort zugleich. Auch wird im allgemeinen zu jeder beliebigen Zeit, wenn am Zentralprozessurbus 10 eine Datenübertragung erfolgt, nur eine der Funktionseinheiten mit dem Bus 10 als Sender oder Quelle und nur eine der Einheiten mit dem Bus als Empfänger oder Datenziel verbunden. Die Aktivierung einer be-
stimmten Funktionseinheit als Quelle oder als Datenziel erfolgt gemäss nachfolgender Beschreibung durch Mikrobofehlscode aus einer adressierten Stelle in einem Mikroprogramm-Festwert speicher (crom) 50.
Der Mikroprogrammspeicher 50 erhält
Adressinformationen über den CROM-Adrossbus 52 aus dem Mikroprogramm-Steuerwerk 5^· Im Betrieb erhält das Mikroprogrammsteuerwerk 5^· die Adresse des ersten auszuführenden Mikrobefehls aus einem Festwertspeicher 55 für die Erstwertadresse (FWA), dessen Eingang mit dem Operationscodefeld
des Befehlsregisters 22 verbunden ist und der die Adresse
des ersten atis zufuhr end en Mikrobef elils über einen Zweigadressbus 5O dem Mikroprogramm-Steuerwerk 5 h zuführt. Das Mikroprogramm-Steuerwerk $k erzeugt anschliessend die gewünschte Folge von CROM-Adressen über den Bus 52 zum Mdkro-35
Programmspeicher 50, um die für die Ausführtmg dos Befehls im Befehlsregister 22 benötigte Folge von Mikrobefnhl.seode zu erzeugen.
Jedes Mikrobefehlscodowort aus dem Mikro-
9098A2/0770
17.3-79 ^ PHA.1036
Programmspeicher 50 lässt sich, in neun einzelne Felder gemäss Fig. 1 verteilen:
(1) Steuerbits des Mikroprogramm-Steuerwerks, die über den Bus 75 auf das Mikroprogramm-Steuerwerk 5k übertragen werden und im wesentlichen als den Befehlscodeteil eines MCU-Befehls dienen, der weiter noch enthält:
(2) Zweigadressbits, die vom Mikroprogrammspeicher 50 über den Zweigadressbus 56 dem MCU 5k zugeführt werden. Das Zweigadressfeld eines Mikrobefehlscodeworts kann auch als ein Literal direkt aus dem Mikroprogrammspeicher 50 über einen Literalbus 58 auf den Zentralprozessorbus übertragen werden. Auch kann die dem MCTJ $k über den Bus 56 zugeführte Byte-Adresse eine indirekte Adresse sein, die aus der Summe eines Grundwerts aus dem Mikroprogrammspeicher 50 und eines Distanzwerts (displacement value) aus dem Zentralprozessorbus 10 besteht, Xtfelche zwei Werte in einem Gruuddistanzaddicrer 60 kombiniert werden,
(3) ALU-Stetiorbits, die über den Bus 62 auf die Einheit 2k übertragen werden. Die ALU--Steuerbits enthalten einen Operationscode, der die ALU-Einhoit 2k dazu aktiviert, aus mehreren möglichen Operationen eine ausgewählte Operation durchzuführen, und zusätzliche Bits, die den Leitweg von Informationen in der Einheit; 2k steuern,
(k) ein Fünfbit-F-(FROM)-FeId zu einem Decoder 67,
um aus 31 Signalleitungen eine ausgewählte Leitung zu aktivieren, welche Signalleitungen alle dazu dienen, je eine der Funktionseinheiten, die mit dem Zontralprozessorbus 10 als Sender oder Quelle verbunden sind, freizugeben,
(5) ein Fünfbit-L-(LOAD)-FeId zu einein Decoder 67
zum Freigeben einer der 31 möglichen Einrichtungen als Empfänger oder Datenziel für Daten am Zontralprozessorbus 10,
(6) fünf Universal-Mikrobitfelder (AjZ), B0, C0, D0 und K0, die mit dem Decoder 67 verbunden sind, um zusätzliche Quollen- und Dateuziol-ZugrlffsleiLungen (in einigeα
Fällen redundant mit den vom F-FoId und vom L-FeId aktivierten) sowie zahlreiche verschiedene, veiter unten zu erläuternde Funktionsstouerloitungea zu aktivieren,
909842/0770
17.3-79 "^I PHA.103ό
(7) Mehrzweckregister-Adressleitungen 66 zum direk-■ ten Adressieren ausgewählter Mehrzweckregister in der ALU-Einheit Zh vom Mikrobefehlscode, und
(8) Allgemeinadress-Mikrobits über die Adressleitungen 70 und zum Adressieren u.a. eines ausgewählten Betriebsregisters der 6h Betriebsregister 2,6 oder eines ausgewählten Steuerregisters der 16 Steuerregister 46.
Zur Vervollständigung der Beschreibung der Fig. 1 sei schliesslich noch bemerkt, dass das Mikroprogramm-Steuer- \ werk 5h in der Einheit 2^ erzeugte und dem MCU-Statusbus
zugelieferte Statusinformationen erhält und darauf anspricht, welcher Statusbus weiter noch zusätzliche Maschinenstatusinf ormationen über die Stafrus'leit-ungen 73 erhält (insbesondere Unterbrechungen in der Maschinenprüfung, die zum Beispiel durch die Detektion von Paritätsfehler verursacht werden, Unterbrechungen in der* Erograramprüfung durch formalfalsche Befehle oder Daten und Eingabe/Ausgabe-Unterbrechun-gen, die entstehen, wenn ein Kanal für eine Eingabe/Ausgabefunktion den Zentralprozessor anruft). Zusätzlich werden,
,
wenn die Einheit 24 logische Schiebeoperationen ausführen muss (z.B. bei Festkotntna-Binärmu3.tip3.ikation oder Festkonima-Binärdivision), Schiebesteuerinformationen über die Schiebesteuerleitungen 8.0 zwischen dem Mikroprogramm—Steuerwerk 5h und der Einheit Zh ausgetauscht.
DER BEFEHLSVORRAT
Das Befehlsregister 22 ist für den Anwender (Programmierer) das Schaufenster des Prozessors. Ein Computerprogramm ist ein im Arbeitsspeicher geschriebener Befehlsvorrat, dessen Befehle zur Ausführung seauentie3.1
abgegriffen und in das Befehlsi'egister geschrieben werden, obgleich die Ausführung nicht in der Speicherungsreihenfo3-~ ge vorgenommen zu werden braucht. Jeder Befehl hat ein Format, das aus mehreren Typen bestehen kann abhängig vom
Aufbau des Befehlsvorrats.
·
Der erfindungsgemasse Prozessor eignet
sich zur Ausführung eines jeden der Befehle im Universal-Bef ehlsvorrat, der von der IBM-S}'-steEi/370~Prozessorfamllie
909842/0770
17-3.79 &■ ΡΗΛ.1Ο36
ausführbar ist. In der folgenden Beschreibung wurde angenommen, dass der Leser eingehende Kenntnisse der Funktionskennzeichen 'des System/37O-Befehlsvorrats hat. Einige kurze Bemerkungen über den allgemeinen Aufbau dieses Befehlsvorrats wird nachstehend als Hintergrund gegeben und diese Bemerkungen können vom versierten Anwender dieses Befehlsvorrats übergangen werden. Ohne Erfahrungen empficlt es sich, einen der vielen zur Verfugung stehenden Texte über dieses Thema, beispielsweise Computer Organization and the System/370» von Harry Katzan Jr., Van Nostrand Reinhold (1971), durchzunehmen, der eine Einleitung in die Computer- und ProgrammierungswGlt sowie eine Einführung in den System/370-Befehlsvorrat für versierte Fachleute in der Computerwissenschaft enthält. Für eine umfassende Beschreibung und Begriffsbestimmung der Attribute des System/370-Befehlsvorrats sei auf die Veröffentlichung IBM System/3,7O1 Principles of Operation, Form GA22-7000, IBM Corporation, verwiesen.
Es gibt im Befehlsvorrat verschiedene
Befehlstypen mit je einem eigenen einzigartigen Format. Die sechs Maschinenbefehlsformate sind in Fig. 2 der Zeichnung dai-gestellt.
"Wie aus Fig. 2 ersichtlich, können Befehle
2, h oder 6 Bj^tes lang sein. Befehle im RR-Format (RR =
· N
Register-RegisterJ haben eine Länge von 2 Bytes. Wie auch die anderen Befehlstypen enthält das erste Byte eines RR-Befehls einen 8-Bit-Operatioiiscode. Das zweite Byte enthält die Adresse zweier Mehrzweckregisteroperanden. Jede 4-Bit-Operanden.adresse ist zur Spezifizierung eines der
16 adressierbareti Mehr zweckregist er geeignet. Diese Register sind also "sichtbar" für den Programmierer, der sie zum Bearbeiten von Daten als Zwischeiispeicherungselement verwenden kann.
Ein einfaches Beispiel eines Befehls im 35
RR-Format ist der "Add register "-Befehl, der den mnemoriischen Namen AR führt. (Derartige mnemotechnische Bezeichnungen werden in der· Assemblersprache benutzt, weil man sich
909842/0770
17.3-79 ' PHA.1036
diese leichter erinnert als den aktuellen 8-Bit-Binäroperationscode, der beim AR-Befehl das Byte ist, dessen ¥ert sedezimal mit 1A be2seich.net wird. Bei der Zusammensetzung werden derartige mnemotechnische Codes in die äquivalente
^ bina're Maschinensprachen-Operationscodes übersetzt.)
Entsprechend den für den Befehlsvorrat
erforderlichen Funktionskennzeichen erwartet der Programmierer folgendes, wenn der "Add register"-Befehl ausgeführt wird: Der Inhalt des R1~Registers (dessen Adresse an Bitstel-
- len 8 bis 11 des Befehls gegeben ist) muss dem Inhalt des R2-Registers zugefügt werden (dessen Adresse durch Bitstellen 12 bis 15 des Befehls gegeben ist), und die Summe muss in das Register Ri unter Ersatz des ursprünglichen Inhalts des R1-Registers geschrieben werden. Ausserdem setzt die Ausführung des AR-Befehls auch eine Zweibit-Befehlsausführungsanzeige (an Bitstellen 3k und 35 des Programmstatus-Wortregistera kk nach Fig. 1, siehe weiter Fig 3 "CC"), um anzugeben, ob das Ergebnis der Addierung gleich Null, kleiner als Null oder grosser aiii Null war* Weiterhin ist bei
dex" Ausführung eines Addierregisterbef'ehls die Möglichkeit eines Festkommaüberlaufs zu berücksichtigen. Das bedeutet dass beim Ueberschreiten der 32-Bit-Kapazität des Empfangs-registers durch die Summe die bedeutsamsten Bitstellen des Ergebnisses verloren gehen und ein. Programm "Unterbrechung"
.
erscheinen muss.
Nebenbei sei liier bemerkt, dass oine "Unterbrechung" im wesentlichen eine automatische Verzweigung zu einer neuen Befehlsfolge darstellt. Diese inaschinenbe-
dingte Verzweigung wird, wie nachstehend näher erläutert, 30
dadurch vervollständigt, dass zunächst bestimmte Statusinformationen in das Programmstatuswort (PSW) für den unterbrochenen Vorgang eingeführt, dieses "alte PSIi" in den Arbeitsspeicher geschrieben und ein "neues PSW" aus dem
Speicher für eine Unterbrecljungsbehanrllungsroutine c?ingege-35
ben ν?erden. Das neue Programmstatuswort enthält die Adresse des ersten Befehls der Unterbreclmngsbohandluiigsf olgc. Also wo die automatische Bedingung der Verzweigung eine Uardwaro-
909842/0770
17-3-79 ' P^ PHA.1036
Funktion ist, stellt die aktuelle Behandlung der Unterbrechung eine Software-Punktion dar, d.h. die Unterbrechungsbehandlung wird durch ein in den Arbeitsspeicher geschriebenes Systemprogramm ergänzt. Die Steuerung kann durch Neueinschreiben des alten Programmstatusworts in das PS¥-Register (unter Verwendung des LPSW-Befehls, der kurz beschrieben, wird) zum unterbrochenen Programm zurückgegeben werden.
Zurück zur Beschreibung der Befehlsvorratformate: der zweite Befehlstyp nach Fig. 2 ist der RX-Befehl (RX = Register- und Indizierungsspeicherung). Der Operationscode des RX-Befehls belegt das erste Byte; der erste Operand ist ein Register, dessen Adresse durch Bits 8 bis 11 gegeben wird, und der zweite Operand ist eine Stelle im Arbeitsspeicher, deren Adresse durch die Summe der Inhalte zweier
Mehrzweclcregister X2 und B2 und dos numerischen, mit Distanz bezeichneten Werts D2 gegeben und an den Bitstellen bis 31 enthalten ist. Das Mehrzweckregister X2 ist durch Bits 12 bis 15 spezifiziert und dient als ein Indexregister!.-, w£!hrend das von den Bitstellen 15 bis 19 spezifizierte
Register B2 als ein Grundregister verwendet wird. Befehle im RX-Format erlauben somit ArbeitsspeicherZugriffe über zwei Indiziorungspegol.
Ein Beispiel eines RX-Befehls aus dem
Befehlsvorrat ist der "Lade Halbwort"-Befehl, der mnemo-
technisch mit LH bezeichnet wird. Der im ersten Byte des LH-Befehls angeordnete Operationscode ist eine ssdezimale 48.
Entsprechend den Spezifikationen des
Befehlsvorrats ist der nächste Vorgang die Ausführung eines
, ·ν
"Lade Halbwort"-Befehls: Der Inhalt des Halbworts (2 Bytes) im Speicher, dessen ganz linke Adresse durch die Summe doH Inhalts des X2-Inde>:registers, des Inhalts des B2-Grundregisters und der Distanz D2 spezifiziert ist, muss in die
Bitstelion 16 bis 31 dos Registers R1 eingegeben und die 35
Bitstellen 0 bis 15 dos Registers R1 müssen mit dem VorzeichenbitwerI (Bitstolle θ) des Ilalbworts aus dem Arbeitsspeicher gefüllt worden. (Wie weiter unten beschrieben,
909842/0770
.17-3 «79 · PHA. 1036
erfolgt die Ergänzung der Eingabe in die Bits 0 bis 15 unter Mikrobefehlscodesteuerung unter Verwendung des in Fig. 1 dargestellten Vorzeichen-Erweiterungsregisters 3h), Obgleich bei der Ausführung eines LH-Befehls keine Befehlsausführungsanzeige gesetzt wird, ist die Möglichkeit von Unterbrechungen bei der Adressierung, beim Schutz und bei der Spezifikation zu berücksichtigen.
Das dritte Befehlsformat nach Fig. 2 ist
das des RS-Befebls (RS = Register- und Sj)eicherungsoperav tion). Mit diesem RS-Format werden zwei Mehrzweckregisteroperanden R1 und R3 identifiziert und es wird ein einziger Arbeitsspeicheroperand, identifiziert, der nur durch Grundadresse und !Distanz identifiziert wird.
Der "Store Multiple"-Befehl STM (Opera-
tionscode-Sedezimale 9θ) ist ein Beispiel eines Befehls im RS-Format. Entsprechend den Spezifikationen des Befehlsvorrats wird der "store multiple"-Befehl wie folgt ausgeführt ϊ Die Inhalte einer Mehrzweckregisterreihe, von denen
das erste das Register R1 und das letzte das Register R3 20
ist, wird in den Arbeitsspeicher geschrieben, wobei mit dem
Byte angefangen wird, dessen Adresse durch die Summe des Inhalts des Grundregisters B2 und der Distanz D2 angegeben wird. Es ist keine Befehlsausführungsanzeigeliste erforderlich. Jedoch ist zu berücksichtigen, dass Schutz-, Adres-25
sierungs- oder Spezifikationsunterbrechungen auftreten können.
Das vierte Befehlsformat wird für unmittelbare Daten- und Speicheroperation benutzt und mit SI-Befehlstyp bezeichnet. Bits 8 bis 15 enthalten einen ~
Einbit-Direktdatenwert und. die Bits 16 bis 31 dienen zum Anzeigen einer Grundregisteradresse und einer Distanz, die zux- Identifizierung- eines Arbeitsspeicheroperanden kombiniert werden. Der "Load Program Status ¥ord"-Befehl (LPS¥~
Befehl) ist ein Beispiel. Bei der Ausführung des LPSW-35
Befehls wird der Inhalt des Doppelworts (8 Bytes), dessen Anfangsadresse vom Spelcheroperariden spezifiziert wird, in das Programmstatuswortregister geschrieben (das den
909842/0770
17.3.79 ^ PHA.. 1036
Effekt hat, als würde auch eine neue Befehlsausführungsanzeige geschrieben). Der LPS¥-Befehl ist privilegiert, d.h. er kann niclit ausgeführt werden, oder es müsste der Prozessor im Supervisorzustand betrieben werden. Daher müsste eine Programmunterbrechung auftreten, wenn dieser Befehl in das Befehlsregister geschrieben wird, wenn sich der Prozessor im Aufgabenzustarid befindet. Zusätzlich können Schutz-, Adressierungs- und Spezifikationsunterbrechungen während der Ausführung des LPSW-Befehls auftreten. Der fünfte Befehlstyp nach Fig. 2 besitzt das SS-Format (SS =; Speicherung zu Speicherung). Bitstellen 16 bis h"/ identifizieren zwei Arbeitsspeicheroperanden durch Grundregister und Distanz. Bitstellen 8 bis 15 spezifizieren einen oder zwei FeIdlängenwerte. Ein Beispiel eines SS-Formatbefehls ist der "move numerics "-Befehl (MVN-Bef ehl) , der entsprechend den Spezifikationen des Befehlsvorrats den Inhalt eines Felds im Arbeitsspeicher, dessen ganz linkes Byte durch die zweite Operandenadresse (B2 und D2) identifiziert wird und L Bytes lang ist, zu einer anderen
Arbeitsspeicheradresse weiterschiebt, die durch den ersten Operanden (BI und Di) gegeben ist. Nur die h ganz rechts befindlichen Bits in jedem Byte werden weitergeschoben.
Wie aus den erwähnten Beispielen ersichtlich ist, enthalten die Spezifikationen des Befehlsvorrats
eine vollständige und erschöpfende Begriffsbestimmung der Art und Weise, wie Informationen zwischen Speicherstellen bearbeitet werden, die für den Programmierer "sichtbar" sind. Diese sichtbaren Stellen umfassen neben dem adressierbaren Arbeitsspeicher und den sechzehn Mehrzweckregis-
tern das Programmstatuswort (PSW) (Register h'2, und kk in Fig. I), Steuerregister k6, die System-Zeitgeber 38 und die Schutzschlüsselspeichereinheit 20 (Anmerkung: Wenn der wissenschaftliche Befehlsvorrat zugefügt wird, verfügt der
Progranimiarer auch übe?:· vier Doppelwort-Gleitkomma-Regis-35
ter, dio in erweiterter Präzisionsardthmetik verwendet werden. Der Einfachheit haIbei" wird die Gleitkomma-Option hier nicht erwähnt.).
9 09842/0770
17-3-79 βΊ PHA.1035
Der Inhalt des Programmstatusworts steht
in engem Zusammenhang mit einer Anzahl der Hardware-Funktionen, die'weiter unten beschrieben werden. 64 Datenbits sind im PS¥ in einem oder zwei möglichen Fosrmaten angeord-
° net: Das erste wird für die Grundsteuerung (BC-Betriebsart) verwendet, die in der System/36O-Verarbeitung und in derartigen Modellen des Systems/370 Verwendung findet, die sich nicht mit Operationen für virtuelle Adressierung befassen. Das zweite Format wird für die Erweiterte Systemsteue-
v rung (EC-Betriebsart) in jenen Modellen des Systems/370 benutzt, die Operationen für virtuelle Adressierung ausführen. Fig. 3 und h stellen die PSW-Formate für die BC- bzw. die EC-Betriebsart dar. 'Die schraffierten Bits in Fig. h sind immer Null.
Bei der BC-Steuerung enthält das erste
Byte des PSWs die Systemmaske und kann mit dem "set system mask"-Befehl (SSM-Befehl) eingegeben werden. Die Systemmaske ermöglicht die Unterdrüokting von Unterbrechungen in Eingabe/Ausgabovorgängen, in externen Signalen und von
Unterbrechungsschlüssel- oder Zeitgeberunterbrechungen, diese Vorgänge stehen jedoch an - zunächst um vorangehende Unterbrechungen zu behandeln, wenn auch spätere Unterbrechnungen auftreten.
Gleicherweise lassen sich Maschinenprü-
fungsunterbrechungen vermeiden, wenn das M-Bit an der Stelle 13 im AMWP-FeId eine Null enthält. Ebenso im AMWP-FeId stellt die Bitstolle 12 den benutzten Code (EBCDIC oder ASCII) dar, die Bitstelle lh ist als das Wartebit bekannt und wird auf eine 1 gesetzt, wenn sich der Zentralprozes-,
/
sor in einem Wartezustand befindet (zum Beispiel wenn die Ausführung eines Kanalprogramins abgeschlossen wird). Die Bitstelle 15 gibt an, ob sich der Zentralprozessor im Aufgabonzustand (von einer Null dargestellt) oder im Nicht-
Supervisorzustand befindet. Es sei daran erinnert, dass 35
privilegd.erte Befehle nicht ausgeführt werden können, wenn sich der Prozessor im Aufgabenzustand befindet, ohne dass eine Unterbrechung· einer privilegierten Operation verur-
909842/0770
17.3-79 >β km.. 1036
3* 2913Α92
sacht wird.
Die Bitstellen 8 bis 11 des Programmstatusworts sind ein im Zusammenhang mit Speicherschutz benutztes Speicherschlüsselfeld. Der Arbeitsspeicher teilt sich in 2.048 Byteblöcke und jedem Block ist ein Fmifbit-Speicherschlüssel zugeordnet. Die vier ganz linken Bits des Schlüssels stellen eine Schutzschlüsselnummer dar. Die Speicherschlüssel werden in den Schutzschlüsselspeicher 20 nach Fig. 1 geschrieben. Wenn der Versuch angestellt wird,
1" auf Informationen in einem gegebenen Block zuzugreifen, wird der gespeicherte Schutzschlüssel mit dem an den Bit~ stellen 8 bis 11 des PSWs befindlichen Vierbit-Schutzschlüsselfeld verglichen. Datenspeicherung oder Datenübertragung ist erlaubt, wenn die zwei Schlüssel gleich sind, oder der Inhalt des Schutzschlüssels im laufenden PSW aus Nullen besteht. Sonst entsteht eine Schutzunterbrechung.
Die Bitstellen 16 bis 31 do's PSWs sind für die Speicherung eines Unterbrecliungscodes belegt, der automatisch durch Hardware in das PSW des unterbrochenen
Vorgangs eingegeben wird, um Informationen zum Identifizieren der Unterbrechungsart auf Unterbrechungsbehandlungsroutinen zu übertragen (und in der Wahl dieser Routinen teilzunehmen). (Man soll nicht vergessen, dass eine Unterbrechung im wesentlichen eine automatische Verzweigung zu \
einer neuen Befehlsfolge ist.)
Die Bits 32 und 33 des PSWs enthalten
die Länge des Befehls ILC, der die Unterbrechung ausgelöst hat, ausgedrückt in Halbwörtern.
Die Bits 3k und 35 des PSWs enthalten die Befehlsausführungsanzeige CC (bereits früher erwähnt).
Die Bitstellen 36 bis 39 des PSWs enthalten das Prograniraaskenf eld, das zum Unterdrücken durch Fostkomma-üborlauf, Dezimalüberlauf, Exponentenüberlauf und Bedeutsarnkt'itsausnalinion ausgelöster Programmunterbre—
chungen dient. Der Programmiere*' kanu die Progranimaskenbits mit dem nicht privilegierten Befehl "set program mask" (SPM-Böfehl) setzen«
909842/0770
17-3.79 2$ PHA.1036
Schliesslich enthalten die Bitstellen 40
bis 63 des PSWs die 24-Bit-Adresse des folgenden auszuführenden Befehls.
Bei der EC-Steuerung unterscheidet sich der PSW-Entwurf von dem bei der BC-Steuerung benutzten. Die grundsätzlichen Unterschiede sind
(1) die Befehlsausführungsanzeige CC verlagert sich zu den Bitstellen 18 und I9,
(2) der Unterbrechung-scode und der ILC verlagern sich zu vorgegebenen Stellen im Arbeitsspeicher und werden durch System-Software adressiert,
(3) die Systemmaske wird entfernt und an vorgegebenen Stellen in den Steuerregistern angebracht,
(h) es wird in die Position 2) ein Programmereignis-· 1^ registrierungsmaskenbit (PER-Bit) eingegeben,
(5) in die Position 5 wird ein Uebersetzungssteuerbit (TCB-Bit) eingegeben.
Das Uebersetzungssteuerbit aktiviert die
dynamische Adressübersetzungseinheit (DAT-Einheit 14 in ^ Fig. 1), die virtuelle Segment/Seiten/Distanz-Adressen in absolu-te Arbeitsspeicheradressen umsetzt und die Eingabe von Daten aus dem Hintergrundspeicher für virtuelle Adressierung anfordert, wenn sich keine Zieldaten im Arbeitsspoicher befinden.
Die 16 Steuerregister, die bei 46 in
Pig. 1 angegeben sind, sind ebenfalls für den Programmierer sichtbar. Diese Register sind dem PSW bei der Steuerung des Systems behilflich, hauptsächlich für Ausblendfunktionen bei der EG-Steuerung. Die Steuerregister sind für den Pro-
grammierer nur in dem Sinne sichtbar, dass sie durch zwei privilegierte Befehle "load control" (LCTL-Befehl) und "store control" (STCTL-Befehl) eingegeben und gespeichert werden können. Die Steuearregister sind durch Aufgabenprogramme nicht diD^ekt adressierbar und sollen nicht mit den 16 Mehrzweckregistern, verwechselt werden.
.._ ISTSi)R UN-D DAS QlJ OTTENTEIyTREGI STER In dor vorangehenden Beschreibung des
909842/0770
17-3.79 yb PHA.1036
Standard-System/370-Befeh.lsvorrats wurden die Funktionseinheiten hervorgehoben, die für den Programmierer sichtbar sind. Jetzt wird der spezifischen Hardware nach der Erfindung für die Verarbeitung von Informationen, wie es vom g
Befehlsvorrat gefordert wird, Aufmerksamkeit gewidmet. An dieser Stelle sei erwähnt, dass, während der Befehlsvorrat erschöpfend spezifisch in der Begriffsbestimmung ist, was geschehen muss, wenn jeder Befehl ausgeführt wird (insofern es sich um die Inhalte der für den Programmierer sichtbaren
,.
Register handelt), die Spezifikationen des Befehlsvorrats nichts aussagen über und keine Rücksicht nehmen auf die Art und Weise der Ausführung jeder Funktion. Der Befehlsvorrat beschäftigt sich weder mit aktueller Hardware noch mit der
Natur eines Verfolgs von Operationen, die zum Erreichen 15
dez" gewünschten Funktion notwendig sind. Derartige Erwägungen we3?den durchaus dem Entwerfer des entsprechenden Prozessors überlassen und diese Prozessoren können stark verschieden sein, wenn sie auch identische Befehlsvorrate atis-
fuhren.
20
Für eine gute Leistungsfähigkeit muss
ein Prozessor insbesondere zur Verarbeitung jener Befehle angepasst werden, die am häufigsten auftreten. In der Praxis gehen zur Verfügung stehende Statistiken davon bxxs , dass
die normalerweise häufigst ausgeführten Befehle die mit den 25
RR- und RX-Formate sind, woraus die grosse Bedeutung wirksamer Verarbeitung von Daten zwischen den ALU- und den 16 Mehrzweckregistern hervorgeht.
Entsprechend der Haupteigenschaft der
vorliegenden Erfindung \irerden die vom Universal-Befehlsvor-30
rat geforderten ALTJ/Mehrzweckregister-Bearbeitungen durch eine ICaskadengruppe von Transistor-Transistor-Logik-LSIC™ Mikroprozoßsorscheibencliips durchgeführt. Eine Gruppe von acht derartiger Chips, die durch drei Uebertragvorgriffschaltungschips miteinander verbunden sind, vereinigt alle
Funktionen eines binären Festkomma-Rechen- und Steuerwerks, der 16 Mehrzweckregifiter und eines Hilf sakkumulators, genannt Quotientenregister.
909842/0770
17·3·79 Μ PIIA.. 1036
Ein Blockschaltbild der Mikroprozessorschnitte ist in Fig. 5 dargestellt, und Fig. 6 zeigt die gegenseitige Verbindung von acht derartiger Mikroprozessorchips mit Hilfe von drei Uebertragvorgriffschips. 5
Die spezifische Mikroprozessorschnitte
nach Fig. 5 ist das von Advanced Micro Devices Inc. auf den Markt gebrachte Model Am2901 einer Vierbit-Mikroprozessorschnitte. Der Uebertragvorgriffschip ist das vom selben Hersteller auf den Markt gebrachten Begleitniode.il Am2902. Für Einzelheiten über diese Anordnungen sei auf die Veröffentlichung Am2900 Bipolar Microprocessor Family, Advanced Micro Devices Inc., Sunnyvale, California verwiesen.
In Fig. 7 ist ein Blockschaltbild der
Kombinationseinheit 2k nach Fig. 1, bestehend aus Rechen-
und Steuerwerk, Mehrzweckregister und Quotientenregister, dargestellt, die mit dem Rest des Systems auf die nachstehend zu beschreibende ¥eise verbunden ist.
Wie bereits erwähnt, arbeitet die Einheit
2k unter der Steuerung von Mikrobits aus dem Mikroprogramm-. ,
Festwertspeicher (CROMj 50, die in Fig. 7 mit I„ - I„ und
C bezeichnet sind. Die Bits I„ - I„ steuern einen Selektor η 0 2
102. Der Selektor 102 beliefert das Rechen- und Steuerwerk ]0k mit R- und S-Operandenwerten. Die R- und S~¥erte werden wie folgt ausgewählt: Q, der Inhalt des Quotientenregisters; A, der Inhalt dieses Mehl1 zweckre gist er s, spezifiziert durch den ¥ert am A-Adressbus 26; B, der Inhalt dos Mehrzweckregisters, spezifiziert durch den ¥ert am B-Adressbus 27; und D, ein direkt avis dem Zentralprozessor-Arbeitsbus bezogener ¥ert. Die Auswahl erfolgt geraäss nachstehender Tabelle I.
909842/07 70
17.3.79
L I PHA.1036 2913492
L $* R
H Tabelle A S
■ζ H ίο A Q
L L L O B
L L H O Q
L H L O B
L . H H D A
H L D A
H H D Q
H L O
H H
Wenn es also zum Beispiel gewünscht ist,
den Inhalt des Quotientenregisters beim Wert am Zentralprozessorbus 10 zu addieren, wird den Mikrobits I_, I., bzw. Ip eine binäre 011 zugeführt.
Die Mikrobits I1,, I. und I„ wählen eine
der acht möglichen ALU-Punktionen, wie in der Tabelle II unten angegeben.
Tabelle II
20
L L L L
25 L Π
L H
II L H L H H
30 H H
Das Mikrobit C ist eine Uebertragsein-
gabeleifcung (siehe 121 in Fig. 6 und 7)> d±e bei der Aktivierung eine binare 1 box dem vom ALU 104 erzeugten Ergebnis F addiert.
R plus S
L .S minus R
II R minus S
L R oder S
II R und S
L R und S
II R exkl.- odor S
L R oxkl.- NOR S
H
Schliesslich gelangen die drei Mikrobits I,-, I" uj-td Ip zu einem ALU-Zioldocoder 10ö, dor den Datenleitweg gemäss nachstehender Tabelle steuert.
909842/0770
17.3.79
L8
PHA.1036
Tabelle III
Mehrzw.Reg. Quotien- Mehrzw. Q-Reg. Y aus
L L L L H H H H
L H H L L H H
Schieber . 110
L H L H — ~
L LINKS
H LINICS
L RECHTS
H RECHTS
tenschie- R.Quelle Quelle Quelle ber 112
F
F
LINKS
RECHTS
F F A F F F F F
Informationen aus dem Ausgang des ALU-Steuerwerks 104 können um ein But nach rechts, um ein Bit nach links geschoben werden, oder können ihre ursprüngliche Ausrichtung beibehalten, da sie in jenes dei? 16 Mehrzweckregister 108 geschrieben werden, das durch die Adresse am A-Adressbus 26 spezifiziert ist. Die Verschiebung wird durch den Schieber 110 und Zweirichtungs~Signa!leitungen F0 und F-.. ausgeführt, die angeschlossen sind, um ein aus dem Schieber 110 herausgeschobenes Bit aufzufangen, während ein neues Bit an die leere Stelle eingeschoben werden kann. Ein ähnlicher Schieber 112 ist zwischen dem Ausgang des ALU-Steuerwerks 10k und dem Quotientenregister 11^ angeschlossen. ¥ie weiter unten beschrieben, stehen die Signalleitungen F , F^1, Q- und Q-1 der verschobenen Bits in Verbindung mit dem Mikroprogramm-Steuerwerk 5'ί (Fig. 1 , über Leitung 8θ).
Das Rechen- und Steuerwerk 104 erzeugt
vier Statusbits C, N, V und Z, die über den Statusbus ?'2 zum Mikroprogramm-Steuerwerk $h weitergeleitet werden. Das C-Bit (auf der Leitung 122 in Fig. 6) ist eine 1, wenn der Uebertrag aus der höchsten Bitstelle erscheint. Das N-Bit ist eine 1, wenn das höchste Bit (Vorzeichenbit Fq1) eine 1 ist. Das V~Bit ist eine 1, wenn ein Ueberlauf auftritt, und das Z-Bit ist eine 1, wenn das ALU-Ergebnis gleich 0 ist.
909842/0770
17.3.79 P^ PIlA. 1036
MIKR OPROGRAMM-STEUERWERK
Vie bereits im Zusammenhang mit Fig. 1
der Zeichmiiig beschrieben, erzeugt das Mikroprogramm-Steuerwerk 5^j das mit weiteren Einzelheiten in Fig. dargestellt ist, eine Folge von Mikroprogrammspeicheradressen, die dem Mikroprogrammspeicher 50 zugeführt werden, der zusammen mit den ztigeordneten Decodern, die Steuersignale erzeugt, die zum sequentiellen Führen der Maschine durch eine Serie von Unteroperationen erforderlich sind, die die Ausführung des
^ Maschinenbefehls im Befehlsregister 22 verwirklichen. Das Mikroprogrammsteuerwerk selbst ist ein kleiner Prozessor, der sich zum Ausführen von acht verschiedenen Befehls typen eignet. Ein Dreibit-MCU-Operationscode, den der Mikroprogrammspeicher 50 erzeugt, gelangt (zusammen mit anderen Eingaben aus dem CROM 50) über die Signalleitung 132 zum MCU-Steuerlogik-Datenfeld I30. Die Operation des MCU lässt sich wahrscheinlich am besten durch die Einzelbeschreibung der acht MCU-Befehle erläutern:
Der -KEXT-Bef eh 1 (pktaI 0) . Der NEXT-Befehl veranlasst
das Mikroprograinmsteuerwerk zum Weitergehen zum nächsten Mikrobefehlspaar in der Folge. Mikrobefehlsadressen sind in ein Mikroprogrammspedclier-Adressregister (CRAR) 13^· geschrieben. Die unbedc.itsamste Bitstelle der Mikroprogramm-Speicheradresse wird einzeln in das LSB-Register I36 ge-
schrieben. Also ist die Adresse in CRAR 134 faktisch die Adresse eines Mikrobefehlspjaarjä, und die Bestimmung, welcher der beiden Befehls im Paar auszuführen ist, wird durch das Setzen des LSB~Registers I36 bestimmt. Bei der Ausführung eines NEXT-Befehls wird der in CRAR 13k gespeieher te Vert im Dur c Ii lauf /inkremen twerk 137 um eins erhöht und über einen Multiplexer (mUX) I38 mit zwei Eingängen zum CRAR 134 zurückgeführt,
Do:r COUNTER-Bef ehl bewirkt,
dass das Mjkroprogrammstotierwerk zum nächsten Mikrobefehls-
paar in der Folge weitergeht und auch einen ¥ert vom N-Bus 1^0 über einen. Multiplexer 1 ί|·2 mit zwei Eingängen in diesen Steuerzahler im Stapel "\k6 eingibt, der vorn Zeigerzähler ihk
909842/0770
17.3-79 yrf PIiA.. 1036
angezeigt wird. Der Zeigerzähler \hh zeigt auch ein Register innerhalb eines Subroutine-Stapelspeichers I50 an. Die Kombination;eines Einheitenaddierers 152 und eines Multiplexers 15^· mit zwei Eingängen ermöglicht unmittelbare Wahl entweder (i) des Registers, das vom Zähler 144 angezeigt wird, oder (2) des nächst höher numerierten Registers im' Stapel.
Der Zeigerzähler ikk zeigt sowohl im
Steuerzähler als auch im Subroutine-Stapel die Stelle 0 an. Bei jedem Anruf einer Subroutine wird der Zeigerzähler erhöht und die laufenden Ferte für die Anrufroutine werden im Stapel festgehalten. ¥enn eine Rückkehr von einer Subroutine erfolgt, wird der Zeigerzähler ikk erniedrigt. Wenn der Zeigerzähler ~\hh ein Vierbit-Zähler ist und die Stapel
146 und 150 eine Tiefe von 16 Registern haben, können 16 Subroutinenstufen verarbeitet werden.
Die Steuerzähler im Stapel ih6 haben eine
Länge von acht Bits, wodurch Zählergebnisse bis zu 256 gespeichert werden können.
, .
P_er_ LpOP-Bef ehl (Qlcta 1 2) . Der LOOP-Befehl ist dem
"branch on count"-Befehl (BOT) der Assemblersprache analog. Der LOOP-Befehl bewirkt, dass das Mikroprogrammsteuerwerk auf eine Zweigadresse übergeht, wenn der laufende ¥eri; im
Steuerzähler ungleich O ist. 1st der ¥ert im Zeigerzähler 25
gleich O, sorgt der LOOP-Befehl dafür, dass das Mikroprogrammsteuerwerk zum folgenden Mikrobefehlspaar in der Folge weitergeht. Bei jeder Ausführung eines LOOP-Befehls wird die Steuerzählung erniedrigte Die Zweigadresse, auf die
übergegi-iffen wird, erscheint direkt in der laufenden. Mikro-30
Code-Ausgabe, dio am N-Bus 14O erscheint.
Es ist die Aufgabe des MCU-Steuerlogik-
Datenfeld I30, die benötigton Signale zum Ausführen jeden Mikrobefehls zu erzeugen. Zum Beispiel gibt der Multiplexer or 138 in Beantwortung eines LOOP-Bofehls-Operationscodes auf der Signalleitung 132 und in Beantwortung eitler Anzeige aus dem Komparator 155, dass der Stouerzählerwort nicht 0 ist, den Wert am N-Bus 1>40 in den CRAR 134 ein und der Wert
909842/0770
17.3.79 ?6 PHA.1036
des Steuerzählers im Stapel 1^6 wird um eins erniedrigt, wenn er die Dekrementanordnung 156 durchläuft und über den Multiplexer'142 zum Stapel zurückkehrt.
Der DO-Befehl (Oktal 3). Der MCU-DO-Befehl bewirkt, dass das Mikroprogrammsteuerwerk auf eine Subroutine-Zweigadresse übergeht, wenn der Steuerzählerwert ungleich 0 ist, und zum folgenden Mikrobefehlspaar in der Folge weitergeht, wenn der Steuerzähler gleich 0 ist. ¥ie beim LOOP-Befehl wird der Steuerzähler bei jeder Ausführung des DO-Bei'ehls erniedrigt. Da eine Subroutine jedoch abgerufen ist, wird der Zeigerzähler 1kh auch erhöht. Wenn der Zeigerzähler Ihk erhöht wird, hält das Register im Subroutine-Stapel I50 die Adresse des folgenden, auszuführenden Mikrobefehlspaars in der Anrufroutine fest. Also stellt der Subroutine-Stapel
150 die Rückkehradresse sicher, die bei der Ausführung folgender Befehle verwendet wird:
Der RETÜRN-Befehl (oktal k). Der RETURN-Befehl erniedrigt den Zeigerzähler 1 Mt· und gibt die zuvor sichergestellte Rückkehradresse in das Mikroprogrammspeicher-Adresaregister-13'+ ein. Der entsprechende Steuerzähler im Stapel 1 k6 wird automatisch vom Zeigersiähler ~\hk angezeigt, wenn er bei der Rückkehr zur Anruf-Subroutine erniedrigt wird.
Der USE-Bofebl (Oktal 5). Der USE-Befehl bewirkt, dass
das MikrοProgrammsteuerwerk auf die Subroutine—Zweigadressc
übergeht, die am N-Bus erscheint, und von dieser Subroutine zurückkehrt, wenn die erzeugte CROM-Adresse gleich einem ¥ert ist (im Komparator 163 festgestellt), der im Register
162 für die programmierte Rückkehradresso (PRA-Register) angebracht ist. Beim Empfang eines USE-Bofehl-Operations-
codes setzt das Logik-Datenfeld I30 oirien Flipflop 164. Der Flipflop 164 bleibt im gesetzten Ztistand, bis die Adresse im PRA-Register "l62 erreicht wird, zu welchem Zeitpunkt der Flipflop lok durch ein Signal aus dem Komparator
163 zurückgestellt und die MGIJ-Steuereinheit 130 darüber 35
unterrichtet wird, dass eine Rückkehr zur Routine erfolgt ist, deren Adresse in dnu Stapel I50 goschrieben ist.
βΓ JUMP-Bofehl bewirkt,
9098A2/0770
BAD ORtGJNAL
17.3-79 yf PHA.1036
dass das Mikroprogrammsteuerwerk auf eine Zweigadresse am N-Bus übergeht, auf eine unbedingte Verzweigung, die erreicht wird,1 indem die N-Busbits über den Multiplexer 1-38 in das Mikroprogrammspeicher-Adressregister 13^ gezwungen werden.
Der CALL-Befehl (Oktal 7). Der GALL-Befehl bewirkt, dass das Mikroprogrammsteuerwerk auf eine Subroutine-Zweigadresse am N-Bus übergeht. Die Rückkehradresee (die vom Inkrementlerer 158 erhöhte, laufende Adresse) wird in den Subroutinenstapel I50 geschrieben. Der Zeigerzählor 1^4 wird erhöht und der laufende Steuerzählerwert für die Anrufroutine wird im Stapel 146 zwischengespeichert.
Zusätzliche Verzweigungsmöglichkeiten auf
der Mikrobefehlsstufe werden durch die unabhängige Steue«
rung des Werts des unbedeutsainsten Mikroprogramms pe icher--Adressbits im LSB-Register I36 geschaffen. Der im LSB-Register 136 gespeicherte ¥ert kann, jederzeit durch eines der Mikrobits aus dem Mikroprograinmspeicher geändert werden,
welches Bit im weiteren mit dem Mikrobit I7 bezeichnet wird. 20
Das 17 Mikrobit aus dem N-Bus belangt an einen Eingang eines Exklusiv-ODER-Gatters I66, dessen Ausgang mit dem Eingang des LSB-Registers I36 verbunden ist. Der andere Eingang des Exklusiv-ODER-Gatters I66 ist mit einer Flagstatus-Logikeinheit I68 verbunden. Die Flagstatus-Logikeinheit
, / \
empfängt die vom Rechen- und Steuerwerk 104 (_Fig. 7) erzeugten CNVZ-Statusbits und steht auch mit den Fn, F„..-, Qn und Q.~1-Schiebesteuerbitleitungen aus den Schiebern und 112 (ebenfalls in Fig. 7) in Verbindung. Ausserdem
erhält die Flagstatus-Logikeinheit I68 Opex°atioriscode-Mikro~ 30
bits über den Bus 172 aus dem Mikroprogrammspeicher 50.
Die Flagstatus-Logikeinheit I68, die in
der Kombination mit dem Exkiusiv-ODER-Gatter I66 aarbeitet, dient zum Auswählen, welcher Mikrobefehl des Mikrobefehlspaars, adressiert vom CRAR 13^5 ausgeführt werden muss. Die gex^dzahlige oder die ungoi^adKahlige Adresse des Paars kann auf eine von vier Weisen ausgewählt werden: Erstens, wenn 17 gleich 0 ist, wird das geradzahlige Element des Paars
109842/0770
17-3-79 ^m PiIA. 1036
gewählt. Zweitens, wenn 17 gleich 1 ist, wird das ungeradzahlige Element des Paars gewählt. Drittens, es kann eines der Flagstat.usbits (C, N, V, Z, Qn, usw.) ausgewählt werden und ihm die Steuerung der Paarkennung gegeben werden, oder viertens, wenn 17 ist 1, kann das Element des Paars durch Ueberprüfung der Inversion eines ausgewählten Flagstatusbits definiert werden.
Die Flagstatus-Logikeinheit 168 in Fig.
ist mit weiteren Einzelheiten in Fig. 9 dargestellt. Die Einheit enthält einen 11-Weg~Multiplexer 180, dessen Eingänge vier Signalleitungen aus einem ladefähigen Rechtsschiebo~/Linksschieberegister 184, die C-, N-, V—, Z-, Qn- und Q -Leitungen aus dem Rechen- und Steuerwerk nach Fig. 7 sowie eine einfache, auf dem Bitwert 0 gehaltene Eingabe Ie it\mg umfassen. Daten werden zwischen dem SL/SR-Register 184 und einer Schiebelogik—Dateneinheit 186 ausgetauscht, und das Register 184 sowie der 11-Weg-Multiplexer arbeiten unter der Steuerung der Plagsteuereinheit 188.
Die Flagstatus-Logikeinheit nach Fig. 9
(und bei 168 in Flg. 8) wird unter der Steuerung von vier Flagstatus-(STS)-Bits FC1...FC4 und von zwei Schiebe-(SHFT)-Steuerbits FC5...FC6 betrieben, die über die Signalleitungen 172 aus dem CROM 50 (Fig. 8) zugeführt werden.
Der 11-Yeg-Multiplexer 180 führt der
Ausgangsleitung 190 ein Signal zi.is das den augenblicklichen Wert von C, N, V, Z, Q odei? Q0,) einen früheren, im SL/SR-Register 184 gespeicherten Wert von C, N, V oder Z oder eine logische Null darstellt. Durch die Einstellung 17=1, können einige dieser Werte durch das Gatter I66 invertiert werden.
Die Schiebelogik-Steuereinheit steuert
sowohl den Datenfluss auf den Zweiweg-Schiebeleitungen Fn, F , Q und Q als auch den Datenfluss zwischen dem C-Register im SL/SR~Register 184 und Q . Tabelle IV unten
zeigt den Ziisanmiranhang zwischen den SIIFT-Bits FC5 . . .FC6 und 35
den der Zweiweg-Schiebeleitung F , F , Q und QQ zugeführteu Signalpege.1 η ,
909842/0770
17-3-79 y$ PHA.1036
Tabelle IV
FC6 FC5 Operation F FQ Q Q
0 0 Arithmetische Links- — Q^1 — C Schiebung
0 1 Arithmetische Rechts- N©V — Fq --
Schiebung
1 0 Drehe links — F — C
1 1 Drehe rechts F -- F —
In der Tabelle IV oben bedeutet "--", dass die Schiebelogik-Steuereinheit für die identifizierte Leitung eine hohe Impedanz hat (Die Schiebelogik-Steuereinheit 186 erzeugt "Tristate" Ausgangssignalpegel: hoch, niedrig oder schwebend. ¥ie weiter unten erläutert wird, werden
Tristate-Ausgänge zur Realisierung btis organisiert er Funktionen im ganzen Prozessor verwendet). ¥enn FC6=0 und FCS=Ij wird die Exklusiv-ODER-Kombination der N- (negativ) und λΓ~ (ifeberlauf) Bits nach F1 verschoben.
Das Vierbitfeld FC1...FC^ liefert die in
der Tabelle V beschriebenen Flagstatus-Steuerfunktionen.
FCh FC1 Aktion
„00 0 0 Keine T„ zu CRARnunbedlngie Verzweigung 0 0 0 1 Speichere C I zu CRAR unbedingte Verzweigung
0 0 10 Speichere Ν,Λ',Ζ unbedingte Verzweigung
I„ zu CRAR
7 0
0 0 11 Speichere C, N, V, Z unbedingte Verzweigung T zu CRARQ
0 1 0 0 »Schiebe Flagregister unbedingte Vex^zweigung in Q0 I zu CRAR0
0 1 0 1 Schiebe Flatregistex· unbedingte Verzweigung aus Q„ Ί" zu CRAR
0 1 10 Augenblickswert bedingte Verzwoig\arig
von Q0 nach CRAR
0 1 11 Augynblickswert bedingte Verzweigung
von Q nach CRAR
909842/0770
17.3-79
PHA.1036
FC k
1 O
O
O
O
1
1
1
1
FC1 O O
1 O 1 O O
1 O 1
Aktion
Gespeicherte ¥ert von ;C nach
Gespeicherte ¥ert von N nach CRAR
Gespeicherte Wert von
V nach CRARQ
Gespeicherte Wert von Z nach CRARQ
Augenblickswert von C nach CRARQ
Augenblickswert von N nach CRARQ
Augenblickswert von
V nach CEAR0
Augenblickswert von Z nach CRARQ
bedingte Verzweigung bedingte Verzweigung bedingte Verzweigung bedingte Verzweigung bedingte Verzweigung bedingte Verzweigung bedingte Verzweigung bedingte Verzweigung
Box einer weiteren Ausführungsform des
Mikroprogramm-Steuerwerks werden Mittel verwendet, die dafür sorgen, dass das Mikroprogramm-Steuerwerk unabhängig vom Wert des Dreibit-MCU-Oporationscodes zum nächsten Mikrobefehl weitergeht (d.h. die Mittel bewirken, dass das Mikroprogramm-Steuerwerk, den "NEXT"~Befchi ausführt).
Diese FORCED-NEXT-Operation arbeitet wie
folgt: Ein in Mikrobefehlscode erzeugtes Signal (entsteht jedesmal, wenn der codierte Wer't IJCONDMCU im Mikrobofehls-Ii^-FeId auf tritt, das weiter unten beschrieben wird) gelangt über den Leiter 185 nach Fig. 8 zum Logik-Datenfeld I30. Das Datenfeld 130 empfängt auch die vier CNVZ-Statusbusbits sowie ein Paar Mikrobof ehlscodo-BediirjgnngFauswahrbits (angebracht an den Bitistellon 5'+ "nd 55 cles Mikx-oworts) . Wenn der Leiter I85 aktiviert wird, erfolg-fc eine Prüfung eines der CNVZ-Bits wie folgt:
_ r K
J ^J
gpproftos Bit
OO C
01 N
10 V
1 i Z
909842/0770
17-3.79 b* PHA.1036
Wenn das ausgewählte Bit eine 1 ist,
wird die NEXT-Operation eingeleitet. Ist das ausgewählte Bit eine Null, wird die vom ALU-Operationscode spezifizierte Operation durchgeführt.
Vertikale (codierte) Mikrobefehle
Mit der vorangehenden Beschreibung als
Hintergrund ist es nunmehr möglich, eingehender die Mikrobefehle zu beschreiben, die den Datenfluss im Prozessor steuern.
Jeder Mikrobefehl ist eine Gruppe von
Steuersignalen, die als ein adressierbares 80-Bit~¥ort in den Mikroprogramm-Festwertspeicher (CROM) 50 nach Fig. 8 gespeichert sind. Obgleich jeder Mikrobefehl durch eine Kette von achtzig Einsen und Nullen, oder zwanzig Sedezimal--
zeichen beschrieben werden könnten, wird es bevorzugt, jeden Mikrobefehl unter1 Verwendung eines richtungsbetriebenes symbolisches Bezeichnungfjsystems zu beschreiben. Dieses System arbeitet wie folgt.
Jeder Mikrobefehl kann in Felder aiifge-
teilt werden und jedem Feld wird ein symbolischer Name zugeordnet. Zum Beispiel dienen die ersten 22 Bits jedes Mikrobefehls zum Steuern dos Mikroprogramm-Steuerwerks ^k und sind wie folgt bezeichnet:
BA FIELD 0, 13, 0
N FIELD 0, 12, 0
17 FIELD 12, 1, 0
MCU FIELD 13, 3, 0
STS FIELD 16, h, 0
SIIFT FIELD 20, 2, 0
"BA FIELD 0, 13, 0" bedeutet, dass der
symbolische Name BA die Bezeichnung eines Felds ist. das bei der Bitstelle 0 anfängt, eine Lauge von 13 Bits und, wenn nicht anders angegeben, den Leerwert Null hat. Achten Sie darauf, dass das Feld BA mit; den Untorfeldeni N (an den ersten zwölf Bitstellen.) und I7 (an der 13. Bitstelle) neubelegt ist.
Das 13-Bit-Feld BA ist die Zweigadresse,
909842/0770
17.3-79 j^- PHA. 1036
die aus dem 12-Bit--N-Fe ld zum N-Bus 1^0 nacli Fig. 8 und dem I7-Bit zum LSB-Register I36 über das Exklusiv-ODER-Gatter besteht. Das bei der Bitstelle 13 anfangende 3-Bit~ MCU-FeId ist der über den Bus 132 zum MCU-Steuerlogik-Datenfeld 130 gelieferte Operationscode, um festzustellen, welche Operation (NEXT, COtINTER, LOOP, usw.) das Mikroprogramm-Steuerwerk ausführen muss. Das ^-Bit-STS-Feld enthält die Bits FC1...FC4, die der Flag-Steuereinheit 188 (Fig. 9) zugeführt werden, und die zwei SIIFT-Bits sind die Bits FC5 und FC6, die an die Schiebelogikeinheit 186 gelangen.
Der Aufbau des gesamten 80-Bit-Mikrobe-
fehls ist in Fig. 10 dargestellt und die restlichen Felder sind in einer symbolischen Sprache definiert, siehe weiter unten Tabelle VI.
Das 3-Bit-ALUD-FeId enthält die dem Selektor 102 nach Fig. 7 zugeführten Bits I ...I . Das 7-Bit-ALU-FeId besteht aus den Bits 18, 17, I6, 15,' l4, 13 und CN zum Rechen- und Steuerwerk 10^ u;id zum AL'CJ-Zieldecoder nach Fig.7.
Die sieben Felder F, L, A0, B0, C0, D0 und E0 gelangen an den bereits früher an Hand der Fig. 1 beschriebenen Decoder 67.
Das SKPADR (oder das Aequivalent SKPD) ist eine Adresse zum Auswählen eines Betriebsregisters im Satz 36 nach Fig. 2.
Die SEND- und RCV-- (receive )Felder von
je drei Bits dienen zum Betreiben von Bustreibern und Empfängern zwischen dem Rückflächenteil und den einzelnen Scbaltkreisplatiiientei lcn des Zentralprozessor-Arbeit sbusses
10. Nachstehend wird die physikalische Organisation von Teilen und Datenweten näher erläutert. Für den Augenblick können die SEND- und RCV-Felder entsprechend als Identifizierung der physikalischen Schaltkreisplatinen betrachtet werden, die Quellen- und Zieleinrichtungen tragen. Venn
«ich Quellen- und Zieleinrichtungen auf der gleichen Platine befinden, werden die SEND- und RCV-Felder nicht benutzt. Die übrigen Bits des Mikrobefehls; in Fig. 10 mit RFU be-
909842/0770
17.3-79
PIIA.. 1036
zeichnet, sind "für künftige Benutzung belegt" zur Versorgung von Zusatzeinrichtungen, Erweiterungen u.dgl.
Mikrobefehlszusammensetzung
Die Bildung und Dokumentierung eines Mikrobefehlscodes vereinfacht sich stark durch die Verwendung einer Assemblersprache. Jeder Mikrobefehl ist ausgehend von einer Folge von Assemblersprachenbefehlen assembliert, wobei symbolische Namen benutzt werden, um Bitwer-te und Mikroprogrammspeicheradressen zu bezeichnen.
Als ein Beispiel kann der Universal-Be-
fehlsvorrats-"Add HaIfword"-Befehl realisiert werden, indem mit drei Mikrobefehlen angefangen wird, die die folgenden zwanzig Assemblerspracheninstruktionen definieren. Es sind folge Anweisungen als Beispiele erwähnt.
LEITUNG
01 02 03
05 06 07 08 09 10 11 12 13 lh
15
16 17 18 19 20
NAME ANWEISUNG
BEMERIvUNG
3E
FWAAH
ADDIERE HALBAfORT kA AIT
EVEN HOLE OPERAND
EQU
MCU=CALL ERWEITERE OPERAND
BA=RXR
ALU=D
F=SALR
L=DSIGNREG
SEND=CPUI TRA NS PORTIERE ERVJIi T -
RCV=CPUO TERTEN OPJiRAND
MCU=JUMP IN DATARKGJISTER HIN
EIN
BA=Ai
F=SSIGNREG
L=DDATAREG
SEND--C PUO
RCV^CPUI
909842/0770
17.3.79 J*% PHA.. 1036
Die Zeilen 01 und 02 sind Kommentarzeilen,
die dazu dienen, die Assemblersprachenprotokollierung leserlicher zu mächen. Sie werden beim aktuellen Mikrobefehlsvorgang übergangen. Die Zeile 1 gibt an, dass die folgenden Instruktionen sich mit dem "addiere Halbwort"Bofehl AH befassen, der herangezogen wird, wenn das Operationscode-Byte im Befehlsregister 22 (Fig. 1) den Wert kA (sedezimal) hat.
Der Wert ^A wird in der ersten Wortadresse (fWA) ROM 56 in die Mikroprogrammspeicheradresse umgesetzt, die durch den symbolischen Namen FWAAH (first word address for add halfword) spezifiziert. Die Erst¥ortadresswerte werden in den FWA ROM 56 eingegeben, nachdem alle in den CROM 50 einzugebenden Mikrobefehle zusammengesetzt sind.
Die Zeile 03 enthält das Einzelbefehlswort "EVEN", das auf den "Adresspegel-Zähler" einwirkt. Der Adresspegel 1st ein Zählei* im Assembliercomputer, der die Anzahl der bei der Assemblierung geschriebenen Mikrobefehle zählt und dahor immer die Adresse des assemblierten 20
Mikrobefehls enthält. Das Wort EVEN bewirkt, dass, der Adress pegel-Zähler zur nächsten geradzahligen Adresse veitergeht, wenn die laufende Adresse, nicht immer geradzahlig ist. Die EVEN-Instruktion sorgt also dafür, dass der Mikrobefehl
der erste eines Paars ist, d.h. dass 17=0. Die Instruktion 25
"ODD" kann also dazu benutzt worden, den Adresspcgel-Zähler zur nächsten ungeradzahligen Adresse gehen zu lassen.
Die vierte Instruktion fängL· an mit dein symbolischen Namen FWAAH gefolgt vom Operationsfeld EQU und
dem einfachen Zeichen "x". Dißsc !Instruktion bedeutet, 30
dass der zu übersetzende Mikrobefehl in eine CROM-Adresse gcb'raclit worden muss, düe den symbolischen Namen FWAAH trügt, Lind dass FWAAH gleich dow (EQu ) dem Wert χ (was den laufenden Wort dos AdrcöspogRl-Zählers angibt).
DIo Zolle 05 enthält die Instruktion
"MClJ-CALL", was bedeutet dass ein 33 it wart mit dem symbolischen Namen "CALL" in das MCU-FeJd für diesen Mikrobefehl gebracht werdon muss. An andoror Stelle in der Assembler-
909842/0770
BAD ORIGINAL
17 «3· 79 y4 PIiA. 1036
sprachenprotokoliierung wird der ¥ert des symbolischen Namens "CALL" durch folgende Instruktion spezifiziert:
: CALL EQU 7
so dass der Oktalwert 7 in das 3-Bit-MCU-Feld eingeführt wird, so dass das Mikroprogramm-Steuerwerk die bereits erwähnte CALL-Operation ausführt.
Die Zeile 06 enthält die Instruktion
"BA=RXR", was bedeutet, dass ein Bitwert mit dem symbolischen Namen RXR in das Zwiegadressfeld BA eingesetzt werden muss. RXR ist einem aktuellen ¥ert an anderer Stelle in der Protokollierung durch einen Eingang "RXR EQU S" zugeordnet. Also wirkt sich die BA-RXR-Instruktion so aus, dass die Adresse RXR eines anderen Mikrobefehls in das Zweigadressfeld des Mikrobefehls eingegeben wird.
Der Satz "HOLE OPERAND" auf der Zeile 06 ist eine Bemerkung, die vom Assembler ignoriert wird, jedoch die Protokollicrung leichter verständlich macht. Die Bemerkung bezieht sich darauf, dass die abgerufene Subroutine
zum Ausgeben eines Operanden aus dem Arbeitsspeichers ver-20
wendet wird. (Dies macht die Subroutine, die bei RXR anfängt und die Operandenadresse aus den Inhalten der Grund- und Index-Registern und dem Distanzwert im Befehlsregister errechnet. Eine andere Subroutine (au der Adresse MEMREAD)
wird dann abgerufen zum Weiterleiten der Adresse zu einem 25
Speicher zum Eingeben des herangezogenen Operanden in das Datenregister (bei 30 in Fig. 1) über den Arbeitsbus und zum Ausführen einer RETURN zur abrufenden Subroutine. Die Einzelheiten der Subroutinen, die mit den Adressen RXR und
MEMREAD anfangen, sind in dei1 nachstehenden detaillierten 30
Protokollierung verzeichnet.)
Der "/" in der Zeile 07 gibt an, dass
die Spezifizierung des Mikrobefehls mit dor Adresse FWAAII vol3_ständig ist.
Der zweite Mikrobefehl besteht aus den 35
Instruktionen auf den Zeilen 08 bis 13 der obigen Protokoll ie rung.
Die Instruktion auf der Zeile 08 lautet
909842/0770
17.3-79 J*6 PHA.1036
"ALU=D". Der symbolische Name "D" besitzt den Wert 7 durch eine eingesetzte Anweisung an anderer Stelle in der Protokollierung. 'Die Einführung des ¥erts 7 in das ALU-Feld des Mikrobefehls bewirkt, dass der Inhalt des Datenregisters dem Ausgaberegister des Rechen- und Steuerwerks zugeführt wird. Es sei bemerkt, dass das Siebenbit-ALU-FeId die Bits 15, Xk, 13, CN, 12, 11 und IO enthält, die bereits im Zusammenhang mit den Tabellen I und II beschrieben wurden.
Die Bemerkung auf der Zeile 09 bedeutet,
^ dass dieser Mikrobefehl zum Erweitern des HalbwortOperanden zu einem Wort verwendet wird, indem das Vorzeichenbit an der Bitstelle 15 durch die Bitstellen I6...3I des Worts verschoben werden. Dazu ist es notwendig, den Operanden vom ALU-Ausgaberegister zum Vorzeichen-Erweiterungsregister (bei 3^ in Fig 1) zu bringen. Dies geschieht mit Hilfe der Instruktionen auf den Zeilen 10 und 11:
F=SALR
L=DSIGNREG
was bedeutet, dass das F-(from)-Feld des Mikrobefehls mit
dex" Adresse FWAAII41 auf den dem symbolischen Namen SALR zugeordneten Wert eingestellt werden muss (SALR ist eine mnemotechnische Bezeichnung für "Source Arithmetic Logic Unit Register"). So wird auch das L-(load)-Feld auf den Wert eingestellt, der dem symbolischen Namen DSIGNREG zvigeordnet ist. (Kurzbezeichnung für "Destination, SIGN extension REGister").
Diese zwei Instruktionen sind Beispiele
für die Verwendung der codierten oder "vertikalen" Steuerung. Der S3äribolisch.e Name SALR kann als der Name eines
Steuersignals auf einer Maschinensteuerleitung gedacht werden: In diesem Fall als der Name des Signals zum Freigeben des Ausgangs des ALU-Ausgangsmultiplexers (mit "output control" in Fig. 5 bezeichnet). Obgleich diese Steuerleitung durch eine vorgegebene Bitstelle des Mikrobefehlscodes ,
direkt erregt werden könnte (direkte oder "horizontale" Steuerung genannt), ist es zwekmässiger, gegenseitige exklusive Funktionen zu gruppieren und zu codieren, d.h. jene Steuersignale zu gruppieren und zu codieren, von denen
909842/0770
17.3.79 >f PHA.1036
keine zwei gleichzeitig auftreten können.
Also stellen die Fünfbit-Steuerfelder F,
L, A0, B0 und C0 bis zu 31 verschiedenen Signalleitungen dar, während die 4-Bit-Felder D0 und E0 bis zu je 15 Signalleitungen darstellen. Jeder Signalleitung ist eine Nummer 0 (die keine Signalleitung oder "NOP" angibt) bis 31 (15) zugeordnet und jede Nummer selbst wieder ist mit einem symbolischen Namen verknüpft. Also ersetzt der Assemblierer den 5-Bit-Binärwert 00001 dtirch den symbolischen Namen
SALR und bringt diesen Wert in das F-FeId. Wenn der Mikrobefehl adressiert wird, erfolgt die Decodierung des F-Felds (durch den F-Mikrobitdecoder1 6k nach Fig. 1) zum Erregen des Steuerleiters, der den ALU-Ausgang freigibt»
Der logische Aufbau des Prozessors nach
der Erfindung eignet sich insbesondere dazu, die Vorteile codierter Steuerung auszunutzen. Da im wesentlichen alle Daten- und Befehlsübertragungen am einfachen Zentralprozesor-Arbeltsbus 10 erfolgen, können gegenseitig exklusive
Steuersignale auf einfache Weise zum Codieren gruppiert 20
werden und die mit Mehrbussysteinen verknüpfte Vervielfachung von Registern und Steuersignalen weitgehend urtecbunden werden, wodurch ein einfacher und wirksamer Mikrobefehlscode entsteht.
Für ein gutes Verständnis der Funktion 25
eines gegebenen Mikrobefehls in Form einer Asserablerinstruktion muss die durch jeden symbolischen Namen dargestellte, spezifische Hajxlwarefunktion verstanden werden. Nachstehend werden dde symbolischen Namen der später z\i beschreibenden Protokolliorung erläutert und nach den fünf Feldern grup-'
p.iert, zu denen sie gehören.
909842/0770
17.3.79
Wert Mnemonisch
01 02
03
20 06
07 25 08
SALR
SWKREG
SLIT
SDISP
SR3
SR1
SSIGNREG
SPSWZ
> PHA. IO36
Symbolische Namen des F-FeIds
Funkt i on
ALJ Zk AUSGANG ZUM ARBEITSBUS 10 BETRIEBSREGISTEREINHEIT 36 AUSGANG ZUM ARBEITSBUS 10. DAS SPEZIFISCHE REGISTER WIRD DURCH DAS SKPADR-FELD IM MIKROBEFEHL IDENTIFIZIERT.
N-FELD VOM CROM 50 ANGELEGT AN NIEDRIGSTE BITS IM ARBEITSBUS 10 UEBER LITERAL-BUS 58.
BITS 20...31 IM BEFEHLSREGISTER 22 (SIEHE AUCH FIG.2), RECHTSBUENDIG AUSGERICHTET AUF NIEDRIGSTE BITS IM ARBEITSBUS 10. HOECfISTE BITS SIND MIT NULLEN CE-FUELLT.
BITS 12..,15 IM BEFEHLSREGISTER 22 ZUM ARBEITSBUS 10, RECHTSBUENDIG AUSGERICHTET UND MIT NULLEN GEFUELLT. BITS 8... 11 DES BEFEHLSREGISTERS 22 ZUM ARBEITSBUS 10, RECIiTSBUENDIG AUSGERICHTET UND MIT NULLEN GEFUELLT. VORZEICIDiTN.-ER WEITERUNGSREGISTER 3k ZUM ARBEITSBUS 10.
BITS 0... 31 DES PROGRAMMSTATUSWORTS (SIEHE FIG. 3 UND h) ZUM ARBEITSBUS 10 VOM PSW2-REGlSTER kk .
Der1 Zontralprozessor, dor beschrieben
wurde, ist auf vorteilhafte Weise mit LSI- und MSI-Schalt-kreiseninstrumentiert j die aus der Transistor-Transistor-(TTL)-Famllio von Bauelementen ausgewählt werden.
TTL-Bauelenionte finden grosse Verwendung;
in Digitalsysteinen, die in vielen verschiedenen Industriell benutzt worden. Infolgedessen wurden viel mehl" Typen funlc-ti cmc Her Unter cysteine in TTL als in anderen Bauelement-· fanri.iieri entwickelt t Massenherstellung von TTL--Baue lemon ten
909842/0770
17.3-79 J*^ PHA. 1036
senkt ihre Entwicklungskosten und reduziert den Aufwand des Herstellungsverfahrens. Das Ergebnis davon ist, dass mit LSI- und MSI-Bauteilen mehr Funktionen im Prozessor realisiert werden können, und diese Bauteile sind zu niedrigeren Kosten erhältlich.
Die ausgedehnte Verwendung von LSI- und
MSI-Bauteilen im Prozessor ergibt eine grössere Systemzuverlässigkeit und niedrigere Entwurfs-, Austest- und Service-Kosten. Die Zeichendichte vergrösserfc und die Anzahl der
Verbindungen ausserhalb der Chips verringert sich, wodurch Taktprobleme, Rauschen und Uebertragungsleitungseffekte auf ein Minimum reduziert werden.
Also arbeitet die ¥ahl von TTL-Bauelementeii
mit dem vereinfachten Einzelbus-Codesteueraufbau zusammen, 15
um einen sehr kompakten, preisgünstigen Px-ozessor zu schaffen. Die geringen Abmessungen des Prozessors, an sich schon ein wesentlicher Vorteil; trägt zur Reduzierung von Rauschen. Uebersprechen, Schwingungen und Taktfehlern bei. Dadurch
entfallen im Prozessor besondere Schaltkreise, die sonst 20
zur Beseitigung( derartiger Probleme erforderlich wären.
Bei einer weiteren. Ausführungsform nach
der Erfindung werden die zentralen Funktionen des Prozessors mit Hilfe sog. "Super High Speed"-(Schottky)~TTL-Schaltkreise durchgeführt. Durch die Verwendung von Schottky-25
Schaltkreisen wird ein wesentlicher Geschwindigkeitsvorteil vor herkömmlichen TTL-Schaltkreisen erreicht. Schottky-Schaltkreise reduzieren Schaltverzögorungen durch die Verwendung einer Randschichtdiode zwischen der Basis und dem
Kollektor jedes Transistors. Beim Einschalten des TransS.s-30
tors wird Basis-Ueberstrom durch die Randschichtdiode umgeleitet, um vollständiges Aufsteuern zu vermeiden, wodurch er sich schneller erholt, wenn der Basisstrom unterbrochen wird.
oc Diese höhere Geschwindigkeit fordert
ihren Preis: Schottky-Bauteile erzeugen mehr Yärine als herkömmliche TTL-Bauelernen.te vom Normaltyp oder vom Typ mit hoher Geschwindigkeit, weil sie nicht voll aufgesteuert wer-
909842/0770
17.3-79 ?Q PHA.1036
den dürfen. Ausserdem weisen Aus gang swe11enf orme n durch die hohen Schaltgeschwindigkeiten steile Uebergänge auf, die unerwünschte Schwingungen und andere Uebertragungsieitungseffekte auf lange Verbindungen auslösen können, und ^ es müssen Schottky-Bauelemente über Speiseleitungen (v
und Masse) mit sehr niedriger Impedanz versorgt werden.
Um diese und andere Faktoren zu kompensieren, werden mehrere Einrichtungen auf vorteilhafte Weise in den physikalischen Aufbau der Prozessor-Hardware eingebaut.
Bei einer erfindungsgemässen A.usführungs-
form wird jede Verzweigung des Zentralprozessor-Arbeitsbusees, der sich über eine gegebene Schaltkreisplatte erstreckt, vom übrigen Teil des Busses durch ein Tristate-Sende/Empfangsgerät isoliert, das nur dann durch einen Mikrobefehlscode freigegeben wird, wenn diese Verzweigung für die Ausführung eines besonderen Mikrobefehls benötigt wird.
Der allgemeine Entwurf des Zentralprozes-
sor-Arbeitsbusses ist in Fig, 11 dargestellt. Ein jedes der fünf Register 2k ' , 30, 31A, 42 und kk nach Fig. 11 ist über· Tristate-SENDE/EMPFANGSgeräte mit dem Bus 10 verbunden. Zum Beispiel erhält das aiaf der CPUI-PIatine montierte Datenregister Daten aus dem Bus 10, wenn der Empfänger I9I frei-
gegeben wird. Der Freigabeeingang zum Empfänger 191 wird aktiviert, sobald das L-FeId eines Mikrobefehls den Vert DDATAREG enthält. Der Eingang z\im Empfänger 191 stellt eine hohe Impedanz für den Bus 10 dar. Es sei bemerkt, dass das
Datenregister 30 nicht über ein sendendes Sende/Empfangs-30
gerät verfügt, weil es nur Daten zur Verarbeitung im ALU aufnimmt. Gleicherweise enthält der ALU-Ausgang 2k1 lediglich ein sendendes Sende/Empfangsgerät, weil er nie ein Ziel ist. Die sendenden Sende/Enrpfangsgeräte stellen einen
von drei Zuständen für den Bus 10 dar: einen Hochimpedanz-35
zustand, wenn nicht frelgegeben, und hohe oder niedrige Signaipegel, wenn freigegeben (daher der Begriff "Tristate").
Tristate-Sende/Envpfangsg-eräte Λ$Η und
909842/0770
17.3.79 $4 PHA.1036
auf den Platinen CPU0 bzw. CPU1 dienen, wenn möglich, zum Trennen der Arbeitsbusverzweigungen auf diesen Platinen. Zum Beispiel, wenn ein Uebertrag zwischen dem Frontplatinen-Datenregister und einem Betriebsregister erfolgen muss, erfolgt die Uebertragung vollständig auf der Platine CPU$ iind die entsprechenden Mikrobefehlscode-Instruktionen sind: F = SFPDATAR
L = DTCRKREG.
In diesem Fall wird das Sende/Empfangsgerät nicht freigege-
' ben und es erscheinen nur Datensignale auf jener Verzweigung des Busses 10, die sich auf der Platine CPTJ0 befindet. Dies verringert die Geräuscherzeugung durch Beschränkung des Signals sowie die Geräuschanfälligkeit durch die Abblockung von Geräuschsignalen, die von anderen Verzweigungen des Arbeitsbusses übernoirimen sein könnten.
An den Stellen, an denen eine Uebertragung
zwischen Platinen erfolgen muss, wird der Mikrobefehlscode zum Freigeben der· entsprechenden Platinentrenn-Sende/Erapfangsgeräte \rerwendet . Zum Beispiel wird der Datenfluss vom
Vorzeichen-Erweiterungsregister Jk auf CPU£j zum Datenregister 30 auf CPU1 durch folgenden Mikrobefehlscode verwirklicht :
F - SSIGMiEG
L = DDATAREG
SEND = CPXJ0
RCV = CPU1.
In diesem Fall dienen sowohl das sendende Sonde/Empfangsgerät 19'+ als auch das empfangende Sende/Empfangf'gerät 195 zum Wiederherstellen der vollen Werte der Signalj)egel sowie
r
haben sie eine ua11erstouerfun'ktion,
MTKROBEyEHLP.CppESTElTERUNG Die Ausführung des"Load-Address"-(LA)-
Befehls wird nachstehend als ein Beispiel durch Mikrobefehlscode gesteuerter Maschincnfiinktionon erläutert. 35
Der Ladeadresse-Hoftihl liefert ein leistungsfähiges und stark verbreitetes Vorfalircn zum Etikettieren und zur Inkromeiibi !dung von Mehrzweckregi stern .
9098A2/0770
17.3-79 6% PHA.1036
Obgleich der Befehl im RX-Fortnat ist, bezieht er nicht wirklich Daten aus dem Arbeitsspeicher. Stattdessen bringt er die 24-Bit—Adresse des zweiten Operanden an die niedrigsten Bitstellen in diosem vom ersten Operanden identifizierten Mehrzweckregister.
Zum Beispiel sind die Befehle
LA 4,0(0,0)
und
LA 4,0
.(gemäss der Bezeichnung in der Assemblersprache) gleichwertig und können zum Löschen des Mehrzweckregisters 4 benutzt werden.
Die Assemblersprachen-Befehle
LA 4.1(4)
oder LA 4, 1 (4,0)
oder LA 4,1(θ,4)
können zum Erhöhen des Inhalts des Registers 4 um 1 verwendet werden.
Die Ausführung des LA-Befehls erfordert
eine Adressbercclmung. Der Inhalt des Index-Registers, der Inhalt des Grundregisters und der Distanzwert müssen summiert werden. Jedoch kann das Rechen- und Steuerwerk 1θ4 (nach Fig. 7) gleichzeitig nur zwei Eingangswerte (R und s) zusammenzählen. Bei einer Ausführungsform nach der Erfindung
.ist es aber möglich, die für die Durchführung von Adressberechnungen erforderliche Ausführungszeit dadurch zu kürzen, dass Rücksicht darauf genommen wird, dass der Inhalt eines jeden dieser drei Register nicht in die Summe aufgenommen zu werden braucht, wenn dor Ivert der Befehlsadress-
stelle, die dieses Register spezifiziert, Null ist-
Bei einer anderen Aus führ ungsf orm der E1,-
findung werden, wenn Adrcssborochüiuigoii mit zwei Indoxpegeln durchgeführt werden müssen, Hardware—Mittel zum Ueberwachen
der Adressen (im Befehlsregister) jener Mehrzweckregister, 35
die mit Index- und Grundx^cgister bezeichnet sind, und zum Herstellen einer Verzweigung zu dieser Mikroroutine verwendet, die zur Behandlung des vorliegenden Befehls benötigt
909842/0770
BAD ORIGINAL
17-3.79 $5 PHA.1036
wird.
Beispielsweise erfordert der Ladeadressbefehl
LA 4,631 (3,7) die Addierung der- Inhalte der Register 3 und 7 und des Distanzwerts 631 und die Uebertragung des Ergebnisses auf das Register h. Diese Berechnung erfolgt im allgemeinen wie folgt, siehe Fig. 12.
Während des ersten Mikrobefehlszyklus
gelangt der Distanzwert im Befehlsregister 22 über den Arbeitsbus 10 zum Datenregister (Verriegelung) 30. Gleichzeitig werden die Inhalte der zwei .durch die Werte X„ und B adressierten Mehrzweckregister addiert und diese Summe in das Quotientenregister eingegeben. Auch werden dn. diesem
ersten Mikrobefehlszyklus die Werte X? und B„ (durch die ODER-Gatter 251 und 253) kontrolliert und ergeben dabei einen 2-Bit-Wert mit folgender Bedeutung:
00 X2 und B£ beide gleich Null
01 X gleich Null, B ungleich Null
^ d
10 X2 ungleich Null, Bg gleich Null
11 Weder X2 noch B gleich Null.
Dieser Zweibitwert wird vom Addierer bei der Adresse (exklusiv des LSB-Bits I~) aus dem Mikroprogrammspeicher-Mressregister aufgezählt (siehe auch
Fig. 8). Das Ergebnis davon ist, dass eine von der Hardware ausgelöste Verzweigung (Abruf) zu einem Mikrobefehl gemacht wird, der sich zum Ausführen des besonderen Befehls eignet. Wenn X? und B beide Null sind, bringt der nächste Mikrobefehl lediglich den Distanzwert im Datenregister 30 zum . .
Quotientenregister (_Q-Reg.). Wenn Xp gleich Null und B ungleich Null ist, wird der Inhalt des von B adressierten Mehrzweckregisters bei der Distanz im Register 30 und der im Quotientenregister vorhandenen Summe addiert. Ebenso wird, wenn B gleich Null und X_ ungleich Null ist, die ^ s-
Suinme des Xp-Registers sowie die Distanz in das Quotientonregister eingegeben. Schliesslioh, wenn weder X? noch B Null sind, wird ihre Summe (bereits im Quotaentenregister)
909842/0770
17-3-79 Bty PHA.1036
bei dor Distanz addiert und die Endsumme wird in das Quotientenregister eingegeben.
1 In der Maschine geschieht dies durch die Verwendung des Operationscodes (hEX4i für den LA-Befehl), der im ersten Byte des Befehlsregisters 22 gespeichert ist, um den FVA-ROM 55 (siehe Fig. 1) zu adressieren, der dann, dom Mikroprogramm-Steuerwerk 5^· die erste Vortadresse des Mikrobefehlscodes zuführt.
Zum Feststellen des Anfangs der Routine
in einer Mikrobefehlscode-Assemblerprotokollierung muss zunächst der symbolische Name der Mikrobefehlscodeadresse, die gesucht wird, in der Spalte "NAME" der Tabelle VI (siehe weiter unten) festgestellt werden. Wie vereinbart
werden alle Erstwortadressen für alle Befehle von den Buch-15
stäben FWA vorangegangen und gefolgt von den Buchstaben, die den Befehl identifizieren. Also beginnt die Routine zum Ausführen des LA—Befehls mit der Mikrobefehlscodeadresse mit dem symbolischen Namen FWALA, der beispielsweise auf der Zeile 7019 in der Tabelle VI geschrieben ist, die
einige Abschnitte der Protokollierung des Mikrobefehlscodes darstellt, der im Milcroprogrammspeicher gespeichert und in der symbolischen "Makroassembler"—Sprache ausgedrückt ist.
Zurück zur Protokollierving auf den Zeilen
7019...70^0 ist ersichtlich, dass die Hauptroutine zum Aus-'
führen des LA-Befehls zwei Mikrobefehle gefolgt von einem dritten (auf der Zeile 703h) enthält, der mit MCU=JUMP bezeichnet ist und eine Subroutine IFETCII abruft, die in den Mikrobef elilscodo aufgenommen ist (an der entsprechenden Stelle (891 nicht dargestellt) aufgenommen ist), um den
nächsten Befehl aus dem Speicher heranzuziehen.
Der erste Mikrobefehl an der symbolischen.
Adresse FWALA ist in der Makroassemblerspräche wie folgt definiert:
909842/0770
17-3.79 $5 PHA.1036
EVEN
FVALA EQU κ
MCU=CALL
Ba=CALCADDR
F=SDISP
L=DDATAREG
CO=CRXADD
ALU=APB
ALUD=LQ
AO=AS!619
Zunächst wirkt sich auf der Zeile 7018
die Assemblerinstruktion EVEN so aus, dass die Mikrobefehlsadresse FVALA auf einen geradzahligen Wert kommt. Da alle J ersten Vortadressen geradzahlig sind, braucht der FVA ROM 55 nicht das (i^) Mikroadressbit niedriger Ordnung zu 3.ie±>ern.
Anschliossend bedeutet MCU=CALL, dass die
drei Bits, die das MCU-Operationscodefeld bilden, 111 (bion
nor) sind. Vie bereits an Hand, der 3pig. 8 beschrieben, bewirkt die CALL-Operation, dass die Steuerung auf jenen Mikrobefehl an der 13-Bit-Adresse übergeht, die im BA-FeId spezifiziert ist (in diesem Fall die Adresse mit dem symbolischen Namen CALCADDR). Auch .wird die 13-Bit-Adresse des
nächsten Befehls (bei FVALA+1) oben im Subroutineruclckelrr-Kellerreginter 150 angeordnet wird. Vichtig ist, dass die vol.] ständige 13~T3it-Rückkehradresse einschliesslich des unbedeutsamsien Bits zwischengespeichert wird.
Darauf werden, die Quollen- und Zielfelder 30
des Mikrobefehls FVALA wie folgt gesetzt:
F=SDISPL
L=DDATAJiEG,
wodurch die Bits 20...31 des Befehlsregisters 22 dem Arbeitsbus 10 zugeführt und die Bits 0...19 auf Null gesetzt werden. (Die Bits 20...31 sind die Distanz in RX--, RS- und SS-Bofehlen). L=DDATAREG bewirkt, dass das Datenoingaliereglsfcer (Verriegelung) 30 durch Arbeitsbusdaten Q..„31 gefüllt
909842/0770
17-3.79 &C PIiA. 10.36
wird. Also wird die Distanz im Befehlsregister in das ALU-Eingangsdatenregister zwischengespeichert.
' Der Wert CRXADD im C^-FeId des Mikrobefehls bewirkt, dass die Zweigadresse CALCADDR (mit Ausnahme δ von I ) um den Zweibitwert erhöht wird, der angibt, ob die Index- und Grundwerte im Befehlsregister Null sind oder nicht. ¥enn sowohl X„ als auch B„ Ungleich-Null-¥erte sind, wird die Verzweigung zu CALCADDR+6 hergestellt.
In der Tabelle Yl auf der Zeile 9083 ist der Mikrobefehl an der Adresse CALCADDR+6 wie folgt definiert :
CALC1 1 EQU se
ALU=QPD
ALUD=LQ
MCU=RET
was bedeutet, dass der Inhalt von Q plus D in'das Quotientonregistor eingegeben und eine Rückkehr ziir rufenden Routine erfolgt.
Folgende Abschnitte der Mikroassembler-
sprachenprotokoilierung nach Tabelle VI stellen Beispiele den? Spezifizierung einiger erwähnten Unteroperationen dar, die zum Ausführen der Befehle dienen, aus denen der Un.iversal-Befehlsvorrat besteht. Zusammen mit der Erläuterung der durch jeden symbolischen Mikrobefohlscodenamen durchgeführten Funktionen, weiche Namßii in einer vollständigen Assemblerprotokollierung verwendet werden und direkt der Tabelle VI folgen, ermöglichen die erwähnten. Abschnitte der Assemblerprotokollierung· ein besseres Verständnis der Funk-
tionsweise dos Prozessors. Die Tabelle VI und die Erläuterung der Funktionen werden jedoch nicht als unbedingt erforderlieh für ein besseres Verständnis der Grundlagen der vorliegenden Erfindung betrachtet. Deswegen ist in diese
Beschreibung nicht die vollständige Asserablcrprotokolliorune , .
aufgenommen (etwa dreihundert Schriftseiten).
Wie sich der in Mikroprogrammierung bewandte Fachmann, vorstellen kann, ist die Art und Weise der
909842/0770
10 15 20 25 30
35
17.3-79 Of PHA.1036
Ausführung jedes Befehls des Befehlsvorrats in Mikrobefehlscode oft eine Frage der eigenen Wahl. Daher können zahlreiche Aenderungen in das spezifischen Mikroroutinen eingeführt werden, ohne aus dem Rahmen der Erfindung herauszutreten.
Die Mikroassemblersprachenprotokollierung
weiter unten gibt eine Anzahl Bemerkungen, die als kurzschriftliche Erläiiterung der durchzuführenden Funktionen für die erfahrenen Fachleute gemeint ist. Diese Bemerkungen haben einen rein erklärende Charakter und wirken sich nicht auf die aktuelle Mikrobefehlscodegenoration aus, die ausschliesslich durch die in den Spalten NAME und STATEMENT enthaltenen Daten bestimmt wird.
(Table Vl)
.Tabelle YI
LINE NAME STATEMENT COMlSiISNTS
ZEILE NAiME ANIiElSUNG BEMERKUNGEN
7OI8 EVEN
7019 FWALA EQU 3l
7020 MCU=CALL
7021 Ba=CALCADDR
7022 F=SDlSPL
7023 L=DDATAREG
7024 CD=CRXADD
7025 ALU=APB
7026 A.LUD=LQ
7027 AD=AS1619
7028 /
7029 F= SALR
"7030 ALU=Q
7031 L=DDATAREG
7032 CD=CO7ZERO
7033 /
703'i· MCU=JUMP
7035 BA=IFETCH
7036 ALU=D
7037 ALUD=LB
7038 AO=AMBSERV
909842/0770
17.3- 79 FWABC STATEMENT
LINE NAME ANWEISUNG
ZKiLE NAME BO=BINSTRD
7039 /
7θ4θ EQU se
8771 MCU=: JUMP
8772 BA=BC2
8773 CD=CSTATEXA
8774 CALC11 STS=BRMET
8775 F=SDCC
877ό SEND=CPU?.
8777 RCV=CPUI
8778 INTTABL EQU χ
9083 INTOPEND ALU=QPD
9084 ALUD=LQ.
9085 MCU=RET
9086 EVEN
13372 INTRSTRT EQU s.
13373 MCU=JUMP
13374 BA=INT-MCJIK
13375 /
13376 EVEN
13377 F=SFPDATAR
13378 MCU=JUMP
13379 INTIO BA=LDFS¥2
13380 ALU=Z
13381 ALUD=LQ
13382 /
13383 EVEN
13384 F= SLIT
13383 LIT=:CO
13386 AD=AECITCTl
13387 SEND=CPUI
13388 RCV^CPU2
13389 /
13390 F=IINTRPT
13391 MCU=JUMP
13392 BA=INTIOPC
13393
PHA.103Ö
COMMENTS
BEMERKUNGEN
LESEBEFEHL -ANFORDERN (REQUEST INSTRUCTION READ)
AUF MASCHTNENPRÜFUNG ÜBERGEHEN (GO TO MACHINE CHECK)
UNTERBRECHUNG ZURÜCKSTELLEN (RESET INTERRUPT)
psw aus nullstelle laden (go load psw from location zero)
AUFBEREITUNGSREGISTERMASKE . - -ZUSAMMENSETZEN (SETUP EDIT REGISTER
MASCHINENBETRIEB PRÜFEN (TEST FOR MACHINE MODE)
909842/Q77Q
17.3-79
LINE NAME PIIA. 1036
STATEMENT
COIMENTS
ZEILE NAME
13395 13396 13397 INTEXT 13398 13399 13400 13401 13402 13403 134θ4 13405 13406 13407 13408 INT0PEN4 13409 13410
13412 INTPGM 13413
13415 13416 13417 13418 13419 13420 13421 13422 13423 13424 13425
13427 1342s 13429
ANWEISUNG STS=BECMODE
CD=CIOSTAT
EVEN
F= SLIT
LIT=:OE
AO=AECITCTl
SEND=CPUI
RCV= C PU2
MCU=JUMP
BA=INTEXTBc
STS=BECMODE
CD=CIDSTAT
EV]DN
MCU=JIJMP
BA=INTMCHK
EVEN F=SLlT LIT=;FF Ao=AECITCTL SEND=CPUI RCV=CPU2
MCU=JUMP BA=INTPGMBC STS=BECMODE CO=CIDSTAT
EVEN Cd=CSVCINTR
MCU=JUMP
BA=INTSVCBC
STS=BECMODE BEMERKUNGEN
maske auf 0-15 bringen (get mask to zero 0-15)
MASCHINENBETRIEB PRÜFEN (TEST FOR MACHINE MODE)
MASKEN FUER AUFBEREITUNGSIiEGISTER AUSGEBEN (GET MASK FOR EDIT REGIS
MAS C III NENBETRIEB PRUEFEN (TEST FOR MACHINE MODE)
MAS CHIN EN BETRlIiB PRU FEN (TEST FOH MACHINE MODE)
909842/0770
17-3.79 &6 PHA.1036
LINE NAME STATEMENT COMMENTS
ZEILE NAME ANWEISUNG BEMERKUNGEN
13430 CO=CIOSTAT
13431 ' /
13358 INTSVCBC EVEN
AUSGEBEN ° 13359 F=SWRICREG (GET SVC NUMBER)
13860 L=DINTCODE IM PSW ZWISCHENSPEICHERN
13861 SEND=CPUO <SAVE IN PSW)
13862 RCV=CPU2
13863 SKPd=SVCSKPD
13864 MCU=JUMP
13865 BA=INTSVCEa
13866 /
13867 INTSVCEC EQU χ
BETIiIEB SANZEIGE UND STATUSBUSVORGAENGE
Wie bereits bei der Spezifizierung für den
Universal--Befehlsvorrat am Ende der Ausführung bestimmter Befehle beschrieben wurde, muss die Betriebsanzeige im PSW
(siehe Fig. 3 und h) auf einen Wert eingestellt werden, die 20
Informationen über das Ergebnis der Maschinenoperation gibt.
Zum Beispiel wird die Betriebsanzeige in der Ausführungsfölge von Befehlen, die Additionen und Subtraktionen (A, AH, AR, S, SIT5 SR) verwirklichen, auf einen der· Werte 00, 01,
10 oder 11 eingestellt um anzugeben, ob das Ergebnis Null, 25
negativ, positiv bzw. ein Ueberlauf war. Bei der Verwendung von Vergleichsbof ehlon(c, CfI, CIl) kann der Programmierer die Betriebsanzeige auf einen Wert einstellen, der angibt, ob die zwei Vergleiclisbefehl-Operandon gleich sind, und wenn.
nicht, welcher von den beiden grosser ist. 30
Die einzige Aufgabe der Einstellung der
Botriebsanzcige ist die Bestimmung, ob eine bedingte Verzweigung erfolgen wird. oder nicht. Zum Beispiel: Die Abzweigung bei der Betriebsanzeige BC prüft die Betriebsanzeige im PvSW ujid vergleicht sie mit einer codierten Nummer, 35
die im Maskonfo.1d (Bit.s 8...II) des BC-Befehls spezifiziert ist. Wenn eine Uoboreiustimrmujg auftritt, erfolgt eine Verzweigung zu dor im BC-Befehl spezifizierten Zweigadresse.
909842/0770 BAD
17-3.79 ßrf PHA.1035
(Der BC-Befehl besitzt das RX-Format, aber der erste Operand ist das Maskenfeld statt einer Registeradresse und der zweite Operand spezifiziert die Zweigadresse statt der Da t enadre s s e.)
Der Statusbus 72 (Fig. 1 und 13") spielt eine zentrale Rolle in der Ausführung der vom Programmierer geschriebenen Befehle, die die Betriebsanzeige einstellen und weiter auf Basis der Betriebsanzeigeneinstellung die Verzweigung ausführen.
ψ Wie in Fig. 13 dargestellt und in der Beschreibung an Hand der Fig. 1 erwähnt, empfängt der Statusbus 72 selektiv Statusinformationen direkt aus dem Rechen- und Steuerwerk 2.k und aus eiiiei" Anzahl anderer Quellen (noch zu ex1 läutern) über die Statusleitungen 73·
^ Die von-.der Einrichtung ^Qk■ in Fig. 7 erzeugte ALU-Statusinformatlon (die CNVZ-Bits, die angeben, dass ALU-Operationen einen Uebertrag, einen negativen ¥ert, Ueberlauf und Nullwert ergaben) haben nicht (notwendigerweise) den von den Spezifizierungen des Universal-Befehls-
Vorrats gegebenen ¥ert. Deshalb wird für die entsprechende Umsetzung der im Befehlsregister 22 enthaltene Operationscode zum Adressieren eines Betriebsanzeigen-Festwertspeichers (CO-ROM) 261 benutzt, der durch Betriebsanzeigenklasse angibt, auf welche Weise die ALU~CNVZ~Bits durch eine
logische Umsetzeinheit 263 in eine decodierte oder "Masken"-Normal-Vierbitform umgesetzt werden müssen, welche Umsetzeinheit selbst die Eingabe an einen Coder 267 weiterleitet Der Coder 267 liefert die codierte Zweibit-Betriebsanzoige an einen, codierten CC-Pufferspoicher 269, der selbst mit dem PSW-Register kh über den Arbeitsbus 10 in Verbindung steht·
Automatische Laden des PSWs mit der entsprechenden Betriebsanzeige lässt sich mit Hilfe der bei der Ausführung des ALR-Befehls (Add Logical Register) be-
nutzten Milcrobef ehle veranschaulichen.
In der Protoko3.1ierung; für den Mikrobefehl an einer Adresse FWAALR ist das A0-Feld auf den Wert ASCCODE
909842/0770
17-3-79 ' & PIJA. 1036
eingestellt, der bei der Decodierung bewirkt, dass die umgesetzte Betriebsanzeige aus dem CC-ROM 261 und dem Umsetzer 263 dem Statusbus 72 zugeführt wird. Im gleichen Befehl wird das B0-Feld auf den Wert BDSTAT eingestellt, wodurch der Coder 267 anspricht und er die codierte Betriebsanzeige in den Pufferspeicher 269 eingibt.
Dieser erste Mikrobefehl FWAALR ist ein
Uebergang zur Zweigadresse ALRNOJF, die das Lesen des nächsten Befehls anfordert, während die Betriebsanzeige , durch die Einstellung der Quellen-(f) und Ziel-(L-)-Felder auf die Werte SECC bzw. DCCODE in das PSW eingegeben wird.
Entsprechend den Spezifizierung für den Universal-Befehlsvorrat muss die im PSW am Ende der ALR-Befehlsausführung zurückgebliebene Betriebsanzeige folgende
Bedeutungen haben:
0 Auswertung = Null, kein Uebertrag
1 Auswertung γ- Null, kein Uebertrag
2 Auswertung = Null, Uebertrag
3 Auswertung ^ Null, Uebertrag.
Also worden die CNVZ-Bits aus dem Rechen-
und Steuerwerk 'Zh wie folgt durch den CC-ROM 267 und den Umsetzer 263 umgesetzt:
_.._,„ _. , . , -n j - τ. · Decodierte Betriebs-CNVZ Codierte Botriebsanzeige . /„, , . , \ anzeige (Ma s Icon ο χ t s ;
0001 00 1000
0000 01 0100
1001 10 0010
1000 11 0001.
Wie bereits erwähnt ist es die Aufgabe der Einstellung der 3ietriebsanzeige , Verzweigungen in den Durchführungen der Benutzerprograranie zu steuern. Zum Beispiel kann der Programmier ei" im Verlauf des ALR-Bef ehls, wie oben erwähnt, die Verzweigung zum Betriebsbefehl wie folgt schreiben
BC 2, ZCARRY
was bedeutet, dass eine Verzweigung zur Adresse ZCARRY hergestellt wird, wenn das Ergebnis der vorangehenden ALR-
909842/0770
17-3-79 >3 PHA.1036
Operation eine Null mit einem Uebertrag ist. (Der Wert 2 (dezimal) im BC-Befehl spezifiziert das Maskenfeld 0010 (binär) für diesen Betrieb.)
In der Mikrobefehlsprotokollierung fängt die Ausführung des BC-Befehls mit der Mikrobefehlsadresse FWABC an. Der Wert SDCC ist in das F-FeId (Quelle) angeordnet, um die decodierte Betriebsanzeige (Maskenbits) dem Arbeitsbus 10 mit Hilfe des Decoders 271 in Fig. 13 zuzuführen. Zu der Zeit aktiviert der 00-Feldwert CSTATEXA
' einen Komparator 273, der eine 1 auf die V-Leitung des Statusbusses 72 bringt, wenn das Maskenfeld im BC-Befehl der decodierten Betriebsanzeige (am Arbeitsbus 10) entspricht. Auch das Mikrobefehl-STS-Feld wird auf den Wert BRMET (HEX E,binär mo) eingestellt. Wie aus der Tabelle V ersichtlich, bewirkt dieser STS-Feldwert, dass das V~Bit am Statusbus zur unbedeutsamsten Bit stelle der Mikroprogramm-Speicheradresse geführt wird. Auf diese Weise erfolgt ein Uebergang zur geradzahligen Mikrobefehlsadresse BC2, wenn keine Uebereinstimmung vorliegt;, und zur Adresse BC^l, wenn
es keine Uebereinstimmung gibt. Gibt es keine Uebereinstimmung fordert der Mikrobefehl BC2 den nächsten Befehl an. Anders wird die Adresse des nächsten Befehls aus dem zweiten Operanden des BC-Befehls errechnet und in das PSW eingeführt, bevor der nächste Befehl angefordert wird.
Die verschiedenen Status leitungen 73 wirken.
auf die zuvor in den Mikrobef'ehl-FeIdwortbeSchreibungen def inierten Weisen. Diese xind damit zusammenhängen dB Status-Steuercodes enthalten den L-Feld-Mikrobitwert DSTATBUF, der den *l~Bit-Pufferspeicher (bei 275 in Fig 13 ) der decodier-
ten Betriebsanzeige aus dem Arbeitsbus 10 speist, die AO-Feld-Mikrobitwerte ASSKRRFLG-. der Bits in den Statusbus, die Index- und Null-Crundrogisteradressen angeben, eingibt, Insi3?uktionen und Paritätsfehlor ausführt, ADSTAT, der codies
te CC-Bits aus dem Register 2Ö9 in den Statusbus eingibt, 35
ASCNVZ, der die CNVZ-Bits aus dom Reckon- und Steuerwerk Zk ohne Umsetzung· in den Statusbus eingibt, ARRGTST, der Bits in den Statusbus eingibt, die migeradzali] ig/gnradzahlige
909842/0770
17-3.79 ß& PIlA. 1036
Mehrzweckregisteradressen ±ra Befehlsregister 22 sowie eine PER-Anzeige (Program Event Recording) oder Paritätsfehler angeben, sowie ASETEX, der den Instruktionsausführungsflag einstellt (der wie bereits erwähnt von ASERRFLAG getestet wurd). Weiter enthalten C^-Feld-Statussteuerbits: CCPUOSB, CCPU2SB, CSTATEXA, CSTATEXB und CIUSTAT. D0-Feldstatussteuerbits enthalten DOSFLAG 1 und DOSFLAG 2, die dem Statusbus mikroprogranimierte Steuerflags zuführen, die durch den EjzS-Feldwei.^t EDFLAGS eingestellt werden. Andere E^-FeIdsta- -tussteuerwerte enthalten ESTATIN, ESTAT2IN, ERDLRACC und EDATSTAT.
UNTERBRECIINUNGSBEHA NDLUNG
Neben der Betriebsanzeige, die wie bereits
früher erwähnt, eine wichtige Rolle in der Ausführung programmierter Vorz-weigungsbefehle spielt, enthält das Programm-Status-Wort (PSW) auch Informationen, die in von Hardware bewirkten Verzweigungen (sog. Unterbrechungen) verwendet werden.
Es lassen sich sechs Unterbrechungsarten
unterscheiden: (i) Maschinenpriifimgsimterbrechungen durch automatisch von Hardware detektiertc Maschinenfehlerbedingungen: (2) Programmprüfungnunterbrechungen durch Befehle oder Daten, dio eine·; von fünfzehn Bedingungen nicht erfüllen (sog. "Ausnahmen"); (3) der Supervisorrufunterbrechung,
die auftritt, wenn der SVC~Befehl ausgeführt wird, um ein im Supervisorzustand befindliches Systemprogramm zu rufen; (k) externe Unterbrochungen, dio durch den Punktunterbrechungsschlüssel ausgelöst werden, durch den System-Zeitgeber, oder durch externe mit anderen Computersystemen ver-
bundene Leitungen; (5) Eingabe/Ausgabe- (li/A )-Unterbrechungen, die auftreten, wenn ein E/A-Ivanal oder eine E/A-Einrichtung den Zentraiproaessor anruft: und (6) dio Wiederanlaufunter-· brechung, die bewirkt, dass der Zentralprozessor von der
Nullstclle an wiedoranläiift.
35
Wenn ein Betriebszustand eintritt, der eine
Unfcorbrechung erfordert, wird der laufende Befobl vollständig ausgeführt, Inforination:.n über die Unterbrechung werden
909842/0770 , BAD ORIGJNAL
17.3-79 ft PHA.1036
in das laufende PSW gebracht, und das laufende PSV wird anschliessend an einer mit "alte PSW-Adresse bezeichnete vorgegebene'Arbeitsspeicherstelle, geschrieben. Danach wird ein anderes PSV mit der Bezeichnung "new PSW"-Adresse aus einer zweiten vorgegebenen Arbeitsspeicheradresse genommen. Das neue PSV enthält die Adresse des ersten Befehls in einer Unterbrechungsbehandlungsroutine, ein der Unterbrechung;sart zugeordnetes Systemprogramm. Der letzte Befehl in der Unterbreclnmgsbehandlungsroutine ist ein LPSV-Befehl
, (Load PSV), der das alte PSV für den unterbrochenen Vorgang an die Stelle des latif enden PSVs bringt.
Es sei bemerkt, dass es sechs alte PSV-Adressen und sechs neue PSV-Ädressen gibt, je eine für jede der sechs Unterbrechungsarten und daher sechs verschiedene
ünterbrechungsbehandlungsroutinen.
Venn mehrere Unterbrechtingen gleichzeitig
auftreten, werden sie nach der Priorität behandelt. Maschinenprüfungsunterbrechungen werden an erster Stelle behandelt, anschliessend die Programmprüfungs- und Supervisorruf-Unterbrechungen (SVC- und Programinunterbrechungen können nicht gleichzeitig auftreten), externe Unterbrechungen werden an dritter Stelle, E/A-Unterbrechungen an vierter Stelle und schliesslich WiederanlaufUnterbrechungen an letzter Stelle behandelt.
Zur Vervollständigung treten die PSV-Speicher-
operationen in umgekehrter Prioritätsreihenfolge auf. Zum Beispiel wenn eine E/A-Unterbrechung und eine Maschinenprüfungsunterbrechung gleichzeitig auftreten, wird das laufende PSV für den unterbrochenen Vox· gang gespeichert, das neue
,
PSW für die E/A-Unterbrechung wird herangezogen und die E/A~UnterbrechungsanfragG wird freigegeben. Da jedoch die Maschinenprüfungsunterbrechung noch wartet, wird das laufende PSW für die E/A-Routine an der alten PSW-Stelle für
Maschinenprüfungsunterbrechungen gespeichert und das neue 35
Maschinenpz-üfungs-PSV wird in das laufende PSW-Register eingegeben. Arn Ende des Maschinenprüfi-ingsvorgangs gibt der LPSV-Befehl das alte Maschirionprüfungs-PSV EIN (das faktisch
9098A2/0770
17-3-79 β® ΡΗΛ.1036
das ursprüngliche neue E/A-Routine-PSW ist).
Das Programm-statuswort (PSW) enthält Maskenbits, die das Auftreten ausgewählter Unterbrechungsarten verhindern, sie aber nur warten lässt. Bitstellen 0...6 des PSW (im BC-Betrieb) dienen zum selektiven Verhindern von E/A-Unterbrechungen aus sieben Kanälen. Bitstelle 7 unterdrückt oder gewährt externe Unterbrechungen. Bitstelle 13 (das M-Bit im AMIiP-FeId) steuert Maschinenprüfungsunterbrechungen. Das Vierbit-Programrnaskenfeld ermöglicht Unterdrückung von Unterbrechungen von vier Programmausnahmearten. Wie bereits erwähnt bei dem erweiterten Steuerbeti*ieb (EC-Betrieb) werden Maskiortmgs- und Unterbrechungsüberwachuugsmöglichkeiten durch die Verwendung von Steuerregisterfeldern in Zusammenarbeit mit dem PSW stark vergrössert.
In einer Ausführurigsform nach der Erfindung
wird das Auftreten einer unmaskierten Unterbrecliungsanfrage am Ende dor Ausführung eines jeden Befehls und vor dem Empfang des folgenden Befehls kontrolliert und, wenn eine derartige Anfrage vorliegt, wird eine von der Ilardv/are bewirk-20
te Verzweigung nach einer vorgegebenen Mikrobefehlsadresse hergestellt. Gleichzeitig wird die Unterbrechriungsart in einen "Unterbrechiiungsvektor" codiert, der die Zweigadresse für diese zu dieser Unterbrechungsart benötigte Mikroroutine
auswählt.
25
Die Hardware-Anordnung zum Behandeln von
Unterbrechungen ist im allgemeinen in Fig. lh dargestellt.
Wenn ein E/A-Kanal anruft, wird ein E/A-Unterbrechungsanfragoflag für diesen Kanal in das B/A-Anfrage-
register 303 eingesetzt. Wenn Unterbrechungen für diesen 30
Kanal durch ein Bit in der Systemmaske des PSW maskiert werden, unterdrückt das Gatter 305 diese Unterbrechung. Sonst wird die Kanal- und Einrichtungsadresse, die Wartung benötigt, in das E/A-Unterbrechungscoderegistor 307 gebucht.
Gleichzeitig bringt der Coder 309 (der die fünf Unterbre-35
chungsarten sowie die Wiederanlaufaiifrage überwacht) einen codierten numerischen Wert in das Untcrbrechimgsvoktorregister 31"!· Der auf diese gespeicherte Wort gibt die Unterbrechurigsart wie folgt aji:
909842/07 7 0
17-3-79 ßn PHA.1036
Unterbre chnung Vekt or en
000 Nicht benutzt
001 Wiederanlauf
010 E/A
5
011 Extern
100 Nicht benutzt
101 Programm
110 SVC
111 Maschinenprüfung
Der SVC-Anfrageflag 315 wird bei der Ausführung eines SVC-Bofehls gesetzt (siehe den Mikrobefehl mit der Adresse FIvASVC). Der S\rC-Anf rage flag wird vom Mikrobefehlscode B0=BSVC gesetzt und vom Mikrobefehlscode Cß= CSVCINTR zurückgestellt . Die S\*C-Anfrage ist nicht markierbar .
Externe Unterbrechungsanfragen im Register
317 werden, wenn nicht vom Gatter 318 maskiert, durch das Acht-Bit-Register 321 für den Code der externen "Unterbrech-2Q ungen identifiziert, der angibt, ob der System-Zeitgeber, der Pultunterbrechurigsschlü&sel oder externe Leitungen 1...6 die Unterbrechung anfragten.
Ma sch inenpiüfungßunterbre el; Imgsanfragen
(zum Beispiel durch J'aritätsf ohlerdetektii on erzeugt) setzt das Maschinenprüfungsregistcr 3-^-3 « Ma sch in enprüfungpuii t erbrochungen lassen sich durch das M-Bit im PSV, das das Gatter 325 steuert, unterdrücken (jedoch in der V'artestollung gehalten).
Viederaniatifanfragen (über den Wiederanlauf-3Q anfragekaopf auf dor Frontpia tt ο) setzt das llegi star 333·
Prograviirnunterbrpchungon gibt es in fünfzehn
Arten, die Ausnahmen genannt worden und nächsteh end aufgeführt sind :
909842/0770
17.3.79
PHA.103d
29 1 3A92
Tabelle VI
Unterbrechnungscode (dezimal)
Ursache der Unterbrechung Bemerkungen
1 2
Operation
Privilegiert Opera tion
Ausführen
Schutz
Adressierung
Spezifizierung
7 Dei t on
8 1'1O atl.cmuia
überlauf
9 J'Ost ]',o mim
toilen
Kein derartiger Oporationscode Der Operationscode ist nur im Supervisox'betrieb ausführbar. Falsche Verwendung des Ausführung sbe fehl s .
Speicher- oder Entnahmescliutzbruch.
Adresse befindet sich ausserhalb der Begrenzung des verfügbaren Sj>elchers im eingesetzten Computer .
Ein j η einem Befehl spezifizierter Operand :i st formal falsch: a. Ausrichtung auf Anfangsadresse, "b . Gleitkomma—Register 1, 3i 5 oder 7 bis 15 wird spezifiziert ,
c 4 Keg:i storoperandadresse ist ung-evadzah] ig in D--, DIi-, M- und MR-Befohlen, d. Verzweigung zu einer ungerad-
zahl igen Adresse. G ο pa c k 1 ο r JJo ζ 1 nia 1 ο pc- rand ha t nicht das gepackte Dozimalformat. Ergebnis ist zu gross zum Ausdruck on in 32 33its. ti. Toi Jung dor ganzen Dualzahl durch 0,
b. Quotient zu gross zum Ausdrücken In 3<- Bits,
c. JOr gob η is eino^s C\'l!-Bef clils zu gross; :>:iiTii Ausdriu-hon in 3-
909842/0770 BAD O
17.3.79 ' ߧ HIA. 1036
10 Dezimal Es tritt Ueberlauf auf bei der
Addierung oder Subtraktion von zwei gepackten Dezimalnummern.
11 Dezimalteilen Quotient in gepacktem Dezimal ist zu gross.
12 Exponenten- Das Gleitkomma-Ergebnis ist überlauf gleich oder grosser als 16 .
13 Exponenten- Das Gleitkomma-Ergebnis ist
überlauf gleich oder kleiner als 16
J"- 1 *f Stellenwert Die Gleitkomma-Operation ergibt
einen Allnullen--Bruch.
15 Gleitkomma- Gleitkommateilung durch 0. teilen.
In einer Ausführungsform der Erfindung können Programmausnahinen durch Hardwai^e direkt detektiert werden, die eine Progi^ammuriterbreclxiTUiigsanfrage in das Register 337 bucht, oder kann bei der Durchführung einer Mikroroutine detektiert und über den Arbeitsbus 10 auf ein besonderes Register mit der Bezeichnung Progratnraunterbrechungsregister (FIR) bei 3^0 in Fig. 14 übertragen werden. Der Wert in PIR 3A0 wird von dex1 Einheit 3^2 decodiert, von deren Eingängen einige direkt mit Ausgängen des Registers 337 kombiniert werden können, d.h. einige Unterbrechungen können direkt detektiert und von der Hardware angefragt werden, oder anders durch"Weiterleitung des entsprechenden codierten Werts zum PIR 3^0 angefragt werden.
Vier der Programiiiausnahmen können daran gehindert werden, eine Unterbrechung zu verursachen, indem Bits in der Prograinmaske des PSV maskiert werden:
ν-Bit s toi Je Ausnahme
36 Fe s tkomuiaübor lauf
37 De ζ inia lüb er 1 auf
38 Exponentenüberlauf
39 S t e 11 enwer t.
Die Programmaskc kann durch SPM-Befehl, einen nicht privilegierten Befeli3, gesetzt; werden, um ein System ohne be-
909842/0770
17.3-79 &v PHA.1036
stimmte automatische Unterbrechungen zu simulieren.
Programmunterbrechungsanfragen, die nicht
maskiert sind, werden an den Coder jkk weitergeleitet, der den die Ausnahmeart identifizierenden (siehe Tabelle VI, oben) Prοgrammunterbrechungscode zum Programraunterbrechungscoderegister 3^7 zuführt.
Mit der obigen allgemeinen Beschreibung der
Unterbrechungshardware als Hintergrund wird jetzt die Aufmerksamkeit darauf gelenkt werden, wie in Einzelheiten J0 Unterbrechungen beim Mikrobefehlsvorgang behandelt werden.
Zunächst ist zu berücksichtigen, dass während einer Unterbrechungsanfrage zu jeder Zeit auftreten kann, sie nur am Ende jener Mikroroutine wirksam wird, die einen Benutzerbefehl ausführt. Jede derartige Mikroroutine ^ schliesst mit einem Sprung zur Mikroroutine, die mit der Adresse IFETCH (Befehlsausnahme - Instruction fetch) anfängt. Dieser abschliessende Sprung-Mikrobefehl hat folgende allgemeine Form:
MCU = JUMP
BA = IFETCH
Ά0 = AMBSEIiV
B0 = BINSTRD
Der B0-Feldwert BTJSTSTRD ist eine Anfrage zum Arbeitsspeicher für ein ge spei, chert es Wort und verspricht faktisch, dass die Adresse dieses Yorts beim nächsten Mikrozyklus am Arbeitsbus vorhanden ist» (Wenn die IFETCH-Routine faktisch eingeführt ist, steht die nächste Befehlsadresse beim nächsten Speicherzyklus durch die Mikrobits F = SPS¥2 und L = DMSMBUS zur Verfügung.)
Jedoch bestimmt der A0-Feldwert AMBSERV (mildem JUMP zu IFETCII gleichzeitig ausgegeben) erst, ob sich eine unmaskierte Untex'brechungsanfrage in der Wartestellung befiiidet, die eine höhere Priorität hat als die Priorität
des ausführenden Vorgangs. Wenn eine derartige Anfrage vorliegt, wird eine vorgegebene Mikrobefehlsadresse in den Mikroprogrammspeiclier 50 eingeschoben, wie schernatisch bei
909842/0770
17.3.79 ?rf PHA.1036
36θ in Fig. 14 angegeben.
Also bewirken alle sechse Unterbrechungsarten eine Verzweigung zum Mikrobefehl mit der Adresse INTRPT (Stelle 6). Dieser Mikrobefehl ist ein Sprung zu
° einer Tabelle von Unterbrechungsbehandlungs-Mikrobefehlen, die bei der Zweigadresse BA = INTTABL anfängt, wobei der betreffende Befehl dazu abgezweigt wird, um durch die Summe der Adresse INTABL und eine Distanz, die zuvor vom Coder 309 in das Unterbrechnungsvektorregister eingegeben wurde, bestimmt zu werden.
Zum Beispiel, wenn eine SVC-Unterbrechungsanfrage gestellt wird, verzweigt sich der INTRPT-Befehl zur Adresse INTTABLE (Zeile 13372) + 2-mal den Unterbrechungsvektorwert für die SVC-Arifrage (2x6) =B (HEX) , wodurch die Adresse INTSVC (Zeile 1342*1·) erhalten wird, die den Einzelfeldwert C0=CSVCINTR enthält, der das SVC-Anfrageregister 315 zurückstellt= Anschliessend wird auf der Zeile 13^27 eine Verzweigung nach einer oder zwei Adressen INTSVCBC (oder Zeile 13858) oder INTSVCEC (auf der Zeile 13867) in -Abhängigkeit von der Verwendung des BC - oder EC-Betriebs gemacht.
Nach diesen Verzwcigungsoporationen wird der Unterbrechungscode in das laufende PSXv' gebracht. Bei einer SVC-Unterbrechung ist der in das PSW gebrachte Code der
Operand aus dom SVC-Befehl, der zuvor in einem der Zwischenspeicher-Betriobsregister zwischongespoichert war. Für Ii/A-, externe und Programmunterbrecliungcn werden die Inhalte der E/A-, externen und Programmunterbreohungscoderegistor 3O75 321 bzw, 3^7 in das PSW gebracht. Maschinenprüfungsimter-
brechungscodes werden im BC-Betrieb--PS¥ nicht zwischengespeichert .
Nachdem der Unlerbrecliungscodo und der ITvC im laufenden PSW zwischengespeichert sind, wird das alle
PSW zwischengespeichert, das neue PSW für die UntorbrechungH· 35
behändlurigsroutine aus dem Arbeitsspeicher herangezogen und (wenn nicht bereits vervollständigt) die Unterbrechung freigegeben.
909842/0770
17-3.79 J?"£ PHA. 1036
¥ie bereits früher erwähnt wurde, werden
Unterbrechungen nur zur Zeit direkt vor dem Eintritt der IFETCH-Routine wirksam. Die einzige Ausnahme dabei ist der WAIT-Befehl an Stelle 2, der wie folgt definiert ist: WAIT EQU +
MCU = JUMP
BA = ¥AIT
AjO = AMBSERV
J" ¥ie ersichtlich ist, ist der ¥AIT-Mikrobefehl eine Einbefehlschleife, die ununterbrochen Unterbrechungsanfragen überwacht .
DYNAMISCHE ADRESSUEBERSBTZIING
"Virtuelle Speicher" ermöglichen es, einen
Computer mit begrenzter Arbeitsspeicherkapazität zu programmieren, als wäre ein viellängerer Speicheradressraum verfügbar. Vor der Durchführung einer Bearbeitung für einen Benutzer werden seine Programme und Daten in einen Plattenoder Trommelspeicher (sog. Hintergrundspoicher) eingegebem.
Informationen im Jiintergimndspeieher werden in "Segmente" verteilt und jeder Segment wird in "Seiten" weiter unterteilt. Befehls- oder Datenseiten werden dann aus dem Hintergrundspeicher auf den Arbeitsspeicher übertragen, was für die Durchführung der Bearbeitung erforderlich ist. Da im
Arbeitsspeicher Selten gespeichert sand, werden ihre wirklichen Adressen in ein Inbaltsverzoichnissystein eingeführt. Beim Gebrauch dieses Irjha3.tsver;ceichri:i.sses werden die vom Programmierer geschriebenen virtuellen (oder "logischen") Adressen in wirklichen (oder "physikalischen") Adressen
vor joder Spoicherausgabe— oder Speichcroingabeoperation umgesetzt.
Im vorliegenden Computer sy stem wird die Umwelt des virtuellen Speichers durch Operationssystemprogramrnc realisiert, bei denen besondere Hardwarc-Einrich-
tuiigen verwendet werden; insbesondere die d3rnainischo Adressübersetzungseinheit 1-Ί (l)AT--E_lTiht:i t) nach Fig. 1. Die DAT-Einhoit 1^1 setzt virtuelle Speiclioradressen in wirkliche
909842/0770
17-3.79 & ■ PHA.1036
Speicheradressen um, wenn sich die Zieldaten im Arbeitsspeicher befinden, und bewirkt eine Unterbrechung, wenn die Zieldaten nicht vorhanden sind. Die Organisation und der Betrieb der DAT-Einheit 14 ist in Fig. 15 dargestellt. Die zum Durchführen virtueller Speicheroperationen verwendete Information enthält das DAT-Schaltbit an Bitstelle 5 im EC¥-Betrieb-PSW befindlich, wie weiter unten noch erläutert wird), zwei Bits, die angeben, ob die Seitenabmessungen des Steuerregisters 46 2K oder 4K sind (Bitstellen 8 und 9 in einem Steuerregister θ), zwei Bits, die angeben, ob die Segmentabmessungen 64K oder 1M sind (Bitstellen 10 und 11 im Steuerregister Null (46a)), Bits O...7 im Steuerregister 1 (466), die die Länge der Segmenttabelle in Einheiten von 64 Bytes (als Kontrolle verwendet) angeben, und Bits 8...31 des Steuerregisters 1, die die Anfangsadresse der Segmenttabelle enthalten (sog. "segment table origin" oder "STO").
In Fig. 15 wird eine logische Adresse,wie
sie vom Programmierer geschrieben ist, in drei geteilt:
eine Segmentnmmner,.eine Seitennummer und eine Distanz.
Der Vorgang zum Uebersetzen einer logischen oder virtuellen Adresse in eine wirkliche Adresse umfasst eine zweistufige Tabellensuchopcration, die von der DAT— Einheit-Hardware durchgeführt wird. Zunächst wird der Seg-
mentnummeranfang im Steuerregister 1 zur Segmentnummer hinzugefügt, um die wirkliche Adresse im Arbeitsspeicher eines Segmenttabelleneintrags zu erhalten, der bei 201 in Fig. angegeben ist, Der Segmenttabelleneintrag 201 enthält die Adresse des Anfangs einer Seitentabelle. Diese Seitentabel-
lenanfangsadresse w:Lrd dann dem Seitennumtnorteil der logischen Adresse hinzugefügt, um die Arbeitsspeicheradresse des Seitentabelleneintrags 203 nach Fig. I5 zu erhalten.
Der Seitentabelleneintrag 203 enthält die
wirkliche Adresse des Anfangs der die Zieldaten enthalten-35
den Seiten. Also wird der Eintrag 203 aus dem Speicher ausgelesen und dem Distanzteil der logischen Adresse hinzugefügt, um die- wirkliche Adresse der Zieldaten bei 205 zu
909842/0770
17-3-79 J^ PIIA. 1036
erhalten.
Neben den Adressen enthalten die Segment-
imd Seitentabelleneinträge auch Flagbits, die gesetzt werden, wenn ein Zielsegment oder eine Zielseite im Arbeitsg
speicher nicht vorhanden sind. Wenn ein Tabelleneintrag aus dem Speicher bezogen wird, der angibt, dass die Zieldaten nicht vorhanden sind, wird eine Unterbrechung ausgelöst, um Speicherverwaltungsoperationssy steinroutinen aufzurufen Es sei hier betont, dass der Tabellensuchadressübersetzungs-
' mechanismus mit Doppelabruf eine Hardware-Funktion ist, die jedesmal dann automatisch von der DAT-Einheit i4 durchgeführt wird, wenn Speicherabruf- und Schreiboperationen durchgeführt werden (Ausnahmen dabei sind, (i) wenn das
DAT-Schaltbit im PS¥ auf Null gesetzt wird, odo3.- (2) wenn .
das Mikrobefehlscode-E-Feld den Vert EVEQR (virtuell gleich reell) enthält, in welchen Fällen logische Adressen als wirkliche Adressen behandelt werden, oder (3)j wenn die wirkliche Adresse für eine gegebene logische Adresse bereits
im Adressumsetzungsspeicher (tLB) vorhanden ist, der nach-20
stehend erläutert wird). Dieser Adressumsetzvorgang, der von der DAT-Einhelt-Hardwaro ausgeführt wird, ist nur ein geringer Teil der virtuellen Speicberverwaltungsfunktion. Es obliegt den residenten Operationssystemprogrammen, das
abwechselnde Ein- und Auslagern von Daten zwischen dem Ar--25
beitsspoicher und dem Hintergrundspeicher zu steuern und die erforderlichen Informationsstrukturen einschliesslich der Segment- und Seitentabellen aufrechtzuerhalten.
Operationssystemstrategien zum Zuordnen
wirklicher und virtueller Speicherung können sich 'wesent-'
lieh unterscheiden. Zum Beispiel in der IBM OS/VS1-Umgebung werden Segment- und Seitentabellan bei der Systeminitialisierung aufgestellt und nachher werden die Seitentabellen während des Systemb'otriebs modifiziert, um die Zuordnung von Arbeitsspeicberraum zu virtuellem Speicherraum wiederzugeben. In der OS/VS2-Umgebung wird nur die Segmenttabelle während des einleitenden Programmladens (!PL) geschaffen wird. Danach wird die Segmenttabelle modifiziert und Sei-
909842/0770
17.3.79 · y$ PHA.1036
tentabellen werden geschaffen und entfallen, sobald dies durch die dynamische Zuordnung und die dynamische Aufhebung der Zuordnung virtueller und wirkliche Speicherung erforderlich ist.
Derartige Operationssysteni-Speiclierverwal-
tungsprogramme benutzen eine Anzahl privilegierte Befehle im Universal-Befehlsvorrat, die die Operation der Adressumsetz-Hardware verwirklichen. Mit den virtuellen Speicheroperationen zusammenhängende Befehle enthalten die LRA-(load real address), PTLB- (purge translation lookaside buffer), LCTL- (load control), und RRB- (reset reference bit)-Befehle."Für ein besseres Verständnis der Art dieser Befehle ist es jedoch notwendig, den Aufbau der DAT-Einheit lh mit weiteren Einzelheiten zu beschreiben.
Wie oben beschrieben, erfordert eine Adressübersetzung die Durchführung zweier Speicherabrufoperationen, um die Adresse der Zieldaten zu berechnen, die dann bei einem dritten Spoicherzugriff abgelaufen (oder gespeichert) werden musson. Diese 3-zu~1-Herabsetzung lässt sich
durch die Vorwendung eines besonderen, hochgeschwindigen,
' direkt adressierbaren Speicher, den Adrcssumsetzungsspoic))er oder TLB, weitgehend eliminieren. Der TLB speichert eine begrenzte Anzahl wirklicher Adressen, die zuvor bei früheren Speicherzugriffen berechnet waren, und macht sie sofort 25
verfügbar, um den normalen AdressUmsetzvorgang umgehen zu können.
In einer Ausführungsforni der vorliegenden Erfindung bekommt der Adre s surnse t ζ spe icher die Form eines
untergliederten Speichers mit direktem Zugriff (RAM), der 30
durch die Kombination einer Bonutzter-Untorgliederungsnummer und der Bits mit niedriger Ordnung im Rcgtpentnuramer/ Seitonnummer-Teil der logischen (ankommenden) Adresse adressiert wird.
Logische Adressen sind wie wirkliche Adres-35
sen 2h Bits !fing. Wenn die Seitenabraessungen 2K betragen (wie durch die Seitenabmessungsbits im StenerTogister O angegeben), ist der Byte-Distanzteil dex* logischen Adresse
909842/0770
17.3-79 ■ Jf^ PIiA. 1036
11 Bits lang. Der Distanzteil der wirklichen und virtuellen Adressen sind immer identisch, was bedeutet, dass die 11 niederwertigen Bits einer wirklichen Adresse nicht in den TLB geschrieben zu werden braucht. Nur d-'e 13 hochwertigen Bits müssen gespeichert werden. Dazu ist darauf zu achten, dass ein einziger TLB-Eintrag alle Information zum Umgehen des Adressumsetzvorgangs für eine ganze Seite (2Κ) mit Adressraum enthält.
Wenn eine TLB-Abmessung von 1024 (ΐκ) Einträgen gewählt und in 8 Bezirken von je 128 TLB-Einträgen untergliedert, sieben Bits werden zum Adressieren eines gegebenen Eintrags innerhalb einer Untergliederung und drei Bits zum Identifizieren der besonderen Untergliederung benötigt.
In einer weiteren Ausführungsform der Erfindung wird die DreibituntorgliederungsimmiTier in einen Benut» zer-Untergliederungszähler bei 211 in Fig. 15 geschrieben. Dieser Zähler adressiert auch einen 8-Stufen-Segmenttabel-
lenanfangsstapel (STO-Stapel), siehe 213. 20
Der STO-Stapol 213 dient zum Festhalten des
' Segmenttabellcnanfangs (aus dein Steuorrogister 1) und der Segmenttabellen- und Seitentabellen-Abmessungsciaton (aus dem Steuerregister θ), wenn ein Bonutzervorgang mit verschiedenen Speicherabbildungs-.Inhaltsverzeicbnissen Steuerung1
des Prozessors voraussetzt. Vor dor detaillierteren Boschreibung der Funktion des STO--Staj>els 213 wii'd jedoch erst die Operation dos TLB innerhalb einer einzelnen Benutzeruntergliederung erläutert.
Eine einzige 128-Stellen-TLB-Unterglioderung
ist ganz allgemein in Fig 15 bei 215 angegeben und ein individuell or TLß-Eiritrag innerhalb dieser Untergliederung ist mit 217 bezeichnet. Die Adresse eines jeden TLB-Eintrags besteht aus drei hochwertigen Bits (der Untergliedo ■·
rungsnuniiner) aus dem Bcmutzer-Untorgliederungszähler 211 35
und einer Siobenbdt-Distanz, die aus den zwei niederwertigen Bits dor Segmentnunimer plus der Fünfbit-Soitennummer der logischen Adresse bestellt .
9098A2/0770
17-3.79 PHA.1036
ft 2913Α92
In einem Speicherzugriff-Maschinenzyklus
beginnt der Adressumsetzvorgang einschliesslich des Abrufens τοπ Inhaltsverzeichnistabellen gleichzeitig mit dem Versuch zur Bestimmung, ob die benötigte wirkliche Adresse bereits im TLB gespeichert ist.
Da die sechs hochwertigen Bits des Segmentnummerteils der ankommenden logischen Adresse nicht zum Adressieren des TLB benutzt werden, werden diese sechs Bits mit einem Sechsbitfeld des TLB-Eintrags mit der Be-
«10 zeichnung 217B verglichen. Dieses Sochsbitfeld enthält die sechs hochwertigen Bits der früheren logischen Adresse, deren entsprechende wirkliche Adresse zuvor berechnet und bei 217B gespeichert war. Wenn diese zwei Sechsbitfelder übereinstimmen, was durch einen Komparator bei 221 festgestellt wird, ist es bekannt, dass die wirkliche Adresse bei 217c die gewünschte Adresse ist, vorausgesetzt, dass das Gültigkeitsbit 217A (siehe weiter unten) zum Ausgeben eines gültigen TLB-Eintragssignal aus dem Gatter 223 eingestellt ist. Die Ausgabe eines gültigen TLB-Eintragssignals
bewirkt, dass die hochwertigen wirklichen Adressbits aus 217 mit der logischen 1 1-Bit-Ädressdista-nz kombiniert wird, um sofort die gewünschte 2^-Bit-Adresse der Zieldaten bei 205 zu bilden, und beendet vorzeitig den zeitraubenden Mehrabruf-Adre s sums e t ζvorgang.
Wenn ein virtueller Speicher zugriff erfolgt,
wird der Versuch gemacht, Adressumsetzung durch die Ortung eines gültigen TLB-Eintrags zu vermeiden. Wenn es keinen gibt, werden die Segment- und Seitentabellen abgerufen, die wirkliche Adresse wird berechnet und ihre dreizehn
hochwertigen Bits werden an einer Stelle in den TLB eingegeben, die durch den Wert im Benutzer-Untergliederungszähler 211 und durch die sieben niederwertigen Bits des Segmentnummer/- Seit ennuimner toi Is der logischen Adresse bestimmt.
Gleichzeitig werden die sechs hochwertigen Bits äoT logischen 35
Adresse im TLB-Eintrag gespeichert und das Gültigkeitsbit wird gesetzt.
Wenn ein Benutzervorgang zum ersten Male
S09842/077Q
17.3-79 j4 PHA.1C36
H 2313492
gestartet wird, enthält seine TLB-Untergliederung keine gültigen Einträge. Da bei diesem Vorgang auf jede Seite zum ersten Male zugegriffen wird, wird ein TLB-Eintrag dafür angefertigt und künftige Referenzen zu dieser Seite können Adressunisetzung umgehen. Da 128 Einträge verfügbar sind in jedor Untergliederung und da jeder derartige Eintrag die Information enthält, die zur direkten Bildung der wirklichen Adresse für eine Seite von 2K Bytes benötigt wird, kann eine einzige TLB-Untergliederung direkte Abbil-
} dung eines 256K Byte Adressraum für einen jeden der acht Benutzervorgänge liefern.
Vom Standpunkt der DAT-Hardware wird jedesmal ein "neuer Benutzervorgang geschaffen, wenn ein LCTL-Befelil (load control) ausgeführt wird, um den Inhalt des
Steuerregisters 0 oder des Steuerregisters 1 zu ändern.
¥enn die Ausführung eines LCTL-Befehls eine Aenderung der Segmentabmessimg, der Seitenabmessung oder der Segmenttabellenanfangswerte bewirkt, wird auf einen abweichenden Satz von Inhaltsverzeichnissen zugreifen und frühere TLB-Ein-
träge werden nicht entsprechend den Zusammenhang zwischen logischen Adressen im neuen Vorgang und den richtigen wirklichen Adressen ergeben, ifenn der Komparator 221 auch eine Hebereinstimmung angibt. Deshalb wird das Gültigkeitsbit verwendet, um formal falsches Umgehen der Adressumsetzung zu vermeiden.
Wäre der TLB nicht untergliedert, würde
der vollständige TLB jedesmal nutzlos gemacht werden, wenn der Seßnienttabellenanfang, die Segmentabmessung oder die Seitenabmessung geändert wui'de. Ausserdem wäre es notwendig,
die Bearbeitung zu verzögern, bis der ganze TLB gelöscht werden könnte, indem ein ungültiger Flag an die Gültigkeitsbitstelle aller TLB-Einträge eingesetzt würde.
In einer Ausführungsforrn der vorliegenden
Erfindung sind diese Schwierigkeiten mit Hilfe des B nutzerc
Untergliederungszählers 211 beseitigt, der in Kombination mit dem untergliederten TLB und dem STO-Stapel 213 arbeitet. Bei jeder Aenderung in der Segmenttabellenanfangsadresse,
909842/0770
17.3-79
in der Seitenabmessung oder in der Segmentabmessung durchläuft der Benutzer-Untergliederungszähler nacheinander die STO-Stapelexnträge. Jeder STO-Stapeleintrag enthält die Seitenabmessung, die Segmentabmessung und die STO-Adresse eines zuvor durchgeführten Benutzervorgangs. Wenn eine UebereinStimmung gefunden wird, stoppt der Zähler 211 und wird dabei auf die entsprechende TLB-Untergliederung gerichtet. Yird keine Uebereinstimmung gefunden, so stoppt der Zähler 211 und ist auf den ältesten STO-Stapeleintrag «· gerichtet. Der Yert im Zähler 211 wird dann an die hochwertigen Bitstellen eines Löschzählers 231 gebracht, der 128 Inkremente zyklisch durchläuft, um ungültige Flags an die Gültigkeitsbitstellen eines jeden der 128 TLB-Einträge innerhalb der gelöschten Untergliederung zu bringen.
Untergliederungslöschen erfolgt also auf
einer "first-in first-out"-Basis (FIFO). Obgleich man sich denken könnte, dass eine höhere Wirksamkeit durch die Verwendung eines "zuletzt benutzten" Ersetzungsalgorithmus erreicht werden könnte, rechtfertigt die geringe Verbesse—
rung, die erhalten wird, nicht die erforderlichen Vergrösserung der Hardware— und Bearbeiturigskomplexitat.
Wie aus obiger Beschreibung hervorgeht, sind
virtuelle Speicheroperationen für Aufgabexiprogramiae unsichtbar. Jedoch sind im Universal-Bofehlsvorrat ausgewählte
privilegierte Befehle verfügbar, die dem Systemprogrammierer eine gewisse Einsicht in die Steuerung über virtuelle Spoicherfunktionen gibt. Der LPSW-Befehl (LPSW = load program status word) kann zum Setzen des DAT-Schaltbits verwendet werden. Der LRA (load real address instruction)
kann zum Umsetzen einer logischen Adresse in eine wirkliche Adresse oder zur Prüfung der Inhaltverzeichnis tabοIlen verwendet werden, um zu bestimmen, ob eine gegebene Seite im Speicher vorhanden ist. Der PTLB--lief oh 1 (purge translation lookasido buffer) kann ausgeführt werden, um ein un-35
gültiges Flag an die Gültigkeitsbitstolle aller 102^ TLB-Einträge zu bringen (kennzeichnend, zu Xnitialisionmgsze.it oder bei Wiederanlauf). Vollständiges TLB-Lösehon erfolgt
909842/0770
17.3.79 pd PMA. 1036
durch das Eingeben des Werts EPURGALL in das E-FeId eines Mikrobefehls. Der privilegierte Befehl LCTL (load control), der den Inhalt des Steuerregisters 0 oder 1 ändert, wird durch das Eingeben des Werts EPIIRGUSR in das E-FeId ausgeführt, um nur den Inhalt jener Untergliederung zu löschen, auf die der Benutzer-Untergliederungszähler in diesem Augeiablick gerichtet ist . E-Feld-Mikrobitwerte ELUSR und EBUMPUSR ermöglichen das Eingeben bzw. Erhöhen des Benutzer-Untergliederungszählers unter Mikrobefehlscodesteuerung.
Das privilegierte Befehls-Rückstell-Referenzi >it w'rd in der Kombination mit Speiclierschutz-Hardware verwendet, um dem Systemprogrammierer bei der Schaffung virtueller Speicherverwaltungsroutinen zu helfen. Wie bereits erwähnt, wird jedem 2K Block des Arbeitsspeicher-Adressraums ein ^-Bit-Speicherschutzscblüssel zugeordnet. Zusätzlich zum 4-Bit-Schlüssel werden jedem 2K Block ein Abrufschutzbit, ein Referenzbit sowie ein Aonderungsbit zugeordnet. Wenn das Abrufschutzbit oiiic 1 enthält, sind sowohl Abruf-- als auch Speicheropera üionen zugelassen, sonst ist
nur Abruf zulässig. Die Speicherschutz-Hardware überwacht den Betrieb eines jeden 2K Blocks des Speichors und setzt das Referenzbit jedesmal auf eine 1, wenn eine Referenz (Speicherung oder Abruf vom Zentralprozessor oder einem Kanal) über diesen Block gemacht wird. Speicherung in den
2K Block setzt das Referonzbit und das Aeiiderungsbit fort.
Das Rückstell-Reforenzbit ermöglicht es,
das Referonzbit für jeden 2K Speicherblock durch Programmierung zurückzustellen, wobei die anderen sechs Bits des Schutzschlüssels ungeändert bleiben. Zum Beispiel kann
durch Rückstellen aller Ref orenzbit s über eine ausgewählte Strecke dos Speicheradressrauins und spa'tor durch Prüfung dieser Strecke zum Identifizieren nicht aktiver Blöcke virtueile Speicherverwaltungis-Software jene Blöcke wählen,
die sich am besten für Zuordnung zum virtuellen Speicher 35
eignen. Blöcke, in denen das Aendorungsbit nicht gesetzt
wurde, müssen in den Hint orgrund speicher regenei'iert werden. Es wird klar sein, dass die besondere Aus-
909842/0770
17-3-79 ' >Bfi ■ PRA.1036
führungsform nach, der Erfindung, die beschrieben wurde, nur ein Beispiel der Anwendung der Grundsätze der Erfindung darstellt. Es lassen sich zahlreiche Abwandlungen der bevorzugten Ausführungsform herstellen, ohne aus dem Rahmen der Erfindung herauszutreten.
909842/0770
Leerseite

Claims (1)

17.3.79 * PHA.ΙΟ36
PA TENTANSPRUECHE
Zentralprozessor für ein elektronisches Datenverarbeitungssystem, dadurch gekennzeichnet, dass er in der Kombination einen Arbeitsbus für Daten und Befehle
ziim direkten Uebertragen von Daten auf ein jedes der folg
genden Register enthält:
(1) ein Programmstatuswortregister zum Speichern dor Arbe.itsspeicheradresse des folgenden auszuführenden Befehls und der für die Art des auszuführenden Verfahrens spezifischen Steuerinfor-
matχon;
(2) ein Arbeitsspeicherzugriffsregister, und
(3) ein Befehlsregister zum Speichern des in der Ausführung begriffenen Befehls, der aus einem
Operationscode und einem oder mehreren Operariden
besteht;
ein Datenregister zum Speichern von Daten aus dom erwähnt en Arb ext sbus;
( eine Vielzahl von Mehrζveckregistern zum Speichern
von Daten an adressierbaren Stellen, die von den im Befühls-20
register gespeicherten Operanden spezifiziert sind;
ein Rechen.-- und Steuerwerk (ALU) ziir Durchführung arithmetischer und logischer Operationen mit Eingangstoren zum selektiven Datenempf'äng aus dem Datenregister und ausgewählten Registern der Kehrzweckregister sowie mit einem
909842/0770
BAD ORIGINAL
Ausgabetor zum Durchlassen der Ergebnisse der erwähnten Operationen zum Arbeitsbus oder zu einem ausgewählten Register der Mehrzweckregister,
einen Mikroprogrammspeicher zum Aufnehmen einer Viel— ^ zahl adressierbarer Mikrobefehle, die je eine Vielzahl codierter Felder enthalten,
Decoder zum Umsetzen der erwähnten codierten Felder in Steuersignale,
Mittel zum Uebersetzen des erwähnten Operationscodes * in die Mikroprogrammspeicheradresse des ersten Mikrobefehls, die während dex- Ausführung des vorliegenden Befehls im erwähnten Befehlsregister dem erwähnten Decoder zugeführt werden muss, und
ein Mikroprogramm-Steuerwerk zum anschliessenden J Erzeugen einer Folge von Mikroprograinmspeicberadressen zur Vervollständigung der Ausführung des vorliegenden Befehls und zum anschliessenden Ersetzen des vorliegenden Befehls durch den folgenden Befehl, dessen Adresse im Programmstatuswortregister gespeichert ist.
2. Zentralprozessor nach Anspruch 1, dadurch
gekennzeichnet, dass das erwähnte Mehrzweckregister sowie das Rechen- txnd Steuerwerk Mikroprozessor-Grossintegriertschaltkreise enthalten.
3. Zentralprozessor nach Anspruch 2, dadurch
gekennzeichnet, dass die Mikroprozessor-Grossintegriertschaltkreise eine Kaskadengruppe von Integrationssehaltungs-Bitschnitten-Mikroprozessoren enthalten.
h. Zentralprozessor nach Anspruch 3» dadurch
gekennzeichnet, dass die erwähnten Mikroprozessoren in bipolarer Iiitegrationsschaltungstechnologie ausgeführt sind. 5· Datenverarbeitungssysttiin nach Anspruch 1,
dadurch gekennzeichnet, dass das erwähnte Rochen- und Steuerwerk einen Statusatisgang hat, der mit dem erwähnten Mikroprogramm-Steuerwerk verbunden ist, tun die Folge der Mikro-
befehle zu variieren, die infolge der Ergebnisse der vom erwähnten Rechen- und Steuerwerk durchgeführten Operationen adressiert wurden.
909842/0770
6. Zentralprozessor nach. Anspruch 5, dadurch
gekennzeichnet, dass er Mittel zum Empfangen des Werts des erwähnten Operationscodes und des am erwähnten Statusausgang erscheinenden ¥erts zum Erzeugen eines Befehlsaus- führungswerts sowie Mittel zum Speichern des genannten Befehlsausführungswerts im erwähnten Programmstatuswortregister enthält.
7» Zentralprozessor nach Anspruch 1, dadurch
gekennzeichnet, dass die codierten Felder, die je einen Mikrobefehl bilden, ein Mikrobefehl-Zweigadressfeld, ein ALU-Steuerfeld, ein Mikroprogramm-Steuerwerkfeld sowie eine "Vielzahl von Feldern für die Spezifikation von Registern enthalten, die Daten auf den erwähnten Arbeitsbus übertragen oder daraus erhalten.
8. Zentralprozessor nach Anspruch 7> dadurch
gekennzeichnet, dass darin Mittel vorgesehen sind, die zusätzlich den Wert im erwähnten Mikrobefehl-Zweigadressfeld mit einem Wert am Arbeitsbus kombinieren, um eine versetzte Zweigadresse für den folgenden auszuführenden Befehl zu bilden.
9· Zentralprozessor nach Anspruch 7j dadurch
gekennzeichnet, dass darin Mittel vorgesehen sind, die einen codierten Wert für die Angabe des Vorhandenseins von Operanden ungleich Null im erwähnten Befehlsr-egister liefern,
sowie Mittel zum Aendern der Adresse des folgenden Mikrobefehls, der ausgeführt werden muss, als Ergebnis des erwähnten codierten Werts.
10. Zentralprozessor nach Anspruch 1, dadurch
gekennzeichnet, dass das erwähnte Mikroprogramm-Steuerwerk
zum Erzeugen einer Adressfolge für den Zugriff auf Programmwörter, die im erwähnten Mikroprogrammspeicher enthalten sind, wobei jedes Programmwort ein Zweigadressfeld sowie ein Steuerwerk-Betriebsfeld enthält, in der Kombination enthält
ein Mikroprogrammspeicher-Adressregister zum Speichern
der laufenden Adresse des im Mikroprogrammspeicher für Zugriff bereitstehenden Programmworts,
909842/0770
17-3-79 ^ PHA.1036
Mittel, ansteuerbar durch, das erwähnte Steuerwerk-Betriebsfeld, um den im erwähnten Mikroprogrammspeicher-Adressregister gespeicherten Wert zu erhöhen,
erste und zweite adressierbare Stapelspeicher zum Festhalten von Steuerzählungen bzw. Rückkehradressen,
einen Stapelzeiger-Zähler zum Adressieren der er-.wähnten Stapelspeicher, und
Mittel, ansteuerbar durch das erwähnte Steuerwerk-Operationsfeld, um die im erwähnten Stapelzeiger-Zähler festgehaltene Zählung selektiv zu erhöhen, festzuhalten oder zu vermindern.
11. Zentralprozessor nach Anspruch 10, dadurch gekennzeichnet, dass er Mittel zum Uebertragen eines ¥erts aus dem erwähnten Zweigadressfeld auf den erwähnten ersten
Stapelspeicher enthält.
12. Zentralprozessor nach Anspruch 10, dadurch gekennzeichnet, dass er Mittel enthält, die vom erwähnten Steuerwerk-Betriebsfeld zum selektiven Vermindern eines
im erwähnten ersten Stapelspeicher vorhandenen Werts ange-20
steuert werden.
13· Zentralprozessor nach Anspruch 10, dadurch
gekennzeichnet, dass er Mittel zum Speichern der Mikroprogrammspeicher-Ergebnisadresse einer eine Routine spezifizierenden Adressfolge, Mittel zum Vergleichen der erwähnten 25
Ergebnisadresse mit der im erwähnten Mikroprogrammspeicher-Adressregister gespeicherten laufenden Adresse sowie Mittel zum Erniedrigen des erwähnten Stapelzeigers enthält, um eine Rückkehr von der erwähnten Routine zu bewirken, wenn
die erwähnte laufende Adresse der Ergebnisadresse entspricht 30
1h·. Elektronisches Datenverarbeitungssystem zum
sequentiellen Ausführen einer Reihe von Befehlen, die je c, einen Operatioiiscode, der die Art der durchzuführenden Operation spezifiziert, sowie einen oder mehrere Operanden enthalten, die zu bearbeitende Werte spezifizieren, wobei das erwähnte System in der Kombination folgende Elemente enthält:
einen Arbeitsspe eher mit Direktzugriff zum Speichern
909842/0770
17.3-79 5 PHA.1036
von Daten und Befehlen an durch Adressen spezifizierten Stellen,
einen Arbeitsbus zum Uebertragen von Daten, Befehlen und Adressen zwischen dem erwähnten Arbeitsspeicher und einem Zentralprozessor, der dadurch gekennzeichnet ist, dass er in der Kombination einen Daten- und Befehlsarbeitsbus zum direkten Uebertragen von Informationen von und nach einem jeden der folgenden Register des Zentralprozessors enthält:
ν Ο) einem Programmstatuswortregister zum Speichern
der Arbeitsspeicheradresse des nächsten auszuführenden Befehls und zum Speichern der die Art der Operation beschreibenden Steuerinformation;
(2) einem Ax-beitsspeicher-Zugriff sregister, und
/ \
(3) einem Befehlsregister zum Speichern des in der
Ausführung begriffenen Befehls, der sich auch einem Operationscode und einem oder mehreren Operanden zusammensetzt;
ein Datenregister zum Speichern von Daten aus dem erwähnten Arbeitsbus,
eine Vielzahl von Mehrzweckregistern zum Speichern von Daten an adressierbaren Stellen, die von den erwähnten, im genannten Befehlsregister gespeicherten Operanden spezifiziert werden,
ein Rechen- und Steuerwerk (ALU) zum Durchführen von Rechen— und Steueroperationen, mit Eingangstoren zum selektiven Datenempfang aus dem erwähnten Datenregister und ausgewählten Registern der erwähnten Mehrzweckregister sowie
mit einem Ausgabetor zum Weiterleiten der Ergebnisse der 30
erwähnton Operationen zum erwähnten Arbeitsbus oder ssu einem ausgewählten Registex" der erwähnten Mehrzweckregister,
einen Mikroprogrammspeicher zum Speichern einer Vielzahl adressierbarer Mikrobefehle, die je eine Vielzahl codierter Felder enthalten,
35
Decoder zum" Umsetzen der erwähnten codierten Felder
in S t eu e r s ignaIe,
Mittel zum Uebersetzen des erwähnten Operationscodes
909842/0770
17.3-79 6 PIlA. 1036
in die Hikr opr ogrammspe ic heradre s se des ersten Mikrobefehls, der während der Ausführung des laufenden Befehls im erwähnten Befehlsregister dem erwähnten Decoder zugeführt werden muss, und
ein Mikroprogramm-Steuerwerk zum anschliessenden Erzeugen einer Folge von Mikroprogrammspeicheradressen zur Vervollständigung der Ausführung des erwähnten laufenden Befehls und zum anschliessenden Ersetzen des erwähnten laufenden Befehls durch den folgenden Befehl enthält,
J" · dessen Adresse im erwähnten Programmstatuswortregister gespeichert ist.
15« Elektronisches Datenverarbeitungssystem
nach Anspruch Ik, dadurch gekennzeichnet, dass das erwähnte Mehrzweckregister und das erwähnte Rechen- und Steuerwerk Mikroprozessor-Grossintegriertschaltkreise enthalten. 16. Elektronisches Datenverarbeitungssystem
nach Anspruch 15, dadurch gekennzeichnet, dass die erwähnten Mikroprozessor-Grossschaltkreise eine Kaskadengruppe von Mikroprozessoren vom Typ der Xntegrationsschaltung-
Bitschnitte enthalten.
17« Elektronisches Datenverarbeitungssystem
nach Anspruch 16, dadurch gekennzeichnet, dass die erwähnten Mikroprozessoren in bipolarer Integrationsschaltungstechn.0J.0gie ausgeführt sind.
18. Elektronisches Datenverarbeitungssystem nach Anspruch 14, dadurch gekennzeichnet, dass es weiter noch eine Vielzahl adressierbarer Steuerregister in direkter Verbindung mit dem erwähnten Arbeitsbus enthält, um weitere Informationen über den laufenden Vorgang zu spei-
ehern.
19. Elektronisches Datenverarbeitungssystem nach Anspruch ~\k, dadurch gekennzeichnet, dass die erwähnten adressierbaren, im erwähnten Mikroprogramrnspeicher gespeicherten Mikrobefehle aus einer Vielzahl codierter
"Wertfelder bestehen, von denen ein erstes Feld einen ¥ert enthält, der die Datenquelle der Informationen zum Uebertragen über den erwähnten Arbeitsbus angibt, ein zweites
909842/0770
17-3.79 ■ 7 PHA.1036
Feld einen ¥ert enthält, der die Bestimmung der über den erwähnten Bus übertragenen Daten angibt, und ein drittes Feld einen "Wert enthält, der die vom erwähnten Rechen- und Steuerwerk durchzuführende Operation angibt.
20. Elektronisches Datenverarbeitungssystem
nach Anspruch 14, dadurch gekennzeichnet, dass es ein Vorzeichen-Erweiterungssystem enthält, das zum Empfangen eines numerischen n-Bit-Werts aus dem erwähnten Arbeitsbus und zum Zurücksenden eines numerisch gleichwertigen n-Bit-Verts zum erwähnten Arbeitsbus angeschlossen ist·
21. Elektronisches Datenverarbeitungssystem nach Anspruch 14, dadurch gekennzeichnet, dass es eine Vielzahl planparalleler Schaltkreisplatten, -die je einen oder mehrere Funktionsbauteile des erwähnten Systems realisieren, einen einzigen Mehrdraht-Datenbus zum Verbinden der erwähnten Schaltkreisplatten untereinander, ein Zweiweg-Tristate-Sende/Empfangsgerät auf einer, jeden der Platten zvim gegenseitigen Verbinden der darauf befindlichen Funktionsbauteile mit dem erwähnten Datenbus enthält und dass ein erwähnter Mikroprogrammspeicher zum Speichern einer Vielzahl -adressierbarer Mikrobefehlscodewörter vorgesehen ist, die je eine Unteroperation des erwähnten S3rstems spezifizieren und von denen wenigstens ausgewählte dieser ¥örter ein SENDE-FeId zum Anschliessen einer ausgewählten Platte der erwähnten Schaltkreisplatten an den Datenbus als eine Datenquelle und ein EMPFANGSfeld zum Anschliessen einer ausgewählten Platte der erwähnten Schaltkreisplatten an den erwähnten Bus als Datenziel enthalten.
22. Zentralprozessor nach Anspruch 2 in der Anpassung für die Ausführung von Maschinenspracbenbefohlen im Format des Universal-Befehlsvorrats, dadurch gekennzeichnet, dass der laufende Befehl einen Achtbit-Operationscode und wenigstens ein Arierbit-Mohrzweckregister~Auswahlfeld enthält, und dass das Rechen- und Steuerwerk des Mehrzweckregisters eine Breite von 32 Bits besitzt, die in den erwähnten Mikroprozessor-Grossschaltkreisen verwirklicht wird.
909842/0770
17-3-79 8 PHA-1036
23« Zentralprozessor nach Anspruch 22, dadurch
gekennzeichnet, dass die erwähnten Mikroprozessor-Grossintegriertschaltkreise eine Kombination von acht kaskadengeschalteten, bipolaren Vierbit-Integrationsschaltungs-Mikroprozessoi-en enthalten.
2h. Elektronisches Datenverarbeitungssystem nach
Anspruch lh, dadurch gekennzeichnet, dass es einen Zentralprozessor nach Anspruch 22 oder 23 enthält.
25· Elektronisches Datenverarbeitungssystem nach
' Anspruch 14 in der Anpassung zur Realisierung einer Betriebsumgebting zur virtuellen Adressierung, in welcher Umgebung Daten und Befehle durch physikalische Adresswerte an Stellen im Arbeitsspeicher für Direktzugriff gespeichert und
die erwähnten Arbeitsspeicherstellen durch logische Adress-15
werte im Zentralprozessor spezifiziert werden, welches System eine dynamische Adressübersetzungseinheit zwischen dem erwähnten Zontralprozessor und dem erwähnten Arbeitsspeicher zum Umsetzen der erwähnten logischen Adresswerte in entsprechende physikalische Adresswerte mi-t Hilfe einer
Tabellensuchopcration enthält, ist dadurch gekennzeichnet, dass zur Umgehung der erwähnten Tabellensuchoperation für eine begrenzte Anzahl bereits früher übersetzter logischer Adresswerte darin in der Kombination enthalten ist ein Adressumsetzungsspeicher, der aus einem direkt
adressierbaren Speicher für Direktzugriff zum Speichern eines Tabelleneintrags bei einer jeden der 2 , von einer 2-Bit-PufferspeichoradressG spezifizierten Stellen besteht, welcher Tabelleneintrag ein physikalisches Adressfeld sowie
ein logisches Teiladressfeld enthält, 30
Mittel zur Bildung der erwähnten n~Bit~Pufferspeicher-
adresse aus einem ersten Teil eines logischen Adresswerts aus dem erwähnten Zentralprozessor für die Adressierung eines ausgewählten Tabelleneintrags,
Mittel zum Vergleichen eines zweiten Teils des erwähnten logischen Adresswerts mit dem erwähnten logischen Toiladressfeld im erwähnten ausgewählten Tabelleneintrag, und
9 09842/0770
Mittel zur Bildung eines physikalischen Adresswerts aus der Kombination eines dritten Teils des erwähnten logischen Adresswerts und des erwähnten physikalischen Adressfelds im erwähnten ausgewählten Tabelleneintrag. 2.6. Elektronisches Datenverarbeitungssystem nach Anspruch 25, dadurch gekennzeichnet, dass der erwähnte logische Adresswert ein Binärwert ist, der höchste, mittlere und niedrigste Bitstellen hat, die den erwähnten zweiten, ersten bzw. dritten Teilen entsprechen.
27. Elektronisches Datenverarbeitungssystem nach
Anspruch \k in der Anpassung für virtuelle Adressierung und mit einem Arbeitsspeicher zum Speichern von Daten und Befehlen an von physikalischen Adresswerten spezifizierten
Stellen, einem Zentralprozessor zum auffolgenden Durehfüh-15
ren einer Vielzahl von Anwender-Programmen, die je Befehle enthalten, in denen Arbeitsspeicherstellen durch logische Adresswerte spezifiziert sind, mit Mikroprogramraspeichermitteln im erwähnten Zentralprozessor zum Speichern eines
Inhaltsverzeichnis-Anfangswerts, der die Arbeitsspeicher-20
. stelle einer Inhaltsverzeichnis-Datenstruktur spezifiziert, die die logischen Adresswerte des laufenden Anwender-Programms auf entsprechende physikalische Adresswerte bezieht, rind mit einer dynamischen Adressübersetzungseinheit zum
Umsetzen der erwähnten logischen Adresswerte in physika— 25
lische Adresswerte1 mit Hilfe einer Nachschlagoperation unter Zuhilfenahme des erwähnten Anfangswerts, ist dadurch gekennzeichnet, dass es zum Umgehen der erwähnten Tabellensuchoperation für eine begrenzte Anzahl bereits früher
umgesetzter logischer Ariresswerte folgende Elemente enthält 30
ein Anwender-Trennspeicherregister,
einen Anfangswert-Stapelspeicher zum Speichern von Anfangswert en s die st.vl den vom erwähnten Zentralprozessor bereits früher durchgeführten Anwender-Programmen gehören,
wobei ein jeder der erwähnten Anfangswerte im erwähnten 00
Anfangswert-Stapelspeiclier an einer Stelle gespeichert wird, die von einem im erwähnten Trennspeicherroglsfcer gespeicherten Zeigerwert spezifiziert wird,
909842/0770
17-3· 79 10 PIIA. 1036
Mittel zum Empfangen einer Aenderung im Inhalt des erwähnten Mikroprogrammspeichermittels zum Abändern des erwähnten Zdigerwerts, um den erwähnten Stapelspeicher nach einem bereits früher gespeicherten InhaltsVerzeichnis-An-
fangswert gleichwertig dem im erwähnten Mikroprogrammspei— eher augenblicklich vorliegenden Anfangswert abzufragen,
einen Adressumsetzungsspeicher, der aus einem direkt adressierbaren Speicher für Direktzugr'iff zum Speichern eines Tabelleneintrags an von einer Pufferspeicheradresse , spezifizierten Stellen besteht, wobei ein jeder der erwähnten Tabelleneinträge ein logisches Teiladressfeld sowie ein physikalisches Adressfeld enthält, Mittel zur Bildung der erwähnten Pufferspeicheradresse
aus der Kombination eines ausgewählten Teils des logischen
Adresswerts des laufenden Anwender«Programms und des erwähnten Zeigerwerts für den Zugriff auf einen ausgewählten Tabelleneintrag,
Mittel zum Vergleichen dos logischen Teiladressfelds
des erwähnten, ausgewählten Tabelleneintrags mit den höch-20
sten Bits im erwähnten logischen Adresswert, und
Mittel zum Erzeugen eines physikalischen Adresswei"ts aus der Kombination der niedrigsten Bits im erwähnten logischen Adresswert und dem physikalischen Adressfeld des
erwähnten ausgewählten Tabellcneinti^ags. 25
909842/0770
DE19792913492 1978-04-10 1979-04-04 Prozessor und anlage mit einem derartigen prozessor Ceased DE2913492A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US89492578A 1978-04-10 1978-04-10

Publications (1)

Publication Number Publication Date
DE2913492A1 true DE2913492A1 (de) 1979-10-18

Family

ID=25403688

Family Applications (2)

Application Number Title Priority Date Filing Date
DE19792913492 Ceased DE2913492A1 (de) 1978-04-10 1979-04-04 Prozessor und anlage mit einem derartigen prozessor
DE7909731U Expired DE7909731U1 (de) 1978-04-10 1979-04-04 Vorrichtung für ein datenverarbeitendes System

Family Applications After (1)

Application Number Title Priority Date Filing Date
DE7909731U Expired DE7909731U1 (de) 1978-04-10 1979-04-04 Vorrichtung für ein datenverarbeitendes System

Country Status (4)

Country Link
JP (2) JPS553357U (de)
DE (2) DE2913492A1 (de)
FR (2) FR2423006B1 (de)
GB (2) GB2019062B (de)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5616082Y2 (de) * 1979-06-01 1981-04-15
CH639517A5 (en) * 1980-10-31 1983-11-15 Appelsa Applic Electr Sa Cooling device for an installation containing electronic equipment
EP0085671A4 (de) * 1981-08-14 1985-07-01 Hastings Otis Behälter für datenverarbeitungsanlagen.
DE3136226C2 (de) * 1981-09-12 1991-02-14 Ing. Rolf Seifert electronic GmbH, 5828 Ennepetal Klimagerät
DE3321321A1 (de) * 1982-06-19 1983-12-22 Ferranti plc, Gatley, Cheadle, Cheshire Elektrische schaltungsanordnung
US4488193A (en) * 1983-03-30 1984-12-11 International Business Machines Corporation Closed loop cooling system for disk file with heat exchanger integral with baseplate
GB2145290A (en) * 1983-08-10 1985-03-20 Smiths Industries Plc Cooling avionics circuit modules
US4831476A (en) * 1985-07-15 1989-05-16 Allen-Bradley Company Disc drive isolation system
US4685303A (en) * 1985-07-15 1987-08-11 Allen-Bradley Company, Inc. Disc drive isolation system
RU1804645C (ru) * 1991-03-27 1993-03-23 Институт Точной Механики И Вычислительной Техники Им.С.А.Лебедева Центральный процессор
DE4413130C2 (de) * 1994-04-19 1997-12-18 Loh Kg Rittal Werk Kühlgerät
DE19837705C2 (de) * 1998-08-20 2003-04-17 Rittal Gmbh & Co Kg Informationsterminal
DE19912029C2 (de) * 1999-03-17 2003-12-04 Rittal Gmbh & Co Kg Kühlgerät
DE19914408B4 (de) 1999-03-30 2006-07-13 Deutsche Telekom Ag Geräteschrank
EP1158389A3 (de) * 2000-05-25 2002-11-13 Kioan Cheon Computer mit Kühleinrichtung und Wärmetauscher der Kühleinrichtung
DE10051092A1 (de) * 2000-10-14 2002-04-25 Zahnradfabrik Friedrichshafen Elektrisches Antriebssystem
JP2004281789A (ja) * 2003-03-17 2004-10-07 Ntt Power & Building Facilities Inc 大型装置対応ラック

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3447037A (en) * 1966-07-25 1969-05-27 Bunker Ramo Digital data equipment packaging organization
US3825904A (en) * 1973-06-08 1974-07-23 Ibm Virtual memory system
JPS5069946A (de) * 1973-10-24 1975-06-11
JPS5615066B2 (de) * 1974-06-13 1981-04-08
JPS5529515B2 (de) * 1974-12-11 1980-08-04
JPS51115737A (en) * 1975-03-24 1976-10-12 Hitachi Ltd Adress conversion versus control system

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
DE-Z.: "Elektronische Rechenanlagen 1974, H.6, S.230-235 *
DE-Z.: "Elektronische Rechenanlagen", 1971, H.3, S.124-128 *
US-Firmenschrift der Fa. Adevanced Micro Devices "Microprogramming Handbook" 1976, S.1/1-1/12 *
US-Firmenschrift der Fa. Advanced Micro Devices "A Microprogrammed 16 Bit Computer" 1976, S.16-19 *

Also Published As

Publication number Publication date
FR2423006B1 (de) 1988-06-10
JPS54161241A (en) 1979-12-20
GB2019062B (en) 1982-07-28
GB2019062A (en) 1979-10-24
JPS553357U (de) 1980-01-10
FR2423006A1 (de) 1979-11-09
DE7909731U1 (de) 1979-09-13
GB2025144B (en) 1982-07-07
FR2422999A3 (fr) 1979-11-09
GB2025144A (en) 1980-01-16
FR2422999B3 (de) 1981-01-02

Similar Documents

Publication Publication Date Title
DE2913492A1 (de) Prozessor und anlage mit einem derartigen prozessor
DE3280446T2 (de) Digitales Datenverarbeitungssystem.
DE2756768C2 (de) Mikroprozessor
DE68926385T2 (de) Methode und Hardware-Ausführung von komplexen Datentransferbefehlen
DE2161886C2 (de) Befehlsausführungseinheit in einer elektronischen Datenverarbeitungszentrale für die gleichzeitige Verarbeitung mehrerer Befehle
DE2755897C2 (de)
DE102019104394A1 (de) Befehlssatzarchitektur zum ermöglichen von energieeffizientem rechnen für exascalearchitekturen
DE69101242T2 (de) Reduzierungsprozessor.
DE102018130441A1 (de) Einrichtung, Verfahren und Systeme mit konfigurierbarem räumlichem Beschleuniger
DE2456578C2 (de) Datenverarbeitungsanlage
DE3650602T2 (de) Datenverarbeitungssystem
DE2019444C3 (de) Datenverarbeitungsanlage mit Vorrangschaltung
DE68927783T2 (de) Mikroprozessor mit äusserem steuerungsspeicher
DE4132833A1 (de) Hierarchischer schaltungsintegrierter cache-speicher
DE112012005700T5 (de) Externe Hilfsausführungseinheiten-Schnittstelle zur ausserhalb des Chips angeordneten Hilfsausführungseinheit
DE112006002237T5 (de) Verfahren zur selbstinitiierenden Synchronisierung in einem Computersystem
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE2719295A1 (de) Programmsteuerung
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE2629266A1 (de) Ein/ausgabe-system
DE112016005909T5 (de) Einrichtung und verfahren zum beschleunigen von graphenanalyse
DE112017000163T5 (de) Priorisierung von Transaktionen
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE2713685A1 (de) Mikroprogrammgesteuertes datenverarbeitungssystem
DE102012211978A1 (de) Millicode-Steueroperation außerhalb der Reihenfolge

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8131 Rejection