Я хочу сгенерировать трафик процессора x86 в память на ОС Linux (Ubuntu 18), используя цепочку инструментов gcc, которая должна сначала заполнить tlb (перевод в сторону буфера), а затем вызвать недействительность tlb, поскольку она уже заполнена.Я создал простой код ниже, но я не уверен, что он может достичь цели заполнения tlb и затем сделать его недействительным
#include<stdio.h>
int main()
{
int array[1000];
int i;
long sum = 0;
for(i=0; i < 1000;i++)
{
array[i] = i;
}
for(i=0; i < 1000;i++)
{
sum += array[i]
}
return 0;
}
Вот информация о конкретном процессоре, если она полезна
processor : 0
vendor_id : AuthenticAMD
cpu family : 23
model : 1
model name : AMD EPYC 7281 16-Core Processor
stepping : 2
microcode : 0x8001227
cpu MHz : 2694.732
cache size : 512 KB
physical id : 0
siblings : 32
core id : 0
cpu cores : 16
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
Суть в том, чтобы иметь ответы на следующие вопросы
- , что запускает tlb?
- Как можно было сделать один тест на недействительность tlb?