-
HINTERGRUND
DER ERFINDUNG
-
Die
Erfindung betrifft eine Speichersteuerung sowie ein bei dieser verwendetes
Bussteuerungsverfahren. Genauer gesagt, betrifft die Erfindung ein
Bussteuerungsverfahren und eine Speichersteuerung, bei der dieses
Bussteuerungsverfahren realisiert ist. Durch das Verfahren gemäß der Erfindung
wird der Busnutzungsmodus innerhalb der Speichersteuerung entsprechend
dem Betriebsmodus des mit der Steuerung verbundenen Computersystems
dynamisch gesteuert.
-
Die
zwischen der zentralen Verarbeitungseinheit (CPU) und einem Speichergerät platzierte Speichersteuerung
steuert die Datenübermittlung zwischen
diesen auf Eingabe/Ausgabe-Anfragen von der CPU her. In jüngerer Zeit
hat das sogenannte Mehrprozessorverfahren Eingang in eine wachsende Anzahl
von Speichersteuerungsinstallationen für höheren Durchsatz und höhere Zuverlässigkeit
gefunden. Für
derartige Fälle
ist es bekannt, dass das Verbindungsschema mit einem gemeinsamen
Bus zum Verbinden der die Speichersteuerung aufbauenden, Komponenten
bildenden Prozessoren gute Funktionsexpandierbarkeit liefert. Es
werden zwei Arten von Daten über
den Bus übertragen
Steuerungsdaten, die die Speichersteuerung dazu benötigt, die Eingabe/Ausgabe-Anfragen
von der CPU zu verarbeiten und normale Daten, die zwischen der CPU und
der Speichersteuerung ausgetauscht werden.
-
Ein
herkömmliches
Beispiel einer Speichersteuerung vom Mehrprozessortyp unter Verwendung des
Verbindungsschemas mit gemeinsamem Bus ist der in "FUJITSU, VOL. 42,
Nr. 1, S. 12-20 (1991)" beschriebene
Dateicontroller. Die Komponentenfunktionen dieses Dateicontrollers
sind in mehrere Module unterteilt, von denen jedem ein Mikroprozessor
zugewiesen ist. Diese Module sind durch einen gemeinsamen Bus verbunden.
Jedes Modul und der gemeinsame Bus werden im Multiplex betrieben,
um für
höhere
Zuverlässigkeit
zu sorgen.
-
Herkömmliche
Speichersteuerungen, die den Modus einer Nutzung des gemeinsamen
Busses verwenden, sind an den Hauptmodus des Computersystems, mit
dem sie verbunden sind, angepasst. Beispielsweise müssen Computersysteme
zum hauptsächlichen
Ausführen
einer Onlineverarbeitung ausreichende Reaktionsfähigkeit während des Betriebs gewährleisten
und daher einen Modus zur Nutzung des gemeinsamen Busses verwenden,
der Nachdruck auf den Übermittlungsdurchsatz
von Steuerungsdaten legt. Andererseits handhaben Computersysteme
zum Ausführen
einer Batchverarbeitung häufig
große
Datenmengen und sie müssen einen
Modus zur Nutzung des gemeinsamen Busses verwenden, der Nachdruck
auf den Datenübermittlungsdurchsatz
legt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Es
ist noch ein dynamisches Umschalten des Modus der Nutzung des gemeinsamen
Busses mit herkömmlichen
Speichersteuerungen zu realisieren. Aus diesem Grund kann, wenn
sich der Betriebsmodus des angeschlossenen Computersystems ändert, die
Effizienz der Busnutzung abnehmen, was verhindern kann, dass Ressourcen
der Speichersteuerung effizient genutzt werden. Ein Beispiel dafür ist ein Bank-Onlinecomputersystem,
das entsprechend einem Nutzungsverfahren für den gemeinsamen Bus arbeitet,
das Nachdruck auf den Übermittlungsdurchsatz
von Steuerungsdaten legt. Im Verlauf eines Tags ist die Busnutzungseffizienz
hoch, wenn das System große
Anteile einer Onlineverarbeitungsbelastung, unter Einschluss automatischer
Kassenplätze,
handhabt. Nachts ist jedoch die Busnutzungseffizienz des Systems
wegen des deutlich größeren Anteils
der vom System gehandhabten Batchverarbeitungsbelastung, zu der
ein Kontenausgleich gehört,
verringert. Im letzteren Fall ist es möglich, dass Ressourcen der
Speichersteuerung nicht wirkungsvoll genutzt werden.
-
Daher
ist es eine Aufgabe der Erfindung, eine Speichersteuerung und ein
Bussteuerungsverfahren zur Verwendung derselben zu schaffen, wobei das
Verfahren den Modus der Nutzung des gemeinsamen Busses in Reaktion
auf eine Änderung
des Betriebsmodus des mit der Speichersteuerung verbundenen Computersystems
dynamisch steuert.
-
Eine
Speichersteuerung und ein Steuerungsverfahren für eine Speichersteuerung sind
dergestalt, wie es in den Ansprüchen
1 bzw. 8 dargelegt ist.
-
Gemäß einer
Erscheinungsform der Erfindung ist eine Speichersteuerung mit einem
Speichergerätadapter,
einem Kanaladapter, einem Cache-Speicher, einem Steuerspeicher und
mehreren dazwischen geschalteten Bussen geschaffen. Der Kanaladapter
kommuniziert mit einem Prozessor, und er verarbeitet von diesem
ausgegebene Eingabe/Ausgabe-Anfragen. Der Speichergerätadapter steuert
ein Speichergerät
und die Datenübermittlung zwischen
dem Speichergerät
und dem Cache-Speicher. Der Kanaladapter und der Speichergerätadapter
tauschen Steuerungsinformation über
den Steuerspeicher aus. Die Busse werden dazu verwendet, die Daten
und die Steuerungsinformation zwischen dem Cache-Speicher und dem
Steuerspeicher sowie dem Kanaladapter und dem Speichergerätadapter
zu übermitteln.
Die Steuerung verfügt
auch über
eine Busauslastungs-Abschätzeinrichtung
zum Erhalten eines Index zu Busauslastungseigenschaften. Vorzugsweise
wird der Index auf Grundlage des Umfangs der Datenübermittlung
während
sequenzieller Zugriffe auf das Speichergerät erhalten. Insbesondere können die
Restbytes bei sequenziellem Zugriff auf das Speichergerät als Index
verwendet werden. Die Steuerung verfügt ferner über eine Busmodus-Auswähleinrichtung
zum Bestimmen des Modus der Busnutzung auf Grundlage des Index.
Sowohl der Kanaladapter als auch das Speichergerät verfügen über eine Buszugriffseinrichtung
zum Zugreifen auf die Busse entsprechend dem durch die Busmodus-Auswähleinrichtung
ausgewählten
Busmodus.
-
Gemäß einer
Erscheinungsform der Erfindung wird demgemäß der Index zu Busauslastungseigenschaften
erhalten, und der Busmodus wird auf Grundlage des erhaltenen Index
bestimmt. Jedes der Module, wie der Kanaladapter und der Speichergerätadapter,
greift entsprechend dem bestimmten Busmodus auf die Busse zu. Im
Ergebnis können
die Busse effizient genutzt werden. Insbesondere ist es durch Verwenden
der Restbytes einer Datenübermittlung
entsprechend sequenziellem Zugriff auf das Speichergerät als Index
möglich,
den geeigneten Busmodus entsprechend dem Umfang der Datenübermittlung
auf den Bussen zu bestimmen. Wenn beispielsweise der Umfang der
Datenübermittlung, wie
er sich aus dem ablaufenden sequenziellen Zugriff ergibt, zunimmt,
wird die Lastcharakteristik so abgeschätzt, dass sie einen zunehmenden
Anteil sequenzieller Zugriffe beinhaltet. Der in diesem Fall ausgewählte Busnutzungsmodus
ist ein solcher, der Nachdruck auf den Datenübermittlungsdurchsatz legt.
Wenn der Umfang der aus dem aktuellen sequenziellen Zugriff herrührenden
Datenübermittlung abnimmt,
wird die Lastcharakteristik so abgeschätzt, dass sie einen zunehmende
Anteil an zufälligen
Zugriffen beinhaltet. Der in diesem Fall ausgewählte Busnutzungsmodus ist ein
solcher, der Nachdruck auf den Übermittlungsdurchsatz
von Steuerungsdaten legt. Dadurch ist ein Abfall der Effizienz der Busauslastung
durch geeignetes Umschalten zwischen zwei Busnutzungsmodi verhindert.
Die Ressourcen der Speichersteuerung können im Ergebnis selbst dann wirkungsvoll
genutzt werden, wenn sich der Betriebsmodus des angeschlossenen
Computersystems ändert.
-
KURZE BESCHREIBUNG
DER ZEICHNUNGEN
-
1 ist
ein schematisches Blockdiagramm eines Computersystems mit einer
Speichersteuerung gemäß einer
ersten Ausführungsform
der Erfindung.
-
2 ist
ein Blockdiagramm, das den internen Aufbau eines Kanaladapters gemäß der ersten Ausführungsform
zeigt.
-
3 ist
ein Blockdiagramm, das den internen Aufbau eines Speichergerätadapters
gemäß der ersten
Ausführungsform
der Erfindung zeigt.
-
4 ist
ein Flussdiagramm von Schritten zum Skizzieren der Verarbeitung
durch das Kanalprogramm, wie es durch den Eingabe/Ausgabe-Prozessor
der ersten Ausführungsform
ausgeführt
wird.
-
5 ist
eine Ansicht, die das Format eines Befehls DEF_EXT zeigt.
-
6 ist
eine Ansicht, die das Format eines Befehls LOCATE zeigt.
-
7 ist
eine Ansicht, die das Format eines Befehls READ/WRITE zeigt.
-
8 ist
ein Flussdiagramm von Schritten zum Skizzieren der Verarbeitung
der durch den Kanaladapter ausgeführten Bussteuerungsfunktion.
-
9 ist
eine Ansicht zum Veranschaulichen der Prinzipien gemäß denen
die Busüberwachungsschaltung
der ersten Ausführungsform
das Busaktivitätsverhältnis misst.
-
10 ist
eine Tabelle, die Busmoduszuweisungen gemäß der ersten Ausführungsform
zeigt.
-
11 ist
eine Ansicht, die die Struktur der Bereichssteuerungstabellen zur
Verwendung beim System der ersten Ausführungsform zeigt.
-
12 ist
eine Ansicht zum Veranschaulichen der Prinzipien, gemäß denen
die Restmenge bei der Verzögerungsschaltung
berechnet wird.
-
13 ist
ein Flussdiagramm des Prozesses zum Speichern von Daten in der Bereichssteuerungstabelle
der ersten Ausführungsform.
-
14 ist
ein Flussdiagramm des Busmodus-Auswählprozesses der ersten Ausführungsform.
-
15 ist
ein Busmodusübergangsdiagramm
in Verbindung mit der ersten Ausführungsform.
-
16 ist
ein schematisches Blockdiagramm eines Computersystems mit einer
Speichersteuerung, die gemäß einer
zweiten Ausführungsform
der Erfindung realisiert ist.
-
17 ist
eine Tabelle, die Busmoduszuweisungen gemäß der zweiten Ausführungsform
zeigt.
-
18 ist
ein Blockdiagramm, das den internen Aufbau eines Kanaladapters gemäß der zweiten Ausführungsform
zeigt.
-
19 ist
ein Blockdiagramm, das den internen Aufbau eines Speichergerätadapters
gemäß der zweiten
Ausführungsform
zeigt.
-
20 ist
ein Flussdiagramm des Busmodus-Auswählprozesses gemäß der zweiten
Ausführungsform.
-
21 ist
eine Tabelle, die Busmoduszuweisungen für den Fall zeigt, dass Busfehler
auftreten.
-
DETAILLIERTE
BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
-
Nun
werden bevorzugte Ausführungsformen der
Erfindung unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
Jedoch sind diese Ausführungsformen
nicht so auszulegen, dass sie den Schutzumfang der Erfindung einschränken würden, sondern
sie sind lediglich dahingehend auszulegen, dass sie als Veranschaulichungen
der Erfindung dienen.
-
Die 1 ist
ein schematisches Blockdiagramm eines Computersystems S1 mit einer
Speichersteuerung 2 mit einem Aufbau entsprechend einer
ersten Ausführungsform
der Erfindung. Im Computersystem S1 ist eine zentrale Verarbeitungseinheit
(CPU) 1 über
die Speichersteuerung 2 mit mehreren Speichergeräten 3 verbunden.
Die CPU 1 verfügt über eine
Arithmetik-Logik-Einheit (ALU) 12, einen Hauptspeicher 16 und
einen Eingabe/Ausgabe-Prozessor 14. Anwendungsprogramme
für Online-
und Batchverarbeitung laufen auf der CPU 1. Durch derartige
Anwendungsprogramme ausgegebene Eingabe/Ausgabe-Anfragen für Daten
werden vom Eingabe/Ausgabe-Prozessor 14 an die Speichersteuerung 2 übermittelt.
-
Die
Speichersteuerung 2 verfügt über einen Cache-Speicher 24,
Kanaladapter 21a und 21b, Speichergerätadapter 22,
einen Steuerspeicher 23 sowie Busse 26 und 27.
Der Cache-Speicher 24 nimmt einen Teil der in den Speichergeräten 3 gespeicherten
Daten entsprechend einer bevorzugten Ausführungsform der Erfindung auf.
Alternativ kann der Cache-Speicher 24 durch einen anderen
Speicher, entsprechend den Erfordernissen der Steuerung, ersetzt
werden. Die Kanaladapter 21a und 21b steuern die
Datenübermittlung
zwischen der CPU 1 und dem Cache-Speicher 24.
Der Kanaladapter 21a verfügt über einen Busauslastungs-Abschätzlogikteil 201 zum
Abschätzen
der Busauslastung sowie einen Busauslastungs-Messlogikteil 202 zum
Messen des Busaktivitätsverhältnisses,
einen Busmodus-Auswähl-Logikteil 203 zum
Bestimmen des Busnutzungsmodus und einen Buszugriffsteil 204 zum
Erlangen von Zugriff auf einen Bus. Der Kanaladapter 21b verfügt ebenfalls über eine
Funktion, die der des Buszugriffsteils 204 entspricht.
Die Speichergerätadapter 22 steuern
die Datenübermittlung
zwischen den Speichergeräten
und dem Cache-Speicher 24. Der Steuerspeicher 23 speichert
Bussteuerungsinformation, Steuerungsinformation für die Speichergeräte, Steuerungsinformation
für den
Cache sowie eine Bereichssteuerungstabelle 100, die später beschrieben
wird. Der Bus 26 und der Bus 27 bilden eine Duplexanordnung
eines gemeinsamen Busses.
-
Die 2 ist
ein Blockdiagramm, das den internen Aufbau des Kanaladapters 21a zeigt.
Der Kanaladapter 21a verfügt über einen Prozessor 210,
einen Speicher 212, einen Adressendecodierer 213, eine
Kanalschnittstellenschaltung 211, eine Steuerspeicher-Zugriffsschaltung 215,
eine Datenübermittlungs-Steuerschaltung 216,
eine Busüberwachungsschaltung 217 und
einen internen Bus 214. Der Prozessor 210 sorgt
für die
Gesamtsteuerung des Betriebs des Kanal adapters. Der Speicher 212 speichert
vom Prozessor 210 ausgeführte Programme sowie andere
von ihm genutzte Ressourcen. Der Adressendecodierer 213 decodiert
die durch den Prozessor 210 zu steuernden Adressen. Die
Kanalschnittstellenschaltung 211 bildet eine Schnittstelle zur
CPU 1. Die Steuerspeicher-Zugriffsschaltung 215 sorgt
für Zugriffe
auf den Steuerspeicher 23 über den Bus 26 oder
den Bus 27. Die Datenübermittlungs-Steuerschaltung 216 mit
einer DMA-Schaltung steuert die Datenübermittlung zwischen der CPU 1 und
dem Cache-Speicher 24 über den
Bus 26 oder 27. Die Busüberwachungsschaltung 217 misst
das Aktivitätsverhältnis des
Busses 26 und des Busses 27 pro Zeiteinheit. Der
Kanaladapter 21b verfügt über denselben
Aufbau wie der Kanaladapter 21.
-
Die 3 ist
ein Blockdiagramm, das den internen Aufbau des Speichergerätadapters 22 zeigt. Der
Speichergerätadapter 22 verfügt über einen
Prozessor 210, einen Speicher 212, einen Adressendecodierer 213,
eine Speichergerät-Schnittstellenschaltung 221,
eine Steuerspeicher-Zugriffsschaltung 215, eine Datenübermittlungs-Steuerschaltung 216 sowie einen
internen Bus 214. Von diesen Komponenten sind der Prozessor 210,
der Speicher 212, der Adressendecodierer 213,
die Steuerspeicher-Zugriffsschaltung 215 und der interne
Bus 214 gleich wie diejenigen des Kanaladapters 21a.
Die Speichergerät-Schnittstellenschaltung 221 bildet
eine Schnittstelle zu den Speichergeräten 3.
-
Während des
Betriebs des Systems führt
die CPU 1 Anwendungsprogramme aus. Wenn es erforderlich
ist, Daten in die Speichergeräte 3 zu
schreiben oder aus ihnen zu lesen, lädt die CPU 1 ein Kanalprogramm
in den Hauptspeicher 16, und sie gibt eine Eingabe/Ausgabe-Startanweisung
aus, um den Eingabe/Ausgabe-Prozessor 14 zu
starten. Der so gestartete Eingabe/Ausgabe-Prozessor 14 führt das Kanalprogramm
im Hauptspeicher 16 aus.
-
4.
In einem Schritt 401 führt
der Eingabe/Ausgabe-Prozessor 14 einen Befehl DEF_EXT aus,
der den Umfang im Speichergerät 3 spezifiziert, entsprechend
dem Daten in ihn geschrieben oder aus ihm gelesen werden. Wie es
in der 5 dargestellt ist, besteht das Format des Befehls
DEF_EXT aus einem CCW (Channel Command Word = Kanalbefehlswort) 501,
das den Inhalt des Befehls beschreibt, und einem Parameter 502,
der in demjenigen Umfang des Hauptspeichers 16 gespeichert
ist, auf den die im CCW 501 gespeicherte Hauptspeicheradresse
zeigt. Das CCW 501 verfügt über einen Befehlscode,
ein Flag, einen Bytezählwert
und die Hauptspeicheradresse. Der Parameter 502 verfügt über ein Maskierungsbyte,
Globalattribute, eine Blocklänge,
eine Startadresse für
den Umfang und eine Endadresse für
den Umfang. Das Maskierungsbyte spezifiziert den Typ von CCWs, der
durch folgende CCWs spezifiziert werden kann. Die Globalattribute
spezifizieren, wie ein Plattencache zu verwenden ist, und ob die
aktuelle Eingabe/Ausgabe-Anfrage eine Anfrage für Datenübermittlung mit sequenziellem
Zugriff ist. Die Blocklänge
spezifiziert die Anzahl der Bytes, die in einem einzelnen Datensatz
zu übermitteln
sind, wobei die Zieldatei für
die Eingabe/Ausgabe-Operation über
Datensätze
derselben Länge
verfügt.
Durch Ausführen
des Befehls DEF_EXT werden der Befehlscode und der Parameter 502 an
die Speichersteuerung übermittelt.
Wenn es sich ergibt, dass zwischen dem empfangenen Befehlscode und
dem Parameter 502 kein Konflikt besteht, bestätigt die
Speichersteuerung 2 das normale Beenden dieses Befehls
DEF_EXT an die CPU 1.
-
In
einem Schritt 402 führt
der Eingabe/Ausgabe-Prozessor 14, wenn er die Bestätigung der
normalen Beendigung des Befehls DEF_EXT empfängt, einen Befehl LOCATE aus.
Wie es in der 6 dargestellt ist, beinhaltet
der Befehl LOCATE ein CCW 601 und einen Parameter 602,
der Information zum Positionieren des durch die Speichersteuerung 2 zu verarbeitenden
Datensatzes spezifiziert (d. h. Information zum Positionieren des
Magnetkopfs) sowie die Anzahl der Datensätze enthält. Das CCW 601 verfügt über einen
Befehlscode, ein Flag, einen Bytezählwert und eine Hauptspeicheradresse.
Der Parameter 602 verfügt über ein
Operationsbyte, ein Hilfsbyte, einen Datensatzählwert, eine Suchadresse, einen
Suchparameter, eine Sektornummer und einen Übertragungslängefaktor.
Durch Ausführen
des Befehls LOCATE werden der Befehlscode und der Parameter 602 an
die Speichersteuerung 2 übertragen. Wenn es sich herausstellt,
dass zwischen dem empfangenen Befehlscode und dem Parameter 602 kein Konflikt
besteht, bestätigt
die Speichersteuerung 2 das normale Beenden des Befehls
LOCATE an die CPU 1.
-
In
einem Schritt 403 führt
der Eingabe/Ausgabe-Prozessor 14, nachdem er die Bestätigung zur normalen
Beendigung des Befehls LOCATE empfangen hat, einen Befehl READ/WRITE
(d. h. entweder den Befehl READ oder den Befehl WRITE) aus. Wie es
in der 7 dargestellt ist, beinhaltet der Befehl READ/WRITE
ein CCW 701 und den READ/WRITE-Datenbereich 702 im
Hauptspeicher 16, auf den die Hauptspeicheradresse im CCW 701 zeigt.
Das CCW 701 verfügt über einen
Befehlscode, ein Flag, einen Bytezählwert und die Hauptspeicheradresse. Wenn
der Befehl READ ausgeführt
wird, werden von der Speichersteuerung 2 übermit telte
Daten im RERD/WRITE-Datenbereich 702 abgespeichert. Wenn
der Befehl WRITE ausgeführt
wird, nimmt der READ/WRITE-Datenbereich 702 an die Speichersteuerung 2 zu übermittelnde
Daten auf. Durch Ausführen
des Befehls READ wird der Befehlscode an die Speichersteuerung 2 übermittelt.
In Reaktion darauf übermittelt
die Speichersteuerung 2 die Daten des durch den Befehl
LOCATE spezifizierten Datensatzes an den Eingabe/Ausgabe-Prozessor 14.
Der Eingabe/Ausgabe-Prozessor 14 platziert die von der Speichersteuerung 2 übermittelten
Daten im READ/WRITE-Datenbereich 702. Andererseits werden
durch Ausführen
des Befehls WRITE der Befehlscode und die Daten aus dem READ/WRITE-Datenbereich 702 an
die Speichersteuerung 2 übertragen. In Reaktion darauf
schreibt die Speichersteuerung 2 die Daten in den durch
den Befehl LOCATE spezifizierten Datensatzbereich.
-
Wie
beschrieben, verarbeitet der Eingabe/Ausgabe-Prozessor 14 die
Eingabe/Ausgabe-Anfrage unter Verwendung des Befehls DEF_EXT, des Befehls
LOCATE und des Befehls READ/WRITE. Die CCWs in diesen Befehlen bilden
eine als Befehlskette bezeichnete Reihe.
-
Die
Speichersteuerung 2 nimmt, wenn sie die Befehlskette vom
Eingabe/Ausgabe-Prozessor 14 der
CPU 1 über
den Kanaladapter 21a (oder 21b) der Speichersteuerung 2 empfängt, auf
die Speichergerät-Steuerungsinformation
im Steuerspeicher 23 Bezug. Dabei führt der Kanaladapter 21a eine
Prüfung
aus, um zu erkennen, ob das Ziel-Speichergerät 3 für die Eingabe/Ausgabe-Operation
belegt ist. Wenn das fragliche Speichergerät nicht belegt ist, setzt der
Kanaladapter 21a ein Belegtflag in der Speichergerät-Steuerungsinformation,
und er erlangt die Erlaubnis, die Speichergeräte 3 zu benutzen.
Es existieren zwei Erlaubnisarten für die Verwendung der Speichergeräte 3:
die eine zur Verwendung des Kanaladapters 21a (oder 21b),
und die andere zur Verwendung des Speichergerätadapters 22. Die
erstere Erlaubnis wird als Zugriffserlaubnis für ein logisches Speichergerät bezeichnet,
und die letztere wird als Zugriffserlaubnis für ein physikalisches Speichergerät bezeichnet.
-
Wenn
es sich im Schritt 411 herausstellt, dass das fragliche
Speichergerät 3 belegt
ist, informiert der Kanaladapter 21a den Eingabe/Ausgabe-Prozessor 14 der
CPU 1 darüber,
dass das Zielspeichergerät 3 belegt
ist und nicht zur Ausführung der
aktuellen Eingabe/Ausgabe-Anfrage verfügbar ist. Wenn der Kanaladapter 21a (oder 21b)
die Zugriffserlaubnis für
ein logisches Speichergerät
erlangt, nimmt er auf die im Steuerspeicher 23 gespeicherte
Cachesteuerungs information Bezug, und er führt eine Prüfung aus, um zu erkennen, ob
der Cache-Speicher 24 den durch den Befehl LOCATE spezifizierten
Datensatz enthält.
Wenn der fragliche Datensatz nicht im Cache-Speicher 24 vorhanden
ist, fordert der Kanaladapter 21a den Speichergerätadapter 22 dazu
auf, den fraglichen Datensatz über
den Steuerspeicher 23 im Cache-Speicher 24 zu
platzieren, und er hält
die Verarbeitung der aktuellen Befehlskette an. Dann speichert der
Kanaladapter 21a Information im Steuerspeicher 23 ab,
die es dem Kanaladapter 21a oder 21b ermöglicht,
die Verarbeitung der Befehlskette anschließend wieder aufzunehmen.
-
Der
Speichergerätadapter 22 liest
die vom Kanaladapter 21 herrührende Anfrage aus dem Steuerspeicher 23 aus.
Danach greift der Speichergerätadapter 22 auf
die Speichergerät-Steuerungsinformation
im Steuerspeicher 23 zu, um die Zugriffserlaubnis für ein physikalisches
Speichergerät
unter den Speichergeräten 3 zu
erlangen. Wenn der Speichergerätadapter 22 die
Erlaubnis erlangt hat, greift er auf die Cachesteuerungsinformation
im Steuerspeicher 23 zu, um im Cache-Speicher 24 einen
Bereich zu reservieren, in dem der Datensatz aus dem Speichergerät 3 einzulesen
ist. Danach gibt der Speichergerätadapter 22 eine
Datensatz-Leseanforderung an das Speichergerät 3 aus. Auf die so
ausgegebene Datensatz-Leseanforderung hin, liest das Speichergerät 3 den
fraglichen Datensatz und überträgt ihn an
den Speichergerätadapter 22 der
Speichersteuerung 2. Der Speichergerätadapter 22 platziert
den übermittelten
Datensatz im Cache-Speicher 24. Danach informiert der Speichergerätadapter 22 den
Kanaladapter 21a (oder 21b) über den Steuerspeicher 23 darüber, dass
das Lesen des Zieldatensatzes für
die Eingabe/Ausgabe-Operation in den Cache-Speicher 24 abgeschlossen wurde.
-
Wenn
der Kanaladapter 21a (oder 21b) die Mitteilung
zum Beenden des Lesens vom Steuerspeicher 23 empfängt, liest
er Information zum Wiederaufnehmen der Verarbeitung der Befehlskette
aus dem Steuerspeicher 23 aus, und er nimmt die Verarbeitung
wieder auf. Danach übermittelt
der Kanaladapter 21b den im Cache-Speicher 24 gespeicherten Datensatz
an die CPU 1.
-
In
der Speichersteuerung 2 werden die Übermittlung von Steuerungsdaten
und die Datenübermittlung
zwischen den Kanaladaptern 21a, 21b und den Speichergerätadaptern 22 sowie
dem Steuerspeicher 23 und dem Cache-Speicher 24 über den Bus 26 oder
den Bus 27 ausgeführt.
Der Nutzungsmodus des Busses 26 oder des Busses 27 wird
dadurch dynamisch durch eine Bussteuerungsfunktion kontrol liert,
dass mit Statusänderungen
der Eingabe/Ausgabe-Anfragen Schritt gehalten wird. Diese Bussteuerungsfunktion
wird nun beschrieben.
-
Die
Bussteuerungsfunktion wird unter Verwendung des Busauslastungs-Abschätzlogikteils 201,
des Busauslastungs-Messlogikteils 202, des Busmodus-Auswähl-Logikteils 203 und
des Buszugriffsteils 204, die als Teil des Kanaladapters 21a arbeiten,
implementiert; wobei der Buszugriffsteil 204 als Teil des
Kanaladapters 21b und des Speichergerätadapters 22 arbeitet.
-
Die 8 ist
ein Flussdiagramm zum Skizzieren der Verarbeitung der durch den
Kanaladapter 21a ausgeführten
Bussteuerungsfunktion. Diese Bussteuerungsfunktion wird mit vorbestimmten
Intervallen aktiviert. In einem Schritt 801 erhält der Busauslastungs-Messlogikteil 202 das
Aktivitätsverhältnis jedes
der Busse 26 und 27. Genauer gesagt, überwacht,
wie es in der 9 dargestellt ist, die Busüberwachungsschaltung 217 des
Kanaladapters 21a ein Busbelegtsignal für jeden der Busse 26, 27 bei
den Vorderflanken eines Taktimpulssignals. Wenn sich ein vorgegebener
Bus als belegt erweist, wird ein interner Zähler entsprechend dem Bus 26 oder
dem Bus 27 um 1 inkrementiert. Während der Schritt 801 ausgeführt wird,
wird der Wert jedes der internen Zähler gelesen, und der Zählerwert
wird durch die Anzahl der Taktimpulse innerhalb einer vorbestimmten
Einheitsperiode geteilt. Dies liefert das Aktivitätsverhältnis für jeden
der Busse. Nachdem der zugehörige
Wert ausgelesen wurde, wird jeder interne Zähler gelöscht. Beim Beispiel der 9 beträgt die Anzahl
der Taktimpulse in der Einheitsperiode 10, und der aus
dem internen Zähler
ausgelesene Wert ist 5. So wird das Busaktivitätsverhältnis auf 50 % eingestellt.
-
In
einem Schritt 802 berechnet der Busauslastungs-Abschätzlogikteil 201 die
Restbytes bei sequenziellem Zugriff als Index zum Abschätzen der Busauslastungseigenschaften.
Die Restbytes bei sequenziellem Zugriff können dadurch erhalten werden, dass
auf die im Steuerspeicher 23 gespeicherten Bereichssteuerungstabellen 100 Bezug
genommen wird. Die Restbytes bei sequenziellem Zugriff werden aus
den folgenden Gründen
als Index zum Abschätzen
der Busauslastungseigenschaften verwendet.
-
Es
existieren zwei Muster beim Zugriff auf die Speichergeräte 3:
sequenzieller Zugriff und zufälliger
Zugriff. Sequenzieller Zugriff ist das Zugriffsmuster, zu dem sequenzielles
Lesen oder Schreiben von Daten ab dem Anfang ei ner Datei gehören. Sequenzieller
Zugriff wird im Allgemeinen bei einer Batchverarbeitung verwendet,
zu der große
Mengen bei der Datenübermittlung
gehören,
d. h. beim Handhaben eines großen
Anteils der Busauslastung bei der Datenübermittlung. Andererseits ist
zufälliger
Zugriff ein Zugriffsmuster, zu dem zufälliges Schreiben oder Lesen
von Daten in eine beliebige Stelle in einer Datei oder von einer
solchen beliebigen Stelle gehören.
Zufälliger
Zugriff wird im Allgemeinen bei einer Onlineverarbeitung verwendet,
bei der es um kleine Umfänge
der Datenübermittlung
geht, wobei es sich demgemäß um einen
großen
Anteil der Steuerungsdatenübermittlung
hinsichtlich der Busauslastung handelt. So ist der abgeschätzte Anteil
der Datenübermittlungsbelastung
umso höher,
je größer die Restbytes
bei sequenziellem Zugriff sind; je kleiner die Restbytes bei sequenziellem
Zugriff sind, desto höher
ist der abgeschätzte
Anteil der Belastung durch die Übermittlung
von Steuerungsdaten.
-
In
einem Schritt 803 wird ermittelt, ob das Aktivitätsverhältnis des
Busses 26 und dasjenige des Busses 27 unausgeglichen
sind. Ein Kriterium für
diese Ermittlung kann optional festgelegt werden. Zur Veranschaulichung
wird dann, wenn das Aktivitätsverhältnis eines
Busses 70 % oder mehr beträgt
und dasjenige des anderen Busses weniger als 30 % beträgt, ein
Ungleichgewicht des Aktivitätsverhältnisses zwischen
den Bussen erkannt. Wenn die Aktivitätsverhältnisse unausgeglichen sind,
wird ein Schritt 804 erreicht. Wenn die Aktivitätsverhältnisse
ausgeglichen sind, wird die Verarbeitung beendet, da der aktuelle
Busnutzungsmodus geeignet ist. Im Schritt 804 führt der
Busmodus-Auswähl-Logikteil 203 einen Busmodus-Auswähl-Prozess
aus. D. h., dass der Teil 203 den Modus, gemäß dem jeder
der Busse 26 und 27 zu nutzen ist, auf Grundlage
der im Schritt 801 erhaltenen Busaktivitätsverhältnisse
und der im Schritt 802 erfassten Restmenge bei sequenziellem
Zugriff bestimmt. Wie es in der 10 dargestellt
ist, existieren drei Busmodi, in denen die Busse wie folgt genutzt
werden.
- – Normaler
Modus. Dies ist ein Busmodus, in dem das System gestartet wird.
In diesem Modus wird der Bus 26 zur Übermittlung von Steuerungsdaten verwendet
(d. h. als spezifizierter Bus für
den Zugriff auf den Steuerspeicher 23), und der Bus 27 wird
zur Datenübermittlung
genutzt (als spezifizierter Bus für den Zugriff auf den Cache-Speicher 24).
- – Modus
mit sequenziellem Zugriff. Dies ist ein Busmodus, der dann ausgewählt wird,
wenn die durch die CPU 1 ausgegebenen Eingabe/Ausgabe-Anfragen
mehr sequenzielle als zufällige
Zugriffe beinhalten. Im Modus mit sequenziellem Zugriff wird der
Bus 26 sowohl zur Übermittlung
von Steuerungsdaten als auch zur Datenübermittlung verwendet, und
der Bus 27 wird zur Datenübermittlung verwendet.
- – Modus
mit zufälligem
Zugriff. Dies ist ein Busmodus, wie er ausgewählt wird, wenn die durch die
CPU 1 ausgegebenen Eingabe/Ausgabe-Anfragen mehr zufällige als
sequenzielle Zugriffe enthalten. Im Modus mit zufälligem Zugriff
wird der Bus 26 zur Übermittlung
von Steuerungsdaten verwendet, und der Bus 27 wird zur Übermittlung von
Steuerungsdaten und zur Datenübermittlung verwendet.
-
In
einem Schritt 805 informiert der Kanaladapter 21a alle
Kanaladapter 21b und Speichergerätadapter 22 innerhalb
der Speichersteuerung 2 über den im vorigen Schritt 804 ausgewählten Busnutzungsmodus.
Der in jedem Adapter arbeitende Buszugriffsteil 204 stellt
auf Grundlage des mitgeteilten Busnutzungsmodus die geeigneten Busse
für die Steuerspeicher-Zugriffsschaltung 215 und
die Datenübermittlungs-Steuerschaltung 216 ein.
Wenn diese Einstellung bewerkstelligt ist, nutzt die Steuerspeicher-Zugriffsschaltung 215 alleine
den Bus 26 zur Übermittlung
von Steuerungsdaten, wenn der Busmodus dem sequenziellen oder dem
normalen Modus entspricht; und die Steuerspeicher-Zugriffsschaltung 215 nutzt
sowohl den Bus 26 als auch den Bus 27 zur Übermittlung
von Steuerungsdaten, wenn der Busmodus dem Zufallsmodus entspricht.
Indessen nutzt die Datenübermittlungs-Steuerschaltung 216 alleine
den Bus 27 zur Datenübermittlung,
wenn der Busmodus der Zufallsmodus oder der normale Modus ist; und
die Datenübermittlungs-Steuerschaltung 212 nutzt
sowohl den Bus 27 als auch den Bus 26 zur Datenübermittlung,
wenn der Busmodus dem sequenziellen Modus entspricht.
-
Die 11 ist
eine Ansicht zum Veranschaulichen der Struktur der Bereichssteuerungstabellen 100,
die dazu verwendet werden, im Schritt 802 die Restbytes
bei sequenziellem Zugriff zu erhalten. Jedem der Speichergeräte 3 ist
eine Bereichssteuerungstabelle 100 zugewiesen. Die Bereichssteuerungstabelle 100 verfügt über Einträge, die
den durch die durch die CPU 1 ausgegebene Befehlskette
spezifizierten Dateibereichen entsprechen, in die Daten zu schrei ben
sind oder aus denen Daten zu lesen sind. Jeder Eintrag beinhaltet
die folgenden Felder:
- – Endadresse 1001 für den Bereich
kennzeichnet
die Startadresse jedes Bereichs in der Zieldatei für die Eingabe/Ausgabe-Operation.
- – Endadresse 1002 für den Bereich
kennzeichnet
die Endadresse jedes Bereichs in der Zieldatei für die Eingabe/Ausgabe-Operation.
- – Blocklänge 1003
kennzeichnet
die Länge
der Daten in jedem Datensatz der Zieldatei für die Eingabe/Ausgabe-Operation.
- – Endadresse 1004 der
Eingabe/Ausgabe-Verarbeitung
kennzeichnet die Adresse des Datensatzes
unmittelbar nach dem Datensatz, auf den durch die zuletzt durch
die CPU ausgegebene Befehlskette zugegriffen wurde.
- – Beendigungszeitpunkt 1005 der
Eingabe/Ausgabe-Verarbeitung
kennzeichnet den Zeitpunkt, zu
dem die Verarbeitung der zuletzt durch die CPU 1 ausgegebenen Befehlskette
endet.
- – Restmenge 1006 der
Datenübermittlung
kennzeichnet
die Restmenge der Datenübermittlung.
Wie es in der 12 dargestellt ist, ist die Restmenge
der Datenübermittlung
die Menge der Daten im Bereich von einem ersten bis zu einem zweiten
Datensatz, wobei der erste Datensatz betreffend den fraglichen Bereich
derjenige ist, der unmittelbar nach demjenigen liegt, der durch
die zuletzt von der CPU 1 ausgegebene Befehlskette verarbeitet
wurde, und wobei der zweite Datensatz derjenige ist, der die Endadresse
für den
Bereich hat.
-
Die 13 ist
ein Flussdiagramm des Prozesses zum Abspeichern von Daten in der
Bereichssteuerungstabelle 100. Dieser Prozess wird durch den
Prozessor 210 des Kanaladapters 21a ausgeführt, wenn
die Verarbeitung der durch die CPU 1 ausgegebenen Befehlskette
abgeschlossen wird. In einem Schritt 1201 erfolgt eine
Prüfung,
um zu erkennen, ob die durch die aktuelle Befehlskette in Bezug auf
die Speichergeräte 3 spezifizierte
Eingabe/Ausgabe-Verarbeitung eine Operation mit sequenziellem Zugriff
ist. Wenn es sich zeigt, dass die Eingabe/Ausgabe-Verarbeitung eine
Operation mit sequenziellem Zugriff ist, wird ein Schritt 1202 erreicht.
Wenn es sich zeigt, dass der Eingabe/Ausgabe-Prozess keine Operation mit sequenziellem
Zugriff ist, gelangt der Prozess des Abspeicherns von Daten in der
Bereichssteuerungstabelle 100 zum Ende. Die Beurteilung
hinsichtlich der Eingabe/Ausgabe-Verarbeitung erfolgt unter Bezugnahme
auf das in den Globalattributen des Parameters 502 gesetzte
Flag für
sequenziellen Zugriff im zu Beginn der Befehlskette spezifizierten
Befehl DEF_EXT. Zum Zeitpunkt, zu dem der fragliche Befehl empfangen
wird, wird der Parameter 502 im Steuerspeicher 23 abgespeichert.
Im Schritt 1202 erfolgt eine Prüfung, um zu erkennen, ob während der
aktuellen Eingabe/Ausgabe-Verarbeitung eine
EOF(End of File = Dateiende)-Information auftritt, die das Ende
des Bereichs anzeigt. Wenn keine EOF-Information erkannt wird, wird
ein Schritt 1203 erreicht. Wenn eine EOF-Information erkannt
wird, wird ein Schritt 1208 erreicht. Im Schritt 1203 wird
die Restmenge der Datenübermittlung
berechnet. Genauer gesagt, wird, wie es in der 11 dargestellt ist,
die Datenmenge im Bereich von einem ersten bis zu einem zweiten
Datensatz berechnet, wobei der erste Datensatz derjenige unmittelbar
nach dem Datensatz ist, dessen Adresse hinsichtlich des fraglichen
Bereichs durch den zuletzt von der CPU 1 ausgegebenen Befehl
LOCATE spezifiziert ist, und wobei der zweite Datensatz derjenige
mit der Endadresse des Bereichs ist. Im Schritt 1204 erfolgt
eine Prüfung,
um Folgendes zu erkennen:
Restmenge der Datenübermittlung ≤ vorbestimmter Wert
(z. B. 16 kB)
da die Busauslastung als derjenigen bei einem
zufälligen
Zugriff entsprechend angesehen wird, wobei zur Eingabe/Ausgabe-Verarbeitung
bei sequenziellem Zugriff ein ausreichend niedriger Umfang der Datenübermittlung
gehört.
Wenn die obige Bedingung nicht erfüllt ist, wird ein Schritt 1205 erreicht;
wenn die Bedingung erfüllt
ist, wird der Schritt 1208 erreicht. Im Schritt 1205 erfolgt
eine Prüfung,
um zu erkennen, ob der dem aktuellen Bereich entsprechende Eintrag
bereits in der Bereichssteuerungstabelle 100 platziert
ist. Wenn der fragliche Eintrag in der Tabelle 100 nicht
gefunden wird, wird ein Schritt 1206 erreicht; wenn es
sich ergibt, dass der Eintrag in der Tabelle 100 existiert,
wird ein Schritt 1207 erreicht. Im Schritt 1206 wird
in der Bereichssteuerungstabelle 100 ein Eintrag zum Aufnehmen
des aktuellen Bereichs zugeordnet. Dann werden das Feld 1001 für die Anfangsadresse
des Bereichs, das Feld 1002 für die Endadresse des Bereichs
und das Blocklängefeld 1003 des
zugeordneten Eintrags mit geeigneten Werten aus dem Parameter 502 des
im Steuerspeicher 23 abgespeicherten Befehls DEF_EXT gefüllt. Im
Schritt 1207 werden geeignete Werte in das Feld 1005 zum
Endzeitpunkt der Eingabe/Ausgabe-Verarbeitung und das Feld 1006 zur
Restmenge der Datenübermittlung
geschrieben. Dadurch wird der Prozess der Datenspeicherung in der
Bereichssteuerungstabelle 100 abgeschlossen. Im Schritt 1208 erfolgt
eine Prüfung
zum Erkennen, ob der dem aktuellen Bereich entsprechende Eintrag
bereits in der Bereichssteuerungstabelle 100 existiert.
Wenn es sich ergibt, dass der Eintrag in der Tabelle 100 existiert, wird
ein Schritt 1209 erreicht; wenn der Eintrag nicht in der
Tabelle 100 gefunden wird, wird der Prozess der Dateneinspeicherung
in die Bereichssteuerungstabelle 100 beendet. Im Schritt 1209 wird
der fragliche Eintrag gelöscht,
und der Prozess der Dateneinspeicherung in die Bereichssteuerungstabelle 100 wird
beendet.
-
Der
Busauslastungs-Abschätzlogikteil 201 nimmt
auf die Bereichssteuerungstabelle 100 Bezug, und er betrachtet
die Summe der Restmengen der Datenübermittlungen 1006 aller
Einträge
als Restbytes bei sequenziellem Zugriff. Jedoch erfolgen für Bereiche,
auf die länger
als eine vorbestimmte Zeitperiode (beispielsweise 10 Sekunden) nicht
zugegriffen wurde, wenn auf den Endzeitpunkt 1005 der Eingabe/Ausgabe-Verarbeitung
für jeden
Bereich in der Bereichssteuerungstabelle 100 Bezug genommen wird,
Ausnahmen. Dabei kann der Eintrag gelöscht werden, der einem Bereich
entspricht, auf den länger als
die vorbestimmte Zeitperiode nicht zugegriffen wurde.
-
Die 14 ist
ein Flussdiagramm von Schritten, die den im Schritt 804 ausgewählten Busmodus-Auswähl-Prozess
bilden. In einem Schritt 1301 erfolgt eine Prüfung, um
zu erkennen, welches Aktivitätsverhältnis höher ist,
dasjenige des Busses 26 oder das jenige des Busses 27.
Wenn das Aktivitätsverhältnis des
Busses 27 höher
als das des Busses 26 ist, wird ein Schritt 1302 erreicht.
Wenn das Aktivitätsverhältnis des
Busses 26 höher
als das des Busses 27 ist, wird ein Schritt 1307 erreicht.
Im Schritt 1302 erfolgt eine Prüfung, um zu erkennen, ob die
Restbytes bei sequenziellem Zugriff zunehmen. Die Beurteilung im
Schritt 1302 erfolgt durch Vergleichen zweier Arten von
Restbytes bei sequenziellem Zugriff. D. h., dass die Restbytes beim
aktuell ausgeführten
sequenziellen Zugriff mit denen verglichen werden, die durch die
zuvor aktivierte Bussteuerungsfunktion berechnet wurden und die
aus dem Steuerspeicher 23 ausgelesen werden. Wenn es sich zeigt,
dass die aktuellen Restbytes bei sequenziellem Zugriff zunehmen,
wird ein Schritt 1303 erreicht; wenn es sich nicht ergibt,
dass die Restbytes zunehmen, wird der Busmodus-Auswähl-Prozess
beendet, da es nicht erforderlich ist, den Durchsatz der aktuellen
Datenübermittlung
weiter zu verbessern. Im Schritt 1303 erfolgt eine Prüfung, um
zu erkennen, ob der aktuelle Busmodus der normale Modus ist. Wenn es
sich zeigt, dass der aktuelle Busmodus der normale Modus ist, wird
ein Schritt 1304 erreicht. Wenn der aktuelle Busmodus nicht
der normale Modus ist, wird ein Schritt 1305 erreicht.
Im Schritt 1304 wird als Busmodus der sequenzielle Modus
ausgewählt.
In diesem Modus nimmt der Bus 26 an der Belastung durch
die Datenübermittlung
teil, so dass der Durchsatz für
die aktuelle Datenübermittlung
weiter verbessert werden kann. Im Schritt 1305 erfolgt
eine Prüfung,
um zu erkennen, ob der aktuelle Busmodus dem Zufallsmodus entspricht.
Wenn es sich ergibt, dass der aktuelle Modus dem Zufallsmodus entspricht,
wird ein Schritt 1310 erreicht; wenn der aktuelle Busmodus
nicht der Zufallsmodus ist, bedeutet dies, dass er dem sequenziellen
Modus entspricht. Im letzteren Fall wird der Busmodus-Auswähl-Prozess
beendet, da kein weiterer Busmodus existiert, mit dem der aktuelle
Durchsatz der Datenübermittlung
weiter erhöht
werden könnte.
Im Schritt 1306 wird der normale Modus als Busmodus ausgewählt. In
diesem Modus wird der Durchsatz der aktuellen Datenübermittlung
dadurch weiter erhöht,
dass der Bus 27 alleine zur Datenübermittlung spezifiziert wird,
anstatt dass er als Bus sowohl zur Übermittlung von Steuerungsdaten
als auch zur Datenübermittlung
arbeiten würde.
Im Schritt 1307 erfolgt eine Prüfung, um zu erkennen, ob die
Restbytes bei sequenziellem Zugriff abnehmen. Wenn es sich ergibt,
dass die Restbytes bei sequenziellem Zugriff abnehmen, wird ein
Schritt 1308 erreicht; wenn es sich ergibt, dass die Restbytes
bei sequenziellem Zugriff nicht abnehmen, wird der Busmodus-Auswähl-Prozess beendet,
da es nicht erforderlich ist, den aktuellen Durchsatz bei der Übermittlung
von Steuerungsdaten weiter zu erhöhen. In einem Schritt 1308 erfolgt
eine Prüfung,
um zu erkennen, ob der aktuelle Busmodus dem normalen Modus entspricht.
Wenn es sich ergibt, dass der aktuelle Busmodus der normale Modus ist,
wird ein Schritt 1309 erreicht; wenn es sich ergibt, dass
der aktuelle Modus nicht der normale Modus ist, wird ein Schritt 1310 erreicht.
Im Schritt 1309 wird der Zufallsmodus als Busmodus ausgewählt. Im
Zufallsmodus hat der Bus 27 Anteil an der Belastung durch die Übermittlung
von Steuerungsdaten, so dass der aktuelle Durchsatz der Übermittlung
Steuerungsdaten weiter erhöht
werden kann. Im Schritt 1310 erfolgt eine Prüfung, um
zu erkennen, ob der aktuelle Modus dem sequenziellen Modus entspricht.
Wenn es sich ergibt, dass der aktuelle Busmodus dem sequenziellen
Modus entspricht, wird ein Schritt 1311 erreicht; wenn
es sich ergibt, dass der aktu elle Busmodus nicht der sequenzielle
Modus ist, bedeutet dies, dass der aktuelle Busmodus der Zufallsmodus
ist. Im letzteren Fall wird der Busmodus-Auswähl-Prozess beendet, da kein
weiterer Busmodus existiert, in dem der aktuelle Durchsatz der Übermittlung
von Steuerungsdaten weiter erhöht
werden könnte.
Im Schritt 1311 wird der normale Modus als Busmodus ausgewählt. In
diesem Modus ist der aktuelle Durchsatz bei der Übermittlung von Steuerungsdaten
dadurch weiter erhöht,
dass der Bus 26 speziell alleine zur Übermittlung von Steuerungsdaten
verwendet wird, anstatt dass er als Bus sowohl zur Übermittlung
von Steuerungsdaten als auch zur Datenübermittlung arbeiten würde.
-
Die 15 ist
ein Busmodusübergangsdiagramm.
Die 15 kennzeichnet die folgenden Busmodusübergänge:
- (1) Der aktuell wirksame normale Modus wird durch
den sequenziellen Modus ersetzt, wenn das Aktivitätsverhältnis des
Busses 27 beträchtlich höher als
das des Busses 26 wird und wenn die Restbytes bei sequenziellem
Zugriff zunehmen (Pfeil 1501). Der normale Modus wird ebenfalls durch
den sequenziellen Modus ersetzt, wenn der Modus 27 im vorigen
Modus einen Fehler zeigt (Pfeil 1502). Der normale Modus
wird dann durch den Zufallsmodus ersetzt, wenn das Aktivitätsverhältnis des
Busses 26 beträchtlich
höher als
das des Busses 27 wird, und wenn die Restbytes bei sequenziellem
Zugriff abnehmen (Pfeil 1502). Der normale Modus wird auch
dann durch den Zufallsmodus ersetzt, wenn der Bus 26 im
vorigen Modus einen Fehler zeigt (Pfeil 1502).
- (2) Der aktuell aktive sequenzielle Modus wird durch den normalen
Modus ersetzt, wenn das Aktivitätsverhältnis des
Busses 26 deutlich höher
als das des Busses 27 wird und wenn die Restbytes bei sequenziellem
Zugriff abnehmen (Pfeil 1503). Der sequenzielle Modus wird
auch den Zufallsmodus ersetzt, wenn der Bus 26 im vorigen
Modus einen Fehler zeigt (Pfeil 1504).
- (3) Der aktuell aktive Zufallsmodus wird durch den normalen
Modus ersetzt, wenn das Aktivitätsverhältnis des
Busses 27 beträchtlich
höher als
das des Busses 26 wird und die Restbytes bei sequenziellem
Zugriff zunehmen (Pfeil 1505). Der Zufallsmodus wird auch
durch den sequenziellen Modus ersetzt, wenn der Bus 27 im
vorigen Modus einen Fehler zeigt (Pfeil 1506).
-
Wenn
die Übergänge der
Busmodi auf die oben skizzierte Weise ausgeführt werden, werden die Nutzungsmodi
des Busses 26 und des Busses 27 dynamisch ge steuert,
wobei mit Änderungen
beim Betriebsmodus des Computersystems S1 Schritt gehalten wird.
Wenn irgendein Bus einen Fehler zeigt, werden die Busmodi des Busses 26 und
des Busses 27 dynamisch so gesteuert, dass die Speichersteuerung 2 ohne
Unterbrechung arbeiten kann.
-
Wie
beschrieben, ermöglicht
die Speichersteuerung gemäß der ersten
Ausführungsform
der Erfindung Änderungen
von Busnutzungsmodi entsprechend der Charakteristikänderungen
der von der CPU ausgegebenen Eingabe/Ausgabe-Anfragen. Genauer gesagt,
wählt die
Speichersteuerung in einer Eingabe/Ausgabe-Lastumgebung, zu der mehr sequenzielle
als zufällige
Zugriffe gehören,
denjenigen Busmodus aus, der Nachdruck auf den Durchsatz der Datenübermittlung
legt. In einer Eingabe/Ausgabe-Lastumgebung mit mehr zufälligen als sequenziellen
Zugriffen, wählt
die Speichersteuerung denjenigen Busmodus aus, der Nachdruck auf
den Durchsatz bei der Übermittlung
von Steuerungsdaten legt. Die erste Ausführungsform kann veranschaulichend
bei einem Bank-Onlineverarbeitungssystem angewandt werden. Während des
Tags handhabt das System einen relativ hohen Anteil von Onlineverarbeitung
einschließlich
Operationen mit automatischen Kassenplätzen, weswegen es in einem
Busmodus arbeitet, der Nachdruck auf den Durchsatz bei der Übermittlung
von Steuerungsdaten legt. Nachts widmet sich das System einem relativ
hohen Anteil von Batchverarbeitung, einschließlich eines Kontenausgleichs,
und so arbeitet es in einem Busmodus, der Nachdruck auf den Durchsatz
bei der Datenübermittlung
legt. Auf diese Weise nutzt das Bank-Onlineverarbeitungssystem die
gemeinsame Busse immer im optimalen Busnutzungsmodus.
-
Die
Speichersteuerung gemäß der ersten Ausführungsform
verfügt über zwei
Kanaladapter und zwei Speichergerätadapter. Alternativ kann die Speichersteuerung über jede
beliebige gewünschte Anzahl
von Kanaladaptern und Speichergerätadaptern verfügen.
-
Die 16 ist
ein schematisches Blockdiagramm eines Cache-Speichers S2 mit einer
Speichersteuerung 2a, die gemäß einer zweiten Ausführungsform
der Erfindung aufgebaut ist. Der Unterschied zwischen dem Computersystem
S2 und dem Computersystem S1 mit der ersten Ausführungsform liegt in der Anordnung
des gemeinsamen Busses und den Busmodi. Die Anordnung des gemeinsamen Busses
beim Computersystem S2 verfügt über drei Busse:
einen Bus 56, einen Bus 57 und einen Bus 58. Der
Bus 56 ist mit Kanaladaptern 521a und 521b,
mit Speichergerätadaptern 522 und
einem Steuerspeicher 23 verbunden. Der Bus 57 ist
mit den Kanaladaptern 521a und 521b, den Speichergerätadaptern 522 und
einem Cache-Speicher 24 verbunden.
Der Bus 58 ist mit den Kanaladaptern 521a und 521b, den
Speichergerätadaptern 522,
dem Cache-Speicher 23 und dem Cache-Speicher 24 verbunden.
Es existieren zwei Busmodi für
die gemeinsamen Busse, nämlich
der sequenzielle Modus und der Zufallsmodus. Wie es in der 17 dargestellt
ist, wird, wenn der sequenzielle Modus aktiviert ist, der Bus 56 zur Übermittlung
von Steuerungsinformation verwendet, und der Bus 57 und
der Bus 58 werden zur Datenübermittlung verwendet. Wenn
der Zufallsmodus aktiv ist, werden der Bus 56 und der Bus 58 zur Übermittlung
von Steuerungsdaten verwendet, und der Bus 57 wird zur
Datenübermittlung
verwendet.
-
Die 18 ist
ein Blockdiagramm, das den internen Aufbau des Kanaladapters 521a zeigt.
Der Unterschied zwischen dem Kanaladapter 521a und dem
Kanaladapter 21a der ersten Ausführungsform liegt in der Art,
gemäß der Busse
mit der Steuerspeicher-Zugriffsschaltung 215, der Datenübermittlungs-Steuerschaltung 216 und
der Busüberwachungsschaltung 217 verbunden
sind. Genauer gesagt, ist die Steuerspeicher-Zugriffsschaltung 215 mit den
Bussen 56 und 58 verbunden; die Datenübermittlungs-Steuerschaltung 216 ist
mit dem Bus 57 und dem Bus 58 verbunden. Die Busüberwachungsschaltung 217 ist
mit dem Bus 56 und dem Bus 57 verbunden.
-
Die 19 ist
ein Blockdiagramm, das den internen Aufbau des Speichergerätadapters 522 zeigt.
Der Unterschied zwischen dem Speichergerätadapter 522 und dem
Speichergerätadapter 22 der ersten
Ausführungsform
liegt in der Art, gemäß der die
Busse mit der Steuerspeicher-Zugriffsschaltung 215 und
der Datenübermittlungs-Steuerschaltung 216 verbunden
sind. Genauer gesagt, ist die Steuerspeicher-Zugriffsschaltung 215 mit
dem Bus 56 und dem Bus 58 verbunden; die Datenübermittlungs-Steuerschaltung 216 ist
mit dem Bus 57 und dem Bus 58 verbunden.
-
Die
Schritte, gemäß denen
das Kanalprogramm durch den Eingabe/Ausgabe-Prozessor 14 der CPU 1 ausgeführt werden,
sind dieselben wie die in der der ersten Ausführungsform zugeordneten 4.
Die Schritte, gemäß denen
die Bussteuerungsfunktion des Kanaladapters 521a in der
Speichersteuerung 2a ausgeführt werden, sind im Wesentlichen
dieselben wie diejenigen in der 8. Jedoch
unterscheidet sich der Schritt 804 in der 8 ausgeführte Busmodus-Auswähl-Modus
von dem der in der 14 dargestellten ersten Ausführungs form.
Der im Schritt 804 für
die zweite Ausführungsform
ausgeführte
Busmodus-Auswähl-Prozess
ist in der 20 dargestellt.
-
In
einem Schritt 1801 in der 20 erfolgt eine
Prüfung,
um zu erkennen, welches Aktivitätsverhältnis höher ist,
dasjenige des Busses 56 oder dasjenige des Busses 57.
Wenn das Aktivitätsverhältnis des
Busses 57 höher
als dasjenige des Busses 56 ist, wird ein Schritt 1802 erreicht.
Wenn das Aktivitätsverhältnis des
Busses 56 höher
als das des Busses 57 ist, wird ein Schritt 1805 erreicht.
Im Schritt 1802 erfolgt eine Prüfung, um zu erkennen, ob die Restbytes
bei sequenziellem Zugriff zunehmen. Wenn es sich ergibt, dass die
aktuellen Restbytes bei sequenziellem Zugriff zunehmen, wird ein
Schritt 1803 erreicht; wenn es sich ergibt, dass die Restbytes
nicht zunehmen, wird der Busmodus-Auswähl-Prozess beendet, da es nicht
erforderlich ist, den aktuellen Durchsatz der Datenübermittlung
weiter zu erhöhen.
Im Schritt 1803 erfolgt eine Prüfung, um zu erkennen, ob der
aktuelle Busmodus der Zufallsmodus ist. Wenn es sich ergibt, dass
der aktuelle Busmodus ein Zufallsmodus ist, wird ein Schritt 1804 erreicht;
wenn der aktuelle Busmodus nicht dem Zufallsmodus entspricht, bedeutet
dies, dass der aktuelle Busmodus dem sequenziellen Modus entspricht. Im
letzteren Fall wird der Busmodus-Auswähl-Prozess beendet, da kein weiterer Busmodus
existiert, in dem der aktuelle Durchsatz der Datenübermittlung erhöht werden
könnte.
Im Schritt 1804 wird der sequenzielle Modus als Busmodus
ausgewählt.
In diesem Modus wird der Bus 58 zur Datenübermittlung verwendet,
so dass der aktuelle Durchsatz der Datenübermittlung erhöht werden
kann. Im Schritt 1805 erfolgt eine Prüfung, um zu erkennen, ob die
Restbytes bei sequenziellem Zugriff abnehmen. Wenn es sich ergibt,
dass die Restbytes bei sequenziellem Zugriff abnehmen, wird ein
Schritt 1806 erreicht; wenn es sich ergibt, dass die Restbytes
bei sequenziellem Zugriff nicht abnehmen, wird der Busmodus-Auswähl-Modus
beendet, da es nicht erforderlich ist, den aktuellen Durchsatz bei
der Übermittlung
von Steuerungsdaten zu erhöhen.
Im Schritt 1806 erfolgt eine Prüfung, um zu erkennen, ob der
aktuelle Busmodus der sequenzielle Modus ist. Wenn es sich ergibt, dass
der aktuelle Busmodus der sequenzielle Modus ist, wird ein Schritt 1807 erreicht;
wenn es sich ergibt, dass der aktuelle Busmodus nicht dem sequenziellen Modus
entspricht, bedeutet dies, dass der aktuelle Busmodus dem Zufallsmodus
entspricht. Im letzteren Fall wird der Busmodus-Auswähl-Prozess
beendet, da kein weiterer Busmodus existiert, in dem der aktuelle
Durchsatz bei der Übermittlung
von Steuerungsdaten weiter erhöht
werden könnten.
Im Schritt 1807 wird der Zufallsmodus als Busmodus ausgewählt. Im Zufallsmodus wird
der Bus 58 zur Übermittlung
von Steuerungsdaten verwendet, so dass der aktuelle Durchsatz bei
der Übermittlung
von Steuerungsdaten erhöht
werden kann.
-
Auf
Grundlage des bestimmten Busnutzungsmodus stellt der in jedem Adapter
arbeitende Buszugriffsteil 204 die geeigneten Busse für die Steuerspeicher-Zugriffsschaltung 215 und
die Datenübermittlungs-Steuerschaltung 216 ein.
Wenn diese Einstellung bewerkstelligt ist, nutzt die Steuerspeicher-Zugriffsschaltung 215 alleine
den Bus 56 zur Übermittlung
von Steuerungsdaten, wenn der Busmodus dem sequenziellen Modus entspricht.
Die Steuerspeicher-Zugriffsschaltung 215 nutzt sowohl den
Bus 56 als auch den Bus 58 zur Übermittlung
von Steuerungsdaten, wenn der Busmodus dem Zufallsmodus entspricht.
Indessen nutzt die Datenübermittlungs-Steuerschaltung 212 alleine
den Bus 57 zur Datenübermittlung,
wenn der Busmodus dem Zufallsmodus entspricht; Die Datenübermittlungs-Steuerschaltung 212 nutzt
sowohl den Bus 57 als auch den Bus 56 zur Datenübermittlung,
wenn der Busmodus dem sequenziellen Modus entspricht.
-
Bei
einem Busfehler wird der aktuelle Busmodus, in dem der Fehler auftrat,
durch einen der vier in der 21 dargestellten
Modi ersetzt. Dies ermöglicht
es der Speichersteuerung 2a unabhängig von einem Fehler in irgendeinem
der konfigurierten Busse kontinuierlich zu arbeiten. Gemäß dieser
Ausführungsform
stehen die folgenden Fehlermodi zur Verfügung, wie sie in der 21 dargestellt
sind.
- – Modus
bei einem Fehler im Bus 56:
Wenn ein Fehler im Bus 56 auftrat,
wird der Bus 57 zur Datenübermittlung verwendet, und
der Bus 58 wird zur Übermittlung
von Steuerungsdaten verwendet.
- – Modus
bei einem Fehler im Bus 57:
Wenn ein Fehler im Bus 57 auftrat,
wird der Bus 56 zur Übermittlung
von Steuerungsdaten verwendet, und der Bus 58 wird zur
Datenübermittlung
verwendet.
- – Modus
bei einem Fehler im Bus 58:
Wenn ein Fehler im Bus 58 auftrat,
wird der Bus 56 zur Übermittlung
von Steuerungsdaten verwendet, und der Bus 57 wird zur
Datenübermittlung
verwendet.
- – Modus
bei einem Fehler in den Bussen 56/57:
Wenn
ein Fehler sowohl im Bus 56 als auch im Bus 57 auftrat,
wird der Bus 58 sowohl zur Übermittlung von Steuerungsdaten
als auch zur Datenübermittlung
verwendet.
-
Wie
die gemäß der ersten
Ausführungsform realisierte
Speichersteuerung 2, so erlaubt auch die Speichersteuerung 2a gemäß der zweiten
Ausführungsform Änderungen
des Busmodus entsprechend Charakteristikänderungen der durch die CPU 1 ausgegebenen
Eingabe/Ausgabe-Anfragen. Solange nicht zwei oder mehr Busse gleichzeitig
ausfallen, werden die Datenübermittlung
und die Übermittlung von
Steuerungsdaten vorteilhafterweise über jeweils einen unabhängigen Bus
ausgeführt.
Die Speichersteuerung 2a der zweiten Ausführungsform
verfügt über zwei Kanaladapter 521a und 521b sowie
zwei Speichergerätadapter 522.
Alternativ kann die Speichersteuerung 2a über jede
beliebige gewünschte Anzahl
von Kanaladaptern und Speichergerätadaptern verfügen.
-
Bei
dieser Speichersteuerung und dem Bussteuerungssystem zur Verwendung
mit dieser wird die Art der Nutzung der Busse automatisch auf den geeigneten
Modus abgestimmt, der Nachdruck auf den Durchsatz bei der Datenübermittlung
oder den Durchsatz für
Steuerungsdaten legt, um die aktuellen Busauslastungseigenschaften
widerzuspiegeln. Dies ermöglicht
es, die die Speichersteuerung aufbauenden Ressourcen selbst dann
effektiv zu nutzen, wenn sich der Betriebsmodus des angeschlossenen
Computersystems über
die Zeit hinweg ändert.