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

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

Moderator: Shaos

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

Post by Lavr »

То есть, если я правильно понял, симметричная мультипроцессорная система
на К580 (или пусть Z80) не имела известных решений в России.
(За исключением соединения двух "Специалистов" по методу Шурика... :lol:

Хорошо, что я сам не взялся делать такое, хотя представлялось мне довольно
просто - отдельные процессоры со своей памятью и один процессор сверху,
с программой супервизором, который всё организует и распаралелит. Был
только один сложный вопрос - кто мне ОСь напишет...)
Но
Shaos wrote:Многие структуры и решения для такой системы уже давно сложились и продумались в моей голове - еще с десяток лет назад
Может поделишься мыслями, уважаемый? :wink:
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

Супервизор не обязательно выделять, это как бы больше в задачи ОСи входит.
Из достаточного: монопольная память на каждый проц в одном окне проецирования + общая память в другом окне проецирования. Теоретически можно использовать для любого количества процессоров, но с увеличением будет падение эффективности использования общей памяти, причем, навскидку - в геометрической прогрессии.
Подразумеваем, что видеоконтроллера нет, или он зацеплен на монопольную память одного из процессоров.
Можно сделать и полностью общее поле памяти, но тогда частота обращения к оной будет кратна количеству процессоров, при этом неизбежны конфликты на шине, что отрицательно скажется на пиковой производительности как каждого процессора, так и системы в целом.

Реализаций симметричных систем на 580 и z80 не встречал.
Сам делал некое подобие на mcs51 с выделенным арбитром и связью по последовательной шине. Задачка была специфическая по входным данным.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

2_jdigreze

В теории я тоже неплохо всё представляю и книжки вумные на этот повод читал. :wink:
Но взглянуть на что-то "живое", покопаться в нём - это обычно стократ
полезнее, на мой взгляд...
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

Lavr wrote:Но взглянуть на что-то "живое", покопаться в нём - это обычно стократ полезнее, на мой взгляд...
Согласен! Я пока свое чудо-юдо о 4-х процах не собрал, тоже много чего недопонимал. Да и сейчас в принципе не специалист по многопроцессорности.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Я в своем SpecSVGA юзаю быструю статику. Она на 1/4 времени занята синхрогенератором. Т.е., 1/4 времени такта процессора память ему недоступна, но учитывая, что в эту часть времени оно ему и не надо, то он даже и не замечает. Я думаю, что используя данную технологию я могу зацепить 2 ВМ80 на одну память с абсолютным прозрачным арбитражем. Если увеличить скорость ОЗУ в 2 раза а такты процессоров сместить по фазе - то 4 процессора. ;) Да, я такой. :3
Чисто теоретически. Если взять шлюзовый сегмент в 64КБ (W24512-15), у нее время доступа 15нс, но можно удвоить для совместимости. Т.е. 30нс. Это означает примерно 33МГц. Если запустить ВМ80 на 2,5МГц (как бы ему больше и не осилить), то 2 проца это 5МГц, 4 проца это 10МГц, а 8 процов - это 20МГц. 20МГц это 50нс, что длиннее наших 30 с запасом. В итоге, делаем циклогенератор так, чтобы F2 у каждого процессора был строго в своей фазе (20МГц разделить на 8 фаз), а ОЗУ разрешать (гейтить) к каждому процессору на переднем фронте F2 с учетом его RD/WR (т.е., когда F2 0=>12, ОЗУ должно уже устаканить свой адрес и быть готово к обращению). Все, каждый процессор будет работать независимо, на своей частоте и не мешать другим (ну кроме содержимого ОЗУ). Останется только одному из процессоров подсунуть буткод и вывесить сбросы всех процов на регистр контроля. Хотя, если у каждого из процессоров сделать выделенный порт статуса, откуда он мог бы считать свой номер, то буткод мог бы быть общим в 0, и первым делом считывал бы свой номер а потом согласно номеру прыгал бы на свою ветку. Так-то! Дискасс!
Last edited by HardWareMan on 05 Jan 2014 07:12, edited 2 times in total.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:Да, я такой. :3 :wink:
Да ты прям просто маладесс! Но как говорит один мой знакомый телемастер:
и мы люди неглупые, и мы книжки читаем, и мы знаем, как троллейбус работает,
одного не поймём - как бензин по проводам течёт... :wink:
И чем у тебя 4 процессора управляются? ОСь какая? Или 4 монитора от "Специалиста" справятся?
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:
HardWareMan wrote:Да, я такой. :3 :wink:
Да ты прям просто маладесс! Но как говорит один мой знакомый телемастер:
и мы люди неглупые, и мы книжки читаем, и мы знаем, как троллейбус работает,
одного не поймём - как бензин по проводам течёт... :wink:
И чем у тебя 4 процессора управляются? ОСь какая? Или 4 монитора от "Специалиста" справятся?
Ну я без сарказма говорил. Я просто описал возможный арбитраж памяти, который исключает конфликты и такты ожидания на шине. Уверен, что и для Z80 можно сделать то же самое. Только изза его 2хфронтовом обращении количество процессоров наверное будет меньшим для той же по производительности памяти.
Last edited by HardWareMan on 05 Jan 2014 07:13, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:Ну я без сарказма говорил.
И я без сарказма. Варианты схемотехники в книжках приводятся. В этом проблем
сильных вроде как нет. Но как ты задачу распараллелишь программно -
вот что интересно?!
И Шаос молчит что-то о своих древних задумках...

PS.
HardWareMan wrote:Если запустить ВМ80 на 2,5МГц (как бы ему больше и не осилить)
На 3,5МГц он пахал не чихая в "Корвете". В керамике (военная приёмка)
были сведения и до 4МГц его гнали. Дело в теплоотводе...
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:PS.
HardWareMan wrote:Если запустить ВМ80 на 2,5МГц (как бы ему больше и не осилить)
На 3,5МГц он пахал не чихая в "Корвете". В керамике (военная приёмка)
были сведения и до 4МГц его гнали. Дело в теплоотводе...
Мы говорим про экземпляры для простых смертных, не?
Last edited by HardWareMan on 05 Jan 2014 07:13, edited 1 time in total.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:Мы говорим про экземпляры для простых смертных, не?
Все микросхемы без буквы "К" - военной приемки. Посмотри - мож и у тебя
такие микрухи валяются. "К" - признак ширпотреба... Да:3 :wink:

Но это не сподвигает нас к распараллеливанию задач...
Last edited by Lavr on 23 Feb 2011 22:47, edited 1 time in total.
User avatar
Shaos
Admin
Posts: 24081
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

ну для круглого счёта можно ведь и 10 процов забабахать ;)

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

Post by Lavr »

Shaos wrote:а управлять ими будет просто
Ну поскольку наблюдаю за тобой устойчивую манеру облекать мысли в коды,
рассказал бы что-нибуть на простом примере... :wink:
(Имеем в виду 580 и Z80 где встроенных механизмов нет)
User avatar
Shaos
Admin
Posts: 24081
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

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

Post by Lavr »

Shaos wrote:можно сымитировать любые способы межпроцессного взаимодействия
Ну давай что-нибуть простое рассмотрим, если есть. Я такого опыта просто
не имею - но интересно!
Тем более - сколько лет тема кисла... :wink:

2_HardWareMan

А может поставить в твоём "Спеце" Z80 и К580 рядом? Это тебе схемотехники
не испортит - а тут попробуем мультипроцессорный софт?
Last edited by Lavr on 24 Feb 2011 00:09, edited 1 time in total.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Lavr wrote:2_HardWareMan
А может поставить в твоём "Спеце" Z80 и К580 рядом? Это тебе схемотехники не испортит - а тут попробуем пультипроцессорный софт?
Если бы не синхрогенератор - то легко. Хотя, чисто теоретически, я могу сдвинуть ВМ80 во 3/4, где у Z80 нет дел. Тогда можно и одновременно. :3 Т.е., у памяти 4 слота, 1 для синхрогенератора, 1 для ВМ80 (у него все циклы одинаковые) и 2 для Z80 (из-за его особенности хавать опкод и данные по разным фронтам).
Касаемо мультипроцессорного кода я тебе скажу, что опыт имеется. На Сеге. :3
Last edited by HardWareMan on 05 Jan 2014 07:13, edited 1 time in total.