SlideShare a Scribd company logo
1 of 84
Συστολικοί επεξεργαστές
Κωνσταντίνος Διαμαντάρας
Αλεξάνδρειο ΤΕΙ Θεσσαλονίκης
Διάγραμμα Συστολικού Επεξεργαστή
Ένας συστολικός επεξεργαστής είναι μια μηχανή επιτάχυνσης της εκτέλεσης ενός συγκεκριμένου
αλγορίθμου (πχ sorting)
Διάγραμμα Συστολικού Επεξεργαστή
Ένας συστολικός επεξεργαστής είναι μια παράλληλη μηχανή προσκολλημένη σε ένα κεντρικό υπολογιστή
(host)
Διάγραμμα Συστολικού Επεξεργαστή
Πολλές επεξεργαστικές μονάδες (PU) εκτελούν την ίδια εντολή αλλά σε διαφορετικά δεδομένα. Μοντέλο
Single Instruction Multiple Data (SIMD)
Χαρακτηριστικά Συστολικού Επεξεργαστή
• Προσκολλημένος (attached) σε έναν υπολογιστή host.
• Όλες οι επεξεργαστικές μονάδες (PU) εκτελούν την ίδια
εντολή σε διαφορετικά δεδομένα (SIMD)
• Σύγχρονη επικοινωνία μεταξύ PU
• Εκτελεί έναν συγκεκριμένο αλγόριθμο (special purpose
machine)
• Εξειδικευμένες PU
• Υψηλό κόστος
Βήματα απεικόνισης αλγορίθμου σε
συστολικό επεξεργαστή
1. Μετατροπή κώδικα σε κώδικα μοναδικής ανάθεσης (single
assignment code)
2. Σχεδίαση Γράφου Εξάρτησης (Γ.Ε.)
3. Μετατροπή μακρινών ακμών σε τοπικές (προαιρετικά)
4. Προβολή Γ.Ε. σε Γράφο Ροής Σήματος
5. Χρονοδιάγραμμα
6. Σχεδίαση Συστολικού Επεξεργαστή
Παράδειγμα: Μονοδιάστατη συνέλιξη
• Μαθηματικός ορισμός:
• Είσοδος 𝑥1, 𝑥2, … , 𝑥 𝑁
• Μάσκα 𝑤0, … , 𝑤 𝑚−1
𝑦𝑖 = 𝑗=0
𝑚−1
𝑤𝑗 𝑥𝑖−𝑗, για 𝑖 = 1, … , 𝑁
• Χρήση: επεξεργασία μονοδιάστατων σημάτων (πχ ήχος).
Ισοδυναμεί με φιλτράρισμα. Πχ.
• Αν w=[1, 1, 1, 1, 1, 1] --> ενίσχυση χαμηλών συχνοτήτων
• Αν w=[1, -1, 1, -1, 1, -1] --> ενίσχυση υψηλών συχνοτήτων
Μονοδιάστατη συνέλιξη
• Κώδικας (ας πούμε ότι Ν=5, m=4)
• Είσοδος: x[1], …, x[5]
• Μάσκα: w[0], …, w[3]
• Έξοδος: y[1], …, y[5]
Θεωρούμε x[i]=0 αν i≤0.
for i=1...5 {
y[i] = 0
for j=0...3 {
y[i] = y[i] + w[j]*x[i-j]
} }
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
i j
1 y[1] = 0
1 0 y[1] = y[1] + w[0] * x[1]
1 1 y[1] = y[1] + w[1] * x[0]
1 2 y[1] = y[1] + w[2] * x[-1]
1 3 y[1] = y[1] + w[3] * x[-2]
2 y[2] = 0
2 0 y[2] = y[2] + w[0] * x[2]
2 1 y[2] = y[2] + w[1] * x[1]
2 2 y[2] = y[2] + w[2] * x[0]
... ... ...
Αναλύουμε τον κώδικα ξεδιπλώνοντας τους δύο βρόχους i, j.
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
i j
1 y[1] = 0
1 0 y[1] = y[1] + w[0] * x[1]
1 1 y[1] = y[1] + w[1] * x[0]
1 2 y[1] = y[1] + w[2] * x[-1]
1 3 y[1] = y[1] + w[3] * x[-2]
2 y[2] = 0
2 0 y[2] = y[2] + w[0] * x[2]
2 1 y[2] = y[2] + w[1] * x[1]
2 2 y[2] = y[2] + w[2] * x[0]
... ... ...
Παρατηρούμε ότι οι μεταβλητές y[1], y[2], … παθαίνουν πολλαπλές αναθέσεις, συγκεκριμένα 5 φορές η
κάθε μια. Ο κώδικας δεν είναι μοναδικής ανάθεσης.
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
i j
1 y[1] = 0
1 0 y[1] = y[1] + w[0] * x[1]
1 1 y[1] = y[1] + w[1] * x[0]
1 2 y[1] = y[1] + w[2] * x[-1]
1 3 y[1] = y[1] + w[3] * x[-2]
2 y[2] = 0
2 0 y[2] = y[2] + w[0] * x[2]
2 1 y[2] = y[2] + w[1] * x[1]
2 2 y[2] = y[2] + w[2] * x[0]
... ... ...
Κώδικας μοναδικής ανάθεσης = κώδικας όπου κάθε θέση μνήμης παθαίνει ανάθεση (ενημερώνεται)
ΑΚΡΙΒΩΣ ΜΙΑ ΦΟΡΑ.
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
i j
1 y[1][-1] = 0
1 0 y[1][0] = y[1][-1] + w[0] * x[1]
1 1 y[1][1] = y[1][0] + w[1] * x[0]
1 2 y[1][2] = y[1][1] + w[2] * x[-1]
1 3 y[1][3] = y[1][2] + w[3] * x[-2]
2 y[2][-1] = 0
2 0 y[2][0] = y[2][-1] + w[0] * x[2]
2 1 y[2][1] = y[2][0] + w[1] * x[1]
2 2 y[2][2] = y[2][1] + w[2] * x[0]
... ... ...
Μετατροπή σε κώδικα μοναδικής ανάθεσης --> προσθέτουμε ένα ακόμη δείκτη στον πίνακα y[]
μετατρέποντάς τον σε δισδιάστατο πίνακα y[][].
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
Τώρα οι μεταβλητές y[1][0], y[1][1], y[1][2], κλπ, παθαίνουν ανάθεση ακριβώς μια φορά.
i j
1 y[1][-1] = 0
1 0 y[1][0] = y[1][-1] + w[0] * x[1]
1 1 y[1][1] = y[1][0] + w[1] * x[0]
1 2 y[1][2] = y[1][1] + w[2] * x[-1]
1 3 y[1][3] = y[1][2] + w[3] * x[-2]
2 y[2][-1] = 0
2 0 y[2][0] = y[2][-1] + w[0] * x[2]
2 1 y[2][1] = y[2][0] + w[1] * x[1]
2 2 y[2][2] = y[2][1] + w[2] * x[0]
... ... ...
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
Επί πλέον είναι ξεκάθαρο τι χρησιμοποιείται ως είσοδος σε κάθε στιγμιότυπο του loop και τι
χρησιμοποιείται ως έξοδος.
i j
1 y[1][-1] = 0
1 0 y[1][0] = y[1][-1] + w[0] * x[1]
1 1 y[1][1] = y[1][0] + w[1] * x[0]
1 2 y[1][2] = y[1][1] + w[2] * x[-1]
1 3 y[1][3] = y[1][2] + w[3] * x[-2]
2 y[2][-1] = 0
2 0 y[2][0] = y[2][-1] + w[0] * x[2]
2 1 y[2][1] = y[2][0] + w[1] * x[1]
2 2 y[2][2] = y[2][1] + w[2] * x[0]
... ... ...
1. Μετατροπή σε κώδικα μοναδικής ανάθεσης
Επί πλέον είναι ξεκάθαρο τι χρησιμοποιείται ως είσοδος σε κάθε στιγμιότυπο του loop και τι
χρησιμοποιείται ως έξοδος.
i j Έξοδος Είσοδος
1 y[1][-1] 0
1 0 y[1][0] y[1][-1], w[0], x[1]
1 1 y[1][1] y[1][0], w[1], x[0]
1 2 y[1][2] y[1][1], w[2], x[-1]
1 3 y[1][3] y[1][2], w[3], x[-2]
2 y[2][-1] 0
2 0 y[2][0] y[2][-1], w[0], x[2]
2 1 y[2][1] y[2][0], w[1], x[1]
2 2 y[2][2] y[2][1], w[2], x[0]
... ... ...
Κώδικας μοναδικής ανάθεσης
• Ουσιαστικά έχουμε μετατρέψει τον κώδικα στον παρακάτω
ισοδύναμο:
for i=1...5 {
y[i][-1] = 0
for j=0...3 {
y[i][j] = y[i][j-1] + w[j]*x[i-j]
}
}
2. Δημιουργία Γράφου Εξάρτησης
Κάθε στιγμιότυπο [ i, j ] του διπλού βρόχου αντιστοιχεί σε ένα κόμβο του γράφου εξάρτησης.
Έχουμε δύο βρόχους ο ένας μέσα στον άλλο, άρα έχουμε δύο διαστάσεις στον γράφο.
i = 1
i = 2
i = 3
i = 4
i = 5
i
j
j = 0 j = 1 j = 2 j = 3
2. Δημιουργία Γράφου Εξάρτησης
Από το γράφο αυτό λείπουν οι εξαρτήσεις. Υπάρχουν μόνο τα στιγμιότυπα. Για να βρούμε τις εξαρτήσεις
πρέπει να δούμε ποια δεδομένα χρησιμοποιεί κάθε κόμβος.
i = 1
i = 2
i = 3
i = 4
i = 5
i
j
j = 0 j = 1 j = 2 j = 3
2. Δημιουργία Γράφου Εξάρτησης
Κατά το στιγμιότυπο [ i, j ] εκτελείται η πράξη y[i][j] = y[i][j-1]+w[j]*x[i-j]
for i=1...5 {
y[i][-1] = 0
for j=0...3 {
y[i][j] = y[i][j-1] + w[j]*x[i-j]
}
}
Κώδικας
Πυρήνας του
Βρόχου
Το περιεχομενο του κομβου
Συνεπώς ο κόμβος [ i, j ] του γράφου θα είναι έτσι
for i=1...5 {
y[i][-1] = 0
for j=0...3 {
y[i][j] = y[i][j-1] + w[j]*x[i-j]
}
}
Κώδικας
* +
w[j]
x[i-j]
y[i][j-1]
y[i][j]
Κόμβος [ i, j ]
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Είδαμε ότι ο κόμβος [i,j] δέχεται είσοδο το y[i][j-1] που προέρχεται από τον κόμβο [i,j-1]
i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Συνεπώς ο κόμβος [1,1] δέχεται είσοδο από τον κόμβο [1,0]. Άρα εξαρτάται από αυτόν. Δεν μπορεί να
ξεκινήσει την εκτέλεση του [1,1] αν δεν τελειώσει η εκτέλεση του [1,0]
1,0 1,1i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Ομοίως ο κόμβος [1,2] εξαρτάται από τον [1,1]…
1,1 1,2i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
2. Εξαρτήσεις στο Γράφο Εξάρτησης
….ο κόμβος [1,3] εξαρτάται από τον [1,2].
1,2 1,3i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Παρεμπιπτόντως, το αποτέλεσμα του κόμβου y[1][3] δεν τροφοδοτεί κανένα άλλο κόμβο. Είναι έξοδος
του αλγορίθμου.
1,3i = 1
i = 2
i = 3
i = 4
i = 5
i
j
j = 0 j = 1 j = 2 j = 3
y[1][3]
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Επίσης ο κόμβος [1,0] έχει σαν είσοδο την έξοδο του κόμβου y[i][-1] που είναι μηδέν. Για λόγους
απλούστευσης του σχήματος δεν ζωγραφίζουμε καθόλου τον κόμβο y[i][-1]
1,0i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
y[1][3]0
j
for i=1...5 {
y[i][-1] = 0
for j=0...3 {
y[i][j] = y[i][j-1] + w[j]*x[i-j]​
}
}
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Παρομοίως συμπληρώνονται όλες οι εξαρτήσεις του γράφου.
i = 1
i = 2
i = 3
i = 4
i = 5
i
j
j = 0 j = 1 j = 2 j = 3
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Επίσης κάθε κόμβος [i,j] δέχεται είσοδο το x[i-j]. Συνεπώς ο κόμβος [1,0] δέχεται το x[1] …
1,0i = 1
i = 2
i = 3
i = 4
i = 5
i
j
j = 0 j = 1 j = 2 j = 3
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[1]
2. Εξαρτήσεις στο Γράφο Εξάρτησης
…και παρομοίως δέχονται το x[1] οι κόμβοι [2,1], [3,2], [4,3]…
1,0
2,1
3,2
4,3
i = 1
i = 2
i = 3
i = 4
i = 5
i
j
j = 0 j = 1 j = 2 j = 3
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[1]
2. Εξαρτήσεις στο Γράφο Εξάρτησης
… παρομοίως εισέρχονται στον γράφο τα x[2], x[3], x[4], x[5]
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[1]x[2]x[3]
x[4]
x[5]
i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
2. Εξαρτήσεις στο Γράφο Εξάρτησης
… παρομοίως εισέρχονται στον γράφο τα x[0], x[-1], x[-2] που είναι όμως ίσα με μηδέν.
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[1]x[2]x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
i = 1
i = 2
i = 3
i = 4
i = 5
i
j
2. Εξαρτήσεις στο Γράφο Εξάρτησης
Επί πλέον κάθε κόμβος [i,j] δέχεται είσοδο το w[j].
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[1]x[2]x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
i = 1
i = 2
i = 3
i = 4
i = 5
i
j
w[0] w[1] w[2] w[3]
3. Μετατροπή μακρινών ακμών σε τοπικές
• Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware
• Οι κόμβοι θα μετατραπούν σε κυκλώματα
• Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας
• Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει
υπάρχει ένα κοινό ρολόι για όλους τους κόμβους.
• Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης
του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew)
απλά λόγω πεπερασμένης ταχύτητας του φωτός
Το ηλεκτρικό ρεύμα κινείται πρακτικά με την ταχύτητα του φωτός:
3 × 108 𝑚
𝑠𝑒𝑐
= 0.3
𝑚
𝑛𝑠𝑒𝑐
δηλαδή 30 εκατοστά ανά nano-second.
3. Μετατροπή μακρινών ακμών σε τοπικές
• Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware
• Οι κόμβοι θα μετατραπούν σε κυκλώματα
• Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας
• Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει
υπάρχει ένα κοινό ρολόι για όλους τους κόμβους.
• Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης
του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew)
απλά λόγω πεπερασμένης ταχύτητας του φωτός
Αν η συχνότητα ρολογιού είναι 3 GHz δηλαδή η περίοδος του ρολογιού είναι 1/3 nsec
τότε σε μια περίοδο του ρολογιού το ρεύμα διανύει 10 εκατοστά.
3. Μετατροπή μακρινών ακμών σε τοπικές
• Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware
• Οι κόμβοι θα μετατραπούν σε κυκλώματα
• Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας
• Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει
υπάρχει ένα κοινό ρολόι για όλους τους κόμβους.
• Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης
του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew)
απλά λόγω πεπερασμένης ταχύτητας του φωτός
Αν δύο επεξεργαστικές μονάδες απέχουν μεταξύ τους 10 εκατοστά
τότε η μια παραλαμβάνει το ρολόι με καθυστέρηση ενός κύκλου σε σχέση με την άλλη
3. Μετατροπή μακρινών ακμών σε τοπικές
• Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware
• Οι κόμβοι θα μετατραπούν σε κυκλώματα
• Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας
• Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει
υπάρχει ένα κοινό ρολόι για όλους τους κόμβους.
• Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης
του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew)
απλά λόγω πεπερασμένης ταχύτητας του φωτός
Αν δύο επεξεργαστικές μονάδες απέχουν μεταξύ τους 5 εκατοστά
τότε η μια παραλαμβάνει το ρολόι με καθυστέρηση μισού κύκλου σε σχέση με την άλλη
3. Μετατροπή μακρινών ακμών σε τοπικές
Οι μακρινές ακμές είναι ανεπιθύμητες. Μπορούν όμως να μετατραπούν σε κοντινές
i = 1
i = 2
i = 3
i = 4
i = 5
i
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[2]
x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
j
x[1]
w[0] w[1] w[2] w[3]
3. Μετατροπή μακρινών ακμών σε τοπικές
…περνώντας τις ακμές x[i-j] και w[j] μέσα από τον κόμβο [i,j]
i = 1
i = 2
i = 3
i = 4
i = 5
i
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[2]
x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
j
x[1]
w[0] w[1] w[2] w[3]
* +
w[j]
x[i-j]
y[i][j-1] y[i][j]
Κόμβος [ i, j ]
x[i-j]
w[j]
3. Μετατροπή μακρινών ακμών σε τοπικές
Πχ το δεδομένο x[i-j] εισάγεται πάνω αριστερά και εξάγεται ανέπαφο κάτω δεξιά
i = 1
i = 2
i = 3
i = 4
i = 5
i
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[2]
x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
j
x[1]
w[0] w[1] w[2] w[3]
* +
w[j]
x[i-j]
y[i][j-1] y[i][j]
Κόμβος [ i, j ]
x[i-j]
w[j]
3. Μετατροπή μακρινών ακμών σε τοπικές
Επίσης το δεδομένο w[j] εισάγεται πάνω και εξάγεται ανέπαφο κάτω
i = 1
i = 2
i = 3
i = 4
i = 5
i
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[2]
x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
j
x[1]
w[0] w[1] w[2] w[3]
* +
w[j]
x[i-j]
y[i][j-1] y[i][j]
Κόμβος [ i, j ]
x[i-j]
w[j]
3. Μετατροπή μακρινών ακμών σε τοπικές
Το κόστος είναι ότι δημιουργήσαμε τεχνητές εξαρτήσεις κάθετες και διαγώνιες.
Όπως θα δούμε όμως αυτό δεν είναι τόσο κακό όσο δείχνει εξ αρχής…
i = 1
i = 2
i = 3
i = 4
i = 5
i
y[1][3]0
y[2][3]0
y[3][3]0
y[4][3]0
y[5][3]0
x[2]
x[3]
x[4]
x[5]
0 0 0
j = 0 j = 1 j = 2 j = 3
j
x[1]
w[0] w[1] w[2] w[3]
3. Μετατροπή μακρινών ακμών σε τοπικές
Το κόστος είναι ότι δημιουργήσαμε τεχνητές εξαρτήσεις κάθετες και διαγώνιες.
Όπως θα δούμε όμως αυτό δεν είναι τόσο κακό όσο δείχνει εξ αρχής…
i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
ΑΛΓΟΡΙΘΜΟΣ = ΓΡΑΦΟΣ ΕΞΑΡΤΗΣΗΣ
i = 1
i = 2
i = 3
i = 4
i = 5
i
y[1][3]
y[2][3]
y[3][3]
y[4][3]
y[5][3]
j = 0 j = 1 j = 2 j = 3
j
0
0
0
0
0
x[2]
x[3]
x[4]
x[5]
0 0 0
x[1]
w[0] w[1] w[2] w[3]
ΕΙΣΟΔΟΣ
ΕΞΟΔΟΣ
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
ΑΠΕΙΚΟΝΙΣΗ (MAPPING) = Αντιστοίχιση των κόμβων σε επεξεργαστικές μονάδες.
i = 1
i = 2
i = 3
i = 4
i = 5
i
j = 0 j = 1 j = 2 j = 3
j
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Θεωρητικά θα μπορούσε κάθε κόμβος να είναι μια επεξεργαστική μονάδα.
Αυτό θα είχε όμως τεράστιο κόστος υλοποίησης (πχ. χιλιάδες PU)
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Μπορούμε να μειώσουμε τις διαστάσεις προβάλλοντας τον γράφο κατά μια κατεύθυνση.
Για παράδειγμα, μπορούμε να επιλέξουμε την οριζόντια προβολή με διάνυσμα d=[0,1]…
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[0,1]
Διάνυσμα
Προβολής
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Οι κόμβοι A, B, C, D εκτελούνται στον κόμβο E1,
Οι κόμβοι E, F, G, H εκτελούνται στον κόμβο E2, κλπ…
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[0,1]
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Ομοίως οι ακμές A->B, B->C, C->D, απεικονίζονται στην ακμή Ε1->Ε1
κλπ…
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[0,1]
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Ομοίως οι ακμές A->E, B->F, C->G, D->H, απεικονίζεται στην ακμή Ε1->Ε2
κλπ…
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[0,1]
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Ομοίως οι ακμές A->F, B->G, C->H, απεικονίζεται στην δεύτερη ακμή Ε1->Ε2
κλπ…
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[0,1]
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Ο Γράφος που προκύπτει από την προβολή λέγεται Γράφος Ροής Σήματος (Signal Flow Graph)
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[0,1]
4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ
Ο Γράφος που προκύπτει από την προβολή λέγεται Γράφος Ροής Σήματος (Signal Flow Graph)
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[1,0]
ΓράφοςΡοήςΣήματος
4. ΕΝΑΛΛΑΚΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗ
Εναλλακτικά μπορούμε να δοκιμάσουμε κι άλλα διανύσματα προβολής όπως d=[1,0]
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1 Ε2 Ε3 Ε4
d=[1,0]
4. ΕΠΙΛΟΓΗ ΑΠΕΙΚΟΝΙΣΗΣ
• Από τα παραπάνω είναι σαφές ότι η απεικόνιση επηρεάζει το πλήθος των
επεξεργαστικών μονάδων (PU) και το πλήθος των κόμβων που εκτελεί κάθε
επεξεργαστική μονάδα.
• Επιλέγουμε προβολή
• με βάση το budget (πολλές PU = ακριβό)
• με βάση την επίδοση (λίγοι κόμβοι / PU = καλύτερα)
Απεικόνιση Πλήθος PU Κόμβοι ανά PU
d=[0,1] 5 4
d=[1,0] 4 5
5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Έστω ότι έχουμε επιλέξει το διάνυσμα προβολής d=[1,0]
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[1,0]
5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Αφού επιλεγεί το ΠΟΥ θα εκτελεστούν οι κόμβοι
Πρέπει να αποφασιστεί το ΠΟΤΕ θα εκτελεστούν
i = 1
i = 2
i = 3
i = 4
i = 5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
j = 0 j = 1 j = 2 j = 3
j
Ε1
Ε2
Ε3
Ε4
Ε5
d=[1,0]
5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Το χρονοδιάγραμμα είναι μια σειρά από κύματα εκτέλεσης.
Λέγονται και ισόχρονα επίπεδα. Στο παράδειγμα είναι τα: t=1, t=2, t=3, …, t=8
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Όσοι κόμβοι βρίσκονται στο ίδιο ισόχρονο επίπεδο εκτελούνται ταυτόχρονα.
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
5. ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Στο γραμμικό χρονοδιάγραμμα τα ισόχρονα επίπεδα είναι κάθετα σε ένα διάνυσμα s.
Στο παράδειγμά μας s=[1,1].
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
s=[1,1]
5. ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Το διάνυσμα χρονοδιαγράμματος μοιάζει με την κατεύθυνση που φυσάει ο άνεμος.
Όπως ο άνεμος, σηκώνει κύματα κάθετα προς αυτό!
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
s=[1,1]
5. ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ
• Βασική Αρχή: το χρονοδιάγραμμα s πρέπει να σέβεται όλες τις
ακμές του γράφου εξάρτησης:
• Αν υπάρχει ακμή μεταξύ του κόμβου A και του κόμβου B πρέπει το
ισόχρονο επίπεδο του Α να είναι ΠΡΟΓΕΝΕΣΤΕΡΟ του ισόχρονου
επίπεδου του Β.
A
B
t1
t2
Πρέπει
t1 < t2
5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ
• Το διάνυσμα s δημιουργεί γωνία θ > 90
μοίρες με κάποια ακμή.
• Συνεπώς το εσωτερικό γινόμενο μεταξύ s
και e είναι αρνητικό:
𝐬, 𝐞 < 0
• Το χρονοδιάγραμμα αυτό δεν είναι
αποδεκτό διότι το Α εκτελείται σε
μεταγενέστερο ισόχρονο επίπεδο σε
σχέση με το Β. (t1 > t2)
A
t1
s
e
θ
Το εσωτερικό γινόμενο δύο διανυσμάτων 𝐚 = [𝑎1, 𝑎2], 𝐛 = [𝑏1, 𝑏2] είναι ο αριθμός
𝐚, 𝐛 = 𝑎1 𝑏1 + 𝑎2 𝑏2
t2
B
5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ
• Το διάνυσμα s δημιουργεί γωνία θ > 90
μοίρες με κάποια ακμή.
• Συνεπώς το εσωτερικό γινόμενο μεταξύ s
και e είναι αρνητικό:
𝐬, 𝐞 < 0
• Το χρονοδιάγραμμα αυτό δεν είναι
αποδεκτό διότι το Α εκτελείται σε
μεταγενέστερο ισόχρονο επίπεδο σε
σχέση με το Β. (t1 > t2)
A
t1
t2
s
e
θ
Είναι γνωστό ότι όταν τα διανύσματα 𝐚, 𝐛 σχηματίζουν γωνία > 90ο
τότε το εσωτερικό γινόμενο 𝐚, 𝐛 είναι αρνητικό
B
5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ
• Το διάνυσμα s δημιουργεί γωνία θ =
90 μοίρες με κάποια ακμή e.
• Συνεπώς το εσωτερικό γινόμενο
μεταξύ s και e είναι μηδέν:
𝐬, 𝐞 = 0
• Το χρονοδιάγραμμα αυτό δεν είναι
αποδεκτό διότι το Α εκτελείται στο
ίδιο ισόχρονο επίπεδο με το Β.
A
t1=t2
s
e
θ
Είναι γνωστό ότι όταν τα διανύσματα 𝐚, 𝐛 σχηματίζουν γωνία = 90ο
τότε το εσωτερικό γινόμενο 𝐚, 𝐛 είναι μηδέν
B
5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ
• Το διάνυσμα s δημιουργεί γωνία θ = 90 μοίρες
με το διάνυσμα προβολής d.
• Συνεπώς το εσωτερικό γινόμενο μεταξύ s και d
είναι μηδέν:
𝐬, 𝐝 = 0
• Το χρονοδιάγραμμα αυτό δεν είναι αποδεκτό
διότι το Α εκτελείται στο ίδιο ισόχρονο επίπεδο
με το Β, και τα δύο εκτελούνται στον ίδιο
επεξεργαστή Ei.
• Δεν χρειάζεται να υπάρχει ακμή μεταξύ Α και Β
για να απορριφθεί το χρονοδιάγραμμα αυτό.
A
t1=t2
s
e
θ
d
Εi
B
5. Συνθήκες αποδεκτού χρονοδιαγράμματος
• Για να είναι το χρονοδιάγραμμα αποδεκτό πρέπει
• Για κάθε ακμή 𝐞𝑖 του γράφου εξάρτησης έχουμε:
𝐬, 𝐞𝑖 > 0
• Για το διάνυσμα προβολής πρέπει να ισχύει:
𝐬, 𝐝 ≠ 0
5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται την ακμή 𝐞1
διότι το εσωτερικό γινόμενο είναι θετικό
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
𝐬=[1,1]
𝐞1=[0,1]
𝐬, 𝐞1 =1*0+1*1=1>0
5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται την ακμή 𝐞2
διότι το εσωτερικό γινόμενο είναι θετικό
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
𝐬=[1,1]
𝐞2=[1,0]
𝐬, 𝐞2 =1*1+1*0=1>0
5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται την ακμή 𝐞3
διότι το εσωτερικό γινόμενο είναι θετικό
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
𝐬=[1,1]
𝐞3=[1,1]
𝐬, 𝐞3 =1*1+1*1=2>0
5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ
Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται το διάνυσμα προβολής 𝐝
διότι το εσωτερικό γινόμενο είναι μη-μηδενικό
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
𝐬=[1,1]
𝐬, 𝐞3 =1*0+1*1=1≠0
𝐝=[0,1]
5. ΠΙΝΑΚΑΣ ΧΡΟΝΙΣΜΟΥ
Με βάση το διάνυσμα προβολής d και το χρονοδιάγραμμα s
Ο πίνακας χρονισμού καταγράφει ποιός κόμβος θα εκτελεστεί σε ποιά PU και πότε.
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
t=
1
t=
2
t=
3
t=
4
t=
5
t=
6
t=
7
t=
8
Ε1: A B C D
Ε2: E F G H
Ε3: I J K L
Ε4: M N O P
Ε5: Q R S T
ΠΙΝΑΚΑΣ ΧΡΟΝΙΣΜΟΥ
6. Διακόσμηση του γράφου ροής σήματος με
delays
Έχοντας το χρονοδιάγραμμα οι ακμές στο γράφο ροής σήματος διακοσμούνται με Delays (D)
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
6. Διακόσμηση του γράφου ροής σήματος με
delays
Για παράδειγμα η ακμή A->B η οποία απεικονίζεται στην ακμή E1->E1
Συνδέει δύο διαδοχικά ισόχρονα επίπεδα (t1->t2) άρα έχει Delay=1
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
6. Διακόσμηση του γράφου ροής σήματος με
delays
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
Επίσης η ακμή A->Ε η οποία απεικονίζεται στην ακμή E1->E2
Συνδέει δύο διαδοχικά ισόχρονα επίπεδα (t1->t2) άρα έχει Delay=1
6. Διακόσμηση του γράφου ροής σήματος με
delays
t=1
t=2
t=3
t=4
t=5
i
A
E
I
M
Q
B
F
J
N
R
C
G
K
O
S
D
H
L
P
T
t=6 t=7 t=8
j
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
Τέλος η ακμή A->F η οποία απεικονίζεται στην δεύτερη ακμή E1->E2
Συνδέει τα ισόχρονα επίπεδα t1->t3 άρα έχει Delay=2
6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
Με βάση τον διακοσμημένο γράφο ροής σήματος δημιουργούμε τον Συστολικό Επεξεργαστή.
1. Για κάθε κόμβο του Γ.Ρ.Σ. Δημιουργούμε μια επεξεργαστική μονάδα (PU)
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
PU1
PU2
PU3
PU4
PU5
ΓράφοςΡοήςΣήματος
ΣυστολικόςΕπεξεργαστής
6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
2. Το εσωτερικό κάθε PU έχει το σχεδιάγραμμα του κόμβου Γράφου Εξάρτησης
3. Κάθε Delay αντιστοιχίζεται σε ένα καταχωρητή R
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
PU1
PU2
PU3
PU4
PU5
PU i
*
w
x
R
R
R
y
wx
+
R
0
6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
PU1
PU2
PU3
PU4
PU5
PU i
*
w
x
R
R
R
y
wx
Κάθε ακμή στο Γράφο Ροής Σήματος έχει τους αντίστοιχους καταχωρητές μέσα σε κάθε PU.
+
R
0
6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
PU1
PU2
PU3
PU4
PU5
PU i
*
w
x
R
R
R
y
wx
Κάθε ακμή στο Γράφο Ροής Σήματος έχει τους αντίστοιχους καταχωρητές μέσα σε κάθε PU.
+
R
0
6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
Ε1
Ε2
Ε3
Ε4
Ε5
D
D
D
D
D
D
D
D
D
2D
2D
2D
2D
PU1
PU2
PU3
PU4
PU5
PU i
*
+
w
x
R
RR
R
y
wx
Κάθε ακμή στο Γράφο Ροής Σήματος έχει τους αντίστοιχους καταχωρητές μέσα σε κάθε PU.
0
ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
• Θυμίζουμε τον πίνακα χρονισμού
• Η πράξη της συνέλιξης
ολοκληρώνεται σε 8 κύκλους:
Τπαρ=8Τ.
• Αν είχαμε μια μόνο επεξεργαστική
μονάδα θα ολοκληρωνόταν σε
Τσειρ=20Τ
• Επιτάχυνση =
Τσειρ
Τπαρ
=
20
8
= 2.25
Αν υποθέσουμε ότι κάθε κόμβος απαιτεί ίδιο χρόνο υπολογισμού με τους υπόλοιπους ο χρόνος σειριακής
εκτέλεσης είναι όσο και οι κόμβοι δηλαδή 20.
t
=
1
t
=
2
t
=
3
t
=
4
t
=
5
t
=
6
t
=
7
t
=
8
Ε1: A B C D
Ε2: E F G H
Ε3: I J K L
Ε4: M N O P
Ε5: Q R S T
ΠΙΝΑΚΑΣ ΧΡΟΝΙΣΜΟΥ
ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
Αν εκτελεστούν περισσότερες από μια διαδοχικές συνελίξεις τότε μπορούμε να τις «πακετάρουμε»
αμέσως δίπλα τις προηγούμενες
t=
1
t=
2
t=
3
t=
4
t=
5
t=
6
t=
7
t=
8
t=
9
t=
10
t=
11
t=
12
t=
13
t=
14
t=
15
t=
16
Ε1: A B C D A B C D A B C D
Ε2: E F G H E F G H E F G H
Ε3: I J K L I J K L I J K L
Ε4: M N O P M N O P M N O P
Ε5: Q R S T Q R S T Q R S T
ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
• 1 συνέλιξη T1 = 8
• 2 συνελίξεις: Τ2 =
12
• 3 συνελίξεις: Τ3 =
16
• …
• Ν συνελίξεις:
ΤΝ = 4+4Ν
Βλέπουμε ότι η πρώτη συνέλιξη (μαύρα γράμματα) τελειώνει σε t=8. Η δεύτερη (κόκκινα γράμματα)
τελειώνει σε t=12, η τρίτη (μπλε γράμματα) τελειώνει σε t=16…
t=
1
t=
2
t=
3
t=
4
t=
5
t=
6
t=
7
t=
8
t=
9
t=
10
t=
11
t=
12
t=
13
t=
14
t=
15
t=
16
Ε1: A B C D A B C D A B C D
Ε2: E F G H E F G H E F G H
Ε3: I J K L I J K L I J K L
Ε4: M N O P M N O P M N O P
Ε5: Q R S T Q R S T Q R S T
ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ
• Ν συνελίξεις ολοκληρώνονται σε χρόνο:
• Τπαρ = (4+4Ν) με τη χρήση του συστολικού επεξεργαστή
• Τσειρ = 20Ν σε σειριακό υπολογιστή
Επιτάχυνση =
Τπαρ
Τσειρ
=
20Ν
4+4Ν
=
5
1
Ν
+1
• Αν το Ν είναι πολύ μεγάλο, τότε το κλάσμα 1/N στον παρονομαστή γίνεται πολύ
μικρό και έχουμε
Επιτάχυνση ≃ 5
• Έχοντας 5 επεξεργαστικές μονάδες η μέγιστη δυνατή επιτάχυνση είναι προφανώς 5.
• Συνεπώς επιτυγχάνουμε επιτάχυνση πολύ κοντά στην μέγιστη δυνατή, εφόσον γίνουν
πολλές διαδοχικές συνελίξεις.
• Αν δεν έχουμε να εκτελέσουμε μαζικά πολλές συνελίξεις, τότε δεν έχει νόημα να
σχεδιάσουμε συστολικό επεξεργαστή!

More Related Content

Featured

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by HubspotMarius Sescu
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTExpeed Software
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsPixeldarts
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthThinkNow
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfmarketingartwork
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 

Featured (20)

2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot2024 State of Marketing Report – by Hubspot
2024 State of Marketing Report – by Hubspot
 
Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 

Συστολικοί Επεξεργαστές - Σχεδίαση

  • 2. Διάγραμμα Συστολικού Επεξεργαστή Ένας συστολικός επεξεργαστής είναι μια μηχανή επιτάχυνσης της εκτέλεσης ενός συγκεκριμένου αλγορίθμου (πχ sorting)
  • 3. Διάγραμμα Συστολικού Επεξεργαστή Ένας συστολικός επεξεργαστής είναι μια παράλληλη μηχανή προσκολλημένη σε ένα κεντρικό υπολογιστή (host)
  • 4. Διάγραμμα Συστολικού Επεξεργαστή Πολλές επεξεργαστικές μονάδες (PU) εκτελούν την ίδια εντολή αλλά σε διαφορετικά δεδομένα. Μοντέλο Single Instruction Multiple Data (SIMD)
  • 5. Χαρακτηριστικά Συστολικού Επεξεργαστή • Προσκολλημένος (attached) σε έναν υπολογιστή host. • Όλες οι επεξεργαστικές μονάδες (PU) εκτελούν την ίδια εντολή σε διαφορετικά δεδομένα (SIMD) • Σύγχρονη επικοινωνία μεταξύ PU • Εκτελεί έναν συγκεκριμένο αλγόριθμο (special purpose machine) • Εξειδικευμένες PU • Υψηλό κόστος
  • 6. Βήματα απεικόνισης αλγορίθμου σε συστολικό επεξεργαστή 1. Μετατροπή κώδικα σε κώδικα μοναδικής ανάθεσης (single assignment code) 2. Σχεδίαση Γράφου Εξάρτησης (Γ.Ε.) 3. Μετατροπή μακρινών ακμών σε τοπικές (προαιρετικά) 4. Προβολή Γ.Ε. σε Γράφο Ροής Σήματος 5. Χρονοδιάγραμμα 6. Σχεδίαση Συστολικού Επεξεργαστή
  • 7. Παράδειγμα: Μονοδιάστατη συνέλιξη • Μαθηματικός ορισμός: • Είσοδος 𝑥1, 𝑥2, … , 𝑥 𝑁 • Μάσκα 𝑤0, … , 𝑤 𝑚−1 𝑦𝑖 = 𝑗=0 𝑚−1 𝑤𝑗 𝑥𝑖−𝑗, για 𝑖 = 1, … , 𝑁 • Χρήση: επεξεργασία μονοδιάστατων σημάτων (πχ ήχος). Ισοδυναμεί με φιλτράρισμα. Πχ. • Αν w=[1, 1, 1, 1, 1, 1] --> ενίσχυση χαμηλών συχνοτήτων • Αν w=[1, -1, 1, -1, 1, -1] --> ενίσχυση υψηλών συχνοτήτων
  • 8. Μονοδιάστατη συνέλιξη • Κώδικας (ας πούμε ότι Ν=5, m=4) • Είσοδος: x[1], …, x[5] • Μάσκα: w[0], …, w[3] • Έξοδος: y[1], …, y[5] Θεωρούμε x[i]=0 αν i≤0. for i=1...5 { y[i] = 0 for j=0...3 { y[i] = y[i] + w[j]*x[i-j] } }
  • 9. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης i j 1 y[1] = 0 1 0 y[1] = y[1] + w[0] * x[1] 1 1 y[1] = y[1] + w[1] * x[0] 1 2 y[1] = y[1] + w[2] * x[-1] 1 3 y[1] = y[1] + w[3] * x[-2] 2 y[2] = 0 2 0 y[2] = y[2] + w[0] * x[2] 2 1 y[2] = y[2] + w[1] * x[1] 2 2 y[2] = y[2] + w[2] * x[0] ... ... ... Αναλύουμε τον κώδικα ξεδιπλώνοντας τους δύο βρόχους i, j.
  • 10. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης i j 1 y[1] = 0 1 0 y[1] = y[1] + w[0] * x[1] 1 1 y[1] = y[1] + w[1] * x[0] 1 2 y[1] = y[1] + w[2] * x[-1] 1 3 y[1] = y[1] + w[3] * x[-2] 2 y[2] = 0 2 0 y[2] = y[2] + w[0] * x[2] 2 1 y[2] = y[2] + w[1] * x[1] 2 2 y[2] = y[2] + w[2] * x[0] ... ... ... Παρατηρούμε ότι οι μεταβλητές y[1], y[2], … παθαίνουν πολλαπλές αναθέσεις, συγκεκριμένα 5 φορές η κάθε μια. Ο κώδικας δεν είναι μοναδικής ανάθεσης.
  • 11. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης i j 1 y[1] = 0 1 0 y[1] = y[1] + w[0] * x[1] 1 1 y[1] = y[1] + w[1] * x[0] 1 2 y[1] = y[1] + w[2] * x[-1] 1 3 y[1] = y[1] + w[3] * x[-2] 2 y[2] = 0 2 0 y[2] = y[2] + w[0] * x[2] 2 1 y[2] = y[2] + w[1] * x[1] 2 2 y[2] = y[2] + w[2] * x[0] ... ... ... Κώδικας μοναδικής ανάθεσης = κώδικας όπου κάθε θέση μνήμης παθαίνει ανάθεση (ενημερώνεται) ΑΚΡΙΒΩΣ ΜΙΑ ΦΟΡΑ.
  • 12. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης i j 1 y[1][-1] = 0 1 0 y[1][0] = y[1][-1] + w[0] * x[1] 1 1 y[1][1] = y[1][0] + w[1] * x[0] 1 2 y[1][2] = y[1][1] + w[2] * x[-1] 1 3 y[1][3] = y[1][2] + w[3] * x[-2] 2 y[2][-1] = 0 2 0 y[2][0] = y[2][-1] + w[0] * x[2] 2 1 y[2][1] = y[2][0] + w[1] * x[1] 2 2 y[2][2] = y[2][1] + w[2] * x[0] ... ... ... Μετατροπή σε κώδικα μοναδικής ανάθεσης --> προσθέτουμε ένα ακόμη δείκτη στον πίνακα y[] μετατρέποντάς τον σε δισδιάστατο πίνακα y[][].
  • 13. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης Τώρα οι μεταβλητές y[1][0], y[1][1], y[1][2], κλπ, παθαίνουν ανάθεση ακριβώς μια φορά. i j 1 y[1][-1] = 0 1 0 y[1][0] = y[1][-1] + w[0] * x[1] 1 1 y[1][1] = y[1][0] + w[1] * x[0] 1 2 y[1][2] = y[1][1] + w[2] * x[-1] 1 3 y[1][3] = y[1][2] + w[3] * x[-2] 2 y[2][-1] = 0 2 0 y[2][0] = y[2][-1] + w[0] * x[2] 2 1 y[2][1] = y[2][0] + w[1] * x[1] 2 2 y[2][2] = y[2][1] + w[2] * x[0] ... ... ...
  • 14. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης Επί πλέον είναι ξεκάθαρο τι χρησιμοποιείται ως είσοδος σε κάθε στιγμιότυπο του loop και τι χρησιμοποιείται ως έξοδος. i j 1 y[1][-1] = 0 1 0 y[1][0] = y[1][-1] + w[0] * x[1] 1 1 y[1][1] = y[1][0] + w[1] * x[0] 1 2 y[1][2] = y[1][1] + w[2] * x[-1] 1 3 y[1][3] = y[1][2] + w[3] * x[-2] 2 y[2][-1] = 0 2 0 y[2][0] = y[2][-1] + w[0] * x[2] 2 1 y[2][1] = y[2][0] + w[1] * x[1] 2 2 y[2][2] = y[2][1] + w[2] * x[0] ... ... ...
  • 15. 1. Μετατροπή σε κώδικα μοναδικής ανάθεσης Επί πλέον είναι ξεκάθαρο τι χρησιμοποιείται ως είσοδος σε κάθε στιγμιότυπο του loop και τι χρησιμοποιείται ως έξοδος. i j Έξοδος Είσοδος 1 y[1][-1] 0 1 0 y[1][0] y[1][-1], w[0], x[1] 1 1 y[1][1] y[1][0], w[1], x[0] 1 2 y[1][2] y[1][1], w[2], x[-1] 1 3 y[1][3] y[1][2], w[3], x[-2] 2 y[2][-1] 0 2 0 y[2][0] y[2][-1], w[0], x[2] 2 1 y[2][1] y[2][0], w[1], x[1] 2 2 y[2][2] y[2][1], w[2], x[0] ... ... ...
  • 16. Κώδικας μοναδικής ανάθεσης • Ουσιαστικά έχουμε μετατρέψει τον κώδικα στον παρακάτω ισοδύναμο: for i=1...5 { y[i][-1] = 0 for j=0...3 { y[i][j] = y[i][j-1] + w[j]*x[i-j] } }
  • 17. 2. Δημιουργία Γράφου Εξάρτησης Κάθε στιγμιότυπο [ i, j ] του διπλού βρόχου αντιστοιχεί σε ένα κόμβο του γράφου εξάρτησης. Έχουμε δύο βρόχους ο ένας μέσα στον άλλο, άρα έχουμε δύο διαστάσεις στον γράφο. i = 1 i = 2 i = 3 i = 4 i = 5 i j j = 0 j = 1 j = 2 j = 3
  • 18. 2. Δημιουργία Γράφου Εξάρτησης Από το γράφο αυτό λείπουν οι εξαρτήσεις. Υπάρχουν μόνο τα στιγμιότυπα. Για να βρούμε τις εξαρτήσεις πρέπει να δούμε ποια δεδομένα χρησιμοποιεί κάθε κόμβος. i = 1 i = 2 i = 3 i = 4 i = 5 i j j = 0 j = 1 j = 2 j = 3
  • 19. 2. Δημιουργία Γράφου Εξάρτησης Κατά το στιγμιότυπο [ i, j ] εκτελείται η πράξη y[i][j] = y[i][j-1]+w[j]*x[i-j] for i=1...5 { y[i][-1] = 0 for j=0...3 { y[i][j] = y[i][j-1] + w[j]*x[i-j] } } Κώδικας Πυρήνας του Βρόχου
  • 20. Το περιεχομενο του κομβου Συνεπώς ο κόμβος [ i, j ] του γράφου θα είναι έτσι for i=1...5 { y[i][-1] = 0 for j=0...3 { y[i][j] = y[i][j-1] + w[j]*x[i-j] } } Κώδικας * + w[j] x[i-j] y[i][j-1] y[i][j] Κόμβος [ i, j ]
  • 21. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Είδαμε ότι ο κόμβος [i,j] δέχεται είσοδο το y[i][j-1] που προέρχεται από τον κόμβο [i,j-1] i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 22. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Συνεπώς ο κόμβος [1,1] δέχεται είσοδο από τον κόμβο [1,0]. Άρα εξαρτάται από αυτόν. Δεν μπορεί να ξεκινήσει την εκτέλεση του [1,1] αν δεν τελειώσει η εκτέλεση του [1,0] 1,0 1,1i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 23. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Ομοίως ο κόμβος [1,2] εξαρτάται από τον [1,1]… 1,1 1,2i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 24. 2. Εξαρτήσεις στο Γράφο Εξάρτησης ….ο κόμβος [1,3] εξαρτάται από τον [1,2]. 1,2 1,3i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 25. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Παρεμπιπτόντως, το αποτέλεσμα του κόμβου y[1][3] δεν τροφοδοτεί κανένα άλλο κόμβο. Είναι έξοδος του αλγορίθμου. 1,3i = 1 i = 2 i = 3 i = 4 i = 5 i j j = 0 j = 1 j = 2 j = 3 y[1][3]
  • 26. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Επίσης ο κόμβος [1,0] έχει σαν είσοδο την έξοδο του κόμβου y[i][-1] που είναι μηδέν. Για λόγους απλούστευσης του σχήματος δεν ζωγραφίζουμε καθόλου τον κόμβο y[i][-1] 1,0i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 y[1][3]0 j for i=1...5 { y[i][-1] = 0 for j=0...3 { y[i][j] = y[i][j-1] + w[j]*x[i-j]​ } }
  • 27. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Παρομοίως συμπληρώνονται όλες οι εξαρτήσεις του γράφου. i = 1 i = 2 i = 3 i = 4 i = 5 i j j = 0 j = 1 j = 2 j = 3 y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0
  • 28. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Επίσης κάθε κόμβος [i,j] δέχεται είσοδο το x[i-j]. Συνεπώς ο κόμβος [1,0] δέχεται το x[1] … 1,0i = 1 i = 2 i = 3 i = 4 i = 5 i j j = 0 j = 1 j = 2 j = 3 y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[1]
  • 29. 2. Εξαρτήσεις στο Γράφο Εξάρτησης …και παρομοίως δέχονται το x[1] οι κόμβοι [2,1], [3,2], [4,3]… 1,0 2,1 3,2 4,3 i = 1 i = 2 i = 3 i = 4 i = 5 i j j = 0 j = 1 j = 2 j = 3 y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[1]
  • 30. 2. Εξαρτήσεις στο Γράφο Εξάρτησης … παρομοίως εισέρχονται στον γράφο τα x[2], x[3], x[4], x[5] y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[1]x[2]x[3] x[4] x[5] i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 31. 2. Εξαρτήσεις στο Γράφο Εξάρτησης … παρομοίως εισέρχονται στον γράφο τα x[0], x[-1], x[-2] που είναι όμως ίσα με μηδέν. y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[1]x[2]x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 i = 1 i = 2 i = 3 i = 4 i = 5 i j
  • 32. 2. Εξαρτήσεις στο Γράφο Εξάρτησης Επί πλέον κάθε κόμβος [i,j] δέχεται είσοδο το w[j]. y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[1]x[2]x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 i = 1 i = 2 i = 3 i = 4 i = 5 i j w[0] w[1] w[2] w[3]
  • 33. 3. Μετατροπή μακρινών ακμών σε τοπικές • Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware • Οι κόμβοι θα μετατραπούν σε κυκλώματα • Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας • Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει υπάρχει ένα κοινό ρολόι για όλους τους κόμβους. • Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew) απλά λόγω πεπερασμένης ταχύτητας του φωτός Το ηλεκτρικό ρεύμα κινείται πρακτικά με την ταχύτητα του φωτός: 3 × 108 𝑚 𝑠𝑒𝑐 = 0.3 𝑚 𝑛𝑠𝑒𝑐 δηλαδή 30 εκατοστά ανά nano-second.
  • 34. 3. Μετατροπή μακρινών ακμών σε τοπικές • Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware • Οι κόμβοι θα μετατραπούν σε κυκλώματα • Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας • Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει υπάρχει ένα κοινό ρολόι για όλους τους κόμβους. • Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew) απλά λόγω πεπερασμένης ταχύτητας του φωτός Αν η συχνότητα ρολογιού είναι 3 GHz δηλαδή η περίοδος του ρολογιού είναι 1/3 nsec τότε σε μια περίοδο του ρολογιού το ρεύμα διανύει 10 εκατοστά.
  • 35. 3. Μετατροπή μακρινών ακμών σε τοπικές • Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware • Οι κόμβοι θα μετατραπούν σε κυκλώματα • Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας • Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει υπάρχει ένα κοινό ρολόι για όλους τους κόμβους. • Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew) απλά λόγω πεπερασμένης ταχύτητας του φωτός Αν δύο επεξεργαστικές μονάδες απέχουν μεταξύ τους 10 εκατοστά τότε η μια παραλαμβάνει το ρολόι με καθυστέρηση ενός κύκλου σε σχέση με την άλλη
  • 36. 3. Μετατροπή μακρινών ακμών σε τοπικές • Όπως ίσως είναι σαφές ο γράφος θα μετατραπεί σε hardware • Οι κόμβοι θα μετατραπούν σε κυκλώματα • Οι ακμές θα μετατραπούν σε καλώδια επικοινωνίας • Θυμίζουμε ότι στο συστολικό επεξεργαστή που θα προκύψει υπάρχει ένα κοινό ρολόι για όλους τους κόμβους. • Μεγάλα σε μήκος καλώδια έχουν τον κίνδυνο διαφοροποίησης του συγχρονισμού του ρολογιού μεταξύ κόμβων (clock skew) απλά λόγω πεπερασμένης ταχύτητας του φωτός Αν δύο επεξεργαστικές μονάδες απέχουν μεταξύ τους 5 εκατοστά τότε η μια παραλαμβάνει το ρολόι με καθυστέρηση μισού κύκλου σε σχέση με την άλλη
  • 37. 3. Μετατροπή μακρινών ακμών σε τοπικές Οι μακρινές ακμές είναι ανεπιθύμητες. Μπορούν όμως να μετατραπούν σε κοντινές i = 1 i = 2 i = 3 i = 4 i = 5 i y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[2] x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 j x[1] w[0] w[1] w[2] w[3]
  • 38. 3. Μετατροπή μακρινών ακμών σε τοπικές …περνώντας τις ακμές x[i-j] και w[j] μέσα από τον κόμβο [i,j] i = 1 i = 2 i = 3 i = 4 i = 5 i y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[2] x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 j x[1] w[0] w[1] w[2] w[3] * + w[j] x[i-j] y[i][j-1] y[i][j] Κόμβος [ i, j ] x[i-j] w[j]
  • 39. 3. Μετατροπή μακρινών ακμών σε τοπικές Πχ το δεδομένο x[i-j] εισάγεται πάνω αριστερά και εξάγεται ανέπαφο κάτω δεξιά i = 1 i = 2 i = 3 i = 4 i = 5 i y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[2] x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 j x[1] w[0] w[1] w[2] w[3] * + w[j] x[i-j] y[i][j-1] y[i][j] Κόμβος [ i, j ] x[i-j] w[j]
  • 40. 3. Μετατροπή μακρινών ακμών σε τοπικές Επίσης το δεδομένο w[j] εισάγεται πάνω και εξάγεται ανέπαφο κάτω i = 1 i = 2 i = 3 i = 4 i = 5 i y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[2] x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 j x[1] w[0] w[1] w[2] w[3] * + w[j] x[i-j] y[i][j-1] y[i][j] Κόμβος [ i, j ] x[i-j] w[j]
  • 41. 3. Μετατροπή μακρινών ακμών σε τοπικές Το κόστος είναι ότι δημιουργήσαμε τεχνητές εξαρτήσεις κάθετες και διαγώνιες. Όπως θα δούμε όμως αυτό δεν είναι τόσο κακό όσο δείχνει εξ αρχής… i = 1 i = 2 i = 3 i = 4 i = 5 i y[1][3]0 y[2][3]0 y[3][3]0 y[4][3]0 y[5][3]0 x[2] x[3] x[4] x[5] 0 0 0 j = 0 j = 1 j = 2 j = 3 j x[1] w[0] w[1] w[2] w[3]
  • 42. 3. Μετατροπή μακρινών ακμών σε τοπικές Το κόστος είναι ότι δημιουργήσαμε τεχνητές εξαρτήσεις κάθετες και διαγώνιες. Όπως θα δούμε όμως αυτό δεν είναι τόσο κακό όσο δείχνει εξ αρχής… i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 43. ΑΛΓΟΡΙΘΜΟΣ = ΓΡΑΦΟΣ ΕΞΑΡΤΗΣΗΣ i = 1 i = 2 i = 3 i = 4 i = 5 i y[1][3] y[2][3] y[3][3] y[4][3] y[5][3] j = 0 j = 1 j = 2 j = 3 j 0 0 0 0 0 x[2] x[3] x[4] x[5] 0 0 0 x[1] w[0] w[1] w[2] w[3] ΕΙΣΟΔΟΣ ΕΞΟΔΟΣ
  • 44. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ ΑΠΕΙΚΟΝΙΣΗ (MAPPING) = Αντιστοίχιση των κόμβων σε επεξεργαστικές μονάδες. i = 1 i = 2 i = 3 i = 4 i = 5 i j = 0 j = 1 j = 2 j = 3 j
  • 45. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Θεωρητικά θα μπορούσε κάθε κόμβος να είναι μια επεξεργαστική μονάδα. Αυτό θα είχε όμως τεράστιο κόστος υλοποίησης (πχ. χιλιάδες PU) i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j
  • 46. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Μπορούμε να μειώσουμε τις διαστάσεις προβάλλοντας τον γράφο κατά μια κατεύθυνση. Για παράδειγμα, μπορούμε να επιλέξουμε την οριζόντια προβολή με διάνυσμα d=[0,1]… i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[0,1] Διάνυσμα Προβολής
  • 47. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Οι κόμβοι A, B, C, D εκτελούνται στον κόμβο E1, Οι κόμβοι E, F, G, H εκτελούνται στον κόμβο E2, κλπ… i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[0,1]
  • 48. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Ομοίως οι ακμές A->B, B->C, C->D, απεικονίζονται στην ακμή Ε1->Ε1 κλπ… i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[0,1]
  • 49. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Ομοίως οι ακμές A->E, B->F, C->G, D->H, απεικονίζεται στην ακμή Ε1->Ε2 κλπ… i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[0,1]
  • 50. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Ομοίως οι ακμές A->F, B->G, C->H, απεικονίζεται στην δεύτερη ακμή Ε1->Ε2 κλπ… i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[0,1]
  • 51. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Ο Γράφος που προκύπτει από την προβολή λέγεται Γράφος Ροής Σήματος (Signal Flow Graph) i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[0,1]
  • 52. 4. ΑΠΕΙΚΟΝΙΣΗ ΜΕ ΓΡΑΜΜΙΚΗ ΠΡΟΒΟΛΗ Ο Γράφος που προκύπτει από την προβολή λέγεται Γράφος Ροής Σήματος (Signal Flow Graph) i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[1,0] ΓράφοςΡοήςΣήματος
  • 53. 4. ΕΝΑΛΛΑΚΤΙΚΗ ΑΠΕΙΚΟΝΙΣΗ Εναλλακτικά μπορούμε να δοκιμάσουμε κι άλλα διανύσματα προβολής όπως d=[1,0] i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 d=[1,0]
  • 54. 4. ΕΠΙΛΟΓΗ ΑΠΕΙΚΟΝΙΣΗΣ • Από τα παραπάνω είναι σαφές ότι η απεικόνιση επηρεάζει το πλήθος των επεξεργαστικών μονάδων (PU) και το πλήθος των κόμβων που εκτελεί κάθε επεξεργαστική μονάδα. • Επιλέγουμε προβολή • με βάση το budget (πολλές PU = ακριβό) • με βάση την επίδοση (λίγοι κόμβοι / PU = καλύτερα) Απεικόνιση Πλήθος PU Κόμβοι ανά PU d=[0,1] 5 4 d=[1,0] 4 5
  • 55. 5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Έστω ότι έχουμε επιλέξει το διάνυσμα προβολής d=[1,0] i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[1,0]
  • 56. 5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Αφού επιλεγεί το ΠΟΥ θα εκτελεστούν οι κόμβοι Πρέπει να αποφασιστεί το ΠΟΤΕ θα εκτελεστούν i = 1 i = 2 i = 3 i = 4 i = 5 i A E I M Q B F J N R C G K O S D H L P T j = 0 j = 1 j = 2 j = 3 j Ε1 Ε2 Ε3 Ε4 Ε5 d=[1,0]
  • 57. 5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Το χρονοδιάγραμμα είναι μια σειρά από κύματα εκτέλεσης. Λέγονται και ισόχρονα επίπεδα. Στο παράδειγμα είναι τα: t=1, t=2, t=3, …, t=8 t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5
  • 58. 5. ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Όσοι κόμβοι βρίσκονται στο ίδιο ισόχρονο επίπεδο εκτελούνται ταυτόχρονα. t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5
  • 59. 5. ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Στο γραμμικό χρονοδιάγραμμα τα ισόχρονα επίπεδα είναι κάθετα σε ένα διάνυσμα s. Στο παράδειγμά μας s=[1,1]. t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 s=[1,1]
  • 60. 5. ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Το διάνυσμα χρονοδιαγράμματος μοιάζει με την κατεύθυνση που φυσάει ο άνεμος. Όπως ο άνεμος, σηκώνει κύματα κάθετα προς αυτό! t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 s=[1,1]
  • 61. 5. ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ • Βασική Αρχή: το χρονοδιάγραμμα s πρέπει να σέβεται όλες τις ακμές του γράφου εξάρτησης: • Αν υπάρχει ακμή μεταξύ του κόμβου A και του κόμβου B πρέπει το ισόχρονο επίπεδο του Α να είναι ΠΡΟΓΕΝΕΣΤΕΡΟ του ισόχρονου επίπεδου του Β. A B t1 t2 Πρέπει t1 < t2
  • 62. 5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ • Το διάνυσμα s δημιουργεί γωνία θ > 90 μοίρες με κάποια ακμή. • Συνεπώς το εσωτερικό γινόμενο μεταξύ s και e είναι αρνητικό: 𝐬, 𝐞 < 0 • Το χρονοδιάγραμμα αυτό δεν είναι αποδεκτό διότι το Α εκτελείται σε μεταγενέστερο ισόχρονο επίπεδο σε σχέση με το Β. (t1 > t2) A t1 s e θ Το εσωτερικό γινόμενο δύο διανυσμάτων 𝐚 = [𝑎1, 𝑎2], 𝐛 = [𝑏1, 𝑏2] είναι ο αριθμός 𝐚, 𝐛 = 𝑎1 𝑏1 + 𝑎2 𝑏2 t2 B
  • 63. 5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ • Το διάνυσμα s δημιουργεί γωνία θ > 90 μοίρες με κάποια ακμή. • Συνεπώς το εσωτερικό γινόμενο μεταξύ s και e είναι αρνητικό: 𝐬, 𝐞 < 0 • Το χρονοδιάγραμμα αυτό δεν είναι αποδεκτό διότι το Α εκτελείται σε μεταγενέστερο ισόχρονο επίπεδο σε σχέση με το Β. (t1 > t2) A t1 t2 s e θ Είναι γνωστό ότι όταν τα διανύσματα 𝐚, 𝐛 σχηματίζουν γωνία > 90ο τότε το εσωτερικό γινόμενο 𝐚, 𝐛 είναι αρνητικό B
  • 64. 5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ • Το διάνυσμα s δημιουργεί γωνία θ = 90 μοίρες με κάποια ακμή e. • Συνεπώς το εσωτερικό γινόμενο μεταξύ s και e είναι μηδέν: 𝐬, 𝐞 = 0 • Το χρονοδιάγραμμα αυτό δεν είναι αποδεκτό διότι το Α εκτελείται στο ίδιο ισόχρονο επίπεδο με το Β. A t1=t2 s e θ Είναι γνωστό ότι όταν τα διανύσματα 𝐚, 𝐛 σχηματίζουν γωνία = 90ο τότε το εσωτερικό γινόμενο 𝐚, 𝐛 είναι μηδέν B
  • 65. 5. ΜΗ ΑΠΟΔΕΚΤΑ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑΤΑ • Το διάνυσμα s δημιουργεί γωνία θ = 90 μοίρες με το διάνυσμα προβολής d. • Συνεπώς το εσωτερικό γινόμενο μεταξύ s και d είναι μηδέν: 𝐬, 𝐝 = 0 • Το χρονοδιάγραμμα αυτό δεν είναι αποδεκτό διότι το Α εκτελείται στο ίδιο ισόχρονο επίπεδο με το Β, και τα δύο εκτελούνται στον ίδιο επεξεργαστή Ei. • Δεν χρειάζεται να υπάρχει ακμή μεταξύ Α και Β για να απορριφθεί το χρονοδιάγραμμα αυτό. A t1=t2 s e θ d Εi B
  • 66. 5. Συνθήκες αποδεκτού χρονοδιαγράμματος • Για να είναι το χρονοδιάγραμμα αποδεκτό πρέπει • Για κάθε ακμή 𝐞𝑖 του γράφου εξάρτησης έχουμε: 𝐬, 𝐞𝑖 > 0 • Για το διάνυσμα προβολής πρέπει να ισχύει: 𝐬, 𝐝 ≠ 0
  • 67. 5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται την ακμή 𝐞1 διότι το εσωτερικό γινόμενο είναι θετικό t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j 𝐬=[1,1] 𝐞1=[0,1] 𝐬, 𝐞1 =1*0+1*1=1>0
  • 68. 5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται την ακμή 𝐞2 διότι το εσωτερικό γινόμενο είναι θετικό t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j 𝐬=[1,1] 𝐞2=[1,0] 𝐬, 𝐞2 =1*1+1*0=1>0
  • 69. 5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται την ακμή 𝐞3 διότι το εσωτερικό γινόμενο είναι θετικό t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j 𝐬=[1,1] 𝐞3=[1,1] 𝐬, 𝐞3 =1*1+1*1=2>0
  • 70. 5. ΑΠΟΔΕΚΤΟ ΓΡΑΜΜΙΚΟ ΧΡΟΝΟΔΙΑΓΡΑΜΜΑ Στο παράδειγμά μας το χρονοδιάγραμμα 𝐬 σέβεται το διάνυσμα προβολής 𝐝 διότι το εσωτερικό γινόμενο είναι μη-μηδενικό t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j 𝐬=[1,1] 𝐬, 𝐞3 =1*0+1*1=1≠0 𝐝=[0,1]
  • 71. 5. ΠΙΝΑΚΑΣ ΧΡΟΝΙΣΜΟΥ Με βάση το διάνυσμα προβολής d και το χρονοδιάγραμμα s Ο πίνακας χρονισμού καταγράφει ποιός κόμβος θα εκτελεστεί σε ποιά PU και πότε. t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 t= 1 t= 2 t= 3 t= 4 t= 5 t= 6 t= 7 t= 8 Ε1: A B C D Ε2: E F G H Ε3: I J K L Ε4: M N O P Ε5: Q R S T ΠΙΝΑΚΑΣ ΧΡΟΝΙΣΜΟΥ
  • 72. 6. Διακόσμηση του γράφου ροής σήματος με delays Έχοντας το χρονοδιάγραμμα οι ακμές στο γράφο ροής σήματος διακοσμούνται με Delays (D) t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D
  • 73. 6. Διακόσμηση του γράφου ροής σήματος με delays Για παράδειγμα η ακμή A->B η οποία απεικονίζεται στην ακμή E1->E1 Συνδέει δύο διαδοχικά ισόχρονα επίπεδα (t1->t2) άρα έχει Delay=1 t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D
  • 74. 6. Διακόσμηση του γράφου ροής σήματος με delays t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D Επίσης η ακμή A->Ε η οποία απεικονίζεται στην ακμή E1->E2 Συνδέει δύο διαδοχικά ισόχρονα επίπεδα (t1->t2) άρα έχει Delay=1
  • 75. 6. Διακόσμηση του γράφου ροής σήματος με delays t=1 t=2 t=3 t=4 t=5 i A E I M Q B F J N R C G K O S D H L P T t=6 t=7 t=8 j Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D Τέλος η ακμή A->F η οποία απεικονίζεται στην δεύτερη ακμή E1->E2 Συνδέει τα ισόχρονα επίπεδα t1->t3 άρα έχει Delay=2
  • 76. 6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ Με βάση τον διακοσμημένο γράφο ροής σήματος δημιουργούμε τον Συστολικό Επεξεργαστή. 1. Για κάθε κόμβο του Γ.Ρ.Σ. Δημιουργούμε μια επεξεργαστική μονάδα (PU) Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D PU1 PU2 PU3 PU4 PU5 ΓράφοςΡοήςΣήματος ΣυστολικόςΕπεξεργαστής
  • 77. 6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ 2. Το εσωτερικό κάθε PU έχει το σχεδιάγραμμα του κόμβου Γράφου Εξάρτησης 3. Κάθε Delay αντιστοιχίζεται σε ένα καταχωρητή R Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D PU1 PU2 PU3 PU4 PU5 PU i * w x R R R y wx + R 0
  • 78. 6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D PU1 PU2 PU3 PU4 PU5 PU i * w x R R R y wx Κάθε ακμή στο Γράφο Ροής Σήματος έχει τους αντίστοιχους καταχωρητές μέσα σε κάθε PU. + R 0
  • 79. 6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D PU1 PU2 PU3 PU4 PU5 PU i * w x R R R y wx Κάθε ακμή στο Γράφο Ροής Σήματος έχει τους αντίστοιχους καταχωρητές μέσα σε κάθε PU. + R 0
  • 80. 6. ΣΧΕΔΙΑΣΜΟΣ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ Ε1 Ε2 Ε3 Ε4 Ε5 D D D D D D D D D 2D 2D 2D 2D PU1 PU2 PU3 PU4 PU5 PU i * + w x R RR R y wx Κάθε ακμή στο Γράφο Ροής Σήματος έχει τους αντίστοιχους καταχωρητές μέσα σε κάθε PU. 0
  • 81. ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ • Θυμίζουμε τον πίνακα χρονισμού • Η πράξη της συνέλιξης ολοκληρώνεται σε 8 κύκλους: Τπαρ=8Τ. • Αν είχαμε μια μόνο επεξεργαστική μονάδα θα ολοκληρωνόταν σε Τσειρ=20Τ • Επιτάχυνση = Τσειρ Τπαρ = 20 8 = 2.25 Αν υποθέσουμε ότι κάθε κόμβος απαιτεί ίδιο χρόνο υπολογισμού με τους υπόλοιπους ο χρόνος σειριακής εκτέλεσης είναι όσο και οι κόμβοι δηλαδή 20. t = 1 t = 2 t = 3 t = 4 t = 5 t = 6 t = 7 t = 8 Ε1: A B C D Ε2: E F G H Ε3: I J K L Ε4: M N O P Ε5: Q R S T ΠΙΝΑΚΑΣ ΧΡΟΝΙΣΜΟΥ
  • 82. ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ Αν εκτελεστούν περισσότερες από μια διαδοχικές συνελίξεις τότε μπορούμε να τις «πακετάρουμε» αμέσως δίπλα τις προηγούμενες t= 1 t= 2 t= 3 t= 4 t= 5 t= 6 t= 7 t= 8 t= 9 t= 10 t= 11 t= 12 t= 13 t= 14 t= 15 t= 16 Ε1: A B C D A B C D A B C D Ε2: E F G H E F G H E F G H Ε3: I J K L I J K L I J K L Ε4: M N O P M N O P M N O P Ε5: Q R S T Q R S T Q R S T
  • 83. ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ • 1 συνέλιξη T1 = 8 • 2 συνελίξεις: Τ2 = 12 • 3 συνελίξεις: Τ3 = 16 • … • Ν συνελίξεις: ΤΝ = 4+4Ν Βλέπουμε ότι η πρώτη συνέλιξη (μαύρα γράμματα) τελειώνει σε t=8. Η δεύτερη (κόκκινα γράμματα) τελειώνει σε t=12, η τρίτη (μπλε γράμματα) τελειώνει σε t=16… t= 1 t= 2 t= 3 t= 4 t= 5 t= 6 t= 7 t= 8 t= 9 t= 10 t= 11 t= 12 t= 13 t= 14 t= 15 t= 16 Ε1: A B C D A B C D A B C D Ε2: E F G H E F G H E F G H Ε3: I J K L I J K L I J K L Ε4: M N O P M N O P M N O P Ε5: Q R S T Q R S T Q R S T
  • 84. ΕΠΙΔΟΣΗ ΣΥΣΤΟΛΙΚΟΥ ΕΠΕΞΕΡΓΑΣΤΗ • Ν συνελίξεις ολοκληρώνονται σε χρόνο: • Τπαρ = (4+4Ν) με τη χρήση του συστολικού επεξεργαστή • Τσειρ = 20Ν σε σειριακό υπολογιστή Επιτάχυνση = Τπαρ Τσειρ = 20Ν 4+4Ν = 5 1 Ν +1 • Αν το Ν είναι πολύ μεγάλο, τότε το κλάσμα 1/N στον παρονομαστή γίνεται πολύ μικρό και έχουμε Επιτάχυνση ≃ 5 • Έχοντας 5 επεξεργαστικές μονάδες η μέγιστη δυνατή επιτάχυνση είναι προφανώς 5. • Συνεπώς επιτυγχάνουμε επιτάχυνση πολύ κοντά στην μέγιστη δυνατή, εφόσον γίνουν πολλές διαδοχικές συνελίξεις. • Αν δεν έχουμε να εκτελέσουμε μαζικά πολλές συνελίξεις, τότε δεν έχει νόημα να σχεδιάσουμε συστολικό επεξεργαστή!