![]() |
|
|
|
|
|
#1 |
|
Activist
Join Date: 31st March 2013
Location: г. Киев
Posts: 348
Thanks: 86
Thanked 612 Times in 184 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
В продолжение темы - http://zx-pk.ru/showthread.php?t=16317&page=11
Осциллограммы 1801ВМ1: - БК-0010.01 @ 3MHz - Тестовые последовательности размещались по адресу 100000 - Снято при помощи логанализатора Acute TL-2136 - Частота сэмплирования 200МГц 1. Тестовая последовательность Code:
005700 ; $1: TST R0 005700 ; TST R0 000775 ; BR 1$ ![]() 2. Тестовая последовательность Code:
012700 100006 ; MOV #100006, R0 005710 ; $1: TST (R0) 000776 ; BR $1 ![]() Меньший масштаб (более наглядное отличие между тестами): ![]() Для пытливых исследователей - данные в текстовом виде для обеих последовательностей и обычный старт монитора (для сравнения) во вложении
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-1/2, БК-0010/11М, МС-0511, MC-1502, Искра-1030 ДВК/Э60: МС1201.01/02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6/М2/М6 Last edited by Vslav; 12th April 2013 at 01:25. Reason: форматирование вложенного файла |
|
|
|
|
|
#2 | |
|
Guru
Join Date: 11th September 2009
Location: Москва
Posts: 2,976
Thanks: 60
Thanked 1,785 Times in 1,099 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Круто!
Похоже, что подтверждается моя теория о том, что у 1801ВМ1 есть зачатки предвыборки и если выполняемая команда производит обращение к памяти, то это вызывает увеличение её продолжительности на величину штрафа отмены предвыборки. Но также очевидно, что влияние видео-адаптера затрудняет тестирование "чисто процессорных" аспектов работы 1801ВМ1 и есть смысл уделить больше внимания работе 1801ВМ1 именно в составе БК. И первый вопрос на эту тему следующий: На форуме http://bk0010.org/forum/ в теме Тонкости и толстости ВМ1 прозвучало следующее утверждение: Quote:
Что-то мне с трудом в такое верится, может там тестирование не вполне правильно было проведено.. Интересно, как поведёт себя тестируемая БК, выполнив команду HALT. |
|
|
|
|
|
|
#3 | |
|
Activist
Join Date: 31st March 2013
Location: г. Киев
Posts: 348
Thanks: 86
Thanked 612 Times in 184 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Quote:
Набросайте тест - я прогоню на стенде. А то завтра УКНЦ приедет уже ))
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-1/2, БК-0010/11М, МС-0511, MC-1502, Искра-1030 ДВК/Э60: МС1201.01/02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6/М2/М6 Last edited by Vslav; 12th April 2013 at 01:40. Reason: опечатки |
|
|
|
|
|
|
#4 | |
|
Guru
Join Date: 11th September 2009
Location: Москва
Posts: 2,976
Thanks: 60
Thanked 1,785 Times in 1,099 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Quote:
Тогда при случае можно будет много чего протестировать. Тест команды HALT имеет самый простой код - сплошные нули. Т.к. команда HALT всегда вызывает HALT-Trap, то имея эту команду ( код 000000 ) на стартовом адресе - мы должны получить зацикленный HALT-Trap. В самом начале можно NOP поместить ( код 0240 ), чтобы отделить HALT от стартовой последовательности. Для 1801ВМ2 ( и тем более в составе УКНЦ ) нерешённых задачек ещё больше, чем для 1801ВМ1 !!! |
|
|
|
|
|
|
#5 | |
|
Activist
Join Date: 31st March 2013
Location: г. Киев
Posts: 348
Thanks: 86
Thanked 612 Times in 184 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Тестовая последовательность:
Code:
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 и узнать, куда оно таки переходит. Quote:
.
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-1/2, БК-0010/11М, МС-0511, MC-1502, Искра-1030 ДВК/Э60: МС1201.01/02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6/М2/М6 Last edited by Vslav; 12th April 2013 at 10:28. Reason: Стилистические улучшения текста |
|
|
|
|
|
|
#6 |
|
Activist
Join Date: 31st March 2013
Location: г. Киев
Posts: 348
Thanks: 86
Thanked 612 Times in 184 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Доисследовал вопрос с HALT - эмулятор ПЗУ теперь поддерживает регистры 177674 и 177676. Не пытайтесь повторить на обычном БК - их там нет
![]() ![]() При выполнении HALT 1801ВМ1 таки переходит на 160002, игнорируя содержимое 177716. На 160002 в эмуляторе мусор, поэтому не обращайте внимание на считываемые там данные ---------- Post added at 00:52 ---------- Previous post was at 00:40 ---------- Потестировал, результаты:
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-1/2, БК-0010/11М, МС-0511, MC-1502, Искра-1030 ДВК/Э60: МС1201.01/02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6/М2/М6 Last edited by Vslav; 13th April 2013 at 02:53. Reason: была ошибка в тесте, исправлено |
|
|
|
|
|
#8 | |
|
Guru
Join Date: 11th September 2009
Location: Москва
Posts: 2,976
Thanks: 60
Thanked 1,785 Times in 1,099 Posts
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
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" и т.п. ) ... Quote:
Пока не нашлось ни одного желающего пойти по первому пути и только несколько желающих пойти по второму. Складывается впечатление, что большинству фанатов БК и 1801ВМ1 - их любимый компьютер и их любимый процессор откровенно не интересны. До сих пор, например, никто точно не знает, как на самом деле процессор БК работает с ОЗУ. Результаты прогона тестов таймингов команд на БК появились совсем недавно и дать их верную теоретическую интерпретацию до сих пор никто не может. Last edited by Patron; 13th April 2013 at 16:10. |
|
|
|
|
|
|
#9 | ||
|
Activist
Join Date: 31st March 2013
Location: г. Киев
Posts: 348
Thanks: 86
Thanked 612 Times in 184 Posts
![]() ![]() ![]() ![]() ![]() ![]() |
Quote:
Quote:
Там стоит ВП1-037, с ОЗУ ведь работает она? А процессор на RPLY от нее ориентируется. Какие тут подробности интересны?
__________________
Орион-128 ('90), Ленинград-2 ('90), Поиск-1/2, БК-0010/11М, МС-0511, MC-1502, Искра-1030 ДВК/Э60: МС1201.01/02/.03/MX/MY/НГМД2/КЦГД/КСМ/КГД/КЖД/КТлК6/М2/М6 |
||
|
|
|
|
|
#10 | |
|
Veteran
Join Date: 20th June 2007
Location: С.-Петербург
Posts: 1,224
Thanks: 434
Thanked 264 Times in 163 Posts
![]() ![]() ![]() ![]() |
Quote:
__________________
Больше игр нет |
|
|
|
|
![]() |
| Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
|
|