Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
дз№1, группа ФН2-91, Голубева.doc
Скачиваний:
11
Добавлен:
09.02.2015
Размер:
202.75 Кб
Скачать
  1. Тэги в кэш-памяти.

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

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

Любая кэш-память подразделяется на строки (lines). У каждой строки в свою очередь имеется адресное поле, которое  состоит из двух основных частей: динамической (tag), которая содержит старшие биты адреса, и статической (index), которая содержит младшие биты адреса. Первая часть может быть изменена в процессе работы, значение второй зафиксировано.

Поле адресного тега состоит из уникального 16-разрядного значения, указывающего соответствующую строку памяти, из которой поступили данные. Такой тег обычно одновременно сравнивается с выработанным процессором адресом блока памяти.

Размер тэга строки кэш-памяти зависит от трех основных факторов:

  • размера кэш-памяти;

  • ассоциативности кэш-памяти;

  • кэшируемого размера оперативной памяти. Этот размер рассчитывается по следующей формуле: 

где - размер одного тэга в кэш-памяти, в битах; - максимальный кэшируемый размер оперативной памяти, в байтах; - размер кэш-памяти, в байтах; A – ассоциативность кэш-памяти, в каналах.

Таким образом, для абстрактной системы с максимальным кэшируемым объёмом оперативной памяти в 1Гб и кэш-памятью (неважно какого уровня) размером в 1Мб с 2-канальной ассоциативностью потребуется ровно 11 бит для каждого тэга. Другими словами, для адресации любым отдельным тэгом 1Гб / 512Кб = 2048 сегментов памяти потребуется log2(2048) = 11 бит. Следует уточнить, что ровно столько бит на тэг необходимо для кэширования именно 1Гб оперативной памяти при данной организации кэш-памяти. Если сократить количество бит, то такой кэш останется работоспособным, однако кэшируемый размер оперативной памяти уменьшится. Например, 8 бит на тэг позволят адресовать уже только 28 = 256 сегментов памяти по 512Кб, что позволит кэшировать лишь 128Мб оперативной памяти. Информация, находящаяся выше этой границы, кэшироваться не будет.

  1. Многоуровневая кэш-память.

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

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

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

По другую сторону иерархии памяти располагается регистровый файл микропроцессора. Это небольшой и самый быстрый КЭШ в системе со специальными свойствами. 

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

В настоящее время, не существует универсального общепринятого названия для промежуточной политики между двумя архитектурами, хотя часто применяется термин «главным образом инклюзивно».

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

1 Если значение тега строки КЭШа совпадает со значением тега из адреса, то происходит чтение байта информации из КЭШа. Такая ситуация квалифицируется как КЭШ-попадание

2 Если эти теги не совпадают, то это означает, что искомый байт отсутствует в КЭШе и для его чтения (байта) следует обращаться к ОЗУ. Эта ситуация квалифицируется как КЭШ-промах.

7

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]