Απόδοση συσκευών Ε/Ε Κριτήρια απόδοσης σύνθετα

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Indexing.
Advertisements

5 Οργάνωση υπολογιστών Εισαγωγή στην Επιστήμη των Υπολογιστών ã Εκδόσεις Κλειδάριθμος.
ΔΙΑΧΕΙΡΙΣΗ ΕΙΣΟΔΟΥ – ΕΞΟΔΟΥ (INPUT/OUTPUT)
Εισαγωγή στις Τεχνολογίες της Πληροφορικής και των Επικοινωνιών
ΨΗΦΙΑΚΗ ΜΝΗΜΗ (RAM – ROM).
Κ. Διαμαντάρας Α. Βαφειάδης Τμήμα Πληροφορικής ΑΤΕΙ Θεσσαλονίικης 2011 Συστήματα Μνήμης – Οργάνωση κύριας μνήμης.
Απόδοση συσκευών Ε/Ε Κριτήρια απόδοσης σύνθετα • access latency - Πόσο χρόνο χρειάζεται για να ξεκινήσει η μεταφορά δεδομένων – μετράται.
Βάσεις Δεδομένων Ευαγγελία Πιτουρά1 Αποθήκευση Δεδομένων.
Δομή Μαθήματος Υπεύθυνος: Δρ Ν. Πετρέλλης, ΠΔ407
Αρχιτεκτονική Προσωπικού Υπολογιστή
ΤΕΧΝΙΚΟΣ ΥΠΕΥΘΥΝΟΣ Κε.ΠΛΗ.ΝΕ.Τ. ΦΛΩΡΙΝΑΣ
Το υλικο του Υπολογιστη
ΤΑΞΗ Γ ΓΥΜΝΑΣΙΟΥ Βασικές Έννοιες Επανάληψη (1).
ΚΕΦΑΛΑΙΟ 3 Το υλικό των υπολογιστών.
Οργάνωση και Αρχιτεκτονική Υπολογιστών Διάδρομοι Μεταφοράς Δεδομένων
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 2: Το Υλικό του Υπολογιστή
Συνάφεια Κρυφής Μνήμης σε Επεκτάσιμα Μηχανήματα. Συστήματα με Κοινή ή Κατανεμημένη Μνήμη  Σύστημα μοιραζόμενης μνήμης  Σύστημα κατανεμημένης μνήμης.
Εικόνα 2.1: Η Κεντρική Μονάδα.
By Τζέρυ, Κώστας και Λέντι. είναι όρος που χρησιμοποιούμε για ηλεκτρονικές διατάξεις προσωρινής αποθήκευσης ηλεκτρονικές οι οποίες επιτρέπουν πρόσβαση.
Γυμνάσιο Νέας Κυδωνίας
Εφαρμογές Πληροφορικής A’ Λυκείου
ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΜΙΚΡΟΫΠΟΛΟΓΙΣΤΩΝ & ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΩΝ
Μνημη τυχαιας προσπελασης (Random Access Memory - RAM)
Μετάδοση Δεδομένων CD/DVD Σκληρός Δίσκος Ποντίκι Modem Η/Υ
Κεφάλαιο 2 Το Εσωτερικό του υπολογιστή
Πληροφορική, Β Γυμνασίου
ΔΙΑΣΥΝΔΕΣΗ ΥΠΟΛΟΓΙΣΤΩΝ - ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ
Ο προσωπικός υπολογιστής εσωτερικά
ΕΝΟΤΗΤΑ 10 η Τεχνικές Ι/Ο: Η θύρα USB  Χαρακτηριστικά της θύρας USB  Τοπολογία διαύλου USB  Κλάσεις συσκευών USB, Endpoints, pipes  Tύποι μετάδοσης.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
1 Α. Βαφειάδης Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Τ.Ε.Ι Θεσσαλονίκης Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Κεφαλαίο Τρίτο Συστήματα.
© Processor-Memory (DRAM) Διαφορά επίδοσης Performance
ΜΝΗΜΗ RAM Εισαγωγή Μια μονάδα μνήμης στην ουσία είναι ένα σύνολο από δυαδικά κύτταρα αποθήκευσης (τα δυαδικά κύτταρα μπορούν να αποθηκεύσουν είτε την.
Κεφάλαιο 3: Το υλικό των Υπολογιστών
ΠΛΗΡΟΦΟΡΙΚΗ ΤΕΧΝΟΛΟΓΙΑ ΚΑΙ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Κ.ΑΛΑΦΟΔΗΜΟΣ καθηγητής Δ.Παπαχρήστος μέλος ΕΔΙΠ ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΠΑΝΕΠΙΣΤΗΜΙΟ Α ΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ.
Αρχιτεκτονική Υπολογιστών Ενότητα # 4: I/O Διδάσκων: Γεώργιος Κ. Πολύζος Τμήμα: Πληροφορικής.
Κρυφή μνήμη (cache memory) (1/2) Εισαγωγή στην Πληροφορκή1 Η κρυφή μνήμη είναι μία πολύ γρήγορη μνήμη – πιο γρήγορη από την κύρια μνήμη – αλλά πιο αργή.
ΕΙΣΑΓΩΓΉ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΉ ΝΊΚΟΣ ΠΑΠΑΔΆΚΗΣ Αρχιτεκτονική Υπολογιστών.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 2: Το εσωτερικό του Υπολογιστή Β΄ τάξη Λέξεις Κλειδιά: Μητρική πλακέτα, κάρτες επέκτασης, κάρτα οθόνης, κάρτα ήχου, τροφοδοτικό, Κεντρική.
Η Κεντρική Μονάδα Συστήματος Εισαγωγή στην Πληροφορκή 1 Η κεντρική μονάδα του συστήματος (base unit ή system unit) αποτελεί τον πυρήνα ενός υπολογιστή.
Επιλογη υλικου Η/Υ Cpu /επεξεργαστης RAM/μνημη GPU/καρτα γραφικων Οθονη HDD/Σκληρος δισκος.
ΠΑΡΑΔΕΙΓΜΑ: ΤΑ ΕΠΙΠΕΔΑ ΥΛΙΚΟΥ – ΛΟΓΙΣΜΙΚΟΥ ΣΕ ΕΝΑΝ ΥΠΟΛΟΓΙΣΤΗ.
Διαφάνειες διδασκαλίας του πρωτότυπου βιβλίου μεταφρασμένες στα ελληνικά (μετάφραση, επιμέλεια: Δημήτρης Γκιζόπουλος, Πανεπιστήμιο Αθηνών) Οργάνωση και.
Κύρια Μνήμη Διάφοροι τύποι μνήμης RAM Από πάνω προς τα κάτω, DIP, SIPP, SIMM (30-pin), SIMM (72-pin), DIMM (168-pin), DDR DIMM (184-pin). Μνήμη RΟM.
Καταχωρητές (Registers) (1/3) Εισαγωγή στην Πληροφορκή1 Οι Καταχωρητές (Registers) είναι ειδικές θέσεις μνήμης υψηλής ταχύτητας που χρησιμοποιούνται για.
1 Είδη μέσων αποθήκευσης Πρωτεύοντα μέσα αποθήκευσης κεντρική μνήμη και όλες οι υπόλοιπες μνήμες (π.χ καταχωρητές, cache memory) Δευτερεύοντα μέσα αποθήκευσης.
ΕΝΟΤΗΤΑ 1 – Κεφάλαιο 2: Το εσωτερικό του Υπολογιστή Το εσωτερικό της Κεντρικής Μονάδας.
Μαγνητικός δίσκος (magnetic disk) Εισαγωγή στην Πληροφορκή1 Ο μαγνητικός δίσκος χρησιμοποιείται για μόνιμη αποθήκευση δεδομένων, παρέχοντας σχετικά μικρό.
Συγγράμματα Γκιμπερίτης Βαγγέλης Δεξιότητες στην Κοινωνία της Πληροφορίας – Εφαρμογές Πληροφορικής. Γουλτίδης, Χρήστος ECDL /10/2009.
Δομή προσωπικού υπολογιστή
ΕΙΣΑΓΩΓΙΚΕΣ ΕΝΟΙΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ
Ενότητα 5 : Οργάνωση Υλικού Υπολογιστών Δρ. Γκόγκος Χρήστος
Αρχές Πληροφορικής Ενότητα # 4: Δομή ενός υπολογιστικού συστήματος
Προδιαγραφές Υλικού Η/Υ
στην Επιστήμη των Υπολογιστών Κωδικός Διαφανειών: MKT110
Είδη των Cache Misses: 3C’s
1 Οργάνωση και Αρχιτεκτονική Υπολογιστών A. Βαφειάδης Πρόγραμμα Αναβάθμισης Προγράμματος Σπουδών Τμήματος Πληροφορικής Α.Τ.Ε.Ι Θεσσαλονίκης Μάθημα Οργάνωση.
ΤΕΧΝΙΚΑ ΘΕΜΑΤΑ ΠΩΛΗΣΕΩΝ & ΠΡΟΔΙΑΓΡΑΦΕΣ ΥΛΙΚΟΥ ΚΑΙ ΛΟΓΙΣΜΙΚΟΥ Β΄ ΕΠΑΛ ΚεφΑλαιο 2: ΠροδιαγραφΕΣ ΥλικοΥ Η/Υ 2.8 Μνήμη.
Το εσωτερικό του Υπολογιστή
Εφαρμογές Πληροφορικής
ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ Ι
Μνήμη τυχαίας προσπέλασης
Εφαρµογές Πληροφορικής Υπολογιστών
Είδη των Cache Misses: 3C’s
Το Hardware-Υλικό του Υπολογιστή
ΤΟ ΕΣΩΤΕΡΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ
Υλικό - Λογισμικό Υλικό (Hardware) Λογισμικό (Software)
Βασικές έννοιες (Μάθημα 2) Τίτλος: Η Συσκευή
Είδη των Cache Misses: 3C’s
Είδη των Cache Misses: 3C’s
Μεταγράφημα παρουσίασης:

Απόδοση συσκευών Ε/Ε Κριτήρια απόδοσης σύνθετα access latency - Πόσο χρόνο χρειάζεται για να ξεκινήσει η μεταφορά δεδομένων – μετράται σε χρόνο «Για να παίξουμε Quake 3 θέλουμε όσο το δυνατόν μικρότερο latency» cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Απόδοση συσκευών Ε/Ε Κριτήρια απόδοσης σύνθετα access latency - Πόσο χρόνο χρειάζεται για να ξεκινήσει η μεταφορά δεδομένων – μετράται σε χρόνο «Για να παίξουμε Quake 3 θέλουμε όσο το δυνατόν μικρότερο latency» throughput – Διεκπεραιωτική ικανότητα, πόσο γρήγορα μεταφέρονται δεδομένα στη μονάδα του χρόνου – μετράται σε bytes/sec «Για να κατεβάσουμε μια ταινία, θέλουμε όσο το δυνατόν μεγαλύτερο throughput» cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Απόδοση συσκευών Ε/Ε Η απόδοση μιας συσκευής Ε/Ε εξαρτάται από: χαρακτηριστικά της συσκευής σύνδεση συσκευής με υπόλοιπο σύστημα ιεραρχία μνήμης λειτουργικό σύστημα cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Οργάνωση συσκευών Ε/Ε Βάσει των ακόλουθων χαρακτηριστικών: Συμπεριφορά (behavior) read only, write only, read/write Εταίρος (partner) άνθρωπος ή μηχανή τροφοδοτεί δεδομένα Ρυθμός δεδομένων (data rate) μέγιστος ρυθμός μεταφοράς δεδομένων μεταξύ συσκευής και μνήμης ή CPU cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Συμπεριφορά (behavior) Ρυθμός δεδομένων (data rate) Οργάνωση συσκευών Ε/Ε Βάσει των ακόλουθων καρακτηριστικών: Συμπεριφορά (behavior) read only, write only, read/write Εταίρος (partner) άνθρωπος ή μηχανή τροφοδοτεί δεδομένα Ρυθμός δεδομένων (data rate) μέγιστος ρυθμός μεταφοράς δεδομένων μεταξύ συσκευής και μνήμης ή CPU Π.χ. πληκτρολόγιο – συσκευή read only, χρησιμοποιείται από άνθρωπο,με data rate 10 bytes/sec cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Οργάνωση συσκευών Ε/Ε Συσκευή Συμπεριφορά Εταίρος Ρυθ Δεδομένων (Mbit/sec) Πληκτρολόγιο Input Άνθρωπος 0,0001 Ποντίκι 0,0038 Είσοδος Φωνής 0,2640 Είσοδος Ήχου Μηχανή 3 Scanner 3,2 Έξοδος φωνής Output Έξοδος ήχου 8 Laser printer Οθόνη γραφικών 800 – 8000, Modem Input/Output 0,0160– 0,064 Network/LAN 100 – 1000 Network/Wireless 11 – 54 Optical Disk 80 Magnetic Tape 32 Magnetic Disk 240 - 2560 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Τρόπος Αξιολόγησης Απόδοσης Ε/Ε Εξαρτάται από την εφαρμογή Σε μερικά περιβάλλοντα μας νοιάζει το throughput Τότε το bandwidth είναι το πιο σημαντικό. Μετράται με 2 τρόπους: Data που διακινούμε τη μονάδα του χρόνου ή Λειτουργίες Ε/Ε που πραγματοποιούμε τη μονάδα του χρόνου cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Τρόπος Αξιολόγησης Απόδοσης Ε/Ε Σε άλλες εφαρμογές μας νοιάζει ο χρόνος απόκρισης (response time) Εξαρτάται από bandwidth και access latency Για μεγάλες αιτήσεις Ε/Ε Για μικρές αιτήσεις Ε/Ε cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Τρόπος Αξιολόγησης Απόδοσης Ε/Ε Πλήθος εφαρμογών απαιτούν υψηλή διεκπεραιωτική ικανότητα και μικρό χρόνο απόκρισης «Μας ενδιαφέρει και η διάρκεια κάθε εργασίας αλλά και πόσες διεργασίες εκτελούνται το δευτερόλεπτο» ΑΤΜ File servers Web servers κ.α. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Σύνοψη Απόδοσης Ε/Ε Desktop, Servers, Embedded Systems φερεγγυότητα + κόστος Ε/Ε Desktop , Embedded Systems χρόνος απόκρισης + ποικιλία συσκευών Ε/Ε Servers διεκπεραιωτική ικανότητα συσκευών Ε/Ε cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

«Τα δεδομένα παραμένουν και όταν διακόπτεται η τροφοδοσία» Αποθήκευση στο δίσκο – φερεγγυότητα Αποθήκευση σε δίσκο μη πτητική (non-volatile) «Τα δεδομένα παραμένουν και όταν διακόπτεται η τροφοδοσία» cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Αποθήκευση στο δίσκο – φερεγγυότητα Δίσκος αποτελείται: Στοίβα πλακών (1 – 4) με 2 επιφάνειες εγγραφής Στοίβα πλακών περιστρέφεται (5400 – 15000 RPM) Κάθε επιφάνεια διαιρείται σε ομόκεντρους κύκλους – τροχιές/tracks (10Κ – 50Κ tracks/επιφάνεια) Κάθε τροχιά διαιρείται σε τομείς/sectors (100 – 500 sectors/track) Τυπικό μέγεθος τομέα 512bytes (με τάση προς τα 4ΚΒ) cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Προσπέλαση Δεδομένων στο Δίσκο α) Seek time (τοποθέτηση κεφαλής πάνω από κατάλληλη τροχιά) β) Rotational Latency ή rotational delay (χρόνος για να βρεθεί κεφαλή πάνω από κατάλληλο τομέα) γ) Transfer Time (χρόνος που απαιτείται για τη μεταφορά ενός block από bits) cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Πλεονασματικές Συστοιχίες Φθηνών Δίσκων - RAID Redundant Array of Inexpensive Disks Διάταξη δίσκων που χρησιμοποιεί μια συστοιχία “μικρών” και “φτηνών” δίσκων ώστε να αυξήσει τόσο την απόδοση όσο και την αξιοπιστία. RAID: “Πολλαπλασιάζει” τα read “heads”, redundancy χρειάζεται γιατί οι “μικροί” & “φθηνοί” δεν είναι αξιόπιστοι. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 0 - Striping Συνεχόμενα blocks γράφονται στους 2 δίσκους εναλλάξ. Παρέχει υψηλή απόδοση αφού οι εγγραφές και οι αναγνώσεις γίνονται συνεχώς σε διαφορετικούς δίσκους «διπλασιάζοντας» τις επιδόσεις. Όμως δεν παρέχει αξιοπιστία, αφού η βλάβη ενός δίσκους καταστρέφει ολόκληρη τη συστοιχία. (Ο όρος RAID στην περίπτωση αυτή χρησιμοποιείται καταχρηστικά) cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 1 - Mirroring Κάθε block γράφεται και στους 2 δίσκους (αντίγραφο). Παρέχει υψηλή απόδοση στις αναγνώσεις, αφού αυτές μπορούν να γίνουν από 2 δίσκους εναλλάξ. Παρέχει αξιοπιστία, αφού αν πάθει βλάβη ένας δίσκος, τα δεδομένα υπάρχουν στον 2ο. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 0+1 (RAID 01) RAID 1+0 (RAID 10) Έχουμε όγκο δεδομένων που χωράει σε 4 δίσκους Αγοράζουμε 8 φυσικούς δίσκους Πώς θα τους οργανώσουμε για mirroring και stripping; RAID 0+1 (RAID 01) Φτιάχνουμε 2 σύνολα των 4 δίσκων, το κάθε σύνολο το οργανώνουμε σε RAID 0 (stripping) και τα 2 σύνολα είναι mirror το ένα του άλλου (RAID-1) RAID 1+0 (RAID 10) Φτιάχνουμε 4 σύνολα των 2 δίσκων, το κάθε σύνολο το οργανώνουμε σε RAID-1 (mirroring) και τα 4 σύνολα σε RAID-0 (stripping) cslab@ntua 2017-2018

RAID 0+1 (RAID 01) cslab@ntua 2017-2018

RAID 1+0 (RAID 10) cslab@ntua 2017-2018

Επίπεδα RAID cslab@ntua 2017-2018

RAID-4 vs RAID-5 Block-interleaved parity (RAID-4) Distributed block interleaved parity (RAID-5) cslab@ntua 2017-2018

Small write update: Τι γίνεται όταν γράφεται ένα block με νέα τιμή D0’ RAID-3 RAID-4 RAID-3: Υπολογισμός νέου Parity P’ αναγκάζει σε ανάγνωση όλους τους δίσκους (3 disk reads (D1, D2, D3) και 2 disk writes (D0’, P’) RAID-4: Υπολογισμός νέου Parity P’ κάνει ανάγνωση σε 2 δίσκους (2 disk reads (D0, P) και 2 disk writes (D0’, P’) cslab@ntua 2017-2018

RAID 5 - Striped set with distributed parity Συνεχόμενα blocks γράφονται εναλλάξ στους δίσκους, ενώ κατανέμεται σε αυτούς και ένα block ισοτιμίας. Παρέχει υψηλή απόδοση στις αναγνώσεις, αφού αυτές μπορούν να γίνουν από πολλούς δίσκους εναλλάξ. Παρέχει αξιοπιστία, αφού αν πάθει βλάβη ένας δίσκος, τα δεδομένα μπορούν να ανακτηθούν από τους υπόλοιπους . cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Παράδειγμα: Έστω ότι διαθέτουμε 4 δίσκους. Πώς δουλεύει το RAID 5; Απάντηση: Ας θεωρήσουμε ότι οι 4 δίσκοι έχουν τα Παρακάτω δεδομένα (δυαδικό): DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 STRIPE1 0000 STRIPE2 0011 1010 1000 STRIPE3 0001 1101 Στα κίτρινα σημεία, τοποθετούνται τα δεδομένα ισοτιμίας. Η ισοτιμία υπολογίζεται ως το Exclusive-OR (XOR) του ίδιου stripe όλων των δίσκων. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Παράδειγμα: Έστω ότι διαθέτουμε 4 δίσκους. Πώς δουλεύει το RAID 5; Απάντηση: Ας θεωρήσουμε ότι οι 4 δίσκοι έχουν τα Παρακάτω δεδομένα (δυαδικό): DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 STRIPE1 0000 STRIPE2 0011 1010 1000 STRIPE3 0001 1101 Για όσους δε θυμούνται της XOR … ο πίνακας αληθείας XOR Είσοδος Έξοδος 1 Στα κίτρινα σημεία, τοποθετούνται τα δεδομένα ισοτιμίας. Η ισοτιμία υπολογίζεται ως το Exclusive-OR (XOR) του ίδιου stripe όλων των δίσκων. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 1010 1000 STRIPE3 0001 1101 STRIPE0,DISK3 = 0100 XOR 0101 XOR 0010 = 0011 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 0110 STRIPE2 1010 1000 STRIPE3 0001 1101 STRIPE0,DISK3 = 0100 XOR 0101 XOR 0010 = 0011 STRIPE1,DISK2 = 0010 XOR 0000 XOR 0100 = 0110 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 STRIPE0,DISK3 = 0100 XOR 0101 XOR 0010 = 0011 STRIPE1,DISK2 = 0010 XOR 0000 XOR 0100 = 0110 STRIPE2,DISK1 = 0011 XOR 1010 XOR 1000 = 0001 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 STRIPE0,DISK3 = 0100 XOR 0101 XOR 0010 = 0011 STRIPE1,DISK2 = 0010 XOR 0000 XOR 0100 = 0110 STRIPE2,DISK1 = 0011 XOR 1010 XOR 1000 = 0001 STRIPE3,DISK0 = 0001 XOR 1101 XOR 1010 = 0110 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Τελική Εικόνα της συστοιχίας ΔΙΣΚΩΝ RAID 5 - Striped set with distributed parity Τελική Εικόνα της συστοιχίας ΔΙΣΚΩΝ με διάταξη RAID5 DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Παράδειγμα: Τι γίνεται στις εγγραφές; Απάντηση: Ας θεωρήσουμε ότι οι 4 δίσκοι έχουν τα Παρακάτω δεδομένα (δυαδικό): DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 Έστω ότι γίνεται η εγγραφή του στοιχείου 1101 στο block 2 (αρίθμηση ξεκινάει από block 0). cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι γίνεται η εγγραφή του στοιχείου 1101 στο block 2 (αρίθμηση ξεκινάει από block 0). DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 0011 STRIPE1 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι γίνεται η εγγραφή του στοιχείου 1101 στο block 2 (αρίθμηση ξεκινάει από block 0). DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 1101 0011 STRIPE1 0010 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 Ο ελεγκτής RAID κάνει την εγγραφή του στοιχείου στο αντίστοιχο block … cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι γίνεται η εγγραφή του στοιχείου 1101 στο block 2 (αρίθμηση ξεκινάει από block 0). DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 1101 0011 STRIPE1 0010 0000 0110 STRIPE2 0001 1010 1000 STRIPE3 1101 Ο ελεγκτής RAID κάνει την εγγραφή του στοιχείου στο αντίστοιχο block ... και ταυτόχρονα ξαναδημιουργεί την ισοτιμία για το συγκεκριμένο stripe, χρησιμοποιώντας παλιά τιμή, νέα τιμή και ισοτιμία STRIPE0,DISK3 = 0010 XOR 1101 XOR 0011 = 1100 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι γίνεται η εγγραφή του στοιχείου 1101 στο block 2 (αρίθμηση ξεκινάει από block 0). DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 0010 1101 0011 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 1101 Ο ελεγκτής RAID κάνει την εγγραφή του στοιχείου στο αντίστοιχο block ... και ταυτόχρονα ξαναδημιουργεί την ισοτιμία για το συγκεκριμένο stripe, χρησιμοποιώντας παλιά τιμή, νέα τιμή και ισοτιμία STRIPE0,DISK3 = 0010 XOR 1101 XOR 0011 = 1100 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Η εγγραφή στο RAID 5, ισοδυναμεί με 2 αναγνώσεις και 2 εγγραφές RAID 5 - Striped set with distributed parity Έστω ότι γίνεται η εγγραφή του στοιχείου 1101 στο block 2 (αρίθμηση ξεκινάει από block 0). DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Ο ελεγκτής RAID κάνει την εγγραφή του στοιχείου στο αντίστοιχο block ... και ταυτόχρονα ξαναδημιουργεί την ισοτιμία για το συγκεκριμένο stripe, χρησιμοποιώντας παλιά τιμή, νέα τιμή και ισοτιμία STRIPE0,DISK3 = 0010 XOR 1101 XOR 0011 = 1100 Η εγγραφή στο RAID 5, ισοδυναμεί με 2 αναγνώσεις και 2 εγγραφές σε δίσκους. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Παράδειγμα: Τι γίνεται αν χαλάσει ένας δίσκος; Απάντηση: Ας θεωρήσουμε ότι οι 4 δίσκοι έχουν τα Παρακάτω δεδομένα (δυαδικό): DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Έστω ότι χαλάει ο DISK2 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Παράδειγμα: Τι γίνεται αν χαλάσει ένας δίσκος; Απάντηση: Ας θεωρήσουμε ότι οι 4 δίσκοι έχουν τα Παρακάτω δεδομένα (δυαδικό): DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Έστω ότι χαλάει ο DISK2 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι χαλάει ο DISK2 DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Ο ελεγκτής RAID εξυπηρετεί τις αιτήσεις για τις πληροφορίες που είχε ο DISK2, χρησιμοποιώντας όλους τους άλλους δίσκους + την ισοτιμία. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι χαλάει ο DISK2 DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Ο ελεγκτής RAID εξυπηρετεί τις αιτήσεις για τις πληροφορίες που είχε ο DISK2, χρησιμοποιώντας όλους τους άλλους δίσκους + την ισοτιμία. Έτσι STRIPE0,DISK2 = 0100 XOR 0101 XOR 1100 = 1101 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι χαλάει ο DISK2 DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Ο ελεγκτής RAID εξυπηρετεί τις αιτήσεις για τις πληροφορίες που είχε ο DISK2, χρησιμοποιώντας όλους τους άλλους δίσκους + την ισοτιμία. Έτσι STRIPE0,DISK2 = 0100 XOR 0101 XOR 1100 = 1101 STRIPE2,DISK2 = 0011 XOR 0001 XOR 1000 = 1010 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι χαλάει ο DISK2 DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Ο ελεγκτής RAID εξυπηρετεί τις αιτήσεις για τις πληροφορίες που είχε ο DISK2, χρησιμοποιώντας όλους τους άλλους δίσκους + την ισοτιμία. Έτσι STRIPE0,DISK2 = 0100 XOR 0101 XOR 1100 = 1101 STRIPE2,DISK2 = 0011 XOR 0001 XOR 1000 = 1010 STRIPE3,DISK2 = 0110 XOR 0001 XOR 1010 = 1101 cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 5 - Striped set with distributed parity Έστω ότι χαλάει ο DISK2 DISK0 DISK1 DISK2 DISK3 STRIPE0 0100 0101 1101 1100 STRIPE1 0010 0000 0110 STRIPE2 0011 0001 1010 1000 STRIPE3 Ο ελεγκτής RAID εξυπηρετεί τις αιτήσεις για τις πληροφορίες που είχε ο DISK2, χρησιμοποιώντας όλους τους άλλους δίσκους + την ισοτιμία. Έτσι STRIPE0,DISK2 = 0100 XOR 0101 XOR 1100 = 1101 STRIPE2,DISK2 = 0011 XOR 0001 XOR 1000 = 1010 STRIPE3,DISK2 = 0110 XOR 0001 XOR 1010 = 1101 Κάθε ανάγνωση του χαλασμένου δίσκου, αντιστοιχεί σε αναγνώσεις σε όλους τους υπόλοιπους δίσκους. Καλό είναι να αντικαταστήσουμε το χαλασμένο δίσκο γρήγορα! cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

RAID 6 - Striped set with dual parity Συνεχόμενα blocks γράφονται εναλλάξ στους δίσκους, ενώ κατανέμεται σε αυτούς και δύο block ισοτιμίας. Παρέχει υψηλή απόδοση στις αναγνώσεις, αφού αυτές μπορούν να γίνουν από πολλούς δίσκους εναλλάξ. Παρέχει αξιοπιστία, αφού αν χαλάσουν μέχρι 2 δίσκοι, τα δεδομένα μπορούν να ανακτηθούν από τους υπόλοιπους . cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Δίαυλοι Συνδέσεις μεταξύ των συσκευών Ε/Ε, της CPU CPU και της RAM ονομάζονται δίαυλοι (busses) $ memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Δίαυλοι Κοινόχρηστος σύνδεσμος επικοινωνίας Πλεονεκτήματα: versatility και low cost Μειονεκτήματα: Σημείο συμφόρησης – περιορισμός μέγιστης διεκπεραιωτικής ικανότητας CPU $ memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

μήκος διαύλου και πλήθος συσκευών Δίαυλοι Μέγιστη ταχύτητα διαύλου περιορίζεται από φυσικούς παράγοντες: μήκος διαύλου και πλήθος συσκευών Επίσης, πρέπει να υποστηρίζονται συσκευές με διαφορετικά access times και data rates. CPU $ memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Βασικά των Διαύλων Γραμμές ελέγχου: Σηματοδοτούν requests και acknowledgements Γραμμές δεδομένων: Μεταφέρουν πληροφορίες (δεδομένα ή διευθύνσεις) (Πολλές φορές υπάρχουν ξεχωριστές γραμμές διευθύνσεων – address vs data bus) node A bus node B Γραμμές ελέγχου Γραμμές δεδομένων cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Βασικά των Διαύλων Bus transaction: Ακολουθία λειτουργιών διαύλου που περιλαμβάνει αίτηση (+απόκριση) και μεταφορά δεδομένων CPU-memory bus: Δίαυλος που συνδέει τον επεξεργαστή με τη μνήμη. Μικρό μήκος, υψηλή ταχύτητα, μεγιστοποίηση CPU-memory bandwidth I/O bus: Μεγάλο μήκος, πολλές συνδεδεμένες συσκευές, ποικιλία στο εύρος ζώνης δεδομένων συσκευών cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Βασικά των Διαύλων Οι συσκευές Ε/Ε δεν συνδέονται απευθείας στη μνήμη. Δεδομένα πάνε μέσω του διαύλου CPU-memory (backplane bus). Λόγω αυξημένων απαιτήσεων, έχουν δημιουργηθεί ειδικοί δίαυλοι (π.χ. γραφικών) I/O bus χρησιμεύει για την σύνδεση νέων περιφερειακών. Ανάπτυξη προτύπων (π.χ. USB, Firewire) για διασφάλιση λειτουργίας συσκευών σε όλα τα συστήματα. cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Βασικά χαρακτηριστικά USB/Firewire Χαρακτηριστικά Firewire (1394) USB 2.0 Τύπος διαύλου Εισόδου/Εξόδου Βασικό εύρος διαύλου δεδομένων (σήματα) 4 2 Χρονισμός Ασύγχρονος Μέγιστο θεωρητικό bandwidth 50MB/sec (Firewire 400) ή 100MB/sec (Firewire 800) 0,2MB/sec (χαμηλή ταχύτητα) ή 1,5MB/sec (πλήρης ταχύτητα) ή 60MB/sec (υψηλή ταχύτητα) Hotplug ΝΑΙ Μέγιστος αριθμός συσκευών 63 127 Μέγιστο μήκος διαύλου (χάλκινο καλώδιο) 4,5μ 5μ Όνομα προτύπου IEEE 1394, 1394b USB Implementers Forum cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Σύγχρονη vs Ασύγχρονη Επικοινωνία Μέθοδοι επικοινωνίας διαύλων Σύγχρονη vs Ασύγχρονη Επικοινωνία Σύγχρονη επικοινωνία: Ρολόι στις γραμμές ελέγχου Μειονεκτήματα: Όλες οι συσκευές πρέπει να έχουν το ίδιο ρολόι – δύσκολο (βλ. clock skew) – εφικτό για μικρούς διαύλους (π.χ. CPU-MEM) Πλεονεκτήματα: Υψηλή Ταχύτητα cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Σύγχρονη vs Ασύγχρονη Επικοινωνία Μέθοδοι επικοινωνίας διαύλων Σύγχρονη vs Ασύγχρονη Επικοινωνία Ασύγχρονη επικοινωνία: Χωρίς ρολόι Πλεονεκτήματα: Μεγάλη ποικιλία συσκευών, μεγάλο μήκος (USB, Firewire = asynchronous) Πλεονεκτήματα: Χαμηλή Ταχύτητα (σε σχέση με CPU-MEM bus) cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001

Παράδειγμα ασύγχρονης επικοινωνίας ReadReq: Δηλώνει αίτηση ανάγνωσης. Διεύθυνση τοποθετείται στη γραμμή δεδομένων. DataRdy: Δηλώνει έγκυρα δεδομένα στη γραμμή δεδομένων Ack: Επιβεβαιώνει το σήμα ReadReq ή DataRdy της άλλης πλευράς cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 54

Core2Duo busses and interconnects cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 55

cslab@ntua 2017-2018

Διαταγές προς συσκευές Ε/Ε Για να μιλήσει ο επεξεργαστής με I/O χρησιμοποιούνται 2 μέθοδοι: α) memory mapped I/O π.χ. Οι διευθύνσεις 0xFFFF0000 – 0xFFFF000F αντιστοιχούν σε 4 command registers 32bit μιας συσκευής I/O. Οι εγγραφές σε αυτές τις διευθύνσεις, αντί για τη μνήμη, γράφουν στους registers. β) special Input/Output commands cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 57

Επικοινωνία με τον επεξεργαστή Όταν μια συσκευή Ε/Ε ολοκληρώσει μια λειτουργία, πώς ενημερώνει τη CPU; α) Polling – η CPU ελέγχει ανά τακτά χρονικά διαστήματα τη συσκευή για αλλαγές στο state β) Interrupt – η συσκευή ΕΕ στέλνει ένα interrupt (διακοπή) στη CPU για να «τραβήξει» την προσοχή της cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 58

Μεταφορά δεδομένων μεταξύ ΕΕ και μνήμης Πώς μεταφέρονται τα δεδομένα από μια συσκευή (π.χ. δίσκο) στη μνήμη του υπολογιστή; α) Programmed I/O – η CPU διαβάζει τα δεδομένα και τα γράφει στη μνήμη (CPU busy) β) Direct Memory Access – η CPU προγραμματίζει τη συσκευή DMA μιας συσκευής να γράψει μόνη της τα δεδομένα στη μνήμη (bus master) και όταν ολοκληρώσει να ενημερώσει τη CPU με interrupt (CPU free) - προβλήματα Η κάθε μονάδα DMA λειτουργεί σαν μια μικρή ειδική CPU για το σκοπό της μεταφοράς δεδομένων απευθείας στη μνήμη χωρίς τη μεσολάβηση του επεξεργαστή cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 59

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM H CPU θέλει να μεταφερθεί 1MB δεδομένων από το δίσκο στη RAM. $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 60

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM H CPU θέλει να μεταφερθεί 1MB δεδομένων από το δίσκο στη RAM. $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 61

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM Α) CPU στέλνει τη διεύθυνση αρχικού block στη DMA engine του DISK Controller $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 62

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM α) CPU στέλνει τη διεύθυνση αρχικού block στη DMA engine του DISK Controller β) CPU στέλνει τη διεύθυνση της RAM που θα αποθηκευθούν τα δεδομένα $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 63

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM α) CPU στέλνει τη διεύθυνση αρχικού block στη DMA engine του DISK Controller β) CPU στέλνει τη διεύθυνση της RAM που θα αποθηκευθούν τα δεδομένα γ) CPU στέλνει το πλήθος των δεδομένων που θα μεταφερθούν CPU $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 64

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM δ) START! α) CPU στέλνει τη διεύθυνση αρχικού block στη DMA engine του DISK Controller β) CPU στέλνει τη διεύθυνση της RAM που θα αποθηκευθούν τα δεδομένα γ) CPU στέλνει το πλήθος των δεδομένων που θα μεταφερθούν CPU $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller δ) START! DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 65

Direct Memory Access CPU $ DMA engine memory – I/O bus RAM Graphics H DMA engine του DISK Controller, γίνεται bus master και τα δεδομένα που διαβάζει από το δίσκο τα γράφει στη RAM. Μόλις ολοκληρωθεί η Μεταφορά, ειδοποιεί τη CPU με ένα interrupt. $ DMA engine memory – I/O bus RAM I/O Controller I/O Controller I/O Controller DISK DISK Graphics Output Network cslab@ntua 2017-2018 cslab.ntua.gr (c) 2001 66

Συστατικά ενός Computer System SDRAM PC100/PC133 100-133MHZ 64-128 bits wide 2-way interleaved ~ 900 MBYTES/SEC Double Data Rate (DDR) SDRAM PC2100 266MHZ (effective 133x2) 4-way interleaved ~2.1 GBYTES/SEC (second half 2000) RAMbus DRAM (RDRAM) 400-800MHZ 16 bits wide channel ~ 1.6 GBYTES/SEC ( per channel) CPU Caches System Bus I/O Devices: Memory Controllers adapters Disks Displays Keyboards Networks NICs I/O Buses Controller Examples: Alpha, AMD K7: EV6, 200MHZ Intel PII, PIII: GTL+ 100MHZ Intel P4 400MHZ Example: PCI, 33MHZ 32 bits wide 133 MBYTES/SEC 600MHZ - 1.7GHZ (a multiple of system bus speed) Pipelined ( 7 -21 stages ) Superscalar (max ~ 4 instructions/cycle) L1 L2 L3 Memory Bus cslab@ntua 2017-2018

Intel Hub Architecture (850 Chipset) Intel D850MD Motherboard: Source: Intel® Desktop Board D850MD/D850MV Technical Product Specification cslab@ntua 2017-2018

Intel D850MD Motherboard: Source: Intel® Desktop Board D850MD/D850MV Technical Product Specification mouse, keyboard, parallel, serial, and USB connectors Video PCI Connectors (slots) Memory Controller Hub AGP slot system bus Pentium 4 socket hub interface RDRAM interface I/O Controller Hub PCI bus RAMBUS RDRAM – 2 banks (4 slots) Firmware Hub – including BIOS Power connector Speaker Diskette connector Battery IDE drive connectors cslab@ntua 2017-2018

Example: Intel Hub Architecture (850 Chipset) Pentium 4 Processor file system application disk registers cache(s) system bus (64-bit, 400/533 MHz ~24-32 Gbps) memory controller hub RDRAM RDRAM RAM interface (two 64-bit, 200 MHz  ~24 Gbps) RDRAM RDRAM hub interface (four 8-bit, 66 MHz  2 Gbps) I/O controller hub Talk about bottlenecks PCI slots PCI slots PCI bus (32-bit, 33 MHz  1 Gbps) PCI slots disk cslab@ntua 2017-2018

Intel 32-bit Architecture (IA32): Basic Execution Environment Address space: 1 – 236 (64 GB), each program may have a linear address space of 4 GB (232) Basic program execution registers: 8 general purpose registers (EAX, EBX, ECX, EDX, ESI, EDI, EBP and ESP) 6 segment registers (CS, DS, SS, ES, FS and GS) 1 flag register (EFLAGS) 1 instruction pointer register (EIP) Stack – a continuous array of memory locations Current stack is referenced by the SS register ESP register – stack pointer EBP register – stack frame base pointer (fixed reference) PUSH – stack grow, add item (ESP decrement) POP – remove item, stack shrinks (ESP increment) Several other registers like Control, MMX, XMM, FPU, MTRR, MSR and performance monitoring GPRs: PUSH %eax EAX: EBX: ECX: EDX: ESI: EDI: EBP: ESP: see arrow X PUSH %ebx Y PUSH %ecx Z <do something> POP %ecx POP %ebx POP %eax STACK: ... 0x0... Z STACK-FRAME BASE POINTER The stack is typically divided into frames. Each stack frame can then contain local variables, parameters to be passed to another procedure, and procedure linking information. The stackframe base pointer (contained in the EBP register) identifies a fixed reference point within the stack frame for the called procedure. To use the stack-frame base pointer, the called procedure typically copies the contents of the ESP register into the EBP register prior to pushing any local variables on the stack. The stack-frame base pointer then permits easy access to data structures passed on the stack, to the return instruction pointer, and to local variables added to the stack by the called procedure. Y X ESP pointer: 0xfff... cslab@ntua 2017-2018

Core 2 CPU die (Conroe μarch) cslab@ntua 2017-2018

Intel i975X chipset cslab@ntua 2017-2018

cslab@ntua 2017-2018