PDA

Просмотр полной версии : Вопрос по ОЗУ ZX спектрумов



Sergei Frolov
23.07.2015, 15:14
Пришла в голову идея сделать тест ОЗУ методом навешиванием клипсы на проверяемую микросхему памяти.

1. Вешаем клипсу на микросхему, в проверочную плату отправляем все сигналы: A0..A7, CAS, RAS, WE, DI, DO.

2. На плате ставим микросхему РУ5 и заводим на нее сигналы, чтобы в нее записывалось параллельно с проверяемой ОЗУ.

3. Когда вместо записи идет считывание, то сравнимаем то, что считалось с проверяемой микросхемы и нашей РУ5.

Если считалось не то, что записалось, то выводим ошибку.

Все это хорошо, но есть загвоздка: в ZX есть видеоконтроллер, который ничего не пишет в ОЗУ, а только считывает.

Можно приделать схему сравнения, которая будет реагировать только на адреса в заданном диапазоне, например, от 5C00 до 7FFF.

Вопрос: будет ли этого достаточно? Или в спектрумах есть режим, когда процессор читает из каких-то ячеек ОЗУ, предварительно туда ничего не записав?

HardWareMan
23.07.2015, 18:33
В любом компьютере есть режим, когда процессору не нужно что-то записывать перед чтением. Впрочем, как и читать после записи.

Sergei Frolov
23.07.2015, 19:42
Хотелось бы более конкретно, со знанием дела.

HardWareMan
23.07.2015, 20:57
Конкретно - все режимы зависят от программы процессора. Очевидно, что статистически видеообласть имеет больше записи нежели чтения (а иногда и вовсе не требует чтения), область загруженной программы больше чтения чем записи (как правило одна загрузка программы и потом только чтение), а область переменных и стэка примерно 50/50 по чтению и записи. И при всем этом, процессору вовсе не обязательно инициализировать всю память перед использованием. И последний пункт обычно не понятен школьникам, привыкшим к тому, что компилятор на х86 все делает за них.

CodeMaster
23.07.2015, 21:15
когда процессор читает из каких-то ячеек ОЗУ, предварительно туда ничего не записав?

Ты хочешь тестировать память параллельно работе обычной программы? Так ты можешь не дождаться записи или чтения во множество ячеек.


Когда вместо записи идет считывание, то сравнимаем то, что считалось с проверяемой микросхемы и нашей РУ5.

А если на спектруме будет выполнятся тест ОЗУ запись/чтение то почему бы нет.


На плате ставим микросхему РУ5

Это будет тестировать не МК, а обычная логика или зачем дублирующая РУ5?

Sergei Frolov
23.07.2015, 21:22
Ты хочешь тестировать память параллельно работе обычной программы? Так ты можешь не дождаться записи или чтения во множество ячеек.

Задача стоит определить дефектную РУ5, которая не дает загружаться системе (шахматка и пр).


Это будет тестировать не МК, а обычная логика или зачем дублирующая РУ5?

Дублирующая нужна для сравнения с эталоном.

CodeMaster
23.07.2015, 21:33
Задача стоит определить дефектную РУ5, которая не дает загружаться системе (шахматка и пр).

Дублирующая нужна для сравнения с эталоном.

Ааа, ну тогда да.


видеоконтроллер, который ничего не пишет в ОЗУ, а только считывает.

Он как бы совсем не помешает.


есть режим, когда процессор читает из каких-то ячеек ОЗУ, предварительно туда ничего не записав?

Это не режим, а команда чтения, она теоретически может быть по любому адресу, даже если проц туда ничего не писал. Вопрос в том, что по этому адресу после переходных процессов старта и это может не совпадать с состоянием контрольной РУ5.

Но, битое ОЗУ, ИМХО, не дает стартануть процу не потому, что из него неправильно читаются данные, а потому что оно просаживает шины адреса/данных и не даёт нормально читать ПЗУ. Тут скорее логанализатор нужен.