Параметр Video BIOS Shadowing

Параметр Video BIOS Shadowing

Использование теневого ОЗУ для загрузки системной BIOS или видео BIOS из ПЗУ видео карты в системную память.

Разрешение этого параметра приводит к переносу видео BIOS из ПЗУ (постоянного запоминающего устройства) на видеокарте в основную память компьютера, что значительно ускоряет работу с видео BIOS (это необходимо и видно в DOS).
Ускорение объясняется как и тем, что обращение к ПЗУ намного медленнее, чем к ОЗУ, так и тем, что обращение к ПЗУ в 8-ми разрядной сетке, а к ОЗУ — 32-х или 64-х сетке.

Когда эта опция включена, Video BIOS копируется в системную память для более быстрого доступа.
Улучшает производительность BIOS потому что CPU теперь можно считывать BIOS через 64-bit DRAM bus, а не 8-bit XT bus.
Все это весьма привлекательно, так как подразумевает по крайней мере 100x увеличение скорости передачи и за это мы поплатимся пространством в системной памяти, которая будет использована чтобы зеркально отображать содержимое ПЗУ.

Однако, современные ОС минуют BIOS полностью и имеют прямой доступ к видеокарте.
Таким образом, нет обращений к BIOS и нет никакого выигрыша от BIOS shadowing.
В свете всего этого, нет смысла тратить системную память только на то, чтобы затенить Video BIOS, если он вообще не используется.

Согласно статье Microsoft о Shadowing BIOS under WinNT 4.0, затенение BIOS (независимо от того какой это BIOS) не дает никакого увеличения производительности так как оно не используется WinNT.
Оно только «съест» память.
Хотя в статье ничего не упоминается о Win9x, все это справедливо и для Win9x, так как она основана на той же самой Win32 архитектуре.

Более того, некоторые руководства упоминают о возможности нестабильной работы системы если определенные игры обращаются в область RAM (region) которая уже была использована для затемнения Video BIOS.
Однако, это уже не актуально, так как эта затененная область RAM была сделана недоступной для программ.

Вот что стоит упомянуть, так это то что в video BIOS затеняются только 32 KB.
Более новые video BIOS-ы обычно больше чем 32 KB в размере, но если затеняются только 32 KB а остальное остается в исходном положении, то начнутся проблемы со стабильностью при обращении к BIOS.
Поэтому, если вы намереваетесь затенить video BIOS, вам следует убедиться, что затенен ВЕСЬ video BIOS.

Во многих случаях по умолчанию затенена только область C000-C7FF.
Чтобы это исправить, вам следует:

• enable video BIOS shadowing (для области C000-C7FF)
• enable shadowing оставшихся порций

Т.е. C800-CBFF, пока не будет затенен весь video BIOS.

В конце концов, большинство современных видеокарт сейчас имеют Flash ROM (EEPROM) которое значительно быстрее чем старые ROM и даже быстрее чем DRAM.
Поэтому, больше нет необходимости в video BIOS shadowing и может быть даже большей производительности можно добиться вообще не применяя shadowing!
В дополнение, вам не следует затенять video BIOS если ваша видеокарта имеет Flash ROM так как вы не сможете обновить его содержимое если shadowing будет включен.

С другой стороны, от этой опции все-таки есть кое-какая польза.
Некоторые игры под DOS до сих пор используют video BIOS так как они не обращаются напрямую к графическому процессору (хотя более продвинутые в смысле графики игры делают это).
Таким образом, если вы играете в кучу разных игр под DOS, можете попробовать включить Video BIOS Shadowing в целях большей производительности.

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

Однако, все делалось процессором.
Так как согласование (interfacing) с железом изменяется вместе с самим железом, то «разговор» с вашей видеокартой зависел от установленной конкретно вами карточки.
Чтобы разрешить эту проблему, видеокарты включали в себя BIOS chip.

Проще говоря, video BIOS являлся расширением к system BIOS.
Он представлял собой документированный набор функций — запросов который мог использовать программист для общения с видео чипсетом.
Так почему же появилось BIOS shadowing?
Память, используемая для хранения BIOS на видеокарте обычно является разновидностью EPROM (Electrically Programmable Read Only Memory).
Очень быстрая EPROM имеет время доступа (access time) 130-150ns, что примерно равно памяти в 8086-based компьютере.

Также, пропускная способность шины составляет 8 bits.
По мере того как ускорялись компьютеры (x386, x486, и т.д.), а игры становились все более насыщенными графикой, доступ к BIOS становилось все более и более критичным моментом.
Чтобы разрешить эту проблему, продвинули video BIOS к более быстрой 16-bit system memory дабы ускорить дело.

На самом же деле, большинство насыщенных графикой игр под DOS, по любому, редко обращаются к BIOS.
Большинство взаимодействуют с чипсетом по возможности напрямую.

Получаем: в «старину», video BIOS не особо-то и работал с видеокартой.
Он просто обеспечивал набор функций — запросов чтобы сделать жизнь разработчика легче.
Новые видеокарточки, с функциями ускорителя, подпадают под совсем иную категорию.
На самом деле их процессор встроен в карту.
Таким же путем как системный BIOS приказывает вашему процессору как запускать ваш компьютер, так и ваш видео BIOS говорит вашему видеопроцессору как отображать картинку.
Новые карты имеют флэш-память, и производители могут искоренить любой «баг» существующий в прошивке.

Любая ОС использующая функцию ускорителя, напрямую общается с процессором на карте, давая ему набор команд.
Вообще-то это работа видео драйвера.
Идея в том, что драйвер предоставляет ОС набор документов с функциями — запросами.
Когда происходит вызов, драйвер посылает соответствующую команду к видеопроцессору.
Видеопроцессор выполняет команды так, как диктует его запрограммированный видео BIOS.

Что же касается shadowing video BIOS, это не имеет особого значения.
Windows, Linux, или любые иные ОС которые используют функции ускорителя никогда напрямую не сообщаются с video BIOS.
А вот старый добрый DOS все еще это делает!
А посему, те же самые функции которые когда то существовали в первых VGA картах до сих пор существуют в новеньких 3D картах.
От того как в DOS программах написан видео интерфейс зависит производительность видео системы, если видео BIOS затенен (shadowed).

Краткий итог: в сегодняшних видео акселераторах, основной работой видео BIOS-а является обеспечение программы для видео процессора (RIVA TNT2, Voodoo3, и т.д.), чтобы он смог выполнить свою задачу.

Интерфейс между видеокартой и программным обеспечением обеспечивается набором команд от драйвера и на самом деле не имеет ничего общего с видео BIOS.
Первоначальные функции BIOS-а все еще наличествуют для обратной совместимости с VGA.

Может принимать значения:

Enabled — разрешено
Disabled — запрещено

^