Принцип построения и организиции кэш-памяти.

Использование буферной КЭШ памяти представляет собой один из способов уменьшения затрат на обмен с памятью, что, в свою очередь, приводит к увеличению производительности компьютеров (вводный раздел электронного конспекта). Место КЭШ памяти в иерархической структуре памяти приведено на рис 1,а. Дополнение к рис1а:

  1. разделение КЭШ памяти на ряд уровней (2,3). В рамках микропроцессоров КЭШ памяти первого уровня (L1) является внутрикристальный, нижние уровни (L2,L3) являются вне кристальной.

  2. Использование дополнительного буфера между основной памятью и внешней памятью в виде т.н. дискового КЭШа.

  3. Дополнения внешней дисковой памяти еще одиним более низким уровнем, обычно назваемым архивной памятью (в качестве основных устройств составляющих этот уровень обычно используется накопители на магнитных лентах). Широкое применение архивная память находит в MainFrame и суперкомпьютерах.

  4. Наличие виртуальной помяти, объединяющей часть основной и часть внешней памяти. Под виртуальной памятью понимется такая организация 2-х уровневой памяти: 1-ый уровень –ОП, 2-ой уровень - внешняя дисковая память – которая воспринимается пользователем (точнее программами пользователя) как 1-на большая одноуровневая память. Пересылки между уровнями помяти являются прозрачными для пользовательских программ.

Концепция кэш памяти.

1) КЭШ память представляет собой быстродействующий буфер между основной памятью и ЦП. Как правило отношения между емкостью КЭШ памяти и основной памяти (далее как ОП) составляет 1/100 – 1/1000. Соотношение между временем доступа (циклом памяти) составляет1/2 – 1/5. Как правило передача данных между ОП и CPU реализуеся через КЭШ, хотя, в принципе возможна и прямая передача между ОП и CPU (обозначено пунктиром.

2) КЭШ память строиться на основе элементов SRAM, а ОП на основе элементов DRAM.

3) Как КЭШ память, так и ОП разделяется на блоки одинакового объема. Обмен данными между КЭШ и ОП носит блочных характер. Размер блока саставляет 4-128 байт. В КЭШ памяти создается копии тех блоков ОП, к которым в последнее время осуществлялась оброщение со стороны CPU. В свою очередь, обмен между CPU и КЭШ памятью осуществляется отдельными словами, в данном случае, под словом понимается единица информации, разрядность которой совпадает с разрядностью шины данных. В частном случае, размеры блока и слова совпадают, в общем случае, блок включает в себя несколько слов.

4) При любом обращении CPU к ОП определяется наличие блока, к которому осуществляется обращение в КЭШ памяти. При наличие блока в КЭШ такая ситуация называется cache-hit, осуществляется быстрое обращение со стороны CPU к КЭШ памяти (по чтению/записи). При отсутствии в КЭШ блока, к которому обращается CPU, такая ситуация называется cache-miss, инициируется перемылка блока из ОП в КЭШ и затем осуществляется обращение через КЭШ память. Как правило, подобный подход имеет место сначала пересылка блока, а затем при обращении по записи в ситуации cache-miss запись может производиться непосредственно в ОП без пересылки блока в КЭШ память. Использование того или иного подхода при записи в ситуации cache-miss определяется стратегией обновления КЭШ памяти.

5) Эффективность использования КЭШ памяти во многом определяется т.н. принципом локальности обращения или локальности ссылок / локальность доступа.

-----------25,09,03----------------------------------------------------------------------------------------------------------

В принципе рассматривается 2 вида локальности: пространственная и временная. Кроме того, понятие локальности рассматривается как в отношении команд, так и в отношении данных.

Пространственная локальность в отношении команд характеризуется тем, что вероятность выборки очередной команды по следующему адресу, по сравнению с предыдущей намного больше вероятности выборки команды по любому другому адресу. Этот принцип опирается на достаточно большое число линейных участков в машинных программах, при реализации которых выборка команд осуществляется по последовательным адресам. По статистическим данным в отношении программ научно-технического профиля средняя длина линейного участка составляет 5-8 команд.

Пространственная локальность в отношении данных означает, что вероятность обращения за данными по следующему адресу по сравнению с предыдущим обращением намного больше вероятности обращения по какому другому адресу. Этот принцип проявляется при обработке структур данных (массив, цепь).

Временной аспект принципа локальности обращения в отношении команд означает, что вероятность выборки команды по одному и тому же адресу в течении небольшого интервала времени достаточно велика. Наличие этого принципа проявляется в программных циклах. Характерным свойством вычислительных программ является наличие большого числа циклов, содержащих порядка 10-20 машинных команд.

Временной аспект принципа локальности обращения в отношении данных подразумевает многократное обращение к данным по одним и тем же адресам в течении сравнительно небольшого интервала времени. Этот принцип проявляется при многократной обработке элементов структур данных.

Резюме В соответствии с принципом локальности к слову однажды прочитанному из ОП в КЭШ память с большей вероятностью будет произведено несколько повторных обращений (временной аспект) кроме того, т.к. вместе со словом в КЭШ память будет передано и несколько следующих слов, то с большой долей вероятности, последнее обращение ЦП к ОП за командами и данными будут осуществлятся в пределах этого блока (пространственных аспект).

6)Численной оценкой принятого принципа построения является процент удачных обращений (процент КЭШ попаданий) определяемый как отношение числа обращений к памяти реализуемых через КЭШ память к общему числу обращений. Для современных компьютеров это 95-98%.

7) При построении КЭШ памяти необходимо решить следующие задачи, определяющие ее структуру и принципы ее функционирования.

  • Выбор принципа (стратегии) отображения блоков ОП на блоки КЭШ памяти (стратегия отображения)

  • Выбор принципа удаления блоков из заполненной КЭШ памяти (стратегия замещения).

  • Выбор принципа поддержки актуальности копии блоков КЭШ памяти в ОП (стратегия замещения)