Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная 15

.docx
Скачиваний:
4
Добавлен:
18.07.2022
Размер:
156.73 Кб
Скачать

Санкт-Петербургский политехнический университет Петра Великого

Институт компьютерных наук и технологий

Высшая школа интеллектуальных систем и суперкомпьютерных технологий

ЛАБОРАТОРНАЯ РАБОТА №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. Выводы

В ходе лабораторной работы:

  • был проведён анализ зависимостей времени выполнения программы от величины шага, количества столбцов в массиве и числа суммируемых элементов;

  • были построены графики этих зависимостей по экспериментальным данным;

  • был проанализирован эффект влияния КЭШ памяти на производительность.