Недавно я обнаружил, что один из моих карт памяти имеет плохие байты. До этого я подозревал другое оборудование, переустанавливал Windows и копировал свои файлы с одного диска на другой.

Есть ли вероятность, что многие мои файлы были повреждены, если буфер копирования иногда перекрывался с плохой областью памяти?

Или есть какая-то защита от этого в Windows?

ОБНОВИТЬ

У меня были сбои системы, я сообщил о повреждении памяти. У меня был тест памяти Windows, в котором не было ошибок (или, возможно, ошибка не была постоянной), но бесплатная версия MemTest86 показала ошибки памяти в простом тесте № 3.

1 ответ1

3

На потребительских настольных системах нет. Поврежденные данные в памяти не обнаруживаются, если неверные данные успешно извлекаются. Я знаю, это звучит противоречиво, но это вполне возможно. Контроллер памяти обрабатывает данные как черный ящик - он не знает и не заботится о том, что это за данные, он просто подчиняется протоколу для завершения передачи в и из DRAM. Если протокол соблюдается, и данные успешно сохраняются в DRAM, и при извлечении данных нет нарушений протокола, тогда контроллер памяти не имеет представления, что что-то пошло не так в DRAM. Он не проверяет содержимое, чтобы убедиться, что оно совпадает с тем, когда оно было сохранено. ОС тоже этого не делает. Синий экран смерти выдается пользователю только в случае нарушения протокола во время передачи памяти или если вам не повезло, чтобы код / данные ОС были повреждены из-за плохой DRAM. Важно помнить, что даже во втором случае BSOD не был вызван каким-либо механизмом, преднамеренно обнаружившим ошибки. Ваша ОС большая программа , как и любой другой, поэтому , если его выполнение кода или данных поврежден, он может попытаться выполнить неверные инструкции, доступ к данным он не владеет, или любое количество других незаконных действий , что делает ОС обнаружения и аварии в следствии.

Исключением является память, которая поддерживает коды, исправляющие ошибки. Это небольшие контрольные суммы, которые хранятся вместе с данными в DRAM (или другом устройстве памяти). Они используются контроллером памяти для обеспечения целостности самих данных. Эта память дороже и, как правило, только на серверах. В Windows имеется довольно сложная система для обработки ошибок ECC (поскольку они не обязательно являются фатальными), но без памяти ECC невозможно обнаружить повреждение данных, пока выполняется спецификация JEDEC для передачи данных DRAM.

Однако это не значит, что все потеряно. Проверка поврежденной памяти в режиме реального времени не выполняется, но если вы получили BSOD из-за проблемы с памятью, Windows может обнаружить это и запланировать автоматический запуск утилиты диагностики памяти Windows, которая может помочь точно определить ошибки памяти. Вы также можете запустить его вручную, если вы подозреваете, что у вас плохая память, которая портит ваши данные.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .