Αρχιτεκτονική υπολογιστή
Το μοντέλο von Neumann, η ιεραρχία μνήμης και ο κύκλος εντολής.
40 λεπτά
Θα μάθεις να
- Να περιγράφεις τα μέρη της αρχιτεκτονικής von Neumann και την ιδέα του αποθηκευμένου προγράμματος.
- Να εξηγείς τον ρόλο των καταχωρητών PC, IR, MAR, MDR και του συσσωρευτή.
- Να ακολουθείς βήμα-βήμα τον κύκλο ανάκλησης, αποκωδικοποίησης και εκτέλεσης.
- Να κατατάσσεις τα επίπεδα της ιεραρχίας μνήμης κατά ταχύτητα, μέγεθος και κόστος.
Η ιδέα του αποθηκευμένου προγράμματος
Οι πρώτοι ηλεκτρονικοί υπολογιστές προγραμματίζονταν με καλώδια. Για να λύσει ο ENIAC ένα νέο πρόβλημα, οι χειριστές του ξανασύνδεαν φυσικά τις μονάδες του, και η αλλαγή μπορούσε να κρατήσει μέρες.
Το 1945 ο John von Neumann περιέγραψε μια άλλη ιδέα: το πρόγραμμα να αποθηκεύεται στη μνήμη, μαζί με τα δεδομένα, ως αριθμοί. Για να αλλάξει το πρόγραμμα, αρκεί να γραφτούν άλλοι αριθμοί στη μνήμη. Σχεδόν κάθε υπολογιστής που φτιάχτηκε από τότε, από τους εξυπηρετητές ως το κινητό σου, ακολουθεί αυτή την ιδέα.
Τα μέρη
| Μέρος | Ρόλος |
|---|---|
| Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ, CPU) | εκτελεί τις εντολές |
| — Μονάδα Ελέγχου (control unit) | διαβάζει την εντολή, την αποκωδικοποιεί και δίνει εντολές στα υπόλοιπα μέρη |
| — Αριθμητική και Λογική Μονάδα (ΑΛΜ, ALU) | κάνει τις πράξεις: πρόσθεση, σύγκριση, λογικά ΚΑΙ, Ή, ΟΧΙ |
| — Καταχωρητές (registers) | ελάχιστες, πανγρήγορες θέσεις μνήμης μέσα στην ΚΜΕ |
| Κύρια μνήμη (RAM) | κρατά το πρόγραμμα και τα δεδομένα όσο τρέχει |
| Μονάδες εισόδου και εξόδου | πληκτρολόγιο, οθόνη, δίκτυο, αποθηκευτικά μέσα |
| Δίαυλοι (buses) | οι «δρόμοι» που ενώνουν τα παραπάνω |
Οι δίαυλοι είναι τρεις. Ο δίαυλος διευθύνσεων λέει πού στη μνήμη, ο δίαυλος δεδομένων μεταφέρει τι, και ο δίαυλος ελέγχου λέει τι να γίνει: ανάγνωση ή εγγραφή.
Οι καταχωρητές
Η μνήμη είναι μια μεγάλη σειρά από θέσεις, καθεμία με τη διεύθυνσή της, έναν αριθμό από το και πάνω. Για να δουλέψει με αυτήν, η ΚΜΕ χρησιμοποιεί μερικούς ειδικούς καταχωρητές:
| Καταχωρητής | Τι κρατά |
|---|---|
| Μετρητής Προγράμματος (PC, program counter) | τη διεύθυνση της επόμενης εντολής |
| Καταχωρητής Εντολών (IR, instruction register) | την εντολή που εκτελείται τώρα |
| Καταχωρητής Διεύθυνσης Μνήμης (MAR) | τη διεύθυνση που θα διαβαστεί ή θα γραφτεί |
| Καταχωρητής Δεδομένων Μνήμης (MDR) | την τιμή που μόλις ήρθε από τη μνήμη ή που θα γραφτεί σε αυτήν |
| Συσσωρευτής (ACC, accumulator) | το ενδιάμεσο αποτέλεσμα των πράξεων |
Ο κύκλος εντολής
Η ΚΜΕ κάνει ένα μόνο πράγμα, ξανά και ξανά, δισεκατομμύρια φορές το δευτερόλεπτο:
- Ανάκληση (fetch). Η διεύθυνση του PC αντιγράφεται στον MAR. Η μνήμη στέλνει το περιεχόμενο εκείνης της θέσης στον MDR, και από εκεί η εντολή περνά στον IR. Ο PC αυξάνεται κατά , ώστε να δείχνει την επόμενη εντολή.
- Αποκωδικοποίηση (decode). Η μονάδα ελέγχου διαβάζει τον IR και ξεχωρίζει τι πρέπει να γίνει (τον κωδικό της εντολής) και με ποιο δεδομένο (τη διεύθυνση ή την τιμή).
- Εκτέλεση (execute). Η εντολή εκτελείται: φέρνει τιμή από τη μνήμη, κάνει πράξη στην ΑΛΜ, γράφει αποτέλεσμα ή αλλάζει τον PC για να κάνει άλμα.
Ας δούμε έναν φανταστικό, πολύ απλό επεξεργαστή. Στις διευθύνσεις έως βρίσκεται το πρόγραμμα, και στις έως τα δεδομένα:
| Διεύθυνση | Περιεχόμενο | Σημασία |
|---|---|---|
LOAD 10 | φέρε στον ACC την τιμή της θέσης | |
ADD 11 | πρόσθεσε στον ACC την τιμή της θέσης | |
STORE 12 | γράψε τον ACC στη θέση | |
HALT | σταμάτα | |
| δεδομένο | ||
| δεδομένο | ||
| εδώ θα γραφτεί το αποτέλεσμα |
Η συχνότητα ρολογιού μετριέται σε hertz. Ένας επεξεργαστής στα GHz κάνει παλμούς το δευτερόλεπτο. Ένας κύκλος εντολής δεν διαρκεί απαραίτητα έναν παλμό: οι σύγχρονοι επεξεργαστές επικαλύπτουν τις φάσεις διαδοχικών εντολών και έχουν πολλούς πυρήνες, καθέναν με τον δικό του κύκλο.
Η ιεραρχία μνήμης
Η ιδανική μνήμη θα ήταν τεράστια, πανγρήγορη, φθηνή και θα κρατούσε τα δεδομένα χωρίς ρεύμα. Τέτοια μνήμη δεν υπάρχει. Γι' αυτό οι υπολογιστές συνδυάζουν πολλά επίπεδα:
| Επίπεδο | Τυπικό μέγεθος | Τυπικός χρόνος πρόσβασης | Χάνει τα δεδομένα χωρίς ρεύμα; |
|---|---|---|---|
| Καταχωρητές | λίγες εκατοντάδες bytes | κάτω από ns | ναι |
| Κρυφή μνήμη (cache) L1, L2, L3 | από δεκάδες KB ως δεκάδες MB | περίπου ως ns | ναι |
| Κύρια μνήμη (RAM) | μερικά ως δεκάδες GB | περίπου ns | ναι |
| Δίσκος στερεάς κατάστασης (SSD) | εκατοντάδες GB ως λίγα TB | περίπου ms | όχι |
| Μαγνητικός σκληρός δίσκος (HDD) | μερικά TB | περίπου ms | όχι |
Οι αριθμοί είναι ενδεικτικοί και αλλάζουν κάθε λίγα χρόνια. Αυτό που δεν αλλάζει είναι η σχέση: όσο πλησιάζεις στην ΚΜΕ, η μνήμη γίνεται γρηγορότερη, μικρότερη και ακριβότερη ανά byte.
Η κρυφή μνήμη δουλεύει χάρη στην αρχή της τοπικότητας. Ένα πρόγραμμα που χρησιμοποίησε μια θέση μνήμης είναι πιθανό να την ξαναχρησιμοποιήσει σύντομα (χρονική τοπικότητα), και να χρησιμοποιήσει τις γειτονικές της (χωρική τοπικότητα). Έτσι, ό,τι μεταφέρεται στην κρυφή μνήμη συνήθως ξαναχρειάζεται εκεί.
Λυμένα παραδείγματα
Παράδειγμα 1
Στο πρόγραμμα του πίνακα, η θέση αλλάζει από σε και η εντολή στη θέση γίνεται SUB 11 (αφαίρεση). Τι θα περιέχει η θέση στο τέλος;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 2
Ένας επεξεργαστής στα GHz ζητά μια τιμή από τη RAM, που απαντά σε ns. Πόσοι παλμοί ρολογιού περνούν στην αναμονή;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 3
Το των προσβάσεων βρίσκει την τιμή στην κρυφή μνήμη σε ns· το υπόλοιπο πηγαίνει στη RAM και κοστίζει ns. Ποιος είναι ο μέσος χρόνος πρόσβασης;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Παράδειγμα 4
Ο PC έχει την τιμή και ανακαλείται η εντολή JUMP 2 («συνέχισε από τη θέση »). Ποια εντολή εκτελείται μετά, και ποιοι καταχωρητές άλλαξαν;
Δοκίμασέ το πρώτα. Μετά δες τη λύση.
Ασκήσεις
Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.
Τα κατάφερες;
- Να περιγράφεις τα μέρη της αρχιτεκτονικής von Neumann και την ιδέα του αποθηκευμένου προγράμματος.
- Να εξηγείς τον ρόλο των καταχωρητών PC, IR, MAR, MDR και του συσσωρευτή.
- Να ακολουθείς βήμα-βήμα τον κύκλο ανάκλησης, αποκωδικοποίησης και εκτέλεσης.
- Να κατατάσσεις τα επίπεδα της ιεραρχίας μνήμης κατά ταχύτητα, μέγεθος και κόστος.
Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.