Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (ΙI) (κύρια και κρυφή μνήμη) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης
Ένα τυπικό υπολογιστικό σύστημα σήμερα συχνά και το σύστημα γραφικών μέσα στον επεξεργαστή οθόνη διασυνδετικός δίαυλος CPU core... κρυφή μνήμη (1 ου ου,2 ου ου επιπέδου) CPU core κρυφή μνήμη (1 ου,2 ου επιπέδου) > 90GB/s κρυφή μνήμη (3 ου ου επιπέδου) σύστημα γραφικών PCIe (x16) έως 8GB/s north bridge M-bus (mem bus) 25+ GB/s (multi-channel) DRAM ποντίκι, πληκτρολόγιο, εκτυπωτές, σαρωτές... USB έως 5Gbit/s south bridge SATA 600ΜB/s σκληροί δίσκοι, CD/DVD, δικτυακή σύνδεση έως 500ΜB/s οι ρυθμοί μεταφοράς που δίνονται είναι οι θεωρητικά μέγιστοι! Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 2
Κύρια μνήμη Βασικό υποσύστημα του υπολογιστή Αποθήκευση δεδομένων και προγραμμάτων Συλλογή από θέσεις αποθήκευσης Σε κάθε θέση αποθηκεύεται μία ποσότητα των n bits n = εύρος (συχνά: 1 byte) αλλά και 16 ή 32 bits (2 ή 4 bytes, λέξη ) Σε κάθε θέση αντιστοιχεί μία μοναδική διεύθυνση (address) μη προσημασμένος δυαδικός αριθμός με m bits επιλέγουμε μεταξύ 2 m διευθύνσεων Χώρος διευθύνσεων μνήμης: 0...2 m - 1 Συνολική χωρητικότητα μνήμης: 2 m x n bits Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 3
Μοντέλο λειτουργίας μνήμης Μνήμη Περιεχόμενα Διεύθυνση Αναγν./Εγγρ. Δεδομένα 0 1 2 3 07 22 3F 65 00 Διευθύνσεις μνήμης Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 4
Ανάγνωση από μνήμη Μνήμη Περιεχόμενα 2 0 07! Ακόμα κι όταν το προγραμματιστικό μοντέλο επιτρέπει την ανάγνωση ή εγγραφή μεμονωμένων bytes, η φυσική επικοινωνία με τη μνήμη γίνεται σε λέξεις (πολλαπλά bytes) ΚΜΕ Αναγν. 3F 1 22 2 3F 3 65 00 Διευθύνσεις μνήμης Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 5
Εγγραφή στη μνήμη Μνήμη Περιεχόμενα 2 0 07 ΚΜΕ Εγγρ. 1 2 22 99 3 65 99 00 Διευθύνσεις μνήμης Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 6
Μονάδες μέτρησης χωρητικότητας μνήμης! Προσοχή! Μόνο η χωρητικότητα της μνήμης μετράται σε δυνάμεις του 2! 1 Byte = 8 bits 1 KiloByte (KB) = 2 10 Bytes 1.024 Bytes 1 MegaByte (MB) = 2 10 KB = 2 20 Bytes 1.048.576 Bytes 1 GigaByte (GB) = 2 10 MB = 2 20 KB = 2 30 bytes 1.073.741.824 Bytes Κλπ Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 7
Τεχνολογίες μνημών i κελί (cell): ο χώρος αποθήκευσης ενός bit. DRAM: 1 τρανζίστορ/κελί SRAM: 6 τρανζίστορ/κελί τυχαίας προσπέλασης Random Access Memory (RAM) Ανάγνωση-Εγγραφή Στατική (SRAM) και δυναμική (DRAM) Διαφορετική μέθοδος υλοποίησης κελιών (cells) μνήμης SRAM: πολύ γρήγορη μικρότερη ολοκλήρωση (χρήση: κρυφή μνήμη) DRAM: αργότερη μεγάλη ολοκλήρωση (χρήση: κύρια μνήμη) Απαιτείται περιοδική ανανέωση των δεδομένων κάθε 16 έως 128 ms (DRAM refresh) Και στις δύο χάνονται τα δεδομένα με τη διακοπή της τροφοδοσίας Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 8
Τεχνολογίες μνημών Μνήμες μόνιμης αποθήκευσης Διατήρηση δεδομένων χωρίς τροφοδοσία Μόνο για ανάγνωση Read Only Memory (ROM) Ακολουθεί το κλασσικό μοντέλο μνήμης Αποθήκευση κώδικα αρχικοποίησης υπολογιστή Αργή ανάγνωση-εγγραφή αλλά μαζική αποθήκευση FLASH Μοιάζει με δίσκο αποθήκευσης κι όχι με το κλασικό μοντέλο μνήμης Ανάγνωση-εγγραφή μπλοκ δεδομένων Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 9
σήματα ελέγχου σήματα ελέγχου διεύθυνση διεύθυνση Παράδειγμα: οργάνωση μνήμης DRAM μέρος της διεύθυνσης επιλέγει γραμμή του πίνακα κελιών πολλαπλοί πίνακες (banks) κελιών μνήμης δεδομένα ανάγνωσης-εγγραφής μέρος της διεύθυνσης επιλέγει στήλες του πίνακα κελιών [Micron] Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 10
Διασύνδεση επεξεργαστή-μνήμης Δίαυλος Διευθύνσεων ADDR Τσιπ Μνήμης ΚΜΕ Δίαυλος Δεδομένων DATA! Δίαυλοι: ομάδες αγωγών διασύνδεση για τη μεταφορά πληροφορίας. Ο ρυθμός μεταφοράς στους διαύλους επηρεάζει τη συνολική απόδοση του υπολογιστή! Δίαυλος Ελέγχου Διεύθυνση Προς/από πού γίνεται η προσπέλαση; Δεδομένα Τα δεδομένα ανάγνωσης/εγγραφής R/W κ.ά. Έλεγχος Ανάγνωση ή εγγραφή; - συγχρονισμός μεταφοράς Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 11
Επιλέγοντας στόχο: chip select Δίαυλος Διευθύνσεων ΚΜΕ Δίαυλος Δεδομένων Δίαυλος Ελέγχου i Chip Select: σήμα επίτρεψης. Επιλέγει έναν από πολλούς στόχους για τη μεταφορά δεδομένων. Στο διπλανό σχήμα, μπορεί να θεωρηθεί ως μέρος της διεύθυνσης CS0 CS1 Τσιπ Μνήμης CS2 Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 12
Η κύρια μνήμη σήμερα Υποσύστημα κύριας μνήμης Μεγάλες χωρητικότητες (GBs) Μεγάλο εύρος (bits) διαύλου μεταφοράς Για την ικανοποίηση των αναγκών των ΚΜΕ 64 και πλέον bits ανά μεταφορά 400 ΜTransfers/sec, 3.2 GB/s Βελτιστοποιήσεις απόδοσης Για τον ελάχιστο χρόνο προσπέλασης δεδομένων Ελεγκτής κύριας μνήμης Λόγω της πολυπλοκότητας διασύνδεσης Μια ΚΜΕ δεν συνδέεται απευθείας στη μνήμη Αλλά: παρεμβολή ελεγκτή μνήμης Το μοντέλο προσπέλασης δεν αλλάζει Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 13
Διασύνδεση επεξεργαστή-μνήμης Δίαυλος Διευθύνσεων Μνήμη ΚΜΕ Δίαυλος Δεδομένων Ελεγκτής DRAM DRAM Δίαυλος Ελέγχου Ελεγκτής κύριας μνήμης Μετατρέπει τις αιτήσεις ανάγνωσης-εγγραφής της ΚΜΕ στις κατάλληλες εντολές προς τα τσιπ κύριας μνήμης (DRAM) Αναλαμβάνει και την ανανέωση (DRAM refresh) Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 14
Ιεραρχία Μνήμης Κρυφή μνήμη Προσέγγιση της ιδανικής μνήμης Ο επεξεργαστής βλέπει μνήμη Με την ταχύτητα του υψηλότερου επιπέδου Και το μέγεθος του χαμηλότερου επιπέδου CPU 0,5-5ns $4.000-$10.000/GB 50-70ns $100-$200/GB 5.000.000-20.000.000 ns $0,5-$2/GB Κρυφή μνήμη (SRAM) Κύρια μνήμη (DRAM) Μαγνητικοί δίσκοι Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 15
Κρυφή μνήμη Κρυφή μνήμη (cache memory) Κύρια Μνήμη ΚΜΕ κρυφή μνήμη Μεταξύ ΚΜΕ και κύριας μνήμης Περιέχει ένα μέρος μόνο των περιεχομένων της κύριας μνήμης Διαφορετικές θέσεις κύριας μνήμης φορτώνονται στην ίδια θέση της κρυφής! (αντικατάσταση) Γρηγορότερη από κύρια μνήμη Εκμετάλλευση της τοπικότητας των προσπελάσεων Διαχείριση από υλικό διαφανής στο λογισμικό! Σήμερα: κρυφή μνήμη σε πολλά επίπεδα (L1, L2, L3) Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 16 0 1 2 3 07 22 99 65 00
Η αρχή της τοπικότητας Κρυφή μνήμη Χρονική Τοπικότητα Εάν προσπελαστεί μια θέση μνήμης, είναι πολύ πιθανό να προσπελαστεί ξανά στο άμεσο μέλλον Π.χ. για εντολές ενός βρόχου (loop) Χωρική Τοπικότητα Εάν προσπελαστεί μια θέση μνήμης, είναι πολύ πιθανό να προσπελαστούν και οι γειτονικές θέσεις στο άμεσο μέλλον Εντολές προγραμμάτων Δεδομένα σε πίνακες κλπ Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 17
Μπλοκ (γραμμές) κρυφής μνήμης Κρυφή Μνήμη Οι σύγχρονοι επεξεργαστές διαθέτουν κρυφές μνήμες (L1) με μέγεθος μπλοκ έως 64 bytes Όταν πρέπει να μεταφερθεί μια λέξη, μεταφέρεται όλο το μπλοκ που την περιέχει Πιθανότατα εκτοπίζοντας κάποιο άλλο μπλοκ που βρίσκεται στην ίδια θέση Η θέση του μπλοκ στην κρυφή μνήμη υπολογίζεται με διάφορους τρόπους Το σύστημα κύριας μνήμης έχει βελτιστοποιηθεί αρχιτεκτονικά για μεταφορές μπλοκ ΚΜΕ μπλοκ μπλοκ μπλοκ κρυφή μνήμη Κύρια μνήμη (DRAM) λέξεις Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 18
Ανάγνωση μέσω της κρυφής μνήμης Κρυφή μνήμη 1. Ανάγνωση από θέση μνήμης Α ΚΜΕ 2α. Ναι, υπάρχει στην κρυφή μνήμη: επιστροφή περιεχομένου θέσης Α (π.χ. σε 4 κύκλους ρολογιού) 2β. Όχι, δεν υπάρχει στην κρυφή μνήμη: Ανάγνωση θέσης Α από κύρια μνήμη κρυφή μνήμη 3β. Τα δεδομένα από την κύρια μνήμη προωθούνται στην κρυφή και στην ΚΜΕ (π.χ. σε 100 κύκλους) Κύρια μνήμη (DRAM) Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 19
Εγγραφή μέσω της κρυφής μνήμης Κρυφή μνήμη 1. Εγγραφή στη θέση μνήμης Α ΚΜΕ 2α. Ναι, Α υπάρχει στην κρυφή μνήμη (παλιά δεδομένα): Ενημέρωση κρυφής μνήμης με νέα 2β. Όχι, Α δεν υπάρχει στην κρυφή μνήμη: Ανάγνωση θέσης Α από κύρια μνήμη (παλιά δεδομένα!) κρυφή μνήμη 3β. Τα δεδομένα από την κύρια μνήμη προωθούνται στην κρυφή όπου εισάγεται η νέα τιμή του Α από ΚΜΕ Κύρια μνήμη (DRAM) Εισαγωγή στην Επιστήμη των Υπολογιστών Οργάνωση Υπολογιστών (IΙ) 20