Issue No.07 - July (2008 vol.57)
DOI Bookmark: http://doi.ieeecomputersociety.org/10.1109/TC.2007.70838
One of the most critical resource management issues in the use of ternary content addressable memory (TCAM) for packet classification/filtering is how to effectively support filtering rules with ranges, known as range matching. In this paper, a Dynamic Range Encoding Scheme (DRES) is proposed to significantly improve TCAM storage efficiency for range matching. Unlike the existing range encoding schemes requiring additional hardware support, DRES uses the TCAM coprocessor itself to assist range encoding. Hence, DRES can be readily programmed in a network processor using a TCAM coprocessor for packet classification. A salient feature of DRES is its ability to allow a subset of ranges to be encoded and hence to have full control over the range code size. This feature allows DRES to exploit the TCAM structure to maximize TCAM storage efficiency. DRES is a comprehensive solution, including a dynamic range selection algorithm, a search key encoding scheme, a range encoding scheme, and a dynamic encoded range update algorithm. While the dynamic range selection algorithm running in software allows optimal selection of ranges to be encoded to maximize the TCAM storage efficiency, the dynamic encoded range update algorithm allows the TCAM database to be updated lock-free without interrupting the TCAM database lookup process. DRES is evaluated based on real-world databases and the results show that DRES can reduce the TCAM storage expansion ratio from 6.20 to 1.23. The performance analysis of DRES based on a probabilistic model demonstrates that DRES significantly improves TCAM storage efficiency for a wide spectrum of range distributions.
Associative memories, Composite structures, Storage/repositories, Network repositories/data mining/backup
Zhijun Wang, Kai Zheng, Hao Che, "DRES: Dynamic Range Encoding Scheme for TCAM Coprocessors", IEEE Transactions on Computers, vol.57, no. 7, pp. 902-915, July 2008, doi:10.1109/TC.2007.70838