TestMem support page - TestMem I

TestMem techsupport home page

home   news   software   articles   other   links   contact


 

Мои программы:

Тест памяти

TestMem1
TestMem2
TestMem3
TestMem4
Тест памяти и стабильности процессора под Windows
S&M
Тест стабильности процессора под DOS
S@M
Автоматическое управление частотой процессора
C&QnF2
Тест видеопамяти
TestVideoRAM
Загрузчик video BIOS
Loader
Меню для VGA
Video BIOS extender
Производительность подсистемы памяти
BenchMem
C-Temp
Other

Программа проверки памяти
TestMem I

    Это самая первая программа, даже полноценной ее трудно назвать. Так, маленькая утилита.

    С О Д Е Р Ж А Н И Е
Зачем нужна эта программа
Описание работы
Внешний вид
Описание ключей
Ограничения
Аппаратура тестирования и результаты
Что, где, ...??

Зачем нужна эта программа.

Все просто и обыденно.В июне я собрал себе новый компьютер на Celeron 448 (4x112) и посыпались ошибки. Если кто помнит, лето 1998г. выдалось жаркое. Мучался долго ( и напряжением и хороший радиатор....), система заработала достаточно надежно .... почти ....
В среднем происходил 1 сбой в день. Главный вопрос остался открытым:
--- Кто виноват - процессор или память?? Да и ошибки типа '1 сбой в сутки' вылечить КРАЙНЕ трудно ! А я хотел точно знать причину. Конечно, можно поставить 266MHz и проблема уйдет ..... только не за этим UpGrade затевался.
Т.о., намучившись окончательно, решил погонять память (на процессоре все разумные действия уже были произведены). А вот тут и началось самое интересное ..... Программ, тестирующих память много ... очень много ... и ... нет!!
1. Мало кто может проверять ВСЮ память.
2. Все они написаны в эпоху XT и работают КРАЙНЕ медленно.
Единственное, что как-то подошло - RAMEXAM.
Полный тест занимает 10 часов, а при выключенной cache 2 level - 25 часов (что говорит об 'отличной' оптимизации кода). На время выполнения теста памяти вообще не должно оказывать влияния наличие или отсутствие cache 2 level, да и размер cache 1 level не особенно важен. Теоретически, если отключить cache 1 level, скорость доступа к памяти не должна упасть .... вот только сами команды процессора будут выполняться медленнее. Чтож ... пришлось писать свое.
Есть и вторая, более серьезная, причина - при работе DRAM (SDRAM) нагревается. Одно время у меня стоял MR BIOS и находясь в SETUP MR BIOS случайно дотронулся до SIMM. Они были ОЧЕНЬ горячие. Оказывается, эти ребята на фоне еще и память тестировали. Вывод - при прокачке данных память греется и даже очень сильно. А ведь это 'нормальный' режим для 3D action games. И если программа 'медленно' тестирует, то ошибок может не найти. Да и chipset подогреется, не зря-же на нем стоит радиатор ( ASUS P2B ).

Описание работы.

Проверка памяти состоит из трех фаз:
1. Запись всей памяти фиксированной или переменной последовательностью.
2. 'Быстрое' чтение с помощью MMX комманд.
3. Чтение и проверка.
Фаза 1 выполняется 1 раз, а фазы 2 и 3 несколько раз. Фаза 2 работает очень быстро и служит для разогревания chip'ов памяти. Проверка считанной информации на правильность не производится (значительное снижение скорости).
Шаблон, которым прописывается RAM, состоит из четырех 8-и байтовых слов: A,B,A,B. Где B = инверсия A. При таком построении шаблона по шине данных по всем битам просходит постоянная смена уровня 0/1/0/1 ..., что повышает вероятность обнаружения ошибки и увеличивает нагрев как RAM так и chipset.
Шаблон может быть как фиксированный, тогда вся RAM прописывается неизменными числами A,B,A,B; так и переменным. В этом случае шаблон формируется по правилу: A,B,A,B,A+const,B-const,A+const,B-const,A+2const...где const смещение между последующими записями шаблона.
В данной реализации const = -7, при этом достигается компромис между расстоянием записей по адресам и уменьшением кол-ва переходов 1/0/1/0 по шине данных.
Режим с постоянным шаблоном лучше подходит для нагрева RAM, но с переменными - позволяет определить адресные ошибки. По опыту применения - на более чем 100 тыс. ошибок не было ни одной ошибки по адресу. Впрочем, на безбрежном море типов ошибок ... - попробуйте и постоянный и переменный шаблон.
В версии 1.2 сделана оптимизация теста под интерфейс DDR. Посмотреть эффективность можно в
логе.

Принцип выбора шаблонов.
Если-бы знать реальное расположение битов по модулю памяти, возможно было-бы написать оптимизированный алгоритм формирования шаблонов .... Но, к сожелению, даже на одной плате ASUS P2B в разных слотах биты перемешаны.
Т.о., в программе применяется псевдо-случайный выбор шаблонов.Причем, каждый нечетный шаблон есть инверсия четного (на четном шаблоне в этом бите был переход 1/0, а в нечетном шаблоне 0/1 .....).
Практика показала, что у разных шаблонов ВЕСЬМА различная вероятность вызвать ошибку.

Внешний вид.

TestMem1 image

Описание ключей.

-f ( fast ) - используется при пробном запуске.
-d ( default ) - 50 циклов при 2х операции чтения.
-s ( slow ) - 200 циклов при 5х операций чтения.
-l ( long ) - 2000 циклов при 5х операций чтения.
-v ( very long ).- 4000 циклов при 25х операций чтения.

-1 - 1х операции чтения - для предварительного запуска (не рек-ся).
-2 - 2х операции чтения - применять для медленных машин.
-5 - 5х операции чтения - баланс между качеством проверки и скоростью переборки разных шаблонов.
-0 - 50х операции чтения - ну очень долго и старательно - эмулирует программную область RAM. Для запуска на ночь.

Ключи -1...-0 указываются после выбора кол-ва циклов проверки.
-p - включение переменных шаблонов. По умолчанию - фикс. шаблоны.
-b - пищать при обнаружении ошибки (не стоит).
-e - не печатать ошибки на экран/файл - не свсегда нужно знать ГДЕ, важнее бывает - СКОЛЬКО ( пример - изменил настройку в BIOS - как повлияло? )
-m - добавить фазу быстрого чтения с использования MMX комманд.
>>ERRORS.TXT - отправить ошибки в файл ... мне кажется, что иногда полезно.
-h - помощь.

Ограничения.

a. Область DOS ( ниже 1Mb ) не тестируется, т.к. если память сбоит, то равномерно по всему об'ему модуля. b. Есть проблемы с MMX ... об'ем кода сильно возрастет, а эффективность весьма спорна. Идея состояла написать МАЛЕНЬКУЮ программу, чтобы точно поместилась в cache 1 level.
Так что ... по 'MMX read' есть ограничения:
1. 'MMX read' греет только первый модуль памяти.
2. Если включена cache 2 level, то 'MMX read' в основном мучает cache.
- лучше отлючить ... хотя ... cache то-же полезно проверить.
3. При включенной cache 2 level 'MMX read benchmark' показывает доступ к cache, лучше выключить.

Аппаратура тестирования и результаты.


- ASUS P2B, Celeron 266 ( 448 = 4 * 112 )
- SDRAM - 2 * 32Mb = 64Mb - Fujitsu, chips 81117822E-100FN
- Время до появления ошибок (время разогрева) ~3 минут.
- benchmark: 202Mb/720Mb/320Mb (см. таблицу)
- то-же с CAS Latency = 3 - 192Mb/695Mb/316Mb - сбоев НЕТ!

процессор

K5-75
P75
P208
K6-200
K6-208
Celeron448
Write
35
62
105
80
87
202
MMX read
-
-
167/256*
163/227*
167/253*
720
Read
63
47
88
93
94
320
* - cache 2 level = disable/enable
* - первое значение более реально, второе - скорость cache 2 level.
Такие сильные различия могут означать только одно - socket 7 отправился на кладбище .... (ну а если к нему еще и AGP прикрутить то совсем ...)
- Если заменить шаблон вида A,B,A,B на A,A,A,A то вероятность обнаружения ошибки уменьшиться более чем в 100 раз (27040/250), что подтверждает правильность правила формирования шаблона.
- При нагреве до +38С mainboard (+58С ядра CPU) на стандартном тесте 27070 ошибок по ВСЕЙ памяти.
- Операция записи не порождает ошибок, все ошибки по чтению, поэтому значительно эффективнее применять большой коэф-т повтора операции чтения.
- У меня ошибки возникали на 26,35,44... шагу. Вывод - надо запускать тест не меньше чем на 200 циклов.
- Время выполнения теста: 'default' ~ 36 сек, 'slow' ~ 4 мин, 'long' - 40 мин , 'very long' - 6 час. Добавление фазы MMX чтения увеличивает время процентов на 25-30.
- Вероятность возникновения ошибки с фиксированным шаблоном на 10% выше, чем с переменным.

Что, где, ...???

Эта редакция TestMem обладает тем замечательным свойством, что работает почти на любом компьютере, если он не слишком древний, конечно.
Короче, если Вы хотите сгрузить TestMem1 , всегда
пожалуйста, но, я попросил бы Вас вначале прочитать этот документ. Поверьте, он очень Вам поможет!

back