Эмулятор БК-0010-01, БК-0011 и БК-0011М

Описание логики работы теста памяти ДОЗУ тестов v4.3 и v4.4.

Общее замечание. Тест памяти оперирует 16 килобайтными половинками 32 килобайтной страницы памяти контроллера АльтПро. Для этого, он подключает одну страницу дважды в двух режимах: 0160 и 060 для БК0010; и 0120 и 020 для БК0011.

Далее, под страницей памяти будем иметь в виду 16 кб половинку страницы памяти, подключаемую в одном из режимов.

Тест памяти разбит на 3 этапа

  1. Перебор всех 32 кодов подключения страниц независимо от количества памяти, и заполнение массива ошибок страниц. Если страница была подключена ранее, проверки на ошибки чтения-записи не производятся.

    В таблице отмечается факт повторного подключения, возникновения прерывания по вектору 4 при чтении и при записи, а так же результат байт-теста.

  2. Подсчёт доступного количества ОЗУ.

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

    «стр. с кодом XXXX уже подключали с YYYY»,
    где XXXX - текущий код подключения страницы вместе с режимом,
    а YYYY - предыдущий код, с которым эта страница уже подключалась
    «write-halt» - если произошло прерывание по вектору 4 при записи.
    «read-halt» - если произошло прерывание по вектору 4 при чтении.
    «byte-test fail» - если байт-тест провален.

    Повторно подключённая страница не подсчитывается при подсчёте количества ОЗУ, в то время как страница с ошибками чтения-записи и байт-тестом - подсчитывается.

  3. Проверка на битые ячейки памяти.

    Проверяются все страницы кроме повторно подключаемых.

    Проверка производится в два этапа:

    • Этап 1: методом записи и последующего чтения битовой маски в каждую ячейку страницы.

    • Этап 2: методом заполнения всей страницы маской, и последующего чтения маски со всей страницы.

    Перед первым этапом, между этапами и после второго этапа все страницы памяти заполняются определённым значением. На каждом этапе, перед началом тестирования каждая страница проверяется на целостность заданного определённого значения. Если оно не совпадёт с заданным, то будет выведено сообщение:

    «XXXX - синхро ADDRESS:VALUE:ошибка»,
    что означает следующее: во время изменения данных в одной странице, изменились данные по адресу на этой странице, это свидетельствует о внутренних повреждениях чипа памяти.

    Если во время синхротеста возникнет ошибка чтения/записи, то выведется следующее сообщение:

    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:write-halt» или
    «XXXX - BBBBBBBBBBBBBBBB ADDRESS:read-halt»,

    где BBBBBBBBBBBBBBBB - синхрокод, (число 04260 для v4.3 или 051400 для v4.4) в бинарной системе счисления.

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

    «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, ЗАГЛ, СТР и Шифт). Чтобы одним махом не напропускать лишнего, тоже делается проверка, если вы нажали клавишу, и на экране ничего не происходит - отпустите её, процесс пойдёт дальше. Это полезно, если на странице сплошняком прут ошибки, на каждом адресе. Клавишу жать надо дважды - сперва чтобы пропустить синхротест, затем, чтобы пропустить тест памяти.