OSDev.org
https://forum.osdev.org/

The TLB, caches and INVLPG instruction
https://forum.osdev.org/viewtopic.php?f=2&t=32478
Page 1 of 1

Author:  Coconut9 [ Mon Oct 09, 2017 7:07 am ]
Post subject:  The TLB, caches and INVLPG instruction

I can understand everything in virtual memory except the TLB and I can't find the purpose of the INVLPG instruction. Can someone explain it to me?
Also what is the caches and the caching?

Author:  davidv1992 [ Mon Oct 09, 2017 7:13 am ]
Post subject:  Re: The TLB and INVLPG instruction

In essence, the goal of the TLB is simple: It is very expensive to do a full page adres lookup on every memory access, as that would lead to 3 memory reads for every memory access (assuming 32 bit 4K pagesize paging). The processing required for this would slow the processor down a lot. So instead of doing such a lookup on every memory read, the processor just remembers what previous outcomes were in a cache, the TLB. However, this means that on a memory read, it is no longer checking the actual page tables, so it won't notice if the software has made a change to them. The INVLPG instruction is basically a heads up to the processor, telling it that anything it assumed for the given adres based on past accesses is may have changed, and forcing it to check the page tables next time it needs that particular page.

Page 1 of 1 All times are UTC - 6 hours
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/