Σχεδιασμός Αρχιτεκτονικών και απεικόνιση εφαρμογών σε Επαναδιαμορφούμενες πλατφόρμες με εργαλεία λογισμικού. - Σιδηρόπουλος, Χαράλαμπος (Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών, 2016)
Τα τελευταία χρόνια, οι επαναδιαμορφούμενες αρχιτεκτονικές και πιο συγκεκριμένα τα 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 μπορεί να γίνεται κατά τον χρόνο εκτέλεσης ακόμα και σε ενσωματωμένα συστήματα.