Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Σχετικά έγγραφα
Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (virtual memory)

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχανικών - Μηχανικών Υπολογιστών. Αρχιτεκτονική Υπολογιστών Νεκτάριος Κοζύρης.

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Εικονική Μνήμη (virtual memory)

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

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

Virtual Memory. Αρχιτεκτονική Υπολογιστών. 5ο εξάμηνο ΣΗΜΜΥ ακ. έτος: Νεκ. Κοζύρης

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Λειτουργικά Συστήματα Η/Υ

ΠΛΕ- 027 Μικροεπεξεργαστές

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

Εικονική Μνήμη (Virtual memory)

Εικονική Μνήμη (virtual memory)

Writing kernels for fun and profit

Εικονική Μνήμη (virtual memory)

Διαχείριση Κύριας Μνήμης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης III

Μάθημα 8: Διαχείριση Μνήμης

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

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης Εργαστηριακές Ασκήσεις

Προηγμένοι Μικροεπεξεργαστές. Παρουσίαση Εργασιών

ΔΙΑΛΕΞΗ 8: ΕΙΚΟΝΙΚΗ (Virtual) ΜΝΗΜΗ

Προηγμένοι Μικροεπεξεργαστές. Protected Mode & Multitasking

Αρχιτεκτονική-ΙI Ενότητα 6 :

i Στα σύγχρονα συστήματα η κύρια μνήμη δεν συνδέεται απευθείας με τον επεξεργαστή

ιαχείριση Μνήµης (Memory Management)

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

Τεχνολογίες Κύριας Μνήμης

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

Προηγμένοι Μικροεπεξεργαστές. Υποσύστημα Μνήμης

Υλισµικό διαχείρισης µνήµης (Memory management hardware)

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Δημήτρης Πρίτσος. ISLAB HACK: Βασικές Έννοιες της Αρχιτεκτονικής

Υλισμικό Διαχείρισης Μνήμης (Memory Management Hardware)

Ενσωµατωµένα Υπολογιστικά Συστήµατα (Embedded Computer Systems)

Μικροεπεξεργαστές - Μικροελεγκτές Ψηφιακά Συστήματα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I

Εισαγωγή στα Λειτουργικά Συστήματα

Υ- 01 Αρχιτεκτονική Υπολογιστών Υπόβαθρο: Κρυφές μνήμες

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Αρχιτεκτονική x86(-64) 32-bit και 64-bit λειτουργία. Αρχιτεκτονική x86(-64) Αρχιτεκτονική επεξεργαστών x86(-64) Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

Διάλεξη 15 Απόδοση της Ιεραρχίας Μνήμης Βελτιστοποίηση της απόδοσης

ΠΡΟΗΓΜΕΝΟΙ ΜΙΚΡΟΕΠΕΞΕΡΓΑΣΤΕΣ PROJECT 2: MEMORY MANAGEMENT

Εισαγωγή στα Λειτουργικά

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ Η/Υ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

Εικονικοποίηση. Αρχιτεκτονική Υπολογιστών 5ο Εξάμηνο,

Λειτουργικά Συστήματα (ΗΥ321)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Λειτουργικά Συστήματα (Λ/Σ)

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

Προηγμένοι Μικροεπεξεργαστές. Φροντιστήριο 2 Addressing

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Κρυφές Μνήμες. (οργάνωση, λειτουργία και απόδοση)

Λειτουργικά Συστήματα Ι. Διαχείριση Μνήμης (Memory Management)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Διαχείριση Μνήμης (Memory Management)

Μηχανοτρονική. Τμήμα Μηχανικών Παραγωγής και Διοίκησης 7 ο Εξάμηνο,

Τελική Εξέταση, Απαντήσεις/Λύσεις

Dr. Kerneldev or: how I learned to stop worrying and love the pagefault

Καταχωρητές & τμήματα μνήμης του Ματθές Δημήτριος Καθηγητής Πληροφορικής

Ιεραρχία Μνήμης. Ιεραρχία μνήμης και τοπικότητα. Σκοπός της Ιεραρχίας Μνήμης. Κρυφές Μνήμες

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης I

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

Εικονικοποίηση. Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο,

ΠΛΕ- 027 Μικροεπεξεργαστές 9ο μάθημα: Αρχιτεκτονική συστήματος μνήμης: Κρυφές μνήμες εισαγωγή

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

add $t0,$zero, $zero I_LOOP: beq $t0,$s3, END add $t1, $zero,$zero J_LOOP: sub $t2, $s3, $t0 add $t2, $t2, $s1 int i, j, tmp; int *arr, n;

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Α. Δίνονται οι. (i) στη. πρέπει να. πιο. (ii) $a0. $s0 θα πρέπει να. αποθήκευση. αυξάνει τον. f: sub sll add sub jr. h: addi sw sw.

Προηγµένες Υπηρεσίες Τηλεκπαίδευσης στο Τ.Ε.Ι. Σερρών

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

Τεχνολογία Υπολογιστικών Συστηµάτων & Λειτουργικά Συστήµατα Κεφάλαιο 9

Θ. Ζαχαριάδης Αν. Καθηγητής. Λ. Σαράκης Καθ. Εφαρμογών

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

ΑΡΧΙΤΕΚΤΟΝΙΚΗ HARDWARE ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

Οργάνωση Υπολογιστών (Ι)

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II

O επεξεργαστής: Η δίοδος δεδομένων (datapath) και η μονάδα ελέγχου (control)

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

Λειτουργικά Συστήματα (ΗΥ222)

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διαχείριση μνήμης II

Εργαστήριο 4. Εαρινό Εξάμηνο ΠΡΟΣΟΧΗ: Αρχίστε νωρίς το Εργαστήριο 4. Οι ασκήσεις είναι πιο απαιτητικές από τα προηγούμενα εργαστήρια.

Επιτεύγµατα των Λ.Σ.

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ II. χειμερινό εξάμηνο & εαρινό εξάμηνο (σε κίτρινο υπόβαθρο)

ΠΛΕ- 074 Αρχιτεκτονική Υπολογιστών 2

Transcript:

Προηγμένοι Μικροεπεξεργαστές Paging & Segmentation

Segmentation Τεχνική για σπάσουμε την μνήμη σε λογικά κομμάτια Κάθε κομμάτι αποθηκεύει πληροφορία σχετική με data segments for each process code segments for each process data segments for the OS etc. Στόχος: (όπως και του paging) χρήση σκληρού δίσκου για να φαίνεται μεγαλύτερη η μνήμη Το Segmentation μπορεί να υλοποιηθεί με και χωρίς paging

Segmentation P 1 data P 1 code print function P 2 data P 2 code OS Code OS data OS stack logical address space

Addressing Segments Αρχικά υποθέτουμε ότι ΔΕΝ υπάρχει paging στο σύστημα Η CPU στέλνει logical addresses Τα logical addresses αποτελούνται από segment number και ένα offset μέσα στο segment Segment number: index σε ένα table Table περιέχει το physical address της αρχής του segment (base address) Offset + base address physical address Offset, limit checking

Addressing Segments limit base S o logical address segment table o < limit yes + Physical Address no error

Segmentation Hardware Θεωρητικά ίδιο με το paging Όμως segments έχουν μεταβλητό μέγεθος Όλα γίνονται σε hardware Πολλά γίνονται από το OS ή από system software (όπως λέει το manual)

Protection and Sharing limit base 0 1000 200 1 35009000 LDT limit base 0 1000 200 1 300 2000 LDT limit base 0 500 2500 1 9000 20000 GDT 200 1200 2000 2300 2500 3000 9000 12500

Segment Registers (i386)

Segmentation Issues Αν δεν είχαμε paging Όλο το segment είναι είτε στην memory ή στο δίσκο Μεταβλητού μεγέθους segments external fragmentation στην μνήμη Πρέπει να βρεθεί μεγάλος χώρος για ένα νέο segment Ίσως να χρειαστούν πολλά segments να βγουν από την μνήμη για να μπει ένα νέο segment

Segmentation with Paging Όλα αυτά λύνονται με το paging

Logical to Physical Address Translation in Pentium

virtual address from user descriptor offset limit base + segment table linear address PT directory directory page offset page table page frame directory base

Γιατί paging; Paging και segmentation είναι ισοδύναμοι μηχανισμοί virtual memory Γιατί χρειαζόμαστε άλλο ένα σύστημα virtual memory;

Γιατί paging: Intel's part Το segmentation αρχικά υλοποιήθηκε μόνο για την επέκταση της μνήμης πάνω από τα 64KB virtual memory και protection = afterthought μπήκαν στους 80286 Η διαχείριση ενός segmented μοντέλου στους x86 είναι δύσκολη Ποτέ δεν υποστηρίχθηκε πλήρως από τα OS

Γιατί paging: Pros and cons Στο segmentation η διεργασία παίρνει ακριβώς το χώρο που χρειάζεται, όχι το πολλαπλάσιο κάποιας τιμής --------------------------------------------------------------------------- Διαφορετικά μεγέθη segments = εξωτερικό fragmentation και δυσκολία διαχείρισης Για να δεσμεύσουμε ένα segment για καινούργια δεδομένα σε μία πλήρη μνήμη θα διώξουμε έναν τυχαίο αριθμό από segments τυχαίων μεγεθών Επικαλυπτόμενα segments: Δύσκολο να διακρίνουμε ποιος χώρος ανήκει σε ποιο segment

Γιατί paging: Pros and cons Το segmentation μας δίνει ισχυρούς μηχανισμούς protection και multitasking ευκολίες --------------------------------------------------------------------- Περίπλοκοι και συνήθως αχρείαστοι Με paging και system software μπορούμε σχετικά εύκολα και συχνά πιο αποδοτικά να υλοποιήσουμε παρόμοιες λειτουργικότητες

Paging: Γενικά Το (linear/virtual) address space χωρίζεται σε ισομεγέθη blocks συνεχόμενων θέσεων μνήμης, τα pages Κάθε linear/virtual διεύθυνση μεταφράζεται σε physical μέσω ενός page table To page table δείχνει την φυσική διεύθυνση όπου ξεκινά το page Η linear διεύθυνση επιλέγει page & offset μέσα στο page Ο συνδυασμός της φυσικής διεύθυνσης βάσης και του offset δημιουργεί την τελική φυσική διεύθυνση

Paging: Γενικά Το λειτουργικό σύστημα μπορεί να σημαδεύει εγγραφές στο page table σαν κενές Το page που αντιστοιχεί σε μία τέτοια εγγραφή μπορεί τότε να μετακινηθεί εκτός μνήμης, πχ στον δίσκο Αν ένα πρόγραμμα προσπαθήσει να προσπελάσει ένα τέτοιο page, παράγεται page fault, ο έλεγχος γυρνά στο λειτουργικό, αυτό επαναφέρει την σελίδα στην μνήμη και συνεχίζεται κανονικά η προσπέλαση

Virtual Memory: Γενική ιδέα Εικονική Μνήμη Μεγαλύτερη από τη Φυσική Μνήμη

Paging στους x86 Τα pages έχουν μέγεθος 4KB (ή 4ΜΒ) και είναι στοιχισμένα σε όρια των 4 KB Η φυσική μνήμη αποτελείται από 1Μ pages Η μετάφραση από linear σε physical γίνεται σε δύο επίπεδα Το πρώτο επίπεδο επιλέγει page table To δεύτερο επιλέγει ένα page από το page table

Paging στους x86

Paging στους x86

Paging στους x86 Ο καταχωρητής CR3 περιέχει την διεύθυνση βάσης του page directory Τα 10 υψηλότερα bits της linear διεύθυνσης δίνουν τον αύξων αριθμό του entry μέσα στο page directory (page directory entry) To page directory entry είναι 32 bit και δίνει την διεύθυνση βάσης του αντίστοιχου page table και πληροφορίες για το OS

Paging στους x86 Τα 10 επόμενα bits της linear διεύθυνσης δίνουν τον αύξων αριθμό του entry μέσα στο επιλεγμένο page table (page table entry) To page table entry είναι 32 bit και δίνει την φυσική διεύθυνση βάσης ενός page (page frame address)

Paging στους x86 Τα τελευταία 12 bits της linear διεύθυνσης δίνουν το offset του δεδομένου μέσα στο page frame

Page table entries Τα page table entries και τα page directory entries έχουν την ίδια δομή Τα 20 υψηλότερα bits δίνουν την διεύθυνση βάσης του page frame που θα χρησιμοποιηθεί από το επόμενο επίπεδο μετάφρασης

Page table entries Τα υπόλοιπα bits χρησιμοποιούνται από τον επεξεργαστή για διαχείριση και προστασία Present: αν είναι 0, προκαλείται page fault ώστε το λειτουργικό να φέρει την σελίδα στην μνήμη Read/Write: ορίζει τα δικαιώματα ανάγνωσης/εγγραφής του αντίστοιχου page frame User/Supervisor: ορίζει το απαιτούμενο CPL για χρήση του page frame Accessed: Γίνεται set όταν προσπελαστεί το page frame Dirty: Γίνεται set όταν γίνει προσπέλαση εγγραφής στο page frame

Elegant Paging Τo page directory και τα page tables έχουν 1Κ εγγραφές των 4 byte Κάθε directory και table είναι στο δικό page Μπορούμε να μετακινούμε ολόκληρα page tables όπως τα υπόλοιπα pages, ακόμη και να τα βγάζουμε εκτός μνήμης

Πέρασμα σε paging Δημιουργία page table entries τα page frames που χρησιμοποιούνται από τον κώδικα πρέπει να αντιστοιχούν σε pages με ταυτόσημες linear διευθύνσεις. linear address == physical address Φόρτωση του CR3 (PDBR) με την διεύθυνση βάσης του page directory Set το PG bit του CR0 Jump για να αδειάσει το pipeline

Segmentation + Paging??? Το segmentation δεν μπορεί να απενεργοποιηθεί τελείως, ακόμη και αν χρησιμοποιούμε paging

Intel Pentium Segmentation

Pentium Paging Architecture

Intel 386 address translation 34

Segmentation + Paging??? Διάφορες λογικές χρήσης: Segment που περιέχουν πολλαπλά pages, για ξεχωριστή προστασία μεγάλων δομών Pages που περιέχουν πολλαπλά segments, για προστασία και διαχωρισμό κρίσιμων μικρών δομών από τις γειτονικές Segments που ταυτίζονται με τα pages, ώστε να αυξάνουμε την προστασία των σελίδων χωρίς να περιπλέκουμε την διαχείρηση μνήμης

Segmentation + Paging??? Στην πράξη όμως: Flat memory model: οι segment registers δείχνουν σε segments που ξεκινούν από την διεύθυνση 0 και καλύπτουν όλη την μνήμη Πχ από το linux 2.6 υπάρχουν μόνο 5 descriptors: Null Code και data με DPL = 0 Code και data με DPL = 3

Linear Address in Linux Υπάρχουν 4 μέρη:

Three-level Paging in Linux

Intel 386 address translation 39

Segment Registers (i386)

Translation Lookaside Buffers Κανονικά η μετάφραση απαιτεί δύο έξτρα προσπελάσεις μνήμης Η καθυστέρηση προσπέλασης της μνήμης ούτως ή άλλως είναι bottleneck στους σύγχρονους επεξεργαστές Και τώρα την τριπλασιάζουμε;;;;

Translation Lookaside Buffers Τα περισσότερα προγράμματα κάθε χρονική στιγμή χρησιμοποιούν μόνο ένα μικρό υποσύνολο των σελίδων τους Translation Lookaside Buffers (TLB): μικρές και γρήγορες κρυφές μνήμες μέσα στον επεξεργαστή κρατάνε αντιστοιχίες για τις πιο πρόσφατες μεταφράσεις από linear σε physical address Αν το πρόγραμμα έχει τοπικότητα στην χρήση των δεδομένων του, το virtual memory είναι δωρεάν!

Πως γίνεται η μετάφραση Τα bits 31:22 μας δείχνουν το offset του σχετικού directory entry μέσα στο Page Directory Τα bits 21:12 μας δείχνουν το offset του σχετικού page-table entry μέσα στο Page Table. Τα bits 11:0 μας δείχνουν το offset της μεταβλητής μέσα στο Page 3 memory accesses για την προσπέλαση μίας μεταβλητής Προφανώς δεν γίνεται να κάνουμε την ίδια διαδικασία για κάθε ξεχωριστή μεταβλητή

Translation Lookaside Buffer Η Λύση: Μία cache μνήμη που θα αποθηκεύει αντιστοιχίες virtual σε physical διευθύνσεις TLB Κάθε εγγραφή του TLB περιέχει: Τα 20 high-order bits της virtual address Τα 20 high-order bits της αντίστοιχης physical address 4 control bits Για pages που η physical address τους βρίσκεται στο TLB Μόνο ένα access

TLB και x86 architecture Η δομή και οι μέθοδοι ελέγχου του TLB δεν αποτελούν κομμάτι της x86 αρχιτεκτονικής Σε κάθε διαφορετικό μοντέλο η υλοποίηση μπορεί και συνήθως είναι αρκετά διαφορετική

TLB και x86 architecture

Test Registers Έλεγχος των TLB

Έλεγχος των TLB Τα περιεχόμενα των TLB είναι προσπελάσιμα μέσω των test registers TR6 και TR7 TR7 TR6

TR6: Έλεγχος των TLB TR6 Bit 0: Δηλώνει αν θέλουμε να αναζητήσουμε (1) ή να γράψουμε (0) ένα TLB Bit 1: Δηλώνει αν θέλουμε να ενεργήσουμε στο instruction (0) ή στο data (1) TLB Bits 31:12 : Το page που ψάχνουμε να δούμε αν περιέχεται στο TLB ή που θέλουμε να προσθέσουμε TR7 TR6

TR7: Έλεγχος των TLB TR7 Bit 4: Δείχνει αν κατά την αναζήτηση ενός page είχαμε hit στο TLB Bits 31:12 : Αν αναζητούσαμε και είχαμε hit περιέχουν την physical address που αντιστοιχεί στο page που αναζητήσαμε Αν γράφουμε ένα TLB θέτουμε εδώ το physical address που θέλουμε να αντιστοιχεί στο page που ορίσαμε στον TR6 TR7 TR6

Έλεγχος των TLB Μετά τους Pentium οι TR6 και TR7 μετατράπηκαν σε Model Specific Registers που διαβάζονται με την εντολή RDMSR και γράφονται με την εντολή WRMSR RDMSR: Διαβάζει τον MSR που καθορίζεται από τον ECX στους καταχωρητές EDX:EAX WRMSR: Γράφει τα περιεχόμενα των καταχωρητών EDX:EAX στον MSR που καθορίζεται από τον ΕCX Ο TR6 χρησιμοποιείται με ECX=8 και ο TR7 με ECX=9

Παράδειγμα ελέγχου του D-TLB next: mov eax,page_no ;load eax with the page number or eax,01h ;we search for that page or eax,02h ;and we search in the D-TLB mov ecx,08h ;WRMSR refers to TR6 wrmsr ;so TR6 <= eax mov ecx,09h ;RDMSR refers to TR7 rdmsr ;so eax <= TR7 and al,10h ;leave only the hit bit jz miss ;if zero, page not in TLB hit: ;print that page PAGE_NO was found and ;to which physical page frame it corresponds miss: ;print that page PAGE_NO was not found