
Travis N. answered 12/08/21
Lead Software Engineer at CCHCS and 4.0 GPA CS Graduate Student
This is a good question, and this topic in particular is often presented in a fairly complex manner. However, it can be reduced to a simpler form and I'll do my best to do that below.
First, consider memory paging. Modern OS Kernels like the Linux kernel will use multi-level paging to translate a virtual memory location -- that is a memory location as represented to a process that owns it -- to a physical memory location -- that is the actual location in RAM. This translation is required for the proper data to be retrieved from memory so that the processor can leverage it for computation.
Memory paging, and especially multi-level paging, consumes time. Time is a precious commodity in the world of computing and we're often dealing with ways to reduce time required to accomplish a task, space required to accomplish a task, or make some trade-off between those two.
A common strategy to reduce the time required to perform lookups or access of commonly accessed information is caching. That is, keeping a copy of the information closer to home. This happens when you access web pages, lookup domain names, and more. The "and more" statement includes memory access.
The translation lookaside buffer (TLB) is effectively a cache with a map of memory virtual memory addresses to physical memory addresses that reduces the time it takes for the CPU to determine the physical location of data in memory that's being requested.