200 likes | 224 Views
This paper introduces LogSplit, a novel trie-partitioning algorithm for reducing power consumption in TCAMs. It optimizes search efficiency by limiting index TCAM entries while utilizing data TCAM blocks efficiently. The implementation is compared against existing algorithms like SubtreeSplit and PostOrderSplit. The study demonstrates that LogSplit reduces power consumption significantly and improves lookup engine efficiency, particularly for IPv6 router tables.
E N D
On a trie partitioning algorithm for power-efficient TCAMs Authors: Haibin Lu Presenter: Yi-Sheng, Lin (林意勝) Date: 2009.3.11 Publisher/Conf. : INTERNATIONAL JOURNAL OF COMMUNICATION SYSTEMS Dept. of Computer Science and Information Engineering National Cheng Kung University, Taiwan R.O.C.
Outline • Introduction • Related Work • LOGSPLIT: A New Trie-Partitioning Algorithm • Experiment
Introduction(1/2) • Zane et al. [3] use two partitioning algorithms to reduce the number of TCAM entries that are checked during lookup. The schemes use multiple TCAMs or a single TCAM with multiple blocks. • SubtreeSplit may waste many entries of data TCAM, and thus is too space-inefficient to be practical. • PostOrderSplit fully utilizes each data TCAM block except the last one. However, it generates a large index TCAM. Each data TCAM block contributes up to W + 1 entries to the index TCAM. [3]. Zane F, Narlikar G, Basu A. CoolCAMs: power-efficient TCAMs for forwarding engines. IEEE INFOCOM, San Francisco, CA, U.S.A., 2003.
Introduction(2/2) • Since the index TCAM is always on, its power consumption is significant, especially for IPv6 router tables. • The router hardware designers have to use the worst-case bound to determine the size of an index TCAM and the power budget. • The contribution of this paper is a new trie-partitioning algorithm, LogSplit, in which each data TCAM block adds at most log2m entries to the index TCAM, where m is the number of entries in one data TCAM block.
LOGSPLIT: A New Trie-Partitioning Algorithm • If count(x)>s where s is a positive integer, then there is a node y in subtrie(x) such that
LOGSPLIT: A New Trie-Partitioning Algorithm Ex: e = 5 3 ≤ count(y) ≤ 5 5 6 1 4 6 6 5 2 3
LOGSPLIT: A New Trie-Partitioning Algorithm Step 1 7 Step 2 5 5 3 1 1 4 2 2 2 2 2 1 1 1 m = 4, e = 3 m = 4, e = 3 Step 3 2 1 m = 4, e = 3
LOGSPLIT: A New Trie-Partitioning Algorithm • The algorithm makes at most log2m iterations to fill each bucket and each iteration invokes getNodeY(), which takes O(W) time each. Hence, it takes O(W log2m) time to fill each bucket. • The total time of adding the prefixes to the buckets is the size of the trie, which is O(nW). • Therefore, the overall time complexity of LogSplit is O(nW). • The time complexities of SubtreeSplit and PostOrderSplit [3] are also O(nW).
Experiment • Power reduce factor : n / (m + number of index prefixes)
Conclusion • In this paper we develop a new trie-partitioning algorithm, LogSplit, to reduce power consumption. Each data TCAM block contributes at most log2 m entries to the index TCAM for both IPv4 and IPv6, where m is the maximum number of entries in one data TCAM block. • Since the index TCAM is always enabled for search and it counts for a significant portion of the overall power consumption, especially when m is small, reducing the size of the index TCAM makes lookup engines cooler.