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

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

Moderator: Shaos

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

Post by Lavr »

Shaos wrote:и всё-таки твой CEDAR в этом конкретном топике - скорее оффтоп :roll:
у него из процов только Z80 и тот не 100% сэмулён...
Ну подскажи, где Z80 на 100% сэмулён? Я с удовольствием попробую!

Это не оффтоп - я предлагаю от разговоров перейти к моделям на конкретной платформе.
Но готов выслушать и другие предложения...

Иначе практически в этой ветке есть только рассчет железки Хардычем,
сделанный тоже больше года назад.
Расчет всем понравился - вот я и предлагаю потихоньку начать моделировать схему...
В процессе будем наглядно утрясать все решения. Это конкретно - и сразу станут видны
достоинства н недостатки тех или иных предрожений.

На CEDAR-е свет клином не сошелся, но в "Протезусе", к примеру, моделей
процессоров Z80 и i8080 - нет.
А в других симуляторах и вовсе никаких процев нет...
iLavr
User avatar
Shaos
Admin
Posts: 24001
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Логику от Хардыча сэмулить можно в чём угодно - а дальше?
Симуляция этой логики "в лоб" бесполезна без 100% детальной модели процессора!
Поэтому намного проще и логичнее не симулировать систему на уровне гейтов, а эмулировать более абстрактно - типа перехватывать обращения к памяти процессороа A и менять соответствующие байты в памяти процессора Б...
Либо сразу паять живую железяку...

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

Post by Lavr »

Shaos wrote:Логику от Хардыча сэмулить можно в чём угодно - а дальше?
Симуляция этой логики "в лоб" бесполезна без 100% детальной модели процессора!
Поэтому намного проще и логичнее не симулировать систему на уровне гейтов, а эмулировать более абстрактно - типа перехватывать обращения к памяти процессороа A и менять соответствующие байты в памяти процессора Б...

P.S. Про модель Z80 в CEDAR уже писали в другой ветке - регенерация у него не работает, и я подозреваю что не только она одна...
Во-первых в чём угодно нет процессоров, а аппаратную модель надо совмещать
с программой, где у нас конь тоже не валялся!

Во-вторых регенерация Z80 нам никаким боком нам не нужна, при наличии
быстрого статического ОЗУ - с чем все согласились...
Да сам-то ты проверил регенерацию? Я - тоже нет... Мало ли что говорят... :wink:

В-третьих, обратимся к старту топика: "Задумали мы тут с тов. Шаосом,
многопроцессурную систем на NedoPC-580-M.
"
Там и далее идёт речь о конкретной системе, и никто не заикался "эмулировать
более абстрактно
".
Я лично предпочитаю конкретный язык схем и программ. Абстракции здесь
на 19 уже страницах, на мой взгляд, - более чем предостаточно! :-?


PS. Паять живую железяку по "абстракциям" ещё никто не пробовал.
Да и некогда нам всем паять во главе с тобой.
Смоделировать - единственный практический выход на мой взгляд.
Смоделировать - на уровне схем и программ...
iLavr
User avatar
Shaos
Admin
Posts: 24001
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Ещё раз - смоделировать систему, в которой несколько древних процессоров разнесённых по времени в пределах одного такта - НЕВОЗМОЖНО...

P.S. ...за разумное время разумными силами либо с помощью доступных программных продуктов с разумной ценой...
Last edited by Shaos on 12 Aug 2012 11:07, edited 1 time in total.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Ещё раз - смоделировать систему, в которой несколько древних процессоров разнесённых по времени в пределах одного такта - НЕВОЗМОЖНО...
Во-первых - голословно... Never Say Never Again.
Во-вторых - ну и что такого, что "разнесённых по времени в пределах одного такта"?
Тактируются-то они от одного задающего...

Батенька, да не торопись же со мной спорить... :wink:
Я ж тоже только хорошего тут хочу. Думай прежде чем написать! :roll:

Если синхронизация у процессоров разная - это как раз труднее смоделировать.
Хотя я моделировал в "Протезусе" систему на 2-х PIC-ах, поэтому немного знаю,
о чем говорю...

А то, что процессоры "древние", они что от старости перестали работать по тактам? :o
Синхронные системы моделируются как раз легче, чем паяются, поскольку модели
учитывают лишь задержки распространения, а не особенности переходных процессов...

Да я и не настаиваю упрямо... Предлагай сам - "моделируем вот здесь и вот так,
а программируем - вот эдак и вот это...
"
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Lavr wrote:Асабливая здесь неприятность, что прототип - "Специалист" - система сильно связанная. К примеру, опрос клавиатуры жестко завязан на процессор и без него даже скан-код не формируется. А многопроцессорные машины в теории - слабосвязанные. То есть, имеем налицо все проблемы Виндавоза с устройствами ВВ - они общие для всех процессоров.
догмы и стереотипы пораждают заблуждения. если надо всякие ништяки вроде мышей, фоновой печати и даже дисковых операций - запилите уже прерывания на спец и будет вам счастье. на сраном спектруме умудрялись играть музыку, мигать спрайтами и подгружать данные с флопа "одновременно".
истинно параллельные задачи это обсчет хэшей(биткоин, например) и моделирование процессов. тут и распарралелить достаточно просто.
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

На CEDAR-е свет клином не сошелся, но в "Протезусе", к примеру, моделей
процессоров Z80 и i8080 - нет.
А в других симуляторах и вовсе никаких процев нет...
А у меня есть (в proteuse) 2шт z80 и перефирия....
А вот чем компилить? Вроде слышал что был IAR для этого дела?
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

aav8 wrote:А у меня есть (в proteuse) 2шт z80 и перефирия....
Точно в proteuse??? :o Ты точно уверен, что рабочие модели z80 в proteuse??? :o

Ну поделись!!! А??? Я их столько искал!!!...

И здесь спрашивал, и на Казусе... :(



PS. А ты не обращал внимание, "Сверху, над моделью, в верхнем правом
углу есть надпись "No simulation model". ?
А то "картинки" z80 и у меня есть...
Last edited by Lavr on 12 Aug 2012 19:11, edited 1 time in total.
iLavr
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

MC68k wrote: если надо всякие ништяки вроде мышей, фоновой печати и даже дисковых операций -
запилите уже прерывания на спец и будет вам счастье.
Кокой ви слоу... :( Слоупок, такой слоупок... :-?

Давным давно "запилили", кому надо было:
Lavr 03 Июня 2011 wrote:...я не люблю нецелевое использование вывода INTE, поскольку в "Спец"
можно ввести вектор прерывания RST 7, впаяв всего 8 резисторов 10 К на шину
данных. Я у себя это прерывание использовал - удобно в программе АОН под
"Специалистом" реагировать аппаратно на телефонный звонок.
Но если юзаешь прерывание - то с EI, DI приходится быть более аккуратным.
Last edited by Lavr on 12 Aug 2012 19:12, edited 1 time in total.
iLavr
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Lavr wrote:
MC68k wrote: если надо всякие ништяки вроде мышей, фоновой печати и даже дисковых операций -
запилите уже прерывания на спец и будет вам счастье.
Кокой ви слоу... :( Слоупок, такой слоупок... :-?

Давным давно "запилили", кому надо было:
Lavr 03 Июня 2011 wrote:...я не люблю нецелевое использование вывода INTE, поскольку в "Спец"
можно ввести вектор прерывания RST 7, впаяв всего 8 резисторов 10 К на шину
данных. Я у себя это прерывание использовал - удобно в программе АОН под
"Специалистом" реагировать аппаратно на телефонный звонок.
Но если юзаешь прерывание - то с EI, DI приходится быть более аккуратным.
прерывание и прерывания - почувствуй разницу.
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

MC68k wrote:прерывание и прерывания - почувствуй разницу.
Воц ап оффисер? :o Да нет проблем - просто мне одно прерывание было нужно -
реагировать на телефонный звонок.
Поэтому я не заморочился, а взял аппаратную реализацию как в "ЮТ-88".

Но если кому надо больше прерываний их весьма просто "запилить" по простой
схеме из этой книжки...
Причем без контроллера прерываний...

Я где-то на форуме схему эту даже вывешивал, но желающих "запилить" оказалось
беконечно... мало. :lol:
iLavr
aav8
Maniac
Posts: 287
Joined: 05 Nov 2008 19:47
Location: 81.28.208.238

Post by aav8 »

PS. А ты не обращал внимание, "Сверху, над моделью, в верхнем правом
углу есть надпись "No simulation model". ?
А то "картинки" z80 и у меня есть...
Точно, так и есть.
А жаль...
User avatar
BarsMonster
Senior
Posts: 126
Joined: 21 Jul 2012 15:56
Location: Zürich, Switzerland

Post by BarsMonster »

Товарищь Lavr слёзно просил поделится соображениями по многопроцессорной системе на КР580. Что-ж, не могу отказать.

Основные идеи:
1) Симметричную многопроцессорность на КР580 реализовать хоть и можно, но бесполезно. Смысла запускать более 2-3 потоков на этих процессорах нет.
2) Вешать более 4-8 процессоров на одну память затруднительно.
3) Для поддержки более современных видеорежимов также хотелось бы иметь память по-шире (Чтобы 720p60 пролазил например)
4) Работать по схеме "каждый процессор имеет свою личную память" и "обвязка каждого процессора реализована на CPLD" - получится дороговато, т.к. 5-и вольтовые CPLD нынче по 10$. 16 процессоров - уже 160$.
5) Настоящего многопоточного софта нет и не будет - его мало того что его сложно писать, так почти никто на самом деле и не умеет :-)

В первом приближении решение такое:
1) Конфигурация - 4*4+1, т.е. 4 модуля по 4 процессора, у каждого модуля своя память. В пределах модуля процессоры видят в первом приближении одну и ту же память. +1 - это основной процессор, на котором в однопоточном режиме и выполняется основная задача.
2) Видеопамять разделена так, чтоб первая колонка - в первом модуле, вторая - во втором, пятая - снова в первом. Таким образом легче обеспечить требуемый поток 55-165Мб/сек для отображения видео (720p60), и обеспечивается больше возможностей по распарралеливанию отрисовки.
3) Основной принцип работы - центральный процессор для ускорения работы запускает задачи сразу на всех процессорах. Примеры функций - отрисовка на экране, математика, перемещение данных.
4) Организация памяти : в пределах модуля - грубо говоря нижние 16кб индивидуальной памяти процессора (тут и стек и код), 16кб общей в рамках подуля, 32кб - переключаемая страница, в основном для доступа к видеопамяти. С учетом видео памяти понадобится достаточно много памяти, до 1Мб на модуль.

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

Для уменьшения количества и многоногости CPLD - думаю о работе с КР580 через сдвиговые регистры. Само собой частота их работы будет высокой, но тут проблем нет. Точная конфигурация модулей - это еще вопрос. Может быть и 8 процессоров можно будет в один модуль впихнуть. Соответственно и модулей может быть больше 4.

Поднимать общее количество прцоессоров выше 64 затруднительно из-за очень уж большого суммарного тепловыделения.

Ну и появляется возможность реализовать режим программной обратной совместимости с некоторыми из советских компьютеров (особенно это касается текстовых режимов).

Также, рассчитываю на штатный разгон всех процессоров с их отбором.

Также можно думать о выделенных процессорах для работы с перефирией.
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

стена текста звучит как "Ане замахнуться ли нам, так сказать, на Вильяма Шекспира".
любая конструкция начинается с чего? правильно, с блока питания. если вам еще не расхотелось питать и обдувать 64 замечательных ВМ80 и их обвязку, тогда можно продолжить. а то развели тут теорию...
User avatar
MC68k
Retired
Posts: 1328
Joined: 25 Jul 2011 00:14
Location: WWW

Post by MC68k »

Lavr wrote:Честно говоря мне слегка другого хотелось. Есть задача, супервизор как-то
разделяет её между процессорами и они начинают молотить свои части параллельно,
после выполнения идёт обмен результатами и супервизор как-то осуществляет
синхронизацию. Собственно в этом видится выигрышь - не шибко мощные процы
достигают большей производительности решая задачу одновременно частями.
Таков был, как мне кажется, принцип конвееров ещё у Генри Форда...
расчет хэшей каких-нибудь? вроде как было, кульные хацкеры даже на ололо атмегах чего-то там мутили. только чтобы выигрыш почувствовать процессоров надо не 2 и даже не 10. сотню это так для затравки.