DE112006002382T5 - Mechanismus zur Nachrichtenweitergabe mit geringer Latenz - Google Patents

Mechanismus zur Nachrichtenweitergabe mit geringer Latenz Download PDF

Info

Publication number
DE112006002382T5
DE112006002382T5 DE112006002382T DE112006002382T DE112006002382T5 DE 112006002382 T5 DE112006002382 T5 DE 112006002382T5 DE 112006002382 T DE112006002382 T DE 112006002382T DE 112006002382 T DE112006002382 T DE 112006002382T DE 112006002382 T5 DE112006002382 T5 DE 112006002382T5
Authority
DE
Germany
Prior art keywords
cache line
memory
network
processor
network controller
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.)
Withdrawn
Application number
DE112006002382T
Other languages
English (en)
Inventor
Nagabhushan Portland Chitlur
Linda Portland Rankin
Dave Portland Dunning
Michael Liao
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 DE112006002382T5 publication Critical patent/DE112006002382T5/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/0813Multiuser, multiprocessor or multiprocessing cache systems with a network or matrix configuration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Abstract

Verfahren mit den Schritten
– Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines DM („Direct Messaging") Pakets an einen Speicher aus einer ersten Cache-Leitung, die mit einem Prozessor assoziiert ist, durch eine Netzwerksteuerung;
– Erhalten und Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; und
– Senden des DM Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist.

Description

  • GEBIET
  • Ausgestaltungen dieser Erfindung betreffen die Nachrichtenweitergabe mit geringer Latenz.
  • HINTERGRUND
  • Eine Anwendung auf einer ersten Computerplattform kann Nachrichten mit einer Anwendung auf einer zweiten Computerplattform austauschen. Wie hier verwendet betrifft eine Nachricht ein Stück Information, die von einer Anwendung an eine andere über einen Kommunikationskanal gesendet wird. Beispielsweise können einige Nachrichten Anfragen sein, die von einer Anwendung an eine andere gerichtet werden und andere Nachrichten können Daten oder Meldungen an eine andere Anwendung übergeben.
  • In einer Anwendung-zu-Anwendung-Weitergabe kann eine erste Anwendung auf einer ersten Plattform eine Nachricht an eine zweite Anwendung auf einer zweiten Plattform unter Verwendung von Paketen weitergeben. Bei der ersten Plattform kann die erste Anwendung einen Hostprozessor zum Erzeugen einer Nachricht verwenden. Die Nachricht kann in den Hauptspeicher eingefügt werden, wo ein NIC ein Paket, das die Nachricht enthält, erzeugen kann, und das Paket über den Kommunikationskanal übertragen kann. Bei der zweiten Plattform kann das Netzwerk von einer Netzwerksteuerung empfangen werden und die Netzwerksteuerung kann das Paket verarbeiten und die Nachricht in den Hauptspeicher schreiben. Die zweite Anwendung kann den Hostprozessor verwenden, um die Nachricht aus dem Hauptspeicher zu lesen.
  • Nachrichtenweitergabe gemäß herkömmlicher Verfahren kann ungewünschte Latenzen bedingen. Diese Latenzen schließen ein, Hardwarelatenzen, wie etwa das Schreiben in und aus dem Hauptspeicher, wie auch Softwarelatenzen, wie etwa Paketverarbeitung. Diese Latenzen können in bestimmten Computerumgebungen, wie etwa Computerclustern, weiter zusammengesetzt sein, weil beispielsweise eine große Anzahl von latenz-kritischen Nachrichten zwischen den verschiedenen Computerknoten ausgetauscht werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Ausgestaltungen der vorliegenden Erfindung sind beispielhaft und nicht einschränkend in den Abbildungen der beigefügten Zeichnungen dargestellt, in denen gleiche Bezugszeichen gleiche Elemente betreffen und in denen:
  • 1 ein System gemäß einem Ausführungsbeispiel darstellt.
  • 2 ein Netzwerk darstellt.
  • 3 ein System im weiteren Detail gemäß einem Ausführungsbeispiel darstellt.
  • 4 beispielhafte Cache-Kohärenztabellen und Zustände gemäß einem Ausführungsbeispiel darstellt.
  • 5 ein Flussdiagramm ist, das ein Verfahren gemäß einem Ausführungsbeispiel darstellt.
  • 6 ein Flussdiagramm ist, das ein Verfahren gemäß einem Ausführungsbeispiel darstellt.
  • 7 ein Flussdiagramm ist, das ein Verfahren gemäß einem anderen Ausführungsbeispiel darstellt.
  • 8 ein Flussdiagramm ist, das ein Verfahren gemäß einem anderen Ausführungsbeispiel darstellt.
  • DETAILLIERTE BESCHREIBUNG
  • Die im Folgenden beschriebenen Beispiele sind lediglich zu erläuternden Zwecken und sind in keiner Weise vorgesehen, die Ausgestaltungen der Erfindung einzuschränken. Daher versteht es sich, wenn Beispiele im Detail beschrieben sind oder eine Liste von Beispielen gegeben wird, dass diese Beispiele nicht als erschöpfend ausgelegt werden dürfen und die Ausgestaltungen der Erfindung auf die beschriebenen und/oder dargestellten Beispiele nicht begrenzen.
  • In einem Beispiel einer Ausgestaltung kann eine übertragende Anwendung ein DM („Direct Messaging") Paket erzeugen und in einen Prozessorübertragungscache an der Cache-Leitung DMTX („Direct Messaging Transmit") einfügen. Die Übertragungsanwendung kann die Cache-Leitung zum Speicher bei der Adresse DMTX ausspülen. Beim Beobachten des Spülvorgangs der Cache-Leitung DMTX, kann ein DM-NC („Direct Messaging Network Controller") das DM Paket in einem Netzwerksteuerungsübertragungscache an der Cache-Leitung DMTX speichern. DM-NC kann die gesamte oder einen Teil der Cache-Leitung zu einem Netzwerk (z. B. über ein MAC oder Media Access Controller, Schnittstelle) ohne Modifizierung weiterleiten.
  • In einem weiteren Beispiel einer Ausgestaltung kann ein Paket von einem Netzwerk (z. B. einer Netzwerk MAC Schnittstelle) empfangen werden, wobei der DM-NC einen Feldtyp des Headers lesen kann. Bei Bestimmen, dass das Paket ein DM Paket ist, speichert der DM-NC das DM Paket in einem Netzwerkcontrollerempfangscache an der Cache-Leitung DMRX („Direct Messaging Receive"). DM-NC kann einen Busungültigkeitsbefehl („bus invalidate command") für die Adresse DMRX am Hostbus ausgeben. Da die Cache-Leitung DMRX von ihrem Cache zwangsgeräumt wurde, kann eine empfangende Anwendung, die an dieser Cache-Leitung abfragt, gezwungen werden, die Daten von der Adresse DMRX aus dem Speicher zu lesen. DM-NC kann den Lesezugriff an Adresse DMRX erfassen und kann das DM Paket durch Übertragen der Daten direkt an den Prozessorempfangscache an Adresse DMRX übertragen.
  • Wie hier verwendet, betrifft „DM Paket" ein Paket, das traditionelle Paketprotokollverarbeitung (z. B. durch ein Standardsystemsoftwarestack und Netzwerksteuerungstreiber) und Speicherübertragungen umgehen kann. In einer Ausgestaltung kann ein DM Paket von einer Anwendung an eine andere Anwendung unter Verwendung von Caches übertragen werden. Ein DM Paket kann Nutzdaten und einen physikalischen Ebenenheader (z. B. Ethernetheader) umfassen. In einer Ausgestaltung kann ein DM Paket zusätzlich Flusssteuerungsbits („flow control bits") zum Ausführen von Paketordnungsalgorithmen und Richtlinien umfassen. In einer Ausgestaltung kann das DM Paket den Ethernetstandard erfüllen. Wie hier verwendet bedeutet ein „Paket" eine Sequenz von einem oder mehreren Symbolen und/oder Werten, die durch ein oder mehrere Signale codiert sind, die von wenigstens einem Sender zu wenigstens einem Empfänger übertragen werden.
  • Wie hier verwendet betrifft ein „DM-NC” eine Netzwerksteuerung, die für Direct Messaging eingerichtet ist. In wenigstens einem Ausführungsbeispiel bedeutet eine Netzwerksteuerung, die für Direct Messaging eingerichtet ist, dass die Netzwerksteuerung kommunikativ an einen Hostbus anstelle eines lokalen Bus angeschlossen ist und welche weiter DM Pakete verarbeiten kann.
  • Ausgestaltungen der Erfindung sind in keiner Weise auf diese Komponenten, Protokolle und/oder andere Details der hier zur Verfügung gestellten Beispiele beschränkt. Während der Ethernetstandard beispielsweise in bestimmten Ausgestaltungen verwendet werden kann, sind die Ausgestaltungen der Erfindung nicht auf dieses Protokoll begrenzt und tatsächlich können andere Verbindungstechnologien verwendet werden. Der Ethernetstandard ist eine LAN (Local Area Network) Technologie. Er ist beispielsweise beschrieben in Institute of Electrical and Electronics Engineers, Inc. (IEEE) Std. 802.3, Ausgabe 2002, aktuelle Ausgabe veröffentlicht am 8. März 2002.
  • Ein oder mehrere hier beschriebene Verfahren können auf einem System, wie etwa dem System 100, das in 1 dargestellt ist, ausgeführt werden. Der Hostprozessor 102 ist beispielsweise ein Intel® Pentium® Mikroprozessor, der vom Rechtsnachfolger der Anmeldung kommerziell erhältlich ist. Natürlich kann der Hostprozessor 102 alternativ jede andere Art von Mikroprozessor sein, wie etwa ein Mikroprozessor, der durch eine andere Quelle als die des Rechtsnachfolgers der Anmeldung hergestellt wird und/oder kommerziell erhältlich ist, ohne sich von dieser Ausgestaltung zu lösen.
  • Der Speicher 104 kann maschinenausführbare Anweisungen 132 speichern, die eingerichtet sind ausgeführt zu werden und/oder Daten, die eingerichtet sind durch Logik, wie etwa die Logik 130, abgefragt, auf diese eingewirkt und/oder manipuliert zu werden. Der Speicher 104 kann beispielsweise schreibgeschützten, Massenspeicher, Random Access computerzugreifbaren Speicher und/oder einen oder mehrere andere Arten von Maschinen zugreifbaren Speicher umfassen. Die Ausführung von Programmanweisungen 132 und/oder das Zugreifen, das darauf Wirken und/oder die Manipulation dieser Daten durch beispielsweise die Logik 130 kann beispielsweise im System 100 und/oder der Logik 130 dazu führen, dass einige oder alle der hier beschriebenen Arbeitsabläufe ausgeführt werden.
  • Der Chipsatz 108 kann ein Hostbridge/Hub System umfassen, das einen Hostprozessor 102 mit einem Hostspeicher 104 miteinander und mit einem lokalen Bus 106 verbindet. Beispielsweise kann der Chipsatz 108 einen I/O (Input/Output) Chipsatz oder einen Speicherchipsatz umfassen. Alternativ können der Hostprozessor 102 und der Hostspeicher 104 direkt an den Bus 106 anstelle über den Chipsatz 108 angeschlossen sein. Der Chipsatz 108 kann einen oder mehrere integrierte Schaltkreischips umfassen, wie etwa diejenigen die ausgewählt sind aus den integrierten Schaltkreischipsätzen, die kommerziell vom Rechtsnachfolger der Anmeldung erhältlich sind (z. B. Grafik, Speicher und I/O Steuerungshubsteuerungssätze), obwohl andere oder mehr integrierte Schaltkreischipsätze auch oder alternativ verwendet werden können. Der Chipsatz 108 kann mit dem Speicher 104 über den Speicherbus 112 und mit dem Hostprozessor 102 über den Hostbus 110 kommunizieren.
  • Der Hostbus 110 kann an einen Bus-Leiterplattenschacht 120 mit einem Busanschluss 122 angeschlossen sein. Der Hostbus 110 und der lokale Bus 106 können eine Parallelbusschnittstelle oder eine serielle Busschnittstelle aufweisen. Beispielsweise kann der Hostbus 110 einen Coherent System Interconnect (CSI) Bus aufweisen und der lokale Bus 106 einen Bus, der mit der Peripheral Component Interconnect (PCI) Local Bus Spezifikation, Revision 2.2, 18. Dezember 1998, erhältlich von der PCI Special Interest Group, Portland, Oregon, U.S.A. (im Folgenden als „PCI Bus" bezeichnet) übereinstimmt. Alternativ kann der Bus 106 beispielsweise einen Bus umfassen, der die PCI Express Base Spezifikation, Revision 1.0a, 15. April 2003, erhältlich von der PCI Special Interest Group (im Folgenden als „PCI Express Bus" bezeichnet) erfüllt. Der Bus 106 kann andere Typen und Konfigurationen von Bussystemen umfassen.
  • Statt an einen lokalen Bus wie etwa den lokalen Bus 106 angeschlossen zu sein, kann die Netzwerksteuerung 126 an den Hostbus 107 angeschlossen sein. Folglich kann die Netzwerksteuerung 126 Transaktionen vom Hostbus 110 überwachen und/oder holen. Die Netzwerksteuerung kann in einer Bus-Leiterplatte 128 aufgenommen sein (NIC oder Netzwerkschnittstellenkarte, die in einen Bus-Leiterplattenschacht 114 eingesetzt werden kann). Die Netzwerksteuerung 126 kann eine Logik 130 zum Ausführen von Arbeitsvorgängen aufweisen, die hier als durch die Netzwerksteuerung 126 und/oder das System 100 durchgeführt beschrieben werden. Der Bus-Leiterplattenschacht 114 kann beispielsweise ein PCI Erweiterungsschacht sein, der einen PCI Bus Anschluss 116 aufweist. Der PCI Bus Anschluss 116 kann elektrisch und mechanisch an einen PCI Bus Anschluss 124, der in der Bus-Leiterplatte 128 eingefasst ist, angepasst sein. Der Bus-Leiterplattenschacht 114 und die Schaltkreisschaltkarte 128 können konstruiert sein, der Bus-Leiterplatte 128 zu erlauben, in den Bus-Leiterplattenschacht 114 eingeführt zu werden. Wenn die Bus-Leiterplatte 128 in den Bus-Leiterplattenschacht 114 eingeführt wird, werden die PCI Bus Anschlüsse 114, 124 elektrisch und mechanisch miteinander verbunden. Wenn die PCI Bus Anschlüsse 114, 124 aneinander angeschlossen werden, kann die Logik 130 in der Bus-Leiterplatte 128 elektrisch an den Hostbus 110 angeschlossen werden. Anstelle sich auf der Bus-Leiterplatte 128 zu befinden, kann die Netzwerksteuerung 126 stattdessen auf der Systemhauptplatine 118 sein. Alternativ kann die Netzwerksteuerung 126 auf dem Chipsatz 108 integriert sein. Jedoch sind Ausgestaltungen der Erfindung nicht auf diese Konfigurationen begrenzt.
  • Die Logik 130 kann Hardware, Software oder eine Kombination von Hardware und Software umfassen. Beispielsweise kann die Logik 130 Schaltungen (i.e., einen oder mehrere Schaltkreise) umfassen, um die hier beschriebenen Arbeitsabläufe auszuführen. Die Logik 130 kann verdrahtet sein, um einen oder mehrere Arbeitsabläufe auszuführen. Beispielsweise kann die Logik 130 einen oder mehrere digitale Schaltkreise, einen oder mehrere analoge Schaltkreise, einen oder mehrere Statusmaschinen, programmierbare Logik und/oder einen oder mehrere ASICs (Application-Specific Integrated Circuits) umfassen. Alternativ oder zusätzlich kann die Logik 130 als maschinenausführbare Anweisungen 132, die in einem Speicher, wie etwa dem Speicher 104, gespeichert sind, ausgeführt sein, um diese Arbeitsabläufe auszuführen.
  • Das System 100 kann einen oder andere Typen von Speichern, Bussen und Netzwerksteuerungen umfassen; jedoch sind die Dargestellten zum Zweck einer einfachen Diskussion beschrieben. Der Hostprozessor 102, der Speicher 104 und die Busse 106, 110 können in einer einzelnen Platine, wie etwa beispielsweise einer Systemhauptplatine 118 aufgenommen sein, aber Ausgestaltungen der Erfindung sind in dieser Hinsicht nicht begrenzt.
  • Wie in 2 gezeigt, kann das System 100 in einem Netzwerk 200 betrieben werden. Das Netzwerk 200 weist eine Mehrzahl von Knoten 202A...202N auf. Ein oder mehrere Knoten 202A...202N können das System 100 umfassen und über ein Kommunikationsmedium 204 gemeinsam miteinander kommunizierend verbunden sein.
  • Wie hier verwendet bedeutet Komponenten, die „kommunizierend verbunden" sind, dass die Komponenten miteinander über drahtgebundene (z. B. Kupfer oder optische Drähte) oder drahtlose (z. B. Funkfrequenz) Mittel miteinander zu kommunizieren vermögen.
  • Wie hier verwendet bedeutet ein „Kommunikationsmedium" eine physikalische Einheit, durch die elektromagnetische Strahlung übertragen und/oder empfangen werden kann. Das Kommunikationsmedium 204 kann beispielsweise ein oder mehrere optische und/oder elektrische Kabel umfassen, obwohl viele Alternativen möglich sind. Beispielsweise kann das Kommunikationsmedium 204 beispielsweise Luft und/oder Vakuum umfassen, durch das die Knoten 202A...202N Sätze von einem oder mehreren Signalen drahtlos übertragen und/oder empfangen können. Weiter können die Knoten 202A...202N Sätze von einem oder mehreren Signalen über das Medium 204 übertragen und empfangen, das ein oder mehrere Pakete codieren kann. Im Netzwerk 200 kann einer oder mehrere der Knoten 202A...202N eine oder mehrere zwischengeschaltete Stationen (nicht gezeigt) umfassen, wie etwa beispielsweise einen oder mehrere Hubs, Schalter und/oder Router; zusätzlich oder alternativ kann einer oder mehrere der Knoten 202A...202N eine oder mehrere Endstationen aufweisen. Das Kommunikationsmedium 204 kann mit wenigstens einigen der Knoten 202A...202N und einer oder mehrerer dieser zwischengeschalteten Stationen kommunizierend miteinander verbunden sein. Selbstverständlich sind viele Alternativen möglich.
  • Wie in 3 dargestellt, kann der Speicher 104 Direct Messaging Empfangsadresse („DMRX") 314 und Direct Messaging Übertragungsadresse („DMTX") 316 umfassen; der Prozessor 102 kann kommunizierend an den Hostbus 110 angeschlossen sein und kann Prozessorempfangs („RX") Cache 304 und Prozessorübertragungs („TX") Cache 306 umfassen; die Netzwerksteuerung 126 kann auch kommunizierend an den Hostbus 110 angeschlossen sein und kann Netzwerksteuerungsempfangs („NC RX") Cache 304, Netzwerksteuerungsübertragungs („NC TX") Cache 306 und Register 312 umfassen; und eine Übertragungsanwendung 302T und eine Empfangsanwendung 302R, die im Speicher 104 gespeichert sind, können durch den Prozessor 102 ausgeführt werden. Wie hier verwendet, betreffen eine Direct Messaging Übertragungs (DMTX) Adresse und eine Direct Messaging Empfangs (DMRX) Adresse eine Adresse in einem Speicher und entsprechend einer Cache-Leitung in einem Cache-Agenten und können in Cache-Transaktionen, wie hier beschrieben, verwendet werden.
  • Der Prozessor 102 und die Netzwerksteuerung 126 können zusätzlich als Agent operieren. Folglich kann, in einer Ausgestaltung, jeder an einem Cache-Kohärenzprotokoll teilnehmen, um den Zustand der Cache-Leitungen zu verfolgen. Beispielsweise kann sowohl der Prozessor 102 als auch die Netzwerksteuerung am MESI (Modified, Exclusive, Shared, Invalid) Cache-Kohärenzprotokoll teilhaben. Das MESI Cache-Kohärenzprotokoll kann verwendet werden, um einen der vier Zustande einer Cache-Leitung anzuzeigen, wie folgt:
    • Modified: ein Eintrag in lediglich diesen Cache ist zulässig; der Speicher ist nicht aktualisiert.
    • Exclusive: kein anderer Cache hat diese Cache-Leitung; der Speicher ist aktualisiert.
    • Shared: andere Caches haben diese Cachel-Leitung; der Speicher ist aktualisiert.
    • Invalid: die Cache-Leitung enthält keine zulässigen Daten. In Ausgestaltungen der Erfindung kann dieses die assoziierte Cache-Leitung in die Lage versetzen, wieder verwendet zu werden.
  • Ausgestaltungen der Erfindung sind nicht auf das MESI Protokoll beschränkt. Beispielsweise können andere Kohärenzprotokolle verwendet werden einschließlich MESIF (Modified, Exclusive, Shared, Invalid und Forward) Cache-Kohärenzprotokoll und MOESI (Modified, Owned, Exclusive, Shared, Invalid) Cache-Kohärenzprotokoll. Andere Kohärenzprotokolle können verwendet werden, ohne sich von den Ausgestaltungen der Erfindung zu lösen.
  • Beispielsweise kann der Zustand von Cache-Leitungen unter Verwendung der Kohärenztabellen 402, 404, 406, 408, wie in 4 dargestellt, verwendet werden. Beispielsweise kann jede Tabelle 402, 404, 406, 408 Information für eine oder mehrere Cache-Leitungen verwalten, die je einer Adresse im Speicher 104 entsprechen, einschließlich dem Zustand der Cache-Leitung an dieser Adresse. In diesem Beispiel zeigt jede Cache-Kohärenztabelle 402, 404, 406, 408 einen anfänglichen Zustand 408, 412, 418, 424 an. Ein oder mehrere folgende Zustände 410, 414, 416, 420, 422, 426, 428 sind ebenso dargestellt und im Folgenden beschrieben.
  • 5 stellt ein Verfahren gemäß einer Ausgestaltung der Erfindung dar. In einer Ausgestaltung kann das Verfahren von 5 durch das System 100 ausgeführt werden. Das Verfahren von 5 kann bei Block 500 beginnen. Bei Block 502 umfasst das Verfahren das Empfangen eines DM Pakets an einer ersten Cache-Leitung, die mit einem Prozessor assoziiert ist, wobei die erste Cache-Leitung einer Direct Messaging Übertragungsadresse in einem Speicher zugeordnet ist. Beispielsweise kann das DM Paket durch die Übertragungsanwendung 302T übertragen werden und die erste Cache-Leitung kann mit dem Prozessor 102 assoziiert sein und kann der Adresse DMTX 316 im Speicher 104 entsprechen.
  • Bei Block 504 kann das Verfahren das Spülen der ersten Cache-Leistung in den Speicher an der Direct Messaging Übertragungsadresse unter Verwendung eines Hostbusses umfassen. Beispielsweise kann die Anwendung 302T die erste Cache-Leitung in den Speicher 104 der Adresse DMTX 316 (12) unter Verwendung des Hostbus 110 spülen. In einer Ausgestaltung bedeutet das Spülen einer Cache-Leitung das Kopieren des Inhalts dieser Cache-Leitung in einen anderen Bereich, z. B. als Zweck die Kohärenz zu bewahren, obwohl Ausgestaltungen dieser Erfindung nicht dadurch beschränkt werden. Die Adresse DMTX 316 kann durch einen Netzwerksteuerungstreiber eingerichtet sein. Beispielsweise kann ein Netzwerksteuerungstreiber eine Verbindung zwischen zwei Knoten durch ein Initialisierungsregister 312 mit der Adresse DMTX 316 einrichten.
  • Bezugnehmend auf 4 zur Cache-Kohärenztabelle 400, auf (10) folgend und vor (12), können die Daten (i.e. das DM Paket) in der Cache-Leitung DMTX im Prozessor TX Cache 306A aktuell sein und der Zustand dieser Cache-Leitung kann „DM" 408 sein. Auf (12) folgend können die Daten an Cache-Leitung DMTX im Prozessor TX Cache 306A ungültig sein und der Zustand dieser Cache-Leitung kann zu „I" 410 übergehen. Der „I" Status kann anzeigen, dass die Cache-Leitung nun wiederverwendet werden kann.
  • Bei Block 506 kann das Verfahren das Erfassen des Spülvorgangs durch eine Netzwerksteuerung umfassen, die mit dem Hostbus kommunizierend verbunden ist. Beispielsweise kann der Spülvorgang durch die Netzwerksteuerung 126 erfasst werden, die mit dem Hostbus 110 kommunizierend verbunden ist. Da die Netzwerksteuerung 126 kommunizierend mit dem Hostbus 110 verbunden ist, kann die Netzwerksteuerung 126 die am Hostbus 110 auftretenden Transaktionen überwachen (14). Wenn eine Transaktion am Hostbus 110 ausgeführt wird, kann die Netzwerksteuerung 126 bestimmen, ob die Transaktion ein Spülvorgang der Adresse DMTX 316 ist. Beispielsweise kann die Netzwerksteuerung 126 dieses durch Untersuchen eines „Abfragefelds" der Transaktion durchführen. Wenn diese gegeben ist, kann die Netzwerksteuerung 126 das Paket vom Hostbus 110 ergreifen (14).
  • Bei Block 508 kann das Verfahren das Speichern des DM Pakets in einer zweiten Cache-Leitung umfassen, die mit der Netzwerksteuerung assoziiert ist, wobei die zweite Cache- Leitung auch der Direct Messaging Übertragungsadresse im Speicher zugeordnet ist. Beispielsweise kann das DM Paket in einer Cache-Leitung gespeichert werden, die mit der Netzwerksteuerung 126 assoziiert ist (14), wobei die Cache-Leitung auch der Adresse DMTX 316A zugeordnet ist.
  • Bei Block 510 kann das Verfahren das Senden des DM Pakets über ein Netzwerk an eine dritte Cache-Leitung umfassen, die mit einem zweiten Prozessor assoziiert ist. Beispielsweise kann das DM Paket am Hostbus 110 erfasst werden und über ein Netzwerk gesendet werden (16). Weiterhin, um die Bereitschaft ein anderes Paket vom Hostprozessor 102 zu empfangen anzuzeigen, kann die Netzwerksteuerung 126 die Cache-Leistung zum Speicher 104 spülen (17). Die Netzwerksteuerung 126 kann auch eine oder mehrere Steuerungsmarkierungen in der Cache-Leitung aktualisieren, die mit der Adresse DMTX 316 assoziiert sind, bevor die Cache-Leitung in den Speicher 104 gespült wird. Dieses kann die Übertragungsanwendung 302T in die Lage versetzen, im Folgenden DM Pakete zu erzeugen, die aktualisierte Flusssteuerungsinformation enthalten.
  • Das Verfahren kann bei Block 512 enden.
  • Sich der Cache-Kohärenztabelle 402 zuwendend, auf (12) folgend und vor (14), können die Daten an Cache-Leitung DMTX im NC TX Cache 306A ungültig sein und der Zustand dieser Cache-Leitung kann „I" 412 sein. Auf (14) folgend können die Daten an Cache-Leitung DMTX im NC TX Cache 306A aktuell sein und der Zustand dieser Cache-Leitung kann zu „M" 414 übergehen. Auf (17) folgend können die Daten an Cache-Leitung DMTX im NC TX Cache 306A ungültig sein und der Zustand dieser Cache-Leitung kann zu „I" 416 übergehen. Der „I" Zustand kann anzeigen, dass die Cache-Leitung wiederverwendet werden kann.
  • 6 stellt ein anderes Verfahren gemäß einer Ausgestaltung der Erfindung dar. In einer Ausgestaltung kann das Verfahren von 6 auch durch das System 100 ausgeführt werden. Das Verfahren von 6 kann bei Block 600 beginnen und sich bei Block 602 fortsetzen, wobei das Verfahren das Empfangen eines Direct Messaging („DM") Pakets aus dem Netzwerk aus einer dritten Cache-Leistung, die mit der Netzwerksteuerung assoziiert ist, umfasst, wobei die dritte Cache-Leitung einer Direct Messaging Empfangsadresse im Speicher zugeordnet ist.
  • In einer Ausgestaltung kann ein DM Paket von einer MAC Schnittstelle des Protokolls empfangen werden, das an der Netzwerksteuerung 126 ausgeführt ist und kann von einem Netzwerksteuerungsübertragungs-Cache einer anderen Netzwerksteuerung gesendet sein. Weiter kann das DM Paket an einer Cache-Leitung (18, 20) empfangen werden, die mit der Netzwerksteuerung 126 assoziiert ist, wobei die Cache-Leitung der Adresse DMRX 314 im Speicher 104 entsprechen kann. In einer Ausgestaltung kann ein DM Paket als ein DM Paket bestimmt sein durch Lesen eines Typfelds des Paketheaders.
  • Bei Block 604 kann das Verfahren das Senden eines Busungültigkeitsbefehls über den Hostbus umfassen (22). Der Busungültigkeitsbefehl kann die empfangende Anwendung 302R zwingen Adresse DMRX 314 abzufragen, um Daten für die Cache-Leitung DMRX aus dem Speicher 104 zu holen. Wie hier verwendet betrifft ein „Busungültigkeitsbefehl" eine Anweisung oder ein Signal, das beispielsweise eine Anwendung zwingt, eine Cache-Leitung abzufragen, um Daten aus einer korrespondierenden Adresse im Speicher abzufragen.
  • In der Cache-Kohärenztabelle 404 und vor (20) können die Daten an Cache-Leitung DMRX im NC RX Cache 306X gültig sein und der Zustand dieser Cache-Leitung kann „I" 418 sein. Auf (20) folgend können die Daten an Cache-Leitung DMRX im NC RX Cache 306X modifiziert sein und der Zustand dieser Cache-Leitung kann zu „M" 420 übergehen. Auf (22) folgend können die Daten an Cache-Leitung DMRX im NC RX Cache 306X ungültig sein und der Zustand dieser Cache-Leitung kann zu „I" 422 übergehen. Der „I" Zustand kann anzeigen, dass die Cache-Leitung nun wiederverwendet werden kann. Diese kann ebenso sicherstellen, dass die Übertragung nur einmal erfolgt und die darauf folgenden Lesvorgänge an Adresse DMRX 314 nicht im Antworten mit irgendwelchen Daten resultieren.
  • Bei Block 606 kann das Verfahren das Lesen des Speichers an der Direct Messaging Empfangsadresse umfassen. In einer Ausgestaltung kann der Busungültigkeitsbefehl bei Block 604 im Zwangsräumen der Cache-Leitung DMRX aus ihrem Cache (z. B. Prozessor RX Cache 304) resultieren, welches zum Ergebnis führt, dass die Empfangsanwendung 302R an Cache-Leitung DMRX (24) abfragt, anstelle die Daten von Adresse DMRX 314 im Speicher 104 zu holen. Alternativ kann die Adresse DMRX 314 im Speicher 104 als Ergebnis des Überwachens der Empfangsanwendung 302R auf Befehl am Hostbus 110 resultieren. Die Adresse DMRX 314 kann beispielsweise von einem Netzwerksteuerungstreiber eingerichtet sein. Beispielsweise kann der Netzwerksteuerungstreiber eine Verbindung zwischen zwei Knoten durch ein Initialisierungsregister 312 einrichten.
  • Bei Block 608 kann das Verfahren das Erfassen des Lesezugriffs durch die Netzwerksteuerung umfassen. In einer Ausgestaltung kann die Netzwerksteuerung 126 den Lesezugriff am Hostbus 110 erfassen (26).
  • Bei Block 610 kann das Verfahren das Speichern des DM Pakets an einer vierten Cache-Leitung, die mit dem Prozessor assoziiert ist, aufweisen, wobei die vierte Cache-Leitung auch der Direct Messaging Empfangsadresse im Speicher zugeordnet ist. In einer Ausgestaltung kann das DM Paket an einer Cache-Leitung, die mit dem Prozessor RX Cache 304 des Prozessors 102 assoziiert ist (28), speichern, wobei die vierte Cache-Leitung auch der Adresse DMRX 314 im Speicher 104 zugeordnet ist. Weiter kann das DM Paket in einer Ausgestaltung über einen HITM# befehlt am Hostbus 110 bereitgestellt werden. Ein HITM# Befehl betrifft einen Befehl, der einen Cache-Agenten in die Lage versetzt, die aktuellsten Daten bereitzustellen, als Antwort auf eine Lesezugriffstransaktion, die von einem anderen Cache-Agenten ausgelöst wurde.
  • In der Cache-Kohärenztabelle 406, auf (24) folgend und vor (28), können die Daten an Cache-Leitung DMRX im Prozessor RX Cache 304X gemeinsam genutzt werden und der Zustand dieser Cache-Leitung kann „S" 424 sein. Auf (28) folgend, können die Daten an Cache-Leitung DMRX im Prozessor RX Cache 304X ungültig sein und der Zustand dieser Cache-Leitung kann zu „I" 426 übergehen. Der „I" Zustand kann anzeigen, dass die Cache-Leitung nun wiederverwendet werden kann.
  • In einer Ausgestaltung kann das DM Paket in der Prozessor Cache-Leitung durch die Empfangsanwendung 302R verarbeitet werden und die Anwendung kann die assoziierte Nachricht abfragen. Darauffolgend kann die Anwendung das DM Paket (30) aufbrauchen und kann ein Flusssteuerungsbit setzen, um anzuzeigen, dass es für das nächste Paket bereit ist. Die Empfangsanwendung 302R kann weiter die Adresse DMRX 314 zum Speicher 304X spülen (32). Die Netzwerksteuerung kann diesen Spülvorgang beobachten und kann für ein anderes Paket bereit sein.
  • In der Cache-Kohärenztabelle 406 und auf (32) folgend können die Daten in der Cache-Leitung DMRX im Prozessor RX Cache 304X modifiziert werden und der Zustand dieser Cache-Leitung kann zu „M" übergehen 428. Der Zustand dieser Cache-Leitung kann bei „M" solange verbleiben, wie die Empfangsanwendung 302R dies für notwendig erachtet.
  • Das Verfahren kann bei Block 612 enden.
  • 7 stellt ein Verfahren in Übereinstimmung mit einer anderen Ausgestaltung der Erfindung dar. Das Verfahren kann bei Block 700 beginnen und sich bei Block 702 fortsetzen, wobei das Verfahren das Erfassen eines an einem Hostbus auftretenden Spülens eines Pakets an einen Speicher von einer ersten Cache-Leitung, die mit einem Prozessor assoziiert ist, durch eine Netzwerksteuerung umfasst. In einer Ausgestaltung kann die Netzwerksteuerung 126 einen Spülvorgang eines Pakets an den Speicher 104 aus einer ersten Cache-Leitung, die mit dem Prozessor 102 assoziiert ist, am Hostbus 110 erfassen. In einer Ausgestaltung kann der erste Cache der Adresse DMTX 316 im Speicher 104 entsprechen.
  • Bei Block 704 kann das Verfahren das Erhalten und Speichern des Pakets in einer Zwei-Cache-Leitung umfassen, die mit der Netzwerksteuerung assoziiert ist. In einer Ausgestaltung kann das Paket an einer Cache-Leitung gespeichert werden, die mit der Netzwerksteuerung 126 assoziiert ist. Weiter kann die Cache-Leitung in einer Ausgestaltung der Adresse DMTX 316 entsprechen.
  • Bei Block 706 kann das Verfahren das Senden des Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist, umfassen. In einer Ausgestaltung kann das Paket über ein Netzwerk direkt über eine Cache-Leitung über einen anderen Prozessor gesendet werden.
  • Das Verfahren kann bei Block 708 enden.
  • 8 stellt ein Verfahren in Übereinstimmung mit einem anderen Ausführungsbeispiel der Erfindung dar. Das Verfahren kann bei Block 800 beginnen und sich bei Block 802 fortsetzen, wobei das Verfahren das Empfangen eines Direct Messaging „DM" Pakets über ein Netzwerk umfasst. In einer Ausgestaltung kann das DM Paket auf ein anderes System durch eine Übertragungsanwendung übertragen werden.
  • Bei Block 806 kann das Verfahren das Speichern des DM Pakets an einer vierten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist, umfassen. In einer Ausgestaltung kann die vierte Cache-Leitung mit der Netzwerksteuerung 126 assoziiert sein und der Adresse DMRX 314 entsprechen.
  • Bei Block 806 kann das Verfahren das Senden eines Busungültigkeitsbefehls über einen Hostbus umfassen. In einer Ausgestaltung kann die Netzwerksteuerung einen Busungültigkeitsbefehl über den Hostbus 110 senden. In einer Ausgestaltung kann dieses darin resultieren, dass die vierte Cache-Leitung von ihrem Cache (z. B. Prozessor RX Cache 304) zwangsgeräumt wird, welches dazu führt, dass die Empfangsanwendung 302R die Daten von DMRX 314 im Speicher 104 liest.
  • Bei Block 808 kann das Verfahren das Erfassen eines am Hostbus auftretenden Lesezugriffs an den Speicher an einer Adresse, die der vierten Cache-Leitung zugeordnet ist, durch die Netzwerksteuerung umfassen. In einer Ausgestaltung kann die Netzwerksteuerung den am Hostbus 110 zum Speicher 104 bei Adresse DMRX 314 auftretenden Lesezugriff erfassen. Wie oben beschrieben, kann dieser Lesezugriff von der Empfangsanwendung 302R sein, die Daten vom DMRX 314 im Speicher 104 liest, da die vierte Cache-Leitung von ihrem Cache zwangsgeräumt wurde.
  • Bei Block 810 kann das Verfahren das Speichern des DM Pakets an einer fünften Cache-Leitung, die mit dem ersten Prozessor assoziiert ist, umfassen. In einer Ausgestaltung kann das DM Paket an der Cache-Leitung gespeichert sein, die mit dem Prozessor 102 assoziiert ist. Weiter kann die Cache-Leitung der Adresse DMRX 314 entsprechen.
  • Das Verfahren kann bei Block 812 enden.
  • Schlussbemerkung
  • Daher umfasst das Verfahren in einer Ausgestaltung das Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines Pakets an einen Speicher von einer ersten Cache-Leitung, die mit einem ersten Prozessor assoziiert ist, das Erhalten und Speichern des Pakets von einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; und Senden des Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist.
  • Ausgestaltungen der Erfindung können eine Anwendung mit geringer Latenz für einen Anwendungsnachrichtenweitergabemechanismus bereitstellen. Durch Verwenden von Cache-Netzwerksteuerungen, können Netzwerksteuerungen und Prozessoren in sowohl übertragenden als auch empfangenden Systemen Cache-Kohärenzprotokolle verwenden, um Pakete aus einem Cache auf einem übertragenden System zu liefern und Daten an einem Cache auf einem empfangenden System zu empfangen. Eine Anwendung am empfangenden System kann auf die assoziierte Nachricht aus dem Cache am empfangenden System schneller zugreifen. Da das Zugreifen von Daten aus dem Cache schneller ist als das Zugreifen auf diese aus dem Speicher, resultiert die Nachrichtenweitergabe in einer geringeren Latenz.
  • In der vorstehenden Beschreibung ist die Erfindung mit Bezug auf deren besondere Ausführungsbeispiele beschrieben worden. Es ist jedoch offensichtlich, dass vielfältige Modifikationen und Änderungen an diesen Ausführungsbeispielen durchgeführt werden können, ohne sich von diesen zu lösen. Entsprechend sind die Beschreibung und die Zeichnungen in beschreibender anstelle einschränkender Weise zu betrachten.
  • ZUSAMMENFASSUNG
  • In einer Ausgestaltung wird ein Verfahren bereitgestellt. Das Verfahren dieser Ausgestaltung stellt bereit: Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines DM („Direct Messaging") Pakets zu einem Speicher von einer mit einem ersten Prozessor assoziierten Cacheleitung durch eine Netzwerksteuerung; Erhalten und Speichern des DM Pakets an einer zweiten Cacheleitung, die mit der Netzwerksteuerung assoziiert ist; und Senden des DM Pakets über ein Netzwerk an eine dritte Cacheleitung, die mit einem zweiten Prozessor assoziiert ist.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • - Institute of Electrical and Electronics Engineers, Inc. (IEEE) Std. 802.3, Ausgabe 2002, aktuelle Ausgabe veröffentlicht am 8. März 2002. [0019]

Claims (20)

  1. Verfahren mit den Schritten – Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines DM („Direct Messaging") Pakets an einen Speicher aus einer ersten Cache-Leitung, die mit einem Prozessor assoziiert ist, durch eine Netzwerksteuerung; – Erhalten und Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; und – Senden des DM Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist.
  2. Verfahren nach Anspruch 1, gekennzeichnet durch die Schritte – Empfangen eines Direct Messaging („DM") Pakets über ein Netzwerk an einer vierten Cache-Leitung, die mit einer Netzwerksteuerung assoziiert ist; – Senden eines Ungültigkeitbefehls an einen Hostbus; – Erfassen eines an dem Hostbus zum Speicher auftretenden Lesezugriffs an eine Adresse, die der vierten Cache-Leitung entspricht, durch die Netzwerksteuerung; und – Speichern des DM Pakets an einer fünften Cache-Leitung, die mit dem ersten Prozessor assoziiert ist, als Antwort auf das Erfassen.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die Netzwerksteuerung mit dem Hostbus kommunizierend verbunden ist.
  4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der Lesezugriff am Hostbus als Antwort auf das Senden eines Busungültigkeitbefehls der Netzwerksteuerung auftritt.
  5. Verfahren mit den Schritten: – Empfangen eines DM („Direct Messaging") Pakets an einer ersten Cache-Leitung, die mit einem Prozessor assoziiert ist, wobei die erste Cache-Leitung einer Direct Messaging Übertragungsadresse in einem Speicher zugeordnet ist; – Spülen der ersten Cache-Leitung an den Speicher an der Direct Messaging Übertragungsadresse unter Verwendung eines Hostbus; – Erfassen des Spülens durch eine mit dem Hostbus kommunizierend verbundene Netzwerksteuerung; – Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerkleitung assoziiert ist, wobei die zweite Cache-Leitung auch der Direct Messaging Übertragungsadresse im Speicher zugeordnet ist; und – Senden des DM Pakets, das am Hostbus erfasst wurde, über ein Netzwerk.
  6. Verfahren nach Anspruch 5, gekennzeichnet durch die Schritte – Empfangen eines Direct Messaging („DM") Pakets aus dem Netzwerk an einer dritten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist, wobei die dritte Cache-Leitung einer Direct Messaging Empfangsadresse im Speicher zugeordnet ist; – Senden eines Busungültigkeitbefehls über den Hostbus; – Lesen des Speichers an der Direct Messaging Empfangsadresse; – Erfassen des Lesezugriffs durch die Netzwerksteuerung; und – Speichern des DM Pakets an einer vierten Cache-Leitung, die mit dem Prozessor assoziiert ist, wobei die vierte Cache-Leitung auch der Direct Messaging Empfangsadresse im Speicher zugeordnet ist.
  7. Verfahren nach Anspruch 6, gekennzeichnet durch Holen des DM Pakets durch eine empfangende Anwendung.
  8. Vorrichtung mit: – einer Logik zum: – Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines DM („Direct Messaging") Pakets an einen Speicher von einer ersten Cache-Leitung, die mit einem ersten Prozessor assoziiert ist, durch eine Netzwerksteuerung; – Erhalten und Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; und – Senden des DM Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist.
  9. Vorrichtung nach Anspruch 8, gekennzeichnet durch Logik zum: – Empfangen eines Direct Messaging („DM") Pakets über das Netzwerk an einer vierten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; – Erfassen eines an dem Hostbus auftretenden Lesezugriffs auf den Speicher an einer Adresse, die der vierten Cache-Leitung zugeordnet ist, durch die Netzwerksteuerung; und – Speichern des DM Pakets an einer fünften Cache-Leitung, die mit dem ersten Prozessor assoziiert ist, als Antwort auf das Erfassen.
  10. Vorrichtung nach Anspruch 9, dadurch gekennzeichnet, dass die Logik zum Erfassen des am Hostbus auftretenden Lesezugriffs als Antwort auf das Senden eines Busungültigkeitbefehls durch die Netzwerksteuerung umfasst.
  11. System mit: – einer Platine, die einen Bus-Leiterplattenschacht aufweist; und – einer Bus-Leiterplatte, die in der Lage ist, an die Platine über den Bus-Leiterplattenschacht angeschlossen zu werden, wobei die Bus-Leiterplatte die Logik einer Netzwerksteuerung aufweist zum: – Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines DM („Direct Messaging") Pakets an einen Speicher von einer ersten Cache-Leitung, die mit einem ersten Prozessor assoziiert ist; – Erhalten und Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; und – Senden des Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist.
  12. System nach Anspruch 11, gekennzeichnet durch Logik zum: – Empfangen eines Direct Messaging („DM") Pakets über das Netzwerk an einer vierten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; – Erfassen eines an einem Hostbus an dem Speicher an einer Adresse, die der vierten Cache-Leitung zugeordnet ist, auftretenden Lesezugriffs durch die Netzwerksteuerung; und – Speichern des DM Pakets an einer fünften Cache-Leitung, die mit dem ersten Prozessor assoziiert ist, als Antwort auf die Erfassungslogik.
  13. System nach Anspruch 12, dadurch gekennzeichnet, dass die Logik Logik zum Erfassen des am Hostbus in Antwort auf das Senden eines Busungültigkeitbefehls durch die Netzwerksteuerung auftretenden Lesezugriffs umfasst.
  14. System nach Anspruch 11, dadurch gekennzeichnet, dass die Netzwerksteuerung dem MESI (Modified, Exclusive, Shared, Invalid) Cache-Coherenzprotokoll genügt.
  15. System mit: – einem Prozessor zum: – Empfangen eines DM („Direct Messaging") Pakets an einer ersten Cache-Leitung, die mit dem Prozessor assoziiert ist, wobei die erste Cache-Leitung einer Direct Messaging Übertragungsadresse im Speicher entspricht; und – Spülen der ersten Cache-Leitung in dem Speicher an der Direct Messaging Übertragungsadresse unter Verwendung eines Hostbus; – ein Hostbus, der kommunizierend mit dem Prozessor verbunden ist; und – einer NIC („Netzwerkschnittstellenkarte"), die mit dem Hostbus kommunizierend verbunden ist, zum: – Erfassen des Spülvorgangs; – Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist, wobei die zweite Cache-Leitung auch der Direct Messaging Übertragungsadresse im Speicher zugeordnet ist; und – Senden des DM Pakets, das am Hostbus erfasst wurde, über ein Netzwerk.
  16. System nach Anspruch 15, dadurch gekennzeichnet, dass das NIC zusätzlich: – ein DM Paket an einer dritten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist vom Netzwerk empfängt, wobei die dritte Cache-Leitung einer Direct Messaging Empfangsadresse im Speicher zugeordnet ist; und – einen Busungültigkeitbefehl über den Hostbus sendet; – ein Prozessor zum zusätzlichen Lesen des Speichers an der Direct Messaging Empfangsadresse; wobei die NIC: – das Lesen erfasst; und – das DM Paket an einer vierten Cache-Leitung, die mit dem Prozessor assoziiert ist, speichert, wobei die vierte Cache-Leitung auch der Direct Messaging Empfangsadresse im Speicher zugeordnet ist.
  17. System nach Anspruch 16, dadurch gekennzeichnet, dass der Prozessor das DM Paket für eine empfangende Anwendung holt.
  18. Gegenstand mit einem maschinenlesbaren Medium, das maschinenzugreifbare Anweisungen hat, wobei die Anweisungen, wenn diese durch eine Maschine ausgeführt, im Folgenden resultieren: – Erfassen eines an einem Hostbus auftretenden Spülvorgangs eines DM („Direct Messaging") Pakets an einen Speicher von einer ersten Speicherleistung, die mit einem ersten Prozessor assoziiert ist durch eine Netzwerksteuerung; – Erhalten und Speichern des DM Pakets an einer zweiten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; und – Senden des DM Pakets über ein Netzwerk an eine dritte Cache-Leitung, die mit einem zweiten Prozessor assoziiert ist.
  19. Gegenstand von Anspruch 18, dadurch gekennzeichnet, dass die Anweisungen zusätzlich resultieren in: – Empfangen eines Direct Messaging („DM") Pakets über das Netzwerk an einer vierten Cache-Leitung, die mit der Netzwerksteuerung assoziiert ist; – Erfassen eines am Hostbus auftretenden Lesezugriffs an den Speicher an eine Adresse, die der vierten Cache-Leitung zugeordnet ist, durch die Netzwerksteurung; und – Speichern des DM Pakets an einer fünften Cache-Leitung, die mit dem ersten Prozessor assoziiert ist als Antwort auf die Erfassungslogik.
  20. Gegenstand von Anspruch 19, dadurch gekennzeichnet, dass die Anweisungen, die aus dem am Hostbus auftretenden Lesezugriff resultieren, als Antwort auf Anweisungen ausgeführt werden, die darin resultieren, dass die Netzwerksteuerung einen Busungültigkeitbefehl senden.
DE112006002382T 2005-09-26 2006-09-26 Mechanismus zur Nachrichtenweitergabe mit geringer Latenz Withdrawn DE112006002382T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/236,386 2005-09-26
US11/236,386 US7617363B2 (en) 2005-09-26 2005-09-26 Low latency message passing mechanism
PCT/US2006/037633 WO2007038574A1 (en) 2005-09-26 2006-09-26 A low latency message passing mechanism priority information

Publications (1)

Publication Number Publication Date
DE112006002382T5 true DE112006002382T5 (de) 2008-07-03

Family

ID=37728424

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112006002382T Withdrawn DE112006002382T5 (de) 2005-09-26 2006-09-26 Mechanismus zur Nachrichtenweitergabe mit geringer Latenz

Country Status (4)

Country Link
US (1) US7617363B2 (de)
CN (1) CN101273340B (de)
DE (1) DE112006002382T5 (de)
WO (1) WO2007038574A1 (de)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070079032A1 (en) * 2005-09-30 2007-04-05 Intel Corporation Serial signal ordering in serial general purpose input output (SGPIO)
US8099521B2 (en) * 2006-10-26 2012-01-17 Interactic Holdings Inc. Network interface card for use in parallel computing systems
US8146094B2 (en) * 2008-02-01 2012-03-27 International Business Machines Corporation Guaranteeing delivery of multi-packet GSM messages
US8200910B2 (en) * 2008-02-01 2012-06-12 International Business Machines Corporation Generating and issuing global shared memory operations via a send FIFO
US8275947B2 (en) * 2008-02-01 2012-09-25 International Business Machines Corporation Mechanism to prevent illegal access to task address space by unauthorized tasks
US8255913B2 (en) * 2008-02-01 2012-08-28 International Business Machines Corporation Notification to task of completion of GSM operations by initiator node
US8239879B2 (en) * 2008-02-01 2012-08-07 International Business Machines Corporation Notification by task of completion of GSM operations at target node
US8214604B2 (en) * 2008-02-01 2012-07-03 International Business Machines Corporation Mechanisms to order global shared memory operations
US8484307B2 (en) * 2008-02-01 2013-07-09 International Business Machines Corporation Host fabric interface (HFI) to perform global shared memory (GSM) operations
US7966454B2 (en) * 2008-02-01 2011-06-21 International Business Machines Corporation Issuing global shared memory operations via direct cache injection to a host fabric interface
US8751714B2 (en) * 2010-09-24 2014-06-10 Intel Corporation Implementing quickpath interconnect protocol over a PCIe interface
US9552206B2 (en) * 2010-11-18 2017-01-24 Texas Instruments Incorporated Integrated circuit with control node circuitry and processing circuitry
US9866498B2 (en) * 2014-12-23 2018-01-09 Intel Corporation Technologies for network packet cache management
US11194753B2 (en) 2017-09-01 2021-12-07 Intel Corporation Platform interface layer and protocol for accelerators
US10521383B1 (en) * 2018-12-17 2019-12-31 Micron Technology, Inc. Handling operation collisions in a non-volatile memory
US11153231B2 (en) * 2019-07-19 2021-10-19 Arm Limited Apparatus and method for processing flush requests within a packet network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5579503A (en) * 1993-11-16 1996-11-26 Mitsubishi Electric Information Technology Direct cache coupled network interface for low latency
US5764896A (en) * 1996-06-28 1998-06-09 Compaq Computer Corporation Method and system for reducing transfer latency when transferring data from a network to a computer system
US6141344A (en) * 1998-03-19 2000-10-31 3Com Corporation Coherence mechanism for distributed address cache in a network switch
US6675316B1 (en) * 2000-07-12 2004-01-06 International Business Machines Corporation Method and system for recovery of the state of a failed CPU/cache/memory node in a distributed shared memory system
US6940865B2 (en) 2001-04-17 2005-09-06 Atheros Communications, Inc. System and method for interleaving frames with different priorities

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Institute of Electrical and Electronics Engineers, Inc. (IEEE) Std. 802.3, Ausgabe 2002, aktuelle Ausgabe veröffentlicht am 8. März 2002.

Also Published As

Publication number Publication date
WO2007038574A1 (en) 2007-04-05
US20070073976A1 (en) 2007-03-29
CN101273340B (zh) 2011-03-09
US7617363B2 (en) 2009-11-10
CN101273340A (zh) 2008-09-24

Similar Documents

Publication Publication Date Title
DE112006002382T5 (de) Mechanismus zur Nachrichtenweitergabe mit geringer Latenz
DE69833708T2 (de) Kommunikationsverfahren für eine medienunabhängige Schnittstelle (MII) für ein hochintegriertes Ethernet-Netzelement
DE602004004942T2 (de) Virtuelle Netzwerkadressen
DE112006001643B4 (de) Verfahren und Vorrichtung zum Aushandeln von Punkt-zu-Punkt-Verbindungen
DE69932400T2 (de) Steuerungsvorrichtung für einen Portverwalter zur Verbindung von verschiedenen Funktionsmodulen
DE60217221T2 (de) Ein-Chip System zur Paketverarbeitung
EP1456722B1 (de) Datenübertragungsverfahren, serielles bussystem und anschalteinheit für einen passiven busteilnehmer
DE69928603T2 (de) Medienzugriffssteuerung
DE60212626T2 (de) Endknotenunterteilung mittels lokaler identifikatoren
DE69334171T2 (de) Verfahren und Vorrichtung zur Arbitrierung auf einen acyclischen gerichteten Graph
DE69829840T2 (de) Medienzugriffskontroller und Medienunabhängige Schnittstelle(MII) zum Verbinden an eine physikalische Schicht Vorrichtung
DE102016000302B4 (de) - 7fernüberwachung und -konfiguration von vorrichtungen für die bitübertragungsschicht
DE102014001197A1 (de) Kompatibler Netzwerkknoten, insbesondere für CAN-Bussysteme
DE112013005090T5 (de) Steuernachrichtenübermittlung in einem mehrfach-Slot-Verbindungsschicht-Flit
DE102017123251A1 (de) Betriebsverfahren eines Kommunikationsknotens für selektives Aufwecken im Fahrzeugnetzwerk
DE112011103207T5 (de) Implementierung eines Quickpath Interconnect-Protokolls auf einer PCIe-Schnittstelle
WO2007093546A2 (de) Gateway zum automatischen routen von nachrichten zwischen bussen
DE10045915A1 (de) Verfahren und System zum Steuern von Datenübertragungen mit physikalischer Trennung der Datenfunktionalität von der Adressen- und Steuerfunktionalität in einem verteilten Multi-Bus-Mehrprozessorsystem
DE102008030587A1 (de) Verfahren und Vorrichtung zur Erhöhung der Effizienz der Interrupt-Lieferung zur Laufzeit in einem Netzwerksystem
DE102005048581B4 (de) Teilnehmerschnittstelle zwischen einem FlexRay-Kommunikationsbaustein und einem FlexRay-Teilnehmer und Verfahren zur Übertragung von Botschaften über eine solche Schnittstelle
DE102019130502A1 (de) Fahrzeug und Verfahren für eine fahrzeuginterne Mitteilungsübertragung
DE102015213378A1 (de) Verfahren und Gerät zum Diagnostizieren eines Netzes
DE102017200958A1 (de) Betriebsmodus-übergangsverfahren in einem netz
DE112011103225T5 (de) Drosseln einer integrierten Verbindung
DE102013212213A1 (de) System und Verfahren zur Spiegelung von Datenströmen

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R016 Response to examination communication
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee