DE102012209014A1 - System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten - Google Patents

System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten Download PDF

Info

Publication number
DE102012209014A1
DE102012209014A1 DE102012209014A DE102012209014A DE102012209014A1 DE 102012209014 A1 DE102012209014 A1 DE 102012209014A1 DE 102012209014 A DE102012209014 A DE 102012209014A DE 102012209014 A DE102012209014 A DE 102012209014A DE 102012209014 A1 DE102012209014 A1 DE 102012209014A1
Authority
DE
Germany
Prior art keywords
data
acw
data transfer
channel
hba
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.)
Granted
Application number
DE102012209014A
Other languages
English (en)
Other versions
DE102012209014B4 (de
Inventor
Clinton E. Bubb
Daniel F. Casper
John R. Flanagan
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102012209014A1 publication Critical patent/DE102012209014A1/de
Application granted granted Critical
Publication of DE102012209014B4 publication Critical patent/DE102012209014B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • G06F13/126Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine and has means for transferring I/O instructions and statuses between control unit and main processor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation

Abstract

Es wird ein Computerprogrammprodukt bereitgestellt, um die Eingangs-/Ausgangsverarbeitung (E/A-Verarbeitung) auf einem Host-Computersystem durchzuführen. Das Computerprogrammprodukt ist konfiguriert, um Folgendes durchzuführen: Erzeugen einer Adresssteuerstruktur für jede einzelne einer Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch eine E/A-Operation angegeben ist, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden ACW (ACW = Address Control Word, Adresssteuerwort) angibt, das ein Offset-Feld enthält, das eine relative Anordnung einer Datenübertragungsanforderung angibt; Erzeugen und Speichern mindestens eines ACW im lokalen Kanalspeicher, das eine oder mehrere Host-Speicherorte für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt und ein Erweiterter-Offset-Feld enthält, das eine relative Anordnung einer erwarteten Datenübertragungsanforderung angibt; Empfangen einer Übertragungsanforderung von der Netzwerkschnittstelle und Vergleichen des Offset-Feldes und des Erwarteter-Offset-Feldes, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde.

Description

  • HINTERGRUND
  • Die vorliegende Offenbarung der Erfindung betrifft allgemein die Eingangs-/Ausgangsverarbeitung und insbesondere die Erleichterung der Übertragung von Daten zwischen einem Kanal-Teilsystem und einer Netzwerkschnittstelle während der Eingangs-/Ausgangsverarbeitung.
  • Eingangs-/Ausgangsoperationen (E/A-Operationen) werden verwendet, um Daten zwischen einem Systemspeicher eines Host-Computersystems E/A-Einheiten eines E/A-Verarbeitungssystems zu übertragen. Im Einzelnen werden durch die Ausführung von E/A-Operationen Daten von einem Speicher auf eine oder mehrere E/A-Einheiten geschrieben, und Daten werden von einer oder mehreren E/A-Einheiten in einen Speicher gelesen.
  • Zur Erleichterung der Verarbeitung von E/A-Operationen wird ein E/A-Teilsystem eines E/A Verarbeitungssystems eingesetzt. Das E/A-Teilsystem ist mit dem Hauptspeicher und den E/A-Einheiten des E/A-Verarbeitungssystems verbunden und steuert den Informationsfluss zwischen dem Speicher und den E/A-Einheiten. Ein Beispiel eines E/A-Teilsystems ist ein Kanal-Teilsystem. Das Kanal-Teilsystem verwendet Kanalpfade als Datenaustauschmedien. Jeder einzelne Kanalpfad enthält einen Kanal, der mit einer Steuereinheit verbunden ist, wobei die Steuereinheit des Weiteren mit einer oder mehreren E/A-Einheiten verbunden ist.
  • Das Kanal-Teilsystem kann Kanalbefehlswörter (Channel Command Words, CCW) nutzen, um Daten zwischen den E/A-Einheiten und dem Speicher zu übertragen. Ein CCW gibt den auszuführenden Befehl an. Bei Befehlen, die bestimmte E/A-Operationen auslösen, bezeichnet das CCW den der Operation zugeordneten Speicherbereich, die Aktion, die auszuführen ist, sobald eine Übertragung zu oder von dem Speicherbereich abgeschlossen ist, sowie weitere Optionen.
  • Das Kanal-Teilsystem und die E/A-Einheit können in einem Transportmodus arbeiten, der die Übertragung eines oder mehrerer Befehlssteuerblöcke zur Übertragung von Daten zwischen den E/A-Einheiten und dem Speicher unterstützt. Ein Transportsteuerwort (Transport Control Word, TCW) gibt einen oder mehrere auszuführende E/A-Befehle an. Bei Befehlen, die bestimmte E/A-Operationen auslösen, bezeichnet das TCW die der Operation zugeordneten Speicherbereiche, die Aktion, die auszuführen ist, sobald eine Übertragung zu oder von dem Speicherbereich abgeschlossen ist, sowie weitere Optionen.
  • Im Allgemeinen sind das Host-Computersystem und das Kanal-Teilsystem über eine Verbindung mit E/A-Einheiten verbunden, die über einen Host-Bus-Adapter (HBA) verläuft. Der HBA ist mit einem Kanal verbunden, der Hardware enthält, zu der unter anderem ein Kanalmikroprozessor und ein lokaler Kanalspeicher gehören, der gegenüber dem HBA als Host-System in Erscheinung tritt. Die Kanalhardware trennt den HBA vom Host-Computer und dessen Speicherräumen.
  • ÜBERBLICK
  • Eine Ausführungsform beinhaltet ein Computerprogrammprodukt zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist. Das Computerprogrammprodukt beinhaltet ein materielles Speichermedium, das von einer Verarbeitungsschaltung gelesen werden kann, und Speicheranweisungen zur Ausführung durch die Verarbeitungsschaltung, um ein Verfahren durchzuführen, das Folgendes beinhaltet: Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher enthält; Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld enthält, das eine relative Anordnung einer erwarteten Datenübertragungsanforderung angibt; Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle; als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält; im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  • Eine weitere Ausführungsform beinhaltet ein Verfahren zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist. Das Verfahren beinhaltet Folgendes: Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher beinhaltet; Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld beinhaltet, das eine relative Anordnung einer erwarteten Datenübertragungsanforderung angibt; Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle; als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält; im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  • Eine weitere Ausführungsform beinhaltet eine Vorrichtung zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist, wobei das Host-Computersystem ein Kanal-Teilsystem enthält und das Kanal-Teilsystem konfiguriert ist, um mit der Steuereinheit über eine Netzwerkschnittstelle Daten auszutauschen. Das Kanal-Teilsystem ist konfiguriert, um Folgendes durchzuführen: Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher beinhaltet; Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld beinhaltet, das eine relative Anordnung einer erwarteten Datenübertragungsanforderung angibt; Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle; als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält; im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  • In einem weiteren Aspekt betrifft die Erfindung ein Verfahren zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist, wobei das Verfahren Folgendes umfasst:
    Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher enthält;
    Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt;
    Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld enthält, das eine relative Reihenfolge einer erwarteten Datenübertragungsanforderung angibt;
    Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle;
    als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält;
    im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und
    als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  • Nach Ausführungsformen beinhaltet das Weiterleiten der Datenübertragungsanforderung das Erhöhen des Wertes des Erwarteter-Offset-Feldes um einen Betrag, der einer Größe der Datenübertragungsanforderung entspricht.
  • Nach Ausführungsformen beinhaltet das Empfangen der Datenübertragungsanforderung das Weiterleiten der Datenübertragungsanforderung an die Anforderungswarteschlange, die mindestens eine Abrufmatrixwarteschlange enthält, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Ausgangsdatenanforderungen in Bezug auf Ausgangsdaten im Host-Speicher aufnimmt, sowie eine Speichermatrixwarteschlange, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Eingangsdatenanforderungen auf Speicherung von Eingangsdaten im Host-Speicher aufnimmt.
  • Nach Ausführungsformen beinhaltet das Empfangen der Datenübertragungsanforderung das Empfangen jeder einzelnen der Vielzahl von aufeinanderfolgenden Datenübertragungsanforderungen und das Speichern jeder einzelnen der Vielzahl von Datenübertragungsanforderungen in der Anforderungswarteschlange in der Reihenfolge des Empfangs und das Verarbeiten jeder einzelnen der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange in der Reihenfolge des Empfangs.
  • Nach Ausführungsformen umfasst das Verfahren ferner, als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld der Datenübertragungsanforderung übereinstimmt, das Wiedereinreihen der Datenübertragungsanforderung an einem Ende der Anforderungswarteschlange.
  • Nach Ausführungsformen umfasst das Verfahren ferner:
    Verarbeiten einer oder mehrerer der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange der Reihe nach, bis die Datenübertragungsanforderung den Anfang der Anforderungswarteschlange erreicht;
    Vergleichen des Erwarteter-Offset-Feldes mit dem Offset-Feld der Datenübertragungsanforderung; und
    als Reaktion darauf, dass das Erwarteter-Offset-Feld mit dem Offset-Feld übereinstimmt, das Zugreifen auf das mindestens eine ACW durch den Datenrouter und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist;
    als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld übereinstimmt, das Verwerfen der entsprechenden Datenübertragungsanforderungen und aller anderen nachfolgenden Datenübertragungsanforderungen in der Vielzahl von Anforderungen.
  • Nach Ausführungsformen umfasst das Verfahren ferner Folgendes:
    Setzen eines Zeitstempels und Schreiben des Zeitstempels in die Datenübertragungsanforderung vor dem Wiedereinreihen der Datenübertragungsanforderung, wobei eine der folgenden Aktionen durchgeführt wird, nachdem die Datenübertragungsanforderung den Anfang der Anforderungswarteschlange erreicht hat und das Erwarteter-Offset-Feld nicht mit dem Offset-Feld übereinstimmt:
    als Reaktion darauf, dass der Zeitstempel einen gewählten Zeitüberschreitungswert überschreitet, das Verwerfen der Datenübertragungsanforderung und aller anderen nachfolgenden Datenübertragungsanforderungen in der Vielzahl von Anforderungen; und
    als Reaktion darauf, dass der Zeitstempel einen gewählten Zeitüberschreitungswert nicht überschreitet, das Wiedereinreihen der Datenübertragungsanforderung am Ende der Anforderungswarteschlange.
  • Nach Ausführungsformen ist die E/A-Operation eine Transportmodusoperation und das Erhalten von Informationen beinhaltet das Erhalten eines TCW (TCW = Transport Command Word, Transportbefehlswort) im Kanal-Teilsystem, das TCW ein TCCB-Adressfeld (TCCB = Transport Command Control Word, Transportbefehlsteuerblock) mit einer Adresse eines TCCB enthält, wobei der TCCB eine Vielzahl von DCWs (DCW = Device Command Word, Einheitenbefehlswort) enthält, die jeweils einen E/A-Befehl enthalten.
  • In einem weiteren Aspekt betrifft die Erfindung eine Vorrichtung zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist, wobei das Host-Computersystem ein Kanal-Teilsystem enthält, das Kanal-Teilsystem konfiguriert ist, um mit der Steuereinheit über eine Netzwerkschnittstelle Daten auszutauschen, und wobei das Kanal-Teilsystem konfiguriert ist, Folgendes durchzuführen:
    Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher enthält;
    Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt;
    Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld enthält, das eine relative Reihenfolge einer erwarteten Datenübertragungsanforderung angibt;
    Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle;
    als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält;
    im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und
    als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  • Nach Ausführungsformen beinhaltet das Weiterleiten der Datenübertragungsanforderung das Erhöhen des Wertes des Erwarteter-Offset-Feldes um einen Betrag, der einer Größe der Datenübertragungsanforderung entspricht.
  • Nach Ausführungsformen beinhaltet das Empfangen der Datenübertragungsanforderung das Weiterleiten der Datenübertragungsanforderung an die Anforderungswarteschlange, die mindestens eine Abrufmatrixwarteschlange enthält, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Ausgangsdatenanforderungen in Bezug auf Ausgangsdaten im Host-Speicher aufnimmt, sowie eine Speichermatrixwarteschlange, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Eingangsdatenanforderungen auf Speicherung von Eingangsdaten im Host-Speicher aufnimmt.
  • Nach Ausführungsformen beinhaltet das Empfangen der Datenübertragungsanforderung das Empfangen jeder einzelnen der Vielzahl von aufeinanderfolgenden Datenübertragungsanforderungen und das Speichern jeder einzelnen der Vielzahl von Datenübertragungsanforderungen in der Anforderungswarteschlange in der Reihenfolge des Empfangs und das Verarbeiten jeder einzelnen der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange in der Reihenfolge des Empfangs.
  • Nach Ausführungsformen ist die Vorrichtung so konfiguriert, dass sie ferner als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld der Datenübertragungsanforderung übereinstimmt, das Wiedereinreihen der Datenübertragungsanforderung an einem Ende der Anforderungswarteschlange durchführt.
  • Nach Ausführungsformen ist die Vorrichtung konfiguriert, um ferner Folgendes durchzuführen:
    Verarbeiten einer oder mehrerer der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange der Reihe nach, bis die Datenübertragungsanforderung den Anfang der Anforderungswarteschlange erreicht;
    Vergleichen des Erwarteter-Offset-Feldes mit dem Offset-Feld der Datenübertragungsanforderung; und
    als Reaktion darauf, dass das Erwarteter-Offset-Feld mit dem Offset-Feld übereinstimmt, das Zugreifen auf das mindestens eine ACW durch den Datenrouter und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist;
    als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld übereinstimmt, das Verwerfen der entsprechenden Datenübertragungsanforderungen und aller anderen nachfolgenden Datenübertragungsanforderungen in der Vielzahl von Anforderungen.
  • Nach Ausführungsformen ist die Vorrichtung konfiguriert, um ferner Folgendes durchzuführen:
    Setzen eines Zeitstempels und Schreiben des Zeitstempels in die Datenübertragungsanforderung vor dem Wiedereinreihen der Datenübertragungsanforderung, wobei eine der folgenden Aktionen durchgeführt wird, nachdem die Datenübertragungsanforderung den Anfang der Anforderungswarteschlange erreicht hat und das Erwarteter-Offset-Feld nicht mit dem Offset-Feld übereinstimmt:
    als Reaktion darauf, dass der Zeitstempel einen gewählten Zeitüberschreitungswert überschreitet, das Verwerfen der Datenübertragungsanforderung und aller anderen nachfolgenden Datenübertragungsanforderungen in der Vielzahl von Anforderungen; und
    als Reaktion darauf, dass der Zeitstempel einen gewählten Zeitüberschreitungswert nicht überschreitet, das Wiedereinreihen der Datenübertragungsanforderung am Ende der Anforderungswarteschlange.
  • Nach Ausführungsformen ist die E/A-Operation eine Transportmodusoperation und das Erhalten von Informationen beinhaltet das Erhalten eines TCW (TCW = Transport Command Word, Transportbefehlswort) im Kanal-Teilsystem, das TCW ein TCCB-Adressfeld (TCCB = Transport Command Control Word, Transportbefehlsteuerblock) mit einer Adresse eines TCCB enthält, wobei der TCCB eine Vielzahl von DCWs (DCW = Device Command Word, Einheitenbefehlswort) enthält, die jeweils einen E/A-Befehl enthalten.
  • Weitere Vorrichtungen, Verfahren und/oder Computerprogrammprodukte gemäß Ausführungsformen werden für den Fachmann anhand der folgenden Beschreibung in Verbindung mit den folgenden Zeichnungen klar. Es versteht sich, dass alle derartigen weiteren Systeme, Verfahren und/oder Computerprogrammprodukte, die in der vorliegenden Beschreibung enthalten sind, in den Geltungsbereich der vorliegenden Erfindung fallen und durch die beigefügten Ansprüche geschützt sind.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Der Gegenstand der Erfindung wird in den Ansprüchen, die im Anschluss an die Beschreibung folgen, speziell beschrieben und ausdrücklich beansprucht. Die vorstehend beschriebenen und weiteren Aufgaben, Merkmale und Vorteile der Erfindung werden anhand der folgenden eingehenden Beschreibung deutlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, wobei:
  • in 1 eine Ausführungsform eines E/A-Verarbeitungssystems dargestellt ist, in dem einer oder mehrere Aspekte der vorliegenden Erfindung enthalten sind und verwendet werden;
  • in 2 beispielhafte Steuerblöcke dargestellt sind, die von einem Host-Computersystem für eine E/A-Operation im Transportmodus erzeugt wurden;
  • in 3 eine Konfiguration eines dem Stand der Technik entsprechenden E/A-Verarbeitungssystems dargestellt ist, das einen Host-Bus-Adapter (HBA) enthält, der mit einem Kanal-Teilsystem verbunden ist;
  • in 4 eine Ausführungsform eines E/A-Verarbeitungssystems dargestellt ist, das einen Host-Bus-Adapter (HBA) enthält, der mit einem Kanal-Teilsystem verbunden ist;
  • in 5 Ausführungsformen eines Adressfeldes für eine Adresssteuerstruktur dargestellt sind;
  • in 6 ein Beispiel mit verschiedenen Nachrichten dargestellt ist, die während einer E/A-Operation im Transportmodus zwischen einem Kanal und einer Steuereinheit übertragen werden;
  • in 7 ein Ablaufplan dargestellt ist, der ein beispielhaftes Verfahren zeigt, mit dem während einer E/A-Operation Datenübertragungen über einen Kanal-Datenrouter und einen HBA verarbeitet werden;
  • in 8 eine Ausführungsform einer lokalen Speicherregion eines Kanals dargestellt ist, die der Datenrouter aus 7 nutzt;
  • in 9 ein Blockschaltbild dargestellt ist, das den Datenfluss durch logische Komponenten des Datenrouters aus 7 zeigt;
  • in 10 eine Ausführungsform eines Adresssteuerwortes (ACW) dargestellt ist;
  • in 11 eine Ausführungsform des ACW aus 10 dargestellt ist;
  • in 12 eine Ausführungsform des ACW aus 10 dargestellt ist;
  • in 13 eine Ausführungsform des ACW aus 10 dargestellt ist;
  • in 14 eine Ausführungsform des ACW aus 10 dargestellt ist; und
  • in 15 eine Ausführungsform eines Adressfeldes für eine Adresssteuerstruktur dargestellt ist.
  • In der detaillierten Beschreibung werden die bevorzugten Ausführungsformen der Erfindung zusammen mit den Vorteilen und Merkmalen anhand von Beispielen unter Bezugnahme auf die Zeichnungen erläutert.
  • DETAILLIERTE BESCHREIBUNG
  • Gemäß einem Aspekt der vorliegenden Erfindung wird die Eingangs-/Ausgangsverarbeitung (E/A-Verarbeitung) erleichtert. Beispielsweise wird die E/A-Verarbeitung erleichtert, indem ein Datenrouter in einem Kanal eines Kanal-Teilsystems bereitgestellt wird, der den Anschluss eines Host-Bus-Adapter (HBA) an den Kanal ermöglicht, sodass während einer E/A Operation der direkte Zugriff auf einen Host-Speicher in einem Host-Computer möglich ist, ohne dass Eingangs- oder Ausgangsdaten im Kanal gespeichert werden müssen. Im Vergleich zu Schaltungen mit Kanalspeicherung und -weiterleitung, bei denen alle Transaktionen zwischen dem Host-Computer und dem HBA durch den Mikroprozessor des Kanals geprüft, umgesetzt und weitergeleitet werden, bietet diese Konfiguration eine wesentliche Erhöhung der E/A-Startgeschwindigkeit von Kanälen (z. B. um den Faktor zwei) und eine Senkung der Reaktionszeit jeder einzelnen E/A-Operation.
  • Beispielsweise ist ein Kanal mit Datenrouter-Hardware ausgerüstet, die so konfiguriert ist, dass der HBA mit einer oder mehreren Adresssteuerstrukturen erzeugt und bereitgestellt wird, mit deren Hilfe der Kanal den HBA über einen lokalen Kanalspeicherbereich informiert, der dem HBA zugewiesen ist. Damit der HBA mehrere Adressräume im Host-Speicher adressieren kann, enthält jede einzelne Adresssteuerstruktur Informationen über einen Speicherplatz im lokalen Kanalspeicher, der eine Host-Speicheradresse enthält. Bei einer Ausführungsform beinhalten eine oder mehrere Adresssteuerstrukturen eine Adresse (z. B. eine 64-Bit-PCIe-Adresse), die ein Feld enthält, das eine lokale Kanalspeicheradresse eines entsprechenden Adressbefehlswortes (ACW) enthält. Beispielsweise enthält die Adresssteuerstruktur ein ACW-Indexfeld, das einen Index auf einen zusammenhängenden Block von ACWs im lokalen Kanalspeicher beinhaltet.
  • Bei einer Ausführungsform werden ein System und ein Verfahren bereitgestellt, um einen HBA zu prüfen, während der HBA bei einer E/A-Operation den Host-Speicher direkt adressiert. Beispielsweise bietet das ACW dem Datenrouter die Möglichkeit, ein erforderliches Maß an Datenprüfung für ein Gerät bereitzustellen, das einen direkten Zugriff auf den Host-Speicher hat, sowie die Möglichkeit, einen ausgefallenen HBA vom Host-Computer zu trennen. Beispielsweise enthalten Adresssteuerstrukturen und zugehörige ACWs Gültigkeitsprüfungs- und Offset-Felder, die durch den Datenrouter geprüft werden, wenn eine HBA-Datenübertragungsanforderung empfangen wird.
  • Bei einer Ausführungsform werden ein System und Verfahren bereitgestellt, um Kopfdaten (Header) in Speicheranforderungen zwischen dem HBA und dem Host-Speicher einzufügen bzw. diesen Header aus den Speicheranforderungen zu entfernen. Bei Systemen nach dem Stand der Technik kann der Banal Header-Informationen aus einer HBA-Leseanforderung empfangen und im lokalen Kanalspeicher ablegen oder als Reaktion auf eine HBA-Schreibanforderung einen Header erzeugen und den Header an Ausgangsdaten anhängen. Die im vorliegenden Dokument beschriebene Ausführungsform ermöglicht dem Banal (über die Hardware des Datenrouters), einen Leseanfarderungs-Header im lokalen Kanalspeicher abzulegen, während Eingangsdaten direkt im Host-Speicher abgelegt werden, und gleichzeitig einen Header zu erzeugen und an Ausgangsdaten anzuhängen, auf die der Zugriff über eine HBA-Schreibanforderung direkt aus dem Host-Speicher erfolgte. Beispielsweise wird ein „ACW lesen” bei HBA-Leseanforderungen und ein „ACW schreiben” bei HBA-Schreibanforderungen bereitgestellt. Das „ACW lesen” wird verwendet, um Header-Informationen zu speichern, die zusammen mit Eingangsdaten empfangen werden und das „ACW schreiben” wird verwendet, um Header-Informationen zu speichern, die zur Erzeugung eines Headers und zum Anhängen des Headers an Ausgangsdaten verwendet werden.
  • Bei einer Ausführungsform wird ein System und Verfahren bereitgestellt, um Prüffelder in Ausgangsdaten einzufügen und Eingangsdaten bei einer E/A-Operation während direkter Datenübertragungen zwischen dem HBA und dem Host-Computer zu prüfen, um Mittel zum Erkennen bereitzustellen, ob übertragene Daten beschädigt wurden. Bei Systemen nach dem Stand der Technik richtet der Kanal bei Schreiboperationen (Ausgangsoperationen) Datenprüfwörter mit Kundenausgangsdaten ein, die im lokalen Kanalspeicher abgelegt wurden. Bei Leseoperationen (Eingangsoperationen) speichert der Kanal die Eingangsdaten und die Datenprüfwörter im lokalen Kanalspeicher und führt eine Prüfung der Daten durch. Zu Beispielen von Datenprüfwörtern gehören CRC-Wörter (CRC = Cyclic Redundancy Check, zyklische Blockprüfung), LRC-Wörter (LRC = Longitudinal Redundancy Check, Längsredundanzprüfung) und Prüfsummendaten. Bei den im vorliegenden Dokument beschriebenen Ausführungsformen verwendet die Datenrouter-Hardware ein ACW, um Datenprüfwörter einzufügen und/oder zu prüfen (in diesem Fall werden Datenprüfwörter aus dem lokalen Kanalspeicher erzeugt bzw. dort abgelegt, während die Kundendaten, d. h. Eingangs- oder Ausgangsdaten, direkt zwischen dem Host-Speicher und dem HBA übertragen werden).
  • Beispielsweise verwendet der Datenrouter eine an den HBA gesendete Adresse (z. B. teilt er eine PCIe-Adresse), um auf ein ACW zu verweisen, das einen oder mehrere Speicherplätze enthält, von denen aus Datenprüfwörter gespeichert oder erzeugt werden. Ein Feld wie z. B. ein ACW-Indexfeld in der Adresse wird verwendet, um auf ein ACW zu verweisen, das einen Anfangswert bzw. „Anfangskeim” eines Datenprüfwortes und einen Speicherplatz zum Speichern von zwischenzeitlichen Datenprüfwörtern und des Zustands enthält. Bei einer Ausführungsform enthält das ACW, wenn bei der E/A-Operation die indirekte Datenadressierung verwendet wird, auch zugehörige TIDAWs (TIDAW = Transport Indirect Data Address Word, indirektes Transportdaten-Adresswort), die die Host-Speicheradressen, Zähler und Steuerinformationen darüber bereitstellen, wo die zwischenzeitlichen Prüfdatenwörter und die endgültigen Prüfdatenwörter bei ausgehenden Daten eingefügt werden sollen. Bei eingehenden Daten stellen die TIDAWs sofern angegeben die Host-Speicheradressen, Zähler und ein Merkerbit bereit, das die Hardware darüber informiert, ob die Daten gespeichert oder verworfen werden sollen.
  • Bei einer Ausführungsform stellen das System und die Verfahren dem Datenrouter die Möglichkeit bereit, zu ermitteln, wie Kundendaten im Host-Speicher gespeichert werden sollen, wenn eine HBA-Anforderung außer der Reihe empfangen wird. Außerdem hat der Datenrouter die Möglichkeit, fehlende oder verloren gegangene zwischenzeitliche Daten zu erkennen. Eingangs- und Ausgangsdaten sollten im Host-Speicher in derselben Reihenfolge gespeichert werden, in der sie übertragen wurden, um Datenprüfwörter ordnungsgemäß berechnen zu können. Bei einer Ausführungsform enthält eine Adresssteuerstruktur für eine E/A-Operation, z. B. eine Lese- oder Schreib-Adresssteuerstruktur, ein Offset-Feld, dessen Wert bei jeder HBA-Übertragungsanforderung erhöht wird, die zwecks einer E/A-Operation an den Kanal gesendet wird. Ein entsprechendes ACW enthält ein „Nächster erwarteter Offset”-Feld, das mit dem Offset-Feld in jeder HBA-Übertragungsanforderung verglichen wird, die zu der Adresssteuerstruktur gehört. Bei Nichtübereinstimmung dieser Feldwerte wird die empfangene HBA-Anforderung z. B. wieder unten in die HBA-Empfangswarteschlange eingereiht.
  • Bei einer Ausführungsform werden das System und Verfahren bereitgestellt, um eine E/A-Operation aus einer Vielzahl von E/A-Operationen zu beenden, die über den HBA durchgeführt werden (währenddessen der HBA direkt auf den Host-Speicher zugreift), ohne den HBA zu initialisieren. In manchen Fällen tritt bei einer E/A-Operation ein Host-Ausnahmefehler auf, und wenn mehrere E/A-Operationen auf dem Host-Computer ausgeführt werden, ist es wünschenswert, dass nur die F/A-Operation beendet wird. Diese Ausführungsform ermöglicht, dass nur die Operation beendet wird, die den Ausnahmefehler verursacht, sodass der HBA nicht initialisiert wird (was dazu führen könnte, dass alle über den HBA durchgeführten E/A-Operationen beendet werden).
  • Bei dieser Ausführungsform kann das ACW einer Datenübertragung ein Lesevorgang-verwerfen-Bit, Schreibvorgang-abbrechen-Bit oder ein Firmware-Lesevorgang-verwerfen-Bit enthalten, das anzeigt, ob ein Host-Speicherausnahmefehler aufgetreten ist. Wenn alle diese Bits null sind, verarbeitet der Datenrouter eine HBA-Anforderung zu einer Host-Speicheranforderung für die Datenübertragung. Wenn von einer Host-Speicheranforderung ein Ausnahmefehler zurückgegeben wird, wird der Grund des Ausnahmefehlers zusammen mit dem auf eine Eins gesetzten Schreibvorgang-abbrechen-Bit oder Lesevorgang-verwerfen-Bit im zugehörigen ACW gespeichert. Wenn es sich bei der E/A-Operation z. B. um einen Schreibvorgang handelt, wird dem HBA signalisiert, die E/A-Operation abzubrechen, die den Speicherabrufen-Ausnahmefehler empfangen hat. Das Schreibvorgang-abbrechen-Bit wird im ACW auf eine Eins gesetzt, wodurch dem HBA signalisiert wird, die E/A-Operation erneut abzubrechen, wenn der HBA diese E/A-Operation erneut anfordert. Wenn es sich bei der E/A-Operation um einen Lesevorgang handelt, bewirkt das Empfangen des Speicher-Ausnahmefehlers auf eine Host-Speicher-Speicheranforderung, dass das Lesevorgang-verwerfen-Bit im ACW auf eine Eins gesetzt wird. Alle vom HBA empfangenen nachfolgenden Daten dieser E/A-Operation werden weggelassen.
  • 1 veranschaulicht eine beispielhafte Ausführungsform eines E/A-Verarbeitungssystems 100, das ein Host-Computersystem 102 mit einer Datenspeicher- und/oder Datenverarbeitungseinheit wie z. B. einem zSeries®-Großrechner von International Business Machines Corporation (IBM®) enthält. IBM ist eine eingetragene Marke von International Business Machines Corporation, Armonk, New York, USA. Andere im vorliegenden Dokument verwendete Namen können eingetragene Marken oder Produktnamen von International Business Machines Corporation oder anderen Unternehmen sein. Das Host-Computersystem 102 enthält verschiedene Verarbeitungs-, Speicher- und Datenaustauschelemente. Bei einer Ausführungsform enthält das Host-Computersystem 102 eine oder mehrere zentrale Verarbeitungseinheiten (CPUs) 104, Speicherkomponenten (z. B. zSeries-Speicher) wie z. B. einen Hauptspeicher bzw. Haupt-Arbeitsspeicher 106 und/oder einen Erweiterungsspeicher bzw. erweiterten Arbeitsspeicher 108 (die zusammenfassend als „Host-Speicher” bezeichnet werden). Das System 102 enthält außerdem ein oder mehrere Betriebssysteme (CSs) 110, die durch eine oder mehrere der CPUs 104 ausgeführt werden. Beispielsweise kann eine CPU 104 ein Linux®-Betriebssystem 110 und/oder ein z/OS®-Betriebssystem 110 als unterschiedliche virtuelle Maschineninstanz ausführen. Die CPU 104 ist das Steuerzentrum des E/A-Verarbeitungssystems 100. Sie enthält Ablauf- und Verarbeitungseinrichtungen zur Ausführung von Anweisungen, für Unterbrechungsaktionen, Zeitsteuerfunktionen, Funktionen zum anfänglichen Laden von Programmen sowie weitere maschinenbezogene Funktionen. Die CPU 104 ist mit dem Hauptspeicher 106 und/oder mit dem Erweiterungsspeicher 108 über eine Verbindung 113 verbunden, z. B. über einen bidirektionalen oder unidirektionalen Bus.
  • Das Host-Computersystem 102 enthält außerdem ein Kanal-Teilsystem 114, das eine Datenaustauschschnittstelle zwischen dem Host-Computersystem 102 und verschiedenen E/A-Einheiten 116 bereitstellt, die von einer oder mehreren Steuereinheiten 118 gesteuert werden können. Zu den E/A-Einheiten gehören Geräte wie Drucker, Magnetbandeinheiten, Direktzugriffsspeichereinheiten, Anzeigen, Tastaturen, Datenaustauschsteuereinheiten, Datenfernverarbeitungseinheiten und auf Sensoren beruhende Geräte. Das Kanal-Teilsystem 114 lenkt den Informationsfluss zwischen den E/A-Einheiten 116 und dem Host-Computersystem 102. Es entlastet die CPUs 104 von der Aufgabe des direkten Datenaustauschs mit den E/A-Einheiten 116 und ermöglicht die gleichzeitige Ausführung von Datenverarbeitung und E/A-Verarbeitung. Das Kanal-Teilsystem 114 ist mit den CPUs 104, dem Hauptspeicher 106 und/oder mit dem Erweiterungsspeicher 108 über eine Verbindung 120 verbunden, z. B. über einen Bus.
  • Bei einer Ausführungsform ist das Kanal-Teilsystem 114 mit jeder einzelnen E/A-Einheit 116 über einen entsprechenden „Kanalpfad” 122 verbunden, der das Kanal-Teilsystem 114 mit jeder einzelnen Steuereinheit 118 über eine Verbindung 124 verbindet, z. B. über eine serielle oder parallele Verbindung. Steuereinheiten 118 können mit dem Kanal-Teilsystem 114 über mehr als einen Kanalpfad 112 verbunden sein, und eine E/A-Einheit 116 kann mit mehr als einer Steuereinheit 118 verbunden sein. Insgesamt kann eine einzelne E/A-Einheit 116 über mehrere Kanalpfade zugänglich sein. Ein Kanalpfad kann verschiedene Arten von Verbindungen nutzen, z. B. eine parallele Schnittstelle, eine serielle E/A-Schnittstelle und eine FICON-E/A-Schnittstelle. Beispielsweise kann ein serieller Kanalpfad eine oder mehrere Glasfaserleitungen enthalten, die z. B. über einen dynamischen Schalter 126 in einer Fibre-Channel-Struktur mit einer Steuereinheit 118 verbunden sind, und eine parallele Schnittstelle kann eine Reihe von elektrischen Leitern enthalten. Die FICON-E/A-Schnittstelle ist in der ANSI-Norm „Fibre Channel – Single-Byte Command Code Sets Mapping Protocol – 4 (FC-SB-4)", T11 Project 2122-D, Revision 3.00, 22. September 2000, beschrieben, die durch Bezugnahme in ihrer Gesamtheit einen Bestandteil des vorliegenden Dokuments bildet.
  • Bei einer Ausführungsform enthält das Kanal-Teilsystem 114 einen oder mehrere einzelne Kanäle 128, die über einen oder mehrere Kanalpfade 122 mit jeweils einer oder mehreren Steuereinheiten 118 und/oder E/A-Einheiten verbunden sind. Jeder einzelne Kanal 128 enthält Verarbeitungselektronik wie z. B. einen lokalen Kanalmikroprozessor 130 und einen lokalen Kanalspeicher 132, der mit dem lokalen Kanalmikroprozessor 130 verbunden ist und auf den der lokale Kanalmikroprozessor Zugriff hat. Der lokale Kanalspeicher 132 kann Informationen wie z. B. eine Kanalprogrammbezeichnung, eine Kanalpfadkennung, eine Einheitennummer, einen Einheitenzählwert, Statusanzeigen sowie Informationen über die Kanalverfügbarkeit und anstehende bzw. gerade durchgeführte Funktionen enthalten.
  • Innerhalb der einzelnen Kanäle 128 befinden sich außerdem einer oder mehrere Teilkanäle. Jeder einzelne Teilkanal ist eine Datenstruktur innerhalb eines Kanalspeichers 132, die Informationen über eine zugehörige E/A-Einheit 116 und deren Verbindung mit dem Kanal-Teilsystem 114 bereitstellt. Der Teilkanal stellt außerdem Informationen über E/A-Operationen und weitere Funktionen bereit, an denen die zugehörige E/A-Einheit 116 beteiligt ist. Der Teilkanal ist das Mittel, mit dessen Hilfe das Kanal-Teilsystem 114 den CPUs 104 Informationen über zugehörige E/A-Einheiten 116 bereitstellt. Kanäle 128, die mit mehreren Steuereinheiten 122 oder mehreren E/A-Einheiten 116 verbunden sind, können mehrere Teilkanäle aufweisen, die jeweils einer einzelnen E/A-Einheit 116 fest zugeordnet sind. Bei einer Ausführungsform ist die Anzahl der durch das Kanal-Teilsystem bereitgestellten Teilkanäle unabhängig von der Anzahl von Kanalpfaden 122 zu den zugehörigen E/A-Einheiten 116. Beispielsweise wird eine Einheit 116, auf die der Zugriff über alternative Kanalpfade 122 möglich ist, nach wie vor durch einen einzigen Teilkanal dargestellt.
  • Jede einzelne Steuereinheit 118 stellt Logik zum Betrieb und zur Steuerung einer oder mehrerer E/A-Einheiten 116 bereit und passt durch die Verwendung gemeinsamer Einrichtungen die Eigenschaften jeder einzelnen E/A-Einheit 116 an die Verbindungsschnittstelle an, die durch einen Kanal 128 bereitgestellt wird. Die gemeinsamen Einrichtungen ermöglichen die Ausführung von E/A-Operationen, die Anzeige des Status von E/A-Einheiten 116 und der Steuereinheit 118, die Steuerung des zeitlichen Ablaufs von Datenübertragungen über einen Kanalpfad 122 und die Steuerung von E/A-Einheiten auf bestimmte Ebenen. Eine Steuereinheit 118 kann separat untergebracht oder physisch und logisch in eine E/A-Einheit, in das Kanal-Teilsystem oder in eine CPU integriert sein.
  • E/A-Operationen sind alle Operationen, die die Übertragung von Daten zwischen dem Host-Computersystem 102 und E/A-Einheiten 116 beinhalten. Wie im vorliegenden Dokument beschrieben beinhaltet eine E/A-Operation den Datenaustausch zwischen dem Kanal-Teilsystem 114 und einer Einheit 116 (bei einer Ausführungsform über eine Steuereinheit 118), bei der ein einzelner Befehl (z. B. ein Kanalbefehlswort bzw. CCW), eine einzelne Befehlsnachricht mit mehreren Befehlen (z. B. eine Transportbefehl-Informationseinheit, die einen Transportbefehl-Steuerblock (Transport Command Control block, TCCB) transportiert) oder mehrere verkettete Befehle (z. B. mehrere CCWs) vom Kanal-Teilsystem 114 an eine Einheit gesendet werden. Die E/A-Operation kann außerdem eine oder mehrere Antwortnachrichten beinhalten, die von der Einheit 116 oder einer zugehörigen Steuereinheit 118 als Reaktion auf den Empfang und/oder die Ausführung des Befehls bzw. der verketteten Befehle erzeugt wurden.
  • Bei einer Ausführungsform werden E/A-Operationen mit einer Einheit 116 durch die Ausführung von E/A-Anweisungen ausgelöst, die durch ein OS 110 erzeugt wurden, des den zur Einheit 116 gehörenden Teilkanal bezeichnet. Diese Anweisungen werden im Host-System durch eine CPU 104 ausgeführt, indem Parameter an den Kanal-Teilkanal gesendet werden, der angefordert hat, dass das Kanal-Teilsystem 114 verschiedene Funktionen in einer E/A-Operation über einen Kanal 128 durchführt.
  • Beispielsweise führt die CPU 104 eine „TEILKANAL STARTEN” aus, indem sie Parameter an den Ziel-Teilkanal übergibt, der anfordert, dass das Kanal-Teilsystem 114 eine Startfunktion mit der zu dem Teilkanal gehörenden E/A-Einheit 116 durchführt. Das Kanal-Teilsystem 114 führt die Startfunktion aus, indem es auf dem Teilkanal vorhandene Informationen verwendet, einschließlich der Informationen, die während der Ausführung der „TEILKANAL STARTEN”-Anweisung übergeben wurden, um einen zugriffsfähigen Kanalpfad zur Einheit 116 zu finden und die E/A-Operation auszuführen, sobald ein Kanalpfad ausgewählt wurde.
  • Wenn eine Anweisung wie z. B. „TEILKANAL STARTEN” durch die CPU 104 ausgeführt wird, beginnt ein Kanal 128 mit der Durchführung der E/A-Operation. Bei einer Ausführungsform nutzt das Kanal-Teilsystem 114 ein Fibre-Channel-Protokoll wie z. B. High Performance FICON (HPF) zum Datenaustausch zwischen dem Kanal-Teilsystem 114 und den Einheiten 116 und/oder den Steuereinheiten 118. FICON und HPF sind im Einzelnen im Dokument „Fibre Channel: Single-Byte Command Code Sets Mapping Protocol – 4 (FC-SB-4)", T11 Project 2122-D, Revision 3.00, 22. September 2000, beschrieben, das durch Bezugnahme in seiner Gesamtheit einen Bestandteil des vorliegenden Dokuments bildet.
  • Bei einer Ausführungsform wird durch die Ausführung der Anweisung „TEILKANAL STARTEN” der Inhalt eines Operationsanforderungsblocks (Operation Request Block, ORB) an das Kanal-Teilsystem 114 übergeben. Der ORB gibt ein Kanalprogramm an, das eine Adresse eines oder mehrerer Befehlswörter enthält (z. B. ein Kanalbefehlswort oder ein Transportbefehlswort, die nachfolgend beschrieben sind). Es gibt zwei Teilkanalbetriebsarten. Bei einer Ausführungsform arbeitet das Host-Computersystem 102 in einem Befehlsmodus und gibt Befehlswörter in Form eines Kanalbefehlswortes (CCW) an. Bei einer anderen Ausführungsform arbeitet das Host-Computersystem 102 in einem Transportmodus und gibt Befehlswörter in Form eines Transportbefehlswortes (TCW) an.
  • Ein Teilkanal kann in einen Transportmodus wechseln, wenn eine FCX-Einrichtung (FCX = Fibre Channel Extensions) installiert ist und die Startfunktion auf dem Teilkanal als Ergebnis der Ausführung einer „TEILKANAL STARTEN”-Anweisung festgelegt wird, die ein TCW-Kanalprogramm angibt. Der Teilkanal verbleibt im Transportmodus, bis die Startfunktion auf dem Teilkanal zurückgesetzt wird. Zu allen anderen Zeitpunkten befindet sich der Teilkanal im Befehlsmodus.
  • Im Befehlsmodus führt der Kanal ein CCW-Kanalprogramm aus, das ein einzelnes Kanalbefehlswort oder eine Abfolge von nacheinander ausgeführten Kanalbefehlswörtern enthält, die eine bestimmte Reihenfolge von Kanaloperationen steuern. Eine Steuereinheit führt eine CCW-E/A-Operation aus, indem sie CCW-Befehle mithilfe einer E/A-Einheit decodiert, übernimmt und ausführt. Ein oder mehrere CCWs, die zur Ausführung nacheinander angeordnet sind, bilden ein CCW-Kanalprogramm und werden als eine bzw. mehrere E/A-Operationen ausgeführt.
  • Die Fibre-Channel-Extensions-Einrichtung (FCX-Einrichtung) ist eine optionale Einrichtung, die die Bildung eines Transportmodus-Kanalprogramms ermöglicht, das sich aus einem Transportsteuerwort (TCW) zur Bezeichnung eines Transportbefehl-Steuerblocks (TCCB) und einem Transportstatusblock (TSB) zusammensetzt. Der TCCB enthält einen Transportbefehlsbereich (Transport-Command Area, ICA), der eine Liste mit einem oder mehreren (z. B. bis zu 30) E/A-Befehlen in Form von Einheitenbefehlswörtern (Device-Command Words, DCWs) enthält. Ein TCW und sein TCCB können eine Lese- oder Schreiboperation angeben. Bei einer Ausführungsform kann eine bidirektionale FCX-Datenübertragungseinrichtung in einem System installiert sein, das Transportmodusoperationen unterstützt, bei denen das Host-Computersystem 102 die Übertragung von Eingangs- und Ausgangsdaten in einer einzigen E/A-Operation des Transportmodus angeben kann, wenn die angeschlossene Einheit 116 und die angeschlossene Steuereinheit 118 die bidirektionale Datenübertragung unterstützen. Wenn eine Steuereinheit 118 bidirektionale Datenübertragungen erkennt, können ein TCW und sein TCCB je nach Einheit sowohl Lese- als auch Schreibübertragungen angeben.
  • Im Transportmodus gibt ein einzelnes Transportbefehlswort (TCW) einen Speicherort im Speicher eines TCCB an (sowie einen Speicherort im Speicher 106 eines oder mehrerer Datenbereiche), der in einer einzigen Nachricht anstelle getrennter einzelner CCWs im Befehlsmodus gesendet wird. Eine Steuereinheit führt eine Transportmodus-E/A-Operation aus, indem sie einen TCCB und die darin enthaltenen einzelnen DCWs decodiert, übernimmt und ausführt. Wenn der ORB ein TCW-Kanalprogramm angibt, verwendet das Kanal-Teilsystem 114 Informationen in dem bezeichneten TCW, um den TCCB an eine Steuereinheit 118 zu übertragen. Die Inhalte des TCCB werden vom Kanal-Teilsystem 114 ignoriert, nachdem der TCCB an die Steuereinheit 118 übertragen wurde, und haben nur für die Steuereinheit 118 und die zugehörige E/A Einheit 116 Bedeutung.
  • Bei einer beispielhaften Ausführungsform erzeugt die Steuereinheit 118 als Reaktion auf die Ausführung des Kanalprogramms eine Antwortnachricht. Die Steuereinheit 118 kann bei einer begrenzten Anzahl von Datenaustauschszenarien auch ohne Ausführung des Kanalprogramms eine Antwortnachricht erzeugen, z. B. um das Kanal-Teilsystem 114 darüber zu informieren, dass das Kanalprogramm nicht ausgeführt wird. Die Steuereinheit 118 kann eine Anzahl von Elementen enthalten, um den Datenaustausch zwischen dem E/A-Datenaustauschadapter und E/A-Einheiten sowie die Ausführung von Kanalprogrammen zu unterstützen. Beispielsweise kann die Steuereinheit 118 zur Erleichterung des Datenaustauschs und der Statusüberwachung außer einer oder mehreren Warteschlangen, Zeitgebern und Registern eine Steuerlogik enthalten, um Nachrichten zu analysieren und zu verarbeiten.
  • 2 zeigt beispielhafte Steuerblöcke, die im Host-Speicher mithilfe von Software eingerichtet werden, bevor die OS-Software eine Anweisung ausführt (z. B. eine „TEILKANAL STARTEN”-Anweisung, die die „Teilkanal starten”-Nachricht an einen E/A-Prozessor (I/O Processor, IOP) im Kanal-Teilsystem 114 zur Durchführung einer HPF-E/A-Operation übergibt. Die Architektur dieser Steuerblöcke sowie eine oder mehrere der oben erwähnten Komponenten des E/A-Verarbeitungssystems 100 sind eingehender im Dokument „IBM® z/Architecture Principles of Operation", Publikation Nr. SA22-7832-8, 9. Ausgabe, August 2010, beschrieben, das durch Bezugnahme in seiner Gesamtheit einen Bestandteil des vorliegenden Dokuments bildet.
  • Wie in 2 gezeigt wird eine „Teilkanal starten”-Nachricht an das Kanal-Teilsystem 114 übergeben, die einen Teilkanal 142, ein TCW 144 und einen Transportstatusblock (TSB) 146 bezeichnet. Das TCW enthält Adressen im Host-Speicher eines TCCB 148, einen für die E/A-Operation angegebenen Speicherort 150 von Lesedaten und/oder einen für die E/A-Operation angegebenen Speicherort 152 von Schreibdaten. Der TCCB 148 und die Speicherorte 150 und 152 können z. B. durch eine TIDAL-Liste 153 (TIDAL = Transport Indirect Data Address List, Liste indirekter Transportdatenadressen) direkt oder indirekt adressiert werden.
  • 3 veranschaulicht eine Ausführungsform einer dem Stand der Technik entsprechenden Konfiguration einer Datenaustauschverbindung zwischen dem Host-System 102, dem Kanal-Teilsystem 114 und einer Steuereinheit 118. Der Kanal 128 tauscht mit der Host-CPU über einen Kanalmikroprozessor 130 Daten aus und ist so konfiguriert, dass er Daten zwischen dem Host-Speicher und einem lokalen Kanalspeicher 132 überträgt, z. B. zum Abrufen eines TCCB 148 oder von Komponenten eines TCCB 148. Eine Netzwerk- oder Verbindungsschnittstelle wie z. B. ein Host-Bus-Adapter (HBA) 154 ist z. B. über einen PCIe-Bus 155 mit dem Kanal 128 verbunden. Der HBA 154 koordiniert den Informationsfluss zwischen dem Kanal 128 und einer Steuereinheit 118 z. B. über einen Steuereinheit-HBA 156. Bei dieser Ausführungsform tauscht der HBA 154 mit dem Kanal 128 Daten aus und hat nur Zugriff auf den lokalen Kanalspeicher 132. Auf diese Weise ist der HBA 154 vom Host-Computer und vom Host-Speicher getrennt. Daten, die zum HBA 154 bzw. von diesem gesendet werden, werden im lokalen Kanalspeicher 132 gespeichert oder von diesem abgerufen. Diese Trennung wird zur Fehlerprüfung der Daten genutzt, die zwischen dem Host-Speicher und der Steuereinheit 118 übertragen werden. Die mit dieser Trennung verbundene Leistungseinbuße besteht darin, dass alle Kundendaten durch diese als Speicher fungierende Trennhardware fließen und durch den lokalen Kanalspeicher 122 weitergeleitet werden.
  • 4 veranschaulicht eine Ausführungsform der Datenaustauschverbindung, die die Trennung zur Fehlerprüfung und gleichzeitig dem HBA 154 ermöglicht, direkt auf den Host-Speicher zuzugreifen, ohne dass Eingangs- oder Ausgangsdaten im lokalen Speicher 132 des Kanals gespeichert werden müssen. Im Gegensatz zur Konfiguration gemäß 3 enthält der Kanal 128 den Mikroprozessor sowie einen Datenrouter 160. Bei einer Ausführungsform ist der Datenrouter 160 ein Fibre-Channel-Hochleistungsdatenrouter (HPF-DR), der das Protokoll gemäß FC-SB-4 (das auch als HPF-Protokoll bezeichnet wird) unterstützt. Der Datenrouter 160 ermöglicht dem HBA 154, direkt auf den Host-Speicher zu zugreifen, ohne dass Eingangs- oder Ausgangsdaten (d. h. Kundendaten) gespeichert werden müssen, die mithilfe einer E/A-Operation im lokalen Kanalspeicher 122 angefordert werden. Der Datenrouter 160 enthält bei einer Ausführungsform Datenrouter-Hardware 162 und eine lokale Kanalspeicherregion 164, in der Zustandsinformationen eingerichtet werden, sodass der Datenrouter HBA-Datenübertragungsanforderungen verarbeiten kann. Wie im vorliegenden Dokument beschrieben beinhalten „HBA-Datenübertragungsanforderungen” jeglichen Datenaustausch vom HBA 154 zum Kanal 128, der die Übertragung von Ausgangsdaten (d. h. Daten schreiben oder abrufen) vom Host-Speicher zur Steuereinheit 118 anfordert (z. B. eine „HBA-Schreibanforderung” oder eine „HBA-Abrufanforderung”), bzw. der die Übertragung von Eingangsdaten (d. h. Daten lesen oder speichern) von der Steuereinheit 118 zum Host-Speicher anfordert (z. B. eine „HBA-Leseanforderung” oder eine „HBA-Speicheranforderung”). Außerdem enthält der lokale Kanalspeicher 132 bei einer Ausführungsform eine Region 166 (z. B. vor der 4-GB-Linie), die dem HBA 154 zugewiesen ist und auf die der HBA 154 zugreifen kann, die zur Verarbeitung von Anforderungen und Operationen im Zusammenhang mit lokalen Kanälen verwendet wird.
  • Nach dem Empfang der E/A-Anweisung und des ORB vom Host und vor der Durchführung der E/A-Operation und dem Senden der E/A-Operation an den HBA 154 richtet der Kanal 128 eine oder mehrere Adresssteuerstrukturen und zugehörige Adresssteuerwörter (ACWs) ein, die zur Erzeugung von Host-Speicheranforderungen an den Host-Computer 102 verwendet werden und dem HBA 154 den direkten Zugriff auf den Host-Speicher ermöglichen. Die ACWs und die Datensteuerstrukturen stellen außerdem ein Mittel dar, mit dem der Datenrouter 160 Kopfdaten an HBA-Datenübertragungsanforderungen anfügen bzw. aus den HBA-Datenübertragungsanforderungen speichern kann, die vom HBA 154 gesendet wurden. Außerdem stellen die ACWs und die Datensteuerstrukturen ein Mittel dar, mit dem die HBA-Anforderungen auf Fehler geprüft werden können, ohne die Eingangs- oder Ausgangsdaten im lokalen Kanalspeicher 132 zu speichern.
  • Nach der Übergabe einer „Teilkanal starten”-Nachricht 140 an den Kanal (z. B. über einen E/A-Prozessor im Kanal-Teilsystem 114) empfängt z. B. der Kanalmikroprozessor 130, auf dem die Firmware ausgeführt wird, die „Teilkanal starten”-Nachricht 140, um von einer Einheit 116 zu lesen und/oder auf diese Einheit zu schreiben sowie, um in den Host-Speicher zu schreiben bzw. aus dem Speicher zu lesen. Der Kanal 128 verwendet die Informationen in der „Teilkanal starten”-Nachricht 140, um den Teilkanal 142 abzurufen. Im Teilkanal 142 ist die Host-Speicheradresse enthalten, die die Kanal-Firmware verwendet, um das TCW 144 abzurufen. Der Kanal 128 verwendet die Informationen aus der „Teilkanal starten”-Nachricht 140, den Teilkanal 142 und das TCW 144, um verschiedene ACWs einzurichten. Jedes einzelne ACW ist ein Steuerblock, den der Datenrouter 160 verwendet, um HBA-Datenübertragungsanforderungen zu einer Host-Speicheradresse weiterzuleiten, die im TCW 144 angegeben ist. Es können mehrere ACWs eingerichtet werden, einschließlich eines ACW für Lesebefehle, das mindestens eine Host-Speicheradresse zum Speichern von Eingangsdaten enthält, einschließlich eines ACW für Schreibbefehle, das mindestens eine Host-Speicheradresse für Ausgangsdaten enthält, einschließlich eines ACW, das zum Aufbau einer E/A-Befehlsnachricht wie z. B. einer Transportbefehl-Informationseinheit (Information Unit, IU) mit einem TCCB 148 verwendet wird, und einschließlich eines ACW zum Empfangen und Speichern von Statusinformationen.
  • Bei der Einrichtung der ACWs richtet der Kanal 128 aus Informationen im TCW 144 „Adresssteuerstrukturen” für jedes ACW ein und übergibt die Adresssteuerstrukturen über den lokalen Kanalspeicher 132 an den HBA 154 (z. B. über eine HBA-Arbeitswarteschlange des lokalen Kanalspeichers), bevor der HBA 154 von der E/A-Operation informiert wird. Es werden mehrere Adresssteuerstrukturen an den HBA 154 übergeben und vom HBA 154 verwendet, um Informationen aus dem Host-Speicher abzurufen bzw. im Host-Speicher zu speichern. Mit den Adresssteuerstrukturen kann der HBA 154 mehrere Adressräume adressieren, während die Datenrouter-Hardware mit den Adresssteuerstrukturen gespeicherte oder abgerufene Daten auf Fehler prüfen kann. Beispielsweise wird eine Adresssteuerstruktur verwendet, um die Informationen abzurufen, aus denen die Befehlsnachricht (z. B. die Transportbefehl-IU) besteht, eine wird verwendet, um am Ende einer E/A-Operation den Endzustand aus der Antwort der Steuereinheit (z. B. eine Transportstatus-IU) zu speichern, und mehrere „Daten-Adresssteuerstrukturen” können vom HBA 154 zur Übertragung von Eingangs- oder Ausgangsdaten verwendet werden. Beispielsweise wird eine „Lese-Adresssteuerstruktur” für jeweils 8 Megabyte von Lesedaten verwendet, die von einer Einheit 116 zum Host-Speicher übertragen werden, und eine „Schreib-Adresssteuerstruktur” wird für jeweils 8 Megabyte von Daten verwendet, die aus dem Host-Speicher angefordert werden. Nur die Lese- bzw. die Schreib-Adresssteuerstruktur wird benötigt, wenn die E/A-Operation nur Daten in einer Richtung überträgt.
  • Jede Adresssteuerstruktur enthält eine an den HBA 154 gesendete Adresse, die der HBA verwendet, um Anforderungen an den Kanal 128 aufzubauen. Der HBA 154 betrachtet die Adresse als eine einzige Adresse, die jedoch für mehrere Adressräume im Host-Speicher verwendet wird. Beispielhafte Adresssteuerstrukturen enthalten jeweils eine 64-Bit-PCIe-Adresse, einen Datenbytezählwert, Richtungsbits und Steuerinformationen. Beispielsweise enthält jede Adresssteuerstruktur einen Datenbytezählwert der Menge von Daten, die von dieser Adresssteuerstruktur zu übertragen ist, und Steuerbits, die dem HBA 154 mitteilen, in welcher Richtung die Daten zu übertragen sind, sowie, wie viele Adresssteuerstrukturen notwendig sind, um die Daten zu übertragen.
  • 5 veranschaulicht Ausführungsformen eines Adressfeldes 172 einer Adresssteuerstruktur 170. Bei diesem Beispiel enthält das Adressfeld 172 eine 64-Bit-PCIe-Adresse, ist aber nicht darauf beschränkt. Das Adressfeld 172 enthält ein CTL-Feld (Steuerfeld) 174 (z. B. Byte 2 der Adresse 172), das angibt, ob eine HBA-Anforderung an den lokalen Kanalspeicher weitergeleitet werden soll, um intern durch den Kanal 128 verarbeitet zu werden, oder ob die HBA-Anforderung verarbeitet und über den Datenrouter 160 an den Host-Speicher weitergeleitet werden soll. Wenn z. B. das Adressfeld 172 das auf null gesetzte Steuerfeld 174 enthält, leitet der Datenrouter 160 die Anforderung an die lokale Kanalspeicherregion 166 weiter. Wenn das Steuerfeld 174 jedoch auf einen gewählten Wert gesetzt ist (z. B. auf 0 × 02), ist die Adresse 172 so konfiguriert, dass der HBA 154 den Host-Speicher über die Datenrouter-Hardware adressieren kann. Bei dieser Konfiguration ist die Adresse 172 (in Zeile 3 von 5 gezeigt) in vier Felder unterteilt: in ein ACW-Indexfeld 176 (z. B. Bytes 0 und 1), in das Steuerfeld 174 (z. B. Byte 2), in ein Gültigkeitsprüffeld 178 (z. B. Bytes 3 und 4) und in ein Offset-Feld 180 (z. B. Bytes 5 bis 7). Bei einer Ausführungsform ist das ACW-Indexfeld 176 der Index auf einen zusammenhängenden Block von ACWs in der lokalen Kanalspeicherregion 164, und die Datenrouter-Hardware verwendet diesen Index, um ein ACW einer zugehörigen HBA-Anforderung und Adresssteuerstruktur zu linden. Das Gültigkeitsprüffeld 178 (z. B. ein 16-Bit-Feld) ist für jedes in der lokalen Kanalspeicherregion 164 definierte ACW auf einen eindeutigen Wert gesetzt.
  • Nachdem der Kanal 128 die ACWs und die Adresssteuerstrukturen 170 für eine E/A-Operation eingerichtet hat, informiert der Kanal 128 den HBA 154 von der anstehenden E/A-Operation und sendet die entsprechenden Adresssteuerstrukturen 170, die zur Ausführung der E/A-Operation erforderlich sind.
  • 6 veranschaulicht verschiedene Nachrichten, die während einer E/A-Operation zwischen dem Kanal 128 und der Steuereinheit 118 übertragen werden. Nachdem der Kanalmikroprozessor 130 den Datenrouter 160 mit den entsprechenden Informationen eingerichtet hat, ruft der HBA 154 verschiedene Informationseinheiten (IUs) ab und speichert diese. Eine Transportbefehl-IU 182 enthält den TCCB 148 und Kopfdaten und wird über den Kanalpfad 122 an die Steuereinheit 118 gesendet. Während der Ausführung der E/A-Operation werden Daten-IUs, die eine Lesetransportdaten-IU 184 und/oder eine Schreibtransportdaten-IU 186 enthalten, übertragen, um Eingangs- und/oder Ausgangsdaten zu senden. Bei einer Ausführungsform kann jede einzelne Daten-IU je nach ihrer Größe in Form eines oder mehrerer Datenübertragungsblöcke 188 gesendet werden. Ein Datenübertragungsblock 188 ist eine Einheit bzw. ein Paket von Daten, die bzw. das in einem Verbindungs-Wrapper auf einem Verbindungs- oder Kanalpfad übertragen wird und deren bzw. dessen Größe von der Architektur der Verbindung abhängt. Zum Abschluss einer E/A-Operation sendet die Steuereinheit 118 eine Transportstatus-IU 190, die den Transportstatus der Operation (z. B. abgeschlossen oder abgebrochen) anzeigt. Normalerweise werden die Transportbefehl-IU 182 und die Transportstatus-IU 190 auf der Verbindung zusammen mit einem Datenübertragungsblock übertragen. Bei einer Ausführungsform erfordert jeder einzelne Datenübertragungsblock einer IU mindestens eine HBA-Anforderung (z. B. eine PCIe-Anforderung) vom HBA 154.
  • Bei einer Ausführungsform enthalten die IUs ein oder mehrere Datenprüfwörter 192 (z. B. CRCs) am Ende oder in der Nähe des Endes einer IU. Beispielsweise ist ein Datenprüfwort 192 für die Transportbefehl-IU 182 entweder 1 oder 2 Wörter vom Ende der IU entfernt. Eine Schreibtransportdaten-IU 182 kann mehrere zwischenzeitliche Datenprüfwörter 192 enthalten, von denen jedes einen Teil der Schreibtransportdaten-IU 182 prüft. Die Transportstatus-IU 190 enthält ein Datenprüfwort 192 für die IU-Kopfdaten und ein Datenprüfwort 192 für den Transportstatus.
  • Die 7, 8 und 9 veranschaulichen eine Ausführungsform eines Verfahrens 200 zur Durchführung einer E/A-Operation. Des Verfahren beinhaltet eine oder mehrere Stufen 201 bis 206. Bei einer Ausführungsform beinhaltet das Verfahren die Ausführung aller Stufen 201 bis 206 in der beschriebenen Reihenfolge. Bestimmte Stufen können jedoch weggelassen werden, es können Stufen hinzugefügt werden, oder die Reihenfolge der Stufen kann geändert werden.
  • In der ersten Stufe 201 empfängt der Kanal 128 eine Anweisungsnachricht 140 und einen ORB von der Host-CPU 104, ruft den Teilkanal 142 und anschließend das TCW 144 sowie weitere erforderliche Daten ab.
  • In der zweiten Stufe 202 erzeugt der Kanal 128 oder der Datenrouter 160 Adresssteuerstrukturen 170 und entsprechende ACWs 210 (in 8 dargestellt). Beispielhafte Steuerstrukturen 170 und ACWs 210 (die nachfolgend unter Bezugnahme auf die 10 bis 15 eingehender erläutert werden) enthalten ein Transportbefehl-ACW und eine Transportbefehl-Adresssteuerstruktur entsprechend der Transportbefehl-IU 182, ein Transportlesedaten-ACW und eine oder mehrere Transportlesedaten-Adresssteuerstrukturen entsprechend einer oder mehreren Lesetransportdaten-IUs 184 bzw. entsprechend einem oder mehreren Lesetransportdaten-Datenübertragungsblöcken, ein Transportschreibdaten-ACW und eine oder mehrere Transportschreibdaten-Adresssteuerstrukturen entsprechend einer oder mehreren Schreibtransportdaten-IUs 186 bzw. entsprechend einem oder mehreren Schreibtransportdaten-Datenübertragungsblöcken, und ein Transportstatus-ACW und eine Transportendestatus-Adresssteuerstruktur entsprechend der Transportstatus-IU 190. Der Datenrouter 160 überträgt die Adresssteuerstrukturen 170 zum HBA 154. Eine Liste der ACWs 210 wird in der lokalen Kanalspeicherregion 164 aufgebaut.
  • 8 veranschaulicht eine Konfiguration des Datenrouters 160, bei der die ACWs 210 in der lokalen Adressspeicherregion 164 gespeichert werden. Bei einer Ausführungsform ist die Speicherregion 164 der HBA-Adressraum oberhalb einer gewählten Grenze (z. B. oberhalb der 1-Terabyte-Grenze) im lokalen Kanalspeicher 132, in der eine Liste 212 der zur Adressierung des Host-Speichers verwendeten ACWs 210 untergebracht ist. Bei einer Ausführungsform ist die Liste 212 eine Liste von zusammenhängenden ACWs. Ein ACW-Ursprungsregister 214 ist die Startadresse der Liste 212 von ACWs 210. Der ACW-Index 176 aus dem ACW-Indexfeld 176 in einer Datensteuerstruktur wird zum ACW-Ursprung 214 hinzugefügt, um eine lokale Adresse zu erzeugen, an der sich das entsprechende ACW in der lokalen Kanalspeicherregion 164 befindet. Das ACW-Grenzwertregister 216 ist die Endadresse der Liste 212 von ACWs 210. Wenn der ACW-Index 176 zum ACW-Ursprung hinzugefügt wird, um ein ACW abzurufen, kann das Ergebnis nicht größer als ACW-Grenzwert minus ACW-Größe sein.
  • In der dritten Stufe 203 wird im HBA 154 eine Transportbefehl-IU 182 zur Übertragung zu einer Steuereinheit 118 aufgebaut. Der HBA 154 verwendet die Transportbefehl-Adresssteuerstruktur, um das Abrufen des TCCB 148 aus dem Host-Speicher auszulösen, indem eine HBA-Abrufanforderung an den Datenrouter 160 gesendet wird. Bei einer Ausführungsform werden die Anforderungen, die an den und vom HBA gesendet werden, durch das PCI-Express-Protokoll (PCIe-Protokoll) gesteuert, obwohl auch andere Protokolle verwendet werden könnten.
  • In der vierten Stufe 204 trifft die HBA-Abrufanforderung beim Datenrouter 160 ein und gelangt zur Empfangslogik 220, die die vom HBA 154 gesendeten Bits in Datenpakete umwandelt, und wird anhand der HBA-Adresse 172 in jedem Paket von der Weiterleitungslogik 222 weitergeleitet.
  • Beispielsweise werden alle HBA-Anforderungen mit einer Adresse, die den lokalen Speicherbereich (z. B. unterhalb von 240) bezeichnet, zum Kanalmikroprozessor 224 sowie zum lokalen Kanalspeicher 166 weitergeleitet und intern als lokale Kanalspeicheranforderungen bearbeitet. Bei einer Ausführungsform wird die HBA-Anforderung immer dann zum lokalen Kanalspeicher weitergeleitet, wenn sich ein PCIe-Bus im 64-Bit-Adressierungsmodus befindet und das Steuerfeld 174 den Wert 0×00 enthält oder wenn eine PCIe-Operation im 32-Bit-Modus abläuft. Dies ermöglicht dem HBA 154 den Direktzugriff auf den lokalen Kanalspeicherbereich, für den der HBA 154 Zugriffsrechte hat. Der HBA 154 hat keine Direktzugriffsrechte auf den lokalen Kanalspeicherbereich 164, in dem sich die ACWs 210 befinden.
  • Alle Anforderungen mit Adressen im Speicherbereich 164 (z. B. oberhalb von 240) werden entweder zur Abrufmatrixwarteschlange 226 oder zur Speichermatrixwarteschlange 228 weitergeleitet, um vom Datenrouter 160 verarbeitet zu werden. Das von der Empfangslogik 220 empfangene gesamte Datenpaket (Kopfdaten und Daten) wird in einer dieser beiden Matrizen als Eintrag gespeichert. Die Abrufmatrixwarteschlange 226 und die Speichermatrixwarteschlange 228 befinden sich in der Datenrouter-Abrufhardware 230 bzw. in der Datenrouter-Speicherhardware 230, die HBA-Anforderungen aus diesen Warteschlangen in Host-Speicheranforderungen verarbeiten, die zum Host-Speicher übertragen werden.
  • In der fünften Stufe 205 reiht die Verarbeitungslogik 234 die Kanalanforderungen im lokalen Kanalspeicher 164 in eine Warteschlange ein und priorisiert die Kanalanforderungen, und reiht die HBA-Anforderungen in die Warteschlangen 226 und 228 ein und priorisiert diese, und verarbeitet die Anforderungspakete zu Host-Speicherpaketen.
  • Die Verarbeitungslogik 234 nimmt das ACW-Indexfeld 176 der HBA-Adresse (aus der Transportbefehl-Adressdatensteuerstruktur) in einem HBA-Anforderungspaket, um die Liste von ACWs 210 aus ACWs zu indizieren, die beim ACW-Ursprungsregister 214 beginnt, um das ACW abzurufen, das der HBA-Adresse 170 entspricht. Bei diesem Beispiel ist das gewünschte ACW ein Transportbefehl-ACW. Beispielsweise nimmt die Verarbeitungslogik 234 den Wert des ACW-Index und addiert ihn zum ACW-Ursprungsregister 214, um eine lokale Kanalspeicheradresse zu erzeugen, von der sie das ACW abruft. Anhand des Speicheradressfeldes im ACW erzeugt die Verarbeitungslogik 234 eine Host-Speicheranforderung, die von der Übertragungslogik 236 zum Host-Speicher gesendet wird (z. B. über eine Host-Speicherschnittstelle 238) und die Speicheradresse anzeigt, von der Daten übertragen bzw. auf der Daten gespeichert werden. Weitere Informationen aus dem ACW, zu denen eine Zonen-ID, ein Schlüsselwert und eine Datenlänge gehören, können ebenfalls zur Erzeugung einer Host-Speicheranforderung verwendet werden.
  • Bei dieser Ausführungsform ist die Adresse im Speicheradressfeld des ACW der Speicherort des TCCB 148 (bzw. dessen Speicherorte). Wenn die indirekte Datenadressierung im ACW nicht aktiviert ist, ist die Host-Speicheradresse die Adresse des gesamten TCCB 148. Wenn die indirekte Datenadressierung im ACW aktiviert ist, ruft der Datenrouter 160 ein indirektes Transportdaten-Adresswort (Transport Indirect Data Address Word, TIDAW) von der Host-Speicheradresse ab, und verwendet anschließend die Adresse im TIDAW als Host-Speicheradresse.
  • Bei einer Ausführungsform wird ein TIDAW angegeben, wenn ein Wert im ACW anzeigt, dass indirekte Datenadressen verwendet werden (z. B. hat ein HPF-DR-Steuerbit 17 (258) in 10 den Wert 0). TIDAWs enthalten eine Adresse und einen Zählwert. Ein TIDAW-Datenadressfeld im TIDAW wird verwendet, um einen Host-Speicherplatz für die Anzahl von Datenbytes zu adressieren, die im TIDAW angegeben ist. Ein beispielhaftes TIDAW enthält vier Wörter, unter anderem ein erstes Wort mit einem Merkerfeld, ein Zählwertfeld zur Angabe der Anzahl von Bytes, die mit diesem TIDAW übertragen werden sollen, ein High-Wort der TIDAW-Datenadresse und ein Low-Wort der TIDAW-Datenadresse. In dem Merkerfeld können die folgenden Merker enthalten sein:
    Bit 0 – Letztes TIDAW: Bei einem auf eine Eins gesetzten Wert informiert dieses Merkerbit die Datenrouter-Hardware darüber, dass dies das letzte TIDAW in dieser TIDAL ist, das bei dieser Operation verwendet werden kann. Wenn das aktuelle TIDAW-Merkerbit 0 „Letztes TIDAW” nicht aktiv ist, setzt die Datenrouter-Hardware die Datenübertragungen unter Verwendung des nächsten TIDAW in der TIDAL fort, um den Host-Speicher zu adressieren, wenn der Byte-Zählwert im aktuellen TIDAW auf null wechselt und der aktuelle ACW-Arbeitszählwert nicht auf null gewechselt hat;
    Bit 1 – Lesen überspringen: Bei einem auf eine Eins gesetzten Wert informiert dieses Merkerbit die Datenrouter-Hardware, die Daten zu verwerfen, die anhand des Byte-Zählwertfeldes dieses TIDAW von einer Einheit empfangen werden. Das Datenprüfwort wird jedoch weiterhin berechnet, obwohl die Daten verworfen werden. Dieses Merkerbit wird ignoriert, wenn es sich bei der E/A-Operation um einen Schreibvorgang handelt.
    Bit 2 – Unterbrechung der Datenübertragung: Dieses Bit veranlasst die Datenrouter-Hardware, das TIDAW-Formatprüfbit 10 im „HPF-DR-Antwort”-Wort 254 zu setzen und die E/A-Operation bei dem Versuch der HPF-DR-Hardware zu beenden, dieses TIDAW zu verwenden.
    Bit 3 – T-TIC: Bei einem auf eine Eins gesetzten Wert informiert dieses Merkerbit die Datenrouter-Hardware, dass die Adresse in diesem TIDAW nicht für Daten verwendet wird, sondern es sich hierbei um eine Host-Speicheradresse für den Start einer neuen TIDAL handelt, die aus dem Host-Speicher abgerufen werden muss, um das nächste TIDAW abzurufen, das bei dieser E/A-Operation verwendet werden soll; und
    Bit 4 – Füllbit und Datenprüfwort einfügen: Bei einem auf eine Eins gesetzten Wert informiert dieses Merkerbit die Datenrouter-Hardware, Füllbytes bis zur nächsten Wortgrenze einzufügen, wenn keine Wortgrenze erreicht ist, und anschließend den aktuellen Wert des berechneten Datenprüfwortes einzufügen. Die Füllbytes (sofern zutreffend) und das Datenprüfwort werden eingefügt, nachdem der Byte-Zählwert der Daten, der durch diesen TIDAW-Eintrag vorgegeben ist, übertragen wurde und das Merkerbit 0, „Letztes TIDAW”, nicht auf eine Eins gesetzt ist. Das aktuelle ACW-Datenprüfwort wird anschließend wieder auf den Datenprüfwort-Anfangswert im ACW zurückgesetzt.
  • In der sechsten Stufe 206 empfängt der Datenrouter 160 über die Empfangslogik 240 des Host-Speichers eine Host-Speicherantwort, die bei dieser Ausführungsform das TCCB 148 enthält. Bei einer anderen Ausführungsform Mann die Host-Speicherantwort je nach Host-Speicheranforderung Ausgangsdaten für einen Schreibbefehl oder eine Statusnachricht für einen Lesebefehl enthalten. Die Weiterleitungslogik 242 leitet die Host-Speicherantwort an einen Datenpuffer und eine Datenlogik 246 weiter. Der Datenpuffer und die Datenlogik 246 führen die IU-Kopfdaten aus dem Transportbefehl-ACW (d. h. aus dem IU-Kopfdatenfeld) mit dem TCCB 148 zu einem Antwortpaket zusammen, das über die Ausgangslogik 244, die die Schnittstelle zum HBA 154 bildet, an den HBA 154 zurückgegeben werden kann. Bei E/A-Operationen mit mehreren Ausgangsdatenanforderungen kann der Datenpuffer 246 Daten aus den mehreren Anforderungen sammeln, um ein vollständiges Antwortpaket zu erzeugen, das an den HBA 154 zurückgesandt wird.
  • Wie oben beschrieben können während der Ausführung einer E/A-Operation Datentransport-IUs zwischen dem HBA 154 und der Steuereinheit 118 übertragen werden. Zur Ausführung von Schreibbefehlen fordert der HBA 154 Informationen an, um eine Schreibtransportdaten-IU 186 aufzubauen, die Ausgangsdaten aus dem Host-Speicher (der Adresse, die durch das Speicheradressfeld des Schreib-ACW angegeben ist) und IU-Kopfdaten enthält, die aus dem Schreib-ACW abgerufen wurden. Zur Ausführung von Lesebefehlen speichert der HBA Eingangsdaten aus einer Lesetransportdaten-IU 184 an einer Host-Speicheradresse, die im Speicheradressfeld des Lese-ACW angegeben ist, sowie Speicher-IU-Kopfdaten aus der Lesetransportdaten-IU 184, um das Lese-ACW zu lesen.
  • Beispielsweise empfängt der HBA 154 eine Lesetransportdaten-IU 184 und erzeugt eine oder mehrere HBA-Leseanforderungen, die zum Kanal 128 gesendet werden, um Eingangsdaten im Host-Speicher zu speichern. Jede Leseanforderung enthält ein Adressfeld 172 aus einer entsprechenden Lesedaten-Adresssteuerstruktur. Die Empfangslogik 220 empfängt die HBA-Leseanforderung, und die Weiterleitungslogik 222 leitet die HBA-Leseanforderung an die Speichermatrixwarteschlange 228 weiter. Das ACW-Indexfeld 176 des Adressfeldes 172 wird verwendet, um die Liste von ACWs 210 zu indizieren, siehe die Beschreibung oben, und um das Lese-ACW abzurufen. Die Kopfdaten der Lesetransportdaten-IU werden im Lesedaten-ACW gespeichert, und eine Host-Speicher-Leseanforderung wird an den Host-Speicher gesendet, um das Speichern von Eingangsdaten an der Adresse bzw. an den Adressen anzufordern, die durch das Lesedaten-ACW angegeben wird bzw. werden.
  • Bei einer Ausführungsform werden unter Umständen mehrere Host-Speicher-Leseanforderungen benötigt, um eine HBA-Leseanforderung zu speichern. Wenn z. B. jede Host-Speicher-Leseanforderung 256 Byte lang und eine HBA-Leseanforderung 2048 Byte lang ist, werden acht Host-Speicher-Leseanforderungen benötigt, um eine HBA-Leseanforderung zu speichern. Bei dieser Ausführungsform werden die Host-Speicherleseantworten von der Host-Speicherschnittstelle 238 an die Datenrouter-Hardware zurückgegeben, die jede einzelne Antwort mit den einzelnen durchgeführten Leseanforderungen korreliert.
  • Bei einem weiteren Beispiel kann der HBA 154 eine Schreibtransportdaten-IU 186 an die Steuereinheit 118 senden. Sofern die Transportbereitschaft nicht deaktiviert ist, muss die Steuereinheit 118 eine Transportbereit-IU senden, bevor der Kanal 128 jede Schreibtransportdaten-IU 186 senden kann. Die Steuereinheit 118 kann zusätzliche Daten anfordern, indem sie zusätzliche Transportbereit-IUs sendet, bis sie alle durch das TCCB 148 vorgegebenen Daten angefordert hat.
  • Wenn die Transportbereitschaft deaktiviert ist, wodurch der HBA 154 eine IU von Daten an die Einheit 116 senden kann, ohne das die Einheit 116 die Daten-IU anfordert, löst der HBA 154 HBA-Schreibanforderungen zum Datenrouter 160 aus. Der HBA 154 verwendet das Adressfeld 172 aus jeder Schreibdaten-Adresssteuerstruktur, um jede HBA-Schreibanforderung zu senden und das Abrufen der Daten aus dem Host-Speicher auszulösen. Die Weiterleitungslogik 222 empfängt jede HBA-Schreibanforderung und leitet jede HBA-Schreibanforderung in die Abrufmatrixwarteschlange 226 weiter. Das ACW-Indexfeld aus dem Adressfeld 172 wird verwendet, um Schreibdaten-ACWs aus der lokalen Kanalspeicherregion 164 abzurufen. Eine oder mehrere Host-Speicherschreibanforderungen werden verwendet, um Ausgangsdaten anzufordern, die aus dem Host-Speicher in einer Host-Speicherschreibantwort empfangen und durch die Weiterleitungslogik 242 und den Datenpuffer 246 zum HBA 154 gesendet werden. Wenn mehrere Host-Speicherschreibanforderungen benötigt werden, um eine HBA-Schreibanforderung zu verarbeiten, wird jede einzelne Host-Speicherschreibantwort wie oben unter Bezugnahme auf die Leseanforderungen beschrieben verarbeitet.
  • Bei einer Ausführungsform verwendet der HBA 154 die Transportendestatus-Adresssteuerstruktur, um eine HBA-Speicheranforderung zu senden und das Speichern des Endestatus im Host-Speicher auszulösen, wenn eine Einheit 116 die E/A-Operation beendet, indem sie die Transportstatus-IU 190 an den HBA 154 sendet. Der Datenrouter 160 ruft das Transportstatus-ACW mithilfe der HBA-Speicheranforderung ab, und speichert die Endestatus-Kopfdaten im IU-Kopfdatenbereich des Status-ACW, und eine Host-Speicher-Speicheranforderung wird an den Host-Speicher gesendet, um den erweiterten Status an der im Status-ACW angegebenen Adresse zu speichern. Nachdem der HBA 154 die E/A-Operation abgeschlossen hat, erzeugt der HBA 154 eine HBA-Anforderung mit dem Beendigungsstatus, die an den lokalen Kanalspeicher 132 weitergeleitet und dort gespeichert wird, und die Steuerung der E/A-Operation wird an die Firmware des Kanals 128 zurückgegeben.
  • Wenn der HBA eine E/A-Operation an die Firmware des Kanalmikroprozessors zurückgibt, befinden sich keine Abrufanforderungen in der Abrufmatrixwarteschlange, da der HBA 154 weiß, dass sie abgeschlossen sind, wenn die angeforderten Daten an den HBA 154 zurückgegeben werden. Es können sich jedoch noch eine oder mehrere Host-Speicher-Speicheranforderungen in der Speichermatrixwarteschlange 228 befinden, da der HBA 154 die Abschlussantworten für die EBA-Speicheranforderungen nicht empfängt. Daher kann die Firmware des Mikroprozessors bei einer Ausführungsform die folgenden Tests bei Bits im Transportlese-ACW und im Transportstatus-ACW durchführen, wenn der HBA 154 eine E/A-Operation, z. B. Firmware-E/A-Beendigungswarteschlange, an den Kanalmikroprozessor zurückgibt: Beim Transportstatus-ACW wartet die Firmware darauf, dass sich das ACW-Zustandsfeld in 2 ändert, wenn das ACW nicht bereits den Zustand 2 hat (das ACW-Zustandsfeld wird nachfolgend beschrieben). Wenn die Firmware feststellt, dass sich dieses ACW im Zustand 2 befindet, überprüft die Firmware das IU-Kopfdatenfeld, um festzustellen, mit welcher Einheit das ACW gearbeitet hat. Jetzt wartet die Firmware darauf, dass der Aktive-Anforderungen-Zählwert des Lese-ACW und des Status-ACW auf null verringert wird, indem sie überwacht, dass das „Aktive-Anforderungen-Zählwert = null”-Bit in jedem der ACWs auf eine Eins gesetzt wird, bevor sie beliebige Felder in einem der der E/A-Operation zugewiesenen ACWs überprüft oder ändert. Sobald die Aktive-Anforderungen-Zählwerte beider ACWs null sind, überprüft die Firmware die Kopfdaten der Transportstatus-IUs im Transportstatus-ACW und speichert anschließend den E/A-Endestatus im Teilkanal 142. Die Firmware erzeugt dann einen Interrupt für den E/A-Prozessor (IOP) des Kanal-Teilsystems 114, der den IOP darüber informiert, dass die E/A-Operation für diesen Teilkanal abgeschlossen ist. Der TOP erzeugt anschließend einen Interrupt für das OS 110, der das OS 110 darüber informiert, dass die E/A-Operation abgeschlossen ist.
  • 10 zeigt eine Ausführungsform eines Adresssteuerwortes (ACW) 210, das die Firmware im lokalen Kanalspeicher einrichtet und der Datenrouter 160 verwendet, um Umsetzungsaufgaben zwischen HBA-Speicheranforderungen und Host-Speicheranforderungen durchzuführen. Nach der Verarbeitung jeder einzelnen Host-Speicheranforderung aktualisiert die Datenrouter-Hardware Informationen im ACW 210, um für die nächste HBA-Anforderung unter Verwendung dieses ACW 210 bereit zu sein. Ein beispielhaftes ACW 210 enthält die folgenden Felder.
  • Ein ACW-Zustandsfeld 250 (z. B. Wort 0, Byte 0) liefert den Zustand des ACW. Beispielsweise wird das Bit 0 (das ACW-gültig-Bit) durch die Firmware auf eins gesetzt, wenn das ACW für eine E/A-Operation eingerichtet wird, und zeigt dadurch an, dass es sich bei dem ACW um ein gültiges ACW handelt. Die Zustände sind z. B. in den Bits 4 bis 7 definiert und enthalten die folgenden Codes:
    0 – Leerlauf/Lesenvorgang-Einrichtung. Die Firmware setzt diesen Zustand, wenn das ACW auf den Empfang von Daten eingerichtet ist;
    1 – Schreibvorgang-Einrichtung. Die Firmware setzt diesen Zustand, wenn das ACW zum Senden von Daten eingerichtet ist;
    2 – ACW-IU-Kopfdatenbereich sicher. Die Datenrouter-Hardware ändert den ACW-Zustand vom Zustand 0, 1 oder 3 in den Zustand 2, wenn ein ganzer IU-Kopf bei Abruf- oder Speichervorgängen zum HBA oder von diesem übertragen wurde. Wenn Daten von der Verbindung empfangen werden, muss der gesamte IU-Kopf empfangen und im ACW-Kopfbereich gespeichert worden sein, bevor der ACW-Zustand 250 auf den Zustand 2 gesetzt wird. Die Datenrouter-Hardware greift nicht auf den IU-Kopfbereich im ACW zu, sobald der ACW-Zustand auf 2 gesetzt ist. Wenn das ACW auf den Zustand 2 gesetzt ist, bleibt es im Zustand 2, bis die Firmware diesen Zustand ändert. Wenn keine Kopfdaten der IU vorhanden sind, kann die Firmware den ACW-Zustand auf den Zustand 2 setzen.
    3 – IU-Kopf in Bearbeitung. Die Hardware setzt den Zustand von Zustand 0 oder 1 auf den Zustand 3, wenn eine PCIe-Anforderung nur einen Teil des IU-Kopfes überträgt. Der ACW-Zustand bleibt im Zustand 3, bis nachfolgende PCIe-Anforderungen die Übertragungen des gesamten IU-Kopfes abschließen, danach wird der ACW-Zustand auf den Zustand 2 gesetzt.
  • Ein Lesevorgang-verwerfen- oder Lesevorgang-abbrechen-Bit (z. B. Bit 2 des ACW-Zustands 250) kann durch den Datenrouter gesetzt werden, wenn beim Weiterleiten einer Host-Speicheranforderung zum Host-Speicher ein Ausnahmefehler auftritt. Bei HBA-Speicheranforderungen wird das Lesevorgang-verwerfen-Bit gesetzt, sodass alle HBA-Anforderungen zum Speichern von Daten im Host-Speicher dazu führen, dass die Daten verworfen und auch nicht im Datenprüfwort-Speicherbereich 280 gesammelt werden. Zu den Bedingungen, die dieses Bit setzen, gehören alle Ausnahmefehler, die bei Host-Speichervorgängen zu diesem ACW aufgetreten sind sowie alle Gelegenheiten, bei denen das Bit 8 („eine fehlende PCIe-Anforderung”) des „HPF-DR-Antwort”-Wortes 254 dieses ACW auf eine Eins gesetzt wird. Bei HBA-Abrufanforderungen kann ein Schreibvorgang-abbrechen-Bit (z. B. ACW-Zustand 250, Bit 3) gesetzt werden, sodass alle HBA-Abrufanforderungen zu diesem ACW eine PCIe-ILP-Beendigung (TLP = Transaction Layer Protocol) empfangen, wobei der Beendigungsstatus auf „Beendiger-Abbruch” gesetzt wird. Zu den Bedingungen, die dieses Bit setzen, gehören: alle Ausnahmefehler, die bei Host-Abrufanforderungen zu diesem ACW aufgetreten sind und von der „Globale Abrufvorgänge stillsetzen”-Hardware gesetzt werden, wenn dies von der Firmware bei diesem ACW angefordert wird.
  • Bei einer Ausführungsform setzt die Datenrouter-Hardware das Lesevorgang-verwerfen-Bit auf eine Eins und das Fehlende-PCIe-Anforderung-Bit auf eine Eins, wenn eine eingehende HBA-Anforderung verarbeitet wird und ein Firmware-Lesevorgang-verwerfen-Bit 252 gesetzt ist. Die Aktionen, die die Datenrouter-Hardware anschließend ausführt, sind in einem „HPF-DR-Antwort”-Wort (im Folgenden beschrieben) unter Bit 8 aufgeführt. Die Firmware verwendet dieses Bit, um ein ACW wiederherzustellen, zu dem eine blockierte HBA-Speicheranforderung in der Speichermatrix Warteschlange 228 vorhanden ist, die nicht verarbeitet werden kann, da eine vorhergehende HBA-Anforderung zu diesem ACW nicht empfangen wurde.
  • Ein „HPF-DR-Antwort-Wort”-Feld 254 (z. B. Wort 0, Bytes 1, 2, 3) enthält ein „HPF-DR-Antwort”-Wort, bei dem es sich um die ACW-Beendigungsstatusinformationen handelt, die die Datenrouter-Hardware der Firmware bei Abschluss einer F/A-Operation bereitstellt. Zu Beispielen von Beendigungsstatus und deren entsprechenden Bits gehören:
    Bit 8 – Fehlende HBA-Anforderung: Dieses Bit kann auf eine Eins gesetzt werden, wenn eine „aufgeschobene” HBA-Speichertransaktion zu diesem ACW die konfigurierte „Lebensdauer” (Time To Live) überschritten hat. Dies geschieht, wenn die Datenrouter-Hardware diese HBA-Anforderung wegen eines Außer-der-Reihe-Zustands wieder in die Warteschlange eingereiht hat und die Zeit, die die Anforderung in der Speichermatrixwarteschlange 228 auf zu empfangende fehlende HBA-Anforderungen gewartet hat, die konfigurierte Lebenszeit überschritten hat. Dieses Bit kann ebenfalls auf eine Eins gesetzt werden, wenn eine eingehende HBA-Anforderung (lesen) verarbeitet wird und das Firmware-Lesevorgang-verwerfen-Bit des ACW auf eine Eins gesetzt ist. Zu den Aktionen, die beim Zustand „Fehlende HBA-Anforderung” durchgeführt werden, gehören das Speichern des IU-Kopfes (sofern vorhanden) im ACW, das Verwerfen von IU-Daten (sofern vorhanden), ohne die Daten im Datenprüfwort zu sammeln, und das Setzen des Schreibvorgang-verwerfen-Bits 2 des ACW-Zustandsfeldes 250 auf eine Eins. Nach der Durchführung dieser Aktionen wird der Aktive-Anforderungen-Zählwert dieses ACW um eins verringert.
    Bit 9 – Schwellenwert für Speicheranforderungen überschritten: Die Anzahl von Host-Speicheranforderungen, die zur Erfüllung einer HBA-Anforderung benötigt werden, hat einen festgelegten Schwellenwert für Speicheranforderungen überschritten.
    Bit 10 – Prüfung des TIDAL-Formats: Die Adresse der TIDA-Liste oder ein TIDAW entspricht nicht den Formatregeln des Protokolls. Die Adresse des fehlgeschlagenen TIDAW wird in das „Fehlgeschlagene zSeries-Speicheradresse”-Feld dieses ACW geschrieben.
    Bit 11 – Überlauf bei Arbeitszählwert: Wenn Daten durch den Datenrouter aus dem Host-Speicher abgerufen oder im Host-Speicher abgelegt werden und die Gesamtzahl der Bytes aus Datenbytes, Füllbytes und Datenprüfwörtern, die zum oder vom PCIe-Bus übertragen werden sollten, den im ACW-Arbeitszählwert festgelegten Datenbyte-Zählwert überschritten hat.
    Bit 12 – Doppelte HBA-Abrufanforderung oder eine ungültige HBA-Speicheranforderung vom HBA empfangen: Eine doppelte HBA-Abrufanforderung wird nicht verarbeitet, stattdessen wird ein „Beendiger-Abbruch”-Abschluss-TLP an den HBA zurückgegeben. Das Schreibvorgang-abbrechen-Bit (Bit 3 des ACW-Statusbyte) wird auf eine Eins gesetzt; oder dieses Bit und das Lesevorgang-verwerfen-Bit (Bit 2 des ACW-Statusbyte) werden bei einer ungültigen HBA-Speicheranforderung auf eine Eins gesetzt, und alle nachfolgenden HBA-Speicheranforderungen dieses ACW werden verworfen.
    Bit 13 – Aktive-Anforderungen-Zählwert = null: Jedes Mal, wenn die Datenrouter-Hardware den Aktive-Anforderungen-Zählwert im ACW aktualisiert, setzt sie dieses Bit gleich dem NOR aller Bits eines Aktive-Anforderungen-Zählwertfeldes 290, das nachfolgend definiert ist.
    Bit 14 – ACW-Umbruch: Dieses Bit wird auf eine Eins gesetzt, wenn das 24-Bit-Feld „Nächster erwarteter 16-Megabyte-Offset” von 0×FFFFFF auf 0×000000 wechselt. Dieses auf eine Eins gesetzte ACW-Umbruch-Bit verhindert, dass die Datenrouter-Hardware die 16-Megabyte-Offset-Werte dieses ACW zwischen 0×000000 und 0×00001F als IU-Kopfinformationen interpretiert.
    Bit 15 – Fehler bei TIDA-Abruf des Host-Speichers: Dieses Bit wird gesetzt, wenn alle folgenden Aussagen wahr sind: Ein Ausnahmefehler oder eine falsche Hardwareantwort wurde bei einem TIDAW-Eintrag in einer TIDA-Liste als Reaktion auf eine Anforderung zum Abrufen des Host-Speichers empfangen; eine HBA-Anforderung auf Daten wurde von dem HBA empfangen, der dieses nicht zur Verfügung stehende TIDAW verlangt hat; und es wurden bei dieser B/A-Operation keine vorhergehenden Fehler erkannt. Die von der Empfangslogik 240 empfangene Fehleranzeige wird im TIDA-Hardwareantwortfeld des ACW, ACW-Wort 9, Bytes 2 und 3, gespeichert. Die Adresse, die diesen Fehler verursacht hat, wird in das „Fehlgeschlagene zSeries-Speicheradresse”-Feld, ACW-Wörter 16 und 17, geschrieben.
    Bit 17 – Nichtübereinstimmung Datenprüfwort: Bei Speichervorgängen im Host-Speicher stimmte das berechnete Datenprüfwort nicht mit dem empfangenen Datenprüfwort überein. Das Bit wird nur gesetzt, wenn die Prüfung des Datenprüfwortes im ACW durch das HPF-Steuerbit 3 aktiviert und das Lesevorgang-verwerfen-Bit 2 nicht auf eine Eins gesetzt ist.
    Bit 18 – Richtungsfehler: Das ACW-Richtungsbit 0 im HPF-DR-Steuerwort entsprach bei diesem ACW nicht der Richtung der HBA-Anforderung.
    Bit 21 – Fehler bei Host-Speicherantwort: Von einer Host-Speicheranforderung wurde ein Fehler empfangen. Bei einer Ausführungsform wird das Fehlerbyte, das den Fehler näher beschreibt, aus der Host-Speicherantwort in die oben erwähnten Bits 19 bis 21 und die nachfolgend erwähnten Bits 24 bis 31 dieses ACW-Statusfeldes geschrieben. Die Adresse des Host-Speichers, die diesen Fehler verursacht hat, wird in das „Fehlgeschlagene zSeries-Speicheradresse”-Feld dieses ACW geschrieben.
    Bit 22 – Nichtübereinstimmung IU-Kopfdatenprüfwort: Die Hardware prüft bei allen eingehenden IUs das IU-Kopfdatenprüfwort auf den 28 Bytes der IU-Kopfinformationen, sofern dies nicht durch das HPF-DR-Steuerwort, Bit 16, im ACW deaktiviert ist. Bei einem Fehler im Zusammenhang mit dem IU-Kopfdatenprüfwort werden alle in der IU vorhandenen Nutzdaten verworfen.
  • Wenn einer der oben aufgeführten Fehler, die in einem Beendigungsstatus in einem „HPF-DR-Antwort” angegeben sind, auftritt, während Daten aus dem HBA im Host-Speicher gespeichert werden, werden die restlichen Bytes in der HBA-Anforderung und in allen nachfolgenden HBA-Anforderungen dieser IU verworfen. Dies wird dadurch erzwungen, dass das Lesevorgang-verwerfen-Bit im ACW-Zustand auf eine Eins gesetzt wird, wenn eines der Fehlerbits 8 bis 12, 15, 17, 18, 21 und 22 in diesem Wort auf eine Eins gesetzt ist. Wenn ein Fehler erkannt wird, während Daten aus dem Host-Speicher abgerufen werden, um über den PCIe-Bus übertragen zu werden, signalisiert die HPF-DR-Hardware der PCIe-Ausgangslogik 244, ein Abschluss-TLP zurückzugeben, bei dem der Beendigungsstatus auf „Beendiger-Abbruch” gesetzt ist. Dies veranlasst den HBA, den Austausch abzubrechen, der die Host-Speicherabrufanforderung ausgelöst hat, die diesen Ausnahmefehler verursacht hat. Alle nachfolgenden HBA-Anforderungen im Zusammenhang mit diesem ACW werden mit demselben Abschluss-TLP beantwortet, bei dem der Beendigungsstatus auf „Beendiger-Abbruch” gesetzt ist. Dies wird dadurch erzwungen, dass das Schreibvorgang-abbrechen-Bit im ACW-Zustand auf eine Eins gesetzt wird, wenn eines der Fehlerbits 8 bis 12, 15, 17, 18, 21 und 22 in diesem Wort auf eine Eins gesetzt ist. Wenn die HPF-DR-Hardware auf ein ACW trifft, bei dem das Gültig-Bit (Bit 0) auf 0 gesetzt ist oder des einen ungültigen ACW-Zustand aufweist (0 und 4-F bei Abrufvorgängen bzw. 1 und 4-F bei Speichervorgängen), wird eine Prüfung der HPF-DR-Hardwarekanalsteuerung gesendet.
  • Unter erneuter Bezugnahme auf 10 kann das ACW auch ein Arbeitszählwert-Feld 256 enthalten. Dieses Feld wird aus dem Wort 7 des Startzählwert-Feldes (das nachfolgend beschrieben wird) initialisiert, wenn die erste HBA-Anforderung dieses ACW vom Datenrouter verarbeitet wird. Die Datenrouter-Hardware verringert diesen Zählwert, sobald Daten aus dem Host-Speicher abgerufen oder im Host-Speicher abgelegt werden. Nachdem dieser Zählwert auf null verringert wurde, werden keinesfalls Daten im Host-Speicher abgelegt. Alle Daten, die vom PCIe-Bus empfangen werden, nachdem der Zählwert den Wert null erreicht hat, werden verworfen, und das „Überlauf bei Arbeitszählwert”-Bit im „HPF-Antwort-Wort”-Feld wird auf eine Eins gesetzt. Dieser Zählwert wird bei verworfenen oder abgebrochenen Datenbytes nicht verringert, wenn des „Schreibvorgang-abbrechen”- oder das „Lesevorgang-verwerfen”-Bit im ACW-Zustandsbyte auf eine Eins gesetzt ist. Der Restwert dieses Zählwertes ist ungültig, wenn ein beliebiges Fehlerbit im HPF-Antwort-Wort 254 auf eine Eins gesetzt ist und dadurch anzeigt, dass in einer Host-Speicherantwort ein Fehler empfangen wurde.
  • Ein HPF-DR-Steuerwortfeld 258 wird von der Firmware eingerichtet und steuert die Funktionen, die der Datenrouter durchführt. Nachfolgend sind beispielhafte Funktionen (die beispielhaften Bits in diesem Feld entsprechen) beschrieben: Bit 0 – ACW-Richtung: Wird bei einem Abrufvorgang aus dem Host-Speicher auf ,1'b gesetzt. Wird bei einem Speichervorgang in den Host-Speicher auf ,0'b gesetzt. Dieses Bit muss mit den HBA-Anforderungen im Zusammenhang mit diesem ACW übereinstimmen, anderenfalls wird das ,Richtungsfehler'-Bit 18 im „HPF-DR-Antwort”-Wort auf eine Eins gesetzt.
  • Bits 1 bis 2 – „IU-Daten – Auswahl Datenprüfwort”: Diese Bits werden mit den folgenden Codepunkten codiert, um die Datenrouter-Hardware bei Daten-IUs über den Typ des Datenprüfwortes zu informieren. Wenn das nachfolgend aufgeführte Bit 3 (Datenprüfwort ist aktiviert) auf eine Eins gesetzt ist, zeigen die folgenden Codes den Typ des verwendeten Datenprüfwortes an:
    0 – Datenprüfwort-Typ 1 verwenden. (LRC)
    1 – Datenprüfwort-Typ 2 verwenden. (Prüfsumme)
    2 – Datenprüfwort-Typ 3 verwenden. (CRC)
    3 – Datenprüfwort-Typ 4 verwenden.
  • Bit 3 – „IU-Daten – Aktivierung Datenprüfwort”: Ein Wert von ,0'b zeigt „Aus” an, d. h., bei diesem Eintrag werden keine Datenprüfwörter geprüft bzw. erzeugt. Ein Wert von ,1'b zeigt „Ein” an, d. h., bei diesem ACW ist die Prüfung bzw. Erzeugung von Datenprüfwörtern entsprechend der Codierung der oben erwähnten Bits 1 bis 2 aktiviert.
  • Bits 4 bis 5 – Codierung der Auswahl der IU-Kopfdatenprüfwörter: Die Bits 4 bis 5 werden mit den folgenden Codepunkten codiert, um die Datenrouter-Hardware über den Typ des Datenprüfwortes des IU-Kopfes zu informieren, wenn das folgende Bit 16 auf eine Null gesetzt ist (IU-Kopfdatenprüfwörter sind aktiviert):
    0 – Datenprüfwort-Typ 1 verwenden 1. (LRC)
    1 – Datenprüfwort-Typ 2 verwenden. (Prüfsumme)
    2 – Datenprüfwort-Typ 3 verwenden. (CRC)
    3 – Datenprüfwort-Typ 4 verwenden.
  • Bit 16 – IU-Kopfdatenprüfwort unterdrücken: Ein Wert von ,0'b („Aus”) zeigt an, dass bei diesem ACW die Prüfung bzw. Erzeugung von IU-Kopfdatenprüfwörtern entsprechend der Codierung der oben erwähnten Bits 4 bis 5 aktiviert ist. Ein Wert von ,1'b („Ein”) zeigt an, dass das Datenprüfwort-Feld bei eingehenden IU-Kopfdaten nicht geprüft wird. Das Datenprüfwort-Feld bei ausgehenden Kopfdaten wird nicht verändert und wie im ACW eingerichtet gesendet.
  • Bit 17 – TIDAL UMGEHEN: Ein Wert von ,0'b zeigt an, dass die TIDAL-Verarbeitung zu verwenden ist. Die Adresse im ACW ist die Adresse einer Liste von TIDAWs. Jedes TIDAW enthält eine Host-Speicheradresse und einen Zählwert, die zum Abrufen oder Speichern von Daten verwendet werden. Ein Wert von ,1'b zeigt an, dass die TIDAL-Verarbeitung umgangen wird und, beginnend bei der im ACW genannten Host-Speicheradresse, Daten fortlaufend abgerufen oder gespeichert werden.
  • Bits 22 bis 23 – Speicherort des Nutzdaten-Datenprüfwortes: Diese Zwei-Bit-Codierung stellt die Anzahl von Wörtern ab dem Ende der Nutzdaten dar, an dem sich das Datenprüfwort für Schreiboperationen befindet. Diese Codierung wird bei Leseoperationen ignoriert. Bei anderen Codierungen als ,00'b muss der Anfangs-Arbeitszählwert ein Vielfaches von 4 Bytes sein (d. h. keine Füllung). Wörter in der IU, die auf das Datenprüfwort folgen, werden bei der Datenprüfwort-Berechnung nicht berücksichtigt. Zu beispielhaften Codes gehören:
    ,00'b: Fügt das erzeugte Datenprüfwort ein, wenn der Arbeitszählwert = 0 ist. Dadurch wird das Datenprüfwort am Ende der übertragenen IU plus Füllbytes abgelegt, um das Datenprüfwort an einer Wortgrenze abzulegen. Dieser Codepunkt dient zur Übertragung aller Daten außer der Transportbefehl-IU.
    ,01'b: Überlagert das vorhandene Wort mit dem erzeugten Datenprüfwort, wenn der Arbeitszählwert = 4 ist. Dadurch wird das Datenprüfwort ein Wort (4 Bytes) vom Ende der übertragenen IU entfernt abgelegt. Dieser Codepunkt wird nur zur Übertragung der Transportbefehl-IU verwendet.
    ,10'b: Überlagert das vorhandene Wort mit dem erzeugten Datenprüfwort, wenn der Arbeitszählwert = 8 ist. Dadurch wird das Datenprüfwort zwei Wörter (8 Bytes) vom Ende der übertragenen IU entfernt abgelegt. Dieser Codepunkt wird nur zur Übertragung der Transportbefehl-IU verwendet.
    ,11'b: Ungültig
  • Unter erneuter Bezugnahme auf 10 kann das ACW auch einen Schlüssel 259 enthalten, der von der Firmware eingerichtet wird. Dieser Schlüssel wird durch die Datenrouter-Hardware aus dem ACW entnommen und in die Host-Speicheranforderung eingefügt, die zum Zugriff auf den Host-Speicher verwendet wird. Ein Zonen-ID-Feld 260 wird durch die Firmware eingerichtet und durch die Datenrouter-Hardware aus dem ACW entnommen und in die Host-Speicheranforderung eingefügt, die zum Zugriff auf den Host-Speicher verwendet wird.
  • Ein Host-Speicheradressfeld 262 zeigt die Startadresse im Host-Speicher an, ab der die Daten zu diesem ACW abzurufen bzw. zu speichern sind (z. B. wenn Bit 17 des Steuerwortfeldes eins ist), oder das Feld zeigt die Stadtadresse der TIDAL-Liste (Tidal Indirect Data Address List) an (z. B. wenn Bit 17 null ist). Die Host-Speicheradresse im ACW ist entweder die Host-Speicheradresse der Daten oder die Adresse des Beginns einer TIDAL-Liste (Transport Indirect Address List). Jeder Eintrag in einer TIDAL ist ein TIDAW, bei dem es sich um die Startadresse im Host-Speicher für die Anzahl von Datenbytes handelt, die im Zählwertfeld im TIDAW enthalten ist. Wenn eine TIDAL durch Bit 17 im HPF-DR-Steuerwort angegeben ist, ruft die HPF-DR-Hardware die TIDAL aus dem Host-Speicher ab und verwendet dann die Adresse in jedem TIDAW, um Daten aus dem Host-Speicher abzurufen bzw. im Host-Speicher zu speichern.
  • Die Datenrouter-Hardware verwendet ein IU-Kopfdatenzählwert-Feld 263, um die Anzahl von IU-Kopfdatenbytes zu überwachen, die noch vom PCIe-Bus zum ACW oder umgekehrt zu übertragen sind. Der IU-Kopfdatenzählwert wird durch die Firmware zu Beginn der Übertragung oder des Empfangs einer IU mit der Anzahl von IU-Kopfdatenbytes initialisiert, die vom ACW-Ende zum PCIe-Bus oder umgekehrt übertragen werden sollen.
  • Ein 24-Bit-Feld „Nächster erwarteter 16-Megabyte-Offset” 264 wird bei der Einrichtung des ACW durch die Firmware initialisiert. Obwohl dieses Offset-Feld bereits als 16-Megabyte-Offset beschrieben wurde, kann es auch für andere gewünschte Offset-Konfigurationen konfiguriert werden. Bei der Verarbeitung jeder HBA-Abrufanforderung bzw. HBA-Speicheranforderung prüft die Datenrouter-Hardware den 16-Megabyte-Offset 180 in der HBA-Adresse gegen das „Nächster erwarteter 16-Megabyte-Offset”-Feld im ACW. Wenn beide übereinstimmen, überträgt die Datenrouter-Hardware die Daten, wenn es sich um den IU-Kopf handelt, zum bzw. vom Ende des ACW und alle Kundendaten zum oder vom Host-Speicher. Die Datenrouter-Hardware erhöht dann das „Nächster erwarteter 16-Megabyte-Offset”-Feld im ACW um die Größe der HBA-Transaktion. Um ein 4-Byte-Arbeitszählwert-Feld nutzen zu können, kann unter Verwendung eines aus 3 Bytes bestehenden „Nächster erwarteter 16-Megabyte-Offset”-Feldes der nächste erwartete Offset bei einer Ausführungsform maximal 255 Mal von 0×FFFFFF auf 0×000000 wechseln, bevor der Arbeitszählwert auf null wechselt. Wenn der „Nächste erwartete Offset” zum ersten Mal wechselt, wird das ACW-Umbruch-Bit (Bit 14 im „HPF-Antwort-Wort”-Feld 254) in diesem ACW auf eine Eins gesetzt.
  • Ein Startzählwerk-Feld 266 wird von der Firmware verwendet, um die Anzahl von Datenbytes zu laden, die bei der E/A-Operation zu übertragen sind, die der Steuerung durch dieses ACW unterliegt. Dieses Zählwertfeld enthält alle eingefügten Füll- und Datenprüfwort-Bytes bei übertragenen Daten, aber nicht die IU-Kopfdatenbytes bzw. die endgültigen Full- und Datenprüfwort-Bytes bei gesendeten oder empfangenen Daten. Die Datenrouter-Hardware überträgt diesen Zählwert in das Arbeitszählwert-Feld 256, wenn die erste HBA-Anforderung dieses ACW verarbeitet wird. Die Datenrouter-Hardware verändert den Startzählwert im ACW nicht.
  • Ein Steuerfeld 268 und ein Gültigkeitsprüffeld 270 werden durch die Datenrouter-Hardware mit dem entsprechenden Steuerfeld 174 und Gültigkeitsprüffeld 178 im Adressfeld 172 verglichen, das vom HBA empfangen wurde. Bei Nichtübereinstimmung wird ein Fehler gesendet, und die Host-Speicheroperation wird nicht durchgeführt. Dieser Fehler führt zu einer Prüfung der Kanalsteuerung.
  • Bei HBA-Speichervorgängen wird von der Datenrouter-Hardware ein Datenprüfwort-Statusfeld 272 verwendet, um zu überwachen, welches der Datenbytes im „Speicherbereich der letzten 4 Datenbytes” (nachfolgend beschrieben) im ACW bei der nächsten Transaktion im Zusammenhang mit diesem ACW bei der Berechnung des Datenprüfwortes verwendet wird. Dies ist für den Fall erforderlich, dass eine HBA-Speicheranforderung nicht an einer Wortgrenze im Verhältnis zum Beginn der Datenübertragung endete und die Berechnung des Datenprüfwortes nur mit vier Datenbytewörtern bei Wortgrenzen vorgenommen werden kann. Daher müssen bis zu drei Bytes von zuvor empfangenen Daten und die Grenzzustandsinformationen im ACW gespeichert werden, bis die nachfolgenden Datenbytes empfangen wurden, um die Berechnung des Datenprüfwortes fortzusetzen.
  • Ein TIDAL-Hardwareantwort-Feld 274 wird verwendet, um einen Host-Speicher-Ausnahmefehler oder eine falsche Antwort der Datenrouter-Hardware zu speichern, die zu einer abgerufenen TIDA-Liste empfangen wurde. Die Bits 2 bis 15 dieses Feldes tragen dieselben Definitionen wie die Bits 18 bis 31 des „HPF-DR-Antwort-Wort”-Feldes 254. Da die TIDA-Liste durch die HPF-DR-Hardware vorab abgerufen werden kann, bevor sie benötigt wird, wird diese falsche Antwort durch die Firmware nicht als Fehler gemeldet, sofern nicht vom HBA eine HBA-Anforderung auf Übertragung von Daten empfangen wurde, die dieses nicht verfügbare TIDAW verwendet hätten. Diese letztgenannte Bedingung wird der Firmware durch das Bit 15 des „HPF-DR-Antwort-Wort”-Feldes 254 angezeigt.
  • Ein „Speicherbereich für vorhergehendes Datenprüfwort” wird von der Datenrouter-Hardware verwendet, um am Ende jeder HBA-Speichertransaktion den Wert des vorletzten zwischenzeitlichen Datenprüfwortes zu speichern. Dieser zwischenzeitliche Wert wird nicht durch die Berechnungen verändert, bei denen die letzten 4 empfangenen Datenbytes verwendet werden. Wenn die aktuelle HBA-Transaktion die Operation abschließt, enthält dieses Feld daher den endgültigen berechneten Datenprüfwort-Wert für die Operation, und die letzten 4 empfangenen Datenbytes bilden das empfangene Datenprüfwort, das im folgenden Feld in diesem ACW gespeichert wird.
  • Ein „Speicherbereich für die letzten 4 Datenbytes” 278 wird von der Hardware verwendet, um die bei jeder HBA-Anforderung empfangenen letzten 4 Datenbytes zu speichern. Bei anderen als der letzten HBA-Anforderung können bis zu drei dieser Bytes für die Bildung des nachfolgenden Prüfdatenwortes erforderlich sein, wenn die aktuelle HBA-Anforderung nicht an einer Wortgrenze endete. Informationen darüber, welche Bytes benötigt werden, werden im Datenprüfwort-Zustand 272 abgelegt. Bei der letzten HBA-Anforderung enthält dieses Feld das empfangene Datenprüfwort. Bei einer Ausführungsform enthält dieses Feld im Falle von HBA-PCIe-Abrufen ausgehend von der letzten vorhergehenden 4-Byte-PCIe-Grenze maximal die letzten vier Datenbytes. Daher enthält dieses Feld das letzte gesendete Byte, wenn die PCIe-Adresse mit einer 1 endet. Wenn die PCIe-Adresse mit einer 2 endet, enthält dieses Feld zwei gesendete Bytes usw. bis zu den letzten 4 Bytes.
  • Der Datenprüfwort-Speicherbereich 280 wird von der Datenrouter-Hardware am Ende jeder HBA-Transaktion (Abruf oder Speicherung) verwendet, um den berechneten zwischenzeitlichen Datenprüfwort-Wert zu speichern, um den Anfangswert für die nächste Transaktion bei diesem ACW zu setzen.
  • Eine TIDAL-Arbeitsbereichsadresse 282 ist eine Adresse eines 256 Byte großen Arbeitsbereiches, der sich im lokalen Kanalspeicher befindet und von der Datenrouter-Hardware verwendet wird, um TIDA-Listenelemente zu puffern, die vorab durch die Datenrouter-Hardware aus dem Host-Speicher abgerufen wurden. Die Firmware setzt dieses Feld so, dass es auf den Bereich zeigt, der diesem ACW zugewiesen ist. Ein TIDAL-Arbeitsbereichsindex 284 ist der auf den TIDAL-Arbeitsbereich des lokalen Kanalspeichers erzeugte Index, der auf den gegenwärtigen aktuellen TIDAW-Eintrag zeigt und von der Datenrouter-Hardware verwaltet wird.
  • Ein Datenprüfwort-Anfangswertfeld 286 wird von der Firmware verwendet, um den Anfangswert des Datenprüfwortes in dieses Wort zu schreiben. Dieses Wort wird als Anfangswert für die Datenprüfwort-Berechnungen verwendet, sowohl zu Beginn der Datenübertragung zu diesem ACW bei Lese- und Schreibvorgängen als auch zum erneuten Setzen des Anfangswertes nach der Verarbeitung des ,Datenprüfwort einfügen'-TIDAW-Merkers in einem TIDAW, wenn dieser TIDAW-Zählwert bei Schreibvorgängen auf null übergeht. Bei dem Transportbefehl-ACW nimmt die Firmware den ursprünglichen Anfangswert der Transportbefehl-IU und berechnet für das ACW der Transportbefehl-IU einen neuen Wert, indem sie den Datenprüfwort-Anfangswert der Transportbefehl-IU mit dem IU-Kopf und dem Längenfeld bzw. den Längenfeldern von Schreib- und/oder Lesevorgängen aktualisiert, das bzw. die sich am Ende der Transport-IU befinden. Daher ist das Datenprüfwort der Transportbefehl-IU für die gesamte Transportbefehl-IU gültig, selbst wenn die Datenrouter-Hardware den Anfangswert aus dem ACW nimmt und das Datenprüfwort nur auf der Grundlage des Transportbefehl-IU-Datenteils der IU berechnet. Die Datenrouter-Hardware fügt dann das Datenprüfwort in die IU ein und sendet anschließend das Schreib- oder Leselängenfeld, oder es werden des Schreib- und das Leselängenfeld gesendet, wenn bei der E/A-Operation Daten in beiden Richtungen übertragen werden.
  • Eine „Fehlgeschlagene zSeries-Speicheradresse” 288 dient zum Speichern einer Adresse eines Speicherbereiches, die einen Ausnahmefehler verursacht hat, und die entsprechenden Fehlerbits werden im „HPF-DR-Antwort”-Wort 254 gespeichert.
  • Ein „Zählwert aktive Anforderungen”-Zähler 290 wird vom ACW verwendet, um zu überwachen, wie viele HBA-Anforderungen gegenwärtig in der Speichermatrixwarteschlange 228 zu diesem ACW vorhanden sind. Dieser Zähler wird bei jeder HBA-Anforderung erhöht, die zu diesem ACW in der Speichermatrixwarteschlange gespeichert wird, und er wird verringert, wenn die HBA-Anforderung verarbeitet wurde. Eine HBA-Anforderung zu diesem ACW gilt als verarbeitet, wenn im Zusammenhang mit der Anforderung eines der folgenden Ereignisse eintritt: alle Host-Speicheranforderungen einer HBA-Anforderung wurden mit einer Host-Speicherantwort abgeschlossen; alle Daten im Zusammenhang mit der HBA-Anforderung wurden verworfen, wenn das Lesen-verwerfen-Bit, Bit 2, auf eine Eins gesetzt war; oder alle IU-Kopfinformationen werden im ACW einer HBA-Anforderung gespeichert, die nur IU-Kopfinformationen enthält. Jedes Mal, wenn die Datenrouter-Hardware den Aktive-Anforderungen-Zählwert im ACW aktualisiert, setzt sie den „Zählwert aktive Anforderungen = null” („HPF-DR-Antwort”-Wort 254, Bit 13) auf das NOR des „Zählwertes aktive Anforderungen”. Daher wird das „Zählwert aktive Anforderungen = null”-Bit auf eine Eins gesetzt, wenn die HPF-DR-Hardware den „Zählwert aktive Anforderungen” auf 0 verringert.
  • Ein IU-Kopfinformationsfeld 292 dient zum Speichern von Befehls-, Status- und/oder Daten-IU-Kopfdaten, die bei der E/A-Operation verwendet werden. Bei einer Ausführungsform ist dieses Feld ein Bereich für acht Wörter von ,IU-Kopf'-Informationen. IU-Kopfinformationen sind die ersten Daten, die zu oder von einer Einheit in einer IU auf der Verbindung übertragen werden, wenn die IU einen IU-Kopf enthält. Die IU-Kopfinformationen werden durch den Kanal verwendet oder erzeugt, sind jedoch kein Bestandteil der Daten, die im Host-Speicher gespeichert oder aus diesem abgerufen werden sollen. Daher werden diese Informationen von der Firmware des Kanalmikroprozessors geprüft oder erzeugt. Die letzten 8 Wörter des ACW-Steuerblocks dienen zum Puffern des IU-Kopfes und bei dem IU-Kopf als Schnittstelle zwischen Hardware und Firmware des Datenrouters.
  • Die IU-Kopfinformationen sind die ersten Daten, die über den PCIe-Bus übertragen werden, wenn es sich bei dem ACW um ein Lesedaten-ACW oder Schreibdaten-ACW handelt. Wenn die Datenrouter-Hardware die Übertragung des IU-Kopfes abschließt, ändert sie den Wert des ACW-Zustandsfeldes 250 in 2. Bei IU-Übertragungen baut die Firmware den IU-Kopf im ACW auf, bevor sie dem HBA signalisiert, dass sie die IU gesendet hat. Bei empfangenen IUs prüft die Firmware den IU-Kopf im ACW, wenn sie durch den HBA benachrichtigt wurde, dass eine F/A-Operation abgeschlossen ist, und sie überprüft hat, dass sich das ACW im ACW-Zustand 2 befindet.
  • Außerdem kontrolliert die Firmware, ob das letzte Wort des IU-Kopfes, das bei der vorliegenden Ausführungsform stets ein 16-Megabyte-Offset 28, 0×00001C, ist, Daten oder ein IU-Kopfdatenprüfwort für den IU-Kopf darstellt. Das HPF-DR-Steuerbit 16 (IU-Kopfdatenprüfung unterdrücken) informiert die Datenrouter-Hardware darüber, ob das Datenprüfwort für IU-Köpfe geprüft oder erzeugt werden muss. Sofern aktiviert erzeugt die Datenrouter-Hardware das IU-Kopfdatenprüfwort und ersetzt anschließend das letzte Wort des IU-Kopfes aus dem ACW durch das erzeugte Datenprüfwort, wenn der IU-Kopf an den HBA gesendet wird. Sofern aktiviert prüft die Datenrouter-Hardware das Datenprüfwort im empfangenen HBA-IU-Kopf und meldet die Ergebnisse im „HPF-DR-Antwort”-Wort 254 auf Bit 22.
  • Die Firmware kann das ACW so einrichten, dass die Datenrouter-Hardware weniger als 8 Wärter an IU-Kopfinformationen überträgt. Sie tut dies, indem sie Zustand, Kopfdatenzählwert, „Nächster erwarteter 16-Megabyte-Offset” und den anfänglichen 16-Megabyte-Offset anpasst, die vom PCIe-HBA verwendet werden, sodass sich das letzte zu sendende oder zu empfangende IU-Kopfwort am 16-Megabyte-Offset von 28, 0×00001C, und sich das erste Byte der Nutzdaten (sofern zutreffend) an einem 16-Megabyte-Offset von 32, 0×000020, befindet. Der IU-Kopf besteht stets aus einer ganzen Zahl von Wörtern.
  • Bei einer Ausführungsform richtet die Firmware das ACW wie folgt ein, wenn bei einer IU kein IU-Kopf erforderlich ist:
    • 1. Setzt den IU-Kopfdatenzählwert des ACW auf null. ACW-Wort 6, Byte 0;
    • 2. Setzt den ACW-Zustand auf Zustand 2;
    • 3. Setzt das ACW-Umbruch-Bit auf eine Eins („HPF-DR-Antwort”-Wort, Bit 14), setzt in der dem HBA übergebenen Adresssteuerstruktur den anfänglichen 16-Megabyte-Offset auf 0×000000, und setzt den selben Wert im „Nächster erwarteter 16-Megabyte-Offset”-Feld im ACW;
    • 4. Setzt den ACW-Arbeitszählwert 256 auf den Wert des ACW-Startzählwertes 266;
    • 5. Setzt den ACW-Datenprüfwortzustand auf einen Wert von 0×00; und
    • 6. Setzt den „Speicherbereich für vorhergehendes Datenprüfwort” 276 und den Datenprüfwort-Speicherbereich 280 auf den Datenprüfwort-Anfangswert 286. Die Datenrouter-Hardware hat nun den Eindruck, dass der IU-Kopf der IU, dem dieses ACW zugewiesen ist, empfangen oder gesendet wurde.
  • Einige der Felder in den ACWs, die oben beschrieben wurden, werden durch den Kanalmikroprozessor auf der Grundlage von Informationen eingerichtet, die aus dem Empfang einer E/A-Anweisung abgeleitet wurden. Zu beispielhaften Feldern gehören das ACW-Zustandsfeld, das „Antwort-Wort”-Feld, das HPF-DR-Steuerfeld, das Host-Speicher- oder TIDA-Speicheradressfeld, der Kopfdatenzählwert, das „Nächster erwarteter 16-Megabyte-Offset”-Feld, das D-Feld, das Steuerfeld, das Gültigkeitsprüffeld, das TIDAL-Arbeitsbereichsadressfeld, das Datenprüfwort-Anfangswert-Feld und das IU-Kopfdatenfeld. Die anderen Felder im ACW sind Steuerfelder, die von der HPF-DR-Hardware bei der Ausführung von E/A-Operationen und nach Abschluss der E/A-Operation zur Anzeige der Beendigungsstatusinformationen gegenüber der Firmware verwendet werden.
  • Die 11 bis 14 veranschaulichen von der Firmware in ACWs gesetzte beispielhafte Werte, die im lokalen Kanalspeicher gespeichert und von der Datenrouter-Hardware verwendet werden. Unter Bezugnahme auf 11 werden die folgenden Einstellungen angewendet, um ein Transportbefehl-ACW 300 zu erzeugen, das vom HPF-DR verwendet wird, um eine Transportbefehl-IU aufzubauen:
    • 1) Im ACW-Zustandsfeld wird das ACW-gültig-Bit auf eine Eins gesetzt, und eine Zustandscodierung von 1 wird gesetzt;
    • 2) Das ACW-Umbruch-Feld wird auf eine Null gesetzt (wenn das „HPF-DR-Antwort”-Wort auf 0×000000 gesetzt ist);
    • 3) Im HPF-DR-Steuerwort werden die folgenden Werte gesetzt: Bit 0 (ACW-Richtung) wird auf eine Eins gesetzt. Daten werden aus dem Kanal gesendet; Bits 1 bis 2 (IU-Daten – Auswahl Datenprüfwort) werden auf eine ,00'b gesetzt, um anzuzeigen, dass LRC-Wörter verwendet werden; Bit 3 (IU-Daten – Aktivierung Datenprüfwort) wird auf eine Eins gesetzt; Bits 4 bis 5 (Auswahl der IU-Kopfdatenprüfwörter) werden nicht verwendet: Bit 16 (IU-Kopfdaten-Datenprüfwort unterdrücken) wird auf eine Eins gesetzt; Bit 17 (TIDAL umgehen) wird auf den invertierten Wert des TCCB-TIDAL-Merkerbits im TCW gesetzt; Bits 22 bis 23 (Speicherort des Nutzdaten-Datenprüfwortes) werden mit einem Codewert von ,10'b gesetzt;
    • 4) Der Schlüsselwert wird aus dem Teilkanal entnommen;
    • 5) Die Host-Speicheradresse wird aus dem TCW entnommen;
    • 6) Der IU-Kopfdatenzählwert wird bei einem Transportbefehl-ACW auf 0×0C gesetzt;
    • 7) Das „Nächster erwarteter 16-Megabyte-Offset”-Feld wird bei einem Transportbefehl-ACW auf 0×000014 gesetzt;
    • 8) Der Wert des Startzählwertfeldes wird aus dem TCW umgesetzt;
    • 9) Das „Firmware-Schreibvorgang abbrechen”-Bit (D) wird auf null gesetzt, wenn das ACW eingerichtet wird;
    • 10) Das Steuerfeld wird bei allen Transport-ACWs auf 0×02 gesetzt;
    • 11) Das Gültigkeitsprüffeld wird zum Zeitpunkt der Kanalinitialisierung bei diesem ACW auf einen eindeutigen Wert gesetzt;
    • 12) Die TIDAL-Arbeitsbereichsadresse wird zum Zeitpunkt der Kanalinitialisierung bei diesem ACW auf einen eindeutigen Wert gesetzt;
    • 13) Datenprüfwort-Anfangswert: Beim Transportbefehl-ACW nimmt die Firmware den ursprünglichen Transportbefehl-Anfangswert, berechnet einen neuen Anfangswert für die Datenrouter-Hardware aus der Dateneinrichtung des IU-Kopfes 101 in diesem ACW sowie aus den Schreib- und Leselängenfeldern, die aus dem TCW abgeleitet wurden; und
    • 14) IU-Kopf 101: Die 12 Bytes des IU-Kopfes 101 werden aus dem Teilkanal und dem TCW eingerichtet.
  • Unter Bezugnahme auf 12 wird vom Datenrouter ein Transportlesedaten-ACW 302 verwendet, um eine Transportdatenlesen-IU zu empfangen und einen Host-Speicherbefehl zu erzeugen, um Lesedaten in den Host-Speicher zu übertragen. Das Transport-Lese-ACW wird durch Anwendung der folgenden Einstellungen erzeugt:
    • 1) Im ACW-Zustandsfeld wird das ACW-gültig-Bit auf eine Eins gesetzt, und eine Zustandscodierung von 2 wird gesetzt;
    • 2) Das ACW-Umbruch-Feld wird auf eine Eins gesetzt (wenn das „HPF-DR-Antwort”-Feld auf 0×020000 gesetzt ist);
    • 3) Im HPF-DR-Steuerwort werden die folgenden Werte gesetzt: Bit 0 (ACW-Richtung) wird auf eine Null gesetzt. Daten werden im Kanal empfangen; Bits 1 bis 2 (IU-Daten – Auswahl Datenprüfwort) werden auf eine ,10'b gesetzt, um anzuzeigen, dass CRC-Wörter verwendet werden; Bit 3 (IU-Daten – Aktivierung Datenprüfwort) wird auf eine Eins gesetzt; Bits 4 bis 5 (Auswahl der IU-Kopfdatenprüfwörter) werden nicht verwendet: Das oben erwähnte AC-Umbruch-Bit wird gesetzt; Bit 16 (IU-Kopfdaten-Datenprüfwort) wird nicht verwendet. Das oben erwähnte AC-Umbruch-Bit wird gesetzt; Bit 17 (TIDAL umgehen) wird auf den invertierten Wert des TIDAL-Lese-Merkerbits im TCW gesetzt; Bits 22 bis 23 (Speicherort des Nutzdaten-Datenprüfwortes) werden mit einem Codewert von ,00'b gesetzt, da sie bei diesem ACW nicht verwendet werden;
    • 4) Der Schlüsselwert wird aus dem Teilkanal entnommen;
    • 5) Die Host-Speicheradresse wird aus dem TCW entnommen;
    • 6) Der ID-Kopfdatenzählwert wird bei einem Transportlesedaten-ACW auf 0×00 gesetzt;
    • 7) Das „Nächster erwarteter 16-Megabyte-Offset”-Feld wird bei einem Transportlesedaten-ACW auf 0×000000 gesetzt;
    • 8) Der Wert des Startzählwertfeldes wird aus dem Lesedatenzählwert im TCW entnommen;
    • 9) Das „Firmware-Schreibvorgang abbrechen”-Bit (D) wird auf null gesetzt, wenn das ACW eingerichtet wird;
    • 10) Das Steuerfeld wird bei allen Transport-ACWs auf 0×02 gesetzt;
    • 11) Das Gültigkeitsprüffeld wird zum Zeitpunkt der Kanalinitialisierung bei diesem ACW auf einen eindeutigen Wert gesetzt;
    • 12) Die TIDAL-Arbeitsbereichsadresse wird zum Zeitpunkt der Kanalinitialisierung bei diesem ACW auf einen eindeutigen Wert gesetzt; und
    • 13) Der Datenprüfwort-Anfangswert wird bei einem Transportlesedaten-ACW auf 0×FF FF FF FF gesetzt.
  • Unter Bezugnahme auf 13 wird vom Datenrouter ein Transportschreibdaten-ACW 304 verwendet, um eine Transportdaten-schreiben-IU zu erzeugen, um Schreibdaten zur Steuereinheit zu übertragen. Das Transport-Schreib-ACW wird durch Anwendung der folgenden Einstellungen erzeugt:
    • 1) Im ACW-Zustandsfeld wird das ACW-gültig-Bit auf eine Eins gesetzt, und eine Zustandscodierung von 2 wird gesetzt;
    • 2) Das ACW-Umbruch-Feld wird auf eine Eins gesetzt, wenn das „HPF-DR-Antwort”-Feld auf 0×020000 gesetzt ist;
    • 3) Im HPF-DR-Steuerwort werden die folgenden Werte gesetzt: Bit 0 (ACW-Richtung) wird auf eine Eins gesetzt. Daten werden zur Steuereinheit gesendet; Bits 1 bis 2 (IU-Daten – Auswahl Datenprüfwort) werden auf eine ,10'b gesetzt, um anzuzeigen, dass CRC-Wörter verwendet werden; Bit 3 (IU-Daten – Aktivierung Datenprüfwort) wird auf eine Eins gesetzt; Bits 4 bis 5 (Auswahl der IU-Kopfdatenprüfwörter) werden nicht verwendet. Das oben erwähnte AC-Umbruch-Bit wird gesetzt; Bit 16 (IU-Kopfdaten-Datenprüfwort unterdrücken) wird nicht verwendet. Das oben erwähnte AC-Umbruch-Bit wird gesetzt; Bit 17 (TIDAL umgehen) wird auf den invertierten Wert des TIDAL-Merkerbits im TCW gesetzt; Bits 22 bis 23 (Speicherort des Nutzdaten-Datenprüfwortes) werden mit einem Codewert von ,00'b gesetzt;
    • 4) Der Schlüsselwert wird aus dem Teilkanal entnommen;
    • 5) Die Host-Speicheradresse wird aus dem TCW entnommen;
    • 6) Der IU-Kopfdatenzählwert wird bei einem Transportschreibdaten-ACW auf 0×00 gesetzt;
    • 7) Das „Nächster erwarteter 16-Megabyte-Offset”-Feld wird bei einem Transportschreibdaten-ACW auf 0×000000 gesetzt;
    • 8) Der Wert des Startzählwertfeldes wird aus dem Schreibdatenzählwert im TCW entnommen;
    • 9) Das „Firmware-Schreibvorgang abbrechen”-Bit (D) wird auf null gesetzt, wenn das ACW eingerichtet wird;
    • 10) Das Steuerfeld wird bei allen Transport-ACWs auf 0×02 gesetzt;
    • 11) Das Gültigkeitsprüffeld wird zum Zeitpunkt der Kanalinitialisierung bei diesem ACW auf einen eindeutigen Wert gesetzt;
    • 12) Die TIDAL-Arbeitsbereichsadresse ist identisch mit dem Arbeitsbereich des Transportbefehl-ACW; und
    • 13) Der Datenprüfwort-Anfangswert wird bei einem Transportschreibdaten-ACW auf 0×FF FF FF FF gesetzt.
  • Unter Bezugnahme auf 14 wird vom Datenrouter ein Transportstatus-ACW 306 verwendet, um erweiterte Statusdaten aus der empfangenen Transportstatus-IU zu speichern und den Status an den Host-Speicher weiterzuleiten. Das Transportstatusblock-ACW wird durch Anwendung der folgenden Einstellungen erzeugt:
    • 1) Im ACW-Zustandsfeld wird das ACW-gültig-Bit auf eine Eins gesetzt, und eine Zustandscodierung von 0 wird gesetzt;
    • 2) Das ACW-Umbruch-Feld wird auf eine Null gesetzt, wenn das „HPF-DR-Antwort”-Feld auf 0×000000 gesetzt ist;
    • 3) Im HPF-DR-Steuerwort werden die folgenden Werte gesetzt: Bit 0 (ACW-Richtung) wird auf eine Null gesetzt. Daten werden von der Steuereinheit empfangen; Bits 1 bis 2 (IU-Daten – Auswahl Datenprüfwort) werden auf eine ,00'b gesetzt, um anzuzeigen, dass LRC-Wörter verwendet werden; Bit 3 (IU-Daten – Aktivierung Datenprüfwort) wird auf eine Eins gesetzt; Bits 4 bis 5 (Auswahl der IU-Kopfdatenprüfwörter) werden auf eine ,00'b gesetzt, um anzuzeigen, dass LRC-Wörter verwendet werden; Bit 16 (IU-Kopfdaten-Datenprüfwort unterdrücken) wird auf eine Null gesetzt, das IU-Kopfdaten-Datenprüfwort wird nicht unterdrückt; Bit 17 (TIDAL umgehen) wird auf eine Eins gesetzt, da die indirekte Adressierung nicht verwendet wird; Bits 22 bis 23 (Speicherort des Nutzdaten-Datenprüfwortes) werden mit einem Codewert von ,00'b gesetzt und bei diesem ACW nicht verwendet;
    • 4) Der Schlüsselwert wird bei diesem ACW auf 0×0 gesetzt;
    • 5) Die Host-Speicheradresse wird aus dem TCW entnommen;
    • 6) Der IU-Kopfdatenzählwert wird bei einem Transportstatus-ACW auf 0×20 gesetzt;
    • 7) Das „Nächster erwarteter 16-Megabyte-Offset”-Feld wird bei einem Transportstatus-ACW auf 0×000000 gesetzt;
    • 8) Der Wert des Startzählwertfeldes wird entsprechend der Fibre-Channel-Architektur auf 0×40 gesetzt;
    • 9) Das „Firmware-Schreibvorgang abbrechen”-Bit (D) wird auf null gesetzt, wenn das ACW eingerichtet wird;
    • 10) Des Steuerfeld wird bei allen Transport-ACWs auf 0×02 gesetzt;
    • 11) Das Gültigkeitsprüffeld wird zum Zeitpunkt der Kanalinitialisierung bei diesem ACW auf einen eindeutigen Wert gesetzt; und
    • 13) Der Datenprüfwort-Anfangswert wird bei einem Transportstatus-ACW auf 0×A5 5A A5 5A gesetzt.
  • Unter Bezugnahme auf 15 sind Beispiele des HBA-Adressteils verschiedener Arten von Adresssteuerstrukturen beschrieben. Bei diesen Beispielen ist, wenn das Steuerfeld 174 den Wert 0×02 enthält, der 16-Megabyte-Offset 180 der einzige Teil der HBA-Adresse 172, der bei den vom HBA zu einer E/A-Operation durchgeführten aufeinanderfolgenden HBA-Anforderungen erhöht wird. Die ersten 32 Datenbytes, die ein HBA bei einer zu sendenden oder zu empfangenden Informationseinheit (IU) anfordert, können IU-Kopfinformationen sein, die vom Ende des ACW-Steuerblocks abgerufen bzw. dorthin gespeichert wurden. Die Datenrouter-Hardware ruft diese Informationen bei 16-Megabyte-Offset-PCIe-Adressen, die von 0×000000 bis 0×00001F reichen, vom Ende des ACW ab bzw. speichert diese Informationen dort. Dadurch kann ein 32 Byte langer IU-Kopf an die Transportdaten-IU angehängt oder von dort entfernt werden, die an eine Einheit gesendet oder von der Einheit empfangen wird. Beim Umbruch des 16-Megabyte-Offsets nimmt der Offset wieder den Wert 0×000000 an, aber da es sich in diesem Fall um eine Umbruch-Bedingung handelt und das ACW-Umbruch-Bit im ACW auf eine Eins gesetzt ist, werden die empfangenen bzw. gesendeten Daten weiterhin im Host-Speicher gespeichert bzw. aus dem Host-Speicher abgerufen und nicht im ACW gespeichert bzw. aus dem ACW abgerufen. Die Firmware kann das ACW so einrichten, dass die IU-Kopfinformationen nicht aus dem ACW abgerufen bzw. im ACW gespeichert werden, wenn am Anfang einer IU keine IU-Kopfinformationen vorhanden sind. Das ACW-Umbruch-Bit ist das Bit 14 im „HPF-DR-Antwort-Wort”-Feld des ACW.
  • Bei einer Transportbefehl-Adresssteuerstruktur verursacht der aus dem TCW abgeleitete Bytezählwert keinesfalls einen Umbruch des 16-Megabyte-Offsetfeldes 180, daher wird lediglich eine Adresssteuerstruktur benötigt, damit die Datenrouter-Hardware und der HBA die Transportbefehl-IU senden. Die Richtung der Befehlsinformationseinheit verläuft stets vom kanalseitigen HBA zur Steuereinheit.
  • Bei einer an den HBA übergebenen Transportbefehl-Adresssteuerstruktur verursacht der Bytezählwert keinesfalls einen Umbruch des 16-Megabyte-Offsetfeldes, daher wird lediglich eine Adresssteuerstruktur benötigt, damit die Datenrouter-Hardware und der HBA die Transportstatus-IU empfangen. Die Richtung der Status-IU verläuft stets von der Steuereinheit zum kanalseitigen HBA.
  • Bei Transportlesedaten-Adresssteuerstrukturen wird die Gesamtmenge von Lesedaten, die von einer Einheit zum HBA übertragen werden sollen, durch einen Lesedatenzählwert im TCW bereitgestellt. Wenn der Lesedatenzählwert größer als 16 Megabyte ist, entspricht die Anzahl von Adresssteuerstrukturen, die an den HBA übergeben wird, um die Lesedaten zu übertragen, dem durch 223 geteilten Gesamt-Lesedatenzählwert, der bei einem auftretenden Rest aufgerundet wird. Jede an den HBA übergebene Daten-Adresssteuerstruktur hat dieselbe 64-Bit-PCIe-Adresse. Das Zählwertfeld in jeder Daten-Adresssteuerstruktur hat den Wert von 223, ausgenommen bei der letzten Daten-Adresssteuerstruktur, die die E/A-Datenübertragung abschließt. Dadurch entsteht für die Datenrouter-Hardware der Eindruck, dass das 223-Megabyte-Offset-Feld stets von 0×7FFFFF auf 0×000000 umgebrochen wird. Die Host-Speicheradresse ist entweder die stets zunehmende Host-Speicheradresse 262 aus dem ACW oder die Host-Speicheradresse aus jedem TIDAW einer TIDAL, die durch die Speicheradresse 262 adressiert wird.
  • Bei Transportschreibdaten-Adresssteuerstrukturen wird die Gesamtmenge von Schreibdaten, die vom HBA zu einer Einheit übertragen werden sollen, durch einen Schreibdatenzählwert aus dem TCW bereitgestellt. Die Anzahl von Adresssteuerstrukturen bei einer Transportschreibdaten-IU wird in derselben Weise wie bei den Adresssteuerstrukturen von Lesedaten berechnet.
  • Die im vorliegenden Dokument beschriebenen Systeme und Verfahren stellen Mechanismen bereit, mit denen vom Datenrouter 160 verarbeitete Daten auf Fehler geprüft werden können. Beispielsweise prüft der Datenrouter 160 eine Vielzahl von Referenzpunkten, sobald ein HBA 154 den Host-Speicher referenziert. Bei einem Beispiel prüft der Datenrouter 160, ob der Speicherort einer ACW-Adresse im ACW-Indexfeld 176 eines HBA-Adressfeldes 172 innerhalb des Speicherbereichs liegt, der vom ACW-Ursprungsregister 214 und dem ACW-Grenzwertregister 216 begrenzt wird.
  • Bei einem weiteren Beispiel prüft der Datenrouter 160, ob der HBA 154 bei einer HBA-Anforderung das korrekte ACW verwendet, indem er prüft, ob das Steuerfeld und das Gültigkeitsprüffeld im HBA-Adressfeld 172 mit dem Steuerfeld und dem Gültigkeitsprüffeld in dem ACW übereinstimmen, das durch die HBA-Anforderung referenziert wird. Bei Nichtübereinstimmung dieser Felder beendet der Kanal 128 die E/A-Operation mit einer Prüfung der Kanalsteuerung. Der Datenrouter 160 prüft außerdem, ob das Offset-Feld im Adressfeld 172 (z. B. die unteren 24 Bits der HBA-Adresse) gleich dem „Nächster erwarteter 16-Megabyte-Offset”-Feld im abgerufenen ACW ist.
  • Der Datenrouter 160 kann darüber hinaus Datenprüfwörter (z. B. LRC, CRC) erzeugen oder prüfen, mit deren Hilfe der Datenrouter 160 erkennen kann, ob übertragene Daten beschädigt sind.
  • Beispielsweise erzeugt der Datenrouter, während er Daten, z. B. ein TCCB 148 oder Ausgangsdaten, aus dem Host-Speicher erfasst, die an den HBA 154 gesendet werden sollen, ein Datenprüfwort 192, wobei er hierzu den Datenprüfwort-Anfangswert im Transportbefehl-ACW sowie die TCCB-Daten verwendet und das Datenprüfwort in die Transportbefehl-IU einfügt (z. B. zwei Wörter vom Ende der IU entfernt). Der Datenprüfwort-Anfangswert im Transportbefehl-ACW wurde mithilfe des Transportbefehl-IU-Kopfes und der Längenfelder durch die Firmware vorausberechnet. Dadurch gilt das Datenprüfwort für die gesamte Transportbefehl-IU, einschließlich der Längenfelder, die in der gesendeten IU auf das Datenprüfwort folgen.
  • Bei einer Ausführungsform wird das Datenprüfwort stets an einer Wortgrenze berechnet. Wenn der Bytezählwert der Anzahl von Datenbytes, für die das Datenprüfwort gilt, kein Vielfaches von 4 ist, sind Füllbytes zum Auffüllen bis zu einer Wortgrenze erforderlich, bevor das Datenprüfwort gesendet wird. Beim Senden an die Steuereinheit 118 sind die Füllbytes stets Nullen. Beim Empfangen aus dem Host-Speicher müssen alle Werte der Füllbytes akzeptiert werden. Die Füllbytes werden in die Berechnung des Datenprüfwortes einbezogen.
  • Der Datenrouter 160 erzeugt auch ein Datenprüfwort, das während der Übertragung über den Kanalpfad die gesamte Transportschreibdaten-IU prüft. Die Erzeugung dieses Datenprüfwortes beginnt mit dem Datenprüfwort-Anfangswert im Transport-Schreib-ACW, und während die Daten aus dem Host-Speicher abgerufen werden, wird mit den abgerufenen Daten ein neues Datenprüfwort berechnet. Wenn alle Daten abgerufen und gesendet wurden, wird das resultierende Datenprüfwort angehängt und mit Füllbytes an einer Wortgrenze ausgerichtet, sodass es die letzten 4 Datenbytes bildet, die an den HBA gesendet werden. Ein TIDAW-Wort kann ein auf eine Eins gesetztes Merkerbit zum Einfügen von Füllbytes und des Datenprüfwortes aufweisen, das die Datenrouter-Hardware veranlasst, ein zwischenzeitliches Datenprüfwort in die Transport-Schreibdaten-IU einzufügen. Die Steuereinheit vergleicht das empfangene Datenprüfwort bzw. die empfangenen Datenprüfwörter mit ihrem eigenen berechneten Datenprüfwort bzw. mit ihren eigenen berechneten Datenprüfwörtern, um zu überprüfen, ob die empfangene Daten-IU gültig ist. Bei Abrufen aus dem Host-Speicher wird das berechnete Datenprüfwort stets nach den Füllbytes an einer Wortgrenze eingefügt und gesendet, wenn der TIDAW-Zählwert auf null verringert wird und das TIDAW-Merkerbit zum Einfügen von Datenprüfwörtern auf eine Eins gesetzt ist.
  • Der Datenrouter 160 kann ferner ein Datenprüfwort erzeugen, das die Transportlesedaten-IU prüft, die über den Kanalpfad übertragen wurde. Die Berechnung des Datenprüfwortes beginnt mit dem Datenprüfwort-Anfangswert im Transport-Lese-ACW, und dann wird, während die Eingangsdaten im Host-Speicher gespeichert werden, mit den gelesenen Daten ein aktualisiertes Datenprüfwort berechnet. Wenn alle Daten empfangen und im Host-Speicher gespeichert wurden, wird das resultierende berechnete Datenprüfwort mit dem von der Einheit empfangenen Datenprüfwort verglichen. Durch den Vergleich des berechneten Datenprüfwortes mit dem empfangenen Datenprüfwort wird überprüft, ob die empfangene Daten-IU gültig ist. Wenn die zwei Felder nicht übereinstimmen, wird die E/A-Operation mit einer Prüfung der Schnittstellensteuerung beendet. Beispielsweise setzt die Datenrouter-Hardware das „Nichtübereinstimmung Datenprüfwort”-Bit 17 auf eine Eins, wenn nach dem Empfang einer Daten-IU das „Aktivierung Datenprüfwort”-Bit 3 auf eine Eins gesetzt ist und das erwartete Datenprüfwort nicht mit dem empfangenen Datenprüfwort übereinstimmt.
  • Bei einer Ausführungsform muss der Datenrouter 160, während er Daten von einer Einheit empfängt, Konflikte lösen, die bei der Ermittlung auftreten, wann das Datenprüfwort empfangen wurde. Beispielsweise wird ein Zählwerkvergleich durchgeführt, um zu überprüfen, ob es sich bei den 4 Bytes, die nach dem Übergang des ACW-Arbeitszählwertes auf null empfangen wurde, um des Datenprüfwort plus die Füllbytes handelt, sodass das Datenprüfwort an eine Wortgrenze gesetzt werden kann. Nach dem Empfang des Datenprüfwortes können keine weiteren Daten empfangen werden, anderenfalls wird Bit 11 des „HPF-DR-Antwort”-Wortes (Überlauf bei Arbeitszählwert) auf eine Eins gesetzt.
  • Bei einem weiteren Beispiel tritt ein Vorzeitiges-Ende-Zustand ein, wenn der ACW-Arbeitszählwert nicht zu dem Zeitpunkt auf null übergegangen ist, zu dem die Steuereinheit 118 die Transportstatus-IU sendet. In diesem Fall überprüft der Banal 128, wenn er durch den HBA 154 mit einem E/A-Abschluss unterbrochen wird, zuerst, ob das „Zählwert aktive Anforderungen = null”-Bit des entsprechenden ACW auf eine Eins gesetzt ist, und überprüft anschließend, ob das Datenprüfwort korrekt ist, indem er den „Speicherbereich für die letzten 4 Bytes” im ACW, bei dem es sich um das empfangene Datenprüfwort handelt, mit dem „Speicherbereich für vorhergehendes Datenprüfwort” im ACW vergleicht, der das berechnete Datenprüfwort zu den empfangenen Daten enthält.
  • Die Datenrouter-Hardware berechnet außerdem das Datenprüfwort, das die von der Verbindung empfangenen Transportstatus-IU-Daten prüft. Die Berechnung des Datenprüfwortes beginnt mit dem Datenprüfwort-Anfangswert im Transportstatus-ACW, und dann wird, während die Transportstatus-IU-Daten im Host-Speicher gespeichert werden, das neue Datenprüfwort berechnet. Wenn alle Daten der IU empfangen und im Host-Speicher gespeichert wurden, wird das resultierende berechnete Datenprüfwort mit dem von der Einheit empfangenen Datenprüfwort verglichen. Durch den Vergleich des berechneten Datenprüfwortes mit dem empfangenen Datenprüfwort wird überprüft, ob die empfangene Daten-IU gültig ist. Wenn die zwei Felder nicht übereinstimmen, wird die E/A-Operation mit einer Prüfung der Schnittstellensteuerung beendet.
  • Die Architektur der TIDAWs und deren T-TIC-Merkerbits lässt es zu, dass die Anzahl von zSeries-Speicheranforderungen, die nötig sind, um eine PCI-Express-Bus-Anforderung (PCIe-Anforderung) von 4 kB zu erfüllen, größer als 12.000 zSeries-Speicheranforderungen sein kann. Dies tritt ein, wenn das Bytezählwertfeld in jedem TIDAW und das T-TIC-Merkerbit jeweils auf eine Eins gesetzt waren, wodurch auf jedes TIDAW eine neue Transportübertragung im Kanalwort erfolgt, bei der es sich um die neue zSeries-Speicheradresse des neuen TIDAW handelt. Die Zeitdauer, die die Datenrouter-Hardware benötigt, um alle diese zSeries-Speicheranforderungen durchzuführen, kann größer als der Wert der Zeitüberschreitung sein, den der HBA bei einer HBA-Anforderung verwendet. Der resultierende Fehler würde wie eine zSeries-Speicher-Zeitüberschreitung aussehen, die anzeigt, dass das zSeries-Speicher-Teilsystem die zSeries-Speicheranforderung verloren hat.
  • Um einen Grenzwert für die Anzahl von Host-Speicheranforderungen zu setzen, die erforderlich sind, um eine HBA-Anforderung zu erfüllen, kann ein programmierbarer Anforderungsschwellenwert-Zähler in der Datenrouter-Hardware die Anzahl von Host-Speicheranforderungen begrenzen, die zur Erfüllung einer HBA-Anforderung verwendet werden. Wenn der Grenzwert erreicht ist, wird das „Speicheranforderungsschwellenwert überschritten”-Bit („HPF-DR-Antwort”-Wort, Bit 9) auf eine Eins gesetzt. Dieser Schwellenwertzähler wird bei der Initialisierung der Kanalhardware eingerichtet.
  • Wie oben beschrieben kann der HBA 154 Kundendaten direkt im Host-Speicher speichern bzw. von dort abrufen, um die Leistungsfähigkeit des Kanals zu verbessern. Der gesamte Datenaustausch zwischen der auf dem Mikroprozessor 130 ausgeführten Firmware und dem HBA 154 wird jedoch über den lokalen Kanalspeicher 132 durchgeführt. Der Mikroprozessor 130 übergibt die Arbeit an den HBA 154, indem er alle Informationen speichert, die der HBA 154 zur Verarbeitung einer E/A-Operation in einer HBA-Arbeitswarteschlange in der lokalen Kanalspeicherregion 164 benötigt. Ebenso gibt der HBA, wenn er eine E/A-Operation abgeschlossen hat oder die E/A-Operation fehlgeschlagen ist, die E/A-Operation mit dem Status in einer Firmware-E/A-Abschlusswarteschlange im lokalen Kanalspeicher 132 zurück an den Kanal.
  • Die folgenden Regeln in Bezug auf ACW-Dauer und ACW-Atomarität dienen dem ordnungsgemäßen Zusammenwirken von Firmware, HBA 154 und Datenrouter-Hardware bei der Verarbeitung der HBA-Host-Speicheranforderungen unter Verwendung von ACWs 210.
  • Während einer E/A-Operation ist die Kanal-Firmware bis zu dem Zeitpunkt Eigentümer der vier zu einer E/A-Operation angegebenen ACWs (d. h. des Transportbefehl-ACW, des Transport-Lese-ACW, des Schreibdaten-ACW und des Transportstatus-ACW), an dem die Firmware die E/A-Operation in die HBA-Arbeitswarteschlange einreiht. Der Datenrouter 160 und indirekt der HBA 154 sind Eigentümer der vier ACWs einer E/A-Operation ab dem Zeitpunkt, an dem die Kanal-Firmware die E/A-Operation in die HBA-Arbeitswarteschlange einreiht, und bis zu dem Zeitpunkt, an dem der HBA 154 die E/A-Operation (und die vier zugehörigen ACWs) mit dem Status in der Firmware-E/A-Abschlusswarteschlange an die Firmware zurückgibt. Bei E/A-Operationen, die erfolgreich abgeschlossen werden, gibt der HBA 154 die E/A-Operation in der Firmware-E/A-Abschlusswarteschlange an die Firmware zurück, nachdem der HBA 154 die Transportstatus-IU empfangen und verarbeitet hat, die die E/A-Operation beendet hat. Die Firmware aktualisiert während des Intervalls, in dem die Datenrouter-Hardware und der HBA 154 Eigentümer der vier ACWs sind, keine Felder in den vier ACWs, ausgenommen in seltenen Fällen (z. B. Setzen des „Firmware-Lesevorgang verwerfen”-Bits im ACW auf eine Eins).
  • Um ein ACW stillzusetzen, das der Steuerung des Datenrouters 160 unterliegt, um Daten an eine Einheit zu senden, verwendet die Firmware Abrufvorgang-stillsetzen-Hardware und Abrufvorgang-stillsetzen-Logik 310 (in 9 dargestellt). Um ein ACW stillzusetzen, das der Steuerung des Datenrouters 160 unterliegt, um Daten von einer Einheit zu empfangen, verwendet die Firmware das Firmware-Lesevorgang-verwerfen-Bit 252 und Speichervorgang-stillsetzen-Hardware und Speichervorgang-stilisetzen-Logik 312 (in 9 dargestellt).
  • Bei einer Ausführungsform werden Atomaritätsregeln bereitgestellt, sodass der IU-Kopf und alle Statusfelder im ACW bis zu dem Zeitpunkt aktualisiert worden sind, an dem die Firmware in der Firmware-E/A-Abschlusswarteschlange den Beendigungsstatus bei Abschluss vom HBA 154 empfängt, wodurch die Eigentümerschaft an den ACWs dieser E/A-Operation wieder an die Firmware zurückgegeben wird. Eine erste Regal legt fest, dass die Datenrouter-Hardware alle IU-Kopfinformationen im ACW gespeichert haben muss, bevor der Beendigungsstatus bei Abschluss empfangen wird oder der ACW-Zustand dieses ACW in den Zustand 2 geändert wird (d. h. ACW-IU-Kopfdatenbereich sicher). Das Firmware-Lesevorgang-verwerfen-Bit im ACW ist so gestaltet, dass es durch die Firmware auf eine Eins gesetzt werden kann, ohne dass dies die Datenrouter-Hardware bei der Arbeit mit beliebigen Feldern im selben ACW bzw. bei der Aktualisierung dieser Felder beeinträchtigt.
  • Eine zweite Regel legt fest, dass die Datenrouter-Hardware, wenn sie einen PCIe-„TLP-Abschluss (TLP = Transaction Layer Protocol) mit dem Abschlussstatus auf ,Beendiger-Abbruch' gesetzt” an einen HBA 154 sendet, gewährleisten muss, dass alle anstehenden Aktualisierungen des entsprechenden ACW abgeschlossen sind, bevor nachfolgende HBA-Anforderungen auf Speicherung im lokalen Kanalspeicher verarbeitet werden. Eine dritte Regel legt fest, dass, wenn zwei aufeinanderfolgende HBA-Anforderungen bei der Weiterleitungslogik 222 eintreffen und die erste Anforderung zur Speichermatrixwarteschlange 228 und die zweite Anforderung zum lokalen Kanalspeicher weitergeleitet werden, das „Zählwert aktive Anforderungen”- sowie das „Zählwert aktive Anforderungen – null”-Bit im ACW von der Datenrouter-Hardware aktualisiert werden müssen, bevor die zweite oder eine nachfolgende HBA-Anforderung in den lokalen Kanalspeicher weitergeleitet und dort gespeichert werden.
  • Es treten Situationen ein (z. B. bei Auftreten eines Fehlers), in denen die Firmware nicht warten kann, bis eine E/A-Operation abgeschlossen ist, sondern stattdessen verhindern muss, dass neue HBA-Datenabrufanforderungen aus dem Host-Speicher abgerufen werden, oder die Firmware verhindern muss, dass Daten aus HBA-Datenspeicheranforderungen im Host-Speicher gespeichert werden. Die „Globale Abrufvorgänge stillsetzen”-Hardware 310 bietet der Firmware ein Mittel zum Stillsetzen eines ACW, dessen Eigentümer die Datenrouter-Hardware ist, um Daten aktiv aus dem Host-Speicher abzurufen.
  • Um ein aktives ACW stillzusetzen, das zum Abrufen von Daten aus dem Host-Speicher eingerichtet ist, setzt die Firmware das ACW-Indexregister in der „Globale Abrufvorgänge stillsetzen”-Logik 310 mit dem Index des ACW, das die Firmware stoppen möchte. Nachdem die Firmware das ACW-Indexregister schreibt, führt die „Globale Abrufvorgänge stillsetzen”-Logik 310 die folgenden Operationen durch:
    • 1. Ein Stillsetzen-belegt-Bit in der „Globale Abrufvorgänge stillsetzen”-Logik wird auf eine Eins gesetzt, wodurch die Abrufhardware 230 keine neue HBA-Abrufanforderung oder HBA-Schreibanforderung aus der Abrufmatrixwarteschlange 226 mehr verarbeitet und die in der Warteschlange der Abrufhardware 230 vorhandenen Host-Speicherabrufanforderungen bzw. Host-Speicherschreibanforderungen nicht mehr zur Verarbeitungslogik 234 übertragen werden, um an den Host-Speicher gesendet zu werden. Jedoch sind die Host-Speicherabrufanforderungen, die bereits in der Warteschlange vorhanden und gegenwärtig in der Verarbeitungslogik 234 und in der Sendelogik 236 oder in der Empfangslogik 240 und in der Weiterleitungslogik 242 verarbeitet werden, nicht betroffen;
    • 2. Host-Speicheranforderungen in der Warteschlange der Abrufhardware 230 werden gestrichen, und alle Host-Abrufanforderungen mit dem Ziel-ACW-Index in der Abrufhardware 230 werden markiert, um einen TLP-Abschluss mit einem auf „Beendiger-Abbruch” gesetzten Abschlussstatus zu erzwingen, wenn die Host-Speicheranforderung später verarbeitet wird;
    • 3. Das Schreibvorgang-abbrechen-Bit, ACW-Zustand 250, Bit 3, wird im Ziel-ACW auf eine Eins gesetzt;
    • 4. Der eingefrorene Zustand der Datenrouter-Hardware wird dann beendet, und die in der Warteschlange der Abrufhardware 230 vorhandenen Host-Speicherabrufanforderungen sowie die in der Abrufmatrixwarteschlange 226 vorhandenen HBA-Abrufanforderungen werden nun verarbeitet; und
    • 5. Das Stillsetzen-belegt-Bit in der „Globale Abrufvorgänge stillsetzen”-Logik wird zurückgesetzt.
  • Nachdem die Firmware das ACW-Indexregister in der „Globale Abrufvorgänge stillsetzen”-Logik 310 setzt, überwacht die Firmware das Stillsetzen-belegt-Bit, um zu ermitteln, wann die „Globale Abrufvorgänge stillsetzen”-Logik 310 die Stillsetzen-Operation abgeschlossen hat. Sobald die Stillsetzen-Operation abgeschlossen ist, kann die Firmware davon ausgehen, dass Folgendes geschieht:
    • 1. Alle Host-Speicherabrufanforderungen in der Warteschlange der Abrufhardware 230 mit dem Index des Ziel-ACW erhalten einen TLP-Abschluss, bei dem der Abschlussstatus auf „Beendiger-Abbruch” gesetzt ist.
    • 2. Alle HBA-Anforderungen in der Abrufmatrixwarteschlange 226 bzw. alle neuen HBA-Anforderungen aus dem HBA des Ziel-ACW werden aufgrund der Tatsache, dass das Schreibvorgang-abbrechen-Bit, ACW-Zustand 250, Bit 3, in diesem ACW auf eine Eins gesetzt ist, mit einem TLP-Abschluss beantwortet, bei dem der Abschlussstatus auf „Beendigen-Abbruch” gesetzt ist.
  • Wenn der HBA 154 den TLP-Abschluss mit dem auf „Beendiger-Abbruch” gesetzten Abschlussstatus empfängt, sendet der HBA 154 einen Abbruch für die E/A-Operation an die Steuereinheit 118 und die Einheit 116. Wenn der HBA 154 eine Antwort von der Einheit 116 erhalten hat, die den Abbruchablauf abschließt, gibt der HBA 154 diese E/A-Operation über die Firmware-E/A-Abschlusswarteschlange im lokalen Kanalspeicher an die Firmware zurück.
  • Es können auch Situationen eintreten, in denen die Firmware alle neuen HBA-Datenspeicheranforderungen blockieren (stillsetzen) muss, sodass diese nicht für eine E/A-Operation im Host-Speicher gespeichert werden. Diese Funktion wird durch das Firmware-Lesevorgang-verwerfen-Bit bereitgestellt. Die Firmware setzt das Firmware-Lesevorgang-verwerfen-Bit 252 im ACW auf eins, sodass anschließend alle neuen und vorhandenen HBA-Anforderungen in der Speichermatrixwarteschlange 228 von der Speicherhardware 232 verworfen werden.
  • Außer der Tatsache, dass die Firmware den Datenrouter veranlassen kann, HBA-Speicheranforderungen im Zusammenhang mit einem ACW zu verwerfen, kann die Firmware auch ermitteln, wann alle vorhergehenden Host-Speicheranforderungen, die die Speicherhardware 232 bei einem ACW zum Speichern in den Host-Speicher vorgenommen hat, mit einer Host-Speicher-Abschlussantwort abgeschlossen wurden. Die Host-Speicher-Abschlussantworten werden von der Weiterleitungslogik 242 empfangen und an den Anforderer weitergeleitet, der die Anforderung gestellt hat, und anschließend in derselben Reihenfolge verarbeitet, in der die Anforderungen gestellt wurden, wozu auch das Verringern der Zähler in der „Globalen Speichervorgang stillsetzen”-Logik 312 gehört. Die „Globalen Speichervorgang stillsetzen”-Logik und „Globalen Speichervorgang stillsetzen”-Hardware 312 stellt das Mittel bereit, mit dessen Hilfe die Firmware ermitteln kann, wann alle vorhergehenden Host-Speicheranforderungen, die die Speicherhardware 232 zum Speichern in den Host-Speicher vorgenommen hat, abgeschlossen wurden.
  • Sobald das Lesevorgang-verwerfen-Bit in einem ACW auf eine Eins gesetzt ist, besteht eine Möglichkeit zur Feststellung, ob alle vorherigen Host-Speicher-Speicheranforderungen bei diesem ACW abgeschlossen wurden, darin, zu warten, bis alle aktuellen HBA-Speicheranforderungen in der Host-Speicherwarteschlange (dargestellt durch die Verarbeitungslogik 234, Sendelogik 236, Empfangslogik 240 und Weiterleitungslogik 242) verarbeitet wurden. Um dies zu erreichen, ohne dass neue Speicheranforderungen nicht mehr in die Speichermatrixwarteschlange eingereiht werden oder die Verarbeitung vorhandener Einträge in der Speichermatrixwarteschlange gestoppt wird, wird ein Speicherauszugszähler mit der aktuellen Gesamtzahl von Einträgen geladen, die in der Host-Speicherwarteschlange vorhanden sind. Dieser Speicherauszugszähler wird bei jeder empfangenen Host-Speicherantwort verringert. Sobald der Speicherauszugszähler den Wert null erreicht, weiß die Firmware, dass alle vorhergehenden Host-Speicher-Speicheranforderungen verarbeitet wurden, die im Zusammenhang mit dem infrage kommenden ACW an Speicherorten in den Speicherwarteschlangen abgelegt sind. Diese Funktion kann von der „Globalen Speichervorgang stillsetzen”-Hardware 312 durchgeführt werden, die aus den folgenden Zählern besteht:
    • 1. Ein „Globale aktive Anforderungen”-Zähler überwacht die Gesamtzahl von HBA-Speicheranforderungen aller in der Host-Speicherwarteschlange enthaltenen ACWs. Dieser Zähler wird immer dann erhöht, wenn die Datenrouter-Speicherhardware 232 eine HBA-Anforderung zum Speichern im Host-Speicher erzeugt, und der Zähler wird immer dann verringert, wenn die letzte Host-Speicher-Speicheranforderung, die an die HBA-Speicheranforderung abgeschlossen hat, Mithilfe der zurückgegebenen Host-Speicherantwort als abgeschlossen quittiert wurde, die von der Weiterleitungslogik 242 zur Steuerlogik des Datenrouters geleitet wurde. Bei einigen Ausführungsformen erfordert eine HBA-Speicheranforderung unter Umständen bis zu 16 Host-Speicher-Speicheranforderungen, bis alle Daten in der HBA-Speicheranforderung abgelegt sind.
    • 2. Ein „Globale aktive Speicherauszüge”-Zähler wird nur verringert und nie erhöht. Dieser Zähler wird, gesteuert von der Firmware, mit dem aktuellen Wert des „Globale aktive Anforderungen”-Zählers geladen. Dieser Zähler wird mit denselben Signalen verringert, die den „Globale aktive Anforderungen” Zähler verringern. Sobald dieser Zähler auf null verringert wird, bleibt er auf null, bis er wieder von der Firmware mit einer neuen Kopie des „Globale aktive Anforderungen”-Zählers geladen wird. Die Firmware kann den „Globale aktive Speicherauszüge”-Zähler lesen, um festzustellen, wann er auf null übergegangen ist.
  • Die Firmware kann den folgenden Ablauf verwenden, um ein ACW zu stoppen, das zuvor eingerichtet wurde, um Daten im Host-Speicher zu speichern, und die Firmware kann anschließend ermitteln, wann alle vorhergehenden Host-Speicheranforderungen zu diesem ACW abgeschlossen wurden:
    • 1. Die Firmware setzt das „Firmware-Lesevorgang verwerfen”-Bit in jedem der betroffenen ACWs auf eine Eins, das zum Speichern von Daten im Host-Speicher eingerichtet wurde;
    • 2. Die Firmware überträgt den „Globale aktive Anforderungen”-Zähler auf den „Globale aktive Speicherauszüge”-Zähler. Anschließend wird mit dem Abschluss jeder einzelnen Host-Speicher-Speicheranforderung der „Globale aktive Speicherauszüge”-Zähler verringert;
    • 3. Die Firmware fragt den „Globale aktive Speicherauszüge”-Zähler ab, bis er den Wert null hat. Nun sind alle Host-Speicher-Speicheranforderungen, die zu dem Zeitpunkt vorgenommen wurden, an dem die Firmware den „Globale aktive Anforderungen”-Zähler auf den „Globale aktive Speicherauszüge”-Zähler übertragen hat, im Zusammenhang mit den infrage kommenden ACWs abgeschlossen, bei denen das „Firmware-Lesevorgang verwerfen”-Bit auf eine Eins gesetzt war. Die Datenrouter-Hardware nimmt keine weiteren Host-Speicher-Speicheranforderungen im Zusammenhang mit diesen ACWs vor.
  • In einigen Fällen kann die Datenrouter-Hardware Daten vom HBA in einer anderen Reihenfolge als der Reihenfolge empfangen, in der die Daten vom Gerät gesendet wurden. Dies führt zu einem Problem, da einige Arten von Datenprüfwort-Berechnungen bei Empfangsdaten in derselben Datenreihenfolge berechnet werden müssen, in der das Datenwort ursprünglich erzeugt wurde, als die Daten gesendet wurden. Die Datenrouter-Hardware erkennt diesen Zustand mithilfe des „Nächster erwarteter 16-Megabyte-Offset”-Feldes. Bei der Verarbeitung jeder HBA-Abrufanforderung bzw. HBA-Speicheranforderung prüft die Datenrouter-Hardware den 16-Megabyte-Offset des PCIe in der HBA-Anforderung gegen das „Nächster erwarteter 16-Megabyte-Offset”-Feld im ACW. Bei einer Übereinstimmung der Felder erhöht die Datenrouter-Hardware das „Nächster erwarteter 16-Megabyte-Offset”-Feld um die Größe der HBA-Transaktion, überträgt die Daten zum bzw. aus dem Host-Speicher und verarbeitet das Datenprüfwort. Wenn die Felder nicht übereinstimmen und die HBA-Adresse größer als die erwartete HBA-Adresse ist, wurde die aktuelle HBA-Transaktion von der Datenrouter-Hardware außer der Reihe empfangen, und die Datenrouter-Hardware reiht diese HBA-Anforderung wieder am Ende der Speicher- oder Abrufmatrixwarteschlange ein.
  • Beim ersten erneuten Einreihen einer HBA-Anforderung am Ende einer Warteschlange wird ein Zeitstempel in die Steuerdaten für diese HBA-Anforderung geschrieben. Diese Steuerdaten dienen zur Überwachung der HBA-Anforderung in der Warteschlange. Jedes Mal, wenn dieser Datenblock zur erneuten Verarbeitung bis an den Anfang der Warteschlange gelangt und wieder in die Warteschlange eingereiht werden muss, da die HBA-Anforderung mit einem passenden 16-Megabyte-Offset-Feld nicht empfangen wurde, wird der Zeitstempel geprüft. Wenn der Zeitstempel eine konfigurierbare „Lebensdauer” (d. h. Dauer einer Überschreitung) überschritten hat, gelten der bzw. die vorherigen Datenblöcke, auf die diese HBA-Anforderung gewartet hat, als verloren gegangen. Wenn festgestellt wird, dass Datenblöcke verloren gegangen sind, wird das „Fehlende HBA-Anforderung”-Bit des ACW („HPF-DR-Antwort”-Wort, Bit 8) auf eine Eins gesetzt.
  • Außer der Reihe auftretende HBA-Anforderungen auf Host-Speichervorgänge können wie folgt verarbeitet werden. Sobald das „Fehlende HBA-Anforderung”-Bit des ACW auf eine Eins gesetzt ist, werden die Nutzdaten dieser HBA-Anforderung verworfen, und das Lesevorgang-verwerfen-Bit 252 wird ebenfalls auf eine Eins gesetzt. Dadurch wird gewährleistet, dass alle zu diesem ACW gehörenden nachfolgenden HBA-Anforderungen mit Daten, die im Host-Speicher zu speichern sind, verwerfen werden. Alle IU-Kopfinformationen werden jedoch, sofern vorhanden, stets im ACW gespeichert und nie verworfen.
  • Da jede HBA-Anforderung verworfen wird, wird der Aktive-Anforderungen-Zähler 290 im ACW genau wie bei der normalen Verarbeitung der HBA-Anforderung verringert. Bei verworfenen HBA-Anforderungen wird der 16-Megabyte-Offset nicht geprüft. Nachdem die Firmware vom HBA den Abschluss-Interrupt zu dieser F/A-Operation empfängt, führt die Firmware eine Prüfung durch, um festzustellen, ob der Aktive-Anforderungen-Zählwert 290 dieses ACW auf null übergegangen ist. Wenn der Aktive-Anforderungen-Zählwert auf null übergegangen ist, wurden alle HBA-Anforderungen in der Speichermatrixwarteschlange dieses ACW verarbeitet.
  • In den Fällen, in denen der 16-Megabyte-Offset 180 in der empfangenen HBA-Anforderung auf Speicherung von Daten im Host-Speicher kleiner als der nächste erwartete 16-Megabyte-Offset 264 ist, wird diese Anforderung verworfen, da die Daten zu dieser Anforderung bereits zuvor im Host-Speicher gespeichert wurden. Das Datenprüfwort löst einen Fehler aus, wenn die vorherigen im Host-Speicher gespeicherten Daten nicht korrekt sind, da die zuvor gespeicherten Daten zur Berechnung des aktuellen Wertes des Datenprüfwortes im ACW verwendet wurden.
  • Außer der Reihe auftretende HBA-Anforderungen auf Host-Abrufvorgänge können wie folgt verarbeitet werden. Sobald das „Fehlende HBA-Anforderung”-Bit in einem ACW auf eine Eins gesetzt und die „Lebensdauer” während der Wartezeit auf die fehlende HBA-Abrufanforderung abgelaufen ist, antwortet die Datenrouter-Hardware mit einem TLP-Abschluss mit dem auf „Beendiger-Abbruch” gesetzten Abschlussstatus und setzt das Schreibvorgang-abbrechen-Bit 252 in diesem ACW auf eine Eins, um zu gewährleisten, dass alle nachfolgenden HBA-Anforderungen, die zu diesem ACW empfangen werden, mit einem TLP-Abschluss mit dem auf „Beendiger-Abbruch” gesetzten Abschlussstatus beantwortet werden.
  • In den Fällen, in denen die Adresse in der empfangenen HBA-Anforderung auf den Abruf von Daten aus dem Host-Speicher kleiner als der nächste erwartete Offset ist, beantwortet die Datenrouter-Hardware die Anforderung mit einem TLP-Abschluss mit dem auf „Beendiger-Abbruch” gesetzten Abschlussstatus Zu den technischen Auswirkungen und Nutzeffekten beispielhafter Ausführungsformen gehört die Fähigkeit einer Netzwerkschnittstelle, über einen Kanal direkt auf einen Host-Speicher zuzugreifen, wobei im Kanal Kopfinformationen gespeichert und eine Fehlerprüfung durchgeführt werden können, ohne dass Eingangs- oder Ausgangsdaten auf dem Kanal gespeichert werden müssen. Durch die direkte Adressierung des Host-Speichers ermöglichen die im vorliegenden Dokument beschriebenen Systeme und Verfahren die Installation sehr leistungsfähiger HBAs (die z. B. Verbindungsgeschwindigkeiten von acht Gigabit und darüber unterstützen), ohne dass das Speicher- und Weiterleitungsmodell umgestaltet werden muss, sodass Mikroprozessorgeschwindigkeiten und Bandbreiten des lokalen Kanalspeichers bereitgestellt werden können, die derartige Hochleistungs-HBAs unterstützen. Außerdem bieten sie die notwendige Trennung zur Fehlerprüfung eines gegenwärtig bereitgestellten defekten HBA. Darüber hinaus ermöglichen die im vorliegenden Dokument beschriebenen Systems und Verfahren die Verwendung von HBAs, die nur mit einem Adressraum zur Adressierung mehrerer Adressräume in einem Host-Speicher konfiguriert sind.
  • Mit diesem Verfahren, mit dessen Hilfe der HBA den Host-Speicher direkt adressiert, müssen die Anforderungen des lokalen Kanalspeichers an die Mikroprozessorleistung und die Bandbreite nicht geändert werden, um erhöhten Leistungsanforderungen neuer HBAs gerecht zu werden.
  • Zu weiteren technischen Auswirkungen gehören die Bereitstellung eines Mittels, mit dem ein angeschlossener HBA die Fähigkeit erhält, beliebige Adressen in beliebigen Zonen im Host-Speicher sowie einen Bereich im lokalen Kanalspeicher zu adressieren, die Bereitstellung eines Mittels, um eine entsprechende Trennung eines HBA vom zSeries-Host bei der gegenwärtigen Kanalrealisierung zu erzielen, die Bereitstellung eines Mittels, mit dessen Hilfe der Kanal Informationseinheiten-Kopfinformationen (IU-Kopfinformationen) in eine ausgehende IU lokal im Kanal einfügen und IU-Kopfinformationen lokal im Kanal aus einer eingehenden IU entfernen und speichern kann, während der Datenrouter die Daten der IU aus dem Host-Speicher abruft bzw. im Host-Speicher speichert, die Bereitstellung eines Mittels zur Gültigkeitsprüfung des Datenprüfwortes bei eingehenden Daten und zum Erzeugen und Einfügen von zwischenzeitlichen Datenprüfwörtern bei den ausgehenden Daten unter der Steuerung einer TIDAL sowie am Ende von ausgehenden Daten, während der Datenrouter Daten im Host-Speicher speichert oder aus dem Host-Speicher abruft, die Bereitstellung eines Mittels zur Neuanordnung von Anforderungen, die von einem HBA empfangen wurden, wenn HBA-Anforderungen nicht in der korrekten logischen Datenblockreihenfolge vom HBA empfangen werden, und zur Erkennung, ob eine HBA-Anforderung oder ein Datenblock verloren gegangen ist, die Bereitstellung eines Mittels zur kontrollierten Beendigung einer E/A-Operation aus einer Vielzahl von E/A-Operationen, mit denen der Datenrouter möglicherweise arbeitet, ohne eine der anderen aktiven E/A-Operationen zu stören, und die Bereitstellung eines Mittels zur Erkennung, ob eine unrealistische Liste indirekter Transportdatenadressen (aber mit gültiger Architektur) verwendet wird, die die Verarbeitung einer übermäßig großen Zahl von Host-Speicheranforderungen erfordert und dadurch verhindert, dass die Host-Speicheranforderung rechtzeitig verarbeitet wird.
  • Die im vorliegenden Dokument verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung der Erfindung gedacht. Die im vorliegenden Dokument verwendeten Einzahlformen „ein/eine” und „der/die/das” schließen auch die Pluralformen ein, sofern dies im Kontext nicht ausdrücklich anderweitig angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „umfasst” bzw. „umfassen” bei Verwendung in der vorliegenden Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Abläufe, Operationen, Elements und/oder Komponenten bezeichnen, aber das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Abläufe, Operationen, Element-Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritte plus Funktionselemente (Step-Plus-Function-Elemente) in den folgenden Ansprüchen schließen alle Strukturen, Materialien oder Aktionen zur Durchführung der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen ein. Die Beschreibung der vorliegenden Erfindung dient der Veranschaulichung und Beschreibung, ist jedoch nicht als erschöpfend oder einschränkend in Bezug auf die Erfindung in der beschriebenen Form gedacht. Für den Fachmann sind viele Abänderungen und Variationen denkbar, ohne dass dies eine Abweichung vom Geltungsbereich und Geist der Erfindung darstellt. Die Ausführungsform wurde ausgewählt und beschrieben, um die Prinzipien und praktische Anwendung der Erfindung auf bestmögliche Weise zu erklären und anderen Fachleuten das Verständnis für verschiedene Ausführungsformen mit verschiedenen Abänderungen für die betreffende betrachtete Verwendung zu ermöglichen Dem Fachmann ist klar, dass Aspekte der vorliegenden Erfindung in Form eines Systems, Verfahrens oder Computerprogrammprodukts verkörpert sein können. Demzufolge können Aspekte der vorliegenden Erfindung die Form einer vollständig in Hardware realisierten Ausführungsform, einer vollständig in Software realisierten Ausführungsform (darunter Firmware, residente Software, Mikrocode usw.) oder einer Ausführungsform annehmen, in der Software- und Hardwareaspekte kombiniert sind, die im vorliegenden Dokument allgemein als „Schaltung”, „Modul” oder „System” bezeichnet werden. Ferner können Aspekte der vorliegenden Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Medien verkörpert ist, auf denen computerlesbarer Programmcode verkörpert ist.
  • Es können beliebige Kombinationen eines oder mehrerer computerlesbarer Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Zu computerlesbaren Speichermedien können beispielsweise und ohne Beschränkung auf die folgende Aufzählung ein elektronisches, magnetisches, optisches oder elektromagnetisches System bzw. ein Infrarot- oder Halbleitersystem bzw. eine derartige Vorrichtung oder Einheit oder beliebige Kombinationen des Vorstehenden gehören. Zu den detaillierteren Beispielen (eine nicht erschöpfende Liste) computerlesbarer Speichermedien zählen unter anderem folgende: elektrische Verbindung mit einer oder mehreren Leitungen, Computerdiskette, Festplatte, Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), Lichtwellenleiter, Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), optische Speichereinheit, magnetische Speichereinheit oder beliebige geeignete Kombinationen des Vorstehenden. Im Kontext des vorliegenden Dokuments kann ein computerlesbares Speichermedium jedes beliebige vergegenständlichte Medium sein, das ein Programm enthalten oder speichern kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Ein computerlesbares Signalmedium kann unter anderem ein im Basisband oder als Teil einer Trägerwelle übertragenes Datensignal mit darin verkörpertem computerlesbarem Programm sein. Ein derartiges übertragenes Signal kann eine beliebige Vielfalt von Formen annehmen, darunter und ohne Beschränkung auf die Aufzählung eine elektromagnetische oder optische Form oder beliebige geeignete Kombinationen davon. Ein computerlesbares Signalmedium kann ein beliebiges computerlesbares Medium sein, bei dem es sich nicht um ein computerlesbares Speichermedium handelt und das ein Programm übertragen, senden oder transportieren kann, das von oder in Verbindung mit einem System, einer Vorrichtung oder einer Einheit zur Befehlsausführung genutzt werden kann.
  • Auf einem computerlesbaren Medium verkörperter Programmcode kann unter Verwendung jedes beliebigen geeigneten Mediums, darunter und ohne Beschränkung auf die Aufzählung, drahtlose oder drahtgebundene Medien, Lichtwellenleiter, HF usw., oder unter Verwendung beliebiger geeigneter Kombinationen des Vorstehenden übertragen werden.
  • Computerprogrammcode zur Ausführung von Operationen für Aspekte der vorliegenden Erfindung kann in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen, darunter in einer objektorientierten Programmiersprache wie Java, Smalltalk, C++ oder Ähnlichem und in herkömmlichen prozeduralen Programmiersprachen wie „C” oder ähnlichen Programmiersprachen geschrieben sein. Der Programmcode kann vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernten Computer oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (beispielsweise über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)).
  • Nachstehend sind Aspekte der vorliegenden Erfindung unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplänen und/oder Blockschaltbildern durch Computerprogrammanweisungen realisiert werden kann bzw. können. Diese Computerprogrammanweisungen können einem Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder anderer programmierbarer Datenverarbeitungsvorrichtungen, die eine Maschine darstellen, bereitgestellt werden, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen zu realisieren.
  • Diese Computerprogrammanweisungen können ebenfalls in einem computerlesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass die im computerlesbaren Medium gespeicherten Anweisungen ein Produkt erzeugen, das die Anweisungen enthält, die die in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebene Funktion/Aktion realisieren.
  • Diese Computerprogrammanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Arbeitsschritten ausgeführt werden, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer oder auf anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse zur Realisierung der in einem Block bzw. in den Blöcken des Ablaufplans und/oder des Blockschaltbildes angegebenen Funktionen/Aktionen bereitstellen.
  • Die im vorliegenden Dokument dargestellten Ablaufpläne bilden lediglich ein Beispiel. Es sind viele Abweichungen von diesem Ablaufplan oder den Schritten (oder Operationen) möglich, die im vorliegenden Dokument beschrieben sind, ohne vom Geist der Erfindung abzuweichen. Beispielsweise können die Schritte in einer anderen Reihenfolge ausgeführt werden, oder es können Schritte hinzugefügt, gelöscht oder abgeändert werden. Alle diese Abweichungen gelten als Teil der beanspruchten Erfindung.
  • Obwohl die bevorzugte Ausführungsform der Erfindung beschrieben wurde, versteht es sich, dass der Fachmann jetzt oder in Zukunft verschiedene Verbesserungen und Erweiterungen vornehmen kann, die in den Geltungsbereich der folgenden Ansprüche fallen. Diese Ansprüche sind im Sinne der Aufrechterhaltung des ordnungsgemäßen Schutzes der hier erstmals beschriebenen Erfindung auszulegen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • ANSI-Norm „Fibre Channel – Single-Byte Command Code Sets Mapping Protocol – 4 (FC-SB-4)”, T11 Project 2122-D, Revision 3.00, 22. September 2000 [0055]
    • „Fibre Channel: Single-Byte Command Code Sets Mapping Protocol – 4 (FC-SB-4)”, T11 Project 2122-D, Revision 3.00, 22. September 2000 [0062]
    • „IBM® z/Architecture Principles of Operation”, Publikation Nr. SA22-7832-8, 9. Ausgabe, August 2010 [0069]

Claims (15)

  1. Computerprogrammprodukt zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist, wobei das Computerprogrammprodukt Folgendes umfasst: ein materielles Speichermedium, das von einer Verarbeitungsschaltung gelesen werden kann und auf dem Speicheranweisungen zur Ausführung durch die Verarbeitungsschaltung gespeichert sind, um ein Verfahren durchzuführen, das Folgendes umfasst: Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher enthält; Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld enthält, das eine relative Anordnung einer erwarteten Datenübertragungsanforderung angibt; Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle; als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält; im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  2. Computerprogrammprodukt nach Anspruch 1, bei dem das Weiterleiten der Datenübertragungsanforderung das Erhöhen des Wertes des Erwarteter-Offset-Feldes um einen Betrag beinhaltet, der einer Größe der Datenübertragungsanforderung entspricht.
  3. Computerprogrammprodukt nach Anspruch 1, bei dem das Empfangen der Datenübertragungsanforderung das Weiterleiten der Datenübertragungsanforderung an die Anforderungswarteschlange beinhaltet, die mindestens eine Abrufmatrixwarteschlange enthält, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Ausgangsdatenanforderungen in Bezug auf Ausgangsdaten im Host-Speicher aufnimmt, sowie eine Speichermatrixwarteschlange, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Eingangsdatenanforderungen auf Speicherung von Eingangsdaten im Host-Speicher aufnimmt.
  4. Computerprogrammprodukt nach Anspruch 3, bei dem das Empfangen der Datenübertragungsanforderung das Empfangen jeder einzelnen der Vielzahl von aufeinanderfolgenden Datenübertragungsanforderungen und das Speichern jeder einzelnen der Vielzahl von Datenübertragungsanforderungen in der Anforderungswarteschlange in der Reihenfolge des Empfangs und das Verarbeiten jeder einzelnen der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange in der Reihenfolge des Empfangs beinhaltet.
  5. Computerprogrammprodukt nach Anspruch 4, bei dem das Verfahren ferner als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld der Datenübertragungsanforderung übereinstimmt, das Wiedereinreihen der Datenübertragungsanforderung an einem Ende der Anforderungswarteschlange umfasst.
  6. Computerprogrammprodukt nach Anspruch 5, bei dem das Verfahren ferner Folgendes umfasst: Verarbeiten einer oder mehrerer der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange der Reihe nach, bis die Datenübertragungsanforderung den Anfang der Anforderungswarteschlange erreicht; Vergleichen des Erwarteter-Offset-Feldes mit dem Offset-Feld der Datenübertragungsanforderung; und als Reaktion darauf, dass das Erwarteter-Offset-Feld mit dem Offset-Feld übereinstimmt, das Zugreifen auf das mindestens eine ACW durch den Datenrouter und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist; als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld übereinstimmt, das Verwerfen der entsprechenden Datenübertragungsanforderungen und aller anderen nachfolgenden Datenübertragungsanforderungen in der Vielzahl von Anforderungen.
  7. Computerprogrammprodukt nach Anspruch 5, bei dem das Verfahren ferner Folgendes umfasst: Setzen eines Zeitstempels und Schreiben des Zeitstempels in die Datenübertragungsanforderung vor dem Wiedereinreihen der Datenübertragungsanforderung, wobei eine der folgenden Aktionen durchgeführt wird, nachdem die Datenübertragungsanforderung den Anfang der Anforderungswarteschlange erreicht hat und das Erwarteter-Offset-Feld nicht mit dem Offset-Feld übereinstimmt: als Reaktion darauf, dass der Zeitstempel einen gewählten Zeitüberschreitungswert überschreitet, das Verwerfen der Datenübertragungsanforderung und aller anderen nachfolgenden Datenübertragungsanforderungen in der Vielzahl von Anforderungen; und als Reaktion darauf, dass der Zeitstempel einen gewählten Zeitüberschreitungswert nicht überschreitet, das Wiedereinreihen der Datenübertragungsanforderung am Ende der Anforderungswarteschlange.
  8. Computerprogrammprodukt nach Anspruch 1, bei dem die E/A-Operation eine Transportmodusoperation ist und das Erhalten von Informationen das Erhalten eines TCW (TCW = Transport Command Word, Transportbefehlswort) im Kanal-Teilsystem beinhaltet, das TCW ein TCCB-Adressfeld (TCCB Transport Command Control Word, Transportbefehlsteuerblock) mit einer Adresse eines TCCB enthält, wobei der TCCB eine Vielzahl von DCWs (DCW = Device Command Word, Einheitenbefehlswort) enthält, die jeweils einen E/A-Befehl enthalten.
  9. Computerprogrammprodukt nach Anspruch 1, bei dem die Netzwerkschnittstelle ein Host-Bus-Adapter (HBA) ist.
  10. Verfahren zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist, wobei das Verfahren Folgendes umfasst: Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher enthält; Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld enthält, das eine relative Reihenfolge einer erwarteten Datenübertragungsanforderung angibt; Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle; als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält; im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
  11. Verfahren nach Anspruch 10, bei dem das Weiterleiten der Datenübertragungsanforderung das Erhöhen des Wertes des Erwarteter-Offset-Feldes um einen Betrag beinhaltet, der einer Größe der Datenübertragungsanforderung entspricht.
  12. Verfahren nach Anspruch 10, bei dem das Empfangen der Datenübertragungsanforderung das Weiterleiten der Datenübertragungsanforderung an die Anforderungswarteschlange beinhaltet, die mindestens eine Abrufmatrixwarteschlange enthält, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Ausgangsdatenanforderungen in Bezug auf Ausgangsdaten im Host-Speicher aufnimmt, sowie eine Speichermatrixwarteschlange, die so konfiguriert ist, dass sie zwei oder mehrere aufeinanderfolgende Eingangsdatenanforderungen auf Speicherung von Eingangsdaten im Host-Speicher aufnimmt.
  13. Verfahren nach Anspruch 12, bei dem das Empfangen der Datenübertragungsanforderung das Empfangen jeder einzelnen der Vielzahl von aufeinanderfolgenden Datenübertragungsanforderungen und das Speichern jeder einzelnen der Vielzahl von Datenübertragungsanforderungen in der Anforderungswarteschlange in der Reihenfolge des Empfangs und das Verarbeiten jeder einzelnen der Vielzahl von Datenübertragungsanforderungen aus der Anforderungswarteschlange in der Reihenfolge des Empfangs beinhaltet.
  14. Verfahren nach Anspruch 13, das ferner als Reaktion darauf, dass das Erwarteter-Offset-Feld nicht mit dem Offset-Feld der Datenübertragungsanforderung übereinstimmt, das Wiedereinreihen der Datenübertragungsanforderung an einem Ende der Anforderungswarteschlange umfasst.
  15. Vorrichtung zum Durchführen einer Eingangs-/Ausgangsverarbeitungsoperation (E/A-Verarbeitungsoperation) auf einem Host-Computersystem, das für den Datenaustausch mit einer Steuereinheit konfiguriert ist, wobei das Host-Computersystem ein Kanal-Teilsystem enthält, das Kanal-Teilsystem konfiguriert ist, um mit der Steuereinheit über eine Netzwerkschnittstelle Daten auszutauschen, und wobei das Kanal-Teilsystem konfiguriert ist, Folgendes durchzuführen: Erhalten von Informationen bezüglich einer E/A-Operation in einem Kanal-Teilsystem im Host-Computersystem, wobei das Kanal-Teilsystem mindestens einen Kanal mit einem Kanalprozessor und einem lokalen Kanalspeicher enthält; Erzeugen einer Adresssteuerstruktur für jede einzelne der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen, die durch die E/A-Operation vorgegeben ist, und Weiterleiten jeder einzelnen Adresssteuerstruktur von mindestens einem Kanal zu einer Netzwerkschnittstelle zwischen dem Kanal-Teilsystem und mindestens einer E/A-Einheit, wobei jede einzelne Adresssteuerstruktur einen Speicherort im lokalen Kanalspeicher eines entsprechenden Adresssteuerwortes (Address Control Word, ACW) angibt, jede einzelne Adresssteuerstruktur ein Offset-Feld enthält, das eine relative Anordnung einer entsprechenden Datenübertragungsanforderung im Verhältnis zu anderen Datenübertragungen in der Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; Erzeugen mindestens eines ACW, das einen oder mehrere Host-Speicherplätze für die Vielzahl aufeinanderfolgender Datenübertragungsanforderungen angibt; und Speichern des mindestens einen ACW im lokalen Kanalspeicher, wobei das mindestens eine ACW ein Erwarteter-Offset-Feld enthält, das eine relative Reihenfolge einer erwarteten Datenübertragungsanforderung angibt; Weiterleiten einer E/A-Befehlsnachricht zu der mindestens einen E/A-Einheit über die Netzwerkschnittstelle; als Reaktion auf die E/A-Befehlsnachricht das Empfangen einer Datenübertragungsanforderung von der Netzwerkschnittstelle, die die durch eine entsprechende Adresssteuerstruktur angegebenen Adressierungsinformationen enthält; im Kanal das Vergleichen des Offset-Feldes mit dem Erwarteter-Offset-Feld durch einen Datenrouter, um zu ermitteln, ob die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde; und als Reaktion auf die Feststellung, dass die Datenübertragungsanforderung in der korrekten Reihenfolge empfangen wurde, durch den Datenrouter das Zugreifen auf das mindestens eine ACW und Weiterleiten der Datenübertragungsanforderung an den Speicherort des Host-Speichers, der in dem mindestens einen ACW angegeben ist.
DE102012209014A 2011-06-01 2012-05-29 System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten Active DE102012209014B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/150,555 US8364854B2 (en) 2011-06-01 2011-06-01 Fibre channel input/output data routing system and method
US13/150,555 2011-06-01

Publications (2)

Publication Number Publication Date
DE102012209014A1 true DE102012209014A1 (de) 2012-12-06
DE102012209014B4 DE102012209014B4 (de) 2013-12-19

Family

ID=46209144

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012209014A Active DE102012209014B4 (de) 2011-06-01 2012-05-29 System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten

Country Status (4)

Country Link
US (2) US8364854B2 (de)
CN (1) CN102819505B (de)
DE (1) DE102012209014B4 (de)
GB (1) GB2491439B (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8364854B2 (en) * 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
WO2018038703A1 (en) * 2016-08-22 2018-03-01 Hewlett-Packard Development Company, L.P. Connected devices information
KR102527925B1 (ko) * 2017-11-29 2023-05-03 에스케이하이닉스 주식회사 메모리 시스템 및 그것의 동작 방법
CN113111017A (zh) * 2021-03-24 2021-07-13 联想(北京)有限公司 一种信息处理方法和电子设备

Family Cites Families (236)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1264096A (de) 1970-06-27 1972-02-16
US3693161A (en) 1970-07-09 1972-09-19 Burroughs Corp Apparatus for interrogating the availability of a communication path to a peripheral device
US4004277A (en) 1974-05-29 1977-01-18 Gavril Bruce D Switching system for non-symmetrical sharing of computer peripheral equipment
US3943283A (en) 1974-06-17 1976-03-09 International Business Machines Corporation Bidirectional single wire data transmission and wrap control
US4080649A (en) 1976-12-16 1978-03-21 Honeywell Information Systems Inc. Balancing the utilization of I/O system processors
US4207609A (en) 1978-05-08 1980-06-10 International Business Machines Corporation Method and means for path independent device reservation and reconnection in a multi-CPU and shared device access system
US4380046A (en) 1979-05-21 1983-04-12 Nasa Massively parallel processor computer
US4374415A (en) 1980-07-14 1983-02-15 International Business Machines Corp. Host control of suspension and resumption of channel program execution
US4414644A (en) 1981-04-03 1983-11-08 International Business Machines Corporation Method and apparatus for discarding data from a buffer after reading such data
US4455605A (en) 1981-07-23 1984-06-19 International Business Machines Corporation Method for establishing variable path group associations and affiliations between "non-static" MP systems and shared devices
US4497022A (en) 1982-10-19 1985-01-29 International Business Machines Corporation Method and apparatus for measurements of channel operation
US4564903A (en) 1983-10-05 1986-01-14 International Business Machines Corporation Partitioned multiprocessor programming system
US4779188A (en) 1983-12-14 1988-10-18 International Business Machines Corporation Selective guest system purge control
US4870566A (en) 1984-08-27 1989-09-26 International Business Machines Corp. Scannerless message concentrator and communications multiplexer
US4837677A (en) 1985-06-14 1989-06-06 International Business Machines Corporation Multiple port service expansion adapter for a communications controller
US4760518A (en) 1986-02-28 1988-07-26 Scientific Computer Systems Corporation Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
JPS6336461A (ja) 1986-07-31 1988-02-17 Pfu Ltd 汎用チャネル制御方式
US4926320A (en) 1987-04-07 1990-05-15 Nec Corporation Information processing system having microprogram-controlled type arithmetic processing unit
US4843541A (en) 1987-07-29 1989-06-27 International Business Machines Corporation Logical resource partitioning of a data processing system
US4866609A (en) 1988-06-22 1989-09-12 International Business Machines Corporation Byte count handling in serial channel extender with buffering for data pre-fetch
JPH0283757A (ja) 1988-09-21 1990-03-23 Hitachi Ltd 通信制御システム
US5016160A (en) 1988-12-15 1991-05-14 International Business Machines Corporation Computer system having efficient data transfer operations
US5185736A (en) 1989-05-12 1993-02-09 Alcatel Na Network Systems Corp. Synchronous optical transmission system
DE69028462T2 (de) 1989-08-11 1997-03-27 Ibm Vorrichtung zur Verbindung von einer Steuereinheit mit parallelem Bus mit einem Kanal mit serieller Verbindung
GB9012970D0 (en) 1989-09-22 1990-08-01 Ibm Apparatus and method for asynchronously delivering control elements with pipe interface
EP0424618A3 (en) 1989-10-24 1992-11-19 International Business Machines Corporation Input/output system
DE3938520A1 (de) 1989-11-21 1991-05-29 Teves Gmbh Alfred Verfahren und system zur messdatenerfassung und -auswertung
AU650242B2 (en) 1989-11-28 1994-06-16 International Business Machines Corporation Methods and apparatus for dynamically managing input/output (I/O) connectivity
JPH04649A (ja) 1990-04-18 1992-01-06 Nec Corp リモートチャネル装置の障害情報転送方式
CA2037708C (en) 1990-05-04 1998-01-20 Richard J. Eickemeyer General purpose compound apparatus for instruction-level parallel processors
US5170472A (en) 1991-03-28 1992-12-08 International Business Machines Corp. Dynamically changing a system i/o configuration definition
US5644712A (en) 1991-06-05 1997-07-01 International Business Machines Corporation Indirect addressing of channels via logical channel groups
US5386512A (en) 1991-07-19 1995-01-31 International Business Machines Corporation System for deriving and testing mutual capability set after receiving updated capability from other processors and before requesting service information
JPH0580104A (ja) 1991-09-20 1993-04-02 Cmk Corp モータ用プリント配線板の製造方法
US5388219A (en) 1992-03-02 1995-02-07 International Business Machines Corporation Efficient channel and control unit for host computer
CA2086691C (en) 1992-03-30 1997-04-08 David A. Elko Communicating messages between processors and a coupling facility
US5317739A (en) 1992-03-30 1994-05-31 International Business Machines Corp. Method and apparatus for coupling data processing systems
US5600805A (en) 1992-06-15 1997-02-04 International Business Machines Corporation Pass-through for I/O channel subsystem call instructions for accessing shared resources in a computer system having a plurality of operating systems
US5452455A (en) 1992-06-15 1995-09-19 International Business Machines Corporation Asynchronous command support for shared channels for a computer complex having multiple operating systems
US5414851A (en) 1992-06-15 1995-05-09 International Business Machines Corporation Method and means for sharing I/O resources by a plurality of operating systems
US5265240A (en) 1992-07-24 1993-11-23 International Business Machines Corporation Channel measurement method and means
JP2566728B2 (ja) 1992-10-30 1996-12-25 インターナショナル・ビジネス・マシーンズ・コーポレイション 論理径路スケジューリング装置及び実行方法
US5301323A (en) 1992-10-30 1994-04-05 International Business Machines Corp. Data processing system including dynamic channel path management
JP2840511B2 (ja) 1992-12-10 1998-12-24 富士通株式会社 磁気テープ装置を用いたサブシステムのエラー回復処理装置及び方法
US5526484A (en) 1992-12-10 1996-06-11 International Business Machines Corporation Method and system for pipelining the processing of channel command words
US5528755A (en) 1992-12-22 1996-06-18 International Business Machines Corporation Invalid data detection, recording and nullification
US5517670A (en) 1992-12-30 1996-05-14 International Business Machines Corporation Adaptive data transfer channel employing extended data block capability
US5461721A (en) 1993-04-14 1995-10-24 International Business Machines Corporation System for transferring data between I/O devices and main or expanded storage under dynamic control of independent indirect address words (IDAWs)
US5465359A (en) 1993-11-01 1995-11-07 International Business Machines Corporation Method and system for managing data and users of data in a data processing system
US5584039A (en) 1993-11-08 1996-12-10 International Business Machines Corporation System for coordinating execution of multiple concurrent channel programs without host processor involvement using suspend and resume commands to control data transfer between I/O devices
JP3528094B2 (ja) 1994-02-09 2004-05-17 株式会社日立製作所 バス利用方法および記憶制御装置
US6769009B1 (en) 1994-05-31 2004-07-27 Richard R. Reisman Method and system for selecting a personalized set of information channels
US5907684A (en) 1994-06-17 1999-05-25 International Business Machines Corporation Independent channel coupled to be shared by multiple physical processing nodes with each node characterized as having its own memory, CPU and operating system image
US5548791A (en) 1994-07-25 1996-08-20 International Business Machines Corporation Input/output control system with plural channel paths to I/O devices
US5860022A (en) 1994-07-26 1999-01-12 Hitachi, Ltd. Computer system and method of issuing input/output commands therefrom
US5564040A (en) 1994-11-08 1996-10-08 International Business Machines Corporation Method and apparatus for providing a server function in a logically partitioned hardware machine
EP0712220A1 (de) 1994-11-08 1996-05-15 International Business Machines Corporation Knotenpunktsweise Verkehrskontrolle in einem ATM-Netz
US5613163A (en) 1994-11-18 1997-03-18 International Business Machines Corporation Method and system for predefined suspension and resumption control over I/O programs
US5671441A (en) 1994-11-29 1997-09-23 International Business Machines Corporation Method and apparatus for automatic generation of I/O configuration descriptions
US5600793A (en) 1994-12-20 1997-02-04 International Business Machines Corporation Method and system of bi-directional parallel port data transfer between data processing systems
US5680580A (en) 1995-02-28 1997-10-21 International Business Machines Corporation Remote copy system for setting request interconnect bit in each adapter within storage controller and initiating request connect frame in response to the setting bit
US5742845A (en) 1995-06-22 1998-04-21 Datascape, Inc. System for extending present open network communication protocols to communicate with non-standard I/O devices directly coupled to an open network
US5996026A (en) 1995-09-05 1999-11-30 Hitachi, Ltd. Method and apparatus for connecting i/o channels between sub-channels and devices through virtual machines controlled by a hypervisor using ID and configuration information
JP3225804B2 (ja) 1995-09-05 2001-11-05 株式会社日立製作所 入出力チャネルの拡張方式
JP3503948B2 (ja) 1995-09-13 2004-03-08 株式会社 日立製作所 電子計算機システム
GB2291990A (en) 1995-09-27 1996-02-07 Memory Corp Plc Flash-memory management system
US5831985A (en) 1995-11-09 1998-11-03 Emc Corporation Method and apparatus for controlling concurrent data transmission from multiple sources in a channel communication system
US5793983A (en) 1996-01-22 1998-08-11 International Business Machines Corp. Input/output channel interface which automatically deallocates failed subchannel and re-segments data block for transmitting over a reassigned subchannel
US5812877A (en) 1996-03-15 1998-09-22 Adaptec, Inc. I/O command block chain structure in a memory
US5758190A (en) 1996-04-09 1998-05-26 International Business Machines Corporation Control unit threshold timeout controls for software missing interrupt handlers in operating systems
US5768620A (en) 1996-04-09 1998-06-16 International Business Machines Corporation Variable timeout method in a missing-interrupt-handler for I/O requests issued by the same operating system
US5894583A (en) 1996-04-09 1999-04-13 International Business Machines Corporation Variable timeout method for improving missing-interrupt-handler operations in an environment having I/O devices shared by one or more systems
US5901327A (en) 1996-05-28 1999-05-04 Emc Corporation Bundling of write data from channel commands in a command chain for transmission over a data link between data storage systems for remote data mirroring
US6108655A (en) 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
SG101460A1 (en) 1997-02-14 2004-01-30 Canon Kk Data communication apparatus and method
JP3697831B2 (ja) 1997-04-18 2005-09-21 株式会社日立製作所 コンピュータシステム
TW375529B (en) 1997-05-14 1999-12-01 Sega Corp Data transmission method and game system using the same
US5918028A (en) 1997-07-08 1999-06-29 Motorola, Inc. Apparatus and method for smart host bus adapter for personal computer cards
US6263380B1 (en) 1997-10-14 2001-07-17 Mitutoyo Corporation Measurement data processing unit
US6460087B1 (en) 1998-02-25 2002-10-01 Kdd Corporation Method of transferring file
US6360282B1 (en) 1998-03-25 2002-03-19 Network Appliance, Inc. Protected control of devices by user applications in multiprogramming environments
US6353612B1 (en) 1998-06-19 2002-03-05 Brocade Communications Systems, Inc. Probing device
US6693880B2 (en) 1998-09-10 2004-02-17 International Business Machines Corporation System of controlling the flow of information between senders and receivers across links being used as channels
US6230218B1 (en) * 1998-10-14 2001-05-08 International Business Machines Corporation Apparatus for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6185631B1 (en) 1998-10-14 2001-02-06 International Business Machines Corporation Program for transferring execution of certain channel functions to a control unit and having means for combining certain commands and data packets in one sequence
US6343335B1 (en) 1998-10-29 2002-01-29 International Business Machines Corporation System for repositioning an I/O device to a predetermined position to retry a program without knowledge of which part of the program caused the retry
US6195330B1 (en) 1998-11-05 2001-02-27 David C. Sawey Method and system for hit-less switching
KR100273641B1 (ko) 1998-11-11 2000-12-15 윤종용 공통 메모리 스위치에서 셀 그룹 처리장치 및 그 처리방법
JP3990833B2 (ja) 1998-12-11 2007-10-17 キヤノン株式会社 通信制御方法及び装置
US6347334B1 (en) 1999-01-06 2002-02-12 Mcdata Corporation Self-description extended link service for networks
US6772207B1 (en) 1999-01-28 2004-08-03 Brocade Communications Systems, Inc. System and method for managing fibre channel switching devices
US6351779B1 (en) 1999-03-12 2002-02-26 Agilent Technologies, Inc. Extension library to standard visa library for support of complex I/O functions
US6484217B1 (en) 1999-04-20 2002-11-19 International Business Machines Corporation Managing shared devices in a data processing system
US6401223B1 (en) 1999-05-21 2002-06-04 Unisys Corporation Programmable system for invalidating pending requests within a data processing system
TW549004B (en) 1999-06-15 2003-08-21 Matsushita Electric Works Ltd Portable programming device for supervisory remote control system
US6718139B1 (en) 1999-09-13 2004-04-06 Ciena Corporation Optical fiber ring communication system
US6609165B1 (en) 1999-09-27 2003-08-19 International Business Machines Corporation Method and apparatus for using fibre channel extended link service commands in a point-to-point configuration
US6651125B2 (en) 1999-09-28 2003-11-18 International Business Machines Corporation Processing channel subsystem pending I/O work queues based on priorities
US7046665B1 (en) 1999-10-26 2006-05-16 Extreme Networks, Inc. Provisional IP-aware virtual paths over networks
US6584511B1 (en) 2000-03-24 2003-06-24 Unisys Corporation Loop initialization procedure exception handling for fibre channel transmissions
US7054279B2 (en) 2000-04-07 2006-05-30 Broadcom Corporation Method and apparatus for optimizing signal transformation in a frame-based communications network
US6658603B1 (en) 2000-04-17 2003-12-02 International Business Machines Corporation Method and apparatus for efficiently generating and implementing engine error codes and verifying the correctness of the implementation of the engine error codes
US6594785B1 (en) 2000-04-28 2003-07-15 Unisys Corporation System and method for fault handling and recovery in a multi-processing system having hardware resources shared between multiple partitions
US6862322B1 (en) 2000-05-19 2005-03-01 International Business Machines Corporation Switchable-bandwidth optical receiver
US6609161B1 (en) 2000-06-01 2003-08-19 Adaptec, Inc. Two-dimensional execution queue for host adapters
US7142520B1 (en) 2000-06-16 2006-11-28 Nokia Mobile Phones Ltd. Method and apparatus for mobile internet protocol regional paging
JP2002016655A (ja) 2000-06-28 2002-01-18 Sony Corp 伝送方法、伝送システム、伝送装置及び伝送制御装置
US6662319B1 (en) 2000-08-31 2003-12-09 Hewlett-Packard Development Company, L.P. Special encoding of known bad data
PT1362499E (pt) 2000-08-31 2012-04-18 Dolby Lab Licensing Corp Processo para dispositivo para descodificação matricial áudio
US6694390B1 (en) 2000-09-11 2004-02-17 Intel Corporation Managing bus transaction dependencies
US6950888B1 (en) 2000-09-29 2005-09-27 International Business Machines Corporation Method, system and program products for determining whether I/O constraints exist for controllers of a computing environment
US6751683B1 (en) 2000-09-29 2004-06-15 International Business Machines Corporation Method, system and program products for projecting the impact of configuration changes on controllers
US6678748B2 (en) 2000-09-29 2004-01-13 Emc Corporation Method for optimizing multiple input/output requests to a single logical device
US6697983B1 (en) 2000-10-24 2004-02-24 At&T Wireless Services, Inc. Data link layer tunneling technique for high-speed data in a noisy wireless environment
US6622268B2 (en) 2000-11-29 2003-09-16 Intel Corp Method and apparatus for propagating error status over an ECC protected channel
US7127514B2 (en) 2000-12-28 2006-10-24 Microsoft Corporation Stateless distributed computer architecture with server-oriented state-caching objects maintained on network or client
CA2432386A1 (en) * 2001-01-31 2002-08-08 International Business Machines Corporation Method and apparatus for transferring interrupts from a peripheral device to a host computer system
US7155569B2 (en) 2001-02-28 2006-12-26 Lsi Logic Corporation Method for raid striped I/O request generation using a shared scatter gather list
US6834363B2 (en) 2001-03-22 2004-12-21 International Business Machines Corporation Method for prioritizing bus errors
US6898202B2 (en) 2001-06-27 2005-05-24 International Business Machines Corporation Method, apparatus and computer program for informing a requesting device of port configuration changes in a computer network switching device
US20030056000A1 (en) 2001-07-26 2003-03-20 Nishan Systems, Inc. Transfer ready frame reordering
US6910149B2 (en) 2001-09-24 2005-06-21 Intel Corporation Multi-device link aggregation
US6754738B2 (en) 2001-09-28 2004-06-22 International Business Machines Corporation Low overhead I/O interrupt
US7315911B2 (en) 2005-01-20 2008-01-01 Dot Hill Systems Corporation Method for efficient inter-processor communication in an active-active RAID system using PCI-express links
US6859866B2 (en) 2001-10-01 2005-02-22 International Business Machines Corporation Synchronizing processing of commands invoked against duplexed coupling facility structures
US6745299B2 (en) 2001-11-19 2004-06-01 Hewlett-Packard Development Company, L.P. Method for evaluation of scalable symmetric multiple processor cache coherency protocols and algorithms
US7512133B2 (en) 2001-12-03 2009-03-31 International Business Machines Corporation Method and apparatus for obtaining multiple port addresses by a fibre channel from a network fabric
US7599360B2 (en) 2001-12-26 2009-10-06 Cisco Technology, Inc. Methods and apparatus for encapsulating a frame for transmission in a storage area network
US7085860B2 (en) 2002-01-11 2006-08-01 International Business Machines Corporation Method and apparatus for a non-disruptive recovery of a single partition in a multipartitioned data processing system
US7007142B2 (en) 2002-02-19 2006-02-28 Intel Corporation Network data storage-related operations
US7099814B2 (en) 2002-03-29 2006-08-29 International Business Machines Corportion I/O velocity projection for bridge attached channel
US6898723B2 (en) 2002-04-01 2005-05-24 Mitac International Corp. Method for verifying clock signal frequency of computer sound interface that involves checking whether count value of counter is within tolerable count range
US7543087B2 (en) 2002-04-22 2009-06-02 Alacritech, Inc. Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
JP4704659B2 (ja) 2002-04-26 2011-06-15 株式会社日立製作所 記憶装置システムの制御方法および記憶制御装置
US20030208581A1 (en) 2002-05-02 2003-11-06 Behren Paul D. Von Discovery of fabric devices using information from devices and switches
US7120728B2 (en) 2002-07-31 2006-10-10 Brocade Communications Systems, Inc. Hardware-based translating virtualization switch
US7107385B2 (en) 2002-08-09 2006-09-12 Network Appliance, Inc. Storage virtualization by layering virtual disk objects on a file system
US6826661B2 (en) 2002-08-30 2004-11-30 Veritas Operating Corporation Methods and systems for storage architectures
US20040054776A1 (en) 2002-09-16 2004-03-18 Finisar Corporation Network expert analysis process
US7539777B1 (en) 2002-10-25 2009-05-26 Cisco Technology, Inc. Method and system for network time protocol forwarding
US7080094B2 (en) 2002-10-29 2006-07-18 Lockheed Martin Corporation Hardware accelerated validating parser
US7418574B2 (en) 2002-10-31 2008-08-26 Lockheed Martin Corporation Configuring a portion of a pipeline accelerator to generate pipeline date without a program instruction
US7202801B2 (en) 2002-12-11 2007-04-10 Geospatial Technologies, Inc. Method and apparatus for an automated location-based, dynamic notification system (ALDNS)
US7277387B2 (en) 2003-01-30 2007-10-02 Wind River Systems, Inc. Package manager
US7324455B2 (en) 2003-03-14 2008-01-29 International Business Machines Corporation Transfer of error-analysis and statistical data in a fibre channel input/output system
US6915378B2 (en) 2003-04-23 2005-07-05 Hypernova Technologies, Inc. Method and system for improving the performance of a processing system
US7085898B2 (en) 2003-05-12 2006-08-01 International Business Machines Corporation Coherency management for a “switchless” distributed shared memory computer system
US7000036B2 (en) 2003-05-12 2006-02-14 International Business Machines Corporation Extended input/output measurement facilities
US7058735B2 (en) 2003-06-02 2006-06-06 Emulex Design & Manufacturing Corporation Method and apparatus for local and distributed data memory access (“DMA”) control
US7266296B2 (en) 2003-06-11 2007-09-04 Intel Corporation Architecture and method for framing control and data bursts over 10 Gbit Ethernet with and without WAN interface sublayer support
TWI271626B (en) 2003-06-17 2007-01-21 Delta Electronics Inc Data transmission method for microprocessors of programmable logic controller
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7124207B1 (en) 2003-08-14 2006-10-17 Adaptec, Inc. I2O command and status batching
US7149823B2 (en) 2003-08-29 2006-12-12 Emulex Corporation System and method for direct memory access from host without processor intervention wherein automatic access to memory during host start up does not occur
KR100829471B1 (ko) 2003-10-17 2008-05-19 니폰덴신뎅와 가부시키가이샤 메일 배송 시스템, 메일 배송방법 및 메일 배송 프로그램
KR20050043426A (ko) 2003-11-06 2005-05-11 삼성전자주식회사 파이프라인 버스 시스템에서 커맨드 전송 방법 및 장치
US20050105456A1 (en) 2003-11-18 2005-05-19 Cookson Christopher J. Double-sided optical disc
US7634582B2 (en) 2003-12-19 2009-12-15 Intel Corporation Method and architecture for optical networking between server and storage area networks
US7564791B2 (en) 2003-12-29 2009-07-21 Intel Corporation Monitoring packet flows
US7382733B2 (en) 2004-02-12 2008-06-03 International Business Machines Corporation Method for handling reordered data packets
US7133988B2 (en) 2004-02-25 2006-11-07 Hitachi, Ltd. Method and apparatus for managing direct I/O to storage systems in virtualization
US20050223291A1 (en) 2004-03-24 2005-10-06 Zimmer Vincent J Methods and apparatus to provide an execution mode transition
JP2005293363A (ja) 2004-04-01 2005-10-20 Toshiba Corp ディスクアレイコントローラおよび情報処理装置
US8171170B2 (en) 2004-04-30 2012-05-01 Emc Corporation Storage switch task processing synchronization
US7240273B2 (en) 2004-05-13 2007-07-03 Industrial Technology Research Institute Cyclic redundancy check modification for message length detection and error detection
US7555554B2 (en) 2004-08-06 2009-06-30 Microsoft Corporation System and method for generating selectable extension to media transport protocol
US7711871B1 (en) 2004-08-30 2010-05-04 Crossroads Systems, Inc. Interface device and method for command processing
US7443798B2 (en) 2004-09-03 2008-10-28 Agere Systems Inc. Transmit adaptive equalization for communication system with one or more serial data channels
US7577772B2 (en) 2004-09-08 2009-08-18 Qlogic, Corporation Method and system for optimizing DMA channel selection
GB2419198A (en) 2004-10-14 2006-04-19 Hewlett Packard Development Co Identifying performance affecting causes in a data storage system
US7398335B2 (en) 2004-11-22 2008-07-08 Qlogic, Corporation Method and system for DMA optimization in host bus adapters
JP4575119B2 (ja) 2004-11-25 2010-11-04 株式会社日立製作所 ストレージシステム
US7164425B2 (en) 2004-12-21 2007-01-16 Qlogic Corporation Method and system for high speed network application
US7672323B2 (en) 2005-01-14 2010-03-02 Cisco Technology, Inc. Dynamic and intelligent buffer management for SAN extension
US7526633B2 (en) 2005-03-23 2009-04-28 Qualcomm Incorporated Method and system for encoding variable length packets with variable instruction sizes
JP2006277583A (ja) 2005-03-30 2006-10-12 Hitachi Ltd データ処理システム、データ処理方法、及びプログラム
US7797463B2 (en) * 2005-06-30 2010-09-14 Intel Corporation Hardware assisted receive channel frame handling via data offset comparison in SAS SSP wide port applications
US7970953B2 (en) 2005-06-30 2011-06-28 Intel Corporation Serial ATA port addressing
JP2007058646A (ja) 2005-08-25 2007-03-08 Hitachi Ltd データ処理システム
TW200733733A (en) 2005-09-06 2007-09-01 Nokia Corp Enhanced signaling of pre-configured interaction message in service guide
US7577773B1 (en) 2005-09-09 2009-08-18 Qlogic, Corporation Method and system for DMA optimization
JP4527640B2 (ja) 2005-09-15 2010-08-18 株式会社ソニー・コンピュータエンタテインメント データ読出装置
JP2007122108A (ja) 2005-10-25 2007-05-17 Hitachi Ltd セルフチェック機能を有するディスクドライブ装置を用いたストレージシステムの制御
US7484021B2 (en) 2005-10-27 2009-01-27 Cisco Technology, Inc. Technique for implementing virtual fabric membership assignments for devices in a storage area network
US20070162631A1 (en) 2005-12-28 2007-07-12 International Business Machines Corporation Method for selectable software-hardware internet SCSI
US7594057B1 (en) 2006-01-09 2009-09-22 Qlogic, Corporation Method and system for processing DMA requests
JP2007199975A (ja) 2006-01-26 2007-08-09 Hitachi Ltd データ処理システム及びデータ処理方法
US9032164B2 (en) 2006-02-17 2015-05-12 Emulex Corporation Apparatus for performing storage virtualization
US7743197B2 (en) 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
US20080040519A1 (en) 2006-05-02 2008-02-14 Alacritech, Inc. Network interface device with 10 Gb/s full-duplex transfer rate
US8381214B2 (en) 2006-05-05 2013-02-19 Microsoft Corporation Extensible job submission
US7826349B2 (en) 2006-05-30 2010-11-02 Intel Corporation Connection management mechanism
US20080043563A1 (en) 2006-08-15 2008-02-21 International Business Machines Corporation Flexibly controlling the transfer of data between input/output devices and memory
US7500030B2 (en) 2006-08-30 2009-03-03 International Business Machines Corporation Control of information units in fibre channel communications
US8032581B2 (en) 2006-08-30 2011-10-04 International Business Machines Corporation Persistent information unit pacing
US7502873B2 (en) 2006-10-10 2009-03-10 International Business Machines Corporation Facilitating access to status and measurement data associated with input/output processing
US7500023B2 (en) 2006-10-10 2009-03-03 International Business Machines Corporation Facilitating input/output processing by using transport control words to reduce input/output communications
US7668984B2 (en) 2007-01-10 2010-02-23 International Business Machines Corporation Low latency send queues in I/O adapter hardware
US7797414B2 (en) 2007-01-31 2010-09-14 International Business Machines Corporation Establishing a logical path between servers in a coordinated timing network
US8676219B2 (en) 2007-04-13 2014-03-18 Hart Communication Foundation Combined wired and wireless communications with field devices in a process control environment
US7765336B2 (en) 2007-06-11 2010-07-27 Emulex Design & Manufacturing Corporation Autonomous mapping of protected data streams to fibre channel frames
US8020074B2 (en) 2007-08-24 2011-09-13 Datadirect Networks, Inc. Method for auto-correction of errors in a RAID memory system
US8214562B2 (en) 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US7840717B2 (en) 2008-02-14 2010-11-23 International Business Machines Corporation Processing a variable length device command word at a control unit in an I/O processing system
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US7840718B2 (en) 2008-02-14 2010-11-23 International Business Machines Corporation Processing of data to suspend operations in an input/output processing log-out system
US7904605B2 (en) 2008-02-14 2011-03-08 International Business Machines Corporation Computer command and response for determining the state of an I/O operation
US8001298B2 (en) 2008-02-14 2011-08-16 International Business Machines Corporation Providing extended measurement data in an I/O processing system
US8095847B2 (en) 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US7941570B2 (en) 2008-02-14 2011-05-10 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US7937507B2 (en) 2008-02-14 2011-05-03 International Business Machines Corporation Extended measurement word determination at a channel subsystem of an I/O processing system
US7908403B2 (en) 2008-02-14 2011-03-15 International Business Machines Corporation Reserved device access contention reduction
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US7890668B2 (en) 2008-02-14 2011-02-15 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US7899944B2 (en) 2008-02-14 2011-03-01 International Business Machines Corporation Open exchange limiting in an I/O processing system
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US7917813B2 (en) 2008-02-14 2011-03-29 International Business Machines Corporation Exception condition determination at a control unit in an I/O processing system
EP2249309A1 (de) * 2008-02-19 2010-11-10 NEC Corporation Strukturabgleichvorrichtung, strukturabgleichverfahren und programm dafür
GB2460841B (en) 2008-06-10 2012-01-11 Virtensys Ltd Methods of providing access to I/O devices
US7983257B2 (en) 2008-07-18 2011-07-19 Emulex Design & Manufacturing Corporation Hardware switch for hypervisors and blade servers
US7937504B2 (en) 2008-07-31 2011-05-03 International Business Machines Corporation Transport control channel program message pairing
US8055807B2 (en) 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US20100064072A1 (en) 2008-09-09 2010-03-11 Emulex Design & Manufacturing Corporation Dynamically Adjustable Arbitration Scheme
JP5107880B2 (ja) 2008-12-10 2012-12-26 株式会社日立製作所 データ転送処理装置及び方法
US9021155B2 (en) * 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8364854B2 (en) * 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583988B2 (en) * 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) * 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) * 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) * 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"Fibre Channel: Single-Byte Command Code Sets Mapping Protocol - 4 (FC-SB-4)", T11 Project 2122-D, Revision 3.00, 22. September 2000
"IBM(RTM) z/Architecture Principles of Operation", Publikation Nr. SA22-7832-8, 9. Ausgabe, August 2010
ANSI-Norm "Fibre Channel - Single-Byte Command Code Sets Mapping Protocol - 4 (FC-SB-4)", T11 Project 2122-D, Revision 3.00, 22. September 2000

Also Published As

Publication number Publication date
GB2491439A (en) 2012-12-05
GB2491439B (en) 2013-05-15
CN102819505B (zh) 2015-06-17
CN102819505A (zh) 2012-12-12
US20120311200A1 (en) 2012-12-06
US8769253B2 (en) 2014-07-01
US20120311192A1 (en) 2012-12-06
GB201206683D0 (en) 2012-05-30
DE102012209014B4 (de) 2013-12-19
US8364854B2 (en) 2013-01-29

Similar Documents

Publication Publication Date Title
DE102012209016B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102012208803B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102012209011B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE102012209009B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE60036465T2 (de) Rechneradapterkarte für die kombinierung von eingang-/ausgangfertigstellungsberichten und verwendung derselben
DE69922693T2 (de) Systemem und verfahren für netzwerkvorrichtung und ein-ausgabegerätetreiber
DE19900345B4 (de) Schnittstellenmodul für einen Universellen Seriellen Bus (USB) zur Verbindung mit einem USB über eine Programmierschnittstelle für eine USB-Funktion und Vorrichtung zum Anschluß an einen universellen seriellen Bus
DE60108911T2 (de) Prozessorschnittstelle mit geringem overhead
DE102004004796B4 (de) Vorrichtung zur Datenübertragung zwischen Speichern
DE602004012563T2 (de) Mehrfädiges DMA
DE102009049078B4 (de) Verwendung von Ausführer-Wissen über Speicherregion-Ordnungsanforderungen zum Modifizieren von Transaktionsattributen
DE112010003594B4 (de) Vorrichtung, Verfahren und Computerprogramm zum Betreiben eines verteilten Gruppenspeichernetzes für Schreibvorgänge
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE102008055892A1 (de) Abspeichern von Abschnitten eines Datenübertragungsdeskriptors in einem gecachten und einem nicht gecachten Adressbereich
DE102012209014B4 (de) System und Verfahren zur Weiterleitung von Fibre-Channel-Eingangs- und Ausgangsdaten
DE112012006227T5 (de) Remotezugriff auf den direkten Speicher mit reduzierter Latenzzeit
DE60316969T2 (de) One-shot-rdma mit einem 2-bit-zustand
DE102013205973A1 (de) Realisieren von Leistungsoptimierung bei Speicheradaptern durch zusammengefasstes Ausführen von Hardware-Operationen
DE10234990A1 (de) Steuerung der Ersetzung im voraus geholter Deskriptoren in einem Cache
DE112007000688T5 (de) Fehlerverwaltungstopologien
DE112013000812T5 (de) Variable Bestätigungsrate zum Verringern von Buskonflikt in Gegenwart von Datenübertragungsfehlern
EP2110995A1 (de) Datenübertragungsvorrichtung
DE112012006148B4 (de) Verfahren, Vorrichtung und Maschinenlesbares Medium zur gemeinsamen Benutzung von Puffern für Verarbeitungselemente bei einem Netzwerkgerät
DE10224163A1 (de) Transaktionsdauermanagement in einem USB-Hostcontroller

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final

Effective date: 20140320