硬件预取(hardware prefetching),理学-计算机科学技术-计算机体系结构-微体系结构-预取,采用处理器的专用硬件机制实现预取的方法。硬件预取通过已经执行的指令流和数据流来预测处理器即将需要的数据,并投机性地将这些数据读入到高速缓存。一种典型的硬件预取机制是,在高速缓存失效从内存中载入一个缓存行时,处理器通过内部的硬件电路读取缺失缓存行的同时,请求紧随其后的另一个缓存行。另外,还有基于指针的预取机制、基于跳步的预取机制等。某些Intel处理器需要通过启用基本输入输出系统(BIOS)的选项来启用硬件预取。如果程序访问数据能够很好地满足局部性要求,硬件预取几乎总能提高性能,但是如果程序的局部性很差,则预取反而会降低性能。预取降低性能的主要原因:①如果预取的数据在随后没有被访问,那么预取的数据就完全浪费掉了。②如果预取过早的话,预取的数据有可能会被替换出缓存而出现不命中。③有可能导致满不命中,即,如果缓存已满,那么预取的数据需要换出缓存中数据,如果被换出缓存的数据在随后被访问,那么就增加了缓存访问次数。硬件预取机制广泛应用于处理器设计中。