Scalable and dynamically updatable lookup engine for decision-trees on FPGA

Architectures for tree structures on FPGAs as well as ASICs have been proposed over the years. The exponential growth in the memory size with respect to the number of tree levels restricts the scalability of these architectures. In this paper, we propose a scalable lookup engine on FPGA for large decision-trees; this engine sustains high throughput even if the tree is scaled up with respect to (1) the number of fields and (2) the number of leaf nodes. The proposed engine is a 2-dimensional pipelined architecture; this architecture also supports dynamic updates of the decision-tree. Each leaf node of the tree is mapped onto a horizontal pipeline; each field of the tree corresponds to a vertical pipeline. We use dual-port distributed RAM (distRAM) in each individual Processing Element (PE); the resulting architecture for a generic decision-tree accepts two search requests per clock cycle. Post place-and-route results show that, for a typical decision-tree consisting of 512 leaf nodes, with each node storing 320-bit data, our lookup engine can perform 536 Million Lookups Per Second (MLPS). Compared to the state-of-the-art implementation of a binary decision-tree on FPGA, we achieve 2× speed-up; the throughput is sustained even if frequent dynamic updates are performed.

[1]  Viktor K. Prasanna,et al.  High throughput and large capacity pipelined dynamic search tree on FPGA , 2010, FPGA '10.

[2]  Otmane Aït Mohamed,et al.  A Comparative Study of Parallel Prefix Adders in FPGA Implementation of EAC , 2009, 2009 12th Euromicro Conference on Digital System Design, Architectures, Methods and Tools.

[3]  Patrick Crowley,et al.  CAMP: fast and efficient IP lookup architecture , 2006, ANCS '06.

[4]  Rajeev Murgai,et al.  Delay estimation and optimization of logic circuits: a survey , 1997, Proceedings of ASP-DAC '97: Asia and South Pacific Design Automation Conference.

[5]  Viktor K. Prasanna,et al.  Scalable High Throughput and Power Efficient IP-Lookup on FPGA , 2009, 2009 17th IEEE Symposium on Field Programmable Custom Computing Machines.

[6]  H. Jonathan Chao,et al.  FlashTrie: Hash-based Prefix-Compressed Trie for IP Route Lookup Beyond 100Gbps , 2010, 2010 Proceedings IEEE INFOCOM.

[7]  T. N. Vijaykumar,et al.  TreeCAM: decoupling updates and lookups in packet classification , 2011, CoNEXT '11.

[8]  Viktor K. Prasanna,et al.  High-performance architecture for dynamically updatable packet classification on FPGA , 2013, Architectures for Networking and Communications Systems.

[9]  Maya Gokhale,et al.  Real-Time Classification of Multimedia Traffic Using FPGA , 2010, 2010 International Conference on Field Programmable Logic and Applications.

[10]  Paolo Ienne,et al.  Exploiting fast carry-chains of FPGAs for designing compressor trees , 2009, 2009 International Conference on Field Programmable Logic and Applications.

[11]  Frank Vahid,et al.  Don't forget memories: a case study redesigning a pattern counting ASIC circuit for FPGAs , 2008, CODES+ISSS '08.

[12]  Viktor K. Prasanna,et al.  High throughput and programmable online trafficclassifier on FPGA , 2013, FPGA '13.

[13]  Viktor K. Prasanna,et al.  Scalable Many-Field Packet Classification on Multi-core Processors , 2013, 2013 25th International Symposium on Computer Architecture and High Performance Computing.

[14]  Xin-She Yang,et al.  Introduction to Algorithms , 2021, Nature-Inspired Optimization Algorithms.

[15]  Viktor K. Prasanna,et al.  High-throughput IP-lookup supporting dynamic routing tables using FPGA , 2010, 2010 International Conference on Field-Programmable Technology.

[16]  Tom Feist,et al.  Vivado Design Suite , 2012 .

[17]  Ronald L. Rivest,et al.  Introduction to Algorithms, third edition , 2009 .