Средства проверки системной памяти
Память для компьютера, как воздух для человека. Когда ее мало, система задыхается, не имея возможности эффективно оперировать данными. Но самый худой случай, когда память сбоит, — это чревато не только внезапными проблемами в работе: зависаниями приложений, потерей данных, но, в конце концов — полным крахом системы. Так как рано или поздно из-за сбоев памяти, ошибки закрадутся и в системные файлы операционной системы, и ее функциональность будет нарушена. В случае нестабильной работы компьютера первым делом стоит проверить память. То же полезно проделать и просто для профилактики, при работе оборудования в нештатных режимах или же при покупке нового ПК.
На сегодняшний день основными типами памяти на материнских платах компьютеров является SDRAM в модулях DIMM PC100/133 и DDR200/266/333/400. DDR работает на базовых частотах 100/133/166/200 МГц, частота сигнала соответственно удваивается. Хотя в устаревших ПК все еще активно используются и модули DIMM PC66 и еще более старые SIMM. Память Rambus — RDRAM применяется в ограниченном количестве, не получив из-за своей дороговизны широкого распространения.
Если ранее чипы памяти (SIMM) характеризовались временем доступа, скажем 60 или 70 ns, то теперь (SDRAM) производители стали указывать другой параметр, иногда ошибочно так же называемый временем доступа к содержимому памяти. В качестве показателя быстродействия SDRAM памяти указывается всего лишь длительность периода синхросигнала tCLK, величина обратно пропорциональная частоте. Типичные значения tCLK — 5-12 ns, полный же цикл реального доступа к ячейке памяти гораздо больше этих значений. Значение tCLK SDRAM неразрывно связано с максимальной частотой ее работы. Зависимость здесь следующая: 10 нс — 100 МГц; 8 нс — 125 МГц; 7,5 нс — 133 МГц; 6 нс — 166 МГц; 5 нс — 200 МГц. По сути, в данном случае, период синхросигнала — это продолжительность одного такта импульса при максимальной частоте: Т(с) = 1/f(Гц). Для представления в более удобном виде (нс) можно пользоваться: Т(нс) = 1000/f(МГц).
Нарушение стабильности работы памяти возможно из-за нескольких причин. Самая тривиальная из них — действительно бракованные модули. Другой причиной могут стать слишком быстрые установки в BIOS, закрученные пользователем намеренно или же по недомыслию. Однако самым коварным случаем, что тоже иногда случается, является аппаратная несовместимость некоторых модулей памяти от разных производителей между собой или же с некоторыми материнскими платами. В последнем случае все компоненты являются, в общем-то, вроде бы и рабочими, однако для них требуется специальный подбор.
Настройка BIOS Setup: скорость/стабильность памяти
Полный цикл доступа к памяти состоит из отдельных операций: запись/чтение столбцов и строк, задержки между сигналами, циклы регенерации и т.д. Каждая операция занимает определенное время, измеряемое наносекундами. Эти временные промежутки называют таймингами памяти. Работа памяти привязана к своей частоте, каждый такт которой уже имеет свой фиксированный промежуток времени. Поэтому время на выполнение отдельных операций обычно представляются не в наносекундах, а в количестве тактов на частоте памяти. Чем с меньшими таймингами может работать память, тем меньше тактов, а значит и времени, понадобится для доступа к ней. Работа памяти и всей системы в целом будет быстрее. Наибольшей популярностью у любителей подразогнать систему пользуются следующие установки: CAS Latency, CAS to RAS Delay, RAS Precharge, образующие основную тайминговую цепочку SDRAM.
SDRAM CAS Latency — время необходимое для реализации сигнала CAS (Column Address Strobe — выбор адреса столбца), то есть количество тактов с момента поступления CAS до записи/считывания с ячейки памяти. Это один из самых важных таймингов, чаще всего присутствующих в настройках BIOS даже в самых простых его версиях. SDRAM CAS to RAS Delay — задержка в тактах между сигналами RAS (Row Address Strobe — выбор адреса строки) и CAS. SDRAM RAS Precharge Time — длительность в тактах перезарядки содержимого строк микросхем памяти. В сокращенном виде это изображается, например, так: «3-3-3», — приведен характерный случай для РС133. Такая запись показывает количество требуемых тактов в последовательности «CAS» — «CAS to RAS» — «RAS Precharge».
В большинстве BIOS’ов современных материнских плат почти наверняка вручную регулируются тайминги CAS Latency. В платах с боле богатыми регулировками, с явно выраженной оверклокерской направленностью могут поддаваться ручному изменению все вышеперечисленные параметры, и даже некоторые дополнительные. У производителей материнских плат нет единого подхода к подобным установкам, как, впрочем, и к терминологии описывающей их. Могут попадаться довольно замысловатые названия, смысл которых не всегда сразу понятен. В настройках часто присутствуют установки вида: Slow, Normal, Fast, Turbo и т.д. В любом случае, понятно, что Turbo быстрее, чем Normal и т.д., Меняя установки соответствующего вида, вы ускоряете или замедляете работу памяти.
Но все-таки, в наибольшей степени на быстродействие памяти влияет ее частота. На материнских платах, чипсеты которых поддерживают асинхронный режим работы, существует возможность установки частоты памяти выше частоты системной шины. Таким образом, CPU может работать, скажем, на 100 (200) МГц, а память на 133 (266) МГц. Другой способ повышения частоты памяти — это уже увеличение частоты системной шины сверх нормы, то есть чистой воды разгон. С повышением частоты FSB повышается скорость всех подсистем, завязанных на эту шину, в первую очередь процессора, а вместе с тем и памяти. При наращивании частоты, система рано или поздно потеряет стабильность. Здесь немаловажно определить, какой компонент начинает сбоить первым, заваливая за собой все остальные. Вполне возможно, что первым не выдержит как раз модуль памяти, испортив все дальнейшие удовольствие от разгона. По крайней мере, память можно протестировать отдельно, выяснив, таким образом, ее состояние.
Установки в BIOS следует менять последовательно, один за другим, постепенно наращивая быстродействие. Наступит момент, когда работа системы станет неустойчивой либо будет невозможна вообще. Тогда необходимо делать откат назад — вернуться к последним стабильным настройкам. Стабильность работы памяти и процессора, а иногда и чипсета можно повысить еще одним кардинальным и довольно таки небезопасным способом. Речь идет о повышении напряжения питания соответствующих компонентов. Некоторые материнские платы позволяют делать и это.
При увеличении напряжения работа таких устройств как процессор, чипсет и память становится более стабильной по отношению к повышенным, как правило, чрезмерным для них частотам. При этом бывает возможен разгон на еще более высокие частоты. Сейчас многие системные платы поддерживают регулировку напряжения CPU прямо из BIOS. Лишь некоторые из них могут проделывать то же с чипсетом или памятью. Иногда для этого приходится лезть внутрь системного блока и переставлять переключатели на самой плате. Повышение напряжения памяти, как правило, возможно в пределах 0,1-0,3 В. Здесь следует помнить, что дело это все же рисковое. Модули памяти не снабжены ни радиаторами, ни обдувом. Увеличение напряжения в связке с повышением частоты способно привести к перегреву и выгоранию чипов.
Прежде, чем браться за серьезную настройку BIOS на свой лад, полезно сразу же определиться с местонахождением перемычки Clear CMOS. Такая перемычка обязательно должна присутствовать где-то поближе к батарейке. При ее замыкании на несколько секунд, установки BIOS восстанавливаются на значения принятые по умолчанию. Такое может понадобиться, если загнанная система намертво зайдет в ступор и перестанет запускаться вообще. Последний вариант возможен при слишком смелых установках, несовместимых с возможностями системы.
Программы для проверки и тестирования системной памяти
Память — одна из наиболее важных подсистем компьютера и ее работа должна быть не только быстрой, но и абсолютно стабильной. Сбои в работе памяти могут вызывать не только мелкие глюки в работе программ, но и стать причиной потери ценной информации, повреждения системной части ОС и даже полного ее краха.
Среди дешевых модулей памяти иногда попадаются бракованные, сбойные чипы. К тому же возможность брака полностью нельзя исключать и у солидных производителей, либо же подделок под известные фирмы. Еще более остро стоит вопрос надежности и стабильности работы если память работает в нестандартном, считай разогнанном режиме. Только основательная проверка в какой-то мере может стать гарантией пригодности подозрительной памяти. Разные люди подходят к вопросу комплектации по разному. Рассмотрим некоторые типичные случаи.
Вы только что по весьма умеренной цене купили новую память. Предполагается, что она с гарантией. Поверьте, несколько часов предварительной проверки не станут лишними перед началом ее настоящей эксплуатации. Новая память должна проверяться на установках в BIOS для своей максимальной штатной производительности, а еще лучше — чуть выше, именно на своей материнской плате, обязательно со всеми другими модулями памяти, которые будут использоваться на этой же плате. Если какие либо проблемы в работе памяти будут выявлены, то можно тут же поменять ее по гарантии компетентно изложив свои претензии. Еще в большей степени это же актуально при покупке нового компьютера. Ведь в случае покупки модуля памяти отдельно, хотя бы знаешь, что покупаешь и чем рискуешь. Если же приобретается готовый, да еще и опломбированный системный блок, то внутри может оказаться что угодно — обычно самая дешевая память.
Другой случай. Вы экстремал, и от своего компьютера попытаетесь получить все, на что он только способен. Естественно ни о каких штатных режимах и гарантийных обязательствах здесь речь не идет. Для вас разгон и риск вполне привычное и оправданное дело. Установки на системной плате и настройки в BIOS закручены по максимуму. Тестирование памяти при таких обстоятельствах особенно важно. Какой бы надежный не был модуль памяти и кто бы ни был его производителем, но именно он может стать причиной падения разогнанной по многим параметрам системы. Здесь уже требуется определить тот предел или то сочетание установок, которое еще будет выдерживать память, обеспечивая стабильность работы при своей максимальной нагрузке. Конечно, при условии, что именно память окажется здесь самым уязвимым местом, — не остановится раньше процессор или другие компоненты ПК.
Идем дальше. Вы рациональный человек. Разгон для вас не является самоцелью. Однако после очередного апгрейда осталась вполне приличная старая память РС66 или РС100, особенно если речь идет о 8-ми наносекундной РС100 для которой максимальной штатной частотой является 125 МГц. Новая же материнская плата может поддерживать 100 или 133 МГц. Вы понимаете, что эта память с большой долей вероятности сможет работать на новом железе, правда, режим ее работы никак уже нельзя будет считать штатным. Ее же замена, — продажа старых модулей и покупка новых, неизбежно повлекла бы дополнительные финансовые расходы. И вот вы ставите старую память на новую плату. Результат может вполне оправдать ожидания. Если продолжительное тестирование покажет стабильную работу памяти, то почему бы ее и не использовать, хотя бы какое то время, до следующей модернизации?
Итак, чем протестировать память?
Проверенным средством для тестирования оперативной памяти является программа MemTect-86. MemTect-86 вполне может поспорить за первое место на предмет наиболее полного выявления всех сбоев в работе памяти среди подобных себе утилит. Отыскать ее последнюю версию можно на сайте www.memtest86.com. Текущая на данный момент версия v.3.0 может корректно работать с памятью объемом более 2 Гб.
Перед началом работы программа установки создает загрузочную дискету, с которой потом можно будет запустить тест памяти. Программы подобного рода обычно работают в однозадачных DOS-подобных операционных системах, забирающих под себя минимум ресурсов и оказывающих минимальное влияние на работу и на процесс диагностики. Для создания загрузочной дискеты нужно распаковать скачанный архив с MemTest-86, потом из-под Windows запустить файл install.bat. В появившемся окне DOS’а программа установки попросит указать имя (обычно А) привода FDD, после чего нужно вставить дискету и начать создание загрузочной дискеты. При создании дискета переформатируется по-своему, поэтому информация на ней не будет читаться из Windows. Это нормально.
Запуск MemTest-86 осуществляется с ее загрузочной дискеты при перезагрузке компьютера. Естественно, в BIOS должен быть установлен порядок загрузки, где на первом месте стоит привод FDD. Программа сразу же запускает процесс тестирования. После прохождения первого цикла тестов, начинается второй и т.д., без остановок до ручного прекращения тестирования. Интерфейс окна программы весьма простой, но, тем не менее, информативный. Отображаются частота процессора, размеры L1, L2 кеша и системной памяти. При тестировании выводится процент выполнения каждого теста и всего цикла в отдельности. Считается полное время тестирования, количество пройденных циклов. Адреса сбойных ячеек, если такие появятся, выводятся в средней области экрана (рис.1).
Чтобы изменить конфигурацию настроек тестирования на отличную от принятой по умолчанию, нужно нажать клавишу «С». Тогда на экране появится черное окно с пронумерованным списком пунктов подлежащих настройке либо выполнению. Под номерами 1-6 значатся пункты, параметры которых могут быть изменены пользователем. Чтобы проделать это достаточно нажать нужную цифру на клавиатуре — номер интересующего пункта. После чего вы попадете в подменю выбранного пункта, где так же нажатием цифры можно принять нужную установку. Нажатие «0» обозначает выход из окон настройки.
Чем больше полных циклов тестирования пройдет программа, тем выше вероятность обнаружения ошибок в работе памяти. Хорошо бы ее оставить работать хотя бы на несколько часов, а то и сутки. Один полный цикл проверки MemTest-86 памяти РС133 128 Мб на платформе с процессором Duron 700 MHz длится примерно 27 мин.
В качестве тестеровщика памяти можно предложить и программу GoldMemory. В незарегистрированной версии программы не будут работать некоторые функции, хотя и в базовом варианте — это эффективное средство проверки оперативной памяти.
Запускать GoldMemory, опять же, лучше всего с загрузочной дискеты. Для ее создания надо запустить файл Install.bat из распакованного архива программы. Причем сделать это можно как из Windows, так и из DOS’а. На заранее отформатированную дискету будут скопированы все необходимые файлы. Далее — перезагружаем компьютер, программа запустится сама.
На экране GoldMemory находится краткая инструкция с ключами для запуска того или иного режима тестирования, некоторые относятся только к зарегистрированной версии. Обнаруженные ошибки прописываются на видном месте — середине экрана (рис.2). Автоматически программа начинает работать в режиме Normal. В этом режиме полный цикл проверки 192 Мб РС133 при тех же условиях занимает чуть больше трех часов.
Серьезным средством для проверки памяти является российская разработка — TestMem 4. В однозадачной среде DOS TestMem 4 эмулирует выполнение тестов в среде с реальной многозадачностью. Так в программе предусмотрено 8 различных тестов, и каждый процесс пытается урвать для себя время. Для тестов задан рваный ритм выполнения и динамический приоритет для равноправного доступа тестирующих процессов. Кроме системной памяти программа может тестировать видеопамять карт от nVidia.
Запускается MemTest 4 из-под DOS’a или с загрузочной дискеты (не любит драйвера himem.sys, его следует отключить в config.sys) или же после перезагрузки Windows 9X в режиме MS-DOS (командном режиме).
В отличие от отмеченных выше утилит, экран TestMem 4 изобилует настройками, и без вмешательства в них со стороны пользователя эффективное тестирование вряд ли получится. В ее интерфейсе задействован весь ряд функциональных клавиш — F1-F12. Установки задаются в окне, вызываемом клавишей F10 (рис.3). Настройка установок или запуск на тестирование возможны только в режиме «wait». При запуске программа некоторое время приходит в состояние готовности, поэтому ее настройка и запуск сразу невозможны, нужно дождаться появления в нижнем правом углу надписи «wait» малиновым цветом. Запуск теста выполняется клавишей «Enter», прекращение — «Esc».
В окне настроек (F10) присутствует несколько окон меню. Переход между меню осуществляется «табуляцией», внутри их — «стрелками». В первом окне «Hardware Setup» указывается месторасположение по слотам установленных модулей DIMM’ов и их параметры. В меню «Chipset Setup» задается номер слота того DIMM’a который будет проверен. За один раз TestMem 4 может проверять только один модуль DIMM. В правом меню можно включать или отключать отдельные тесты, а так же задать настройки на регенерацию и многозадачность. Здесь «Layers» — количество слоев разбиения памяти, эмулирует работу нескольких программ. «Refresh» — время на проверку регенерации памяти.
Проверка памяти проходит в два цикла, до и после регенерации. Полоска внизу экрана обозначает объем тестируемой памяти, появление на ней красных сегментов свидетельствует об ошибках. Состояние разных тестов можно просмотреть, воспользовавшись клавишами F1-F8.
Так же доступным средством для проверки системной памяти является программа DocMem, найти которую можно по адресу www.simmtester.com или www.docmemory.com. С помощью DocMem можно протестировать различные типы памяти: EDO, SDRAM, DDR и RAMBUS. Тестирование возможно только с загрузочной дискеты, которую создает программа установки. Запускается установочный файл из Windows, но дальнейшая установка проходит в окне DOS. Вам придется лишь выполнить несколько простых инструкций программы. Для запуска DocMem, необходимо перезагрузить компьютер с загрузочной дискетой, программа запустится сама.
После запуска программы будет предложено выбрать способ тестирования: Quick Test или Burn-In Test. Друг от друга они отличаются лишь тем, что в случае Quick Test полный цикл тестов по умолчанию проходит лишь один раз. В случае же Burn-In Test циклы тестов непрерывно следуют один за другим, до ручной остановки. Управление в программе возможно как с помощью мыши, так и функциональных клавиш. Установки программы можно менять из вкладки «Configuration». В разделах «Test Group» и «Test Pattern» можно отключать или включать те или иные тесты для основной (до 1Мб) и дополнительной (все что выше) памяти. По умолчанию здесь включены все тесты и проверяется вся память, поэтому лучше здесь ничего не менять. В разделе «Test Loop» можно задать количество циклов тестирования для режима Quick Test, по умолчанию задан один цикл.
Итак, все представленные выше программы работает с загрузочных дискет или из-под DOS’a, что, в принципе, является наиболее оптимальной организацией для такого рода задач. Но если по каким либо причинам такой способ не подходит, и вы желаете проводить диагностику работы памяти из среды Windows, то можно предложить следующую утилиту: MemTest для Win9x/NT/2000/Me. С описанной ранее MemTest-86 эта программа не имеет ничего общего, их предлагают разные разработчики.
MemTest не требует инсталляции, запускается исполнимым файлом в Windows. Да вот только надо учитывать, что сам Windows занимает под себя огромное количество памяти. Специфика работы программы заключается в том, что перед запуском теста пользователь по своему усмотрению должен предусмотреть объем памяти, отводимый под нужды ОС.
Объем тестируемой памяти указывается в строке окна программы (рис.4). Указанный объем должен быть меньше фактического размера установленной памяти на несколько десятков мегабайт, остаток пойдет под нужды ОС, особая точность здесь не требуется. По возможности стоит оставлять под Windows как можно меньше памяти. Далее кнопкой «Start» запускается тестирование. При отведении ОС слишком малого объема памяти работа программы будет очень медленной либо невозможной вообще. В довольно кратком описании, прилагаемой к этой утилите, к сожалению, не говорится, что происходит с выделенной под Windows частью памяти. Поэтому, при таких обстоятельствах, трудно судить, насколько эффективна проверка всего объема ОЗУ.
Практический опыт показывает, что MemTect-86, GoldMemory и TestMem 4 неплохо справляются с задачей проверки памяти. Более интересна среди других TestMem 4, отличающаяся гибкими настройками и оригинальным алгоритмом работы. Заведомо хуже обстоят дела с DocMem, она сама нередко подвисает при слишком глючной памяти и плохо ловит слабо выраженные баги. Бывает, при проверке явно сбойной памяти этой утилитой, начинает шипеть и подвывать на каких-то фантастических частотах системный динамик — эффект впечатляющей, но даже в такой ситуации программа умудряется не зарегистрировать ни одной ошибки. Все программы могут проверять память в модулях SIMM, правда TestMem 4 по умолчанию принимает все модули SIMM, будь их два или четыре, за один DIMM, но проверяет, похоже, корректно, сбои находит.
Наиболее же каверзным случаем является несовместимость модулей памяти разных производителей между собой или с материнскими платами. Приведу наиболее яркий пример из практики, если это так можно назвать. На одну материнскую плату от хорошего производителя был установлен модуль 128 Мб РС133 промаркированный как PQI. Система отлично работала, память прекрасно выдерживала повышенные частоты и уменьшенные тайминги. Потом на эту же плату был добавлен 64Мб РС133 от Samsung с такими же значениями таймингов как и у PQI. Модуль Samsung до того проработал на этом компьютере не один месяц без всяких проблем. Но через несколько минут работы модулей памяти в паре Windows завис, потом выдал, что произошла ошибка в системном реестре, и система была немедленно отправлена на перезагрузку для восстановления реестра. Ситуация с реестром повторялась несколько раз подряд, до тех пор, пока Windows не был разрушен до основания и его пришлось переустанавливать. Проблема с памятью была налицо. Все переустановки в BIOS выполненные вручную оказались бесполезны. Ситуацию удалось исправить лишь заменой модуля PQI на точно такой же, но другого производителя. Эта ситуация приведена лишь в качестве подвернувшегося примера и не в коей мере не относится ко всем модулям памяти указанных производителей.
Не добавляет оптимизма и тот факт, что при вышеописанной ситуации ни одна из испытанных программ: MemTect-86, GoldMemory, DocMem не диагностировала никаких ошибок. TestMem 4 к тому времени еще не была готова. Причем при работе в DOS вообще не наблюдалось никаких сбоев с его приложениями. Проблемы начинались лишь в Windows. Попытки проверки MemTest для Windows тоже ни к чему не приводили, так как программа зависала вместе с ОС раньше, чем успевала что либо обнаружить. Можно лишь констатировать факт, что аппаратную несовместимость памяти очень сложно диагностировать и я не берусь комментировать, в чем здесь проблема.
При эксплуатации памяти так же немаловажно точно знать ее истинные характеристики, данные о которых не всегда указаны на этикетке в достаточном объеме. Современные материнские платы способны сами настраивать некоторые параметры, информация о которых считывается с самих модулей памяти. Относится это, прежде всего к значениям таймингов, которые, начиная со спецификации РС100, хранятся вместе с другой информацией в специальной памяти SPD, находящейся на модуле. Для этого в BIOS Setup обычно в разделе Advanced Chipset Features должен быть включена установка (включена по умолчанию) вида «Memory Timing By SPD» — конфигурирование таймингов памяти согласно информации прошитой в SPD. При отключении этой опции, пользователь получает возможность вручную выставить параметры таймингов, что может пригодится при настройке памяти на более высокую производительность или же проблемах с совместимостью.
При установке временных задержек по SPD так же учитывается частота, на которой включена память. Нетрудно заметить, что, скажем, продолжительность одного такта на частоте 66 МГц будет в два раза больше чем на частоте 133 МГц. Таким образом, выполнение операции на меньшей частоте потребует и меньшее количество тактов для одного и того же чипа памяти. Количество тактов для разных частот обычно четко регламентировано производителем и записывается в SPD.
Конструктивно модуль SPD (Serial Presence Detection), это небольшая энергонезависимая микросхема EPROM, в которой содержится информация о модуле памяти, необходимая для его правильного конфигурирования. Вся выпускаемая сейчас память должна поддерживать технологию SPD. Там так же должны указываться серийные номера изделий и имена производителей. Изучение информации SPD может оказаться весьма полезным для пользователя.
Прочитать запись из SPD можно с помощью некоторых тестовых утилит. Существует специальная, именно для этого предназначенная утилита, которая дает наиболее исчерпывающую информацию о модулях памяти — это программа немецкого журнала c’t — ctspd.
В заглавном окне ctspd (рис.5) отображается информация об основных таймингах, производителях, серийных номерах, а также некоторые другие характеристики, указывающие на корректность записи SPD в установленных модулях.
Для расширенного отображения информации следует воспользоваться кнопкой «Extended display», после чего вы попадете в соответствующее окно, включающее в себя пять вкладок (рис.6). При этом будет представлена расширенная информация для того модуля, который был выделен на заглавном окне в списке в верхнем левом углу. Особое внимание в разделе «Extended display» следует обращать на вкладки «Elementary Modul data» и «Timing data». Во вкладке «Timing data» выводится подробный перечень таймингов для выбранного модуля.