CP-Trie: Cumulative PopCount based Trie for IPv6 Routing Table Lookup in Software and ASIC (IEEE HPSR 2021)
MD Iftakharul Islam and Javed I. Khan
Kent State University
Abstract Routing table lookup is a key function of a router. It involves performing longest prefix match (LPM) of an IP address. Poptrie, the state-of-the-art trie based routing table lookup, encodes nodes using population counting bitmap. Poptrie uses PopCount CPU instruction which can process only 64 bits at a time. This is why, Poptrie uses 6-bit stride (2^6 = 64). This paper presents an extension of Poptrie named CP-Trie (stands for Cumulative PopCount based Trie) where it stores cumulative PopCount along with population counting bitmap. This enables CP-Trie to process longer stride (e.g. 8-16 bits) at each step. This reduces the number of steps and the number of memory access needed for an IP lookup. The fewer number of steps results in faster lookup. It also results in less power consumption in ASIC. Fewer memory accesses indicates that it requires fewer SRAM blocks in ASIC which results in lower area. This is why, CP-Trie is a more practical solution for pipelined ASIC compared to Poptrie. Our experiments with routing tables from real core routers show that CP-Trie achieves upto 1.43X lookup throughput on a general purpose CPU, but consumes 1.36-1.47X memory compared to Poptrie. We also implemented Poptrie and CP-Trie in a 1 GHz pipelined ASIC. Our physical synthesis report shows that CP-Trie consumes 0.86X power and 0.79X area compared to Poptrie in ASIC.
Downloads
- Slide: slide.pdf
- Code: https://github.com/tamimcse/cp-trie
- Presentation: presentation.mp4
Contact Email: mislam4@kent.edu