Вы здесь

Оптимизация межпроцессорного протокола когерентности с помощью справочника микропроцессора “Эльбрус-4С+”

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

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

Одним из вариантов решения проблемы является создание директории (локального справочника), в которой хранится информация о когерентном состоянии памяти, ускоряющая доступ к ее конкретным строкам в системе [2]. Преимущество директории состоит в том, что большинство данных используются лишь одним процессором, тогда как их использование более чем двумя процессорами в многопроцессорных системах на типичных классах задач составляет лишь около 5% [3]. При широковещательном протоколе запросы часто высылаются и тогда, когда их можно не высылать, а в системе со справочником, в случае если строка не находится в кэше какого либо процессора, межпроцессорные когерентные запросы не рассылаются, поэтому оптимизируется как время доступа к памяти (нет необходимости ждать доставки «лишних» ответов от всех процессоров в системе), так и количество когерентного трафика. Если же кроме запросчика данные есть ещё у одного процессора, отработка запроса обычно занимает примерно такое же время, как и в системах, основанных на широковещательном протоколе, но существенно, что при этом экономится служебный когерентный трафик. Лишь в редких случаях промаха по директории или вынужденной рассылки широковещательных запросов протокол директории может показать меньшую производительность, чем широковещательный когерентный протокол.

Подробнее... Загрузить файл 

Содержание:

Введение

1. Анализ вариантов разработки справочника

2. Подсистема памяти процессора «Эльбрус-4С+»

3. Архитектура директории в процессоре «Эльбрус-4С+»

4. Реализация директории

Выводы

Литература

В.Н.Вараксин
М.В.Исаев
Ю.Х.Сахин