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

Κωδικός Μαθήματος
CEID_ΝΕ4617
Κατηγορία
Επιλογής Γενικής Παιδείας
Εξάμηνο
Εαρινό
Τομέας
Τομέας Υλικού και Αρχιτεκτονικής των Υπολογιστών
Διδάσκων
Γιώργος Παπαδημήτριου
ECTS
5

ΠΕΡΙΕΧΟΜΕΝΟ ΜΑΘΗΜΑΤΟΣ

Το μάθημα εστιάζει στην κατανόηση και υλοποίηση των αρχών της διοχέτευσης (pipeline) στους σύγχρονους επεξεργαστές, ξεκινώντας από τη βασική θεωρία και καταλήγοντας σε προχωρημένες τεχνικές μεγιστοποίησης της παραλληλίας επιπέδου εντολής (ILP). Οι φοιτητές/φοιτήτριες θα μελετήσουν τη σχεδίαση διαδρομής δεδομένων με διοχέτευση σε επεξεργαστές βασισμένους στην αρχιτεκτονική συνόλου εντολών RISC-V, την κατασκευή μονάδας ελέγχου διοχέτευσης, καθώς και τους διάφορους τύπους κινδύνων (δομικούς, δεδομένων, ελέγχου), μαζί με τεχνικές αποφυγής και επίλυσής τους, όπως η προώθηση (forwarding/bypassing), οι τεχνικές πρόβλεψης διακλάδωσης και η καθυστερημένη διακλάδωση.

Ιδιαίτερη έμφαση δίνεται σε μηχανισμούς για τη διαχείριση εξαιρέσεων στη διοχέτευση, την προχωρημένη πρόβλεψη διακλάδωσης και τη δυναμική εκτέλεση εντολών. Το μάθημα εισάγει τους φοιτητές και τις φοιτήτριες στη φιλοσοφία των υπερβαθμωτών (superscalar) αρχιτεκτονικών με πολλαπλή εκκίνηση εντολών (multiple issue), και στη χρήση τεχνικών όπως οι σταθμοί κράτησης (reservation stations) και ο μονάδες μετονομασίας καταχωρητών (register renaming) που εισάγονται με τον αλγόριθμο Tomasulo. Οι φοιτητές/φοιτήτριες θα κατανοήσουν πως επιτυγχάνεται η εκτέλεση εντολών εκτός σειράς (out-of-order execution) με στόχο τη βελτιστοποίηση της απόδοσης και την καλύτερη αξιοποίηση των διαθέσιμων υπολογιστικών μονάδων.
Παράλληλα, θα αναλυθούν τεχνικές εκ των προτέρων προσκόμισης εντολών και δεδομένων (instruction/data prefetching), οι οποίες συνεισφέρουν στη μείωση των καθυστερήσεων λόγω προσπέλασης στη μνήμη. Οι φοιτητές/φοιτήτριες θα εξετάσουν τρόπους αξιοποίησης της ιεραρχίας της μνήμης, εστιάζοντας στις κρυφές μνήμες και την εικονική μνήμη για τη βελτίωση της απόδοσης των προγραμμάτων. Τέλος, το μάθημα επεκτείνεται στη διασύνδεση επεξεργαστών, κύριας μνήμης και περιφερειακών μέσω διαύλων, καθώς και στον τρόπο με τον οποίο το λειτουργικό σύστημα συνεργάζεται με τις μονάδες εισόδου/εξόδου.

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

Με την επιτυχή ολοκλήρωση του μαθήματος, οι φοιτητές και φοιτήτριες θα είναι σε θέση να:

  1. Εξηγούν τις βασικές αρχές διοχέτευσης (pipelining) και να περιγράφουν πως αυτές εφαρμόζονται σε επεξεργαστές όπως ο RISC-V.
  2. Αναγνωρίζουν και ταξινομούν τους διαφορετικούς τύπους κινδύνων (hazards) που προκύπτουν κατά την εκτέλεση προγραμμάτων με διοχέτευση, και να προτείνουν κατάλληλες τεχνικές επίλυσής τους (π.χ. προώθηση, εισαγωγή καθυστερήσεων, πρόβλεψη διακλάδωσης).
  3. Αναλύουν και αξιολογούν τη λειτουργία δυναμικών τεχνικών πρόβλεψης διακλάδωσης.
  4. Κατανοούν και περιγράφουν τις βασικές έννοιες εκτέλεσης εντολών εκτός σειράς (out-of-order execution) και να εξηγούν πως εφαρμόζονται σε σύγχρονες αρχιτεκτονικές με τη χρήση του αλγορίθμου Tomasulo, reservation stations και reorder buffers.
  5. Σχεδιάζουν ή τροποποιούν μοντέλα επεξεργαστών με πολλαπλή εκκίνηση εντολών (multiple issue).
  6. Εξηγούν τον ρόλο και τη σημασία των prefetchers (μονάδες εκ των προτέρων προσκόμισης εντολών ή/και δεδομένων) και να αξιολογούν την επίδρασή τους στη μείωση καθυστερήσεων από τη μνήμη.
  7. Αναλύουν την απόδοση συστημάτων μνήμης, συμπεριλαμβανομένων των επιπέδων κρυφών μνημών (cache memories) και εικονικής μνήμης, χρησιμοποιώντας μετρικές όπως hit rate, miss penalty και average memory access time (AMAT).
  8. Συγκρίνουν διαφορετικές αρχιτεκτονικές επεξεργαστών ως προς την απόδοση, τη φερεγγυότητα και την πολυπλοκότητα υλοποίησης.
Μετάβαση στο περιεχόμενο