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

Σχετικά έγγραφα
Αρχιτεκτονική Υπολογιστών

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

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

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Παραλληλισμός σε επίπεδο εντολών

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

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 12 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

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

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

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

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

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

Αρχιτεκτονική Υπολογιστών II Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

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

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

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

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

Ανάπτυξη Εφαρμογών σε Προγραμματιστικό Περιβάλλον

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Μεταγλωττιστές. Γιώργος Δημητρίου. Μάθημα 11 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Μέγιστη ροή. Κατευθυνόμενο γράφημα. Συνάρτηση χωρητικότητας. αφετηρίακός κόμβος. τερματικός κόμβος. Ροή δικτύου. με τις ακόλουθες ιδιότητες

Έλεγχος Ταυτοχρονισμού

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής

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

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

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

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

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

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

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

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

Σύνθεση Data Path. ιασύνδεσης. Μονάδες. Αριθµό Μονάδων. Τύπο Μονάδων. Unit Selection Unit Binding. λειτουργιών σε. Μονάδες. Αντιστοίχιση µεταβλητών &

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων:. Πλεξουσάκης

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 2 ο. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

Στο σχήμα 4.1 δίνεται μια μονάδα επεξεργασίας δεδομένων σταθερής υποδιαστολής που εκτελεί κάθε μια από τις κάτωθι εντολές σε όσους κύκλους απαιτείται.

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

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

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

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

ιαµέριση - Partitioning

Επαναληπτικές Διαδικασίες

Διάλεξη 12 Καθυστερήσεις (Stalls)

Επίλυση 1 ης Εργασίας. Παραδόθηκαν: 11/12 15%

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

9. Συστολικές Συστοιχίες Επεξεργαστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

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

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

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

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 4 ο ΜΕΔ πολλαπλών κύκλων

Εργαστήριο Δομής και Λειτουργίας Μικροϋπολογιστών. Βοήθημα εκτέλεσης εργαστηριακής άσκησης 5: Εξωτερικές διακοπές του 8051

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

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

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

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

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

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

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

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

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

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

8. Παράλληλη εκτέλεση βρόχων

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 2 η : Στοιχεία Αρχιτεκτονικής Υπολογιστών. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

Κεφάλαιο 3. Διδακτικοί Στόχοι

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

Επίλυση Προβλημάτων 1

Εισαγωγή στον Προγραμματισμό

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

Ένα αφαιρετικό πραγματικού χρόνου μοντέλο λειτουργικού συστήματος για MPSoC

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

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

Εισαγωγή στους Αλγορίθμους

ΗΥ360 Αρχεία και Βάσεις εδοµένων ιδάσκων: ημήτρης Πλεξουσάκης

2. Τεχνολογία επεξεργαστών

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

ΗΥ425 Αρχιτεκτονική Υπολογιστών. Static Scheduling. Βασίλης Παπαευσταθίου Ιάκωβος Μαυροειδής

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Transcript:

Γιώργος Δημητρίου Ενότητα 9 η : Θέματα Δρομολόγησης Εντολών

ILP Παραλληλισμός επιπέδου εντολής Εξαρτήσεις δεδομένων Εξαρτήσεις ελέγχου (διαδικασιακές) Με διαθέσιμους πόρους, οι εντολές μπορούν να εκτελεστούν στο μέγιστο βαθμό παραλληλισμού, όσο το επιτρέπουν οι εξαρτήσεις Αρκεί να επιτύχουμε βέλτιστη δρομολόγηση, στατικά ή δυναμικά ή σε συνδυασμό των δύο

Στατική Δρομολόγηση Εντολών Έστω μια αρχιτεκτονική που επιτρέπει πολλαπλές ταυτόχρονες λειτουργίες Πχ VLIW (very-long-instruction-word) Με είσοδο μια λίστα από πόρους (πχ ALU) και καθυστερήσεις ανά πόρο, καθώς και έναν CFG Βρες τη δρομολόγηση εντολών των βασικών ενοτήτων που ελαχιστοποιούν τον αριθμό κύκλων μηχανής στην εκτέλεση του κώδικα

Δρομολόγηση και Καταχωρητές Υψηλότερος βαθμός παραλληλισμού στη δρομολόγηση οδηγεί σε ανάγκη περισσότερων καταχωρητών Μέγιστος βαθμός παραλληλισμού επιτυγχάνεται με τη μορφή SSA Δέσμευση ελάχιστου πλήθους καταχωρητών μειώνει τον παραλληλισμό στην εκτέλεση

Παράδειγμα Με 2 αριθμητικές λειτουργίες ανά κύκλο a = b+c e = a+d a = b-c f = a+d Μετονομασία a a1 = b+c e = a1+d a2 = b-c f = a2+d ALU1 ALU2 ALU1 ALU2 a = b+c e = a+d a = b-c a1 = b+c e = a1+d a2 = b-c f = a2+d f = a+d

Άλλα Παραδείγματα for (i=0; i<n; i++) { t = a[i]+1; b[i] = t*t; } /* no parallelism */ for (i=0; i<n; i++) { t[i] = a[i]+1; b[i] = t[i]*t[i]; } /* All iterations can be executed in parallel */

Κανόνες Δρομολόγησης 1. Να εκτελούνται οι λειτουργίες που πρέπει, σε κάθε μονοπάτι εκτέλεσης Τήρηση εξαρτήσεων ελέγχου Ίσως να επιτρέπονται υποθετικές λειτουργίες 2. Οι λειτουργίες που αλληλεπιδρούν πρέπει να εκτελούνται με την ίδια σειρά Τήρηση εξαρτήσεων δεδομένων 3. Να μην παραβιάζεται η διαθεσιμότητα των πόρων της αρχιτεκτονικής

Εξαρτήσεις Δεδομένων 1. Read-after-Write (ΑΜΕ αληθινή εξάρτηση): Μια ανάγνωση του x πρέπει να ακολουθεί προηγούμενη εγγραφή του x 2. Write-after-Read (ΕΜΑ - αντιεξάρτηση): Μια εγγραφή του x πρέπει να ακολουθεί προηγούμενη ανάγνωση του x 3. Write-after-Write (ΕΜΕ εξάρτηση εξόδου): Οι εγγραφές του x πρέπει να γίνονται με τη σωστή σειρά

Απαλοιφή Εξαρτήσεων Δεδομένων Οι εξαρτήσεις ΑΜΕ δε μπορούν να απαλειφτούν Οι εξαρτήσεις ΕΜΑ και ΕΜΕ μπορούν να απαλειφτούν με αλλαγή μεταβλητής προορισμού (μετονομασία)

Μοντέλο Αρχιτεκτονικής Αριθμητικές λειτουργίες τύπου καταχωρητή-καταχωρητή: register*register -> register. Απαιτούν πόρο μιας ALU Φορτώσεις (LD) και Αποθηκεύσεις (ST) Απαιτούν πόρο μιας θέσης MEM (memory buffer)

Χρονισμός Μοντέλου Αριθμητικές λειτουργίες και αποθηκεύσεις μνήμης ενός κύκλου μηχανής Φορτώσεις μνήμης δύο κύκλων μηχανής Μια αποθήκευση μπορεί να ακολουθεί φόρτωση της ίδιας θέσης στον επόμενο κύκλο Έκδοση εντολών LD ανά έναν κύκλο

Γράφοι Εξαρτήσεων Δεδομένων Κόμβοι = εντολές μηχανής Ακμή i -> j εάν η εντολή (j) είναι εξαρτημένη από την εντολή (i). Ετικέτα κάθε ακμής = η ελάχιστη καθυστέρηση σε κύκλους μηχανής μεταξύ έναρξης της (i) και έναρξης της (j)

Παράδειγμα Πόρος LD r1, a MEM LD r2, b MEM ADD r3, r1, r2 ALU ST a, r2 MEM ST b, r1 MEM ST c, r3 MEM

Παράδειγμα: Γράφος Εξαρτήσεων Δεδομένων 1 2 Αντιεξάρτηση για το b 2 LD r1,a LD r2,b 2 2 ADD r3,r1,r2 ST a,r2 ST b,r1 ST c,r3 1 1 Αληθινή εξάρτηση για τον r2 Αληθινή εξάρτηση για τον r3 Stanford University

Δρομολόγηση Βασικής Ενότητας Τεχνική δρομολόγησης λίστας: Επέλεξε μια τοπολογική διάταξη εντολών με προτεραιότητες, η οποία 1.Δεν παραβιάζει τις ακμές του γράφου εξαρτήσεων δεδομένων (άρα τοπολογική) 2.Επιλέγει εντολές με κάποιον ευριστικό αλγόριθμο, πχ τον κόμβο που είναι μακρύτερα από τον κόμβο εξόδου (άρα με προτεραιότητες)

Παράδειγμα 1 LD r1,a 2 2 1 LD r2,b 2 2 ADD r3,r1,r2 ST a,r2 ST b,r1 1 ST c,r3 Οποιαδήποτε εντολή μπορεί να προηγηθεί καθώς δεν υπάρχουν πρόγονοι και τα μονοπάτια είναι μήκους 3 Επέλεξε πρώτα την εντολή LD r1,a, και καθώς δεν ενεργοποιείται άμεσα άλλη εντολή, επέλεξε ως δεύτερη την εντολή LD r2,b Stanford University

Παράδειγμα 2 2 LD r1,a 1 1 LD r2,b 2 2 ADD r3,r1,r2 ST a,r2 Τώρα ενεργοποιούνται αυτές οι τρεις εντολές, και επέλεξε την ADD, επειδή έχει μακρύτερο μονοπάτι ST b,r1 1 ST c,r3 Stanford University

Παράδειγμα 1 LD r1,a 2 2 1 LD r2,b 2 2 ADD r3,r1,r2 ST a,r2 ST b,r1 1 ST c,r3 Αυτές οι τρεις εντολές μπορούν να δρομολογηθούν με οποιαδήποτε σειρά, επέλεξε τη σειρά που υποδεικνύεται Stanford University

Χρησιμοποιώντας Λίστα Για κάθε εντολή στη λίστα, βρες το νωρίτερο κύκλο μηχανής στον οποίο αυτή μπορεί να δρομολογηθεί Λάβε υπόψη τους χρόνους δρομολόγησης των άμεσων προγόνων του κόμβου, ώστε να βρεις ένα κάτω φράγμα για τη δρομολόγηση της εντολής Στη συνέχεια, ανάβαλλε τη δρομολόγηση όσο οι απαιτούμενοι πόροι δεν είναι διαθέσιμοι Μόλις οι πόροι διατεθούν, ενημέρωσε τον πίνακα δρομολόγησης και τον πίνακα δέσμευσης πόρων

Ο αλγόριθμος

Παράδειγμα: Η Δρομολόγηση LD r1,a LD r1,a: νωρίτερος κύκλος: 1 πόρος MEM: διαθέσιμος Stanford University

Παράδειγμα: Η Δρομολόγηση LD r1,a LD r2,b LD r2,b: νωρίτερος κύκλος: 1 πόρος MEM: μη διαθέσιμος καθυστέρηση: ενός κύκλου Stanford University

Παράδειγμα: Η Δρομολόγηση LD r1,a LD r2,b ADD r3,r1,r2 ADD r3,r1,r2: νωρίτερος κύκλος: 4 πόρος ALU: διαθέσιμος Stanford University

Παράδειγμα: Η Δρομολόγηση LD r1,a LD r2,b ADD r3,r1,r2 ST a,r2 ST a,r2: νωρίτερος κύκλος: 4 πόρος MEM: διαθέσιμος Stanford University

Παράδειγμα: Η Δρομολόγηση LD r1,a LD r2,b ST b,r1 ADD r3,r1,r2 ST a,r2 ST b,r1: νωρίτερος κύκλος: 3 πόρος MEM: διαθέσιμος Stanford University

Παράδειγμα: Η Δρομολόγηση LD r1,a LD r2,b ST b,r1 ADD r3,r1,r2 ST c,r3 ST a,r2 ST c,r3: νωρίτερος κύκλος: 5 πόρος MEM: διαθέσιμος Stanford University

Καθολική Μετακίνηση Κώδικα Μετακίνηση κώδικα από ενότητα σε ενότητα, με σκοπό την αύξηση του ILP Τήρηση εξαρτήσεων Υποθετική εκτέλεση (εκτέλεση κώδικα που κανονικά εκτελείται στη μία κατεύθυνση μιας διακλάδωσης) Επιτρέπεται αν η εντολή δεν έχει παρενέργειες Παράδειγμα: LD σε μη χρησιμοποιούμενο καταχωρητή (παρενέργειες?)

Μετακίνηση προς τα Επάνω Μετακίνηση σε κυρίαρχο, εάν: 1.Ικανοποιούνται οι εξαρτήσεις 2.Δεν υπάρχουν παρενέργειες, εκτός αν οι δύο κόμβοι είναι διαδικασιακά ισοδύναμοι: Κυριαρχία και μετα-κυριαρχία μεταξύ των κόμβων Μετακίνηση σε μη κυρίαρχο, μόνο με την προϋπόθεση ότι θα εισαχθεί κώδικας επιδιόρθωσης (compensation code)

Μετακίνηση προς τα Κάτω Μετακίνηση σε μετα-κυρίαρχο, εάν: 1.Ικανοποιούνται οι εξαρτήσεις 2.Δεν υπάρχουν παρενέργειες, εκτός Μετακίνηση σε μη μετα-κυρίαρχο, μόνο με την προϋπόθεση ότι

Μοντέλο Αρχιτεκτονικής Η αρχιτεκτονική εκτελεί παράλληλα ο- ποιεσδήποτε δύο εντολές Χρονισμός όπως και προηγουμένως LD = 2 κύκλοι, υπόλοιπες = 1 κύκλος

Παράδειγμα: Μετακίνηση Κώδικα Υποθέτουμε ότι οι εντολές LD δεν έχουν παρενέργειες, οπότε μπορούν να μετακινηθούν στον κόμβο εισόδου LD r1,a nop BRZ r1,l LD r2,b nop ST d,r2 LD r4,e nop ST f,r4 LD r3,c nop ST d,r3 Μπορούμε να μετακινήσουμε την εντολή ST στον κόμβο εισόδου μαζί με την εντολή LD r4, αφού οι δύο κόμβοι είναι διαδικασιακά ισοδύναμοι Stanford University

Παράδειγμα: Μετακίνηση Κώδικα LD r1,a LD r2,b BRZ r1,l LD r4,e LD r3,c ST f,r4 LD r2,b nop ST d,r2 ST d,r2 ST d,r3 LD r3,c nop ST d,r3 LD r4,e nop ST f,r4 Stanford University

Δρομολόγηση Περιοχών Αλγόριθμος δρομολόγησης εντολών με καθολική μετακίνηση κώδικα, μόνο μεταξύ διαδικασιακά ισοδύναμων ενοτήτων, ή προς τα επάνω, από μια ενότητα προς άλλη που βρίσκεται πάνω από μία μόνο διακλάδωση που κυριαρχεί την πρώτη ενότητα Υψηλότερη προτεραιότητα η πρώτη μετακίνηση Δρομολόγηση περιοχών από μέσα προς τα έξω Μετά τη δρομολόγηση μιας περιοχής, οι εντολές της δε μετακινούνται

Αλγόριθμος Είσοδος: CFG, πίνακας πόρων Έξοδος: Πίνακας δρομολόγησης S

Συμβολικό Ξεδίπλωμα (Software Pipelining) Παραλληλισμός στην εκτέλεση βρόχου με επικάλυψη διαδοχικών επαναλήψεων Οι διαδοχικές επαναλήψεις μπορούν να είναι ανεξάρτητες μεταξύ τους στην απλούστερη περίπτωση (βρόχος do-all), ή και να έχουν ε- ξαρτήσεις προς επόμενες επαναλήψεις (βρόχος do-across) Στόχος: Εκκίνηση επαναλήψεων με το μέγιστο δυνατό ρυθμό Περιορισμός: Χρήση της ίδιας δρομολόγησης και καθυστέρησης σε κάθε επανάληψη

Μοντέλο Αρχιτεκτονικής Μια εντολή LD ή ST και μια εντολή ALU (ή διακλάδωση) σε κάθε κύκλο Χρονισμός όπως νωρίτερα LD = 2 κύκλοι, υπόλοιπες = 1 κύκλος

Παράδειγμα for (i=0; i<n; i++) B[i] = A[i]; Έστω ότι ο $r9 περιέχει το 4N και ο $r8 περιέχει το 4*i: L: LD r1, a(r8) nop ST b(r8), r1 ADD r8, r8, #4 BLT r8, r9, L Η δρομολόγηση προκύπτει από τις εξαρτήσεις δεδομένων. Δεν υπάρχει παραλληλισμός!

2 Φορές Ξεδίπλωμα Προς το παρόν αγνοούμε τη δέσμευση καταχωρητών: LD nop ST ADD BLT LD nop ST ADD BLT Αποτυχία! Παραβίαση περιορισμών πόρων ALU

Εισαγωγή Λειτουργίας ΝΟΡ και 3 Φορές Ξεδίπλωμα LD nop ST ADD nop BLT LD nop ST ADD nop BLT LD nop ST ADD nop BLT Με 3 επαναλήψεις προκύπτουν αρκετές συγκρούσεις πόρων

Ρυθμός Επαναλήψεων Ερώτηση: Μπορούμε να έχουμε μια νέα επανάληψη σε κάθε κύκλο μηχανής; Απάντηση: Όχι! Γιατί; Κάθε επανάληψη απαιτεί 2 πόρους MEM και 2 πόρους ALU Για μια νέα επανάληψη σε κάθε κύκλο θα έπρεπε να διαθέτουμε τόσους πόρους Άρα ελάχιστο διάστημα εκκίνησης διαδοχικών επαναλήψεων = 2 κύκλοι Ή αλλιώς μέγιστος ρυθμός ανά 2 κύκλους

Δρομολόγηση με Καθυστέρηση 2 LD nop nop ST ADD BLT LD nop nop ST ADD BLT LD nop nop ST ADD BLT LD nop nop ST ADD BLT Αρχικοποίηση Ταυτόσημες δρομολογήσεις Τερματισμός

Αλγόριθμος Δρομολόγησης (Iterative Modulo Scheduling) Υπολόγισε τον ελάχιστο δυνατό χρόνο καθυστέρησης Τ=Τ 0 Προσπάθησε να δημιουργήσεις τον πίνακα δρομολόγησης με καθυστέρηση Τ Ικανοποίησε τους περιορισμούς εξαρτήσεων και πόρων Όπου χρειάζεται χρησιμοποίησε εντολές NOP Σταμάτα, αν μια εντολή δε δρομολογείται μέσα σε διάστημα Τ κύκλων και επανάλαβε την προσπάθεια από την αρχή με Τ=Τ+1

Πρώτος Αλγόριθμος

Δέσμευση Καταχωρητών Εφόσον δεν κάνουμε πραγματικό ξεδίπλωμα, το πλήθος καταχωρητών που χρειαζόμαστε είναι πεπερασμένο Μπορούμε να επαναχρησιμοποιούμε καταχωρητές σε επαναλήψεις που δεν επικαλύπτονται Όμως δε μπορούμε να χρησιμοποιούμε τους αρχικά δεσμευμένους καταχωρητές του βρόχου

Δέσμευση Καταχωρητών Ο πυρήνας του νέου βρόχου μπορεί να απαιτεί περισσότερους καταχωρητές από ό,τι το πλήθος καταχωρητών που δεσμεύεται για μια επανάληψη Ανάλογα με την επικάλυψη επαναλήψεων Οι καταχωρητές επαναχρησιμοποιούνται με αντιγραφή του πυρήνα Στο παράδειγμά μας έχουμε επικάλυψη 3 επαναλήψεων, άρα απαιτούνται 3 σύνολα καταχωρητών και 3 αντίγραφα του πυρήνα

Παράδειγμα: Δέσμευση Καταχωρητών Στον αρχικό βρόχο: Ο $r9 περιέχει τη σταθερά 4N Ο $r8 περιέχει το δείκτη του βρόχου Ο $r1 χρησιμοποιείται για την αντιγραφή του a[i] στο b[i] Στο νέο βρόχο: Ο $r9 περιέχει τη σταθερά 4N Οι $r6, $r7, $r8 περιέχουν το δείκτη του βρόχου Οι $r1, $r2, $r3 χρησιμοποιούνται για την αντίστοιχη αντιγραφή

Ο Πυρήνας του Νέου Βρόχου Πρόωρος τερματισμός Κάθε καταχωρητής δείκτης χειρίζεται ανά 3 τα στοιχεία των πινάκων επανάληψη i επανάληψη i + 1 επανάληψη i + 2 L: ADD r8,r8,#12 nop LD r3,a(r6) BGE r8,r9,l ST b(r7),r2 nop LD r1,a(r8) ADD r7,r7,#12 nop nop BGE r7,r9,l ST b(r6),r3 nop LD r2,a(r7) ADD r6,r6,#12 ST b(r8),r1 nop BLT r6,r9,l επανάληψη i + 3 επανάληψη i + 4 (L και L κατάλληλες ετικέτες στον κώδικα τερματισμού)

Κυκλικές Εξαρτήσεις Δεδομένων Μέχρι τώρα θεωρήσαμε βρόχους do-all με απουσία κυκλικών εξαρτήσεων στο βρόχο, ώστε τα δεδομένα να εξαρτώνται μόνο από άλλα δεδομένα της ίδιας επανάληψης Οι κυκλικές εξαρτήσεις στους δείκτες δε μας ενοχλούν (δείτε το προηγούμενο παράδειγμα!) Συμπλήρωση για βρόχους do-across: σημειώνουμε τις ακμές του γράφου εξαρτήσεων με ετικέτα <απόσταση, καθυστέρηση>

Παράδειγμα: Κυκλικές Εξαρτήσεις (A) (B) (C) LD r1,a(r8) <0,2> ST b(r8),r1 <0,1> ADD r8,r8,#4 <1,1> <1,1> Η εντολή (A) πρέπει να περιμένει τουλάχιστον 1 cc μετά την (C) από την προηγούμενη επανάληψη (D) <0,1> BLT r8,r9,l Η εντολή (C) πρέπει να περιμένει τουλάχιστον 1 cc μετά την (B) της ίδιας επανάληψης

Περιορισμός Επαναλήψεων (A) T (C) Τουλάχιστον 1 cc (A) (C)

Πίνακας Καθυστερήσεων Έστω T η καθυστέρηση εκκίνησης διαδοχικών επαναλήψεων Η ετικέτα <i,j> στο γράφο εξαρτήσεων επιβάλλει καθυστέρηση j-it Υπολόγισε για κάθε ζεύγος κόμβων (n, m) τη μέγιστη συνολική καθυστέρηση σε όλα τα ακυκλικά μονοπάτια από τον n στον m Το αποτέλεσμα δίνει άνω και κάτω φράγματα στη δρομολόγηση των εντολών

Παράδειγμα: Πίνακας Καθυστερήσεων A B C D A B C D A 2 A 2 3 4 B 1 B 2-T 1 2 C 1-T 1-T 1 C 1-T 3-T 1 D D Ακμές Μονοπάτια (κλείσιμο ακμών) Παρατήρηση: Θα πρέπει T 4. Εάν T=4, τότε η A (LD) πρέπει να προηγείται της Β (ST) κατά 2 cc, ενώ εάν T=5, τότε η A μπορεί να βρίσκεται 2-3 cc πριν τη B. S(B) S(A)+2 S(A) S(B)+2-T S(B)-2 S(A) S(B)+2-T

Προσαρμογή Αλγόριθμου Υπολογισμός ελάχιστου διαστήματος εκκίνησης συμπεριλαμβάνοντας και τους περιορισμούς από κυκλικές εξαρτήσεις Δρομολόγηση ολόκληρων ισχυρά συνεκτικών συνιστωσών (SCC) του γράφου εξαρτήσεων αντί απλών κόμβων, σε κάποια τοπολογική σειρά προτεραιότητας Δρομολόγηση ανά εντολή εντός της κάθε SCC Οι SCC δημιουργούν ακυκλικό γράφο του οποίου η δρομολόγηση γίνεται με τον προηγούμενο αλγόριθμο

Δεύτερος Αλγόριθμος

Βελτιώσεις Υποστήριξη Υλικού Ιδιαίτερη διαχείριση δεικτών για μείωση κυκλικών εξαρτήσεων Βρήκαμε T 4 αντί για Τ 2 που είχαμε βρει νωρίτερα! Μετατροπή βαθμωτών μεταβλητών σε διανυσματικές Μείωση ψευδών εξαρτήσεων μεταξύ επαναλήψεων Διαχείριση διακλαδώσεων Βεβαιωμένη εκτέλεση και trace scheduling Περιστρεφόμενος φάκελος καταχωρητών