• Media type: E-Article
  • Title: A Hash Table for Line-Rate Data Processing
  • Contributor: István, Zsolt; Alonso, Gustavo; Blott, Michaela; Vissers, Kees
  • Published: Association for Computing Machinery (ACM), 2015
  • Published in: ACM Transactions on Reconfigurable Technology and Systems, 8 (2015) 2, Seite 1-15
  • Language: English
  • DOI: 10.1145/2629582
  • ISSN: 1936-7406; 1936-7414
  • Keywords: General Computer Science
  • Origination:
  • Footnote:
  • Description: FPGA-based data processing is becoming increasingly relevant in data centers, as the transformation of existing applications into dataflow architectures can bring significant throughput and power benefits. Furthermore, a tighter integration of computing and network is appealing, as it overcomes traditional bottlenecks between CPUs and network interfaces, and dramatically reduces latency. In this article, we present the design of a novel hash table, a fundamental building block used in many applications, to enable data processing on FPGAs close to the network. We present a fully pipelined design capable of sustaining consistent 10Gbps line-rate processing by deploying a concurrent mechanism to handle hash collisions. We address additional design challenges such as support for a broad range of key sizes without stalling the pipeline through careful matching of lookup time with packet reception time. Finally, the design is based on a scalable architecture that can be easily parameterized to work with different memory types operating at different access speeds and latencies. We have tested the proposed hash table in an FPGA-based memcached appliance implementing a main-memory key-value store in hardware. The hash table is used to index 2 million entries in 24GB of external DDR3 DRAM while sustaining 13 million requests per second, the maximum packet rate that can be achieved with UDP packets on a 10Gbps link for this application.