Εργαστηριακό Μάθημα 1Β: Αρχιτεκτονική Υπολογιστικών Συστημάτων

Εργαστηριακό Μάθημα 1Β: Αρχιτεκτονική Υπολογιστικών Συστημάτων

3.3.1 To ρολόι (clock)
Για να εκτελέσει η ΚΜΕ μια εντολή, εκτελεί όπως είδαμε έναν αριθμό από διαδοχικές λειτουργίες. Κάθε μία από αυτές τις λειτουργίες διαρκεί ένα μικρό χρονικό διάστημα. Για το συγχρονισμό των λειτουργιών αυτών, είναι απαραίτητο κάποιο ρολόι. Σε κάθε «κτύπο» του ρολογιού η ΚΜΕ εκτελεί μία στοιχειώδη λειτουργία. Το κύκλωμα παραγωγής του ρολογιού είναι συνήθως εξωτερικό και παράγει μια κυματομορφή όπως αυτή του παρακάτω σχήματος.

Λόγω του σχήματός του το σήμα αυτό ονομάζεται τετραγωνική παλμοσειρά. Το χρονικό διάστημα μεταξύ δύο διαδοχικών εναλλαγών του σήματος, για παράδειγμα από τα 0V στα 5V και πάλι στα 0V, είναι ίσο με μια ημιπερίοδο του ρολογιού. Δύο διαδοχικές ημιπερίοδοι αποτελούν μια ολόκληρη περίοδο (Τ) ή όπως αλλιώς λέμε έναν κύκλο του ρολογιού.

Το αντίστροφο της περιόδου είναι η συχνότητα. Η συχνότητα μας πληροφορεί τον αριθμό των κύκλων του ρολογιού στη διάρκεια του ενός δευτερολέπτου και για τους μικροεπεξεργαστές συνήθως είναι της τάξης των εκατοντάδων MHz. Κάθε ΚΜΕ είναι σχεδιασμένη να λειτουργεί μέχρι κάποια μέγιστη συχνότητα.

Ο ρυθμός με τον οποίο εκτελούνται οι εντολές είναι συνάρτηση της συχνότητας λειτουργίας της ΚΜΕ. Είναι όμως λάθος να πιστεύουμε ότι η ΚΜΕ εκτελεί εντολές με τη συχνότητα λειτουργίας του ρολογιού της. Εάν το ρολόι της ΚΜΕ είναι 100 MHz (100.000.000 κύκλους το δευτερόλεπτο) αυτό δε σημαίνει απαραίτητα ότι εκτελούνται και 100.000.000 εντολές το δευτερόλεπτο.

Ένα μέτρο της ταχύτητας της ΚΜΕ είναι ο μέσος όρος των εντολών που μπορεί να εκτελέσει σε ένα δευτερόλεπτο. Με ειδικά προγράμματα (benchmarks) μπορούν οι κατασκευαστές να μετρήσουν πόσες εντολές εκτελεί κατά μέσο όρο η ΚΜΕ. Ο μέσος όρος των εντολών που εκτελεί μια ΚΜΕ το δευτερόλεπτο μετριέται σε MIPS (Million Instructions Per Second), δηλαδή σε εκατομμύρια εντολές το δευτερόλεπτο. Στην περίπτωση που για παράδειγμα έχουμε μια ΚΜΕ με ρολόι 100 MHz το δευτερόλεπτο, και η κάθε εντολή διαρκεί 5 κύκλους ρολογιού, τότε η ταχύτητά της είναι 100.000.000/5=20.000.000 εντολές=20 MIPS.

Καταλήγοντας συμπεραίνουμε ότι η ταχύτητα της ΚΜΕ εξαρτάται από τη συχνότητα του ρολογιού της και αποτελεί ένα βασικό δείκτη του ρυθμού με τον οποίο εκτελούνται οι εντολές. Όσο πιο γρήγορο είναι το ρολόι τόσο πιο γρήγορα εκτελεί το πρόγραμμα η ΚΜΕ.

3.3.2 Το εύρος σε bits της ΚΜΕ

Ένα σημαντικό χαρακτηριστικό της ΚΜΕ είναι το εύρος σε bits των καταχωρητών και της Αριθμητικής και Λογικής Μονάδας (ΑΛΜ), που διαθέτει. Όσο πιο «μεγάλος» είναι ένας καταχωρητής τόσα «περισσότερα bits του δεδομένου χωράει». Όσο πιο μεγάλοι είναι οι καταχωρητές της ΚΜΕ τόσο πιο γρήγορα κατά κανόνα γίνεται η εκτέλεση των προγραμμάτων. Βέβαια το μήκος των καταχωρητών δεν μπορεί να γίνει απεριόριστα μεγάλο αφού γίνεται εξαιρετικά πολύπλοκη η κατασκευή της ΚΜΕ.

Συνήθως οι καταχωρητές έχουν ίδιο μήκος με το μήκος σε bits των υπόλοιπων εσωτερικών μονάδων της ΚΜΕ, όπως η ΑΛΜ, το οποίο λέμε και μήκος της ΚΜΕ. Η παράμετρος αυτή είναι αρκετά σημαντική για την επίδοση του συστήματος. Έτσι μια 16 bit ΚΜΕ σε σύγκριση με μια 8 bit ΚΜΕ που έχουν παρόμοιες εσωτερικές μονάδες, την ίδια συχνότητα ρολογιού και το ίδιο ρεπερτόριο εντολών είναι τουλάχιστον δύο φορές πιο γρήγορη.

3.3.3 Ρεπερτόριο εντολών

Το ρεπερτόριο εντολών μιας ΚΜΕ είναι καθοριστικός παράγοντας για να μπορέσουμε να αποφανθούμε εάν η ΚΜΕ αυτή είναι κατάλληλη για μια συγκεκριμένη χρήση. Για παράδειγμα στην περίπτωση όπου έχουμε μια εφαρμογή ψηφιακής επεξεργασίας της ανθρώπινης φωνής, η ΚΜΕ θα πρέπει να διαθέτει εντολές όπου εκτελούν γρήγορα μαθηματικές πράξεις τόσο με ακεραίους όσο και με δεκαδικούς αριθμούς. Σε αντίθεση, η χρήση μιας ΚΜΕ σε μια εφαρμογή όπως η μεταγωγή κλήσεων σε ένα ψηφιακό τηλεφωνικό κέντρο απαιτεί η ΚΜΕ να διαθέτει «έξυπνες» εντολές για τη γρήγορη μεταφορά των δεδομένων προς τη μνήμη και τις περιφερειακές μονάδες.

Ένα άλλο σημαντικό χαρακτηριστικό του ρεπερτορίου των εντολών μιας ΚΜΕ είναι η συμβατότητά του με παλαιότερες ΚΜΕ. Από πολύ νωρίς οι κατασκευαστές των ΚΜΕ συμπέραναν ότι οι καινούργιες ΚΜΕ θα έπρεπε να μπορούν να εκτελούν προγράμματα παλαιότερων ΚΜΕ. Δηλαδή το ρεπερτόριο των εντολών μιας καινούργιας ΚΜΕ μαζί με τις νέες εντολές θα έπρεπε να περιέχει όλες τις εντολές της προηγούμενης ΚΜΕ, της ίδιας οικογένειας. Με αυτό τον τρόπο, τα προγράμματα που έχουν γραφτεί για μια παλαιότερη ΚΜΕ δεν χρειάζεται να ξαναγραφτούν από την αρχή, για την καινούργια.

3.4. Διάδρομοι Υπολογιστικού Συστήματος

Το κοινό μέσο επικοινωνίας των συσκευών με τον επεξεργαστή ονομάζεται διάδρομος του υπολογιστικού συστήματος. Φυσικά ο διάδρομος αυτός αποτελείται από ένα σύνολο παράλληλων γραμμών σύνδεσης. Το πλήθος τους ονομάζεται εύρος διαδρόμου. Ανάλογα με το είδος της πληροφορίας που έχουν οι γραμμές αυτές μπορούμε να διακρίνουμε τις παρακάτω ομάδες συνδέσεων που αποτελούν τα μέρη ενός διαδρόμου.

  • Διάδρομος δεδομένων (Data bus) ονομάζεται το σύνολο των γραμμών από τις οποίες μεταφέρονται δεδομένα. Τα δεδομένα μπορεί να μεταφέρονται από τον επεξεργαστή, για παράδειγμα προς μια περιφερειακή μονάδα ή αντίστροφα. Από κάθε γραμμή μπορεί να μεταφέρεται ένα bit κάθε φορά. Ένας ASCII χαρακτήρας περιλαμβάνει 8 bit. Συνεπώς, για να μεταφέρονται ASCII χαρακτήρες, ένας χαρακτήρας κάθε φορά, απαιτείται διάδρομος δεδομένων με εύρος 8 bit. Αν ο διάδρομος δεδομένων είχε εύρος 16 bit τότε θα μπορούσαν να μεταφέρονται δύο (2) χαρακτήρες ASCII κάθε φορά. Το εύρος του διαδρόμου δεδομένων είναι σημαντικό για την ταχύτητα μεταφοράς των δεδομένων. Όσο περισσότερες είναι οι γραμμές του διαδρόμου δεδομένων τόσο περισσότερα δυαδικά ψηφία μπορούν να μεταδοθούν παράλληλα. Το εύρος του διαδρόμου δεδομένων στα υπολογιστικά συστήματα κυμαίνεται από 8 έως και 64 bit.
  • Διάδρομος διευθύνσεων (Address bus) ονομάζεται το σύνολο των γραμμών από τις οποίες μεταφέρεται η πληροφορία που χαρακτηρίζει και προσδιορίζει τη συσκευή με την οποία θέλει να επικοινωνήσει ο επεξεργαστής. Επειδή τη διεύθυνση τη δίνει ο επεξεργαστής οι γραμμές κατευθύνονται από τον επεξεργαστή προς το διάδρομο διευθύνσεων. Στη συνέχειαοι γραμμές των διευθύνσεων μέσα από το διάδρομο κατευθύνονται προς τις περιφερειακές μονάδες και τη μνήμη.
  • Διάδρομος ελέγχου (Control bus) ονομάζεται το σύνολο των γραμμών που μεταφέρουν σήματα συγχρονισμού και εντολές του επεξεργαστή και των περιφερειακών συσκευών για την ασφαλή και γρήγορη μεταφορά των δεδομένων. Επίσης τα σήματα ανάγνωσης ή εγγραφής περιλαμβάνονται στο διάδρομο αυτό.

Ταχύτητα διαδρόμου ονομάζεται το πλήθος των διαφορετικών δεδομένων που μπορούν να μεταφερθούν σε ένα δευτερόλεπτο. Για παράδειγμα σε διάδρομο με εύρος διαδρόμου δεδομένων 32 bit και ταχύτητα 10 εκατομμύρια δεδομένα το δευτερόλεπτο μπορούν να μεταφερθούν 10×32 = 320 εκατομμύρια δυαδικά ψηφία (bit) ή 40 εκατομμύρια bytes το δευτερόλεπτο.

Ένας επεξεργαστής διαθέτει τα παρακάτω σήματα με τα οποία συνδέεται με το υπόλοιπο σύστημα:

  • Σήματα διευθύνσεων από τα οποία δίνει τη διεύθυνση της μονάδας με την οποία θέλει να επικοινωνήσει.
  • Σήματα δεδομένων με τα οποία διαβάζει και γράφει δεδομένα στις υπόλοιπες μονάδες.
  • Σήματα ελέγχου όπως το RE (Read Enable) που ενεργοποιείται, όταν ο επεξεργαστής θέλει να διαβάσει δεδομένα και το WE (Write Enable) που ενεργοποιείται, όταν ο επεξεργαστής θέλει να γράψει δεδομένα.

3.5.1 Εισαγωγή – Χαρακτηριστικά στοιχεία Μνήμης

Ας φανταστούμε τη μνήμη, όπως φαίνεται στο παρακάτω σχήμα, σαν ένα πλήθος από συρτάρια. Το κάθε συρτάρι είναι μία θέση αποθήκευσης δεδομένων και έχει σαν διεύθυνση έναν αριθμό. Έτσι η αρίθμηση των συρταριών αποτελεί τη διεύθυνσή τους ενώ το περιεχόμενό τους αντιστοιχεί στα δεδομένα. Για παράδειγμα στη διεύθυνση ή στη θέση μνήμης 93 είναι ο αριθμός 37. Γενικά μπορούμε να πούμε ότι κάθε θέση μνήμης έχει μία διεύθυνση, δηλαδή έναν αριθμό που τη χαρακτηρίζει για να δώσουμε ή να πάρουμε ένα δεδομένο από τη θέση αυτή. Μια μνήμη λοιπόν, όσες θέσεις αποθήκευσης έχει, τόσες διαφορετικές διευθύνσεις πρέπει να περιλαμβάνει. Το πλήθος των διαφορετικών θέσεων και συνεπώς διευθύνσεων που έχει μία μνήμη ονομάζεται μέγεθος της μνήμης.

Στα υπολογιστικά συστήματα τα ψηφία που χρησιμοποιούμε είναι δυαδικά. Έτσι και η παράσταση της διεύθυνσης μίας μνήμης γίνεται από δυαδικά ψηφία. Για παράδειγμα μία μνήμη που χρησιμοποιεί 3 δυαδικά ψηφία για την παράσταση της διεύθυνσης μπορεί να έχει 23 = 8 διαφορετικές θέσεις μνήμης.

Κάθε θέση μνήμης μπορούμε να φανταστούμε ότι είναι χωρισμένη σε κελιά, σε κάθε ένα από τα οποία μπορούμε να αποθηκεύσουμε ένα δυαδικό ψηφίο. Το πλήθος των κελιών που υπάρχουν σε μία θέση μνήμης ονομάζεται μήκος λέξης της μνήμης. Στο παρακάτω σχήμα φαίνεται μια μνήμη 100 θέσεων όπου σε κάθε θέση μπορούν να αποθηκευτούν 8 δυαδικά ψηφία.

Στον παρακάτω πίνακα φαίνονται τυπικά μεγέθη μνημών μικρής χωρητικότητας.

3.5.2 Κατηγορίες μνημών

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

  • μνήμες RAM (Random Access Memory Μνήμη τυχαίας προσπέλασης), από τις οποίες μπορούμε να διαβάζουμε και να γράφουμε δεδομένα. Οι μνήμες RAM διαγράφονται με τη διακοπή της τροφοδοσίας.
  • μνήμες ROM (Read Only Memory Μνήμη μόνο ανάγνωσης), από τις οποίες μπορούμε να διαβάζουμε μόνο το περιεχόμενό τους. Οι μνήμες ROM δε χάνουν τα δεδομένα τους με τη διακοπή της τροφοδοσίας.

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

Ο όρος «Μνήμες μόνο ανάγνωσης» – ROM χρησιμοποιείται για να χαρακτηρίσει μια ολόκληρη κατηγορία μνημών από τις οποίες μπορούμε μόνο να διαβάζουμε και περιλαμβάνουν τις απλές ROM, PROM, EPROM,
EEPROM, Flash. Κάποιες κατηγορίες από αυτές τις μνήμες μπορούν να διαγραφούν και να επανεγγραφούν από τον χρήστη.

Κατηγορίες Μνημών

3.5.3 Τα εξωτερικά σήματα μιας μνήμης

Μία μνήμη επικοινωνεί με τα υπόλοιπα κυκλώματα μέσω τριών ομάδων σημάτων. Ας πάρουμε σαν παράδειγμα μια μνήμη με χωρητικότητα 1024 byte= 1Kbyte. Στο παρακάτω σχήμα το οποίο απεικονίζει μια τέτοια μνήμη,
μπορούμε να διακρίνουμε τις εξής ομάδες σημάτων:

Τα σήματα της διεύθυνσης (Α0-Α9) Τα σήματα της διεύθυνσης συνδέονται στον διάδρομο διευθύνσεων του υπολογιστικού συστήματος. Τα σήματα αυτά δηλώνονται με το γράμμα Α και δείκτη έναν αριθμό που δείχνει τη δυαδική αξία του bit της διεύθυνσης. Το σήμα με δείκτη τον αριθμό 0 αντιστοιχεί στο bit με τη μικρότερη δυαδική αξία (LSB-least significant bit) και το σήμα με τον δείκτη 9 στο bit με τη μεγαλύτερη δυαδική αξία (MSB-most significant bit).

Τα σήματα των δεδομένων (D0-D7). Τα σήματα των δεδομένων συνδέονται στο διάδρομο δεδομένων του υπολογιστικού συστήματος. Τα σήματα αυτά δηλώνονται με το γράμμα D και δείκτη έναν αριθμό που δείχνει τη δυαδική αξία του bit όπως στα σήματα της διεύθυνσης. Τα σήματα των δεδομένων είναι κοινά για τα δεδομένα εισόδου και τα δεδομένα εξόδου.

Τα σήματα ελέγχου (RE, CE, WE). Τα σήματα ελέγχου συνδέονται στο διάδρομο ελέγχου του υπολογιστικού συστήματος. Όπως κάθε συσκευή που συνδέεται σε διάδρομο υπολογιστικού συστήματος, έτσι και η μνήμη διαθέτει σήμα ενεργοποίησης CE (Chip Enable). Η γραμμή πάνω από το σήμα δηλώνει ότι η μνήμη ενεργοποιείται, δηλαδή επιλέγεται, όταν το σήμα CE έχει χαμηλή τάση, ενώ μένει απενεργοποιημένη, όσο το σήμα CE έχει υψηλή τάση. Το σήμα αυτό πολλές φορές συμβολίζεται και ως CS (Chip Select).

Πρόσθετα οι μνήμες RAM διαθέτουν σήμα επιλογής εγγραφής στη μνήμη WE (Write Enable). Αντίστοιχα όταν το σήμα WE έχει χαμηλή τάση τότε η μνήμη εκτελεί τη διαδικασία εγγραφής δεδομένων, ενώ όταν το σήμα WE βρίσκεται σε υψηλή τάση τότε τα περιεχόμενα της μνήμης δεν μπορούν να αλλάξουν.


Τέλος οι μνήμες RAM διαθέτουν σήμα επιλογής ανάγνωσης ή εγγραφής στη μνήμη RE (Read Enable). Όταν το σήμα RE έχει χαμηλή τάση τότε η μνήμη εκτελεί τη διαδικασία ανάγνωσης δεδομένων, ενώ όταν το σήμα RE βρίσκεται σε υψηλή τάση τότε η μνήμη δεν εμφανίζει τα δεδομένα στην έξοδό της.

3.6.1 Ανάγνωση Μνήμης

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

  1. Η είσοδος της διεύθυνσης της μνήμης παίρνει την τιμή της διεύθυνσης που θέλουμε να διαβάσουμε.
  2. Ενεργοποιείται το σήμα επιλογής της μνήμης CS (chip select).
  3. Το περιεχόμενο της θέσης μνήμης, που έχει επιλεγεί, εμφανίζεται ως έξοδος στις γραμμές των δεδομένων της μνήμης.
  4. Ολοκλήρωση ανάγνωσης δεδομένου.

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

Χρόνος επιλογής ονομάζεται το χρονικό διάστημα που χρειάζεται για να εμφανιστούν τα δεδομένα της θέσης μνήμης από τη στιγμή που θα ενεργοποιηθεί το σήμα chip select.

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

Μας δείχνει πόσο γρήγορα μπορούμε να διαβάσουμε δεδομένα. Για παράδειγμα αν έχουμε χρόνο κύκλου ανάγνωσης 10nsec τότε σε 1 sec μπορούμε να διαβάσουμε 100 εκατομμύρια θέσεις μνήμης.

3.6.2 Εγγραφή μνήμης

Τα βασικά βήματα που πρέπει να γίνουν για την εγγραφή ενός δεδομένου σε μια θέση μνήμης είναι τα εξής:

  1. Δίνεται η διεύθυνση στην οποία θέλουμε να γράψουμε.
  2. Επιλέγεται η μνήμη με την ενεργοποίηση του chip select.
  3. Η είσοδος των δεδομένων παίρνει την τιμή που θέλουμε να γράψουμε.
  4. Ενεργοποιείται η διαδικασία εγγραφής με το σήμα WE (write enable).
  5. Η εγγραφή έχει ολοκληρωθεί και μπορεί να ξεκινήσει νέα εγγραφή ή ανάγνωση.

Το άθροισμα των χρόνων που χρειάζονται για τα πέντε αυτά βήματα ονομάζεται χρόνος κύκλου εγγραφής (tWCY).

Χρόνος καθυστέρησης εγγραφής (tAW) είναι ο χρόνος που μεσολαβεί από τη στιγμή που θα εφαρμοστεί η διεύθυνση της μνήμης που θέλουμε να γράψουμε, μέχρι την ενεργοποίηση του σήματος WE (write enable).

3.6.3 Λανθάνουσα μνήμη

Η ταχύτητα ενός υπολογιστικού συστήματος εξαρτάται σε μεγάλο βαθμό και από την ταχύτητα της μνήμης. Όσο γρηγορότερα γίνεται η ανάγνωση και η εγγραφή στη μνήμη τόσο πιο γρήγορα εκτελούνται τα προγράμματα σε ένα υπολογιστικό σύστημα. Η χρήση όμως γρήγορης κύριας μνήμης δεν είναι δυνατόν να γίνει επειδή το κόστος του υπολογιστικού συστήματος θα ήταν πολύ υψηλό.

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

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

Διαγραφή με βάση το χρόνο παραμονής (FIFO first in – first out). Σύμφωνα με την τεχνική αυτή η γραμμή που έχει παραμείνει στη λανθάνουσα μνήμη περισσότερο χρόνο θα πρέπει να διαγραφεί. Δηλαδή διαγράφεται η παλαιότερη χρονικά εγγραφή.
Διαγραφή με βάση τη λιγότερη χρήση (LRU – least recently used). Σύμφωνα με την τεχνική αυτή η γραμμή που θα διαγραφεί είναι αυτή που έχει μείνει αχρησιμοποίητη περισσότερο χρόνο από τις άλλες. Έτσι μια παλιά εγγραφή που χρησιμοποιείται συχνά δεν διαγράφεται, σε αντίθεση με την προηγούμενη τεχνική.

Συνήθως η λανθάνουσα μνήμη περιλαμβάνει 2 ή 3 επίπεδα. με διαφορετική χωρητικότητα αλλά και ταχύτητα λειτουργίας. Για τη λανθάνουσα μνήμη θα μιλήσουμε και στην ενότητα των επεξεργαστών.