DE19522807A1 - Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten - Google Patents

Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten

Info

Publication number
DE19522807A1
DE19522807A1 DE19522807A DE19522807A DE19522807A1 DE 19522807 A1 DE19522807 A1 DE 19522807A1 DE 19522807 A DE19522807 A DE 19522807A DE 19522807 A DE19522807 A DE 19522807A DE 19522807 A1 DE19522807 A1 DE 19522807A1
Authority
DE
Germany
Prior art keywords
channel
queue
work
iop
status
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.)
Ceased
Application number
DE19522807A
Other languages
English (en)
Inventor
Daniel Francis Casper
Steven Gardner Glassen
Marten Jan Halma
Sandra Kay Ryan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE19522807A1 publication Critical patent/DE19522807A1/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/122Program 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

Description

Die vorliegende Erfindung betrifft ein Datenverarbeitungssystem und insbesondere ein Pfadauswahlsystem, bei dem mehrere Kanal­ pfade zur Steuerung einer Eingabe-/Ausgabe-(E/A-)Einheit durch einen Verarbeitungsrechner zur Verfügung stehen.
Die vorliegende Erfindung findet in einem Datenverarbeitungssy­ stem, wie beispielsweise einem, das von der International Busi­ ness Machines Corp. hergestellt und als ES/9000 bezeichnet wird, Anwendung. Dieses Datenverarbeitungssystem ist so konfiguriert, daß es einer in "IBM System ESA/390 Principles of Operation", SA22-7201, definierten Architektur entspricht.
Zur Beschreibung des bestehenden Verfahrens, einer bestimmten E/A-Einheit durch mehrere Kanalpfade zwischen der E/A-Einheit und einem Verarbeitungsrechner als Antwort auf E/A-Instruktio­ nen, die in Host-Prozessoren ausgeführt werden, Arbeit zuzutei­ len, wird auf Fig. 1 Bezug genommen.
Das Datenverarbeitungssystem enthält einen Verarbeitungsrechner, der aus einem Host-Prozessor besteht, welcher eine oder mehrere Zentraleinheiten (CPU) 10 und einen Host-Speicher 11 enthalten kann. Der Host-Speicher 11 besteht aus einem Hauptspeicher 12, der von Programminstruktionen adressierbar ist, und einem Sy­ stemspeicher 13. Der Systemspeicher 13 speichert verschiedene Steuerdaten und steht nur verschiedenen Hardware-Komponenten und dem Mikrocode des Systems, nicht aber Programminstruktionen zur Verfügung.
Das Eingabe-/Ausgabesystem enthält eine Vielzahl von E/A-Einhei­ ten 14, die normalerweise von Steuereinheiten (CU) 15 gesteuert werden. Ein E/A-Steuerwerk enthält eine Vielzahl von Kanälen 16, den Mehrkanal-Kommunikatorpuffer (MCB) 17 und einen oder mehrere Eingabe-/Ausgabeprozessoren (IOP) 18. Die Anbindung des E/A-Sy­ stems an den Verarbeitungsrechner wird von einem Busschalter 19 und dem Systemsteuerungselement (SCE) 20 durchgeführt und ge­ steuert.
Ein ES/9000-Grundsystem kann mit einem Host-Speicher 11, der CPU 10, dem SCE 20, dem Busschalter 19, dem MCB 17, dem IOP 18 und dem Kanal 16 konfiguriert werden. Wie in Fig. 1 abgebildet ist, kann ein System auch mit zwei Seiten konfiguriert werden, wobei jede mehrere CPUs 10 und IOPs 18 hat. Die beiden Seiten können unabhängig voneinander gemacht werden oder zu einem System kon­ figuriert werden. Auch ist durch die Leitung 21 die Situation angegeben, bei der eine CU 15 auch mit einem autonomen System, das nicht auf das in Fig. 1 gezeigte bezogen ist, kommunizieren kann.
Gemäß der ESA/390-Architektur wird jeder E/A-Einheit eine ein­ deutige Nummer zugeordnet, die als Unterkanal-(SCH-)Nummer be­ zeichnet wird. Insgesamt 65.536 Einheiten kann eine eindeutige Nummer zugeordnet werden. Die E/A-Einheiten 14 sind durch SCH- Nummern in E/A-Instruktionen, die in der CPU 10 ausgeführt wer­ den, gekennzeichnet. Jeder TOP 18 hat eine zugehörige TOP-Ar­ beitswarteschlange im Systemspeicher 13. Während E/A-Instruktio­ nen ausgeführt werden, wird der E/A-Verarbeitungsauftrag, der durch die SCH-Nummer der beteiligten E/A-Einheit gekennzeichnet ist, in der Arbeitswarteschlange des IOPs gespeichert. Der IOP prüft seine Arbeitswarteschlange auf FIFO-Basis.
Jeder SCH hat im Systemspeicher 13 zugehörige Daten, die als Un­ terkanal-Steuerdaten (SCD) bezeichnet werden. Die in der Ar­ beitswarteschlange eines IOPs gespeicherte SCH-Nummer kennzeich­ net die Position der SCD. Zum Zweck dieser Erfindung enthält ein Teil der Steuerdaten in den SCD zwischen einer und acht Kanal­ pfad-IDs (CHPID). Die CHPID kennzeichnet einen physischen Pfad durch einen Kanal 16 zur CU 15 und somit zur E/A-Einheit 14. Wie in Fig. 1 gezeigt ist, und insbesondere mit Bezug auf die CU, die allgemein bei 22 gekennzeichnet ist, stehen drei Kanalpfade zur Verfügung. Die SCD für eine Einheit auf der CU 22 enthalten die CHPIDs 0, 127 und 128. Diese Daten werden in den SCD zum Zeitpunkt der Initialisierung des Systems gespeichert und ent­ halten eine Rotationsreihenfolge, um den Status dieser Kanäle zu prüfen, wenn ein IOP versucht, einen Pfad auszuwählen, um die E/A-Arbeit an einen ausgewählten Kanal 16 zu senden.
Auf der Grundlage einer vorweggenommenen Verwendung des Daten­ verarbeitungssystems sind bestimmte Steuerdaten im System­ speicher 13 festgelegt. Für die vorliegende Erfindung schließt dies ein, welche IOP-Arbeitswarteschlangen den Arbeitshinweis in Form einer SCH-Nummer erhalten können, wenn eine E/A-Instruktion ausgeführt wird, welche der Kanäle 16 von einem bestimmten IOP 18 gesteuert werden sollen, die CHPIDs für einen Unterkanal (SCH) und die Reihenfolge, in der CHPIDs für eine Pfadauswahl geprüft werden.
Wenn ein IOP 18 seine Arbeitswarteschlange prüft und durch das Vorhandensein einer SCH-Nummer auszuführende Arbeiten erkennt, greift er auf die SCD des Unterkanals (SCH) zu. Die Pfadauswahl hat die grundlegende Punktion, einen nichtbelegten Kanal zu fin­ den, der durch die CHPIDs gekennzeichnet ist. Bevor die Pfadaus­ wahl vorgenommen wird, werden die CHPTDs aus dem Pfadauswahlpro­ zeß entfernt, indem andere Steuerdaten geprüft werden, die den Belegt-/Nichtbelegt-Zustand der E/A-Einheiten 14 und der CUs 15 anzeigen, die durch die SCH-Nummer gekennzeichnet sind. Wenn diese Elemente aufgrund vorheriger Aktivierungen bereits belegt sind, wird die Pfadauswahl geändert.
Der IOP versucht, den Kanal auszuwählen, der in der Rotations­ reihenfolge, wie von den SCD bestimmt, der nächste ist. Wenn ein IOP versucht, einen Kanal auszuwählen, prüft er, ob der Kanal belegt ist. Wenn der Kanal verfügbar ist, sendet der IOP ein Signal zur Ausführung der E/A-Arbeit an den Kanal. Wenn der Ka­ nal belegt ist, versucht der IOP, den nächsten Pfad in der um­ laufenden Rotationsreihenfolge auszuwählen. Im Falle von mehre­ ren IOPs wird jedem IOP eine Gruppe von Kanälen zugeordnet, für die er den Belegtzustand prüfen kann. Wenn der nächste Pfad in der Rotationsreihenfolge nicht Teil der Gruppe dieses IOPs ist, stellt der IOP die E/A-Arbeit in die Arbeitswarteschlange des IOPs, der diesen nächsten Kanalpfad als Teil seiner Gruppe hat. Wenn der Verarbeitungsauftrag an den Anfang der Arbeitswarte­ schlange dieses IOPs rückt, wird der Kanalpfad-Auswahlprozeß erneut gestartet. Wenn alle Pfade zu der Einheit einen Belegt- Zustand haben und mindestens ein Pfad einen belegten Kanal hat, stellt der IOP die E/A-Arbeit an das Ende seiner Arbeitswar­ teschlange. Wenn der IOP alle Verarbeitungsaufträge in seiner Warteschlange vor dem erneut in die Warteschlange gestellten Verarbeitungsauftrag bedient hat, versucht er wieder, einen freien Pfad zu der Einheit zu finden, und der ganze Kanalaus­ wahlprozeß beginnt von neuem.
In Systemen, in denen es viele Kanäle und eine hohe E/A-Be­ anspruchung gibt, kommt es zu Problemen. Der oben kurz umrissene Pfadauswahl-Algorithmus kann zu einer sehr hohen IOP-Aktivität und Busbenutzung führen, ohne daß es gelingt, einem ausgewählten Kanal den E/A-Verarbeitungsauftrag zuzuteilen. Da E/A-Arbeit zwischen TOP-Arbeitswarteschlangen übertragen werden muß und diese Arbeit an das Ende der Warteschlangen gestellt wird, könn­ te ein Fenster, in dem ein Kanal von belegt nach frei wechseln kann, leicht vermißt werden. Nur durch Bereitstellung von weite­ ren IOPs bei zusätzlichen Kosten kann dieses Problem mit dem derzeitigen Pfadauswahlverfahren möglicherweise gemildert wer­ den.
Es ist eine Hauptaufgabe der Erfindung, das Kanalpfad-Auswahl­ verfahren eines Datenverarbeitungssystems zu verbessern, indem die Fähigkeit von IOPs, den Belegt-/Nichtbelegt-Zustand von Ka­ nalpfaden zu einer E/A-Einheit zu prüfen, erweitert wird.
Es ist eine weitere Aufgabe der Erfindung, das Kanalpfad-Aus­ wahlverfahren eines Datenverarbeitungssystems zu verbessern, indem eine Einposition-Kanalwarteschlange für E/A-Arbeit an je­ dem Kanal, der mit einer E/A-Einheit verbunden ist, bereitge­ stellt wird.
Eine weitere Aufgabe der Erfindung ist es, das Pfadauswahlver­ fahren von mehreren IOPs in einem Datenverarbeitungssystem zu verbessern, indem es den IOPs ermöglicht wird, den Voll-/Nicht- Voll-Status einer Einposition-Kanalwarteschlange an jedem Kanal, der mit einer E/A-Einheit verbunden ist, festzustellen.
Diese und weitere Aufgaben werden in einem Datenverarbeitungs­ system erreicht, das einen Verarbeitungsrechner mit einem oder mehr Host-Prozessoren und einem Host-Speicher enthält, die mit einer Vielzahl von E/A-Einheiten über eine Vielzahl von Kanälen, gesteuert von einem oder mehr Eingabe-/Ausgabeprozessoren (IOPs), in Dialogverkehr stehen. Jeder Kanal ist mit einer Ein­ position-Warteschlange ausgestattet, um einen Hinweis auf E/A- Arbeit zu empfangen, wenn er bereits mit der Ausführung von zu­ vor empfangener Arbeit beschäftigt ist. Wenn der Verarbeitungs­ rechner über mehrere Kanäle auf eine E/A-Einheit zugreifen kann, sind die IOPs mit einer höheren Kanalpfadauswahl-Fähigkeit aus­ gestattet, indem es den IOPs ermöglicht wird, den Belegt-/Nicht­ belegt-Zustand eines jeden Kanals und den Voll-/Nicht-Voll-Sta­ tus der Einposition-Warteschlange eines Kanals zu prüfen. Dies verbessert die Fähigkeit eines jeden IOPs, Arbeit in den Kanälen einzuleiten oder den besten TOP dafür auszuwählen, die nächste Pfadauswahl zu treffen.
Fig. 1 ist ein Blockdiagramm eines Datenverarbeitungssystems, das die Umgebung für die vorliegende Erfindung bildet.
Fig. 2 ist ein Blockdiagramm, das verschiedene Steuerblöcke in einem Systemspeicher des Datenverarbeitungssystems von Fig. 1 zur Durchführung der vorliegenden Erfindung zeigt.
Fig. 3 ist ein Blockdiagramm einschließlich der Abbildung eines Belegtvektors und eines Warteschlangenvektors, die bei der Durchführung der vorliegenden Erfindung verwendet werden.
Fig. 4 ist ein Datenflußdiagramm der Schritte, die zur Durchfüh­ rung einer bevorzugten Ausführungsform der Erfindung unter Ver­ wendung der Struktur von Fig. 3 unternommen werden.
Fig. 5 ist ein Datenflußdiagramm der Schritte, die zur Durchfüh­ rung der vorliegenden Erfindung in einer anderen Ausführungsform unternommen werden, die nicht den vollständigen Zugriff auf den Belegtvektor und auch nicht einen in Fig. 3 gezeigten Warte­ schlangenvektor einschließt.
Fig. 6 ist ein Datenflußdiagramm der Schritte, die von einem Kanal unternommen werden, um auf einen Hinweis auf zu erledigen­ de Arbeit zu reagieren, um die Arbeit auszuführen oder die Ar­ beit in eine Einposition-Warteschlange zu stellen.
Fig. 7 ist ein Datenflußdiagramm der Schritte, die von einem Kanal unternommen werden, um auf einen Hinweis auf zu erledigen­ de Arbeit in der Einposition-Warteschlange eines Kanals zu rea­ gieren.
Die grundlegenden Komponenten eines Datenverarbeitungssystems, in dem die vorliegende Erfindung enthalten ist, wurden zuvor in Verbindung mit Fig. 1 beschrieben. Fig. 2 setzt die Beschreibung des Hintergrunds der vorliegenden Erfindung fort, indem sie die grundlegenden Schritte, die bei der Ausführung einer E/A-In­ struktion von einer CPU 10 eine Rolle spielen, schildert. Ein­ zelheiten der Schritte bei der Ausführung einer E/A-Instruktion finden sich in der Architektur, die in den vorstehend erwähnten "Principles of Operation" angegeben ist.
Im allgemeinen wird eine E/A-Instruktion mit einer E/A-Einheit 14 ausgeführt, die durch ihre eindeutige, im R1-Mehrzweckregi­ ster 23 der CPU 10 enthaltene Unterkanal-(SCH-)Nummer gekenn­ zeichnet ist.
Die E/A-Instruktion enthält einen Operationscode 24, wie bei­ spielsweise Unterkanal Starten, und eine ORB-Adresse 25, die den Hauptspeicher 12 für einen zuvor vom Programm erstellten Opera­ tionsanforderungsblock (ORB) 26 adressiert. Der ORB 26 enthält eine Kanalprogrammadresse, die den Hauptspeicher 12 adressiert, um ein oder mehr Kanalsteuerworte (CCWs) abzurufen, welche die von der E/A-Einheit 14 auszuführenden Operationen und die Adres­ se von Daten im Hauptspeicher 12, die gegebenenfalls an der Ope­ ration beteiligt sind, enthalten.
Der Systemspeicher 13 des Host-Speichers 11, der in Fig. 1 ge­ zeigt ist, enthält eine Reihe von Steuerdatenblöcken, die vom Mikroprogramm und/oder der Hardware von verschiedenen Einheiten des Datenverarbeitungssystems adressiert werden können. Die Aus­ führung der E/A- Instruktion in der CPU 10 schließt den Zugriff auf eine Reihe dieser Steuerblöcke ein, die vorgeben, wie die E/A-Operation ausgeführt wird.
Die Festlegung einer SCH-Nummer im Register 23 ermöglicht schließlich den Zugriff auf mehrere spezifische Steuerda­ tenblöcke, die der entsprechenden E/A-Einheit 14 zugeordnet sind. In Fig. 2 sind diese verschiedenen Steuerblöcke gemeinsam durch Unterkanal-Steuerdaten (SCD) 27 dargestellt, die im Sy­ stemspeicher 13 des Host-Speichers 11 gespeichert sind. Bis zu 65.536 Unterkanäle können gekennzeichnet werden.
Einige der Steuerdaten in einem SCD 27 sind in Fig. 2 gezeigt und dem SCH2 zugeordnet. Jeder SCH, der auch eine zugehörige, ihm zugeordnete E/A-Einheit hat, enthält auch einen systemein­ deutigen Parameter, der als die Einheitennummer 28 bezeichnet wird. Systembediener kommunizieren normalerweise mit dem System, indem sie die zugeordnete Einheitennummer 28 verwenden. Deshalb ist eine E/A-Einheit 14 entweder durch eine SCH-Nummer oder die Einheitennummer 28 eindeutig gekennzeichnet.
Das SCD 27 enthält auch CU-/Verbindungsstatusdaten 29 und Andere Steuerdaten 30. Dies ist ein Sammelbegriff für Steuerdaten in Verbindung mit dem Belegt-/Nichtbelegt-Zustand von Verbindungen, CUs 15, Einheiten 14, der Funktionsfähigkeit/Verbindung von spe­ zifizierten Kanalpfaden und anderen zu erläuternden Informatio­ nen. Der Bezug auf die SCH-Nummer und der Zugriff auf das zuge­ hörige SCD 27 stellt auch den zuvor erwähnten ORB 26 bereit, der die CCWs eines Kanalprogramms lokalisiert.
In dem SCD 27 eines jeden SCH, wie beispielsweise dem SCH2 in Fig. 2, sind bis zu acht Kanalpfad-IDs (CHPID-0 bis CHPID-7) enthalten, die allgemein bei 31 gezeigt sind. Wenn der SCH2 ei­ ner E/A-Einheit 14 zugeordnet wird, die an die CU 22 von Fig. 1 angeschlossen ist, können drei CHPIDs festgestellt werden, näm­ lich 0, 127 und 128. Die Ablauffolge für das Prüfen des Belegt- /Nichtbelegt-Zustands der CHPIDs 0, 127 und 128 ist durch die Reihenfolge der Plazierung in den CHPIDs 0 bis 2 spezifiziert. Das heißt, das Prüfen könnte in der Reihenfolge 0, 128, 127 oder in irgendeiner anderen Reihenfolge vorgenommen werden.
Fig. 3 zeigt weitere schematische Darstellungen von strukturier­ ten Daten und Steuerdaten, die in dem System zur Steuerung von Eingabe- /Ausgabeoperationen eines Datenverarbeitungssystems ver­ wendet werden. Strukturierten Daten und Steuerdaten, die zuvor bezeichnet und erläutert wurden, wurden dieselben Bezugszahlen gegeben, die in vorherigen Figuren verwendet worden sind.
Jeder IOP 18, wie beispielsweise der IOP-2, enthält einen pro­ grammgesteuerten Prozessor (PROC) 32 mit einem Speicher 33. Der Pfad 34 ermöglicht dem PROC 32 und dem Speicher 33 Zugriff auf den MCB 17 einschließlich von Strukturen, deren Beschreibung folgt. Der Pfad 35 durch den Busschalter 19 und der Pfad 36 er­ möglichen dem PROC 32 und dem Speicher 33 Zugriff auf Steuerda­ ten, die im Systemspeicher 13 enthalten sind. Wenn das Datenver­ arbeitungssystem zwei Seiten umfaßt, wie in Fig. 1 gezeigt ist, bietet der Pfad 37 Zugriff auf den Systemspeicher 13 und den MCB 17 von der anderen Seite des Systems.
Jeder Kanal 16, wie beispielsweise der Kanal-127, enthält einen programmgesteuerten Prozessor (PROC) 38 und einen Speicher 39. Eine adressierbare Stelle im Speicher 39 enthält eine Warte­ schlange 40, deren Funktion es ist, einen Hinweis auf Arbeit zu speichern, die vom Kanal 16 ausgeführt werden soll, der bereits mit der Ausführung von Arbeit aus einer vorherigen Aktivierung beschäftigt ist. Ein Pfad 41 ermöglicht den Zugriff zwischen einem PROC 38 und dem Speicher 39 und dem MCB 17, einschließlich einer anderen Struktur, deren Beschreibung folgt. Der Pfad 41 ermöglicht auch die Übertragung zwischen einem Kanal 16 und dem Speicher 11 von Fig. 1 durch den MCB 17, den Pfad 35, den Bus­ schalter 19, das SCE 20 und den Pfad 36.
Während E/A-Instruktionen von einer CPU 10 von Fig. 1 ausgeführt werden und eine bestimmte SCH-Nummer, wie in Fig. 2, festgelegt wird, werden für jeden IOP 18 Arbeitshinweismittel erstellt. Das Arbeitshinweismittel ist in Fig. 3 als IOP-1- oder IOP-2-Ar­ beitswarteschlange 42 veranschaulicht, bei der es sich effektiv um eine FIFO-Warteschlange oder eine Kette von SCDs 27, die in Verbindung mit Fig. 2 erläutert wurden, handelt. Wie zuvor an­ gegeben wurde, ermöglicht die Festlegung einer SCH-Nummer in der Arbeitswarteschlange 42 die Identifikation einer Adresse im Sy­ stemspeicher 13 von allen in einem SCD 27 enthaltenen Steuerda­ ten. Die Daten eines SCD 27 stehen dem programmierten PROC 32 eines IOPs 18 oder dem programmierten PROC 38 eines Kanals 16 zur Verfügung.
Die Systemprogrammierung und/oder der Systemaufbau und die Sy­ stemverwendung geben vor, wie ein Datenverarbeitungssystem kon­ figuriert werden sollte. Jeder IOP 18, wie beispielsweise der IOP-1 oder der IOP-2 in Fig. 3, hat Zugriff auf eine Ausgabe­ übersetzungstabelle 43 und kann diese im IOP-Speicher 33 spei­ chern. Die Ausgabeübersetzungstabellen 43 geben an, welcher IOP- 1 oder IOP-2 die Kontrolle über welche CHPIDs durch welche Kanä­ le 16 hat. Die CHPIDs 31 eines SCD 27 von Fig. 2 sind gegebenen­ falls nicht unbedingt gleich wie die Kanalnummern 0 bis 127. Während ein IOP 18 den Belegt- oder Nichtbelegt-Zustand von CHPIDs prüft, muß er vielleicht einen Arbeitshinweis an einen anderen IOP 18 übertragen, ,wie von der Ausgabeübersetzungstabel­ le 43 angegeben wird.
Der Mehrkanal-Kommunikatorpuffer (MCB) 17 enthält drei Struktur­ komponenten, die in Fig. 3 veranschaulicht sind und in einer bevorzugten Ausführungsform zur Durchführung der vorliegenden Erfindung verwendet werden. Das Verfahren zum Einleiten der Aus­ führung eines E/A-Verarbeitungsauftrags durch einen IOP 18 an einem Kanal 16 ist noch zu beschreiben. Beim Abschluß dieses Verfahrens greift ein IOP 18 auf einen allgemein bei 44 angege­ benen Kanal-Datenübertragungsbereich (CCA) an einer Position 45 zu, die dem Kanal 16 zur Ausführung des Verarbeitungsauftrags zugeordnet ist. Der an der Position 45 vorgenommene Eintrag be­ zeichnet die SCH-Nummer, die aus der Arbeitswarteschlange 42 des IOPs genommen wurde, der die Ausführung einleitet.
Wenn ein IOP 18 einen Pfad ausgewählt hat, den Kanal 16 zur Aus­ führung der Instruktion mit Bezug auf die Ausgabeübersetzungs­ tabelle 43 bestimmt hat und die SCH-Nummer an der Position des CCAs 44, die dem Kanal zugeordnet ist, festgestellt hat (wie beispielsweise SCH2 für den Kanal-127), signalisiert der IOP 18 dem Kanal 16 diese Tatsache. Der PROC 38 des Kanals-127 ruft den Arbeitshinweis, der den SCH2 kennzeichnet, aus seiner Position 45 im CCA 44 über den Pfad 41 ab. Der Kanal-127 verwendet die SCH2-Kennzeichnung zum Abruf der Steuerinformationen aus den SCD 27, die dem SCH2 zugeordnet sind, einschließlich der ORB-Infor­ mationen 26, die in Fig. 2 gezeigt sind. Auf Kanalsteuerworte, die das Kanalprogramm umfassen, wird vom Host-Speicher 11 zuge­ griffen, wobei an der vom ORB 26 bestimmten Adresse begonnen wird.
Die bevorzugte Ausführungsform der Erfindung enthält ein Belegt- Hinweismittel in Form eines Belegtvektors 46, der aus einem Re­ gister besteht, das eine jedem Kanal 16 zugeordnete Binärbitpo­ sition 47 enthält. Jeder Kanal 16 ändert immer dann sein zuge­ höriges Bit in eine binäre "1", wenn der Kanal neue Arbeit mit einer E/A-Einheit einleitet und wenn der Kanal eine Verbindungs­ anforderung von einer E/A-Einheit annimmt. Wenn der Kanal-127 zum Beispiel die Ausführung, in Verbindung mit dem SCH2 annimmt, ändert er das dem Kanal-127 zugeordnete Binärbit 47 in eine bi­ näre "1". Solange der Kanal 16 aktiv mit einer E/A-Einheit kom­ muniziert, bleibt das Belegtvektorbit 47 auf "1" gesetzt. Wenn der Kanal 16 nicht mehr mit einer E/A-Einheit kommuniziert, än­ dert der Kanal sein zugehöriges Bit 47 in eine binäre "0". Der Pfadauswahlprozeß durch die IOPs 18, der noch zu beschreiben ist, verwendet den Binärstatus der Bitpositionen 47 des Belegt­ vektors 46.
Der Pfadauswahlprozeß durch einen IOP 18 für einen anderen E/A- Verarbeitungsauftrag stellt vielleicht fest, daß alle Kanäle 16 für alle möglichen CHPIDs 31 einer SCD 27 für eine bestimmte SCH-Nummer belegt sind. Die vorherige Beschreibung der Komponen­ ten eines Kanals 16 schloß eine Warteschlangenposition 40 im Speicher 39 eines Kanals 16 ein. Der Status "voll" oder "leer" der Warteschlange 40 wird von einem Warteschlange-Voll-Vektorre­ gister 48 angezeigt, das aus einer Binärbitposition 49 besteht, die jedem Kanal 16, wie beispielsweise dem Kanal-127, zugeordnet ist. Wenn ein IOP 18 feststellt, daß die Warteschlange 40 vom Kanal-127 leer ist, indem er den Status der Position 49 des War­ teschlange-Voll-Vektorregisters 48 prüft, das dem Kanal-127 zu­ geordnet ist, kann er eine andere Ausführung durch den Kanal-127 für eine andere SCH-Nummer einleiten, indem er einen Eintrag, der diese SCH-Nummer kennzeichnet, an der Position 45 des CCAs 44, die dem Kanal-127 zugeordnet ist, plaziert. Wenn er vom IOP 18 ein Signal erhält, stellt der Kanal-127 die SCH-Nummer in seine Warteschlange 40 und ändert den Binärstatus seiner Posi­ tion 49 des Warteschlange-Voll-Vektorregisters 48 in eine binäre "1". Wenn der Kanal-127 die Ausführung der vorherigen Arbeit für den SCH2 beendet, beginnt er mit der Ausführung für die SCH-Num­ mer in der Warteschlange 40 und ändert den Binärstatus seiner Position 49 in dem Warteschlange-Voll-Vektorregister 48 in eine binäre "0" zurück. Seine Position 47 des Belegtvektors 46 bleibt eine binäre "1", bis die Ausführung für die aus seiner Warte­ schlange 40 entnommene SCH-Nummer beendet ist, zu welchem Zeit­ punkt der Kanal-127 seine Position 47 in eine binäre "0" zurück­ ändert.
Architektonische Voraussetzungen zur Auswahl von anderen Pfaden bei Belegt-Zuständen erfordern einen programmierten PROC 38 ei­ nes Kanals 16, um den Zeitraum zu überwachen, über den eine SCH- Nummer in einer Warteschlange 40 gespeichert wird. Wenn ein an­ gegebener Zeitraum vergeht und die Ausführung für die in die Warteschlange gestellte SCH-Nummer nicht begonnen hat, gibt der Kanal 16 die SCH-Nummer an seine Position 45 im CCA 44 zurück und sendet dem IOP 18 ein Signal. Der Kanal 16 setzt auch die zugehörige Binärbitposition 49 des Warteschlange-Voll-Vektorre­ gisters 48 auf eine binäre "0" zurück. Dies ermöglicht es dem IOP 18, einen anderen Pfadauswahlprozeß einzuleiten.
Die Einführung beschrieb den Pfadauswahlprozeß vor der vorlie­ genden Erfindung. Erstens konnte ein IOP 18 den Belegtzustand eines ihm zugeordneten Kanals 16 nur mittels der Einstellungen der in Fig. 3 gezeigten Ausgabeübersetzungstabelle 43 prüfen. Die CHPIDs 31 von Fig. 2 wurden in einer genau angegebenen um­ laufenden Reihenfolge geprüft. Wenn ein die Pfadauswahl vorneh­ mender IOP 18 feststellte, daß die nächste CHPID 31 und der zu­ gehörige Kanal 16 von einem anderen IOP 18 gesteuert wurden, wurde die SCH-Nummer an das Ende der IOP-Arbeitswarteschlange 42 des anderen IOPs 18 gestellt. Dies fand statt, ohne zu wissen, ob der Kanal 16 belegt war oder nicht.
Bei dem früheren Pfadauswahlprozeß gab es auch nicht die Option, die Ausführung für eine SCH-Nummer einzuleiten, indem sie in eine Warteschlange 40 an einem Kanal 16 gestellt wird. Nachdem der Belegtzustand das einzige Kriterium für die Pfadauswahl war, konnte ein Kanal 16 frei und wieder belegt werden, bevor einer von zwei oder mehr IOPs 18 den Status auf der Grundlage der FI- FO-Prüfung der Arbeitswarteschlangen 42 geprüft hat. Diese Er­ findung verbessert die Leistung eines IOPs 18, indem der Ar­ beitshinweis in Form der SCH-Nummer aus seiner Arbeitswarte­ schlange 42 entfernt wird, und vermindert die Notwendigkeit für eine Kommunikation mit dem anderen IOP 18, was die Busbenutzung verringert.
Wenn ein IOP 18 beginnt, einen E/A-Verarbeitungsauftrag einzu­ leiten, und bevor er mit der Auswahl eines Kanalpfads anfängt, prüft er die CU-/Verbindungs-/Einheitenstatusinformationen 29 in den SCD 27 der SCH-Nummer, die in der Instruktion festgelegt ist. Diese Informationen, die durch die Programmierung eines anderen IOPs 18 und eines Kanals 16 verwaltet werden, entfernen jedwede CHPID 31 von der Pfadauswahl und somit den Kanal 16, der eine Steuereinheit 15 oder eine E/A-Einheit 14 hat, die zuvor als mit einem anderen E/A-Verarbeitungsauftrag beschäftigt fest­ gestellt wurde. Diese Steuereinheiten 15 oder E/A-Einheiten 14 können von anderen Kanälen 16 oder Datenverarbeitungssystemen gesteuert werden.
Die umlaufende Reihenfolge, in der Kanäle 16 geprüft werden, wird von der Plazierungsreihenfolge des Kanals 16, welcher den in den SCD 27 von Fig. 2 gezeigten Kanalpfad-IDs CHPID-0, CHPID- 1 usw. der CHPIDs 31 zugeordnet ist, angegeben. Bei der vorlie­ genden Erfindung neu ist die Tatsache, daß jeder beliebige IOP 18 den Belegt-/Nichtbelegt-Zustand eines beliebigen Kanals 16 mittels des Belegtvektors 46 und den Voll-/Nicht-Voll-Status einer beliebigen Warteschlange 40 mittels des Warteschlange­ Voll-Vektorregisters 48 prüfen kann. Diese stehen auch IOPs 18, die der anderen Seite eines in Fig. 1 gezeigten Datenverarbei­ tungssystems zugeordnet sind, über den in Fig. 3 gezeigten Pfad 37 zur Verfügung.
Auf der Suche nach einem freien Kanal 16 durchsucht ein IOP 18 die Kanal-Belegt-Statusinformationen im Belegtvektor 46, wobei er die umlaufende Suchreihenfolge befolgt. Wenn es irgendwelche freien Kanäle gibt, wählt der TOP den ersten aus, auf den er in der Rotationsreihenfolge trifft und führt einen der folgenden Schritte durch:
  • 1. Falls der Kanal 16 ein Teil der Gruppe dieses IOPs ist, wie von der Ausgabeübersetzungstabelle 43 angegeben wird, sen­ det der IOP dem Kanal 16 ein Signal und gibt den Eintrag, der die zugehörige SCH-Nummer kennzeichnet, in die Position 45 des CCAs 44, die dem Kanal zugeordnet ist;
  • 2. Falls der Kanal 16 nicht Teil der Gruppe von Kanälen dieses IOPs war, stellt der IOP den Verarbeitungsauftrag in die IOP-Arbeitswarteschlange 42 des IOPs, zu dessen Kanalgruppe der freie Kanal gehört, wie von der Ausgabeübersetzungsta­ belle 43 angegeben wird.
Wenn alle Kanäle zu einer Einheit belegt sind, sucht der IOP in der umlaufenden Rotationsreihenfolge die Statusinformationen für den ersten Kanal, in dessen Einposition-Warteschlange 40 keine Verarbeitungsaufträge eingereiht sind, wie von dem Warteschlan­ ge-Voll-Vektorregister 48 angegeben wird. Wenn es irgendwelche freien Kanalwarteschlangen 40 gibt, wählt der IOP die erste aus, die er in der Rotationsreihenfolge antrifft und führt einen der folgenden Schritte durch:
  • 1. Falls der Kanal Teil der Gruppe von Kanälen dieses IOPs ist, mit denen er kommunizieren kann, wie von der Aus­ gabeübersetzungstabelle 43 angegeben wird, stellt der IOP den Verarbeitungsauftrag in die Warteschlange 40 des Ka­ nals, indem er die SCH-Nummer in die dem Kanal zugeordnete Position 45 des CCAs 44 gibt und den Kanal 16 veranlaßt, die SCH-Nummer in seine Warteschlange 40 abzurufen;
  • 2. Falls der Kanal Teil der Gruppe von Kanälen eines anderen IOPs ist, stellt der IOP die SCH-Nummer in die IOP-Ar­ beitswarteschlange 42 des anderen TOPs, der eine freie War­ teschlange 40 hat.
Wenn alle Kanäle 16 zu einer SCH-Nummer und einer zugeordneten E/A-Einheit 14 belegt sind und alle Kanalwarteschlangen 40 voll sind, stellt der IOP 18 die SCH-Nummer zurück in seine eigene IOP-Arbeitswarteschlange 42.
Die vorausgehenden Schritte der Pfadauswahl sind in dem Flußdia­ gramm von Fig. 4 gezeigt.
Indem in jedem Kanal 16 eine Einposition-Warteschlange 40 be­ reitgestellt wird und jedem IOP 18 erlaubt wird, den Belegtzu­ stand und den Warteschlangenstatus aller Kanäle in einem System zu prüfen, kann eine weitaus intelligentere Auswahl dahingehend, wo die Arbeit für einen Unterkanal (SCH) in die Warteschlange gestellt werden soll, getroffen werden. Die unproduktive Hin­ und-Her-Übertragung zwischen IOPs in einem Datenverarbeitungs­ system wird wesentlich vermindert. Selbst in solchen Systemen, in denen nur ein IOP 18 erforderlich ist, verbessert die Einpo­ sition-Warteschlange 40 die Zuteilung von E/A-Verarbeitungsauf­ trägen zu den Kanälen 16 erheblich.
Fig. 5 ist ein Flußdiagramm eines ersatzweisen Pfadauswahlpro­ zesses, bei dem die Notwendigkeit für ein Warteschlange-Voll- Vektorregister 48 in dem MCB 17 eliminiert wird. Die Programmie­ rung des PROC 32 der IOPs 18 wird geändert, um auf Felder der Anderen Steuerdaten 30 der SCD von festgelegten SCH-Nummern zu­ zugreifen, die in Fig. 2 gezeigt sind. Bei den neuen Feldern handelt es sich um ein 8-Bit-Feld 50 "Pfad geprüft", bei dem jedes Bit eine der acht CHPIDs 31 darstellt, und einen 3-Bit- Zähler 51 "Nächste Warteschlange". Das Feld 50 "Pfad geprüft" wird zur Aufzeichnung der Tatsache verwendet, daß ein Kanal 16, der einer CHPID zugeordnet ist, während eines Pfadauswahlprozes­ ses als bereits belegt festgestellt wurde. Das binäre Bit einer zugehörigen CHPID-0 bis CHPID-7 wird zu einer binären "1" ge­ macht, wenn festgestellt wird, daß der Kanal belegt ist.
Bei 52 in Fig. 5 prüft ein IOP 18 das Feld 50 "Pfad geprüft", um festzustellen, ob alle Pfade geprüft wurden. Wenn nicht, wird die nächste CHPID in umlaufender Reihenfolge bei 53 festge­ stellt. Bei 54 wird festgestellt, ob der zugehörige Kanal 16 von diesem IOP gesteuert wird. Wenn nicht, wird die SCH-Nummer in die IOP-Arbeitswarteschlange 42 des IOPs gestellt, der den Kanal 16 steuert. Wenn sich der Kanal auf diesem TOP befindet, wird der Kanal-Belegt-Status bei 55 kontrolliert, indem der Belegt­ vektor 46 von Fig. 3 geprüft wird. Wenn der Kanal 16 nicht be­ legt ist, wird der Eintrag, der die SCH-Nummer kennzeichnet, an der richtigen Position 45 des CCAs 44 plaziert und die Ausfüh­ rung eingeleitet, indem der IOP 18 dem Kanal 16 ein Signal sen­ det. Dies ist bei 56 von Fig. 5 gezeigt.
Wenn bei 55 festgestellt wird, daß der Kanal 16 belegt ist, setzt der IOP bei 57 das entsprechende Binärbit im Feld 50 "Pfad geprüft" und kehrt zu 52 zurück. Wenn alle Pfade geprüft und als belegt festgestellt wurden, wird der Status des Zählers 51 "Nächste Warteschlange" bei 58 dazu verwendet, einen Kanal für den Empfang des Eintrags auszuwählen, der die SCH-Nummer an der richtigen Position 45 des CCAs 44 kennzeichnet, um sie in die Warteschlange 40 des Kanals 16 zu stellen. Wenn bei 59 festge­ stellt wird, daß der Kanal 16 von diesem IOP gesteuert wird, wird der Schritt 56 aufgerufen, um die Ausführung für die SCH- Nummer einzuleiten. Wenn sich der Kanal, der die SCH-Nummer zur Einreihung in die Warteschlange an einem Kanal 16 empfangen soll, nicht auf diesem IOP befindet, wird die SCH-Nummer bei 60 in die IOP-Arbeitswarteschlange 42 des IOPs gestellt, der diesen Kanal steuert. Der Zähler 51 "Nächste Warteschlange" wird von dem IOP erhöht. Auf diese Weise wird eine Zufallsauswahl eines Kanals, der eine SCH-Nummer zur Einreihung in eine Warteschlange 40 eines Kanals 16 empfangen soll, getroffen. Wenn der vom Zähler 51 "Nächste Warteschlange" ausgewählte Kanal 16 bereits eine SCH-Nummer in seiner Warteschlange 40 hat, signalisiert er dem IOP eine Ablehnung des Versuchs, die Einreihung in die Warte­ schlange vorzunehmen, und die SCH-Nummer wird in der diesem Ka­ nal zugeordneten Position 45 im CCA 44 plaziert.
Fig. 6 und Fig. 7 zeigen Flußdiagramme von Funktionen, die in einem Kanal 16 auf der Grundlage einer neuen Programmierung aus­ geführt werden, die für den PROC 38 eines Kanals 16 erforderlich ist. Die Programmierungsänderungen spiegeln die Maßnahme wider, die in einem Kanal 16 notwendig ist, um die Warteschlange 40 in dem Kanal und die zugehörige Position 49 des Warteschlange-Voll- Vektorregisters 48 zu manipulieren. Für den ersatzweisen Ansatz von Fig. 7 würde der Kanal 16 nicht programmiert, um die Posi­ tion 49 des Warteschlange-Voll-Vektorregisters 48 zu manipulie­ ren.
Während wir die bevorzugten Ausführungsformen der Erfindung ver­ anschaulicht und beschrieben haben, sollte klar sein, daß wir uns nicht auf den präzisen, hierin beschriebenen Aufbau be­ schränken und das Recht auf alle Änderungen und Modifikationen vorbehalten ist, die unter den Umfang der Erfindung fallen, wie er in den beigefügten Ansprüchen angegeben ist.

Claims (8)

1. System zur Steuerung von Eingabe-/Ausgabe-(E/A-)Operationen zwischen einem Verarbeitungsrechner, der einen Host-Prozes­ sor und einen Host-Speicher enthält, und einer oder mehr E/A-Einheiten, von denen jede durch eine eindeutige Nummer gekennzeichnet ist, die als Teil von E/A-Instruktionen an­ gegeben ist, die von dem Host-Prozessor ausgeführt werden, und mit dem Verarbeitungsrechner über einen oder mehr Kanä­ le kommuniziert, wobei der Host-Speicher einen Steuerbe­ reich hat, welcher der einen E/A-Einheit oder jeder von mehreren E/A-Einheiten zugeordnete Steuerdaten enthält, wobei die Steuerdaten eine Kennzeichnung der zwischen dem Verarbeitungsrechner und der E/A-Einheit auszuführenden Operation und eine Kennung (CHPID) von einem oder mehr Ka­ nälen, die zur Herstellung eines physischen Pfades zwischen der E/A-Einheit und dem Verarbeitungsrechner zur Verfügung stehen, enthalten, und wobei das System folgendes umfaßt:
eine Warteschlange in jedem Kanal, um einen Hinweis auf Arbeit zu speichern, die von dem Kanal für eine E/A-Einheit nach Beendigung der Arbeit, die gerade für eine E/A-Einheit ausgeführt wird, erledigt werden soll;
Arbeitshinweismittel in dem Steuerbereich des Host-Spei­ chers, um auf Arbeit hinzuweisen, die mit spezifizierten E/A-Einheiten ausgeführt werden soll, und wodurch die den E/A-Einheiten zugeordneten Steuerbereiche gekennzeichnet werden, wobei der Arbeitshinweis in dem Arbeitshinweismit­ tel vom Host-Prozessor als Antwort auf die Ausführung einer E/A-Instruktion gespeichert wird;
Belegthinweismittel, um den Belegt-/Nichtbelegt-Zustand ei­ nes jeden Kanals anzuzeigen;
Warteschlangenstatusmittel, um den Benutzungsstatus der Warteschlangen in den Kanälen anzuzeigen;
Kanal-Datenübertragungsmittel, das eine Vielzahl von Stel­ len, eine für jeden Kanal, enthält, um einen Arbeitshinweis für den zugehörigen Kanal zu speichern;
E/A-Steuerwerkmittel, das mit dem Verarbeitungsrechner ver­ bunden ist, um die Einleitung von Arbeit zu steuern, die zwischen dem Verarbeitungsrechner und E/A-Einheiten ausge­ führt werden soll;
wobei das E/A-Steuerwerkmittel folgendes enthält:
Mittel, um auf die Arbeitshinweismittel und dadurch auf die Steuerdaten zuzugreifen, die einer zugehörigen E/A-Einheit zugeordnet sind, um die Kanäle festzustellen, die einen physischen Pfad zu der E/A-Einheit haben;
Mittel, um auf das Belegthinweismittel und das Warte­ schlangenstatusmittel zuzugreifen;
auf das Belegthinweismittel und das Warteschlangenstatus­ mittel ansprechendes Einleitungsmittel, das den Nichtbe­ legt-Zustand eines Kanals oder, wenn alle Kanäle belegt sind, einen Kanal mit einer Warteschlange anzeigt, einen physischen Pfad zu der E/A-Einheit herstellt, um den Hin­ weis auf die Arbeit an die Stelle des Kanal-Datenübertra­ gungsmittels zu übertragen, die dem Kanal des verfügbaren physischen Pfades zugeordnet ist, und um den Arbeitshinweis aus dem Arbeitshinweismittel zu entfernen; und
auf das Belegthinweismittel und das Warteschlangenstatus­ mittel ansprechendes Mittel, das die Nichtverfügbarkeit eines beliebigen Kanals und somit einen physischen Pfad zu der E/A-Einheit anzeigt, um den Arbeitshinweis an das Ar­ beitshinweismittel zurücksenden.
2. System nach Anspruch 1, wobei jeder der Kanäle folgendes enthält:
mit mindestens einer E/A-Einheit und dem Kanal-Datenüber­ tragungsmittel verbundenes Ausführungssteuerungsmittel, das Mittel enthält, um eine angeschlossene E/A-Einheit zu steu­ ern, und Mittel, um von dem Kanal-Datenübertragungsmittel an der dem Kanal zugeordneten Stelle auf den Arbeitshinweis für die E/A-Einheit zuzugreifen.
3. System nach Anspruch 2, wobei:
das Arbeitshinweismittel aus einer oder mehr Warteschlangen besteht, um Arbeitshinweise von dem Host-Prozessor zu emp­ fangen und zu speichern;
das E/A-Steuerwerkmittel des weiteren folgendes enthält:
ein oder mehr E/A-Prozessor-(IOP-)Mittel, wobei jedes der IOP-Mittel einer bestimmten der Arbeitswarteschlangen zu­ geordnet ist und jeder IOP spezifizierte Kanäle steuert.
4. System nach Anspruch 3, wobei der IOP folgendes enthält:
Mittel, das mit dem Belegthinweismittel zur Feststellung des Belegt-/Nichtbelegt-Zustands eines jeden Kanals verbun­ den ist, der von den CHPIDs der einer E/A-Einheit zugeord­ neten Steuerdaten gekennzeichnet ist, die durch den Ar­ beitshinweis in der Arbeitswarteschlange, die diesem IOP zugeordnet ist, gekennzeichnet ist, und um die Feststellung in einer spezifizierten umlaufenden Reihenfolge der Kanäle zu treffen;
Mittel, das auf den Nichtbelegt-Zustand des Kanals an­ spricht, welcher der nächste in der umlaufenden Reihenfolge ist und von diesem IOP gesteuert wird, um den Arbeitshin­ weis in dem Kanal-Datenübertragungsmittel an der dem Kanal zugeordneten Stelle zu speichern; und
Mittel, das auf den Nichtbelegt-Zustand des Kanals anspri­ cht, welcher der nächste in der umlaufenden Reihenfolge ist und von einem anderen IOP gesteuert wird, um den Arbeits­ hinweis in der Arbeitswarteschlange des anderen IOPs zu speichern.
5. System nach Anspruch 4, wobei der IOP des weiteren folgen­ des enthält:
mit dem Warteschlangenstatusmittel verbundenes Mittel, das auf den Belegt-Zustand aller Kanäle anspricht, die von den CHPIDs der Steuerdaten gekennzeichnet sind, welche einer E/A-Einheit, die von dem Arbeitshinweis in der Arbeitswar­ teschlange dieses IOPs gekennzeichnet ist, zugeordnet sind, um die Identität einer Warteschlange in einem Kanal fest zu­ stellen, der durch die CHPIDs gekennzeichnet ist;
Mittel, das betriebsbereit ist, wenn der gekennzeichnete Kanal von diesem IOP gesteuert wird, um den Arbeitshinweis in dem Kanal-Datenübertragungsmittel an der Stelle zu spei­ chern, die dem gekennzeichneten Kanal zugeordnet ist;
Mittel, das betriebsbereit ist, wenn der gekennzeichnete Kanal von einem anderen IOP gesteuert wird, um den Ar­ beitshinweis in der Arbeitswarteschlange des anderen IOPs zu speichern.
6. System nach Anspruch 5, wobei:
das Belegthinweismittel folgendes enthält:
eine jedem Kanal zugeordnete Binärbitstelle, deren Bi­ närstatus den Belegt-/Nichtbelegt-Zustand des Kanals an­ zeigt;
das Warteschlangenstatusmittel folgendes enthält:
Warteschlange-Voll-Vektormittel, das aus einer jedem Kanal zugeordneten Binärbitstelle besteht, deren Binärstatus den Voll-/Nicht-Voll-Status der Warteschlange in dem Kanal an­ zeigt;
das Ausführungssteuerungsmittel eines jeden Kanals folgen­ des enthält:
Mittel, das mit dem Belegthinweismittel verbunden ist, um den Binärstatus der Binärbitstelle des Belegthinweismittels zu ändern, sowie von dem Kanal-Datenübertragungsmittel auf Arbeitshinweise zur Ausführung zugegriffen wird und Ausfüh­ rungen abgeschlossen werden;
Mittel, das mit dem Warteschlange-Voll-Vektormittel verbun­ den ist, um den Binärstatus der Binärbitstelle des Warte­ schlange-Voll-Vektormittels zu ändern, sowie von dem Kanal- Datenübertragungsmittel auf Arbeitshinweise zur Speicherung in der Warteschlange des Kanals zugegriffen wird und Ar­ beitshinweise aus der Warteschlange des Kanals entfernt werden.
7. System nach Anspruch 5, wobei:
das Warteschlangenstatusmittel aus einem Zähler "Nächste Warteschlange" in den Steuerdaten, die einer E/A-Einheit zugeordnet sind, besteht, wobei der Zähler "Nächste Warte­ schlange" den Kanal kennzeichnet, der den CHPIDs in den Steuerdaten zugeordnet ist, um den Arbeitshinweis zur Spei­ cherung in der Warteschlange des gekennzeichneten Kanals zu speichern;
der IOP des weiteren Mittel enthält, um den Zähler "Nächste Warteschlange" nach der Bestimmung des Kanals zu erhöhen, der den Arbeitshinweis empfangen soll; und
das Ausführungssteuerungsmittel eines jeden Kanals des wei­ teren Mittel enthält, die nach dem Empfang des Arbeitshin­ weises zur Speicherung in der Warteschlange betriebsbereit sind und auf das Vorhandensein eines Arbeitshinweises in der Warteschlange ansprechen, um den Arbeitshinweis an das Kanal-Datenübertragungsmittel zurückzusenden.
8. System nach Anspruch 6, wobei:
das Ausführungssteuerungsmittel eines jeden Kanals folgen­ des enthält:
Zeitsteuerungsmittel, das betriebsbereit ist, wenn ein Ar­ beitshinweis in der Warteschlange gespeichert wird, und auf das Verstreichen eines vorher festgelegten Zeitraums an­ spricht, um den Arbeitshinweis an die zugehörige Stelle des Kanal-Datenübertragungsmittel zurückzusenden und den Binär­ status der Binärbitstelle des Warteschlange-Voll-Vektors zu ändern, um den Nicht-Voll-Status der Warteschlange des zu­ gehörigen Kanals anzuzeigen.
DE19522807A 1994-07-25 1995-06-23 Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten Ceased DE19522807A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US08/279,581 US5548791A (en) 1994-07-25 1994-07-25 Input/output control system with plural channel paths to I/O devices

Publications (1)

Publication Number Publication Date
DE19522807A1 true DE19522807A1 (de) 1996-02-15

Family

ID=23069583

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19522807A Ceased DE19522807A1 (de) 1994-07-25 1995-06-23 Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten

Country Status (3)

Country Link
US (1) US5548791A (de)
JP (1) JP3140939B2 (de)
DE (1) DE19522807A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19952540B4 (de) * 1998-12-18 2006-08-24 International Business Machines Corp. Verfahren, System und Rechnerprogrammprodukt zur Unterstützung asynchroner Datenübertragungen gleichzeitig mit anderen Prozessen

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634099A (en) * 1994-12-09 1997-05-27 International Business Machines Corporation Direct memory access unit for transferring data between processor memories in multiprocessing systems
US5812799A (en) * 1995-06-07 1998-09-22 Microunity Systems Engineering, Inc. Non-blocking load buffer and a multiple-priority memory system for real-time multiprocessing
US5941972A (en) 1997-12-31 1999-08-24 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
USRE42761E1 (en) 1997-12-31 2011-09-27 Crossroads Systems, Inc. Storage router and method for providing virtual local storage
JP4111472B2 (ja) 1998-05-15 2008-07-02 キヤノン株式会社 通信制御方法及び装置及び通信システム
JP4109770B2 (ja) * 1998-12-02 2008-07-02 キヤノン株式会社 通信制御方法及び機器
US6345324B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Apparatus for transferring data using an interface element and a queued direct input-output device
US6345329B1 (en) * 1999-02-19 2002-02-05 International Business Machines Corporation Method and apparatus for exchanging data using a queued direct input-output device
US6401145B1 (en) * 1999-02-19 2002-06-04 International Business Machines Corporation Method of transferring data using an interface element and a queued direct input-output device
US6339803B1 (en) * 1999-02-19 2002-01-15 International Business Machines Corporation Computer program product used for exchange and transfer of data having a queuing mechanism and utilizing a queued direct input-output device
US6341321B1 (en) * 1999-02-22 2002-01-22 International Business Machines Corporation Method and apparatus for providing concurrent patch using a queued direct input-output device
US6986137B1 (en) * 1999-09-28 2006-01-10 International Business Machines Corporation Method, system and program products for managing logical processors of a computing environment
US6598069B1 (en) 1999-09-28 2003-07-22 International Business Machines Corporation Method and apparatus for assigning resources to logical partition clusters
US6567841B1 (en) 1999-09-28 2003-05-20 International Business Machines Corporation Method and apparatus for creating and identifying logical partition clusters
JP4339623B2 (ja) * 2003-04-15 2009-10-07 株式会社日立製作所 チャネルアダプタ
US6996638B2 (en) * 2003-05-12 2006-02-07 International Business Machines Corporation Method, system and program products for enhancing input/output processing for operating system images of a computing environment
US7127599B2 (en) * 2003-05-12 2006-10-24 International Business Machines Corporation Managing configurations of input/output system images of an input/output subsystem, wherein a configuration is modified without restarting the input/output subsystem to effect a modification
US7130938B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Method, system and program products for identifying communications adapters of a computing environment
US7174550B2 (en) * 2003-05-12 2007-02-06 International Business Machines Corporation Sharing communications adapters across a plurality of input/output subsystem images
US7177961B2 (en) * 2003-05-12 2007-02-13 International Business Machines Corporation Managing access, by operating system images of a computing environment, of input/output resources of the computing environment
US7000036B2 (en) * 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7290070B2 (en) * 2003-05-12 2007-10-30 International Business Machines Corporation Multiple logical input/output subsystem facility
US7826386B2 (en) * 2003-12-08 2010-11-02 International Business Machines Corporation Facilitating the configuring of communications environments
JP4401788B2 (ja) * 2004-01-06 2010-01-20 株式会社日立製作所 ストレージ制御装置
US7277968B2 (en) * 2004-01-23 2007-10-02 International Business Machines Corporation Managing sets of input/output communications subadapters of an input/output subsystem
US7437490B2 (en) * 2005-05-27 2008-10-14 International Business Machines Corporation Channel communication array queues in hardware system area
US8677034B2 (en) * 2006-04-28 2014-03-18 Hewlett-Packard Development Company, L.P. System for controlling I/O devices in a multi-partition computer system
US7500023B2 (en) * 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7937507B2 (en) * 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8001298B2 (en) * 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0560343A1 (de) * 1992-03-10 1993-09-15 Hitachi, Ltd. Ein-/Ausgabesteuerungssystem und Ein-/Ausgabesteuerungsverfahren im System

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3639909A (en) * 1970-01-26 1972-02-01 Burroughs Corp Multichannel input/output control with automatic channel selection
US3693161A (en) * 1970-07-09 1972-09-19 Burroughs Corp Apparatus for interrogating the availability of a communication path to a peripheral device
US3725864A (en) * 1971-03-03 1973-04-03 Ibm Input/output control
US4060849A (en) * 1975-10-28 1977-11-29 Compagnie Internationale Pour L'informatique Cii-Honeywell Bull Data input and output controller
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
US4415970A (en) * 1980-11-14 1983-11-15 Sperry Corporation Cache/disk subsystem with load equalization
US4396984A (en) * 1981-03-06 1983-08-02 International Business Machines Corporation Peripheral systems employing multipathing, path and access grouping
US4435755A (en) * 1981-12-28 1984-03-06 International Business Machines Corporation Balanced channel finding method
US4663706A (en) * 1982-10-28 1987-05-05 Tandem Computers Incorporated Multiprocessor multisystem communications network
US4901232A (en) * 1983-05-19 1990-02-13 Data General Corporation I/O controller for controlling the sequencing of execution of I/O commands and for permitting modification of I/O controller operation by a host processor
CA1228677A (en) * 1984-06-21 1987-10-27 Cray Research, Inc. Peripheral interface system
JPH0644251B2 (ja) * 1986-08-28 1994-06-08 日本電気株式会社 デ−タ処理装置
JPH0752420B2 (ja) * 1986-09-10 1995-06-05 株式会社日立製作所 入出力装置アドレス方式
US5070477A (en) * 1987-04-13 1991-12-03 Unisys Coporation Port adapter system including a controller for switching channels upon encountering a wait period of data transfer
US4803622A (en) * 1987-05-07 1989-02-07 Intel Corporation Programmable I/O sequencer for use in an I/O processor
US5088025A (en) * 1989-02-21 1992-02-11 Unisys Corporation Input/output processor control system with a plurality of staging buffers and data buffers
JPH02294756A (ja) * 1989-05-09 1990-12-05 Sharp Corp 基板および基板交換方法
US5274773A (en) * 1990-11-09 1993-12-28 Conner Peripherals, Inc. Flexible host interface controller architecture
US5388217A (en) * 1991-12-13 1995-02-07 Cray Research, Inc. Distributing system for multi-processor input and output using channel adapters

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0560343A1 (de) * 1992-03-10 1993-09-15 Hitachi, Ltd. Ein-/Ausgabesteuerungssystem und Ein-/Ausgabesteuerungsverfahren im System

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19952540B4 (de) * 1998-12-18 2006-08-24 International Business Machines Corp. Verfahren, System und Rechnerprogrammprodukt zur Unterstützung asynchroner Datenübertragungen gleichzeitig mit anderen Prozessen

Also Published As

Publication number Publication date
JPH0844651A (ja) 1996-02-16
JP3140939B2 (ja) 2001-03-05
US5548791A (en) 1996-08-20

Similar Documents

Publication Publication Date Title
DE19522807A1 (de) Eingabe-/Ausgabe-Steuerungssystem mit mehreren Kanalpfaden zu E/A-Einheiten
DE69732020T2 (de) Wiedereinordnung von Speicheranforderungen in einem Datenverarbeitungssystem
DE3300263C2 (de)
DE2313724C3 (de) Elektronische Datenverarbeitungsanlage mit einer Anzahl von Datengeräten, die mit einem gemeinsamen Kontroller nach dem Unterberechnungsprinzip verkehren
DE3909948C2 (de)
DE2936932C2 (de) Kanaladressen-Steuervorrichtung in einer virtuellen Maschinenanordnung
DE2657848C2 (de)
DE2209282B2 (de) Datenverarbeitungsanlage
DE2844357A1 (de) Speichererweiterung
DE1424732B2 (de) Einrichtung zum gegenseitigen Austausch von Angabenwörtern zwischen einem unmittelbar zugänglichen Hauptspeicher einer Ziffernrechenmaschine und einem an diese angeschlossenen Sekundärspeicher vergleichsweise längerer Zugriffszeit
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
EP0764906A2 (de) Verfahren zum Betreiben eines durch ein Realzeit-Betriebssystem gesteuerten Realzeit-Computersystems
DE3013064C2 (de) Schaltungsanordnung zur Übertragung von Bitgruppen zwischen einer von mehreren peripheren Einheiten und einem Pufferspeicher
EP0062141B1 (de) Schaltungsanordnung zur Eingabe von Steuerbefehlen in ein Mikrocomputersystem
DE19543411C2 (de) Analog-Digital-Wandlervorrichtung
DE60217729T2 (de) Verfahren zum erkennen eines elektronischen geräts in einem mehrfachsteuersystem
EP0141245B1 (de) Verfahren zum Betrieb eines in Normalbetriebszeit parallel betriebenen Speicherblockpaares
EP0419723B1 (de) Verfahren und Unterbrechungssteuerung zur Behandlung von Unterbrechungsanforderungen bei Ein-/Ausgabeoperationen in einem virtuellen Maschinensystem
DE1549486A1 (de) Verfahren zur Datenuebertragung zwischen mindestens einer zentralen Recheneinheit und mehreren externen Speichern
DE2034423C3 (de) Verfahren zur Fehlersuche in einem programmgesteuerten Vermittlungssystem
DE2845218B1 (de) Mikroprogrammgesteuerte Ein-/Ausgabeeinrichtung und Verfahren zum Durchfuehren von Ein-/Ausgabeoperationen
DE60026802T2 (de) Verfahren und System zur Verwaltung von Wiederauswahl über einen SCSI-Bus
DE1762205B2 (de) Schaltungsanordnung fuer ein elektronisch gesteuertes selbstwaehlamt
DE1549428A1 (de) Vermittlungs- und Steuergeraete in einem Rechenmaschinensystem
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection