ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ"

Transcript

1 ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΕΤΑΠΤΥΧΙΑΚΟ ΠΡΟΓΡΑΜΜΑ ΣΠΟΥΔΩΝ ΟΛΟΚΛΗΡΩΜΕΝΑ ΣΥΣΤΗΜΑΤΑ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Μεθοδολογίες επαναχρησιμοποίησης δεδομένων για ελάττωση μεταφορών στην ιεραρχία μνήμης. Κελεφούρας Βασίλειος Μεταπτυχιακή εργασία Επιβλέπων καθηγητής : Γκούτης Κωνσταντίνος Μέλη Εξεταστικής Επιτροπής : Αλεξίου Γεώργιος Κουφοπαύλου Οδυσσέας Πάτρα Ιούνιος 2008

2 ΠΙΣΤΟΠΟΙΗΣΗ Πιστοποιείται ότι η διπλωματική εργασία με θέμα: Μεθοδολογίες επαναχρησιμοποίησης δεδομένων για ελάττωση μεταφορών στην ιεραρχία μνήμης. του φοιτητή του Τμήματος Μηχανικών Η/Υ και πληροφορικής: Κελεφούρα Βασίλειου του Ιωάννη (Α.Μ. 123) παρουσιάστηκε δημόσια και εξετάσθηκε στο Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών στις Ο Επιβλέπων Καθηγητής Ο Διευθυντής του Τομέα Καθηγητής Κ.Γκούτης Καθηγητής Κ.Γκούτης

3 ΠΕΡΙΛΗΨΗ Σκοπός της διπλωματικής εργασίας είναι η ανάπτυξη εργαλείου το οποίο θα δέχεται ως είσοδο C πρόγραμμα και θα βρίσκει όλη τη πληροφορία η οποία σχετίζεται με την επαναχρησιμοποίηση των δεδομένων. Τα δεδομένα αφορούν πίνακες μέσα σε βρόχους. Η επαναχρησιμοποίηση δεδομένων χωρίζεται σε τρεις κατηγορίες: α) Εύρεση της επαναχρησιμοποίησης για κάθε πίνακα ξεχωριστά. β) Εύρεση της επαναχρησιμοποίησης στοιχείων πίνακα που χρησιμοποιούνται σε διάφορες εκφράσεις. γ) Εύρεση χρήσης στοιχείων μεταξύ διαφορετικών πινάκων στην ίδια έκφραση. Η εύρεση των χαρακτηριστικών της επαναχρησιμοποίησης χρησιμεύει για την εύρεση αποδοτικού χρονοπρογραμματισμού (scheduling) του προγράμματος το οποίο θα έχει καλύτερη τοπικότητα (data locality). Η επαναχρησιμοποίηση δεδομένων εφαρμόζεται στο πρόβλημα πολλαπλασιασμού πίνακα επί διάνυσμα. Συμβατικές και μη τεχνικές υλοποίησης του προβλήματος έχουν συγκριθεί με τη προτεινόμενη. Η σύγκριση πραγματοποιήθηκε με τον εξομοιωτή SimpleScalar στον οποίο μπορούμε να τροποποιήσουμε την αρχιτεκτονική και σε υπολογιστή Desktop Pentium 4.

4 ΠΕΡΙΕΧΟΜΕΝΑ 1.ΕΙΣΑΓΩΓΗ ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΠΟΛΟΓΙΣΤΩΝ ) Superscalar ) Very Large Instruction Word (VLIW) ) Decoupled Επεξεργαστής Ιεραρχίες μνήμης cache και scratch pad Μνήμη Cache Μνήμη Scratch Pad Σύγκριση Scratchpad και cache Ιεραρχία μνήμης Eπαναχρησιμοποίηση (data reuse) και χρονοπρογραμματισμός (scheduling) Επαναχρησιμοποίηση δεδομένων Χρονοπρογραμματισμός (scheduling) Υπάρχουσες μεθοδολογίες εκμετάλλευσης επαναχρησιμοποίησης (data reuse) Λειτουργία του εργαλείου Εύρεση επαναχρησιμοποίησης για κάθε πίνακα ξεχωριστά Εύρεση της επαναχρησιμοποίησης στοιχείων πίνακα που χρησιμοποιούνται σε διάφορες εκφράσεις Εύρεση χρήσης στοιχείων μεταξύ διαφορετικών πινάκων στην ίδια έκφραση Εύρεση επαναχρησιμοποίησης στον πολλαπλασιασμό πίνακα επί διάνυσμα Eύρεση αποδοτικού χρονοπρογραμματισμού(scheduling) στον πολλαπλασιασμό πίνακα επί διάνυσμα Πειραματικά αποτελέσματα Συμπεράσματα Βιβλιογραφία:... 81

5 ΚΕΦΑΛΑΙΟ 1 ΕΙΣΑΓΩΓΗ Τη σημερινή εποχή, οι σύγχρονες εφαρμογές απαιτούν επεξεργασία πολύ μεγάλης ποσότητας δεδομένων. Οι εφαρμογές αυτές συχνά καλούνται data dominant applications. Η επεξεργασία δεδομένων περιλαμβάνει την αναζήτηση των δεδομένων από τη μνήμη, τη μεταφορά τους στο εσωτερικό του επεξεργαστή, την επεξεργασία και τέλος την επιστροφή των αποτελεσμάτων πίσω στη μνήμη. Η επεξεργασία αυτή, απαιτείται να γίνει σε όσο το δυνατόν μικρότερο χρόνο. Όμως, στα σύγχρονα συστήματα, η μνήμη είναι αυτή που καθυστερεί τη συνολική επεξεργασία. Είναι όπως λέμε το bottleneck του συστήματος. Αυτό συμβαίνει γιατί η ταχύτητα επεξεργασίας της μνήμης βελτιώνεται κάθε χρόνο περίπου μόνο κατά 7% ενώ η επεξεργαστική ισχύς βελτιώνεται κάθε χρόνο κατά 60% σύμφωνα με το νόμο του Moore. Αυτό σημαίνει ότι το χάσμα μεταξύ μνήμης και επεξεργαστή διπλασιάζεται κάθε 21 μήνες. Σήμερα ένας γρήγορος επεξεργαστής μπορεί να κάνει περίπου 1000 υπολογισμούς στη χρονική διάρκεια που χρειάζεται ένα δεδομένο να έρθει από τη μνήμη. Θα μπορούσαμε να παρομοιάσουμε τα παραπάνω με μια κατασκευή που αποτελείται από μία μηχανή που ενώ είναι πάρα πολύ γρήγορη περιμένει συνεχώς τις πρώτες ύλες να τις μεταφέρει ένας αργός ταινιόδρομος. Για το λόγω αυτό, έπρεπε να βρεθούν τρόποι ώστε να γεφυρωθεί αυτό το χάσμα. Μία κλασσική μέθοδος η οποία χρησιμοποιείται εδώ και περίπου 20 χρόνια με αρκετά καλά αποτελέσματα είναι η μνήμη cache (κρυφή μνήμη). Η μνήμη αυτή είναι μια μικρή μνήμη ενσωματωμένη στο ολοκληρωμένο του επεξεργαστή (on-chip memory), η οποία κράτα τα δεδομένα που προσπελάστηκαν πρόσφατα με βάση κάποια πρωτόκολλα που σχετίζονται με την τοπικότητα (χρονική και χωρική), όπως το LRU (Least Recently Used). Το αποτέλεσμα είναι ότι η κρυφή μνήμη κρύβει την καθυστέρηση (latency) της κύριας μνήμης και τα δεδομένα είναι προσβάσιμα σε χρόνο συγκρίσιμο με τον κύκλο του επεξεργαστή. Η μνήμη cache όμως, δεν περιλαμβάνει πάντα όλα τα δεδομένα τα οποία θέλουμε να προσπελάσουμε με αποτέλεσμα να συμβαίνουν όπως λέμε οι αστοχίες μνήμης. Επειδή μάλιστα μερικές φορές οι αστοχίες αυτές είναι πολύ συχνές, η κρυφή μνήμη συχνά δεν επαρκεί και η βελτίωση σε ταχύτητα είναι πολύ μικρή. Λαμβάνοντας επίσης υπόψη ότι η cache έχει μεγάλη κατανάλωση ισχύος καθώς και ότι καταλαμβάνει μεγάλη επιφάνεια σε ένα ολοκληρωμένο κύκλωμα εξαιτίας του πολύπλοκου hardware από το οποίο αποτελείται, είναι προφανές ότι είναι επιτακτική η ανάγκη να χρησιμοποιηθεί μια εναλλακτική μνήμη. Μία εναλλακτική μνήμη είναι η Scratch Pad μνήμη, η οποία είναι μία απλή SRAM (Static Random Access Memory). Η μνήμη αυτή είναι software controlled, πράγμα που σημαίνει ότι οι αποφάσεις σχετικά με το ποια δεδομένα πρέπει κάθε χρονική στιγμή να βρίσκονται σε κάθε επίπεδο της ιεραρχίας μνήμης παίρνονται από το software. Η

6 απουσία επιπλέον hardware για το σκοπό αυτό μειώνει τόσο την κατανάλωση ισχύος όσο και την επιφάνεια στο chip για την μνήμη αυτή. Αντίθετα, στην cache μνήμη το hardware είναι αυτό που καθορίζει ποιο δεδομένο θα φέρει κάθε φορά από το ένα επίπεδο στο άλλο καθώς και ποιο θα αντικαταστήσει με βάση κάποιο από τα διάφορα πρωτόκολλα που είναι διαθέσιμα. Ο λόγος όμως για τον οποίο η Scratch Pad μνήμη δεν χρησιμοποιείται ευρέως είναι ότι τα προγράμματα πρέπει να γράφονται με συγκεκριμένο και μόνο τρόπο καθώς και οι απαραίτητοι συμβολομεταφραστές (compilers) είναι δύσκολο να κατασκευαστούν. Αντίθετα, στην cache, δεν υπάρχουν περιορισμοί, αφού την περισσότερη δουλειά την κάνει το hardware αναζητώντας στα διάφορα επίπεδα της μνήμης το επιθυμητό δεδομένο. Το compilation δε γίνεται με βάση το υλικό που υπάρχει από κάτω, με αποτέλεσμα και τα προγράμματα να είναι φορητά και να μπορούν να τρέξουν και σε διαφορετικά συστήματα. Αντίθετα, για σωστή κατανομή των δεδομένων στα διάφορα επίπεδα της Scratch Pad Memory θα πρέπει η τεχνική που θα εφαρμοστεί να λάβει υπόψη και το μέγεθος της κάθε μνήμης ξεχωριστά, με αποτέλεσμα ο κώδικας που γίνεται compiled με αυτήν την τεχνική να μην είναι φορητός σε άλλα συστήματα με διαφορετική γενικά ιεραρχία μνήμης. Έτσι, υπάρχει ανάγκη από τους συμβολομεταφραστές (compilers) για εύρεση τεχνικών διαχείρισης των δεδομένων στην ιεραρχία μνήμης. Η εκμετάλλευση της επαναχρησιμοποίησης δεδομένων σε ένα πρόγραμμα αποτελεί το βασικό πρόβλημα το οποίο δεν έχει λυθεί πλήρως από τους υπάρχοντες compilers και είναι το οποίο θα ασχοληθούμε.

7 ΚΕΦΑΛΑΙΟ 2 ΑΡΧΙΤΕΚΤΟΝΙΚΕΣ ΥΠΟΛΟΓΙΣΤΩΝ Αρχικά, οι αρχιτεκτονικές υπολογιστών ήταν πολύ απλές. Αποτελούνταν μόνο από τον επεξεργαστή και την κύρια μνήμη. Η μνήμη καθόριζε τη συχνότητα λειτουργίας του συστήματος, αφού κάθε εντολή που εκτελούνταν χρησιμοποιούσε όλα τα κυκλώματα του επεξεργαστή σε ένα κύκλο ρολογιού. Αυτό είχε σαν αποτέλεσμα μικρή συχνότητα λειτουργίας και άρα μικρή απόδοση. Αυτό που άλλαξε με τη πορεία των χρόνων είναι η εισαγωγή διασωλήνωσης (pipeline) η ιεραρχία μνήμης και το προ-φόρτωμα των δεδομένων (pre-fetching). Αυτή η τεχνική η οποία επίσης εφαρμόζεται τόσο σε hardware όσο και σε software, έχει σαν σκοπό να φέρει τα δεδομένα στην κρυφή ή όποια άλλη ιεραρχία μνήμης υπάρχει πριν τα ζητήσει ο επεξεργαστής, και άρα πριν τα χρειαστεί. Συνεπώς, δε θα χρειάζεται να περιμένει ο επεξεργαστής τα δεδομένα να έρθουν από την κύρια μνήμη, αφού τη στιγμή που θα τα χρειάζεται θα βρίσκονται ήδη στην μικρότερη και πιο γρήγορα προσπελάσιμη μνήμη. Όμοια με πριν, στους Superscalar επεξεργαστές υπάρχει ειδικό hardware για τη δουλειά αυτή (hardware pre-fetchers), ενώ στην αρχιτεκτονική VLIW γίνεται από το software, δηλαδή από το μεταγλωττιστή κατά τη διάρκεια της μεταγλώττισης. Στο κεφάλαιο αυτό θα μελετηθούν μερικές από τις διάφορες αρχιτεκτονικές υπολογιστών που υπάρχουν σήμερα. Αυτές που θα περιγραφούν στη εργασία αυτή είναι οι Superscalar, οι VLIW και οι Decoupled επεξεργαστές. 2.1) Superscalar Ο επεξεργαστής CDC 6600 Cray Seymour από το 1965 αναφέρεται συχνά ως ο πρώτος superscalar. O Intel i960ca (1988) και ο series AMD (1990) ήταν οι πρώτοι εμπορικοί single-chip superscalar μικροεπεξεργαστές. Εκτός από CPUs που χρησιμοποιήθηκαν σε μερικές συσκευές με μπαταρίες, ουσιαστικά όλοι οι γενικού σκοπού επεξεργαστές που αναπτύχθηκαν περίπου το 1998 είναι superscalar. Οι απλούστεροι επεξεργαστές είναι scalar επεξεργαστές. Κάθε οδηγία που εκτελείται από έναν scalar επεξεργαστή χειρίζεται ένα ή δύο δεδομένα τη φορά. Σε αντίθεση, κάθε εντολή που εκτελείται από έναν vector επεξεργαστή λειτουργεί σε πολλά δεδομένα ταυτόχρονα. Ένας superscalar επεξεργαστής είναι ένα είδος μίγματος των δύο. Κάθε εντολή επεξεργάζεται ένα δεδομένο, αλλά υπάρχουν πολλαπλάσιες λειτουργικές μονάδες μέσα σε κάθε ΚΜΕ έτσι ώστε οι πολλαπλές εντολές να μπορούν να επεξεργάζονται ξεχωριστά δεδομένα ταυτόχρονα. Οι Superscalar επεξεργαστές περιέχουν περισσότερες της μίας μονάδες εκτέλεσης (function units), με αποτέλεσμα να μπορούν να εκτελούν πάνω από μία εντολή σε κάθε κύκλο ρολογιού. Το μοίρασμα των εντολών στις διάφορες μονάδες γίνεται σε hardware από την scheduling unit. Το υλικό λοιπόν είναι αυτό που αναζητά τις εντολές που μπορούν να εκτελεστούν παράλληλα. Έχουμε out of order εκτέλεση δηλαδή η σειρά των εντολών

8 που εκτελούμε είναι διαφορετική από αυτή που δόθηκε στο αρχικό πρόγραμμα. Αυτό γίνεται κατά τη διάρκεια του χρόνου εκτέλεσης. Ο Superscalar, μεταφέρει όλη την ILP πολυπλοκότητα στο υλικό. Η διαδικασία που ακολουθείται σε υψηλό επίπεδο είναι η εξής. Ο επεξεργαστής παίρνει από τη μνήμη και αποκωδικοποιεί μια σειρά εντολών ανιχνεύοντας τις εξαρτήσεις διακλάδωσης καθώς και τις εξαρτήσεις μεταξύ των δεδομένων και αναθέτει αν είναι δυνατόν σε όλα τα function units τις εντολές με το καλύτερο δυνατό τρόπο ώστε να μένουν τα function units άεργα το λιγότερο δυνατόν. Σε ένα πρόγραμμα το οποίο δεν έχει εξαρτήσεις διακλάδωσης είναι εύκολο να βρεθεί παραλληλία. Όλες οι εντολές που μπορούν να εκτελεστούν παράλληλα μπαίνουν σε ένα παράθυρο εκτέλεσης (window of execution) όπου γίνεται ανάθεση της κάθε εντολής στο κατάλληλο υπολογιστικό στοιχείο. Αφού μπουν στο παράθυρο εκτέλεσης ελέγχονται για εξαρτήσεις δεδομένων (true, anti, output dependences) ώστε να εξασφαλιστεί η ορθότητα της σειράς εκτέλεσης και να αυξηθεί η παραλληλία αφαιρώντας τα anti-dependences με τη τεχνική του register renaming. Όταν όμως έχουμε if-conditions η παραλληλία χαλάει οπότε αναγκαζόμαστε να κάνουμε πρόβλεψη για τη ροή του προγράμματος και είτε έχουμε επιτυχία είτε αποτυχία. Το σχήμα 1 παρουσιάζει την αρχιτεκτονική ενός τυπικού superscalar επεξεργαστή. Τα κύρια στοιχεία του επεξεργαστή είναι: instruction fetch (φόρτωμα της εντολής από την μνήμη) and branch prediction (πρόβλεψη της διακλάδωσης), decode and register dependence analysis (αποκωδικοποίηση και εύρεση των αλληλεξαρτήσεων των εντολών για να βρεθούν ποιες μπορούν να εκτελεστούν παράλληλα), instruction reorder and commit (αναδιάταξη των εντολών και αποστολή προς εκτέλεση) issue and execution (εκτέλεση της εντολής), memory operation analysis (αποστολή των αποτελεσμάτων στη μνήμη του συστήματος). Πρώτα γίνεται το φόρτωμα της εντολής από την μνήμη. Για να έχω παραλληλία πρέπει να φέρνω εκτός από τα δεδομένα και τις πολλές εντολές σε ένα κύκλο ρολογιού. Για αυτό εκτός από κρυφή μνήμη για δεδομένα έχω και για εντολές(instruction Cache). Όταν φορτώνεται μια εντολή από την μνήμη, τότε όπως ακριβώς γίνεται και με την data cache, μεταφέρουμε μαζί με την εκάστοτε τρέχουσα εντολή και τις εντολές που βρίσκονται στην ίδια γραμμή της μνήμης. Συνεπώς, τις επόμενες προς εκτέλεση εντολές, δε χρειάζεται να τις φέρουμε από τη μνήμη, αφού θα υπάρχουν ήδη στην Instruction Cache. Με τον τρόπο αυτό, βελτιώνουμε κατά μεγάλο βαθμό την απόδοση του συστήματος, αφού άπαξ και ενεργοποιηθεί μια γραμμή της κύριας μνήμης, τότε όλα τα δεδομένα της γραμμής μπορούμε να τα φέρουμε γρήγορα σε burst mode. Επειδή είναι πιθανό λόγω misses της instruction cache καθώς και πολλών διακλαδώσεων να μην μπορεί να γίνει πολλαπλή προσκόμιση εντολών(με αποτέλεσμα να μένει άεργος ο επεξεργαστής) πολλοί επεξεργαστές έχουν Instruction Buffer. Το unit αυτό, κρατά μερικές από τις εντολές που έχουν φορτωθεί πρόσφατα από τη μνήμη. Χρησιμοποιείται σε περιπτώσεις που υπάρχει διακοπή της διαδικασίας φόρτωσης εντολών από τη μνήμη, αφού τότε η διαδικασία αυτή γίνεται μέσω του buffer αυτού. Για το λόγω που είπαμε προηγουμένως οι διακλαδώσεις μας χαλούν τη παραλληλία και θέλουμε να ανιχνεύονται γρήγορα και άμεσα. Έτσι πριν πάνε οι εντολές στην κρυφή μνήμη περνούν από ένα Pre- Decode Stage.

9 Σχήμα 1. Η γενική αρχιτεκτονική ενός Superscalar επεξεργαστή. Στο στάδιο αυτό, γίνεται η αναγνώριση των conditional branches (διακλαδώσεις υπό συνθήκη). Οι εντολές που φορτώνονται από τη μνήμη, περνούν από ένα αρχικό στάδιο αποκωδικοποίησης, όπου παράγονται κάποια επιπλέον bits τα οποία συνοδεύουν την εντολή από εκεί και πέρα ώστε να αναγνωρίζονται ως διακλαδώσεις υπό συνθήκη γρηγορότερα. Καθώς λοιπόν αυτές τοποθετούνται στην Instruction Cache (κρυφή μνήμη που περιέχει εντολές και όχι δεδομένα) μαζί με τις υπόλοιπες εντολές, δίνει την δυνατότητα να γίνει πιο γρήγορα η συνολική αναγνώρισή τους. Οι εντολές προς εκτέλεση στο pre-decode στάδιο, φορτώνονται από το Memory Interface όπως δείχνει και η κατεύθυνση του βέλους στο σχήμα. Επίσης, όπως είναι προφανές, από το στάδιο αυτό, φορτώνουμε ότι δεδομένα χρειαζόμαστε από τη μνήμη καθώς και αποθηκεύουμε τα αποτελέσματα των υπολογισμών μας πίσω στη μνήμη. Παρατηρούμε ότι υπάρχει διασύνδεση του Memory Interface με τα Functional Units για το Load και το Store των δεδομένων. Από τη στιγμή που οι εντολές είναι έτοιμες για εκτέλεση περνούν στο στάδιο Decode Rename and Dispatch. Στο στάδιο αυτό, οι εντολές μετακινούνται από τον Buffer και υπόκεινται σε μια διαδικασία ελέγχου για πιθανές εξαρτήσεις μεταξύ των εντολών (control and data dependences). Γίνεται ο έλεγχος για τα πιθανά hazards (RAW,WAW,WAR), τα οποία αντιμετωπίζονται με τεχνικές όπως το Register Renaming, που θα αναλυθεί παρακάτω, που εξασφαλίζουν τη σωστή εκτέλεση του προγράμματος. Επίσης, για κάθε εντολή δημιουργείται μια λίστα (decode) σχετικά με την ενέργεια που πρέπει να ακολουθηθεί για την ολοκλήρωση της εντολής (op-code), το

10 σημείο που βρίσκονται οι τελεστές καθώς και το σημείο στο οποίο θα αποθηκευτεί το αποτέλεσμα. Κατόπιν οι εντολές αυτές μεταφέρονται (dispatch) στους buffers που τροφοδοτούν τις μονάδες εκτέλεσης. Σε κάθε επεξεργαστή διακρίνουμε την ύπαρξη τόσο μιας Integer Unit (μονάδα που εκτελεί πράξεις μεταξύ ακεραίων αριθμών) καθώς και μιας Floating Point Unit (μονάδα που εκτελεί πράξεις αριθμών κινητής υποδιαστολής). Διακρίνουμε επίσης πως η κάθε μια μονάδα έχει το δικό της Register File, δηλαδή μια συστοιχία από Registers όπου χρησιμοποιούνται για προσωρινή αποθήκευση των δεδομένων και των αποτελεσμάτων των πράξεων. Τέλος, υπάρχει όπως είναι αναμενόμενο και μια κρυφή μνήμη για τα δεδομένα (data cache). Μετά το στάδιο Decode Rename and Dispatch ακολουθεί μια αναδιάταξη των εντολών (Window of Execution) ανάλογα με ποιες μπορούν να εκτελεστούν πρώτα. Άπαξ και μια εντολή βρεθεί στο παράθυρο αυτό, έχει τη δυνατότητα να εκτελεστεί παράλληλα με τις υπόλοιπες εντολές που βρίσκονται μέσα στο παράθυρο. Η εκτέλεση τους όμως εξαρτάται από διάφορες άλλες παραμέτρους, για αυτό και αναδιατάσσονται με βάση τα data hazards που περιγράφηκαν πιο πριν, με βάση το εάν οι τελεστές για κάθε εντολή είναι έτοιμοι ή ακόμα κατά πόσο υπάρχουν διαθέσιμα function units για να ολοκληρώσουν τη διαδικασία. Όπως φαίνεται και στο σχήμα 2, το παράθυρο αυτό ξεκινά μετά το στάδιο Instruction dispatch και ακολουθείται από το στάδιο εκτέλεσης και κατόπιν από το Instruction re-order and commit που αναλύεται παρακάτω. Σχήμα 2: Παράθυρο εκτέλεσης. Το στάδιο Re-Order and Commit που ονομάζεται και retiring phase ή και RUU (Register Update Unit), οι εντολές μπαίνουν σε μια ουρά(ruu) όπου από αυτές αποφασίζεται η σειρά εκτέλεσης. Τέλος, ας δούμε ένα παράδειγμα κώδικα στη γλώσσα προγραμματισμού C πως θα γινόταν η μετάφραση και η εκτέλεση σε έναν superscalar επεξεργαστή. Τα χαρακτηριστικά του επεξεργαστή είναι αυτά που περιγράφονται στη γενική αρχιτεκτονική στο σχήμα 1. Παράδειγμα ενός C κώδικα,

11 for (i=0; i<last; i++) { if (a[i] > a[i+1]) { temp = a[i]; a[i] = a[i+1]; a[i+1] = temp; change++; } } Ο παραπάνω κώδικας είναι ένα μέρος ενός κώδικα που κάνει μια ταξινόμηση των στοιχείων του πίνακα a[i], καθώς επίσης μετρά και τις συνολικές αλλαγές που χρειάστηκαν ώστε να γίνει η ταξινόμηση αυξάνοντας την τιμή της μεταβλητής change. Η μετάφραση σε συμβολική γλώσσα assembly από τον συμβολομεταφραστή (compiler) είναι η παρακάτω: L2: L3: move r3,r7 lw r8,(r3) add r3,r3,4 lw r9,(r3) ble r8,r9,l3 move r3,r7 add r3,r3,4 sw r8,(r3) sw r9,(r3) add r5,r5,1 add r6,r6,1 add r7,r7,4 blt r6,r4,l2 #r3->a[i] #load a[i] #r3->a[i+1] #load a[i+1] #branch a[i]>a[i+1] #r3->a[i] #r3->a[i+1] #store a[i+1] #store a[i] #change++ #i++ #r4->a[i] #branch i<last Καταρχάς αυτός ο κώδικας βρίσκεται στη μνήμη. Μέσω του Memory Interface Unit φορτώνουμε τις εντολές. Στη συνέχεια, θα περάσει μέσα από το pre-decode στάδιο όπου γίνεται η διαδικασία αναγνώρισης των διακλαδώσεων υπό συνθήκη. Οι δύο αυτές εντολές είναι οι ble r8,r9,l3, blt r6,r4,l2. Όταν φορτώνουμε από τη μνήμη μία εντολή, φορτώνονται και οι διπλανές εντολές στην Instruction Cache Memory. Οι

12 επόμενες προς εκτέλεση εντολές λοιπόν γίνονται fetch από την κρυφή και όχι την κύρια μνήμη. Στη συνέχεια περνά από το στάδιο Decode, Rename and Dispatch. Σε αυτό το στάδιο γίνεται η ανάλυση του κώδικα για να εντοπιστούν όλα οι εξαρτήσεις (dependences, RAW, WAW, WAR). Για να αποφύγουμε κάποιες εξαρτήσεις, χρησιμοποιούμε την τεχνική του Register Renaming, όπως θα αναλυθεί παρακάτω. Πλέον ο κώδικας μας έχει αναλυθεί εκτενώς και περνά στο στάδιο του dispatch, όπου δηλαδή στέλνουμε την εντολή προς εκτέλεση. Στο παράδειγμα μας, το στάδιο του Decode, Rename and Dispatch χωρίζει τον κώδικα σε τρία κομμάτια. Το πρώτο ξεκινά από το label L2 και φθάνει μέχρι την πρώτη εντολή διακλάδωσης υπό συνθήκη. Το δεύτερο τμήμα ξεκινά από την εντολή move r3,r7 και φθάνει μέχρι την εντολή add r5,r5. Το τελευταίο κομμάτι ξεκινά από το label L3 και φθάνει μέχρι το τέλος. Παρατηρούμε ότι εσωτερικά σε κάθε ένα από αυτά τα κομμάτια δεν περιέχεται κάποια διακλάδωση. Κάθε ένα από αυτά τα κομμάτια, φορτώνονται στο παράθυρο εκτέλεσης (window of execution). Οι εντολές που φορτώνονται στο παράθυρο αυτό, μπορούν να εκτελεστούν παράλληλα εάν φυσικά το επιτρέπουν τα dependences (εξαρτήσεις μεταξύ των εντολών). Το παράθυρο αυτό, είναι ειδικό hardware που αναδιατάσσει τις εντολές και τις στέλνει στα διάφορα function units για να εκτελεστούν. Για να ολοκληρώσουμε την περιγραφή της εκτέλεσης, αναφέρουμε την τεχνική του Register Renaming που είναι πού σημαντικά αφού χρησιμοποιείται πολύ συχνά. Ο κώδικας σε assembly κάνει πράξεις μεταξύ περιεχομένων καταχωρητών. Σε όλα τα προγράμματα, υπάρχουν εντολές που γράφουν σε καταχωρητές και εντολές που διαβάζουν από αυτούς τα δεδομένα που έχουν γράψει οι προηγούμενες εντολές. Αυτοί οι καταχωρητές ονομάζονται και λογικοί καταχωρητές. Όταν γράφουμε ένα κωδικα σε assembly, πρέπει να γνώρίζουμε την αρχιτεκτονική του συστήματος ώστε να γράψουμε τον κώδικα με βάση αυτή τη συγκεκριμένη αρχιτεκτονική. Κάθε προγραμματιστής λοιπόν έχει στη διάθεση του έναν περιορισμένο αριθμό καταχωρητών για να γράψει το πρόγραμμα του. Όμως, κάθε σύστημα έχει και έναν άλλο αριθμό καταχωρητών, όχι διαθέσιμο προς τον προγραμματιστή, ώστε να μπορεί να εκτελεί το Register Renaming. Οι καταχωρητές αυτοί ονομάζονται και φυσικοί καταχωρητές. H τεχνική του παραλληλισμού επιτρέπει την εκτέλεση πολλών εντολών ταυτόχρονα. Η τεχνική του Register Renaming, μας δίνει τη δυνατότητα να αυξήσουμε τον παραλληλισμό σε ένα πρόγραμμα όπως θα φανεί και στο σχήμα 3. Σε γενικές γραμμές, κάθε φορά που το πρόγραμμα ζητά να φορτωθεί μια νέα τιμή σε έναν καταχωρητή, το σύστημα φορτώνει έναν από τους φυσικούς καταχωρητές. Κάθε φορά που μια εντολή θέλει να διαβάσει τον εν λόγω λογικό καταχωρητή, τον διαβάζει από το φυσικό καταχωρητή και μάλιστα αυτόν που είναι πιο πρόσφατα ενημερωμένος. Αν τώρα δύο εντολές θέλουν η μία να διαβάσει και η άλλη να γράψει σε αυτόν τον καταχωρητή, η πρώτη αίσθηση είναι ότι οι διαδικασίες πρέπει να εκτελεστούν ανάλογα με τη σειρά που οι εντολές έγιναν issued. Σε αντίθετη περίπτωση θα δημιουργηθεί κάποιο data hazard. Αν ζητηθεί πρώτα η εντολή του διαβάσματος του καταχωρητή και μετά αυτή του γραψίματος σε αυτόν, τότε πρόκειται για ένα WAR hazard. Στην αντίθετη περίπτωση που ζητηθεί πρώτα το γράψιμο στον καταχωρητή, εμφανίζεται ένα RAW hazard. Έστω ο παρακάτω κώδικας

13 I1: load r1,a load r2,b I2: r3=r1+r2 I3: load r1,c I4: r2=3+r1 I5: r1=3*r2 I6: I7: st d,r1 Αν υποθέσουμε ότι έχουμε μια αρχιτεκτονική με 2 ALU, 1 πολλαπλασιαστή με καθυστέρηση 1 και 2 κύκλους αντίστοιχα και κάθε κύκλο ρολογιού μπορώ να φέρω 3 δεδομένα από τη μνήμη και να γράψω 1 το παραπάνω πρόγραμμα θέλει 7 κύκλους. Αν όμως κάνουμε register renaming τότε το πρόγραμμα χρειάζεται 5 κύκλους. Κάνοντας renaming αφαιρώ τις εξαρτήσεις με αποτέλεσμα να αυξάνεται η παραλληλία. I1: load r1,a load r2,b load rx, c I2: r3=r1+r2 rp=3+rx I3: ry=3*rp I4: I5: st d, ry 2.2) Very Large Instruction Word (VLIW). Ιστορικά, οι πρώτοι VLIW επεξεργαστές εμφανίστηκαν στις αρχές της δεκαετίας του Ο Miltiflow Trace 200 και ο Cydrome s Cydra 5 ήταν ανάμεσα στους πρώτους εμπορικά διαθέσιμους VLIW επεξεργαστές. Δεν ήταν όμως πολύ επιτυχημένοι εμπορικά, κυρίως επειδή ήταν προσανατολισμένοι κατά κύριο λόγο σε αριθμητικούς υπολογισμούς και παρουσίαζαν αδυναμίες σε βαθμωτές (scalar) εφαρμογές. Οι VLIW επεξεργαστές στην πράξη βασίζονται στην αρχιτεκτονική RISC (Reduced Instruction Set Computers). Η μεταγλώττιση του προγράμματος, αποτελείται από 2 στάδια. Στο πρώτο στάδιο πραγματοποιείται η κανονική μεταγλώττιση του προγράμματος από ένα κοινό μεταγλωττιστή και αργότερα ακολουθεί ο VLIW μεταγλωττιστής που επαναδιατάσει τον κώδικα σε τμήματα τέτοια ώστε να μην υπάρχουν εξαρτήσεις μεταξύ τους. Έπειτα αυτά συνενώνονται σε μια μεγαλύτερη εντολή με επιπλέον πληροφορίες που αφορούν στο ποια εντολή θα πρέπει να τρέξει σε κάθε μονάδα. Ο αριθμός των function units του επεξεργαστή καθορίζει και τον μέγιστο αριθμό των υπό-εντολών που θα έχει κάθε μεγάλη εντολή. Στη συνέχεια θα δούμε μια αναλυτική περιγραφή της VLIW αρχιτεκτονικής και του επεξεργαστή που χρησιμοποιεί και θα δούμε τα πλεονεκτήματα και τα μειονεκτήματα που παρουσιάζουν. Ο Joseph Fisher που εισήγαγε το ακρωνύμιο VLIW, χαρακτήρισε τέτοιες μηχανές σαν αρχιτεκτονικές που εκκινούν (issue) μια μεγάλη εντολή ανά κύκλο. Κάθε τέτοια εντολή, που ονομάζεται και MultiOp, αποτελείται από πολλές ανεξάρτητες και απλές λειτουργίες, καθεμιά από τις οποίες εκτελείται σε ένα μικρό αριθμό κύκλων. Η ομαδοποίηση των ανεξάρτητων λειτουργιών σε μια MultiOp γίνεται από ένα

14 μεταγλωττιστή ή ένα δυαδικό μεταφραστή (binary translator). Ο επεξεργαστής απλά εκτελεί τις λειτουργίες που περιέχονται σε μια MultiOp. Ένας VLIW υπολογιστής στηρίζεται σε μια αρχιτεκτονική διεργασιών που υλοποιεί Παραλληλισμό Επιπέδου Εντολής (ILP), δηλαδή εκτέλεση περισσότερων από μία εντολών την ίδια χρονική στιγμή. Μια Πολύ Μεγάλη Λέξη Εντολής (Very Long Instruction Word VLIW) αποτελείται από έναν σταθερό αριθμό βασικών λειτουργιών που ομαδοποιούνται και περνούν σε ένα αρχείο καταχωρητών. Το αρχείο καταχωρητών (register file) εκτελεί αυτές τις εντολές με τη βοήθεια των λειτουργικών μονάδων εκτέλεσης που παρέχονται σαν μέρος του υλικού. Αντίθετα με τη Superscalar αρχιτεκτονική, στην VLIW όλος ο χρονοπρογραμματισμός είναι στατικός. Αυτό σημαίνει ότι ο χρονοπρογραμματισμός γίνεται compile time, και δεν έχει έξτρα υλικό που αποφασίζει ποιες εντολές θα εκτελεστούν παράλληλα και ποιες όχι. Από την άλλη, η Superscalar αρχιτεκτονική χρησιμοποιεί δυναμικό χρονοπρογραμματισμό ο οποίος μεταφέρει όλη την ILP πολυπλοκότητα στο υλικό. Αυτό οδηγεί σε μεγαλύτερη πολυπλοκότητα του υλικού κάνοντας έτσι πιο δύσκολο το σχεδιασμό τους σε σχέση με τις αρχιτεκτονικές VLIW. Έτσι, μια VLIW αρχιτεκτονική απαιτεί λιγότερο hardware σε σχέση με μία Superscalar με τον ίδιο αριθμό λειτουργικών μονάδων. Στο σημείο αυτό πρέπει να τονίσουμε ότι ο VLIW μεταγλωττιστής δεν είναι ο ίδιος με αυτόν που χρησιμοποιούμε στις υψηλές γλώσσες προγραμματισμού. Ο μεταγλωττιστής αυτός είναι ειδικός για την αρχιτεκτονική VLIW, καθώς επαναμεταγλωττίζει τον πηγαίο κώδικα του προγράμματος και παράγει εκτελέσιμο VLIW κώδικα εντολών, ο οποίος στη συνέχεια οδηγείται στο αρχείο των καταχωρητών. Επομένως, ο VLIW μεταγλωττιστής αποτελεί ένα αναπόσπαστο τμήμα του VLIW συστήματος Οι πρόσφατοι επεξεργαστές υψηλής απόδοσης βασίζονται στον Παραλληλισμό Επιπέδου Εντολών (Instruction Level Parallelism ILP) για να επιτύχουν υψηλή ταχύτητα εκτέλεσης. Οι ILP επεξεργαστές πετυχαίνουν υψηλή απόδοση με την παράλληλη εκτέλεση πολλαπλών εντολών, χρησιμοποιώντας ένα συνδυασμό τεχνικών του μεταγλωττιστή (Compiler) και του υλικού. Ο VLIW προσπαθεί να επιτύχει υψηλά επίπεδα ILP με την εκτέλεση μεγάλων λέξεων εντολών που αποτελούνται από πολλαπλές λειτουργίες (operations). Οι υπο-εντολές που συνθέτουν τη μεγάλη λέξη εντολών (MultiOp) θα μπορούσαν να εκτελεστούν ως ανεξάρτητες λειτουργίες σε ένα απλό RISC επεξεργαστή, για αυτό άλλωστε λέμε ότι ο VLIW βασίζεται στην αρχιτεκτονική RISC. Ο VLIW επεξεργαστής εκτελεί ταυτόχρονα το σύνολο των λειτουργιών που περιέχονται σε μια MultiOp επιτυγχάνοντας έτσι παραλληλισμό επιπέδου εντολών. Σε αντίθεση με τους superscalar επεξεργαστές όλη η παραλληλία γίνεται από το λογισμικό. Έτσι το hardware ενός VLIW επεξεργαστή είναι πιο απλό καθώς όλο το παραλληλισμό τον κάνει ο compiler.

15 Σχήμα 3. Η γενική δομή ενός VLIW επεξεργαστή. Στο σχήμα 3 φαίνονται τα βασικά χαρακτηριστικά της VLIW αρχιτεκτονικής. Στη συνέχεια αναφέρουμε ξεχωριστά το καθένα από τα συστατικά που φαίνονται στο σχήμα και θα εξηγήσουμε το ρόλο τους και τις λειτουργίες που εκτελούν. 2 μονάδες Load/Store, 2 απλές ALUs που εκτελούν πρόσθεση, αφαίρεση, ολίσθηση και λογικές λειτουργίες, 1 σύνθετη ALU που μπορεί να πολλαπλασιάσει και να διαιρέσει 64-bit ακέραιους αριθμούς και συμπιεσμένους 34, 16 και 8-bit αριθμούς, 1 μονάδα διακλάδωσης (branch unit) που εκτελεί διακλαδώσεις, κλήσεις και συγκρίσεις. Η αρχιτεκτονική αυτή λοιπόν αποτελείται από 6 function units. Φυσικά, ο αριθμός των μονάδων εκτέλεσης μπορεί να διαφέρει ανάλογα με τις απαιτήσεις. Στο παραπάνω σχήμα, βλέπουμε ότι το register file του επεξεργαστή αποτελείται από 64 καταχωρητές γενικού σκοπού, ορατών από τον προγραμματιστή, και οι οποίοι έχουν

16 εύρος 64 bits. Ο καταχωρητής R0 περιέχει πάντα την τιμή 0. Εδώ δεν υποστηρίζεται μετονομασία καταχωρητών (register renaming) όπως γίνεται σε μια Superscalar αρχιτεκτονική. Εδώ δεν υποστηρίζεται μετονομασία καταχωρητών (register renaming) όπως γίνεται σε μια Superscalar αρχιτεκτονική. Οι καταχωρητές απόφανσης είναι ειδικοί 1-bit καταχωρητές που προσδιορίζουν μια αληθή ή ψευδή τιμή. Υπάρχουν 16 καταχωρητές απόφανσης (predicate registers) ορατοί από τον προγραμματιστή, οι οποίοι ονομάζονται PR0 ως PR15. Όλες οι λειτουργίες σχετίζονται με ένα καταχωρητή απόφανσης. Η εντολή εκτελείται πάντοτε. Αν το κατηγόρημα απόφανσης είναι ψευδές, τότε τα αποτελέσματα αγνοούνται και οι συνέπειες των εκτελεσμένων εντολών αναιρούνται. Αυτό χρησιμοποιείται όταν υπάρχουν διακλαδώσεις, όπου εκτελούνται και τα 2 «κλαδιά» και επιλέγεται το σωστό αποτέλεσμα. Στην πράξη, για λόγους απόδοσης, αυτό μπορεί να υλοποιηθεί με τον υπολογισμό μεν ενός αποτελέσματος, αλλά με το να γράφεται πίσω η παλιά τιμή του καταχωρητή-στόχου. Ο καταχωρητής απόφανσης 0 έχει πάντα την τιμή 1 (PR0=1), η οποία και δεν μπορεί να αλλαχτεί. Αν οριστεί ο PR0 ως το κατηγόρημα απόφανσης, τότε πραγματοποιούνται λειτουργίες χωρίς συνθήκη. Οι λειτουργίες σύγκρισης χρησιμοποιούν τους καταχωρητές απόφανσης ως καταχωρητές-στόχους. Η παραπάνω αρχιτεκτονική που παρουσιάσαμε ως παράδειγμα έχει συμπίεση 64-bit. Με τον όρο συμπίεση εννοούμε ότι αντί να χρησιμοποιούμε μια MultiOp σταθερού μήκους και να χάνουμε πολλά slots με το να τα γεμίζουμε με ΝΟΡs (No Operations, δηλαδή χωρίς λειτουργίες) όταν δεν έχουμε καμία κατάλληλη λειτουργία να θέσουμε στο slot, χρησιμοποιούμε μεταβλητού μήκους MultiOps. Κάθε λειτουργία κωδικοποιείται σαν μια 32-bit λέξη. Ένα ειδικό stop bit στην 32-bit λέξη υποδηλώνει το τέλος μιας λέξης εντολής (instruction word). Επίσης για τις ευρέως χρησιμοποιούμενες αριθμητικές λειτουργίες υπάρχει ένας άμεσος τρόπος, όπου μια σταθερά από 8 bit μηδενικών ή άλλων συμβόλων μπορούν να χρησιμοποιηθούν για την αναπαράσταση ενός αριθμητικού τελεστή. Για μεγαλύτερες σταθερές π.χ. 16, 32 ή 64 bits χρησιμοποιείται ένα ειδικό Nop πρότυπο το οποίο γράφεται στο πεδίο opcode της επόμενης λειτουργίας, ενώ τα χαμηλής τάξης bits (low order) μπορούν να χρησιμοποιηθούν για να αποθηκεύσουν τη σταθερά. Στην περίπτωση αυτή, ο προ-αποκωδικοποιητής (predecoder) συνενώνει τα bits από δύο διαφορετικές λέξεις για να φτιάξει τη σταθερά. Σε ένα παραδοσιακό VLIW επεξεργαστή με σταθερού μήκους MultiOps δεν έχει ανάγκη να διασκορπίζει τις λειτουργίες. Όταν όμως χρησιμοποιείται συμπίεση, τότε υπάρχει ανάγκη να επεκτείνουμε τις εντολές και να εισάγουμε Νops για τις λειτουργικές μονάδες για τις οποίες δεν πρόκειται να γίνει εκκίνηση κάποιας λειτουργίας. Για να διευκολύνουμε τη διαδικασία της διασποράς, κάνουμε τις ακόλουθες υποθέσεις: Λίγα bits στον opcode ορίζουν τον τύπο της λειτουργικής μονάδας που απαιτεί η λειτουργία (π.χ. load/store, απλή αριθμητική, σύνθετη αριθμητική ή διακλάδωση) Ο μεταγλωττιστής διασφαλίζει ότι οι εντολές που αποτελούν μια MultiOp διατάσσονται με την ίδια σειρά με αυτή των λειτουργικών μονάδων του επεξεργαστή. Για παράδειγμα αν μια MultiOp αποτελείται από ένα load, μια 32- bit διαίρεση και μια διακλάδωση, τότε η διάταξη (load, multiply, branch) είναι έγκυρη ενώ η (load, branch, multiply) δεν είναι.

17 Ο μεταγλωττιστής εξασφαλίζει ότι όλες οι λειτουργίες της ίδιας MultiOp είναι ανεξάρτητες. Ο μεταγλωττιστής εξασφαλίζει ότι σε όλες τις λειτουργικές μονάδες δεν ανατίθενται περισσότερες λειτουργίες από αυτές που επιτρέπεται να διεκπεραιώσουν. Για παράδειγμα, δύο loads είναι επιτρεπτές σε μια MultiOp, αλλά τρεις δεν είναι. Δεν είναι επιτρεπτό να μην υπάρχει ένα stop bit σε μια ακολουθία περισσοτέρων των 6 εντολών. Τα βασικά blocks παρατάσσονται μέσα στα όρια των 32 bytes. Πέρα από τη μείωση της σπατάλης μνήμης, ένας ακόμη λόγος για να προτιμάμε τη συμπιεσμένη μορφή της VLIW αρχιτεκτονικής είναι ότι αυτή επιτρέπει καλύτερη χρησιμοποίηση της ενδιάμεσης μνήμης. Για να βελτιώσουμε την απόδοση, χρησιμοποιούμε έναν predecode buffer ο οποίος μπορεί να αποθηκεύει μέχρι και 8 μη συμπιεσμένες ΜultiOps. Το δίκτυο διασποράς μπορεί να χρησιμοποιήσει μια ευρεία διεπαφή (π.χ. 512 bits) για την ενδιάμεση μνήμη για να αποσυμπιέσει μέχρι και δύο MultiOps σε κάθε κύκλο και να τις σώσει στον predecode buffer. Τέλος, όλες οι λειτουργίες σε μια MultiOp ξεκινούν ταυτόχρονα. Αν έστω και μία λειτουργία δεν μπορεί να εκκινηθεί, τότε η καθυστερεί η εκκίνηση ολόκληρης της MultiOp. Στη συνέχεια θα μιλήσουμε για τα πλεονεκτήματα των VLIW επεξεργαστών. Κάποιοι από τους πιο σημαντικούς λόγους για τους οποίους ξεχωρίζουν οι VLIW επεξεργαστές είναι οι ακόλουθοι: Επειδή ο Παραλληλισμός σε Επίπεδο Εντολής (ILP) αξιοποιείται με τη βοήθεια του λογισμικού, ελαχιστοποιείται η ανάγκη για buffers εντολών και αναδιάταξης, οι οποίοι χρησιμοποιούνται στον παραλληλισμό σε επίπεδο υλικού. Αυτό έχει σαν αποτέλεσμα τη μείωση του κόστους για την κατασκευή του επεξεργαστή μιας και ελαττώνονται σημαντικά οι ανάγκες της υλοποίηση των μονάδων εκτέλεσης με υλικό. Οι μονάδες εκτέλεσης με τη σειρά τους, τους απαιτούν πιο ευρεία παράθυρα εκτέλεσης και ένα πιο σύνθετο διανομέα (distributor). Όλα αυτά τα στοιχεία που κάνουν ακριβή την προσέγγιση της Superscalar αρχιτεκτονικής, στους VLIW συμπεριλαμβάνονται στο λογισμικό. Επιπλέον, όταν η εκτέλεση για πρόβλεψη (speculation execution) υλοποιείται με υλικό, πρέπει να χρησιμοποιηθεί ένας buffer αναδιάταξης για να πιστοποιήσει ότι όταν γίνεται λάθος πρόβλεψη σε μια διακλάδωση, οι εντολές που έχουν εκκινηθεί αγνοούνται και τα αποτελέσματά τους αναιρούνται. Στην VLIW αρχιτεκτονική δεν απαιτείται η ύπαρξη buffer αναδιάταξης. Άλλα πλεονεκτήματα που έχει η ιδέα του να επικεντρωθούμε στον μεταγλωττιστή για να αξιοποιήσουμε τον ILP, αφορούν στους μεταγλωττιστές. Οι μεταγλωττιστές μπορούν να κοιτάζουν σε μεγαλύτερο παράθυρο εκτέλεσης πράγμα που για το υλικό σημαίνει σαφώς περισσότερο κόστος. Εκτός των άλλων το κόστος δεν έχει περιορισμούς στο λογισμικό, σε αντίθεση με το υλικό, όπου το κόστος της αυξημένης πολυπλοκότητα είναι απαγορευτικό. Επομένως, χρησιμοποιώντας λογισμικό μπορεί να επιτευχθεί περισσότερος παραλληλισμός.

18 Ακόμη, οι μεταγλωττιστές γνωρίζουν την πηγαία δομή του προγράμματος, οπότε έχουν περισσότερη γνώση που τους επιτρέπει να μπορούν να βρουν περισσότερη πληροφορία και άρα και περισσότερη παραλληλία στο πρόγραμμα. Έχοντας αρκετό χώρο για τους καταχωρητές, ένας VLIW μεταγλωττιστής μπορεί να μιμηθεί ένα σενάριο πρόβλεψης διακλάδωσης (speculative execution). Για παράδειγμα, μπορεί να τοποθετήσει τα αποτελέσματα του ενός σεναρίου σε προσωρινούς καταχωρητές και αν αποδεικνύεται ότι έχει προβλεφθεί λάθος μια διακλάδωση, τότε αυτές οι τιμές αγνοούνται. Έτσι μιμείται τη συμπεριφορά του buffer αναδιάταξης, χωρίς να απαιτείται μεγάλο χρηματικό κόστος. Η πολυπλοκότητα του μεταγλωττιστή πληρώνεται μόνο μια φορά, κατά τη συγγραφή του μεταγλωττιστή, και όχι κάθε φορά που ξαναδημιουργείται το chip. Επιπλέον, αυτό έχει σαν αποτέλεσμα την ανάγκη μικρότερου chip, το οποίο οδηγεί σε μεγαλύτερο κέρδος τόσο για τον κατασκευαστή όσο και για τον αγοραστή. Ακόμη, ο μεταγλωττιστής μπορεί να ενσωματώσει μεταγενέστερες βελτιώσεις ακόμα και αφού δημιουργηθεί το chip. Οι VLIW μπορούν να αξιοποιήσουν καλύτερα τους πόρους του υλικού και προσπαθούν να μην αφήνουν αχρησιμοποίητες τις μονάδες εκτέλεσης, οπότε και να μην χάνουν πολύτιμο χρόνο. Αυτό μπορεί να γίνει με τους ακόλουθους δύο τρόπους: α) Με κωδικοποίηση Huffman, όπου οι εντολές συμπιέζονται με μια πιο υψηλή αναπαράσταση κωδικοποίησης. Σε ορισμένες περιπτώσεις, οι λειτουργίες που χρησιμοποιούνται με τη μεγαλύτερη συχνότητα, αναπαριστούνται με τα λιγότερα bits. β) Με την μέθοδο των Μικρότερων Λέξεων Εντολής, στην οποία ορίζουμε μια λέξη εντολής που περιέχει λιγότερες λειτουργίες από το συνολικό αριθμό των μονάδων εκτέλεσης. Με τον τρόπο αυτό μπορούν να αξιοποιηθούν καλύτερα οι πόροι, αν και μερικές φορές αποδεικνύεται μη αποτελεσματικό. Για να καθορίσουμε ποιο μήκος λέξης είναι το καταλληλότερο, μπορούμε να κάνουμε χρήση πειραμάτων προσομοίωσης. Η VLIW αρχιτεκτονική επιτυγχάνει μεγάλο παραλληλισμό επιπέδου εντολών. Παρόλα αυτά υπάρχουν και ορισμένοι περιορισμοί και προβλήματα που αφορούν στην αρχιτεκτονική αυτή. Οι πολιτικές χρονοπρογραμματισμού που χρησιμοποιούνται στη VLIW αρχιτεκτονική έχουν σαν αποτέλεσμα τη δημιουργία πολύ μεγάλου κώδικα. Ας υποθέσουμε ότι δεν μπορούμε πάντα να βρούμε αρκετές εντολές που να μπορούν να εκτελεστούν παράλληλα έτσι ώστε να γεμίσουμε τα διαθέσιμα slots μιας εντολής. Μια τέτοια υπόθεση δεν απέχει και πολύ από την πραγματικότητα. Κατά συνέπεια θα μένουν κενά slots στις εντολές. Είναι πιθανό ότι η πλειοψηφία των εντολών στις τυπικές εφαρμογές θα έχει κενά slots στον κώδικα, γεγονός που σημαίνει χαμένο χώρο αλλά και μεγαλύτερο κώδικα. Επίσης, υπάρχουν περιπτώσεις που για να εξασφαλιστεί ότι όλα τα προβλήματα χρονοπρογραμματισμού έχουν επιλυθεί, πρέπει να στείλουμε εντελώς κενές

19 εντολές. Η μνήμη και ο χώρος στο δίσκο είναι σχετικά φθηνά. Δεν είναι όμως φθηνό και το εύρος ζώνης της μνήμης (memory bandwidth). Ακόμη κι αν έχουμε μεγάλες και αποδοτικές ενδιάμεσες μνήμες (caches), θα προτιμούσαμε να μη χρειάζεται να φέρνουμε μεγάλες αλλά μισο-γεμάτες εντολές. Πόσο μάλιστα μεγάλες και εντελώς άδειες εντολές. Η καθυστέρηση μιας λειτουργίας σημαίνει καθυστέρηση όλων. Όλες οι εντολές πρέπει να είναι έτοιμες για εκτέλεση για να γίνει εκτέλεση μια μεγάλης εντολής. Δυστυχώς δεν είναι δυνατό να διακρίνουμε σε χρόνο μεταγλώττισης όλες τις πιθανές πηγές των καθυστερήσεων σωλήνωσης και τις διάρκειές τους. Για παράδειγμα, ας υποθέσουμε ότι μια συγκεκριμένη πρόσβαση στη μνήμη προκαλεί αποτυχία ενδιάμεσης μνήμης (cache miss), προκαλώντας έτσι μια μεγαλύτερη από την αναμενόμενη καθυστέρηση. Αν οι υπόλοιπες παράλληλες λειτουργικές μονάδες επιτρέπεται να συνεχίσουν να λειτουργούν, τότε μπορεί να εμφανιστούν δυναμικά εξαρτήσεις δεδομένων. Κατά συνέπεια οι ενδιάμεσες μνήμες πρέπει να είναι blocking και να προκαλούν την καθυστέρηση όλων όταν μια λειτουργική μονάδα καθυστερεί. Ένα άλλο παράδειγμα είναι δύο λειτουργίες που έχουν εξάρτηση εξόδου (output). Ο αρχικός χρονοπρογραμματισμός του μεταγλωττιστή θα εξασφάλιζε ότι δεν υπάρχει πιθανότητα να προκύψει κίνδυνος εγγραφής-μετά-από-εγγραφή (WAW). Παρόλα αυτά, αν η μια λειτουργία καθυστερήσει και η άλλη συνεχίσει τότε η εξάρτηση μπορεί να γίνει κίνδυνος εγγραφής-μετά-από-εγγραφή. Επομένως, αν θέλουμε να αναλάβει ο μεταγλωττιστής όλη την επίλυση των εξαρτήσεων, θα πρέπει να καθυστερήσουμε όλα τα στοιχεία της σωλήνωσης, το οποίο συνεπάγεται πρόβλημα στην απόδοση. Στους πιο σύγχρονους επεξεργαστές ο μεταγλωττιστής χρησιμοποιείται για να αποφεύγονται οι κίνδυνοι κατά το χρόνο εκκίνησης, ενώ χρησιμοποιείται και υλικό για να ελέγχει την ασύγχρονη εκτέλεση των εντολών αφού πρώτα αυτές εκκινηθούν. Εξάρτηση από το υλικό. Στην αυστηρή προσέγγιση της VLIW αρχιτεκτονικής, η ακολουθία του κώδικα χρησιμοποιεί και τον ορισμό του συνόλου εντολών (instruction set), αλλά και τη λεπτομερή δομή σωλήνωσης, συμπεριλαμβανομένων των λειτουργικών μονάδων και των καθυστερήσεών τους. Οι μεταγλωττιστές πρέπει να γνωρίζουν ποιες ακριβώς είναι οι δυνατότητες του επεξεργαστή, για παράδειγμα, πόσες λειτουργικές μονάδες έχει. Ας δούμε τι γίνεται στους Superscalar επεξεργαστές. Αν αναβάθμιζε κάποιος έναν 2-way Pentium σε έναν 3-way Pentium 4 με την ίδια ταχύτητα ρολογιού (αν υπήρχε), τότε τα υπάρχοντα δυαδικά προγράμματα θα έδειχναν μια μικρή αύξηση στην απόδοση (speedup). Αν όμως κάνει το ίδιο με δύο VLIW επεξεργαστές τότε δεν θα παρατηρήσει καθόλου αύξηση στην απόδοση. Για να υπάρξει αύξηση στην απόδοση, θα πρέπει να γίνει επαναμεταγλώττιση των προγραμμάτων. Στην περίπτωση όμως που ο κατασκευαστής αποφάσιζε να αφαιρέσει για κάποιο λόγο μια λειτουργική μονάδα, τότε αυτό θα μπορούσε να σημαίνει απώλεια της δυαδικής συμβατότητας, και σίγουρα κάποια παλιά προγράμματα δε θα μπορούσαν να τρέξουν καθόλου. Για το πρόβλημα αυτό υπάρχουν κάποιες πιθανές λύσεις. Μια από αυτές είναι να παρέχεται κάποια διαφανής μετάφραση σε δυαδικό κώδικα. Μια άλλη λύση είναι να γίνουμε πιο χαλαροί στον ορισμό

20 του VLIW. Για παράδειγμα, αντί να ομαδοποιούμε εντολές σε μεγαλύτερες εντολές, θα μπορούσαμε να ομαδοποιούμε ορισμένες πιο συμβατικές εντολές σε πακέτα εκκίνησης (issue packet). Ένα πακέτο εκκίνησης είναι μια ομάδα εντολών που έχουν ενωθεί από τον μεταγλωττιστή και είναι εγγυημένη η μη ύπαρξη εξαρτήσεων μεταξύ τους. Το υλικό είναι ελεύθερο να εκτελέσει όσα τέτοια πακέτα θέλει/μπορεί ταυτόχρονα ανάλογα με τους πόρους που έχει διαθέσιμους. Αυτή είναι και η προσέγγιση που έχει ακολουθήσει η Intel στην IA-64 αρχιτεκτονική. Μια άλλη χαλάρωση της VLIW αρχής είναι ότι τυπικά δεν καθυστερούν όλες οι λειτουργίες όταν καθυστερεί μία λειτουργία. Αντίθετα, συμπεριλαμβάνεται υλικό για την επίλυση των εξαρτήσεων και των κινδύνων που εμφανίζονται δυναμικά κατά τη διάρκεια της εκτέλεσης. Οι VLIW επεξεργαστές όπως και οι Superscalar επεξεργαστές αξιοποιούν τον Παραλληλισμό Επιπέδου Εντολών (ILP) για να βελτιώσουν την απόδοση του επεξεργαστή. Όμως η προσέγγιση των δύο αυτών σημαντικών ILP επεξεργαστών διαφέρει σημαντικά. Παρακάτω θα αναφέρουμε διαφορές μεταξύ VLIW και SuperScalar αρχιτεκτονικών : Οι Superscalar επεξεργαστές είναι υλοποιήσεις ILP επεξεργαστών για τους οποίους το πρόγραμμα δεν είναι απαραίτητο να περιέχει παραλληλισμό. Αντίθετα στους VLIW το πρόγραμμα περιέχει πληροφορίες που αφορούν τον παραλληλισμό. Στους Superscalar επεξεργαστές μια εντολή αναφέρεται σε μια μόνο βασική λειτουργία ενώ στους VLIW επεξεργαστές πολλές ανεξάρτητες μεταξύ τους λειτουργίες ομαδοποιούνται σε μία μόνο μεγάλη εντολή. Οι Superscalar επεξεργαστές βασίζονται σε τεχνικές δυναμικού χρονοπρογραμματισμού για να αξιοποιήσουν το ILP με συνέπεια να αυξάνεται η πολυπλοκότητα του υλικού ενώ οι VLIW επεξεργαστές βασίζονται στον μεταγλωττιστή για να εντοπίσουν τον παραλληλισμό στο πρόγραμμα. Μειώνουμε έτσι την πολυπλοκότητα του υλικού αφού πλέον δεν είναι αυτό υπεύθυνο για την εύρεση της παραλληλίας μεταξύ των εντολών. Οι Superscalar επεξεργαστές απαιτούν επιπλέον υλικό για την εύρεση της παραλληλίας και για το λόγω αυτό είναι πολύ πιο ακριβοί ενώ οι VLIW κοστίζουν λιγότερο αφού η πολυπλοκότητα βρίσκεται στο λογισμικό και πληρώνεται μόνο μια φορά κατά την ανάπτυξη του. Στους SuperScalar παίρνουμε ένα σύνολο scalar εντολών και τις αναδιατάσσουμε ενώ στους VLIW έχουμε μεγάλες εντολές που αφορούν όλα τα υπολογιστικά στοιχεία. Στους SuperScalar η διαδικασία εύρεσης της σειράς των εντολών προς εκτέλεση γίνεται δυναμικά ενώ στους VLIW στατικά. Στους SuperScalar μπορούμε να έχουμε in order αλλά και out of order εκτέλεση ενώ στους VLIW μόνο in order. Στο παρακάτω σχήμα βλέπουμε τα όσα έχουμε πει παραπάνω. Ο VLIW τα κάνει όλα compile time μέσω software ενώ ο superscalar run time με υλικό.

21 Σχήμα 4. SuperScalar έναντι VLIW. 2.3) Decoupled Επεξεργαστής Ο Decoupled Επεξεργαστής, η γενική δομή του οποίου παρουσιάζεται στο παρακάτω σχήμα, έχει σα γενική φιλοσοφία το διαχωρισμό της επεξεργασίας σε δύο μέρη. Το ένα μέρος είναι το επεξεργαστικό, ενώ το άλλο έχει να κάνει με τις προσπελάσεις στη μνήμη. Το δεύτερο τμήμα δηλαδή, αποδεσμεύει εντελώς τον επεξεργαστή από τις addressing διαδικασίες με αποτέλεσμα αυτός να εκτελεί αποκλειστικά καθαρή επεξεργασία. Γι αυτό άλλωστε βλέπουμε και την παρουσία των δύο επεξεργαστών. Ο ένας επεξεργαστής ονομάζεται Execute (E-Processor), και είναι αυτός που κάνει τις πράξεις στις αριθμητικές και λογικές μονάδες που διαθέτει. Ο άλλος επεξεργαστής είναι ο Access (A- Processor) και το έργο του είναι να ρυθμίζει τις μεταφορές από και προς τη μνήμη. Ό,τι δεδομένα και να χρειαστεί ο Execute, ο Access είναι ο υπεύθυνος να τα φέρει από τη μνήμη και κατόπιν μετά την επεξεργασία τους αναλαμβάνει να τα αποθηκεύσει πάλι πίσω στη μνήμη. Κάθε ένας έχει το δικό του αρχείο καταχωρητών (Register File) τα οποία για τον A- Processor συμβολίζονται με Α, ενώ αντίθετα για τον E-Processor συμβολίζονται με Χ. Όσον αφορά τώρα στα function units του κάθε επεξεργαστή, ο Execute έχει και Integer ALU και Floating Point ALU. Δηλαδή κάνει πράξεις μεταξύ είτε ακέραιων αριθμών είτε

22 μεταξύ αριθμών κινητής υποδιαστολής. Αντίθετα, ο Access κάνει πράξεις μόνο μεταξύ ακεραίων (Integer ALU) αφού χρειάζεται μόνο να υπολογίσει διευθύνσεις που μόνο ακέραιοι μπορεί να είναι. Επίσης, ο Access περιέχει και μνήμη cache, αν φυσικά το σύστημα έχει, μιας και όπως είπαμε αυτός χειρίζεται τα δεδομένα από και προς τη μνήμη. Ας δούμε όμως αναλυτικά τη λειτουργία αυτού του επεξεργαστή: Έστω ότι αρχικά έχουμε ένα πρόγραμμα. Ο μεταγλωττιστής ο οποίος θα είναι ειδικά σχεδιασμένος για decoupled αρχιτεκτονικές, θα διαχωρίσει τον κώδικα σε εντολές για τον Access και σε εντολές για τον Execute. Τις εντολές που έχουν να κάνουν με προσπελάσεις στη μνήμη θα τις στείλει στον Access ενώ τις εντολές για επεξεργασία δεδομένων στον Execute. Από εκεί και πέρα, ζητούμενο είναι ο Access να υπολογίζει γρήγορα τις διευθύνσεις και να φορτώνει τα δεδομένα από την κύρια μνήμη πριν καν τα χρειαστεί ο Execute. Πρέπει δηλαδή να τα κάνει pre-fetch ώστε να μην υπάρχει καθυστέρηση. Κάθε φορά που φέρνει από τη μνήμη κάποια δεδομένα, τα τοποθετεί σε μία ουρά (FIFO), την Access to Execute Queue (AEQ), όπου και στέλνονται στον E- Processor για να επεξεργαστούν. Ο E-Processor τώρα με τη σειρά του παίρνει τα δεδομένα που έχει τοποθετήσει ο A- Processor στην AEQ, τα επεξεργάζεται και τοποθετεί τα αποτελέσματα σε μια άλλη ουρά, την Execute to Access Queue (EAQ). O A- Processor έχοντας υπολογίσει τις διευθύνσεις μνήμης όπου θα γίνει αποθήκευση δεδομένων παίρνει τα δεδομένα από την EAQ τα συνδυάζει με τις διευθύνσεις όπως δείχνει το σχήμα και τα στέλνει στη μνήμη για να αποθηκευτούν. Σχήμα 5. Γενική δομή ενός Decoupled Επεξεργαστή. Κάθε φορά που ο Access υπολογίζει μια διεύθυνση την τοποθετεί σε μία ουρά, Write Address Queue (WAQ), όπου και περιμένουν μέχρι να καταφθάσουν τα δεδομένα προς αποθήκευση από την EAQ. Είναι προφανές ότι τα 2 τμήματα επεξεργαστών πρέπει να

23 συντονιστούν έτσι ώστε η τοποθέτηση και αφαίρεση δεδομένων από τη ουρά να γίνονται με σωστή σειρά και να μη συμβεί κάποιο λάθος. Για παράδειγμα, ένα πολύ επικίνδυνο για τη σωστή λειτουργία πρόβλημα εμφανίζεται όταν ο Execute ζητήσει ένα δεδομένο από μία διεύθυνση στη μνήμη και αυτή η διεύθυνση βρίσκεται στην WAQ περιμένοντας να έρθει το δεδομένο από την EAQ για να το αποθηκεύσει στη μνήμη. Στην περίπτωση αυτή, εάν το φόρτωμα του δεδομένου αυτού δεν καθυστερηθεί με κάποιο τρόπο, το αποτέλεσμα θα είναι ότι δε θα φορτωθεί η πιο πρόσφατα ενημερωμένη τιμή. Ένας τρόπος για να αποφευχθεί το πρόβλημα αυτό είναι κάθε φορά που ζητάμε από τον Access να φέρει ένα δεδομένο από μια διεύθυνση στη μνήμη, να εξετάζουμε αν η ίδια διεύθυνση βρίσκεται αποθηκευμένη στη WAQ. Εάν υπάρχει matching με κάποια από τις διευθύνσεις τότε η εντολή αυτή καθώς και όλες οι επόμενες εντολές αποθήκευσης πρέπει να σταματήσουν μέχρι να σταματήσει να ισχύει το matching πράγμα που θα σημαίνει ότι θα έχει ολοκληρωθεί η διαδικασία του Memory Store για το δεδομένο που δημιούργησε αυτό το conflict. Όσον αφορά στις διακλαδώσεις υπό συνθήκη, για να συντονιστούν οι A- Processor και E-Processor υπάρχουν 2 ακόμα ουρές. Διακρίνουμε λοιπόν την E to A Branch Queue (EABQ) και την A to E Branch Queue (AEBQ). Για λόγους απόδοσης, είναι επιθυμητό ο A- Processor να καθορίζει όσο το δυνατόν περισσότερες διακλαδώσεις υπό συνθήκη. Δηλαδή, ο Execute θέλουμε να μη βλέπει καθόλου διακλαδώσεις και να συμπεριφέρεται λες και δεν υπάρχει κάποια διακλάδωση. Για το λόγο αυτό υπάρχουν αυτές οι δύο ουρές για την ανταλλαγή δεδομένων που αφορούν τη διακλάδωση, όπως για παράδειγμα το αποτέλεσμα μιας συνθήκης που οδηγεί σε διακλάδωση. Να τονίσουμε ότι οι σχεδιασμός με τις ουρές που παρουσιάζεται είναι τελείως συμβατικός, και απλά χρησιμοποιείται για καλύτερη κατανόηση της αρχιτεκτονικής. Παρακάτω βλέπουμε ένα τμήμα ψευδοκώδικα. A7 < A2 <- 0 A3 <- 1 X2 <- r Χ5 <- t Loop: X3 <- z + 10, A2 X7 <- z + 11, A2 X4 <- x2 *f X3 //floating point πολλαπλασιασμός X3 <- x5 *f X7 X7 <- y, A2 //φόρτωσε y(a2) X6 <- x3 + f X4 X4 <- x7 * f X6 A7 <- A7 + 1 x, A2 <- X4 A2 <- A2 + A3 JAM loop //διακλάδωση αν Α7<0 Για να τρέξει αυτό το τμήμα σε έναν Decoupled Επεξεργαστή, πρέπει να διαχωριστεί όπως δείχνει ο παρακάτω κώδικας.

24 Access Execute AEQ <- z + 10, A2 X4 <- X2 *f AEQ AEQ <- z + 11, A2 X3 <-X5 *f AEQ AEQ <- y, A2 X6 <- X3 +f X4 A7 <- A7 + 1 EAQ <- AEQ *f X6 x, A2 <- EAQ A2 <- A2 + A3

25 ΚΕΦΑΛΑΙΟ 3 Ιεραρχίες μνήμης cache και scratch pad 3.1 Μνήμη Cache Το σχήμα 6 δείχνει τη δομή ενός κυττάρου της μνήμης cache. Παρατηρούμε ότι το κάθε της κύτταρο αποτελείται από 6 τρανζίστορ (6-Τ). Τα δεδομένα μανδαλώνονται στη δομή αυτή και έτσι μπορούν να κρατηθούν εκεί χωρίς να χρειάζεται να ανανεωθούν, όπως συμβαίνει στις δυναμικές μνήμες. Οι δυναμικές μνήμες αποτελούνται από κύτταρα του ενός τρανζίστορ (1-Τ) και για να κρατήσουν τα δεδομένα χρειάζεται να ανανεώνονται συνεχώς. Το γεγονός αυτό κάνει τις στατικές μνήμες εξαιρετικά χρήσιμες όταν η απαίτηση είναι η μικρή κατανάλωση ισχύος. Το γεγονός επίσης ότι τα δεδομένα δε χρειάζονται ανανέωση κάνει τη μνήμη αυτή να εξυπηρετεί και τον άλλο σκοπό που είναι η μεγάλη ταχύτητα προσπέλασης. Παρόλο λοιπόν το γεγονός ότι η στατική μνήμη είναι μεγαλύτερη από τη δυναμική, χρησιμοποιείται έναντι της δυναμικής εξαιτίας των προαναφερθέντων πλεονεκτημάτων. Στο σχήμα 7, παρουσιάζεται το κύκλωμα της cache. Αποτελείται από τα εξής στοιχεία: Το χώρο που αποθηκεύονται τα δεδομένα (data memory array), τους πολυπλέκτες για την κάθε στήλη (data column multiplexers), τους ενισχυτές για κάθε δεδομένο (data sense amplifiers), τους οδηγούς στις εξόδους (data output drivers), τους αποκωδικοποιητές για τις ετικέτες (tag decoder), το χώρο που αποθηκεύονται οι ετικέτες (tag memory array), τους πολυπλέκτες στήλης για κάθε ετικέτα (tag column multiplexers), τους ενισχυτές για όλες τις ετικέτες (tag sense amplifiers), και τέλος τους οδηγούς στην έξοδο για κάθε ετικέτα (tag output drivers). Βλέπουμε ότι η μνήμη cache είναι σχεδόν διπλάσια σε μέγεθος από μια απλή στατική μνήμη, αφού πέρα από το data array, περιλαμβάνει και ένα ειδικό hardware (tag array), για αναζήτηση των ζητούμενων δεδομένων.

26 Σχήμα 6. Η δομή του κυττάρου μιας απλής στατικής μνήμης Η συνολική επιφάνεια της μνήμης cache, δίδεται από την παρακάτω σχέση: Α c = A tag + A data (1) Όπου A tag, είναι το area του tag, και A data, είναι το area για την αποθήκευση των δεδομένων. Αναλυτικά έχουμε: Α tag = A dt + A ta + A co + A pr + A se + A com + A mu (2) A data = A de + A da + A col + A pre + A sen + A out (3) όπου A dt, A ta, A co, A pr, A se, A com και A mu είναι η επιφάνεια του αποκωδικοποιητή της ετικέτας, του πίνακα που αποθηκέυονται οι ετικέτες, του πολυπλέκτη της στήλης, του κυκλώματος που κάνει την προφόρτιση, των ενισχυτών, των συγκριτών των ετικετών και των τελικών πολυπλεκτών των οδηγών και όπου, A de, A da, A col, A pre, A sen και A out είναι η επιφάνεια του αποκωδικοποιητή του πίνακα των δεδομένων, του πίνακα που αποθηκεύονται τα δεδομένα, του πολυπλέκτη της στήλης, του σταδίου της προφόρτισης, των ενισχυτών και των οδηγών της εξόδου των δεδομένων. Η ταχύτητα προσπέλασης της κρυφής μνήμης είναι το άθροισμα του χρόνου που χρειάζονται οι παρακάτω μονάδες να αποκριθούν. Το critical path του δηλαδή είναι η διαδρομή πάνω από την οποία περνά η κόκκινη γραμμή στο σχήμα 7. 1) Αποκωδικοποιητής γραμμής 2) Πολυπλέκτης στήλης 3) Ενισχυτές 4) Συγκριτές για έλεγχο hit 5) Πολυπλεκτών για να επιλέξουμε το απαιτούμενο byte από τη γραμμή και τέλος 6) Επιλογή δεδομένου από τις στήλες του πίνακα των δεδομένων που θα βγει στην έξοδο. Η μνήμη αυτή είναι μια μικρή μνήμη που κρατά τα πρόσφατα δεδομένα με βάση την τοπικότητα. Η τοπικότητα αυτή εμφανίζεται με δύο τρόπους: χωρική και χρονική τοπικότητα. Όταν μεταφέρουμε ένα δεδομένο από ένα υψηλότερο επίπεδο σε ένα χαμηλότερο, δε φέρνουμε μόνο το δεδομένο που χρειαζόμαστε αλλά και τα γειτονικά, μιας και υποθέτουμε ότι είναι πολύ πιθανό να χρειαστούν και τα γειτονικά. Αντί λοιπόν για ένα δεδομένο, φέρνουμε μία ολόκληρη σειρά της μνήμης. Εκμεταλλευόμαστε λοιπόν την χωρική τοπικότητα. Από την άλλη, δεδομένα που έχουν χρησιμοποιηθεί πρόσφατα, έχει αποδειχθεί ότι είναι πολύ πιθανό να χρησιμοποιηθούν και στο άμεσο μέλλον. Τα κρατάμε λοιπόν στη μνήμη αυτή ώστε να μπορούμε να τα προσπελάσουμε πιο γρήγορα.

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων

Αρχιτεκτονική Υπολογιστών II 16-2-2012. Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Αρχιτεκτονική Υπολογιστών II 6 --0 Ενδεικτικές απαντήσεις στα θέματα των εξετάσεων Θέμα. Τι γνωρίζετε για την τοπικότητα των αναφορών και ποιών μονάδων του υπολογιστή ή τεχνικών η απόδοση εξαρτάται από

Διαβάστε περισσότερα

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC

Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Συστήματα μνήμης και υποστήριξη μεταφραστή για MPSoC Πλεονεκτήματα MPSoC Είναι ευκολότερο να σχεδιαστούν πολλαπλοί πυρήνες επεξεργαστών από τον σχεδιασμό ενός ισχυρότερου και πολύ πιο σύνθετου μονού επεξεργαστή.

Διαβάστε περισσότερα

Συστήματα σε Ολοκληρωμένα Κυκλώματα

Συστήματα σε Ολοκληρωμένα Κυκλώματα Συστήματα σε Ολοκληρωμένα Κυκλώματα Κεφάλαιο 4: Αρχιτεκτονική των Embedded Μικροεπεξεργαστών Διδάσκων: Καθηγητής Οδυσσέας Κουφοπαύλου Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών ΕΙΣΑΓΩΓΗ Παρουσιάζεται

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής

ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής ΠΛΕ- 027 Μικροεπεξεργαστές 8ο μάθημα: Παραλληλία επιπέδου εντολής Αρης Ευθυμίου Ταχύτερη εκτέλεση Με τις τεχνικές που είδαμε στα προηγούμενα μαθήματα μπορούμε να εκτελέσουμε (με επικάλυψη) περίπου 1 εντολή

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I

ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I ΤΕΧΝΙΚΕΣ ΑΥΞΗΣΗΣ ΤΗΣ ΑΠΟΔΟΣΗΣ ΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ I MIPS Η MIPS (Microprocessor without Interlocked Pipeline Stages) είναι μία αρχιτεκτονική συνόλου εντολών (ISA) γλώσσας μηχανής που αναπτύχθηκε από την εταιρεία

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Ιεραρχία συχνά και το

Διαβάστε περισσότερα

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης i Στα σύγχρονα

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κρυφές Μνήμες (οργάνωση, λειτουργία και απόδοση) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Για βελτίωση της απόδοσης

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 6ο μάθημα: χρονοπρογραμματισμός, αλγόριθμος Tomasulo, εικασία Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου InstrucDon- Level

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα

Κεντρική Μονάδα Επεξεργασίας. Επανάληψη: Απόδοση ΚΜΕ. ΚΜΕ ενός κύκλου (single-cycle) Παραλληλισμός σε επίπεδο εντολών. Υπολογιστικό σύστημα Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Παραλληλισμός σε επίπεδο εντολών

Παραλληλισμός σε επίπεδο εντολών Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Παραλληλισμός σε επίπεδο εντολών (Pipelining και άλλες τεχνικές αύξησης απόδοσης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών

1. Οργάνωση της CPU 2. Εκτέλεση εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο επίπεδο των επεξεργαστών ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ ΟΡΓΑΝΩΣΗ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ι Γ. Τσιατούχας 2 ο Κεφάλαιο ιάρθρωση 1. Οργάνωση της 2. εντολών 3. Παραλληλία στο επίπεδο των εντολών 4. Γραμμές διοχέτευσης 5. Παραλληλία στο

Διαβάστε περισσότερα

Τεχνολογίες Κύριας Μνήμης

Τεχνολογίες Κύριας Μνήμης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Τεχνολογίες Κύριας (και η ανάγκη για χρήση ιεραρχιών μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Κύρια Μνήμη

Διαβάστε περισσότερα

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους; Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2015-16 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 3.2: Κεντρική Μονάδα Επεξεργασίας Κεφάλαιο 3 ο Αρχιτεκτονική Υπολογιστών Μάθημα 3.: Κεντρική Μονάδα Επεξεργασίας Όταν ολοκληρώσεις το κεφάλαιο θα μπορείς: Να σχεδιάζεις την εσωτερική δομή της ΚΜΕ και να εξηγείς τη λειτουργία των επιμέρους

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΨΗΦΙΑΚΑ ΣΥΣΤΗΜΑΤΑ ΚΕΦΑΛΑΙΟ 7ο ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Γενικό διάγραμμα υπολογιστικού συστήματος Γενικό διάγραμμα υπολογιστικού συστήματος - Κεντρική Μονάδα Επεξεργασίας ονομάζουμε

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων

Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Πανεπιστήμιο Θεσσαλίας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Οργάνωση Η/Υ Ενότητα 1η: Εισαγωγή στην Οργάνωση Η/Υ Άσκηση 1: Αναλύστε τη διαδοχική εκτέλεση των παρακάτω εντολών MIPS με βάση τις

Διαβάστε περισσότερα

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας

Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας Μάθημα 4: Κεντρική Μονάδα Επεξεργασίας 4.1 Γενικά Ο υπολογιστής επεξεργάζεται δεδομένα ακολουθώντας βήμα βήμα, τις εντολές ενός προγράμματος. Το τμήμα του υπολογιστή, που εκτελεί τις εντολές και συντονίζει

Διαβάστε περισσότερα

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ

Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ. «Φέτα» ημιαγωγών (wafer) από τη διαδικασία παραγωγής ΚΜΕ Το ολοκληρωμένο κύκλωμα μιας ΚΜΕ Η Κεντρική Μονάδα Επεξεργασίας (Central Processing Unit -CPU) ή απλούστερα επεξεργαστής αποτελεί το μέρος του υλικού που εκτελεί τις εντολές ενός προγράμματος υπολογιστή

Διαβάστε περισσότερα

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ ΔΕΥΤΕΡΗ ΠΡΟΟΔΟΣ ΣΤΗΝ ΟΡΓΑΝΩΣΗ ΣΤΟΥΣ Η/Y (ΗΥ232) Δευτέρα, 3 Νοεμβρίου 25 ΔΙΑΡΚΕΙΑ ΔΙΑΓΩΝΙΣΜΑΤΟΣ 3 ΛΕΠΤΑ Για πλήρη

Διαβάστε περισσότερα

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ (Τμήματα Υπολογιστή) ΕΚΠΑΙΔΕΥΤΗΣ:ΠΟΖΟΥΚΙΔΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ ΤΜΗΜΑΤΑ ΗΛΕΚΤΡΟΝΙΚΟΥ ΥΠΟΛΟΓΙΣΤΗ Κάθε ηλεκτρονικός υπολογιστής αποτελείται

Διαβάστε περισσότερα

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»

Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ» Περιεχόμενα Γενική οργάνωση υπολογιστή «ΑΒΑΚΑ»... 2 Καταχωρητές... 3 Αριθμητική-λογική μονάδα... 3 Μονάδα μνήμης... 4 Μονάδα Εισόδου - Εξόδου... 5 Μονάδα ελέγχου... 5 Ρεπερτόριο Εντολών «ΑΒΑΚΑ»... 6 Φάση

Διαβάστε περισσότερα

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw. ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΡ ΙΟ ΥΠΟΛΟΟ ΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua. gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2 10ο μάθημα: Ορια παραλληλίας επιπέδου εντολής και πολυνηματικοί επεξεργαστές Αρης Ευθυμίου Πηγές διαφανειών: συνοδευτικές διαφάνειες αγγλικης εκδοσης του βιβλιου Ορια

Διαβάστε περισσότερα

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Κώδικας μηχανής (E) Ο επεξεργαστής μπορεί να εκτελέσει το αρχιτεκτονικό σύνολο εντολών (instruction set architecture) Οι

Διαβάστε περισσότερα

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ

Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ Κεφάλαιο 3 Αρχιτεκτονική Ηλεκτρονικού Τμήματος (hardware) των Υπολογιστικών Συστημάτων ΕΡΩΤΗΣΕΙΣ ΑΣΚΗΣΕΙΣ 1. Τι εννοούμε με τον όρο υπολογιστικό σύστημα και τι με τον όρο μικροϋπολογιστικό σύστημα; Υπολογιστικό

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 4 : Κρυφή Μνήμη Καρβούνης Ευάγγελος Δευτέρα, 30/11/2015 Χαρακτηριστικά Θέση Χωρητικότητα Μονάδα Μεταφοράς

Διαβάστε περισσότερα

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ) (Δομή Εντολών και Παραδείγματα) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Αρχιτεκτονική

Διαβάστε περισσότερα

Αρχιτεκτονική υπολογιστών

Αρχιτεκτονική υπολογιστών 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Αρχιτεκτονική υπολογιστών Ενότητα 11-12 : Δομή και Λειτουργία της CPU Ευάγγελος Καρβούνης Παρασκευή, 22/01/2016 2 Οργάνωση της CPU Η CPU πρέπει:

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης

Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Υ- 01 Αρχιτεκτονική Υπολογιστών Back- end: χρονοπρογραμματισμός, εντολές προσπέλασης μνήμης Αρης Ευθυμίου Το σημερινό μάθημα Execu9on scheduling wake- up and select specula9ve wake- up Εκτέλεση εντολών

Διαβάστε περισσότερα

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων

ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων ΚΕΦΑΛΑΙΟ 2: Χειρισµός εδοµένων 2.1 Αρχιτεκτονική Υπολογιστών 2.1 Αρχιτεκτονική Υπολογιστών 2.2 Γλώσσα Μηχανής 2.3 Εκτέλεση προγράµµατος 2.4 Αριθµητικές και λογικές εντολές 2.5 Επικοινωνία µε άλλες συσκευές

Διαβάστε περισσότερα

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ

2η ΑΣΚΗΣΗ ΣΤΗΝ ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ Ακ. έτος , 5ο Εξάμηνο Σχολή ΗΜ&ΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ Α Σ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ Ι Κ Ω Ν Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2015 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Παραλληλισµός Εντολών (Pipelining)

Παραλληλισµός Εντολών (Pipelining) ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Παραλληλισµός Εντολών (Pipelining) Τµήµα Επιστήµη και Τεχνολογίας Τηλεπικοινωνιών Πανεπιστήµιο Πελοποννήσου Βιβλιογραφία Ενότητας Kuo [2005]: Chapter 3: Section 3.4,

Διαβάστε περισσότερα

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ: ΗΛΕΚΤΡΟΝΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΗΛΕΚΤΡΟΝΙΚΩΝ ΕΦΑΡΜΟΓΩΝ Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων

Διαβάστε περισσότερα

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση

ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση ΠΛΕ- 027 Μικροεπεξεργαστές 6ο μάθημα: Αρχιτεκτονική πυρήνα: υλοποίηση με διοχέτευση Αρης Ευθυμίου Απόδοση απλής υλοποίησης Υλοποίηση ενός κύκλου είναι πολύ αργή κάθε κύκλος είναι τόσο μεγάλος όσο χρειάζεται

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών

Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Υ- 01 Αρχιτεκτονική Υπολογιστών Front- end: Προσκόμιση, αποκωδικοποίηση, μετονομασία καταχωρητών Αρης Ευθυμίου Το σημερινό μάθημα Προσκόμιση (fetch) πολλαπλές εντολές ανά κύκλο Μετονομασία καταχωρητών

Διαβάστε περισσότερα

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή

Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή 1 Είναι το «μυαλό» του υπολογιστή μας. Αυτός κάνει όλους τους υπολογισμούς και τις πράξεις. Έχει δική του ενσωματωμένη μνήμη, τη λεγόμενη κρυφή μνήμη(cache). Η cache είναι πολύ σημαντική, πολύ γρήγορη,

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2012 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών

Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Επιμέλεια: Γεώργιος Θεοδωρίδης, Επίκουρος Καθηγητής Ανδρέας Εμερετλής, Υποψήφιος Διδάκτορας Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών 1 Άδειες Χρήσης Το παρόν υλικό

Διαβάστε περισσότερα

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing)

Διάλεξη 12 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 2 Καθυστερήσεις (Stalls) Εκκενώσεις Εντολών (Flushing) Νίκος Μπέλλας Τμήμα Μηχανικών Η/Υ, Τηλεπικοινωνιών και Δικτύων Καθυστερήσεις και Εκκενώσεις Εντολών

Διαβάστε περισσότερα

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline)

Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Chapter 6 Αύξηση της απόδοσης με διοχέτευση (pipeline) Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης, Τμήματος Ηλεκτρονικών Μηχανικών

Διαβάστε περισσότερα

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο, 2016-2017 ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ Μικροϋπολογιστής Υπολογιστής που χρησιμοποιείται για την είσοδο, επεξεργασία και έξοδο πληροφοριών. Είδη μικροϋπολογιστών:

Διαβάστε περισσότερα

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής)

ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Α Γενικού Λυκείου (Μάθημα Επιλογής) ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Α Γενικού Λυκείου (Μάθημα Επιλογής) Σύγχρονα Υπολογιστικά Συστήματα τους υπερυπολογιστές (supercomputers) που χρησιμοποιούν ερευνητικά εργαστήρια τα μεγάλα συστήματα (mainframes)

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Γιώργος Δημητρίου Ενότητα 7 η : Στατική Δρομολόγηση Εντολών (Επεξεργαστές VLIW) Εκμετάλλευση ILP Περιορισμοί στη δυναμική δρομολόγηση εντολών: Μέγεθος παραθύρου εντολών Αριθμός φυσικών καταχωρητών Αποτυχία

Διαβάστε περισσότερα

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση

Κεφάλαιο 5. ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 2. Σημείωση Κεφάλαιο 5 ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -. Σερπάνος 1 Σημείωση Οι παρούσες διαφάνειες παρέχονται ως συμπλήρωμα διδασκαλίας για το μάθημα «Αρχιτεκτονική Υπολογιστών» του Τμήματος Ηλεκτρολόγων Μηχανικών & Τεχνολογίας

Διαβάστε περισσότερα

Δομή Ηλεκτρονικού υπολογιστή

Δομή Ηλεκτρονικού υπολογιστή Δομή Ηλεκτρονικού υπολογιστή Η κλασσική δομή του μοντέλου που πρότεινε το 1948 ο Von Neumann Κεντρική Μονάδα Επεξεργασίας Είσοδος Αποθήκη Αποθήκη - Έξοδος Εντολών Δεδομένων Κλασσικό μοντέλο Von Neumann

Διαβάστε περισσότερα

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη.

Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου. Ενδέκατη (11 η ) δίωρη διάλεξη. Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο (4 η έκδοση), μετάφραση: Καθ. Εφαρμογών Νικόλαος Πετράκης,

Διαβάστε περισσότερα

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου

Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy. Chapter 5. Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 5 Ο επεξεργαστής: διαδρομή δεδομένων και μονάδα ελέγχου Ενδέκατη (11 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 8 Χειμερινό Εξάμηνο 2016-2017 1. Προσομοίωση λειτουργίας ιεραρχίας

Διαβάστε περισσότερα

Κεντρική Μονάδα Επεξεργασίας

Κεντρική Μονάδα Επεξεργασίας Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Μονάδα Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης

Διαβάστε περισσότερα

Στοιχεία από την αρχιτεκτονική των μικροϋπολογιστών

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

Διαβάστε περισσότερα

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Μάθημα 3: Αρχιτεκτονική Υπολογιστών Μάθημα 3: Αρχιτεκτονική Υπολογιστών 3.1 Περιφερειακές μονάδες και τμήμα επεξεργασίας Στην καθημερινή μας ζωή ερχόμαστε συνέχεια σε επαφή με υπολογιστές. Ο υπολογιστής είναι μια συσκευή που επεξεργάζεται

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 10 η : Βελτιστοποιήσεις Τοπικότητας και Παραλληλισμού: Εξαρτήσεις και Μετασχηματισμοί Βρόχων Επεξεργασία Πινάκων Παραλληλισμός επιπέδου βρόχου Λόγω παραλληλισμού δεδομένων Επιτυγχάνεται

Διαβάστε περισσότερα

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο) I χειμερινό εξάμηνο & ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II εαρινό εξάμηνο (σε κίτρινο υπόβαθρο). Νικολός Καθηγητής ΚΕΦΑΛΑΙΟ 1 Εισαγωγή στην ομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών Ενότητα 1.1 Υλικό

Διαβάστε περισσότερα

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας

Πληροφορική Ι. Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ. Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Χρηματοοικονομικής & Ελεγκτικής ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Πληροφορική Ι Μάθημα 6 ο Εκτέλεση πράξεων, Αρχιτεκτονική Η/Υ Δρ. Γκόγκος Χρήστος Εκτέλεση προγραμμάτων Πρόγραμμα: Ένα σύνολο από εντολές.

Διαβάστε περισσότερα

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM).

Υπάρχουν δύο τύποι μνήμης, η μνήμη τυχαίας προσπέλασης (Random Access Memory RAM) και η μνήμη ανάγνωσης-μόνο (Read-Only Memory ROM). Μνήμες Ένα από τα βασικά πλεονεκτήματα των ψηφιακών συστημάτων σε σχέση με τα αναλογικά, είναι η ευκολία αποθήκευσης μεγάλων ποσοτήτων πληροφοριών, είτε προσωρινά είτε μόνιμα Οι πληροφορίες αποθηκεύονται

Διαβάστε περισσότερα

Θέματα Μεταγλωττιστών

Θέματα Μεταγλωττιστών Γιώργος Δημητρίου Ενότητα 9 η : Θέματα Δρομολόγησης Εντολών ILP Παραλληλισμός επιπέδου εντολής Εξαρτήσεις δεδομένων Εξαρτήσεις ελέγχου (διαδικασιακές) Με διαθέσιμους πόρους, οι εντολές μπορούν να εκτελεστούν

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2014 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 201 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής

Κεφάλαιο 4 ο. Ο Προσωπικός Υπολογιστής Κεφάλαιο 4 ο Ο Προσωπικός Υπολογιστής Μάθημα 4.3 Ο Επεξεργαστής - Εισαγωγή - Συχνότητα λειτουργίας - Εύρος διαδρόμου δεδομένων - Εύρος διαδρόμου διευθύνσεων - Εύρος καταχωρητών Όταν ολοκληρώσεις το μάθημα

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2009 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ:

ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ. Ονοματεπώνυμο: ΑΜ: ΕΘΝΙKΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ Ονοματεπώνυμο: ΑΜ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ (τμήμα Μ - Ω) Κανονική εξεταστική Φεβρουαρίου

Διαβάστε περισσότερα

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας,

Μικροεπεξεργαστές. Σημειώσεις Μαθήματος Υπεύθυνος: Δρ Άρης Παπακώστας, Μικροεπεξεργαστές Σημειώσεις Μαθήματος 2013-14 Υπεύθυνος: Δρ Άρης Παπακώστας, Η γλώσσα assembly είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου για συγκεκριμένους υπολογιστές ή άλλη προγραμματιζόμενη

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ ΑΣ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ ΙΚΩΝ Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.ece.ntua.gr

Διαβάστε περισσότερα

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών

Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Πανεπιστήμιο Θεσσαλίας Τμήμα Ηλεκτρολόγων Μηχανικών & Μηχανικών Υπολογιστών Αρχιτεκτονική Υπολογιστών Άσκηση 11 (εργαστηριακή): Ασκήσεις Εξαμήνου Μέρος Γ Δεκέμβριος 2016 Γράψτε ένα πρόγραμμα προσομοίωσης

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2008 Τεχνολογία Ι Θεωρητικής Κατεύθυνσης Τεχνικών Σχολών Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Σύγχρονοι υπολογιστές Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται

Διαβάστε περισσότερα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές Υ- 01 Αρχιτεκτονική Υπολογιστών Υπερβαθμωτοι επεξεργαστές Αρης Ευθυμίου Το σημερινό μάθημα Υπερβαθμωτοί επεξεργαστές (superscalar) Εκτέλεση σε σειρά Εκτέλεση εκτός σειράς Alpha 21164 Scoreboard Μετονομασία

Διαβάστε περισσότερα

Υπερβαθµωτή Οργάνωση Υπολογιστών

Υπερβαθµωτή Οργάνωση Υπολογιστών Υπερβαθµωτή Οργάνωση Υπολογιστών Από τις βαθµωτές στις υπερβαθµωτές αρχιτεκτονικές αγωγού Τα όρια του Παραλληλισµού σε επίπεδο εντολών (Instruction Level Parallelism - ILP) Weiss and Smith [1984] Sohi

Διαβάστε περισσότερα

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) SMPcache Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache) 1. Βασικές ρυθμίσεις του συστήματος: δημιουργία μια δικής μας σύνθεσης συστήματος. Το SMPcache είναι ένα εργαλείο με το οποίο μπορούμε

Διαβάστε περισσότερα

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) 1 Συστήματα Μνήμης Η οργάνωση του συστήματος μνήμης επηρεάζει τη λειτουργία και απόδοση ενός μικροεπεξεργαστή: Διαχείριση μνήμης και περιφερειακών (Ι/Ο) απότολειτουργικόσύστημα

Διαβάστε περισσότερα

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

Διαβάστε περισσότερα

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

Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών Ασκήσεις στα Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών ακ. έτος 2006-2007 Νεκτάριος Κοζύρης Νίκος Αναστόπουλος {nkoziris,anastop}@cslab.ece.ntua.gr Άσκηση 1: pipelining Εξετάζουμε την εκτέλεση του παρακάτω

Διαβάστε περισσότερα

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες!

i Όλες οι σύγχρονες ΚΜΕ είναι πολυπλοκότερες! Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2016-17 Κεντρική Επεξεργασίας (Σχεδιασμός και λειτουργία μιας απλής ΚΜΕ) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Η υπολογιστική

Διαβάστε περισσότερα

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

Κεφάλαιο Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Α Γενικού Λυκείου Κεφάλαιο 1 1.1 Το υπολογιστικό σύστημα Η εξέλιξη του ανθρώπου πραγματοποιήθηκε χάρη στην ικανότητά στον χειρισμό εργαλείων. Ιδιαίτερη θέση έχουν οι Υπολογιστικές συσκευές. Μηχανισμός

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη των Υπολογιστών

Εισαγωγή στην Επιστήμη των Υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών Ενότητα 3: Χειρισμός δεδομένων, 2ΔΩ Τμήμα: Αγροτικής Οικονομίας & Ανάπτυξης Διδάσκων: Θεόδωρος Τσιλιγκιρίδης Μαθησιακοί Στόχοι Η Ενότητα 3 διαπραγματεύεται θέματα

Διαβάστε περισσότερα

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς

Τμήμα Λογιστικής. Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές. Μάθημα 8. 1 Στέργιος Παλαμάς ΤΕΙ Ηπείρου Παράρτημα Πρέβεζας Τμήμα Λογιστικής Εισαγωγή στους Ηλεκτρονικούς Υπολογιστές Μάθημα 8 Κεντρική Μονάδα Επεξεργασίας και Μνήμη 1 Αρχιτεκτονική του Ηλεκτρονικού Υπολογιστή Μονάδες Εισόδου Κεντρική

Διαβάστε περισσότερα

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή

Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ. Εισαγωγή Εισαγωγή Εργαστήριο 3 ΟΡΓΑΝΩΣΗ ΤΗΣ ΚΜΕ Σκοπός του εργαστηρίου είναι να γνωρίσουµε την εσωτερική δοµή και αρχιτεκτονική της κεντρικής µονάδας επεξεργασίας, να κατανοήσουµε τον τρόπο µε τον οποίο λειτουργεί

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

Διαβάστε περισσότερα

Υπερβαθµωτή Οργάνωση Υπολογιστών

Υπερβαθµωτή Οργάνωση Υπολογιστών Υπερβαθµωτή Οργάνωση Υπολογιστών Από τις βαθµωτές στις υπερβαθµωτές αρχιτεκτονικές αγωγού Ανάγνωση εντολής (Instruction Fetch) Σε µία αρχιτεκτονική πλάτους s, πρέπει διαβάζονται s εντολές σε κάθε κύκλο

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 ΑΠΑΝΤΗΣΕΙΣ ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2006 Μάθημα : Μικροϋπολογιστές Τεχνολογία Τ.Σ. Ι, Θεωρητικής κατεύθυνσης Ημερομηνία

Διαβάστε περισσότερα

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή

Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Στοιχεία αρχιτεκτονικής μικροεπεξεργαστή Αριθμός bit δίαυλου δεδομένων (Data Bus) Αριθμός bit δίαυλου διευθύνσεων (Address Bus) Μέγιστη συχνότητα λειτουργίας (Clock Frequency) Τύποι εντολών Αριθμητική

Διαβάστε περισσότερα

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ

Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ ΕΣ 08 Επεξεργαστές Ψηφιακών Σηµάτων Αρχιτεκτονική Επεξεργαστών Ψ.Ε.Σ Βιβλιογραφία Ενότητας Kehtarnavaz [2005]: Chapter 3 Kuo [2005]: Chapters 1 & 4-5 Lapsley [2002]: Chapter 4 Hayes [2000]: Κεφάλαιo 8

Διαβάστε περισσότερα

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΔΙΕΥΘΥΝΣΗ ΑΝΩΤΕΡΗΣ ΚΑΙ ΑΝΩΤΑΤΗΣ ΕΚΠΑΙΔΕΥΣΗΣ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2013 ΤΕΧΝΟΛΟΓΙΑ (Ι) ΤΕΧΝΙΚΩΝ ΣΧΟΛΩΝ ΘΕΩΡΗΤΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ Μάθημα : Μικροϋπολογιστές

Διαβάστε περισσότερα

Προγραμματισμός Ι (HY120)

Προγραμματισμός Ι (HY120) Προγραμματισμός Ι (HY20) # μνήμη & μεταβλητές πρόγραμμα & εκτέλεση Ψηφιακά δεδομένα, μνήμη, μεταβλητές 2 Δυαδικός κόσμος Οι υπολογιστές είναι δυαδικές μηχανές Όλη η πληροφορία (δεδομένα και κώδικας) κωδικοποιείται

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΠΡΟΗΓΜΕΝΑ ΘΕΜΑΤΑ

Διαβάστε περισσότερα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα

Κεφάλαιο 8. Αριθμητική Λογική μονάδα Κεφάλαιο 8 Αριθμητική Λογική μονάδα 8.1 Εισαγωγή Στη μηχανική υπολογιστών η αριθμητική/λογική μονάδα (ALU) είναι ένα ψηφιακό κύκλωμα το οποίο εκτελεί αριθμητικούς και λογικούς υπολογισμούς. Η ALU είναι

Διαβάστε περισσότερα

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6

ΠΕΡΙΕΧΟΜΕΝΑ. 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή στην Δομή, Οργάνωση, Λειτουργία και Αξιολόγηση Υπολογιστών 1.1. Υλικό και Λογισμικό.. 1 1.2 Αρχιτεκτονική Υπολογιστών.. 3 1.3 Δομή, Οργάνωση και Λειτουργία Υπολογιστών 6 1.3.1 Δομή

Διαβάστε περισσότερα

Σύγχρονες Αρχιτεκτονικές Υπολογιστών

Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΧΑΡΟΚΟΠΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΤΗΛΕΜΑΤΙΚΗΣ Σύγχρονες Αρχιτεκτονικές Υπολογιστών ΑΚΑ ΗΜΑΪΚΟ ΕΤΟΣ 2014-2015 Αρχιτεκτονική Συνόλου Εντολών (Instruction Set Architecture-ISA) 1 Ένας υπολογιστής

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 7: Πρόγνωση διακλαδώσεων. Εξαρτήσεις και εκτέλεση εκτός σειράς. Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών

Διαβάστε περισσότερα

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L.

Chapter 2. Εντολές : Η γλώσσα του υπολογιστή. Τρίτη (3 η ) δίωρη διάλεξη. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Η διασύνδεση Υλικού και λογισμικού David A. Patterson και John L. Hennessy Chapter 2 Εντολές : Η γλώσσα του υπολογιστή Τρίτη (3 η ) δίωρη διάλεξη. Διαφάνειες διδασκαλίας από το πρωτότυπο αγγλικό βιβλίο

Διαβάστε περισσότερα

Διάλεξη 12 Καθυστερήσεις (Stalls)

Διάλεξη 12 Καθυστερήσεις (Stalls) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 12 Καθυστερήσεις (Stalls) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ 1 Καθυστερήσεις και Εκκενώσεις Εντολών Οι κίνδυνοι δεδομένων (data

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ Ε Ρ Γ ΑΣ Τ ΗΡ ΙΟ Υ ΠΟΛΟΓΙΣ Τ ΙΚΩΝ Σ Υ Σ Τ ΗΜΑΤΩΝ w w w. c s l ab.ece.ntua.gr

Διαβάστε περισσότερα

Βασική δοµή και Λειτουργία Υπολογιστή

Βασική δοµή και Λειτουργία Υπολογιστή Βασική δοµή και Λειτουργία Υπολογιστή Η τεχνολογία των Η/Υ έχει βασιστεί στη λειτουργία του ανθρώπινου οργανισµού. Οπως ο άνθρωπος πέρνει εξωτερικά ερεθίσµατα από το περιβάλλον τα επεξεργάζεται και αντιδρά

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα