Двухпроцессорная система на микропроцессорах Intel 8080.

8-битные микроконтроллеры и микропроцессоры от Intel и их клоны, а также компьютеры на них построенные

Moderator: Shaos

vinxru
Retired
Posts: 587
Joined: 27 Mar 2013 04:55
Location: 62.192.229.16

Post by vinxru »

Я вот о чем подумал, говоря о двух тактах.

Это Z80

Image

Image
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 74F786 4-битный асинхронный арбитр шины

Post by Lavr »

Lavr wrote: 06 Dec 2012 17:54 решение для меня просто необычно - они применили арбитр шины 74F786
Я у себя на диске наткнулся на материал по этому самому 74F786 4-битному асинхронному арбитру шины и перечитал его чтобы напомнить самому себе.

Ничего сложного не увидел:
74F786.PNG
/EN - это просто её включить.

А дальше на каждый вход /BRх от каждого из 4-х процессоров подать обращение к памяти (/RD ИЛИ /WR).
Кто первый пришел того и тапки: выдаст его /BGх активный, остальные /BGу - пассивные и должны тормознуть свои процессоры по входам READY.

Следующий в приоритете тот процессор, который пришел следом за этим первым /BRх и т.д.

Я подумал, что внутри 74F786 должна быть довольно простая логика, но смущала одна фраза:
"Если запросы пришли одновременно, приоритет одного из них выбирается случайно." :-?

Но логика и правда, весьма не сложна оказалась:
74F786 4-bit asynchronous bus arbiter.PNG
А всё остальное между процессорами следует сорганизовать ручками, как это нарисовано вот здесь:
Двухпроцессорная система на микропроцессорах Intel 8080.

Я и сам посмотрел... :wink: честно говоря, на мой взгляд, можно сделать проще...
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 74F786 4-битный асинхронный арбитр шины

Post by Lavr »

.
Ссылка вот отсюда: Re: nedoPC-580 (SMP на 5 процессорах КР580ВМ80А)
oldlazycat wrote: 15 Apr 2023 02:08Ну, а в железе, в железе-то воплотили?!
Shaos wrote: 15 Apr 2023 02:38Куда уж - Лавр всё в протэусе крутит, а я - пока в голове :mrgreen:
А у тебя в голове что-нибудь простенькое накрутилось в кодах i8080 или z80 за эти годы? :roll:

Я подумал, что я реально смогу "нарисовать" эту 74F786 в Proteus, раз уж есть её кишки, и хоть одну 4-х (или 2-х-процессорную) систему запустим чисто из интересу? :wink:

А то смотри, какая засада получается: поиск ссылается в основном на нас: :esmile:
multi-i8080.png
А мы, получается, так и ниасилили ничего, хотя вроде как всё продумали в деталях... :-?

Я бы тебя ни о чём не спрашивал, но просто то, чего я хотел, эта система сделать не сможет.
А другие варианты я и не продумывал со времён этого топика.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re:580ВГ18(8218)_контроллер системной шины

Post by Lavr »

VituZz wrote: 06 Dec 2012 20:30А чем 580ВГ18 не подходит для этой цели?
Нашел я даташит на зарубежный аналог 580ВГ18 - i8218.
8218_580ВГ18.pdf
Почитал я его внимательно, другие материалы почитал, и не понравился он мне, хотя бы потому, что, насколько я понял, на каждый i8080 он нужен отдельный и свой.
580BГ18.PNG
Да и в Proteus его модели у нас нет. :-?

Так что попробую нарисовать в Proteus эту 74F786 и просто сделаю систему на двух z80 скорее всего, чтобы проще задействовать пространство портов для обмена между процессорами.

В качестве ПО просто дам им для начала две простые, но разные задачи.
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 74F786 4-битный асинхронный арбитр шины

Post by Lavr »

Lavr wrote: 01 Nov 2026 16:16 ...я реально смогу "нарисовать" эту 74F786 в Proteus, раз уж есть её кишки, ...
Ну вот... пустую "коробку" для 74F786 в Proteus я "нарисовал". :wink:
74F786_P.PNG
Завтра, надеюсь, вправлю ей "кишки"... :lol:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
FizikS
Doomed
Posts: 367
Joined: 11 Oct 2018 00:52
Location: г. Клинцы, Брянская обл.

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by FizikS »

Теоретически, раз "потрошки" известны, можно "расширить" схему и на большее количество процессоров. Или придумать схему каскадирования непосредственно микросхем 74F786.
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by Lavr »

FizikS wrote: 02 Nov 2026 23:12 Теоретически, раз "потрошки" известны, можно "расширить" схему и на большее количество процессоров.
Я, честно говоря, думаю её чуть позже "кастрировать" всего до двух :lol: , ибо ещё не придумал, что и двум-то делать... :wink:
FizikS wrote: 02 Nov 2026 23:12Или придумать схему каскадирования непосредственно микросхем 74F786.
А тут за нас подумали уже: для этого есть вывод /EN.
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: 74F786 4-битный асинхронный арбитр шины

Post by Lavr »

Lavr wrote: 01 Nov 2026 16:16 .
Я подумал, что я реально смогу "нарисовать" эту 74F786 в Proteus, раз уж есть её кишки, ... :wink:
Я не стал откладывать всё в долгий ящик и "нарисовал" эту самую 74F786, благо сегодня выходной. :mrgreen:
74F786-2.png
Но я не только "нарисовал", но и скомпилировал модель, протестировал её и выложил там, где мы модели Proteus выкладываем:
http://www.nedopc.org/forum/viewtopic.php?p=186047#p186047

А здесь, я думаю, надо дополнительно выложить datasheet , ибо там он не поместился.
74F786 4-bit asynchronous bus arbiter.pdf
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by Lavr »

Lavr wrote: 02 Nov 2026 15:57 Так что попробую нарисовать в Proteus эту 74F786 и просто сделаю систему на двух z80 скорее всего, чтобы проще задействовать пространство портов для обмена между процессорами.

В качестве ПО просто дам им для начала две простые, но разные задачи.
Собственно, я так и сделал:
Взял свой рабочий проект, где исследовал возможность реализации RST7 на 8-ми резисторах,
вставил в него арбитр 74F786 и методом "copy-past" добавил второй процессор.

Но тут и случилось то, что меня изначально смущало...
Lavr wrote: 01 Nov 2026 15:16 Я подумал, что внутри 74F786 должна быть довольно простая логика, но смущала одна фраза:
"Если запросы пришли одновременно, приоритет одного из них выбирается случайно." :-?
В цифровой системе моделирования запросы приходят СТРОГО одновременно! :roll:
И тут арбитр 74F786 начнает глючить... модель выпадает по достижению минимального шага. :(

74F786 и в реальной жизни так себя ведёт. Когда я искал на неё разные материалы, попадалась статья:
"Metastability tests for the 74F786 – a 4-input asynchronous bus arbiter"
В ней подобную ситуацию упоминают.

Я не стал уменьшать шаг, а просто самым простым образом сдвинул по времени второй процессор, сделав его
асинхронным по отношению к первому. :wink:
2CPU-1.png

 СХЕМА КРУПНО
i8080_74F786_2.png

Увеличить
Lavr wrote: 01 Nov 2026 15:16...честно говоря, на мой взгляд, можно сделать проще...
Проще - я хотел избавиться от трёх шинных буферов для каждого процессора, и тормозить их не по READY, а по HOLD, в этом случае процессор сам переводит шины в высокоимпедансное состояние.
Но это решение "не взлетело" простыми средствами, поскольку по READY остановка происходит мгновенно, а по HOLD процессор дорабатывает текущую команду, поэтому синхронизация усложняется.

Но над этой идеей, возможно, ещё следует подумать...

Единственное, я дал каждому процессору больше времени обращения к памяти. Начинается доступ по SYNC, заканчивается по заднему фронту /RD или /WR. Ну надо же дать шанс корректно сработать всем дешифраторам! :lol:

Выкладываю ниже проект так, как он сейчас работает.
74F786_i8080.zip
Процессоры начинают выполнять одну и ту же программу одновременно, каждый идентифицирует себя и уходит дальше выполнять конкретно свою программу.
Первый - молотит в порт вывода 55Н...0ААН, второй - гоняет по кругу зелёный сегмент в индикаторе.
Чисто визуально различимые задачи без особого смысла. :-?
Первый - реагирует на нажатия двух подписанных кнопок. Второму приделывать этот функционал я поленился. :-?

Самый тяжкий момент аппаратно был там, где процессоры различают себя - очень тонкие тайминги. :evil:
Этот момент хорошо иллюстрируют по два индикатора шины данных для каждого процессора внизу схемы, если включить частоту задающего генератора 1...2 Гц.

Четыре процессора задействовать можно по образу и подобию этого проекта. Я специально сделал всё на большом листе.

Мультипроцессорная система подана - извольте кушОть! :ebiggrin:
You do not have the required permissions to view the files attached to this post.
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by Lavr »

Lavr wrote: 01 Nov 2026 15:16...логика и правда, весьма не сложна оказалась:
74F786 4-bit asynchronous bus arbiter

А всё остальное между процессорами следует сорганизовать ручками, как это нарисовано вот здесь:
Двухпроцессорная система на микропроцессорах Intel 8080.
Мне не понравилось в схеме прототипа, что /CS, а с ним /RD или /WR поступают на микросхемы памяти одновременно, поэтому я и сделал вот так:
Lavr wrote: 07 Nov 2026 04:32...я дал каждому процессору больше времени обращения к памяти. Начинается доступ по SYNC, заканчивается по заднему фронту /RD или /WR. Ну надо же дать шанс корректно сработать всем дешифраторам! :lol:
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by Lavr »

Lavr wrote: 07 Nov 2026 04:32Выкладываю ниже проект так, как он сейчас работает.
74F786_i8080.zip
В архиве две динамических библиотеки: x80.dll и z80.dll. Второй файл просто переименованный x80.dll .
У меня никак не вытанцовывалась по началу вот эта ситуация:
Lavr wrote: 07 Nov 2026 04:32Процессоры начинают выполнять одну и ту же программу одновременно, каждый идентифицирует себя и уходит дальше выполнять конкретно свою программу.
Процессоры работали ну просто как приклеенные... :-?
Я подумал, было, что, возможно, наша модель x80.dll "не понимает", что два процессора разных... но в итоге это оказалось не так. :kruto:

Тем более, что в прототипе процессоры сразу развели в разные области памяти, принудительно выставив первому "0" по А12, а второму - "1". При этом сами же подчеркнули, что трюк чисто демонстрационный. :roll:

Мне же показалось, что когда процессоры работают в общем пространстве памяти, каждый должен уметь идентифицировать себя и, в зависимости от этого, исполнять или не исполнять какой-то код.
Вот поэтому и...
Lavr wrote: 07 Nov 2026 04:32Самый тяжкий момент аппаратно был там, где процессоры различают себя - очень тонкие тайминги. :evil:
Этот момент хорошо иллюстрируют по два индикатора шины данных для каждого процессора внизу схемы, если включить частоту задающего генератора 1...2 Гц.
Когда подробно посмотрел медленно, то понял в чём трабла, а то уж хотел пошаговое прохождение приделать... :lol:
iLavr
User avatar
Lavr
Supreme God
Posts: 17155
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Двухпроцессорная система на микропроцессорах Intel 8080

Post by Lavr »

Lavr wrote: 06 Dec 2012 17:54В процессе просеивания частым бреднем гугля сети, нашел я и ещё один весьма интересный для меня материал:
Двухпроцессорная система на микропроцессорах Intel 8080.

Честно говоря, это первая реальная схема такого плана, которую я вижу...
После того, как на двух процессорах Intel 8080 система заработала, мне снова, как и в начале топика, стало очень интересно: а делали ли на Intel 8080 мультипроцессорные системы в принципе? :roll:
Как-то поиски не балуют ни описанием, ни схемами, ни упоминанием таких систем... :-?

Но одну ссылку я всё же, поднатужившись, нашел:
A MULTIPROCESSOR MICROCOMPUTER FOR PROCESS CONTROL
Abstract
One of the new trends of computer process control is the distributed control using microcomputers. There are two alternatives of the distributed organization: the coordinated and the hierarchical one. Our object was to develop a multiprocessor microcomputer which can be configured and programmed as an intelligent control station or dispatcher center in a distributed hierarchical process control system. The nucleus of the system is a universal real-time multitask monitor. One CPU provides the monitor functions to simplify the organization. Each CPU has its own RAM and ROM memory. The multiprocessor system has a common memory to provide the communication of programs. The micromonitor can solve synchronization and timing problems by handling events, resources and a RT clock with a resolving power of 10 ms. The microcomputer was constructed from Intel 8080 CPU-s and LSI chips of the with 2 to 4 CPU-s; the minimum-size micromonitor occupies 2 Kbytes ROM.
Источник 1979 года, но жадно почитать его не дают... :-?
iLavr
User avatar
Black_Cat
Doomed
Posts: 652
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by Black_Cat »

К слову, 4х процессрорный Спектрум как концепция Polyhedron существует уже лет 30, а в железе реализован ZX-Poly уже как лет 15 :) ... правда процессы там весьма специфические - обслуживание пиксельных цветовых плоскостей :)
Last edited by Black_Cat on 09 Nov 2026 23:06, edited 1 time in total.
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.
User avatar
Black_Cat
Doomed
Posts: 652
Joined: 23 Nov 2007 15:53
Location: Saint Petersburg, Russia

Re: Двухпроцессорная система на микропроцессорах Intel 8080.

Post by Black_Cat »

Black_Cat wrote: 09 Nov 2026 17:06 К слову, 4х процессрорный Спектрум как концепция Polyhedron существует уже лет 30, а в железе реализован ZX-Poly уже как лет 15 :) ... правда процессы там весьма специфические - обслуживание пиксельных цветовых плоскостей :)
"Очень трудно найти чёрную кошку в тёмной комнате... особенно, если её там нет.", "Forever!". :wink:
zx.clan.su - Soviet Union ZX Spectrum Community - форум посвящённый развитию Спека.