DE102013208213B4 - System zur Verringerung von Hash-Kollisionen - Google Patents

System zur Verringerung von Hash-Kollisionen Download PDF

Info

Publication number
DE102013208213B4
DE102013208213B4 DE102013208213.4A DE102013208213A DE102013208213B4 DE 102013208213 B4 DE102013208213 B4 DE 102013208213B4 DE 102013208213 A DE102013208213 A DE 102013208213A DE 102013208213 B4 DE102013208213 B4 DE 102013208213B4
Authority
DE
Germany
Prior art keywords
tables
hash
logic
control unit
bits
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
DE102013208213.4A
Other languages
English (en)
Other versions
DE102013208213A1 (de
Inventor
Jean L. Calvignac
Casimer M. DeCusatis
Fabrice J. Verplanken
Daniel Wind
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102013208213A1 publication Critical patent/DE102013208213A1/de
Application granted granted Critical
Publication of DE102013208213B4 publication Critical patent/DE102013208213B4/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

System (10), aufweisend: eine einen Computerprozessor (14) enthaltende Steuereinheit (12), wobei die Steuereinheit (12) dazu dient, mindestens eines von Einfügungszeiten und Hashing-Kollisionen zu verringern, wenn eine Verbindung mit neuen der Steuereinheit (12) vorgestellten Komponenten (16) hergestellt wird, eine Kollisionsvermeidungsvorrichtung (18), welche die Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket verringert, 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 (20) 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, eine Austauschereinrichtung zum Konfigurieren einer Standby-Tabelle mittels einer neuen Hash-Funktion, und eine Auswahlvorrichtung zum Duplizieren der Einträge einer Tabelle mit einem höheren Kollisionsqualitätsindex als andere betrachtete Tabellen, dadurch gekennzeichnet, dass eine globale Bestückung der Vielzahl von Tabellen konfigurierbar ist, indem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik (22) gesteuert wird.

Description

  • 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.

Claims (11)

  1. System (10), aufweisend: eine einen Computerprozessor (14) enthaltende Steuereinheit (12), wobei die Steuereinheit (12) dazu dient, mindestens eines von Einfügungszeiten und Hashing-Kollisionen zu verringern, wenn eine Verbindung mit neuen der Steuereinheit (12) vorgestellten Komponenten (16) hergestellt wird, eine Kollisionsvermeidungsvorrichtung (18), welche die Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket verringert, 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 (20) 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, eine Austauschereinrichtung zum Konfigurieren einer Standby-Tabelle mittels einer neuen Hash-Funktion, und eine Auswahlvorrichtung zum Duplizieren der Einträge einer Tabelle mit einem höheren Kollisionsqualitätsindex als andere betrachtete Tabellen, dadurch gekennzeichnet, dass eine globale Bestückung der Vielzahl von Tabellen konfigurierbar ist, indem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik (22) gesteuert wird.
  2. System nach Anspruch 1, wobei die einzelne Hash-Logik (22) auf dem Kuckucksalgorithmus beruht; und/oder ein konfigurierbares Polynom einer zyklischen Redundanzprüfung aufweist.
  3. System nach Anspruch 1, wobei die Hash-Vorrichtung (20) ein paralleles Tabellennachschlagen in der Vielzahl von Tabellen auf der Grundlage des Lawineneffekts bereitstellt.
  4. System nach Anspruch 1, wobei der Lawineneffekt auf orthogonalen Hash-Funktionen für jede der Vielzahl von Tabellen beruht, und die einzelne Hash-Logik (22) jede orthogonale Hash-Funktion realisiert.
  5. System nach Anspruch 4, wobei jede Bitausgabe der einzelnen Hash-Logik (22) konzentrierte Ergebnisse der Schlüsselbits aufweist.
  6. System nach Anspruch 5, wobei die konzentrierten Ergebnisse durch eine XOR-Funktion erzeugt werden.
  7. Verfahren, aufweisend: Verringern von mindestens einem von Einfügungszeiten und Hashing-Kollisionen, wenn neue Komponenten (16) einer Steuereinheit (12) vorgestellt werden, die einen Computerprozessor (14) enthält; Verringern der Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket durch eine Kollisionsvermeidungsvorrichtung (18); Zuordnen der Vielzahl von Schlüsseln zu der Vielzahl von Tabellen mit einer Hash-Vorrichtung in Datenaustausch mit der Steuereinheit (12), 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; und Konfigurieren einer Standby-Tabelle durch eine Austauschervorrichtung mittels einer neuen Hash-Funktion und/oder Duplizieren der Einträge der Tabelle mit einem höheren Kollisionsqualitätsindex als andere betrachtete Tabellen durch eine Auswählereinrichtung, wobei kennzeichnend eine globale Bestückung der Vielzahl von Tabellen konfiguriert wird, indem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik (22) gesteuert wird.
  8. Verfahren nach Anspruch 7, weiterhin aufweisend ein Bereitstellen eines parallelen Tabellennachschlagens in der Vielzahl von Tabellen über die Hash-Vorrichtung (20) auf der Grundlage des Lawineneffekts.
  9. Verfahren nach Anspruch 8, weiterhin aufweisend ein Stützen des Lawineneffekts auf orthogonale Hash-Funktionen für jede der Vielzahl von Tabellen, und die einzelne Hash-Logik (22) realisiert jede orthogonale Hash-Funktion.
  10. Verfahren nach Anspruch 9, weiterhin aufweisend ein Konzentrieren von Ergebnissen der Schlüsselbits für jede Bitausgabe der einzelnen Hash-Logik (22).
  11. In einem gegenständlichen Medium verkörpertes Computerprogrammprodukt, aufweisend: mit dem gegenständlichen Medium verbundene computerlesbare Programmcodes zum Verbessern von Computersystemen (10), wobei die computerlesbaren Programmcodes eingerichtet sind, das Programm zu veranlassen: mindestens eines von Einfügungszeiten und Hashing-Kollisionen zu verringern, wenn neue Komponenten (16) einer Steuereinheit (12) vorgestellt werden, die einen Computerprozessor (14) enthält; die Hashing-Kollisionen durch Verwenden einer Vielzahl von Tabellen und einer Vielzahl von Schlüsseln pro Bucket durch eine Kollisionsvermeidungsvorrichtung (18) zu verringern; mit einer Hash-Vorrichtung (20) in Datenaustausch mit der Steuereinheit (12) die Vielzahl von Schlüsseln der Vielzahl von Tabellen zuzuordnen, wobei die Hash-Vorrichtung (20) 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; und mit einer Austauschervorrichtung eine Standby-Tabelle mittels einer neuen Hash-Funktion zu konfigurieren und/oder durch eine Auswählereinrichtung die Einträge der Tabelle mit einem höheren Kollisionsqualitätsindex als andere betrachtete Tabellen zu duplizieren, wobei kennzeichnend eine globale Bestückung der Vielzahl von Tabellen konfiguriert wird, indem die Anzahl von Bits für die Ausgabe der einzelnen Hash-Logik (22) gesteuert wird.
DE102013208213.4A 2012-05-20 2013-05-06 System zur Verringerung von Hash-Kollisionen Active DE102013208213B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/475,990 2012-05-20
US13/475,990 US8762399B2 (en) 2012-05-20 2012-05-20 Hash collision reduction system

Publications (2)

Publication Number Publication Date
DE102013208213A1 DE102013208213A1 (de) 2013-11-21
DE102013208213B4 true DE102013208213B4 (de) 2016-07-21

Family

ID=49511114

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102013208213.4A Active DE102013208213B4 (de) 2012-05-20 2013-05-06 System zur Verringerung von Hash-Kollisionen

Country Status (4)

Country Link
US (1) US8762399B2 (de)
JP (1) JP6234048B2 (de)
CN (1) CN103425725B (de)
DE (1) DE102013208213B4 (de)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9117502B2 (en) * 2013-02-06 2015-08-25 Fixnetix Ltd. System and method for memory management of unique alpha-numeric order identifiers subjected to hashing and truncation for mapping to limited memory space
WO2016093809A1 (en) * 2014-12-09 2016-06-16 Hewlett Packard Enterprise Development Lp Storage media sections with alternative cells
US10496680B2 (en) 2015-08-17 2019-12-03 Mellanox Technologies Tlv Ltd. High-performance bloom filter array
US9984144B2 (en) 2015-08-17 2018-05-29 Mellanox Technologies Tlv Ltd. Efficient lookup of TCAM-like rules in RAM
US10049126B2 (en) * 2015-09-06 2018-08-14 Mellanox Technologies Tlv Ltd. Cuckoo hashing with selectable hash
US11194778B2 (en) * 2015-12-18 2021-12-07 International Business Machines Corporation Method and system for hybrid sort and hash-based query execution
US9892057B2 (en) 2016-03-31 2018-02-13 Mellanox Technologies Tlv Ltd. Single double cuckoo hash
US10068034B2 (en) 2016-09-07 2018-09-04 Mellanox Technologies Tlv Ltd. Efficient matching of TCAM rules using hash tables in RAM
US10491521B2 (en) 2017-03-26 2019-11-26 Mellanox Technologies Tlv Ltd. Field checking based caching of ACL lookups to ease ACL lookup search
US10476794B2 (en) 2017-07-30 2019-11-12 Mellanox Technologies Tlv Ltd. Efficient caching of TCAM rules in RAM
CN108111421B (zh) * 2017-11-28 2021-02-09 苏州浪潮智能科技有限公司 一种基于多重哈希的报文分流方法及装置
US11327974B2 (en) 2018-08-02 2022-05-10 Mellanox Technologies, Ltd. Field variability based TCAM splitting
US11003715B2 (en) 2018-09-17 2021-05-11 Mellanox Technologies, Ltd. Equipment and method for hash table resizing
US10944675B1 (en) 2019-09-04 2021-03-09 Mellanox Technologies Tlv Ltd. TCAM with multi region lookups and a single logical lookup
CN113518033B (zh) * 2020-04-09 2023-01-03 阿里巴巴集团控股有限公司 路由方法、路由器和设备
US11539622B2 (en) 2020-05-04 2022-12-27 Mellanox Technologies, Ltd. Dynamically-optimized hash-based packet classifier
US11782895B2 (en) 2020-09-07 2023-10-10 Mellanox Technologies, Ltd. Cuckoo hashing including accessing hash tables using affinity table
CN112988763B (zh) * 2021-05-14 2021-07-27 北京顺实科技有限公司 一种以部分散列Key为索引的Kv数据库存储与查询方法
US11917042B2 (en) 2021-08-15 2024-02-27 Mellanox Technologies, Ltd. Optimizing header-based action selection
US11929837B2 (en) 2022-02-23 2024-03-12 Mellanox Technologies, Ltd. Rule compilation schemes for fast packet classification
US11968285B2 (en) 2022-02-24 2024-04-23 Mellanox Technologies, Ltd. Efficient memory utilization for cartesian products of rules
CN114666011B (zh) * 2022-03-23 2024-04-16 锐捷网络股份有限公司 一种数据处理方法、装置及电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229056A1 (en) * 2007-03-12 2008-09-18 Broadcom Corporation Method and apparatus for dual-hashing tables
US20100036820A1 (en) * 2008-08-06 2010-02-11 Fujitsu Limited Method and System for Processing Access Control Lists Using a Hashing Scheme

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002334114A (ja) * 2001-05-10 2002-11-22 Allied Tereshisu Kk テーブル管理方法及び装置
US7069268B1 (en) * 2003-01-13 2006-06-27 Cisco Technology, Inc. System and method for identifying data using parallel hashing
US7613775B2 (en) * 2003-11-25 2009-11-03 Freescale Semiconductor, Inc. Network message filtering using hashing and pattern matching
US7424591B2 (en) * 2006-06-19 2008-09-09 International Business Machines Corporation Splash tables: an efficient hash scheme for processors
CN101267381B (zh) * 2007-03-13 2010-12-29 大唐移动通信设备有限公司 哈希表操作方法及装置
US8275125B2 (en) 2008-04-21 2012-09-25 Tata Consultancy Services Ltd Method for designing a secure hash function and a system thereof
US8305271B2 (en) * 2010-03-17 2012-11-06 Microsoft Corporation Cuckoo hashing to store beacon reference data
US8935487B2 (en) * 2010-05-05 2015-01-13 Microsoft Corporation Fast and low-RAM-footprint indexing for data deduplication
US8745013B2 (en) * 2012-05-19 2014-06-03 International Business Machines Corporation Computer interface system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080229056A1 (en) * 2007-03-12 2008-09-18 Broadcom Corporation Method and apparatus for dual-hashing tables
US20100036820A1 (en) * 2008-08-06 2010-02-11 Fujitsu Limited Method and System for Processing Access Control Lists Using a Hashing Scheme

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ALAOUI, S.: In: TU Darmstadt. Darmstadt: Konstruktion von Hashfunktionen. 15.9.2007. 1-65. - Firmenschrift *
WEBSTER, A.F. [u.a.]: On the design of S-boxes. New York : Springer, 1985. S.523-534. - ISBN 0-387-16463-4 *

Also Published As

Publication number Publication date
CN103425725B (zh) 2017-04-12
CN103425725A (zh) 2013-12-04
JP6234048B2 (ja) 2017-11-22
DE102013208213A1 (de) 2013-11-21
JP2013242539A (ja) 2013-12-05
US20130311492A1 (en) 2013-11-21
US8762399B2 (en) 2014-06-24

Similar Documents

Publication Publication Date Title
DE102013208213B4 (de) System zur Verringerung von Hash-Kollisionen
DE102015102871B4 (de) Technologien für verteilten Leitweglenkungstabellennachschlag
DE10152970B4 (de) Halbleiterbauelement mit Systembus und externem Bus sowie Halbleiterchip-Betriebsverfahren und Speichermedium
EP0010195B1 (de) Vorrichtung zur Adressumwandlung in einer Datenverarbeitungsanlage
DE60117818T2 (de) Verwaltung des ersetzens von daten in einem zwischenspeicher auf einem knoten aufgrund von zwischenspeichern anderer knoten
DE202012013462U1 (de) Datenverarbeitung in einem Mapreduce-Framework
DE19954534A1 (de) Rückwärtsindexieren von Zeichenketten in einer relationalen Datenbank zum Suchen mit Joker
EP3520014B1 (de) Verfahren und system zum anonymisieren von datenbeständen
DE102013206281A1 (de) Optimieren von zerstreuten schemalosen Daten in relationalen Speichern
DE112006001167T5 (de) Simulieren mehrerer virtueller Kanäle in Switching-Fabric-Netzwerken
DE202015104128U1 (de) Datenzugriffssystem
DE112011106024B4 (de) Erzeugungsvorrichtung für vorrichtungsspezifische Informationen und Erzeugungsverfahren für vorrichtungsspezifische Informationen
DE10012123A1 (de) Speicherzugriff im Ethernet
DE112019005288T5 (de) EFFEKTIVES UND SKALIERBARES AUFBAUEN UND SONDIEREN VON HASHTABELLEN UNTER VERWENDUNG MEHRERER GPUs
DE102009017496A1 (de) Speicherzugriff in einem System mit Speicherschutz
EP1223725A1 (de) Verfahren und Vorrichtung zur Relevanzprüfung eines Kennzeichners
DE102013208212B4 (de) Verbessertes Computerschnittstellensystem
DE102016119991A1 (de) Emulation von Taktjittern
DE112010004562T5 (de) Zuweisung wirksam referenzierbarer global eindeutiger Kennungen in einer Mehrkernumgebung
DE102021209768A1 (de) Kuckucks- hashing umfassend das zugreifen auf hashtabellen unter verwendung einer affinitätstabelle
DE102013210914B4 (de) Datenverarbeitungsverfahren, Datenabfrageverfahren in Datenbank und entsprechende Einheit
DE102012216677B3 (de) Identifikationsschaltung
DE102016111497A1 (de) Halbleitervorrichtung
DE112012005046T5 (de) Koordinieren von Schreiboperationsabfolgen in einem Datenspeichersystem
DE19900636A1 (de) Datenzugriffs- und -verwaltungssystem sowie Verfahren zum Datenzugriff und zur Datenverwaltung für ein Rechnersystem

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
R084 Declaration of willingness to licence
R020 Patent grant now final
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012743000

Ipc: H04L0045745300