Описание логики работы теста памяти ДОЗУ тестов v4.5 и v4.6.
Общее замечание. Тест памяти оперирует 16 килобайтными половинками 32 килобайтной страницы памяти контроллера АльтПро. Для этого, он подключает одну страницу дважды в двух режимах: 0160 и 060 для БК0010; и 0120 и 020 для БК0011.
Далее, под страницей памяти будем иметь в виду 16 кб половинку страницы памяти, подключаемую в одном из режимов.
Тест памяти разбит на 3 этапа
-
Перебор всех 32 кодов подключения страниц независимо от количества памяти, и заполнение массива ошибок страниц. Если страница была подключена ранее, проверки на ошибки чтения-записи не производятся.
В таблице отмечается факт повторного подключения, возникновения прерывания по вектору 4 при чтении и при записи, а так же результат байт-теста.
-
Подсчёт доступного количества ОЗУ.
При этом на экран вместе со счётчиком ОЗУ выводятся результаты проверки первого этапа, соответствующие той странице, на которой возникли ошибки:
«стр. с кодом XXXX уже подключали с YYYY»,
где XXXX - текущий код подключения страницы вместе с режимом,
а YYYY - предыдущий код, с которым эта страница уже подключалась
«write-halt» - если произошло прерывание по вектору 4 при записи.
«read-halt» - если произошло прерывание по вектору 4 при чтении.
«byte-test fail» - если байт-тест провален.Повторно подключённая страница не подсчитывается при подсчёте количества ОЗУ, в то время как страница с ошибками чтения-записи и байт-тестом - подсчитывается.
-
Проверка на битые ячейки памяти.
Проверяются все страницы кроме повторно подключаемых.
Проверка производится в два этапа:
-
Этап 1: методом записи и последующего чтения битовой маски в каждую ячейку страницы.
-
Этап 2: методом заполнения всей страницы маской, и последующего чтения маски со всей страницы.
Перед первым этапом, между этапами и после второго этапа все страницы памяти заполняются определённым значением. На каждом этапе, перед началом тестирования каждая страница проверяется на целостность заданного определённого значения. Если оно не совпадёт с заданным, то будет выведено сообщение:
«XXXX - синхро ADDRESS:VALUE:ошибка»,
что означает следующее: во время изменения данных в одной странице, изменились данные по адресу на этой странице, это свидетельствует о внутренних повреждениях чипа памяти.Если во время синхротеста возникнет ошибка чтения/записи, то выведется следующее сообщение:
«XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
«XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,где BBBBBBBBBBBBBBBB - синхрокод, (число 04260 для v4.6 или 051400 для v4.5) в бинарной системе счисления.
Во время проверки на экране отображаются: текущий код страницы вместе с режимом, битовая маска, а так же сбойные адреса и сам сбой при его наличии. И отображается адрес на котором произошла ошибка чтения и/или записи, информацию о которой можно было видеть при подсчёте количества ОЗУ:
«XXXX - BBBBBBBBBBBBBBBB ADDRESS:EEEEEEEEEEEEEEEE» или
«XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
«XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,где XXXX - текущий код подключения страницы вместе с режимом,
BBBBBBBBBBBBBBBB - текущая битовая маска,
ADDRESS - адрес, где произошёл сбой,
EEEEEEEEEEEEEEEE - сбойное значение,
write-halt - означает, что произошло прерывание по вектору 4 при записи,
read-halt - означает, что произошло прерывание по вектору 4 при чтении.Проверку страницы можно пропустить, нажав почти любую клавишу (кроме СТОП, СУ, АР2, ЗАГЛ, СТР и Шифт). Чтобы одним махом не напропускать лишнего, тоже делается проверка, если вы нажали клавишу, и на экране ничего не происходит - отпустите её, процесс пойдёт дальше. Это полезно, если на странице сплошняком прут ошибки, на каждом адресе. Клавишу жать надо дважды - сперва чтобы пропустить синхротест, затем, чтобы пропустить тест памяти.
-
Описание логики работы теста режимов переключения страниц.
После того, как выяснилось, что в логике переключения страниц ОЗУ контроллера присутствует недоработка, был написан данный тест. Тест работает только с потенциально проблемными переключениями 120->20, 20->120, 120->100, 100->20, 20->100, 100->0, 0->20, 20->0.
Тест 100->0 и 20->0 пропускается, т.к. в режиме HLT11 по нужным адресам не ОЗУ СМК, но без аппаратной доработки оно всё равно портится, порченный сегмент просто не подключается в этом режиме.
С новой прошивкой и аппаратной доработкой ошибки должны проявляться только в 100->20 и 0->20, т.к. таковы режимы работы контроллера.
С новой прошивкой и без аппаратной доработки ошибки должны проявляться в 100->20, 20->100 и 0->20. В режиме 120->100 ошибка ошибка появляется, но не отлавливается, т.к. в этих режимах расположение сегментов памяти одинаковое. Тест эту ошибку просто не может увидеть, и исправить это просто невозможно, т.к. для этого надо переключиться в режим 20, а это даст наведённую ошибку на контроллере без аппаратной доработки. Поэтому результат будет недостоверен. То же самое для переключения 100->120 для контроллера со старой прошивкой без аппаратной доработки.
Со старой прошивкой и аппаратной доработкой ошибки должны проявляться в 120->20, 100->20 и 0->20.
Со старой прошивкой и без аппаратной доработки ошибки должны проявляться во всех режимах, но не во всех могут отлавливаться. По причинам, описанным немного ранее.