Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы 1-32.docx
Скачиваний:
13
Добавлен:
17.12.2018
Размер:
1.44 Mб
Скачать

17 Назначение, структурная организация кэш-памяти. Место кэШа в структуре процессора

Кэш-память или cache memory - компонент иерархической памяти - представляет собой буферное ЗУ, работающее со скоростью, обеспечивающей функционирование ЦП без режимов ожидания.

Необходимость создания кэш-памяти возникла потому, что появились процессоры с высоким быстродействием. Между тем для выполнения сложных прикладных процессов нужна большая память. Использование же большой сверхскоростной памяти экономически невыгодно. Поэтому между ОП и процессором стали устанавливать меньшую по размерам высокоскоростную буферную память, или кэш-память. В дальнейшем она была разделена на два уровня - встроенная в процессор (on-die) и внешняя (on-motherboard).

КЭШ: Смешанный и разделенный,Одноуровневый и многоуровневый

КЭШи применяются для ускорения доступа к какому-нибудь устройству. Например, при записи на диск данные сначала пишутся в кэш, а уж потом, независимо от работы ЭВМ переносятся на диск. Это называется кэширование записи. То же самое и с чтением: когда процессор просит считать какие-нибудь данные с диска, то диск читает в кэш и те данные, что следуют за необходимыми процессору. Это называется упреждающим чтением. Так как в процессе работы программы данные обычно читаются последовательно, то такое чтение оказывается очень эффективным.

Для работы с КЭШами используется страничная адресация. Применительно к дисковому КЭШу это означает, что каждая «страница» КЭШа символизирует какой-то сектор на диске. И если диску требуется что-то записать в кэш, то он проверяет - если в нем свободные страницы, а если нет, то выбирает какую-нибудь используемую, скидывает хранящуюся в ней информацию на диск, и только потом выводит в нее то, что ему было нужно. Таким образом говорят, что часть диска отображена в кэш.

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

18 Алгоритмы свопинга и замещения информации в КЭШе включают следующие разновидности:

  • алгоритм сквозной записи (Write Through) или сквозного накопления (Store Through);- Самый простой алгоритм свопинга. Каждый раз при появлении запроса на запись по некоторому адресу обновляется содержимое области по этому адресу как в быстрой, так и в основной памяти, даже если копия содержимого по этому адресу находится в быстром буфере.

  • алгоритм простого свопинга (Simple Swapping) или обратной записи (Write Back);- Обращения к основной памяти имеют место в тех случаях, когда в быстром буфере не обнаруживается нужное слово. Эта схема свопинга повышает производительность системы памяти, так как в ней обращения к основной памяти не происходят при каждом запросе на запись, что имеет место при использовании алгоритма сквозной записи.

  • алгоритм свопинга с флагами (Flag Swapping) или обратной записи в конфликтных ситуациях с флагами (CUX);- Данный алгоритм является улучшением алгоритма простого свопинга

  • алгоритм регистрового свопинга с флагами (FRS).- Повышение эффективности алгоритма свопинга с флагами возможно за счет уменьшения эффективного времени цикла, что можно получить при введении регистра (регистров) временного хранения между кэш-памятью и основной памятью

Замещение в КЭШе Когда кэш-память заполнена, занесение в нее нового блока связано с замещением содержимого одной из строк. При прямом отображении каждому блоку основной памяти соответствует только одна определенная строка в кэш-памяти, и никакой иной выбор удаляемой строки здесь невозможен. Основная цель стратегии замещения — удерживать в кэш-памяти строки, к которым наиболее вероятны обращения в ближайшем будущем, и заменять строки, доступ к которым произойдет в более отдаленном времени или вообще не случится. Очевидно, что оптимальным будет алгоритм, который замещает ту строку, обращение к которой в будущем произойдет позже, чем к любой другой строке кэша К сожалению, такое предсказание практически нереализуемо, и приходится привлекать алгоритмы, уступающие оптимальному. Среди множества возможных алгоритмов замещения наиболее распространенными являются четыре, рассматриваемые в порядке уменьшения их относительной эффективности. Наиболее эффективным является алгоритм замещения на основе наиболее давнего использования (LRU - Least Recently Used), при котором замещается та строка кэш-памяти, к которой дольше всего не было обращения. Другой возможный алгоритм замещения - алгоритм, работающий по принципу «первый вошел, первый вышел » (FIFO - First In First Out). Здесь заменяется строка, дольше всего находившаяся в кэш-памяти. Еще один алгоритм - замена наименее часто использовавшейся строки ( LFU -Least Frequently Used). Заменяется та строка в кэш-памяти, к которой было меньше всего обращений. Простейший алгоритм - произвольный выбор строки для замены. Замещаемая строка выбирается случайным образом.