Κεφάλαιο 2 | Ενότητα7 | Ερωτήσεις επισκόπησης | Επόμενο| Λεξικό όρων

Γενικά για τους VLIW και υπερβαθμωτούς επεξεργαστές

   Για να βελτιώσουμε την απόδοση της παραλληλίας σε επίπεδο εντολής πρέπει να μειώσουμε το CPI ώστε να γίνει μικρότερο της μονάδας. Όμως, αν διευθετούμε μόνο μία εντολή σε κάθε κύκλο ρολογιού το CPI δεν μπορεί να μειωθεί.
Οι επεξεργαστές πολλαπλής διευθέτησης επιτρέπουν σε πολλαπλές εντολές να διευθετούνται σε ένα κύκλο ρολογιού. Η μεγαλύτερη πρόκληση για όλους τους επεξεργαστές πολλαπλής διευθέτησης είναι να προσπαθήσουν να εκμεταλλευτούν όσο γίνεται τη παραλληλία σε επίπεδο εντολής.

Υπάρχουν δύο κατηγορίες επεξεργαστών πολλαπλής διευθέτησης:

  1. Υπερβαθμωτοί επεξεργαστές
  2. Επεξεργαστές με πολύ μεγάλη λέξη εντολής (VLIW)

Οι υπερβαθμωτοί επεξεργαστές διευθετούν μεταβαλλόμενο αριθμό εντολών σε κάθε κύκλο ρολογιού. Αυτοί είναι είτε στατικά προγραμματισμένοι από τον μεταγλωττιστή, είτε δυναμικά χρησιμοποιώντας τις τεχνικές του πίνακα αποτελεσμάτων και του Tomasulo.

Οι VLIW επεξεργαστές διευθετούν ένα καθορισμένο αριθμό εντολών, σε κάθε κύκλο ρολογιού, διαμορφωμένο είτε σαν μια μεγάλη εντολή, είτε σαν ένα καθορισμένο πακέτο εντολών. Αυτοί είναι στατικά προγραμματισμένοι από τον μεταγλωττιστή.
Σε όλα τα παραδείγματα που θα ακολουθήσουν υποθέτουμε ότι έχουμε τις καθυστερήσεις του πίνακα 1 και το τμήμα κώδικα που προσθέτει μία βαθμωτή τιμή σε έναν πίνακα (ενότητα 1):

loop: LD F0, 0(R1) ; F0 = στοιχείο πίνακα
ADDD F4, F0, F2 ; πρόσθεση με το βαθμωτό μέγεθος του F2
SD 0(R1), F4 ; αποθήκευση του αποτελέσματος
SUBI R1, R1, #8 ; μείωση δείκτη 8 bytes (για κάθε DW)
BNEZ R1, loop ; διακλάδωση R1!= μηδέν