- Чем отличается БК-11 от БК-11М?
- [+] Старые сообщения (51)
-
? MM@ - 06.03.2013 19:10
Впервые слышу, что бы в 177714 таймер ИРКУ100 включался. Есть у меня самопальная платка на 564 ИС для этого, но о ней никто не
знал. Както по приколу мерял быстродействие на 4 и 6 мгц ВМ1 - разница была - на моей многострадальной плате колодени под
сомнительные устройства стоят, в первую очередь - ПЗУ.
По этому фактору - ИРКУ100 - матери идентичны.
Но наблюдал, что почему - то не на всех матерях этот тест работает.
Может, там заплатка какая есть - 250 т. - это для ОЗУ больше подходит.
Насколько я помню, в серию БК11 с головной ДВК не шли, но отлаживались именно так.
Кстати, мы здесь обсуждаем 1801РЕ2-203 ?
Спасибо за ответ.
-
? gid@ - 06.03.2013 20:41
Мы здесь обсуждаем якобы 1801РЕ2-203 т.к. она существует только в единственном экземпляре, которым со мной любезно поделился dk_spb, невозможно ни подтвердить ни опровергнуть, действительно ли это серийная 1801РЕ2-203. Но тем не менее это факт, вот почти весь текст теста быстродействия173402 jsr R5, sub_166704 ;сохраняем все регистры
173406 call sub_173652 ;запрещаем таймер
173412 mov #100, R1 ;сохраняем старый вектор
173416 mov (R1)+, -(SP)
173420 mov @R1, -(SP)
173422 tst -(R1)
173424 mov #T100, (R1)+ ;устанавливаем новый
173430 clr @R1
173432 mov #'8, R1
173436 call sub_170154 ;выводим инфу, что Т8 начался
173442 call OUTSOF ;вывод строки текста
173446 .word @ASPDTS
173450 clr R0 ;тут накапливается результат
173452 mov #1, R5
173456 call sub_173662 ;разрешаем таймер
173462 loc_173462: tst R5
173464 bne loc_173462
173466 mov #1, R5
173472 loc_173472: tst R5
173474 bne loc_173472
173476 loc_173476: mov R1, R2 ;а это набор тестируемых команд
173500 add R1, R2
173502 sub R1, R2
173504 clr R1
173506 tst R1
173510 inc R1
173512 dec R1
173514 adc R1
173516 asl R1
173520 asr R1
173522 bic R1, R2
173524 bis R1, R2
173526 bit R1, R2
173530 cmp R1, R2
173532 com R1
173534 neg R1
173536 swab R1
173540 sbc R1
173542 mov R1, R2
173544 add R1, R2
173546 sub R1, R2
173550 clr R1
173552 tst R1
173554 inc R1
173556 dec R1
173560 adc R1
173562 asl R1
173564 asr R1
173566 bic R1, R2
173570 bis R1, R2
173572 bit R1, R2
173574 cmp R1, R2
173576 com R1
173600 neg R1
173602 swab R1
173604 sbc R1
173606 inc R0
173610 tst R5
173612 beq loc_173476
173614 call sub_173652 ;запрещаем таймер
173620 call sub_173710 ;выводим результат
173624 mov #'8, R1
173630 call loc_170124 ;выводим инфу, что Т8 завершен
173634 mov #104, R1
173640 mov (SP)+, -(R1)
173642 mov (SP)+, -(R1)
173644 jsr R5, sub_166722 ;восстанавливаем все регистры
173650 return
¤
173652 sub_173652: mov #7, @#177714
173660 return
¤
173662 sub_173662: mov #3, @#177714
173670 return
¤
173672 T100: tst R5
173674 beq loc_173702
173676 clr R5
173700 br locret_173706
173702 loc_173702: mov #1, R5
173706 locret_173706: rti
¤
175154 ASPDTS: .ascii \ ТЕСТ БЫСТРОДЕЙСТВИЯ\<12><12>
175154 .ascii \ ЧИСЛО ПРОСТЫХ ОПЕРАЦИЙ=\<0>
¤
-
? gid@ - 06.03.2013 20:55
Забыл добавить.
[Может, там заплатка какая есть - 250 т. - это для ОЗУ больше подходит.]
Реального железа БК11 не М у меня нет, результат показал эмулятор с таймингами под БК11 4МГц для ОЗУ. Ни один эмулятор в нынешнем своём состоянии не способен достоверно эмулировать различие таймингов ОЗУ/ПЗУ
Да и результаты практических измерений таймингов инструкций на БК 3, 4 и 6Мгц очень плохо коррелируют с доступными формулами из ТО. Настолько плохо, что никаких зависимостей не проглядывается.
-
? MM@ - 06.03.2013 21:30
Уважаемый господин gid, а просто DESS никак нельзя на дизассемблер запустить ?
Ну или штатным дизассемблером RT-11, чтоли, прогнать - я самописный код не особо понимаю, такого в MACRO-11 нету синтаксиса.
Или голый код в восьмеричном виде выложить, если совсем ничего нет. Я, например, с 1988 г. только на MACRO-11 и DESS пишу строго,
остальное - убожество. Кстати, на ДВК строчные буковки не приветствовались на латинице особо.
*
Вот те раз - оказывается, до сих пор эмуль платы БК11 не написан ?!
Цикл доступа ДОЗУ БК11 - рандом 1500-2000-2500 нс.
Цикл доступа ПЗУ РЕ2 - 500 нс, не менее 400 нс.
Цикл доступа регистров ВМ1 - 1000 нс ( изм. в тактах ЦПУ )
Цикл доступа ВП1 - 500 нс, до 1000 нс.
Исполнение команды рег-рег ВМ1 при 0-тактов ОЗУ - 4 такта, с учетом обрезки РПЛЫ - 5 тактов.
В ВМ1 время выборки и исполнения суммируются + тайминги кривой МПИ БК11.
В ВМ2 время исполнения команды частично идет в зачет времени предвыборки следующей.
В ВМ3 время исполнения спрятано в предвыборках следующих ячеек и составляет при 0-тактов ОЗУ и отсуствии ветвления - 3 такта
рег - рег.
-
? anonymous - 06.03.2013 21:46
「Ну или штатным дизассемблером RT-11, чтоли, прогнать - я самописный код не особо понимаю, такого в MACRO-11 нету синтаксиса.」 Все строки соответствуют синтаксису macro-11, отрежьте адреса слева и всё будет собираться. При использовании штатного дизассемблера без ключа /I в CSI - получаем именно в таком формате техт, только метки все локальные будут.
-
? anonymous - 06.03.2013 21:55
Поправка, метки не локальные, а вида L<номер> все ставятся.
-
? gid@ - 06.03.2013 22:18
Попользовавшись IDA на DESS никак не тянет, вот не хочу просто и всё лишаться удобной навигации, мыши и просто быстрого и отзывчивого интерфейса, текст могу перепостить просто сделав из маленьких буковок большие, это пара движений мышкой в текстовом редакторе, и имена меток привести к 6-ти символьным, вот:
173402 JSR R5, Z66704 ;сохраняем все регистры
173406 CALL Z73652 ;запрещаем таймер
173412 MOV #100, R1 ;сохраняем старый вектор
173416 MOV (R1)+, -(SP)
173420 MOV @R1, -(SP)
173422 TST -(R1)
173424 MOV #T100, (R1)+ ;устанавливаем новый
173430 CLR @R1
173432 MOV #'8, R1
173436 CALL Z70154 ;выводим инфу, что Т8 начался
173442 CALL OUTSOF ;вывод строки текста
173446 .WORD @ASPDTS
173450 CLR R0 ;тут накапливается результат
173452 MOV #1, R5
173456 CALL Z73662 ;разрешаем таймер
173462 Z73462: TST R5
173464 BNE Z73462
173466 MOV #1, R5
173472 Z73472: TST R5
173474 BNE Z73472
173476 Z73476: MOV R1, R2 ;а это набор тестируемых команд
173500 ADD R1, R2
173502 SUB R1, R2
173504 CLR R1
173506 TST R1
173510 INC R1
173512 DEC R1
173514 ADC R1
173516 ASL R1
173520 ASR R1
173522 BIC R1, R2
173524 BIS R1, R2
173526 BIT R1, R2
173530 CMP R1, R2
173532 COM R1
173534 NEG R1
173536 SWAB R1
173540 SBC R1
173542 MOV R1, R2
173544 ADD R1, R2
173546 SUB R1, R2
173550 CLR R1
173552 TST R1
173554 INC R1
173556 DEC R1
173560 ADC R1
173562 ASL R1
173564 ASR R1
173566 BIC R1, R2
173570 BIS R1, R2
173572 BIT R1, R2
173574 CMP R1, R2
173576 COM R1
173600 NEG R1
173602 SWAB R1
173604 SBC R1
173606 INC R0
173610 TST R5
173612 BEQ Z73476
173614 CALL Z73652 ;запрещаем таймер
173620 CALL Z73710 ;выводим результат
173624 MOV #'8, R1
173630 CALL Z70124 ;выводим инфу, что Т8 завершен
173634 MOV #104, R1
173640 MOV (SP)+, -(R1)
173642 MOV (SP)+, -(R1)
173644 JSR R5, Z66722 ;восстанавливаем все регистры
173650 RETURN
¤
173652 Z73652: MOV #7, @#177714 ;запрещаем IRQ100
173660 RETURN
¤
173662 Z73662: MOV #3, @#177714 ;разрешаем IRQ100
173670 RETURN
¤
173672 T100: TST R5 ;обработчик IRQ100
173674 BEQ Z73702
173676 CLR R5
173700 BR Z73706
173702 Z73702: MOV #1, R5
173706 Z73706: RTI
¤
175154 ASPDTS: .ASCII \ ТЕСТ БЫСТРОДЕЙСТВИЯ\<12><12>
175154 .ASCII \ ЧИСЛО ПРОСТЫХ ОПЕРАЦИЙ=\<0>
¤
даже не знаю, лучше ли стало.Есть эмуль платы БК11, написан недавно, и даже в принципе работает.А вот формулы из ТО говорят, что исполнение команды рег-рег ВМ1 - 8 тактов ЦПУ + время между выставлением DIN/DOUT и приходом RPLY (время затраченное на выборку команды из памяти). Это как раз никак не вычисляемый момент, потому что для разных видов адресаций на разных частотах это время колеблется в разные стороны от теоретически рассчитанных значений.
+ ещё нужно учитывать специфику работы ВП1-37, когда он делит свои рабочие циклы на циклы вывода данных на эран и циклы доступности ОЗУ для ЦПУ, при этом на 3 Мгц тайминги всех команд всегда кратны 4 тактам ЦПУ, на 4 Мгц преимущественно кратны 8 тактам ЦПУ, но не везде, на 6 МГц - преимущественно кратны 16 тактам ЦПУ, но опять же не везде, в некоторых местах - кратны 8 тактам.
Такие результаты получаются при измерении времени в тактах программно, средствами самой БК и ВЕ-таймера, возможно это из-за слишком большой погрешности, но других методик и результатов нет и проводить исследования некому.
-
? MM@ - 06.03.2013 22:53
Вот не побрезгивал левым DESS-ом и дизассемблировал его кусок с 1000:
001000 EMT 355
001002 JSR PC,012152
001006 MOV #001000,SP
001012 JSR PC,012206
001016 JSR PC,010270
001022 BIS #070000,@#000044
001030 JSR PC,015460
001034 JSR PC,007624
001040 JSR PC,007520
001044 JSR PC,005616
001050 MOV #014722,R0
001054 MOV #016400,(R0)
001060 MOV #005714,000002(R0)
001066 EMT 375
001070 JSR PC,015422
001074 CMPB R0,#000033
001100 BEQ 001224
001102 MOV R0,-(SP)
001104 BIC #177600,R0
001110 BISB 001370,R0
001114 CMPB R0,#000040
001120 BCS 001214
001122 CMPB #000176,R0
001126 BCS 001214
001130 MOVB (SP),R0
001132 MOV #000012,R1
001136 BIT #000002,012222
001144 BNE 001154
001146 MOV 004442,R1
001152 ASL R1
001154 MOV #001366,R4
001160 MOVB R0,(R4)
001162 JSR PC,@001372(R1)
001166 BCS 001206
001170 JSR PC,002310
001174 BIS #002000,012222
*
Сдается мне, что не я склеротик, а просто кое-кто сам софт на ДВК отродясь не писал.
¤
-
? Patron - 06.03.2013 23:01
Инкремент счётчика ВЕ-таймера происходит один раз на 128 тактов CLC, поэтому если выполнить 512 одинаковых команд и разделить значение счётчика на 4 - результат будет в точности равен среднему числу тактов на одну команду ( просто 128 команд выполнить нельзя из-за плавающей фазы счёта - будет ошибка +-1 такт ). Если же выполнить 2560 команд и разделить значение на 2 - результат будет равен среднему числу десятых долей такта на одну команду.
Т.к. одна команда не может выполняться дробное число тактов - величина дробного значения будет указывать на скважность "левых" обращений к памяти, относительно обращений процессора.
-
? MM@ - 06.03.2013 23:11
Кстати, сколько я не видел тестов производительности ДВК - все сплошь показывали разные значения на одной и той же плате 1201.02
в течении 1 часа при условии, что ее не вынимали из корпуса ДВК. ( Пяток перебрал году так в 1993-м ).
Думается, кто - то из программеров настраивал тесты на свой извращенный вкус - так надо только рег-рег тестировать, а остальное
ясно из спецификации матери, где камень стоит.
*
Осмотрел вышеприведенный дамп - так там командочки по 10 тактов ВМ1 жрут, не считая времени выборки ПЗУ. 250 т - отличный результат.
*
Просим уважаемого Kisser запустить это на образце ВМ2А-12 мгц. ( В эмуль ПЗУ надобно 2-й набор софта встроить - для настоящих
ортодоксов - БК11 без "М" ).
-
? MM@ - 07.03.2013 02:37
Внимательно прочел предыдущий листинг и нашел :
173424 MOV #T100, (R1)+ ;устанавливаем новый
173430 CLR @R1
173432 MOV #'8, R1
- каково !
*
Максимум, что я позволял себе - маленькие нецензурные анекдоты муровать в РЕшки в RADIX-50.
Кто первый найдет - получит бутылку - 1 шт. Российского шампанского в П-Посаде самовывозом.
*
Какой-то олигофрен испохабил мой любимый DESS в эмуле ДВК хексом и отрезал возможность вывода текста в файл - только на LP:.
*
Вот если бы звезда интеллекта прикрутил бы к эмулю синхронную МПИ на ЛПТ - через переходник на ИР23 - я бы туда 128-ю присобачил и
работал бы как на натуральном ДВК.
-
? gid@ - 07.03.2013 08:07
Таки вопрос не раскрыт, почему в имеющемся экземпляре дампа 203 таймер 50Гц включается и выключается через порт 177714? тем более что ММ сказал, что
[Но наблюдал, что почему - то не на всех матерях этот тест работает.]
Т.е. есть вероятность существования 2-х версий прошивок 203, выпущенных либо по ошибке в разное время, либо по ошибке на разных линиях программирования готовых 1801РЕ2-203, одна нормальная, работающая с таймером как надо, через 177662, и вторая - непонятно что, работающая с таймером через 177714
-
? gid@ - 07.03.2013 10:49
И ещё вопрос
[Цикл доступа ДОЗУ БК11 - рандом 1500-2000-2500 нс.]
Из-за чего такой рандом? Кто виноват? Вот тут кстати http://gray-gid.narod2.ru/f/BK11timings.rar экселевский файл, на 4-м листе приведены результаты измерений таймингов тестом Patrona для БК10 3Мгц, БК11 4Мгц и БК11 6Мгц. Для БК10 замеры провести не поленился CD-Inc.
В результате всё стало ещё более запутано, и совсем непонятно, как Зальцман получил свои результаты.
-
? Kisser - 07.03.2013 12:06
>> уважаемого Kisser запустить это на образце ВМ2А-12 мгц
Что именно ЭТО?
В кодах давайте, запустим... когда соберем )))
-
? MM@ - 07.03.2013 12:12
1.Вчера 1 час искал в закромах всякие МСТД - не нашел 203, видать как полный отстой была сдана на металл.
2.Тайминги доступа к 037 - она не синхронна ( фактически ) с ВМ1. Если запрос на доступ к ДОЗУ придет в начале ее цикла "Видео-
камень", то она обслужит камень за 8-9 циклов, если камень "не в такт" - он будет ждать 16-17 тактов 037. 1 такт 037 - 167 нс.
Теоритически можно высчитать от DCLO всю синхронность, но на практике уже через насколько секунд после старта разница между
близнецами - БК10 составляет десятые доли процента по результату исполнения кода.
3.Насчет 177714 - у Вас ИС КР1801РЕ2-203 или ее дамп ?
-
? Patron - 07.03.2013 12:14
Если есть прерывание 50 Гц по вектору 0100 - можно для проверки запустить универсальные тесты таймингов:
MOV ( http://zx.pk.ru/attachment.php?attachmentid=40010 )
CMP ( http://zx.pk.ru/attachment.php?attachmentid=40017 )
ADD ( http://zx.pk.ru/attachment.php?attachmentid=40018 )
Все эти тесты отличаются только одной строчкой ( кроме теста MOV - он предыдущей версии - можно смело переделать его на манер более поздних ).
Строчка выбора тестируемой команды в тесте ADD выглядит так:
;;############################
.Instr Add
;;############################
Написав там MOVB, BIS или название любой другой команды с двумя операндами - можно (после компиляции) получить тест таймингов этой команды.
Там, правда, в расчётах используются команды Mul и Div, поэтому перед запуском теста нужно включить эмуляцию команд EIS ( например - драйвером EM.SYS ).
-
? MM@ - 07.03.2013 12:19
Насчет "ЭТО" - имеется ввиду ИС КР1801РЕ2-203 на матери с 201 и 202 ИС. Если нет МСТД, ИС можно прицепить поверх DS17 без пайки -
она может висеть постоянно на МПИ.
-
? Patron - 07.03.2013 12:19
После запуска теста он ожидает ввода значения частоты тестируемого процессора в килогерцах, которое затем запоминается.
При повторных запусках теста, если частота тестируемого процессора не изменилась - можно просто нажимать [Ввод]
-
? Kisser - 07.03.2013 12:19
>> Если есть прерывание 50 Гц по вектору 0100 - можно для проверки запустить универсальные тесты таймингов:
Прерывание есть, диска нет (пока). Как будет - там уже другой разговор...
-
? gid@ - 07.03.2013 12:33
>>? MM @ - сегодня 12:12
[3.Насчет 177714 - у Вас ИС КР1801РЕ2-203 или ее дамп ?]
Естественно дамп. Я вообще живого железа БК11 никогда не видел, не довелось.
Как я уже писал, этим дампом со мной поделился dk_spb, похоже единственный обладатель дампа.
-
? Patron - 07.03.2013 12:35
Диск не нужен, если есть RS-232 - через RS-232 можно грузить RT-11.
Это также даёт дополнительную возможность выводить результаты тестирования не на экран БК, а на экран PC ( и в текстовый файл лога терминала ).
Можно ИРПС как-то на RS-232 переделать, а можно купить контроллер СА УКНЦ ( там уже готовый RS-232 с частотой 57600 и всей обвязкой для МПИ ) и слегка его переделать.
- << Форум