Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Вот что написал о первой версии TestMem5 её автор, serj.
Ну, я думаю, вы знаете о чем программа, всё же 5 версия.
На данный момент с тестами памяти не плохо, а совсем плохо. Не хотел бы говорить про 'все' тесты, но большинство не догадываются о существенных изменениях в аппаратуре. И основной 'вред' вовсе не от памяти, она-то мало эволюционировала, а именно от процессора и контроллера памяти (в меньшей степени).
Процессоры стали быстрее, их стало много и они стали странными.
Например, раньше память 'сидела' на одном контроллере, с которым общался процессор. Сейчас память может висеть на разных процессорах и, как следствие, иметь разное 'расстояние' от конкретного процессорного ядра до конкретного модуля DIMM.
Кроме того, возрос объем кешей в процессоре, что может сказываться на тестировании. Например, в TM4 использовался размер тестового блока 512К. На момент написания программы это было оптимумом, но сейчас данный блок тихо умещается в L2 и тест работает совсем не так, как задумывалось. Скажется этот неприятный момент на качестве обнаружения сбоев в памяти? Несомненно и самым отвратительным образом. Увы.
Другие программы могут оперировать блоком доступа, который сейчас крайне неразумен и вызывает больше проблем, чем мифической выгоды. Устаревает всё. Увы, сея участь постигла и MemTest86. Весьма неплохой и эффективный, сейчас он тихо деградировал до 'просто тест'. Причина та же - тестовые модули давно не менялись, а аппаратура не стоит на месте.
Впрочем, если хотите почитать страшилку по проблемам тестирования - пожалуйста.
TestMem5
Это программа построена по несколько другому принципу, чем все предыдущие. А именно - она настраиваемая. Причем, ее можно настроить пользователем под те условия, которые ему покажутся лучшими.
В программе есть понятие 'тестовый модуль' и 'тест'. Модуль вызывается для выполнения тестирования, но он может (и должен) конфигурироваться по разному. Формально говоря, тесты в TM5 представляют собой один и тот-же модуль, но с разными настройками - вы видели, что эффективность тестов существенно различается? Причем для разной памяти (разных производителей) этот эффект может быть различен. Ну а если эффективность меняется, то из этого логичный вывод - подстройкой параметров можно ее (эффективность то бишь) поднять. Трудно считать оптимальной программу, которая написана 5 лет назад. Итак, тест = тестовый модуль + индивидуальные настройки.
Второй момент - количество тестовых потоков. С точки зрения современных процессоров, количество потоков тестирования должно быть больше одного, что позволит проще (точнее чаще) общаться процессорам со 'своей' памятью. Особенно сие касается К10-11-12 с его распределенной шиной. Программа поддерживает разное (скажем мягко) количество потоков тестирования. По опыту S&M могу сказать - самый быстрый режим для одного процесса, но мне многократно сообщали, что включение множественного режима, хоть и приводит к небольшому снижению скорости, но повышает эффективность работы алгоритма. Ну ... хоть скорость работы это почти синоним качества (ибо медленный алгоритм не найдет ошибок), но с практикой спорить глупо.
На данный момент планируются (и поддерживаются) следующие параметры тестов: - Размер блока. Чем меньше, тем эффективнее алгоритм. Но, если блок влезет в кэш, то алгоритм провалится. - Метод обхода блока. Линейный или прыгающий. Первый имеет высокую скорость, второй - интенсивнее загружает связку контроллер-память и приводит к бОльшему нагреву памяти. (гм, не зря же четвертый тест в S&M так нагревал память). - Принцип генерации шаблонов. Постоянный, переменный и случайный.
Тестовые модули. Пока их всего два, но это временно.
Тест 0, а именно и только на нем работает этот модуль - проверка стабильности данных. Идея тут в том, что вся память расписывается неким непостоянным шаблоном, потом выполняется тестирование и проверяется сохранность этих данных. Тест сильно снижает скорость тестирования.
SimpleTest - хоть и называется простым, но это скорее сарказм. Поддерживаются все настройки (размер, метод, шаблон), но не слишком эффективно оптимизирован из-за повышенной универсальности. Однако, потери из-за неоптимальности программной реализации не столь велики и нивелируются при включении многопоточного тестирования - несколько процессоров забивают канал ввода-вывода памяти на 100%. Впрочем, если что-то можно будет упростить, то скорость возрастет.
Особенность: программа состоит из двух частей - запускающей программы и DLL с тестовыми модулями. Распаковывать всё и с сохранением каталогов.
Программа может вступать в конфликт с RamDisk, поэтому их следует отключать на время проверок памяти. Касается ли данный дефект только моей программы или истинная причина находится в RamDisk - пока это достоверно не известно.
Последний раз редактировалось CoolCmd 20.05.2024 21:23, всего редактировалось 2 раз(а).
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Распакуйте программу вместе с каталогом bin. На всякий случай - лучше, чтоб путь не содержал русских букв и прочих несуразностей (хотя, только что проверил - все работает).
add: На всякий случай перегенерировал DLL. Ну а вдруг? .... Ссылка та-же.
В отличие от предыдущей эта на WinXPsp3 запустилась - и давай тестировать... Говорит, используется 336MBx1, потом выгружу лишнее. А "Свободное" меж тем всё растёт как побочный результат... Тестирование закончено, ошибок не обнаружено. Настроек не узрел.
Последний раз редактировалось nso 12.08.2010 20:21, всего редактировалось 1 раз.
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Видать опять всплыла старая версия. Уж сколько раз ... Недавно лечил сей баг, но из-за переноса дом-работа видать где-то потерялось. Извините.
nso, в каталоге bin появился файл MT.cfg Вот в нем и править. Enable=1 - 1=включено, 0 = выключено Time=100 - врермя тестирования, 100% Function=SimpleTest - название функции DLL Name=bin\MT0.dll - название dll Pattern Mode=1 - тип шаблона. 0 = постоянный, 1 = переменный, 2 = случайный Pattern Param0=0x1E5F - используется для генерации шаблона; Для режима 2 служит множителем Pattern Param1=0x45357354 - аналогично. Для режима 2 добавляется к шаблону. Parameter=0 - принцип перемещения по адресам. Test Block Size=4194304 - размер блока, в байтах
Для генерации шаблона в режиме 2 используется простая формула получения RND = Значение * Param0 + Param1
Parameter - способ перехода к следующему блоку. 0 = линейный (последовательный) обход. Другие значения - только по своему DIMM. Само число - на сколько смещаться. Идея в том, что вначале проверяется один DIMM, потом второй (и третий, для вариантов типа Core i7). Блок доступа, т.е. число байт, снимаемых с одного DIMM за раз 64 байта. Соответственно, поставив Parameter = 1 проверка будет идти по каждому блоку выбранного DIMM. Если "2" - то через один ..... Кстати, тут важен раздел настройки аппаратуры. Думаю, почти у всех память стоит в парных слотах и режим DUAL работает. Значит надо сделать одно - переключить режим Intreliving. 0 для старых процессоров (без встроенного контроллера памяти) и 1 для новых.
nso, это особенность выделения памяти. Как только у Win возмешь память, так она сразу начинает высвапливать еще и еще. Обычно, достаточно подождать несколько циклов и этот процесс успокоится. Если мешает, то можно отключить этот 'мягкий' режим запрашивания памяти. Если поставить: Capable=0x0 , то занятая память будет сразу защелкиваться.
Member
Статус: Не в сети Регистрация: 20.11.2006 Откуда: не от мира сего
Не совсем понятно, если просто запустить, то через 30 сек всякая активность в программе останавливается и все, так и должно быть или надо лезть в конфигурационный файл и менять там чего?
Member
Статус: Не в сети Регистрация: 20.11.2006 Откуда: не от мира сего
serj писал(а):
Значит надо сделать одно - переключить режим Intreliving. 0 для старых процессоров (без встроенного контроллера памяти) и 1 для новых.
Переключил для старых, нашлись ошибки. 4 штуки и опять активность через минуту(то есть подольше работало) прекратилась
Добавлено спустя 4 минуты 17 секунд:
serj писал(а):
Поставь Cycles=0
Ага, теперь не останавливается и ошибки находит, вполне может быть, я вчера рекорды для себя ставил в 2001 первом марке и поставил полустабильный разгон.
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Позорище. Исправил баг с циклами. Файл обновил, ссылка та-же. Для не_основного треда неправильно считался цикл, поэтому он тихо закрывался по окончании первого-же цикла. Эх.
Добавлено спустя 1 минуту 5 секунд: константин с байконура, разгон чего? Памяти или процессора? К сожелению, у меня ошибок нет.
Member
Статус: Не в сети Регистрация: 20.11.2006 Откуда: не от мира сего
Убрал разгон, после тридцати секунд теперь тест не останавливается, но начинает находить ошибки, первая всегда на 30 той секунде.
Добавлено спустя 1 минуту 20 секунд:
serj писал(а):
разгон чего?
чипсета, память и проц по жизни в даунклоке. но чипсет держит только шину 280 стабильно, больше не выходит.
Добавлено спустя 25 секунд: Я на виа издеваюсь.
Добавлено спустя 7 минут 39 секунд: В новой ошибки появляются на 33 и так далее секундах, не куча как в предыдушей версии, а по одной, тоесть в концах цикла вроде. Если память свою 1066 как 400(не 800, а именно четыреста) запускаю, ошибок нет. На 500 с копейками ошибки. Шас попробую всеж разобраться что будет с другими таймингами.
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
Если руки дойдут, попробуй поменять Parameter с 0 на какое-нибудь число. Скажем 1, 10, 100 "начинает находить ошибки" - какой тест? Оно индицируется подсвечиванием номера списке тестов (в первой строке).
Куратор темы Статус: Не в сети Регистрация: 10.04.2003 Откуда: Москва
0 - тест сохранности. Ты можешь все остальные тесты (кроме него) отключить - он все равно будет работать. Кстати, на него (тест 0) не действуют настройки шаблона и размера блока.
Member
Статус: Не в сети Регистрация: 20.11.2006 Откуда: не от мира сего
serj писал(а):
Ты можешь все остальные тесты (кроме него) отключить - он все равно будет работать.
отключил, в тесте ноль ошибки, 1-2 на цикл. Если очень сильно снижаю частоту памяти(до 400 мегагерц), ошибок нет. Периода обновления или как там его в биосе не замечено. А по евересту стоит Refresh Period (tREF) 2144T при частоте 571(285)
Винда стабильна, да и про этот комп ничего плохого сказать не могу. Прям не знаю что думать.
Member
Статус: Не в сети Регистрация: 22.01.2008 Откуда: Киев
х64 Windows 7 Максимальная. Тест запустился и отработал три цикла. После чего выдал табличку об необнаружении ошибок: #77
В ходе тестирования наблюдал за загрузкой процессора и памяти через диспетчер задач ОС. Процессор был загружен на 100% (оба ядра). Память - максимум, 3,95Гб из всего объема в 4,00Гб.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения