Βελτιστοποίηση και αυτοματοποίηση τεχνικών μεταγλώττισης μέσω μοντελοποίησης σε επαναπροσδιοριζόμενα συστήματα
Authors: Δημητρουλάκος Γρηγόριος 
Published: January 2014

Το αντικείμενο της παρούσας διδακτορικής σχετίζεται με την ανάπτυξη βελτιστοποιητικών τεχνικών μεταγλώττισης για επαναπροσδιοριζόμενα ολοκληρωμένα συστήματα αλλά και για ολοκληρωμένα συστήματα ειδικού σκοπού. Στόχος, είναι η βελτιστοποίηση της εκτέλεσης των εφαρμογών ως προς την ταχύτητα, επιφάνεια ολοκλήρωσης και κατανάλωση ισχύος στα προαναφερόμενα συστήματα. Αυτό επιτυγχάνεται με την εισαγωγή πρωτότυπων τεχνικών μεταγλώττισης αλλά και ανεύρεση βέλτιστων αρχιτεκτονικών. Επιπλέον βασικό στόχος της διατριβής είναι η αυτοματοποίηση των τεχνικών αυτών για τον γρήγορο προσδιορισμό βέλτιστων λύσεων. Η αυτοματοποίηση επιτυγχάνεται με μια σειρά από πρότυπα εργαλεία μεταγλώττισης και αποτίμησης αρχιτεκτονικών. Το πρώτο τμήμα της διατριβής αναφέρεται στην ανάπτυξη και αυτοματοποίηση τεχνικών μεταγλώττισης για επαναπροσδιοριζόμενες αρχιτεκτονικές πίνακα. Οι αρχιτεκτονικές αυτές αποτελούνται από ένα μεγάλο αριθμό επεξεργαστικών στοιχείων τα οποία δουλεύοντας παράλληλα εκμεταλλεύονται την ενδογενή παραλληλία των αλγόριθμων καθιστώντας την εκτέλεση των τελευταίων ταχύτερη. Τα συστήματα αυτά χρησιμοποιούνται ως συνεπεξεργαστές (επιταχυντές) σε ενσωματωμένα συστήματα με σκοπό την επιτάχυνση των εφαρμογών του εκτελούνται σε αυτά. Η βασικές επεξεργαστικές μονάδες στα ενσωματωμένα συστήματα αυτά είναι κατά κανόνα επεξεργαστές γενικού σκοπού. Η μεταγλώττιση εφαρμογών στις επαναπροσδιοριζόμενες αρχιτεκτονικές πίνακα χαρακτηρίζεται από υψηλή πολυπλοκότητα. Ως αποτέλεσμα η πραγματοποίηση της χωρίς κατάλληλα εργαλεία την καθιστά απαγορευτικά χρονοβόρα. Επιπλέον, απαιτούνται ειδικές τεχνικές για να ξεπεραστούν οι παράγοντες που αποτελούν τροχοπέδη στην εκμετάλλευση της επεξεργαστικής ισχύος αυτών των αρχιτεκτονικών. Για την βελτιστοποιημένη μεταγλώττιση σε αυτές τις αρχιτεκτονικές προτάθηκε μια πρωτότυπη αυτοματοποιημένη και επαναστοχεύσιμη μεθοδολογία χαρτογράφησης εφαρμογών. Η αυτοματοποίηση της έγινε με ένα πρότυπο εργαλείο μεταγλώττισης το οποίο στοχεύει σε ένα παραμετρικό πρότυπο αυτού του τύπου αρχιτεκτονικής. Αυτό επέτρεψε την γρήγορη εξερεύνηση του χώρου λύσεων με σκοπό την ανεύρεση βέλτιστών αρχιτεκτονικών ως προς ταχύτητα και επιφάνεια ολοκλήρωσης για διαφορετικές ομάδες αλγορίθμων. Επιπλέον, πραγματοποιήθηκε ενσωμάτωση της επαναπροσδιοριζόμενης αρχιτεκτονικής σε ενσωματωμένα συστήματα με επεξεργαστή γενικού σκοπού αλλά και σε συστήματα με επαναπροσδιοριζόμενα συστήματα λεπτής υφής. Για την μεταγλώττιση εφαρμογών σε αυτά τα συστήματα προτάθηκε μια πρωτότυπη μεθοδολογία διαχωρισμού των κρίσιμων τμημάτων κώδικα με σκοπό την επιτάχυνση τους στην επαναπροσδιοριζόμενη αρχιτεκτονική πίνακα. Και σε αυτή την περίπτωση τα πειράματα έδειξαν σημαντικές βελτιώσεις στην εκτέλεση εφαρμογών από την χρήση της επαναπροσδιοριζόμενης αρχιτεκτονικής πίνακα. Επίσης, αναπτύχθηκε αρχιτεκτονική για την υλοποίηση του ευθύ κυματιδιακού μετασχηματισμού σύμφωνα με το πρότυπο JPEG 2000. Η υλοποίηση του συστήματος περιλαμβάνει την υλοποίηση των ψηφιακών φίλτρων και της αρχιτεκτονικής διασύνδεσης αυτών με τις απαραίτητες μνήμες. Για την διεκπεραίωση των υπολογισμών της αρχιτεκτονικής προτείνεται ένας πρωτότυπος αλγόριθμος χρονοπρογραμματισμού που σκοπό έχει την ελαχιστοποίηση των απαιτήσεων μνήμης και την μεγιστοποίηση της ταχύτητας. Η περιγραφή της αρχιτεκτονικής είναι παραμετρική ώστε να εφαρμόζεται για εικόνες οποιονδήποτε διαστάσεων και για οποιαδήποτε από τα φίλτρα που έχουν προταθεί για την υλοποίησης του διδιάστατου κυματιδιακού μετασχηματισμού για το πρότυπο JPEG 2000. Ο αλγόριθμος χρονοπρογραμματισμού είναι αντιστοίχως επαναστοχεύσιμος ως προς οποιοδήποτε σενάριο αρχιτεκτονικής προέρχεται από αλλαγή των προαναφερθέντων παραμέτρων. Επίσης περιγράφεται η μεθοδολογία μεταγλώττισης που εισήχθη για την βελτιστοποίηση και τον προσδιορισμό της αρχιτεκτονικής μνήμης για το δικτυακό πρότυπο HIPERLAN/2. Η βελτιστοποίηση και η αρχιτεκτονική μνήμης σκοπό έχουν την αποδοτική λειτουργία του προτύπου ως προς ταχύτητα και κατανάλωση ισχύος. Η μεθοδολογία αποτελείται από τρία στάδια. Στο πρώτο γίνεται ανάλυση του κώδικα περιγραφής του δικτυακού προτύπου με ένα πρότυπο εργαλείο ανάλυσης. Σε αυτό το στάδιο προσδιορίζονται τα κρίσιμα ως προς κατανάλωση ισχύος τμήματα του αλγορίθμου Στην συνέχεια εφαρμόστηκε η μεθοδολογία MATISSE, της εταιρίας IMEC, για την βελτιστοποίηση των κρίσιμων τμημάτων, παράγοντας ένα νέο κώδικα βελτιστοποιημένο ως προς την κατανάλωση ισχύος. Στο τρίτο βήμα προσδιορίζεται η αρχιτεκτονική μνήμης σύμφωνα με την βελτιστοποιημένη έκδοση του κώδικα της εφαρμογής. Από την εφαρμογή της μεθοδολογίας προέκυψαν βελτιώσεις έως και 37% ως προς την κατανάλωση ισχύος.