-
HINTERGRUND DER ERFINDUNG
-
Einhergehend
mit den jüngsten
Fortschritten bei Informationstechnologien werden Fernkopien zum
Erzielen einer Rückkehr
in den Grundzustand nach einem katastrophalen Fehler und dergleichen erstellt,
wobei mehrere Speichervorrichtungen miteinander kommunizieren und
wobei eine Speichervorrichtung, die von einer Informationsverarbeitungsvorrichtung
eine Daten-Ein/Ausgabeanforderung empfangen
hat, auf Daten zugreift, die in einer anderen Speichervorrichtung
gespeichert sind. Diese Technik ist z. B. in
US 5,742,792 offenbart. Die Ein/Ausgabe
von Daten in/aus der anderen Speichervorrichtung ist durch die Kommunikationseigenschaften
zwischen den beiden Speichervorrichtungen eingeschränkt.
-
Aus
EP 1 357 476 A2 ist
eine Speichersteuerung bekannt, die im Wesentlichen dem Oberbegriff des
Anspruchs 1 entspricht.
-
US 6,609,164 B1 offenbart
ein Diskarray-Datenspeichersystem mit direktem Speicherzugriff und einer
Nachrichtenverbindung zwischen verschiedenen Baugruppen.
-
Aus
US 2003/0204649 A1 und
US 2003/0182516 A1 sind
weitere Datenspeichersteuerungen mit jeweils mehreren miteinander
kommunizierenden Speichergruppen bekannt.
-
ZUSAMMENFASSUNG DER ERFINDUNG
-
Aufgabe
der Erfindung ist es, die Ein/Ausgabe von Daten in/aus zwei oder
mehreren Speicherbereichen so zu koordinieren, dass verteilt gespeicherte große Datenmengen
effizient genutzt werden können.
-
Erfindungsgemäße Lösungen dieser
Aufgabe sind in den Ansprüchen
1 und 8 angegeben.
-
Aus
der folgenden Beschreibung werden Ausführungsbeispiele der Erfindung
in Verbindung mit den beigefügten
Zeichnungen ersichtlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist
ein Blockdiagramm, das die Gesamtstruktur eines Speichersystems
gemäß einer ersten
Ausführungsform
der Erfindung zeigt.
-
2 ist
ein Blockdiagramm, das die Struktur eines Verwaltungsterminals gemäß der ersten Ausführungsform
zeigt.
-
3 ist
ein Blockdiagramm, das die Struktur einer Kanal-Steuerungseinheit gemäß der ersten Ausführungsform
zeigt.
-
4 ist
ein Blockdiagramm, das die Struktur einer Platten-Steuerungseinheit
gemäß der ersten
Ausführungsform
zeigt.
-
5 ist
ein Blockdiagramm, das die Struktur einer Informationsverarbeitungsvorrichtung
gemäß der ersten
Ausführungsform
zeigt.
-
6 ist
ein Blockdiagramm, das die Struktur eines Datenübertragungs-LSI gemäß der ersten Ausführungsform
zeigt.
-
7 ist
ein Blockdiagramm, das eine DMA-Systemkonfiguration gemäß der ersten
Ausführungsform
zeigt.
-
8 ist
ein Diagramm, das einen Speicher #2 gemäß der ersten Ausführungsform
zeigt.
-
9 ist
ein Diagramm, das einen Speicher #1 gemäß der ersten Ausführungsform
zeigt.
-
10 ist
ein Diagramm, das einen Cachespeicher gemäß der ersten Ausführungsform
zeigt.
-
11 ist
ein Diagramm, das einen gemeinsamen Speicher gemäß der ersten Ausführungsform zeigt.
-
12 ist
ein Diagramm, das eine Paar-Verwaltungstabelle gemäß der ersten
Ausführungsform zeigt.
-
13 ist
ein Diagramm, das eine Konfigurationsinformations-Verwaltungstabelle
gemäß der ersten
Ausführungsform
zeigt.
-
14 ist
ein Diagramm, das eine Daten-Eingabe/Ausgabe-Anforderung gemäß der ersten Ausführungsform
zeigt.
-
15 ist
ein Blockdiagramm zum Veranschaulichen der Verwaltung eines Speicher-Datenbereichs
gemäß der ersten
Ausführungsform.
-
16 ist
ein Flussdiagramm zum Veranschaulichen eines Lesebefehlsprozesses
gemäß einer
anderen Ausführungsform
der Erfindung.
-
17 ist
ein Flussdiagramm zum Veranschaulichen eines Lesebefehlsprozesses
gemäß der ersten
Ausführungsform.
-
18 ist
ein Flussdiagramm zum Veranschaulichen des Lesebefehlsprozesses
gemäß der ersten
Ausführungsform.
-
19 ist
ein Blockdiagramm zum Veranschaulichen einer Datenübertragung
gemäß der ersten
Ausführungsform.
-
20 ist
ein Diagramm, das einen Speicher #3 gemäß der ersten Ausführungsform
zeigt.
-
21 ist
ein Blockdiagramm, das Datenübertragung
gemäß der ersten
Ausführungsform
skizziert.
-
22 ist
ein Flussdiagramm zum Skizzieren von Datenübertragung gemäß der ersten
Ausführungsform.
-
23 ist
ein Blockdiagramm, das Datenübertragung
gemäß der ersten
Ausführungsform
skizziert.
-
24 ist
ein Flussdiagramm zum Skizzieren von Datenübertragung gemäß der ersten
Ausführungsform.
-
25 ist
ein Flussdiagramm zum Veranschaulichen der Abfolge bei einem Datenübertragungsprozess
gemäß der ersten
Ausführungsform.
-
26 ist
ein Flussdiagramm zum Veranschaulichen der Abfolge bei einem Datenübertragungsprozess
gemäß der ersten
Ausführungsform.
-
27 ist
ein Flussdiagramm zum Veranschaulichen der Abfolge bei einem Datenübertragungsprozess
gemäß der ersten
Ausführungsform.
-
28 ist
ein Flussdiagramm zum Veranschaulichen der Abfolge bei einem Datenübertragungsprozess
gemäß der ersten
Ausführungsform.
-
29 ist
ein Flussdiagramm zum Veranschaulichen der Abfolge bei einem Datenübertragungsprozess
gemäß der ersten
Ausführungsform.
-
30 ist
ein Blockdiagramm, das die Struktur einer Kanal-Steuerungseinheit gemäß einer
zweiten Ausführungsform
der Erfindung zeigt.
-
31 ist
ein Diagramm, das einen Speicherraum für einen Protokoll-LSI gemäß der zweiten Ausführungsform
zeigt.
-
32 ist
ein Flussdiagramm zum Veranschaulichen der Abfolge bei einem Datenübertragungsprozess
gemäß der zweiten
Ausführungsform.
-
BESCHREIBUNG DER AUSFÜHRUNGSFORMEN
-
<Erste
Ausführungsform>
-
– Beispiel
der Gesamtstruktur –
-
Die 1 ist
ein Blockdiagramm, das die Gesamtstruktur eines Speichersystems
mit einer Speichervorrichtung A 600 mit einer Speichersteuerungsvorrichtung
(erste Speichersteuerungsvorrichtung) 100A einer Speichervorrichtung
B 600 zeigt. Die Struktur der Speichervorrichtung A 600 kann
derjenigen der Speichervorrichtung B 600 ähnlich sein. Nachfolgend
werden die Kennungen A und B weggelassen, wenn es nicht erforderlich
ist, die Speichervorrichtung A 600 und die Speichervorrichtung
B 600 zu unterscheiden.
-
Die
Speichervorrichtung 600 verfügt über die Speichersteuerungsvorrichtung 100 und
eine Speichertreibervorrichtung 300. Die Speichersteuerungsvorrichtung 100A empfängt von
einer Informationsverarbeitungsvorrichtung 200 eine Dateneingabe/Ausgabe-Anforderung,
und sie führt
in Bezug auf einen Speicher-Datenbereich A (einen ersten Speicher-Datenbereich) 310,
der Daten speichert und zur Speichertreibervorrichtung A 300 gehört, einen
Daten-Eingabe/Ausgabe-Prozess aus. Die Speichersteuerungsvorrichtung
(zweite Speichersteuerungsvorrichtung) 100B ist so angeschlossen,
dass sie mit der Speichersteuerungsvorrichtung 100A kommunizieren
kann, und sie führt
hinsichtlich eines Speicher-Datenbereichs B (zweiter Speicher-Datenbereich) 310,
der Daten speichert und zur Speichertreibervorrichtung B 300 gehört, einen
Daten-Eingabe/Ausgabe-Prozess
aus.
-
Der
Speicher-Datenbereich 310 verfügt über einen physikalischen und
einen logischen Datenbereich, wobei der erstere ein physikalischer
Speicherbereich ist, der durch ein Plattenlaufwerk wie ein Festplatten-Laufwerk
gebildet ist, und der letztere ein Speicherbereich ist, der logisch
im physikalischen Datenbereich eingetragen ist. Nachfolgend werden der
Speicher-Datenbereich 310 und der logische Datenbereich
dort, wo es geeignet ist, als Logikeinheit (LU) bezeichnet.
-
Die
Informationsverarbeitungsvorrichtung ist eine Informationsanlage
wie ein Computer mit einer CPU und einem Speicher. Die CPU der Informationsverarbeitungsvorrichtung 200 führt verschiedene Programme
aus, um eine Anzahl von Funktionen zu realisieren. Die Informationsverarbeitungsvorrichtung
kann ein PC, eine Workstation oder ein Großrechner sein.
-
Die
Speichersteuerungsvorrichtung 100A ist so angeschlossen,
dass sie über
ein Speicherbereichsnetzwerk (SAN) 500 mit der Informationsverarbeitungsvorrichtung 200 kommunizieren
kann. Kommunikationsvorgänge
zwischen der Informationsverarbeitungsvorichtung 200 und
der Speichersteuerungsvorrichtung 100A über das SAN 500 werden
allgemein auf Grundlage eines Faserkanalprotokolls ausgeführt. In
diesem Fall besteht das SAN 500 aus einer Kommunikationsanlage
mit mindestens einem oder auch mehr Vermittlungseinheiten oder dergleichen
in Übereinstimmung
mit dem Faserkanalprotokoll. Die Informationsverarbeitungsvorrichtung 200 sendet
eine Daten-Eingabe/Ausgabe-Anforderung entsprechend
dem Faserkanalprotokoll an die Speichersteuerungsvorrichtung 100A.
Wenn Kom munikationsvorgänge
gemäß dem Faserkanalprotokoll ausgeführt werden,
werden zu sendende und zu empfangende Daten für jede vorbestimmte Datenlänge (z.
B. für
jeweils 2 kByte) in einen oder mehrere Datenblöcke unterteilt. Kommunikationsvorgänge werden
mit der Einheit eines jeweiligen Datenblocks gesteuert.
-
Es
ist ersichtlich, dass die Informationsverarbeitungsvorrichtung 200 und
die Speichersteuerungsvorrichtung 100A ohne SAN 500 verbunden werden
können.
In diesem Fall können
Kommunikationsvorgänge
zwischen der Informationsverarbeitungsvorrichtung 200 und
der Speichersteuerungsvorrichtung 100A unter Verwendung
eines Kommunikationsprotokolls für
einen Großrechner,
wie Fibre Connection (FICON) (registrierte Handelsmarke) und Enterprise
System Connection (ESCON) (registrierte Handelsmarke), oder ein
Kommunikationsprotokoll wie Transmission Control Protocol/Internet
Protocol (TCP/IP), das vom Internet oder dergleichen verwendet wird,
ausgeführt
werden.
-
Die
Speichersteuerungsvorrichtung 100A ist auch so angeschlossen,
dass sie über
das SAN 500 mit der Speichersteuerungsvorrichtung 100B kommunizieren
kann. Da SAN 500 zwischen der Speichersteuerungsvorrichtung 100A und
der Speichersteuerungsvorrichtung 100B besteht aus einer
Kommunikationsanlage mit mindestens einem oder auch mehreren Vermittlungseinheiten
in Übereinstimmung mit
z. B. dem Faserkanalprotokoll. Wenn Kommunikationsvorgänge in Übereinstimmung
mit dem Faserkanalprotokoll ausgeführt werden, werden zu sendende
und zu empfangende Daten für
jede vorbestimmte Datenlänge
in einen oder mehrere Datenblöcke
unterteilt. Kommunikationsvorgänge
werden mit der Einheit eines jeden Datenlocks gesteuert. Das die
Speichersteuerungsvorrichtung 100A und die Speichersteuerungsvorrichtung 100B verbindende SAN 500 kann
so angeschlossen sein, dass es mit dem SAN 500, das die
Speichersteuerungsvorrichtung 100A und die Informationsverarbeitungsvorrichtung 200 verbindet,
kommunizieren kann oder auch nicht. Es ist ersichtlich, dass die
Speichersteuerungsvorrichtung 100A und die Speichersteuerungsvorrichtung
B 200 ohne SAN 500 verbunden werden können. In
diesem Fall können
Kommunikationsvorgänge
zwischen der Speichersteuerungsvorichtung 100A und der
Speichersteuerungsvorrichtung 100B unter Verwendung eines
Kommunikationsprotokolls für
einen Großrechner,
wie FICON (registrierte Handelsmarke) und ESCON (registrierte Handelsmarke), oder
ein Kommunikationsprotokoll wie TCP/IP, das durch das Internet oder
dergleichen verwendet wird, ausgeführt werden.
-
Die
Speichervorrichtung B 600 kann an einer Stelle entfernt
von der Speichervorrichtung A 600 installiert sein. In
diesem Fall können
selbst dann, wenn in der Speichervorrichtung B 600 gespeicherte Daten
gelöscht
werden oder sie wegen eines katastrophalen Fehlers nicht gelesen
oder geschrieben werden können,
Informationsverarbeitungsdienste durch die Informationsverarbeitungsvorrichtung 200 unter
Verwendung von Daten fortgesetzt werden, die mittels einer Fernkopie
zwischen der Speichervorrichtung A 600 und der Speichervorrichtung
B 600 in der letzteren gespeichert wurden. Eine Fernkopie
bedeutet, dass eine Kopie von in der Speichervorrichtung A 600 gespeicherten
Daten in der Speichervorrichtung B 600 gespeichert wird,
oder es bedeutet eine derartige Technologie. Um Übereinstimmung zwischen in
der Speichervorrichtung A 600 gespeicherten Daten und in
der Speichervorrichtung B 600 gespeicherten Daten aufrecht
zu erhalten, wenn die Informationsverarbeitungsvorrichtung 200 Daten
in die Speichervorrichtung A 600 schreibt, wird eine Kopie
der Schreibdaten von der Speichervorrichtung A 600 an die
Speichervorrichtung B 600 gesendet. Die Speichervorrichtung
B 600 speichert eine Kopie der Schreibdaten in der Speichertreibervorrichtung
B 300. Eine Fernkopie zwischen der Spei chervorrichtung
A 600 und der Speichervorrichtung B 600 wird später beschrieben.
-
Durch
Verbinden der Speichervorrichtung B 600 und der Speichervorrichtung
A 600 in solcher Weise, dass Kommunikationsvorgänge ausgeführt werden
können,
kann eine Speichervereinigung realisiert werden. Die Speichervereinigung
ist die Technologie, bei der eine große Menge von Daten, die getrennt
und verteilt in mehreren Speichervorrichtungen gespeichert sind,
integral verwaltet werden, um die große Menge von Daten effizient
zu nutzen, die verteilt in den jeweiligen Speichervorrichtungen
gespeichert sind. Durch diese Technologie wird z. B. dann, wenn
die Speichervorrichtung A 600 neu in das Informationsverarbeitungssystem
eingeführt
wird, die alte Speichervorrichtung B 600, die bis dahin
verwendet wurde, unverändert
verwendet, so dass eine große
Menge vergangener Daten effizient genutzt werden kann. Auch können Daten
integral verwaltet werden, die in Speichervorrichtungen 600 verschiedener Hersteller
gespeichert sind. In diesem Fall kann die Informationsverarbeitungsvorrichtung 200 nicht
nur dadurch auf die in der Speichervorrichtung A 600 gespeicherten
Daten zugreifen, dass sie eine Daten-Eingabe/Ausgabe-Anforderung
an die Speichervorrichtung A 600 überträgt, sondern sie kann auch auf
die in der Speichervorrichtung B 600 gespeicherten Daten
zugreifen. Einzelheiten zur Speichervereinigung werden später angegeben.
-
Beim
in der 1 dargestellten Speichersystem sind zwar nur eine
Speichervorrichtung A 600 und eine Speichervorrichtung
B 600 dargestellt, jedoch können mehrere Speichervorrichtungen
A 600 und mehrere Speichervorrichtungen B 600 verwendet
werden.
-
– Speicher-Datenbereich –
-
Die
Speichertreibervorrichtung 300 verfügt über eine Anzahl von Plattenlaufwerken.
Die Speichervorrichtung 600 kann daher die Informationsverarbeitungsvorrichtung 200 mit
einem großen Speicherbereich
versehen. Die Speichertreibervorrichtung 300 kann ein Plattenarray
mit z. B. mehreren Plattenlaufwerken bilden. In diesem Fall kann
der für die
Informationsverarbeitungsvorrichtung 200 bereitgestellte
Speicherbereich mehreren Plattenlaufwerken unter Verwaltung durch
Redundant Arrays of Inexpensive Disks (RAID) entsprechen.
-
Jeder
Speicher-Datenbereich 310 erhält eine spezielle Kennung (nachfolgend
auch als Logikeinheitsnummer (LUN) bezeichnet). Obwohl zugehörige Einzelheiten
später
angegeben werden, wird, wie es in der 14 dargestellt
ist, eine von der Informationsverarbeitungsvorrichtung 200 an
die Speichervorrichtung A 600 übertragene Daten-Eingabe/Ausgabe-Anforderung mittels
der LUN zum Spezifizieren des Datenspeicherbereichs geschrieben.
Die Speichervorrichtung A 600 verfügt über eine Funktion zum Versorgen
der Informationsverarbeitungsvorrichtung 200 mit einem
Speicherbereich mittels einer LUN-Spezifizierung.
-
Die
Speichersteuerungsvorrichtung 100 und die Speichertreibervorrichtung 300 können direkt
verbunden sein, wie es in der 1 dargestellt
ist, oder sie können über ein
Netzwerk verbunden sein. Die Speichertreibervorrichtung 300 kann
integral mit der Speichersteuerungsvorrichtung 100 strukturiert
sein.
-
– Speichersteuerungsvorrichtung –
-
Die
Speichersteuerungsvorrichtung 100 verfügt über Kanal-Steuerungseinheiten 110, einen
gemeinsamen Speicher 120, einen Cachespeicher (Cachespeichereinheit) 130,
Platten-Steuerungseinheiten 140,
ein Verwaltungsterminal 160 und eine Verbindungseinheit 150.
-
Die
Kanal-Steuerungseinheiten 110 verfügen über Kommunikationsschnittstellen
für Kommunikationsvorgänge mit
der Informationsverarbeitungsvorrichtung 200 und anderen
Speichervorrichtungen 600, und sie verfügen über eine Funktion zum Übertragen
einer Daten-Eingabe/Ausgabe-Anforderung und von Daten an die Informationsverarbeitungsvorrichtung 200 und
andere Speichervorrichtungen 600 und von diesen.
-
Jede
Kanal-Steuerungseinheit 110 ist gemeinsam mit dem Verwaltungsterminal 160 über ein internes
LAN 151 angeschlossen. Durch diesen Anschluss kann ein
Mikroprogramm oder dergleichen, wie es durch jede Kanal-Steuerungseinheit 110 auszuführen ist,
vom Verwaltungsterminal 160 an die Kanal-Steuerungseinheit 110 gesendet
werden, um in dieser installiert zu werden. Die Struktur der Kanal-Steuerungseinheit 110 wird
später
beschrieben.
-
Die
Verbindungseinheit 150 verbindet die Kanal-Steuerungseinheit 110,
den gemeinsamen Speicher 120, den Cachespeicher 130 und
die Platten-Steuerungseinheiten 140 miteinander. Eine Übertragung
von Daten und Befehlen erfolgt mittels der Verbindungseinheit 150 zwischen
den Kanal-Steuerungseinheiten 110, dem gemeinsamen Speicher 120,
dem Cachespeicher 130 und den Platten-Steuerungseinheiten 140.
Die Verbindungseinheit 150 besteht z. B. aus einer Kreuzschienen-Vermittlungsstelle.
-
Der
gemeinsame Speicher 120 und der Cachespeicher 130 bilden
einen Speicher, der von den Kanal-Steuerungseinheiten 110 und
den Platten-Steuerungseinheiten 140 gemeinsam genutzt wird.
Der gemeinsame Speicher 120 wird hauptsächlich zum Speichern von Steuerungsinformation,
Befehlen und dergleichen verwendet, wohingegen der Cachespeicher 130 hauptsächlich zum
Speichern von Daten verwendet wird. Der Cachespeicher 130 und
der gemeinsame Speicher 120 sind so strukturiert, dass
sie über
eine Leiterplatte mit Speichern zum Speichern von Daten verfügen.
-
Wenn
z. B. eine von der Informationsverarbeitungsvorrichtung 200 in
der Kanal-Steuerungseinheit 110 empfangene Daten-Eingabe/Ausgabe-Anforderung
eine Datenschreibanforderung ist, schreibt die Kanal-Steuerungseinheit 110 dieselbe
in den gemeinsamen Speicher 120, und sie schreibt die von der
Informationsverarbeitungsvorrichtung 200 empfangenen Schreibdaten
in den Cachespeicher 130. Die Platten-Steuerungseinheit 140 überwacht
den gemeinsamen Speicher 120, und wenn sie erkennt, dass
eine Datenschreibanforderung in diesen geschrieben wird, liest sie
die Schreibdaten entsprechend der Datenschreibanforderung aus dem
Cachespeicher 130 und schreibt sie in die Speichertreibervorrichtung 300.
-
Wenn
eine von der Informationsverarbeitungsvorrichtung 200 in
der Kanal-Steuerungseinheit 110 empfangene Daten-Eingabe/Ausgabe-Anforderung
eine Datenleseanforderung ist, prüft die Kanal-Steuerungseinheit 110,
ob die Daten im Cachespeicher 130 existieren. Wenn die
Lesedaten im Cachespeicher 130 existieren, sendet die Kanal-Steuerungseinheit 110 die
Daten an die Informationsverarbeitungsvorrichtung 200.
Wenn die Lesedaten nicht im Cachespeicher 130 existieren,
schreibt die Kanal-Steuerungseinheit 110 die Datenleseanforderung in
den gemeinsamen Speicher 120, und sie überwacht diesen. Wenn die Platten-Steuerungseinheit 140 erkennt,
dass die Datenleseanforderung in den gemeinsamen Speicher 120 geschrieben
ist, liest sie die Lesedaten von der Speichertreibervorrichtung 300,
sie schreibt sie in den Cachespeicher 130, und sie schreibt
diesen Effekt in den gemeinsamen Speicher 120. Wenn die
Kanal-Steuerungseinheit 110 erkennt, dass die Lesedaten
in den Cachespeicher 130 geschrieben sind, sendet sie die
Lesedaten an die Informationsverarbeitungsvorrichtung 200.
-
Auf
diese Weise werden Daten über
den Cachespeicher zwischen der Kanal-Steuerungseinheit 110 und
der Platten-Steuerungseinheit 140 übertragen. Der Cachespeicher 130 und
der gemeinsame Speicher 120 können integral strukturiert
sein.
-
Daten
zum Senden und Empfangen zwischen der Speichersteuerungsvorrichtung 100A und der
Informationsverarbeitungsvorrichtung 200 oder der Speichersteuerungsvorrichtung 100B werden
im Cachespeicher 130 gespeichert. Wenn z. B. die Speichervorrichtung
A 600 eine Datenschreibanforderung hinsichtlich der Speichervorrichtung
B 600 von der Informationsverarbeitungsvorrichtung 200 empfängt, speichert
die Kanal-Steuerungseinheit 110 der Speichervorrichtung
A 600 die Datenschreibanforderung und die Schreibdaten
im Cachespeicher 130, und sie sendet sie an die Speichervorrichtung
B 600. In Reaktion darauf schreibt die Speichervorrichtung
B 600 die Schreibdaten entsprechend der empfangenen Datenschreibanforderung
in die Speichertreibervorrichtung B 300. Wenn die Speichervorrichtung
A 600 eine Datenschreibanforderung und Schreibdaten hinsichtlich
ihrer Speichertreibervorrichtung A 300 von der Informationsverarbeitungsvorrichtung 200 empfängt und
wenn die Schreibdaten als Fernkopie für die Speichervorrichtung B 600 zu
verwenden sind, sendet die Kanal-Steuerungseinheit 110 der
Speichervorrichtung A 600 die im Cachespeicher 130 gespeicherten
Schreibdaten an die Speichervorrichtung B 600. Die Speichervorrichtung
B 600 schreibt die empfangenen Schreibdaten in die Speichertreibervorrichtung
B 300.
-
Anstelle
einer indirekten Anweisung zum Lesen/Schreiben von Daten von der
Kanal-Steuerungseinheit 110 an die Platten- Steuerungseinheit 140 über den
gemeinsamen Speicher 120 kann eine direkte Anweisung zum
Lesen/Schreiben von Daten von der Kanal-Steuerungseinheit 110 an
die Platten-Steuerungseinheit 140 ohne Beteiligung des
gemeinsamen Speichers 120 ausgeführt werden.
-
Die
Kanal-Steuerungseinheit 110 kann mit der Funktion der Platten-Steuerungseinheit 140 versehen
sein, damit die Kanal-Steuerungseinheit 110 die Daten hinsichtlich
der Speichertreibervorrichtung 300 liest/schreibt.
-
Die
Platten-Steuerungseinheit 140 liest und schreibt Daten
hinsichtlich des Speicher-Datenbereichs 310 der Speichertreibervorrichtung 300.
Zum Beispiel schreibt, wie oben beschrieben, die Kanal-Steuerungseinheit 110 Daten
entsprechend einer von der Informationsverarbeitungsvorrichtung 200 empfangenen
Datenschreibanforderung in die Speichertreibervorrichtung 300.
-
Jede
Platten-Steuerungseinheit 140 ist gemeinsam mit dem Verwaltungsanschluss 160 mit dem
internen LAN 151 verbunden, so dass wechselseitige Steuerungseinheitsvorgänge möglich ist.
Daher ist es möglich,
dass das Verwaltungsterminal 160 ein auszuführendes
Mikroprogramm oder dergleichen an jede Platten-Steuerungseinheit 140 sendet und
in ihr installiert. Die Struktur der Platten-Steuerungseinheit 140 wird
später
beschrieben.
-
Bei
dieser Ausführungsform
nimmt zwar die Beschreibung an, dass der gemeinsame Speicher 120 und
der Cachespeicher 130 unabhängig von der Kanal-Steuerungseinheit 110 und
der Platten-Steuerungseinheit 140 vorhanden sind, jedoch
ist die Ausführungsform
nicht alleine auf eine derartige Anordnung beschränkt. Zum
Beispiel ist es auch bevorzugt, dass der gemeinsame Speicher 120 und
der Cachespeicher 130 verteilt für jeweils die Kanal-Steuerungseinheit 110 und
die Platten-Steuerungseinheit 140 vorhanden
sind. In diesem Fall verbindet die Verbindungseinheit 150 die
Kanal-Steuerungseinheit 110 und die Platten-Steuerungseinheit 140 mit
den verteilten gemeinsamen Speichern 120 oder Cachespeichern 130.
-
– Verwaltungsterminal –
-
Das
Verwaltungsterminal 160 ist ein Computer zur Wartung und
Verwaltung der Speichervorrichtung 600. Durch Bedienen
des Verwaltungsterminals 160 ist es möglich, z. B. eine Einstellung
der Konfiguration der physikalischen Platten der Speichertreibervorrichtung 300,
eine Einstellung der LU 310, eine Installation von durch
die Kanal-Steuerungseinheit 110 und die Platten-Steuerungseinheit 140 auszuführenden
Mikroprogrammen und dergleichen auszuführen.
-
Das
Verwaltungsterminal 160 kann in die Speichersteuerungsvorrichtung 100 eingebaut
sein, oder es kann ein extern angebrachtes Gerät sein. Das Verwaltungsterminal 160 kann
ein Computer sein, der speziell zur Wartung und Verwaltung der Speichersteuerungsvorrichtung 100 und
der Speichertreibervorrichtung 300 vorhanden ist, oder
es kann ein Universalcomputer sein, der mit der Wartungs- und Verwaltungsfunktion
versehen ist.
-
Die 2 ist
ein Blockdiagramm, das die Struktur des Verwaltungsterminals 160 zeigt.
-
Das
Verwaltungsterminal 160 verfügt über eine CPU 161,
einen Speicher 162, einen Port 163, einen Speicherträgerleser 164,
eine Eingabevorrichtung 165, eine Ausgabevorrichtung 166 und
eine Speichervorrichtung 168.
-
Die
CPU 161 steuert das gesamte Verwaltungsterminal 160,
und sie realisiert die Wartungs- und Verwaltungsfunktion durch Betreiben
eines im Speicher 162 gespeicherten Programms 162A.
Das Programm 162A ist im Speicher 162 gespeichert.
Der Speicherträgerleser 164 liest
Programme und Daten, wie sie im Speicherträger 167 gespeichert
sind. Das gelesene Programm und Daten werden im Speicher 162 oder
in der Speichervorrichtung 168 gespeichert. Zum Beispiel
liest der Speicherträgerleser 164 das
im Speicherträger 167 aufgezeichnete
Programm 162A, und er speichert es in den Speicher 162 oder
die Speichervorrichtung 168 ein. In ähnlicher Weise liest der Speicherträgerleser 164 z.
B. ein im Speicherträger 167 gespeichertes
Mikroprogramm, das von der Kanal-Steuerungseinheit 110 oder
der Daten-Steuerungseinheit 140 auszuführen ist, und er speichert
es in den Speicher 162 oder die Speichervorrichtung 168 ein,
wobei das Mikroprogramm anschließend in der Kanal-Steuerungseinheit 110 oder
der Platten-Steuerungseinheit 140 installiert
wird.
-
Der
Speicherträger 167 kann
eine Diskette, eine CD-ROM, ein Halbleiterspeicher oder dergleichen
sein. Der Speicherträgerleser 164 kann
in das Verwaltungsterminal 160 eingebaut sein, oder er kann
ein externes Gerät
sein. Die Speichervorrichtung 168 ist z. B. ein Festplatten-Laufwerk,
ein Halbleiterspeicher oder dergleichen. Die Eingabevorrichtung 165 wird
von einem Bediener oder dergleichen dazu verwendet, Daten oder dergleichen
in das Verwaltungsterminal 160 einzugeben. Die Eingabevorrichtung
kann eine Tastatur, eine Maus oder dergleichen sein. Die Ausgabevorrichtung 166 ist
eine Vorrichtung zum Ausgeben von Information nach außen. Die
Ausgabevorrichtung 166 kann ein Display, ein Drucker oder
dergleichen sein. Der Port 163 ist mit dem internen LAN 171 verbunden,
so dass das Verwaltungsterminal 160 mit der Kanal-Steuerungseinheit 110,
der Platten-Steuerungseinheit 140 und dergleichen kommunizieren
kann.
-
– Kanal-Steuereinheit –
-
Die 3 zeigt
die Struktur der Kanal-Steuerungseinheit 110. Die Kanal-Steuerungseinheit 110 ist
eine diskrete Platteneinheit mit einer Leiterplatte 118.
Die Kanal-Steuerungseinheit 110 besteht aus einer einzelnen
oder mehreren Leiterplatten 118. Die Leiterplatte 118 verfügt über einen
Prozessor #1 119, einen Prozessor #2 112, einen
Datenübertragungs-LSI 114,
einen Speicher #1 117, einen Speicher #2 113,
einen Speichercontroller #1 111, einen Speichercontroller
#2 111, einen Speicher #3 115 sowie Verbinder 116.
-
Der
Prozessor #1 119, der Prozessor #2 112, der Datenübertragungs-LSI 114,
der Speicher #1 117, der Speicher #2 115 und der
Speichercontroller #1 sind durch PCI(Peripheral Component Interconnect)-Busse
für Kommunikationsvorgänge miteinander
verbunden. Diese Komponenten müssen
nicht immer alle durch einen PCI-Bus verbunden sein, sondern ein
Teil derselben oder alle können
gemäß einem
anderen Standard verbunden sein. Von diesen Komponenten bilden der
Speicher #1 117, der Speicher #2 115 und der Speichercontroller
#1 111 einen zweiten Speicher. Der Datenübertragungs-LSI 114, der
Prozessor #2 112, der Speicher #2 113 und der Speichercontroller
#2 111 bilden eine Datenübertragungs-Steuerungseinheit.
Der Prozessor #1 119 bildet eine Eingabe/Ausgabe-Steuerungseinheit.
-
Der
Prozessor #2 112, der Speicher #2 113 und der
Speichercontroller #2 111 sorgen für eine Kommunikationsschnittstellen-Funktion
für Kommunikationsvorgänge mit
der Informationsverarbeitungsvorrichtung 200 und einer
anderen Speichervorrichtung 600. Zum Beispiel werden Daten
in das Datenformat in Übereinstimmung
mit dem Faserkanalprotokoll gewandelt und an eine andere Speichervorrichtung 600 gesendet.
Die mit dem Speichercontroller #2 111 verbundenen Verbinder 116 wer den
für Kommunikationsvorgänge mit
der Informationsverarbeitungsvorrichtung 200 und einer
anderen Speichervorrichtung 600 verwendet. Der Prozessor
#2 112 führt
verschiedene im Speicher #2 113 gespeicherte Programme
aus, um eine Steuerung zum Realisieren der Kommunikationsschnittstellen-Funktion
auszuführen.
Daten, wie sie an die Informationsverarbeitungsvorrichtung 200 und
eine andere Speichervorrichtung 600 und von diesen übertragen
werden, werden im Speicher #2 113 gespeichert. D. h., dass
der Prozessor #2 112 im Speicher #2 113 gespeicherte
Daten an die Informationsverarbeitungsvorrichtung 200 und
eine andere Speichervorrichtung 600 sendet und die von
der Informationsverarbeitungsvorrichtung 200 und einer
anderen Speichervorrichtung 600 empfangenen Daten im Speicher
#2 113 speichert.
-
Der
Prozessor #2 112, der Speicher #2 113, der Speichercontroller
#2 111 und der Verbinder 116 funktionieren auch
als Port, der mit dem Port der Faserkanal-Vermittlungsstelle zu
verbinden ist, die das SAN 500 bildet. Wie es auf dem Gebiet
der Faserkanaltechnik gut bekannt ist, wird dem Port ein World Wide
Name (WWN) zugewiesen, bei dem es sich um eine Kennung zum Kennzeichnen
der Anlage am SAN 500 handelt.
-
Der
Prozessor #1 119 führt
ein im Speicher #1 117 gespeichertes Steuerungsprogramm 700 aus, um
die gesamte Kanal-Steuerungseinheit 110 zu steuern.
Zum Beispiel wird eine von der Informationsverarbeitungsvorrichtung 200 gesendete
Daten-Eingabe/Ausgabe-Anforderung analysiert, um zu beurteilen,
ob die Anforderung an die Speichertreibervorrichtung A 300 oder
die Speichertreibervorrichtung B 300 gerichtet ist. Wenn
die Anforderung an die Speichertreibervorrichtung A 300 gerichtet
ist, wird beurteilt, ob eine Fernkopie erforderlich ist. Der Prozessor #1 119 führt andere
Beurteilungen aus, und entsprechend den Beurteilungsergebnissen
wird eine Datenübertragungsanweisung
an den Datenübertragungs-LSI 114 geliefert.
-
Auf
eine Anweisung vom Prozessor #1 119 hin steuert der Datenübertragungs-LSI 114 als PCI-Busmaster
die Datenübertragung
zwischen dem Cachespeicher 130 und dem Speicher #2 113.
Genauer gesagt, liest der Datenübertragungs-LSI 114 auf
eine Anweisung vom Prozessor #1 119 hin Datenübertragungsinformation
aus dem Speicher #1 117, um eine Datenübertragung zwischen dem Cachespeicher 130 und
dem Speicher #2 113 entsprechend der gelesenen Datenübertragungsinformation auszuführen. Die
Datenübertragungsinformation
wird durch den Prozessor #1 119 in den Speicher #1 117 geschrieben,
und sie beinhaltet den Speicherort von Daten im Cachespeicher 130 sowie
den Speicherort der Daten in der Informationsverarbeitungsvorrichtung 200,
in der Speichersteuerungsvorrichtung 100B oder in der Speichervorrichtung
B 600.
-
Einzelheiten
zur Datenübertragung
zwischen dem Cachespeicher 100 und dem Speicher #2 113 werden
später
angegeben.
-
– Platten-Steuereinheit –
-
Die 4 zeigt
die Struktur der Platten-Steuerungseinheit 140.
-
Die
Platten-Steuerungseinheit 140 verfügt über eine Schnittstelleneinheit 141,
einen Speicher 143, eine CPU 142, einen nichtflüchtigen
Direktzugriffsspeicher (NVRAM) 144 sowie Verbinder 145,
die als integrale Einheit ausgebildet sind, die aus einer einzelnen
oder mehreren Leiterplatten besteht.
-
Die
Schnittstelleneinheit 141 verfügt über Kommunikationsschnittstellen
für Kommunikationsvorgänge mit
der Kanal-Steuerungseinheit 110 und dergleichen über die
Verbindungseinheit 150 sowie für Kommunikationsvorgänge mit
der Spei chertreibervorrichtung 300.
-
Die
CPU 142 steuert die gesamte Platten-Steuerungseinheit 140,
und sie kommuniziert mit der Kanal-Steuerungseinheit 110,
der Speichertreibervorrichtung 300 und dem Verwaltungsterminal 160.
Die CPU 142 führt
verschiedene im Speicher 143 und im NVA 144 gespeicherte
Programme aus, um die Funktion der Platten-Steuerungseinheit 140 zu
realisieren. Zur durch die Platten-Steuerungseinheit 140 zu
realisierenden Funktion gehört
die Lese/Schreib-Steuerung von Daten betreffend die Speichertreibervorrichtung 300,
die RAID-Steuerung und dergleichen.
-
Der
NVRAM 144 ist ein nichtflüchtiger Speicher zum Speichern
von Programmen zum Steuern der CPU 142. Der Inhalt des
im NVRAM 144 gespeicherten Programms kann unter Verwendung
des Verwaltungsterminals 160 geschrieben oder überschrieben
werden.
-
– Informationsverarbeitungsvorrichtung –
-
Die 5 ist
ein Blockdiagramm, das die Struktur der Informationsverarbeitungsvorrichtung 200 zeigt.
-
Die
Informationsverarbeitungsvorrichtung 200 verfügt über eine
CPU 201, einen Speicher 202, einen Port 203,
einen Speicherträgerleser 204,
eine Eingabevorrichtung 205 und eine Ausgabevorrichtung 206.
-
Die
CPU 201 steuert die gesamte Informationsverarbeitungsvorrichtung 200,
und sie realisiert durch Ausführen
von im Speicher 202 gespeicherten Programmen verschiedene
Funktionen. Zum Beispiel führt
die CPU 201 ein Anwendungsprogramm 202B aus, um
verschiedene Informationsverarbeitungsdienste wie automatische Bank-Einzahlungs/Abhebe-Dienste
und Flugbu chungsdienste zu liefern. Die CPU 201 führt ein
Speichervorrichtungs-Verwaltungsprogramm 202A aus, um den Speicher-Datenbereich 310 zu
verwalten. Zum Beispiel wird zwischen dem Speicher-Datenbereich
A 310 der Speichertreibervorrichtung A 300 und
dem Speicher-Datenbereich B 310 der Speichertreibervorrichtung
B 300 auf Entsprechung geprüft, und wenn Daten in den Speicher-Datenbereich
A 310 eingeschrieben werden, wird ein Befehl an die Speichersteuerungsvorrichtung 100A gesendet,
um eine Kopie der Daten in den entsprechenden Speicher-Datenbereich
B 310 zu schreiben. Auch kann eine Einstellung der LUN
des Speicher-Datenbereichs 310 ausgeführt werden. Der Speicherträgerleser 304 liest Programme
und Daten, wie sie im Speicherträger 207 aufgezeichnet
sind. Die gelesenen Programme und Daten werden in den Speicher 202 gespeichert. Zum
Beispiel liest der Speicherträgerleser 204 das Speichervorrichtungs-Verwaltungsprogramm 202A und
ein Anwendungsprogramm 202B, wie sie im Speicherträger 207 gespeichert
sind, und er speichert sie im Speicher 202 ab. Der Speicherträger 207 kann
eine Diskette, eine CD-ROM, ein Halbleiterspeicher oder dergleichen
sein. Der Speicherträgerleser 204 kann
in die Informationsverarbeitungsvorrichtung 200 eingebaut
sein, oder er kann ein externes Gerät sein. Die Eingabevorrichtung 205 wird
von einem Bediener oder dergleichen dazu verwendet, Daten oder dergleichen
in die Informationsverarbeitungsvorrichtung 200 einzugeben.
Die Eingabevorrichtung 205 kann eine Tastatur, eine Maus
oder dergleichen sein. Die Ausgabevorrichtung 206 ist eine Vorrichtung
zum Ausgeben von Information nach außen. Die Ausgabevorrichtung 206 kann
ein Display, ein Drucker oder dergleichen sein. Der Port 203 wird für Kommunikationsvorgänge mit
der Speichervorrichtung 600 verwendet. Dem Port 203 ist
ein World Wide Name (WWN) zugewiesen, bei dem es sich um eine Kennung
zum Kennzeichnen einer Anlage am SAN 500 handelt. Der Port 203 kann
auch für
Kommunikationsvorgänge
mit einer anderen Informationsverarbeitungsvorrichtung 200 ver wendet
werden. In diesem Fall werden z. B. das Speichervorrichtungs-Verwaltungsprogramm 202A und
das Anwendungsprogramm 202B über den Port 203 von
einer anderen Informationsverarbeitungsvorrichtung 200 empfangen
und im Speicher 202 abgespeichert.
-
– Datenübertragung –
-
Als
Nächstes
erfolgt eine Beschreibung zu einer Datenübertragung durch die Kanal-Steuerungseinheit 110 zwischen
dem Cachespeicher 130 und der Informationsverarbeitungsvorrichtung 200 oder
der Speichersteuerungsvorrichtung 100B.
-
Der
Speicher #2 113 verfügt über einen
Datenbereich, wie er in der 8 dargestellt
ist. Im Datenbereich sind Daten, die an den Cachespeicher 130 zu übertragen
sind, und von diesem übertragene Daten
gespeichert. Der Speicherort jeder dieser Daten, die Größe (Bereichslänge) des
Speicherbereichs jeder dieser Daten und dergleichen im Datenbereich werden,
wie es in der 9 dargestellt ist, in einem Scriptbereich
des Speichers #1 117 als Prozessor-#2-Script (Datenübertragungsinformation)
gespeichert. Das Prozessor-#2-Script verfügt über die Felder "Scriptkennung", "Bereichsstartadresse", "Bereichslänge" und "Kontinuitätsflag". Die "Scriptkennung" zeigt eine Kennungsnummer
an, wie sie zu jedem Prozessor-#2-Script hinzugefügt ist.
Die "Bereichsstartadresse" zeigt eine Speicheradresse
von im Datenbereich des Speichers #2 113 gespeicherten
Daten an. Die "Bereichslänge" zeigt die Größe des Datenspeicherbereichs
an. Das "Kontinuitätsflag" ist ein Flag, das
gesetzt wird, wenn mehrere der im Datenbereich gespeicherten Daten
in einem Block übertragen
werden. Diese im Speicher #1 117 gespeicherten Prozessor-#2-Scripts
werden durch den Prozessor #1 119 eingestellt und in den
Scriptbereich des Speichers #1 117 geschrieben.
-
Wie
es in der 10 dargestellt ist, sind im Datenbereich
des Cachespeichers 130 Daten, die an den Speicher #2 113 zu übertragen
sind, oder von diesem übertragene
Daten gespeichert. Die Speicherstelle jeder dieser Daten, die Größe (Bereichslänge) des
Speicherbereichs jeder dieser Daten und dergleichen im Datenbereich
sind, wie es in der 9 dargestellt ist, in einem
Scriptbereich des Speichers #1 117 als Prozessor-#1-Script
(Datenübertragungsinformation)
gespeichert. Das Prozessor-#1-Script verfügt über die Felder "Scriptkennung", "Bereichsstartadresse", "Bereichslänge" und "Kontinuitätsflag". Die Bedeutung dieser
Felder sind ähnlich
denen beim Prozessor-#2-Script im Speicher #2 113. Diese
im Speicher #1 117 gespeicherten Prozessor-#1-Scripts werden
vom Prozessor #1 119 eingestellt und in den Scriptbereich
des Speichers #1 117 geschrieben.
-
Als
Nächstes
erfolgt unter Bezugnahme auf die 6 und 7 eine
Beschreibung zur Struktur des Datenübertragungs-LSI 114,
der die Datenübertragung
zwischen dem Cachespeicher 130 und dem Speicher #2 113 entsprechend
jedem dieser Scripts steuert.
-
Der
Datenübertragungs-LSI 114 dieser
Ausführungsform
verfügt über vier
DMAs 800 und PCI-Schnittstellen 802. Die PCI-Schnittstelle 802 ist eine
Kommunikationsschnittstelle für
Kommunikationsvorgänge
mit dem Speichercontroller 111 und dergleichen über den
PCI-Bus. Es ist nicht immer erforderlich, den Speichercontroller 111,
den Cachespeicher und dergleichen mittels des PCI-Busses zu verbinden,
sondern es können
einige oder alle dieser Komponenten unter Verwendung einer Struktur
in Übereinstimmung
mit einem anderen Verbindungsstandard verbunden werden. In diesem
Fall wird anstelle der PCI-Schnittstelle 802 eine Schnittstelle
in Übereinstimmung
mit dem anderen Standard verwendet.
-
Die
DMA-Einheit 800 verfügt über eine DMA-Steuerungseinheit
A 801, eine DMA-Steuerungseinheit B 801, einen Übertragungsdatenpuffer A
(Datenpuffer) 810, einen Übertragungsdatenpuffer B (Datenpuffer) 810,
ein Register A (Datenübertragungsregister) 807 und
ein Register B (Datenübertragungsregister) 807.
Das Register A 807 und das Register B 807 verfügen jeweils über ein Übertragungsstartregister 803,
ein Übertragungsregister 804,
ein Anfangseinstellungsregister 805 und ein Scriptregister 806.
Die Strukturen der DMA-Steuerungseinheit A 801 und der
DMA-Steuerungseinheit B 801, die Strukturen des Übertragungsdatenpuffers
A 810 und des Übertragungsdatenpuffers
B 810 sowie die Strukturen des Registers A 807 und
des Registers B 807 sind ziemlich ähnlich. Die Kennzahlen A und
B werden nicht hinzugefügt,
wenn eine wechselseitige Unterscheidung nicht erforderlich ist.
-
Die
DMA-Steuerungseinheit 801 steuert die Datenübertragung.
Zum Beispeil führt
die DMA-Steuerungseinheit 801 das Lesen eines im Speicher
#1 117 gespeicherten Scripts (Datenübertragungsinformation), das
Schreiben desselben in das Register A 807 oder das Register
B 807, das Steuern der Datenübertragung über den Übertragungsdatenpuffer A 810 oder
den Übertragungsdatenpuffer
B 810 entsprechend dem gelesenen Script, das Ausgeben eines
Datenübertragungs-Abschlussstatus
und andere Operationen aus. Die DMA-Steuerungseinheit 801 kann
nur aus Hardware oder aus einer Kombination aus Hardware und Software
bestehen. Die DMA-Steuerungseinheit 801 steuert auch den
Speicher #3 115. Daher ist es möglich, im Übertragungsdatenpuffer 810 gespeicherte
Schreibdaten und ein im Register 807 gespeichertes Script
in den Speicher #3 115 zu schreiben und Daten und ein Script
aus dem Speicher #3 115 zu lesen.
-
Das Übertragungsstartregister 803 enthält ein "Anforderungsübertragungslänge"-Register, ein "Anforderungsübertragungs richtung"-Register, ein "Prozessor-#2-StartScriptnummer"-Register und ein "Prozessor-#1-StartScriptnummer"-Register.
-
Das "Anforderungsübertragungslänge"-Register speichert
die Gesamtdatenlänge
von Daten, wie sie zwischen dem Cachespeicher 130 und der Informationsverarbeitungsvorrichtung 200 oder
der Speichersteuerungsvorrichtung 100B zu übertragen sind.
Die Anforderungsübertragungslänge wird
aus einer von der Informationsverarbeitungsvorrichtung 200 empfangenen
Daten-Eingabe/Ausgabe-Anforderung bestimmt. Wenn z. B. eine Schreibanforderung
für Daten
von 8 Kilobyte (kB) von der Informationsverarbeitungsvorrichtung 200 empfangen
wird, werden 8 kB in das "Anforderungsübertragungslänge"-Register geschrieben.
Einzelheiten werden später
angegeben, jedoch wird die Anforderungsübertragungslänge durch
den Prozessor #1 119 in das Übertragungsstartregister 803 der
DMA-Einheit 800 geschrieben, wenn er mit der Übertragung
der Daten an die DMA-Einheit 800 beginnt.
-
Das "Übertragungsrichtung"-Register speichert
entweder die Übertragungsrichtung
von der Informationsverarbeitungsvorrichtung 200 oder der Speichersteuerungsvorrichtung 100B zum
Cachespeicher 130 oder die Übertragungsrichtung vom Cachespeicher 130 zur
Informationsverarbeitungsvorichtung 200 oder zur Speichersteuerungsvorrichtung 100B.
Die Übertragungsrichtung
wird durch den Prozessor #1 119 aus einer von der Informationsverarbeitungsvorrichtung 200 empfangenen
Daten-Eingabe/Ausgabe-Anforderung bestimmt. Wenn z. B. der Prozessor
#1 119 von der Informationsverarbeitungsvorrichtung 200 eine
Datenschreibanforderung zum Schreiben von Daten in die Speichertreibervorrichtung
A 300 empfängt,
verläuft
die Übertragungsrichtung
vom Speichercontroller #2 111 zum Cachespeicher 130.
Wenn der Prozessor #1 119 von der Informationsverarbeitungsvorrichtung 200 eine
Datenleseanforderung zum Lesen von in der Speichertreibervorrichtung
A 300 gespeicherten Daten empfängt, verläuft die Übertragungsrichtung vom Cachespeicher 130 zum
Speichercontroller #2 111. Wenn Daten von der Speichersteuerungsvorrichtung 100B an
die Speichersteuerungsvorrichtung 100A zu senden sind,
verläuft
die Übertragungsrichtung
vom Speichercontroller #2 111 zum Cachespeicher 130. Einzelheiten
werden später
angegeben, jedoch wird, ähnlich
wie die Anforderungsübertragungslänge, die Übertragungsrichtung
vom Prozessor #1 119 in das Übertragungsstartregister 803 der
DMA-Einheit 800 geschrieben, wenn der Prozessor #1 119 mit
der Datenübertragung
an die DMA-Einheit 800 startet.
-
Das "Prozessor-#2-StartScriptnummer"-Register speichert
eine Kennung für
ein im Speicher #1 117 gespeichertes Prozessor-#2-Script. Die DMA-Steuerungseinheit 801 startet
eine Datenübertragung
durch Lesen des Prozessor-#2-Scripts, wie es im "Prozessor-#2-Scriptnummer"-Register gespeichert
ist, aus dem Speicher #1 117. Die Prozessor-#2-StartScriptnummer
wird durch den Prozessor #1 119 in das Übertragungsstartregister 803 der DMA-Einheit 800 geschrieben,
wenn er eine Datenübertragung
an die DMA-Einheit 800 startet. Alternativ erneuert die
DMA-Steuerungseinheit 801 die Prozessor-Speichervorrichtung-StartScriptnummer,
wenn für
das Prozessor-#2-Script das Kontinuitätsflag gesetzt ist.
-
Das "Prozessor-#1-StartScriptnummer"-Register speichert
eine Kennung für
ein im Speicher #1 117 gespeichertes Prozessor#1-Script.
Die DMA-Steuerungseinheit 801 startet eine Datenübertragung
durch Lesen des im "Prozessor#1-Scriptnummer"-Register gespeicherten Prozessor-#1-Scripts
aus dem Speicher #1 117. Die Prozessor-#1-StartScriptnummer
wird vom Prozessor #1 119 in das Übertragungsstartregister 803 der DMA-Einheit 800 geschrieben,
wenn er eine Datenübertragung
zu dieser startet. Alternativ erneuert die DMA-Steuerungseinheit 801 die
Prozessor-#1-StartScriptnummer, wenn das Kontinui tätsflag für das Prozessor-#1-Script
gesetzt ist.
-
Das Übertragungsregister 804 verfügt über ein "Übertragungseinheit"-Register, ein "Übertragungsquelleadresse"-Register, ein "Übertragungszieladresse"-Register und ein "Restübertragungslänge"-Register.
-
Das "Übertragungseinheit"-Register speichert
eine Datenübertragungslänge für eine Datenübertragung.
Die Datenübertragungslänge für eine Datenübertragung
wird von der DMA-Steuerungseinheit 801 berechnet.
-
Das "Übertragungsquelleadresse"-Register speichert
eine Speicherstelle für
Daten vor der Übertragung.
Die Übertragungsquelleadresse
ist eine Speicherstelle von Daten im Cachespeicher 130, eine
Speicherstelle von Daten in der Informationsverarbeitungsvorrichtung 200 oder
eine Speicherstelle von Daten in der Speichervorrichtung B 600.
Die Übertragungquelleadresse
wird aus der Übertragungsrichtung
und der Angabe im Prozessor-#1-Script oder im Prozessor-#2-Script bestimmt. Während einer
Datenübertragung
inkrementiert oder dekrementiert die DMA-Steuerungseinheit 801 den Wert
im "Übertragungsquelleadresse"-Register, wenn die
Datenübertragung
abläuft.
-
Das "Übertragungszieladresse"-Register speichert
eine Speicherstelle von Daten nach der Übertragung. Die Übertragungszieladresse
ist eine Speicherstelle von Daten im Cachespeicher 130, eine
Speicherstelle von Daten in der Informationsverarbeitungsvorrichtung 200 oder
eine Speicherstelle von Daten in der Speichervorrichtung B 600.
Die Übertragungszieladresse
wird aus der Übertragungsrichtung
und der Angabe im Prozessor-#1-Script oder im Prozessor-#2-Script
bestimmt. Während
einer Datenübertragung
inkrementiert oder dekrementiert die DMA-Steuerungseinheit 801 den
Wert im "Übertra gungszieladresse"-Register, während die Datenübertragung
abläuft.
-
Das "Restübertragungslänge"-Register speichert
einen Wert, der dadurch erhalten wird, dass die Länge bereits übertragener
Daten von der Anforderungsübertragungslänge abgezogen
wird. Die Restübertragungslänge wird
durch die DMA-Steuerungseinheit 801 geeignet erneuert,
während
die Datenübertragung
abläuft.
-
Das
Anfangseinstellungsregister 805 verfügt über ein "Prozessor-#2-Scriptbereich-Startadresse"-Register, ein "Prozessor-#2-Scriptanzahl"-Register, ein "Prozessor-#2-Scriptgröße"-Register, ein "Prozessor-#1-Scriptbereich-Startadresse"-Register, ein "Prozessor-#1-Scriptanzahl"-Register und ein "Prozessor-#1-Scriptgröße"-Register. Die Werte
dieser Register des Anfangseinstellungsregisters 805 können durch
die DMA-Steuerungseinheit 801 aus dem NVRAM der Kanal-Steuerungseinheit 110 gelesen
werden, wenn deren Spannung eingeschaltet wird.
-
Das "Prozessor-#2-Scriptbereich-Startadresse"-Register speichert
die Startadresse des Scriptbereichs des Speichers #1 117,
d. h. die Adresse, an der der Prozessor-#2-Script #0 gespeichert
ist.
-
Das "Prozessor-#2-Scriptanzahl"-Register speichert
die Anzahl von Prozessor-#2-Scripts.
-
Das "Prozessor-#2-Scriptgröße"-Register speichert
die Größe eines
Prozessor-#2-Scripts. Durch Festlegen der Größe eines Prozessor-#2-Scripts
und durch Identifizieren der Kennung desselben kann die Speicheradresse
eines Ziel-Prozessor-#2-Scripts
unter Verwendung der Startadresse des Scriptbereichs als Basis berechnet
werden.
-
Das "Prozessor-#1-Scriptbereich-Startadresse"-Register, das "Prozessor-#1-Scriptanzahl"-Register und das "Prozessor-#1-Scriptgröße"-Register sind denen
für das
Prozessor-#2-Script ähnlich.
-
Das
Register 806 enthält
ein "Prozessor-#2-Ausführungs-Scriptnummer"-Register, ein "Prozessor-#2-Effektiv-
oder Leerbereichslänge"-Register, ein "Prozessor-#1-Ausführungs-Scriptnummer"-Register und ein "Prozessor-#1-Effektiv-
oder Leerbereichslänge"-Register.
-
Das "Prozessor-#2-AusführungsScriptnummer"-Register speichert
die Kennung eines Prozessor-#2-Scripts, das gerade ausgeführt wird.
Die Prozessor-#2-AusführungScriptnummer
wird durch die DMA-Steuerungseinheit 801 eingetragen.
-
Das "Prozessor-#2-Effektivbereichslänge"-Register speichert
einen Wert, der dadurch erhalten wird, dass die bereits übertragene
Datengröße von der
Bereichslänge
abgezogen wird, wie sie in das Bereichslängenfeld des Prozessor-#2-Scripts eingeschrieben
ist. Dieser Wert wird durch die DMA-Steuerungseinheit 801 geeignet
dekrementiert, während
die Datenübertragung
abläuft.
-
Das "Prozessor-#1-AusführungsScriptnummer"-Register und das "Prozessor-#1-Effektivbereichslänge"-Register sind dem "Prozessor-#2-AusführungsScriptnummer"-Register bzw. dem "Prozessor-#2-Effektivbereichslänge"-Register ähnlich.
-
Der Übertragungsdatenpuffer 810 ist
ein Puffer zum Speichern von Daten, wie sie zwischen dem Cachespeicher 130 und
dem Speicher #2 113 zu übertragen
sind. Wenn Daten zwischen dem Cachespeicher 130 und dem
Speicher #2 113 übertragen werden, überträgt die DMA-Steuerungseinheit 801 Daten über den Über tragungsdatenpuffer 810 mittels eines
Speichern-und-Weiterleiten-Stils. Wenn z. B. Daten vom Cachespeicher 130 an
den Speicher #2 113 übertragen
werden, schreibt die DMA-Steuerungseinheit 801 die aus
dem Cachespeicher 130 gelesenen Daten einmal in den Übertragungsdatenpuffer 810 ein,
und dann liest sie die Daten aus diesem und schreibt sie in den
Speicher #2 113.
-
Ein
Kommunikationspfad zwischen dem Übertragungsdatenpuffer 810 und
dem Speichercontroller #2 111 wird vom Übertragungsdatenpuffer A 810 und
vom Übertragungsdatenpuffer
B 810 gemeinsam genutzt. Ein Kommunikationspfad zwischen
dem Übertragungsdatenpuffer 810 und
dem Cachespeicher 130 ist für jeweils den Übertragungsdatenpuffer
A 810 und den Übertragungsdatenpuffer B 810 gesondert
vorhanden. Der Grund hierfür
ist der folgende. Kommunikationsvorgänge zwischen dem Übertragungsdatenpuffer 810 und
dem Speichercontroller #2 111 werden auf derselben Leiterplatte 118 ausgeführt, so
dass die Datenübertragung
mit relativ hoher Geschwindigkeit ausgeführt werden kann, wohingegen
Kommunikationsvorgänge
zwischen dem Datenübertragungspuffer 810 und
dem Cachespeicher 130 über
verschiedene Leiterplatten ausgeführt werden, so dass die Datenübertragung
mit relativ niedriger Geschwindigkeit ausgeführt wird. Mit der oben beschriebenen
Anordnung kann das Datenübertragungs-Funktionsvermögen hinsichtlich
des Cachespeichers 130 verbessert werden. Ein hohes Datenübertragungs-Funktionsvermögen kann
selbst dann realisiert werden, wenn zwei Datenübertragungsoperationen gleichzeitig
ausgeführt
werden, was durch paralleles Betreiben der zwei Sätze eines Übertragungsdatenpuffers 810,
einer DMA-Steuerungseinheit 801 und
eines Registers 807 erfolgt. Da der Daten-Kommunikationspfad
für den Übertragungsdatenpuffer 810 und
den Speichercontroller #2 111 gemeinsam genutzt wird, kann
die Fläche
eines Kommunikationspfads auf der Leiterplatte 118 verkleinert
werden. Da der Layout-Freiheits grad für auf der Leiterplatte 118 zu
montierende Komponenten verbessert werden kann, kann das Strukturdesign der
Leiterplatte 118 einfach gemacht werden. Die Leiterplatte 118 und
demgemäß die Speichersteuerungsvorrichtung 100 können kompakt
ausgebildet werden.
-
– Daten-Eingabe/Ausgabe-Prozess –
-
Wie
bereits beschrieben, analysiert der Prozessor #1 119, wenn
von der Informationsverarbeitungsvorrichtung 200 eine Daten-Eingabe/Ausgabe-Anforderung übertragen
wird, dieselbe, um zu beurteilen, ob die Anforderung an die Speichertreibervorrichtung
A 300 oder die Speichertreibervorrichtung B 300 gerichtet
ist. Wenn die Anforderung an die Speichertreibervorrichtung A 300 gerichtet
ist, wird beurteilt, ob eine Fernkopie erforderlich ist. Der Prozessor
#1 119 führt
andere Beurteilungen aus, und abhängig von den Beurteilungsergebnissen
wird eine Datenübertragungsanweisung
an den Datenübertragungs-LSI 114 geliefert.
Diese Beurteilungen erfolgen unter Bezugnahme auf eine Paar-Verwaltungstabelle 710 und
eine Konfigurationsinformations-Verwaltungstabelle 720,
die im gemeinsamen Speicher 120 gespeichert sind, wie es
in der 11 dargestellt ist.
-
Die 13 zeigt
die Konfigurationsinformations-Verwaltungstabelle 720.
Die Konfigurationsinformations-Verwaltungstabelle 720 wird
zum Realisieren der Funktion verwendet, dass die Speichervorrichtung
A 600 die Informationsverarbeitungsvorrichtung 200 mit
dem Speicher-Datenbereich 310 der Speichervorrichtung B 600 als
Speicher-Datenbereich 310 der Speichervorrichtung A 600 versorgt.
-
In
die Konfigurationsinformations-Verwaltungstabelle 720 wird
nicht nur die Information zum Speicher-Datenbereich 310 der
Speichervorrichtung A 600, sondern auch die Information zum
Speicher-Datenbereich 310 der Speichervorrichtung B 600 geschrieben
(die 13 zeigt nur die Information zum Speicher-Datenbereich 310 der
Speichervorrichtung B 600).
-
In
der 13 ist in ein Feld Port-ID eine Port-ID der Kanal-Steuerungseinheit 110 entsprechend
jedem Speicher-Datenbereich 310 eingetragen. In ein Feld
WWN ist die der Port-ID entsprechende WWN eingetragen. In ein Feld
LUN ist die LUN jedes Speicher-Datenbereichs 310 eingetragen. In
ein Feld Kapazität
(KB) ist die Speicherkapazität eingetragen,
wie sie jeder Speicher-Datenbereich 310 zeigt. In ein Feld
LUN-Abbildung ist
die LUN des Speicher-Datenbereichs 310 der Speichervorrichtung
B 600, entsprechend dem Port und der LUN, eingetragen.
-
Der
Inhalt der Konfigurationsinformations-Verwaltungstabelle 720 kann
z. B. durch das Verwaltungsterminal 160 der Speichervorrichtung
A 600 registriert werden.
-
Unter
Verwendung der Konfigurationsinformations-Verwaltungstabelle 720 versorgt
die Speichervorrichtung A 600 die Informationsverarbeitungsvorrichtung 200 so
mit dem Speicher-Datenbereich 310 der
Speichervorrichtung B 600, als wäre er der Speicher-Datenbereich 310 der
Speichervorrichtung A 600. D. h., dass die Informationsverarbeitungsvorrichtung
die Daten-Eingabe/Ausgabe-Anforderung für den Speicher-Datenbereich 310 der
Speichervorrichtung B 600 an die Speichervorrichtung A 600 senden
kann. Beim in der 15 dargestellten Beispiel kann
die Informationsverarbeitungsvorrichtung 200 das Lesen/Schreiben
von Daten hinsichtlich Speicher-Datenbereichen 310 der
Speichervorrichtung A 600, die durch K + 1 bis N gekennzeichnet sind,
genau auf dieselbe Weise wie hinsichtlich der Speicher-Datenbereiche 310 ausführen, die
mit 0 bis M gekennzeichnet sind. Jedoch sind die mit K + 1 bis N
gekennzeichneten Speicher-Datenbereiche 310 diejenigen, die
durch 0 bis M der Speichervorrichtung B 600 gekennzeichnet
sind. Wenn von der Informationsverarbeitungsvorrichtung 200 eine
Daten-Eingabe/Ausgabe-Anforderung für die durch K + 1 bis N gekennzeichneten
Speicher-Datenbereiche empfangen wird, führt die Speichervorrichtung
A 600 eine Datenübertragung
an die Speichervorrichtung B 600 und von dieser aus, um
auf die Speicher-Datenbereiche zuzugreifen, die in der Speichervorrichtung
B 600 mit 0 bis M gekennzeichnet sind.
-
In
der 15 ist das Steuerungsverfahren zwischen dem Speicher-Datenbereich 310 in
der Speichervorrichtung A und dem Speicher-Datenbereich 310 in
der Speichervorrichtung B in der am 29. September 2003 eingereichten
Patentanmeldung Nr. 2003-337239 offenbart.
-
Als
Nächstes
erfolgt eine Beschreibung zum Prozess, wie er auszuführen ist,
wenn die Speichervorrichtung A 600 von der Informationsverarbeitungsvorrichtung 200 eine
Daten-Eingabe/Ausgabe-Anforderung für den Speicher-Datenbereich 310 der
Speichervorrichtung A 600 oder der Speichervorrichtung
B 600 empfängt.
-
Die 14 zeigt
ein Beispiel für
ein Datenformat einer Daten-Eingabe/Ausgabe-Anforderung, wie sie
von der Informationsverarbeitungsvorrichtung 200 an die
Speichervorrichtung A 600 zu senden ist. In der 14 ist
in ein Host-ID-Feld eine Kennung der Informationsverarbeitungsvorrichtung 200,
die die Daten-Eingabe/Ausgabe-Anforderung gesendet hat, eingetragen.
Zum Beispiel ist die WWN des Ports 203 der Informationsverarbeitungsvorrichtung 200 eingetragen.
In ein Port-ID-Feld ist die Port-ID der Kanal-Steuerungseinheit 110 entsprechend
dem Speicher-Datenbereich 310, der das Ziel der Daten-Eingabe/Ausgabe-Anforderung
ist, eingetragen. In ein LUN-Feld ist die LUN des Speicher-Datenbereichs 310 eingetragen,
der das Ziel der Daten-Eingabe/Ausgabe-Anforderung ist. In ein Adressenfeld ist
die Speicheradresse von Daten eingetragen, die das Ziel der Daten-Eingabe/Ausgabe-Anforderung sind.
In ein Datenlängenfeld
ist die Datenlänge
von Daten eingetragen, die das Ziel der Daten-Eingabe/Ausgabe-Anforderung sind.
-
In
der folgenden Beschreibung ist angenommen, dass die von der Informationsverarbeitungsvorrichtung 200 gesendete
Daten-Eingabe/Ausgabe-Anforderung eine Datenschreibanforderung ist. Als
Erstes speichert der Prozessor #1 119 der Speichervorrichtung
A 600 beim Empfang der Datenschreibanforderung von der
Informationsverarbeitungsvorrichtung 200 die empfangenen
Daten gemeinsam mit der Datenschreibanforderung in den Cachespeicher 130.
-
Als
Nächstes
nimmt der Prozessor #1 119 auf die Konfigurationsinformations-Verwaltungstabelle 720 Bezug,
um zu beurteilen, ob diese Datenschreibanforderung ausgeführt werden
kann. Zu Fällen,
in denen die Datenschreibanforderung nicht ausgeführt werden
kann, gehört
der Fall, dass ein Ziel-Speicher-Datenbereich 310 für die Datenschreibanforderung
nicht existiert, der Fall, dass die Größe der Schreibdaten die Speicherkapazität des Speicher-Datenbereichs 310 überschreitet,
und andere Fälle.
Wenn die Datenschreibanforderung nicht ausgeführt werden kann, wird eine
Meldung hinsichtlich dieses Effekts an die Informationsverarbeitungsvorrichtung 200 gesendet,
und die Datenschreibanforderung wird beendet.
-
Wenn
die Datenschreibanforderung ausgeführt werden kann, sendet der
Prozessor #1 119 dieselbe sowie Schreibdaten an die Speichervorrichtung B 600.
Dieser Sendevorgang kann auf die folgende Weise ausgeführt werden.
Als Erstes schreibt der Prozessor #1 119 ein Script zur
Datenübertragung
in den Speicher #1 117, dann liest der Datenübertragungs-LSI 114 das
Script aus dem Speicher #1 117 und schreibt es in das Register 807,
und er steuert, entsprechend dem gelesenen Script, die Datenübertragung
zwischen dem Speicher #1 117 und der Speichersteuerungsvorrichtung 100B.
Wenn die Speichervorrichtung B 600 die Datenschreibanforderung empfängt, schreibt
sie die Schreibdaten in den Speicher-Datenbereich B 310.
Der Prozess für
eine Datenleseanforderung wird auf ähnliche Weise ausgeführt.
-
Eine
Datenschreibanforderung, wie sie von der Speichervorrichtung A 600 an
die Speichervorrichtung B 600 zu senden ist, steht in Übereinstimmung
mit demselben Protokoll (z. B. demselben Datenformat) wie dem einer
Datenschreibanforderung, wie sie durch die Speichervorrichtung B 600 direkt von
der Informationsverarbeitungsvorrichtung 200 empfangen
wird. Daher müssen,
wenn die Speichervorrichtung B 600 als Vorrichtung arbeitet,
die die Speichervorrichtung A 600 mit dem Datenbereich 310 versorgt,
die Struktur und die Spezifikation der Speichervorrichtung B 600 nicht
auf spezielle Weise modifiziert oder geändert werden, so dass die Speichervorrichtung
B 600 mit minimaler Arbeit und geringen Kosten effizient
genutzt werden kann.
-
Die 12 zeigt
die Paar-Verwaltungstabelle 710.
-
Die
Paar-Verwaltungstabelle 710 verfügt über ein "Paartyp"-Feld,
ein "Kopietyp"-Feld, ein "Kopiequellevorrichtung"-Feld, ein "Kopiezielvorrichtung"-Feld, ein "Kopiequelle-Datenbereich"-Feld, ein "Kopieziel-Datenbereich"-Feld und ein "Paarzustand"-Feld.
-
Ein
Paar bedeutet eine Kombination zweier Speicher-Datenbereiche 310.
Wenn das aus zwei Speicher-Datenbereichen 310 gebildete
Paar in derselben Speichervorrichtung 600 vorliegt, wird
dieses Paar als "lokales
Paar" bezeichnet,
wohingegen es dann, wenn es in verschiedenen Speichervorrich tungen 600 existiert,
als "Fernpaar" bezeichnet wird.
Von den zwei das Paar bildenden Speicher-Datenbereichen 310 wird
der eine Haupt-Speicher-Datenbereich 310 und der andere
als Zusatz-Speicher-Datenbereich 310 verwaltet. Es ist
auch möglich,
eine Kombination aus einem Haupt-Speicher-Datenbereich 310 und
mehreren Zusatz-Speicher-Datenbereichen zu verwenden.
-
Wenn
die Informationsverarbeitungsvorrichtung 200 die Speichervorrichtung
A 600 als Datenkopiequelle anweist, um ein Fernpaar zu
erzeugen, aktualisiert die Speichervorrichtung A 600 die
Paar-Verwaltungstabelle 710 im gemeinsamen Speicher 120. Danach
weist die Speichervorrichtung A 600 die Speichervorrichtung
B 600 als Datenkopieziel an, um ein Fernpaar zu bilden.
Die Speichervorrichtung B 600 aktualisiert die Paar-Verwaltungstabelle 710 in ihrem
gemeinsamen Speicher 120.
-
Das "Paartyp"-Feld der Paar-Verwaltungstabelle 710 zeigt
an, ob das Paar ein lokales oder ein Fernpaar ist. Das "Kopietyp"-Feld zeigt, wenn
das Paar ein Fernpaar ist, an, ob der Fernkopietyp synchron oder
asynchron ist. Das "Kopiequellevorrichtung"-Feld und das "Kopiezielvorrichtung"-Feld zeigen, wenn
das Paar ein Fernpaar ist, eine Kopiequelle-Speichervorrichtung 600 bzw.
eine Kopieziel-Speichervorrichtung 600 an. Das "Kopiequelle-Datenbereich"-Feld zeigt die LUN
des Haupt-Speicher-Datenbereichs 310 des Paars an, wohingegen
das "Kopieziel-Datenbereich"-Feld die LUN des
Zusatz-Speicher-Datenbereichs 310 des
Paars anzeigt.
-
Das "Paarzustand"-Feld zeigt den Zustand des
Paars an. Zum Paarzustand gehören "als Paar", "geteilt" und "wird überdacht".
-
Wenn
der Paarzustand "als
Paar" ist, wird eine
Kopie der Daten, die von der Informationsverarbeitungsvorrichtung 200 in
den Haupt-Speicher-Datenbereich 310 geschrieben werden,
auch im Zusatz-Speicher-Datenbereich 310 widergespiegelt. Eine
derartige Entsprechung zwischen dem Haupt-Speicher-Datenbereich 310 und
dem Zusatz-Speicher-Datenbereich 310 kann die Übereinstimmung
des im Haupt-Speicher-Datenbereich 310 gespeicherten Inhalts
und des im Zusatz-Speicher-Datenbereich 310 gespeicherten
Inhalts aufrecht erhalten.
-
Wenn
der Paarzustand "geteilt" ist, spiegeln sich
die Daten selbst dann, wenn sie von der Informationsverarbeitungsvorrichtung 200 in
den Haupt-Speicher-Datenbereich 310 geschrieben werden,
nicht im Zusatz-Speicher-Datenbereich 310 wider.
-
Wenn
der Paarzustand "wird überdacht" ist, handelt es
sich um einen Zwischenzustand während des Übergangs
von "geteilt" auf "als Paar". D. h., dass im
Haupt-Speicher-Datenbereich 310 im Zustand "geteilt" gespeicherte Aktualisierungsdaten
im Zusatz-Speicher-Datenbereich 310 widergespiegelt werden.
Nach dieser Widerspiegelung wechselt der Paarzustand auf "als Paar".
-
Die
Paarerzeugung, die Paaraufteilung und das Paarüberdenken können dadurch ausgeführt werden,
dass von einem Bediener eine Anweisung in die Eingabevorrichtung 205 eingegeben
wird, während
die Informationsverarbeitungsvorrichtung 200 das Speichervorrichtungs-Verwaltungsprogramm 202A ausführt. Die
Anweisung durch den Bediener wird an die Kanal-Steuerungseinheit 110 der
Speichervorrichtung 600 gesendet. Die Kanal-Steuerungseinheit 110 führt das
Steuerungsprogramm 700 aus, und sie erzeugt entsprechend
der Anweisung durch den Bediener ein Paar und ändert den Paarzustand. Entsprechend
dem Paarzustand des erzeugten Paars sendet die Kanal-Steuerungseinheit 110, die
Datenschreibanforderung vom Haupt- Speicher-Datenbereich 310 z.
B. im Zustand "als
Paar" empfängt, eine
Kopie der Schreibdaten an die Speichervorrichtung B 600,
um sie im Zusatz-Speicher-Datenbereich 310 widerzuspiegeln.
Genauer gesagt, speichert der Prozessor #1 119 der Speichervorrichtung
A 600 bei Empfang einer Datenschreibanforderung von der
Informationsverarbeitungsvorrichtung 200 als Erstes empfangene Schreibdaten
gemeinsam mit der Datenschreibanforderung in den Cachespeicher 130 ein.
Der Prozessor #1 119 weist die Platten-Steuerungseinheit 140 dazu an,
in den Speicher-Datenbereich A 310 zu schreiben, und sie
nimmt auf die Paar-Verwaltungstabelle 710 Bezug, um den
Speicher-Datenbereich B 310 zu identifizieren, in den eine
Kopie der Daten zu schreiben ist. Um eine Kopie von Schreibdaten
in den Speicher-Datenbereich B 310 zu schreiben, schreibt
der Prozessor #1 119 ein Datenübertragungs-Script in den Speicher #1 117,
und dann liest der Datenübertragungs-LSI 114 das
Script aus dem Speicher #1 117 und schreibt es in das Register 807.
Entsprechend dem gelesenen Script steuert der Datenübertragungs-LSI 114 den
Sendevorgang von Schreibdaten vorn Speicher #1 117 an die
Speichersteuerungsvorrichtung 100B. Wenn die Speichervorrichtung
B 600 diese Datenschreibanforderung empfängt, schreibt
sie die Schreibdaten in den Speicher-Datenbereich B 310.
-
Beim
Speichersystem dieser Ausführungsform,
wie es oben beschrieben ist, wird auf eine in der Speichervorrichtung
A 600 von der Informationsverarbeitungsvorrichtung 200 empfangene
Daten-Eingabe/Ausgabe-Anforderung hin zwischen der Speichervorrichtung
A 600 und der Speichervorrichtung B 600 eine Datenübertragung
ausgeführt.
Diese Datenübertragung
wird, wie bereits beschrieben, durch die Eingabe/Ausgabe-Steuerungseinheit
im Datenübertragungs-LSI 114 ausgeführt. Im
Allgemeinen wird, während
zwischen der Speichervorrichtung A 600 und der Speichervorrichtung
B 600 eine erste Datenübertragung
ausgeführt
wird, keine zweite Datenübertra gung
ausgeführt,
bevor nicht die erste Datenübertragung
abgeschlossen ist.
-
Unter
Bezugnahme auf die 16 erfolgt eine speziellere
Beschreibung zum Fall, dass die Informationsverarbeitungsvorrichtung 200 in
der Speichervorrichtung B 600 gespeicherte Daten liest. Ein
von der Informationsverarbeitungsvorrichtung 200 in der
Speichervorrichtung A 600 empfangener Lesebefehl (Datenleseanforderung)
#1 (S1000) wird an die Speichervorrichtung B 600 gesendet
(S1001). Die Speichervorrichtung B 600 liest Daten aus
dem Speicher-Datenbereich 310 (S1002). Bevor nicht die Lesedaten
von der Speichervorrichtung B 600 empfangen werden (S1003)
und an die Informationsverarbeitungsvorrichtung 200 gesendet
werden (S1004), wird der Prozess eines Lesebefehls #2 nicht ausgeführt. Beim
in der 16 dargestellten Beispiel sendet
die Informationsverarbeitungsvorrichtung 200, nachdem der
Prozess des Lesebefehls #1 abgeschlossen ist, einen Lesebefehl #2.
Selbst wenn ein Lesebefehl #2 gesendet wird, bevor der Leseprozess für Lesedaten
#1 abgeschlossen ist, wird der Prozess des Lesebefehls #2 ausgeführt, nachdem
das Lesen der Lesedaten #1 abgeschlossen wurde (von S1005 bis S1009).
Dies, da das System nicht auf solche Weise strukturiert ist, dass
die zweite Datenübertragung
ausgeführt
werden könnte,
während
die erste Datenübertragung
durch den Datenübertragungs-LSI 114 ausgeführt wird.
-
Jedoch
kann bei der Speichersteuerungsvorrichtung 100A dieser
Ausführungsform,
wie es in den 17 und 18 dargestellt
ist, wenn der Lesebefehl #2 von der Informationsverarbeitungsvorrichtung 200 empfangen
wird, bevor der Empfang von Lesedaten #1 von der Speichervorrichtung
B 600 startet, der Lesebefehl #2 an die Speichervorrichtung
B 600 gesendet werden, bevor das Empfangen der Lesedaten
#1 startet. Beim in der 17 dargestellten
Beispiel wird der Lesebefehl #2 an die Speichervorrichtung B 600 gesendet,
bevor die Lesedaten #1 von der Speichervorrichtung B 600 empfangen
werden, und die Lesedaten #2 werden empfangen, nachdem der Empfang
der Lesedaten #1 von der Speichervorrichtung B 600 abgeschlossen
ist (von S2000 bis S2009). Beim in der 18 dargestellten
Beispiel wird der Lesebefehl #2 an die Speichervorrichtung B 600 gesendet,
bevor die Lesedaten #1 von dieser empfangen werden, und die Lesedaten
#2 werden ebenfalls empfangen, bevor der Empfang der Lesedaten #1 von
der Speichervorrichtung B 600 abgeschlossen ist (von S3000
bis S3013).
-
Die 16 bis 18 veranschaulichen, dass
auf einen Lesebefehl hin mehrere Lesedaten gesendet werden, was
anzeigt, dass die Datenübertragung
in der Datenblockeinheit gesteuert wird.
-
– Ablauf einer Datenübertragung –
-
Als
Nächstes
erfolgt unter Bezugnahme auf die in den 25 bis 29 dargestellten
Flussdiagramme eine Beschreibung zum Ablauf eines Datenübertragungsprozesses
gemäß der Ausführungsform.
-
Wenn
die Speichersteuerungsvorrichtung 100A von der Informationsverarbeitungsvorrichtung 200 eine
Daten-Eingabe/Ausgabe-Anforderung empfängt, reserviert der Prozessor
#2 112 einen Datenbereich im Speicher #2 113 (S4000).
Das Reservieren des Datenbereichs bedeutet, dass dann, wenn die
Daten-Eingabe/Ausgabe-Anforderung
eine Datenschreibanforderung ist, Schreibdaten im Speicher #2 113 gespeichert
werden, und dass, wenn die Daten-Eingabe/Ausgabe-Anforderung eine
Datenleseanforderung ist, ein Speicherbereich zum Speichern von
Lesedaten im Speicher #2 113 reserviert wird. Für den reservierten
Datenbereich besteht keine Einschränkung auf nur einen Datenbereich.
Dies, da abhängig
vom Verteilungszustand und dergleichen der Datenbereiche des Speichers
#2 113, die Daten speichern können, Daten, die einer Daten-Eingabe/Ausgabe-Anforderung
zugeordnet sind, in mehrere Datenblöcke unterteilt und im Speicher
#2 113 gespeichert werden müssen.
-
Als
Nächstes
sendet der Prozessor #2 112 die von der Informationsverarbeitungsvorrichtung 200 empfangene
Daten-Eingabe/Ausgabe-Anforderung und Information zum im Speicher
#2 113 reservierten Datenbereich an den Prozessor #1 119 (S4001).
-
In
Reaktion hierauf analysiert der Prozessor #1 119 die vom
Prozessor #2 112 gesendete Daten-Eingabe/Ausgabe-Anforderung
(S4002), um die Übertragungslänge und
die Übertragungsrichtung
zu erkennen.
-
Als
Nächstes
reserviert der Prozessor #1 119 den Datenbereich mit der
Größe, wie
sie durch die angeforderte Übertragungslänge spezifiziert
ist, im Cachespeicher 130 (S4003). Auch in diesem Fall können mehrere
Datenbereiche abhängig
vom Verteilungszustand und dergleichen des Speicherraums des Cachespeichers 130,
der Daten speichern kann, reserviert werden.
-
Der
Prozessor #1 119 erzeugt für jeden im Cachespeicher 130 reservierten
Datenbereich einen Prozessor-#1-Script. In ähnlicher Weise erzeugt der Prozessor
#1 119 für
jeden der im Speicher #2 113 reservierten Datenbereiche
einen Prozessor-#2-Script
entsprechend der Daten-Eingabe/Ausgabe-Anforderung und der Information
zu den im Speicher #2 113 reservierten Datenbereichen,
wie jeweils vom Prozessor #2 112 gesendet (S4004). Wenn
mehrere Datenbereiche reserviert werden, wird das Kontinuitätsflag gesetzt,
um die Prozessor-#1-Scripts und die Prozessor-#2-Scripts gemeinsam
zu verwalten.
-
Auf
diese Weise werden die Prozessor-#1-Scripts einschließlich der
Information, die für die
Speicherpositionen von Daten im Cachespeicher 130 repräsentativ
ist, und die Prozessor-#2-Scripts einschließlich der Information, die
für die
Speicherpositionen von Daten in der Informationsverarbeitungsvorrichtung 200 oder
der Speichervorrichtung B 600 repräsentativ ist, in den Speicher
#1 117 geschrieben.
-
Danach
sendet der Prozessor #1 119 Übertragungsstartinformation
an das Register A 807 oder das Register B 807 in
der DMA-Einheit 800 des Datenübertragungs-LSI 114,
und er schreibt die Übertragungsstartinformation
in das Übertragungsstartregister 803 in
der DMA-Einheit des Datenübertragungs-LSI 114.
Die Übertragungsstartinformation enthält die Anforderungsübertragungslänge, die Übertragungsrichtung,
eine Kennung jedes Prozessor-#2-Scripts sowie eine Kennung jedes
Prozessor-#1-Scripts. Auf diese Weise startet der Prozessor #1 119 den
Datenübertragungs-LSI 114 (S4005).
-
In
Reaktion darauf startet die DMA-Einheit 800 einen DMA-Übertragungsprozess (S4006).
Der DMA-Übertragungsprozess
wird unter Bezugnahme auf das Flussdiagramm der 26 beschrieben.
-
Unter
Verwendung der Kennung des Prozessor-#1-Scripts und der Kennung
des Prozessor-#2-Scripts, wie sie in die Übertragungsstartinformation
eingetragen sind, ruft die DMA-Steuerungseinheit 801 das
Prozessor-#1-Script und das Prozessor-#2-Script ab (S5000). Das
Abrufen des Scripts wird entsprechend dem in der 27 dargestellten Flussdiagramm
ausgeführt.
-
Als
Erstes berechnet die DMA-Steuerungseinheit 801 die Speicheradresse
des Prozessor-#1-Scripts im Speicher #1 117 aus der in
die Übertragungsstartinformation
eingeschriebenen Kennung des Prozessor-#1-Scripts und der im Anfangseinstellungsregister 805 gespeicherten
Größe des Prozessor-#1-Scripts (S6000).
Nachdem die Adresse des Prozessor-#1-Scripts berechnet wurde, wird es an
der berechneten Adresse aus dem Speicher #1 117 gelesen
(S6001). Die DMA-Steuerungseinheit 801 schreibt die in
das Prozessor-#1-Script eingetragene Bereichsstartadresse in das Übertragungszieladresse-Feld oder das Übertragungsquelleadresse-Feld
des Übertragungsregisters 804 abhängig von
der Übertragungsrichtung.
Die DMA-Steuerungseinheit 801 schreibt die in das Prozessor#1-Script
eingetragene Scriptkennung und die in das Bereichslängenfeld
eingetragene Bereichslänge
in das Prozessor-#1-AusführungsScriptnummer-Feld
bzw. das Prozessor-#1-Effektivbereichslänge-Feld
des Scriptregisters 806 (S6002).
-
In ähnlicher
Weise berechnet die DMA-Steuerungseinheit 801, entsprechend
der Übertragungsstartinformation,
die Speicheradresse des Prozessor-#2-Scripts im Speicher #1 117 aus
der in die Übertragungsstartinformation
eingetragenen Kennung des Prozessor-#2-Scripts und der im Anfangseinstellungsregister 805 gespeicherten
Größe des Prozessor-#2-Scripts
(S6000). Nach dem Berechnen der Adresse des Prozessor-#2-Scripts wird dasselbe an
der berechneten Adresse aus dem Speicher #1 117 gelesen
(S6001).
-
Die
DMA-Steuerungseinheit 801 schreibt abhängig von der Übertragungsrichtung
die in das Prozessor-#2-Script eingetragene Startadresse in das Übertragungszieladresse-Feld
oder das Übertragungsquelleadresse-Feld
des Übertragungsregisters 804.
Die DMA-Steuerungseinheit 801 schreibt die in das Prozessor-#2-Script
eingetragene Scriptkennung und die in das Bereichslängenfeld
eingetragene Bereichslänge
in das Prozessor-#2-AusführungsScriptnummer-Feld
bzw. das Prozessor-#2-Effektivbereichslänge-Feld des Scriptregisters 806 (S6002).
-
Als
Nächstes
bestimmt die DMA-Steuerungseinheit 801 die Übertragungseinheit
(S5001). Die Übertragungseinheit
wird entsprechend dem in der 28 dargestellten
Flussdiagramm bestimmt.
-
Als
Erstes schreibt die DMA-Steuerungseinheit 801 die Restübertragungslänge in das
Restübertragungslänge-Feld
des Übertragungsregisters 804 (S7000).
Beim Übertragungsstart
wird die Anforderungsübertragungslänge geschrieben.
-
Die Übertragungseinheit
wird als kürzeste Länge hinsichtlich
der Effektivbereichslänge
des Prozessors #1, der Effektivbereichslänge des Prozessors #2 und der
Restübertragungslänge bestimmt (S7001
bis S7007).
-
Die
DMA-Steuerungseinheit 801 überträgt die im Übertragungsregister 804 an
der Übertragungsquelleadresse
gespeicherten Daten mit einer der Übertragungseinheit entsprechenden
Datengröße an die Übertragungszieladresse
(S5002). Die Datenübertragung
erfolgt über
den Übertragungsdatenpuffer 810.
-
Während der
Ausführung
der Datenübertragung
werden die Übertragungsquelleadresse,
die Übertragungszieladresse
und die Restübertragungslänge jeweils
im Übertragungsregister 804 sequenziell
erneuert, und die Prozessor-#2-Effektivbereichslänge und die Prozessor-#1-Effektivbereichslänge jeweils
im Scriptregister 806 werden ebenfalls sequenziell in einem
Umfang dekrementiert, der der Größe der bereits übertragenen
Daten entspricht.
-
Wenn
der Wert entweder der Prozessor-#2-Effektivlänge oder der Prozessor-#1-Effektivbereichslänge im Scriptregister 806 oder
der Restübertragungslänge 0 wird,
führt die
DMA-Steue rungseinheit 801 einen Übertragungsabschluss-Beurteilungsprozess
aus (S5003).
-
Der Übertragungsabschluss-Beurteilungsprozess
wird entsprechend dem in der 29 dargestellten
Flussdiagramm ausgeführt.
-
Als
Erstes prüft
die DMA-Steuerungseinheit 801 die Restübertragungslänge im Übertragungsregister 804.
Wenn die Restübertragungslänge 0 ist, bedeutet
dies, dass alle Daten der Anforderungsübertragungslänge vollständig übertragen
wurden, so dass sich "Nein" ergibt und der Prozess
endet (S8000).
-
Wenn
die Restübertragungslänge nicht
0 ist, ist entweder die Prozessor-#1-Effektivbereichslänge oder
die Prozessor-#2-Effektivbereichslänge 0. In diesem
Fall ist mit dem Script mit der Effektivbereichslänge 0 ein
Script mit dem Kontinuitätsflag
gekoppelt, das als Nächstes
auszuführen
ist. Die Prozesse S8001 bis S8004 bestimmen, ob das Script, mit
dem ein als Nächstes
auszuführendes
Script mit dem Kontinuitätsflag
gekoppelt ist, das Prozessor-#1-Script oder das Prozessor-#2-Script
ist.
-
Als
Erstes wird in S8001 geprüft,
ob der Prozessor-#1-Effektibereich im Scriptregister 806 0
ist. Wenn er 0 ist, geht der Ablauf zu "Ja" weiter,
um in S8002 die Prozessor-#1-StartScriptnummer
zu erneuern, wohingegen dann, wenn er nicht 0 ist, der Ablauf zu "Nein" weitergeht.
-
Als
Nächstes
wird geprüft,
ob der Prozessor-#2-Effektivbereich im Scriptregister 806 0
ist (S8003). Falls er 0 ist, geht der Ablauf zu "Ja" weiter, um
die Prozessor-#2-Start-Scriptnummer
in S8004 zu erneuern, wohingegen dann, wenn er nicht 0 ist, der
Ablauf zu "Nein" weitergeht.
-
Die
DMA-Steuerungseinheit 801 führt erneut S5000 aus. In diesem
Fall liest die DMA-Steuerungseinheit 801 das Script, wie
es durch die Prozessor-#1-Scriptnummer im Übertragungsstartregister 803,
die in S8002 oder S8004 erneuert wurde, oder durch das Prozessor-#2-Script
spezifiziert ist. Entsprechend dem neu gelesenen Script führt die DMA-Steuerungseinheit 801 eine
DMA-Übertragung aus.
-
Wenn
die Restübertragungslänge im Übertragungsregister 804 schließlich im Übertragungsabschluss-Beurteilungsprozess
in S5003 den Wert 0 einnimmt, beendet die DMA-Steuerungseinheit 801 den Übertragungsprozess.
Die DMA-Steuerungseinheit 801 schreibt einen Abschlussstatus,
der das Übertragungsprozessergebnis
beschreibt, in den Speicher #1 117 (S4007), und sie informiert
den Prozessor #1 119 über
den Übertragungsabschluss (S4008).
Diese Abschlussmitteilung kann dadurch ausgeführt werden, dass ein Interruptsignal
gesendet wird.
-
Der
Prozessor #1 119 liest den Abschlussstatus aus dem Speicher
#1 117 (S4009), und er führt einen Prozess entsprechend
dem Inhalt des Abschlussstatus aus (S4009). Der Prozessor #1 119 sendet
eine Abschlussmitteilung an den Prozessor #2 112 (S4010).
-
In
Reaktion darauf liest der Prozessor #2 112 die an den Datenbereich
des Speichers #2 113 übertragenen
Lesedaten, und er sendet sie an die Informationsverarbeitungsvorrichtung 200,
wenn die Daten-Eingabe/Ausgabe-Anforderung eine Datenleseanforderung
ist. Wenn die Daten-Eingabe/Ausgabe-Anforderung eine Datenschreibanforderung
ist, wird ein Schreibabschlussbereich an die Informationsverarbeitungsvorrichtung 200 gesendet.
-
Wie
bereits beschrieben, kann die DMA-Einheit 800 dieser Ausführungsform
den Speicher #3 115 steuern. Daher können die im Register 807 gespeicherte
Datenübertragungsinformation
und im Übertragungsdatenpuffer 810 gespeicherte
Daten in den Speicher #3 115 geschrieben oder aus ihm gelesen
werden. Diese Operation ist in den 19 und 20 veranschaulicht.
Die DMA-Steuerungseinheit 801 steuert das Lesen/Schreiben
von Daten in Bezug auf den Speicher #3 115.
-
Die
Speichersteuerungsvorrichtung 100 dieser Ausführungsform
kann die zweite Datenübertragung
auf Grundlage der zweiten Datenübertragungsinformation
selbst dann steuern, während
die erste Datenübertragung
auf Grundlage der ersten Datenübertragungsinformation
gesteuert wird. D. h., dass die zweite Datenübertragung selbst während einer Steuerung
der ersten Datenübertragung
dadurch gesteuert werden kann, dass die im Register 807 gespeicherte
erste Datenübertragungsinformation
und die im Übertragungsdatenpuffer 810 gespeicherten Daten
in den Speicher #3 115 geschrieben werden und die zweite
Datenübertragungsinformation
aus ihm gelesen wird und in das Register 807 geschrieben
wird. Wie es in der 20 dargestellt ist, besteht für die Anzahl
der Datenübertragungsinformation
und die Anzahl der Daten, wie sie in den Speicher #3 115 geschrieben
werden, keine Beschränkung
auf nur Einzelinformation und einen einzelnen Datenwert, sondern
es können
mehrere Informationen und Einzeldaten geschrieben werden.
-
Die 20 zeigt
mindestens einiges der Datenübertragungsinformation,
wie sie in den Speicher #3 115 zu schreiben ist. Die in
der 20 dargestellte Information beinhaltet eine "Übertragungsquelleadresse", eine "Übertragungszieladresse", eine "Übertragungslänge", einen "Übertragungsbefehl", "Steuerungsinformation" und einen "Prüfcode". Die "Übertragungsquelleadresse" und die "Übertragungszieladresse" sind eine Übertragungsquelleadresse
bzw. eine Übertragungszieladresse,
wie sie im Übertragungsregister 804 ge speichert
sind. Die "Übertragungslänge" kann die im Übertragungsregister 804 gespeicherte
Restübertragungslänge oder
ein Wert sein, der dadurch erhalten wird, dass die Restübertragungslänge von
der im Übertragungsstartregister 803 gespeicherten
Anforderungsübertragungslänge abgezogen
wird. Der "Übertragungsbefehl" kann eine im Übertragungsstartregister 803 gespeicherte Übertragungsrichtung
oder eine Daten-Eingabe/Ausgabe-Anforderung sein, wie sie von der
Informationsverarbeitungsvorrichtung 200 an die Speichervorrichtung 100 gesendet
wird. Im letzteren Fall ist die DMA-Einheit 800 mit einem
Register zum Speichern der Daten-Eingabe/Ausgabe-Anforderung versehen, und
die in das Register gespeicherte Daten-Eingabe/Ausgabe-Anforderung
wird in den Speicher #3 115 geschrieben. Die "Steuerungsinformation" kann verschiedene
Statusinformation sein, wie sie gespeichert wird, wenn die DMA-Steuerungseinheit 801 die Datenübertragung
steuert. Der "Prüfcode" ist ein Zwischenergebnis
eines Prüfcodes,
wie er entsprechend den übertragenen
Daten berechnet wird. Der Prüfcode
kann eine Prüfsumme
oder ein Cyclic Redundancy Check (CRC) sein.
-
Durch
Einschreiben der im Register 807 gespeicherten Datenübertragungsinformation
und der im Übertragungsdatenpuffer 810 gespeicherten
Daten in den Speicher #3 115 kann die zweite Datenübertragung
auf Grundlage der zweiten Datenübertragungsinformation
gesteuert werden, während
die erste Datenübertragung
auf Grundlage der ersten Datenübertragungsinformation
gesteuert wird. Unter Bezugnahme auf die 21 und 22 erfolgt
eine Beschreibung zu einem Ablauf des Prozesses zum Steuern der
zweiten Datenübertragung
auf Grundlage der zweiten Datenübertragungsinformation,
während
die erste Datenübertragung
auf Grundlage der ersten Datenübertragungsinformation
gesteuert wird.
-
Zahlen,
die in den 21 und 22 mit Kreisen
umgeben sind, kennzeichnen eine Prozessreihenfolge. Als Erstes weist
der Prozessor #1 119 die DMA-Einheit 800 dazu
an, die Datenübertragung zu
starten (Start der DMA-Einheit 800). Die DMA-Steuerungseinheit 801 liest
die im Register 807 gespeicherte erste Datenübertragungsinformation sowie
die im Übertragungsdatenpuffer 810 gespeicherten
Daten, die übertragen
werden, und sie schreibt sie (sichert sie) in den Speicher #3 115. Wenn
die Schreiboperation abgeschlossen ist, liest die DMA-Steuerungseinheit 801 die
zweite Datenübertragungsinformation
und die dieser entsprechenden Daten aus dem Speicher #3 115,
und sie schreibt sie in das Register 807 bzw. den Übertragungsdatenpuffer 810.
Die DMA-Steuerungseinheit 801 führt die zweite Datenübertragung über den Übertragungsdatenpuffer 810 aus.
Wenn die zweite Datenübertragung
abgeschlossen wird, wird eine Abschlussmitteilung an den Prozessor
#1 119 gesendet.
-
Auf
diese Weise kann die Speichersteuerungsvorrichtung 100 dieser
Ausführungsform
die zweite Datenübertragung
ausführen,
ohne dass sie auf den Abschluss der ersten Datenübertragung zu warten hätte. Wenn
z. B. eine Datenleseoperation von im zweiten Speicher-Datenbereich 310 der
Speichervorrichtung B 600 gespeicherter Lesedaten aus der
Speichervorrichtung A 600 mehrmals auszuführen ist,
ist es möglich,
die zweite Datenleseanforderung an die Speichersteuerungsvorrichtung 100B zu senden,
bevor die in Reaktion auf die erste Datenleseanforderung, wie sie
von der Speichersteuerungsvorrichtung 100A die Speichersteuerungsvorrichtung 100B gesendet
wurde, gelesenen Daten von der Speichersteuerungsvorrichtung 100B an
die Speichersteuerungsvorrichtung 100A gesendet werden oder
bevor alle Datenblöcke
vollständig
gesendet sind, und zwar selbst nach dem Übertragen der Daten von der
Speichersteuerungsvorrichtung 100B an die Speichersteuerungsvorrichtung 100A.
In diesem Fall wird, wenn die zweite Datenleseanforderung gesendet
wird, die erste Datenübertragungsinformation,
die der ersten Datenleseanforderung entspricht, in das Register 807 des
Datenübertragungs-LSI 114 gespeichert.
Da jedoch die erste Datenübertragungsinformation
in den Speicher #3 115 geschrieben wird, wird die zweite
Datenübertragungsinformation
entsprechend der zweiten Datenleseanforderung in das Register 807 gelesen,
damit die zweite Datenübertragung
ausgeführt
werden kann. Wenn die aus dem Speicher-Datenbereich 310 der
Speichervorrichtung B 600 in Reaktion auf die erste Datenleseanforderung
gelesenen Daten zu empfangen sind, wird die im Register 807 gespeicherte
zweite Datenübertragungsinformation
in den Speicher #3 115 geschrieben, und die in ihn geschriebene
erste Datenübertragungsinformation
wird erneut gelesen und in das Register 807 geschrieben,
um es zu ermöglichen,
die Daten für
die erste Datenübertragungsanforderung zu
empfangen.
-
Auf
diese Weise ist während
der Übertragungsbereitschaftsperiode
für die
Datenübertragung zwischen
der Speichersteuerungsvorrichtung A 600 und der Speichersteuerungsvorrichtung
B 100 eine andere Datenübertragung
möglich.
Ferner ist selbst dann, wenn Lesedaten nicht im Cachespeicher 130 der
Speichersteuerungsvorrichtung 100B sind (selbst wenn ein
Cachefehltreffer vorliegt), eine andere Datenübertragung möglich, während Daten
aus dem Speicher-Datenbereich B 310 gelesen werden. Daher
ist es möglich,
den Durchsatz der Datenübertragung
zu verbessern, so dass das Daten-Eingabe/Ausgabe-Funktionsvermögen verbessert
werden kann.
-
Wie
oben beschrieben, können
in den Speicher #3 115 mehrere Datenübertragungsinformationen und
Daten geschrieben werden. Daher ist es ersichtlich, dass während einer
Periode, in der Daten, die auf eine zweite Datenübertragungsanforderung hin
an die Speichersteuerungsvorrichtung 100A gesendet werden,
eine dritte Datenleseanforderung an die Speichersteuerungs vorrichtung 100B gesendet werden
kann, was es ermöglicht,
eine Daten-Eingabe/Ausgabe in höherer
Vielzahl auszuführen.
-
Bei
der oben beschriebenen Ausführungsform
ist selbst dann, wenn auf Daten zugegriffen wird, die in der mittels
eines Kommunikationspfads verbundenen Speichervorrichtung B 600 gespeichert sind,
eine Daten-Eingabe/Ausgabe dadurch möglich, dass eine Datenübertragungs-Verzögerungszeit durch
Kommunikationsvorgänge
verdeckt wird, wobei das Funktionsvermögen nicht abnimmt.
-
Wenn
die Datenübertragung
mit der Einheit eines Datenblocks ausgeführt wird, wie dann, wenn Kommunikationsvorgänge zwischen
der Speichervorrichtung A 600 und der Speichervorrichtung
B 600 durch das Faserkanalprotokoll ausgeführt werden, wird
die Datenübertragung
in einem vermischten Zustand von Datenblöcken gemäß der ersten Datenübertragung
und Datenblöcken
gemäß der zweiten Datenübertragung
ausgeführt.
In einem Speichersystem mit mehreren Speichervorrichtungen A 600 und Speichervorrichtungen
B 600 wird eine größere Anzahl
von Blöcken
in vermischtem Zustand gesendet. Selbst in einem derartigen Fall
kann mit der Speichersteuerungsvorrichtung dieser Ausführungsform das
Senden/Empfangen von Datenblöcken
einer zweiten Datenübertragung
ausgeführt
werden, während
das Senden/Empfangen von Datenblöcken
einer ersten Datenübertragung
erfolgt, in dem die Datenübertragungsinformation
und die Datenblöcke
der ersten Datenübertragung
in den dritten Speicher #3 115 geschrieben werden. Die
erste Datenübertragung
kann dadurch wieder aufgenommen werden, dass die Datenübertragungsinformation
und die Datenblöcke
der ersten Datenübertragung
aus dem Speicher #3 115 gelesen werden, nachdem die zweite
Datenübertragung
abgeschlossen wurde.
-
Die
DMA-Einheit 800 dieser Ausführungsform verfügt, wie
es in der 7 dargestellt ist, über zwei
DMA-Steuerungsein heiten 801, zwei Übertragungspuffer 810 und
zwei Register 807. Daher kann, wie es unten beschrieben
wird, die Speichersteuerungsvorrichtung 100 dieser Ausführungsform
eine Datenübertragung
in bevorzugterem Zustand ausführen.
-
D.
h., dass dann, wie es in der 23 dargestellt
ist, wenn Datenblöcke
der zweiten Datenübertragung
während
des Sendens/Empfangens von Datenblöcken der ersten Datenübertragung
gesendet/empfangen werden, bevor der Schreibvorgang für die im
Register 807 einer DMA-Einheit 800 gespeicherte
erste Datenübertragung
und die Datenblöcke
während
der Datenübertragung,
wie im Übertragungsdatenpuffer 810 der
einen DMA-Einheit 800 gespeichert,
in den Speicher #3 115 abgeschlossen ist, die zweite Datenübertragungsinformation
und die dieser entsprechenden Datenblöcke in das Register 807 und
den Übertragungsdatenpuffer 810 der
anderen DMA-Einheit 800 gelesen werden. Auf diese Weise
werden, ohne auf den Abschluss des Schreibens der im Register 807 gespeicherten
ersten Datenübertragungsinformation
und der Datenblöcke
während der
Datenübertragung,
wie im Übertragungsdatenpuffer 810 gespeichert,
in den Speicher #3 115 zu warten, die zweite Übertragungsinformation
und die der zweiten Datenübertragungsinformation
entsprechenden Datenblöcke
in das Register 807 und den Übertragungsdatenpuffer 810 der
anderen DMA-Einheit 800 geschrieben, so dass die zweite
Datenübertragung
früher
gestartet werden kann. Der Daten-Eingabe/Ausgabe-Prozess zwischen
der Speichervorrichtung A 600 und der Speichervorrichtung
B 600 kann daher mit höherer
Geschwindigkeit ausgeführt
werden.
-
Dieser
Betriebszustand ist in der 24 veranschaulicht.
Es werden nun die 22 und 24 verglichen.
Die 22 zeigt den Betriebszustand beim Umschalten zwischen
der ersten und der zweiten Datenübertragung,
wobei eine DMA-Steuerungseinheit 801 ein Datenübertragungspuffer 810 und
ein Register 807 vorhanden sind. Die 24 zeigt
den Betriebszustand des Umschaltens zwischen der ersten und der
zweiten Datenübertragung
gemäß der Ausführungsform,
wobei zwei DMA-Steuerungseinheiten 801,
zwei Übertragungsdatenpuffer 810 und zwei
Register 807 vorhanden sind. Wie es aus diesem Vergleich
erkennbar ist, kann der Datenübertragungs-LSI 114 den
Umschaltoverhead bei der DMA-Übertragung
verbergen, da der Datenübertragungs-LSI 114 dieser
Ausführungsform
so strukturiert ist, dass er über
zwei DMA-Steuerungseinheiten 801, zwei Übertragungsdatenpuffer 810 und
zwei Register 807 verfügt.
Der Daten-Eingabe/Ausgabe-Prozess zwischen der Speichervorrichtung
A 600 und der Speichervorrichtung B 600 können mit
höherer Geschwindigkeit
ausgeführt
werden.
-
<Zweite
Ausführungsform>
-
Als
Nächstes
wird die zweite Ausführungsform
beschrieben. Bei der zweiten Ausführungsform ist die Kommunikationsschnittstellen-Funktion
der Kanal-Steuerungseinheit 110 durch eine LSI(Large-Scale
Integrated)-Protokollschaltung 112 realisiert.
-
Die 30 zeigt
die Struktur der Kanal-Steuerungseinheit 110 der zweiten
Ausführungsform.
-
Die
Kanal-Steuerungseinheit 110 ist als Leiterplatte 118 in
Form einer einheitlichen Platte strukturiert. Die Kanal-Steuerungseinheit 110 kann über eine
oder mehrere Leiterplatten 118 verfügen. Die Leiterplatte 118 verfügt über einen
Prozessor #1 119, einen Protokoll-LSI 112, einen
Datenübertragungs-LSI 114,
einen Speicher #1 117, einen Speichercontroller #1 111,
einen Speicher #3 115 sowie Verbinder 116.
-
Der
Prozessor #1 119, der Protokoll-LSI 112, der Datenüber tragungs-LSI 114,
der Speicher #1 117, der Speichercontroller #1 111 und
der Speicher #3 115 sind mit einem PCI(Peripheral Component
Interconnect)-Bus verbunden, um wechselseitige Kommunikationsvorgänge ausführen zu
können.
Es ist nicht immer erforderlich, dass sie mit einem PCI-Bus verbunden
sind, sondern einige derselben oder alle können entsprechend einem anderen
Standard konfiguriert sein. Der Speicher #1 117, der Speicher
#3 115 und der Speichercontroller #1 111 bilden
den zweiten Speicher. Der Datenübertragungs-LSI 114 und
der Protokoll-LSI 112 bilden die Datenübertragungs-Steuerungseinheit. Der Prozessor #1 119 bildet
die Eingabe/Ausgabe-Steuerungseinheit.
-
Der
Protokoll-LSI 112 sorgt für eine Kommunikationsschnittstellen-Funktion
für Kommunikationsvorgänge mit
der Informationsverarbeitungsvorrichtung 200 und einer
anderen Speichervorrichtung 600. Zum Beispiel werden Daten
in das Datenformat in Übereinstimmung
mit dem Faserkanalprotokoll gewandelt und an eine andere Speichervorrichtung 600 gesendet.
Die mit dem Protokoll-LSI 112 verbundenen Verbinder 116 werden
für Kommunikationsvorgänge mit
der Informationsverarbeitungsvorrichtung 200 und einer
anderen Speichervorrichtung 600 verwendet. Der Protokoll-LSI 112 führt eine
Steuerung zum Realisieren der Kommunikationsschnittstellen-Funktion
aus. Daten, wie sie an die und von der Informationsverarbeitungsvorrichtung 200 und
einer anderen Speichervorrichtung 600 übertragen werden, werden in
einem Puffer gespeichert, der in den Protokoll-LSI 112 eingebaut
ist.
-
Der
Protokoll-LSI 112 und die Verbinder 116 fungieren
auch als Port, der mit dem Port der das SAN 500 aufbauenden
Faserkanal-Vermittlungsstelle verbunden ist. Wie es auf dem Gebiet
der Faserkanaltechnik gut bekannt ist, ist dem Port eine WWN zugewiesen,
die eine Kennung zum Kennzeichnen einer Anlage an einem SAN 500 ist.
-
Der
Prozessor #1 119 führt
ein im Speicher #1 117 gespeichertes Steuerungsprogramm 700 zum Steuern
der gesamten Kanal-Steuerungseinheit 110 aus. Zum Beispiel
wird eine von der Informationsverarbeitungsvorrichtung 200 gesendete
Daten-Eingabe/Ausgabe-Anforderung analysiert, um zu beurteilen,
ob sie an die Speichertreibervorrichtung A 300 oder die
Speichertreibervorrichtung B 300 gerichtet ist. Wenn die
Anforderung an die Speichertreibervorrichtung A 300 gerichtet
ist, wird beurteilt, ob eine Fernkopie erforderlich ist. Der Prozessor
#1 119 führt andere
Beurteilungen aus, und entsprechend den Beurteilungsergebnissen
wird eine Datenübertragungsanweisung
an den Datenübertragungs-LSI 114 geliefert.
-
Auf
eine Anweisung vom Prozessor #1 119 hin steuert der Datenübertragungs-LSI 114 als
Ziel des PCI-Busses die Datenübertragung
zwischen dem Cachespeicher 130 und der Informationsverarbeitungsvorrichtung 200 oder
der Speichervorrichtung B 600. Genauer gesagt, liest der
Datenübertragungs-LSI 114 auf
eine Anweisung vom Prozessor #1 119 hin Datenübertragungsinformation
aus dem Speicher #1 117, um eine Datenübertragung mittels eines Zugriffs
auf den PCI-Bus auszuführen.
Die Datenübertragungsinformation
wird durch den Prozessor #1 119 in den Speicher #1 117 geschrieben,
und sie beinhaltet die Speicherstelle von Daten im Cachespeicher 130 sowie
die Speicherstelle der Daten in der Informationsverarbeitungsvorrichtung 200,
der Speichersteuerungsvorrichtung B 100 oder der Speichervorrichtung
B 600.
-
– Datenübertragung –
-
Als
Nächstes
erfolgt eine Beschreibung zur Datenübertragung durch die Kanal-Steuerungseinheit 110 der
zweiten Ausführungsform
zwischen dem Cachespeicher 130 und der Informati onsverarbeitungsvorrichtung 200 oder
der Speichersteuerungsvorrichtung 100B.
-
Die 31 zeigt
den PCI-Busraum vom Protokoll-LSI 112 aus gesehen. Der
PCI-Busraum des Protokoll-LSI 112 verfügt über einen Datenraum und einen
Steuerungsraum. Der Steuerungsraum ist physikalisch im Scriptbereich
des in der 9 dargestellten Speichers #1 117 ausgebildet.
-
Der
Datenraum des PCI-Busses speichert Daten, die an den Cachespeicher 130 zu übertragen sind,
oder Daten, wie sie von diesem übertragen
werden. Der Steuerungsraum des PCI-Busses speichert den Speicherort aller
im Datenraum gespeicherter Daten, die Größe (Bereichslänge) des
Speicherbereichs aller Daten und dergleichen als Prozessor-#2-Script
(Datenübertragungsinformation)
aller Einzeldaten. Das Prozessor-#2-Script ist dem Prozessor-#2-Script
der ersten Ausführungsform ähnlich.
Das Prozessor-#2-Script wird durch den Prozessor #1 119 eingestellt
und in den Steuerungsraum des PCI-Busraums des Protokoll-LSI 112,
d. h. in den Scriptbereich des Speichers #1 117, geschrieben.
-
Ähnlich wie
bei der in der 10 dargestellten ersten Ausführungsform
speichert der Datenbereich des Cachespeichers 130 der zweiten
Ausführungsform
Daten, die an den Datenraum des PCI-Busraums zu übertragen sind, oder Daten,
die von diesem übertragen
werden. Wie es in der 9 dargestellt ist, werden der
Speicherort aller im Datenbereich des Cachespeichers 130 gespeicherter
Einzeldaten, die Größe, Bereichslänge, des
Speicherbereichs aller Einzeldaten und dergleichen für alle Einzeldaten,
als Prozessor-#1-Script (Datenübertragungsinformation)
im Scriptbereich des Speichers #1 117 gespeichert. Das
Prozessor-#1-Script ist dem Prozessor-#1-Script der ersten Ausführungsform ähnlich.
Das im Speicher #1 117 gespeicherte Prozessor-#1-Script
wird durch den Prozessor #1 119 eingestellt und in den
Scriptbereich, des Speichers #1 117 geschrieben.
-
– Ablauf der Datenübertragung –
-
Als
Nächstes
erfolgt unter Bezugnahme auf das Flussdiagramm der 32 eine
Beschreibung zum Ablauf eines Datenübertragungsprozesses gemäß der zweiten
Ausführungsform,
wobei als Beispiel der Fall verwendet wird, dass die Speichervorrichtung
A 600 von der Informationsverarbeitungsvorrichtung 200 eine
Datenleseanforderung für
Daten empfängt,
wie sie in der Speichervorrichtung B 600 gespeichert sind.
-
Wenn
die Speichersteuerungsvorrichtung 100A von der Informationsverarbeitungsvorrichtung 200 eine
Datenleseanforderung empfängt,
reserviert der Prozessor #1 119 den Datenbereich im Speicher #1 117 und
im Cachespeicher 130 (S9000). Das Reservieren des Datenbereichs
im Speicher #1 117 bedeutet, dass der Speicherbereich zum
Speichern des Prozessor-#1-Scripts
und des Prozessor-#2-Scripts im Speicher #1 117 reserviert
wird. Das Reservieren des Datenbereichs im Cachespeicher 130 bedeutet, dass
der Speicherbereich zum Speichern von Lesedaten im Cachespeicher 130 reserviert
wird. Es können
mehrere reservierte Datenbereiche reserviert werden.
-
Der
Prozessor #1 119 erzeugt ein Prozessor-#1-Script. Das Prozessor-#1-Script
hat die Adresse des Cachespeichers 130 als Datensende-Zieladresse.
Das erzeugte Prozessor-#1-Script wird im Speicher #1 117 gespeichert
(S9001). Als Nächstes
erzeugt der Prozessor #1 119 ein Prozessor-#2-Script und
speichert es im Speicher #1 117 (S9002). Das Prozessor-#2-Script hat die PCI-Adresse
als Datensende-Zieladresse.
-
Der
Prozessor #1 119 sendet die Prozessor-#2-Scriptnummer an
den Protokoll-LSI 112, um die Datenübertragungsanforderung auszuführen (S9003).
-
Daraufhin
liest der Protokoll-LSI 112 das Prozessor-#2-Script aus dem Speicher
#1 117 (S9004), um über
das SAN 500 mit der Speichervorrichtung B 600 zu
kommunizieren. Durch die Kommunikationsvorgänge sendet der Protokoll-LSI 112 eine
Datenleseanforderung an die Speichervorrichtung B 600. Nachdem
die Lesedaten von der Speichervorrichtung B 600 gesendet
wurden, sendet der Protokoll-LSI 112 die Lesedaten unter
Verwendung der PCI-Adresse als Sendeziel (S9006).
-
Der
Prozessor #1 119 sendet die Prozessor-#1-Scriptnummer an
den Datenübertragungs-LSI 114.
Entsprechend der Prozessor-#1-Scriptnummer liest
der Datenübertragungs-LSI 114 das
Prozessor-#1-Script aus dem Speicher #1 114 (S9007). Auf die
PCI-Busoperation hin startet der Datenübertragungs-LSI 114 die
DMA-Übertragung
an den Cachespeicher 130 entsprechend dem Prozessor-#1-Script (S9008).
Der DMA-Übertragungsprozess
ist demjenigen Prozess ähnlich,
wie er in den Flussdiagrammen der 26 bis 29 veranschaulicht
ist.
-
Nach
dem DMA-Übertragungsprozess schreibt
die DMA-Steuerungseinheit 801 den Abschlussstatus, der
das Übertragungsprozessergebnis
beschreibt, in den Speicher #1 117 (S9009), und sie sendet
eine Abschlussmitteilung an den Prozessor #1 119 (S9010).
Diese Abschlussmitteilung kann dadurch erstellt werden, dass ein
Interruptsignal gesendet wird.
-
Der
Prozessor #1 119 liest den Abschlussstatus aus dem Speicher
#1 117, und er führt
einen Prozess aus, der dem Inhalt des Abschlussstatus entspricht
(S9011).
-
Ähnlich wie
die DMA-Einheit 800 der ersten Ausführungsform kann die DMA-Einheit
der zweiten Ausführungsform
den Speicher #3 115 steuern. Daher können die im Register 807 ge speicherten
Datenübertragungsinformation
und die im Übertragungsdatenpuffer 810 gespeicherten
Daten in den Speicher #3 115 geschrieben oder aus ihm gelesen
werden. Auch kann bei der Speichersteuerungsvorrichtung 100 der
zweiten Ausführungsform
die zweite Datenübertragung
auf Grundlage der zweiten Datenübertragungsinformation
gesteuert werden, obwohl gerade die erste Datenübertragung gesteuert wird,
die auf der ersten Datenübertragungsinformation
beruht.
-
Zum
Beispiel benötigt
der Prozess gemäß S9005,
d. h. ein Zugriff auf die Speichervorrichtung B 600 durch
den Protokoll-LSI 112, relativ viel Zeit. Während dieser
Periode können
mehrere Datenleseanforderungen an die Speichervorrichtung B 600 gesendet
werden. Es ist auch möglich,
mehrere Lesedaten zu empfangen, wie sie auf jede Datenleseanforderung
hin an die Speichervorrichtung B 600 gesendet werden. In
diesem Fall können
für eine
Datenleseanforderung mehrere Teildaten (Datenblöcke) empfangen werden.
-
Wenn
eine Datenleseoperation zum Lesen von im Speicher-Datenbereich 310 der
Speichervorrichtung B 600 gespeicherte Daten aus der Speichervorrichtung
A 600 mehrmals auszuführen
ist, ist es möglich,
die zweite Datenleseanforderung an die Speichersteuerungsvorrichtung 100B zu
senden, bevor die Daten, die in Reaktion auf die erste Datenleseanforderung,
wie sie von der Speichersteuerungsvorrichtung 100A an die
Speichersteuerungsvorrichtung 100B gesendet wird, gelesenen
Daten von der Speichersteuerungsvorrichtung 100B an die
Speichersteuerungsvorrichtung 100A gesendet werden, oder
bevor alle Datenblöcke
vollständig
gesendet sind, selbst nachdem die Daten von der Speichersteuerungsvorrichtung 100B die
Speichersteuerungsvorrichtung 100A gesendet wurden. In
diesem Fall wird, wenn die zweite Datenleseanforderung gesendet
wird, die erste Datenübertragungsinformation,
die der ersten Datenleseanforderung entspricht, in das Re gister 807 des
Datenübertragungs-LSI 114 eingespeichert.
Da jedoch die erste Datenübertragungsinformation
in den Speicher #3 115 geschrieben ist, wird die zweite
Datenübertragungsinformation,
die der zweiten Datenleseanforderung entspricht, in das Register 807 gelesen,
um es zu ermöglichen, die
zweite Datenübertragung
auszuführen.
Wenn die Daten zu empfangen sind, wie sie auf die erste Datenleseanforderung
hin aus dem Speicher-Datenbereich 310 der Speichervorrichtung
B 600 gelesen werden, wird die im Register 807 gespeicherte
zweite Datenübertragungsinformation
in den Speicher #3 115 geschrieben, und diese in den Speicher
#3 115 geschriebene erste Datenübertragungsinformation wird
erneut gelesen und in das Register 807 geschrieben, um
es zu ermöglichen,
die Daten zur ersten Datenübertragungsanforderung
zu empfangen.
-
Auf
diese Weise ist während
der Übertragungsbereitschaftsperiode
für die
Datenübertragung zwischen
der Speichersteuerungsvorrichtung 100A und der Speichersteuerungsvorrichtung 100B eine andere
Datenübertragung
möglich.
Ferner ist selbst dann, wenn Lesedaten nicht im Cachespeicher 130 der
Speichersteuerungsvorrichtung 100B gespeichert sind (selbst
wenn ein Cachefehltreffer vorliegt), eine andere Datenübertragung
möglich,
während Daten
aus dem Speicher-Datenbereich B 310 gelesen werden. Hier
ist es möglich,
den Durchsatz der Datenübertragung
zu verbessern, so dass das Daten-Eingabe/Ausgabe-Funktionsvermögen verbessert
werden kann.
-
Wie
oben beschrieben, können
mehrere Datenübertragungsinformationen
und Daten in den Speicher #3 115 geschrieben werden. Daher
ist es ersichtlich, dass eine dritte Datenleseanforderung an die
Speichersteuerungsvorrichtung 100B innerhalb einer Periode
gesendet werden kann, in der die auf die zweite Datenübertragungsanforderung
hin gelesenen Daten an die Speichersteuerungsvorrichtung 100A gesendet
werden, um es zu ermöglichen,
die Daten-Eingabe/Ausgabe mit höherer
Vielzahl auszuführen.
-
Bei
der oben beschriebenen zweiten Ausführungsform ist eine Daten-Eingabe/Ausgabe
selbst dann, wenn auf Daten zugegriffen wird, die in der mit einem
Kommunikationspfad verbundenen Speichervorrichtung B 600 gespeichert
sind, in dem eine Datenübertragungs-Verzögerungszeit
aufgrund von Kommunikationsvorgängen
verdeckt wird, möglich, wodurch
das Funktionsvermögen
nicht abnimmt.
-
Wenn
die Datenübertragung
mit der Einheit eines Datenblocks ausgeführt wird, wie dann, wenn Kommunikationsvorgänge zwischen
der Speichervorrichtung A 600 und der Speichervorrichtung
B 600 gemäß dem Faserkanalprotokoll
ausgeführt
werden, wird die Datenübertragung
in einem gemischten Zustand von Datenblöcken gemäß der ersten Datenübertragung
und Datenblöcken
gemäß der zweiten Datenübertragung
ausgeführt.
In einem Speichersystem mit mehreren Speichervorrichtungen A 600 und Speichervorrichtungen
B 600 wird eine große
Anzahl von Blöcken
in vermischtem Zustand gesendet. Selbst in derartigen Fällen kann
bei der Speichersteuerungsvorrichtung gemäß der zweiten Ausführungsform
das Senden/Empfangen von Datenblöcken
gemäß der zweiten
Datenübertragung
während des
Sendens/Empfangens von Datenblöcken
gemäß der ersten
Datenübertragung
dadurch ausgeführt werden,
dass die Datenübertragungsinformation
und die Datenblöcke
der ersten Datenübertragung
in den dritten Speicher #3 115 geschrieben werden. Die
erste Datenübertragung
kann durch Lesen der Datenübertragungsinformation
und der Datenblöcke
der ersten Datenübertragung
aus dem Speicher #3 115 nach Abschluss der zweiten Datenübertragung
wieder aufgenommen werden.
-
Die
DMA-Einheit 800 der zweiten Ausführungsform verfügt auch über zwei
DMA-Steuerungseinheiten 801, zwei Übertragungspuf fer 810 und
zwei Register 807. Daher werden auch bei der Speichersteuerungsvorrichtung
gemäß der zweiten
Ausführungsform,
wenn Datenblöcke
der zweiten Datenübertragung
während
eines Sendens/Empfangens von Datenblöcken der ersten Datenübertragung
gesendet/empfangen werden, bevor der Schreibvorgang für die erste
Datenübertragungsinformation, wie
sie im Register 807 einer DMA-Einheit 800 gespeichert
ist, und der der Datenübertragung
unterliegenden Datenblöcke,
wie sie im Übertragungsdatenpuffer 810 der
einen DMA-Einheit 800 gespeichert sind, in den Speicher
#3 115 abgeschlossen ist, die zweite Datenübertragungsinformation
und die dieser entsprechenden Datenblöcke in das Register 807 und
den Übertragungsdatenpuffer 810 der
anderen DMA-Einheit 800 gelesen. Auf diese Weise werden, ohne
dass auf den Abschluss des Schreibvorgangs der im Register 807 gespeicherten
ersten Datenübertragungsinformation
und der Datenübertragungsblöcke während der
Datenübertragung,
wie im Übertragungsdatenpuffer 810 gespeichert,
in den Speicher #3 115 gewartet wird, die zweite Übertragungsinformation
und die der zweiten Datenübertragungsinformation
entsprechenden Datenblöcke
in das Register 807 und den Übertragungsdatenpuffer 810 der
anderen DMA-Einheit 800 geschrieben, so dass die zweite Datenübertragung
früher
gestartet werden kann. Der Daten-Eingabe/Ausgabe-Prozess zwischen
der Speichervorrichtung A 600 und der Speichervorrichtung
B 600 kann daher mit höherer
Geschwindigkeit ausgeführt
werden.
-
Die
Erfindung wurde in Zusammenhang mit der Ausführungsform beschrieben. Die
Ausführungsformen
sind dazu verwendet, das Verständnis
der Erfindung zu vereinfachen, und sie sind nicht als die Erfindung
beschränkend
auszulegen. Modifizierungen und Verbesserungen sind möglich, ohne
vom Grundgedanken und Schutzumfang der Erfindung abzuweichen, und
die Erfindung beinhaltet auch Äquivalente der
Ausführungsformen.