Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ιεραρχίες Μνήμης – Δευτερεύουσα Μνήμη.

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Προηγμενη ευρετηριαση δεδομενων
Advertisements

Indexing.
5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
ΨΗΦΙΑΚΗ ΜΝΗΜΗ (RAM – ROM).
Εισαγωγικές έννοιες πληροφορικής
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Αποθήκευση Δεδομένων.
Αποθήκευση Δεδομένων Βάσεις Δεδομένων Ευαγγελία Πιτουρά.
Κώστας Διαμαντάρας Τμήμα Πληροφορικής ΤΕΙ Θεσσαλονίκης 2011 Πολυεπεξεργαστές.
Computers: Information Technology in Perspective By Long and Long Copyright 2002 Prentice Hall, Inc. Δευτερεύουσες Μονάδες Α π οθήκευσης Δεδομένων Διάλεξη.
ΕΡΓΑΣΙΑ: ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΣΚΛΗΡΟΥ ΔΙΣΚΟΥ
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (2).
Το υλικο του Υπολογιστη
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Πρώτο Αρχιτεκτονική.
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Εισαγωγή στους Η/Υ Πίνακες.
ΣΤΟΙΧΕΙΑ ΨΕΥΔΟΚΩΔΙΚΑ ΒΑΣΙΚΕΣ ΔΟΜΕΣ ΒΑΣΙΚΟΙ ΑΛΓΟΡΙΘΜΟΙ ΠΙΝΑΚΩΝ
Ζητήματα Σελιδοποίησης
ΠΡΟΗΓΜΕΝΗ ΕΥΡΕΤΗΡΙΑΣΗ ΔΕΔΟΜΕΝΩΝ Ταξινόμηση – Αναζήτηση.
Ομάδα: Καστρινάκης Λευτέρης Πενταράκης Νίκος
By Τζέρυ, Κώστας και Λέντι. είναι όρος που χρησιμοποιούμε για ηλεκτρονικές διατάξεις προσωρινής αποθήκευσης ηλεκτρονικές οι οποίες επιτρέπουν πρόσβαση.
Μνήμη και Προγραμματίσιμη Λογική
Γυμνάσιο Νέας Κυδωνίας
Εργασία Η υλοποίηση του αλγορίθμου συγχώνευσης θα πρέπει να χρησιμοποιεί την ιδέα των ροών (streams). Θα πρέπει να υπάρχουν δύο διαφορετικά είδη.
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Συστήματα Μνήμης – Βασικές Αρχές Cache.
Και Αρχικό: Γεωργακή Ιφιγένεια – Τροποποίηση: Τσούτσουρας Σπύρος Μέρος Β΄
ΕΙΣΑΓΩΓΗ ΜΑΘΗΜΑ 1.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Τα θέματα μας σήμερα Ηλεκτρονικοί υπολογιστές Υλικό και λογισμικό
ΓΝΩΡΙΖΩ ΤΟΝ ΗΛΕΚΤΡΟΝΙΚΟ ΥΠΟΛΟΓΙΣΤΗ
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Διαχείριση μνήμης Υπόβαθρο Εναλλαγή Συνεχής κατανομή Σελιδοποίηση
ΣΥΝΑΡΤΗΣΕΙΣ.
Στο μάθημα αυτό θα περιγραφεί η βασική εσωτερική δομή ενός συστήματος υπολογιστή και ιδιαίτερα τα χαρακτηριστικά και η λειτουργία της Κεντρικής Μονάδας.
Ο ΗΛΕΚΤΡΟΝΙΚΟΣ ΥΠΟΛΟΓΙΣΤΗΣ
Κεφάλαιο 2 Το Εσωτερικό του υπολογιστή
Αναφερόμαστε στους σημερινούς υπολογιστές με τον όρο «», δηλαδή ένα σύνολο συσκευών και προγραμμάτων. Αναφερόμαστε στους σημερινούς υπολογιστές με τον.
ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ A’ μέρος
Το Υλικό του Υπολογιστή
Ο προσωπικός υπολογιστής εσωτερικά
Μοντέλα - Αλγόριθμοι – Ταξινόμηση Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων)
Εισαγωγή στις Νέες Τεχνολογίες και Εργαστηριακές Εφαρμογές, Το εσωτερικό ενός υ π ολογιστή Κεφάλαιο 3.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
Μονάδες μέτρησης πληροφορίας και χώρου στους Η/Υ
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
ΜΝΗΜΗ RAM Εισαγωγή Μια μονάδα μνήμης στην ουσία είναι ένα σύνολο από δυαδικά κύτταρα αποθήκευσης (τα δυαδικά κύτταρα μπορούν να αποθηκεύσουν είτε την.
Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ροές Δεδομένων (3 ο Μέρος)
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ -- Δ. Σερπάνος 1 Κεφάλαιο 5.
Αρχιτεκτονική-ΙI Ενότητα 4 : Μνήμες Ιωάννης Έλληνας Τμήμα Η/ΥΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
Κύρια Μνήμη Διάφοροι τύποι μνήμης RAM Από πάνω προς τα κάτω, DIP, SIPP, SIMM (30-pin), SIMM (72-pin), DIMM (168-pin), DDR DIMM (184-pin). Μνήμη RΟM.
1 Είδη μέσων αποθήκευσης Πρωτεύοντα μέσα αποθήκευσης κεντρική μνήμη και όλες οι υπόλοιπες μνήμες (π.χ καταχωρητές, cache memory) Δευτερεύοντα μέσα αποθήκευσης.
Δευτερεύουσες Μονάδες Α π οθήκευσης Δεδομένων Διάλεξη 4.
Μαγνητικός δίσκος (magnetic disk) Εισαγωγή στην Πληροφορκή1 Ο μαγνητικός δίσκος χρησιμοποιείται για μόνιμη αποθήκευση δεδομένων, παρέχοντας σχετικά μικρό.
1 Κεφάλαιο 2 Το 1956 η IBM κατασκεύασε τον πρώτο δίσκο με την ονομασία RAMAC (random access method for accounting and control) με χωρητικότητα 5 MBytes.
Το εσωτερικό ενός υπολογιστή
Δυναμικός Κατακερματισμός
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
Morgan Kaufmann Publishers
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (2).
Ασκήσεις Caches
Το εσωτερικό ενός υπολογιστή
2 Στοιχεία Hardware H/Υ Αρχιτεκτονική Υπολογιστικού Συστήματος
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
ΣΥΓΧΡΟΝΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Τρίτη Έκδοση ANDREW S
Βασικές έννοιες (Μάθημα 2) Τίτλος: Η Συσκευή
Εξωτερική Αναζήτηση Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη
Στο μάθημα αυτό θα περιγραφεί η βασική εσωτερική δομή ενός συστήματος υπολογιστή και ιδιαίτερα τα χαρακτηριστικά και η λειτουργία της Κεντρικής Μονάδας.
Μεταγράφημα παρουσίασης:

Advanced Data Indexing (Προηγμένη ευρετηρίαση δεδομένων) Ιεραρχίες Μνήμης – Δευτερεύουσα Μνήμη

Το Κενό Μεταξύ CPU και Μνήμης

Τοπικότητα  Η Αρχή της Τοπικότητας :  Τα προγράμματα τείνουν να χρησιμοποιούν δεδομένα και εντολές που βρίσκονται « κοντά » χωρικά ή χρονικά σε αυτά που χρησιμοποιήσαμε πρόσφατα.  Χρονική Τοπικότητα : Στοιχεία που προσπελάσθηκαν πρόσφατα είναι πιθανό να προσπελασθούν πάλι στο κοντινό μέλλον.  Χωρική τοπικότητα : Τα στοιχεία που βρίσκονται σε κοντινές διευθύνσεις μνήμης τείνουν να προσπελαύνονται κοντά σε σχέση με το χρόνο. Παράδειγμα Τοπικότητας : Δεδομένα –Προσπέλαση στοιχείων πίνακα στη σειρά : –Αναφορά στο sum σε κάθε επανάληψη : Εντολές –Προσπέλαση εντολών στη σειρά : –Προσπέλαση εντολών σε επανάληψη : sum = 0; for (i = 0; i < n; i++) sum += a[i]; return sum; Χωρική Χρονική Υ π άρχουν εντολές σε π ρογράμματα π ου κάνουν κακό χειρισμό της το π ικότητας ;

 Ισχυρισμός : Αν κοιτώντας ένα κομμάτι κώδικα μπορείτε να πάρετε μία άποψη σχετικά με την τοπικότητα του τότε είστε καλοί προγραμματιστές !  Ερώτηση : Έχει η παρακάτω συνάρτηση καλή τοπικότητα ; int sumarrayrows(int a[M][N]) { int i, j, sum = 0; for (i = 0; i < M; i++) for (j = 0; j < N; j++) sum += a[i][j]; return sum } Παράδειγμα Τοπικότητας

 Ερώτηση : Έχει η παρακάτω συνάρτηση καλή τοπικότητα ; int sumarraycols(int a[M][N]) { int i, j, sum = 0; for (j = 0; j < N; j++) for (i = 0; i < M; i++) sum += a[i][j]; return sum }

Τοπικότητα  Εξαρτάται φυσικά από το πώς αποθηκεύεται ο πίνακας στην κύρια μνήμη ( κατά γραμμές ή κατά στήλες, ή αν συμπιέζεται [Sparse Matrices], κλπ. ) Ν Μ -1 In row-major storage, a multidimensional array in linear memory is organized such that rows are stored one after the other. It is the approach used by the C programming language, among others.C programming language Also used in the scientific programming languages Fortran and Julia, the matrix-oriented languages MATLAB, etc.FortranJuliaMATLAB

Ιεραρχία Μνήμης  Μερικές θεμελιώδεις και διηνεκείς ιδιότητες του υλικού και του λογισμικού :  Οι μνήμες υψηλής ταχύτητας κοστίζουν περισσότερο ανά byte και έχουν μικρότερη χωρητικότητα.  Το κενό απόδοσης μεταξύ CPU και κύριας μνήμης μεγαλώνει ολοένα και περισσότερο.  Τα καλώς γραμμένα προγράμματα τείνουν να έχουν καλή τοπικότητα.  Αυτές οι θεμελιώδεις ιδιότητες συμπληρώνουν η μία την άλλη.  Υπονοούν ότι η καλύτερη οργάνωση του συστήματος μνήμης είναι ιεραρχική.

Ιεραρχία Μνήμης (2-Level Cache) Καταχω - ρητές L 1 cache στο chip (SRAM) Κύρια μνήμη (DRAM) Τοπική δευτερεύουσα μνήμη ( τοπικός δίσκος ) Μεγαλύτερες, Αργότερες, και φθηνότερες ( ανά byte) συσκευές μνήμης Απομακρυσμένη δευτερεύουσα μνήμη ( κατανεμημένα συστήματα αρχείων, Web servers) Οι τοπικοί δίσκοι αποθηκεύουν αρχεία από δίσκους σε δικτυακούς εξυπηρετητές. Η κύρια μνήμη αποθηκεύει μπλοκ από τους τοπικούς δίσκους L 2 cache εκτός chip(SRAM) H L 1 αποθηκεύει γραμμές μνήμης από την L 2 μνήμη. Οι καταχωρητές αποθηκεύουν λέξεις της L 1 κρυφής μνήμης (L 1 cache). H L 2 αποθηκεύει γραμμές μνήμης από την κύρια μνήμη. L0:L0: L1:L1: L2:L2: L3:L3: L4:L4: L5:L5: Μικρότερες, γρηγορότερες, και πιο ακριβές ( ανά byte) συσκευές μνήμης

Ιεραρχία Μνήμης (3-Level Cache)

Ιεραρχία Μνήμης σε Τυπικούς Η / Υ CPU καταχωρητές CPU καταχωρητές CacheCache Κύρια Μνήμη Memory Bus Ι / Ο συσκευές Ι / Ο Bus Μέγεθος:1-8ΚΒ 512ΚΒ-8ΜΒ 1GB-16GB100GB-1TB Ταχύτητα:0.25ns1ns 30ns 8ms

Ιεραρχία Μνήμης Μεγαλύτερη, αργότερη, φθηνότερη συσκευή μνήμης στο επίπεδο k+1, τα δεδομένα διαιρούνται σε μπλοκ. Τα δεδομένα αντιγράφονται μεταξύ επιπέδων σε μπλοκ Μικρότερη, γρηγορότερη, πιο ακριβή, συσκευή μνήμης στο επίπεδο k περιέχει ένα υποσύνολο μπλοκ του επιπέδου k+1 Επίπεδο k: Επίπεδο k+1: Το μ π λοκ μεταξύ Κύριας Μνήμης και Cache λέγεται γραμμή Cache (cache line)

Αίτηση για 14 Αίτηση για 12 Μερικές Γενικές Έννοιες  Το πρόγραμμα χρειάζεται το αντικείμενο d, που αποθηκεύεται σε κάποιο μπλοκ b.  Cache Επιτυχία  Το πρόγραμμα βρίσκει το b στην μνήμη επιπέδου k. (π.χ. μπλοκ 14)  Cache Αποτυχία  Το b δεν είναι στο επίπεδο k, και άρα πρέπει να το φέρουμε από το k+1. (π.χ. μπλοκ 12)  Αν η μνήμη επιπέδου k είναι γεμάτη, τότε κάποιο μπλοκ πρέπει να αντικατασταθεί. Ποιο είναι το «θύμα»; Πολιτική Τοποθέτησης: που θα πάει το νέο μπλοκ; (π.χ. με b mod 4 θύμα το 4 στη θέση 0) Πολιτική Αντικατάστασης: ποιο μπλοκ πρέπει να αντικατασταθεί; (π.χ. LRU) Επίπεδο k: Επίπεδο k+1: * Αίτηση για 12 4* Πλήρως συσχετίσιμη 2. Μερικώς συσχετίσιμη 3. Ευθέως συσχετίσιμη

Πολιτική Τοποθέτησης  Πολιτική τοποθέτησης:  Πλήρως συσχετίσιμη: Το νέο μπλοκ μπορεί να πάει οπουδήποτε στην cache  Μερικώς συσχετίσιμη: Το νέο μπλοκ μπορεί να πάει μόνο σε συγκεκριμένες θέσεις στην cache, N-way associative ( σε N θέσεις ).  Ευθέως συσχετίσιμη: Το νέο μπλοκ μπορεί να πάει μόνο σε μία συγκεκριμένη θέση στην cache.

Ευθέως συσχ.: Το 12 μπορεί να πάει στο μπλοκ 4 (12 mod 8) Μερικώς συσχ.: Το 12 πάει οπουδήποτε στο σύνολο 0 (12 mod 4) Πλήρως συσχ. : Το 12 μπορεί να πάει οπουδήποτε Block Χώρος Μνήμης: Πολιτική Τοποθέτησης ( παράδειγμα ) Επίπεδο k+1: Επίπεδο k:

Μερικές Γενικές Έννοιες  Τύποι αποτυχιών:  Αναγκαστική αποτυχία: Συμβαίνει επειδή η μνήμη είναι άδεια.  Αποτυχία Σύγκρουσης Συμβαίνει όταν έχουμε περιορισμένη συσχέτιση. Π.χ. το μπλοκ i στο επίπεδο k+1 πρέπει να τοποθετηθεί στο μπλοκ (i mod 4) στο επίπεδο k. Αναφορά στα μπλοκ 0, 8, 4, 8, 0, 4,... θα έδινε αποτυχία κάθε φορά.  Αποτυχία Χωρητικότητας Συμβαίνει όταν το σύνολο των ενεργών μπλοκ (σύνολο εργασίας – working set) είναι μεγαλύτερο από την μνήμη επιπέδου k.

Πολιτική Αντικατάστασης  Μερικοί Αλγόριθμοι αντικατάστασης :  LRU (Least Recently Used): Αντικατάσταση του παλαιότερα χρησιμοποιημένου στοιχείου.  MRU (Most Recently Used): Αντικατάσταση του πιο πρόσφατα χρησιμοποιημένου στοιχείου.  LFU (Least Frequently Used): Αντικατάσταση του πιο σπάνια χρησιμοποιημένου στοιχείου.  RR (Random Replacement): Τυχαία Αντικατάσταση. 

Χαρακτηριστικά ενός Η / Υ Dell 650 Ταχύτητα CPU 2.4 – 3.2 GHz L3 cache μέγεθος 0.5 – 2 MB Μνήμη 1/4 – 4 GB Δίσκος 36 GB– 146 GB – RPM CD/DVD 8 – 48x L2 cache μέγεθος 256 – 512 KB L2 cache line μέγεθος 128 Bytes L1 cache line μέγεθος 64 Bytes L1 cache μέγεθος 16 KB Dell’s homepage July 2004

Οι Αλγοριθμικές Προκλήσεις  Το υλικό δεν είναι ομοιόμορφο – πολλές παράμετροι  Πλήθος επιπέδων μνήμης  Μέγεθος cache  Cache γραμμή/μέγεθος μπλοκ δίσκου  Συσχέτιση Cache  Cache πολιτική αντικατάστασης  Ταχύτητα CPU/BUS/μνήμης…  Τα προγράμματα θα πρέπει ιδεατά να τρέχουν για διαφορετικές τιμές παραμέτρων  Γνωρίζοντας τις παραμέτρους κατά το χρόνο εκτέλεσης ή  Γνωρίζοντας εξαρχής μερικές βασικές παραμέτρους ή  Αγνοώντας την μνήμη ιεραρχίας  Τα προγράμματα εκτελούνται σε απρόβλεπτες συνθήκες  Γενικές βιβλιοθήκες λογισμικού  Κώδικας που κατεβαίνει από το διαδίκτυο, Java applets  Δυναμικά περιβάλλοντα, π.χ. πολλαπλές διεργασίες Πράξη

Κάποια Βασικά για τις Ιεραρχικές Μνήμες CPUL1L2 A R M L3 Δίσκος Πρόβλημα Αυξανόμενος χρόνος προσπέλασης και μέγεθος Χρόνος Προσπέλασης Σε σχέση με CPU Register0.5 ns1 L1 cache0.5 ns1-2 L2 cache3 ns2-7 DRAM50 ns Δίσκος10 ms10 7 Αυξημένο 32B 64B 8KB “The difference in speed between modern CPU and disk technologies is analogous to the difference in speed in sharpening a pencil using a sharpener on one’s desk or by taking an airplane to the other side of the world and using a sharpener on someone else’s desk.” (D. Comer)

Γεωμετρία Δίσκου ( με κινητά μέρη )  Οι σκληροί δίσκοι αποτελούνται από έναν δίσκο, με δύο επιφάνειες.  Κάθε επιφάνεια αποτελείται από ομόκεντρους κύκλους, που ονομάζονται τροχιές (tracks) ή αυλάκια.  Κάθε τροχιά αποτελείται από τομείς (sectors) που χωρίζονται με κενά. Άξονας περιστροφής επιφάνεια τροχιά τροχιά k τομείς κενά

Γεωμετρία Δίσκου ( Πολλαπλοί Δίσκοι )  Οι ευθυγραμμισμένες τροχιές δημιουργούν κυλίνδρους. Επιφάνεια 0 Επιφάνεια 1 Κύλινδρος k άξονας Δίσκος 0 Δίσκος 1 Δίσκος 2 Επιφάνεια 2 Επιφάνεια 3 Επιφάνεια 4 Επιφάνεια 5

Χωρητικότητα Σκληρού Δίσκου  Χωρητικότητα: μέγιστο πλήθος bytes που μπορούν να αποθηκευτούν.  Σε Gigabytes (GB  10 9 bytes) ή Terabytes (TB  bytes).  Η χωρητικότητα καθορίζεται από τις εξής τεχνολογικές παραμέτρους:  Πυκνότητα αποθήκευσης (bits/in): πλήθος bits που αποθηκεύονται σε 1 ίντσα μίας τροχιάς.  Πυκνότητα τροχιών (tracks/in): πλήθος τροχιών που υπάρχουν σε 1 ίντσα πάνω στην ακτίνα του δίσκου.  Πυκνότητα Επιφάνειας (bits/in 2 ): γινόμενο των δύο παραπάνω.  Οι μοντέρνοι δίσκοι χωρίζουν τις τροχιές σε ξένα υποσύνολα που ονομάζονται ζώνες εγγραφής.  Κάθε τροχιά σε μία ζώνη έχει το ίδιο πλήθος τομέων, που καθορίζεται από την διάμετρο της πιο εσωτερικής τροχιάς.  Κάθε ζώνη έχει διαφορετικό πλήθος τομέων ανά τροχιά.

Παράδειγμα  Χωρητικότητα = (# bytes/τομέα) x (μέσο # τομέων/τροχιά) x (# τροχιές/επιφάνεια) x (# επιφάνεια/δίσκο) x (# δίσκοι/σκληρό δίσκο) Παράδειγμα:  512 bytes/τομέα  300 τομείς/τροχιά (κατά μέσο όρο)  20,000 τροχιές/επιφάνεια  2 επιφάνειες/δίσκο  5 δίσκοι/σκληρό δίσκο  Χωρητικότητα = 512 x 300 x x 2 x 5 bytes = 30,720,000,000 bytes  GB

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

Λειτουργία Δίσκου ( Πολλαπλοί Δίσκοι ) βραχίονας Οι κεφαλές μετακινούνται μαζί από κύλινδρο σε κύλινδρο άξονας

Χρόνος Προσπέλασης Δίσκου  Μέσος χρόνος προσπέλασης ενός τομέα προσεγγίζεται από:  T προσπέλασης = T μέσης-αναζήτησης + T μέσης-περιστροφής + T μέσης-μεταφοράς  Χρόνος Αναζήτησης (T μέσης-αναζήτησης )  Χρόνος για τοποθέτηση κεφαλών πάνω από τον κατάλληλο κύλινδρο που περιέχει τον τομέα που θέλουμε.  Τυπική τιμή T μέσης-αναζήτησης = 9 ms  Καθυστέρηση Περιστροφής (T μέσης-περιστροφής )  Ο χρόνος αναμονής ώστε το πρώτο bit του τομέα να περάσει κάτω από την κεφαλή.  T μέσης-περιστροφής = 1/2 x 1/RPMs x 60 sec  Ταχύτητα Μεταφοράς (T μέσης-μεταφοράς )  Χρόνος για να διαβαστούν τα bits από τον τομέα.  T μέσης-μεταφοράς = 1/RPM x 1/(μέσο πλήθος sectors/track) x 60 secs

Παράδειγμα  Μας δίνονται:  Ταχύτητα Περιστροφής = 10,000 RPM  Μέσος χρόνος αναζήτησης = 9 ms  Μέσο πλήθος τομέων/τροχιά = 400  Υπολογίζουμε:  T μέσης-περιστροφής = 1/2 x (60 secs/10000 RPM) x 1000 ms/sec = 3 ms  T μέσης-μεταφοράς = 60/10000 RPM x 1/400 sec/τροχιά x 1000 ms/sec = ms  T προσπέλασης = 9 ms + 3 ms ms  Σημαντικά σημεία:  Ο χρόνος προσπέλασης κυριαρχείται από το χρόνο αναζήτησης και τον χρόνο περιστροφής.  Το πρώτο bit του τομέα είναι το πιο ακριβό, τα άλλα είναι σχετικά δωρεάν.

Λογικά Μπλοκ Δίσκου  Οι μοντέρνοι δίσκοι δίνουν μία αφαιρετική άποψη αυτής της πολύπλοκης γεωμετρίας:  Το πλήθος των τομέων μοντελοποιείται σαν μία ακολουθία από λογικά μπλοκ μεγέθους b.  Αντιστοίχηση μεταξύ λογικών μπλοκ και πραγματικών τομέων  Αυτή η αντιστοίχηση πραγματοποιείται στον ελεγκτή δίσκου.  Μετατρέπει αιτήσεις σε μορφή λογικών μπλοκ σε τριάδες της μορφής (επιφάνεια, τροχιά, τομέας).  Επιτρέπει στον ελεγκτή να βάλει στην άκρη μερικούς κυλίνδρους για κάθε ζώνη  Έτσι προκύπτει η διαφορά μεταξύ «διαμορφωμένης χωρητικότητας» και «μέγιστης χωρητικότητας».

Παράδειγμα διαμορφωμένη χωρητικότητα μέγιστη χωρητικότητα

 Δεν έχουν μηχανικά μέρη.  Χαμηλότεροι χρόνοι προσπέλασης ( ms)  Αθόρυβοι  Πιο ακριβοί (νέα τεχνολογία)  NAND-based Flash μνήμη: περιορισμοί ως προς εγγραφή  RAM-based: απαιτούν μπαταρία Δίσκοι Στερεάς Κατάστασης (SSD)

SSD benchmark, showing about 230 MB/s reading speed (blue), 210 MB/s writing speed (red) and about 0.1 ms seek time (green), all independent from the accessed disk location. Αποδοτικότητα SSD Μία σύγκριση στο :

Ιδεατή Μνήμη – Virtual Memory

Χρήσιμες Πληροφορίες  Σχετικά με μηχανικούς Σκληρούς Δίσκους:  Σχετικά με Δίσκους Στερεάς Κατάστασης (SSD):  Σχετικά με τις Ιεραρχίες Μνήμης:  Σχετικά με την επίδραση των Cache: effects/ effects/

Παράδειγμα για την Ιεραρχία Μνήμης Πόσο πιο γρήγορα θα τρέξει το Loop-1 σε σχέση με το Loop-2; int[] arr = new int[64 * 1024 * 1024]; // Loop 1 for (int i = 0; i < arr.Length; i++) arr[i] *= 3; // Loop 2 for (int i = 0; i < arr.Length; i += 16) arr[i] *= 3;

Παράδειγμα για την Ιεραρχία Μνήμης  Το Loop-1 κάνει προσπέλαση σε κάθε στοιχείο του πίνακα, ενώ το Loop-2 σε κάθε 16 ο στοιχείο.  Εφόσον λοιπόν το Loop-2 κάνει μόνο το 6.25% της δουλειάς που κάνει το Loop-1 θα έπρεπε να κάνει και το 6.25% του αντίστοιχου χρόνου.

Παράδειγμα για την Ιεραρχία Μνήμης for (int i = 0; i < arr.Length; i += K) arr[i] *= 3; Όμως η Ιεραρχία Μνήμης προκαλεί απρόβλεπτα αποτελέσματα

Παράδειγμα για την Ιεραρχία Μνήμης  Παρατηρούμε ότι όταν το βήμα μεταβάλλεται από 1 μέχρι 16 ο χρόνος εκτέλεσης σχεδόν δεν αλλάζει.  Μετά από 16 μειώνεται σχεδόν στο μισό κάθε φορά.  Η αιτία είναι ότι η CPU δεν επεξεργάζεται την μνήμη byte προς byte, αλλά σε τμήματα των 64 bytes ( συνήθως ) που λέγονται cache lines.  Οι 16 ακέραιοι (int) είναι 64 bytes ( μία cache line).  Άρα με βήμα ως 16 γίνεται προσπέλαση στο ίδιο πλήθος cache lines, ενώ με βήμα 32 στο μισό πλήθος, με βήμα 64 στο ¼, κλπ.

Ένα απλό Πρόγραμμα for (i=0; i+d<n; i+=d) A[i]=i+d; A[i]=0; for (i=0, j=0; j<8*1024*1024; j++) i = A[i]; Διασχίζουμε πίνακα ακεραίων μεγέθους n κυκλικά προσπελάζοντας τις θέσεις του διαδοχικά ανά d (pointer chasing)

Παράδειγμα εκτίμησης μεγέθους RAM RAM : n ≈ 2 25 = 32 MB d=1

L1 : n ≈ 2 12 = 4 KB L2 : n ≈ 2 16 = 64 KB Παράδειγμα εκτίμησης μεγέθους L1,L2-Cache d=1

Παράδειγμα εκτίμησης μεγέθους cache-line Cache line size ≈ 2 6 = 64 bytes n=2 26 Page size ≈ 2 12 = 4KB

Γενική Μεθοδολογία  Μέγεθος cache: Όσον αφορά το μέγεθος της cache απλά σαρώνουμε πίνακες σταδιακά μεγαλύτερων μεγεθών (το ίδιο πλήθος προσπελάσεων) και όταν δούμε μία αλλαγή (μικρή) στους χρόνους τότε σημαίνει ότι περάσαμε από τη cache στη κύρια μνήμη. Προσοχή η μεταβολή είναι μικρή και πάντα να έχουμε υπόψη λογικές τιμές cache καθώς και άλλα φαινόμενα που επηρεάζουν τη διαδικασία.  L1 and L2 sizes: Εδώ απλά φτιάχνουμε διαδοχικά μεγέθη πίνακα όπου το κάθε κελί δεικτοδοτεί το επόμενό του (με το τελευταίο να δεικτοδοτεί το πρώτο) και σαρώνουμε τον πίνακα υπολογίζοντας μέσο χρόνο προσπέλασης. Προσοχή και πάλι είναι δυσδιάκριτο που ακριβώς μεταβάλλεται η cache.  Line Size: Εδώ κάνουμε ότι και ακριβώς παραπάνω μόνο που τώρα δεν δεικτοδοτεί το αμέσως επόμενο αλλά d θέσεις μακριά με στόχο να εντοπίσουμε τη πρώτη φορά που θα γίνονται πολλά cache misses. Το d είναι μικρό (~64bytes)  Cache speed: Φτιάχνουμε διαδοχικά μεγαλύτερους πίνακες και τους προσπελαύνουμε πολλές φορές (το ίδιο όλους) προσπαθώντας να ελαχιστοποιήσουμε την επιρροή του cache line. Βέβαια, υποτίθεται ότι γνωρίζουμε τα σχετικά μεγέθη της cache.

ΤΕΛΟΣ