BRICK: A Novel Exact Active Statistics Counter Architecture
description
Transcript of BRICK: A Novel Exact Active Statistics Counter Architecture
![Page 1: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/1.jpg)
1
BRICK: A Novel Exact Active Statistics Counter ArchitectureAuthor: Nan Hua, Bill Lin, Jun (Jim) Xu, Haiquan (Chuck) ZhaoPublisher: ANCS’08Presenter: Yun-Yan ChangDate:2011/02/23
![Page 2: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/2.jpg)
2
Introduction Design of BRICK
◦ Basic idea◦ Rank indexing◦ Handling increment◦ Handling overflow
Performance evaluation Conclusion
Outline
![Page 3: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/3.jpg)
3
Present a novel active statistics counter architecture called BRICK (Bucketized Bank Indexed Counter).
BRICK◦ Store variable width counters entirely in SRAM
while supporting fast access.◦ Exploit statistical multiplexing technique.
Group a fixed number of randomly selected counters into a bucket by an indexing scheme.
Introduction
![Page 4: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/4.jpg)
4
◦ Figure 1 shows the effect of statistical multiplexing Each horizontal layer of bricks corresponds to a
bucket The length of bricks corresponds to the real counter
widths.
Introduction
Figure 1: BRICK wall (conceptual baseline scheme)
![Page 5: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/5.jpg)
5
Randomly bundle N counters into h buckets, B1, B2, ..., Bh, where each bucket holds k counters and N = hk.
Basic idea
Figure2: (b) Bucket structure
![Page 6: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/6.jpg)
6
When access the yth counter, apply the index y to permuted index i by a permutation function π : {1...N} →{1. . .N}.
The corresponding counter Ci can then be found in the lth bucket Bl , where l = .
Basic idea
Figure2:(a) index permutation
ki
![Page 7: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/7.jpg)
7
Each bucket contains p sub-counter arrays A1, A2, ..., Ap to store the 1st, 2nd, ..., pth sub-counters.
◦ Assume the worst-case counter width is divided into p parts, which refer to as “sub-counters".
Basic idea
Figure 3: (a) Within a bucket, segmentation of variable-width counters into sub-counter arrays.
![Page 8: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/8.jpg)
8
For each counter, use indexing scheme to identify locations of sub-counters across the different sub-counter arrays.
Rank indexing
Figure3: (b) Compact representation of variable-width counters.
![Page 9: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/9.jpg)
9
Algorithm for get the value of ith counter.
Rank indexing
※ rank(Ij, a): return the number of 1 in bit-string Ij, count form Ij[1] to Ij[a].
![Page 10: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/10.jpg)
10
Increment algorithm
Handle increment
※ varshift(s, j, c): bit-string s, start from jth bit, shift right c times.
![Page 11: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/11.jpg)
11
Handle increment
32
※ varshift(s, j, c): bit-string s, start from jth bit, shift right c times.
![Page 12: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/12.jpg)
12
Extend data structure with full-size buckets F1, F2, ... , FJ , each bucket Ft is organized as k full-size counters.
◦ When a bucket overflow occurs for some Bl , the next available full-size bucket Ft is allocated to store its k counters, where t is just +1 of the last allocated full-size bucket.
◦ Use a flag fl to set to indicate the overflowed buckets.
◦ The index of the full-size bucket Ft is stored in a field labeled t, which is associated with Bl .
Handle overflow
![Page 13: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/13.jpg)
13
Memory costs and lower bounds
Sl :memory cost of each bucket S : total memory cost
◦ Lower bound of memory
Performance evaluation
NMlg (1) MCi
Ni 1 (2)
Ci: denote counter and counter valueM: sum of counter valuesN: number of counters
![Page 14: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/14.jpg)
14
Numerical results with various configurations
The number of entries decreases exponentially as we go to the higher sub-counter arrays. (main compression)
Performance evaluation
![Page 15: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/15.jpg)
15
Numerical results with various configurations
The amount of extra storage only decreases slightly with additional levels in the BRICK implementation.
Performance evaluation
![Page 16: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/16.jpg)
16
Performance evaluation
![Page 17: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/17.jpg)
17
Results for real Internet trace USC: around 18.9 million packets, 1.1 million flows. UNC: around 32.6 million packets, 1.24 million flows.
Performance evaluation
Worst-case counter width
Total storage requirementUSC UNC
Naïve 25 bits/counter 3.85 MB 4.40 MBBRICK 10 bits/counter 1.39 MB 1.63 MB
![Page 18: BRICK: A Novel Exact Active Statistics Counter Architecture](https://reader036.fdocuments.us/reader036/viewer/2022062520/56816167550346895dd0f1ef/html5/thumbnails/18.jpg)
18
BRICK is SRAM-efficient yet allows for fast counter lookup and increment.
Index filed only requires small number of extra bits per bucket.
Conclusion