ΠΛΕ- 027 Μικροεπεξεργαστές 11ο μάθημα: Είσοδος- Εξοδος (Ε/Ε) Αρης Ευθυμίου
Συσκευές Ε/Ε Μεγάλη ποικιλία πολλές φορές είναι αυτές που «πουλάνε» το μηχάνημα: π.χ. Nintendo wii, (πρώτο) iphone Βασική ταξινόμηση: είσοδος, έξοδος, αποθήκευση αλλά και συνδιασμοί, π.χ. δίκτυο (κάρτα) Αλλες ταξινομίσεις επικοινωνία με άνθρωπο ή μηχάνημα Ταχύτητα μεταφοράς Εικονοποίηση θολώνει τις κατηγορίες π.χ. δίκτυο επικοινωνίας πυρήνων σε πολυεπεξεργαστή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 2
Χαρακτηριστικά συστήματος Ε/Ε Φερεγγυότητα (dependability) είναι πολύ σημαντική Επεκτασιμότητα (expandability) Κυρίως για συσκευές αποθήκευσης, αλλά και συνδετικότητα στο δίκτυο Ταχύτητα: Χρόνος προσπέλασης (latency) Ρυθμός μεταφοράς διεκπεραιωτική ικανότητα (throughput, bandwidth) Desktops & embedded systems Χρόνος απόκρισης και ποικιλία συσκευών Servers Ρυθμός μεταφοράς και επεκτασιμότητα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 3
Φερεγγυότητα Εκπλήρωση υπηρεσίας υπηρεσία πραγματοποιήθηκε σύμφωνα με τις προδιαγραφές Αποκατάσταση/επαναφορά Restorawon Αστοχία/αποτυχία failure Σφάλµα (fault): αστοχία ενός στοιχείου Μπορεί να οδηγήσει σε αστοχία όλου του συστήµατος, αλλά όχι πάντα Διακοπή υπηρεσίας Παρέκκλιση από τις προδιαγραφές ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 4
Μέτρα φερεγγυότητας Αξιοπιστία (reliability) μέτρο συνεχούς παροχής υπηρεσίας μέσος χρόνος (πρώτης) αστοχίας, mean wme to failure (MTTF) Μέσος χρόνος επισκευής χρόνος διακοπής υπηρεσίας mean wme to repair (MTTR) Μέσος χρόνος μεταξύ αστοχιών, mean wme between failures (MTBF) MTBF = MTTF + MTTR Διαθεσιμότητα (availability) = MTTF / (MTTF + MTTR) Βελτίωση διαθεσιμότητας: αύξηση MTTF, μείωση MTTR ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 5
Μέτρηση διαθεσιμότητας = MTTF / (MTTF + MTTR), ως ποσοστό (%) Συχνά παρουσιάζεται ως 9- ρια ανά χρονιά 1 εννιά σημαίνει 90% 90% των 365 ημερών μιας χρονιάς 36 μέρες εκτός λειτουργίας το χρόνο 2 εννιά σημαίνει 99%... ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 6
Αύξηση αξιοπιστίας (MTTF) Αποφυγή ελαττώματος πχ από κατασκευή, διαδικασία σωστής χρήσης/συντήρησης Ανοχή ελαττώματος (fault tolerance) Πλεονασμός (redundancy) Πρόβλεψη ελαττώματος π.χ. περιοδική συντήρηση, σύστημα SMART σκληρών δίσκων Πλεονασμός: στο χρόνο ανίχνευση σφάλματος και επανάλληψη στο χώρο (spawal) αντίγραφα δεδομένων, κυκλωμάτων,... ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 7
Φερεγγυότητα δίσκων Οι εταιρίες παραγωγής διαφημίζουν MTTF=1200000ώρες= 140 χρόνια συμπέρασμα οι αποτυχίες δίσκων είναι μύθος? Τρόπος μέτρησης: χιλιάδες δίσκοι σε λειτουργία για μήνες μέτρηση των βλαβών στο σύνολο του αριθμού ωρών λειτουργίας Ο χρόνος ζωής ενός δίσκου θεωρείται 5 χρόνια το παραπάνω σημαίνει ότι αν κάποιος άλλαζε δίσκους κάθε 5 χρόνια, θα περνούσαν περίπου ~140 χρόνια μέχρι να δεί έναν χαλασμένο ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 8
Οργάνωση δίσκων ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 9
Χρόνος προσπέλασης Καθυστέρηση μέχρι να γίνουν οι προηγούμενες προσπελάσεις (queuing) Χρόνος αναζήτησης (seek) τοποθέτηση της κεφαλής πάνω από τη κατάλληλη τροχιά κάποια ms (3 για τους καλύτερους, μέχρι περίπου 15) Χρόνος περιστροφής τοποθέτηση της κεφαλής στην αρχή του sector ταχύτητες περιστροφής: 5400 15000 RPM (5.6 2ms) Χρόνος μεταφοράς εξαρτάται από το μέγεθος sector, πυκνότητα 70 125ΜΒ/sec (disk to buffer) Χρόνος ελεγκτή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 10
Συστοιχίες δίσκων (RAID) Redundant Array of Inexpensive (Independent) Disks Πολλαπλοί μικροί δίσκοι αντί ενός μεγάλου Αύξηση απόδοσης μέσω παραλληλισμού ή/και πλεονασμός δίσκων για καλύτερη φερεγγυότητα ανοχή σφαλμάτων ειδικά αν οι χαλασμένοι δίσκοι μπορούν να γίνουν hot swap Αρκετοί διαφορετικοί τρόποι οργάνωσης RAID 0 5+ ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 11
RAID 0 Δεν υπάρχει πλεονασμός άρα ούτε ανοχή σφαλμάτων! Επιμερισμός (striping) δεδομένων σε πολλούς δίσκους Καλύτερη απόδοση για μεγάλες προσπελάσεις Χρησιμοποιείται πολύ συχνά ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 12
RAID 1 και 2 RAID 1: είδωλα - Mirroring N + N δίσκοι, Κάθε δίσκος έχει και ένα πλεονασματικό αντίγραφο Επιμερισμός όπως στο RAID0 Εγγραφές ταυτόχρονα και προς τα δύο αντίγραφα Αν χαλάσει ένας δίσκος, χρησιμοποιείται το είδωλό του RAID 2: Error correcwng code (ECC) N + E δίσκοι (πχ, 10 + 4) Δεδομένα μοιράζονται (σε επίπεδο bit) σε όλους τους Ν δίσκους δεδομένων κώδικες διόρθωσης κρατούνται στους υπόλοιπους Ε δίσκους Δεν χρησιμοποιείται πρακτικά ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 13
RAID 3 και 4 N+1 δίσκοι επιμερισμός σε επίπεδο byte (RAID 3) ή block (RAID 4) και ισοτιμία (parity) για διόρθωση λαθών στον πλεονάζοντα δίσκο Δεν είναι διαδεδομένα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 14
RAID 5 Παρόμοιο με το 4 αλλά τα block ισοτιμίας κατανέμονται σε όλους τους δίσκους Αρκετά συνηθισμένη χρήση ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 15
Μνήμη flash Μόνιμη (μη- πτητική non- volawle) μνήμη Ακριβή αργή για κύρια μνήμη Αλλά κατάλληλη για αποθήκευση γρηγορότερη, λιγότερη κατανάλωση ισχύος, αντοχή σε κραδασμούς αρκετά ακριβώτερη φθείρεται μετά από 10,000 ες προσπελάσεις ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 16
Τύποι μνήμης flash NOR τυχαία διευθυνσιοδότηση (όπως η SRAM) κατάλληλη για αποθήκευση προγραμμάτων συχνά χρησιμοποιείται για το BIOS υπολογιστών NAND πρόσβαση σε ένα ολόκληρο block ανά προσπέλαση πυκνότερη, φτηνότερη από τη τύπου NOR Χρησιμοποιείται σε USB keys, media storage (π.χ. SD), solid- state- disks ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 17
Σύνδεση επεξεργαστή, μνήμης, Ε/Ε Δίαυλος (bus) κοινόχρηστος σύνδεσμος επικοινωνίας ένα σύνολο από καλώδια για μετάδοση δεδομένων και συγχρονισμό ευελιξία, χαμηλό κόστος αλλά και σημείο συμφόρησης (bo leneck) Απόδοση εξαρτάται από φυσικούς περιορισμούς μήκος καλωδίων, αριθμό συνδέσεων Πρόσφατα: αντικατάσταση διαύλων από υψηλής ταχύτητας σειριακές συνδέσεις και μεταγωγείς (switches) παρόμοια με τα δίκτυα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 18
Είδη διαύλων Δίαυλος μνήμης μικρό μήκος καλωδίων, υψηλή ταχύτητα σχεδιασμένος σύμφωνα με τη οργάνωση κύρια μνήμης Δίαυλος Ε/Ε μακρύτερα καλώδια, πολλαπλές συνδέσεις βασισμένα σε πρότυπα ώστε να μπορούν να συνδεθούν διάφορα περιφερειακά από διαφορετικούς κατασκευαστές Συνδέονται με τον επεξεργαστή και τη μνήμη μέσω γέφυρας (bridge) ώστε να μην τους καθυστερούν ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 19
Διασύνδεση προσωπικού Η/Υ ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 20
Διαχείριση Ε/Ε Δουλειά του Λ.Σ. Γιατί; Πολλά προγράμματα μοιράζονται τη χρήση των συστημάτων Ε/Ε Η κατάσταση είναι διαφορετική σε ενσωματωμένα συστήματα Τα συστήματα Ε/Ε συχνά χρησιμοποιούν διακοπές για μεταβίβαση πληροφοριών είναι πολύ αργά για να περιμένει ο επεξεργαστής οι διακοπές αλλάζουν την κατάσταση του συστήματος σε κατάσταση επόπτη Πολύπλοκος έλεγχος: πολλά ταυτόχρονα συμβάντα μεγάλες απαιτήσεις για «απλούς» χρήστες αφαιρέσεις για την προσπέλαση των συσκευών ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 21
Ε/Ε από προγράμματα χρηστών Ενα πρόγραμμα χρήστη που χρειάζεται Ε/Ε γενικά καλεί μια συνάρτηση βιβλιοθήκης (πχ prin ) η συνάρτηση ετοιμάζει τα δεδομένα π.χ. αντικαθιστά τα %d με τις τιμές ASCII της αντίστοιχης μεταβλητής και κάνει μια κλήση συστήματος με ειδικό κωδικό που αντιστοιχεί στη λειτουργία που χρειάζεται μέσω του χειριστή κλήσεων, το Λ.Σ. επικοινωνεί με την κατάλληλη συσκευή και όταν ολοκληρωθεί η «δουλειά» επιστρέφει από την κλήση συστήματος μπορεί να διαλέξει άλλες διεργασίες να τρέξουν στο μεταξύ μπορεί να οργανώσει πολλές μεταφορές μαζί (π.χ. δίσκος) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 22
Επικοινωνία Λ.Σ. με Ε/Ε Απαιτήσεις: Το Λ.Σ. δίνει εντολές/διαταγές στις συσκευές Ανάγνωση/εγγραφή Αλλες εντολές, π.χ. αναζήτηση θέσης στο δίσκο Οι συσκευές μπορούν να ειδοποιήσουν το Λ.Σ. όταν ολοκληρωθεί μια λειτουργία ή όταν γίνει ένα σφάλμα Μεταφορά δεδομένων μεταξύ μνήμης και συσκευής συχνά το πλήθος δεδομένων είναι μεγάλο για να γίνει ανά λέξη, byte, ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 23
Ελεγκτές συσκευών Οι ελεγκτές διαχειρίζονται τις λειτουργίες της συσκευής δέχονται εντολές, ειδοποιούν το Λ.Σ. για τέλος, λάθη συνχρονισμός λειτουργιών από το Λ.Σ. με λογισμικό Ειδικοί καταχωρητές εντολών (command registers) Εγγραφές στους καταχωρητές αυτούς προκαλούν τη συσκευή να εκτελέσει μια λειτουργία παρόμοια δομή με εντολή επεξεργαστή: διάφορα πεδία για παραμέτρους/ορίσματα Καταχωρητές κατάστασης (status registers) Υποδεικνύουν τί κάνει η συσκευή και τυχόν λάθη Καταχωρητές δεδομένων (data registers) Εγγραφής: μεταφορά προς τη συσκευή Ανάγνωσης: μεταφορά από τη συσκευή ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 24
Προσπέλαση Λ.Σ. στους καταχωρητές συσκευών Είσοδος/έξοδος με απεικόνιση στη μνήμη μέρος των διευθύνσεων μνήμης αντιστοιχεί στους καταχωρητές συσκευών Ε/Ε ο επεξεργαστής εκτελεί απλές εντολές load/store Το north- bridge αναγνωρίζει ότι δεν πρόκειται για προσπέλαση μνήμης και μεταβιβάζει το αίτημα κατάλληλα Η πρόσβαση ελέγχεται από το σύστημα μετάφρασης μνήμης Εντολές (επεξεργαστή) Ε/Ε π.χ. στον x86 (χρησιμοποιεί και απεικόνιση στη μνήμη) παρόμοιες με εντολές μεταφοράς μνήμης: δίνουν τον αριθμό συσκευής και αριθμό καταχωρητή, τη κατεύθυνση μεταφοράς, και τα δεδομένα (για εγγραφές) οι εντολές επιτρέπονται μόνο σε κατάσταση πυρήνα ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 25
Επικοινωνία με περιόδευση Επειδή οι συσκευές είναι πολύ αργές σε σχέση με τον επεξεργαστή, οι προσπελάσεις δεν «παγώνουν» μέχρι η συσκευή να ολοκληρώσει μια λειτουργία Πριν δώσει μια διαταγή το Λ.Σ. πρώτα ελέγχει αν η συσκευή είναι έτοιμη διαβάζοντας τον καταχωρητή κατάστασης αν δεν είναι έτοιμη, είτε προσπαθεί αργότερα (αλλάζει τη διεργασία που τρέχει), είτε διαβάζει την κατάσταση συνέχεια μέχρι η συσκευή να είναι έτοιμη Δίνει τη διαταγή, γράφοντας σε ένα καταχωρητή εντολών Κοιτάζει το καταχωρητή κατάστασης για να διαπιστώσει πότε θα τελειώση η εκτέλεση Διαβάζει δεδομένα (αν υπάρχουν) από καταχωρητή δεδομένων ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 26
Ε/Ε οδηγούμενη από διακοπή interrupt- driven I/O Λύνει το βασικό πρόβλημα της επικοινωνίας με περιόδευση συνεχείς αναγνώσεις του καταχωρητή κατάστασης Η συσκευή μπορεί να ειδοποιήσει τον επεξεργαστή όταν τελειώσει ώστε να μπορεί να κάνει κάτι χρήσιμο: να τρέξει μια άλλη διεργασία με ένα μηχανισμό διακοπής (interrupt) παρόμοιο με τις εξαιρέσεις προγραμμάτων (π.χ. άγνωστη εντολή, παραβίαση προστασίας μνήμης, κλήση συστήματος) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 27
Χειρισμός διακοπών Ποιά συσκευή έκανε τη διακοπή; ο κωδικός συσκευής αποθηκεύεται σε ένα καταχωρητή ο χειριστής διακοπών που εκτελείται εξαρτάται από τη συσκευή (vector interrupts) ο χειριστής διακοπών (Λ.Σ.) ανακρίνει τις συσκευές συνδιασμός μεθόδων Πολλές διακοπές μπορεί να γίνουν ταυτόχρονα ή να γίνουν καινούριες μέχρι να εξυπηρετηθεί μια διακοπή Συνήθως τα είδη διακοπών οργανώνονται σε επίπεδα προτεραιοτήτων Απαγόρευση διακοπών: για λίγο χρόνο μέχρι να αποθηκευτεί η κατάσταση του συστήματος (π.χ. τιμές καταχωρητών) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 28
Μεταφορά δεδομένων Μέθοδοι περιόδευσης, οδηγούμενη από διακοπές είναι κατάλληλοι για μεταφορές μικρών ποσοτήτων δεδομένων Για μεγάλο όγκο δεδομένων χρειάζεται ανάθεση της μεταφοράς σε μια άλλη οντότητα και υψηλή εποπτία από τον επεξεργαστή ο επεξεργαστής ξεκινάει τη «δουλειά» και ειδοποιείται στο τέλος ή σε λάθη Λύση: άμμεση προσπέλαση μνήμης (direct- memory access, DMA) ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 29
DMA Υπάρχει ειδικός ελεγκτής DMA σε υλικό ή και περισσότεροι Ο επεξεργαστής δίνει στον ελεγκτή τον αριθμό/διεύθυνση συσκευής, το είδος μεταφοράς, τη διεύθυνση κύριας μνήμης για τα δεδομένα και τον όγκο των δεδομένων Ο ελεγκτής DMA, κάνει τις μεταφορές ανά byte, λέξη,... παράγοντας αυτόματα την επόμενη διεύθυνση μνήμης μπορεί να προσπελάσει απευθείας τη κύρια μνήμη χρειάζεται διαιτησία γιατί και ο επεξεργαστής κάνει προσπελάσεις Στο τέλος, ο ελεγκτής DMA διακόπτει τον επεξεργαστή που ελέγχει αν η μεταφορά ήταν επιτυχημένη ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 30
DMA και εικονική μνήμη Το Λ.Σ. χρησιμοποιεί εικονικές διευθύνσεις για τις διεργασίες χρηστών τμήματα μνήμης για DMA μπορεί να μην είναι συνεχόμενα στη φυσική μνήμη Αν ο ελεγκτής DMA χρησιμοποιεί εικονικές διευθύνσεις θα χρειαζόταν μετάφραση όπως οι διευθύνσεις του επεξεργαστή Αν ο ελεγκτής χρησιμοποιεί φυσικές διευθύνσεις κομμάτιασμα των μεταφορών σε σελίδες ή κατανομή συνεχόμενων σελίδων μνήμης όταν είναι πιθανό να χρησιμοποιηθούν για DMA ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 31
DMA και κρυφές μνήμες Οι κρυφές μνήμες διευκολύνουν το DMA γιατί ελάχιστες προσπελάσεις από τον επεξεργαστή περνούν στη κύρια μνήμη Αλλά τι συμβαίνει όταν η κρυφή μνήμη έχει αντίγραφο κάποιας διεύθυνσης που χειρίζεται ο ελεγκτής DMA; Υπάρχει θέμα συνοχής (coherence). Λύσεις: κάθε προσπέλαση DMA γίνεται μέσω κρυφής μνήμης εκκένωση (flushing) κρυφής μνήμης πριν από μεταφορά DMA απαγόρευση χρήσης κρυφής μνήμης για κάποιες σελίδες μνήμης ειδικό υλικό παρακολούθησης στη κρυφή μνήμη ΠΛΕ 027 Μικροεπεξεργαστές 2011-2012 32