DE2718051B2 - Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben - Google Patents

Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben

Info

Publication number
DE2718051B2
DE2718051B2 DE2718051A DE2718051A DE2718051B2 DE 2718051 B2 DE2718051 B2 DE 2718051B2 DE 2718051 A DE2718051 A DE 2718051A DE 2718051 A DE2718051 A DE 2718051A DE 2718051 B2 DE2718051 B2 DE 2718051B2
Authority
DE
Germany
Prior art keywords
register
level
address
cycle
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
DE2718051A
Other languages
English (en)
Other versions
DE2718051C3 (de
DE2718051A1 (de
Inventor
Michael Ian Boca Raton Fla. Davis
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 DE2718051A1 publication Critical patent/DE2718051A1/de
Publication of DE2718051B2 publication Critical patent/DE2718051B2/de
Application granted granted Critical
Publication of DE2718051C3 publication Critical patent/DE2718051C3/de
Expired 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • G06F9/462Saving or restoring of program or task context with multiple register sets

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Executing Machine-Instructions (AREA)
  • Hardware Redundancy (AREA)
  • Multi Processors (AREA)

Description

a) eine Stapelanordnung (80) solcher Registergruppen;
b) zusätzliche separate Register (85, 90, 95) zur Aufnahme ausgewählter Zustands- und Steuerdaten aus je einer Registergruppe zur Steuerung der Bearbeitung je einer Aufgabe;
c) ein an sich bekanntes erstes Stufenregister (181) zur Aufnahme einer Identifizierung der gerade bearbeiteten Aufgabe, ein zweites Stufenregrster (185) zur Aufnahme einer Identifizierung einer jeweils vorgewählten Aufgabe, in die ein Block von Zustands- und Steuerdaten übertragen wird, sowie ein drittes Stufenregister (335) zur Aufnahme von Identifizierungen von Aufgaben, die von der Verarbeitung zurückgestellt wurden und auf eine erneute Aktivierung warten, wobei
— der Eingang des ersten jtufenregisters (181) über eine Unterbrechungsbehandlungseinrichtung (345) mit dem Ausgang des dritten Stufenregisters (335),
— der Eingang des zweiten Stufenregisters (185) iioer Verbindungseinrichtungen (181c, 1814 57) mit dem Ausgang des ersten Stufenregisters (1Λ1) und
— der Eingang des dritten S- ifenregisters (335) über logische Schaltungen (190,191) mit dem Ausgang des zweiten Stufenregisters (185) verbunden ist;
d) eine Datensammelleitung (192) vom ersten Stufenregister zur Adressiereinrichtung (193) eines Steuerprogramm-Festspeichers (201) des Prozessors (1) und Datensammelleitungen (181A ISSA) vom ersten und vom zweiten Stufenregister zur einer Adressiereinrichtung (105) der Registergruppen-Stapelanordnung.
2. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, daß eine logische Schaltung (190) vorgesehen ist zwischen dem Ausgang des zweiten Stufen registers (185) und dem Eingang des ersten Stufenregisters (181) zur Übertragung einer Identifizierung für die vorgewählte Aufgabe in das Stufenregister zur Angabe der gerade bearbeiteten Aufgabe. «
3. Datenverarbeitungsanlage nach Patentanspruch 1 bzw. 2, dadurch gekennzeichnet, daß ein bistabiles Kippglied (326, F i g. 15) vorgesehen ist zur Anzeige, ob eine jeweils vorgewählte Aufgabe in Bearbeitung ist, daß* ein Eingang des Kippgliedes eo verbunden ist mit derjenigen Leitung einer Datensammelleitung (57), auf welcher ein Anzeigebit für den Bearbeitungszustand übertragen wird, und daß der Ausgang des Kippgliedes mit einem Eingang der Adressiereinrichtung (193) des Steuerprogramm- t>> Festspeichers (201) des Prozessors (1) verbunden ist.
4. Datenverarbeitungsanlage nach Patentanspruch 3. dadurch gekennzeichnet, daß eine Steuer schaltung for bedingte Verzweigungen (152) vorgesehen ist mit Eingängen, die verbunden sind mit einem Ausgang des ersten Stufenregisters (181) und mit einer Datensammelleitung (57), über welche die Zustands- und Steuerdaten einer vorgewählten Aufgabe übertragen werden, und daß der Ausgang (2J6) der Steuerschaltung für bedingte Verzweigungen (152) mit den Adressiereinrichtungen (193) des Steuerprogratnm-Festspeichers (201) verbunden ist, so daß dieser in Abhängigkeit vom Priorivätsverhältnis der gerade bearbeiteten und der vorgewählten Aufgabe und abhängig vom im Kippglied (326) gespeicherten Bearbeitungsanzeigebit der vorgewählten Aufgabe Steuersignale abgibt für folgende Vorgänge:
a) Beginn der Ausführung der vorgewählten Aufgabe und Eingabe einer Identifizierung für die bis dahin bearbeiteten Aufgaben in das dritte Stufenregister (335) für wartende Aufgaben, wenn deren Priorität höher als oder gleich groß wie die der bis dahin bearbeiteten Aufgabe ist und wenn das Bearbeitungsanzeigebit gesetzt ist,
b) Weiterbearbeitung der gerade bearbeiteten Aufgabe und Eingabe einer Identifizierung für die vorgewählte Aufgabe in das dritte Stufenregister (335) für wartende Aufgaben, wenn die Priorität der gerade bearbeiteten Aufgabe höher ist als die der vorgewählten Aufgabe und wenn das Bearbeitungsanzeigebit gesetzt ist,
c) Weiterbearbeitung der gerade bearbeiteten Aufgabe und Eingabe einer Identifizierung für die vorgewählte Stufe in das dritte Stufen register (335) für wartende Aufgaben, unabhängig von der Priorität der vorgewählten Aufgabe, wenn das Bearbeitungsanzeigebit nicht gesetzt ist.
5. Datenverarbeitungsanlage nach Patentanspruch 1, dadurch gekennzeichnet, daß der Ausgang des dritten Stufenregisters (335) über Verbindungsschaltungen (340, 341, 192) mit einem Eingang der Adressicreinrichtung (193) des Steuerprogramm-Festspeichers (201) des Prozessors (1) verbunden ist.
Die vorliegende Erfindung betrifft eine Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung verschiedener Aufgaben nach dem Oberbegriff des Anspruchs 1.
Eine Aufgabe ist hier definiert als Abschnitt eines ausführbaren Programms, der in einer vorgegebenen Umgebung vorliegt, in der er auszuführen ist. Diese vorgegebene Umgebung schließt im allgemeinen einen kompletten Zustandsdatensatz ein, der zur Aufgabe gehört. Dieser Zustandsdatensatz kann die Befehlsadresse, Registerinhalte und sonstige Steuerinformation für den Ausführungsstatus der Aufgabe enthalten.
In herkömmlichen Datenverarbeitungsanlagen war es üblich, diese Information nur durch Programmierung zusammenzugruppieren, d. h., das Aufgabenverwaltungsprogramm hält im Hauptspeicher einen Datenblock, der die obenerwähnten Parameter definiert. Die bisher bekannten Schaltungseinrichtungen (Hardware) berücksichtigen diesen jedoch nicht als eine Einheit der Aufgabensteuerung. Statt dessen werden einzelne Befehle gegeben, wodurch z. B. Allgemeinregister geladen werden können,die Befehlsadresse geladen werden kann
und bestimmte Steuerinformationen bereitgestellt werden können. Da dieser ganze Inforniationsbloek jedesmal geändert werden muß, wenn die laufende Aufgabe geändert wird, wird dieser Prozeß sehr zeitaufwendig,
Außerdem führt die große Anzahl von zur separaten Behandlung eines jeden Informationsteils erforderlichen Befehlen zur Benutzung sehr viel Speicherraumes zur Verwaltung der Informationsübertragung und bietet auch Fehlermöglichkehen in der Programmierung.
Ferner ist in der DE-AS 22 51 876 eine elektronische Datenverarbeitungsanlage mit extern angeschlossenen Datenquellen für die Durchführung von Aufgaben auf der Basis einer Prioritäls-Stufenhierarchie mit einer Anzahl von Steuerschaltungen beschrieben, von denen jede einer bestimmten Prioritätsstufe fest zugeordnet ist und eine Einrichtung aufweist, die auf Bedienungs-Anforderungssignale der externen Datenquellen anspricht. Hierbei kann jede der genannten Steuerschaltungen die Operation der an sich bekannten arithmetischen und logischen Einheit des Prozessors unabhängig von den anderen Steuerschalrungen steuern. Zur Wahrnehmung der Stcucraufgaben ist den Bedienungs-Anforderungssignalen das Kennzeichen der Prioritätsstufe der jeweils anfordernden externen Datenquelle beigegeben, damit nur diejenige Steuerschaltung betätigt wird, deren Prioritätsstufe dem anliegenden Bedienungs-Anforderungssignal mit der höchsten Priorität entspricht, wodurch die Steuerung der genannten arithmetischen unä logischen Einheit derjenigen Steuerschaltung übergeben wird, welche die höchste Priorität aufweist, wobei das Vorliegen von Bedienungs-Anforderungssignalen niedrigerer Priorität unberücksichtigt bleibt
Auch die in der DE-AS 19 35 258 beschriebene Programm-Umschalteeinrichtung für Datenverarbeitungsanlagen mit mehreren Anschlußeinheiten befaßt sich mit der prioritätsgerechten Programmumschaltung für die Bedienung der peripheren Anschlußeinheiten.
Keine der genannten Einrichtungen löst die Aufgabe der vorliegenden Erfindung, die darin besteht, innerhalb einer Datenverarbeitungsanlage eine verbesserte Einrichtung anzuheben, mit welcher der Aufruf verschiedener Aufgaben, deren Prioritätsauswahl sowie Eingliederung in bzw. Entnahme aus Wartepositionen schnell, flexibel und hinsichtlich des Speicherplatzbedarfs im Hauptspeicher weniger aufwendig vorgenommen werden können.
Gelöst wild diese Aufgabe der Erfindung durch die im Hauptanspruch angegebenen Merkmale.
Vorteilhafte Ausgestaltungen bzw. Weiterbildungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen.
Die vorliegende Erfindung bringt eine verbesserte Lösung durch Schaltungseini ichtungen für Datenverarbeitungsanlagen zur Manipulation der Blöcke von Aufgabensteuerinformation, nachfolgend Stufenstatusblöcke genannt. Die Verbesserung wird beschrieben im Zusammenhang mit einem Datenverarbeitungssystem mit mehreren untereinander bevorrechtigten Prioritätsunterbrechungsstufen, von denen jede ihren eigenen Satz von Maschinenregistern und Statusinformation hat, entsprechend der Darstellung in den US-Patentschriften 38 25 902 und 39 05 025. Die Verbesserung ist jedoch ebenso für ein Datenverarbeitungssystem ohne derartige Prioritätsstufen geeignet.
Ein Ausfuhrungsbeispiel der Erfindung ist in den Zeichnungen dargeftellt und wird anschließend näher beschrieben. Es zeigt
ί ο
F i g. 1 ein Blockdiagramm eines Datenverarbeitungssystems, in dem die vorliegende Erfindung beschrieben wird,
Fig.2A bis 2H die Hauptbestandteile und den Datenfluß des bevorzugten Ausführungsbeispiels eines die vorliegende Erfindung enthaltenden Prozessors,
F i g. 3 eine Obersicht zur Darstellung des Zusammenwirkens einiger wichtiger Elemente der vorliegenden Erfindung,
F i g. 4 eine Obersicht des Inhaltes der Stapelregister aus F i g, 2G und F i g. 3,
Fig.5 in einem Blockdiagramm die Verbindungen zwischen den verschiedenen Stufenregistern und einer damit zusammenarbeitenden Unterbrechungsbehand-Iungseinrichtung,
Fig.6 schematisch die Festspeichersteuerung (ROS-Steuerung) des in F i g. 2A bis 2H gezeigten Prozessors, F i g. 7 das Format der Mikroprogramminstruktionen,
Fig.8 die Taktierungsgrundsignale für die Ausführung des Mikroprogramms,
F i g. 9 eine Übersicht der verschiedenen Bereiche im Festspeicher dec vorliegenden Prozessors,
Fig. 10 und 11 die für einen als Öeispie! gezeigten Maschinenbefehl »Direkt Addieren« ausgeführte Mikroprogrammroutine bzw. die Taktgrundzyklen für diese Routine,
F i g. 12 die Taktierung der Speicherzyklen,
Fig. U und 14 Taktierungsdiagramme für die Ausführung des letzten Mikroprogrammwortes in jeder Maschinenbefehlsausführungsroutine und
Fig. 15 bestimmte Teile der Steuerschaltung für bedingte Verzweigungen, die im beschriebenen Ausführungsbeispiel benutzt wird.
F i g. 1 zeigt ein Obersichtsblockdiagramm eines Systems, in dem die vorliegende Erfindung verwendbar ist Der Prozessor 1 ist das Hauptelement des Systems und ist im einzelnen in den F i g. 2A bis 2H dargestellt. Er führt Befehle aus und steuert die Signale auf den beiden Hauptschnittstellen des Systems, nämlich der Eingabe/Ausgabe-Schnittstelle 2 und der Speicher/ Übersetzer-Schnittstelle 3.
Mehrere Eingabe/Ausgabe-Geräte 4-1 bis 4-n sind mit der E/A-Schnittstelle 2 über entsprechende Geräteanschlüsse 5-1 bis 5-n verbunden. Die Geräteanschlüsse 5-1 bis 5-n steuern zusammen mit dem Prozessor die Datenübertragung zwischen dem Prozessor 1 und den E/A-Geräten 4-1 bis 4-n.
Die Speicher/Übersetzer-Schnittstelle 3 koppelt den Prozessor 1 mit einem Hauptspeicher 8 und einem Verschiebungsübersetzer 9 (Adreßübersetzer). Eine Schnittstelle 11 koppelt den Adreßübersetzer 9 mit einem asynchronen Speicher 10. Der Hauptspeicher 8 enthält einen innereil Speicherteil 14 (Innenspeicher) und einen äußeren Speicherteil 15 (Außenspeicher). Eine Schnittstelle 12 koppelt den Prozessor 1 mit dem Hauptspeicher 8, um die Datenübertragung zwischen dem Prozessor und dem inneren Speicher 14 ^u steuern. Eine Schnittstelle 13 koppelt den Hauptspeicher 8 mit dem Adreßübersetzer 9, um die Datenübertragung zwischen dem Prozessor 1 und dem äußeren Speicher 15 zu steuern. Eine Bed'znkonsole 6 ist mit dem Prozessor über eine Schnittstelle 7 gekoppelt.
Die Schnittstelle 2 enthält eine E/A-Adreßsammelleitung, eine E/A-Datensammelleitung und führt E/A-Schnittstellensteuersignale, die noch genauer im Zusammenhang mit Fig.2 beschrieben werden. Die Schnittstelle 3 enthält eine Hauptspeichersammelleitung und Steuersignalsammelleitungen zwischen Pro-
/.essor und Übersetzer. Die Schnittstellen 12 bzw. 13 sind der Weg für die Innenspeichersteuersignale und die Außenspeichersteuersignale während der Datenübertragungen. Die Schnittstelle Il enthält eine Datenausgangssammelleitung und eine Dateneingangssammellcitung zusammen mit Schnittstellensteuersignalleitungen. Soweit diese Schnittstellen mit der vorliegenden Erfindung zu tun haben, werden sie nachfolgend beschrieben.
Datenfluß im Prozessor
(Fig. 2A bis 2H)
Der Prozessor enthält ein Rechenwerk (ALU) 51 (F i g. 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 Ausgangssammelleitung 56, die mit der
n.«- λ.,* iiwn.r.ii»,! ia Registers 107 wird auf den Ausgang des Registerstapels 80 durch eine Sammelleitung 108 gekoppelt. Eine Speicherschutzanordnung 110 (Fig. 2H) ist mit der Prozessorsammelleitung 57 durch das Bestimmungs-UND-Glied 111 und das Quellen-UND-Glied 112 verbunden.
Ein Programmstatuswortregister(PSW-Register) 115 ist mit seinem Ausgang 116 an die Prozessorsammelleitung 57 angeschlossen über ein UND-Glied 117. Die Eingangssignale zum Register 115 kommen von verschiedenen Systemprüfeingangsleitungen 120. von einem Schlüsselvergleichsregister 121 und von einer Speicherprüfbedingungssammelleitung 136.
Eingangssignal zum Schlüsselvergleichsregister 121 werden vom Speicherschutzregister 110 über die Ausgangssarnmelleitung 125 der 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 (ToLnnnnlf
ITQ vnn t\p
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 Bestimmungsdaten. Daher ist jede als Quelle wirkende Funktionseinheit des Prozessors mit der Prozessorsammelleitung 57 über ein UND-Glied verbunden, und jede Funktionseinheit des Prozessors 1, die Bestimmungseinhcit (Empfangseinheit) sein kann, ist mit der Prozessorsammelleitung über ein anderes UND-Glied verbunden. Die meisten Funktionseinheiten des Systems wirken sowohl als Quelle wie auch als Bestimmung für Daten und sind daher mit der Prozessorsammelleitung 57 durch Quellen-UND-Glieder und durch Bestimmungs-UND-Glieder verbunden.
Die Prozessorsammelleitung 57 ist an ein /.-Register 65 angeschlossen über ein Bestimmungs-UND-Glicd 66 und ein Quellen-UND-Glied 67, an ein Prozessorspeicherdatenregister 70 über ein Bestimmungs-UND-Glied 71 und ein Quellen-UND-Glied 72, an einen Zähler 75 durch ein Bestimmungs-UND-Glied 76 und ein Quellen-UND-Glied 77. an einen Registerstapcl 80 durch ein Bestimmungs-UND-Giied 81 und ein Quellen-UND-Glied 82. an ein Adreßschlüsselregister 85 durch ein Bestimmungs-UND-Glied 86 und ein Quellen-UND Glied 87. an ein Stufenstatusregister 90 durch ein Bestimmungs-UND-Glied 91 und ein Quellen-UND-Glied 92 und an ein Prozessorspeicheradreßregister 95 durch ein Bestimmungs-UN D-Glied 96 und ein Quellen-UND-Glied97.
Die ProzessorsammHViuing 57 ist an die Konsole 6 (F i g. 2A) angeschlossen durch ein Quellen-UND-Glied 100 und eine Schnittstellensammelleitung Ta. Daten wenden von der Prozessorsammelleitung 57 an die Konsole gerichtet über das UND-Glied 66. das Z-Register 65 und die Schnittstellensammelleitung 76. Ein Operationsregister 101 (Fig. 2F) ist an die Prozessorsammelleitung 57 angeschlossen über Quellen-UND-Glied 102. Operationscode werden im OP-Register 101 vom Prozessorspeicherdatenregister 70 über ein UND-Glied 103 gespeichert. Ein Stapeladreßregister 105 (Fig. 2G) ist mit der Prozessorsammelleitung 57 über ein Bestimmungs-UND-Glied 106 verbunden. Ein Adreßregister 107 für den aktiven (laufenden) Befehl isi mit der Prozessorsammeüeitung 57 über ein Quellen-UND-Glied 109 verbunden. Der Eingang des Cycle-StealSchutzkippgliedern 130 (Fig. 2D) kommt. Die Eingan.gssammelleitung 129 von den Kippgliedern 130 ist auch mit dem Register 90 gekoppelt. Den Ausgang dir Schlüsselwahl-Logikschaltung 126 wird auch au? den Hauptspeicher 8 und den Adreßübersetzcr 9 durch die Ausgangssammelleitung 127 gekoppelt, die einen Teil der Schnittstelle 3 zwischen Speicher und Übersetzer bildet.
Die Schnittstelle 3 enthält auch eine Synchronisationssammelleitung 135 (F i g. 2H), eine Prüfbedingungssammelleiiuing 136. eine Adreßsammelleitung 137 und die Eingabe- und Ausgabesammelleitungen 138 und 139. Der Ausgang 140 des Prozessors^cicheradreßregisters 95 ist über das UND-Glied 141 mit der Adreßsammelleitung 137 gekoppelt. Das Cycle-Steal-Speicheradreßregister 142 ist mit seinem Ausgang 143 über das UND-Glied 144 an die Adreßsammelleitung 137 angeschlossen.
Der Eingang eines Null-Detektors 150 (Fig. 2C) ist mit der Prozessorsammelleitung 57 gekoppelt und der Ausgang 151 mit der Steuerschaltung 152 für bedingte Verzweigungen (Fig. 2A). Der Ausgang 151 des Ntill-Detekiors 150 ist außerdem mit dem Eingang einer Ergebnisanzeigeschaltung 153(Fi g. 2G) verbunden. Ein zweites Eingangssignal 154 zur Ergebnisanzeigeschaltung 153 wird abgeleitet von einem Ausgangssignal des Prozessors 51. Die Prozessorsammelleitung 57 bildet auch einen Eingang zur bedingten Verzweigungsschaltung 152.
Der Ausgang 160 des Zählers 75 (Fig. 2F) liefert Eingangssignale zu einem Anhalte-E/A-Decodierer 161 und zu den Cycle-Steal-Speicheradreßregistern 142. Der Ausgang 162 des Decodieren 161 ist mit einer Schnittstellensteuerschaltung 239 (F i g. 2D) verbunden. Die Eingangsdatensammelleitung 138 vom Hauptspeicher ist mit dem Prozessorspeicherdatenregister 70 (Fig. 2E) über ein UND-Glied 165 und mit dem Cycle-Steal-Speicherdatenregister 166 über ein UND-Glied 167 verbunden. Der Ausgang 168 vom Prozessorspeicherdatenregister 70 ist mit der Ausgangsdatensammelleitung 139 zum Hauptspeicher 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 171 (Fig.2F) verbunden. Die Prüfschaltung 171 liefert Paritätsbits auf die Ausgangsdaiensarnrncüeitiing 139. wenn kein Paritätsfehler vorliegt, und sie gibt ein Ausgangssignal auf die
Leitung 173, wenn ein Speicherparitätsfehler erkannt wird.
Ein Maskenregister 175 (Fig 2A) ist mit der Prozessorsammelleitung 57 (Bits 12, 13) über die Eingangs- und Ausgangstore 176 und 177 verbunden. Der Ausgang 178 des Maskenregisters 175 ist auch mit einem Aktivstufenregister 181 über die Treiberschaltungen 180 und ein Sammelleitung 182a verbunden.
Ein V.·. wahlstufenregister 185 ist mit der Prozessorsammelleitung 57 (Bits 14. 15) über den Eingang gekoppelt. Ein Ausgang 185a des Registers 185 ist mit dem Stapel-Adreßregister 105 (Fig. 2G) über eine Torschaltung 1856 verbunden. Der Ausgang 185,? ist außerdem mit dem Aktivstufenregister 181 über die Deuodierschaltung 190 und den Ausgang 191 der Decodierschaltung 190 verbunden. Der Ausgang 192 des Aktivstufenregisters 181 ist mit dem Festspeicher-Adreßregistf-r (ROSAR) 193 (F i g. 2B) einer Mikroprogrammsteuerung 200 des Prozessors 1 verbunden. Der AüÄgdiij; ΐ σι «τ des RcgiSicFä !St iSt iTiii uCnl Stapel-Adreßregister 105 über eine Torschaltung 181 b verbunden, wobei durch den Codierer 181 c eine Reduzierung von vier auf zwei Bits erfolgt.
Die Mikroprogrammsteuerung 200 enthält einen Restspeicher (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-Ausgabedatenrcgisters 202 ist mit einer Quellen-Decodierschaltung 205. einer Bestimmungs-Decodierschaltung 206. einer Speichersteuer-Decodierschaltung 207, einer Rechenwerk-Funktions-Decodie.schaltung 208, weiteren Stcuerdecodicrschaltungen 209 und dem Fcstspeicher-Adreßregister (RO-SAR) 193 verbunden.
Die Adresse für den Festspeicher ROS 201 wird vom ROSAR 193 über die Sammelleitung 212 zu einer Adreßdecodierschaltung 213 gegeben. Die Eingänge eines ersten Verbindungsregisters 210 und eines zweiten Verbindungsregisters 211 sind mit dem ROSAR 193 über die Sammelleitung 212 gekoppelt. Diese Register haben Ausgänge 214, 215. Das Prozessorspeicherdatenregister 70 (F i g. 2E) bildet einen weiteren Eingang zum ROSAR 193 über die Sammelleitung 73. Die bedingte Vcrzweigungsschaltung 152 bildet einen Eingang zum ROSAR 193 über die Sammelleitung 216.
Die Quellen-Decodierschaluing 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 206 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-Funktions-Decodierschaltung 208 enthält Rechenwerk-Funktionssteuerleitungen 233. über die die verschiedenen Funktionen des Rechenwerkes während der Prozessorzyklen gesteuert werden. Die Bestimmungssteuerungen. Quellensteuerungeri und Rechenwerk-Funktionssteuerungen werden nachfolgend noch insoweit genauer beschrieben, als sie mit der Erfindung der vorliegenden Anmeldung zu tun haben.
Die Speichersteuer-Decodierschaltung 207 hat einen Ausgang 235, der mit einer Speichersteuerschaltung 236 verbunden ist. die einen zweiten Eingang 237 aufweist, der mit der Decodierschaltung 209 verbunden ist. und einen drillen Eingang 238 von der Kanaischniusteüensteuerschaltung 239 (Fig. 2D). Die Sammelleitung 238 ist in beiden Richtungen benutzbar (Zweinchlungs-I.ei· Hing) und wird während der Datenübertragungen zwischen den E/A-Geräten 4-1 bis 4-10 und dem Prozessor 1 benutzt. Die Schnittstellensammelleitung 12 und die Synchronisationssammelleitung 135 sind beide mit der Speichersteiierschaltung 236 gekoppelt.
Die Decodierschaltungen 209 haben einen .Statussteuerausgang 240, einen Abtastunterbrechungs-Anforderungsausgang 241 und einen Fehleranzeigeausgang 242. Außerdem ist ein Ausgang 243 von den Decodierschaltungen 209 mit den Taktsteuerschaltungen 245 (F i g. 2C) gekoppelt. Ein Kristalloszillator 246 liefert Signale an einen Frequenzteiler 247, der seinerseits mit dem Eingang der Taktsteuerung 245 gekoppelt ist und die Taktimpulse für den Datenfluß und die Steuerungen des Prozessors 1 liefert. Diese Taktimpulse für den Datenfluß und die Steuerungen des Prozessors werden über die Ausgangsleitungen 248-1 bis 248-n der Takisteuerschaltung 245 geliefert. Die .JJtllllllMII.1U( IWM.l.jailMltt.flt-Kifiig i-r-r r.i» im, vj*-. i«K.
steuerschaltung 243 gekoppelt. Sie ist eine Zweirieh· tungs-Übertragiingüleiuing.
Die Kanalschaltungsanordnung 250 (Fig. 2Λ, 2D) wird anschließend im einzelnen beschrieben. Sie enthält mehrere Treiber- und Empfängerschaltungen 251 bis 256. die mit den verschiedenen Einzelleitungen und Sammelleitungen der E/A-Schnittstelle 2 gekoppelt sind. Der Empfänger 251 ist mit einer Anforderungseingangssammelleitung 261 (Bits 0 bis 3) gekoppelt, der Empfänger 252 mit einer Anforderungseingangssammelleitung 262 (Bit 16). Eine Gruppe von Treiber· und Empfängerschaltungen 253 ist mit der Aufrufleitung 263, der Aufrufrückleitung 264 und der Bündelrückleitung 265 verbunden. Die 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 Serviceschaltsignal, das Serviceschalt-Rücksignal. das Adreßschaltsignal. das Adreßschalt-Rücksignal, das üatentastsignal. das Anhalte- oder Maschinenfehlersignal. das Systemrückstellsignal. das Wort/Byte-Anzeigesignal, das Eingangs/Ausgangsanz;igesignal und die Leitungen für die Bits 0 bis 3 der Cycle-Steal-Zustandssammelleitung handelt. Die Empfänger 256 sind mit der Bedingungscode-Eingangssammelleitung 268 (Bits 0 bis 2) verbunden. Die E/A-Schnittstelle 2 enthält auch eine Datensnmmel leitung 269, eine Adreßsammelleitung 270 (Bits 0 bis 15) und eine Adreßsammelleitung 272 (Bits 16) sowie eine Stromeinschalt-Rückstelleitung271.
Die Datensammelleitung 269 ist mit dem Eingang einer E/A-Schnittstellen-Paritätsprüf- und Paritätsgeneratorschaltung 275 verbunden. Die Schaltung 275 enthält einen ersten Ausgang 276, der Paritätsbits an die E/A-S'chnittstellen-Datensammelleitung 269 liefert, wenn kein Fehler in den von dem E/A-Gerät an den Prozessor 1 übertragenen Daten vorliegt.
Die Schaltung 275 enthält einen zweiten Ausgang 277. der ein Signal liefert, wenn ein Paritätsfehler auf der Datensammeileitung 269 auftritt. Die Datensammelleitung 269 ist mit der Prozessorsammelleitung 57 über ein Quellen-UND-Glied 278 verbunden. Die Datensammelleitung 269 ist mit dem Eingang des Cycle-Steal-Speicherdatenregisters 166 über das UND-Glied 280 und mit dem Ausgang dieses Regis;ers über das UND-Glied 279 sowie mit dem Ausgang 55 des Y-Registers53überdas UND-Glied 281 verbunden.
Die Adreßsammeüeitung 270 ist mit dem Eingang des
Cycle-Steal-SpeicheradijßregiMcrs 142 und mit dem Ausgang des Zählers 75 über eine Torschaltung 273 gekoppelt.
Der Ausgang 1826 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 285 über den Ausgang 18Ia. Eine Anforderungsbestätigungsleitung 286 bildet einen weiteren Eingang zur Aufruffolge-Steuerschaltung 285, die ebenfalls mit der Schnittstcllensteuerschaltung 239 über eine Leitung 289 verbunden ist. Eine Steuerschaltung 288 für die Schnittstellen-f-olgesteuerung und zur Zeitlimitierung (Abschaltung nach vorgegebener Maximalzeit) ist mit der Aufruffolge-Steuerschaltung 285 über eine Leitung 287 verbunden. Die Stromeinschalt-Rückstelleitung 271 bildet einen
Die Leitungen 290-1 bis 290-10 koppeln die Treiberund Empfängerschaltungen 255 mit der Schnittstellensteuerschaltung 239.
Die Prozessorsammelleitung 57 ist 16 Bits breit und dient zur Informationsübertragung zwischen Quellen- und Bestimmungseinheiten im Datenfluß des Prozessers, die durch Mikroprogrammsteuerung ausgewählt sind.
Das Operationsregister (OP-REG) 101 ist 16 Bits lang und enthält das erste Befehlswort einschließlich der Registeradreßargumente für den Registerstapel 80 während der Befehlscodierung. Es wird außerdem als Datenzwischenregister 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 vom Speicherdatenregister 70.
Das Rechenwerk ist 16 Bits 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-Register53.
Das 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-Register 53 ist 16 Bits lang. Es ist der Sekundäreingang für das Rechenwerk 51 für arithmetische und logische Operationen. Mit dem WA-Register 52 zusammen übernimmt es die Verschiebung bei Doppelwort-Schiebeoperationen. Es empfängt seine Eingangsdaten als Bestimmungseinheit von der Prozessorsammelleitung 57. Dieses Register 53 stellt auch die Datenbahn dar für ausgehende Daten an die E/A-Datensammelleitung 269 für die direkten E/A-Operationen unter Programmsteuerung.
Das Prozessorspeicherdatenregister (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 Befehls, der vom Hauptspeicher 8 geholt wird, wird durch dieses Register 70 in das OP-Register 101 übertragen. Während anderer Prozessoroperationen dient das Register 70 auch als Datenzwischenspeicher. Es kann daher seine Eingabedaten als Bestimmungstinheit von der Prozessorsammeiieitung 57 empfangen.
und es gibt Daten als Quelle auf diese Prozessorsammel-Ieitung57 aus.
Das Cycle-Stepl-Speicherdatenregister (CS-SDR) 166 ist 16 Bits lang, und durch dieses Register werden alle Daten vom und zum Hauptspeicher 8 über die E/A-Datensammelleitung 269 und über die Speichereingabe- oder Ausgabesammelleitung 138 bzw. 139 während der Cycle-Sieal-Operationen übertragen.
Die acht wertniederen Bits des 16 Bits langen Zählers 75 werden bei Protokollierung der verschiedenen Prozessoroperationen als Zähler und auch als vorübergehendes Speicherregister für andere Proztssoroperationen benutzt. Es handelt sich daher um eine Quellc- 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-Adreßsammclleitung 270 während der direkten Programmsteueropera tionen geleitet.
Das Prozessorspeicheradreßregister (PROZ.-SAR)
Hauptspeicheradresse festgehalten wird. Der Inhalt des Registers wird über die Torschaltung 141 an die Speicheradreßsammelleitung 137 für Speicherzugriffe während der normalen Verarbeitung und der direkten Programmsteueroperationen übertragen. Außerdem dient dieses Register als vorübergehendes Speicherdatenregister, wenn es nicht für die Adressierung des Hauptspeichers benutzt wird.
Das Cycle-Steal-Speicheradreßregister (CS-SA R) 142 ist 16 Bits lang und hält die über die E/A-Adreßsammelleitung 270 vom E/A-Gerät während der Cycle-Steal-Dateniibertragungsoperationen übertragene Hauptspeicheradresse. Der Registerinhalt wird über die Torschaltung 141 an die Speicheradreßsammelleitung 137 nur für Speicherzugriffe im Cycle-Steal-Verfahren übertragen.
Das 16 Bits lange Z-Register 65 dient hauptsächlich zum Festhalten der Daten für die Bedienungsdatenanzeige (nicht dargestellt) der Konsole 6. Es wird außerdem als vorübergehendes Speicherregister bei anderen Prozessoroperationen benutzt und ist Quellen- und Bestimmungseinheit für die Prozesso.-^.mmelleitung57.
Der Registerstapel 80 in Fig.3 ist eine Anordnung monolithischer, bistabiler Speicherglieder (Kippglieder) zum Festhalten der Registerinhalte des Stufenstatus (SSR), des Adreßschlüssels (ASR) und der Befehlsadresse (BAR) für jede der vier Unterbrechungsstufen. Er enthält außerdem Arbeitsregister, die vom Mikroprogramm benutzt werden, d. h„ TEM P, TEM P1 ... TEM P3, DBUF, SOAI, SOA2, sowie Register zur Rettung (Abspeichsrung) der aktiven Stufe und des Adreßschlüssels, organisiert nach Darstellung in F i g. 3.
Die Register TEMP und TEMPI .. .TEMP3 enthalten vom Mikroprogramm während der normalen Verarbeitung benutzte Kurzzeitdaten. SOAl enthält die manuell eingegebene Adresse, die für die Adreß-Stopoperationen zu benutzen ist. SOA2 enthält den Konsolenspeicherschlüssel in den unteren drei Bits, die übrigen Bits sind Null. Das DBUF-Register ist der Konsolendatenpuffer. Der Inhalt dieses Puffers speist die Datenanzeiger (nicht dargestellt) auf der Konsole 6. Das Register für die aktive Stufe enthält die Kennzeichnung der Stufe, die bei Eintritt des Stopzustandes aktiv war. Das ASR-Register enthält eine Kopie des Adreßschlüs- ^eIs der aktiven Stufe.
Die Daten in den Registern SSR, ASR und BAR des
Stapels 80 für die aktive Stufe werden ebenfalls in zugeorwieten, als separate Schaltungen ausgebildeten Registern 90,85,107 aus Leistungbgründen festgehalten, d. h., um die Anzahl der Stapelzugriffe zu reduzieren. Der Stapel &) des Ausführungsbeispiels besteht aus zwei Gruppen zu je 64x9 Speicherplätzen in Parallelschaltung zur Bildung einer Speichergruppe von 04x18 Speicherplätzen.
Das Stapeladre3register 105 ist ein sechs Bits langes Register zur Adressierung ocs Stapels 80. Die Eingangsdaten zum Register 105 kommen von einer Addierschaltung 320 über ein Stapelverbindungsregister 321 und eine Torschaltung 322, vom Register 185 für die vorgewählte Stufe über die Sammelleitung 185a und die Torschaltung 1856, vom Register 181 für die aktive Stufe über die Sammelleitung 181a und die Torschaltung 1816, vom OP-Register 101 über die Sammelleitung 101a und die Torschaltung 1016 und von der Prozessorsammelleitung 57. Das Stapeladreßregister (05 wird von der Prozessorsammelleitung 57 über
Das separate Stufenstatusregister (SSR) 90 ist ein 16 Bit langes separates Register zum Festhalten des aktiven Stufenstatus. Während der Arbeit auf einer bestimmten Stufe ändert sich der Inhalt des Registers SSR 90 aufgrund arithmetischer und logischer Operationen. Das Aktivstufenregister im Registerstapcl 80 bleibt unverändert, bis ein Stufenwechsel erfolgt. Zu diesem Zeitpunkt wird der Inhalt des SSR-Registers 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-Registers 90 ist folgender:
lauf« werden auch bei E/A-Operationen benutzt, um die an den Prozessor 1 von den E/A-Geräten 4-1 bis 4-n gesendeten Bedingungscodes festzuhalten.
Während der Ausführung eines E/A-Befehls werden folgende Bedingungscodewerte den Anzeigern für »Gerade«, »Übertrag« und »Überlauf« zugeordnet:
Tabelle 2
Bedin Ge Über Über Bedeutung
gungs- rade trag lauf
code
0 0 0 0 Gerät nicht
angeschlossen
1 0 0 1 Belegt
2 0 1 0 Belegt nach
Rückstellung
3 0 1 I Kommando-
zurückweistins;
4 1 0 0 Eingreifen
erforderlich
5 I 0 I Schnittslellendaten-
prüfung
6 1 1 0 Steuerung belegt
7 1 1 1 Zufriedenstellend
Während der Unterbrechungsannahme werden alle Bedingungscodes durch das betreffende Gerät abgegeben. Die Anzeiger für »Gerade«, »Übertrag« und »Überlauf« erhalten dann folgenden Bedingungscodewerte zugeordnet:
Tabelle 1 Bedeutung
to
Tabelle 3 Ge Über Über Bedeutung
Stufenstatusregister Geradeanzeiger Bedin rade trag lauf
Bit Übertragsanzeiger gungs-
code
0 0 0 Steuerung Ende
υ Überlaufanzeiger 0 0 0 1 Programmgesteuerte
1 Anzeiger negatives Ergebnis 4-, 1 Unterbrechung
2 Anzeiger Null-Ergebnis 0 1 0 Ausnahme
3 Überwachungszustand 2 0 1 1 Geräteende
4 In Verarbeitung Zustandssteuerungen 3 1 0 0 Achtung
8 Protokolüerung . 4 1 0 1 Achtung und
9 Summenmaske 5 programmgesteuerte
10 Unterbrechung
11 Die Ergebnisanzeiger werden von den Programmen 1 1 0 Achtung
für die Entscheidungsfindung benutzt. 6 und Ausnahme
1 ] I Achtung und
Die Anzeige für »Gerade«. »Übertrag« und »Über- >) 7 Geräteende
Tabelle 4
Definitionen der Stufenstatusregisterbits
Bit
0 Geradeanzeiger
1 Übertragungsanzeiger
auf Eins gesetzt, wenn das wertniedere Bit des Ergebnisses Null ist, sonst auf Null gesetzt.
auf Eins gesetzt, wenn das Ergebnis von Additionen oder Subtraktionen nicht als Zahl ohne Vorzeichen dargestellt werden kann, sonst auf Nuil gesetzt.
Fortsetzung
Βϊι
2 Oberlaufanzeiger
3 Negativanzeiger
4 Nullanzeiger
8 Überwachungszustand
9 In Verarbeitung
10 Protokoll
11 Summenmaske
auf Eins gesetzt, wenn das Ergebnis einer Rechenoperation nicht a|s Zahl mit Vorzeichen dargestellt werden kann, sonst auf Null gesetzt
auf Eins gesetzt, wenn Bit Null des Ergebnis Eins ist, sonst auf Null gesetzt
auf Eins gesetzt, wenn das Ergebnis aus lauter Nullen besteht, sonn auf Null gesetzt.
auf Eins gesetzt, sobald der Prozessor 1 in den Überwachungszustand eintritt. Der Eintritt in den Überwachungszustand erfolgt, wenn:
ein Überwachungsaufrufbefehl ausgeführt wird,
eine Klassenunterbrechung auftritt,
eine E/A-Unterbrechung angenommen wird.
dieses Bit wird ein- oder ausgeschaltet durch das entsprechende Bit im SSR des Speicherstufenstatusblocks (SSB), sobald der Ladebefehl für den Stufenstatusblock (SSB-LD) ausgeführt wird. Dieser Befehl lädt einen SSB vom Speicher 8 in den SSB der bezeichneten Stufe im Stapel 80.
dieses Bit wird durch das entsprechende Bit im SSR-Register des Speichers SSB gesetzt oder zurückgestellt, sobald der lokale Stufenstatusblock ausgeführt ist. SSB-LD lädt einen SSB vom Speicher 8 in die bezeichnete Stufe SSB im Stapel 80.
wenn die Summenmaske gleich Null ist. werden alle Prioritäisumerbrechnungen auf allen Stufen abgeschaltet. Wenn die Maske gleich Eins ist, werden alle Prioritätsunterbrechungen auf allen Stufen eingeschaltet. Die Summeninaske w ird durch folgende Vorgänge auf Eins gesetzt (eingeschaltet):
Ausführung des Freigabebcfehls mit Bit 15=1.
Systemriickstellung. Rückstellung bei Stromeinschaltung, IPL
Ausführung eines SSB-LD-Befehls. wobei Bit 11 des Spcicher-SSR=I.
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 Überwachungsprogramm (SVC).
Ausführung des Sperrbefehls mit Bit 15=1.
Jede Klassen-Unterbrechung:
Maschinenfchler
Programmfchler
Weiche Ausnahmeverzweigung
Strom the i'inowarnung
Überwachungsaufruf
Protokollieriing
Konsole
Ausführung des SSB-LD-Befehls mit Bit Il des Speicher-SSR = O.
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 Ergebnisse des ausgeführten Operationstyps überprüfen.
Das Programmstatiiswortregister (PSW) 115 ist Ib Bits lang und enthält Fehler- und Aiisnahmeinformation. die zu einem Programmfehler, einem Maschinenfchler. einer weichen Ausnahmeverzweigung oder zum Auftrc ten einer Stromthermowarnung führt. Drei Staluskennzcichen sind ebenfalls im PSW-Register 115 enthalten. Das PSW-Register 115 wird über separate Schaltungen und vom Mikroprogramm abgcfühllc Bedingungen gcset/i.
Tabelle 5 Bit Bedeutung
Prozessorstatuswort 0 Spezifikationsprüfung
t Ungültige Speicheradresse
2 Vorrecht verletzt
3 Schutzfehler
Programmfehler 4 Ungültige Funktion (entweder
Programmfehler oder weiche
Ausnahme)
5 Gleitkomma-Ausnahme
6 Stapelausnahme
7 Reserviert
Weiche Ausnahme 8 Speicherparitätsprüfung
Verzweigung 9 Reserviert
IG Prozessorsieuerprüfung
Maschinenfehler 11 E/A-Prüfung
12 Reihenfolgeanzeiger
13 Auto-IPL
14 Übersetzer eingeschaltet
Statuskennzeichen 15 Strom/Thermowarnung
Strom/Thermo
Das Adreßschlüsselregister (ASR) 85 in Fig.2G ist ein 16 Bit langes separates Register und enthält während der Verarbeitung auf einer Stufe jeweils den Adreßsv.hlüssel der aktiven Stufe. Das ASR-Register 85 liefert den Adreßschlü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 Befehlsadreßbereich wird ebenfalls als Konsoladreßschlüssel für manuelle Speicherzugriffe von der Konsole 6 aus benutzt.
Tabelle 6
Adreßschlüsselregister
Bedeutung
nächste Befehlsadresse fortgeschrieben. Sollte die vollständige Ausführung des laufenden Befehls durch eine Klassenuntyrbrechung gestoppt werden, wird die Klassenumerbrejjhung verarbeitet und dann mit dem Inhalt des LBAR-Regjsters 107 der unterbrochene Befehl wieder adressiert und dann noch einmal ausgeführt.
Die Speicherschutzanordnung 110 (Fig,2H) besteht aus 32 Speichersqhlüsselregistern (nicht dargestellt). Die
ίο Anordnung wird eingeschaltet, wenn der Speicherschutz eingebaut und freigegeben isu Jedes Register enthält den Schutzschlüssel und ein Nur-Lesebit, um einen 2048 Byiie großen Block des Speichers 8 anzusteuern. Der Speicherschlüssel-Eingabebefehl setzt
π den Schlüssel und das Nur-Lesebit in ein bestimmtes SpeicherschlüsselSregister. Der Speicherschlüssel-Kopierbefehl liest ein bestimmtes Speicherschlüsselregister aus.
Das Aktiv-Stufenregister 185 (Fig.2A) bestellt aus
2(i einem zwei Bit großen Register, in dem der Anzeiger für die aktive, gegenwärtige wirksame 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
j) bei der Entscheidung über eine Unterbrtchungsannahme benutzt. Für den letzteren Zweck wird ein Zwei-in-Vier-Bit-Stufendecodierer 190 verwendet. Das Register 185 ist eine Quellen- und Bestimmungseinheit für die Prozessorüammelleitung 57.
«i Das Maskenregister 175 (Fig.2A) ist ein vier Bit langes Register und dient dazu, die Prioritäisunterbrechungen auf den vier Unterbrechungsstufen wie folgt freizugeben oder zu sperren:
0 Operandenbereiche Gleichsetzung
5 Operand I Schlüsselbit 0
6 Operand I Schlüsselet 1
7 Operand I Schlüssclbil 2
9 Operand 2 Schlüsselbit 0
10 Operand 2 Schlüsselbit I
11 Operand 2 Schlüsselbit 2
13 Befehlsbcreichschlüsselbit 0
14 Befehlsbereichschlüsselbit 1
15 Befehlsbereichschlüsselbit 2
Das Adrettregister für den laufenden (akuten) Befehl (I.BAR) 107 (Fig. 2G) enthält die Adresse des ausgeführten Befehls. Das I.BAR-Register 107 wird am Anfang eines jeden Befehls geladen, und wahrend der Ausführung wird das StufenBAR im Stapel 80 auf die
Tabelle i 0=0 r 0 Unterbrechungen gesperrt
Bit 1=0 Stufe 1 Unterbrechungen gesperrt
Bit 2=0 Stufe 2 Unterbrechungen gesperrt
Bit 3 = 0 Stufe 3 Unterbrechungen gesperrt
Bit 0=1 Stufe 0 Unterbrechungen freigeben
Bit 1 = 1 Stufe I Unterbrechungen freigeben
Bit 2=1 Stufe 2 Unterbrechungen freigeben
Bit 3 = 1 Stufe 3 Unterbrechungen freigeben
Bit Stufe
Die Bits im Maskenregister 175 werden durch den Maskeniadebefehl gesetzt. Das Register ist eine Quellen- und Bestimmungseinheit für die Prozessorsammelleitung 57.
Die Maskenregisterausgange 178 sind ebenfalls mit den Maskentreibern 180 verbunden, so daß die vier Bits des Maskenregistevs 175 mit den entsprechenden Prioritätsunterbrechungsanforderungsbits von den E/A-Schniltstellenempfängern 251 und der Sammelleitung 261 UND-verknüpft werden können, um die Unterbrechungsannahme festzulegen.
Ein Kristalloszillator 246 erzeugt eine Taktgrundfrequenz für den Prozessor 1. Ein Frequenzteiler 247 erzeugt die freilaufenden T3ktimpulse A, B, C und D nach Darstellung in Fig,8, Der obere Pegel bezeichne; die logische Eins. Die Impulse dauern 55 Nanosckunden und erscheinen alle 220 Nanosckunden.
Die Taktsteuerungen 245 steuern das Stoppen und Starten der Taktimpulse, verteilen die Taktimpulse auf den Dalenfluß und die Steuereinrichtungen und erzeugen bestimmte Spezialtaktimpulse für die Haupt-
spejchertaktierung. Die geschalteten Taktimpulse haben dieselbe Form wie die oben beschriebenen Impulse A, B, C und A können jedoch durch Bedingungen gestoppt und gestartet werden, die im Mikroprogramm entstehen.
Die Saromelleitungs-NuII-Petektorschalmng 150 besteht aus einer Gruppe von logischen Elementen, die feststellen können, ob der Wen auf der Prozessorsammelleitung Null ist Ihr Ausgangssignal wird vom Mikroprogramm bei der Entseheidungsfindung verwendet
Die Faritätsprüf- und Paritätsgeneratorschaltung 171 prüft alle vom Hauptspeicher 8 durch den Prozessor empfangenen Bytes auf ungerade Parität und erzeugt die Parität für alle Bytes, die vom Prozessor 1 an den Hauptspeicher 8 gesendet werden. Das Erkennen eines Pariiätsfehlers bei einkommenden Daten setzt das Speicherparitätsbit 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ühr^ dazu, daß dem aktiven E/A-Gerät eine FehlerbedinguBg signalisiert wird.
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 F./A-Schnittstellendatensammelleitung 2 übertragenen Bytes Wenn auf hereinkommenden Daten ein Paritätsfehler erkannt wird, wird die Fehlerbedingung dem aktiven E/A-Gerät signalisiert.
Der Anhalt-E/A-Decodierer 161 decodiert den Anhalt-E/A-BefehL der durch den Kanal 250 und nicht durch ein E/A-Gerät ausgeführt wird. Dadurch werden alle E/A-Geräte 4-1 bis Λ-η rüt r.gestellt, die an das System angeschlossen, sind.
Mit der Schlüsselwahllogik 126 ·, ird einer der drei ASR-Schlüssel im Register 85 oder der Cyde-Steal-Schlüssel über die Sammelleitung 129 für den Hauptspeicherzugriff gewählt Während der Cycle-Steal-Operationen wird der E/A-Cycle-Steal-Schlüssel an den Prozessor 1 auf der Bedingungscodegangssammelleitung 268 der E/A-Schnittstelle 2 übertragen. Die Ausgangsdaten 127 dieser Schaltung 126 werden an den Übersetzer 9 und an die Schlüsselvergleichsschaltung 121 gesendet
In der Schlüsselvergleichsschaltung 121 wird der gewählte Schlüssel mit dem Speicherschutzschlüssel von der Speicherschutzanordnung 110 verglichen. Bei einer Verletzung wird das Speicherschutzfehlerbit im PSW gesetzt und es tritt eine Unterbrechung ein.
Die Aufruffolgesteuerung 285 erzeugt das Aufrufsignal auf der Leitung 263 und das Aufrufkennzeichen auf der Sammelleitung 266 und liefert Signale an die Schnittsteliensteuerschaltung 239 für die Scrvice-Durchschaltoperation und an die Steuerschaltung 288 (Schnittstellen-Folgesteuerung und Zcitlimitierung) für die Fehlerprüfung. Mit dieser Anordnung soll ein Wettbewerb zwischen mehreren Geräten aufgelöst werden, die eine Verbindung zur gleichen Quelleneinheit im Prozessor anfordern.
Die Schnittsteliensteuerschaltung 239 erzeugt die Adresse und die Service-Durchschaltsignale für die Schnittstelle und sorgt für die Auflösung von Konfliktsituationen, registriert Cycle-Steal-Speicherzugriffsfehler zur Präsentation an das Gerät, besorgt die Signalisierung von und zu den Speichersteuerungen, korrigiert die Signale auf den Schnittstellen-sammelleitungen und steuert den Beding'.'i.^scodr· i;i t!?r, K.ippg!iedern 130
Die Steuerschaltung 288 für Schnittstellen-Folgesteuerung und Zeitlimitierung besorgt die {vtaximalzeitsteuerung 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 U
Die E/A-Schnittstelle 2 verbindet den Prozessor 250 mit den Gsräteanschlüssen 5-1 bis 5-n. Sie besteht aus den nachfolgend beschriebenen Elementen.
Die E/A-Datensammelleitung 269 ist eine Zweirichtungs-Sammelleitung mit 16 Daten und zwei Paritätsleitungen. Sie dient der Datenübertragung von und zu den E/A-Geräten 4-1 bis 4-n während der direkten Programmsteueroperaticaen und der Cycle-Steal-Operationen, und sie dient der Übertragung der Einheitenadresse und des Unterbrechungsstatusbyte an den Prozessor 1 während der Unterbrechungsannahme.
Die E/A-Adreßsammelleitung 270 ist eine Zweirichtungs-Sammelleitung 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-/7 während der direkten programmgesteuerten Operationen. Sie dient der Übertragung von Hauptspeicheradressen vom aktiven E/A-Gerät an den Prozessor 1 während der Cycle-Steal-Operation.
Die E/A-Schnittstellensteuersignale auf den Leitungen 267-1 bis 267-10 yjnd eine Gruppe von Signalen, mit denen Bedingungscodes an den Prozessor 1 geleitet der jeweiligen Zustand an die E/A-Geräte 4-1 bis 4-/7 gegeben, E/A-Operationen gewählt und gesteuert werden, mit denen Unterbrechungs- und Cycle-Steal-Anforderungen an den Prozessor I übertragen, Reihenfolgen für Unterbrechungs- und Cycle-Steal-Operationen gesteuert werden, mit denen Rückstellungen gesteuert werden, und die die richtige Reihenfolge der direkten Programmsteueroperationen und der Cycle-Steal-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 Anschluß \wie beispielsweise der Anschluß 5-1) kann mehr als ein E/A-Gerät (z. B. das Gerät 4-1) säuern.
Die Speicher/Übersetzer-Schnittstelle 3 enthält eine Hauptspeichersammelleitung. Die besteht aus der Adreßsammelleitung 137 für die Adressierung des Hauptspeichers 8 und für die Übertragung logischer und physischer Speicheradressen zwischen dem Prozessor 1 und dem Verschiebungsübersetzer (Adreßübersetzer) 9 sowie aus den Sammelleitungen 138 und 139 zur Datenübertragung zwischen dem Hauptspeicher 8 und dem Prozessor 1 und zwischen dem Adreßübersetzer 9 und dem Prozessor 1.
Die Schnittstelle 3 enthält außerdem die Steuersignalleitungen 127, 135 und 136 zwischen Prozessor und Übersetzer für die Übertragung aktiver Adreßschlüssel, der Prüfungsbedingungen und der Synchronisationssignale zwischen dem Prozessor und dem Adreßübersetzer 9.
Die Innenspeicher-Steuersignalleitung 12 übernimmt die physische Wahl des inneren Speicherbereiches 14, d'e Teilgruppenwahl im gewählten Bereich und die richtige Reihenfolgeschaltung der Lese/Schreibsteuersignale zur Adressierung des Bereiches zwischen 0 und 64 Kilobyte des inneren Hauptspeicherbereiches 14.
Die Bedicnungskonsole 6 bietet dem Bediener und dem Programmierer umfassenden Zugriff zu den Dnter.flußebmenten im Prozessor I und zum Haupt-
speicher 8, Sie ist an den Prozessor I ober eine Mikroprogramm-gesteuerte Schnittstelle angeschaltet, die in den Datenfluß des Prozessors 1 integriert ist.
Mikroprogrammsteuerung
(F ig, 6 bis 9)
Die Fig,6 und 7 zeigen den Datenfluß und das Format des Prozessors 1 und der Festspeicher-Steuerungen, Fig.8 zeigt dje Zyklustaktierung und Fig.9 einen Plan des Festspeichers ROS 201, Die Mikropro- in grammsteuerung arbeitet nach dem Prinzip, daß jeder Maschinenbefehl nur soviele Mikrozyklen wie nötig benutzt Während eines jeden Mikrozyklus kann eine »Quelleneinheit« zur Zweirichtungs-Prozessorsammelleitung 57 durchgeschaJtet werden, und eine oder ü mehrere »Bestimmungseinheiten« können aus dieser Sammelleitung 57 geladen werden. Im Ausführungsbeispiel wird angenommen, daß der Prozessor 1 einen 32 Bit breiten Festspeicher ROS 201 benutzt. 22 Bits werden zum Steuern des Datenflusses des Prozessors 1 über die Sammelleitung 2046 benutzt Das Feld »nächste Adresse« (NA) (Bits 22 bis 31) eines jeden ROS-Wortes liefert Ober die Sammelleitung 204a die zehn wertnieceren Bits an das Festspeicher-Adreßregister ROSAR 193 (Fig.6). Das eine werthohe Bit des ROSAR Σ93 wird 2-, (durch Schaltungselemente oder durch Mikroprogramm) Ober ein Kippglied »ROSAR Bit 0 setzen« 302 und ein UND-Glied 303 geliefert Die Sammelleitungen 204a und 2046 bilden zusammen die in F i g. 2B gezeigte Sammelleitung 204. s»
Einleitung der Befehlsausführung
Im ROS gibt es nach Darstellung in Fig. 2B fünf Eintrittsstellen für Zwangsadressen. Für jede gibt es eine oder mehrere schaltungsabhängige Eintrittsbedin- s-> gungen (im Gegensatz zu Befehlen).
Wenn keine schaltungsbedingte Zwangseingabe erfolgt erzwingen die ersten fünf Bits des Befehls eine ROS-Eingabe nach Darstellung im oberen rechten Teil der Fig.9. Bei befehlsbedingten Eingaben wird das Kippglied »ROSAR Bit 0 setzen« 302 in F i g. 6 gesetzt. Von diesem Funkt an bis zum Ende des Befehls gibt das Kippglied 302 zusammen entweder mit dem zehn Bit langen Feld »nächste Adresse« (NA) vom ROS-Datenregister (ROS DR) 202 oder mit dem Inhalt eines der zehn Bit langen Verbindungsregister 210 oder 211 das nächste auszuführende ROS-Wort an
Beendigung einer Befehlsausführung
Gewählte »nächste Adressen« in Hexadezimaldar- >o stellung werden durch die Decodierschaltung decodiert, um einen letzten Mikrozyklus zur Beendigung des ausgeführten Befehls zu wählen, die Kippglieder SRI und SR2 305 und 306 zurückzustellen und einen neuen Befehl über eine Anfangseingabe einzuleiten. Ein r> rückstellendes Laden oder eine Klassenunterbrechung beendet ebenfalls die Befehlsausführung, stellt die Kippglieder SRI und SR2 305 und 306 zurück und erzwingt eine Verzweigung zum Start des Mikroprogramms. bO
ROS-Verbindungsregister und Taktierung
Jeder Impuls des Zeitsignals Ctaktet das ROS-Adreßregister (ROSAR) 193. Jeder Impuls des Zeitsignals A taktet das ROS-Datenregister (ROS DR) 202. Jeder ev> Zeitimpuls A leitet die ROSAR-Bits 1 bis 8 in das ROS-Verbindungsregister 1 (210), Bit 1 bis 8, während die ROSAR-Bits 9 und 10 durch eine Inkrementierschaltung 307 in die Bits 9 und 10 des ROS-Verbindungsregisters 1 gelangen, wenn nicht das Unterroutinen-Kippglied 305 (SRI) gesetzt ist. Dadurch wird das Verbindungsregister 2tO auf den Wert des ROSAR +! gesetzt, außer wenn die letzten zwei Bits des ROSAR 193 beide gesetzt sind. Dann wird das Verbindungsregister 210 auf den Wert des ROSAR-3 gesetzt Das ist die Rückkehradresse von der Unterroutine der ersten Stufe zurück in das Hauptprogramm. Außer wenn das Kippglied SR2 (306) eingeschaltet ist, leitet jeder Zeitimpuls A genau denselben Wert in das Verbindungsregister 2 (211), wie es oben für das Verbindungsregister 1 (210) beschrieben wurde. Das ist die Rückkehradresse für die zweite Stufe. Das Kippglied SRI (305) und das Kippglied SR2 (306), die den Zustand des Verbindungsregisters 1 (210) bzw. Verbindungsregisters 2 (211) einfrieren, werden durch das Zeitsignal Cgetaktet.
Unterroutinenaufruf der ersten Stufe
Ein Unterroutinenaufruf besteht aus einer Verzweigung zu einem bestimmten Bereich (Gruppe von ROS-Adressen). Wenn eine Verzwe^sing vom unteren Hauptprogrammbereich zum Unterrou'inenbereieh 1 erfolgt (F i g. 9), steht am Ende des Zeitimpulses A die Unterroutinenrückkehradresse im Verbindungsreeister 1 (210). Während des Zeitimpulses C wird das SRI-Kifpglied 305 gesetzt und so der Wert im Verbindungsregister 1 (210) eingefroren. Die Unterroutine der ersten Stufe kann alle ROS-Adressen benutzen mit Ausnahme derjenigen im Unterroutinebereich 2. Wenn eine Verzweigung vom hohen Bereich des Hauptprogramms zum Bereich oberhalb des ROS 201 erfolgt, d.h. 11 χ χ χ χ χ χ χ χ χ, wird das UND-Glied 303 zwischen dem Setzkippglied 30 und der ROSAR-Bitstelle 0 getaktet, was in einer Verzweigung nach 01 χ χ χ χ χ χχχχ resultiert. Das bedeutet denselben Unterroutinenaufruf wie vom unteren Hauptprogrammbereich.
Unterroutinenrückkehr der ersten S»ufe
Die Unterroutine der ersten Stufe kehrt zum Hauptprogramm zurück durch eine »nächste Adresse« (NA/ mit dem Hexadezimalwert 03 F, der durch die Schaltung 209 decodiert wird. Beim Zeitimpuls C wird das Kippglied SRI (305) zurückgestellt und das ROSAR 193 vom Verbindungsregister 1 (210) geJaden, so daß das Hauptprogramm an der früher eingefrorenen Unterroutinenrückkehradresse wieder aufgenommen wird. Wenn die rufende Stelle im hohen Hauptprogrammbereich lag, erfolgt die Rückkehr zurück zum hohen Hauptprogrammbereich, da das Kippglied 302 noch eingeschaltet ist und das ROSAR-Bit 1 auf Null gesetzt ist. Die letzte Mikrozyklusdecodierung erzwingt auch die Unterroutinenrückkehr.
Unterroutinenaufruf der zweiten Stufe
Wenn zum Untorroutinenbereich zwei verzweigt wird, wird die Unterroutinenrückkehradresse im Verbindungsregister 2 (211) über das Kippglied SR2 (306) genauso eingefroren, wie es oben für den Aufruf der ersten Stufe beschrieben wurde. Die Unterroutine der zweiten Stufe kann jede ROS- Adresse benutzen.
Unterroutinenrückkehr der zweiter Stufe
Die Unterroutine der zweiten Stufe kehrt zur Unterroutins der ersten Stufe zurück durch eine »nächste Adresse« mit dem NA-Hexadezimalwei t 03 E. Zur Zeit Cwird das KioDelied SR2 (3061 zurückgestellt
und das ROSAR 193 vom Verbindungsregister 2 (211) geladen und nimmt so die Unterroutine der ersten Stufe an der vorher eingefrorenen Unterroutinenrückkehradrcsse wieder auf. Die letzte Mikrozyklusdecodieriing erzwingt auch eine Unterroutinenrückkehr.
Eine Unterroutine der zweiten Stufe kann direkt zum Hauptprogramm zurückkehren über eine »nächste Adresse« 03 F. Zur Zeit C wird ROSAR geladen vom Verbindungsregister I (210) und nimmt so das Hauptprogramm an der vorher eingefrorenen Unterrortinenrückkehradresse wieder auf. Zur selben Zeit C werden die beiden Kippglieder 305 und 306 für SRI bzw. SR2 zurückgestellt, so daß ein neuer Unterroiitinenaufruf nach nur einem Wort des Hauptprogramms erfolgen kann.
Tabelle 8
ROSAR 193 (NA = »nächste Adresse«)
ΝΛ deladen von SKI ilj aus KiDDglie dSR2 r Jt* /uniek an von Stufe
03F Register I ein ein Hauptprogramm 1. Stufe
03 F Register 1 ein ein Hauptprogramm 2. Stufe
03Ε Register 2 ein ein 1. Stufe 2 Stufe
03Ε Register 2 aus stellt beide Kippglieder SRI Hauptprogramm 1.
03 F stellt nur das und SR2 zurück.
03F. zurück
Unterroiitine der ersten Stufe im Unterroutinenbereich 2
Wenn eine Verzweigung direkt von einem Hauptprogramm zum Unterroutinenbereich 2 vorgenommen wird(NA-Bits 1,2 = I. I). wird das Kippglied SR2(306) gesetzt und das Verbindungsregister 2 (211) eingefroren, genau wie für einen Aufruf der zweiten Stufe. Der Ausgang zurück zum Hauptprogramm ist die »nächste Adresse« 03 E, genau wie für einen Ausgang der zweiten Stufe. Dadurch kann eine Unterroutine im Bereich 2 entweder als Unterroiitine der ersten Stufe oder als Routine der zweiten Stufe benutzt werden. Die Rückwege sind nachfolgend zusammengefaßt.
IU
Bereich 1
Bereich 2
Bereich 2
Bereich 2
Steuerschaltung 152 für bedingte ROS-Verzweigung
Der Prozessor hat bedingte ROS-Verzweigungen mit 4. 8 und 16 Wegen. Wenn eine bedingte Verzweigung vorgegeben und die Bedingung erfüllt ist. wird das entsprechende NA-Bit zwangsweise gesetzt. Wenn eines der NA-Bits bereits gesetzt ist. handelt es sich um einen Neutralitätszustand, so daß alle Vier-Weg-Verzweigungen in Zwei-Weg-Verzweigungen unterteilt werden können, 16-Weg-Verzweigungen können 12-Weg-Verzweigungen werden usw.
Die NA-Bits. die an den bedingten ROS-Verzweigungen teilnehmen, sind die Bits 5 bis 8. Da für die Rückkehr die NA-Bits 9 und 10 benutzt werden, können diese bei bedingten ROS-Verzweigungen für bedingte Unterroulinenrückkehr benutzt werden.
Wenn z. B. die Stelle 0001 10000 11 einen Unterroutinenaufruf der ersten Stufe abgab und die Unterroutine eine bedingte Vier-Weg-ROS-Verzweigungsrückkehr ausführte, sind die vier Rückkehradressen folgende:
0001 iOOOO 11
0001 10100 II
0001 11000 Π
0001 11100 H
ROS- Bn - Decodiersignale
(Anweisungen)
Die durch Decodierung gewonnenen Steuersignale (Anweisungen) steuern verschiedene Operationen im Prozessor I. Die bedingten ROS- Verzweigungen gestatten dem Mikroprogramm die Verzweigung zu verschiedenen Plätzen abhängig von den Maschinenbedingungen. Das Quellenfeld gibt an. welche Quelle auf die Prozessorsammelleitung 57 durchzuschalten ist. Das Bestimmungsfeld gibt einen oder mehrere Bestimmungsorte an. die von der Prozessorsammelleitung 57 zu laden sind. Das Feld »nächste Adresse« gibt das als nächstes auszuführende ROS-Wort an.
Emitterfeld
Es gibt vier Decodier-Steuersignale (Anweisungen). die nicht nur die Bestimmungseinheit angeben, sondern auch die Abgabe der ROS-Bits 0 bis 15 an die Prozessorsammelleitung 57 bewirken. Es gibt 12 Decodier-Steuersignale (Anweisungen), die die Abgabe der ROS-Bits 8 bis 15 an die Prozessorsammelleitung 57 bewirken. Dadurch kann das Feld »Steuerung bed" igte Verzweigung« in demselben ROS-Wort als 8-Bit-Emitter benutzt werden. Hauptspeichersteuersignale (Anweisungen) ROS-Bits 13bis I5(Nicht-Emitter):
Wert
1 SR
BR
Funktion
kein Speicherzyklus.
die nächsten Anweisungen LW (oder SW) ändern in »Laden (oder Abspeichern) Segmentregister«, wenn Übersetzer eingebaut ist. Wenn Übersetzer nicht eingebaut ist. Programmfehieranzeige »ungültige Funktion« setzen.
die nächsten Anweisungen LW oder SW sperren. Der nächste Befehl LIW, LUW, LW oder SW kann im zweiten Mikrozyklus nach dem gesperrten LW oder SW auseeführt werden.
Forlsct/unu
Weil
l'iinktiiin
SBY clic niichsten Anweisungen LW oder SW in eine Byteanforderung anstelle einer Worlanforderung ändern.
Den nächsten Taktergebnisanzeiger in einen Taktbyteergebnisanzeiger ändern und Veränderung von Byte 0 in demselben Wort sperren.
UW Befehlswort in SDR mit ISS (Befehlsabrufschlüssel) laden.
I.UW unbedingtes Wo-I in SDR mit OPS (Operandenzugriff-Schlüssel) laden.
I.W Datenwort (zwei Bytes) in SDR laden.
SW Datenwort vom SDR in Speicher abspeichern.
Arbeitsweise
Die normalen Speicheranforderungen sind LIW, LW und Sw. Äiie anderen modifizieren diese. Die vier modifizierenden Speichersteueranweisungen werden zum Verändern gemeinsamer Unterroutinen benutzt. Die Anweisungen SR. BR und SBY werden vor einer gemeinsamen Unterroutine ausgeführt, die L.W oder SW enthält, die sie zu modifizieren haben. Diese drei haben keinen Einfluß auf LIW. Die BTR-Anweisung wird unmittelbar nach LIW, LW oder SW im letzten Wort einer gemeinsamen Unterroutine ausgeführt.
Die SBY-Anweisung verändert nicht nur die beiden Speichersteueranweisungen LW und SW, sondern auch die Taktierung der Ergebnisanzeiger zum Betreiben von nur aclii Bits anstellt von 16 Bits.
Priorität der modifizierenden Anweisungen
hat die oberste Priorität und stellt SR und SBY zurück
SR hat die zweite Priorität und stellt SBY zurück
SBY hat die niedrigste Priorität
Die Fig. 10 bis 14 zeigen verschiedene Zyklustaktie- ·"> rungen im Prozessor, der als Ausführungsbeispiel der Erfindung gewählt wurde.
Fig. 10 zeigt die fünf Mikroinstruktionen. die ausgeführt werden zur Durchführung eines direkten Additionsbefehls auf Maschinenebene, und Fig. II < > zeigt die Taktierung von Quelle. Bestimmung und Speicherzugriff während der Ausführung der fünf Mikroinstruktionen.
Fig. 12 zeigt die Zyklustaktierungen der Hauptspeichersteuerungen. ■><>
Fig. 13 und 14 zeigen die Zyklustaktierungen des Mikroinstruktionstyps. der als letzte Mikroinstruktion einer jeden Routine zur Ausführung der Maschinenstufenbefehle ausgeführt wird. Abhängig von der Erkennung (oder Nichterkennung) einer Ausnahme-Bedin- >> gung wird entweder die Taktierung der Fig. 13 oder die der Fig. 14 wirksam.
Unterbrechungen
Der wirksame Betrieb eines Zentralprozessors hängt w> von der prompten Antwort auf Bedienungsanforderungen von E/A-Geräten ab. Diese prompte Reaktion erfolgt nach einem Unterbrechungsschema, das die laufende Prozessoroperation stoppt, zu einer Peripheriegeräte-Bedienungsroutine verzweigt, die Gerätebe- t>5 dienung abwickelt und dann zur Fortsetzung der unterbrochenen Operation zurückkehrt. Ein Prozessor 1 kann viele E/A-Geräte 4-1 bis 4-17 steuern und daher wird eine Unterbrechungspriorität festgelegt, um die wichtigeren Operationen vor den unwichtigeren abzuwickeln. Bestimmte Fehler- oder Ausnahmebedingungen (z. B. rviaschinenfehier) lösen ebenfalls Uriiciuiechungen aus. Diese werden Klassenunterbrechungen genannt und ähnlich gehandhabt wie die E/A-Unterbrechungen.
Die Unterbrechungspriorität wird festgelegt durch vier Prioritätsunierbrechungsstufen, die in der Prioritätsreihenfolge 0. 1, 2, 3 aufgelistet sind, wobei die Stufe 0 die höchste Priorität hat. Unterbrechungsstufen werden den E/A-Geräten 4-1 bis 4-n über Programmsteuerung zugeordnet. Dadurch erhält man die nötige Beweglichkeit, um die Geräteprioritäten bei wechselnden Anwendungen neu zuzuordnen.
|ede der vier Prioritätsstufen hat nach Darstellung in Fig.4 ihren eigenen Registersatz oder Stufenstatusblock (SSB Stufe 0 bis SSB Stufe 3). Diese bestehen aus dem Adreßschlüsselregister (ASR), einem Stufenstatusregister (SSR), acht allgemeinen Registern (RO bis R7) und einem Befehlsadressenregister (BAR). Information über eine Stufe wird automatisch in diesen separaten Stapelregistern gerettet, wenn eine Unterbrechung auftritt.
t/A- und Klassenunterbrechungen enthalten eine automatische Verzweigung zu einer Bedienungsroutine. Feste Stellen im Hauptspeicher 8 sind für Verzweigungsadressen oder Zeiger reserviert, die während der Unterbrechungsverarbeitung angezogen werden. Die Verarbeitung einer Unterbrechung durch separate Schaltungseinrichtungen enthält die automatische Verzweigung zu einer Bedienungsroutine. Der Prozessor 1 benutzt einen reservierten Speicherbereich im Hauptspeicher 8 für die Verzweigungsinformation. Der reservierte Bereich beginnt an der Hauptspeicheradresse 0030. Die Gesamtgröße des Bereiches hängt ab von der Anzahl der angeschlossenen unterbrechenden Geräte 4-1 bis 4-n. Ein Wort (zwei Bytes) ist für jedes unterbrechende Gerät reserviert.
Die für eine Klassenunterbrechung benutzten Speicherstellen enthalten jeweils einen Stufenstatusblockzeiger (SSB-Zeiger). der auf die erste Adresse eines Bereiches im Hauptspeicher 8 zeigt, wo ein Stufenstatusblock gespeichert ist, und eine Startinstruktionsadresse (SIA), die auf die erste Instruktion der Bedienungsroutine zeigt.
Jedes für eine E/A-Unterbrechung benutzte Speicherwort enthält einen Gerätedatenblockzeiger (GDB). der die Adresse des ersten Wortes eines Gerätedatenblocks ist. Dieses Wort wird benutzt, um die Startinstruktionsadresse für die Bedienungsroutine zu bekommen.
Möglichkeiten zur Unterbrechungsmaskierung bilden
eine weitere Programmsteuerung der vier Prioritäisstufen. System- und Stufenmaskierung werden durch eine Summenmaske und das Unterbrechungsstufenmaskenregister 175 gesteuert. Die Gerätemaskierung wird gesteuert durch eine Gerätemaske in der durch den E/A-Vorbereitungsbefehl übertragenen Information. Die Manipulation der Maskenbits kann Unterbrechungen auf allen Stufen, einer bestimmten Stufe oder für ein bestimmtes G°rät freigeben oder sperren.
Es existieren, wie schon gesagt, vier Prioritätsunterbrechungsstufen. Jedem E/A-Gerät 4-1 bis 4-/? wird eine Stufe rbhängig von der Anwendung dynamisch zugeordnet. Wenn eine Unterbrechung auf einer gegebenen Stufe akzeptiert wird, bleibt diese Stufe aktiv, bis eine Stufenausgangsinstruktion (LEX) atisge- π führt oder eine Unterbrechung mit höherer Priorität akzeptiert wird. In letzterem Fall schaltet der Prozessor I auf die höhere Stufe um, erledigt die Ausführung (einschließlich einer LEX-Instruktion) und kehrt dann zu der Stufe zurück, auf der die Unterbrechung erfolgte. _>u Diese automatische Ruckkehr kann durch andere Unterbrechungen mit noch höherer Priorität verzögert werden.
Eine auf der gegenwärtig aktiven Stufe wartende Unterbrechungsanforderung wird erst nach Ausführung >·-, einer LEX-Instruktion durch das laufende Programm akzeptiert. Wenn keine andere Unterbrechungsstufe wartet bei Ausführung einer Stufenausgangsinstruktion, geht der Prozessor 1 in den Wartezustand, in dem keine Verarbeitung stattfindet, der Prozessor jedoch Unter- i<> brechungen annehmen kann, die erwartet werden.
Der Uberwachungszustand wird angefangen bei jedem Empfang einer Prioritätsunterbrechung. Der Prioritätsunterbrechungsalgorithmus ist folgender:
i">
1. Die Summenmaske muß freigegeben sein.
2. Das Maskenbit (Unterbrechungsstufenmaskenregister 175) für die unterbrechende Stufe muß eingeschaltet sein.
3. Für E/A-Unterbrechungen muß das Gerät sein w Gerätemaskenbit eingeschaltet haben.
4. Die Unterbrechungsanforderung muß die höchste Priorität der ausstehenden Anforderungen und eine höhere Priorität als üie aktive Stufe des Prozessors haben. 4-,
5. Der Prozessor darf nicht gestoppt sein.
Klassenunterbrechungen ändern die Prioritätsstufen nicht und werden auf der gegenwärtig aktiven Stufe verarbeitet. Wenn sich der Prozessor beim Auftreten v> einer Klassenunterbrechung im Wartezustand befindet, wird zur Verarbeitung der Unterbrechung die Prioritätsstufe 0 benutzt.
Programmgesteuerte Stufenumschaltung
F i g. 3 zeigt ein Gesamtsystem als Ausführungsbeispiel für die Erfindung. Der Hauptspeicher 8 enthält Bereiche, in denen Stufenstatusblöcke (SSB) für jede Aufgabe, die Programme und ein Aufgabenverteilungsprogramm gespeichert werden. ω
Unter der Steuerung des Aufgabenverteilers werden die Befehle »Steuerstatusblock laden« (SSB-LD) und »Steuerstatusblock abspeichern« (SSB-SP) vom Prozessor ausgeführt, um Steuerstatusblöcke SSB vom Hauptspeicher 8 in die Stufenregister im Stapel 80 zu b5 laden oder vom Stapel 80 in den Hauptspeicher 8 zurückzukopieren, während die verschiedenen Aufgaben für die Ausführung vorbereitet werden.
Während der Ausführung eines SSB-LD-Befehls, durch den eine neue Aufgabe gestartet oder fortgesetzt wird, wird der Registerinhalt von ASR und BAR im Stapel 80, der zu der neuen Aufgabe gehört, auch in die separaten Register 85,90 und 95 eingegeben.
Wenn eine laufende Aufgabe ausgesetzt v/ird, wird der gegebenenfalls geänderte Inhalt der Register 85 und 90 in die Register ASR und SSR für die aktive Stufe im Stapel 80 zurückgespeichert. Das Befehlsadreßregister des jeweils benutzten Stapels wird wiihirend der Ausführung eines Befehls laufend fortgeschrieben.
Eine Stufenumschaltung unter Programmsteuerung kann erfolgen mit dem Stufenstatusblock-Ladebefehl (SSB-LD), in vielen Fällen erfordert SSB-LD jedoch einen vorhergehenden Stufenstatusblock-Speicherbefehl (SSB-SP):
SSB-LD
ccd cn
Wort 1 OP Rx Rb
Wort 2 Absolute Adresse
Wori 1 OP D ν P.b
Wort 2 Absolute Adresse
Dieser SSB-LD-Befehl gibt im allgemeinen die Lage eines Stufenstatusblocks (SSB) an einer effektiven Adresse im Hauptspeicher 8 (durch Rb und die absolute Adresse) sowie eine ausgewählte, zum Hauptspeicher-SSB gehörende Prioritäisstufe (über Rx) an, und er lädt den SSB vom Hauptspeicher 8 in den Separatregisterstapel 80(Fi g. 4) für die gewählte Stufe.
Die Ausführung des SSB-LD-Befehls hat auf den Prozessor 1 Auswirkungen, die durch drei Faktoren bestimmt werden:
1. Die aktive Ausführungsstufe.
2. Die im SSB-LD-Befehl angegebene vorgewählte Stufe.
3. Den Zustand des In-Arbeit-Kennzeichen (Bit 9 des LSR), das im SSB des Hauptspeichers enthalten ist.
Die Ausführung des SSB-LD-Befehls kann in einer Stufenumschaltung oder in einer Änderung zum Wartezustard einer Stufe gemäß Beschreibung in den folgenden Abschnitten resultieren:
1. Vorgewählte Stufe hat niedrigere Priorität als aktive Stufe und In-Arbeit-Kennzeichen ist eingeschaltet — diese Bedingungen führen zum Wartezustand der vorgewählten Stufe. Der gewählte SSB im Hauptspeicher 8 wird in den Stapel 80 für die vorgewählte Stufe geladen. Die nachfolgende Ausführung eines LEX-Befehls auf der aktiven Stufe läßt die vorgewählte Stufe aktiv werden unter der Voraussetzung, daß keine Unterbrechung mit höherer Priorität angefordert wird.
2. Vorgewählte Stufe gleich aktiver Stufe und In-Arbeit-Kennzeichen eingeschaltet — diese Bedingungen lassen die vorgewählte zur aktiven Stufe werden. Der vorgewählten SSB im Hauptspeicher 8 wird in den Stapel 80 für die vorgewählte Stufe geladen.
3. Vorgewählte Stufe hat höhere Priorität als aktive Stufe und In-Arbeit-Kennzeichen eingeschaltet — diese Bedingungen lassen die vorgewählte Stufe zur aktiven Stufe werden. Der vorgewählte SSB im Hauptspeicher 8 wird in den Stapel 80 für die vorgewählte Stufe geladen. Hier erfolgt eine Stufenumschaltung auf die höhere vorgewählte Stufe und die niedrigere Stufe geht in den Wartezustand.
4. VorgewähU-; Stufe hat niedrigere Priorität als aktive Sttife und In-Arbeit-Kennzeichen ausgeschaltet — diese Bedingungen lassen die vorgewählte Stufe nicht in den Wartezustand gehen. Der vorgewählte SSB im Hauptspeicher 8 wird in den Stapel 80 für die vorgewählte Stufe geladen.
5. Vorgewählte Stufe gleich aktiver Stufe und In-Arbeit-Kennzeichen ausgeschaltet — diese Bedingungen führen zu einem Ausgang aus der aktiven Stufe. Der vorgewählte SSB im Hauptspeicher 8 wird in die Vorwahlstufenregister des Stapels 80 geladen.
6. Vorgewählte Stufe hat höhere Priorität als aktive Stufe und In-Arbeit-Kennzeichen ausgeschaltet — der vorgewählte SSB im Hauptspeicher 8 wird in die Vorwahlstufenregister des Stapels 80 geladen.
Das Register 181 (Fig.5) für die aktive Stufe hat entweder keine Bits eingeschaltet, wenn das System im Wartezustand steht, oder es hat nur ein Bit eingeschaltet, wenn eine Aktion durch eine oder mehrere Stufen erforüerinii lsi ιιάϋίι den Angaben im Whi icMufchr cgister 335 (Register zur Identifizierung wartender Stufen). Jas Aktiv-Si'ufenbit beschreibt diejenige Stufe, auf der der Prozessor gegenwärtig arbeitet. Die zu einem Salz dieser Register 181 führenden Schaltelemente enthalten eine Unterbrechungsbehandlungseinrichtung 345, die nachfolgend beschrieben wird.
Wenn das Mikroprogramm die Leitung 181c aufgrund der decodierten Anweisung »Quelle gleich aktiver Stufe« aktiviert, wird der Inhalt des Aktiv-Stufenregisters 181 durch den Vi:r-auf-zwei-Decodierer '8Ic über die Torschaltung 181dan die Prozessorsammelleitung (Bits 14 und 15) geleitet und beispielsweise bei der Festlegung der arithmetischen Beziehung zwischen der aktiven Stufe und der vorgewählten Stufe im Stufenstatusblock-Lademikroprogramm verwendet. Die Ausgangssignale des Vier-auf-zwei-Codierers 181c werden auch an die Aufruffolgesteuerung 285 gesendet, um die aufzurufende Unterbrechungsstufe zu wählen.
Das Wartestufenregister 335 hat nur drei Bitpositionen, da die Stufe 0 niemals wartend sein kann, weil es dazu keine Stufe höherer Priorität gibt. Eine wartende Stufe ist eine Stufe, die ausgeführt, aber dann unterbrochen und ausgesetzt wurde durch eine höhere Stufe. Die Ausgangssignale des Wartestufenregisters 335 werden mit den Ausgangssignalen des Aktiv-Stufenregisters 181 im ODER-Glied 340 verknüpft und an die Prioritätsunterbrechungssammelleitung 192 gegeben auf Anforderung des Mikroprogramms durch Erregung der Torschaltung 341 aufgrund der Decodieranweisung »Quelle sind In-Arbeit-Kippglieder« auf der Leitung 342. Die Einrichtung »In-Arbeit« merkt sich f'ir das Mikroprogramm jede Unterbrechungsstufe, dii entweder aktiv oder wartend ist, so daß das Mikroprogramm erfährt, welche Stufe in Arbeit ist oder zu bearbeiten sein wird, wenn eine Aktivität auf einer höheren Stufe endet. Der Ladebefehl für den Stufenstatusblock kann Unterbrechungsstufen freifeben oder sperren durch Einschalten oder Zurückstellen entsprechender Bits im Warte.stufenregii.ter 335. Wenn die Zielstufe die Stufe 0 ist und aktiviert werden muß, dann wird das Aktiv-Stufenbit für die Stufe 0 im Register 181 automatisch gesetzt.
Wie bereits gesagt, ist der Unterbrechungsalgorithmus implementiert in der Schaltung 345 am Eingang zum Register mit den Aktiv-Stufenbits. Sie hat folgende Kombinationsfunktion:
Die Masken- und Unterbrechungsanforderungen vom Register 175 und der Sammelleitung 261 werd.;n für die Sammelleitung 182 UND-verknüpft zu neuen Anforderungen, das Aktiv-Stufenregister 181 zu laden.
ϊ * * Γ.-4 C1 11* i πλ
JH3 nui uvi juriiirn.jn.nuig txji
eine höhere Priorität hat als dasjenige, das im Wartestufe.iregister 335 steht oder bereits im Aktiv-Stufenregister 181. kann das höchste neue Anforderungsbit in das Register 181 gesetzt werden. Dk Prioritätszuordnung externer Unterbrechungsanforderungen erfolgt hier so, daß beim Ausstehen einer Anforderung für eine höhere Stufe das Setzet) des Aktiv-Stufenbits für eine niedrigere Stufe gesperrt wird. Die zwei Vorwahl-Stufenbits des Registers 185 werden durch Mikroprogramm gesetzt und erregen die vier Ausgänge des fest zugeordneten Decodierers 190. Diese werden im Register 335 aus verschiedenen Gründen gespeichert, z. B. um zu bestimmen, welche wartende Stufe im Register 335 bei Ausführung eines Ladebefehls für den Stufenstatusblock aktiviert oder deaktiviert werden soll. Ein weiterer Grund ist die Erzeugung von Eingangssignal für das Aktiv-Stufenregister 181. Wenn der Prozessor 1 beispielsweise nach einer Systemrückstellung gestartet wird, wird auf diese Weise die Stufe 0 aktiv geschalte*, so daß die Maschine eine Stufe hat, auf der sie arbeiten kann.
Im Ausführungsbeispiel werden Mikroprogrammroutinen zur Steuerung der Schaltungseinrichtungen zur Manipulation der Aufgabenverteilung benutzt, eine Steuerung auf bekannte Weise durch sequentielfe Logik ist jedoch ebenso möglich.
Ein Beispiel für die Mikroprogrammroutinen für die Ausführung der Befehle SSB-LD und SSB-SP wird anschließend im einzelnen beschrieben.
Mikroprogramm »SSB laden«
Quelle RW-Strg. Best. SP.-
Strg.
Sonstiges Wort Nr.
Stapel (Rx) Durchg. vorgew. Stufe setze Progr.-Fehler 1
wenn nicht Überw.-
Zustand
WA + 2 Stapel (BAR) 2
Stapel (BAR) Durchg. SAR & WA LIW 3
WA + 2 Stapel (BAR) 4
Stapel (Rb) Durchg. Y 5
SDR Durchg. WA 6
29
Forisci/ung
30
Quelle
RW-Strg.
Best.
SP,-Strg. Sonstiges
Wort Nr.
WA Durchg. Stapel
(TEMP)
Stapel (Rx) Durchg. Y
Y Durchg. Stapel
(TEMP I)
WA +2 SAR & WA
SDR Durchg. Stapel (IAR)
WA +2 SAR & WA
SDR Durchg. Y
Y Durchg. Stapel (K)
SDR Durchg. Y
SDR Durchg. Stapel (K)
WA +2 SAR & WA
Y Durchg.
Ausgeben
0008 Durchg. Zähler 75
WA + 2 SAR & WA
SDR Durchg. Y
Y Durchg. Stapel (K)
Stapel
(TEMPI)
Durchg. WA
Durchg. Y
WA-Y Subtrahiere WA
LW
LW
LW
LW
LW Schiebe Y
links (1 Stelle)
Prüfesammelieitung
Bit 8, setze T-Kippgl.
wenn »Ein«
Dez.-Zähler. verzw.
nach 21 wenn Zähler
= 0
Verzw. wenn T-Kippglied und Sammell.
negativ
T = O und Sammelleitung 57 nicht negativ (In-Arbeit-= »Aus«, und Priorität der aktiven Stufe nicht kleiner als Priorität der vorgewählten Stufe)
Verzw. nach 37 wenn
Sammell. = 0
Durchg. Kippgl. der
wand. Stufe an
Kippgl. der aktiven
Stufe
neue Stufe rückst.
Akt. Stufe Durchg. vorgew. Stufe
Stapel (LSFO Durchg. WA
Emit 0040 Durchg. Y
WA & Y Und-Nicht Stapel (SSR)
WA Durchg. SSR
Stapel (BAR;) Durchg. SAR
Stapel (ASR) Durch;?. ASR
Stapel (SSR) SSR
Stiipcl (BAR) Durchg. SAR
Verzw. nach 34. wenn
Aktion auf einer Stufe
Wartezustand
schalten
LIW
LIW nicht protokoll.
Vorgew. Stufe auf
»wartend« rückst.
Nicht protokoll., wenn
Tx-Bit ein
9 10
11 12 13 14 15 16 17
J 8 19
20 21 22 23
24
25 26
27
28
29 30
31 32
33
34 35
36 37
38
Fortsetzung
Quelle
RW-Strg. Best-
SP,-Sirg.
Sonstiges
Won Nr-
T=O und Sammelleitung negativ (ln-Arbeit=»Aus«, und Priorität der aktiven Stufe niedriger als Priorität der vorgewählten Stufe)
Verzw. mich 37 39
T=I und Sammelleitung nicht negativ (!n-Arbeit=»Ein«, und aktive Stufe hat Priorität nicht kleiner als vorgewählte Stufe)
SAR Verzw. nach 46, wenn
Sammell.=0
LIW nicht protokoll, wenn
Tx-Bk ein
Stapel (ASR) vorgew. Stufe
(alte aktive Stufe)
auf »wartend« setzen
40
Stapel (BAR) Durchg. ASR Gew. Stufe auf
»wartend« setzen
Stapel (SSR) 41
Stapel (ASR) Durchg. SSR Verzw. nach 37 vorgew. Stufe Vorgew. Stufe
(alte aktive Stufe)
auf »wartend« setzen
42
Stapel (SSR) Durchg. LIW Gew. Stufe auf
»wartend« setzen
Wart. Stufe (neue
vorgew. Stufe) an
aktive Stufe durchg.
43
Nicht protokolU wenn
Tx-Bit ein
Verzw. nach 34 44
SAR T= 1 und Sammelleitung negativ (ln-Arbeit = »Ein«, und aktive Si:ufe hat
Priorität der vorgewählten Stufe)
45
Stapel (AR) Durchg. ASR Durchg. 46
SSR Durchg. 47
Y Durchg.
48
49
50
51
52
53
Im Ausführungsbeispiel wird zur Adressierung »E/A = (Rb) + 16 Bit absolute Adresse« verwendet, worin Rb von null verschieden ist. Startbedingungen für alle Befehle sind: BAR in WA-Register 52, erstes Wort des Befehls im SDR und OP-Register 70 und 101.
Im Zyklus I wird die gewählte Stufe von dem durch das Rx-FaId im Befehl angegebenen Register in die Vorwahlstufen-Kippglieder (Register) gesetzt, und da der Befehl privilegiert ist, wird eine Prüfung auf den Überwachungszustand hin durchgeführt. Wenn nicht im Überwachungszustand, tritt eine Programmfehlerunterbrechung auf.
Das zweite Wort des Befehls (absolute Adresse) wird im Zyklus 3 gehol! und der Inhalt des Basisregisters (Rb) im Zyklus 5. Diese werden addiert zur Bildung der effektiven Adresse im Zyklus 7. Die gewählte Stufe (Rx) wird verschoben nach TEMPI in den Zyklen 9 und 10. Der Inhalt von BAR wird vom Speicher im Zyklus 9 geholl und im Registerstapel im Zyklus 12 gespeichert. Der Inhalt von ASR wird geholt im Zyklus 11 und
M) gespeichert im Registerstapel im Register 14. Der Inhalt von SSR wird im Zyklus 13 geholt und im Registerstapel in Zyklus 17 gespeichert. Zyklus 19 kopiert-ien Wert des In-Arbeit-Bits aus dem vorgewählten SSB in das T-Kippnlied 326 xur späteren Verwendung. Ein Wert von acht wird in der Zähler 75 in Zyklus 20 gesetzt und zur Schleifensteuerung für acht Durchgänge der Mikrozyklen 21 bis 23 verwendet, um die Inhalte der SSB-Allgemeinregister RO bis R7 aus dem Hauptspeicher 8 in den Registerstapel 80 zu schieben. Die Zyklen 24, 25 und 26 stellen fest, ob die Priorität der aktiven Stufe kleiner ist als diejenige der vorgewählten Stufe, und in Zyklus 26 erfolgt eine Vier-Weg-Verzweigung je nach Zustand dieser Bedingung und dem Zustand des T-Kippgliedes326(des In-Arbeit-Bits) wie folgt:
I. Wenn das In-Arbeit-Bit I ausgeschaltet ist und die Priorität der aktiven Stufe nicht niedriger ist als diejenige der vorgewählten Stufe, bestimmt eine Verzweigung im Zyklus 27. wenn Sammelleitungen
57 =Ό, ob die aktive Stufe gleich ist der vorgewählten Stufe. Wenn das nicht der Fall ist, wird zum Zyklus 37 verzweigt, wo die vorgewählte niedrigere Stufe abgeschaltet wird und der nächste Befehl auf der aktiven Stufe geholt wird (niedere Stufe «i Wartezustand setzen). Wenn die aktive Stufe und die vorgewählte Stufe gleich sind, werden Jn denZyklen 28 und 29 wartende Anforderungen untersucht Das In-Arbeit-Bit der aktiven Stufe (SSR) wird abgeschaltet in den Zyklen 30 bis 33. Wenn keine Stufen m warten, geht das System in den Wartezustand. Wenn eine oder mehrere Stufen warten, werden die Register BAR, ASR und SSR der Stufe mit der höchsten Priorität aus dem Registerstapel 80 in die als Gegenstück dienenden Register 95, 85 und 90 kopiert und die Ausfahrung auf dieser Stufe in den Zyklen 34 und 37 fortgesetzt (aktive Stufe in Wartezustand).
2. Wenn das In-Arbeit-Bit ausgeschaltet ist und die Priorität der aktiven Stufe niedriger ist als diejenige der vorgewählten Stufe, muß die vorgewählte Stufe bereits ηύ^ε, sein (bedingt durch den Unterbrechungsaigonthmus). Dann wird zum Zykius 37 verzweigt, wo die Verarbeitung auf der aktiven Stufe fortgesetzt wird (Kontext einer wartenden Aufgabe wird verändert).
3. Das In-Arbeit-Bit ist eingeschaltet und die Priorität der aktiven Stufe ist nicht niedriger als diejenige der vorgewählten Stufe. Eine Verzweigung in Zyklus 40, wenn Sammelleitung = 0, stellt fest ob aktive Stufe = vorgewählte Stufe. Wenn nicht wird die vorgewählte Stufe im Zyklus 46 auf »wartend« gesetzt und d;; Verarbeitung auf der aktiven Stufe fortgesetzt (Aufgabe mit niedrigerer Priorität in Warteschlange). Wenn die vorgewählte und die η aktive Stufe dieselbe Priorität nahen, werden in den Zyklen 41, 42 und 43 die Inhalte der neu gewählten Register BAR, ASR und SSR in die separaten Register 95,85 und 90 geladen (Aufgaben auf aktiver Stufe verändert). ·)»
4. In-Arbeit-Bit ist eingeschaltet, und Priorität der aktiven Stufe ist niedriger als die der vorgewählten Stufe: Zyklen 48 und 49 retten ASR und SSR der aktiven Stufe (Registerstapel 80). Die alte aktiv; Stufe wird während der Zyklen 50 und 51 auf 4> »wartend« gesetzt. Die neugewählte Stufe wird zur neuen aktiven Stufe in Zyklus 52, und während des Zyklus 53 wird zum Zyklus 34 verzweigt BAR, ASR und SSR der neuen Stufe werden in ihre Gegenregister 95,85 und 90 in den Zyklen 34 bis 36 verschoben, v> und die Verarbeitung wird auf der neuen Stufe mit höherer Priorität fortgesetzt (Aufgabe mit höherer Priorität ausgewählt).
Die Ausführung der Mikroprogrammrouline »SSB laden« wird anschließend im einzelnen beschrieben unter Bezug auf die Mikroprogrammliste. Es wird angenommen, daß die Adresse des ersten Wortes des SSB im Hauptspeichers »E/A = (Rb) + 16 Bit absolute Adresse« ist. Dabei ist Rb von Null verschieden. Die bo Anfangsbedingungen zur Ausführung des Befehlsmikroprogramms sind: Die Adresse (BAR) des nächsten Befehlswortes ist im WA-Register 52 gespeichert, und das erste Wort des ausgeführten Befehls (d.h. »SSB laden«) steht im SDR-Register 70 und im OP-Register 101. Die Ausführung eines jeden Mikrowortes wird als ein Zyklus bezeichnet
Mit den ersten sieben Zyklen der Mikroprogrammli
ste wird die effektive Adresse des ersten Wortes des gewählten SSB im Hauptspeicher 8 errechnet. Im Zyklus I wird das Rx-FeId des laufenden (akuten) Befehls im OP 101 über Torschaltung lOlö an das Stapeladreßregistsr 105 geleitet, um aus dem Stapel das Register der aktiven Stufe auszulesen, das durch den Rx-Wert gewählt wurde. Diese Registerposition enthält die Stufe für den vorgewählten SSB. Die Stufenbits, die in dieser Registerposition des Stapels 80 enthalten sind, sind bestimmt für das Register 185 (vorgewählte Stufe), Übertragung über die PiOzessorsammelleitung 37 (Bits 14 und 15), Außerdem wird das Überwachungszustandsbit im SSR-Regjster 90 durch ein nicht dargestelltes Ausgangssignal der Steuerdecodierer 209 (Fig.2B) abgefragt und »Prograramfehler« gesetzt wenn das aktive Programm sich nicht im Überwachungszustand befindet
Im Zykius 2 wird die Adresse des nächsten Befehls im WA-Register um zwei erhöht (im Rechenwerk 51), und der erhöhte Wert wird im Stapelregister (BAR) der aktiven Stufe gespeichert
Im Zyklus 3 wird die Adresse im Stapelregister (BAR) der aktiven Stufe an das SAR-Prozcssorrcgister 95 und an das WA-Register 52 gegeben. Diese Adresse im Register 95 ist die Adresse des zweiten Wortes des SSB-Ladebefehls, und die Speichersteuerungen laden dieses zweite Wort des Befehls in das Speicherdatenregister 70. Die Daten vom Speicher stehen jedoch im SDR 70 erst im dritten nachfolgenden Zykius, d. h. im Zyklus 6, zur Verfugung.
Im Zykius 4 wird der Adreßwert im WA-Register 52 im Rechenwerk 51 um zwei erhöht und im Stapel register (BAR) in der aktiven Stufe gespeichert
Im Zyklus 5 wird das Rb-FeId aus dem OP-Register 101 in das SAR 105 geleitet, um das Register in der aktiven Stufe des Stapels 80 zu wählen, das die dem Rb-FeId entsprechende Basisadresse enthält Dieser Basisadreßwert ist für das Y-Register 53 bestimmt
Im Zyklus 6 steht jetzt die absolute Adresse im SDR-Prozessorregister 70 zur Verfügung, die in Zyklus 3 vom Speicher angesteuert wur«!,% und dieser Wert wird vom Register 70 an das WA-Register 52 gegeben.
Im Zyklus 7 werden der Basisadresswert im Y-Register 53 und der 16 Bit lange absolute Adreßwert im WA-Register 52 des Rechenwerks zueinander addiert und das Ergebnis ist bestimmt sowohl für das SAR-Prozessorregister 95 als auch für das WA-Register 52.
Im Zyklus 8 wird die effektive Adresse vom WA-Register 52 in das TEMP-Register des Stapels 80 abgespeichert.
Im Zyklus 9 wird das durch die Rx-Registerbits im OP-REG 101 bezeichnete Aktiv-Stufenregister über das SAR 105 gewählt und wird an das Y-Register 53 gegeben. Gleichzeitig holen die Speichersteuerungen das nächste Wort vom Hauptspeicher 8 mit der Adresse, die in Zyklus 7 in das SAR-Register 95 gesetzt wurde. Diese Adresse im SAR-Register 95 ist, wie schon gesagt, die Adresse des ersten Wortes, d. h. des Befehlsadreßregisters BAR des gewählten SSB.
Im Zyklus 10 werden die Bits für die vorgewählte Stufe vom Y-Register 53 abgespeichert in das TEMPI-Register des Stapels 80, weil das Register (85 (vorgewählte Stufe) nicht als Quelle benutzt werden kann. Da mit diesen Bits gemäß nachfolgender Beschreibung die Werte der vorgewählten Stufe und der aktiven Stufe verglichen werden müssen, müssen diese Werte in TEMPI für die spätere Benutzung in
dieser Operation abgespeichert werden.
Im Zyklus 11 wird die Speicheradresse vom WA-Register 52 im Rechenwerk fortgeschrieben und an das WA-Register 52 und das SAR-Prozessorregister 95 weitergegeben. Mit der fortgeschriebenen Adresse wird der Inhalt des ASR vom Hauptspeicher 8 geholt und in die vorgewählte Stufe des Registerstapels 80 in den Zyklen 14 und 15 abgespeichert.
Im Zyklus 12 wird die Adresse, die im SDR-Prozessorregister 70 gespeichert ist, an das BAR-Register der \a vorgewählten Stufe im Stapel 80 weitergegeben.
Im Zyklus 13 wird die Adresse im WA-Register 52 fortgeschrieben und an das SAR-Prozessorregister 95 and das WA-Register 52 gegeben. Der Inhalt des Stufenstatusregisters SSR des vorgewählten Stufenstatusblocks wird unter Verwendung der fortgeschriebenen Adresse im SAR-Register 95 geholt Die SSR-Da ten werden in das LSR-Register der vorgewählten Stufe im Stapel 80 währenddes Zyklus 17 weggespeichert.
In den Zyklen 14 und 15 stehen die Daten des Adreßschlüsselregisters ASR im SDR-Prozessorregister 70 und werden weitergegeben an das Y-Register53 im Zyklus 14 und vom Y-Register an das ASR-Register der vorgewählten Stufe im Stapel 80 wähtend des Zyklus 15.
Im Zyklus 16 steht die Stufenstatusregisterinformation im Prozessor SDR 70 und wird weitergegeben an dasY-Register53.
Im Zyklus 18 werden die Bits des Vorwahl-Stufen-Statusregisters übertragen vom SDR-Prozessorregister 70 an das SSR-Register der vorgewählten Stufe im Stapel 80. Außerdem werden die SSR-Bits im Y-Register 53 um eine Bitposition nach links verschoben, um das In-Arbeit-Bit in der Bitposition 8 des Y-Registers 53 einzuschalten. Damit kann dieses Bit während des Zyklus 19 abgefragt und das T-Kippglied 326 (Fig. 15) eingeschaltet werden, wenn das In-Arbeit-Bit eingeschaltet ist
Im Zyklus 18 wird die Adresse im WA-Register 53 fortgeschrieben und an das SAR-Prozessorregister 95 und das WA-Register 52 gegeben. Mit der fortgeschriebenen AdresTi im SAR-Prozessorregister 95 wird das nächste SSB-Wort vom Hauptspeicher 8 geholt, in diesem Fall der Inhalt des RO-Registers.
Im Zyklus 20 wird der Wert 8 in den Zähler 75 gesetzt und zur Schleifensteuerung für 8 Durchgänge der Mikrozyklen 21 bis 23 verwendet, um die Allgemeinregister RO bis R7 des vorgewählten SSB aus dem Hauptspeicher 8 in den Registerstapel 80 zu setzen. Während dieser Schleifensteuerung wird bei jeder Adressierung des Stapels 80 durch das SAR-Register 105 die Adresse vom Register 105 in der Inkrementierschaltung320 um eine Einheit erhöht und der neue Wert in das StapcJverbindungsregister 321 gesetzt. Während der nächsten Adressierung des Stapels 80 gibt die Torschaltung 322 den neuen Adreßwert in das Register 105. Gleichzeitig wird der Zähler 75 um eins heruntergesetzt durch eine nicht dargestellte Schaltung (für jeden Durchgang durch die Schleife). Jedesmal, wenn der Zähler 75 heruntergesetzt wird, wird er in 6<i Zyklus 23 auf null abgefragt. Wenn keine Null gefunden wird, wird zum Zyklus 21 zurückverzweigt. Wenn aber die Nullbediflgung erkannt wird, fährt das Programm mit dem Zyklus 24 fort
Die Zyklen 24, 25 und 26 bestimmen, ob die Priorität ^ der aktiven Stufe kleiner, gleich oder größer ist als diejenige der vorgewählten Stufe. In Zyklus 26 erfolgt aufgrund dieser Bedingung und der Stellung des Kjppgljedes 326 (Fig, 15), das den Wert des (n-Arbeit-Bits der vorgewählten Stufe liefert, eine Vier-Weg-Verzweigung, In Zyklus 24 werden die Vorwahl-Stufenbits, die in das TEMP!-Register des Stapels 80 abgespeichert wurden, übertragen in das WA-Register 52, Die Aktiv-Stufenbits werden aus dem Register 181 zur Angabe der aktiven Stufe (F i g. 5) weitergegeben an das Y-Register 53 (während des Zyklus 25), Im Zyklus 26 wird die aktive Stufe im Y-Register 53 subtrahiert von der vorgewählten Stufe im WA-Register 52. Das Ergebnis wird vom Rechenwerks-Ausgang 56 durch die Torschaltung 58 an die Prozessorsammelleitung 57 geleitet
Wie in Fig. 15 zu sehen ist wird das Bit 0 der Prozessorsammelleitung 57 auf eine Negativ-Bedingung (über die Torschaltung 327) abgefragt Die Torschaltung 327 der Fig. 15 ist ein Teil der Steuerschaltung für bedingte Verzweigungen (152) der Fig. 2A, und die Abfrageleitungen 328 und 329 der F i g. 15 haben ihren Ursprung in den Steuerdecodierschaltungen 209 der Fig.2B und sind ein Teil der allgemein mit der Bezugszahr286 in F i g. 2B bezeichneten Ausgabeleitungen.
Im Ausführungsbeispiel erfolgt die Vier-Weg-Verzweigung durch Verbinden des Ausgangs 330 des T-Kippgliedes 326 mit Bit 5 des ROSAR 193 und durch Koppeln des Ausgang« 331 der Torschaltung 327 auf Bit 6 des KOSAR 193. Abhängig von einem der vier verfügbaren Zustände der Kombination von Torschaltung 327 und T-Kippglied 326 (d.h. 00, 01, 10 und 11) wird das ROSAR 193 veranlaßt, eine von vier verschiedenen Stellen im ROS-Speicher 2ßl anzusteuern. In der obigen Mikroprogrammliste sind diese vier Stellen im Mikroprogrammspeicher 201 bezeichnet durch die Zyklen 27,39,40 und 48.
In dem ersten zu behandelnden Verzweigungsfall ist das T-Kippglied 326 zurückgestellt, weil das In-Arbeit-Bit abgeschaltet war, und das Ausgangssignal der Torschaltung 327 ist auf dem logischen Nuil-Pegel, weil die Priorität der aktiven Stufe nicht niedriger ist als diejenige der vorgewählten Stufe.
Es erfolgt eine Verzweigung im Zyklus 27, in dem eine Decndierschaltung 332 die Sammelleitung 57 auf einen von Null verschiedenen Zustand prüft, wenn ein Signal durch die Decodierschaltung 209 (Fig.2B) an die Eingangsleitung 332a der Fi g. 15 angelegt wird. Wenn sich die Sammelleitung 57 nicht im Null-Zustand befindet, wird zum Zyklus 37 verzweigt Wenn die Daten auf der Sammelleitung 57 jedoch gleich null sind, wird im Zyklus 28 weitergearbeitet. Bei der Verarbeitung im Zyklus 28 sind die aktive und die vorgewählte Stufe gleich. Im Zyklus 28 wird der Inhalt des Registers 335 (wartende Stufe) über die Torschaltung 336 zum Register 181 (aktive Stufe) übertragen (Fig.5). Itr Zyklus 29 werden die Aktiv-Stufenbits vom Register 181 durch Jen Codierer 181c, die Sammelleitung 181a, die Torschaltung iiid, die Bitleitungen 14 und 15 der Prozessoresammelleitung 57 und die Torschaltung 186 zum Register 185 (vorgewählte Stufe) übertragen (F ig. 2A).
Um das In-Arbeit-Bit im Aktiv Stufenregister SSR im Stapel 80 anzuschalten, wird der Inhalt des SSR-Registers im Zyklus 30 an das WA-Register 52 gegeben. Im Zyklus 31 wird der Wert 0040 in das Y-Register S3 (vom Ausgang des ROS-Datenregisters 202) geleitet, wobei die Torschaltung 203 und die Prozessorsammelleitung 57 die Quelle sind. Ιτι Zyklus 32 wird der Inhalt der Register 52 und 53 in das Rechenwerk 51 gegeben, um
eine UND-NICHT-Funktion auszuführen, und das Ergebnis wird in das aktive SSR-Register im Stapel 80 geleitet. Dadurch wird das In-Arbeit-Bit des SSB effektiv ausgeschaltet, das gerade in der gewählten Stufe in den Zyklen 1 bis 26 geladen wurde.
Während des Zyklus 30 wird auch das Bit für die wartende Stufe im Register 335 (Fig. 5) entsprechend der vorgewählten Stufe im Register 185 bei der Einleitung der Routine zurückgestellt, da ihr In-Arbeit-Bit ausgeschaltet ist und die Verarbeitung auf dieser Stufe nicht fortgeführt werden kann.
Im Zyklus 32 werden auch die Kippgliedcr für die aktive Stufe im Register 181 abgefragt um festzustellen, ob auf irgendeiner Stufe etwas getan werden muß. Der Inhalt des Registers 18! hängt ab von der vorhergehenden Übertragung des Inhaltes des Registers 335 (wartende Stufe) in das Register 181 (aktive Stufe) während des Zyklus 28. Wenn keine Aktion in einer der vier Stufen aussteht, werden im Zyklus 33 die Stufenstatusbits vom WA-kegister 52 an das Vorwahi-Stufenregister 90 übertragen und der Prozessor in den Wartezusiand versetzt, d. h.. im Aktiv-Stufenregisier 181 ist kein Stufenbit gesetzt.
Wenn jedoch während des Zyklus 32 festgestellt wird, daß auf einer der vier Stufen etwas getan werden muß. dann wird zum Zyklus 34 verzweigt. In den Zyklen 34 bzw. 35 und 36 werden die Stapelrcgister SAR, ASR und SSR der höchsten wartenden Prioritätsstufc vom Stapel 80 in die separaten Register SAR, ASR und SSR übertragen. Während des Zyklus 34 wird außerdem das nächste Befehlswort von der im SAR-Prozessorregister 95 gespeicherten Adresse geholt. Im Zyklus nach dem Zyklus 36 wird die Verarbeitung des neuen Befehlswortes eingeleitet.
Falls im Zyklus 27 die Bedingung »Sammelleitung von null verschieden« festgestellt wurde und zum Zyklus 37 verzweigt wurde, wird die vorgewählte, im Register 335 wartende Stufe aktiviert und das nächste Befehlswort mit Hilfe der vom Register BAR der aktiven Stufe im Stapel 80 an das SAR-Prozessorregister 95 übertragenen Adresse geholt. Die Verarbeitung wird auf der aktiven Stufe fortgesetzt.
Falls während des Zyklus 26 das In-Arbeit-Bit ausgeschaltet ist und die aktive Stufe eine niedrigere Priorität hat als die vorgewählte, muß die vorgewählte Stufe bereits im Ruhezustand sein, und es wird zum Zyklus 39 verzweigt. Wenn sie sich nicht vorher im Ruhezustand befand, hätte sie bereits die Aufgabe mit niedrigerer Priorität in der aktiven Stufe vorher abgeschlossen. In diesem Fall wird im Zyklus 39 zum Zyklus 37 verzweigt, wo die Verarbeitung auf der aktiven Stufe fortgesetzt wird durcn Übertragung des Inhaltes des Registers RAR der aktiven Stufe im Stapel 80 an das SAR-Prozessorregister 95 und durch Holen des nächsten Befehlswortes der Aufgabe der aktiven Stufe.
Wenn das In-Arbcit-Bit während der Ausführung des Zyklus 26 eingeschaltet ist (T-Kippglied 326 ist gesetzt) und die aktive Stufe keine niedrigere Priorität hat als die vorgewählte Stufe, wird zum Zyklus 40 verzweigt. Im Zyklus 40 fragt die Schaltung 332 die Sammelleitung 57 auf einen von null verschiedenen Zustand ab. Befindet sich die Sammelleitung 57 in einem solchen Zustand, wird zum Zyklus 46 verzweigt, um die Verarbeitung auf der aktiven Stufe fortzusetzen. Die vorgewählte Stufe wird im Register 335 auf »wartend« gesetzt.
Wenn sich die Sammelleitung 57 jedoch im Null-Zustand befindet, wird die Verarbeitung mit dem Zyklus 41 fortgesetzt. In diesem sind die aktive und die vorgewählte Stufe gleich, und da die Information für BAR, ASR und SSR in die entsprechenden Register der vorgewählten Stufe im Stapel 80 gesetzt wurde, muß diese Information jetzt in cJie separaten Register übertragen werden. In den Zyklen 41, 42 und 43 wird somit der Inhalt der Stapelregister BAR. ASR und SSR der gewählten Stufe an die separaten Register 95, 85 und 90 übertragen. In Zyklus 44 wird die vorgewählte Stufe in das Wartestufenregister 325 gesetzl. Im Zyklus 45 wird zum Zyklus 37 verzweigt und dort die Verarbeitung auf der neuen Stufe eingeleitet. Das BAR-Register im Stapel 80 wird dann zum SAR-Prozessorregister 95 übertragen und der nächste Befehl während des Zyklus 37 geholt. Im Zyklus 37 wird außerdem das den Wartezustand der vorgewählten Stufe anzeigende Kippglied wieder zurückgestellt, da sie für die Verarbeitung gewählt wurde.
Wenn gemäß obiger Beschreibung während des Zyklus 40 zum Zykius 46 verzweigt wiiu. wiiii üic Adresse des nächsten Befehls vom Register BAR der aktiven Stufe im Stapel 80 an das SAR-Prozessorregister 95 übertragen, um das nächste Befehlswort zu holen. Außerdem wird das Kippglied im Wartestufenregister 335. das der vorgewählten Stufe entspricht, auf »wartend« gesetzt und somit die Aufgabe mit niedrigerer Priorität (definiert durch den SSB der vorgewählten Stufe) in die Warteschlange gesetzt.
Falls .'.fahrend des Zyklus 26 zum Zyklus 48 aufgrund eines eingeschalteten In-Arbeit-Bits verzweigt wird (T-Kippglied 326 gesetzt) und die aktive Stufe eine niedrigere Priorität hat als die vorgewählte (Sammelleitung 57 ist negativ und erzeugt daher am Ausgang 331 der Torschaltung 327 ein logisches Einer-Signal), wird die Aufgabe mit höherer Priorität auf der vorgewählten Stufe berücksichtigt. In den Zyklen 48 und 49 wird der Inhalt der separaten Register ASR und SSR (85 und 90) entsprechend an die Register ASR und SSR der aktiven Stufe im Stapel 80 übertragen. Das Register BAR der aktiven Stufe im Stapel 80 braucht nicht fortgeschrieben zu werden, weil das bereits oben in Zyklus 4 geschah.
Im Zyklus 49 werden die Bits der vorgewählten Stufe vom Register 185 über die Torschaltung 191 in das Wartestufenregister 335 geleitet, um die vorgewählte Stufe auf »wartend« zu setzen.
Der alte aktive Stufenwert steht noch im Y-Register 53 (Zyklus 25) und wird im Zyklus 50 zum Register 185 (vorgewählte Stufe) übertragen. Im Zyklus 51 wird dieser alte aktive Stufenwert in das Register 335 (wartende Stufe) über den Decodierer 190 und die Steuerschaltung 191 übertragen, um die alte aktive Stufe auf »wartend« zu setzen.
Im Zyklus 52 wird das Bit für die neue vorgewählte Stufe vom Register 335 in das Register 181 (aktive Stufe) über die Torschaltung 336 übertragen, um die neue Aufgabe auf der höheren Stufe zu berücksichtigen.
Im Zyklus 53 wird zum Zyklus 34 verzweigt. In den Zyklen 34, 35 und 36 wird der Inhalt der Register BAR, ASR und SSR der vorgewählten Stufe im Stapel 80 übertragen an die entsprechenden separaten Register SAR. ASR und SSR (95, 85 und 90). Im Zyklus 34 wird mit der Adresse im SAR-Prozessorregister 95 der als erster in der neugewählten Aufgabe auszuführende Befehl geholt. Die Ausführung dieses Befehls beginnt nach Ausführung des Zyklus 36. Die gewählte Aufgabe mit höherer Priorität wird somit in Angriff genommen und die Aufgabe der aktiven Stufe mit niedrigerer Priorität in den Zustand »wartend« gebracht
I 27 18 Best. 051 40
Mikroprogramm »SSB ABSPEICHERN« gew. Stufe
Quelle RW.-Slrg. Stapel (BAR) SP-
Strg.
Sonstiges Wort Nr
Stapel (Rx) Durchg. SAR & WA I
WA f 2 Stapel (BAR) 2
Stapel (BAR) Durchg. Y LIW 3
WA + 2 WA 4
Stapel (Rb) Durchg. SAR & WA 5
SDR Durchg. TI-MP 6
WVtY Addiere WA 7
WA Durchg. Y 8
Stapel Rx Durchg. WA 9
Akt. Stufe Durchg. Stapel (SSR) 10
WA - Y Subtrahiere Stapel (ASR) Verzw.. wenn=>tO 11
SSR Durchg. WA 12
ASR Durchg. Zähler 13
TKMP Durchg. SDR 14
Ausgeben
000 B
Durchg. SAR 15
Stapel (K) Durchg. WA 16
W Λ Durchg. SAR SW 17
WA+ 2 Durchg. Verzw. nach 16. wenn 18
Zähler* 0 Zähler
vermindern
Stapel (IiAR) Durchs» I.IW 19
In der Mikroprogrammroutine »SSB abspeichern« bezieht sich die aktive Stufe auf die ausgeführte Aufgabe und daher auf diejenige Stufe im Stapel 80. die die zu der ausgeführten Aufgabe gehörenden SSB-Register enthält. Die vorgewählte Stufe bezieht sich auf die Aufgabe, deren SSB-Registerdaten von den entsprechenden Stufenregistern des Stapels 80 in den Hauptspeicher 8 übertragen werden.
In den Zyklen 1 bis 8 der Routine »SSB abspeichern« wird die effektivc Adresse des vorgewählten SSB wie bei der Ausführung des Befehls »SSB laden« festgelegt. Die Werte für die vorgewählte (Rx) und die aktive Stufe werden in den Zyklen 9. 10 und 11 verglichen. Wenn sie gleich sind, werden die Zyklen 12 und 13 ausgeführt, um die Register SSR und ASR der aktiven Stufe im Stapel 80 aus den separaten Registern SSR und ASR (90 und 85) fortzuschreiben, bevor der laufende SSB im Hauptspeicher 8 gespeichert wird. Das Stapelregister BAR wurde bereits im Zyklus 4 fortgeschrieben.
Wenn die Stufen nicht gleich sind, werden die Schritte 12 und Π weggelassen und die Ausführung in Zyklus !4 fortgesetzt, wo die effektive Adresse aus dem TEMP-Register im Stapel 80 wiedergewonnen und an das WA-Register 52 geleitet wird. Der Dezimalwert 11 wird im Zyklus 15 in den Zähler 75 gesetzt und zur Schleifensteuerung in den Zyklen 16. 17 und 18 verwendet, um den gesamten SSB in den Hauptspeicher 8 ähnlich zu speichern, wie es oben für die SSB-Laderoutine beschrieben wurde. Die verwendete Stapeladresse (K) wird nach der Benutzung automatisch
(.111VJlIl UU[LIl UlU 111 M U 11 lCl 11 I
a t IUI Ig J£.\J, 11(33 führung läuft in Zyklus 19 weiter, wo der in der Reihenfolge nächste Befehl der aktiven Stufe geholt wird.
Als Beispiel wurde eine Art der Adressierung für das Laden und Abspeichern des Stufenstatusblocks SSB beschrieben, andere Adreßformen können jedoch ebenso benutzt werden.
Zusammenfassung
Im beschriebenen Ausführungsbeispiel belegen die Stufenstatusblöcke normalerweise zusammenhängende Bereiche des Hauptspeichers und bestehen aus folgenden Parametern:
Wort I - die zur Aufgabe und ihrem Ausführungszustand gehörende Statusinformation (Stufenstatus genannt)
Wort 2 — Adreßschlüsselregisterinformation, identifiziert die der Aufgabe zugeordneten Adreßräume
Wort 3 — die Befehlsadresse, an der die Ausführung der Aufgabe beginnen oder fortgeführt werden soll
Wort 4 bis 1i —dieser Bereich enthält den Inhalt der bei Aktivierung der Aufgabe zu benutzenden Allgemeinregister
Der im Hauptspeicher diesem Abschnitt des Stufenstatusblocks unmittelbar folgende Bereich kann für Programmsteuerdaten benutzt werden. Zwar werden die Daten aus diesem anschließenden Bereich nicht zur Steuerung von Schaltungseinrichtungen (Hardware) benutzt. Doch ist es bequem, die Aufgabe in einem
£U>dI IIII ICl It IUl IgCl IUC 11
;_ö:_u„_ui—l. .... ι 1 :i
Register 321 und die Torschaltung 322. Die Befehlsaus- Der Aufbau des Programmsteuerungsteils des Stufen-
Statusblocks hängt ab vo!i der Art des verwendeten Programmiersystems und nicht von den voranstehenden Wörtern 1 bis 11 des Stufenstatusblocks.
Um eine gegebene Aufgabe auf einer gegebenen Stufe zu aktivieren, wird ein Befehl »Stufenstatusblock 1S laden« ausgeführt. Dieser Befehl errechnet die effektive Adresse des gewählten Stufenstatusblocks im Hauptspeicher und lädt diesen Block in die besonderen (separaten) Schaltungseinrichtungen dor parametrisch durch den Befehl gewählten Stufe. Der Ladebefehl für w den Stufenstatusblock kann auch dazu benutzt werden, eine Aufgabe auszusetzen oder zu beenden.
Der jeweilige Status der auf jeder Stufe im System aktiven Aufgaben kann abgefragt und in den Hauptspeicher kopiert werden durch einen Befehl »Stufenstatus- ι. block abspeichern«, der genau entgegengesetzt wirkt wie der Stufenstatusblock-Ladebefehl, d. h., der Inhalt der separaten Register und die zur adressierten Stufe gehörenden Statusbedingungen werden in die Hauptspeicherstellen gesetzt, welche an der effektiven Adresse beginnen, die 212s den! SiufenststusH'^k-Speicherbefehl errechnet wurde.
Durch Anhängen der Programmsteuerparanieter an den Parametersatz im Stufenstatusblock, der sowohl von den Schaltungseinrchtungen (Hardware) als auch r. von den Programmen (Software) benutzt wird, kann man ein einziges Register als Basis für die Manipulation der Statusdaten der ganzen Aufgabe verwenden. Das Stufenstaturwort kann folgenden Inhalt haben:
in
1. Einen Satz arithmetischer/logischer Ergebnisanzeiger als Ergebnis bestimmter Operationen, die nachfolgend bei Verzweigungsbefehlen zur Entscheidungsfindung benutzt werden.
2. Ein die Existenz des Überwachungszustandes be- r> zeichnendes Bit. Im Überwachungszustand können diejenigen Befehle ausgeführt werden, die die Manipulation von Systemeinheiten gestatten. Wenn das Bit auf Null steht, wird das System als im Problemzustand befindlich betrachtet, und Befehle 4(1 dieser Art werden unterdrückt.
3. Ein »In-Arbeit«-Bit zeigt an, daß die Aufgabe entweder gegenwärtig aktiv ist oder aufgrund einer Unterbrechung höherer Priorität vorübergehend zurückgestellt wurde. Das In-Arbeit-Bit wird für ·*-> Aufgabenumschaltung und Aufgabenabruf benutzt.
4. Ein Protokollbit wird verwendet, wenn eine schaltungsbezogene Protokollierung für die laufende Aufgabe vorgesehen ist.
5. Die System-Summenmaskenbits und andere Unter- 5d brechungssteuerbedingungsbits sind im Stufenstatus enthalten. Andere Funktionen für die Steuerung der Maske in anderen Systemen können natürlich ebenfalls in den Stufenstatus eingeschlossen werden. Der Stufenstatus ist ebensowenig wie die übrigen Felder im Stufenstatusblock auf eine Wortlänge begrenzt.
Wenn Ladebefehle für den Stufenstatusblock ausgeführt werden, so ist ihre Auswirkung auf das System bestimmt durch drei Faktoren:
1. Die aktive (laufende) Ausführungsstufe
2. Die parametrisch beim Laden des Stufenstatusblocks als Zielstufe gewählte (vorgewählte) Stufe
3. Der Zustand des in dem durch die effektive Adresse
des Stufenstatusblock-Ladebefehls bezeichneten Slufenstatusblocks enthaltenen In-Arbeit-Bits
Wenn das In-Arbeit-Bit in dem durch den Stufenstatusblock-Ladebefehl bezeichneten Stufenstatusblock auf Eins steht, hat der Ladebefehl für den Stufenstatusblock folgende Wirkung:
1. Wenn die vorgewählte Stufe eine niedrigere Priorität hat als die aktive Stufe, wird die vorgewählte Stufe in einen Wartezustand gesetzt, und ihr Stufenstatus wird definiert durch denjenigen Stufensta*usblock, der an der effektiven Adresse aus dem Ladebefehl für den Stufenstatusblock stand. Vorausgesetzt, daß keine Prioritätsunterbrechungen auf einer höheren als der vorgewählten Stufen angefordert werden, wird nach Beendigung der Arbeit auf der aktiven Stufe die vorgewählte Stufe aktiviert.
2. Wenn die vorgewählte Stufe die gleiche Priorität hat wie die aktive Stufe, wird die vorgewählte zur aktiven Stufe, und ihr Stufenstatus wird definiert durch den Stufenstatusblock an der durch den Ladebefehl des Stufenstatusblocks angegebenen effektiven Adresse.
3. Wenn die vorgewählte Stufe eine höhere Prioritäi hat als die aktive Stufe, wird die vorgewählte zur aktiven und ihr Stufenstatus wird definiert durch den Stufenstatusblock an der durch den Ladebefehl für den Stufenstatusblock angegebenen effektiven Adresse.
Die Operation I gestattet das Einordnen einer Aufgabe mit niedriger Stufe in die Warteschlange und ihre Ausführung, wenn die wichtigere Aufgabe beendet ist. Die Operation 2 gestattet die Modifikation der aktiven Aufgabe und die Operation 3 eine Unterbrechung zur Bevorzugung der höheren Stufe und ein Aussetzen der alten aktiven Stufe.
Im folgenden Abschnitt werden die Operationen beschrieben, die ablaufen, wenn das In-Arbeit-Bit im Stufenstatusblock (an der durch die effektive Adresse, die im Ladebefehl für den Slufenstatusblock enthalten ist. angegebenen Hauptspeicherstelle) eine Null ist:
1. Wenn vorgewählte Stufe eine niedrigere Priorität hat als die aktive Stufe, wird die vorgewählte Su Ό nicht ausgesetzt. Ihr Stufenstatus ist definiert durch den Stufenstatusblock an der durch den Ladebefehl für den Stufenstatusblock angegebenen effektiven Adresse.
2. Wenn die vorgewählte Stufe gleich der laufenden Stufe ist, wird die Bearbeitung auf der aktiven Stufe beendet, wobei ihr Stufenstatus definiert ist durch den Stufenstatusblock an der durch den Ladebefehl für den Stufenstatusblock angegebenen effektiven Adresse.
3. Wenn die vorgewählte Stufe eine höhere Priorität hat als die aktive Stufe, wird der höhere Stufenstatus definiert durch den Stufenstatusblock an der durch den Ladebefehl für den Stufenstatusblock angegebenen effektiven Adresse.
Der obige Fall 1 gestattet das Aussetzen oder Beenden einer Aufgabe, wobei ihr Status entweder nach Wunsch verändert oder nicht verändert wird. Der obige Fall 2 gestattet dieselbe Operation auf der aktiven Stufe, während der Fall 3 die Einordnung einer Aufgabe auf einer höheren Stufe ermöglicht, ihre Ausführung jedoch nach Wunsch verzögern läßt.
Hierzu 15 Blatt Zeichnungen

Claims (1)

Patentansprüche;
1. Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben auf verschiedenen Prioritätsstiifen, mit einem Prozessor und einem -..Hauptspeicher.utkL: mit den Priöritätsstufen fest zugeordneten Registergruppen zur Aufnahme von den Aufgaben zugeordneten Zustands- und Steuerdaten, gekennzeichnet m durch folgende Merkmale;
DE2718051A 1976-04-30 1977-04-22 Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben Expired DE2718051C3 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/681,953 US4047161A (en) 1976-04-30 1976-04-30 Task management apparatus

Publications (3)

Publication Number Publication Date
DE2718051A1 DE2718051A1 (de) 1977-11-10
DE2718051B2 true DE2718051B2 (de) 1981-04-09
DE2718051C3 DE2718051C3 (de) 1981-11-26

Family

ID=24737563

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2718051A Expired DE2718051C3 (de) 1976-04-30 1977-04-22 Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben

Country Status (13)

Country Link
US (1) US4047161A (de)
JP (1) JPS52133740A (de)
AU (1) AU506941B2 (de)
BE (1) BE852992A (de)
BR (1) BR7702818A (de)
CH (1) CH616013A5 (de)
DE (1) DE2718051C3 (de)
ES (1) ES458323A1 (de)
FR (1) FR2349884A1 (de)
GB (1) GB1557119A (de)
IT (1) IT1115278B (de)
NL (1) NL7704653A (de)
SE (1) SE417552B (de)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4152761A (en) * 1976-07-28 1979-05-01 Intel Corporation Multi-task digital processor employing a priority
US4122519A (en) * 1976-12-14 1978-10-24 Allen-Bradley Company Data handling module for programmable controller
US4342082A (en) * 1977-01-13 1982-07-27 International Business Machines Corp. Program instruction mechanism for shortened recursive handling of interruptions
JPS5429538A (en) * 1977-08-09 1979-03-05 Toshiba Corp Information processing system
JPS5443644A (en) * 1977-09-13 1979-04-06 Fujitsu Ltd Processing system for deadlock automatic release at exclusive control time
US4189771A (en) * 1977-10-11 1980-02-19 International Business Machines Corporation Method and means for the detection of deadlock among waiting tasks in a multiprocessing, multiprogramming CPU environment
US4197589A (en) * 1977-12-05 1980-04-08 Texas Instruments Incorporated Operation sequencing mechanism
DE2754890C2 (de) * 1977-12-09 1982-10-28 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur Programmunterbrechung
US4250546A (en) * 1978-07-31 1981-02-10 Motorola, Inc. Fast interrupt method
US4325120A (en) * 1978-12-21 1982-04-13 Intel Corporation Data processing system
US4319321A (en) * 1979-05-11 1982-03-09 The Boeing Company Transition machine--a general purpose computer
US4286322A (en) * 1979-07-03 1981-08-25 International Business Machines Corporation Task handling apparatus
US4313161A (en) * 1979-11-13 1982-01-26 International Business Machines Corporation Shared storage for multiple processor systems
FR2474200B1 (fr) * 1980-01-22 1986-05-16 Bull Sa Procede et dispositif d'arbitrage des conflits d'acces entre une requete asynchrone et un programme en section critique
JPS56109057A (en) * 1980-02-04 1981-08-29 Hitachi Ltd Data communication system
US4318173A (en) * 1980-02-05 1982-03-02 The Bendix Corporation Scheduler for a multiple computer system
US4333144A (en) * 1980-02-05 1982-06-01 The Bendix Corporation Task communicator for multiple computer system
US4384323A (en) * 1980-02-25 1983-05-17 Bell Telephone Laboratories, Incorporated Store group bus allocation system
US4435758A (en) 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors
US4442484A (en) * 1980-10-14 1984-04-10 Intel Corporation Microprocessor memory management and protection mechanism
FR2500659B1 (fr) * 1981-02-25 1986-02-28 Philips Ind Commerciale Dispositif pour l'allocation dynamique des taches d'un ordinateur multiprocesseur
US4410942A (en) * 1981-03-06 1983-10-18 International Business Machines Corporation Synchronizing buffered peripheral subsystems to host operations
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
US4939640A (en) * 1981-05-22 1990-07-03 Data General Corporation Data processing system having unique microinstruction control and stack means
US4445190A (en) * 1981-06-16 1984-04-24 International Business Machines Corporation Program identification encoding
US4425618A (en) * 1981-11-23 1984-01-10 Bell Telephone Laboratories, Incorporated Method and apparatus for introducing program changes in program-controlled systems
US4709349A (en) * 1982-01-05 1987-11-24 Sharp Kabushiki Kaisha Method for maintaining display/print mode in display printer
US4680698A (en) * 1982-11-26 1987-07-14 Inmos Limited High density ROM in separate isolation well on single with chip
US4901230A (en) * 1983-04-25 1990-02-13 Cray Research, Inc. Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US4661900A (en) * 1983-04-25 1987-04-28 Cray Research, Inc. Flexible chaining in vector processor with selective use of vector registers as operand and result registers
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
GB8329509D0 (en) * 1983-11-04 1983-12-07 Inmos Ltd Computer
US4980820A (en) * 1985-02-28 1990-12-25 International Business Machines Corporation Interrupt driven prioritized queue
US4745545A (en) * 1985-06-28 1988-05-17 Cray Research, Inc. Memory reference control in a multiprocessor
US4754398A (en) * 1985-06-28 1988-06-28 Cray Research, Inc. System for multiprocessor communication using local and common semaphore and information registers
JPH0792782B2 (ja) * 1985-09-30 1995-10-09 富士通株式会社 処理実行システム
US4837688A (en) * 1986-07-25 1989-06-06 International Business Machines Corporation Multi-channel shared resource processor
EP0257655B1 (de) * 1986-08-28 1994-07-06 Nec Corporation Multiaufgabenverarbeitungsgerät
US5764922A (en) * 1986-11-04 1998-06-09 Unisys Corporation I/O system for off-loading operating system functions
JPS63170736A (ja) * 1987-01-09 1988-07-14 Toshiba Corp マイクロプロセツサ
US4805096A (en) * 1987-03-06 1989-02-14 Eta Systems, Inc. Interrupt system
US5012409A (en) * 1988-03-10 1991-04-30 Fletcher Mitchell S Operating system for a multi-tasking operating environment
US5025369A (en) * 1988-08-25 1991-06-18 David Schwartz Enterprises, Inc. Computer system
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5247671A (en) * 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
US5301330A (en) * 1990-10-12 1994-04-05 Advanced Micro Devices, Inc. Contention handling apparatus for generating user busy signal by logically summing wait output of next higher priority user and access requests of higher priority users
JP2561801B2 (ja) * 1993-02-24 1996-12-11 インターナショナル・ビジネス・マシーンズ・コーポレイション プロセス・スケジューリングの管理方法およびシステム
JP2521027B2 (ja) * 1993-08-27 1996-07-31 インターナショナル・ビジネス・マシーンズ・コーポレイション マルチプロセッサ及びその制御方法
US5987601A (en) 1997-02-14 1999-11-16 Xyron Corporation Zero overhead computer interrupts with task switching
US6697935B1 (en) * 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6567839B1 (en) 1997-10-23 2003-05-20 International Business Machines Corporation Thread switch control in a multithreaded processor system
US6212544B1 (en) 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6105051A (en) * 1997-10-23 2000-08-15 International Business Machines Corporation Apparatus and method to guarantee forward progress in execution of threads in a multithreaded processor
GB2361848A (en) * 2000-04-25 2001-10-31 Ibm Error correction for system interconnects
US7093260B1 (en) 2000-05-04 2006-08-15 International Business Machines Corporation Method, system, and program for saving a state of a task and executing the task by a processor in a multiprocessor system
JP2002182927A (ja) * 2000-12-13 2002-06-28 Hitachi Ltd 異種実行環境におけるレジスタの割当て方法、異種実行環境におけるソフトウェア開発方法、および、それを実行するプログラムが組み込まれたlsi
WO2002065287A1 (en) * 2001-02-16 2002-08-22 Sony Corporation Data processing method and its apparatus
US20030014474A1 (en) * 2001-05-30 2003-01-16 Mckaig Ray S. Alternate zero overhead task change circuit
US20040172631A1 (en) * 2001-06-20 2004-09-02 Howard James E Concurrent-multitasking processor
US7178147B2 (en) * 2001-09-21 2007-02-13 International Business Machines Corporation Method, system, and program for allocating processor resources to a first and second types of tasks
US20040226014A1 (en) * 2002-12-31 2004-11-11 Moore Mark Justin System and method for providing balanced thread scheduling
US20050015768A1 (en) * 2002-12-31 2005-01-20 Moore Mark Justin System and method for providing hardware-assisted task scheduling
US7739685B2 (en) * 2005-01-06 2010-06-15 International Business Machines Corporation Decoupling a central processing unit from its tasks
US7996595B2 (en) * 2009-04-14 2011-08-09 Lstar Technologies Llc Interrupt arbitration for multiprocessors
US8321614B2 (en) * 2009-04-24 2012-11-27 Empire Technology Development Llc Dynamic scheduling interrupt controller for multiprocessors
US8260996B2 (en) * 2009-04-24 2012-09-04 Empire Technology Development Llc Interrupt optimization for multiprocessors
DE102009030372A1 (de) 2009-06-25 2010-12-30 Schaeffler Technologies Gmbh & Co. Kg Am Kreuzgelenkzapfen befestigte Lagerbüchsendichtung
US8234431B2 (en) * 2009-10-13 2012-07-31 Empire Technology Development Llc Interrupt masking for multi-core processors
CN112784261B (zh) * 2021-01-04 2023-10-27 北京蓝军网安科技发展有限责任公司 用于程序运行的方法及相应的系统、计算机设备和介质
US11922161B2 (en) 2022-03-07 2024-03-05 Bank Of America Corporation Scheduling a pausable automated process in a computer network
US11792135B2 (en) 2022-03-07 2023-10-17 Bank Of America Corporation Automated process scheduling in a computer network
US20240054073A1 (en) * 2022-08-11 2024-02-15 Arm Limited Circuitry and Method
CN115858018B (zh) * 2023-02-27 2023-05-16 珠海星云智联科技有限公司 一种嵌入式系统的自适应寄存器更新方法、设备及介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568157A (en) * 1963-12-31 1971-03-02 Bell Telephone Labor Inc Program controlled data processing system
US3530438A (en) * 1965-12-13 1970-09-22 Sperry Rand Corp Task control
US3566357A (en) * 1966-07-05 1971-02-23 Rca Corp Multi-processor multi-programed computer system
US3496551A (en) * 1967-07-13 1970-02-17 Ibm Task selection in a multi-processor computing system
US3643227A (en) * 1969-09-15 1972-02-15 Fairchild Camera Instr Co Job flow and multiprocessor operation control system
US3648252A (en) * 1969-11-03 1972-03-07 Honeywell Inc Multiprogrammable, multiprocessor computer system
BE758813A (fr) * 1969-11-28 1971-04-16 Burroughs Corp Structures de programme pour la mise en oeuvre de systemes de traitement d'information, communes a des langages de programme de niveau plus eleve
US3648253A (en) * 1969-12-10 1972-03-07 Ibm Program scheduler for processing systems
US3665415A (en) * 1970-04-29 1972-05-23 Honeywell Inf Systems Data processing system with program interrupt priority apparatus utilizing working store for multiplexing interrupt requests
GB1397438A (en) * 1971-10-27 1975-06-11 Ibm Data processing system
US3916383A (en) * 1973-02-20 1975-10-28 Memorex Corp Multi-processor data processing system
US3825902A (en) * 1973-04-30 1974-07-23 Ibm Interlevel communication in multilevel priority interrupt system
IT986411B (it) * 1973-06-05 1975-01-30 Olivetti E C Spa Sistema per trasferire il control lo delle elaborazioni da un primo livello prioritario ad un secondo livello prioritario
US3916385A (en) * 1973-12-12 1975-10-28 Honeywell Inf Systems Ring checking hardware

Also Published As

Publication number Publication date
FR2349884A1 (fr) 1977-11-25
FR2349884B1 (de) 1980-06-27
AU2474077A (en) 1978-11-09
US4047161A (en) 1977-09-06
JPS52133740A (en) 1977-11-09
NL7704653A (nl) 1977-11-01
AU506941B2 (en) 1980-01-31
DE2718051C3 (de) 1981-11-26
DE2718051A1 (de) 1977-11-10
JPS5441458B2 (de) 1979-12-08
ES458323A1 (es) 1978-03-01
CH616013A5 (de) 1980-02-29
BE852992A (fr) 1977-07-18
SE7704956L (sv) 1977-10-31
IT1115278B (it) 1986-02-03
SE417552B (sv) 1981-03-23
GB1557119A (en) 1979-12-05
BR7702818A (pt) 1978-02-28

Similar Documents

Publication Publication Date Title
DE2718051B2 (de) Datenverarbeitungsanlage mit Einrichtungen zur wechselnden Bearbeitung mehrerer Aufgaben
DE2722099C2 (de)
DE2251876C3 (de) Elektronische Datenverarbeitungsanlage
DE2756762A1 (de) Verfahren und anordnung zum zugriff zu beliebigen bitfeldern im hauptspeicher einer datenverarbeitungsanlage
DE2416609C2 (de) Datenverarbeitungsanlage mit einer zentralen Verarbeitungseinheit und Multiprogrammierung mit mehreren Programmunterbrechungs-Prioritätsstufen
DE3607889C2 (de)
DE68929483T2 (de) Datenprozessor mit einer Befehlseinheit, die einen Cachespeicher und einen ROM aufweist.
DE2411963B2 (de) Datenverarbeitungsanlage
DE3638572C2 (de)
DE2935906C2 (de) Mikroprozessor
DE1524209A1 (de) Leitwerk fuer eine Rechenanlage
DE2459675A1 (de) Datenverarbeitungssystem
DE3610433A1 (de) Speicherprogrammierbares steuergeraet mit funktionsplaninterpreter
DE2714805A1 (de) Datenverarbeitungssystem
DE2424810A1 (de) Datenverarbeitungsanlage, insbesondere kleine mikroprogramm-datenverarbeitungsanlage mit mehrsilbenmikrobefehlen
DE4305851A1 (en) Data transfer system between memory and central processing unit - uses direct memory access transfer control having bus information control stage to provide time priority access control of operations
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE2543522A1 (de) Einrichtung in einem mikroprogramm- prozessor mit mehreren ebenen von unterbefehlsgruppen zur bedienung von peripherie-geraeten auf vorrang-basis
DE2721623A1 (de) System zur bearbeitung eines zielsystemprogrammes
DE2617127A1 (de) Mehrfachprogramm-datenverarbeitungssystem
CH635451A5 (de) Anordnung zum wechsel zwischen verzahnt zu verarbeitenden programmen in einer datenverarbeitungsanlage.
DE4009804A1 (de) Programmierbarer prozessrechner mit einem funktionsblockprozessor und einem bit-prozessor
DE2702722A1 (de) Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen
DE2845218C2 (de) Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchführen von Ein-/Ausgabeoperationen
DE4010895C2 (de) Mikroprozessor mit Befehlsdecodiereinrichtung

Legal Events

Date Code Title Description
C3 Grant after two publication steps (3rd publication)
8339 Ceased/non-payment of the annual fee