Выпускная квалификационная работа Исследование аппаратной предвыборки данных в кэш второго уровня микропроцессора Студент: Гребенкин А.П., 816 гр. Научный руководитель: Черепанов С.А. Основные классы алгоритмов аппаратной предвыборки Использующие принцип локальности данных Применение: исходный код с динамическими структурами данных. Использующие корреляционный анализ адресов последовательных обращений Применение: крупные линейные участки кода; циклы, не зависящие явно от итератора. Использующие корреляционный анализ адресов обращений для отдельно взятых инструкций Применение: циклы, зависящие явно от итератора. Цель исследования Разработка методологии и оценка эффективности основных методов аппаратной предвыборки данных в кэш второго уровня Исследуемые методы: Выделение постоянного шага (Stride) Класс инструкций ”с постоянным шагом”: CurrentAddress – PreviousAddress = Stride = const != 0 Reference Prediction Table (RPT) Диаграмма состояний записей RPT Исследуемые методы: Построение и анализ цепей Маркова Исследуемые методы: Построение и анализ цепей Маркова Проблема хранения истории обращений. Исследуемые методы: Хранение истории в Global History Buffer (GHB) Нотация алгоритмов на основе GHB: <Тип Index Table>/<Метод анализа истории> Исследуемые методы: Алгоритм PC/DC: Program Counter / Delta Correlation Исследуемые методы: Алгоритм G/DC: Global address / Delta Correlation Методология Выбор инструмента для исследования Исследование на ПЛИС + Высокая скорость тестирования - Сложность реализации алгоритмов Потактовый симулятор + Тестирование на любом ПК - Крайне низкая скорость тестирования - Сложность реализации алгоритмов Симулятор подсистемы памяти + Достаточно быстрое тестирование + Тестирование на любом ПК + Простота реализации алгоритмов в терминах симулятора + Простота реализации инструмента - Погрешность результатов Методология Получение трасс обращений Методология Обработка трасс на событийной модели Методология Параметры симуляции Для симуляции были спользованы следующие параметры: Тайминги: tAL = 2, BL = 8, tCL = 5, tCAS = 5, tFAW = 20, tRAS = 18, 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 tRCD = Полученные данные Метод выделения постоянного шага (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 класса алгоритмов на симуляционной модели Направления дальнейшей работы Осуществление корреляции симулятора с различными реализациями процессоров путем использования в симуляторе соответствующих параметров и аппаратных решений Разработка эффективных методов предвыборки, оценивая их по разработанной методологии. Спасибо за внимание Приложение