Исследование влияния глубины стека вызовов на точность предсказания Return Address Stack в процессорах AMD ZEN 4
Ключевые слова:
микроархитектура, предсказатель ветвлений, Return Address Stack, AMD Zen 4, аппаратные счётчики производительности, , perf_event_open, ZigАннотация
Исследована зависимость между глубиной рекурсивных вызовов и числом промахов предсказателя адресов возврата (RAS) в микроархитектуре AMD Zen 4. Разработан микробенчмарк на языке Zig, использующий аппаратные счётчики производительности через системный вызов perf_event_open для измерения событий ветвлений, промахов предсказателя ветвлений и промахов RAS. Экспериментально определена граница переполнения RAS-буфера между глубиной вызовов 24 и 64 на процессоре AMD Ryzen 7 7840HS. Представлен анализ дизассемблированного кода и механизма взаимодействия с подсистемой perf ядра Linux.
Библиографические ссылки
Орлов, С. А. Организация ЭВМ и систем : учебник для вузов. 4-е изд. Фундаментальный курс по архитектуре и структуре современных компьютерных средств / С. А. Орлов. – СПб. – М. – Минск : «Питер», 2024. – 682 с.
AMD. Software Optimization Guide for the AMD Zen 4 Microarchitecture. – Publication No. 57647. – Rev. 1.00. – 2023.
Fog A. The microarchitecture of Intel, AMD, and VIA CPUs: An optimization guide for assembly programmers and compiler makers. – Copenhagen University College of Engineering, 2024. [Electronic resource] – URL: https://www.agner.org/optimize/microarchitecture.pdf
AMD. Open-Source Register Reference for AMD Family 19h Processors. – Event 0xC9. – [Electronic resource]. - URL: https://github.com/torvalds/linux/blob/v6.17-rc7/tools/perf/pmu-events/arch/x86/amdzen4/branch.json
Zig Programming Language [Electronic resource]. – URL: https://ziglang.org/
Linux Kernel Documentation. perf_event_open(2) – Linux manual page [Electronic resource]. – URL: https://man7.org/linux/man-pages/man2/perf_event_open.2.html
Исходный код проекта ras-influence. – URL: https://github.com/fidelicura/uarch/ras-influence