Abstract
Modern processors, including those deployed in datacenters, spend a significant proportion of cycles waiting for memory accesses to resolve. While prefetching can alleviate this bottleneck, current software and hardware prefetching techniques operate independently. This disclosure describes a new load instruction that enables higher-level code such as the operating system or application programs to provide hints to a hardware prefetcher regarding whether the hardware prefetcher is to issue prefetch requests for the data loaded by a particular instruction. Unlike prefetching mechanisms that are purely hardware-based or purely software-based, the load instruction allows for hardware software collaboration. Software is responsible for deciding the portions of the code that can benefit from prefetching while hardware is responsible for predicting the data to prefetch and when to perform a prefetch. This exploits the strengths of each domain - software can guide the hardware prefetcher based on workload requirements or system conditions, and hardware can exploit signals from dynamic program behavior to make specific prefetching decisions.
Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.
Recommended Citation
NA, "Software Directive for Selective Hardware Prefetching", Technical Disclosure Commons, (November 15, 2024)
https://www.tdcommons.org/dpubs_series/7540