ДАЛЬШЕ...
4. Memory
Memory Current
- опция "Phoenix BIOS" с установкой тока нагрузки для модулей памяти. Значения параметра следующие:
"8mA" - модули памяти требуют тока нагрузки в 8 мА,
"12mA" - модули памяти требуют тока нагрузки в 12 мА. Установка "12mA" становится необходимой, если используются модули памяти большой емкости (64 МБ и более), которые содержат большое число чипов памяти.
4.1. ECC, Parity
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".
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").
Memory Parity/ECC Check
- опция разрешения/запрещения проверки целостности данных. Может принимать значения: разрешен контроль памяти на ошибки ("Enabled"), запрещен ("Disabled") и "Auto". Последняя установка активизирует проверку памяти автоматически с автоматическим же определением возможностей модулей памяти, как по четности, так и по коррекции ошибок. В другой версии BIOS в этой же опции может отсутствовать параметр "Auto".
Только два параметра ("Enabled"/"Disabled") предлагает и опция "Memory Parity (Error) Check". При включении опции и отсутствии необходимых модулей памяти загрузка ПК может прерваться с выводом сообщения "Parity Error".
Осталось отметить следующее! В случае приостановки загрузки системы из-за появления ошибки по четности (или при коррекции) и необходимости все таки произвести загрузку операционной системы, единственный путь обойти POST-тестирование - это запретить любые проверки памяти на четность и т.п. ("Disabled").
Single Bit Error Report
- (сообщение об однобитовой ошибке). Если включен режим коррекции ошибок, то установка опции в "Enabled" позволит системе вывести сообщение о имеющей место однобитовой ошибке и ее коррекции. Решение этой задачи берет на себя контроллер памяти, он же направляет центральному процессору сообщение об ошибке памяти. Отключение опции ведет к отказу от вывода сообщений, но коррекция никак не отменяется.
4.2. "Затенение" памяти
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". Дополнительная информация может быть почерпнута из упомянутой и приведенной ниже опции.
x ISA LFB Base Address
- данная опция не имеет параметров и носит информационный характер. Показывает основной адрес LFB, если установлен размер в предыдущей функции. Адрес устанавливается автоматически.
ISA Mem Block Base
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. При использовании таких карт расширения требуется серьезное изучение документации.
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.
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-интерфейсом.
4.3. Кэширование памяти
640KB to 1MB Cacheability
- опция через установку в "Enabled" позволяет кэшировать последние 384 КБ из первого мегабайта ОЗУ.
Async L2 Cache Leadoff
- данной опцией устанавливается (в системных тактах) время подготовительной фазы до начала непосредственной операции чтения данных из асинхронного кэша 2-го уровня (или записи).
Опция может называться "Async SRAM Leadoff Time", "L2 Async SRAM Leadoff". Значения же опции могут иметь следующий вид: "3T", "4T". В некоторых случаях есть возможность поварьировать временной характеристикой раздельно для операций чтения и записи: "4T/4T", "3T/3T", "3T/4T". Опция "L2 Async SRAM Burst" со значениями "2T" и "3T" аналогична приведенным, разве что указывает на наличие блочных операций.
Речь может идти об аналогичных характеристиках и для синхронной кэш-памяти, и тогда опции будут выглядеть совершенно идентично: "Sync SRAM Leadoff Time", "L2 Sync SRAM Leadoff". Значения последней опции уже знакомы: "3T", "4T".
Попробуем расширить приведенный перечень опций, поскольку речь идет о той же длительности первого обращения к памяти или о возможных задержках (тактах ожидания) при обращении к кэш-памяти:
"L2 Leadoff Timing", "Cache Read Hit 1st Cycle WS", "CPU-to-L2 Checkpoint", "L2 Cache Check Point", "CPU-to-L2 Read Wait States", "CPU-to-L2 Write Wait States", "SRAM Burst R/W Cycle", "L2 Cache Burst Read". К уже имеющимся значениям добавилось еще одно - "1T". Понятно, что меньшее значение дает более высокую скорость, а значит и повышает производительность системы, но при возникновении сбойных ситуаций значение необходимо увеличить.
Cache Burst Read Cycle
- опция, определяющая режим обращения процессора к кэш-памяти. В данном случае речь идет не о методах доступа к кэш-памяти, а о временных параметрах, характеризующих этот доступ. Суть сказанного заключается в том времени, которое необходимо затратить, начиная от момента выдачи адресной информации до момента появления данных на выходных линиях микросхем памяти. Мы описали кратко общий алгоритм обращения к памяти, независимо от того, о какой памяти идет речь. Подытожив изложенное, можно говорить о некотором количестве системных тактов, затрачиваемых на процедуру чтения.
Начиная с 486-х, процессоры могут обращаться к кэш-памяти в режиме "Burst Mode". Во время "блочного" цикла чтения процессор берет из вторичной кэш-памяти (читает) последовательно друг за другом 16 байт данных (четыре двойных слова). Первое обращение занимает больше тактов, чем каждое из трех последующих. Так, например, соотношение (а точнее, временная диаграмма) 3-1-1-1 означает, что первое обращение требует три такта, а второе, третье и четвертое - по одному. Указанные три такта включают в себя подготовительную фазу (leadoff) и собственно считывание первого 32-битного пакета. Число тактов, требующихся для первого обращения, может быть указано также в некоторых версиях BIOS в отдельных самостоятельных опциях. Именно об этом опция "Async L2 Cache Leadoff" и ей подобные (см. выше).
Установка правильного значения зависит и от скоростных характеристик системных компонент (что и определяет время доступа), и от требований к стабильности системы. "Хорошие" временные характеристики возможно было сочетать только с быстрой динамической памятью. Более "древняя" динамическая память, совместимая со страничной адресацией (FPM), позволяла получать очень "хорошие" временные диаграммы, но при этом не будем забывать о системных частотах того времени.
Нетрудно заметить, что возможности влиять на временные характеристики связаны с параметрами первого обращения. Какое значение "выдерживает" система при обращении процессора к кэш-памяти, можно установить экспериментально, уменьшив значение числа тактов в последовательности обращений на 1, например, до 2-1-1-1. При зависании компьютера необходимо будет вернуть прежнее значение.
Опция может называться "Cache Read Burst", "Cache Read Hit Burst", "Async SRAM Burst Time", "Cache Read Burst Mode", "Cache Burst Read Cycle Time".
Как правило, конкретная опция может предложить пару некоторых значений. Ну, а если просуммировать представленные и достаточно многочисленные опции, то можно получить такой ряд параметров: "2-1-1-1", "3-1-1-1", "2-2-2-2", "3-2-2-2", "4-1-1-1". Опция "Async L2 Cache Burst" предложила значения "x-2-2-2" и "x-3-3-3". Как устанавливать "x" уже известно. Такое разнообразие не должно удивлять. Ведь системы могли иметь всего 128 КБ вторичного кэша, а значит диаграмма 3-2-2-2 могла быть не столько оптимальной, сколько единственно возможной (например, для систем с тактовой частотой в 33 МГц). С другой стороны, необходимо представлять себе, что диаграмма 3-1-1-1 для 486-х систем в сравнении с 4-1-1-1 для систем с процессором Pentium вовсе не является выигрышной.
Дополнительная информация по временным характеристикам изложена далее.
Cache Rd+CPU Wt Pipeline
- разрешение опции ("Enabled") позволяет включить конвейеризацию для циклов чтения из кэш-памяти и циклов записи, что естественно значительно повышает производительность системы. По сути эта опция - аналог других опций по конвейеризации кэш-памяти (см. далее).
Опция может называться "Cache Rd+CPU W/T Pipeline".
Cache Timing
- если в системе установлен только один модуль асинхронной кэш-памяти, то необходимо выбрать значение "Fast". Значение "Fastest" устанавливается при наличии в системе двух банков вторичного кэша. В некоторых случаях вместо "Fast" может быть и значение "Faster". Тогда надо внимательнее ознакомиться с имеющимся в системе кэшем, дабы действовать наверняка (см. ниже опцию "Pipeline Cache Timing").
Пользователь должен быть готов и к встрече с опцией "Cache Performance", благодаря которой также устанавливаются скоростные характеристики. Но при этом необходимо учитывать и характеристики основной памяти. Если система использует EDO-память, то значение "Standard" окажется оптимальным, для SDRAM-модулей подойдет "Default" (!), значение "Fast" также окажется оптимальным для SDRAM-памяти, но и позволит эффективнее эксплуатировать кэш.
CPU External Cache
- (внешний кэш процессора). Этой опцией разрешается/запрещается использование внешнего кэша процессора (кэша второго уровня, или "L2"). Запрещать какой-либо вид кэш-памяти следует только в случае необходимости искусственного замедления работы системы, например, при установке какой либо старой платы расширения, или первичного тестирования компьютера. Запрет возможен и для старого программного обеспечения, а также для самых первых версий "OS/2". Во всех случаях возможно потребуется отключить как все виды кэширования, так и "затенения". Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Если вспомнить былое, да и не такое уж далекое, то необходимо отметить, что при отсутствии кэша второго уровня или его неисправности разрешение использования внешнего кэша могло привести к сбоям системы.
Поскольку речь идет лишь о включении или отключении кэш-памяти, то в данном случае, казалось бы, нет смысла рассматривать специфику отдельных процессоров или чипсетов. Однако! Вспомним первые процессоры Celeron с отсутствующим кэшем L2, и тогда сказанное чуть выше оказывается вполне актуальным. Определенные сложности могут возникнуть и при разгоне процессоров. Стоит напомнить, что у архитектуры P5 (Pentium, Pentium MMX) кэш работает на частоте шины, а для архитектуры P6 частота кэш-памяти "привязана" к частоте ядра. При этом она может быть половинной (Pentium II) либо равной ей (Pentium Pro).
Опция может называться "External Cache Memory", "External Cache", "CPU Level 2 Cache", "L2 Cache Enable", "L2 Cache" или "L2 Cacheing".
4. Memory
Memory Current
- опция "Phoenix BIOS" с установкой тока нагрузки для модулей памяти. Значения параметра следующие:
"8mA" - модули памяти требуют тока нагрузки в 8 мА,
"12mA" - модули памяти требуют тока нагрузки в 12 мА. Установка "12mA" становится необходимой, если используются модули памяти большой емкости (64 МБ и более), которые содержат большое число чипов памяти.
4.1. ECC, Parity
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".
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").
Memory Parity/ECC Check
- опция разрешения/запрещения проверки целостности данных. Может принимать значения: разрешен контроль памяти на ошибки ("Enabled"), запрещен ("Disabled") и "Auto". Последняя установка активизирует проверку памяти автоматически с автоматическим же определением возможностей модулей памяти, как по четности, так и по коррекции ошибок. В другой версии BIOS в этой же опции может отсутствовать параметр "Auto".
Только два параметра ("Enabled"/"Disabled") предлагает и опция "Memory Parity (Error) Check". При включении опции и отсутствии необходимых модулей памяти загрузка ПК может прерваться с выводом сообщения "Parity Error".
Осталось отметить следующее! В случае приостановки загрузки системы из-за появления ошибки по четности (или при коррекции) и необходимости все таки произвести загрузку операционной системы, единственный путь обойти POST-тестирование - это запретить любые проверки памяти на четность и т.п. ("Disabled").
Single Bit Error Report
- (сообщение об однобитовой ошибке). Если включен режим коррекции ошибок, то установка опции в "Enabled" позволит системе вывести сообщение о имеющей место однобитовой ошибке и ее коррекции. Решение этой задачи берет на себя контроллер памяти, он же направляет центральному процессору сообщение об ошибке памяти. Отключение опции ведет к отказу от вывода сообщений, но коррекция никак не отменяется.
4.2. "Затенение" памяти
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". Дополнительная информация может быть почерпнута из упомянутой и приведенной ниже опции.
x ISA LFB Base Address
- данная опция не имеет параметров и носит информационный характер. Показывает основной адрес LFB, если установлен размер в предыдущей функции. Адрес устанавливается автоматически.
ISA Mem Block Base
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. При использовании таких карт расширения требуется серьезное изучение документации.
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.
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-интерфейсом.
4.3. Кэширование памяти
640KB to 1MB Cacheability
- опция через установку в "Enabled" позволяет кэшировать последние 384 КБ из первого мегабайта ОЗУ.
Async L2 Cache Leadoff
- данной опцией устанавливается (в системных тактах) время подготовительной фазы до начала непосредственной операции чтения данных из асинхронного кэша 2-го уровня (или записи).
Опция может называться "Async SRAM Leadoff Time", "L2 Async SRAM Leadoff". Значения же опции могут иметь следующий вид: "3T", "4T". В некоторых случаях есть возможность поварьировать временной характеристикой раздельно для операций чтения и записи: "4T/4T", "3T/3T", "3T/4T". Опция "L2 Async SRAM Burst" со значениями "2T" и "3T" аналогична приведенным, разве что указывает на наличие блочных операций.
Речь может идти об аналогичных характеристиках и для синхронной кэш-памяти, и тогда опции будут выглядеть совершенно идентично: "Sync SRAM Leadoff Time", "L2 Sync SRAM Leadoff". Значения последней опции уже знакомы: "3T", "4T".
Попробуем расширить приведенный перечень опций, поскольку речь идет о той же длительности первого обращения к памяти или о возможных задержках (тактах ожидания) при обращении к кэш-памяти:
"L2 Leadoff Timing", "Cache Read Hit 1st Cycle WS", "CPU-to-L2 Checkpoint", "L2 Cache Check Point", "CPU-to-L2 Read Wait States", "CPU-to-L2 Write Wait States", "SRAM Burst R/W Cycle", "L2 Cache Burst Read". К уже имеющимся значениям добавилось еще одно - "1T". Понятно, что меньшее значение дает более высокую скорость, а значит и повышает производительность системы, но при возникновении сбойных ситуаций значение необходимо увеличить.
Cache Burst Read Cycle
- опция, определяющая режим обращения процессора к кэш-памяти. В данном случае речь идет не о методах доступа к кэш-памяти, а о временных параметрах, характеризующих этот доступ. Суть сказанного заключается в том времени, которое необходимо затратить, начиная от момента выдачи адресной информации до момента появления данных на выходных линиях микросхем памяти. Мы описали кратко общий алгоритм обращения к памяти, независимо от того, о какой памяти идет речь. Подытожив изложенное, можно говорить о некотором количестве системных тактов, затрачиваемых на процедуру чтения.
Начиная с 486-х, процессоры могут обращаться к кэш-памяти в режиме "Burst Mode". Во время "блочного" цикла чтения процессор берет из вторичной кэш-памяти (читает) последовательно друг за другом 16 байт данных (четыре двойных слова). Первое обращение занимает больше тактов, чем каждое из трех последующих. Так, например, соотношение (а точнее, временная диаграмма) 3-1-1-1 означает, что первое обращение требует три такта, а второе, третье и четвертое - по одному. Указанные три такта включают в себя подготовительную фазу (leadoff) и собственно считывание первого 32-битного пакета. Число тактов, требующихся для первого обращения, может быть указано также в некоторых версиях BIOS в отдельных самостоятельных опциях. Именно об этом опция "Async L2 Cache Leadoff" и ей подобные (см. выше).
Установка правильного значения зависит и от скоростных характеристик системных компонент (что и определяет время доступа), и от требований к стабильности системы. "Хорошие" временные характеристики возможно было сочетать только с быстрой динамической памятью. Более "древняя" динамическая память, совместимая со страничной адресацией (FPM), позволяла получать очень "хорошие" временные диаграммы, но при этом не будем забывать о системных частотах того времени.
Нетрудно заметить, что возможности влиять на временные характеристики связаны с параметрами первого обращения. Какое значение "выдерживает" система при обращении процессора к кэш-памяти, можно установить экспериментально, уменьшив значение числа тактов в последовательности обращений на 1, например, до 2-1-1-1. При зависании компьютера необходимо будет вернуть прежнее значение.
Опция может называться "Cache Read Burst", "Cache Read Hit Burst", "Async SRAM Burst Time", "Cache Read Burst Mode", "Cache Burst Read Cycle Time".
Как правило, конкретная опция может предложить пару некоторых значений. Ну, а если просуммировать представленные и достаточно многочисленные опции, то можно получить такой ряд параметров: "2-1-1-1", "3-1-1-1", "2-2-2-2", "3-2-2-2", "4-1-1-1". Опция "Async L2 Cache Burst" предложила значения "x-2-2-2" и "x-3-3-3". Как устанавливать "x" уже известно. Такое разнообразие не должно удивлять. Ведь системы могли иметь всего 128 КБ вторичного кэша, а значит диаграмма 3-2-2-2 могла быть не столько оптимальной, сколько единственно возможной (например, для систем с тактовой частотой в 33 МГц). С другой стороны, необходимо представлять себе, что диаграмма 3-1-1-1 для 486-х систем в сравнении с 4-1-1-1 для систем с процессором Pentium вовсе не является выигрышной.
Дополнительная информация по временным характеристикам изложена далее.
Cache Rd+CPU Wt Pipeline
- разрешение опции ("Enabled") позволяет включить конвейеризацию для циклов чтения из кэш-памяти и циклов записи, что естественно значительно повышает производительность системы. По сути эта опция - аналог других опций по конвейеризации кэш-памяти (см. далее).
Опция может называться "Cache Rd+CPU W/T Pipeline".
Cache Timing
- если в системе установлен только один модуль асинхронной кэш-памяти, то необходимо выбрать значение "Fast". Значение "Fastest" устанавливается при наличии в системе двух банков вторичного кэша. В некоторых случаях вместо "Fast" может быть и значение "Faster". Тогда надо внимательнее ознакомиться с имеющимся в системе кэшем, дабы действовать наверняка (см. ниже опцию "Pipeline Cache Timing").
Пользователь должен быть готов и к встрече с опцией "Cache Performance", благодаря которой также устанавливаются скоростные характеристики. Но при этом необходимо учитывать и характеристики основной памяти. Если система использует EDO-память, то значение "Standard" окажется оптимальным, для SDRAM-модулей подойдет "Default" (!), значение "Fast" также окажется оптимальным для SDRAM-памяти, но и позволит эффективнее эксплуатировать кэш.
CPU External Cache
- (внешний кэш процессора). Этой опцией разрешается/запрещается использование внешнего кэша процессора (кэша второго уровня, или "L2"). Запрещать какой-либо вид кэш-памяти следует только в случае необходимости искусственного замедления работы системы, например, при установке какой либо старой платы расширения, или первичного тестирования компьютера. Запрет возможен и для старого программного обеспечения, а также для самых первых версий "OS/2". Во всех случаях возможно потребуется отключить как все виды кэширования, так и "затенения". Может принимать значения:
"Enabled" - разрешено,
"Disabled" - запрещено.
Если вспомнить былое, да и не такое уж далекое, то необходимо отметить, что при отсутствии кэша второго уровня или его неисправности разрешение использования внешнего кэша могло привести к сбоям системы.
Поскольку речь идет лишь о включении или отключении кэш-памяти, то в данном случае, казалось бы, нет смысла рассматривать специфику отдельных процессоров или чипсетов. Однако! Вспомним первые процессоры Celeron с отсутствующим кэшем L2, и тогда сказанное чуть выше оказывается вполне актуальным. Определенные сложности могут возникнуть и при разгоне процессоров. Стоит напомнить, что у архитектуры P5 (Pentium, Pentium MMX) кэш работает на частоте шины, а для архитектуры P6 частота кэш-памяти "привязана" к частоте ядра. При этом она может быть половинной (Pentium II) либо равной ей (Pentium Pro).
Опция может называться "External Cache Memory", "External Cache", "CPU Level 2 Cache", "L2 Cache Enable", "L2 Cache" или "L2 Cacheing".