С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Не ведаю точно , надо смотреть коды операций и разбираться. Если очень надо - можно вычислить и написать директивой .WORD
Потом сделать макрос...
Но по факту, редко кто на такое идёт ...
- - - Добавлено - - -
Там биты и логика операции...
И ещё, надо учесть , что некоторые процессоры могут отрабатывать такие команды по 10 вектору...
Так как команды не задокументированы(Это уже моё личное мнение)
Последний раз редактировалось Alex; 24.05.2023 в 21:06.
Там, как я понял, команды подстроены под логику в процессоре первых PDP-11(или наоборот, логика под команды???)...
С командами Cxx/Sxx всё просто. Там тупо флаги в теле команды. А с командами переходов условных, там хитрее... Там есть ещё функции взаимодействия по условиям с флагами. И в той книге была таблица этих недокументированных команд.
Но читал я эту книгу давно, библиотечная, что помню - издательство "Мир", год издания и автора не помню. Название что-то вроде: "Введение в архитектуру миниЭВМ PDP-11"" А вот про команды запомнил![]()
Точнее я там много чего запомнил. Там многие вещи на пальцах объяснялись. И мне многое стало понятнее по прочтении
Я так понимаю, что книга для американских студиосов написана.
- - - Добавлено - - -
У достопочтимого
Hunta, были версии программы по измерению быстродействия, в том числе и для CIS на F11(1811). Чего более ни у кого нет
С ним можно договоритьсяГлавное, чтобы ему это интересно было. Если интересно будет, то он горы свернёт.
Я расписал все условия - https://zx-pk.ru/threads/30199-sravn...=1#post1179145
Вот ОЧЕНЬ сильно сомневаюсь, что хоть на какой-то модели это есть. Могу только предположить, что, ВОЗМОЖНО, в книге рассматривалось МИКРОПРОГРАММИРОВАНИЕ (та же LSI-11 М1/М2 или, скажем, PDP-11/60 это позволяет) и показывалось - КАК это можно сделать. Но что бы это где-то существовало.. Ссылку в студию.
Чего это были - они и сейчас естьБольше того, программа написана так, что можно легко добавлять нужные команды или блоки команд - то есть измерение возможно не только для отдельных команд, но и блоков. Причем - как с учётом кода инициализации, так и без оного
- - - Добавлено - - -
Точнее говоря - программа одна, но есть подварианты, скажем - только BR . и MOV R0,R1 (если мне не изменяет память насчёт второй)
Ну и есть подвариант под J-11 с кэшем - сделано так, что бы уместиться в кэш
Но основной исходник один.
Правда, я его слегка сломал, пытаясь сделать под Э85 и руки никак не доходят починить![]()
вижу тут много спецов по PDP-11 собралось, поэтому напишу не в тему : не знаю как кому, а мне неинтересен сам тест скорости копирования памяти, т.к. сама скорость памяти вещь не конкретная при одинаковых процессорах PDP-11. Да и применений компьютеров много разных и далеко не всегда это так важно. Тем более еще менее интересна скорость вычисления пи. А вот по-быстрому определить быстродействие процессора и сравнить его с другими - хочется.
При этом часто - нет возможности запустить тест в операционной системе и задействовать прерывания от таймера. Вот и хочется иметь тестик, который можно быстро набить в пульте и засекая секундомером за сколько секунд он выполняется определять быстродействие. Тест для удобства должен иметь минимум команд, выполняться достаточно долго - удобно и более-менее точно - секунд 10...20 на процессорах средней производительности. Что касается конкретной команды которой циклически тестировать, то что бы не задумываться о статистике наиболее часто используемых, да еще и в разных сферах применения - взять самую короткую по времени исполнения и что бы она имелась для всех процессоров - наверное это пересылка регистр - регистр (или сумма - забыл какая из них быстрее выполняется). Чтобы как-то минимизировать влияние скорости работы памяти нужно как-то попробовать свести к минимому обращение к памяти по-возможности. Думаю что это будет 177777 циклов по 177777 циклов (или один из циклов по-короче - надо пробовать практически по комфортному для засекания времени исполнения). Кажется, что задача тривиальна, но если сильно стараться и применить всякие "трюки", то, может будет кому-то интересна. А мне пойдет любой вариант (но хотелось бы - лучший).
Последний раз редактировалось ra3qdp; 25.05.2023 в 08:21.
Исходник не могу
Дело очень давнее, я тогда студентом ещё был...
В ней я в первый раз прочитал, что на разных моделях в режимах -(R...) и (R...)+ инкремент и декремент на разных моделях обрабатываются в разные моменты выполнения команды, в итоге результат двуадресной команды типа
MOV -(R0),-(R0) на разных моделях мог быть сильно разным ... Хотя DEC и прописала, что и как работать должно, но вот сама же и нарушала свой стандарт
К счастью сее было несмертельно...
Про микропрограммы там не упоминалось
Про изменение микропрограммы процессора, я вычитал уже в книжке про VAX. Там в качестве примера упоминалась микропрограмма вычисления какого-то хитрого полинома. Один операнд указатель на массив памяти, второй операнд на результат. Но ни текста, ни как её замикропрограммировать не объяснялось![]()
Хотя было бы прикольно сравнить скорость исполнения программы с скоростью микропрограммы
Про то, что так можно на некоторых моделях PDP-11 узнал сильно позже![]()
Но по факту с изменением микропрограммы процессора никогда не сталкивался.
В теории вроде понятно, что LSI-11 М1/М2, и процессоры на секционных комплектах(например 1804) читал в однотомнике про микропроцессорные комплекты, потом вышел уже в двух томах, чуть более мутно представляю F11, так там не просто ROM, там ROM+PGA в одном флаконе...
Последний раз редактировалось Alex; 25.05.2023 в 11:23.
В общем, пока КРАЙНЕ сомнительно.
Это известно, учитывается и в PDP-2011 и, естествнно, в PDP-11X. Единственное но - проверяется это тестами и если какой-то тест для какой-то модели особенность поведения не проверяет и/или не учитвает.. PDP-11X может и ошибаться - по таблицам, где описаны отличия моделй процов я не всё проверял.
За что купил, за то и продаю
По поводу особенностей - DEC сама нарушила принцип ортогональности
то есть регистры ведут себя сильно по разному
С одной стороны MOV (PC)+, (PC)+ здесь всегда всё хорошо, иначе большая часть программ работать не будет
с другой MOV (R0)+,(R0)+ тут возможно западло ... А если ещё MOV -(R0),-(R0) ...
Но к счастью большая часть народа в курсе, и ничего такого не пишетЛибо если пишут, то проверяют отладчиком ...
Вдогонку. Да, он не RISC, но другой информации по ECL и DEC не попадалось...
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)