Περίληψη |
Οι Διατάξεις Προγραμματιζόμενης Λογικής (Field Programmable Gate Arrays -
FPGAs) έχουν αυξανόμενο αντίκτυπο σε όλο και περισσότερες εφαρμογές, από τα
νευρωνικά δίκτυα (Deep Neural Networks) έως επεκτάσεις του ρεπερτορίου εντολών
(Instruction Set Extensions) σε στενώς συνεζευγμένα συστήματα με ενσωματωμένες
FPGAs (eFPGAs). Καθώς οι εφαρμογές αποκλίνουν στην πολυπλοκότητα, τις επιδόσεις,
τις ανάγκες μνήμης και τους περιορισμούς σε έκταση, υπάρχει ανάγκη για ένα ευρύτερο
φάσμα αρχιτεκτονικών FPGA. Ωστόσο, η ανάπτυξη και υλοποίηση των αρχιτεκτονικών
αυτών παραμένει δύσκολη και απαιτεί πολύ χρόνο, λόγω των υψηλών απαιτήσεών τους
σε ειδικευμένες σχεδιάσεις (custom layout) και της ανάγκης ανάπτυξης λογισμικού
προσαρμοσμένου για τον προγραμματισμό κάθε αρχιτεκτονικής, οδηγώντας στην
παραγωγή προϊόντων πιο γενικού σκοπού.
Πολλές ακαδημαϊκές εργασίες επικεντρώνονται στην αυτοματοποιημένη
διαδικασία παραγωγής αρχιτεκτονικών FPGA, σε μια προσπάθεια να προωθηθεί η
εξατομίκευση και να μειωθεί η χρονική περίοδος μέχρι την αγορά. Σε άλλες
προσεγγίσεις, οι ερευνητές στοχεύουν στη διαδικασία εξερεύνησης, στην οποία
αναζητούν τη βέλτιστη αρχιτεκτονική για ένα συγκεκριμένο σενάριο, χρησιμοποιώντας
μοντέλα εκτιμήσεων μεγέθους και καθυστέρησης.
Στην εργασία αυτή επιλέγουμε να συνδυάσουμε τις δύο αυτές προσεγγίσεις.
Αναπτύσσουμε μια επέκταση για το δημοφιλές εργαλείο ανοιχτού κώδικα Verilog-toRouting (VTR) προκειμένου να εξάγουμε σε Verilog την αναπαράσταση των
αρχιτεκτονικών FPGA που έχουν οριστεί από τον χρήστη, να υποστηρίξουμε ζητούμενες
μονάδες ειδικού σκοπού (hard blocks - RAMs, DSPs, FP Units) και να παράξουμε αρχεία
προγραμματισμού της FPGA (Bitstreams) για δοθέντα benchmarks. Στόχος μας είναι να
δημιουργήσουμε συνθέσιμο κώδικα RTL ανεξάρτητο από τεχνολογία, ικανό να συντεθεί
με οποιαδήποτε βιβλιοθήκη Standard Cells. Ανακαλύπτουμε τις πραγματικές
σχεδιαστικές ιδιότητες μιας αρχιτεκτονικής FPGA χρησιμοποιώντας μια προτεινόμενη
ροή σχεδιασμού υλικού (ASIC flow) και ανακτούμε πραγματικές μετρήσεις μεγέθους και
καθυστέρησης και τελικά προχωρούμε στην εξερεύνηση των βέλτιστων αρχιτεκτονικών
FPGA για συγκεκριμένα σύνολα από benchmakrs.
Χρησιμοποιώντας την επέκτασή μας, εξερευνούμε το χώρο σχεδιασμού των FPGA
για ένα σύνολο από benchmakrs υψηλών επιδόσεων που εξάγονται από την πλατφόρμα
High Level Synthesis (HLS) της Xilinx. Η εξερεύνηση μας αρχίζει με τον εντοπισμό των
βέλτιστων αρχιτεκτονικών FPGA, ξεκινώντας από το μέγεθος των προγραμματιζόμενων
πυλών (Lookup Tables - LUTs) και τον αριθμό τους ανά ομάδα (Configurable Logic Block -
CLB) και έπειτα εξετάζοντας το μέγεθος και μήκος των καναλιών διασύνδεσης τους.
Συγκρίνουμε επίσης τις βέλτιστες αρχιτεκτονικές FPGA που προκύπτουν κατά τη χρήση
των benchmakrs υψηλών επιδόσεων με τις αντίστοιχες αρχιτεκτονικές που προκύπτουν
όταν χρησιμοποιούμε τα MCNC benchmarks γενικού σκοπού.
Τέλος, δημιουργούμε σύνολα εντολών TCL για τη σύνθεση και την υλοποίηση της
τοποθέτησης και διασύνδεσης (place and route) που μπορούν να προσαρμοστούν σε
οποιοδήποτε μέγεθος και χαρακτηριστικό αρχιτεκτονικής και να αυτοματοποιήσουν τη
ροή ASIC για νέα τσιπ FPGA
|