Открыть сервисСервис

Шедл-арбитр в процессорах

Шедл-арбитр (от англ. scheduler-arbiter) — компонент аппаратного или программного обеспечения вычислительной системы, совмещающий функции планировщика задач (шедлера) и арбитра доступа к общим ресурсам. Такое устройство управляет очерёдностью выполнения запросов от нескольких конкурирующих источников — процессорных ядер, потоков, устройств ввода-вывода или внешних абонентов — и определяет, какой из них получит доступ к разделяемому ресурсу в текущий момент времени. Термин применяется преимущественно в области проектирования микропроцессоров, систем на кристалле (SoC), сетевого оборудования и операционных систем.

Назначение и принцип работы

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

Шедл-арбитр выполняет две связанные функции:

Работа строится на конечном автомате: устройство принимает сигналы запросов (request), выдаёт сигнал разрешения (grant) и отслеживает момент освобождения ресурса. Современные реализации учитывают тайм-ауты, чтобы исключить бесконечное ожидание, и ведут счётчики обслуженных транзакций для контроля равноправия.

Классификация

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

По стратегии арбитража выделяют несколько схем:

СхемаПринципОбласть применения
Фиксированный приоритетПобеждает запрос с наивысшим рангомПрерывания, критические блоки
Циклический (round-robin)Доступ предоставляется по очередиСимметричные ядра, шины
Взвешенный циклическийКаждому источнику задан вес (квота)Сетевые коммутаторы
По дедлайнуПриоритет у запроса с ближайшим срокомСистемы реального времени
ЛотерейныйСлучайный выбор с учётом числа билетовЭкспериментальные ОС

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

Применение

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

В системах на кристалле арбитры связывают вычислительные блоки с периферией через сеть на кристалле (NoC). Здесь они регулируют трафик между видеоядрами, модулями связи и блоками обработки сигналов.

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

Показатели эффективности

Качество работы шедл-арбитра оценивают по нескольким метрикам:

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

История и развитие

Простейшие арбитры с фиксированным приоритетом появились вместе с первыми многозадачными вычислительными машинами в 1960-х годах, когда возникла необходимость разделять время процессора между программами. С развитием многопроцессорных систем в 1980–1990-х годах потребовались аппаратные схемы арбитража шин, работающие на тактовой частоте. Дальнейшее усложнение связано с появлением многоядерных процессоров и систем на кристалле в 2000-х годах, где число конкурирующих источников достигло десятков. Современные исследования направлены на адаптивные арбитры, меняющие стратегию в зависимости от текущей нагрузки, и на арбитры с поддержкой машинного обучения для предсказания запросов.

Смежные понятия

Термин тесно связан с понятиями планировщика задач, арбитража шин, когерентности кэш-памяти и управления доступом к среде (MAC). В сетевых стандартах функции арбитража частично реализует метод доступа к среде, например CSMA/CD в классическом Ethernet. В программной инженерии аналогом выступают примитивы синхронизации — мьютексы и семафоры, которые разрешают конфликты между потоками на уровне операционной системы.

Источники: учебные материалы по архитектуре ЭВМ и систем на кристалле, документация по проектированию микропроцессоров, публикации по планированию задач в операционных системах, стандарты сетевого обмена данными.

Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru