2.2.Специальные функции чипсета

Drive NA before BRDY


- когда выбрано "Enabled", сигнал NA (Next Address, подробнее читай ниже) устанавливается в каждом цикле чтения/записи на один такт раньше последнего сигнала BRDY#, таким образом вызывая генерацию процессором сигнала ADS# после сигнала BRDY# в следующем цикле, тем самым устраняя один потерянный такт и фактически увеличивая пропускную способность системной шины. С помощью сигнала BRDY# (Bus Ready) чипсет (точнее, т.н. "северный мост") сообщает процессору о том, что имеются данные и они доступны для чтения или есть готовность для приема данных для их дальнейшей записи.
В данной опции речь фактически идет о механизме конвейеризации, об "ускоряющих" возможностях сигнала "Next Address".

Extended CPU-PIIX4 PHLDA#


- при установке значения "Enabled" системный контроллер, входящий в состав "северного" моста, увеличивает на один такт (в тактах шины PCI) длительность сигнала PHLDA# и оставляет его активным в двух случаях:
* в течение адресной фазы в начале PCI-цикла чтения/записи,
* сопровождая адресную фазу "LOCK"-цикла центрального процессора.
При включенном значении опции функции "Passive Release" и "Delayed Transaction" должны быть также включены.
Сигнал PHLDA# (PCI Hold Acknowledge) применяется, в частности, для управления работой "арбитра" PCI-шины. Тема арбитража будет рассмотрена отдельно.

Gate A20 Option


- (выбор способа включения вентиля линии A20). Параметр позволяет управлять способом включения адресной линии A20, которая отвечает за доступ к памяти, физические адреса которой превышают 1 Мбайт. Стоит напомнить, что 20-разрядная адресная шина (A0 - A19) позволяла адресоваться в пределах первого мегабайта памяти. Если быть более точным, то эта линия отвечает за доступ к первым 64 килобайтам верхней памяти, известным как область HMA (High Memory Area). Доступ к HMA требует управления специальным аппаратным узлом, работа которого может быть блокирована или активизирована. При установке опции "Gate A20 Option" в состояние "Fast" работа линии будет контролироваться специальным набором микросхем на системной плате. Если линия А20 деблокирована, то HMA-область доступна для любой программы, функционирующей в реальном режиме работы процессора. Обычно эта область памяти отдается под MS-DOS, а для деблокирования линии используется драйвер HIMEM.SYS.
Может принимать значения:
"Fast" - управление осуществляется чипсетом, что повышает скорость работы,
"Normal" - управление осуществляется через контроллер клавиатуры.
В некоторых версиях BIOS опция может называться "Fast Gate A20 Option", а параметрами будут стандартные "Enabled"/ "Disabled". Иногда в старых версиях BIOS можно встретить опцию с почти романтическим названием "LOWA20# Select". А речь идет о том, какое устройство управляет низким уровнем сигнала на линии A20: чипсет или контроллер клавиатуры.
Достаточно редко, но все же можно встретить в литературе в отношении управления линии A20 такой термин, как "эмуляция". В данном случае имеется ввиду, что стандартный способ управления "вентилем" осуществляется через контроллер клавиатуры. А чипсет заменяет, подменяет это управление, "эмулирует" его (дополнительно см. ниже). И следующая опция очень хорошо показывает это. "Keyboard Emulation" имеет два значения. "Enabled" соответствует "Fast", а "Disabled" - "Normal". Следующая опция "Gate A20 Emulation" (или "Fast Gate A20 Emulation") уже не должна вызывать вопросов. Правда, опций с такими названиями, пожалуй, уже не встретишь. Иногда в литературе можно найти трактовку опции "Turbo Switch Function" как аналога "Fast Gate A20 Option", подразумевая функцию переключения, но это не совсем корректно.
Пользователям, умеющим работать с командной строкой, можно порекомендовать внешнюю команду DOS MEM /A, показывающую стандартную информацию о памяти и дополнительную информацию о сегменте HMA. Команда работает и в среде "Windows 9x".
Ну и наконец, опция "Cyrix A20M Pin", применявшаяся во времена 386-х процессоров. Процессоры Cyrix уже тогда были "особенными". Речь идет о дополнительной поддержке со стороны BIOS. Ведь в отличие от процессоров Intel, 386-е процессоры Cyrix имели собственный кэш. Такие процессоры могли иметь проблемы с обновленными комплектующими, поддерживающими кэш-память. Вполне вероятными были и другие системные конфликты. Чтобы обеспечить управление линии A20 контроллером клавиатуры, BIOS через включение опции ("Enabled") сообщал центральному процессору о состоянии вентиля. И еще о кэше. Установка "BIOS Setup" позволяла процессору через внутренний кэш кэшировать первые 64 КБ каждого (!) мегабайта памяти в реальном режиме (вентиль всегда был открыт в защищенном режиме работы процессора), и это было достаточно эффективным.

Логически память разбивается на сегменты размером по 64 КБ, что соответствует 2^16. В совсем "стареньких" машинах с 16-разрядными процессорами физически адрес не мог перейти ограничение в 64 КБ. 20-разрядная адресация, т.е. использование 20-разрядной адресной шины, достигалась благодаря тому, что при формировании 20-разрядного физического адреса использовалось суммирование со смещением в 4 разряда двух адресов: адреса сегмента и исполнительного адреса.
При вычислении физических адресов в системах с 8086/88-ми процессорами могла иметь место вполне стандартная ситуация, а именно адресное переполнение, которое при наличии 20-разрядной шины адреса приводило к сворачиванию адресного пространства в т.н. кольцо. А это и происходило как раз в процессе упомянутого суммирования.
В процессорах следующего поколения (в 286-х был преодолен предел в 1 МБ адресного пространства) на его выходе A20 устанавливалось значение "1", что соответствовало адресу из второго мегабайта памяти. При разработке процессоров и чипсетов машин класса IBM PC/AT) в схему чипсета был введен специальный вентиль Gate A20. В то время его появление в наборе логики было прежде всего связано с обеспечением полной программной совместимости с предыдущим классом машин. Вентиль принудительно устанавливал нулевое значение на линии A20 адресной шины.

На первых машинах, где был реализован контроль и управление линией A20, управление последней осуществлялось через программно управляемый бит чипа контроллера клавиатуры 8042 (или 8742) (см. дополнительно раздел "Keyboard"). Позднее эта функция была возложена и на чипсет, что значительно ускорило скоростные характеристики ("Gate A20 Fast Control") системы.
В итоге это означало, что появление 32-разрядных процессоров не вызвало заметных изменений по данной теме, поскольку специальный вход процессоров (A20M - A20 Mask) остался. Упомянутый вход современного процессора есть не что иное, как маскирование бита A20 физического адреса для эмуляции адресного пространства 8086 в реальном режиме работы процессора. А это связано и с тем, адресная линия A20 используется также для переключения из реального режима в защищенный, что сразу нашло применение в многозадачных и сетевых средах. Иногда можно встретить в описаниях и такие пояснения. Что существует категория пользователей, использующих старое программное обеспечение. Для таких и предназначена эта опция. Это означает, что наличие такой опции связано с совместимостью со старым ПО. Правда, фразы о категориях пользователей встречаются все реже и реже, но опция по прежнему входит в "стандартный" набор "BIOS Setup". Необходимо также отметить, что некоторые старые драйверы MS-DOS, например VDISK.SYS, могут блокировать линию А20, входя в конфликт с драйвером HIMEM.SYS (это опять таки из далекого прошлого).

Уточним вопрос об "эмуляции" и переключении процессора. Обычным образом программы для A20-операций используют обращения через BIOS или порты 60/64h, предназначенные для контроллера клавиатуры. Чипсет перехватывает эти обращения, тем самым эмулируя контроллер клавиатуры и разрешая дальнейшую генерацию соответствующих сигналов. Последовательность при этом следующая. В порт 64h записывается значение D1h, а затем в порт 60h - 02h. Если же в порт 64h затем записать значение FEh, то можно произвести "теплый" рестарт процессора. В обычном режиме работы процессора контроль линии A20, как "Fast", осуществляется через порт 92h, который программы используют для BIOS-вызовов. Возможна ситуация, когда контроль одновременно осуществляется и контроллером клавиатуры, и чипсетом. В этом случае линия A20 контроллируется через порты 60/64h.

Graphic Posted Write Buff


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

IBC DEVSEL# Decoding


- (декодирование адреса устройства). Сигнал DEVSEL (Device Select) означает "выбор устройства". Эта опция позволяет установить тип декодирования, используемый IBC (ISA Bridge Controller) для определения выбранного устройства. Чем дольше длится цикл декодирования, тем выше шанс корректного декодирования адреса, но снижаются скоростные показатели. Для отбора представлены следующие значения: "Fast", "Medium" и "Slow" (по умолчанию).

LOCK Function


- поскольку в данной опции идет речь об использовании сигнала LOCK#, то отключение опции ("Disabled") приведет к отказу от применения режима "bus-master" в системе.

NA Delay


- данная опция позволяет регулировать задержку (в системных тактах) перед выдачей сигнала NA# (Next Address). Меньшее значение повышает скоростные характеристики системы, но... Возможные значения опции: "0T", "1T", "2T".

NA# Enable


- если дословно, опция включения/отключения сигнала NA#. Установив "Enabled", мы включаем механизм конвейеризации, при котором чипсет сигнализирует центральному процессору о выдаче нового адреса памяти еще до того, как все данные, переданные в текущем цикле, будут обработаны. Следующий адрес (вместе со стробом EADS#) появится через два такта после NA#. Естественно, что включение такого режима повышает производительность системы. Запрещение опции ("Disabled") вовсе не означает отказ от использования сигнала "NA#", но его функционирование в значительной степени будет уже зависеть от качественных характеристик используемой в системе кэш-памяти и ее размера.
То же содержание заключено в опциях "NA# Pin Assertion" и "Chipset NA# Asserted".

NA# On Single Write Cycle


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

Negate LOCK#


- (отрицание сигнала LOCK#). Напомним, что сигнал LOCK# (Bus Lock) - это сигнал монополизации управления шиной, сигнал блокировки доступа к шине других абонентов. При установке опции в "Enabled" ранее некэшируемые "locked" циклы будут исполняться как "незакрытые" циклы, и поэтому они могут быть кэшированы. Повышение производительности очевидно.

Single ALE Enable


- (pазpешение одиночного сигнала ALE). Немножко информации. Пин B28 на шине ISA - это сигнал BALE (Bus Adress Latch Enable - разрешение защелкивания адреса). Это сигнал стробирования адресных разрядов. Может использоваться устройствами ввода/вывода для заблаговременной подготовки к предстоящему обмену информацией. Эта линия становится активной всякий pаз пpи появлении на адресной шине информации. Можно было встретить даже такую информацию об этом сигнале: "...показывает, что действительный адрес отложен (posted) на шине". Стоит добавить, что этот сигнал использовался еще во времена 808x-х процессоров. По некоторой информации сигнал этот мог использоваться DMA-контроллерами для сообщений центральному процессору о передаче данных. Его применение было связано с программированием устройств, поэтому использование сигнала было крайне редким.
Устанавливая "Enabled", активизируем одиночный сигнал ALE вместо множественных сигналов-стробов во время ISA-циклов. В какой-то степени выбор параметра был привязан и к скорости системной шины, т.е. пропускной способности системы. Поэтому установка в "Enabled" могла привести к замедлению быстpодействия видеоканала. Эта функция всегда оставалась достаточно "темной" функцией "BIOS Setup". "Disabled" рекомендовано.
Опция может называться также "ALE During Bus Conversion" с возможными вариантами выбора: "Single" (одиночный) или "Multiple" (множественный). Естественно, что при потоковой работе ISA-шины (т.е. множественных циклов чтения/записи) предпочтительнее была бы установка опции в "Multiple". Но какой правильный выбор должен был сделать пользователь, всегда оставалось загадкой.
Некоторые чипсеты имели поддержку усовершенствованного режима, при котором выдача множественных сигналов ALE производилась во время одиночных циклов шины. Функция BIOS при этом называлась "Extended ALE", а параметрами служили "Disabled" и "Enabled". Встречая данную опцию в более современных системах, естественно при наличии ISA-шины, необходимо понимать, что присутствие оной связано только с совместимостью со спецификациями AT-шины.
В наиболее "древних" версиях BIOS весь смысл сказанного выше был заключен в опции под названием "Quick Mode".
;
Stop CPU when PCI Flush
- при установке опции в "Enabled" центральный процессор, получив по своей входной линии (FLUSH) активный сигнал низкого уровня FLUSH#, вынужден будет приостановиться до тех пор, пока PCI-шина не закончит передачу данных. Запрещение опции не позволит процессору входить в режим ожидания, что естественно более приемлемо для системы. "Disabled" устанавливается и по умолчанию.
Опция может называться "Stop CPU When Flush Assert".