nedoPC-580 (SMP на 5 процессорах КР580ВМ80А)

Публичный форум для http://www.nedopc.org/nedopc

Moderator: Shaos

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

Post by Lavr »

MC68k wrote:зойчем ви такой злой сегодня?
как же так? частота процессора растет а скорость простейшего цикла не растет. прям чудеса :)
Да вот так, уважаемый голуба, оно и происходит... И это чисто эмпирический факт.
А злой - я не злой, а справедливый. Во флейме можно утопить любую тему.
MC68k wrote:не надо мне декомпилированных текстов, как-нибудь сам разберусь.
Ну и нефиг флеймить тогда было, нежный ты наш. У меня действительно несколько исходников Васика,
а я не телепат.
MC68k wrote:по поводу параллельных вычислений - что считать-то будете? а если не для расчетов, а для управления периферией так на то лучше прерывания задействовать и кучу контроллеров навесить и добавить ПДП.
P.S. лучше направьте свою энергию в мирное русло - контроллер клавиатуры.
А страна советов уж 20 лет как померла. "не надо мне" дурацких советов "как-нибудь сам разберусь"
и что считать буду, и что направить и в какое русло... :wink:
Дед: - Спаси и сохрани, укрепи нас и направь, спаси и сохрани, укрепи нас и направь...
Бабка: - Ты, дед, молись об укреплении, а уж направим мы и сами как-нибудь.
PS. Говорят, что эту притчу маршал Неделин рассказал академику Сахарову по испытанию ядерной бомбы... 8)
Last edited by Lavr on 07 Aug 2011 14:23, edited 2 times in total.
User avatar
Shaos
Admin
Posts: 23992
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Shadovv13 wrote:Shaos Сможешь сделать прозрачный разброс по тактам, без использования вайтов!
А то выходит пока один работает остальные ждут. :wink:
Это нам HardWareMan обещал сделать ;)

P.S. Видать придётся мне эмулятор этого дела писать и самому всё кодить...
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Shaos wrote:
Shadovv13 wrote:Shaos Сможешь сделать прозрачный разброс по тактам, без использования вайтов!
А то выходит пока один работает остальные ждут. :wink:
Это нам HardWareMan обещал сделать ;)
А что, Хардыч единственный инженер-схемотехник на этом форуме?
Last edited by HardWareMan on 05 Jan 2014 07:07, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:
Shaos wrote:
Shadovv13 wrote:Shaos Сможешь сделать прозрачный разброс по тактам, без использования вайтов!
А то выходит пока один работает остальные ждут. :wink:
Это нам HardWareMan обещал сделать ;)
А что, Хардыч единственный инженер-схемотехник на этом форуме?
Shaos тоже кое-что здесь обещал:
Shaos wrote:А я наверное построю таки это монстрокомп когда-нибудь...
Пусть только HardWareMan поподробнее изложит свою идею параллельной работы 8080-х:
Видимо увидеть результаты посула мне помешал пресловутый "информационный фильтр", а в будущем - конечная продолжительность жизни... :wink:

А между тем Хардыч свою идею свою идею параллельной работы не только изложил, но и подробно проиллюстритровал эпюрами таймингов.
HardWareMan wrote:Куда уж конкретнее? Давай так, приведи исходные данные или ТЗ в целом (количество процессоров, их тактовая и т.д.).
PS. Да-да... я безусловно понимаю "когда-нибудь..." Ждать молча? Другие варианты реализации не обсуждать?
Last edited by Lavr on 07 Aug 2011 12:16, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Я позволю себе изложить свою точку зрения на проблему, чтобы это не выглядело как базарная перепалка, и не давало поводов для фразы "не ссорьтесь девочки"... :wink:

Конечно, сегодня это может быть не актуальным и даже вызывает вопросы типа, "а что вы собрались на такой системе считать?".
Так вот ответственно говорю, что посчитать серьёзно на "Специалисте" мне довелось и очень много.
Поэтому, возможно, я резко реагирую на VituZz-а и "Орион 128".
"Ориона 128" не было, а "Специалист" считал неделями не выключаясь.
Удивительно, но с постоянством 220В тогда было проще, чем сейчас. :roll:
И поскольку в результатах своих расчётов я был кровно заинтересован, а скажу я, что "Специалист" на Васике-интерпретаторе считал примерно с такой же скоростью, как и историческая "Т3-29", то я использовал все возможности, чтобы ускорить процесс.

Ну и поскольку "Специалист" как раз и был в отличие от "Т3-29" именно такой платформой, где можно было, как говорит MC68k, своей рукой всё делать по месту и невозбранно, то я тогда впервые задумался о многопроцессорности и распараллеливании процессов.
Никакой теоретической основы у меня не было, и на 10 процессоров я не замахивался, а хотел положить в основу "принципы Форда".
Если где-то процесс замедляется - его надо распараллелить.

И максимум, что я себе смог практически представить - это двухпроцессорную систему:
один процессор делает собственно математический расчёт и отдаёт результат другому процессору, который занимается всеми процессами вывода на экран, в то время как первый продолжает молотить расчётную задачу.
Вобщем-то я себе неплохо представил воплощение задачи, как аппаратно, так и программно.
Может быть я это и сделал бы, но IBM не позволила. :D
Если на моей первой IBM-совместимой "Искре-1030" все те же расчёты выглядели едва заметно быстрее и в графике проигрывали "Специалисту", то на 286 20 МГц EGA 640x480 расчет, занимавший на "Специалисте" неделю, пролетал за считанные минуты.
Собственно это и было причиной, почему от "Специалиста", как и от спаянного уже "Ориона-128", я решил на рубеже 1994-1995 годов отказаться.
И в дальнейшем использовал "Специалист" как удобную платформу для решения задач, связанных с аппаратным управлением.

Но желание "пощупать" самодельную многопроцессорную систему с распараллеливанием задачи у меня осталось.
Я этого не сделал - это чисто теоретически мне очень интересно.

Отсюда какой вывод? Может не будем замахиваться на 10-процессорную систему?
Объективно мы не сделаем её никогда.
Может быть - что-то более простое, но реально работающее?
А то основной итог по просмотру всей этой темы - это кто-то делал, кто-то рядом стоял, кто-то показывал пальцем на литературу и что-то похожее...
А конкретного и понятного, а тем паче работающего - ничего так и нет.

Я, конечно не умру от тоски, если ничего не случится, но и на личности беспричинно переходить - так же повода не вижу.
Я и сам это вполне умею. :D
Last edited by Lavr on 07 Aug 2011 12:18, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 23992
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Сдаётся мне что твой 286 был с сопроцессором, потому как такое ускороение можно было получить перейдя от бейсика на 8080 к компилируемой плавающей точке на 286 с сопроцессором 287, нет?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Сдаётся мне что твой 286 был с сопроцессором, потому как такое ускороение можно было получить перейдя от бейсика на 8080 к компилируемой плавающей точке на 286 с сопроцессором 287, нет?
Да, с сопроцессором IIT 287 - я его сразу докупил, т.к. знал что он мне зело нужен...
Хотя двойку сбирал по частям. Сначала материнку, клаву, Ягу-карту и флопп с картой.

А уже к 1997-му нормальный модный корпус "тауэр" купил и Яговый монитор поюзанный слегка.
И винт на 20 Мегов! :roll:
А так года два за совецкой "Электроникой 32 ВТЦ-202" отсидел. :wink:
Вот она гадина больше всего глаза портит... :-?

PS. Впрочем, 286-й тоже не родной IBM был, а, кажется, HARRIS. Хотя эта двойка у меня и сейчас
есть, где-то в стенном шкафу закопана...


PPS. И флопы были ещё 5-дюймовые "Teac"! А карта IBM их не шибко понимать изволила - они на
800, а IBM имела привычку стартовать с 360! Вот где был простор для творчества!
:lol:
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Видать придётся мне эмулятор этого дела писать и самому всё кодить...
Слушай, я вот думаю - а не подойти ли к этому делу с позиций Шурика?
Раз уж мы делаем эту систему just for fun, не предвидя, естественно, никакой
коммерческой выгоды, и заранее мы знаем, что и с 10-ю i8080 мы, пожалуй, не
переплюнем "тройку", а то и "двойку", может имеет смысл положить в основу
однотипные старые компьютеры?
У меня два "Ориона 128" есть, хотя не знаю в каком уже состоянии.
У многих "Спектрумы" есть, и, возможно, не по одному...
Может так сориентироваться по железу?

Делать проект, который видимо будет не совместим по софту ни с чем с нуля,
вряд ли кому покажется интересным...
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Интересная ссылка, как "computer enthusiast Michael J. Mahon has built a parallel computer made out of 17 Apple IIe motherboards."
MC68k - ну ты уж обиду не держи и в крайности не бросайся.
А какое у тебя сложилось мнение?

Если я правильно понял, то изложен принцип работы
Since the Enhanced //e ROM has only $200 bytes available, a new "passive" boot protocol had to be devised. The new ROM code continuously monitors the network for a broadcast BOOTREQ control packet containing the load address and length of the immediately following boot code data. When the boot image has been correctly read from the network, control is passed to its starting address. This passive boot code only needs to read packets from the net, and so occupies just $190 bytes, which comfortably fits in place of the Enhanced //e ROM self-test code at $C600.

The new boot protocol capitalizes on the fact that boot code is sent as a broadcast transaction, so the machines being booted do not need IDs to receive boot code. A page of "second-stage boot" code is added at the front of the slave machine boot image. This code is given control immediately after the boot image is received, and, when enabled by the "GETID daisy chain", it sends a GETID request to the machine that &BOOTed it, making use of the code in the full NadaNet boot image to do so (see the BOOT2 code in the NADA.CRATE listing for details).

The GETID daisy chain functions just as it did in the AppleCrate I. The "first" machine is permanently enabled by connecting its PB2 to ground. AN2 of each machine is connected to PB2 of the "next" machine. The second-stage boot code running in each machine initially sets its AN2. Then it waits until it sees its PB2 go low, enabling it to send its GETID request. When its GETID is successful it drops its AN2, enabling the next machine. Then it clears its video display, writes a banner showing the machine ID, and enters its server loop.
вот этой этажерки из 17 хитро-связанных "Эпплов":
CrateII.jpg
http://craphound.com/images/CrateII.jpg
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 23992
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:Видать придётся мне эмулятор этого дела писать и самому всё кодить...
Слушай, я вот думаю - а не подойти ли к этому делу с позиций Шурика?
Раз уж мы делаем эту систему just for fun, не предвидя, естественно, никакой
коммерческой выгоды, и заранее мы знаем, что и с 10-ю i8080 мы, пожалуй, не
переплюнем "тройку", а то и "двойку", может имеет смысл положить в основу
однотипные старые компьютеры?
У меня два "Ориона 128" есть, хотя не знаю в каком уже состоянии.
У многих "Спектрумы" есть, и, возможно, не по одному...
Может так сориентироваться по железу?

Делать проект, который видимо будет не совместим по софту ни с чем с нуля,
вряд ли кому покажется интересным...
Это тоже можно, но оно скорее для другого топика - который про сеть: viewtopic.php?t=9621
т.к. тут мы вроде как системы с общей памятью обсуждаем - а как ты себе представляешь общую память у нескольких спектрумов или орионов?...
Lavr wrote:Да, с сопроцессором IIT 287 - я его сразу докупил, т.к. знал что он мне зело нужен...
Может тогда начать с зтого? Т.е. с прикручивания самодельного математического сопроцессора и его поддержки в басике? Сопроцессор можно сделать на SX-28 (который делаето до 75 миллионов пиковских команд в секунду). Либо для начала на AVR - чтобы на сях быстро набросать прослойку между внешними ногами и сишной либой...
Lavr wrote:А между тем Хардыч свою идею свою идею параллельной работы не только изложил, но и подробно проиллюстритровал эпюрами таймингов.
Дык он эпюры Z80 продемонстрировал - а оно мне нафиг не упало :)
Мне надо 5-10 совецких 580ВМ80А вместе подружить :roll:
Last edited by Shaos on 07 Aug 2011 20:13, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:тут мы вроде как системы с общей памятью обсуждаем - а как ты себе представляешь общую память у нескольких спектрумов или орионов?...
Lavr wrote:Да, с сопроцессором IIT 287 - я его сразу докупил, т.к. знал что он мне зело нужен...
Может тогда начать с зтого? Т.е. с прикручивания самодельного математического сопроцессора и его поддержки в басике? Сопроцессор можно сделать на SX-28 (который делаето до 75 миллионов пиковских команд в секунду). Либо для начала на AVR - чтобы на сях быстро набросать прослойку между внешними ногами и сишной либой...
С памятью довольно просто я представляю - на одной из плат от памяти просто отключаем стробы чтения и записи. А у обоих плат соединяем для начала шины.
Синхрогенератор работает на одной из плат. На другую - подаём его сигал с нужным нам сдвигом по фазе.
Конечно, различные дополнительные синхронизции и мультиплексирования также понадобятся - но это детали.
А оставшаяся память - может быть теневой страницей.
Да и память, мы решили, - ставим статику, чтоб с таймингами попроще было...
Примерно так я это представляю.

А вот с мат-сопроцессором я тебя несколько не понял...
Я, как и написал, представлял более простым разделить операции с графикой, как и говорили, - через общую область памяти.
Да - мат.сопр. всё ускорит, но... поясни лучше?
И почему басика ты решил начать? Просто для элементарного примера?
User avatar
Shaos
Admin
Posts: 23992
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:
Shaos wrote:тут мы вроде как системы с общей памятью обсуждаем - а как ты себе представляешь общую память у нескольких спектрумов или орионов?...
С памятью довольно просто я представляю - на одной из плат от памяти просто отключаем стробы чтения и записи. А у обоих плат соединяем для начала шины.
Синхрогенератор работает на одной из плат. На другую - подаём его сигал с нужным нам сдвигом по фазе.
Конечно, различные дополнительные синхронизции и мультиплексирования также понадобятся - но это детали.
А оставшаяся память - может быть теневой страницей.
Примерно так я это представляю.
Ну тогда проще с нуля новую схему нагородить чем паяльником лезть в трухлявое старьё...
Lavr wrote: А вот с мат-сопроцессором я тебя несколько не понял...
Я, как и написал, представлял более простым разделить операции с графикой, как и говорили, - через общую область памяти.
Да - мат.сопр. всё ускорит, но... поясни лучше?
Простейший вариант - компьютер через порт(ы) даёт сопроцессору команду на посчитать и ждёт ответа (в любом случае будет быстрее чем на нём самом плавающую точку считать). Чуть более усложнённый вариант - компьютер через порт(ы) даёт сопроцессору команду на посчитать и идёт заниматься другим делом - ответ сопроцессора придёт в кору оса (например через прерывание), что вызовет переключение контекста обратно на задачу, ждущую ответа сопроцесоора. Совсем сложный вариант - процессор через общую память скармливает сопроцессору программу в кодах некой виртуальной машины, чтобы тот её посчитал и выдал результат опять же через общую память - всё это время главный процессор может считать другие процессы (ось, графика и т.д.).
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16676
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Простейший вариант - компьютер через порт(ы) даёт сопроцессору команду на посчитать и ждёт ответа (в любом случае будет быстрее чем на нём самом плавающую точку считать). Чуть более усложнённый вариант - компьютер через порт(ы) даёт сопроцессору команду на посчитать и идёт заниматься другим делом - ответ сопроцессора придёт в кору оса (например через прерывание), что вызовет переключение контекста обратно на задачу, ждущую ответа сопроцесоора. Совсем сложный вариант - процессор через общую память скармливает сопроцессору программу в кодах некой виртуальной машины, чтобы тот её посчитал и выдал результат опять же через общую память - всё это время главный процессор может считать другие процессы (ось, графика и т.д.).
Простейший вариант - когда проц. ждёт ответа не нравится совсем... :(
А вот два других надо обдумать. Меня смущает - как ты понимаешь через порты? Через какие?
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:А так года два за совецкой "Электроникой 32 ВТЦ-202" отсидел. :wink:
Вот она гадина больше всего глаза портит... :-?
Такая же печенька! Только, я ему МЦ-31 воткнул и имел полноценные PAL/SECAM при поддержке RGB... Собсно, вот, он все еще жив. ;)

По теме: давайте определимся с типом памяти, ее объемом и процессором (что-то мне подсказывает, что это Z80, не?). Прошивку предлагаю делать универсальную с ветвлением по номеру процессора. Номер процессора аппаратно задать в порт (скажем, при чтении порта 0FFh).
Last edited by HardWareMan on 05 Jan 2014 07:08, edited 1 time in total.