3 ms·
IMO software-filled TLBs is the only thing that makes sense because it's much more flexible than any HW page table walking algorithms. The latter get baked in,
by cryptonector 5y ago
IMO software-filled TLBs is the only thing that makes sense because it's much more flexible than any HW page table walking algorithms. The latter get baked in, or at best microcoded, while the former are infinitely customizable to fit the needs of the day.
About the only improvement I can think of for software-filled TLBs is to have features that allow said software to always be hot, loaded into fast on-die memory, not subject to being pushed out of a cache.
- throwawaylinux 5y agoThe big problem of software filled TLBs is that taking an interrupt serializes the pipeline and is an inherently single-threaded operation. Interrupts themselves are very heavy weight on high performance cores too. You could handwave that way somewhat, but not the serial nature of it. Software filled just doesn't cut it for high performance cores. If an ISA defined a very small contained set of operations for TLB miss to program page table walking / TLB refill state machines that allowed the OS to define that behavior without taking an architectural interrupt that would be very cool. I suspect the hardware cost and complexity is not considered worthwhile though.