<< Chapter < Page Chapter >> Page >
  • One possibility: search whole table from start on every reference.
  • A better possibility: restrict the info for any given virtual page to fall in exactly one location in the memory. Then only need to check thatone location. E.g. use the low-order bits of the virtual page number as the index into the memory. This is the way real TLB's work.

Disadvantage of TLB scheme: if two pages use the same entry of the memory, only one of them can be remembered at once. If processis referencing both pages at same time, TLB does not work very well.

Example: TLB with 64 (100 octal) slots. Suppose the following virtual pages are referenced (octal): 621, 2145, 621, 2145, ... 321,2145, 321, 621.

TLBs are a lot like hash tables except simpler (must be to be implemented in hardware). Some hash functions are better thanothers.

  • Is it better to use low page number bits than high ones?
  • Is there any way to improve on the TLB hashing function?

Another approach: let any given virtual page useeither of two slots in the TLB. Make memory wider, use two comparators to check both slots at once.

  • This is as fast as the simple scheme, but a bit more expensive (two comparators instead of one, also have to decide which old entry to replacewhen bringing in a new entry).
  • Advantage: less likely that there will be conflicts that degrade performance (takes three pages falling in the same place, instead of two).
  • Explain names:
    • Direct mapped.
    • Set associative.
    • Fully associative.

Must be careful to flush TLB during each context swap. Why?

In practice, TLB's have been extremely successful with 95% or great hit rates for relatively small sizes.

Inverted page tables

As address spaces have grown to 64 bits, the side of traditional page tables becomes a problem. Even with two-level (or even three orfour!) page tables, the tables themselves can become too large.

A solution (used on the IBM Power4 and others) to this problem has two parts:

  • A physical page table instead of a logical one. The physical page table is often called an inverted page table. This table contains one entry perpage frame. An inverted page table is very good at mapping from physical page to logical page number (as is done by the operating system during a page fault),but not very good at mapping from virtual page number to physical page number (as is done on every memory reference by the processor).
  • A TLB fixes the above problem. Since there is no other hardware or registers dedicated to memory mapping, the TLB can be quite a bit larger so thatmissing-entry faults are rare.

With an inverted page table, most address translations are handled by the TLB. When there is a miss in the TLB, theoperating is notified (via an interrupt) and TLB miss-handler is invoked.

Shadow tables

The operating system can sometimes be thought of as an extension of the abstractions provided by the hardware. However, when thetable format is defined by the hardware (such as for a page table entry), you cannot change that format. So, what do you do if you wanted to store additionalinformation, such as last reference time or sharing pointer, in each entry?

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Operating systems. OpenStax CNX. Aug 13, 2009 Download for free at http://cnx.org/content/col10785/1.2
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Operating systems' conversation and receive update notifications?

Ask