Зависит от вероятности попадания в кэш. Очевидно, что использование кэш- памяти имеет смысл только при высокой вероятности кэш-попадания
Вероятность обнаружения данных в кэш зависит от разных факторов, таких, например, как объем кэш, объем кэшируемой памяти, алгоритм замещения данных в кэш, особенности выполняемой программы, время ее работы, уровень мультипрограммирования и других особенностей вычислительного процесса. Тем не менее в большинстве реализаций кэш- памяти процент кэш-попадании оказывается весьма высоким — свыше 90 %. Такое высокое значение вероятности нахождения данных в кэш- памяти объясняется наличием у программ и данных объективных свойств, называемых пространственной и временной локальностью. Временная локальность заключается в том, что если произошло обращение по некоторому адресу, то следующее обращение по тому же адресу с большой вероятностью произойдет в ближайшее время. Пространственная локальность заключается в том, что если произошло обращение по некоторому адресу, то с высокой степенью вероятности в ближайшее время произойдет обращение к соседним адресам. Основываясь на свойстве временной локальности, программы и данные, только что считанные из основной памяти, размещают в запоминающем устройстве быстрого доступа, предполагая, что скоро они опять понадобятся. В начале работы системы, когда кэш-память еще пуста, происходит процедура её заполнения. В этот промежуток времени практически каждый запрос к основной памяти выполняется по следующей схеме: просмотр кэш, констатация промаха, чтение данных из основной памяти, передача результата источнику запроса с одновременным копированием данных в кэш. Затем, по мере заполнения кэш, в полном соответствии со свойством временной локальности возрастает вероятность Обращения к данным, которые уже были использованы на предыдущем Этапе работы системы, то есть к данным, которые содержатся в кэш и могут быть считаны значительно быстрее, чем из основной памяти. Свойство пространственной локальности также используется для увеличения вероятности кэш-попадания: как правило, в кэш-память Считывается не один информационный элемент, к которому произошло Обращение, а целый блок данных, расположенных в основной памяти в Непосредственной близости с данным элементом. Поскольку при Выполнении программы очень высока вероятность, что команды Выбираются из памяти последовательно одна за другой из соседних ячеек, то имеет смысл загружать в кэш-память целый фрагмент программы. Аналогично если программа ведет обработку некоторого массива данных, то ее работу можно ускорить, загрузив в кэш часть или даже весь массив данных. При этом учитывается высокая вероятность того, что значительное число обращений к памяти будет выполняться к адресам массива данных. Проблема согласования данных. В процессе функционирования Вычислительной системы содержимое кэш-памяти постоянно обновляется. Время от времени устаревшие данные из нее вытесняются для освобождения места под новые данные. Реально вытеснение означает либо простое объявление свободной соответствующей области кэш-памяти (сброс бита действительности), если вытесняемые данные за время нахождения в кэш не были изменены, либо в дополнение к этому копирование данных в
|