DE112006001167T5 - Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken - Google Patents

Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken Download PDF

Info

Publication number
DE112006001167T5
DE112006001167T5 DE112006001167T DE112006001167T DE112006001167T5 DE 112006001167 T5 DE112006001167 T5 DE 112006001167T5 DE 112006001167 T DE112006001167 T DE 112006001167T DE 112006001167 T DE112006001167 T DE 112006001167T DE 112006001167 T5 DE112006001167 T5 DE 112006001167T5
Authority
DE
Germany
Prior art keywords
description element
pcie
ordered list
traffic class
switching fabric
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.)
Ceased
Application number
DE112006001167T
Other languages
English (en)
Inventor
Mark Tempe Sullivan
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of DE112006001167T5 publication Critical patent/DE112006001167T5/de
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Verfahren, das aufweist:
an einer ersten Vorrichtung eines Switching-Fabric-Netzwerks, wobei die erste Vorrichtung mit einer zweiten Vorrichtung des Switching-Fabric-Netzwerks durch einen virtuellen Kanal verbunden ist,
Empfangen von Anfragen von einer oder mehreren Anwendungen, wobei jede Anfrage für die zweite Vorrichtung bestimmt ist;
Erzeugen, für jede Anfrage, eines Beschreibungselementes, das eine Verkehrsklassenbezeichnung aufweist; und
Hinzufügen des Beschreibungselements zu einer geordneten Liste von Beschreibungselementen, wobei das Beschreibungselement einen Platz in der geordneten Liste hat, der auf der Verkehrsklassenbezeichnung des Beschreibungselementes basiert.

Description

  • Diese Erfindung betrifft das Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken.
  • PCI (Peripheral Component Interconnect – Anschluß von peripheren Komponenten) Express ist ein serieller Eingabe/Ausgabe (I/O – Input/Output)-Anschlußstandard, der entwickelt wor den ist, um die Erfordernisse erhöhter Bandbreite der nächsten Generation von Computersystemen zu erfüllen. Die PCI Special Interest Group (PCI-SIG) verwaltet eine Anzahl von PCI-Spezifikationen, einschließlich der PCI Express Basisspezifikation, Auflage 1.0a, 15. April 2003 (erhältlich von der PCI-SIG unter www.pcisig.com) als Standards, die für die Industrie offen sind, und liefert die Spezifikationen an seine Mitglieder.
  • Ein PCI Express („PCIe")-Fabric umfaßt eine einzelne PCIe Hauptvorrichtung (auch als ein „Host-Prozessor" bezeichnet), die einen globalen Speicheradreßraum eines Systems steuert, das mehrere PCIe I/O-Vorrichtungen aufweist. Diese PCIe I/O-Vorrichtungen umfassen z.B. Graphikkarten, Netzwerkschnittstellenkarten und TV-Abstimmkarten, um nur einige zu nennen. Nach dem Anlauf- und Aufzählprozeß befragt die PCIe Hauptvorrichtung das gesamte System, indem es durch die hierarchische Baumtopologie läuft, und ortet alle PCIe I/O-Vorrichtungen in dem System. Ein Adreßraum wird jeder PCIe I/O-Vorrichtung in dem globalen Speicheradreßraum von der PCIe Hauptvorrichtung zugewiesen, damit die PCIe Hauptvorrichtung mit ihr kommunizieren kann.
  • Zwei PCIe I/O-Vorrichtungen kommunizieren, indem zunächst Daten von einer ursprünglichen PCIe I/O-Vorrichtung hinauf zu der PCIe Hauptvorrichtung durch den Adreßraum geleitet werden, der der ursprünglichen PCIe I/O-Vorrichtung zugewiesen ist. Die Daten werden dann von der PCIe Hauptvorrichtung zu dem Adreßraum einer Ziel-PCIe I/O-Vorrichtung bewegt und wandern anschließend herunter zu der Ziel-PCIe I/O-Vorrichtung. Eine solche Kommunikation wird nicht als eine direkte Beziehung gleichrangiger Beteiligter zwischen den beiden PCIe I/O-Vorrichtungen betrachtet, sondern als eine indirekte, die von der PCIe Hauptvorrichtung verwaltet wird.
  • PCIe wurde so gestaltet, daß es voll kompatibel mit dem weithin verwendeten lokalen Busstandard PCI ist. PCI beginnt, an die Grenzen seiner Möglichkeiten zu stoßen, und obwohl Erweiterungen für den PCI-Standard entwickelt worden sind, um höhere Bandbreiten und schnellere Taktgeschwindigkeiten zu unterstützen, können diese Erweiterungen unzulänglich sein, um die schnell anwachsenden Anforderungen an Bandbreite der PCs in der nahen Zukunft zu erfüllen. Mit ihrer mit Hochgeschwindigkeit arbeitenden und skalierbaren seriellen Architektur kann PCIe einen attraktive Option zur Verwendung mit oder als möglicher Ersatz für PCI in Computersystemen sein. PCIe ist geeignet, für die Skalierbarkeit in Systemen bei einer einzigen PCIe Hauptvorrichtung mit einer Anzahl von PCIe I/O-Vorrichtungen zu sorgen. Da die gesamte Kommunikation unter der Steuerung einer einzigen PCIe Hauptvorrichtung steht, ist die PCIe Architektur im allgemeinen nicht gut für einen großen Anwendungsraum geeignet, der Multi-Host-Kommunikation und Kommunikation mit gleichrangigen Beteiligten umfaßt. Advanced Switching Interconnect (ASI) ist eine Technologie, die auf der PCIe Architektur basiert und die die Standardisierung verschiedener Rückwandplatinen ermöglicht. ASI benutzt ein auf Paketen basierendes Transaktionsschichtprotokoll, das über die physikalische Schicht und die Datenverbindungsschichten arbeitet. Die ASI-Architektur liefert eine Anzahl von Merkmalen, die Multi-Host-Kommunikationsgeräten, Kommunikationsgeräten für gleichrangige Beteiligte, so wie Bladeservern, Cluster, Speicheranordnungen, Telekommunikationsroutern und Schaltern gemeinsam sind. Diese Merkmale umfassen die Unterstützung flexibler Topologien, des Paket-Routing, der Überlast-Verwaltung (z.B. kreditbasierter Ablaufsteuerung), der Redundanz des Fabric und Ausfallmechanismen. Die Advanced Switching Interconnect Special Interest Group (ASI-SIG) ist eine gemeinschaftliche Handelsorganisation, die damit betraut ist, einen Switching Fabric-Anschlußstandard zur Verfügung zu stellen, dessen Spezifikationen, einschließlich der Advanced Switching Core Architecture Specification, Auflage 1.0, Dezember 2003 (erhältlich bei der ASI-SIG unter www.asi-sig.com) sie an ihre Mitglieder gibt.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockschaubild eines Switching-Fabric-Netzwerks.
  • 2 ist ein Ablaufdiagramm eines Erzeugungsprozesses für eine verknüpfte Liste aus Beschreibungselementen in einer Vorrichtung eines Switching-Fabric-Netzwerkes.
  • 3 ist ein Schaubild eines Beschreibungselementes.
  • 4a zeigt ein Beispiel einer vorliegenden verknüpften Liste.
  • 4b zeigt ein Beschreibungselement, das zu der verknüpften Liste hinzugefügt werden soll.
  • 4c zeigt ein Beispiel einer neuen verknüpften Liste, die das Beschreibungselement der 4b enthält.
  • GENAUE BESCHREIBUNG
  • Mit Bezug auf 1 ist ein PCI Express (PCIe) Fabric 102 ein System, das eine PCIe Hauptvorrichtung 104 und mehrere PCIe I/O-Vorrichtungen 106, 108, 110 umfaßt, die alle über PCIe Verbindungen 112, 114, 116 miteinander verbunden sind. Jede Vorrichtung 104, 106, 108, 110 des PCIe Fabric 102 hat eine PCIe Schnittstelle, die ein Teil der PCIe Architektur ist, welche durch die PCI Express Basisspezfikation definiert ist. Jede Vorrichtung 104, 106, 108, 110 ist in einem einzelnen ebenen Adreßraum abgebildet und kann durch PCI-ähnliche Ladespeicherzugriffe adressiert werden.
  • Damit die PCIe Hauptvorrichtung 104 mit der PCI Express Basisspezifikation verträglich ist, muß die PCIe Hauptvorrichtung 104 wenigstens einen virtuellen Kanal (d.h. VC0) an jedem seiner PCIe Ports implementieren (wobei jeder in 1 durch ein Quadrat mit Kreuzschraffierung veranschaulicht ist) und kann bis zu acht VCs (d.h. VC0 bis VC7) pro PCIe Port unterstützen. Die PCIe Architektur umfaßt einen PCIe VC Mechanismus, der Unterstützung zum Transport von Verkehr durch das PCIe Fabric 102 liefert, der unterschieden wird, indem Verkehrsklassen (TC – Traffic Class)-Bezeichnungen verwendet werden, von denen es im allgemeinen acht gibt (d.h. TC0 bis TC7), ungeachtet der Anzahl von VCs, die von der Vorrichtung unterstützt werden. TC-Bezeichnungen werden verwendet, um an Dienstpunkten (z.B. einem PCIe Schalter (nicht gezeigt)) innerhalb des PCIe Fabric 102 geeignete Dienststrategi en anzuwenden. In der PCIe Architektur liegen Prioritätswerte für Verkehr im Bereich von der höchsten (d.h. Verkehr mit einer TC7-Bezeichnung) zur niedrigsten (d.h. Verkehr mit einer TC0-Bezeichnung).
  • Der Verkehr im PCIe Fabric ist mit den VCs verknüpft, indem Pakete mit bestimmten TC-Bezeichnungen auf ihre entsprechenden VCs abgebildet werden. Der PCIe VC Mechanismus ermöglicht das flexible Abbilden von TCs auf die VCs. In der einfachsten Form können TCs auf VCs auf einer Basis 1:1 abgebildet werden. Um Leistungs-Kosten-Kompromisse zu ermöglichen, können mehrere TCs auf einen einzigen VC abgebildet werden. Jedoch ist ein Problem, das auftreten kann, wenn mehre TCs auf einen einzigen VC abgebildet werden, daß Pakete, die auf den einzigen VC gebracht werden, Blockierbedingungen unterworfen werden, da Pakete mit unterschiedlich zugewiesenen TC-Bezeichnungen keine Anforderungen bezüglich der Reihenfolge untereinander haben. In einem solchen Szenario gibt es keine Differenzierung der Verkehrsströme zwischen den zwei PCIe Vorrichtungen 104, 106, 108, 110.
  • Die beispielhaften Techniken, die hiernach beschrieben sind, ermöglichen es, daß eine PCIe Hauptvorrichtung 104, die mit einem Chipsatz implementiert ist, der nur einen VC pro PCIe Port unterstützt (d.h. mit einem Chipsatz, der nur einen VC unterstützt), mehrere virtuelle Kanäle zwischen der PCIe Hauptvorrichtung 104 und jeder PCIe I/O-Vorrichtung 106, 108, 110 simuliert. Obwohl die beispielhaften Techniken in einem auf PCIe basierenden Speichersystemkontext beschrieben sind, sind die Techniken auch auf andere PCIe-basierte Systeme (z.B. einem auf PCIe basierenden Netzwerkkommunikationssystem) und anderen Switching-Fabric-Netzwerksystemen (z.B. einem auf ASI basierenden Bladecomputersystem und einem auf ASI basierenden Speichersystem) anwendbar.
  • In dem Kontext des Speichersystems ist jede PCIe I/O-Vorrichtung 106, 108, 110 eine Speichervorrichtung, welche Speicherraum umfaßt, aus dem durch eine oder mehrere Anwendungen (z.B. Videoeditieranwendungen, Anwendungen für computerunterstütztes Entwerfen (CAD – Computer Aided Drafting)) an der PCIe Hauptvorrichtung 104 gelesen oder in ihn geschrieben werden kann (wobei Lese- bzw. Schreibanfragen verwendet werden).
  • In dem beispielhaften Szenario, das hiernach mit Bezug auf die 2 und 3 beschrieben ist, erzeugt eine Anwendung (z.B. Anw. 1 118a) Schreibanfragen, die an die PCIe I/O-Vorrichtung 106 gerichtet werden, und eine weitere Anwendung (z.B. Anw. 2 118b) erzeugt Schreibanfragen, die auch an dieselbe PCIe I/O-Vorrichtung 106 gerichtet werden. Die Schreibanfragen werden von einem Gerätetreiberprogramm empfangen (202), das auf einer zentralen Verarbeitungseinheit (CPU – Central Processing Unit) 120 der PCIe Hauptvorrichtung 104 läuft, in der Reihenfolge, in der die Anfragen von den Anwendungen erzeugt werden.
  • Die CPU 120 kann ein Mikroprozessor, ein Mikrocontroller, eine programmierbare Logik oder dergleichen sein, die in der Lage ist, Befehle (z.B. ein Gerätetreiberprogramm) auszuführen, um einen oder mehrere Arbeitsgänge auszuführen. Solche Befehle können in einem Systemspeicher 122 (d.h. einem lokalen Speicher) oder in einer anderen Speichervorrichtung abgelegt sein, die eine oder mehrere Festplattenlaufwerke oder andere interne oder externe Speichervorrichtungen sein können, die mit der CPU 120 über ein oder mehrere Kommunikationsmedien, so wie einen Bus 126, verbunden sind.
  • Die CPU 120 führt Befehle des Gerätetreiberprogramms aus, um für jede Schreibanfrage, die von einer Anwendung 118a118n empfangen worden ist, ein Beschreibungselement 300 (d.h. Beschreibungselement 1, Beschreibungselement 2, ... Beschreibungselement n) zu erzeugen (204), das eine Quellenadresse 302, eine Zieladresse 304, einen Adresse 306 für das nächste Beschreibungselement, eine Bytezählung 308 und einen Satz Merker 310 enthält. Jedes Beschreibungselement beschreibt einen Block Daten (dessen Größe durch die Beizählung definiert ist), der von dem Ort in einem Speicherraum der PCIe Hauptvorrichtung 104, der mit der Quellenadresse verknüpft ist, zu einem Speicherraum der PCIe I/O-Vorrichtung 106, der mit der Zieladresse verknüpft ist, bewegt werden soll. Der Satz Merker 310 umfaßt ein TC-Feld 312 mit drei Bit.
  • Bei manchen Implementierungen setzt das Gerätetreiberprogramm auf Anfrage automatisch das TC-Feld 312 mit drei Bit. Das heißt, die Anwendung 118a118n legt die TC-Bezeichnung fest, die mit der Anfrage verknüpft ist, und das Gerätetreiberprogramm setzt die Bits entsprechend. Jede Anwendung 118a118n kann eine einzige TC-Bezeichnung festlegen, die mit allen Anfragen, die sie erzeugt, verknüpft ist, mehrere unterschiedliche TC-Bezeichnungen festlegen, die mit den Anfragen, die sie erzeugt, verknüpft sind, oder als Alternative, in dem Fall einer Multi-Threaded-Anwendung, kann die Anwendung unterschiedliche TC-Bezeichnungen für jeden Thread festlegen. Bei anderen Implementierungen setzt das Gerätetreiberprogramm automatisch das TC-Feld 312 mit drei Bit über die Anwendung 118a118n. Das heißt, das Gerätetreiberprogramm identifiziert die Anwendung 118a118n, die die Anfrage erzeugt hat, und setzt die Bits entsprechend.
  • Nach dem Erzeugen eines Beschreibungselementes („erzeugtes Beschreibungselement") für eine Schreibanfrage, die von einer Anwendung erhalten worden ist, bestimmt (206) das Gerätetreiberprogramm zunächst, ob eine Maschine 130 für den direkten Speicherzugriff („DMA” – Direct Memory Access) der PCIe Hauptvorrichtung 104 leerläuft oder belegt ist.
  • Wenn die DMA-Maschine 130 leerläuft, baut (208) das Gerätetreiberprogramm eine geordnete Liste auf (z.B. die verknüpfte Liste 128 in dem Systemspeicher 122), wobei das erzeugte Beschreibungselement verwendet wird, und setzt ein Bit in einem Register 132 der DMA-Maschine 130, um die DMA-Maschine 130 zu starten (210). Wenn sie einmal gestartet ist, ist die DMA-Maschine 130 so konfiguriert, daß sie die Beschreibungselemente in der verknüpften Liste 128 in sequentieller Reihenfolge verarbeitet, beginnend mit dem Beschreibungselement an dem Kopf der verknüpften Liste 128. In dem beispielhaften Szenario verarbeitet die DMA-Maschine 130 das Beschreibungselement, indem ein PCIe Transaktionsschichtpaket (TLP – Transaction Layer Packet) basierend auf dem Beschreibungselement erzeugt und ein PCIe Port ausgewählt wird, zu dem das PCIe TLP über einen internen Bus 134 überführt wird. Bei der standardmäßigen PCIe Hauptvorrichtung 104 der 1 würde das PCIe TLP zu einem physikalisch eindeutigen beispielhaften Port stromabwärts überführt werden, der minimal aus einer physikalischen PCIe-Schicht, einer PCIe Datenverbindungsschicht und einer PCIe Transaktionsschichtschnittstelle besteht.
  • Wenn die DMA-Maschine 130 damit beschäftigt ist, ein Beschreibungselement zu verarbeiten („gegenwärtig verarbeitetes Beschreibungselement"), setzt das Gerätetreiberprogramm ein Bit in einem Register 132 der DMA-Maschine 130, um die DMA-Maschine 130 anzuhalten (212), und vergleicht (214) die TC des erzeugten Beschreibungselementes mit dem TC jedes Beschreibungselementes in der verknüpften Liste 128, beginnend mit dem Beschreibungselement, auf das das gegenwärtig verarbeitete Beschreibungselement zeigt, bis das Gerätetreiberprogramm ein Beschreibungselement identifiziert, das eine niedrigere TC-Bezeichnung hat als die des erzeugten Beschreibungselementes.
  • Wenn das Gerätetreiberprogramm das untere Ende der verknüpften Liste 128 erreicht, bevor eine solche Identifikation geschehen ist, fügt (216) das Gerätetreiberprogramm das erzeugte Beschreibungselement an das untere Ende der verknüpften Liste 128 an und setzt ein Bit in einem Register der DMA-Maschine 130, um die DMA-Maschine 130 zu starten (218).
  • Wenn jedoch das Gerätetreiberprogramm ein Beschreibungselement lokalisiert („identifiziertes Beschreibungselement"), das eine niedrigere TC-Bezeichnung hat als die des erzeugten Beschreibungselementes, bricht das Gerätetreiberprogramm die Kette der Beschreibungselemente, die die verknüpfte Liste 128 bilden, auf und fügt (220) das erzeugte Beschreibungselement zwischen dem identifizierten Beschreibungselement und seinem voranstehenden Beschreibungselement ein, wobei herkömmliche Techniken verwendet werden. Wenn einmal das erzeugte Beschreibungselement in die verknüpfte Liste eingefügt worden ist, setzt das Gerätetreiberprogramm ein Bit in einem Register der DMA-Maschine 130, um die DMA-Maschine 130 zu starten (222).
  • Das Gerätetreiberprogramm ermöglicht es, daß die DMA-Maschine 130 bei ihrer Verarbeitung der Beschreibungselemente der verknüpften Liste 128 angehalen, befragt und gestartet (oder neu gestartet) wird. 4a zeigt ein Beispiel der verknüpften Liste 128 in dem Systemspeicher 122, wenn ein erzeugtes Beschreibungselement (4b) mit einer TC-Bezeichnung TC4 („letztes erzeugtes Beschreibungselement") zu der verknüpften Liste 128 hinzugefügt werden soll. Indem ermöglicht wird, daß das zuletzt erzeugte Beschreibungselement in die verknüpfte Liste 128 basierend auf seiner TC-Bezeichnung eingefügt wird, anstatt daß es automatisch an das Ende der verknüpften Liste 128 angehängt wird, kann die Reihenfolge, in der die Beschreibungselemente von der DMA-Maschine verarbeitet werden, relativ zu der Reihenfolge, in der die Beschreibungselemente erzeugt werden, modifiziert werden, wie es in 4c gezeigt wird. Wenn so vorgegangen wird, können PCIe TLPs mit höheren Prioritätswerten (wie sie durch die TC-Bezeichnungen angegeben werden) von der PCIe Hauptvorrichtung 104 vor den PCIe TLPs mit niedrigeren Prioritätswerten (wie sie durch die TC-Bezeichnungen angegeben werden) zu der PCIe I/O-Vorrichtung 106 geschickt werden. Dies simuliert mehrere virtuelle Kanäle und die Priorisierung von Paketverkehr zwischen der PCIe Hauptvorrichtung 104 und der PCIe I/O-Vorrichtung 106, selbst wenn die PCIe Hauptvorrichtung 104 mit einem Chipsatz implementiert ist, der nur einen VC pro PCIe Port ohne die Simulation unterstützt.
  • Bei einer Ausführungsform können die Erfindung und alle funktionalen Arbeitsgänge, die in dieser Beschreibung beschrieben worden sind, in digitaler elektronischer Schaltung oder in Computerhardware, Firmware, Software oder in Kombinationen aus diesen implementiert werden. Bei einer Ausführungsform kann die Erfindung als ein Computerprogrammprodukt implementiert werden, d.h. ein Computerprogramm, das greifbar in einem Informationsträger verkörpert ist, z.B. in einer maschinenlesbaren Speichervorrichtung oder in einem sich fortpflanzenden Signal, für die Ausführung durch oder die Steuerung des Betriebes von datenverarbeitenden Vorrichtungen, z.B. einem programmierbaren Prozessor, einem Computer oder mehreren Computer. Ein Computerprogramm kann in irgendeiner Form einer Programmiersprache geschrieben werden, einschließlich kompilierter oder interpretierter Sprachen, und es kann in irgendeiner Form zum Einsatz kommen, einschließlich als ein eigenständiges Programm oder als ein Modul, eine Komponente, eine Unterroutine oder eine andere Einheit, die zur Verwendung in einer Computerumgebung geeignet ist. Ein Computerprogramm kann so eingesetzt werden, daß es auf einem Computer oder auf mehreren Computer an einer Stelle oder verteilt über mehrere Stellen und verbunden mit einem Kommunikationsnetzwerk ausgeführt wird.
  • Die Techniken einer Ausführungsform der Erfindung können von einem oder mehreren programmierbaren Prozessoren durchgeführt werden, welche ein Computerprogramm ausführen, um die Funktionen der Ausführungsform durch Arbeiten auf Eingangsdaten und Erzeugen einer Ausgabe durchführen. Die Techniken können auch ausgeführt werden durch, und eine Vorrichtung einer Ausführungsform der Erfindung kann implementiert werden als spezielle logische Schaltung, z.B. eine FPGA (Field Programmable Gate Array – Feldprogrammierbare Gatteranordnung) oder eine ASIC (Application Specific Integrated Circuit – Anwendungsspezifische integrierte Schaltung).
  • Prozessoren, die für das Ausführen eines Computerprogramms geeignet sind, umfassen beispielhaft sowohl universelle als auch spezielle Mikroprozessoren und irgendeinen oder mehrere Prozessoren irgendeiner Art eines digitalen Computers. Im allgemeinen wird ein Prozessor Befehle und Daten von einem Nur-Lese-Speicher oder einem Speicher mit wahlfreiem Zugriff oder beiden empfangen. Im allgemeinen wird ein Computer auch eine oder mehrere Massenspeichervorrichtungen umfassen oder betrieblich so gekoppelt sein, daß er Daten von einer oder mehreren Massenspeichervorrichtungen empfängt oder an diese überträgt oder beides, zum Speichern von Daten, z.B. von magnetischen Disks, magnetooptischen Disks oder optischen Disks. Informationsträger, die zum Verkörpern von Computerprogrammbefehlen und Daten geeignet sind, umfassen alle Formen nicht flüchtiger Speicher, einschließlich beispielhaft Halbleiterspeichervorrichtungen, z.B. EPROM, EEPROM und Flash-Speichervorrichtungen; magnetische Disks, z.B. interne Festplatten oder auswechselbare Disks, magnetooptische Disks und CD-ROM und DVD-ROM-Disks. Der Prozessor und der Speicher können mit spezieller logischer Schaltung ergänzt oder in diese eingebaut sein.
  • Eine Ausführungsform der Erfindung kann in einem Computersystem implementiert sein, das eine Backend-Komponente umfaßt, z.B. als einen Datenserver, oder das eine Middleware-Komponente umfaßt, z.B. einen Anwendungsserver, oder das eine Frontend-Komponente umfaßt, z.B. einen Client-Computer mit einer graphischen Benutzerschnittstelle oder einem Web Browser, durch den ein Benutzer mit einer Implementierung der Erfindung Wechselwirken kann, oder irgendeine Kombination solcher Backend-, Middleware- oder Frontend-Komponenten. Die Komponenten des Systems können durch irgendeine Form oder ein Medium für die digitale Datenkommunikation, z.B. ein Kommunikationsnetzwerk, miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken umfassen ein Nahbereichsnetzwerk („LAN” – Local Area Network), ein Fernbereichsnetzwerk („WAN” – Wide Area Network), z.B. das Internet, und ein drahtloses Netzwerk.
  • Das Computersystem kann Clients und Server umfassen. Ein Client und ein Server sind im allgemeinen entfernt voneinander und Wechselwirken typischerweise durch ein Kommunikationsnetzwerk. Die Beziehung zwischen Client und Server entsteht mittels Computerprogrammen, die auf den jeweiligen Computern laufen und eine Client-Server-Beziehung zueinander haben.
  • Die Erfindung ist durch bestimmte Ausführungsformen beschrieben worden. Bei manchen Ausführungsformen der Erfindung umfassen die Techniken das Empfangen von Anfragen von Anwendungen für Dienste, die zur Verfügung gestellt werden wollen, und das Bringen der Anfragen in eine Reihenfolge zum Zuführen von einer ersten Vorrichtung eines Switching-Fabric-Netzwerk durch einen virtuellen Kanal zu einer zweiten Vorrichtung des Netzwerkes, bei der die Dienste zur Verfügung gestellt wurden, wobei die Reihenfolge auf Verkehrsklassenbezeichnungen basiert, die mit den Anfragen verknüpft sind. Bei manchen Ausführungsformen der Erfindung umfassen die Techniken das Steuern einer Reihenfolge, in der Anfragen von Anwendungen für Dienste von einer ersten Vorrichtung eines Switching-Fabric-Netzwerk durch einen virtuellen Kanal zu einer zweiten Vorrichtung des Netzwerkes geliefert werden, um mehrere virtuelle Kanäle mit Anfragen, die durch den virtuellen Kanal laufen, zu simulieren.
  • Weitere Ausführungsformen liegen im Umfang der folgenden Ansprüche. Zum Beispiel kann die Technik einer Ausführungsform der Erfindung in einer unterschiedlichen Reihenfolge ausgeführt werden und trotzdem wünschenswerte Ergebnisse erreichen. Diese Techniken sind in dem ASI-Fabric-Kontext anwendbar, in dem ein erster ASI-Endpunkt und ein zweiter ASI-Endpunkt mittels eines einzigen VC verbunden sind. Bei einem Beispiel hat der erste ASI-Endpunkt eine oder mehrere Anwendungen, die Leseanfragen erzeugen, welche für den zweiten ASI-Endpunkt bestimmt sind. Der erste ASI-Endpunkt kann so implementiert werden, daß er ein Gerätetreiberprogramm umfaßt, welches ermöglicht, daß eine DMA-Maschine in ihrer Verarbeitung von Beschreibungselementen in einer verknüpften Liste angehalten, angefragt und gestartet (oder neu gestartet) wird, in einer Weise, die ähnlich der ist, wie sie oben mit Bezug auf die 1 und 2 beschrieben ist. Der zweite ASI-Endpunkt kann in ähnlicher Weise mit einem Gerätetreiber und einer DMA-Maschine implementiert werden, die erlaubt, daß Antworten auf die Leseanfragen priorisiert werden.
  • Beansprucht wird:
  • Zusammenfassung
  • Verfahren und Systeme, die Computerprogrammprodukte umfassen, implementieren Techniken zum Empfangen, an einer ersten Vorrichtung eines Switching-Fabric-Netzwerkes, von Anfragen von einer oder mehreren Anwendungen, wobei jede Anfrage für eine zweite Vorrichtung des Netzwerkes bestimmt ist, wobei die erste Vorrichtung mit der zweiten Vorrichtung durch einen virtuellen Kanal verbunden ist; zum Erzeugen eines Beschreibungselementes, das eine Verkehrsklassenbezeichnung aufweist; und zum Hinzufügen des Beschreibungselementes zu einer geordneten Liste von Beschreibungselementen, wobei das Beschreibungselement einen Ort in der geordneten Liste hat, der auf der Verkehrsklassenbezeichnung des Beschreibungselementes basiert.

Claims (24)

  1. Verfahren, das aufweist: an einer ersten Vorrichtung eines Switching-Fabric-Netzwerks, wobei die erste Vorrichtung mit einer zweiten Vorrichtung des Switching-Fabric-Netzwerks durch einen virtuellen Kanal verbunden ist, Empfangen von Anfragen von einer oder mehreren Anwendungen, wobei jede Anfrage für die zweite Vorrichtung bestimmt ist; Erzeugen, für jede Anfrage, eines Beschreibungselementes, das eine Verkehrsklassenbezeichnung aufweist; und Hinzufügen des Beschreibungselements zu einer geordneten Liste von Beschreibungselementen, wobei das Beschreibungselement einen Platz in der geordneten Liste hat, der auf der Verkehrsklassenbezeichnung des Beschreibungselementes basiert.
  2. Verfahren nach Anspruch 1, bei dem das Switching-Fabric-Netzwerk ein Peripheral Component Interconnect Express (PCIe) Fabric aufweist, die erste Vorrichtung eine PCIe Hauptvorrichtung aufweist und die zweite Vorrichtung eine PCIe Eingabe/Ausgabe (I/O – Input/Output)-Vorrichtung aufweist.
  3. Verfahren nach Anspruch 1, bei dem das Switching-Fabric-Netzwerk ein Advanced Switching Interconnect (ASI) Fabric aufweist, wobei die erste Vorrichtung einen ersten ASI-Endpunkt aufweist und die zweite Vorrichtung einen zweiten ASI-Endpunkt aufweist.
  4. Verfahren nach Anspruch 1, bei dem das Beschreibungselement weiter eines oder mehrere aus einer Quellenadresse, einer Zieladresse, einer Adresse für das nächste Beschreibungselement, einer Bytezählung und einem Satz Merker aufweist.
  5. Verfahren nach Anspruch 1, bei dem das Beschreibungselement einen Block Daten beschreibt, der von einer Quellenadresse zu einer Zieladresse bewegt werden soll.
  6. Verfahren nach Anspruch 5, bei dem die Quellenadresse mit einem Speicherraum der ersten Vorrichtung verknüpft ist.
  7. Verfahren nach Anspruch 5, bei dem die Zieladresse mit einem Speicherraum der zweiten Vorrichtung verknüpft ist.
  8. Verfahren nach Anspruch 1, bei dem die geordnete Liste eine verknüpfte Liste aufweist, die durch eine Kette aus Beschreibungselementen gebildet ist.
  9. Verfahren nach Anspruch 1, bei dem für das Beschreibungselement, das zu der geordneten Liste hinzugefügt werden soll, das Verfahren aufweist: sequentielles Vergleichen der Verkehrsklassenbezeichnung des Beschreibungselementes, das hinzugefügt werden soll, mit den Verkehrsklassenbezeichnungen der Beschreibungselemente in der geordneten Liste; und Einfügen des Beschreibungselementes, das hinzugefügt werden soll, in die geordnete Liste basierend auf dem Vergleich.
  10. Verfahren nach Anspruch 9, bei dem das Beschreibungselement, das hinzugefügt werden soll, vor einem ersten Beschreibungselement in der geordneten Liste mit einem niedrigeren Prioritätswert eingefügt wird.
  11. Verfahren nach Anspruch 9, bei dem das Beschreibungselement, das hinzugefügt werden soll, an dem unteren Ende der geordneten Liste eingefügt wird.
  12. Verfahren nach Anspruch 1, das weiter aufweist: Verarbeiten des Beschreibungselementes in der geordneten Liste, um ein entsprechendes Paket zu erzeugen; und Senden des Paketes zur der zweiten Vorrichtung über den virtuellen Kanal.
  13. Maschinenlesbares Medium, das ausführbare Befehle zur Verwendung an einer ersten Vorrichtung eines Switching-Fabric-Netzwerks speichert, wobei die erste Vorrichtung mit einer zweiten Vorrichtung des Switching-Fabric-Netzwerk über einen virtuellen Kanal verbunden ist, wobei die Befehle bewirken, daß eine Maschine: Anfragen von einer oder mehreren Anwendungen empfangt, wobei jede Anfrage für die zweite Vorrichtung bestimmt ist; für jede Anfrage ein Beschreibungselement erzeugt, das eine Verkehrsklassenbezeichnung aufweist; und das Beschreibungselement einer geordneten Liste von Beschreibungselementen hinzufügt, wobei das Beschreibungselement einen Platz in der geordneten Liste hat, der auf der Verkehrsklassenbezeichnung des Beschreibungselementes basiert.
  14. Maschinenlesbares Medium nach Anspruch 13, bei dem die Befehle, das Beschreibungselement hinzuzufügen, Befehle aufweist um: sequentiell die Verkehrsklassenbezeichnung des Beschreibungselementes, das hinzugefügt werden soll, mit den Verkehrsklassenbezeichnungen der Beschreibungselemente in der geordneten Liste zu vergleichen; und das Beschreibungselement, das hinzugefügt werden soll, basierend auf dem Vergleich in die geordnete Liste einzufügen.
  15. Maschinenlesbares Medium nach Anspruch 14, bei dem das Beschreibungselement, das hinzugefügt werden soll, vor einem ersten Beschreibungselement in der geordneten Liste mit einem niedrigen Prioritätswert eingefügt wird.
  16. Maschinenlesbares Medium nach Anspruch 14, bei dem das Beschreibungselement, das hinzugefügt werden soll, an einem unteren Ende der geordneten Liste eingefügt wird.
  17. Maschinenlesbares Medium nach Anspruch 13, das weiter Befehle aufweist, um: das Beschreibungselement in der geordneten Liste zu verarbeiten, um ein entsprechendes Paket zu erzeugen; und das Paket an die zweite Vorrichtung über den virtuellen Kanal zu senden.
  18. System, das aufweist: eine erste Vorrichtung; eine zweite Vorrichtung; wobei die erste Vorrichtung und die zweite Vorrichtung über einen virtuellen Kanal eines Switching-Fabric-Netzwerk kommunizieren, wobei die erste Vorrichtung betrieben wird um: für jede Anfrage, die von einer Anwendung der ersten Vorrichtung empfangen worden ist, ein Beschreibungselement zu erzeugen, das eine Verkehrsklassenbezeichnung aufweist; und das Beschreibungselement zu einer geordneten Liste von Beschreibungselementen hinzuzufügen, wobei das Beschreibungselement einen Platz in der geordneten Liste hat, der auf der Verkehrsklassenbezeichnung des Beschreibungselements beruht, wobei die geordnete Liste eine Reihenfolge der Lieferung jeder Anfrage von der ersten Vorrichtung durch den virtuellen Kanal an die zweite Vorrichtung einrichtet.
  19. System nach Anspruch 18, bei dem die erste Vorrichtung weiter arbeitet, um: sequentiell die Verkehrsklassenbezeichnungen des Beschreibungselementes, das hinzugefügt werden soll, mit den Verkehrsklassenbezeichnungen der Beschreibungselement in der geordneten Liste zu vergleichen; und das Beschreibungselement, das hinzugefügt werden soll, in die geordnete Liste basierend auf dem Vergleich einzufügen.
  20. System nach Anspruch 18, bei dem das Switching-Fabric-Netzwerk ein Peripheral Component Interconnect Express (PCIe) Fabric aufweist, die erste Vorrichtung eine PCIe Hauptvorrichtung aufweist und die zweite Vorrichtung eine PCIe Eingabe/Ausgabe (I/O)-Vorrichtung aufweist.
  21. System nach Anspruch 18, bei dem das Switching-Fabric-Netzwerk ein Advanced Switching Interconnect (ASI) Fabric aufweist, die erste Vorrichtung einen ersten ASI-Endpunkt aufweist und die zweite Vorrichtung einen zweiten ASI-Endpunkt aufweist.
  22. Maschinenlesbares Medium, welches ausführbare Befehle speichert, wobei die Befehle bewirken, daß eine Maschine: eine Reihenfolge steuert, in der Anfragen von Anwendungen für Dienste von einer ersten Vorrichtung eines Switching-Fabric-Netzwerks durch einen virtuellen Kanal zu einer zweiten Vorrichtung des Netzwerks geliefert werden, um mehrere virtuelle Kanäle für Anfragen zu simulieren.
  23. Maschinenlesbares Medium nach Anspruch 22, bei dem das Switching-Fabric-Netzwerk ein Peripheral Component Interconnect Express (PCIe) Fabric aufweist, die erste Vorrichtung eine PCIe Hauptvorrichtung aufweist und die zweite Vorrichtung eine PCIe Eingabe/Ausgabe (I/O)-Vorrichtung aufweist.
  24. Maschinenlesbares Medium nach Anspruch 22, bei dem das Switching-Fabric-Netzwerk ein Advances Switching Interconnect (ASI) Netzwerk aufweist, die erste Vorrichtung einen ersten ASI-Endpunkt aufweist und die zweite Vorrichtung einen zweiten ASI-Endpunkt aufweist.
DE112006001167T 2005-05-10 2006-05-02 Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken Ceased DE112006001167T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/126,443 US7287114B2 (en) 2005-05-10 2005-05-10 Simulating multiple virtual channels in switched fabric networks
US11/126,443 2005-05-10
PCT/US2006/017050 WO2006121739A2 (en) 2005-05-10 2006-05-02 Simulating multiple virtual channels in switched fabric networks for chipsets which support only one channel

Publications (1)

Publication Number Publication Date
DE112006001167T5 true DE112006001167T5 (de) 2008-04-10

Family

ID=36980599

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006001167T Ceased DE112006001167T5 (de) 2005-05-10 2006-05-02 Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken

Country Status (3)

Country Link
US (1) US7287114B2 (de)
DE (1) DE112006001167T5 (de)
WO (1) WO2006121739A2 (de)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7574536B2 (en) * 2005-04-22 2009-08-11 Sun Microsystems, Inc. Routing direct memory access requests using doorbell addresses
US7613864B2 (en) * 2005-04-22 2009-11-03 Sun Microsystems, Inc. Device sharing
US8223745B2 (en) * 2005-04-22 2012-07-17 Oracle America, Inc. Adding packet routing information without ECRC recalculation
US7620741B2 (en) * 2005-04-22 2009-11-17 Sun Microsystems, Inc. Proxy-based device sharing
US7565463B2 (en) * 2005-04-22 2009-07-21 Sun Microsystems, Inc. Scalable routing and addressing
US7287114B2 (en) * 2005-05-10 2007-10-23 Intel Corporation Simulating multiple virtual channels in switched fabric networks
GB0517304D0 (en) * 2005-08-23 2005-10-05 Netronome Systems Inc A system and method for processing and forwarding transmitted information
US8189603B2 (en) * 2005-10-04 2012-05-29 Mammen Thomas PCI express to PCI express based low latency interconnect scheme for clustering systems
CN100373362C (zh) * 2005-12-22 2008-03-05 北京中星微电子有限公司 直接存储访问控制器
US7743197B2 (en) * 2006-05-11 2010-06-22 Emulex Design & Manufacturing Corporation System and method for virtualizing PCIe devices
US7764675B2 (en) * 2006-05-30 2010-07-27 Intel Corporation Peer-to-peer connection between switch fabric endpoint nodes
US7469305B2 (en) * 2006-09-20 2008-12-23 International Business Machines Corporation Handling multiple data transfer requests within a computer system
US7660925B2 (en) * 2007-04-17 2010-02-09 International Business Machines Corporation Balancing PCI-express bandwidth
US7752360B2 (en) * 2007-05-16 2010-07-06 Nuova Systems, Inc. Method and system to map virtual PCIe I/O devices and resources to a standard I/O bus
US8174977B2 (en) 2007-07-06 2012-05-08 Hewlett-Packard Development Company, L.P. End-to-end flow control in a network
US7653773B2 (en) * 2007-10-03 2010-01-26 International Business Machines Corporation Dynamically balancing bus bandwidth
US8359415B2 (en) * 2008-05-05 2013-01-22 International Business Machines Corporation Multi-root I/O virtualization using separate management facilities of multiple logical partitions
WO2010033497A1 (en) 2008-09-18 2010-03-25 Marvell World Trade Ltd. Preloading applications onto memory at least partially during boot up
US9880954B2 (en) * 2008-12-01 2018-01-30 Micron Technology, Inc. Method and apparatus for providing data access
US8122177B1 (en) * 2009-05-19 2012-02-21 Xilinx, Inc. Direct memory access technique for use with PCIe endpoints
EP2413212B1 (de) * 2010-07-26 2013-05-15 Siemens Aktiengesellschaft Verfahren zum Datenaustausch von Peripheriedaten und Untermodul
US9141394B2 (en) 2011-07-29 2015-09-22 Marvell World Trade Ltd. Switching between processor cache and random-access memory
CN102263698B (zh) * 2011-08-11 2014-01-22 福建星网锐捷网络有限公司 虚拟通道的建立方法、数据传输的方法及线卡
US9436629B2 (en) 2011-11-15 2016-09-06 Marvell World Trade Ltd. Dynamic boot image streaming
US8904079B2 (en) * 2012-06-25 2014-12-02 Intel Corporation Tunneling platform management messages through inter-processor interconnects
US9575768B1 (en) 2013-01-08 2017-02-21 Marvell International Ltd. Loading boot code from multiple memories
US9336108B2 (en) * 2013-01-24 2016-05-10 Xcerra Corporation Scalable test platform
US9430348B2 (en) 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
US9430349B2 (en) 2013-01-24 2016-08-30 Xcerra Corporation Scalable test platform in a PCI express environment with direct memory access
US9213616B2 (en) 2013-01-24 2015-12-15 Xcerra Corporation Automated test platform utilizing status register polling with temporal ID
US9459978B2 (en) 2013-01-24 2016-10-04 Xcerra Corporation Automated test platform utilizing segmented data sequencers to provide time controlled test sequences to device under test
US9736801B1 (en) 2013-05-20 2017-08-15 Marvell International Ltd. Methods and apparatus for synchronizing devices in a wireless data communication system
US9521635B1 (en) 2013-05-21 2016-12-13 Marvell International Ltd. Methods and apparatus for selecting a device to perform shared functionality in a deterministic and fair manner in a wireless data communication system
US9836306B2 (en) 2013-07-31 2017-12-05 Marvell World Trade Ltd. Parallelizing boot operations
US10684973B2 (en) 2013-08-30 2020-06-16 Intel Corporation NUMA node peripheral switch
KR102180972B1 (ko) * 2014-04-23 2020-11-20 에스케이하이닉스 주식회사 메모리 컨트롤 유닛 및 그것을 포함하는 데이터 저장 장치
WO2016118591A1 (en) 2015-01-20 2016-07-28 Ultrata Llc Implementation of an object memory centric cloud
EP3248097B1 (de) 2015-01-20 2022-02-09 Ultrata LLC Befehlsausführung eines objektspeicherdatenstroms
US9971542B2 (en) 2015-06-09 2018-05-15 Ultrata, Llc Infinite memory fabric streams and APIs
US9886210B2 (en) 2015-06-09 2018-02-06 Ultrata, Llc Infinite memory fabric hardware implementation with router
US10698628B2 (en) 2015-06-09 2020-06-30 Ultrata, Llc Infinite memory fabric hardware implementation with memory
US10229076B2 (en) * 2015-09-09 2019-03-12 International Business Machines Corporation Peripheral component interconnect express (PCIE) pseudo-virtual channels using vendor defined messages
US10248337B2 (en) 2015-12-08 2019-04-02 Ultrata, Llc Object memory interfaces across shared links
US10241676B2 (en) 2015-12-08 2019-03-26 Ultrata, Llc Memory fabric software implementation
WO2017100281A1 (en) 2015-12-08 2017-06-15 Ultrata, Llc Memory fabric software implementation
CN115061971A (zh) 2015-12-08 2022-09-16 乌尔特拉塔有限责任公司 使用容错对象的存储器结构操作和一致性
DE102016203307A1 (de) 2016-03-01 2017-09-07 Robert Bosch Gmbh Speicherdirektzugriffssteuereinrichtung für eine einen Arbeitsspeicher aufweisende Recheneinheit
US10979412B2 (en) 2016-03-08 2021-04-13 Nxp Usa, Inc. Methods and apparatus for secure device authentication
CN107656884A (zh) * 2016-07-25 2018-02-02 中兴通讯股份有限公司 一种数据处理方法和***,***组件快速互连设备及主机
US10664419B2 (en) * 2017-11-02 2020-05-26 Arm Limited I/O driven data transfer in a data processing network
US10552054B2 (en) 2018-07-02 2020-02-04 International Business Machines Corporation Peripheral component interconnect express (PCIE) network with input/output (I/O) chaining to reduce communication time within execution of I/O channel operations
KR102529761B1 (ko) 2021-03-18 2023-05-09 에스케이하이닉스 주식회사 PCIe 디바이스 및 그 동작 방법
KR102496994B1 (ko) 2021-03-23 2023-02-09 에스케이하이닉스 주식회사 PCIe 인터페이스 장치 및 그 동작 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978379A (en) * 1997-01-23 1999-11-02 Gadzoox Networks, Inc. Fiber channel learning bridge, learning half bridge, and protocol
US6944152B1 (en) * 2000-08-22 2005-09-13 Lsi Logic Corporation Data storage access through switched fabric
US6970921B1 (en) * 2001-07-27 2005-11-29 3Com Corporation Network interface supporting virtual paths for quality of service
US7219183B2 (en) * 2003-01-21 2007-05-15 Nextio, Inc. Switching apparatus and method for providing shared I/O within a load-store fabric
US20040264472A1 (en) * 2003-06-27 2004-12-30 Oliver Neal C. Method and system for open-loop congestion control in a system fabric
US20060140126A1 (en) * 2004-12-27 2006-06-29 Intel Corporation Arbitrating virtual channel transmit queues in a switched fabric network
US7287114B2 (en) * 2005-05-10 2007-10-23 Intel Corporation Simulating multiple virtual channels in switched fabric networks

Also Published As

Publication number Publication date
WO2006121739A3 (en) 2006-12-28
WO2006121739A2 (en) 2006-11-16
US20060259656A1 (en) 2006-11-16
US7287114B2 (en) 2007-10-23

Similar Documents

Publication Publication Date Title
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE102018006890A1 (de) Technologien zur Verarbeitung von Netzpaketen durch einen intelligenten Netzwerk-Schnittstellenkontroller
DE112006001590B4 (de) Vorrichtung, Verfahren und System zur Datenverarbeitung auf Transportschichtebene
DE69826930T2 (de) System und Verfahren zur wirksamen Fernplatte Ein-/Ausgabe
DE112013006063B4 (de) Funktionsübernahme für einen Datenübertragungskanal in einem Netzwerk mit Hochleistungsdatenverarbeitung
DE112020002501T5 (de) System und verfahren zur erleichterung eines effizienten lastausgleichs in einer netzwerkschnittstellensteuerung (nic)
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69829442T2 (de) System und Verfahren für transparenten, globalen Zugang zu physikalischen Geräten in einem Rechnersystem
DE10152970B4 (de) Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium
DE112005003124T5 (de) Schnittstelle PCI Express zu erweitertem Schaltnetzwerk
DE102006032832A1 (de) Netzwerksystem und Verfahren zur Steuerung verteilter Speicher
DE112016000258T5 (de) Gruppieren von nichtflüchtigem speicher auf grundlage von hosts mithilfe von zugeordnetem netzwerkspeicher
DE112013000752T5 (de) Verwalten von Verarbeitungselementen in einem Streaming-Datensystem
DE112007001135T5 (de) Gemeinschaftliche Nutzung von Daten durch Partitionen in einem partitionierbaren System
DE102012206283B4 (de) Verteilung des Datenflusses auf mehrere Pfade (Multi-Pathing) in einem Speicherbereichsnetzwerk
DE112013006549T5 (de) Computersystem und Datensteuerverfahren
DE19983443B4 (de) Außer-der-Reihe-Snooping für Multiprozessor-Computersysteme
DE112017003294T5 (de) Technologien für ein skalierbares Senden und Empfangen von Paketen
DE112004002043B4 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE112012004551T5 (de) Mehrkernverknüpfung in einem Netzprozessor
DE112006001345T5 (de) Aufgabenzuweisung für Geräte mit derselben Konnektionsadresse
DE112021003094T5 (de) System und verfahren zum planen von gemeinsam nutzbaren pcie-endpunktvorrichtungen
DE102021207394A1 (de) Zusammenführen von paketen auf der grundlage von hinweisen, die vom netzwerkadapter erzeugt werden
DE102018204577A1 (de) Techniken zum Erfüllen von Dienstgüteanforderungen für eine Fabric-Punkt-zu-Punkt-Verbindung
DE112019005392T5 (de) Steigern von datenleistung durch transferieren von daten zwischen speicherebenen unter verwendung von arbeitslastmerkmalen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8131 Rejection