When the CPU cache was moved inside the CPU, the CPUs implemented "fixed-range MTRRs" which cover the first mebibyte of memory to be compatible to what PC-BIOSes provided at that time. These are used to control the cache policy needed for VGA accesses and all other memory-accesses done while the system is in real mode. Above 1 MiB, CPUs provide a number of "variable-range MTRRs", which can be freely placed and even overlap. These variable-range MTRRs can be used to set the caching policy of graphics memory and other memory ranges used by PCI devices.