Привет всем.
Понадобился мне для Aeon'a тест памяти.
Мне нужно реализовать 2 вещи:
* проверить общий объём памяти (она может быть от 8 до 64 Мб)
* проверить её работоспособность
Может кто поможет информацией или алгоритмом?
Привет всем.
Понадобился мне для Aeon'a тест памяти.
Мне нужно реализовать 2 вещи:
* проверить общий объём памяти (она может быть от 8 до 64 Мб)
* проверить её работоспособность
Может кто поможет информацией или алгоритмом?
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Спасибо!
Но может есть инфа по программным методам?
Я уже немного накопал в инете, но всё же, может кто делал.
Попробую сваять чего нибудь.
В Z80 я полный ноль, я не знаю как там распределяется адресное пространство и сколько максимально можно адресовать за раз, но относительно x86 могу сказать так: 1) для определения общего кол-ва памяти: записываем паттерн 55AAh в начало каждого 16Кб блока. Считываем из начала блока значение. Если значение не равно 55AAh - все, память кончилась. Иначе - прибавляем к адресу 16Кб и ушли на цикл.
2) для тестирования памяти алгоритм примерно тот же, только я тестирую 1Кб блоками. 4 хороших паттерна есть - 55h (10101010 bin), AAh (01010101 bin), FFh (11111111 bin) и 00 (00000000 bin). Заполняем первый килобайт поочередно этими паттернами, потом считываем из первого килобайта и сверяем с паттерном. Если где-то не сошлось - значит ошибка. Дальше берем второй килобайт и по новой.
ILoveSpeccy, есть исходники ТЕСТ-ПЗУ Андрея Хахонова для Спектрум 128К. Там реализован три алгоритма: бегущий 0, бегущая 1, псевдослучайная последовательность. Работает только в регистрах Z80, тестирует блоками по 16КБ. При ошибке выводит адрес и бит(ы). Исходник для iS-DOS-асма или GENS.
МГТФ - любимый провод!
KAY-1024(4096)/SL-4/TURBO v2010 + Nemo-FDC + Nemo-IDE (CF 4GB) + SMUC2 Rev.B RTC (HDD 1.6GB + DVD-ROM) + PROF-ROM + ZXMC2 + GENERAL SOUND 2MB + ZX-BUS_TEE + FDD 3.5' + FDD 5.25' + VGA&PAL
У SDRAM 4 банки всегда и 1024 столбца если не ошибаюсь, достаточно перебрать старшие 3 бита номера строки (из расчета что стоит 64мб), от максимального к минимальному и писать туда значение этого счетчика к примеру в колонку 0, потом читаем с самого старшей строки байт и получаем количество (на единицу меньше) памяти кратное 8мб
Последний раз редактировалось ZEK; 22.10.2013 в 12:21.
Последний раз редактировалось ILoveSpeccy; 22.10.2013 в 15:07.
Ну переиграть вариант на столбцы и строки, первый этапом посчитать сколько столбцов, вторым определить кво строк, тож по принципу из расчета максимального количества, ну я думаю смысл ясен, неиспользуемые биты sdram игнорирует и адреса закольцовываются
---------- Post added at 14:14 ---------- Previous post was at 14:07 ----------
Для универсального контролера памяти всеравно геометрия матрицы надо будет, то бы мультиплексоры переключить для использования всей матрицы, к тому же если будет принята стратегия оптимизации конвеера то нужно будет как то отлавливать когда строки переключать и может быть адреса раскидать так что бы строки реже клоцать, как никак дороговатая операция
Последний раз редактировалось ZEK; 22.10.2013 в 15:16.
ILoveSpeccy, мы делали так:
при старте проверка контрольной суммы пзу
потом тест озу:
1. пишем 0, читаем (сверка) 0
2. пишем #ff, читаем #ff
3. пишем #aa, читаем #aa
4. пишем #55, читаем #55
"наличие готового программного обеспечения для нового компьютера в наши дни имеет мало смысла."
"Еще вопрос - почему на Спектруме большинство звуков на AY булькающие ? Как это исправить ?"
(c) zst
есть же http://www.memtest.org/
там открытые исходники
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)