4. Διάγραμμα Συστολικού Επεξεργαστή
Πολλές επεξεργαστικές μονάδες (PU) εκτελούν την ίδια εντολή αλλά σε διαφορετικά δεδομένα. Μοντέλο
Single Instruction Multiple Data (SIMD)
5. Χαρακτηριστικά Συστολικού Επεξεργαστή
• Προσκολλημένος (attached) σε έναν υπολογιστή host.
• Όλες οι επεξεργαστικές μονάδες (PU) εκτελούν την ίδια
εντολή σε διαφορετικά δεδομένα (SIMD)
• Σύγχρονη επικοινωνία μεταξύ PU
• Εκτελεί έναν συγκεκριμένο αλγόριθμο (special purpose
machine)
• Εξειδικευμένες PU
• Υψηλό κόστος
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.
• Συνεπώς επιτυγχάνουμε επιτάχυνση πολύ κοντά στην μέγιστη δυνατή, εφόσον γίνουν
πολλές διαδοχικές συνελίξεις.
• Αν δεν έχουμε να εκτελέσουμε μαζικά πολλές συνελίξεις, τότε δεν έχει νόημα να
σχεδιάσουμε συστολικό επεξεργαστή!