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

Уровни кеш-памяти

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

Таким образом, было принято решение разработки небольших многоуровневых кешей. Современные процессоры имеют как минимум двухуровневую структуру кэш­памяти, а большинство процессоров Intel — трехуровневую кэш­память.

Кеш 1 уровня (обозначается L1):

  • находится на ядре процессора;

  • работает на частоте процессора;

  • в ней размещаются наиболее часто используемые данные и инструкции;

  • кеш данных и кеш инструкций разделены;

  • размер порядка десятков килобайт;

  • достигается ускорение работы процессора ~90%.

Кеш 2 уровня (L2)

  • расположен на ядре процессора;

  • содержит и данные и инструкции;

  • имеет быстродействие ниже кеш-памяти первого уровня, но выше основной оперативной памяти;

  • размер от нескольких сотен килобайт до нескольких мегабайт.

Кеш 3 уровня (L3).

  • Расположен на процессоре;

  • общий для всех ядер процессора

  • быстродействие ниже кеша второго уровня, но выше основной оперативной памяти;

  • размер составляет от одного до нескольких мегабайт.

  • Как правило – включающая архитектура

Взаимодействие между кэшами разных уровней строится либо на включающей, инклюзивной (inclusive) архитектуре, либо на исключающей, эксклюзивной (exclusive) архитектуре.

Включающая архитектура определяет, что записи в кешах разных уровней дублируются; например, L2 дублирует ячейки L1. Загружаемая ячейка размещается одновременно и в L1, и в L2. Эффективная емкость такого кеша фактически равна емкости кеша бОльшего уровня, в примере - L2.

Исключающая архитектура определяет такую организацию данных, что данные, содержащиеся в одном уровне кеша, отсутствуют в другом. Кеш L1 не уничтожает строки при нехватке места, строки вытесняются в кеш L2: уровни обмениваются данными друг с другом. Эффективная емкость такого кеша равна сумме емкостей кешей – L1+L2.

Кэш L2 всегда построен либо по включающей, либо по исключающей архитектуре по отношению к кэшу L1.

Примечание: процессоры Intel Pentium II и Pentium III имели двухуровневый кэш, построенный по включающей архитектуре.

Тестирование и статистическая информация дают следующие цифры и результаты:

  • Кэш-память первого уровня обеспечивает до 90 % кэш-попаданий. Второй и третий уровни - еще 90% от того, что осталось. И только около 1 % всех запросов процессора заканчиваются кэш-промахами. Указанные показатели касаются простых задач. С повышением нагрузки на процессор число кэш-промахов увеличивается.

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

  • Эффект от большого кэша наиболее ощутим при использовании архиваторов, в 3D играх, во время кодирования видео.

  • Эффективность кэш-памяти процессора сводит к минимуму влияние скорости оперативной памяти на быстродействие компьютера. Например, компьютер одинаково хорошо будет работать с оперативной памятью 1066 МГц и 2400 МГц. При прочих равных условиях разница производительности в большинстве приложений не превысит 5%.

Для более детального изучения вопроса можно рекомендовать Интернет-ресурсы https://habrahabr.ru/post/93263/ и http://compress.ru/article.aspx?id=23541.

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