Σχεδιασμός αρχιτεκτονικών και απεικόνιση εφαρμογών σε επαναδιαμορφούμενες πλατφόρμες με εργαλεία λογισμικού
Authors: Σιδηρόπουλος Χαράλαμπος 
Published: September 2021

Τα τελευταία χρόνια, οι επαναδιαμορφούμενες αρχιτεκτονικές και πιο συγκεκριμένα τα Field Programmable Gate Arrays (FPGAs) έχουν γίνει βιώσιμες εναλλακτικές λύσεις στην θέση των Application Specific Integrated Circuits (ASICs). Το χαρακτηριστικό της τεχνολογίας των FPGAs είναι ότι υποστηρίζουν υλοποίηση εφαρμογών μέσω της κατάλληλης (επανα)διαμόρφωσης της λειτουργικότητας των πόρων υλικού. Αυτό επιτρέπει στα FPGAs να παρέχουν μεγαλύτερη ευελιξία, να βοηθούν στην ταχεία κατασκευή πρωτοτύπων για προϊόντα και να μειώνουν σημαντικά τα non-recurring engineering (NRE) κόστη, σε σύγκριση με τις ASIC Συσκευές.Τα χαρακτηριστικά και οι δυνατότητες των αρχιτεκτονικών αυτών έχουν αλλάξει και έχουν βελτιωθεί σημαντικά τις τελευταίες δύο δεκαετίες. Από συστοιχίες Look-Up tables (LUT), έχουμε φτάσει σε ετερογενείς συσκευές που ενσωματώνουν μια σειρά από στοιχεία υλικού (π.χ., LUTs με διαφορετικά μεγέθη, μικροεπεξεργαστές, DSP και RAM μπλοκ κλπ.). Η λογική δομή ενός FPGA έχει αλλάξει σταδιακά από μια ομοιογενή και τακτική αρχιτεκτονική σε μια ετερογενή System on Chip (SoC) συσκευή. Η πολυπλοκότητα των σημερινών εφαρμογών εισάγει συνήθως περιορισμούς στην αρχιτεκτονική οργάνωση των FPGA. Ακόμη και αν η ζήτηση για επιπλέον πόρους λογικής ικανοποιείται με πλατφόρμες που αποτελούνται από πιο πολύπλοκα λογικά μπλοκ, ή CLBs, (π.χ. με περισσότερα LUTs), το πρόβλημα αυτό εξακολουθεί να υφίσταται με τις πιο απαιτητικές σε θέμα επικοινωνίας εφαρμογές (π.χ. τηλεπικοινωνίες, κρυπτογράφηση και την επεξεργασία εικόνας, βίντεο), δεδομένου ότι η απόδοσή τους εξαρτάται συνήθως από τη διαθεσιμότητα σε I/O bandwidth.H παρούσα διδακτορική διατριβή διερευνεί τις προκλήσεις και προτείνει νέες λύσεις στο πεδίο της απεικόνισης (mapping) μιας εφαρμογής σε Field Programmable Gate Arrays. Ο στόχος είναι να σκιαγραφηθούν και να αναλυθούν, τα εμπόδια που περιορίζουν την αποδοτικότητα της διαδικασίας απεικόνισης και να προταθούν νέες λύσεις με στόχο την αύξησή της. Προς αυτόν τον στόχο αναπτύχθηκε μια καινοτόμα μεθοδολογία η οποία επιτρέπει την ταχεία διερεύνηση σε επίπεδο αρχιτεκτονικής διαφορετικών οργανώσεων και ιεραρχιών μνήμης, σε ετερογενή FPGAs. Παράλληλα με την μεθοδολογία αναπτύχθηκε και ένα λογισμικό πλαίσιο που υποστηρίζει την απεικόνιση μιας εφαρμογής πάνω στις προαναφερθείσες αρχιτεκτονικές. Το προτεινόμενο πλαίσιο επιτρέπει την διερεύνηση ιεραρχιών οποιουδήποτε τύπου αρχιτεκτονικού μπλοκ, όχι μόνο μνημών. Πάνω στο θέμα των αρχιτεκτονικών, για την άμβλυνση του προβλήματος του I/O bandwidth που εμφανίζεται σε πιο πολύπλοκες εφαρμογές και για την αύξηση των επιδόσεων γενικά προτάθηκε ένα νέο τριδιάστατο αρχιτεκτονικό πρότυπο FPGA. Η τριδιάστατη αυτή αρχιτεκτονική αποτελείται από ετερογενή στρώματα, σε αντίθεση με προηγούμενες προσεγγίσεις όπου κάθε στρώμα είναι αντίγραφο του προηγουμένου.Το case study που χρησιμοποιείται αποτελείται από τρία στρώματα, σε καθένα εκ των οποίων τοποθετείται ξεχωριστά η λογική, η μνήμη, και τα I/O μπλοκ. Η επιλογή τριών στρωμάτων με τα συγκεκριμένα αρχιτεκτονικά στοιχεία δεν περιορίζει την γενικότητα της προτεινόμενης λύσης. Επιπρόσθετα αναπτύχθηκε το κατάλληλο λογισμικό πλαίσιο που υποστηρίζει την διερεύνηση τέτοιων αρχιτεκτονικών και την απεικόνιση εφαρμογών πάνω σε τέτοιες επαναδιαμορφούμενες αρχιτεκτονικές.Εκτός από τις γνωστές προκλήσεις στο φυσικό επίπεδο που οφείλονται στην συρρίκνωση των τρανζίστορ, η αυξημένη πολυπλοκότητα των εφαρμογών αλλά και της αρχιτεκτονικής των FPGAs, καθιστά την αποτελεσματικότητα και την αποδοτικότητα των CAD εργαλείων που χρησιμοποιούνται ακόμη πιο κρίσιμες. Οι τεχνικές που επιταχύνουν τους βασικούς αλγόριθμους CAD μπορούν να επιφέρουν σημαντικές αλλαγές στο χρόνο σχεδιασμού ενός προϊόντος, ενώ πολλοί σχεδιαστές μπορεί να είναι πρόθυμοι να δεχτούν μικρή υποβάθμιση στην ποιότητα της λύσης με αντάλλαγμα ένα βελτιωμένο χρόνο εκτέλεσης των εργαλείων CAD. Προκειμένου να ενταχθούν αποτελεσματικά σε αυτό το νέο τοπίο, τα FPGAs πρέπει να υποστηρίζουν ταχεία ανάπτυξη και απεικόνιση εφαρμογών. Η βιομηχανία έχει κάνει βήματα για την ταχύτερη ανάπτυξη εφαρμογών, εξερευνώντας ποικίλες λύσεις, όπως High Level Synthesis (HLS). Τα FPGAs έχουν διερευνηθεί ως μια βιώσιμη πλατφόρμα για διάφορες εφαρμογές High Performance Computing (HPC) και ενσωματωμένων συστημάτων κυρίως λόγω του εγγενούς παραλληλισμού και της δυνατότητας επαναπρογραμματισμού που μπορεί να εφαρμοστεί είτε στο σχεδιασμό ή το χρόνο εκτέλεσης.Για την αντιμετώπιση αυτών των περιορισμών σε αυτή την διδακτορική διατριβή εισάγεται μια νέα μεθοδολογία που έχει ως στόχο την ταχεία απεικόνιση εφαρμογών σε FPGAs. Ο στόχος αυτής της προσέγγισης είναι να μειωθεί σημαντικά ο χρόνος εκτέλεσης χωρίς ταυτόχρονα να υποβαθμιστούν σημαντικά οι επιδόσεις της εφαρμογής. Για τον ίδιο σκοπό, αναπτύχθηκε μια μεθοδολογία cloud και το αντίστοιχο λογισμικό πλαίσιο προκειμένου να καταστεί δυνατή η αποτελεσματική απεικόνιση πολλαπλών εφαρμογών κατά το χρόνο εκτέλεσης σε ένα ή περισσότερα FPGAs. Η προτεινόμενη λύση άρει τα προαναφερθέντα προβλήματα προσφέροντας γρήγορους χρόνους εκτέλεσης και επιτρέποντας να κλιμακωθεί η διαδικασία της απεικόνισης σε πολλούς πυρήνες.Προκειμένου να αξιοποιηθούν τα FPGAs σε ένα δυναμικό περιβάλλον προτάθηκε μια νέα μεθοδολογία και τα απαραίτητα εργαλεία που επιτρέπουν την αποδοτική απεικόνιση πολλαπλών εφαρμογών σε ετερογενή FPGAs. Με τη χρήση δυναμικών εικονικών πυρήνων, προσαρμοσμένων κατανεμητών μνήμης και βελτιστοποιήσεις στην διαχείριση μνήμης, ξεπεράστηκαν οι περιορισμοί που επιβάλλονται από τα CAD εργαλεία και αποδείχτηκε θεωρητικά ότι η απεικόνιση εφαρμογών σε FPGAs μπορεί να γίνεται κατά τον χρόνο εκτέλεσης ακόμα και σε ενσωματωμένα συστήματα.