Лабораторная 15
.docxСанкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и технологий
Высшая школа интеллектуальных систем и суперкомпьютерных технологий
ЛАБОРАТОРНАЯ РАБОТА №1
«Эффективность КЭШ-памяти»
по дисциплине «Архитектура вычислительных систем»
Выполнил
студент гр. 3530903/80001 А. В. Шильникова
Руководитель Н. М. Вербова
«___» __________ 2021 г.
Санкт-Петербург
2021
1. Параметры ПК
Тип процессора: Intel Core i5-4210U
Тактовая частота: 1.70 GHz
Ассоциативность, объемы и длины Кэш-строк разных частей подсистемы Кэш-памяти (все кэши наборно-ассоциативные):
1. Кэш-память первого уровня для данных: ассоциативность 8, объём 32 Кбайт, длина строки 64 байт.
2. Кэш-память первого уровня: ассоциативность 8, объём 32 Кбайт, длина строки 64 байт.
3. Кэш-память второго уровня: ассоциативность 8, объём 256 Кбайт, длина строки 64 байт.
4. Кэш-память третьего уровня: ассоциативность 12, объём 3 Мбайт, длина строки 64 байт.
2. Свойства Кэш-памяти
Кэш 1 уровня:
Длина адреса: log2 (Объем основной памяти max) = 32
Объем кэш-памяти в байтах = 32 * 1024 = 32768
Количество строк = 32768 / 64 = 512
Длина поля индекса = log2(Cache_Size / (Block_size * Set_Assoc)) = log2(32768/(64*8) = log2(64) = 6 бит
Длина поля смешения = log2(64) = 6 бит
Длина поля адресного тэга (кол-во бит) = длина адреса – длина поля индекса – длина поля смешения = 32 – 6 – 6 = 20 бит
Кэш 2 уровня:
Длина адреса: log2 (Объем основной памяти max) = 32
Объем кэш-памяти в байтах = 256 * 1024 = 262144
Количество строк = 262144 / 64 = 4096
Длина поля индекса = log2(Cache_Size / (Block_size * Set_Assoc)) = log2(262144/(64*8)) = log2(512) = 9 бит
Длина поля смешения = log2(64) = 6 бит
Длина поля адресного тэга (кол-во бит) = длина адреса – длина поля индекса – длина поля смешения = 32 – 9 – 6 = 17 бит
Кэш 3 уровня:
Длина адреса: log2 (Объем основной памяти max) = 32
Объем кэш-памяти в байтах = 3 * 1024 * 1024 = 3145728
Количество строк = 3145728 / 64 = 49152
Длина поля индекса = log2(Cache_Size / (Block_size * Set_Assoc)) = log2(3145728/(64*12)) = log2(6144) = 12 бит
Длина поля смешения = log2(64) = 6 бит
Длина поля адресного тэга (кол-во бит) = длина адреса – длина поля индекса – длина поля смешения = 32 – 12 – 6 = 14 бит
3. Ответы на вопросы
1. При каком смещении между отдельными элементами данных в пространстве адресов последующие элементы могут вытеснять предыдущие из набора строк КЭШа? (при этом следует учитывать параметры КЭШа того компьютера, на котором выполняются эксперименты)?
При смещениях, кратных 8 – кол-ву групп, вытеснение будет происходить наиболее часто
2. Сколько элементов должно обрабатываться близкорасположенными командами, чтобы при переборе этих элементов мог переполниться набор строк в Set Associative КЭШе?
1 уровень: 64 (512/64), 2 уровень: 512 (4096/8), 3 уровень: 4096 (49152/12)
3. При каком суммарном объеме обрабатываемых (на вашем компьютере) данных может переполниться КЭШ память разных уровней?
1 уровень: 32 Кбайт (если обращение только к четным или нечетным – 16 Кбайт), 2 уровень: 256 Кбайт (если обращение только к четным или нечетным – 128 Кбайт), 3 уровень: 3 Мбайт (если обращение только к четным или нечетным – 1536 Кбайт)
4. Как организован тестовый фрагмент программы, при выполнении которого могут возникать только что перечисленные эффекты?
Цикл, состоящий из суммирования достаточно длинных для переполнения Кэша строк.
4. Влияние кэш-памяти на производительность
При значениях по умолчанию (шаг = 1, NM = 65536*1 (размер массива, достаточный для переполнения КЭШа), три слагаемых в цикле) |
Изменим количество столбцов * 64
|
|
|
Увеличим шаг до 10
|
Увеличим кол-во суммируемых элементов до 8 |
|
|
5. Зависимость времени работы тестового фрагмента от числа суммируемых элементов
По умолчанию |
Увеличим кол-во суммируемых элементов до 8 |
|
|
Увеличим кол-во суммируемых элементов до 16 |
|
|
|
6. Зависимость времени работы тестового фрагмента от величины шага
По умолчанию |
Увеличим шаг до 3 |
|
|
Увеличим шаг до 9 |
Увеличим шаг до 17 |
|
|
7. Выводы
В ходе лабораторной работы:
был проведён анализ зависимостей времени выполнения программы от величины шага, количества столбцов в массиве и числа суммируемых элементов;
были построены графики этих зависимостей по экспериментальным данным;
был проанализирован эффект влияния КЭШ памяти на производительность.