clflu sh порядок команд. Какой забор использовать? - PullRequest
0 голосов
/ 30 апреля 2020

Меня смущает спецификация заказа инструкции clflush. С моей точки зрения, два руководства Intel содержат противоречивую информацию:

Человек по оптимизации. 8.4.5.3

MFENCE следует использовать всякий раз, когда используется строка кэша flu sh (CLFLUSH), чтобы гарантировать, что спекулятивные ссылки на память, сгенерированные процессором, не влияют на грипп sh.

Следует пример использования Example 8-1. Pseudo-code Using CLFLUSH:

sfence
for(i=0;i<num_cachelines;i+=cacheline_size) {
    clflush (char *)((unsigned int)buffer + i)
}

sfence использовался вместо mfence.

Arch. Разработчик Man. 8.2.2:

Запись в память невозможна при выполнении инструкции CLFLUSH

При этом условии mfence выглядит избыточным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...