С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Картинки можно найти в веб-архиве. Собственно часть из них я восстановил вот сюда:
http://www.emuverse.ru/wiki/%D0%A3%D...B0%D0%BD%D0%B4
litwr (01.04.2023)
Во время работы над демкой Good Apple написал много тестов производительности. Мне нужно было знать точное время выполнения команд и - главное - целых блоков кода (выяснилось, что в силу архитектурных особенностей контроллера динамической памяти БК, сумма длительностей взятых по отдельности команд может не совпадать с реальной длительностью всего блока кода). Нужно это было потому, что я хотел выводить звук на Covox ровно каждые 176 тактов процессора, дабы поддерживать постоянную частоту звука 22727 Гц безо всякого джиттера.
Расчёт проводил как для медленной динамической памяти, так и помещая код в быструю верхнюю память контроллера жесткого диска. Результаты, конечно, разные.
Решил выложить часть тестов, чтобы все могли сверить свои эмуляторы
Исходники здесь же. Можете тестировать произвольные блоки кода и любые команды по отдельности.
speed-tests-manwe-1.zip
Вскоре собираюсь доделать тесты до конца (все команды) и выложить в отдельную тему в разделе БК-0010/11
Пока что промежуточные исходники и бинарники здесь.
Несколько примеров для БК-0010-01 3 МГц:
Аргументы fast, fm, f предназначались для обращения в fast memory, но по-моему там идёт обращение к тому типу памяти, который указан в заголовке теста. То есть для теста 45com-lo это будет обращение в low (нижнюю медленную) память.
Ещё картинки:
Скрытый текст
http://thesands.ru/bk0010/temp/45com-hi.jpg
http://thesands.ru/bk0010/temp/speed-lo.jpg
http://thesands.ru/bk0010/temp/speed-hi.jpg
http://thesands.ru/bk0010/temp/test4lo.jpg
http://thesands.ru/bk0010/temp/test4hi.jpg
http://thesands.ru/bk0010/temp/test5lo.jpg
http://thesands.ru/bk0010/temp/test5hi.jpg
[свернуть]
Производительность понятно как посчитать: 3 мегагерца делим на число тактов команды. Например, получаем 250'000 операций NOP в секунду. Отсюда одна команда NOP длится 4 микросекунды. В условиях выполнения в обычной медленной памяти.
Последний раз редактировалось Manwe; 27.09.2018 в 14:12.
manwe.pdp-11.ru
Блог : http://collectingrd.kxk.ru/ . В ЛС прошу не писать, все сообщения [email protected]
На МПИ реализуется цикл "Безадресное чтение". В этом цикле выставляются только сигналы SEL и DIN, SYNC неактивен. Соответственно на шину должно выставится содержимое безадресного регистра, отвечать RPLY не надо. Этот же цикл реализуется и при прерываниях режима HALT, таких как останов, двойное зависание, ошибка получения адреса вектора прерывания, обработка команд FIS.
Соответственно ни в какой стек не лезет.
MM (07.12.2019)
МС1201.01 с процессором 1801ВМ1Г.
Тест от Титуса.
ASH (test 1) -ERROR 0x47F3 / TRAP 10
ASH (test 2) -ERROR 0xB7C3 / TRAP 10
ASHC (even) -ERROR 0x69EB / TRAP 10
ASHC (odd) -ERROR 0x32A3 / TRAP 10
DIV (even) -ERROR 0x9E4A / TRAP 10
DIV (odd) -ERROR 0x43D5 / TRAP 10
Остальные команды- OK.
Тест SPEED показывает только сложение.
RT11 по команде SH CON показывает EIS.
VM1SPD.SAV
Есть отличия измерения между 1801ВМ1А И 1801ВМ1Г (Платы разные).
На А показывает более правдоподобную частоту 3,998,000.
На Г показывает 1,489,000.
Притом на Г иногда проскакивает более правдоподобная частота 4,110,000.
Код:1801VM1 Mhz Speed Meter v1.0 177712/177400 CPU Clock = 4'110'000 CPU Clock = 1'488'000 CPU Clock = 1'488'000 CPU Clock = 1'488'000 Press <any_key> to exit.. CPU Clock = 1'489'000 Program completed.
EIS там берётся из параметра, заданного при конфигурации системы:
http://www.kpxx.ru/DEC/PDP-11/Softwa...ked/RESHRD.MACКод:MOV $CNFG2(R5),R4 ; and config word #2 ... 90$: BIT #C2.EIS,R4 ;How about EIS? BEQ 100$ ;Branch if no PRINT EISET,<Extended Instruction Set (EIS)>
nzeemin (09.08.2020)
Наличие EIS определяется вторичным загрузчиком при загрузке системы:
http://www.kpxx.ru/DEC/PDP-11/Softwa...ked/BSTRAP.MACКод:;+ ; Check if the processor has FULL extended instruction set. ;- MOV #<3>,R3 ;Set up R3 to ... MUL R3,R3 ; ... test for EIS CMP #<3*3>,R3 ;Did it multiply right? BEQ 40$ ;Yes CLR @R1 ;No, don't set the bit CK.R1 TSEIS,+2 40$: BIS (R1)+,@R0 ;Set bit if EIS present and working
nzeemin (09.08.2020)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)