Что происходит с процессором, кешем и памятью, когда процессор получает команду сохранить данные в памяти? - PullRequest
0 голосов
/ 30 декабря 2018

Предположим, что иерархия памяти составляет 1 процессор с L1i, L1d, L2i, L2d, L3, DRAM.

Мне интересно, что происходит на более низких уровнях компьютера, когда я использую инструкцию MOV/store (или любая другая инструкция, которая приведет к передаче данных ЦП в память)?Я знаю, что происходит, если есть только процессор и память, но с кешами я немного запутался. Я искал это, но он только дал информацию о передаче данных между:

  • регистрами и памятью
  • ЦП и кеш,
  • кэш и память

Я пытаюсь понять больше об этом, например, когда кэш будет проходить через, когда будет писать обратно?Я просто знаю, что запись через это немедленно обновляет строку кэша и соответствующую строку памяти, а запись - это обновление до замены. Могут ли они сосуществовать?Это данные будут передаваться непосредственно в память при записи через?и при обратной записи данные будут проходить через иерархию кеша?

Что привело меня в замешательство, так это то, что Volatile в C / C ++. Как я знаю, переменные этого типа будут храниться в памяти напрямую, что означает, что нетчерез кеш. Я прав?Так что, если я определю переменную Volatile и нормальную переменную типа int.как процессор может различить, что записывать непосредственно в память или через иерархию кеша.

Есть ли какая-нибудь инструкция, которая может управлять кешем?Если нет, то как контролируется кеш?Некоторое другое оборудование?ОПЕРАЦИОННЫЕ СИСТЕМЫ?Контроллер кеша (если такая вещь существует)?

...