Выпускная квалификационная работа Исследование аппаратной предвыборки данных в кэш второго уровня микропроцессора Студент: Гребенкин А.П., 816 гр. Научный руководитель: Черепанов С.А.
Основные классы алгоритмов аппаратной предвыборки Использующие принцип локальности данных Применение: исходный код с динамическими структурами данных. Использующие корреляционный анализ адресов последовательных обращений Применение: крупные линейные участки кода; циклы, не зависящие явно от итератора. Использующие корреляционный анализ адресов обращений для отдельно взятых инструкций Применение: циклы, зависящие явно от итератора.
Цель исследования Разработка методологии и оценка эффективности основных методов аппаратной предвыборки данных в кэш второго уровня
Выделение постоянного шага (Stride) Класс инструкций с постоянным шагом: CurrentAddress – PreviousAddress = Stride = const != 0 Reference Prediction Table (RPT) Диаграмма состояний записей RP T Исследуемые методы:
Построение и анализ цепей Маркова
Проблема хранения истории обращений. Исследуемые методы: Построение и анализ цепей Маркова
Исследуемые методы: Хранение истории в Global History Buffer (GHB) Нотация алгоритмов на основе GHB: /
Исследуемые методы: Алгоритм PC/DC: Program Counter / Delta Correlation
Исследуемые методы: Алгоритм G/DC: Global address / Delta Correlation
Методология Выбор инструмента для исследования Исследование на ПЛИС + Высокая скорость тестирования - Сложность реализации алгоритмов Потактовый симулятор + Тестирование на любом ПК - Крайне низкая скорость тестирования - Сложность реализации алгоритмов Симулятор подсистемы памяти + Достаточно быстрое тестирование + Тестирование на любом ПК + Простота реализации алгоритмов в терминах симулятора + Простота реализации инструмента - Погрешность результатов
Методология Получение трасс обращений
Методология Обработка трасс на событийной модели
Методология Параметры симуляции Для симуляции были спользованы следующие параметры: Тайминги: tAL = 2, BL = 8, tCL = 5, tCAS = 5, tFAW = 20, tRAS = 18, tRCD = 5, tRTP = 2,tRRD = 4, tRP = 4, tWTR = 3, tWR = 6 Отношение частоты памяти к частоте ядра = 2.5 Размер L1 32Кб, ассоциативность - 4 Размер L2 2Мб, ассоциативность 8 Время поиска по L2 15 тактов, по L1 2 такта. Размер слова 64 бита, Количество miss registers в кэшах 4 Размер очереди обращений в память 16 Стратегия вытеснения - Pseudo-LRU
Полученные данные Метод выделения постоянного шага (Stride)
Полученные данные Метод цепей Маркова на структуре GHB (G/AC: Global address / Address Correlation) Для алгоритма с параметром ширины предвыборки = 4
Полученные данные Метод G/DC Для алгоритма с параметром ширины предвыборки = 4
Полученные данные Метод PC/DC Для алгоритма с параметром ширины предвыборки = 2
Полученные данные Сравнение методов
Полученные данные Сравнение методов: случай эффективного программного кода Опасность использования метода G/DC
Полученные данные Сравнение методов: случай эффективного программного кода
Выводы Stride и PC/DC + хорошая точность обнаружения целевого кода + малое количество неиспользованных предвыборок – проектирование дополнительной логики ядра для получения PC G/AC + малое количество неиспользованных предвыборок + возможность использовать алгоритм обособленно от ядра – узкая направленность метода G/DC + возможность использовать алгоритм обособленно от ядра + широкая направленность метода – генерация большого числа ненужных предвыборок
Разработана методология исследования: создана система автоматизации получения исходных данных для симуляции и обработки результатов, симулятор подсистемы памяти. Исследованы 4 класса алгоритмов на симуляционной модели Результаты
Направления дальнейшей работы Осуществление корреляции симулятора с различными реализациями процессоров путем использования в симуляторе соответствующих параметров и аппаратных решений Разработка эффективных методов предвыборки, оценивая их по разработанной методологии.
Спасибо за внимание
Приложение