DE3788346T2 - E/a-system zur abladung von betriebssystemfunktionen. - Google Patents

E/a-system zur abladung von betriebssystemfunktionen.

Info

Publication number
DE3788346T2
DE3788346T2 DE3788346T DE3788346T DE3788346T2 DE 3788346 T2 DE3788346 T2 DE 3788346T2 DE 3788346 T DE3788346 T DE 3788346T DE 3788346 T DE3788346 T DE 3788346T DE 3788346 T2 DE3788346 T2 DE 3788346T2
Authority
DE
Germany
Prior art keywords
input
processor
output
memory
task control
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.)
Expired - Fee Related
Application number
DE3788346T
Other languages
English (en)
Other versions
DE3788346D1 (de
Inventor
David Missimer
Philip Murphy
Richard Peacock
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.)
Unisys Corp
Original Assignee
Unisys 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
Priority claimed from US06/926,568 external-priority patent/US5764922A/en
Application filed by Unisys Corp filed Critical Unisys Corp
Publication of DE3788346D1 publication Critical patent/DE3788346D1/de
Application granted granted Critical
Publication of DE3788346T2 publication Critical patent/DE3788346T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Multi Processors (AREA)

Description

    Gebiet der Erfindung
  • Diese Erfindung betrifft ein Eingabe-/Ausgabe-System für ein sehr großes Rechnersystem und insbesondere ein solches E/A-System, bei dem die E/A-Softwarefunktionen in dem E/A-Hardwaresystem implementiert sind.
  • Beschreibung des Standes der Technik
  • Ein für den Mehrprogrammbetrieb ausgelegtes, sehr großes Multiprozeß- System oder sehr großes Einzelprozeßsystem benötigt bei seinen verschiedenen Berechnungen große Mengen von Daten, die bereitgehalten werden in einer Hierarchie von Speichereinheiten, die vom Hauptspeicher über Massenspeichergeräte wie Disk-Laufwerke bis zu peripheren Geräten wie Bandlaufwerken und ähnlichem reichen. Das System ist ausgestattet mit E/A-Controllern, welche die Datenübertragung von den peripheren Geräten zu den Disk-Speichern und von den peripheren Geräten und den Disk-Speichern zum Hauptspeicher steuern. In solchen bekannten Systemen werden jedoch die Zentralprozessoren benötigt, um die E/A-Befehle zu dekodieren und die entsprechenden Steuersignale an die E/A-Controller zu senden, und dies beansprucht einen übermäßigen Betrag der Rechenzeit des Prozessors. Beispiele für solche bekannten Controller sind offenbart in der US-A-3,432,813 und der US-A-3,447, 138.
  • Es wurden Versuche unternommen, den Zentralprozessor von diesen E/A- Ausführungen zu befreien, so daß der Zentralprozessor den Benutzer- Jobs mehr Zeit zur Verfügung stellen kann, und zwar durch Hinzufügen eines Mehrzweckprozessors zum unabhängigen Betrieb bei der Steuerung von Eingabe-/Ausgabe-Daten-Übertragungen.
  • Aus der WO87/02486, die Stand der Technik im Sinne von Art. 54(3) EPÜ ist, ist ein Verarbeitungssystem bekannt, das mehrere Zentralprozessoren, mehrere Speichermodule, einen Task-Steuerprozessor und einen Eingabe-/Ausgabe-Prozessor aufweist. Die Speichermodule sind über einen Speicher-Controller an die Zentralprozessoren, den Eingabe-/Ausgabe- Prozessor und den Task-Steuerprozessor angeschlossen. Der Task-Steuerprozessor ist zur Aufrechterhaltung einer Warteschlange von fertigen oder verfügbaren Prozessoren vorgesehen, die entsprechend einer mehreren Zentralprozessoren zugewiesenen Priorität miteinander verbunden sind, wobei die Prozessoren der Task mit der höchsten Priorität zugewiesen werden können, wenn der Prozessor nicht mit dem Ausführen einer Task höherer Priorität beschäftigt ist. Der Task-Steuerprozessor beeinhaltet weiterhin einen Mechanismus zum Berechnen von Task-Prioritäten, wenn neue Tasks in die Warteschlange eingefügt oder entfernt werden.
  • Die EP-A2-0 049 521, die den nächstkommenden Stand der Technik beschreibt, von dem die Erfindung ausgeht, betrifft ein Informationsverarbeitungssystem, in welchem ein Betriebssystem-Prozessor zum zentralen Verwalten von Ressourcen, Job-Prozessoren zum Ausführen von Prozessen, Eingabe-/Ausgabe-Prozessoren, ein Dateiprozessor zum Ausführen von Eingabe-/Ausgabe-Prozessen in ein Dateisystem und ein Hauptspeicher durch einen gemeinsamen Bus miteinander verbunden sind. Der Betriebssystem-Prozessor empfängt eine Ressourcen-Anforderung von den Job-Prozessoren, um die Zuweisung von Ressourcen zu den Job-Prozessoren durch Einbeziehen einer Ressourcen-Verwaltungstabelle, einer Prozessor-Verwaltungstabelle und Wartetabellen zu verwalten. Dieses bekannte System ist vorgesehen zum Verwalten von Ressourcen und möglichen Konflikten. Jeder Prozessor bleibt noch verantwortlich für das Handhaben von Eingabe-/Ausgabe-Operationen und wird lediglich in einen Wartezustand versetzt, wenn ein Konflikt mit einem anderen Prozessor auftritt.
  • Aus dem Buch von C.J. Theaker et. al "A Practical Course On Operating Systems", Macmillan, Basingstoke, Großbritannien, 1983, ist es bekannt, einen Prozeß in einen Wartestatus zu versetzen, wenn er eine E/A-Anforderung abgibt, um ein Ablaufen eines anderen Prozesses zu gestatten, während die E/A-Anforderung erfüllt wird.
  • Es muß jedoch eine Kommunikation zwischen den zwei Prozessoren geben, um sicherzustellen, daß die durch den Haupt-Zentralprozessor angeforderten Daten in seinem Hauptspeicher empfangen werden, bevor der Zentralprozessor diese Daten verwendet.
  • Eingabe-/Ausgabe-Operationen beinhalten mehr als nur Datenübertragungen zwischen der Peripherie und dem Hauptspeicher. Z.B. muß das E/A- System solche Nicht-Datenübertragungs-Operationen wie Zurückspulen von Bandrollen u.ä. steuern.
  • Weiterhin sind in sehr großen Datenverarbeitungssystemen eine Anzahl verschiedener Busse und Peripherie-Controller vorhanden, die ausgewählt werden können, um den Durchsatz von der Peripherie zum Hauptspeicher und umgekehrt zu optimieren. Zusätzlich ist, insbesondere in bezug auf Disk-Laufwerke, ein Cache-Speicher vorgesehen, um in diesem Cache die zuletzt verwendeten Datensegmente abzulegen, auf welche wahrscheinlich in Kürze wieder zugegriffen wird. Diese Disk-funktionen werden jedoch von einem Betriebssystem gehandhabt, welches auf einem Zentralprozessor läuft und von dem Prozessor fordert, zusätzliche Zeit zur Verfügung zu stellen, die in dem Ablauf von Bedienerjobs oder Tasks verwendet werden könnte.
  • Statistische Studien zeigen, daß ein Hauptteil der Zeit jedes Prozessors in einem Mehrprozeßsystem zum Ausführen von Betriebssystemfunktionen verwendet wird. Aus diesen Studien geht hervor, daß der Aufwand für solche Verwaltungsfunktionen irgendwo zwischen 10% und 50% und gelegentlich sogar höher liegt. Weiterhin wird ein beträchtlicher Teil der Zeit, während der der entsprechende Zentralprozessor Betriebssystemfunktionen ausführt, zum festlegen der Prozeßpriorität, Ausführen von Funktionen nach Ereignissen (Definition folgt) und Auslösen von Eingabe-/Ausgabe-Operationen verwendet. Wenn diese Funktionen aus den Betriebssystemen entfernt werden könnten, würde sich der Durchsatz des Datenverarbeitungssystems gründlich verbessern.
  • Abriß der Erfindung
  • Gemäß der Erfindung ist ein Verarbeitungssystem vorgesehen, mit einer Mehrzahl von Zentralprozessoren; einem Speicher zum Ablegen von Daten, welche eine Mehrzahl von Prozessen, die durch die Zentralprozessoren auszuführen sind, repräsentieren; einem Task-Steuerprozessor, der für das Einordnen von Prozessen zur Ausführung durch die Zentralprozessoren vorgesehen ist, wobei der Task-Steuerprozessor ebenfalls den Status der wartenden Prozesse überwacht; einem Eingabe-/Ausgabe- Prozessor, der an die Zentralprozessoren und an den Task-Steuerprozessor angeschlossen ist; und einer Mehrzahl von Geräten, angeschlossen an den Eingabe-/Ausgabe-Prozessor; dadurch gekennzeichnet, daß der Task-Steuerprozessor Prozeß-Tabellen-Mittel, welchen Prozesse zur Ausführung durch die Zentralprozessoren auf einer Prioritätsbasis zugeordnet werden, und Ereignis-Tabellen-Mittel zum Zuweisen eines Eingabe-/Ausgabe-Ereignis-Kennzeichens, welches eine Eingabe-/Ausgabe-Operation auslöst, zu einem ausgeführten Prozeß, beinhaltet; die Zentralprozessoren derart arbeiten, daß, wenn ein auf einem Zentralprozessor ablaufender Ausführungsprozeß auf eine E/A-Operation trifft, dem Task-Steuerprozessor signalisiert wird, dem entsprechenden Ausführungsprozeß ein Eingabe-/Ausgabe-Ereignis-Kennzeichen zuzuweisen, ein korrespondierender Eingabe-/Ausgabe-Steuerblock (IOCB) in dem Speicher erzeugt wird, ein Eingabe-/Ausgabe-Befehl an den Eingabe-/ Ausgabe-Prozessor gesendet wird, wobei der Eingabe-/Ausgabe-Befehl den korrespondierenden ausgeführten Prozeß, die auszuführende Operation, die Identität eines Gerätes und einen Eingabe-/Ausgabe-Steuerblock (IOCB) in dem Speicher anzeigt, und der entsprechende Zentralprozessor vom Abarbeiten des Ausführungsprozesses entlastet wird, so daß er für Zuweisungen durch den Task-Steuerprozessor verfügbar ist, um den Prozeß mit der nächst-höchsten Priorität auszuführen; der Eingabe-/Ausgabe-Prozessor auf einen an ihn gesendeten Eingabe-/Ausgabe-Befehl anspricht, um auf den entsprechenden Eingabe-/Ausgabe-Steuerblock (IOCB) in dem Speicher zuzugreifen, um ihn zur Ausführung der angezeigten Operation auf dem bezeichneten Gerät zu verwenden, wonach der Eingabe-/Ausgabe-Prozessor dem Task-Prozessor die Beendigung der Eingabe-/Ausgabe-Operation signalisiert; und der Task-Steuerprozessor auf die Beendigung der Eingabe-/Ausgabe-Operation durch den Eingabe-/Ausgabe-Prozessor anspricht, um das entsprechende Eingabe-/Ausgabe-Ereignis-Kennzeichen zu aktualisieren, um diese Beendigung anzuzeigen und dadurch den Task-Steuerprozessor zu veranlassen, den entsprechenden Warteprozeß in den Prozeß-Tabellen-Mitteln für eine weitere Ausführung durch einen verfügbar werdenden Zentralprozessor neu einzuordnen.
  • Weitere vorteilhafte Ausführungsformen der Erfindung sind in den Unteransprüchen 2 bis 6 beschrieben.
  • Kurzbeschreibung der Zeichnungen
  • Die obigen und andere Aufgaben, Vorteile und Merkmale der vorliegenden Erfindung werden leichter erkennbar durch eine Zusammenschau der folgenden Beschreibung in Verbindung mit den Zeichnungen, wobei:
  • Fig. 1 ein Blockschaltbild eines Systems ist, welches die vorliegende Erfindung verwendet;
  • Fig. 2 ein Blockschaltbild des Eingabe-/Ausgabe-Systems der vorliegenden Erfindung ist;
  • Fig. 3 ein Diagramm der Beziehungen zwischen den verschiedenen Tabellen ist, die durch die vorliegende Erfindung verwendet werden, wobei die Tabellen sich in dem E/A-Prozessor, Hauptspeicher und in Anschlußadaptern befinden;
  • Fig. 4 eine schematische Darstellung des E/A-Prozessors aus Fig. 2 ist;
  • Fig. 5A-D andere Tabellen im Speicher, die durch die vorliegende Erfindung verwendet werden, und die Beziehungen zwischen diesen darstellen;
  • Fig. 6 eine schematische Darstellung des Task-Steuerprozessors aus Fig. 2 ist; und
  • Fig. 7 eine Darstellung eines Teils eines Disk-Laufwerkes ist, das in der vorliegenden Erfindung verwendet wird.
  • Allgemeine Beschreibung der bevorzugten Ausführungsform
  • Ein System, das die vorliegende Erfindung verwendet, ist in Fig. 1 dargestellt. Wie dort gezeigt, ist dieses System ein sehr großes Multiprozeßsystem mit einer Vielzahl von Zentralprozessoren 10, welche mit einer anderen Vielzahl von Hauptspeichermodulen 12 über einen Speichercontroller 11 verbunden sind, welcher es jedem Prozessor gestatten, jedes Speichermodul anzusprechen.
  • Die vorliegende Erfindung liegt ganz speziell in dem E/A-System 13, welches die gesamte Kommunikation und Datenübertragung zwischen peripheren Einheiten 15 und den Hauptspeichermodulen 12 steuert. Wie weiterhin erläutert wird, kann E/A 13 ebenfalls mit entsprechenden Zentralprozessoren 10 über den Speichercontroller 11 kommunizieren. Es ist zur Fig. 1 anzumerken, daß eine Vielzahl von Controllern 14 zwischen den entsprechenden peripheren Einheiten 15 und dem E/A-System 13 über eine Mehrzahl unterschiedlicher Busse 13a gekoppelt ist. Das bedeutet, daß auf eine vorgegebene periphere Einheit 15 durch das E/A- System 13 über alternative Kombinationen von Bussen 13a und Controllern 14 zugegriffen werden kann. Die peripheren Einheiten 15 können jede Art von peripherem Gerät oder Speicher einschließlich großer Disk-Laufwerke beinhalten, in welchen das Betriebssystem des Datenverarbeitungssystems aus Fig. 1 und kritische Benutzerdaten abgelegt sind.
  • Das E/A-System 13 aus Fig. 1 ist im einzelnen in Fig. 2 gezeigt und beinhaltet eine Anzahl unterschiedlicher Einheiten, die mittels Speicher-Interface-Controller 20 mit dem Speichercontroller 11 aus Fig. 1 verbunden sind. Wie in Fig. 2 gezeigt, beinhaltet das E/A-System 13 einen Task-Steuerprozessor 21, welcher den gesamten Prozeßablauf der entsprechenden Zentralprozessoren 10 aus Fig. 1 handhabt und ebenfalls die verschiedenen Ereignisse überwacht, auf welche verschiedene Prozesse warten können. Der E/A-Prozessor 22 ist das Herz der vorliegenden Erfindung und führt alle Funktionen aus, auf die sich das Vorstehende bezog und wird nachfolgend eingehender beschrieben. Die Daten- Übertragungseinheit 23 wird verwendet, um Daten zwischen verschiedenen Bereichen des Speichers und anderen Bereichen des Speichers zu verschieben und ist insbesondere nützlich in dem Disk-Cache-Mechanismus der vorliegenden Erfindung. Die Anschlußadapter 24 sind im wesentlichen Bus-Treiber für die entsprechenden Busse 13a aus Fig. 1, obwohl sie unterschiedliche Protokolle verwenden können. Die Unterbrechungs- Timer-Steuerung 25 verteilt Interrupts an die verschiedenen Busse und weist einen Warteschlangen-Verriegelungsmechanismus auf, durch welchen es garantiert ist, daß gemeinsam benutzte Warteschlangen (PQ, BQ) nicht durch mehrfache, simultane Zugriffe verfälscht werden. Der Task- Steuerprozessor 21 ist detailliert in der WO87/02486 beschrieben.
  • Wie vorstehend gezeigt, ist die Funktion der vorliegenden Erfindung, das Betriebssystem und den entsprechenden Zentralprozessor 10, welcher solche Betriebssysteme ausführt, von allen E/A-Operationen zu entlasten, so daß der Zentralprozessor 10 mehr Zeit zum Ausführen von Bedienerjobs hat. Wenn ein vorgegebener Zentralprozessor 10 einen Prozeß aus einem der Speichermodule 12 ausführt und auf eine E/A-Operation trifft, wird der entsprechende E/A-Steuerblock erzeugt und der E/A- Befehl an das E/A-System 13 durch den Speicher-Controller 11 gesendet, und der Prozessor 10 ist freigegeben, um mit der Ausführung des nächst-höchsten Befehlsprozesses von einem der Speichermodule 12 zu beginnen. Wenn die E/A-Operation beendet ist, wird der anfordernde Prozeß in einer Prioritätsliste von Prozessen wieder eingeordnet zum weiteren Ausführen durch den nächsten verfügbaren Zentralprozessor 10.
  • Vor der Beschreibung von Details des E/A-Prozessors 22 aus Fig. 2 wird zuerst eine Beschreibung der Datenstruktur-Verbindungen oder Verbindungen zwischen den Tabellen gegeben, die den durch den E/A-Prozessor verwendet werden und in Fig. 3 dargestellt sind. Der E/A-Startbefehl oder das ASYNC-SCHEDULE-Kommando wird empfangen durch Eingangs-Mitteilungspuffer 30 in den Fig. 3 und 4. In Fig. 3 ist lediglich ein solches Kommando, welches aus vier Worten besteht. Das erste Wort enthält ein Operationskommando und weiterhin einen Hinweis auf den auslösenden Prozeß, welcher in dem System der vorliegenden Erfindung und in der WO87/02486 auch als Stack bezeichnet wird. Das zweite Wort der Mitteilung oder des Befehls beinhaltet eine Gerätenummer, welche ein Gerät kennzeichnet, das bei der E/A-Operation verwendet werden soll. Das dritte Wort beinhaltet eine Referenz zu einem E/A-Steuerblock (IOCB), welcher durch den Zentralprozessor erzeugt und in dem Hauptspeicher abgelegt wird, wie nachfolgend eingehender beschrieben wird. Das vierte Wort beinhaltet die Zeit der Kommando-Auslösung.
  • Der E/A-Prozessor nimmt dann die Gerätenummer, welche die Gerätetabelle 45 in den Spuren 3 und 4 anspricht, die einen Eintrag für jedes Gerät in dem System enthält, wobei der Eintrag den aktuellen Status des Gerätes beinhaltet und, wenn das Gerät nicht verfügbar oder nicht in einem freien Zustand ist, wird der Geräte-Steuerblock in einer Geräte-Warteschlange im Hauptspeicher abgelegt, bis das Gerät frei ist. Bei Verwendung in der vorliegenden Anmeldung wird der Begriff "Gerät" entweder mit der Bedeutung eines Busses 13a aus Fig. 1, eines Controllers 14 aus Fig. 1 oder einer peripheren Einheit 15 gebraucht. Wenn das Gerät frei ist, erhält man eine Referenz auf eine Pfadgruppen-Tabelle 46 in den Fig. 3 und 4, welche bestimmt, welche Controller und zugeordnete Busse zum Zugriff auf das Gerät verwendet werden können, welches normalerweise eine periphere Einheit ist. In Fig. 3 zeigt der Eintrag in der Pfadgruppen-Tabelle 46, daß drei Controller benutzt werden können. Controller, die eine Einheit unterstützen, haben gleiche Priorität und der IOP versucht, die bei jedem Controller feststellbare Belastung durch seinen Pfad-Selektions-Algorithmus gut auszugleichen. Busse, die einen Controller unterstützen, sind in dem Pfadgruppen-Eintrag für den Controller in der Reihenfolge ihrer Priorität gelistet. Sobald die Bus- und Controller-Kombination für ein vorgegebenes Gerät (gewöhnlich eine Einheit) bestimmt ist, wird Bezug genommen auf die Unterbrechungs-Übersetzungstabelle 25a der Unterbrechungs-Timer-Steuerungseinheit 25 aus Fig. 2. Die korrekte Pfad-Warteschlange wird mittels ITC verriegelt. Der Steuerblock wird in die Pfad-Warteschlange eingereiht. Die Pfad-Warteschlange wird entriegelt, und der E/A-Bus wird wiederum mittels ITC unterbrochen.
  • Wenn das Gerät ausgewählt wurde, wird Rückbezug genommen auf die indirekte Referenz-Warteschlange für diese Einheit im Speicher und der Inhalt der Einheiten-Warteschlange 60 aus Fig. 3 zeigt gerade die indirekte Referenz oder den Q-Header. Dies wiederum erlaubt dem E/A-Prozessor, aus dem Hauptspeicher die zugehörigen Steuerblöcke zu holen, welche zu dem E/A-Prozessor geleitet werden und welche nicht sofort ausgeführt werden können. Ähnlich wird, nachdem die Pfadgruppe gewählt wurde, Bezug genommen auf die Pfad-Warteschlange 62, welche wiederum einen Q-Header enthält, der auf die Steuerblöcke für den gewählten Bus oder Controller zeigt. Diese Steuerblöcke oder Teile von ihnen werden zu dem ausgewählten Controller geleitet und so weiter, bis die E/A- Operation abgeschlossen ist, wobei sie in diesem Fall zurück zum Speicher geführt werden. Wenn die E/A-Operation beendet ist, werden die Steuerblöcke zurück zum Hauptspeicher geleitet, und der Task- Steuerprozessor 21 aus Fig. 2 ordnet den anfordernden Prozeß wieder ein.
  • Detaillierte Beschreibung der bevorzugten Ausführungsform
  • Ein Blockdiagramm des E/A-Prozessors der vorliegenden Erfindung ist in Fig. 4 dargestellt. Dabei ist anzumerken, daß dieser Prozessor durch drei verschiedene Steuersequenzer oder Steuerspeicher 31, 41 und 51 gesteuert wird, deren Zweck das Steuern verschiedener Teile des E/A- Prozessors in parallel er Weise ist. Durch diese Vorteile kann der E/A- Prozessor aus Fig. 4 ein Mitteilungs-Bestätigungssignal an einen anfordernden Zentralprozessor aus Fig. 1 senden, bevor die Verarbeitung der Mitteilung tatsächlich begonnen hat, und dieses beschleunigt die Freigabe des anfordernden Zentralprozessors, so daß er anderen Bediener-Tasks zugewiesen werden kann.
  • Der Speicher-Steuersequenzer 51 steuert den Haupteingangs-Bus oder Speicher-Lese-Bus, durch welchen Mitteilungen zu einem Mitteilungs- und Eingangsdaten-Puffer 30 mittels Leseregister 30a und 30b übertragen werden. Zusätzlich steuert der primäre Steuersequenzer 31 die arithmetische Haupt-Logikeinheit 33, welche verwendet wird, um die Geräte-, Einheiten- oder andere Adressen entsprechend dem speziell implementierten Kommando zu berechnen. Eingaben in eine ALU 33 erfolgen über ein B-Register 34 und einen Akkumulator 35, welcher wiederum versorgt wird durch einen Multiplexer 36 und einen Multiplexer und Dreher 37. Der Ausgang der ALU 33 wird verwendet zum Aktualisieren der Ergebnisse im lokalen Speicher, zum Aktualisieren des Drehers zur Feldmanipulation, zum Treiben des Unterbrechungs-Interface und zum Senden von Parametern zu dem Hilfs-Steuersequenzer über sein B-Register. Das Ausgangssignal der ALU 33 wird gesendet zum Multiplexer und Dreher 37 und von dort zum Akkumulator 35 entweder zur weiteren Manipulation oder zur Übertragung an ein Unterbrechungs-Interface 39 oder zum Sichern der Ergebnisse im lokalen Speicher mittels eines Multiplexers 38. Der Multiplexer 38 kann ebenfalls Informationen vom B-Register 34 empfangen, wenn diese Information an ein Unterbrechungs-Interface 39 gesendet wird.
  • Gemäß Fig. 2 sind die verschiedenen Einheiten verbunden durch zwei Busse, nämlich einen Speicher-Interface-Controllerbus MIC, welcher mittels des Speichercontrollers 11 aus Fig. 1 mit dem Hauptspeicher kommuniziert, und einen Unterbrechungs-Timer-Steuerbus ITC, welcher neben anderen Dingen mit dem Anschlußadapter 24 und der Unterbrechungs-Timer-Steuerungseinheit 25 kommuniziert. In Fig. 4 kommuniziert der E/A-Prozessor mit dem MIC-Bus mittels des Speicher-Lesebusses und des Mitteilungs- und Eingangsdaten-Puffers 30 und ebenfalls mit dem Speicher-Schreibbus mittels des Speicher-Ausgangsregisters 56. Der E/A-Prozessor aus Fig. 4 kommuniziert mit dem Unterbrechungs-Timer- Steuerbus ITC mittels des Unterbrechungs-Interface 39.
  • Gemäß Fig. 4 ist der dort gezeigte E/A-Prozessor versehen mit einer arithmetischen Hilfs-Logikeinheit 43 und zugehörigen Eingabe- und Ausgaberegistern und Multiplexern zum Übertragen bestimmter Tasks durch einen primären Steuer-Sequenzer oder Steuerspeicher 31 an eine Hilfs- ALU 43 und zugeordnete Register, welche der Steuerung eines Hilfs- Steuersequenzers oder Steuerspeichers 41 (nicht bezeichnet) unterliegen. Um Tasks vom primären Steuerspeicher 31 zum Hilfs-Steuerspeicher 41 zu übertragen, spricht der primäre Steuerspeicher 31 den Hilfs-Steuerspeicher 41 durch Einfügen von Operations-Codes und zugehörigen Parametern in freie Bereiche des Pfadgruppen-Tabellenspeichers und Setzen des Hilfs-Sequenzer-Interrupts an. Wenn der Hilfs-Sequenzer die angeforderte Funktion beendet hat, schreibt er seine Ergebnisse in einen freien Bereich des Pfad-Gruppentabellen-Speichers und setzt den Hilfs-Sequenzer-Interrupt zurück. Der primäre Sequenzer liest dann die Ergebnisse direkt. Der Hilfs-Steuerspeicher 41 und die zugeordnete Logik wird verwendet, um die Task des Bestimmens des Status' eines in der Gerätetabelle 45 gespeicherten, ausgewählten Gerätes und das Belegen des zugehörigen Bus-Controllerpaares, wie es durch das Adressieren der Pfad-Gruppentabelle 46 ausgewählt ist, auszuführen. Er wird ebenfalls verwendet bei den zum Disk-Caching erforderlichen arithmetischen Berechnungen.
  • Die bisher beschriebenen Mechanismen des E/A-Prozessors aus Fig. 4 haben sich primär mit der Handhabung und Quittierung eines Start-E/A- Befehls oder insbesondere einem ASYNC-SCHEDULE-Befehl und der Auswahl des zugehörigen Gerätes oder der Einheit und entsprechender Bus-Controller-Kombinationen zum nachfolgenden Übertragen eines E/A-Steuerblockes vom Hauptspeicher zu dem gewählten Controller und Anschlußadapter, welcher den Bus treibt, befaßt.
  • Zum Handhaben von Informationsübertragungen vom E/A-Prozessor aus Fig. 4 ist ein Speicher-Steuersequenzer oder Steuerspeicher 51 zum mit dem primären Steuerspeicher 31 gleichzeitigen, aber synchronisierten Steuern der Übertragung vorgesehen, da beide Steuerspeicher 31 und 51 auf einen lokalen Speicher 52 zugreifen. Diese Synchronisation wird ausgeführt durch zwei separate, gemeinsam genutzte Hardware-Warteschlangenstrukturen in dem lokalen Speicher 52. Der lokale Speicher ist ausgebildet zum Betrieb mit der doppelten Frequenz der umgebenden Logik, so daß während jedes Maschinenzyklus der Speicher-Steuersequenzer eine vorgegebene Stelle lesen kann und der primäre Steuersequenzer an einer vorgegebenen Stelle entweder lesen oder schreiben kann. Der PCS erzeugt Anforderungen des MCS durch Schreiben von Einträgen in die Warteschlangenbereiche (hole Q oder speichere/MSG Q). Der MCS bedient die Anforderungen durch Lesen der Warteschlangen und Zugriff auf die Daten im LM.
  • In Fig. 4 wird eine Daten- und Informationsübertragung von den Anschluß-Adaptern und anderen Einheiten aus Fig. 2 vom Unterbrechungs- Interface 39 über den lokalen Speicher 52 empfangen, welcher eine Vielzahl von Aufgaben unterstützt. Die Informationsübertragung zum Hauptspeicher erfolgt über einen Multiplexer 53, ein Stufenregister 54, eine Befehlsmodifikationseinheit 55 und ein Speicherausgangsregister 56. Die durch die Befehlsmodifizierungseinheit 55 erzeugten modifizierten Kommandos werden dann über eine Befehlsaktualisierungs- Funktionseinheit 57 zurückgegeben.
  • Vorstehend wurde Bezug genommen auf das Speichern von Geräte-Steuerblock-Mitteilungen in einer Warteschlange im Speicher, wenn das angeforderte Gerät nicht frei oder auf andere Weise nicht verfügbar ist, um Header einzureihen und um Blöcke (I/OCB) beim E/A zu steuern. Dies wird nun eingehender beschrieben in bezug auf die Fig. 5A-D. Diese verschiedenen Informationsstrukturen repräsentieren Strukturen, die in einem Teil des Hauptspeichers abgelegt sind, der als ein E/A-Arbeitsbereich abgetrennt ist, welcher für das System der vorliegenden Erfindung reserviert ist.
  • Fig. 5A ist ein Diagramm einer Tabelle im Hauptspeicher der Geräteabschnitte, und zwar einer für jedes Gerät in dem System, in der, wie oben erwähnt, das Gerät einer der E/A-Busse 13a aus Fig. 1 (oder insbesondere ein Bus des Anschlußadapters 24 aus Fig. 2, welcher die korrespondierenden Busse treibt), einer der Controller 14 aus Fig. 1, oder eine der peripheren Einheiten 15 aus Fig. 1 sein kann. Wie in Fig. 5A gezeigt, können bis zu 128 E/A-Busse, bis zu 512 (abzüglich der Anzahl der E/A-Busse) Controller, mit den verbleibenden Geräten als peripheren Einheiten bis zu 4096 abzüglich der Anzahl von E/A-Bussen und Controllern vorhanden sein.
  • Jede Gerätesektion beinhaltet zwei Warteschlangen-Header, welche, wie nachfolgend eingehender beschrieben wird, Zeiger oder Speicheradressen zu unterschiedlichen E/A-Steuerblöcken (IOCB) beinhalten, von denen ein solcher Block für jede augenblicklich durch ein Gerät des Systems ausgeführte Operation vorhanden ist. Eine Ausnahme davon ist, daß die Einheiten-Gerätesektionen lediglich einen solchen Warteschlangen-Header beinhalten, während der andere Teil der Sektion als Arbeitsspeicher verwendet wird.
  • Das allgemeine Format jedes Warteschlangen-Headers ist dargestellt in Fig. 5B und das Format des Einheiten-Arbeitsspeichers ist dargestellt in Fig. 5C. In Fig. 5B besteht der Warteschlangen-Header aus vier Steuerworten. Das erste Wort beinhaltet Steuer- und Status-Informationen. Das zweite Wort ist ein Zeiger auf den oder eine Adresse im Hauptspeicher am Beginn des ersten E/A-Steuerblocks für dieses spezielle Gerät. Das dritte Wort ist ein Zeiger auf den oder eine Adresse im Hauptspeicher des letzten oder jüngsten E/A-Steuerblocks, so daß diese beiden Zeiger den Beginn und das Ende einer bestimmten Schlange von miteinander verbundenen Steuerblöcken für unterschiedliche Jobs oder Tasks anzeigen, die von dem fraglichen Gerät angefordert wurden. Dies wird noch eingehender beschrieben in bezug auf die Fig. 5D.
  • Die Beschreibung von Fig. 5A abschließend, beinhalten die E/A-Bus-Gerätebereiche einen Bus-Warteschlangen-Header, in welchem Operatoren zum Steuern des entsprechenden E/A-Busses aufgelistet sind. Diese Gerätebereiche beinhalten ebenfalls einen Warteschlangen-Header zum Steuern der Übertragung der Ergebnisse des Gerätebetriebes über den entsprechenden Anschlußadapter. Jeder der Controller-Geräteabschnitte beinhaltet einen Pfad-Warteschlangen-Header, um den entsprechenden Steuerblock zu dem betreffenden Controller zu leiten, der in der zuvor beschriebenen Bus-Steuerkombination und einem Einheiten-Warteschlangen-Header ausgewählt wurde, welcher auf die Steuerblöcke zeigt, die für den Controller selbst angelegt sind. Solche Pfad-Warteschlangen- Header und Einheiten-Warteschlangen-Header wurden oben in bezug zu Fig. 3 beschrieben.
  • Gemäß Fig. 5D werden jetzt die Warteschlangen-Mechanismen der vorliegenden Erfindung zum Verbinden der Steuerblöcke für unterschiedliche Jobs oder Tasks, die von dem speziellen Gerät angefordert werden, beschrieben. Wie oben gezeigt, sind die meisten Anforderungen für Geräte Anforderungen für periphere Einheiten 15 aus Fig. 1, und dort existiert ein E/A-Steuerblock für jeden Job oder Task, der von dem entsprechenden Gerät angefordert wurde.
  • Wenn eine Eingangsmitteilung in den Eingangs-Mitteilungspuffer 30 der Fig. 3 und 4 kommt, legt diese die Gerätenummer und weiterhin eine Referenz- oder Speicheradresse für den speziellen Steuerblock für den auf dem Gerät auszuführenden Job fest. Wenn das Gerät frei ist, wird der Steuerblock geholt; die Pfad-Selektion wird ausgeführt; der IOCB wird mit dem selektierten Controller-Pfad verbunden; der diesen Controller bedienende E/A-Bus wird über den bereits beschriebenen ITC- Mechanismus unterbrochen. Wenn das Gerät nicht verfügbar ist, wird die Steuerblock-Referenz als Ende-Zeiger eingefügt in den speziellen Geräte-Warteschlangen-Header, wie in Fig. 5D gezeigt ist. Sie wird ebenfalls eingefügt als der Anfangszeiger, wenn die Einheiten-Warteschlange vorher leer war. Ein Feld in dem Einheiten-Warteschlange-Steuerwort zeigt an, daß das Gerät frei ist. Wenn zusätzliche, spezielle Anforderungen für das Gerät eintreffen, wird die zweite angeforderte Steuerblock-Adresse als die nächste Verbindungs-Speicheradresse in den Kopf- E/A-Steuerblock und ebenfalls in den Ende-Zeiger des speziellen Geräte-Warteschlangen-Headers eingefügt, wie in Fig. 5D dargestellt ist. Auf diese Weise können viele Anforderungen für ein spezielles Gerät mit dem Warteschlangen-Mechanismus der vorliegenden Erfindung in eine Warteschlange eingereiht werden.
  • Manchmal werden die verschiedenen E/A-Steuerblöcke wie die in Fig. 5D gezeigten durch den E/A-Prozessor aus Fig. 4 verwendet, um Kommandos zu den verschiedenen Geräten zu übermitteln, um im wesentlichen ein Umschalten der Geräte zu bewirken. Es ist anzumerken, daß ein Gerät in einem von vier Zuständen sein kann: frei, gesichert, fertig oder ausgesetzt. Beispiele von Geräte-Verwaltungsprozeduren, implementiert durch den Prozessor in Fig. 4, beinhalten: ERFASSEN, welche, wenn erfolgreich, ein Gerät von einem freien Zustand in einen gesicherten Zustand umschaltet; FERTIG, welche, wenn erfolgreich, ein Gerät von "gesichert" nach "fertig" umschaltet; AUSSETZEN, welche, wenn erfolgreich, ein Gerät von "fertig" nach "ausgesetzt" umschaltet; SICHERN, welche, wenn erfolgreich, ein Gerät von "fertig" nach "gesichert" umschaltet; FREI, welche, wenn erfolgreich, ein Gerät von einem gesicherten Zustand in einen freien Zustand umschaltet. Diese Prozeduren können aus verschiedenen Gründen mit einem Fehler zu dem Betriebssystem zurückkehren, einschließlich dem, daß das ausgewählte Gerät nicht in dem korrekten Anfangszustand war. Der Zustand eines jeden Gerätes wird festgehalten in der Gerätetabelle 45 aus Fig. 4 innerhalb der IOP.
  • Gemäß Fig. 5C werden nun bestimmte Funktionen, die durch die Mechanismen der vorliegenden Erfindung, soweit bisher offenbart, ausgeführt werden können, beschrieben. Eines dieser Merkmale ist das des Disk- Spiegelns, welches eine Technik ist, bei der mehr als eine Kopie von kritischen Daten auf separaten Disk-Geräten gehalten wird, so daß selbst im falle eines schweren Disk-Fehlers das System weiterlaufen wird. Der E/A-Prozessor aus Fig. 4 unterstützt das Disk-Spiegeln auf zwei Hauptarten. Erstens, bei einem Disk-Lesen aus einem gespiegelten Satz selektiert er die beste Einheit aus dem gespiegelten Satz, an welchen die Anforderung gegeben wird. Die wichtigsten Komponenten der Verzögerung beim Ausführen eines Disk-Zugriffs sind: Suchzeit - das ist die Zeit, während der sich der Disk-Arm zum richtigen Zylinder oder zur richtigen Spur bewegt; Rotations-Wartezeit - das ist die Zeit, nach dem die Suche ausgeführt ist, aber bevor die Daten sich tatsächlich unter dem Lesekopf- der Disk befinden; und Datenübertragung
  • - das ist die zum Extrahieren der angeforderten Daten von dem Medium erforderliche Zeit. Für die Leser, die nicht mit den Disk-Mechanismen vertraut sind, ist ein Abschnitt einer solchen Disk 59 in Fig. 7 dargestellt und zeigt die einzelnen Spuren A, B, C . . . . Der Prozessor aus Fig. 4 versucht die Suchzeit zum Auswählen einer Leseeinheit aus dem gespiegelten Satz zu minimieren. Die zweite Art, in der der E/A-Prozessor das Disk-Spiegeln unterstützt, ist der des Disk-Schreibens; der Prozessor synchronisiert alle individuellen Disk-Schreibzugriffe und bildet einen einzelnen logischen Schreibzugriff, faßt Zeiten und Ergebnisse in einem zusammen und sendet lediglich eine Antwort zurück an den auslösenden Benutzer. Hier schließlich werden das zweite und dritte Wort des Einheits-Arbeitsspeichers aus Fig. 5C verwendet.
  • Ein weiteres durch die Mechanismen der vorliegenden Erfindung implementiertes Merkmal ist das des Disk-Caching. Um die Zeit, die E/A-Prozesse beanspruchen, zu reduzieren, implementiert der Prozessor aus Fig. 4 einen Hardware-verwalteten Disk-Cache im Hauptspeicher. Die einzige Art von Peripherie, deren Performance kritisch zur Gesamt-Systemperformance ist, ist die Disk-Einheit, auf welcher das Betriebssystem, Benutzerdatenbanken und andere häufig benutzte Informationen abgelegt sind. Der Prozessor aus Fig. 4 belegt einen sehr großen Bereich des Systemspeichers, welchen er verwendet, um Kopien der augenblicklich benutzten Disk-Spuren zu halten, in der Hoffnung, daß weitere Zugriffe auf die gleiche Spur erfolgen - was häufiger vorkommt als daß es nicht der Fall ist. Der Vorteil dessen ist, daß verschiedene Zugriffsanforderungen auf eine bestimmte Spur auf der Disk die entsprechenden Busse und Controller, die zum Zugreifen auf die entsprechende Disk verwendet werden, über Gebühr beanspruchen. Weiterhin können E/A'n, welche den Disk-Cache betreffen, etwa dreimal schneller als die physikalischen Disk-Zugriffe ausgeführt werden. Hier schließlich wird das vierte Wort in dem Einheiten-Arbeitsspeicher aus Fig. 5C durch den Prozessor aus Fig. 4 verwendet.
  • Wie vorstehend in bezug auf Fig. 2 beschrieben, beinhaltet das E/A- System der vorliegenden Erfindung einen Task-Steuerprozessor 21, welcher alle Prozesse des Einordnens der entsprechenden Zentralprozessoren 10 aus Fig. 1 handhabt und ebenfalls verschiedene Ereignisse, aufgrund welcher verschiedene Prozesse warten könnten, einschließlich E/A-Operationen, überwacht. Damit ergibt sich eine besondere Kooperation zwischen E/A-Prozessor 22 aus Fig. 2 und dem Task-Steuerprozessor 21, da einige der Ereignisse, auf welche Bedienerprozesse warten könnten, E/A-Operationen beinhalten.
  • Ein Funktionsdiagramm des Task-Steuerprozessors 21 ist in Fig. 6 dargestellt. Die zwei wichtigsten Funktionselemente sind darin als Prozeßtabelle 61 und als Ereignistabelle 60a gezeigt. Die Prozeßtabelle 61 und eine Prozeß-Statistiktabelle 60b beinhalten die Informationen zum Status von allen Tasks oder Prozessen, die als auf dem System aus Fig. 1 ablaufend eingeordnet sind. In der beschriebenen Ausführungsform der vorliegenden Erfindung können 4 K solcher Tasks oder Prozesse auf dem System zum gleichen Zeitpunkt laufen.
  • Die Statusinformationen der Prozesse sind in der Prozeßtabelle 61 als Warteschlange oder als verbundene Liste von Prozessen entsprechend der Priorität der involvierten Prozesse angeordnet. Wie oben angegeben, ist ein solcher Task-Steuerprozessor detailliert beschrieben in der WO87/02486.
  • Wenn im verbleibenden Teil dieser Anmeldung die Begriffe "Task", "Prozeß" und "Stack" verwendet werden, dann werden sie als Synonyme gebraucht, wobei ein Stack eine natürliche, physikalische Stelle im Hauptspeicher ist und die entsprechenden Tasks oder Prozesse voneinander unabhängig sind und den korrespondierenden Stackplatz belegen. Somit werden die Begriffe "Stack-Nummer", "Task-Nummer" und "Prozeß- Nummer" synonym verwendet und sind die aktuellen Adressen der korrespondierenden Prozeß-Statusinformation in der Prozeßtabelle 61 aus Fig. 6.
  • Die Ereignistabelle 60a wird verwendet zum Aufnehmen von Informationen über den Status von verschiedenen Ereignis-Bezeichnungen (in der vorliegenden Erfindung - E/A-Operationen) die durch die auf dem System laufenden Bedienerprozesse aufgerufen werden. In der Ausführungsform von Fig. 6 können dort maximal 512 K solcher Ereignisse gleichzeitig verwendet werden. Wenn ein durch einen speziellen Prozessor 10 aus Fig. 1 ausgeführter Prozeß eine Ereignisbezeichnung anfordert, fordert er die Belegung solch einer Bezeichnung von dem Task-Steuerprozessor aus Fig. 6 an, welcher dann eine unbelegte Ereignisbezeichnung für den Prozeß belegt und einen Ereignisschlüssel sendet, der im Hauptspeicher an der Spitze des speziellen Stack, dessen Prozeß die Ereignisbezeichnung anforderte, plaziert wird. Die Ereignistabelle 60a aktualisiert dann die Ereignisinformationen, um anzuzeigen, daß das Ereignis belegt wurde. Der Ereignisschlüssel wird gebildet aus der Ereignisadresse in der Ereignistabelle 60a und weiteren speziell kodierten Bits, um sicherzustellen, daß einer der Prozessoren 10 aus Fig. 1 nicht zufällig seinen eigenen Ereignisschlüssel erzeugt. Die Ereignistabelle 60a wird ebenfalls verwendet, um eine verbundene Liste verschiedener Prozesse zu pflegen, die ein spezielles Ereignis anfordern, das bereits belegt ist und dieses Ereignis dem prioritätshöchsten Prozeß, der dieses Ereignis anfordert, zuordnet, wenn dieses Ereignis durch seinen belegenden Prozeß freigegeben ist.
  • Eine Ereignisbezeichnung beschreibt nicht die spezielle Funktion, für welche das Ereignis belegt wurde. Dies geschieht durch den Anforderungsprozeß. Die Ereignistabelle 60a dient dem Zweck der Pflege des Status' des Ereignisses, z. B. ob es für eine Belegung verfügbar ist, ob es belegt ist, welche Prozesse darauf warten, etc.
  • Gemäß Fig. 6 wird die Unterstützungslogik 62 zum Einfügen von Informationsfeldern in Ereignistabelle 60a, Statistiktabelle 60b und Verbindungstabelle 60c, ebenso wie zum Entfernen von Feldern darauf, falls erforderlich, verwendet. Ein lokaler Speicher 63 dient als Ausgabepuffer und pflegt eine Prozessortabelle, welche anzeigt, welche Prozesse augenblicklich auf den entsprechenden Prozessoren 10 aus Fig. 1 ablaufen.
  • Mitteilungsübertragungen zu anderen Prozessoren aus Fig. 1 erfolgen aus einem Ausgangsregister 69 von Fig. 6 über den Weg des Speichercontrollers 11 aus Fig. 1. Mitteilungen werden empfangen vom Controller 11 über ein Eingangsregister 65 und einen Mitteilungspuffer 64. Wie in Fig. 6 gezeigt, haben die dort beschriebenen, verschiedenen Funktionseinheiten Eingänge an ein arithmetisches Logikeinheits-Modul 66 über einen arithmetischen Logikeinheit-Multiplexer 67. Das arithmetische Logikeinheit-Modul 66 wird verwendet, um Prozeßprioritäten zu berechnen, wie oben beschrieben, und ebenfalls, um Mitteilungen zur Übertragung an andere Prozessoren des Systems zu bilden. Alle Funktionseinheiten aus Fig. 6 unterliegen der Steuerung des Sequenz-Steuerspeichers 60 und werden aktiviert durch Empfangen einer externen Prozessoranforderung durch den Mitteilungspuffer 24, wo das Anforderungskommando durch den Steuerspeicher 60 dekodiert wird.
  • Der Task-Steuerprozessor 21 ist ausgebildet, das Haupt-Steuerprogramm von vielen seiner zeitintensiven Funktionen und gemeinsam mit dem E/A- Prozessor 22 aus Fig. 2 von den meisten der Funktionen mit E/A-Operationen zu entlasten. Somit fordert bei der vorliegenden Erfindung wenn, ein Prozessor einen speziellen Bedienerprozeß ausführt und auf eine Referenz zu nicht im Hauptspeicher befindlichen Daten trifft, dieser den Task-Steuerprozessor 21 aus Fig. 2 auf, einen Ereignisschlüssel für diesen Prozeß zu belegen und dann einen Prozeduraufruf für eine E/A-Prozedur zum Erzeugen eines E/A-Startbefehls oder ASYNC/- SCHEDULE-Kommandos auszulösen, welches zum E/A-Prozessor 22 aus Fig. 2 und zum Mitteilungs-Eingangsdatenpuffer 30 aus Fig. 4 übertragen wird. Wenn der E/A-Prozeß beendet ist, erzeugt der Primär-Steuersequenzer 31 eine Mitteilung, welche von dem E/A-Prozessor 22 zum Task-Steuerprozessor 21 gesendet wird. Dies wiederum setzt ein spezielles Bit in der speziellen Ereignisposition der Ereignistabelle 60a, welches in dem Erwachen aller Prozesse resultiert, welche augenblicklich auf das zugeordnete Ereignis warten, so daß sie durch den Task-Steuerprozessor zur Ausführung durch den nächsten verfügbaren Prozessor 10 aus Fig. 1 entsprechend ihrer Priorität ohne Einbeziehung des Zentralprozessors neu eingeordnet werden können.
  • Vorstehend wurde kurz das Disk-Caching erwähnt, durch welches immer, wenn ein Segment von einer Disk geholt wird, dessen gesamte Spur in den Hauptspeicher eingelesen wird, weil es eine erhöhte Wahrscheinlichkeit gibt, daß spätere E/A-Anforderungen kurzfristig auf die gleiche Spur zugreifen wollen. Durch Pflegen des Disk-Cache im Hauptspeicher werden für alle Disks in dem System Konflikte zwischen Anforderungen für verschiedene Busse 13a aus Fig. 1 und Controllern 14 von dort deutlich reduziert. Es ist anzumerken, daß in einem sehr großen Datenverarbeitungssystem des Typs, der diese Erfindung verwendet, nicht nur das Betriebssystem recht groß ist und somit viele Disks zum permanenten Ablegen benötigt, sondern ebenso kritische Benutzer-Datenbanken wie z. B. Kunden-Bankkonten u.ä., welche sehr häufig genutzt oder aktualisiert werden. Es ist nicht unüblich in solch einer Situation, daß alle peripheren Einheiten 15 aus Fig. 1 Disk-Laufwerke sind, ausgenommen einige Bandeinheiten zum Entlasten des Systems.
  • Aufgrund der Haupt-Speicher-Anforderungen für E/A-Übertragungen ist ein ausreichender Teil des Hauptspeichers belegt für solche E/A-Operationen. Daher kann, in Fig. 1, das Speichermodul 12a als E/A-Arbeitsbereich zugewiesen sein, wie oben beschrieben wurde, die Speicher 12b und 12c können belegt sein als Disk-Cache, während die verbleibenden Speichermodule den Benutzerprogrammen und Daten zugeordnet sein können.
  • Nun soll die Datenübertragungseinheit 23 in Fig. 2 erwähnt werden, welche ausschließlich verwendet wird zum Zweck des Übertragens von Datensegmenten zu und von dem Disk-Cache im Speichermodul 12b und der Benutzer-Datenbank in dem Benutzerteil des Speichers. Aus Gründen der Herstellungsökonomie ist diese Einheit dieselbe Platine wie die, auf welcher der E/A-Prozessor 22 ausgeführt ist und die detailliert in Fig. 4 dargestellt ist, ausgenommen, daß in Fig. 4 der Hilfs-Steuersequenzer und die von ihm gesteuerten Einheiten sowie die Gerätetabelle 45 und die Pfad-Gruppentabelle 46 nicht vorgesehen sind. Diese Daten- Transfereinheit enthält jedoch andere Mikrocode-Sequenzen in ihren Steuerspeichern als der E/A-Prozessor, so daß sie im Ergebnis ein Slave des E/A-Prozessors ist, welcher letztendlich das gesamte E/A- System 13 aus Fig. 1 steuert.
  • Im Betrieb, wenn das ASYNC-SCHEDULE-Kommando vom Mitteilungs- und Eingangsdaten-Puffer 30 aus Fig. 4 empfangen wird und feststeht, daß das ausgewählte Gerät eine Disk ist, wird der primäre Steuersequenzer 31 den Disk-Cache im Hauptspeicher suchen. Wenn der Operator LESEN ist, wird der primäre Steuersequenzer 31 aus Fig. 4 in dem E/A-Prozessor unter Verwendung der normalen Warteschlangen-Strukturen seinen entsprechenden Steuerspeicher in der Datenübertragungseinheit anweisen, das Datenelement von dem Disk-Cache im Hauptspeicher an den Benutzerteil des anfordernden Prozesses im Hauptspeicher zu übertragen. Ergibt sich ein Verfehlen während der Suche, erzeugt der primäre Steuersequenzer 31 aus Fig. 4 einen neuen Steuerblock in seinem E/A-Arbeitsraum zum Übertragen an einen selektiv belegten Anschlußadapter 24, um auf die festgelegte Disk und korrespondierende Spur zuzugreifen und die gesamte Spur zurück durch den Anschlußadapter in den Disk-Cache- Teil des Hauptspeichers zu holen. Während dieser Übertragung signalisiert, wenn das speziell ausgewählte Datenelement in dem Disk-Cache abgelegt wurde, die E/A-Prozessoreinheit 22 aus Fig. 2 der Datenübertragungseinheit 23, das Element von dem Disk-Cache zu holen und in dem Bediener-Teil des anfordernden Prozesses im Speicher zu übertragen.
  • Ein ähnlicher, umgekehrter Prozeß wird verwendet für einen Disk- Schreibzugriff. Wenn das ASYNC-SCHEDULE-Kommando ein Disk-Schreibzugriff ist, löst der E/A-Prozessor eine Suche in dem Disk-Cache aus, um zu sehen, ob die entsprechende Spur darin abgelegt ist, und wenn sie dies ist, signalisiert der E/A-Prozessor der Datenübertragungseinheit 23 aus Fig. 2, die Daten aus dem Bedienerteil des Hauptspeichers zur zugewiesenen Disk-Spur zu übertragen, und veranlaßt außerdem einen zugewiesenen Anschlußadapter, die spezielle Disk, von welcher die Disk- Spur geholt wurde, zu aktualisieren. Andernfalls wird die Disk- Schreiboperation ausgeführt wie jede andere Datenübertragung zu einer peripheren Einheit.

Claims (6)

1. Verarbeitungssystem, mit
einer Mehrzahl von Zentralprozessoren (10);
einem Speicher (12a-d) zum Ablegen von Daten, welche eine Mehrzahl von Prozessen, die durch die Zentralprozessoren (10) auszuführen sind, repräsentieren;
einem Task-Steuerprozessor (21), der für das Einordnen von Prozessen zur Ausführung durch die Zentralprozessoren (10) vorgesehen ist, wobei der Task-Steuerprozessor (21) ebenfalls den Status der wartenden Prozesse überwacht;
einem Eingabe-/Ausgabe-Prozessor (22), der an die Zentralprozessoren (10) und an den Task-Steuerprozessor (21) angeschlossen ist;
und einer Mehrzahl von Geräten (13a, 14, 15), angeschlossen an den Eingabe-/Ausgabe-Prozessor (22), dadurch gekennzeichnet, daß
der Task-Steuerprozessor (21) Prozeß-Tabellen-Mittel (61), welchen Prozesse zur Ausführung durch die Zentralprozessoren (10) auf einer Prioritätsbasis zugeordnet werden, und Ereignis-Tabellen-Mittel (60a) zum Zuweisen eines Eingabe-/Ausgabe-Ereignis-Kennzeichens, welches eine Eingabe-/Ausgabe-Operation auslöst, zu einem ausgeführten Prozeß, beinhaltet;
die Zentralprozessoren (10) derart arbeiten, daß, wenn ein auf einem Zentralprozessor (10) ablaufender Ausführungsprozeß auf eine E/A-Operation trifft, dem Task-Steuerprozessor signalisiert wird, dem entsprechenden Ausführungsprozeß ein Eingabe-/Ausgabe-Ereignis-Kennzeichen zuzuweisen, ein korrespondierender Eingabe-/Ausgabe- Steuerblock (IOCB) in dem Speicher (12a-d) erzeugt wird, ein Eingabe/Ausgabe-Befehl an den Eingabe-/Ausgabe-Prozessor (22) gesendet wird, wobei der Eingabe-/Ausgabe-Befehl den korrespondierenden ausgeführten Prozeß, die auszuführende Operation, die Identität eines Gerätes (13a, 14, 15) und einen Eingabe-/Ausgabe-Steuerblock (IOCB) in dem Speicher (12a-d) anzeigt, und der entsprechende Zentralprozessor (10) vom Abarbeiten des Ausführungsprozesses entlastet wird, so daß er für Zuweisungen durch den Task-Steuerprozessor (21) verfügbar ist, um den Prozeß mit der nächst-höchsten Priorität auszuführen;
der Eingabe-/Ausgabe-Prozessor (22) auf einen an ihn gesendeten Eingabe-/Ausgabe-Befehl anspricht, um auf den entsprechenden Eingabe-/ Ausgabe-Steuerblock (IOCB) in dem Speicher (12a-d) zuzugreifen, um ihn zur Ausführung der angezeigten Operation auf dem bezeichneten Gerät (13a, 14, 15) zu verwenden, wonach der Eingabe-/Ausgabe-Prozessor (22) dem Task-Prozessor (21) die Beendigung der Eingabe-/Ausgabe-Operation signalisiert; und
der Task-Steuerprozessor (21) auf die Beendigung der Eingabe-/Ausgabe- Operation durch den Eingabe-/Ausgabe-Prozessor (22) anspricht, um das entsprechende Eingabe-/Ausgabe-Ereignis-Kennzeichen zu aktualisieren, um diese Beendigung anzuzeigen und dadurch den Task-Steuerprozessor (21) zu veranlassen, den entsprechenden Warteprozeß in den Prozeß-Tabellen-Mitteln (61) für eine weitere Ausführung durch einen verfügbar werdenden Zentralprozessor (10) neu einzuordnen.
2. System nach Anspruch 1, bei welchem der Speicher (12a-d) eine Geräte-Tabelle (45) beinhaltet, welche den Status der Geräte (13a, 14, 15) anzeigt, und der Eingabe/Ausgabe-Prozessor (22) auf die Geräte-Tabelle (45) bei der Ausführung von Eingabe-/Ausgabe-Operationen zugreift.
3. System nach Anspruch 2, bei welchem der Task-Steuerprozessor (21) Mittel beinhaltet, die auf den Status der Geräte (13a, 14, 15) ansprechen, um die Geräte (13a, 14, 15) für die Ausführung von Eingabe-/Ausgabe-Operationen in eine Warteschlange einzureihen.
4. System nach einem der Ansprüche 1 bis 3, welches eine Mehrzahl von Controllern (14), eine Mehrzahl von Peripherie-Einheiten (15) und eine Mehrzahl von Bussen (13a) enthält, welche die peripheren Einheiten (15) mit verschiedenen Controllern (14) und mit dem Eingabe-/Ausgabe-Steuerprozessor (22) koppeln, und bei welchem ein Gerät eine Peripherie-Einheit (15), ein Controller (14) oder ein Bus (13a) sein kann.
5. System nach Anspruch 4, bei welchem der Eingabe-/Ausgabe-Prozessor (22) eine Pfad-Tabelle (46) beinhaltet, die Einträge von verschiedenen Controllern (14), die eine vorgegebene Peripherie-Einheit (15) steuern, und von verschiedenen Bussen (13a) enthält, welche verwendet werden können, um auf die Controller (14) und die peripheren Einheiten (15) zuzugreifen, und bei welchem der Task-Steuerprozessor (21) auf die Pfad-Tabelle (46) zugreift, um die bei der Ausführung von Eingabe-/Ausgabe-Operationen zu verwendenden Pfade zu bestimmen.
6. System nach einem der Ansprüche 1 bis 5, bei welchem ein Teil des Speichers (12a-d) als Disk-Cache-Bereich abgetrennt ist, die Geräte eine Mehrzahl von Disk-Laufwerken umfassen, der Eingabe-/Ausgabe-Prozessor (22) Cache-Steuermittel beinhaltet, die mit dem Disk-Cache-Bereich zusammenwirken, um von den Disk-Laufwerken abgefragte Daten zwischenzuspeichern, und der Eingabe-/ Ausgabe-Prozessor (22) in Abhängigkeit von einem Eingabe-/Ausgabe-Befehl arbeitet, welcher Daten von einem Disk-Laufwerk anfordert, um die angeforderten Daten aus dem Disk-Cache-Bereich zur Verfügung zu stellen, wenn sie darin gespeichert sind.
DE3788346T 1986-11-04 1987-10-29 E/a-system zur abladung von betriebssystemfunktionen. Expired - Fee Related DE3788346T2 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US92656786A 1986-11-04 1986-11-04
US92673886A 1986-11-04 1986-11-04
US92658886A 1986-11-04 1986-11-04
US06/926,568 US5764922A (en) 1986-11-04 1986-11-04 I/O system for off-loading operating system functions
PCT/US1987/002812 WO1988003682A1 (en) 1986-11-04 1987-10-29 I/o system for off-loading operating system functions

Publications (2)

Publication Number Publication Date
DE3788346D1 DE3788346D1 (de) 1994-01-13
DE3788346T2 true DE3788346T2 (de) 1994-06-23

Family

ID=27506008

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3788346T Expired - Fee Related DE3788346T2 (de) 1986-11-04 1987-10-29 E/a-system zur abladung von betriebssystemfunktionen.

Country Status (5)

Country Link
EP (1) EP0290533B1 (de)
JP (1) JPS63503336A (de)
CA (1) CA1306311C (de)
DE (1) DE3788346T2 (de)
WO (1) WO1988003682A1 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5247671A (en) * 1990-02-14 1993-09-21 International Business Machines Corporation Scalable schedules for serial communications controller in data processing systems
US5548735A (en) * 1993-09-15 1996-08-20 International Business Machines Corporation System and method for asynchronously processing store instructions to I/O space
US6968405B1 (en) 1998-07-24 2005-11-22 Aristocrat Leisure Industries Pty Limited Input/Output Interface and device abstraction
AU748434B2 (en) * 1998-07-24 2002-06-06 Aristocrat Technologies Australia Pty Limited Input/output interface and device abstraction
US7743376B2 (en) * 2004-09-13 2010-06-22 Broadcom Corporation Method and apparatus for managing tasks in a multiprocessor system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JPS5764859A (en) * 1980-10-08 1982-04-20 Hitachi Ltd Multi-processor system
US4413317A (en) * 1980-11-14 1983-11-01 Sperry Corporation Multiprocessor system with cache/disk subsystem with status routing for plural disk drives
US4394727A (en) * 1981-05-04 1983-07-19 International Business Machines Corporation Multi-processor task dispatching apparatus
US4435755A (en) * 1981-12-28 1984-03-06 International Business Machines Corporation Balanced channel finding method
DE3676497D1 (de) * 1985-10-15 1991-02-07 Unisys Corp Spezialrechner fuer getrennte ausfuehrung mancher betriebssystemfunktionen in einem grossen datenverarbeitungssystem.

Also Published As

Publication number Publication date
JPH0519179B2 (de) 1993-03-16
DE3788346D1 (de) 1994-01-13
WO1988003682A1 (en) 1988-05-19
EP0290533B1 (de) 1993-12-01
CA1306311C (en) 1992-08-11
JPS63503336A (ja) 1988-12-02
EP0290533A1 (de) 1988-11-17

Similar Documents

Publication Publication Date Title
DE69127101T2 (de) System für verteilte mehrfachrechnerkommunikation
DE69027515T2 (de) Vorrichtung für Prioritätsarbitrierungskonditionierung bei gepufferter Direktspeicheradressierung
DE3114961C2 (de)
DE69125840T2 (de) Fehlertolerierendes rechnersystem
DE60015395T2 (de) Speicher, der zwischen verarbeitenden threads geteilt ist
DE3587439T2 (de) Gemeinsam benutzter Mehrprozessor-Pipeline-Cachespeicher.
DE3588009T2 (de) Vorrichtung und Verfahren zum Rekonfigurieren eines Speichers in einer Datenverarbeitungsanordnung.
DE10085374B4 (de) Systemmanagementspeicher für die Systemmanagement-Interrupt-Behandler wird in die Speichersteuereinrichtung integriert, unabhängig vom BIOS und Betriebssystem
DE2411963C3 (de) Elektronische Datenverarbeitungsanlage mit einer Prioritätssteuerschaltung mit änderbaren Steuerblöcken
DE69733374T2 (de) Speichersteuerungsvorrichtung und -system
DE2856483C2 (de)
DE60037065T2 (de) Übertragungsteuerung mit Naben- und Torachitektur
DE2722099C2 (de)
DE68926036T2 (de) Speicherkonfiguration zur Verwendung für Schnittstellenbildung zwischen einer Systemsteuereinheit für ein Multiprozessorsystem und dem Hauptspeicher
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE3782335T2 (de) Speichersteuersystem.
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE68924306T2 (de) Mehrprozessorrechneranordnungen mit gemeinsamem Speicher und privaten Cache-Speichern.
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69534616T2 (de) System und Verfahren zum Verarbeiten von E/A-Anfragen über einen Schnittstellenbus zu einer Speicherplattenanordnung
EP0006164B1 (de) Multiprozessorsystem mit gemeinsam benutzbaren Speichern
DE2243956A1 (de) Speicherprogrammierte datenverarbeitungsanlage
DE3606211A1 (de) Multiprozessor-computersystem
DE69031524T2 (de) Verfahren und Vorrichtung zur Datenübertragung zwischen Prozessorelementen
DE3933849A1 (de) Prozessorgesteuerte schnittstelle

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee