Next: Reducing the OS TLB
Up: Optimizing the Idle Task
Previous: Performance Measurement
The 603 generates software handled interrupts on a TLB miss.
It takes 32 cycles simply to invoke and return from the
handler -- ignoring the costs of actually reloading the TLB. The
604 PPC executes a hardware hash table search on a TLB miss. If the
PTE is in the hash table (the PowerPC page-table), the cost of the hardware
reload can take up to
120 instruction cycles (measured experimentally) and 16 memory accesses.
If the hash table does not contain the PTE, the 604 generates a software
handled interrupt that adds at least 91 more cycles to just invoke the
handler.
With interrupt overhead this high, TLB reloads will be expensive no matter
how much we optimize the TLB reload code itself.
With this motivation, we thought it worthwhile to reduce the frequency of
TLB misses as much as possible.
Cort Dougan
1999-01-04