DE2828544A1 - Anordnung zur behandlung von aufgaben in einem datenverarbeitungssystem - Google Patents
Anordnung zur behandlung von aufgaben in einem datenverarbeitungssystemInfo
- Publication number
- DE2828544A1 DE2828544A1 DE19782828544 DE2828544A DE2828544A1 DE 2828544 A1 DE2828544 A1 DE 2828544A1 DE 19782828544 DE19782828544 DE 19782828544 DE 2828544 A DE2828544 A DE 2828544A DE 2828544 A1 DE2828544 A1 DE 2828544A1
- Authority
- DE
- Germany
- Prior art keywords
- register
- task
- tde
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 16
- 230000008859 change Effects 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 14
- 230000015654 memory Effects 0.000 description 98
- 101100534223 Caenorhabditis elegans src-1 gene Proteins 0.000 description 18
- 238000003780 insertion Methods 0.000 description 16
- 230000037431 insertion Effects 0.000 description 16
- 230000007246 mechanism Effects 0.000 description 13
- 230000003247 decreasing effect Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 239000000872 buffer Substances 0.000 description 4
- 238000010977 unit operation Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 3
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 101100339481 Cochliobolus miyabeanus HOG1 gene Proteins 0.000 description 1
- 101100390736 Danio rerio fign gene Proteins 0.000 description 1
- 101100390738 Mus musculus Fign gene Proteins 0.000 description 1
- 101150009928 SRM1 gene Proteins 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003754 machining Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. 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)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
- Computer And Data Communications (AREA)
- Executing Machine-Instructions (AREA)
Description
EO9-76-014 " * . jo.sk
Anmelderin: International Business Machines
Corporation, Armonk, N. Y. 10504
Die Erfindung betrifft eine Anordnung zur Behandlung
von Aufgaben (Tasks) nach dem Oberbegriff des Anspruchs 1. Sie findet insbesondere Anwendung in Computersystemen mit gespeichertem Programm,
an denen Datenstationsberiützer im Dialogbetrieb arbeiten, oder in
Computersystemen mit gespeichertem Programm, die viele Jobs im Stapelbetrieb auszuführen haben, wie etwa in einem grossen System mit Multiprogramm-Betrieb.
Bisher verwendeten Computersysteme mit gespeichertem Programm eine
Kombination von Hardware und Software zur Behandlung von Aufgaben und zum Wechsel zwischen Aufgaben (Umschalten von einer Aufgabe zu einer
anderen). Bei der Kombination von Hardware und Software ergab sich eine Unterbrechungsstruktur mit einer festen Anzahl von Unterbrechungsstufen
oder -klassen, die in die Hardware eingebaut sind, und einer Auflösung des Wettbewerbs unter verschiedenen Aufgaben auf derselben Unterbrechungsstufe
durch die Software. Ausserdem hatten herkömmliche Systeme ein erstes Prioritätsschema für die Prozessor-Aufgaben und ein anderes
Prioritätsschema für Eingabe/Ausgabe-Aufgaben. In der vorliegenden Erfindung befindet sich der Prioritätsmechanismus oder die Aufgabenbehandlungsfunktion
ausschliesslich in der Hardware, und für die Prozessor-Aufgaben und die Eingabe/Ausgabe-Aufgaben wird ein gemeinsamer Mechanismus
benutzt. Durch diese Anordnung lässt sich eine mit herkömmlichen Systemen durchaus vergleichbare Leistung bei der Aufgabenbehandlung mit
einer leistungsschwächeren Zentraleinheit erzielen. Bisher konnten nur Datenverarbeitungsanlagen mit einer Hochleistungszentraleinheit für
809884/0758
RO9-76-014
2828S44
— 5 -
Anwendungen eingesetzt werden, welche die Bearbeitung einer grossen
Anzahl von Aufgaben verlangen. Im Gegensatz zu den von Unterbrechungen gesteuerten Systemen herkömmlicher Art gibt es liier keine erzwungene
Umschaltung auf die E/A-Verarbeitungsstufe, wenn E/A-Unterbrechungen bedient werden müssen. Der Bedarf eines E/A-Gerätes zur Bedienung wird
von der allgemeinen Aufgabenbehandlungsanordnung bearbeitet und das E/AGerät nur bedient, wenn die zugehörige E/A-Aufgabe die höchste Priorität
im System erhält. Der Status des eine Bedienung verlangenden E/A-Gerätes wird (nach der Bedienungsanforderung) während des nächsten Instruktionsabrufzyklus
eingeholt, oder zu vorgegebenen Zeiten während der Ausführung bestimmter laufender Instruktionen der aktiven Aufgabe. Ein Instruktionsabrufzyklus
der aktiven Aufgabe enthält immer eine Abfrage, um den Bedarf an E/A-Zyklen festzustellen und den E/A-Status zu retten.
Während der Ausführung bestimmter komplexer Instruktionen werden auch Prüfungen durchgeführt, um den Bearbeitungsbedarf für E/A-Ereignisse zu
ermitteln. Nachdem ein E/A-Ereignis abgehandelt ist, kann eine Aufgabenumschaltung
(ein Wechsel der Aufgabe) erfolgen, abhängig davon, ob die eine Bedienung erfordernde E/A-Aufgabe eine höhere Priorität hat als die
aktive Aufgabe.
Die Hauptaufgabe der Erfindung ist die Schaffung einer verbesserten
Aufgabenbehandlungs-Anordnung, die (a) eine kurze Antwortzeit hat, (b)
die Benutzung einer relativ leistungsschwachen Zentraleinheit in einem im Dialogbetrieb arbeitenden Computersystem ermöglicht, (c) eine variable
Anzahl (N) statt einer festen Anzahl von Prioritätsstufen hat, (d) das Setzen von Prioritäten unter Programmsteuerung ermöglicht, (e) für
Systemsteueraufgaben, Benutzeraufgaben und E/A-Aufgaben gemeinsam ist,
(f) die Kommunikation zwischen den Aufgaben mit der Aufgabensynchronisation koppelt, (g) mit virtuellem oder realem Speicher für alle Aufgabenbehandlungsfunktionen
einschliesslich der E/A-Aufgaben arbeiten kann und (h) den Zustand eines die Bedienung anfordernden E/A-Gerätes
aufnimmt, wobei es keine Rolle spielt, ob die E/A-iAufgabe jeweils gerade
die aktive^Aufgabe ist. ■
Die e^fiiidungsgemässe Anordnung, mit der diese" Ziele erreicht
werden können, i%t in den Patentansprüchen angegeben.
809884/0758
RO9-76-014
— 6 —
Die angestrebte Lösung wird dadurch ermöglicht, dass die Anordnung
zur Aufgabenbehandlung einen Aufgabenabfertigungsmechanismus und einen Mechanismus für die Kommunikation zwischen den Aufgaben enthält. Der
Aufgabenabfertiger (Task Dispatcher) macht das Aufgabenabfertigungselement (TDE) mit der höchsten Priorität in einer Aufgabenwarteschlange
(TDQ) aktiv. Die Aufgabenabfertigungselemente (TDE) stehen in der Aufgabenwarteschlange
(TDQ) in Prioritätsreihenfolge. Es gibt N Prioritätsstufen, und N ist variabel. Jede Aufgabe hat einen Prioritätsschlüssel,
der unter Programmsteuerung geändert werden kann. Die aktive Aufgabe lässt selbst Instruktionen ausführen, oder sie kommuniziert mit anderen
Aufgaben, um sie zur Erledigung von Arbeiten aufzufordern. Die anderen
Aufgaben befinden sich entweder in einem inaktiven, aber abfertigbaren Zustand oder in einem inaktiven Wartezustand. Der Instruktionsabrufzyklus
der aktiven Aufgabe fragt immer zuerst nach dem Ausführungbedarf von E/A-Ereigniszyklen oder Abfertigungszyklen. E/A-Ereigniszyklen haben
Vorrang gegenüber den Abfertigungszyklen. Den Status eines E/A-Gerätes erhält man während der E/A-Ereigniszyklen. Abfertigungszyklen sorgen für
die Speicherung des Status des alten Aufgabenabfertigungselementes (TDE) und für das Laden der Prozessor-Einrichtungen mit dem Status des neuen
TDE. Zum Aufgabenstatus gehören eine Instruktionsadresse, eine Instruktionslängenangabe,
ein Bedingungscode und Basisregisterangaben.
Für die Kommunikation zwischen den Aufgaben sind vorgesehen: Zählwertsendung, Nachrichtensendung, Zählwertempfang und Nachrichtenempfang.
Die aktive Aufgabe ruft den Nachrichtensendemechanismus oder den Zählwertsendemechanismus auf, um eine andere Aufgabe zur Erledigung
einer Arbeit aufzufordern, und sie ruft den Zählwertempfangsmechanismus
oder den Nachrichtenempfangsmechanismus auf, um festzustellen, ob die Arbeit von der anderen Aufgabe getan wurde. Wenn der Zählwertempfang oder
der Nachrichtenempfang nicht zufriedenstellend ist, d.h. die Arbeit nicht erledigt wurde, wird die aktive Aufgabe aus der Aufgabenwarteschlange
(TDQ) vom Empfangsmechanismus entnommen und vom Empfangsmechanismus in den inaktiven Wartezustand gesetzt. Zum Warten ist eine Sendeempfangsnachrichtenschlange
(SRQ) oder ein Sendeempfangszähler (SRC) vorgesehen. Das Aufgabenabfertigungselement (TDE) mit der höchsten
Priorität in der Aufgabenwarteschlange (TDQ) wird dann als aktive Aufgabe
809334/0758
RO9-76-014
-7- 2628544
eingeordnet. Die früher aktive Aufgabe bleibt im inaktiven Wartezustand,
bis die andere Aufgabe den Zählwertsende- oder Nachrichtensendemechanismus
aufruft, um anzuzeigen, dass sie die verlangte Arbeit beendet hat. Der Zählwertsendemechanismus und der Nachrichtensendemechanismus nehmen
inaktive, wartende TDE's aus der SRQ oder dem SRC und reihen sie in
Prioritätsreihenfolge in der TDQ ein. Wenn keine abfertigbaren TDE's in
der TDQ stehen, ist keine Arbeit mehr zu tun und das System befindet
sich im Leerlauf-oder Wartezustand.
Ein Ausführungsbeispiel der Erfindung ist in den beigefügten Zeichnungen
dargestellt und wird anschliessend näher beschrieben. Es zeigen:
Fign. 1-1 zusammen in einem Blockdiagramm ein die Erfindung ent-
und 1-2 . haltendes Datenverarbeitungssystem,
Fig. 2 die Verbindungen zwischen Benutzeraufgaben und E/A-Aufgaben
,
Fig. 3 die Formate der Warteschlangeninstruktionen und der
Objekte,
Fign* 4-1 die Wechselbeziehungen zwischen TDQ, SRQ, SRC, Instruk-
und 4-2 tionsstrom und Basisregistern,
Fig. 5 die Uebergänge der Aufgabenaktivität,
Fig. 6 die Reihenfolgebeziehungen bei Steuereinheitzyklen,
Fig. 7-1 die Sigrialbahnen für den Prozessor-Zyklus Tl,
und 7-2
Fign. 8-1 die Signalbahnen für den Prozessor-Zyklus T2,
und 8-2
Fign. 9-1 die Signalbahnen für den Prozessor-Zyklus T3,
und 9-2
809884/0758
RO9-76-014
Fign. 10-1 die Signalbahnen für den Prozessor-Zyklus Al, und · 10-2
Fign. 11-1 die Signalbahnen für den Prozessor-Zyklus A2, und 11-2
Fign. 12-1 die Signalbahnen für den Prozessor-Zyklus Sl, ■ und 12-2
Fign. 13-1 die Signalbahnen für den Prozessor-Zyklus S2 und 13-2
Fign. 14 Zeitdiagramme für die Prozessor-Zyklen Tl, T2, T3, Al, bis 20 A2, Sl und S2,
Fig. 21 in einem Ablaufdiagramm die Instruktions-Abrufzyklen,
Fig. 22 in einem Ablaufdiagramm die Abfertigungszyklen,
Fig. 23 in einem Ablaufdiagramm die E/A-Ereigniszyklen,
Fig. 24 in einem Ablauf diagramm die Zyklen für Zählwert senden, -Nachricht senden und Nachricht in eine Schlange setzen,
Fig.' 25 . in einem Ablaufdiagramm die Einsetzzyklen,
Fig. 26 Xn einem Ablaufdiagramra die Zyklen für Zählwert empfangen,
Nachricht empfangen und Nachricht aus der Schlange nehmen,
Fig. 27 in einem Ablaufdiagramm die Entnahmezyklen, Fig. 28 den Anfangszustand einer Aufgabe, die die Instruktion
Nachricht empfangen an eine Sendeempfangsschlange gibt,
Fig. 29 den Zustand der Aufgabenwarteschlange und der Sendeempfangsschlange,
nachdem die Nachrichtenempfangsinstruktion der Fig. 28 nicht ausführbar war,
809884-/0758 original .inspected
RO9-76-014
2328544
Fig. 1 zeigt ein Ausführungsbeispiel der Erfindung in einem Datenverarbeitungssystem
mit gespeichertem Programm, das einen konventionellen,
mittels der Speichersteuerung 15 wahlweise adressierbaren Hauptspeicher 10 enthält. Der Hauptspeicher 10 enthält auf Bytebasis orientierte
Instruktionen und Daten. Ein Byte besteht aus acht Bits, das Paritätsbit ausgeschlossen. Die Daten- und Adressbahnen voh und zum
Speicher haben Wortbreite, in diesem Beispiel parallel vier Bytes. Die Organisation des Hauptspeichers 10 ist bezüglich der vorliegenden
Erfindung nicht kritisch.
Der Hauptspeicher 10 ist selektiv adressierbar von der Speichersteuerung
15, die eine Adresse auf die Adress-Sammelleitung 16 gibt. Wenn eine Leseoperation stattfinden soll, stehen die Daten von der
adressierten Stelle auf der Lesedatenleitung 11 zur Verfügung und werden in das Datenregister 17 der Speichersteuerung 15 eingegeben. Während
einer Schreiboperation stellt die Speichersteuerung 15 Daten auf der Schreibdatenleitung 12 zur Verfügung, und diese Daten werden dann in die
adressierte Stelle im Speicher 10 geschrieben. Diese Lese- und Schreiboperationen
sind ganz konventionell.
Die Speichersteuerung 15 ist so geschaltet, dass sie Daten und
Adressen sowohl vom Prozessor (CPU) 30, als auch vom E/A-Kanal 500
empfängt. Der Prozessor 30 liefert Daten an das Register 17 auf der Sammelleitung 31 und Adressen an das Register 18 auf der Sammelleitung
32. Das Datenregister 17 ist so verbunden, dass es Daten über die Sammelleitung 19 an den Prozessor 30 gibt. Der E/A-Kanal 500 liefert
Daten und Adressen an die Register 17 und 18 über die Sammelleitungen
501 bzw. 502. Daten werden vom Register 17 über die Sammelleitung 20 an den Kanal gegeben. Der E/A-Kanal 500 ist an die E/A-Geräte 510 und
über den E/A-Adapter 505 bzw. die E/A-Steuerung 506 angeschlossen. Anzahl und Typ der an den E/A-Kanal angeschlossenen Geräte und die Art
ihrer Verbindung haben mit der vorliegenden Erfindung nichts zu tun. Der
E/A-Kanal 500 muss jedoch einen Bedarf für E/A-Ereignis-Zyklen signalisieren
können. Sobald E/A-Ereignis-Zyklen angefordert werden, liefert der Kanal' 500 ein Signal auf die Leitung 512 und schaltet so ein E/A-Kippglied. 94 im Prozessor 30 ein.
809884/0758
RO9-76-014
2820544
Fig. 30 den Zustand der Aufgabenwarteschlange und der Sendeempfangsschlange,
nachdem die aktive Aufgabe gemäss Fig. 29 eine Nachrichtensendeinstruktion an dieselbe Sendeempfangsschlange
gab, die auch die Instruktion zum Nachrichtenempfang erhielt,
Fig. 31 den Zustand einer Aufgabe, die eine Zählwertempfangsinstruktion
an eine Sendeempfangszählschlange gibt,
Fig. 32 ' eine E/A-Aufgabe als die eine Nachrichtensendeinstruktion an
eine Sendeempfangsschlange gebende aktive Aufgabe,
Fig. 33 den Zustand der Aufgabenwarteschlange und der Sendeempfangsschlange
nach Ausführung der Nachrichtensendeinstruktion gemäss Fig. 32, zur Dai stellung, dass die neue aktive Aufgabe
eine Nachrichtenempfangsinstruktion an dieselbe Sendeempfangsschlange gibt, an die die Nachrichtensendeinstruktion gegeben
wurde,
Fig. 34 eine neue aktive Aufgabe, die eine Nachrichtenempfangsinstruktion
an eine andere Sendeempfangsschlange gibt,
Fig. 35 den Zustand der Aufgabenwarteschlange, einer Nachrichtensendeempfangsschlange
und einer Sendeempfangszählschlange mit einem wartenden Aufgabenabfertigungselement,
Fig. 36 die E/A-Ereignis-Bearbeitungsanordnung,
Fig. 37 das Senden einer Mitteilung über die Beendigung an SRQ und
einer E/A-Operation an die Sendeempfangsschlange, und
Fig. 38 den Empfang der Nachricht von der Sendeempfangsschlange über
die Beendigung einer E/A-Operation, in der E/A-Manager-Aufgabe .
809884/0758
RO9-76-014
Das die Erfindung enthaltende Coinputersystem wird dadurch initialisiert,
dass man den Hauptspeicher 10 mit einer Aufgaben-Warteschlange
TDQ (Task Dispatching Queue) lädt, die aus einem oder mehreren Aufgabenabfertigungselementen
TDE (Task Dispatching Element) besteht. Unter "Aufgabe" ist hier die im Englischen mit "Task" bezeichnete Verarbeitungseinheit
verstanden. Die TDQ ist ein Systemobjekt, d.h., es ist eine Dateneinheit mit besonderer Bedeutung, z.B. Steuerdaten. Die TDQ ist
eine verkettete Objektliste und enthält Prozessor Statusinformationen
ausführbarer Aufgaben, wobei eine Aufgabe - in diesem Beispiel die oberste Aufgabe - die aktive Aufgabe ist, und alle anderen Aufgaben in
der Liste inaktive, abzufertigende Aufgaben sind. Das Format der TDQ ist
in Fig. 3 dargestellt als aus einer TDE-Kettungsadresse bestehend. Das Format der TDE's ist ebenfalls in Fig. 3 gezeigt. Während der Anfangsoperation des Systems wird das TDQ-Objekt lokalisiert, indem man eine
Adresse vom TDQ-SAR-Register 52 (in der SAR-Gruppe 50) überträgt an das
Adressregister 18. Das TDQ-SAR-Register 52 wird durch eine Adresse von
der Steuereinheit 100 auf der Sammelleitung 101 selektiert. Die SAR-Gruppe 50 (SAR = Speicheradressregister) enthält spezifische Register
mit Speicheradressen, die dazu gebraucht werden, auf von der vorliegenden
Erfindung betroffene Objekte und Instruktionen zu zeigen, sowie auch das normale Instruktionsadressregister IAR. Das IAR 51 enthält die
Adresse derjenigen Instruktion, die als nächste abzurufen und auszuführen ist, während die laufende Instruktion ausgeführt wird, d.h. es ist
ein Programmstellenzähler. Wie später noch zu sehen ist, kann der Inhalt jedes SAR-Registers der Gruppe 50 unter der Steuerung der Steuereinheit
100 erhöht oder erniedrigt werden, ohne ihn durch das Rechenwerk (RW)
45 laufen zu lassen. In diesem speziellen Fall ergibt jede Adresserhöhung
(Erniedrigung) um +1 (-1) eine Adressänderung um vier Bytes oder ein Wort. Das die vorliegende Erfindung enthaltende Computersystem kann
mehr als eine TDQ haben, dann ist aber eine TDQ die primäre TDQ und die anderen die sekundären TDQ1s.
Die im TDQ-Objekt enthaltene TDE-Adresse wird vom Speicher 10 in
das Datenregister 17 und von dort Ober die Sammelleitung 19 in das SA-Register
36.während eines Lesezyklus geleitet. Das SA-Register 36 ist ein Hauptspeicher-Operandenpuffer. Der Inhalt des SA-Registers 36 wird
über den A-Leitungsassembler 39 und die A-Leltung 40 an das Rechenwerk
809884/0758
RO9-76-014
~12~ 2820544
45 durchgeschaltet. Mit "Assembler" ist hier und im folgenden eine
Schaltungseinheit bezeichnet, die (ähnlich wie ein Konzentrator) mehrere
an ihre Eingänge angeschlossene Quellen wahlweise mit ihrer Ausgangs-Sammelleitung
verbinden kann. Das Rechenwerk 45 empfängt ein Signal von der Steuereinheit 100, durch das sie die Daten vom linken Eingang (A) in
das Ausgaberegister 46 (O-Reg.) weiterleitet. Das Rechenwerk 45 bekannter
Bauweise führt Zweierkoplement-Binäradditionsoperationen und Subtraktionsoperationen
aus, sowie UND-, ODER- und Antivalenzverknüpfungen. Artihmetische und logische Operationen setzen das AZ-Kippglied 96,
wenn alle Bits des Ergebnisses null sind. Während einer arithmetischen
Addition wird durch Setzen des AC-Kippgliedes 95 angezeigt, dass ein
üebertrag aus der werthohen Bitposition erfolgte. Bei einer Subtraktion
wird durch Setzen des AC-Kippgliedes 95 angezeigt, dass kein geborgter Betrag in die werthohe Bitposition geschrieben wurde. Uebertragungen
zwischen den Registern erfolgen im Durchlauf nach links oder rechts, ohne dass hierbei das AC-Kippglied 95 oder das AZ-Kippglied 96 gesetzt
werden. Das Ausgaberegister 46 fungiert als Ausgabepuffer des Rechenwerks 45, um das Ergebnis festzuhalten, bevor es auf die C-Sammelleitung
47 ausgegeben wird. Der Ausgang des Ausgaberegisters 46 ist mit der C-Sammelleitung
47 und dem D-Leitungsassembler 48 verbunden. Der D-Leitungsassembler 48 speist die Register der SAR-Gruppe 50 über die D-Sammelleitung
49. In diesem Fall liefert die Steuereinheit 100 ein Signal an den D-Leitungsassembler 48, damit dieser die C-Sammelleitung
47 als Quelle wählt, und sie liefert eine Adresse über die Sammelleitung 101 zum Ansteuern des CTDE-SAR-Registers 53, wodurch die laufende TDE-Adresse
in das Register 53 eingegeben wird.
Die gerade beschriebene Operation läuft während eines Prozessor-Zyklus
T2 ab, der in Fig. 8 und 15 dargestellt ist und später noch genauer beschrieben wird. Im Prozessor-Zyklus T2 wird der Inhalt eines als
Quellenregister wirkenden Registers über die A-Sammelleitung 40 in ein
Bestimmungsregister der C-Sammelleitung 47 übertragen.
Das Register 53, das die laufende TDE-Adresse enthält (CTDE), hält
diese Adresse während der ganzen Dauer der zugehörigen Aufgabe. Somit muss auch ein Arbeitsregister mit der laufenden TDE-Adresse geladen
werden, die erhöht oder erniedrigt werden kann, um so die Prozessor-Register mit Adress- und Statusinformation des betreffenden TDE zu laden.
809884/0758
RO9-76-014
Wenn die laufende TDE-Adresse vom Register 53 in dieses Arbeitsregister
übertragen wird, bleibt sie natürlich auch im Register 53. Das Register 53 enthält die Adresse des zu Beginn der laufenden Instruktion aktiven
TDE. Wenn das Abfertigungs-Kippglied 93 (D-Kippglied) während der Ausführung der laufenden Instruktion gesetzt wird, dann wird zu Ausführungsbeginn
der nächsten Instruktion der Inhalt des Registers 53 mit der Adresse des obersten TDE in der TDQ verglichen, um festzustellen, ob ein
Aufgabenwechsel erforderlich ist. Dies ist möglich, wenn inzwischen ein anderes TDE das oberste TDE in der TDQ wurde. Wenn die Adresse des
laufenden TDE daher nicht mit der Adresse des obersten TDE übereinstimmt, ist dies der Fall. Auf das oberste TDE in der TDQ wird natürlich
vom TDQ-Objekt her verwiesen. Zur Uebertragung der laufenden TDE-Adresse
vom Register 53 in das OPl-SAR-Register 54 ist daher ein weiterer
Zyklus T2 des Prozessors erforderlich. Die TDE-Adresse im OPl-SAR-Register
54 wird dann um zwei Wortlängen erhöht, damit sie auf das im TDE enthaltene Instruktionsadressfeld (IA) zeigt.
Die laufende TDE-Adresse wird um zwei Wortlängen erhöht durch einen
A2-Zyklus des Prozessors, der später noch genauer beschrieben wird. Während eines solchen Zyklus wird die SAR-Gruppe 50 über die Steuereinheit
100 adressiert, wodurch der Inhalt des OPl-SAR-Registers 54 auf die
Sammelleitung 32 gegeben wird, wodurch nicht nur das Adressregister 18, sondern auch der Assembler 39 für die Α-Sammelleitung gespeist werden.
Die Steuereinheit 100 gibt ein Wahlsignal an den Assembler für die A-Sammelleitung
40, damit dieser die Sammelleitung 32 als Quelle wählt. So wird die laufende TDE-Adresse auf den linken Eingang des Rechenwerks 45
über die A-Sammelleitung 40 geleitet. Die Steuerung 100 veranlasst auch
den Codierer 60 zur Abgabe des Wertes 2 über die Sammelleitung 61 an den Assembler 62 für die B-Sammelleitung 63 und über diese auf den rechten
Eingang des Rechenwerks 45. Aufgrund eines Steuersignales von der Steuerung 100 führt das Rechenwerk 45 dann eine Addition durch, und deren
Ergebnis wird in das Ausgaberegister 46 gesetzt. Die Adresse läuft dann vom Ausgaberegister 46 über die Sammelleitung 47, den Assembler
48 für die D-Sammelleitung 49 und von dort in das OPl-SAR 54.
809884/0758
RO9-76-014
Die jetzt im OPl-SAR 54 stehende erhöhte Adresse wird dann in das Adressregister 18 als Teil eines Zyklus Sl übertragen, der später noch
beschrieben wird. Die Adresse im Register 18 wird durch die Speichersteuerung 15 über die Adress-Sammelleitung 16 in den Hauptspeicher 10 geleitet.
Das auf der Lesedatenleitung 11 aufgrund einer Leseoperation im Hauptspeicher 10 erscheinende Wort wird in das Datenregister 17 eingegeben
und auf die Wortsammelleitung 19 gesetzt. Das Wort auf der Wortsammelleitung
19 wird dann in das SA-Register 36 eingegeben. Während dieses Zyklus Sl wird die vom OPl-SAR 54 genommene Adresse auch an die Inkrementierschaltung
59 geleitet, welche die Adresse um Eins erhöht und sie an den Assembler 48 für die D-Sammelleitung 49 weiterleitet, wodurch
sie in das Register 54 zurückgegeben wird, so dass sie jetzt auf das
nächste Wort des TDE zeigt, das in diesem Fall das Codefeld für die Instruktionslänge
(IL) und das Eadingungscodefeld (CC) der ersten zu der
Aufgabe gehörenden Instruktion enthält.
Das SA-Register 36 enthält die Adresse der ersten zu der Aufgabe gehörenden Instruktion. Diese Adresse wird durch den Prozessor-Zyklus T2
in das Instruktionsadressregister (IAR) 51 eingegebn. Bevor die zu der Aufgabe gehörende erste Instruktion geholt wird, müssen die übrigen
Wörter des TDE geholt werden. Die erhöhte Adresse im OPl-SAR 54 wird daher in das Adressregister 18 eingegeben und das nächste Wort des TDE vom
Hauptspeicher 10 gelesen. Die in diesem nächsten Wort enthaltene Instruktionslängenangabe
(IL) und der Bedingungscode (CC) werden in das IL-Register 38 bzw. das CC-Register 65 eingegeben. Während dieses Prozessor-Zyklus
Sl wird die Adresse aus dem Register 54 wieder durch die Inkrementierschaltung 59 erhöht und in das Register 54 zurückgestellt.
Die Adresse vom Register 54 wird dann wieder in das Adressregister 18 übertragen, dadurch der Hauptspeicher 10 wieder adressiert und das Wort
von der adressierten Stelle im Hauptspeicher über die Lesedatenleitung 11 in das Datenregister 17 übertragen. Der Inhalt des Registers 17 wird
dann in das SA-Register 36 eingegeben. Während dieses Zyklus Sl wird die Adresse aus dem Register 54 wieder erhöht und in das Register 54 zurückgegeben,
genauso wie es oben beschrieben wurde. Der Inhalt des SA-Registers 36 wird in ein Arbeitsregister in der LSR-Registergruppe 70 übertragen.
Welches Register gewählt wird, hängt von einer Adresse ab, die
809884/0758
RO9-76-014
-is- 2928544
vom P-Register 90 geliefert wird. Das P-Register 90 ist ein Zählregister
für die indirekte Adressierung der LSR-Registergruppe 70 und kann um Eins erhöht oder erniedrigt werden, ohne dass sein Inhalt durch das
Rechenwerkes laufen muss. In diesem Fall wird das P-Register 90 mit
einer Adresse durch den Prozessor-Zyklus Tl geladen,, der später noch
genauer beschrieben wird. Während eines Prozessorzyklus Tl liefert die Steuerung 100 ein Signal an den Codierer 60, damit dieser den Wert Null
an den Assembler 62 für die B-Sammelleitung 63 abgibt und so das Basisregister Null der LSR-Registergruppe 70 adressiert. Der vom Assembler 62
an die B-Sammelleitung 63 weitergeleitete Null-Wert gelangt in das Rechenwerk 45 und von dort in das Ausgabe-Register 46. Der Null-Wert
verlässt dann das Ausgaberegister 46 über die Sammelleitung 47 und gelangt zum P-Register 90, wo er zur Adressierung der LSR-Registergruppe
70 über die Sammelleitung 91 zur Verfügung steht. Mit der Adresse im P-Register 90 wird während eines Prozessor-Zyklus T2 der Inhalt des SA-Registers
36 in das adressierte Basisregister Null der LSR-Registergruppe 70 übertragen. Die gerade beschriebene Operation wiederholt sich, bis
alle Felder des aktiven TDE vom Hauptspeicher 10 geholt wurden. Die übrigen Felder des TDE werden in die Basisregister 1 bis 15 der LSR-Registergruppe
70 geladen.
Die nächste Operation ist der Abruf der ersten Instruktion der
aktiven Aufgabe, da jetzt alle Felder des TDE geholt und in die entsprechenden
Register geladen worden sind. Obwohl die Erfindung das nicht erfordert, wird in diesem speziellen Beispiel eine Instruktion vorher
geholt (Vorabruf) und in das Instruktionsregister 35 eingegeben,und dann
folgt ein Instruktionsabrufzyklus. Die vorliegende Erfindung ist jedoch
nicht von dem zur Leistungsverbesserung in Computersystemen bekannten Vorabruf von Instruktionen abhängig. Die Vorabrufoperation betrifft zwei
Zyklen Sl, wobei im ersten Zyklus Sl die hohe Hälfte des Instruktionsregisters
35 über die Wortsammelleitung 19 und' in dem zweiten Zyklus Sl
die untere Hälfte des Instruktionsregisters 35 geladen wird. Das Instruktionsregister
35 ist zwei Wörter breit und puffert die nächste Instruktion des ausgeführten Instruktionsstroraes. Instruktionen können natürlich
verschiedene Längen haben. Das in Fig. 1 gezeigte Computersystem kann.
Instruktionen mit der Länge- eines Halbwortes, eines Vollwortes oder von
anderthalb Wörtern, d.h. mit einer Länge von 2, 4 oder 6 Bytes verar-
809884/0758
RO9-76-014
Der Instruktionsabrufzyklus für diese Instruktionen ist in Fig.
gezeigt. Der Instruktionsabruf für eine zwei Byte grosse Instruktion ist jedoch nicht dargestellt, weil keine der die vorliegende Erfindung betreffenden
Instruktionen zwei Bytes gross ist. Jede Instruktion hat natürlich einen OP-Code, und der enthält in diesem Fall auch Bits, die
die Instruktionslänge angeben. Während eines Instruktionsabrufes fragt die Steuerung 100 zuerst den Status eines Abfertigungszyklus-Kippgliedes
93 (D-Kippglied) und eines E/A-Kippgliedes 94 ab. Am Anfang der ersten
Aufgabe sind diese beiden Kippglieder zurückgestellt. Der OP-Code wird vom OP-Code-Decodierer 41 und die Instruktionslänge vom IL-Decodierer
decodiert. Die aus der Decodierung des OP-Code resultierenden Signale werden an die Steuereinheit 100 übertragen, und die die Instruktionslänge anzeigenden Signale vom IL-Decodierer 42 weitergeleitet zum Setzen
eines Kippgliedes 92, wenn die Instruktion 6 Bytes lang ist, und zum Rückstellen dieses Kippgliedes, wenn die Instruktion weniger als 6 Bytes
lang ist. Die Steuerung 100 fragt das Kippglied 92 ab, und es wird ein Tl-Zyklus durchgeführt, wodurch die Steuerung 100 ein Signal an den Codierer
60 liefert, der dann einen die Instruktionslänge bezeichnenden Wert ausgibt. Dieser ausgegebene Wert wird dann in das IL-Register 38
während eines Zyklus Tl eingegeben.
Der Instruktions-Abrufzyklus läuft weiter, wobei der Inhalt des IL-Registers
38 in einem Prozessor-Zyklus Al zum laufenden Inhalt des IAR 51 addiert wird. Das Ergebnis wird ins IAR 51 zurückgegeben. Um den Wert
im IAR 51 zu ändern, wird eine Byteaddition durchgeführt. Durch Addieren eines IL-Registerwertes von vier oder sechs zum Inhalt des IAR 51 wird
die Speicherwortadresse also um eine Wortlänge bzw. anderthalb Wortlängen erhöht. Dadurch erhält das IAR 51 eine Adresse, die auf die
nächste Instruktion der Aufgabe zeigt. Das IL-Register 38 hält die Länge der gegenwärtig ausgeführten Instruktion fest. Die Länge wird
als Binärzahl ohne Vorzeichen festgehalten. Ein Prozessor-Zyklus T2 wird
durchlaufen, indem das I-Feld der Instruktion zur späteren Benutzung in
das P-Register 90 gesetzt wird. Anschliessend folgt ein weiterer Pro
zessor-Zyklus T2, in dem das OPl-FeId in das OPl-SAR 54 gesetzt wird.
Dann folgt ein Zyklus Sl zum Lesen von Daten aus dem Hauptspeicher 10
809884/0758
R09-76-014
-»- 282854A
und Uebertragen auf die Wortsammelleitung 19 und von dort in das SA-Register
36, wodurch der erste Operand der Instruktion geholt ist. Dann wird die Stellung des Kippgliedes 92 abgefragt, und wenn es sich um eine
sechs Byte lange Instruktion handelt, wird ein Zyklus T2 begonnen, um das OP2-SAR 55 mit dem Inhalt des OP2-Feldes der Instruktion zu laden.
Diesem Zyklus T2 folgt dann ein Zyklus Sl, in dem Daten aus dem Hauptspeicher 10 gelesen und zum Laden in das SB-Register 37 auf die Wortsammelleitung
19 übertragen werden. Das SB-Register 37 wie das SA-Register 36 ist ein Hauptspeicher-Operandenpuffer. Die Operanden 1 und 2
wurden also vom Hauptspeicher 10 geholt und in die Register 36 bzw. 37 eingegeben. Wenn die Instruktion keine sechs Bytes umfasst, braucht kein
zweiter Operand vom Hauptspeicher 10 geholt zu werden.
Die Steuerung geht dann auf die AusfOhrungszyklen über, deren Typ
durch die Decodierung des OP-Code im OP-Decodierer 41 angezeigt wird. Die Ausführungszyklen für die Instruktionen "Senden Nachricht/ Senden
Zählwert/ Einreihen Nachricht in Warteschlange/ Empfang Nachricht/ Empfang Zählwert/ Herausnehmen Nachricht aus Warteschlange" werden im
einzelnen später beschrieben. Wenn es sich bei der Instruktion um eine andere als die eben erwähnten Instruktionen für Ausführungszyklen handelt,
d.h. um konventionelle Instruktionen wie Laden, Speichern, Verzweigen usw., würden die Ausführungszyklen für diese anderen Instruktionen
dann folgen. Da diese anderen Instruktionen herkömmlicher Art sind, sind ihre Ausführungszyklen hier nicht dargestellt.
Um die Instruktions-Abrufzyklen besser verstehen zu können, werden
die Zyklen Tl, T2, Al und Sl genauer beschrieben. Die Steuersignale und
diejenigen Elemente des Computersystems, die während eines Prozessor-Zyklus
Tl betroffen sind, sind im einzelnen in Fig. 7 gezeigt. Das Taktdiagramm
für einen Prozessor-Zyklus Tl ist in Fig. 14 gezeigt. Der Prozessor-Zyklus
Tl hat die Funktion, einen direkten Operanden in ein Register des Prozessors zu laden. Gemäss Darstellung in Fig. 7 gibt die
Steuerung 100 Signale auf die Sammelleitung 102 und betätigt damit den Codierer 60 zur Abgabe eines binären Wertes. Der herkömmliche Codierer
60 wiederum gibt den binären Wert auf die Sammelleitung 61, die den
Assembler 62 für die B-Sammelleitung 63 speist. Damit dieser den Codierer
809884/0758
RO9-76-014
60 als Quelle wählt, gibt die Steuerung 100 Signale auf die Sammelleitung
103. Die Ausgabesignale des Assemblers 62 werden Ober die B-Sammelleitung 63 an das Rechenwerk 45 gegeben. Das Rechenwerk 45 wird durch
ein Signal von der Steuerung 100 auf der Leitung 104 so gesteuert, dass es die Daten von der B-Sammelleitung 63, d.h. die Daten am rechten
Eingang, an das Ausgaberegister 46 weiterleitet, das unter Kontrolle eines Signales von der Steuerung 100 auf der Leitung 105 geladen wird.
Die C-Sammelleitung 47 gibt Daten vom Ausgaberegister 46 an Bestimmungsregister,
die von der Steuerung 100 gewählt und geladen werden, wenn diese einen Ladeimpuls auf die Ladeleitung zum gewählten Bestimmungsregister
gibt (z.B. Leitung 106). Für jedes Bestimmungsregister gibt es eine eigene Ladeleitung. Die Bestimmungsregister sind alle von der C-Sammelleitung
47 gespeisten Register, nämlich das Instruktions-Register 35, das SA-Register 36, das SB-Register 37, das IL-Register 38, die SAR-Gruppe
50, das CC-Register 65, das L-Register 66, die LSR-Registergruppe 70 und das P-Register 90. Zu der Gruppe der SAR-Register 50 und zu der
LSR-Registergruppe 70 führt nur je eine Ladeleitung.
Die vom Prozessor-Zyklus T2 betroffenen Einheiten des Computersystems
sind in Fig. 8 dargestellt und das entsprechende Zeitdiagramm in Fig. 15. Ein Prozessor-Zyklus T2 hat die Funktion, den Inhalt eines Datenquellenregisters,
das den Assembler 39 für die A-Sammelleitung 40 speist, an ein Bestimmungsregister zu übertragen, das für den Datenempfang
mit der C-Sammelleitung 47 verbunden ist. Der Assembler für die Α-Sammelleitung empfängt Daten vom Instruktions-Register 35, vom SA-Register
36, vom L-Register 66, vom P-Register 90, von der SAR-Gruppe 50 und von der LSR-Registergruppe 70. Die Steuerung 100 kann die SAR-Gruppe
50 wählen, indem sie eine Adresse auf die Sammelleitung 101 gibt. Die Daten vom gewählten SAR-Register werden dann gelesen, wenn die Steuerung
100 ein Lesesignal auf die Leitung 114 gibt. Die vom gewählten Register gelesenen Daten laufen dann über die Sammelleitung 32 zum Assembler 39
für die A-Sammelleitung 40.
Die LSR-Registergruppe 70 wird immer durch eine Adresse im P-Register
90 gewählt. Daten werden jedoch nur vom gewählten Register gelesen, wenn die Steuerung 100 ein Lesesignal auf die Leitung 107 gibt.
Daten vom gewählten Register werden über die Sammelleitung 69 an den
809384/0758
RO9-76-014
Assembler 39 für die Α-Sammelleitung 40 übertragen. Alle anderen, den
Assembler 39 speisenden Register brauchen keinen Leseimpuls, weil ihre
Ausgabe ohne diesen Impuls erfolgt.
Die Eingabequelle für den Assembler 39 wird gewählt, wenn die Steuerung 100 ein Signal auf die Code-Sammelleitung 108 gibt. Die Steuerung
100 kann eine von zwei Quellen mit einer einzigen Leitung wählen. Wenn aus mehr als zwei Quellen zu wählen ist, benützt die Steuerung
abhängig von der gewünschten Implementierung Signale über eine gemeinsame Code-Sammelleitung oder über eine separate Leitung für jede Quelle«
Die Wahl von Bestimmungsorten kann ebenfalls genauso erfolgen, wenn nichts anderes vorgeschrieben ist. Die durch den Assembler 39 für die
Α-Sammelleitung geleiteten Daten laufen über die Sammelleitung 40 in das
Rechenwerk. Das Rechenwerk 45 wird durch ein Signal von der Steuerung 100 über die Leitung 109 so gesteuert, dass es die Daten von der A-Sammelleitung
40, d.h. vom linken Eingang, an das Ausgaberegister 46 weiterleitet. Die vom Rechenwerk 45 weitergeleiteten Daten werden mittels
eines Signales von der Steuerung 100 auf der Leitung 105 in das Ausgaberegister 46 geladen. Die im Ausgaberegister 46 stehenden Daten
werden dann an die Bestimmungsregister weitergegeben.
Eines der Bestimmungsregister wird durch ein Signal von der Steuerung
100 gewählt. Wenn eines der Register der SAR-Gruppe 50 das Bestimmungsregister
ist, gibt die Steuerung 100 ein Signal auf die Leitung 110 zum Assembler 48 für die D-Sammelleitung 49, der dai.n die C-Sammelleltung
47 als Quelle wählt. Die Steuerung 100 gibt ausserdem eine Adresse auf die Sammelleitung 101, um eines der Register der SAR-Gruppe
zu wählen. Die Daten werden in das gewählte SAR vom Assembler 48 über
die Sammelleitung 49 unter Steuerung eines Ladeimpulses, den die Steuerung 100 auf die Leitung 111 gibt, eingegeben.
Wenn eines der Register der LSR-Registergruppe 70 als Bestimmungsregister gewählt wird, gibt die Steuerung 100 einen Ladeimpuls auf die
Leitung 112. Das gewählte Register wird dann durch den Inhalt des P-Registers
90 adressiert. Wenn das Bestimmungsregister weder zur SAR-Gruppe 50 noch zur LSR-Gruppe 70 gehört, gibt die Steuerung 100 einen
Ladeimpuls auf die Leitung 106, die eine repräsentative Ladesteuerleitung
ist,
809884/0758
RO9-76-014
Der Prozessor-Zyklus Al und die Taktierung dafür werden anhand der
Fig. 10 und 17 erläutert. Der Prozessor-Zyklus Al hat die Aufgabe, den
Inhalt zweier gewählter Register an das Rechenwerk 45 zu Obertragen,
eine Rechenwerk-Operation auszuführen, und das Ergebnis entweder an das linke Quellenregister zu übertragen oder es fallen zu lassen. Während
des Prozessor-Zyklus Al werden ausserdem die Bedingungs-Kippglieder AC
95 und AZ 96 entsprechend dem Ergebnis der Rechenwerk-Operation eingestellt.
Anhand von Fig. 10 wird erklärt, wie die Steuerung 100 eine Adresse auf die Sammelleitung 101 und ein Lesesignal auf die Leitung 114
gibt, wenn eines der Register der SAR-Gruppe 50 als Quellenregister für die linke Eingabe zum Rechenwerk 45 dienen soll. Wenn die Eingabe in die
linke Seite des Rechenwerks 45 von einem Register der LSR-Registergruppe 70 kommen soll, gibt die Steuerung 100 ein Lesesignal auf die Leitung
107. Die Quelle für die linke Eingabe zum Rechenwerk 45 wird von der Steuerung 100 gewählt, wenn sie über die Leitung 108 ein Wahlsignal an
den Assembler 39 für die A-Sammel.leitung 40 gibt.
Der rechte Eingang zum Rechenwerk 45 wird über den Assembler 62 für
die B-Sammelleitung 63 geleitet. Der Assembler kann bekanntlich das SB-Register 37, das IL-Register 39, den Codierer 60 oder das CC-Register 65
wählen aufgrund von Signalen, die die Steuerung 100 auf die Codesammelleitung 103 gibt. Die vom Rechenwerk 45 ausgeführte Funktion wird bestimmt
durch das Signal von der Steuerung 100 auf der Leitung 104. Durch das Signal auf der Leitung 104 kann z.B. der Inhalt des SA-Registers 36
zum Inhalt des SB-Registers 37 addiert und das Ergebnis über das Ausgaberegister
46 und die C-Sammelleitung 47 in das SA-Register 36 zurückgestellt
werden. Das Rechenwerk 45 kann aber beispielsweise auch den Inhalt des SB-Registers 37 vom Inhalt des SA-Registers 36 subtrahieren und das
Ergebnis fallen lassen oder an das Ausgaberegister 46 weiterleiten. Die Steuerung 100 liefert ein Ladesignal auf die Leitung 105, um das Ergebnis
in das Ausgaberegister 46 zu laden, wo es dann der C-Sammelleitung 47 zur Uebertragung an ein Bestimmungsregister zur Verfügung steht. Wenn als
Bestimmungsregister für das Ergebnis ein Register der SAR-Gruppe 50 ausgewählt
wird, gibt die Steuerung 100 ein Signal auf die Leitung 110 an den Assembler 48 für die D-Sammelleitung, damit die C-Sammelleitung 47
als Quelle gewählt wird, und sie gibt ein Signal auf die Leitung 111, um
809884/0758
RO9-76-014
das durch die Adresse auf der Sammelleitung 101 gewählte Register der
SAR-Gruppe 50 mit dem Ergebnis zu laden, das vom Assembler 40 über die D-Sammelleitung 49 we'itergeleitet wurde. Wenn das Ergebnis in ein Register
der LSR-Registergruppe 70 zu setzen ist, gibt die Steuerung 100 ein Signal auf die Leitung 112, um das gewählte Register zu laden, wobei
die Wahl durch die Adresse im P-Register 90 erfolgt. Wenn ein anderes Bestimmungsregister gewählt wird, gibt die Steuerung 100 ein Signal auf
die Leitung 106, die eine repräsentative Ladesteuerleitung ist. Die Bedingungs-Kippglieder
95 und 96 werden durch Signale vom Rechenwerk 45 über die Leitungen 43 bzw. 44 gesetzt oder zurückgestellt.
Während eines Prozessor-Zyklus Sl werden Daten aus dem Hauptspeicher
10 gelesen und in ein Register geladen, das mit der Wortsammelleitung 19 verbunden ist. Die Quelle der Speicheradresse ist eines der Register
der SAR-Gruppe 50, und diese Adresse kann beliebig erhöht, erniedrigt
und in das als Quelle dienende SAR-Register zurückgegeben werden. Die von einem Prozessor-Zyklus Sl betroffenen Einheiten des Computersystems
sind in Fig. 12 gezeigt, und die Taktierung ist in Fig. 19 dargestellt.
Die Steuerung 100 gibt eine Adresse auf die Sammelleitung 101, um ein Register der SAR-Gruppe 50 zu adressieren. Der Inhalt des gewählten
SAR-Registers wird aufgrund eines Signals gelesen, das die Steuerung auf die Leitung 114 gibt. Der Inhalt des gewählten SAR-Registers wird
auf die Sammelleitung 32 gegeben und in das Adressregister 18 sowie in die Inkrementierschaltung 59 eingegeben. Der Ausgangswert der Inkremen
tier schaltung 59 wird an den Assembler 48 für die D-Sammelleitung 49 geleitet, und wenn die erhöhte oder erniedrigte Adresse in das gewählte
SAR-Register zurückgegeben werden soll, gibt die Steuerung 100 ein Signal auf der Leitung 110 an den Assembler 48. Die erhöhte oder erniedrigte
Adresse wird in das gewählte Register der SAR-Gruppe 50 eingegeben, wenn die Steuerung 100 ein Ladesignal auf die Leitung 111 gibt.
Die Steuerung 100 liefert dann einen Speicherleseimpuls auf der Leitung 115 an die Speichersteuerung 15. Daten werden vom Hauptspeicher 10 an
der durch die Adresse im Adressregister 18 bezeichneten Stelle gelesen.
Diese Daten gehen vom Hauptspeicher über die Lesedatenleitung 11 an die Speichersteuerung 15 und in das Datenregister 17. Die Ausgestaltung des
Registers 17 als echtes Register ist wahlfrei und hängt von dem jeweils
809884/0758
RO9-76-014
verwendeten Speichertyp ab/ d.h. in einigen Spcichcreinheiten werden die
Daten am Speichcrausgang gepuffert. Die Daten laufen dann vom Datenregister
17 auf die Wortsammelleitung 19 und weiter in ein entsprechendes Bestimmungsregister, das durch ein Ladesignal auf der repräsentativen
Ladesteuerleitung 106 von der Steuerung 100 bestimmt wird.
Die Arbeitsweise des bisher beschriebenen Teils des Ausführungsbeispiels
der Erfindung ist in der Fig. 4 dargestellt. Das TDQ-Objekt wird vom Hauptspeicher 10 geholt, um das aktive Aufgabenabfertigungselement
TDE in der Aufgaben-Warteschlange TDQ zu lokalisieren. Bestimmte Felder des aktiven TDE werden dann vom Speicher geholt. Dann wird eine Instruktion
abgerufen und diese ausgeführt. Die Aufgabe wird dann weiter bearbeitet, bis eine zu der Aufgabe gehörende Instruktion einen Aufgabenwechsel
veranlasst, oder bis eine Aufgabe mit höherer Priorität in die TDQ gesetzt wird und dadurch einen Aufgabenwechsel auslöst.
Eine Nachrichtenempfangsinstruktion (RECM) kann dazu führen, dass die aktive Aufgabe aus der TDQ herausgenommen wird und in eine Aufgabenabfertigungselement-Warteliste
einer Sendeempfangsschlange (SRQ) eingereiht wird. Die Funktion einer Nachrichtenerapfangsinstruktion, deren
Format in Fig. 3 gezeigt ist, besteht darin, eine Nachricht (SRM) von einer SRQ zu entnehmen. Wenn in der SRQ keine Nachricht steht, dann kann
die Nachrichtenempfangsinstruktion nicht ausgeführt werden, und die aktive Aufgabe wird aus der TDQ herausgenommen und geht in den Wartezustand
als inaktives, wartendes TDE in einer SRQ. Diese Aufgabe wartet dann in den SRQ, bis eine Sendeoperation eine Nachricht in die SRQ
einreiht und damit das inaktive, wartende TDE zur TDQ überführt. Gemäss Fig. 4 wird die Nachrichtenerapfangsinstruktion genauso wie jede andere
Instruktion vorher abgerufen (Vorabruf). In den Instruktions-Abrufzyklen
für die Nachrichtenempfangsinstruktion werden sechs Bytes abgerufen. Nach Beendigung der Instruktions-Abrufzyklen werden die Ausführungszyklen für die Nachrichtenempfangsinstruktion (RECM) durchgeführt. Diese
sind in Fig. 26 dargestellt.
Die Nachrichtenempfangsinstruktion (RECM), wie sie in Fig. 3 zu sehen ist, wird durch ihren OP-Code als solche bezeichnet. Dem OP-Codefeld
folgt ein I-Feld, das in diesem Fall die Adresse der LSR-Registergruppe
70 enthält. Das adressierte Register der LSR-Gruppe 70 wird
809884/0758
RO9-76-014
während der Ausführung der Nachrichtenempfangsinstruktion (RECM) mit
der Adresse derjenigen Nachricht geladen/ die aus der Sendeempfangsschlange
(SRQ) herausgenommen wurde, die wiederum durch das GPl-Adressfeld
in der Nachrichtenempfangsinstruktion adressiert wird. Das OP2-Adressfeld
in der Nachrichtenempfangsinstruktion enthält eine Adresse zur Ansteuerung des Hauptspeichers 10 an einer Stelle, die ein Schlüsseldatenobjekt
enthält, mit dem Schlüsselfelder der Sendeempfangsnachrichten (SRM) einer SRQ verglichen werden, um die aus der SRQ herauszunehmende
Nachricht zu identifizieren. Die Nachrichten (SRM) sind in der SRQ in der Reihenfolge ihrer Schlüssel verkettet. Das vom Speicher geholte
Schlüsseldatenobjekt wird mit dem Schlüsselfeld der ersten Nachricht in der SRQ verglichen, und wenn die Schlüssel übereinstimmen, wird
diese Nachricht aus der SRQ herausgenommen. Wenn die Schlüssel nicht übereinstimmen, wird das vom Speicher geholte Schlüsseldatenobjekt mit
dem Schlüsselfeld der nächsten Nachricht (SRM) verglichen usw., bis die
beiden Schlüssel übereinstimmen.
Wenn das schliesslich der Fall ist, dann wird die Adresse derjenigen
Nachricht SRM, die das übereinstimmende Schlüsselfeld enthält, in die LSR-Registergruppe 70 eingegeben, adressiert durch das R3-Feld
in der Nachrichtenempfangsinstruktion, und aus der SRQ herausgenommen.
Wenn das vom Speicher geholte Schlüsseldatenobjekt nicht mit dem Schlüsselfeld einer Nachricht SRM in der SRQ übereinstimmt, wird die Nachrichtenempfangsinstruktion
als nicht ausführbar betrachtet.
Weil das IAR 51 auf die nächste vom Hauptspeicher 10 zu holende Instruktion zeigt und die Nachrichtenempfangsinstruktion ja nicht ausführbar war, muss der Inhalt des IAR erniedrigt werden, so dass er auf
die Adresse der nicht ausführbaren Nachrichtenempfangsinstruktion zeigt.
Diese Operation wird später noch genauer beschrieben. Die Adresse für
diese nicht ausführbare Nachrichtenempfangsinstruktion muss gerettet werden, weil die diese Instruktion enthaltende aktive Aufgabe aus der
TDQ herausgenommen und auf die Warteliste SRQ gesetzt wird, adressiert durch das OPl-FeId der nicht ausführbaren Nachrichtenempfangsinstruktion.
Das Herausnehmen des aktiven TDE aus der TDQ und die Einordnung dieses TDE in die SRQ wird im einzelnen noch beschrieben. Durch das Herausnehmen
des aktiven TDE wird die Aufgabe gewechselt, und das neue TDE mit der
809884/0758
RO9-76-014
"24~ 2826544
höchsten Priorität aus der TDQ wird dann zur aktiven Aufgabe. Das ist
durch ein Beispiel in Fig. 28 gezeigt.
Während der Ausführung einer Nachrichtenempfangsinstruktion stellt
die Steuerung 100 das Sende-Kippglied (S) 07 zurück, setzt das Empfangs-Kippglied
(R) 88 und stellt das ST-Phasen-Kippglied 97 und das RT-Phasen-Kippglied
98 zurück. Die Steuerung 100 erreicht das unmittelbar vor oder gleichzeitig mit dem Prozessor-Zyklus T2, in dem der Inhalt des
OPl-SAR 54 übertragen wird in das PCII-SAR 56, das normalerweise die Adresse des letzten oder vorhergehenden Elementes in der Warteschlange
enthält. Nach dem T2-Zyklus folgen Entnahmezyklen, die in Fig. 27 dargestellt sind.
In Fig. 28 ist gezeigt, dass das TDQ-Objekt eine TDE-Adresse enthält,
die auf-das TDE mit der höchsten Priorität in der TDQ zeigt. Dieses TDE hat die Priorität null. Das TDE mit der Priorität null wird
mit einem TDE verkettet, das die Priorität eins hat, und dieses wieder mit dem TDE der nächsthöheren Priorität usw., wobei das TDE mit der
Priorität N das letzte TDE in der TDQ ist. Das TDE mit der Priorität null ist die aktive Aufgabe, und sein ΙΑ-Feld zeigt auf eine Nachrichtenempfangsinstruktion
im Speicher. Das OPl-FeId der Nachrichtenempfangsinstruktion zeigt auf SRQ 1, mit der die Nachricht SRMl verkettet
ist. Die Nachricht SRM 3 wiederum ist mit SRM 1 verkettet. TDE1s werden
nicht mit der SRQ 1 verkettet. Das zeigt, dass keine inaktiven, wartenden TDE's in der SRQ 1 stehen. Das OP2-Feld der Nachrichtenempfangsinstruktion
zeigt auf ein Schlüsseldatenobjekt im Hauptspeicher 10 mit dem Wert 2. Keine Nachricht SRM in der SRQ 1 hat ein Schlüsselfeld mit dem
Wert 2, und daher ist die Nachrichtenempfangsinstruktion nicht ausführbar. Das ΙΑ-Feld des TDE 1 in der TDQ zeigt auf eine Nachrichtensendeinstruktion.
Das I-Feld dieser Nachrichtensendeinstruktion zeigt auf ein
Register der LSR-Registergruppe 70, das eine Hauptspeicheradresse eines Speicherwortes SRM 2 enthält. Weil die Nachrichtenempfangsinstruktion
nicht ausführbar ist, wird das aktive TDE 0 aus der TDQ herausgenommen und in die Warteliste der SRQ 1 eingereiht, wie es in Fig. 29 gezeigt
ist. Das TDE 1 wird dann zum aktiven TDE, und die Ausführung der Nachrichtensendeinstruktion
veranlasst die Einreihung von SRM 2 entsprechend seiner Priorität in die SRQ 1, wie es in Fig. 30 gezeigt ist.
809884/0758
RO9-76-014
Die von der Nachrichtenempfangsinstruktion betroffenen Entnahmezyklen
beginnen mit einem Prozessor-Zyklus T2, nach Darstellung in Fig. 27. Vor diesem Prozessor-Zyklus T2 wurde das SA-Register 36 mit dem
ersten Feld der SRQ geladen, und zwar während eines Instruktions-Abrufzyklus
für die Nachrichtenempfangsinstruktion. Während dieses Abrufzyklus
wurde auch das SB-Register 37 mit dem Schlüsseldatenobjekt vom Hauptspeicher 10 geladen, um eine bestimmte Nachricht SRM in der SRQ zu
lokalisieren. Das PCH-SAR 56 wurde während des Nachrichtenempfangsausführungszyklus
mit der Adresse des ersten Feldes der SRQ 1 unmittelbar vor dem Entnahmezyklus geladen. Während des Prozessor-Zyklus T2 wird das
CCH-SAR 57 mit dem Inhalt des SA-Registers 36 geladen. Das CCH-SAR 57 enthält die Adresse des gegenwärtig verarbeiteten Elementes der Warteschlange.
Diesem Prozessor-Zyklus T2 folgt ein Prozessor-Zyklus A2, in dem der Inhalt des CCH-SAR 57 auf Null abgefragt wird, um festzustellen,
ob Nachrichtenwörter SRM in der SRQ stehen.
In dem speziellen Beispiel in Fig. 28 stehen zwei SRM1s in der SRQ.
Daher ist die CCH-Adresse nicht null, und somit wird das AZ-Kippglied
96 nicht vom Rechenwerk 45 gesetzt. In einem dann folgenden Prozessor-Zyklus Sl wird das Schlüsselfeld aus SRM 1 geholt und die CCH-Adresse
erhöht. Das vom Hauptspeicher 10 geholte Schlüsselfeld wird dann in das SA-Register 36 gesetzt. In einem anschliessenden Zyklus Al wird das
Schlüsseldatenobjekt mit dem Schlüsselfeld verglichen, indem man den Inhalt des SB-Registers 37 von dem des SA-Registers 36 subtrahiert. Wenn
das Schlüsseldatenobjekt grosser ist als das Schlüsselfeld, heisst das,
dass keine weiteren Vergleiche notwendig sind, weil das Schlüsselfeld einer Nachricht SRM mit niedrigerer Priorität niemals gleich dem Schlüsselobjekt
sein kann. Wenn das Schlüsselfeld mit dem Schlüsselobjekt übereinstimmt, wird das AZ-Kippglied 96 gesetzt. In einem Zyklus Sl wird
dann die verkettete Adresse der Nachricht SRM 1 aus dem Hauptspeicher 10 geholt und in das SA-Register 36 gesetzt. Während dieses Zyklus Sl wird
der Inhalt des AZ-Kippgliedes 96 und des ST-Kippgliedes 97 zur Bestimmung
der Operation des nächsten Zyklus decodiert. Da in dem in Fig. 28 gezeigten Beispiel das AZ-Kippglied 96 zurückgestellt ist, weil das
Schlüsselfeld der Nachricht SRM 1 nicht mit dem Schlüsseldatenobjekt übereinstimmte, und da das ST-Phasen-Kippglied 97 zurückgestellt ist,
809884/0758
RO9-76-014
28285U
folgt nun ein Prozessor-Zyklus T2 zur Uebertragung des Inhaltes des CCH-SAR
57 an das PCH-SAR 56, um so die Adresse der Nachricht SRM 1 in das PCH-SAR 56 einzugeben. Der Inhalt des PCH-SAR wird dann während eines
Prozessor-Zyklus A2 um Eins erhöht. Der Wert der Adresse für das SRM-Kettungsadressfeld
ist damit für spätere Benutzung gerettet, wenn die nächste Nachricht SRM aus der Kette zu entfernen ist.
Weil das Schlüsselobjekt nicht mit dem Schlüsselfeld der Nachricht
SRM 1 übereinstimmte, läuft die Operation auf den Anfang der Entnahmezyklen zurück, und das Schlüsselfeld der nächsten Nachricht SRM in der
SRQ 1 wird mit dem Schlüsseldatenobjekt verglichen. Diese Operation läuft weiter, bis das Schlüsselfeld der letzten Nachricht SRM der SRQ
mit dem Schlüsseldatenobjekt verglichen wurde. Im vorliegenden Fall wird, wenn die Vergleichsoperation für das Schlüsselfeld der Nachricht
SRM 3 beendet wurde, wieder die Hauptsuchschleife ausgeführt, und weil das SRM-Kettungsadressfeld der Nachricht SRM 3 gleich Null ist, wird das
AZ-Kippglied 96 gesetzt und die Operation wird gewechselt, wodurch der
Inhalt das Sende-Kippglied 87 und das Empfangs-Kippglied 88 von der
Steuerung 100 decodiert werden. Wenn das AZ-Kippglied 96 gesetzt ist,
dann ist das eine Anzeige dafür, dass die Nachrichtenempfangsinstruktion nicht ausgeführt werden konnte. Das Empfangs-Kippglied 88 ist noch gesetzt,
und daher setzt in der nächsten Operation die Steuerung 100 das D-Kippglied 93, um am Anfang des nächsten Instruktions-AbrufZyklus Abfertigungszyklen
aufzurufen. Das Sende-Kippglied 87 wird dann abgefragt, und da es abgeschaltet (zurückgestellt) ist, setzt die Steuerung 100 das
RT-Phasen-Kippglied 98. In einem Prozessor-Zyklus T2 wird dann der
Inhalt des TDQ-SAR 52 in das PCH-SAR 56 geladen. In einem anschliessenden
Prozessor-Zyklus S2 wird das SA-Register 36 mit einer PCH-Adresse vom Hauptspeicher 10 geladen, wobei die PCH-Adresse die Adresse der TDQ
ist. In einem Prozessor-Zyklus T2 wird dann der Inhalt des CTDE- SAR (laufendes TDE) in das OP2-SAR 55 übertragen. In einem anschliessenden
Zyklus Sl wird das Prioritätsfeld des TDE 0 vom Hauptspeicher 10 geholt und in das SB-Register 37 gesetzt, damit man mit der vorher beschriebenen
Suchschleife das TDE aus der TDQ entfernen kann.
809834/0758
RO9-76-014
2328544
Die Suchschleife des Hauptontnahmezyklus wird wieder ausgeführt, und weil das Prioritätsfeld des TDE 0 mit sich selbst verglichen wird,
ist der Inhalt des SA-Registers gleich dem Inhalt des SB-Registers, und somit wird das AZ-Kippglied 96 gesetzt. Das ST-Kippglied 97 bleibt jedoch
zurückgestellt. Die nächste Operation ist daher ein Prozessor-Zyklus
S2 und nicht ein Prozessor-Zyklus T2. Während des Prozessor-Zyklus S2 wird der Wert vom SA-Register 36 in den Hauptspeicher 10 an
eine Stelle geladen, die die TDE-Adresse im TDQ-FeId enthält. Damit wird
die frühere Kette unterbrochen, wodurch die TDE-Adresse im TDQ-FeId
jetzt auf das TDE 1 und nicht mehr auf das TDE 0 zeigt. Obwohl das TDE also aus der TDQ herausgenommen wird, ist die Bewegung keine physische
Bewegung des TDE, sondern nur eine Aenderung der TDE-Adresse im TDQ-FeId.
Der Inhalt der Kippglieder 87, 88 und 89 wird dann von der Steuerung
100 decodiert. In diesem Fall ist das Sende-Kippglied 87 zurückgestellt,
und das Empfangs-Kippglied 88 sowie das RT-Phasen-Kippglied 98
sind gesetzt. Die nächste Operation besteht somit im Laden des Inhaltes
des CCH-SAR 57 in das OP2-SAR 55 während eines Prozessor-Zyklus P2. Die
Steuerung 100 steuert die entsprechenden Bedingungen zum Umschalten der
Operation auf Einsetzzyklen. Ein Prozessor-Zyklus S2 wird dann zum Laden
des SB-Registers 37 mit dem Prioritätsfeld des TDE 0 vom Hauptspeicher 10 benutzt. Während dieses Prozessor-Zyklus Sl wird ausserdem die Adresse
aus dem OP2-SAR 55 erhöht und in dasselbe Register zurückgegeben.
Dann wird der Operationstyp festgestellt durch Abfragen des Sende-Kippgliedes 87. Da dieses nicht gesetzt ist, folgt ein Prozessor-Zyklus
A2, in dem der Inhalt des OPl-SAR 54 erhöht und in dasselbe Register
zurückgegeben wird, so dass dieses jetzt auf das TDE-Adressfeld der SRQ
1 zeigt. Der Inhalt des OPl-SAR 54 wird dann während des Prozessor- Zyklus T2 in das PCH-SAR 56 übertragen. In einem anschliessenden Prozessor-Zyklus
Sl wird dann das SA-Register 36 mit der PCH-Adresse geladen, d.h. in dem in Fig. 28 gezeigten Beispiel mit dem TDE-Adressfeld
der SRQ 1. Die Operation läuft dann mit Einsetzzyklen weiter, die im
einzelnen in Fig. 25 gezeigt sind. Zu Beginn eines Einsetzzyklus, wie
er beispielsweise in Fig. 28 dargestellt ist, enthält das SA-Register das TDE-Adressfeld der SRQ 1, das SB-Register 37 das Prioritätsfeld des
809884/0758
RO9-76-014
- 28 -
TDE O, das PCH-SAR 56 die Adresse des TDE-Adressfeldes der SRQ 1 und das
OP2-SAR 55 das Kettungsadressfeld des TDE 0.
Der erste Einsetzzyklus ist ein Prozessor-Zyklus T2, in dem das CCH-SAR 57 mit dem Inhalt des SA-Registers 36 geladen wird. In einem
Prozessor-Zyklus A2 wird dann der Wert im CCH-SAR 57 auf Null abgefragt. In dem in Fig. 28 gezeigten speziellen Beispiel ist der Inhalt des CCH-SAR
57 Null, weil das TDE-Adressfeld der SRQ 1 Null ist. Der Null-Wert
zeigt an, dass keine TDE's im inaktiven Zustand in der SRQ 1 warten.
Weil der Wert des CCH-SAR 57 Null ist, setzt das Rechenwerk 45 das AC-Kippglied 96. Der Zustand dieses Kippgliedes wird abgefragt, und da es
gesetzt ist, folgt als nächstes ein Prozessor-Zyklus T2 zum Laden des SA-Registers 36 mit dem Inhalt des CCH-SAR 57. Diesem Zyklus folgt ein
Prozessor-Zyklus S2, in dem der Inhalt des SA-Registers 36 in den Hauptspeicher 10 an der Adresse gespeichert wird, die im OP2-SAR 55 enthalten
ist. Das TDE-Adressfeld der SRQ 1 (lauter Nullen) steht jetzt im Kettungsadressfeld
des TDE 0. Die OP2-Adresse im SAR 55 wird während des Prozessor-Zyklus S2 heruntergesetzt. Hier genügt die Feststellung, dass
der Prozessor-Zyklus S2 im einzelnen in Fig. 13 gezeigt ist und später
beschrieben wird.
Im anschliessenden Prozessor-Zyklus T2 wird das SA-Register 36 mit
dem Inhalt des OP2-SAR 55 geladen, der während des vorhergehenden Prozessor-Zyklus
S2 heruntergesetzt wurde. Das SA-Register 36 wird also mit derAdresse des TDE 0 geladen, und diese Adresse dann im Hauptspeicher
10 während eines Zyklus S2 an der Adresse gespeichert, die vom PCH-SAR 56 angegeben ist, wodurch das TDE 0 in die SRQ 1 gesetzt wird. Zu
dieser Zeit haben die TDQ und die SRQ 1 den in Fig. 29 dargestellten Zustand. Die Kette der Nachrichten SRM in der SRQ 1 in Fig. 29 bleibt
unverändert.
Die Steuerung 100 decodiert dann den Zustand der Kippglieder 87,
und 98 und stellt fest, dass das Sende-Kippglied 87 nicht gesetzt ist,
das RT-Phasen-Kippglied 98 aber gesetzt ist. Weil das Sende-Kippglied
nicht gesetzt ist, spielt der Zustand des ST-Phasen-Kippgliedes 97 im
Augenblick keine Rolle. In den dann aufeinanderfolgenden Prozessor-Zyklen Al und Tl wird der Inhalt des Instruktionsaddressregisters IAR
vermindert, so dass er auf die nicht ausführbar gewesene Nachrichtenempfangsinstruktion
zeigt und das IL-Register 38 wird auf Null gestellt.
809884/0768
RO9-76-014
- 29 -
Die Operation schaltet dann um zu einem Instruktions-Abrufzyklus für die
aktive Aufgabe, die immer noch das TDE 0 ist, weil ein Aufgabenwechsel
noch nicht stattgefunden hat.
Nach Darstellung in Fig. 21 wird der Instruktions-Abrufzyklus begonnen
und der Inhalt der Kippglieder 93 und 94 durch die Steuerung 100 decodiert und dabei festgestellt, dass das D-Kippglied 93 gesetzt und
das E/A-Kippglied 94 zurückgestellt ist. Somit Abfcrtigungszyklen angefangen. Die Abfertigungszyklen sind im einzelnen in Fig. 22 dargestellt.
Bei ihrem Beginn wird das Kippglied 93 von der Steuerung 100 zurückgestellt. Dann wird in einem Prozessor-Zyklus A2 festgestellt, ob die TDQ-Adresse
im SAR 52 gleich Null ist. Weil in dem in Fig. 28 und 29 gezeigten
speziellen Beispiel keine weiteren TDE's in der TDQ stehen, ist der
Inhalt des TDQ-SÄR 52 von Null verschieden, und somit wird das AZ-Kippglied 96 nicht gesetzt. Wenn keine v/eiteren TDE's in der TDQ stehen,
würde der Prozessor 30 in den Wartezustand gehen.
Wenn das AZ-Kippglied 96 zurückgestellt ist, wird ein Prozessor-Zyklus
Sl zum Laden des SB-Registers 37 mit dem TDQ-Kettungsadressfeld
(das auf das oberste TDE in der TDQ zeigt) vom Hauptspeicher 10 durchgeführt. Die laufende TDE-Adresse in CTDE-SAR 53 wird dann mit dem Inhalt
des SB-Registers 37 während eines Zyklus Al verglichen. Im vorliegenden
Beispiel gilt die laufende TDE-Adresse für das TDE 0, wogegen die TDE-Adresse im TDQ-Datenobjekt auf das TDE 1 zeigt. Aufgrund der
Rechenwerks-Operation wird das AZ-Kippglied 96 nicht gesetzt. Wenn es gesetzt worden wäre, wäre kein Aufgabenwechsel erforderlich, und die
Instruktions-Abrufzyklen würden folgen. Es folgt jedoch jetzt ein Prozessor-Zyklus
T2, in dem das OPl-SAR 54 mit dem Inhalt des laufenden TDE-SAR 53 geladen wird. Der Inhalt des OPl-SAR 54 wird dann während
eines Prozessor-Zyklus A2 um 2 erhöht, so dass er auf das ΙΑ-Feld des TDE 0 zeigt. Jetzt müssen die Statusfelder des laufenden TDE gespeichert
werden. Danach werden die Statusfelder für das neue aktive TDE, d.h. für das TDE 1, in die entsprechenden Register geladen.
Das SA-Register 36 wird in einem Prozessor-Zyklus T2 mit dem Inhalt
des IAR 51 geladen, und dessen Inhalt wird im Hauptspeicher 10 gerettet,
indem während eines Prozessor-Zyklus S2 der Inhalt des SA-Registers 36
809884/0758
RO9-76-014
- 30 -
in den Hauptspeicher 10 an der OPl-Adresse vom OPl-SAR 54 geladen wird
und die OPl-Adresse erhöht wird. In einem Zyklus T3 wird dann das SAR-Register 36 mit dem Inhalt des IL-Registers 38 und des CC-Registers 65
geladen. In dem anschliessenden Speicherzyklus S2 wird der Inhalt des SA-Registers 36 in den Hauptspeicher 10 an der Adresse geladen, die vom
OPl-SAR 54 angegeben wird.
Die OPl-Adresse im SAR 54 wird wieder erhöht und an das OPl-SAR 54
zurückgegeben. Dann folgt ein Zyklus Tl, um den Wert 15 in das L-Register
66 zu setzen. Das L-Register 66 ist ein Zählregister zur Steuerung
der Schleifenwiederholungen des Prozessors. Das L-Register 66 kann
um Eins heruntergesetzt werden und ein Null-Detektor 67 fragt das Register 66 auf die Bedingung lauter Nullen ab. Diesem Zyklus Tl folgt
ein weiterer Zyklus Tl, in dem das P-Register 90 auf Null gesetzt wird. Dann wird in einem Zyklus T2 das SA-Register 36 mit dem Inhalt desjenigen
Registers der LSR-Registergruppe 70 geladen, das durch den Inhalt
des P-Registers 90 adressiert wurde. Der Inhalt des SA-Registers 36 wird
dann an der durch das OPl-SAR 54 angegebenen Adresse in den Hauptspeicher 10 übertragen und danach der Inhalt des OPl-SAR 54 erhöht, und zwar
alles während eines Prozessor-Zyklus S2. Ein LZ-Kippglied 89 wird dann abgefragt. Dieses Kippglied wird gesetzt, wenn der Wert im L-Register
von dem Null-Detektor 67 als Null erkannt wird. In diesem Fall jedoch ist das LZ-Kippglied 89 nicht gesetzt, und somit wird das P-Register 90
erhöht und das L-Register 66 heruntergesetzt. Das SA-Register 36 wird wieder mit dem Inhalt desjenigen Registers der LSR-Registergruppe 70,
das durch den Inhalt des P-Registers 90 adressiert wird, geladen und die soeben beschriebene Folge wiederholt, bis der Inhalt der gesaraten LSR-Registergruppe
70 gespeichert wurde. Diese Tatsache wird angezeigt, wenn das L-Register 66 auf Null heruntergesetzt wurde und das LZ-Kippglied
gesetzt ist.
Wenn das LZ-Kippglied 89 gesetzt ist, folgt ein Prozessor-Zyklus P3 zum Laden des CTDE-SAR 53 mit dem Inhalt des SB-Registers 37. Die
laufende TDE-Adresse im CTDE-SAR 53 wird dann während des Zyklus_P2 in
das OPl-SAR 54 übertragen. Dann folgt ein Prozessor-Zyklus A2 zum Addieren
des Wertes 2 zum Inhalt des OPl-SAR 54. In einem nachfolgenden Prozessor-Zyklus Sl wird dann aus dem Hauptspeicher 10 ein Wert aus dem
809884/0758
RO9-76-014
- 31 -
Speicherplatz mit der Adresse OPl genommen und in das SA-Register 36
geladen, und die OPl-Adresse wird erhöht. Somit ist das SA-Register 36
mit dem ΙΑ-Feld des TDE 1 geladen. Das IAR 51 wird dann während des
Zyklus T2 mit dem Inhalt des SA-Registers 36 geladen. Das IL-Register
und das CC-Register 65 werden dann mit dem IL-FeId bzw. dem CC-FeId vom
TDE 1 geladen, indem man diese Felder zuerst vom Hauptspeicher 10 holt
und sie dann während eines Zyklus Sl in das SA-Register 36 überträgt und dann dessen Inhalt während des Zyklus T2 in die Register 38 und 65
überträgt.
Die LSR-Registergruppe 70 wird dann geladen, indem man das L-Register
66 zuerst während eines Zyklus Tl auf den Wert 15 stellt und dann das P-Register 90 während eines weiteren Zyklus Tl mit dem Wert Null
lädt. Dann wird in einem Zyklus Sl das SA-Register 36 mit einem Wert für das Basisregister 0 der LSR-Registergruppe 70 vom Hauptspeicher 10 an
einer Adresse geladen, die vom OPl-SAR 54 genommen ist. Der Inhalt des OPl-SAR 54 wird während dieses Zyklus Sl erhöht. Ein Zyklus T2 folgt
dann, um das Basisregister Null der LSR-Registergruppe 70 mit dem Wert vom SA-Register 36 zu laden. Das LZ-Kippglied 89 wird abgefragt und ein
von Null verschiedener Wert ermittelt. Somit wird der Inhalt des L-Registers 66 erniedrigt und der Inhalt des P-Registers 90 erhöht. In einem
Prozessor-Zyklus Sl wird dann wieder das SA-Register 36 mit einem Wert vom Hauptspeicher 10 für das nächste Register der LSR-Registergruppe 70,
d.h. das Basisregister 1, geladen, und die gerade beschriebene Schleife wiederholt, bis alle Register der LSR-Registergruppe 70 geladen sind.
Diese Bedingung wird angezeigt durch Setzen des LZ-Kippgliedes 89. In
einem dann folgenden Zyklus Al wird der Inhalt des IL-Registers 38 vom
IAR 51 subtrahiert. Die Adresse im IAR 51 zeigt jetzt auf die erste Instruktion der Aufgabe TDE 1, die dann während eines Zyklus Sl in das
Instruktionsregister 35 vor-abgerufen wird. Der Aufgabenwechsel ist damit
beendet und Instruktions-Abrufzyklen werden für die erste Instruktion
der neuen Aufgabe ausgeführt.
Bevor Abruf und Ausführung der ersten Instruktion der neuen Aufgabe
beschrieben werden, bei der es sich in dem in Fig. 28 gezeigten Beispiel um eine Nachrichtensendeinstruktion handelt, werden Einzelheiten
der Prozessor-Zyklen T3, A2 und S2 beschrieben. Die Elemente des Computers,
809884/0758
RO9-76-014
- 32 -
die vom Prozessor-Zyklus T3 betroffen sind, sind in Fig. 9 dargestellt,
und die Zeitdiagramme für den Zyklus T3 sind in Fig. 16 gezeigt. Die Funktion des Prozessor-Zyklus T3 besteht darin, den Inhalt eines den
Assembler 62 für die B-Sammelleitung 63 speisenden Quellenregister an ein Register zu übertragen, das für den Datenempfang über die C-Saramelleitung
47 angeschaltet ist. Die Eingänge zum Assembler 62 wurden vorher beschrieben und werden durch Signale von der Steuerung 100 über die
Codesainmelleitung 103 gewählt. Die in den Assembler 62 von der gewählten
Quelle eingespeisten Daten laufen dann über die B-Sammelleitung zum
Rechenwerk 45. Das Rechenwerk 45 wird durch ein Signal von der Steuerung 100 über die Leitung 104 so gesteuert, dass es die Daten von der B-Sammelleitung
63 an das Ausgaberegister 46 weiterleitet. Das Ausgaberegister 46 wird mit den Daten vom Rechenwerk 45 durch ein Ladesignal
von der Steuerung auf der Leitung 105 geladen. Die C-Sammelleitung 47
empfängt die Daten vom Ausgaberegister 46 und leitet sie in das oben beschriebene Bestimmungsregister weiter. Wenn eines der SAR-Register
das Bestimmungsregister sein soll, gibt die Steuerung 100 eine Adresse auf die Sammelleitung 101, ein Wahlsignal an den Assembler 48 für die D-Sammelleitung
49 auf die Leitung 110 und einen Ladeimpuls auf die Leitung 111. Wenn das Bestimmungsregister ein Register aus der LSR-Registergruppe
70 sein soll, enthält das P-Register 90 die Adresse zum Wählen des betreffenden Registers, und die Steuerung 100 gibt ein Ladesignal
auf die Leitung 112. Wenn ein anderes als die gerade beschriebenen Register gewählt werden soll, gibt die Steuerung 100 einen Ladeimpuls
auf die repräsentative Ladesteuerleitung 106. Die anderen Bestimmungsregister sind das Instruktionsregister 35, das SA-Register 36,
das SB-Register 37, das IL-Register 38, das CC-Register 65, das L-Register
66 und das P-Register 90. Der Prozessor-Zyklus T3 gleicht also dem Prozessor-Zyklus T2, die Daten kommen jedoch von Quellen, die den
Assembler 62 für die B-Sammelleitung 63 und nicht den Assembler 39 für die A-Sammelleitung 40 speisen.
Der Prozessor-Zyklus A2 gleicht dem Prozessor-Zyklus Al, steuert jedoch das Rechenwerk 45 und gibt Daten dort hin von Quellen, die über
den Assembler 39 und die A-Sammelleitung 40 das Rechenwerk 45 speisen. An den Assembler 62 wird ein direkter Operand angelegt/ der das Rechen-
809384/0758
RO9-76-014
- 33 -
werk 45 über die B-Sammelleitung 63 speist. Von der Steuerung 100 kontrolliert,
führt das Rechenwerk 45 die entsprechende Funktion aus, und das Ergebnis wird entweder in das Quellenregister zurückgegeben oder
fallengelassen. Das Rechenwerk 45 setzt dementsprechend das AC-Kippglied
95 und das AZ-Kippglied 96 durch ,Signale über die Leitungen 43 bzw. 44.
Wenn als Dateneingabequelle für das Rechenwerk 45 über die A-Sammelleitung
40 (Fig. 11) ein SAR-Register der Gruppe 50 vorgesehen ist, gibt die Steuerung 100 eine Adresse auf die Sammelleitung 101 und ein Lesesignal
auf die Leitung 114. Die Daten werden dann in den Assembler 39 für die Α-Sammelleitung über die Leitung 32 übertragen. Wenn als Quelle
ein Register der LSR-Registergruppe 70 dienen soll, gibt die Steuerung 100 einen Leseimpuls auf die Leitung 107, und Daten werden von dem
Register gelesen, das durch die Adresse im P-Register 90 gewählt ist. Die Daten laufen vom gewählten Register der LSR-Registergruppe 70 zum
Assembler 39 der A-Sammelleitung 40 über die Sammelleitung 69. Alle
anderen, den Assembler 39 speisenden Quellen brauchen kein Lesesignal.
Die jeweilige Eingabequelle für den Assembler 39 der A-Sammelleitung
40 wird von der Steuerung 100 gewählt, welche Wahlsignale auf die Sammelleitung 108 gibt. Der direkte. Operand kommt vom Codierer 60, der
von der Steuerung 100 durch ein Signal auf der Leitung 102 aktiviert wird. Der Assembler wählt den Codierer 60 als Eingabequelle aufgrund von
Steuersignalen von der Steuerung 100 über die Sammelleitung 103. Das Rechenwerk 45 führt die gewünschte Operation unter Steuerung eines
Signales von der Steuerung 100 über die Leitung 104 aus. Das Ergebnis
wird in das Ausgaberegister 46 eingegeben, wenn die Steuerung 100 ein
Ladesignal auf die Leitung 105 gibt. Das Ergebnis im Ausgaberegister 46 steht dann der C-Sammelleitung 47 zur Verfügung, die es in ein Bestimmungsregister
einspeist.
Wenn als Bestimmungsregister ein Register der SAR-Registergruppe
gewählt wurde, gibt die Steuerung 100 wieder eine Adresse auf die Sammelleitung
101, ein Ladesignal auf die Leitung 111 und ein Wahlsignal für den Assembler 48 der D-Sammelleitung 49 auf die Leitung 110, wodurch
die C-Sammelleitung 47 als Eingabequelle des Assemblers 48 gewählt wird und die Daten über die D-Sammelleitung 49 in das gewählte SAR-Register
809884/0758
RO9-76-014
- 34 -
der Gruppe 50 laufen. Wenn als Bestimmungsregister ein Register aus der
LSR-Registergruppe 70 gewählt wurde, gibt die Steuerung 100 einen Ladeimpuls auf die Leitung 112, und die Daten von der C-Sammelleitung 47
gelangen in das Register, das durch eine Adresse vom P-Register 90 gewählt wurde. Wenn das Ergebnis für andere Register als solche der SAR-Gruppe
50 oder der LSR-Registergruppe 70 bestimmt ist, gibt die Steuerung 100 einen Ladeimpuls auf die Leitung 106, die repräsentativ für zu
anderen Bestimmungsregistern führende Ladesteuerleitungen ist.
Einzelheiten des Prozessor-Zyklus S2 sind in den Fig. 13 und 20 dargestellt. Der Prozessor-Zyklus S2 unterscheidet sich vom Zyklus Sl
dadurch, dass Daten in den Hauptspeicher geschrieben werden, entweder vom SA-Register 36 oder vom SB-Register 37 über die Sammelleitungen 28
bzw. 29, die den Sl-Sammelleitungsassembler 34 speisen, und dieser
wiederum speist über die Sammelleitung 31 das Datenregister 17. Die Daten werden dann von der Speichersteuerung 15 über die Schreibdatenleitung
12 in den Hauptspeicher 10 geleitet und in eine Speicherstelle geschrieben, die durch die Adresse im Adressregister 18 bezeichnet ist.
Die in das Register 18 gesetzte Adresse kommt von einem Register der
SAR-Gruppe 50. Die Steuerung 100 gibt eine Adresse auf die Sammelleitung 101 und zur SAR-Gruppe 50. Die Adressdaten werden vom gewählten Register
der SAR-Gruppe 50 aufgrund eines Lesesignales von der Steuerung 100 über die Leitung 114 gelesen. Die Adressdaten laufen dann vom gewählten SAR-Register
über die Sammelleitung 32 zum Adressregister 18, von wo sie durch die Speichersteuerung 15 über die Adress-Samraelleitung 16 an den
Hauptspeicher 10 gegeben werden, wenn die Steuerung 100 ein Signal auf die Leitung 115 gibt. Die Taktierung für das Signal auf der Leitung 115
ist im Diagramm der Fig. 20 gezeigt.
Die in den Speicher zu schreibenden Daten werden entweder vom SA-Register
36 oder vom SB-Register 37 durch ein Signal auf der Leitung 118 von der Steuerung 100 gewählt, das an den Sl-Sammelleitungsassembler 34
angelegt wird. Die vom Sl-Sammelleitungsassembler 34 geleiteten Daten gehen in das Register 17 über die Sammelleitung 31 und werden dann von
der Speichersteuerung 15 über die Schreibdatenleitung 12 an den Hauptspeicher
10 weitergeleitet. Die Daten stehen dem Hauptspeicher 10 natürlich vor dem Speicherschreibimpuls auf der Leitung 115 zur Verfügung,
809884/0758
RO9-76-014
- 35 -
wie aus Fig. 20 zu ersehen ist. Die vom gewählten Register der SAR-Gruppe
50 gelieferte Adresse kann ausserdem durch die Inkrementierschaltung
59 erhöht oder erniedrigt werden und dann in das gewählte Register der SAR-Gruppe 50 zurückgeladen werden. Während der Erhöhung
oder Erniedrigung hält die Steuerung 100 die Adresse für das gewählte
SAR-Register auf der Sammelleitung 101. Die Steuerung 100 liefert ein Quellenwahisignal an den Assembler 48 für die die D-Sammelleitung 49
über die Leitung 110 und einen Ladeimpuls über die Leitung 111, wodurch
die erhöhte oder erniedrigte Adresse dann in das gewählte Register der SAR-Gruppe 50 zurückgeladen wird.
Bisher wurden alle von der vorliegenden Erfindung betroffenen Prozessor-Zyklen
sowie die Aufgabeninitialisierung/ die Ausführung von Instruktionen
unter einer Aufgabe sowie der Aufgabenwechsel beschrieben. Ausserdem wurde die Kommunikation zwischen den Aufgaben durch eine Nachrichtenempfangsinstruktion
beschrieben. Anschliessend wird die Kommunikation zwischen den Aufgaben durch eine Nachrichtensendeinstruktion beschrieben.
Das Format einer Nachrichtensendeinstruktion (SENDM) ist in Fig. 3
gezeigt. Sie enthält einen OP-Code, ein I-Feld mit Registeradresse und
ein OPl-FeId. Die Nachrichtensendeinstruktion umfasst 4 Bytes und hat
die Aufgabe, eine Nachricht in eine Sendeempfangswarteschlange SRQ zu setzen und festzustellen, ob eine oder mehrere inaktive, wartende TDE's
auf der Warteliste der SRQ stehen. Wenn das der Fall ist, werden die TDE's aus der Warteliste herausgenommen und gemäss Prioritätsreihenfolge
in die TDQ eingeordnet und der Aufgabenabfertiger aufgerufen. Wenn keine
TDE's auf der Warteliste stehen, ist die Operation abgeschlossen und die nächste Instruktion der aktiven Aufgabe wird geholt, ohne dass der
Aufgabenabfertiger aufgerufen wird.
Die Ausführung einer Nachrichtensendeinstruktion ist allgemein in Fig. 4 dargestellt und detailliert in den Fig. 28, 29 und 30. In Fig. 4
ist gezeigt, wie die Nachrichtensendeinstruktion (SENDM) die Nachricht
in eine·Warteschlange einreiht, auf die ein Zeiger in dem im I-Feld der
Nachrichtensendeinstruktion definierten Register hinweist, d.h., das durch das OPl-FeId in der Nachrichtensendeinstruktion angegebene Register
R2. Die TDE's auf der Warteliste der angegebenen SRQ werden in
809884/0758
RO9-76-014
- 36 - ·
Prioritätsreihenfolge in die TDQ eingereiht. In Fig. 28 ist gezeigt,
dass die Nachrichtensendeinstruktion die erste Instruktion der zum TDE 1 gehörenden Aufgabe ist. Die Nachricht ist im Speicher an einer Adresse
enthalten, die durch das Basisregister 6 der LSR-Registergruppe 70 angegeben ist. Die Nachricht ist SRM 2, und sie wird in die SRQ 1 gesetzt,
auf die durch die Adresse im OPl-FeId in der Nachrichtensendeinstruktion
gezeigt wird.
Wie es oben beschrieben wurde, wird die Nachrichtensendeinstruktion
vor-abgerufen, und dann folgen in der oben beschriebenen Art die Instruktions-Abruf
zyklen, wie es in Fig. 21 gezeigt ist. Nach deren Beendigung folgen die SENDM-Zyklen. Die SENDM-Zyklen sind in Fig. 21 dargestellt.
Bei ihrem Beginn wird das Sende-Kippglied 87 gesetzt und das
Empfangs-Kippglied 88, das ST-Phasen-Kippglied 97 und das RT-Phasen-Kippglied
98 zurückgestellt. Im anschliessenden Zyklus T2 wird die Adresse vom Basisregister 6 der LSR-Registergruppe 70 in das OP2-SAR 55
übertragen. Dann folgt ein Zyklus Sl, in dem das Schlüsselfeld der Nachricht
SRM 2 vom Hauptspeicher 10 in das SB-Register 37 übertragen wird. Während dieses Zyklus S2 wird die im OP2-SAR 55 enthaltene Adresse so
erhöht, dass sie auf das SRM-Kettungsadressfeld der SRM 2 zeigt. Wenn
der Zyklus Sl fertig ist, folgt ein Zyklus P2 zur Uebertragung des
Inhaltes des OPl-SAR 54 in das PCH-SAR 56, um so die Adresse für den
Fall zu retten, dass die SRM 2 in einer leeren SRQ eingereiht wird. Dann schaltet die Operation auf Einsetzzyklen um, die in Fig. 25 gezeigt
sind.
Zum Beginn der Einsetzzyklen enthält das SA-Register 36 das erste Feld der SRQ 1, das SB-Register 37 das erste Feld der Nachricht SRM 2,
PCH-SAR 56 die Adresse der SRQ 1, und 0P2-SAR 55 die Adresse des zweiten Feldes der SRM 2. Der erste Einsetzzyklus ist ein Prozessor-Zyklus T2,
in dem der Inhalt des SA-Registers 36 an das CCH-SAR 57 übertragen wird,
das nun die Adresse des SRM 1 in der SRQ 1 enthält. In einem Zyklus A2 führt dann das Rechenwerk 45 eine Antivalenzverknüpfung des Inhaltes des
CCH-SAR 57 mit Nullen vom Codierer 60 durch, um festzustellen, ob irgendeine Nachricht SRM auf der SRQ 1 steht.
809884/0758
RO9-76-014
- 37 -
In dem in den Fig. 28 bis 30 gezeigten speziellen Beispiel stehen
am Anfang SRM's in der SRQ 1. Somit wird das AZ-Kippglied 96 vom Rechenwerk
45 zurückgestellt. Im anschliessenden Zyklus Al wird das SA-Register
36 mit dem Schlüsselfeld der SRM 1 geladen und das CCH-SAR 57 so erhöht, dass es auf das zweite Feld der SRM 1 zeigt, das die SRM-Kettungsadresse
enthält. In dem nun ausgeführten Zyklus Al wird festgestellt, ob das im SA-Register 36 enthaltene Schlüsselfeld der SRM 1
grosser ist als das Schlüsselfeld der SRM 2 im SB-Register 37. Das
Rechenwerk 45 führt für diesen Vergleich eine Subtraktion aus. Wenn der
Vergleich zufriedenstellend ist, wird das AC-Kippglied 95 und das AZ-Kippglied
96 zurückgestellt. Im speziellen Beispiel kommt die Uebereinstimmung
nicht zustande, weil das AC-Kippglied durch die Rechenwerk-Operation zurückgestellt ist. Dann wird ein Zyklus Sl ausgeführt, um das
SRM-Kettungsadressfeld der SRM 1 in das SAR-Register 36 zu übertragen und die CCH-SAR Adresse so zu erhöhen, dass sie auf die SRM 1 zeigt. In
einem anschliessenden Zyklus T2 wird der Inhalt des CCH-SAR 57 übertragen in das PCH-SAR 56. Im anschliessenden Zyklus A2 wird der Inhalt des
PCH-SAR 56 so erhöht, dass er auf das SRM-Kettungsadressfeld SRM 1 zeigt. Die Operation läuft in einer Schleife dann zurück zum Zyklus T2
und überträgt den Inhalt des SA-Registers 36, das jetzt die Adresse der Nachricht SRM 3 enthält, in das CCH-SAR 57. Jetzt laufen die Prozessor-Zyklen
ein zweites Mal ab, die das Ende der SRM-Kettungsbedingung abfragen und den SRM-Schlüssel vergleichen. Im betrachteten Beispiel ist das
Schlüsselfeld der SRM 3 mit dem Wert 3 grosser als das Schlüsselfeld der SRM 2, das den Wert 2 hat. Somit ist der Vergleich erfolgreich und das
AC-Kippglied 95 wird gesetzt und das AZ-Kippglied 96 zurückgestellt. Im anschliessenden Zyklus T2 wird der Inhalt des CCH-SAR 57 in das SA-Register
36 übertragen. Damit enthält das SA-Register 36 die Adresse der SRM 3. In dem dann ausgeführten Zyklus S2 wird der Inhalt des SA-Registers
36 in das SRM-Kettungsadressfeld der SRM 2 im Hauptspeicher 10 übertragen. Jetzt ist die SRM 3 mit der SRM 2 verkettet, wogegen sie
früher mit der SRM 1 verkettet war. Während dieses Zyklus S2 wird der Inhalt des OP2-SAR 55 so heruntergesetzt, dass er auf den Anfang der SRM
2 zeigt. Im folgenden Zyklus T2 wird die Adresse vom OP2-SAR 55 in das
SA-Register 36 übertragen. In dem anschliessenden Zyklus S2 wird der
809884/87S8
RO9-76-014
- 38 -
Inhalt des SA-Registcrs 36 in das SRM-Kettungsadressfeld der SRM 1 im
Hauptspeicher 10 übertragen und damit die Einordnung der SRM 2 in der Nachrichtenkette der SRQ 1 beendet.
Die Einsetzzyklusoperation läuft weiter durch Decodierung des Inhalts
der Kippglieder 87, 97, 98. Im betrachteten Beispiel ist das Kippglicd
87 gesetzt und die beiden anderen Kippglieder zurückgestellt. Deswegen läuft eine Operation ab, in der das ST-Phasen-Kippglied 97 gesetzt
wird. Dann folgt ein Zyklus A2 zur Erhöhung des Inhaltes des OPl-SAR so, dass es auf das TDE-Kettungsadressfeld der SRQ 1 zeigt. In einem anschliessenden
Zyklus T2 wird der Inhalt des OPl-SAR 54 übertragen in das PCH-SAR 56. Es folgt ein Prozessor-Zyklus Sl zur Uebertragung des TDE-Kettungsadressfeldes
der SRQ 1 in das SA-Register 36. Die verschiedenen Register im Prozessor 30 sind jetzt so eingestellt, dass das erste TDE
aus der TDE-Kette der SRQ 1 gc nommen werden kann. Das TDE 0 wurde in der
SRQ 1 gemäss Darstellung in Fig. 29 eingereiht. Wenn der Zyklus Sl abgeschlossen
ist, schaltet die Operation um auf die in Fig. 27 gezeigten Entnahmezyklen.
Die Entnahmezyklen, in denen ein TDE aus einer Warteschlange entfernt
wird, wurden bereits beschrieben. In diesem speziellen Fall wird das TDE-Kettungsadressfeld der SRQ 1 auf einen Wert von lauter Nullen
abgefragt. Das TDE-Kettungsadressfeld der SRQ 1 ist von Null verschieden, weil das TDE 0 damit verkettet ist. Somit führt die Abfrage auf
lauter Nullen nicht zu einer Uebereinstimmung. Die Inhalte des SA-Registers
36 und des SB-Registers 37 werden dann miteinander verglichen. Kenn ein TDE aus einer SRQ während einer Nachrichtensendeinstruktion
herausgenommen wird, spielt der Inhaltsvergleich zwischen dem SA-Register 36 und dem SB-Register 37 keine Rolle, weil dann der Zustand des
ST-Phasen-Kippgliedes 97 die weitere Arbeit des Prozessors steuert. Wenn
also die Stellung des AZ-Kippgliedes 96 und des ST-Kippgliedes 97 decodiert
sind, schaltet die Operation auf einen Zyklus S2 um, in dem der
Inhalt des SA-Registers 36, der das TDE-Kettungsadressfeld des TDE 0 darstellt, in das TDE-Kettungsadressfeld der SRQ 1 im Hauptspeicher 10
Obertragen wird. Dadurch werden effektiv Nullen in das TDE-Kettungsadressfeld
der SRQ 1 gesetzt und so das TDE 0 aus der TDE-Kette der SRQ entfernt. Gleichzeitig wurde das TDE 0 aus der SRQ 1 herausgenommen.
809884/0758
RO9-76-014
- 39 -
Die übrigen Zyklen stellen die nötigen Prozessoreinrichtungen so ein, dass das TDE 0 in die TDQ eingereiht wird. Die Stellung der Kippglieder
87, 88 und 98 wird decodiert, und in einem Zyklus T2 wird der
Inhalt des CCH-SAR 57, der die Adresse des TDE 0 darstellt, in das 0P2-SAR 55 übertragen. Die Adresse in diesem Register wird dann während
eines Zyklus Sl dazu benutzt, das Schlüsselfeld des TDE 0 vom Hauptspeicher
10 in das SB-Register 37 zu übertragen und den Inhalt des OP2-SAR 55 so zu erhöhen, dass er auf das TDE-Kettungsadressfeld des TDE 0
zeigt. .
Während dieses Zyklus Sl wird ausserdem die Stellung des Sende-Kippgliedes
87 abgefragt, und weil dieses gesetzt ist, wird als nächstes der Zyklus T2 ausgeführt, um den Inhalt des TDQ-SAR 52 in das PCH-SAR
zu übertragen. Es folgt ein Zyklus Sl, um das TDE-Kettungsadressfeld der
TDQ im Hauptspeicher 10 abzurufen und es in das SA-Register 36 zu laden. Dann beginnen die in Fig. 25 gezeigten Einsetzzyklen des Prozessors.
Wie oben schon beschrieben wurde, wird die Hauptschleife der Einsetzzyklen
ausgeführt, bis die richtige Stelle innerhalb der Kettungsliste lokalisiert ist, um das TDE 0 in der richtigen Position gemäss
Schlüsselfolge einzuschieben. In dem betrachteten Beispiel wird die
Schleife einmal ausgeführt und das TDE 0 als oberstes Element der verketteten
Liste von TDE's eingereiht. Im allgemeinen geht diese Folge von
Einsetzen und Entnehmen der TDE's weiter, bis alle TDE's aus der SRQ
entfernt und in der richtigen Position gemäss Schlüsselr-iihenfolge in
die TDQ eingereiht wurden. Während der Einsetzzyklen werden also das Sende-Kippglied 87, das ST-Phasen-Kippglied 97 und das RT-Phasen-Kippglied
98 decodiert und die entsprechenden Prozessoreinrichtungen eingestellt
für die folgenden Entnahmezyklen. Die in Fig. 27 gezeigten Entnahmezyklen werden dann wieder aufgenommen, in dem betrachteten Beispiel
sind jedoch keine weiteren TDE's mit der SRQ 1 verkettet, und daher ist
das AZ-Kippglied 96 gesetzt, wenn das TDE-Kettungsadressfeld der SRQ 1
auf lauter Nullen abgefragt wird. Dann wird wieder die Stellung des Kippgliedes 87 und 88 decodiert. Wenn das Sende-Kippglied 87 gesetzt
ist, wird das D-Kippglied 93 gesetzt und damit angezeigt, dass der
Zustand der TDQ verändert wurde seit Beginn der Ausführung der Nachrich
tensendeinstruktion* Abfertigungszyklen müssen daher jetzt ausgeführt
809884/0758
RO9-76-014
- 40 -
werden, bevor man mit der Ausführung der nächsten Instruktion der neuen
aktiven Aufgabe beginnt.
Weil die Nachrichtensendeinstruktion jetzt'fertig ausgeführt ist,
muss die nächste Instruktion in der oben beschriebenen Art vorher abgerufen
werden. Während der Instruktions-Abrufzyklen dieser nächsten Instruktion
wird jedoch die Stellung des D-Kippgliedes 93 und des E/A-Kippgliedes 94 decodiert und festgestellt, dass das D-Kippglied 93
gesetzt ist und das E/A-Kippglied 94 zurückgestellt ist. Somit werden die Instruktions-Abrufzyklen ausgesetzt und Abfertigungszyklen angefangen.
Abfertigungszyklen treten in der oben beschriebenen Art auf. Im betrachteten Beispiel sollen die Abfertigungszyklen den Zustand der
laufenden aktiven Aufgabe im TDE 1 retten und den Status der Aufgabe TDE 0 in die Einrichtungen des Prozessors 30 laden und dadurch die Steuerung
an die vorher nicht ausführbare Nachrichtenempfangsinstruktion des TDE 0 weitergeben durch Rückkehr zu den Instruktions-Abrufzyklen. Während der
Abfertigungszyklen wird das D-Kippglied 93 bekanntlich zurückgestellt
und damit die Steuerung an die vorher nicht ausführbare Nachrichtenempfangsinstruktion
des TDE 0 übergeben, und die Instruktions-Abrufzyklen für diese Instruktion laufen weiter.
Im betrachteten Beispiel wird die Nachrichtenempfangsinstruktion jetzt ausgeführt, weil die Nachricht SRM 2 jetzt in die SRQ 1 eingereiht
ist. Wenn die Ausführungszyklen für den Nachrichtenempfang beendet sind, wie es in Fig. 26 gezeigt ist, folgen Entnahmezyklen, während deren in
Fig. 27 gezeigtem Ablauf die Hauptschleife zwei mal ausgeführt wird. Der Schlüsselvergleich erfolgt im zweiten Durchgang durch die Schleife. Die
Nachricht SRM 2 wird aus der SRQ 1 in der oben beschriebenen Art herausgenommen.
Die Kippglieder 07, 88 und 98 werden decodiert. Das Empfangskippglied
88 ist zu diesem Zeitpunkt gesetzt, und somit wird die im CCH-SAR 57 enthaltene Adresse der entfernten SRM 2 an ein Register der LSR-Registergruppe
70 übertragen, das durch das R3-Feld der Nachrichtenempfangsinstruktion bezeichnet ist. Die Nachrichtenempfangsinstruktion
ist jetzt fertig ausgeführt und die Instruktions-Abrufzyklen für die nächste vor-abzurufende Instruktion werden aktiviert. Damit ist die
Nachrichtenempfangsinstruktion fertig beschrieben.
809884/0758
RO9-76-014
- 41 -
Die Kommunikation zwischen den Aufgaben erfolgt auch durch Zählwertempfangs-
und Zählwertsendeoperationen, wozu auch die Ausführung der in Fig. 3 gezeigten Instruktion "Zählwert empfangen" RECC (Receive
Count) und "Zählwert senden" SENDC (Send Count) gehört. Mit einer Zählwertempfangsoperation
wird die D^enstbereitschaft angezeigt oder festgestellt,
ob eine vorher angeforderte Funktion beendet ist. Zu einer Zählwertempfangsoperation gehört genau wie zu einer Nachrichtenempfangsoperation
immer ein TDE, d.h. das oberste TDE der TDQ. Die Zählwertempfangsinstruktion
hat ein leeres I-Feld und ein OPl-FeId. Das OPl-FeId
enthält eine Adresse, die auf das erste Wort einer Sendeempfangszählwert-Warteschlange
(SRC) zeigt- Während der Operation einer Zählwertempfangsinstruktion
wird ein Zählwert mit einem Grenzwert verglichen, und wenn der Zählwert grosser oder gleich dem Grenzwert ist, wird er um den
Grenzwert vermindert und die Instruktion ist fertig. Wenn der Zählwert kleiner als der Grenzwert ist, wird das aktive TDE aus der TDQ in eine
Warteliste der SRC gesetzt. Der Zählwert wird nicht erhöht oder erniedrigt und der Aufgabenabfertiger (Task Dispatcher) wird ausgeführt.
Die Zählwertsendeinstruktion enthält einen Zählwertsende-OP-Code
und ein OPl-FeId, das auf das erste Wort der SRC-Warteschlange zeigt.
Während der Operation einer Zählwertsendeinstruktion wird der Zählwert um Eins erhöht und mit einem Grenzwert verglichen. Wenn der Zählwert
grosser oder gleich dem Grenzwert ist, werden TDE's auf der Warteliste
der SRC-Warteschlange entsprechend ihrer Prioritätsreihenfolge in die TDQ eingereiht, und der Aufgabenabfertiger aufgerufen. Wenn keine TDE's
auf der Warteliste der SRC-Warteschlange stehen, ist die Instruktion
fertig. Auch wenn der Zählwert kleiner als der Grenzwert ist, ist die Instruktion fertig.
Die Operation der Zählwertsendeinstruktion und Zählwertempfangsinstruktion
ist in Fig. 31 gezeigt. Das TDE 0 ist das aktive TDE und sein E/A-Feld zeigt auf die Zählwertempfangsinstruktion. Das OPl-FeId der
Zählwertempfangsinstruktion zeigt auf die SRC-Warteschlange 1. Das Format einer SRC-Warteschlange ist in Fig. 3 gezeigt und besteht aus dem Zählwertfeld,
einem Grenzwertfeld und dem TDE-Kettungsadressfeld. In Fig. 31 enthält die SRC 1 den Zählwert 0, einen Grenzwert 1 und die TDE-Kettungsadresse
0. Da die Anfangswerte vom Zählwert- und Grenzwertfeld der SRC 1
809884/0758
RO9-76-014
- 42 -
Null bzw. Eins sind/ ist die Zählwertempfangsinstruktion nicht ausführbar,
und das TDE 0 wird aus der TDQ herausgenommen und in die Warteliste der
SRC 1 eingereiht. Das TDE 1 wird dann vom Aufgabenabfertiger als die Aufgabe mit der höchsten Priorität auf der TDQ abgefertigt. Das TDE 1 hat
eine Instruktionsadresse, die auf eine Zählwertsendeinstruktion zeigt. Das OPl-FeId dieser Zählwertsendeinstruktion zeigt auf die SRC 1. Während
der Ausführung der Zählwertsendeinstruktion wird der Zählwert der SRC 1 um Eins erhöht. Der Zählwert ist dann gleich dem Grenzwert, und deswegen
wird das TDE 0 aus der Warteliste der SRC 1 herausgenommen und in die TDQ als das TDE mit der höchsten Priorität eingereiht. Der Aufgabenabfertiger
fertigt dann das TDE 0 als aktive Aufgabe ab. Die Zählwertempfangsinstruktion, auf die das ΙΑ-Feld des TDE 0 zeigt, wird erneut
ausgeführt. Dieses Mal ist der Zählwert grosser oder gleich dem Grenzwert,
und die Zählwertempfangsinstruktion kann ausgeführt werden. Der Zählwert wird um den Grenzwert durch eine Subtraktion vermindert und der neue
Zählwert in das Zählwertfeld der SRC 1 zurückgestellt, damit ist die Zählwertempfangsinstruktion fertig. Die Instruktionsausführung läuft dann
mit der nächstfolgenden Instruktion der Aufgabe TDE 0 weiter.
Die Zählwertempfangsinstruktion durchläuft die Instruktions-Abrufzyklen
in der im Zusammenhang mit Fig. 21 beschriebenen Art und arbeitet dann weiter mit den Zählwertempfangszyklen, die in Fig. 26 dargestellt
sind. Die Reihenfolge-Steuerkippglieder 87, 88, 97 und 98 werden entsprechend in die Stellungen 0, 1,0 und 0 geschaltet. Diese Einstellungen
sind dieselben wie für die Nachrichtenempfangsinstruktion. Damit ist
sichergestellt, dass die TDE's bei der Ausführung der Zählwertempfangsinstruktion
genauso verschoben werden wie bei der Ausführung der Nachrichtenempfangsinstruktion.
Nachdem die Reihenfolge-Steuerkippglieder eingestellt wurden, wird in einem A2-Zyklus das OPl-SAR so erhöht, dass
es auf das Grenzwertfeld der SRC 1 zeigt. Im anschliessenden Zyklus Sl
wird das Grenzwertfeld vom Speicher 10 geholt und in das SB-Register 37 geladen. Der Inhalt des OPl-SAR 54 wird vermindert, um dann auf das Zählwertfeld
der SRC 1 zu zeigen. Somit enthält das SA-Register 36 ein Zählwertfeld der SRC 1, und das SB-Register 37 enthält das Grenzwertfeld der
SRC 1. In einem Zyklus Al wird festgestellt, ob der Zählwert grosser oder
genau so gross wie der Grenwert ist, und gleichzeitig wird der Grenzwert
809884/0758
RO9-76-024
- 43 -
vom Zählwert subtrahiert. Wenn der Zählwert grosser oder genau so gross
ist wie der Grenzwert, wird im Prozessor aufgrund der RW-Operation das
AC-Kippglied 95 (Rechenwerks-Uebertrag) gesetzt. Wie oben schon in dem
betrachteten Beispiel gezeigt wurde, ist der Zählwert von 0 kleiner als
der Grenzwert von Eins, und somit wird das AC-Kippglied 95 vom Rechenwerkes zurückgestellt. Der Zustand des AC-Kippgliedes 95 wird dann
abgefragt, und da es zurückgestellt ist, weiss man, dass die Zählwertempfangsinstruktion
noch nicht ausführbar ist. Somit muss das TDE 0 wieder aus der TDQ herausgenommen und in die SRC 1 eingereiht werden.
Die Operation schaltet daher auf Entnahmezyklen um.
Die Entnahmezyklen werden so begonnen, um das TDE 0 aus der TDQ herauszunehmen und es in die SRC 1 einzureihen. Die Entnahmezyklen zum
Aufgabenwechsel wurden oben beschrieben. Der Wechsel der Aufgabe erfolgt
genau so wie für andere Aufgaben, und dieses Mal wird die Steuerung vom Aufgabenumschalter an das TDE 1 übergeben, das die Zählwertsendeinstruktion
ausführt, wie es allgemein oben beschrieben ist. Während der Ausführung der Zählwertsendeinstruktion laufen Instruktions-Abrufzyklen (wie
oben beschrieben) ab, und dann schaltet die Operation wieder auf Zählwertsendezyklen,
die im einzelnen in Fig. 24 dargestellt sind.
Zu Beginn der Zählwertsendezyklen werden die Reihenfolge-Steuerkippglieder
87, 88, 97 und 98 entsprechend in die Schaltstellungen 1, 0, 0, 0 gesetzt. Es werden also die Reihenfolge-Steuerkippglieder für die
Zählwertsendeinstruktion genauso eingestellt wie für die Nachrichtensendeinstruktion.
Damit ist sichergestellt, dass bei einer notwendigen Manipulation von TDE's diese genauso abläuft wie bei der Nachrichtensendeinstruktion.
In einem Prozessor-Zyklus A2 wird der Inhalt des OPl-SAR 54 so erhöht, dass er auf das Grenzwertfeld der SRC 1 zeigt. Diesem
Zyklus folgt ein Prozessor-Zyklus Sl zum Abrufen des SRC-Grenzwertfeldes
aus dem Hauptspeicher 10 und zu seiner Eingabe in das SB-Register 37. Während dieses Prozessor-Zyklus Sl wird ausserdem der Inhalt des OPl-SAR
54 heruntergesetzt, um zurück auf das Zählwertfeld der SRC 1 zu zeigen.
Zu dieser Zeit enthält das SA-Register 36 das Zählwertfeld und das SB-Register
37 das Grenzwertfeld der SRC 1. In einem anschliessenden Zyklus Ä2 wird der Zählwert um Eins erhöht. Diesem Zyklus folgt ein Zyklus S2
809884/0758
RO9-76-014
- 44 -
zum Speichern des erhöhten Zählwertes in den Hauptspeicher 10. Im nächsten
Zyklus Λ1 wird festgestellt, ob der erhöhte Zählwert grosser als
oder genau so gross wie der Grenzwert ist. Wenn der Zählwert kleiner ist als der Grenzwert, wird das AC-Kippglied 95 vom Rechenwerk 45 gesetzt,
und wenn der Zählwert grosser als oder genau so gross wie der Grenzwert
ist, wird dieses Kippglied zurückgestellt. Im betrachteten Beispiel ist
der Zählwert grosser als oder genau so gross wie der Grenzwert, und
somit wird das AC-Kippglied 95 vom Rechenwerk 45 zurückgestellt. Wenn der Zählwert kleiner wäre als der Grenzwert, wäre die Zählwertsendeinstruktion
fertig, und dann wurden Instruktions-Abrufzyklen aktiviert zur
Ausführung der nächstfolgenden Instruktion im TDE 0.
Weil das AC-Kippglied 95 zurückgestellt ist, setzt die Steuerung 100 das ST-Phasen-Kippglied 97 und leitet danach einen Prozessor-Zyklus
A2 ein, um den Inhalt des OPl-SAR 54 um 2 zu erhöhen. Der erhöhte Wert ■ wird dann während eines Prozessor-Zyklus T2 in das PCH-SAR 56 übertragen.
Diesem Prozessor-Zyklus T2 folgt ein Prozessor-Zyklus Sl zum Laden des SA-Registers 36 mit dem PCH-Wert vom Hauptspeicher 10. Dann folgen
Entnahmezyklen, um das TDE 0 aus der SRC 1 herauszunehmen und in die TDQ einzuordnen. Wenn das einmal geschehen ist, werden Abfertigungszyklen
aktiviert, und es wird von der Aufgabe TDE 1 zur Aufgabe TDE 0 gewechselt. Die Steurung wird dann an die vorher nicht ausführbare Zählwertempfangsinstruktion
des TDE 0 zurückgegeben. Die Instruktionsausführung läuft für die Zählwertempfangsinstruktion weiter durch Ausführung von
Instruktions-Abrufzyklen und anschliessende Aktivierung der Zählwertempfangszyklen,
die genauso, wie oben beschrieben, ablaufen. Jedoch ist dieses Mal das AC-Kippglied 95 gesetzt, und daher folgen keine Entnahmezyklen,
sondern ein Zyklus S2, Um den verminderten Zählwert aus dem SA-Register
36 in das Zählwertfeld der SRC 1 im Hauptspeicher 10 zurückzuspeichern. Damit ist die Ausführung der Zählwertempfangsinstruktion
beendet, und die Ausführung wird fortgesetzt mit der nächstfolgenden Instruktion im Instruktionsstrom des TDE 0 der Aufgabe.
Ausser den Instruktionen zum Senden und Empfangen von Nachrichten und Zählwerten gibt es auch Instruktionen zum Entnehmen und Einsetzen
von Nachrichten, die in Fig. 3 gezeigt sind. Die Nachrichteneinsetzinstruktion (ENQM) hat ein Nachrichteneinsetz-OP-Feld, ein I-Feld und ein
809884/0758
RO9-76-014
- 45 -
Feld OPl. Das I-Feld enthält eine Adresser um auf das Basisregister 2
der LSR-Registergruppe 70 zu. zeigen. Die Nachrichteneinsetzinstruktion
reiht eine Nachricht SRM in einer SRQ ähnlich ein wie eine Nachrichtensendeinstruktion.
Aus Fig. 24 ist zu ersehen, dass bei Beginn der Nachrichteneinsetzzyklen die Reihenfolge-Steuerkippglieder 07, 88, 97 und
alle zurückgestellt sind. Danach folgen wie bei der Nachrichtensendeinstruktion die Zyklen T2, Sl und T2. Nach dem letzten T2-Zyklus folgen
Einsetzzyklen.
Die Nachrichtenentnahmeinstruktion (DEQM) hat ein ähnliches Format
wie die Nachrichtenempfangsinstruktion und funktioniert auch ähnlich. Aus Fig. 26 ist zu ersehen, dass die Reihenfolge-Steuerkippglieder 87,
88, 97 und 98. alle zurückgestellt sind und danach ein Zyklus T2 folgt.
Bei dessen Ende schaltet die Operation auf Entnahmezyklen um, wie bei der Nachrichtenempfangsinstruktion.
E/A-Aufgaben werden in die TDQ genauso eingereiht wie jede andere
Aufgabe. In Fig. 32 ist eine E/A-Aufgabe mit einem TDE höchster Priorität in der TDQ gezeigt. Die E/A-Aufgäbe ist durch die Abkürzung IOM bezeichnet,
das bedeutet E/A-Manager. Die IOM-Aufgabe beginnt eine E/A-Anforderung
durch Ausführen der Nachrichtensendeinstruktion, die dann eine Nachricht SRM in eine SRQ setzt und TDE's aus dieser SRQ entfernt.
In dem in Fig. 32 gezeigten Beispiel ist die Nachricht SRM bezeichnet mit ORE, was Operationsanforderungseletnent bedeutet. Das TDE in der SRQ
ist eine Operationseinheitenaufgabe (OUT). Die Operationseinheitenaufgabe, die aus der SRQ herausgenommen und in die TDQ eingereiht wurde,
wird die aktive Aufgabe und behandelt die Anforderung durch Benutzung einer Nachrichtenempfangsoperation. Dies ist in Fig. 33 gezeigt.
Die Operationseinheitenaufgabe (OU-Aufgäbe) interpretiert die Anforderung
und gibt einen entsprechenden Gerätebefehl an den E/A-Kanal 500 und wartet dann in der SRC, bis die E/A-Funktion fertig ist. Die OU-Aufgabe
enthält eine Zählwertempfangsinstruktion (RECC) in ihrem Instruktion
sstrom. Diese Instruktion ist nicht ausführbar, und somit wird
das TDE (OU-Aufgabe) aus der TDQ herausgenommen und in die SRC eingereiht. Diese Operation ist durch die gestrichelte Linie in Fig. 33
dargestellt. Durch das Herausnehmen wechseln die Aufgaben, und die IOM-Aufgabe wird zur aktiven Aufgabe. Sie gibt eine Nachrichtenempfangsin-
809884/0758
RO9-76-014
- 46 -
struktion, die nicht ausführbar ist, und demzufolge wird die IOM-Aufgabe
aus der TDQ herausgenommen und in die IOM-SRQ eingereiht, auf die das
OPl-FeId der Nachrichtenempfangsinstruktion gemäss Darstellung in Fig.
34 zeigt. Die Aufgaben wechseln wieder und die Aufgabe mit der höchsten
Priorität in der TDQ wird zur aktiven Aufgabe. Die IOM-Aufgabe wartet in
der SRQ, und die OU-Aufgabe wartet ebenfalls in der SRC, wie es in Fig.
35 gezeigt ist.
Wenn die E/A-Funktion fertig ist, sendet der E/A-Kanal eine SRC-Adresse
an einen E/A-Ereignisstapel 25 (Fig. 36), der sich im Hauptspeicher 10 befindet, und setzt das E/A-Kippglied 94 durch ein Signal über
die Leitung 512 in Fig. 1. Das E/A-Ereignisfeld im E/A-Ereignisstapel ist die Adresse der SRC, in der die OU-Aufgabe wartet. Da das E/A-Kippglied
94 durch dieses Signal vom E/A-Kanal gesetzt wurde, wechselt die Operation während der Instrukt .ons-Abrufzyklen auf die E/A-Ereigniszyklen
.
Die in Fig. 23 gezeigten E/A-Ereigniszyklen verarbeiten die E/A-Ereignisse.
Die erste Operation dieser Zyklen ist der Abruf der SRC-Adresse vom Ereignisstapel im Hauptspeicher 10 und ihr Laden in das SA-Register
36 während des Prozessor-Zyklus Sl. Die oberste Eintragung im Ereignisstapel 25 enthält in diesem speziellen Beispiel lauter Nullen,
um anzuzeigen, dass der Ereignisstapel leer ist. Die nächste Operation der E/A-Ereigniszyklen besteht daher in der Bestimmung, ob ein E/A-Ereignisfeld
im E/A-Ereignisstapel steht, in dem im Prozessor-Zyklus A2 der Inhalt des SA-Registers 36 abgefragt wird. Wenn der E/A-Ereignisstapel
leer ist, setzt das Rechenwerk 45 das AZ-Kippglied 96. Wenn andererseits
ein E/A-Ereignisfeld im E/A-Ereignisstapel steht, wird das AZ-Kippglied 96 zurückgestellt. Die nächste Operation ist daher die Abfrage
des AZ-Kippgliedes. Wenn das AZ-Kippglied gesetzt ist, wird das E/A-Kippglied
94 zurückgestellt, und die Operation schaltet zu den Instruktions-Abruf zyklen um, und dieses Mal wird das E/A-Kippglied 94 über die
Instruktions-Abrufzyklen als zurückgestellt erkannt.
Wenn das AZ-Kippglied 96 zurückgestellt ist, wird im folgenden Prozessor-Zyklus
A2 der Inhalt des E/A-SAR 58 so vermindert, dass er auf die nächste SRC-Adresse zeigt, die in diesem Beispiel eine Einheit über
der laufenden SRC-Adresse ist. (Das ist jedoch Sache der Implementierung.)
809884/0758
RO9-76-014
- 47 -
Soweit die vorliegende Erfindung betroffen ist/ kann der E/A-Ereignisstapel
ein Registersatz sein/ der über den Inhalt des E/A-SAR 50 adressiert
wird. Dabei ist es freigestellt/ ob die Adresse erhöht oder erniedrigt
wird. Es kann auch ein festes Register den Registerstapel für die E/A-Ereignisse adressieren, und dann würde der Inhalt des E/A-SAR 58
in dieses Register übertragen, um den E/A-Ereignisregisterstapel zu adressieren. Im betrachteten Beispiel braucht man keine separaten Register,
weil der Hauptspeicher 10 bezüglich Kapazität und Geschwindigkeit ausreicht. Bei kritischen Geschwindigkeitsanforderungen würde der E/A-Ereignisstapel
als Registersatz und nicht als reservierte Positionen im Hauptspeicher implementiert.
Der Verminderung des Inhaltes des E/A-SAR 58 folgt der Prozessor-Zyklus
C2 zur Uebertragung des Inhaltes des SA-Registers 36 in das OPl-SAR
54. In einem anschliessenden Zyklus Sl wird das SA-Register 36 mit dem Inhalt der Hauptspeicherstelle geladen, auf die die Adresse im OPl-SAR
54 zeigt. Dann werden Zählwertsendezyklen angefangen/ um einen Zählwert in das Zählwertfeld der SRC zu senden, und um in der SRC wartende
TDE's herauszunehemn, das heisst, in diesem speziellen Fall das TDE der
OU-Aufgabe. Die gerade beschriebene Operation wird wiederholt, bis alle
E/A-Ereignisse im E/A-Aufgabenstapel behandelt wurden, d.h., bis der E/A-Aufgabenstapel leer ist und das E/A-Kippglied 94 zurückgestellt ist.
Aus Fig. 36 ist zu sehen, dass die OU-Aufgabe aus dem Wartezustand
herausgenommen und in die TDQ eingereiht wurde. Die Zählwertempfangsinstruktion ist dann ausführbar, wenn die OU-Aufgabe abgefertigt wurde.
Die OU-Aufgabe sendet dann eine Nachricht SRM, welche die Beendigungs-Statusangabe
enthält, an eine SRQ, d.h., an die OU-Warteschlange. Diese
Operation ist in Fig. 37 gezeigt, wo die OU-Aufgabe eine Nachrichtensendeinstruktion
hat, die ein R2-Feld zum Adressieren eines Registers der LSR-Registergruppe 70 enthält. Das gewählte Register aus der LSR-Registergruppe
70 enthält eine Adresse, die auf eine Nachricht SRM zeigt, in diesem Fall ein Operationsanforderungselement (ORE-Objekt).
Dieses SRM (ORE-Objekt) wird in die SRQ (I0M) eingereiht, auf die das OPl-FeId der Instruktion SENDM zeigt. Ausserdem wird das in der SRQ
(IOM) wartende TDE (I0M) in die TDQ eingereiht, und die Aufgabe wird
gewechselt. Der IOM-Aufgabe wird dann der Beendigungszustand mitgeteilt
809884/0758
28285U
RO9-76-014
- 48 -
durch Empfang der ORE von der Antwort-Warteschlange. Es ist in Fig. 38
gezeigt, wo eine RECM-Instruktion der aktiven Aufgabe TDE -(1OM) ausgeführt
wird.
Die beschriebene spezielle Operation ist schematisch auch in Fig. gezeigt, wo die Benutzeraufgaben E/A-Anforderungen an E/A-Aufgaben sowie
Feldantworten (die Beendigung anzeigen) hervorrufen durch Benutzung der Sendempfangsoperationen an SRQ1s. Taktgeberereignisse werden dem System
als E/A-Ereignis angezeigt, und die E/A-Bearbeitung wird in der oben beschriebenen Art ausgeführt, tun für jedes Taktgeberereignis einen
Zählwert an die SRC zu senden. Diese zu Taktgeberereignissen gehörenden SRC werden von einer System-Taktgeberaufgabe verwaltet, um dem System
die Taktgeberdienste zur Verfügung zu stellen.
809884/0758
Claims (9)
- RO9-76-014j NAOHGEREICHTPATENTANSPRUECHEίIy Anordnung zur Behandlung von Aufgaben in einem Datenverarbeitungs- -system, gekennzeichnet durch:eine Aufgabenwarteschlangen-Speichereinrichtung (TDQ), in welche Kennzeichnungen zur Identifizierung der jeweils aktiven Aufgabe einsetzbar sind,Transfereinrichtungen mit einer Sendeeinrichtung zum Einsetzen von Aufgabenabfertigungselementen (TDE) in die Äufgabenwarteschlangen-Speichereinrichtung unter Berücksichtigung der Priorität, und mit Empfangseinrichtungen zur Entnahme des jeweils aktiven Aufgabenabfertigungselementes aus der Aufgabenwarteschlangen-Speichereinrichtung, und- Aufgabenumschalteinrichtungen für den Aufgabenwechsel, welche mit der Sendeeinrichtung verbunden sind, um ein Aufgabenabfertigungselement beim Einsetzen in die Aufgabcnwarteschlangen-Speichereinrichtung als aktiv zu kennzeichnen, wenn dieses eine höhere Priorität als die gerade aktive Aufgabe hat, und welche mit der Empfangseinrichtung verbunden sind, um bei Entnahme einer gerade aktiven Aufgabe aus der Aufgabenwarteschlangen-Speichereinrichtung das Aufgabenabfertigungselement mit der nächstniedrigeren Priorität als aktiv zu kennzeichnen.
- 2. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet,· dass die Aufgabenabfertigungselemente (TDE) ein Prioritätsanzeigefeld, ein809884/075 8 oRiQINAL mPECTEDRO9-76-0L42825544— 2 —Aufgabenabfertigungselement-Adressfeld (TDK-KA) und ein Aufgabenstatusfeld mindestens zur Aufnahme von Angaben für Beginn oder Fortsetzung der Ausführung der betreffenden Aufgabe aufweisen.
- 3. Anordnung nach Patentanspruch 1, dadurch gekennzeichnet, dass eine E/A-Ereignis-Bearbeitungseinrichtung vorgesehen ist, welche auf ein E/A-Ereignis anspricht, um den Status des E/A-Ereignisses zu speichern und um die Sendeeinrichtung zu aktivieren zum Einsetzen einer E/A-Aufgabe gemäss deren Priorität in die Aufgabenwarteschlangen-Speichereinrichtung (TDQ).
- 4. Anordnung gemäss Patentanspruch 1, dadurch gekennzeichnet, dass zusätzlich vorgesehen sind:eine Sendeempfangswarteeinrichtung (SRQ) mit mindestens einem Sendeempfangsnachrichten-Adressfeld. (SRM-KA) zum Einsetzen von Sendeerapfangsnachrichten (SRM), und mit mindestens einem Aufgabenabfertigungselement-Adressfeld (TDE-KA) zum Einsetzen von Aufgabenabfertigungselementen (TDE), wobei die Sendeeinrichtung Mittel enthält zum Zugreifen zur Sendeempfangswarteeinrichtung und zum Entnehmen von Aufgabenabfertigungselementen daraus; sowie zum Einsetzen der entnommenen Aufgabenabfertigungselemente in die Aufgabenwarteschlangen-Speichereinrichtung (TDQ).
- 5. Anordnung gemäss Patentanspruch 4, dadurch gekennzeichnet, dass die Sendeempfangsnachrichten (SRM) ein Reihenfolge-Schlüsselfeld, ein Sendeempfangsnachrichten-Adressfeld (SRM-KA) und ein Nachrichtendatenfeld enthalten, wobei die Sendeempfangsnachrichten gemäss dem Reihenfolge-Schlüsselfeld in die Sendeempfangswarteeinrichtung (SRQ) eingesetzt werden.
- 6. Anordnung nach Patentanspruch 47 dadurch gekennzeichnet, dass die Empfangseinrichtung Mittel enthält zum Einsetzen des bisher aktiven Aufgabenabfertigungselementes (TDE), welches aus der Aufgabenwarteschlangen-Speichereinrichtung (TDQ) entnommen wurde, in ein Aufgabenabfertigungselement-Adressfeld (TDE-KA) der Sendeemjpfangswarteeinrichtung (SRQ).809884/0758
- 7. Anordnung nach Patentanspruch 1, gekennzeichnet durch:eine Sendeempfangszähleinrichtung (SRC) mit" einem Zählwertfeld, einem Grenzwertfeld und einem Aufgabenabfertigungselement-Adressfeld (TDE-KA),- eine Inkrementiervorrichtung zum selektiven Erhöhen des Zählwertes,eine Vergleichsvorrichtung zum Vergleichen des Zählwertes mit dem Grenzwert, und- eine Anzeigeeinrichtung/ welche mit der Vergleichsvorrichtung verbunden ist und ein erstes Anzeigesignal abgibt, wenn der Zählwert grosser als oder gleich gross wie der Grenzwert ist, sowie ein zweites Anzeigesignal, wenn der Zählwert kleiner als der Grenzwert ist, wobei die Sendeeinrichtung aufgrund des ersten Anzeigesignals ein Aufgabenabfertigungselement (TDE) aus dem Aufgabenabfertigungs-Adressfeld (TDE-KA) der Sendeempfangszähleinrichtung (SRC) entnimmt und geraäss Prioritätsreihenfolge in die Aufgabenwarteschlangen-Speichereinrichtung (TDQ) einsetzt.
- 8. Anordnung nach Patentanspruch 7, dadurch gekennzeichnet, dass die Anzeigeeinrichtung ein bistabiles Kippglied (95) ist.
- 9. Anordnung nach Patentanspruch 7, dadurch gekennzeichnet, dass eine Subtraktionseinrichtüng vorgesehen ist, welche aufgrund des ersten Anzeigesignals den Zählwert um den Grenzwert vermindert, wobei dann die Empfangseinrichtung aufgrund des zweiten Anzeigesignals das aktive Aufgabenabfertigungselement (TDE) aus der Aufgabenwarteschlangen-Speichereinrichtung (TDQ) entnimmt und gemäss Priorität in das Aufgabenverteilungselement-Adressfeld (TDE-KA) der Sendeempfangswarteeinrichtung (SRQ) einsetzt.809884/0758
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US05/813,901 US4177513A (en) | 1977-07-08 | 1977-07-08 | Task handling apparatus for a computer system |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2828544A1 true DE2828544A1 (de) | 1979-01-25 |
DE2828544C2 DE2828544C2 (de) | 1989-06-15 |
Family
ID=25213705
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19782828544 Granted DE2828544A1 (de) | 1977-07-08 | 1978-06-29 | Anordnung zur behandlung von aufgaben in einem datenverarbeitungssystem |
Country Status (13)
Country | Link |
---|---|
US (1) | US4177513A (de) |
JP (1) | JPS5418640A (de) |
AU (1) | AU517201B2 (de) |
BE (1) | BE868360A (de) |
BR (1) | BR7804426A (de) |
CA (1) | CA1103368A (de) |
CH (1) | CH634936A5 (de) |
DE (1) | DE2828544A1 (de) |
ES (1) | ES470934A1 (de) |
FR (1) | FR2397017B1 (de) |
GB (1) | GB1601008A (de) |
IT (1) | IT1113184B (de) |
SE (1) | SE7807561L (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0021146A2 (de) * | 1979-07-03 | 1981-01-07 | International Business Machines Corporation | Einen Apparat zur Aufgabenbehandlung enthaltendes Computersystem |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5624651A (en) * | 1979-08-07 | 1981-03-09 | Nec Corp | Multiple task processing unit |
US4320456A (en) * | 1980-01-18 | 1982-03-16 | International Business Machines Corporation | Control apparatus for virtual address translation unit |
JPS56110154A (en) * | 1980-02-06 | 1981-09-01 | Fuji Xerox Co Ltd | Sequence control system by microcomputer |
US4384323A (en) * | 1980-02-25 | 1983-05-17 | Bell Telephone Laboratories, Incorporated | Store group bus allocation system |
ATE38442T1 (de) * | 1980-02-28 | 1988-11-15 | Intel Corp | Datenverarbeitungssystem. |
US4358829A (en) * | 1980-04-14 | 1982-11-09 | Sperry Corporation | Dynamic rank ordered scheduling mechanism |
JPS57176782U (de) * | 1981-05-02 | 1982-11-09 | ||
US4394727A (en) * | 1981-05-04 | 1983-07-19 | International Business Machines Corporation | Multi-processor task dispatching apparatus |
US4435780A (en) * | 1981-06-16 | 1984-03-06 | International Business Machines Corporation | Separate stack areas for plural processes |
US4451840A (en) * | 1981-11-25 | 1984-05-29 | Rca Corporation | Picture control for television receiver on-screen display |
JPS58222673A (ja) * | 1982-06-18 | 1983-12-24 | Matsushita Electric Ind Co Ltd | テレビジヨン受像機の信号切換え制御装置 |
GB8309770D0 (en) * | 1983-04-11 | 1983-05-18 | Inmos Ltd | Microcomputer |
JPS6036692U (ja) * | 1983-08-22 | 1985-03-13 | パイオニア株式会社 | ディスプレイ装置 |
GB8329509D0 (en) * | 1983-11-04 | 1983-12-07 | Inmos Ltd | Computer |
US4736318A (en) * | 1985-03-01 | 1988-04-05 | Wang Laboratories, Inc. | Data processing system having tunable operating system means |
EP0257655B1 (de) * | 1986-08-28 | 1994-07-06 | Nec Corporation | Multiaufgabenverarbeitungsgerät |
US5202988A (en) * | 1990-06-11 | 1993-04-13 | Supercomputer Systems Limited Partnership | System for communicating among processors having different speeds |
JPH0743653B2 (ja) * | 1990-07-25 | 1995-05-15 | 株式会社東芝 | 割込みコントローラ |
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 |
US5386560A (en) * | 1991-05-23 | 1995-01-31 | International Business Machines Corporation | Execution of page data transfer by PT processors and issuing of split start and test instructions by CPUs coordinated by queued tokens |
US5437039A (en) * | 1992-05-21 | 1995-07-25 | Intel Corporation | Servicing transparent system interrupts and reducing interrupt latency |
US5381346A (en) * | 1992-06-30 | 1995-01-10 | Motorola, Inc. | Virtual data source for a radio transceiver |
JP2587190B2 (ja) * | 1992-09-04 | 1997-03-05 | インターナショナル・ビジネス・マシーンズ・コーポレイション | システム間チャネルページング機構 |
US6951019B1 (en) | 1992-09-30 | 2005-09-27 | Apple Computer, Inc. | Execution control for processor tasks |
US6304891B1 (en) * | 1992-09-30 | 2001-10-16 | Apple Computer, Inc. | Execution control for processor tasks |
US5625845A (en) * | 1992-10-13 | 1997-04-29 | International Business Machines Corporation | System for facilitating continuous, real-time, unidirectional, and asynchronous intertask and end-device communication in a multimedia data processing system using open architecture data communication modules |
JP2516317B2 (ja) * | 1992-10-13 | 1996-07-24 | インターナショナル・ビジネス・マシーンズ・コーポレイション | デ―タ処理システムとディジタル信号プロセッサへのロ―ディング方法 |
WO1994011817A1 (en) * | 1992-11-09 | 1994-05-26 | Microsoft Corporation | Method and system for connecting objects in a computer system |
GB2273591A (en) * | 1992-12-18 | 1994-06-22 | Network Systems Corp | Microcomputer control systems for interprogram communication and scheduling methods |
US5528513A (en) * | 1993-11-04 | 1996-06-18 | Digital Equipment Corp. | Scheduling and admission control policy for a continuous media server |
US5940612A (en) * | 1995-09-27 | 1999-08-17 | International Business Machines Corporation | System and method for queuing of tasks in a multiprocessing system |
US6393455B1 (en) | 1997-03-28 | 2002-05-21 | International Business Machines Corp. | Workload management method to enhance shared resource access in a multisystem environment |
US7178147B2 (en) * | 2001-09-21 | 2007-02-13 | International Business Machines Corporation | Method, system, and program for allocating processor resources to a first and second types of tasks |
GB2388213A (en) * | 2002-04-30 | 2003-11-05 | Innovation Ct | Improvements relating to task dispatch in priority pre-emptive real-time operating systems |
AU2003303497A1 (en) * | 2002-12-31 | 2004-07-29 | Globespanvirata Incorporated | System and method for providing balanced thread scheduling |
US20050015768A1 (en) * | 2002-12-31 | 2005-01-20 | Moore Mark Justin | System and method for providing hardware-assisted task scheduling |
CN114928893B (zh) * | 2022-06-20 | 2024-04-16 | 东北大学秦皇岛分校 | 一种基于智能反射面的架构及任务卸载方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2459675A1 (de) * | 1973-12-17 | 1975-06-26 | Honeywell Inf Systems | Datenverarbeitungssystem |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3530438A (en) * | 1965-12-13 | 1970-09-22 | Sperry Rand Corp | Task control |
DE1549531A1 (de) * | 1966-08-16 | 1971-04-01 | Scient Data Systems Inc | Digitale Rechenanlage |
US3447135A (en) * | 1966-08-18 | 1969-05-27 | Ibm | Peripheral data exchange |
US3496551A (en) * | 1967-07-13 | 1970-02-17 | Ibm | Task selection in a multi-processor computing system |
US3599162A (en) * | 1969-04-22 | 1971-08-10 | Comcet Inc | Priority tabling and processing of interrupts |
US3665415A (en) * | 1970-04-29 | 1972-05-23 | Honeywell Inf Systems | Data processing system with program interrupt priority apparatus utilizing working store for multiplexing interrupt requests |
US3699530A (en) * | 1970-12-30 | 1972-10-17 | Ibm | Input/output system with dedicated channel buffering |
US3725864A (en) * | 1971-03-03 | 1973-04-03 | Ibm | Input/output control |
US3774163A (en) * | 1972-04-05 | 1973-11-20 | Co Int Pour L Inf | Hierarchized priority task chaining apparatus in information processing systems |
US4015242A (en) * | 1972-11-29 | 1977-03-29 | Institut Francais Du Petrole, Des Carburants Et Lubrifiants Et Entreprise De Recherches Et D'activities Petrolieres Elf | Device for coupling several data processing units to a single memory |
US3944985A (en) * | 1973-10-19 | 1976-03-16 | Texas Instruments Incorporated | Workspace addressing system |
FR2253428A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US4320451A (en) * | 1974-04-19 | 1982-03-16 | Honeywell Information Systems Inc. | Extended semaphore architecture |
-
1977
- 1977-07-08 US US05/813,901 patent/US4177513A/en not_active Expired - Lifetime
-
1978
- 1978-04-24 CA CA301,827A patent/CA1103368A/en not_active Expired
- 1978-05-10 GB GB18821/78A patent/GB1601008A/en not_active Expired
- 1978-05-24 AU AU36450/78A patent/AU517201B2/en not_active Expired
- 1978-06-20 ES ES470934A patent/ES470934A1/es not_active Expired
- 1978-06-20 FR FR7819402A patent/FR2397017B1/fr not_active Expired
- 1978-06-22 BE BE188770A patent/BE868360A/xx not_active IP Right Cessation
- 1978-06-23 CH CH687178A patent/CH634936A5/de not_active IP Right Cessation
- 1978-06-28 JP JP7755478A patent/JPS5418640A/ja active Granted
- 1978-06-29 IT IT25102/78A patent/IT1113184B/it active
- 1978-06-29 DE DE19782828544 patent/DE2828544A1/de active Granted
- 1978-07-05 SE SE7807561A patent/SE7807561L/xx unknown
- 1978-07-10 BR BR7804426A patent/BR7804426A/pt unknown
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2459675A1 (de) * | 1973-12-17 | 1975-06-26 | Honeywell Inf Systems | Datenverarbeitungssystem |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0021146A2 (de) * | 1979-07-03 | 1981-01-07 | International Business Machines Corporation | Einen Apparat zur Aufgabenbehandlung enthaltendes Computersystem |
EP0021146A3 (en) * | 1979-07-03 | 1981-07-22 | International Business Machines Corporation | Computer system including a task handling apparatus |
Also Published As
Publication number | Publication date |
---|---|
IT1113184B (it) | 1986-01-20 |
CA1103368A (en) | 1981-06-16 |
GB1601008A (en) | 1981-10-21 |
AU517201B2 (en) | 1981-07-16 |
CH634936A5 (de) | 1983-02-28 |
JPS5637572B2 (de) | 1981-09-01 |
FR2397017A1 (fr) | 1979-02-02 |
FR2397017B1 (fr) | 1985-10-18 |
JPS5418640A (en) | 1979-02-10 |
IT7825102A0 (it) | 1978-06-29 |
BE868360A (fr) | 1978-10-16 |
BR7804426A (pt) | 1979-04-10 |
DE2828544C2 (de) | 1989-06-15 |
SE7807561L (sv) | 1979-01-09 |
ES470934A1 (es) | 1979-02-01 |
AU3645078A (en) | 1979-11-29 |
US4177513A (en) | 1979-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2828544A1 (de) | Anordnung zur behandlung von aufgaben in einem datenverarbeitungssystem | |
DE69419680T2 (de) | Skalierbare Unterbrechungsstruktur für ein Simultanverarbeitungssystem | |
DE69226928T2 (de) | Verfahren und Direktspeicherzugriffssteuerung zum asynchronen Daten-Lesen von einem -Schreiben in einen Speicher mit verbessertem Durchfluss | |
DE3689394T2 (de) | Informationsverarbeitungsanlage mit einem Allzweckprozessor und einem Sonderzweckprozessor. | |
DE68927492T2 (de) | Verfahren und Vorrichtung zur gleichzeitigen Verteilung von Befehlen an mehrere funktionelle Einheiten | |
DE3852928T2 (de) | Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen. | |
DE69520886T2 (de) | System und verfahren zur verarbeitung von signaldaten und kommunikationssystem mit system zur verarbeitung von signaldaten | |
EP1146432B1 (de) | Umkonfigurierungs-Verfahren für programmierbare Bausteine während der Laufzeit | |
DE1913059C2 (de) | Programmunterbrechungseinrichtung für eine Datenverarbeitungsanlage | |
DE60030767T2 (de) | Datenzuweisung zu threads in einem multi-threaded netzwerkprozessor | |
DE60010907T2 (de) | Sram-steuerungvorrichtung für parallele prozessorarchitektur mit adressen- und befehlswarteschlange und arbiter | |
DE3751514T2 (de) | Adressieranordnung für RAM-Puffer-Steuereinrichtung. | |
DE69130620T2 (de) | Datenübertragungsadapter und Verfahren zu dessen Betrieb | |
DE2744531C2 (de) | Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage | |
DE3587167T2 (de) | Geraet zur vektorverarbeitung. | |
DE2104733A1 (de) | Mehrkanal Ubertragungsverarbeitungs system zum unabhängigen Steuern von Ein gäbe/Ausgabe Datenübertragungen | |
DE1524166B1 (de) | Schaltungsanordnung zur Herstellung von Verbindungen zwischen mehreren unabhaengigen Teilen und einem gemeinsamen Teil einer Datenverarbeitungsanlage | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE2725522A1 (de) | Datenverarbeitungsvorrichtung | |
DE1549474C3 (de) | Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE4305851A1 (en) | Data transfer system between memory and central processing unit - uses direct memory access transfer control having bus information control stage to provide time priority access control of operations | |
DE112011104491T5 (de) | Pufferverwaltungsschema für einen Netzwerkprozessor | |
DE3853162T2 (de) | Gemeinsamer intelligenter Speicher für die gegenseitige Verbindung von verteilten Mikroprozessoren. | |
DE2856680C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8110 | Request for examination paragraph 44 | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |