DE2449547A1 - Computer- und datenverarbeitungsanlage - Google Patents
Computer- und datenverarbeitungsanlageInfo
- Publication number
- DE2449547A1 DE2449547A1 DE19742449547 DE2449547A DE2449547A1 DE 2449547 A1 DE2449547 A1 DE 2449547A1 DE 19742449547 DE19742449547 DE 19742449547 DE 2449547 A DE2449547 A DE 2449547A DE 2449547 A1 DE2449547 A1 DE 2449547A1
- Authority
- DE
- Germany
- Prior art keywords
- task
- signal
- table entry
- instruction
- address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Memory System (AREA)
Description
sz D-8000 IiDIfCHEII 90 ηι mgnchen wsan
Data Ooipoiraifciaaa, Z449547
1 7, £>χ «σ
"Coaputer- und Datenverarbeitungsanlage*
Die Erfinduns betrifft Ctaiputer- und DatenwerarbeitungiBanla-gen. Speziell betrifft die Erfindung eine Tielfaebverarbeitiungsauolage, bei welcher eine Vielzahl von Zentraleinheiten
einen eeaaeinsaaen Speicher teilen bnr. seaeinsaai benutzen,
wobei die Betriebsarten der Einheiten in bestianter Heise
aufeinander bezogen sind.
Es gibt bereits eine Reibe von Patentschriften, genSA welchen eine Vielzahl von Zentraleinheiten zur Anwendung gelangen.
Der einschlagigste Stand der Technik ist in der US-Patentschrift Kr. 3 3^8 210 (Ochsner) erläutert. Xn dieser Patentschrift ist ein Coasputersystesi beschrieben, bei welche« jede
verarbeitende Einheit Prograwae eines Speichers Mit nicht veränderbare« Prograaai ausfuhrt. Dies gilt auch
509830/0614
für deren Aufgaben-ZwordimiigsprograffliB. Aufgrund dieser gemein—
samen Benutzung des Speichers schließt eine Anweisungsbezugsnabme durch einen Prozessor irgendeine Bezugsnahme durch einen
anderen so lange aus, bis die Bezugsnahme vervollständigt ist.
Damit wird es schwierig, auf wirtschaftliche Veise die Arbeitsgeschwindigkeit des Computerspeichers an die Arbeitsgeschwindigkeit des Prozessors anzupassen. Eine Abweichung von der optimalen Zahl von Prozessoren fuhrt entweder dazu, daß Speicher—
BezugsgröBen-Mckstande auftreten oder daS der Speicher auf
einer Heineren als der maximalen Geschwindigkeit arbeitet. Es
ist daher keine große Hexibilitat des Systems bzw. der Auslegung desselben möglich.
Sin weiteres bekanntes System, bei welchem eine fielzahl von Prozessoreinheiten bzw. Zentraleinheiten zur Anwendung; gelangen, ist in dem US-Patent 3 3%9 375 beschrieben. Bei diesem
System ist der Speicher in mehrere Moduls aufgeteilt, vonde—
nen jeder irgendeinem Prozessor zuganglich ist, der von einem ausgewählten Modul Baten empfangen oder Instruktionen ausfuhren soll. Meses System ist in gewisser Meise analog; dem vorangegangen beschriebenen System, ist jedoch mit der zusätzlichen EleaäbiUtät mehrerer Speicher unterschieden, von denen
irgendeiner einer verarbeitenden Einheit bei Bedarf zur ¥er— fügung steht. Ein drittes System ist in der US-Patentschrift
3 350 689 beschrieben, die im wesentlichen unabhängige und ■in einer synchronen Meise aneinand,er@eschaltete Computer betrifft, vm IQatenübertragungen zwischen irgendeinem Paar von
verschiedenen Computern zu ermöglichen.
Dieses gesamte Gebiet ist mehr im einzelnen in der literatur—
stelle "Parallelism in Hardware and Softwares Meal and
Apparent Concurrency* von Baroid Xiorin, cpyrt. 1972 Prentice-Hall erläutert.
509830/0614
Eine sehr große Zahl von Datenverarbeitungs-Operationen ist durch die Notwendigkeit, gekennzeichnet, eine Vielzahl von.
kleinen bis zu einem mittleren Umfang reichenden Rechenaufgaben auszuführen. Oftmals fordern diese Aufgaben eine sehr
große Menge von schnell verfügbaren Daten, jedoch einen relativ
kleinen Aufwand der Verarbeitung und Rechnung. In anderen 3?ällen sind diese Rechenaufgaben in einem Schema untereinander bezogen, welches normalerweise nicht vorhersagbar
ist. Wenn eine große Anzahl dieser Aufgaben ansteht, kann die
Berechnung verzögert werden, ob nun ein einzelner groß skalierter oder klein skalierter Prozessor zur Anwendung gelangt,
während die benötigten Programme für die Ausführung abgerufen werden. Mir diese Betriebsarten lassen sich die Kosten
merklich dadurch reduzieren, daß man die Computervorrichtrungen nach dem architektonischen Plan aufbaut, der einen 3IPeIl
der vorliegenden Erfindung darstellt. Die Durchführung geder
Aufgabe erfolgt in einem (oder begreiflicherweise mehreren) einer Vielzahl von Prozessoren. Jeder dieser Prozessoren bzw.
Zentraleinheiten besteht im wesentlichen aus einem unabhängigen
Computer mit einem arithmetischen Abschnitt, einem Steuer— abschnitt, einem Instruktionen-Indexabschnitt oder Zähler und
einem örtlichen Speicher, in welchem jede Aufgabe, die ausgeführt
wird, und die dieser Aufgabe zugeordneten Daten gespeichert sind. Die Prozessoren brauchen nicht identisch aufgebaut
sein. Ss kann häufig vorteilhaft sein, bei einer speziellen Anordnung Prozessoren zu verwenden, die merklieh hinsichtlich
ihrer Arbeitsgeschwindigkeit, ihrem Instruktionen-Repertoire, peripherer Einheiten, die an diese angeschlossen
sind, und der Größe des örtlichen Speichers voneinander abweichen. Normalerweise ist jedoch ein großer Prozentsatz der
Aufgaben, die von dem System bewältigt werden, durch irgendeinen von mehreren der Prozessoren ausführbar.
509830/0614
Die Prozessoren stehen alle mit einem Hauptspeicher in Verbindung,
in welchem Daten und Programminstruktionen, d.h.
Aufgaben vom örtlichen Speicher Jedes Prozessors eingegeben werden und von welchem Daten von Jedem örtlichen Speicher
empfangen werden können« Diese Datenübertragungen, die einen bestimmten örtlichen Speicher erforderlich machen, stehen
unter der alleinigen Steuerung des verwendeten Prozessors.
Die Aufgaben und die diesen zugeordneten Daten werden in das
System eingegeben, und die Ergebnisse der Verarbeitung v/erden für den Benutzer durch einen oder mehrere der Prozessoren
verfügbar gemacht, die mit den peripheren Vorrichtungen in Verbindung stehen bzw» diese steuern. Die Gesamtleitung der
Systemeingabe und -ausgabe wird durch Programme gesteuert, die in bevorzugter Weise wie irgendeine Aufgabe behandelt
werden und durch die tätigen Prozessoren ausgeführt werden. Die Aufgabenliste, die in dem Hauptspeicher enthalten ist
oder in einem getrennten für einen schnellen Zugriff geeigneten Speicher, die für Jeden Prozessor verfügbar ist, identifiziert
die auszuführenden Aufgaben, den Aufgabenzustand
bzw. Lage und weitere Parameter der Aufgaben-Zwischenabhän-
Die Steuerung Jedes Prozessors erfolgt durch ein Ausführungsprogramm (Exec), welches wenigstens zum Teil in dem Speicher
Jedes Prozessors gespeichert ist. Wenn ein Prozessor die laufende Aufgabe beendet hat oder mit der Durchführung aus irgendeinem
Grund anhält, so wird eine Steuergröße zu dessen Exec übertragen, welche die Aufgabenliste für eine nicht
beendete Aufgabe sucht, die von dem betreffenden Prozessor durchgeführt werden kann. Allgemein müssen mehrere Kriterien
geprüft werden und zufriedengestellt werden, bevor eine Aufgabe von der Prozessoreinheit durchgeführt wird. Erstens
50983 0/0614
muß "festgestellt werden, daß die Prozessoreinheit die Aufgabe
durchführen kann. Wenn z.B. die Aufgabe mathematische Gleitkomma-Fähigkeiten erfordert und der Prozessor nur Fest-.
komma-Arithmetik ausführen kann, so wird diese Aufgabe von dem Prozessor nicht ausgewählt. Wenn bei einer bestimmten
Aufgabe eine Ausgangsgröße für eine bestimmte periphere Vorrichtung erzeugt wird, die durch den Prozessor nicht zugänglich
ist, so wird diese Aufgabe aus diesem Grund abgewiesen. Wenn eine durchführbare Aufgabe erfaßt wird, so veranlaßt
der leer laufende Prozessor, daß die Instruktionen und Datensätze, die für die Ausführung erforderlich sind, in seinen
örtlichen Speicher übertragen werden. Die Ausführung der Instruktion beginnt am Routine-Eintrittspunkt, der durch die
Aufgabenliste spezifiziert werden kann oder eine Standardadresse sein kann. Um Konflikte zu verhindern, die durch
zwei oder mehrere verarbeitende Einheiten verursacht werden können, die eine Aufgabe zur Durchführung auswählen, ist in
der Aufgabenliste ein Fehlerkennzeichen für jede Aufgabe vorgesehen, welches von dem ersten zugreifenden Prozessor
eingestellt wird, wobei angezeigt wird, daß sich die Aufgabe in Ausführung befindet. Um auch noch weiterhin Konflikte zu
verhindern, ist ein Verriegelungs-Flip-Flop vorgesehen, der es nur einem Prozessor zu einem Zeitpunkt ermöglicht, die
Daten in der Aufgabenliste zu ändern. Nach Beendigung der Prüfung der Aufgabenliste durch eine gegebene verarbeitende
Einheit wird der Verriegelungs-Flip-Flop geleert, um einen Zugriff zur Aufgabenliste durch irgendeinen Prozessor zu ermöglichen,
dessen Exec-Programm dies fordert.
Es ist möglich, eine Priorität für jede Aufgabe in der Aufgabenliste aufrechtzuerhalten. Auf diese Weise kann der Prozessor
den Auswählkonflikt auflösen, wenn verschiedene Aufgaben in gleicher Weise geeignet sind, unmittelbar durchgeführt
zu werden.
509830/061U
Es ist Ziel der vorliegenden Erfindung, die Möglichkeit einer gleichzeitigen Ausführung verschiedener Rechenaufgaben zu verwirklichen.
Es ist auch Ziel der Erfindung, eine Einrichtung für gepufferte Datenübertragungen zwischen den Prozessoren zu schaffen.
Auch ist es Aufgabe der Erfindung, jede aus einer Vielzahl von Rechenaufgaben einem von einer Vielzahl von Prozessoren
automatisch zuzuteilen, der die erforderlichen Eigenschaften besitzt oder der bestmöglich die Aufgabe durchführen kann.
Im folgenden wird die Erfindung an Hand von Ausführungsbeispielen unter Hinweis auf die Zeichnung näher erläutert.
Fig. 1 zeigt die Hauptelemente des Computersystems in Blockschaltform.
Verbindungsleitungen kennzeichnen die Hauptdatenflußpfade.
Bei dem gezeigten System werden Rechnungen durch acht bestimmte Prozessoren 121-128 durchgeführt. Der Prozessor
121 ist ein Computer für einen speziellen Zweck und wird für Halteaufgaben verwendet und für den gesamten Systembetrieb
und kann daher auch als Instandhaltungs-Steuereinheit (MCU) bezeichnet werden. Die Prozessoren 2 bis 8, 122-128, führen
die Produktrechnungen aus und die normalen organisatorischen Operationen wie beispielsweise die ProzessorZuordnung und die
Eingabe-Ausgabe-Operationen. Jeder Prozessor besteht aus einem digitalen Computer mit gewöhnlich kleinem Bereich (scale) mit
sowohl Speicher- als auch Programmausführ-Eigenschaften. Die
Daten werden über periphere Vorrichtungen 103a, 103b, 103c und weitere Vorrichtungen, wie diese für die erwarteten gemischten
Rechenaufgaben wünschenswert sind, in das System eingelesen und ausgelesen. Typische periphere Vorrichtungen
enthalten Kartenleser und Locher, Schreibmaschinen, Magnet-
- 7 -50 9 8 30/0614
bänder, Magnetscheiben und Kathodenstrahlröhren oder andere
anzeigende oder darstellende Einheiten. Zusätzlich können bestimmte periphere Vorrichtungen, die als externe Speichereinheiten
arbeiten, gewählt werden. Typisch sind Magnetscheiben
und Magnet trommeln.. Jede periphere Vorrichtung ist an einen
oder an mehreren Prozessoren über einen standardisierten Viel· fach-Bit-Datenpfad angeschlossen, der die Fähigkeit besitzt,
viele Bits gleichzeitig zu übertragen.
Jeder Prozessor 121-128 ist über Zweiweg-Datenpfade mit der Speicher-Zugriffseinheit 102 verbunden, wobei diese Pfade
allgemein als Kanäle 111-118 bezeichnet sind. Die Speicherzugriff seinheit (SAU) 102 führt die Pufferung der Datenüber-r '
tragungen zwischen den Prozessoren 121-128 und einem erweiterten Kernspeicher (ECS) 100 durch. Die Speicherzugriffseinheit
SAU 102 steht mit der ECS-Kopplungselektronik 100c über Leitungen 100a und 100b in Verbindung. Da allgemein
ECS 100 Daten für eine Vielzahl von Prozessoren 121-128 vorsieht bzw. zuführt, ist es erforderlich, daß diese eine bedeutend
größere Übertragungsgeschwindigkeit aufweist als irgendein einzelner Prozessor. Dies wird bei dem beschriebenen
Ausführungsbeispiel dadurch erreicht, daß man ECS 100 so auslegt, um Daten in Form von 480 Bit-Worten in ca. 3,2 Mikrosekunden-Intervallen
übertragen zu können. Andererseits überträgt jeder Prozessor· 121-128 Daten auf den Kanälen 111-118
in 12 Bit-Bytes alle 0,3 MikroSekunden. SAU.102 enthält Pufferregister,
welche die 480 Bit ECS Worte in die 12 Bit Prozessor-Bytes anordnen und zerlegen.
Ein Abschnitt von ECS 100 enthält den Hauptspeicher 100a.
Ein Abschnitt des Hauptspeichers 100a ist für die Aufgabenliste 100b reserviert, und dieser Bereich wird allgemein
als physikalischer Bereich bezeichnet, der die Aufgabenliste
- 8 509830/06U
ßÄD ORIGINAL
-β- · 24495Α7
enthält, obwohl die Aufgabenliste selbst lediglich aus Daten-Tabellen
besteht, die die Zuteilung bzw. Aufteilung der rechenmäßigen Forderungen steuern.
Die Aufgabenliste soll mehr im einzelnen an späterer Stelle beschrieben werden. Es ist hier ausreichend festzustellen,
daß eine Aufgabe aus dem kleinsten diskreten Datenverarbeitungsprogramm
besteht, welches von irgendeinem der Prozessoren 121-128 ausgeführt werden kann. Jede Aufgabe besitzt eine
Aufgabenliste-Eingangsstelle (entry), welche dieser zugeordnet ist und eine Information enthält, welche die Zuweisung
einer bestimmten Aufgabe zu einem der Prozessoren 121-128 steuert.
J1Xg. 2 zeigt einen Großbereichs-Prozessor in Form eines Blockschaltbildes.
Jeder Prozessor enthält einen örtlichen Speicher 200, der seinerseits eine Betriebsspeicherzone 200b, eine
Residenz- und Exec-Speicherzone 200a und eine Eingangsadresse 200c enthält. Die Datenübertragungen zu und von diesen drei
Zonen erfolgen über die Datenkopplungselektronik 20Od. Eine Gesamtsteuerung des Prozessorbetriebes wird durch die Steuereinheit
203 aufrechterhalten, die mit dem örtlichen Speicher 200 über die Eingangs-Datenleitung 214a und die Ausgangsdatenleitung
214b in Verbindung steht. Es sei hervorgehoben, daß die Steuereinheit 203 die verschiedenen Steuersignale implizit
in der Beschreibung des Betriebes allen den verschiedenen Elementen des Prozessors zuführt. (Wenn nicht in anderer Weise
hervorgehoben ist, daß die Flußlinien den Datenfluß angeben.) Die arithmetische Einheit 206 führt unter der Steuerung der
Steuereinheit 203 die erforderlichen arithmetischen Berechnungen durch, und zwar mit Hilfe von Operanden, welche sie
auf der Eingangs-Datenleitung 207b empfängt. Ergebnisse der Berechnung werden über die Ausgangsleitung 207a zur Steuer-
— 9 — 509830/06U
einheit 203 zurückgeleitet. Der Instruktionenzähler 205 besteht
aus einem Register, welches die Adresse jeder Instruktion enthält und welches unter dem Steuereinfluß der Steuereinheit
203 auf den neuesten Stand gebracht wird. Normalerweise nehmen die Inhalte des Instruktionenzählers 205 um die
Einheit zu, und zwar nach der Ausführung jeder Instruktion. Wenn eine Sprung(Verzweigungs)instruktion ausgeführt wird,
wird von der Steuereinheit 203 über den Datenpfad 213 eine neue Adresse gesendet, um den Instruktionenzähler 205 auf die
Adresse der neuen Instruktion zurück- bzw. einzustellen. Das Adressenregister 204 enthält die Adresse jeder Speicherbezugsgröße
für den Speicher 200 durch die Steuereinheit 203. Diese Adresse ist für die Daten-Kopplungselektronik 20Od auf der Leitung
218 fortwährend verfügbar. Wenn das aus dem Speicher auszulesende Signal als eine Instruktion verwendet wird, so
bewirkt die Steuereinheit 203, daß die vom Adressenregister 204- empfangene Adresse vom Instruktionenzähler 205 über die
Adressenleitung 215 übertragen wird. Wenn das zum oder vom Speicher 200 zu übertragende Wort keine Instruktion ist, sondern
aus Daten besteht oder aus einem Instruktions-Operand, so schickt die Steuereinheit 203 ihre Adresse über die Adressenleitung
209 zum Adressenregister 204.
Der Speicher 200 steht auch mit SAU 102 und mit der wahlperipheren
Vorrichtung 103a in-Verbindung. Der Einfachheit
halber erfolgt die Verbindung zwischen dem Speicher 200 und SAU 102 in bevorzugter Weise über einen zugeeigneten I/O
Kanal 201a am Datenausgangsglied 216a und Dateneingangsglied 216b. Bei dem gezeigten Ausführungsbeispiel bestehen .
die Datenglieder 216a und 216b jeweils aus zwölf einzelnen Bitleitungen, wodurch eine parallele Übertragung von zwölf Bits'
zu und von SAU 102 ermöglicht wird. Das Datenglied 216a schickt Datenübertragungs-Steuersignale zu SAU 102, und zwar
- 10 509830/06U
durch einen Prozeß, gemäß welchem durch Schlußfolgerung bestimmte
Datenübertragungen spezifiziert werden, und zwar tatsächlich Steuersignale. Nachdem der Kanal durch die Ausführung
der richtigen Instruktion haupt-entleert wurde oder nach
einer Prozessor-Hauptleerung, nimmt SAU 102 die ersten drei 12-Bit-Worte an, die auf dem Datenglied 216a als Datenübertragungs-Steuersignale
übertragen wurden. Dann werden drei Worte, die auf jede erfolgreich beendete Datenübertragung
folgen, als Datenübertragungs-Steuersignal aufgefaßt bzw. behandelt. Das Format der drei Steuerworte ist in Fig. 2b
gezeigt und soll in Verbindung mit der detaillierten Beschreibung von SAU 102 an späterer Stelle beschrieben werden.
Nach der Vervollständigung der Datenübertragung zwischen EGS 100 und den Prozessoren kehren die Datenglieder 216a und 216b
in ihren entleerten oder Bereitschafts-Zustand zurück und stehen für eine weitere derartige Datenübertragung zur Verfügung.
Die allgemein mit 216 bezeichneten Leitungen führen ähnliche Funktionen für die anderen Prozessoren aus.
Die Peripher-Vorrichtungs-I/O-Kanäle 201b sorgen für die nötige
Pufferung, Wert- oder Pegeländerungen und weitere Interface-Operationen zwischen der Datenkopplungselektronik 20Od
und den wahl-peripheren Vorrichtungen 103a, die als einzelner Block gezeigt sind. Die peripheren I/0-Kanäle 201b übertragen
Daten zwischen sich selbst und der Daten-Kopplungselektronik 20Od auf dem Datenausgangsglied 210a und dem Dateneingangsglied
210b. Die peripheren I/0-Kanäle 201b stehen mit den peripheren Vorrichtungen 105a über eine Vielzahl von Datenausgangsgliedern
211b und Dateneingangsgliedern 211a in Verbindung, von denen jeweils nur eines gezeigt ist. Ein Satz
von einem Ausgangs- und einem Eingangsdatenglied ist für jeden einzelnen I/0-Kanal vorgesehen. Für die Prozessoren
121-128 ist eine gesamte Anzahl von acht I/O-Kanälen für jede
- 11 509830/06U
-11- 24^9547
der wirklichen Ausführungsform vorgesehen. Einer ist für die Kommunikation mit SAU.102 zugeeignet,und die verbleibenden
sieben stehen für die Verwendung mit peripheren Vorrichtungen 103a zur Verfügung. Diese Anordnung schafft somit eine
sehr große Zahl von I/O-Referenzen, die durch eine große
Zahl von peripheren Vorrichtungen 103a erzeugt werden.
Die arithmetische Einheit 206 und die Steuereinheit 203 kann als herkömmlich in jedem Sinn des Wortes betrachtet werden.
Eine breite Vielzahl von Auslegungswünschen und alternativen Ausführungsformen sind in Relation zu beispielsweise dem Instruktions-Repertoire,
spezielle logische Datenmanipulationen, Gleitkomma-Arithmetik und allgemein jegliche diverse
Gomputerausführung, die das Wissen von Anfang an kennzeichnet, steht zur Verfügung.
Für den Instandhaltungsprozessor (MCU) 121 weist die Steuereinheit
203 eine Funktion auf, die nicht in den verbleibenden Prozessoren vorhanden ist. Bei bestimmten Bedingungen
kann es sein, daß ein Prozessor 122-128 "hängt" und nicht mehr in der richtigen Weise weiterrechnen kann. Meistens
geschieht dies auf Grund einer falschen Programmierung. Seltener kann dies auf Grund eines intermittierend auftretenden
oder eines isolierten elektronischen Fehlers auftreten. In solchen Situationen gibt MCU 203 ein Neustartsignal
208 zu dem richtigen Prozessor 122-128 ab. Das Neustartsignal 208 wird von dem Instruktionenzähler 205 des betreffenden
Prozessors aufgenommen, wodurch bewirkt wird, daß eine vorbestimmte Adresse des Speichers 200 die nächste Instruktion
wird, die durchgeführt werden soll. Die Ausführung'dieser
Instruktion initialisiert ein vorbelastetes Restitutionsprogramm, durch welches das Problem gelöst wird, indem eine
geeignete Fehleranzeige am eventuellen Ausgang des Programms
- 12 509830/06U
vorgesehen wird, welches sich in der Durchführung befindet, oder indem ein Instandhaltungsprogramm durchgeführt wird, um
irgendeinen herrschenden elektronischen Fehler zu ermitteln. Das Restitutionsprogramm kann ein Teil der Eesidentzone 200a
sein, oder kann in die Betriebszone 200b eingeladen,sein, und
zwar unter Steuerung der Eesidentzone 200a.
Unter Hinweis auf Hg. 2a sollen im folgenden die Haupt-Untersysteme
von SAU 102, welches in dieser Figur gezeigt ist, erläutert
werden. Die Prozessor-Interface 102d führt die normalen Interface—Operationen, die erforderlich sind, durch, wobei
eine Mehrfachausnützung der verschiedenen Eingangs- und Ausgangsleitungen von den Prozessoren 121-128, Pegel- oder
Wertänderung und die fächerförmige Ausbreitung der Eingangsdaten
zu den Puffer-Eegistern und zugeordneten Steuereinheit 102a eingeschlossen sind. Die ECS-Interface 102b überträgt
Daten zwischen den Pufferstufen und ECS 100. Die Stufe SAU kann besser unter Hinweis auf die Fig. 3a und 3b verstanden
werden.
Gemäß Fig. 3a überträgt der zugeeignete Prozessor-I/O-Kanal
201a Daten zu den SAU 102 Eingangsgattern, die als Prozessor 1-8-Fächer^uia-h am Datengiied 216a bezeichnet sind. Die
ersten drei Worte, die von irgendeinem der Prozessor EGS 1/0-Kanäle
201a zu dem betreffenden Prozessor-Fächer 301a-h übertragen
werden, nachdem eine vorangegangene SAU 102 Funktion, bei welcher dieser Prozessor beteiligt war, beendet ist oder
nach einer Prozessor-Hauptentleerung, werden als eine Datenübertragungssteuergröße
oder anderes Befehlssignal betrachtet. Es seien zunächst die ersten Datenübertragungsoperationen betrachtet.
Das Format der drei Steuerworte ist in Fig. 2b durch die Worte 1-3, 220-222 veranschaulicht. Das Funktionsfeld 220b, das Bit 9 des Wortes 1, 220 zeigt eine Datenüber-
- 13 509830/0614
tragung von einem Prozessor 1-8, 121-128 nach ECS 100 an, d.h. eine Aufzeichnung, wenn dieses auf 1 gestellt ist. Wenn diese
auf 0 gestellt ist, so zeigt sie die Wiederfindung der in EGS 100 aufgezeichneten Daten an. Der Zeilenzählschritt -1,
EeId 220c, die Bits 8 bis 3 des Wortes 1, 220 spezifizieren
die Zahl von 480 Bit-ECS 100-Zeilen (40 Prozessorworte), die
zu übertragen sind, in Ausdrücken von 1, die weniger als die tatsächliche Zahl der zu sendenden Zeilen sind. Um also eine
Zeile zu senden, muß die Zeilenzählung -1, Feld 220c gleich sein. Das Wort 2, 221 und das Wort 3, 222 enthalten die Startadresse
von ECS 100, welches in die Aufzeichnungs- oder Wiederfindungsoperation
verwickelt ist. Jedes ECS 100-Adressenwort ist 24 Bits lang. Die Bits 8 bis 0 des Wortes 2, 221 bestehen
aus den oberen 9 Bits und alle Bits des Wortes 3, 222, plus 3 binäre Nullen niedriger Ordnung machen die niedrigeren 15
Bits aus. Das Feld 221a muß 0 sein.
Für die Erläuterung der Aufzeichnungs- und Wiederfindungs-"
operationen, bei denen ECS 100 verwickelt ist, wird der Puffer 0, 300a, von SAU 102 in dem Beispiel einer typischen Operation
verwendet. Die Puffer 1 und 2, 300b und 300c sind mit dem Puffer 0 identisch, so daß die den Puffer 0 betreffenden
Erläuterungen auch in gleicher Weise für die Puffer 1 und 2 zutreffen.
Bei der Aufzeichnungsoperation (.d.h. der Übertragung von Daten
von einem Prozessor 1-8, 121-128 zu ECS 100) werden die drei 12 Bit-Datenübertragungssteuerworte von einem der Pro- " ·
zessor ECS I/0-Kanäle 201a,beispielsweise dem vom Prozessor
8, 128 der Reihe nach bzw. aufeinanderfolgend dem zugeordneten
Fächer^301h am Datenausgangsglied 216a angeboten. Zusammen
mit jedem der 12 Bits wird ein Wortsignal zum Fächer 301h (fan-out) übertragen, wodurch das Vorhandensein des Wortes am
- 14 +) (Pan)
509830/0614
Glied 216a signalisiert wird. Der Fächer 301h legt das Wort auf seine eigenen Ausgangsleitungen 310h, 311h und 312h ab,
so daß es von dem 8 bis 5 Dateneingabe/Ausgabefächer 313a und dementsprechend zu den 8 bis 5 Dateneingabe/Ausgabefächeranordnungen
in den Pufferstufen 1, 300b und dem Puffer 2,
300c empfangen wird. Die Prozessor- und Pufferauswählsteuereinheit 330 (I"ig. 3b) setzt den 8 bis 5 Dateneingabe/Ausgabefächer
313a in Bereitschaft (da angenommen wurde, daß der Puffer 0, 300a leer läuft), um die Worte auf der Leitung
310h entsprechend zu der Anfrage auf der Leitung 334-a anzunehmen.
Diese ersten drei Worte werden zur ECS-Punktions- und Adressensteuereinheit 314-a übertragen. Die Inhalte des
Zeilenzählschritts -1 Feld 220c (line count -1 field 220c)
werden zum Lese/Schreib-Indexregister 333a gesendet.
Die Prozessor- und Pufferauswählsteuereinheit 330 hält Spur, ob die einzelnen Puffer 300a-c beschäftigt sind oder leer
laufen, indem diese Einheit aktive Signale 330a—c jeweils von diesen empfängt, und setzt die 8 bis 5 Eingangs/Ausgangsfächeranordnung
eines leer laufenden Puffers 300a—c in Bereitschaft, wenn durch diese ein aktives Eingangssignal 334-a-h
empfangen wird. Die aktiven Eingangs signale 334-a-h werden
durch das erste Wortsignal erzeugt, welches von einem leer laufenden Prozessor-Ausgangsfächer 301a-h empfangen wird.
Obwohl es nicht während der Datenaufzeichnung von Bedeutung ist, ist es wichtig festzustellen, daß der Ursprung der aktiven
Eingangssignale 334a-h durch den Prozessor-Ausgangsfächer 301a-h bestimmt wird und dadurch der herangezogene
Prozessor 121-128 identifiziert wird.
Bis zu dieser Stelle ist die Betriebsweise von sowohl der Aufzeichnung der Daten und der Abrufung der Daten in bzw.
aus dem ECS 100 identisch. Wenn nun die Aufzeichnung durch
509830/06U
das Funktionsfeld 220b.spezifiziert ist, folgen auf die drei
Datenübertragungs-Steuerworte eine Vielzahl von 40 Prozessor-Worten,
die durch den Prozessor 128 dem Ausgangsfächer 501h
zugeführt werden. Dies kann unter einer Programmsteuerung stattfinden oder kann durch Bausteine (hardware) erfolgen.
Der 8 bis 5 Eingangs/Ausgangsfächer 313a empfängt jedes
12 Bit-Wort vom Ausgangsfächer 301h, der die Daten vom Prozessor 128 empfängt, und gibt diese 12 Bits auf seine Ausgangsleitungen
324- a-e ab, damit sie von der Puffer 0 Registerbank 325a angenommen werden. Die Puffer 0 Registerbank 325a
enthält 60 Bit-Worte ΐ bis 8, 341a-348a, mit dem Wort 1, 341a, die jeden. Ausgang 324a-e vom 8 bis 5 Eingangs/Ausgangsfächer 313a
empfängt.
Die Sehreibanordnungs-Steuereinheit 316a setzt aufeinanderfolgend jedes 12 Bit Byte des Wortes 1, 341a in Bereitschaft,
um das 12 Bit Byte vom aktiven Prozessor-Ausgangsfächer 301h anzunehmen bzw. gelten zu lassen. Wenn fünf 12 Bit Bytes von
dem Wort 1, 341a empfangen wurden, dann wurde ein 60 Bit EOS 100 Wort angeordnet. Die Vollentleerungs-Steuereinheit 318a
bewirkt, daß die Inhalte des Wortes 7, 347a zum Wort 8r 348a
übertragen werden und daß das Wort 6, 346a zum Wort 7» 347a
übertragen wird usw., bis das Wort 1, 341a zum Wort 2? 342a
übertragen wurde. Wenn acht 60 Bit-Worte (vierzig 12 Bit-Übertragungen vom Prozessor 8 Ausgangsfächer 301h) empfangen
wurden, dann stoppt die Vollentleerungs-Steuereinheit 318a eine weitere Übertragung von Daten zur Puffer 0 Registerbank
325a vom 8 bis 5 Eingangs/Ausgangsfächer 315a und signalisiert
den aktiven Prozessor ECS I/O Kanal 201a. An dieser Stelle überträgt die ECS Funktions- und Adressensteuereinheit
314a die ECS Adresse von dem zweiten und dritten Funktionswort
221 und 222 auf der Funktions- und Adressenleitung 332a zu SGS 100, und zwar zusammen mit dem Funktionsbit 220b.
- 16 509830/0614
Wenn EOS 100 bereit ist, sendet es ein Annahmesignal (auf
einer Leitung des Paares der Leitungen 418a, b oder c) zu der Sende-Datensteuereinheit 315a» b oder c, die in den Prozeß
verwickelt ist. Die Inhalte der Puffer O Registerbank 325a wird tormäßig gesteuert und wird über die Sende-Datensteuereinheit
315a mit 60 Bits zu einem Zeitpunkt zu ECS
übertragen, der in Einklang mit einem vorbestimmten Zeitsteuer-Plan
auf der 60 Bit-Leitung 402a für den Puffer 0 steht und wird ebenso auf der Leitung 402b und 402c für die
Puffer 1 und 2 übertragen, bis acht 60 Bit-Worte oder 480 Bits zu ECS 100 gesendet wurden. Das Lese/Schreib-Indexregister
333a wird nach jeweils einer 480 Bit-Übertragung getestet, und wenn sich dabei 0 ergibt, wird die ECS-iunktions-
und Adressensteuereinheit 314a in Bereitschaft gesetzt bzw. signalisiert, um alle weiteren Eingänge zum 8 bis 5 Eingangs/
Ausgangsfächer 313a außer Bereitschaft zu setzen. Wenn das
Ergebnis nicht 0 ergibt, wird das Lese/Schreib—Indexregister
333a um 1 herabgeschaltet bzw. schrittweise vermindert.
Die Eingangsgröße zum Prozessor ECS I/O Kanal 201a von ECS
100 (Datenwiederfindung) wird erneut durch SAU 102 behandelt und es wird eine Annäherung zum Inversen der Datenaufzeichnung
durchgeführt, die in den vorangegangenen Abschnitten beschrieben wurde. Eine Wiederfindungsoperation startet mit
der Sendung der Funktionsworte 1-3» 220, 221 und 222 zu SAU 102. Eine Wiederfindungsoperation findet statt, wenn
das Funktionsfeld 220b gleich 0 ist. Die drei Funktionsworte gelangen über einen geeigneten Prozessor-Ausgangsfächer
301a-h in SAU 102 und werden erneut zum ECS Funktions- und
Adressensystem 314a im Puffer 0, 300a oder in das entsprechende Untersystem im Puffer 1, 300b oder Puffer 2, 300c
übertragen. Die Prozessor- und Pufferauswählsteuereinheit 330 setzt erneut einen Puffer 300a in Bereitschaft. Das ECS
Funktions- und Adressenuntersystem 314a sendet die 24 Bit
- 17 509830/0614
EGS Adresse plus die Funktion über die Adressenleitung 332a zu ECS 100. Das ECS Lese-Steueruntersystem 31?a empfängt das
Annahme signal 418a, welches in Abhängigkeit von der ECS Adresse und Punktion gesendet wurde, und bewirkt, daß das Wort 1,
341a der Puffer 0 Registerbank 325a 60 Bit-Datenworte auf der
Leitung 401a von ECS 100 annimmt. Wenn jedes Wort empfangen wurde, werden die Worte in der Puffer 0 Registerbank 325a
unter dem Steuereinfluß des Voll/Entleerungssteuer-Untersystems 318a wie bei der Schreiboperation nach oben verschoben, bis
acht 60 Bit-Worte angenommen wurden. Die ZerlegungsSteuereinheit
319a läßt dann durch Torsteuerung aufeinanderfolgend 12 Bit Bytes vom Wort 8 der Puffer 0 Registerbank 325a zum
5 zu 8 Eingabefächer und Ausgabefächer-Untersystem (5 bis 8
Eingangs/Ausgangsfächer) 324a hindurch, wobei mit den Bits 11-0 begonnen wird. Jede der Datenleitungen 33Oa-33Oe weist
12 einzelne Bitleitungen auf, wodurch die Möglichkeit geschaffen wird, jedes 12 Bit Byte vom Wort 8 zum 5 bis 8 Eingangs/
Ausgangsfächer 324a zu übertragen, um dadurch parallel vorzugehen. Eine der acht 12 Bit-Datenleitungen 320a-320h führt
in jeden Prozessor 1-8 Eingangsfächer 302a-302h. Diese Auswahl wird durch die Prozessor— und Pufferauswählsteuereinheit
330 (Fig. 3b) gesteuert, die diese eine von den acht, . Steuerleitungen
328a-328h erregt, und zwar entsprechend der Tatsache, welcher Prozessor 1-8 Ausgangsfächer 334a-334-h die Funktionsworte empfangen hat. Irgendeine erregte Steuerleitung von den
Steuerleitungen 328a-328h bewirkt, daß der dieser entsprechende Prozessor-Eingangsfächer 302a-302h einen der drei 12 Bit-Eingangsdaten-Leitungen
320a-322a jeweils über 320h-322h vom. 5 zu 8 Eingangs/Ausgangsfächer 324a in Bereitschaft setzt,
oder den entsprechenden 5 zu 8 Dateneingangs/Ausgangsfächer im Puffer 1, 300b oder den Puffer 2, 300c. Die Prozessor 1-8
Eingangsfächer 3O2a-3O2h führen die erforderliche Leitungsansteuerung
und Zeit- und Pegelverschiebung durch, um die Da-
- 18 509830/0614
ten im Datenglied 216b anzubieten, welches an.den ECS I/O
Kanal 201a in dem richtigen Prozessor 121-128 angeschlossen ist. Nachdem fünf 12 Bit-Übertragungen vom Wort 8, 348a aufgetreten
sind, werden die Inhalte des Wortes 7, 347a in das
Wort 8 verschoben, und es werden ähnliche Verschiebungen im Wort 6, Wort 5 usw. durchgeführt, bis alle Inhalte der V/orte
1-7 zum nächst höher bezifferten Wort verschoben sind. Dieser Prozess wird unter der Steuerung der Voll/Leer-Steuereinheit
318a fortgesetzt, bis die ursprünglichen Inhalte des Wortes 1, 341a das Wort 8, 348a erreicht haben und zerlegt wurden und
zu den Prozessor 1-8 Eingangsfächern 3O2a-3O2h gesendet sind.
Nach jeder ECS Operation wird das Endresultat im Prozessor
signalisiert, der in ein Statuswort verwickelt ist. Das Statuswort wird zu dem Prozessor gesendet, und zwar durch Ausführung
einer extra Eingangsinstruktion durch den verwendeten Prozessor. Eine Auswahl des Statusworts enthält drei getrennte Felder,
wie dies in Fig. 2b im Statuswort 225 gezeigt ist. Das Feld 225a spezifiziert, ob die Datenübertragung tatsächlich
durch ECS 100 durchgeführt wurde. Wenn dies der Fall war, wird das von dieser Einheit zu SAU 102 gesendete Annahmesignal in
Form einer 1 in dem abort/Annahme Bitfeld 225a gespeichert. Wenn dies nicht der Fall war, bewirkt ein abort-Signal, welches
von SAU 102 empfangen wird, daß das abort/Annahmefeld 225a auf 0 gestellt wird. Das Paritätsfeld 225b spezifiziert,
da es jeweils 0 oder 1 beträgt, ob die übertragung mit oder ohne Paritätsfehler erfolgt ist. Das Feld 225c braucht hier
nicht weiter zu interessieren.
Der Puffer 1, 300b und der Puffer 2, '30Oc sind mit dem Puffer
0, 300a identisch. Die Auswahl des Puffers 0, 1 oder 2, 300a-c, wie an früherer Stelle bereits dargelegt wurde, wird durch die
Prozessor- und Pufferauswählsteuereinheit 330 durchgeführt.
- 19 509830/06U
24495Λ7
Diese Puffer sind für einen gleichzeitigen Betrieb ausgelegt,
so daß drei Prozessoren laufend Daten zu oder von SAU 102 übertragen
können. Da die Übertragung viel langsamer zwischen den Prozessoren 121-128 und SAU stattfindet als zwischen SAU 102
und ECS 100, besteht der Effekt wie bereits erwähnt darin, daß drei Prozessoren zu einem Zeitpunkt mit ECS 100 in ¥erbindung
stehen, obwohl nur ein Puffer zu einem Zeitpunkt mit
ECS 100 in Verbindung stehen kann.
Fig. 4 zeigt den ECS 100 in Blockschaltform. Befehlsgrößen
für ECS 100 werden von den drei ECS Funktions- und Adressen-Unter
systemen 314-a, b und c in den SAU Puffern 302a, b und c
auf den drei Eingangsleitungen 332a, b und c jeweils empfan-.
gen. Der ECS !Funktions-Eingangsfächer 403 tastet aufeinanderfolgend
die Eingangsleitungen 332a, b und c ab und immer dann, wenn eine Befehlsgröße festgestellt wird, stoppt dieser Fächer
die Abtastung, um diese Befehlsgröße zu verarbeiten. Es kann somit zu einem Zeitpunkt nur eine !Funktion in dem ECS
100 auftreten, wobei andere Funktionen zwangsweise zurückgestellt werden. Die Befehlsgröße wird über die Leitung 4-10 zur
ECS Adressen-, .Kanal- und Sperr-RegisterSteuereinheit (ECS
Steuereinheit) 409 übertragen, wo der Adressenabschnitt extrahiert wird und über die Leitungen 411 in das ECS Adressenregister
(ECS AR) 408 eingegeben wird. Die ECS Steuereinheit 409 schickt Torsteuer- und Triggersignale zu verschiedenen anderen
Blöcken, die ECS 100 umfassen, wie dies durch die Steuerieitungen
412a, b, c und d gezeigt ist.
Es sei zunächst die Datenaufzeichnungs-Operation betrachtet. Es sei angenommen, daß eine Befehlsgröße, wie diese an früherer
Stelle in Verbindung mit der Betriebsweise Von SAU 102 beschrieben wurde, vom Puffer 0, 302a durch den ECS Funktionseingangsfächer
403 am Glied 332a empfangen wird. Es sei daran
509830/061k
-20- 2 4 A 9 5 A 7
erinnert, daß üeäe Befehlsgröße aus einer 24 Bit-Adresse und
einem 1 Bit-Punktionscode besteht, der, wenn er 1 ist, eine Aufzeichnung anzeigt. Die Adresse wird durch die ECS Steuereinheit
409 zum EOS Adressenregister 408 übertragen. Nach dem
Empfang des Eunktionscodes signalisiert die ECS Steuereinheit
409 dem Puffer 302a, daß die Datenübertragung begirinen kann, indem das Annahme signal auf eine der zwei Signalleitungen 418a
gegeben wird. Als Antwort auf das Annahmesignal bietet der SAU Puffer 0, 302a acht 60 Bit-Worte dem EOS Kanal 0 Eingang
405a auf dem Glied 402a an. Diese Worte werden vom EOS Dateneingangsfächer 404 übertragen, der auf ein Steuersignal von
der ECS-Steuereinheit 409 anspricht und die Daten vom ECS Eingangskanal 0, 405a und dem Datenglied 417a zum 480 Bit
Kernpuffer 419 freigibt. Zum Kernpuffer 419 gehört ein Eingangsfächer, der in Abhängigkeit von den Signalen von der ECS
Steuereinheit 409 jedes 60 Bit-Wort in einer vorherbestimmten Folge tormäßig steuert, z.B. zunächst die höchsten 60 Bits in
dem Kernpuffer 419 und dann aufeinanderfolgend die 60 Bit-Worte niedriger Ordnung. Wenn acht 60 Bit-Worte vom Kernpuffer
419 empfangen wurden, tastet die ECS Steuereinheit 409 den Kern-Stapelspeicher 402 ab, wodurch bewirkt wird, daß die
480 Bits in dem Kern-Stapelspeicher 402 bei der Adresse gespeichert werden, die in dem ECS Adressenregister 408 enthalten
ist.
Um die Daten wiederzufinden, wird die ECS Adresse in das ECS
Adressenregister 408, wie zuvor, eingegeben. Die in der spezifizierten Adresse aufgezeichnete Leitung (line) wird von dem
Kern-Stapelspeicher 402 ausgelesen und wird in den Kernpuffer 419 eingegeben. Mehr oder weniger parallel zu diesem Vorgang
wird ein Annahmesignal, wie zuvor, zum SAU Puffer 0, 302a gesendet, welches dann von dem SAU Puffer 0 dazu verwendet wird,
dessen Eingangsglied in einen Zustand zu versetzen, um vom
- 21 509830/06U
EOS Ausgangskanal O, 407a Daten zu empfangen. Nachdem das"
Annahmesignal gesendet wurde, werden die Inhalte des Kernpuffers 419 gesendet, und zwar 60 Bits zu einem Zeitpunkt
auf dem Glied 415 zum ECS Ausgangsfächer 424. Die 60 Bit-Worte
werden vom Kernpuffer 419 in der gleichen Reihenfolge abgerufen, in welcher sie für die Aufzeichnung zu einem
früheren Zeitpunkt angeordnet wurden. Die Torsteuerung der aufeinanderfolgenden Worte zum ECS Ausgangsfächer 424 wird
durch einen Eingangsfächer (nicht gezeigt) durchgeführt, der einen Teil des Kernpuffers 419 darstellt. Wenn der ECS Ausgangsfächer
424 jedes 60 Bit-Wort empfängt, so schickt dieser
die Worte über das Glied 414a, 414b oder 414c zum richtigen
ECS Ausgangskanal, in diesem Fall dem Kanal 0, 407a,der
seinerseits die Signale abändert, um diese kompatibel zum SAU Puffereingang zu machen, und dieser sendet die Worte über das
60 Bit-Ausgangsglied 401a zum SAU Puffer 0, 302a.
Beim Ende jeder Aufzeichnungs- oder Wiederfindungsoperation
sendet die ECS Steuereinheit 409 ein zweites Signal zum SAU
Puffer JOOa, b oder c, wodurch angezeigt wird, obdie Übertragung
mit oder ohne einem feststellbaren Paritätsfehler stattgefunden
hat. Diese Information wird dann zusammen mit dem Annahme- oder abort-Signal dazu verwendet, um die in dem
Statuswort 225 enthaltenen Informationen zu vervollständigen,
wie dies früher beschrieben wurde.
Neben der Aufzeichnung von Daten hält ECS 100 auch eine Bank von 64 Sperr-Flip-llops 417 aufrecht. In Abhängigkeit
von dem vom ECS Funktions-Eingangsfächer 403'empfangenen
Funktionswort können diese Sperr-Plip-Elops einzeln einge-"stellt,
rückgestellt, gelesen und getestet werden. Die Tabelle I zeigt ein ausgewähltes Repertoire von Sperr-Registerinstruktionen.
- 22 -
509830/0614
SPERREGISTERFUNKTIONS-CODES
Code (oktal)
Operation
Löschen
Setzen
Test
12
Test gelöscht
Test gesetzt Beschreibung
Das Sperrbit, welches durch die Sperrbitadresse in der Befehlsgröße spezifiziert ist, wird unbedingt
gelöscht.
Das durch die Sperrbitadresse spezifizierte Sperrbit wird unbedingt
gesetzt.
Das durch die Sperrbitadresse spezifizierte Sperrbit in der ECS Befehlsgröße wird getestet und
wenn es gesetzt ist, wird ACCEPT gesetzt, wenn das Sperrbit nicht gesetzt ist, wird ABORT gesetzt.
Das durch die ECS Instruktion spezifizierte Sperrbit wird getestet,
und wenn es gesetzt ist, wird ACCEPT gesetzt. Wenn das Bit nicht gesetzt ist, wird ABORT gesetzt.
In beiden Fällen wird das spezifizierte Bit gelöscht.
Das durch die Sperr-Registeradresse in der ECS Instruktion spezifizierte
Bit wird getestet und wenn es
- 25 -
509830/06U
gesetzt ist, wird ACOEPID gesetzt. . · Wenn das Bit nicht gesetzt ist,
ist ABORT gesetzt. In beiden "Fällen wird das spezifizierte Bit ge-.
- setzt.
Lesen Die. oberen 32.. Bits, des Sperr-!*Regi-
• sters werden zum ECS Ausgangefächer
" . . 4-24- gesendet, wenn das Bit O des
Sperrbit-Adressenfeldes (Bit 3 des Wortes 3, 224) gesetzt ist. Wenn
das Bit O in der Sperrbitadresse gleich 0 ist, v/erden die unteren
32 Bits des Sperr-Eegisters zum
ECS Ausgangsfächer 4-24 gesendet.
Die vom ECS Ausgangsfächer 424 empfangenen 32 Bits werden in Form
■ eines gewöhnlichen Datenwortes am
Ausgangskanal gesendet, der dem Eingangskanal entspricht, welcher
das ECS Funkti<|nswort empfängt*
Bemerkung; Der Code besteht aus Bits 0-2 de\s Wortes 2, 223
als Bits hoher Ordnung, und aus dem Bit 11 des Wortes 3, 224 als Bit niedriger Ordnung, wie dies
in Hg. 2b als Feld 223c gezeigt ist# Die Sperrbitadresse
besteht aus den Bits J bis 8 des Wortes 3, 224 in Pig. 2b bzw. dem Feld 224b, wobei
das Sperrbit niedrigster Ordnung die Adresse 0 ■-__..
besitzt und die Adresse von Jedem um 1 nach links zunimmt, und zwar Jedes folgende Bit. <
Das am weitesten links befindliche Bit besitzt ! eine Adresse von 63iO (77g). . ,
509830/0614
ORIGINAL INSPECTED
Die Worte 2 und 3, 223 und 224 bilden die 24 Bits des ECS Adressenwortes während der Sperroperationen. Da keine ECS
Adresse so groß ist wie 6000000Oo, können Sperroperationen
einfach bestimmt werden. Das Funktionsfeld 22Ob muß O sein, wodurch eine Datenwiederfindung während einer Sperroperation
angezeigt wird. Eine Sperr-Register-Operation startet mit dem Prozessor, der den üblichen 3 Wort-Befehlscode zu SAU 102
überträgt, welcher jedoch das zuvor beschriebene Format aufweist. SAU 102 überträgt dann den 25 Bit ECS Punktionscode
nach ECS 100. ECS 100 verarbeitet dann den Zustand des Flip-Flops im Sperr-Register 417, der durch das Feld 224b in dem
Wort 3, 224 spezifiziert ist. Wenn einer der Testbefehle (Funktionscodes 10g, 12g und 14g) gegeben wurde, so ist es
dann für den beteiligten Prozessor erforderlich, eine Ein— Wort-Eingangsgröße von SAU 102 zu bewirken, um das Statuswort
225 zu lesen. Dieser muß dann das abort/Annahmebit 225a
testen, welches aus einer 1 besteht, wenn die Annahme gesetzt war, und aus einer 0 besteht, wenn abort gesetzt war. Wenn gelesen
wird (Funktionscode 1), muß eine 3-Wort-Eingangsgröße bewirkt werden.
Während ein Prozessor 121-128 auf die Sperr-Flip-Flops 417
Bezug nimmt, werden automatisch alle anderen Prozessoren daran gehindert, auf die Sperr-Flip-Flops einzugehen, bis
die Bezugnahme vervollständigt ist, da ECS 100 zu einem Zeitpunkt nur einen einzigen Befehl durchführen kann. Der Zustand
der ausgewählten Sperr-Flip-Flops schafft für einen Prozessor ein Mittel, gleichzeitig alle anderen Prozessoren zu signalisieren
bzw.zu unterrichten und ebenso kontinuierlich darüber, daß ein spezieller Zustand existiert. Wenn daher eine bestimmte
Tabelle in ECS 100, die von verschiedenen Prozessoren gemeinsam verwendet wird, durch einen ersten Prozessor geändert
werden muß, und zwar durch Testen und Setzen (Sperrfunktions-
- 25 509830/0614
code 14-) eines vorgewählten Sperr-Flip-Flops, so können alle
anderen Prozessoren darüber unterrichtet werden, daß die Tabelle im Begriff steht, geändert zu werden. Wenn das Bit an
früherer Stelle durch einen zweiten Prozessor gesetzt wurde, so findet der erste das Annahmebit in dem von SAU 102 gelesenen
Statuswort gesetzt. Es kann dann eine geeignete Maßnahme von dem ersten Prozessor getroffen werden, um eine Bezugnahme
auf die Tabelle zu verzögern, bis der zweite. Prozessor das Sperrbit gelöscht hat. Dies bedeutet häufig einfach, daß
fortwährend das Sperrbit getestet und gesetzt wird, bis es eventuell durch den Prozessor gelöscht wird, der es ursprünglich
gesetzt hat.
Die vorangegangene Beschreibung beschäftigte sich mit den grundlegenden Bausteinen, die beim Gegenstand der Erfindung
zur Anwendung gelangen. Um jedoch effektiv ein Datensystem für dieses eine zu verwenden^ ist es erforderlich, daß eine
Gesamtsteuerung des Systems unter einer Computersteuereinheit
durchgeführt wird. Hierfür gibt es verschiedene Gründe. Bei vielen Verarbeitungsformen dauert die einzelne Rechenaufgabe
oder Aufgabe nur ein paar Sekunden oder nur 1/10 einer Sekunde, gemessen in der benötigten tatsächlichen Prozessor-Rechenzeit,
wobei (jedoch Hunderte von Aufgaben dabei verwickelt sein können. Zweitens können verschiedene Prozessoren durch I/O
Referenzen über Zeitperioden hinweg verzögert werden, die ausreichend lang sind, daß in der Zwischenzeit strenge Rechenaufgaben
ausgeführt werden können. Wie bereits an früherer Stelle dargelegt wurde, können die verschiedenen Prozessoren unter- ,
schiedliche Rechenfähigkeiten und I/O Strukturen aufweisen,
und in solchen Situationen kann eine große Zahl von Aufgaben,' die intern spezifizierte Verarbeitungsanforderungen mit sich
bringen, einfacher den verschiedenen Prozessoren durch die Computersteuereinheit zugeteilt werden. Es gibt verschiedene
Möglichkeiten, um dies zu mechanisieren. Eine übliche Art be-
- 26 509830/0614
steht darin, daß ein Prozessor als "Meister" bezeichnet bzw. dazu bestimmt wird, der dann eine Arbeitszuteilung für alle
anderen Prozessoren vornimmt, wobei entweder die Baugruppen geändert werden, um eine direkte elektronische Steuerung zu
ermöglichen, oder in dem gemeinsamen Speicherkennzeichen in dem betreffenden System ECS 100 vorgesehen werden. Die in
Wirklichkeit bei diesem System gewählten Mittel sind mehr gemischt, wobei jeder Prozessor 121-128 einen Teil dieser Aufgabenzuordnungsfunktion
für sich selbst in V/irkungsverbindung
mit den anderen Prozessoren 121-128 durchführt.
Eine Kommunikation zwischen ECS 100 und jedem einzelnen Prozessor
wird mittels einer Programmresidenz gehandhabt, die in irgendeinem Prozessor ausführbar ist. Diese Programmresidenz
kann vollständig innerhalb der Residenzzone 200a (Fig. 2) jedes Prozessors gespeichert werden, o'lev in bevorzugter Weise,
um so viel als möglich Speicher für die Aufgabendurchführung beizubehalten, kann ein permanenter Abschnitt in der Zone
200a gespeichert werden,und zeitweilig können Abschnitte der Programmresidenz in ECS 100 gespeichert werden. Obwohl das
Residenzprogramm so ausgelegt sein kann, um viele unterschiedliche
!Punktionen durchzuführen, können, zum besseren Verständnis
der Betriebsweise des Systems, dessen Funktionen auf das Lesen und Schreiben von ECS 100 beschränkt werden, und zwar
inklusive der Sperr—Register-Operationen. Ein Residenzprogramm
wird dadurch ausgewählt, indem man geeignete Parameter an einer vorbestimmten Speicherstelle speichert und in die man einen
Rückwärtssprung oder Verzweigung zur Eingangsadresse 200c ·
vornimmt. Der Rückwärtssprung, der die Adresse der Instruktion speichert, die auf den Rückwärtssprung an einer vorbestimmten
Stelle folgt, wird dazu verwendet, nach der Vervollständigung der Residenzfunktion wieder mit der Aufgabe zu beginnen.
- 27 -509830/06U
Das Exekutivprogramm (Exec) besteht aus dem Hauptsatz der
Systemprogramme, die für alle Prozessoren zu einem Zeitpunkt verfügbar sind,und es führt die tatsächliche Aufgabenzuordnung
und Überprüfung durch. Exec steuert die Aktivierung der Aufgaben und der Wechselwirkung zwischen diesen. Die Aktivierung
einer Aufgabe durch Exec findet immer in Abhängigkeit von der Forderung einer anderen Aufgabe statt. D.h. während
der Durchführung einer Aufgabe kann deren einprogrammierte Logik eine zweite Aufgabe aktivieren oder "rufen". Dieser Ruf
kann sich auf Grund einer von einer Person zugeführten Eingangsgröße von einer peripheren Vorrichtung 103a, b usw.,
die durch eine Aufgabe empfangen wird, ergeben, ebenso aus der Vervollständigung der Verarbeitung bestimmter spezifizierter
Daten durch eine Aufgabe oder von der Forderung durch eine Aufgabe nach einer bestimmten Berechnung ergeben.
Es ist wichtig, sich zu vergegenwärtigen, daß eine Kopie
jeder Aufgabe dauernd für das System entweder in ECS 100
oder in einer peripheren Vorrichtung 103a usw. vom Massenspeichertyp
verfügbar ist. Eine Aufgabe, die einmal aktiviert ist, stellt die.Grundsoftware-Einheit des Eechensystems dar.
Eine einzelne Aufgabe kann viele Male innerhalb einer so kurzen Zeitspanne aktiviert werden, daß sich alle gleichzeitig
in einer Stufe der Vervollständigung befinden. Eine zum Warten nach der Aktivierung aus irgendeinem Grund gezwungene
Aufgabe wird immer reaktiviert und wird in fast allen Fällen eventuell vollständig durchgeführt. Nach der Reaktivierung
braucht diese jedoch nicht zu dem ursprünglichen Prozessor 121-128 zurückgeführt werden, in welchem die frühere Ausführung
stattgefunden hat. Sie kann durch irgendeinen Prozessor 121-128, der die Fähigkeit besitzt, die Aufgabe durchzuführen,
ausgeführt werden. Demnach kann eine Aufgabe nur in Abhängigkeit der unvorhersagbaren Folgen der Systemaktivitäten
- 28 509830/0614
zum einen Zeitpunkt oder zum anderen, während sie aktiv ist,
durchgeführt werden, und zwar durch irgendeinen oder durch alle der Prozessoren 121-128 in dem System. Ähnlich kann die
gleiche Aufgabe nach einer anderen Aktivierung vollständig in einem einzelnen der Prozessoren 121-128 durchgeführt werden,
der koinzident jedesmal für die Verarbeitung verfügbar ist, zu welchem die Aufgabe reaktiviert wird.
Zur besseren Erläuterung der Technik, mit welcher die Aufgabenfunktion
durchgeführt wird, ist Pig. 5 vorgesehen. Fig. 5
zeigt ein herkömmliches Programm-Flußdiagramm bzw. Karte, in welcher rechteckige Operationsblöcke eine Verarbeitung und Berechnung
angeben, ovale Blöcke Entscheidungsoperationen angeben und Kreise Verbindungen angeben. Es sei hervorgehoben, daß
die Struktur und Wechselbeziehung von Aktivitäten in dieser Flußkarte dazu dienen, das Neuartige hervorzuheben. Somit kann
ein gegebenes rechteckiges Operationskästchen Entscheidungsoperationen enthalten, die einen Teil der anstehenden Verarbeitung
formen, die jedoch nicht neu sind. Beispielsweise enthält das Operationskästchen 502 als einen Abschnitt der Operation
desselben eine Suche einer aktiven Tabelle für eine Aufgabe. Verschiedene Entscheidungen sind in dieser Operation
implizit: Jeder getrennte Aktiv-Tabelleneintrag muß getestet werden, um festzustellen, ob die zugeordnete Aufgabe durchführbar
ist. Wenn alle Einträge in die Aktiv-Tabelle gesucht wurden und keine durchführbare Aufgabe gefunden wurde, dann
muß die Aktiv-Tabelle erneut gesucht werden, bis schließlich eine ausführbare Aufgabe gefunden ist. Da Tabellensuchoperationen
gut bekannt sind, soll hier nicht näher auf diese Aktivität eingegangen werden. Die Anweisung in jedem ovalen
Entscheidungsblock hat die Form einer Ja-Nein-Frage. Zwei Flußlinien führen von jedem ovalen Entscheidungsblock heraus,
von denen die eine mit "Ja" bezeichnet ist und die andere mit "Nein" bezeichnet ist. Die geeignete Flußlinie wird in
- 29 509830/06U
Abhängigkeit von der Antwort auf die Frage in dem ovalen Entscheidungsblock gewählt. Verbindungskreise bezeichnen
eine gemeinsame Eingangsstelle von entweder ovalen Entscheidungsblöcken oder Operationsblöcken. Wenn eine Kennzeichnung
(lettered) vorliegt, so kehrt der'Verarbeitungsfluß zu der Verbindung zurück, die den gleichen Buchstaben oder Zeichen
innerhalb trägt und einem Operationskästchen oder ovalen Entscheidungsblock vorangeht.
Es sei daran erinnert, daß das Flußdiagramm von Fig. 5 lediglich
die wesentlichen Operationen veranschaulicht, die für die Operation des' Aufgaben-Zuordnungssystems erforderlich
sind. Ein Hinzufügen von weiteren Eigenschaften, durch die
die Leistung und Ausführung des Systems erhöht bzw. verbessert werden, sind freigestellt. Einige dieser Wahlfreiheiten
sollen im wesentlichen während der Erläuterung von lig. 5
behandelt werdens
Das Aufgaben-Zuordnungssystem von Fig. 5 besitzt drei wichtige
Tabellen, die diesem zugeordnet sind und die aus der zuvor erwähnten Aufgabenliste, der Aufgaben-Beschreibungstabelle,
der Aktiv-Tabelle und der Fehlerkennzeichen-Tabelle (Flag-table) bestehen. Der Einfachheit halber sollen diese
als einfache, ungeordnete Listen von Einträgen, die in EGS
100 beibehalten werden, behandelt werden. Es ist vorteilhafter, diese Tabellen als geschraubte oder gewundene Listen .
(threaded lists) zu formen, wodurch die Gesamtspeicheranforderungen
für die Tabellen vermindert werden und die Zugriffsgeschwindigkeit zu den einzelnen Einträgen in der Liste erhöht wird. Diese Tabellen können auch in einer herkömmlichen
Weise geordnet werden, um die Suchgeschwindigkeit in der betreffenden Tabelle zu erhöhen.
- 30 S09830/06U
Die Aufgaben-Beschreibungstabelle spezifiziert vollständig die Informationen, die der Permanentkopie jeder Aufgabe zugeordnet
sind. Die durch jeden Eintrag oder Einsprung der Aufgaben-Beschreibungstabelle enthaltene Information enthält
Ort und Größe der Aufgabe in ECS 100, einen Kamen (identifier), die erforderlichen Prozessoreigenschaften und möglicherweise
Informationen, die die von dieser benötigten Daten spezifizieren. Jedesmal, wenn eine Aufgabe gerufen, ausgewählt oder
durchgeführt wird, sieht die Information in dem Aufgaben-Beschreibungspunkt, die einer bestimmten Aufgabe zugeordnet
ist, die Information für Exec vor, die für die Aktivierung dieser Aufgabe erforderlich ist.
JederAufgabe kann gewöhnlich eine Standardform oder Format
gegeben werden, wobei ein Block oder "bootstrap11 .mit einem
vollständig standardisierten Format vinen ersten Abschnitt
jederAufgabe aufweist und in einer vorbestimmten Zone oder
Feld eines Prozessor-Speicherbetätigungsfeldes oder Zone 200b eingeladen ist, um die Ausführung der Aufgabe zu initialisieren.
Die Ausführung der Instruktionen in dem Block bewirkt, daß die verbleibenden Instruktionen der Aufgabe geladen werden
und erforderliche Datentabellen ebenfalls laden.
Die zwei verbleibenden Tabellen speichern die Informationen, die für die Kontrolle der aktiven Aufgaben erforderlich sind.
Diese letzteren zwei Tabellen werden alle unter Verriegelung in ECS 100 gehalten und sind nur für einen Prozessor 121-128
zu einer Zeit zugänglich. Die Notwendigkeit für diese Einschränkung
läßt sich während der Beschreibung der Exec-Programme erkennen. Die Aktiv-Tabelle enthält einen Eintrag
oder Einsprung für jede Aktivierung oder Fall einer Aufgabe.
(Es existiert eine Zweideutigkeit beim Hinweis von sowohl der
- 31 -
S09830/06U
Dauerkopie einer Aufgabe, die in ECS 100 gehalten wird, und jedem Fall einer Aufgabe, der nur so lange existiert, bis die
Durchführung derselben als eine Aufgabe vervollständigt ist. Allgemein bedeutet im Zusammenhang der Aktiv-Tabelle und der
Ausführung einer Aufgabe innerhalb eines Prozessors 121-128 die Bezeichnung "Aufgabe" einen Fall (instance) einer Aufgabe.
Die Dauerkopie in ECS 100 und der zugeordnete Aufgaben-Beschreibungstabelle-Kontext
nimmt Bezug auf die nicht ausführbare Dauerkopie jeder Aufgabe, die in dem System gehalten wird,
von welcher jeder Aufgabenfall (instance) aktiviert wird.) Es existieren keine Einschränkungen bei der Anzahl von Malen,
wie eine Aufgabe aktiviert werden kann noch ist es abhängig von Sperrzuständen, wann eine Aufgabe aktiviert werden kann. '
Daher können verschiedene identische Kopien einer bestimmten Aufgabe laufend aktiv sein und können tatsächlich sogar gleichzeitig
in dessen Durchführung innerhalb der verschiedenen Prozessoren 121-128 sein. Jeder Eintrag oder Eingangsstelle
in der Aktiv-Tabelle gehört einem bestimmten Fall einer Aufgabe zu und enthält die Felder, die in Tabelle II aufgeführt
sind.
50983OV06U
A. Caller Link, welches die diesem Eintrag oder Eingangsstelle zugeordnete Aufgabe identifiziert.
B. Galled Task List identifiziert alle Aufgabenfälle, die
von dem Aufgabenfall, der einen Eintrag oder Eingangsstelle besitzt, aktiviert wurden. Dieses Feld kann einen
Block von Daten, welche die Identifikationen enthalten, mit Index versehen.
0. Status Flag - ein fünfwertiges Kennzeichen (flag), welches
den laufenden Status des Aufgabenfalles als entweder Bereit, Ausführen, Warten, Beendigen oder Auslassen angibt.
"Auslassen" (Delete) bedeutet, daß der betreffende Aktiv-Tabelleneintrag oder Eingangsstelle für das Halten
von Daten für eine andere Aufgabenaktivierung verfügbar ist.
D. Task Description Table Entry Pointer. Dieser identifiziert den Eintrag oder Eingangsstelle in der Aufgaben-Beschreibungstabelle,
von welcher diese Aufgabe kam.
E. Processor Characteristics. Diese spezifizieren, welcher der Prozessoren, die Aufgabe ausführen kann. Diese Information
wird von. der Aufgaben-Beschreibungstabelle herausgezogen, wobei möglicherweise noch eine System-Beschreibungstabelle
verwendet wjerden kann.
F. ECS Task Area. Die Adresse des ECS 100 Blocks, der den
bootstrap für die Ladung des Programms und der Daten für die Aufgabe hält. Der bootstrap wird in eine Standardstelle,
wie dies zuvor erläutert wurde, geladen und durch
- 33 -509830/0614
die Ausführung werden alle erforderlichen Daten und Codierung, automatisch geladen.
G. Processor Save Area. Dieses spezifiziert die Speicherzonen des Prozessors, deren Inhalte aufgehoben werden
müssen, wenn die Ausführung unterbrochen wird, und zwar durch eine Test Flag Operation.
H. Starting Address. Diese spezifiziert die Startadresse beim Start der Ausführung einer Aufgabe, wenn nicht
Standard, oder nachdem die Ausführung durch eine Test Flag Operation unterbrochen wurde.
Es sei daran erinnert, daß verschiedene Felder in der Aktiv-Tabelle
oder anderen Tabellen Indizes sein können oder Indizes, um die tatsächliche Information zu indizieren. Eine solche
indirekte Adressierung ist auf dem Gebiet alltäglich, und es soll daher nicht weiter auf Fälle eingegangen werden,
bei denen diese vorteilhaft verwendet werden kann.
Die dritte Tabelle, welche aus der Aufgabenliste besteht, ist die Fehleranzeigetabelle (Flag table). Die Fehleranzeigetabelle
speichert den Zustand jeder Fehleranzeige (flag), ob diese gesetzt ist oder nicht, und identifiziert die Aufgabe oder
Aufgaben, die sich im Wartezustand befinden, indem das Kennzeichen gesetzt wird, was durch Speichern der Aktiv-Tabellen-Eintrag-Indizes
derselben in ein Aufgabenfeld des Kennzeichen-Tabellen-Eintrags des Kennzeichens erfolgt. Die Kennzeichen-Tabelle
soll mehr im einzelnen in Verbindung mit den Set Flag und Test Flag Befehlen erläutert werden.
Mit dieser Bedeutung der Inhalte der Tabellen, die bei der
Handhabung der Aufgaben verwendet werden, kann nun Fig. 5 erläutert
werden. Es sei beim Start-Verbindungsteil 50? begonnen.
509830/06U
Der erste Prozeß, der durchgeführt werden muß, besteht darin, den gemeinsamen Abschnitt von Exec in jedem Prozessor 121-128
aufzustellen, um den Anfang der Verarbeitung zu ermöglichen. Diese Aufstellung kann auf sehr verschiedene Weise durchgeführt
werden. Beispielsweise kann MGU 121 ein dauer-verdrahtetes
Totstart—Programm haben, welches ein kurzes Programm
automatisch von einer externen Quelle, wie beispielsweise einer peripheren Vorrichtung 1OJa, oder von Handbetätigungspult-Einfügungen
lädt. In federn EaIl muß ein bootstrap-Programm
in jedem Prozessor 121-128 geladen werden, und es muß mit der Instruktions—Ausführung bei jedem begonnen werden. Das bootstrap-Programm
bewirkt dann, daß die Instruktionen, welche dem Gemeinschaftsprogramm 508 entsprechen, in jeden entsprechenden
Prozessor 121-128 geladen werden. Ein Anfangs-Anlauf-Eintrag muß in jede aktive Tabelle eingegeben werden. Dies
kann durch einen willkürlich ausgewählten Prozessor 121-128 durchgeführt werden. Das AnIauf-Prοgramm kann dann alle erforderlichen
Programme einladen und diese in ECS 100 eingeben, wo sie für die Prozessoren 121-128 verfügbar sind.
Es sei hervorgehoben, daß das Gemeinschaftsprogramm 508, welches jeder Prozessor 121-128 durchführt, von jedem anderen Gemeinschaftsprogramm
508 unterschiedlich sein kann, wenn dies individuelle Unterschiede in den verschiedenen Prozessoren 121-128
vorschreiben. Der auffallendste Unterschied ist natürlich derjenige zwischen MCU 121 und den Standardprozessoren 122-128,
da MCU 121 die Verantwortung für die Überwachung der Leistung
der Prozessoren 122-128 und der Initialisierung des Neustarts im lalle bestimmter Fehler hat. Selbst die Standardprozessoren
2 bis 8, 122-128 können leicht hinsichtlich ihrer Gemeinschaftsprogramme
unterschiedlich sein. Das Gemeinschaftsprogramm 508 ist ausreichend detailliert gezeigt, so daß es für
irgendeinen der Prozessoren 2 bis 8, 122-128 anwendbar ist.
. . ■ - 55 -
509830/06U
2U9547
Das Gemeinschaftsprοgramm 508 kann an einer von zwei Stellen
betreten werden. Der erste Eingang ist die Verbindung oder Anschluß A, 501. Die Ausführung am Anschluß A beginnt unmittelbar
nach dem Anlauf des Systems und, wenn eine neue Aufgabe aktiviert werden muß. Der Start der Ausführung beim Anschluß
A- führt dazu, daß die Operationen des Kästchens 502 durchgeführt werden. Das Operationskästchen 502 enthält das,
was als "Leerlauf-Schleife" bezeichnet wird. In der Leerlaufschleife wird die Aktiv-Tabelle fortwährend nach einer Aufgabe
abgesucht, die einen Bereitschafts-Status besitzt unddie
von demjenigen Typ ist, den der die Aktiv—Tabelle absuchende
Prozessor ausführen kann. Wenn keine während einer Absuchung der Aktiv-Tabelle gefunden wird, so wird die Aktiv-Tabelle
immer wieder erneut abgesucht, bis eine Aufgabe gefunden bzw. lokalisiert ist. (Wenn mehrere Durchgänge erforderlich sind,
bevor ein "Fund" gemacht ist, so wurde eine eventuell lokalisierte Aufgabe in die Aktiv-Tabelle zu einem Zeitpunkt eingeschoben,
während der Suchvorgang in Gang war, und zwar hinsichtlich anderer Aufgaben, die in anderen Prozessoren auszuführen
sind.) An dieser Stelle sei bemerkt, daß die Aktiv-Tabelle niemals hinsichtlich Aufgaben vollständig leer sein
kann. Es muß immer eine Grund- oder Primäraufgabe vorhanden sein, deren Funktion darin besteht, eine Kommunikation mit
anderen Benutzern des Systems über die verschiedenen peripheren Vorrichtungen 103a herbeizuführen oder wenigstens die
Kommunikation zu steuern. Daher muß sich diese Primäraufgabe immer in einem der Prozessoren 121-128 in Ausführung befinden,
wenn sich alle anderen Prozessoren 2 bis 8, 122-128 in ihrem Leerlaufbetrieb bzw. Schleifen befinden. Dieser Zustand fordert,
daß jede angefragte Verarbeitung vervollständigt wurde. Die Primäraufgabe stellt die Hauptausnahme hinsichtlich der
Regel dar, daß jede Aufgabe einen End-Aufgabenbefehl haben muß und daß jede Aufgabe eventuell beendet ist.
- 36 -
509830/06U
Es sei erneut darauf hingewiesen, daß nur ein Prozessor zu einer Zeit die Möglichkeit hat, die Aktiv-Tabelle zu prüfen.
Der Grund besteht darin, daß, wenn mehr als nur einer gleichzeitig die Aktiv-Tabelle absuchen, beide die identische Aufgabe
zur Durchführung auswählen, so daß dann mit Sicherheit eine Verwirrung folgt. Der Zugriff zur Aktiv-Tabelle wird
auf ein Sperrbit hin freigegeben, welches durch jeden Prozessor 1-8, 121-128 mit einer Test-Setzen (Operationscode
14g) -Sperregisterinstruktion geprüft wird. Y/enn das Sperrregisterbit
gesetzt ist, so ist ACCEPT gesetzt. Dieser Zustand im Abort/Annahmebit 225a des rückgeführten Statuswortes
225 bewirkt, daß das Programm die Test-Setzen-Instruktion (Test Set instruction) erneut ausführt und damit fortfährt,
bis eineABORT-Antwort empfangen ist. An dieser Stelle hat
der eine der Prozessoren 1-8, 121-128, der die Aktiv-Tabelle abgesucht hat, seine Suche vervollständigt und hat diese Tatsache
durch die Ausführung einer Löschungs (Instruktionscode 2) -Sperregisterinstruktion angezeigt. Auf diese Weise existiert
für eine bestimmte Aufgabe keine Gelegenheit, bei dem Bereitschafts-Status von mehr als einem Prozessor ausgeführt zu
werden. Obwohl eine bestimmte Aufgabe in der Aktiv-Tabelle mehr als eine Gelegenheit haben kann, so sollte eine einzelne
Gelegenheit einer Aufgabe natürlich zu einem gegebenen Moment nur in einem Prozessor zur Ausführung der Aufgabe führen. Es
sei hervorgehoben, daß ein bestimmtes Auf-den-neuesten-Standbringen
der Aktiv-Tabelle laufend durchgeführt werden kann, d.h. ohne Sperrung bei der Suche der Aktiv-Tabelle. Beispielsweise
kann der Aufgabenstatus von Ausführen zu Beendigen geändert werden, oder es kann eine neue Aufgabe in die Aktiv-Tabelle
auf eine Aufgaben-Euf-Befehlsgröße eingeschoben werden
(siehe dort).
Nach dem Auffinden einer Aufgabe in der Aktiv-Tabelle bei Zutreffen der erwähnten Bedingungen muß das Aktiv-Tabellen-
- 37 509830/06U
2A495A7
Status-Kennzeichen (flag) für diese Aufgabe in Status-Ausfuhren
geändert werden. Wach Änderung des Status-Kennzeichens kann dann das Aktiv-Tabellen-Sperrbit gelöscht werden, wobei die
Aktiv-Tabelle für die Verwendung für die Gemeinschaftsprogramme 508 in den anderen Prozessoren 1-8, 121-128 freigegeben
wird.
Der letzte Schritt im Operationskästchen 502 besteht darin, die ausgewählte Aufgabe als die "laufende Aufgabe" zu kennzeichnen.
Mit diesem Ausdruck ist die Aufgabe gemeint, deren Aktiv-Tabellen-Eintrag immer dann bezogen ist, wenn Aktiv-Tabellen-Referenzen,
die der laufend ausgeführten Arbeit zugeordnet sind oder danach erforderlich sind, bis eine andere
Aufgabe als "laufend" bestimmt ist. Allgemein wird die als Ergebnis einer Suche in der Aktiv-Tabelle gefundene Aufgabe
für diesen Prozessor als "laufende Aufgabe" bezeichnet. Diese Bestimmung kann dadurch sehr einfach erzielt werden, indem
man eine vorgewählte Adresse des örtlichen Speichers zum Index der ausgewählten Aufgabe setzt. Wenn die Endaufgaben-Operation
zur Rede steht, können andere Aufgaben als "laufende Aufgabe" in. dem betreffenden Prozessor bestimmt werden.
Dies bedeutet lediglich, daß auf einen anderen Eintrag in der Aktiv-Tabelle Bezug genommen ist.
Folgt man nun dem Operationsblock 502, so sieht der Anschluß B 503 den zweiten Eingang zum gemeinsamen Programm 508 vor,
immer wenn eine Exec Operation durchgeführt wurde, die keine Änderung der laufenden Aufgabe vom Ausfuhr-Status erfordert.
Der Operationsblock 5O2I- spezifiziert Vorbereitungen, die zur
Initialisierung der Ausführung einer Aufgabe erforderlich
sind. Es gibt eine Reihe von unterschiedlichen Verfahren,
die zum Erreichen dieser Vorbereitung möglich sind. Die hier bevorzugte Einrichtung besteht darin, ein vorangestelltes
- 38 509830/0614
bootstrap bzw. Vorlaufprogramm zu laden, welches 2 ECS Leitungen (80 Prozessorworte) von der EGS 100 Stelle umfaßt,
die durch das ECS Aufgaben-Zonenfeld in dem Aktiv-Tabellen-Eintrag
für die laufende Aufgabe spezifiziert ist. Dieses Vorlaufprogramm wurde zum Zeitpunkt voreingestellt, zu welchem
die Aufgabe in die Aufgaben-Beschreibungstabelle eingegeben wurde, um die Aufgabe von ECS 100 in die Prozessor-Speicherzone
200b zu laden. Wenn die Aufgabenverarbeitung durch ein Warten unterbrochen wird, so wird die gesamte Aufgabe,
welche das Vorlaufprogramm enthält, in ECS 100 gespeichert,
und zwar an einer Stelle, die von derjenigen, die durch die Aufgaben-Beschreibungstabelle-Dateneinheit spezifiziert
ist, unterschiedlich ist. Bevor die Aufgabe in diesem Fall gespeichert wird, wird das Vorlaufprogramm so
geändert, daß, wenn die Ausführung der Aufgabe erneut geplant ist, das Vorlaufprogramm eingelessn werden kann und
ebenso die Aufgabe und die Daten, die durch dieses von den richtigen Speicherstellen in ECS 100 eingelesen werden. Sowohl
nach einem anfänglichen Anlauf und nach einem Warten bewirkt, nachdem die Aufgabe vollständig eingeladen ist,
das Vorlaufprogramm einen Sprung zur richtigen Instruktion in der Aufgabe. Die Adresse dieser Instruktion ist in dem
Start-Adressenfeld des Aufgaben^-Aktiv-Tabellen-Eintrags gespeichert
und kann für das Vorlaufprogramm auf irgendeine von verschiedenen Weisen verfügbar gemacht werden. An dieser
Stelle beginnt die Ausführung der Aufgabe und wird nicht unterbrochen fortgesetzt, bis ein Exec Bezug (reference),
der durch das Operationskästchen 505 spezifiziert ist, auftritt.
Nach dem Auftreten eines Exec Bezuges (oder sogar einer Residenz, wenn die Residenz-Speicherzone 200c zu klein
ist) wird die Prozessor-Save-Zone, die in der Aktiv-Tabelle mit dem Eintrag für die. laufende Aufgabe spezifiziert ist,
in ECS 100 gespeichert, wie dies früher beschrieben wurde,
- 39 -509830/06U
und zwar mit dem Vorlaufprogramm zum erneuten Laden des Prozessors
nach der Reaktivierung der Aufgabe. Dann bestimmt das Gemeinschafts- bzw. allgemeine Programm 508 die Exec Sanktion,
die angefragt wurde, und überträgt eine Steuerung zu einem der vier Exec Funktionsprogramme, Rufaufgäbe 509, Endaufgabe 510,
Test Plag 511 oder Set Flag 512.
Die Rufaufgabenoperation 509 hat den Zweck, die Ausführung einer
der Aufgaben zu ermöglichen, die einen Eintrag in der Aufgaben-Beschreibungstabelle
hat. Eine Rufaufgabenoperation bewirkt
nicht die unmittelbare. Ausführung der gerufenen Aufgabe. Sie bewirkt das Einschieben eines Eintrags der Aufgabe in die Aktiv-Tabelle
mit dem Status Bereit. Zur gegebenen Zeit erfolgt die Ausführung der Aufgabe. Die Referenz zur gerufenen Aufgabe
wird auf sehr herkömmliche Weise durch Einschieben eines Index in den Aufgaben-Beschreibungstabellen-Eintrag in der laufenden
Aufgäbe während der Anordnung oder Kompilierung erreicht. Dies
kann auch ebenso durch Anpassung einer Kennung durchgeführt werden, die in der laufenden Aufgabe angeordnet wird. Die in
ECS 100 gespeicherte Aufgaben-Beschreibungstabelle enthält die Information, die in den Aktiv-Tabellen-Eintrag für die
gerufene Aufgabe durch das Operationskästchen 520 eingeschoben wird, und es wird dem gerufenen Aufgaben-Eintrag eine
Stelle in der Aktiv-Tabelle zugeordnet. Das Statusfeld wird in diesem Eintrag auf Bereit gesetzt. Das Operationskästchen
521 bringt über Kreuz die rufenden (laufenden) und gerufenen Aufgaben in Bezug, indem es den Aktiv-Tabellen-Eintrag-Index
für die laufende Aufgabe in dem Rufer-Gliedfeld des gerufenen Aufgaben-Aktiv-'Iabellen-Eintrags einschiebt und den entsprechenden
Aktiv-Tabellen-Eintrag-Index der gerufenen Aufgabe in der Liste der gerufenen Aufgaben für den laufenden Aufgaben-Aktiv-Tabellen-Eintrag
einschiebt. Nach der Vervollständigung dieser Manipulationen fährt das Ruf-Aufgaben-Programm
509830/0614
509 mit der Ausführung des laufenden Programms beim Anschluß
B 503 fort.
Die Ausführung einer Aufgabe wird fortgesetzt, bis damit auf eine von zwei Möglichkeiten ausgesetzt wird. Eine Aufgabe kann
durch die End-Aufgaben-Operation beendet werden, die eine Übertragung
von Exec zum End-Aufgaben-Programm 510 bewirkt. (Die
zweite Möglichkeit, mit der Ausführung einer Aufgabe auszusetzen, erfordert Set Flag und Test Flag Befehlsgrößen und soll
unten erläutert werden.) Der Operationsblock 530 erklärt sich nahezu von selbst und beschäftigt sich lediglich mit der Änderung
des Status-Flag-Felds im Aktiv-Tabellen-Eintrag für die
laufende Aufgabe von Ausführen zu Beendigen. Der ovale Entscheidungsblock 535 spezifiziert die Prüfung der gerufenen
Aufgabenlxste für den laufenden Aufgaben-Aktiv-Tabellen-Eintrag, um zu bestimmen, ob die laufende Aufgabe andere Aufgaben
gerufen hat, die nicht aus der Aktiv-Tabelle weggelassen wurden. Wenn die laufende Aufgabe dies durchgeführt hat, kann
sie nicht von der Aktiv-Tabelle weggelassen werden, bis diese Aufgaben sich selbst beendet haben, in welchem Fall eine
Rückkehr vom Anschluß A 501 erfolgt. Wenn sie jedoch nicht diese Aufgaben gerufen hat, kann sie aus der Aktiv-Tabelle
weggelassen werden, wie dies im Operationskästchen 532 gezeigt ist. Um die Aufgabe wegzulassen, wird das Status-Kennzeichen
(flag) auf den Weglassen-Zustand gesetzt und die laufende Aufgabe wird von der Aufgabe entkettet, die sie gerufen
hat (Rufer), indem der Aktiv-Tabellen-Index der laufenden Aufgabe
von der gerufenen Aufgabenlxste des Rufers in der Aktiv-Tabelle entfernt wird. Es sei daran erinnert, daß der Index
für den Aktiv-Tabellen-Eintrag des Rufers in dem Rufer-Glied-Feld des Aktiv-Tabellen-Eintrags der laufenden Aufgabe gespeichert
ist.
- 41 -
509830/0614
Als nächstes bestimmt der im Entscheidungsblock 533 gezeigte
Test, ob sich die Aufgabe, die ursprünglich die eben weggelassene laufende Aufgabe gerufen hat, im Beendigungs-Status befindet.
Wenn dies der Jail ist, muß die Rufer-Aufgabe wieder geprüft werden, um zu bestimmen, ob diese aus der Aktiv-Tabelle
weggelassen werden kann, von der nun die laufende Aufgabe weggelassen ist. Dies wird dadurch erreicht, indem man der Aufgabe, die die laufende Aufgabe gerufen hat, die Bestimmung oder
Bezeichnung der laufenden Aufgabe gibt, was in dem Programm einfach dadurch mechanisiert wird, indem man den laufenden
Aufgabe-Aktiv-Tabellen-Index so ändert, daß der Eintrag des
Rufers spezifiziert wird. Das Endaufgabenprogramm 510 wird dann erneut ausgeführt, wobei bei der Verbindung bzw. Anschluß
531 begonnen wird, wobei die Tests und Operationen,
die identisch mit denjenigen sind, die für die "alte" laufende Aufgabe beschrieben wurden, an der "neuen" laufenden
Aufgabe ausgeführt werden» Diese Operation wird für "neue" laufende Aufgaben aufeinanderfolgend höher in der Rufer-Kette
fortgesetzt, bis schließlich eine Aufgabe erreicht ist, die keinen Beendigungs-Status hat. An dieser Stelle wird das Gemeinschaftsprogramm
508 an der Verbindung bzw. Verbindungsstelle 501 erneut betreten, um eine Suche nach einer anderen
Aufgabe zu beginnen.
Wenn verschiedene untereinander bezogene Aufgaben, die ein komplettes Verarbeitungssystem bilden, ausgeführt werden, so
kann oftmals eine Aufgabe ihre Operation nicht vervollständigen, bis eine andere Aufgabe einen bestimmten Punkt in ihrer.
Ausführung erreicht hat. Es ist unökonomisch, einen Prozessor leer laufen zu lassen, bis die zweite Aufgabe die erforderliche
Stufe der Ausführung erreicht hat. Daher werden die Set ,Flag und Test Flag Befehle zum Zwecke der Kommunikation zwischen
den einzelnen Aufgaben vorgesehen. Wenn eine Aufgabe
- 42 - "
509830/06U
eine bestimmte Stufe in ihrer Ausführung erreicht, so kann der Programmierer diese Tatsache anderen aktiven Aufgaben
anzeigen, indem ein Set Plag Befehl ausgeführt wird. Jeden Set Plag Befehl ist ein benanntes Kennzeichen (flag) oder
Flags zugeordnet, von denen jedes durch die Programmierer definiert ist, die die Aufgabe schreiben, die mit diesem Kennzeichen
verkettet ist, und kann auf verschiedenen Wegen einer internen Bezeichnung zugeordnet sein, und zwar durch den
Compiler oder Assembler, die zum Aufbauen des Programms verwendet werden. Wenn einem Set Flag Befehl in der Ausführung
begegnet wird, so wird das Set Flag Programm 512 durch Er.ec
betreten. Es sei zunächst angenommen, daß nur ein einzelnes Kennzeichen durch den Set Flag Befehl spezifiziert ist. In
dem Set Flag Programm 512 symbolisiert der ovale Entscheidungsblock
550 eine Suche der Flag Tabelle, um festzustellen, ob das Kennzeichen (flag) an früherer Stelle in diese eingeschoben
wurde. Wenn dies nicht der Fall ist, so bedeutet dies, daß die laufende Aufgabe in ihrer Ausführung eine Stelle erreicht
hat und wahrscheinlich erforderliche Daten für andere Aufgaben erzeugt hat, bevor diese sie brauchten. Das Kennzeichen
wird in die Flag Tabelle im Set Zustand durch die Operationen im Block 555 eingeschoben, so daß andere Aufgaben, die
dieses Kennzeichen später testen, dann feststellen, daß es gesetzt ist und mit ihrer Verarbeitung fortfahren. Nach Eintritt
und Setzen des Kennzeichens,kann die Ausführung der laufenden
Aufgabe fortgesetzt werden.
Wenn das Kennzeichen bereits in die Kennzeichentabelle eingegeben wurde, muß die zusätzliche Frage, die dem ovalen Entscheidungsblock
551 gestellt wird, erledigt werden. Wenn sich
das Kennzeichen im Set Zustand befindet, so bedeutet dies lediglich, daß eine andere Aufgabe das Kennzeichen vor der laufenden
Aufgabe gesetzt hat. Auch in diesem Fall wird die Aus-
- 4-3 -
509830/0614
führung der laufenden Aufgabe erneut gestartet, wo damit aufgehört
wurde, und zwar vor der Ausführung der Set Flag Funktion. Wenn jedoch das Kennzeichen nicht gesetzt ist, dann
muß es in der Kennzeichentabelle gesetzt werden. Wie weiter in dem Operationsblock 552 die Tatsache hervorgeht, daß das
Kennzeichen in der Kennzeichentabelle gewesen ist, jedoch nicht gesetzt ist, bedeutet, daß das Kennzeichen früher getestet
wurde und entweder in der Kennzeichentabelle nicht gefunden wurde oder in der Kennzeichentabelle im Nicht Besetzt-Zustand
gefunden wurde. Das Ergebnis hiervon bestand darin, jede testende Aufgabe im Status von Ausführen nach
V/arten zu ändern. Zu dieser Zeit wurde die Kennzeichentabelle mit diesen Aufgaben, die sich nun im Warte-Status befinden,
dadurch verbunden, indem deren Aktiv—Tabelle—Eintrag—Index
in das Aufgabenfeld des Kennzeichentabellen—Eintrags für das Kennzeichen eingegeben wurde. Der Aktiv—Tabellen-Eintrag
für jede dieser Aufgaben, die sich im Warte-Status befinden, muß eingegeben werden und deren Status muß sich von Warten
nach Bereit ändern, so daß deren Ausführung eventuell wieder aufgenommen werden kann. Wenn an dieser Stelle der Set Flag
Befehl so spezifiziert wurde, kann das Kennzeichen weggelassen werden, wie im Operationsblock 553 gezeigt ist. Nachdem
die Operationen des Operationsblocks 552 durchgeführt wurden, so wird an der Verbindung 503 für die weitere Ausführung der
laufenden Aufgabe das Gemeinschaftsprogramm 508 wieder betreten.
Das Test Flag Programm 511 ist fest auf das Set Flag Programm
512 bezogen. Dies stellt den zweiten Wegdar, in welchem die Aufgabenoperationen aufgeschoben werden können. Während der
End-Aufgaben-Befehl dauernd den bestimmten Ruf der verwickelten
Aufgabe beendet, schiebt der Test Flag Befehl nur zeitweilig die Ausführung der Aufgabe auf, und zwar schwebend
- 44 -
509830/0614
bis zum Setzen des Kennzeichens durch den zuvor erwähnten Set Flag Befehl. Jede Test Hag Referenz besitzt einen Kennzeichen-Bezeichner,
der dieser in der ursprünglichen Codierung zugeordnet ist, der das Kennzeichen spezifiziert, welches
in einer Weise, ähnlich derjenigen der Set Flag Operation zu testen ist. Im Test Flag Programm 5ΑΛ besteht die
erste Operation, die durch den Entscheidungsblock 5*K) symbolisiert
ist, aus einer Suche nach der Kennzeichentabelle, um zu bestimmen, ob das durch die Test Flag Operation spezifizierte
Kennzeichen in der Kennzeichentabelle ist. Wenn dies der Fall ist, wird das Kennzeichen geprüft, um zu bestimmen,
ob es gesetzt ist oder nicht, wie dies im Entscheidungsblock 5^1 beschrieben ist. Wenn das Kennzeichen gesetzt
ist, kann die Ausführung der laufenden Aufgabe fortgesetzt werden. Bevor zur laufenden Aufgabe zurückgekehrt wird, muß
das Kennzeichen weggelassen werden, wenn die Test Flag Referenz einen solchen Befehl enthält. Dies kann einfach beim
Operationsblock 5^5 dadurch erzielt werden, indem man den
Kennzeichen-Identifizierer auf einen vorbestimmten Wert einstellt, der ein Leer-Kennzeichentabelle-Datenwort spezifiziert.
Dann wird an der Verbindungsstelle 503 das allgemeine
Programm 508 betreten. Wenn jedoch die erste Entscheidung,
ob das Kennzeichen in der Kennzeichentabelle ist, in negativer Weise beantwortet wird, dann wird das Kennzeichen in die
Kennzeichentabelle nicht gesetzt eingeschoben und der Aktiv-Tabellen-Eintrag-Index
der laufenden Aufgabe wird in das Aufgabenfeld des Kennzeichentabellen-Eintrags für das Kennzeichen
im Operationsblock 54-2 eingegeben. Wenn dies durchgeführt
ist oder wenn das Kennzeichen ursprünglich in der Kennzeichentabelle in einem nicht gesetzt-Zustand enthalten war,
das sich beim Eingang zur Verbindungsstelle 5^-3 vom ovalen
Entscheidungsblock 54-1 ergibt, dann wird die laufende Aufgabe
von Ausführen zu Warten-Status geändert, wie dies im Operationsblock 544 gezeigt ist. Als Teil dieser Statusänderung
- 4-5 509830/0614
werden die Abschnitte der Prozessor-Speicher-Operationszone
200b, die für eine spätere Ausführung der laufenden Aufgabe
erforderlich ist, in ECS 100 gespeichert. Diese Zone oder Zonen werden durch das Prozessor-Sicherheitszonenfeld des
Aktiv-Tabellen-Eintrags der laufenden Aufgabe spezifiziert. Das ECS Aufgaben-Zonenfeld für den Aktiv-Tabellen-Eintrag
der laufenden Aufgabe und das zugeordnete Vorlaufprogramm
müssen ebenfalls auf den neuesten Stand gebracht werden, um ein Fortführen der Ausführung der Aufgabe zu ermöglichen,
wenn das Kennzeichen endgültig gesetzt ist. Da eine weitere Ausführung der laufenden Aufgabe nicht unmittelbar erlaubbar
ist, wird bei der Verbindung 501 das allgemeine Programm 508
betreten, so daß der verkettete Prozessor eine neue Aufgabe für die Ausführung finden kann.
Es kann irgendeine Einrichtung für die Beseitigung eines Kennzeichens
verwendet werden. Es kann weggelassen werden, nachdem es eine bestimmte Anzahl von Malen getestet wurde. Ein anderes
Verfahren besteht darin, für das Kennzeichen ein Zeitlimit vorzugeben,'
welches nach Verstreichen der bestimmten Zeit das Weglassen desselben bewirkt. Die Set Flag Operation kann ebenso
Angaben enthalten, entweder ein ausgewähltes Kennzeichen zu löschen oder wegzulassen, ohne zu setzen.
Wenn die Angabe vorhanden ist, einem Test Flag Befehl zwei oder mehrere Kennzeichen zu spezifizieren, und zwar durch
Vereinbarung, so ist zu erwähnen, daß ein einzelner Set-Zustand in einem spezifizierten Kennzeichen ausreichend ist
zu ermöglichen, daß die Verarbeitung der laufenden Aufgabe fortgesetzt wird. Die ovalen Entscheidungsblocks 5^-0 und 5^1.
müssen abgewandelt werden, um alle die spezifizierten Kennzeichen zu testen. Wenn keines gesetzt ist, können vorhandene
Operationen in den Blöcken 54-2 und 544 durchgeführt werden.
- 46 509830/0614
Es gibt offensichtlich verschiedene System-Halteprogramme, die für eine wirksame Verwendung des Systems erforderlich
sind. Zunächst muß natürlich das System letzten Endes Richtlinien von dem menschlichen Benutzer erhalten. Dies geschieht
in Form von Eingaben in die wahlweise gewählten peripheren Vorrichtungen 103a, b usw. und kann beispielsweise über
Hollerith-Karten, Schreibmaschinen oder Papierstreifen erfolgen.
Es muß ein Eingabe-Handhabungsprogramm vorhanden sein, dessen Durchführung nur von den Prozessoren vorgenommen
werden kann, an die die peripheren Vorrichtungen 103a, b usw. angeschlossen sind. Die in dieser Eingabe bzw. Eingang
enthaltenen Befehle bewirken eine Aktivierung verschiedener Aufgaben, um Eingangsdaten einzulesen und zu verarbeiten.
Wenn z.B. eine Programmanordnung erforderlich ist, so kann ein Eingangs-Kartenstapel eine Kontrollkarte enthalten, die
das Anordnungsprogramm spezifiziert, das dann die Aktivierung der Anordnungs-Steueraufgabe bewirkt. Diese Aufgabe
würde dann andere Aufgaben aktivieren, wie dies erforderlich ist, um einen Kartenstapel einzulesen, der die Codierung,
Ausführung der Anordnung, Bildung eines Ausgangsprogramm-Magnet streif ens, Erzeugen eines Ausdrucks des "angeordneten
Programms und Ausführung des angeordneten Programms enthält. Solche Programme sind natürlich gut bekannt.
Zweitens sind die Programme bei irgendeinem normal arbeitenden System, die den Benutzern verfügbar sind, fortwährend in
Änderung. Es sind somit Zusätze und Weglassungen zu bzw. von der Aufgaben-Beschreibungstabelle häufig wünschenswert. Eine
zweite Aufgabe oder Gruppe von Aufgaben kann zugeordnet sein, um die Aufgaben-Beschreibungstabelle zu unterhalten. Da jedoch
die Aufgaben-Beschreibungstabelle äußerst wichtig ist, die Vollständigkeit und Leistung des Systems zu erhalten,
sollten spezielle Vorkehrungen getroffen sein, um nur bestimmten authorisierten Programmen zu ermöglichen, sensitive
- 47 509830/06U
Abschnitte der Aufgabeh-BeSchreibungstabelle zu ändern. Dies
kann in Eorm eines Spezialsatzes von Zeichen geschehen, welche
die Residenz lenken, um Änderungen der Aufgaben-Beschreibungstabelle und der Aufgaben selbst zu ermöglichen. Da I/O
und ECS ΊΟΟ Operationen durch Software-Operationen gesteuert
werden, ist es einfach, einen.Speicherschutz für EOS 100 in der Eesidenz zu schaffen. Somit kann die Aufgaben-Beschreibungstabelle
effektiv erhalten werden.
- - 48 509830/0614
Claims (10)
1) einen für alle Elemente des örtlichen Prozessors zugriffsfähigen adressierbaren örtlichen Speicher,
der eine Zelle für eine laufende Aufgabe enthält;
2) eine die Aufgabe aktivierende Einrichtung, die ein Aufgabenrufsignal empfängt, welches eine Aufgabe
identifiziert, um einen Aktiv-Tabellen-Eintrag auf dieses ansprechbar zu machen, der eine Stelle der
identifizierten Aufgabe in dem Häuptspeicher spezifiziert
und welches ein Vielzustands-Status-Kennzeichen enthält,welches einen Bereitschaftszustand anzeigt
und um Signale an die Speicherzugriffs-Einheit abzugeben, so daß dadurch der Aktiv-Tabellen-Eintrag
in einer nicht verwendeten Zone einer Aktiv-Tabelle in dem Hauptspeicher gespeichert wird;
3) eine Aufgaben-Auswähleinrichtung, um an die Speicherzugriffseinheit
Signale abzugeben, um zu bewirken, daß wenigstens ein Aktiv-Tabellen-Eintrag von dem
auf ein Leerlaufsignal ansprechenden Hauptspeicher wiedergefunden wird, und die auf einen Bereitschafts-Zustand
des Status-Kennzeichens im wiedergefundenen Aktiv-Tabellen-Eintrag anspricht und die Zelle der
laufenden Aufgabe auf den Index des eben wiedergefundenen Aktiv-Tabellen-Eintrags stellt und Signale
an die Speicherzugriffseinheit abgibt, um
- 50 -
509830/06U
a) das Status-Kennzeichen des eben wiedergefundenen Aktiv-Tabellen-Eintrags auf einen Ausführ-Zustand
zu ändern und
b) die Aufgabe wiederzufinden, die den Aktiv-Tabellen-Eintrag durch die Zelle der laufenden Aufgabe indiziert
hat und diese in dem örtlichen Speicher zu speichern; und
4) eine Aufgaben-Ausführeinrichtung, um
a) jede auf ihre Speicherung in dem örtlichen Speicher ansprechende wiedergefundene Aufgabe auszuführen,
b) das Leerlaufsignal der Aufgaben-Auswähleinrichtung zuzuführen, die auf das Feststellen einer Aufgaben-Sperr-Instruktion
anspricht, und um
c) das Aufgaben-Rufsignal der Aufgabenaktivierungseinrichtung zuzuführen, die auf das Erfassen einer
Ruf-Instruktion anspricht.
2. Anlage nach Anspruch 1, die zum Verarbeiten von wenigstens einer Aufgabe ausgestattet ist, dadurch gekennzeichnet , daß die Aufgaben-Sperr-Instruktion
aus einer End-Instruktion in einer vorbestimmten Folge besteht, die das Ende der Aufgaben-Ausführung spezifiziert,
wobei das Aktiv-Tabellen-Eintrag-Status-Kennzeichen für die Aufgabe Weglaß- und Beendigungs-Zustände
annehmen kann und jeder Aktiv-Tabellen-Eintrag ein gerufenes Aufgabenfeld enthält, und daß wenigstens eine
Aufgaben-Ausführeinrichtung Mittel enthält, um ein Endaufgaben-Signal, welches auf das Erfassen einer
End-Instruktion anspricht, zuzuführen; und daß weiter wenigstens eine Aufgaben-Aktivierungseinrichtung Mittel enthält,
um in dem Aktiv-Tabellen-Eintrag, der auf jedes Aufgaben-Rufsignal ansprechbar gemacht ist, ein rufendes Auf-
509830/0614 - 51 -
gabenfeld vorzusehen, welches die Inhalte der Zelle der
laufenden Aufgabe enthält, und Mittel zum Zuführen von Signalen zur Speicherzugriffseinheit, um zu bewirken,
daß die Identität der gerufenen Aufgabe in das gerufene Aufgabenfeld des.Aktiv-Tabeilen-Eintrags eingeschoben
wird, der durch die Zelle der laufenden Aufgabe spezifiziert
ist; und daß weiter eine Aufgaben-Beendigungs—
einrichtung vorgesehen ist", um in Abhängigkeit vom Endaufgabensignal:
I) Signale der Speicherzugriffseinheit zuzuführen, damit das Status-Kennzeichen in dem Aktiv—Tabellen-Eintrag,
der durch die Zelle der laufenden Aufgabe indiziert ist, auf den Beendigungszustand zu setzen;"
II) ein Weglaßsignal abzugeben;
III) abhängig von dem Weglaßsignal, das Status-Kennzeichen jedes Aktiv-Tabellen-Eintrags zu prüfen, der durch
das gerufene Aufgabenfeld des Aktiv-Tabellen-Eintrags
indiziert ist, der durch die Zelle der laufenden Aufgabe indiziert ist, und, wenn das Status-Kennzeichen "
eines j.eden Aktiv-Tabellen-Eintrags sich im Beendigungszustand
befindet, das Status-Kennzeichen ged.es Aktiv-Tabellen-Eintrags, der durch die Zelle der laufenden
Aufgabe indiziert ist, in den Weglaßzustand zu ändern und um den in der Zelle der laufenden Aufgabe
gespeicherten Index aus dem gerufenen Aufgabenfeld des Aktiv-Tabellen-Eintrags, der durch das gerufene
Aufgabenfeld spezifiziert ist, zu entfernen; und
IV) das Status-Kennzeichen in jedem Aktiv-Tabellen-Eintrag, der durch das rufende Aufgabenfeld des Aktiv-Tabellen-Eintrags,
der durch die Zelle der laufenden Aufgabe spezifiziert ist, zu prüfen, und wenn sich
dieses im Beendigungszustand befindet, das rufende
- - 52 - . S09830/06U
Aufgabenfeld des Aktiv-iTabellen-Eintrags, der durch
die Zelle der laufenden Aufgabe indiziert ist, in die Zelle der laufenden Aufgabe einzuschieben und
ein Weglaßsignal abzugeben.
Anlage nach Anspruch 1, die zum Verarbeiten von wenigstens
einer Aufgabe ausgelegt ist, die in einer vorbestimmten Folge eine Set Flag-Instruktion mit einer Ziffernfolge,
die ein Kennzeichen spezifiziert, aufweist, dadurch gekennzeichnet , daß der Hauptspeicher eine
Speicherzone enthält, die die Kennzexchentabelle mit einem Eintrag aufzeichnet, der für die Zuordnung zu jedem
Kennzeichen verfügbar ist und ein Zustandsfeld mit Gesetzt- und Gelöscht-Zuständen besitzt, und ein Warten-Aufgabenfeld,
um wenigstens einen Aktiv-Tabellen-Eintrag-Index aufzuzeichnen; und daß wenigstens eine Aufgaben-Ausführeinrichtung
folgende Merkmale und Einrichtungen enthält:
a) eine Einrichtung zum Feststellen einer Set Flag-Instruktion und zum Abgeben eines das Vorhandensein eines primären
Kennzeichens anzeigendes Signal, welches auf den Zustand des Kennzeichens anspricht, welches durch die
Kennzeichen-Instruktion spezifiziert ist, die einen ihr zugeordneten Kennzeichen-iabellen-Eintrag enthält,
und um im anderen Fall ein das Fehlen eines primären Kennzeichens wiedergebendes Signal abzugeben; und
b) eine Kennzeichen setzende Einrichtung, die das primäre Kennzeichen-Vorhanden- und primäre Kennzeichen-Fehlen-Signal
empfängt und auf das primäre Kennzeichen-Vorhanden-Signal
anspricht, wenn das Zustandsfeld des Kenn— zeichen-Tabellen-Eintrags, welches dem durch die Set
Flag-Instruktion spezifizierten Kennzeichen zugeordnet ist, gelöscht ist, und die Signale an die Speicherzu-
- 53 509830/0614
griffseinheit abgibt, wodurch das Status-Kennzeichen
in wenigstens einem Aktiv-Tabellen-Eintrag, der durch das wartende Aufgabenfeld indiziert ist, auf seinen
Bereitschaftszustand gesetzt wird.
4-. Anlage nach Anspruch 3, dadurch gekennzeichne
t , daß ein Aktiv-Tabellen-Eintrag weiter ein Startadressenfeld enthält, welches eine örtliche Speicheradresse
aufzeichnet; und daß wenigstens eine der Aufgaben-Ausführeinrichtungen Mittel enthält, um zu bewirken, daß die
Ausführung der eingeladenen Aufgabe bei der Adresse beginnt, die in dem startenden Adressenfeld aufgezeichnet
ist.
5. Anlage nach Anspruch 3, dadurch gekennzeichnet,
daß wenigstens eine ein Kennzeichen setzende Einrichtung Mittel enthält, um das Zustandsfeld auf den
' gesetzten Zustand (set state) zu setzen, der auf das primäre Kennzeichen-Vorhanden-Signal anspricht.
6. Anlage nach Anspruch 3» die zum Verarbeiten von wenigstens
einer Aufgabe ausgelegt ist, die in einer vorbestimmten Folge eine Test-Kennzeichen-Instruktion mit
einer Ziffernfolge, die ein ,Kennzeichen spezifiziert,
aufweist, dadurch gekennzeichnet , daß der Aktiv-Tabellen-Eintrag, der der Aufgabe zugewiesen
ist, die die Test-Kennzeichen-Instruktion aufweist, ein
Status-Kennzeichen besitzt, welches einen Wartezustand annehmen kann, ein zeitweiliges Speicheradressenfeld
aufweist, um eine Hauptspeicheradresse aufzuzeichnen, und ein Startadressenfeld besitzt, um eine Adresse des
örtlichen Speichers aufzuzeichnen; daß weiter wenigstens
eine die Aufgabe ausführende Einrichtung Mittel enthält,
- 54 509830/06U
um eine Test-Kennzeicheh-Instruktion zu erfassen und die
darauf ansprechen, indem sie ein Test-Kennzeichen-Signal .zuführen, und weiter Mittel enthält, um die Ausführung
von Instruktionen aufzuhalten, die auf ein Zeichen-nichtgesetzt-Signal
ansprechen, daß wenigstens ein Prozessor folgende Einrichtungen und Merkmale aufweist:
A) eine Kennzeichentabelle-Nachschlage-Einrichtung (lookup means) für die Abgabe eines sekundären Kennzeichen-vorhanden-Signals,
die auf einen Kennzeichentabellen-Eintrag anspricht, der einem durch die Test-Kennzeichen-Instruktion
spezifizierten Kennzeichen zugewiesen war, und im anderen Fall ein sekundäres Kennzeichen-abwesend-Signal
abgibt;.
B) eine Kennzeichen-Testeinrichtung, die das sekundäre Kennzeichen-vorhanden- und Kennzeichen-abwesend-Signal
empfängt, um beim Ansprechen auf das sekundäre Kennzeichen-abwesend-Signal an die Speicherzugriffseinheit
Signale abzugeben, wodurch das Erzeugen eines Kennzeichen-Tabellen—Eintrags
in den Hauptspeicher erfolgt, der dem durch die Test-Kennzeichen-Instruktion spezifizierten
Kennzeichen zugewiesen ist und sein Zustands-Kennzeichen im gelöschten Zustand hat und dessen wartendes
Aufgabenfeld die Inhalte der Zelle der laufenden Aufgabe enthält, und die ein Kennzeichen-nichtgesetzt-Signal
abgibt; und auf das sekundäre Kennzeichen-gesetzt—Signal ansprechend das Zustands-Kennzeichen
in dem Kennzeichentabellen-Eintrag, der durch die Test-Kennzeichen-Instruktion spezifiziert ist,
testet und im nicht gesetzten lall (not set)
I) das Kennzeichen-nicht-gesetzt-Signal an die Auf- .
gaben-Ausführeinrichtung des verketteten Prozessors abgibt und
- 55 -50983G/06U
II) an die Speicherzugriffseinheit Signale abgibt, um
a) zu bewirken, daß das Feld des örtlichen
Speichers, welches die laufende Aufgabe hält, in einer zeitweiligen Aufgaben-Speicherzone
des Hauptspeichers aufgezeichnet wird und
b) innerhalb des Aktiv-Tabellen-Eintrags, der durch die Zelle der laufenden Aufgabe indiziert
ist, zu bewirken, daß die Adresse der zeitweiligen Aufgabenspexcherzone in dem Hauptspeicher in dem zeitweiligen Speicheradressenfeld
aufgezeichnet wird, das Status-Kennzeichen in seinen Wartezustand geändert wird und die Adresse der Instruktion, die
auf die Test-Kennzeichen-Instruktion folgt, in dem Startadressenfeld aufgezeichnet wird·
und schließlich ein Leerlaufsignal an die Aufgaben-Auswähleinrichtung abgibt.
7- Anlage nach Anspruch Λ, die wenigstens eine Aufgabe
verarbeiten kann, die in einer vorbestimmten Folge eine Test-Kennzeichen-Instruktion besitzt, in der eine ein
Kennzeichen spezifizierende Ziffernfolge enthalten ist, dadurch gekennzeichnet, . daß.der Hauptspeicher weiter eine Speicherzone enthält, die eine Kennzeichentabelle
aufzeichnet, welche für jedes Kennzeichen einen ein Zustandsfeld besitzenden Eintrag enthält, das
entweder einen gesetzten oder gelöschten Zustand aufweist, und ein wartendes Aufgabenfeld, das wenigstens einen Aktiv-Tabellen-Eintrags-Index
aufzeichnet; daß weiter der Aktiv-'Dabellen-Eintrag, der der die Test-Kennzeichen-Instruktion
besitzenden Aufgabe zugewiesen ist, ein Status-
509830/0614 - 56 -
Kennzeichen besitzt, welches einen Wartezustand annehmen kann, ein zeitweiliges Speicheradressenfeld zum Aufzeichnen
einer Hauptspeicheradresse und ein Startadressenfeld für die Aufzeichnung einer Adresse des örtlichen Speichers
enthältj daß weiter wenigstens eine Aufgaben ausführende
Einrichtung Mittel enthält, um eine Test-Kennzeichen-Instruktion zu erfassen und die auf diese Instruktion anspricht
und ein Test-Kennzeichen-Signal abgibt, und Mittel
enthält, um die Ausführung der Instruktionen abhängig von einem Kennzeichen-nicht-gesetzt-Signal aufzuhalten;
und daß wenigstens ein Prozessor folgende Merkmale und Einrichtungen aufweist;
A) eine Kennzeichentabelle-Nachschlage-Einrichtung (lookup
means) zum Abgeben eines sekundären Kennzeichen-vorhanden-Signals,
die auf den Kennzeichentabellen-Eintrag anspricht, der dem durch die Testkennzeichen-Instruktion
spezifizierten Kennzeichen zugewiesen war, und im anderen JTaIl ein sekundäres Kennzeichen-abwesend-Signal
abzugeben;
B) eine Kennzeichen-Testeinrichtung, die die sekundären Kennzeichen-vorhanden- und Kennzeichen-abwesend-Signa-Ie
empfängt, um abhängig von dem sekundären Kennzeichen-vorhanden-Signal
Signale an die Speicherzugriffseinheit abzugeben, so daß dadurch das Entstehen eines
Kennzeichentabellen-Eintrags in dem Hauptspeicher bewirkt wird, der dem durch die Test-Kennzeichen-Instruktion
spezifizierten Kennzeichen zugewiesen ist und sein Zustandskennzeichen sich im gelöschten Zustand
befindet und dessen wartendes Aufgabenfeld die Inhalte der Zelle der laufenden Aufgabe enthält, und
ein Kennzeichen-nicht-gesetzt-Signal abgibt; und daß
die Einrichtung abhängig von dem sekundären Kennzeichen-vorhanden-Signal
das Zustandskennzeichen in dem
509830/0614 - 57 -
Kennzeichentabellen-Eintrag, der durch die Test-Kennzeichen-Instruktion
spezifiziert ist, testet und im nicht gesetzten Fall (not set)
I) das Kennzeichen-nicht-gesetzt-Signal an die Aufgaben-Ausführeinrichtung
des verketteten Prozessors abgibt; und
II) Signale an die Speicherzugriffseinheit abgibt und bewirkt, daß
a) die Zone des örtlichen Speichers, der die laufende
Aufgabe hält, in einer zeitweiligen Aufgabenspeicherzone
des Hauptspeichers aufgezeichnet wird, und .
b) innerhalb des Aktiv-Tabellen-Eintrags, der durch - die Zelle der laufenden Aufgabe spezifiziert
ist, die Adresse der zeitweiligen Aufgabenspex—
cherzone in dem Hauptspeicher in dem zeitweiligen Speicheradressenfeld aufgezeichnet wird,
das Status-Kennzeichen in seinen Wartezustand geändert wird und die Adresse der Instruktion,
die auf die Test-Kennzeichen-Instruktion folgt, in dem Startadressenfeld aufgezeichnet wird;
und schließlich ein Leerlaufsignal an die Aufgaben—Auswähleinrichtung
abgegeben wird.
8. Anlage nach Anspruch 1, dadurch gekennzeichnet,
daß die Aufgabenaktivierungseinrichtung Mittel enthält, um in jedem Aktiv-Tabellen-Eintrag eine Ziffern- ,
folge einzuschließen, die wenigstens einen Prozessor spezifiziert,
der die Aufgabe ausführen kann, und daß die Aufgaben-Auswähleinrichtung weiter Mittel enthält, um zu
bestimmen, ob der Prozessor, von dem sie einen Teil darstellt, entsprechend dem Aktiv-Tabellen-Eintrag als zur
509830/0614*
Durchführung der Aufgabe bereit spezifiziert ist und wenn nicht die Aufgabe von der Auswahl ausgeschlossen
• wird.
9. Anlage nach Anspruch 1, dadurch gekennzeichnet,
daß ein Sperr-Flip-Flop vorgesehen ist, der einen Set- und einen gelöschten Zustand aufweist, und daß
jede Aufgaben-Ausführeinrichtung Mittel enthält, die auf das Unterbinden oder Sperren der Aufgabenausführung an
sprechen, um den Sperr-Flip-Flop zu prüfen und im gesetzten Fall (set) wartet, bis diese gelöscht ist und wenn
diese gelöscht ist, diese setzt und das Leerlaufsignal abgibt, und daß die Aufgaben-Auswahleinrichtung Mittel
enthält, um den Sperr—Flip-Flop nach dem Setzen eines
Status-Kennzeichens in den Ausführzustand zu löschen bzw. zurückzustellen.
10. Anlage nach Anspruch 9, dadurch gekennzeich net, daß eine Einrichtung vorgesehen ist, um nur
einer Aufgaben-Ausführeinrichtung zu einer Zeit zu ermöglichen, den Sperr-Flip-Flop zu prüfen.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/435,356 US4073005A (en) | 1974-01-21 | 1974-01-21 | Multi-processor computer system |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2449547A1 true DE2449547A1 (de) | 1975-07-24 |
Family
ID=23728063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19742449547 Withdrawn DE2449547A1 (de) | 1974-01-21 | 1974-10-17 | Computer- und datenverarbeitungsanlage |
Country Status (8)
Country | Link |
---|---|
US (1) | US4073005A (de) |
JP (1) | JPS50105040A (de) |
CA (1) | CA1012652A (de) |
DE (1) | DE2449547A1 (de) |
ES (1) | ES434009A1 (de) |
FR (1) | FR2258667B1 (de) |
GB (1) | GB1481609A (de) |
NL (1) | NL7500498A (de) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2649504A1 (de) * | 1976-10-28 | 1978-05-03 | Hertz Inst Heinrich | Verfahren zur konfiguration und funktion des rechnersystems einer zweiwegkabelfernsehzentrale |
DE2752557A1 (de) * | 1976-10-28 | 1979-05-23 | Hertz Inst Heinrich | Zentrale eines telekommunikationsnetzes |
EP0021287A2 (de) * | 1979-06-22 | 1981-01-07 | Fanuc Ltd. | Multi-Mikroprozessorsystem |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB1509193A (en) * | 1974-04-17 | 1978-05-04 | Nat Res Dev | Computer systems |
JPS596415B2 (ja) * | 1977-10-28 | 1984-02-10 | 株式会社日立製作所 | 多重情報処理システム |
US4276594A (en) * | 1978-01-27 | 1981-06-30 | Gould Inc. Modicon Division | Digital computer with multi-processor capability utilizing intelligent composite memory and input/output modules and method for performing the same |
US4245300A (en) * | 1978-06-05 | 1981-01-13 | Computer Automation | Integrated and distributed input/output system for a computer |
US4209839A (en) * | 1978-06-16 | 1980-06-24 | International Business Machines Corporation | Shared synchronous memory multiprocessing arrangement |
US4257097A (en) * | 1978-12-11 | 1981-03-17 | Bell Telephone Laboratories, Incorporated | Multiprocessor system with demand assignable program paging stores |
US4387427A (en) * | 1978-12-21 | 1983-06-07 | Intel Corporation | Hardware scheduler/dispatcher for data processing system |
US5241666A (en) * | 1979-06-04 | 1993-08-31 | Unisys Corporation | Variable rate improvement of disc cache subsystem |
US4868734A (en) * | 1984-04-30 | 1989-09-19 | Unisys Corp. | Variable rate improvement of disc cache subsystem |
JPS5654535A (en) * | 1979-10-08 | 1981-05-14 | Hitachi Ltd | Bus control system |
US4313161A (en) * | 1979-11-13 | 1982-01-26 | International Business Machines Corporation | Shared storage for multiple processor systems |
US4354227A (en) * | 1979-11-19 | 1982-10-12 | International Business Machines Corp. | Fixed resource allocation method and apparatus for multiprocessor systems having complementarily phased cycles |
US4306288A (en) * | 1980-01-28 | 1981-12-15 | Nippon Electric Co., Ltd. | Data processing system with a plurality of processors |
US4323966A (en) * | 1980-02-05 | 1982-04-06 | The Bendix Corporation | Operations controller for a fault-tolerant multiple computer 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 |
DE3072127D1 (en) * | 1980-02-28 | 1988-12-08 | Intel Corp | Data processing system |
US4379326A (en) * | 1980-03-10 | 1983-04-05 | The Boeing Company | Modular system controller for a transition machine |
US4400773A (en) * | 1980-12-31 | 1983-08-23 | International Business Machines Corp. | Independent handling of I/O interrupt requests and associated status information transfers |
US4430707A (en) | 1981-03-05 | 1984-02-07 | Burroughs Corporation | Microprogrammed digital data processing system employing multi-phase subroutine control for concurrently executing tasks |
US4394727A (en) * | 1981-05-04 | 1983-07-19 | International Business Machines Corporation | Multi-processor task dispatching apparatus |
JPS58140862A (ja) * | 1982-02-16 | 1983-08-20 | Toshiba Corp | 相互排他方式 |
US4590556A (en) * | 1983-01-17 | 1986-05-20 | Tandy Corporation | Co-processor combination |
US4561051A (en) * | 1984-02-10 | 1985-12-24 | Prime Computer, Inc. | Memory access method and apparatus in multiple processor systems |
JP2539352B2 (ja) * | 1984-06-20 | 1996-10-02 | 株式会社日立製作所 | 階層型多重計算機システム |
US4823256A (en) * | 1984-06-22 | 1989-04-18 | American Telephone And Telegraph Company, At&T Bell Laboratories | Reconfigurable dual processor system |
US4636948A (en) * | 1985-01-30 | 1987-01-13 | International Business Machines Corporation | Method for controlling execution of application programs written in high level program language |
EP0194024B1 (de) * | 1985-02-05 | 1992-09-09 | Digital Equipment Corporation | Vorrichtung und Verfahren zur Zugriffsteuerung in einer Mehrcachespeicherdatenverarbeitungsanordnung |
US4754398A (en) * | 1985-06-28 | 1988-06-28 | Cray Research, Inc. | System for multiprocessor communication using local and common semaphore and information registers |
JPH0752420B2 (ja) * | 1986-09-10 | 1995-06-05 | 株式会社日立製作所 | 入出力装置アドレス方式 |
DE3741953A1 (de) * | 1986-12-19 | 1988-06-30 | Nippon Telegraph & Telephone | Multiprozessorsystem und verfahren zur arbeitslastverteilung bei einem solchen |
US5241677A (en) * | 1986-12-19 | 1993-08-31 | Nippon Telepgraph and Telehone Corporation | Multiprocessor system and a method of load balancing thereof |
DE3789215T2 (de) * | 1986-12-22 | 1994-06-01 | American Telephone & Telegraph | Gesteuerter dynamischer Belastungsausgleich für ein Multiprozessorsystem. |
US5280604A (en) * | 1986-12-29 | 1994-01-18 | Nec Corporation | Multiprocessor system sharing expandable virtual memory and common operating system |
JPS63193233A (ja) * | 1987-02-06 | 1988-08-10 | Canon Inc | 機器制御装置 |
US5050070A (en) * | 1988-02-29 | 1991-09-17 | Convex Computer Corporation | Multi-processor computer system having self-allocating processors |
US5159686A (en) * | 1988-02-29 | 1992-10-27 | Convex Computer Corporation | Multi-processor computer system having process-independent communication register addressing |
US5062039A (en) * | 1988-09-07 | 1991-10-29 | International Business Machines Corp. | Sharing of workspaces in interactive processing using workspace name tables for linking of workspaces |
US5142638A (en) * | 1989-02-07 | 1992-08-25 | Cray Research, Inc. | Apparatus for sharing memory in a multiprocessor system |
EP0432075B1 (de) * | 1989-11-09 | 1997-02-26 | International Business Machines Corporation | Multiprozessor mit relativ atomaren Befehlen |
JP2839590B2 (ja) * | 1989-11-10 | 1998-12-16 | 株式会社東芝 | 命令割り当て装置及び命令割り当て方法 |
US5179702A (en) * | 1989-12-29 | 1993-01-12 | Supercomputer Systems Limited Partnership | System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling |
ATE133805T1 (de) * | 1990-07-16 | 1996-02-15 | Siemens Ag | Kommunikationssystem mit einem der zentralen steuerung dienenden multiprozessorsystem |
US5216612A (en) * | 1990-07-16 | 1993-06-01 | R. J. Reynolds Tobacco Company | Intelligent computer integrated maintenance system and method |
US5206952A (en) * | 1990-09-12 | 1993-04-27 | Cray Research, Inc. | Fault tolerant networking architecture |
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 |
US5448731A (en) * | 1990-11-20 | 1995-09-05 | International Business Machines Corporation | Method and apparatus for controlling the deferred execution of user requests in a data processing system |
JP2557136Y2 (ja) * | 1991-05-31 | 1997-12-08 | 松下電工株式会社 | 浴槽用架台のアジャスタ装置 |
US5727164A (en) * | 1991-12-13 | 1998-03-10 | Max Software, Inc. | Apparatus for and method of managing the availability of items |
US5491799A (en) * | 1992-01-02 | 1996-02-13 | Amdahl Corporation | Communication interface for uniform communication among hardware and software units of a computer system |
US5301324A (en) * | 1992-11-19 | 1994-04-05 | International Business Machines Corp. | Method and apparatus for dynamic work reassignment among asymmetric, coupled processors |
JP3408850B2 (ja) | 1992-12-09 | 2003-05-19 | 三菱電機株式会社 | クライアント・サーバシステムおよびその制御方法、並びにクライアント機装置 |
US5835953A (en) * | 1994-10-13 | 1998-11-10 | Vinca Corporation | Backup system that takes a snapshot of the locations in a mass storage device that has been identified for updating prior to updating |
US5649152A (en) * | 1994-10-13 | 1997-07-15 | Vinca Corporation | Method and system for providing a static snapshot of data stored on a mass storage system |
US5951672A (en) * | 1997-07-02 | 1999-09-14 | International Business Machines Corporation | Synchronization method for work distribution in a multiprocessor system |
GB2327783A (en) * | 1997-07-26 | 1999-02-03 | Ibm | Remotely assessing which of the software modules installed in a server are active |
JP3981238B2 (ja) * | 1999-12-27 | 2007-09-26 | 富士通株式会社 | 情報処理装置 |
US7233998B2 (en) * | 2001-03-22 | 2007-06-19 | Sony Computer Entertainment Inc. | Computer architecture and software cells for broadband networks |
US7035908B1 (en) * | 2001-07-26 | 2006-04-25 | Lsi Logic Corporation | Method for multiprocessor communication within a shared memory architecture |
US7209932B2 (en) * | 2002-03-25 | 2007-04-24 | International Business Machines Corporation | Method, system, and program for allocating tasks to a plurality of processors |
CN1318941C (zh) * | 2003-08-05 | 2007-05-30 | 华为技术有限公司 | 一种端口轮询选择方法 |
US7496917B2 (en) * | 2003-09-25 | 2009-02-24 | International Business Machines Corporation | Virtual devices using a pluarlity of processors |
US7549145B2 (en) * | 2003-09-25 | 2009-06-16 | International Business Machines Corporation | Processor dedicated code handling in a multi-processor environment |
US7478390B2 (en) * | 2003-09-25 | 2009-01-13 | International Business Machines Corporation | Task queue management of virtual devices using a plurality of processors |
JP4749431B2 (ja) * | 2005-03-04 | 2011-08-17 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | パイプラインスループットを促進するための方法及び装置 |
US10474365B2 (en) * | 2013-01-25 | 2019-11-12 | Stroz Friedberg, LLC | System and method for file processing from a block device |
CN109839903B (zh) * | 2017-11-27 | 2020-08-14 | 大族激光科技产业集团股份有限公司 | 多任务在线切割控制方法、系统以及激光切割设备 |
CN113687986B (zh) * | 2021-08-31 | 2024-09-13 | 上海阡视科技有限公司 | 一种芯片和处理单元的恢复方法 |
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 |
US12026501B2 (en) | 2022-03-07 | 2024-07-02 | Bank Of America Corporation | Automated process and system update scheduling in a computer network |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3349375A (en) * | 1963-11-07 | 1967-10-24 | Ibm | Associative logic for highly parallel computer and data processing systems |
US3350689A (en) * | 1964-02-10 | 1967-10-31 | North American Aviation Inc | Multiple computer system |
US3348210A (en) * | 1964-12-07 | 1967-10-17 | Bell Telephone Labor Inc | Digital computer employing plural processors |
US3421150A (en) * | 1966-08-26 | 1969-01-07 | Sperry Rand Corp | Multiprocessor interrupt directory |
US3480914A (en) * | 1967-01-03 | 1969-11-25 | Ibm | Control mechanism for a multi-processor computing system |
US3566363A (en) * | 1968-07-11 | 1971-02-23 | Ibm | Processor to processor communication in a multiprocessor computer system |
US3618040A (en) * | 1968-09-18 | 1971-11-02 | Hitachi Ltd | Memory control apparatus in multiprocessor system |
US3551892A (en) * | 1969-01-15 | 1970-12-29 | Ibm | Interaction in a multi-processing system utilizing central timers |
US3618045A (en) * | 1969-05-05 | 1971-11-02 | Honeywell Inf Systems | Management control subsystem for multiprogrammed data processing system |
US3560934A (en) * | 1969-06-10 | 1971-02-02 | Ibm | Arrangement for effecting vector mode operation in multiprocessing systems |
US3631405A (en) * | 1969-11-12 | 1971-12-28 | Honeywell Inc | Sharing of microprograms between processors |
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 |
US3683418A (en) * | 1970-04-16 | 1972-08-08 | Bell Telephone Labor Inc | Method of protecting data in a multiprocessor computer system |
US3716838A (en) * | 1970-08-24 | 1973-02-13 | Honeywell Inf Systems | Data processing system with selective character addressing of system store |
US3735360A (en) * | 1971-08-25 | 1973-05-22 | Ibm | High speed buffer operation in a multi-processing system |
US3771137A (en) * | 1971-09-10 | 1973-11-06 | Ibm | Memory control in a multipurpose system utilizing a broadcast |
US3760365A (en) * | 1971-12-30 | 1973-09-18 | Ibm | Multiprocessing computing system with task assignment at the instruction level |
US3723976A (en) * | 1972-01-20 | 1973-03-27 | Ibm | Memory system with logical and real addressing |
US3753234A (en) * | 1972-02-25 | 1973-08-14 | Reliance Electric Co | Multicomputer system with simultaneous data interchange between computers |
US3833889A (en) * | 1973-03-08 | 1974-09-03 | Control Data Corp | Multi-mode data processing system |
US3967247A (en) * | 1974-11-11 | 1976-06-29 | Sperry Rand Corporation | Storage interface unit |
-
1974
- 1974-01-21 US US05/435,356 patent/US4073005A/en not_active Expired - Lifetime
- 1974-09-12 CA CA209,124A patent/CA1012652A/en not_active Expired
- 1974-10-17 DE DE19742449547 patent/DE2449547A1/de not_active Withdrawn
- 1974-10-29 JP JP49124834A patent/JPS50105040A/ja active Pending
- 1974-12-30 GB GB56060/74A patent/GB1481609A/en not_active Expired
-
1975
- 1975-01-16 NL NL7500498A patent/NL7500498A/xx not_active Application Discontinuation
- 1975-01-21 FR FR7501828A patent/FR2258667B1/fr not_active Expired
- 1975-01-21 ES ES434009A patent/ES434009A1/es not_active Expired
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2649504A1 (de) * | 1976-10-28 | 1978-05-03 | Hertz Inst Heinrich | Verfahren zur konfiguration und funktion des rechnersystems einer zweiwegkabelfernsehzentrale |
DE2752557A1 (de) * | 1976-10-28 | 1979-05-23 | Hertz Inst Heinrich | Zentrale eines telekommunikationsnetzes |
EP0021287A2 (de) * | 1979-06-22 | 1981-01-07 | Fanuc Ltd. | Multi-Mikroprozessorsystem |
EP0021287A3 (en) * | 1979-06-22 | 1981-02-04 | Fanuc Ltd | Multi-microprocessorsystem |
Also Published As
Publication number | Publication date |
---|---|
FR2258667B1 (de) | 1980-09-12 |
FR2258667A1 (de) | 1975-08-18 |
US4073005A (en) | 1978-02-07 |
NL7500498A (nl) | 1975-07-23 |
CA1012652A (en) | 1977-06-21 |
AU7721375A (en) | 1976-07-15 |
JPS50105040A (de) | 1975-08-19 |
GB1481609A (en) | 1977-08-03 |
ES434009A1 (es) | 1977-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2449547A1 (de) | Computer- und datenverarbeitungsanlage | |
DE3851488T2 (de) | Registerverwaltungssystem mit Ausführung von Befehlen in Unordnung in einem Computerprozessor. | |
DE69227664T2 (de) | Hardwarekonfiguriertes Betriebssystemkern für einen Multitaskprozessor | |
DE69129526T2 (de) | Multiprozessorsystem und Verfahren zur Überwachung der Ausführung von Tasks in einem Multiprozesorsystem | |
DE3750306T2 (de) | System zum Gewährleisten der logischen Unversehrtheit von Daten. | |
DE3889578T2 (de) | Vorrichtung zur Sicherung und Rückspeicherung einer Registerinformation. | |
DE68921906T2 (de) | Verfahren für ein Multiprozessorsystem mit sich selbst zuordnenden Prozessoren. | |
DE69408601T2 (de) | System und Verfahren zur Emulierung von Vielfachprozess-Pipelines in einer Einprozessumgebung | |
DE68926775T2 (de) | System und Verfahren für eine allgemeine Schnittstelle für Anwendungsprogramme | |
DE69107506T2 (de) | Verfahren und Vorrichtung zur Gleichzeitigkeitssteuerung von gemeinsamen Datenaktualisierungen und Abfragen. | |
DE69628480T2 (de) | Ausnahmebehandlung in einem Datenprozessor | |
DE69114333T2 (de) | Rechner mit der Fähigkeit mehrere Befehle gleichzeitig auszuführen. | |
DE69623146T2 (de) | Verfahren und Vorrichtung zum Koordinieren der Benutzung von physikalischen Registern in einem Mikroprozessor | |
DE2714805A1 (de) | Datenverarbeitungssystem | |
DE69232045T2 (de) | Vorrichtung und verfahren zur ausführung von instruktionen in nicht sequentieller reihenfolge | |
DE2243956A1 (de) | Speicherprogrammierte datenverarbeitungsanlage | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE1524102B2 (de) | Elektronische, aus baueinheiten aufgebaute datenverarbeitungsmaschine | |
DE1499200B2 (de) | Datenverarbeitungsanlage mit vorranggesteuerter programm unterbrechung | |
DE3886756T2 (de) | Betriebsmittelzugriff für Multiprozessorrechnersystem. | |
DE2722099A1 (de) | Abfangeinrichtung fuer ein dv-system | |
DE4011745A1 (de) | Taskverfolgungseinrichtung | |
DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
DE2744251A1 (de) | Mehrprogramm/mehrprozess-computersystem | |
DE2101949A1 (de) | Verfahren zum Schutz von Datengruppen in einer Multiprocessing-Datenverarbeitungsanlage |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8141 | Disposal/no request for examination |