Επεξεργαστές από μέσα. Επεξεργαστές από το εσωτερικό Σχέδιο μητρικής πλακέτας υπολογιστή

Επί του παρόντος, το κύριο μερίδιο αγοράς των καθολικών μικροεπεξεργαστών καταλαμβάνεται από μικροεπεξεργαστές 32-bit και 64-bit. Αυτό το κεφάλαιο περιγράφει τους μικροεπεξεργαστές 32-bit της Intel που αποτελούν την οικογένεια IA-32 (Intel Architecture-32). Αυτή η αρχιτεκτονική αποτελεί τη βάση της αρχιτεκτονικής 64-bit x86‑64 της Intel και της αρχιτεκτονικής AMD-64 της AMD.

2.1 Σύνθεση και λειτουργίες μητρώων

Μητρώαονομάζεται μνήμη υψηλής ταχύτητας που βρίσκεται στο εσωτερικό της CPU και έχει σχεδιαστεί για ηλεκτρονική αποθήκευση δεδομένων και γρήγορη πρόσβαση σε αυτά από τα εσωτερικά στοιχεία του επεξεργαστή. Για παράδειγμα, κατά τη βελτιστοποίηση των βρόχων προγραμμάτων για ταχύτητα, οι μεταβλητές στις οποίες προσπελάσατε εντός του βρόχου βρίσκονται σε καταχωρητές επεξεργαστή και όχι στη μνήμη. Το σύνολο όλων αυτών των καταχωρητών αναφέρεται μερικές φορές ως μνήμη scratchpad (CoRAM).

2.1.1 Βασικά μητρώα

Το σχήμα 2.1 δείχνει τη δομή των κύριων καταχωρητών και τα ονόματά τους. Υπάρχουν 8 μητρώα γενικού σκοπού(RON), καταχωρητές 6 τμημάτων, καταχωρητής σημαίας, καταχωρητής δείκτη εντολών, καθώς και καταχωρητές συστήματος, καταχωρητές εντοπισμού σφαλμάτων και δοκιμής.

Μητρώα γενικής χρήσης (RON). Αυτοί οι καταχωρητές χρησιμοποιούνται κυρίως για την εκτέλεση αριθμητικών πράξεων και τη μεταφορά δεδομένων. Κάθε RON μπορεί να προσπελαστεί ως καταχωρητής 32-bit ή ως καταχωρητής 16-bit. Ορισμένοι καταχωρητές μπορούν να προσπελαστούν ως 8-bit. Για παράδειγμα, ο καταχωρητής EAX είναι 32 bit, αλλά τα κατώτερα 16 bit του ονομάζονται καταχωρητής AX. Τα ανώτερα 8 bit του καταχωρητή AX ονομάζονται AH και τα κάτω 8 bit ονομάζονται AL. Τα τμήματα 16-bit των καταχωρητών ευρετηρίου και των καταχωρητών δεικτών χρησιμοποιούνται συνήθως μόνο κατά τη σύνταξη προγραμμάτων για πραγματική λειτουργία διευθυνσιοδότησης, π.χ. για το MS-DOS ή την εξομοίωση του στα Windows.

Σημασία των συντομογραφιών του ονόματος μητρώου:

Το πρόθεμα E στην αρχή των ονομάτων καταχωρητών επεκτείνεται.

Το postfix X στο τέλος των ονομάτων μητρώου σημαίνει το πραγματικό μητρώο.

AX - Συσσωρευτής (drive).

BX - Βασικό μητρώο (base register).

CX - Μετρητής (μετρητής).

DX - Δεδομένα (δεδομένα).

AL - Χαμηλό συσσωρευτή (κάτω μισό του καταχωρητή AX).

AH - Συσσωρευτής υψηλό (το υψηλότερο μισό του καταχωρητή AX).

BL - Βάση χαμηλή (κάτω μισό του καταχωρητή BX).

BH - Βάση υψηλό (το υψηλότερο μισό του καταχωρητή BX).

CL - Χαμηλό μετρητή (κάτω μισό του καταχωρητή CX).

CH - Counter high (υψηλότερο μισό του καταχωρητή CX).

DL - Χαμηλά δεδομένα (κάτω μισό του καταχωρητή DX).

DH - Δεδομένα υψηλά (το υψηλότερο μισό του καταχωρητή DX).

SI - Ευρετήριο πηγής (ευρετήριο πηγής). Περιέχει την τρέχουσα διεύθυνση πηγής.

DI - Ευρετήριο προορισμού (ευρετήριο παραλήπτη). Περιέχει την τρέχουσα διεύθυνση του δέκτη.

BP - Δείκτης βάσης (δείκτης βάσης). Για τυχαία πρόσβαση σε δεδομένα μέσα στη στοίβα

SP - Δείκτης στοίβας (δείκτης στοίβας). Περιέχει τον επάνω δείκτη στοίβας.

CS - Τμήμα κώδικα (τμήμα κώδικα).

DS - Τμήμα δεδομένων (τμήμα δεδομένων).

ES - Extra τμήμα δεδομένων (πρόσθετο τμήμα δεδομένων).

FS - Εκτεταμένο τμήμα δεδομένων (πρόσθετο τμήμα δεδομένων).

GS - Εκτεταμένο τμήμα δεδομένων (πρόσθετο τμήμα δεδομένων).

SS - Τμήμα στοίβας (τμήμα στοίβας).

IP - Δείκτης εντολών (δείκτης εντολών ή μετρητής εντολών).

F - Σημαίες (μητρώο σημαιών).

GDTR - Καθολικός κατάλογος πίνακα περιγραφών (μητρώο του καθολικού πίνακα περιγραφών).

IDTR - Καταχωρητής πίνακα περιγραφέων διακοπής (καταχωρητής πίνακα περιγραφέων διακοπών).

TR - Μητρώο εργασιών (μητρώο εργασιών).

LDTR - Καταχωρητής πινάκων τοπικού περιγραφέα (τοπικός καταχωρητής πίνακα περιγραφών).

DR - Καταχωρητής εντοπισμού σφαλμάτων (εγγραφέας εντοπισμού σφαλμάτων).

TR - Μητρώο δοκιμής (μητρώο δοκιμής).

CR - Καταχωρητής ελέγχου (καταχωρητής ελέγχου).

Χαρακτηριστικά της χρήσης μητρώων. Κατά την εκτέλεση εντολών από τον επεξεργαστή, ορισμένοι καταχωρητές γενικής χρήσης έχουν ειδικό σκοπό.

    Τα περιεχόμενα του καταχωρητή EAX χρησιμοποιούνται αυτόματα κατά την εκτέλεση των εντολών πολλαπλασιασμού και διαίρεσης. Δεδομένου ότι αυτός ο καταχωρητής συνήθως συνδέεται με την εκτέλεση αριθμητικών εντολών, συχνά αναφέρεται ως εκτεταμένο μητρώο συσσωρευτών (αναπτυγμένος συσσωρευτής).

    Ο καταχωρητής ECX χρησιμοποιείται αυτόματα από τον επεξεργαστή ως μετρητής κύκλων.

    Ο καταχωρητής ESP έχει πρόσβαση σε δεδομένα που είναι αποθηκευμένα στη στοίβα. Σωρόςείναι μια περιοχή μνήμης συστήματος, η πρόσβαση στην οποία γίνεται σύμφωνα με την αρχή FILO (Πρώτη είσοδος - τελευταία έξοδος) «πρώτη γραφή, τελευταία ανάγνωση». Αυτός ο καταχωρητής συνήθως δεν χρησιμοποιείται ποτέ για την εκτέλεση κανονικών αριθμητικών εντολών και εντολών μεταφοράς δεδομένων. Είναι συχνά ονομάζεται καταχωρητής δείκτη εκτεταμένης στοίβας (αναπτυγμένος σωρός δείκτης). Ο καταχωρητής ESP δείχνει τη διεύθυνση της κορυφής της στοίβας (η διεύθυνση όπου θα προωθηθεί η επόμενη μεταβλητή από την εντολή PUSH).

    Οι καταχωρητές ESI και EDI χρησιμοποιούνται συνήθως για οδηγίες μεταφοράς δεδομένων υψηλής ταχύτητας από τη μια θέση μνήμης στην άλλη. Ως εκ τούτου μερικές φορές ονομάζονται καταχωρητές ευρετηρίου εκτεταμένης πηγήςκαι παραλήπτηςδεδομένα (αναπτυγμένος πηγή δείκτης και αναπτυγμένος προορισμός δείκτης). Ο καταχωρητής ESI είναι η διεύθυνση προέλευσης και περιέχει τη διεύθυνση της αρχής του μπλοκ πληροφοριών για τη λειτουργία "move block" (πλήρης διεύθυνση DS:ESI) και ο καταχωρητής EDI είναι η διεύθυνση προορισμού (πλήρης διεύθυνση ES:EDI).

    Ο καταχωρητής EBP χρησιμοποιείται συνήθως από μεταγλωττιστές γλωσσών υψηλού επιπέδου για αναφορά σε παραμέτρους συνάρτησης και για αναφορά σε τοπικές μεταβλητές που έχουν εκχωρηθεί στη στοίβα. Δεν πρέπει να χρησιμοποιείται για την εκτέλεση συνηθισμένων αριθμητικών πράξεων ή για τη μετακίνηση δεδομένων, παρά μόνο όταν χρησιμοποιούνται ειδικές τεχνικές προγραμματισμού από έμπειρους προγραμματιστές. Συχνά αναφέρεται ως εκτεταμένη περίπτωση δείκτης πλαισίου στοίβας (αναπτυγμένος πλαίσιο δείκτης). Ο καταχωρητής EUR περιέχει τη διεύθυνση από την οποία οι πληροφορίες προωθούνται ή εμφανίζονται στη στοίβα (ή το "βάθος" της στοίβας). Οι παράμετροι συνάρτησης έχουν θετική μετατόπιση σε σχέση με το EBP, οι τοπικές μεταβλητές έχουν αρνητική μετατόπιση και η πλήρης διεύθυνση αυτής της θέσης μνήμης αποθηκεύεται στο ζεύγος καταχωρητών SS:EBP.

    Ο καταχωρητής EIP αποθηκεύει τη μετατόπιση της διεύθυνσης εντολής. Η πλήρης διεύθυνση για την επόμενη εκτελέσιμη εντολή αποθηκεύεται στο ζεύγος καταχωρητών CS:EIP.

    Οι καταχωρητές ESP, EBP, ESI, EDI αποθηκεύουν τη μετατόπιση διεύθυνσης δεδομένων.

καταχωρητές τμημάτων. Αυτοί οι καταχωρητές χρησιμοποιούνται ως καταχωρητές βάσης κατά την πρόσβαση σε εκ των προτέρων εκχωρημένες περιοχές της μνήμης RAM, οι οποίες καλούνται τμήματα.Υπάρχουν τρεις τύποι τμημάτων και, κατά συνέπεια, καταχωρητές τμημάτων:

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

    δεδομένα (DS, ES, FS και GS), αποθηκεύουν περιοχές μνήμης που έχουν εκχωρηθεί για μεταβλητές προγράμματος και δεδομένα.

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

Οι καταχωρητές τμημάτων φορτώνονται από επιλογείς τμημάτων, οι οποίοι μετατοπίζονται είτε στον Παγκόσμιο Πίνακα Περιγραφέα (GDT) είτε στον Πίνακα Τοπικής Περιγραφής (LDT).

Τα bit καταχωρητή τμημάτων περιέχουν τις ακόλουθες πληροφορίες:

0 - 1. RPL - Ζητούμενο επίπεδο προνομίου. Το ζητούμενο επίπεδο προνομίων.

2. TI - Δείκτης πίνακα. Bit πίνακα ένδειξης. Λέει στον επεξεργαστή πού να αναζητήσει τον καθορισμένο επιλογέα. Εάν το bit έχει οριστεί, τότε ο επεξεργαστής διαβάζει τον επιλογέα από τον τοπικό πίνακα περιγραφών. Εάν το bit είναι καθαρό, τότε ο επεξεργαστής διαβάζει τον επιλογέα από τον πίνακα καθολικής περιγραφής.

3 - 15. Αυτά τα bit αποθηκεύουν το ευρετήριο του καθολικού ή τοπικού πίνακα περιγραφών.

Ο καταχωρητής CS είναι πολύ μικρός για να κρατήσει ένα τμήμα κώδικα, επομένως πρέπει να οριστεί σε ένα εκτελέσιμο τμήμα. Ο καταχωρητής SS είναι πολύ μικρός για να κρατήσει ένα τμήμα στοίβας, επομένως πρέπει να οριστεί σε ένα εγγράψιμο τμήμα δεδομένων.

Το επίπεδο προνομίων που ορίζεται στον καταχωρητή τμήματος CS είναι το επίπεδο προνομίων του εκτελούμενου προγράμματος και ονομάζεται Τρέχον Επίπεδο Προνομίων (CPL). Οι καταχωρητές τμημάτων DS, ES, FS, GS προορίζονται για δεδομένα και πρέπει να οριστούν σε ένα τμήμα δεδομένων με άδεια εγγραφής. Τα επίπεδα προνομίων που απαιτούνται από κάθε έναν από αυτούς τους επιλογείς πρέπει να είναι μεγαλύτερα από το τρέχον επίπεδο προνομίων CPL.

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

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

Μητρώο σημαίας ΕΦ (EFLAGZ) . Τα bit αυτού του καταχωρητή ονομάζονται flags και είναι υπεύθυνα είτε για τις ιδιαιτερότητες της εκτέλεσης ορισμένων εντολών της CPU, είτε αντικατοπτρίζουν το αποτέλεσμα της εκτέλεσης εντολών από την ALU. Οι σημαίες του μητρώου παρατίθενται στον Πίνακα 2.1. Τα bit 22 έως 31 συμπεριλαμβανομένων είναι δεσμευμένα.

Πίνακας 2.1 Καταχώριση σημαίας

Για την ανάλυση των bit αυτού του καταχωρητή, παρέχονται ειδικές οδηγίες επεξεργαστή. Λένε τη σημαία εγκατεστημένο,όταν το bit της σημαίας είναι 1, και ότι η σημαία έπεσε,όταν η τιμή του bit είναι 0. Επιπλέον, ο εκτεταμένος καταχωρητής EF περιέχει πέντε νέες σημαίες σε σύγκριση με τον καταχωρητή F.

Σημαίες ελέγχου.Η κατάσταση των bit στον καταχωρητή EFLAGS, που αντιστοιχούν στις σημαίες ελέγχου, μπορεί να αλλάξει από τον προγραμματιστή χρησιμοποιώντας ειδικές οδηγίες επεξεργαστή. Αυτές οι σημαίες (DF, IF, TF) ελέγχουν την εκτέλεση ορισμένων εντολών της CPU:

8. TF - Σημαία παγίδας. Σημαία παρακολούθησης (βήμα λειτουργίας). Όταν ρυθμιστεί (TF=1), μετά την εκτέλεση κάθε εντολής, καλείται μια εσωτερική διακοπή INT 1, η οποία σταματά την υπολογιστική διαδικασία, καθιστώντας δυνατό τον έλεγχο των περιεχομένων των καταχωρητών.

9.IF - Σημαία ενεργοποίησης διακοπής. Σημαία ενεργοποίησης διακοπής. Με IF=1, ενεργοποιούνται οι καλυμμένες διακοπές υλικού. Εάν IF=0, είναι απενεργοποιημένο.

10. DF - Σημαία κατεύθυνσης. Σημαία για τον έλεγχο της κατεύθυνσης της επεξεργασίας πίνακα σε εντολές συμβολοσειρών. Όταν DF=1, οι καταχωρητές ευρετηρίου SI, DI, οι οποίοι συμμετέχουν σε εντολές συμβολοσειρών, μειώνονται αυτόματα κατά τον αριθμό των byte τελεστών, επεξεργάζοντας έτσι τις συμβολοσειρές από το τέλος προς την αρχή. Με DF=0, αυξάνονται, επεξεργαζόμενοι από την αρχή μέχρι το τέλος της συμβολοσειράς.

Σημαίες κατάστασης. Αυτές οι σημαίες αντικατοπτρίζουν διάφορες ενδείξεις του αποτελέσματος της εκτέλεσης αριθμητικών και λογικών εντολών CPU:

0.CF - Φέρτε σημαία. Η σημαία μεταφοράς ορίζεται εάν, κατά την εκτέλεση μιας αριθμητικής πράξης χωρίς υπογραφή, λαμβάνεται ένας αριθμός του οποίου το πλάτος bit υπερβαίνει το πλάτος bit του πεδίου αποτελέσματος που έχει εκχωρηθεί για αυτόν. Στις οδηγίες αλλαγής, η σημαία CF καθορίζει την τιμή του πιο σημαντικού bit.

2. PF - Σημαία ισοτιμίας. Η σημαία ισοτιμίας/ισοτιμίας ορίζεται όταν υπάρχει ζυγός αριθμός στο αποτέλεσμα.

4. AF - Auxiliary Carry. Σημαία για πρόσθετη μεταφορά/δανεισμό από το κατώτερο τετράδιο στο παλαιότερο (από το τρίτο έως το τέταρτο ψηφίο). Χρησιμοποιείται σε εντολές για την επεξεργασία δεδομένων 8-bit, πιο συχνά αριθμών BCD.

6. ZF - Σημαία μηδέν. Η σημαία μηδέν ορίζεται εάν μια αριθμητική ή λογική πράξη έχει ως αποτέλεσμα έναν αριθμό ίσο με μηδέν (δηλαδή, όλα τα bit του αποτελέσματος είναι 0).

7. SF - Σημαία σημαία. Η σημαία σήμανσης αντιγράφει την τιμή του πιο σημαντικού bit του αποτελέσματος. SF=0 για θετικό, SF=1 για αρνητικό.

11. OF - Σημαία υπερχείλισης. σημαία υπερχείλισης , ή ) ορίζεται εάν, κατά την εκτέλεση μιας αριθμητικής πράξης με ένα πρόσημο, λαμβάνεται ένας αριθμός του οποίου το βάθος bit υπερβαίνει το πλάτος bit του πεδίου αποτελέσματος που έχει εκχωρηθεί για αυτόν.

Σημαίες, προστέθηκε στο μητρώο EF:

12-13. Το IOPL σημαίνει I/O Privilege Level. Σημαία επιπέδου προνομίου I/O. Χρησιμοποιείται στην προστατευμένη λειτουργία του μικροεπεξεργαστή για τον έλεγχο της πρόσβασης σε εντολές I/O, ανάλογα με το προνόμιο της εργασίας.

14. NT - Ένθετη σημαία εργασίας. Σημαία ένθεσης εργασιών. Χρησιμοποιείται στην προστατευμένη λειτουργία του μικροεπεξεργαστή για την καταγραφή του γεγονότος ότι μια εργασία είναι ένθετη μέσα σε μια άλλη.

16. RF - Σημαία βιογραφικού. Σημαία συνέχισης. Στη λειτουργία εντοπισμού σφαλμάτων, μια μεμονωμένη τιμή RF επιτρέπει την επανεκκίνηση της εντολής μετά από διακοπές. Χρησιμοποιείται σε συνδυασμό με καταχωρητές σημείων διακοπής εντοπισμού σφαλμάτων.

17. VM - Σημαία εικονικής λειτουργίας. Σημαία εικονικής λειτουργίας. Σήμα λειτουργίας μικροεπεξεργαστή σε εικονική λειτουργία 8086. 1 – ο επεξεργαστής λειτουργεί σε εικονική λειτουργία 8086. 0 - Ο επεξεργαστής λειτουργεί σε πραγματική ή προστατευμένη λειτουργία.

18. AC - Έλεγχος ευθυγράμμισης. Σημαία του τρόπου λειτουργίας του επεξεργαστή, στον οποίο πραγματοποιείται ο έλεγχος ευθυγράμμισης. Χρησιμοποιείται μόνο στο επίπεδο προνομίων 3. Εάν AC=1 και AM=1 (το AM είναι ένα bit στον καταχωρητή ελέγχου CR0), τότε εάν προσπελαστεί ένας τελεστής που δεν είναι ευθυγραμμισμένος στο κατάλληλο όριο (2 ή 4 ή 8) byte, Η εξαίρεση 17 θα αυξηθεί Η στοίχιση του τελεστή εντός των ορίων 2,4,8 σημαίνει ότι η διεύθυνση του τελεστή είναι πολλαπλάσιο του 2,4,8, αντίστοιχα.

19. VIF - Σημαία εικονικής διακοπής. Σημαία ενεργοποίησης διακοπής σε λειτουργία εικονικού επεξεργαστή.

20. VIP - Εικονική διακοπή σε εκκρεμότητα. Σημαία καθυστέρησης διακοπής σε λειτουργία εικονικού επεξεργαστή.

21. ID - Αναγνώριση CPU. Σημαία αναγνώρισης επεξεργαστή. Η σημαία μπορεί να αλλάξει εάν ο επεξεργαστής υποστηρίζει την εντολή CPUID.

Σε μητρώα ελέγχου Τα CR0-CR3 είναι αποθηκευμένα σήματα κατάστασης επεξεργαστή κοινά για όλες τις εργασίες. Ο καταχωρητής CR0 έχει τα ακόλουθα bit:

0. PE - Ενεργοποίηση προστασίας. Σημαία προστατευμένης λειτουργίας. Εάν PE=1, τότε η λειτουργία επεξεργαστή προστατεύεται.

1. ΜΠ - Μαθηματικό παρόν. Σημαία για την παρουσία μαθηματικού συνεπεξεργαστή. Αν MP=1, τότε υπάρχει ο μαθηματικός συνεπεξεργαστής.

2. EM - Εξομοίωση αριθμητικής επέκτασης. Σημαία εξομοίωσης εντολών κινητής υποδιαστολής. Όταν έχει οριστεί η σημαία, οι εντολές για εργασία με πραγματικούς αριθμούς μπορούν να εξομοιωθούν σε λογισμικό.

3.TS - Εναλλαγή εργασιών. Σημαία διακόπτη εργασιών. Η σημαία ορίζεται μετά την αλλαγή της εργασίας.

4. ET - Τύπος επέκτασης. Σημαία τύπου επέκτασης. Ορίστε εάν υπάρχει αριθμητικός συνεπεξεργαστής 387 ή μεγαλύτερος.

5. NE - Ενεργοποίηση αριθμητικού σφάλματος. Σημαία επίλυσης σφάλματος συμεπεξεργαστή. Εάν έχει οριστεί η σημαία, τότε σε περίπτωση σφάλματος στον συνεπεξεργαστή, δημιουργείται η εξαίρεση 16.

16.WP - Write Protect. Γράψτε σημαία προστασίας. Εάν έχει οριστεί η σημαία, τότε στον πυρήνα του λειτουργικού συστήματος εκχωρούνται σελίδες μνήμης σε λειτουργία μόνο για ανάγνωση (μόνο για ανάγνωση).

18:00 - Μάσκα ευθυγράμμισης. Σημαία κάλυψης ευθυγράμμισης. Όταν οριστεί η σημαία, τότε θα δημιουργηθεί η εξαίρεση 17 σε περίπτωση πρόσβασης σε μη ευθυγραμμισμένους τελεστές. Εάν η σημαία διαγραφεί, τότε μια τέτοια εξαίρεση καλύπτεται.

29. NW - Not Write Through. Σημαία απενεργοποίησης εγγραφής.

30. CD - Απενεργοποίηση προσωρινής μνήμης. Απενεργοποιήστε τη σημαία προσωρινής αποθήκευσης.

31.PG - Ενεργοποίηση σελιδοποίησης. Σημαία λειτουργίας σελιδοποίησης μνήμης. Όταν έχει οριστεί η σημαία, το λειτουργικό σύστημα εκτελείται σε λειτουργία σελιδοποίησης.

Τα υπόλοιπα bit του καταχωρητή CR0 είναι δεσμευμένα.

Η εγγραφή CR1 είναι δεσμευμένη. Το Register CR2 αποθηκεύει τη γραμμική διεύθυνση 32-bit στην οποία ελήφθη ένα σφάλμα σελίδας. Τα 20 MSB του CR3 αποθηκεύουν τη φυσική διεύθυνση βάσης του πίνακα καταλόγου σελίδων και τα bit ελέγχου της κρυφής μνήμης. Ο καταχωρητής CR4 περιέχει τα bit ενεργοποίησης για αρχιτεκτονικές επεκτάσεις του MP. Γενικά, αυτοί οι καταχωρητές χρησιμοποιούνται στον προγραμματισμό του συστήματος και ορίζουν τον τρόπο λειτουργίας του επεξεργαστή (κανονικό, προστατευμένο κ.λπ.), τη σελιδοποίηση στη μνήμη κ.λπ.

Μητρώα διευθύνσεων συστήματος. Ο παγκόσμιος πίνακας περιγραφής GDTR και οι καταχωρητές δείκτη συστήματος πίνακα διακοπών IDTR αποθηκεύουν διευθύνσεις βάσης 32 bit και όρια πίνακα 16 bit, αντίστοιχα. Το τμήμα εργασιών συστήματος καταχωρεί TR και ο πίνακας τοπικών περιγραφών LDTR είναι επιλογείς 16 bit. Αντιστοιχούν στους καταχωρητές σκιώδους περιγραφής, οι οποίοι περιέχουν τη βασική διεύθυνση 32 bit του τμήματος, το όριο των 20 bit και το byte άδειας.

Σε μητρώα εντοπισμού σφαλμάτων Το DR0-DR3 περιέχει διευθύνσεις σημείων διακοπής 32 bit σε λειτουργία εντοπισμού σφαλμάτων. Τα DR4-DR5 είναι δεσμευμένα και δεν χρησιμοποιούνται. Το DR6 εμφανίζει την κατάσταση του σημείου ελέγχου. DR7 - διαχειρίζεται την τοποθέτηση σημείων ελέγχου στο πρόγραμμα.

Μητρώα δοκιμών Οι TR αποτελούν μέρος μιας ομάδας καταχωρητών για συγκεκριμένο μοντέλο, η σύνθεση και ο αριθμός τους εξαρτώνται από τον τύπο του επεξεργαστή: το MP 386 χρησιμοποιεί δύο καταχωρητές TR6 και TR7 για τον έλεγχο του συστήματος σελιδοποίησης της εκχώρησης μνήμης από το λειτουργικό σύστημα. Το Pentium II και άνω χρησιμοποιούν δώδεκα καταχωρητές TR1-TR12. Αυτή η ομάδα καταχωρητών περιέχει επίσης τα αποτελέσματα της δοκιμής του MP και της κρυφής μνήμης.

Το άρθρο αποκαλύπτει την έννοια του όρου "64 bit". Το άρθρο κάνει μια σύντομη ανασκόπηση της ιστορίας της ανάπτυξης συστημάτων 64-bit, περιγράφει τους πιο συνηθισμένους επί του παρόντος επεξεργαστές 64-bit της αρχιτεκτονικής Intel 64 και του λειτουργικού συστήματος Windows 64-bit.

Εισαγωγή

Στο πλαίσιο της αρχιτεκτονικής υπολογιστών, ο όρος "64-bit" αναφέρεται σε ακέραιους αριθμούς 64-bit και άλλους τύπους δεδομένων μεγέθους 64 bit. Τα συστήματα "64 bit" ενδέχεται να αναφέρονται σε αρχιτεκτονικές μικροεπεξεργαστών 64 bit (π.χ. EM64T, IA-64) ή λειτουργικά συστήματα 64 bit (π.χ. Windows XP Professional x64 Edition). Μπορούμε να μιλήσουμε για μεταγλωττιστές που δημιουργούν κώδικα προγράμματος 64-bit.

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

Ιστορικό συστημάτων 64-bit

Τα 64 bit μπήκαν μόλις πρόσφατα στη ζωή των περισσότερων χρηστών και προγραμματιστών εφαρμογών. Ωστόσο, η εργασία με δεδομένα 64-bit έχει μακρά ιστορία.

1961: Η IBM κυκλοφορεί τον υπερυπολογιστή IBM 7030 Stretch, ο οποίος χρησιμοποιεί λέξεις δεδομένων 64 bit, οδηγίες μηχανής 32 bit ή 64 bit.

1974: Η Control Data Corporation λανσάρει τον διανυσματικό υπερυπολογιστή CDC Star-100, ο οποίος χρησιμοποιεί αρχιτεκτονική λέξεων 64 bit (τα προηγούμενα συστήματα CDC είχαν αρχιτεκτονική 60 bit).

1976: Η Cray Research κυκλοφορεί τον πρώτο υπερυπολογιστή Cray-1, ο οποίος εφαρμόζει μια αρχιτεκτονική λέξεων 64-bit και θα χρησιμεύσει ως βάση για όλους τους επόμενους διανυσματικούς υπερυπολογιστές Cray.

1985: Ο Cray κυκλοφορεί το UNICOS, την πρώτη υλοποίηση 64-bit του λειτουργικού συστήματος Unix.

1991: Η MIPS Technologies κυκλοφορεί τον πρώτο επεξεργαστή 64-bit, τον R4000, ο οποίος υλοποιεί την τρίτη επανάληψη της αρχιτεκτονικής MIPS της εταιρείας τους. Αυτός ο επεξεργαστής έχει χρησιμοποιηθεί σε σταθμούς εργασίας γραφικών SGI από το μοντέλο IRIS Crimson. Η Kendall Square Research κυκλοφορεί τον πρώτο της υπερυπολογιστή KSR1 που βασίζεται στην ιδιόκτητη αρχιτεκτονική RISC 64-bit που τρέχει OSF/1.

1992: Η Digital Equipment Corporation (DEC) εισάγει την αρχιτεκτονική Alpha όλων των 64-bit, το πνευματικό τέκνο του έργου PRISM.

1993: Η DEC κυκλοφορεί το λειτουργικό σύστημα 64-bit τύπου Unix DEC OSF/1 AXP (αργότερα μετονομάστηκε σε Tru64 UNIX) για τα συστήματα Alpha.

1994: Η Intel ανακοινώνει τα σχέδιά της να αναπτύξει την αρχιτεκτονική 64-bit IA-64 (με Hewlett-Packard) ως διάδοχο των 32-bit επεξεργαστών της IA-32. Ημερομηνία κυκλοφορίας ορίστηκε για το 1998-1999. Η SGI κυκλοφορεί το IRIX 6.0 με υποστήριξη 64-bit για το chipset R8000.

1995: Η Sun λανσάρει την οικογένεια επεξεργαστών 64-bit SPARC UltraSPARC. Η HAL Computer Systems, θυγατρική της Fujitsu, λανσάρει σταθμούς εργασίας που βασίζονται στον επεξεργαστή SPARC64 πρώτης γενιάς 64-bit που αναπτύχθηκε ανεξάρτητα από την HAL. Η IBM κυκλοφορεί τους μικροεπεξεργαστές A10 και A30, καθώς και επεξεργαστές PowerPC AS 64 bit. Η IBM κυκλοφορεί επίσης μια ενημέρωση 64-bit για το AS/400 που μπορεί να μεταμορφώσει το λειτουργικό σύστημα, τις βάσεις δεδομένων και τις εφαρμογές.

1996: Η Nintendo παρουσιάζει την κονσόλα παιχνιδιών Nintendo 64, βασισμένη σε μια φθηνότερη παραλλαγή του MIPS R4000. Η HP κυκλοφορεί μια εφαρμογή 2.0 64-bit της ιδιόκτητης αρχιτεκτονικής PA-RISC PA-8000.

1997: Η IBM λανσάρει τη σειρά RS64 των 64-bit επεξεργαστών PowerPC/PowerPC AS.

1998: Η Sun κυκλοφορεί το Solaris 7 με πλήρη υποστήριξη 64-bit UltraSPARC.

1999: Η Intel κυκλοφορεί το σύνολο εντολών για την αρχιτεκτονική IA-64. Η AMD ανακοινώνει δημόσια το σύνολο των επεκτάσεων 64-bit για το IA-32, το οποίο ονομάστηκε x86-64 (αργότερα μετονομάστηκε σε AMD64).

2000: Η IBM κυκλοφορεί τον πρώτο της κεντρικό υπολογιστή zSeries z900 συμβατό με ESA/390 64-bit, καθώς και το νέο λειτουργικό σύστημα z/OS.

2001: Η Intel λανσάρει επιτέλους μια σειρά επεξεργαστών 64-bit, που τώρα ονομάζεται Itanium, για διακομιστές υψηλής απόδοσης. Το έργο υπολείπεται των προσδοκιών λόγω των πολυάριθμων καθυστερήσεων στην κυκλοφορία του IA-64 στην αγορά. Το NetBSD γίνεται το πρώτο λειτουργικό σύστημα που τρέχει στον επεξεργαστή Intel Itanium μετά την κυκλοφορία του. Επιπλέον, η Microsoft κυκλοφορεί επίσης τα Windows XP 64-Bit Edition για την αρχιτεκτονική IA-64 της οικογένειας Itanium, αν και διατηρεί τη δυνατότητα εκτέλεσης εφαρμογών 32 bit χρησιμοποιώντας το επίπεδο WoW64.

2003: Η AMD παρουσιάζει τις σειρές επεξεργαστών Opteron και Athlon 64 που βασίζονται στην αρχιτεκτονική AMD64, η οποία είναι η πρώτη αρχιτεκτονική επεξεργαστή 64-bit που βασίζεται στην αρχιτεκτονική x86. Η Apple αρχίζει να χρησιμοποιεί τον επεξεργαστή 64-bit "G5" PowerPC 970 της IBM. Η Intel ισχυρίζεται ότι η οικογένεια τσιπ επεξεργαστών Itanium θα παραμείνει οι μόνοι επεξεργαστές 64-bit που έχει αναπτύξει η εταιρεία της.

2004: Ως απάντηση στην εμπορική επιτυχία της AMD, η Intel παραδέχεται ότι ανέπτυξε έναν κλώνο επεκτάσεων AMD64, τις οποίες ονόμασαν IA-32e (αργότερα μετονομάστηκε σε EM64T και στη συνέχεια ξανά σε Intel 64). Η Intel κυκλοφορεί επίσης ενημερωμένες εκδόσειςΟικογένειες επεξεργαστών Xeon και Pentium 4 με υποστήριξη για νέες εντολές.

2004: Η VIA Technologies παρουσιάζει τον επεξεργαστή Isaiah 64-bit.

2005: 31 Ιανουαρίου Η Sun κυκλοφορεί το Solaris 10 με υποστήριξη για επεξεργαστές AMD64/Intel 64. 30 Απριλίου Η Microsoft κυκλοφορεί τα Windows XP Professional x64 Edition για επεξεργαστές AMD64/Intel 64.

2006: Η Sony, η IBM και η Toshiba λανσάρουν τον επεξεργαστή Cell 64-bit για PlayStation 3, διακομιστές, σταθμούς εργασίας και άλλες συσκευές. Η Microsoft κυκλοφορεί τα Windows Vista με μια παρεχόμενη έκδοση 64 bit για επεξεργαστές AMD64/Intel 64 που υποστηρίζει συμβατότητα 32 bit. Όλες οι εφαρμογές και τα στοιχεία των Windows είναι 64-bit, αλλά πολλά από αυτά έχουν εκδόσεις 32-bit που περιλαμβάνονται ως πρόσθετα για συμβατότητα.

2009: Όπως τα Windows Vista, τα Windows 7 της Microsoft περιλαμβάνουν μια πλήρη έκδοση 64 bit για επεξεργαστές AMD64/Intel 64 και οι περισσότεροι νέοι υπολογιστές διαθέτουν την έκδοση 64 bit από προεπιλογή. Κυκλοφορεί το λειτουργικό σύστημα της εταιρείας Apple Mac OS X 10.6, "Snow Leopard" που έχει πυρήνα 64-bit και έχει σχεδιαστεί για επεξεργαστές AMD64 / Intel 64, ωστόσο, αυτό το σύστημα είναι εγκατεστημένο από προεπιλογή μόνο σε ορισμένα από τα πιο πρόσφατα μοντέλα υπολογιστών Apple. Οι περισσότερες εφαρμογές που αποστέλλονται με Mac OS X 10.6 είναι πλέον και 64-bit.

Για περισσότερες λεπτομέρειες σχετικά με την ιστορία της ανάπτυξης 64-bit, δείτε το άρθρο του John Masha "The Long Road to 64-bit" και το εγκυκλοπαιδικό άρθρο της Wikipedia "64-bit".

Προγραμματισμός εφαρμογών και συστήματα 64-bit

Τη στιγμή που γράφεται αυτό το άρθρο το 2010, οι πιο διάσημες και διαδεδομένες είναι δύο αρχιτεκτονικές μικροεπεξεργαστών 64-bit: IA64 και Intel 64.
  1. ΙΑ-64Αρχιτεκτονική μικροεπεξεργαστή 64 bit που αναπτύχθηκε από κοινού από την Intel και τη Hewlett Packard. Υλοποιήθηκε σε μικροεπεξεργαστές Itanium και Itanium 2. Για πιο λεπτομερή εξοικείωση με την αρχιτεκτονική IA-64, μπορείτε να ανατρέξετε στα ακόλουθα άρθρα της Wikipedia: "IA-64", "Itanium", "Itanium 2". Υποστηρίζεται η αρχιτεκτονική Itanium ένας μεγάλος αριθμός απόκατασκευαστές διακομιστών: Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI και Unisys. Αυτοί οι προμηθευτές έχουν ενταχθεί στην Intel και μια σειρά από προγραμματιστές λογισμικού για να σχηματίσουν την Itanium Solutions Alliance για να προωθήσουν την αρχιτεκτονική και να επιταχύνουν τον ρυθμό μεταφοράς λογισμικού.
  2. Intel 64(64 AMD / x86-64 / x64 / EM64T) - αυτή η αρχιτεκτονική είναι μια επέκταση της αρχιτεκτονικής x86 με πλήρη συμβατότητα προς τα πίσω. Υπάρχουν πολλές παραλλαγές του ονόματος αυτής της αρχιτεκτονικής, που οδηγεί σε σύγχυση, αν και, στην πραγματικότητα, όλα αυτά τα ονόματα σημαίνουν το ίδιο πράγμα: x86-64, AA-64, Hammer Architecture, AMD64, Yamhill Technology, EM64T, IA-32e , Intel 64, x64. Για να μάθετε περισσότερα σχετικά με το πώς προέκυψαν τόσα πολλά ονόματα, ανατρέξτε στο άρθρο της Wikipedia: "X86-64". Οι επεξεργαστές με αρχιτεκτονική Intel 64 χρησιμοποιούνται ευρέως σε προσωπικούς υπολογιστές. Και πιθανότατα ο υπολογιστής σας είναι εξοπλισμένος με επεξεργαστή με αυτήν την αρχιτεκτονική.
Είναι σημαντικό να κατανοήσουμε ότι το IA-64 και το Intel 64 (AMD64) είναι εντελώς διαφορετικές, ασύμβατες αρχιτεκτονικές μικροεπεξεργαστών. Περαιτέρω στο άρθρο, θα εξετάσουμε μόνο την αρχιτεκτονική Intel 64 (x64 / AMD64), καθώς είναι πιο δημοφιλής μεταξύ των προγραμματιστών εφαρμογών. λογισμικόγια το λειτουργικό σύστημα Windows. Για συντομία, το μοντέλο προγραμματισμού Intel 64 που είναι διαθέσιμο σε έναν προγραμματιστή σε σύστημα Windows 64-bit ονομάζεται Win64.

Αρχιτεκτονική Intel 64 (AMD64)

Η αρχιτεκτονική Intel 64 που εξετάζουμε είναι μια απλή αλλά ισχυρή, συμβατή προς τα πίσω, επέκταση της παλαιού τύπου βιομηχανικής αρχιτεκτονικής x86. Προσθέτει έναν χώρο διευθύνσεων 64 bit και επεκτείνει τους πόρους μητρώου για να υποστηρίξει την καλύτερη απόδοση των αναμεταγλωττισμένων προγραμμάτων 64 bit. Η αρχιτεκτονική παρέχει υποστήριξη για κώδικα εφαρμογών παλαιού τύπου 16-bit και 32-bit και λειτουργικά συστήματα χωρίς τροποποίηση ή εκ νέου μεταγλώττιση.

Ένα χαρακτηριστικό γνώρισμα του Intel 64 είναι η υποστήριξη για δεκαέξι καταχωρητές 64-bit γενικού σκοπού (το x86-32 είχε οκτώ καταχωρητές 32-bit). 64-bit αριθμητική και λογικές πράξειςσε ακέραιους αριθμούς. Υποστηρίζονται εικονικές διευθύνσεις 64 bit. Για την αντιμετώπιση νέων μητρώων για εντολές, έχουν εισαχθεί "προθέματα επέκτασης εγγραφής", για τα οποία έχει επιλεγεί το εύρος των κωδικών 40h-4Fh, που χρησιμοποιούνται για εντολές INC<регистр>και ΔΕΚ<регистр>σε λειτουργίες 32 και 16 bit. Οι εντολές INC και DEC σε λειτουργία 64 bit πρέπει να κωδικοποιούνται με τη γενικότερη μορφή δύο byte.

Εγγραφές:

16 ακέραιοι καταχωρητές γενικού σκοπού 64 bit (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15),
8 καταχωρητές κινητής υποδιαστολής 80-bit (ST0 - ST7),
8 καταχωρητές επεκτάσεων πολυμέσων 64-bit (MM0 - MM7, κοινή χρήση χώρου με καταχωρητές ST0 - ST7),
16 καταχωρητές SSE 128-bit (XMM0 - XMM15),
Δείκτης RIP 64 bit και καταχωρητής σημαίας RFLAGS 64 bit.

Η ανάγκη για αρχιτεκτονική 64 bit καθορίζεται από εφαρμογές που χρειάζονται μεγάλο χώρο διευθύνσεων. Πρώτα απ 'όλα, πρόκειται για διακομιστές υψηλής απόδοσης, συστήματα διαχείρισης βάσεων δεδομένων, συστήματα CAD και, φυσικά, παιχνίδια. Τέτοιες εφαρμογές θα ωφεληθούν πολύ από έναν χώρο διευθύνσεων 64-bit και περισσότερους καταχωρητές. Ο χαμηλός αριθμός καταχωρητών που διατίθενται στην αρχιτεκτονική x86 παλαιού τύπου περιορίζει την απόδοση στις εργασίες υπολογιστών. Ο αυξημένος αριθμός καταχωρητών παρέχει επαρκή απόδοση για πολλές εφαρμογές.

Τονίζουμε τα κύρια πλεονεκτήματα της αρχιτεκτονικής x86-64:

  • Χώρος διευθύνσεων 64-bit.
  • εκτεταμένο σύνολο μητρώων·
  • ένα σύνολο εντολών γνωστές στους προγραμματιστές.
  • τη δυνατότητα εκτέλεσης παλαιών εφαρμογών 32-bit σε λειτουργικό σύστημα 64-bit.
  • τη δυνατότητα χρήσης λειτουργικών συστημάτων 32-bit.

Λειτουργικά συστήματα 64 bit

Σχεδόν όλα τα σύγχρονα λειτουργικά συστήματα διαθέτουν πλέον εκδόσεις για την αρχιτεκτονική Intel 64. Για παράδειγμα, η Microsoft παρέχει Windows XP x64. Μεγάλοι Προγραμματιστές συστήματα UNIXπαρέχει επίσης εκδόσεις 64-bit, όπως το Linux Debian 3.5 x86-64. Ωστόσο, αυτό δεν σημαίνει ότι ολόκληρος ο κώδικας ενός τέτοιου συστήματος είναι εντελώς 64-bit. Μέρος του κώδικα του λειτουργικού συστήματος και πολλές εφαρμογές ενδέχεται να παραμείνουν 32-bit, καθώς η Intel 64 παρέχει συμβατότητα προς τα πίσω με εφαρμογές 32-bit. Για παράδειγμα, 64-bit έκδοση Windowsχρησιμοποιεί μια ειδική λειτουργία WoW64 (Windows-on-Windows 64), η οποία μεταφράζει κλήσεις από εφαρμογές 32-bit σε πόρους ενός λειτουργικού συστήματος 64-bit.

WoW64

Τα Windows-on-Windows 64-bit (WoW64) είναι ένα υποσύστημα του λειτουργικού συστήματος Windows που σας επιτρέπει να εκτελείτε εφαρμογές 32-bit σε όλες τις εκδόσεις 64-bit των Windows.

Το υποσύστημα WoW64 δεν υποστηρίζει τα ακόλουθα προγράμματα:

  • προγράμματα μεταγλωττισμένα για λειτουργικά συστήματα 16-bit.
  • Προγράμματα λειτουργίας πυρήνα μεταγλωττισμένα για λειτουργικά συστήματα 32 bit.
Υπάρχουν διαφορές WoW64 ανάλογα με την αρχιτεκτονική του επεξεργαστή. Για παράδειγμα, η έκδοση 64-bit των Windows που έχει σχεδιαστεί για τον επεξεργαστή Intel Itanium 2 χρησιμοποιεί το WoW64 για την εξομοίωση οδηγιών x86. Αυτή η εξομοίωση απαιτεί πολύ πόρους σε σύγκριση με το WoW64 για την αρχιτεκτονική Intel 64, καθώς μεταβαίνει από τη λειτουργία 64-bit σε λειτουργία συμβατότητας κατά την εκτέλεση προγραμμάτων 32-bit.

Το WoW64 στην αρχιτεκτονική Intel 64 (AMD64/x64) δεν απαιτεί εξομοίωση εντολών. Εδώ, το υποσύστημα WoW64 προσομοιώνει μόνο ένα περιβάλλον 32-bit, λόγω ενός πρόσθετου επιπέδου μεταξύ της εφαρμογής 32-bit και του API των Windows 64-bit. Κάπου αυτό το στρώμα είναι λεπτό, κάπου όχι τόσο πολύ. Για δευτεροβάθμιο πρόγραμμαΟι απώλειες απόδοσης λόγω της παρουσίας ενός τέτοιου στρώματος θα είναι περίπου 2%. Για ορισμένα προγράμματα, αυτή η τιμή μπορεί να είναι υψηλότερη. Το δύο τοις εκατό δεν είναι πολύ, αλλά έχετε κατά νου ότι οι εφαρμογές 32 bit τρέχουν λίγο πιο αργά σε λειτουργικό σύστημα Windows 64 bit από ό,τι σε περιβάλλον 32 bit.

Η μεταγλώττιση κώδικα 64-bit όχι μόνο εξαλείφει την ανάγκη για WoW64, αλλά παρέχει επίσης μια πρόσθετη ώθηση απόδοσης. Αυτό οφείλεται σε αρχιτεκτονικές αλλαγές στον μικροεπεξεργαστή, όπως η αύξηση του αριθμού των καταχωρητών γενικής χρήσης. Για ένα μέσο πρόγραμμα, μπορείτε να περιμένετε μεταξύ 5-15% κέρδος απόδοσης από μια απλή επαναμεταγλώττιση.

Λόγω της παρουσίας του επιπέδου WoW64, τα προγράμματα 32 bit λειτουργούν λιγότερο αποτελεσματικά σε περιβάλλον 64 bit από ότι σε περιβάλλον 32 bit. Ωστόσο, απλές εφαρμογές 32 bit μπορούν να επωφεληθούν από την εκτέλεση τους σε περιβάλλον 64 bit. Πιθανότατα γνωρίζετε ότι ένα πρόγραμμα που έχει μεταγλωττιστεί με το διακόπτη /LARGEADDRESSAWARE:YES μπορεί να εκχωρήσει έως και 3 gigabyte μνήμης εάν ένα λειτουργικό σύστημα Windows 32-bit ξεκινήσει με το διακόπτη /3gb. Έτσι, το ίδιο πρόγραμμα 32-bit που εκτελείται σε ένα σύστημα 64-bit μπορεί να εκχωρήσει σχεδόν 4 GB μνήμης (στην πράξη, περίπου 3,5 GB).

Το υποσύστημα WoW64 απομονώνει προγράμματα 32 bit από προγράμματα 64 bit ανακατευθύνοντας την πρόσβαση σε αρχείο και μητρώο. Αυτό αποτρέπει τα προγράμματα 32-bit από την τυχαία πρόσβαση σε δεδομένα εφαρμογής 64-bit. Για παράδειγμα, μια εφαρμογή 32-bit που εκτελεί ένα αρχείο DLL από τον κατάλογο %systemroot%\System32 ενδέχεται να αποκτήσει κατά λάθος πρόσβαση σε ένα αρχείο DLL 64-bit που δεν είναι συμβατό με ένα πρόγραμμα 32-bit. Για να αποφευχθεί αυτό, το υποσύστημα WoW64 ανακατευθύνει την πρόσβαση από το φάκελο %systemroot%\System32 στο φάκελο %systemroot%\SysWOW64. Αυτή η ανακατεύθυνση βοηθά στην αποφυγή σφαλμάτων συμβατότητας, επειδή απαιτεί ένα αρχείο DLL που έχει σχεδιαστεί ειδικά για να λειτουργεί με εφαρμογές 32 bit.

Μάθετε περισσότερα σχετικά με τους μηχανισμούς ανακατεύθυνσης σύστημα αρχείωνκαι το μητρώο βρίσκεται στην ενότητα MSDN "Εκτέλεση εφαρμογών 32-bit".

Το μοντέλο προγραμματισμού win64

Όπως και στο Win32, το μέγεθος σελίδας στο Win64 είναι 4Kb. Τα πρώτα 64K του χώρου διευθύνσεων δεν αντιστοιχίζονται ποτέ, επομένως η μικρότερη έγκυρη διεύθυνση είναι 0x10000. Σε αντίθεση με το Win32, τα DLL συστήματος φορτώνονται πάνω από 4 GB.

Η ιδιαιτερότητα των μεταγλωττιστών για την Intel 64 είναι ότι μπορούν να χρησιμοποιούν πιο αποτελεσματικά καταχωρητές για να μεταβιβάζουν παραμέτρους σε συναρτήσεις, αντί να χρησιμοποιούν τη στοίβα. Αυτό επέτρεψε στους προγραμματιστές της αρχιτεκτονικής Win64 να απαλλαγούν από κάτι όπως μια σύμβαση κλήσης (σύμβαση κλήσης). Στο Win32, μπορείτε να χρησιμοποιήσετε διαφορετικές συμβάσεις: __stdcall, __cdecl, __fastcall, και ούτω καθεξής. Υπάρχει μόνο μία σύμβαση κλήσης στο Win64. Εξετάστε ένα παράδειγμα του τρόπου με τον οποίο περνούν τέσσερα ορίσματα ακέραιου τύπου σε καταχωρητές:

  • RCX: πρώτο επιχείρημα
  • RDX: δεύτερο επιχείρημα
  • R8: τρίτο επιχείρημα
  • R9: τέταρτο επιχείρημα
Τα επιχειρήματα μετά τους τέσσερις πρώτους ακέραιους μεταβιβάζονται στη στοίβα. Για ορίσματα float, χρησιμοποιούνται οι καταχωρητές XMM0-XMM3, καθώς και η στοίβα.

Η διαφορά στις συμβάσεις κλήσης σημαίνει ότι ο κώδικας 64-bit και 32-bit δεν μπορούν να χρησιμοποιηθούν στο ίδιο πρόγραμμα. Με άλλα λόγια, εάν η εφαρμογή έχει μεταγλωττιστεί για λειτουργία 64-bit, τότε όλες οι χρησιμοποιούμενες βιβλιοθήκες (DLL) πρέπει επίσης να είναι 64-bit.

Η μετάδοση παραμέτρων μέσω καταχωρητών είναι μία από τις καινοτομίες που κάνει τα προγράμματα 64 bit πιο αποδοτικά από τα 32 bit. Ένα πρόσθετο κέρδος απόδοσης μπορεί να επιτευχθεί χρησιμοποιώντας τύπους δεδομένων 64-bit.

Χώρος διευθύνσεων

Ενώ ένας επεξεργαστής 64-bit μπορεί θεωρητικά να αντιμετωπίσει 16 exabyte μνήμης (2^64), το Win64 υποστηρίζει επί του παρόντος 16 terabyte (2^44). Υπάρχουν διάφοροι λόγοι για αυτό. Οι τρέχοντες επεξεργαστές έχουν πρόσβαση μόνο σε 1 terabyte (2^40) φυσικής μνήμης. Η αρχιτεκτονική (αλλά όχι το υλικό) μπορεί να επεκτείνει αυτόν τον χώρο έως και 4 petabyte (2^52). Ωστόσο, σε αυτήν την περίπτωση, απαιτείται τεράστια ποσότητα μνήμης για τους πίνακες σελίδων που έχουν αντιστοιχιστεί στη μνήμη.

Εκτός από αυτούς τους περιορισμούς, η ποσότητα μνήμης που είναι διαθέσιμη σε μια συγκεκριμένη έκδοση του λειτουργικού συστήματος Windows 64-bit εξαρτάται επίσης από τις εμπορικές εκτιμήσεις της Microsoft. Ακολουθούν πληροφορίες σχετικά με την ποσότητα της μνήμης που υποστηρίζεται από διάφορες εκδόσεις των εκδόσεων 64-bit των Windows:

Windows XP Professional - 128 Gbyte.
Windows Server 2003, Standard - 32 Gbyte;
Windows Server 2003, Enterprise - 1 Tbyte;
Windows Server 2003, Datacenter - 1 Tbyte.
Windows Server 2008, Datacenter - 2 Tbyte;
Windows Server 2008, Enterprise - 2 Tbyte;
Windows Server 2008, Standard - 32 Gbyte;
Windows Server 2008, Web Server - 32 Gbyte;
Vista Home Basic - 8 Gbyte;
Vista Home Premium - 16 GB;
Vista Business - 128 GB;
Vista Enterprise - 128 GB;
Vista Ultimate - 128 GB;
Windows 7 Home Basic - 8 Gbyte.
Windows 7 Home Premium - 16 GB;
Windows 7 Professional - 192 GB;
Windows 7 Enterprise - 192 GB;
Windows 7 Ultimate - 192 GB;

Ανάπτυξη εφαρμογών 64 bit

Τα θέματα ανάπτυξης εφαρμογών 64-bit συζητούνται πληρέστερα στο μάθημα "

Το 1985 η εταιρεία Intelκυκλοφόρησε έναν μικροεπεξεργαστή 32 bit, ο οποίος έγινε ο πρόγονος της οικογένειας ΙΑ-32. Η ανάπτυξη αυτής της οικογένειας έχει περάσει από διάφορα στάδια, μεταξύ των οποίων διακρίνονται τα ακόλουθα: η υλοποίηση ενός μπλοκ για την επεξεργασία αριθμών κινητής υποδιαστολής απευθείας στο τσιπ MP (μικροεπεξεργαστής Ι486), εισαγωγή ΜΜΧ-Τεχνολογία επεξεργασίας δεδομένων σταθερού σημείου σύμφωνα με την αρχή SIMD - μία εντολή πολλαπλών δεδομένων(μία ροή εντολών - πολλές ροές δεδομένων) στον μικροεπεξεργαστή Pentium MMXκαι η ανάπτυξη αυτής της τεχνολογίας σε αριθμούς κινητής υποδιαστολής ( SSE - συνεχής ροή SIMD Extension), που εμφανίστηκε για πρώτη φορά στο Μ.Π Pentium III. Ωστόσο, τα κύρια χαρακτηριστικά αυτής της αρχιτεκτονικής παραμένουν αμετάβλητα μέχρι σήμερα.

Η αρχιτεκτονική ενός μικροεπεξεργαστή 32 bit διαφέρει σημαντικά από αυτή ενός μικροεπεξεργαστή 16 bit. Μερικές από αυτές τις διαφορές είναι καθαρά ποσοτικές, ενώ άλλες είναι θεμελιώδεις.

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

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

Πραγματοποιήθηκαν τόσο ποσοτικές όσο και ποιοτικές αλλαγές στο μπλοκ καταχωρητών τμημάτων. Εκτός από τους τέσσερις καταχωρητές που χρησιμοποιούνται σε πραγματική λειτουργία, CS, DS, SS και ES, έχουν προστεθεί άλλοι δύο: FS και GS. Αν και το βάθος bit των καταχωρητών αυτού του μπλοκ παρέμεινε το ίδιο (κάθε 16 bit), χρησιμοποιούνται διαφορετικά στο σχηματισμό της φυσικής διεύθυνσης της μνήμης RAM. Όταν ο μικροεπεξεργαστής λειτουργεί στη λεγόμενη προστατευμένη λειτουργία, προορίζεται να αναζητήσει τον περιγραφέα τμήματος (περιγραφέα) στους αντίστοιχους πίνακες συστήματος και τα χαρακτηριστικά διεύθυνσης βάσης και τμήματος είναι ήδη αποθηκευμένα στον περιγραφέα. Η δημιουργία διευθύνσεων σε αυτήν την περίπτωση εκτελείται από το μπλοκ τμηματοποίησης του διαχειριστή μνήμης.

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

Ξεκινώντας με τον μικροεπεξεργαστή I486, το τσιπ μικροεπεξεργαστή περιλαμβάνει μια μονάδα επεξεργασίας αριθμών κινητής υποδιαστολής, η οποία περιλαμβάνει οκτώ καταχωρητές 80-bit για την αναπαράσταση σημάτων, μάντισσων και εκθετών τέτοιων αριθμών.

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

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

Άρρηκτα συνδεδεμένες με αυτή τη δυνατότητα είναι οι προστασίες μνήμης, οι οποίες παρέχουν έλεγχο σε μη εξουσιοδοτημένες αλληλεπιδράσεις μεταξύ μεμονωμένων προγραμμάτων. Αυτά περιλαμβάνουν προστασία διαχείρισης μνήμης και προστασία προνομίων.

Τα κύρια χαρακτηριστικά της εκτεταμένης μορφής εντολών είναι η δυνατότητα χρήσης οποιουδήποτε από τους καταχωρητές γενικής χρήσης σε οποιονδήποτε από τους τρόπους διευθυνσιοδότησης, καθώς και η προσθήκη ενός ακόμη τρόπου διευθυνσιοδότησης - σχετικός βασικός δείκτης με κλιμάκωση. Σε αυτήν την περίπτωση, η πραγματική διεύθυνση διαμορφώνεται ως εξής:

EA = (βάση) + (δείκτης) κλίμακα + disp,

όπου (βάση) είναι η τιμή του βασικού καταχωρητή. (ευρετήριο) - τιμή μητρώου ευρετηρίου. κλίμακα - τιμή συντελεστή κλίμακας (κλίμακα = 1,2,3,4); disp είναι η τιμή μετατόπισης που κωδικοποιείται στην ίδια την εντολή.

Σημειώστε ότι σε μια αρχιτεκτονική 32 bit, η ενεργή διεύθυνση αναφέρεται συνήθως ως μετατόπιση, ενώ τη διακρίνει από την μετατόπιση που κωδικοποιείται στην ίδια την εντολή (μετατόπιση).

Η αρχιτεκτονική bit του υπολογιστή.

Ο κώδικας Win64 συνδυάζει τα βασικά χαρακτηριστικά του κώδικα 32 bit και περιλαμβάνει επίσης αλλαγές που βελτιώνουν τα bit. Ο προγραμματιστής έχει:

· Δείκτες 64-bit.

· Τύποι δεδομένων 64-bit.

· Τύποι δεδομένων 32-bit.

Διεπαφή API Win64.

Σημειώστε ότι οι τύποι δεδομένων 32 bit δεν εξαφανίστηκαν όταν η πλατφόρμα αυξήθηκε σε bit (όπως συνέβη με τους τύπους δεδομένων 16 bit κατά τη μετάβαση στο Win32). Αυτό συμβαίνει επειδή ακόμη και σε εφαρμογές 64 bit, στις περισσότερες περιπτώσεις, οι μεταβλητές δεν απαιτούν 8 byte μνήμης, επομένως η χρήση τύπων 64 bit σε τέτοιες περιπτώσεις θα ήταν εξαιρετικά αναποτελεσματική. λειτουργικό σύστημαΘα έπρεπε να προσθέσω μηδενικά στα high bits για να αυξήσω το μέγεθος των δεδομένων στα 8 byte (τέτοια δεδομένα είναι επίσης πολύ άβολα για ανάγνωση). Αυτό θα οδηγούσε σε υποβάθμιση της απόδοσης.

Μια διαφορετική μοίρα είχε οι δείκτες 32-bit: εξαφανίστηκαν εντελώς. Το γεγονός είναι ότι η χρήση δεικτών 32-bit επιβάλλει ένα όριο στην ποσότητα της διευθυνσιοδοτούμενης μνήμης. Για παράδειγμα, ένα από τα κύρια πλεονεκτήματα του μοντέλου επίπεδης μνήμης (το οποίο είναι το κύριο για τον προγραμματισμό εφαρμογών 32 bit για την πλατφόρμα NT) χρησιμοποιώντας δείκτες 32 bit είναι η δυνατότητα δημιουργίας τμημάτων μεγέθους έως 4 GB. Οι νέοι δείκτες 64-bit παρέχουν τη δυνατότητα διευθυνσιοδότησης έως και 16 TB μνήμης (1 TB = 1012 MB). Αυτός ο όγκος είναι αρκετά απαιτητικός από τις σύγχρονες επιχειρηματικές εφαρμογές.

Οι λειτουργίες στο Win64 API έχουν υποστεί μικρές αλλαγές. Μόνο τα ονόματα ορισμένων από αυτά έχουν αλλάξει για να αντικατοπτρίζουν την πλατφόρμα 64-bit. Στις περισσότερες περιπτώσεις, έχουν αλλάξει μόνο οι τύποι παραμέτρων που είναι ορίσματα για κλήσεις συναρτήσεων. Όλα τα άλλα πλεονεκτήματα (η δυνατότητα διακοπής χρήσης αρχείων σελιδοποίησης κ.λπ.) σχετίζονται είτε με αυξημένο αριθμό διευθύνσεων είτε με νέους τύπους δεδομένων.

Σχεδιασμός πλακών συστήματος. Παράγοντας μορφής

Σχεδιασμός μητρικής πλακέτας υπολογιστή

Μητρική πλακέτα(Αγγλική μητρική πλακέτα, MB, χρησιμοποιείται επίσης το όνομα της αγγλικής κεντρικής πλακέτας - η κύρια πλακέτα, αργκό. μαμά, μητέρα, μητρική πλακέτα) είναι μια πολύπλοκη πλακέτα τυπωμένου κυκλώματος πολλαπλών στρώσεων στην οποία είναι εγκατεστημένα τα κύρια εξαρτήματα προσωπικός υπολογιστής(κεντρικός επεξεργαστής, ελεγκτής RAM και σωστή RAM, boot ROM, ελεγκτές για βασικές διεπαφές I/O). Κατά κανόνα, η μητρική πλακέτα περιέχει υποδοχές (υποδοχές) για τη σύνδεση πρόσθετων ελεγκτών, για τους οποίους συνήθως χρησιμοποιούνται διαύλους USB, PCI και PCI-Express.

ΕΠΕΞΕΡΓΑΣΤΗΣ

Λογικό σύνολο συστήματος (eng. Chipset) - ένα σύνολο τσιπ που συνδέει τη CPU με τη μνήμη RAM και ελεγκτές περιφερειακών συσκευών. Κατά κανόνα, τα σύγχρονα σύνολα λογικής συστήματος χτίζονται με βάση δύο VLSI: "βόρειες" και "νότιες γέφυρες".

βόρεια γέφυρα(Αγγλικά Northbridge), MCH (διανομέας ελεγκτή μνήμης), ελεγκτής συστήματος - παρέχει σύνδεση της CPU με κόμβους χρησιμοποιώντας διαύλους υψηλής απόδοσης: RAM, ελεγκτής γραφικών.

Τα FSB όπως το Hyper-Transport και το SCI μπορούν να χρησιμοποιηθούν για τη σύνδεση της CPU με τον ελεγκτή συστήματος.

Συνήθως η μνήμη RAM συνδέεται με τον ελεγκτή συστήματος. Σε αυτήν την περίπτωση, περιέχει τον ελεγκτή μνήμης. Έτσι, ο τύπος του ελεγκτή συστήματος που χρησιμοποιείται συνήθως εξαρτάται από μέγιστη ένταση RAM, καθώς και το εύρος ζώνης του διαύλου μνήμης ενός προσωπικού υπολογιστή. Ωστόσο, η τρέχουσα τάση είναι να ενσωματωθεί ο ελεγκτής RAM απευθείας στην CPU (για παράδειγμα, ο ελεγκτής μνήμης είναι ενσωματωμένος στον επεξεργαστή στα AMD K8 και Intel Core i7), κάτι που απλοποιεί τις λειτουργίες του ελεγκτή συστήματος και μειώνει την παραγωγή θερμότητας.

Το PCI Express χρησιμοποιείται ως δίαυλος για τη σύνδεση ενός ελεγκτή γραφικών σε σύγχρονες μητρικές πλακέτες. Χρησιμοποιήθηκαν προηγουμένως κοινόχρηστα λεωφορεία (ISA, VLB, PCI) και ο δίαυλος AGP.

νότια γέφυρα(eng. Southbridge), ICH (I / O controller hub), περιφερειακός ελεγκτής - περιέχει ελεγκτές περιφερειακών συσκευών ( σκληρός δίσκος, Ethernet, audio), ελεγκτές διαύλου για σύνδεση περιφερειακών ( Δίαυλος PCI, PCI-Express και USB), καθώς και ελεγκτές διαύλου στους οποίους συνδέονται συσκευές που δεν απαιτούν υψηλό εύρος ζώνης (LPC - χρησιμοποιείται για τη σύνδεση μιας ROM εκκίνησης· ο δίαυλος LPC χρησιμοποιείται επίσης για τη σύνδεση ενός πολυελεγκτή (Αγγλικά Super I / O ) - μικροκυκλώματα, που παρέχουν υποστήριξη για "παλαιωμένες" διεπαφές μεταφοράς δεδομένων χαμηλής απόδοσης: σειριακές και παράλληλες διεπαφές, ελεγκτής πληκτρολογίου και ποντικιού).

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

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

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

Boot ROM - αποθηκεύει το λογισμικό που εκτελείται αμέσως μετά την ενεργοποίηση του ρεύματος. Κατά κανόνα, η ROM εκκίνησης περιέχει το BIOS, αλλά μπορεί επίσης να περιέχει λογισμικό που εκτελείται εντός του EFI.

Αρχιτεκτονικά χαρακτηριστικά 64-bit MP


5.1. Itanium 2 Intel

Ο επεξεργαστής αναπτύχθηκε από την αρχή και, παράλληλα, σε δύο εκδόσεις ταυτόχρονα: από μηχανικούς της Intel και της Hewlett-Packard. Ωστόσο, και οι δύο μάρκες βασίστηκαν φυσικά στις ίδιες ιδέες, αφού παρόλα αυτά δημιουργήθηκαν από κοινού και θα έπρεπε και οι δύο να είχαν γίνει οι ιδρυτές της ίδιας οικογένειας. Η σύνθεση τσιμέντου ήταν, φυσικά, μια ενιαία ιδεολογία που αντικατέστησε το CISC - EPIC (Explicitly Parallel Instruction Computing) και μια νέα αρχιτεκτονική - IA-64, η οποία περιλαμβάνει ένα σύνολο εντολών, μια περιγραφή καταχωρητών και άλλα παρόμοια πράγματα. Ωστόσο, η αρχιτεκτονική είναι απλώς ένα μεταβλητό πράγμα, αρκεί να θυμηθούμε πώς οι επεξεργαστές CISC όπως 8086 και i80486 διαφέρουν μεταξύ τους, και οι δύο δημιουργήθηκαν με βάση το 80x86.
Ομοίως με το Merced και το McKinley, το Itanium και το Itanium 2 - και τα δύο είναι χτισμένα με βάση την ίδια ιδεολογία, αλλά σε διαφορετικές ποικιλίες αρχιτεκτονικής. Κάποτε, η ίδια ιστορία, γενικά, ήταν με τα Pentium και Pentium Pro. Ωστόσο, αυτά είχαν κοινά χαρακτηριστικά, και τα έχουν και αυτά, η EPIC είναι "υπεύθυνη" για αυτό. Πρώτα απ 'όλα, μιλάμε για πλήρη υπερκλιμάκωση μεγάλης κλίμακας, δηλαδή για τη δυνατότητα εκτέλεσης πολλών εντολών ταυτόχρονα. Για αυτό, φυσικά, ο επεξεργαστής περιέχει εκτελεστικές μονάδες - για πράξεις με ακέραιους αριθμούς, με αριθμούς κινητής υποδιαστολής κ.λπ.
Σε αντίθεση με το Pentium και τους διαδόχους του, που καταλαβαίνουν τον κώδικα μόνοι τους, οι επεξεργαστές EPIC βασίζονται σε μεγάλο βαθμό στον μεταγλωττιστή, ο οποίος πρέπει να αναλύσει ο ίδιος τον κώδικα για να βρει τις βέλτιστες θέσεις για να παραλληλίσει την εκτέλεσή του και να παρέχει στον επεξεργαστή αυτές τις πληροφορίες. Επομένως, χρησιμοποιείται "ρητά" - ο επεξεργαστής δεν πρέπει να προσπαθεί να καταλάβει τι μπορεί να εκτελεστεί παράλληλα και τι όχι κ.λπ. - ο μεταγλωττιστής θα του τα εξηγήσει όλα αυτά εκ των προτέρων. Επιπλέον, ισχυροί μηχανισμοί για πρόβλεψη διακλάδωσης, προ-εκτέλεση κομματιών κώδικα, προφόρτωση δεδομένων και παρόμοια - η φόρτωση των μονάδων εκτέλεσης θα πρέπει να κατανέμεται όσο το δυνατόν πιο ομοιόμορφα.
Το πρόβλημα με τους καταχωρητές έχει επιλυθεί ριζικά, ο αριθμός των οποίων έχει αυξηθεί αρκετές φορές: για το Itanium, ο αριθμός τους είναι 128 για γενικούς σκοπούς (Εικ. 1), 128 για την αποθήκευση αριθμών κινητής υποδιαστολής, 8 καταχωρητές μετάβασης και 64 υπεύθυνοι για ra -bot μηχανισμών πρόβλεψης. Όλα είναι προφανή εδώ - ένας τέτοιος αριθμός καταχωρητών, ακόμη και πραγματικά 64-bit, θα είναι αρκετός για να αποθηκεύσει τυχόν απαιτούμενους αριθμούς για οποιονδήποτε λογικό αριθμό εκτελεστικών μονάδων. Το Itanium, ο πρώτος εκπρόσωπος της οικογένειας, έχει μόνο πέντε τέτοιους καταχωρητές - δύο ακέραιους, δύο για λειτουργίες μνήμης και τέσσερις για πράξεις κινητής υποδιαστολής. Η φυσική μνήμη αντιμετωπίζεται με αριθμούς 44 bit, πράγμα που περιορίζει το μέγεθός της σε "μόνο" 17,6 Terabyte, τα μπλοκ κινητής υποδιαστολής λειτουργούν με αριθμούς σε αναπαράσταση 82 bit.

Η Intel εγκατέλειψε την ιδέα να εφαρμόσει έναν πυρήνα 80x86 32-bit σε μορφή υλικού, θεωρώντας ότι ήταν πολύ αναποτελεσματική χρήση της περιοχής μήτρας. Για να μπορέσουμε λοιπόν να εκτελέσουμε τον κώδικα Itanium 80x86, δημιουργήθηκε ένα σύστημα μετάφρασης που μετατρέπει τον κώδικα 80x86 σε IA-64 on the fly.
Προφανώς, αν και άλλα πράγματα είναι ίδια, η απόδοση μιας τέτοιας λύσης θα είναι χαμηλότερη από την καθαρή x86 που τρέχει στην ίδια συχνότητα. Ωστόσο, κανείς δεν περίμενε την εκτέλεση υψηλής ταχύτητας προγραμμάτων x86 από την Itanium - η υποστήριξη αυτής της αρχιτεκτονικής είναι περισσότερο κόστος μεταβατικής περιόδου. Ωστόσο, το γεγονός παραμένει ότι αυτή η οικογένεια δεν είναι κατάλληλη για την επίλυση προβλημάτων 32 bit. Ωστόσο, σχεδόν κανείς δεν θα χρησιμοποιήσει το Itanium για τέτοιους σκοπούς παρουσία πλήρους λογισμικού 64-bit.
Επιπλέον, το ίδιο το Itanium ήταν λίγο πολύ ένα πιλοτικό έργο, όπως και το Pentium Pro, επομένως ο επεξεργαστής θα πρέπει γενικά να θεωρείται περισσότερο ως επίδειξη των δυνατοτήτων της αρχιτεκτονικής. Μια χαρακτηριστική πινελιά - το chipset για το Itanium, 460GX, υποστηρίζει μόνο PC100 SDRAM ως μνήμη, κάτι που λέει κάτι για την ταχύτητα με την οποία ο επεξεργαστής μπορεί να αφομοιώσει δεδομένα. Από την άλλη πλευρά, ωστόσο, σε κάποιο βαθμό δεν είναι πολύ γρήγορη διασύνδεση με ΕΜΒΟΛΟαντισταθμίζεται από μια πολύ μεγάλη κρυφή μνήμη L3 - 2 ή 4 MB, που λειτουργεί σε πλήρη συχνότητα επεξεργαστή (733 ή 800 MHz) με απόδοση έως και 12,8 GB / s.
Ένα άλλο καθήκον του Itanium ήταν να λύσει το πρόβλημα με τους μεταγλωττιστές - τελικά, οι επεξεργαστές EPIC, όπως ήδη αναφέρθηκε, εξαρτώνται πολύ από αυτούς. Σε αντίθεση με τους μεταγλωττιστές για επεξεργαστές 80x86, οι οποίοι δεν είχαν σχεδόν καμία επίδραση στην απόδοσή τους, εδώ οι μεταγλωττιστές είναι πλήρεις συνεργάτες του επεξεργαστή - εξάλλου, του παρέχουν πληροφορίες που είναι εξαιρετικά απαραίτητες για εργασία και πόσο υψηλής ποιότητας θα είναι, θα εξαρτηθεί on - κρεμάστε την ταχύτητα εκτέλεσης αυτού του προγράμματος από τον επεξεργαστή.
Το Itanium 2 είναι ήδη ένα πολύ πιο ενδιαφέρον εμπορικά προϊόν. Δημιουργήθηκε από την Hewlett-Packard, η οποία πήρε τα χέρια της για τη δημιουργία επεξεργαστών 64-bit της σειράς PA-RISC, το τσιπ αποδείχθηκε πολύ πιο προηγμένο. Με ελαφρώς μικρότερη ποσότητα L3 (1,5 ή 3 MB) και ελαφρώς υψηλότερη συχνότητα, 900 MHz ή 1 GHz, παρέχει μιάμιση έως δύο φορές ταχύτερη απόδοση στις ίδιες εργασίες με το Itanium. Στην πραγματικότητα, είναι ο πρώτος εκπρόσωπος της αρχιτεκτονικής IA-64.
Επιπλέον, σχεδιάζεται ακόμη μεγαλύτερη παραλληλοποίηση με τον πιο μοντέρνο τρόπο για σήμερα: ο επεξεργαστής θα πρέπει να μεταβεί σε δύο φυσικούς πυρήνες, οι οποίοι θα διπλασιάσουν σχεδόν την απόδοση σε αρκετά λογική τιμή - τουλάχιστον, το αποτέλεσμα θα αποδειχθεί πολύ φθηνότερο από ό,τι αν προσπαθούσαν να επιτύχουν τον ίδιο αριθμό εκτελεστικών μονάδων, μητρώων κ.λπ. σε ένα μόνο τσιπ.

5.2. Athlon 64 AMD

Πρώτα απ 'όλα, σημειώνουμε ότι ο επεξεργαστής Athlon 64 είναι ακριβώς ο επιτραπέζιος επεξεργαστής 64-bit που η AMD σχεδίαζε αρχικά να κυκλοφορήσει. Στη συνέχεια, υπό το φως της κυκλοφορίας των επεξεργαστών Pentium 4 υψηλής ταχύτητας, της εμφάνισης ενός διαύλου 800 MHz και της τεχνολογίας Hyper-Threading σε αυτούς, η AMD αποφάσισε επειγόντως να στοχεύσει το Opteron ενός επεξεργαστή στην αγορά επιτραπέζιων υπολογιστών, δίνοντάς του το όνομα Athlon 64 FX. Ωστόσο, το Athlon 64 FX, λόγω της προέλευσης του διακομιστή του, αποδείχθηκε ότι ήταν ακριβό και δεν χρησιμοποιήθηκε ευρέως. Είναι το Athlon 64 που πρέπει πραγματικά να προωθήσει την αρχιτεκτονική AMD64 για μαζική χρήση.
Ακολουθεί ο Πίνακας 1 με προδιαγραφές για τα 64-bit Athlon 64 3200+, Athlon 65 FX-51 και Athlon XP 3200+ MPs:

Τραπέζι 1

* Σημειώστε ότι η μνήμη στο Athlon 64 και στο Athlon 64 FX είναι χρονισμένη σε σχέση με το ρολόι του πυρήνα, επομένως τα πραγματικά ρολόγια μνήμης σε αυτήν την περίπτωση είναι 129,4, 157,1 και 200 ​​MHz.
Στην πραγματικότητα, το Athlon 64 διαφέρει από το παλαιότερο αντίστοιχο Athlon 64 FX, εκτός από το σχήμα και τις διαστάσεις της θήκης, μόνο στον ελεγκτή μνήμης. Αν και, ταυτόχρονα, και οι δύο επεξεργαστές είναι κατασκευασμένοι από τους ίδιους κρυστάλλους. Ο ελεγκτής μνήμης στο Athlon 64 είναι μονοκάναλος και αυτό είναι τόσο η αδυναμία όσο και το πλεονέκτημά του σε σύγκριση με το Athlon 64 FX. Το μειονέκτημα του ελεγκτή μνήμης ενός καναλιού στο Athlon 64 είναι προφανές: είναι χαμηλότερο θεωρητικό εύρος ζώνης.
Δεδομένου ότι το Athlon 64 μπορεί να λειτουργεί με μνήμη DDR400, το μέγιστο εύρος ζώνης του ελεγκτή μνήμης που είναι ενσωματωμένο στην CPU είναι 3,2 GB ανά δευτερόλεπτο. Αυτό είναι δύο φορές λιγότερο από το παρόμοιο χαρακτηριστικό του Athlon 64 FX. Το πλεονέκτημα του ελεγκτή μνήμης Athlon 64 είναι ότι, σε αντίθεση με τον ελεγκτή Athlon 64 FX, υποστηρίζει συμβατικές μη καταχωρημένες μονάδες μνήμης. Τέτοιες μονάδες είναι φθηνότερες σε σύγκριση με τις μονάδες εγγραφής, έχουν πιο επιθετικούς χρονισμούς και λειτουργούν πιο γρήγορα, ακόμη και με τις ίδιες ρυθμίσεις με τις μονάδες εγγραφής. Δηλαδή, με χαμηλότερο εύρος ζώνης που παρέχεται από τον ελεγκτή μνήμης Athlon 64, το υποσύστημα μνήμης που το χρησιμοποιεί έχει μικρότερο λανθάνοντα χρόνο, το οποίο θα δείξουμε παρακάτω.
AMD Athlon 64 εμφάνισηπαρόμοια με το Opteron και το Athlon 64 FX.
Διαφορές εντοπίζονται μόνο στην επισήμανση και λιγότερες ακίδες στην πίσω πλευρά, καθώς οι επεξεργαστές Athlon 64 είναι εγκατεστημένοι στο μητρικές πλακέτεςμε Socket 754 και δεν είναι συμβατές με πλακέτες Socket 940 που έχουν σχεδιαστεί για τις οικογένειες CPU Athlon 64 FX και Opteron.
Εκτός από τα χαρακτηριστικά που αναφέρονται παραπάνω, οι νέοι επεξεργαστές Athlon 64 έχουν ένα ακόμη. Αυτοί οι επεξεργαστές έχουν υποστήριξη για την τεχνολογία Cool'n'Quiet, από την οποία προήλθαν στην πραγματικότητα επιλογές για κινητάβουλευτής. Στην πραγματικότητα, το Cool'n'Quiet είναι ένα είδος τεχνολογίας εξοικονόμησης ενέργειας PowerNow!, που χρησιμοποιείται εδώ και καιρό σε φορητές συσκευές MP από την AMD. Τώρα όμως αυτή η τεχνολογία ήρθε επιτέλους στους επιτραπέζιους επεξεργαστές της εταιρείας. Η υποστήριξη Cool'n'Quiet είναι ένα άλλο πλεονέκτημα του Athlon 64 έναντι του Athlon 64 FX/Opteron, που δεν διαθέτουν ακόμη τέτοιες τεχνολογίες. Η AMD δίνει μεγάλη προσοχή στη μείωση του επιπέδου απαγωγής θερμότητας των επιτραπέζιων επεξεργαστών της εδώ και πολύ καιρό.
Πρέπει να πούμε ότι η εταιρεία ήταν εδώ και πολύ καιρό ανώτερη από την Intel σε αυτό: τα παλαιότερα μοντέλα επεξεργαστών AMD εκπέμπουν σημαντικά λιγότερη θερμότητα στο μέγιστο φορτίο από τα παλαιότερα μοντέλα Pentium 4. Επίσης, οι επεξεργαστές χρησιμοποιούν τεχνολογίες που μειώνουν την απαγωγή θερμότητας ακόμη και σε χαμηλό φορτίο. Περισσότερες οικογένειες βουλευτών
Τα χαρακτηριστικά του Athlon XP είχαν τη δυνατότητα να μεταβούν σε «λειτουργία αναμονής» (Halt/Stop Grant) κατά την εκτέλεση της εντολής HALT, γεγονός που είχε ως αποτέλεσμα τη μείωση της θερμοκρασίας του επεξεργαστή όταν φορτωνόταν κάτω από το 100%. Τώρα, όμως, η AMD έχει προχωρήσει ακόμη περισσότερο. Οι νέοι επεξεργαστές Athlon 64 διαθέτουν ένα ακόμη πιο έξυπνο σχέδιο μείωσης της θερμότητας.
Εκτός από τις καταστάσεις Χορηγίας Παύσης/Διακοπής, το Athlon 64 μπορεί να επαναφέρει την ταχύτητα του ρολογιού και την τάση του για να μειώσει περαιτέρω τη διάχυση θερμότητας. Κατά τη λειτουργία με αυτήν την τεχνολογία, η ταχύτητα του ρολογιού της CPU ελέγχεται από το πρόγραμμα οδήγησης του επεξεργαστή, το οποίο την επαναφέρει ή την αυξάνει με βάση τα δεδομένα σχετικά με το φορτίο του. Πράγματι, εάν ο επεξεργαστής αντεπεξέλθει πλήρως στην εργασία που του έχει ανατεθεί και το φορτίο του είναι πολύ μικρότερο από 100%, τότε είναι δυνατό να μειωθεί η συχνότητα του ρολογιού του χωρίς να θίγεται η λειτουργία του συστήματος στο σύνολό του: αυτό δεν θα επηρεάσει τη λειτουργία του συστήματος με οποιονδήποτε τρόπο. Για παράδειγμα, σε κατάσταση αδράνειας, εργασία σε εφαρμογές γραφείου, παρακολούθηση βίντεο, ανασυγκρότηση δίσκων και παρόμοιες εργασίες, η ισχύς του επεξεργαστή δεν χρησιμοποιείται πλήρως. Σε τέτοιες περιπτώσεις, το πρόγραμμα οδήγησης επεξεργαστή αλλάζει το Athlon 64 σε χαμηλότερη ταχύτητα ρολογιού. Όταν ο επεξεργαστής καλείται να δώσει πλήρη έξοδο, για παράδειγμα, σε παιχνίδια, κατά την επίλυση υπολογιστικών προβλημάτων, σε εργασίες κωδικοποίησης δεδομένων κ.λπ., η συχνότητα του επεξεργαστή αυξάνεται στην ονομαστική. Έτσι ακριβώς λειτουργεί η τεχνολογία Cool'n'Quiet.
Στην πράξη, μοιάζει με αυτό. Υπό κανονικές συνθήκες, με ελάχιστο φορτίο MP, το πρόγραμμα οδήγησης επεξεργαστή επαναφέρει τη συχνότητα του Athlon 64 3200+ από τα τυπικά 2 GHz στα 800 MHz. Στη συνέχεια, η τάση του επεξεργαστή μειώνεται στα 1,3 V. Όπως μπορείτε να δείτε, η μείωση της συχνότητας ρολογιού παρέχεται με τη μείωση του πολλαπλασιαστή του επεξεργαστή στο 4x. Αυτό, παρεμπιπτόντως, καθορίζει επίσης το γεγονός ότι οι επεξεργαστές Athlon 64 3200+ παρέχονται με έναν μη σταθερό πολλαπλασιαστή. Σε αυτή τη λειτουργία, ο επεξεργαστής συνεχίζει να λειτουργεί έως ότου το φορτίο του ξεπεράσει το 70-80%. Συγκεκριμένα, μπορέσαμε να εκτελέσουμε ταυτόχρονα ανασυγκρότηση δίσκου, αναπαραγωγή αρχείων mp3 (αρχεία ήχου) και παρακολούθηση βίντεο MPEG-4 (αρχεία βίντεο), ενώ ο επεξεργαστής συνέχισε να λειτουργεί σε συχνότητα 800 MHz.
Όταν το φορτίο στον επεξεργαστή Athlon 64 στα 800 MHz υπερβαίνει το επιτρεπόμενο όριο, ο οδηγός αλλάζει το MP στην επόμενη κατάσταση, στην οποία η συχνότητα Athlon 64 3200+ είναι 1,8 GHz και η τάση τροφοδοσίας είναι 1,4 V. Αυτό επιτυγχάνεται πάλι με τη μείωση του πολλαπλασιαστή, αυτή τη φορά στο 9x. Και μόνο εάν σε αυτήν την περίπτωση το φορτίο του επεξεργαστή αποδειχθεί και πάλι υπερβολικά υψηλό, ο οδηγός αλλάζει το MP στην κανονική λειτουργία: η συχνότητα είναι 2 GHz, η τάση τροφοδοσίας είναι 1,5 V.
Σημειώστε ότι σε λειτουργίες χαμηλής κατανάλωσης ενέργειας και χαμηλής συχνότητας, η απαγωγή θερμότητας του επεξεργαστή Athlon 64 3200+ πέφτει απότομα. Για σύγκριση, παρουσιάζουμε τον Πίνακα 4 με την απαγωγή θερμότητας αυτού του επεξεργαστή στις κύριες λειτουργίες.

Έτσι, η χρήση της τεχνολογίας Cool'n'Quiet σάς επιτρέπει να μειώσετε σημαντικά τη θερμοκρασία του επεξεργαστή όχι μόνο σε περιόδους αδράνειας, αλλά και σε ορισμένες εργασίες που δεν απαιτούν μέγιστη απόδοση από το MP. Αυτό που είναι σημαντικό είναι ότι η απόδοση του MP σε εργασίες που είναι απαιτητικές για τους πόρους του επεξεργαστή δεν μειώνεται καθόλου. Ως αποτέλεσμα, όταν χρησιμοποιείτε συστήματα ψύξης με ανεμιστήρες μεταβλητής ταχύτητας, η χρήση της τεχνολογίας Cool'n'Quiet μπορεί να μειώσει σημαντικά το επίπεδο θορύβου.