Исследование и разработка методов масштабирования подсистемы памяти вычислительных комплексов на основе многоядерных процессоров общего назначения тема диссертации и автореферата по ВАК РФ 05.13.15, кандидат наук Недбайло Юрий Александрович

  • Недбайло Юрий Александрович
  • кандидат науккандидат наук
  • 2021, ФГБОУ ВО «МИРЭА - Российский технологический университет»
  • Специальность ВАК РФ05.13.15
  • Количество страниц 163
Недбайло Юрий Александрович. Исследование и разработка методов масштабирования подсистемы памяти вычислительных комплексов на основе многоядерных процессоров общего назначения: дис. кандидат наук: 05.13.15 - Вычислительные машины и системы. ФГБОУ ВО «МИРЭА - Российский технологический университет». 2021. 163 с.

Оглавление диссертации кандидат наук Недбайло Юрий Александрович

Введение

Глава 1. Масштабирование общего кэша

1.1 Основные понятия

1.2 Приватные и общие кэши

1.3 Снижение времени доступа

1.3.1 Средствами ОС

1.3.2 Созданием копий

1.3.3 Миграцией строк

1.4 Ассоциативность и разбиение

1.4.1 Переменный размер сета

1.4.2 Скошенная ассоциативность

1.4.3 Механизм разбиения

1.5 Поддержка когерентности

1.5.1 Кодирование маски фильтра

1.5.2 Обновление справочника

1.6 Эксперименты

1.6.1 Инклюзивно сть

1.6.2 Ассоциативность и разбиение

1.6.3 Уменьшение времени доступа

1.7 Выводы

Глава 2. Сеть соединений на кристалле

2.1 Технологические тенденции

2.2 Существующие методы

2.2.1 Выбор топологии

2.2.2 Типы маршрутизации

2.2.3 Управление потоком

2.2.4 Уменьшение задержек

2.2.5 Дедлоки и ливлоки

2.2.6 Качество обслуживания

Стр.

2.2.7 Сетевой интерфейс

2.3 Архитектура FEMIDA

2.3.1 Общая компоновка

2.3.2 Организация буферов

2.3.3 Доработка экспресс-виртуальных каналов

2.4 Эксперименты

2.4.1 Пропускная способность

2.4.2 Честность

2.4.3 Задержки

2.4.4 Площадь

2.5 Выводы

Глава 3. Контроллер памяти

3.1 Пропускная способность DRAM

3.1.1 Недостаточность пропускной способности

3.1.2 Эффективность контроллера DRAM

3.2 Методы повышения эффективности

3.2.1 Оптимизация случайного доступа

3.2.2 Увеличение размера запросов

3.3 Эксперименты

3.3.1 Глубина планировщика контроллера

3.3.2 Группировка запросов в память

3.3.3 Многопоточная производительность

3.4 Выводы

Глава 4. Методика моделирования

4.1 Существующие методы

4.1.1 Потактовые симуляторы

4.1.2 Симуляторы на основе трасс событий

4.1.3 Выборка событий

4.2 Разработанный инструментарий

4.2.1 Снятие трасс

4.2.2 Кластерная выборка

4.2.3 Поддержка многопоточности

Стр.

4.2.4 Симулятор многоядерной машины

4.2.5 Воспроизведение трасс

4.2.6 Модели кэшей

4.2.7 Модель сети

4.2.8 Модель контроллера памяти

4.3 Эксперименты

4.3.1 Точность

4.3.2 Производительность

4.4 Выводы

Заключение

Список сокращений и условных обозначений

Список литературы

Список рисунков

Список таблиц

Приложение А. Акты внедрения

Приложение Б. Свидетельство о государственной регистрации

Приложение В. Дипломы

Рекомендованный список диссертаций по специальности «Вычислительные машины и системы», 05.13.15 шифр ВАК

Введение диссертации (часть автореферата) на тему «Исследование и разработка методов масштабирования подсистемы памяти вычислительных комплексов на основе многоядерных процессоров общего назначения»

Введение

Вычислительные комплексы на основе микропроцессоров уже более полувека существуют и развиваются как большая область науки и техники благодаря таким учёным как Р. Нойс, Г. Мур, Э. Гроув, Дж. Хеннесси, Д. Паттерсон, Б. Дэлли, К. Олукотун и многим другим. Среди российских учёных важный вклад в развитие принципов их проектирования внесли такие учёные как Б. А. Бабаян, В. М. Пентковский, Ю. Х. Сахин, А. К. Ким.

Пока развитие полупроводниковых технологий позволяет каждые несколько лет двукратно увеличивать количество оборудования размещаемого на кристалле, самым привлекательным подходом к усовершенствованию вычислительных комплексов является соответствующее наращивание количества ядер. Такой подход даёт почти пропорциональный прирост пиковой производительности при перепроектировании подсистемы памяти процессора. Дальнейшее наращивание производительности возможно путём увеличения количества процессоров или кристаллов в многокристалльной сборке. Такой подход широко применяется, но он требует соответствующего увеличения количества оборудования и подразумевает неоднородный доступ в память, ограничивающий масштабируемость производительности для многих задач.

При наращивании количества ядер без увеличения количества процессоров возникает ряд факторов, которые необходимо учитывать. Во-первых, оперативная память развивается не так быстро — её пропускная способность в пересчёте на ядро всё уменьшается. Во-вторых, усложняется процесс проектирования — моделирование, физическое проектирование, верификация. В-третьих, чтобы процессор хорошо подходил для максимально широкого спектра задач, от него требуется соответствие общепринятым парадигмам, таким как когерентная общая память и отсутствие значительной неоднородности доступа в память, и чем больше в нём ядер, тем труднее поддерживать это соответствие.

Распространённым способом учёта перечисленных факторов является создание процессоров с распределённым общим кэшем, соединённых сетью на кристалле. Они имеют достаточно однородную структуру, что позволяет наращивать число ядер без трудоемкого проектирования, верификации и отладки, попутно увеличивая доступный каждому ядру объём кэша и тем самым уменьшая их потребность в пропускной способности оперативной памяти.

Сегодня этот подход хорошо отработан в вычислительных комплексах на основе процессоров с несколькими десятками ядер. Существуют вычислительные комплексы, содержащие сотни и даже тысячи ядер на кристалле, но они скорее специализированные. В обозримом будущем развитие полупроводниковой технологии должно сделать возможным производство вычислительных комплексов на основе процессоров общего назначения с сотнями ядер, и для их разработки важно определить, с какими задачами предстоит столкнуться и какими приемлемыми методами их можно решить. При этом предпочтительнее те методы, которые хорошо подойдут для любого числа ядер вплоть до предполагаемого предела. Эти методы позволят использовать одни и те же схемотехнические решения для разных поколений вычислительных комплексов и тем самым сократить затраты на проектирование.

Исходя из тенденций развития вычислительных комплексов на основе процессоров общего назначения, является актуальным исследование их моделей при увеличении до тысячи количества ядер с общим кэшем, а также разработка комплекса методов масштабирования подсистемы памяти с учетом производительности вычислительного комплекса и эффективности внедрения.

Объектом исследования является подсистема памяти вычислительных комплексов на основе многоядерных процессоров общего назначения. Предметом исследования является её производительность в зависимости от количества ядер и методы уменьшения этой зависимости.

Целью диссертационной работы является разработка научно обоснованных методов масштабирования подсистемы памяти вычислительных комплексов на основе процессоров общего назначения с распределённым общим кэшем между ядрами, а также исследование применения этих методов для вычислительных комплексов на основе многоядерных процессоров с широким командным словом и последовательным исполнением команд (16-1024 ядер, архитектура Эльбрус).

Для достижения этой цели поставлены следующие задачи:

- Теоретическое исследование факторов, ограничивающих масштабируемость общего кэша, сети соединений и контроллера памяти многоядерных процессоров и существующих методов ослабления этих ограничений;

- Разработка нового комплекса методов, позволяющего ослаблять выявленные ограничения до такой степени, которая позволяет достигать поставленной цели;

- Разработка методов экспериментальной проверки эффективности разработанного комплекса методов и производительности вычислительных комплексов на основе многоядерных процессоров общего назначения с десятками и сотнями ядер и соответствующего инструментария для процессоров архитектуры Эльбрус;

- Проведение экспериментальной проверки разработанного комплекса методов.

Научная новизна:

- Предложено сочетание методов поддержки когерентности общего кэша, в отличие от известных решений хорошо масштабируемое до порядка тысячи ядер;

- Разработана архитектура сети соединений, сочетающая высокую пропускную способность, близкие к минимальным базовые задержки, поддержку качества обслуживания и наилучшую среди существующих аналогов масштабируемость до порядка тысячи узлов;

- Разработана схема общего буфера сетевого роутера, использующая LRU-арбитры вместо очередей пакетов и реализующая динамическое распределение его объёма между потоками;

- Усовершенствован механизм предотвращения «голодания» (starvation) экспресс-виртуальных каналов, позволяя поддерживать качество обслуживания в каналах при высоком трафике;

- Предложено сочетание аппаратных и программно-аппаратных методов обеспечения высокой пропускной способности памяти DRAM в многоядерных процессорах, в отличие от существующих методов имеющее и высокую эффективность, и неограниченную масштабируемость;

- Разработана методика оценки производительности вычислительных комплексов на основе многоядерных in-order процессоров, в отличие от существующих аналогов позволяющая моделировать их подсистему памяти с высокой детализацией и приемлемой скоростью вплоть до 1024 ядер.

Теоретическая и практическая значимость результатов работы.

Теоретическая значимость проведённого исследования состоит в обосновании масштабируемости универсальных микропроцессоров с распределённым общим кэшем до порядка тысячи ядер, создавая предпосылки для оптимизации элементов и структур таких процессоров и вычислительных комплексов на их основе, а также операционных систем и программ в этом направлении.

Практическая значимость определяется разработанными взаимосвязанными научно обоснованными техническими решениями на этапах разработки процессора, обеспечивающими высокую масштабируемость. Использование этих решений делает возможным дальнейшее усовершенствование микропроцессоров и, соответственно, вычислительных комплексов на их основе, с минимальными затратами на проектирование каждого последующего их поколения за счёт переиспользования разработанных методов и базовых схем.

Разработанные решения применены в разработках процессоров Эль-брус-8СВ, Эльбрус-2С3 и Эльбрус-16С и вычислительных комплексов на основе модулей МВС-СВ, E8CB-uATX и E8CB-EATX, созданных в рамках государственной программы «Развитие электронной и радиоэлектронной промышленности на 2013-2025 годы» от 15.12.2012 и Постановления Правительства Российской Федерации №109 от 17.02.2016.

Созданный в работе симулятор вычислительного комплекса на основе многоядерного процессора, способный моделировать до 1024 ядер с приемлемой скоростью, применяется для анализа и оптимизации производительности микропроцессоров разрабатываемых АО «МЦСТ» и может также использоваться при разработке процессоров других in-order архитектур.

Методология и методы исследования. Методы исследования основываются на общепринятых разделах проектирования вычислительной техники, теории сетей и компьютерном моделировании.

Основные положения, выносимые на защиту:

1. Сочетание методов, обеспечивающих масштабирование распределённого общего кэша до тысячи ядер;

2. Архитектура сетей FEMIDA, обеспечивающая масштабирование сети соединений до тысячи узлов;

3. Сочетание программных и аппаратных методов, устраняющих падение производительности памяти DRAM с ростом числа ядер;

4. Методика моделирования вычислительного комплекса с многоядерным процессором, масштабируемая до тысячи ядер.

Соответствие паспорту специальности. Диссертационная работа соответствует паспорту научной специальности 05.13.15 - «Вычислительные машины, комплексы и компьютерные сети» и относится к области исследований «Теоретический анализ и экспериментальное исследование функционирования вычислительных машин, комплексов и компьютерных сетей с целью улучшения их технико-экономических и эксплуатационных характеристик».

Достоверность полученных результатов обеспечивается теоретическим обоснованием разработанных методов и моделированием на симуляторе, точность которого проверена экспериментальным сравнением с реальным 8-ядер-ным вычислительным комплексом и точной RTL-моделью сети на кристалле.

Апробация работы. Результаты диссертационной работы докладывались на 56-й, 57-й, 58-й и 59-й научной конференции МФТИ (Москва-Долгопрудный, МФТИ, 2013-2016 гг.), международной конференции «Engineering and Télécommunication - E&T-2019» (Москва-Долгопрудный, МФТИ, 2019 г.), Международном московском IEEE-семинаре «MWENT-2020» (Москва, НИУ ВШЭ, 2020 г.), международной конференции 26th IEEE Conférence of Open Innovations Association FRUCT (Ярославль, ЯрГУ, 2020 г.), IX Всероссийской с международным участием научно-технической конференции «Проблемы разработки перспективных микро- и наноэлектронных систем» МЭС-2020 (Москва, ИППМ РАН, 2020 г.) и Международном форуме «Микроэлектроника 2020» (Ялта, 2020 г.)

Публикации. По теме диссертации опубликовано пять статей в изданиях, входящих в перечень ВАК РФ; зарегистрирована программа для ЭВМ.

Объем и структура работы. Диссертация состоит из введения, четырёх глав и заключения. Полный объём диссертации составляет 163 страницы, включая 73 рисунка и 3 таблицы. Список литературы содержит 124 наименования.

Глава 1. Масштабирование общего кэша 1.1 Основные понятия

Кэши - это буферы, в которых автоматически, невидимо для программиста, создаются копии данных, считываемых из памяти, для более быстрого доступа к ним (как по времени, так и по пропускной способности).

Доступ в кэш, как и в память, осуществляется по физическому или виртуальному адресу, который прикрепляется (как «тэг») к хранимой порции (кэш-строке) данных. Строки имеют фиксированный размер (чаще всего 64 байт) и выровнены (младшие разряды адреса равны нулю). Таким образом адрес делится на две части - офсет (нулевые разряды) и тэг, но обычно между ними выделяют ещё третью. Часть адреса, называемая индексной, обычно используется для внутреннего интерливинга в кэше, чтобы облегчить поиск нужного адреса, и её хранить не нужно - она восстанавливается из положения строки в кэше (и, в общем случае, тэга). Так, сет-ассоциативный кэш статически поделён на равные группы (сеты) строк, соответствующие разным значениям индексной части адреса или, в более общем случае, определённой хэш-функции адреса (индексной части и тэга).

Когда в кэш помещается новая строка и для неё нет свободного места, алгоритм замещения выбирает строку, которую нужно вытеснить. Степень разнообразия этого выбора называется ассоциативностью кэша; чем ниже ассоциативность, тем более случайно выбирается вытесняемая строка, что обычно снижает эффективность работы кэша. У сет-ассоциативного кэша ассоциативность равна размеру сета, скошенная ассоциативность позволяет её многократно повышать.

От размера кэша, его структуры и особенностей логики его работы зависит время доступа в него и частота промахов - обращений, для которых в кэше не нашлось данных. Чем больше кэш, там больше время доступа в него (что плохо), но тем и реже промахи (что хорошо). Вследствие такой неоднозначной зависимости, обычно процессорное ядро использует несколько кэшей разного размера, связанных в иерархию - маленькие кэши первого уровня (Ь1), имеющие время доступа около трёх тактов и размер десятки килобайт, второго уровня (Ь2)

Рисунок 1.1 — Пример сет-ассоциативного кэша.

с порядка 10 тактов времени доступа и размером в сотни килобайт и третьего уровня (Ь3) с порядка 30 тактов времени доступа и размером несколько мегабайт. Иерархия заключается в том, что промах в Ь1 кэш проверяется в Ь2-кэше, промах в Ь2 - в Ь3, и только запрос, промахнувшийся в последний уровень, отправляется в память. Таким образом кэши не только снижают время доступа, но повышают пропускную способность подсистемы памяти (Рисунок 1.2).

Рисунок 1.2 — Кэши снижают поток обращений в память.

Данные в кэшах должны быть всегда свежими, иначе будет нарушена модель памяти - по какому-то адресу может быть считано не то, что последний раз было записано. Это достигается соблюдением какого-либо протокола когерентности - такого порядка обменов кэшей между собой, с памятью и с другими процессорами, который поддерживает актуальность всех копий. Протокол обычно подразумевает множество состояний, в одном из которых может находиться кэш-строка, и события, приводящие к изменению состояния. Это может изображаться диаграммой состояний (Рисунок 1.3). Протоколы обычно называют

согласно списку состояний, например MSI или MOESI. Обмены между кэшами инициируются либо широковещательными сообщениями (но это плохо масштабируется), либо с использованием отдельного координирующего устройства -справочника.

Рисунок 1.3 — Диаграмма состояний протокола MOESI.

В многоядерных процессорах каждое ядро имеет свои (приватные, private) L1 и, чаще всего, L2 кэши, а кэш нижнего уровня иерархии - L2 или L3 соответственно - часто делается общим (shared). Благодаря механизму поддержки когерентности, модифицированные данные любого кэша доступны всем ядрам, но общий кэш отличает то, что каждое ядро может создавать в нём копии и считывать из него немодифицированные данные, то есть пользоваться им как своим. Это позволяет более оптимально распределять объём кэшей в тех сценариях, когда разные ядра получают разный выигрыш от дополнительного объема (например, если часть ядер простаивает). Кроме того, инклюзивный (то есть включающий всё содержимое вышестоящих по иерархии) общий кэш может выполнять функцию справочника. Однако, у общего кэша есть и недостатки:

- Распределение объёма во многих сценариях может оказаться неоптимальным; в крайнем случае - при загрязнении (pollution) - все полезные

данные вытесняются из кэша интенсивным потоком бесполезных (используемых однократно);

- Может не хватать ассоциативности кэша, особенно если реализованы какие-то простые механизмы борьбы с первой проблемой (разбиение);

- Если кэш инклюзивный, он может ухудшать работу вышестоящих по иерархии, вызывая преждевременные вытеснения строк из них.

В целом, общие кэши считаются удачным решением, но борьба с перечисленными недостатками может значительно улучшить их работу и необходима, если выполняемые процессором задачи требуют гарантий производительности.

Общий кэш или общий справочник в процессорах с несколькими ядрами часто делаются цельным устройством, но в процессорах с десятками ядер это обычно явно неоптимально, и их лучше разделить на банки, распределённые по кристаллу. Это наделяет их достаточной пропускной способностью, но увеличивает время доступа пропорционально размеру системы. Для распределённых кэшей известны различные (NUCA-) оптимизации, позволяющие хранить строки поближе к ядрам, обращавшимся к ним, чтобы решить эту проблему, например банки могут динамически разделяться на приватную и общую часть в оптимальной пропорции, как бы добавляя ещё один уровень иерархии. При наличии общего кэша, справочник обычно совмещён с ним (Рисунок 1.4).

Рисунок 1.4

Распределённые общий кэш и справочник с делением кэша на приватную и общую части [1].

1.2 Приватные и общие кэши

Прежде чем перейти к деталям реализации общего кэша и справочника, стоит вкратце обсудить целесообразность вообще их использования, а также возможных схем взаимодействия между приватными кэшами и общим.

Сейчас, в 2020 году, кажущаяся очевидность выбора между приватными кэшами и общим, состоящим из банков аналогичного объёма и расположения, разбивается о наличие множества способов сгладить разницу между приватными и общими кэшами как в ту, так и в другую сторону. Поэтому следует перечислить основные отличия этих схем, попутно упомянув такие способы.

1. Приватный кэш имеет постоянную и низкую латентность,

тогда как общий - растущую пропорционально размеру системы.

Для приватных данных аналогичного объёма это почти полностью устраняется различными методами, которые будут описаны далее как оптимизации неравномерного доступа, или NUCA. Время доступа к общим данным в общем кэше увеличивается, но зато они в нём не дублируются как в приватных кэшах.

2. Приватные кэши менее требовательны к сети соединений.

В обычный распределённый общий кэш основная доля попаданий идёт через сеть в удалённые банки, отсюда больший трафик, чем трафик между приватными кэшами и КП, обусловленный промахами в приватные кэши. Но, во-первых, этот трафик может быть уменьшен теми же методами, что и латентность общего кэша. Во-вторых, пока сети на кристалле не ограничивают пропускную способность и могут быть хорошо сконструированы под любую конфигурацию. Сетям соединений, подходящим для такой задачи, посвящена вторая глава.

3. Общий кэш способствует меньшему дублированию.

Данные, используемые несколькими ядрами, могут содержаться в их приватных кэшах, а в общем кэше оычно предполагается наличие только одной копии. За счёт этого общий кэш имеет больший фактический объём, чем приватные кэши такой же конфигурации, что снижает частоту промахов. Эксклюзивная схема обменов между приватными кэшами и вышестоящими может уменьшить это дублирование. Некоторые оптимизации времени доступа в общий кэш подразумевают дублирование [2]. Если делать это дублирование избирательно, оно может быть полезно [3].

4. Общий кэш позволяет неравномерно распределять свой объём,

чтобы выровнять производительность ядер в соответствии с принятой политикой качества обслуживания, или Ро8. Обычно называют четыре типа политик применительно к кэшам: капиталист, коммунист, утилитарист [4] и эли-тист [5]. Есть и глобальные политики, затрагивающие не только кэши [6; 7]. В общем кэше ту или иную политику можно реализовать с помощью механизмов разбиения, которые будут обсуждаться далее.

Однако, приватные кэши также можно модифицировать таким образом, что их объём будет распределяться между ядрами [8—11].

5. Приватные кэши обеспечивают гарантированную производительность.

Из-за динамического перераспределения объёма общего кэша между ядрами ввиду разной интенсивности и характера обращений к нему разных ядер, эффективность работы общего кэша в многозадачной среде вообще говоря мало предсказуема.

Политики Ро8, упомянутые выше, обеспечивают некоторую предсказуемость. В частности, фиксированное разбиение кэша приближает поведение общего кэша к таковому у набора приватных.

Обсуждение ряда менее существенных отличий можно найти в [12].

В целом по всем пунктам можно подвести следующий итог.

Первые два пункта в достаточной степени компенсируются оптимизациями времени доступа и сети соединений. Последние два противоположны по смыслу. Взвешенным, гибким и распространённым компромиссом между ними являются приватные Ь2 кэши и общий кэш Ь3 с механизмом разбиения.

В больших системах кэши промежуточного уровня могут быть общими с некоторыми соседями [13]. В данной работе такой вариант не рассматривается поскольку означает явный уход от парадигмы иМА.

1.3 Снижение времени доступа

Главный недостаток распределённого общего кэша - рост времени доступа при увеличении количества банков. КИСА-оптимизации призваны сгладить эту проблему, помещая строки поближе к использующим их ядрам. Ниже будут рассмотрены несколько базовых. Впоследствии было предложено более десятка новых методов, так или иначе связанных с этим тремя (Таблица 1) [11].

Таблица 1 — Сравнение методов оптимизации времени доступа [11].

Название Распределённый Тип кэша Динам-е разбиение Явное выделение Учитывает расст-я Плит. топол-я QoS Когер-ть

CMP-DNUCA [14] да S + справочник

VR [2] да S + + справочник

CMP-NuRAPID [15] да P + + широковещ.

CMP-SNUCA [16] да S + + справочник

CC [17] да P справочник

ASR [3] да P широковещ.

UMON [18] нет S + широковещ.

V-Hierarchy [19] да S + + справочник

VPC [20] нет S + широковещ.

DSR[21] да P + широковещ.

R-NUCA [22] да S + + справочник

BDCP [23] да P + + + широковещ.

StimulusCache [24] да P + + справочник

Elastic CC [25] да P + + справочник

CloudCache [11] да P + + + + + справ.+шир.

1.3.1 Средствами ОС

При первом подходе к уменьшению времени доступа в кэш операционная система выделяет процессу память таким образом, чтобы кэширование производилось в ближайших к ядру, занимаемому процессом или тредом, банках общего кэша. При этом номер(а) банка(ов), в котором(ых) кэшируется страница памяти, обычно определяется не физическим адресом, а дополнительным полем в таблице страниц.

Любое обращение программы в память как правило сопровождается трансляцией виртуального адреса в физический, для чего из таблицы страниц считывается информация о ней. В эту информацию можно добавить поле, обозначающее, в каких банках следует кэшировать страницу, заполняя его при выделении памяти и передавая считанное значение вместе с запросом, чтобы он маршрутизировался в нужный банк.

Один вариант такой оптимизации обсуждается в [26]. Там предлагается интерливинг страниц по банкам кэша. ОС должна хранить отдельные списки свободных страниц для каждого банка и выделять процессу память в ближайшем банке; общие страницы - случайным образом.

R-NUCA [22] развивает этот подход, предлагая Rotational Interleaving -выделяя в окрестностях каждого ядра кластеры из 1, 4 и 16 банков и для

а)

ядро кэш

R-

ядро кэш

ядро

кэш

- R^

R-

ядро кэш

ядро кэш

ядро

кэш

- R^

R-

ядро

кэш

R-

ядро кэш

ядро кэш

ядро

кэш

- R

б)

ядро кэш

R-

R-

ядро кэш

R-

ядро кэш

R

ядро

кэш

R-

R-

ядро кэш

в

м

00 01 10 11 ,

10 11 00 0l'

оо : 01 i 10 11 *

10 11 00 : oi

Биты 'интерливинга

R

ядро

кэш

R-

R

О

А -16 банков, любое ядро В -1 банк, ядро (0,0) С - 4 банка, ядро (2,2) 0-4 банка, ядро (1,3)

Рисунок 1.5 — R-NUCA: а) «плиточная» топология; б) Rotational Interleaving.

каждой страницы указывая в таблице страниц её ядро и размер кластера; кэш-строки страницы распределяются по этому кластеру интерливингом на основе специальных RID-коэффициентов, распределённых по банкам в соответствии с несколькими битами адреса страницы (Рисунок 1.5).

При всей простоте и дешевизне, данный подход к уменьшению времени доступа имеет два недостатка. Первый заключается в необходимости модицика-ции ОС, включающий некоторый эвристический алгоритм, определяющий какие страницы следует хранить вблизи ядра, а какие распределять по всем банкам, чтобы весь объём кэша был доступен программе. Второй недостаток - рассчёт на фиксированную привязку тредов к ядрам: при случайной пересадке тредов планировщиком, характерной например для многозадачных сценариев, такая оптимизация вряд ли сможет хорошо работать.

1.3.2 Созданием копий

Второй подход к снижению времени доступа в распределённый общий кэш - создание копий строк, к которым обратилось ядро, в ближайшем к нему банке.

Если общий кэш - инклюзивный и используется в качестве справочника, перемещать строку из домашнего банка в другие нельзя, поскольку такое использование кэша предполагает проверку именно домашнего банка. Но можно делать копии в других банках, наделяя эту строку в домашнем банке соответствующей пометкой.

Victim Replication [2] предлагает создание копии в ближайшем банке к ядру, запросившем данные. Ядра, соответсвенно, сначала проверяют ближайший к ним банк, и затем, в случае промаха, домашний банк, благодаря чему снижается время доступа при повторном обращении, если из ближайшего банка строка не была вытеснена. Недостатком этого метода является дублирование всех строк и соответствующее снижение эффективного объёма кэша, что приведёт к повышению частоты промахов.

Более сложным вариантом является ASR [3], добавляющий к предыдущей схеме механизм, определяющий какие строки дублировать. Таким образом может достигаться выигрыш в несколько процентов производительности.

В любом случае данный подход обменивает ёмкость кэша на время доступа. Поскольку уменьшение ёмкости ведёт к повышению частоты промахов, такой тип оптимизаций имеет ограниченное применение.

1.3.3 Миграцией строк

Наиболее часто встречающийся в литературе аппаратный подход к снижению времени доступа основан на использовании кэшем отдельного справочника с отказом от инклюзивности кэша (NCID, [27]) и размещением строк в тех банках, где это лучше для времени доступа, а не строго в домашнем банке. В противовес созданию копий, описанному выше, получается увеличение, а не уменьшение ёмкости кэшей по сравнению с инклюзивной схемой. При этом поддержки со стороны операционной системы не требуется.

Похожие диссертационные работы по специальности «Вычислительные машины и системы», 05.13.15 шифр ВАК

Список литературы диссертационного исследования кандидат наук Недбайло Юрий Александрович, 2021 год

Список литературы

1. Towards Hybrid Last Level Caches for Chip-multiprocessors / L. Zhao [и др.] // SIGARCH Comput. Archit. News. — New York, NY, USA, 2008. — Май. — Т. 36, № 2. — С. 56—63. — URL: http://doi.acm.org/10.1145/1399972. 1399982.

2. Zhang, M. Victim Replication: Maximizing Capacity While Hiding Wire Delay in Tiled Chip Multiprocessors / M. Zhang, K. Asanovic // SIGARCH Comput. Archit. News. — New York, NY, USA, 2005. — Май. — Т. 33, № 2. — С. 336—345. — URL: http://doi.acm.org/10.1145/1080695.1069998.

3. Beckmann, B. M. ASR: Adaptive Selective Replication for CMP Caches / B. M. Beckmann, M. R. Marty, D. A. Wood // Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture. — Washington, DC, USA : IEEE Computer Society, 2006. — С. 443—454. — (MICRO 39). — URL: http://dx.doi.org/10.1109/MICR0.2006.10.

4. Communist, Utilitarian, and Capitalist Cache Policies on CMPs: Caches As a Shared Resource / L. R. Hsu [и др.] // Proceedings of the 15th International Conference on Parallel Architectures and Compilation Techniques. — Seattle, Washington, USA : ACM, 2006. — С. 13—22. — (PACT '06). — URL: http: //doi.acm.org/10.1145/1152154.1152161.

5. QoS Policies and Architecture for Cache/Memory in CMP Platforms / R. Iyer [и др.] // Proceedings of the 2007 ACM SIGMETRICS International Conference on Measurement and Modeling of Computer Systems. — San Diego, California, USA : ACM, 2007. — С. 25—36. — (SIGMETRICS '07). — URL: http://doi.acm.org/10.1145/1254882.1254886.

6. Fairness via Source Throttling: A Configurable and High-performance Fairness Substrate for Multi-core Memory Systems / E. Ebrahimi [и др.] // Proceedings of the Fifteenth Edition of ASPLOS on Architectural Support for Programming Languages and Operating Systems. — Pittsburgh, Pennsylvania, USA : ACM, 2010. — С. 335—346. — (ASPLOS XV). — URL: http://doi.acm.org/10.1145/ 1736020.1736058.

7. Fairness via Source Throttling: A Configurable and High-Performance Fairness Substrate for Multicore Memory Systems / E. Ebrahimi [и др.] // ACM Trans. Comput. Syst. - New York, NY, USA, 2012. - Апр. - Т. 30, № 2. -7:1-7:35. - URL: http://doi.acm.org/10.1145/2166879.2166881.

8. Chang, J. Cooperative Caching for Chip Multiprocessors / J. Chang, G. S. Sohi // SIGARCH Comput. Archit. News. - New York, NY, USA, 2006. - Май. - Т. 34, № 2. - С. 264-276. - URL: http://doi.acm.org/10. 1145/1150019.1136509.

9. Eom, Y.-S. Throttling Capacity Sharing in Private L2 Caches of CMPs / Y.-S. Eom, S.-T. Jhang, C.-S. Jhon//Proceedings of the 2011 ACM Symposium on Research in Applied Computation. - Miami, Florida : ACM, 2011. -С. 20-24. - (RACS '11). - URL: http://doi.acm.org/10.1145/2103380. 2103385.

10. Samih, A. Evaluating Placement Policies for Managing Capacity Sharing in CMP Architectures with Private Caches / A. Samih, Y. Solihin, A. Krishna // ACM Trans. Archit. Code Optim. - New York, NY, USA, 2011. - Окт. - Т. 8, № 3. - 15:1-15:23. - URL: http://doi.acm.org/10.1145/2019608.2019614.

11. Lee, H. CloudCache: Expanding and Shrinking Private Caches / H. Lee, S. Cho, B. R. Childers // Proceedings of the 2011 IEEE 17th International Symposium on High Performance Computer Architecture. - Washington, DC, USA : IEEE Computer Society, 2011. - С. 219-230. - (HPCA '11). - URL: http://dl.acm. org/citation.cfm?id=2014698.2014860.

12. Balasubramonian, R. Multi-Core Cache Hierarchies / R. Balasubramonian, N. Jouppi, N. Muralimanohar. - Morgan & Claypool Publishers, 2011. -(Synthesis Lectures on Computer Architecture). - URL: https://books.google. co.uk/books?id=Uc9cAQAAQBAJ.

13. Martin, M. M. K. Why On-chip Cache Coherence is Here to Stay / M. M. K. Martin, M. D. Hill, D. J. Sorin // Commun. ACM. - New York, NY, USA, 2012. - Июль. - Т. 55, № 7. - С. 78-89. - URL: http://doi.acm. org/10.1145/2209249.2209269.

14. Beckmann, B. M. Managing Wire Delay in Large Chip-Multiprocessor Caches / B. M. Beckmann, D. A. Wood // Proceedings of the 37th Annual IEEE/ACM International Symposium on Microarchitecture. - Portland, Oregon : IEEE

Computer Society, 2004. — С. 319—330. — (MICRO 37). — URL: http://dx. doi.org/10.1109/MICRO.2004.21.

15. Chishti, Z. Optimizing Replication, Communication, and Capacity Allocation in CMPs / Z. Chishti, M. D. Powell, T. N. Vijaykumar // Proceedings of the 32Nd Annual International Symposium on Computer Architecture. — Washington, DC, USA : IEEE Computer Society, 2005. — С. 357—368. — (ISCA '05). — URL: http://dx.doi.org/10.1109/ISCA.2005.39.

16. A NUCA Substrate for Flexible CMP Cache Sharing / J. Huh [и др.] // Proceedings of the 19th Annual International Conference on Supercomputing. — Cambridge, Massachusetts : ACM, 2005. — С. 31—40. — (ICS '05). — URL: http://doi.acm.org/10.1145/1088149.1088154.

17. Chang, J. Cooperative Cache Partitioning for Chip Multiprocessors / J. Chang, G. S. Sohi // Proceedings of the 21st Annual International Conference on Supercomputing. — Seattle, Washington : ACM, 2007. — С. 242—252. — (ICS '07). — URL: http://doi.acm.org/10.1145/1274971.1275005.

18. Qureshi, M. K. Utility-based partitioning of shared caches / M. K. Qureshi, Y. N. Patt. — 2006. — URL: http://slideplayer.us/slide/248596. MICRO.

19. Marty, M. R. Virtual Hierarchies to Support Server Consolidation / M. R. Marty, M. D. Hill // SIGARCH Comput. Archit. News. — New York, NY, USA, 2007. — Июнь. — Т. 35, № 2. — С. 46—56. — URL: http://doi.acm.org/10.1145/1273440.1250670.

20. Nesbit, K. J. Virtual Private Caches / K. J. Nesbit, J. Laudon, J. E. Smith // Proceedings of the 34th Annual International Symposium on Computer Architecture. — San Diego, California, USA : ACM, 2007. — С. 57—68. — (ISCA '07). — URL: http://doi.acm.org/10.1145/1250662.1250671.

21. Qureshi, M. K. Adaptive Spill-Receive for robust high-performance caching in CMPs. / M. K. Qureshi // HPCA. — IEEE Computer Society, 16.03.2009. — С. 45—54. — URL: http://dblp.uni-trier.de/db/conf/hpca/hpca2009.html# Qureshi09.

22. Reactive NUCA: Near-optimal Block Placement and Replication in Distributed Caches / N. Hardavellas [и др.] // SIGARCH Comput. Archit. News. — New York, NY, USA, 2009. — Июнь. — Т. 37, № 3. — С. 184—195. — URL: http: //doi.acm.org/10.1145/1555815.1555779.

23. Kaseridis, D. Bank-aware Dynamic Cache Partitioning for Multicore Architectures / D. Kaseridis, J. Stuecheli, L. K. John // Proceedings of the 2009 International Conference on Parallel Processing. — Washington, DC, USA : IEEE Computer Society, 2009. — С. 18—25. — (ICPP '09). — URL: http://dx.doi.org/10.1109/ICPP.2009.55.

24. Lee, H. StimulusCache: Boosting performance of chip multiprocessors with excess cache / H. Lee, S. Cho, B. Childers // High Performance Computer Architecture (HPCA), 2010 IEEE 16th International Symposium on. — 01.2010. — С. 1—12. — URL: http://dx.doi.org/10.1109/HPCA.2010.5416644.

25. Herrero, E. Elastic Cooperative Caching: An Autonomous Dynamically Adaptive Memory Hierarchy for Chip Multiprocessors / E. Herrero, J. Gonzalez, R. Canal // Proceedings of the 37th Annual International Symposium on Computer Architecture. — Saint-Malo, France : ACM, 2010. — С. 419—428. — (ISCA '10). — URL: http://doi.acm.org/10.1145/1815961. 1816018.

26. Cho, S. Managing Distributed, Shared L2 Caches Through OS-Level Page Allocation / S. Cho, L. Jin // Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture. — Washington, DC, USA : IEEE Computer Society, 2006. — С. 455—468. — (MICRO 39). — URL: http: //dx.doi.org/10.1109/MICR0.2006.31.

27. NCID: A Non-inclusive Cache, Inclusive Directory Architecture for Flexible and Efficient Cache Hierarchies / L. Zhao [и др.] // Proceedings of the 7th ACM International Conference on Computing Frontiers. — Bertinoro, Italy : ACM, 2010. — С. 121—130. — (CF '10). — URL: http://doi.acm.org/10.1145/ 1787275.1787314.

28. Asanovic, K. Victim Migration: Dynamically Adapting Between Private and Shared CMP Caches : тех. отч. / K. Asanovic, M. Zhang ; Computer Science ; Artificial Intelligence Labratory. — 10.2005. — URL: http://dspace.mit.edu/ handle/1721.1/30574.

29. Power7: IBM's Next-Generation Server Processor / R. Kalla [и др.] // IEEE Micro. — Los Alamitos, CA, USA, 2010. — Март. — Т. 30, № 2. — С. 7—15. — URL: http://dx.doi.org/10.1109/MM.2010.38.

30. Herrero, E. Distributed Cooperative Caching / E. Herrero, J. Gonzalez, R. Canal // Proceedings of the 17th International Conference on Parallel Architectures and Compilation Techniques. — Toronto, Ontario, Canada : ACM, 2008. — C. 134—143. — (PACT '08). — URL: http://doi.acm.org/ 10.1145/1454115.1454136.

31. Rolân, D. Adaptive Line Placement with the Set Balancing Cache / D. Rolan, B. B. Fraguela, R. Doallo // Proceedings of the 42Nd Annual IEEE/ACM International Symposium on Microarchitecture. — New York, New York : ACM, 2009. — C. 529—540. — (MICRO 42). — URL: http://doi.acm.org/ 10.1145/1669112.1669178.

32. Qureshi, M. K. The V-Way Cache: Demand Based Associativity via Global Replacement / M. K. Qureshi, D. Thompson, Y. N. Patt // Proceedings of the 32Nd Annual International Symposium on Computer Architecture. — Washington, DC, USA : IEEE Computer Society, 2005. — C. 544—555. — (ISCA '05). — URL: http://dx.doi.org/10.1109/ISCA.2005.52.

33. Using Dead Blocks As a Virtual Victim Cache / S. M. Khan [h gp.] // Proceedings of the 19th International Conference on Parallel Architectures and Compilation Techniques. — Vienna, Austria : ACM, 2010. — C. 489—500. — (PACT '10). — URL: http://doi.acm.org/10.1145/1854273.1854333.

34. Amoeba-Cache: Adaptive Blocks for Eliminating Waste in the Memory Hierarchy / S. Kumar [h gp.] // Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture. — Vancouver, B.C., CANADA : IEEE Computer Society, 2012. — C. 376—388. — (MICRO-45). — URL: http://dx.doi.org/10.1109/MICR0.2012.42.

35. Seznec, A. A Case for Two-way Skewed-associative Caches / A. Seznec // Proceedings of the 20th Annual International Symposium on Computer Architecture. — San Diego, California, USA : ACM, 1993. — C. 169—178. — (ISCA '93). — URL: http://doi.acm.org/10.1145/165123.165152.

36. Seznec, A. A New Case for Skewed-Associativity : Tex. oth. / A. Seznec ; Internal Publication No 1114, IRISA-INRIA. — 1997. — URL: http://hal.inria. fr/inria-00073481/en/.

37. Spjuth, M. Skewed Caches from a Low-power Perspective / M. Spjuth, M. Karlsson, E. Hagersten // Proceedings of the 2Nd Conference on Computing Frontiers. — Ischia, Italy : ACM, 2005. — С. 152—160. — (CF '05). — URL: http://doi.acm.org/10.1145/1062261.1062289.

38. Djordjalian, A. Minimally-Skewed-Associative Caches / A. Djordjalian // Proceedings of the 14th Symposium on Computer Architecture and High Performance Computing. — Washington, DC, USA : IEEE Computer Society, 2002. — С. 100—. — (SBAC-PAD '02). — URL: http://dl.acm.org/citation.cfm? id=862895.883872.

39. Sanchez, D. The ZCache: Decoupling Ways and Associativity / D. Sanchez,

C. Kozyrakis // Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture. — Washington, DC, USA : IEEE Computer Society, 2010. — С. 187—198. — (MICRO '43). — URL: http://dx.doi.org/10. 1109/MICRO.2010.20.

40. Wang, R. Futility Scaling: High-Associativity Cache Partitioning / R. Wang, L. Chen // Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture. — Cambridge, United Kingdom : IEEE Computer Society, 2014. — С. 356—367. — (MICRO-47). — URL: http : //dx.doi.org/10.1109/MICRO.2014.46.

41. Sanchez, D. Vantage: Scalable and Efficient Fine-Grain Cache Partitioning /

D. Sanchez, C. Kozyrakis // SIGARCH Comput. Archit. News. — New York, NY, USA, 2011. — Июнь. — Т. 39, № 3. — С. 57—68. — URL: https://doi.org/ 10.1145/2024723.2000073.

42. Mittal, S. A Survey of Techniques for Cache Partitioning in Multicore Processors / S. Mittal // ACM Comput. Surv. — New York, NY, USA, 2017. — Май. — Т. 50, № 2. — URL: https://doi.org/10.1145/3062394.

43. Ros, A. A Scalable Organization for Distributed Directories / A. Ros, M. E. Acacio, J. M. Garcia // J. Syst. Archit. — USA, 2010. — Февр. — Т. 56, № 2/3. — С. 77—87. — URL: https://doi.org/10.1016/j.sysarc.2009.11.006.

44. Sanchez, D. SCD: A scalable coherence directory with flexible sharer set encoding / D. Sanchez, C. Kozyrakis // IEEE International Symposium on High-Performance Comp Architecture. — 2012. — С. 1—12.

45. Achieving Non-Inclusive Cache Performance with Inclusive Caches: Temporal Locality Aware (TLA) Cache Management Policies / A. Jaleel [и др.] // Proceedings of the 2010 43rd Annual IEEE/ACM International Symposium on Microarchitecture. — Washington, DC, USA : IEEE Computer Society, 2010. — С. 151—162. — (MICRO '43). — URL: http://dx.doi.org/10.1109/MICR0.2010. 52.

46. Кожин, А. С. Оптимизация общего кэша третьего уровня микропроцессора "Эльбрус-8С" / А. С. Кожин, Ю. А. Недбайло // Вопросы радиоэлектроники. — 2015. — Т. 9, № 2. — С. 151—163.

47. FLEXclusion: Balancing Cache Capacity and On-chip Bandwidth via Flexible Exclusion / J. Sim [и др.] // SIGARCH Comput. Archit. News. — New York, NY, USA, 2012. — Июнь. — Т. 40, № 3. — С. 321—332. — URL: http://doi. acm.org/10.1145/2366231.2337196.

48. Недбайло, Ю. А. Проблемы масштабирования производительности подсистемы памяти многоядерного микропроцессора и методы их решения / Ю. А. Недбайло // Вопросы радиоэлектроники. — 2018. — № 2. — С. 23—31.

49. Nedbailo, Y. Fast and scalable simulation framework for large in-order chip multiprocessors / Y. Nedbailo // Proceedings of the FRUCT'26. — FRUCT Oy, Finland, 2020.

50. De Micheli, G. Networks on Chips: Technology and Tools / G. De Micheli, L. Benini. — Morgan Kaufmann, 2006. — (Systems on Silicon). — URL: http: / / www. amazon. com / Networks - Chips - Technology - Systems - Silicon / dp/0123705215.

51. Dally, W. Principles and Practices of Interconnection Networks / W. Dally, B. Towles. — San Francisco, CA, USA : Morgan Kaufmann Publishers Inc., 2004. — URL: http://www.amazon.com/Principles-Practices-Interconnection-Networks-Architecture/dp/0122007514.

52. Lecler, /.-/.Application driven network-on-chip architecture exploration & refinement for a complex SoC / J.-J. Lecler, G. Baillieu // Design Autom. for Emb. Sys. — 2011. — Июнь. — Т. 15. — С. 133—158.

53. Dobkin, R. ( Two-phase Synchronization with Sub-cycle Latency / R. ( Dobkin, R. Ginosar // Integr. VLSI J. — Amsterdam, The Netherlands, The Netherlands, 2009. — Июнь. — Т. 42, № 3. — С. 367—375. — URL: http://dx.doi.org/10. 1016/j.vlsi.2008.11.006.

54. On-Chip Interconnection Architecture of the Tile Processor / D. Wentzlaff [и др.] // IEEE Micro. — Los Alamitos, CA, USA, 2007. — Сент. — Т. 27, № 5. — С. 15—31. — URL: http://dx.doi.org/10.1109/MM.2007.89.

55. SkyLake-SP: A 14nm 28-Core Xeon® processor / S. M. Tam [и др.] // 2018 IEEE International Solid - State Circuits Conference - (ISSCC). — 2018. — С. 34—36.

56. Express Virtual Channels: Towards the Ideal Interconnection Fabric / A. Kumar [и др.] // Proceedings of the 34th Annual International Symposium on Computer Architecture. — San Diego, California, USA : ACM, 2007. — С. 150—161. — (ISCA '07). — URL: http://doi.acm.org/10.1145/1250662. 1250681.

57. Kumar, A. Token Flow Control / A. Kumar, L.-S. Peh, N. K. Jha // Proceedings of the 41st Annual IEEE/ACM International Symposium on Microarchitecture. — Washington, DC, USA : IEEE Computer Society, 2008. — С. 342—353. — (MICRO 41). — URL: http://dx.doi.org/10.1109/MICRO.2008. 4771803.

58. Moscibroda, T. A Case for Bufferless Routing in On-Chip Networks / T. Moscibroda, O. Mutlu // SIGARCH Comput. Archit. News. — New York, NY, USA, 2009. — Июнь. — Т. 37, № 3. — С. 196—207. — URL: https: //doi.org/10.1145/1555815.1555781.

59. Toward Ideal On-Chip Communication Using Express Virtual Channels / A. Kumar [и др.] // IEEE Micro. — Los Alamitos, CA, USA, 2008. — Янв. — Т. 28, № 1. — С. 80—90. — URL: http://dx.doi.org/10.1109/MM.2008.18.

60. NoC with Near-Ideal Express Virtual Channels Using Global-Line Communication / T. Krishna [и др.] // Proceedings of the 2008 16th IEEE Symposium on High Performance Interconnects. — Washington, DC, USA : IEEE Computer Society, 2008. — С. 11—20. — (HOTI '08). — URL: http: //dx.doi.org/10.1109/HOTI.2008.22.

61. Express Virtual Channels with Capacitively Driven Global Links / T. Krishna [и др.] // IEEE Micro. — Los Alamitos, CA, USA, 2009. — Июль. — Т. 29, № 4. — С. 48—61. — URL: http://dx.doi.org/10.1109/MM.2009.64.

62. Express Virtual Channels with Taps (EVC-T): A Flow Control Technique for Network-on-Chip (NoC) in Manycore Systems / C. Chen [и др.] // Proceedings of the 2011 IEEE 19th Annual Symposium on High Performance Interconnects. — Washington, DC, USA : IEEE Computer Society, 2011. — С. 1—10. — (HOTI '11). — URL: http://dx.doi.org/10.1109/HOTI.2011.11.

63. Kilo-NOC: A Heterogeneous Network-on-chip Architecture for Scalability and Service Guarantees / B. Grot [и др.] // SIGARCH Comput. Archit. News. — New York, NY, USA, 2011. — Июнь. — Т. 39, № 3. — С. 401—412. — URL: http://doi.acm.org/10.1145/2024723.2000112.

64. SMART: A Single-Cycle Reconfigurable NoC for SoC Applications / C.-H. O. Chen [и др.] // Proceedings of the Conference on Design, Automation and Test in Europe. — Grenoble, France : EDA Consortium, 2013. — С. 338—343. — (DATE '13).

65. Perez, I. SMART++: Reducing Cost and Improving Efficiency of Multi-Hop Bypass in NoC Routers /1. Perez, E. Vallejo, R. Beivide // Proceedings of the 13th IEEE/ACM International Symposium on Networks-on-Chip. — New York, New York : Association for Computing Machinery, 2019. — (NOCS '19). — URL: https://doi.org/10.1145/3313231.3352364.

66. A Flow Control Mechanism to Avoid Message Deadlock in K-ary N-cube Networks / C. Carrion [и др.] // Proceedings of the Fourth International Conference on High-Performance Computing. — Washington, DC, USA : IEEE Computer Society, 1997. — С. 322—. — (HIPC '97). — URL: http://dl.acm.org/ citation.cfm?id=523991.938951.

67. Adaptive Bubble Router: A Design to Improve Performance in Torus Networks / V. Puente [и др.] // Proceedings of the 1999 International Conference on Parallel Processing. — Washington, DC, USA : IEEE Computer Society, 1999. — С. 58—. — (ICPP '99). — URL: http://dl.acm.org/citation. cfm?id=850940.852882.

68. The Adaptive Bubble Router / V. Puente [h gp.] // J. Parallel Distrib. Comput. — Orlando, FL, USA, 2001. — CeHT. — T. 61, № 9. — C. 1180—1208. — URL: http://dx.doi.org/10.1006/jpdc.2001.1746.

69. Improving Parallel System Performance by Changing the Arrangement of the Network Links / V. Puente [h gp.] // Proceedings of the 14th International Conference on Supercomputing. — Santa Fe, New Mexico, USA : ACM, 2000. — C. 44—53. — (ICS '00). — URL: http://doi.acm.org/10.1145/335231. 335236.

70. A New Routing Mechanism for Networks with Irregular Topology / V. Puente [h gp.] // Proceedings of the 2001 ACM/IEEE Conference on Supercomputing. — Denver, Colorado : ACM, 2001. — C. 31—31. — (Supercomputing '01). — URL: http://doi.acm.org/10.1145/582034.582065.

71. Dimensional Bubble Flow Control and Fully Adaptive Routing in the 2-D Mesh Network on Chip / X. Canwen [h gp.] // Proceedings of the 2008 IEEE/IFIP International Conference on Embedded and Ubiquitous Computing - Volume 01. — Washington, DC, USA : IEEE Computer Society, 2008. — C. 353—358. — (EUC '08). — URL: http://dx.doi.org/10.1109/EUC.2008.49.

72. Chen, L. Critical Bubble Scheme: An Efficient Implementation of Globally Aware Network Flow Control / L. Chen, R. Wang, T. M. Pinkston // Proceedings of the 2011 IEEE International Parallel & Distributed Processing Symposium. — Washington, DC, USA : IEEE Computer Society, 2011. — C. 592—603. — (IPDPS '11). —URL: http://dx.doi.org/10.1109/IPDPS.2011.63.

73. Adaptive Bubble Scheme with Minimal Buffers in Torus Networks / W. Yongqing [h gp.] // Proceedings of the 2012 IEEE 14th International Conference on High Performance Computing and Communication & 2012 IEEE 9th International Conference on Embedded Software and Systems. — Washington, DC, USA : IEEE Computer Society, 2012. — C. 914—919. — (HPCC '12). — URL: http://dx.doi.org/10.1109/HPCC.2012.131.

74. Wang, R. Bubble Coloring: Avoiding Routing- and Protocol-induced Deadlocks with Minimal Virtual Channel Requirement / R. Wang, L. Chen, T. M. Pinkston // Proceedings of the 27th International ACM Conference on International Conference on Supercomputing. — Eugene, Oregon, USA :

ACM, 2013. — С. 193—202. — (ICS '13). — URL: http://doi.acm.org/10.1145/ 2464996.2465436.

75. Jerger, N. E. Leaving One Slot Empty: Flit Bubble Flow Control for Torus Cache-coherent NoCs / N. E. Jerger, Z. Liu, Z. Wang // IEEE Transactions on Computers. — Los Alamitos, CA, USA, 2013. — Т. 99, PrePrints. — С. 1.

76. Chen, L. Worm-Bubble Flow Control / L. Chen, T. M. Pinkston // Proceedings of the 2013 IEEE 19th International Symposium on High Performance Computer Architecture (HPCA). — Washington, DC, USA : IEEE Computer Society, 2013. — С. 366—377. — (HPCA '13). — URL: http://dx.doi.org/10. 1109/HPCA.2013.6522333.

77. Wang, Y. Wormhole Bubble in Torus Networks / Y. Wang, M. Zhang // Computer Engineering and Technology. Т. 396 / под ред. W. Xu [и др.]. — Springer Berlin Heidelberg, 2013. — С. 73—80. — (Communications in Computer and Information Science). — URL: http://dx.doi.org/10.1007/978-3-642-41635-4_8.

78. Duato, J. A Necessary and Sufficient Condition for Deadlock-Free Adaptive Routing in Wormhole Networks / J. Duato // IEEE Trans. Parallel Distrib. Syst. — 1995. — Окт. — Т. 6, № 10. — С. 1055—1067. — URL: https://doi.org/ 10.1109/71.473515.

79. Fair Queuing Memory Systems / K. J. Nesbit [и др.] // Proceedings of the 39th Annual IEEE/ACM International Symposium on Microarchitecture. — Washington, DC, USA : IEEE Computer Society, 2006. — С. 208—222. — (MICRO 39). — URL: http://dx.doi.org/10.1109/MICRO.2006.24.

80. Papaefstathiou, I. A Buffered Crossbar-based Chip Interconnection Framework Supporting Quality of Service /1. Papaefstathiou, G. Kornaros, N. Chrysos // Proceedings of the 17th ACM Great Lakes Symposium on VLSI. — Stresa-Lago Maggiore, Italy : ACM, 2007. — С. 90—95. — (GLSVLSI '07). — URL: http://doi.acm.org/10.1145/1228784.1228810.

81. Lee, J. W. Globally-Synchronized Frames for Guaranteed Quality-of-Service in On-Chip Networks / J. W. Lee, M. C. Ng, K. Asanovic // Proceedings of the 35th Annual International Symposium on Computer Architecture. — Washington, DC, USA : IEEE Computer Society, 2008. — С. 89—100. — (ISCA '08). — URL: http://dx.doi.org/10.1109/ISCA.2008.31.

82. Grot, B. Preemptive Virtual Clock: A Flexible, Efficient, and Cost-effective QOS Scheme for Networks-on-chip / B. Grot, S. W. Keckler, O. Mutlu // Proceedings of the 42Nd Annual IEEE/ACM International Symposium on Microarchitecture. — New York, New York : ACM, 2009. — C. 268—279. — (MICRO 42). — URL: http://doi.acm.org/10.1145/1669112.1669149.

83. Aergia: Exploiting Packet Latency Slack in On-chip Networks / R. Das [h gp.] // SIGARCH Comput. Archit. News. — New York, NY, USA, 2010. — hwhb. — T. 38, № 3. — C. 106—116. — URL: http://doi.acm.org/10.1145/ 1816038.1815976.

84. Rate-based QoS Techniques for Cache/Memory in CMP Platforms / A. Herdrich [h gp.] // Proceedings of the 23rd International Conference on Supercomputing. — Yorktown Heights, NY, USA : ACM, 2009. — C. 479—488. — (ICS '09). — URL: http://doi.acm.org/10.1145/1542275. 1542342.

85. Jahre, M. A Light-weight Fairness Mechanism for Chip Multiprocessor Memory Systems / M. Jahre, L. Natvig // Proceedings of the 6th ACM Conference on Computing Frontiers. — Ischia, Italy : ACM, 2009. — C. 1—10. — (CF '09). — URL: http://doi.acm.org/10.1145/1531743.1531747.

86. AMBA AXI and ACE Protocol Specification. — ARM, 2013. — URL: http: //infocenter.arm.com/help/topic/com.arm.doc.ihi0022-.

87. Schwaderer, W. D. Introduction to Open Core Protocol: Fastpath to System-on-Chip Design / W. D. Schwaderer. — Springer Publishing Company, Incorporated, 2012. — URL: http : / / www . springer . com / gb / book / 9781461401025.

88. A Gracefully Degrading and Energy-Efficient Modular Router Architecture for On-Chip Networks / J. Kim [h gp.] // Proceedings of the 33rd Annual International Symposium on Computer Architecture. — USA : IEEE Computer Society, 2006. — C. 4—15. — (ISCA '06). — URL: https://doi.org/10.1109/ ISCA.2006.6.

89. Design of a High-Throughput Distributed Shared-Buffer NoC Router / R. S. Ramanujam [h gp.] // Proceedings of the 2010 Fourth ACM/IEEE International Symposium on Networks-on-Chip. — Washington, DC, USA :

IEEE Computer Society, 2010. - С. 69-78. - (NOCS '10). - URL: http: //dx.doi.org/10.1109/NOCS.2010.17.

90. Harteros, K. G. Fast parallel comparison circuits for scheduling / K. G. Harteros, M. Katevenis // Institute of Computer Science, FORTH. — 2002.

91. Jain, R. A quantitative measure of fairness and discrimination for resource allocation in shared computer system. Т. 38 / R. Jain, D.-M. Chiu, W. R. Hawe. — Eastern Research Laboratory, Digital Equipment Corporation Hudson, MA, 1984.

92. MOCA: An Inter/Intra-Chip Optical Network for Memory / Z. Wang [и др.] // Proceedings of the 54th Annual Design Automation Conference 2017. — Austin, TX, USA : ACM, 2017. - 86:1-86:6. - (DAC '17). - URL: http: //doi.acm.org/10.1145/3061639.3062286.

93. Power/Performance Trade-Offs in Real-Time SDRAM Command Scheduling / S. Goossens [и др.] // IEEE Transactions on Computers. - 2016. - Июнь. -Т. 65, №6. -С. 1882-1895.

94. Technology, M. TN-40-03: Using DDR4 in Networking Subsystems / M. Technology. - 2014. - URL: https://www.micron.com/-/media/client/ global / documents / products / technical - note / dram / tn _ 4003 _ ddr4 _ network _ design_guide.pdf. Technical Note.

95. Guided Region Prefetching: A Cooperative Hardware/Software Approach / Z. Wang [и др.] // SIGARCH Comput. Archit. News. - New York, NY, USA, 2003. - Май. - Т. 31, № 2. - С. 388-398. - URL: http://doi.acm.org/10. 1145/871656.859663.

96. Adaptive Runtime-Assisted Block Prefetching on Chip-Multiprocessors / V. Garcia [и др.] // International Journal of Parallel Programming. - 2017. -Июнь. - Т. 45, № 3. - С. 530-550. - URL: https://doi.org/10.1007/s10766-016-0431-8.

97. Mittal, S. A Survey of Recent Prefetching Techniques for Processor Caches / S. Mittal // ACM Comput. Surv. - New York, NY, USA, 2016. - Авг. - Т. 49, № 2. - 35:1-35:35. - URL: http://doi.acm.org/10.1145/2907071.

98. BuMP: Bulk Memory Access Prediction and Streaming / S. Volos [h gp.] // Proceedings of the 47th Annual IEEE/ACM International Symposium on Microarchitecture. — Cambridge, United Kingdom : IEEE Computer Society, 2014. — C. 545—557. — (MICRO-47). — URL: http://dx.doi.org/10.1109/ MICRO.2014.44.

99. US7047374B2. Memory read/write reordering / US7047374B2. — 2003. — Intel Corporation (Santa Clara, CA).

100. Gu, Y. CART: Cache Access Reordering Tree for Efficient Cache and Memory Accesses in GPUs / Y. Gu, L. Chen // 2018 IEEE 36th International Conference on Computer Design (ICCD). — 10.2018. — C. 250—257.

101. Petrov, I. A. Development of memory controller for today's Elbrus microprocessors / I. A. Petrov // Radio industry (Russia). — 2019. — T. 29 (3). — C. 41—47.

102. Poroshin, P. An Exploration of Approaches to Instruction Pipeline Implementation for Cycle-Accurate Simulators of Elbrus Microprocessors / P. Poroshin, A. Meshkov // Proceedings of the Institute for System Programming. — Austin, TX, USA, 2019. — C. 47—58. — URL: http : //doi.acm.org/10.1145/3061639.3062286.

103. The Gem5 Simulator / N. Binkert [h gp.] // SIGARCH Comput. Archit. News. — New York, NY, USA, 2011. — Abe — T. 39, № 2. — C. 1—7. — URL: https://doi.org/10.1145/2024716.2024718.

104. Graphite: A distributed parallel simulator for multicores / J. E. Miller [h gp.] // HPCA - 16 2010 The Sixteenth International Symposium on High-Performance Computer Architecture. — 01.2010. — C. 1—12.

105. Carlson, T. E. Sniper: Exploring the level of abstraction for scalable and accurate parallel multi-core simulation / T. E. Carlson, W. Heirman, L. Eeckhout// SC '11: Proceedings of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis. — 11.2011. — C. 1—12.

106. Sanchez, D. ZSim: Fast and Accurate Microarchitectural Simulation of Thousand-Core Systems / D. Sanchez, C. Kozyrakis // Proceedings of the 40th Annual International Symposium on Computer Architecture. — Tel-Aviv,

Israel : Association for Computing Machinery, 2013. — C. 475—486. — (ISCA '13). — URL: https://doi.org/10.1145/2485922.2485963.

107. Exploring system performance using elastic traces: Fast, accurate and portable / R. Jagtap [h gp.] // 2016 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation (SAMOS). — 07.2016. — C. 96—105.

108. Hestness, /.Netrace: Dependency-driven Trace-based Network-on-chip Simulation / J. Hestness, B. Grot, S. W. Keckler // Proceedings of the Third International Workshop on Network on Chip Architectures. — Atlanta, Georgia, USA : ACM, 2010. — C. 31—36. — (NoCArc '10). — URL: http: //doi.acm.org/10.1145/1921249.1921258.

109. Attackboard: A novel dependency-aware traffic generator for exploring NoC design space / Y. S. Huang [h gp.] // DAC Design Automation Conference 2012. — 06.2012. — C. 376—381.

110. Inferring packet dependencies to improve trace based simulation of on-chip networks / C. Nitta [h gp.] // Proceedings of the Fifth ACM/IEEE International Symposium. — 05.2011. — C. 153—160.

111. Self-related traces: An alternative to full-system simulation for NoCs / F. Trivino [h gp.] // 2011 International Conference on High Performance Computing Simulation. — 07.2011. — C. 819—824.

112. Trace-driven simulation of multithreaded applications / A. Rico [h gp.] // (IEEE ISPASS) IEEE International Symposium on Performance Analysis of Systems and Software. — 04.2011. — C. 87—96.

113. SynchroTrace: Synchronization-Aware Architecture-Agnostic Traces for Lightweight Multicore Simulation of CMP and HPC Workloads / K. Sangaiah [h gp.] // ACM Trans. Archit. Code Optim. — New York, NY, USA, 2018. — MapT. — T. 15, № 1. — URL: https://doi.org/10.1145/3158642.

114. SMARTS: Accelerating Microarchitecture Simulation via Rigorous Statistical Sampling / R. E. Wunderlich [h gp.] // Proceedings of the 30th Annual International Symposium on Computer Architecture. — San Diego, California : Association for Computing Machinery, 2003. — C. 84—97. — (ISCA '03). — URL: https://doi.org/10.1145/859618.859629.

115. MINIME: Pattern-Aware Multicore Benchmark Synthesizer / E. Deniz [h gp.] // IEEE Transactions on Computers. — 2015. — abe — T. 64, № 8. — C. 2239—2252.

116. Ganesan, K. Synthesizing memory-level parallelism aware miniature clones for SPEC CPU2006 and ImplantBench workloads / K. Ganesan, J. Jo, L. K. John // 2010 IEEE International Symposium on Performance Analysis of Systems Software (ISPASS). — 03.2010. — C. 33—44.

117. Ganesan, K. Automatic Generation of Miniaturized Synthetic Proxies for Target Applications to Efficiently Design Multicore Processors / K. Ganesan, L. K. John // IEEE Transactions on Computers. — 2014. — Anp. — T. 63, № 4. — C. 833—846.

118. Conte, T. M. Reducing state loss for effective trace sampling of superscalar processors / T. M. Conte, M. A. Hirsch, K. N. Menezes // Proceedings International Conference on Computer Design. VLSI in Computers and Processors. — 10.1996. — C. 468—477.

119. Automatically Characterizing Large Scale Program Behavior / T. Sherwood [h gp.] // Proceedings of the 10th International Conference on Architectural Support for Programming Languages and Operating Systems. — San Jose, California : Association for Computing Machinery, 2002. — C. 45—57. — (ASPLOS X). — URL: https://doi.org/10.1145/605397.605403.

120. Limaye, A. A Workload Characterization of the SPEC CPU2017 Benchmark Suite / A. Limaye, T. Adegbija // 2018 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS). — 04.2018. — C. 149—158.

121. Poroshin, P. A. DEVELOPMENT OF SIMULATOR WITH SUPPORT OF CYCLE-ACCURATE SIMULATION MODE ON BASE OF THE EXISTING INSTRUCTION SET SIMULATOR OF THE ELBRUS ARCHITECTURE / P. A. Poroshin, A. N. Meshkov, S. V. Chernyh // Voprosy radioelektroniki. — 2018. — T. 2. — C. 69—75.

122. Stunkel, C. B. Collecting address traces from parallel computers / C. B. Stunkel, B. Janssens, W. K. Fuchs // Proceedings of the Twenty-Fourth Annual Hawaii International Conference on System Sciences. T. i. — 01.1991. — 373—383 vol.1.

123. http://zlib.net/.

124. Kim, Y. Ramulator: A Fast and Extensible DRAM Simulator / Y. Kim, W. Yang, O. Mutlu // IEEE Computer Architecture Letters. — 2016. — ^hb. — T. 15, № 1. — C. 45—49.

Список рисунков

1.1 Пример сет-ассоциативного кэша............................................11

1.2 Кэши снижают поток обращений в память..................................11

1.3 Диаграмма состояний протокола MOESI....................................12

1.4 Распределённые общий кэш и справочник с делением кэша на приватную и общую части [1]................................................13

1.5 R-NUCA: а) «плиточная» топология; б) Rotational Interleaving............17

1.6 Виртуальный victim-кэш в ближайшем банке L3.............19

1.7 Кооперативные кэши.............................21

1.8 Точка сериализации 8-ядерной системы с 4-way кооперативными L2-кэшами [8].................................22

1.9 QoS в кооперативных кэшах на основе Set Dueling [21].........23

1.10 Структура узла ElasticCC [25]........................23

1.11 Устройство разбиения ElasticCC [25]....................24

1.12 Арбитр ElasticCC [25]............................24

1.13 CloudCache [11] a) распределение кэша в процессоре с 9 активными ядрами, b) пример распределения двух порций по банкам, c) аппаратное представлений порций в ядре.................25

1.14 CloudCache [11] a) дополнительные таблицы в кэше, b) представление порций в ядре и в кэше...................26

1.15 Доля попаданий и промахов в обычном кэше и с двумя вариантами

SBC [31]....................................28

1.16 V-Way кэш [32]................................29

1.17 Глобальное замещение Reuse Replacement [32]..............29

1.18 Уменьшение частоты промахов в L2 кэш по отношению к 256KB

8-way [32]...................................30

1.19 Структура Amoeba-кэша [34]........................30

1.20 Поиск в Amoeba-кэше [34]..........................30

1.21 Доля промахов в 8-way SA, 4-way SkA и 16-way SA кэшах L2 [36]. Результат SkA с ENRU изображён жёлтым.................32

1.22 Принцип работы ZCache...........................33

1.23 Алгоритм замещения в ZCache [39].....................34

1.24 Трафик при: а) точной маске; б) загрублённой до 32 бит [13]......37

1.25 Обновление справочника: а) гашение копий; б) опрос кэшей; в) оповещение..................................38

1.26 Производительность 64- и 256-ядерных моделей при разной инклюзивно сти Ь3 кэша ..........................41

1.27 Производительность 64-ядерной модели при разных ширине и разбиении Ь3 кэша .............................43

1.28 Производительность 64- и 256-ядерных моделей при разном разбиении Ь3 кэша .............................43

1.29 Производительность в однопоточных сценариях а) 64-ядерной

модели б) 256-ядерной...........................45

2.1 Формулы для среднего числа шагов и пропускной способности на абонента п-мерного кольца и п-мерной сетки при равномерном

трафике [51]..................................52

2.2 Топологии: а) прямая, б) концентрированная (c=4)............53

2.3 Теоретическая пропускная способность кольца и 2Б-сетки.......53

2.4 Топологии: a) двумерная сетка, б) сложенное двумерное кольцо.....54

2.5 Расположение банков: а) парно с ядрами, б) по центру..........55

2.6 Минимально-адаптивная маршрутизация в двумерной сетке [51]. ... 57

2.7 Экспресс-каналы: а) традиционные, б) MECS...............61

2.8 Экспресс-виртуальные каналы: а) байпас, б) сетка, в) пространственно-временная диаграмма передачи пакета по обычным каналам (NVC) и экспресс-виртуальным (EVC)..............62

2.9 Байпас экспресс-виртуального канала....................62

2.10 Предотвращение дедлоков запрещёнными поворотами [51].......65

2.11 Проблема выезда с парковки как иллюстрация нечестности сетей [51]. 67

2.12 Сообщение о голодании в экспресс-виртуальном канале.........68

2.13 Fair Queuing в экспресс-виртуальном канале................69

2.14 Структура роутеров: а) традиционная, б) предлагаемая, в) предлагаемая иерархия сети........................72

2.15 Организация буфера: а) FIFO-очереди, б) фильтры + LRU-арбитр, в) разбиение ......................................................................75

2.16 Доработки экспресс-виртуальных каналов: а) новое сообщение о «голодании», б) ограничение частоты их отправки............78

2.17 Пропускная способность сети при равномерном трацике..................82

2.18 Пропускная способность потока, из угла в центр.............82

2.19 Пропускная способность потока, длиннейший путь........................83

2.20 Разброс пропускной способности при максимальном равномерном трафике..........................................................................84

2.21 Минимальная пропускная способность при максимальном равномерном трафике..........................................................85

2.22 Разброс пропускной способности в зависимости от интенсивности трафика: а) 4x4, б) 8x8, в) 16x16..............................................86

2.23 Честность сети при hot-spot трафике....................87

2.24 Среднее время передачи пакета при равномерном трафике: а) 4x4, б)

8x8, в) 16x16....................................................................88

2.25 Площадь роутера при технологии 28 нм..................89

2.26 Детализация площади роутера сети 16x16.................89

3.1 Технологические тенденции на примере процессоров Intel........93

3.2 Локальность обращений в память в многоядерном процессоре: а) кэш-строками, б) группировкой на стороне ядер.............95

3.3 Эффективность контроллера памяти DDR4 в зависимости от количества потоков..............................95

3.4 Логическая сруктура модуля памяти DDR4 x4/x8 [94]..........98

3.5 Распределение планировщиком запросов по банкам памяти.......98

3.6 Эффективность контроллера памяти DDR4 в зависимости от

глубины буферов и размера запросов [93].................99

3.7 Частота промахов в L2-кэш в тестах SPEC CPU2006........... 102

3.8 Эффективность контроллера памяти DDR4 в зависимости от

глубины планировщика при последовательном и случайном доступе. . 103

3.9 Средний размер группы в зависимости от глубины просмотра в трассах обращений в память тестов SPEC CPU2006........... 104

3.10 Эффективность контроллера памяти DDR4 в зависимости от числа потоков.....................................105

4.1 Идея процессора с распределённым общим кэшем............107

4.2 Снятие трассы: а) обращение в память, б) использование регистра. . .114

4.3 Структура симулятора многоядерной машины...............119

4.4 Структура модели сети соединений.....................123

4.5 Скорость выполнения тестов на реальной машине и симуляторе относительно модели с «идеальной» памятью...............128

4.6 Частота промахов в кэши на реальной машине и симуляторе, нормализованная к тактам «идеальной» модели..............129

4.7 Время передачи пакета в зависимости от интенсивности трафика. . . .130

4.8 Скорость моделирования 1024-ядерной машины в: а) тактах б) событиях....................................131

Список таблиц

1 Сравнение методов оптимизации времени доступа [11].......... 16

2 Конфигурации роутеров, используемые в экспериментах

(для сетей 4x4/8x8/16x16/32x32)....................... 80

3 Конфигурация реальной машины, используемой для проверки точности ................................... 126

Приложение А Акты внедрения

и Эльбрус

АО «МЦСТ»

ул. Нагатинская, д.1, стр.23, Москва, 117105 тел: (495) 363-96-65 факс: (495) 363-95-99 http://www.mcst.ru e-mail: mcst@mcst.ru

O#O3.20ZO № ¿//4/3

На №

АКТ ВНЕДРЕНИЯ

результатов диссертационной работы

Настоящим актом подтверждается внедрение в процесс разработки АО «МЦСТ» результатов диссертационной работы Недбайло Юрия Александровича по теме «Исследование и разработка методов масштабирования подсистемы памяти вычислительных комплексов на основе многоядерных процессоров общего назначения». С целью повышения производительности разрабатываемых на предприятии вычислительных комплексов при увеличении количества ядер были внедрены следующие решения:

1. Оптимизации контроллера памяти ББЬМ, повышающие его пропускную способность в многопоточных сценариях;

2. Неинклюзивная схема общего кэша с инклюзивным справочником;

3. Механизм оповещения справочника о замещении в приватных кэшах;

4. Архитектура сети на кристалле РЕМГОА.

Кроме того, результаты диссертационной работы внедрены в средства оценки производительности вычислительных комплексов. Автором была разработана качественно новая методика моделирования.

Исполнительный директор,

к.т.н.

Воробушков В.В.

«утверждаю»

Заведующий кафедрой «Информатика и вычислительная техника» Московского физико-технического института (государственного университета), заслуженный деятель РФ, д.т.н.

у/.-/^Перекатов В.И.

2020 г.

АКТ

о внедрении результатов диссертационной работы в учебный

Результаты диссертационной работы Недбайло Юрия Александровича включены в курс «Архитектура высокопроизводительных микропроцессоров и вычислительных систем» для студентов направления «Информатика и вычислительная техника» и используются при проведении лабораторных работ.

процесс

Руководитель курса д.т.н. Фельдман В.IV

Приложение Б

Свидетельство о государственной регистрации

Приложение В

Дипломы

Обратите внимание, представленные выше научные тексты размещены для ознакомления и получены посредством распознавания оригинальных текстов диссертаций (OCR). В связи с чем, в них могут содержаться ошибки, связанные с несовершенством алгоритмов распознавания. В PDF файлах диссертаций и авторефератов, которые мы доставляем, подобных ошибок нет.