Несколько вопросов тут по-моему не про ВМ3 а про pdp11 вообще, я сам убил пару лет времени пока понял о чем ОНО! Поэтому решил расказать на пальцах тут что я собственно понял, просьба к ГУРУ поправить меня если я чего-то не О ТОМ или НЕ ТАК КАК НАДО.
Так вот.
1. Пульт pdp11 надо рассматривать как "отдельный блок на шине МПИ" который может в любой момент остановить работу pdp11 процессора и просматривать\менять содержимое памяти (а так как в pdp11 и регистры проца и все внешние устройства отображены так же как и обычная "память" то и содержимое всех их тоже можно смотреть и менять). Применяется для debug-a. В первых pdp11 unibus пульт выглядел как такое табло с тумблерами и светодиодами которые отображали адреса и данные на шине, в qbus pdp11 пульт это встроенный микрокод в процессор работающий с консольным SLU, при переходе в пульт состояние pdp11 как бы завмерает (ну ясное дело что состояние регистров консольного SLU сразу же портится самим кодом пульта, иначе невозможно было бы взаимодействие с оператором пульта). У Бабаяновских эмулей pdp11 проца внутри нету микрокода пульта, но есть внешний сигнал по которому можно подставить ПЗУ с программой пульта снаружи процессора.
2. ДП. Суть такая: пространство где pdp11 выполняет прогу называют VA - virtual address, виртуальное адресное пространство, оно поделенное на 8 частей по 8кб (8 "окон", они же BS0-BS7, сигнал BS7- последнее окно в котором I/O регистры и регистры проца), ДП может подключить в каждое "окно" из всего возможного 22-bit адресуемого (4Мб) процессором "физического" пространства кусок размером до 8кб (так как "окно" само то длинной 8кб). Зачем? Для реализации такой концепции: в каждый момент времени пашет токо 1 кусок кода с 1 куском данных, это же можно сказать "по блатному" с терминами ООП - есть классы состояшие из методов работающих с членами данных класса. Т.е. как бы вся "жирная и длинная" прога на 22bit/4Mb насамделе разбита на маленькие (до 8кб) куски кода и данных которые НЕОБЯЗАТЕЛЬНО все вместе должны "светиться" в VA (виртуальном адресе), достаточно перед использованием "включить" отображение нужного "кода \ данных" и "использовать" этот кусок а потом можно включать "следующий" и т.д.




Ответить с цитированием