С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
ZPilot(19.07.2021)
Пока наш доблестный цифровой археолог выкапывает из кремния F-11, я решил провести подготовку проекта к работе с 22-битной адресной шиной. Поскольку HDL-схем реальных процессоров с mmu в природе пока не существует, я решил воспользоваться все тем же старым добрым pdp2011. Это чисто синтетический процессор, не имеющий реального схемотехнического прототипа. Он построен не на микропрограммном автомате, как настоящие процессоры от DEC, а на машине состояния, является модульным и очень хорошо адаптируемым - из него можно вылепить любой pdp-11-совместимый процессор, даже 1801ВМ3, при наличии достаточной документации. Я решил сделать PDP11/70 - это один из наиболее сложных и развитых из процессоров линейки pdp-11. У него в составе есть FPU, 2 переключаемых набора регистров, режим Supervisor, программные прерывания, Unibus Mapping и много других интересных вещей. Он был содран в СССР под имененм Электроника-79, он полностью совместим со всеми ОС
Оригинальный pdp2011 написан на VHDL, и имеет довольно странную, ни с чем не совместимую шину, причем жестко синхронизированную - все операции ввода-вывода должны выполняться ровно за 1 такт. Сам процессор также жестко синхронизирован с контроллером SDRAM, собственно SDRAM и вырабатывает тактовый сигнал процессора. Мне такой подход не нравится, и он совсем не совместим с шиной Wisbone моего проекта. Поэтому я произвел глубокую переделку процессора:
- Переписал схему с многословного громоздкого VHDL на симпатичный мне компактный Verilog.
- Убрал из схемы ненужные мне элементы, вроде работы с консольным пультом.
- Отвязал процессор от SDRAM, теперь процессор и память тактируются каждый своим синхросигналом
- Полностью переделал блок ввода-вывода процессора, теперь наружу выходит стандартная шина Wishbone.
- Практически полностью переделал блок MMU для работы с шиной wishbone.
- Исправил кучу недоделок для более-менее корректного прохождения тестов XXDP CEKB*. Полностью от ошибок, обнаруживаемых тестовыми программами, я не избавился, но то, что осталось - сущая ерунда, на которую можно смело забить.
В результате в проекте появилась еще одна процессорная плата по имени PDP2011, которую можно подключить к конфигурации в том же config.v. Поскольку 22-битные процессоры гораздо сложнее 16-битных и имеют более развитый внешний интерфейс, пришлось сделать отдельную соединительную плату topboard22. У процессоров с MMU несколько раздельных линий векторного прерывания (потребовалось 2 контроллера прерываний), есть режим unibus mapping, что предполагает обработку DMA-адреса диспетчером памяти, и много других важных отличий. Старая плата для 16-битных процессоров теперь называется topboard16. Какую именно соединительную плату включать в проект автоматически решает config.v на основании выбранного процессора.
Кроме собственно процессора pdp2011, я добавил также в проект дисковый контроллер RH-70 (DB:). Этот контроллер формирует шину MASSBUS, имеющуюся в PDP-11/70. В оригинале к этой шине можно подключать несколько типов дисковых и ленточных устройств, в том числе и в смешанной конфигурации. У меня к контроллеру подключено 8 дисков типа RP06. Эти устройства хранят информацию на пакетах дисков из 12 (примерно) блинов. Такие пакеты прилично весили и выглядели довольно внушительно. В годы перестройки из этих блинов делали дециметровые антенны. Советским аналогом RP06 было устройство ЕС-5067. В прошлой жизни мне такие не попадались, в наших ВЦ стояли ЕС-5066 (аналог RP05) с вдвое более низкой емкостью.
Пакет RP06 имеет форматированную емкость 341088 блоков (166 Мб). 8 таких дисков могут вместить даже такую прожорливую ос как RSX-11M+ вместе со всей библиотекой DECUS. Физически образы дисков расположены все на той же самой SD-карте, являются посекторными образами диска и напрямую совместимы с эмулятором SIMH.
RT-11 не поддерживает работу с RP06, возможно, в силу ограничений на максимальный размер файловой системы в 32 Мб. Поэтому эти диски подключаются только к topboard22. Все остальные устройства (DX, DM, DK, DW, MY, ИРПС, ИРПР, КГД, КСМ) могут подключаться и в 16- и в 22-битной конфигурации. Так что в принципе можно сделать такую причудливую машину, как PDP-11/70 с КГД. Правда, толку от нее будет немного - почти все графические программы используют команды MFPS/MTPS для доступа к PSW и на такой машине работать не будут.
В стартовый образ диска initdisk.img я добавил диски с RSX-11M v4.8, RSX-11M-PLUS v4.6, RSTS/E v10.1. Загружайте, наслаждайтесь. Можно сделать загрузочные диски с UNIX, ULTRIX, 2.11BSD и другими юниксподобными ОС. Я их не стал включать в стартовый диск, чтобы совсем его не раздувать в размерах.
Вся информация по новому процессору вынесена в отдельный файл doc/pdp2011.pdf. Информация о корзине topboard22 и дисках DB добавлена в main-manual.pdf.
Как всегда, набор скриншотов, иллюстрирующих работу машины PDP11/70:
RSX-11M v4.8, загрузка
[свернуть]RSX-11M-PLUS, загрузка
[свернуть]RSX-11M-PLUS, монитор ресурсов RMD
[свернуть]RSX-11M, демонстрация работы ситемы экранных форм FMS-11
[свернуть]RSX-11M, широко распространенный в CCCР редактор TED. Единственный редактор с полосой разметки строки.
[свернуть]RSTS/E v10.1, загрузка
[свернуть]RSTS/E v10.1, монитор ресурсов DISPLY, часть 1
[свернуть]RSTS/E v10.1, монитор ресурсов DISPLY, часть 2
[свернуть]XXDP, тест RAM CEMJA
[свернуть]
Теперь плохие новости. В полной конфигурации с включенным FPU проект занимает около 21000 логических ячеек. Если FPU убрать из конфигурации (это задается в config.v), то проект уменьшается до 17500 ячеек. Но даже в таком виде он не вслезет в младшие FPGA. Поэтому из имеющихся в проекте FPGA-плат pdp2011 можно использовать только с QMTECH E55 и A-ESTF V2. Можно запихать его и в TANG, но только убрав из конфигурации FPU, а также или КСМ или часть дисковых контроллеров.
Теперь проект готов к 22-битной адресной шине. Ждем новогоднего подарка от доброго дедушки мороза по имени VSLAV.
Последний раз редактировалось forth32; 16.09.2021 в 09:07.
Alex_K(16.09.2021), Elias(28.09.2021), Hunta(16.09.2021), Manwe(25.10.2021), Oleg N. Cher(19.09.2021), Radon17(19.09.2021), Romych(19.09.2021), siemensC35(16.09.2021), SuperMax(16.09.2021), tnt23(25.09.2021), Unik(16.09.2021), Vslav(16.09.2021), vva(19.09.2021), xolod(16.09.2021), yu.zxpk(16.09.2021), zebest(16.09.2021)
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)