Важная информация

User Tag List

Страница 4 из 10 ПерваяПервая 12345678 ... ПоследняяПоследняя
Показано с 31 по 40 из 91

Тема: Тесты ВМ1

  1. #31
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Нечётное значение PC

    Скрытый текст


    Прогоняя тест 791404 в своём эмуляторе процессора 1801ВМ1 - обнаружил, что тест успешно проходят две разные реализации "нечётного PC":

    1. Когда команды загрузки адреса ( JMP, JSR ) обнуляют младший бит PC при загрузке нечётных значений:
    Код:
    PC[012376] PSW[004] : JMP 012415
    PC[012414] PSW[004] : DEC PC
    PC[012415] PSW[000] : DEC PC
    PC[012416] PSW[000] : INC @#000404
    PC[012422] PSW[000] : CMP #59., @#000404
    2. Когда младший бит PC загружается командами JMP и JSR "как есть":
    Код:
    PC[012376] PSW[004] : JMP 012415
    PC[012415] PSW[004] : DEC PC
    PC[012416] PSW[000] : INC @#000404
    PC[012422] PSW[000] : CMP #59., @#000404
    Думаю, что второй подход более правильный и (скорее всего) настоящий 1801ВМ1 работает именно так, но поскольку реального процессора у меня нет, а тест даёт неоднозначные результаты - буду рад, если кто-нибудь уточнит этот момент.

    Всего-то и надо, что выполнить на реальном 1801ВМ1 примерно такой набор команд:
    Код:
             Mov  #Metka+1, R0
             Jmp  (R0)
    Metka:   Mov  PC, R1
    И проверить содержимое R1 ( по идее - оно должно быть нечётным ).
    [свернуть]

    ...
    Добавлен файл VM1PS3.zip, содержащий "1801VM1 PSW test 3".
    Добавлен файл VM1PS4.zip, содержащий "1801VM1 PSW test 4".
    Добавлен файл TTST2.zip, содержащий "LSI-11 Traps Tests #2".
    Добавлен файл TTST3.zip, содержащий "LSI-11 Traps Tests #3".
    Добавлен файл VM1VE1.zip, содержащий "1801VM1 VE-Timer Test #1".
    Вложения Вложения
    • Тип файла: zip VM1PS3.zip (16.7 Кб, Просмотров: 529)
    • Тип файла: zip VM1PS4.zip (17.4 Кб, Просмотров: 526)
    • Тип файла: zip TTST2.zip (16.4 Кб, Просмотров: 511)
    • Тип файла: zip TTST3.zip (15.8 Кб, Просмотров: 545)
    • Тип файла: zip VM1VE1.zip (15.8 Кб, Просмотров: 527)
    Последний раз редактировалось Patron; 11.04.2013 в 18:11.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    755
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    Post

    В продолжение темы - http://zx-pk.ru/showthread.php?t=16317&page=11
    Осциллограммы 1801ВМ1:
    - БК-0010.01 @ 3MHz
    - Тестовые последовательности размещались по адресу 100000
    - Снято при помощи логанализатора Acute TL-2136
    - Частота сэмплирования 200МГц

    1. Тестовая последовательность
    Код:
    005700	;	$1:	TST	R0
    005700	;		TST	R0
    000775	;		BR	1$
    Результаты для последовательности 1:


    2. Тестовая последовательность
    Код:
    012700
    100006	;		MOV	#100006, R0
    005710	;	$1:	TST	(R0)
    000776	;		BR	$1
    Результаты для последовательности 2:


    Меньший масштаб (более наглядное отличие между тестами):


    Для пытливых исследователей - данные в текстовом виде для обеих последовательностей и обычный старт монитора (для сравнения) во вложении
    Вложения Вложения
    Последний раз редактировалось Vslav; 12.04.2013 в 00:25. Причина: форматирование вложенного файла

  4. #33
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Круто!

    Похоже, что подтверждается моя теория о том, что у 1801ВМ1 есть зачатки предвыборки и если выполняемая команда производит обращение к памяти, то это вызывает увеличение её продолжительности на величину штрафа отмены предвыборки.

    Но также очевидно, что влияние видео-адаптера затрудняет тестирование "чисто процессорных" аспектов работы 1801ВМ1 и есть смысл уделить больше внимания работе 1801ВМ1 именно в составе БК.

    И первый вопрос на эту тему следующий:

    На форуме http://bk0010.org/forum/ в теме Тонкости и толстости ВМ1 прозвучало следующее утверждение:

    ? gid @ - 6 апреля 18:09
    Практический эксперимент показал, что для 1801ВМ1 в его так сказать HALT режиме прерывания происходят по адресам 160000+номер. Напр HALT/IRQ1 - по адресу 160002, Независимо от того, каково содержание SEL1. Читается или нет регистр 177716 сказать не могу, но в реальности его содержимое не важно.
    Т.е. утверждается, что хотя начальный старт и происходит по адресу из SEL1, но по команде HALT или сигналу IRQ1 - БК-0011 ( насколько я понял - тестировалась эта модель ) всегда переходит по адресу 160002, независимо от содержимого SEL1.

    Что-то мне с трудом в такое верится, может там тестирование не вполне правильно было проведено..

    Интересно, как поведёт себя тестируемая БК, выполнив команду HALT.

  5. #34
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    755
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Но также очевидно, что влияние видео-адаптера затрудняет тестирование "чисто процессорных" аспектов работы 1801ВМ1
    Уточнение - тестовые последовательности запускались по адресу 100000 из эмулятора ПЗУ, то есть - обращения к ОЗУ не было.

    Цитата Сообщение от Patron Посмотреть сообщение
    Т.е. утверждается, что хотя начальный старт и происходит по адресу из
    ... skipped ...

    Интересно, как поведёт себя тестируемая БК, выполнив команду HALT.
    Набросайте тест - я прогоню на стенде. А то завтра УКНЦ приедет уже ))
    Последний раз редактировалось Vslav; 12.04.2013 в 00:40. Причина: опечатки

  6. #35
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Уточнение - тестовые последовательности запускались по адресу 100000 из эмулятора ПЗУ, то есть - обращения к ОЗУ не было.
    Точно! Там нулевая задержка RPLY, поэтому "дырки" в SYNC выглядят такими большими.

    Тогда при случае можно будет много чего протестировать.


    Цитата Сообщение от Vslav Посмотреть сообщение
    Набросайте тест - я прогоню на стенде.
    Тест команды HALT имеет самый простой код - сплошные нули.

    Т.к. команда HALT всегда вызывает HALT-Trap, то имея эту команду ( код 000000 ) на стартовом адресе - мы должны получить зацикленный HALT-Trap. В самом начале можно NOP поместить ( код 0240 ), чтобы отделить HALT от стартовой последовательности.

    Цитата Сообщение от Vslav Посмотреть сообщение
    А то завтра УКНЦ приедет уже
    Для 1801ВМ2 ( и тем более в составе УКНЦ ) нерешённых задачек ещё больше, чем для 1801ВМ1 !!!

  7. #36
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    755
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тестовая последовательность:

    Код:
    000240	;	$1:	NOP
    000000	;		HALT
    000775	;		BR	$1
    Результат:


    При исполнении HALT:
    - выполняется цикл DAT I/O и устанавливается бит 3 в регистре SEL1
    - выполняется цикл DAT O, запись в 177676 - попытка сохранить PSW
    - так как 177676 в БК не реализован - возникает тайм-аут шины
    - тут любопытно (на картинке не видно в таком масштабе, к сожалению), после самого первого тайм-аута после аппаратного сброса процессор выполняет (пытается выполнить) запись (слова - WTBT низкий, но это значит слово по моему опыту) по адресу 154731 (единичка младшая игнор). Операция со стеком?
    - дальше цикл уже повторяется без вариаций - установка бита 3 в 177716 и попытка записи по 177676

    К сожалению, ответа на вопрос куда уходит ВМ1 после HALT пока нет. Думаю что я буду дорабатывать свой эмулятор, добавлю поддержку циклов DAT O и DAT I/O, тогда можно будет поддержать транзакции к 177674/6 и узнать, куда оно таки переходит.

    Цитата Сообщение от Patron Посмотреть сообщение
    .
    Для 1801ВМ2 ( и тем более в составе УКНЦ ) нерешённых задачек ещё больше, чем для 1801ВМ1 !!!
    Посмотрим в каком оно состоянии приедет, покупалось-то по "мусорной" цене. Работоспособность неизвестна, сначала в порядок попытаюсь привести, а у меня уже запасы КМ-ок к концу подходят .
    Вложения Вложения
    Последний раз редактировалось Vslav; 12.04.2013 в 09:28. Причина: Стилистические улучшения текста

  8. #37
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    У процессора 1801ВМ1 есть и другие загадочные особенности.

    1. Штраф невзаимности - имеет место всегда, когда первый аргумент не обращается к памяти, а второй обращается. Из-за этого команда CMP (R0), R0 выполняется гораздо быстрее, чем CMP R0, (R0)

    А как это выглядит на шине..

    Для проверки нужно сравнить две последовательности:

    Код:
    	021000 		;	CMP	(R0), R0
    	000776 		;	BR	.-2.
    
    	020010 		;	CMP	R0, (R0)
    	000776 		;	BR	.-2.
    поместив в R0 адрес BR.

    ...

    2. Штраф второго операнда - из-за него команда TST (R0) выполняется быстрее, чем команда CMP (R0), R0

    Для проверки нужно сравнить две последовательности:

    Код:
    	005710 		;	TST	(R0)
    	000776 		;	BR	.-2.
    
    	021000 		;	CMP	(R0), R0
    	000776 		;	BR	.-2.
    поместив в R0 адрес BR.

  9. #38
    Guru Аватар для Vslav
    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    755
    Поблагодарили
    353 сообщений
    Mentioned
    86 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Доисследовал вопрос с HALT - эмулятор ПЗУ теперь поддерживает регистры 177674 и 177676. Не пытайтесь повторить на обычном БК - их там нет



    При выполнении HALT 1801ВМ1 таки переходит на 160002, игнорируя содержимое 177716. На 160002 в эмуляторе мусор, поэтому не обращайте внимание на считываемые там данные

    ---------- Post added at 00:52 ---------- Previous post was at 00:40 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    У процессора 1801ВМ1 есть и другие загадочные особенности.
    Потестировал, результаты:
    Последний раз редактировалось Vslav; 13.04.2013 в 01:53. Причина: была ошибка в тесте, исправлено

  10. #39
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,554
    Спасибо Благодарностей отдано 
    1,219
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    А не проще ли сфоткать кристалл под микроскопом, который имеется у нескольких человек с форума, и разобрать микрокод?
    Или мы не ищем легких путей?

  11. #40
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Vslav Посмотреть сообщение
    Потестировал, результаты
    1801ВМ1 - один из самых загадочных процессоров в мире.

    С одной стороны - команды TST (R0) и CMP (R0),R0 выполнились за строго одинаковое время, но с другой стороны - алгоритмическое время следующей команды после TST (R0) уменьшилось на 1 такт.

    Ранее тесты показали, что при выполнении большого количества команд TST (R0) подряд - они выполняются на один такт быстрее, чем CMP (R0),R0. Возможно, дело было в том, что тесты этих команд проводились в разные дни, а тактовая частота процессора довльно сильно зависела от температуры.

    Чтобы немного лучше разобраться в вопросе - можно выполнить подряд по три одинаковых команды TST (R0) и CMP (R0),R0 и если их времянки опять совпадут - значит никакого штрафа второго операнда у 1801ВМ1 скорее всего нет.

    ...

    БК-0010.01 @ 3MHz - очень интересный объект для тестирования, но для нормального запуска тестов и вывода результатов - её было бы полезно подключить к PC через последовательный порт.

    Нужна любая плата последовательного порта для МПИ ( ИРПС БК, СА УКНЦ, И12 от "Электроника 60" и т.п. )

    ...

    Цитата Сообщение от Titus Посмотреть сообщение
    А не проще ли сфоткать кристалл под микроскопом, который имеется у нескольких человек с форума, и разобрать микрокод?
    Кому-то проще сфоткать кристалл и разобрать микрокод, а кому-то проще сделать несколько тестов.
    Пока не нашлось ни одного желающего пойти по первому пути и только несколько желающих пойти по второму.

    Складывается впечатление, что большинству фанатов БК и 1801ВМ1 - их любимый компьютер и их любимый процессор откровенно не интересны. До сих пор, например, никто точно не знает, как на самом деле процессор БК работает с ОЗУ.

    Результаты прогона тестов таймингов команд на БК появились совсем недавно и дать их верную теоретическую интерпретацию до сих пор никто не может.
    Последний раз редактировалось Patron; 13.04.2013 в 15:10.

Страница 4 из 10 ПерваяПервая 12345678 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Тесты железа
    от Almaz в разделе Софт
    Ответов: 3
    Последнее: 18.03.2006, 02:33

Ваши права

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