1 / 10

Translation Lookaside Buffers

Translation Lookaside Buffers. Φροντιστήριο του μαθήματος “ Προηγμένοι Μικροεπεξεργαστές ”. Πως γίνεται η μετάφραση. Τα bits 31:22 μας δείχνουν το offset του σχετικού directory entry μέσα στο Page Directory

mark-price
Download Presentation

Translation Lookaside Buffers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Translation Lookaside Buffers Φροντιστήριο του μαθήματος “Προηγμένοι Μικροεπεξεργαστές”

  2. Πως γίνεται η μετάφραση • Τα 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 για την προσπέλαση μίας μεταβλητής • Προφανώς δεν γίνεται να κάνουμε την ίδια διαδικασία για κάθε ξεχωριστή μεταβλητή

  3. 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

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

  5. TLB και x86 architecture

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

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

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

  9. Έλεγχος των 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

  10. Παράδειγμα ελέγχου του 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 ;soeax <= 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

More Related