1 On a trie partitioning algorithm for power-efficient TCAMs Authors: Haibin Lu Presenter: Yi-Sheng,...

Post on 19-Dec-2015

214 views 0 download

Transcript of 1 On a trie partitioning algorithm for power-efficient TCAMs Authors: Haibin Lu Presenter: Yi-Sheng,...

1

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.

2

Outline

1. Introduction

2. Related Work

3. LOGSPLIT: A New Trie-Partitioning Algorithm

4. Experiment

3

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.

4

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 log2 m entries to the index TCAM, where m is the number of entries in one data TCAM block.

5

Related Work

6

Related Work- SubtreeSplit

7

Related Work--PostOrderSplit

8

Related Work

9

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

10

LOGSPLIT: A New Trie-Partitioning Algorithm

5 6

6 6

4 1

3 25

Ex: e = 5 3 ≤ count(y) ≤ 5

11

LOGSPLIT: A New Trie-Partitioning Algorithm

7

1

1

12

2

5

1

2

3

2

42

5

1

2

1

m = 4, e = 3

m = 4, e = 3

m = 4, e = 3

Step 1 Step 2

Step 3

12

LOGSPLIT: A New Trie-Partitioning Algorithm

13

LOGSPLIT: A New Trie-Partitioning Algorithm

14

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

15

Experiment

16

Experiment

17

Experiment

Power reduce factor : n / (m + number of index prefixes)

18

Experiment

19

Experiment

20

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.