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

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

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

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

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

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

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

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

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

Ενότητα 4. Εισαγωγή στην Πληροφορική. Αναπαράσταση δεδοµένων. Αναπαράσταση πληροφορίας. υαδικοί αριθµοί. Χειµερινό Εξάµηνο

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 7ο μάθημα: Αρχιτεκτονική πυρήνα: Πρόβλεψη διακλάδωσης, Εξαιρέσεις

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

i Throughput: Ο ρυθμός ολοκλήρωσης έργου σε συγκεκριμένο χρόνο

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

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

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

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

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

Υ- 07 Παράλληλα Συστήματα Αρχιτεκτονική σύγχρονων πυρήνων επεξεργαστών

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

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

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

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

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

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

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

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

Κύρια μνήμη. Μοντέλο λειτουργίας μνήμης. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (ΙI)

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

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

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

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

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

Φόρμα Σχεδιασμού Διάλεξης (ημ/α:15/10/07, έκδοση:0.1 ) 1. Κωδικός Μαθήματος : 2. Α/Α Διάλεξης : 1 1. Τίτλος : 1. Εισαγωγή στην Αρχιτεκτονική Η/Υ

Οργάνωση Υπολογιστών (ΙI)

Παράλληλα Συστήματα. Γιώργος Δημητρίου. Ενότητα 3 η : Παράλληλη Επεξεργασία. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

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

Η ΤΑΞΙΝΟΜΗΣΗ ΤΟΥ FLYNN!!! 1 ο ΕΠΑΛ ΡΟΔΟΥ ΤΟΜΕΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ!!!! Χατζηνικόλας Κώστας

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

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

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

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

ΟΡΓΑΝΩΣΗ ΚΑΙ ΣΧΕΔΙΑΣΗ Η/Υ

Ζητήµατα Απόδοσης. Ιεραρχία Μνήµης. Αναγκαιότητα για Ιεραρχία Μνήµης. Processor-DRAM Gap (latency) Ε-85: Ειδικά Θέµατα Λογισµικού

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

Πολυπύρηνοι επεξεργαστές Multicore processors

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

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

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

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

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

Οργάνωση Η/Υ. Γιώργος Δημητρίου. Μάθημα 8 ο Μερική Επικάλυψη. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Εφαρµογές Υπολογιστών Βασίλης Μπλιάµπλιας Γεωργία Τσούτσου Γιώργος Συνάπαλος

Υ- 07 Παράλληλα Συστήματα Συνέπεια και συνοχή μνήμης

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

Αρχιτεκτονική Eckert-von Neumann. Πως λειτουργεί η ΚΜΕ; Κεντρική μονάδα επεξεργασίας [3] ΕΠΛ 031: ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

Αρχιτεκτονικη υπολογιστων

Λειτουργικά Συστήματα (ΗΥ321)

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

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

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

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

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

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

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

εισαγωγικές έννοιες Παύλος Εφραιμίδης Δομές Δεδομένων και

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

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

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

ΕΙΣΑΓΩΓΗ ΣΤΟΥΣ ΥΠΟΛΟΓΙΣΤΕΣ. ΜΑΘΗΜΑ 4 ο ΟΡΓΑΝΩΣΗ ΤΗΣ ΜΝΗΜΗΣ ΠΕΡΙΦΕΡΕΙΑΚΗ ΜΝΗΜΗ

ΠΛΗ10 Κεφάλαιο 2. ΠΛΗ10 Εισαγωγή στην Πληροφορική: Τόμος Α Κεφάλαιο: 2 2.1: Bασική Δομή του Υπολογιστή

ΠΛΕ- 027 Μικροεπεξεργαστές

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

Η ιεραρχία της μνήμης

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

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

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

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

12/5/18. Αποτίµηση του υποσυστήµατος CPU. Κεφάλαιο 6. Κατανόηση και εκτίμηση του υλικού: Αποτιμήστε το σύστημά σας. Στόχοι

Το εσωτερικό ενός PC. Τεχνολογία Η/Υ & Πληροφοριών - 05 Κεντρική μονάδα Χουρδάκης Μανόλης

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

Κατανεμημένα Συστήματα

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

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

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

Κεφάλαιο 3. Διδακτικοί Στόχοι

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

30 min κάθε «φάση» Pipeline: Ένα παράδειγµα από.τη καθηµερινή ζωή. 1. Πλυντήριο. 2. Στεγνωτήριο. 3. ίπλωµα. 4. αποθήκευση. προσέγγιση για 4.

Οργάνωση Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Εργαστήριο 9: Εισαγωγή στην Ομοχειρία (Pipelining - Διοχέτευση) Μανόλης Γ.Η.

Βασίλειος Κοντογιάννης ΠΕ19

Λειτουργικά Συστήματα (ΗΥ321)

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

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Transcript:

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

Ταχύτητα εκτέλεσης Χρόνος εκτέλεσης = (αριθμός εντολών που εκτελούνται) Τί έχει σημασία: Χ (χρόνος εκτέλεσης εντολής) Αριθμός εντολών Καθορίζεται από το λογισμικό: κατάλληλος αλγόριθμος, καλός μεταφραστής,... Γρήγορη εκτέλεση εντολών Καθορίζεται από το υλικό Πώς μπορεί το υλικό να εκτελέσει εντολές γρηγορότερα μείωση χρόνου κύκλου ρολογιού (ή μεγαλύτερη συχνότητα) εκτέλεση πολλών «δουλειών» σε ένα κύκλο 2

Διοχέτευση (pipelining) Στην απλή σχεδίαση, τα περισσότερα κυκλώματα «περιμένουν» να έρθει η σειρά τους για να κάνουν τη δουλειά τους Μπορούμε να κάνουμε κάθε βήμα (λέγεται στάδιο pipeline stage) να δουλεύει σε διαφορετική εντολή: Όταν εκτελείται μια εντολή, ταυτόχρονα, αποκωδικοποιούμε την επόμενη και προσκομίζουμε την μεθεπόμενη Μοιάζει με γραμμή παραγωγής σε ένα εργοστάσιο 3

Κέρδος διοχέτευσης Σε κάθε κύκλο ξεκινάει μια νέα εντολή Τι κερδίζουμε; Ο χρόνος του κύκλου διαιρείται περίπου τόσο όσο ο αριθμός των σταδίων της διοχέτευσης Ο χρόνος εκτέλεσης μιας μεμονωμένης εντολής αυξάνεται λίγο χρειάζονται επιπλέον κυκλώματα αποθήκευσης μεταξύ βημάτων Αλλά ο ρυθμός εκτέλεσης είναι μία εντολή ανά (γρηγορότερο τώρα) κύκλο ρολογιού 4

Προβλήματα διοχέτευσης Εξάρτηση εντολών instruction dependencies Όταν εκτελείται μια εντολή διακλάδωσης, γιατί να προσκομίσουμε την επόμενη; Δεν είναι σίγουρο ότι θα εκτελεστεί. Πρέπει είτε να περιμένουμε το αποτέλεσμα της διακλάδωσης ή να μπορούμε να ακυρώσουμε τις εντολές που δεν έπρεπε να εκτελεστούν Λέγεται εξάρτηση ελέγχου control dependence Πολλές εντολές χρειάζονται τα αποτελέσματα που παράγουν οι προηγούμενες για να εκτελεστούν εξάρτηση δεδομένων data dependence 5

Πάγωμα διοχέτευσης Σε τέτοιες περιπτώσεις πρέπει να παγώσουμε τη διοχέτευση, μέχρι να μην υπάρχει η εξάρτηση λέγεται pipeline stall Ή, εναλλακτικά, να απαγορέψουμε εξαρτημένες εντολές να είναι η μια μετά/κοντά (σ)την άλλη αν δεν βρει ο μεταφραστής κάποια άλλη εντολή να βάλει ανάμεσά τους, μπορεί να προσθέσει μια εντολή που δεν κάνει τίποτα λέγεται NOP (no operation) Ή, σε πολλές περιπτώσεις να μεταφέρουμε το αποτέλεσμα κατευθείαν εκεί που χρειάζεται αν είναι έτοιμο 6

Ακόμα γρηγορότερα; Εκτέλεση πολλών εντολών ταυτόχρονα Αντί για μία μονάδα εκτέλεσης πράξεων μπορούμε να έχουμε πολλές Πρέπει να φέρνουμε πολλές εντολές από τη μνήμη ταυτόχρονα πώς; Οργάνωση: πολύ μεγάλες ανεξάρτητες εντολές (VLIW) ο μεταφραστής εξασφαλίζει την ανεξαρτησία ο επεξεργαστής έχει την ευθύνη να βρει/ελέγξει αν οι εντολές είναι ανεξάρτητες (Υπερβαθμωτός επεξεργαστής superscalar) 7

Αλλάζοντας τη σειρά εκτέλεσης Το πρόβλημα με τους superscalar είναι ότι οι εξαρτήσεις μεταξύ εντολών είναι πολλές και η παράλληλη εκτέλεση σταματάει συχνά Η λύση είναι να επιτρέπουμε την εκτέλεση εντολών πίσω από εντολές που περιμένουν ακόμα αποτελέσματα, αρκεί αυτές να μπορούν να εκτελεστούν Λέγεται εκτέλεση εκτός σειράς (out of order issue/execution) Αλλά τι συμβαίνει με τα αποτελέσματα αυτών των εντολών αν η παγωμένη εντολή τελικά αποτύχει; 8

Εκτέλεση εκτός σειράς Η εγγραφή αποτελεσμάτων σπάει σε δύο στάδια: εγγραφή και παράδοση (commit) Τα αποτελέσματα εντολών γράφονται σε προσωρινό χώρο αποθήκευσης και μπορούν να χρησιμοποιηθούν από επόμενες εντολές Αλλά η εντολή δεν έχει τελειώσει ακόμη μέχρι το στάδιο της παράδοσης (που γίνεται με τη σειρά του προγράμματος) Οι πραγματικές τιμές ανανεώνονται μόνο όταν μια εντολή φτάσει στο στάδιο παράδοσης 9

Προβλήματα 2 Οι εντολές διακλάδωσης περιορίζουν τον αριθμό εντολών που μπορούν να εκτελεστούν ταυτόχρονα το πρόβλημα υπάρχει και σε απλούς διοχετευμένους υπολογιστές Δεν μπορούμε να περιμένουμε το αποτέλεσμα/απόφαση της εντολής διακλάδωσης είναι πολύ συχνές Λύση: πρόβλεψη διακλάδωσης (branch prediction) 10

Πρόβλεψη διακλάδωσης Γενικά οι διακλαδώσεις μεταβιβάζουν τη ροή του προγράμματος στο ίδιο σημείο τις (συντριπτικά) περισσότερες φορές π.χ. διακλάδωση στην αρχή ενός βρόγχου while. Ένας απλός τρόπος πρόβλεψης είναι αν η διακλάδωση είναι προς τα πίσω (υπονοείται επανάληψη) ή προς τα εμπρός (μάλλον συνθήκη) Αν η πρόβλεψη είναι σωστή, δε χρειάζεται καμία δράση Αν είναι λάθος, πρέπει να αρχίσει να φέρνει ο επεξεργαστής τις κατάλληλες εντολές και να ακυρώσει αυτές που έχει ήδη φέρει από λάθος 11

Πρόβλεψη διακλάδωσης Κρατώντας πληροφορίες για την προηγούμενη «συμπεριφορά» των διακλαδώσεων, μπορούμε να προβλέψουμε τι απόφαση θα πάρουν τώρα Δύο είδη ιστορίας: τι έκανε η συγκεκριμένη εντολή διακλάδωσης στο παρελθόν τι έκαναν οι προηγούμενες N διακλαδώσεις (συνεχόμενες διακλαδώσεις σχετίζονται: π.χ. πολλαπλά if-then-else-if- ) Η «ιστορία» κρατιέται σε πίνακες και όταν φέρνει ο επεξεργαστής μια εντολή από τη μνήμη, κοιτάει αν η διεύθυνση είναι στον πίνακα και τί πρόβλεψη υπάρχει για την διεύθυνση της επόμενης εντολής 12

Φτάνοντας στα όρια Σε ένα πρόγραμμα που επινοήθηκε για να εκτελείται σειριακά, με τα παραπάνω φτάνουμε στα όρια του πόσο γρήγορα μπορούμε να το εκτελέσουμε δηλαδή πόσο παραλληλισμό μπορούμε να ανακαλύψουμε χωρίς να αλλάξει το πρόγραμμα (instruction-level parallelism) Για ακόμη ταχύτερη εκτέλεση χρειάζεται παραλληλισμός σε επίπεδο προγράμματος η εφαρμογή πρέπει να «σπάσει» σε προγράμματα/νήματα (threads) που μπορούν να εκτελεστούν παράλληλα και να συνεργαστούν 13

Multi/hyper threading «Ταυτόχρονη» εκτέλεση δύο (ή περισσότερων) νημάτων στον ίδιο πυρήνα Κάποια στοιχεία του πυρήνα είναι κοινά αριθμητικές λογικές μονάδες, θύρες μνήμης,.. Και κάποια σε πολλά αντίγραφα καταχωρητές, PC, Βασική ιδέα: εκμετάλευση των μονάδων που δεν μπορεί να αξιοποιήσει ένα νήμα από άλλα αν ένα νήμα «κολήσει» περιμένοντας, π.χ. την κύρια μνήμη, ένα άλλο συνεχίζει ή εναλλαγή νημάτων: ένα διαφορετικό σε κάθε κύκλο ρολογιού 14

Πολυεπεξεργασία Πραγματικά ξεχωριστοί πυρήνες εκτελούν ανεξάρτητα ή συνεργαζόμενα προγράμματα Καλύτερος τρόπος εκμετάλευσης του νόμου του Moore τα πλεονεκτήματα αύξησης ρυθμού ρολογιού ή/και αριθμητικών μονάδων είναι μικρότερα Συχνά μοιράζονται κάποια επίπεδα κρυφής μνήμης 15

Μονάδες ειδικού σκοπού Στο παρελθόν: μονάδες εκτέλεσης πράξεων κινητής υποδιαστολής Τώρα: Μονάδες επεξεργασίας γραφικών (GPU graphics processing unit) εξειδικευμενοι, παράλληλοι επεξεργαστές για υπολογισμούς σχετικούς με γραφικά χρησιμοποιούνται επίσης και για γενικού σκοπού υπολογισμούς με κάποιους περιορισμούς 16

Μονάδες διανυσμάτων Εκτέλεση πράξεων σε διανύσματα δλδ πολλούς αριθμούς ταυτόχρονα Γνωστές ως SIMD: single-instruction multiple data Εντολές σε x86 λέγονται MMX, SSEx Συνηθισμένοι υπολογιστές είναι SISD (.. single data) 17

Προσπέλαση μνήμης Τα προηγούμενα υπέθεταν ότι η μνήμη είναι τόσο γρήγορη που μπορεί να προσπελαστεί σε 1 κύκλο ρολογιού Στην πραγματικότητα η μνήμη είναι διαφορετική από την «όψη» που έχει για τον προγραμματιστή: ένας τεράστιος πίνακας αποθήκευσης με σταθερό (μικρό) χρόνο προσπέλασης Υπάρχει μια ιεραρχία διαφορετικών δομών μνήμης που δίνει την παραπάνω ψευδαίσθηση ως προς το μικρό χρόνο προσπέλασης 18

Τεχνολογίες μνήμης Δεν υπάρχει (σήμερα) κατάλληλη τεχνολογία για να κατασκευαστεί μνήμη όπως υποθέτει το θεωρητικό μοντέλο ενός υπολογιστή που χρησιμοποιούν οι γλώσσες προγραμματισμού Χωρητικότητα Κόστος/τιμή Ταχύτητα - + + καταχωρητές κρυφή μνήμη κύρια μνήμη + - - δίσκος 19

Αρχή του Pareto Γενική παρατήρηση σε διάφορους τομείς: χονδρικά το 80% των αποτελεσμάτων προέρχεται από το 20% των αιτιών, π.χ. το 80% του αρακά προέρχεται από το 20% των περικάρπιων! Στην επιστήμη των υπολογιστών: το 80% των προσπελάσεων μνήμης προέρχεται από το 20% των εντολών (γλώσσας μηχανής) Σχετικά με τη μνήμη, το παραπάνω προκαλεί τη τοπικότητα των αναφορών (locality of reference): χρονική τοπικότητα (temporal locality) χωρική τοπικότητα (spatial locality) 20

Τοπικότητα αναφορών Χρονική μια θέση μνήμης που προσπελαύνεται είναι πολύ πιθανό να προσπελαστεί ξανά σύντομα στο μέλλον Χωρική αν μια θέση μνήμης προσπελαστεί, τότε είναι πολύ πιθανό να προσπελαστούν κοντινές θέσεις μνήμης Εκμετάλευση της τοπικότητας αναφορών από τη κρυφή μνήμη (cache memory): μια μικρή, γρήγορη μνήμη που κρατάει αντίγραφα των δεδομένων της κύριας μνήμης που έχουν προσπελαστεί πρόσφατα και άλλα δεδομένα που βρίσκονται κοντά σε αυτά 21

Κρυφή μνήμη Κατασκευασμένη από ακριβή, γρήγορη στατική μνήμη (SRAM) και ενσωματωμένη (πλέον) στο ίδιο Ο.Κ. με τον επεξεργαστή Όταν ο επεξεργαστής ζητάει μια λέξη μνήμης (π.χ. 32 bit), για πρώτη φορά, η λέξη και άλλες γειτονικές (λέγεται γραμμή, cache line ή cache block) διαβάζεται από την κύρια μνήμη και αντιγράφεται στην κρυφή. Όταν αργότερα γίνει προσπέλαση στην ίδια ή κάποια γειτονική λέξη, η κρυφή μνήμη αποκρίνεται γρήγορα Χρόνοι προσπέλασης Κρυφή μνήμη: λίγοι (1-5) κύκλοι ρολογιού Κύρια μνήμη: ~1000άδες κύκλοι ρολογιού 22