Μετάβαση στο περιεχόμενο

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

Το μοντέλο von Neumann, η ιεραρχία μνήμης και ο κύκλος εντολής.

40 λεπτά

Θα μάθεις να

  1. Να περιγράφεις τα μέρη της αρχιτεκτονικής von Neumann και την ιδέα του αποθηκευμένου προγράμματος.
  2. Να εξηγείς τον ρόλο των καταχωρητών PC, IR, MAR, MDR και του συσσωρευτή.
  3. Να ακολουθείς βήμα-βήμα τον κύκλο ανάκλησης, αποκωδικοποίησης και εκτέλεσης.
  4. Να κατατάσσεις τα επίπεδα της ιεραρχίας μνήμης κατά ταχύτητα, μέγεθος και κόστος.

Η ιδέα του αποθηκευμένου προγράμματος

Οι πρώτοι ηλεκτρονικοί υπολογιστές προγραμματίζονταν με καλώδια. Για να λύσει ο ENIAC ένα νέο πρόβλημα, οι χειριστές του ξανασύνδεαν φυσικά τις μονάδες του, και η αλλαγή μπορούσε να κρατήσει μέρες.

Το 1945 ο John von Neumann περιέγραψε μια άλλη ιδέα: το πρόγραμμα να αποθηκεύεται στη μνήμη, μαζί με τα δεδομένα, ως αριθμοί. Για να αλλάξει το πρόγραμμα, αρκεί να γραφτούν άλλοι αριθμοί στη μνήμη. Σχεδόν κάθε υπολογιστής που φτιάχτηκε από τότε, από τους εξυπηρετητές ως το κινητό σου, ακολουθεί αυτή την ιδέα.

Τα μέρη

ΜέροςΡόλος
Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ, CPU)εκτελεί τις εντολές
— Μονάδα Ελέγχου (control unit)διαβάζει την εντολή, την αποκωδικοποιεί και δίνει εντολές στα υπόλοιπα μέρη
— Αριθμητική και Λογική Μονάδα (ΑΛΜ, ALU)κάνει τις πράξεις: πρόσθεση, σύγκριση, λογικά ΚΑΙ, Ή, ΟΧΙ
— Καταχωρητές (registers)ελάχιστες, πανγρήγορες θέσεις μνήμης μέσα στην ΚΜΕ
Κύρια μνήμη (RAM)κρατά το πρόγραμμα και τα δεδομένα όσο τρέχει
Μονάδες εισόδου και εξόδουπληκτρολόγιο, οθόνη, δίκτυο, αποθηκευτικά μέσα
Δίαυλοι (buses)οι «δρόμοι» που ενώνουν τα παραπάνω

Οι δίαυλοι είναι τρεις. Ο δίαυλος διευθύνσεων λέει πού στη μνήμη, ο δίαυλος δεδομένων μεταφέρει τι, και ο δίαυλος ελέγχου λέει τι να γίνει: ανάγνωση ή εγγραφή.

Οι καταχωρητές

Η μνήμη είναι μια μεγάλη σειρά από θέσεις, καθεμία με τη διεύθυνσή της, έναν αριθμό από το 00 και πάνω. Για να δουλέψει με αυτήν, η ΚΜΕ χρησιμοποιεί μερικούς ειδικούς καταχωρητές:

ΚαταχωρητήςΤι κρατά
Μετρητής Προγράμματος (PC, program counter)τη διεύθυνση της επόμενης εντολής
Καταχωρητής Εντολών (IR, instruction register)την εντολή που εκτελείται τώρα
Καταχωρητής Διεύθυνσης Μνήμης (MAR)τη διεύθυνση που θα διαβαστεί ή θα γραφτεί
Καταχωρητής Δεδομένων Μνήμης (MDR)την τιμή που μόλις ήρθε από τη μνήμη ή που θα γραφτεί σε αυτήν
Συσσωρευτής (ACC, accumulator)το ενδιάμεσο αποτέλεσμα των πράξεων

Ο κύκλος εντολής

Η ΚΜΕ κάνει ένα μόνο πράγμα, ξανά και ξανά, δισεκατομμύρια φορές το δευτερόλεπτο:

  1. Ανάκληση (fetch). Η διεύθυνση του PC αντιγράφεται στον MAR. Η μνήμη στέλνει το περιεχόμενο εκείνης της θέσης στον MDR, και από εκεί η εντολή περνά στον IR. Ο PC αυξάνεται κατά 11, ώστε να δείχνει την επόμενη εντολή.
  2. Αποκωδικοποίηση (decode). Η μονάδα ελέγχου διαβάζει τον IR και ξεχωρίζει τι πρέπει να γίνει (τον κωδικό της εντολής) και με ποιο δεδομένο (τη διεύθυνση ή την τιμή).
  3. Εκτέλεση (execute). Η εντολή εκτελείται: φέρνει τιμή από τη μνήμη, κάνει πράξη στην ΑΛΜ, γράφει αποτέλεσμα ή αλλάζει τον PC για να κάνει άλμα.

Ας δούμε έναν φανταστικό, πολύ απλό επεξεργαστή. Στις διευθύνσεις 00 έως 33 βρίσκεται το πρόγραμμα, και στις 1010 έως 1212 τα δεδομένα:

ΔιεύθυνσηΠεριεχόμενοΣημασία
00LOAD 10φέρε στον ACC την τιμή της θέσης 1010
11ADD 11πρόσθεσε στον ACC την τιμή της θέσης 1111
22STORE 12γράψε τον ACC στη θέση 1212
33HALTσταμάτα
101077δεδομένο
111155δεδομένο
121200εδώ θα γραφτεί το αποτέλεσμα

Τέσσερις κύκλοι εντολής

Κάθε γραμμή είναι μια φάση ενός κύκλου. Πρόσεξε ότι ο PC αυξάνεται ήδη στην ανάκληση, πριν εκτελεστεί η εντολή.

ΒήμαΦάσηPCIRACCΤι γίνεται
Ζωντανή ενημέρωση

Η συχνότητα ρολογιού μετριέται σε hertz. Ένας επεξεργαστής στα 33 GHz κάνει 3⋅1093 \cdot 10^9 παλμούς το δευτερόλεπτο. Ένας κύκλος εντολής δεν διαρκεί απαραίτητα έναν παλμό: οι σύγχρονοι επεξεργαστές επικαλύπτουν τις φάσεις διαδοχικών εντολών και έχουν πολλούς πυρήνες, καθέναν με τον δικό του κύκλο.

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

Η ιδανική μνήμη θα ήταν τεράστια, πανγρήγορη, φθηνή και θα κρατούσε τα δεδομένα χωρίς ρεύμα. Τέτοια μνήμη δεν υπάρχει. Γι' αυτό οι υπολογιστές συνδυάζουν πολλά επίπεδα:

ΕπίπεδοΤυπικό μέγεθοςΤυπικός χρόνος πρόσβασηςΧάνει τα δεδομένα χωρίς ρεύμα;
Καταχωρητέςλίγες εκατοντάδες bytesκάτω από 11 nsναι
Κρυφή μνήμη (cache) L1, L2, L3από δεκάδες KB ως δεκάδες MBπερίπου 11 ως 1010 nsναι
Κύρια μνήμη (RAM)μερικά ως δεκάδες GBπερίπου 100100 nsναι
Δίσκος στερεάς κατάστασης (SSD)εκατοντάδες GB ως λίγα TBπερίπου 0,10{,}1 msόχι
Μαγνητικός σκληρός δίσκος (HDD)μερικά TBπερίπου 1010 msόχι

Οι αριθμοί είναι ενδεικτικοί και αλλάζουν κάθε λίγα χρόνια. Αυτό που δεν αλλάζει είναι η σχέση: όσο πλησιάζεις στην ΚΜΕ, η μνήμη γίνεται γρηγορότερη, μικρότερη και ακριβότερη ανά byte.

Η κρυφή μνήμη δουλεύει χάρη στην αρχή της τοπικότητας. Ένα πρόγραμμα που χρησιμοποίησε μια θέση μνήμης είναι πιθανό να την ξαναχρησιμοποιήσει σύντομα (χρονική τοπικότητα), και να χρησιμοποιήσει τις γειτονικές της (χωρική τοπικότητα). Έτσι, ό,τι μεταφέρεται στην κρυφή μνήμη συνήθως ξαναχρειάζεται εκεί.

Λυμένα παραδείγματα

Παράδειγμα 1

Στο πρόγραμμα του πίνακα, η θέση 1111 αλλάζει από 55 σε 2020 και η εντολή στη θέση 11 γίνεται SUB 11 (αφαίρεση). Τι θα περιέχει η θέση 1212 στο τέλος;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 2

Ένας επεξεργαστής στα 33 GHz ζητά μια τιμή από τη RAM, που απαντά σε 100100 ns. Πόσοι παλμοί ρολογιού περνούν στην αναμονή;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 3

Το 95%95\% των προσβάσεων βρίσκει την τιμή στην κρυφή μνήμη σε 22 ns· το υπόλοιπο 5%5\% πηγαίνει στη RAM και κοστίζει 100100 ns. Ποιος είναι ο μέσος χρόνος πρόσβασης;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Παράδειγμα 4

Ο PC έχει την τιμή 88 και ανακαλείται η εντολή JUMP 2 («συνέχισε από τη θέση 22»). Ποια εντολή εκτελείται μετά, και ποιοι καταχωρητές άλλαξαν;

Δοκίμασέ το πρώτα. Μετά δες τη λύση.

Ασκήσεις

Πρώτα ερωτήσεις με επιλογές: διαλέγεις, πατάς «Έλεγξε» και μαθαίνεις αμέσως αν το βρήκες και γιατί. Στο τέλος, λίγες ασκήσεις χωρίς επιλογές — εκεί κρύβεται μόνο η απάντηση.

Πολλαπλή επιλογήΆσκηση 1 από 14
Ποια ήταν η βασική ιδέα της αρχιτεκτονικής von Neumann;

Τα κατάφερες;

  • Να περιγράφεις τα μέρη της αρχιτεκτονικής von Neumann και την ιδέα του αποθηκευμένου προγράμματος.
  • Να εξηγείς τον ρόλο των καταχωρητών PC, IR, MAR, MDR και του συσσωρευτή.
  • Να ακολουθείς βήμα-βήμα τον κύκλο ανάκλησης, αποκωδικοποίησης και εκτέλεσης.
  • Να κατατάσσεις τα επίπεδα της ιεραρχίας μνήμης κατά ταχύτητα, μέγεθος και κόστος.

Λύσε τις ασκήσεις πιο πάνω και θα δεις εδώ πού στέκεσαι.