It’s necessary differentiate the different types of Prefetch. On the one hand there is the one that runs the CPU and on the other a technology introduced in the Windows NT kernel for Windows XP and which continued to be present in successive versions of the Microsoft operating system. In this article, you will discover both.
Hardware vs software preloading
The technique known as cache preloading can be implemented by both software and hardware:
- by software: This type of prefetch is implemented in the operating system or in the compiler, which will parse the code and insert program instructions or data during compilation (ex: the GNU GCC compiler uses the function __builtin_prefetch) to speed up execution of binaries.
- by material: hardware prefetch is implemented by dedicated hardware (for example: x86 processors have a specific instruction called PRERETRIEVE). Usually through processor mechanisms to bring certain strings of instructions or data in advance that may be needed later. In this way, they will already be available more locally, closer and with less latency.
Prefetch on Windows
From Windows XP a technology called Prefetch was implemented, and was also present in Windows Vista, Windows 7, Windows 10 and Windows 11. Therefore, we may notice that when we access C:\Windows, there are several folders that we have never seen before, including Prefetch.
The pre-reading service is a preloading process that improves computer performance by ensuring that Windows starts up faster. Every time Windows starts, it keeps track of apps and services. Therefore, when the computer starts, it creates small files to speed up the process. Each program has its own prefetch file.
The great recovery service, for its part, works in the background to improve the performance of RAM memory. It has a direct impact on RAM memory performance due to its service orientation.
Prerecovery vs Superrecovery
The data of the Carpeta pre-reading they were introduced by Microsoft, along with the Prefetch folder, as part of the Windows XP operating system. The main function of the Prefetch folder is to speed up the working process by storing cache data for bulk applications directly in the Prefetch folder. In Windows 10, it is used to load application data directly from the Prefetch folder, which speeds up the processes.
Pre-reading is an algorithm cache miss detection feature provided in Windows operating systems. It caches data that otherwise does not exist and Prefetch takes care of retrieving it.
Superfetch is another folder found in the windows root directory and which loads all the files and data associated with them into memory. It is a function that decides which application or program is run to load all associated files and data into memory.
How to enable or disable this feature
The bone not to follow To be able to manage Prefetch in your Windows go through:
- Go to the Windows registry.
- Head to the following ruta HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters.
- There you will see a value called EnablePrefetch which you can change to the following values:
- 0 = Disabled
- 1 = Application startup execution prefetch enabled
- 2 = Start precharge enabled
- 3 = Applaunch and Boot enabled (optimal and default) which is the default.
In case you want super fetch handle From Windows 10, the steps are as follows:
- Press Home key + R.
- Run “Services.msc” without quotes and press ENTER.
- In the pop-up window, look for the Superfetch entry.
- Double click on it and another pop-up window will open.
- On the General tab, navigate to the Startup type section.
- From the drop-down menu, you can choose Enabled and Disabled.
- Hit Apply after change and OK and that’s it.
the moderns microarchitectures They also have a function named Prefetch whose function is also to improve performance, but this is done on the hardware side, specifically the CPU.
In some BIOS/UEFI, in the Advanced menu, you can enable or disable this feature if you wish. However, not all firmwares have this option.
Not to be confused with IDE Prefetch mode which is also available in some BIOSes. This other function is intended to optimize the processing of information from old IDE disks, as long as the IDE device supports it.
The prefetch technology used to improve computer performance by fetching instructions or data from slower local memory to a faster cache before they are actually needed (prefetch data is held in caches until necessary, hence the name “pre-reading”).
Typically, prefetched data comes from main memory. Since caches are structured in such a way that they are often much faster than main memory, prefetching data and subsequently accessing it from caches is often much faster than direct access from major memory. Non-blocking cache-control instructions can be used to prefetch data.
The Prefetch can therefore be two types:
- data preload: it is the one dedicated to bringing in advance the data that may be needed later so that they are in a faster cache than the main or secondary cache and thus gain in performance. This data is necessarily used as operands for the instructions that the CPU executes.
- Prefetch instructions: in the case of this other type, we obtain instructions instead of data, instructions that will have to be executed later. This way, when needed, they are available with lower latency.
These technologies were introduced decades ago. The Intel 8086 already used a 6 byte cache for prefetch and the Motorola 68000 microprocessors used 4 bytes. Today, all modern high-performance microprocessors include prereading techniques improved.
We recommend that you read our guide on Windows 10
Now you know what Prefetch is, both the Windows technique and the CPU technique. Do not forget to comment…