ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων. Βιβλιογραφία Ενότητας



Σχετικά έγγραφα
Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Παραλληλισµός Εντολών (Pipelining)

Αρχιτεκτονική Μνήµης

Αρχιτεκτονική Μνήμης

Εισαγωγή στα Συστήματα Ψηφιακής Επεξεργασίας Σήματος

Κεφάλαιο 7 : Είδη, Τεχνικές, και Περιβάλλοντα Προγραµµατισµού

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

ΠΕΡΙΕΧΟΜΕΝΑ Υλικό και Λογισμικό Αρχιτεκτονική Υπολογιστών Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εντολές γλώσσας μηχανής

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

Βέλτιστα Ψηφιακά Φίλτρα: Φίλτρα Wiener, Ευθεία και αντίστροφη γραµµική πρόβλεψη

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Αρχιτεκτονική Υπολογιστών

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ, 5 ο εξάµηνο

ILP (integer linear programming) βασιζόμενη εξαρτώμενη από τους πόρους μεταγλώττιση

Άρα, Τ ser = (A 0 +B 0 +B 0 +A 0 ) επίπεδο 0 + (A 1 +B 1 +A 1 ) επίπεδο 1 + +(B 5 ) επίπεδο 5 = 25[χρονικές µονάδες]

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

Καλαντζόπουλος Αθανάσιος

Εισαγωγή στα Προσαρµοστικά Συστήµατα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Προγραμματισμός Ι (HY120)

Σελίδα 1 από 12. Απαντήσεις στο φυλλάδιο 55. Ερώτηση 1 η : Ένα υπολογιστικό σύστηµα αποτελείται από:

ΘΕΜΑ PROJECT COMPILER FLAGS ΤΡΑΧΑΝΗΣ ΔΗΜΗΤΡΗΣ 6108 ΤΡΑΧΑΝΗΣ ΓΕΩΡΓΙΟΣ 5789

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)

Αρχιτεκτονικη υπολογιστων

Ειδική Επιστημονική Εργασία. Σχεδίαση και υλοποίηση Θέσεως Εργασίας ενός Εργαστηρίου DSPs από Απόσταση για Λήψη και Επεξεργασία Εικόνας

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική Μικροεπεξεργαστών MIPS-32. Αρχείο καταχωρητών και Χάρτης Μνήµης

1 η Ενδιάμεση Εξέταση Απαντήσεις/Λύσεις

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

Προγραµµατισµός ΙΙ. Ηγλώσσααντικειµενοστραφούς. ιδάσκων ηµήτριος Κατσαρός, Τµ. Μηχανικών Η/Υ, Τηλεπικοινωνιών & ικτύων Πανεπιστήµιο Θεσσαλίας

Ακαδημαϊκό Έτος , Εαρινό Εξάμηνο Διδάσκων Καθ.: Νίκος Τσαπατσούλης

Βασική δοµή και Λειτουργία Υπολογιστή

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Εργασία στο µάθηµα Ανάλυση εδοµένων

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 10: Επίδοση Επεξεργαστών, CPI. Μανόλης Γ.Η. Κατεβαίνης

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Καταστάσεων. Καταστάσεων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

Δεδομένα & Αναπαράσταση Πληροφορίας

ΥΠΗΡΕΣΙΑ ΕΙΚΟΝΙΚΟΥ ΕΡΓΑΣΤΗΡΙΟΥ ΣΧΕ ΙΑΣΜΟΥ

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Θέµατα Φεβρουαρίου

ΠΡΟΓΡΑΜΜΑ ΣΠΟΥ ΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Λογισµικό (Software SW) Γλώσσες

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 1. Χειμερινό Εξάμηνο

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

ΗΜΥ 213 Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

Δομημένος Προγραμματισμός

Πανεπιστήµιο Θεσσαλίας

Οργάνωση Η/Υ. Γιώργος ηµητρίου. Μάθηµα 6 ο. Πανεπιστήµιο Θεσσαλίας - Τµήµα Μηχανικών Η/Υ, Τηλεπικοινωνιών και ικτύων

Προγραμματισμός Υπολογιστών

Κεντρική Μονάδα Επεξεργασίας

Εικονική Μνήµη. Κεφάλαιο 8. Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

E mail:

ΕΡΓΑΣΤΗΡΙΟ 1 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία ιάλεξη 5

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. (συνέχεια) Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

ΣΤΟΧΟΙ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΠΕΡΙΕΧΟΜΕΝΟ

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Εισαγωγή στην Επιστήμη των Υπολογιστών

Αντικειµενοστρεφής Προγραµµατισµός

Αρχιτεκτονική Υπολογιστών

και η µονάδα ελέγχου (control) O επεξεργαστής: Η δίοδος δεδοµένων (datapath) Εντολές διακλάδωσης (branch beq, bne) I Type Σχεδίαση datapath

Προγραµµατισµός Ι (ΗΥ120)

Διοίκηση Ολικής Ποιότητας ΔΙΑΛΕΞΗ 8 η : Στατιστικός Έλεγχος Ποιότητας. Δρ. Α. Στεφανή Τμήμα Διοίκησης Επιχειρήσεων ΤΕΙ Δυτικής Ελλάδας - Μεσολόγγι

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

ΕΙΣΑΓΩΓΗ ΣΤΟ MATLAB- SIMULINK

Θέματα Μεταγλωττιστών

Επεξεργαστής Υλοποίηση ενός κύκλου μηχανής

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ, ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ

Τεχνικός Εφαρμογών Πληροφορικής

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

ΗΜΥ 100 Εισαγωγή στην Τεχνολογία Διάλεξη 9

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Αρχιτεκτονική Υπολογιστών

ΕΙΔΗ,ΤΕΧΝΙΚΕΣ ΚΑΙ ΠΕΡΙΒΑΛΛΟΝΤΑ ΠΡΟΓΡΑΜΜΑΤΙ- ΣΜΟΥ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

Ε-85: Ειδικά Θέµατα Λογισµικού

Δομημένος Προγραμματισμός

Υλοποιήσεις Ψηφιακών Φίλτρων

Εργαλεία Προγραμματισμού Ψηφιακής Επεξεργασίας Εικόνας: Το Matlab Image Processing Toolbox

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Chapter 3. Αριθμητική Υπολογιστών. (συνέχεια)

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Ασκήσεις 5: Εντολές Συγκρίσεων και Μεταφοράς Ελέγχου. Μανόλης Γ.Η.

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Λογισµικό απαραίτητο για τη διαχείριση... ενός δικτύου. ιευκολύνουν την επικοινωνία ανάµεσα σε... δίκτυα "από τη µια άκρη της Γης στην άλλη"...

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

Transcript:

ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Βελτιστοποίηση κώδικα σε επεξεργαστές ΨΕΣ Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 7 Chassaing [2005]: Chapter 8 Kuo [2005]: Chapter 4, Section 4.4, Chapter 5, Section 5.3 TMS320C6000 Programmer's Guide Code Composer Studio Tutorial TMS320C6000 CPU and Instruction Set Reference Guide 1

Εισαγωγή Η ιδιοµορφία της αρχιτεκτονικής των επεξεργαστών Ψ.Ε.Σ συνεπάγεται ότι η βέλτιστη αποτελεσµατικότητα (µεγαλύτερη ταχύτητα εκτέλεσης προγράµµατος ώστε να µπορούν να υποστηριχθούν εφαρµογές επεξεργασίας σήµατος σε πραγµατικό χρόνο real time signal processing ) επιτυγχάνεται µε προγραµµατισµό σεassembly. υστυχώς ο προγραµµατισµός σε ASSEMBLY είναι και χρονοβόρος αλλά και επιρρεπής σε σφάλµατα. Για το σκοπό αυτό έχουν αναπτυχθεί εργαλεία βελτιστοποίησης κώδικα (code optimization) γραµµένου είτε σε γλώσσα C είτε σε γραµµική ASSEMBLY (δηλαδή ASSEMBLΥ η οποία δεν λαµβάνει υπόψη τη συγκεκριµένη αρχιτεκτονική του επεξεργαστή τον οποίο θέλουµε να προγραµµατίσουµε) Παρά τα ανωτέρω είναι πιθανόν σε κάποιες περιπτώσεις να χρειαστεί προγραµµατισµός σε καθαρή ASSEMBLY ώστε να βελτιωθούν κάποια χρονοβόρα τµήµατα κώδικα. Για το σκοπό αυτό πρέπει να υπάρχει αναλυτική γνώση τόσο των εντολών που υποστηρίζονται από το συγκεκριµένο επεξεργαστή όσο και της αρχιτεκτονικής του Ανάπτυξη εφαρµογών σε Η διαδικασία ανάπτυξης εφαρµογών σε επεξεργαστές Ψ.Ε.Σ περιλαµβάνει µια σειρά από βήµαταταοποίαεµπλέκουν µια σειρά εργαλείων. Στη πρώτη φάση έχουµεεπαλήθευσητης πρωτότυπης εφαρµογής σε µια πλατφόρµα ταχείας πρωτοτυποποίησης (π.χ. Matlab). Στη συνέχεια ακολουθείται το διάγραµµα ροής του διπλανού σχήµατος, δηλαδή: Ανάπτυξη κώδικα σε C χωρίς να λαµβάνεται υπόψη καµία ιδιοµορφία του επεξεργαστή. ΟκώδικαςC µπορεί να δηµιουργηθεί χρησιµοποιώντας το SIMULINK και το Real Time Workshop Βελτιστοποίηση κώδικα C χρησιµοποιώντας εργαλεία όπως το Profile του Code Composer Studio. Ανηφάσηαυτήδεν οδηγήσει στο απαιτούµενο αποτέλεσµα τότε προχωράµε σε αναγνώριση των κρισίµων τµηµάτων κώδικα τα οποία και κωδικοποιούµε µεγραµµική ASSEMBLY. Βελτιστοποίηση του κώδικα ASSEMBLY, δηλαδή µετατροπή της γραµµικής ASSEMBLY σε προσαρµοσµένη στο συγκεκριµένο επεξεργαστή ASSEMBLY. Κωδικοποίηση µε καθαρή ASSEMBLY, τµηµάτων κώδικα που εξακολουθούν να εκτελούνται αργά. 2

Βελτιστοποίηση κώδικα C Η βελτιστοποίηση κώδικα απαιτεί την πραγµατοποίηση συγκρίσεων (benchmarking) για διάφορες / διάφορους: Μορφές κώδικα (C, γραµµική ASSEMBLY, καθαρή ASSEMBLY) Ρυθµίσεις του compiler Τύπουςδεδοµένων προγράµµατος (π.χ. short, double) Κατηγορίες εντολών (fixed-point, floatingpoint) Τοβασικόεργαλείογιατην πραγµατοποίηση συγκρίσεων είναι το εργαλείο Profile του Code Composer Studio Επιλέγουµε τις συναρτήσεις που θέλουµε να παρακολουθήσουµε και να συγκρίνουµε την επίδοση τους (κύκλοι ρολογιού) για τις διάφορες επιλογές, και εκτελούµε το πρόγραµµα µας Βελτιστοποίηση κώδικα C (II) Χρησιµοποιώντας το profile tool βλέπουµε ότιη βασική συνάρτηση main_asm.c εκτελείται σε 264 κύκλους ρολογιού ενώ η συνάρτηση ASSEMBLY sum.asm εκτελείται σε 133 κύκλους ρολογιού Από τα συνολικά στατιστικά βλέπουµε ότι έχουµε 40.81% τουχρόνουτουεπεξεργαστή να δαπανάται σε NOP (No OPeration) εντολές 3

Βελτιστοποίηση κώδικα C (III) Στο παράδειγµα βλέπουµε πως µπορούµε να βελτιστοποιήσουµε την ταχύτητα εκτέλεσης του προγράµµατος main_asm.c χρησιµοποιώντας το optimization tool του compiler Με βελτιστοποίηση σε επίπεδο καταχωρητών (βλέπε επόµενη διαφάνεια) επιτυγχάνεται µείωση των κύκλων ρολογιού για την εκτέλεση της main_asm.c σε λιγότερο από το µισό. Βελτιστοποίηση κώδικα C (IV) Υπάρχουν τέσσερα επίπεδα βελτιστοποίησης -ο0, Register, δηλαδή βελτιστοποίηση χρήσης καταχωρητών -ο1, Local, όπως παραπάνω συν προσπάθεια καλύτερης χρήσιµων των δοµικών µονάδων (.L,.M,.D.,S.) των δύο ΚΜΕ που έχει ο επεξεργαστής -ο2, Function, όπως παραπάνω συν προσπάθεια βελτιστοποίησης κώδικα ASSEMBLY µε software pipelining -ο3, File, όπως παραπάνω συν απαλοιφή µη χρησιµοποιούµενων συναρτήσεων 4

Η επίδραση του τύπου δεδοµένων Η ταχύτητα εκτέλεσης ενός προγράµµατος µειώνεται όταν ο τύπος των δεδοµένων (ή των συντελεστών ενός φίλτρου) είναι κινητής υποδιαστολής. Μικρό κέρδος εκτέλεσης επιτυγχάνεται και µε διαφοροποίηση ανάµεσα στα bit αναπαράστασης σε αριθµούςσταθερήςυποδιαστολής(βλέπε παράδειγµα: short=16bit (half-word), int=32bit (word) Συνδυασµός C και Assembly Σε πολλές περιπτώσεις οι βελτιστοποιήσεις στον κώδικα C δεν είναι επαρκείς και χρειάζεται να πάρουµε την κατάσταση στα χέρια µας: Υπάρχουν τρεις δυνατές επιλογές: Γραµµική ASSEMBLY (αρχεία.sa), ASM εντολές (statements) σε κώδικα C: asm( assembly code ) ΣυναρτήσειςASSEMBLY οι οποίες µπορούν να κληθούν από κώδικα C (Ccallable assembly function (.asm)). Στην περίπτωση αυτή µπορούµε να βελτιστοποιήσουµε συγκεκριµένα κοµµάτια κώδικα εφαρµόζοντας τεχνικές όπως παράλληλη εκτέλεση εντολών και software pipelining 5

Assembly συναρτήσεις καλούµενες από C Τα ορίσµατα των συναρτήσεων µεταφέρονται µέσω των καταχωρητών A4, B4, A6, B6,... µε τη σειρά που δίνεται Το αποτέλεσµα της κλήσης της συνάρτησης επιστρέφεται µέσω του καταχωρητή A4. Η διεύθυνση επιστροφής από τον κώδικα στον οποίο έχει γίνει η κλήση της συνάρτησης δίνεται στον καταχωρητή B3. Οπότε πρέπει να δίνεται µεγάλη προσοχή να µην χρησιµοποιείται για άλλο σκοπό ο Β3 εντός της συνάρτησης ASSEMPLY Ονοµατολογία (βλέπε προηγ. διαφάνεια): Στον κώδικα C: label (η συνάρτηση δηλώνεται ως external) Στον κώδικα ASSEMBLY: _label (η συνάρτηση δηλώνεται ως global) Πρόσβαση σε global µεταβλητές εντός του κώδικα ASSEMBLY:.ref _variablename Σκελετός assembly συναρτήσεων καλούµενων από C Σκελετός assembly συναρτήσεων καλούµενων από C Παράδειγµα assembly συνάρτησης καλούµενης από C 6

Παράλληλη εκτέλεση στις δοµικές µονάδες Εκµεταλλευόµενοι το γεγονός ότι έχουµε 8 ανεξάρτητες µονάδες στον επεξεργαστή µπορούµε να εκτελέσουµε παράλληλα µέχρι και 8 εντολές. Στο επόµενο παράδειγµα οιεντολέςldh και SUB µπορούν να εκτελεστούν παράλληλα (βλέπε ) µεαποτέλεσµα την επιπλέον βελτίωση της ταχύτητας εκτέλεσης σε 116 κύκλους ρολογιού Software Pipelining Η τεχνική software pipelining εφαρµόζεται σε συναρτήσεις ASSEMBLY και προσπαθεί να αναδιατάξει τη σειρά εκτέλεσης των εντολών ώστε να ελαχιστοποιούνται οι εντολές NOP. Στο επόµενο παράδειγµα οιεντολέςsub και Β δεν περιµένουν αποτέλεσµα από την εντολή LDH (σε αντίθεση µε τηνεντολήadd) ούτε επηρεάζουν άµεσα την εντολή ADD, άρα µπορούν να αναδιαταχθούν πριν από αυτή µε χρήση της τεχνικής delayed branch 7

Software Pipelining (ΙΙ) 8