DE2449547A1 - Computer- und datenverarbeitungsanlage - Google Patents

Computer- und datenverarbeitungsanlage

Info

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
Application number
DE19742449547
Other languages
English (en)
Inventor
Thomas Randall Parkin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Control Data Corp
Original Assignee
Control Data Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Control Data Corp filed Critical Control Data Corp
Publication of DE2449547A1 publication Critical patent/DE2449547A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

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

PATENTANWÄLTE HENKEL, KERN, FEILER & HANZEL MXBEBSOBtE Minjiiinril· HIND TE1.EX= »s 2» sea HNKi. B ED UAR D-SCHMID-STRASSE 2
sz D-8000 IiDIfCHEII 90 ηι mgnchen wsan
TOfiGKAMME: ffiUJBSOB» MÜ8KBES
Data Ooipoiraifciaaa, Z449547
WiTOWiapoIis, gJEtirmesota^ V,St«A
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
Tabelle I
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
Tabelle II
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)

Patentansprüche Computer- und Datenverarbeitungsanlage zum Verarbeiten einer Vielzahl von diskreten Rechenaufgaben, von denen jede als Folge von digitalen Computer-Instruktionen ausgedrückt ist und von denen wenigstens eine Aufgabe eine Ruf-Instruktion enthält, die nach der Ausführung einer durch die Ruf-Instruktion spezifizierten Aufgabe anfragt, und mit wenigstens einer Aufgabe, die eine Aufgabensperr-Instruktion enthält, dadurch gekennzeichnet daß die Anlage folgende Merkmale und Einrichtungen enthält: A) einen adressierbaren Hauptspeicher, der Ziffernfolgen aufzeichnet, die in einem Aufzeichnungssxgnal enthalten sind, auf welches der Hauptspeicher bei der durch ein Adressensignal spezifizierten Adresse anspricht, und daß in ein Datensignal die digitale Folge zugeführt wird, die an der Adresse aufgezeichnet ist, welche durch das auf ein Wiederfindungssignal ansprechendes Adressensignal spezifiziert ist, und daß innerhalb vorbestimmter Zonen eine Vielzahl von Aufgaben und eine Aufgaben-Beschreibungstabelle speicherbar ist, welche die Informationen spezifiziert, die für die Aktivierung und Ausführung jeder Aufgabe erforderlich sind; B) eine Speicher-Zugriffseinheit mit einer Vielzahl von zugeordneten Paaren von Eingangs- und Ausgangskanälen, die Aufzeichnungs-, Wiederfindungs- und Adressensignale dem Hauptspeicher zuführt, der auf Aufzeichnungs- und Wiederfindungs-spezifizierende Funktionscodes anspricht, die von Daten und einem Adressiersignal in irgendeinem der Vielzahl der Eingangskanäle begleitet sindj und die wiedergefundenen Datenfolgen dem Ausgangskanal zuführt, - 4-9 509830/0614 der dem Eingangskanal zugeordnet ist, welcher den die Wiederfindungs-Funktion spezifizierenden lunktionscode empfängt; und C) eine Vielzahl von örtlichen Prozessoren, deren Elemente Daten über ein vorgewähltes Eingangs- und Ausgangs-Kanalpaar der SpeieherZugriffseinheit speichern und wiederfinden können, wobei jeder Prozessor folgende Merkmale und Einrichtungen aufweist:
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.
DE19742449547 1974-01-21 1974-10-17 Computer- und datenverarbeitungsanlage Withdrawn DE2449547A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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