Арбитраж, Bus-Master
Bus Master (хозяин шины, задатчик) - возможный режим работы устройства на любой шине, в том числе и на PCI. Для работы в таком режиме устройство выдает запрос арбитру шины, сообщая о своем требовании на получение управления шиной. Арбитр, в соответствии с приоритетом и/или очередностью арбитража на данной шине, через определенное время после запроса отдает запрашивающему устройству управление шиной. Выполнив все необходимые ему операции, устройство сообщает арбитру об освобождении им шины.
На современных шинах, таких как PCI, для получения доступа к шине ВСЕ устройства проходят процедуру арбитража, в том числе и центральный процессор. Возможность быть "master"-устройством реализуется аппаратно при разработке устройства. Реализация механизма "BusMaster" позволяет общаться между собой только тем компонентам компьютера, которым это в данный момент необходимо. Этот механизм используется, например, для передачи данных TV-тюнером на видеокарту, если они обе находятся на PCI-шине, причем без участия центрального процессора, системной памяти и т.п.
Обычно, система управляет доступом к PCI-шине по фундаментальному принципу - "First-Come-First-Served" (первым пришел, первым обслуживается). Но возможности арбитража значительно шире и сложнее. Существуют и различные режимы действия самого механизма арбитража. Может быть установлен т.н. режим ротации устройств, при котором периодично меняется очередность устройств, т.е. их приоритет. Приоритет может оказаться фиксированным, т.е. какое-либо системное устройство "навсегда" получает наивысший приоритет. При "вращении приоритетов" (rotated) устройству, получившему контроль над шиной, присваивается самый низкий приоритет и любое другое устройство перемещается на шаг вверх в "очереди" приоритетов.
Как же все это реализуется? Арбитражем запросов на "захват" шины в составе чипсета занимается специальный узел, в который входит 8-разрядный ARBITRATION CONTROL REGISTER, позволяющий реализовать свойства, связанные с арбитражем на PCI-шине, а также с поддержкой спецификации шины PCI 2.1. (см. ниже). Каждое устройство-инициатор имеет пару сигналов - REQ# (Request - запрос на управление шиной) и GNT# (Grant - подтверждение предоставления управления шиной). Схема приоритетов (мы уже познакомились с фиксированным, циклическим, он же приоритет с ротацией, а есть еще и комбинированный) определяется программированием арбитра. Каждое "мастер"-устройство имеет собственный программируемый таймер MLT (Master Latency Timer), определяющий максимальное время, в тактах шины, для одной операции.
В современных системах механизмы арбитража, можно сказать, интеллектуализированы, что в итоге привело к постепенному изъятию из "BIOS Setup" функций, связанных с пользовательскими установками по арбитражу. "Старые" же версии BIOS вполне могут содержать некоторые из приведенных ниже опций, могущих вызвать душевный трепет у пользователя.