Question

What is the difference between architected TLB and architected page table?

Was it helpful?

Solution

A TLB is a hardware structure not unlike a cache or a register file. It resides inside the processor. A page table is a structure in main memory. Wikipedia calls architected TLBs "software-managed TLBs" and an architected page table a "hardware-managed TLB".

The difference between which is architected is only important for the implementation of virtual memory. In case of an architected TLB the operating system has to manipulate the TLB directly. Because the capacity of the TLB is limited, the operating system will likely have an internal structure resembling a page table for each process. A downside of an architected TLB is the high cost to bring in a new entry by software. Another is that the number of TLB entries is fixed across different processor generations. An example of this approach is MIPS.

A processor with an architected page table will likely have a TLB too. But it is transparent to software which only sees the page table. This makes TLB refills cheaper and allows to use a different TLB (e.g. bigger, multi-level) for each processor generation. The downside is additional complexity as the processor has to detect updates of the page table transparently and needs logic to perform the page table walks. An example of this approach is x86.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top