Κατέβασμα παρουσίασης
Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε
1
ΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΤΗΣ INTEL
Από το βιβλίο ΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ ΤΗΣ INTEL 8086/8088, 80186/80188, 80286, 80386, 80486, Pentium και Pentium Pro Αρχιτεκτονική, Προγραμματισμός και Διεπαφές Τέταρτη Έκδοση BARRY B. BREY DeVry Institute of Technology Μετάφραση: Γεώργιος Παπαδόπουλος, Σταύρος Κουμπιάς, Γρηγόριος Καλύβας
2
Ι. Προστατευόμενος Τρόπος Λειτουργίας (Protected Mode of Operation )
Η διευθυνσιοδότηση στον προστατευμένο τρόπο λειτουργίας (από τον και πάνω) επιτρέπει την προσπέλαση σε δεδομένα και κώδικα που βρίσκονται μέσα και πέρα από το πρώτο Mbyte της μνήμης. Η διευθυνσιοδότηση αυτής της εκτεταμένης περιοχής μνήμης απαιτεί αλλαγή στο μηχανισμό διευθυνσιοδότησης μέσω τμήματος και απόκλισης που χρησιμοποιείται στον πραγματικό τρόπο λειτουργίας. Όταν επιχειρείται προσπέλαση σε κώδικα ή δεδομένα που βρίσκονται στην εκτεταμένη μνήμη, εξακολουθεί να χρησιμοποιείται η διεύθυνση απόκλισης που ορίζει μια θέση μέσα σε ένα τμήμα μνήμης. Η διαφορά είναι ότι εδώ δεν υπάρχει η διεύθυνση τμήματος όπως αυτή ορίσθηκε στον πραγματικό τρόπο λειτουργίας. Στη θέση της διεύθυνσης τμήματος, ο καταχωρητής τμήματος περιέχει έναν επιλογέα (selector) οποίος με τη σειρά του επιλέγει ένα περιγραφέα (descriptor) μέσα σε ένα πίνακα (descriptor table). Ο περιγραφέας καθορίζει τη διεύθυνση αρχής του τμήματος, το μήκος του καθώς και τα δικαιώματα προσπέλασης. Εξ’ αιτίας του ότι ο καταχωρητής τμήματος μαζί με τη διεύθυνση απόκλισης εξακολουθούν να διευθυνσιοδοτούν τη μνήμη, οι εντολές στον προστατευμένο τρόπο λειτουργίας είναι ίδιες με αυτές του πραγματικού τρόπου. Στην πραγματικότητα τα περισσότερα προγράμματα τα οποία είναι γραμμένα για να εκτελούνται στον πραγματικό τρόπο, εκτελούνται και στον προστατευμένο τρόπο χωρίς καμμία αλλαγή. Η διαφορά μεταξύ των δύο τρόπων είναι η διαδικασία με την οποία μεταφράζεται ο καταχωρητής τμήματος από τον μικροεπεξεργαστή για την προσπέλαση της μνήμης.
3
Ι.1 Επιλογείς (selectors) και Περιγραφείς (descriptors)
Ο επιλογέας που βρίσκεται μέσα στον καταχωρητή τμήματος, επιλέγει έναν από 8192 περιγραφείς μέσα από τον ένα εκ των δύο συνολικά πινάκων περιγραφέων που υπάρχουν στο σύστημα. Ο περιγραφέας καθορίζει τη θέση, το μέγεθος και τα δικαιώματα προσπέλασης του τμήματος. Έμμεσα, ο καταχωρητής τμήματος εξακολουθεί να επιλέγει ένα τμήμα μνήμης, απλά δεν το κάνει άμεσα όπως στον πραγματικό τρόπο λειτουργίας. Για παράδειγμα, στον πραγματικό τρόπο λειτουργίας, αν CS = 0008H, το τμήμα κώδικα αρχίζει στη θέση 00080Η. Στον προστατευμένο τρόπο, αυτός ο αριθμός είναι δυνατό να προσπελαύνει οποιαδήποτε διεύθυνση μνήμης σε ολόκληρο το σύστημα για το τμήμα κώδικα. Υπάρχουν δύο πίνακες περιγραφέων που χρησιμοποιούνται με τους καταχωρητές τμήματος: ο ένας περιέχει γενικούς (global) περιγραφείς και ο άλλος τοπικούς (local). Οι γενικοί περιγραφείς περιέχουν ορισμούς τμημάτων που εφαρμόζονται σε όλα τα προγράμματα, ενώ οι τοπικοί περιγραφείς συνήθως είναι μοναδικοί για κάθε εφαρμογή. Ο κάθε τέτοιος πίνακας περιέχει 8192 περιγραφείς με αποτέλεσμα κάθε στιγμή να είναι διαθέσιμοι σε μια εφαρμογή περιγραφείς. Επειδή ένας περιγραφέας ορίζει ένα τμήμα μνήμης, κάθε εφαρμογή έχει στη διάθεσή της διαφορετικά τμήματα.
4
Το Σχήμα 2-6 παρουσιάζει τη δομή ενός περιγραφέα για τους μικροεπεξεργαστές από τον έως τον Pentium Pro. Παρατηρείστε ότι κάθε ένας από τους περιγραφείς έχει μήκος 8 bytes με αποτέλεσμα ο κάθε ένας από τους πίνακες να έχει μέγεθος 64 Kbytes. Οι περιγραφείς του διαφέρουν ελάχιστα από αυτούς των έως Pentium Pro αλλά είναι συμβατοί προς τα πάνω. ΣΧΗΜΑ 2-6. Η μορφή περιγραφέα για τους μικροεπεξεργαστές και 80386/ 80486/ Pentium/Pentium Pro
5
Το πεδίο του περιγραφέα που αναφέρεται στη διεύθυνση βάσης δείχνει την αρχική διεύθυνση του τμήματος. Για τον μικροεπεξεργαστή, το πεδίο αυτό έχει εύρος 24-bit και έτσι τα τμήματα είναι δυνατό να αρχίζουν σε οποιαδήποτε διεύθυνση μέσα στα 16 Mbytes της μνήμης. Να σημειωθεί ότι ο περιορισμός βηματισμού των ορίων των τμημάτων ανά 16 bytes που υπήρχε στον πραγματικό τρόπο, εδώ δεν υπάρχει. Από τον και πάνω, το εύρος του πεδίου διεύθυνσης βάσης είναι 32-bit με αποτέλεσμα δυνατότητα διευθυνσιοδότησης τμήματος οπουδήποτε μέσα σε 4 Gbytes της μνήμης. Να σημειωθεί πως ο περιγραφέας του είναι προς τα πάνω συμβατός με αυτούς των έως Pentium Pro, έχοντας τα 16 πλέον σημαντικά bits ίσα με 0. Το πεδίο ορίου τμήματος (segment limit) περιέχει την τελευταία διεύθυνση απόκλισης που είναι δυνατό να βρεθεί στο τμήμα. Για παράδειγμα, αν ένα τμήμα ξεκινά από τη θέση μνήμης F00000H και τερματίζει στη θέση F000FFH, η διεύθυνση βάσης είναι η F00000H και το όριο είναι FFH. Για τον η διεύθυνση βάσης είναι η F00000H και το όριο 00FFH. Για τον και πάνω η διεύθυνση βάσης είναι η 00F00000H και το όριο είναι 000FFH. Επισημαίνεται ότι ο έχει ένα όριο τμήματος 16-bit ενώ από τον και πάνω υπάρχει όριο τμήματος των 20-bit. Ο προσπελαύνει τμήματα μνήμης τα οποία είναι μεγέθους από 1 έως 64 Kbytes (διότι η διεύθυνση απόκλισης είναι ένα μέγεθος των 16-bits λόγω της 16-bit αρχιτεκτονικής του μικροεπεξεργαστή). Από τον και πάνω προσπελαύνονται τμήματα μεγέθους 1 έως 1 Μbytes ή 4Κ έως 4 Gbytes (η αρχιτεκτονική είναι 32-bit, κάτι που επιτρέπει – στον προστατευμένο τρόπο λειτουργίας – διεύθυνση απόκλισης των 32-bits).
6
Υπάρχει άλλη μία ιδιαιτερότητα που βρίσκεται στους Pentium Pro μικροεπεξεργαστές και δεν υπάρχει στον περιγραφέα του 80286: το G bit ή bit αναλυτικότητας (granularity bit). Εάν G = 0 τότε το πεδίο του ορίου καθορίζει ένα μέγεθος τμήματος από ένα byte έως 1 Mbyte. Αν G = 1 τότε το όριο είναι ένα οποιοδήποτε πολλαπλάσιο των 4 Kbytes. Αυτό επιτρέπει ένα μέγεθος τμήματος από 4 Kbytes έως 4 Gbytes σε βήματα των 4Κ. Το AV bit, στον περιγραφέα από τον και μετά, χρησιμοποιείται σε μερικά λειτουργικά συστήματα για την ένδειξη της διαθεσιμότητας (AV = 1) ή μη (AV = 0) του τμήματος. Το D bit δείχνει το πώς οι επεξεργαστές από τον έως τον Pentium Pro, προσπελαύνουν τα δεδομένα στους καταχωρητές και στη μνήμη στον προστατευμένο τρόπο λειτουργίας. Αν D = 0 οι εντολές είναι 16-bit εντολές, συμβατές με την αρχιτεκτονική των 8086 – Αυτό σημαίνει ότι οι εντολές χρησιμοποιούν 16-bit μετατοπίσεις και 16-bit καταχωρητές. Ο τρόπος αυτός λειτουργίας συνήθως καλείται 16-bit τρόπος λειτουργίας. Αν D = 1 τότε οι εντολές είναι 32-bit εντολές. Εξ’ ορισμού στον 32-bit τρόπο λειτουργίας ο μικροεπεξεργαστής θεωρεί όλες τις μετατοπίσεις και τους καταχωρητές 32-bit. Υπάρχει όμως και η δυνατότητα σε κάθε τρόπο λειτουργίας, και στον 16-bit και στον 32-bit, για αλλαγή της εξ’ ορισμού (default) θεώρησης των μετατοπίσεων και των καταχωρητών.
7
Τα πεδίο δικαιωμάτων πρόσβασης (Σχήμα 2-7) ελέγχει την πρόσβαση στο τμήμα της μνήμης.
Το byte αυτό περιγράφει πως λειτουργεί το τμήμα στο σύστημα και πως επιτρέπεται ο πλήρης έλεγχος επί του τμήματος. Αν το τμήμα είναι ένα τμήμα δεδομένων ορίζεται και η κατεύθυνση ανάπτυξής του. Αν το μέγεθος του τμήματος ξεπεράσει το όριό του η εκτέλεση του προγράμματος διακόπτεται με την ένδειξη γενικού λάθους προστασίας (general protection fault). Είναι δυνατόν ακόμα να καθορισθεί και αν στο τμήμα μπορούν να εγγραφούν δεδομένα ή το τμήμα είναι τμήμα μόνο ανάγνωσης και προστατευμένο από εγγραφή. Το τμήμα κώδικα επίσης ελέγχεται κατά παρόμοιο τρόπο και μπορούμε να έχουμε και τμήμα προστατευμένο ακόμα και από ανάγνωση, για λόγους διασφάλισης και προστασίας του λογισμικού. ΣΧΗΜΑ 2-7. To byte των δικαιωμάτων πρόσβασης για τον περιγραφέα 80286, 80386, 80486, Pentium και Pentium Pro
8
Οι περιγραφείς επιλέγονται από τον πίνακα των περιγραφέων σύμφωνα με τα περιεχόμενα του καταχωρητή τμήματος. Οπως φαίνεται από το Σχήμα 2-8, ο καταχωρητής τμήματος περιέχει ένα 13-bit πεδίο επιλογέα (Selector), ένα bit επιλογής πίνακα και ένα πεδίο αίτησης επιπέδου δικαιωμάτων. Ο 13-bit επιλογέας επιλέγει έναν από 8192 περιγραφείς από τον πίνακα περιγραφέων. Το TI bit επιλέγει είτε τον γενικό πίνακα (TI = 0) είτε τον τοπικό πίνακα (TI = 1). To αιτούμενο προνομιακό επίπεδο (Requested Privilege Level – RPL) δηλώνει το προνομιακό επίπεδο που επιθυμείται από το εν λόγω τμήμα. Το υψηλότερο προνομιακό επίπεδο είναι το 00 και το χαμηλότερο 11. Αν το αιτούμενο επίπεδο είναι ίσο ή υψηλότερο σε προτεραιότητα από το επίπεδο που τίθεται με το πεδίο δικαιωμάτων πρόσβασης, τότε επιτρέπεται η πρόσβαση στο τμήμα. Για παράδειγμα αν το αιτούμενο επίπεδο δικαιωμάτων είναι 10 και το πεδίο διακαιωμάτων πρόσβασης είναι 11, τότε επιτρέπεται η προσπέλαση του τμήματος, διότι το 10 είναι υψηλότερο προνομιακό επίπεδο. Τα προνομιακά επίπεδα χρησιμοποιούνται σε πολυχρηστικά περιβάλλοντα. Αν παραβιαστεί ένα επίπεδο, τότε κανονικά το σύστημα θα εκδόσει μια ένδειξη αυτής της παραβίασης. ΣΧΗΜΑ 2-8. Τα περιεχόμενα ενός καταχωρητή τμήματος σε προστατευμένο τρόπο λειτουργίας για τους μικροεπεξεργαστές και πάνω
9
Το Σχήμα 2-9 δείχνει το πώς ο καταχωρητής τμήματος, που περιέχει τον επιλογέα επιλέγει έναν περιγραφέα από τον γενικό πίνακα. Η καταχώρηση στον γενικό πίνακα επιλέγει με τη σειρά της ένα τμήμα στη μνήμη του συστήματος. Στο σχήμα ο DS περιέχει το 0008Η το οποίο επιλέγει τον περιγραφέα υπ’ αριθμό 1 από το γενικό πίνακα χρησιμοποιώντας ένα αιτούμενο επίπεδο δικαιωμάτων ίσο με 00. Ο περιγραφέας Νο.1 ορίζει τη βάση του τμήματος στη θέση Η και το όριο στη θέση 000FFH. Αυτό σημαίνει ότι το φόρτωμα της τιμής 0008Η στον DS οδηγεί το μικροεπεξεργαστή στη χρήση των θέσεων Η – FFH για το τμήμα δεδομένων στο συγκεκριμένο παράδειγμα. Να σημειωθεί ότι ο Νο.0 περιγραφέας ονομάζεται κενός ή μηδενικός (null) και απαγορεύεται να χρησιμοποιείται για προσπέλαση μνήμης. ΣΧΗΜΑ 2-9. Χρήση του καταχωρητή DS για την επιλογή ενός περιγραφέα από τον συνολικό πίνακα περιγραφέων. Σ΄ αυτό το παράδειγμα ο καταχωρητής DS προσπελαύνει τις θέσεις μνήμης H-1000FFH ως ένα τμήμα δεδομένων
10
Ι.2 Μη Oρατοί από το Πρόγραμμα Kαταχωρητές
Ο γενικός και ο τοπικός πίνακας περιγραφέων βρίσκονται στην κύρια μνήμη του συστήματος. Για την προσπέλαση αυτών των πινάκων οι 80286, 80386, Pentium και Pentium Pro χρησιμοποιούν «αόρατους» από το πρόγραμμα καταχωρητές. Οι αόρατοι αυτοί καταχωρητές δεν προσπελαύνονται άμεσα από το πρόγραμμα. Γι’ αυτό και έχουν τέτοια ονομασία, παρ’όλο που κάποιοι από αυτούς είναι δυνατό να προσπελασθούν από το λογισμικό του συστήματος. Το Σχήμα 2-10 παρουσιάζει τους μη ορατούς καταχωρητές όπως αυτοί εμφανίζονται στους μικροεπεξεργαστές από τον ως τον Pentium Pro. Αυτοί οι μικροεπεξεργαστές ελέγχουν το μικροεπεξεργαστή στον προστατευμένο τρόπο λειτουργίας. ΣΧΗΜΑ Oι μη-ορατοί από το πρόγραμμα καταχωρητής στους μικροεπεξεργαστές και πάνω
11
Κάθε ένας από τους καταχωρητές τμήματος περιέχει ένα μη ορατό μέρος κατά τον προστατευμένο τρόπο λειτουργίας. Το μη ορατό αυτό τμήμα των καταχωρητών συνήθως αποκαλείται κρυφός καταχωρητής (cache). Ο κρυφός αυτός καταχωρητής δεν πρέπει να συγχέεται με τις τυπικές κρυφές μνήμες πρώτου και δευτέρου επιπέδου που υπάρχουν στους ανώτερους επεξεργαστές της οικογένειας. Στο μη ορατό μέρος του καταχωρητή τμήματος φορτώνονται η διεύθυνση βάσης, το όριο και τα δικαιώματα πρόσβασης κάθε φορά που αλλάζει η τιμή του καταχωρητή τμήματος. Όταν μια νέα τιμή φορτώνεται στον καταχωρητή τμήματος, ο μικροεπεξεργαστής προσπελαύνει έναν πίνακα περιγραφέων και φορτώνει τα περιεχόμενα του επιλεγμένου περιγραφέα στο κρυφό μέρος του καταχωρητή τμήματος. Οι τιμές αυτές θα κρατηθούν εκεί και θα χρησιμοποιούνται για την προσπέλαση του τμήματος εως ότου αλλάξει η τιμή του καταχωρητή τμήματος. Αυτό επιτρέπει στον μικροεπεξεργαστή να κάνει επαναληπτικές προσπελάσεις στο ίδιο τμήμα χωρίς κάθε φορά να ανατρέχει στους πίνακες περιγραφέων, γι’ αυτό και ο όρος κρυφός (cache). Ο καταχωρητής γενικού πίνακα περιγραφέων , GDTR (global descriptor table register), και ο καταχωρητής πίνακα περιγραφέων διακοπής, IDTR (interrupt descriptor table register), περιέχουν τη διεύθυνση βάσης και το όριο του πίνακα περιγραφέων. Το όριο του κάθε πίνακα περιγραφέων είναι 16-bits, εξ’αιτίας του μέγιστου μήκους των 64 Kbytes. Όταν επιθυμείται προστατευμένος τρόπος λειτουργίας, η διεύθυνση του γενικού πίνακα περιγραφέων και το όριό του φορτώνονται στον GDTR. Πριν από την έναρξη χρήσης του προστατευμένου τρόπου λειτουργίας, πρέπει επίσης να αρχικοποιηθεί ο πίνακας περιγραφέων διακοπής και ο IDTR καταχωρητής.
12
Η θέση του τοπικού πίνακα περιγραφέων επιλέγεται από το γενικό πίνακα
Η θέση του τοπικού πίνακα περιγραφέων επιλέγεται από το γενικό πίνακα. Ενας από τους γενικούς περιγραφείς έχει συμπληρωθεί ώστε να οδηγεί στον τοπικό πίνακα. Για να προσπελασθεί ο τοπικός πίνακας, ο καταχωρητής τοπικού πίνακα περιγραφέων, LDTR (local descriptor table register), φορτώνεται με έναν επιλογέα όπως ακριβώς και ένας καταχωρητής τμήματος. Ο επιλογέας αυτός ορίζει μια θέση στον γενικό πίνακα περιγραφέων από όπου φορτώνονται στo κρυφό τμήμα του LDTR η διεύθυνση βάσης, το μέγεθος και τα δικαιώματα πρόσβασης του τοπικού πίνακα περιγραφέων. Ο καταχωρητής έργων, TR (Task Register), περιέχει έναν επιλογέα που ορίζει έναν περιγραφέα, ο οποίος με τη σειρά του ορίζει ένα έργο., δηλ. συνήθως ένα πρόγραμμα εφαρμογής. Ο περιγραφέας για τη διαδικασία είναι αποθηκευμένος στο γενικό πίνακα περιγραφέων έτσι ώστε η πρόσβαση να μπορεί να ελεγχθεί μέσω των διαφορετικών προνομιακών επιπέδων. Ο TR επιτρέπει την μεταγωγή μεταξύ δύο έργων (task switch) σε 17μsec περίπου. Η μεταγωγή έργων επιτρέπει στα συστήματα πολυδιεργασίας να μετακινούνται από το ένα έργο στο άλλο με ένα απλό και τυπικό τρόπο.
13
ΙΙ. ΣΕΛΙΔΟΠΟΙΗΣΗ ΜΝΗΜΗΣ
Ο μηχανισμός σελιδοποίησης μνήμης που εμφανίζεται από τον και μεταγενέστερους επιτρέπει σε οποιαδήποτε φυσική διεύθυνση μνήμης να ανατεθεί σε οποιαδήποτε γραμμική διεύθυνση. Ο μηχανισμός σελιδοποίησης επιτρέπει σε οποιαδήποτε γραμμική (λογική) διεύθυνση, όπως δημιουργείται από ένα πρόγραμμα, να τοποθετηθεί σε οποιαδήποτε σελίδα φυσικής μνήμης, όπως δημιουργείται από το μηχανισμό σελιδοποίησης. Μια σελίδα γραμμικής μνήμης (linear memory page) είναι μια σελίδα η οποία διευθυνσιοδοτείται μ’ έναν επιλογέα και ένα offset είτε στον πραγματικό ή τον προστατευμένο τρόπο. Μια σελίδα φυσικής μνήμης (physical memory page) είναι μια σελίδα η οποία υφίσταται σε κάποια πραγματική θέση φυσικής μνήμης. Για παράδειγμα, η θέση γραμμικής μνήμης 20000Η θα μπορούσε να απεικονιστεί στη θέση φυσικής μνήμης 30000Η, ή σε οποιαδήποτε άλλη θέση, με τη μονάδα σελιδοποίησης. Αυτό σημαίνει ότι μία εντολή η οποία προσπελαύνει τη θέση 20000Η προσπελαύνει πραγματικά τη θέση 30000Η. Κάθε σελίδα μνήμης του έχει μήκος 4K bytes. Ο μηχανισμός σελιδοποίησης επιτρέπει στο λογισμικό του συστήματος να βρίσκεται σε οποιαδήποτε φυσική διεύθυνση. Τρεις συνιστώσες χρησιμοποιούνται στη μετάφραση της διεύθυνσης σελίδας: ο κατάλογος σελίδων, ο πίνακας σελίδων και η πραγματική σελίδα φυσικής μνήμης.
14
ΙΙ.1 Καταχωρητές Σελιδοποίησης
Η μονάδα σελιδοποίησης ελέγχεται από τα περιεχόμενα των καταχωρητών ελέγχου του μικροεπεξεργαστή (Δείτε στο Σχήμα 2-11 για τα περιεχόμενα των καταχωρητών ελέγχου CR0 – CR3). Να σημειωθεί ότι οι καταχωρητές αυτοί είναι διαθέσιμοι από τον και μετά. Επίσης, οι Pentium και Pentium Pro περιέχουν έναν επιπλέον καταχωρητή ελέγχου, τον CR4, ο οποίος ελέγχει επεκτάσεις λειτουργιών που παρέχονται από αυτούς τους μικροεπεξεργαστές. Μια από αυτές τις νέες λειτουργίες είναι η ενεργοποίηση σελίδας των 4 Mbytes θέτοντας το bit 4 του CR4. ΣΧΗΜΑ Η δομή του καταχωρητή ελέγχου του μικροεπεξεργαστή
Παρόμοιες παρουσιάσεις
© 2024 SlidePlayer.gr Inc.
All rights reserved.