Компьютерная Энциклопедия
Архитектура ЭВМ
Компоненты ПК
Интерфейсы
Мини блог
Самое читаемое
Оперативная память
Устранение ошибок памяти
Устранить ошибки памяти довольно сложно, поскольку не всегда удается идентифициро
вать вызвавшую их проблему. Чаще всего пользователи винят во всех сбоях программное обеспечение, хотя на самом деле во всем виновата память. В этом разделе речь пойдет о выявлении ошибок памяти и способах их устранения.
Для устранения ошибок памяти необходимо иметь под рукой несколько диагностических программ. Следует отметить, что некоторые ошибки памяти могут быть выявлены одной программой и остаться невидимыми для другой. При включении компьютера системная BIOS проверяет память. В большинстве случаев к компьютеру прилагается компакт-диск, содержащий специальные программы диагностики. Также на рынке можно встретить множество других диагностических утилит, практически каждая из которых содержит свои тесты памяти.
При запуске компьютера тест POST не только проверяет память, но и вычисляет ее объем. Затем этот объем памяти сравнивается с записанным в параметрах BIOS и в случае несоответствия генерируется сообщение об ошибке. При проверке памяти тест POST записывает в каждый из блоков памяти некоторый шаблон, а затем считывает его и сверяет с оригиналом. При обнаружении ошибок выводится соответствующее сообщение или генерируется звуковой сигнал. Звуковой сигнал, как правило, используется для индикации критических ошибок в областях, важных для выполнения системных операций. Если система может получить доступ к объему памяти, достаточному для запуска видеосистемы, вместо звукового сигнала будет отображено сообщение об ошибке.
На прилагаемом к книге компакт-диске содержится подробный перечень звуковых сигналов BIOS и кодов ошибок, характерных для той или иной BIOS, в формате PDF. К примеру, в большинстве материнских плат Intel используется Phoenix BIOS, которая для индикации критических ошибок использует несколько звуковых кодов.
Если процедура POST не обнаружила ошибок памяти, следовательно, причина возникновения ошибок лежит не в аппаратной среде, или программа POST не справилась со своей задачей. Нерегулярные ошибки зачастую не обнаруживаются POST, что справедливо и для других аппаратных дефектов. Данная процедура проводится достаточно быстро и не претендует на тщательный анализ. Поэтому для доскональной проверки применяется загрузка DOS, режим консоли восстановления в Windows XP или диагностический диск. Тесты такого рода могут в случае необходимости проводиться в течение нескольких дней для определения неуловимого дефекта.
В Интернете доступно множество хороших бесплатных программ тестирования памяти.
- Microsoft Windows Memory Diagnostic (http://oca.microsoft.com/en/windiag)
- DocMemory Diagnostic (http://www.simmtester.com/page/products/doc/docinfo.asp)
- Memtest86 (http://www.memtest86.com)
Следует отметить, что все эти утилиты имеют загружаемый формат, т.е. их не нужно устанавливать в тестируемой системе, а достаточно записать на загрузочный компакт-диск. Это связано с тем, что многие операционные системы, работающие в защищенном режиме, в частности Windows, пресекают прямой доступ к памяти и другим устройствам. По этой причине загрузку системы нужно выполнять с компакт-диска. Все эти программы используют алгоритмы, записывающие определенные шаблоны в различные области системной памяти, после чего считывают их и проверяют на совпадение каждый бит. При этом они отключают системный кэш, чтобы результат операции отражал поведение модулей памяти, без каких-либо посредников. Некоторые утилиты, в частности Windows Memory Diagnostic, даже способны указать на конкретный модуль памяти, в котором произошла ошибка.
Однако эти программы могут только записать данные и проверить при считывании их соответствие, не более того. Они не определяют, насколько близка память к критической точке сбоя. Повышенный уровень диагностики памяти обеспечивают только специальные аппаратные тестеры модулей SIMM/DIMM. Эти устройства позволяют вставить в них модуль памяти и проверить ее на множестве скоростей, при разных напряжениях питания и таймингах, в результате чего выдать свой вердикт относительно пригодности модуля. Существуют версии таких тестеров, позволяющие проверять модули памяти практически всех типов, начиная от ранних версий SIMM и заканчивая самыми современными модулями DDR DIMM и RIMM. К примеру, я сталкивался с модулями, которые отлично работали в одних компьютерах и выдавали ошибки в других. Это значит, что одни и те же программы диагностики, запущенные на разных компьютерах, выдавали для одних и тех же модулей памяти противоположные результаты. В аппаратных тестерах источник ошибки можно выявить с точностью до конкретного бита, при этом узнать реальное быстродействие памяти, а не номинальное, указанное на маркировке. К числу компаний, которые занимаются реализацией тестеров модулей памяти, относятся Tanisys (www.tanisys.com), CST (www.simmtester.com) и Aristo (www.memorytester.com). Предлагаемые тестеры довольно дорого стоят, но для специалистов, занимающихся ремонтом ПК на профессиональном уровне, тестеры SIMM/DIMM просто необходимы.
Чаще всего память служит причиной следующих ошибок:
- ошибки четности, генерируемые системной платой;
- общие ошибки защиты, вызванные повреждением данных запущенной программы в памяти, что приводит к остановке приложения (часто они вызваны ошибками программ);
- критические ошибки исключений, возникающие при выполнении программой недопустимых инструкций, при доступе к некорректным данным или некорректном уровне привилегий операции;
- ошибки деления, вызванные попыткой деления на нуль, которая приводит к невозможности записи результата в регистр памяти.
Некоторые из приведенных типов ошибок могут быть следствием аппаратных (сбои в цепи питания, статические заряды и т.д.) или программных (некорректно написанные драйверы устройств, ошибки в программах и т.д.) сбоев.
Если причиной возникновения ошибок является оперативная память, следует воспользоваться помощью либо одной программы тестирования, либо нескольких диагностических приложений.
Многие допускают существенную ошибку в использовании диагностических программ,например выполняют диагностику с включенным системным кэшированием. Это затрудняет тестирование, поскольку в большинстве систем используется так называемый кэш с обратной записью. Принцип его работы состоит в том, что данные, записываемые в основную память, в первую очередь записываются в кэш. Поскольку диагностическая программа изначально записывает данные и затем сразу же их считывает, данные считываются из кэша, а не из основной памяти. При этом тестирование проводится очень быстро, но проверке подвергается лишь сам кэш. Таким образом, обязательно отключайте кэширование перед тестированием оперативной памяти. Компьютер будет работать довольно медленно, диагностика отнимет на порядок больше времени, однако проверяться будет именно оперативная память, а не кэш.
При проверке памяти придерживайтесь алгоритма, схематически показанного на рисунке ниже.
Теперь ознакомимся с процедурой проверки и устранения ошибок памяти.
- Включите систему и проследите за выполнением процедуры POST. Если этот тест завершается без ошибок, следовательно, основные параметры памяти успешно проверены. При обнаружении ошибок перейдите к выполнению процедуры локализации дефектов.
- Перезапустите систему и войдите в программу настройки BIOS. Для этого во время выполнения POST (но до начала процесса загрузки) нажмите клавишу . Проверьте в параметрах BIOS, совпадает ли объем обнаруженной и установленной памяти. В том случае, если вычисленный объем памяти не соответствует установленному, обратитесь к процедуре локализации дефектов.
- В программе настройки BIOS отключите параметры кэширования. На рисунке ниже представлено типичное меню Advanced BIOS Features, в котором выделены параметры кэш-памяти. Сохраните выполненные изменения и загрузите компьютер с отформатированной системной дискеты, содержащей выбранные диагностические программы. Если в комплект поставки компьютера входил компакт-диск с программами диагностики, можете воспользоваться им. К тому же на рынке доступно множество коммерческих программ диагностики, таких как PC-Technician от Windsor Technologies, Norton System Works от Symantec и Doc Memory от SIMMTester.
- Следуя инструкциям, появляющимся при выполнении диагностической программы, протестируйте основную и дополнительную (XMS) память. Обычно в таких программах существует специальный режим, допускающий непрерывное циклическое выполнение диагностических процедур. Это позволяет обнаружить периодические ошибки. При выявлении ошибок памяти перейдите к выполнению процедуры локализации дефектов.
- Отсутствие ошибок при выполнении POST или во время более полного тестирования памяти говорит о ее нормальном функционировании на аппаратном уровне. Перезагрузите компьютер и установите предыдущие параметры памяти в настройках BIOS, в частности включите параметр использования кэш-памяти.
- Отсутствие выявленных ошибок при наличии каких#либо проблем говорит о том, что существующие ошибки памяти не могут быть обнаружены стандартными методами или же их причина, вероятно, связана с программным обеспечением. Для более полной проверки модулей SIMM/DIMM на аппаратном тестере обратитесь в сервисный центр. Я бы обратил внимание и на программное обеспечение (в частности, на версии драйверов), блок питания, а также на системное окружение, особенно на источники статического электричества, радиопередатчики и т.п.
Источник
Четность RAM — RAM parity
Проверка четности ОЗУ — это сохранение избыточного бита четности, представляющего четность (нечетную или четную) небольшого количества компьютерных данных (обычно один байт), хранящихся в оперативной памяти , и последующее сравнение сохраненной и вычисленной четности с определить, произошла ли ошибка данных .
Бит четности изначально хранился в дополнительных отдельных микросхемах памяти; с введением подключаемых модулей DIMM, SIMM и т. д. они стали доступны в версиях без четности и без четности (с дополнительным битом на байт , сохраняющим 9 бит на каждые 8 бит фактических данных).
СОДЕРЖАНИЕ
История
Ранние компьютеры иногда требовали использования ОЗУ с проверкой четности, и проверка четности не могла быть отключена. Ошибка четности обычно приводила к остановке машины с потерей несохраненных данных; обычно это лучший вариант, чем сохранение поврежденных данных. ОЗУ с логической четностью , также известное как ОЗУ с фиктивной четностью, — это ОЗУ без четности, которое можно использовать в компьютерах, которым требуется ОЗУ с проверкой четности. ОЗУ логической четности пересчитывает всегда действующий бит четности каждый раз, когда байт считывается из памяти, вместо того, чтобы сохранять бит четности при записи в память; вычисленный бит четности, который не покажет, были ли данные повреждены (отсюда и название «ложная четность»), предоставляется логике проверки четности. Это способ использования более дешевой 8-битной RAM в системе, предназначенной для использования только 9-битной RAM.
Ошибки памяти
В 1970-80-е годы надежность ОЗУ часто была не идеальной; в частности, модули DRAM 4116, которые были промышленным стандартом с 1975 по 1983 год, имели значительную частоту отказов, поскольку они использовали тройное напряжение (-5, +5 и +12), что приводило к высоким рабочим температурам. К середине 1980-х они уступили место DRAM с одним напряжением, таким как 4164 и 41256, что привело к повышению надежности. Однако до 1990-х годов ОЗУ не соответствовало современным стандартам надежности. С тех пор ошибки стали менее заметными, поскольку ОЗУ с простой проверкой четности перестало использоваться; либо они невидимы, поскольку не обнаруживаются, либо исправляются незаметно с помощью ОЗУ ECC. Современная оперативная память с большим основанием считается надежной, а оперативная память с функцией обнаружения ошибок в значительной степени вышла из употребления для некритичных приложений. К середине 1990-х годов большая часть DRAM отказалась от проверки четности, поскольку производители были уверены, что в ней больше нет необходимости. Некоторые машины, поддерживающие четность или ECC, позволяют включать или отключать проверку в BIOS , позволяя использовать более дешевую оперативную память без контроля четности. Если используется ОЗУ с проверкой четности, набор микросхем обычно использует ее для исправления ошибок, а не останавливает машину на однобитовой ошибке четности.
Однако, как обсуждалось в статье о памяти ECC , ошибки, хотя и не повседневные события, не так уж редки. Даже при отсутствии производственных дефектов естественное излучение вызывает случайные ошибки; Тесты на многих серверах Google показали, что ошибки памяти не являются редкими событиями и что частота ошибок памяти и диапазон частот ошибок для разных модулей DIMM были намного выше, чем сообщалось ранее.
Исправление ошибки
Для простой проверки четности «годен / не годен» требуется, чтобы в памяти были дополнительные избыточные биты помимо тех, которые необходимы для хранения данных; но если доступны дополнительные биты, их можно использовать как для исправления, так и для обнаружения ошибок. Более ранняя память, которая использовалась, например, в IBM PC / AT ( память FPM и EDO ), была доступна в версиях, которые не поддерживали ни проверку, ни проверку четности (в более ранних компьютерах, которые использовали отдельные микросхемы RAM, а не модули DIMM или SIMM , дополнительные микросхемы использовались для хранения битов четности); если компьютер обнаружит ошибку четности, он отобразит соответствующее сообщение и остановится. В SDRAM и DDR модули , которые заменили прежние типы, как правило , доступны либо без проверки ошибок или с ECC (полной коррекции, а не только четности).
Пример однобитовой ошибки, которая будет проигнорирована системой без проверки ошибок, остановит машину с проверкой четности или будет незаметно исправлена ECC: один бит застревает на 1 из-за неисправного чипа, или становится 1 из-за фона или космического излучения; загружается электронная таблица, хранящая числа в формате ASCII, и число «8» сохраняется в байте, который содержит застрявший бит в качестве восьмого бита; затем в электронную таблицу вносится еще одно изменение, и она сохраняется. Однако цифра «8» (00111000 в двоичном формате) превратилась в «9» (00111001).
Если сохраненная четность отличается от четности, вычисленной на основе сохраненных данных, по крайней мере, один бит должен быть изменен из-за повреждения данных. Необнаруженные ошибки памяти могут иметь результаты от необнаруживаемых и без последствий до необратимого повреждения хранимых данных или сбоя машины. В случае домашнего ПК, где целостность данных часто воспринимается как не имеющая большого значения — конечно, верно, скажем, для игр и просмотра веб-страниц, в меньшей степени для интернет-банкинга и домашних финансов — память без контроля четности является доступным вариантом. Однако, если требуется целостность данных, память с проверкой четности остановит работу компьютера и предотвратит влияние поврежденных данных на результаты или сохраненные данные, хотя при этом будут потеряны промежуточные не сохраненные данные и не будет использоваться до тех пор, пока неисправное ОЗУ не будет заменено. За счет некоторых вычислительных накладных расходов, которые незначительно влияют на современные быстрые компьютеры, обнаруженные ошибки могут быть исправлены — это становится все более важным на сетевых машинах, обслуживающих множество пользователей.
ОЗУ типа ECC
RAM с ECC или кодом исправления ошибок может обнаруживать и исправлять ошибки . Как и в случае с ОЗУ с проверкой четности, необходимо хранить дополнительную информацию и выполнять дополнительную обработку, что делает ОЗУ с ECC более дорогим и немного более медленным, чем ОЗУ без проверки четности и логической четности. Этот тип памяти ECC особенно полезен для любого приложения, где время безотказной работы является проблемой: биты с ошибками в слове памяти обнаруживаются и исправляются на лету, не влияя на приложение. Возникновение ошибки обычно регистрируется операционной системой для анализа техническим ресурсом. В случае, если ошибка повторяется, время простоя сервера может быть запланировано для замены отказавшего блока памяти. Этот механизм обнаружения и исправления известен как EEC или расширенное исправление ошибок .
Источник