Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/132.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
C++ 如何获取可能冲突的内存线(同一缓存集中的缓存线)的物理地址_C++_C_Caching_Memory_Memory Management - Fatal编程技术网

C++ 如何获取可能冲突的内存线(同一缓存集中的缓存线)的物理地址

C++ 如何获取可能冲突的内存线(同一缓存集中的缓存线)的物理地址,c++,c,caching,memory,memory-management,C++,C,Caching,Memory,Memory Management,我读过一篇文章,叫做《我的爱》。本文试图构造一个逐出集。根据本文,我们将分配一个至少为LLC大小两倍的缓冲区(由大页面备份),并在缓冲区内选择一组可能冲突的内存线,即 地址具有相同的设置索引位 如果我有集合索引,我如何才能得到集合中每个缓存线的地址 例如,我分配了一个由2MB页面支持的6MB缓冲区(使用Cmmap()函数),并获得了页面的基址。根据缓存的基本地址,我可以通过图片中的方法得到设置索引 但是,如何在同一组中获取缓存线的全部地址?这是特定于硬件的,可能是不可能的。在ARM和x86-64

我读过一篇文章,叫做《我的爱》。本文试图构造一个逐出集。根据本文,我们将分配一个至少为LLC大小两倍的缓冲区(由大页面备份),并在缓冲区内选择一组可能冲突的内存线,即 地址具有相同的设置索引位

如果我有集合索引,我如何才能得到集合中每个缓存线的地址

例如,我分配了一个由2MB页面支持的6MB缓冲区(使用C
mmap()
函数),并获得了页面的基址。根据缓存的基本地址,我可以通过图片中的方法得到设置索引


但是,如何在同一组中获取缓存线的全部地址?

这是特定于硬件的,可能是不可能的。在ARM和x86-64上可能非常不同,在AMD Ryzen和旧的Intel Xeon X3430上可能也不同