-
HINTERGRUND
-
Die Erfindung betrifft das Gebiet von Computersystemen und genauer einen computerrealisierten Paket-Nachschlagemechanismus für sehr grolle Tabellen und sehr hohen Durchsatz.
-
Ein Ethernet-Port kann eine Verbindung zwischen einem Computer und einem Computernetzwerk bereitstellen. Für einen 100-Gbit/s-Ethernet-Port beträgt die kürzeste Dauer für ein 64-Byte-Paket 6,7 Nanosekunden, was der Logik bei 500 MHz nur 3 Taktzyklen für das Nachschlagen lässt.
-
US 2010/0036820 A1 beschreibt ein Verfahren zur Verarbeitung von Zugriffssteuerungslisten unter Verwendung eines Hashing-Schemas, wobei das Verfahren einen Empfang von Paketidentifizierungsdaten und Bestimmen einer festen Anzahl einer Mehrzahl von Hash-Tabellen umfasst, die eine feste Anzahl von zwei oder mehr Buckets umfassen, die eine feste Anzahl von einem oder mehr Einträgen umfassen, so dass die zwei oder mehr Hash-Tabellen Daten in einem einer Zugriffssteuerungsliste zugeordneten Speicher speichern.
-
ALAOUI, S.: „Konstruktion von Hashfunktionen”, Diplomarbeit, TU Darmstadt, 2007, gibt eine allgemeine Übersicht, wie Hashfunktionen auf der Basis algebraischer Strukturen aufgebaut sind und wie ihre Sicherheit mit den zugrundeliegenden zahlentheoretischen Problemen zusammenhängen.
-
US 2008/0229056 A1 beschreibt Verfahren und Vorrichtungen für duale Hashtabellen. Das Verfahren umfasst ein logisches Teilen einer Hash-Tabellen-Datenstruktur in eine erste Hash-Tabelle und eine zweite Hash-Tabelle, wobei die erste Hash-Tabelle und die zweite Hash-Tabelle im Wesentlichen logisch äquivalent sind. Ferner werden ein Schlüssel und ein entsprechender Datenwert empfangen, eine erste Hash-Funktion wird auf den Schlüssel angewendet, so dass ein erster Index zu einem ersten Bucket in der ersten Hash-Tabelle erzeugt wird, und eine zweite Hash-Funktion wird auf den Schlüssel angewendet, so dass ein zweiter Index zu einem zweiten Bucket in der zweiten Hash-Tabelle erzeugt wird. Der Schlüssel und der Datenwert werden basierend auf dem ersten und dem zweiten Index in die erste oder zweite Hash-Tabelle eingefügt.
-
WEBSTER, A. F. [u. a.]: „On the design of S-boxes”, Springer, 1885, ISBN 0-387-16463-4, S. 523–534, beschreibt das sogenannte strenge Lawinenkriterium.
-
KURZDARSTELLUNG
-
Gemäß einer Ausführungsform der Erfindung kann ein verbessertes Computersystem eine Steuereinheit mit einem Computerprozessor enthalten, wobei die Steuereinheit dazu dient, Einfügungszeiten und/oder Hashing-Kollisionen zu verringern, wenn eine Verbindung mit neuen der Steuereinheit vorgestellten Komponenten hergestellt wird. Das System kann zudem eine Kollisionsvermeidungsvorrichtung enthalten, welche die Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket verringert. Das System kann weiterhin eine Hash-Vorrichtung in Datenaustausch mit der Steuereinheit enthalten, um die Vielzahl von Schlüsseln der Vielzahl von Tabellen zuzuordnen, wobei die Hash-Vorrichtung eine einzelne Hash-Logik verwendet, um einen Lawineneffekt bereitzustellen, wenn ein Schlüssel geändert wird, was dazu führt, dass sich annähernd die Hälfte der Bits in der Vielzahl von Tabellen ändert.
-
Die einzelne Hash-Logik kann auf dem Kuckucksalgorithmus beruhen. Die einzelne Hash-Logik kann ein konfigurierbares Polynom einer zyklischen Redundanzprüfung aufweisen. Die Hash-Vorrichtung kann ein paralleles Tabellennachschlagen in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts bereitstellen.
-
Der Lawineneffekt kann auf orthogonalen Hash-Funktionen für jede der Vielzahl von Tabellen beruhen, und die einzelne Hash-Logik realisiert jede orthogonale Hash-Funktion. Jede Bitausgabe der einzelnen Hash-Logik kann konzentrierte Ergebnisse der Schlüsselbits aufweisen.
-
Die konzentrierten Ergebnisse können durch eine XOR-Funktion erzeugt werden. Die Vielzahl von Tabellen kann konfigurierbar sein. Die globale Bestückung der Vielzahl von Tabellen kann konfigurierbar sein, indem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik gesteuert wird.
-
Einen weiteren Aspekt der Erfindung stellt ein Verfahren zum Verbessern eines Computersystems dar. Das Verfahren kann ein Verringern von Einfügungszeiten und/oder Hashing-Kollisionen beinhalten, wenn neue Komponenten einer Steuereinheit vorgestellt werden, die einen Computerprozessor enthält. Das Verfahren kann zudem ein Verringern der Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket durch eine Kollisionsvermeidungsvorrichtung beinhalten. Das System kann weiterhin ein Zuordnen der Vielzahl von Schlüsseln zur Vielzahl von Tabellen mit einer Hash-Vorrichtung in Datenaustausch mit der Steuereinheit beinhalten, wobei die Hash-Vorrichtung eine einzelne Hash-Logik verwendet, um einen Lawineneffekt bereitzustellen, wenn ein einziger Schlüssel geändert wird, was dazu führt, dass sich annähernd die Hälfte der Bits in der Vielzahl von Tabellen ändert.
-
Das Verfahren kann zusätzlich über die Hash-Vorrichtung ein Bereitstellen eines parallelen Tabellennachschlagens in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts beinhalten. Das Verfahren kann zudem ein Stützen des Lawineneffekts auf orthogonale Hash-Funktionen für jede der Vielzahl von Tabellen beinhalten, und die einzelne Hash-Logik realisiert jede orthogonale Hash-Funktion.
-
Das Verfahren kann weiterhin ein Konzentrieren von Ergebnissen der Schlüsselbits für jede Bitausgabe der einzelnen Hash-Logik beinhalten. Das Verfahren kann zusätzlich ein Konfigurierbarmachen der Vielzahl von Tabellen beinhalten. Das Verfahren kann zudem ein Steuern der Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik beinhalten, damit die globale Bestückung der Vielzahl von Tabellen konfigurierbar ist.
-
Einen weiteren Aspekt der Erfindung stellen an gegenständliche Medien gebundene computerlesbare Programmcodes zum Verbessern eines Computersystems dar. Die computerlesbaren Programmcodes können eingerichtet sein, das Programm zu veranlassen, Einfügungszeiten und/oder Hashing-Kollisionen zu verringern, wenn neue Komponenten einer Steuereinheit vorgestellt werden, die einen Computerprozessor enthält. Die computerlesbaren Programmcodes können zudem die Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket durch eine Kollisionsvermeidungsvorrichtung verringern. Die computerlesbaren Programmcodes können weiterhin die Vielzahl von Schlüsseln der Vielzahl von Tabellen mit einer Hash-Vorrichtung in Datenaustausch mit der Steuereinheit zuordnen, wobei die Hash-Vorrichtung eine einzelne Hash-Logik verwendet, um einen Lawineneffekt bereitzustellen, wenn ein einziger Schlüssel geändert wird, was dazu führt, dass sich annähernd die Hälfte der Bits in der Vielzahl von Tabellen ändert.
-
Die computerlesbaren Programmcodes können zusätzlich über die Hash-Vorrichtung ein paralleles Tabellennachschlagen in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts bereitstellen. Die computerlesbaren Programmcodes können zudem den Lawineneffekt auf orthogonale Hash-Funktionen für jede der Vielzahl von Tabellen stützen, und die einzelne Hash-Logik realisiert jede orthogonale Hash-Funktion.
-
Die computerlesbaren Programmcodes können weiterhin Ergebnisse der Schlüsselbits für jede Bitausgabe der einzelnen Hash-Logik konzentrieren. Die computerlesbaren Programmcodes können zusätzlich die Vielzahl von Tabellen konfigurierbar machen. Die computerlesbaren Programmcodes können zudem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik steuern, damit die globale Bestückung der Vielzahl von Tabellen konfigurierbar ist.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 zeigt ein Blockschaubild, das ein Datenbank-Verbesserungssystem gemäß der Erfindung veranschaulicht.
-
2 zeigt einen Ablaufplan, der Verfahrensaspekte gemäß der Erfindung veranschaulicht.
-
3 zeigt einen Ablaufplan, der Verfahrensaspekte gemäß dem Verfahren von 2 veranschaulicht.
-
4 zeigt einen Ablaufplan, der Verfahrensaspekte gemäß dem Verfahren von 2 veranschaulicht.
-
5 zeigt einen Ablaufplan, der Verfahrensaspekte gemäß dem Verfahren von 4 veranschaulicht.
-
6 zeigt einen Ablaufplan, der Verfahrensaspekte gemäß dem Verfahren von 2 veranschaulicht.
-
7 zeigt einen Ablaufplan, der Verfahrensaspekte gemäß dem Verfahren von 6 veranschaulicht.
-
8 veranschaulicht einen übergeordneten Aufbau einer CCB-Tabellennachschlage-Engine gemäß der Erfindung.
-
9 veranschaulicht einen übergeordneten Aufbau einer programmierbaren Hashing-Logik mit 5 Modi gemäß der Erfindung.
-
10 veranschaulicht ein 4-zu-2-Beispiel gemäß der Erfindung.
-
11 veranschaulicht ein Beispiel einer XOR-Matrix gemäß der Erfindung.
-
12 veranschaulicht eine Taktung einer Nachschlagefernabfrage gemäß der Erfindung.
-
13 veranschaulicht eine Engine zum Vergleichen während der Verarbeitung gemäß der Erfindung.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Die Erfindung wird nun im Anschluss unter Bezugnahme auf die begleitenden Zeichnungen vollständiger beschrieben, in denen bevorzugte Ausführungsformen der Erfindung gezeigt sind. Gleiche Bezugszeichen beziehen sich durchgängig auf gleiche Elemente.
-
Unter Bezugnahme auf 1 wird nun zu Beginn ein verbessertes Computersystem 10 beschrieben. In einer Ausführungsform enthält das System 10 eine Steuereinheit 12, die einen Computerprozessor 14 aufweist. Die Steuereinheit 12 verringert Einfügungszeiten und/oder Hashing-Kollisionen, wenn eine Verbindung mit neuen der Steuereinheit vorgestellten Komponenten 16 hergestellt wird. Das System 10 enthält zudem eine Kollisionsvermeidungsvorrichtung 18, welche Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket verringert. Das System 10 enthält weiterhin eine Hash-Vorrichtung 20 in Datenaustausch mit der Steuereinheit 12, um die Vielzahl von Schlüsseln der Vielzahl von Tabellen zuzuordnen, wobei die Hash-Vorrichtung eine einzelne Hash-Logik 22 verwendet, um einen Lawineneffekt bereitzustellen, wenn ein einziger Schlüssel geändert wird, was dazu führt, dass sich annähernd die Hälfte der Bits in der Vielzahl von Tabellen ändert. Die Komponenten des Systems 10 sind durch ein Datenübertragungsnetzwerk 21 miteinander verbunden, wie für den Fachmann ersichtlich ist.
-
In einer Ausführungsform beruht die einzelne Hash-Logik 22 auf dem Kuckucksalgorithmus. In einer weiteren Ausführungsform weist die einzelne Hash-Logik 22 ein konfigurierbares Polynom einer zyklischen Redundanzprüfung (cyclic redundancy check (CRC)) auf. In einer weiteren Ausführungsform stellt die Hash-Vorrichtung 20 ein paralleles Tabellennachschlagen in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts bereit.
-
In einer Ausführungsform beruht der Lawineneffekt auf orthogonalen Hash-Funktionen für jede der Vielzahl von Tabellen, und die einzelne Hash-Logik 22 realisiert jede orthogonale Hash-Funktion. In einer weiteren Ausführungsform weist jede Bitausgabe der einzelnen Hash-Logik 22 konzentrierte Ergebnisse der Schlüsselbits auf.
-
In einer Ausführungsform werden die konzentrierten Ergebnisse durch eine XOR-Funktion erzeugt. In einer weiteren Ausführungsform ist die Vielzahl von Tabellen konfigurierbar. In einer weiteren Ausführungsform ist die globale Bestückung der Vielzahl von Tabellen konfigurierbar, indem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik 22 gesteuert wird.
-
Einen weiteren Aspekt der Erfindung stellt ein Verfahren zum Verbessern eines Computersystems dar, das nun unter Bezugnahme auf den Ablaufplan 24 von 2 beschrieben wird. Das Verfahren beginnt mit Block 26 und kann in Block 28 ein Verringern von Einfügungszeiten und/oder Hashing-Kollisionen beinhalten, wenn neue Komponenten einer Steuereinheit vorgestellt werden, die einen Computerprozessor enthält. Das Verfahren kann zudem in Block 30 ein Verringern von Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket durch eine Kollisionsvermeidungsvorrichtung beinhalten. Das Verfahren kann weiterhin in Block 32 ein Zuordnen der Vielzahl von Schlüsseln zur Vielzahl von Tabellen mit einer Hash-Vorrichtung in Datenaustausch mit der Steuereinheit beinhalten, wobei die Hash-Vorrichtung eine einzelne Hash-Logik verwendet, um einen Lawineneffekt bereitzustellen, wenn ein einziger Schlüssel geändert wird, was dazu führt, dass sich annähernd die Hälfte der Bits in der Vielzahl von Tabellen ändert. Das Verfahren endet mit Block 34.
-
In einer weiteren Verfahrensausführungsform, die nun unter Bezugnahme auf den Ablaufplan 36 von 3 beschrieben wird, beginnt das Verfahren mit Block 38. Das Verfahren kann die Schritte von 2 in den Blöcken 28, 30 und 32 beinhalten. Das Verfahren kann zusätzlich in Block 40 über die Hash-Vorrichtung ein Bereitstellen eines parallelen Tabellennachschlagens in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts beinhalten. Das Verfahren endet mit Block 42.
-
In einer weiteren Verfahrensausführungsform, die nun unter Bezugnahme auf den Ablaufplan 44 von 4 beschrieben wird, beginnt das Verfahren mit Block 46. Das Verfahren kann die Schritte von 2 in den Blöcken 28, 30 und 32 beinhalten. Das Verfahren kann zudem in Block 48 ein Stützen des Lawineneffekts auf orthogonale Hash-Funktionen für jede der Vielzahl von Tabellen beinhalten, und die einzelne Hash-Logik realisiert jede orthogonale Hash-Funktion. Das Verfahren endet mit Block 50.
-
In einer weiteren Verfahrensausführungsform, die nun unter Bezugnahme auf den Ablaufplan 52 von 5 beschrieben wird, beginnt das Verfahren mit Block 54. Das Verfahren kann die Schritte von 4 in den Blöcken 28, 30, 32 und 48 beinhalten. Das Verfahren kann weiterhin in Block 56 ein Konzentrieren von Ergebnissen der Schlüsselbits für jede Bitausgabe der einzelnen Hash-Logik beinhalten. Das Verfahren endet mit Block 58.
-
In einer weiteren Verfahrensausführungsform, die nun unter Bezugnahme auf den Ablaufplan 60 von 6 beschrieben wird, beginnt das Verfahren mit Block 62. Das Verfahren kann die Schritte von 2 in den Blöcken 28, 30 und 32 beinhalten. Das Verfahren kann in Block 64 zusätzlich ein Konfigurierbarmachen der Vielzahl von Tabellen beinhalten. Das Verfahren endet mit Block 66.
-
In einer weiteren Verfahrensausführungsform, die nun unter Bezugnahme auf den Ablaufplan 68 von 7 beschrieben wird, beginnt das Verfahren mit Block 70. Das Verfahren kann die Schritte von 6 in den Blöcken 28, 30, 32 und 64 beinhalten. Das Verfahren kann zudem in Block 72 ein Steuern der Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik beinhalten, damit die globale Bestückung der Vielzahl von Tabellen konfigurierbar ist. Das Verfahren endet mit Block 74.
-
Einen weiteren Aspekt der Erfindung stellen an gegenständliche Medien gebundene computerlesbare Programmcodes zum Verbessern eines Computersystems dar. Die computerlesbaren Programmcodes können eingerichtet sein, das Programm zu veranlassen, Einfügungszeiten und/oder Hashing-Kollisionen zu verringern, wenn neue Komponenten 16 einer Steuereinheit 12 vorgestellt werden, die einen Computerprozessor 14 enthält. Die computerlesbaren Programmcodes können zudem Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket durch eine Kollisionsvermeidungsvorrichtung 18 verringern. Die computerlesbaren Programmcodes können weiterhin mit einer Hash-Vorrichtung 20 in Datenaustausch mit der Steuereinheit 12 die Vielzahl von Schlüsseln der Vielzahl von Tabellen zuordnen, wobei die Hash-Vorrichtung eine einzelne Hash-Logik 22 verwendet, um einen Lawineneffekt bereitzustellen, wenn ein einziger Schlüssel geändert wird, was dazu führt, dass sich annähernd die Hälfte der Bits in der Vielzahl von Tabellen ändert.
-
Die computerlesbaren Programmcodes können zusätzlich über die Hash-Vorrichtung 22 ein paralleles Tabellennachschlagen in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts bereitstellen. Die computerlesbaren Programmcodes können zudem den Lawineneffekt auf orthogonale Hash-Funktionen für jede der Vielzahl von Tabellen stützen, und die einzelne Hash-Logik 22 realisiert jede orthogonale Hash-Funktion.
-
Die computerlesbaren Programmcodes können weiterhin Ergebnisse der Schlüsselbits für jede Bitausgabe der einzelnen Hash-Logik 22 konzentrieren. Die computerlesbaren Programmcodes können zusätzlich die Vielzahl von Tabellen konfigurierbar machen. Die computerlesbaren Programmcodes können zudem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik 22 steuern, damit die globale Bestückung der Vielzahl von Tabellen konfigurierbar ist.
-
Im Hinblick auf das Vorhergehende stellt das System 10 ein verbessertes Computersystem bereit. Zum Beispiel kann unter Verwendung von herkömmlichem Hashing mit Verkettung, wie beispielsweise des „Kuckucks-Algorithmus”, eine Suche bei Verwendung in einer 100-Gbit/s-Ethernet-Anwendung mit einer geringen gebundenen Anzahl von Tabellennachschlagaktionen durchgeführt werden, sein Nachteil besteht jedoch in einer langen Einfügungszeit, wenn in einer sehr großen Tabelle viele Hashing-Kollisionen vorhanden sind. Im Gegensatz dazu ermöglicht das System 10 eine Einfügung im selben Zeitbereich wie eine Suche, was wichtig ist, wenn eine neue Tabelleneinfügung durch Paketlernen in einem Plug-and-Play-Netzwerk während der Verarbeitung erfolgt.
-
Das System 10 verwendet ein effizientes Hashing und/oder eine effiziente Algorithmusauswahl zur Kollisionsvermeidung und zwecks einer verringerten Einfügungszeit. Das System 10 stellt ein Paketnachschlagen für sehr große Tabellen und hohen Durchsatz bereit.
-
In einer Ausführungsform stellt das System 10 eine Hardwarerealisierung eines einzelnen Hashing-Verfahrens bereit, das in der Lage ist, jeden beliebigen Typ von CRC-Polynomdivision für jede beliebige Anzahl logischer Tabellen zu verwenden und dabei Cachespeicherkollisionen zu verringern. Die Hardwarerealisierung einer Paket-Nachschlagefunktion des Systems 10 unterstützt eine sehr große Zahl großer Schlüssel (hunderte von Millionen) und sehr hohen Durchsatz (100-Gbit/s-Ethernet). In einer weiteren Ausführungsform beruht das System 10 auf einer einzelnen Logik 22, in der das System 10 jeden beliebigen Typ von CRC-Polynomen konfigurieren kann. In einer weiteren Ausführungsform verringert das System 10 Kollisionen unter Verwendung von Orthogonalität und eines hohen Lawineneffekts für eine Vielzahl von Hashern, wodurch das parallele Nachschlagen in mehreren Tabellen ermöglicht wird.
-
In einer Ausführungsform werden effiziente orthogonale Hasher für jede unterschiedliche Tabelle verwendet. In einer weiteren Ausführungsform sollte ein Hasher, um effizient zu sein, einen hohen Lawineneffekt bereitstellen, z. B. ändert sich ungefähr die Hälfte der Bits des Hash-Ergebnisses, wenn nur ein einziges Bit des Schlüssels geändert wird.
-
Dies kann durch Division oder Multiplikation des Schlüssels erreicht werden, mit den sehr begrenzten Taktfrequenzen für einen Gesamtdurchsatz von 100 Gbit/s ist eine solche Hardwarerealisierung einer Multiplikation jedoch schwierig.
-
Eine XOR-Umsetzung kann in Hardware realisiert werden, es wird jedoch kein guter Lawineneffekt bereitgestellt. Ein CRC kann funktionieren, weil er einen guten Lawineneffekt bereitstellt und mit XOR-Konzentrieren in Hardware realisiert werden kann, er erfordert jedoch eine Menge an XOR-Logikschaltkreisen, was für unterschiedliche Tabellen zu einer großen Logikschaltung führt.
-
Um die Kollisionen zu verringern, verwendet das System 10 in einer Ausführungsform 4 unterschiedliche Tabellen und 8 Schlüssel pro Bucket. In einer weiteren Ausführungsform wird ein einzelner Hasher 22 verwendet, wobei jedes Bit des Hasher-Ergebnisses das konzentrierte Ergebnis aller Bits des Schlüssels darstellt, was die Realisierung jedes beliebigen Typs von CRC-Polynom erlaubt. Dies erfordert eine große Zahl von XOR-Schaltungen, die gemeinsame Nutzung der einzelnen Logik 22 für die 4 unterschiedlichen Tabellen macht dies jedoch erschwinglich.
-
In einer Ausführungsform beinhaltet die flexible Hardwarerealisierung zum Optimieren der Lösung mit der Nachschlagetabelle eine Konfigurierbarkeit der Zahl von Hash-Tabellen zwischen 2 und 5 (die grundlegende Konfiguration könnte in 4 aktiven + 1 Standby bestehen). In einer weiteren Ausführungsform sind die 5 Hashing-Funktionen vollständig XOR-Matrix-konfigurierbar. Auch wenn die Matrix unterschiedliche Typen von Hash-Konfiguration zulässt, stellt die CRC-Hashing-Funktion die bevorzugte Wahl dar.
-
In einer Ausführungsform ist die globale Tabellenbestückung konfigurierbar, indem eine Konfiguration der Zahl von Bits für das Hash-Ergebnis bereitgestellt wird (die Hardware kann bis zu 19-Bit-Hash-Wert-4M-Einträge pro Tabelle unterstützen). In einer weiteren Ausführungsform trägt ein Schlüsselvergleich während der Verarbeitung zum Optimieren von Back-to-Back-DMA-Anfragen und -Antworten bei.
-
Unter zusätzlicher Bezugnahme auf 8 wird ein übergeordneter Aufbau einer CCB-Tabellen-Nachschlage-Engine veranschaulicht. In einer Ausführungsform beinhaltet der Nachschlageprozess: Nachschlagen der empfangenen Anfrage; geht Hash-Funktionen durch, um Speicheradresse zu ermitteln; DMA-Leseanfrage; DMA-Leseantwort; Lesedaten werden mit ursprünglichem Schlüssel verglichen; und Nachschlageantwort wird an Anfragenden gesendet.
-
Unter zusätzlicher Bezugnahme auf 9 bis 10 ist in 9 ein übergeordneter Aufbau einer programmierbaren Hashing-Logik mit 5 Modi veranschaulicht. 10 offenbart eine beispielhafte 4-zu-2-Ausführungsform der Erfindung.
-
In einer Ausführungsform, die wahrscheinlich die flexibelste Realisierung des Systems 10 darstellt, können alle Schlüsselbits an jedem Hash-Bit teilhaben. Diese Realisierung macht die Hardware nahezu unabhängig von Verfeinerungen an Algorithmen und der maximalen Anzahl von Tabellen, weil sich die „Intelligenz”
-
in der Hash-Logik 22 befindet.
-
In einer Ausführungsform ergibt die Dimensionierung für einen 64-Bit-Schlüssel, einen 19-Bit-Hashwert und 5 Hash-Funktionen:
64·19·5 = 6.080 Konfigurationsflipflops
(64·19) 5-zu-1-Multiplexer zum Festlegen der Konfiguration
(64·19) 2-zu-1-AND-Gatter
19·(32 + 16 + 8 + 4 + 2 + 1) = 1.197 2-zu-1-XOR-Gatter
-
Eine grobe Flächenabschätzung für eine 45-nm-Realisierung beinhaltet:
Flipflop: 6.080·10 μm2 = 60.800 μm2
XOR2: 1.197·4 μm2 = 4.788 μm2
AND2: 64·19·3 μm2 = 3.648 μm2
AO22: 3·64·19·4 μm2 = 14.592 μm2
-
Gesamt = (60.800 + 4.788 + 3.648 + 14.592)·1,4 (unter Annahme von 60% Verdrahtbarkeit) = 117.359 μm2 ☐ ungefähr 0,12 mm2
-
11 veranschaulicht ein Beispiel einer XOR-Matrix gemäß der Erfindung. In diesem Beispiel wird ein 64-Bit-Schlüssel in einen 16-Bit-Hash-Wert umgewandelt.
-
12 veranschaulicht eine Taktung einer Nachschlagefernabfrage. In diesem Beispiel ist der Fall von 4-Hash-Tabellen gezeigt. 13 veranschaulicht eine Engine für Vergleiche während der Verarbeitung.
-
In einer Ausführungsform stellt das System 10 ein Verfahren für ein Tabellennachschlagen bereit. Das Verfahren kann ein Hardwaremittel zum Ausführen einer einzelnen Hash-Funktion zum Zuordnen einer von hunderten Millionen von Schlüsseln zu einem Slot, z. B. einem Bucket, in der Tabelle beinhalten, wobei die Hashing-Funktion einen hohen Lawineneffekt erzeugt, wenn nur ein einziges Bit eines Schlüssels geändert wird. Das Verfahren kann zudem ein Mittel zum Minimieren von Hashing-Kollisionen durch Realisieren von vier unterschiedlichen Tabellen und acht Schlüsseln pro Bucket beinhalten.
-
In einer Ausführungsform stellt das System 10 eine Hardwarerealisierung einer Paket-Nachschlagefunktion bereit, die eine sehr große Anzahl großer Schlüssel, z. B. hunderte von Millionen, und einen sehr hohen Durchsatz, z. B. 100-Gbit/s-Ethernet, auf der Grundlage einer einzelnen Logik 22 unterstützt, die für jeden beliebigen Typ von CRC-Polynomen konfiguriert werden kann, wobei Kollisionen mit Orthogonalität und einem hohen Lawineneffekt für eine Vielzahl von Hashern verringert werden, um das parallele Nachschlagen in mehreren Tabellen zu ermöglichen.
-
In einer Ausführungsform stellt das System 10 ein Verfahren und ein System zum Ausführen einer einzelnen Hashing-Logik 22 bereit, um einen sehr großen Satz von Schlüsseln einem Slot, z. B. einem Bucket, mit einem hohen Lawineneffekt zuzuordnen. In einer weiteren Ausführungsform verringert das System 10 Hashing-Kollision durch gemeinsames Nutzen der einzelnen Hashing-Logik 22 für vier unterschiedliche Tabellen und acht Schlüssel pro Slot.
-
Es ist zudem anzumerken, dass bei einigen alternativen Ausführungen die in einem Block eines Ablaufplans angegebenen Funktionen in anderer Reihenfolge als der in den Figuren angegebenen auftreten können. Zum Beispiel können zwei aufeinander folgend abgebildete Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal abhängig von der betreffenden Funktionalität in umgekehrter Reihenfolge ausgeführt werden, weil es sich bei den hierin abgebildeten Ablaufschaubildern nur um Beispiele handelt. Es kann viele Variationen an diesen Schaubildern oder den darin beschriebenen Schritten (oder Vorgängen/Operationen) geben, ohne vom Geist der Erfindung abzuweichen. Zum Beispiel können die Schritte gleichzeitig und/oder in anderer Reihenfolge durchgeführt oder Schritte hinzugefügt, entfernt und/oder verändert werden. Alle derartigen Variationen sind als Teil der beanspruchten Erfindung anzusehen.
-
Die hierin verwendete Terminologie dient lediglich dem Zwecke des Beschreibens besonderer Ausführungsformen und ist nicht als die Erfindung einschränkend aufzufassen. Die hierin verwendeten Singularformen „ein”, „eine” und „der”, „die”, „das” sowie deren Deklinationen sollen ebenso die Pluralformen einschließen, es sei denn dies ist im Kontext deutlich abweichend angegeben. Es versteht sich weiterhin, dass die Begriffe „aufweist” und/oder „aufweisend” bei Verwendung in dieser Beschreibung das Vorhandensein von angegebenen Merkmalen, ganzen Zahlen, Schritten, Vorgängen, Elementen und/oder Komponenten angeben, jedoch nicht das Vorhandensein oder Hinzufügen eines oder mehrerer Merkmale, ganzer Zahlen, Schritte, Vorgänge, Elemente, Komponenten und/oder Gruppen davon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Handlungen und Entsprechungen aller Mittel oder Schritte sowie Funktionselemente in den nachfolgenden Ansprüchen sollen alle Strukturen, Materialien oder Handlungen zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen, wie sie im Einzelnen beansprucht sind, einschließen. Die Beschreibung der vorliegenden Erfindung wurde zum Zwecke der Veranschaulichung und Beschreibung vorgelegt, ist jedoch nicht als erschöpfend oder auf die Erfindung in der offenbarten Form beschränkt aufzufassen. Viele Änderungen und Variationen sind für den Fachmann naheliegend, ohne vom Umfang und Geist der Erfindung abzuweichen. Die Ausführungsform wurde gewählt und beschrieben, um die Grundgedanken der Erfindung und die praktische Anwendung bestmöglich zu erklären und anderen Fachleuten ein Verständnis der Erfindung für vielfältige Ausführungsformen mit vielfältigen Änderungen, wie sie für den konkret betrachteten Gebrauch geeignet sind, zu ermöglichen.
-
Wenn auch die bevorzugte Ausführungsform der Erfindung beschrieben wurde, versteht es sich, dass Fachleute sowohl jetzt als auch zukünftig vielfältige Verbesserungen und Erweiterungen vornehmen können, unter den Umfang der nachfolgenden Ansprüche fallen. Diese Ansprüche sind so auszulegen, dass sie einen ordnungsgemäßen Schutz für die zuvor beschriebene Erfindung bieten.