Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
arkhitektura.docx
Скачиваний:
50
Добавлен:
12.01.2020
Размер:
216.72 Кб
Скачать

23. Аппаратно-программные методы ускорения обработки данных. Кэширование памяти.

Кэширование памяти

Общие принципы

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

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

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

Кэш логически представляет собой набор строк фиксированной длины. С каждой строкой связана некоторая служебная информация – адрес содержащегося в ней в текущий момент блока основной памяти, и ее состояние (действительная или нет). Эта служебная информация называется тегом (tag).

Запись блока памяти, который не присутствует в КЭШе, осуществляется прямо в основную память. Если же данный блок присутствует в КЭШе, то возможны два варианта записи:

  1. Сквозная запись. Информация одновременно записывается как в основную память, так и в КЭШ. Достоинства: процесс записи не может нарушить действительность данных в КЭШе, простота алгоритма. Недостаток: при каждой операции записи происходит обращение к основной памяти, даже если требуется записать всего один байт.

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

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

Соседние файлы в предмете Архитектура информационных систем