nedoPC.org

Community for electronics hobbyists, established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 15 Oct 2024 18:16



This topic is locked, you cannot edit posts or make further replies.  [ 58 posts ]  Go to page 1, 2, 3, 4  Next
Модель PDP-11 с диском IDE: К1801ВМ1, К1801ВП-XX, серия 588 
Author Message
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Здесь будет немного графоманства.

Пора отходить от Интела и подобных. Изделия с применением 8080, 8085, 8086, 8088/V20, Z80 проектировались (изредка копировались), собраны, отлажены, изучены, большинство кануло в лету, но опыт остался однобокий какой-то. Настало время делать PDP-11. Во-первых, чтобы приобщиться, во-вторых PDP-11 в хозяйстве никогда не лишняя.

Вариантов, из чего ее делать -- множество, вплоть до копирования в подробностях, благо усилиями заинтересованной общественности многое из документации на ранние модели PDP-11 есть на bitsavers.org. Например, есть схема PDP-11/20 (трафик!!) (Отвлекаясь: Кстати, там активно используются так называемые "расширители по ИЛИ", в наших справочниках обозначаемые как ЛД1, аналог 7460, которые расширяют возможности элемента ЛР1, тамошнего 7450, или ЛР3, тамошнего 7453. Признаться, в наших схемах я такого не встречал, но я и не видел схем ЕС-ок и СМ-ок, поэтому будем думать, что как раз там ЛД1 и применялись, и не будем думать, что это бесполезный балласт в результате слепого копирования серии 74)

Полиставши схемы первых PDP-11, собранных на классических ТТЛ, понимаешь, что несмотря на их относительную простоту, это все же не проекты выходного дня, хотя и подъемные в обозримой перспективе. К тому же, вопрос именно копирования не актуален, а хочется получить что-то удобное, компактное и в основном похожее на PDP-11. Назовем это моделью PDP-11.
К счастью, электронная промышленность СССР в свое время изрядно постаралась и выдала на-гора разных микросхем большой интеграции на тему архитектуры PDP-11, чем облегчила задачу получения удобного и компактного. Поэтому берется все, что имеется под рукой, выбираются интересные экземпляры и отправляются на испытательный стенд. Самое первое, что обычно приходит в голову, это "как бы подружить процессор и ОЗУ". Может быть, такая идея, будучи самой простой, и не всегда правильная, но зачем себе отказывать в удовольствии побыть немножечко дилетантом, поэтому от обычаев не отступаем.

На стендах побывали:
процессоры К1801ВМ1, КР1801ВМ2, КМ1801ВМ2, КМ1801ВМ3, 1806ВМ2, Н1806ВМ2;
контроллеры ОЗУ КР1801ВП1-030 (для ВМ1), КР1801ВП1-119 (для ВМ3), К1801ВП1-037 (для ВМ1, с функцией регенерации растрового дисплея, применялась в БКшках), КР588ВГ2 (из дружественной КМОП серии), КМ1810ВТ3 (а почему бы не подружить протоколы Multibus и Qbus?).

Но не настолько интересны технические мелочи сами по себе (а они, вообще-то, интересны), как интереснее было, исходя их этих мелочей, получить представление об испытуемых, сформировать свое к ним отношение, типа, "вот ты такая вся из себя розовая или в CerDIP, а ты удиви". Сложность же заключается в том, чтобы не ошибиться с представлением, ошибка грозит "остыванием" к начинанию со временем.
Короче, по совокупности впечатлений, для пробного захода в изготовлении модели PDP-11 выбор пал на связку К1801ВМ1 и КР1801ВП1-030. Она ничем не удивила, но показалась наиболее сбалансированной, не вызывающей отторжения или желания что-либо улучшать или ускорять. Пауза в три года отношения не изменила, что порадовало, и можно неспеша приступать к изготовлению.


Last edited by Mixa64 on 04 Apr 2023 23:08, edited 1 time in total.



17 May 2018 04:21
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Вот эти два кристалла, центры кристаллизации будущего изделия. Респект Ангстрему.


Attachments:
вм1_вп1-030.jpg
вм1_вп1-030.jpg [ 86.56 KiB | Viewed 17045 times ]
18 May 2018 07:28
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Строится модель PDP-11, значит, проектирование будет происходить в рамках архитектуры PDP-11. В этом направлении связка К1801ВМ1 и КР1801ВП1-030 начинает диктовать выбор остальных элементов так, что практически не оставляет вариантов. Может, это и хорошо, мук выбора меньше. К тому же, в некоторых аспектах программная модель изделия начинает совпадать с ДВК, что тоже может сыграть на пользу (хотя, если подумать, польза только в подсказках при дизассемблировании ДВКшного ПЗУ и формировании понимания, можно ли код этого ПЗУ как-то использовать).

Итак, что из модулей желательно иметь, согласно архитектуре PDP-11? Для начала, как минимум: процессор, общая щина, ОЗУ, инструментальная консоль. В ранних PDP-11 консоль представляла собой тумблеры с лампочками, потом была заменена на утилиту ODT (Octal Debugging Technique), работающую с системным терминалом и закодированную либо микропрограммно, либо как программа для процессора в ПЗУ. Связка ВМ1 и ВП1-030 дает средства для организации инструментальной консоли по типу программы в теневом ПЗУ. С каким интерфейсным средством работает эта программа, будь то терминал, или панель с переключателями, или еще что-то, никак не оговорено. Но системный терминал быть в наличии обязан, поэтому самый рациональный вариант организации инструментальной консоли это программа ODT в ПЗУ с интерфейсом на системный терминал. Значит, к минимальному набору модулей добавляется контроллер с интерфейсом системного терминала.

Дальше сталкиваемся с небольшой неприятностью. Или особенностью, кому как нравится. Функции процессора и инструментальной консоли разнесены по нескольким микросхемам. Процессор в К1801ВМ1 реализован не полностью, часть его находится в КР1801ВП1-030, а в ней, в свою очередь, реализована часть инструментальной консоли, остальные части которой разнесены по ВМ1, ПЗУ и ОЗУ. Поэтому минимальная законченная базовая составляющая изделия это клубок из ВМ1, ВП1-030, ПЗУ, ОЗУ, с выходом наружу общей шины, но шина используется для связей в клубке тоже. И в этом клубке модули процессора, инструментальной консоли и ОЗУ можно выделить лишь условно. Физически их нет. А вот системный терминал уже можно реализовать в виде отдельного модуля на общей шине, и для этого хорошо подходит микросхема КР1801ВП1-035 (или 065).


18 May 2018 07:31
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Вот эта парочка UART-ов на выбор, прям на шину а-ля Q-bus, которая и будет шиной межмодульной. В нарушение злравого смысла, потому что напрямую с микросхемы и без буферов, зато в пользу компактности. Чужих рядом с игрушкой не будет, а снимать статику это уже рефлекс.


Attachments:
вп1-035_065.jpg
вп1-035_065.jpg [ 85.92 KiB | Viewed 17040 times ]
18 May 2018 07:41
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Будет нужна программа ODT, вопрос, откуда ее взять.

Можно вспомнить, что на связке К1801ВМ1 и КР1801ВП1-030 построен один из вариантов процессора ДВК, там есть то самое системное ПЗУ 1801РЕ2 с кодом прошивки 000 или 054. В принципе, можно взять его, ODT там заточен как раз под эту связку, вариантов, как соединить К1801ВМ1, КР1801ВП1-030 и ПЗУ почти один, и все они как программная модель с точки зрения кода в ПЗУ выглядят одинаково. Другое дело, что в этом ПЗУ кроме собственно ODT еще есть тесты и загрузчики, коды которых пользуют почти всю программную модель ДВК, а многие, если не почти все составляющие в рассматриваемом изделии отсутствуют.

Дальше, можно найти исходный текст самодельного ODT для К1801ВМ1, проанализировать его и оценить, насколько он может подойти к изделию.

В конце концов, можно найти исходный текст "фирменного" ODT от самой DEC, проанализировать его. Таковой нашелся в приложениях в инструкции к DCT11-EM Evaluation Module (трафик!!), сделанном на основе микросхемы T-11.

После дизассемблирования ДВКшной прошивки 000, ознакомления с другими исходниками, стало понятно, что лучшего варианта, кроме как написать ODT самому, не существует, потому что в ДВК ПЗУ код какой-то корявый и много лишнего, в самодельном ODT тоже много лишнего и неподходящего (хотя, он интересен тем, что написан обожателем БК и всего, что относится к PDP), а DEC-овский вариант вообще написан под другую систему, хоть и с сохранением признаков архитектуры PDP-11. Но предварительное знакомство и анализ были нелишними, получено богатое представление о том, что нужно для системного ПЗУ и ODT, ну и PDP-шным стилем программирования на макроассемблере проникаешься по ходу дела, открываешь для себя интересные приемы и подходы. Это как самостоятельное путешествие, несравнимое с чтением записок других путешественников.


18 May 2018 08:04
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Пока суд да дело, вот начало дизассемблированного ПЗУ ДВК с кодом прошивки 000.
Attachment:
dvkromdisasm.png
dvkromdisasm.png [ 64.84 KiB | Viewed 16951 times ]

При старте процессор читает регистр SEL1 (адрес 177716) и помещает прочитанный старший байт в счетчик комманд, R7, или PC, при этом обнуляя младший байт счетчика. Но прежде, чем перейти к выборке первой команды, процессор устанавливает бит 3 этого же регистра SEL1. Это важный момент в понимании функционирования ВМ1. Микросхема управляет битом 3 SEL1 и при наступлении других событий: прерывание IRQ1, исполнение команды HALT, зависание шины при приеме вектора прерывания и зависание двойное (я их называю сложными зависаниями). То есть, напрашивается вывод, что бит 3 должен управлять подстановкой ПЗУ в адресное пространство, что, собственно, и тянет за собой необходимость реализации такого переключателя внешними по отношению к 1801ВМ1 средствами. Вот тут и начинаются хитрые межмикросхемные увязки, которые не позволяют говорить, что микросхема 1801ВМ1 это законченный процессор. В ДВК и у меня бит 3 SEL1 находится внутри микросхемы 1801ВП1-030, что, в общем-то удобно.

Итак, возвращаясь к тексту ПЗУ. По адресу 160000 находится команда перехода на начало исполнения. Следом идут три вектора, адреса которых жестко прописаны в микрокоде 1801ВМ1: при исполнении команды HALT для новых PC-PSW используется вектор по адресу 160002, следом, по адресам 160006 и 160012 расположены векторы для перехода в случае сложных зависаний, двойного и ошибки при приеме вектора прерывния. Начало исполнения в данном случае находится непосредственно за векторами, хотя ничто не мешает ему быть в любом другом месте.

Исполнение начинается командами установки бита 3, и очистки бита 2 регистра SEL1. Для чего это делается. Процессор управляет битом 3 SEL1, внутри 1801ВП1-030 есть бит 3 и бит 2 SEL1. Бит 3 включает ПЗУ на полный размер, начиная с адреса 160000 (диапазон 160000 .. 172776), бит 2 включает только первые 1kW ПЗУ (диапазон 160000 .. 163776). Кусок ПЗУ 173000 .. 173776 всегда находится в адресном пространстве. Нигде не рассказывается, почему это так и почему такие адреса и размеры. Поразмыслив, я назвал диапазон 160000 .. 163776 ПЗУ для ODT, следующий кусок 164000 .. 172776 ПЗУ с утилитами и тестами, это типа диапазоны, присущие только особенностям 1801ВМ1, а в диапазоне 173000 .. 173776 находится загрузчик, типа стандарта де-факто архитектуры PDP-11.

Так вот, установка бита 3 делается хрен знает зачем, в это место попадаем только с адреса 160000, а это старт по DCLO-ACLO с чтением SEL1 и установкой бита 3, по-другому никак. Очистка бита 2 - это подстановка полного размера ПЗУ, потому что при ресете ВП1-030 этот бит взводит, то есть, бит 3 устанавливается процессором, бит 2 устанавливается ВП1-030, при этом открыты первые 1 кслова ПЗУ, процессор на всякий случай дублирует программно установку бита 3 и стирает взведенный ВП1-030 бит 2, открывая таким образом полный размер ПЗУ.

Дальше инициализируется R6, или SP, ну это святое.

Дальше копируется некий блок кода на предназначенное место. Тут следует отметить, что архитектурой 1801ВМ1 предусмотрено обязательное наличие ОЗУ в ячейках 177674 и 177676. Они используются для хранения вектора из режима RUN, туда сохраняются PC-PSW после IRQ1 или сложных зависонов. 1801ВП1-030 открывает в ОЗУ эту область, и даже чуть более, 177600 .. 177676, всего 32 слова, немного, но достаточно. Назначение - служебное ОЗУ для внутренних нужд ODT. Блок кода, который в эту область копируется, это подпрограмма чтения или записи произвольной ячейки, а находится она там, потому что произвольная ячейка может перекрываться по адресу с ПЗУ, и этот код нужно исполнять при очищенных битах 2 и 3 SEL1.

Дальше инициализируются нулем какие-то ячейки служебного ОЗУ, две из них, я не помню, идентифицировал или нет, третья - некое magic значение, позволяющее программе определить, по какой причине мы свалились в режим HALT (читай в режим исполнения программы в ПЗУ).

Следом идет непонятный мне пассаж. Не могу поймать логику программиста. Регистр R0 очищается, на регистр R1 читается содержимое SEL1. Маской очищаются все биты, кроме младших трех. Назначение бита 2 уже понятно, назначение двух других младших - это чтение состояния дип-свича, который кодируют поведение при старте, типа автозагрузка, сваливание в ODT или еще что-то, всего 4 варианта, есть в справочнике по ДВК, здесь не актуально. Бит 2 уже равен 0. Дальше идет цикл с инкрементом R0 с условием выхода по достижении его значения равным значению R1. Такой хитровывернутый MOV R1, R0. Ну и банальный jmp по таблице в итоге. Который вообще-то по индексу R1 без выпендрежа можно было сделать. Зачем они MOV R1, R0 изобразили в виде цикла - не понятно.

Не буду углубляться в дальнейший разбор результатов дизассемблирования, в принципе, и так понятно, какая часть кода разобрана, по названиям функций, я там нашел всякие функции печати на терминал символа, строк, завершающих фрагментов типа CRCRLF, печати восьмеричных цифр и чисел, еще что-то. Логику работы ODT проявил, правильную работу с SEL1 узнал, что делается по переходам через векторы тоже выяснил, а в целом код не понравился. В общем, выжал пользу по максимуму, остальное забросил. Тесты почти не смотрел, у меня нет таких аппаратных средств, которые там проверяются.


19 May 2018 14:11
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Mixa64 wrote:
Пока суд да дело, вот начало дизассемблированного ПЗУ ДВК с кодом прошивки 000.
Image

А вот здесь вместо неинформативной картинки неплохо было бы сказать, какой программой дизассемблируется ПЗУ ДВК.
В тексте этого тоже нет... :-?

И зачем писать столько бестолковой "воды" типа:
Mixa64 wrote:
Дальше инициализируется R6, или SP, ну это святое.
Все заинтересованные лица здесь и структуру процессора и команды ассемблера знают.

Если дизассемблировали ПЗУ - выложите уже исходник с комментариями и саму прошивку ПЗУ.
А то возникает вполне законное сомнение вот в этом вашем утверждении:
Attachment:
mz64_.gif
mz64_.gif [ 10.62 KiB | Viewed 16920 times ]

_________________
iLavr


20 May 2018 09:06
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Архив с прошивками есть здесь
Про дизасм ПЗУ - тут без энтузиазма, потому что код не очень интересный, некомментированный и пройден процентов на 15. Возвращаться к нему не буду, смысла нет.

UPD.
Нашел файл дизассемблирования прошивки 000. Выкладываю как есть, но материал сырой, делалось для достижения промежуточных целей, если кому интересно - изучайте. Исходник настоящий, компилится MACRO11 и линкуется в бинарник от исходной прошивки не отличающийся.


Attachments:
ROM_000.asm [69.45 KiB]
Downloaded 778 times


Last edited by Mixa64 on 31 May 2018 12:32, edited 4 times in total.

20 May 2018 11:54
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Mixa64 wrote:
Тема ограничена техническими подробностями сабжа и аналогов.

1. Интересовала "техническая подробность" какой программой дизассемблируется ПЗУ ДВК.

2. Прозвучала просьба поделиться "технической подробностью" - выложить исходник с комментариями и саму прошивку ПЗУ.

3. Высказано пожелание к топикстартеру быть менее многословным, и поделиться "техническими подробностями" по п.1 и п.2.

А вот такой ответ в топике:
Mixa64 wrote:
В комментариях настоятельно прошу воздержаться от фраз типа "бестолковая вода", а также выказывать всякие "законные сомнения" и приводить ссылки на материалы не по теме.
Иными словами, чтоб без тенденциозности.
действительно, "незачет" и самая настоящая тенденциозность.

_________________
iLavr


20 May 2018 12:07
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Mixa64 wrote:
Вот эти два кристалла, центры кристаллизации будущего изделия.
Image

Уважаемый Mixa64, будьте столь любезны, покажите пожалуйста также и фото той материальной основы,
на которой будет происходить "кристаллизация" Вашего будущего изделия.
Никогда мне не приходилось макетировать такие корпуса с такими выводами, поэтому Ваш опыт
размещения их на стендах или на каких-либо макетных платах представляет для меня, и, я думаю,
что и для многих других посетителей форума, неподдельный интерес.

Не откажите в возможности почерпнуть из Вашего обширного практического опыта.


P.S. Весьма забавно, но посты ниже напоминают сказ "про унтер-офицерскую вдову, которая сама себя высекла"... :roll:
Attachment:
m64_1.gif
m64_1.gif [ 30.14 KiB | Viewed 16731 times ]
Я никак не мог понять, что же это за персонаж! :o Теперь вижу, кто тут увлекается "подтиранием фекалий"... :wink:

_________________
iLavr


Last edited by Lavr on 27 May 2018 01:29, edited 1 time in total.



20 May 2018 13:44
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Mixa64 wrote:
Lavr, ваша беда в том, что вы сделали предположение и не можете от него отказаться. А со временем оно все более обретает статус факта. Откажитесь от предположения в пользу пустоты, не заполняйте пустоту ничем, ответ придет со временем.

Я никак не могу от этого отказаться! Ибо куда ни глянь - там Ваши словеса и "стенд"! :o
Поверьте, Вы для меня ничего не значите, но этот самый словесный "стенд" ваш - ВЕЗДЕ! :o

Вот я совсем другим делом был занят, но снова наткнулся на Ваш "стенд"!
Attachment:
mv64.gif
mv64.gif [ 18.68 KiB | Viewed 16402 times ]

И везде сценарий совершенно одинаков: слова, слова, слова, фото нет, схем нет - ничего в итоге нет!
Вы себя-то почитайте "каким-то раком", "заполнение - в стиле касания проводочком разрядов по очереди" и т.п.

Одно фото "стенда" или "экстремального и неудобного макета" снимает все вопросы и не требует столько
слов, сколько Вы их уже написали на этом форуме.

Ещё раз убедительно, без ёрничения с неподдельным интересом прошу - покажите, пожалуйста,
этот стенд, экстремальный и неудобный макет, либо любой другой о которых Вы пишете!

И весь вопрос будет с повестки дня снят.

_________________
iLavr


20 May 2018 16:38
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Это из книги Микропроцессоры, справочное пособие для разработчиков судовой РЭА.
Любопытное сочетание правдивых сведений и хм, мягко говоря, домыслов. Ничему из написанного и прочитанного верить нельзя. Так вот, сходу, и не понятно, где тут пурга.


Attachments:
138.jpg
138.jpg [ 152.3 KiB | Viewed 16304 times ]
139.jpg
139.jpg [ 127.73 KiB | Viewed 16304 times ]


Last edited by Mixa64 on 25 May 2018 07:16, edited 2 times in total.

20 May 2018 17:31
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Mixa64 wrote:
И вас прошу тут ничего не комментировать, если что - вопросы в личку.

А вот тут уж извините - форум у нас для всех, и вы - не исключение.
Вопросы можно задавать в топике, и в топике же получать на них ответы.
Но вижу я, как вас ни спрашивай - в ответ одно словоблудие.
Собственно об этом и глаголет латинская фраза: Ex nihilo nihil fit.

Пока больше ничего не скажу, наберитесь терпения, правила форума едины для всех.

Да и вобщем-то все коллеги действуют по типичному сценарию, к примеру, как здесь:
http://www.nedopc.org/forum/viewtopic.php?p=143291#p143291
Фото макета, если людям интересно - ответы на вопросы, схемы, прошивки.
И только Вы предпочитаете "схемы словами" и в ответ на конкретный вопрос - опять же
"слова через слова".

Форум здесь технический, поэтому позволю себе вновь повторить конкретный интересующий
меня на протяжении уже долгого времени технический вопрос
:
Ещё раз убедительно, без ёрничения с неподдельным интересом прошу - покажите, пожалуйста,
этот стенд, экстремальный и неудобный макет, либо любой другой о которых Вы пишете!


Если вам нечего показать - не отвечайте мне, ибо читать пустое словоблудие уже просто тошно.

_________________
iLavr


20 May 2018 18:01
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Так, на чем остановились ... Возвращаемся из программных дебрей в железные. Итак, архитектура микросхемы 1801ВМ1, ее система команд подразумевает, нет, даже не подразумевает, а требует наличия внешних по отношению к этой микросхеме средств, причем вполне определенных. Это:
- Регистр SEL1 с обязательными битами 15..8 (адрес начального пуска) и 3 (подключение ПЗУ в районе 160000). Остальные биты могут использоваться произвольным образом.
- ячейки ПЗУ в районе адреса 160000
- ячейки ОЗУ в верхней области, размером по надобности и условию непересечения с остальными ресурсами, но включающей адреса 177674 и 177676
Перечисленные средства обеспечивают работу процессра в двух режимах, Программа и Пульт (Останов) (или RUN и HALT, кому как нравится). В режиме Пульт на консоли активен ODT, с его помощью можно проделывать простые манипуляции с памятью и исследовать состояние процессора.

Другими словами, сам по себе 1801ВМ1 мало чем примечателен кроме системы команд, а в соответствующем окружении становится Настоящим Процессором.
На этой волне вдохновления и оптимизьма можно попробовать изобразить блок-схему, чтобы потом перейти к схеме принципиальной. Но прежде было бы разумно разобраться с тактированием.

Такта требуют три микросхемы, сам недо-процессор 1801ВМ1, контроллер ОЗУ 1801ВП1-030 (по совместительству приставка-дополнение для 1801ВМ1 до CPU) и UART 1801ВП1-065. (При выборе между UART -035 и -065 почему-то остановился на -065, потому что у -065 есть режим 8-битной телетайпной посылки, у -035 7 бит максимум. Хотя, выбор спорный, но об этом потом как-нибудь). Скорости телетайпа получаются делением тактовой частоты, поэтому для такта -065 вариантов нет, он равен 4608 кГц. Для 1801ВМ1 подгруппа А макс. тактовая составляет 5 МГц. Для такта 1801ВП1-030 у Шахнова приводится рабочий диапазон от 4,2 до 8 МГц, там же есть ее временные диаграммы для тактового периода 125 нс. Конечно, в нищебродском изделии хочется обойтись одним генератором источником синхронизации, поэтому раскладка тактирования будет по производным от 4608 кГц. Здесь простых вариантов особо и нет, долько две частоты, 4608 кГц и 9216 кГц. И вариантов тактирования тоже практически два, тактировать одной частотой или разными, причем второй вариант предлагает 9216 кГц для ВП1-030 в силу ее большей тактовой частоты по спецификации. Вот он-то самым подходящим вариантом и видится. Временная диаграмма цикла обращения к ДОЗУ при такте 9216 кГц в спецификации микросхем памяти (565РУ3 или 565РУ6) укладывается. Совместная же временная диаграмма сигналов ВМ1 и ВП1-030 в цикле шины выглядит гораздо симпатичнее, чем при варианте их тактирования одинаковой частотой, где ВП1-030 просто жуть какая тормозная получается. Когда-то давно я проводил испытания 1801ВМ1 на стенде по-очереди совместно с контроллерами 1801ВП-030 и 1801ВП-037. По оставшимся записям, результат получился таким, что ВМ1 хорошо работает совместно с 1801ВП1-037 на частоте 6 МГц, а 1801ВП1-030 не тянет на 12 МГц. Причем -030 тянула на 10 МГц, это просто запомнилось. Значит, и на 9.2 потянет.

С тактированием разобрались, теперь маленькое предисловие к блок-схеме. У ВП1-030 внутри находятся две относительно независимые части, контроллер ОЗУ и логика управления системным ПЗУ. Контроллер вырабатывает цикл обращения к ОЗУ для адресного диапазона 177600 .. 177676 (те самые нужные процессору ячейки в верхней области) всегда и независимо ни от чего, а вне этого диапазона только при наличии сигнала MSEL. Логика управления системным ПЗУ в адресной фазе цикла шины вырабатывает сигнал LOCK в том случае, если комбинация битов 2, 3 регистра SEL1 и адреса на шине соответствуют условию обращения к ПЗУ в данном цикле. Поэтому при активном LOCK должен происходить цикл обращения к системному ПЗУ вместо обращения к ресурсам по этому адресу. В ДВК разделение обращения сделано на демультиплексоре, строб /DIN при активном LOCK направляется на системное ПЗУ, иначе - в направлении системного /DIN. В литературе также рекламируется этот подход, но, похоже, что книжки просто повторяют решение из ДВК.

Есть альтернативное решение (с оговорками, но для малой системы приемлемо). ПЗУ отображается в область адресов, начиная с 160000 и выше, что соответствует банку памяти 7, и обычный цикл шины в этом диапазоне адресов сопровождается активным шинным сигналом /BS7. В этой области памяти располагаются регистры устройств ввода-вывода, и можно ввести требование, чтобы каждое УВВ всегда использовало сигнал /BS7 при дешифрации обращения к себе. В самом деле, такое требование разумно, экономно и выгодно. В этой системе кроме самодельных УВВ других не будет, поэтому потенциальная проблема, связанная с игнорированием /BS7 каким-либо УВВ, отсутствует. Для подстановки ПЗУ достаточно сделать запрет выработки /BS7 при наличии активного LOCK, а активный LOCK связать с линией /CS ПЗУ (через простой инвертор, простой - потому что куда уж проще).

На самом деле, 4 килослова под УВВ, а это 8-я часть доступного адресного пространства, для маленькой системы выглядит как многовато. Почти все это пространство будет оставаться неиспользуемым. Причем будет не использоваться не просто пространство, а настоящие живые ячейки в уже имеющемся ОЗУ. Поэтому есть смысл уменьшить диапазон, отводимый под УВВ. В этом случае ПЗУ пересекается с ОЗУ, поэтому активный LOCK должен запрещать выработку MSEL. Может случиться так, что ПЗУ будет пересекаться только с ОЗУ, (забегая вперед, а так и будет), но это не отменяет необходимость блокировки ,BS7, потому что для дешифрации УВВ используется небольшое число младших адресных линий, которые не один раз пробегают свой диапазон в адресах ПЗУ.

Остались мелочи, формирователь /DCLO - /ACLO для процессора и буфера для ОЗУ, регистровый буфер на выходе и обычный на входе, для сокращения длины проводников и уменьшения емкости. Потому что предполагается, что общая шина будет без буферизации.


Last edited by Mixa64 on 25 May 2018 06:23, edited 2 times in total.



21 May 2018 02:41
Profile
Doomed

Joined: 25 Aug 2009 07:02
Posts: 470
Location: Москва
Вот такая блок-схема основного модуля нарисовалась. Она не сильно отличается от ядра платы центрального процессора ДВК и от вышеприведенной блок-схемы из книжки, но это и неудивительно. Если в качестве компаньона к 1801ВМ1 брать 1801ВП1-030, то в части программной модели совпадение будет почти полное, различия появляются в вариантах железной реализации схем сопряжения.
Мне кажется, что я нащупал минимальный железный вариант в рамках желаемой программной модели и похожести на PDP-11.


Attachments:
b1.png
b1.png [ 23.38 KiB | Viewed 16303 times ]
21 May 2018 02:53
Profile
Display posts from previous:  Sort by  
This topic is locked, you cannot edit posts or make further replies.   [ 58 posts ]  Go to page 1, 2, 3, 4  Next

Who is online

Users browsing this forum: Google [Bot] and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.