- Несколько процессоров КР1801ВМ1 - как увязать?
-
? Nicos@ - 14.02.2018 15:58
Вопрос, собственно, в заголовке. Как известно в одну микропроцессорную систему можно поставить до 4 процессоров 1801. Интересует именно ВМ1. Как их увязать? С PA0, PA1 -понятно. На обоих +5В - это мастер. Для остальных комбинация +5В и 0. Линии AD, INIT, DIN, DOUT, DCLO, ACLO, CLC общие для всех. SEL1, SEL2 - для каждого свой. IRQ1-3, VIRQ - по желанию(???) Не понятно с RPLY, SYNC, BSY, WTBT. Они тоже параллельно подключаются друг к другу? И что получается - один процессор для другого - устройство ПДП? И как ПДП надо соединять DMR, DMGI, SASK, IAKO, DMGO каждого проца?
В какой-то книге прочитал, что производительность системы на 1801 вырастет не очень на много - это ложь и правда?
-
? gid - 14.02.2018 16:54
Соединять всё как обычно.
Все общие сигналы параллельно.
IAKO IAKI - в цепочку, соответственно своей схемы.
Там автоматически процессор с адресом PA0, PA1 == {0, 0} становится ведущим, а остальные - ведомыми (аппаратно), поэтому никаких конфликтов на шине не будет.
Производительность вообще не вырастет, может даже и упадёт.
подробнее узнать можно где-то в недрах этой темы http://zx-pk.ru/threads/23978-tsifrovaya-arkheologiya-1801-i-vse-vse-vse.html
Там тоже этим вопросом народ озадачен был.
-
? TheGWBV@ - 14.02.2018 18:39
РОНов в общей сумме точно станет больше... Одно ЦПУ считает свое и хранит результат в своем РОНе, который доступен другому процу через общее АП, или передает результат другому процу через общее АП "напрямую" в его РОН.
Наверное, если каждый проц что-то там про себя вычисляет, используя только свои РОН, то производительность системы должна вырасти...
-
? gid - 14.02.2018 19:05
РОНы не выведены в общее АП, поэтому - нет, R0 одного процессора не доступно из другого.
¤
Я тут забыл добавить, что DMGI DMGO процессоров тоже надо соединять в цепочку, чтобы делать арбитраж предоставления и захвата шины, а цепочки IAKI IAKO у каждого процессора можно выстраивать свои, чтобы например несколько 1801ВП1-065 генерировали прерывания каждый своему процессору.
¤
Ещё, где-то когда-то на том же zx-pk.ru выкладывали схему устройства с двумя 1801ВМ1. Я этой темой не интересуюсь, поэтому не запомнил даже, в каком разделе и в какой теме её выложили.
¤
И там такое дело, пока один процессор работает, остальные фактически простаивают, т.к. ждут, когда освободится шина, чтобы прочитать из памяти очередную инструкцию, чтобы выполнить её и снова ждать, пока освободится шина, чтобы прочитать очередную инструкцию и т.д. Сигнал SYNC один на всех, а без него цикл обмена на шине не постоишь.
-
? TheGWBV@ - 14.02.2018 21:49
GID, спасибо! Нафантазировала :) А фантазии выросли из этого http://forum.maxiol.com/index.php?s=3e831f661b5e1d4827f0e7400f967ddc&act=Attach&type=post&id=6341
см. Таблицу 2.4 - через SEL0 и SEL1 процы могут передавать друг другу результаты вычислений...
-
? Vslav - 14.02.2018 22:20
>>несколько 1801ВП1-065 генерировали прерывания каждый своему процессору
Для 1801ВМ1 только ведомый процессор обрабатывает вход VIRQ.
-
? Vslav - 14.02.2018 22:22
Опечатался - только ВЕДУЩИЙ (N=0) процессор обрабатывает VIRQ.
PS. Я сейчас как раз платку с двумя ВМ1 паяю, посмотрим какая там производительность.
-
? gid - 14.02.2018 23:05
[через SEL0 и SEL1 процы могут передавать друг другу результаты вычислений...]
Они могут делать это через любую доступную ячейку памяти, т.к. сидят в одном адресном пространстве.
¤
[только ВЕДУЩИЙ (N=0) процессор обрабатывает VIRQ.]
А ведь в натуре. Чё-то я сглупил. Адресное пространство у них общее, и векторы одни и те же на всех, поэтому обработка векторных прерываний всеми процами просто бессмысленна.
Vslav, а можно это как-то отразить в потихоньку создаваемой документации? Сделать специальный параграф, в котором будут описаны нюансы мультипроцессорности.
¤
Тогда как-то смысл в такой многопроцессорности становится ещё более туманным.
А если ещё и ПДП может делать только ведущий, то тогда второй процессор будет просто ненужным балластом, тормозить работу первого.
-
? Vslav - 15.02.2018 14:04
Хорошо, я напишу параграф, посвященный многопроцессорности. На самом деле в процессоре не очень много зависимостей от PA0:PA1.
-
? nicos@ - 15.02.2018 14:05
Спасибо, вразумили! По производительности - если читать книгу 4 Микро-ЭВМ (Управляющие системы "Электроника НЦ"), то на стр 31 написано так: "Одновременно данные табл. 1.4 и 1.5 совместно иллюстрируют низкую эффективность даже двухпроцессорной конфигурации для набора К1801". Похоже в промышленном варианте нигде даже двухпроцессорного модуля никогда не было.
-
? Vslav - 15.02.2018 14:35
>>совместно иллюстрируют низкую эффективность
Смотря какая задача. Если там военная математика с DSP и кучей аппаратных умножений на ВМ1Г, то может быть и эффективно.
-
? Дмитрий - 16.02.2018 09:22
А насколько реально увидеть прототип БКшки с двумя/тремя процами? И можно ли сделать схемотехнически так, чтобы они были "ядрами" одного процессора, пусть и разнесенными по разным корпусам? Или они объединяются только так (как описано выше) и никак иначе?
-
? a214 - 28.02.2018 19:50
... на шине AD параллельное включение одинаковых ВМ1 бессмысленно - естественно нужен диспетчер многопроцессорности :)
В едином (однокристальном) поле ОЗУ многопроцессорность бессмысленна и естественно что будет даже медленней чем с 1 процессором, но ... учитывайте время разработки ВМ1, 64к в одной микросхеме не было - было 16к х 4банка памяти к каждому из которых можно было сделать НЕЗАВИСИМЫЙ доступ через диспетчер памяти (диспетчер многопроцессорности) ... ведущий и три ведомых процессора могли-бы выполнять подпрограммы параллельно каждый в своём сегменте ОЗУ с передачей данных через общую область-регистры.
- << Форум