Ускоритель Интернета! Бесплатно!

Поставь себе Marketscore!
Поставь!

Marketscore - хит сезона!
Сервис, практически вдвое увеличивающий скорость загрузки вашим браузером страниц и сайтов в Интернете. В среднем, скорость загрузки вэбстраниц с графикой и текстом ускоряется на 75%. 
Особенно заметен выигрыш, если у вас медленный модем или вы выходите в Интернет на маленьких скоростях (до 56 Кб/сек).
Подробнее...
Если вы видите здесь эту рекламу, значит увидят и вашу рекламу...

BIOS. Все об опциях BIOS, современного и не очень, и о многом другом - 6

Якусевич Виталий

2.1. Оптимизация функционирования PCI-интерфейса и ISA-шины (продолжение)

16 Bit ISA I/O Command WS

- данная опция используется для компенсации возможной разницы между скоростью работы системных устройств ПК и его периферии, и, как видно из наименования опции, речь идет о 16-битных операциях ввода/вывода. Подобная компенсация необходима, например, если в системе не выделено дополнительное время ожидания/ответа устройства. В таком случае система может решить, что какое-либо неуспевающее ответить устройство вообще не функционирует и перестанет давать запросы на ввод/вывод из этого устройства. Данную опцию необходимо отключать ("Disabled") для повышения быстродействия только в случае, когда все устройства в таком режиме нормально функционируют, в противном случае возможна потеря данных. Естественным является отключение опции при отсутствии в системе ISA-карт расширения.

Опция может называться "ISA 16-bit I/O Wait States". При этом появляется возможность установить количество тактов ожидания вручную: 0, 1, 2, 3.

16 Bit ISA Mem Command WS

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

Опция может называться "ISA 16-bit Mem Wait States". При этом появляется возможность установить количество тактов ожидания вручную: 0, 1, 2, 3.

Опция может носить и более общий характер - "16-bit Memory, I/O Wait State". И поскольку абсолютно те же задачи необходимо решать для 8-битных операций ввода/вывода, то на это направлена опция "8-bit Memory, I/O Wait State". С помощью этих опций количество тактов ожидания также устанавливается вручную.

AT Cycle Wait State

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

Но был еще один важный аспект в процедуре установки тактов ожидания для некоторой карты расширения. Если карта обеспечивала 16-разрядную передачу данных, то выставив сигнал "MEMCS16" (Memory Cycle Select), такая карта сообщала процессору о своей "организации". К сожалению, некоторые карты по разным причинам "не успевали" выставить данный сигнал, и процессор инициировал 8-разрядный режим передачи данных. Потери производительности системы очевидны. В данном случае установка дополнительных тактов ожидания приводила к "своевременной" выдаче запроса о 16-разрядности.

Back to Back I/O Delay

- установка опции в "Enabled" ведет к вставке трех дополнительных AT-тактов в последовательные операции ввода/вывода, осуществляемые через AT-шину. Устаревшая опция.

Bus Request when FIFO is

- о FIFO-буферах чуть ниже. А данная опция позволяет отслеживать степень заполненности такого буфера, и который действует по принципу - "первым пришел, первым ушел". Если шинный FIFO-буфер заполнен на n%, то шина вынуждена сигнализировать об этом. Сама опция несколько необычна, столь же нестандартны и ее значения: "75% Full", "50% Full".

Byte Merge Support

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

Если взять, например, техническое описание материнской платы на базе чипсета i430HX, то среди перечисления возможностей данного продукта можно найти такие пункты:

- Write-Back Merging for PCI to DRAM Writes

- 8-QWord Deep Merging DRAM Write Buffer

Но сразу необходимо отметить, что не все чипсеты содержат в себе такие буфера "слияния". В более современных системах термин "merging" может отсутствовать вовсе, а речь может идти только о буферах "с отложенной записью", о предварительном "пакетировании", т.п.

Вернемся к механизму "слияния". В указанном выше буфере, а в этой роли может выступать и буфер с "отложенной" записью, 8- или 16-битные последовательные данные "сливаются" до размеров двойного слова (dword - double word, или 32 бита) и сопровождаются одним адресом (по сути функция "пакетирования"). Возможности накапливать некий объем данных зависят от размеров такого буфера, размер которого может варьироваться, хотя стандартно используются 32-битные циклы записи. Далее чипсет направляет данные во внутренний буфер PCI-шины в наиболее благоприятный момент. Повышение производительности явным образом проистекает из уменьшения числа PCI-транзакций и возможности использовать всю пропускную способность PCI-шины. Что же касается упомянутого варьирования размера буфера, то его размер может составлять и 64 бита. При этом системный контроллер способен "отследить" до восьми последовательных управляющих сигналов "CPU Byte Enable", приостанавливая пересылку данных к месту назначения до слияния пакетов. Ранее любое расширение возможностей для передачи потоковой информации предназначалось прежде всего для повышения производительности трансляции видеоданных. Но потребность в механизме "byte merging" несколько шире. Речь может идти и о "слиянии" последовательных адресов и их данных в одну "PCI-to-memory"-операцию. А в наименовании вынесенной выше опции как раз и содержится поддержка "byte merging" со стороны всей системы. Но особый смысл и эффект от применения данного механизма заключен в "слиянии" данных в одну операцию для адресов памяти, не представляющих собой непрерывного адресного пространства.

Возвращаясь к упомянутой "PCI-to-memory"-операции, необходимо отметить значительное повышение производительности с применением "byte merging" для "старых" программных продуктов, осуществлявших циклы записи в видеопамять в виде отдельных байтов. Но такая трансляция, естественно, не поддерживается всеми PCI-графическими картами. И, тем не менее, установка опции в "Enabled" допустима, если при этом не происходит ухудшения видеоряда ("Frame Buffer Byte Merging"). Но проблема затрагивает не только графические карты. Речь может идти и о некоторых сетевых PCI-картах, в частности 3Com 3C905-серии от "noname"-производителей, установленных в определенные системные платы, например "ASUS P3V4X".

Опция может носить множество различных наименований. "Byte Merging" ("Byte Merge") предназначена для системной поддержки и неявным образом для PCI-операций, "PCI Write-byte-Merge" и "CPU to PCI Byte Merge" - уже явным образом предназначены для поддержки буферизации-"слияния" в цепочке "процессор - шина PCI". Опция "Word Merge" предлагает нечто другое. Речь уже идет о слиянии в пакеты отдельных слов, но по прежнему о трансляции данных в кадровый буфер (более чем конкретно указывает на это опция "Frame Buffer Word Merging"). Поэтому иногда в литературе можно встретить указание, что "байт слияние" производится только для VGA-диапазона в области адресов (0A0000-0BFFFF).

О системной поддержке говорит и опция "Linear Merge". Но при ее включении "слиянию" могут быть подвергнуты только последовательные, т.н. "линейные" адреса процессора. Это физические адреса, начиная с нулевого и заканчивая максимально возможным для данного типа процессора. Данная опция учитывает особенности процессоров Cyrix, и в свое время была введена в BIOS для поддержки, например, процессоров Cyrix M1/M2 (и тут есть дополнительный пример - "Frame Buffer Linear Merging").

Приведем названия еще некоторых опций: "PCI Byte Merging", "Write Merging", "PCI Single Write Merge", "Pipelining With Byte Merge", "Write Gathering".

CPU Dynamic-Fast-Cycle

- опция, позволяющая ускорить доступ к ISA-шине. Когда центральный процессор инициирует новый шинный цикл, PCI-шина вынуждена исследовать "адресность" команд на предмет принадлежности информации одному из своих устройств. Если такая принадлежность не определена, инициируется ISA-шинный цикл. Когда опция включена ("Enabled"), доступ к шине ISA ускоряется за счет уменьшения задержек между выдачей процессором оригинальной команды и началом ISA-цикла. Процедурное "упрощение" осуществляется при этом на уровне "северного" моста чипсета. См. также выше опцию "Fast Decode Enable".

CPU Read PCI Retry

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

CPU-to-PCI 6 DW FIFO

- опция включения/отключения специального буфера, позволяющего устройствам обращаться к PCI-шине и считывать до 6 двойных слов (Double Word). Работа с буфером построена по принципу "первым пришел - первым ушел" (First Input - First Output). Естественно, что буферизация передачи информации повышает быстродействие системы, но в таком виде эта опция встречается уже редко.

CPU-to-PCI Bridge Retry

- когда установлено значение "Enabled", контроллер мостовой схемы сможет, взяв на себя инициативу, повторить инициированные процессором циклы записи в PCI-шину. Но должны быть соблюдены определенные условия. При включенном значении опции функции "Passive Release" и "Delayed Transaction" должны быть также включены. При этом речь идет о т.н. "nonLOCK#" PCI-циклах. Что это такое?

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

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

Опция может называться "Host-to-PCI Bridge Retry", а для опции "CPU-to-PCI Bridge Retry" значениями могут быть также "No Retry" и "Retry First". Последние параметры несколько подтверждают то, что чипсет без инициативы "свыше" сам может выступить инициатором пересылки задержанных ранее данных в PCI-шину.

CPU to PCI Burst Memory Write

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

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

Несколько слов о сути пакетного режима и повышении производительности. В обычном режиме на каждое считываемое или записываемое слово выдается отдельный адрес, в блочном режиме адрес выдается на весь пакет данных, затем без задержек непрерывно выполняется серия циклов чте­ния/записи, что и делает пакетный режим максимально эффективным.

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

Опция может носить множество названий: "CPU Burst Write Assembly", "CPU-to-PCI Bursting", "CPU/PCI Burst Mem. Write", "CPU to PCI Burst Write", "CPU-to-PCI Write Bursting", "PCI Burst Write Combine", "PCI Write Bursting", "PCI Write Burst", "PCI Write Burs", "PCI Burst Write", "PCI Burst Write Combining", "CPU Burst Write", "Burst Write Combining", "Write Combining", ну и "CPU-To-PCI Burst Mem. WR.".

В дополнение к вышеизложенному необходимо отметить следующее! "Ассемблирование" чипсетом пакетов в направлении к PCI-шине является одним из примеров подобного пакетирования. Инициатором может быть и сам процессор. Поскольку применение подобных механизмов практически всегда имело целью повышение производительности системы со стороны передачи видеоданных, то такие процессоры, как Pentium Pro, Celeron, Pentium II и III имели и имеют внутренний 32-байтный буфер, который позволяет осуществить в одном цикле 32 операции записи, обеспечивая при этом передачу информации в видеопамять графической карты в 8-битном цвете. Кстати, не все программные среды позволяли использовать имеющиеся возможности процессоров для такого пакетирования. Возможности процессоров Athlon "раскрылись" в "Windows NT" только после обновления SP6 (Service Pack 6).

CPU-to-PCI FIFO Cleaning

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

CPU-to-PCI IDE Posting

- включение данного режима позволяет оптимизировать циклы записи из CPU в интерфейс PCI IDE путем предварительной буферизации с отложенной записью. Параметр рекомендуется устанавливать в состояние "Enabled". Может принимать значения: "Enabled" - разрешено, "Disabled" - запрещено.

Опция может носить название "CPU-to-IDE Posting".

CPU to PCI POST/BURST

- данные, переданные от центрального процессора к PCI-шине, могут быть буферизированы (буферы PCI-шины с отложенной записью - "posted") и собраны в пакеты, или нет. Возможны следующие методы:

"POST/CON.BURST" - буферизация и стандартное пакетирование,

"POST/Agg.BURST" - буферизация и активное пакетирование,

"NONE/NONE" - буферизация и пакетирование не установлены,

"POST/NONE" - буферизация установлена, пакетирование нет.

CPU-to-PCI Read Buffer

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

CPU to PCI Read Burst

- включение данной опции ("Enabled") позволит компоновать последовательные циклы чтения центрального процессора в пакетные (burst) PCI-циклы. Все сказанное выше в опции "CPU to PCI Burst Memory Write" верно и для данной опции, ибо речь идет о тех же самых буферах записи. Поэтому представленные ниже вариации наименования опции могут указывать явно на процедуру "чтения", а могут носить и интегрированный характер:

"CPU-to-PCI Bursting", "PCI Read/Write Burs", "PCI Read/Write Burst", "PCI Bursting", "PCI Burst", "PCI Dynamic Bursting", "Dynamic Bursting", "Dynamic PCI Bursting", "PCI Streaming".

И еще одна опция. "PCI Burst Interrupting". А значения ее "Allowed" и "Not Allowed". Столь необычные значения ("разрешить"-"не разрешить") по сути аналогичны блокировке режима пакетирования или его включению. Стоит напомнить, что не все транзакции на PCI-шине являются пакетными. И если рассматриваемые опции отключены, то при занятости шины эти транзакции будут также накапливаться в буфере. Но освобождаться они будут в виде одиночных циклов.

CPU-to-PCI Write Buffer

- в данной опции речь идет об использовании буфера записи данных, поступающих из центрального процессора на шину PCI. При установке параметра в "Disabled" циклы записи не буферизируются (буфер отключен) и направляются непосредственно на PCI-шину. Может возникнуть предположение, что такой способ передачи данных более эффективен. Но, как всегда, возникает проблема компенсирования разницы в скоростных характеристиках между CPU и PCI-шиной. И в этом случае процессор будет постоянно находиться в состоянии ожидания после начала каждого цикла записи и до тех пор, пока шина PCI не сообщит процессору о своей готовности к приему следующих данных. Фактически центральный процессор будет "простаивать", не имея возможности решать другие задачи вплоть до завершения текущего цикла записи. При включении буфера (опция включена) процессор сможет записывать в буфер записи шины PCI по 4 слова данных за один цикл, не ожидая завершения текущего цикла PCI-шины. Буферизированные данные могут быть записаны в PCI-шину с началом нового цикла чтения шины либо в момент готовности шины к приему данных. Очевидно, что применение такого буферирования положительно сказывается на производительности системы. Иногда можно встретить информацию, что такой внутренний буфер чипсета построен на микросхеме 82C586B.

Опция может называться просто - "CPU to PCI Buffer". В этом случае речь может идти уже об интегрированной функции (т.к. буферизация носит двунаправленный характер - чтение/запись) с теми же параметрами: включены буферы/отключены буферы. Но в данном случае надо посмотреть соседние опции. Если есть опция с указанием буфера чтения, то понятно, что имеем дело с буфером записи. Хотя такая неоднозначность в названиях пары опций еще не встречалась.

Упомянем еще одну аналогичную опцию - "CPU-to-PCI Uses Write Buffer". Ее значения - "No" и "Yes".

CPU-to-PCI Write Latency

- опция установки времени задержки перед операцией записи данных из процессора в шину (в тактах системной шины). Установка меньшего значения позволяет увеличить производительность, однако при этом возможно увеличение нестабильности работы системы. Тогда необходимо будет вернуться к большему значению. Возможный ряд значений: 1T, 2T, 3T.

Опция может называться также "Latency for CPU to PCI write", "CPU-to-PCI Write Delay" или "CPU-to-PCI Write Waits". Значения последней опции: "0T", "1T". И речь в ней, явным образом, идет о тактах ожидания.

CPU-to-PCI Write Posting

- содержание этой опции, естественно, окажется читателю уже знакомым. Но! В некоторых чипсетах, например, в том же наборе Orion, используются специальные внутренние буферы отложенной записи (Posted Write Buffers), которые используются для того, чтобы компенсировать разницу в скоростях процессора и шины PCI. Когда эта опция включена ("Enabled"), данные, записываемые из процессора в шину, будут вначале буферизироваться (до 4 двойных слов) и записываться без ожидания инициирования процессором следующего цикла. В отключенном же состоянии ("Disabled" - по умолчанию) циклы записи буферизироваться не будут, и процессору придется все время ожидать окончания предыдущего цикла записи перед началом нового, т.е. пока не закончится обработка запроса в PCI-шину. Такой режим, конечно же, снижает производительность. Но отключение опции может потребоваться и при использовании некоторых видеокарт, а также при работе процессора на определенных скоростях. Это может быть связано как с аппаратными особенностями, так и с процедурами "разгона".

Опция может носить множество названий: "CPU-to-PCI Posting", "CPU-to-PCI Write Post", "CPU-to-PCI Post Write", "CPU to PCI post memory write", "CPU/PCI Post Mem. Write", "PCI Posted Write Buffer", "PCI Post Write", "CPU-to-PCI Post Writes". Последняя опция может также предложить вариант с установкой времени задержки: "3T", "4T". Такие же значения (имеются ввиду временные параметры) предлагают и опции "PCI Post Write Timing", "CPU-to-PCI Post Write Timing". В некоторых случаях наличие возможности задержать циклы записи в PCI-шину является конечно более предпочтительным, чем полный отказ от использования буферирования с "отложенной" записью.

Еще конкретнее на временные характеристики (при задержке циклов записи) указывает опция "CPU/PCI Post Write Delay".

В завершение обзора опция "PPro to PCI Write Posting". Ничего особенного в использовании процессора Pentium Pro нет, только желательно данную опцию запретить, если речь идет о серверной системе.

Продолжение следует

Страница автора: http://www.istc.kiev.ua/~santana

 


Copyright © "Internet Zone"info@izcity.com 
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izcity.com/.
При наличии у копируемого материала авторов и источника информации - их также нужно указывать, наряду со ссылкой на нас. Подробнее условия использования материалов смотрите здесь.