DE112010002704B4 - Mehrere Komprimierungstechniken für Informationen in Paketform - Google Patents

Mehrere Komprimierungstechniken für Informationen in Paketform Download PDF

Info

Publication number
DE112010002704B4
DE112010002704B4 DE112010002704.8T DE112010002704T DE112010002704B4 DE 112010002704 B4 DE112010002704 B4 DE 112010002704B4 DE 112010002704 T DE112010002704 T DE 112010002704T DE 112010002704 B4 DE112010002704 B4 DE 112010002704B4
Authority
DE
Germany
Prior art keywords
packet
header
compression
comparison
packet header
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.)
Active
Application number
DE112010002704.8T
Other languages
English (en)
Other versions
DE112010002704T5 (de
Inventor
Abhishek Signhal
Debendra Das Sharma
Jesus Palomino
Mario Rubio
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 DE112010002704T5 publication Critical patent/DE112010002704T5/de
Application granted granted Critical
Publication of DE112010002704B4 publication Critical patent/DE112010002704B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9042Separate storage for different parts of the packet, e.g. header and payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Verfahren, welches das Folgende umfasst:Vergleichen eines Paketkopfs (100) eines Pakets (10), das in einen Sender eingegeben wird, mit einem gespeicherten Paketkopf, welcher einem vorigen Paket desselben Typs wie das von dem Sender gesendete Paket entspricht (430);Erzeugen eines Vergleichsvektors (30) auf der Grundlage des Vergleichs (440), wobei der Vergleichsvektor eine Vielzahl von Bits umfasst, die jeweils angeben, ob ein Abschnitt des Paketkopfes mit einem korrespondierenden Abschnitt des gespeicherten Paketkopfes übereinstimmt,Senden des Pakets aus dem Sender ohne den Paketkopf und mit dem Vergleichsvektor (480), wenn der Paketkopf und der gespeicherte Paketkopf übereinstimmen, Komprimieren eines Datenabschnitts des Pakets (10) mit einer anderen Komprimierungstechnik undAktualisieren einer Häufigkeitstabelle der anderen Komprimierungstechnik mit Informationen hinsichtlich jedes gesendeten Pakets (10) und das Aktualisieren eines Baums der anderen Komprimierungstechnik nur einmal während einer vorgegebenen Anzahl gesendeter Pakete.

Description

  • Allgemeiner Stand der Technik
  • Bei den heutigen Computerarchitekturen steigen die Anforderungen an die Bandbreite für die Anwendungen exponentiell. Dies gilt sowohl für Speicher- als auch für Eingabe/Ausgabe(E/A)-Teilsysteme. Auch ist zuletzt festgestellt worden, dass die Unterstützung dieses exponentiellen Anstiegs der Bandbreite mit den vorhandenen Verbindungen aufgrund der technischen Realisierung und aufgrund der Möglichkeiten der Industrie immer schwieriger geworden ist.
  • Ein Beispiel für diesen Trend ist in den verfügbaren Geschwindigkeiten kommender Generationen der wohlbekannten Peripheral-Component-Interconnect-Express-Verbindungstechnologie (PCIeTM) zu sehen. Speziell war gemäß der PCI ExpressTM Specification Base Specification 2.0 (veröffentlicht am 17. Januar 2007, hierin im Folgenden als PCIeTM Specification bezeichnet) für die Signalisierungsgeschwindigkeit der kommenden PCIeTM-Generation (Gen) 3.0 erwünscht, dass die Bandbreite gegenüber den Niveaus der aktuellen PCIeTM-Gen 2.0 (5,0 Gigatransfers je Sekunde (GT/s)) verdoppelt werden sollte. Aufgrund von Problemen bei der technischen Realisierung gab sich die Industrie damit zufrieden, geringere Geschwindigkeiten (8,0 GT/s statt 10,0 GT/s) einzuführen und keine 8b/10b-Codierung durchzuführen, um Bandbreiten nahe 10,0 GT/s zu erreichen. Es sind verschiedene Techniken erforderlich, um zu ermöglichen, dass die Technik mit den Bandbreiteanforderungen der Industrie Schritt hält.
  • Eine solche Technik ist die Komprimierung. Über die Jahre ist die Komprimierung in einer Vielfalt von Verbindungssystemen erfolgreich angewendet worden. Solche bekannten Komprimierungstechniken können jedoch komplex sein und Gemeinkosten verursachen, welche ihren Nutzen verringern.
  • US 2008/0 151 903 A1 offenbart ein Verfahren, das umfasst: Vergleichen eines Paketkopfes eines Pakets, das in einen Sender eingegeben wird mit einem gespeicherten Paketkopf, welcher einem vorigen Paket desselben Typs wie das von dem Sender gesendete Paket entspricht, Erzeugen eines Vergleichsvektors auf der Grundlage des Vergleichs und Senden des Pakets aus dem Sender ohne den Paketkopf, wenn der Paketkopf und der gespeicherte Paketkopf übereinstimmen.
  • Figurenliste
    • 1 ist ein Blockdiagramm eines Pakets gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 2 zeigt beispielhafte Paketköpfe vor und nach der Komprimierung gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 3 ist ein Blockdiagramm eines Teils einer Halbleitereinheit gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 4 ist ein Blockdiagramm einer Paketkopf-Komprimierungsmaschine gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 5 ist ein Ablaufdiagramm zur Durchführung einer Paketkopfkomprimierung gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 6 ist ein Ablaufdiagramm eines Komprimierverfahrens für Datenpakete gemäß einer Ausführungsform der vorliegenden Erfindung.
    • 7 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • In verschiedenen Ausführungsformen kann die Datenübertragung über eine Verbindung wie z.B. eine PCIeTM-Verbindung gemäß PCIeTM Gen 2 oder Gen 3 oder ein anderes solches Protokoll durch das Bereitstellen von Komprimierungstechniken verbessert werden. In vielen Realisierungen können unterschiedliche Techniken angewendet werden, um Paketkopf- und Datenabschnitte eines Pakets zu komprimieren. Speziell können unterschiedliche Eigenschaften von Paketköpfen und Daten angegangen werden, um eine geeignete Komprimierungstechnik anzuwenden. Für eine typische Punkt-zu-Punkt(PtP)-Verbindung bleiben verschiedene Komponenten des Kopfabschnitts des Pakets unverändert. Zum Beispiel bleiben in einem PCIeTM-Paketkopf Zeitcode (Time Code, TC), Transaction-Layer-Packet(TLP)-Digest (TD), Attribute (Attr), AT, Länge, Kennung des Anfordernden, Etikettenkennzeichen, BE und obere Bits eines Adressabschnitts für eine Reihe von Anforderungen von einem Agenten an einem PCIeTM-Endpunkt unverändert. In einigen Ausführungsformen kann aus diesen unveränderten Bits Nutzen gezogen werden. Es versteht sich, dass, obwohl sie hierin im Hinblick auf eine PCIeTM-Verwirklichung beschrieben sind, die Ausführungsformen auf andere Verbindungstechniken anwendbar sein können.
  • In einer Transaktionsschicht kann ein Speicher zum Speichern von Paketköpfen bereitgestellt sein (sowohl auf der Empfangs- als auch auf der Sendeseite). In einer Ausführungsform kann sowohl die Sender- als auch die Empfängerseite der Transaktionsschicht einen Speicher (z.B. 4 Doppelworte (W), wobei ein DW 4 Bytes oder 32 Bits entspricht) für die üblichsten Anforderungstypen aufweisen, die empfangen werden können. Empirische Daten zeigen, dass die meisten Anforderungen (z.B. > 90%) einer kleinen Anzahl solcher Typen entsprechen können (z.B. nicht verzögerte (non-posted, NP) Leseanforderungen, Speicherleseanforderungen (Memory Reads, MRds), verzögerte Speicherschreibanforderungen (Memory Writes, MWr) oder Beendigungen mit Daten (CPLD)). Jeder dieser Speicher kann mehrere Speicherstellen (zum Beispiel je 4 DW) umfassen, um eine Kopie aller Kopfbits des letzten empfangenen Pakets eines Anforderungstyps zu bewahren.
  • Außerdem kann eine Paketübereinstimmungslogik bereitgestellt werden. Für die Sender-Transaktionsschicht kann eine solche Logik in jedem Byte eines zu sendenden Paketkopfs einen Vergleich durchführen (die in dem Speicher gespeicherten Bytes können alle auf Nullen initialisiert sein) und einen Bitvektor bereitstellen, welcher Informationen über die Bytes umfasst, die mit den Bytes des vorigen Pakets (dieses Typs) übereinstimmen. Somit kann auf der Grundlage dieses Vergleichs ein Bitvektor bereitgestellt werden. Der Vektor (z.B. 16 Bit) verfolgt, welche Bytes eine erfolgreiche Übereinstimmung mit einem Byte an derselben Stelle des vorigen gesendeten Pakets desselben Typs fanden. Man beachte, dass ein Vergleich bei verschiedenen Granularitäten durchgeführt werden kann, z.B. auf mehr als einer Byte-Ebene. Zum Beispiel kann man 8 Paare von Zwei-Byte(2B)-Kopfabschnitten vergleichen und stattdessen einen 8-Bit-Vektor senden, was einen besseren Vergleich bietet, jedoch auf Kosten einer niedrigeren Wahrscheinlichkeit des Findens einer Übereinstimmung.
  • Während der Paketübertragung wird dieser Bitvektor dann (z.B. als Präfix) an das Paket angehängt. In einer anderen Variante kann ein Bit in einem Bitübertragungsschichtfeld des Pakets anzeigen, ob der Paketkopf diesen Vergleichsvektor aufweist. Dies kann nützlich sein, um die Zusatzkapazität für den Vergleichsvektor für die Fälle zu minimieren, wo nur eine geringe Komprimierung erreicht wird, wie weiter unten noch beschrieben wird. Zum Beispiel ist die letztgenannte Variante geeignet, um die Zusatzkapazität in den Fällen zu minimieren, wo zwischen zwei aufeinander folgenden Anforderungen desselben Typs nur eine geringe Übereinstimmung zu sehen ist.
  • In 1 ist ein Blockdiagramm eines Pakets gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Obwohl hierin im Kontext eines PCIeTM-Gen-3-Pakets beschrieben, versteht es sich, dass die Ausführungsformen auf jedes Kommunikationsschema auf Paketbasis anwendbar sind. Wie in 1 zu sehen, umfasst das Paket 10 verschiedene Abschnitte, welche Kopf- und Datenabschnitte umfassen. Die Abschnitte 20 und 70 können Köpfen der Sicherungsschicht und der Bitübertragungsschicht entsprechen und können verschiedene Informationen umfassen, wie z.B. einen vorgegebenen Code, einen Längenwert, einen Prüfsummenwert und einen Sequenzwert, welche alle in einem ersten Abschnitt 20 enthalten sein können. Außerdem kann im Endabschnitt 70 ein Abschnitt für eine Zyklische-Redundanz-Prüfsumme (Cyclic Redundancy Checksum, CRC) vorliegen. Zwischen diesen beiden Kopfabschnitten kann ein Vergleichsvektor 30, wie hierin beschrieben (und bei welchem es sich in verschiedenen Ausführungsformen um einen Zwei-Byte-Abschnitt handeln kann), die Basis für die Komprimierung eines Paketkopfs liefern. Ein Typabschnitt 40 kann einen Pakettyp anzeigen und kann von einem Empfänger verwendet werden, um einen geeigneten Speicherpuffer zu bestimmen, von welchem ein gespeicherter Paketkopf zu erhalten ist. Hieran anschließend kann ein komprimierter Kopfabschnitt 50 bereitgestellt sein. In Abhängigkeit vom Maß der Übereinstimmung zwischen einem eingehenden Paketkopf und einem entsprechenden gespeicherten Paketkopf kann dieser Kopf in einer PCIeTM-Anwendung 0 bis 16 Bytes aufweisen. Hinter diesem Kopfabschnitt kann ein Nutzdatenabschnitt 60 bereitgestellt sein. Wie hierin beschrieben, kann dieser Nutzdatenabschnitt über eine andere Komprimierungstechnik komprimiert werden. Obwohl sie in der Ausführungsform der 1 in dieser speziellen Realisierung dargestellt ist, ist der Umfang der vorliegenden Erfindung nicht auf diese Weise beschränkt.
  • Die Kopf-Bytes, welche den Stellen im Vergleichsvektor entsprechen, die einen logischen Wert „1“ zeigen, werden nicht vom Sender zum Empfänger gesendet, wodurch die Größe des zu sendenden Kopfes verringert wird. Stattdessen wird angenommen, dass die Logik auf Empfängerseite eine Kopie der vorigen Anforderung desselben Typs bewahrt und die fehlenden Bytes unter Verwendung des Vergleichsvektors aus der gespeicherten Kopie ergänzt. Somit empfängt die Transaktionsschicht auf Empfängerseite für die Paketwiederherstellung den komprimierten Paketkopf und ergänzt den Paketkopf durch Untersuchen des Vergleichsvektors und Auslesen der „fehlenden/ungesendeten“ Bytes aus der in ihrem Speicher gespeicherten Kopie des zuletzt gesendeten Paketkopfes.
  • Unter Anwendung von Ausführungsformen der vorliegenden Erfindung können variierende Maße der Komprimierung des Kopfabschnitts von Paketen realisiert werden. In 2 sind beispielhafte Paketköpfe vor und nach der Komprimierung gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 2 dargestellt, kann der Paketkopf 100, wobei es sich um einen Speicherlese(MemRd)-Pakettyp handeln kann, einen TLP-Kopfabschnitt 104 aufweisen, der drei Doppelworte (also 12 Bytes) aufweist. Außerdem ist ein Kopf 102 der Sicherungs- und der Bitübertragungsschicht vorhanden, zusammen mit einem nachfolgenden Kopfabschnitt 106 der Sicherungs- und der Bitübertragungsschicht. Wie zu sehen ist, umfasst der Paketkopf 100 nach der Komprimierung des Kopfes einen Bitvektor 103, welcher die Übereinstimmung zwischen dem Kopfabschnitt des Pakets und einem gespeicherten Kopf für das letzte gesendete Paket desselben Typs (also das letzte MemRd-Paket) identifiziert. Hiernach folgt ein Kopfabschnitt 104, welcher die nicht übereinstimmenden Abschnitte dieser beiden Köpfe umfasst. Wie zu sehen ist, wird eine Reduzierung um vier Bytes realisiert.
  • In ähnlicher Weise können für andere Pakettypen Komprimierungseinsparungen realisiert werden. Wie in 2 zu sehen ist, umfasst ein Speicherschreib-Paketkopf (MemWr) einen TLP-Kopfabschnitt 124, der eine Breite von vier Doppelworten (also 16 Bytes) aufweist. Außerdem sind Köpfe 122 und 126 der Sicherungs- und der Bitübertragungsschicht und ein Datenabschnitt 128 vorhanden. Wie in dem komprimierten Kopfabschnitt 120 zu sehen ist, ist ein Bitvektor 123 vorhanden, welcher ermöglicht, dass ein reduzierter Kopfabschnitt 124 gesendet wird. In dem dargestellten Beispiel wird statt des 16-Byte-Kopfabschnitts des Pakets 120 ein Fünf-Byte-Kopfabschnitt gesendet, wodurch Bandbreiteeinsparungen ermöglicht werden. Ebenfalls zu sehen ist ein Füll-Byte 127 am Ende des Pakets. Obwohl sie in diesen speziellen Beispielen dargestellt ist, ist der Umfang der vorliegenden Erfindung nicht auf diese Weise beschränkt.
  • Die Ausführungsformen können in vielen verschiedenen Verbindungstypen realisiert werden. In 3 ist ein Blockdiagramm eines Teils einer Halbleitereinheit gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt, z.B. eines Prozessors, eines Chipsatzes, einer Peripherieeinheit o.Ä., wobei die Einheit über eine Verbindung wie z.B. eine PCIeTM-Verbindung kommuniziert. Wie in 3 dargestellt, können Transaktionen für eine Übertragung über eine Verbindung 275 (z.B. eine PtP-Verbindung) von der Logik der Einheit in einem Paketpufferspeicher 205 empfangen werden, bei welchem es sich in einigen Anwendungen um einen First-In-First-Out(FIFO)-Pufferspeicher handeln kann. Obwohl zur Vereinfachung der Darstellung als Einzelpufferspeicher dargestellt, versteht es sich, dass in verschiedenen Ausführungsformen mehrere solcher Pufferspeicher für verschiedene Kopftypen und verschiedenen Datentypen vorhanden sein können. Eingehende Transaktionen können einer Transaktionsschicht 210 und speziell einer Eingabelogik 212 bereitgestellt werden, welche verschiedene Funktionen durchführen kann, z.B. die Entscheidung zwischen mehreren solchen Transaktionen und die Erzeugung eines Pakets vor der Übertragung. Die Eingabelogik 212 kann einer oder mehreren Komprimierungsmaschinen, z.B. einer Kopfkomprimierlogik 214 und einer Datenkomprimierlogik 216, verschiedene Informationen bereitstellen. Dies liegt daran, dass aufgrund der verschiedenen Informationstypen, die in Kopf- und Datenabschnitten eines Pakets vorliegen, verschiedene Komprimierungs-techniken angewendet werden können. Wenn eine geeignete Komprimierungsmethodik angewendet worden ist (falls aktiviert), können die komprimierten Informationen einer Paketerzeugungslogik 218 bereitgestellt werden, welche daraus ein Paket erzeugen kann. Anschließend können die Pakete an die Sicherungs- und Bitübertragungsschicht 250 ausgegeben werden, welche eine Eingabelogik 252 und eine Komprimierlogik 254 umfassen können, bei welcher es sich in verschiedenen Ausführungsformen um eine optionale Maschine handeln kann, die eine Komprimierung an Sicherungs- und Bitübertragungsschicht-Kopfabschnitten eines Pakets durchführt. Schließlich kann das Paket entlang der Verbindung 275 übertragen werden, nachdem es in einem analogen Vorrechner (Analog Front End, AFE) 256 (welcher in einer Ausführungsform mit der Bitübertragungsschicht verbunden sein kann) konditioniert worden ist. Während die Maschine zu Zwecken der Veranschaulichung vereinfacht dargestellt ist, versteht es sich, dass in einer speziellen Anwendung zusätzliche Logiken und Strukturen vorhanden sein können. Ein ähnliches Schaltungssystem liegt in Empfangsrichtung von der Verbindung 275 vor, derart, dass eingehende Pakete in der Sicherungs- und Bitübertragungsschicht 250 verarbeitet und der Transaktionsschicht 210 zur weiteren Verarbeitung bereitgestellt werden, umfassend das Entpaketieren in der Entpaketierlogik 224 und die Dekomprimierung der Kopf- und Datenabschnitte unter Anwendung der Dekomprimierlogiken 226 und 228, welche so arbeiten, dass die Kopf- und Datenabschnitte dekomprimiert werden, wie oben beschrieben.
  • In 4 sind weitere Einzelheiten Paketkopf-Komprimierungsmaschine gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 4 dargestellt, kann eine Transaktionsschicht 300 verschiedene Komponenten umfassen, z.B. eine Komprimierungsmaschine 340. Eingehende Paketköpfe können in verschiedenen FIFOs gespeichert werden, welche jeweils zu den üblichsten zu übertragenden Pakettypen gehören. Namentlich können ein nicht verzögerter Kopfpufferspeicher 305, ein verzögerter Kopfpufferspeicher 310 und ein Beendigungs(CPL)-Kopfpufferspeicher 315 einen Paketkopf ausgeben, der einer Zuteileinheit 320 bereitgestellt wird, welche unter solchen verschiedenen Pakettypen entscheidet und ein Paket, auf das die Entscheidung gefallen ist, einer Paketkopf-Komprimierlogik 350 bereitstellt, wo der Paketkopf einer Vergleichs- und Komprimierlogik 355 bereitgestellt wird, bei welcher es sich um eine Byte-für-Byte-Vergleichseinheit handeln kann, um den eingehenden Paketkopf mit einem entsprechenden gespeicherten Paketkopf desselben Typs zu vergleichen. Insbesondere kann ein Paketkopfpufferspeicher 360 mehrere Speicherstellen umfassen, wobei in jeder der letzte Paketkopf eines gegebenen Pakettyps gespeichert wird. Wie in 4 zu sehen ist, können solche Speicherstellen die letzten Speicherlese- und Speicherschreib-Paketköpfe, die letzten Beendigungs-Paketköpfe, die letzten Konfigurationslese- und Konfigurationsschreib-Paketköpfe und die letzten E/A-Lese- und E/A-Schreib-Paketköpfe umfassen. Man beachte, dass der Paketkopfpufferspeicher 360 ständig mit dem Paketkopf aktualisiert wird, der gerade empfangen wurde (d.h., der gespeicherte Paketkopf wird ersetzt). Obwohl die Erfindung in der Ausführungsform der 4 mit diesen speziellen Beispielen dargestellt wurde, können in anderen Ausführungsformen zusätzliche oder andere Paketköpfe gespeichert werden.
  • Die Vergleichs- und Komprimierlogik 355 kann einen Vergleichsvektor erzeugen, welcher zwei Byte umfassen kann, um bis zu 16 Bytes an Paketkopfinformationen abzudecken, in welchen jedes Bit einem Byte des Vergleichs entspricht, wobei ein logischer Wert Eins eine Übereinstimmung anzeigt und ein logischer Wert Null eine Nichtübereinstimmung anzeigt. Auf der Basis dieses Vergleichsvektors und der Paketkopfinformationen kann eine Paketbildungslogik 350 aus diesen Informationen und Daten (falls vorhanden) ein Paket bilden. So werden nur jene Abschnitte des Paketkopfs gesendet, die sich unterscheiden (die also einem logischen Wert Null entsprechen). Außerdem kann die Komprimierungsmaschinenlogik 340 ferner einen Typindikator ausgeben, um einen Pakettyp anzuzeigen, der dem Paketkopf entspricht.
  • Ferner kann in einigen Fällen eine Steuereinheit (z.B. Steuerlogik 370) das Maß der Komprimierung begrenzen, um Paketanpassungsanforderungen zu erfüllen, z.B. weisen für PCIeTM alle Pakete ein Vielfaches von vier Bytes auf. In einer Ausführungsform, welche erfordert, dass Kopfpaket 4 DW umfasst, können bestimmte Bytes ausgewählt werden, die nicht komprimiert werden. Unter der Annahme, dass 13 Bytes eine Übereinstimmung aufwiesen (Byte 0 wird niemals komprimiert), dann wiese das resultierende Kopfpaket 1 B Pakettyp plus 2 B Kopf plus 2 B auf, welche keine Übereinstimmung fanden, was insgesamt 5 B ergibt. Stattdessen können drei Bytes mehr (drei beliebige) unkomprimiert gesendet werden, so dass das resultierende Paket 8 B (oder zwei DW) aufweist. Man beachte, dass in verschiedenen Anwendungen, entweder als Teil der Komprimierungsmaschine 340 über die Steuerlogik 370 oder getrennt davon, eine Steuerungseinheit bestimmen kann, ob eine Komprimierung aktiviert oder gesperrt sein sollte. Das heißt, wenn basierend auf einer Anzahl von Vergleichen bestimmt wird, dass eine Komprimierung die Leistungsfähigkeit nicht verbessert (aufgrund von relativ geringer Übereinstimmung zwischen den Paketen), kann die Komprimierung durch die Komprimierungsmaschine 340 gesperrt werden. Dies kann auf einer ständigen Überwachung der Anwendung und des Kompressionsverhältnisses der übertragenen Daten basieren.
  • Man beachte, dass einer Datenkomprimierlogik 335 über eine separate Datenstrecke Daten von den Datenpufferspeichern 330 und 325 bereitgestellt werden können, wobei, falls aktiviert, auf die Daten eine andere Komprimierungstechnik angewendet werden kann. Die (möglicherweise) komprimierten Daten werden dann an die Paketbildungslogik 350 gesendet, wo ein vollständiges Paket gesendet und z.B. an eine Sicherungsschicht ausgegeben wird. Obwohl die Erfindung in der Ausführungsform der 4 mit dieser speziellen Anwendung dargestellt wurde, können in anderen Ausführungsformen ein anderes Schaltungssystem und eine andere Logik angewendet werden, um eine Komprimierung durchzuführen.
  • In 5 ist ein Ablaufdiagramm zur Durchführung einer Paketkopfkomprimierung gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 5 dargestellt, kann das Verfahren 400 in einer Transaktionsschicht eines Senders durchgeführt werden. Das Verfahren 400 kann mit dem Empfang eines ersten Pakettyps beginnen (Block 410). Es kann dann bestimmt werden, ob die Paketkomprimierung aktiviert ist. Wenn nicht, kann der Paketkopf gesendet werden (Block 415), und das Verfahren ist abgeschlossen.
  • Anderenfalls leitet die Steuerung zum Block 430 weiter, wo der Paketkopf mit einem gespeicherten Paketkopf desselben Pakettyps verglichen wird. Wie oben beschrieben, kann dieser gespeicherte Paketkopf in einem Paketkopfpufferspeicher der Transaktionsschicht vorliegen. Anschließend kann auf der Grundlage des Vergleichs ein Vergleichsvektor erzeugt werden. Wie oben in einer Anwendung beschrieben, kann ein Bitvektor erzeugt werden, in welchem jedes Bit einen ersten Wert aufweist, um eine Übereinstimmung zwischen entsprechenden Bytes der beiden Paketköpfe anzuzeigen, und einen zweiten Wert aufweist, um eine Nichtübereinstimmung anzuzeigen. Als Nächstes kann bestimmt werden, ob der Vergleichsvektor eine vollständige Übereinstimmung anzeigt (Block 450). Wenn ja, kann der Vergleichsvektor allein gesendet werden, ohne irgendetwas aus dem Paketkopf (Block 460). Anderenfalls leitet die Steuerung zur Raute 470 weiter, wo bestimmt wird, ob zumindest eine Teilübereinstimmung vorliegt. Wenn ja, können der Vergleichsvektor und die nicht übereinstimmenden Abschnitte des Paketkopfs gesendet werden (Block 480). Wenn jedoch keiner der Abschnitte der Paketköpfe übereinstimmt, leitet die Steuerung stattdessen zum Block 490 weiter, wo der Vergleichsvektor und der vollständige Paketkopf gesendet werden. Obwohl sie in der Ausführungsform der 5 mit dieser speziellen Anwendung dargestellt ist, ist der Umfang der vorliegenden Erfindung nicht auf diese Weise beschränkt. Es versteht sich, dass die Dekomprimierung allgemein in umgekehrter Weise erfolgen kann, derart, dass der Vergleichsvektor verwendet wird, um einen gespeicherten Paketkopf eines gegebenen Typs zu erhalten, und für alle übereinstimmenden Abschnitte, für welche der Paketkopf nicht gesendet wurde, kann der gespeicherte Paketkopfpufferspeicher verwendet werden, um so den gewünschten Kopfabschnitt wiederherzustellen. Man beachte, dass sowohl im Sende- als auch im Empfangsfall das eingehende Paket für zukünftige Vergleiche im Paketkopfpufferspeicher gespeichert wird.
  • Bei den Daten ist die Veränderlichkeit viel größer als bei den Paketköpfen. Für diese scheinbar zufälligen Daten können höher entwickelte Komprimierungstechniken angewendet werden. Bei Komprimierungstechniken auf lexikalischer Basis wird die Häufigkeit von Symbolen (typischerweise Bytes) benutzt, um eine effektivere Codierung von Informationen (in diesem Fall Datenbits) zu erzielen. Eine solche Komprimierungstechnik ist der Huffinan-Algorithmus, welcher für verlustfreien Datenaustausch benutzt wird. Beim Huffman-Algorithmus wird angenommen, dass die Häufigkeit von Symbolen in einem Datensatz vorausberechnet worden ist. Bei einer Variante dieses Algorithmus, als adaptiver Huffman-Algorithmus bezeichnet, wird die Häufigkeitstabelle der übertragenen und gesendeten Symbole sowohl auf Sender- als auch auf Empfängerseite kontinuierlich aufgebaut.
  • Die Häufigkeitstabelle für die Pakete, die übertragen worden sind, wird mit der Häufigkeit jedes Symbols aktualisiert, das übertragen worden ist (ein Symbol kann zum Beispiel ein Byte sein). Es kann eine Matrix gespeichert werden, welche für jedes Symbol auf der Grundlage der Häufigkeit einen Code variabler Länge definiert (kürzere Codes für häufiger verwendete Symbole) und nach jeder Paketübertragung neu aufgebaut wird. Komprimierlogik auf der Basis des Huffman-Algorithmus kann in Hardware realisiert werden. Solche Realisierungen können den Aufbau der Codiermatrix auf der Basis der Symbolhäufigkeit umfassen, wie sie sich in der Häufigkeitstabelle widerspiegelt.
  • In verschiedenen Ausführungsformen kann zum Komprimieren des Datenabschnitts von Paketen eine Variante eines adaptiven Huffman-Algorithmus angewendet werden. Das heißt, der Huffman-Baum kann seltener erstellt werden (einmal alle „N“ Pakete, wobei N ein programmierbarer Wert ist, der durch Software eingestellt wird). Obwohl der Umfang der vorliegenden Erfindung in dieser Hinsicht nicht beschränkt ist, kann N in einigen Ausführungsformen 100 bis 1.000 betragen. Hierdurch ist es möglich, eine Pipeline hoher Latenz zu erstellen, um den Huffman-Baum zu berechnen.
  • Alternative Komprimierungstechniken können ebenso angewendet werden. In einer Ausführungsform könnten nur die 16 häufigsten Symbole codiert werden. Zum Beispiel werden 00, 01, 03, 04, ... 0F mit nur 5 Bits codiert, d.h. 0 gefolgt von der tatsächlichen Binärdarstellung. Die restlichen 240 Symbole können mit 9 Bits codiert sein, „1“ gefolgt von einer 8-Bit-Darstellung. Es sind noch weitere Realisierungen möglich.
  • Wie oben beschrieben, können für den Datenabschnitt andere Komprimierungstechniken angewendet werden als die obige Komprimierungstechnik auf Bitvektorbasis für den Paketkopf. In 6 ist ein Ablaufdiagramm eines Komprimierverfahrens für Datenabschnitte eines Pakets gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 6 dargestellt, kann das Verfahren 500 nach dem Empfang eines Datenabschnitts eines Pakets beginnen (Block 510). Basierend auf den Symbolen in dem Paket (z.B. Bytes) kann eine Häufigkeitstabelle einer Komprimierungsmaschine (z.B. der Datenkomprimierlogik der 3) aktualisiert werden (Block 520). In einigen Ausführungsformen könnten bei der Kopfkomprimierung und der Datenkomprimierung und der Sicherheitsschicht-Paketkomprimierung (z.B. Bestätigungs- und Quittierungspakete in PCIeTM) ähnliche Komprimierungstechniken auf lexikalischer Basis angewendet werden. In einer solchen Ausführungsform gibt es für jeden Pakettyp eine eigene Häufigkeitstabelle.
  • Anschließend kann bestimmt werden, ob die Anzahl der empfangenen Datenabschnitte seit einer letzten Aktualisierung einer Struktur der Komprimierungsmaschine erreicht ist (Raute 530). Wenn nicht, kann der Datenabschnitt unter Anwendung der Symbolcodierung auf Logikkomprimierungsbasis codiert werden, und der Datenabschnitt wird gesendet (Block 540).
  • Wenn an der Raute 530 stattdessen bestimmt wird, dass die Anzahl der Datenabschnitte den Schwellenwert erreicht, leitet die Steuereinheit zum Block 550 weiter, wo eine Codierung der Komprimierungsmaschine basierend auf der Symbolhäufigkeit in der Häufigkeitstabelle aktualisiert werden kann. Die Steuereinheit leitet dann zum oben beschriebenen Block 540 weiter, wo der Datenabschnitt unter Anwendung der aktualisierten Codierung komprimiert und entsprechend gesendet werden kann.
  • Somit stellen die Ausführungsformen eine „träge Aktualisierung“ einer Häufigkeitstabelle bereit, welche nur einen geringen Einfluss auf die Effizienz der Komprimierung hat. In einer beispielhaften Ausführungsform unter Anwendung von PCIeTM-Datenverkehr liegt als Ergebnis der Anwendung einer trägen Aktualisierungstechnik, wie sie hierin beschrieben ist, im Wesentlichen kein Verlust der Komprimierungseffizienz vor. In einer Ausführungsform ist es möglich, eine gute Bandbreitenreduktion zu erreichen, wenn man die Matrix einmal alle 100 Pakete o.ä. erstellt.
  • Obwohl sich die oben beschriebenen Ausführungsformen auf Huffman- und modifizierte adaptive Huffman-Algorithmen beziehen, kann in anderen Anwendungen ein anderer Algorithmus auf lexikalischer Basis und Häufigkeitsbasis verwendet werden. Somit ermöglicht in verschiedenen Ausführungsformen die apriorische Kenntnis der Struktur und der relativen Wiederholung der Paketköpfe die Anwendung einer hohen Komprimierung über Bitvektoren für den Paketkopf, und stattdessen können für Datenabschnitte der Pakete Algorithmen auf lexikalischer Basis und Häufigkeitsbasis angewendet werden. Der Auswahlalgorithmus für die Datenkomprimierung kann von dem jeweiligen Fall der Realisierung abhängen.
  • Für Prüfsummenabschnitte eines Pakets liegt aufgrund der nahezu zufälligen Natur der CRC-Bits möglicherweise kein Nutzen in der Komprimierung solcher Abschnitte. In der Tat kann die Leistungsfähigkeit eines adaptiven Huffman-Algorithmus leiden, da sie die Symbolverteilung für die Nutzdaten verzerrt, und eine komprimierte CRC kann nicht über eine fehleranfällige Verbindung gesendet werden. Dementsprechend sollte in verschiedenen Ausführungsformen die Häufigkeitsverteilung der Bits in der Prüfsumme nicht mit der Häufigkeitsverteilung von Nutzdaten vereinigt werden. In einigen Anwendungen kann gewählt werden, Prüfsummeninformationen nicht zu komprimieren, da ihre Zusatzkapazität gering ist, oder es kann eine separate Komprimierungsmaschine für diese Informationen bereitgestellt werden. In ähnlicher Weise können Bestätigungspakete eine separate Komprimierungsmaschine und Frequenztabelle aufweisen. In einigen Ausführungsformen können Bestätigungen auf der Basis der Bitvektortechnik komprimiert werden, die in Bezug auf die Paketkopfkomprimierung beschrieben ist.
  • Durch Kombinieren separater Schemen für Paketkopf- und Datenabschnitte von Paketen kann ein hoher Komprimierungsgrad erreicht werden. Dieses Schema reduziert die Bandbreite und bietet somit eine Möglichkeit, bei einer gegebenen Frequenz Bandbreite zu erhalten oder die schrittweise Veränderung der Frequenz von einer Verbindungserzeugung zur nächsten zu reduzieren. Bei einigen Realisierungen kann die Reduktion der TLP-Bandbreite in der Größenordnung von 50 % bis 60 % liegen. Einzelne Anwendungen können eine Reduktion der Bandbreite von bis zu 2X aufweisen, wenn für Client-Anwendungen der Paketkopfverkehr dominiert. Eine variable Codierung von Datenabschnitten sorgt jedoch ebenso für eine deutliche Verbesserung, welche in Server-Anwendungen möglicherweise deutlicher zum Vorschein tritt. In einigen Ausführungsformen kann auch die dynamische Leistung verringert werden, da weniger Daten durch die Verbindungskanäle gesendet werden. Somit können, während die Industriestandards bei Gen-2- oder Gen-3-Geschwindigkeiten (5,0 GT/s oder 8,0 GT/s) verbleiben, Plattformen, welche eine Ausführungsform der vorliegenden Erfindung nutzen, mit wenig zusätzlicher Logik eine höhere Bandbreite bereitstellen.
  • Die Ausführungsformen können in vielen verschiedenen Systemtypen realisiert werden. In 7 ist ein Blockdiagramm eines Systems gemäß einer Ausführungsform der vorliegenden Erfindung dargestellt. Wie in 7 dargestellt, handelt es sich bei dem Mehrprozessorsystem 600 um ein Punkt-zu-Punkt-Verbindungssystem, und es umfasst einen ersten Prozessor 670 und einen zweiten Prozessor 680, die über eine Punkt-zu-Punkt-Verbindung 660 verbunden sind. Wie in 7 dargestellt, kann es sich bei jedem der Prozessoren 670 und 680 um einen Mehrkernprozessor handeln, der erste und zweite Prozessorkerne aufweist (also die Prozessorkerne 674a und 674b und die Prozessorkerne 684a und 684b).
  • Weiter unter Bezugnahme auf 7 umfasst der erste Prozessor 670 ferner einen Speichersteuerungsknoten (Memory Controller Hub, MCH) 672 und Punkt-zu-Punkt(P-P)-Schnittstellen 676 und 678. In ähnlicher Weise umfasst der zweite Prozessor 680 einen MCH 682 und P-P-Schnittstellen 686 und 688. Wie in 7 dargestellt, verbinden die MCHs 672 und 682 die Prozessoren mit entsprechenden Speichern, namentlich einem Speicher 632 und einem Speicher 634, bei welchen es sich um Teile eines Hauptspeichers (z.B. eines dynamischen Direktzugriffsspeichers (DRAM)) handeln kann, der lokal an die entsprechenden Prozessoren angeschlossen ist. Der erste Prozessor 670 und der zweite Prozessor 680 können über P-P-Verbindungen 662 bzw. 664 mit einem Chipsatz 690 verbunden sein. Wie in 7 dargestellt, umfasst der Chipsatz 690 P-P-Schnittstellen 694 und 698. Man beachte, dass eine oder mehrere der Komponenten Komprimierungsschaltungen gemäß einer Ausführungsform der vorliegenden Erfindung umfassen können, um Paketkopf- und Nutzdatenkomprimierungen durchzuführen, wie sie hierin beschrieben sind.
  • Ferner umfasst der Chipsatz 690 eine Schnittstelle 692, um den Chipsatz 690 mit einer Hochleistungs-Graphikmaschine 638 zu verbinden. Außerdem kann der Chipsatz 690 über eine Schnittstelle 696 mit einem ersten Bus 616 verbunden sein. Wie in 7 dargestellt, können verschiedene E/A-Einheiten 614 mit einem ersten Bus 616 verbunden sein, zusammen mit einer Busbrücke 618, welche den ersten Bus 616 mit einem zweiten Bus 620 verbindet. Mit dem zweiten Bus 620 können verschiedene Einheiten verbunden sein, zum Beispiel eine Tastatur/Maus 622, Kommunikationseinheiten 626 und eine Datenspeichereinheit 628, z.B. ein Plattenlaufwerk oder andere Massenspeichereinheiten, welche in einer Ausführungsform Code 630 umfassen können. Ferner kann mit dem zweiten Bus 620 eine Audio-E/A-Einheit 624 verbunden sein.
  • Die Ausführungsformen können in Code realisiert sein und können auf einem Speichermedium gespeichert sein, auf welchem Befehle gespeichert sind, die verwendet werden können, um ein System zur Ausführung der Befehle zu programmieren. Bei dem Speichermedium kann es sich, ohne darauf beschränkt zu sein, um irgendeine Art von Platte handeln, z.B. Disketten, Bildplatten, Halbleiterplatten (SSDs), CD-ROMs, CD-RWs und magneto-optische Platten, Halbleitereinheiten, z.B. Nur-Lese-Speicher (ROMs), Direktzugriffsspeicher (RAMs) wie z.B. dynamische Direktzugriffsspeicher (DRAMs) oder statische Direktzugriffsspeicher (SRAMs), löschbare programmierbare Nur-Lese-Speicher (EPROMs), Flash-Speicher, elektrisch löschbare programmierbare Nur-Lese-Speicher (EEPROMs), Magnetkarten oder optische Karten oder irgendeine andere Art eines Mediums, das zur Speicherung elektronischer Befehle geeignet ist.
  • Obwohl die Erfindung in Bezug auf eine begrenzte Anzahl an Ausführungsformen beschrieben worden ist, erkennt der Fachmann zahlreiche Modifikationen und Variationen derselben. Die folgenden Patentansprüche sollen all solche Modifikationen und Variationen abdecken, die unter die Idee und den Umfang der vorliegenden Erfindung fallen.

Claims (14)

  1. Verfahren, welches das Folgende umfasst: Vergleichen eines Paketkopfs (100) eines Pakets (10), das in einen Sender eingegeben wird, mit einem gespeicherten Paketkopf, welcher einem vorigen Paket desselben Typs wie das von dem Sender gesendete Paket entspricht (430); Erzeugen eines Vergleichsvektors (30) auf der Grundlage des Vergleichs (440), wobei der Vergleichsvektor eine Vielzahl von Bits umfasst, die jeweils angeben, ob ein Abschnitt des Paketkopfes mit einem korrespondierenden Abschnitt des gespeicherten Paketkopfes übereinstimmt, Senden des Pakets aus dem Sender ohne den Paketkopf und mit dem Vergleichsvektor (480), wenn der Paketkopf und der gespeicherte Paketkopf übereinstimmen, Komprimieren eines Datenabschnitts des Pakets (10) mit einer anderen Komprimierungstechnik und Aktualisieren einer Häufigkeitstabelle der anderen Komprimierungstechnik mit Informationen hinsichtlich jedes gesendeten Pakets (10) und das Aktualisieren eines Baums der anderen Komprimierungstechnik nur einmal während einer vorgegebenen Anzahl gesendeter Pakete.
  2. Verfahren nach Anspruch 1, welches ferner das Senden eines Abschnitts des Paketkopfes (100) mit dem Paket (10) umfasst, wobei der Abschnitt nicht derselbe wie ein entsprechender Abschnitt des gespeicherten Paketkopfes ist.
  3. Verfahren nach Anspruch 1, welches ferner das Deaktivieren des Vergleichens und Erzeugens und das Senden des Pakets (10) mit dem Paketkopf (100) und ohne den Vergleichsvektor (30) umfasst, basierend auf einem Schwellenwert, der mit mehreren Vergleichen in Verbindung steht, die jeweils einem anderen Paketkopf entsprechen.
  4. Verfahren nach Anspruch 1, welches ferner das Speichern des Paketkopfes (100) des Pakets (10) in einem ersten Abschnitt eines Kopfspeichers einer Transaktionsschicht (210; 300) umfasst, um den gespeicherten Paketkopf zu ersetzen.
  5. Verfahren nach Anspruch 1, welches ferner das Empfangen des Pakets (10) und des Vergleichsvektors (30) in einem Empfänger, der mit dem Sender verbunden ist, und das Erhalten eines Kopfes, der dem Paketkopf (100) des Pakets (10) entspricht, aus einem Kopfpufferspeicher (360) des Empfängers umfasst.
  6. Verfahren nach Anspruch 5, welches ferner das Zugreifen auf den Kopfpufferspeicher (360) basierend auf einem Typ des Pakets (10) und einem Wert des Vergleichsvektors (30) umfasst.
  7. Verfahren nach Anspruch 1, welches ferner das Komprimieren von Paketen der Sicherungsschicht mit einer dritten Komprimierungstechnik umfasst, die sich von der ersten Komprimierungstechnik unterscheidet, die für Daten- und Kopfpakete angewendet wird, wobei, wenn bei der ersten Komprimierungstechnik Häufigkeitstabellen benutzt werden, eine separate Häufigkeitstabelle für die Pakete (10) der Sicherungsschicht unterhalten wird.
  8. Vorrichtung, welche das Folgende umfasst: eine Transaktionsschicht (210; 300), die einen Kopfpufferspeicher (360), eine Vergleichseinheit und eine Erzeugungseinheit umfasst, wobei der Kopfpufferspeicher (360) zum Speichern eines vorigen Paketkopfes eines vorigen Pakets dient, das von einem Sender gesendet wurde, wobei der Kopfpufferspeicher mehrere Speicherstellen umfasst, um jeweils für einen Pakettyp einen vorigen Paketkopf zu speichern; die Vergleichseinheit zum Vergleichen eines Paketkopfes (100) eines zu sendenden Pakets (10) mit einem vorigen Paketkopf, der in einer Speicherstelle des Kopfpufferspeichers (360) gespeichert ist, die dem Pakettyp des zu sendenden Pakets (10) entspricht, dient; die Erzeugungseinheit zum Erzeugen eines Bitvektors auf der Grundlage des Vergleichs und zum Senden des Pakets mit dem Bitvektor und ohne zumindest einen Abschnitt des Paketkopfes auf der Grundlage des Vergleichs dient, und die Transaktionsschicht (210; 300) eine getrennte Kopfkomprimierungslogik (214) und Datenkomprimierungslogik (216) umfasst; wobei die Kopfkomprimierungslogik (214) den Kopfpufferspeicher, die Vergleichseinheit und die Erzeugungseinheit umfasst und die Datenkomprimierungslogik (216) dazu dient, einen Datenabschnitt des Pakets (10) unter Anwendung einer anderen Komprimierungstechnik zu komprimieren, und wobei die Datenkomprimierungslogik (216) auf der Häufigkeit von Symbolen basiert, die in einer Häufigkeitstabelle unterhalten wird, und dazu dient, nur einmal während einer vorgegebenen Anzahl gesendeter Pakete die Häufigkeitstabelle mit Informationen über jedes gesendete Paket zu aktualisieren und eine Komprimierungstechnik zu aktualisieren, welche eine komprimierte Codierung für Symbole erzeugt.
  9. Vorrichtung nach Anspruch 8, welche ferner eine Steuerlogik (370) umfasst, die mit der Vergleichseinheit verbunden ist, um das Vergleichen und Erzeugen zu deaktivieren, wobei in der Transaktionsschicht (210; 300) das Paket (10) mit dem Paketkopf (100) und ohne den Vergleichsvektor (30) gesendet wird, basierend auf einem Schwellenwert, der mit mehreren Vergleichen in Verbindung steht, die jeweils einem anderen Paketkopf entsprechen.
  10. Vorrichtung nach Anspruch 9, wobei die Steuerlogik (370) bewirkt, dass ein Komprimierungsindikator des Paketkopfes einen ersten Zustand aufweist, wenn die Paketkopfkomprimierung aktiviert ist, und einen zweiten Zustand aufweist, wenn die Paketkopfkomprimierung deaktiviert ist.
  11. Vorrichtung nach Anspruch 8, welche ferner eine Paketbildungslogik (350) umfasst, um den Paketkopf zu erzeugen und den Paketkopf des Pakets in einem ersten Abschnitt des Kopfpufferspeichers (360) zu speichern, wobei der erste Abschnitt einem Typ des Pakets entspricht.
  12. System, welches das Folgende umfasst: einen Sender, welcher mit einer Verbindung verbunden ist, wobei der Sender eine erste Komprimierungslogik zum Vergleichen eines Paketkopfes (100) eines Pakets (10) mit einem gespeicherten Paketkopf, der einem letzten Paket desselben Typs wie das von dem Sender gesendete Paket entspricht, zum Erzeugen eines Vergleichsvektors (30) auf der Grundlage des Vergleichs, wobei der Vergleichsvektor eine Vielzahl von Bits umfasst, die jeweils angeben, ob ein Abschnitt des Paketkopfes mit einem korrespondierenden Abschnitt des gespeicherten Paketkopfes übereinstimmt, und zum Senden des Pakets aus dem Sender mit dem Vergleichsvektor und ohne den Paketkopf umfasst, wenn der Paketkopf und der gespeicherte Paketkopf übereinstimmen, Komprimieren eines Datenabschnitts des Pakets mit einer anderen Komprimierungstechnik und Aktualisieren einer Häufigkeitstabelle der anderen Komprimierungstechnik mit Informationen hinsichtlich jedes gesendeten Pakets und Aktualisieren eines Baums der anderen Komprimierungstechnik nur einmal während einer vorgegebenen Anzahl gesendeter Pakete; einen Empfänger, welcher mit der Verbindung verbunden ist, wobei der Empfänger eine zweite Komprimierungslogik zum Empfangen des Pakets und des Vergleichsvektors und zum Erhalten eines Kopfes umfasst, der dem Paketkopf des Pakets aus einem Kopfpufferspeicher des Empfängers entspricht; und einen dynamischen Direktzugriffsspeicher (DRAM), welcher mit dem Empfänger und dem Sender verbunden ist.
  13. System nach Anspruch 12, wobei eine erste Komprimierungslogik einen Kopfpufferspeicher (360) umfasst, um den gespeicherten Paketkopf zu speichern, wobei der Kopfpufferspeicher mehrere Speicherstellen umfasst, um jeweils für einen Pakettyp einen Paketkopf zu speichern, und eine Vergleichseinheit zum Erzeugen des Vergleichsvektors (30) umfasst.
  14. System nach Anspruch 13, wobei die zweite Komprimierungslogik basierend auf einem Typ des Pakets (10) und einem Wert des Vergleichsvektors (30) auf den Kopfpufferspeicher des Empfängers zugreift.
DE112010002704.8T 2009-06-26 2010-03-12 Mehrere Komprimierungstechniken für Informationen in Paketform Active DE112010002704B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/492,304 US8111704B2 (en) 2009-06-26 2009-06-26 Multiple compression techniques for packetized information
US12/492,304 2009-06-26
PCT/US2010/027130 WO2010151351A1 (en) 2009-06-26 2010-03-12 Multiple compression techniques for packetized information

Publications (2)

Publication Number Publication Date
DE112010002704T5 DE112010002704T5 (de) 2013-01-17
DE112010002704B4 true DE112010002704B4 (de) 2021-08-26

Family

ID=43369602

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112010002704.8T Active DE112010002704B4 (de) 2009-06-26 2010-03-12 Mehrere Komprimierungstechniken für Informationen in Paketform

Country Status (5)

Country Link
US (1) US8111704B2 (de)
CN (1) CN101930418B (de)
DE (1) DE112010002704B4 (de)
TW (1) TWI440314B (de)
WO (1) WO2010151351A1 (de)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110113649A (ko) * 2009-03-19 2011-10-17 후지쯔 가부시끼가이샤 수신 장치, 송신 장치, 수신 방법, 송신 방법, 통신 시스템 및 통신 방법
US9397785B1 (en) 2010-04-12 2016-07-19 Marvell International Ltd. Error detection in a signal field of a WLAN frame header
WO2012106635A1 (en) 2011-02-04 2012-08-09 Marvell World Trade Ltd. Control mode phy for wlan
CN102360381B (zh) * 2011-09-29 2014-03-12 深圳众为兴技术股份有限公司 一种对嵌入式程序进行无损压制的装置和方法
US9131528B2 (en) 2012-04-03 2015-09-08 Marvell World Trade Ltd. Physical layer frame format for WLAN
US9390042B2 (en) * 2012-07-03 2016-07-12 Nvidia Corporation System and method for sending arbitrary packet types across a data connector
CN103873443B (zh) * 2012-12-13 2018-04-27 联想(北京)有限公司 信息处理方法、本地代理服务器和网络代理服务器
US9485687B2 (en) * 2013-02-15 2016-11-01 Exalt Wireless, Inc. Selective compression in a wireless communication system
CN104038450B (zh) * 2013-03-04 2017-09-19 华为技术有限公司 基于pcie总线的报文传输方法与装置
US9414432B2 (en) 2013-04-03 2016-08-09 Marvell World Trade Ltd. Physical layer frame format for WLAN
KR102339298B1 (ko) 2013-09-10 2021-12-14 마벨 아시아 피티이 엘티디. 옥외 wlan용 확장 보호 구간
US10218822B2 (en) 2013-10-25 2019-02-26 Marvell World Trade Ltd. Physical layer frame format for WLAN
US10194006B2 (en) 2013-10-25 2019-01-29 Marvell World Trade Ltd. Physical layer frame format for WLAN
KR102526618B1 (ko) 2013-10-25 2023-04-27 마벨 아시아 피티이 엘티디. 와이파이를 위한 레인지 확장 모드
US9825884B2 (en) 2013-12-30 2017-11-21 Cavium, Inc. Protocol independent programmable switch (PIPS) software defined data center networks
US11855818B1 (en) 2014-04-30 2023-12-26 Marvell Asia Pte Ltd Adaptive orthogonal frequency division multiplexing (OFDM) numerology in a wireless communication network
US9473601B2 (en) 2014-06-19 2016-10-18 Cavium, Inc. Method of representing a generic format header using continuous bytes and an apparatus thereof
US9497294B2 (en) 2014-06-19 2016-11-15 Cavium, Inc. Method of using a unique packet identifier to identify structure of a packet and an apparatus thereof
US9742694B2 (en) 2014-06-19 2017-08-22 Cavium, Inc. Method of dynamically renumbering ports and an apparatus thereof
US9516145B2 (en) 2014-06-19 2016-12-06 Cavium, Inc. Method of extracting data from packets and an apparatus thereof
US9531849B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of splitting a packet into individual layers for modification and intelligently stitching layers back together after modification and an apparatus thereof
US9961167B2 (en) 2014-06-19 2018-05-01 Cavium, Inc. Method of modifying packets to a generic format for enabling programmable modifications and an apparatus thereof
US9635146B2 (en) 2014-06-19 2017-04-25 Cavium, Inc. Method of using bit vectors to allow expansion and collapse of header layers within packets for enabling flexible modifications and an apparatus thereof
US10616380B2 (en) 2014-06-19 2020-04-07 Cavium, Llc Method of handling large protocol layers for configurable extraction of layer information and an apparatus thereof
US9438703B2 (en) 2014-06-19 2016-09-06 Cavium, Inc. Method of forming a hash input from packet contents and an apparatus thereof
US9531848B2 (en) 2014-06-19 2016-12-27 Cavium, Inc. Method of using generic modification instructions to enable flexible modifications of packets and an apparatus thereof
US9628385B2 (en) 2014-06-19 2017-04-18 Cavium, Inc. Method of identifying internal destinations of networks packets and an apparatus thereof
US10050833B2 (en) 2014-06-19 2018-08-14 Cavium, Inc. Method of reducing latency in a flexible parser and an apparatus thereof
US9606781B2 (en) 2014-11-14 2017-03-28 Cavium, Inc. Parser engine programming tool for programmable network devices
US10887430B2 (en) 2015-10-21 2021-01-05 Dragonwave-X, Llc Compression in communications
US11593280B2 (en) * 2019-06-25 2023-02-28 Intel Corporation Predictive packet header compression
CN113439268B (zh) * 2020-01-22 2023-01-06 华为技术有限公司 一种基于PCIe的数据传输方法、装置及系统
CN113485950A (zh) * 2021-06-22 2021-10-08 上海天数智芯半导体有限公司 一种合并发送PCIe存储器写请求的系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761343A (en) 1994-11-28 1998-06-02 Canon Kabushiki Kaisha Image reproduction apparatus and image reproduction method
US20080151903A1 (en) 2003-06-05 2008-06-26 Conexant Systems, Inc. ATM Header Compression Using Hash Tables

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963570B1 (en) * 1997-07-15 2005-11-08 Comsat Corporation Method and apparatus for adaptive loss-less compression of cell/packet headers
US6009488A (en) 1997-11-07 1999-12-28 Microlinc, Llc Computer having packet-based interconnect channel
US6804238B1 (en) * 1998-12-29 2004-10-12 International Business Machines Corporation System and method for transmitting compressed frame headers in a multiprotocal data transmission network
US6865164B1 (en) * 1999-09-08 2005-03-08 Motorola, Inc. Packet transmission method
US7170866B2 (en) * 1999-12-08 2007-01-30 Cello Partnership Quality of service enhancements for wireless communications systems
US6859897B2 (en) * 2000-03-02 2005-02-22 Texas Instruments Incorporated Range based detection of memory access
US7545755B2 (en) * 2000-03-03 2009-06-09 Adtran Inc. Routing switch detecting change in session identifier before reconfiguring routing table
KR100349649B1 (ko) 2000-07-11 2002-08-24 주식회사 큐리텔 동영상압축 부호화장치의 가변 길이 부호화기
CA2461320C (en) * 2001-10-05 2011-10-25 Aware, Inc. Systems and methods for multi-pair atm over dsl
US6760345B1 (en) 2002-01-16 2004-07-06 Raytheon Company Compressing cell headers for data communication
US6987761B2 (en) 2002-02-13 2006-01-17 International Business Machines Corporation Inbound data stream controller with pre-recognition of frame sequence
US7362780B2 (en) * 2002-12-11 2008-04-22 Nokia Corporation Avoiding compression of encrypted payload
US8296452B2 (en) 2003-03-06 2012-10-23 Cisco Technology, Inc. Apparatus and method for detecting tiny fragment attacks
US7602785B2 (en) * 2004-02-09 2009-10-13 Washington University Method and system for performing longest prefix matching for network address lookup using bloom filters
JP2006135871A (ja) * 2004-11-09 2006-05-25 Fujitsu Ltd フレーム伝送装置およびフレーム受信装置
US7916750B2 (en) 2005-12-28 2011-03-29 Intel Corporation Transaction layer packet compression
KR100745782B1 (ko) 2006-09-29 2007-08-03 한국전자통신연구원 동적 헤더 압축 장치 및 방법
US7949794B2 (en) 2006-11-02 2011-05-24 Intel Corporation PCI express enhancements and extensions
US7808995B2 (en) * 2006-11-16 2010-10-05 L-3 Communications Integrated Systems L.P. Methods and systems for relaying data packets
US20080117906A1 (en) * 2006-11-20 2008-05-22 Motorola, Inc. Payload header compression in an rtp session
US7848280B2 (en) * 2007-06-15 2010-12-07 Telefonaktiebolaget L M Ericsson (Publ) Tunnel overhead reduction
WO2009004631A1 (en) * 2007-07-05 2009-01-08 Ceragon Networks Ltd. Data packet header compression
US7793001B2 (en) * 2008-05-09 2010-09-07 Microsoft Corporation Packet compression for network packet traffic analysis
US7990973B2 (en) * 2008-08-13 2011-08-02 Alcatel-Lucent Usa Inc. Hash functions for applications such as network address lookup

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5761343A (en) 1994-11-28 1998-06-02 Canon Kabushiki Kaisha Image reproduction apparatus and image reproduction method
US20080151903A1 (en) 2003-06-05 2008-06-26 Conexant Systems, Inc. ATM Header Compression Using Hash Tables

Also Published As

Publication number Publication date
US8111704B2 (en) 2012-02-07
DE112010002704T5 (de) 2013-01-17
CN101930418A (zh) 2010-12-29
WO2010151351A1 (en) 2010-12-29
TW201105049A (en) 2011-02-01
US20100329255A1 (en) 2010-12-30
CN101930418B (zh) 2013-12-18
TWI440314B (zh) 2014-06-01

Similar Documents

Publication Publication Date Title
DE112010002704B4 (de) Mehrere Komprimierungstechniken für Informationen in Paketform
DE60316776T2 (de) Auf netzwerkdatenspeicherung bezogene operationen
DE102011010613B4 (de) Verfahren zum Speichern und Wiederherstellen von Daten, Verwendung der Verfahren in einer Storage Cloud, Speicherserver und Computerprogrammprodukt
DE102020201153A1 (de) Verfahren und einrichtungen zum komprimieren von daten
DE102008049017A1 (de) Kompression von Netzwerkpaket-Nutzdaten
EP1588493A2 (de) Blockdatenkompressionssystem, bestehend aus einer kompressionseinrichtung und einer dekompressionseinrichtung, und verfahren zur schnellen blockdatenkompression mit multi-byte-suche
US20150333766A1 (en) Run time compression method for a vehicle communication bus
DE4340591A1 (de) Datenkompressionsverfahren unter Verwendung kleiner Wörterbücher zur Anwendung auf Netzwerkpakete
DE69915725T2 (de) Datenkompression unter Verwendung von Primzahlexponenten
DE112004002375B4 (de) Verfahren, System und Programm zum Verwalten von Datenleseoperationen
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE112013006339T5 (de) Kompression hoher Bandbreite um Datenströme zu Verschlüsseln
DE112015005742T5 (de) Lastadaptiver algorithmus zum packen von daten
DE112018000227B4 (de) Verfahren zum teilweisen Aktualisieren von Dateninhalten in einem verteilten Speichernetzwerk
DE112004002043T5 (de) Verfahren, System und Programm zum Aufbau eines Pakets
DE102015203202B4 (de) Speicher-Subsystem mit auf ein Wrapped-Lesen folgendem kontinuierlichen Lesen
DE112004002544B4 (de) Verfahren, System und Programm zur Identifizierung von Datenüberlauf
DE60314641T2 (de) Verfahren, system und programm zur konfiguration von teilnehmern auf einem bus fürein-/ausgabeoperationen
DE102015108005A1 (de) Mechanismen und Geräte für neu konfigurierbare Interprozessorkommunikationen mit eingebettetem Controller
DE102019118340A1 (de) Invertierungskodierung für einen bus mit begrenzter hamming-distanz für schnittstellen mit mehreren bytes
CN114020716A (zh) 对账系统中的大文件分布式处理方法及装置
EP3424200B1 (de) Kennungscodierungseinrichtung und kennungsdecodierungseinrichtung zur datenverteilung in netzwerken sowie derartige einrichtungen aufweisende netzwerkelemente
DE102020133250A1 (de) Managen eines Zustands in Beschleunigern
CN112290953A (zh) 多道数据流的阵列编码装置和方法、阵列解码装置和方法
EP3284193A1 (de) Ubertragungsverfahren und vorrichtungen zur übertragung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0029060000

Ipc: H04L0065000000

R020 Patent grant now final