Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών
|
|
- Παιάν Οικονόμου
- 8 χρόνια πριν
- Προβολές:
Transcript
1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών Σπηλιόπουλου Βασιλείου του Ευαγγέλου Αριθμός Μητρώου: 689 Θέμα «Προσαρμογή συχνότητας και τάσης λειτουργίας για τη βελτιστοποίηση κατανάλωσης ενέργειας επεξεργαστών» Επιβλέπων Επίκουρος καθηγητής Στέφανος Καξίρας Αριθμός Διπλωματικής Εργασίας: Πάτρα, Οκτώβριος 29 1
2 2
3 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η Διπλωματική Εργασία με θέμα «Προσαρμογή συχνότητας και τάσης λειτουργίας για τη βελτιστοποίηση κατανάλωσης ενέργειας επεξεργαστών» Του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών Σπηλιόπουλου Βασιλείου του Ευαγγέλου Αριθμός Μητρώου: 689 Παρουσιάστηκε δημόσια και εξετάστηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις.../../ Ο Επιβλέπων Επίκουρος καθηγητής Στέφανος Καξίρας Ο Διευθυντής του Τομέα Καθηγητής Ευθύμιος Χούσος 3
4 4
5 Αριθμός Διπλωματικής Εργασίας: Θέμα: «Προσαρμογή συχνότητας και τάσης λειτουργίας για τη βελτιστοποίηση κατανάλωσης ενέργειας επεξεργαστών» Φοιτητής: Σπηλιόπουλος Βασίλειος Επιβλέπων: Καξίρας Στέφανος Περίληψη Η σύγχρονη αρχιτεκτονική στρέφεται σε λύσεις που έχουν ως στόχο την εξοικονόμηση ενέργειας, χωρίς όμως να επιβαρύνεται σε μεγάλο βαθμό η απόδοση του επεξεργαστή. Ιδιαίτερα οι υπερβαθμωτοί (superscalar) επεξεργαστές που επιτρέπουν εκτέλεση εκτός σειράς (out-of-order execution) διακρίνονται από υψηλή κατανάλωση ενέργειας, εξαιτίας των πολύπλοκων δομών που χρησιμοποιούν για την αύξηση της απόδοσης. Η δυναμική ρύθμιση τάσης συχνότητας (DVFS) αποτελεί μία ευρέως χρησιμοποιούμενη τεχνική για την επίτευξη εξοικονόμησης ενέργειας. Μειώνοντας τη συχνότητα λειτουργίας ενός κυκλώματος, είναι δυνατόν να μειωθεί και η τάση τροφοδοσίας του κυκλώματος. Με τον τρόπο αυτό ελαττώνεται και η ενέργεια που καταναλώνει το κύκλωμα. Σκοπός της εργασίας είναι η ανάπτυξη ενός μηχανισμού πραγματικού χρόνου που θα ρυθμίζει τη συχνότητα και την τάση λειτουργίας ενός superscalar, out-of-order επεξεργαστή ώστε να επιτυγχάνεται εξοικονόμηση ενέργειας χωρίς μεγάλη μείωση της απόδοσης του επεξεργαστή. Αυτό μπορεί να επιτευχθεί ελαττώνοντας τη συχνότητα και την τάση κατά τις περιόδους που ο επεξεργαστής εκτελεί πολλές λειτουργίες μνήμης. Η εξομοίωση του μηχανισμού μας για μία σειρά από μετροπρογράμματα δείχνει ότι μπορούμε να επιτύχουμε μεγάλη εξοικονόμηση ενέργειας χωρίς σημαντική αύξηση του χρόνου εκτέλεσης των προγραμμάτων. 5
6 6
7 Πρόλογος Θα ήθελα να ευχαριστήσω όσους συνέβαλαν στη συγγραφή αυτής της διπλωματικής εργασίας. Τον κ. Καξίρα, για την πολύτιμη καθοδήγησή του καθ όλη τη διάρκεια της εργασίας. Τον κ. Κεραμίδα, για τη συνεχή ενασχόληση και βοήθεια που μου προσέφερε σε κάθε δυσκολία που αντιμετώπισα. Τον κ. Πετούμενο, που ήταν πάντα πρόθυμος να συνεισφέρει σε οτιδήποτε κι αν χρειαζόμουν. Πάτρα, Οκτώβριος 29 7
8 Περιεχόμενα Κεφάλαιο 1: Εισαγωγή 11 Κεφάλαιο 2: Αρχιτεκτονική των υπερβαθμωτών (superscalar) επεξεργαστών Εισαγωγή Μία σύντομή ιστορική αναδρομή Το μοντέλο επεξεργασίας εντολών Στοιχεία επεξεργασίας υψηλής απόδοσης Αναπαράσταση προγράμματος, εξαρτήσεις και παράλληλη εκτέλεση Η μικροαρχιτεκτονική ενός τυπικού superscalar επεξεργαστή Ανάκληση εντολών και πρόβλεψη διακλαδώσεων Αποκωδικοποίηση, μετονομασία και προώθηση των εντολών Έναρξη εκτέλεσης εντολών και παράλληλη εκτέλεση Διαχείριση λειτουργιών μνήμης Ανανέωση της αρχιτεκτονικής κατάστασης του επεξεργαστή Ο ρόλος των προγραμμάτων 31 Κεφάλαιο 3: Superscalar επεξεργαστές ένα μοντέλο πρώτης τάξης Εισαγωγή Περιγραφή του μοντέλου Γενική θεώρηση του μοντέλου Η χαρακτηριστική του παραθύρου εκτέλεσης Μοντελοποίηση των αστοχιών Επιβάρυνση λανθασμένης πρόβλεψης διακλάδωσης Επιβάρυνση αστοχίας κρυφής μνήμης εντολών Επιβάρυνση αστοχίας κρυφής μνήμης δεδομένων...39 Κεφάλαιο 4: Δυναμική ρύθμιση τάσης συχνότητας Εισαγωγή DVFS: Μία μέθοδος εξοικονόμησης ενέργειας Επίπεδο συστήματος Επίπεδο προγράμματος ή φάσης εντός προγράμματος Στατική ανάλυση μεταφραστών Τεχνικές πραγματικού χρόνου Επίπεδο υλικού
9 Κεφάλαιο 5: Εύρεση βέλτιστης συχνότητας λειτουργίας Εισαγωγή Μεταβολή του χρόνου εκτέλεσης συναρτήσει της συχνότητας λειτουργίας του επεξεργαστή Θεωρητικό μοντέλο Πειραματική επιβεβαίωση Μεταβολή της καταναλισκόμενης ενέργειας συναρτήσει της συχνότητας λειτουργίας του επεξεργαστή Εύρεση βέλτιστης συχνότητας λειτουργίας του επεξεργαστή Ελαχιστοποίηση του EDP Ελαχιστοποίηση του ED 2 P Πειραματική επιβεβαίωση.62 Κεφάλαιο 6: Μηχανισμός πραγματικού χρόνου για τη βελτιστοποίηση του EDP Περιγραφή του μηχανισμού Εξομοίωση του μηχανισμού για διαφορετικά μεγέθη παραθύρων Σύγκριση μηχανισμού με εκτέλεση υπό σταθερή συχνότητα λειτουργίας.99 Κεφάλαιο 7: Μηχανισμός πραγματικού χρόνου για τη βελτιστοποίηση του ED 2 P Περιγραφή του μηχανισμού Εξομοίωση του μηχανισμού για διαφορετικά μεγέθη παραθύρων Προσαρμογή του μεγέθους παραθύρου Σύγκριση μεταξύ εκτέλεσης υπό σταθερή συχνότητα και εκτέλεσης χρησιμοποιώντας τους μηχανισμούς σταθερού και μεταβλητού παραθύρου..149 Κεφάλαιο 8: Συμπεράσματα Πιθανές επεκτάσεις Θέματα υλοποίησης Συμπεράσματα Πιθανές επεκτάσεις Θέματα υλοποίησης 22 9
10 Κεφάλαιο 9: Βιβλιογραφία
11 Κεφάλαιο 1 Εισαγωγή Η κατανάλωση ενέργειας αποτελεί καίριο ζήτημα για τους σύγχρονους superscalar out of order επεξεργαστές. Οι δομές από τις οποίες αποτελείται ένας τυπικός superscalar επεξεργαστής έχουν ως σκοπό τη μεγιστοποίηση της απόδοσης, έχουν όμως ταυτόχρονα ως αποτέλεσμα την κατακόρυφη αύξηση της ενέργειας που καταναλώνει ο επεξεργαστής. Για το λόγο αυτό η αρχιτεκτονική επεξεργαστών έχει στραφεί σε λύσεις που επιχειρούν να ελαττώσουν την κατανάλωση ενέργειας διατηρώντας την απόδοση σε υψηλά επίπεδα. Σκοπός της διπλωματικής αυτής εργασίας είναι να προτείνει μία λύση προς αυτήν την κατεύθυνση. Συγκεκριμένα, στην εργασία αυτή παρουσιάζουμε έναν μηχανισμό πραγματικού χρόνου για τη δυναμική ρύθμιση τάσης και συχνότητας λειτουργίας του επεξεργαστή (Dynamic Voltage Frequency Scaling, DVFS). Όπως θα δούμε, το DVFS αποτελεί μία ιδιαίτερα διαδεδομένη τεχνική που χρησιμοποιείται για εξοικονόμηση ενέργειας. Το κείμενο οργανώνεται με τον ακόλουθο τρόπο. Στο κεφάλαιο 2 παρουσιάζουμε την αρχιτεκτονική ενός τυπικού superscalar επεξεργαστή. Στο κεφάλαιο 3 μελετάμε ένα αναλυτικό μοντέλο πρώτης τάξης για τη λειτουργία των superscalar επεξεργαστών. Στο κεφάλαιο 4 εξηγούμε ποια είναι η λογική της τεχνικής DVFS, σε ποια επίπεδα εφαρμόζεται και αναφέρουμε παραδείγματα που έχουν υλοποιηθεί για κάθε επίπεδο. Στο κεφάλαιο 5 παρουσιάζουμε το μοντέλο μας για τη συμπεριφορά του επεξεργαστή συναρτήσει της συχνότητας και τάσης λειτουργίας και εξάγουμε αναλυτικές σχέσεις για την επιλογή της βέλτιστης συχνότητας με βάση τα κριτήρια που ορίζουμε. Στα κεφάλαια 6 και 7 χρησιμοποιούμε το μοντέλο του κεφαλαίου 5 για να αναπτύξουμε έναν μηχανισμό πραγματικού χρόνου που έχει ως στόχο να βελτιστοποιήσει δύο διαφορετικά κριτήρια (το EDP στο κεφάλαιο 6 και το ED 2 P στο κεφάλαιο 7). Τέλος, στο κεφάλαιο 8 συνοψίζουμε τα όσα προηγήθηκαν στα προηγούμενα κεφάλαια, εξάγουμε χρήσιμα συμπεράσματα, αναφέρουμε πιθανές μελλοντικές επεκτάσεις της εργασίας και κάνουμε ορισμένες παρατηρήσεις σχετικά με θέματα κυκλωματικής υλοποίησης του μηχανισμού μας. Η βιβλιογραφία που χρησιμοποιήθηκε για τη συγγραφή της εργασίας παρουσιάζεται στο κεφάλαιο 9. 11
12 12
13 Κεφάλαιο 2 Αρχιτεκτονική των Υπερβαθμωτών (Superscalar) Επεξεργαστών 2.1 Εισαγωγή Οι James E. Smith και Gurindar S. Sohi περιγράφουν [1] τα βασικά σημεία της superscalar αρχιτεκτονικής. Η superscalar αρχιτεκτονική εισήχθη στις αρχές τις δεκαετίας του 9. Παρ όλο που θεωρήθηκε από πολλούς ότι αποτελεί επέκταση της RISC αρχιτεκτονικής (Reduced Instruction Set Computer), οι superscalar υλοποιήσεις χαρακτηρίζονται από μεγαλύτερη πολυπλοκότητα. Η superscalar αρχιτεκτονική έχει χρησιμοποιηθεί τόσο σε RISC σύνολα εντολών, όπως ο DEC Alpha επεξεργαστής, όσο και σε μη RISC σύνολα εντολών, όπως οι επεξεργαστές της Intel που βασίζονται στο σύνολο εντολών x86. Ένας τυπικός superscalar επεξεργαστής πραγματοποιεί ανάκληση και αποκωδικοποίηση πολλών εντολών σε κάθε κύκλο ρολογιού. Μέρος της διαδικασίας ανάκλησης εντολών είναι και η πρόβλεψη του αποτελέσματος των υπό συνθήκη εντολών διακλάδωσης, προκειμένου να υπάρχει μια συνεχής, μη διακοπτόμενη ροή εντολών. Η ροή εντολών που εισέρχεται στον επεξεργαστή υφίσταται ανάλυση για τον καθορισμό τυχόν εξαρτήσεων δεδομένων μεταξύ των εντολών και έπειτα οι εντολές κατανέμονται στις λειτουργικές μονάδες. Στη συνέχεια, οι εντολές αποστέλλονται για παράλληλη εκτέλεση, με βάση συνήθως την διαθεσιμότητα των δεδομένων που αποτελούν τους τελεσταίους των εντολών και όχι την αρχική ακολουθία των εντολών στο πρόγραμμα. Αυτό το σημαντικό χαρακτηριστικό είναι παρόν σε πολλές superscalar υλοποιήσεις και ονομάζεται δυναμικός προγραμματισμός εντολών. Όταν οι εντολές ολοκληρωθούν, τα αποτελέσματά τους τοποθετούνται ξανά στην αρχική σειρά που υποδηλώνει το πρόγραμμα έτσι ώστε η κατάσταση του επεξεργαστή να ανανεώνεται σύμφωνα με την κανονική ροή εντολών του προγράμματος. Με αυτόν τον τρόπο ο επεξεργαστής μπορεί να χειριστεί χωρίς λάθη τις περιπτώσεις όπου συμβαίνουν διακοπές (interrupts). Επειδή οι ξεχωριστές εντολές αποτελούν οντότητες που εκτελούνται 13
14 παράλληλα, οι superscalar επεξεργαστές εκμεταλλεύονται την ιδιότητα των προγραμμάτων που ονομάζεται παραλληλισμός επιπέδου εντολών (instruction level parallelism, ILP) Μια σύντομη ιστορική αναδρομή Πριν φτάσουμε στους superscalar επεξεργαστές η εκμετάλλευση του παραλληλισμού επιπέδου εντολών γινόταν με την τεχνική σωλήνωσης (pipeline). Το pipeline μπορεί να περιγραφεί σαν μια γραμμή παραγωγής, με τις εντολές να εκτελούνται σε διαφορετικές φάσεις καθώς διαδίδονται μέσα στο pipeline. Όταν χρησιμοποιείται απλό pipeline, μόνο μία εντολή μπορεί να εισέλθει στο pipeline σε κάθε κύκλο ρολογιού, μπορούν όμως πολλές εντολές να βρίσκονται ταυτόχρονα στο pipeline, σε διαφορετική φάση εκτέλεσης η κάθε μία. Το pipeline αναπτύχθηκε στα τέλη της δεκαετίας του 5 και χρησιμοποιήθηκε ευρέως στις υλοποιήσεις υπολογιστών κατά τη διάρκεια της δεκαετίας του 6. Ο CDC 66 και ο IBM 36/91 αποτελούν παραδείγματα επεξεργαστών της συγκεκριμένης χρονικής περιόδου που χρησιμοποίησαν την τεχνική pipeline. Ο μέγιστος ρυθμός εισαγωγής εντολών στο pipeline παρέμεινε στη μία εντολή ανά κύκλο για πολλά χρόνια και συχνά θεωρήθηκε ως ένα πρακτικό άνω όριο. Στο μεταξύ νέες μέθοδοι αναπτύχθηκαν για τη βελτίωση της απόδοσης μέσω παραλληλισμού, όπως η διανυσματική επεξεργασία (vector processing) και η πολυεπεξεργασία (multiprocessing). Κατά τη διάρκεια της δεκαετίας του 6 και του 7 έγιναν διάφορες μελέτες για τη δημιουργία επεξεργαστών ικανών να εκτελέσουν περισσότερες από μία εντολές ανά κύκλο, όμως κανένας τέτοιος επεξεργαστής δεν έφτασε μέχρι την αγορά. Προς το τέλος της δεκαετίας του 8 άρχισαν να εμφανίζονται οι superscalar επεξεργαστές. Οι επεξεργαστές αυτοί είχαν τη δυνατότητα να εκτελούν περισσότερες από μία εντολές ανά κύκλο χρησιμοποιώντας πολλαπλά pipelines. Στα χρόνια που ακολούθησαν, η superscalar μέθοδος καθιερώθηκε ως η βασική μέθοδος για τη δημιουργία υψηλής απόδοσης μικροεπεξεργαστών Το μοντέλο επεξεργασίας εντολών Επειδή το υλικό (hardware) και τα προγράμματα (software) παρουσιάζουν μία συνέχεια στο χρόνο καθώς εξελίσσονται, είναι σπάνιο η αρχιτεκτονική ενός επεξεργαστή να ξεκινήσει από το μηδέν. Οι περισσότεροι επεξεργαστές κληρονομούν ορισμένα στοιχεία από τους προκατόχους τους. Οι σύγχρονοι superscalar επεξεργαστές δε διαφοροποιούνται από αυτόν τον κανόνα. Ένα βασικό συστατικό αυτής της κληρονομιάς είναι η ύπαρξη συμβατότητας με προηγούμενα σύνολα εντολών, έτσι ώστε προγράμματα που έχουν δημιουργηθεί για παλαιότερους επεξεργαστές να μπορούν να εκτελεστούν και στους επεξεργαστές νέας γενιάς. Όταν αναπτύχθηκαν οι πρώτοι υπολογιστές, κάθε ένας είχε το δικό του σύνολο εντολών στο οποίο αντικατοπτρίζονταν οι περιορισμοί στο υλικό και οι διάφορες σχεδιαστικές αποφάσεις που πάρθηκαν κατά το στάδιο ανάπτυξης του συνόλου εντολών. Έπειτα, τα προγράμματα αναπτύσσονταν ξεχωριστά για κάθε σύνολο εντολών. Σύντομα ωστόσο έγινε εμφανές ότι η υιοθέτηση συνόλων εντολών που θα ήταν συμβατά με παλαιότερες γενιές και με διαφορετικά μοντέλα επεξεργαστών της ίδιας γενιάς εμπεριείχε σημαντικά πλεονεκτήματα. Για μια σειρά πρακτικών λόγων, το σύνολο εντολών επιλέχθηκε ως το επίπεδο που θα διασφαλίσει τη συμβατότητα των προγραμμάτων με παλαιότερους επεξεργαστές καθώς και με διαφορετικά μοντέλα επεξεργαστών ίδιας γενιάς. Το ακολουθιακό μοντέλο εκτέλεσης των προγραμμάτων αντιπροσωπεύει τον τρόπο με τον οποίο αρχικά υλοποιήθηκαν οι υπολογιστές. Στο μοντέλο αυτό, χρησιμοποιείται ένας απαριθμητής προγράμματος (program counter) για την ανάκληση μίας εντολής από τη μνήμη κάθε φορά. Στη συνέχεια η εντολή εκτελείται, και κατά τη διάρκεια της εκτέλεσής της ο επεξεργαστής μπορεί να φορτώσει ή να αποθηκεύσει δεδομένα στην κύρια μνήμη καθώς και να χρησιμοποιήσει τους 14
15 καταχωρητές που διαθέτει. Μετά την εκτέλεση της κάθε εντολής, ο απαριθμητής προγράμματος αυξάνεται κατά 1 ώστε να γίνει ανάκληση της επόμενης εντολής. Η ακολουθιακή επεξεργασία των εντολών διακόπτεται όταν εκτελείται μία εντολή άλματος ή υπό συνθήκη διακλάδωσης, έτσι ώστε η εκτέλεση να ανακατευθυνθεί στην εντολή που ορίζει το πρόγραμμα. Στην περίπτωση που η εκτέλεση του προγράμματος πρέπει να διακοπεί και να συνεχιστεί αργότερα, όπως για παράδειγμα όταν συμβεί ένα σφάλμα σελίδας (page fault), η κατάσταση του επεξεργαστή πρέπει να αποθηκευτεί. Το ακολουθιακό μοντέλο εκτέλεσης εντολών οδηγεί στην έννοια της ακριβούς κατάστασης (precise state). Τη στιγμή μιας διακοπής, η ακριβής κατάσταση του επεξεργαστή (οι αρχιτεκτονικά ορατοί καταχωρητές και η κύρια μνήμη) είναι η κατάσταση που θα υπήρχε αν το ακολουθιακό μοντέλο εκτέλεσης ακολουθείτο αυστηρά. Η επανεκκίνηση του προγράμματος μπορεί τότε να γίνει απλά συνεχίζοντας την εκτέλεση από την εντολή που πραγματοποιήθηκε η διακοπή. Οι σχεδιαστές υπολογιστών συνήθως προτιμούν να διατηρούν τόσο τη συμβατότητα με παλαιότερα προγράμματα όσο και το ακολουθιακό μοντέλο εκτέλεσης. Παρ όλα αυτά οι superscalar επεξεργαστές, για να επιτύχουν υψηλότερη απόδοση, διαφοροποιούνται δραστικά από την ακολουθιακή εκτέλεση, καθώς πολλές εργασίες πρέπει να πραγματοποιηθούν παράλληλα. Για το λόγο αυτό, το προς εκτέλεση πρόγραμμα πλέον αντικατοπτρίζει το τι πρέπει να γίνει και όχι το πώς αυτό θα πραγματοποιηθεί από τον επεξεργαστή. Ένας σύγχρονος superscalar επεξεργαστής αφαιρεί μεγάλο μέρος από την έννοια της ακολουθιακής εκτέλεση που βρίσκεται έμφυτη σε ένα πρόγραμμα αλλά στην πραγματικότητα δεν είναι απαραίτητη, ώστε να δημιουργήσει μια παράλληλη έκδοση του προγράμματος η οποία θα χαρακτηρίζεται από υψηλότερη απόδοση. Ωστόσο, ο επεξεργαστής διατηρεί την εξωτερική εικόνα της ακολουθιακής εκτέλεσης του προγράμματος. Με άλλα λόγια, η αρχιτεκτονική κατάσταση του επεξεργαστή εξωτερικά φαίνεται να ανανεώνεται ακολουθιακά, με βάση την εκτέλεση του προγράμματος, ενώ στην πραγματικότητα στο εσωτερικό του επεξεργαστή υπάρχει μεγάλος βαθμός παραλληλίας στην εκτέλεση των εντολών Στοιχεία επεξεργασίας υψηλής απόδοσης Υψηλότερη απόδοση σημαίνει εκτέλεση ενός δεδομένου προγράμματος σε λιγότερο χρόνο. Κάθε εντολή απαιτεί συγκεκριμένο χρόνο για την ανάκληση και την εκτέλεσή της. Ο χρόνος αυτός αποτελεί την καθυστέρηση (latency) της εντολής. Για να μειωθεί ο χρόνος που απαιτείται για την εκτέλεση μιας ακολουθίας από εντολές (πρόγραμμα) υπάρχουν δύο τρόποι: α) να μειωθεί η καθυστέρηση κάθε εντολής ξεχωριστά ή β) να εκτελεστούν περισσότερες εντολές παράλληλα. Παρ όλο που οι superscalar επεξεργαστές επικεντρώνονται στον δεύτερο τρόπο, μια σημαντική πρόκληση είναι να μην αυξηθεί η καθυστέρηση κάθε εντολής ξεχωριστά εξαιτίας της αυξημένης πολυπλοκότητας του υλικού που απαιτείται προκειμένου να είναι σε θέση ο επεξεργαστής να εκτελεί πολλές εντολές παράλληλα. Η παράλληλη εκτέλεση εντολών προϋποθέτει τον καθορισμό των σχέσεων εξάρτησης μεταξύ των εντολών, επαρκείς πόρους υλικού για την παράλληλη εκτέλεση, στρατηγικές για τον καθορισμό του πότε μία εντολή είναι έτοιμη για εκτέλεση, καθώς και τεχνικές για τη διάδοση του αποτελέσματος μίας εντολής έτσι ώστε αυτό να χρησιμοποιηθεί από κάποια άλλη εντολή. Όταν η προς τα έξω ορατή κατάσταση του επεξεργαστή ανανεώνεται από τα αποτελέσματα των εντολών, ο επεξεργαστής πρέπει εξωτερικά να φαίνεται ότι πραγματοποιεί ακολουθιακή εκτέλεση των εντολών. Για την ακρίβεια, όσον αφορά το υλικό, ο superscalar επεξεργαστής υλοποιεί: 1. στρατηγικές ανάκλησης εντολών οι οποίες φορτώνουν ταυτόχρονα πολλές εντολές από την μνήμη, συχνά προβλέποντας το αποτέλεσμα υπό συνθήκη εντολών διακλάδωσης και πραγματοποιώντας ανάκληση πέρα από αυτές 2. μεθόδους για τον καθορισμό των πραγματικών σχέσεων εξάρτησης μεταξύ των τιμών των καταχωρητών και μηχανισμούς για την κοινοποίηση αυτών των τιμών όπου είναι απαραίτητο κατά τη διάρκεια της εκτέλεσης 15
16 3. μεθόδους για την έναρξη της εκτέλεσης (εισαγωγή στο pipeline) πολλαπλών εντολών παράλληλα 4. πόρους για παράλληλη εκτέλεση πολλών εντολών, συμπεριλαμβανομένων πολλών λειτουργικών μονάδων και ιεραρχιών μνήμης ικανών να εξυπηρετούν ταυτόχρονα πολλαπλές αναφορές στη μνήμη 5. μεθόδους για την κοινοποίηση των τιμών δεδομένων μέσω εντολών φόρτωσης και αποθήκευσης, καθώς και διεπαφές μνήμης που επιτρέπουν τη δυναμική και συχνά απρόβλεπτη συμπεριφορά των ιεραρχιών μνήμης. Οι διεπαφές αυτές πρέπει να είναι σωστά ταιριασμένες με τις στρατηγικές εκτέλεσης εντολών 6. μεθόδους για την ανανέωση της αρχιτεκτονικής κατάστασης του επεξεργαστή με τη σωστή σειρά. Οι μηχανισμοί διατηρούν την εξωτερική εικόνα της ακολουθιακής εκτέλεσης των εντολών 2.2 Αναπαράσταση προγράμματος, εξαρτήσεις και παράλληλη εκτέλεση Μία εφαρμογή ξεκινά σαν ένα πρόγραμμα γραμμένο σε κάποια υψηλού επιπέδου γλώσσα. Έπειτα μεταφράζεται σε γλώσσα μηχανής. Σε αυτό το επίπεδο ο κώδικας περιγράφει τις εντολές που πρέπει να εκτελέσει ο επεξεργαστής, κάθε μία από τις οποίες αναφέρεται σε ένα σύνολο δεδομένων που καθορίζονται από το πρόγραμμα. Το ακολουθιακό μοντέλο συνδέεται άμεσα με τον κώδικα, ο οποίος ορίζει τη σειρά με την οποία θα εκτελεστούν οι εντολές. Στην εικόνα 2.1 φαίνεται ο κώδικας ενός τμήματος προγράμματος γραμμένο σε κάποια γλώσσα υψηλού επιπέδου και ο αντίστοιχος assembly κώδικας (ο κώδικας assembly είναι η έκδοση του κώδικα μηχανής η οποία είναι δυνατόν να διαβαστεί από τον άνθρωπο). Ο κώδικας αυτός θα χρησιμοποιηθεί σαν παράδειγμα στη συνέχεια. Εικόνα
17 Καθώς το πρόγραμμα εκτελείται με ένα συγκεκριμένο σύνολο δεδομένων εισόδου, η ακολουθία των εντολών σχηματίζει μία δυναμική ροή εντολών. Όσο οι εντολές που πρόκειται να εκτελεστούν είναι συνεχόμενες, η προσθήκη τους στην ακολουθία μπορεί να γίνει απλά αυξάνοντας τον απαριθμητή προγράμματος ώστε να δείχνει στην εντολή που βρίσκεται στην αμέσως επόμενη θέση. Όταν όμως υπάρχει μία εντολή άλματος ή μία εντολή διακλάδωσης υπό συνθήκη, ο απαριθμητής προγράμματος μπορεί να ανανεωθεί με τιμή διαφορετική από την αμέσως επόμενη. Η εντολή τότε παρουσιάζει εξάρτηση ελέγχου (control dependent) από τις προηγούμενες εντολές της ακολουθίας, διότι η ροή του προγράμματος καθορίζεται από τις εντολές που προηγούνται. Οι δύο μέθοδοι για την απόδοση τιμής στον απαριθμητή προγράμματος, η αύξηση και η ανανέωση, οδηγούν σε δύο τύπους εξάρτησης ελέγχου. Το πρώτο βήμα για την αύξηση του παραλληλισμού επιπέδου εντολών είναι να ξεπεραστούν οι εξαρτήσεις ελέγχου. Οι εξαρτήσεις ελέγχου που προκύπτουν από απλή αύξηση του απαριθμητή προγράμματος είναι οι πιο απλές να ξεπεραστούν. Το πρόγραμμα μπορεί να θεωρηθεί σαν ένα σύνολο από βασικά τμήματα (basic blocks), όπου ένα βασικό τμήμα είναι ένα συνεχόμενο τμήμα εντολών, με ένα σημείο εισόδου και ένα σημείο εξόδου. Στον κώδικα assembly της εικόνας 2-1 υπάρχουν τρία βασικά τμήματα. Το πρώτο βασικό τμήμα αποτελείται από τις 5 εντολές μεταξύ της ετικέτας L2 και της εντολής ble συμπεριλαμβανομένης και αυτής, το δεύτερο βασικό τμήμα αποτελείται από τις 5 εντολές μεταξύ της εντολής ble, χωρίς αυτή την εντολή, και την ετικέτα L3, και το τρίτο βασικό τμήμα αποτελείται από τις 3 εντολές μεταξύ της ετικέτας L3 και της εντολής blt, συμπεριλαμβανομένης αυτής. Όταν η ανάκληση εντολών αρχίσει να γίνεται σε ένα βασικό τμήμα, είναι γνωστό ότι όλες οι εντολές του βασικού τμήματος τελικά θα εκτελεστούν. Γι αυτό, οποιαδήποτε ακολουθία εντολών σε ένα βασικό τμήμα μπορεί να εισαχθεί σε κάποιο παράθυρο εκτέλεσης (window of execution). Το παράθυρο εκτέλεσης είναι το πλήρες σύνολο εντολών που μπορούν να εξεταστούν ταυτόχρονα για παράλληλη εκτέλεση. Όταν κάποιες εντολές έχουν εισαχθεί στο παράθυρο εκτέλεσης, είναι δυνατόν να εκτελεστούν παράλληλα, με μόνο περιορισμό τις εξαρτήσεις δεδομένων για τις οποίες θα μιλήσουμε στη συνέχεια. Μέσα σε κάθε ξεχωριστό βασικό τμήμα υπάρχει κάποιος βαθμός παραλληλισμού. Για την επίτευξη όμως μεγαλύτερου βαθμού παραλληλισμού πρέπει να ξεπεραστεί η εξάρτηση ελέγχου που οφείλεται σε ανανέωση του απαριθμητή προγράμματος. Μία μέθοδος που οδηγεί σε αυτό το στόχο είναι η πρόβλεψη του αποτελέσματος μιας εντολής διακλάδωσης υπό συνθήκη και η ανάκληση εντολών από το μονοπάτι εντολών που προβλέφθηκε ότι θα ακολουθηθεί. Εντολές από αυτό το μονοπάτι εισέρχονται στο παράθυρο εκτέλεσης. Αν η πρόβλεψη αργότερα επαληθευτεί ότι ήταν σωστή, τότε οι εντολές παύουν να θεωρούνται ότι ανήκουν σε ένα πιθανό μονοπάτι και το αποτέλεσμά τους όσον αφορά την κατάσταση του επεξεργαστή είναι το ίδιο με οποιαδήποτε άλλη εντολή. Αν όμως η πρόβλεψη αποδειχθεί λανθασμένη, τότε πρέπει να γίνουν ενέργειες ώστε η διαμόρφωση της κατάστασης του επεξεργαστή να μην επηρεαστεί από τις εντολές του λανθασμένου μονοπατιού. Στο παράδειγμα της εικόνας 2-1, η εντολή διακλάδωσης ble δημιουργεί μία εξάρτηση ελέγχου. Για να ξεπεράσουμε αυτή την εξάρτηση, μπορούμε για παράδειγμα να κάνουμε την πρόβλεψη ότι η διακλάδωση δε θα πραγματοποιηθεί, και επομένως οι εντολές μεταξύ της διακλάδωσης και της ετικέτας L3 να εκτελεστούν αλλά να μη συμμετέχουν στην ανανέωση της κατάστασης του επεξεργαστή παρά μόνον αν η πρόβλεψη αποδειχθεί τελικά σωστή. Εντολές που έχουν τοποθετηθεί στο παράθυρο εκτέλεσης μπορούν να αρχίσουν να εκτελούνται ανάλογα με τους περιορισμούς εξάρτησης δεδομένων που υπάρχουν. Οι εξαρτήσεις δεδομένων υπάρχουν μεταξύ διαφορετικών εντολών καθώς οι εντολές μπορεί να προσπελαύνουν για ανάγνωση ή εγγραφή τις ίδιες περιοχές αποθήκευσης (σε καταχωρητές ή στη μνήμη). Όταν διαφορετικές εντολές αναφέρονται στην ίδια περιοχή αποθήκευσης λέμε ότι υπάρχει κίνδυνος σφάλματος, εκτός αν παρθούν μέτρα ώστε η περιοχή αποθήκευσης να προσπελαστεί με τη σωστή σειρά. Ιδανικά, οι εντολές μπορούν να εκτελούνται λαμβάνοντας υπόψη μόνο περιορισμούς πραγματικών εξαρτήσεων. Οι πραγματικές εξαρτήσεις εμφανίζονται ως κίνδυνοι ανάγνωσης μετά από εγγραφή (read-after-write, RAW hazard), διότι μία εντολή-καταναλωτής μπορεί να διαβάσει την τιμή μόνο αφού η εντολή-παραγωγός έχει γράψει αυτήν την τιμή. 17
18 Είναι επίσης δυνατό να υπάρχουν τεχνητές εξαρτήσεις, και κατά τη διαδικασία εκτέλεσης ενός προγράμματος, αυτές οι εξαρτήσεις πρέπει να ξεπεραστούν προκειμένου να αυξηθεί ο βαθμός παραλληλισμού. Οι τεχνητές εξαρτήσεις προκύπτουν από κινδύνους εγγραφής μετά από ανάγνωση (write-after-read, WAR) και εγγραφής μετά από εγγραφή (write-after-write, WAW). Ένας κίνδυνος WAR εμφανίζεται όταν μία εντολή πρέπει να γράψει μία νέα τιμή σε μία περιοχή αποθήκευσης, αλλά πρέπει πρώτα να περιμένει να εκτελεστούν όλες οι προηγούμενες εντολές που πρέπει να διαβάσουν την παλιά τιμή της ίδιας περιοχής αποθήκευσης. Ένας κίνδυνος WAW εμφανίζεται όταν πολλές διαφορετικές εντολές πρέπει να ανανεώσουν την τιμή της ίδιας περιοχής αποθήκευσης, οπότε πρέπει να φαίνεται ότι οι διαφορετικές ανανεώσεις της τιμής αυτής έγιναν με τη σωστή σειρά. Οι τεχνητές εξαρτήσεις εμφανίζονται εξαιτίας διαφορετικών αιτιών, όπως μη βελτιστοποιημένος κώδικας, περιορισμένος αριθμός καταχωρητών, επιθυμία εξοικονόμησης χώρου στην κύρια μνήμη, καθώς και από βρόχους όπου μία εντολή μπορεί να προκαλέσει κίνδυνο με τον εαυτό της. Η εικόνα 2-2 δείχνει ορισμένους από τους κινδύνους εξάρτησης δεδομένων που υπάρχουν στο παράδειγμα της εικόνας 2-1. Η εντολή move παράγει την τιμή στον καταχωρητή r3, ο οποίος χρησιμοποιείται επίσης από τις εντολές lw και add. Αυτός είναι ένας RAW κίνδυνος διότι υπάρχει μία πραγματική εξάρτηση. Η εντολή add επίσης δημιουργεί μία τιμή η οποία γράφεται στον καταχωρητή r3. Επομένως, υπάρχει ένας WAW κίνδυνος ανάμεσα στις εντολές move και add. Μία δυναμική εκτέλεση πρέπει να διασφαλίσει ότι προσβάσεις στον καταχωρητή r3 από εντολές που εμφανίζονται μετά την εντολή add στο πρόγραμμα θα διαβάσουν την τιμή που δημιουργεί η εντολή add και όχι η εντολή move η οποία επίσης ανανεώνει τον καταχωρητή r3. Παρομοίως, υπάρχει ένας κίνδυνος WAR ανάμεσα στις εντολές lw και add. Κατά την εκτέλεση πρέπει να διασφαλιστεί ότι η τιμή του r3 που χρησιμοποιείται από την εντολή lw είναι η τιμή που δημιουργήθηκε από την εντολή move και όχι αυτή που παράγει η εντολή add. Εικόνα 2-2 Μετά την επίλυση των εξαρτήσεων ελέγχου και των τεχνητών εξαρτήσεων δεδομένων, οι εντολές είναι έτοιμες να εκτελεστούν παράλληλα. Το υλικό δημιουργεί ένα πρόγραμμα παράλληλης εκτέλεσης (parallel execution schedule). Το πρόγραμμα αυτό λαμβάνει υπόψη τους απαραίτητους περιορισμούς, όπως είναι οι πραγματικές εξαρτήσεις και οι περιορισμοί πόρων υλικού (λειτουργικές μονάδες και μονοπάτια δεδομένων, data paths). Η ύπαρξη ενός προγράμματος παράλληλης εκτέλεσης συχνά σημαίνει ότι οι εντολές ολοκληρώνουν την εκτέλεσή τους με σειρά διαφορετική από αυτή που ορίζει το ακολουθιακό μοντέλο εκτέλεσης. Επιπλέον, η εκτέλεση εντολών από ένα μονοπάτι το οποίο ο επεξεργαστής προέβλεψε ότι θα ακολουθηθεί έπειτα από μία εντολή διακλάδωσης υπό συνθήκη σημαίνει ότι ορισμένες εντολές θα ολοκληρώσουν την εκτέλεσή τους ενώ δε θα έπρεπε να εκτελεστούν σύμφωνα με το ακολουθιακό μοντέλο εκτέλεσης (αυτό συμβαίνει όταν η πρόβλεψη για το μονοπάτι που θα ακολουθηθεί αποδειχθεί τελικά λανθασμένη). Συνεπώς, η αρχιτεκτονική κατάσταση του επεξεργαστή (η κατάσταση που είναι εξωτερικά ορατή) δεν μπορεί να ανανεωθεί αμέσως όταν οι εντολές ολοκληρώνουν την εκτέλεσή τους. Τα αποτελέσματα των εντολών πρέπει να φυλάσσονται προσωρινά έως ότου η αρχιτεκτονική κατάσταση μπορεί αν ανανεωθεί. Στο μεταξύ, για να διατηρηθεί η απόδοση σε υψηλά επίπεδα, αυτά τα αποτελέσματα πρέπει να μπορούν να χρησιμοποιηθούν από εντολές που εξαρτώνται από αυτά. Τελικά, όταν καθοριστεί ότι μία εντολή θα έπρεπε να εκτελεστεί σύμφωνα με το ακολουθιακό μοντέλο, τα προσωρινά αποτελέσματά της 18
19 γίνονται μόνιμα ανανεώνοντας την αρχιτεκτονική κατάσταση του επεξεργαστή. Αυτή η διαδικασία ονομάζεται ολοκλήρωση (committing ή αλλιώς retiring) της εντολής. Εικόνα 2-3 Συνοψίζοντας, η εικόνα 2-3 παρουσιάζει τη μέθοδο παράλληλης εκτέλεσης που χρησιμοποιούν οι περισσότεροι superscalar επεξεργαστές. Οι εντολές ορίζονται από ένα στατικό πρόγραμμα. Η διαδικασία ανάκλησης εντολών, συμπεριλαμβανομένης της πρόβλεψης των εντολών διακλάδωσης υπό συνθήκη, χρησιμοποιείται για τη δημιουργία μιας ροής δυναμικών εντολών. Αυτές οι εντολές ελέγχονται για την ύπαρξη εξαρτήσεων και πολλές τεχνητές εξαρτήσεις αφαιρούνται. Οι εντολές έπειτα προωθούνται στο παράθυρο εκτέλεσης. Στην εικόνα 2-3 οι εντολές που βρίσκονται στο παράθυρο εκτέλεσης δεν διατάσσονται σύμφωνα με τη σειρά με την οποία εμφανίζονται στο αρχικό πρόγραμμα αλλά με βάση τις πραγματικές εξαρτήσεις δεδομένων. Από το παράθυρο εκτέλεσης επιλέγονται οι εντολές που θα εκτελεστούν με σειρά που καθορίζουν οι πραγματικές εξαρτήσεις δεδομένων και η διαθεσιμότητα των πόρων του υλικού. Τέλος, μετά την εκτέλεση, οι εντολές κατά μία έννοια επανέρχονται στην αρχική σειρά που ορίζει το πρόγραμμα καθώς ολοκληρώνονται και τα αποτελέσματά τους ανανεώνουν την αρχιτεκτονική κατάσταση του επεξεργαστή σύμφωνα με το ακολουθιακό μοντέλο. 2.3 Η μικροαρχιτεκτονική ενός τυπικού superscalar επεξεργαστή Η εικόνα 2-4 παρουσιάζει τη μικροαρχιτεκτονική, ή αλλιώς την οργάνωση του υλικού, ενός τυπικού superscalar επεξεργαστή. Τα κύρια σημεία της μικροαρχιτεκτονικής είναι: ανάκληση εντολών και πρόβλεψη διακλαδώσεων, αποκωδικοποίηση και ανάλυση εξαρτήσεων καταχωρητών, επιλογή από τη παράθυρο εκτέλεσης και εκτέλεση, ανάλυση εργασιών μνήμης και εκτέλεση, και επαναφορά των εντολών στην αρχική σειρά και ολοκλήρωση των εντολών. Δεν πρέπει να ξεχνάμε ότι κάτω από αυτή την οργάνωση υπάρχει η υλοποίηση του pipeline, του οποίου τα στάδια μπορεί είτε να συμπίπτουν είτε όχι με τις κύριες φάσεις της superscalar εκτέλεσης. Τα στάδια του pipeline αποτελούν μία χαμηλότερου επιπέδου βαθμίδα του σχεδιασμού και δε θα αναφερθούμε περισσότερο σε αυτά. Αυτό που θα αναλύσουμε στη συνέχεια της παραγράφου είναι οι διάφορες φάσεις που περιγράφηκαν προηγουμένως για την υλοποίηση της superscalar εκτέλεσης. 19
20 Εικόνα Ανάκληση εντολών και πρόβλεψη διακλαδώσεων Η φάση ανάκλησης εντολών είναι το τμήμα της superscalar επεξεργασίας που προμηθεύει με εντολές τις επόμενες φάσεις της επεξεργασίας. Μία κρυφή μνήμη εντολών (instruction cache), η οποία είναι μία μικρή μνήμη που περιέχει τις πρόσφατα χρησιμοποιηθείσες εντολές, χρησιμοποιείται σε όλους σχεδόν τους επεξεργαστές, superscalar και μη, προκειμένου να μειωθεί η καθυστέρηση και να αυξηθεί το εύρος ζώνης της διαδικασίας ανάκλησης εντολών. Μία κρυφή μνήμη εντολών είναι οργανωμένη σε τμήματα ή γραμμές που περιέχουν αρκετές συνεχόμενες εντολές. Ο απαριθμητής προγράμματος χρησιμοποιείται για να ερευνηθούν τα περιεχόμενα της κρυφής μνήμης συσχετιστικά ώστε να καθοριστεί αν η εντολή την οποία δείχνει ο απαριθμητής προγράμματος βρίσκεται αποθηκευμένη σε κάποια από τις γραμμές της κρυφής μνήμης. Αν ναι, τότε λέμε ότι έχουμε ευστοχία (hit) κρυφής μνήμης. Διαφορετικά λέμε ότι έχουμε αστοχία (miss) και η γραμμή που περιέχει την εντολή μεταφέρεται από την κύρια μνήμη και αποθηκεύεται στην κρυφή μνήμη. Για να είναι μία superscalar υλοποίηση σε θέση να εκτελεί πολλαπλές εντολές σε κάθε κύκλο, η φάση ανάκλησης εντολών πρέπει να υποστηρίζει την ανάκληση πολλαπλών εντολών ανά κύκλο από την κρυφή μνήμη. Για να υποστηριχθεί αυτό το υψηλό εύρος ζώνης για την ανάκληση εντολών, έχει καθιερωθεί η χρήση ξεχωριστών κρυφών μνημών για εντολές και δεδομένα. Ο αριθμός των εντολών που ανακαλούνται σε κάθε κύκλο πρέπει να είναι τουλάχιστον ίδιος με τον μέγιστο ρυθμό αποκωδικοποίησης και εκτέλεσης εντολών και συνήθως είναι λίγο υψηλότερος. Το επιπλέον περιθώριο στο εύρος ζώνης ανάκλησης εντολών επιτρέπει τη διατήρηση της απόδοσης σε υψηλά επίπεδα σε περιπτώσεις αστοχιών κρυφής μνήμης εντολών και καθώς και σε περιπτώσεις όπου δεν είναι δυνατόν να γίνει ανάκληση του μέγιστου αριθμού εντολών. Για παράδειγμα, αν μία εντολή διακλάδωσης μεταφέρει τον έλεγχο σε μία εντολή στη μέση μίας γραμμής της κρυφής μνήμης, τότε μόνο το υπόλοιπο τμήμα της γραμμής περιέχει χρήσιμες εντολές. Ορισμένοι superscalar επεξεργαστές ακολουθούν βήματα για να επιτρέψουν ανάκληση περισσότερων εντολών σε αυτήν την περίπτωση, για παράδειγμα πραγματοποιώντας ανάκληση από δύο διαδοχικές γραμμές ταυτόχρονα. Συχνά υπάρχει ένας αποθηκευτικός χώρος εντολών (instruction buffer) ο οποίος βοηθάει στην εξομάλυνση των ανωμαλιών που προκύπτουν στη διαδικασία ανάκλησης από τις αστοχίες κρυφής μνήμης και από τις διακλαδώσεις. Αυτός ο buffer χρησιμοποιείται από τον επεξεργαστή για τη δημιουργία ενός «αποθέματος» εντολών έτσι ώστε ο επεξεργαστής να συνεχίσει να εκτελεί εντολές όταν η ανάκληση εντολών γίνεται με χαμηλούς ρυθμούς. 2
21 Η συνήθης τακτική για την ανάκληση εντολών είναι η αύξηση του απαριθμητή προγράμματος κατά τον αριθμό των εντολών που ανακλήθηκαν και η χρήση του αυξημένου απαριθμητή προγράμματος για την ανάκληση του επόμενου τμήματος εντολών. Σε περίπτωση εντολών διακλάδωσης οι οποίες ανακατευθύνουν τη ροή ελέγχου ο μηχανισμός ανάκλησης πρέπει επίσης να ανακατευθυνθεί ώστε η ανάκληση να συνεχιστεί από το σημείο στο οποίο οδηγεί η διακλάδωση. Εξαιτίας των καθυστερήσεων που μπορεί να συμβούν κατά τη διαδικασία της ανακατεύθυνσης, η διαχείριση των εντολών διακλάδωσης είναι πολύ σημαντική για την επίτευξη υψηλής απόδοσης στους superscalar επεξεργαστές. Η επεξεργασία των εντολών διακλάδωσης υπό συνθήκη μπορεί να χωριστεί στα ακόλουθα μέρη: 1. αναγνώριση ότι μία εντολή είναι εντολή διακλάδωσης υπό συνθήκη 2. καθορισμός του αποτελέσματος της διακλάδωσης (αν θα πραγματοποιηθεί ή όχι) 3. υπολογισμός του σημείου στο οποίο οδηγεί η εντολή διακλάδωσης 4. μεταφορά του ελέγχου με ανακατεύθυνση της ανάκλησης εντολών (στην περίπτωση που η διακλάδωση πραγματοποιείται) Για τη διαχείριση καθενός από τα παραπάνω μέρη χρησιμοποιούνται συγκεκριμένες τεχνικές. Αναγνώριση των εντολών διακλάδωσης υπό συνθήκη Η αναγνώριση των εντολών διακλάδωσης είναι το πρώτο βήμα για την επίτευξη γρήγορης πρόβλεψης των διακλαδώσεων. Η αναγνώριση όλων των ειδών εντολών και όχι μόνο των εντολών διακλάδωσης μπορεί να επιταχυνθεί αν ορισμένες από τις πληροφορίες αποκωδικοποίησης της εντολής φυλάσσονται στην κρυφή μνήμη εντολών μαζί με τις εντολές. Αυτά τα επιπλέον bits επιτρέπουν την εύκολη αναγνώριση των βασικών τύπων εντολών χρησιμοποιώντας απλά λογικά κυκλώματα. Συνεπώς, πριν από την κρυφή μνήμη εντολών υπάρχει συχνά ένα κύκλωμα προαποκωδικοποίησης το οποίο δημιουργεί τα κατάλληλα bits τα οποία αποθηκεύονται μαζί με τις εντολές στην κρυφή μνήμη εντολών. Καθορισμός του αποτελέσματος της διακλάδωσης Συχνά, όταν γίνεται η ανάκληση μιας εντολής διακλάδωσης, τα δεδομένα με βάση τα οποία θα παρθεί η απόφαση για τη διακλάδωση δεν είναι ακόμα διαθέσιμα. Αυτό σημαίνει ότι υπάρχει εξάρτηση ανάμεσα στην εντολή διακλάδωσης και σε εντολές που προηγούνται στο πρόγραμμα και δεν έχουν εκτελεστεί. Αντί ο επεξεργαστής να περιμένει να εκτελεστούν αυτές οι εντολές, το αποτέλεσμα μιας διακλάδωσης υπό συνθήκη μπορεί να προβλεφθεί χρησιμοποιώντας μία μέθοδο πρόβλεψης από τις αρκετές μεθόδους που έχουν προταθεί. Κάποιες από αυτές χρησιμοποιούν στατικές πληροφορίες, δηλαδή πληροφορίες που εξάγονται από τον κώδικα του προγράμματος. Για παράδειγμα, μία διακλάδωση προς τα πίσω (όπως όταν σχηματίζονται βρόχοι) μπορεί να είναι πιο πιθανό να πραγματοποιηθεί. Επίσης είναι δυνατόν ο μεταφραστής (compiler) να θέτει μία σημαία σε μία εντολή προκειμένου να υποδείξει την πιθανότερη κατάληξη της διακλάδωσης με βάση τη γνώση που διαθέτει για τη γλώσσα υψηλού επιπέδου στην οποία έχει υλοποιηθεί το πρόγραμμα. Ο μεταφραστής μπορεί ακόμα να χρησιμοποιεί στατιστικές πληροφορίες που προκύπτουν από προηγούμενες εκτελέσεις του προγράμματος για να καθορίσει το πιθανότερο αποτέλεσμα μιας διακλάδωσης. Άλλοι μηχανισμοί πρόβλεψης λειτουργούν δυναμικά, χρησιμοποιώντας πληροφορία που γίνεται διαθέσιμη καθώς το πρόγραμμα εκτελείται. Αυτή συνήθως αφορά το ιστορικό των αποτελεσμάτων των διαφόρων εντολών διακλάδωσης, είτε της συγκεκριμένης εντολής για την οποία πραγματοποιείται πρόβλεψη, είτε άλλων εντολών διακλάδωσης που οδηγούν σε αυτήν, είτε και τα δύο. Το ιστορικό αυτό αποθηκεύεται σε έναν πίνακα ιστορικού διακλαδώσεων (branch history table ή αλλιώς branch prediction table). Εναλλακτικά, μπορεί να προστεθεί στη γραμμή της κρυφής μνήμης εντολών που περιέχει την εντολή διακλάδωσης. Ο πίνακας ιστορικού διακλαδώσεων συνήθως οργανώνεται με τρόπο παρόμοιο με τις κρυφές μνήμες και προσπελαύνεται χρησιμοποιώντας τη διεύθυνση της εντολής διακλάδωσης για την οποία πρέπει να πραγματοποιηθεί πρόβλεψη. Στον πίνακα αυτό καταγράφονται τα αποτελέσματα προηγούμενων εκτελέσεων των εντολών διακλάδωσης χρησιμοποιώντας αρκετά bits για κάθε εντολή, τα οποία 21
22 συνήθως σχηματίζουν μικρούς μετρητές έτσι ώστε να συνοψίζουν τα αποτελέσματα αρκετών προηγούμενων εκτελέσεων κάθε εντολής διακλάδωσης. Οι μετρητές αυξάνονται όταν η αντίστοιχη διακλάδωση πραγματοποιείται (σταματώντας στη μέγιστη τιμή) και μειώνονται όταν η διακλάδωση δεν πραγματοποιείται (σταματώντας στην ελάχιστη τιμή). Συνεπώς, η τιμή του μετρητή συνοψίζει το επικρατέστερο αποτέλεσμα των πρόσφατων εκτελέσεων των εντολών διακλάδωσης. Κάποια στιγμή αφού έχει πραγματοποιηθεί η πρόβλεψη, το πραγματικό αποτέλεσμα της διακλάδωσης γίνεται γνωστό. Οι δυναμικές πληροφορίες του ιστορικού της διακλάδωσης μπορούν τότε να ανανεωθούν. (Σε κάποιες μεθόδους η ανανέωση μπορεί να γίνει και υποθετικά, ταυτόχρονα με την πρόβλεψη για το αποτέλεσμα). Αν η πρόβλεψη ήταν λανθασμένη, η ανάκληση εντολών πρέπει να ανακατευθυνθεί στο σωστό μονοπάτι. Επιπλέον, αν κάποιες από τις εντολές που επεξεργάζονται ανήκουν στο λανθασμένο μονοπάτι, η εκτέλεσή τους πρέπει να τερματιστεί και τα αποτελέσματά τους να μη ληφθούν υπόψη για την ανανέωση της κατάστασης του επεξεργαστή. Υπολογισμός του σημείου στο οποίο οδηγεί η εντολή διακλάδωσης Ο υπολογισμός του σημείου στο οποίο οδηγεί η εντολή διακλάδωσης συνήθως απαιτεί μία πρόσθεση ακεραίων. Στις περισσότερες αρχιτεκτονικές (τουλάχιστον για τις πιο συχνά χρησιμοποιούμενες διακλαδώσεις) το σημείο αυτό δίνεται σχετικά ως προς την απαριθμητή προγράμματος χρησιμοποιώντας μία τιμή διαφοράς (offset) η οποία είναι αποθηκευμένη στην εντολή. Έτσι δεν υπάρχει η ανάγκη να προσπελαστεί η τιμή κάποιου καταχωρητή. Ωστόσο, η πρόσθεση της τιμής διαφοράς στον απαριθμητή προγράμματος εξακολουθεί να είναι απαραίτητη. Επιπλέον, μπορεί να υπάρχουν κάποιες εντολές διακλάδωσης που χρειάζονται περιεχόμενα καταχωρητών για να υπολογιστεί το σημείο στο οποίο οδηγεί η διακλάδωση. Η εύρεση του σημείου αυτού μπορεί να επιταχυνθεί χρησιμοποιώντας αποθηκευτικό χώρο στον οποίο φυλάσσεται η διεύθυνση στην οποία μεταφέρθηκε ο έλεγχος την τελευταία φορά που εκτελέστηκε μία συγκεκριμένη εντολή διακλάδωσης. Μεταφορά του ελέγχου Όταν μία διακλάδωση πραγματοποιείται (ή προβλέπεται ότι θα πραγματοποιηθεί) συνήθως υπάρχει μία καθυστέρηση τουλάχιστον ενός κύκλου για να αναγνωριστεί η διακλάδωση, να τροποποιηθεί ο απαριθμητής προγράμματος και να αρχίσει η ανάκληση εντολών από την νέα διεύθυνση. Αυτή η καθυστέρηση μπορεί να οδηγήσει σε κενά στο pipeline (φυσαλίδες, bubbles) εκτός αν ληφθούν κατάλληλα μέτρα. Η πιο κοινή ίσως λύση στο πρόβλημα είναι η χρήση του αποθηκευτικού χώρου εντολών που αναφέρθηκε προηγουμένως για να καλυφθεί η καθυστέρηση. Πιο πολύπλοκοι αποθηκευτικοί χώροι μπορεί να περιέχουν εντολές τόσο από το μονοπάτι που προκύπτει αν πραγματοποιηθεί η διακλάδωση όσο και από αυτό που προκύπτει αν δεν πραγματοποιηθεί Αποκωδικοποίηση, μετονομασία και προώθηση των εντολών Κατά τη διάρκεια της φάσης αυτής, οι εντολές αποσύρονται από τους αποθηκευτικούς χώρους στους οποίους τοποθετούνται στη φάση ανάκλησης, εξετάζονται και καθορίζονται οι εξαρτήσεις ελέγχου και δεδομένων για τις υπόλοιπες φάσεις του pipeline. Η φάση αυτή περιλαμβάνει τον εντοπισμό των πραγματικών εξαρτήσεων (που οφείλονται σε κινδύνους RAW) και την επίλυση των υπολοίπων κινδύνων, WAW και WAR που προκαλούνται από την επαναχρησιμοποίηση των καταχωρητών. Επίσης, η φάση αυτή κατανέμει, ή αλλιώς προωθεί, τις εντολές σε αποθηκευτικούς χώρους που σχετίζονται με λειτουργικές μονάδες του υλικού για περεταίρω επεξεργασία και εκτέλεση. Ο ρόλος της φάσης αποκωδικοποίησης είναι να δημιουργήσει για κάθε εντολή μία λίστα η οποία καθορίζει: i) την εργασία που θα εκτελεστεί, ii) την ταυτότητα των στοιχείων αποθήκευσης όπου βρίσκονται (ή θα βρίσκονται τελικά) οι τελεσταίοι και iii) οι τοποθεσίες στις οποίες θα τοποθετηθεί το αποτέλεσμα της εντολής. Στο στατικό πρόγραμμα, τα στοιχεία αποθήκευσης είναι τα αρχιτεκτονικά στοιχεία αποθήκευσης, δηλαδή οι αρχιτεκτονικοί ή λογικοί καταχωρητές και οι 22
23 θέσεις της κύριας μνήμης. Ωστόσο, προκειμένου να ξεπεραστούν οι κίνδυνοι WAR και WAW και να αυξηθεί ο βαθμός παραλληλίας κατά τη διάρκεια της δυναμικής εκτέλεσης, συχνά υπάρχουν φυσικά στοιχεία αποθήκευσης τα οποία μπορεί να διαφέρουν από τα λογικά στοιχεία αποθήκευσης. Τα λογικά στοιχεία αποθήκευσης μπορούν να θεωρηθούν σαν ένα απλό μέσο το οποίο βοηθά στην περιγραφή του τι πρέπει να κάνει το πρόγραμμα. Κατά τη διάρκεια της παράλληλης εκτέλεσης, μπορεί να υπάρχουν πολλαπλές τιμές δεδομένων αποθηκευμένες σε πολλαπλά φυσικά στοιχεία αποθήκευσης και όλες αυτές οι τιμές να σχετίζονται στο ίδιο λογικό στοιχείο αποθήκευσης. Κάθε μία από αυτές τις τιμές όμως αντιστοιχεί σε διαφορετική χρονική στιγμή κατά τη διάρκεια της διαδικασίας ακολουθιακής εκτέλεσης. Όταν μία εντολή δημιουργεί μία νέα τιμή για έναν λογικό καταχωρητή, η φυσική τοποθεσία που τοποθετείται η τιμή λαμβάνει ένα «όνομα» γνωστό από το υλικό. Σε οποιαδήποτε επόμενη εντολή η οποία χρησιμοποιεί την τιμή αυτή σαν είσοδο γνωστοποιείται το όνομα της φυσικής περιοχής αποθήκευσης. Αυτό πραγματοποιείται στην φάση αποκωδικοποίησης/μετονομασίας/προώθησης (εικόνα 2-4) αντικαθιστώντας τον λογικό καταχωρητή που ορίζει η εντολή με το νέο όνομα της φυσικής περιοχής αποθήκευσης. Ο καταχωρητής τότε λέμε ότι μετονομάζεται. Δύο είναι οι δημοφιλέστερες μέθοδοι μετονομασίας που χρησιμοποιούνται συχνά. Στην πρώτη μέθοδο, υπάρχει ένα φυσικό αρχείο καταχωρητών (register file) μεγαλύτερο από το λογικό αρχείο καταχωρητών. Ένας πίνακας αντιστοίχισης χρησιμοποιείται για να αντιστοιχιστεί ένας φυσικός καταχωρητής με την τρέχουσα τιμή ενός λογικού καταχωρητή. Η αποκωδικοποίηση των εντολών και η μετονομασία των καταχωρητών πραγματοποιείται με την ακολουθιακή σειρά του προγράμματος. Όταν μία εντολή αποκωδικοποιείται, ο λογικός καταχωρητής στον οποίο ορίζεται ότι θα τοποθετηθεί το αποτέλεσμα αντιστοιχίζεται σε κάποιον φυσικό καταχωρητή από μία λίστα ελεύθερων καταχωρητών (free list), η οποία αποτελείται από τους φυσικούς καταχωρητές που προς το παρόν δεν έχουν αντιστοιχιστεί σε κάποιον λογικό καταχωρητή και ο πίνακας αντιστοίχισης τροποποιείται ώστε να δείχνει την νέα αντιστοίχιση. Επίσης, ο φυσικός καταχωρητής αφαιρείται από τη λίστα. Σαν μέρος της διαδικασίας μετονομασίας, οι λογικοί καταχωρητές στους οποίους ορίζεται από την εντολή ότι βρίσκονται τα δεδομένα εισόδου της εντολής χρησιμοποιούνται για να βρεθούν οι φυσικοί καταχωρητές στους οποίους βρίσκονται τα δεδομένα (με τη βοήθεια του πίνακα αντιστοίχισης). Από αυτούς τους καταχωρητές θα φορτωθούν οι τιμές των τελεσταίων της εντολής. Η προώθηση των εντολών στο παράθυρο εκτέλεσης διακόπτεται προσωρινά αν η λίστα ελεύθερων καταχωρητών είναι άδεια. Η εικόνα 2-5 αποτελεί ένα παράδειγμα μετονομασίας φυσικών καταχωρητών. Η εντολή που βρίσκεται υπό επεξεργασία είναι η πρώτη εντολή add r3, r3, 4 της εικόνας 2-1. Οι λογικοί, αρχιτεκτονικοί καταχωρητές συμβολίζονται με μικρά γράμματα, ενώ οι φυσικοί καταχωρητές με κεφαλαία. Στην αριστερή πλευρά της εικόνας (before) ο πίνακας αντιστοίχισης δείχνει ότι ο r3 αντιστοιχίζεται στον φυσικό καταχωρητή R1. ο πρώτος διαθέσιμος φυσικός καταχωρητής στη λίστα είναι ο R2. Κατά τη διάρκεια της μετονομασίας, ο καταχωρητής r3 που ορίζεται από την εντολή add ως ο ένας από τους δύο τελεσταίους αντικαθίσταται από τον R1, το φυσικό καταχωρητή που θα τοποθετηθεί η τιμή από κάποια προηγούμενη εντολή. Η εντολή add ορίζει επίσης ότι στον r3 θα τοποθετηθεί το αποτέλεσμα της πράξης. Ο καταχωρητής αυτός μετονομάζεται στον πρώτο φυσικό καταχωρητή της λίστας που είναι διαθέσιμος, τον R2, και ο πίνακας αντιστοίχισης ενημερώνεται κατάλληλα. Σε οποιαδήποτε επόμενη εντολή που διαβάζει την τιμή που παράγεται από την εντολή add ο λογικός καταχωρητής r3 θα αντικατασταθεί από τον φυσικό καταχωρητή R2 έτσι ώστε να διαβαστεί η σωστή τιμή. 23
24 Εικόνα 2-5 Όταν ένας φυσικός καταχωρητής διαβαστεί για τελευταία φορά, το περιεχόμενό του δεν είναι πλέον απαραίτητο να διατηρηθεί και ο καταχωρητής μπορεί να τοποθετηθεί ξανά στη λίστα ελεύθερων καταχωρητών ώστε να μπορεί να χρησιμοποιηθεί από άλλες εντολές. Ανάλογα με τη συγκεκριμένη υλοποίηση, αυτό μπορεί να απαιτεί από το υλικό τη διατήρηση λιγότερων ή περισσότερων στοιχείων χρήσης του καταχωρητή. Μία μέθοδος είναι η χρήση ενός μετρητή για κάθε φυσικό καταχωρητή. Ο καταχωρητής αυξάνεται κάθε φορά που ένας καταχωρητής πηγής (καταχωρητής από τον οποίο μία εντολή διαβάζει δεδομένα) μετονομάζεται στον συγκεκριμένο φυσικό καταχωρητή και μειώνεται κάθε φορά που μία εντολή εκτελείται και διαβάζει δεδομένα από τον φυσικό καταχωρητή. Ο φυσικός καταχωρητής είναι ελεύθερος για χρήση κάθε φορά που ο μετρητής είναι, με την προϋπόθεση ότι ο αντίστοιχος λογικός καταχωρητής έχει μετονομαστεί σε κάποιον άλλον φυσικό καταχωρητή. Στην πράξη, μία πιο απλή μέθοδος από την ύπαρξη μετρητή είναι η αναμονή έως ότου ο αντίστοιχος λογικός καταχωρητής όχι μόνο έχει μετονομαστεί από μία επόμενη εντολή, αλλά η εντολή αυτή έχει λάβει την τιμή της και έχει ολοκληρωθεί (ενημερώνοντας και την κατάσταση του επεξεργαστή). Στο σημείο αυτό, η προηγούμενη έκδοση του καταχωρητή είναι εγγυημένο ότι δεν είναι πλέον απαραίτητη, συμπεριλαμβανομένης και της ανανέωσης της κατάστασης του επεξεργαστή σε περίπτωση κάποιας διακοπής. Η δεύτερη μέθοδος μετονομασίας χρησιμοποιεί ένα φυσικό αρχείο καταχωρητών που έχει μέγεθος ίδιο με το λογικό αρχείο καταχωρητών, και η 1 προς 1 σχέση διατηρείται. Επιπλέον, υπάρχει ένας αποθηκευτικός χώρος (buffer) με μία εγγραφή για κάθε ενεργή εντολή (δηλαδή για κάθε εντολή που έχει τοποθετηθεί στο παράθυρο εκτέλεσης αλλά δεν έχει ακόμα ολοκληρωθεί ανανεώνοντας την κατάσταση του επεξεργαστή). Ο αποθηκευτικός αυτός χώρος ονομάζεται χώρος αναδιάταξης (reorder buffer) διότι χρησιμοποιείται επίσης για τη διατήρηση της σωστής σειράς των εντολών σε περίπτωση διακοπών. Η εικόνα 2-6 παρουσιάζει έναν reorder buffer. Ο reorder buffer είναι μια FIFO (First In First Out, η πρώτη εγγραφή που μπήκε είναι και η πρώτη που βγαίνει) δομή αποθήκευσης, υλοποιημένη στο υλικό σας ένας κυκλικός αποθηκευτικός χώρος με δείκτες αρχής και τέλους (head και tail pointers). Καθώς οι εντολές προωθούνται για εκτέλεση σύμφωνα με την ακολουθιακή σειρά του προγράμματος, τους ανατίθενται εγγραφές στο τέλος του reorder buffer. Όταν οι εντολές εκτελεστούν, τα αποτελέσματά τους αποθηκεύονται στην εγγραφή του reorder buffer που τους έχει ανατεθεί, όπου κι αν βρίσκεται αυτή. Όταν μία εντολή φτάνει στην αρχή του reorder buffer, αν έχει εκτελεστεί η εγγραφή της αφαιρείται από τον reorder buffer και το αποτέλεσμά της τοποθετείται στο αρχείο καταχωρητών. Μία εντολή που δεν έχει εκτελεστεί και βρίσκεται στην αρχή του reorder buffer παραμένει εκεί, μπλοκάροντάς τον, μέχρι να παραχθεί η τιμή της. Ένας superscalar επεξεργαστής πρέπει να είναι σε θέση να τοποθετεί και να αφαιρεί περισσότερες από μία εγγραφές στον reorder buffer κάθε φορά, ακολουθώντας πάντα όμως την αρχή FIFO. 24
25 Εικόνα 2-6 Η τιμή ενός λογικού καταχωρητή μπορεί να βρίσκεται είτε στο φυσικό αρχείο καταχωρητών είτε στον reorder buffer. Όταν μία εντολή αποκωδικοποιείται, για την τιμή του αποτελέσματός της ανατίθεται στην εντολή μία φυσική εγγραφή του reorder buffer και έπειτα ένας πίνακας αντιστοίχισης σχηματίζεται κατάλληλα. Συγκεκριμένα, ο πίνακας δείχνει ότι μία τιμή μπορεί να βρεθεί σε μία συγκεκριμένη εγγραφή του πίνακα αντιστοίχισης ανάλογα με την εντολή η οποία παράγει την τιμή αυτή. Ο καταχωρητής πηγής μίας εντολής χρησιμοποιείται για την προσπέλαση του πίνακα αντιστοίχισης. Ο πίνακας δείχνει είτε ότι ο αντίστοιχος καταχωρητής διαθέτει το ζητούμενο δεδομένο, είτε ότι το δεδομένο βρίσκεται στον reorder buffer. Τέλος, όταν ο reorder buffer είναι γεμάτος, η προώθηση των εντολών διακόπτεται προσωρινά. Η εικόνα 2-7 δείχνει τη διαδικασία μετονομασίας που εφαρμόζεται στην ίδια εντολή add r3, r3, 4 όπως και στην εικόνα 2-5. Τη στιγμή που η εντολή είναι έτοιμη για προώθηση (αριστερό τμήμα της εικόνας, before), οι τιμές για τους καταχωρητές r1 και r2 βρίσκονται στο αρχείο καταχωρητών. Η τιμή του καταχωρητή r3 όμως βρίσκεται (ή θα βρεθεί) στην εγγραφή 6 του reorder buffer μέχρι αυτή να γραφτεί στο αρχείο καταχωρητών όταν η αντίστοιχη εντολή ολοκληρωθεί ανανεώνοντας την κατάσταση του επεξεργαστή. Επομένως, κατά τη διαδικασία μετονομασίας, ο καταχωρητής πηγής r3 αντικαθίσταται από την εγγραφή 6 του reorder buffer (rob6). Η εντολή add δεσμεύει μία εγγραφή στο τέλος του reorder buffer, την εγγραφή 8 (rob8). Ο πίνακας αντιστοίχισης ενημερώνεται με τον αριθμό αυτής της εγγραφής του reorder buffer προκειμένου να γίνει σωστά η μετονομασία των εντολών που χρησιμοποιούν το αποτέλεσμα της add. Εικόνα 2-7 Συνοψίζοντας, ανεξαρτήτως της μεθόδου που χρησιμοποιείται, η μετονομασία καταχωρητών αφαιρεί τις τεχνητές εξαρτήσεις που οφείλονται σε WAW και WAR κινδύνους, αφήνοντας μόνο τις πραγματικές RAW εξαρτήσεις μεταξύ καταχωρητών. 25
26 2.3.3 Έναρξη εκτέλεσης εντολών και παράλληλη εκτέλεση Όπως είδαμε στην προηγούμενη ενότητα, στη φάση αποκωδικοποίησης/ μετονομασίας/ προώθησης δημιουργείται μία λίστα για κάθε εντολή, η οποία καθορίζει τη λειτουργία της εντολής και τους φυσικούς καταχωρητές που θα χρησιμοποιήσει η εντολή. Όταν αυτές οι λίστες δημιουργηθούν και αποθηκευτούν, το επόμενο βήμα είναι να αποφασιστεί ποιες εντολές μπορούν να αρχίσουν να εκτελούνται, εξετάζοντας τη λίστα κάθε εντολής. Η διαδικασία αυτή ονομάζεται issue και ορίζεται ως ο έλεγχος διαθεσιμότητας δεδομένων και πόρων κατά τη διάρκεια της εκτέλεσης του προγράμματος ώστε να καθοριστεί ποιες εντολές μπορούν να αρχίσουν να εκτελούνται. Η φάση issue είναι η φάση που περιλαμβάνει και το παράθυρο εκτέλεσης. Ιδανικά, μία εντολή είναι έτοιμη να εκτελεστεί τη στιγμή που οι τελεσταίοι εισόδου της γίνουν διαθέσιμοι. Παρ όλα αυτά, υπάρχουν και άλλοι περιορισμοί που εμποδίζουν την εκτέλεση μίας εντολής, κυρίως η διαθεσιμότητα πόρων όπως είναι οι μονάδες εκτέλεσης, οι διαθέσιμες διασυνδέσεις και οι θύρες του αρχείου καταχωρητών ή του reorder buffer. Άλλοι περιορισμοί σχετίζονται με την οργάνωση των αποθηκευτικών χώρων όπου φυλάσσονται οι λίστες που δημιουργούνται για κάθε εντολή. Η εικόνα 2-8 αποτελεί παράδειγμα ενός πιθανού προγράμματος παράλληλης εκτέλεσης για μία επανάληψη του παραδείγματος της εικόνας 2-1. Η δημιουργία αυτού του προγράμματος έγινε υποθέτοντας ότι οι πόροι του υλικού αποτελούνται από δύο μονάδες ακεραίων, ένα μονοπάτι προς τη μνήμη και μία μονάδα πρόβλεψης διακλαδώσεων. Η κάθετη κατεύθυνση αντιστοιχεί σε βήματα στο χρόνο, ενώ η οριζόντια κατεύθυνση αντιστοιχεί σε λειτουργίες που εκτελούνται την ίδια χρονική στιγμή. Στο πρόγραμμα, έγινε η πρόβλεψη ότι η διακλάδωση ble δε θα πραγματοποιηθεί και έτσι εκτελούνται εντολές από το προβλεπόμενο μονοπάτι. Για λόγους ευκολίας της παρουσίασης, στην εικόνα φαίνεται μόνο η μετονομασία του καταχωρητή r3. Σε μία πραγματική υλοποίηση, και οι υπόλοιποι καταχωρητές θα μετονομάζονταν. Κάθε μία από τις διαφορετικές τιμές που ανατίθενται στον καταχωρητή r3 αντιστοιχούν σε διαφορετικό φυσικό καταχωρητή (R1, R2, R3, R4). Εικόνα 2-8 Στη συνέχεια αναφέρονται συνοπτικά διάφοροι τρόποι για την οργάνωση των αποθηκευτικών χώρων που χρειάζονται για τη διαδικασία issue, με σειρά αύξουσας πολυπλοκότητας. Οι τρόποι αυτοί παρουσιάζονται στην εικόνα 2-9. Μέθοδος απλής ουράς Αν υπάρχει μία απλή ουρά, και δεν πραγματοποιείται εκτέλεση εκτός σειράς, τότε η μετονομασία καταχωρητών δεν είναι απαραίτητη και η διαθεσιμότητα των τελεσταίων μπορεί να ελεγχθεί με ορισμένα bits κράτησης σε κάθε καταχωρητή. Ένας καταχωρητής είναι κατειλημμένος όταν μία εντολή που τροποποιεί τον καταχωρητή αρχίζει να εκτελείται και παύει να είναι κατειλημμένος όταν η εντολή εκτελεστεί. Μία εντολή μπορεί να αρχίσει να εκτελείται (δεδομένης της διαθεσιμότητας πόρων) αν οι καταχωρητές όπου βρίσκονται οι τελεσταίοι της δεν είναι κατειλημμένοι. 26
Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης
Διαβάστε περισσότεραΠαραλληλισμός σε επίπεδο εντολών
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης
Διαβάστε περισσότεραΜάθημα 4: Κεντρική Μονάδα Επεξεργασίας
Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει
Διαβάστε περισσότεραΟργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός
Διαβάστε περισσότεραΥ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών
Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Αρης Ευθυμίου Το σημερινό μάθημα Προσκόμιση (fetch) πολλαπλές εντολές ανά κύκλο Μετονομασία καταχωρητών
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων
Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις
Διαβάστε περισσότεραΤο ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ
Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή
Διαβάστε περισσότεραΥΠΕΡΒΑΘΜΩΤΟΙ ΕΠΕΞΕΡΓΑΣΤΕΣ
01/09/2013 Επιβλέπων Καθηγητής Δασυγένης Μηνάς ΥΠΕΡΒΑΘΜΩΤΟΙ ΕΠΕΞΕΡΓΑΣΤΕΣ Συστήματα Παράλληλης & Κατανεμημένης Επεξεργασίας Ντάγιου Άννα 432 Πούλιου Χρύσα 447 ΠΕΡΙΕΧΟΜΕΝΑ Εισαγωγή..6 Από το ακολουθιακό
Διαβάστε περισσότεραΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ
ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε
Διαβάστε περισσότεραΑρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:
Διαβάστε περισσότερα2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ Α Σ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ Ι Κ Ω Ν Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.
Διαβάστε περισσότεραΚεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ
Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ
Διαβάστε περισσότεραΜάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας
Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους
Διαβάστε περισσότεραΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I
ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία
Διαβάστε περισσότεραΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 6ο μάθημα: χρονοπρογραμματισμός, αλγόριθμος Tomasulo, εικασία Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου InstrucDon- Level
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 6: Ασκήσεις Εξαμήνου Μέρος Β Νοέμβριος 2016 Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση ενός
Διαβάστε περισσότεραΣυστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC
Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.
Διαβάστε περισσότερα1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο
Διαβάστε περισσότεραΟργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής
Γιώργος Δημητρίου Μάθημα 8 ο Μερική Επικάλυψη Κίνδυνοι στη Μερική Επικάλυψη Αδυναμία ιδανικής εκτέλεσης με μερική επικάλυψη Εξαρτήσεις μεταξύ εντολών Ανάγκη εκτέλεσης λειτουργιών σε συγκεκριμένη σειρά
Διαβάστε περισσότεραΕικονική Μνήμη (Virtual Μemory)
ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Γιώργος Δημητρίου Ενότητα 5 η : Δυναμική Δρομολόγηση Εντολών (Διακλαδώσεις, Υποθετική & Υπερβαθμωτή Εκτέλεση) Πέρα από την Εκτέλεση Εκτός Σειράς Δυναμική πρόβλεψη διακλαδώσεων Ιστορία διακλάδωσης Πρόβλεψη
Διαβάστε περισσότεραΠαραλληλισµός Εντολών (Pipelining)
ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,
Διαβάστε περισσότεραΚεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση
Κεφάλαιο 5 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 1 Σημείωση Οι παρούσες διαφάνειες παρέχονται ως συμπλήρωμα διδασκαλίας για το μάθημα «Αρχιτεκτονική Υπολογιστών» του Τμήματος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας
Διαβάστε περισσότεραΕργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή
Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ
Διαβάστε περισσότεραΑρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 3 : Μια άποψη του κορυφαίου επιπέδου λειτουργίας και διασύνδεσης του υπολογιστή Καρβούνης Ευάγγελος Η έννοια
Διαβάστε περισσότεραΙόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Απόδοση ΚΜΕ. (Μέτρηση και τεχνικές βελτίωσης απόδοσης)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας
Διαβάστε περισσότεραΟργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική
Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι
Διαβάστε περισσότεραΜηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,
Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:
Διαβάστε περισσότεραΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση
ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση Αρης Ευθυμίου Απόδοση απλής υλοποίησης Υλοποίηση ενός κύκλου είναι πολύ αργή κάθε κύκλος είναι τόσο μεγάλος όσο χρειάζεται
Διαβάστε περισσότεραΣτοιχεία αρχιτεκτονικής μικροεπεξεργαστή
Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική
Διαβάστε περισσότεραi Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 6-7 Απόδοση ΚΜΕ (Μέτρηση και τεχνικές βελτίωσης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κεντρική Μονάδα Επεξεργασίας
Διαβάστε περισσότεραΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:
ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ονοματεπώνυμο: ΑΜ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (τμήμα Μ - Ω) Κανονική εξεταστική Φεβρουαρίου
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση 6: Ασκήσεις Χειμερινού Εξαμήνου 2017-2018 (μέρος Β ) Στην άσκηση αυτή θα μελετήσουμε την εκτέλεση
Διαβάστε περισσότεραΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής
ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής Αρης Ευθυμίου Ταχύτερη εκτέλεση Με τις τεχνικές που είδαμε στα προηγούμενα μαθήματα μπορούμε να εκτελέσουμε (με επικάλυψη) περίπου 1 εντολή
Διαβάστε περισσότεραΕισαγωγή στην Επιστήμη των Υπολογιστών
Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 3: Χειρισμός δεδομένων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Η Ενότητα 3 διαπραγματεύεται θέματα
Διαβάστε περισσότεραΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ
ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ Γιώργος Δημητρίου Μάθημα 7 ο ΠΜΣ Εφαρμοσμένη Πληροφορική ΔΙΑΔΟΧΙΚΕΣ ΔΙΑΔΙΚΑΣΙΕΣ Σειριακή εκτέλεση, χωρίς καμία επικάλυψη: 50ns 100ns Δ1 Χρόνος Δ2 Δ3 Συνολικός χρόνος ολοκλήρωσης
Διαβάστε περισσότεραΓενική οργάνωση υπολογιστή «ΑΒΑΚΑ»
Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση
Διαβάστε περισσότερα; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική
Διαβάστε περισσότεραΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)
ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Γιώργος Δημητρίου Ενότητα 1 η : Βασικές Αρχές Αρχιτεκτονικής Η/Υ Σύγχρονοι Μικροεπεξεργαστές Intel 6-core i7 (Gulftown) 2010, >1 billion transistors Απόδοση Μικροεπεξεργαστών V Μετρήσεις με μετροπρογράμματα
Διαβάστε περισσότεραΜάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.
Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε. 5.1 Το ρολόι Κάθε μία από αυτές τις λειτουργίες της Κ.Μ.Ε. διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι.
Διαβάστε περισσότεραΚεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής
Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα
Διαβάστε περισσότεραΔιάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)
ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Καθυστερήσεις και Εκκενώσεις Εντολών
Διαβάστε περισσότεραΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη
Διαβάστε περισσότεραΟργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό
Διαβάστε περισσότεραΥ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης
Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Αρης Ευθυμίου Το σημερινό μάθημα Execu9on scheduling wake- up and select specula9ve wake- up Εκτέλεση εντολών
Διαβάστε περισσότεραΕίναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή
1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,
Διαβάστε περισσότεραΥ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές
Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές Αρης Ευθυμίου Το σημερινό μάθημα Υπερβαθμωτοί επεξεργαστές (superscalar) Εκτέλεση σε σειρά Εκτέλεση εκτός σειράς Alpha 21164 Scoreboard Μετονομασία
Διαβάστε περισσότεραΙόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το
Διαβάστε περισσότεραΚεντρική Μονάδα Επεξεργασίας
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης
Διαβάστε περισσότεραΔομή Ηλεκτρονικού υπολογιστή
Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann
Διαβάστε περισσότεραΙεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης
Διαβάστε περισσότεραΨευδοκώδικας. November 7, 2011
Ψευδοκώδικας November 7, 2011 Οι γλώσσες τύπου ψευδοκώδικα είναι ένας τρόπος περιγραφής αλγορίθμων. Δεν υπάρχει κανένας τυπικός ορισμός της έννοιας του ψευδοκώδικα όμως είναι κοινός τόπος ότι οποιαδήποτε
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Πρόγνωση διακλαδώσεων. Εξαρτήσεις και εκτέλεση εκτός σειράς. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Σύγχρονοι υπολογιστές Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται
Διαβάστε περισσότεραΠληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας
Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ Δρ. Γκόγκος Χρήστος Εκτέλεση προγραμμάτων Πρόγραμμα: Ένα σύνολο από εντολές.
Διαβάστε περισσότεραΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές
Διαβάστε περισσότεραΤμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών
Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)
Διαβάστε περισσότεραΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές
Διαβάστε περισσότεραΣελίδα 1 από 11. Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για:
Σελίδα 1 από 11 Απαντήσεις στο φυλλάδιο 57 Ερώτηση: 1 η : Οι ακροδέκτες αυτοί χρησιµοποιούνται για: την επικοινωνία, µε τα υπόλοιπα ολοκληρωµένα κυκλώµατα του υπολογιστικού συστήµατος. την παροχή τροφοδοσίας
Διαβάστε περισσότεραΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές
Διαβάστε περισσότεραΟργάνωση και Αρχιτεκτονική Υπολογιστών. Κεφάλαιο 7.4
Οργάνωση και Αρχιτεκτονική Υπολογιστών Κεφάλαιο 7.4 Ε/Ε Οδηγούμενη από Διακοπές Το πρόβλημα με την προγραμματιζόμενη Ε/Ε είναι ότι ο επεξεργαστής πρέπει να περιμένει ώστε η μονάδα Ε/Ε που τον ενδιαφέρει
Διαβάστε περισσότεραΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2
ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 10ο μάθημα: Ορια παραλληλίας επιπέδου εντολής και πολυνηματικοί επεξεργαστές Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Ορια
Διαβάστε περισσότεραΟι βασικές λειτουργίες (ή πράξεις) που γίνονται σε μια δομή δεδομένων είναι:
ΔΟΜΕΣ ΔΕΔΟΜΕΝΩΝ Μια δομή δεδομένων στην πληροφορική, συχνά αναπαριστά οντότητες του φυσικού κόσμου στον υπολογιστή. Για την αναπαράσταση αυτή, δημιουργούμε πρώτα ένα αφηρημένο μοντέλο στο οποίο προσδιορίζονται
Διαβάστε περισσότεραΜάθημα 8: Διαχείριση Μνήμης
Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες
Διαβάστε περισσότεραΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ. Κεφάλαιο 3
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Κεφάλαιο 3 Κεντρική Μονάδα Επεξεργασίας Κεντρική Μονάδα Επεξεργασίας Μονάδα επεξεργασίας δεδομένων Μονάδα ελέγχου Μονάδα επεξεργασίας δεδομένων Δομή Αριθμητικής Λογικής Μονάδας
Διαβάστε περισσότεραΘέματα Μεταγλωττιστών
Γιώργος Δημητρίου Ενότητα 9 η : Θέματα Δρομολόγησης Εντολών ILP Παραλληλισμός επιπέδου εντολής Εξαρτήσεις δεδομένων Εξαρτήσεις ελέγχου (διαδικασιακές) Με διαθέσιμους πόρους, οι εντολές μπορούν να εκτελεστούν
Διαβάστε περισσότεραi Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης i Στα σύγχρονα
Διαβάστε περισσότεραΚεφάλαιο 3. Διδακτικοί Στόχοι
Κεφάλαιο 3 Σε ένα υπολογιστικό σύστημα η Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) εκτελεί τις εντολές που βρίσκονται στην κύρια μνήμη του. Οι εντολές αυτές ανήκουν σε προγράμματα τα οποία, όταν εκτελούνται,
Διαβάστε περισσότεραΥ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών
Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών Αρης Ευθυμίου Διαδικαστικά Ιστοσελίδα μαθήματος: h:p://www.cs.uoi.gr/~plmy07/ Διαφάνειες μαθημάτων, κτλ 2 Γρήγορη εκτέλεση σειριακού
Διαβάστε περισσότεραΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων
ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές
Διαβάστε περισσότεραΜάθημα 3: Αρχιτεκτονική Υπολογιστών
Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται
Διαβάστε περισσότεραΑρχιτεκτονική Υπολογιστών
Γιώργος Δημητρίου Ενότητα 3 η : Μερική Επικάλυψη Μερική Επικάλυψη Μηχανισμός μερικής επικάλυψης εντολών Εξαρτήσεις Κίνδυνοι (hazards) Παροχέτευση Πρόβλεψη διακλαδώσεων Μερική επικάλυψη σε μονάδες εκτέλεσης
Διαβάστε περισσότεραΣυστήματα σε Ολοκληρωμένα Κυκλώματα
Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται
Διαβάστε περισσότεραi Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική
Διαβάστε περισσότεραΕπιµέλεια Θοδωρής Πιερράτος
εδοµένα οµές δεδοµένων και αλγόριθµοι Τα δεδοµένα είναι ακατέργαστα γεγονότα. Η συλλογή των ακατέργαστων δεδοµένων και ο συσχετισµός τους δίνει ως αποτέλεσµα την πληροφορία. Η µέτρηση, η κωδικοποίηση,
Διαβάστε περισσότεραΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία
Διαβάστε περισσότεραΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης
ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη
Διαβάστε περισσότεραΑρχιτεκτονικη υπολογιστων
ΤΕΙ Κρήτης Τμ. Μηχανικών Πληροφορικής Αρχιτεκτονικη υπολογιστων Τζαγκαράκης Χαράλαμπος hatzagarak@cs.teicrete.gr Εισαγωγη: ο επεξεργαστης και η γλωσσα του Eπεξεργαστής: MIPS Microprocessor Without Interlocked
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ ΑΣ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ ΙΚΩΝ Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.ece.ntua.gr
Διαβάστε περισσότεραΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ
ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ
Διαβάστε περισσότεραΑρχιτεκτονική υπολογιστών
1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Αρχιτεκτονική υπολογιστών Ενότητα 12 : Δομή και Λειτουργία της CPU 2/2 Φώτης Βαρζιώτης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Τμήμα Μηχανικών Πληροφορικής
Διαβάστε περισσότεραΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ
ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία
Διαβάστε περισσότεραΤεχνολογίες Κύριας Μνήμης
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κύρια Μνήμη
Διαβάστε περισσότεραΚεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Οργάνωση Υπολογιστών (Ι) (η κεντρική μονάδα επεξεργασίας) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Ένα
Διαβάστε περισσότεραΛειτουργικά Συστήματα Η/Υ
Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση
Διαβάστε περισσότεραΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6
ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή
Διαβάστε περισσότεραΤμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς
ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Μεταγλωττιστές Στοίβα Εκτέλεσης και Εγγραφήματα Δραστηριοποίησης Σε όλες σχεδόν τις μοντέρνες γλώσσες προγραμματισμού,
Διαβάστε περισσότεραΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ
ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ ΧΕΙΜΩΝΑΣ 2009 ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ 1 Γενική οργάνωση του υπολογιστή Ο καταχωρητής δεδομένων της μνήμης (memory data register
Διαβάστε περισσότεραΛειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΤι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι
Διαβάστε περισσότεραΑρχιτεκτονικές Συνόλου Εντολών (ΙΙ)
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική
Διαβάστε περισσότεραΛειτουργικά Συστήματα (Λ/Σ)
Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι
Διαβάστε περισσότεραΠανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής
Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Τμήμα Πληροφορικής Άσκηση : Λυμένες Ασκήσεις Έστω ένα σύστημα μνήμης, στο οποίο έχουμε προσθέσει μια κρυφή μνήμη θυμάτων 6 θέσεων
Διαβάστε περισσότεραΙεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης
Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη
Διαβάστε περισσότεραΠαράδειγμα 2. Λύση & Επεξηγήσεις. Τέλος_επανάληψης Εμφάνισε "Ναι" Τέλος Α2
Διδακτική πρόταση ΕΝΟΤΗΤΑ 2η, Θέματα Θεωρητικής Επιστήμης των Υπολογιστών Κεφάλαιο 2.2. Παράγραφος 2.2.7.4 Εντολές Όσο επανάλαβε και Μέχρις_ότου Η διαπραγμάτευση των εντολών επανάληψης είναι σημαντικό
Διαβάστε περισσότερα