Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Caching 页表是否会放入CPU缓存?_Caching_Cpu Cache_Tlb_Page Tables - Fatal编程技术网

Caching 页表是否会放入CPU缓存?

Caching 页表是否会放入CPU缓存?,caching,cpu-cache,tlb,page-tables,Caching,Cpu Cache,Tlb,Page Tables,根据我的理解,加载/存储操作将访问虚拟内存地址(vaddr)的一些数据,并且该vaddr将被转换为物理地址(paddr),以便由内存层次结构实现。 翻译过程将首先在TLB中查找,如果未找到匹配项,则触发多级(?)页表查找 我的问题是:除了非常有限的TLB条目之外,页表还会放在L1D缓存、L2缓存或LLC中吗?这是特定于实现的,但通常在许多CPU上完成,无论是在普通缓存上还是在专用缓存上。例如,请参见-PTE-页面表的单个转换元素-从该虚拟页面到某个物理页面的特定转换将存储在TLB缓冲区(作为TL

根据我的理解,
加载
/
存储
操作将访问
虚拟内存地址
(vaddr)的一些数据,并且该
vaddr
将被转换为
物理地址
(paddr),以便由内存层次结构实现。 翻译过程将首先在TLB中查找,如果未找到匹配项,则触发多级(?)页表查找


我的问题是:除了非常有限的TLB条目之外,页表还会放在L1D缓存、L2缓存或LLC中吗?

这是特定于实现的,但通常在许多CPU上完成,无论是在普通缓存上还是在专用缓存上。例如,请参见-PTE-页面表的单个转换元素-从该虚拟页面到某个物理页面的特定转换将存储在TLB缓冲区(作为TLB条目)中,以便更快地访问(ld/st需要phys addr在缓存或内存中查找数据)。来自页面的数据将部分缓存在数据缓存(LLC/L2/L1D)中,但单个加载/存储操作不会将整个页面加载到缓存中。如果您的程序对页面的所有数据执行线性操作,则页面中的数据可能会被某些硬件预取程序预取到某些缓存中。这是否回答了您的问题?这是特定于实现的,但通常在许多CPU上完成,无论是在普通缓存上还是在专用缓存上。例如,请参见-PTE-页面表的单个转换元素-从该虚拟页面到某个物理页面的特定转换将存储在TLB缓冲区(作为TLB条目)中,以便更快地访问(ld/st需要phys addr在缓存或内存中查找数据)。来自页面的数据将部分缓存在数据缓存(LLC/L2/L1D)中,但单个加载/存储操作不会将整个页面加载到缓存中。如果您的程序对页面的所有数据执行线性操作,则页面中的数据可能会被某些硬件预取程序预取到某些缓存中。这是否回答了您的问题?