Τις τελευταίες δεκαετίες έχει παρατηρηθεί αλματώδης αύξηση της παραγωγής
ενσωματωμένων συστημάτων. Τα ενσωματωμένα συστήματα παίζουν πλέον
κυρίαρχο ρόλο σε πάρα πολλούς τομείς της τεχνολογίας και της βιομηχανίας. Το
γεγονός αυτό κάνει επιτακτική την ανάγκη ύπαρξης μεθόδων που διευκολύνουν και
επιταχύνουν τη σχεδίαση των ενσωματωμένων συστημάτων αλλά και τον έλεγχο της
επίδοσης τους από τα πρώτα στάδια σχεδίασης.
Σε αυτή τη διπλωματική εργασία αναπτύσσεται μία μεθοδολογία που στοχεύει
στη πολύ γρήγορη αλλά και με καλή ακρίβεια εκτίμηση της επίδοσης
ενσωματωμένων συστημάτων. H νέα μεθοδολογία στηρίζεται στην μελέτη των Ν.
Κρούπη και Δ. Σούντρη [1], οι οποίοι απέδειξαν πειραματικά ότι ο πηγαίος κώδικας
μίας εφαρμογής μπορεί να μας δώσει χρήσιμη πληροφορία για την επίδοση του
κώδικα μηχανής της εφαρμογής.
Στη νέα μεθοδολογία η εφαρμογή εκτελείται άμεσα σε οποιονδήποτε διαθέσιμο
υπολογιστή και λαμβάνονται στατιστικά για την εκτέλεση σε επίπεδο πηγαίου
κώδικα. Στη συνέχεια κάθε εντολή του κώδικα μηχανής αντιστοιχίζεται με τη
προέλευσή της στον πηγαίο κώδικα με χρήση των πληροφοριών αποσφαλμάτωσης
που παράγονται από τον μεταγλωττιστή σε μορφή DWARF [2]. Έτσι γίνεται και
εκτίμηση του πλήθους των εκτελέσεών της. Τέλος, γίνεται στατική ανάλυση του
χαρακτηρισμένου κώδικα μηχανής και εξάγονται συμπεράσματα για την επίδοση της
κρυφής μνήμης εντολών.
Η μεθοδολογία υλοποιήθηκε με την ανάπτυξη ενός συνόλου εργαλείων
λογισμικού συμβατών με όλες τις αρχιτεκτονικές που υποστηρίζει ο GNU Compiler
[3]. Η ταχύτητα και η ακρίβεια των νέων εργαλείων εξετάστηκε με μία σειρά
διεξοδικών πειραμάτων τα οποία έδειξαν ότι η διαδικασία εκτίμησης είναι έως και
20000 φορές ταχύτερη από τις σύγχρονες μεθόδους προσομοίωσης ενώ η μέση τιμή
σφάλματος διατηρείται σε πολύ χαμηλά επίπεδα (2,1%).
In the last decades, the production of embedded systems has been raised greatly.
Nowadays, embedded systems play a very significant role in the majority of
technological and industrial fields. For this reason, it is absolutely necessary new
techniques to be created in order to facilitate both the design procedure and the
performance evaluation of embedded systems from the very early design stages.
The scope of this diploma thesis is the development of a methodology that
manages to make performance estimations for embedded systems very fast but also
with good accuracy. The new methodology is based on the work of N. Kroupis and
D. Soudris [1] which has shown that the source code of an application can give us
useful information about the performance of the machine code.
In the new methodology, the application is executed natively in a host machine
and statistics are collected for the execution at the source code level. Then, each
machine instruction is mapped to its origin in the source code using the debugging
information generated by the compiler in DWARF format [2]. In this way the number
of executions of the instruction can also be calculated. Finally, the characterized
machine code is statically analysed in order to make estimation for the instruction
cache memory performance.
A set of new software tools implementing the methodology has been developed.
The new tools are fully compatible with all the architectures supported by the GNU
Compiler [3]. The time consumption and the accuracy of the new tools have been
evaluated by conducting a thorough set of experiments. The experimental results
showed that the tools can achieve high accuracy (average error 2.1%) and a speedup
factor up to 20000 with reference to modern simulation methods.