{"title":"CP-Trie: Cumulative PopCount based Trie for IPv6 Routing Table Lookup in Software and ASIC","authors":"Md Iftakharul Islam, J. Khan","doi":"10.1109/HPSR52026.2021.9481816","DOIUrl":null,"url":null,"abstract":"Routing table lookup is a key function of a router. It involves performing the 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 (26 = 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 indicate 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.43× lookup throughput on a general purpose CPU, but consumes 1.36–1.47× 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.86× power and 0.79× area compared to Poptrie in ASIC.","PeriodicalId":158580,"journal":{"name":"2021 IEEE 22nd International Conference on High Performance Switching and Routing (HPSR)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2021-06-07","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2021 IEEE 22nd International Conference on High Performance Switching and Routing (HPSR)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HPSR52026.2021.9481816","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
Routing table lookup is a key function of a router. It involves performing the 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 (26 = 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 indicate 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.43× lookup throughput on a general purpose CPU, but consumes 1.36–1.47× 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.86× power and 0.79× area compared to Poptrie in ASIC.