IEEE EMBEDDED SYSTEMS LETTERS, VOL. 10, NO. 3, SEPTEMBER 2018 73
Fast Content Updating Algorithm for an SRAM-Based TCAM on FPGA
Farkhanda Syed , Zahid Ullah, and Manish K. Jaiswal
Abstract—Static random-access memory (SRAM)-based ternary content-addressable memory (TCAM), an alternative to traditional TCAM, where inclusion of SRAM improves the memory access speed, scalability, cost, and storage density compared to conventional TCAM. In order to confidently use the SRAM-based TCAMs in application, an update module (UM) is essential. The UM replaces the old TCAM contents with fresh contents. This letter proposes a fast update mechanism for an SRAM-based TCAM and implements it on Xilinx Virtex-6 field-programmable gate array. To the best of authors’ knowl- edge, this is the first ever proposal on content-update-module in an SRAM-based TCAM, which consumes least possible clock cycles to update a TCAM word. Index Terms—Field-programmable gate array (FPGA)-based content-addressable memory (CAM), SRAM, ternary content- addressable memory (TCAM), UE-TCAM, update module (UM).
- I. INTRODUCTION
C
ONTENT-ADDRESSABLE MEMORY (CAM) is a hardware used in a variety of searching-based applica-
- tions. Here, a search key is provided as an input. The CAM
searches the entire memory against the search key concur- rently and returns the address of the matched CAM word at
- utput. CAM supports all logical values; binary as well as
- ternary. The binary logic supported CAMs are called binary
CAMs (BiCAMs) while the three-valued logic supported CAMs are called ternary CAMs (TCAMs). In case of TCAM, there is a possibility that more than one TCAM word match the search key. In such a case, a priority encoder is required to choose high priority address as a final matched address. Due to the parallel searching mechanism, each TCAM cell exhibits a separate matching circuitry; thus, TCAM has low bit storage density. Besides, traditional TCAMs are imple- mentable on application-specific integrated circuit only and has limited configurability. The demand for TCAM to be denser, reconfigurable, and easy for integration provokes the idea of implementing field-programmable gate array (FPGA)- based TCAM, where static random-access memory (SRAM) is
Manuscript received September 4, 2017; accepted October 21, 2017. Date
- f
publication November 6, 2017; date
- f
current version September 7, 2018. This manuscript was recommended for publication by
- P. Panda. (Corresponding author: Farkhanda Syed.)
- F. Syed and Z. Ullah are with the Department of Electrical Engineering,
CECOS University of IT and Emerging Sciences, Peshawar 25000, Pakistan (e-mail: farkhandasyed15@gmail.com; zahidullah@cecos.edu.pk).
- M. K. Jaiswal is with the Department of Electrical and Electronic
Engineering, University
- f
Hong Kong, Hong Kong (e-mail: manishkj@eee.hku.hk). Color versions of one or more of the figures in this paper are available
- nline at http://ieeexplore.ieee.org.
Digital Object Identifier 10.1109/LES.2017.2770225
used to emulate TCAM’s function. Today’s FPGAs have high clock rate, large amount of embedded memories called block RAMs (BRAMs) of reconfigurable nature, and low power con- sumption [1]. FPGA is evolving rapidly because of its support for networking-based applications. Also processing cores and specific embedded designs are available on it which makes FPGA faster and denser. Hence, performance gap between native TCAMs and FPGA is becoming narrower with the passage of time [2]. SRAM-based TCAMs [3]–[5] are better than conventional TCAMs when lookup operation is required. However, when it comes to updating algorithm, no comparison between conven- tional TCAM and SRAM-based TCAM is provided till now. In conventional TCAM, the stored entries are sorted in ascend- ing order, which does not allow one to reduce the worst case updating latency less than O(N). Here N is the total number
- f entries in TCAM [6]. It is understood that search opera-
tion and update operation cannot be performed simultaneously; thus, slow updates retarded the lookup performance in applica-
- tions. For example, in IP networking, owing to slow updates,
buffering of incoming packets is required to avoid packet loss during update process. However, it may cause head-of-line blocking; thus, a large buffer space other than the main packet buffer memory is required, which is undesirable for many applications [6]. The rest of this letter is arranged as follows. Section II pro- vides discussion on prior update algorithms for conventional TCAM and SRAM-based TCAM available in the literature. Section III consists of motivations and key contributions of the proposed work. Section IV provides explanation of hybrid
- partitioning. Section V explains the overall architecture of
modified update module (UM) integrated with FPGA-based
- TCAM. Section VI discusses implementation results and per-
formance evaluation. Section VII contains conclusions and directions to the future work.
- II. PRIOR WORKS AND DISCUSSION
Wang et al. [6] tried to provide a consistent policy TCAM table during update process. This is to unlock the TCAM table for lookup operation during an update process. However, rules in a policy are sorted where rules with high priority are placed at lower memory locations; hence, worst case complexity of updating algorithm still remains O(N) where N is the total number of rules. Thus, it costs design complexity and increases power consumption. Besides, 15% empty slots are required every time a system undergoes update process; hence, memory usage becomes inefficient.
1943-0663 c 2017 IEEE. Personal use is permitted, but republication/redistribution requires IEEE permission. See http://www.ieee.org/publications_standards/publications/rights/index.html for more information.