Думаю, большинству читателей известно, что BIOS - это базовая система ввода-вывода, включающая в себя набор подпрограмм, записанных в ПЗУ компьютера. Кроме обслуживания обращений к различным устройствам и проведения начальной диагностики (процедура POST), BIOS также занимается инициализацией всех устройств компьютера, занося в их регистры определенные значения. Очевидно, что от того, как именно настроит BIOS то или иное устройство, зависит быстродействие и стабильность всей системы в целом. Программа Setup, доступ к которой можно получить, нажав "DEL" (или "F2") при загрузке, как раз и позволяет изменять те значения, которые загружаются в регистры различных устройств, прежде всего чипсета материнской платы. Кстати, хранятся они в памяти, питаемой от батарейки, а память эту называют CMOS (Complimentary Metal-Oxide-Semiconductor, потребляющая небольшую мощность в статическом режиме логика).
Раз BIOS Setup позволяет настраивать систему, интерес к его опциям неизменно проявляется у многих владельцев компьютеров. Конечно, можно спокойно применить к ним "метод тыка" и добиться при этом хорошего результата. Но гораздо лучше знать, что именно затрагивает та или иная опция, и производить "твикинг" целенаправленно. Данный цикл статей, построенный на базе нескольких хорошо известных в интернете "BIOS Guides" (лучшие - на сайтах "Lost Circuits", www.lostcircuits.com, и "Adrian's Rojack Pot", www.rojackpot.com), и будет посвящен самым "хитрым" опциям современных BIOS.
Часть первая. Настраиваем память
Прежде чем начинать описание опций BIOS, затрагивающих работу памяти (обычно они находятся в Advanced Chipset Setup), нужно хотя бы приблизительно разобраться, как именно происходит к ней доступ.
Как известно, у современного компьютера память подключена к системному контроллеру (точнее, к контроллеру памяти) с помощью 64-разрядной шины. По этой шине передаются как адреса, так и данные. Физический адрес определенной ячейки памяти содержит в себе адреса строки (Row) и столбца (Column) в запоминающем массиве. RAS (Row Access Strobe) сигнализирует о том, что в данном такте выбирается определенная строка, сигнал CAS (Column Access Strobe) - столбец, а точнее, элемент (слово) из строки. После этого данные в виде пакета (нескольких последовательных слов) выдаются на шину.
Кроме того, современные микросхемы памяти содержат в себе несколько независимых банков. Работа с банком начинается с его активации (открытия) и заканчивается закрытием, после чего данные в нем обновляются (перезаряжаются ячейки динамической памяти, содержимое которых имеет свойство быстро обнуляться).
Итак, работа с памятью происходит по следующему алгоритму:
- активируется банк подачей сигнала RAS;
- происходит задержка, пока данные поступают из выбранной строки банка в усилитель (задержка RAS-to-CAS);
- подается сигнал CAS на выборку первого слова из строки;
- данные поступают на шину, при этом происходит задержка (CAS Latency);
- следующее слово выдается уже без задержки, так как оно содержится в подготовленной строке;
- когда цикл выборки пакета из четырех слов завершен, и больше нет обращений к этой строке, происходит закрытие банка; данные возвращаются в ячейки (задержка RAS Precharge).
Важно понимать, что уже открытый банк не требует задержек на активацию, а доступ к данным в нем требует только одну задержку - CAS Latency. Поэтому именно она оказывает наибольшее влияние на производительность подсистемы памяти. Также стоит обратить внимание на тот факт, что банки памяти могут открываться и закрываться независимо друг от друга, что позволяет работать с одним из них тогда, когда другой занят перезарядкой.
SDRAM Cycle Length (CAS Latency, CAS Delay)
Число тактов, требуемых для выдачи данных на шину после поступления сигнала CAS. Самый важный параметр, влияющий на производительность. Если память позволяет, нужно выставлять значение 2.
RAS-to-CAS Delay (Trcd)
Число тактов, необходимых для поступления строки данных в усилитель. Тоже оказывает влияние на производительность. Значение 2 предпочтительнее и подходит в большинстве случаев.
SDRAM RAS Precharge Time (TRP)
Время перезарядки ячеек памяти после закрытия банка. Обычно используется значение 2, хотя чипсеты VIA позволяют установить 3 (см. ниже).
SDRAM RAS Time (TRAS)
Время, в течение которого банк остается открытым и не требует обновления (перезарядки). Как правило, такой отдельной опции нет, она комбинируется с последующей.
SDRAM Cycle Time (TRC, TRAS/TRC)
Время (в тактах), требуемое на полный такт доступа к банку, начиная с открытия и заканчивая закрытием. Обычно задается вместе с параметром TRAS. TRC=TRAS+TRP. Чипсет i815 позволяет устанавливать TRAS/TRC в значения 5/7 и 7/9, чипсеты VIA Apollo и KT - 5/7, 5/8, 6/8, 6/9, изменяя при этом время TRP. Современная память со временем цикла 50 нс и частотой 133 МГц (маркировка 7.5 нс) позволяет работать в режиме 5/7.
SDRAM Idle Cycle
Иногда встречается и такая опция. Она устанавливает время простаивания банка памяти, не занятого обменом данными. Изменять значение по умолчанию не имеет смысла.
RAS Precharge Control (Page Closing Policy)
Управляет процедурой закрытия банков памяти. Если установлено значение Disabled (Precharge All), то контроллер памяти закрывает сразу все открытые банки памяти при попытке доступа за пределы текущего банка. При необходимости доступа к следующему банку нужно его открыть. Если же поставить Enabled (Precharge Bank), то все банки остаются открытыми до тех пор, пока не потребуется перезарядка их ячеек. Тем самым можно выполнять доступ к нескольким банкам без ожидания их закрытия и последующей активации, что существенно ускоряет работу при чтении больших блоков данных, но замедляет - при активном использовании процессорного кэша (банк приходится закрывать в самый неподходящий момент).
Bank Interleaving
То же самое, но с другой стороны. Включение этого режима позволяет работать с банками по очереди, то есть получать данные из одного в то время, когда другие заняты. Причем выбор значения 2-Way позволяет чередовать пару банков, а 4-Way - четыре банка (они есть у большинства микросхем DIMM-модулей), а это, конечно, выгоднее.
Bank X/Y DRAM Timing
Очень "хитрая" опция, часто встречающаяся в BIOS Setup материнских плат на чипсетах VIA. Список значений этой опции - 8/10/Normal/Fast/Turbo. Какой именно смысл скрывается за всем этим? Какие именно параметры работы контроллера памяти изменяет эта опция? Этот вопрос был прояснен с помощью утилиты WPCREDIT, которая получает доступ к регистрам чипсета. После обследования нескольких материнских плат была составлена такая таблица:
Значение опции | Tras | Trp | RAS- to-CAS | Bank Interleaving |
SDRAM 8-10ns | 6T | 3T | 3T | Disabled |
Normal | 5T | 2T | 1T | 4 way |
Medium | 6T | 3T | 3T | Disabled |
Fast | 6T | 3T | 3T | Disabled |
Turbo | 6T | 3T | 2T | Disabled |
Очевидно, что наибольшая производительность будет достигнута при значении Normal; Turbo отключает чередование банков и устанавливает меньшие значения задержек RCD и Precharge, а все остальные вообще ничем не отличаются. Впрочем, известно, что на платах ASUS эта опция переделана - там Turbo дает минимальные задержки, а Normal - максимальные. Выяснить, изменил ли производитель материнской платы эти опции AwardBIOS, можно либо с помощью тестов (хорошо подойдет Sandra Memory Bandwidth test), либо с помощью уже упомянутой утилиты WPCREDIT.
DRAM Clock
Чипсеты VIA, а также Intel i810/i815 и модификации допускают псевдоасинхронную работу шины памяти и процессорной шины (FSB - Front Side Bus). Данная опция у чипсетов VIA имеет значения Host CLK, CLK+33 и CLK-33 (не все присутствуют), что подается как возможность повышать или понижать частоту памяти относительно процессорной шины на 33 МГц. На самом деле частота не суммируется, просто используется другой множитель относительно частоты шины PCI, которая всегда равна 33 МГц. Например, при FSB=100 (PCIx3) память может работать на частоте 66 (PCIx2) или 133 (PCIx4). Если память позволяет, частоту нужно увеличивать - ставить CLK+33.
Для чипсетов Intel есть возможность выбрать либо частоту 100, либо - 133 МГц. Последняя возможна только в том случае, если и процессор работает на шине 133 МГц. И кроме того, i810/i815 не позволяет использовать три модуля памяти на частоте 133 МГц.
Memory Timing by SPD
Как известно, SPD (Serial Presence Detection) - механизм получения информации о характеристиках модуля DIMM. В небольшой EEPROM-микросхеме хранятся CAS Latency, RAS-to-CAS и множество других параметров. Если эту опцию включить, то BIOS при загрузке автоматически сконфигурирует контроллер памяти, установив наилучший допустимый режим работы, поставит и CAS Latency, и Bank Interleaving, и даже частоту работы памяти. Пользователю уже не нужно беспокоиться о выборе правильных настроек.
Однако не во всех случаях SPD дает положительный эффект. Во-первых, недобросовестные производители памяти могут "зашить" в ППЗУ завышенные значения, и память будет сбоить. Во-вторых, при проблемах с чтением SPD все настройки памяти будут выставлены по минимуму. Поэтому включать данную опцию нужно с осторожностью, будучи уверенным, что микросхемы SPD всех модулей памяти исправны.
Итог
Если вы хотите добиться наилучшей производительности подсистемы памяти, включайте опцию "Memory Timing by SPD". Если ее нет либо она не работает правильно, нужно обратить внимание на "Bank X/Y Timing" и CAS Latency. Не стоит игнорировать и Bank Interleaving (чипсеты VIA) или Page Closing Policy (чипсеты Intel). Остальные опции не оказывают существенного влияния на работу памяти, хотя их тоже имеет смысл попробовать поставить в минимальные значения. Проверить работу памяти после подобных манипуляций можно специальными тестами (например, TestMem2), хотя на самом деле достаточно поработать на компьютере несколько часов подряд - если память не справляется, это будет сразу заметно: ошибки, зависания, "синие экраны смерти" и т.п.
Макс КУРМАЗ,
[email protected],
www.kv.by/hardware
![Версия для печати Версия для печати](https://www.kv.by/sites/all/modules/print/icons/print_icon.png)
Горячие темы