Αλγόριθµοι για Χρονικό Προγραµµατισµό

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

ιαµέριση - Partitioning

Σύνθεση σε επίπεδο Αρχιτεκτονικής

Αλγόριθµοι Εκτίµησης Καθυστέρησης και

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ ΚΕΦΑΛΑΙΟ 1

Μοντελοποίηση προβληµάτων

Ακέραιος Γραμμικός Προγραμματισμός

Αλγόριθµοι και Πολυπλοκότητα

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ (Γ.Π.).) (LINEAR PROGRAMMING)

Κεφάλαια Εντολές επανάληψης. Τρεις εντολές επανάληψης. Επιλογή εντολής επανάληψης ΟΣΟ...ΕΠΑΝΑΛΑΒΕ. Σύνταξη στη ΓΛΩΣΣΑ

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

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

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

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

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[χρονικές µονάδες]

ς Ποιότητα ξιολόγηση Α

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

Αλγόριθµοι και Πολυπλοκότητα

6 η Θεµατική Ενότητα : Σχεδίαση Συστηµάτων σε Επίπεδο Καταχωρητή

Ακέραιος Γραµµικός Προγραµµατισµός

Μοντέλα. χαρακτηριστικά χωρίς να συνοδεύεται από λεπτοµέρειες.

Προβλήματα Μεταφορών (Transportation)

Κυκλώµατα. Εισαγωγή. Συνδυαστικό Κύκλωµα

Κυκλώµατα. Εισαγωγή. Συνδυαστικό Κύκλωµα

Ακέραιος Γραµµικός Προγραµµατισµός

Αλγόριθµοι και Πολυπλοκότητα

Pipelining και Παράλληλη Επεξεργασία

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

Case 06: Το πρόβληµα τωνlorie και Savage Εισαγωγή (1)

ΕΦΑΡΜΟΓΕΣ ΔΙΟΙΚΗΤΙΚΗΣ ΕΠΙΣΤΗΜΗΣ

Σύνθεση Ψηφιακών Συστηµάτων. Χ. Καβουσιανός

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

Ακέραιος Γραμμικός Προγραμματισμός

Γραµµικός Προγραµµατισµός (ΓΠ)

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

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

Λύσεις 4ης Σειράς Ασκήσεων

Προβλήµατα Μεταφορών (Transportation)

3.7 Παραδείγματα Μεθόδου Simplex

Εισαγωγή στους Αλγόριθµους. Αλγόριθµοι. Ιστορικά Στοιχεία. Ο πρώτος Αλγόριθµος. Παραδείγµατα Αλγορίθµων. Τι είναι Αλγόριθµος

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

PLD. Εισαγωγή. 5 η Θεµατική Ενότητα : Συνδυαστικά. PLAs. PLDs FPGAs

Γραµµικός Προγραµµατισµός - Μέθοδος Simplex

ΕΝΟΤΗΤΑ 6 ΛΙΣΤΕΣ ΠΑΡΑΛΕΙΨΗΣ (SKIP LISTS)

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

Επιχειρησιακή Έρευνα

Ελεγχος, Αξιοπιστία και Διασφάλιση Ποιότητας Λογισµικού Πολυπλοκότητα

Πληροφοριακά Συστήματα Διοίκησης. Επισκόπηση μοντέλων λήψης αποφάσεων Τεχνικές Μαθηματικού Προγραμματισμού

Αλγόριθµοι και Πολυπλοκότητα

inding B Binding -Library Cell

8 η Θεµατική Ενότητα : Εισαγωγή στις Γλώσσες Περιγραφής Υλικού: Μοντέλα Συνδυαστικών Κυκλωµάτων

Θεωρία Αποφάσεων και Βελτιστοποίηση

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

Διαχείριση Εφοδιαστικής Αλυσίδας ΙΙ

«Σχεδιασμός Ψηφιακών Συστημάτων σε FPGA» Εαρινό εξάμηνο

Αλγόριθµοι και Πολυπλοκότητα

Αλγόριθµοι. Παράδειγµα. ιαίρει και Βασίλευε. Παράδειγµα MergeSort. Τεχνικές Σχεδιασµού Αλγορίθµων

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

Αλγόριθµοι και Πολυπλοκότητα

Υπολογιστικό Πρόβληµα

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

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ

Πανεπιστήµιο Αιγαίου Τµήµα Μηχανικών Πληροφοριακών και Επικοινωνιακών Συστηµάτων. 3η Άσκηση Logical Effort - Ένα ολοκληρωµένο παράδειγµα σχεδίασης

Μέθοδοι πολυδιάστατης ελαχιστοποίησης

Διάλεξη 04: Παραδείγματα Ανάλυσης

Ανάλυση αλγορίθμων. Χρόνος εκτέλεσης: Αναμενόμενη περίπτωση. - απαιτεί γνώση της κατανομής εισόδου

Ανάλυση Χρόνου, Πόρων & Κόστους

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

4.1 Θεωρητική εισαγωγή

min f(x) x R n b j - g j (x) = s j - b j = 0 g j (x) + s j = 0 - b j ) min L(x, s, λ) x R n λ, s R m L x i = 1, 2,, n (1) m L(x, s, λ) = f(x) +

HY118- ιακριτά Μαθηµατικά. Θεωρία γράφων / γραφήµατα. Τι έχουµε δει µέχρι τώρα. Υπογράφηµα Γράφοι

Κεφάλαιο 4ο: Δικτυωτή Ανάλυση

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τ Μ Η Μ Α Π Λ Η Ρ Ο Φ Ο Ρ Ι Κ Η Σ

Προβλήματα Εκχώρησης (Assignment Problems)

Γραμμικός Προγραμματισμός Μέθοδος Simplex

ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ. Αρχές Ανάλυσης Αλγορίθµων Κεφάλαιο 2. Ε. Μαρκάκης Επικ. Καθηγητής

Κεφάλαιο 3ο: Γραμμικός Προγραμματισμός

Χρησιμοποιείται για να αποφασίσει το πρόγραμμα αν θα κάνει κάτι σε ένα σημείο της εκτέλεσής του, εξετάζοντας αν ισχύει ή όχι μια συνθήκη.

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Τμήμα Μηχανικών Πληροφορικής ΤΕ Δυϊκότητα. Γκόγκος Χρήστος ΤΕΙ Ηπείρου Επιχειρησιακή Έρευνα. τελευταία ενημέρωση: 1/12/2016

Διάλεξη 04: Παραδείγματα Ανάλυσης Πολυπλοκότητας/Ανάλυση Αναδρομικών Αλγόριθμων

Ποσοτικές Μέθοδοι στη Διοίκηση Επιχειρήσεων ΙΙ Σύνολο- Περιεχόμενο Μαθήματος

ΑΚΕΡΑΙΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ & ΣΥΝΔΥΑΣΤΙΚΗ ΒΕΛΤΙΣΤΟΠΟΙΗΣΗ. Κεφάλαιο 3 Μορφοποίηση Προβλημάτων Ακέραιου Προγραμματισμού

Ασκήσεις μελέτης της 4 ης διάλεξης. ), για οποιοδήποτε μονοπάτι n 1

ΚΕΦΑΛΑΙΟ 2 Βασικές έννοιες αλγορίθµων

ΓΡΑΜΜΙΚΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΚΑΙ ΜΕΘΟΔΟΣ SIMPLEX, διαλ. 3. Ανωτάτη Σχολή Παιδαγωγικής και Τεχνολογικής Εκπαίδευσης 29/4/2017

Initialize each person to be free. while (some man is free and hasn't proposed to every woman) { Choose such a man m w = 1 st woman on m's list to

ΕΠΛ231 Δομές Δεδομένων και Αλγόριθμοι 4. Παραδείγματα Ανάλυσης Πολυπλοκότητας Ανάλυση Αναδρομικών Αλγόριθμων

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

Εισαγωγή στην πληροφορική

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης

1 η Θεµατική Ενότητα : Αριθµητικά Κυκλώµατα. Επιµέλεια διαφανειών: Χρ. Καβουσιανός

ΕΠΙΧΕΙΡΗΣΙΑΚΗ ΕΡΕΥΝΑ Επιστήμη των Αποφάσεων, Διοικητική Επιστήμη

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

Transcript:

Αλγόριθµοι για Χρονικό Προγραµµατισµό (Scheduling Scheduling)

Εισαγωγή Ο χρονικός προγραµµατισµός είναι σηµαντικό πρόβληµα: Καθορίζει τον ακριβή χρόνο έναρξης κάθε λειτουργίας µε βάση τις εξαρτήσεις του ακολουθιακού γράφου. Καθορίζει τον παραλληλισµό της υλοποίησης και άρα την απόδοση. Επηρεάζει το υλικό: o αριθµός των λειτουργιών που προγραµµατίζονται σε ένα βήµα καθορίζει το υλικό που απαιτείται. Λαµβάνει υπόψη περιορισµούς σε υλικό για την απόδοση λύσεων. Για διάφορες τιµές του κύκλου ρολογιού µπορεί να δώσει area/latency trade off. ιαφορετικές αρχιτεκτονικές επηρεάζουν το Scheduling (πχ pipelining). Οι γλωσσικές δοµές επηρεάζουν το Scheduling (πχ loops). Αλγόριθµοι για Scheduling 2

Μοντέλο προβληµάτων Scheduling Βασικά στοιχεία µοντελοποίησης προβλήµατος: Χρησιµοποιούνται µη-ιεραρχικοί ακολουθιακοί γράφοι µε τις κορυφές v i να αντιστοιχούν στις λειτουργίες και οι ακµές σε εξαρτήσεις. Η καθυστέρηση κάθε λειτουργίας v i είναι ίση µε d i. Θεωρούµε ότι οι καθυστερήσεις είναι ανεξάρτητες δεδοµένων και γνωστές. Επίσης το ρολόι είναι µονοφασικό (edge-triggered ffs). Ο χρόνος έναρξης κάθε λειτουργίας είναι t i. To latency είναι η διαφορά χρόνου έναρξης της καταβόθρας από την πηγή λ=t n -t 0. (Θεωρούµε µοναδιαίους χρόνους και t 0 =1) Βασική σχέση: ο χρόνος έναρξης µίας λειτουργίας είναι ίσος ή µεγαλύτερος από τον χρόνο έναρξης των οδηγών κορυφών + καθυστέρηση εκτέλεσης της λειτουργίας: t i t j +d j i, j: (v j, v i ) E (σύνολο ακµών) Αλγόριθµοι για Scheduling 3

Μοντέλο προβληµάτων Scheduling Υποθέσεις (αρχικές) εν έχουµε δοµές απόφασης ή επανάληψης στην περιγραφή. Κάθε λειτουργία εκτελείται σε ακριβώς ένα βήµα ελέγχου. Κάθε τύπος λειτουργίας µπορεί να εκτελεστεί από ένα και µόνο τύπο λειτουργικής µονάδας. Είναι δοσµένη µία βιβλιοθήκη µε λειτουργικές µονάδες µε γνωστά χαρακτηριστικά (area delay). Είναι γνωστό το µήκος του βήµατος ελέγχου. Unconstrained Time Constrained Resource Constrained Χωρίς περιορισµούς Ελαχιστοποίηση αριθµού λειτουργικών µονάδων για δεδοµένο αριθµό βηµάτων Ελαχιστοποίηση αριθµού βηµάτων για δεδοµένο κόστος σχεδίασης Αλγόριθµοι για Scheduling 4

Scheduling χωρίς περιορισµούς Αλγόριθµοι για Scheduling 5

Scheduling χωρίς περιορισµούς ASAP αλγόριθµος: o χρόνος εκκίνησης κάθε λειτουργίας είναι ο µικρότερος δυνατός. ALAP αλγόριθµος: ο χρόνος εκκίνησης µίας λειτουργίας είναι ο µεγαλύτερος δυνατός για latency λ. Mobility ή slack λειτουργίας: η διαφορά των χρόνων εκκίνησης µίας λειτουργίας ASAP, ALAP. Mobility = 0 η λειτουργία µπορεί να ξεκινήσει στο δεδοµένο χρόνο και µόνο (Θεωρούν ότι δεν υπάρχει περιορισµός σε υλικό - Unconstrained) Αλγόριθµοι για Scheduling 6

Scheduling χωρίς περιορισµούς Mobility 1 Mobility 0 Mobility 2 (Θεωρεί Latency = 4) 4 πολλαπλασιαστές 1 αθροιστή / αφαιρέτη 1 συγκριτή 2 πολλαπλασιαστές 1 αθροιστή + 1 αφαιρέτη 1 συγκριτή Αλγόριθµοι για Scheduling 7

Scheduling µε χρονικούς περιορισµούς Πρέπει να ικανοποιηθούν deadlines ή/και release times λειτουργιών. Τα deadlines, release times είναι περιορισµοί απόλυτου χρόνου. Περιορισµοί σχετικού χρόνου (Relative timing constraints): καθορισµός του χρόνου που µεσολαβεί ανάµεσα σε δύο λειτουργίες. (παράδειγµα: πρωτόκολλα επικοινωνίας) Ορισµός: Οι περιορισµοί σχετικού χρόνου ανάµεσα σε λειτουργίες v i, v j είναι θετικοί ακέραιοι l ij τέτοιοι ώστε: Ελάχιστος χρονικός περιορισµός l ij 0 απαιτεί t j t i +l ij Μέγιστος χρονικός περιορισµός u ij 0 απαιτεί t j t i +u ij Μέθοδοι Mathematical : Integer Linear Programming Constructive : Force Directed Iterative Refinement Αλγόριθµοι για Scheduling 8

Γραµµικά & Ακέραια Προβλήµατα Πολλά προβλήµατα κατατάσσονται στην βελτιστοποίηση γραµµικών συναρτήσεων υπό γραµµικούς περιορισµούς. Γενικά ζητάµε ένα διάνυσµα x για το οποίο ισχύουν οι σχέσεις: Simplex Min c T x έτσι ώστε x R n, A x b c R n, b R m Ellipsoid x 0 A R mxn Projective Η τυποποίηση αυτή ονοµάζεται γραµµικό πρόγραµµα. Αλγόριθµοι Επίλυσης Για βελτιστοποίηση συνδυαστικών προβληµάτων το διάνυσµα x παίρνει ακέραιες τιµές (x Ζ n ) και έχουµε το Ακέραιο Γραµµικό πρόγραµµα (ILP Integer Linear Programming). ZOLP: Πρόβληµα απόφασης ILP που µαζί µε τις µεταβλητές περιορίζεται σε δυαδικές τιµές 0, 1 (binary linear problems). Αλγόριθµοι για Scheduling 9

Integer Linear Programming Mobility 1 Mobility 0 Mobility 2 s Ek βήµα ο k λειτουργία E k L k s Lk βήµα ιάστηµα Κινητικότητας Κάθε αποδεκτό schedule τοποθετεί την o k µεταξύ των βηµάτων s Ek και s Lk Αλγόριθµοι για Scheduling 10

Integer Linear Programming T= σύνολο των m τύπων λειτουργιών S={s j 1 j r} σύνολο βηµάτων ελέγχου x ij = 1: η λειτουργία o i στο βήµα s j. OP= Σο i το σύνολο των n λειτουργιών t i = type(o i ) ο τύπος της λειτουργίας o i. OP tk σύνολο λειτουργιών τύπου t k. INDEX tk δείκτες του συνόλου OP tk. N tk σύνολο µονάδων τύπου t k. C tk κόστος µονάδας τύπου t k. Αλγόριθµοι για Scheduling 11

Integer Linear Programming Scheduling Formulation Ελαχιστοποίησε κόστος υλικού C t1 N t1 +C t2 N t2 + +C tk N tk υπό τις ακόλουθες προϋποθέσεις: Συνάρτηση Α: Κάθε λειτουργία προγραµµατίζεται στο διάστηµα κινητικότητας της µία και µόνο φορά Συνάρτηση Β: Σε κανένα βήµα δεν προγραµµατίζονται περισσότερες από Ν tk λειτουργίες τύπου t k. Αλγόριθµοι για Scheduling 12

Integer Linear Programming Συνάρτηση Γ: Όλες οι λειτουργίες o i που είναι προκάτοχοι της o j προγραµµατίζονται σε προηγούµενο βήµα από την o j (αν x i,k =x j,l =1 τότε k<l), j o Pr i ed o k x i k l x j j, E k L E l L i, j l i i j j 1 Αλγόριθµοι για Scheduling 13

Παράδειγµα Πολλαπλασιαστές: C m, N m Αθροιστές: C a, N a Αφαιρέτες: C s, N s Συγκριτές: C c, N c ILP: Ελαχιστοποίηση του C m N m + C a N a + C s N s + C c N c Με τις ακόλουθες προϋποθέσεις: Αλγόριθµοι για Scheduling 14

Integer Linear Programming Συνάρτηση Α: Κάθε λειτουργία προγραµµατίζεται στο διάστηµα κινητικότητας της µία και µόνο φορά X 1,1 = 1 X 9,2 +X 9,3 +X 9,4 = 1 X 2,1 = 1 X 10,1 +X 10,2 +X 10,3 = 1 X 3,1 +X 3,2 = 1 X 11,2 +X 11,3 +X 11,4 = 1 X 4,1 +X 4,2 +X 4,3 = 1 X 5,2 = 1 X 6,2 +X 6,3 = 1 X 7,3 = 1 X 8,4 = 1 Αλγόριθµοι για Scheduling 15

Integer Linear Programming * * * * * * - - + + < Συνάρτηση B: Σε κανένα βήµα δεν προγραµµατίζονται περισσότερες από Ν tk λειτουργίες τύπου t k. X 1,1 +X 2,1 +X 3,1 +X 4,1 N m X 10,1 N a X 3,2 +X 4,2 +X 5,2 +X 6,2 N m X 9,2 +X 10,2 N a X 4,3 +X 6,3 N m X 7,3 N s X 8,4 N s X 9,3 +X 10,3 N a X 9,4 N a X 11,2 N c X 11,3 N c X 11,4 N c Αλγόριθµοι για Scheduling 16

Integer Linear Programming Συνάρτηση Γ: Όλες οι λειτουργίες προκάτοχοι της o j προγραµµατίζονται σε προηγούµενο βήµα από την o j (αν x i,k =x j,l =1 τότε k<l) Μόνο για όσες έχουν κινητικότητα 1X 3,1 +2X 3,2-2X 6,2-3X 6,3-1 1X 4,1 +2X 4,2 +3X 4,3-2X 9,2-3X 9,3-4X 9,4-1 1X 10,1 +2X 10,2 +3X 10,3-2X 11,2-3X 11,3-4X 11,4-1 Αλγόριθµοι για Scheduling 17

Integer Linear Programming Θεωρώντας ότι διαθέτουµε: 2 πολλαπλασιαστές (κόστος 2 καθένας) 1 αθροιστή (κόστος 1) 1 αφαιρέτη (κόστος 1) 1 συγκριτή (κόστος 1) Η πολυπλοκότητα του ILP αυξάνει ραγδαία µε την αύξηση της πολυπλοκότητας των δεδοµένων. Μόνο για µικρές περιγραφές Αλγόριθµοι για Scheduling 18

Force Directed Scheduling Είναι η Constructive µέθοδος για Scheduling µε χρονικούς περιορισµούς. Ονοµάζεται Constructive γιατί κατασκευάζει λύση χωρίς backtracking. Στόχος είναι η µείωση του συνολικού αριθµού λειτουργικών µονάδων που χρησιµοποιούνται. Κατανέµει τις λειτουργίες ίδιου τύπου οµοιόµορφα σε όλες τις καταστάσεις. Έτσι πετυχαίνει υψηλή αξιοποίηση των resources σε όλους τους χρόνους. Formulation Με τις τιµές ASAP,ALAP καθορίζει το εύρος [E i, L i ] κάθε λειτουργίας. Θεωρεί ότι κάθε λειτουργία µπορεί να προγραµµατιστεί ισοπίθανα στο εύρος της και µε πιθανότητα 0 αλλού. E i j L i η λειτουργία o i µπορεί να προγρ. στο βήµα s j µε p j (o i )=1/(L i -E i +1) Αλγόριθµοι για Scheduling 19

Force Directed Scheduling Οι λειτουργίες 1, 2, 5, 7, 8 έχουν πιθανότητα 1 να προγραµµατιστούν στα βήµατα 1, 1, 2, 3, 4 αντίστοιχα. Οι λειτουργίες 3, 6 έχουν πιθανότητα 0,5 να µπουν στο 1, 2 ή 2, 3 βήµα αντίστοιχα Οι λειτουργίες 4, 9, 10, 11 έχουν πιθανότητα 0,333 να µπουν στο βήµα 1,2,3 (οι 4 και 10) ή 2,3,4 (οι 9, 11) αντίστοιχα Αλγόριθµοι για Scheduling 20

Force Directed Scheduling 1 1 0,5 0,33 Το πάχος κάθε παραλ/µου είναι η πιθανότητα να µπει σε αυτό το βήµα η αντίστοιχη λειτουργία. Οι µπάρες αναπαριστούν το αναµενόµενο κόστος ενός τελεστή (εδώ πολλαπλ.) σε αυτό το βήµα (πχ s 1, *: c k (p 1 (o 1 )+p 1 (o 2 )+p 1 (o 3 )+p 1 (o 4 )) Κόστος Τελεστή Άθροισµα p πολλαπλ. σε αυτό το βήµα Αλγόριθµοι για Scheduling 21

Force Directed Scheduling Τέτοιες µπάρες φτιάχνονται για όλους τους τελεστές. Όσο µεγαλύτερο το κόστος ενός τελεστή σε κάποιο βήµα, τόσο πιθανότερο είναι ο τελεστής να πρέπει να υλοποιηθεί σε αυτό το βήµα και πιθανώς να χρειαστούν πολλές λειτουργικές µονάδες. Όσο µικρότερο το κόστος ενός τελεστή σε κάποιο βήµα, τόσο πιθανότερο είναι ο τελεστής να µην υλοποιηθεί σε αυτό το βήµα και οι λειτουργικές µονάδες να µην αξιοποιηθούν. Μας ενδιαφέρει το µέγιστο κόστος ενός τελεστή το οποίο προσπαθούµε να µειώσουµε διαµοιράζοντας το σε όλα τα βήµατα εξίσου. οκιµάζονται διάφορα schedules. Σε κάθε scheduling µίας λειτουργίας επαναϋπολογίζονται οι πιθανότητες των λειτουργιών (λόγω εξαρτήσεων). Το schedule που οδηγεί στην ελάχιστη τιµή αναµενόµενου κόστους για κάποιον τελεστή επιλέγεται. Αλγόριθµοι για Scheduling 22

Force Directed Scheduling Scheduling της 3 στο βήµα 2 Μείωση µέγιστου γ κόστους τελεστή σε 2,33 από 2,83 Αύξηση του τελεστή σε αυτό το βήµα αλλά δεν ενοχλεί αφού οι µονάδες υπάρχουν από άλλα βήµατα µε µεγαλύτερο τελεστή. Αλγόριθµοι για Scheduling 23

Iterative Refinement Scheduling Ένα πρώτο schedule επιτυγχάνεται µε κάποιον αλγόριθµο. Νέα schedules προκύπτουν µε rescheduling µίας λειτουργίας την φορά. Πρέπει να τηρούνται οι περιορισµοί εξάρτησης δεδοµένων Αλγόριθµοι για Scheduling 24

Iterative Refinement Scheduling Ο αλγόριθµος προχωράει και εκτελεί µετακινήσεις έως ότου όλες οι λειτουργίες κλειδωθούν. Βρίσκουµε την υπο-ακολουθία των k µετακινήσεων που µεγιστοποιεί το συνολικό κέρδος. Εάν βρεθεί υπο-ακολουθία µε θετικό κέρδος, την εφαρµόζουµε, ξεκλειδώνουµε λειτουργίες και επαναλαµβάνουµε. Μπορούµε να εκτελέσουµε τον αλγόριθµο πολλές φορές ξεκινώντας από διαφορετικά αρχικά schedules. Αλγόριθµοι για Scheduling 25

Resource Constrained Scheduling Σε αυτό το είδος scheduling ξεκινάµε µε περιορισµούς στην επιφάνεια. Ο περιορισµός µπορεί να είναι είτε αριθµός λειτουργικών µονάδων, είτε συνολική επιφάνεια. Όταν ο περιορισµός είναι σε επιφάνεια, ο αλγόριθµος επιλέγει και λειτουργικές µονάδες. Ο περιορισµός ρ µ επιφάνειας ικανοποιείται όταν οι λειτουργίες που προγραµµατίζονται σε ένα βήµα δεν παραβιάζουν τον περιορισµό. Οι εξαρτήσεις δεδοµένων προφανώς πρέπει να τηρούνται. Αλγόριθµοι Resource Constrained Scheduling: List Based Scheduling Static List Scheduling Αλγόριθµοι για Scheduling 26

List Based Scheduling Είναι γενίκευση του αλγόριθµου ASAP. ιατηρεί µία λίστα προτεραιότητας των έτοιµων κόµβων. Έτοιµος είναι ο κόµβος του οποίου όλοι οι προκάτοχοι έχουν προγραµµατιστεί. Σε κάθε επανάληψη προγραµµατίζονται οι λειτουργίες µε την υψηλότερη προτεραιότητα ρ (αρχή λίστας) ς)µ µέχρις ς ότου χρησιµοποιηθούν µ η όλα τα resources. Ο προγραµµατισµός µίας λειτουργίας θέτει κάποιες άλλες έτοιµες, οι οποίες εισάγονται στην λίστα µε βάση την προτεραιότητα τους. Κρίσιµος παράγοντας απόδοσης είναι η επιλογή της συνάρτησης προτεραιότητας Αλγόριθµοι για Scheduling 27

List Based Scheduling 3<0>, 5<0>, 4<1> 11<1> Επανάληψη 2 Επανάληψη 1 1, 2 Προτεραιότητες 10 Σαν προτεραιότητα χρησιµοποιείται η κινητικότητα (µικρή κινητικότητα = µεγάλη προτεραιότητα) Αλγόριθµοι για Scheduling 28

List Based Scheduling Αλγόριθµοι για Scheduling 29

Scheduling µε Ρεαλιστικές Υποθέσεις Οι υποθέσεις που κάναµε δεν ανταποκρίνονται σε ρεαλιστικά σενάρια. Η πραγµατικότητα είναι πιο περίπλοκη. Κάποιες πιο ρεαλιστικές υποθέσεις είναι οι ακόλουθες: 1. Λειτουργικές µονάδες ς µε ποικίλες καθυστερήσεις 2. Λειτουργικές µονάδες µε περισσότερες από µία λειτουργίες 3. Πιο περίπλοκες περιγραφές συµπεριφοράς. Αλγόριθµοι για Scheduling 30

Λειτουργικές Μονάδες Ποικίλων Καθυστερ. Η καθυστέρηση µίας λειτουργικής µονάδας εξαρτάται από την σχεδίαση της (πχ. ο πολλαπλασιαστής κινητής υποδιαστολής είναι πιο αργός από αθροιστή σταθερής υποδιαστολής). Μεγάλος Κύκλος Μικρό Utilization Αποδοτικές Μέθοδοι Αλγόριθµοι για Scheduling 31

Λειτουργικές Μονάδες Ποικίλων Καθυστερ. Multicycling: Ο κύκλος ρολογιού µικραίνει έτσι ώστε οι ταχείες λειτουργίες να ολοκληρώνονται σε έναν κύκλο. Οι πιο αργές λειτουργίες απαιτούν περισσότερους κύκλους. Αυξάνεται η αξιοποίηση των ταχέων µονάδων αφού δεν µένουν ανενεργές κατά την διάρκεια των κύκλων. Στις εισόδους των µονάδων πολλαπλών κύκλων απαιτούνται latches για να διατηρούν τα δεδοµένα έως ότου τα αποτελέσµατα να είναι διαθέσιµα. Ο αυξηµένος αριθµός βηµάτων ελέγχου, αυξάνει και την πολυπλοκότητα του γράφου CDFG. Αλγόριθµοι για Scheduling 32

Λειτουργικές Μονάδες Ποικίλων Καθυστερ. Chaining: Επιτρέπουµε την σειριακή εκτέλεση λειτουργιών σε ένα βήµα. Το αποτέλεσµα µίας µονάδας τροφοδοτείται σε µία άλλη µονάδα κατευθείαν. Απαιτεί συνδέσεις άµεσες των µονάδων (χωρίς παρεµβολή latches). Pipelining: Είναι απλή και αποδοτική τεχνική αύξησης παραλληλισµού. Επηρεάζει τον τρόπο υπολογισµού του Schedule. ύο λειτουργίες µπορούν να µοιράζονται την ίδια µονάδα και να εκτελούνται ταυτόχρονα (σε διαφορετικές βαθµίδες). Αλγόριθµοι για Scheduling 33

Λειτ. Μονάδες Πολλαπλών Λειτουργιών. Οι πολυλειτουργικές µονάδες χρησιµοποιούνται συχνά καθώς στοιχίζουν λιγότερο από ένα ισοδύναµο σύνολο µονο-λειτουργικών µονάδων. Παράδειγµα είναι ο αθροιστής/αφαιρέτης. Οι λειτουργικές µονάδες έχουν πολλές πιθανές υλοποιήσεις βιβλιοθήκης. Κάθε υλοποίηση έχει διαφορετικά χαρακτηριστικά area/delay. Παράδειγµα είναι ο αθροιστής ριπής και πρόβλεψης κρατουµένου Ο scheduler έχει να επιλέξει και τις µονάδες που θα χρησιµοποιήσει. Συνήθως επιλέγουµε γρήγορες µονάδες για το κρίσιµο µονοπάτι και αργές (αλλά φθηνές) για τα υπόλοιπα. Αλγόριθµοι για Scheduling 34

Ρεαλιστικές Περιγραφές. Θεωρήσαµε ότι έχουµε κώδικα χωρίς διακλαδώσεις (straight line). Οι δοµές συνθήκης και επανάληψης χρησιµοποιούνται πολύ συχνά. οµές Συνθήκης Αντιστοιχούν στις εντολές if-case. Οδηγούν σε πολλαπλές διακλαδώσεις αµοιβαία αποκλειόµενες. Οι αποδοτικοί αλγόριθµοι διαµοιράζουν resources ανάµεσα στις αµοιβαία αποκλειόµενες λειτουργίες. Αλγόριθµοι για Scheduling 35

Ρεαλιστικές Περιγραφές. Παράδειγµα: ο παρακάτω κώδικας απαιτεί ένα µόνο πολλαπλασιαστή και ένα βήµα εκτέλεσης: if (a>0) then b:=a*c else b:=d*c endif a 0 Συγκριτής a d Mux c Πολλαπλασιαστής b Αλγόριθµοι για Scheduling 36

Ρεαλιστικές Περιγραφές. οµές Επανάληψης Σε δοµές επανάληψης µπορούµε να εισάγουµε αρκετό παραλληλισµό. Μπορούµε να εκτελούµε πολλαπλές επαναλήψεις του loop ταυτόχρονα. u<3b Εσωτερικός παραλληλισµός µε pipelining Αλγόριθµοι για Scheduling 37

Scheduling για Pipelined κυκλώµατα Τα pipelined κυκλώµατα έχουν ένα µοντέλο ακολουθιακού γράφου και έναν ρυθµό δεδοµένων. Structural Pipeline: Ένα είδος pipeline είναι η χρήση pipelined resources. Functional Pipeline: Άλλο είδος pipeline είναι η χρήση non-pipelined resources και η επίτευξη του pipelining µε το scheduling του γράφου. A. Structural Pipeline Data introduction intervals: τα διαστήµατα που καταναλώνουν και παράγουν δεδοµένα οι pipelined resources (θεωρούνται σταθερά). Οι pipelined resources µπορούν να διαµοιραστούν ακόµη και όταν οι λειτουργίες είναι επικαλυπτόµενες. Υπάρχουν δύο προϋποθέσεις: Α. εν υπάρχει εξάρτηση δεδοµένων µεταξύ των λειτουργιών Β. Οι λειτουργίες δεν ξεκινούν στο ίδιο βήµα χρόνου Αλγόριθµοι για Scheduling 38

Scheduling για Pipelined κυκλώµατα Για Pipeline Resources: α 1 =3 πολλαπλ, α 2 =1 ALU t 1 = 2, t 2 = 1, πολλαπλ=pipelined µε unit interval Αλγόριθµοι για Scheduling 39

Scheduling για Pipelined κυκλώµατα Αλγόριθµοι για Scheduling 40