ВВЕДЕНИЕ
Активное внедрение архитектуры RISC-V в космическую отрасль, подтверждённое такими проектами, как NASA High Performance Spaceflight Computing (HPSC) и европейский COSMIC7, требует тщательного анализа подсистем памяти будущих многоядерных процессоров [1, с. 1; 2, с. 1]. В условиях жёстких энергетических ограничений выбор эффективного протокола когерентности кэшей становится критически важной инженерной задачей.
Кэш-память является неотъемлемой частью современных процессорных систем. В многоядерных конфигурациях возникает проблема согласования данных: несколько копий одного блока памяти могут одновременно находиться в разных кэшах, и изменение одной из них должно своевременно отражаться в остальных. Механизм поддержки непротиворечивости данных называется когерентностью кэшей, а набор правил — протоколом когерентности [3, с. 410; 4, с. 75]. Архитектура RISC-V представляет собой открытый, свободно расширяемый набор команд, который стремительно набирает популярность [5, с. 1].
Для масштабируемых многоядерных систем широкое применение получили directory-based протоколы, использующие распределённый справочник для отслеживания местоположения копий данных [6, с. 64]. Целью настоящей работы является количественное сравнение эффективности двух таких протоколов — базового MESI и его расширенной версии MESIF — применительно к 16-ядерному процессору с архитектурой RISC-V. Оба протокола реализованы в подсистеме Ruby симулятора gem5. Особое внимание уделено энергопотреблению DRAM, что напрямую связано с энергетическим бюджетом космических аппаратов.
1. ОПИСАНИЕ ИССЛЕДУЕМЫХ ПРОТОКОЛОВ
1.1. Протокол MESI
Протокол MESI, впервые предложенный Папамаркосом и Пателом [7, с. 350], является одним из наиболее распространённых протоколов когерентности. Каждая кэш-линия может находиться в одном из четырёх состояний:
- M (Modified) — строка модифицирована, её копия в памяти устарела;
- E (Exclusive) — строка присутствует только в данном кэше, но совпадает с памятью;
- S (Shared) — строка может находиться в нескольких кэшах, все копии актуальны;
- I (Invalid) — строка недействительна.
Ключевой недостаток MESI проявляется при активном разделении данных. Если ядро модифицировало строку (состояние M), а затем другое ядро запрашивает её для чтения, протокол требует выполнить обратную запись в основную память, после чего строка переходит в состояние S в обоих кэшах. Эта операция записи потребляет полосу пропускания памяти и увеличивает задержку, что подтверждено исследованиями Арчибальда и Баера [8, с. 280].
1.2. Протокол MESIF
Развитием MESI является протокол MESIF, добавляющий пятое состояние — F (Forwarding). В состоянии F строка остаётся чистой, но выступает единственным ответственным за пересылку данных другим ядрам при запросах на чтение. MESIF позволяет напрямую переслать данные из кэша-владельца, оставляя его в состоянии F, а запрашивающий кэш получает состояние S. Таким образом, обратная запись в память исключается [9, с. 11].
Для космических применений это означает не только ускорение, но и снижение количества операций записи в DRAM. Меньше записей — меньше энергопотребление подсистемы памяти, что напрямую влияет на энергобаланс космического аппарата.
2. МЕТОДИКА МОДЕЛИРОВАНИЯ
Для экспериментов была сконфигурирована 16-ядерная система с архитектурой RISC-V RV64GC. Каждое ядро работало на частоте 2 ГГц и подключалось к частным кэшам первого уровня: L1I и L1D объёмом по 32 КБ. Второй уровень (L2) объёмом 128 КБ являлся общим для всех ядер и управлялся контроллером распределённого справочника. Относительно небольшой размер L2 был выбран намеренно, чтобы усилить эффект от вытеснения строк и тем самым отразить условия ограниченных аппаратных ресурсов, характерные для космических процессоров.
Моделирование проводилось в симуляторе gem5 [10, с. 2] с использованием подсистемы Ruby и языка SLICC [11, с. 95]. Тестирование выполнялось на двух нагрузках: ассемблерной программе с интенсивным разделением данных и вычислительном ядре умножения матриц 64×64 на языке C. Эти нагрузки имитируют типичные задачи космической обработки данных: параллельные вычисления, работа с общими массивами, интенсивный обмен данными между ядрами.
Сбор статистики включал: IPC, время выполнения, количество промахов, объём сетевого трафика, энергопотребление DRAM и количество операций записи в память. Методика измерения соответствует подходам, изложенным Хеннесси и Паттерсоном [12, с. 500].
3. РЕЗУЛЬТАТЫ И ОБСУЖДЕНИЕ
3.1. Ассемблерный тест
Тестовая программа создаёт интенсивную нагрузку на подсистему когерентности: 16 ядер выполняют чтение из большого массива (32 МБ) и горячей области (4 КБ), при этом 1/4 ядер модифицируют разделяемые данные. Основные результаты представлены в таблице 1.
Таблица 1.
Результаты ассемблерного теста (16 ядер, L2 = 128 КБ)
|
Показатель |
MESIF |
MESI |
|---|---|---|
|
Средний IPC |
0.00292 |
0.00268 |
|
Средний CPI |
342.8 |
373.6 |
|
Симулированное время (с) |
0.085 |
0.093 |
|
Средняя задержка доступа к DRAM (такты) |
61 398 |
54 354 |
|
Количество операций записи в память |
0 |
2 194 219 |
Анализ данных показывает, что при использовании MESIF достигается на 9 % более высокий IPC и на 9 % меньшее время выполнения. Ключевым фактором является полное отсутствие операций записи в память в случае MESIF (writeReqs = 0), тогда как в MESI зафиксировано более 2 млн записей. Это объясняется поведением протоколов при вытеснении модифицированных строк из кэша.
3.2. Тест на языке C: умножение матриц
Для проверки закономерностей на более реалистичной нагрузке было проведено сравнение протоколов на примере умножения матриц с плавающей точкой. Результаты сведены в таблицу 2.
Таблица 2.
Результаты C-теста (16 ядер, L2 = 128 КБ)
|
Показатель |
MESIF |
MESI |
Изменение |
|---|---|---|---|
|
Симулированное время (с) |
0.009391 |
0.010814 |
+15.2 % |
|
Средний IPC |
0.00255 |
0.00230 |
–10 % |
|
Промахи L2 |
375 457 |
431 556 |
+15 % |
|
Записи DRAM |
0 |
2 240 |
— |
|
Энергопотребление DRAM (пДж) |
16.62×10⁹ |
19.13×10⁹ |
+15 % |
Результаты C-теста полностью согласуются с выводами ассемблерного эксперимента. Протокол MESIF показал превосходство по всем ключевым показателям: время выполнения сократилось на 13 %, IPC вырос на 10 %, количество промахов уменьшилось на 15 %. Корень преимущества — отсутствие обратных записей модифицированных строк в основную память. В MESI вытеснение изменённых данных из L2-кэша породило 2 240 запросов на запись в DRAM, что увеличило задержки чтения и снизило пропускную способность шины.
Энергопотребление DRAM в конфигурации с MESIF оказалось на 15 % ниже, чем с MESI. Для космического аппарата, где энергия ограничена, это означает возможность либо увеличить вычислительную нагрузку при том же энергобюджете, либо снизить требования к системе электропитания и терморегуляции.
3.3. Энергоэффективность для космических применений
Полученные результаты показывают, что переход от MESI к MESIF обеспечивает существенное снижение энергопотребления подсистемы памяти. В условиях космического полёта, где каждый ватт энергии на счету, это преимущество становится определяющим. Снижение количества операций записи в DRAM также уменьшает тепловыделение, что упрощает тепловой баланс аппарата.
Таким образом, для перспективных многоядерных RISC-V процессоров космического применения, таких как NASA HPSC [2, с. 1] и COSMIC7 [1, с. 1], выбор MESIF позволяет повысить производительность и одновременно снизить энергопотребление, что делает его предпочтительным решением.
ЗАКЛЮЧЕНИЕ
В работе выполнено сравнение двух directory-based протоколов когерентности кэшей — MESI и MESIF — применительно к 16-ядерному процессору RISC-V с L2-кэшем ограниченного объёма (128 КБ) в контексте космических применений. Потактовое моделирование в среде gem5 Ruby показало, что добавление состояния Forwarding обеспечивает:
- прирост IPC на 9–10 %;
- сокращение времени выполнения на 9–15 %;
- снижение энергопотребления DRAM на 15 %;
- полное исключение обратных записей в память в тестовых нагрузках.
Полученные результаты позволяют рекомендовать MESIF как оптимальное решение для многоядерных RISC-V систем космического применения, где требуется высокая производительность и энергоэффективность. Дальнейшие исследования могут быть направлены на анализ других протоколов, таких как MOESI, а также на изучение влияния топологии сети-на-кристалле.
Список литературы
- Leveraging the Openness and Modularity of RISC-V in Space // Journal of Aerospace Information Systems. - 2023.
- NASA High Performance Spaceflight Computing (HPSC) Project Overview. - 2024.
- Patterson, D.A. Computer Organization and Design: The Hardware/Software Interface. RISC-V Edition / D.A. Patterson, J.L. Hennessy. - Morgan Kaufmann, 2017. - 696 p.
- Sorin, D.J. A Primer on Memory Consistency and Cache Coherence / D.J. Sorin, M.D. Hill, D.A. Wood. - Morgan & Claypool, 2011. - 212 p.
- Waterman, A. The RISC-V Instruction Set Manual, Volume I: Unprivileged ISA / A. Waterman, K. Asanovic (Eds.). - RISC-V Foundation, 2019.
- Lenoski, D. The Stanford Dash multiprocessor / D. Lenoski, J. Laudon, K. Gharachorloo et al. // Computer. - 1992. - Vol. 25, No. 3. - P. 63-79.
- Papamarcos, M.S. A low-overhead coherence solution for multiprocessors with private cache memories / M.S. Papamarcos, J.H. Patel // ISCA '84. - 1984. - P. 348-354.
- Archibald, J. Cache coherence protocols: evaluation using a multiprocessor simulation model / J. Archibald, J.-L. Baer // ACM TOCS. - 1986. - Vol. 4, No. 4. - P. 273-298.
- Intel Corporation. Intel® 64 and IA-32 Architectures Software Developer's Manual. Volume 3A. - 2024.
- Binkert, N. The gem5 Simulator / N. Binkert, B. Beckmann, G. Black et al. // ACM SIGARCH Computer Architecture News. - 2011. - Vol. 39, No. 2. - P. 1-7.
- Martin, M.M.K. Multifacet's general execution-driven multiprocessor simulator (GEMS) toolset / M.M.K. Martin, D.J. Sorin, B.M. Beckmann et al. // ACM SIGARCH Computer Architecture News. - 2005. - Vol. 33, No. 4. - P. 92-99.
- Hennessy, J.L. Computer Architecture: A Quantitative Approach. 6th ed. / J.L. Hennessy, D.A. Patterson. - Morgan Kaufmann, 2017. - 856 p.


