BIOS Setup

         

CPU Speed


Материал данного подраздела построен в соответствии со стандартными действиями пользователя: установка тактовой частоты системной шины + установка множителя (коэффициента перемножения) = установка внутренней частоты (частоты ядра) процессора. В большинстве современных версий BIOS опции установки частот системной шины, процессора вынесены, как правило, в отдельное меню, которое может называться, например, "CPU Frequency Control".
Но вполне реальна и ситуация, когда для возможных пользовательских действий через BIOS предварительно необходимо переставить соответствующую перемычку на системной плате в положение типа "Configure".



ECC, Parity


Устройствам динамической памяти присущ один серьезный недостаток - вероят­ность ошибки считывания информации из ячейки. Для обнаружения ошибок памяти и их корректировки используются схемы проверки целостности данных. Существует 2 способа контроля - с помощью проверки бита четности и с помощью кода коррекции ошибок (ECC - Error Correction Code или Error Checking and Correction). Второй способ надежнее, хотя сравнивать эти методы можно с большой натяжкой.
Для пpовеpки ошибок памяти по четности (во время проведения POST, обычного режима работы) каждый байт информации должен иметь дополнительный девятый pазpяд, котоpый пpи каждом обpащении к ОЗУ по записи устанавливается таким обpазом, чтобы общее число единиц было нечетным. Пpи каждом обpащении по чтению пpовеpяется признак нечетности. Естественно, что поддерживающие проверку по нечетности модули памяти должны содержать дополнительный модуль для хранения этой дополнительной информации. Пpи обнаpужении ошибки возникает немаскиpуемое пpеpывание NMI, котоpое нельзя блокиpовать. Компьютер при этом пpекpащает pаботу, и на мониторе отобpажается сообщение об ошибке памяти, обычно в виде "PARITY ERROR AT 0AB5:00BE SYSTEM HALTED".
Недостаток такой схемы очевиден. Невозможно на основе такого метода контро­ля целостности исправлять обнаруженные ошибки. Метод же ECC, применяемый на высокоуровневых ПК, серверах, позволяет обнаруживать и исправлять однобитовые ошибки памяти. Двухбитные ошибки определяются при этом, но не исправляются. В отличие от метода по четности при реализации коррекции ошибок каждый бит входит более чем в одну контрольную сумму, что позволяет в случае возникновения ошибки в некотором бите восстановить адрес ошибки и исправить ее. Далеко не все чипсеты поддерживали и поддерживают коррекцию ошибок. К тому же с середины 90-х годов схемы обычного контроля четности применяются все реже. Надо отметить, что ECC не является панацеей от дефектной памяти и применяется для исправления случайных ошибок.
Контроль четности (или метод по модулю 2) существует уже давно. В военной цифровой технике передачи данных существуют более сложные методы, например, по модулю 15. Методы коррекции ошибок также имеют свою предысторию. В системах передачи данных (в частности, телемеханике) также давно применяются и коды Хэмминга, и циклические коды с образующим полиномом, и т.п.
SmartCorrect - технология автоматической коррекции ошибок, разработанная корпорацией "Distributed Processing Technology" (DPT), предназначена для защиты всей под­системы массовой памяти. Благодаря платам памяти с системой автокоррекции ошибок, высокопроизводительные адаптеры фирмы DPT могут обна­руживать и устранять любые нарушения целостности данных, возникшие на уров­не кэш-памяти адаптера или на участках прохождения данных.

Backoff Processor


- очень редкая опция и не совсем однозначно трактуемая. BOFF# (Back Off) - сигнал безусловного отключения процессора от шины. По этому сигналу процессор отдает управление шиной в следующем же такте с прерыванием текущего цикла. По окончании действия сигнала "BOFF#" процессор рестартует прерванный шинный цикл. Возможные значения опции:
"Disabled" (или "No"),
"Enabled" (или "Yes").
Исходя из всего изложенного, можно предположить, что в опции речь идет о безусловной передаче управления шиной другому устройству, т.е. без установок различных интервалов ожидания, определенных условий передачи управления и т.п. Об этом будет подробно изложено далее (тема "арбитража"). Понятно, что для использования указанного сигнала опцию необходимо включить.
Опция может называться "Backoff CPU".











Base I/O Address


- опция установки базового адреса устройства. I/O-адреса - это адреса ввода/вывода, называемые также портами системных и периферийных устройств. По сути, это "почтовые ящики", через которые программы и устройства обмениваются сообщениями, данными. Каждому адресу отведен один байт системной памяти. Начиная с 386-х систем таких адресов имеется в наличии 65536, хотя большинство из них никогда не используется.
Базовый I/O-адрес - это первый адрес из того адресного пространства, что предоставлен данному устройству. Например, большинство сетевых адаптеров использует адресный диапазон в 20h, а для COM 1 резервируется диапазон с адресами от 3F8h по 3FFh, которые используются для различных задач, например, установки скорости, четности, т.п. Весь адресный диапазон ввода/вывода - 0000-FFFFh.
Для данной опции не приводятся конкретные значения. Да и по содержанию опция в большей степени "подходит" материалам, посвященным распределению ресурсов различных устройств. Но опция помещена в данном месте умышленно, чтобы подчеркнуть принадлежность адресов ввода/вывода не только памяти, а и центральному процессору. Ведь от него то и начинаются управляющие процедуры, и производятся они через порты ввода/вывода.
Если просмотреть главу "Порты", то можно обратить внимание на то, что имеющиеся адреса уже "закреплены" за системными или периферийными устройствами. Но при программировании устройства ввода/вывода, а это может быть карта расширения, вполне допустимо задействование "традиционных" адресов либо неиспользуемых. В некоторых случаях использование незадействованных адресов, что связано, например, с отсутствием устройства, не обязательно ведет к конфликтам.
Рассмотренная выше опция "Extended I/O Decode" показала нам некоторые нюансы и даже сложности декодирования адресов ввода/вывода. Опция "PCI I/O Start Address", предназначенная в общем-то для PCI-устройств, тем не менее позволяет для ISA-устройств создать дополнительную область адресов и тем самым избежать "неприятных накладок".
 








Branch Target Buffer


- просто редчайшая функция, скорее в смысле уникальности, а не частоты появления в различных версиях BIOS. О чем идет речь? BTB (Branch Target Buffer - буфер адресов перехода) - блок центрального процессора, отвечающий за динамическое предсказание переходов. При этом принимается во внимание, какие адреса переходов были выбраны ранее. Это важнейший узел современного процессора (см. специальную литературу).
Получается, что с помощью данной опции можно отказаться ("Disabled") от использования механизма предсказания переходов, ветвлений команд процессора или включить его ("Enabled"). Остается добавить, что включение опции повышает производительность системы.









CPU ADS# Delay 1T or Not


- опция установки задержки для сигнала ADS#. Несколько предваряющих слов. ADS# (Address Status) - строб адреса, вводимый инициатором обмена как индикатор действительности адреса. Сигнал действует на системной шине и может быть выходным как стороны процессора, так и со стороны чипсета. Передача адреса и адресного строба происходит одновременно, поскольку для адресного строба системная шина имеет свою выделенную линию. Понятно, что ADS# - это стандартный сигнал процессоров.
Представленная опция указывает и на возможность отсутствия задержки, что повышает скоростные характеристики обмена данными в системе. Фактически данная опция позволяет устанавливать время, в течение которого процессор (или чипсет, контроллер памяти) будет ждать от чипсета (процессора) сигнал статуса адреса данных, который определяет скорость отложенной записи на системной шине. Понятно, что речь также идет о передаче данных в PCI-интерфейс. Значение, устанавливаемое по умолчанию, менять нет необходимости. Однако при установке более скоростного процессора скорость можно и увеличить, т.е. снять задержку.
Вынесенная в заголовок опция имеет два значения: "1T", "No Delay".
А вот опция "Cyrix M2 ADS# delay" предложила стандартные "Enabled" и "Disabled". Опция "Latency from ADS# status" предложила числовые значения в тактах системной шины: "2T" (по умолчанию), "3T".
Необходимо понимать, что устанавливая "время задержки", мы тем самым определяем временные характеристики циклов записи. И с учетом того, что использование буфера отложенной записи ведет, как правило, к формированию небольших пакетов (двойными словами или в два DW). Поэтому установив значение "3T", мы получаем 5 системных тактов для каждого двойного слова. Арифметика тут простая. 3 такта задержки, один адресный такт и один такт на считывание данных.
 








CPU BIST Enable


- в некоторых чипсетах, начиная с 430-й серии, нашли применение специализированные BIST-регистры. Большой нагрузки они не несли. Если система (чипсет + процессор) поддерживает функцию встроенного самотестирования (Built-In Self Test), то BIST-регистр хранит в своих разрядах команды "Start BIST" или "Completion Code". Если "система" не поддерживает BIST-функции, то установка опции в "Enabled" не даст эффекта, а в соответствующих разрядах регистра будут установлены "0".
Встроенный и, что немаловажно, полноценный механизм самотестирования BIST был реализован в процессорах Pentium III. Он обеспечивал постоянный контроль над зависаниями и сбоями в микрокоде, больших программируемых логических матрицах, а также обеспечивал тестирование кэша команд (инструкций) и кэша данных, буферов TLB (Translation Lookaside Buffer - буфера страничной переадресации) и сегментов памяти ROM. В течение 10-30 мсек (время связано с внутренней частотой ядра процессора) внутренним тестированием охватывается около двух третей всех внутренних блоков процессора. Лишь только после завершения теста процессор переходит в рабочий режим, результаты же теста фиксируются в регистре EAX.









CPU Drive Strength


- данная и не совсем ясная опция определяет интенсивность (strength), а точнее длительность действия сигналов при передаче данных от чипсета к процессору. Параметр измеряется в системных тактах. Чем выше значение параметра, тем выше длительность сигналов, а применение этой опции "BIOS Setup" может оказаться полезным для процедур "разгона" процессоров. Но не для всякой системы увеличение значений опции может привести к сохранению стабильности "разогнанного" процессора. Значения опции следующие: 0, 1, 2, 3.
Осталось добавить, что данная опция требует дополнительного уточнения.
 








CPU Fast String


- (быстрые операции со строками). Разрешение этого параметра ("Enabled") позволяет использовать некоторые специфические особенности архитектуры семейства процессоров Pentium Pro (Pentium II, Deschutes и т.п.), в частности, возможность кэширования операций со строками. Надо только понимать, что и в самой пользовательской программе должны быть выполнены условия для включения этого механизма. Эти условия указаны в документации на любой процессор данного семейства. Параметр рекомендуется оставлять в состоянии "Разрешено".









CPU Host Clock Select


- опция установки тактовой частоты системной шины. Еще не так давно BIOS достаточно новой материнской платы мог предложить такой замечательный ряд значений (в МГц): 66, 75, 83, 100, 103, 112, 124, 133. Затем появились наборы из 16-18 фиксированных значений, но они начинали отсчет уже со значения 100 МГц. В общем случае вариаций установки частоты может быть достаточно много. Особенно в этом плане выделяются материнские платы, буквально созданные для разгона (например, компаний "Soltek", "Abit", "ASUS"). И тогда без проблем можно "добраться" и до 166 МГц, и даже выше.
Опция может называться "CPU Bus Frequency" и предлагать такую подборку: "Auto", "66.8MHz", "68.5MHz", "75MHz", "83.3MHz", "100MHz", "103MHz", "112MHz". Значение "Auto" устанавливается по умолчанию и оно является рекомендованным.
Может быть предложен более "изощренный" вариант опции, связанный с тем, что модули памяти работают на частоте системной шины. Тогда опция может называться "Host/DRAM Frequency", а значения будут следующими: "66 MHz", "100 MHz". Понятно, что в данном варианте речь идет о SDRAM-памяти и интеловском чипсете с двумя фиксированными значениями тактовой частоты, например, 440BX.
Опция может называться "CPU Host Clock" или "External Bus Speed".
Несколько нестандартной оказалась опция "CPU Clock/Spread Spectrum" (смотри раздел "Special"). Согласно опции устанавливается не только частота системной шины, но и разрешается/запрещается ("On"/"Off") включение механизмов понижения электромагнитной интерференции в системе. На выбор параметров влияет также и установка базовой перемычки тактовой частоты шины процессора: 66 или 100 МГц. В итоге для предустановленных 66 МГц имеем следующий набор значений: "Default", "66MHz/Off", "66MHz/On", "75MHz/Off", "83MHz/Off", "95MHz/Off". Если же предварительно установлено 100 МГц, то имеем такой внушительный ряд: "100MHz/Off", "100MHz/On", "112MHz/On", "117MHz/On", "124MHz/Off", "133MHz/Off", "133MHz/On", "138MHz/Off", "140MHz/On", "150MHz/Off".
Опция "CPU Operating Speed" через значение "User Define" дает возможность устанавливать частоту FSB (Front Side Bus) от 66 до 153 МГц. В противном случае можно однозначно выбрать одно из фиксированных соотношений частоты ядра CPU и частоты шины от "300/66" до "1G/133".
Непосредственно к рассматриваемой теме примыкают вопросы т.н. "разгона" (overclocking) процессоров. Эта проблема уже достаточна освещена в литературе, нет смысла на ней останавливаться подробно. Со стороны же установок BIOS очень удобно, когда пользовательские действия адекватно воспринимаются и оцениваются. В этом плане меню "CPU Bus/PCI Freq" наиболее оптимально. Ведь превышение частоты PCI-шины свыше 37 МГц может повлечь за собой неисправность не только карт расширения, но и сбои жестких дисков.
В последние годы вариаций опций для установки системной частоты стало очень много. Простое их перечисление заняло бы немало места. Перечислим лишь некоторые. "CPU Host Clock Frequency". "CPU Host/PCI Clock" предлагает значение "Default", что равнозначно автоматической установке "стандартных" значений, а также возможность комбинирования двух системных частот. Опция может называться "CPU Host/3V66/PCI Clock".
 








CPU Level 2 Cache ECC Check


- опция включения/отключения коррекции ошибок кэша второго уровня у процессоров архитектуры Pentium II и выше, которые поддерживают эту опцию. К примеру, процессоры Pentium II поддерживает коррекцию ошибок, начиная с частоты в 333 МГц. Включение ECC-коррекции несомненно повышает надежность системы, но при этом ее работа, как обычно указывается, несколько замедляется. Но сразу надо отметить, что это замедление несущественно и не должно служить причиной отказа от включения опции.
Как мы уже знаем, в некоторых процессорах допущены ошибки, и включение этого режима может привести к нестабильной работе системы. К тому же фактор надежности и стабильности играет прежде всего значительную роль в сетевых средах. Правда, не стоит забывать и о "разогнанных" системах.
Подытоживая сказанное, можно рекомендовать следующие установки. Если система поддерживает коррекцию ошибок, то она должна быть применена. Естественно, что при отсутствии кэш-памяти второго уровня или ее блокировке данная опция будет также недоступна, хотя представить себе систему без кэша второго уровня наверно сложно. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Чуть другие названия этой же опции: "CPU Level 2 ECC checking", "CPU L2 Cache ECC Checking" и "L2 Cache ECC Support".
"AMI BIOS" предлагает несколько иное наименование опции, но речь идет о том же кэше второго уровня - "Cache Bus ECC". Еще одна опция - "ECC CPU Checking".









CPU Line Read Multiple


- в данной опции речь идет о чтении процессором т.н. "full cache"-линии. Когда "cache"-линия заполнена данными, то их объем составляет 32 байта (восемь двойных слов). Поскольку линия "полная", система точно знает, как долго данные на линии будут считываться. На это системе потребуется 4 такта, после чего будет выставлен новый адрес. Поэтому системе не требуется сигнал об окончании передачи данных, и система не будет находиться в ожидании такого сигнала, будучи свободной для решения других задач. Когда опция включена ("Enabled"), процессор сможет считывать данные одновременно с нескольких "full cache"-линий. По умолчанию - "Disabled".
Опция может называться "CPU Multiple Reads".
Перечисленные ниже функции не содержат свойств множественности, но их размещение в данном месте более чем оправдано. Вот их наименования: "Allow Full Line Reads", "Full Cache Line Reads", "CPU Line Read". Каждая из них через "Disabled" или "Enabled" запрещает или разрешает использование "полных" линий чтения.
Опция "CPU-to-PCI Read-Line" имеет значения "On" и "Off", но различия на этом не заканчиваются. Опция под таким наименованием была введена и оптимизирована для работы с процессорами Intel OverDrive. Поэтому повышение эффективности использования CPU может быть достигнуто только с указанными процессорами. В противном случае опция должна быть отключена.
 








CPU Ratio


- может принимать значения: 2, 2.5, 3, 3.5, 4, 4.5, 5, 5.5, 6, 6.5, 7, 7.5. Приведен практически весь возможный ряд коэффициентов умножения, который, как и сама опция, впрочем может отсутствовать вовсе, если коэффициент является фиксированным. Это довольно обычная ситуация, если речь идет об "интеловских" комплектующих. "Благоприятная" ситуация позволяет настраивать параметры работы CPU через BIOS, включая естественно нашумевший разгон процессоров.
Опция может называться "CPU Freq Ratio", а ряд значений может иметь несколько непривычный вид: "1:2", "1:3", "1:4", "1:5", "1:6", "1:7", "1:8", "2:5", "2:7", "2:9", "2:11", "2:13", "2:15".
В некоторых случаях для коэффициента умножения "не жалко" и двух опций:
"CPU Multiplier Shown" и "CPU Multiplier (Real)". Одна из этих опций позволяет установить значение вручную, а другая выводит на экран реально полученное значение, которое может и отличаться от желаемого.
Должно быть также понятно, что любая указанная цифра может оказаться недостаточно высокой для какой-нибудь последней реализации процессора и чипсета.









CPU Read Multiple Prefetch


- опция включения/отключения режима множественной предвыборки. Смысл процесса предвыборки (prefetch) заключается в том, что процессор, выбирая нужную инструкцию (например, из PCI-шины или памяти), одновременно начинает читать следующую, тем самым инициируя следующий процесс. Этому "способствует" то, что чипсет может иметь четыре линии чтения. Например, первые наборы логики с поддержкой процессоров Pentium Pro (Intel 450KX/GX, оба с кодовым названием Orion) как раз имели 4 такие линии чтения. Множественная же предвыборка позволяет выполнять одновременно несколько операций выборки инструкций, что существенно повышает быстродействие системы. По умолчанию устанавливается "Disabled".
Опция может называться и "CPU Multiple Read Prefetch".
Если же речь не идет о "множественных" операциях, то опция может называться "CPU Line Read Prefetch", "CPU Read Prefetch".









CPU Speed


- поскольку внутренняя частота процессора является результатом перемножения двух других параметров, то данная опция носит информационный характер. Результирующая частота процессора может быть представлена, например, в таком виде: 133 MHz (66 x 2).
Опция может называться "CPU Frequency (MHz)".
Во многих случаях данная опция выносится наверх окна соответствующего меню (подменю) "BIOS Setup", хотя ее значение является результатом вычисления. Но в некоторых случаях пользователь может иметь доступ к параметрам данной опции. Опция "CPU Speed" может предложить значение "Manual", тогда активируются поля "CPU Ratio" и "CPU Host Clock" для индивидуальных установок. Но это конкретная реализация не только версии BIOS, но и системной платы, наверняка содержащей специальную перемычку для возможности ручных настроек. В подтверждение сказанному можно привести параметры опции "CPU Speed" для материнской платы AbitSM2: "User Define" и "Automatic".
В продолжение и дополнение вышесказанного необходимо выделить опцию "CPU Freq Select" со значениями "Hardware" и "Software", определяющими метод установки внутренней частоты процессора. Первое значение определяет использование соответствующих перемычек на системной плате, второе же предполагает применение настроек через "BIOS Setup".
Но также реальна ситуация с непосредственным выбором частоты процессора без каких-либо предварительных установок. Так опция "Processor Speed" предложила ряд значений ("233", "266", "300" и т.д.), а пользователь должен понимать, что имея фиксированные 66 МГц, он косвенно устанавливает множитель: 3.5, 4, 4.5 и т.д.
 








CPU Vcore


- (установка напряжения ядра процессора). Не так уж много времени прошло с тех пор, как в современных системах был реализован мониторинг некоторых напряжений на материнской плате, "оборотистости" вентиляторов и контроль температуры. Появилась возможность устанавливать "критический" предел для температуры процессора и некоторые другие параметры. Можно ли было мечтать о самой возможности регулировки питания процессора! Но это уже прошлое!
При практически любом современном тестировании системных плат или отдельных системных компонентов возможности "разгона" оцениваются чуть ли не прежде всего, следуя за простым перечислением комплектности, оснащенности материнской платы. И производители системных плат не могут не учитывать желания миллионов пользователей. Еще не так давно такие компании, как "AOpen", а тем более "Soltek" или "Shuttle", вряд ли могли похвастаться заметной долей на рынке системных плат. Теперь же сравнительное тестирование материнских плат, чипсетов не обходится без их участия. И все благодаря заложенным возможностям "разгона" (достаточно вспомнить "нашумевшую" плату "Soltek SL-75DRV").
Одним из факторов, расширяющих эти возможности, является простая необходимость изменять (увеличивать!) напряжение питания ядра процессора. Сохранение стабильности системы при "простом" частотном "разгоне" без увеличения напряжения ядра процессора маловероятно. И данная опция предоставляет, как правило, целый ряд значений, который может видоизменяться как от версии BIOS или ее производителя, так и от производителя системной платы, чипсета, предназначенного для него процессора, а значит и напряжения ядра. Поэтому вариаций достаточно много. Приведем такой ряд значений: "1.750V", "1.775V", "1.800V", "1.825V", "1.850V" (напомним, что допустимое значение может составлять 1,5 В). Как видим, шаг составляет 0,025 В, и это "хороший" шаг! Ведь конкурентная борьба идет и за этот показатель. В проигрыше (при прочих равных показателях) может оказаться тот, кто предложит возможность изменять напряжение питания ядра процессора с шагом в 0,05 В. Стоит также напомнить, что значения порядка 1,8 В весьма близки к критическим, и любые действия в этом направлении более опасны, чем эксперименты с таймингами или прерываниями!!! Некоторые версии BIOS просто не позволяют переходить предел в 1,8 В. К счастью для пользователей Intel в своих последних моделях Pentium IV на ядре Northwood предусмотрела защиту, которая в случае опасности выхода процессора из строя тормозит его работу, тем самым сигнализируя о недопустимости каких-либо дальнейших действий по "разгону".
В данном случае приведенные значения не "привязаны" к конкретным моделям процессоров. Иначе описание опции превратилось бы неминуемо в перечень технических характеристик.
Понятно, что данная опция ныне располагается среди функций установки частотных характеристик системной платы, и все это может выглядеть следующим образом:
CPU Speed
CPU:System Frequency Multiple
System/PCI Frequency (MHz)
System/SDRAM Frequency Ratio
CPU Vcore
Опция может называться также "CPU Voltage Regulator". Опция "CPU Core Voltage", имея значение "Auto", также дает возможность устанавливать напряжение ядра процессора вручную.

В дополнение к вышеизложенному еще кое-что интересное!








Data Integrity (PAR/ECC)


- (целостность данных). Опция разрешения/запрещения контроля памяти на ошибки. Вид контроля устанавливается параметром "DRAM ECC/PARITY Select". Для включения данной опции требуется поддержка модулями памяти уже известных нам технологий. Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.









DRAM Data Integrity Mode


- (режим целостности данных DRAM). Это опция включения/отключения проверки целостности памяти. Включение опции позволит системе отслеживать и корректировать однобитные ошибки. Так же будут обнаруживаться двухбитные ошибки, но без исправления. Использование режима коррекции ошибок обеспечивает увеличение стабильности и целостности данных в системе, правда, при небольшой потере производительности. Если в системе не используются ECC-модули памяти, то опция должна быть отключена. Опция может быть отключена и при наличии ECC-модулей, но если ситуация в системе благоприятствует сохранению более высокой производительности. Может принимать значения:
"ECC" (иногда - "ECC Hardware") - разрешена коррекция,
"Non-ECC" - коррекция запрещена.
В некоторых случаях опция с тем же названием может иметь другой "набор" параметров: "Parity" и "ECC". При этом меняется и содержание функции. Опция может называться "DRAM Integrity Mode".
В "Phoenix BIOS" содержится аналогичная опция с названием "ECC Control". "Enabled" разрешает проведение коррекции (по умолчанию), "Disabled" запрещает. То же содержание вложено в опцию "ECC Memory Checking".
Значения "non-ECC" и "ECC" принадлежат и опциям "Memory Configuration", "ECC Configuration", хотя первая из них не совсем однозначна в наименовании.
В некоторых случаях к имеющимся параметрам может быть добавлено еще одно - "EC only" (режим проверки на четность, но только с выводом сообщений о возникновении ошибки). В зтом случае данная опция становится аналогичной одному из вариантов опции "DRAM ECC/PARITY Select", но при этом возникновение ошибки не приводит к полной остановке системы.
 








DRAM ECC/PARITY Select


- опция выбора режима коррекции ошибок/проверки по четности. Эта опция появляется только в BIOS тех материнских плат, в которых чипсет поддерживает ECC, и может быть использована только в том случае, если установлены модули памяти с истинной четностью. В некоторых вариантах BIOS этим параметром может устанавливаться только вид проверки, а разрешение на проверку устанавливается параметром "Data Integrity (PAR/ECC)" или аналогичным. Параметр может принимать значения:
"Parity" (по умолчанию) - в случае возникновения ошибки на монитор выдается сообщение о сбое по четности в памяти и работа компьютера останавливается,
"ECC" - в случае возникновения одиночной ошибки она исправляется (без вывода каких-либо сообщений) и работа системы продолжается. Если имеет место не одиночная ошибка, то работа компьютера также приостанавливается. Следует только учесть, что, по данным "Intel", скорость обмена с памятью при включении этого режима уменьшается приблизительно на 3%.
"Phoenix BIOS" содержит аналогичные опции под названиями "Parity Mode" (или "Memory Parity Mode") и со следующими значениями:
"Disabled" - проверка памяти запрещена,
"Parity" (по умолчанию) - аналогично, как и в "Award BIOS",
"ECC" - так же аналогично, как и в "Award BIOS", сообщение выводится только при двухбитной (и более) ошибке.
"AMI BIOS" "подарил" нам два варианта опции "Memory Error Detection". В одном случае значения параметра оказались уже знакомыми: "Disabled", "ECC", "Parity". Другой же вариант по сути стал аналогом функции "DRAM Data Integrity Mode" с разрешением или запрещением коррекции ошибок ("Enabled"/"Disabled").









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-шины. Тема арбитража будет рассмотрена отдельно.
 








BIOS Setup


- (выбор способа включения вентиля линии 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.  








BIOS Setup


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








I/O Space Access


- данная опция через "Enabled" разрешает доступ ко всему пространству адресов ввода/вывода. Редкий BIOS обходится без странных опций.
 








IBC DEVSEL# Decoding


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









LOCK Function


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








Memory Current


- опция "Phoenix BIOS" с установкой тока нагрузки для модулей памяти. Значения параметра следующие:
"8mA" - модули памяти требуют тока нагрузки в 8 мА,
"12mA" - модули памяти требуют тока нагрузки в 12 мА. Установка "12mA" становится необходимой, если используются модули памяти большой емкости (64 МБ и более), которые содержат большое число чипов памяти.



Memory Parity/ECC Check


- опция разрешения/запрещения проверки целостности данных. Может принимать значения: разрешен контроль памяти на ошибки ("Enabled"), запрещен ("Disabled") и "Auto". Последняя установка активизирует проверку памяти автоматически с автоматическим же определением возможностей модулей памяти, как по четности, так и по коррекции ошибок. В другой версии BIOS в этой же опции может отсутствовать параметр "Auto".
Только два параметра ("Enabled"/"Disabled") предлагает и опция "Memory Parity (Error) Check". При включении опции и отсутствии необходимых модулей памяти загрузка ПК может прерваться с выводом сообщения "Parity Error".
Осталось отметить следующее! В случае приостановки загрузки системы из-за появления ошибки по четности (или при коррекции) и необходимости все таки произвести загрузку операционной системы, единственный путь обойти POST-тестирование - это запретить любые проверки памяти на четность и т.п. ("Disabled").
 








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" циклы будут исполняться как "незакрытые" циклы, и поэтому они могут быть кэшированы. Повышение производительности очевидно.
 








Processor Number Feature


- опция для установки автоматического считывания и вывода информации о встроенном серийном номере процессора Pentium III в BIOS материнских плат, поддерживающих его установку. Для реализации такой возможности, естественно, требуется значение параметра как "Enabled". Во всех остальных случаях устанавливается значение "Disabled". Оно же устанавливается по умолчанию.
Опция может носить название "Processor S/N".
В "Phoenix BIOS" встречена аналогичная опция с названием "CPU Serial Number", а в "AMI BIOS" - "Processor Serial Number".
Зачем нужна информация о серийном номере? Скажем, для внешних программ. Один из примеров - считывание информации о процессоре при работе в Интернет. Естественно, что при этом нарушаются конфиденциальность и права пользователя. В свое время эта проблема достаточно бурно обсуждалась.



SEL 100/66# Signal


- своим рождением этот сигнал ("100/66#") центрального процессора был обязан внедрению в материнские платы 100-мегагерцовой системной шины. Управление сигналом через установки BIOS приводит к тому, что линия, соответствующая этому сигналу, либо свободна ("high" - 100 мГц), либо заземлена ("low" - 66 мГц). Тем самым управление сигналом приводит к выбору частоты системной шины.
Позднее этот сигнал был переименован в "BSEL0#", а в паре с "BSEL1#" он стал принимать участие и в установке частоты шины в 133 мГц (см. таблицу).
 
Сигнал "BSEL0" (контакт AJ33)* Состояние Сигнал "BSEL1" (контакт AJ31)* Состояние Частота системной шины 0 Замкнут 0 Замкнут 66 МГц 1 Разомкнут 0 Замкнут 100 МГц 0 Замкнут 1 Разомкнут Нет применения 1 Разомкнут 1 Разомкнут 133 МГц  
* Контакты приводятся для разъема Socket-370
 







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".









Single Bit Error Report


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









Speed Error Hold


- эту опцию можно перевести, как "сохранение скорости при ошибке". Речь идет об установке нештатной внутренней частоты центрального процессора и ее последствиях. После установки такой частоты в "BIOS Setup" и последующей перезагрузки система просто остановится, а пользователь не получит желаемого "разгона". Правда, ошибочка вышла с названием опции. Данная опция появилась уже давненько, а вот фирменные технологии типа "RedStorm" совсем недавно. Вот они то и позволяют "сохранять" оптимальные частоты, по сути перестраивая "BIOS Setup" для последующей загрузки. Но это отдельная тема! Значения же рассматриваемой опции: "Enabled" (оно остановит загрузку) и "Disabled". Данная опция в свое время часто использовалась компанией "Abit" в своих системных платах.









Stop CPU when PCI Flush


- при установке опции в "Enabled" центральный процессор, получив по своей входной линии (FLUSH) активный сигнал низкого уровня FLUSH#, вынужден будет приостановиться до тех пор, пока PCI-шина не закончит передачу данных. Запрещение опции не позволит процессору входить в режим ожидания, что естественно более приемлемо для системы. "Disabled" устанавливается и по умолчанию.
Опция может называться "Stop CPU When Flush Assert".



Turbo Frequency


- данная опция (по наименованию) конечно же напоминает турбо-функции, изложенные ранее. Но! Речь вовсе не идет об устаревшей опции, влиявшей на некоторые скоростные характеристики, работу кэш-памяти, т.п. С помощью данной опции можно либо блокировать возможность изменения системной частоты, либо иметь такую возможность ("Enabled"). Представленная опция, как правило, функционирует в составе меню, позволяющем программно устанавливать частотные характеристики системы, т.е. через BIOS, или просто вместе с другими базовыми опциями. В свое время компания "ABIT" первой "проложила путь" к ставшим потом стандартными т.н. "CPU SoftMenu".
Конечно же данная опция не решает задачи увеличения частоты системной шины в n раз. Этот рост частоты может составлять 2,5%, не более. Да и система должна поддерживать прежде всего такой "Turbo"-режим. Но рассматривая возможность изменения системной частоты, пользователь однозначно должен предвидеть появление проблем со стабильностью системы. Для центрального процессора увеличение внутренней частоты на 2,5% не должно вызвать никаких проблем. Проблемы могут появиться в работе системной памяти, периферии, хотя в большинстве случаев стабильность системы не должна пострадать! Данную опцию вполне можно назвать "оверклокерской", хотя серьезных "разгонщиков" она вряд ли устроит.
В некоторых случаях включение режима "turbo frequency" осуществляется путем переустановки соответствующего джампера на материнской плате, и приведенная опция, не имея никаких параметров, только показывает "разогнанную" частоту.
 








Turbo Mode (75 MHz)


- специальная опция "AMI BIOS", предназначавшаяся для работы процессора Pentium II на 75-мегагерцовой системной шине. При установке опции в "Disabled" устанавливалась стандартная частота шины - 66 МГц. Включение же опции допускалось при использовании высококачественных плат расширения, модулей памяти, что требовалось спецификацией "Intel" в отношении нестандартной частоты. В противном случае система могла работать нестабильно.

Дополнительная информация о функциях чипсета и CPU содержится в опциях главы "PCI - Арбитраж, Bus-Master".



Затенение" памяти, выделенная память


"Shadow Memory" - это так называемая "теневая" память. В адресах памяти от 640 КБ до 1 МБ (A0000h - FFFFFh) находятся "окна", через которые "видно" содержимое различных системных ПЗУ. Например, адреса F0000h - FFFFFh занимает системное ПЗУ, содержащее BIOS системы, окно C0000h - C7FFFh - ПЗУ видеоадаптера (видео-BIOS) и т.п. При включении режима "Shadow" для каких-либо адресных диапазонов, соответствующих системным ПЗУ либо картам расширения, содержимое их ПЗУ копируется в участки основной памяти, которые затем подключаются к этим же адресам вместо ПЗУ, "затеняя" их.
Дает ли это какие-нибудь преимущества? Повышается ли при этом производительность системы? Включение "затенения" дает в первую очередь значительное ускорение работы с данными ПЗУ за счет более высокого быстродействия микросхем ОЗУ (в сравнении со временем доступа к ROM BIOS в 150-200 нс). Кроме того, при обращении к микросхемам BIOS непосредственно используется 8-разрядный доступ (8-битная шина "X-bus"), что включение "затенения" ПЗУ делает еще более эффективным. Это означает, что при обращении к постоянной памяти за один такт можно считать только один байт в отличие от 32-разрядного, как минимум, доступа к оперативной памяти (16-битный доступ ушел в историю с уходом 286-х систем). Кроме этого, появляется возможность модифицировать видимое содержимое ПЗУ: все современные системные BIOS используют это для самонастройки, а в область видео-BIOS обычно загружаются экранные шрифты и т.п.
Что это за теневая память физически? Этот вопрос связан с распределением памяти вообще. В первом мегабайте памяти используются по прямому назначению, т.е. как основная память, 640 КБ, а остальные 384 КБ оказываются в адресном пространстве, зарезервированном для ПЗУ и внешних устройств. В современных платах вся память представляет собой непрерывный массив, поэтому разрывать адресное пространство модулей памяти на две части нельзя и поэтому часть системной области приходится аппаратно исключать, теряя при этом 384 КБ.

Как скопировать в эту память содержимое ПЗУ? Для этого применяют несколько способов:
1) Организация "Shadow Memory". Доступ к ней регулирует чипсет. Как правило, "Shadow Memory" находится в адресном пространстве в том же месте, где и исходное ПЗУ. Поскольку две области памяти в одном месте физически находиться не могут, для управления этой памятью в чипсете есть специальная схема, которая может подключить в этот фрагмент адресного пространства либо исходное ПЗУ, либо ОЗУ.
Несколько слов о защите от записи. Обычно "Shadow Memory" в нормальном состоянии находится в режиме "Read Only" (только для чтения). Это породило проблемы, например, при написании русификаторов, так как приходится открывать "затененные" участки той же видеопамяти. Различные версии BIOS позволяют решать эту проблему, имея опции с возможностью указания, следует ли оставлять требуемый диапазон "Read Write" или "Read Only".
Но не только BIOS способен управлять Shadow-функциями чипсета. Такое управ­ление может осуществлять программа, умеющая корректно обращаться к регистрам чипсета на низком уровне. Начиная с 386-х в защищенном режиме работы процессора имеется страничная организация памяти, обеспечивающая формирование физического (реального) ад­реса из виртуального адреса программы. Именно эта возможность и обеспечива­ет в большинстве распространенных драйверов памяти (менеджеров) не только выполнение функций затенения, но и получение памяти EMS при наличии расширенной памяти в компьютере. Программно возможности "Shadow"-функций менеджеров памяти значительно более гибкие, чем у чипсета, управляемого BIOS. В частности, управление размерами памяти, выделяемой для "Shadow Memory", может производиться достаточно малыми по размеру страницами - 4 КБ, что позволяет эффективнее использовать адресное пространство первого мегабайта. В MS-DOS возможность управления "Shadow"-памятью имеет драйвер памяти HIMEM.SYS (ключ /SHADOWRAM:ON|OFF).
Затенение полезно, главным образом, в 16-разрядных ОС. 32-разрядные системы не используют 16-разрядный код из ROM. Вместо него они загружают 32-разрядные драйверы в ОЗУ, заменяя ими 16-разрядный код BIOS, который, таким образом, используется только в процессе загрузки системы.
2)  Организация блоков верхней памяти UMB (Upper memory blocks), по сути аналогия предыдущему варианту.
3)  Перемещение (relocation). Это перенос неиспользуемой памяти из системной области (640 КБ - 1 МБ) в область расширенной (Extended) памяти. Чаще всего перемещаться может весь фрагмент сразу, то есть все 384 КБ. Это связано со сложностью схемы управления адресными линиями. В этом случае освободить остаток первого мегабайта можно, только выключив все без исключения установки "Shadow". В первых IBM PC устанавливалось 640 КБ основной памяти и отдельно расширенная память, поэтому со старшими 384 КБ проблем не возникало. Позднее, а это также было давно, некоторые чипсеты (Neat, OPTi495, SiS471, др.) имели возможность переносить старшие 384 КБ за пределы пеpвого мегабайта, пpисоединяя их к pасширенной памяти. Одни чипсеты могли переносить свободные от "затенения" участки, другие - только все 384 КБ целиком.
Последующая серия опций объединена одной темой ("Теневое ПЗУ адаптеpа ХХХХ,16K") и представляет собой, в основном, устаревшие аппаратные решения.



Adaptor ROM Shadow C800,16K


- опция для маскиpования ПЗУ некотоpых специальных каpт - сетевых, различных контpоллеpов и т.п. По умолчанию устанавливается "Disabled". Установка в "Enabled" допустима только тогда, когда в систему инсталлирована каpта расширения с ПЗУ, занимающим эти адpеса. В свое время большинство дисплейных видеоадаптеров, таких как MDA, Hercules, использовали ПЗУ с адpесом C800. Поскольку эти каpты были низкоскоростными, затенение этого адpеса улучшало общую пpоизводительность системы.
Дополнительная и интересная информация! Некотоpые версии BIOS допускали включение теневого ОЗУ со снятой защитой от записи. Пpи помощи дpайвеpа возможно было использование "теневой памяти" в качестве области UMB. Это давало некотоpое пpеимущество в скоpости в сpавнении с UMB-областью, обеспечиваемой пpи помощи драйвера EMM386.
Возможна вполне современная ситуация, когда затенению может быть подвергнут загрузочный BIOS сетевого адаптера. В этом нет никакой необходимости, т.к. загрузка удаленной системы вряд ли есть непрерывный процесс.








Adaptor ROM Shadow CC00,16K


- эта область предназначалась для некоторых (естественно, старых) адаптеpов жестких дисков.








Adaptor ROM Shadow D000,16K


- адресная область для использования сетевыми картами.








Adaptor ROM Shadow D400,16K


- некоторые специальные контроллеры (это было давно) для четырех floppy-дисководов имели отображаемый BIOS ROM в диапазоне адресов D400...D7FF.








Adaptor ROM Shadow E000,16K


- возможная область для размещения EMS-страницы.








Adaptor ROM Shadow EC00,16K


- эта область могла быть использована системой после копирования SCSI-контроллерами своего BIOS.
Некоторые SCSI-контроллеры не использовали адресов ввода/вывода. Их адресный BIOS-диапазон содержал перезаписываемые адреса, которые в действительности являлись I/O-портами. Это означало, что эти адреса не должны были затеняться и даже кэшироваться.
Совершенно аналогично "работали" следующие опции:








Base Memory Address


- данной опцией устанавливается начальный адрес адресного диапазона, выделяемого под потребности некоторой PCI-карты. Понятно, что возможности адресации обеспечиваются 32-разрядной шиной.
Опция может называться "Memory Start Address".
 








BIOS Devnode for Shadow RAM


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









CD Hole

- столь необычная опция "AMI BIOS" предназначена для управления адресной областью в диапазоне DC000h - DFFFFh. Если установлено значение "Disabled", то любое обращение, запрос к данному пространству направляется основному SCSI-контроллеру (хотя это может быть и сетевое устройство). Если же выбрано "Enabled", доступ к этому региону памяти контролируется одним из PAM (Programmable Attribute Map) регистров, т.е. стандартным способом.
Стоит остановиться на этой теме подробнее.
 
В состав "северного" (Host-to-PCI Bridge) моста чипсета, среди множества других, входят и семь программируемых PAM-регистров. Через установку различных аттрибутов они позволяют управлять тринадцатью адресными сегментами различного размера в диапазоне от 640 КБ до 1 МБ адресного пространства. С другой стороны, кэширование этими областями осуществляется через MTRR-регистры центрального процессора (о них будет сказано ниже).
Каждый PAM-регистр (см. таблицу) контролирует два региона, обычно по 16 КБ каждый. Каждый из регионов "обслуживается" четырьмя битами, два из которых зарезервированы, а два остальных - это "Read Enable" и "Write Enable". В зависимости от состояния этих бит ("0" или "1") осуществляется либо доступ к основной памяти, либо запросы перенаправляются на PCI-шину. Поэтому, если установлены два "0", доступ к выбранному диапазону памяти невозможен.
В процессе начальной загрузки и выполнения инструкций BIOS при копировании некоторого BIOS в выбранную "затеняемую" область в соответствующем регистре по соответствующему аттрибуту "Write Enable" устанавливается "1". После окончания всех процедур, связанных с затенением, для данного диапазона (регистра) устанавливается режим "только для чтения" (read only), что соответствует аттрибутам "Read Enable", равным "1", и "Write Enable", равным "0". При этом все циклы записи в данную область перенаправляются непосредственно шине расширения.
Понятно, что если речь идет о выделенной RAM-памяти, то оба аттрибута будут равными "1".

PAM-регистр Сегмент памяти Назначение Примечание
PAM0[3:0] Зарезервировано    
PAM0[7:4] 0F0000h - 0FFFFFh BIOS Area Область системного BIOS. 64K-байтный сегмент, который может кэшироваться, читаться и перезаписываться. При блокировке этой области данная адресная зона "выпадает" из карты памяти
PAM1[3:0] 0C0000h - 0C3FFFh ISA Add-on BIOS* Expansion Area (C0000h-DFFFFh), или область расширения, - это 128К-байтная область, разделенная на восемь 16K-байтных сегментов. Каждый из сегментов может находиться в одном из четырех состояний: только для чтения, только для записи, чтения/записи или заблокированном. Каждый из сегменов может кэшироваться. При блокировке этой области данная адресная зона "выпадает" из карты памяти
PAM1[7:4] 0C4000h - 0C7FFFh ISA Add-on BIOS*
PAM2[3:0] 0C8000h - 0CBFFFh ISA Add-on BIOS*
PAM2[7:4] 0CC000h - 0CFFFFh ISA Add-on BIOS*
PAM3[3:0] 0D0000h - 0D3FFFh ISA Add-on BIOS
PAM3[7:4] 0D4000h - 0D7FFFh ISA Add-on BIOS
PAM4[3:0] 0D8000h - 0DBFFFh ISA Add-on BIOS
PAM4[7:4] 0DC000h - 0DFFFFh ISA Add-on BIOS
PAM5[3:0] 0E0000h - 0E3FFFh BIOS Extension Расширенная область системного BIOS (E0000h-EFFFFh) разделена на четыре 16К-байтных сегмента. Каждый сегмент независимо от других может кэшироваться, считываться и быть перезаписываемым. При блокировке этой области данная адресная зона "выпадает" из карты памяти
PAM5[7:4] 0E4000h - 0E7FFFh BIOS Extension
PAM6[3:0] 0E8000h - 0EBFFFh BIOS Extension
PAM6[7:4] 0EC000h - 0EFFFFh BIOS Extension

Примечание.
* - Сегмент C0000h - CFFFFh может быть использован SMM-пространством, если используется SMRAM-регистр (об SMM см. ниже).  



DC00,16K Shadow


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









DC000-DFFFF Shadow


Совершенно те же опции предложил "Phoenix BIOS" в меню под названием "Shadow Memory Regions". Хотя то же меню "Phoenix BIOS" в другом варианте предложило "укрупненные" области памяти "C8000-CFFFF" (и т.д.) со значениями "Disabled" и "Shadow".
И совершенно ясно, что возможны также другие вариации по "затенению". Например, опция "E8000 - EFFFF Shadow" может быть использована для поддержки интегрированного SCSI-контроллера.
И еще одно важное замечание, не утратившее актуальности и по сей день. Речь идет о специализированных ISA-адаптерах с микропроцессорами, память которых организована как двухпортовая. Если память такого микропроцессора по одному из портов со стороны компьютера адресуется как страница в области указанных адресов, то "затенение" для этой области должно быть запрещено ("Disabled").
Обобщая сказанное, необходимо отметить, что затенение разделяемой ("shared") памяти недопустимо. Разделяемая память служит также в качестве буферов сетевых контроллеров, т.п.
Еще пример затенения адресных областей:








E0000 ROM belongs to ATBUS


- один из примеров "стареньких" опций по выделению фрагмента из "верхней" памяти для использования системными устройствами. В данном случае "Yes" позволяло зарезервировать такой фрагмент за AT-шиной. Обычно, E000-область зарезервирована за кодом системного BIOS, но некоторые системы не использовали его стандартным образом. Например, "OS/2" использовала этот диапазон для работы в защищенном режиме и "грузила" код Advanced BIOS в область E000h-EFFFh.









E8000 32K Accessible


- аналогичная опция, хотя и не такая "древняя", поскольку предназначалась для использования (и опция, и адресная область) PS/2-системами, 32-разрядными ОС, под "PnP"-область.
 








Extended ROM RAM Area


- наличие этой опции характерно для старых версий "AMI BIOS". Пользователю предоставлялся выбор, где хранить данные о жестком диске: в верхнем килобайте базовой системной памяти, начиная с 639-го килобайта, или в адресах нижней памяти в области DOS-памяти или системного BIOS (0:300). Необходимо было помнить, что вторая адресная область могла также использоваться некоторой периферией (звуковыми, сетевыми и т.п. картами расширения). В этом случае конфликтов можно было избежать, если система через BIOS могла использовать полноценные механизмы "затенения", которые впрочем могли и отсутствовать в очень старых системах. Вполне возможна была ситуация с изменением параметров жесткого диска в этой области памяти перед ее полным отображением, так как в ней содержался блок параметров фиксированного диска. В некоторых случаях могло потребоваться изучение документации на соответствующие платы расширения или контроллеры по использованию ими данной области памяти.
Опция могла (или может) называться "RAM Area" или "Hard Disk Type 47 - RAM Area". Последняя опция напоминает нам о процедуре пользовательской установки параметров жесткого диска.









ISA LFB Size


- опция "AMI-BIOS" для установки размера линейного буфера кадра (LFB - Linear Frame Buffer), во многом аналогичная или близкая по смыслу нижерасположенной "Memory Hole At 15M-16M". Кроме размещения ROM-адреса в пределах 15-16 МБ, опция позволяла (в таком виде она уже не встречается) установить размер линейного видеобуфера графических адаптеров в области основной памяти, доступной для ISA-шины (1, 2, 4 МБ). Это суть диапазоны 15-16, 14-16 и 12-16 МБ соответственно. Еще одним значением являлось "Disabled" с отказом от выделения под ISA-адаптер линейного буфера кадра. "Disabled" могло потребоваться при объеме памяти не более 8 МБ (в 96-м г. это было почти пределом) и при работе с MS-DOS. Такое же значение необходимо было установить при использовании ISA-карт с отсутствующим кадровым буфером. Запрещение опции не позволяло использовать "Plug and Play's Configuration Manager" или "ISA Configuration Utility". Если же какое-то из значений ("1 MB", "2MB" или "4MB") было выбрано, то следующая опция "ISA LFB Base Address" становилась доступной.
DOS-приложение могло использовать стандартно под видеопамять только 64 КБ основной памяти. В этом объеме не "поместится" и "хороший" графический файл. Совместно развивающиеся технологии памяти и работы с ней позволили создать механизм пейджинга, суть которого заключается в том, что можно отображать разные части видеопамяти на один и тот же видеосегмент (0a000h) поочередно. Но это переключение отнимает время у процессора, снижая эффективность метода. Идеальным вариантом стало использование линейного буфера кадра, который доступен только в защищенном режиме работы процессора, а значит за пределами первого мегабайта, и с использованием расширения VBE (VESA BIOS Extension) не ниже версии 2.0.
Для графических PCI-карт с использованием линейного буфера кадра стало возможным применение возможностей чипсета (PCI Burst Mode).
Опция может называться "ISA VGA Frame Buffer Size" или "ISA Linear Frame Buffer". Дополнительная информация может быть почерпнута из упомянутой и приведенной ниже опции.
 








ISA Mem Block Size


- об этих опциях см. ниже.









ISA Shared Memory Size


- (размер разделяемой памяти ISA). Опция позволяет выделить блок в "верхней" (upper) памяти, который обычно "затеняется" и который не будет в данном случае использован для дублирования (shadowing) содержимого ПЗУ в основную память, для доступа к ней ISA-карты. Через установку опции в "Disabled" (по умолчанию) мы отключаем возможность установки такого блока в системной памяти. Данную опцию необходимо включать только при установке в систему ISA-карты, которая использует верхние адреса памяти. Это означает, что в системе используются не "Plug and Play" ISA-карты (т.н. "legacy card"), конфигурируемые "вручную". Указывая размер требуемого блока, пользователь и "включает" опцию. Размер блока выбирается в пределах от 16 до 96 кБ с шагом в 16 кБ.
Необходимо знать еще вот о чем! В системе могут быть использованы ISA-адаптеры, у которых память собственного микропроцессора является двухпортовой и организована так, что со стороны адаптера она имеет некоторые физические адреса, а по второму порту она адресуется со стороны IBM PC/AT как страница памяти компьютера, расположенная в области адресов (в зависимости от установки перемычек на плате), например: C800h, D000h, т.п. В этом случае задачи адресации решаются на уровне специального прикладного ПО и драйвера. Таких специальных плат расширения в свое время было разработано достаточно много для использования в системах реального времени под MS-DOS.
К вышесказанному еще несколько слов. Некоторые "настоящие" (legacy) платы ISA имеют встроенную память (ПЗУ), которая не видна без специального программного драйвера. Поскольку об этой памяти BIOS ничего не знает, BIOS может (по ошибке) приписать адреса этой памяти другим платам PCI или ISA. При использовании таких карт расширения требуется серьезное изучение документации.
 








Memory Hole At 15M-16M


- (буквально - "дырка" в памяти в диапазоне 15-16 МБ). При включенном состоянии параметра система, для повышения производительности, будет копировать более медленную память устройства, например, подключенного к ISA-шине, в более быструю основную память. Это происходит за счет выделения специальной области памяти и перемещения в нее данных ROM-памяти карты расширения или устройства сопряжения. Естественно, что действие этой функции представляет собой механизм "эатенения", который позволяет обращаться, в данном случае к устройствам ввода/вывода, как к адресному пространству ОЗУ и за счет этого увеличить скорость доступа к таким устройствам. Для функционирования этого механизма необходимо исключить для всех обычных программ возможность использования указанной области памяти, что и делает BIOS при разрешении этого параметра. При отсутствии ISA-устройств данная опция должна быть отключена ("Disabled"). По умолчанию эта опция, как правило, включена.
Общее представление есть! Рассмотрим некоторые уточнения и дополнения. Разрешать этот параметр следует в том случае, если это требуется в документации на используемую в системе плату расширения или устройство. Некоторые старые ISA-карты (например, ранние видеокарты высокого разрешения) требуют выделения для них специального адреса памяти, лежащего в некотором диапазоне. Кроме того, это выделение запрещает доступ в старшие адреса памяти, расположенные выше 16 МБ. Это означает, что, независимо от объема инсталлированной в системе памяти, операционная система не сможет обращаться к этому адресному пространству. Поэтому включение данной опции должно быть оправдано. По сути, данная функция сохранена в "BIOS Setup" по причине фактора совместимости со старыми картами. Необходимо помнить и о том, что когда мы говорим вообще об ISA-картах, то должны подразумевать и функционирование DMA-каналов, которое достаточно жестко вписывается в канву ограничений ISA-шины. Но об этом будет сказано отдельно. Может принимать значения: "Enabled" (разрешено), "Disabled" (запрещено).
Немного дополнительной информации. Включение функции позволяет создать пропуск в динамической памяти, а точнее разрыв. Для адресов, попадающих в этот диапазон, циклы процессора и PCI будут игнорироваться самим чипсетом. Последствия для неподготовленного пользователя при создании "дырки" могут быть самыми непредсказуемыми. Возможна ситуация, когда такой режим может понадобиться и PCI-плате, если она нуждается в отдельном управлении адресами. Поэтому не должно удивлять присутствие такой опции и в системах, уже лишенных привычной ISA-шины.
И что также очень важно, выбранный диапазон "выпадает" и из объема кэшируемой памяти, а во-вторых, и из возможности воздействия на него (управляемости) операционной системы. Последнее, естественно, связано уже с функционированием аппаратных компонент.
В более "старых" версиях BIOS могут встретиться другое наименование такой функции - "Memory Hole", и значения параметров: "None", "at 512 kB", "at 15 MB". Действие некоторых параметров уже понятно, а для значения "at 512 kB" стоит указать, что для "затенения" используется часть базовой памяти в пределах 512-640 КБ. Есть еще один вариант и абсолютно идентичный. С тем же названием и фактически с теми же значениями: "Disabled", "512KB-640KB", "15MB-16MB". Те же значения предлагает опция "Fixed Memory Hole".
Был встречен и такой вариант опции "Memory hole": значения "Disabled" (по умолчанию), "Conventional" и "Extended". Все эти необычные параметры также предназначались для выделения адресного пространства под "стандартные" (legacy) ISA-устройства.
"AMI BIOS" может содержать опцию под названием "Memory Hole at 15M Addr.", т.е. близкую к исходной.
Необходимо также достаточно определенно представлять себе, что выделение некоего объема памяти предназначалось не только (и даже не столько) для переноса данных ROM-памяти какого-либо устройства, сколько для формирования в системной памяти области, являющейся по сути локальной памятью этого устройства или даже локальной памятью шины. Иначе зачем выделять под область "затенения" 1 МБ и более. Например, в некоторых версиях BIOS можно было встретить такой набор значений: "Disabled", "14M-16M", "15M-16M".
Более определенно на сей счет "говорит" старенькая функция "Memory Hole Size" с такими предложениями: "1 Mb", "2 Mb", "4 Mb", "8 Mb", "Disabled". Все это богатство предназначалось для системной AT-шины, а также резервировалось под потребности ISA-карт. Исходя из вышесказанного, станет более понятна опция "15-16M Memory Location" с параметрами: "Local" (по умолчанию) и "Non-local". Аналогичная опция могла называться и "Local Memory 15-16M".
Может возникнуть еще один вопрос. Почему все рассматриваемые функции "привязаны" к 16 МБ? Еще раз стоит подчеркнуть, что наличие всех этих функций в более современных версиях BIOS связано только с принципом совместимости с возможно эксплуатируемыми или специально разработанными картами расширения, устройствами сопряжения, или, как иногда говорят, устройствами связи с объектом (УСО), т.п. Появление же на свет божий всех этих опций "совпало" с появлением в середине 80-х славной 16-разрядной ISA-шины, для которой добавление 4 дополнительных адресных линий означало увеличение максимального размера адресуемой памяти до 16 МБ. Поэтому, задавая некий размер адресной области, мы однозначно определяем ей место "в конце" 16-мегабайтного адресного пространства.
Еще несколько слов о "Phoenix BIOS", предлагавшем аналогичную опцию под названием "ISA Memory Gap". Правда, в различные времена предлагалось два варианта опции. В одном из них была возможность использовать/не использовать последний мегабайт памяти, как "ISA memory area". Другой вариант опции предлагал также уже знакомые значения: "1 Mb", "2 Mb", "4 Mb", "8 Mb" и "Disabled".
Ну и напоследок не отдельные опции, а пары совместных функций или даже отдельные подменю. "Memory Hole Start Address" (а могут быть и такие варианты - "Memory Map Hole Start Address" или "Memory Map Hole End Address") дает возможность установить начальный адрес "дырки" из ряда, начиная с 1-го по 15-й МБ с шагом в один мегабайт. Но эта опция становится доступной, если включена базовая опция "Memory Map Hole".
Очень давние предложения от "AWARD"! Поверьте, такие системы до сих пор функционируют! Необходимо вначале включить ("Enabled") опцию "Allocate Memory Hole", а затем поработать над "Hole Start Adress" и "Hole Size". Причем размер "дырки" варьируется в пределах (!) от 64 КБ до 8 МБ (через удвоение шага), а установка начального адреса позволяет перемещать по адресному пространству выбранную область.
Напоследок вполне современный и весьма неожиданный эффект от применения "нашей" опции. В периодике как-то появилась информация, что включение опции помогло решить проблему нестабильной работы чипсетов VIA в системе с установленными звуковыми картами Creative SB Live! и Aureal, причем PCI-картами!. Хотя еще раньше была озвучена информация о конфликтах со звуковыми картами, такими как Diamond MX300 или Soundblaster той же "Creative Labs", и что эти конфликты системных ресурсов удалось разрешить за счет использования "дырки" в памяти. Так что пусть опция еще поживет?!  








Memory Remapping


- (перераспределение памяти). Поскольку аналогичная опция может называться "Memory Relocation", то пользователь уже знает, о чем идет речь. Очень старенькая опция, применение которой имело смысл в системе с ограниченным объемом оперативной памяти. Включение опции ("Enabled") требовало запрещения всех видов "затенения" в области адресов A0000 - FFFFF, в т.ч. "затенения" видео- и системного BIOS. Детальнее см. выше.









Memory Reservation


- так называется меню с "низкой" опций ("C800 - CBFF" и т.д., см. выше), из возможных параметров которых ("Available" и "Reserved) следует, что выбранный 16К-байтный диапазон может быть соответственно либо доступен для использования некоторым устройством (пример "выделенной" памяти), либо зарезервирован для использования любым программным обеспечением.
Нечто подобное предлагает "Phoenix BIOS" в меню "PCI/PNP ISA UMB Region Exclusion". Правда, т.н. "Upper Memory Blocks" не предназначены для использования стандартными ISA-картами (не Plug&Play-картами). А в остальном и диапазоны те же, и значения.
 








Shadowing Address Ranges (xxxxx-xxxxx Shadow)


- данная опция подобна вышепредставленным и позволяет разрешать ("Enabled") или запрещать ("Disabled") "затенение" указанного адресного диапазона для использования некоторой картой расширения. Запрещение допустимо, если такая карта не используется, или для такой карты в той же "Windows9x" функционирует соответствующий драйвер. Стоит напомнить, что "WindowsNT" не использует механизмов "затенения", и что некоторые карты, использующие диапазон CXXXh-EFFFh для операций ввода/вывода, могут не работать при включенном "затенении". В последнем случае запросы чтения/записи памяти могут не проходить, например, к той же ISA-шине.









System BIOS Shadow


- опция разрешения применения теневой памяти на область системной ROM BIOS. Рекомендуется установить в "Enabled" для повышения производительности системы, однако необходимо еще раз подчеркнуть, что улучшения эффективности системы можно добиться только в "MS-DOS" или "Windows 3x". При этом старшие 384 КБ из первого мегабайта памяти станут недоступными в качестве ОЗУ.
Некоторые старые версии BIOS (речь идет об устаревших системах) давали возможность "затенения" отдельных областей из выделенных под системный BIOS 64 КБ. Это было достаточно удобно, так как такие адресные зоны - суть фрагменты по 16 КБ (шаг адресов в 400h). В современных системах такой возможности нет, прежде всего аппаратной. Поэтому при включении режима "затенения" системный BIOS затеняется целиком.
Опция может называться "System Shadow" или "System ROM Shadow F000, 64K". Когда-то такая функция называлась совсем просто - "BIOS Shadow".
 








VGA Type


- данные этой опции используются BIOS системы, когда затенение видео BIOS включено. Оказывается, важно и то (см. чуть ниже), о какой видеокарте (читай, шине) идет речь. Отсюда и возможные значения: "Standard" ("стандартное затенение" - по умолчанию), "PCI", "ISA/VESA".









Video BIOS Shadowing


- при включении этой опции ("Enabled") BIOS видеокарты, как мы уже знаем, будет скопирован в оперативную память (по адресам C0000h-C7FFFh), что ускорит обращение к нему. За счет чего? Это уже известно! За счет различной разрядности шин памяти и времени доступа к ячейкам памяти. Но современные операционные системы обращаются к видеокартам напрямую, минуя их BIOS. Ну а "Windows NT" вообще не использует затеняемую память. А вот производительность графики в "старушке" MS-DOS сильно зависит от того, включена данная опция или нет. Если при включении теневой памяти не наблюдается какого-либо ускорения работы графических функций, то необходимо проверить соответствие адресов ROM BIOS видеокарты и установленной затеняемой области. Если не используются старые программы, лучше опцию отключить, так как, если какое-нибудь приложение обратится к адресам, занятым Video BIOS, возможны сбои.
Опция может называться "Video ROM Shadow C000, 32K", "Video ROM BIOS Shadow", "Video ROM Shadow", "Video BIOS Shadow" или "Video Shadow".
Некоторые версии BIOS также предлагают "затенение" отдельных областей, и тогда вместо одной, а точнее как дополнение к основной опции, предлагается набор из, например, следующих опций:
"Video ROM Shadow C000, 16K"
"Video ROM Shadow C400, 16K"
Такой вариант с опциями появился по причине того, что видеокарта на своем "борту" могла иметь и 16K-байтный объем ROM-памяти. В этом случае затенялся только диапазон C400h. Современные видеокарты, по сути предназначенные для использования в мощнейших программных средах, имеют значительно большие размеры Video BIOS, и только часть этого кода (32 КБ) может быть затенена. Нонсенс! При этом возможны сбои, т.к. при обращении к видео BIOS обращение будет происходить по адресам, принадлежащим физически разной памяти.
Еще одно важное замечание, которое не было отображено выше. Современные видеокарты хранят свой BIOS в микросхемах, допускающих перепрограммирование (во Flash BIOS), позволяющем получить доступ на скоpостях, сpавнимых со скоpостью обpащения к ОЗУ. Скоpость обpащения к VGA BIOS опpеделяется также и скоpостью шины (ISA, EISA или VLB). А если речь идет о PCI или AGP? И тогда может оказаться, что необходимости затенять VGA BIOS нет, и при этом появляется возможность освободить 384 кб ОЗУ для других целей. Но все же к VGA BIOS обращения происходят часто, особенно это характерно для игрового ПО. Так что решает проблему каждый пользователь сам и в каждом конкретном случае.
Также необходимо помнить о том, что BIOS интегрированного видеоадаптера располагается, как правило, по адресам системного BIOS. Тут как раз и необходимо дополнительно упомянуть, что функционирование видеоканала в современной системе обеспечивается управлением графического процессора через видеодрайвер, а не с помощью набора команд от центрального процессора. В последнем случае BIOS видеокарты обеспечивал определенный набор функций, совершенно игнорируемых в современной системе. Поэтому можно сказать, что первородное назначение видео BIOS сохраняется по причине обратной совместимости со стандартным VGA-интерфейсом.









X ISA LFB Base Address


- данная опция не имеет параметров и носит информационный характер. Показы­вает основной адрес LFB, если установлен размер в предыдущей функции. Адрес устанавливается автоматически.









X ISA Shared Memory Base Address


- (базовый адрес разделяемой памяти ISA). Опция доступна при включении предыдущей функции. При этом устанавливается начальный адрес "ISA Shared Memory". Опциально устанавливается C8000h, CC000h и т.д. Необходимо помнить, что при выборе начального адреса не должен быть использован E0000h-адрес. Если же в предыдущей опции выбран блок памяти размером в 64 кБ, то может быть использован в качестве начального адреса адрес D0000 или ниже.
В других версиях BIOS могут встретиться другие наименования такой функции, точнее такой пары, - "ISA Mem Block Base" и "ISA Mem Block Size". В качестве значений для первой могут быть указаны адреса C800, CC00, D000, D400, D800 и DC00, а также значение "No/ICU" (нет/ICU), оставляющее управление этим параметром на усмотрение BIOS или программы ICU (ISA Configuration Utility). А размер блока выбирается из ряда: 8K, 16K, 32K, 64K. Необходимо также добавить, что при выборе самого размера блока надо ориентироваться на "потребности" конкретной карты, а также на ...количество таких "вредных" ISA- карт.
И еще одна интересная пара функций. Только "начальной" является опция "Used Mem Base Addr". Она как бы "охватывает" более широкий спектр устройств. Предполагается, что к некоторой области верхней памяти пожелают иметь доступ не только ISA-устройства. Для выбора предлагается, как и выше, любой сегмент памяти между C800H и DC00H адресного пространства (6 возможных адресов), а также по умолчанию - "N/A" (как "Disabled"). При включении опции активируется поле "Used Mem Lenght" для установки размера блока: 8, 16, 32 или 64 кБ.
Теперь "AMI BIOS"!
"Reserved Memory Size" и
x "Reserved Memory Address".
Параметры основной опции: "Disabled", "16K", "32K", "64K". Параметры же второй: C000, C400, C800, CC00, D000, D400, D800 или DC00.