1

我是建筑方向的博士生。我正在做一些关于缓存的研究工作。

有没有办法将缓存行刷新到 L3 缓存?比如L1和L2缓存中有一些缓存行,我想调整到L3缓存。因为我的实验是保证访问这些缓存行有类似的时间延迟。clflush 指令将所有高速缓存行刷新到内存。我只想刷新到 L3 缓存。

我的服务器配置为:

$ lscpu
Architecture:          x86_64
CPU mode:    32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                48
On-line CPU(s) list:   0-47
Thread(s) per core:2
Core(s) per socket:  12
Socket(s):             2
NUMA node(s):         2
Vendor ID:           GenuineIntel
CPU family:          6
Model:               79
Model name:            Intel(R) Xeon(R) CPU E5-2650 v4 @ 2.20GHz
Stepping:               1
CPU MHz:             1200.614
CPU max MHz:           2900.0000
CPU min MHz:           1200.0000
BogoMIPS:              4401.87
L1d cache:          32K
L1i cache:          32K
L2 cache:           256K
L3 cache:           30720K
NUMA node0 CPU(s):     0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46
NUMA node1 CPU(s):     1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm p                  be syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64                   monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f1                  6c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept v                  pid fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid rtm cqm rdt_a rdseed adx smap intel_pt xsaveopt cqm_llc cqm_occup_llc cqm_mbm_t                  otal cqm_mbm_local dtherm ida arat pln pts md_clear flush_l1d
4

1 回答 1

2

目前,没有。但英特尔承诺会添加一条新指令cldemote,以实现您在其未来的 Alder Lake 服务器处理器中描述的功能,但该处理器尚未商用。

于 2021-11-22T13:14:21.960 回答