DE2719295A1 - Programmsteuerung - Google Patents

Programmsteuerung

Info

Publication number
DE2719295A1
DE2719295A1 DE19772719295 DE2719295A DE2719295A1 DE 2719295 A1 DE2719295 A1 DE 2719295A1 DE 19772719295 DE19772719295 DE 19772719295 DE 2719295 A DE2719295 A DE 2719295A DE 2719295 A1 DE2719295 A1 DE 2719295A1
Authority
DE
Germany
Prior art keywords
register
stack
address
main memory
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE19772719295
Other languages
English (en)
Inventor
Michael Ian Davis
Gary Wayne Mayes
Thomas Stephen Mcdermott
Larry Edward Wise
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2719295A1 publication Critical patent/DE2719295A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • G06F9/4484Executing subprograms
    • G06F9/4486Formation of subprogram jump address

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)
  • Debugging And Monitoring (AREA)

Description

Anmelderin:
Böblingen, den 18. April 1977
jo-bm/sz 2719295
International Business Machines Corporation, Armonk, N. Y. 10504
Amtliches Aktenzeichen:
Aktenzeichen d. Anmelderin:
Neuanmeldung BC 976 014
Vertreter:
Patentassessor Dipl. -Ing. O. Jost 7030 Böblingen
Bezeichnung:
Programmsteuerung
709846/0975
und ein Verfahren Die Erfindung betrifft eine Einrichtung! zur Steuerung der Programmausführung in einer elektronischen Datenverarbeitungsanlage nach dem Oberbegriff des Anspruchs 1.
Stapel sind grundsätzlich Warteschlangen nach dem Prinzip "zuletzt herein - zuerst heraus" (LIFO), und ihre Verwendung zum Festhalten von Datenelementen ist allgemein bekannt. In herkömmlichen Datenverarbeitungssystemen wurde das Stapeln vorwiegend für Datenoperanden benutzt. Es ist jedoch auch bekannt, Rückkehrinstruktionsadressen von Unterroutinen in einem Kellerstapel zu speichern, um die sequentielle Rückkehr zu unbeendeten Unterroutinen zu steuern. Weiterhin ist es bekannt, Unterroutinen-Rückkehradressen in einem Hauptspeicher zu speichern. Die dynamische Zuordnung von Speicherraum für Daten ist eine akzeptierte Technik.
Die Aufgabe der vorliegenden Erfindung besteht daher darin, eine Einrichtung und ein Verfahren anzugeben, das eine Verein-1 fachung von Verbindungen mit und Rückkehr von Unterroutinen ;
in einem Datenverarbeitungssystem ermöglicht, wofür minimaler !
i j Speicherraum gebraucht wird und die Operation stark vereinfacht ist. Weiterhin sollen die bei der Verbindung zu Unterroutinen j
I j und der Rückkehr von Unterroutinen notwendigen Operationen
j automatisch so geprüft werden, daß Fehler in der Programmie-
976 014 709846/0975
rung durch die Hardware erkannt und an die Software berichtet werden.
Gelöst wird diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale.
Vorteilhafte Ausgestaltungen, Weiterbildungen und technische Merkmale der Erfindung sind den Unteransprüchen zu entnehmen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird anschließend näher beschrieben.
BC 976 014 709846/097
Fig.l zeigt ein Uebersiclilsblockdiogiamm eines Systems, in dem die vorliegende Erfindung verwendbar ist. Der Prozessor 1 isl das Hauptelcrncnt des Systems und ist im einzelnen in den Fign. 2Λ bis 2H dargestellt. Er führt Befehle aus und steuert die Signale auf den beiden HauptschniHstellen des Systems, nümlich der Eingabe/Ausgabe-Schnittsfellc 2 und der Speicher/ Uebersetzerschniltstelle 3 .
Mehrere Eingabe/ Ausgabe-Geräte 4-1 bis 4-n sind mit der E/A - Schnittstelle 2 über entsprechende Geräleanschlüsse 5-1 bis 5-n verbunden. Die Gerüteunschlüsse 5-1 bis 5-n steuern zusommcn mit dem Prozessor die Datenübertragung zwischen dem Prozessor 1 und den E/A- Geräten 4 -1 bis 4 -n.
Die Speicher-Uebersetzer-Schnittstelle 3 koppelt den Prozessor 1 mit einem Hauptspeicher 8 und einem Verschiebungsübersetzer ° ( Adressübersetzer) Eine Schnittstelle 11 koppelt den Adressübersetzer 9 mit einem asynchronen Speicher 10. Der Hauptspeicher 8 enthält einen inneren Speicherteil 14 ( Innenspeicher ) und einen äusseren Speicherleil 15 ( Aussenspeicher). Eine Schnittstelle 12 koppelt den Prozessor I mit dem Hauptspeicher 8, um die Datenübertragung zwischen dem Prozesoor und dem inneren Speicher 14 zu steuern. Eine Schnittstelle 13 koppelt den Hauptspeicher 8 mit dem Adressübeisetzer 9, um die Datenübertragung zwischen dem Prozessor 1 und dem äusseren Speicher 15 zu steuern. Eine Bedienkonsole ist mit dem Prozessor über eine Schnittstelle 7 gekoppelt.
BC9-76-01 <f -10-
709846/0975
Die Schnittstelle: 2 enthüll eine E/A-Adrcsssammcl leitung , eine E/A-Datensammelleituna, und führt E/A-Schnittstellensrcuersignale, die noch genauer im Zusammenhang mit Fig.2 beschrieben werden. Die SchnifisielIe 3 enthält eine Hcuptsptiichersammelleitung und Sleuersigiiakammelleitunran zv/ischen Piozessor und Uebeiseizer. Die Schnittstellen 12 bzw. 13 sind der Weg für die Innenspeichersleueisignale und die Aussenspcicherstcueisiynale während der Datenübertragungen. Die Schnittstelle enthält eine Datcnausgongssammelleitung und eine Datcneingangssammelleitung zusammen mit Schnitlstellensteuersignalleilungen. Sov/eit diese Schnittstellen mit der vorliegenden Erfindung zu lcn haben, werden sie nachfolgend beschrieben. Datenfluss in, Prozessoi (Fig. 2A bis 2H)
Der Prozessor enthält ein Rechenwerk (ALU) 51 (Fig. 2E) konventioneller Bauweise. Ein Paar Eingangsregister ist für das Rechenwerk 51 vorgesehen, und zwar das WA-Register 52 und das Y-Register 53, und diese Register sind über die Sammelleitungen 54 und 55 mit dem Rechenwerk 51 verbunden. Das Rechenwerk 51 hat eine Ausgangssainmelleitung 56, die mit der Prozessorsammelleitung 57 über das UND-Glied 53 verbunden ist. Die Prozessorsammelleitung 57 ist an die Register 52 und 53 durch die UND-Glieder 60 und 61 gekoppelt zur Lieferung der Eingabedaten an das Rechenwerk 51.
Die Prozessorsammelleitung 57 wirkt als Hauptdatensammelleitung für Quellen und ßestimmungsdalcn. Daher ist jede als Quelle wirkende Funktionseinheit des Prozessors mit der Piozessorsammelleitung 57 über ein UND-Glied verbunden und jede Funktionseinheit des Prozessors 1, die Bestimmungseinheit ( Empfangseinheit) sein kann, ist mit der Prozcssorsammelleitung über ein, anderes UND-Glied verbunden. Die meisten Funktions -
709846/0975
BC9-76-01V -M-
27Ί9295
einhciten des Systems wirken sowohl als Quelle wie auch als Bestimmung für Daten und sind daher mit der Prozessorsammelleitung 57 durch Quellen-UN D- Glied'.'! und durch ßestimmungc-UND-Gl iecJer verbunden.
Die Piozessoiensammelleirung 57 ist an ein Z-Regiskr 65 angeschlossen über ein Bestimmungs-UND-Glied 66 und ein Quellen-UND-Glied 67, an. ein Prozessorspeiclioi rkitrnregister 70 über ein ßestimmungs-UND-Gl i:d 71 und ein Quellen-UND-Glied 72, an einen Zähler 75 durch ein ßcslimmungs-UND-Glied 76 und ein Quellen-UND-Glied 77, an einen Regislerslapel 80 durch ein Bestimmungs-UND-Glied 81 und ein Quellen-UND-Glied 82, an ein Adiessschlüsselregister 85 durch ein Bestimmungs-UND-Glied 86 und ein Quellen-UND-Glied 87, an ein Stufenslalusregisler 90 durch ein Bestimmungs-UND-G| ied 91 und ein Quellen-UND-Glied 92 und an ein Prozessorsspeicheradressregister 95 durch ein Bcstiinmungs-UND-Glied 96 und ein Quellen UND-Glied 97.
Die Prozessorsammelleitung 57 ist an die Konsole 6 (Fig. 2A) angeschlossen durch ein Quellen-UND-Glied 100 und eine Schnitlstellensammelleitung 7a. Daten werden von der Prozessorsammelleitung 57 an die Konsole gerichtet über das UND-Glied 66, das Z-Register 65 und die Schnittstellensammelleitung 7b. Ein Opciationsregister 101 (Fig.2F) ist an die Prozessorsammelleitung 57 angeschlossen über Quellen-UND-Glied 102. Operationscode werden im OP-Kegister 101 vom Prozessoispeicherdatcnregister 70 über ein UND-Glied 103 gespeichert. Ein Stapcladressregister ( Fig. 2G) ι-·γ mir der Prozessorsammelleitung 57 über ein Bestimrnungs-UND-
BC 9- 76-01*
Glied ΙΟύ verbunden.Ein Adressregister 107 für den aktiven ( laufenden) Befehl ist mit der Piozessorsammelleitung 57 über ein Quellen-UND-Glied
109 verbunden. Di-M Eingang des Registers I07 wird auf den Ausgang des Rpgislerstapc-Is 80 durch eine Sammclleitung I03 gekoppelt. Eine Speicherschutzanordnung I IO (Fig. 2H) ist mit der Piozessoissammelleitung 57 durch das Bcstimmungs-UND-Glicd 111 und das Quellen-UND" Glied 112 verbunden.
Ein Programms ta I uswoi (register (PSW-Register) 115 ist mit r.c-inem Ausgang 116 an die Piozessorsammclleitung 57 angeschlossen über ein UND-Glied 117. Die Eingangssignale zum Register 115 kommen von verschiedenen Systernprüfeingangslcitungcn 120, von einem Schlüssel vergleichsregister 121 und von einer Speichcrfjiüfbedingurtg'sammel leitung 136.
Eingangssignale zum Schlüssel vergleichsregister 121 werden vom Speicherschutzregister 110.über die Ausgangssammelleitung 125 dor Einrichtung
110 und von einer Schlüsselwahl-Logikschaltung 126 über eine Sammelleitung 127 geliefert. Der Ausgang 128 vom Register 85 ist auf einen Eingang der Schaltung 126 gekoppelt, deren zweiter Eingang 129 von den Cycle-Steal-Schutzkippgliedern 130 ( Fig. 2D) kommt. Die Eingangssammelleitung 129 von den Kippcjl iedem 130 istauch mit dem Register 90 gekoppelt.
Den Ausgang der Schlüsselwuiil-Logikscha! I .ng 126 v/ird auch auf den Hauptspeicher 8 und den Adressübersetzer 9 durch die Ausgangssarnmclleitung 127 gekoppelt, die einen Teil der Schnittstelle 3 zwischen Speicher und Uebersefzer bildet.
Die Schnittstelle 3 enthält auch eine Synchronisationssammelleitung 135 ( Fig. 2H), eine Piüfbedingungssaminelleitung 136, eine Adresssammei leitung
709846/0975
BC9-76-01V "1^'
und die Eingabe- und Au:r)obi?scimrm;lleitungen 138 und 139. Der Ausgang 140 des PiOzessoispeiclieradrcsr.tegisler 95 ist über das UND-Glied 141 mit der Adrcsssammel leitung 137 gekoppelt. Das Cycle-Stcal-Speicheradiessregister 142 ist mit seinem Ausgang 143 über das UND-Glied 144 cm die Adresssarnmcllciiunf) 137 angeschlossen.
Der Eingang eines NuII-Dctektors 150 (Fig. 2C) ist mit der Pror.cssorsammelleitung 57 gekoppelt und der Ausgang 151 mit der Steuerschaltung 152 für bedingte Verzweigungen ( Fig. 2A). Der Ausgang 151 des Null-Detektors 150 ist ausserdem mit dem Eingang einer Ergebnisunzeigoschaltung 153 (Fig. 2G) verbunden. Ein zweites Eingangssignal 154 zur Eigcbnisanzeigcschaltung 153 wird abgeleitet von einem Ausgangssignal des Prozessors 51. Die Prozessor — Sammelleitung 57 bildet auch einen Eingang zur bedingten Verzweigungs — schaltung 152.
Der Ausgang 160 des Zählers 75 (Fig. 2F) liefert Eingangssignale zu einem Anhalte- E/A- Decodierer 161 und zu den Cycle-Steal -Speicheradressregisfcrn 142. Der Ausgang 162 des Decodierers 161 ist mit einer Schnittstellensteuerschaltung 239 ( Fig. 2D) verbunden. Die Eingangsdatensammellcitung 138 vom Hauptspeicher ist mit dem Prozcssorspeichcrdateniegister 70 ( Fig. 2E) über ein UND-Glied 165 und mit dem Cycle-Steal-Speicherdalenregister 166 über ein UND-Glied 167 verbunden. Der Ausgang 168 vom Prozessorsspeicherdatenregistcr 70 ist mit der Ausgangsdatensanimel leitung 139 zum Haupt speicher verbunden über ein UND-Glied 169. Das Register 166 ist über ein UND-Glied 170 mit der Sammelleitung 139 gekoppelt. Die Ausgänge der Register 70 und 166 sind ebenfalls mit der Speicherparitütsprüfschaltung
709846/0975
BC9-7.V-01V -\*f-
(Fig. 2F) verbunden. Die Piüfsclialtung 171 lieferl Porirüts bits auf die Ausgangsdafcnsammclleitung 139, wenn kein Paritülsfeliler vorliegt, und sie gibt ein Ausgangsiiynal auf die Leitung 173, wenn ein Speicherparitätsfchler erl'.annt wird.
Ein Maskemegister 175 (Fig. 2A) ist mit der Prozessotsammelleilung 57 ( Bits 12, 13) über die Eingang;-und Ausgangstore 176 und 177 verbunden» Der Ausgang 173 des Maskenregisrers' 175 ist auch mit einem Aktivstufenregister 181 über die Treiberschaltungen 180 und eine Sammelleitung 182a veibunden.
Ein VorwahlsUifenregister 185 ist mit der Prozessorsammelleitung 57 ( Bits 14,15) über den Eingang gekoppelt. Ein Ausgang 185a des Registers 185 ist mit dem Stapel-Adressregister 105 ( Fig. 2G) über eine Torschaltung 185b verbunden. Der Ausgang 185a ist ausserdem mit dem Aktivstufenregister 181 über die Decodierschaltung 190 und den Aus gang 191 der Decodierschaltung 190 verbunden. Der Ausgang 192 des Aktivstufenregisters 181 ist mit dem Festspeicher-Adressregistcr (ROSAR) 193 ( Fig. 2B) einer Mikroprogrammsteuerung 200 des Prozessors verbunden. Der Ausgang 181a des Registers 181 ist mit dem Stapel-Adressregister 105 über eine Torschaltung 181b verbunden, wobei durch den Codierer 181 c eine Reduzierung von vier auf zwei Bits erfolgt.
Die Mikroprogrammsteuerung 200 enthält einen Festspeicher (ROS) 201, der mit der Prozessorsammelleitung 57 über ein ROS-Ausgabedatenregister 202 und ein Quellen-UND-Glied 203 verbunden ist. Ein zweiter Ausgang 204 des ROS-Ausgabedatcniegisters 202 ist mit einer Qucllen-Decodierschaltung 205, einer Bestimmungs-Deoodierschaltung 206, einer Speichersteucr-Decodier -
7Q98A6/097 5
BC 9-76-014 -]S-
schcil kmg 207, einer Rechenwcrk-Funklions-Decodierscliullung 203, weiteren Sreueidccodicrschal tungcn 209 und dem Festspcicher-Adressregister (ROSAR) 193 verbunden.
Die Adresse für citn festspeicher ROS 201 wird vom ROSAR 193 über die Sammelleitung 212 zu einer Adressdccodierschulrung 213 gegeben. Die Eingänge eines ersten Verbindungsregisters 210 und eines zweiten Verbindungsrccjisler 211 .sind mit dem ROSAR 193 über die Sammelleitung 212 gekoppelt. Diese Register haben Ausgänge 214,215. Das Prozessoispeicherdatenregister 70 (Fig. 2E) bildet einen weiteren Eingang zum ROSAR 193 über die Sammelleitung 73. Die bedingte Verzweigungsschaltung 152 bildet einen Eingang zum ROSAR 193 über die Sammelleitung 216.
Die Quellen-Decodierschaltung 205 enthält die Ausgangsquellensteuerleitungen 231, über die die verschiedenen Quellen-UND-Glieder ( wie das UND-Glied 102) für den Zugriff zu Quellendaten gesteuert werden. Der Bestimmungsdecodierer 20ό enthält Ausgangsbestimmungssteuerleitungen 232, die verschiedene Bestimmungs-UND-Glieder ( wie das UND-Glied 76) zur Weitergabe von Bestimmungs-Daten an die richtigen Register oder andere Funktionseinheiten steuern. Die Rechenwerk-Fun ktions-Decodierschdtung 203 enthält Rechcnwerk-Funktionssteuerleitungen 233, über die die verschiedenen Funktionen des Rechenwerks während der Prozcssoizyklcn gesteuert werden. Die Bestimmuiigssleuerungen, Quellen-Steuerungen und Rechenwerk-Funktionssteuerungen werden nachfolgend noch insoweit genauer beschrieben, als sie mit der Erfindung der vorliegenden Anmeldung zu tun haben.
BC^-O.I, 7,8.9846/0975
Die Speiclicistcuer-Decodiersclialtung 207 hat einen Ausgang 235, der mit einer Speiclicrslcucischaltung 236 vcibundert ist, die einen zweiten Eingang aufweist.dcr mit der Dccodieischaltung 209 verbunden ist, und einen dritten Eingang 238 von der Kanalschni HsIeI lenslcuerschal tung 239 (Fig. 2D). Die Sammelleitung 238 ist in beiden Richtungen benutzbar ( Zweirichtungs-Leitung) und wird wählend der Datenübertragungen zwischen den E/A-Gera'ten4-l bis 4-1 0 und dem Prozessor 1 benutzt. Die'Schnittstellensammelleitung 12 und die Synchronisationsscmmelleitung 135 sind beide mit dor Speichcrsteuerschalioiig 236 gekoppelt.
Die Decodierschaltungen 20? haben einen Statussteueiausga^g 240, einen Abtastunterbrcchungs- Anforderungsausgang 241 und einen Fehleranzeigeausgang 242. Ausserdem ist ein Ausgang 243 von den Decodierschaliungsn mit den Taktsteuerschaltungen 245 (Fig. 2C) gekoppelt. Ein Kristolloszillator 246 liefert Signale an einen Frequenzteiler 247, der seinerseits mit dem Eingang der Taktstcuerung 245 gekoppelt ist und die Taktimpulse für den Datenfluss und die Steuerungen des Prozessors 1 liefert. Diese Taklimpulse für den Datenfluss und die Steuerungen des Prozessors werden über die Ausgangsleitungen 248-1 bis 248-n der Taktsteuerschal lung 245 geliefert. Die Synchronisationssammelleitung 135 ist mit der Taktsteuerschal lung 245 gekoppelt. Sie ist eine Zweirichtungs-Uebertragungsleitung.
Die Kanalsclialtungsanordnung 250 (Fig.2A,2D) wird anschliessend im einzelnen beschrieben. Sie enthält mehrere Treiber- und Empfängerschaltungen 251
70 9846/0975
BC9-76-01if -if·
bis 256, die mit den verschiedenen Einzelleitungen und Sammelleitungen der F/A-SchnittslelIe 2 gekoppelt sind. Der Empfänger 251 ist mit einer Anforderung! eingangssammelteilung ?6l (fiits 0 bis 3) gekoppelt, der Empfänger 252 mit einer Anforderungseingangssa mmelleitung 262 ( Bit 16). Eine Gruppe von Treiberund Empfängerschaltungen 253 ist mit der Aufrufleitung 263, der Aufrufrückleitung 264 und der Bündellückleitung 265 verbunden. D;e Treiberschaltung 254 ist mit der Aufrufidentifiziersammelleitung 266 ( Bits 0 bis 4) gekoppelt. Die Treiber- und Empfängerschaltungen 255 sind mit den Leitungen 267-1 bis 267-10 verbunden, bei denen es sich um die Leitungen für das Serviceschallsignal, das Serviceschalt-Rücksignal, das Adressschaltsignal, das AdresschalI-Rücksignal, das Datenlastsignal, das Anhalte- oder Maschinenfehlersignal, das Systemrückstellsignal, das Wort/Byte-Anzeigesignal, das Eingangs/Ausgangscinzeigesignol und die Leitungen für die Bits 0 bis 3 der Cycle-Steal-Zustandssarnmelleitung handelt. Die Empfänger 256 sind mit der Bedingungscode-Eingangssammelleitung 268 ( BiIs 0 bis 2) verbunden. Die E/A—Schnittstelle 2 enthält auch eine Datensammelleitung 269, eine Adresssamrnelleitung270 ( Bits 0 bis 15) und eine Adresssammelleitung 272 (Bits 16) sowie eine Sfromeinschalt-Rückstelleitung 271.
Die Datensammelleitung 269 ist mit dem Eingang einer E/A-Schnitts teil en-Paritätsprüf- und Parilälsgeneratorschaltung 275 verbunden. Die Schaltung enthält einen ersten Ausgang 276, der ParitätsbiIs an die E/A-Schniltslellen-Dalensammelleitung 269 liefert, wenn kein Fehler in den von dem E/A-Gerät an den Prozessor 1 übertragenen Daten vorliegt.
709846/0975
BC 9-76-0 If -U-
Die Schaltung 775 enthält einen zweiten Ausgang 277, der ein Signal liefert, wenn ein Puritötsfchler auf der Dalensammelleitung 269 auftritt. Die DatensammIleitung 269 ist mit der Prozessorsammclleitung 57 über ein Quellen" UND-Glied 278 verbunden. Die Datensarnrnclleituno. 269 ist mit dem Eingang des Cycle - Steal-Speicheidatenregistcr 166 über das UND-Glied 280 und mit dem Ausgang dieses Registers über dus UND-Glied 279 sowie mit dem Ausgang 55 des V-Registeis 53 über das UND-Glied 231 verbunden.
Die Adresssammelleitung 270 ist mit dem Eingang des Cycle-Steal-Speicheradressregisters 142 und mit dem Ausgang des Zählers 75 über eine Torschaltung 273 gekoppelt.
Der Ausgang 182b der Empfängerschaltung 251 ist mit einem Eingang des Registers für die aktive Stufe (181) über ein UND-Glied 187c gekoppelt, dessen anderer Eingang der Maskentreiberausgang 182a ist. Die Treiber- und Empfängerschaltungen 252, 253,254 sind mit einer Aufruffolge-Steuerschaltung 285 gekoppelt. Das Register 181 für die aktive Stufe bildet einen weiteren Eingang für die Schaltung 235 über den Ausgang 181a. Eine Anforderungsbestctigungsleitung 286 bildet einen weiteren Eingang zur Aufruffolge-Steuerschaltung 285, die ebenfalls mit der Schniltstcllonsteuerschaltung 239 über eine Leitung 289 veibunden ist. Eine Steuerschaltung 288 für die Schnittstellen-Folgesteuerung und zur Zeitlimitierung (Abschaltung nach vorgegebener Maximalzeit) ist mit der Aufruffolge-Stcuerschaltung über eine Leitung 287 verbunden. Die Stromeinschalf-Rückstelleitung bildet einen weiteren Eingang für die Steuerschaltung 285.
709846/0975
BC9-76-0lif -4S-
Die Leitungen 290-1 bis 290-10 koppeln die !reiber- und Empfänger schaltungen 2t>5 mit der Schnittstellcnstcuerschaltung 239,
Die Prozessorsammelleitung 57 ist 16 Bit breit und dient zur Informationsübertragung zwischen Quellen- und Bestirnmungseinheiten im Datenfluss des Prozessors, die durch Mikroprogrammsteuerung ausgewählt sind.
Das Operationsregisler (OP-REG) 101 ist 16 BiIs lang und enthalt das erste Befehlswort einschliesslich der Registeradressargumente für den Registerstapel 80 während der Befehlsdecodierung. Es wird ausseidcm als Datenzwischcnregister benutzt, wenn es nicht das erste Befehlswort enthält. Sein Ausgang ist eine der Quellen für die Prozessorsammelleitung 57. Es empfängt seine Daten vorn Speicherdatenregister 70.
Das Rechenwerk ist 16 Bit breit und führt arithmetische und logische Funktionen aus nach Vorschrift durch die Befehle. Sein Ausgang 56 ist eine weitere Quelle für die Prozessorsammelleitung 57. Es empfängt seine Eingangsdaten vom WA-Register 52 und vom Y-Register 53.
Dos WA-Register 52 ist 16 Bits lang . Es.ist der primäre Eingang für das Rechenwerk 51 für arithmetische und logische Operationen. Es empfängt seine Eingangsdaten als Bestimmungseinheit von der Prozessorsammelleitung 57.
Das Y-Regis)er 53 ist 16 Bits lang. Es ist der Sekundärcingang für das Rechenwerk 51 für arithmetische und logische Operationen. Mit dem WA- Register zusammen übernimmt es die Verschiebung bei Doppelwort-Schiebeoperationen. Es empfängt seine Eingangsdaten als Beslimmungseinheit von der Prozessorsammcl-
709846/0975
BC9.76-01f -20-
leitung 57. Diest?s Register 53 stelll auch die Datenbahn dar für ausgehende Daten an die E/A-Daiensammolleituny 269 für die direkten E/A-Operationen unter Programmsteuerung.
Das Prozessorspeichcrdatenregistei (PROZ.-SDR^ 70 ist 16 Bits lang, und durch dieses Register werden alle Daten vom und zum Hauptspeicher ( mit Ausnahme der Cycle-Steal -Daten) übertragen. Das erste Wort eines jeden Befehles, der vom Hauptspeicher 3 geholt wild, wird durch dieses Register 70 in das OP-Registsr 101 übertragen. Wahrend anderer Prozessoroperationen dient das Register 70 auch als Datenzwischenspeicher. Es kann daher seine Eingabedaten als Bestimmungseinheit von der Prozeisorsammelleitung 57 empfangen, und es gibt Daten als Quelle Ouf dieses Piozessorsammelleitung 57 aus.
Das Cycle-Steal-Speicherdatenregister (CS-SDR) 166 ist 16 Bits lang, und durch dieses Register werden alle Daten vom und zum Haupt speicher 8 über die E/A-Datensammelleitung 269 und über die Speichereingabe- oder Ausgabesammelleitung bzw. 139 während der Cycle-Sieal-Operationen übertragen.
Die acht wertniederen Bits des 16 Bit langen Zählers 75 werden bei Proto kollierung der verschiedenen Prozessoroperati onen als Zähler und auch als vorübergehendes Speicherregister für andere Prozessoroperationen benutzt. Es handelt sich daher um eine Quelle- und Bestimmungseinheit für die Prozessorsammelleitung 57 und wird auch zum Festhalten der Geräteadresse für die Gerätewahl benutzt. Der E/A-Befehl wird über die Torschaltung 273 an die E/A-Adresssammelleitung 270 während der direkten Piogramrnsteuer opeiationen geleitet.
709846/0975
BC 9-76-01 (f "M-
Dos prozessoispeiclietaciressiegister (PROZ. -SAR) 95 ist ein 16 Bit langes Register, in dem primär die Houprspeicheradresse festgelial ten wird. Der Inhalt des Registers wird über die Torschaltung 141 an die Speicheradi esssammelleituny 137 für Speichel v.ugi iffe während der normalen Verarbeitung und der direkten Programmsteueroperationen übertragen. Ausserdem dient dieses Register als Vorübergehendes Speicherdcitenregister, wenn es nicht für die Adressierung des Hauptspeichers benutzt wird.
Das Cycle -Steal- Speichcradiessregisters (CS-SAR) 142 ist 16 Bits lang und hält die über die E/A-Adresssammelleitung 270 vorn E/A- Gerät während der Cycle-Steal-Datenüberhcgungsoperationen übertragene Hauptspeicherudiesse. Der |,egisterinhal t wird über die Torschaltung 141 an die Speicheradicsssammelleitung 137 nur für Speicherzugriffe im Cycle-Steal-Verfahren übertiagen.
Das 16 Bit lange Z -Register 65 dient hauptsächlich zum Festhclten der Daten für die ßedienungsdatencmzeige (nicht dargestellt) der Konsole 6. Es wird ausserdem als vorübergehendes Speicherregister bei anderen Prozessoroperationen benutzt und ist Quellen - und Bestimmungseinheit für die Prozessorsammelleitung
Der Registerstapel 80 in Fig. 3 ist eine Anordnung monolithischer bistabiler Speicherglieder (Kippgl iedei) zum Festhalten der Regislcrinhal te des Stufenstatus, (SSR),des Adressschlüssels (ASR) und der Befehlsadresse(BAR) für jede der vier Unteibrechungsstufen. Er enthält ausserdem Arbei tsregister, die vom Mikroprogramm benutzt werden, d.h., TEMP, TEMP 1 .... TEMP 3, DBUF,SOA 1,
BC9-76-01H -2£-
709846/0975
SOA2, sowie Register zur Rettung (Abspcicheruncj) der aktiven Stufe und des Adrcss Schlüssels, oirpnisiert nach Darstellung in Fig. 3.
Die Register ΤΙΐΜΡ i'nd TEMP 1 ... ΤΕΑΛΡ 3 enthalten vom Mikroprogramm während der normalen Verarbeitung benutzte Kurizeitdjlen. SOA 1 enthält die manuell eingegebene AHiesse, die für die Adress- Stopoperationen zu benutzen ist. SOA 2 enthält den Konsolenspeicheischlüssel in den unteren drei Bits, die überigen Bits sind Null. Das DBUF-Register ist der Konsolendatenpuffer . Der Inhalt dieses Puffers speist die Datenanzeiger ( nicht dargestellt ) auf der Konsole ο . Das Register für die aktive Stufe enthält die Kennzeichnung der Stufe, die bei Eintritt des Stopzuslandes aktiv war. Das ASR-Register enthält eine Kopie des Adressschlüssels der aktiven Stufe.
Die Daten in den Registern SSR, ASR, und BAR des Stapels 80 für die aktive Stufe werden ebenfalls in zugeordnetcn(als separate Schaltungen ausgebildeten Registern 90, 85, 107 aus Leistungsgründen festgehalten, d.h., um die Anzahl der Stapelzugriffe zu reduzieren. Der Stapel 80 des Ausführungsbeispiels ber steht aus zwei Gruppen zu je 64 χ 9 Speicherplätzen in Parallelschaltung zur Bildung einer Speichergruppe von 64 χ 18 Speicherplätzen.
Das Stapeladressregister 105 ist ein sechs Bit langes Register zur Adressierung des Stapels 80. Die Eingangsdaten zum Register 105 kommen von einer Addierschaltung 320 über ein Stapelverbindungsrcgisfer 321 und eine Torschaltung 322, vom Register 185 für die vorgewählte Stufe über die Sammelleitung 185a und die Torschaltung 185b, vom Register 181 für die aktive Stufe über die Sammelleitung 181a und die Torschaltung 181b, vom ÖP-Register 101 über die Sammelleitung
709846/0975 -23-
101α und die Torschaltung 101h, und von der Prozcssorsurnniel leitung 57. Das Stapelaclrcssregistcr 105 wird von der Prozcssorsarnmel leitung 57 über die Torsclui)iuncj 106 geladen.
Das separate Stufcnstatusiegisler (SSi!) 90 ist ein 16 Bit laiiges separates Register zum Festhalten des aktiven Stufenstatus. Wahrend der Arbeit auf einer bestimmten Stufe ändert sich der Inhalt des Registers SSR 90 aufgrund arithmetischer und logischer Operationen. Das Akli vstufenre giifer im Registerstapel 80 bleibt unveiändert, bis ein Stufenwechsel erfolgt. Zu diesem Zeitpunkt wird der Inhalt des SSR-Rcgistcis 90 in das SSR-Register im Registerstapel 80 der verlassenen Stufe gesetzt, und der neue Stufenstatus vom Registerstapel 80 wird in das SSR-Register 90 gesetzt.
Ein Teil des Inhaltes des SSR-Registcrs 90 ist folgender :
TABELLE 1
Srufenstatustcgister
Bit Bedeutung
0 Geradeanzeiger
1 LJebertiagsanzeiger
2 Ueberlaufanzeiger
3 Anzeiger negatives Ergebnis
4 Anzeiger Null-Ergebnis
8 Ucberwachungszustand
9 |n Verarbeitung Zustandssteuerungcn
10 Protokollicrung
11 Sumrnenmaske 709846/0975 ßC9-76-01 <f -2Ϋ-
Die Eigcbnisanzeig'-M weiden von den Programmen für die Enfscheidungsfindung benutzt.
Die Anzeige für "Gerade","Uebertrag'6nd "Uebcrlauf" werden auch bei E/A-Opcru Honen benutzt, um die an den Prozessor 1 von den E/A-Geräten 4-1 bis 4-n gesendeten ßedingungscodes festzuhalten.
Während der Ausführung eines E/A-Befehls weiden folgende Bedingungscodewerte den Anzeigern für "Gerade","Ueberlrcig" und'Ueberlauf" zugeordnet :
TABELLE 2
Bedingungscode Gerade 0 Uebertrag Ueberlauf Bedeutung
0 0 0 0 Geräf nicht angeschlossen
1 0 0 1 Belegt
2 0 1 0 Belegt nach Rückstellung
3 1 1 1 Kommandozurückweisung
4 1 0 0 Eingreifen erforderlich
5 1 0 1 Schnittstellendatenprüfung
6 1 1 0 Steuerung belegt
7 1 1 Zufriedenstellend
Während der Untcrbiechungsnnnahrne werden alle Bedingungscodes durch das
betreffende Gerät abgegeben. Die Anzeiger für "Gerade", "Uebertrag" und "Ueberlauf" erhalten dann folgenden Bedingungscodewerte zugeordnet :
BC9-76-01 f
-26'
709846/0975
TABELLE 3
Bcdinguncir.cocio Gc-rcidc Uebcrlrog Ueberlauf
0 0 0
1 0 0
Bedeutung
0 I
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
Steuerung Ende Programmgesteuerte Unterbrechung Ausnahme Gf-räteende Achtung Achtung und programmgesteuerte Unterbrechung Achtung und Ausnahme Achtung und Geräteende
TABELLE 4
Definitionen d^r Stufenstatusiegisterbits Bit
0 Geradeanzeigsr - auf Eins gesetzt, wenn das wertniedere Bit des Ergebnisses
Null ist, sonst auf Null geselzt.
1 Uebertiagsanzeiger- auf Eins gesetzt, wenn das Ergebnis von Additionen oder
Subtraktionen nicht als Zahl ohne Vorzeichen dargestellt werden kann, sonst auf Null geselzt.
2 Uebcrlaufanzeiger- auf Eins gesetzt, wenn das Ergebnis einer Rechenopera lon
nicht als Zahl mit Vorzeichen dargestellt werden kann, sonst auf Null gesetzt.
BC9- 76-01H
-2(cr
709846/0975
Negativcinzeicjcr
Nullanzeiger -
Ueberwachungs-
zustand
auf Eins gesetzt, wenn Bit Null des Ergebnis Eins ist. sonst auf Null gesetzt.
auf Eins gesetzt, wenn das Ergebnis aus lauter Nullen besieht, sonst auf Null gesetzt.
auf Eins gesetzt, sobald der Prozessor 1 in den Ueberwacliungszustand eintritt. Der Eintritt in den Ueberwachungszustand erfolgt wenn :
ein Ueberwachungsaufrufbefchl ausgeführt wird, eine Klassenunterbrechung auftritt^
eine E/A-Unterbrechung angenommen wird In Verarbeitung - dieses Bit wird ein- oder ausgeschaltet durch das entsprechende
Bit im SSK des SpeicherstufenstatusblocUs (SSB), sobald der Ladebefehl für den Stufenstalusblock (SSB-LD) ausgeführt wird. Dieser Befehl lädt einen SSB vom Speicher 3 in den SSB der bezeichneten Stufe im Stapel 80.
dieses Bit wird durch das entsprechende Bit im SSR-Register d«£ Speichers SSB gesetzt oder zurückge$tellt,sobald der lokale Stufenstatusblockbefehl ausgeführt ist.SSB-LD lädt einen SSB vom Speicher 8 in die bezeichnete Stufe SSB im Stapel 30. wenn die Summenmaske gleich Null ist, werden alle Prioritti!$- unterbrechungen auf allen Stufen abgeschaltet. Wenn die Maske gleich Eins ist, werden alle Prioritätsunterbrechungen auf allen Stufen eingeschaltet. Die Summenmaske wird durch folgende Vorgänge auf Eins gcsetzt(eingeschaltet) :
709846/0975
protokoll -
Summenmaske -
BC9-76-0I4
Ausführung des Freigabebefehls mit Bit 15 = 1.
Systemrückstellung, Rückstellung bei StromcinschaltungjlPL
Ausführung eines SSß-LD-ßcfehls, wobei Bit 11 des
Speicher - SSR = 1
Annahme einer Prioritätsunterbrechung auf der
unterbrechenden Stufe.
Die Summenmaske wird durch folgende Vorgänge auf Null
gesetzt ( abgeschaltet) :
Ausf ührung des Aufrufbefehls für das Ueberwachungs -
programm (SVC).
Ausführung des Sperrbefehls mit uit 15 = 1
Jede Klassen-Unterbrechung :
Maschinenfehler
Programmfehler
Weiche Ausnahmeverzweigung
Strom thermowarnung
Ueberwachungsaufruf
Protokollierung
Konsole
Ausführung des SSB-LD-Befehls mit Bit 11 des Speicher -
SSR = 0.
Der Prozessor 1 betrachtet die Zahlen nicht als solche mit oder ohne Vorzeichen, sondern führt die bezeichneten Operationen auf den gegebenen Werten aus. Alle Anzeiger geben das Ergebnis der Operation wieder. Dadurch kann der Programmierer
709846/0975
BC9-76-01H M
Ergebnisse des ausgeführten Operalbnstyps überprüfen.
Dos Progtammstatuswortregister (PSW) 115 ist 16 Bits lang und enthält Fehler- und Ausnahmeinformation, die zu einem Programmfc-hler , einem Maschincnfehler, einer weichen Ausnahmeverzweigung oder zum Auftreten einer Stromthermowamung führt. Drei Statuskennzeichen sind ebenfalls im PSW-Register 115 enthalten. Das PSW-Register 115 wird über separate Schaltungen und vom Mikroprogramm abgefühlte Bedingungen gesetzt.
BC9-76-01V
709846/0975
- Weiche Ausnahme TABEl. LE 5 Bedeutung
Verzweigung Prozessors ta tuswort Spezi fi kai i onsprüfung
Bit Ungültige Speicheradresse
0 Vorrecht verletzt
Mascliinenfehler 1 Schutzfehler
Programmfehler 2 Ungültige Funktion ( entweder Programmfehler oder
3 v/eiche Ausnahme,)
4 Gleitkomma-Ausnahme
Stapelausnahme
5
6 Reserviert
Speicherparitätsprüfung
7 Reserviert
8 Prozessors teuemrüfuna
9
10
Statuskennzeichen Strom/Thermo
11 E/A - P rüfung
12 Reihenfolgeanzeiger
13 Auto-IPL
14 Uebersctzcr eingeschaltet
15 Slrom/Thermowarnung
Das Adressschlüsselregister ( ASR) 85 in Fig. 2G ist ein 16 Dit langes separates Register und enthält während der Verarbeitung auf einer Stufe jev/eils den
BC9- 76-01H
-3o-
709846/0975
Adiesschlüssel der aktiven Stufe. Das ASR-Rcgister 85 liefert den Adressschlüssel, der in der Schaltung 121 mit dem Schutzschlüssel der Speicheranordnung 110 verglichen wird. Dieser Vergleich wird für jeden Speicherzugriff mit Ausnahme der Cycle-Steal-Operationen vorgenommen. Das Schlüsselfeld (ISS) des ASR für den Befehlsadressbercich wird ebenfalls als Konsoladressschlüssel für manuelle Speicherzugriffc von der Konsole 6 aus benutzt.
Bc9-76-0V?
709846/0975
TABELLE 6
Adresschlüssel register
Bit Bedeutung
O Opcrandenberei die Gleichsetzung
5 Op3rand 1 Schlüsselbit 0
6 Operand 1 Schlüsselet 1
7 Operand 1 Schlüsselbit 2
9 Operand 2 Schlüsselbit 0
10 Operand 2 Schlüsselet 1
11 Operand 2 Schlüsselbit 2
13 Bcfchlsbereichschlüsselbit
14 ßcfehlsbereichschlüsselbit
15 Befehlsbereichschlüsselbit
Das Adreßregister für den laufenden (cikuten) Befehl (LBAR) 107 (Fig.2G) enhält die Adresse des ausgeführten Befehls. Das LBAR-Registei 107 wird am Anfang eines jeden Befehls g eladen, und während der Ausführung wird das Stufen - BAR im Stapel 80 auf die nächste Befehlsadresse fortgeschrieben. Sollte die vollständige Ausführung des laufenden Befehls durch eine Klassenunterbrechung gestoppt werden, wird die Klassenunterbrechung verarbeitet und dann mit dem Inhalt des LBAR-Regislers 107 der unterbrochene Befehl wieder adressiert und dann noch einmal ausgeführt.
BC9-76-01V ,3^.
709846/0975
Die Spstcherschiiizcinordnung 110 (Fig. 2H) besteht aus 32 Speicherschlüssclregistern ( nicht dargestellt). Die Anordnung wird eingeschaltet, wenn der Speicherschutz eingebaut und freigegeben ist. Jedes Register enthält den Schutzschlüssel und ein Nur-Lesebit, um einen 2048 Byte gressen Block des Speichers 8 anzusteuern. Der Speicherschlüssel-Eingabcbefehl setzt den Schlüssel und das Nur-Lescbit in ein bestimmtes Speicherschlüsselregister. Der Speicherschlüssel-Kopierbefehl liest ein bestimmtes Speicherschlüsselregister aus.
Das Aktiv-Stufeniegistcr 185 ( Fig. 2A) besteht aus einem zwsi Bit grossen Register, indem der Anzeiger für die aktive, gegenwärtige v/irksam Stufe festgehalten wird. Das Register 185 wird geladen, sobald die Stufe wechselt. Das Register 185 wird bei der Adressierung des Stufenstatusblocks im Speicherstapel 80 und auch bei der Entscheidung über eine Unterbrechungsannahme benutzt. Für den letzteren Zweck wird ein Zwei-in-Vier-Bit-Stufcndecodierer verwendet. Das Register 185 ist eine Quellen-vind Bestimmungseinheit für die Prozessorsammelleitung 57.
Das Maskenregister 175(Rg. 2A) istein vier Bit langes Register und dient dazu, die Prioritätsunterbrechungen auf den vier Unterbrechungsstufen wie folgt freizugeben oder zu sperren :
TABELLE 7
Bit 0 - 0 Stufe 0 Unterbrechungen gesperrt
Bit 1 = 0 Stufe 1 Unterbrechungen gesperrt
Bit 2 - 0 Stufe 2 Unterbrechungen gesperrt
709 8 4 6/0975
'BC9-76-01* -33-
Bit 3 = 0 Stufe 3 Unterbrechungen gesperrt
Bit 0 = 1 Stufe 0 Unterbrechungen freigeben
Bit 1 — 1 Stufe 1 Unterbrechungen freigeben
Bit 2 - 1 Stufe 2 Unterbrechungen freigeben
Bit 3 = 1 Stufe 3 Unterbrechungen freigeben
Die Bits irn Maskenregister 175 werden durch den Maskenladebefehl gesetzt. Das Regisler ist eine Quellen - und Bestimmungseinheit für die Prozessor Sammelleitung 57.
Die Maskenregisterausgänge 173 sind ebenfalls mit den Maskentreibern 180 verbunden, so dass die vier Bits des Maskenregisters 175 mit den entsprechenden Priori»ütsunterbrechungsanfordeiungsbits von den E/A-Schnittstellencmpfängern 251 und der Sammelleitung 261 UND- verknüpft wenden können , um die Unterbrechungsannahme festzulegen.
Ein Kristalloszillator 246 erzeugt eine Taktgrundfrequenz für den Prozessor 1 Ein Frequenzteiler 247 erzeugt die freilaufenden Taktimpulse A,B,C und D nach Darstellung in Fig. 8. Der obere Pegel bezeichnet die logische Eins. Die Impulse dauern 55 Nanosekunden und erscheinen alle 220 Nanosekunden.
Die Taktsteueiungen 245 steuern das Stoppen und Starten der Taktimpulse, verteilen die Taktimpulse auf den Datenfluss und die Steuereinrichtungen und erzeugen bestimmte Spezialtaktimpulse für die Hauptspeichertaktierung. Die geschalteten Taktimpulse haben dieselbe Forin wie die oben beschriebenen Impulse A, B, C und D, können jedoch durch Bedingungen gestoppt und ge -.
BC9-76-oiif -3<f- 709846/09 7 5
startet werden, die im AvAikropiogramm entstehen.
Die Sammelleitungs-Null-Deteklorschaltung 150 besteht aus einer Gruppe von logischcMt Elementen, die festslellen können , ob der Wert auf der Prozcssoisamrnelleitung Null ist. Ihr Ausgungssignal wird vom Mikroprogramm bei der Entsciieidungsfindung verwendet.
Die Paritciispiüf- und Paritätsgeneratoischaltung 171 prüft alle vom Hauptspeicher durch den Prozessor empfangenen Bytes auf ungerade Parität, und erzeugt die Parität für alte ßyU;s, die vom Prozessor 1 an den Hauptspeicher 8 gesendet werden. Dos Erkennen eines Parilätsfehlers bei einkommenden Daten setzt das Speicherpai itätibit im PSW-Register 115 und löst eine Unterbrechung in der Klasse Maschinenfehler aus. Das Erkennen eines Paritätsfehlers in der Cycle-Steal-Anordnung fürht dazu, dass dem aktiven E/A-Gerüt eine Fehlcrbedingung signalisiert v.'ird.
Die E/A- Schnittstellen- Paritütsprüf- und Paritätsgeneratorschaltung 275 prüft alle über die E/A- Schnittstellendatensammelleitung 2 empfangenen Bytes auf ungerade Parität. Sie erzeugt die ungerade Parität für alle über die E/A-Schnittstellendatensamrnelleitung 2 übertragenen Bytes. Wenn auf hereinkommenden Daten ein Paritätsfchler erkannt wird, wird die Fehlerbedingung dem aktiven E/A-Gcrät signalisiert.
Der Anhalt»E/A-Decodierer 161 decodiert den Anhall-E/A-Befehl, der durch den Kanal 250 und nicht durch ein E/A-Gerät ausgeführt wird. Dadurch v/crden alle E/A-Geräte 4-1 bis 4-n rückgestellt, die an das System angeschlossen sind.
709846/0975
BC9--76-01 </ -35-
Mit der ScMüsselv/ahllogik 126 wird einer der drei ASR-Schlü5sel im Register 35 oder der Cycle-Steal-Schlüssel über die Sammelleitung 129 für den Hauptspeicherzugriff gewählt. Während der Cycle-Steal-Operalionen wird der E/A-Cycle-Steal-Schlüssel an den Prozessor 1 auf der ßedingungscodegarigssammeileitung 268 der E/A-Schnittstelle 2 übertragen. Die Ausgangsdalcn 127 dieser Schaltung 126 werden an den Uebersetzer 9 und an die Schlüssclvergleichsschaltung 121 gesendet.
In der Schlüssel vergleichsschaltung 121 wird der gewählte Schlüssel mit dem Speicherschutzschlüssel von der Speicherschutzanordnung 110 verglichen. Bei einer Verletzung wird das Speicherschutzfehlcrbit im PSW gesetzt, und es tritt eine Unterbrechung ein.
Die Aufruffolgesleuerung 285 erzeugt das Aufrufsignal auf der Leitung 263 und das Aufrufkennzeichen auf der Sammelleitung 266, und liefert Signale an die Schnittstelleristeueischaltung 239 für die Service-Durchschaltoperation und an die Steuerschaltung 288 (Schnittstellen-Folgesteuerung· und Zeillimitierung) für die Fehlerprüfung. Mit dieser Anordnung soll ein Wettbewerb zwischen mehreren Geräten aufgelöst v/erden, die eine Verbindung zur gleichen Quelleneinheit im Prozessor anfordern.
Die Schnittslellensteuerschallung 239 erzeugt die Adresse und die Service-Durchschallsignale für die Schnittstelle und sorgt für die Auflösung von Konfliktsituationen, registriert Cycle-Stcal-Speicherzugriffsfchler zur Präsentation an das Gerät, besorgt die Signalisierung von und zu den Speichersteuerungen, korrigiert die Signale auf den Schnittstellensammelleitungen und steuert den Bedingungscode in den Kippgliedern 130.
709846/0975
BC9-76-01f -36-
Die Steuerschaltung 288 für Schnittstellen-Folgesteuerung und Zeitlimitierung besorgt die MaximaIzeitsteuerung für die Reihenfolgefehlerprüfung auf der Schnittstelle 2, entdeckt ungültige Kombinationen von Schnittstellensignalen und berichtet die Erkennung von Maschinenfehlerbedingungen auf der Schnittstelle an den Prozessor 1.
Die E/A-Schnittstelle 2 verbindet den Prozessor 250 mit den Geräteanschlüssen 5-1 bis 5-n . Sie besteht aus den nachfolgend beschriebenen Elementen.
Die E/A-Datenso(.vr,el!eitung 269 ist eine Zweirichtungs-Sammelleitung mit 16 Daten und zv/ei Paritcitsleitungen. Sie dient der Datenübertragung von und zu den E/A-Geräten 4-1 bis 4-n während der direkten Programmsteueroperationen und der Cycle-Steal-Operationpn, und sie dient der Uebertragung der Einheitenadresse und des Unterbrechungsstatusbyte an den Prozessor 1 während der Unterbrechungsannahme.
Die E/A-Adresssammelleitung 270 ist eine Zweirichtungs-Samrnelleitung mit 16 Leitungen für Geräteadressen für die Gerätewahl und für E/A-Befehle an die E/A-Geräte 4-1 bis 4-n, während der direkten programmgesteuerten Operationen. Sie dient der Uebertragung von Hauptspeicheradressen vom aktiven E/A-Gerät an den Prozessor 1. während der Cycöe-Steal- Operation.
Die E/A Schnittstellensteuersignale auf den Leitungen 267-1 bis 267-10 sind eine Gruppe von Signalen mit denen Bedingungscodes an den Prozessor 1 gefeitet, der jeweiligen Zustand an die E/A-Geräte 4-1 bis 4-n gegeben, E/A-Operationen gewählt und gesteuert werden, mit denen Unterbrechungs- und Cycle-Steal-Anforderungen an den Prozes'or 1 übertragen, Reihenfolgen für Unterbrechungs- ·
* 709846/0975
BC9-76-01</
und Cycle-Stecil-Operntioncn gesteuert werden, mit denen Rückstellungen gesteuert werden, und die die richlige Reihenfolge der direkten Progrummstcueropercittonen und der Cycle-Sfeal-Operationen bewirken.
Die Gerüteanschlüsse 5-1 bis 5~n steuern die E/A-Gerüte 4-1 bis 4-n und schalten sie an die E/A-Schnittstelle an. Ein Anschluss ( wie beispielsweise der Anschluss 5-1) kann mehr als ein E/A-Gerät (z.B. das Gerät 4-1) steuern.
Die Speicher/Uebersetzer-Schnittstelle 3 enthält eine Hauplspeichersamrnelleitung. Die besteht aus der Adresssammclleitung 137 für die Adressierung des Hauptspeichers 8 und für die Uebertragung logischer und physischer Speicheradressen zwischen dem Prozessor 1 und dem Verschiebungsübersetzer ( Adressüberselzer) 9, sowie aus den Samrnelleilungen 138 und 139 zur Datenübertragung zwischen dem Hauptspeicher 8 und dem Prozessor 1, und zwischen dem Adressübersetzer 9 und dem Prozessor 1.
Die Schnittstelle 3 enthält ausserdem die Steuersignalleitungen 127, 135 und 136 zwischen Prozessor und Uebersetzer für die Uebertragung aktiver Adressschjüssel, der Prüfungsüedingungen und der Synchronisationssignale zwischen dem Prozessor und dem Adressübersetzer 9.
Die Innenspeichcr-Steuersignalleitung 12 übernimmt die physische Wahl des inneren Speicherbereiches 14, die Teilgruppenwahl im gewählten Bereich und die richtige Reihcnfolgeschaltung der Lese/Schreibsteuersignale zur Adressierung des Bereiches zwischen 0 und 64 Kilobyte des inneren Hauptspeicherbereiches 14.
BC9-76-01H _#_ 709846/0975
Datenstapelung
In einem Computerprogramm 1st es oft nützlich, die Operanden in Warteschlangen zu organisieren. Diese Technik gestattet Parameter von einem Teil eines Programmes liefern und von einem anderen benutzen zu lassen. Zu den typischen Beispielen gehören:
1. Die Schlangenbildung von E/A-Geräteanforderungen durch eine Vielzahl von Anforderern und die serielle Auflösung der Schlange und Berücksichtigung solcher Anforderungen durch das E/A-Geräteprogramm.
2. Die arithmetische Schreibweise, in der Operanden und Operatoren so in eine Schlange gesetzt werden, wie sie empfangen werden und dann die Schlange in umgekehrter Reihenfolge mit fortschreitender Ausführung aufgelöst wird.
Die Stapelung bildet ein einfaches und wirksames Mittel zur Einreihung von Daten und/oder Paramtern in eine Warteschlange. Grundsätzlich ist ein Stapel eine Schlange nach dem LIFO-Prinzip. Es sind Operationen vorgesehen, um eine Dateneinheit oder einen Parameter in den Stapel zu setzen und das oberste Stück des Stapels wieder auszuleiten. Außerdem stehen Grenzprüfeinrichtungen zur Verfügung, die auf überlauf und Unterschreitung eines Stapelbereiches prüfen. Jeder zusammenhängende Speicherbereich kann als ein Stapel definiert werden. Jeder logische
709846/0975
BC 976 014
Stapel ist definiert durch einen Stapelsteuerblock in folgendem Format:
E/A Obere Elementenadresse (TEA) E/A -ι- 2 Hohe Stapelgrenzadresse (HLA) E/A + 4 Niedrige Stapelgrenzadresse (LLA)
Wenn ein Stapel leer ist, ist die obere Elementenadresse gleich der hohen Stapelgrenzadresse. Die Größe des Stapels ist gleich HLA-LLA.
Wenn ein Datenelement in den Stapel gesetzt wird, wird der Adreßwert im TEA um die Länge des Operanden (in Bytes) herunter gesetzt und wieder mit LLA verglichen. Wenn der Wert kleiner ist als LLA, liegt ein Stapelüberlauf vor. Dann tritt eine ; Unterbrechung für eine Ausnahmeprüfung auf, und die Stapelausnähme wird in das Prozessor-Statuswortregister (PSW)-Regi- j ster 115, Fig. 2H gesetzt. Die TEA bleibt unverändert. Wenn j der Stapel nicht überläuft, wird die TEA fortgeschrieben und das Datenelement an die durch die TEA bezeichnete Speicherstelle bewegt.
Wenn ein Element aus dem Stapel ausgelesen wird, wird die TEA wieder mit der HLA verglichen. Wenn die TEA größer ist oder genauso groß wie die HLA, liegt eine Unterlaufbedingung vor. Eine Ausnahmeverzweigungsunterbrechung tritt auf, und das
BC 976 014 .7Ü9T£'57"Ö"5 75~
Stapelausnahmebit Im PSW-Register 115, Fig. 2H, wird gesetzt. , Wenn der Stapel nicht unterschritten wird, wird die durch die laufende TEA definierte Oateneinheit in ein angegebenes Register gesetzt, und die TEA um die Länge des Operanden (in Bytes) erhöht.
Genaue Beschreibung der Unterroutinenverbindungsoperationen Verblndungsstapelung
Im Falle der Unterroutinenverbindungsstapelung besteht der Operand aus folgendem: ■
1. Ein Satz des Maschinenstatus nach dem Aufruf der Unterroutinje wird angelegt (ein teilweiser oder kompletter Satz des Status).
2. Ein dynamischer Arbeitsbereich (von veränderlicher Größe) des Hauptspeichers wird für den Rufer geschaffen und kann
! nach Benutzung wieder freigegeben werden.
Zur Ausführung dieser Funktionen werden typischerweise Programmoperationen verwendet, und da die Operation komplexer ist als das Stapeln konventioneller Daten, wird auch ein größerer Aufwand an Leistung und Speicherbenutzung benötigt. Die vorliegende Anordnung liefert einen Mechanismus auf der Stufe der Maschinensprache, der die Funktionen der Schlangenbildung und -auflösung für Unterroutinenverbindungen übernimmt. 976
Dazu gehören folgende Schritte:
1. Bezeichnung der Warteschlange.
2. Festlegung der Adresse im Hauptspeicher des obersten Elementes (TE) in der Warteschlange.
3. Laden und Speichern des nächsten Elementes.
4. Prüfen, ob die bezeichneten Grenzen der Warteschlangen nicht verletzt wurden.
5. Fortschreibung der obersten Elementenadresse (TEA), um die Größe der gerade benutzten Daten.
Verbindungsstapelung
Für die Unterroutinenverbindung wird ein Stapelmechanismus verwendet, wie er in Fig. 3 gezeigt ist, der ein einfaches Verfahren zum Retten und Wiederherstellen des Ruferstatus und zur Zuordnung dynamischer Arbeitsbereiche bildet. Das Instruktionspaar "Speichern mehrfach" 'Lade mehrfach und Verzweige" arbeitet mit einem Stapelbereich im Hauptspeicher 8. Die Instruktion Speichern/mehrfach gibt ein Datenelement an, zur Benutzung in einem Stapel, das besteht aus:
1. Einer Stapelsteuerblockadresse (A) ,
2. Begrenzungsregisternummer (Rx) j
3. Anzahl der zuzuordnenden Bytes (N) i (der dynamische Arbeitsbereich)
bc 976 oi4 709846/097 5
Wenn der Befehl "Speichern/mehrfach" ausgeführt wird, wird mit dem Zuordnungswert (N) die TEA heruntergesetzt, bevor eine
überlaufprüfung durchgeführt wird. Das LINK-Register (R 7) und ; die Register RO bis Rx werden sequentiell im Stapelbereich i gerettet und die Basisadresse des Arbeitsbereiches (oder das ί letzte gespeicherte Register, wenn kein Arbeitsbereich defi- ' niert ist), wird an den Benutzer im Register Rx zurückgegeben. | Wenn R7 angegeben ist, wird nur R7 gespeichert. Der Wert von RX und N wird ebenfalls als eine Eintragung im Stapel gerettet. Wenn der Befehl mehrfach/Laden und Verzweigen ausgeführt wird, werden diese Werte (Rx, N) auf dem Stapel abgeleitet und mit ; ihnen das Neuladen von Registern und die Wiederherstellung des Stapelsteuerzeigers auf seinen früheren Status gesteuert, i Der Inhalt von R7 wird dann in das IRA geladen und an die rufende Routine zurückgegeben.
Speichern/mehrfach (STM)
0 0 0 4 5 R 7 8 9 10 1 1 1 2 O O O 15
0 1 0 RB AM 1 O
Rx N
16 18 19
31
Der Inhalt des Registers für die laufende Stufe wird in den durch den Stapelsteuerblock, auf den die effektive Adresse weist, definierten Stapel gespeichert. Das R-FeId ist unbe-
BC 976 014
709846/097
nutzt und üblicherweise auf Null gesetzt, um eine künftige Veralterung des Codes zu vermeiden. Das Rx-FeId gibt das letzte zu speichernde Register an, beginnend mit dem Register R7 und durchlaufend bis zum Register RO. Wenn das Register R7 angegeben ist, wird nur der Inhalt von R7 gespeichert.
Das letzte gespeicherte Register wird dann auf die Adresse des unteren Speicherendes des Blocks aus N-Wörtern im Stapel gespeichert, erhöht um zwei. N ist in Bytes angegeben und muß gerade sein. Der Wert null ist gültig. Der Inhalt der übrigen Register bleibt unverändert. Die Anzeiger werden nicht beeinflußt.
Wenn AM = 01 gesetzt wird, wird das durch das Rb-FeId bezeichnete Register um zwei erhöht.
ί
Ausnahmen
Stapel - Der Stapel ist voll oder der Wert von 2N kleiner als die Anzahl der zu bewegenden Register plus eins. Der Befehl wird unterdrückt. Eine weiche Ausnahmeverzweigungsunterbrechung tritt auf, wobei die Stapelausnahme im PSW-Register 115 gesetzt wird.
Adressierung - Eines oder mehrere Wörter des Befehles oder der effektiven Adresse liegen außerhalb der passenden Speicher-BC 976 ÖT4 709846/0975
größe des Systems. Der Befehl wird unterdrückt. Eine Programmprüfunterbrechung tritt auf,und die ungültige Speicheradresse wird in das PSW gesetzt.
Spezifikation - Der Stapelsteuerblock und die Operandenstelle im Stapel müssen auf geraden Bytegrenzen liegen. Eine Spezifikationsprüfung tritt ebenfalls auf, wenn der Wert von N ungerade ist.
Schutz - Im Problemzustand wird der Befehl von einem der laufenden Operation nicht zugeordneten Teil geholt. Der Befehl wird unterdrückt. Eine Programmprüfunterbrechung tritt auf, und in das PSW wird eine Schutzprüfung gesetzt.
"Laden mehrfach und Verzweigen LMB" !
0 10 0 0 R
RB AM
10 10
0 4 5 7 8 9 10 11 12 15 i
: j
Der Inhalt der Register für die laufende Stufe wird vom Sta- j
. I
pel geladen, definiert durch den Stapelsteuerblock, auf den die effektive Adresse zeigt. Die zu ladenden Register werden durch die Stapeleintragung definiert. Der nächste Befehl wird von der Speicheradresse geholt, die im Register R7 enthalten ist.
Bc"'976"oi"4 709846/097 5
Das R-FeId ist unbenutzt und sollte auf Null gesetzt werden, um ein späteres Veralten des Code zu vermelden.
Wenn AM = 01 gesetzt wird, wird das durch das RB-FeId angegebene Register um zwei erhöht. Die Anzeiger sind nicht betroffen.
Ausnahmen
Stapel - Der Stapel ist leer. Der Befehl wird unterdrückt. Eine Ausnahmeverzweigungsunterbrechung tritt auf, und in das PSW wird die Stapelausnahme gesetzt.
Adressierung - Eines oder mehrere Wörter des Befehles oder der effektiven Adresse liegen außerhalb der passenden Speichergröße des Systems. Der Befehl wird unterdrückt. Eine Programmprüfungsunterbrechung tritt auf, und die ungültige Speicheradresse wird in das PSW gesetzt.
!Spezifikation - Der Stapelsteuerblock, die Operandenstelle im Stapel und der Befehl, dessen Adresse im Register R7 steht, jmüssen alle auf geraden Bytegrenzen liegen.
Schutz 1 - Im Problemzustand wird der Befehl von einem der laufenden Operation nicht zugeordneten Teil geholt. Der Befehl wird
BC 976 014 7 0 98 A 6/097 5
unterdrückt. Eine Programmprüfunterbrechung tritt auf und in das PSW wird die Schutzprüfung gesetzt.
Schutz 2 - Im Problemzustand versucht der Befehl einen Operanden im Hauptspeicher in einem Teil zu ändern, der der laufenden Operation nicht zugeordnet ist. Der Befehl wird unterdrückt. Es tritt eine ProgrammprUfunterbrechung auf und in das PSW wird die Programmprüfung gesetzt.
UNTERROUTINENVERBINDUNGSOPERATIONEN
Die folgenden beiden Tabellen A und B zeigen die Schritte in der Mikrocodeausführung der Befehle "Speichern/mehrfach" (STM) und "Laden/mehrfach und Verzweigen" (LMB) durch die Hardware in] den Fign. 2A bis 2H.
In beiden Tabellen sind die Spaltenüberschriften direkt bezogen auf die Ausgangsdecodierer 205 bis 209, dargestellt in Fig. 2B, des Festwertspe- hers 201. Die äußerste linke Spalte mit der Überschrift Quelle beispielsweise stellt spezifische binäre werte dar, die durch den Quellendecodierer 205 decodiert und [als eines von mehreren Steuersignalen ausgegeben werden, um
!Quellen im Datenfluß zur Leitung an die Prozessorsammelleitung 57 zu wählen. Die zweite Spalte von links mit der Überschrift !"ALU-Steuerung" enthält vom ALU Funktions-Decodierer 208 ertzeugte Decodierungen und ist zu jeder Zeit eine bestimmte
BC 976 oi 4 7098 46/ 097 5
binäre Decodierung von mehreren möglichen Decodierungen, die sich auf die Steuerung der ALU-Funktionen beziehen, z.B. UND-, ODER-Addieren, Subtrahieren, Addieren 2 usw.
Die dritte Spalte stellt Bestimmungssteuerungen dar und wird abgleitet von einer von mehreren möglichen binären Decodierungen vom Bestimmungsdecodierer 206, der an den Ausgang des Festwertspeichers 201 angeschlossen ist. Mit den BestimmungsSteuerungen wird Information von der Prozessorsammelleitung 57 auf die gewählten Bestimmungsregister geleitet.
Die vierte Spalte "Speichersteuerung" überschrieben, beschreibt die vom Speichersteuerdecodierer 207 abgegebenen und an den ι Speichersteuerblock 236 selbst gesendeten Steuersignale. Zu
den Speichersteuerungen gehören das Ladeinstruktionswort (LIW)„
i ι
das ein Hort von dem Instruktionsadreßschlüsselraum des Haupt i Speichers lädt, und das Ladewort (LW), das ein Wort vom Adreß- ;
raum des Operanden 2 lädt. Die anderen zu diesen beiden Instruk-
i tionen gehörenden Steuerungen sind das Speicherwort (SW), das ι
ein Wort in den Adreßraum des Operanden 2 speichert. Die ! Wortlade- und Speichersteuerungen dienen zum Ansteuern des ! Stapel- und Stapelsteuerblocks im Hauptspeicher 8, während mit dem Instruktionsladewort die Instruktionen "Speichern mehrfach* (STM) und "Laden mehrfach" selbst angesteuert werden.
BC~57«~ÖT4"
709846/0975
Information unter der Überschrift "sonstige" bezieht sich auf die übrige Sammlung von Steuersignalen, die durch den Block 209 in Fig. 2B mit der Überschrift "sonstige Steuerdecodierer" decodiert werden. Diese Gruppe von Steuersignalen enthält die- ;
jenigen Signale, die die Mikroprogrammverzweigung in Verbin- j dung mit der bedingten Verzweigungslogik 152 in Fig. 2A steuern. Diese Steuerung erfolgt durch die Fähigkeit der Hardware für bestimmte Werte der Decodierung innerhalb dieses Bereiches der Ausgabe des ROS 201 (2B) Hardwarebedingungen laufend innerhalb des Systems abzufragen und eine adressierte Verzweigung in das Festwertspeicher-Adreßregister 193 (ROSAR) zur Benutzung bei der Bildung der nächsten Mikroprogrammadresse zu setzen. Die übrige Spalte ist einfach die Zahl der Mikrozyklen in aufsteigender Reihenfolge.
i Bei den angezogenen Stapeln handelt es sich um zwei Typen - der eine Stapel befindet sich im Hauptspeicher, der andere im Block! 80 der Fig. 2, der die Register für die verschiedenen Stufen ! enthaltende Registergruppe bildet. Dieser kann gelegentlich selbst als Stapel bezeichnet werden, darf jedoch nicht mit den Stapeln im Hauptspeicher verwechselt werden. Weiterhin ist zu jbeachten, daß der zu den Hauptspeicherstapeln gehörende Stape1-
Isteuerblock selbst ein Hauptspeicherelement ist. JTabelle A zeigt die Reihenfolge der Steuersignale, die beim Auf
führen eines Befehles "Speichern mehrfach" (SMP) auftreten. Mit diesem Befehl wird ein Element in den Stapel gesetzt.
BC976 014 ~7 Ö 9 846/~09T 5
AdreBbetrleb
(Rb) + A
Rb ψ Ο
TABELLE A Speicher mehrfach (STM)
Mikrocode
Instruktionsadresse In WA
Instruktion in SDR und OP
Quelle
ALU Steuerung
Bestimmung Speicher steuerung
Sonst.Schritt
WA +2 IAR
IAR Leite SAR + WA
WA +2 IAR
Stapel be
nutzt
R-FeId
(Dp Reg)
Leite Y
SDR Leite WA
WA & Y Addiere SAR & WA
WA Leite TEMP
SDR Leite Y
IAR Leite SAR
Y Leite TEMP 1
WA +4 SAR
EMIT OOO3 Leite ZÄHLER
SDR Leite Y
LIW
LW
LIW
Schiebe WA und Y nach links bis Zähler Null ist.
Zähler erniedrigen.
^A +1 WA
Y ' Leite TEMP 2
EMIT 0007 Leite Y
|WA. Y AND Zähler & WA
Schiebe WA und Y nach links um eine Position
TEMP Z Leite Y
WA & Y Addiere WA
WA +4 Y
TEMP 1 Leite WA
SDR Leite TEMP 1
WA-Y Subtrahiere WA
BC 976 014 Iftfto ;
LIW
1 2 3
4 5 6 7 8 9
10 11 12 13
14 15 16 17 18 19 20 21 22 23 24 25
709846/0975
si "j
SDR Leite Y * 26 ;
Stapelausnahme setzen weil Stapel anschließt. 27 I WA-Y Subtrahiere - 28 ! WA Leite SAR ** 29 Stapelausnahme setzen wegen Überlauf. 30 : TEMP 1 Leite SDR SW 31 ; WA Leite TEMP 1 32
WA +2 1 33 j
TEMP 2 Leite WA 34 WA + Y Addiere SAR & WA 35 !
Stapel :
benutzt R7 Leite SDR SW 36 ;
WA +2 SAR & WA 37 ι
Stapel ,
benutzt (1T) Leite SDR SW 38
*** 39 !
Y Leite Stapel
benutzt (K) 40 ;
SDR 41
SAR SW 42
WA 43
SAR & IAR LIW 44
Verarbeite nächste Instruktion * Verzweige bei übertrag nach 28.
j ** Verzweige bei übertrag nach 31. *** Verzweige bei CTR?nach 37.
TEMP 1 Leite
TEMP Leite
IAR Leite
WA +2
Bc 976 014 70 98 46/ 097 5
- se--
si
Zusammenfassung "Speichern mehrfach" (STM)
Mit den Zyklen 1 bis 7 wird die Stapelsteuerblockadresse festgelegt (addiere Inhalt des durch das R-FeId in der Instruktion angegebenen Registers zu der 16 Bit großen absoluten Adresse im zweiten Wort der Instruktion in diesem Beispiel). Die alte TEA wird im Zyklus 8 in Y gesetzt. Die Anzahl der Register und die Größe des dynamischen Arbeitsbereiches N-Bytes wird in Zyklus 9 geholt und in Zyklus 13 an das Y-Register gesetzt. In den Zyklen 14 bis 22 wird die Anzahl der zu verschiebenden Register und der N-Bytes in die entsprechenden Arbeitsregister hineinerrechnet. Die Zyklen 23 bis 25 errechnen die neue TEA. (Alte TEA minus Elementgröße). Das Ergebnis wird in Zyklus 26 darauf geprüft, ob der Stapel am Hauptspeicher anschließt.
!Wenn das der Fall ist, wird eine Ausnahme angezeigt.
! j
i jln Zyklus 29 wird die neue TEA mit der LLA verglichen und ge- j
?rüft, ob ein Unterlauf auftritt. Wenn das der Fall ist, wird ine Ausnahme angezeigt. In Zyklus 31 werden die Zahlen R und N gespeichert. R7 wird in Zyklus 36 gespeichert und die übrigen Register werden in einer durch die Zyklen 37 bis 39 gebildeten Schleife gespeichert. Die neue TEA wird in dem Zyklus 42 in den Stapelsteuerblock gespeichert. Mit den übrigen Zyklen wird der Abruf der nächsten Instruktion vorbereitet.
976 014 709846/097 5
- «srr-
Genaue Beschreibung der Mehrfachspeicheroperation (STM)
In den Mikrozyklen 1 bis 7 wird die Adresse des Stapelsteuerblocks 8a, Fig. 3, im Hauptspeicher 8 festgelegt, in dem in diesem Beispiel der Inhalt des durch das R-FeId in der STM-Instruktion angegebenen Registers addiert wird zu einer 16 Bit großen absoluten Adresse im zweiten Hort dieser Instruktion. In den Mikrozyklen 1 bis 7 wird insbesondere im Zyklus 4 das gewählte Register aus dem Registerstapel 80 für die laufende Stufe geholt mit dem R-FeId aus dem Op-Register 101 in Fig. 2F.
Die Datenbahn 101A in Fig. 2F trägt die Bezeichnung "Register- j Wahl von Instruktion". Der Wert im gewählten Register wird unverändert durch die ALU 51 in Fig. 2E weitergeleitet und in das Y-Register 53 gesetzt. In den Mikrozyklen 1 bis 3 wird die 16 Bit große absolute Adresse geholt, und in Mikrozyklus 5 werden die Ergebnisse vom Hauptspeicher 8, Fig. 1, die im Prozesporspeicherdatenregister 70 (SDR) Fig. 21 angekommen sind, in
3as WA-Register 52 gesetzt. Im Mikrozyklus 6 wird WA zu Y iddiert, zur Bildung der Summe dieser beiden früheren Operanden, woraus sich die effektive Adresse, Block 305, Fig. 3, ergibt. Diese wird im Mikrozyklus 6 in das Speicheradreßregister )5 der Fig. 2G sowie in den Arbeitsbereich gesetzt. In derneel- >en Mikrozyklus wird ein Speichersteuersignal "Wortladen" abgegeben, damit der Operand an der Basisadresse des Stapelsteuerblocks 8a (alte TEA) geholt wird. Das Ergebnis dieser Speicheret 976 ÖT4 IOSbIsToSTS
sr
steuerung zeigt sich in Zyklus 8, wo der resultierende Operand (alte TEA) aus dem Speicherdatenregister 70 in das Y-Register 53, Fig. 2E, gesetzt wird.
Mit dem LIW-Speicherzugriff im Mikrozyklus 9 wird die Anzahl von zu speichernden Registern und die Größe des dynamischen Arbeitsbereiches (N-Bytes) geholt. Diese Werte werden in das Speicherdatenregister 70 durch die Hardwaresteuerung gesetzt und im Mikrozyklus 13 in das Y-Register 53 verschoben. Das Ergebnis wird im Mikrozyklus 14 verschoben, im Mikrozyklus 17 mit drei binären Einerbits maskiert und im Mikrozyklus 18 UND-verknüpft und weiter im Mikrozyklus 19 verschoben. In den Mikrozyklen 20 bis 22 wird dann die Registerzahl (Rx) am äußersten rechten !Ende des WA-Registers 52 ausgerichtet, und die Anzahl von Bytes im dynamischen Arbeitsbereich N im Register 53 zur !
i ' ι
nachfolgenden Benutzung durch die ALU und den Rest der System-
I !
steuerung ausgerichtet.
In den Mikrozyklen 23, 24 und 25 wird die neue obere Elernentenadresse (TEA) errechnet, die durch Subtrahieren der Elementengröße von der alten oberen Elementenadresse abgleitet wird (der Stapel 8b in Fig. 3 ist bekanntlich ein Kellerstapel). Im Mikrozyklus 26 muß die Schaltkreisanordnung jetzt prüfen, ob durch Zufügung dieses neuen Elementes zum Stapel ein Anschluß in der Hauptspeicheradressierung erfolgt; d.h., der Hauptspeicheradreßwert läuft durch 0, durch 65, 536 und abwärts zu einer
kleineren Zahl. Das ist eine ungültige Bedingung. Wenn diese BC 976 014 70 98 46/097 5
-"9T- j
se»
auftritt, wird der Ubertragsanzelger durch die zu den ALU-Er- ' gebnissen gehörende Schaltkreisanordnung gesetzt, und es erfolgt keine Verzweigung. Daher wird der Mlkrozyklus 27 ausgeführt und es folgt eine Stapel-Ausnahme-Programmprüfunterbrechung. Wenn durch Zufügen des neuen Elementes zum Stapel der Hauptspeicher nicht anschließt, wird der Ubertragsanzelger als ' Ergebnis der Rechenoperation im Mikrozyklus 25 nicht gesetzt, i
Dann erfolgt vom Mikrozyklus 26 aus eine Verzweigung zum Mikro-j
I zyklus 28. Im Mikrozyklus 26 steht die untere Grenzadresse (LLA) im Speicherdatenregister 70 der Fig. 2E zur Verfügung, die in Mikrozyklus 23 vom Hauptspeicher geholt wurde, und wird an das Y-Register 53 geleitet. Im Mikrozyklus 28 wird der Inhalt des Y-Registers (untere Stapelgrenzadresse) von der neuen oberen Elementenadresse subtrahiert und das Auftreten eines Unterschreitens geprüft. Wenn ein Unterschreiten auftritt, wire der Übertragsanzeiger gesetzt, die Verzweigung im Mikrozyklus 29 wird nicht vorgenommen und es wird der Mikrozyklus 30 ausgeführt, wodurch eine Stapelausnahme und die zugehörige Pro-
jgrammprüfunterbrechung auftreten. Wenn kein übertrag auftritt, !wird der Mikrozyklus 30 nicht ausgeführt, sondern stattdessen
der Mikrozyklus 31, in dem die Registerzahl und die Anzahl von Bytes im dynamischen Arbeitsbereich gespeichert werden. Register R7 wird im Mikrozyklus 36 gespeichert; die übrigen Register im Hauptspeicher im Stapel 8b in einer durch die Mikrozyklen 37, 38 und 39 gebildeten Schleife. Die Steuerung dieser Schleife basiert auf dem Zahlenstand des Zählregisters
75 inFig. 2Ff der bei jedem Durchgang der Schleife herunterbc 976 O14 709846/0975
gesetzt wird und Im Mikrozyklus 18 auf die richtige Registerzahl eingestellt wurde. Im Mikrozyklus 42 wird die neue obere Elementenadresse (TEA) In den Stapelsteuerblock 8a gespeichert. Sie ersetzt die alte obere Elementenadresse. Die Adresse des Stapelsteuerblocks 8a wird für diesen Zweck aus der Stelle des Registerstapels 80 geholt, die als TEMP bezeichnet wird, und in das Speicheradreßregister 95 geleitet. Die errechnete neue obere Elementenadresse wird im Mikrozyklus 41 aus der Registerstapelstelle TEMP 1 wiedergewonnen und in das Speicherdatenregister 70 gesetzt. In den Mikrozyklen 43 und 44 wird das Instruktionsadreßregister 107 fortgeschrieben und sein Inhalt in das Speicheradreßregister 95 gesetzt, wo im Mikrozyklus 44 dieser zum Abholen der nächsten Instruktion benutzt wird.
Die nachstehende Tabelle B zeigt die Reihenfolge der Steuer- |
signale bei Auftreten eines Befehles "Laden mehrfach und Ver- j
j zweigen" (LMB). Mit diesem Befehl wird ein Element aus dem !
Stapel herausgezogen.
BC 976-öTT 7098 46/097 5
S?
TABELLE B LMB Mlkrocode Adreßbetrieb « (Rb) + A
Rb Φ Ο Instruktionsadresse in WA
Instruktion in SDR und OP Quelle ALU Steuerung Bestimmung
Speichersteuerung
Sonst. Schritt
WA +2 IAR
IAR Leite SAR & WA LIW
WA +2 IAR
Stapel
benutzt
R-FeId
(Op Reg.) Leite Y
SDR Leite WA WA + Y Addiere SAR & WA LW
SDR Leite Y
WA +2 SAR LW
Y Leite WA
SDR Leite Y
WA-Y Subtrahiere Stapelausnahme setzen weil Stapel leer ist.
WA +2 TEMP
Aussenden
0003 Leite Zähler
SDR Leite Y
WA & Y nach links schieben bis Zähler Null ist.
!Zähler erniedrigen.
WA +1 Y Leite Aussenden 0007 Leite WA.Y AND TEMP 2 Leite
WA TEMP
Zähler & WA WA
»Verzweige bei übertrag nach BC 976 014 709846/
1 2 3
4 5 6 7 8 9
10 11 12 13
14 15
16 17 18
19 20 21
TEMP 1 Leite Y
WA + Y Addiere SAR & WA
SDR Leite Stapel (R7)
WA +2 SAR & WA
SDR Leite Stapel
benutzt (K)
WA +2 SDR
TEMP Leite SAR
Stapel
(R7)
Leite SAR & NA
WA Leite IAR
LW
LW
SW
LIW
Verarbeitung der nächsten Instruktion ** Verzweige CTR0 nach 28. *** Verzweige nach 25.
BC 976 014 709846/0975
"LADEN MEHRFACH UND VERZWEIGEN" (LMB)
In den Zyklen 1 bis 7 wird die effektive Adresse des Stapel- j Steuerblocks berechnet (in diesem Beispiel wird der Inhalt des j durch das R-FeId in der Instruktion angegebenen Registers zu einer 16 Bit großen absoluten Adresse im zweiten Wort der Instruktion addiert). Die alte TEA wird im Zyklus 7 in das \ Y-Register gesetzt, und im Zyklus 8 wird die HLA geholt. Die ' HLA wird im Zyklus 10 in das Y-Register gesetzt. Der Zyklus 11 fragt auf einen leeren Stapel ab.
In den Zyklen 13 bis 22 wird N (in Bytes) nach WA und die An- :
zahl der in den Zähler 75 zu ladenden Register ermittelt. In j
den Zyklen 23 und 24 wird R7 vom Hauptspeicher verschoben, in j den Zyklen 25 bis 27 die übrigen Register.
In den Zyklen 28 und 29 wird die neue TEA in den Stapelsteuerblock gespeichert, und den Zyklen 30 und 31 wird mit der Verzweigungsadresse die nächste Instruktion geholt.
,Genaue Beschreibung der Operation "Laden mehrfach und Verzwei gen" (LMB)
Die Mikrozyklen 1 bis 7 dieses Mikrocodes, dargestellt in Tabelle B, haben denselben Zweck wie die ersten 7 Mikrozyklen in Tabelle A, nämlich die Errechnung der effektiven Adresse des
Stapelsteuerblocks 8a. Die alte obere Elementenadresse wird im BC 976 014 709846/0975
Mikrozyklus 7 in das Y-Register 53 gesetzt. Im Mikrozyklus 8 wird die nächstfolgende Stelle im Hauptspeicher angesteuert (durch Addition von zwei zur vorhergehenden Adresse) und die obere Stapelgrenzadresse (HLA) geholt. Im Zyklus 9 wird die alte obere Elementenadresse vom Y-Register 53 in den Arbeitsbereich verschoben um Platz zu machen für die obere Stapelgrenz adresse (HLA), die im Zyklus 10 in das Y-Register zu setzen ist Im Mikrozyklus 11 wird die obere Stapelgrenzadresse von der oberen Elementenadresse subtrahiert, um auf einen leeren Stapel zu prüfen. Dieser wird durch Einschalten des Ubertragsanzeigers im Mikrozyklus 11 angezeigt. Wenn der Ubertragsanzeiger eingeschaltet ist, wird im Mikrozyklus 11 nicht verzweigt, aber eine Stapelausnahme mit der betreffenden Programmprüfunterbrechung eingeleitet. Wenn die Stapelgrenzen nicht verletzt sind, wird im Mikrozyklus 11 verzweigt und die Ausführung im Mikrozyklus 13 fortgesetzt. In den Mikrozyklen 13 bis 22 wird die Anzahl der zu ladenden Register (Rx) und die Größe in 'Bytes (N) des dynamischen Arbeitsbereiches in zwei Arbeitsregister aufgeteilt. N wird in den Arbeitsbereich gesetzt und ; die Anzahl der zu ladenden Register in den Zähler 75. (Die ' Ähnlichkeit zum umgekehrten Verfahren bei der Mehrfachspeicheroperation ist zu beachten). In den Zyklen 23 und 24 wird der Inhalt des Registers R7 aus dem Hauptspeicher 8 geholt und in die entsprechende Stelle in den Registerstapel 80 gesetzt. In ! der Schleife aus den Mikrozyklen 25, 26 und 27 werden die übrigen Register aus dem Hauptspeicher 8 geholt und in die
976 014 709846/09 7
entsprechenden Positionen Im Registerstapel gesetzt. Das Stapeladreßregister 105 In Flg. 2G (In der Mlkrocodellste mit K bezeichnet), wird bei Benutzung jedesmal um 1 erhöht, und so braucht die Erhöhung dieses Registers nicht separat gesteuert zu werden. Die Schleifensteuerung basiert auf dem Wert Im Zähler, der jedesmal bei seiner Abfrage Im Mikrozyklus 25 heruntergesetzt wird. Wenn alle Register verschoben wurden, ; erfolgt eine Verzweigung vom Mikrozyklus 25 zum Mikrozyklus 28,, wo die Daten (die neue TEA) In das Speicherdatenregister 70 j gesetzt werden. Die Adresse der neuen TEA wird von der mit TEMP Im Registerstapel bezeichneten Stelle gewonnen und In ; das Spelcheradreßreglster 95 gesetzt, wo sie Im Mikrozyklus 29 : In den Hauptspeicher 8 Im Stapelsteuerblock 8a gespeichert wire In den Zyklen 30 und 31 wird das Register R7 aus dem Registerstapel geholt (es enthält die für den nächsten Instruktionsabruf zu benutzende Adresse) und In das Speicheradreßregister 105 und den Arbeitsbereich gesetzt. Die Speichersteuerung zum Laden des Instruktionswortes (LIW) in diesem Mikrozyklus dient zum Abruf der nächsten Instruktion. Im Mikrozyklus 31 wird dieser Wert in das CIAR 107 in Fig. 2G zur weiteren Benutzung gesetzt. In den nachfolgenden Mikrozyklen wird dann die nächste Instruktion verarbeitet.
se 975 öTC 7 0 9 8 'k 6 7 0 9 7 5
Leerseite

Claims (16)

  1. -Jf-
    27Ί9295
    PATENTANSPRÜCHE ν '
    ( 1 Γ) Einrichtung zur Steuerung der Programmausführung in einer elektronischen Datenverarbeitungsanlage mit einem Hauptspeicher begrenzter Kapazität, in der mindestens ein Hauptprogramm und mindestens eine Unterroutine gespeichert ist, gekennzeichnet durch eine Steuereinrichtung, die beim Auftreten vorgegebener Bedingungen nach der Ausführung von Befehlen des Hauptprogramms von diesem zu einer Unterroutine verzweigt, ferner durch eine Schaltungsanordnung, die Angaben bezüglich des Status der Datenverarbeitungsanlage und bezüglich einer Verbindung von Programmteilen speichert, wenn eine Verzweigung durchzuführen ist und schließlich durch eine Schaltungsanordnung zur dynamischen Zuteilung von Arbeitsbereichen (Stapeln) im Hauptspeicher für eine Benutzung während der Durchführung von Unterroutinen.
  2. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Steuereinrichtung nach dem Feststellen der genannten vorgegebenen Bedingungen einen "Speichern mehrfach"-Befehl erzeugt, der die Schaltungsanordnung, die Angaben bezüglich des Status der Datenverarbeitungsanlage und einer Verbindung von Programmteilen speichert, steuert.
    BC 976 014
    709846/0975 ORIGINAL INSPECTED
  3. 3. Einrichtung nach Anspruch 1 und/oder 2, dadurch gekennzeichnet, daß die Steuereinrichtung auch eine Schaltungsanordnung zur Rückspeicherung aufweist, die die vollständige Durchführung von Unterroutinen feststellt und daraufhin die genannten Angaben bezüglich des Status der Datenverarbeitungsanlage zurückspeichert .
  4. 4. Einrichtung nach einem oder mehreren der Ansprüche
    1 bis 3, dadurch gekennzeichnet, daß die Steuereinrichtung einen "Lade mehrfach und Verzweige"-Befehl nach der vollständigen Durchführung einer Unterroutine erzeugt, die den Mechanismus zur Rückspeicherung der Angaben bezüglich des Status der Datenverarbeitungsanlage steuert.
  5. 5. Einrichtung nach einem oder mehreren der Ansprüche
    1 bis 4, dadurch gekennzeichnet, daß die Schaltungsanordnung zur dynamischen Zuteilung von Arbeitsbereichen über eine Freigabeschaltung verfügt, die nach der Rückspeicherung der Angaben aus dem Arbeitsbereich diesen wieder für eine andere Verwendung freigibt.
  6. 6. Einrichtung nach einem oder mehreren der Ansprüche 1 bis 5, dadurch gekennzeichnet, daß eine Prüfein-
    BC 976 014
    709846/0975
    271929b
    richtung vorgesehen ist, die automatisch die Unterroutinenoperationen überprüft, um Fehler im gespeicherten Programm festzustellen und um eine hierfür spezifische Routine einzuleiten.
  7. 7. Einrichtung nach einem oder mehreren der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß die Angabe über Status und Verbindung von Subroutinen in einem Stapel im Hauptspeicher gespeichert ist, der von einem Stapelsteuerblock, der ebenfalls Teil des Hauptspeichers ist, gesteuert wird.
  8. 8. Einrichtung nach einem oder mehreren der Ansprüche j
    1 bis 7, dadurch gekennzeichnet, daß die Steuereinrichtung einen "Speichern mehrfach"- und "Lade mehrfach und Verzweige"-Befehl erzeugt und diese Steuereinrichtung auf einen "Speichern mehrfach"-Befehl ein Informationselement in den Stapel einfügt und mittels eines "Lade mehrfach und Verzweige"-Befehls ein Informationselement aus dem Stapel abzieht.
  9. 9. Einrichtung nach einem oder mehreren der Ansprüche
    1 bis 8, dadurch gekennzeichnet, daß die Steuereinrichtung die Speicherung mehrerer Unterroutinen-Verbindungsinformationssätze im Hauptspeicher in genesteter Reihenfolge vornimmt. BC 976 Ö14
    709846/0975
  10. 10. Verfahren zum Betrieb einer in den Ansprüchen 1 bis 9 gekennzeichneten Einrichtung für eine Warteschlangenbildung von Unterroutineninformation auf der Maschinensprachenebene, gekennzeichnet durch einen Hauptspeicher zur Speicherung von Informationsbytes nach dem Algorithmus "zuletzt herein zuerst heraus" (LIFO) in einem Stapel mit einer oberen Grenzadresse (HLA), einer unteren Grenzadresse (LLA) und einer oberen Elementadresse (TEA) und folgende Verfahrensschritte:
    1. Erzeugen eines Maschinensprachenbefehls, der im Hauptspeicher
    a) eine Stapelsteuerblockadresse (A)
    b) eine Grenzregisternummer (Rx)
    c) eine Zahl (N) zur Zuteilung von Bytes im Hauptspeicher als dynamischer Arbeitsbereich spezifiziert,
    2. Zugriff zu dem Stapel, gesteuert von der Stapelsteuerblockadresse (A) ,
    3. Heraufzählen der oberen Elementadresse (TEA), basierend auf dem Zuteilungswert (N),
    4. Zuteilung von Registern RO bis Rx und eines Verbindungsregisters R7 im Hauptspeicher,
    5. Speicherung der Basisadresse des dynamischen Arbeitsbereichs im Register Rx,
    014 7098 46/097 5
    6. Speichern von Rx und N im Stapel und
    7. Speicherung einer Ruferroutinenrückkehradresse im Register R7.
  11. 11. Verfahren nach Anspruch 10, dadurch gekennzeichnet, daß der Maschinenbefehl der Befehl "Speichern mehrfach" ist.
  12. 12. Verfahren nach Anspruch 10 und/oder 11, gekennzeichnet durch folgende weitere Verfahrensschritte:
    8. Speichern von Statusinformation in den erwähnten zugeteilten Registern.
  13. 13. Verfahren nach einem oder mehreren der Ansprüche 10 bis 12, gekennzeichnet durch die folgenden Verfahrensschritte zur Auflösung der Warteschlange von Unterroutineninformation:
    9. Erzeugung eines zweiten Maschinenbefehls für einen erneuten Zugriff zu dem Unterroutinenstapel,
    10. Aufsuchen der Werte Rx und N im Stapel für die
    Steuerung der Rückübertragung der Registerinfor-
    mation, wie beispielsweise Statusinformation und ' Wiederherstellung der Stapelsteuerzugriffsinformation in der Form ihres früheren Status und
    60976014 709846/0975
    11. Rückkehr zur Ruferroutine, gesteuert von der Rückkehradresse im Register R7.
  14. 14. Verfahren nach Anspruch 13, dadurch gekennzeichnet, daß der genannte Maschinenbefehl der Befehl "Lade mehrfach und Verzweige" ist.
  15. 15. Verfahren zum Betrieb der Einrichtung nach einem oder mehreren der Ansprüche 1 bis 9, dadurch gekennzeichnet, daß zur Warteschlangenbildung auf Maschinensprachenebene ein Hauptspeicher zur Speicherung von Information3-bytes nach dem Algorithmus "zuletzt herein zuerst heraus" (LIFO) in einem Stapel mit einer oberen Grenzadresse (HLA), einer unteren Grenzadresse (LLA) und einer oberen Elementadresse (TEA) folgende Verfahrensschritte durchgeführt werden:
    1. Erzeugen eines Maschinenbefehls, der in dem Hauptspeicher eine Stapelsteuerblockadresse (A) spezifiziert, j
    2. Zugriff zu dem Stapel, gesteuert von der Stapelsteuerblockadresse (A) ,
    3. Zuteilung der Register RO bis zu einem Verbindungsregister R7 im Hauptspeicher und
    j 4. Speicherung einer Ruferroutine-Rückkehradresse im
    Register R7.
    BC 976 o 14 709846/0975
  16. 16. Verfahren nach Anspruch 15, gekennzeichnet durch die folgenden Schritte zur Auflösung der Warteschlange von Unterroutineninformation:
    1. Erzeugen eines zweiten Maschinenbefehls für das Wiederansteuern des Unterroutinenstapels,
    2. Wiederaufsuchen der Registerinformation, wie beispielsweise Statusinformation und Wiederherstellung des früheren Status des Stapelsteuerzugriffs,
    3. Rückkehr der Ruferroutine, gesteuert von der Rückkehradresse im Register R7.
    BC 976 oi4 709846/0975
DE19772719295 1976-04-30 1977-04-29 Programmsteuerung Withdrawn DE2719295A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/682,002 US4041462A (en) 1976-04-30 1976-04-30 Data processing system featuring subroutine linkage operations using hardware controlled stacks

Publications (1)

Publication Number Publication Date
DE2719295A1 true DE2719295A1 (de) 1977-11-17

Family

ID=24737790

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19772719295 Withdrawn DE2719295A1 (de) 1976-04-30 1977-04-29 Programmsteuerung

Country Status (9)

Country Link
US (1) US4041462A (de)
JP (1) JPS52133739A (de)
AU (1) AU506782B2 (de)
BR (1) BR7702422A (de)
DE (1) DE2719295A1 (de)
FR (1) FR2357959A1 (de)
GB (1) GB1556551A (de)
HK (1) HK71084A (de)
IT (1) IT1113538B (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5311547A (en) * 1976-07-20 1978-02-02 Oki Electric Ind Co Ltd Program call order system
IT1192334B (it) * 1977-10-25 1988-03-31 Digital Equipment Corp Sistema di elaborazione dei dati numerici
JPS5474652A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS5474653A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS5474646A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS5474651A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
JPS5474650A (en) * 1977-11-28 1979-06-14 Toshiba Corp Stack control system
US4381540A (en) * 1978-10-23 1983-04-26 International Business Machines Corporation Asynchronous channel error mechanism
JPS5567852A (en) * 1978-11-16 1980-05-22 Nec Corp Malfunction preventing circuit for microcomputer system
US4296470A (en) * 1979-06-21 1981-10-20 International Business Machines Corp. Link register storage and restore system for use in an instruction pre-fetch micro-processor interrupt system
US4279016A (en) * 1979-06-21 1981-07-14 International Business Machines Corporation Instruction pre-fetch microprocessor interrupt system
GB2060225B (en) * 1979-09-29 1983-05-25 Plessey Co Ltd Multi-programming data processing system process suspension
US4430711A (en) 1980-05-30 1984-02-07 Signetics Corporation Central processing unit
US4633406A (en) * 1981-01-05 1986-12-30 Data General Corporation Digital data processing system method for making a general call
US4649472A (en) * 1981-02-04 1987-03-10 Burroughs Corporation Multi-phase subroutine control circuitry
US4467410A (en) * 1981-02-04 1984-08-21 Burroughs Corporation Multi-phase subroutine control circuitry
US4459659A (en) * 1981-02-04 1984-07-10 Burroughs Corporation Subroutine control circuitry for providing subroutine operations in a data processing system in which tasks are executed on a microprogrammed level
US4430707A (en) 1981-03-05 1984-02-07 Burroughs Corporation Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks
US4434465A (en) 1981-04-13 1984-02-28 Texas Instruments Incorporated Shared microinstruction states in control ROM addressing for a microcoded single chip microcomputer
US4399507A (en) * 1981-06-30 1983-08-16 Ibm Corporation Instruction address stack in the data memory of an instruction-pipelined processor
US4454580A (en) * 1981-09-16 1984-06-12 International Business Machines Corporation Program call method and call instruction execution apparatus
US4450525A (en) * 1981-12-07 1984-05-22 Ibm Corporation Control unit for a functional processor
US4577282A (en) * 1982-02-22 1986-03-18 Texas Instruments Incorporated Microcomputer system for digital signal processing
US4528625A (en) * 1982-02-11 1985-07-09 Texas Instruments Incorporated Input/output instruction execution in microcomputer
JPS6054049A (ja) * 1983-09-02 1985-03-28 Hitachi Ltd デ−タ処理装置におけるサブル−チンリンク制御方式
US4571673A (en) * 1983-09-29 1986-02-18 Tandem Computers Incorporated Enhanced CPU microbranching architecture
US4584640A (en) * 1984-06-27 1986-04-22 Motorola, Inc. Method and apparatus for a compare and swap instruction
ATE94999T1 (de) * 1984-11-21 1993-10-15 Harris Corp Mikroprozessor fuer forth-aehnliche sprache.
US4766537A (en) * 1986-01-02 1988-08-23 Motorola, Inc. Paged memory management unit having stack change control register
JPS63170736A (ja) * 1987-01-09 1988-07-14 Toshiba Corp マイクロプロセツサ
US5220669A (en) * 1988-02-10 1993-06-15 International Business Machines Corporation Linkage mechanism for program isolation
CA1312142C (en) * 1988-02-10 1992-12-29 Richard I. Baum Linkage mechanism for program isolation
US5321823A (en) * 1988-07-20 1994-06-14 Digital Equipment Corporation Digital processor with bit mask for counting registers for fast register saves
US5175828A (en) * 1989-02-13 1992-12-29 Hewlett-Packard Company Method and apparatus for dynamically linking subprogram to main program using tabled procedure name comparison
JPH03129402A (ja) * 1989-07-10 1991-06-03 Mitsubishi Electric Corp プログラマブルコントローラのプログラム作成方法およびプログラミング装置
EP0466550B1 (de) * 1990-06-29 1998-11-18 Digital Equipment Corporation Umwandlung der Befehle von internen Prozessorregistern in I/O-Adressraum
JPH0831041B2 (ja) * 1991-09-06 1996-03-27 インターナショナル・ビジネス・マシーンズ・コーポレイション プログラム条件処理方法およびコンピュータ・システム
US5448707A (en) * 1991-10-29 1995-09-05 Intel Corporation Mechanism to protect data saved on a local register cache during inter-subsystem calls and returns
JP3307085B2 (ja) * 1993-12-10 2002-07-24 ソニー株式会社 通信方法及び電子機器
US5784701A (en) * 1995-09-19 1998-07-21 International Business Machines Corporation Method and system for dynamically changing the size of a hardware system area
US6154865A (en) * 1998-11-13 2000-11-28 Credence Systems Corporation Instruction processing pattern generator controlling an integrated circuit tester
EP1483682A2 (de) * 2002-01-19 2004-12-08 PACT XPP Technologies AG Reconfigurierbarer prozessor
WO2003065252A1 (en) * 2002-02-01 2003-08-07 John Fairweather System and method for managing memory

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3548384A (en) * 1967-10-02 1970-12-15 Burroughs Corp Procedure entry for a data processor employing a stack
US3639912A (en) * 1969-04-16 1972-02-01 Honeywell Inf Systems Management control subsystem for multiprogrammed data processing system
GB1410631A (en) * 1972-01-26 1975-10-22 Plessey Co Ltd Data processing system interrupt arrangements
IT980896B (it) * 1973-04-24 1974-10-10 Olivetti & Co Spa Perfezionamenti alle calcolatri ci elettroniche
US3868644A (en) * 1973-06-26 1975-02-25 Ibm Stack mechanism for a data processor
JPS5412174B2 (de) * 1973-07-02 1979-05-21
US3909797A (en) * 1973-12-13 1975-09-30 Honeywell Inf Systems Data processing system utilizing control store unit and push down stack for nested subroutines
AU506710B2 (en) * 1974-10-21 1980-01-24 Honeywell Information Systems Incorp. Method of accessing priviledged memory in a multiprogrammed data processing system

Also Published As

Publication number Publication date
GB1556551A (en) 1979-11-28
HK71084A (en) 1984-09-21
US4041462A (en) 1977-08-09
AU2475477A (en) 1978-11-09
FR2357959B1 (de) 1980-12-19
IT1113538B (it) 1986-01-20
FR2357959A1 (fr) 1978-02-03
BR7702422A (pt) 1978-01-17
JPS52133739A (en) 1977-11-09
AU506782B2 (en) 1980-01-24
JPS5543136B2 (de) 1980-11-05

Similar Documents

Publication Publication Date Title
DE2719295A1 (de) Programmsteuerung
DE2846495C2 (de) Zentraleinheit
EP0010198B1 (de) Vorrichtung zur Steuerung des Seitenaustausches in einem Datenverarbeitungssystem mit virtuellem Speicher
DE2224537C2 (de) Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor
DE2424931C2 (de) Mikroprogrammierbare Datenverarbeitungsanlage
DE2437200C2 (de) Mehrfachprogrammierungs-Datenverarbeitungsanlage in Modulbauweise
DE2718051C3 (de) Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben
DE2054835C2 (de) Steuereinrichtung in einem Prozessor einer Mehrprozessor-Datenverarbeitungsanlage
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE3131341A1 (de) &#34;pufferspeicherorganisation&#34;
DE3716229A1 (de) Mikroprozessorchip mit einem stapelrahmen-cache
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE2630323B2 (de) Datenspeichereinrichtung mit einem Hauptspeicher, einem Hilfsspeicher und einer Vorausschaulogik
DE1913059A1 (de) Verbesserte Programmunterbrechungseinrichtung fuer eine Datenverarbeitungsanlage in Baukastenweise
DE2517276A1 (de) Datenverarbeitungssystem
DE2657848A1 (de) Steuereinheit fuer ein datenverarbeitungssystem
DE1524102B2 (de) Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine
DE2054947A1 (de) Adressenvorbereitungseinnchtung und verfahren und Speicherzugnffan forderungseinnchtung fur ein Infor mationsver arbeitungssystem
DE1549531A1 (de) Digitale Rechenanlage
DE2626703A1 (de) Intern programmierbares datenverarbeitungssystem
DE1499206B2 (de) Rechenanlage
DE2458286A1 (de) Datenverarbeitungssystem zum verschieben von datenfeldern mit verschiedenen strukturen
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
DE2364865A1 (de) Erweitertes speicheradressenbildungssystem eines digitalen rechnersystems
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
8139 Disposal/non-payment of the annual fee