DE69535187T2 - Speichersteuergerät und Bussteuerungsverfahren dafür - Google Patents

Speichersteuergerät und Bussteuerungsverfahren dafür Download PDF

Info

Publication number
DE69535187T2
DE69535187T2 DE69535187T DE69535187T DE69535187T2 DE 69535187 T2 DE69535187 T2 DE 69535187T2 DE 69535187 T DE69535187 T DE 69535187T DE 69535187 T DE69535187 T DE 69535187T DE 69535187 T2 DE69535187 T2 DE 69535187T2
Authority
DE
Germany
Prior art keywords
bus
buses
storage device
mode
data
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 - Lifetime
Application number
DE69535187T
Other languages
English (en)
Other versions
DE69535187D1 (de
Inventor
Takao Sagamihara-shi Satoh
Hisaharu Odawara-shi Takeuchi
Yasuo Odawara-shi Inoue
Akira Sagamihara-shi Yamamoto
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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of DE69535187D1 publication Critical patent/DE69535187D1/de
Publication of DE69535187T2 publication Critical patent/DE69535187T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/349Performance evaluation by tracing or monitoring for interfaces, buses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/885Monitoring specific for caches

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Bus Control (AREA)
  • Memory System (AREA)

Description

  • 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.

Claims (12)

  1. Speichersteuerung (2; 2a), zwischen einen Prozessor (1) und ein Speichergerät (3) geschaltet, zum Steuern der Datenübermittlung zwischen dem Prozessor und dem Steuergerät, umfassend: einen Speichergerätadapter (22; 522) zum Steuern des Speichergeräts; einen Cache-Speicher (24) zum Speichern eines Teils der im Speichergerät gespeicherten Daten; einen Kanaladapter (21a, 21b; 521a, 521b) zur Kommunikation mit dem Prozessor und zum Steuern der Datenübermittlung zwischen dem Prozessor und dem Cache-Speicher; einen Steuerspeicher (23) zum Speichern von Steuerungsinformationen des Speichergerätadapters und des Kanaladapters; mehrere Busse (26, 27), jeweils mit mindestens zweien der folgenden verbunden: dem Speichergerätadapter, dem Cache-Speicher, dem Kanaladapter und dem Steuerspeicher; ein Logikteil (201) zum Schätzen der Busauslastung, ausgelegt zum Vorhersagen der Busauslastungseigenschaften; ein Logikteil (203) zur Auswahl des Busmodus, ausgelegt zum Bestimmen eines Busausnutzungsverfahrens auf der Grundlage der vom Logikteil zum Schätzen der Busauslastung vorhergesagten Busauslastungseigenschaften; wobei der Kanaladapter dazu ausgelegt ist, dem mit dem Bus verbundenen Speichergerätadapter das Busausnutzungsverfahren mitzuteilen, das vom Logikteil zur Auswahl des Busmodus bestimmt wurde; wobei die Übermittlung von Steuerungsinformationen und Daten basierend auf dem Busausnutzungsverfahren, das vom Logikteil zur Auswahl des Busmodus bestimmt wurde, durch den Bus zwischen dem Speichergerätadapter, dem Cache-Speicher, dem Kanaladapter und dem Steuerspeicher durchgeführt wird, und wobei der Kanaladapter und der Speichergerätadapter gemäß dem bestimmten Busausnutzungsverfahren auf die Busse zugreifen.
  2. Speichersteuerung nach Anspruch 1, ferner umfassend: mehrere Busse (26, 27; 56, 57, 58) und ein Logikteil (202) zum Messen der Busauslastung, das die Busausnutzungsrate jedes der mehreren Busse misst; wobei das Logikteil (203) zur Auswahl des Busmodus das Busausnutzungsverfahren bestimmt, wenn die vom Logikteil zum Messen der Busausnutzung gemessene Busausnutzungsrate unter den mehreren Bussen aus dem Gleichgewicht geraten ist.
  3. Speichersteuerung nach Anspruch 1, wobei das Logikteil (201) zum Schätzen der Busauslastung ein Erfassungsteil für die Restmenge bei sequentiellem Zugriff umfasst, das Restbytes bei sequentiellem Zugriff auf das Speichergerät erfasst; und wobei das Logikteil (203) zur Auswahl des Busmodus ein Busausnutzungsverfahren auf der Grundlage der Veränderung bei den Restbytes bei sequentiellem Zugriff bestimmt, welche das Erfassungsteil für die Restmenge bei sequentiellem Zugriff erfasst hat.
  4. Speichersteuerung nach Anspruch 1, wobei das Busausnutzungsverfahren zu jeweils festgelegten Zeiten bestimmt wird.
  5. Speichersteuerung nach Anspruch 1, ferner umfassend mehrere Kanaladapter (21a, 21b; 521a, 521b); mehrere Speichergerätadapter (22; 522); und mehrere Busse (26, 27; 56, 57, 58), deren jeder mit den mehreren Kanaladaptern und den mehreren Speichergerätadaptern verbunden ist; wobei jeder der mehreren Busse je nach dem vom Logikteil (203) zur Auswahl des Busmodus Bestimmten für die Übermittlung von Steuerungsinformationen oder von Daten benutzt wird, und wobei die Kanaladapter den mit den mehreren Bussen verbundenen mehreren Speichergerätadaptern das Busausnutzungsverfahren mitteilen, das vom Logikteil zur Auswahl des Busmodus bestimmt wurde.
  6. Speichersteuerung nach Anspruch 1, ferner umfassend mehrere Busse (26, 27; 56, 57, 58), wobei jeder der mehreren Busse je nach dem vom Logikteil (203) zur Auswahl des Busmodus Bestimmten zur Übermittlung von Steuerungsinformationen, von Daten oder sowohl von Steuerungsinformationen als auch von Daten benutzt wird.
  7. Speichersteuerung nach Anspruch 1, ferner umfassend mehrere Busse (26, 27; 56, 57, 58), wobei das Logikteil (203) zur Auswahl des Busmodus, wenn ein Fehler in einem der mehreren Busse auftritt, das Busausnutzungsverfahren für jeden der mehreren Busse außer dem Bus, in dem der Fehler auftritt, bestimmt und wobei jeder der mehreren Busse außer dem Bus, in dem der Fehler auftritt, je nach dem vom Logikteil zur Auswahl des Busmodus Bestimmten zur Übermittlung von Steuerungsinformationen, von Daten oder sowohl von Steuerungsinformationen als auch von Daten benutzt wird.
  8. Bussteuerungsverfahren für eine Speichersteuerung (2; 2a), die zwischen einen Prozessor und ein Speichergerät (3) geschaltet ist und mehrere Module und mehrere Busse (26, 27; 56, 57, 58), welche Daten und Steuerungsinformationen zwischen den mehreren Modulen übertragen, umfasst, wobei das Verfahren die folgenden Schritte umfasst: Schätzen von Busauslastungseigenschaften durch die Speichersteuerung, Auswählen eines Busausnutzungsverfahrens für die mehreren Busse basierend auf den Busauslastungseigenschaften durch die Speichersteuerung, Mitteilung des im Auswahlschritt ausgewählten Busausnutzungsverfahrens an die mit den Bussen verbundenen Module und Zugreifen, durch jedes der Module, auf die Busse gemäß dem ausgewählten Busausnutzungsverfahren.
  9. Bussteuerungsverfahren nach Anspruch 8, wobei der Auswahlschritt von einem der mehreren Module durchgeführt wird.
  10. Bussteuerungsverfahren nach Anspruch 8, wobei jeder der mehreren Busse (26, 27; 56, 57, 58) je nach dem vom Busausnutzungsverfahren im Auswahlschritt Bestimmten zum Steuern der Übermittlung von Steuerungsinformationen, von Daten oder sowohl von Steuerungsinformationen als auch von Daten benutzt wird.
  11. Bussteuerungsverfahren nach Anspruch 8, wobei der Auswahlschritt die Bestimmung, ob die Busauslastungen der mehreren Busse (26, 27; 56, 57, 58) im Gleichgewicht sind oder nicht, und, falls die Busauslastungen nicht im Gleichgewicht sind, das Bestimmen eines Busausnutzungsverfahren entsprechend den Busauslastungen beinhaltet.
  12. Bussteuerungsverfahren nach Anspruch 8, wobei der Auswahlschritt zu jeweils festgelegten Zeiten durchgeführt wird.
DE69535187T 1994-02-09 1995-02-01 Speichersteuergerät und Bussteuerungsverfahren dafür Expired - Lifetime DE69535187T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP01525594A JP3528094B2 (ja) 1994-02-09 1994-02-09 バス利用方法および記憶制御装置
JP1525594 1994-02-09

Publications (2)

Publication Number Publication Date
DE69535187D1 DE69535187D1 (de) 2006-10-05
DE69535187T2 true DE69535187T2 (de) 2007-07-19

Family

ID=11883755

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69535187T Expired - Lifetime DE69535187T2 (de) 1994-02-09 1995-02-01 Speichersteuergerät und Bussteuerungsverfahren dafür

Country Status (4)

Country Link
US (1) US5640600A (de)
EP (1) EP0671691B1 (de)
JP (1) JP3528094B2 (de)
DE (1) DE69535187T2 (de)

Families Citing this family (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5787265A (en) * 1995-09-28 1998-07-28 Emc Corporation Bus arbitration system having a pair of logic networks to control data transfer between a memory and a pair of buses
KR0159435B1 (ko) * 1995-12-30 1998-12-15 김광호 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법
KR0176637B1 (ko) * 1995-12-30 1999-04-15 김광호 디스크 콘트롤러의 프로그래머블 콘트롤 시퀀서와 그의 맵 할당방법
US5778194A (en) * 1996-04-08 1998-07-07 Symbios, Inc. Method and apparatus for measuring performance of a computer bus
US6021480A (en) * 1996-06-05 2000-02-01 Compaq Computer Corporation Aligning a memory read request with a cache line boundary when the request is for data beginning at a location in the middle of the cache line
US5819053A (en) * 1996-06-05 1998-10-06 Compaq Computer Corporation Computer system bus performance monitoring
US5903906A (en) * 1996-06-05 1999-05-11 Compaq Computer Corporation Receiving a write request that allows less than one cache line of data to be written and issuing a subsequent write request that requires at least one cache line of data to be written
US5911055A (en) * 1996-06-05 1999-06-08 Compaq Computer Corporation Using subordinate bus devices that are connected to a common bus
US6055619A (en) * 1997-02-07 2000-04-25 Cirrus Logic, Inc. Circuits, system, and methods for processing multiple data streams
US6061806A (en) * 1997-05-12 2000-05-09 Lsi Logic Corporation Method and apparatus for maintaining automatic termination of a bus in the event of a host failure
US6029216A (en) * 1997-06-27 2000-02-22 Lsi Logic Corporation Auto-termination method and apparatus for use with either active high or active low terminators
US6092131A (en) * 1997-07-28 2000-07-18 Lsi Logic Corporation Method and apparatus for terminating a bus at a device interface
US6073197A (en) * 1997-08-21 2000-06-06 Advanced Micro Devices Inc. Apparatus for and method of communicating data among devices interconnected on a bus by using a signalling channel to set up communications
US6182112B1 (en) * 1998-06-12 2001-01-30 Unisys Corporation Method of and apparatus for bandwidth control of transfers via a bi-directional interface
JP4252139B2 (ja) 1998-12-16 2009-04-08 株式会社日立製作所 記憶装置システム
US6397295B1 (en) 1999-01-04 2002-05-28 Emc Corporation Cache mechanism for shared resources in a multibus data processing system
US6963940B1 (en) * 2000-03-30 2005-11-08 International Business Machines Corporation Measuring utilization of individual components of channels
US6715011B1 (en) 2000-05-31 2004-03-30 International Business Machines Corporation PCI/PCI-X bus bridge with performance monitor
US6587905B1 (en) * 2000-06-29 2003-07-01 International Business Machines Corporation Dynamic data bus allocation
JP2002024156A (ja) * 2000-07-04 2002-01-25 Mitsubishi Electric Corp Dmaコントローラおよびその転送方法
US6952746B2 (en) * 2001-06-14 2005-10-04 International Business Machines Corporation Method and system for system performance optimization via heuristically optimized buses
US6931524B2 (en) * 2001-08-29 2005-08-16 Koninklijke Philips Electronics N.V. System for bus monitoring using a reconfigurable bus monitor which is adapted to report back to CPU in response to detecting certain selected events
TWI282513B (en) * 2002-06-12 2007-06-11 Mediatek Inc A pre-fetch device of instruction for an embedded system
JP4115204B2 (ja) 2002-08-21 2008-07-09 株式会社日立製作所 情報処理システム
KR20040029254A (ko) * 2002-09-30 2004-04-06 마츠시타 덴끼 산교 가부시키가이샤 자원관리장치
JP2005115603A (ja) * 2003-10-07 2005-04-28 Hitachi Ltd 記憶デバイス制御装置及びその制御方法
JP4391200B2 (ja) 2003-11-05 2009-12-24 株式会社日立製作所 ディスクアレイ装置及びディスクアレイ装置の制御方法
JP4508608B2 (ja) * 2003-11-13 2010-07-21 株式会社日立製作所 統合キャッシュを備えた記憶装置アダプタ
JP2005149283A (ja) * 2003-11-18 2005-06-09 Hitachi Ltd 情報処理システム、情報処理システムの制御方法及びプログラム
US20060004929A1 (en) * 2004-06-30 2006-01-05 International Business Machines Corporation Method and apparatus for recovering from inefficient behavior of devices on I/O buses
JP4927339B2 (ja) * 2005-02-23 2012-05-09 株式会社日立製作所 記憶制御装置及びその制御方法
US7929461B2 (en) * 2005-06-09 2011-04-19 Tekronix, Inc. Controller area network performance parameters measurement
US7788420B2 (en) * 2005-09-22 2010-08-31 Lsi Corporation Address buffer mode switching for varying request sizes
US7502873B2 (en) * 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US7500023B2 (en) * 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
JP2008118184A (ja) 2006-10-31 2008-05-22 Fujitsu Ltd 処理装置及び処理モジュール
JP2008234059A (ja) 2007-03-16 2008-10-02 Fujitsu Ltd データ転送装置および情報処理システム
US8001298B2 (en) * 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US7941570B2 (en) * 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8214562B2 (en) * 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US7890668B2 (en) * 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US7899944B2 (en) * 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US8176222B2 (en) * 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8312189B2 (en) * 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8108570B2 (en) * 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US7917813B2 (en) * 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
US8095847B2 (en) * 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8166206B2 (en) * 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8196149B2 (en) * 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US7937507B2 (en) * 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7840717B2 (en) * 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US7904605B2 (en) * 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US8082481B2 (en) * 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US7904606B2 (en) * 2008-07-31 2011-03-08 International Business Machines Corporation Transport control channel program chain linked branching
US8055807B2 (en) 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US7937504B2 (en) * 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
WO2010041481A1 (en) 2008-10-10 2010-04-15 Hitachi, Ltd. Storage system and method for controlling the same
WO2010100768A1 (en) * 2009-03-06 2010-09-10 Hitachi, Ltd. Storage system and its multiple extent exclusive control method
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
JP5741301B2 (ja) 2011-08-05 2015-07-01 富士通株式会社 通信制御装置、情報処理装置及びパス選択方法
CN102799396B (zh) * 2012-07-22 2015-09-16 北京忆恒创源科技有限公司 存储设备、中断控制方法以及供电时间测量方法
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
JP6119533B2 (ja) * 2013-09-27 2017-04-26 富士通株式会社 ストレージ装置,ステージング制御方法及びステージング制御プログラム
US11126367B2 (en) * 2018-03-14 2021-09-21 Western Digital Technologies, Inc. Storage system and method for determining ecosystem bottlenecks and suggesting improvements

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4633387A (en) * 1983-02-25 1986-12-30 International Business Machines Corporation Load balancing in a multiunit system
US5155807A (en) * 1986-02-24 1992-10-13 International Business Machines Corporation Multi-processor communications channel utilizing random access/sequential access memories
US5241677A (en) * 1986-12-19 1993-08-31 Nippon Telepgraph and Telehone Corporation Multiprocessor system and a method of load balancing thereof
US5003465A (en) * 1988-06-27 1991-03-26 International Business Machines Corp. Method and apparatus for increasing system throughput via an input/output bus and enhancing address capability of a computer system during DMA read/write operations between a common memory and an input/output device
US5253351A (en) * 1988-08-11 1993-10-12 Hitachi, Ltd. Memory controller with a cache memory and control method of cache memory including steps of determining memory access threshold values
JPH0293836A (ja) * 1988-09-30 1990-04-04 Toshiba Corp 分散型データベース管理装置
US5097410A (en) * 1988-12-30 1992-03-17 International Business Machines Corporation Multimode data system for transferring control and data information in an i/o subsystem
GB8901197D0 (en) * 1989-01-19 1989-03-15 British Aerospace Digital data bus loading monitors
AU638840B2 (en) * 1990-07-05 1993-07-08 Sumitomo Chemical Company, Limited Pyrimidine derivative
JP3119919B2 (ja) * 1991-12-11 2000-12-25 富士通株式会社 計算機システム
US5280587A (en) * 1992-03-31 1994-01-18 Vlsi Technology, Inc. Computer system in which a bus controller varies data transfer rate over a bus based on a value of a subset of address bits and on a stored value
US5426736A (en) * 1993-05-26 1995-06-20 Digital Equipment Corporation Method and apparatus for processing input/output commands in a storage system having a command queue

Also Published As

Publication number Publication date
EP0671691B1 (de) 2006-08-23
EP0671691A2 (de) 1995-09-13
JPH07225737A (ja) 1995-08-22
DE69535187D1 (de) 2006-10-05
JP3528094B2 (ja) 2004-05-17
EP0671691A3 (de) 1996-12-04
US5640600A (en) 1997-06-17

Similar Documents

Publication Publication Date Title
DE69535187T2 (de) Speichersteuergerät und Bussteuerungsverfahren dafür
DE69733374T2 (de) Speichersteuerungsvorrichtung und -system
DE69032337T2 (de) Multiprozessorsystem verwendendes Datenbasisverarbeitungssystem
DE69524285T2 (de) Multiprozessorsystem, dieses System verwendende Plattensteuerung, und nicht unterbrechendes Wartungsverfahren dafür
DE3852433T2 (de) Funktionsverteiltes Steuergerät.
DE69715967T2 (de) Quorummechanismus in einem verteilten Zweiknotenrechnersystem
DE68927172T2 (de) Multiprozessorsystem mit cache-speichern
DE3685876T2 (de) Meister-sklave-mikroprozessorsystem mit einem virtuellen speicher.
DE69519816T2 (de) Anordnung mit Duplikat des Cache-Etikettenspeichers
DE68924954T2 (de) Übertragungssystem für verteilte Datenbanken.
DE602004012492T2 (de) DMA-Steuerung mit Busbesetzungszeit-Beschränkung sowie DMA-Parametersätze für mehrere logische Prozessoren
DE2902465A1 (de) Datenverarbeitungsanordnung
DE69527634T2 (de) Rechner-Cachespeichersystem
DE3439302A1 (de) Speichersteuerungsvorrichtung
DE69114321T2 (de) Zum Durchführen der Unterbrechungsverschachtelungsfunktion geeignetes Unterbrechungssteuerungsgerät.
DE68924992T2 (de) Symmetrische Steuerungsanordnung für Multiverarbeitung.
DE69130468T2 (de) DMA-Steuerung mit Sprungfunktion
DE2054830C3 (de) Informationsverarbeitungsanlage mit Mitteln zum Zugriff zu Speicher-Datenfeldern variabler Länge
DE3502147C2 (de)
DE3726168C2 (de)
DE60026068T2 (de) System für externe transaktionen mit dynamischen prioritäten
DE69122142T2 (de) Steuerungsanlage für ein Mehrprozessorsystem
DE68928525T2 (de) Verfahren zum teilweisen Austausch reeller, von einem Programm benutzter Speicherbereiche zwischen einem reellen Speicher und einem Hilfsspeicher
DE3338329C2 (de)
DE3750045T2 (de) Unterbrechungssteuerungsvorrichtung für eine virtuelle Maschine mit einer Vielzahl von Verarbeitungseinheiten.

Legal Events

Date Code Title Description
8364 No opposition during term of opposition