DE60201682T2 - Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute - Google Patents

Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute Download PDF

Info

Publication number
DE60201682T2
DE60201682T2 DE60201682T DE60201682T DE60201682T2 DE 60201682 T2 DE60201682 T2 DE 60201682T2 DE 60201682 T DE60201682 T DE 60201682T DE 60201682 T DE60201682 T DE 60201682T DE 60201682 T2 DE60201682 T2 DE 60201682T2
Authority
DE
Germany
Prior art keywords
queue pair
queue
attributes
new
attribute
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE60201682T
Other languages
English (en)
Other versions
DE60201682D1 (de
Inventor
Bahadir Erimli
Yatin Acharya
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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of DE60201682D1 publication Critical patent/DE60201682D1/de
Application granted granted Critical
Publication of DE60201682T2 publication Critical patent/DE60201682T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Description

  • GEBIET DER ERFINDUNG
  • Die vorliegende Erfindung betrifft einen Host-Kanaladapter, der für die Kommunikation mit Empfangs- bzw. Zielkanaladaptern ausgebildet ist, und betrifft die Verwaltung von Warteschlangenpaare, die bei der Übertragung von Datenpaketen in einem InfiniBand-Server-System verwendet werden.
  • HINTERGRUND DER ERFINDUNG
  • Die Netzwerktechnologie hat Verbesserungen bei Server-Architekturen und deren Gestaltung erreicht im Hinblick auf das Bereitstellen von Servern, die robuster und zuverlässiger beim Einsatz in kritischen Netzwerkanwendungen sind. Insbesondere die Anwendung von Servern zur Abarbeitung von Klientenanforderungen führte zu der Notwendigkeit, dass Server eine äußerst hohe Zuverlässigkeit besitzen, um sicherzustellen, dass das Netzwerk betriebsfähig bleibt. Daher gibt es ein großes Interesse an der Serverzuverlässigkeit, an der Zugreifbarkeit und an der Bereitstellung von Diensten.
  • Ferner wurden bei Prozessoren, die in Servern eingesetzt werden, wesentliche Fortschritte erzielt, wobei die Mikroprozessorgeschwindigkeit und die Bandbreite die Kapazität der angeschlossenen Eingangs/Ausgangs-(I/O)-Busse übertroffen haben, wodurch der Durchsatz des Servers durch die Buskapazität beschränkt ist. Folglich wurden unterschiedliche Server-Standards vorgeschlagen, um zu versuchen, die Leistungsfähigkeit des Servers im Hinblick auf die Adressierung, die Prozessorkombination und eine hohe I/O-Geschwindigkeit zu verbessern.
  • Diese unterschiedlichen vorgeschlagenen Server-Standards führten zu der Entwicklung der Infini-Band-Architekturspezifikation (Ausgabe 1.0), die von der InfiniBand-Vertriebsorganisation angewendet wird. Die InfiniBand-Architekturspezifikation spezifiziert eine Netzwerkverbindung mit hoher Geschwindigkeit zwischen zentralen Recheneinheiten, Periphereinheiten und Schaltern innerhalb eines Serversystems. Somit bezeichnet der Beg riff „InfiniBand-Netzwerk" ein Netzwerk innerhalb eines Server-Systems. Die InfiniBand-Architekturspezifikation spezifiziert sowohl I/O-Aktivitäten als auch die Kommunikation zwischen Prozessoren (IPC).
  • Ein wesentliches Merkmal der InfiniBand-Architekturspezifkation ist die vorgeschlagene Implementierung als Hardware der Transportschichtdienste, die in bestehenden Netzwerkprotokollen, etwa den Protokollen auf TCP/IP-Basis vorhanden sind. Die Implementierung auf Hardwarebasis von Transportschichtdiensten bringt den Vorteil, dass die Verarbeitungsanforderungen der zentralen Recheneinheit verringert werden (d. h. „entlastet"), so dass das Betriebssystem des Server-Systems entlastet wird.
  • Jedoch können willkürliche Hardwareimplementierungen zu äußerst kostenintensiven Hardwareausgestaltungen führen. Ein Host-Kanaladapter (HCA) verwaltet mehrere Warteschlangenpaare (QP), die von Anwenderanwendungen an InfiniBand-Netzwerkknoten für die Datenkommunikation verwendet werden. Nachteiligerweise kann eine sehr große Anzahl an Warteschlangenpaaren erzeugt werden, wodurch der HCA unter Umständen große Mengen an Ressourcen bereitstellen muss, um die große Anzahl an Warteschlangenpaare zu verwalten.
  • ÜBERBLICK ÜBER DIE ERFINDUNG
  • Es besteht ein Bedarf für eine Anordnung, die es ermöglicht, dass ein Host-Kanaladapter in einer effizienten und ökonomischen Weise eingerichtet werden kann.
  • Ferner besteht ein Bedarf für eine Anordnung, die es ermöglicht, dass ein Host-Kanaladapter mehrere Warteschlangenpaare ohne wesentlichen Aufwand an Ressourcen verwaltet.
  • Diese und weitere Erfordernisse werden mittels der vorliegenden Erfindung erreicht, wobei ein Host-Kanaladapter für das effiziente Verwalten von mehreren Warteschlangenpaaren ausgebildet ist, indem Warteschlangenpaare mit ähnlichen Eigenschaften in Warteschlangentabellen komprimiert werden, die ausgebildet sind, um komprimierte Warteschlangenpaareinträge mit gemeinsamen Eigenschaften bzw. Attributen zu speichern.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Verfahren in einem Host-Kanaladapter bereitgestellt. Das Verfahren umfasst das Empfangen einer Anforderung zum Erzeugen eines neuen Warteschlangenpaares. Das Verfahren umfasst ferner das Identifizieren einer aus mehreren Warteschlangenpaartabellen durch Bestimmen einer Übereinstimmung zwischen mindestens einer ausgewählten Eigenschaft für das neue Warteschlangenpaar mit entsprechenden gemeinsamen Eigenschaften bzw. Attributen der Warteschlangenpaartabellen, wobei jede Warteschlangenpaartabelle komprimierte Warteschlangenpaareinträge aufweist, die Warteschlangenpaare mit dem entsprechenden gemeinsamen Attribut repräsentieren. Das Verfahren umfasst ferner das Speichern eines neuen komprimierten Warteschlangenpaareintrags mit vorgeschriebenen Attributen des neuen Warteschlangenpaars, die sich von den entsprechenden gemeinsamen Attribut unterscheiden, in der einen gemeinsamen Warteschlangenpaartabelle mit dem entsprechenden gemeinsamen Attribut, das mit dem mindestens einen ausgewählten Attribut übereinstimmt.
  • In einem weiteren Aspekt der vorliegenden Erfindung wird ein Host-Kanaladapter bereitgestellt. Der Host-Kanaladapter umfasst eine Warteschlangenpaarattributdatenbank und ein Warteschlangenpaarattributverwaltungsmodul. Die Warteschlangenpaarattributdatenbank ist zum Speichern vorgeschriebener Attribute neuer Warteschlangenpaare ausgebildet, wobei die Warteschlangenpaarattributdatenbank mehrere Warteschlangenpaartabellen mit entsprechenden gemeinsamen Attributen aufweist, wobei jede Warteschlangenpaartabelle ausgebildet ist, komprimierte Warteschlangenpaareinträge, die Warteschlangenpaare mit dem entsprechenden gemeinsamen Attribut repräsentieren, zu speichern. Das Wartepaarattributverwaltungsmodul ist ausgebildet, um ein neues Warteschlangenpaar als einen neuen komprimierten Warteschlangenpaareintrag in einer identifizierten Warteschlangenpaartabelle mit dem entsprechenden gemeinsamen Attribut, das mit mindestens einem ausgewählten Attribut des neuen Warteschlangenpaares übereinstimmt, zu speichern, wobei der neue komprimierte Warteschlangenpaareintrag vorgeschriebene Attribute des neuen Warteschlangenpaars aufweist, die sich von dem entsprechenden gemeinsamen Attribut unterscheiden.
  • Weitere Vorteile der Erfindung sind zum Teil in der folgenden Beschreibung dargelegt und werden für den Fachmann zum Teil beim Studium des Folgenden offenkundig oder können durch Anwenden der Erfindung erkannt werden. Die Vorteile der vorliegenden Erfindung können durch Umsetzungen und Kombinationen, die insbesondere in den angefügten Patentansprüchen dargelegt sind, realisiert und erreicht werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Es wird auf die angefügten Zeichnungen verwiesen, in denen Elemente mit den gleichen Bezugszeichen durchwegs gleiche Elemente bezeichnen und wobei:
  • 1 eine Ansicht ist, die einen Host-Kanaladapter darstellt, der zum Erzeugen von Übertragungspaketen gemäß einer Ausführungsform der vorliegenden Erfindung ausgebildet ist;
  • 2 eine Ansicht ist, die detaillierter die Warteschlangenpaarattributdaten aus 1 gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 eine Ansicht ist, die das Verfahren zum Speichern eines neuen Warteschlangenpaares in der Warteschlangenpaarattributdatenbank gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • BESTE ART UND WEISE ZUM AUSFÜHREN DER ERFINDUNG
  • 1 ist eine Blockansicht, die einen Host-Kanaladapter (HCA) 12 zeigt, der zum Erzeugen und Senden von Paketen gemäß einer Ausführungsform der vorliegenden Erfindung ausgebildet ist. Der HCA 12, der mit der InfiniBand-Architekturspezifikation kompatibel ist, ist so eingerichtet, dass sichergestellt ist, dass Hardwareressourcen in effizienter Weise ausgenutzt werden, indem Sendepakete gemäß einer Reihenfolge nach Prioritäten erzeugt werden. Ferner ermöglicht der offenbarte HCA 12 Flexibilität dadurch, dass eingebettete Prozesse ohne Unterbrechung des Datenverkehrstroms hinzugefügt werden können. Somit kann der HCA 12 in einer ökonomischen Weise mit minimaler Komplexität im Vergleich zu konventionellen Implementierverfahren eingerichtet werden.
  • Ein Problem bei herkömmlichen Anordnungen zum Einrichten des HCA 12 gemäß der InfiniBand-Architekturspezifikation besteht darin, dass der Transportschichtdienst zuerst auszuführen ist, beispielsweise durch Erstellen eines Transportschichtvorspannes, Erzeugen einer Paketsequenznummer, Bestätigen der Art des Dienste (beispielsweise zuverlässige Verbindung, zuverlässiges Datagramm, unzuverlässige Verbindung, unzuverlässiges Datagramm, etc.), und andere Transportschichtaktivitäten. Sobald die Transportschichtaktivitäten abgeschlossen sind, würde das Paket an den Verbindungsschichtdienst zur Ausführung von Verbindungsschichtaktivitäten gesendet, wozu die Zuordnung der Dienstschicht bzw. Serviceebene und der virtuellen Verbindungsstrecke, die Erzeugung des Verbindungsschichtstromsteuerpakets, die Verbindungsschichtübertragungskreditüberprüfung und andere Aktivitäten gehören. Obwohl diese herkömmliche Art der Einrichtung den Vorteil aufweist, dass in genauer Weise den Netzwerkschichten bzw. Ebenen gefolgt wird, die in der InfiniBand-Architekturspezifikation spezifiziert sind, erfordert eine derartige Anordnung eine beträchtliche Menge an Hardware. Insbesondere erfordert die Transportschicht im Allgemeinen eine höhere Verarbeitungsleistung als die Verbindungsschicht, da die Transportschicht eine größere Anzahl komplexer Aktivitäten beinhaltet. Somit gibt es einen Bedarf, derart, dass die Implementierung der Transportschicht als Hardware nicht zu einem beträchtlich komplexen Hardwaresystem führt. Ferner gibt es Bedenken hinsichtlich der unnötigen Verschwendung von Ressourcen der Transportschicht für Aufgaben mit geringer Priorität.
  • Gemäß der offenbarten Ausführungsform werden die Verbindungsschichtaktivitäten bzw. Operationen auf der Grundlage des Wunsches unterteilt, die Prioritäten von zu sendenden Datenpaketen zu bestimmen. Insbesondere umfasst der HCA 12 aus 1 ein Vorverbindungsmodul, das ausgebildet ist, eine Priorität von empfangenen WQE's zu bestimmen, und umfasst ein Vorverbindungsmodul, das ausgebildet ist, ein Datenpaket für das Versenden auf dem Netzwerk vorzubereiten. Das Vorverbindungsmodul 40 ordnet die WQE's gemäß den Prioritäten an, die von dem Vorverbindungsmodul bestimmt wurden, und gibt die WQE's in der vorbestimmten Reihenfolge an ein Transportdienstmodul 42 aus, das ausgebildet ist, die geeigneten Transportschichtvorspann- bzw. Kopfbereiche für die WQE's auf der Grundlage der zugehörigen Warteschlangenpaarattribute zu erzeugen. Anders ausgedrückt, das Vorverbindungsmodul 40 verhindert, dass das Transportdienstmodul 42 Ressourcen an WQE's mit geringer Priorität verschwendet oder WQE's mit hoher Priorität innerhalb des Transportschichtprozesses blockiert. Somit beinhalten Verbindungen mit höherer Priorität eine verbesserte Dienstleistung in der Transportschicht auf Grund des HCA's.
  • Der HCA 12, der beispielsweise als eine anwendungsspezifische integrierte Schaltung eingerichtet ist, umfasst ein Vorverbindungsmodul 40, ein Transportservices- bzw. Dienstmo dul 42, ein der Verbindung nachgeschaltetes Modul 44 und ein Mediumzugriffssteuerungs(MAC) Modul 46. Der HCA 12 besitzt ferner einen lokalen Zugriff auf einen Speicher 48, der zur Speicherung von Transportdaten ausgebildet ist, und zu Überlaufpuffern, die nachfolgend-beschrieben sind.
  • Das Vorverbindungsmodul 40 umfasst einen Arbeitswarteschlangenelement-FIFO 50, FIFO's 52 für die virtuelle Verbindung, ein Vorverbindungsprozessmodul 54, eine Zuordnungstabelle 56 von der Serviceebene zu einer virtuellen Verbindung (SL-VL), eine Unterscheidungstabelle 58 für die virtuelle Verbindung (VL) und ein Unterscheidungsmodul 60 für die virtuelle Verbindung (VL).
  • Der HCA 12 ist so ausgebildet, um Daten von einer zentralen Recheneinheit (CPU) in Form von Arbeitswarteschlangenelementen (WQE's) zu empfangen, die in dem WQE-FIFO 50 gespeichert sind. Jedes WQE spezifiziert eine entsprechende Anforderung von einer Anwenderanwendung, die von der CPU (d. h. „Anforderer") für eine entsprechende vorgeschriebene Aktion ausgeführt wird, die von einem Ziel-InfiniBand-Netzwerkknoten (d. h. „der antwortenden Partei), beispielsweise ein Ziel der Verbindung auszuführen ist. Das Zusammenwirken des Anforderers und der antwortenden Partei ist über ein Warteschlangenpaar (QP) spezifiziert, wobei ein Warteschlangenpaar eine Sendearbeitswarteschlange und eine Empfangsarbeitswarteschlange umfasst.
  • Das WQE umfasst Service- bzw. Dienstebenen-(SL) Information und einen Zeiger zur der Position der eigentlichen Nachricht in dem Systemspeicher 48. Die InfiniBand-Architekturspezifikation definiert ein Serviceebenen-(SL) Attribut, das es ermöglicht, dass ein in dem InfiniBand-Netzwerk 10 versendetes Paket auf einer von 16 verfügbaren Serviceebenen operiert. Somit kann der Anforderer eine verfügbare Serviceebene (beispielsweise basierend auf der Qualität des Dienstes, der Priorität, etc.) auf der Grundlage einer ausgewählten Priorität des WQE auswählen.
  • Das Vorverbindungsmodul 40 liefert sowohl die Zuordnung der Serviceebene zu der virtuellen Verbindung (SL-VL-Zuordnung) und die Unterscheidung bzw. Arbitrierung der virtuellen Verbindung. Insbesondere ermöglichen virtuelle Verbindungen, die in der InfiniBand-Architekturspezifikation definiert sind, dass mehrere logische Ströme auf einer einzelnen physikalischen Verbindung eingerichtet werden können, wobei eine Steuerung des Verbin dungsdatenstrompegel auf einer virtuellen Verbindung durchgeführt werden kann, ohne andere virtuelle Verbindungen zu beeinflussen. Das Vorverbindungsprozessmodul 54 ist so ausgebildet, um die Zuordnungstabelle 56 für die Serviceebene und der virtuellen Verbindung zu verwalten und aufrecht zu erhalten. Insbesondere ruft das Vorverbindungsprozessmodul 54 ein WQE aus dem WQE FIFO 50 ab und bestimmt die entsprechende virtuelle Verbindung auf der Grundlage der Serviceebene, die in dem WQE spezifiziert ist. Nach Identifizieren der geeigneten virtuellen Verbindung für das abgerufene WQE sendet das Vorverbindungsprozessmodul 54 das WQE an den entsprechenden FIFO 52 für virtuelle Verbindungen.
  • Das Vorverbindungsmodul 40 umfasst FIFO's 52a, 52b, 52c, 52d, 52e und 52f für virtuelle Verbindungen zum Speichern von WQE's auf der Grundlage der Zuordnung, die von dem Vorverbindungsprozessmodul 54 vorgenommen wird. Beispielsweise wird der FIFO 52a für virtuelle Verbindungen verwendet, um WQE's zu speichern, die mit eingebetteten Prozessoraktivitäten verknüpft sind, beispielsweise mit Verbindungsschichtsteuerpaketen und der Handhabung von Fehlerbedingungen. Anders ausgedrückt, wenn eine vorgeschriebene Operation nicht als Hardware eingerichtet ist, wird die Anforderung zu einer eingebetteten Prozessorwarteschlange 78 für die weitere Abarbeitung durch einen eingebetteten Prozessor 80, der nachfolgend beschrieben wird, gesendet; somit besitzt der eingebettete Prozessor 80 seine eigene zugeordnete Warteschlange 52a, um Pakete in den Datenstrom des Ausgangsdatenverkehrs auszugeben. Der FIFO 52b für virtuelle Verbindungen wird zum Speichern von WQE's verwendet, die mit der Verwaltung der Datenverkehrs verknüpft sind. Die FIFO's 52c, 52d, 52e und 52f für virtuelle Verbindungen werden verwendet, um WQE's zu speichern, die mit entsprechend zugeordneten virtuellen Verbindungen verknüpft sind. Obwohl die vorliegende Ausführungsform die Verwendung von vier zugeordneten virtuellen Verbindungen zeigt, können weitere FIFO's für virtuelle Verbindungen für zusätzliche zugeordnete virtuelle Verbindungen hinzugefügt werden.
  • Das VL-Unterscheidungsmodul 60 ist als eine Zustandsmaschine mit Registern eingerichtet und ist ausgebildet, um die VL-Unterscheidungstabelle 58 zur Unterstützung der virtuellen Verbindungen einschließlich des Initialisierens, der Verwaltung und des Entfernens der virtuellen Verbindungen zu verwalten. Das VL-Unterscheidungsmodul 60 bestimmt ferner, welche virtuelle Verbindung zu unterstützen ist, und gibt die WQE's von den FIFO's 52 für virtuelle Verbindungen auf der Grundlage der bestimmten Priorität der virtuellen Verbindun gen aus. Beispielsweise speichert der FIFO 52b für virtuelle Verbindungen typischerweise einen Verwaltungsdatenverkehr (hohe Priorität), und daher würde das VL-Unterscheidungsmodul 60 typischerweise den FIFO 52 für virtuelle Verbindungen leeren, bevor andere FIFO's 52c, 52d, 52e oder 52f für virtuelle Verbindungen unterstützt werden. Das VL-Unterscheidungsmodul 60 gibt dann selektiv die WQE's aus den FIFO's 52c, 52d, 52e oder 52f auf der Grundlage der gewichteten Prioritäten aus, die in entsprechenden Gewichtstabellen innerhalb der VL-Unterscheidungstabelle 58 gespeichert sind.
  • Somit gibt das Vorverbindungsmodul 40 die WQE's in einer vorgeschriebenen Reihenfolge auf der Grundlage einer bestimmten Priorität der WQE's, beispielsweise auf der Grundlage zugeordneter virtueller Verbindungen, oder abhängig davon, ob das WQE für einen eingebetteten Prozess, den Verwaltungsdatenverkehr oder für Datenstromsteuerungsverkehrsdaten dient, aus.
  • Das Transportdienstmodul 42 ist ausgebildet, um Transportdienste einschließlich der Initialisierung, der Verwaltung und des Beendens von Warteschlangenpaaren zu verwalten. Insbesondere umfasst der HCA 12 einen FIFO 62 für die Warteschlangenpaarinitialisierung, der ausgebildet ist, Warteschlangenpaarbefehle, die von einem Kommunikationsverwaltungsmittel empfangen werden, zu speichern. Das Kommunikationsverwaltungsmittel dient dazu, Transportverbindungen zu erstellen und zu beenden: das Kommunikationsverwaltungsmittel steht mit einem Teilnetzverwalter in Verbindung, um die Transportverbindungen für den HCA 12 zu errichten. Ferner verwenden die Kommunikationsverwaltungsmittel auf jeder Seite während der Einrichtung einer Verbindung einen Umleitungsservice (der im Weiteren mit Bezug auf ein Umleitungsserviceuntermodul 68a beschrieben wird), um die Transportverbindungen einzurichten, anders als dies bei einem konventionellen Transportschichtdienst der Fall ist.
  • Das Transportdienstmodul 42 umfasst eine Warteschlangenpaarattributdatenbank 64 und ein Warteschlangenpaarattributverwaltungsmodul 66. Das Warteschlangenpaarattributverwaltungsmodul 66 ist ausgebildet, um die Warteschlangenpaarbefehle in dem FIFO 62 für die Warteschlangenpaarinitialisierung zu verarbeiten und um die Warteschlangenpaarattributdatenbank 64 auf der Grundlage der empfangenen Warteschlangenpaarbefehle zu aktualisieren. Beispielsweise speichert die Warteschlangenpaarattributdatenbank 64 Informationen, die sich auf die Nummer des Quellenwarteschlangenpaares, die Nummer eines Zielwarteschlangenpaares und möglicherweise auf ein Quellenmittel und ein Zielmittel beziehen. Somit beinhaltet die Warteschlangenpaarattributdatenbank 64 alle Informationen, die notwendig sind, um die unterschiedlichen Transportdienste einschließlich eines zuverlässigen Verbindungsdienstes, eines zuverlässigen Datagrammdienstes, eines unzuverlässigen Verbindungsdienstes, eines unzuverlässigen Datagrammdienstes und eines Rohdatagrammdienstes zu unterstützen. Weitere Details, die die Speicherung von Warteschlangenpaarattributen in der Warteschlangenpaarattributdatenbank 64 betreffen, sind im Weiteren mit Bezug zu den 2 und 3 beschrieben.
  • Das Warteschlangenpaarattributverwaltungsmodul 66 verwaltet die Transportdienste durch Aktualisieren der Warteschlangenpaarattributdatenbank 64 während der Kommunikation zwischen lokalen und entfernten Kommunikationsmitteln, beispielsweise wenn Paketsequenznummern beim Austausch von Nachrichten zwischen den lokalen und entfernten Kommunikationsmitteln größer werden.
  • Das Warteschlangenpaarattributverwaltungsmodul 66 umfasst ferner Servicesubmodule 68, die jeweils zur Verwaltung einer entsprechenden Transportserviceart auf der Grundlage eines entsprechenden WQE, das von dem Vorverbindungsmodul 40 empfangen wurde, ausgebildet ist. Beispielsweise ist das Umleitungsservicesubmodul 68a ausgebildet, um die Umleitungsdienste während der Verbindungseinrichtung zu verwalten oder um Warteschlangenpaare zu verwalten, die mit Verwaltungsvorgängen mit Netzwerkverwaltern verknüpft sind, die beispielsweise den Rohdatagrammdienst verwenden. Das durch CPU unterstützte Servicesubmodul 68b ist ausgebildet, um Warteschlangenpaare auf der Grundlage eingebetteter Prozessoroperationen unter Anwendung des eingebetteten FIFO's 52a für virtuelle Verbindungen zu verwalten; somit ermöglicht es das CPU unterstützte Servicesubmodul 68b, eine Koordination zwischen den lokalen und entfernten eingebetteten Prozessen zu erreichen; ferner ermöglicht die Implementierung des CPU unterstützten Servicesubmoduls 68b in Verbindung mit dem eingebetteten FIFO 52a für virtuelle Verbindungen, dass Nachrichten erneut gesendet werden, wenn eine Anforderung für ein erneutes Senden von dem entfernten Kommunikationsmittel empfangen wird. Das Servicesubmodul 68c für zuverlässige Verbindung (RC) und das Servicesubmodul 68d für unzuverlässige Verbindung (UC) sind so ausgebildet, um Warteschlangenpaare zu verwalten, die mit Transportdiensten für die zuverlässige Verbindung bzw. die unzuverlässige Verbindung verknüpft sind. Obwohl dies nicht gezeigt ist, umfasst das Warteschlangenpaarattributver waltungsmodul 66 auch Submodule 68 zum Verwalten zuverlässiger und unzuverlässiger Datagrammdienste und eines Rohdatagrammdienstes.
  • Somit leitet das Transportdienstmodul 42 beim Empfang eines WQE von dem Vorverbindungsmodul 40 das WQE zu dem geeigneten Submodul 68 für die weitere Verarbeitung zu (beispielsweise ein WQE für einen RC-Service, der von dem RC-Servicesubmodul 68c abgearbeitet wird). Das WQE enthält Serviceebenen- (SL) Informationen und einen Zeiger zu der Stelle der tatsächlichen Nachricht in dem Systemspeicher 48. Das Submodul 68 analysiert beim Empfang des entsprechenden WQE dieses und entnimmt aus dem WQE den Zeiger, der die Speicherstelle für die Transportdaten kennzeichnet (d. h. die Nutzdaten für die Transportschicht). Das Submodul 68 führt einen DMA-Abruf der Transportdaten durch, aktualisiert die geeigneten Warteschlangenpaarattribute innerhalb der Warteschlangenpaarattributdatenbank 64 und erzeugt und speichert in dem externen Speicher 48 einen Transportschichtvorspann für das WQE in einem entsprechenden Transportformat; beispielsweise kann das Submodul 68a einen Rohtranspartvorspann erzeugen, wohingegen die Module 68c oder 68d einen Transportvorspann gemäß dem Dienst für eine zuverlässige Verbindung oder dem Dienst für eine unzuverlässige Verbindung erzeugen können.
  • Das Submodul 68 erzeugt dann einen Vorspannzeiger (p1), der die Position des Transportschichtvorspanns kennzeichnet. Das Submodul 68 sendet dann den Nutzdatenzeiger (p2) und den Vorspannzeiger (p1) als eine Paketanforderung 90 zu dem der Verbindung nachgeschalteten Modul 44, wodurch das der Verbindung nachgeschaltete Modul 44 das Transportpaket für die Übertragung auf der Grundlage der zugeleiteten Zeiger erstellen kann. Alternativ kann das Submodul 68 einen Datenrahmenzeiger für eine Systemspeicherstelle erzeugen, in der der Transportschichtrahmen einschließlich des Transportschichtvorspanns und der Transportdaten gespeichert ist. Bei Bedarf kann das Submodul 68 auch den Transportschichtrahmen (einschließlich des Transportschichtvorspanns und der Transportdaten) zu dem der Verbindung nachgeschalteten Modul weiterleiten. Während in den externen Speicher geschrieben wird, kann alternativ die CPU Leerräume am Beginn der Daten belassen, so dass die eigentliche Vorspanninformation, die in den Modulen 68 erzeugt wird, in dem entsprechenden leeren Speicherplatz gespeichert werden kann. Der Zeiger, der zu dem der Verbindung nachgeschalteten Modul 44 weitergeleitet wird, kann derjenige Zeiger sein, der auf den Anfang des Datenrahmens in dem externen Speicher zeigt.
  • Das der Verbindung nachgeschaltete Modul 44 ruft in Reaktion auf den Empfang der Transportschichtinformation (beispielsweise des Transportschichtrahmens, der Paketanforderung, etc.) den Transportschichtvorspann und die Transportschichtnutzdaten aus dem Systemspeicher 48 ab, um das Übertragungspaket zu erzeugen und in einem Sende-FIFO 70 speichern. Insbesondere umfasst das der Verbindung nachgeschaltete Modul 44 ferner ein Verbindungsschichtsteuermodul 72, das ausgebildet ist, das Übertragungspaket zu erzeugen, indem Verbindungsschichtfelder (beispielsweise lokale und globale Vorspannbereiche zum Weiterleiten, zyklische Redundanzprüf-(CRC) Felder, etc.) erzeugt werden, das Übertragungspaket in dem Sende-FIFO 70 gespeichert wird und die Verbindungsschichtsteueroperationen gemäß der InfiniBand-Architekturspezifikation ausgeführt werden. Sobald das Übertragungspaket erzeugt ist, werden die Zeiger zu dem freien Pufferverwalter 76 weitergeleitet, der nachfolgend beschrieben ist.
  • Das Verbindungsschichtsteuermodul 72 gibt die Übertragungspakete gemäß einer Datenstromsteuerung auf Kreditbasis aus. Insbesondere überwacht das Verbindungsschichtsteuermodul 72 die verfügbaren Kredite für das Übertragen eines Übertragungspakets auf der zugeordneten virtuellen Verbindung. Insbesondere werden Kredite auf Basis einer virtuellen Verbindung verwendet, wobei ein Empfänger einen Kredit auf der Grundlage von Paketen erteilt, die von einem Puffer für eine eingehende virtuelle Verbindung genommen werden; die Kredite werden dem Sender zugeleitet, wodurch dieser die Datenstromsteuerung bewältigen kann. Wenn somit das Verbindungsschichtsteuermodul 72 bestimmt, dass eine identifizierte virtuelle Verbindung eine nicht ausreichende Anzahl an Krediten besitzt, verzögert das Verbindungsschichtsteuermodul 72 die Übertragung des entsprechenden Übertragungspakets, bis eine ausreichende Anzahl an Krediten empfangen ist. Wenn die virtuelle Verbindung eine ausreichende Anzahl an Krediten aufweist, leitet das Verbindungsschichtsteuermodul 72 das Übertragungspaket an das MAC-Modul 46 für die Versendung weiter.
  • Das MAC-Modul 46 ist so ausgebildet, um das in den Sende-FIFO 70 gespeicherte Übertragungspaket gemäß der InfiniBand-Architekturspezifikation auszugeben. Insbesondere umfasst das MAC-Modul 46 ein Übertragungsmodul 74, einen Verwalter 76 für freie Puffer, eine eingebettete Prozessoreingangswarteschlange 78 und einen eingebetteten Prozessor 80 mit einem Verbindungssteuerpaketaufbaumodul 82. Das Übertragungsmodul 74 ist so ausgebildet, um Mediumzugriffssteuervorgänge und optional Aktivitäten des Sen der/Empfängers der physikalischen Schicht zur Übertragung des Übertragungspakets auf dem InfiniBand-Netzwerk 10 auszuführen.
  • Der Verwalter 76 für freie Puffer ist so aufgebaut, um verfügbaren Platz aus dem externen Speicher 48 freizugeben, sobald das Übertragungspaket erfolgreich von der antwortenden Partei empfangen wurde. Insbesondere werden die Speicherzeiger für ein Übertragungspaket von dem der Verbindung nachgeschalteten Modul 44 gesendet, sobald das Übertragungspaket erstellt wurde; wenn eine antwortende Partei eine Nachricht sendet, dass das Übertragungspaket gemäß einem zuverlässigen Verbindungsservice erneut zu senden ist, kann das Übertragungspaket von dem der Verbindung nachgeschalteten Modul 44 regeneriert und erneut der antwortenden Partei zugesendet werden. Sobald das Übertragungspaket erfolgreich empfangen wurde, können die Datenrahmenzeiger für die Verwendung durch ein weiteres Mittel freigegeben werden.
  • Die Datenstromsteuerung wird von dem eingebetteten Prozessor 80 auf der Grundlage des Empfangs von Informationen von der eingebetteten Prozessoreingangswarteschlange 78 ausgeführt: insbesondere verwendet das Datenstromsteuerprotokoll gemäß der InfiniBand-Architekturspezifikation eine Datenstromsteuerung auf Kreditbasis. Der eingebettete Prozessor 80 erzeugt Verbindungsstromdatensteuerpakete unter Anwendung des Verbindungsdatenstromsteuerpaketaufbaumoduls 82 auf der Grundlage von Nachrichten, die in der eingebetteten Prozessoreingangswarteschlange 78 gespeichert sind. Der eingebettete Prozessor 80 schreibt das Verbindungsdatenstromsteuerpaket in den externen Speicher 48; der eingebettete Prozessor 80 erzeugt dann ein WQE, das den zugeordneten Vorgang enthält und erzeugt einen Zeiger, der die Stelle eines Datenstromsteuerpakets in dem FIFO 52a des eingebetteten Prozessors für virtuelle Verbindungen kennzeichnet. Das Verbindungsdatenstromsteuerpaket kann dann ausgegeben werden, wodurch eine Anzahl verfügbarer Kredite für eine weitere Übertragungsnachricht spezifiziert wird.
  • Somit kann der eingebettete Prozessor 80 einen Verbindungsdatenstromsteuerrahmen einschließlich des Datenstromsteuervorspanns erzeugen und den Verbindungsdatenstromsteuerrahmen an die eingebettete Prozessoreingangswarteschlange 78 zur Übertragung an das Netzwerk ausgebeben.
  • 2 ist eine Ansicht, die detaillierter die Warteschlangenpaarattributdatenbank 64 gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Die Warteschlangenpaarattributdatenbank 64 umfasst mehrere Warteschlangenpaartabellen 100, die von dem Warteschlangenpaarattributverwaltungsmodul 66 eingerichtet und verwaltet werden, und die so gestaltet sind, um komprimierte Warteschlangenpaareinträge 102 zu speichern. Insbesondere besitzt jede Warteschlangenpaartabelle 100 eine entsprechend zugeordnete Einteilung gemeinsamer Attribute, die durch die Markierung 104 für gemeinsame Attribute dargestellt ist. Beispielsweise kann jede Warteschlangenpaartabelle 100 durch das Warteschlangenpaarattributverwaltungsmodul so gestaltet sein, um Warteschlangenpaare mit dem gleichen Transportdienst zu speichern, wobei Tabellen 100a, 100b, 100c, 100d und 100e von dem Warteschlangenpaarattributverwaltungsmodul 66 verwendet werden, um Warteschlangenpaare für eine zuverlässige Verbindung (RC), ein zuverlässiges Datagramm (RG), eine unzuverlässige Verbindung (UC), ein unzuverlässiges Datagramm (DU) und ein Rohdatagramm (RWD) zu speichern; in diesem Beispiel speichert die Tabelle 100a lediglich Warteschlangenpaareinträge 102, die zur Bereitstellung eines zuverlässigen Verbindungstransportdienstes zugeordnet sind.
  • Alternativ kann jede Warteschlangenpaartabelle 100 so ausgebildet sein, um Warteschlangenpaare mit der gleichen Serviceebene (SL) oder der gleichen virtuellen Verbindung (VL) als das relevante gemeinsame Attribut zu speichern, wie dies durch die Markierung 104 für die gemeinsamen Attribute dargestellt ist. Ferner kann jede Warteschlangenpaartabelle 100 ausgebildet sein, um mehrere gemeinsame Werte zu speichern, wobei die Warteschlangenpaartabelle 100 so gestaltet sein kann, um lediglich Warteschlangenpaareinträge 102 zu speichern, die zum Bereitstellen der relevanten gemeinsamen Werte vorgesehen sind (beispielsweise eine zuverlässige Verbindung und eine Serviceebene mit einem Wert von SL1; oder eine zuverlässige Verbindung und eine virtuelle Verbindungsstrecke mit einem Wert von VL1). Die Speicherung von Warteschlangenpaaren und ausgewählten Warteschlangenpaartabellen auf der Grundlage einer virtuellen Verbindungsstrecke liefert ein höheres Maß an Komprimierung bei einem größeren Maß an Bearbeitungsressourcen, was das Verhalten des HCA beeinflussen kann; das Speichern von Warteschlangenpaaren in ausgewählten Warteschlangenpaartabellen auf der Grundlage einer Seniceebene liefert jedoch ein geringeres Maß an Komprimierung und erfordert weniger Verarbeitungsressourcen im Vergleich zu der Komprimierung auf Basis der virtuellen Verbindungsstrecke, wodurch es dem HCA möglich ist, ein höheres Maß an Leistungsfähigkeit bereitzustellen.
  • Ferner bewahrt das Einfügen komprimierter Warteschlangenpaareinträge in eine Warteschlangenpaartabelle 100 auf der Grundlage der virtuellen Verbindungsstrecke die Prioritätsreihenfolge des Datenverkehrstroms, da Kredite, die für die Datenstromsteuerung verwendet werden, sich auf die virtuelle Verbindungsstrecke gründen.
  • Somit kann jede in 2 gezeigte Warteschlangenpaartabelle 100 so ausgebildet sein, um Warteschlangenpaareinträge 102 für Warteschlangenpaare zu speichern, die den gleichen Transportdienst besitzen; den gleichen Transportdienst und/oder die gleiche Serviceebene besitzen; oder den gleichen Transportdienst und/oder die gleiche virtuelle Verbindung besitzen. Daher ist die Warteschlangenpaarattributdatenbank 64 in der Lage, mehrere virtuelle Warteschlangenpaare unter Anwendung einer geringeren Anzahl physikalischer Warteschlangenpaare zu speichern, wobei die partitionierten Warteschlangentabellen 100 verwendet werden. Zu beachten ist, dass andere relevante Attribute als gemeinsame Attribute bei der Komprimierung der Information, die für einen Warteschlangenpaareintrag 102 erforderlich ist, in einer ausgewählte Warteschlangenpaartabelle verwendet werden können.
  • 3 ist ein Diagramm, das das Verfahren zum Erzeugen und Speichern eines neuen komprimierten Warteschlangenpaareintrags in die Warteschlangenpaarattributdatenbank 64 gemäß einer Ausführungsform der vorliegenden Erfindung zeigt. Das Verfahren beginnt im Schritt 110, wobei das Warteschlangenpaarattributverwaltungsmodul 66 die Warteschlangenpaarattributdatenbank 64 partitioniert, um mehrere Warteschlangenpaartabellen 100 auf der Grundlage ausgewählter gemeinsamer Attribute, beispielsweise die Art des Transportdienstes, die Serviceebene, die virtuelle Verbindung, etc., einzurichten.
  • Nach dem Einrichten der Warteschlangenpaartabellen 100n ist die Warteschlangenpaarattributdatenbank 64 in der Lage, das Speichern eines neuen komprimierten Warteschlangenpaareintrags zu beginnen. Insbesondere empfängt das Warteschlangenpaarattributverwaltungsmodul 66 im Schritt 112 eine Anforderung zum Erzeugen eines neuen Wartenschlangenpaares – beispielsweise auf der Grundlage von Befehlen, die von einem lokalen oder entfernten Kommunikationsverwaltungsmittel oder einem Teilnetz-Verwalter empfangen wurden.
  • Das Warteschlangenpaarattributverwaltungsmodul 66 ermittelt im Schritt 114 die neuen Warteschlangenpaarattribute aus den empfangenen Warteschlangenpaarbefehlen und analysiert im Schritt 116 ausgewählte neue Warteschlangenpaarattribute, um die Warteschlangentabelle 100 zu erkennen, die zum Speichern des neuen komprimierte Warteschlangenpaareintrags zu verwenden ist. Insbesondere vergleicht das Warteschlangenpaarattributverwaltungsmodul 66 im Schritt 118 die ausgewählten Attribute des neuen Warteschlangenpaares mit den entsprechenden gemeinsamen Attributen (die durch die entsprechenden Markierungen 104 dargestellt sind) der Warteschlangenpaartabellen 100, um eine Übereinstimmung zu erkennen.
  • Wenn im Schritt 120 keine Übereinstimmung erkannt wird, erzeugt das Warteschlangenpaarattributverwaltungsmodul 66 im Schritt 122 eine neue Warteschlangenpaartabelle 100, die die ausgewählten Warteschlangenpaarattribute als die gemeinsamen Attribute aufweist. Wenn jedoch im Schritt 120 eine Übereinstimmung erkannt wird, speichert das Warteschlangenpaarattributverwaltungsmodul 66 im Schritt 124 in der ausgewählten Warteschlangenpaartabelle 100 mit den übereinstimmenden Attributen 104 einen neuen komprimierten Wartenschlangenpaareintrag 102, der die notwendigen Attribute des neuen Warteschlangenpaares mit Ausnahme der gemeinsamen Attribute enthält. Somit muss der neue Eintrag 102 lediglich die Information enthalten, die sich von den gemeinsamen Attributen 104 unterscheidet, wodurch die Speicherung mehrerer virtueller Warteschlangenpaare aus einer geringeren Anzahl physikalischer Warteschlangenpaare in der Datenbank 64 möglich ist.
  • Obwohl diese Erfindung im Hinblick darauf beschrieben ist, was gegenwärtig als die praktikabelste bevorzugte Ausführungsform erachtet wird, ist es selbstverständlich, dass die Erfindung nicht auf die offenbarten Ausführungsformen eingeschränkt ist, sondern das im Gegenteil beabsichtigt ist, diverse Modifizierungen und äquivalente Anordnungen, die im Grundgedanken und Schutzbereich der angefügten Patentansprüche eingeschlossen sind, mit abzudecken.

Claims (10)

  1. Verfahren in einem Host-Kanaladapter (12), wobei das Verfahren umfasst: Empfangen einer Anforderung für das Erzeugen eines neuen Wartenschlangenpaares; Identifizieren einer von mehreren Warteschlangenpaartabellen (100) durch Bestimmen einer Übereinstimmung von mindestens einem ausgewählten Attribut für das neue Warteschlangenpaar mit entsprechenden gemeinsamen Attributen der Warteschlangenpaartabellen (100), wobei jede Warteschlangenpaartabelle (100) komprimierte Warteschlangenpaareinträge (102) aufweist, die Warteschlangenpaare mit dem entsprechenden gemeinsamen Attribut repräsentieren; und Speichern eines neuen komprimierten Wartenschlangenpaareintrags (102), der vorgeschriebene Attribute des neuen Warteschlangenpaares aufweist, unterscheidbar zu dem entsprechenden gemeinsamen Attribut in der einen gemeinsamen Wartenschlangenpaartabelle (100), die das entsprechende gemeinsame Attribut, das mit dem mindestens einen ausgewählten Attribut übereinstimmt, aufweist.
  2. Verfahren nach Anspruch 1, wobei das mindestens eine ausgewählte Attribut eine Art eines Transportdienstes spezifiziert, wobei der Schritt des Bestimmens das Bestimmen einer Übereinstimmung der spezifizierten Art des Transportdienstes und der entsprechenden Arten von Transportdiensten der Wartenschlangenpaartabellen (100), die als die entsprechenden gemeinsamen Attribute zugeordnet sind, umfasst.
  3. Verfahren nach Anspruch 2, wobei die gemeinsamen Attribute jeder Warteschlangenpaartabelle (100) die entsprechende Art eines Transportdienstes und eine entsprechende Dienstebene umfassen, wobei der Schritt des Bestimmens ferner das Bestimmen einer Übereinstimmung für die spezifizierte Art des Transportdienstes und eine zugeordnete Dienstebene für das neue Warteschlangenpaar in Bezug zu der Art des Transportdienstes und einer vorgeschriebenen Dienstebene, die jeder der Warteschlangenpaartabellen (100) zugeordnet ist, umfasst.
  4. Verfahren nach Anspruch 3, wobei die spezifizierte Art des Transportdienstes eine zuverlässige Verbindung oder ein zuverlässiges Datagramm oder eine unzuverlässige Verbindung oder ein unzuverlässiges Datagramm oder ein Rohdatagramm spezifiziert.
  5. Verfahren nach Anspruch 2, 3 oder 4, das ferner umfasst: Zuordnen des neuen Warteschlangenpaares zu einer zugeordneten virtuellen Spur, wobei die gemeinsamen Attribute jeder Warteschlangenpaartabelle (100) die entsprechende Art des Transportdienstes und eine entsprechende vorgeschriebene virtuelle Spur enthalten, wobei der Schritt des Bestimmens ferner Bestimmen einer Übereinstimmung für die spezifizierte Art des Transportdienstes und der zugeordneten virtuellen Spur für das neue Warteschlangenpaar mit der Art des Transportdienstes und der vorgeschriebenen virtuellen Spur für jede der Warteschlangenpaartabellen (100) umfasst.
  6. Verfahren nach Anspruch 1, wobei das mindestens eine ausgewählte Attribut eine zugeordnete virtuelle Spur spezifiziert und wobei der Schritt des Bestimmens das Bestimmen einer Übereinstimmung der zugeordneten virtuellen Spur und entsprechenden vorgeschriebenen virtuellen Spuren, die als die entsprechenden gemeinsamen Attribute der Warteschlangenpaartabellen (100) zugeordnet sind, umfasst.
  7. Host-Kanaladapter (12) mit: einer Datenbank (64) mit Warteschlangenpaarattributen, die ausgebildet ist, um vorgeschriebene Attribute von Warteschlangenpaaren zu speichern, wobei die Datenbank (64) für Warteschlangenpaarattribute mehrere Warteschlangenpaartabellen (100) mit entsprechenden gemeinsamen Attributen enthält, wobei jede Warteschlangenpaartabelle (100) ausgebildet ist, um komprimierte Warteschlangenpaareinträge (102), die Warteschlangenpaare mit dem entsprechenden gemeinsamen Attribut repräsentieren, zu speichern; und einem Modul (66) zum Verwalten von Warteschlangenpaarattributen, das ausgebildet ist, ein neues Warteschlangenpaar als einen neuen komprimierten Wartenschlangenpaarein trag (102) in einer identifizierten Tabelle der Warteschlangenpaartabellen (100) mit dem entsprechenden gemeinsamen Atribut, das mit mindestens einem ausgewählten Attribut des neuen Warteschlangenpaares übereinstimmt, wobei der neue komprimierte Warteschlangenpaareintrag (102) vorgeschriebene Attribute des neuen Warteschlangenpaares aufweist, unterscheidbar zu dem entsprechenden gemeinsamen Attribut zu speichern.
  8. Host-Kanaladapter nach Anspruch 7, wobei das gemeinsame Attribut eine Art eines Transportdienstes und/oder eine Dienstebene umfasst.
  9. Host-Kanaladapter nach Anspruch 7, wobei das gemeinsame Attribut eine Art eines Transportdienstes und/oder eine virtuelle Spur umfasst.
  10. Host-Kanaladapter nach Anspruch 9, wobei das mindestens eine ausgewählte Attribut des neuen Warteschlangenpaares eine zuverlässige Verbindung oder ein zuverlässiges Datagramm oder eine unzuverlässige Verbindung oder ein unzuverlässiges Datagramm oder ein Rohdatagramm als die Art des Transportdienstes spezifiziert.
DE60201682T 2001-06-18 2002-01-29 Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute Expired - Lifetime DE60201682T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/881,848 US6480500B1 (en) 2001-06-18 2001-06-18 Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes
US881848 2001-06-18
PCT/US2002/002541 WO2002103579A1 (en) 2001-06-18 2002-01-29 Arrangement for creating multiple virtual queue pairs from a compressed queue pair based on shared attributes

Publications (2)

Publication Number Publication Date
DE60201682D1 DE60201682D1 (de) 2004-11-25
DE60201682T2 true DE60201682T2 (de) 2005-03-24

Family

ID=25379336

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60201682T Expired - Lifetime DE60201682T2 (de) 2001-06-18 2002-01-29 Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute

Country Status (8)

Country Link
US (1) US6480500B1 (de)
EP (1) EP1399849B1 (de)
JP (1) JP4150336B2 (de)
KR (1) KR100883405B1 (de)
CN (1) CN1285046C (de)
DE (1) DE60201682T2 (de)
TW (1) TWI241804B (de)
WO (1) WO2002103579A1 (de)

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6885673B1 (en) * 2001-05-21 2005-04-26 Advanced Micro Devices, Inc. Queue pair wait state management in a host channel adapter
US7116673B2 (en) * 2001-08-09 2006-10-03 International Business Machines Corporation Queue pair resolution in infiniband fabrics
US7095750B2 (en) * 2001-08-16 2006-08-22 International Business Machines Corporation Apparatus and method for virtualizing a queue pair space to minimize time-wait impacts
US6922749B1 (en) * 2001-10-12 2005-07-26 Agilent Technologies, Inc. Apparatus and methodology for an input port of a switch that supports cut-through operation within the switch
US6785775B1 (en) * 2002-03-19 2004-08-31 Unisys Corporation Use of a cache coherency mechanism as a doorbell indicator for input/output hardware queues
US7181482B2 (en) * 2002-08-01 2007-02-20 Oracle International Corporation Buffered message queue architecture for database management systems
US7185034B2 (en) * 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with guaranteed at least once delivery
US7185033B2 (en) * 2002-08-01 2007-02-27 Oracle International Corporation Buffered message queue architecture for database management systems with unlimited buffered message queue with limited shared memory
US7397768B1 (en) 2002-09-11 2008-07-08 Qlogic, Corporation Zone management in a multi-module fibre channel switch
US7076569B1 (en) * 2002-10-18 2006-07-11 Advanced Micro Devices, Inc. Embedded channel adapter having transport layer configured for prioritizing selection of work descriptors based on respective virtual lane priorities
US7010633B2 (en) * 2003-04-10 2006-03-07 International Business Machines Corporation Apparatus, system and method for controlling access to facilities based on usage classes
US7409460B1 (en) 2003-05-12 2008-08-05 F5 Networks, Inc. Method and apparatus for managing network traffic
US9959544B2 (en) * 2003-05-22 2018-05-01 International Business Machines Corporation Updating an application on a smart card and displaying an advertisement
US7525983B2 (en) * 2003-07-21 2009-04-28 Qlogic, Corporation Method and system for selecting virtual lanes in fibre channel switches
US7447224B2 (en) * 2003-07-21 2008-11-04 Qlogic, Corporation Method and system for routing fibre channel frames
US7406092B2 (en) 2003-07-21 2008-07-29 Qlogic, Corporation Programmable pseudo virtual lanes for fibre channel systems
US7684401B2 (en) 2003-07-21 2010-03-23 Qlogic, Corporation Method and system for using extended fabric features with fibre channel switch elements
US7477655B2 (en) 2003-07-21 2009-01-13 Qlogic, Corporation Method and system for power control of fibre channel switches
US7420982B2 (en) 2003-07-21 2008-09-02 Qlogic, Corporation Method and system for keeping a fibre channel arbitrated loop open during frame gaps
US7894348B2 (en) 2003-07-21 2011-02-22 Qlogic, Corporation Method and system for congestion control in a fibre channel switch
US7430175B2 (en) 2003-07-21 2008-09-30 Qlogic, Corporation Method and system for managing traffic in fibre channel systems
US7792115B2 (en) 2003-07-21 2010-09-07 Qlogic, Corporation Method and system for routing and filtering network data packets in fibre channel systems
US7646767B2 (en) 2003-07-21 2010-01-12 Qlogic, Corporation Method and system for programmable data dependant network routing
US7555002B2 (en) * 2003-11-06 2009-06-30 International Business Machines Corporation Infiniband general services queue pair virtualization for multiple logical ports on a single physical port
US7428598B2 (en) * 2003-11-20 2008-09-23 International Business Machines Corporation Infiniband multicast operation in an LPAR environment
US20050220128A1 (en) * 2004-04-05 2005-10-06 Ammasso, Inc. System and method for work request queuing for intelligent adapter
US7930377B2 (en) 2004-04-23 2011-04-19 Qlogic, Corporation Method and system for using boot servers in networks
US7340167B2 (en) 2004-04-23 2008-03-04 Qlogic, Corporation Fibre channel transparent switch for mixed switch fabrics
US8295299B2 (en) 2004-10-01 2012-10-23 Qlogic, Corporation High speed fibre channel switch element
US7792274B2 (en) * 2004-11-04 2010-09-07 Oracle International Corporation Techniques for performing multi-media call center functionality in a database management system
JP4596889B2 (ja) * 2004-11-08 2010-12-15 株式会社日立製作所 ストレージシステムの管理方法
CN100442256C (zh) * 2004-11-10 2008-12-10 国际商业机器公司 提供用于i/o适配器的队列对的方法、系统和存储介质
KR100643781B1 (ko) * 2004-12-17 2006-11-10 김영량 냉간단조 공정에 사용되는 표면 윤활처리제의 제조방법
US7581021B2 (en) * 2005-04-07 2009-08-25 International Business Machines Corporation System and method for providing multiple virtual host channel adapters using virtual switches
KR100705600B1 (ko) * 2006-03-13 2007-04-09 삼성전자주식회사 네트워크 엘리먼트 관리시스템의 데이터베이스 관리장치 및그 방법
US20080080504A1 (en) * 2006-09-28 2008-04-03 Mircea Gusat System and method for managing flow of a plurality of packets in a lossless communication network
WO2009037732A1 (ja) * 2007-09-21 2009-03-26 Fujitsu Limited ラベルスイッチングネットワークにおける通信装置
US8260956B2 (en) * 2008-03-14 2012-09-04 Microsoft Corporation Data transmission queuing using fault prediction
US9871734B2 (en) 2012-05-28 2018-01-16 Mellanox Technologies, Ltd. Prioritized handling of incoming packets by a network interface controller
US9014006B2 (en) 2013-01-31 2015-04-21 Mellanox Technologies Ltd. Adaptive routing using inter-switch notifications
WO2014155043A1 (en) 2013-03-28 2014-10-02 British Telecommunications Public Limited Company Re-marking of packets for queue control
US9729473B2 (en) 2014-06-23 2017-08-08 Mellanox Technologies, Ltd. Network high availability using temporary re-routing
US9806994B2 (en) 2014-06-24 2017-10-31 Mellanox Technologies, Ltd. Routing via multiple paths with efficient traffic distribution
US9894005B2 (en) 2015-03-31 2018-02-13 Mellanox Technologies, Ltd. Adaptive routing controlled by source node
WO2017021048A1 (en) 2015-08-06 2017-02-09 British Telecommunications Public Limited Company Data packet network
CN107852371B (zh) 2015-08-06 2021-06-29 英国电讯有限公司 数据分组网络
US9973435B2 (en) 2015-12-16 2018-05-15 Mellanox Technologies Tlv Ltd. Loopback-free adaptive routing
US11018947B2 (en) 2016-01-27 2021-05-25 Oracle International Corporation System and method for supporting on-demand setup of local host channel adapter port partition membership in a high-performance computing environment
US10326860B2 (en) 2016-01-27 2019-06-18 Oracle International Corporation System and method for defining virtual machine fabric profiles of virtual machines in a high-performance computing environment
US10972375B2 (en) * 2016-01-27 2021-04-06 Oracle International Corporation System and method of reserving a specific queue pair number for proprietary management traffic in a high-performance computing environment
US10819621B2 (en) 2016-02-23 2020-10-27 Mellanox Technologies Tlv Ltd. Unicast forwarding of adaptive-routing notifications
US10178029B2 (en) 2016-05-11 2019-01-08 Mellanox Technologies Tlv Ltd. Forwarding of adaptive routing notifications
US10540217B2 (en) 2016-09-16 2020-01-21 Oracle International Corporation Message cache sizing
US10200294B2 (en) 2016-12-22 2019-02-05 Mellanox Technologies Tlv Ltd. Adaptive routing based on flow-control credits
US10644995B2 (en) 2018-02-14 2020-05-05 Mellanox Technologies Tlv Ltd. Adaptive routing in a box
US11005724B1 (en) 2019-01-06 2021-05-11 Mellanox Technologies, Ltd. Network topology having minimal number of long connections among groups of network elements
US11575594B2 (en) 2020-09-10 2023-02-07 Mellanox Technologies, Ltd. Deadlock-free rerouting for resolving local link failures using detour paths
US11411911B2 (en) 2020-10-26 2022-08-09 Mellanox Technologies, Ltd. Routing across multiple subnetworks using address mapping
US11870682B2 (en) 2021-06-22 2024-01-09 Mellanox Technologies, Ltd. Deadlock-free local rerouting for handling multiple local link failures in hierarchical network topologies
US11765103B2 (en) 2021-12-01 2023-09-19 Mellanox Technologies, Ltd. Large-scale network with high port utilization

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5442752A (en) * 1992-01-24 1995-08-15 International Business Machines Corporation Data storage method for DASD arrays using striping based on file length
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US6006232A (en) * 1997-10-21 1999-12-21 At&T Corp. System and method for multirecord compression in a relational database
WO1999023585A1 (en) * 1997-11-05 1999-05-14 Amazon.Com, Inc. System and method for selecting rows from dimensional databases
US6170030B1 (en) * 1998-01-23 2001-01-02 Intel Corporation Method and apparatus for restreaming data that has been queued in a bus bridging device
US6081848A (en) * 1998-08-14 2000-06-27 Intel Corporation Striping packets of data across multiple virtual channels
US6243787B1 (en) * 2000-04-27 2001-06-05 Mellanox Technologies Ltd. Synchronization of interrupts with data pockets

Also Published As

Publication number Publication date
EP1399849A1 (de) 2004-03-24
KR100883405B1 (ko) 2009-02-11
JP2004534311A (ja) 2004-11-11
DE60201682D1 (de) 2004-11-25
KR20040010707A (ko) 2004-01-31
CN1514977A (zh) 2004-07-21
TWI241804B (en) 2005-10-11
JP4150336B2 (ja) 2008-09-17
US6480500B1 (en) 2002-11-12
CN1285046C (zh) 2006-11-15
WO2002103579A1 (en) 2002-12-27
EP1399849B1 (de) 2004-10-20

Similar Documents

Publication Publication Date Title
DE60201682T2 (de) Anordnung zur erzeugung mehrerer virtueller warteschlangenpaare aus einer komprimierten warteschlange auf der basis gemeinsamer attribute
DE60024228T2 (de) Dynamische zuweisung verkehrsklassen an einer prioritätswarteschlange in einer paketbeförderungsvorrichtung
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE602005003142T2 (de) Vorrichtung und verfahren zur unterstützung von verbindungsherstellung in einem offload der netzwerkprotokollverarbeitung
DE112008002550B4 (de) Verfahren und System für virtuelle Schnittstellenkommunikation
DE60118799T2 (de) Netzwerksvorrichtung zum selektiven datenzeitschlitz verwerfen
DE69628631T2 (de) Dateneingangs/-ausgangsvorrichtung durch Referenzierung zwischen zentralen Verarbeitungseinheiten und Ein-/Ausgabevorrichtungen
DE69936225T2 (de) Gleichzeitige serielle verbindung zur integrierung von funktionellen blöcken in eine integrierte schaltungsvorrichtung
EP0885506B1 (de) Verfahren und anordnung zur übertragung eines datenpakets im ethernet von einer ersten anordnung zu mindestens einer zweiten anordnung
DE112020002498T5 (de) System und verfahren zur erleichterung einer effizienten paketweiterleitung in einer netzwerkschnittstellensteuerung (nic)
DE69826680T2 (de) Hochintegrierte mehrschichtige Vermittlungsstellenelementarchitektur
DE60203450T2 (de) Verfahren und Schalter zur Überlastregelung
DE60114097T2 (de) Verfahren und System zur Verbesserung der Netzleistungsfähigkeit unter Verwendung eines leistungssteigernden Proxies
DE69931052T2 (de) Middleware-basiertes echtzeit-kommunikationssystem
DE60027404T2 (de) Kreditbasiertes flusskontrollverfahren
US8619793B2 (en) Dynamic assignment of traffic classes to a priority queue in a packet forwarding device
DE60029879T2 (de) System zur mehrschichtigen Bereitstellung in Computernetzwerken
DE60213974T2 (de) Verfahren und vorrichtung zur prioritäts-basierten flusskontrolle in einer ethernet-architektur
DE60300333T2 (de) Verfahren und Vorrichtung für ein flexibles Rahmenverarbeitungs und Klassifikationssystem
DE69433293T2 (de) Netzwerkübertragungsverfahren für Systeme mit virtuellem Speicher
DE69937598T2 (de) Auf Identifikationsmarken basierendes Paketvermittlungssystem
DE602005004334T2 (de) Nms zur Verarbeitung von Multi-Server Ereignissen
DE60120321T2 (de) Dienstqualitätenanpassung und -bereitstellung für einen Datenkommunikationsschalter und zugehöriges Verfahren
DE10247164B4 (de) Verfahren und Vorrichtung für eine Netzwerkbandbreitenoptimierung
DE202017106795U1 (de) Vorrichtung zur skalierbaren Verkehrsformung bei einem Empfänger mit einer zeitlich indexierten Datenstruktur

Legal Events

Date Code Title Description
8364 No opposition during term of opposition