PDA

Просмотр полной версии : Ещё один универсальный тест памяти



DDp
14.05.2010, 11:30
Загружаемый, работает в ОЗУ.
(Имеет смысл применять когда вроде бы всё работает, но есть подозрения...)

-----------------------------

AUMT.SCL (http://realddp.narod.ru/zx/files/AUMT.SCL.zip) AUMT.TAP (http://realddp.narod.ru/zx/files/AUMT.TAP.zip) (131116)

Цели:
1. Претендовать на звание Stress-теста.
2. Работать как можно быстрее (1Мб - не 48кб;).

Исходя их этого...
Неважно, какой там бит, по какому адресу... Главное - был сбой или нет.
Фиксируется сбой с точностью до страницы.
Счётчик проходов, счётчик сбоев.
Попробовать внести дополнительные "помехи" тесту (для некоторых клонов
[Pent1024, Profi, Turbo2+] хаотично переключаются видеорежимы, режим турбо -
для этого запускать тест клавишей <0>, а не <Enter>).
Пятая страница тоже участвует в проверках, за исключением 2 килобайт,
где находится программа.

Вначале происходит перебор страниц, из проверки исключаются копии страниц.

Проводится 32 теста с разными паттернами.
Сначала заполняется вся память, затем проверяется.

Индикация в верхней части экрана:
Зелёный - всё ок.
Красный - был сбой. При следующих тестах на этом месте остаётся жёлтый "след".

Удержание любой клавиши задерживает начало очередного теста.

Ограничения:
Т.к. тест универсальный, страницы тестируются только через "верхнее очко".
Предполагается, что на Turbo2+ нет перепутывания адресов ОЗУ
(доработка http://atmturbo.nedopc.com/dev_ram.htm)
На Turbo2+ должен отключаться контроллер 8031 (только мех. клавиатура).

-----------------------------

A48MT.SCL (http://realddp.narod.ru/zx/files/A48MT.SCL.zip) A48MT.TAP (http://realddp.narod.ru/zx/files/A48MT.TAP.zip) (100517)

Версия, тестирует только 48К.

Для "Балтика" и "Орели" возможно проверить все 64К.

(Вопрос: в каких ещё 48K клонах можно отключать ПЗУ?)

doorsfan
14.05.2010, 11:33
out #7f,1 в БК Орель 48К впечатывает теневое озу; ,0 - обратно впечатывает ПЗУ.

SoftFelix
16.05.2010, 11:03
DDp, Тест хороший. Единственное, я не совсем понял, можно ли _зациклить_ любой тест только на _чтение_ ранее записаной последовательности? Т.е. заполнили все банки неким значением и потом бесконечно считываем/проверяем. Поможет выявить сбои разрушения данных в памяти при длительной работе компа.

DDp
17.05.2010, 21:27
out #7f,1 в БК Орель 48К впечатывает теневое озу;...
Видимо, OUT (#7F),2 - правильнее (http://zx.pk.ru/showpost.php?p=282687&postcount=11).

---------- Post added at 22:27 ---------- Previous post was at 22:14 ----------


Тест хороший. Единственное, я не совсем понял, можно ли _зациклить_ любой тест только на _чтение_ ранее записаной последовательности? Т.е. заполнили все банки неким значением и потом бесконечно считываем/проверяем. Поможет выявить сбои разрушения данных в памяти при длительной работе компа.

Если проверять регенерацию памяти это одно, а если "разрушения данных в памяти при длительной работе" - это другое. Думаю вероятность разрушения данных будет даже больше, если не только читать, но ещё и писать.

sevol
26.06.2010, 10:46
DDp, Тест хороший. Единственное, я не совсем понял, можно ли _зациклить_ любой тест только на _чтение_ ранее записаной последовательности? Т.е. заполнили все банки неким значением и потом бесконечно считываем/проверяем. Поможет выявить сбои разрушения данных в памяти при длительной работе компа.


а у вас нормально тест проверку проходит?

Black_Cat
26.06.2010, 12:09
(Вопрос: в каких ещё 48K клонах можно отключать ПЗУ?)
#000F/15 Novosibirsk 64k CPU0 CONFIGURATION PORT
--------------------------------------------------------------------------------
D0 ROMsel:0-DOS,1-ZX
D1 CPU0:0-RAM,1-ROM

Barmaley_m
08.07.2010, 01:35
К вопросу проектирования тестов памяти: скорость работы для них не самое важное, а важна способность определять сбои. При этом следует ориентироваться не на здравый смысл, а на опыт обнаружения различных дефектов микросхем памяти. Я когда-то читал доку на QMT (Qualitas Memory Test), позднее переименованный в RamExam. Так вот, там шла речь о специфических дефектах микросхем ОЗУ, которые обнаруживаются не за один и не за два прохода теста (при этом в память каждый раз записываются различные комбинации). Есть такие штуки, как замыкание линий адреса и т.д. На PC серьезный тест работал несколько часов, а то и сутки. И было у меня пара случаев обнаружения ошибки через много часов работы. При этом быстрая версия теста ошибок не обнаруживала.

---------- Post added at 00:35 ---------- Previous post was at 00:31 ----------

Еще я считаю, что тест по возможности должен размещаться в ПЗУ и в идеале работать только на регистрах процессора, чтобы тест сам не сбился в случае неисправности ОЗУ. Такие тесты есть, я сам один тоже делал на 256Кб (быстрый, с PUSH/POP). Правда, тогда я не знал о сложных тестах и реализовал простой тест "Марш", который, однако, обнаруживает многие дефекты ОЗУ. Однажды этот тест (он отрабатывал при первом включении компьютера) на компе моего друга обнаружил ошибку на одном и том же адресе. Заменил РУшку - стало все нормально.

MegaMyth
18.11.2010, 11:23
(Вопрос: в каких ещё 48K клонах можно отключать ПЗУ?)

"Компаньон-1" вот порт правда не помню, толи 0,128 толи 128,0.
Помню точно, что в теневое ОЗУ можно писать и при включенном роме


10 FOR A=0 TO 16383
20 POKE A,PEEK A
30 NEXT A

делало полное копирование РОМа в РАМу. после OUT куда-то, что-то и ты в раме.

Vadim
18.11.2010, 12:27
Еще я считаю, что тест по возможности должен размещаться в ПЗУ и в идеале работать только на регистрах процессора, чтобы тест сам не сбился в случае неисправности ОЗУ.
Правильно. А на мой взгляд, ещё лучше если тест будет писать в память некую последовательность чисел, а не только значения 00, FF, AA, 55. Ведь при временном замыкании пары адресных линий и при определенном алгоритме тест может запросто не заметить сбойных ячеек. Неплохой вариант был бы генерить псевдослучайную последовательность и писать её во всё ОЗУ. Потом считывать её и сравнивать с вновь генерируемой, потом менять начальный адрес и стартовые значения генератора. Либо тест нужно писать опираясь на схему конкретного компа. Дабы знать по каким адресам идут "паттерны" из строк и адресов.

P.S. Мой пример. Я купил на ebay'е zx +2, у него была неисправно ОЗУ. Причем интересно так, запись в ячейку дублирует значение далее (вроде через 64 байта, я не помню уже деталей). Тест в ПЗУ басик-128 посчитал что ОЗУ исправно. (при неисправном ОЗУ он зависает с цветом бордюра соотв. странице).

Barmaley_m
18.11.2010, 15:29
Vadim, твоя ошибка ОЗУ была бы обнаружена тестом "Марш". Запись псевдослучайной последовательности называется тестом "Шум". Проблема в том, что тестировать память таким способом довольно долго. Запись в память определенных последовательностей, обоснованных теорией, позволяет обнаружить типичные ошибки быстрее. Ведь память портится не абы как, а существует целый перечень типичных неисправностей. Некоторые из них могут тестом "Шум" даже не обнаруживаться. Например, представь, что при записи по адресу 00 одновременно происходит ошибочная запись по адресу 10, но не наоборот. И вот тест записал сначала некое число по адресу 0, потом подряд в ячейки 1,2,3 и так далее до 10, при этом следы ошибочной записи были стерты. Последующая проверка покажет, что все нормально.

Тест "Шум" следует применять только после того, как все предыдущие тесты прошли успешно. Даже если оставить за скобками относительно низкую вероятность обнаружения ошибок таким тестом: генерация псевдослучайной последовательности - процесс затратный по вычислительным ресурсам. Тест будет проходить медленно за счет этого.

Vadim
18.11.2010, 15:35
что при записи по адресу 00 одновременно происходит ошибочная запись по адресу 10, но не наоборот.
А такое бывает? Если да, то конечно тест "шум" ошибок не найдет. Можно модифицировать его, изначально заполнить ОЗУ константой, потом перед записью проверять, та ли там константа или уже перезаписанное по ошибке значение?
В любом случае для надёжной регистрации ошибки получается, что нужен комплекс тестов.

Barmaley_m
18.11.2010, 16:41
А такое бывает? Если да, то конечно тест "шум" ошибок не найдет.
На практике я такого не встречал, но в принципе, думаю, это возможно при слабых обрывах в цепях адреса, в том числе внутри микросхемы.

Можно модифицировать его,
Да, а еще можно вести запись в память как в прямом, так и обратном порядке (на разных проходах), тогда данная конкретная ошибка будет обнаружена тестом. Но все это подводит нас к тому же выводу, к которому пришел ты:

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

SoftFelix
21.04.2011, 11:20
DDp, а можно попросить сделать тестирование 1МБ памяти по стандарту КАЙ-1024 и +ещё добавить тест при раширении КАЙ-1024 до 4МБ (добавляются 5-ый и 6-ой биты #7FFD. Т.е. к памяти КАЙ-1024 добавляется расширение ПЕНТАГОН-1024). Итого сделать два дополнительных теста.

Ewgeny7
25.04.2011, 12:24
Тест Буддера работает практически со всеми машинами и памятями. Лежит на DLкорпе, обзывается UMT.

SoftFelix
27.04.2011, 11:43
Ewgeny7, попробовал я его. Но моей извращённой конфигурации (KAY-1024 + PENTAGON-1024 = 4096KB) он всё равно не видит в полном объёме (приходится тестировать по отдельности), а тест из этого топика видит 2МБ.

DDp
08.05.2011, 11:35
Обновилать версия AUMT. Ссылки прежние.
(принципиально ничего нового)
+ добавилась одна конфигурация памяти
* переключалка экранов активируется, если запускать тест клавишей <0>, а не <Enter>

SoftFelix
08.05.2011, 14:06
DDp, спасибо, всё работает! Тестирует все 4МБ в моём КАЕ. Единственная непонятка с опросом клавиатуры, в частности, клавиши ENTER в тесте. В КАЕ-1024SL4_2010 встроенный контроллер АТ-клавы на ATMEGA48. Так вот, цифровыми клавишами соответствующий тест всегда выбирается однозначно, а вот ENTER'ом на АТ-клаве его запустить практически невозможно - нажатие ENTER отрабатывает как any key, т.е. попадаем опять на страницу выбора теста. С механической клавой, которая подключена параллельно, таких проблем нет. Это первая программа, где клавиша ENTER на АТ-клаве так себя проявляет.

DDp
08.05.2011, 20:45
В КАЕ-1024SL4_2010 встроенный контроллер АТ-клавы на ATMEGA48...
...нажатие ENTER отрабатывает как any key...

Возможно, выпендрёж с опросом - сначала опрашиваются все клавиши (все линии в ноле), и если что-то нажато, то производится сканирование.


XOR A
IN A,(#FE)
CPL
AND #1F
JR Z,...
Как контроллер реагирует на чтение из порта #00FE ?

SoftFelix
08.05.2011, 21:04
Как контроллер реагирует на чтение из порта #00FE ?
Я думаю, что на этот вопрос лучше ответит caro. Это он разработчик железа и софта этого контроллера.