DE2209282A1 - Datenverarbeitungsanlage - Google Patents
DatenverarbeitungsanlageInfo
- Publication number
- DE2209282A1 DE2209282A1 DE19722209282 DE2209282A DE2209282A1 DE 2209282 A1 DE2209282 A1 DE 2209282A1 DE 19722209282 DE19722209282 DE 19722209282 DE 2209282 A DE2209282 A DE 2209282A DE 2209282 A1 DE2209282 A1 DE 2209282A1
- Authority
- DE
- Germany
- Prior art keywords
- channel
- unit
- queue
- units
- program
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/122—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware performs an I/O function other than control of data transfer
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Hardware Redundancy (AREA)
- Control By Computers (AREA)
Description
Die Erfindung betrifft eine Datenverarbeitungsanlage mit einem oder mehreren Eingabe/Ausgabe-Kanälen, mehreren Eingabe/Ausgabe-Steuereinheiten,
mehreren gemeinsamen Einheiten und mehreren peripheren Geräten, die miteinander über eine Schaltmatrix verbunden
sind.
In derartigen Datenverarbeitungsanlagen werden die Informationen zu den peripheren Geräten über Kanäle, die sowohl als Multiplexals
auch als Selektorkanäle ausgebildet sein können, vorgenommen, wobei den Kanälen Steuereinheiten zugeordnet sind, die mit ihnen
in Verbindung stehende periphere Geräte auswählen und steuern können. Aus der US Patentschrift 3 336 582 ist z. B. eine zentrale
Datenverarbeitungseinheit, die mit mehreren Eingabe- und Ausgabegeräten wahlweise verbunden ist, bekannt geworden. Zu diesem
Zwecke sind in diesem Falle drei Leitungsbündel vorgesehen, wovon das erste Leitungsbündel Daten-Adressen von Eingabe/Ausgabe-Geräten
und Befehle überträgt, das zweite Leitungsbündel Signale überträgt, die die Art der Informationen im ersten Leitungsbün-
209839/1044
del angeben, und das dritte Leitungsbündel die Auswahlsteuersignale überträgt, die den Informationsfluß steuern und Prioritätsangaben vermitteln. Abgesehen davon, daß eine derartige Einrichtung
mit mehreren Leitungsbündeln für die Verbindung einer Vielzahl von Verarbeitungseinheiten mit einer Vielzahl von peripheren
Einheiten, die zum Teil noch weit entfernt stehen, nicht geeignet ist, hat ein derartig aufgebautes System den großen Nachteil,
daß bei der Übertragung von Daten eines Gerätes auf ein anderes die Übertragungskanäle, Steuereinheiten und Mikroprogrammsteuerungen
zu lange blockiert sind.
Eine Schaltmatrix in Form eines Koordinatenschalters zur Verbindung
mehrerer Speichereinrichtungen mit mehreren Verarbeitungseinheiten ist aus der deutschen Auslegeschrift 1 118 506 bekannt.
Jeder Verarbeitungseinheit ist hier eine besondere Speichereinrichtung zugeordnet, die die Adresse des mit dieser Verarbeitungseinheit
verbundenen Teilspeichers speichert, um Mehrfachbelegungen zu vermeiden. Diese Art der Speicherung des Belegungszustands
der Schaltmatrix ist jedoch sehr aufwendig und erfordert zusätzliche Schritte in der Programmsteuerung der Datenverarbeitungsanlage
.
Um die Effikivität der Datenübertragung in einer Datenverarbeitungsanlage
dieser Art zu verbessern, wurde in der deutschen Offenlegungsschrift 2 000 930 eine Schaltungsanordnung vorgeschlagen,
die gekennzeichnet ist durch eine Matrixschalteinheit mit einer ersten Unterheit zum Verbinden der Kanäle mit der oder
den Steuereinheiten und einer zweiten Untereinheit zum Speichern des Belegungszustandes der Matrixverbindungspunkte in der ersten
Untereinheit, und durch den Kanälen zugeordnete Schaltsteuereinheiten, welche von den Kanälen und von den Eingangs/Ausgangssteuereinheiten
Anforderungssignale erhalten, die zweite Untereinheiten abfragen und empfangene Zustandssignale verwerten,
sowie Signale zum Durchschalten oder Unterbrechen der Verbindungspunkte in der ersten Untereinheit erzeugen. Obwohl hiermit
die Möglichkeit aufgezeigt ist, mehrere Verbindungswege gleich-
Docket PO 968 036 „ Λ „ . , * , ,
zeitig durchzuschalten, ist auch durch diese Lösung noch keine optimale Ausnutzung der Datenübertragungswege, der Steuereinheiten,
der Steuer- und Befehlslogiknetzwerke der Datenverarbeitungsanlage
und der peripheren Geräte gewährleistet, da insbesondere beim Anschluß von mechanischen peripheren Geräte z. B. zur Auswahl
und zur Einstellung sowie zur Vorerregung relativ lange Zeiten vergehen, die den übertragungsweg und andere Einheiten
in der Datenverarbeitungsanlage so lange blockieren, bis z.B. die mechanischen Einstellung eines Magnetkopfes beendet ist.
Der Erfindung liegt deshalb die Aufgabe zugrunde, eine optimalere Organisation einer Datenverarbeitungsanlage dieser Art zu schaffen,
die unter Berücksichtigung der den einzelnen Einheiten einer Datenverarbeitungsanlage zugeordneten Priorität quasi eine hundertprozentige
Auslastung aller an der Datenübertragung beteiligten Einheiten ermöglicht, d. h. Warte- und Totzeiten weitgehend
vermeidet, ohne daß durch aufwendige Steuerung ein Teil der gewonnenen Zeit für die Koordinierungssteuerung verloren geht.
Die erfindungsgemäße Lösung der Aufgabe besteht darin, daß auf einer Seite der bekannten Schaltmatrix Kanalsteuereinheiten und
auf der anderen Seite Speicher-, Verarbeitungs-, Ein/Ausgabe-Einheiten
und/oder Einheitensteuerschaltungen angeordnet sind, die außerhalb der Schaltmatrix mit einer gemeinsamen Anforderungsleitung
miteinander und mit den Kanalsteuereinheiten verbunden sind, die über Adreß- und Daten-Sammelleitungen sowohl mit dem Speicher
der Datenverarbeitungsanlage als auch mit der zentralen Verarbeitungseinheit verbunden sind und Eingabe/Ausgabe-Programmpläne
aufstellen, indem ein Befehl die zentrale Verarbeiungseinheit veranlaßt, einen Kanalsteuerblock aus dem Speicher zu holen, der
die Adresse des ersten Befehls eines Kanalprogrammes enthält und in eine Arbeitswarteschlange im Speicher gesetzt wird, worauf
über eine Alarmleitung, die mit allen Kanalsteuereinheiten verbunden ist, ein Alarmsignal von der zentralen Verarbeitungseinheit
an die Kanalsteuereinheiten abgegeben wird, worauf eine nicht belegte Kanalsteuereinheit einen Kanalsteuerblock aus der
Docket PO 968 036 2 0 9 8 3 9 / 1 0 U
Arbeitswarteschlange in ihre Register lädt und ausführt, und daß während einer latenten Periode ein Befehl "Einreihen" die
Einreihung der Kanalsteuerblocks in eine Einheitenwarteschlange vornimmt.
Der Vorteil dieser Lösung besteht vor allem darin, daß durch die Verbindung der einzelnen Steuereinheiten und durch die Speicherung
von genau abgestimmten Mikroprogrammen, die sich gegenseitig durch die beschriebene Schaltungsanordnung beeinflussen können und durch
die dynamische Umordnung verschiedener, den einzelnen Einheiten zugeordneten Warteschlangen in Nicht-Belegt-Zeiten alle Einheiten
einer Datenverarbeitungsanlage entsprechend ihrer zugeordneten Priorität optimal über die Übertragungswege verbunden werden,
wenn sie Informationen zu empfangen bzw. zu senden wünschen.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt
und wird anschließend näher beschrieben. Es zeigen:
Fig. 1 ein Blockdiagramm,
Fig. 2 ein Blockdiagramm eines komplexen Rechnersystems,
Fig. 3 ein Diagramm eines Kanalsteuerblocks (CCB),
Fig. 4 ein Diagramm von Kanalwarteschlangen und Masken,
Fig. 5 ein Diagramm einer Einheitentabelle (DT),
Fig. 6 das Diagramm einer Unterbrechungswarteschlange,
Fig. 7 in einem Diagramm ein Suchverfahren für die
externen Listen mittels Datensatztabellen zur Zusammensetzung von Einheitenwarteschlangen, die
Ketten von Kanalsteuerblocks enthalten,
Fig. 8 in einem Diagramm die Beziehung zwischen der Docket PO 968 036 209839/1044
unabhängigen Argumententabelle (IAT) und der abhängigen Argumententabelle (DAT),
Fign. 9A, 9B Ablaufdiagramme für die Ausführung des Kommandos
"Einreihen",
Fig. IO ein Ablaufdiagramm für die Ausführung des Lesekommandos
und
Fig. 11 eine Tabelle zur Darstellung einer Schleife aus
drei Kommandos zum Lesen logisch zusammenhängender Daten.
Fig. 1 zeigt ein Datenverarbeitungssystem, welches ein Eingabe/ Ausgabe-System zur Steuerung der Übertragung von Daten von umlaufenden
Einheiten wie Platten oder Speichern enthält. Eine zentrale Verarbeitungseinheit 10 (CPU) und eine Anzahl von Kanals
teuereinhei ten (CCUs) 25 stehen mit dem Speicher 11 über Daten- und Adreßleitungen in Verbindung. Die CCUs stellen die
Verbindung mit einer Anzahl von Einheiten 17 über eine Schaltmatrix 26 her. Bestimmte Verbindungen resultieren aus den Schaltsteuerungen
in den CCUs.
Die CCUs 25 können Eingabe/Ausgabe-Programmpläne aufstellen und ausführen, die im Speicher 11 unter Steuerung von Programmen zusammengesetzt
werden, welche durch die CPU IO ausgeführt werden. Die Planeinteilung der Eingabe/Ausgabe-Programme wird eingeleitet
durch die Ausführung einer Sonderinstruktion "Fordere Kanal an" in der CPU.
Diese Instruktion veranlaßt die CPU dazu, eine Eingabe/Ausgabe-Aufgabe
zusammenzusetzen, indem sie zuerst einen Kanalsteuerblock (CCB) aus einem Vorrat von Steuerblocks im Hauptspeicher herauszieht.
Der CCB ist ein schmaler Speicherbereich, der durch die CPU so initialisiert wird,, daß er die Adresse des ersten Kommandos
eines Kanalprogrammes, die zugehörigen Parameter und andere
Docket PO 968 036 A Ä ,. „ A Λ , „ „ , .
2203282
Steuerinformationen enthält. Der initialisierte CCB wird in eine Arbeitswarteschlange im Speicher gesetzt. Alle CCUs erhalten dann
über eine Alarmleitung 19 ein Signal dafür, daß eine Eingabe/Ausgabe-Aufgabe
zusätzlich in die Warteschlange gesetzt wurde. Wenn die CPU die genannte Instruktion ausgeführt hat, arbeitet sie an
der nächsten Instruktion weiter.
Eine nicht belegte CCU reagiert auf das Alarmsignal, zieht ein CCB aus der Arbeitswarteschlange und lädt den Inhalt des CCB in
ihre Register. Die CCU beginnt dann mit der Ausführung des im CCB angegebenen Kanalprogrammes, wobei ihr Verhalten danach
durch das jeweils ausgeführte Kanalprogramm gesteuert wird.
Das Kanalprogramm verwendet Parameter, die in das CCB zur Bezeichnung
einer Datensatzzahl, der relativen Adresse einer Aufzeichnung im Datensatz, der Länge der Aufzeichnung und einer
Pufferadresse im Speicher eingeleitet wurden, die alle von der Eingabe/Ausgabe-Operation betroffen sind. Das Kanalprogramm gibt
später das Sonderkommando "Einreihen". Dieses Kommando veranlaßt die CCU zur Verwendung der Datensatzzahl und der relativen Adresse
der Aufzeichnung, um die Einheit 17 zu ermitteln, die die Aufzeichnung enthält, und die Lage der Aufzeichnung auf dieser Einheit.
In diesem Auflösungsprozeß benutzt die CCU einen Hinweis von Datensätzen, der dem Kanalprogramm zur Verfügung steht, und
ein Lageverzeichnis des angegebenen Datensatzes, die vorher durch ein von der CPU ausgeführtes Steuerprogramm aufgestellt wurden.
Bei der Fortsetzung des Kommandos "Einreihen" setzt die CCU als
nächstes das CCB auf eine zu der Einheit gehörende Warteschlange. Dann wird ein Befehl an die Einheit abgegebenen, durch welchen
diese ggf. die Einstellung des Zugriffsmechanismus einleitet und in einem Register die Lage der gewünschten Aufzeichnung festhält.
An diesem Punkt trennt sich die CCU selbst von der Einheit und speichert den fortgeschriebenen Inhalt ihrer Register in das CCB.
Dadurch hält die CCU den momentanen Status des Kanalprogrammes einschließlich der Lage des nächsten Kommandos fest, setzt die
Ausführung des Kanalprogrammes aus und stellt sich selbst dem
Docket PO 968 036 209839/1044
System zur Verfügung.
Bis die Einheit die Einstellung ihres Zugriffsmechanismus beendet und den die Aufzeichnung enthaltenden Sektor erreicht hat, läuft
sie in der sog. latenten Periode, in welcher keine externe Steuerung benötigt wird. Die CCU ist somit frei zum Beginn eines weiteren
Kanalprogrammes durch Rückkehr zur Arbeitswarteschlange und Auszug eines weiteren CCB oder bei Anforderung von einer
der E/A-Einheiten 17 auch zur Bedienung dieser Einheit.
Wenn eine Einheit, die vorher einen entsprechenden Befehl erhalten
hat, sich einem gewünschten Sektor nähert, versucht sie eine verfügbare CCU über die Anforderungsleitung 27 anzusprechen. Als
Antwort schließt eine freie CCU einen Schalter in der Schaltmatrix 26 und stellt eine Verbindung mit der anfordernden Einheit
her. Dia XU ermittelt die zu dieser Einheit gehörende Warteschlange im Hauptspeicher (durch die Einheitenzahl), empfängt
eine Sektorzahl von der Einheit und ermittelt mit dieser Sektorzahl den zugehörigen CCB. Der Inhalt des CCB wird dann in die
Register der CCU geladen. Die CCO ist jetzt bereit^ ü±e Ausführung
eines vorher ausgesetzten Kanalprogrammes am. ünterbrechungspunkt
wieder aufzunehmen.
Bei der vorgesehenen Verwendung der Erfindung gibt das als nächstes
auszuführende Kommando eine Lese- oder Schreiboperation an, die eine Datenübertragung zwischen einer vorgegebenen Pufferadresse
im Speicher und dem momentanen Sektor (oder Sektoren) der Einheit bewirkt. Andererseits kann vor diesem Kommando eine
kurze Folge von Kommandos stehen, die eine Pufferadresse unmittelbar
vor der E/A-Operation bestimmen. Mach Beendigung der Datenübertragung wählt die CCU die Einheit ab und führt die nachfolgenden
Kommandos des Kanalpragrartaaes ~;.z3 „ Diese können eine Wiederholung
des obigen Prozesses naa'v Abschluß dsr l/Ä-Oparatioiisn
für das CPU-Programm über eine ocsr nsb.rsrs üaiasibresiMasgen ■vorschreiben oder das Kanalprogra::::.: ;;s-?::l3a« Bsi 3:s®akäiguag äss
Kanalprogrammes gibt die CCT er: 7CZ. -:..i iteii Ίο^^ΐΛ, freier CGEs
Docket PO 968 036
2 0 S 6 3 » j ". G 4 tk
zurück und stellt sich selbst zur Ausführung eines anderen Kanalprograinines
zur Verfügung.
Es wurde also ein Eingabe/Ausgabe-Steuersystem beschrieben, in
welchem die CPU eine CCU im Eingabe/Ausgabe-System davon unterrichtet, daß ein Kanalprogramm zur Ausführung vorliegt. Die indirekte Adresse des Kanalprogrammes wird in eine Arbeitswarteschlange gesetzt, die für die CCUs im Eingabe/Ausgabe-System zugänglich sind. Die CCU wählt die Aufgabe aus der Arbeitswarteschlange und beginnt mit der Ausführung des Kanalprogrammes. Wenn das Kanalprogramm einen Punkt erreicht, an welchem eine weitere Ausführung erst möglich ist, wenn die Einheit anzeigt, daß sie
einen bestimmten Status erreicht hat, überträgt die CCU die indirekte Adresse des Kanalprogrammes von der gemeinsamen Arbeitswarteschlange in eine besondere Einheitenwarteschlange, die für die diese Einheit vorliegt. Wenn die Einheit anzeigt, daß sie den Status erreicht hat, an welchem das Kanalprogramm ohne Verzögerung wieder aufgenommen werden kann, informiert sie eine CCU davon. Die CCU nimmt das Kanalprogramm wieder auf durch Abruf der Aufgabe aus der Einheitenwarteschlange und neuen Eintritt des Programmes an dem Punkt, an welchem es unterbrochen wurde.
welchem die CPU eine CCU im Eingabe/Ausgabe-System davon unterrichtet, daß ein Kanalprogramm zur Ausführung vorliegt. Die indirekte Adresse des Kanalprogrammes wird in eine Arbeitswarteschlange gesetzt, die für die CCUs im Eingabe/Ausgabe-System zugänglich sind. Die CCU wählt die Aufgabe aus der Arbeitswarteschlange und beginnt mit der Ausführung des Kanalprogrammes. Wenn das Kanalprogramm einen Punkt erreicht, an welchem eine weitere Ausführung erst möglich ist, wenn die Einheit anzeigt, daß sie
einen bestimmten Status erreicht hat, überträgt die CCU die indirekte Adresse des Kanalprogrammes von der gemeinsamen Arbeitswarteschlange in eine besondere Einheitenwarteschlange, die für die diese Einheit vorliegt. Wenn die Einheit anzeigt, daß sie den Status erreicht hat, an welchem das Kanalprogramm ohne Verzögerung wieder aufgenommen werden kann, informiert sie eine CCU davon. Die CCU nimmt das Kanalprogramm wieder auf durch Abruf der Aufgabe aus der Einheitenwarteschlange und neuen Eintritt des Programmes an dem Punkt, an welchem es unterbrochen wurde.
Der Prozeß wird ohne Unterstützung eines Überwachungsprograinmes
abgewickelt, das von der ,CPU ausgeführt wird, was Zeit- und Programmierersparnisse
bedeutet.
Jede Kommunikation zwischen der Steuereinheit und dem Kanal erfolgt
über eine E/A-Anschlußeinheit. Die Steuereinheit empfängt Steuersignale vom Kanal, steuert die Zeiteinteilung der Datenübertragung
über die E/A-Anschlußeinheit und liefert den Status
der Einheit betreffende Anzeigesignale.
Die E/A-Anschlußeinheit liefert ein Informationsformat und eine
Signalfolge, die allen E/A-Einheiten gemeinsam ist. Die Anschlußeinheit besteht aus einem Satz von Leitungen, die eine Anzahl
von Steuereinheiten an den Kanal anschließen können. Mit Aus-
von Steuereinheiten an den Kanal anschließen können. Mit Aus-
Docket PO 968 036
209839/ 1OU
nähme des zur Festlegung einer Priorität unter den Steuereinheiten
benutzten Signales erfolgen alle Kommunikationen von und zum Kanal über eine gemeinsame Leitung und jedes durch den Kanal
geliefertes Signal steht allen Steuereinheiten zur Verfügung. In jedem beliebigen Zeitpunkt ist jedoch nur eine Steuereinheit
logisch mit dem Kanal verbunden.
Die Wahl einer Steuereinheit für die Kommunikation mit dem Kanal wird gesteuert durch ein Signal vom Kanal, welches seriell durch
alle vom Kanal bedienten Steuereinheiten läuft. Eine Steuereinheit bleibt logisch mit der Anschlußeinheit verbunden, bis sie
die Information übertragen hat, die sie braucht, oder bis der Kanal ihre Trennung signalisiert.
Die an die Steuereinheit angeschlossene E/A-Einheit kann so ausgelegt
sein, daß sie nur bestimmte begrenzte Operationen ausführen kann, oder sie kann auch viele verschiedene Operationen ausführen.
Eine typische Operation ist die Bewegung des Aufzeichnungsträgers und die Aufzeichnung von Daten. Für diese Funktionen
benötigt die Einheit für sie typische detaillierte Signalfolgen. Die Steuereinheit decodiert vom Kanal empfangene Befehle, interpretiert
sie für die jeweilige Einheit und liefert die zur Ausführung dieser Operationen benötigte Signalfolge.
In dieser Beschreibung werden die Ausdrücke "Kanal", "Umsetzer" und "Kanal/Steuereinheit" abwechselnd benutzt, um eine Eingabe/
Ausgabe-Steuerung zu beschreiben, die Kanalfunktionen übernimmt
oder Kanalfunktionen zuzüglich anderer Funktionen oder Kanalfunktionen und Steuereinheitenfunktionen.
Der Kanal lenkt den Informationsfluß zwischen E/A-Geräten und
dem Hauptspeicher. Er befreit die CPU von der Aufgabe, direkt mit den E/A-Geräten in Verbindung zu treten und gestattet eine
Fortsetzung der Datenverarbeitung gleichzeitig mit E/A-Operationen
und deren Steuerung.
Docket PO 968 036
209839/1044
Eingabe/Ausgabe-Operationen werden eingeleitet und gesteuert durch Informationen in drei Formatarten: Instruktionen, Kommandos
und Befehle. Instruktionen werden decodiert und ausgeführt von der CPU und sind Teile von CPU-Programmen. Kommandos werden ausgeführt
und decodiert durch die Kanäle als Teile von Kanalprogrammeno
Der Kommandosatz hat viele logische und arithmetische Möglichkeiten des Instruktionssatzes, ist jedoch speziell auf
die Steuerung der Reihenfolge von E/A-Operationen ausgerichtet. Instruktionen werden unabhängig von E/A-Operationen ausgeführt,
Kommandos nicht. Instruktionen und Kommandos werden aus dem Hauptspeicher abgerufen und sind funktionell allen Klassen von
E/A-Geräten gemeinsam.
Das CPU-Programm fordert die Ausführung eines Kanalprogramines
an mit der Instruktion "Fordere Kanal an". Diese Instruktion veranlaßt die CPU dazu, vorgeschriebene Parameter in einen reservierten
Bereich des Hauptspeichers, der zu einem Kanalprogramm gehört, zu setzen und diesen Bereich folgendermaßen an einen
evtl. freien Kanal weiterzugeben:
Die CPU nimmt den ersten Kanalsteuerblock (CCB) aus einer geketteten
Liste freier CCBs, deren Ursprung eine feste Speicheradresse ist. Die CCBs (Fig. 3) sind 16 Wort große Bereiche des
Hauptspeichers, die als Sätze von Originalregistern (RO bis Rl5) für Kanalprogramme· während deren Ausführung dienen. Vor der
ersten Ausführung eines Kanalprogrammes und zu bestimmten Zeiten während der zwischengeschobenen Ausführung eines Kanalprogrammes,
welches mehrere E/A-Operationen umfaßt, sind die CCBs in Listen verkettet. Allgemein stellt jede Liste eine Reihe von ausgesetzten
Kanalprogrammen dar, die auf eine bestimmte Einrichtung oder einen bestimmten Vorgang warten, wie z. B. die Verfügbarkeit von
Daten an einem E/A-Gerät oder einem freien Kanal. Wort 0 des CCB dient als Verbindungsfeld in der Konstruktion der geketteten
Listen.
Wörter werden von einer Stelle im Hauptspeicher, die in der In-DoOcet
PO 968 036 J09839Z1044
struktion "Fordere Kanal an" angegeben ist, in das zweite und
nachfolgende Wörter des CCB gesetzt. Die in den CCB geschobene Information ist für das zugehörige Kanalprogramm während dessen
Ausführung adressierbar. Das erste durch diese Instruktion in das CCB geschobene Wort (Wort 2) enthält die Adresse des ersten
Kommandos des auszuführenden Kanalprogrammes.
Danach werden ein Speicherschutzschlüssel und eine Aufgabenbezeichnung
in das Wort 1 des CCB gespeichert. Der Schutzschlüssel soll bestimmte Speicherbereiche vor irrtümlicher oder fehlerhafter
Zerstörung durch das Kanalprogramm während dessen Ausführung schützen.
Der CCB wird dann an die oberste Stelle einer gemeinsamen Kanal-Arbeitswarteschlange
gesetzt und verkettet. Der Ursprung der Kanal-Arbeitswarteschlange liegt in einer Tabelle von Warteschlangenursprungs
orten im Speicher nach der Darstellung in Fig. 4. Die Adresse der Kanal-Arbeitswarteschlange ist festgelegt. Diese Warteschlange
ist für alle CPUs und Kanäle eines Mehrfachsystemes gemeinsam, die Zugriff zu der diese Warteschlangentabelle enthaltenden
Speichereinheit haben»
Die CPU versucht, einen freien Kanal auf Existenz eines Einganges in der Kanal-Arbeitswarteschlange hinzuweisen. Wenn alle Kanäle
belegt sind, spricht kein Kanal an. Wenn einer oder mehrere Kanäle
frei sind, bedient mindestens ein Kanal die Warteschlange.
In jedem Fall wird die Ausführung der Instruktion "Fordere Kanal an11 beendet und die CPU ist frei zur Ausführung der nächsten Instruktion.
Manipulationen an der CCB-Freiheitsliste und der Kanal-Arbeitswarteschlange
sowie Operationen. an sa-Ieren verketteten Listen "/on
CCBs veranlassen eine Verriegelung äsr betroffenen Liste für die Dauer der Operation an dieser Lis-bSo Jsder Li
belegt ein einziges Wort in Haupi-STi^riher* {Bytes 1 bis
halten entweder einen Hinweis an:p :,^:^ ?.::?■--!-sn CCT- in a©r List
Docket PO 968 036
2 0 9 B 2 S / Ί G 4 4
oder einen Selbsthinweis.) Sobald das äußerste linke Bit des Wortes O ist, wird die Liste als entriegelt bezeichnet. Wenn
das Bit 1 ist, bezeichnet man die Liste als verriegelt. Der den Zugriff zu einer Liste fordernde Kanal oder die CPU ruft
das Wort am Ursprung der Liste ab und setzt sein äußerstes linkes Byte im Hauptspeicher auf lauter Einsen. Kein anderer
Zugriff zu dieser Stelle ist gestattet zwischen dem Moment des Abrufes und dem Moment der Speicherung dieser Einsen.
Sobald ein Kanal frei wird oder angerufen wird, untersucht der Kanal die Kanal-Arbeitswarteschlange. Wenn mit der Warteschlange
keine CCBs verkettet sind, bleibt der Kanal frei. Sonst nimmt er den ersten CCB aus der Warteschlange und lädt dessen Inhalt
in einen entsprechenden Registersatz innerhalb des Kanales und stellt dadurch den Inhalt des CCB mit gewissen Ausnahmen für
das Kanalprogramm zur Verfügung. Der Kanal ruft dann das erste Kommando des Kanalprogrammes ab unter Verwendung der Adresse,
die er aus dem Wort 2 des CCB (Fig. 3) erhalten hat. Während jedes Kommando ausgeführt wird, wird die Adresse im Register
des Kanales entsprechend dem Wort 2 des CCB fortgeschrieben, um die Länge des Kommandos, um die Adresse des nächsten Kommandos
in der Reihenfolge zu erhalten. Verzweigungskommandos können den Inhalt dieses Registers neu setzen.
Die ausgeführten Kommandos fallen nach den gelieferten Operationen
in drei Klassen: Rechen- und Verknüpfungsoperationen, E/AOperationen
und Status-Umschaltoperationen.
Die Rechen- und Verknüpfungskommandos übernehmen die Addition, Subtraktion, den Vergleich, die Bitmanipulation, die Bitprüfung
und die Bewegung von Daten zwischen dem CCB und anderen Stellen im Hauptspeicher. Diese Kommandos dienen für die Erzeugung und
Veränderung von Adressen, die Auflösung logischer Bedingungen und die Benutzung der Wörter des CCB als Arbeitsspeicher.
Kommandos, welche E/A-Operationen einleiten, resultieren alle
Docket PO 968 036 Λ Λ Λ , .
209839/1OU
in der Informationsübertragung von oder zu einem E/A-Gerät. Abhängig
von der Operation wird die übertragene Information durch das Gerät entweder als Daten oder als eine Folge von Befehlen
interpretiert.
Die Status-Umschaltkommandos ermöglichen eine Mehrfachprogrammierung
und die parallele Verarbeitung von Programmen, die sowohl durch die CPU als auch durch die Kanäle ausgeführt werden. (Die
Mehrfachprogrammierung bezieht sich auf die verschachtelte Ausführung von zwei oder mehr Programmen durch eine CPU oder einen
Kanal. Diese Kommandos planen und beenden die Kanalprogramme, halten durch mehr als eine CPU oder einen Kanal benutzte Warteschlangen
aufrecht und leiten E/A-Unterbrechungen der CPU ein.
Kommandos zur Statusumschaltung sowie Rechen- und Verknüpfungskommandos können von jedem Kanal ausgeführt werden. Eine E/AOperation
kann jedoch nur von einem Kanal ausgeführt werden, der Zugriff zur geforderten Einheit hat und nur dann, wenn die
Einheit für die Teilnahme an dieser Operation frei ist. Um sicherzustellen, daß diese beiden Bedingungen erfüllt sind,
muß jeder Kanal für sich selbst einen Plan aufstellen".
Die Planung von Kanalprogrammen erfolgt durch das Kommando "Einreihen",
welches Teil des Kanalprogrammes ist. Dieses Kommando verzögert die Ausführung eines Kanalprogrammes, bis das Gerät,
eine angeschlossene Steuereinheit und ein angeschlossener Kanal zum Beginn einer E/A-Operation frei sind. Dieses Kommando kann
auch dazu benutzt werden, die Ausführung zu verzögern, die auf eine bestimmte Antwort vom Gerät wartet (z. B. die Mitteilung,
daß eine Magnetbandeinheit eine Rückschrittoperation beendet hat oder daß auf der Systemkonsole eine Achtungstaste gedrückt
wurde).
Um ein Kanalprogramm zu verzögern, setzt der Kanal den zu dem Kanalprogramm gehörigen CCB in eine Warteschlange, die zur einer
belegten Einheit oder einer bestimmten Einheitenantwort gehört,
Docket PO 968 036
209839/ 1 OU
und setzt die Ausführung des Kanalprogrammes aus. Die Ausführung
wird wieder aufgenommen, wenn die Einheit eine E/A-Operation
ausführen kann oder die bestimmte Antwort liefert und ein zugehöriger Kanal und eine Steuereinheit frei sind. Die verzögerte
Ausführung eines Kanalprogrammes kann oder kann nicht den Kanal betreffen, der dieses ursprünglich abgerufen hatte.
Sobald ein Kanalprogramm ausgesetzt wird, ist der Kanal frei
zur Wiederaufnahme der Ausführung eines anderen Kanalprogrammes, welches die Freisetzung des Kanales oder die Rückkehr zur Kanal-Arbeitsschlange
forderte. Sonst bleibt der Kanal im Leerlauf, bis entweder ein CCB in die Arbeitswarteschlange eingesetzt wird
oder ein Känalprogramm wieder aufgenommen wird aufgrund einer
Änderung im Zustand einer angeschlossenen Einheit.
Die Steuerung von E/A-Operationen durch die Kanäle beginnt mit
der Planeinteilung eines Kanalprogrammes und endet mit dem Abschluß aller zugehörigen Datenübertragungen zu und von der Einheit
und jeder zugehörigen Aktivität der Einheit.
Zum erfolgreichen Anfang einer E/A-Operation genügt es nicht,
eine Verbindung nur herzustellen, wenn die betroffenen Elemente keine andere Operation ausführen. Viele Einheiten weisen z. B.
Latenzperioden auf, in welchen sie durch einen Kanal zwar angewählt
werden können, jedoch nicht in der Lage sind. Daten zu übertragen. Solche Latenzperioden sind im allgemeinen auf mechanische
Verzögerungen, die Verwendung eines zyklischen Speichermediums, die Zeitteilung von Komponenten oder die Erzeugung
von Daten außerhalb der Einheit ζurüchzuführen. Die Planeinteilung
der Kanalprogramme erfolgt so, daß Latenzzeiten in vielen Einheiten vermieden werden können.
Das Kommando "Einreihen" stellt den Plan des Kanalprogrammes auf
durch eine Reihe von Aktionen, die unten aufgeführt sind. Die Ausführung des Kommandos "Einreihen" beginnt mit der ersten Interpretation
des Kommandos durch einen Kanal und endet mit der
Docket PO 968 036
209839/1044
Ausführung der gesamten zugehörigen Planaktivität.
1. Die Adresse der Einheit und des zu der Einheit gehörigen
Kanales werden festgelegt.
2. Die für die unmittelbare Ausführung einer nachfolgenden E/A-Operation durch die Einheit notwendigen Bedingungen
werden bezeichnet.
3. Die Einheit wird gewählt und ein Befehl an sie abgegeben, der sie auffordert, einen vorgestimmten
Antwortcode abzugeben, wenn diese Bedingungen erfüllt sind.
4. Wenn die Einheit nicht unmittelbar antwortet, wird sie abgewählt und es passiert folgendes:
5. Der zur Ausführung des Kanalprogrammes gehörende CCB wird in eine sowohl zur Einheit als auch zum angeforderten
Antwortcode gehörende Warteschlange gesetzt und dadurch der Kanal freigegeben.
6. Wenn die geforderten Bedingungen in der Einheit erfüllt sind, holt sich die Einheit einen freien Kanal
und überträgt ihre Adresse und den Antwortcode an diesen Kanal.
7. Mit der erhaltenen Adresse und dem Antwortcode ermittelt der Kanal die zu diesen Angaben gehörige Warteschlange
und nimmt die Ausführung des Kanalprogrammes wieder auf.
Die nachfolgenden Kommandos leiten E/A-Operationen ein, welche
die gewählte Einheit betreffen mit folgendem Ergebnis:
8. Der Kanal sendet einen Befehl an die Einheit, der diese anweist, in eine bestimmte E/A-Operation hineinzulaufen.
9. Daten werden zwischen der Einheit und dem Kanal/Umsetzer
zu oder von Stellen im Hauptspeicher übertragen.
Docket PO 968 O36
209839/1044
10. Die Einheit kann Informationen an den Kanal/Umsetzer übertragen entweder um die richtige Datenübertragung
zu prüfen oder anzuzeigen, daß ein Fehler aufgetreten ist. In letzterem Fall werden zusätzliche Informationen
übertragen, die den Fehler voll beschreiben.
11. Die Ausführung des Kanalprogrammes wird fortgesetzt.
12. Die Einheit kann abgewählt werden oder die Anwahl zurückgehalten werden, um eine andere E/A-Operation
auszuführen. Wenn die Einheit abgewählt wird und die Operation in der Einheit am Ende der Datenübertragung
noch nicht abgeschlossen ist, kann die Einheit erneut einen Kanal anfordern, wenn die Operation abgeschlossen
ist. Informationen zum Prüfen der Operation oder Beschreiben von durch die Einheit festgestellten Fehlern
können dann an den Kanal weitergeleitet werden. Die durch den Kanal an diesem Punkt unternommenen
Schritte hängen von dem Endergebnis der Operation und davon ab, ob eine Antwort von der Einheit durch
das Kanalprogramm erwartet wurde oder nicht.
13. Wenn die Antwort von der den Abschluß einer Operation signalisierenden Einheit erwartet wurde, verlaufen
die nachfolgenden Vorgänge parallel zu den Vorgängen 4, 5, 6, 7 und 10.
14. Wenn die Antwort nicht erwartet wurde und keine Fehler aufgetreten sind, wird die Einheit abgewählt und ihre
Antwort ignoriert.
15. Wenn die Antwort nicht erwartet wurde und ein Fehler aufgetreten ist, wird eine Unterbrechung der CPU eingeplant.
Die den Fehler beschreibende Information wird an die CPU als Unterbrechungscode weitergeleitet.
Das Kommando "Einreihen" gibt zwei Operanden an, die zusammen vollständig eine E/A-Adresse beschreiben. Der erste dieser Operanden,
der unabhängige Operand, bezeichnet eine Gruppe der zugehörigen Funktionen, Daten, Einheitenantworten oder Quellen oder
Docket PO 968 036
209839/ 1 QUU
Bestimmungen der Information. Der zweite, der abhängige Operand, bezeichnet eine bestimmte Funktion, Antwort usw. innerhalb der
durch den unabhängigen Operanden angegebenen Gruppe.
In Verbindung mit zwei durch ein Steuerprogramm aufgebauten Tabellen geben diese Operanden die Einheit und die Bedingungen
an, die in der Einheit für die Fortsetzung der Kanalprogrammausführung vorhanden sein müssen.
Der unabhängige Operand wird interpretiert unter Verwendung einer unabhängigen Argumententabelle (IAT), die im Speicher
auf einer Adresse steht, welche von der Aufgabenbezeichnung abzuleiten ist, die im Wort 1 des CCB enthalten ist. Mit dem unabhängigen
Operanden wählt der Kanal einen Eingang zum IAT. Zu diesem Zweck vergleicht der Kanal zuerst den Operanden mit dem
Byte im Hauptspeicher vor dem IAT. Dieses Byte beschreibt die Länge der Tabelle. Wenn der als eine binäre ganze Zahl interpretierte
Operand seinen Komparanden überschreitet, wird die Ausführung des Kommandos "Einreihen" beendet. Sonst wird der
Operand mit der Zahl 4 (die Bytezahl pro Wort) multipliziert und zur Adresse des IAT addiert. Daraufhin wird ein Wort vom
Hauptspeicher abgerufen.
Die aus dem IAT abgerufene Eintragung enthält einen Code, welcher angibt, ob die Eintragung gültig oder ungültig ist, wenn
sie gültig ist, ob das Kanalprogramm Leseoperationen, Schreiboperationen oder beides einleiten kann. Wenn die Eintragung ungültig
ist, wird die Ausführung des Kommandos "Einreihen" beendet. Wenn die Eintragung gültig ist, wird der Code durch den
Kanal festgehalten.
Jede gültige Eintragung des IAT enthält die Adresse einer abhängigen
Argumententabelle (DAT). Die SAT definiert die Gruppe von Funktionen, Daten, Antworten usw., welche zu dem unabhängigen
Operanden gehören und wird zur Lösung des unabhängigen Operanden benutzt. Das Format der DAT und ihre Interpretation sind
Docket PO 968 036
209839/1044
eine Funktion der Gruppenart, die sie definiert. Im allgemeinen erzeugt die Auflösung des abhängigen Operanden die Adresse einer
durch den Kanal zum Aufstellen einer logischen Verbindung mit der Einheit benutzten Einheit, einen durch den Kanal zum Wählen spezieller
Warteschlangenoperationen benutzten Klassencode und Konstanten, die sich auf diese WartesSchlangenoperationen beziehen.
Die DAT soll dazu dienen, benutzerorientierte Sammlungen von Funktionen, Einheiten und Daten zu definieren. Mit der DAT kann
z. B. eine Sammlung von übertragungsleitungen, ein in bestimmten
Bereichen einer Gruppe von Speichereinheiten stehender Datensatz oder eine Gruppe von Antworten von einer Prozeßüberwachungsanlage
definiert werden. Dementsprechend soll mit dem abhängigen Operanden ein Stück aus der von der DAT definierten
Gruppe gewählt werden. Wenn sich die definierte Gruppe auf nur ein Stück bezieht, ist der abhängige Operand unbedeutend. In
diesem Fall kann die DAT weggelassen werden. Wenn das der Fall ist, enthält die auf die Gruppe bezogene Eintragung in der IAT
die Adresse der Einheit.
Die IAT soll durch ein in der CPU ausgeführtes Überwachungsprogramm
vorbereitet werden, welches die Autorität des CPU-Programmes der obigen Beschreibung bestimmte E/A-Einheiten aufrufen
läßt. Die IAT ist die prinzipielle Darstellung dieser Autorität: Durch ein gegebenes CPU-Programm eingeleitete Kanalprogramme
können nur die Einheiten oder Aktionen aufrufen, die durch die zugehörige IAT verwirklicht werden. Durch diese Einrichtung
übernehmen die Kanäle die Rolle von sich gegenseitig schützenden CPU-Programmen und ihren zugehörigen Kanalprogrammen
in der dynamischen Benutzung von E/A-Einheiten, eine Funktion, welche vorher in Uberwachungsprogrammen der CPU übertragen
war.
Im Zusammenhang mit der DAT und der IAT sind folgende Punkte zu
f.
beachten:
DocKet PO 968 036 J09839,
1. Jede durch die Ausführung eines CPU-Programmes eingeleitete Ausführung eines Kanalprogratnmes mit einer
gegebenen Aufgabenbezeichnung ist berechtigt, denselben Satz von Einheiten zu verwenden oder darauf Bezug
zu nehmen.
2. Auf eine einzelne DAT kann durch Eintragungen in mehr als einer IAT Bezug genommen werden. So kann z. B. ein
Datensatz von mehr als einem CPU-Programm benutzt werden.
3. In ähnlicher Weise kann auf eine DAT Bezug genommen
werden durch mehr als eine Eintragung in einer einzelnen IAT.
4. Auf die IAT selbst kann Bezug genommen werden durch mehr als eine Programmausführung einer CPU.
In verschiedenen Interpretationsstufen des Operanden des "Einreihen
"-Kommandos kann der Kanal Bezug nehmen auf ungültige Eintragungen in einer IAT oder DAT oder Argumente können Bezug nehmen
auf Stellen außerhalb einer dieser Tabellen. In jedem Fall wird die Ausführung des "Einreihen"-Kommandos direkt und erfolglos beendet.
Nachfolgende Kommandos können die erfolgreiche oder erfolglose Beendigung des "Einreihen" —Kommandos prüfen. Andererseits
kann aber auch die Ausgabe des "Einreihen"-Kommandos ignoriert und ein Kommando zur Einleitung einer E/A-Operation ausgeführt
werden. Dieses Kommando wird direkt ohne Bezug auf eine E/A-Einheit beendet, wenn das vorhergehende "Einreihen"—Kommando
erfolglos abgeschlossen wurde. Die Ausgabe des "Einreihen"-Kommandos
kann dann durch die nachfolgenden Kommandos bestimmt werden.
Jede Einheit kann feststellen, ob eine E/A-Operation eingeleitet
werden kann. In einigen Einheiten ändern sich die Kriterien für die Bestimmung der Möglichkeit, eine Operation einzuleiten,
mit der Operationsart und den jeweiligen Möglichkeiten der in der Operation gebrauchten Einheit. Solche Einheiten können so
ausgelegt sein, daß sie Statuscodes und Antwortcodes vom Kanal
Docket PO 968 O36 2 0 9 8 3 9/1044
empfangen. Die Verwendung dieser Codes erleichtert die Planeinteilung
von Kanalprogrammen, die um die Benutzung einer Einheit konkurieren.
Ein Statuscode ist eine Reihe von Bytes, die durch den Kanal vor
der Einleitung einer E/A-Operation an eine Einheit übertragen werden. Der Statuscode stellt den Satz von Bedingungen in der
Einheit dar, die für die Einleitung einer bestimmten Operation Voraussetzung sind. Die Übertragung eines Statuscodes an eine
Einheit fordert diese zur Abgabe eines Signales auf, wenn die zu dem Statuscode gehörenden Bedingungen in der Einheit erfüllt
sind.
Einheiten können für den Empfang und die Festhaltung von mehr als einem Statuscode ausgelegt sein. Bei diesen Einheiten wird
der an die Einheit übertragene Statuscode begleitet von einem Antwortcode. Wenn die zu einem der in der Einheit registrierten
Statuscodes gehörenden Bedingungen erfüllt sind, antwortet die Einheit durch Abgabe des entsprechenden Antwortcodes an den Kanal.
Mehrere Statuscodes können von einem oder identischen Antwortcode begleitet sein und legen so mehr als eine Bedingung
für die Wiederaufnahme eines Kanalprogrammes fest.
Zu jeder Einheit gehört eine Einheitenwarteschlange. Einheitenwarteschlangen
sind verkettete Listen von CCBs, die Kanalprogramme darstellen, welche eine Einheit entweder benutzen oder deren
Benutzung erwarten. Einheitenwarteschlangen können aus einer Kette von CCBs oder mehreren Ketten bestehen, sog. Unterwarteschlangen,
abhängig von der Charakteristik der jeweiligen Einheit.
Einheiten, die keine Antwortcodes verwenden oder nicht mehr als einen Statuscode empfangen und halten können, haben Einheitenwarteschlangen,
die aus einer verketteten Liste bestehen. Das oberste CCB in dieser Liste bezieht sich auf ein Kanalprogramm,
welches entweder eine Antwort von der Einheit erwartet oder auf einem Kanal ausgeführt wird, der logisch mit dieser Einheit ver-
Docket PO 968 036 2 0 9 8 3 9 / 1 0 A A
knüpft ist. Die übrigen CCBs in der Liste gehören zu Kanalprogrammen,
von denen jedes die Einheit erst benutzen kann, wenn sein Vorgänger die Einheit benutzt hat.
Einheiten, die mehrere Antwortcodes empfangen, haben Einheitenwarteschlangen,
die aus mehr als einer verketteten Liste bestehen. Die Anzahl der bei einer solchen Einheit benutzten Unterwarteschlangen
ist der Höchstwert des für diese Einheit definierten Antwortcodes. Der an der Spitze einer solchen Unterwarteschlange
verkettete CCB stellt ein ausführendes Kanalprogramm oder ein Kanalprogramm dar, welches die Antwort von der Einheit
entsprechend der Unterwarteschlange erwartet. Die Bedeutung zusätzlicher CCBs in einer Unterwarteschlange ist eine Funktion
der zur Einheit gehörenden Warteschlangendisziplin.
Nach Entwicklung der Adresse einer Einheit während der Auflösung der Operanden eines wEinreihen"-Kommandos benutzt der Kanal die
Einheitenadresse zur Wahl eines Einganges von der Einheitentabelle (DT) (Fig. 5). Der Inhalt einer gewählten Eintragung bestimmt
die Signalreihenfolge, die durch den Kanal/Umsetzer zur Steuerung der Einheit benutzt wird und die mit der Einheit benutzte
Warteschlangendisziplin.
Die DT enthält nur eine Eintragung für jede an das System angeschlossene
Einheit. Außerdem enthält die DT eine Eintragung für jede Steuereinheit, die als separate Einheit während der Diagnoseoperationen
fungieren kann und eine Eintragung für jeden Satz von zwei oder mehr Steuereinheiten, die Zugriff zu einer
gemeinsamen Einheit haben. Der grundsätzliche Inhalt der Eintragungen der DT sind folgende (siehe Fig. 5):
1. Ein Einheitencode D bezeichnet die spezifische Einheitenart,
zu welcher die Eintragung gehört;
2. abhängig von dieser Einheitenart entweder der Ursprung der Einheitenwarteschlange 27 oder die Adresse 28 der
Tabelle von Unterwarteschlangen 29, die zur Einheit
Docket PO 968 036 2 0 9 8 3 9 / 10 4 4
gehören;
3. einen Code (C.U.-Adresse), welcher die Steuereinheit
oder den Satz von Steuereinheiten bezeichnet, die die Einheit adressieren können und
4. einen Code (LCH #) , welcher die Kanalwarteschlange bezeichnet,
welche sich auf den Kanalsatz bezieht, der Zugriff zur Einheit hat.
Zum Wählen einer Eintragung aus der DT multipliziert der Kanal
die Einheitenadresse mit 8, addiert das Ergebnis zur festen Adresse der DT und holt mit dem Endergebnis ein Doppelwort aus
dem Hauptspeicher. Der Einheitencode aus der Eintragung, der zusammen mit dem Klassencode und Konstanten herausgezogen wird,
die man aus der DAT erhält, bestimmen die zu verfolgenden Warteschlangenoperationen.
Wenn der Einheitencode eine Einheit beschreibt, deren Einheitenwarteschlange
aus einer einzelnen verketteten Liste besteht, wird der zu dem Kanalprogramm gehörende CCB unmittelbar in die Einheitenwarteschlange
eingesetzt. Wenn die resultierende Warteschlange mehrere CCBs enthält, wird die Ausführung des Kanalprogrammes
ausgesetzt und der Kanal freigegeben. Wenn die Einheitenwarteschlange nur das gerade eingesetzte CCB enthält, wird
folgende Reihenfolge verfolgt:
1. Mit den aus der DAT erhaltenden Konstanten bestimmt der Kanal einen Statuscode, wenn ein solcher mit dieser
Einheit zu benutzen ist. Die Bestimmung des Statuscodes folgt einem zu dem aus der DAT gezogenen
Klassencode gehörigen Algorithmus.
2. Der Kanal stellt eine logische Verbindung zwischen sich selbst und der Einheit her. Zu diesem Zweck gibt
er die Adresse der geforderten Einheit an alle Steuereinheiten, die an den Kanal über seine E/A-Anschlußstelle
angeschlossen sind. Jede Steuereinheit vergleicht diese Adresse mit festen Adressen der züge-
hörigen angeschlossenen Einheiten. Die Steuereinheit, die zu der Einheit gehört, deren feste Adresse mit der
vom Kanal gegebenen Adresse übereinstimmt, gibt ein Signal an den Kanal zurück, welches die Übereinstimmmung
und die entsprechende Wahl der Einheit bezeichnet und dadurch die logische Verbindung herstellt. Andere
Steuereinheiten ignorieren die Information auf der E/A-Schnittstelle, bis die logische Verbindung
unterbrochen wurde.
3. Der Kanal gibt einen Befehl und ggf. den Statuscode an die Einheit (über die Steuereinheit). Der Befehl
fordert von der Einheit die Rückgabe eines Statusberichtes an den Kanal, welcher anzeigt, ob die zu dem
Statuscode gehörenden Bedingungen in der Einheit erfüllt sind oder nicht.
4. Wenn der Statusbericht von der Einheit negativ ist, wird die logische Verbindung zwischen dem Kanal und
der Einheit wieder unterbrochen. Anschließend wird die Ausführung des Kanalprogrammes ausgesetzt und
der Kanal freigegeben.
5. Wenn die Antwort von der Einheit positiv ist, wird
das "Einreihen"-Kommando beendet und äas nächste Kommando
geholt und durch den Kanal decodiert. Die Einheit bleibt logisch mit dem Kanal verknüpft? alle E/AOperationen
können durch das Kanalprogramm eingeleitet werden unter der Voraussetzung, daß die zu dem
Statuscode gehörenden Bedingungen die einzigen Voraussetzungen für die Einleitting der Operation sind.
Wenn der aus der DT erhaltene Einheitencode eine Einheit mit einer
Einheitenwarteschlange beschreibt, die aus raehrerea ünterwarteschlangen
besteht, ändern sich die vom Kanal unternommenen Schritte
entsprechend der Warteschlangenäisziplin, Die folgende Reihenfolge
ist jedoch typisch für die Dissiplineri, Sie zeigt die meisten
vom Kanal ausgeführten Funktionen? die für die Benutzung von Un-
Docket PO 968 036 209839/1044
- 24 terwarteschlangen spezifisch sind.
1. Mit den aus der DAT erhaltenen Konstanten bestimmt der
Kanal einen zugehörigen Antwortcode.
2. Die zum Antwortcode gehörende Unterwarteschlange wird durch Multiplikation des Antwortcodes mit 4 und Addition
des Ergebnisses zur Adresse der Tabelle von Unterwarteschlangen, die man aus der DT erhielt, festgelegt.
3. Der zum Kanalprogramm gehörende CCB wird mit dem Ende
der Unterwarteschlange verbunden.
Wenn die resultierende Warteschlange mehrere CCBs enthält, wird die Ausführung des Kanalprogrammes ausgesetzt und der Kanal freigegeben.
Sonst stellt der Kanal dann eine logische Verbindung mit der Einheit her. Dabei gibt der Kanal den Antwortcode zusätzlich
zum Befehl und dem Statuscode an die Einheit.
Wenn ein Kanal einen Statusbericht von einer Einheit anfordert und dieser negativ ist, muß die Einheit dem System eine Mitteilung
machen, wenn die zu dem Bericht gehörenden Bedingungen in ihr erfüllt sind. Zu diesem Zweck muß jede an die Einheit angeschlossene
freie Steuereinheit die entsprechende E/A-Schnittstelle überwachen, um festzustellen, wann der zugehörige Kanal
frei ist. Wenn mindestens ein solcher Kanal zu einem Zeitpunkt frei ist, in welchem die Bedingungen in der Einheit erfüllt
sind, kann eine Steuereinheit eine logische Verbindung mit der Einheit und einem Kanal herstellen. Danach muß die Steuereinheit
die Adresse der Einheit, einen positiven Statusbericht und ein Antwortcode an den Kanal geben.
Mit der Einheitenadresse ermittelt der Kanal dann die Lage der Eintragung in der DT, die zu der Einheit gehört. Wenn ein Antwortcode
abgegeben wurde, nimmt der Kanal die Ausführung des Kanalprogrammes, welches zu dem CCB oben an der Unterwarteschlan-
Docket PO 968 036
209 8 39/ 1OAA
ge gehört, die sich auf den Antwortcode bezieht, wieder auf. Sonst
wird die Ausführung des Kanalprogrammes wieder aufgenommen, welches
zum ersten CCB in der einzigen Einheitenwarteschlange gehört. Die Ausführung des Kanalprogrammes läuft von diesem Punkt
weiter, als ob das Kanalprogramm ursprünglich nicht ausgesetzt worden wäre.
Die Register 12 bis 15 des CCB (Fig. 3) werden durch den Kanal während der Einreihen-Operation benutzt. Diese Register halten
direkte Ergebnisse fest, die vom Kanal während der Stufen dieser Operation benötigt werden. Während der Kanal die IAT untersucht,
wird die Autorität des Kanalprogrammes zum Lesen, Schreiben, usw. festgehalten. In ähnlicher Weise kann der Kanal während der Benutzung
der DAT und der Einheitentabelle einen Statuscode und Konstanten festlegen, die später zur Beschränkung der Benutzung
einer Einheit durch ein Kanalprogramm während einer nachfolgenden E/A-Operation benötigt werden. Eine solche Information wird
im CCB während der Einreihen-Operation festgehalten und während der Interpretation von E/A-Kommandos untersucht. Durch Unterdrückung
von E/A-Operationen, die durch das Kommando "Einreihen" nicht aufgerufen wurden, wird das System gegen falsche oder
fehlerhafte Aktionen des Kanalprogrammes geschützt.
Bei dem Versuch, eine logische Verbindung mit einer Einheit herzustellen,
um einen Statusbericht anzufordern, kann der Kanal die zugehörige Steuereinheit belegt vorfinden. Eine Betriebssteuereinheit ist für einen Kanal belegt, wenn sie nicht in
der Lage ist, Befehle irgendwelcher Art zu interpretieren, die ihr vom Kanal gegeben werden. Auf den Betrieb mit nur einer Einheit
ausgelegte Steuereinheiten kehren grundsätzlich in den Belegungszustand relativ zum Kanal während aller Teile einer E/AOperation
zurück, die zwar die Steuereinheit aber nicht den Kanal betreffen.
Belegte Steuereinheiten können die Adressen aller angeschlossenen Einheiten erkennen. Wenn die Adresse einer angeschlossenen Ein-
JDbcket PO 968 036 2 0 9 8 3 9 / 1 0 4 4
heit an eine belegte Steuereinheit gegeben wird, antwortet sie
direkt mit einem Statusbericht, der ihren Belegungszustand anzeigt.
Wenn ein Kanal bei einer Einreihen-Operation auf eine belegte
Steuereinheit trifft, nimmt er den CCB von der Einheitenwarteschlange und setzt ihn an die Spitze der Steuereinheitenwarteschlange
für die zugehörige Einheit. Die Steuereinheitenwarteschlange wird durch den Code 30 (Fig. 5) lokalisiert, der in der
DT-Eintragung für die Einheit gefunden wurde und die Steuereinheit
oder den Satz von Steuereinheiten angibt, die Zugriff zu der gewünschten Einheit haben. Diese Code hat das Format einer
Einheitenadresse und bezeichnet eine Eintragung der DT. Das Einheitenwarteschlangenfeld
dieser Eintrag dient als Ursprung einer Steuereinheitenwarteschlange. Nachdem der CCB in die Steuereinheitenwarteschlange
gesetzt wurde, wird die Ausführung des Kanalprogrammes ausgesetzt und der Kanal freigegeben.
Eine Steuereinheit, welche dem Kanal eine Belegungsnachricht gegeben hat, muß das System davon unterrichten, wenn sie nicht
mehr belegt ist. Zu diesem Zweck muß die Steuereinheit ihre E/A-Anschlußeinheit (oder Einheiten) beobachten, um festzustellen,
wenn der zugehörige Kanal frei ist. Wenn ein Kanal frei wird, kann die Steuereinheit eine logische Verbindung mit dem
Kanal herstellen und die Adresse einer angeschlossenen Einheit zusammen mit einem Statusbericht abgeben, der anzeigt^ daß die
Steuereinheit nicht mehr belegt ist.
Der Kanal ermittelt dann die Eintragung in der DT, welche der
durch die Steuereinheit abgegebenen Einheitenadresse entspricht. Mit dem Inhalt dieser Eintragung wird die Eintragung der DT
lokalisiert, welche der Steuereinheit entspricht. Schließlich zieht der Kanal einen CCB aus der Steuereinheitenwarteschlange,
setzt ihn an die Spitze der Einheitenwarteschlange oder -unterwarteschlange und nimmt die Einreihen-Operation wieder auf. Während
dieser Operationsfolge bleibt die Steuereinheit logisch mit
Docket PO 968 036 209839/
dem Kanal verbunden.
Zu einem Satz von zwei oder mehr Steuereinheiten gehörende Steuereinheiten
mit Zugriff zu einer gemeinsamen E/A-Einheit arbeiten insofern zusammen, als sie dem System mitteilen, wenn eine
Steuereinheit nicht mehr belegt ist. Wenn eine andere Steuereinheit in diesem Satz dem Kanal eine Belegungsantwort gegeben hat,
muß die erste nicht belegte Einheit, die einen freien Kanal aufnehmen kann, diese Bedingung melden.
Wenn eine Steuereinheit einem Kanal eine Belegungsantwort gegeben
hat, braucht dieser keinen anderen Weg zu einer E/A-Einheit zu suchen. Wenn ein anderer Weg zu dieser E/A-Einheit existiert,
der einen freien Kanal und eine nicht belegte Steuereinheit betrifft, nimmt diese Steuereinheit den freien Kanal auf. Somit
wird die Ausführung des Kanalprogrammes an den zuletztgenannten Kanal über die Steuereinheitenwarteschlange übertragen. Um sicherzustellen,
daß der zuletztgenannte Kanal die Steuereinheitenwarteschlange erst untersucht, wenn der CCB in die Warteschlange
gesetzt ist, hält der an die belegte Steuereinheit angeschlossene Kanal die logische Verbindung mit dieser Steuereinheit
aufrecht, bis der CCB in die Steuereinheitenwarteschlange gesetzt und diese Warteschlange entriegelt wurde; die andere Steuereinheit
nimmt einen Kanal erst auf, wenn die belegte Steuereinheit abgewählt wurde.
Steuereinheitenwarteschlangen sind nicht erforderlich für Steuereinheiten,
die nur mit einer E/A-Einheit in Verbindung stehen unter der Voraussetzung, daß diese Einheit keine Antwortcodes benutzt.
Die DT-Eintragung für eine zu einer derartigen Steuereinheit gehörende E/A-Einheit enthält die Adresse der Einheit selbst
im Codefeld, welches die Steuereinheit bezeichnet. Somit dient die Einheitenwarteschlange als Steuereinheitenwarteschlange für
diese Einheit.
Jeder Umsetzer/Kanal kann die Ausführung des Einreihen-Kommandos
Docket PO 968 O36 209839/ 1GU
beginnen. Die Einreihen-Operation kann jedoch nur von Kanälen beendet
werden, die elektrisch mit einer Einheit verbunden sind, wenn die logische Verbindung mit der Einheit gefordert wird
(d. h. sobald ein CCB in eine leere Einheitenwarteschlange oder -unterwarteschlange gesetzt wird). (Es ist zu beachten, daß nach
der Darstellung in Fig. 2 in komplexeren Systemen eine Steuereinheit Zugriff zu einer Einheit haben kann oder nicht.) Wenn die
Verbindung mit einer Einheit also gefordert wird, muß der Kanal feststellen, ob er die Einheit adressieren kann oder nicht. Kann
er das nicht, muß die Einreihen-Operation an einen Kanal übertragen werden, der die Einheit adressieren kann. Diese Funktionen
werden mit Hilfe einer Tabelle von Kanalwarteschlangen ausgeführt und einer Wortliste, die die Benutzung der Wartechlangen steuern.
Eine Kanalwarteschlange ist definiert für jeden Höchstsatz von Kanälen, die Zugriff zu genau demselben Satz von Einheiten haben.
In einer Konfiguration, die z. B. aus zwei Kanälen besteht, von denen einer Zugriff zu zwei Einheiten und der andere Zugriff zu
einer dieser beiden Einheiten hat, sind zwei Kanalwarteschlangen definiert.
Die Ursprünge der Kanalwarteschlangen sind in einer Tabelle im
Speicher an einer festep Stelle angeordnet (Fig. 4).
Um ein Verzeichnis des Inhaltes der Kanalwarteschlangen aufrechtzuerhalten,
wird ein einziges Wort, das Kanalwarteschlangensteuerwort, benutzt. Dieses Wort folgt der Tabelle von Kanalwarteschlangenursprüngen.
Der Bitwert des Warteschlangensteuerwortes gibt an, ob die entsprechenden Kanalwarteschlangen leer sind oder CCBs enthalten.
Eine 1 in der η-ten Position des Warteschlangensteuerwortes besagt, daß die n-te Kanalwarteschlange aus einer Kette von CCBs
besteht; eine O in dieser Position besagt, daß die n-te Warteschlange
leer ist. Sobald ein Kanal einen CCB in eine leere Kanalwarteschlange eingibt, setzt er das entsprechende Bit des Warteschlangensteuerwortes
auf 1. Wenn ein Kanal eine Warteschlange im Laufe des Auszuges eines CCB aus der Warteschlange leer macht,
Docket PO 968 036 209839/1 OU
wird das entsprechende Bit gelöscht oder auf O gesetzt. Die CPU
setzt das erste Bit des Warteschlangensteuerwortes auf 1, wenn ein CCB der Kanalarbeitswarteschlange hinzugefügt wird während
der Ausführung der Instruktion "Kanal anfordern".
Eine Tabelle von Kanalmaskenworten, die dem Warteschlangensteuerwort
folgt, beschreibt die Beziehung zwischen den Kanälen und den Kanalwarteschlangen, die für Kanäle definiert sind. Zu jedem Kanal
gehört ein Kanalmaskenwort. Die Bits im Maskenwort legen fest, ob die entsprechenden Kanalwarteschlangen für den Kanal von Bedeutung
sind. Eine 1 im η-ten Bit eines Maskenwortes besagt, daß die n-te Kanalwarteschlange zu dem Kanal gehört.
Sobald die Ausführung des Kommandos "Einreihen" eine logische Verbindung
mit einer Einheit fordert, stellt der Kanal fest, ob die Einheit für ihn adressierbar ist. Zu diesem Zweck holt der
Kanal den Code 31 (Fig. 5), der die zu der Einheit gehörende Kanalwarteschlange bestimmt, aus der DT-Eintragung für diese Einheit.
Der Kanal untersucht dann das Bit seines Maskenwortes, welches durch den Kanalwarteschlangencode angegeben ist. Wenn das
Bit 1 ist, ist der Kanal mit der Kanalwarteschlange verbunden. Somit ist die Einheit adressierbar und die Einreihen-Operation
wird auf einen anderen Kanal übertragen. Zu diesem Zweck fügt der Kanal den CCB an das untere Ende der Kanalwarteschlange an,
die durch den Kanalwarteschlangencode bezeichnet ist, und wenn die Warteschlange vorher leer war, gibt er ein Signal an die Kanäle.
Es wird der Kanal freigegeben, welcher über den CCB verfügte.
Sobald ein Kanal freigegeben ist oder ein Signal von einem anderen
Kanal oder einer CPU erhält, holt er sowohl sein Kanalmaskenwort als auch das Warteschlangensteuerwort. Die Warteschlange entwickelt
dann das bitweise Produkt dieser beiden Wörter. Die resultierenden Einerbits entsprechen Kanalwarteschlangen, welche
die CCBs enthalten, die sich sowohl auf die für den Kanal adressierbaren
Einheiten als auch auf die innerhalb einer Einreihen-
Docket PO 968 036 209839/1044
Operation ausgesetzten Kanalprogramme beziehen. Das werthohe Bit
entspricht einer nicht geleerten Kanalarbeitswarteschlange. Nach Feststellung der aktiven Warteschlangen nimmt der Kanal einen CCB
aus der zu dem letzten Wert darstellenden Einerbit gehörenden Warteschlange. Die Ausführung des entsprechenden Kanalprogrammes
wird dann durch den Kanal aufgenommen.
Eingabe/Ausgabe-Operationen können durch Kanalprogramme nach dem erfolgreichen Abschluß der Einreihen-Operation eingeleitet
werden. Kommandos, welche den Kanal zur Einleitung von E/AOperationen
veranlassen, geben die Richtung der Datenübertragung an, einen zur Anweisung der Einheit benutzten Befehl und
zwei Register des CCBs, die eine Spezifikation der Höchstzahl von zwischen der Einheit und dem Hauptspeicher zu übertragenden Bytes
enthalten, sowie die Adresse des ersten Bytes des Bereiches im Hauptspeicher, der von der Operation betroffen ist.
Um eine E/A-Operation einzuleiten, setzt der Kanal die Ausführung
des Kanalprogrammes aus und gibt einen die Operation betreffenden Befehl an die Einheit. Der Befehl bereitet die Einheit
zum Senden oder Empfang von Daten vor und leitet eine mechanische Operation ein, die zur E/A-Operation gehört. Der Kanal
bereitet sich selbst dann entsprechend zum Empfang oder Senden von Informationen zu oder vom Hauptspeicher vor. Mit iedem
übertragenen Byte zählt der Kanal logisch das Register herunter, welches die Höchstzahl von zu bearbeitenden Bytes enthält.
Die Übertragung wird gestoppt, wenn entweder diese Zahl auf O reduziert
ist, oder die Einheit dem Kanal durch Signale anzeigt, daß die Übertragung abgeschlossen ist, oder die in den CCB-Registern
12 bis 15 enthaltenen Informationen besagen, daß nur eine kleinere Anzahl von Bytes übertragen werden kann. Mit jeder Gruppe
von Bytes, deren Anzahl gleich der Größe des Hauptspeichers ist, nimmt der Kanal Bezug auf den Hauptspeicher an der Stelle,
die durch das Register angegeben ist, welche die Hauptspeicheradresse enthält. Das Register wird dann entsprechend erhöht. Beim
Abschluß der Übertragung enthält das Register entsprechend die An-
Docket PO 968 036 209839/m4
zahl der übertragenen Bytes, die kleiner ist als das Maximum und die Adresse des Bytes im Hauptspeicher, das unmittelbar
rechts von dem letzten übertragenen Byte steht. Schreiboperationen beeinflussen den Inhalt des Hauptspeichers nicht. Leseoperationen
ändern nur die Stellen im Hauptspeicher, die den an den Kanal von der Einheit übertragenen Bytes entsprechen.
Nachdem die Datenübertragung abgeschlossen ist, gibt die Einheit einen Statusbericht an den Kanal. Wenn die Einheit Fehlerbedingungen
angezeigt hat, gibt der Kanal einen Befehl an die Einheit, der diese dazu veranlaßt, mit einer genauen Beschreibung des
Fehlers zu antworten. Diese Information.wird in die Register 13
bis 15 des CCBs zur Abfrage durch das Kanalprogramm gesetzt. Die Ausführung des Kanalprogrammes wird dann fortgesetzt.
Die CPU wird normalerweise durch einen Kanal nur unterbrochen infolge der Ausführung eines Ablauf—Kommandos, welches Teil
des Kanalprogrammes ist. Dieses Kommando setzt einen Eingang in die Unterbrechungswarteschlange der CPU fest. Wenn die Priorität
der durch das Kommando angegebenen Aufgabenbezeichnung die der gegenwärtig von der CPU ausgeführten Aufgabe überschreitet,
was durch ein Register der CPU angezeigt wird, dann wird eine Unterbrechung der CPU eingeleitet.
Wenn die Priorität einer Kanalaufgabe höher ist als die Priorität einer CPU-Aufgabe, dann wird der CPU durch ein Signal die
Unterbrechung angezeigt. Wenn die Priorität niedriger ist, wird eine Eintragung in die Unterbrechungsschlange gesetzt, ohne daß
die CPU ein Signal erhält. Wenn die Eintragung einmal in die Warteschlange gesetzt ist, ist der Kanal in beiden Fällen frei, um
ohne weitere Schritte in bezug auf die Unterbrechung weiterzumachen. In herkömmlichen Systemen wird auf Prioritätsbasis noch
entschieden, ob sofort unterbrochen werden soll oder die Unterbrechung zu verschieben ist, bis die Aufgaben mit höherer Priorität
abgeschlossen sind. Nach der vorliegenden Erfindung wird jedoch auf sofortige Unterbrechung entschieden, wenn die Prio-
Docket PO 968 O36
209839/1044
rität der E/A-Aufgabe höher ist als die der gegenwärtig von der CPU ausgeführten Aufgabe. Ist die Priorität niedriger, wird die
Aufgabe in die Unterbrechungswarteschlange gesetzt und der Kanal unterbricht die CPU niemals. Stattdessen fragt die CPU nach Beendigung
der Aufgabe mit höherer Priorität die Unterbrechungswarteschlange ab, um die nächste Aufgabe für die Ausführung herauszufinden,
ohne daß ein Prioritäts-Maschinenbauteil auf eine Quellenanlage zurückführt, die Unterbrechungsinformation hält.
Die Unterbrechungswarteschlange ist in Fig. 6 gezeigt, die Warteschlange
ist eine Tabelle mit fester Länge, welche von einem Steuerwort angeführt wird.
Felder des Steuerwortes bezeichnen die Länge 36 der Warteschlange,
den Eingabeeingang 37 der Tabelle, wo ein Kanal der Warteschlange etwas eingeben kann, und den Ausgabeeingang 38 der Tabelle, der
möglicherweise eine Eintragung enthält, die vorher darstellungsgemäß durch einen Kanal angehängt wurde. Um eine Eintragung in
die Unterbrechungswarteschlange einzuschieben, holt der Kanal das Steuerwort und verriegelt es. Das Eingabefeld 37 und das Ausgabefeld
38 werden verglichen. Wenn sie gleich sind, ist die Warteschlange voll. Wenn diese Felder verschieden sind, setzt der
Kanal eine Eintragung ah die durch das Eingabefeld angegebene Stelle. Dieses Feld wird, dann um 1 erhöht und mit dem Längenfeld
36 verglichen. Wenn diese Felder gleich sind, wird das Eingabefeld zurückgestellt. Das Steuerwort wird dann in seinem
fortgeschriebenen Zustand gespeichert und entriegelt.
Die aus dem Ablauf-Kommando resultierenden Eingänge 33 lokalisieren
einen Steuerblock ECB.
Die Unterbrechung der CPU wird auch eingeleitet während der Ausführung
des Ablauf-Kommandos, wenn kein weiterer Eingang in die Unterbrechungswarteschlange für den Kanal zur Verfügung steht. In
diesem Fall wird die Ausführung des Kana!programmes ausgesetzt,
Docket PO 968 036 209839/1CUA
bis ein Eingang in der Unterbrechungswarteschlange durch die CPU zur Verfügung gestellt wird.
Eine Unterbrechung der CPU resultiert immer aus einem Kanalprogrammfehler.
Der in die Unterbrechungswarteschlange vorgenommene Eingang 35 bezeichnet den dem Anbieter entsprechenden. CCB.
Vom Standpunkt des Programmierers aus sind auf zyklischen Speichereinheiten
aufgezeichnete Informationen logisch in verschiedene Datensätze organisiert. Jedei Datensatz kann als ein Byteraum
bezeichnet werden, d. h. eine Spanne von Byteadressen (ganzzahlige
relative Adressen), die von O bis zu irgendeinem Maximum reichen, welches durch die Größe des Datensatzes bestimmt ist.
Verzeichnisse, Aufzeichnungen, Felder, usw., welche von logischer Bedeutung für den Programmierer sind, werden durch Bytereihen
in Datensätzen dargestellt, wobei eine gegebene Bytereihe eindeutig bestimmt ist durch drei Größen (Datensatz, relative Adresse,
Reihenlänge). Die ersten dieser beiden Komponenten umfassen die logische Adresse der Daten, die so genannt wird zum Unterschied
von einer physikalischen Adresse, die zur Bezeichnung einer Speichereinheit und der physikalischen Lage im Speicher
dient.
In zyklischen Speichereinheiten aufgezeichnete Daten sind physikalisch
in Spuren organisiert, von denen jede eine ganze Zahl von 256 Bytes periodisch adressierbarer Blocks enthält. Abhängig
von der spezifischen Einheitentype können auch höhere Organisationseinheiten, wie Zylinder oder Bände, benutzt werden.
Ein bestimmter Datenblock kann physikalisch durch eine physikalische
Adresse lokalisiert werden, die die vier Teile umfaßt (Einheitenadresse, mechanische Lage, elektrische Lage, Rotationslage) . Hier gibt die Einheitenadresse eine bestimmte Einheit an,
auf welcher der Block liegt, und zwar durch eine oder mehrere der drei Lagekomponenten. Die mechanische Position gibt die gesamte
nicht periodische wichtige Betätigung an, die zur Adres-
Docket PO 968 036 2 0 9 8 3 9 / 1 0 A A
sierung des Blocks erforderlich ist (wie ζ. Β. die Betätigung
des Zugriffsmechanismus oder die Einstellung des Kopfes bei Plattendateien mit beweglichem Kopf). Die elektrische Position
gibt die gesamte elektrische Wahl, wie z. B. die Kopfwahl bei Plattendateien oder die Ringwahl elektronischer Speicher an.
Die Parameter der mechanischen und elektrischen Wahl geben zusammen eine Spur der Einheiten an. Ein bestimmter Block innerhalb
öiner Spur wird lokalisiert durch die Rotationslage.
Im vorliegenden Beispiel betrachten wir nur die Einheiten, bei
denen alle Spuren einer gegebenen Einheit dieselbe ganze Blockzahl haben und alle mechanischen Positionen einer gegebenen Einheit
dieselbe ganze Zahl elektrischer Positionen haben. Durch eine geeignete Adreßdecodierung in Speicheranlagen oder ihren
Steuereinheiten können den aufeinanderfolgenden Positionen, die zu jeder der drei Positionskomponenten der physikalischen
Adresse gehören, die Zahl O, 1, 2, usw. zugeordnet werden. Ist diese Zuordnung gegeben, so können die drei Positionskomponenten
zusammen als eine gemischte Wurzel-Integraladresse betrachtet werden, deren aufeinanderfolgende Werte aufeinanderfolgende
Blocks einer Einheit bezeichnen. Somit muß der erste Block einer Einheit (d. h. der Block mit den Positionskomponenten 0, 0, 0)
und eine Folge von aufeinanderfolgenden Blocks besprochen werden, die Spuren, Zylinder usw. umfassen.
Die Lage des Satzes logischer Adressen, die durch den Programmierer
angegeben sind, zum Satz der physikalischen Adressen, die die Lage der logisch adressierten Daten beschreiben, ist in der
abhängigen und der unabhängigen Argumententabelle wiedergegeben. Die zwei Komponenten einer logischen Adresse (Datensatz, relative
Adresse) werden während der Ausführung eines Kanalprogrammes als abhängige bzw. unabhängige Argumente des Einreihen-Kommandos
vor einer zugehörigen Lese- oder Schreiboperation gegeben.
Bei der Benutzung mit zylindrischen Speichereinheiten stellt die DAT das Lageverzeichnis eines gegebenen Datensatzes auf dem phy-
Docket PO 968 036 209839/1044
sikalischen Lageplatz dar, der durch die Konfiguration der Speichereinheiten
gegeben ist. In diesen Fällen, wo ein Datensatz in einer einzelnen Folge von aufeinanderfolgenden Blocks auf
einer Einheit enthalten sein kann, besteht die DAT ans einer Eintragung. Diese Eintragung definiert den Umfang der relativen
Adreßkoraponente der logischen Adresse (d. h. den maximal definierten
Wert des abhängigen Argumentes), wobei die Einheit den Datensatz, die Adresse des Anfangsblocks und die Wurzeln der
Blockadressenkomponente enthält, die dieser Einheit entsprechen. Mit dieser Information kann der Kanal die physikalische
Adresse bestimmen, die einer gegebenen relativen Adresse entspricht, mit Hilfe der gemischten Wurzelarithmetik.
Allgemeiner gesagt, kann der Byteraum eines Datensatzes unterteilt
werden in eine Anzahl von Segmenten, von denen jedes einem anderen Speicherelement angepaßt wird. Die Entsprechung zwischen
logischen und physikalischen Adressen wird dann dargestellt durch e"ne DAT mit mehreren Eintragungen, von denen eine für jedes Segment
des Datensatzes gilt.
Figo 7 zeigt einen Datensatz mit einem Umfang von 130 Blocks
von je 256 Bytes, dessen Byteraum in drei Bereiche 33„ 40 und
41 unterteilt wurde. Außerdem ist das Lageverzeieimis dieser
Bereiche in entsprechenden Bereichen 42, 43 unci 44 zweier Speichereinheiten
gezeigt. Es ist zu beachten, daß äer Adreßraum der Einheiten sowie das Lageverzeichnis zwischen den beiden nur
in Blocks definiert ist, wogegen der Adreßraum des Datensatzes in Bytes definiert ist. über den Zahlenzeilen, die die Adreßräume
der Einheiten angeben, sind Blockzahlen auf Zehnerbasis dargestellt. Unter den Zahlenzeilen sind die Anfangsblockzahlen
eines jeden Bereiches in gemischter Wurzelform dargestellt. Hier
wird angenommen, daß die Einheit 16 Blocks pro Spur und 10 elektrische
Positionen pro mechanischer Position hat. Somit entspricht der Block 1000· der mechanischen Position 6, der elektrischen
Position 2 und der Rotationspositics 8? ö. h. äie Zahl 1000
ist in der Basis dargestellt, ir. 1O1, lö) , worin r eine hinrei-
Docket PO 968 O36 209839/1Ü44
chend große ganze Zahl ist. Die Einheit 4 wird mit 32 Rotationsund
64 elektrischen Positionen und nur einer mechanischen Position angenommen.
Fig. 8 zeigt den Inhalt der DAT, der das Lageverzeichnis der Fig. 7 enthält. Die ersten, zweiten und dritten Eintragungen
(Spalten) der DAT betreffen die Bereiche 39, 40 und 41 des Byteraumes. Die erste Eintragung definiert z. B. den Satz physikalischer
Adressen, der sich auf die ersten 28 Blocks des Byteraumes, definiert durch das Feld 46, bezieht. Diese Blocks liegen
auf der Einheit 6 gemäß Definition durch Feld 47 und beginnen .nit dem Block 1938 dieser Einheit (siehe Feld 48) . Die Positionskomponenten
dieser Blocks werden mit Hilfe der elektrischen und Rotationspositionswurzeln 49 berechnet. Die zweite
Eintragung der DAT definiert in ähnlicher Weise den zweiten Bereich des Byteraumes, d. h. die 54 Blocks mit den Zahlen 28, 29,
... 81, wobei diese Blockzahlen niedriger als 82 numeriert und nicht durch die erste Eintragung definiert sind. Die IAT-Eintragung
50 besagt, daß die DAT nur drei Eintragungen hat und somit bedeutet die dritte DAT-Eintragung, daß das Ausmaß des
Bytesraumes 130 Blocks beträgt.
Bei Anwendung auf zyklische Speichereinheiten funktioniert das Einreihen-Kommando so, daß die Ausführung eines Kanalprogrammes
während der Latenzperiode der betroffenen Speichereinheit ausgesetzt wird. Diese Periode reicht von der Zeit, an welcher der
Einheit die Einnahme einer vorgeschriebenen mechanischen Position befohlen wird, bis zu der Zeit, an welcher die Rotationsposition
der Einheit einem gewünschten Block entspricht. Die Aussetzung des Kanalprogrammes und die resultierende Kanal-Multiprogrammierung
erfolgt durch koordinierte Warteschlangenoperationen im Kanal und in der Einheit.
Relativ zur Art der benutzten Warteschlangenoperationen werden zwei Klassen von Speichereinheiten in diesem Beispiel betrachtet.
Docket PO 968 036 209839/1044
-37- 4209282
1. Einheiten, wie ζ. B. Plattendateien mit beweglichem
Kopf, die mehrere mechanische Positionen aufweisen
und meistens einen herausragenden Statuscode empfangen und keine Antwortcodes verwenden.
Kopf, die mehrere mechanische Positionen aufweisen
und meistens einen herausragenden Statuscode empfangen und keine Antwortcodes verwenden.
2. Einheiten, wie Dateien mit festem Kopf, die eine mechanische Position haben, jedoch einen Statuscode und
einen Antwortcode für jede Rotationsposition der Einheit empfangen, wobei die Werte dieser Codes einfach
die entsprechenden Rotationspositionszahlen sind.
Einheiten der ersten Klasse werden durch einfache Einheitenwarteschlangen
eingeplant, wogegen Einheiten der zweiten Klasse mehrere Unterwarteschlangen für jede Einheit verwenden. So ist eine
Kanal-Multiprogrammierung relativ für eine einzelne Einheit nur
bei Einheiten der zweiten Klasse möglich.
Ein Beispiel von DAT-Eintragungen für Einheiten einer jeden
Klasse ist in Fig. 8 gegeben. Die erste Eintragung der DAT bezieht sich auf eine Einheit der ersten Klasse (Einheit 6), die 20 mechanische Positionen zeigt (Fig. 7). Die zweite DAT-Eintragung beschreibt eine Einheit der zweiten Klasse (Einheit 4), die die mechanische Positionskomponente der physikalischen Adresse (Fig. 7) nicht benutzt. Das erste Feld 45 der DAT-Eintragungen dient zur Klassifizierung zyklischer Speichereinheiten in die
obigen Klassen.
Klasse ist in Fig. 8 gegeben. Die erste Eintragung der DAT bezieht sich auf eine Einheit der ersten Klasse (Einheit 6), die 20 mechanische Positionen zeigt (Fig. 7). Die zweite DAT-Eintragung beschreibt eine Einheit der zweiten Klasse (Einheit 4), die die mechanische Positionskomponente der physikalischen Adresse (Fig. 7) nicht benutzt. Das erste Feld 45 der DAT-Eintragungen dient zur Klassifizierung zyklischer Speichereinheiten in die
obigen Klassen.
In jeder Einheitenklasse erfolgt die Warteschlangenbildung durch Rotationsposition in der nachfolgend angegebenen Reihenfolge:
1. Die physikalische Adresse eines vorgeschriebenen
Blockes wird bestimmt aus der logischen Adresse während der Ausführung eines Einreihen-Kommandos.
Blockes wird bestimmt aus der logischen Adresse während der Ausführung eines Einreihen-Kommandos.
2. Der zu den Kanalprogrammen gehörende CCB wird in die Einheitenwarteschlange der Einheit eingereiht, die durch
die physikalische Adresse (Einheiten der Klasse 1)
Docket PO 968 036 209839/1 OU
angegeben ist oder in eine Einheitenunterwarteschlange,
die zu der Einheit und der Rotationsposition gehören, die in der physikalischen Adresse angegeben sind (Einheiten
der Klasse 2).
3. Die Einheit wird durch den Kanal gewählt und ggf. Rotationspositionszahl und mechanische Position an
die Einheit als Statuscode weitergeleitet. Bei Einheiten der Klasse 2 wird ebenfalls ein der Rotationsposition identischer Antwortcode gesendet.
4. Der Kanal wird freigegeben.
5. Wenn die Einheit die mechanische und die ungefähre Rotationsposition einnimmt, die durch den Statusoode
definiert sind, versucht sie einen freien Kanal zu bekommen.
6. Wenn die Einheit keinen Kanal bekommen hat, während die gewünschte Rotationsposition durchläuft, versucht
sie es nicht mehr. Die Verbindungsaufnahme eines
Kanales wird dann periodisch bis zum Erfolg versucht, unmittelbar bevor die gewünschte Rotationsposition
erreicht wird.
7. Die Einheitenadresse und der Antwortcode (Einheiten
der Klasse 2) werden an den Kanal weitergeleitet. Diese werden später zur Lokalisierung des zugehörigen CCBs
benutzt.
8. Schließlich wird die elektrische Positionskomponente der physikalischen Adresse an die Einheit weitergeleitet
und so die volle physikalische Adresse für nachfolgende E/A-Operationen festgelegt.
Das Kanal-Grundprogramm oder das Unterprogramm komplexerer Programme,
welches im Zusammenhang mit zyklischen Speichereinheiten benutzt wird, ist in Fig. 11 gezeigt. Das Programm ist eine
Schleife, welche aus drei Kommandos besteht, worin die Ausführung eines jeden zum Lesen einer Reihe von Daten dient, die
Docket PO 968 036 2 0 9 8 3 9 / 1 0 U
vollständig innerhalb eines einzelnen Segmentes eines Datensatzes
und innerhalb einer mechanischen Position einer Einheit enthalten si id. Die wiederholte Ausführung der Schleife liest
eine logisch zusammenhängende Bytereihe,, d„ h. eine Folge von
Bytes mit aufeinanderfolgenden logischen Adressen»
Im Zusammenhang mit den Ablaufdiagrammen der Fign. 9A4. 9B und
10 einer typischen E/A-Operation werden folgende Annahmen gemacht:
1. Eine Leseoperation betrifft eine ganze Zahl von Datenrahmen
.
2. Eine von der Operation betroffene Einheit und ihre
Steuereinheit sind frei.
3. Der von der Operation betroffene Kanal kann die Einheit wählen, d. h. die Benutzung von Kanal- und Steuereinheitenschlangen,
Maskenwort, usw. nach obiger Beschreibung ist in den Ablaufdiagrammen nicht gezeigt,
und
4. die zu der Operation gehörende Sinheitenschlange oder
Unterschlange ist leer.
Das erste Einreihen-Kommando gibt die logische Adresse des ersten Byte der gewünschten Datenreihe. Die abhängigen und unabhängigen
Argumente dieses Kommandos werden in die Register 2 bzw. 3 des CCB eingegeben. Die Fign. 9Ά bis 9B zeigen im einzelnen die Ausführung
des Einreihen-Kommandos. Die Blocks 52 bis 58 zeigen die Auflösung des unabhängigen Operanden. Das eingeschlossene Verfahren
setzt die Gültigkeit des unabhängigen Operanden fest und lokalisiert die entsprechende DAT.
Die Blocks 59 bis 68 zeigen im einzelnen die Auflösung des abhängigen
Argumentes. In dieser Folge liegt eine Schleife in den Blocks 60 bis 63, in denen das Segment des Datensatzes bestimmt
wird, der das erste Byte der gewünschten Reihe enthält. Der Block 68 setzt die Höchstzahl von Blocks fest, die nach dieser
Docket PO 968 036
209839/ 1 OAA
Ausführung des Einreihen-Kommandos gelesen oder geschrieben werden
darf. Nachfolgende Blocks müssen durch die Wiederholung der Fig. 11 erhalten werden. Die Blocks 69 bis 76 übernehmen die Positionswarteschlangenbildung,
die die Einheit betrifft. Die Blocks 77 bis 79 vervollständigen die Einreihen-Operation und
werden nach der Aussetzung des Kanalprogrammes ausgeführt.
Die Operation des zweiten Kommandos (Fig. 11) des Kanalprogrammes ist im einzelnen in Fig. 11 gezeigt. Der Block 81 dieser Folge
stellt sicher, daß die Leseoperation gültig ausgeführt wird, d. h., daß eine vorhergehende Einreihen-Operation richtig ausgeführt
wurde. Die Blocks 82 bis 89 übernehmen die Lesewiederholung. Diese Wiederholung wird beendet, wenn das Register 14
des CCB (die Länge der gewünschten Reihe) auf 0 reduziert oder wenn der gegenwärtige Block von 256 Bytes gelesen wurde. Die
Blocks 90 bis 92 leiten diese Schleife erneut ein, wenn der laufende Block eine mechanische oder eine Segmentgrenze nicht
beendet. Wenn eine solche Grenze auftritt (Register 12 wurde auf 0 zurückgesetzt, Block 92), ist die Operation mit dem Verzweigungscode
3 abgeschlossen, wodurch das dritte Kommando der Fig. 11 die dritte Kommandoschleife erneut beginnt. Während jeder
Wiederholung der Schleife stellen die Blocks 86 und 87 sicher, daß die Pufferadresse, die Reihenlänge und das unabhängige Argument
einer nachfolgenden Wiederholung entsprechend eingestellt sind.
ZUSAMMENFASSUNG
Die Erfindung wurde im Zusammenhang mit einem Eingabe/Ausgabe-Steuersystem
beschrieben, in welchem z. B. ein primäres Steuermodul oder eine zentrale Verarbeitungseinheit vorgesehen ist
für die Ausführung eines primären oder Hauptprogrammes und ein sekundäres Steuermodul oder ein Eingabe/Ausgabe-Datenkanal vorgesehen
ist für die Ausführung von Sekundärprogrammen oder Kanalprogrammen nach Anweisung des CPU-Programmes. Die Erfindung ist
Docket PO 968 036 209839/ 1OU
Claims (3)
- PATENTANSPRÜCHE/T) Datenverarbeitungsanlage mit einem oder mehreren Eingabe/ Ausgabe-Kanälen, mehreren Eingabe/Ausgabe-Steuereinheiten, mehreren gemeinsamen Einheiten und mehreren peripheren Geräten, die miteinander über eine Schaltmatrix verbunden sind, dadurch gekennzeichnet, daß auf einer Seite der bekannten Schaltmatrix (26) Kanalsteuereinheiten (25) und auf der anderen Seite Speicher-, Verarbeitungs-, Ein/Ausgabe-Einheiten und/oder Einheitensteuerschaltungen (17) angeordnet sind, die außerhalb der Schaltmatrix (26) mit einer gemeinsamen Anforderungsleitung (27) miteinander und mit den Kanalsteuereinheiten (25) verbunden sind, die über Adreß- und Daten-Sammelleitungen (12, 13) sowohl mit dem Speicher (11) der Datenverarbeitungsanlage als auch mit der zentralen Verarbeitungseinheit (10) verbunden sind und Eingabe/Ausgabe-Programmpläne aufstellen, indem ein Befehl (Fordere Kanal an) die zentrale Verarbeitungseinheit (10) veranlaßt, einen Kanalsteuerblock (CCB) aus dem Speicher (11) zu holen, der die Adresse des ersten Befehls eines Kanalprogramms enthält und in eine Arbeitswarteschlange im Speicher (11) gesetzt wird, worauf über eine Alarmleitung (19), die mit allen Kanalsteuereinheiten (25) verbunden ist, ein Alarmsignal von der zentralen Verarbeitungseinheit (1O) an die Kanalsteuereinheiten (25) abgegeben wird, worauf eine nicht belegte Kanalsteuereinheit (25) einen Kanalsteuerblock (CCB) aus der Arbeitswarteschlange in ihre Register lädt und ausführt, und daß während einer latenten Periode ein Befehl "Einreihen" die Einreihung der Kanalsteuerblocks (CCB) in eine Einheitenwarteschlange vornimmt.Docket PO 968 O36209833/1044
- 2. Datenverarbeitungsanlage nach Anspruch 1, dadurch gekennzeichnet, daß die indirekte Adresse eines auszuführenden Kanalprogrammes in die Arbeitswarteschlange gesetzt wird, daß eine freie Kanalsteuereinheit (25) eine Aufgabe aus der Arbeitswarteschlange auswählt und mit der Ausführung des zugeordneten Kanalprogrammes beginnt bis zu dem Zeitpunkt, zu dem eine angeschlossene Einheit (17) anzeigt, daß sie mit internen Operationen beschäftigt ist, worauf die entsprechende Kanalsteuereinheit (25) indirekte Programme des Kanalprogrammes von der gemeinsamen Arbeitswarteschlange in eine für die betreffende Einheit vorliegende Einheitenwarteschlange überträgt, von wo sie entnommen wird, wenn die Einheit (17) den Status erreicht hat, an dem das Kanalprogramm durch Abruf der Aufgabe aus der Einheitenwarteschlange und den neuen Eintritt des Programmes an dem Punkt, an dem es unterbrochen wurde, ohne Verzögerung fortfahren kann.
- 3. Datenverarbeitungsanlage nach den Ansprüchen 1 und 2, dadurch gekennzeichnet, daß die Kanalsteuereinheiten (25) in den ihnen zugeordneten Mikroprogrammen den momentanen Status des jeweiligen Kanalprogramms einschließlich der Lage des nächsten Kommandos enthalten, daß die Ausführung eines Kanalprogrammes von einer Kanalsteuereinheit (25) bei mechanischen Einstelloperationen der angeschlossenen Einheiten (17) unterbrochen wird, wodurch die betreffende Kanalsteuereinheit (25) für weitere Steueroperationen innerhalb des Datenverarbeitungssystems zur Verfügung steht.Docket PO 968 036209839/ 1044Lee rs e 11 e
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12056371A | 1971-03-03 | 1971-03-03 |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2209282A1 true DE2209282A1 (de) | 1972-09-21 |
DE2209282B2 DE2209282B2 (de) | 1979-10-11 |
DE2209282C3 DE2209282C3 (de) | 1980-06-26 |
Family
ID=22391124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2209282A Expired DE2209282C3 (de) | 1971-03-03 | 1972-02-26 | Datenverarbeitungsanlage |
Country Status (6)
Country | Link |
---|---|
US (1) | US3725864A (de) |
JP (1) | JPS5210615B1 (de) |
CA (1) | CA945683A (de) |
DE (1) | DE2209282C3 (de) |
FR (1) | FR2128005A5 (de) |
GB (1) | GB1347423A (de) |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3956736A (en) * | 1972-05-24 | 1976-05-11 | Jacques James O | Disc cartridge sector formatting arrangement and record addressing system |
US3839706A (en) * | 1973-07-02 | 1974-10-01 | Ibm | Input/output channel relocation storage protect mechanism |
FR2253428A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
FR2258113A5 (de) * | 1973-11-30 | 1975-08-08 | Honeywell Bull Soc Ind | |
FR2253430A5 (de) * | 1973-11-30 | 1975-06-27 | Honeywell Bull Soc Ind | |
US3909799A (en) * | 1973-12-18 | 1975-09-30 | Honeywell Inf Systems | Microprogrammable peripheral processing system |
US3913074A (en) * | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
US3953834A (en) * | 1974-01-07 | 1976-04-27 | Texas Instruments Incorporated | Programmable logic controller with push down stack |
US4060849A (en) * | 1975-10-28 | 1977-11-29 | Compagnie Internationale Pour L'informatique Cii-Honeywell Bull | Data input and output controller |
JPS52130532A (en) * | 1976-04-27 | 1977-11-01 | Fujitsu Ltd | Address conversion system |
US4040037A (en) * | 1976-06-01 | 1977-08-02 | International Business Machines Corporation | Buffer chaining |
US4096567A (en) * | 1976-08-13 | 1978-06-20 | Millard William H | Information storage facility with multiple level processors |
US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
US4177513A (en) * | 1977-07-08 | 1979-12-04 | International Business Machines Corporation | Task handling apparatus for a computer system |
US4155117A (en) * | 1977-07-28 | 1979-05-15 | International Business Machines Corporation | Synchronizing channel-to-channel adapter |
US4207609A (en) * | 1978-05-08 | 1980-06-10 | International Business Machines Corporation | Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system |
US4224667A (en) * | 1978-10-23 | 1980-09-23 | International Business Machines Corporation | Command queuing for I/O adapters |
US4251865A (en) * | 1978-12-08 | 1981-02-17 | Motorola, Inc. | Polling system for a duplex communications link |
FR2470412B1 (fr) * | 1979-11-19 | 1986-10-03 | Bull Sa | Procede et dispositif de comptabilisation et de gestion des evenements asynchrones emis par des appareils peripheriques dans un systeme de traitement de donnees |
US4445176A (en) * | 1979-12-28 | 1984-04-24 | International Business Machines Corporation | Block transfers of information in data processing networks |
US4374415A (en) * | 1980-07-14 | 1983-02-15 | International Business Machines Corp. | Host control of suspension and resumption of channel program execution |
US4415970A (en) * | 1980-11-14 | 1983-11-15 | Sperry Corporation | Cache/disk subsystem with load equalization |
US4400773A (en) * | 1980-12-31 | 1983-08-23 | International Business Machines Corp. | Independent handling of I/O interrupt requests and associated status information transfers |
US4439826A (en) * | 1981-07-20 | 1984-03-27 | International Telephone & Telegraph Corporation | Diagnostic system for a distributed control switching network |
US4495564A (en) * | 1981-08-10 | 1985-01-22 | International Business Machines Corporation | Multi sub-channel adapter with single status/address register |
US4398192A (en) * | 1981-12-04 | 1983-08-09 | Motorola Inc. | Battery-saving arrangement for pagers |
US4603380A (en) * | 1983-07-01 | 1986-07-29 | International Business Machines Corporation | DASD cache block staging |
US4870611A (en) * | 1983-11-15 | 1989-09-26 | International Business Machines Corporation | Apparatus and method for system printing mode control |
US4649513A (en) * | 1983-11-15 | 1987-03-10 | International Business Machines Corporation | Apparatus and method for processing system printing data records on a page printer |
US4771378A (en) * | 1984-06-19 | 1988-09-13 | Cray Research, Inc. | Electrical interface system |
CA1228677A (en) * | 1984-06-21 | 1987-10-27 | Cray Research, Inc. | Peripheral interface system |
US5014236A (en) * | 1988-01-29 | 1991-05-07 | International Business Machines Corporation | Input/output bus expansion interface |
US5283791A (en) * | 1988-08-02 | 1994-02-01 | Cray Research Systems, Inc. | Error recovery method and apparatus for high performance disk drives |
US5218689A (en) * | 1988-08-16 | 1993-06-08 | Cray Research, Inc. | Single disk emulation interface for an array of asynchronously operating disk drives |
US5347637A (en) * | 1989-08-08 | 1994-09-13 | Cray Research, Inc. | Modular input/output system for supercomputers |
AU650242B2 (en) * | 1989-11-28 | 1994-06-16 | International Business Machines Corporation | Methods and apparatus for dynamically managing input/output (I/O) connectivity |
US5155845A (en) * | 1990-06-15 | 1992-10-13 | Storage Technology Corporation | Data storage system for providing redundant copies of data on different disk drives |
JPH0776950B2 (ja) * | 1990-06-22 | 1995-08-16 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理方法及び装置 |
EP0472814B1 (de) * | 1990-08-31 | 1996-12-18 | International Business Machines Corporation | Kanäle in einem Rechnerein-Ausgabesystem |
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 |
US5388217A (en) * | 1991-12-13 | 1995-02-07 | Cray Research, Inc. | Distributing system for multi-processor input and output using channel adapters |
US5313592A (en) * | 1992-07-22 | 1994-05-17 | International Business Machines Corporation | Method and system for supporting multiple adapters in a personal computer data processing system |
US5412661A (en) * | 1992-10-06 | 1995-05-02 | International Business Machines Corporation | Two-dimensional disk array |
US5367661A (en) * | 1992-11-19 | 1994-11-22 | International Business Machines Corporation | Technique for controlling channel operations in a host computer by updating signals defining a dynamically alterable channel program |
US5410709A (en) * | 1992-12-17 | 1995-04-25 | Bull Hn Information System Inc. | Mechanism for rerouting and dispatching interrupts in a hybrid system environment |
CA2137488C (en) * | 1994-02-18 | 1998-09-29 | Richard I. Baum | Coexecuting method and means for performing parallel processing in conventional types of data processing systems |
US5548791A (en) * | 1994-07-25 | 1996-08-20 | International Business Machines Corporation | Input/output control system with plural channel paths to I/O devices |
US5799207A (en) * | 1995-03-28 | 1998-08-25 | Industrial Technology Research Institute | Non-blocking peripheral access architecture having a register configure to indicate a path selection for data transfer between a master, memory, and an I/O device |
US5652914A (en) * | 1995-06-12 | 1997-07-29 | International Business Machines Corporation | Method and system for superimposing, creating and altering I/O applications and controls within an I/O subsystem by using an I/O subchannel intercept field |
US5768551A (en) * | 1995-09-29 | 1998-06-16 | Emc Corporation | Inter connected loop channel for reducing electrical signal jitter |
US5841997A (en) * | 1995-09-29 | 1998-11-24 | Emc Corporation | Apparatus for effecting port switching of fibre channel loops |
US5875479A (en) * | 1997-01-07 | 1999-02-23 | International Business Machines Corporation | Method and means for making a dual volume level copy in a DASD storage subsystem subject to updating during the copy interval |
US6157963A (en) * | 1998-03-24 | 2000-12-05 | Lsi Logic Corp. | System controller with plurality of memory queues for prioritized scheduling of I/O requests from priority assigned clients |
US6185631B1 (en) | 1998-10-14 | 2001-02-06 | International Business Machines Corporation | Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6230218B1 (en) * | 1998-10-14 | 2001-05-08 | International Business Machines Corporation | Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence |
US6240446B1 (en) | 1998-10-14 | 2001-05-29 | International Business Machines Corporation | Multiplexing of multiple data packets for multiple input/output operations between multiple input/output devices and a channel subsystem having multiple channels |
US6330585B1 (en) | 1998-10-14 | 2001-12-11 | International Business Machines Corporation | Transfer information using optical fiber connections |
US6292856B1 (en) | 1999-01-29 | 2001-09-18 | International Business Machines Corporation | System and method for application influence of I/O service order post I/O request |
US6609165B1 (en) | 1999-09-27 | 2003-08-19 | International Business Machines Corporation | Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration |
US6499066B1 (en) | 1999-09-27 | 2002-12-24 | International Business Machines Corporation | Method and apparatus for using fibre channel test extended link service commands for interprocess communication |
US7636915B1 (en) * | 1999-12-02 | 2009-12-22 | Invensys Systems, Inc. | Multi-level multi-variable control process program execution scheme for distributed process control systems |
US6973553B1 (en) | 2000-10-20 | 2005-12-06 | International Business Machines Corporation | Method and apparatus for using extended disk sector formatting to assist in backup and hierarchical storage management |
US6918001B2 (en) * | 2002-01-02 | 2005-07-12 | Intel Corporation | Point-to-point busing and arrangement |
US7304996B1 (en) | 2004-03-30 | 2007-12-04 | Extreme Networks, Inc. | System and method for assembling a data packet |
US7822032B1 (en) * | 2004-03-30 | 2010-10-26 | Extreme Networks, Inc. | Data structures for supporting packet data modification operations |
US7904644B1 (en) * | 2006-11-01 | 2011-03-08 | Marvell International Ltd. | Disk channel system with sector request queue |
US8751211B2 (en) | 2008-03-27 | 2014-06-10 | Rocketick Technologies Ltd. | Simulation using parallel processors |
US9032377B2 (en) * | 2008-07-10 | 2015-05-12 | Rocketick Technologies Ltd. | Efficient parallel computation of dependency problems |
US8139583B1 (en) | 2008-09-30 | 2012-03-20 | Extreme Networks, Inc. | Command selection in a packet forwarding device |
US8965860B2 (en) * | 2010-04-01 | 2015-02-24 | Salesforce.Com, Inc. | Methods and systems for bulk uploading of data in an on-demand service environment |
US9128748B2 (en) | 2011-04-12 | 2015-09-08 | Rocketick Technologies Ltd. | Parallel simulation using multiple co-simulators |
US20130152181A1 (en) * | 2011-12-07 | 2013-06-13 | International Business Machines Corporation | Portal based case status management |
US9143403B2 (en) * | 2013-06-19 | 2015-09-22 | Hewlett-Packard Development Company, L.P. | Autonomous metric tracking and adjustment |
US11150613B2 (en) * | 2014-11-18 | 2021-10-19 | Sensia Llc | Configurable safety logic solver |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3413609A (en) * | 1965-04-15 | 1968-11-26 | Gen Electric | Indirect addressing apparatus for a data processing system |
US3439340A (en) * | 1965-07-30 | 1969-04-15 | Bell Telephone Labor Inc | Sequential access memory system |
FR1509022A (de) * | 1965-11-26 | 1968-03-25 | ||
US3449722A (en) * | 1966-05-02 | 1969-06-10 | Honeywell Inc | Electronic multiprocessing apparatus including common queueing technique |
US3475730A (en) * | 1966-05-27 | 1969-10-28 | Gen Electric | Information shift apparatus in a computer system |
US3479647A (en) * | 1966-06-03 | 1969-11-18 | Gen Electric | Data process system including means responsive to predetermined codes for providing subsystem communication |
US3614742A (en) * | 1968-07-09 | 1971-10-19 | Texas Instruments Inc | Automatic context switching in a multiprogrammed multiprocessor system |
US3573741A (en) * | 1968-07-11 | 1971-04-06 | Ibm | Control unit for input/output devices |
US3559187A (en) * | 1968-11-13 | 1971-01-26 | Gen Electric | Input/output controller with linked data control words |
US3588831A (en) * | 1968-11-13 | 1971-06-28 | Honeywell Inf Systems | Input/output controller for independently supervising a plurality of operations in response to a single command |
US3614745A (en) * | 1969-09-15 | 1971-10-19 | Ibm | Apparatus and method in a multiple operand stream computing system for identifying the specification of multitasks situations and controlling the execution thereof |
-
1971
- 1971-03-03 US US00120563A patent/US3725864A/en not_active Expired - Lifetime
-
1972
- 1972-02-17 GB GB729972A patent/GB1347423A/en not_active Expired
- 1972-02-18 JP JP47016585A patent/JPS5210615B1/ja active Pending
- 1972-02-26 DE DE2209282A patent/DE2209282C3/de not_active Expired
- 1972-03-01 CA CA135,900A patent/CA945683A/en not_active Expired
- 1972-03-02 FR FR7208114A patent/FR2128005A5/fr not_active Expired
Also Published As
Publication number | Publication date |
---|---|
DE2209282C3 (de) | 1980-06-26 |
US3725864A (en) | 1973-04-03 |
JPS5210615B1 (de) | 1977-03-25 |
DE2209282B2 (de) | 1979-10-11 |
FR2128005A5 (de) | 1972-10-13 |
GB1347423A (en) | 1974-02-27 |
CA945683A (en) | 1974-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2209282A1 (de) | Datenverarbeitungsanlage | |
DE2230830C2 (de) | Datenverarbeitungsanlage | |
DE2350884C2 (de) | Adreßumsetzungseinheit | |
DE2540975C2 (de) | Datenverarbeitungseinrichtung zur Ausführung mehrerer gleichzeitig ablaufender Prozesse | |
DE2411963C3 (de) | Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken | |
DE69021899T2 (de) | DMA-Steuerung. | |
DE69322985T2 (de) | Ein-/Ausgabesteuerungssystem und Ein-/Ausgabesteuerungsverfahren im System | |
DE69907991T2 (de) | Dateisicherungssystem | |
DE3508291A1 (de) | Realzeit-datenverarbeitungssystem | |
DE2635592A1 (de) | Multiprozessor-abrufsystem | |
DE2646296A1 (de) | Assoziative elektronische schaltungsanordnung aus digitalen prozessoren | |
DE4033336A1 (de) | Verfahren zum erzeugen einer ausfallmeldung und mechanismus fuer ausfallmeldung | |
DE4129614A1 (de) | System und verfahren zur datenverarbeitung in einer mehrzahl von betriebsarten entsprechend programminterner parallelverarbeitungseigenschaften unter verwendung eines cachespeichers | |
DE3114934A1 (de) | Zentrales subsystem fuer eine datenverarbeitungsanlage | |
DE2839726A1 (de) | Datenverarbeitungsanlage mit verteilter steuerarchitektur in einem multiprozessor-system | |
DE2750721A1 (de) | Ein/ausgabe-system | |
DE2165767A1 (de) | Datenverarbeitungssystem | |
DE2612139A1 (de) | Ein/ausgang-steuerungssystem | |
DE3642324A1 (de) | Multiprozessoranlage mit prozessor-zugriffssteuerung | |
DE1929010B2 (de) | Modular aufgebaute datenverarbeitungsanlage | |
DE2755616A1 (de) | Asymmetrischer multiprozessor | |
DE2626703A1 (de) | Intern programmierbares datenverarbeitungssystem | |
DE2440628A1 (de) | Datenverarbeitungsanlage mit mikroprogrammierung | |
DE2363846A1 (de) | Verfahren zum steuern des transfers von daten zwischen einem speicher und einem oder mehreren peripheren geraeten und nach diesem verfahren arbeitende datenverarbeitungsanlage | |
EP0062141B1 (de) | Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
C3 | Grant after two publication steps (3rd publication) | ||
8339 | Ceased/non-payment of the annual fee |