Bios фиксация частот медленных pci устройств. Объединенный открытый проект

У меня есть подозрение, что в недрах Microsoft есть специальная команда разработчиков, которая специально заботится, чтобы у всего, что связано с командной строкой Windows, были грабли, подводные камни и проблемы.

Примеры:

  1. %comspec% (cmd.exe) требует, чтобы все параметры после /C или /K были в кавычках. Наример, нельзя выполнить
    cmd.exe /C "%ProgramFiles%\notepad2\notepad2.exe" "%USERPROFILE%\Documents\test.txt"
    , надо
    cmd.exe /C ""%ProgramFiles%\notepad2\notepad2.exe" "%USERPROFILE%\Documents\test.txt""
    Что ещё хуже – cmd.exe маскирует этот косяк, и там, где "замечает" свой вызов, сам подставляет внешние кавычки (причём не всегда угадывает). Но остальные программы про это не в курсе! Например, это очень сильно мешает при использовании планировщика Windows.
  2. START "notepad.exe" – не работает. Работает
    START "" "notepad.exe"
  3. "%windir%\System32\find.exe" /n "4" "test.txt" отдельно – работает.
    FOR /F "usebackq tokens=*" %%A IN (`"%windir%\System32\find.exe" /n "4" "test.txt"`) DO ECHO %%A – не работает. Работает
    FOR /F "usebackq tokens=*" %%A IN (`%windir%\System32\find.exe /n "4" "test.txt"`) DO ECHO %%A
  4. ECHO 123>test.txt – не работает.
    ECHO "123">test.txt – записывает "123" с кавычками.
    ECHO 123 >test.txt – с пробелом.
    Чтобы заработало без пробела, надо писать
    ECHO 12^3>test.txt
    или
    (ECHO 123)>test.txt
  5. ECHO – выводит ECHO is on. или локализованную фразу (по русски – четыре длинных слова). Чтобы вывести пустую строку, надо писать
    ECHO.
    (с точкой слитно; также работает ECHO\ , ECHO] и т.п.)
  6. Если внутри блока ( … ) будет комментарий со скобками, например, rem (проверка) , интерпретатор командной строки прочтёт закрывающую скобку как конец блока.
  7. FOR %%A in ("C:\test.file") DO ECHO %%A выводит C:\test.file независимо от наличия там test.file .
  8. Некоторые команды не меняют код ошибки ERRORLEVEL при вызове с неправильными параметрами командной строки. Самые назойливые примеры:
    1. NET SHARE (при этом NET USER – меняет)
    2. defrag.exe (на Win8 и выше его стоит запускать с ключом /O , на 7 этот ключ не поддерживается)
  9. До Windows Vista не было предустановленной переменной среды, в которой было бы указано расположение %USERPROFILE%\Local Settings\Application Data . В Vista добавили %LOCALAPPDATA% , но ещё добавили папку %USERPROFILE%\AppData\LocalLow , расположение которой снова не указано ни в какой переменной среды.
  10. Узнать hostname – нетривиальная задача. Есть переменная %COMPUTERNAME% , но там всегда в верхнем регистре и обрезано, если для NetBIOS оно "слишком длинное". Впрочем, его можно прочитать из реестра, только…
  11. При чтении ключей с помощью reg.exe проблемы начинаются, если в названии ключа есть пробелы, поскольку reg.exe никогда не выводит на экран только значение – оно выводится всегда после названия ключа и типа значения. Так что, чтобы, например, прочитать hostname, надо писать

    FOR /F "usebackq tokens= 2 *" %%I IN (`REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname"`) DO SET "Hostname=%%~J"

    FOR /F "usebackq tokens= 3 *" %%I IN (`REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname"`) DO SET "NVHostname=%%~J"

    Интересно, что reg.exe был уже в XP (в NT4 и 2000 он был в Resource Kit). Но XP"шная команда в выводе REG QUERY разделяет поля tab"ом (символ с кодом 8). Поскольку в названиях ключей tab"ов не бывает, такой вывод намного проще парсить (однако, от шапки всё равно никак не избавиться). Примерно так:

    FOR /F "usebackq tokens= 2 * delims= " %%I IN (`REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname"`) DO SET "Hostname=%%~J"

    указанный жирным курсивом

    должен быть в тексте пакетного файла в виде одного символа с кодом 8, а не в виде треугольных скобок и букв. В таком случае число после tokens= не зависит от количества пробелов в названии ключа.
    Кстати, если читаете путь из реестра, молитесь, чтобы там не было международных символов. Обнаружить их в командной строке – нереально, а выдаются reg"ом они в кодировке ANSI (напоминаю, cmd.exe работает в OEM), поэтому при наличии не-ASCII символов, при попытке совершить chdir (или что угодно другое) пакетный файл будет поджидать облом.
  12. Копирование папок – эпичный пример фейла (или win"а команды из первого абзаца?). Типичная команда для копирования папки в Windows:

    xcopy s:\WindowsImageBackup r:\WindowsImageBackup /E /I /Q /G /H /R /K /O /Y /B /J

    смогли с первого раза посчитать количество ключей? Ну ок, наверное, не все они требуются. Вот необходимый минимум, чтобы xcopy не остановился где-нибудь посередине и не задал тупой вопрос, ожидая интерактивного ответа: /E /I /G /H /R /Y . Да, кстати, Вы использовали copy ? Облом будет поджидать Вас незаметно:) Ключи copy указываются перед аргументами откуда и куда, xcopy – после аргументов.
  13. %comspec% /U /C "ECHO 123>test.txt" записывает файл в UNICODE.
    %comspec% /U /C "FOR /F %A IN (test.txt) DO ECHO %A" не может прочитать его!

- (поддержка спецификации шины PCI 2.1). При разрешении этого параметра поддерживаются возможности спецификации 2.1 шины PCI. Спецификация 2.1 имеет два основных отличия от спецификации 2.0: максимальная тактовая частота шины увеличена до 66 МГц и вводится механизм моста PCI-PCI, позволяющий снять ограничение спецификации 2.0, согласно которой допускается установка не более 4-х устройств на шине. К тому же внедрение спецификации 2.1 позволило оптимизировать совместное сосуществование PCI- и ISA-шин (подробнее в опции "Delayed Transaction"). Запрещение этого параметра имеет смысл только при возникновении проблем после установки дополнительной PCI-платы (как правило, проблемы могут возникнуть только с достаточно старыми PCI-устройствами), а также с ISA-устройствами, никак не желающими буферирования своей информации, а значит также не поддерживающими эту спецификацию. Параметр может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Опция может называться "PCI 2.1 Compliance".

PCI Clock Frequency

Опция для установки частоты шины PCI. В приведенном виде такая опция была внедрена на первых "пентиумных" машинах, а затем перенесена на 486-е системы с процессорами AMD и PCI-шиной. Частота шины через множитель "привязывалась" к частоте центрального процессора и имела следующий ряд значений: "CPUCLK/1.5" (по умолчанию), "CPUCLK/2", "CPUCLK/3" и фиксированные "14 Mhz" (было и так!).
Опция "PCI Clock Speed" предлагала следующие значения: "Same as CPU", "2/3 CPU", "CPU/2", "1/8 CPU". Опция "HCLK PCICLK" представляла собой делитель между системной частотой и частотой локальной шины: "1-1", "1-1.5", "AUTO". Опция "PCI Bus Frequency" предлагала значения "CPUExt/3", "CPUExt/2.5", "CPUExt/2", и они связывали частоту PCI-шины с системной. Опция "CPU Host/PCI Clock" лишь через значение "Default" позволяла для PCI-шины получить стандартные 33 МГц.
Предварительная картина была бы неполной без двух совместных опций. Опция "PCI Clock Speed Override" через значение "Enabled" вообще давала разрешение на "переопределение" частоты PCI-шины, а вот опция "PCI CLK" могла бы удивить и искушенного пользователя. Значение "Asynchronous" позволяло выбрать для PCI-шины произвольную частоту. А вот значение "Synchronise" "жестко" связывало тактовую частоту системной шины и частоту PCI-шины. Только предварительно с помощью джамперов на системной плате необходимо было установить системную частоту и множитель для процессора и в итоге получить, например, для Pentium 120 частоты: 120, 60 и 30 МГц (PCI-шина).
Значительно более современный вариант - это опция "PCI/AGP Clock". Это означает, что данной опцией устанавливаются частоты для двух шин, хотя еще не так давно различные версии BIOS не предоставляли таких возможностей. Приведенный вариант опции в большей степени предназначен для "разгона" устройств на PCI-шине (весьма опасного) и для AGP. Значения опции, т.е. частоты шин, напрямую связаны с установками частоты системной шины в опции "CPU Host Clock". Если последняя превышает или равна 100 МГц, то для PCI и AGP устанавливаются значения, соответственно равные "CPU Host Clock"/3 и /1.5. Для более низкой частоты шины процессора деление производится на 2 и 1. Поэтому, если системная частота равна 66 МГц, то для PCI и AGP получаем стандартное соотношение 33/66 МГц. Тот же, т.е. стандартный, вариант имеет место при частоте в 100 МГц. Все остальные значения частоты системной шины ведут к "разгону" обоих интерфейсов.
Современные системы с опциями типа "System/PCI Frequency (MHz)" предоставляют широчайшие возможности для "разгона", а именно не набор из нескольких значений, а солидное меню с целым рядом параметров, начиная со значения "100/33" (делитель 3:1) и заканчивая значением "178/44.51" (делитель 4:1) и с шагом для системной шины в 1 МГц. Все это было бы замечательно, если бы не присутствовал элемент риска. Практически все производители системных плат "успешно" стали решать задачи "разгона" PCI- и AGP-интерфейсов, отодвинув на последний план возможность ускорения системной шины и процессора без "втягивания" в этот "разгон" остальных системных компонентов. Первой "ласточкой" в этом "разогнанном" мире была системная плата от "Gigabyte" - GA8IRXP , предложившая дополнительные отдельные делители для каждой из шин и тем самым давшая возможность по сути устанавливать оптимальные частоты интерфейсов PCI и AGP независимо от "разогнанного" системного.

PCI Dynamic Decoding

Установка в "Enabled" позволяет системе запоминать PCI-команду, которая только что была запрошена. Если последующие команды совпадают с некоторой адресной областью, циклы записи будут автоматически интерпретироваться как PCI-команды.

PCI Latency Timer (PCI Clocks)

- (таймер времени ожидания для шины PCI). Значение этой опции указывает, в течение какого времени (в тактах PCI-шины) поддерживающая режим "Busmaster" PCI-карта может сохранять контроль над PCI-шиной, если к шине обращается другая PCI-карта. Фактически это и есть таймер, ограничивающий время занятия PCI-шины устройством-задатчиком шины. По истечении заданного времени арбитр шины принудительно отбирает шину у задатчика, передавая ее другому устройству. Допустимый диапазон изменения этого параметра - от 16 до 128 с шагом, кратным 8. Правда, в некоторых случаях добавляется еще значение "Auto Configured" (по умолчанию), что значительно облегчает сомнения и мучения пользователя.
Значение параметра необходимо изменять осторожно, так как оно зависит от конкретной реализации материнской платы, и только в случае, если в системе установлены по меньшей мере две PCI-карты, поддерживающие режим "Busmaster", например, SCSI- и сетевая карты. Графические PCI-карты не поддерживают режим "Busmaster", скорее, не поддерживали. Чем меньше устанавливаемое значение, тем быстрее другая PCI-карта, требующая доступа, получит доступ к шине. Если требуется выделить для работы, например, SCSI-карты больше времени, то можно увеличить значение для PCI-слота, в котором она находится. Значение для сетевой карты, например, соответственно необходимо уменьшить или вообще установить равным 0, хотя в некоторых случаях установка 0 не рекомендуется. В общем случае, какое значение параметра пригодно и оптимально для данной системы, зависит от применяемых PCI-карт и проверяется с помощью тестовых программ и опытной эксплуатации. Необходимо также учитывать, в какой степени "карты-конкуренты" чувствительны к возможным задержкам. Учитывая вышесказанное, вспомним о существовании еще одного "master"-устройства, а именно - центрального процессора. Так что слишком заниженное значение времени ожидания может сказаться на эффективности управления процессором локальной шины.

Опция также может носить названия: "PCI Bus Time-out", "PCI Master Latency", "Latency Timer", "PCI Clocks", "PCI Initial Latency Timer". Для последней опции ряд возможных значений имел вид: "Disabled", "16 Clocks", "24 Clocks", "32 Clocks". Еще одна старенькая опция, "PCI Bus Release Timer", имела такой набор значений: "4 CLKs", "8 CLKs", "16 CLKs", "32 CLKs".
И еще одно очень важное замечание. В свое время эта опция (и ей подобные) вводились с учетом совместного существования PCI- и ISA-шин. ISA-шина позволяла использовать одно "master"-устройство. Это применялось редко, как раньше, так и в последние годы существования ISA-шины. Зато PCI-шина дала возможность одновременного использования нескольких "master"-устройств. Учитывая различия в скорости шин, а тем более в их пропускной способности, необходимо было решить проблему совместной работы "master"-устройств на PCI-шине и стандартных устройств на более медленной ISA-шине. Особенно это касалось распространенных в то время звуковых и сетевых карт для ISA-шины, обладавших незначительным объемом буферной памяти, т.е. чувствительных к любым задержкам при передаче данных.
"AMI BIOS" позволял выбрать значение параметра в диапазоне от 0 до 255 тактов с единичным шагом. Значение "66" устанавливалось по умолчанию, хотя меньшее значение владения шиной PCI-устройством оказывалось более предпочтительным. Более свежие версии "AMI BIOS" стали менее демократичны: 32, 64, 96, 128, 160, 192, 224, 248 и "Disabled". К тому же "мелькнуло" еще одно название опции - "Master Latency Timer (Clks)", а по умолчанию стало устанавливаться значение "64".
Правда, это еще не весь возможный перечень. Функции "Latency Timer Value" и "Default Latency Timer Value" применяются совместно. Если в последней опции установить "Yes" (оно же и по умолчанию), то тогда первая функция будет проигнорирована. Чуть выше уже зашла речь о возможности установки параметров для отдельных слотов. Вот как реализует такую возможность "Phoenix BIOS":
"PCI Device, Slot #n",
"Default Latency Timer: ",
"Latency Timer: ",
Естественно, что для работы с этими параметрами выводится отдельное конфигурационное подменю. Для n-го слота пользователь может выбрать установку по умолчанию ("Yes"), тогда в нижнем поле будет выведено значение в 16-ричной форме. При этом доступ пользователя к полю "Latency Timer:" будет заблокирован. Если же в опции "Default Latency Timer:" установить "No", то появится возможность вручную установить значение из ряда: 0000h .... 0280h. Последнее значение соответствует десятичному 640. По умолчанию устанавливается 0040h (64 такта).
Еще один вариант значений опции "Latency Timer": "20h", "40h", "60h", "80h", "A0h", "C0h", "E0h", "Default" (т.е. "40h").
Поэтому при конкретном решении стоящей перед пользователем задачи (или проблемы) надо исходить прежде всего из возможностей чипсета, версии BIOS и используемых карт расширения.

PCI Parity Check

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

PCI Preempt Timer

- (таймер времени вытеснения для шины PCI). На первый взгляд по смыслу эта функция аналогична функции "PCI Latency Timer", возможна даже некоторая путаница, хотя в данном случае кое-что наоборот. Значение этой опции указывает, в течение какого времени (в тактах PCI-шины, или локальных тактах - LCLKs) поддерживающая режим "Busmaster" PCI-карта сможет не контролировать шину, а находиться в состоянии ожидания пока этой шиной владеет другая карта. Арбитр шины отслеживает указанный временной интервал с момента подачи запроса, после чего ожидающее "master"-устройство вытесняет своего "товарища".
Для выбора предагаются значения из ряда: 5, 12, 20, 36, 68, 132, 260, в цифровом виде или с отображением единицы измерения - "5 LCLKs" и т.д. Обязательным является параметр "No Preemption" (или "Disabled"). Причем последний, как правило, устанавливается по умолчанию. Эта опция в таком виде уже не применяется, так что встреча с ней на старых машинах может вызвать некоторые трудности. Во всяком случае при наличии хотя бы двух "master"-устройств на PCI-шине значение "Disabled" (или аналогичное) должно быть заменено на более оптимальное.
Опция может называться и "PCI Preemption Timer".

Peer Concurrency

- (параллельная работа или, дословно, - равноправная конкуренция). Этот параметр разрешает/запрещает одновременную работу нескольких устройств на PCI-шине. При включении опции включается дополнительное буферирование циклов чтения/записи в чипсете. Но могут возникнуть проблемы, если не все PCI-карты готовы поддерживать такой режим работы. В этом случае работоспособность системы проверяется опытным путем.
Действие этой опции затрагивает и совместную работу PCI- и ISA-шин. Например, шинные PCI-циклы могут перераспределяться и буферизироваться во время ISA-операций, таких как передача по DMA-каналам в режиме "Bus-Master". Параметр может принимать значения:
"Enabled" (по умолчанию) - разрешено,
"Disabled" - запрещено.
Опция может называться и "PCI Concurrency" или "Bus Concurrency". Дополнительные устройства, "жаждущие конкуренции", появляются в опциях "PCI/IDE Concurrency" или "PCI-to-IDE Concurrency".
PERR#
SERR#
- "AMI BIOS" через обычные "Enabled" (разрешено, включено) и "Disabled" (запрещено, отключено) предлагает пользователю "поработать" с интерфейсными сигналами PCI-шины: PERR# и SERR#. Этим сигналам, для справки, соответствуют контакты шины - B40 и B42 соответственно. Несколько слов о самих сигналах.
"PERR#" - I/O PCI Parity Error. Сигнал выставляется приемником данных на шине через один шинный такт после выдачи сигнала PAR (Parity Error - контакт A43). Сигнал PERR# становится активным, если определена ошибка по четности на PCI-шине. При этом в PCICMD-регистре по сигналу PERR# устанавливается бит "Enable". Данной опцией как раз можно запретить установку сигнала об ошибке ("Disabled" устанавливается по умолчанию).
"SERR#" - I/O PCI System Error. В итоге также в PCICMD-регистре устанавливается бит "SERRE" (SERR# Enable). Это интегрированный сигнал, для выставления которого требуется выполнение одного из условий:
1. Выставляется сигнал PERR# на PCI-шине, что контроллируется битом 3 ERRCMD-регистра,
2. Сигнал SERR# будет выставлен через один шинный такт после определения нарушения передачи данных в процессе инициированных PCI-циклов,
3. Сигнал SERR# будет выставлен при ECC-операциях. ECC-ошибка сигнализируется через ERRCMD-регистр управления при корректируемой однобитной ошибке или множественной некорректируемой,
4. Сигнал SERR# будет выставлен, когда ошибка по четности на PCI-шине определена во время передачи адресных данных с одновременной установкой некоторых сигналов ошибки в других регистрах,
5. Могут быть дополнительные ситуации, например, выставление входного сигнала ошибки G-SERR# в бите 5 ERRCMD-регистра.

Как Вам уже известно, почти сразу после включения компа через встроенный в корпус динамик слышен короткий сигнал, который говорит, что «Все нормально парень (или девушка, но это реже)! Можешь работать дальше!». Но иногда, вместо этого, приятного слуху писка раздается целая трель непонятных сигналов и как серпом по … сами знаете по чему. В данной статье мы разберемся, что это за странные сигналы и почему они появляются.

Короче, комп не включается. Че делать? Выбрасывайте системный блок в окно и идите пить пиво 🙂 Ну а если серьезно, то знайте, что Вы очень может быть попали на бабки, но может такого и не быть. Зачастую, достаточно включить комп по новой и все. Если это не помогло, тогда внимательно слушайте сигнал и запомните, скока коротких и скока длинных гудков. Если Вам медведь на ухо наступил, то это Ваши проблемы, но если со слухом все в порядке, Вы можете отличить короткий сигнал от длинного, то сверьтесь с таблицами в конце статьи. Там написаны возможные неисправности. Обратите внимание на слово «возможные». Дело в том, что программа POST, ни есть мощная программа для тестирования железа. Она тоже может ошибаться.

Так что же делать после того, как Вы расшифровали ошибку. Попробуйте вынуть геморройную плату и вставить ее назад или просто проверьте, хорошо ли она «сидит» в разъеме. Только делайте это аккуратно, предварительно отключив кабель питания от сети и сняв статическое напряжение с пальцев рук (и ног) коснувшись рамы корпуса. Если проблемы со CMOS, то специальным джампером на системной плате обнулите настройки (или просто вытащите на несколько секунд батарейку). Если геморрой с клавой, то проверьте соединение оной с системным блоком, целостность кабеля. Если геморрой с блоком питания, проверьте, а подключили ли Вы его к материнской плате, а если подключили, то правильно ли это сделали. Кстати, у меня лично был случай, когда я не правильно подключил разъем мыши к материнской плате (наоборот), комп не включался и никаких сигналов не было!

Но если Вам ничего не помогло, то к сожалению придется нерабочий девайс поменять, хотя остается надежда на то, что BIOS Вашей материнской платы просто не может работать с ним. В таком случае необходимо его, BIOS, перешить. Нo это уже тема для отдельной статьи.

Итак, таблицы звуковых сигналов BIOS от AMI и AWARD. Один короткий сигнал обоих фирм означает, что все ОК. В таблицах длинный сигнал обозначен буковкой «д «, а короткий — «к «.

AMI

Возможная
неисправность


— *

Накрылся блок
питания


Ошибка четности
ОЗУ


Ошибка в первых 64
кБ ОЗУ


Неисправность
системного таймера


Накрылся CPU


Накрылся
контроллер клавы


Накрылась
системная плата


Нарылась память
видеокарты


Ошибка контрольной
суммы BIOS


10к

Невозможна запись
в CMOS


11к

Накрылся кэш,
расположенный на системной плате


1д+2к

Накрылась
видеокарта


1д+3к


1д+8к

Не подключен
монитор

AWARD

Возможная
неисправность


Мелкие ошибки **


Ошибка контроллера
клавы


1д+1к

Ошибки в ОЗУ


1д+2к

Накрылась
видеокарта


1д+3к

Ошибка
инициализации клавы


1д+9к

Ошибка при чтении
из ПЗУ


к, повторяющийся

Накрылся блок
питания


д, повторяющийся

Проблемы с ОЗУ


непрерывный

Накрылся блок
питания

* — отсутствие какого-либо звукового сигнала.

** — в большинстве случаев это проблемы в CMOS Setup или с системной платой.

Ну вот на этом и все.

Дай бог Вам никогда не услышать эти сигналы!

PCI Latency Timer

Таймер задержки на шине PCI. Инициатор (Master) и целевое устройство на шине PCI должны иметь определенные ограничения на количество циклов ожидания, которые они могут добавлять к текущей транзакции. Кроме того, инициирующий агент должен иметь программируемый таймер, ограничивающий его присутствие на шине, как задающего агента в периоды максимальной загрузки интерфейса. Аналогичное требование предъявляется и к мостам, осуществляющим обращение к устройствам с большим временем доступа (ISA, EISA, MC интерфейсов), причем данные мосты должны разрабатываться исходя из жестких требований отсутствия значительного влияния низкоскоростных устройств на общую производительность шины PCI.

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

Каждый слот расширения компонент интерфейса PCI имеет четко определенное количество тактов для получения непрерывного доступа к системной шине. С момента его получения каждый доступ сопрягается с начальной задержкой (пенальти), а соотношение между количеством холостых циклов и активных улучшается с увеличением циклов задержки шины (PCI Latency). В общем случае, допустимый диапазон значений задержек лежит в пределах от 0 до 255 тактов шины PCI с шагом, кратным 8. Регистр, управляющий данной задержкой, должен быть доступен для записи в случае, если устройство может осуществлять пакетный доступ к шине более чем за две фазы, и должен оставаться в режиме только для чтения (Read-Only) для устройств, обеспечивающих свой доступ за две и менее фазы в пакетном режиме (аппаратное значение таймера в этом случае не должно превышать 16 тактов PCI). Увеличение задержки, например, с 64 до 128 циклов шины должно улучшать системную производительность на 15% (производительность также увеличивается, если значение задержки изменить с 32 до 64 тактов). Если в системе используется чипсет с хабовой архитектурой (например, все Intel 8xx), то значение PCI Latency, присутствующее в настройках BIOS, относится только к мосту PCI-to-PCI AGP а не к Host-to-PCI, поскольку MCH (хабы основных интерфейсов, входящие в состав набора логики) не поддерживают PCI Latency.

AGP 2X Mode

Спецификация ускоренного графического порта (Accelerated Graphics Port) в своей основе содержит общие команды управления PCI с разницей в использовании возможности проведения прямых операций в памяти (DiME или DME - Direct (in) Memory Execute), наличия порта адресации (SBA - SideBand Addressing) и использования режима сквозной записи в системное ОЗУ (Fast Write).

Используя режим DiME, видеоадаптеры на основе шины AGP могут функционировать в двух режимах. В режиме DMA контролер ведет себя как обычное видеоустройство PCI, используя только собственную локальную память для хранения текстур и выполнения операций - режим функционирования DiME отключен. В случае использования режима Execute контроллер "унифицирует" часть системной памяти (именно этот объем указывается в параметре "AGP Aperture Memory Size") для хранения текстур, используя специфическую схему переадресации (GART - Graphic Address Remapping Table), динамически переназначая 4KB-страницы. Некоторые производители видеоконтроллеров не вводят поддержку режима DiME (AGP-текстурирование), используя интерфейс AGP только для совместимости, а реализуя лишь режим DMA. По сути дела, такой акселератор работает как обычный PCI-видеоадаптер лишь с "механической" разницей - частота функционирования увеличена в два раза: 66MHz у AGP против 33MHz у PCI.

Специфический порт адресации SBA дает возможность, используя фронт и срез синхросигнала, увеличивать результирующую (ее еще называют "эффективной") частоту шины AGP, не увеличивая при этом задающей (опорной) - 66MHz. AGP транзакции (пакет, в пределах которого несколько операций выполняются, как единое целое) используются только в режиме управления шиной (Bus Mastering) - в то время как обычная PCI транзакция в лучшем случае может передавать четыре 32bit слова за 5 тактов (так как передается адрес по линиям адреса/данных для каждого пакета из четырех слов), транзакция AGP может использовать Sideband для передачи адреса небольшими частями одновременно с данными. Во время передачи пакета из четырех слов передаются четыре части адреса для следующего пакетного цикла. По завершении цикла адрес и информация запроса для следующего пакета уже переданы, поэтому следующий пакет из четырех слов может стартовать немедленно. Таким образом, по AGP можно передать четыре слова за 4 цикла шины, а не за пять, необходимых для PCI, что, с учетом 66MHz частоты синхронизации, в идеале дает пиковую пропускную способность 264MBps.

Для более быстрой передачи информации процессор сначала записывает данные в системную память, а графический контроллер делает их выборку. Однако в случае передачи большого объема данных, пропускной способности системной памяти может не хватить, для чего внесен сквозной режим передачи - Fast Writes. Он позволяет процессору напрямую, не обращаясь к системной памяти, передавать данные графическому контроллеру, что, безусловно, достаточно ощутимо может поднять производительность графической подсистемы и снять часть нагрузки с основной подсистемы памяти ПК. Тем не менее, данный режим поддерживается не всеми системными логиками - состояния статусных регистров отдельных чипсетов запрещают на самом низком уровне его использование. Так, режим сквозной записи на данный момент реализован в некоторых чипсетах от Intel (серия i820, i840, i850 и i845x) и VIA (Apollo 133A, KX133, KT133 и все последующие). Системные логики i440хX, i810, i815, AMD-750, AMD-760 и AMD-760MPx данный режим не поддерживают.

Режим AGP 2X позволяет включать/выключать (Enable/Disable) удвоенный протокол передачи данных по интерфейсу AGP. Как уже говорилось, передача данных в спецификации AGP 1X осуществляется по фронту синхросигнала, используя 66MHz тактовый сигнал, обеспечивая в пике пропускную способность в 264MBps. Включение режима AGP 2X Mode удваивает пропускную способность при помощи передачи данных по фронту и срезу синхросигнала до теоретического "потолка" в 528MBps. При этом, понятно, обязательна поддержка спецификации AGP2X как базовой логикой, так и графическим контроллером. Выключение данного режима рекомендуется, если наблюдается нестабильная работа системы или планируется разгон (не учитывается для базовых логик с асинхронным интерфейсом AGP - например, серии i850 и i845x).

AGP Aperture Memory Size

Гипотетическое преимущество интерфейса AGP относительно PCI, если не учитывать схему синхронизации, состоит в том, что он позволяет использовать системное ОЗУ как часть унифицированной архитектуры (UMA - Unified Memory Architecture) для хранения данных, применяя ранее упоминавшийся режим DiME. Графический адаптер может получать доступ к данным и работать с ними прямо в системной памяти, минуя собственную локальную память. Эта особенность требует отведения четко заданного объема системного ОЗУ для использования под операции с графическими данными. По мере увеличения объема локальной видеопамяти графического контроллера, данная особенность резервирования части системной памяти, понятно, теряет собственную релевантность, в результате чего существует несколько рекомендаций по использованию объема отводимого участка основной памяти.

Вообще, апертура является частью диапазона адресного пространства системного ОЗУ, отведенного под графическую память. Ведущие циклы, подпадающие под этот диапазон апертуры, пересылаются к интерфейсу AGP без необходимости трансляции. Размер апертуры AGP определяется, как максимально используемая AGP память, умноженная на два (х2), плюс 12MB - это значит, что размер используемой памяти AGP составляет менее половины размера апертуры AGP. Данное обстоятельство объясняется тем, что система требует не кэшированную память AGP, плюс аналогичную по объему область памяти для комбинированной записи и дополнительные 12MB для виртуальной адресации. Физическая память освобождается по необходимости только когда API (программный слой) делает соответствующий запрос создания нелокальной поверхности (Create Non-local Surface). Операционные системы Windows 9х, например, используют эффект "водопада" (Waterfall Effect), когда поверхности сначала создаются в локальной памяти, а в случае ее заполнения, процесс создания поверхности передается в AGP память, а затем - в системную. Таким образом, использование ОЗУ автоматически оптимизируется для каждого приложения, где AGP- и системная память не используются без абсолютно крайней необходимости.

Однозначно дать схему определения оптимального размера апертуры очень сложно. Тем не менее, оптимум резервирования истемного ОЗУ может определяться следующей формулой: общий объем системного ОЗУ/(объем видео ОЗУ/2). Например, для видеоадаптера с 16MB видеопамяти в ПК со 128MB системного ОЗУ апертура AGP составит 128/(16/2)=16MB, а для видеоадаптера с 64MB видеопамяти в ПК с 256MB системного ОЗУ - 256/(64/2)=8MB. Данное решение является своего рода аппроксимацией - реально в любом случае рекомендуется отводить под апертуру не менее 16MB. Необходимо также помнить, что размер апертуры (по схеме 2 N , или выбор между 32/64 MB) прямо не соответствует получаемой в результате производительности, поэтому увеличивая его до огромных пропорций, производительность не улучшиться. В настоящее время, при среднем объеме системного ОЗУ 128-256MB, практическим правилом считается иметь размер апертуры AGP от 64MB до 128MB. Превышая 128MB "барьер", производительность не ухудшается, но все равно лучше придерживаться "стандартных" 64-128 MB, чтобы размер таблицы GART не был слишком большой.

Другой "лобовой" рекомендацией, являющейся скорее результатом множественных практических экспериментов, может быть отведение под AGP Aperture Memory Size половины объема системного ОЗУ с учетом возможности BIOS: 8/16/32/64/128/256 MB (схема с шагом 2 N) или выбор между 32/64 MB. Однако в системах с небольшим (до 64MB) и с большим (от 256 и более) объемом ОЗУ данное правило не всегда работает (сказывается эффективность), кроме чего, как говорилось ранее, надо еще и учитывать объем локального ОЗУ самой видеокарты. Поэтому рекомендации в данном контексте можно представить в виде следующей таблицы с учетом возможности BIOS:

Зависимость размера апертуры от объема системного ОЗУ

Объем системного ОЗУ

AGP Aperture Size

Объем системного ОЗУ

AGP Aperture Size

Spread Spectrum Modulated

Генератор синхросигналов (Clock Synthesizer/Driver) является источником пульсаций, предельные величины которых образуют электромагнитную интерференцию - электромагнитное излучение (помехи), проникающее за пределы среды передачи, главным образом за счет использования высоких частот для несущей и модуляции. В основе эффекта EMI лежит сложение двух или более частот, в результате чего спектр сигнала приобретает сложный характер. Спектральная модуляция тактового импульса (SSM, по-другому SSC - Spread Spectrum Clock) позволяет равномерно распределить ничтожно малые значения общего фона электромагнитного излучения, исходящего от любого функционирующего компонента системы, по всему частотному спектру синхроимпульса. Иными словами, SSM позволяет "скрыть" высокочастотные помехи на фоне полезного сигнала путем внесения в его спектр еще одного дополнительного сигнала, функционирующего в частотном диапазоне нескольких десятков килогерц (такого рода процесс и называется модуляцией).

Механизм SSM предназначается для уменьшения интерференции гармоник высших типов частоты функционирования шины. Теория сигналов говорит о том, что любая форма волны порождает высшие типы гармонических колебаний, которые аккумулируясь впоследствии могут стать помехой для основного сигнала. Одним из путей обхода данной проблемы является воздействие на основной сигнал определенной частоты модулирующих колебаний гораздо более низкой, что является результатом вариаций ±1% от номинального значения задающей. Обычно реализация SSM сводится к использованию двух разных значений, номинальная частота для которых является опорной, или установка основной частоты как максимума (низкопрофильная модуляция) - чаще к опорной. В действительности же существует масса причин и методов.

В основе стоит факт, что с увеличением частоты функционирования электронные компоненты излучают электромагнитные помехи, которые, в свою очередь, могут стать причиной интерференции сигналов других устройств. Поскольку любое устройство, которое превышает предел допустимых значений влияний сторонних сигналов, не проходит сертификацию федеральной комиссии по связи (FCC - Federal Communication Committee), важно понять методы определения уровня EMI. Для начала тестируемое устройство вводят в режим радиоприемника и определяют диапазон частоты приема в широком спектре с измерением интерференция с видео и аудио сигналами. Чувствительность полосы пропускания тестируемого устройства определяется в порядке 1MHz. Если основная рабочая частота модулируется, расширяя полосу пропускания на более чем типичные 4-5 MHz, спектр электромагнитной интерференции изменяется: вместо острых резких пиков (обычная форма проявления EMI) появляются так называемые "гауссовы колокола" (форма сигнала, сверху ограниченная кривой, описываемой гауссовым распределением), в результате чего результирующая амплитуда сигнала становится значительно меньше (1/3-1/4 от размера оригинального пика EMI). Однако, несмотря на это, энергетика остается постоянной. Поскольку ширина импульса становится больше, а закон сохранения энергии должен выполняться, амплитуда этого сигнала будет меньше.

Разрешение (Enable) модуляции спектра может уменьшить уровень ЭМИ, вызванный скоплением близкорасположенных компонентов, функционирующих на высоких частотах, и улучшить стабильность работы. В случаях использования внештатных условий ("разгон"), включение SSM может привести к нестабильной работе системы из-за того, что с большим значением коэффициента умножения, применяющегося в настоящее время, ±0.5% модуляции могут стать причиной разницы настолько, насколько, скажем, 10MHz для одного цикла модуляции. Иными словами, если процессор функционирует на предельной частоте, ее увеличение еще на 10MHz может стать фатальным, поэтому при работе системы во внештатных условиях функционирования (Overclocking) SSM настоятельно не рекомендуется использовать (Disable).

Autodetect DIMM/PCI Clk

В течение нормального функционирования системы синхросигналы от формирователя передаются через все слоты расширения интерфейсов памяти и PCI. Каждый отдельный слот и его выводы имеют собственные индуктивность, полное сопротивление и емкость, приводящие к ослаблению и затуханию синхросигнала. В добавление к этому сторонние сигналы являются источником EMF (Electric Motion Force, ЭДС) и EMI. Рассматриваемый параметр помогает автоматически определять и настраивать частоту функционирования модулей памяти и адаптеров интерфейса PCI. Его включение (Enable) позволяет уменьшить влияние электромагнитной интерференции на устанавливаемые в систему компоненты, что, в свою очередь, повышает общую стабильность работы всей системы в целом.

Резюме

Итак, ясно одно: однозначно высокоскоростную и чрезвычайно надежную систему можно получить, используя только достаточно качественную память. Это значит, что на данный момент современная память, если она, например, SDRAM, должна жестко удовлетворять все техническим требованиям, выдвигаемым, как минимум, в рамках спецификации РС100. Приобретая память, отвечающую требованиям РС133, Вы получаете дополнительную гарантию, что те параметры, которые описывались ранее, можно смело установить в рекомендуемый минимум (максимум) и получить максимально быструю и одновременно надежную систему. Саму степень "способности к разгону" и отказоустойчивости каждый модуль памяти, равно как и системная (материнская) плата, определяет по-своему. Именно поэтому четкой рекомендации относительно устанавливаемых параметров дать практически нереально. Но, с другой стороны, есть уже готовая схема настройки, придерживаясь которой можно, затратив некоторое время, создать собственную систему, обеспечивающую максимальные показатели производительности и гарантированного функционирования. На вопрос, как поведет себя модуль памяти, да и система в целом, с установленными в BIOS настройками, однозначно может ответить только конкретная ОС и специализированные тестовые пакеты, которые в состоянии достаточно сильно нагрузить подсистему памяти, тщательно ее проверить и указать на возможные сбои или ошибки. Иными словами, только знание и понимание всех описанных ранее параметров, а также терпение и время позволят добиться желаемого результата в достижении заветной цели любого пользователя ПК: собрать максимально быструю и отказоустойчивую систему - идеал соотношения "качество/производительность"..

Жертва в кроватке или как правильно прошить BIOS

От редактора: Бывает такое с человеком, бывает. Особенно сильно это проявляется, когда он узнает, что не прикладывая особых усилий он может достичь чего-то значительного. Называется такое "это" - жажда халявы. Именно такая жажда меня одолела в свое время, когда я узнал, что есть такая процедура, как перепрошивка BIOS материнской платы, и что после проделывания оной процедуры система может заработать лучше.

Документация, статьи, знакомые, Интернет - все меня уверяли, что все будет окей. Но, как оказалось, критическим пунктом была документация, в которой было сказано, что после прошивки следует нажать кнопку end, перезагрузить машину, а потом кнопку отпустить. Скачал последнюю прошивку, все сделал по правилам, нажал кнопку, перезагрузил машину. И тут, когда кнопку нужно было отпустить, с ужасом обнаружил, что вместо кнопки end нажал кнопку delete. Здрасьте на фиг, приехали.

Вторая материнская плата. При ее помощи пытаюсь перепрошить BIOS первой материнской платы "на лету". Запускаю программу, указываю файл прошивки и перед тем как нажать OK меняю микросхемы BIOS. Упс... не удалось... Оказалось, что моя первая микросхема было рассчитана на 12 В, а на той матери, на которой я это делал, стояла 5-вольтовая... Опять не срослось. Тем более что я как-то умудрился расколоть микросхему BIOS второй мамы при ее вытаскивании. Уже не срастется.

И вот на подходе третья (!) материнская плата (попросил у друга). В ней уже не было Flash-BIOS. Да, в этот день мне везло. Последние две микросхемы BIOS я спалил по откровенной глупости - просто вставил их в гнездо не той стороной, и они вспучились. Через пару дней, когда я не без значительных финансовых вливаний все-таки смог восстановить все железо, до меня вдруг дошел один маленький факт - я пытался прошить BIOS той же прошивкой, которая у меня стояла до этого. Просто производитель еще не сделал ничего нового, а я при скачивании нового BIOS не догадался сравнить версии прошивок. Вам хочется такого счастья? Нет? Тогда читайте.

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

Начнем с того, что все BIOS, рожденные до 1997 года, были ROM, то есть перепрошить программу микросхемы без специального устройства, называемого программатором, было невозможно. Но технологический рост различных устройств и видов памяти не мог не отразиться на BIOS. Через довольно продолжительный срок появилась Flash-ROM (ее еще называют EEPROM - Electrically Erasable and Programmable Read-Only Memory). Так вот, Flash-ROM решает проблемы беготни с новой прошивкой в сервис-центры (прямо-таки фантастический вариант - пользователь, в связи с отловленным багом, бежит обновлять BIOS).

Наиболее актуальной причиной замены BIOS является установка более мощного процессора, о котором ваша плата ничего не знает, но технологически способна принять его на борт. Замена прошивки может подружить процессор и плату, но, естественно, технологические проблемы новая прошивка не решит - поставить Celeron на плату с Socket 7 или установить Athlon XP на плату на базе VIA KT133 вам не удастся.

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

Третья не менее веская причина - количество пунктов настройки системы. Не все BIOS радуют нас такими важными параметрами, как, например, AGP Fast Writes или SBA. А в новой версии прошивки эти вещи могут быть.

Наконец, не самый разумный, но самый популярный пункт - "просто хочу". Извините, но шить BIOS с такой же частотой, с которой обновляются антивирусные базы, нет никакого смысла. (Еще один аргумент в пользу этого - любители ставить "самые новые драйвера" с сайтов NVIDIA, VIA и проч. довольно часто пишут мне в техподдержку письма с воплями о рухнувшей системе, а уж любителей попрошивать BIOS "потому что вышел новый" среди клиентов техпомощи так вообще хоть отбавляй - прим. ред.)

Методическое пособие

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

  • Техническая диагностика средств вычислительной техники учебное пособие для преподавателей и студентов средних профессиональных учебных заведений по специальности 230101 «вычислительные машины комплексы системы и сети»

    Документ

    ... стать источником ошибок, поэтому в современных программах настройки BIOS ... по включении питания). Некоторые из аудио- и видео-кодов сообщений об ошибках , ... а устройство-1 не подключено, BIOS выдаст сообщение об ошибке . ACT (Drive Active) - ...

  • Опции стандартного bios setuр

    Документ

    Потере информации по мере старения батареи или может стать недоступной, ... -серверы и т.п.) без выдачи сообщения об ошибке теста клавиатуры. 4. ADVANСED СMOS ... WITН BIOS DEFAULTS Автоконфигурация со значениями BIOS по умолчанию. Значения BIOS по умолчанию...

  • — (таймер времени ожидания для шины PCI). Значение этой опции указывает, в течение какого времени (в тактах PCI-шины) поддерживающая режим «Busmaster» PCI-карта может сохранять контроль над PCI-шиной, если к шине обращается другая PCI-карта. Фактически это и есть таймер, ограничивающий время занятия PCI-шины устройством-задатчиком шины. По истечении заданного времени арбитр шины принудительно отбирает шину у задатчика, передавая ее другому устройству. Допустимый диапазон изменения этого параметра — от 16 до 128 с шагом, кратным 8. Правда, в некоторых случаях добавляется еще значение «Auto Configured» (по умолчанию), что значительно облегчает сомнения и мучения пользователя.

    Значение параметра необходимо изменять осторожно, так как оно зависит от конкретной реализации материнской платы, и только в случае, если в системе установлены по меньшей мере две PCI-карты, поддерживающие режим «Busmaster», например, SCSI — и сетевая карты. Графические карты не поддерживают режим «Busmaster». Чем меньше устанавливаемое значение, тем быстрее другая PCI-карта, требующая доступа, получит доступ к шине. Если требуется выделить для работы, например, SCSI-карты больше времени, то можно увеличить значение для PCI-слота, в котором она находится. Значение для сетевой карты, например, соответственно необходимо уменьшить или вообще установить равным 0, хотя в некоторых случаях установка 0 не рекомендуется. В общем случае, какое значение параметра пригодно и оптимально для данной системы, зависит от применяемых PCI-карт и проверяется с помощью тестовых программ. Необходимо также учитывать, в какой степени «карты-конкуренты» чувствительны к возможным задержкам.

    Опция также может носить названия: «PCI Bus Time-out» , «PCI Master Latency» , «Latency Timer» , «PCI Clocks» , «PCI Initial Latency Timer» . Для последней опции ряд возможных значений имел вид: «Disabled», «16 Clocks», «24 Clocks», «32 Clocks». Еще одна старенькая опция, «PCI Bus Release Timer» , имела такой набор значений: «4 CLKs», «8 CLKs», «16 CLKs», «32 CLKs».

    И еще одно очень важное замечание. В свое время эта опция (и ей подобные) вводились с учетом совместного существования PCI — и ISA-шин. ISA-шина позволяла использовать одно «master»-устройство. Это применялось редко как раньше, так и теперь. Зато PCI-шина дала возможность одновременного использования нескольких «master»-устройств. Учитывая различия в скорости шин, а тем более в их пропускной способности, необходимо было решить проблему совместной работы «master»-устройств на PCI-шине и стандартных устройств на более медленной ISA-шине. Особенно это касалось распространенных в то время звуковых и сетевых карт для ISA-шины, обладавших незначительным объемом буферной памяти, т.е. чувствительных к любым задержкам при передаче данных. «AMI BIOS» позволял выбрать значение параметра в диапазоне от 0 до 255 с единичным шагом. Значение «66» устанавливалось по умолчанию, хотя меньшее значение владения шиной PCI-устройством оказывалось более предпочтительным. Более свежие версии «AMI BIOS» стали менее демократичны: 32, 64, 96, 128, 160, 192, 224, 248 и «Disabled». К тому же «мелькнуло» еще одно название опции — «Master Latency Timer (Clks)» , а по умолчанию стало устанавливаться значение «64».

    Правда, это еще не весь возможный перечень. Функции Latency Timer Value» и «Default Latency Timer Value» применяются совместно. Если в последней опции установить «Yes» (оно же и по умолчанию), то тогда первая функция будет проигнорирована. Чуть выше уже зашла речь о возможности установки параметров для отдельных слотов. Вот как реализует такую возможность «Phoenix BIOS»:

    PCI Device, Slot #n» ,

    "Default Latency Timer: " ,

    "Latency Timer: " ,

    Естественно, что для работы с этими параметрами выводится отдельное конфигурационное подменю. Для n-го слота пользователь может выбрать установку по умолчанию («Yes»), тогда в нижнем поле будет выведено значение в 16-ричной форме. При этом доступ пользователя к полю «Latency Timer:» будет заблокирован. Если же в опции «Default Latency Timer:» установить «No», то появится возможность вручную установить значение из ряда: 0000h ... 0280h. Последнее значение соответствует десятичному 640. По умолчанию устанавливается 0040h (64 такта).

    Еще один вариант значений опции «Latency Timer»: «20h», «40h», «60h», «80h», «A0h», «C0h», «E0h», «Default» (т.е. «40h»).

    Поэтому при конкретном решении стоящей перед пользователем задачи (или проблемы) надо исходить прежде всего из возможностей чипсета, версии BIOS и используемых карт расширения.



    В продолжение темы:
    Android

    Популярная социальная сеть ВКонтакте позволяет находить новых друзей и держать контакт со всеми близкими. Помимо этого, каждый пользователь может делиться собственными...