Scalable architectures for the implementation of TCAM memories in FPGA technology

Content-Addressable Memories (CAM) are widely used in network infrastructures for the implementation of critical search functions. In the current years, there is an extremely increasing interest in the implementation of Ternary CAMs (TCAMs) in FPGA technology. However, the majority of the proposed i...

Πλήρης περιγραφή

Λεπτομέρειες βιβλιογραφικής εγγραφής
Κύριος συγγραφέας: Μωραΐτης, Στυλιανός
Άλλοι συγγραφείς: Moraitis, Stylianos
Γλώσσα:English
Έκδοση: 2022
Θέματα:
Διαθέσιμο Online:http://hdl.handle.net/10889/15823
id nemertes-10889-15823
record_format dspace
institution UPatras
collection Nemertes
language English
topic FPGA
Verilog
VLSI design
TCAM
Μνήμες Ternary CAM
Τεχνολογία FPGA
spellingShingle FPGA
Verilog
VLSI design
TCAM
Μνήμες Ternary CAM
Τεχνολογία FPGA
Μωραΐτης, Στυλιανός
Scalable architectures for the implementation of TCAM memories in FPGA technology
description Content-Addressable Memories (CAM) are widely used in network infrastructures for the implementation of critical search functions. In the current years, there is an extremely increasing interest in the implementation of Ternary CAMs (TCAMs) in FPGA technology. However, the majority of the proposed implementations does not utilize efficiently the advantages of the FPGA technology and, as a result, they are characterized by inefficient utilization of the available hardware resources and relatively low throughput. The consequence is the inability of the existing implementations to support small TCAM sizes, even in large FPGA devices. The objective of this diploma thesis is the research and the development of suitable architectures for the implementation of TCAM memories in FPGA technology. These architectures will: a) take into account and exploit the distinct attributes of the very FPGA technology, b) be characterized by high throughput and efficient utilization of the available hardware resources and c) be scalable for the purpose of the efficient implementation of large TCAMs to be possible. In this thesis, the design of two CAM architectures is developed. These architectures are, particularly, a Binary CAM (BCAM) implemented using the method of hierarchical search, and a Ternary CAM (TCAM) using the method of partitioning the CAM table into smaller sub-tables. The purpose was the utilization of the block-RAMs (BRAMs) of certain FPGA devices to emulate the CAM tables and the examination of the efficiency of the designs in each case. For each of these two architectures, a base design was implemented. This design was parametric and the parameters were different for each architecture. For the hierarchical-search BCAM, the parameters of the implementation were the size of the CAM, that is the number of entries of the CAM table and the pattern width. For the Scalable TCAM architecture, the parameters were the size of the CAM, the pattern width, three parameters that arrange the internal sub-tables of the architecture, the pipeline stages of the design and a parameter that adjusts the size of the RAMs in which the architecture will be mapped. The hardware description of the architectures was made in Verilog language. The simulation and the confirmation of their correct operation was done by ModelSim tool of Mentor Graphics. The verification of the results was made possible with the development of testbenches, also described in Verilog HDL. The implementation of the very designs was made with the use of the Xilinx Vivado Design Suite. The implementation took place for the purpose of conducting experimental measurements over certain metrics. These metrics were the block-RAM (BRAM) utilization of the designs, the maximum frequency (Fmax) that each design can achieve and the resource utilization of the designs, in terms of LUTs and Flip-Flops of the FPGA device. These measurements were extracted by downloading the designs on two different FPGA devices of the Virtex family: VC709 board of the Virtex-7 series and VCU1525 of the Virtex-Ultrascale series. The purpose was to study the behavior of each architecture according to the metrics mentioned previously, as much as to compare the performance of architectures with each other. After examining the results, the conclusion is that both designs, especially the TCAM design, are scalable with respect to all metrics. The BCAM architecture is really suitable for the implementation of small CAM tables and for lightweight applications, considering its low resource utilization. The TCAM architecture is an ideal candidate for large CAM tables and high throughput applications, since even large designs can reach relatively high frequencies.
author2 Moraitis, Stylianos
author_facet Moraitis, Stylianos
Μωραΐτης, Στυλιανός
author Μωραΐτης, Στυλιανός
author_sort Μωραΐτης, Στυλιανός
title Scalable architectures for the implementation of TCAM memories in FPGA technology
title_short Scalable architectures for the implementation of TCAM memories in FPGA technology
title_full Scalable architectures for the implementation of TCAM memories in FPGA technology
title_fullStr Scalable architectures for the implementation of TCAM memories in FPGA technology
title_full_unstemmed Scalable architectures for the implementation of TCAM memories in FPGA technology
title_sort scalable architectures for the implementation of tcam memories in fpga technology
publishDate 2022
url http://hdl.handle.net/10889/15823
work_keys_str_mv AT mōraïtēsstylianos scalablearchitecturesfortheimplementationoftcammemoriesinfpgatechnology
AT mōraïtēsstylianos epektasimesarchitektonikesgiatēnylopoiēsēmnēmōntcamsetechnologiafpga
_version_ 1771297241177260032
spelling nemertes-10889-158232022-09-05T14:03:58Z Scalable architectures for the implementation of TCAM memories in FPGA technology Επεκτάσιμες αρχιτεκτονικές για την υλοποίηση μνημών TCAM σε τεχνολογία FPGA Μωραΐτης, Στυλιανός Moraitis, Stylianos FPGA Verilog VLSI design TCAM Μνήμες Ternary CAM Τεχνολογία FPGA Content-Addressable Memories (CAM) are widely used in network infrastructures for the implementation of critical search functions. In the current years, there is an extremely increasing interest in the implementation of Ternary CAMs (TCAMs) in FPGA technology. However, the majority of the proposed implementations does not utilize efficiently the advantages of the FPGA technology and, as a result, they are characterized by inefficient utilization of the available hardware resources and relatively low throughput. The consequence is the inability of the existing implementations to support small TCAM sizes, even in large FPGA devices. The objective of this diploma thesis is the research and the development of suitable architectures for the implementation of TCAM memories in FPGA technology. These architectures will: a) take into account and exploit the distinct attributes of the very FPGA technology, b) be characterized by high throughput and efficient utilization of the available hardware resources and c) be scalable for the purpose of the efficient implementation of large TCAMs to be possible. In this thesis, the design of two CAM architectures is developed. These architectures are, particularly, a Binary CAM (BCAM) implemented using the method of hierarchical search, and a Ternary CAM (TCAM) using the method of partitioning the CAM table into smaller sub-tables. The purpose was the utilization of the block-RAMs (BRAMs) of certain FPGA devices to emulate the CAM tables and the examination of the efficiency of the designs in each case. For each of these two architectures, a base design was implemented. This design was parametric and the parameters were different for each architecture. For the hierarchical-search BCAM, the parameters of the implementation were the size of the CAM, that is the number of entries of the CAM table and the pattern width. For the Scalable TCAM architecture, the parameters were the size of the CAM, the pattern width, three parameters that arrange the internal sub-tables of the architecture, the pipeline stages of the design and a parameter that adjusts the size of the RAMs in which the architecture will be mapped. The hardware description of the architectures was made in Verilog language. The simulation and the confirmation of their correct operation was done by ModelSim tool of Mentor Graphics. The verification of the results was made possible with the development of testbenches, also described in Verilog HDL. The implementation of the very designs was made with the use of the Xilinx Vivado Design Suite. The implementation took place for the purpose of conducting experimental measurements over certain metrics. These metrics were the block-RAM (BRAM) utilization of the designs, the maximum frequency (Fmax) that each design can achieve and the resource utilization of the designs, in terms of LUTs and Flip-Flops of the FPGA device. These measurements were extracted by downloading the designs on two different FPGA devices of the Virtex family: VC709 board of the Virtex-7 series and VCU1525 of the Virtex-Ultrascale series. The purpose was to study the behavior of each architecture according to the metrics mentioned previously, as much as to compare the performance of architectures with each other. After examining the results, the conclusion is that both designs, especially the TCAM design, are scalable with respect to all metrics. The BCAM architecture is really suitable for the implementation of small CAM tables and for lightweight applications, considering its low resource utilization. The TCAM architecture is an ideal candidate for large CAM tables and high throughput applications, since even large designs can reach relatively high frequencies. Οι μνήμες που διευθυνσιοδοτούνται από τα περιεχόμενα (Content-Addressable Memories, CAMs) χρησιμοποιούνται ευρέως σε δικτυακές υποδομές (network infrastructures) για την υλοποίηση κρίσιμων λειτουργιών αναζήτησης (search functions). Τα τελευταία χρόνια υπάρχει ένα εξαιρετικά αυξανόμενο ενδιαφέρον για την υλοποίηση μνήμων Ternary CAM (TCAM) σε τεχνολογία FPGA. Όμως, οι περισσότερες υλοποιήσεις που έχουν προταθεί δεν εκμεταλλεύονται αποδοτικά τα πλεονεκτήματα της τεχνολογίας FPGA με αποτέλεσμα να χαρακτηρίζονται από μη αποδοτική εκμετάλλευση των διαθέσιμων υπολογιστικών πόρων και από σχετικά μικρούς ρυθμούς επεξεργασίας (throughput). Αποτέλεσμα αυτού είναι οι υπάρχουσες υλοποιήσεις να υποστηρίζουν μικρά μεγέθη μνημών TCAM ακόμη και σε μεγάλες συσκευές (devices) FPGA. Αντικείμενο της διπλωματικής εργασίας είναι η διερεύνηση και ανάπτυξη κατάλληλων αρχιτεκτονικών για την υλοποίηση μνήμων TCAM σε τεχνολογία FPGA και η υλοποίηση τους στην άνω τεχνολογία, οι οποίες: α) θα λαμβάνουν υπόψη και θα εκμεταλλεύονται τα ιδιαίτερα χαρακτηριστικά της συγκεκριμένης τεχνολογίας, β) θα χαρακτηρίζονται από υψηλούς ρυθμούς επεξεργασίας και αποδοτική χρήση των διαθέσιμων υπολογιστικών πόρων και γ) θα είναι εύκολα επεκτάσιμες (scalable) ώστε να είναι δυνατή η αποδοτική υλοποίηση μνήμων TCAM μεγάλου μεγέθους. Στην παρούσα διπλωματική εργασία, αναπτύσσεται ο σχεδιασμός δύο αρχιτεκτονικών CAM. Αυτές οι αρχιτεκτονικές, συγκεκριμένα, είναι μία Binary CAM (BCAM) που υλοποιείται με τη με τη μέθοδο της ιεραρχικής σχεδίασης, και μια Ternary CAM (TCAM), η οποία υλοποιείται με τη μέθοδο της κατάτμησης του ολόκληρου πίνακα CAM σε μικρότερους υποπίνακες. Ο σκοπός ήταν τόσο η αξιοποίηση των block-RAM (BRAMs) συγκεκριμένων συσκευών FPGA ώστε να αυτές να μπορούν να εξομοιώσουν πίνακες CAM, όσο και η διερεύνηση των ανεπτυγμένων σχεδιασμός ώστε να ελεγχθεί σε ποιο βαθμό είναι αποδοτικοί. Για κάθε μία από τις δύο αρχιτεκτονικές, υλοποιήθηκε ένας βασικός σχεδιασμός. Αυτός ο σχεδιασμός ήταν παραμετρικός, με τις παραμέτρους να είναι διαφορετικές για κάθε αρχιτεκτονική. Για την BCAM ιεραρχικής αναζήτησης, οι παράμετροι της υλοποίησης ήταν το μέγεθος της μνήμης CAM (CAM size), που ουσιαστικά είναι ο αριθμός των εισόδων της μνήμης, και το μέγεθος της εισόδου της μνήμης (pattern width). Για την αρχιτεκτονική TCAM, οι παράμετροι ήταν το μέγεθος της μνήμης CAM (CAM size), το μέγεθος της εισόδου (pattern width), τρεις παράμετροι που ρυθμίζουν τη δομή και το μέγεθος των εσωτερικών υποπινάκων της αρχιτεκτονικής, μια παράμετρος που ρυθμίζει τα στάδια pipeline μεταξύ των υποπινάκων του σχεδιασμού και μια παράμετρος που ρυθμίζει το μέγεθος των μνημών RAM στις οποίες θα χαρτογραφηθεί η αρχιτεκτονική. Η περιγραφή των αρχιτεκτονικών στο υλικό έγινε με τη χρήσης της γλώσσας περιγραφής υλικού (HDL) Verilog. Η προσομοίωση των σχεδιασμών και η διαπίστωση στης ορθής τους λειτουργίας έγινε με τη βοήθεια του εργαλείου ModelSim της Mentor Graphics. Η επαλήθευση των σωστών αποτελεσμάτων έγινε με τη δημιουργία testbenches, τα οποία περιεγράφηκαν, επίσης, σε γλώσσα HDL Verilog. Η υλοποίηση των συγκεκριμένων σχεδιασμών έγινε με τη χρήση του Vivado Design Suite της εταιρίας Xilinx. Η υλοποίηση έγινε με το σκοπό να παρθούν πειραματικές μετρήσεις σε σχέση με ορισμένες μετρικές. Οι μετρικές αυτές ήταν: ο αριθμός των block-RAM (BRAMs) του FPGA που χρησιμοποιεί η κάθε σχεδίαση, η μέγιστη συχνότητα λειτουργίας (Fmax) κάθε σχεδίασης, καθώς και η χρήση των διαθέσιμων πόρων του FPGA, οι οποίοι μεταφράζονται σε LUTs και Flip-Flops που καταναλώνει κάθε σχεδιασμός. Αυτές οι μετρήσεις εξήχθησαν με το «κατέβασμα» (downloading) των σχεδιασμών σε δύο διαφορετικές συσκευές FPGA της οικογένειας Virtex: τη συσκευή VC709 της σειράς Virtex-7 και τη συσκευή VCU1525 της σειράς Virtex-Ultrascale. Ο σκοπός τόσο ήταν η μελέτη της συμπεριφοράς της κάθε αρχιτεκτονικής ξεχωριστά σύμφωνα με τις μετρικές που αναφέρθηκαν προηγουμένως, όσο και η σύγκριση των αποδόσεων των δύο αρχιτεκτονικών μεταξύ τους. Μετά τον έλεγχο των αποτελεσμάτων, το συμπέρασμα είναι ότι και οι δύο σχεδιασμοί, ειδικότερα η αρχιτεκτονική TCAM, είναι επεκτάσιμες σε σχέση με όλες τις μετρικές. Η αρχιτεκτονική BCAM είναι πραγματικά κατάλληλη για την υλοποίηση μικρών πινάκων CAM και για εφαρμογές χαμηλής πολυπλοκότητας, λαμβάνοντας υπόψη τη χαμηλή κατανάλωση υλικού. Η αρχιτεκτονική TCAM είναι ιδανικός υποψήφιος για την υλοποίηση πινάκων CAM μεγάλου μεγέθους και εφαρμογών που απαιτούν υψηλή ρυθμαπόδοση (throughput), καθώς ακόμα και μεγάλα designs αυτής της αρχιτεκτονικής μπορούν να φτάσουν υψηλές συχνότητες λειτουργίας. 2022-02-25T07:31:19Z 2022-02-25T07:31:19Z 2022-02-22 http://hdl.handle.net/10889/15823 en application/pdf