2016-12-12 20 views
0

Если значение в некоторой части кеша равно 4, и мы меняем его на 5, это устанавливает для грязных бит для этих данных значение 1. Но как насчет того, до 4, грязный бит останется 1 или изменится на 0?Грязное значение бита после изменения данных в исходное состояние

Меня это интересует, потому что это будет означать более высокую степень оптимизации компьютерной системы при работе с операциями чтения и записи между основной памятью и кешем.

+0

С точки зрения кеша, он не знает, что он имел значение 4 ранее. Поэтому он все равно будет загрязнен. Очевидно, что вы можете реализовать какую-то контрольную точку и вернуть грязные биты позже для случаев, о которых вы говорили. –

ответ

3

Чтобы сохранить кэш так, как вы сказали, необходимо сохранить пол своего пространства для хранения старых значений.
Поскольку кэш дорого именно потому, что они имеют высокую стоимость в расчете на бит, и принимая во внимание, что:

  • Этот механизм позволит обнаружить всего лишь два уровня написания истории: A -> B -> A и не глубже (например, A -> B -> C -> A).
  • Запись будет означать копию текущих значений в старых значениях.
  • Минимальная сумма данных с метками в кеше равна линия и вся строка необходимо изменить на свое первоначальное значение. Учитывая, что линия имеет размер порядка 64 байтов, это вряд ли произойдет.
  • Иерархическая структура кешей (L1, L2, L3, ...) там точно для уменьшения problem of eviction.

Решение, которое вы предложили, имеет мало преимуществ по сравнению с минусами и, следовательно, не реализовано.

+0

Оптимизация для хранилищ с прямым молчанием (то есть сохранение того же значения, что и в настоящее время в памяти) была рассмотрена в академическом плане, но даже эта потенциальная оптимизация имеет существенные проблемы и не была (насколько мне известно) реализована в реальном продукте. –

+0

@ PaulA.Clayton Вы имеете в виду [write-through] (https://stackoverflow.com/questions/27087912/write-back-vs-write-through)? –

+0

Нет, см. [Результаты поиска Google Scholar] (https://scholar.google.com/scholar?hl=ru&q=silent+stores&btnG=&as_sdt=1%2C21). На самом деле существует ** один пример оптимизированной оптимизации магазина, который * был реализован: аппаратная блокировка Intel. В этом случае программное обеспечение дает подсказку о том, что значение блокировки будет восстановлено (минимизация служебных данных при обнаружении возможного тихого хранилища), и преимущество перехода на этот тип доступа ABA имеет большое значение, позволяя использовать транзакционную память, но совместимую со старым оборудованием. –