lab2
.pdfИсследование работы Кэш-памяти центрального процессора
Чёрная команда
Санкт-Петербургский политехнический университет Петра Великого
Антон Абрамов <abramov91@mail.ru> Владислав Бусаров <happyfanik@yandex.ru> Сергей Дедков <dsv.mail@yandex.ru>
Семён Мартынов <semen.martynov@gmail.com> Николай Патраков <noon.vlg@gmail.com>
8 марта 2016 г.
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
1 / 32 |
Содержание
1 Назначение кэш памяти
2 Принцип работы кэша процессора
3 Организация кэша
4 Понятие ассоциативности кэша
5 Эксперимент
6 Заключение
7 Источники
8 Вопросы
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
2 / 32 |
Понятие кэш-памяти
Кэш (от фр. cacher – "прятать")
промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше осуществляется быстрее, чем выборка исходных данных из более медленной памяти или удаленного источника, однако её объём существенно ограничен по сравнению с хранилищем исходных данных.
Понятие предложено в 1967 году Лайлом Джонсоном (редактором журнала "IBM Systems Journal") как замена термину "высокоскоростной буфер"при описании памяти в разрабатываемой модели 85 из серии IBM System/360.
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
3 / 32 |
Нужна ли кэш-память в современных системах?
Оперативная память представляет собой динамическую память с произвольным доступом (Dynamic Random Access Memory, DRAM), а кэш процессора выполняется на базе статической оперативной памяти (Static Random Access Memory, SRAM).
Рассмотрим память DDR3-1600 9-9-9-27 (tCL-tRCD-tRP-tRAS): эффективная частота составляет 1600 МГц, это скорость с которой данные поступают на внешнюю шину в пакетном режиме доступа, а реальная частота ядра памяти составляет всего 200 МГц.
С момента активации нужной строки памяти и до появления данных на шине пройдет промежуток времени, равный tCL+tRCD, то есть 18 тактов. С учетом того что частота работы ядра памяти DDR3-1600 составляет 200 МГц, это время равно 90 нс. Если частота работы процессора составляет 3 ГГц, то это означает, что процессор должен будет дожидаться нужных данных (простаивать) минимум 270 тактов!
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
4 / 32 |
Почему DRAM-память не заменить SRAM-памятью?
Каждая ячейка DRAM-памяти состоит из одного полевого транзистора и одного конденсатора, ячейка SRAM-памяти – как минимум из шести полевых транзисторов (есть варианты с числом транзисторов 8 и 12). Об этом рассказывал проф. Мелехин.
Врезультате:
Модули SRAM-памяти были бы меньшего объема в сравнении с модулями DRAM-памяти
Их цена (даже при равном объёме) была бы выше
Существенно возросла бы проблема кэширования периферийных устройств
Пришлось бы перерабатывать систему кэширования, которая на данный момент работает достаточно хорошо =)
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
5 / 32 |
Принцип работы кэша процессора
Рис. 1: Структура кэш-памяти процессора
Кэш-контроллер перехватывает запросы к оперативной памяти и определяет, имеется ли копия затребованных данных в кэше. Если есть (cache hit), то данные извлекаются из кэша, если нет (cache miss) – тогда запрос переадресуется к оперативной памяти.
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
6 / 32 |
Стратегии кэширования
Кэш-контроллер должен уметь предсказывать какие данные потребуются процессору в будущем и загружать их в кэш (упреждающая загрузка данных)
On demand – обращение к оперативной памяти происходит только в случае кэш-промаха
Look Ahead – алгоритмы упреждающей спекулятивной загрузки данных в кэш основанные на предположении, что данные из оперативной памяти обрабатываются последовательно, в порядке возрастания адресов
Look Through – загрузка данных из памяти может либо начинаться после фиксации кэш-промаха
Look Aside – загрузка осуществляться параллельно с проверкой наличия соответствующей копии данных и до кэш-попадания (очень эффективна, но увеличивается энергопотребление процессора)
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
7 / 32 |
Политики замещения данных в кэш-памяти
Кэш всегда полон; новые данные можно занести только путем замещения каких-либо старых.
Rnd (Random) замещаемые данные выбираются случайным образом
LFU (Least Frequently Used) – в первую очередь замещаются данные, у которых самая низкая частота обращений (требует наличия счетчика удачных запросов в каждой строке кэша)
LRU (Least Recently Used) – замещаются те данные, к которым дольше всего не обращались
LRR (Least Recently Replaced) – замещаются те данные, которые были загружены раньше всех
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
8 / 32 |
Организация кэша
Из чего формируется кэш-строка (cache-line):
Счетчик возраста строк, для реализации политики замещения на основе алгоритма LRU
32-разрядный (четырехбайтный) адрес памяти, используемый контроллером для проверки промахов/попаданий. Адрес сохраняемого слова принято называть тегом (tag)
Блок данных фиксированного размера (степени двойки – 2, 4, 8, 16 и т.д.), идущих подряд в оперативной памяти. Он называется размером кэш строки.
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
9 / 32 |
Организация кэша
Рис. 2: Пример кэш-строки размером 16 байт
Размер кэш строки всегда равен степени двойки, а данные не пересекаются. Тогда размер тега (в битах) равен 32 − log2S, где S – размер кэш строки в байтах.
Если размер кэш строки равен 16 байт – то размер тега адреса 28 бита. Для строки из 32 байт – 27 бит адреса, 64 бай адресуются 26 битами.
Чёрная команда (СПбПУ) |
Кэш-память |
8 марта 2016 г. |
10 / 32 |