User Tag List

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя
Показано с 21 по 30 из 43

Тема: Качественный (параноидальный) тест ОЗУ

  1. #21
    HardWareMan
    Гость

    По умолчанию

    В схемках XT и первых PS/2 была. А по сути: микра ставится параллельно остальным, кроме данных. Вход микры подключаем к выходу схемы XOR всех бит данных (т.е. в нашем случае 8XOR). Выход на XOR с тем же 8XOR. Если будет неравенство - то генерировать NMI и желательно защелкнуть адрес возникновения.

  2. #22

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,101
    Спасибо Благодарностей отдано 
    1,335
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    151 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Интересно узнать побольше про реальную программу, на которой происходит сбой. Большая-ли она? Реально-ли её дизасемблировать, расчленить, составить на её основе тесты?

  3. #23

    Регистрация
    05.09.2010
    Адрес
    Киев
    Сообщений
    90
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Reobne Посмотреть сообщение
    Интересно узнать побольше про реальную программу, на которой происходит сбой. Большая-ли она? Реально-ли её дизасемблировать, расчленить, составить на её основе тесты?
    Программа - shell.rk из комплекта ПО SD контроллера от vinxru
    Есть исходники на C и ассемблере. Я ее поковырял немного, чуть сузил круг поиска, но всерьез внутрь пока не лез - 12кб бинарник.

    Нашел тут микруху 155ИП2 - как раз занимается контролем четности. C NMI сложновато в Микро-80, поэтому при обнаружении ошибки можно сбрасывать сигнал READY и на инженерном пульте смотреть адрес
    vlad6502.livejournal.com

  4. #24
    HardWareMan
    Гость

    По умолчанию

    Да, можно и так. Вполне себе.

  5. #25

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,101
    Спасибо Благодарностей отдано 
    1,335
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    151 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Смотрю в SHELL.ASM и вижу команду INR M.
    Можно её проверить, на удачу:
    берём память в аккумулятор.
    Делаем цикл 16 раз.
    В цикле 16 команд INR M.
    Сравниваем аккумулятор с памятью.
    Если NZ, то печатаем HL, A и (HL).
    Переходим на следующую ячейку.

    Как-бы тест на скорость. А то обычно тесты сначало пишут, потом ждут, потом проверяют.

  6. #26

    Регистрация
    05.09.2010
    Адрес
    Киев
    Сообщений
    90
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    еще в самом начале я пробовал полный перебор значений ячеек - там как раз было циклическое запись/чтение значений каждого байта

    но, для очистки совести, можно попробовать Ваш вариант
    vlad6502.livejournal.com

  7. #27
    HardWareMan
    Гость

    По умолчанию

    INR M отличается от LDA/STA/LDAX/STAX/MOV M тем, что это RMW команда. А это значит, что тайминги будут следующие: 4-3-3. 3 такта между чтением и записью. Самое короткое из возможных. Т.е., я хочу сказать, что надо пробовать разные методы чтения и записи.

  8. #28

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Нужно гуглить в интернете научные труды на тему тестирования динамической памяти. Там много разных нюансов. Например, некоторые ошибки проявляются только если одновременно идет изменение уровня на многих (всех) линиях адреса или данных. Это приводит к появлению помех по питанию, и иногда (особенно на дефектных микросхемах) такие помехи приводят к ошибкам.

    Много дельных мыслей высказал MM, спасибо. И я поддержу сказанное им. От разводки платы зависит 90% работоспособности схемы. И для микросхем ОЗУ это тоже актуально. Очень критична разводка питания. Нужно много блокировочных конденсаторов разных номиналов, поближе к выводам питания микросхем, чтобы сглаживать пики потребления тока как на низких, так и на высоких частотах. Дорожки питания должны быть толстыми и вести прямо к источнику питания. По возможности еще и короткими.

    При разводке питания удобно представить себе, что микросхема является источником импульсов тока на своих выводах питания. И нужно эти импульсы тока замкнуть наиболее коротким путем, чтобы они не распространялись по схеме. И словосочетание "наиболее коротким" следует понимать очень серьезно. Каждый лишний миллиметр дорожки - зло.

  9. #29

    Регистрация
    05.09.2010
    Адрес
    Киев
    Сообщений
    90
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В начале этого топика я как раз давал ссылку на диссертацию «Исследование методов проверки работоспособности микросхем памяти РЭА», там большой раздел по алгоритмам тестирования ОЗУ

    Вчера попробовал тест от DDp . Успех можно назвать частичным - тест просто завис Когда я перекомпилировал его в область памяти статического ОЗУ - заработал, но проблемную РУшку так и не обнаружил.

    Идея с INR M - интересна, попробую.
    vlad6502.livejournal.com

  10. #30

    Регистрация
    26.11.2013
    Адрес
    г. Новосибирск
    Сообщений
    1,101
    Спасибо Благодарностей отдано 
    1,335
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    151 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для дополнительной парноидальности можно заполнить память нулями, прогнать по 256 раз INR M, потом по 256 раз DCR M.
    Заполнить память FF-ами, опять прогнать.
    Заполнить память FF-ами, прогнать.
    Заполнить память AA-ами, прогнать.
    Заполнить память 55-ами, прогнать.
    Заполнить память рандомом, прогнать.
    Инвертировать память, прогнать.

Страница 3 из 5 ПерваяПервая 12345 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. тест-ПЗУ
    от Egal в разделе Память
    Ответов: 18
    Последнее: 27.08.2010, 13:12
  2. Тест
    от Пётр в разделе Программирование
    Ответов: 1
    Последнее: 11.08.2007, 10:28
  3. Качественный эмуль по MS DOS
    от randomize usr 0 в разделе Эмуляторы
    Ответов: 9
    Последнее: 07.03.2005, 15:53

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •