Ανίχνευση Προσωρινών Σφαλμάτων μέσω Ταυτόχρονης Πολυνηματικής Εκτέλεσης (Transient Fault Detection via Simultaneous Multithreading) «Προχωρημένα Θέματα Αρχιτεκτονικής Ι» Στέλιος Νεοφύτου Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών 7 Σεπτεμβρίου 2019
Ελαττώματα - Σφάλματα - Λάθη Ελάττωμα (Defect): απόκλιση από την προσδοκώμενη λειτουργία στο υλικό. Σφάλμα (Fault): λογικό λάθος σε μια πράξη στο υλικό – πιθανό αποτέλεσμα ελαττώματος Λάθος (Error):διαφοροποίηση αποτελέσματος ορατή από τον χρήστη – πιθανό αποτέλεσμα σφάλματος. Σε επίπεδο αρχιτεκτονικής η προσοχή επικεντρώνεται στα σφάλματα. Είδη Σφαλμάτων: Μόνιμα (Permanent) Προσωρινά (Transient) 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Αντιμετώπιση Σφαλμάτων Δεδομένη ύπαρξη σφαλμάτων λόγω: Κοσμικής ακτινοβολίας - Μηδαμινή επίπτωση για το παρόν των Υ/Σ Στο Μέλλον: Αύξηση Συνεπειών λόγω: Νανοτεχνολογίας (μέγεθος, πυκνότητα Ο.Κ.) Μείωση επιπέδου τροφοδοσίας Μείωση περιθωρίων θορύβου Κατευθύνσεις Αντιμετώπισης Σφαλμάτων: Ανίχνευση (Detection) Εντοπισμός (Location) Περιορισμός (Containment) Αποκατάσταση (Recovery) 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Τι είναι Ανοχή Σφαλμάτων; Γενική Ιδέα της Ανοχής Σφαλμάτων (Fault Tolerance) : Σχεδιασμός συστημάτων που αντέχουν (φιλτράρουν) τα σφάλματα. Μέθοδος: Ανίχνευση Σφάλματος και μετά είτε Επανεκτέλεση Εσφαλμένου κώδικα. είτε Διόρθωση του Προβλήματος. Κατηγορίες Τεχνικών Α.Σ.: Πλεονασμός σε υλικό (H/W redundancy) Πλεονασμός σε Πληροφορία (Information redundancy) Πλεονασμός στο χρόνο (Time redundancy) Επιλογή Τεχνικής σύμφωνα με τον λόγο κόστους/απόδοσης 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Γενικά για το άρθρο Παρουσιάστηκε στο International Symposium of Computer Architecture (ISCA) 2000 από: Steven Reinhardt, Αναπλ. Καθηγητής στο τμ. Ηλ. Μηχανικών και Πληροφορικής στο Παν/μιο του Michigan. Shubhendu Mukherjee, τότε στο Alpha Group της Compaq και τώρα Senior Staff Hardware Engineer στην Intel. Στόχος: εισαγωγή νέας μεθόδου για Ανίχνευση Προσωρινών Σφαλμάτων βασισμένη σε τεχνικές Πολυνηματισμού (Multithreading) 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Εμπορικά Συστήματα Χρήση Πλεονασμού Υλικού για εκτέλεση της ίδια πράξης δύο φορές. Ανάγκη Συγχρονισμού! 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανίχνευση με ταυτόχρονη πολυνηματική εκτέλεση Νήμα (Thread) ΙΔΕΑ: Χρήση διαφορετικών νημάτων για να εκτελέσουν δύο φορές την ίδια πράξη. 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ταυτόχρονη Πολυνηματική Εκτέλεση (ΤΠΕ) Χρονοδρομολόγηση Εντολών Thread1 Thread2 Παράδειγμα: Alpha 21464 Λειτουργικές Μονάδες 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ταυτόχρονη και Πλεονάζουσα Πολυνηματική Εκτέλεση (ΠΠΕ) Fetch PC Instruction Cache Decode Register Rename Fp Regs Int . Units Ld /St Thread 0 Thread 1 R1 (R2) R3 = R1 + R7 R8 = R7 * 2 RUU Data Cache Αρχιτεκτονική ΠΠΕ επεξεργαστή ΠΠΕ = ΤΠΕ + Ανίχνευση Σφαλμάτων Εκτέλεση του ίδιου κώδικα από διαφορετικά νήματα είτε σε διαφορετικές λειτουργικές μονάδες, είτε σε διαφορετική χρονική περίοδο, είτε και τα δυο. 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Πλεονεκτήματα ΠΠΕ + Λιγότερο Υλικό ΤΠΕ: ~5% περισσότερο υλικό από ένα μονοεπεξεργαστικό σύστημα ΠΠΕ: ελάχιστο επιπλέον υλικό από ΤΠΕ + Καλύτερη απόδοση από αντιγραφή υλικού Αποδοτικότερη χρήση πόρων + Λιγότερο Κόστος αποφυγή πλήρους αντιγραφής υλικού δυνατότητα χρήση εμπορικών ΤΠΕ επεξεργαστών 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Μειονεκτήματα ΠΠΕ - Ο συγχρονισμός δεν δουλεύει Η ίδια εντολή μπορεί να εκτελείται σε διαφορετικό κύκλο - Πολύπλοκος Σχεδιασμός Χρονοδρομολόγηση νημάτων Προσκόμιση Εντολών Πρόβλεψης βρόχων Πολιτική Αντικατάστασης κρυφής μνήμης 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Πεδίο Ισχύος Αντιγραφής Πεδίο Ισχύος Αντιγραφής (sphere of replication): καθορίζει ένα λογικό σύνορο μέσα στο οποίο λαμβάνει χώρα ο πλεονασμός. Τα όρια του ΠΙΑ καθορίζονται ανάλογα με τις ανάγκες για πλεονασμό σε υλικό, δεδομένα και χρόνο 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό 1ο Μοντέλο ΠΙΑ Δεν περιλαμβάνει τα D$ και Ι$. Περιορίζει τις εντολές που ελέγχονται (Προσβάσεις Μνήμης) 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό 2ο Μοντέλο ΠΙΑ Δεν περιλαμβάνει τα D$ και Ι$, ούτε και το αρχείο καταχωρητών Ελέγχονται περισσότερες εντολές (ενημερώνουν καταχωρητές) 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Σύγκριση Εξόδων Ανάγκη για διασφάλιση ορθότητας των τιμών που εξέρχονται του ΠΙΑ μέσω σύγκρισης των δύο εξόδων. Για το 1ο μοντέλο ΠΙΑ: Έλεγχος μόνο Loads και Stores. Έλεγχοι για: Τις διευθύνσεις των Loads που ΔΕΝ βρίσκονται στην κρυφή μνήμη. Τα Loads που είναι στην κρυφή μνήμη δεν χρειάζονται έλεγχο στην τιμή της διεύθυνσης. Οι διευθύνσεις και τα δεδομένα των stores 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Έλεγχος για τα stores Store: ... Store: R1 (R2) Store Queue Σύγκριση Εξόδου προς Data Cache Το κάθε νήμα ενημερώνει το SQ τόσο για την τιμή που θα γράψει όσο και για την διεύθυνση που θα την γράψει Με το τέλος και των δύο νημάτων γίνεται η σύγκριση και αν υπάρχει συμφωνία ενημερώνεται η κρ. μνήμη. 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Αντιγραφή Εισόδων Ανάγκη για χρήση των ίδιων εισόδων και στα δύο νήματα. Λύσεις: Διπλά Loads, ένα για κάθε νήμα πολύ αργό πιθανόν να δημιουργήσει πρόβλημα συνέπειας Load Value Queue (LVQ): Προκαθορισμός Αρχικού και Επόμενου νήματος. 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Βελτίωση Απόδοσης Slack Fetch Διατήρηση μιας απόστασης εντολών μεταξύ του Αρχικού και του Επόμενου νήματος. Το αρχικό νήμα κάνει φέρνει τα δεδομένα που λογικά θα χρειαστεί και το επόμενο. Απουσία σφαλμάτων το Επόμενο νήμα δεν έχει cache misses. Branch Outcome Queue Τα αποτελέσματα εκτέλεσης βρόχου του αρχικού νήματος = είσοδος για το branch prediction του επόμενου. Συνδυασμός των δύο τεχνικών 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Κύρια Σημεία Διαφορές από Εμπορικά Συστήματα Ταυτόχρονη Πολυνηματική Εκτέλεση Πεδίο Ισχύος Αντιγραφής Σύγκριση Εξόδων Αντιγραφή Εισόδων Τεχνικές για Βελτίωσης της απόδοσης Αποτελέσματα Περίληψη και Σχόλια 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Αρχιτεκτονικές που συγκρίνει ΠΠΕ επεξεργαστής ΠΤΕ + ανίχνευση σφαλμάτων Σύγκριση Εξόδων Αντιγραφή εισόδων (LVQ) Slack Fetch + Branch Outcome Queue ORH Dual: Πλεονασμός Υλικού on-chip Δύο pipelines με μισούς πόρους από το ΠΠΕ Τα δύο έχουν κοινό στάδιο fetch. 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Μοντέλο Εκτίμησης και Μετροπρογράμματα Simplescalar 3.0 Τροποποίηση κώδικα ώστε να υποστηρίζει ΠΤΕ Ενίσχυση κώδικα με τα επιπλέον χαρακτηριστικά του ΠΠΕ. Μετροπρογράμματα: 11 προγράμματα από SPEC 95 Μεταγλωττισμένα με gcc 2.6 και πλήρη βελτιστοποίηση Παράληψη των 300 εκ. με 20 δισ. πρώτων εντολών Προσομοίωση περίπου 200 εκ. εντολών για κάθε πρόγραμμα. 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό ΠΠΕ Vs ORH Dual Μέση Βελτίωση = 16% Μέγιστη Βελτίωση = 27% 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Περίληψη Εμπλουτισμός της ιδέας της Ανίχνευσης σφαλμάτων μέσω Πολυνηματικής εκτέλεσης. Βασική συνεισφορά: Έννοια Πεδίου Ισχύος Αντιγραφής Τεχνικές για Σύγκριση Εξόδων Τεχνικές Αντιγραφής των εισόδων Τεχνικές Βελτίωσης της απόδοσης (Slack Fetch και branch outcome queue) Βελτίωση απόδοσης σε σχέση με υπάρχοντα συστήματα μέχρι και 27 % (μέση 16 %). 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό
Ανιχνευση Σφαλμάτων με Πολυνηματισμό Σχόλια Σημαντική Δουλεία κυρίως για μελλοντικές και κρίσιμες εφαρμογές. Όμως: Πολυπλοκότητα στο σχεδιασμό. Δύσκολή η γενίκευση του για μόνιμα σφάλματα. Δεν υποστηρίζεται από τεχνικές Fault Recovery (επανάληψη εκτέλεσης). Συνέπεια Δεδομένων ;; Σύγκριση με μηχανές που δεν έχουν ανοχή σφαλμάτων (κόστος και απόδοση). 7 Σεπτεμβρίου 2019 Ανιχνευση Σφαλμάτων με Πολυνηματισμό