5. PCI. Арбитраж, Bus-Master

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

Arbitration Priority


- один из вариантов такой опции предложил достаточно "изощренный" вариант со значениями "PCI First" и "ISA/DMA First". Здесь возможности выбора зависят от применяемых устройств. "Master"-устройство может находиться и на ISA-шине и желать того же самого, а именно захвата шины. Для передачи данных оно может использовать и DMA-каналы. Тогда как бы конечным инициатором захвата выступает DMA-контроллер. Пользователю необходимо выбрать по сути шину, которая и будет иметь более высокий приоритет в случае конкуренции между "master"-устройствами.
Опция с тем же названием представила для отбора значения "CPU" и "PCI".

CPU Priority

- после вышеизложенного содержание этой опции может быть уже и не покажется странным. Пользователь должен установить, по сути, ранг центрального процессора в иерархии всех возможных "master"-устройств в системе. Если для остальных устройств, допустим, может выдерживаться "режим ротации", то для CPU его место всегда окажется фиксированным. Это место можно выбрать из ряда: "Always Last", "CPU 2nd", "CPU 3rd", "CPU 4th".
Опция с тем же названием была встречена и с обычными "Disabled" и "Enabled". Несложно предположить, что "Disabled" запрещает ротацию приоритета для центрального процессора, а "Enabled" ее разрешает.

DMA/ISA Master Before PCI

- опция предлагает стандартные значения - "Enabled" и "Disabled". В данном случае "Disabled" равносильно "PCI First".

Master Priority Rotation


- (ротация приоритетов "master"-устройств). Аппаратная реализация данной функции позволяет контролировать доступ центрального процессора к PCI-шине. Начнем с предлагаемых значений опции: "1 PCI", "2 PCI", "3 PCI".
"1 PCI" - процессор гарантированно всегда будет иметь доступ к PCI-шине после того, как текущее (т.е. находящееся в работе) "master"-устройство завершит полностью свои транзакции. Причем этот доступ будет получен независимо от числа других "master"-устройств на шине PCI, ожидающих своей очереди. Такой режим обеспечивает быстрый доступ процессора к PCI-шине, но ведет к замедлению работы других устройств на PCI-шине.
"2 PCI" - процессор гарантированно получит доступ к PCI-шине, но только после того, как полностью завершатся текущая и следующая PCI-транзакции. Причем этот доступ опять таки будет получен независимо от числа оставшихся в очереди других "master"-устройств на PCI-шине. Такой режим "понижает в ранге" центральный процессор, но обеспечивает более быстрый доступ уже для устройств на PCI-шине.
"3 PCI" - процессор получит доступ к PCI-шине уже после того, как будут закончены текущая и две последующих PCI-транзакции. Но необходимо понимать ситуацию таким образом, что речь может идти не о трех "master"-устройствах. Может возникнуть потребность у одного из устройств снова выставить запрос на захват шины сразу же после окончания собственных циклов, и это устройство может встать в очередь третьим, а то и за самим собой. Для PCI-устройств такой режим наиболее привлекательный. Но тем не менее процессор получит доступ к локальной шине после завершения трех циклов, опять таки несмотря на возросшую очередь.

PCI Bus Arbitration


Параметр может принимать уже понятные значения:
"Rotating",
"Fixed".
Опция с абсолютно таким же названием встретилась и с параметрами: "Favor CPU" и "Favor PCI". Пользователю остается определить своего фаворита. Если речь идет о потоковом видео, то желательно указать PCI-устройство. Выбор центрального процессора во многих случаях может оказаться более безопасным.
Такие же значения предложила опция "PCI Masters' Priority".
 
Рассмотренные выше варианты выбора параметров могут быть предложены и в функциях "Master Arbitration Protocol", "PCI Arbitration Mode", "PCI Arbit. Rotate Priority".
При этом, правда, могут возникнуть и другие сложности. Рассмотрим опцию

PCI Arbiter Mode


- данная опция предложила параметры "Mode 1" и "Mode 2". Поскольку идея арбитража заключается и в минимизации времени, требуемого для получения устройством контроля над шиной и передачи данных, то возникает вопрос, в каком из вариантов устройство на той же PCI-шине быстрее получит доступ к ней. В случае "Favor PCI" или с выбором "Favor CPU"? Естественно, что первый вариант более оптимален. В данном случае этому режиму соответствует "Mode 1", устанавливаемый по умолчанию. При возникновении каких-либо проблем в системе необходимо выбрать режим "Mode 2", как более безопасный.
 
Напоследок опция от "Phoenix BIOS":

Arbiter Priority on HB1


- ее значения: "CPU" и "Slot 6 to Slot 9". "HB" в названии опции означает "Host Bridge". Выбор "CPU" определял процессору наивысший приоритет, а второе значение определяло уровень приоритета для выбранного PCI-слота, начиная с 6-го слота, имевшего наивысший приоритет. Таким образом, пользователь имел возможность при установке карт расширения сконфигурировать имеющиеся "master"-устройства на PCI-шине наиболее оптимальным способом. Правда, это требовало абсолютно полного представления о потребностях имеющихся комплектующих. Столь необычные номера слотов - это системные номера слотов с точки зрения "Phoenix BIOS".
 
Теория приоритетов рассмотрена. Остановимся на других проблемах "master"-устройств.

Bus Mastering

- эта опция предназначалась еще не так давно для разрешения или запрещения работы устройств в режиме "Bus-Master" на шине ISA. Параметр может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
 
CPU Mstr DEVSEL# Time-out
- когда процессор в качестве "master"-устройства инициирует управляющий цикл, используя адрес (целевое устройство), не сопоставленный с PCI/VESA- или ISA-пространством, система в течение определенного времени будет контролировать выдачу специального сигнала подключенности устройства (DEVSEL - Device Select), свидетельствующего об инициировании цикла. Рассматриваемая опция определяет, как долго система будет ожидать данный сигнал (в тактах шины PCI). Может принимать значения: "3 PCICLK", "4 PCICLK", "5 PCICLK" и "6 PCICLK" (по умолчанию).
Чем меньше установленное значение, тем выше производительность системы. Но к уменьшению устанавливаемого параметра необходимо подходить осторожно - из-за возможности появления сбоев в системе.

CPU Mstr Fast Interface


- опция включения/отключения скоростного "back-to-back" интерфейса при участии центрального процессора в роли "master"-устройства. "Enabled" устанавливается по умолчанию.

CPU Mstr Post-WR Buffer


- содержание этой опции заключено, казалось бы, во включении буфера отложенной записи. Правильно. Только включение это достигается путем указания количества таких буферов, присутствует и возможность отказа от буферирования. Поэтому имеем такой ряд значений: "NA", "1", "2", "4" (по умолчанию).

CPU Mstr Post-WR Burst Mode


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

Enable Master


- установка в "Enabled" позволяет системе придать выбранному устройству статус "master"-устройства на PCI-шине, а также проверить, способно ли это устройство контролировать шину.

Master Prefetch And Posting


- данная опция допускает одновременное включение режима предвыборки и использование буфера отложенной записи для любого "master"-устройства.

Master Retry Timer


- этой опцией устанавливается, как долго центральный процессор, будучи задатчиком PCI-циклов, сможет сохранить свой статус до передачи управления другому "master"-устройству. Возможные параметры измеряются в тактах PCI-шины (PCICLKs). Вот этот ряд: 10 (по умолчанию), 18, 34 или 66.

PCI Bus Parking


- опция включения/выключения режима "парковки" устройств на PCI-шине. Режим "парковки" - одна из разновидностей режима "Bus-Master". Когда этот режим включен ("Enabled"), "запаркованные" на PCI-шине устройства будут иметь полный контроль над шиной в течение некоторого небольшого промежутка времени. Это повышает производительность данного устройства, однако приостанавливает работу остальных. Данный режим неплохо работает с контроллерами жестких дисков.

PCI Master 0 WS Write


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

PCI Master Access to ISA

- само название опции "расшифровывает" ее содержание. Включение опции ("Enabled") дает возможность "master"-устройству на PCI-шине взять на себя управление обменом информацией с ISA-шиной.

PCI master accesses shadow RAM

- опция включения/выключения возможности копирования ПЗУ "master"-устройства на PCI-шине в более быструю оперативную память для повышения быстродействия этого устройства. При этом, конечно, задействуются и другие опции "BIOS Setup" (см. "Затенение памяти"). Но чтобы некое "master"-устройство могло получить такой доступ, данной опции, да и других, явно недостаточно. Такой режим закладывается в процессе создания конкретного приложения, что как раз и находит применение при проектировании специализированных карт расширения. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.

PCI Master Read Ping-Pong
PCI Master Write Ping-Pong


- несколько ранее под термином "ping-ponging" подразумевалось переключение страниц экранной памяти. Для данных опций значения параметров одинаковы: "Disabled", "Enabled". Но смысл их функционирования пока не совсем ясен!

PCI Master Read Prefetch


- опция, позволяющая (через "Enabled") включать режим предвыборки для "master"-устройств на PCI-шине. Чтобы вспомнить о функционировании режимов предвыборки, имеет смысл заглянуть повторно в раздел "CPU". Но в нескольких словах! Когда режим предвыборки включен, "master"-устройство на PCI-шине инициирует следующую инструкцию чтения еще до завершения текущей операции чтения. В этом процессе участвует и контроллер интерфейса.

PCI Mstr Burst Mode


- данная опция позволяет включить высокоскоростной пакетный режим для информации, находящейся во внутренних буферах отложенной записи PCI-шины, доступ к которой имеет "master"-устройство.
Сюда же добавим и близкую по смыслу опцию "PCI Master Burst Read".

PCI Mstr DEVSEL# Time-out


- опция, аналогичная "CPU Mstr DEVSEL# Time-out", только в качестве "master"-устройства выступает PCI-устройство. Ряд значений тот же, только по умолчанию устанавливается "4 PCICLK".

PCI Mstr Fast Interface


- аналогичная опция ("CPU Mstr Fast Interface"), только в качестве "master"-устройства выступает устройство на PCI-шине.

PCI Mstr Post-WR Buffer


- опция, абсолютно аналогичная "CPU Mstr Post-WR Buffer", только в качестве "master"-устройства выступает PCI-устройство.

Preempt PCI Master Option


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

Shared PCI Master Assignment

- данная опция затрагивает тему интегрированности графического адаптера на системной плате. Вроде бы знакомая ситуация - надо указать, какой видеоадаптер используется, но... Значения опции следующие:
"VGA" - интегрированный адаптер может использоваться как "PCI bus master",
"Slot #1" - видеокарта установлена в первый слот PCI-шины и может функционировать в качестве "master"-устройства.

State Machines


- чипсет может иметь четыре состояния, точнее даже сказать, путем управления состоянием своих регистров чипсет может иметь четыре режима управления специфическими CPU- и/или PCI-операциями. Каждая из таких операций, а фактически - режим работы, представляет собой высокооптимизированный процесс, включающий в себя работу "master"-устройства и управляемой им шины. Четыре состояния системы следующие:
"CC" ("CPU master to CPU bus"),
"CP" ("CPU master to PCI bus"),
"PP" ("PCI master to PCI bus"),
"PC" ("PCI master to CPU bus").
Каждый вид операции имеет следующие установки, задействованные с помощью других функций "BIOS Setup":
"Address 0 WS" - устанавливается время задержки системы для успешного декодирования выставленного процессором/устройством адреса. "Enabled" - нет задержки;
"Data Write 0 WS" - аналогично для записи данных по целевому адресу. "Enabled" - нет задержки;
"Data Read 0 WS" - аналогично для чтения данных из целевого адреса. "Enabled" - нет задержки.

Stop CPU at PCI Master


- когда опция включена ("Enabled"), работа центрального процессора может быть приостановлена в момент инициирования PCI- устройством захвата шины. Установка в "Disabled" (по умолчанию) не позволяет прерывать работу CPU как задатчика шины.