DE102004013112B4 - Speichersteuerung - Google Patents

Speichersteuerung Download PDF

Info

Publication number
DE102004013112B4
DE102004013112B4 DE102004013112A DE102004013112A DE102004013112B4 DE 102004013112 B4 DE102004013112 B4 DE 102004013112B4 DE 102004013112 A DE102004013112 A DE 102004013112A DE 102004013112 A DE102004013112 A DE 102004013112A DE 102004013112 B4 DE102004013112 B4 DE 102004013112B4
Authority
DE
Germany
Prior art keywords
data
memory
data transfer
information
transmission
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE102004013112A
Other languages
English (en)
Other versions
DE102004013112A1 (de
Inventor
Hiroki Kanai
Shoji Kato
Yuusuke Yauchi
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of DE102004013112A1 publication Critical patent/DE102004013112A1/de
Application granted granted Critical
Publication of DE102004013112B4 publication Critical patent/DE102004013112B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0658Controller construction arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0662Virtualisation aspects
    • G06F3/0665Virtualisation aspects at area level, e.g. provisioning of virtual or logical volumes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2056Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring
    • G06F11/2071Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant by mirroring using a plurality of controllers
    • G06F11/2074Asynchronous techniques

Abstract

Speichersteuerung in einem Speichersystem, das aufweist:
eine erste Steuervorrichtung (100A) zum Empfangen einer Daten-Ein/Ausgabeanforderung von einer Informationsverarbeitungsvorrichtung (200) und zur Ein/Ausgabe von Daten in/aus einem ersten Datenspeicherbereich (310), und
eine mit der ersten Steuervorrichtung (100A) kommunizierende zweite Steuervorrichtung (100B) zur Ein/Ausgabe von Daten in/aus einem zweiten Datenspeicherbereich (310),
wobei die erste Steuervorrichtung (100A) einen ersten Speicher (Cache 130) zum Speichern von zwischen der ersten und der zweiten Steuervorrichtung (100A, 100B) übertragenen Daten, und einen zweiten Speicher (115, 117) aufweist,
dadurch gekennzeichnet, dass die erste Steuervorrichtung (100A) ferner aufweist:
eine Ein/Ausgabesteuerung (119) zum Einschreiben von einen Speicherort von Daten im ersten Speicher (130) und einen Speicherort von Daten in der zweiten Steuervorrichtung (100B) angebenden Datenübertragungsinformationen in den zweiten Speicher (115, 117), und
eine Datenübertragungssteuerung (114), die einen Datenpuffer (810) und ein Datenübertragungsregister (807) zum Speichern der Datenübertragungsinformationen umfasst und die Datenübertragung zwischen dem ersten Speicher...

Description

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

Claims (8)

  1. Speichersteuerung in einem Speichersystem, das aufweist: eine erste Steuervorrichtung (100A) zum Empfangen einer Daten-Ein/Ausgabeanforderung von einer Informationsverarbeitungsvorrichtung (200) und zur Ein/Ausgabe von Daten in/aus einem ersten Datenspeicherbereich (310), und eine mit der ersten Steuervorrichtung (100A) kommunizierende zweite Steuervorrichtung (100B) zur Ein/Ausgabe von Daten in/aus einem zweiten Datenspeicherbereich (310), wobei die erste Steuervorrichtung (100A) einen ersten Speicher (Cache 130) zum Speichern von zwischen der ersten und der zweiten Steuervorrichtung (100A, 100B) übertragenen Daten, und einen zweiten Speicher (115, 117) aufweist, dadurch gekennzeichnet, dass die erste Steuervorrichtung (100A) ferner aufweist: eine Ein/Ausgabesteuerung (119) zum Einschreiben von einen Speicherort von Daten im ersten Speicher (130) und einen Speicherort von Daten in der zweiten Steuervorrichtung (100B) angebenden Datenübertragungsinformationen in den zweiten Speicher (115, 117), und eine Datenübertragungssteuerung (114), die einen Datenpuffer (810) und ein Datenübertragungsregister (807) zum Speichern der Datenübertragungsinformationen umfasst und die Datenübertragung zwischen dem ersten Speicher (130) und der zweiten Steuervorrichtung (100B) über den Datenpuffer (810) entsprechend der aus dem zweiten Speicher (115, 117) gelese nen und in das Datenübertragungsregister (807) geschriebenen Datenübertragungsinformationen steuert, wobei die Datenübertragungssteuerung (114) dann, wenn die zweite Datenübertragung aufgrund einer zweiten Datenübertragungsinformation gesteuert wird, während eine erste Datenübertragung aufgrund einer ersten Datenübertragungsinformation gesteuert wird, die im Datenübertragungsregister (807) gespeicherte erste Datenübertragungsinformation und die im Datenpuffer (810) gespeicherten Daten in den zweiten Speicher (115, 117) schreibt, die zweite Datenübertragungsinformation aus dem zweiten Speicher (115, 117) liest und in das Datenübertragungsregister (807) schreibt und entsprechend dieser zweiten Datenübertragungsinformation die zweite Datenübertragung steuert.
  2. Speichersteuerung nach Anspruch 1, wobei die Datenübertragungssteuerung (114) mehrere Datenpuffer (810) und mehrere Datenübertragungsregister (807) enthält, dann, wenn eine zweite Datenübertragung aufgrund der zweiten Datenübertragungsinformation und eine erste Datenübertragung aufgrund der ersten Datenübertragungsinformation gesteuert wird, die zweite Datenübertragungsinformation aus dem zweiten Speicher (115, 117) liest und in ein zweites Datenübertragungsregister (807) schreibt und die zweite Datenübertragung entsprechend dieser zweiten Datenübertragungsinformation steuert, bevor die erste Datenübertragungsinformation aus einem ersten Datenübertragungsregister (807) und die in der ersten Datenübertragung zu übertragenden und in den zweiten Speicher (115, 117) zu schreibenden Daten aus einem ersten Datenpuffer (810) gelesen werden.
  3. Speichersteuerung nach Anspruch 1, wobei die Datenübertragung in Einheiten von Datenblöcken gesteuert wird, die durch Unterteilung der zwischen der ersten und der zweiten Steuervorrichtung (100A, 100B) zu übertragenden Daten erhalten werden.
  4. Speichersteuerung nach Anspruch 1, wobei die erste und die zweite Steuervorrichtung (100A, 100B) über mindestens eine Vermittlungseinheit (500) miteinander kommunizieren.
  5. Speichersteuerung nach Anspruch 1, wobei dann, wenn von der Informationsverarbeitungsvorrichtung (200) eine Daten-Ein/Ausgabeanforderung hinsichtlich des zweiten Datenspeicherbereichs (310) empfangen wird, die Datenübertragungsinformation in den zweiten Speicher (115, 117) geschrieben wird, und die Datenübertragungssteuerung (114) die Datenübertragungsinformation aus dem zweiten Speicher (115, 117) liest und in das Datenübertragungsregister (807) schreibt und die Datenübertragung zwischen dem ersten Speicher (130) und der zweiten Steuervorrichtung (100B) entsprechend der gelesenen Datenübertragungsinformation steuert.
  6. Speichersteuerung nach Anspruch 1, wobei dann, wenn von der Informationsverarbeitungsvorrichtung (200) eine Datenschreibanforderung hinsichtlich des ersten Datenspeicherbereichs (310) sowie Schreibdaten empfangen werden, die Ein/Ausgabesteuerung (119) die Datenübertragungsinformation in den zweiten Speicher (115, 117) schreibt, um eine Kopie der Schreibdaten in den zweiten Datenspeicherbereich (310) zu schreiben, und die Datenübertragungssteuerung (114) die Datenübertragungsinformation aus dem zweiten Speicher (115, 117) liest und in das Datenübertragungsregister (807) schreibt und die Übertragung der Schreibdaten vom ersten Speicher (130) an die zweite Steuervorrichtung (100B) entsprechend der gelesenen Datenübertragungsinformation steuert.
  7. Speichersteuerung nach Anspruch 1, mit einer Kanalsteuerung (110) mit einer Leiterplatte, die mit dem zweiten Speicher (115, 117), der Ein/Ausgabesteuerung (119) und der Datenübertragungssteuerung (114) versehen ist, einem Cachespeicher mit einer Leiterplatte, die mit dem ersten Speicher (130) versehen ist, und einer Plattensteuerung (140) zum Lesen/Schreiben von Daten aus/in den ersten Datenspeicherbereich (310), wobei der erste Speicher (130) die zwischen der ersten Steuervorrichtung (100A) und der Informationsverarbeitungsvorrichtung (200) oder der zweiten Steuervorrichtung (100B) zu übertragenden Daten speichert, die Ein/Ausgabesteuerung (119) in den zweiten Speicher (115, 117) eine Datenübertragungsinformation schreibt, die den Speicherort der Daten im ersten Speicher (130) und einen Speicherort von Daten in der Informationsverarbeitungsvorrichtung (200) oder den zweiten Speicher (115, 117) angibt, und die Datenübertragungssteuerung (114) die Datenübertragung zwischen dem ersten Speicher (130) und der Informations verarbeitungsvorrichtung (200) oder der zweiten Steuervorrichtung (100B) über den Datenpuffer (810) entsprechend der aus dem zweiten Speicher (115, 117) gelesenen und in das Datenübertragungsregister (807) geschriebenen Datenübertragungsinformation steuert.
  8. Speichersteuerung für ein Speichersystem, das aufweist: eine erste Steuervorrichtung (100A) zum Empfangen einer Daten-Ein/Ausgabeanforderung von einer Informationsverarbeitungsvorrichtung (200) und zur Ein/Ausgabe von Daten in/aus einem ersten Datenspeicherbereich (310), und eine mit der ersten Steuervorrichtung (100A) kommunizierende zweite Steuervorrichtung (100B) zur Ein/Ausgabe von Daten in/aus einem zweiten Datenspeicherbereich (310), wobei die erste Steuervorrichtung (100A) einen Cachespeicher mit einer Leiterplatte aufweist, die mit einem ersten Speicher (130) zur Speicherung von zwischen der ersten Speichervorrichtung (100A) und der Informationsverarbeitungsvorrichtung (200) oder der zweiten Steuervorrichtung (100B) übertragenen Daten, und einem zweiten Speicher (115, 117) versehen ist, dadurch gekennzeichnet, dass die erste Steuervorrichtung (100A) ferner aufweist: eine Ein/Ausgabesteuerung (119) zum Einschreiben von einen Speicherort von Daten im ersten Speicher (130) und einen Speicherort von Daten in der Informationsverarbeitungsvorrichtung (200) bzw. der zweiten Steuervorrich tung (100B) angebenden Datenübertragungsinformationen in den zweiten Speicher (115, 117), eine Kanalsteuerung (110) mit einer Leiterplatte, die mit einer Datenübertragungssteuerung (114) versehen ist, wobei die Datenübertragungssteuerung (114) mehrere Datenpuffer (810) und mehrere Datenübertragungsregister (807) zum Speichern der Datenübertragungsinformationen aufweist, und die Datenübertragung zwischen dem ersten Speicher (130) und der Informationsverarbeitungsvorrichtung (200) bzw. der zweiten Steuervorrichtung (100B) über einen Datenpuffer (810) entsprechend der aus dem zweiten Speicher (115, 117) gelesenen und in ein Datenübertragungsregister (807) geschriebenen Datenübertragungsinformationen steuert, und eine Plattensteuerung (140) zum Lesen/Schreiben von Daten aus/in die erste Steuervorrichtung, wobei die Datenübertragungssteuerung (114) dann, wenn eine zweite Datenübertragung aufgrund einer zweiten Datenübertragungsinformation gesteuert wird, während eine erste Datenübertragung aufgrund einer ersten Datenübertragungsinformation gesteuert wird, eine zweite Datenübertragungsinformation aus dem zweiten Speicher (115, 117) liest und in ein zweites Datenübertragungsregister (807) schreibt und die zweite Datenübertragung entsprechend der zweiten Datenübertragungsinformation steuert, bevor eine erste Datenübertragungsinformation aus einem ersten Datenübertragungsregister (807) und die durch die erste Datenübertragung zu übertragenden und in den zweiten Speicher (115, 117) zu schreibenden Daten aus einem ersten Datenpuffer (810) gelesen werden.
DE102004013112A 2003-11-14 2004-03-17 Speichersteuerung Expired - Fee Related DE102004013112B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2003385033A JP2005149082A (ja) 2003-11-14 2003-11-14 ストレージ制御装置、及びストレージ制御装置の制御方法
JP03-385033 2003-11-14

Publications (2)

Publication Number Publication Date
DE102004013112A1 DE102004013112A1 (de) 2005-06-23
DE102004013112B4 true DE102004013112B4 (de) 2008-11-13

Family

ID=32212194

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102004013112A Expired - Fee Related DE102004013112B4 (de) 2003-11-14 2004-03-17 Speichersteuerung

Country Status (5)

Country Link
US (3) US6985994B2 (de)
JP (1) JP2005149082A (de)
DE (1) DE102004013112B4 (de)
FR (1) FR2862400B1 (de)
GB (1) GB2408117B (de)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7343457B1 (en) * 2003-08-01 2008-03-11 Unisys Corporation Dual active bank memory controller
JP2005149082A (ja) * 2003-11-14 2005-06-09 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法
JP4441286B2 (ja) * 2004-02-10 2010-03-31 株式会社日立製作所 ストレージシステム
US7467238B2 (en) 2004-02-10 2008-12-16 Hitachi, Ltd. Disk controller and storage system
JP4405277B2 (ja) * 2004-02-16 2010-01-27 株式会社日立製作所 ディスク制御装置
US20050257014A1 (en) * 2004-05-11 2005-11-17 Nobuhiro Maki Computer system and a management method of a computer system
US8185639B2 (en) * 2006-01-03 2012-05-22 Emc Corporation Server identification in storage networks
US7761657B2 (en) * 2006-07-10 2010-07-20 Hitachi, Ltd. Storage control system, control method for storage control system, port selector, and controller
JP4408126B2 (ja) * 2006-12-13 2010-02-03 富士通株式会社 監視装置、半導体集積回路、および監視方法
JP4548524B2 (ja) * 2008-07-29 2010-09-22 ソニー株式会社 通信装置、プログラム、通信方法および通信システム
JP5183403B2 (ja) * 2008-09-30 2013-04-17 株式会社日立製作所 ストレージシステムおよび制御プログラムならびにストレージシステム制御方法
US8312175B2 (en) * 2010-01-21 2012-11-13 Vmware, Inc. Virtual machine access to storage via a multi-queue IO storage adapter with optimized cache affinity and PCPU load balancing
US8819208B2 (en) 2010-03-05 2014-08-26 Solidfire, Inc. Data deletion in a distributed data storage system
US8495164B2 (en) 2010-06-07 2013-07-23 Hitachi, Ltd. Data transfer device and data transfer method
EP2761481A4 (de) * 2011-09-30 2015-06-17 Intel Corp Darstellung von direktzugriffsspeichern in einem logischen laufwerkmodell
US9838269B2 (en) 2011-12-27 2017-12-05 Netapp, Inc. Proportional quality of service based on client usage and system metrics
US9054992B2 (en) 2011-12-27 2015-06-09 Solidfire, Inc. Quality of service policy sets
JP5250143B2 (ja) * 2012-07-23 2013-07-31 株式会社日立製作所 ストレージシステムおよびストレージシステム制御方法
WO2014047182A2 (en) 2012-09-21 2014-03-27 Nyse Group, Inc. High performance data streaming
WO2014129161A1 (ja) 2013-02-20 2014-08-28 パナソニック株式会社 無線アクセス装置および無線アクセスシステム
WO2014129160A1 (ja) 2013-02-20 2014-08-28 パナソニック株式会社 無線アクセス装置および無線アクセスシステム
EP2889780B1 (de) * 2013-10-29 2017-04-12 Huawei Technologies Co., Ltd. Datenverarbeitungssystem und datenverarbeitungsverfahren
US20150244795A1 (en) 2014-02-21 2015-08-27 Solidfire, Inc. Data syncing in a distributed system
WO2015170454A1 (ja) * 2014-05-07 2015-11-12 ソニー株式会社 メモリ制御装置、メモリ装置およびメモリ制御方法
JP2014167818A (ja) * 2014-05-12 2014-09-11 Hitachi Ltd データ転送装置およびデータ転送方法
JP2016024563A (ja) * 2014-07-17 2016-02-08 富士通株式会社 ストレージ制御装置、ストレージシステムおよびストレージ制御プログラム
US20160077945A1 (en) * 2014-09-11 2016-03-17 Netapp, Inc. Storage system statistical data storage and analysis
US10133511B2 (en) 2014-09-12 2018-11-20 Netapp, Inc Optimized segment cleaning technique
US9836229B2 (en) 2014-11-18 2017-12-05 Netapp, Inc. N-way merge technique for updating volume metadata in a storage I/O stack
US10929022B2 (en) 2016-04-25 2021-02-23 Netapp. Inc. Space savings reporting for storage system supporting snapshot and clones
US10642763B2 (en) 2016-09-20 2020-05-05 Netapp, Inc. Quality of service policy sets
JP6939240B2 (ja) * 2017-08-17 2021-09-22 富士フイルムビジネスイノベーション株式会社 情報処理装置
US11099779B2 (en) * 2018-09-24 2021-08-24 Micron Technology, Inc. Addressing in memory with a read identification (RID) number
CN112559389A (zh) * 2019-09-25 2021-03-26 阿里巴巴集团控股有限公司 存储控制装置、处理装置、计算机系统和存储控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609164B1 (en) * 2000-10-05 2003-08-19 Emc Corporation Data storage system having separate data transfer section and message network with data pipe DMA
US20030182516A1 (en) * 2002-03-20 2003-09-25 Hitachi, Ltd. Storage system, disk control cluster, and its increase method
EP1357476A2 (de) * 2002-04-26 2003-10-29 Hitachi, Ltd. Verfahren zur Speichersystemsteuerung und Speichersteuerungsvorrichtung
US20030204649A1 (en) * 2002-04-26 2003-10-30 Hitachi, Ltd. Disk control device and control method thereof

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US221077A (en) * 1879-10-28 Improvement in tumbler-washers
US204649A (en) * 1878-06-11 Improvement in piston-valves for engines
US182516A (en) * 1876-09-26 Improvement in grain thrashing and separating machines
US128453A (en) * 1872-07-02 Improvement in track-clearers for mowing-machines
JPS6093563A (ja) * 1983-10-27 1985-05-25 Hitachi Ltd バツフア記憶制御方式
US4654778A (en) * 1984-06-27 1987-03-31 International Business Machines Corporation Direct parallel path for storage accesses unloading common system path
US5680574A (en) * 1990-02-26 1997-10-21 Hitachi, Ltd. Data distribution utilizing a master disk unit for fetching and for writing to remaining disk units
JP2579696B2 (ja) * 1990-03-20 1997-02-05 富士通株式会社 バッファ制御装置
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5642492A (en) * 1991-06-04 1997-06-24 Casio Computer Co., Ltd. Digital recorder employing punch-in and punch-out processes
JP3525518B2 (ja) * 1994-10-13 2004-05-10 ヤマハ株式会社 データ転送装置
JP2766216B2 (ja) * 1995-05-08 1998-06-18 甲府日本電気株式会社 情報処理装置
JP3671595B2 (ja) * 1997-04-01 2005-07-13 株式会社日立製作所 複合計算機システムおよび複合i/oシステム
US6157991A (en) 1998-04-01 2000-12-05 Emc Corporation Method and apparatus for asynchronously updating a mirror of a source device
JP3657428B2 (ja) * 1998-04-27 2005-06-08 株式会社日立製作所 記憶制御装置
US6195724B1 (en) * 1998-11-16 2001-02-27 Infineon Technologies Ag Methods and apparatus for prioritization of access to external devices
JP2001256003A (ja) * 2000-03-10 2001-09-21 Hitachi Ltd ディスクアレイ制御装置、そのディスクアレイ制御ユニットおよびその増設方法
JP3578075B2 (ja) * 2000-10-13 2004-10-20 日本電気株式会社 ディスクアレイ制御装置及びディスクアレイ制御方法
JP4452438B2 (ja) 2002-11-11 2010-04-21 株式会社日立製作所 記憶システム
JP2005149082A (ja) 2003-11-14 2005-06-09 Hitachi Ltd ストレージ制御装置、及びストレージ制御装置の制御方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6609164B1 (en) * 2000-10-05 2003-08-19 Emc Corporation Data storage system having separate data transfer section and message network with data pipe DMA
US20030182516A1 (en) * 2002-03-20 2003-09-25 Hitachi, Ltd. Storage system, disk control cluster, and its increase method
EP1357476A2 (de) * 2002-04-26 2003-10-29 Hitachi, Ltd. Verfahren zur Speichersystemsteuerung und Speichersteuerungsvorrichtung
US20030204649A1 (en) * 2002-04-26 2003-10-30 Hitachi, Ltd. Disk control device and control method thereof

Also Published As

Publication number Publication date
US20050108472A1 (en) 2005-05-19
FR2862400B1 (fr) 2007-02-23
GB0406868D0 (en) 2004-04-28
GB2408117A (en) 2005-05-18
FR2862400A1 (fr) 2005-05-20
US7424575B2 (en) 2008-09-09
DE102004013112A1 (de) 2005-06-23
US20060031650A1 (en) 2006-02-09
JP2005149082A (ja) 2005-06-09
GB2408117B (en) 2005-10-05
US6985994B2 (en) 2006-01-10
US20070198798A1 (en) 2007-08-23
US7228382B2 (en) 2007-06-05

Similar Documents

Publication Publication Date Title
DE102004013112B4 (de) Speichersteuerung
DE69724846T2 (de) Mehrweg-Ein/Ausgabespeichersysteme mit Mehrweg-Ein/Ausgabeanforderungsmechanismus
DE69636663T2 (de) System und Verfahren zur Zugriffsverteilung von Mehrfachspeichermatrixen zwischen Mehrfachwirtrechnersystemen
DE4422786B4 (de) Speichersystem
DE60115839T2 (de) Verfahren und Gerät für die Erstellung von Mehrweg-Ein/Ausgaben unter Verwendung des Befehls &#34;SCSI persistent reserve&#34;
DE112018002951B4 (de) Verwenden eines spurformatcodes in einem cache-steuerblock für eine spur in einem cache, um lese- und schreibanforderungen in bezug auf die spur im cache zu verarbeiten
DE69636330T2 (de) Verfahren für On-line- und Echzeit-Datenmigration
DE60020046T3 (de) Architektur einer USB-basierten PC-Flashspeicherkarte
DE102004028808B4 (de) Speichersystem, das mit einem externen Speichersystem verbunden ist und Verfahren zum Verbinden derartiger Systeme
DE69632219T2 (de) Speicherplattenanordnungssystem
DE69915243T2 (de) Speicherplattenanordnung-Steuerungsvorrichtung
DE69929758T2 (de) Isolierung von defekten Datenaustauschvorrichtungen
DE69831944T2 (de) Vorrichtung und verfahren zur sicherung eines plattenspeichersystem
DE10197179T5 (de) Fern-Spiegelung in einer geschalteten Umgebung
US8615625B2 (en) Disk array system
DE102004024130B4 (de) Speichersystem und Verfahren zum Betrieb eines Speichersystems
DE69930307T2 (de) Datenspeichersystem
DE102005006176A1 (de) Transaktionsverarbeitungs-Systeme und -Verfahren, die einen Nicht-Platten-Dauerspeicher verwenden
DE19515661C2 (de) Halbleiter-Plattenvorrichtung
EP1817658A2 (de) Speichersystem mit sektorbuffern
DE202010017667U1 (de) Datenspeichervorrichtung mit Flash-Speicherchips
DE102004013114A1 (de) Plattenarrayvorrichtung und Steuerungsverfahren für eine Plattenarrayvorrichtung
DE60025788T2 (de) Flexibles Mehrzweck-Ein/Ausgabesystem
DE10220886A1 (de) Datenspeichersysteme mit verbesserten Netzwerkschnittstellen
DE112007000688T5 (de) Fehlerverwaltungstopologien

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee