PDA

Просмотр полной версии : О развитии ретрокомпьютеров вообще и спектрума в частности



msm
25.02.2015, 10:59
Появилась у меня концепция суперспектрума. Вроде про похожую концепцию не слышал, потому озвучу.

Итак, для суперспектрума хотелось бы:
1) Графика высокого разрешения. Хоть FullHD, хоть 4К разрешения;
2) Неограниченные звуковые возможности.

3) Чтобы все новые программы, которые идут на нем, шли бы и на оригинальном спектруме. Основной критерий - если программа не работает на оригинальной
модели, то это не может считаться спектрум совместимым компьютером.
4) Достаточно простое программирование, возможности легкой модификации существующих программ.
5) Чтобы новый софт был реально полезен, чтобы концепции, которые пойдут при разработке нового софта, двигали бы прогресс вперед.

Пункты кажутся противоречивыми. Особенно сильно, на первый взгляд, противоречат пункты 1,2 и 3,4,5.
Однако решение кажется есть. И это решение - параллелизм. Предположим мы имеем плату, на которой 1000 спектрумов. Которые выполняются параллельно.
Обычных 48 или 128к, ну может скорпионов, а то и АТМ, или вообще не спектрумов, а Commondore 64. В каждый из них грузится программа. Блок кода полностью идентичен.
А спрайты и информация о музыке немного различается.
На примере графики:
Графика организована следующим образом. На спектруме с порядковым номером 0, идет графика и музыка полностью стандартое. То есть 256 на 192.
Предположим мы подключаем второй спектрум. Он с номером 1. У него спрайты сформированы таким образом, чтобы они дополняли картинку до разрешения 512 на 192.
То есть если на нулевом первый байй экранной области был 11111111, а во втором 00000000, то результирующие пиксели были бы 1010101010101010.
Предположим подключаем третий спектрум. И первый байт предположим там 00001111. Тогда результирующий будет 100100100100101101101101. И таким образом можно
добиться любого разрешения. Аналогично по вертикали. И подобное решение с аттрибутами.

Таким образом можно добиться картинки произвольного разрешения и произвольной цветности. И аналогично с музыкой, если брать бипер, то первый спектрум кодирует
полный уровень громкости, второй половину громкости, вычитаемый из первого, второй четверть громкости, добавляемый и т.д. С AY звуком можно замутить что то подобное.

Соответственно нужно просто смикшировать все сигналы в один. И загрузить программу в каждый из спектрумов, каждую из программ в свое ядро.
Сигналы с внешних устройств, например клавиатуры, передавать сразу на все ядра. Единственное, загрузку программ сделать так, чтобы каждое ядро грузило свою программу.
Грузить причем через стандартный порт магнитофона или микродрайва, стандартными средствами, через эмуляцию магнитофона.

Что получим:
1) Потенциально можно будет написать вообще абсолютно любую игру. Причем будет все не намного сложнее чем сейчас. Нужно только написать генератор программ для разных ядер;
2) В более продвинутом случае можно будет писать программы с продвинутой концепцией, с разным кодом на разных ядрах. Учитывая, что сейчас очень актуальна параллелизация
, число ядер становится все больше и больше, и пока это все не очень эффективно используется, такая концепция может реально принести плоды в будущем. Это не будет
работа ради работы, только ради энтузиазма, потенциально могут здесь получиться весьма и весьма эффективные алгоритмы.

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

Кто что думает?

Kakos_nonos
25.02.2015, 11:19
Надо чтоб люди игры и софт писали, без этого развития не будет. Уже было несколько таких проектов, в том числе с параллелизацией (ZX-Poly, кажется), даже эмулятор есть, но софта нет. К сожалению, заставить людей писать софт на новую железку ой как сложно, почти невозможно, поэтому разрабатывать плату, схему и софт придётся самому.
Сейчас сымый продвинутый распростронённый комп спектрум-типа - пентева, но её развитие идёт очень медленно и с большими проблемами. Так что не всё так просто.

Viktor2312
25.02.2015, 11:22
И это решение - параллелизм.

Видно время пришло, так было в истории ни один уже раз. Если открытие или изобретение созрело, то его открывают или изобретают два три и более людей. И многие этим занимаются. Сейчас наблюдаю именно это с параллелизмом.

Но про 1000, вы батенька загнули, у меня в ВМИР-1 предполагается 64 ПЭ и то уже тяжко, но реально.

А 1000 это уже что-то из области МКБ-10 (F20) или проблемы "гениального помешательства".

msm
25.02.2015, 11:35
Так в том то и идея, чтоб софт писать было как можно проще. Сейчас худо бедно, но под всякие АТМ, ZX Evo и т.д софт пишут. Да и существующие раскрашивают и улучшают. Но написав софт под АТМ, он не пойдет на оригинале, даже на 128-м он не пойдет. Однако если сразу писать так, что если запустить софт на оригинале, он пойдет, но пойдет не очень хорошей графикой - я думаю желающих писать станет больше. Пишут же игрушки на оригинале и сейчас, и весьма неплохие пишут. По существу же нужно просто спрайты пораспихать по разным ядрам. Сам код вообще без изменений. Конечно нужно хотя бы эмулятор доработать, но считаю что именно такая концепция имела бы право на существование. С демками конечно ситуация посложнее, там спрайтами не отделаешься, но потенциально можно сделать вообще что то умопомрачительное.

Eagle
25.02.2015, 11:44
И вот опять изобретаем велосипед...

---------- Post added at 11:44 ---------- Previous post was at 11:42 ----------

msm, в пентеве не хватает хорошего теневого сервиса, вроде того что есть для скорпиона. Зачем ещё стотыщьмильонов никому не нужных велосипедов делать? Сперва надо то что уже сделано развить.

haywire
25.02.2015, 11:46
Тоесть, вы предлагаете программировать сразу для нескольких различных по архитектуре машин одновременно и синхронно. Тогда для того, чтобы кто-то хотябы попытался что-то сделать для вашей платформы, вам нужно выкатить SDK. Ваш энтузиазм понятен, но если у вас получится хотябы альфа версия такого SDK, можете претендовать на нобелевку смело. Это совершенная мультиплатформенность, несбыточная мечта всех разработчиков. Закрывайте тему.

Reobne
25.02.2015, 11:52
Похожие концепции были. Spec256 (http://www.emulatronia.com/emusdaqui/spec256/index-eng.htm) (8 спектрум-ядер по одному биту - 256 цветов, с атрибутами недоработка)

http://zx-pk.ru/showthread.php?t=4564 - вот ещё что-то подобное

msm
25.02.2015, 11:55
Видно время пришло, так было в истории ни один уже раз. Если открытие или изобретение созрело, то его открывают или изобретают два три и более людей. И многие этим занимаются. Сейчас наблюдаю именно это с параллелизмом.

Но про 1000, вы батенька загнули, у меня в ВМИР-1 предполагается 64 ПЭ и то уже тяжко, но реально.

А 1000 это уже что-то из области МКБ-10 (F20) или проблемы "гениального помешательства".
А почему про 1000 загнул :)? Подобный уровень параллелизма в данный момент вполне реален, более того, активно применяется. В видеокартах. С точки зрения программиста там как раз под 1000 ядер. То, что там внутри SIMD - это уже детали :).
Посмотрел кстати похожие концепции вроде ZX Poly и ZX 256. Там формат программ поменяется, и видеорежим де факто один, как я понял. А если сделать видеорежим похитрее - будет вообще атас :). Загрузив одно ядро - будет стандартный. Загрузив 4 ядра будет удвоенное разрешение. Загрузив тысячу ядер - получим идеальную картинку на современном мониторе. Если программа расчитана под 1000 (ладно, 1024 чтоб число покруглее было) ядер, а железка поддерживает на данный момент только 16, мы получим вполне работоспособную программу с качеством как на ZX Evo. Загрузив одно ядро - получим оригинальный спектрум :). Именно ввод - вывод можно вообще не менять, грузить тупо через магнитофонный вход можно. Только сделать чтоб каждое ядро грузило свою программу.

Относительно железа - если в 1999, а тем более 1994 году это сделать было проблематично, то сейчас хотя бы написать эмулятор вполне реально. Но самое главное под такую платформу реально будет интересно писать. По существу каждое из ядер - это крайне ограниченный комп. Но все вместе могут выдать потрясающую современную картинку.

Reobne
25.02.2015, 11:59
грузить тупо через магнитофонный вход можно
Тысяча магнитофонов? Тысяча проводов? Как-то надо лучше проанализировать этот момент.

Eagle
25.02.2015, 11:59
Придумайте математический сопроцессор под zxbus

haywire
25.02.2015, 12:06
Похожие концепции были.


Похожие. А вы вообще осознаёте, что для того, чтобы просто выводить Full HD с частотой хотябы 25 FPS, нужно пропускная способность шины 200 мегабайт/c самый нижний предел. И на такую шину вы собрались сажать Z80 ? С его пятивольтовыми ТТЛ уровнями ? Ребята, вы совсем не понимаете, чего предлагаете. Закрывайте тему бреда.

---------- Post added at 12:06 ---------- Previous post was at 11:59 ----------



Подобный уровень параллелизма в данный момент вполне реален, более того, активно применяется. В видеокартах. С точки зрения программиста там как раз под 1000 ядер. То, что там внутри SIMD - это уже детали


Это как раз те детали, без глубокого понимания которых, даже рассуждать на данную тему, бессмысленно. В видеокартах *одинаковые* процессоры, а тут вы предлагает синхронизировать Z80 и условный Сore2Duo. Не всегда и не всё можно распараллелить, но всегда необходимо обеспечить согласование и синхронизацию. И согласование и синхронизация всегда упирается в скорость самого медленного, либо самого нагруженного компонента. Вот всё и упрётся в скорость нашего Z80. Закрывайте тему.

msm
25.02.2015, 12:20
Тысяча магнитофонов? Тысяча проводов? Как-то надо лучше проанализировать этот момент.
На настоящее время магнитофоны мертвы. Магнитофонный порт жив, а вот магнитофоны даыно заменены mp3 плеерами (по мне так к счастью). Кстати не магнитофонный порт, а порт микродрайва лучше использовать ИМХО. По существу даже прошивку ПЗУ можно законсервировать. А развивать именно ввод-вывод. Поместив на одной плате 1024 (для ultimate версии или 16 для базовой) ядер, далее развивать только периферию, позволяющую из одной диры на флешке легко и просто загрузить на каждое из ядер программу для конкретной версии ядра. Я это все к тому говорю, что при предложенном подходе соответствующий комп де факто останется спектрумом. Да и применимы подобрые решения будут и на C64, и на Atari. Даже на РК-86 можно подобное применить, если при старте ядра загружать знакогенератор.

А вот от TR-DOS по большому счету нужно уходить в данный момент. Дискеты то на данный момент тоже мертвы. И вполне можно обойтись зашитыми в ПЗУ командами для микродрайва, и все грузить оттуда.

Viktor2312
25.02.2015, 12:27
(ладно, 1024 чтоб число покруглее было)

А почему про 1000 загнул ?

Вот это уже нормально. Да не, в принципе никаких проблем, хоть 2048.


Загрузив одно ядро - будет стандартный. Загрузив 4 ядра будет удвоенное разрешение. Загрузив тысячу ядер - получим идеальную картинку на современном мониторе. Если программа

И маленький вопросик, как ядра будут обмениваться между собой, если будут вообще, если представить каждое ядро расположенное в виде решётки 32 х 32 Спектрума, то какие будут связи между ними и внешней средой?

msm
25.02.2015, 12:37
Похожие. А вы вообще осознаёте, что для того, чтобы просто выводить Full HD с частотой хотябы 25 FPS, нужно пропускная способность шины 200 мегабайт/c самый нижний предел. И на такую шину вы собрались сажать Z80 ? С его пятивольтовыми ТТЛ уровнями ? Ребята, вы совсем не понимаете, чего предлагаете. Закрывайте тему бреда.

---------- Post added at 12:06 ---------- Previous post was at 11:59 ----------



Это как раз те детали, без глубокого понимания которых, даже рассуждать на данную тему, бессмысленно. В видеокартах *одинаковые* процессоры, а тут вы предлагает синхронизировать Z80 и условный Сore2Duo. Не всегда и не всё можно распараллелить, но всегда необходимо обеспечить согласование и синхронизацию. И согласование и синхронизация всегда упирается в скорость самого медленного, либо самого нагруженного компонента. Вот всё и упрётся в скорость нашего Z80. Закрывайте тему.
Оригинальный Z80 естественно на такую шину не посадить. Нужно N ядер, которые по программным характеристикам идентичны Z80 (включая частоту в 3.5 мегагерц, кстати). Полностью идентичные ядра.

А вот на стороне объединителя да, придется ставить современное железо с черти какой скоростью.

Кстати говоря, я полностью отдаю себе отчет, что все упрется в Z80, а также в оперативную память. По большому счету да, с существующими решениями это ну никак не сможет конкурировать. Ибо основано на костылях, черти какой оверхед и тому подобное, и пока вообще нет речи о синхронизации, синхронизовать если и получится, то через стандартные порты ввода вывода. И стоимость такой машинки будет не маленькая, ибо для формирования хорошей картинки железо нужно современное. Естественно даже близко это не конкурент современным платформам.
Но мы то говорим о ретрокомпах. И мне кажется, что такое решение гораздо более жизнеспособное, чем ZX Evo, Pentevo и тому подобное, и при этом такое решение будет иметь все права называться спектрумом. А главное, будет реально интересно писать под такое софт.

Максагор
25.02.2015, 12:41
Проще на три порядка при написании программ предусмотреть в ней определялку типа железа, на котором она загружена и в зависимости от него грузить тот или иной "драйвер" вывода графики на экран и соответствующие спрайты. Так на Писи было - вот, помнится, в школьные годы играл в писишную версию Golden Axe - если это был галимый IMB286 с EGA, то грузились 16-цветные спрайты, а если запускал на 386-м с VGA-карточкой, то спрайты уже подгружались 256-цветные.

Учитывая, что ваш вариант тоже предполагает отдельное программирование графики под каждую машину, мой вариант несправнимо более рациональный.

Viktor2312
25.02.2015, 12:41
Не всегда и не всё можно распараллелить,

Распараллелить можно всё.


но всегда необходимо обеспечить согласование и синхронизацию.

Согласование, да. Синхронизация всех ядер одновременно не обязательно, даже желательно, чтобы они были не синхронны между собой.


И согласование и синхронизация всегда упирается в скорость самого медленного, либо самого нагруженного компонента.

Это зависит от структуры системы, если правильно построить структуру системы, то не будет зависеть от самого медленного. Его вообще не будет самого медленного, все будут равнозначны по быстродействию.


Вот всё и упрётся в скорость нашего Z80.

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

haywire
25.02.2015, 12:41
На настоящее время магнитофоны мертвы.


Да ладно. Живее Спектрумов уж точно. Maxell кассеты до сих пор выпускат, правда, только Type1. В отличие от дискет, кстате, которые сняли с производства все бренды. Да и кассетники ещё выпускаются, правда, это не hi-fi техника.



Кстати не магнитофонный порт, а порт микродрайва лучше использовать ИМХО.


Штоа ? Каккой такой порт микродрайва ? interface 1 штоле ? Ну, это прикол уже смешной хотябы.

msm
25.02.2015, 12:45
Вот это уже нормально. Да не, в принципе никаких проблем, хоть 2048.



И маленький вопросик, как ядра будут обмениваться между собой, если будут вообще, если представить каждое ядро расположенное в виде решётки 32 х 32 Спектрума, то какие будут связи между ними и внешней средой?
Ядра между собой - через порты ввода вывода, другого способа не вижу. Но вообще, именно чтоб обменивались - особого смысла не вижу. В случае обмена будет не параллелизм, а concurrency. На 3.5 мегагерцах и весьма медленными портами ввода вывода сомневаюсь что что то хорошее выйдет. Но когда ядра практически не обмениваются, единственное, что они одинаково реагируют на внешние сингалы - параллелизм будет охрененный и картинка будет хорошей. Для 2д будет нормально. 3д да, особо без дичайших извратов не сделать, да и быстро тоже это ну никак не сделать, по крайней мере я не вижу такого способа.

Eagle
25.02.2015, 12:46
В отличие от дискет, кстате, которые сняли с производства все бренды.
Что-то я совсем от жизни отстал, и 3.5 похерили?

haywire
25.02.2015, 12:51
Распараллелить можно всё.


Ну, распараллельте вычисление факториала. Отслюнявите мне от своей нобелевки рублей 100 на пивко хотябы за идею. Да сейчас на 100 рублей и пивка не попьёшь.



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


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

Viktor2312
25.02.2015, 12:52
На 3.5 мегагерцах и весьма медленными портами ввода вывода сомневаюсь что что то хорошее выйдет.

Ну я делаю на КР580ВМ80А при тактовой частоте 2 МГц, и у меня сомнений нет, что выйдет, так как задумывалось, и обмен так же при помощи портов ввода-вывода. Но это я так к слову, а как именно и что делать, это уже вам самому решать. Но у меня никакой конкуренции не предусматривается, немного другая система взаимообменов предусматривается.

Будет очень интересно, что получится. Если получится что-то вообще, то есть, если не забросите, это дело.

Буду следить за развитием темы...

haywire
25.02.2015, 12:55
Что-то я совсем от жизни отстал, и 3.5 похерили?

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

MVV
25.02.2015, 12:56
Допустим у меня два z80 ядра работают одновременно Z80 instruction exerciser for Reverse (http://zx-pk.ru/showpost.php?p=599660&postcount=871). msm, что ещё нужно сделать, чтобы проверить вашу теорию? Могу добавить еще 2-ва, к примеру для простоты эксперимента и графику 640х480. Там разместить видео область 4-х спектрумов без бордюра, это 512х384.

msm
25.02.2015, 12:59
Проще на три порядка при написании программ предусмотреть в ней определялку типа железа, на котором она загружена и в зависимости от него грузить тот или иной "драйвер" вывода графики на экран и соответствующие спрайты. Так на Писи было - вот, помнится, в школьные годы играл в писишную версию Golden Axe - если это был галимый IMB286 с EGA, то грузились 16-цветные спрайты, а если запускал на 386-м с VGA-карточкой, то спрайты уже подгружались 256-цветные.

Учитывая, что ваш вариант тоже предполагает отдельное программирование графики под каждую машину, мой вариант несправнимо более рациональный.
Драйверы - не на спектруме такое однозначно. Оверхед черти какой. И сложнее программировать. Уже ОС нужна и тому подобное. С масштабированием не взлетит, стандартный Z80 один ну никак большое разрешение не потянет. Если возьмем в пределе 4К разрешение, то это все многократно превышает объем памяти.
Во времена PC, когда отдельно фигачили графику отдельно под CGA, EGA, VGA - по существу это был ад. С приходом винды немного все получше стало, уровни аппаратных абстракций и тому подобное, но как результат - дикие тормоза. Относительно графики и написания - естественно что графика делается и раскладывается на ядра на современных ПК, в преимущественно автоматическом режиме, а не ручками.

Viktor2312
25.02.2015, 13:06
Ну, распараллельте вычисление факториала. Отслюнявите мне от своей нобелевки рублей 100 на пивко хотябы за идею. Да сейчас на 100 рублей и пивка не попьёшь.

Для меня это хобби, поэтому нобелевская не светит. Уже рапараллелил, для вычисления на своей системе.


Это ваши муравьи несут зёрна, но идут друг за другом.

Мои муравьи не идут друг за другом, а идут параллельно и не в двух плоскостях, а в трёх, правильнее сравнить с пчёлами.


И вот если из этого строя один муравей каченый, то весь строй будет нести зёрна со скоростью калечного муравья.

У меня у каждого муравья своя дорожка, если он калеченный, то он не мешает остальным нести свои зёрна, а так же допускается дублирование с проверкой. Задание идентичное даётся двум ПЭ, результат выполнения задания сверяется и если результаты совпадают, то результат верен и принимается для дальнейших вычислений, если нет, то задание повторяется и процесс повторяется, надёжность можно увеличить, дав задание не двум, а трём одновременно и если все три результата идентичны, то задание выполнено верно и результат принимается, для дальнейшего использование, количество можно и увеличить, а можно только одному ПЭ дать это задание и по выполнению его получив результат считать его верным, быстрее, не нужно тратить время на проверку результата, но менее надёжно.


И сколько не оптимизируй - либо калечного муравья удаляем, либо миллиард зернышек вы не соберёте никогда.

Ну выше всё в принципе описал, в системе может быть сколько угодно калеченных элементов, это только снизит быстродействие на то значение, какое системе давал данный элемент, он просто при обращении либо не будет использоваться, так как просто не будет отвечать на запросы, либо будет исключён из дальнейшего использования, так как если один и тот же элемент постоянно даёт ошибку, принцип описан выше, то после третьей ошибки, или большего или меньшего количества, всё зависит от программы, он просто самой же программой исключается для дальнейшего использования, ну и УПЭ получает сообщение, что данный элемент неисправен. Чтобы оператор уже мог заменить его на новый или отремонтированный.

Ладно, это уже не имеет отношения к теме.

Я просто буду следить за развитием данной темы, мне интересно, но я пасс в дальнейших обсуждениях...

haywire
25.02.2015, 13:08
Драйверы - не на спектруме такое однозначно. Оверхед черти какой.


Драйверы подразумевают как минимум единство подхода. Что-то единое между Спектрумом, с его необходимостью ручной оптимизации цветов под знакоместо, и современной платформой, придумать невозможно. Это разные подходы, между которыми пропасть технологий.

msm
25.02.2015, 13:11
Ну, распараллельте вычисление факториала. Отслюнявите мне от своей нобелевки рублей 100 на пивко хотябы за идею. Да сейчас на 100 рублей и пивка не попьёшь.



По, моему, вы слегка не поняли того, что предложил автор. Автор предложил одновременно и синхронно выполнять программы на Z80 и другом, более современном процессоре. Это ваши муравьи несут зёрна, но идут друг за другом. И вот если из этого строя один муравей каченый, то весь строй будет нести зёрна со скоростью калечного муравья. И сколько не оптимизируй - либо калечного муравья удаляем, либо миллиард зернышек вы не соберёте никогда.
Идея была в том, чтобы синхронно выполнять ИДЕНТИЧНЫЙ код на множестве процессоров, программно идентичных Z80. Факториал быстро на этом суперспектруме не получится вычислить, да. 3д игрушку тоже даже на миллионе процессоров не получится. Так как придется обеспечивать их взаимодействие, а когда пойдет взаимодействие ядер друг с другом, то пойдет черти какой concurrency, в результате действительно попрет все со скоростью самого медленного муравья. Но именно для 2д графики (и музыки) будет не concurrency, а параллелизм. Никакого разделяемого состояния, каждое ядро будет работать только с локальными данными. Вот в этом случае общая скорость будет ого го. Грубо говоря, latency будет фиговым, а throwput общий будет ого го какой.

То есть для определенного уровня задач выгода будет, и она будет расти линейно. В общем же случае, в принципе реально на многих задачах получить log n увеличение производительности (например сортировка - если стандартно nlogn, то в случае хорошего распараллеливание реально получить N сложность), но это слишком мало, чтобы задумываться о том, чтоб предлагаемое решение было панацеей.

Eagle
25.02.2015, 13:14
msm, вы всё о параллелизме говорите, но простейшее отметаете, начните с математического сопроцессора, который можно воткнуть в слот пентевы.

Reobne
25.02.2015, 13:15
А если просто взять и сделать наиболее дешёвый Spectrum128+AY. Чтобы потреблял как можно меньше ампер, с наиболее дешёвым экранчиком. Ну и с картой памяти на много-много программок. И возможность соединить "шнурком" несколько, для совместной игры.
То есть безо всякого радио, симкарт, блютуза и вайфая.
Экран, пусть даже 15 оттенков серого 256х192.

1. Spectrum128+AY
2. Минимальная цена
3. Низкое энергопотребление.
4. Мобильность.
5. Надёжные кнопки. Прочный корпус. Долговечная схема и дисплей.
6. Шнурок для совместной игры.

По моему, это было-бы "ретро развитие".

А многоядерные монстры лучше делать с чистой головой, отбросив груз мыслей о необходимости совместимости со старым.
Добиться максимально эффективной работы, и простоты программирования. И тогда появятся новые программы, которые переплюнут старые.

haywire
25.02.2015, 13:17
Для меня это хобби, поэтому нобелевская не светит.


Нобелевка светит всем, кто решил актуальные научные проблемы. Для Перельмана наука была тоже хобби, он нигде не работал.



Уже рапараллелил, для вычисления на своей системе.


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



Мои муравьи не идут друг за другом, а идут параллельно




У меня у каждого муравья своя дорожка


Если у вас муравью идут параллельно, и у каждого своя дорожка, то теряется сама идея синхронного выполнения задач. У вас одна игра будет на Z80, и совсем другая игра на том проце, который выводит Full HD картинку. Это будет бред сивой кобылы, а не платформа.

Reobne
25.02.2015, 13:20
Охотно верю, ога. И как же вам удалось разложить на 2 или более процессора задачу, каждая итерация которой зависит от результата предыдущей ? Моё понимание вычислительной математики говорит, что это невозможно в принципе
Факториал, это произведение чисел от 1 до N.
Первый проц умножает чётные, второй нечётные. Потом просто умножить оба результата, вот вам и нобелевка. :)

haywire
25.02.2015, 13:23
. Spectrum128+AY
2. Минимальная цена
3. Низкое энергопотребление.



Невозможно. Ретро комплектующие стоят бабок, и жрут прилично тока.

Eltaron
25.02.2015, 13:24
А почему про 1000 загнул :)? Подобный уровень параллелизма в данный момент вполне реален, более того, активно применяется. В видеокартах. С точки зрения программиста там как раз под 1000 ядер. То, что там внутри SIMD - это уже детали :).
Да выполнить-то не проблема, но как вы синхронизировать потоки собираетесь? Это ключевая вещь в многопоточном выполнении. На z80 синхронизация возможна только извне.

Mick
25.02.2015, 13:24
Кто что думает?

Очередная концепция, которая появляется тут ежегодно. Которая как и все прочие благополучно через пару дней окажется в забытье.

Как тут правильно высказались, кто будет для нее писать и чем она круче остальных проектов. Как конечный потребитель я не понимаю в чем ее крутизна и смысл.

Reobne
25.02.2015, 13:25
Невозможно. Ретро комплектующие стоят бабок, и жрут прилично тока.
Кроме ретрокомплектующих есть и более современные, не надо так торопиться с выводами. Всё можно сделать на одной микросхеме.

Eagle
25.02.2015, 13:27
Всё можно сделать на одной микросхеме.
Фактически всё уже сделано, дело только за софтом.

haywire
25.02.2015, 13:28
Кроме ретрокомплектующих есть и более современные


Ну, вот и подошли к главному вопросу века. Чем программный эмулятор хуже аппаратного ?

breeze
25.02.2015, 13:29
в пентеве не хватает хорошего теневого сервиса, вроде того что есть для скорпиона.

эээ,… и что же позвольте оно должно уметь? Вот я лично всю свою сознательную zx-жизнь прожил без оного, взломал кучу софта и как-то ни разу не пожалел, что у меня был не скорп.

не ну правда? вывести по nmi окошко сохранить скриншот, дамп памяти? отладчик там точно нафиг не упал. Гораздо быстрее и удобнее сейчас софт писать на пэцэте. Опять же и данные действия тоже. Хоть видеопоток записывай.

Reobne
25.02.2015, 13:29
Чем программный эмулятор хуже аппаратного ?
Цена. Энергоэффективность.

Eagle
25.02.2015, 13:32
Чем программный эмулятор хуже аппаратного ?
А к эмулятору разве не нужна некая железка с ОСью и прочей приблудой для эмуляции и ввода-вывода?

---------- Post added at 13:32 ---------- Previous post was at 13:30 ----------


эээ,… и что же позвольте оно должно уметь? Вот я лично всю свою сознательную zx-жизнь прожил без оного, взломал кучу софта и как-то ни разу не пожалел, что у меня был не скорп.

не ну правда? вывести по nmi окошко сохранить скриншот, дамп памяти? отладчик там точно нафиг не упал. Гораздо быстрее и удобнее сейчас софт писать на пэцэте. Опять же и данные действия тоже. Хоть видеопоток записывай.
Зачем пэцэ там, где и без него можно обойтись? Зачем крылатыми ракетами с термоядерным зарядом комаров в лесном домике убивать?

msm
25.02.2015, 13:33
Допустим у меня два z80 ядра работают одновременно Z80 instruction exerciser for Reverse (http://zx-pk.ru/showpost.php?p=599660&postcount=871). msm, что ещё нужно сделать, чтобы проверить вашу теорию? Могу добавить еще 2-ва, к примеру для простоты эксперимента и графику 640х480. Там разместить видео область 4-х спектрумов без бордюра, это 512х384.
Проверить...

Предполагаю что это эмулятор.

Нужно 2 абсолютно идентичных ядра, которые работают от одного тактового генератора, такт в такт.

Далее нужно как то сделать мержилку экранной области. Если 2 ядра только, то либо 1 строка дополнительная, либо столбец. Как мержить я уже написал в исходном посте написал. Думаю можно улучшить, и вариантов как мержить де факто весьма много. Предложенный мной в лоб далеко не идеален, так как он не позволяет в следующем ядре переопределить самый левый пиксель.

То есть если был бит 1. В двойном разрешении он будет считаться как 11. Его можно преобразовать в 10, но никак не получится получить 01, что очень нехорошо. Чтобы было 01, нужно изначально выставлять на нулевом ядре пиксель в 0, но тогда при отключении других ядер, например при запуске программы на оригинальном спектруме получим ухудшенную графику, что плохо, концепцию еще нужно более подробно продумывать.

Если параллельно все запустить на существующем коде, получится тоже самое, что сейчас. Графика не изменится. Если же в одно из ядер допустим в ПЗУ бейсика для одного символа для буквы S поправить какой нибудь бит из 1 в 0, то получим в одном месте более тонкую линию :).

haywire
25.02.2015, 13:34
Цена.


Есть такое неписанное, но всегда работающее правило. Софт *всегда* дешевле.



Энергоэффективность


Эмулятор работает на любом arm-е. Телефон, планшет. Я сильно сомневаюсь в более эффективном решении.

Mick
25.02.2015, 13:34
Еще немного мыслей.
На мой взгляд, надо развививаться не сколько в количестве ведер, а расширять разрядность. Если посмотреть на историю, до достаточно добавить корке Z80 еще 8 бит шины данных и интрукции работающие с 16 битной шиной данных, уже на мелких скоростях будет существенный прирост. Далеко не надо ходить - возможности Амиги.
Причем совместимость с обычным Z80 можно делать через специальный порт. Ну а если 32 бита, то вообще и операционка может взлететь какая нибудь.
Кстати, говоря современные изделия как Reverse или Aeon как раз годятся для таких исследований.
Только вот упрется все как обычно - кто софт напишет :)

Eagle
25.02.2015, 13:35
Софт *всегда* дешевле.
И чемодан батареек к часам... как в ералаше.

Reobne
25.02.2015, 13:35
Фактически всё уже сделано, дело только за софтом
Софт должен подходить от Spectrum128.
И какова цена, и сколько ватт кушает? Реально-ли это пик дешевизны и непрожорливости?

Eagle
25.02.2015, 13:37
Софт должен подходить от Spectrum128.
И какова цена, и сколько ватт кушает? Реально-ли это пик дешевизны и непрожорливости?
Смотрите в сторону Reverse и Aeon.

AlexG
25.02.2015, 13:38
Придумайте математический сопроцессор под zxbus

А под i2c или spi не подойдёт ?
Можно 32 или 64 бита флоат.
всего за $20

http://micromegacorp.com/

:wink:

ТС: для начала "нарисуй" алгоритм работы не изменяемой программы для работы со своим куском экрана (да и еще чтоб могло работать и на оригинале). А там можно и поговорить об "нобелевской".

Eagle
25.02.2015, 13:41
А под i2c или spi не подойдёт ?
Можно 32 или 64 бита флоат.
всего за $20
http://micromegacorp.com/
Воткните это пожалуйста в слот пентевы, тогда будет ясно.

msm
25.02.2015, 13:42
Да выполнить-то не проблема, но как вы синхронизировать потоки собираетесь? Это ключевая вещь в многопоточном выполнении. На z80 синхронизация возможна только извне.
Основная идея - потоки должны изначально работать синхронно. Без разделения памяти. Каждый поток работает только со своими данными, синхронизация - только тактовый генератор. То есть полный параллелизм, аналогично тому, как в видеокартах современных. В теории можно попробовать некоторые потоки специализировать, допустим там держать подпрограммы для умножения, вычисления синусов и т.д, но на практике это очень усложнит программирование - это уже высший пилотаж :). Да и любая синхронизация - это удар по производительности, особенно на железе уровня z80 3.5 мегагерц.

Максагор
25.02.2015, 13:43
Драйверы - не на спектруме такое однозначно.

Почему? Привычное дело. Взять, например программу WDC - там вставляй свой собственный драйвер IDE и - вперед. Также были примеры с драйверами верхней памяти (например, в игре "Страна мифов"). Так что практика такая была и есть.


Оверхед черти какой.

В смысле?


И сложнее программировать.

Чем сложнее? И в твоем и в моем случае надо писать отдельный обработчик графики под каждый графрежим. С точки зрения кода - примерно одинаково.


Уже ОС нужна и тому подобное.

Зачем? Не цепляйся к слову "драйвер". Если я напишу "подставляемая в выделенную программой пользователя точку подпрограмма вывода графики со стандартизированными точками входа" тебе легче станет? Повторяю - примеры таких подставных процедур даже подгружаемых с диска (а при наличии свободной памяти, то можно и в теле основной программы хранить) есть. В любом случае, если у вас предусмотрен вывод графики в зависимости от графрежима, вне зависимости от "параллельности" или "обычности", придется писать независимые процедуры вывода графики под каждый тип экрана.


Уже ОС нужна и тому подобное.

ОС спектруму нужна (это мое убеждение) но вне зависимости от темы обсуждения. А в ее рамках могу только сказать - "ничего подобного".


Во времена PC, когда отдельно фигачили графику отдельно под CGA, EGA, VGA - по существу это был ад. С приходом винды немного все получше стало, уровни аппаратных абстракций и тому подобное

Ну сравнил - современные писишки с графическими карточками, где весь низкоуровневый вывод графики "зашит" в их железе и на ОС действительно приходится только "уровень аппаратных адстракций". Но если копнуть эти низкоуровневые процедуры, то наверняка мы найдем там разные варианты вывода под разные графрежимы. А Спектрум, хоть "параллельный", хоть нет - это и есть
"времена PC, когда отдельно фигачили графику отдельно под CGA, EGA, VGA". И ничего "адского" и зазорного в написании пакетов графики под отдельные режимы я не вижу. На том же АТМ/Ево есть идея так модернизировать старые игры - найти в дизасме вызовы подпрогамм по выводу спрайтов, текстов и проч. и Перенаправить их в область #0000-#3FFF, где предварительно мы отключим ПЗУ и вставить страницу ОЗУ пользователя, куда поместиьт свои подпрограммы вывода на экран и свои наборы справйтов. Фишка в том, что стандартизировав такие точки входа, можно подгружать 16Кб-странички уже под любой тип экрана (и подгружать их в зависимости от типа требуемого экрана).
Как только разберусь с текущими проектами под TASiS, попробую для эксперимента поработать с 48К-играми на этот счет... Вот это интересное направление, под которое возможно привлечь людей. А "Давайте создадим мегажелезку..." - это пусть в никуда.

AlexG
25.02.2015, 13:48
Воткните это пожалуйста в слот пентевы, тогда будет ясно.

Кто такой "пентевы" я не знаю - но всегда можно соорудить "переходник" zxbus (или что там) в ram/i2c/spi/uart интерфейс.

msm
25.02.2015, 13:56
Чем сложнее? И в твоем и в моем случае надо писать отдельный обработчик графики под каждый графрежим. С точки зрения кода - примерно одинаково.

Не не не. Никакого отдельного обработчика графики под каждый графрежим нет. Даже такого понятия как графрежим нет, вот в чем дело. С точки зрения каждого из ядер, у нас обычный спектрум 256 на 192, с его родной адресацией, с аттрибутами 8 на 8 и тому подобное.
Просто если добавляется ядро, то экранные области мержатся особым образом, чтобы формировать картинку более высокого разрешения и с дополнительными фичами вроде 32 битного цвета. Графика изначально рисуется под максимально навороченный режим. С возможной кастомизацией небольшой вроде начальных условий, чтоб нормально смотреться на оригинальном спектруме, а также в случае небольшого количества ядер.

То есть единственное что нужно сделать (предположим железка у нас есть) - это нарисовать графику высокого разрешения и в хорошем цвете, и далее сформировать (в основном в автоматическом режиме) эту графику под каждое из ядер.

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

Eagle
25.02.2015, 13:56
Кто такой "пентевы" я не знаю - но всегда можно соорудить "переходник" zxbus (или что там) в ram/i2c/spi/uart интерфейс.
Вот только без колхоза, а в виде красивой платы расширения для zx-evo.

MVV
25.02.2015, 14:21
Предполагаю что это эмулятор.
Скорее FPGA песочница:

FPGA (Field-Programmable Gate Array) – что переводится как «программируемая пользователем вентильная матрица», которая представляет из себя полупроводниковое устройство, конфигурацию которого можно изменять уже после изготовления, т.е. в любой момент времени при эксплуатации. Это возможно благодаря тому, что у пользователя есть возможность вносить изменения в логику работы принципиальной схемы, используя, к примеру, исходный код на языке проектирования VHDL или Verilog.

Нужно 2 абсолютно идентичных ядра, которые работают от одного тактового генератора, такт в такт.
Уже сделано, чтобы не усложнять взял 2-ва z80 ядра, тактируются от одного источника 3.5МГц.

Далее нужно как то сделать мержилку экранной области. Если 2 ядра только, то либо 1 строка дополнительная, либо столбец.
Добавил двух портовую память 16 Кбайт, одним портом управляет первое ядро, вторым - второе. Выход идет на видео автомат, который строит 640х480@60Hz, для наглядности слева в верхнем углу первое поле 256х192 правее сразу от него второе 256х192.
Ниже можно попробовать разместить их мержилку.
На фотке в левом углу выводится пока один полный видео экран первого ядра. Решил по быстрому попробовать, нужно еще синхронизировать его с основным 60Hz:

Reobne
25.02.2015, 14:36
И как соединять цвета? 4 бита с одного ядра, 4 с другого, вот тебе и 256 цветов? И палитра для каждой игры постоянна, от автора "раскраски"?

breeze
25.02.2015, 14:53
Зачем пэцэ там, где и без него можно обойтись?

Дооо! ну давайте ещё будем сидеть на ч/б тёплом ламповом «Рекорд'е», попутно угробим без того и так почти севшее зрение, долбить будем строго на 40 клавишах и сохранятся строго на ленту :)

Раньше других возможностей не было, поэтому и корячились на чём бог послал. Отказываться сейчас от редактора в котором отрыто 100500 вкладок с сорцами, где на экране отображается одновременно далеко не 32 строки, с подсветкой синтаксиса, и быстрой и удобной сборкой модулей. Ну уж нет, увольте, я конечно мазохист, но отказываться от удобства работы на экране 1920x1080 не собираюсь.

А для тёпловости и ламповости у меня есть PentEvo. На который при необходимости, без лишних телодвижений я закину свой софт через COM-шнурок.


Зачем крылатыми ракетами с термоядерным зарядом комаров в лесном домике убивать?

Затем, что не надо бредовые сравнения приводить, и уж точно не надо ровнять всех под свои мерки.

msm
25.02.2015, 15:18
И как соединять цвета? 4 бита с одного ядра, 4 с другого, вот тебе и 256 цветов? И палитра для каждой игры постоянна, от автора "раскраски"?
А здесь очень много вариантов :). Добиваться нужно не 256 цветов, а как минимум 24 бит на пиксель. Насчет альфаканала не уверен в целесообразности. Соответственно, учитывая весьма своеобразную организации экранной области стандартного спектрума, там мерж будет мягко говоря не совсем тривиальный. Но если за базу брать какой нидь Commondore 64, Или ATM с его расширенным режимом - здесь тоже все гораздо проще было бы.

Если брать за основу всякие хитрые режимы всяких ZX EVO, то тупо смешением средних цветов. Если брать за основу базовый спектрум, то здесь нужно хорошо продумывать, там явно будет весьма непростой способ. Навскидку вижу решение - разбивание на ядра определенной группы по знакоместам, а далее тупое смешение цветов. Да, с клешингом :)! И да, вручную там вообще будет нереально разобраться как это все оптимально смешивать. Только в автоматическом режиме преобразовывать! Или как вариант - забить за 1 цвет на пиксель, кто захочет выпендриться - пусть мультиколором программным добивает :).

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

Но игрушки вроде цивилизации, героев и т.д - это можно делать со вполне приличной графикой. С анимацией будет сложнее конечно.
Если брать за базовое разрешение 2048 * 1536, для монохромного режима потребуется 64 ядра. При этом если делать скроллинг, то просто это сделать только с шагом 8 пикселей, для меньших шагов придется весьма хитрые алгоритмы придумывать, и я не уверен что это вообще реально. То есть ограничений до фига и больше, естественно это не панация, полноценный современный ПК не сделать даже на миллионе ядер таким образом. Но ИМХО это намного круче было бы любого Спринтера.

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

Короче при предлагаемой архитектуре возникает огромное количество вызовов для демомейкеров.

Eagle
25.02.2015, 15:24
Дооо! ну давайте ещё будем сидеть на ч/б тёплом ламповом «Рекорд'е», попутно угробим без того и так почти севшее зрение, долбить будем строго на 40 клавишах и сохранятся строго на ленту
Да, давайте для замены пары байт в работающей программе гонять её на навороченном восьмиядернике и заливать её в пентеву через компорт каждый раз.

breeze
25.02.2015, 15:40
Да, давайте для замены пары байт в работающей программе

Зачем заменять пару байт в РАБОТАЮЩЕЙ программе?


гонять её на навороченном восьмиядернике и заливать её в пентеву через компорт каждый раз.

Нет блин) я буду на 3.5MHz подгружать проект в 450кб и ждать каждый раз по полчаса пока всё соберётся. Юморист.

Eagle
25.02.2015, 17:01
Зачем заменять пару байт в РАБОТАЮЩЕЙ программе?
Никогда игры не ломали? Не было у вас скорпиона с проф. ПЗУ, тоска-печаль.

---------- Post added at 17:01 ---------- Previous post was at 16:57 ----------


Нет блин) я буду на 3.5MHz подгружать проект в 450кб и ждать каждый раз по полчаса пока всё соберётся. Юморист.
Как же раньше люди игры писали для спектрума на спектруме? А ещё, как же я умудрялся переделывать игру на орионе под 2МГц и компилировать её по сто раз на дню? Может я все ресурсы вроде оцифровок звука, графики, знакогенератор хранил отдельно? Загадка...

breeze
25.02.2015, 17:36
Никогда игры не ломали? Не было у вас скорпиона с проф. ПЗУ, тоска-печаль.


Вот я лично всю свою сознательную zx-жизнь прожил без оного, взломал кучу софта и как-то ни разу не пожалел, что у меня был не скорп.

Чукча не читатель @ Чукча писатель!


Как же раньше люди…

Как же люди раньше на лошади и пахали и скакали, и чуть ли не по небу летали?… Загадка...


Короче, орёлышек, заканчивай флудерастию, а то уже попахивает.

Reobne
25.02.2015, 17:37
Расширять ядерность, а тем более разрядность сложно, нужно переделывать программы. А всё ради чего? Чтобы играть в старые игры, со старой логикой, но с новой графикой от фанатов. Со звуком вообще не всё так просто.

А я предлагаю сделать спектрум с энергопотреблением карманной электроникиhttps://upload.wikimedia.org/wikipedia/commons/thumb/e/ee/%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D 0%B8%D0%BA%D0%B0_%D0%98%D0%9C_02.jpg/300px-%D0%AD%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0%BD%D 0%B8%D0%BA%D0%B0_%D0%98%D0%9C_02.jpg (https://ru.wikipedia.org/wiki/%D0%9D%D1%83,_%D0%BF%D0%BE%D0%B3%D0%BE%D0%B4%D0%B8 !_%28%D1%8D%D0%BB%D0%B5%D0%BA%D1%82%D1%80%D0%BE%D0 %BD%D0%BD%D0%B0%D1%8F_%D0%B8%D0%B3%D1%80%D0%B0%29)

Есть затык, это мало кнопок на панели. Тут масса вариантов, и это плохо. :( Вариант должен быть один, самый верный. Я один придумал (5 кнопок направления+огонь, 2-шифта, настраиваемая кнопка и кнопка настройки(сверху маленькая)), но подумаю ещё.

С карты памяти читаются-(пишутся) специальные снапшоты, и ничего кроме снапшотов. Ни tap, ни scl, trd. AY включается, если воткнуть наушники.

Провод для мультиигры... можно отказаться.

Главное - месяц работы от 2-х 3-х "таблеток". А лучше полгода.
И цена 250 рублей. :)

Eagle
25.02.2015, 17:48
Чукча не читатель @ Чукча писатель!
Аналогично. Про "из пушек по воробьям" вы явно не поняли.

---------- Post added at 17:48 ---------- Previous post was at 17:47 ----------


А я предлагаю сделать спектрум с энергопотреблением карманной электроники
Мне это точно понравится. Подвижки к минимизации есть неплохие, в пример AVR ZX Spectrum V2.0.

MVV
25.02.2015, 18:16
Мне это точно понравится. Подвижки к минимизации есть неплохие, в пример AVR ZX Spectrum V2.0.
Ни Evo, а тем более AVR ZX Spectrum V2.0 тут не подходят, ну не получиться сделать на Evo или AVR ZX Spectrum V2.0 даже простую 2-х процессорную систему к примеру как эта (http://zx-pk.ru/showpost.php?p=783798&postcount=23). Ну ламповая Evo и все тут :)

А я предлагаю сделать спектрум с энергопотреблением карманной электроники
Это вот этим авторам (http://www.ixbt.com/mobile/oneplus-one.shtml) предложи, а не здесь :) Вот на нем спек самое то, что нужно.

Reobne
25.02.2015, 18:22
а не здесь
Почему не здесь? Тема называется "О развитии редрокомпьютеров вообще и спектрума в частности".
Если-бы тема называлась "Придумаем концепцию многопроцессорного ZX.", то я конечно не стал-бы ничего такого предлагать.

MVV
25.02.2015, 18:29
Почему не здесь? Тема называется "О развитии редрокомпьютеров вообще и спектрума в частности".
Потому, что "О развитии ведрокомпьютеров вообще и спектрума в частности" :)

Eagle
25.02.2015, 19:01
MVV, а ZX-Poly получится на Reverse реализовать?

MVV
25.02.2015, 19:51
MVV, а ZX-Poly получится на Reverse реализовать?
Сейчас уже на U16 думаю возможно, если отложить работу над другими конфигурациями. Для начала можно попробовать сделать 2-х процессорную систему, пойти не в лоб синхронной архитектуры, а по пути асинхронной работы системы. Это даст возможность развязаться по частоте, работать процессорам на максимально возможной частоте через свой кэш с внешней памятью. Планирую пока установить два NextZ80@50MHz, скорость работы одного в кэш где-то в три с половиной раза быстрее простого Z80 CPU на той-же частоте. Т.е. можно смело разворачивать графику 640x480 24bit. Есть конечно в этом свои "подводные камни". Будет ли поддержано это, хз, но попробовать ради интереса все-же стоит. Не понравится, можно всегда переконфигурироваться на что-то другое :)

msm
25.02.2015, 21:42
Тоесть, вы предлагаете программировать сразу для нескольких различных по архитектуре машин одновременно и синхронно. Тогда для того, чтобы кто-то хотябы попытался что-то сделать для вашей платформы, вам нужно выкатить SDK. Ваш энтузиазм понятен, но если у вас получится хотябы альфа версия такого SDK, можете претендовать на нобелевку смело. Это совершенная мультиплатформенность, несбыточная мечта всех разработчиков. Закрывайте тему.
Не не не. Не до таких высот запросы. Я предлагаю программировать строго под одну платформу. Под строго одинаковые ядра. С целью просто подтянуть графику и звук до современного уровня, чтоб не плеваться от пикселей.

Другие платформы, вроде C64, Atari, NES наконец, да и SNES тоже - для любой из этих платформ можно применить подобный подход. Принцип остается тот же, меняется только реализация мержилки экрана.

И основная фича - это масштабируемость. Берем 2 ядра - будет 512 * 192. Берем 4 ядра - будет 512 * 384. Берем 16 ядер, получаем 1024 * 768. Берем 64 ядра - получаем 2048 * 1536. И так далее. Ну и часть ядер на поддержку лучшего цвета, с цветами там кодировать не так просто, но можно придумать хорошее решение. При этом основная фича в том, что программа, изначально создаваемая под разрешение 2048 * 1536 без модификаций пойдет на базовом спектруме, в конфигурации 512 * 384, в конфигурации на 1024 * 768. Просто программы для более старших ядер не грузятся. И в каждой из таких конфигураций графика плавно улучшается от базовой (когда берем эталонный спектрум) к наилучшей, когда загружены все ядра. Мало станет 2048 разрешения, если от него будут в будущем так же плеваться, как сейчас от 320 на 240 - далее просто продолжаем масштабировать плату. Все старые программы пойдут.

Да что спектрум, даже на ZX80 можно таким образом картинку до современных стандартов, да еще и в цвете довести. Кстати, как ни смешно, но на ZX80 это будет даже проще :).

Eagle
25.02.2015, 22:03
msm, про то как из говна конфетка получится должна пока что никаких подробностей не было.
Как будет картинка складываться? Как звук будет хорошеть частотой дискретизации и битностью, AY тоже запараллелим? А то не концепция, а мечты какие-то.

MVV
25.02.2015, 22:30
Eagle, похоже msm хочет собрать что-то наподобие SMP системы гомогенного типа Enterprise 10000 (https://ru.wikipedia.org/wiki/Sun_Enterprise), в том веке там была возможность установки до 64 процессоров. Только вот цена его... :)

msm
25.02.2015, 22:32
Как просто разрешение поднять я сказал. Как нормально цвет реализовать - это нужно еще продумывать.

Относительно звука я тоже сказал. Битность не проблема. Для бипера - нулевое ядро - стандартная громкость. Первое ядро - минус половина громкости. Второе ядро - плюс четверть. И так далее. Битность таким образом достигается любая. Аналогично с AY. Правда со звуком есть проблема - он зачастую динамически формируется, а с динамическим формированием будет рассинхронизация. Но если программировать так, что звук пойдет строго на основе самплов, то приличный звук вполне можно вытянуть. Даже частоту дискретизации можно высокую вытянуть - определенные ядра просто будут при микшировании считаться с задержкой. Короче решение можно найти.

И я к чему этот разговор затеял. Периодически появляются желающие написать игру. Например цивилизацию. Под стандартный спектрум 48к :). И сразу же сообщество начинает возмущаться - а какого черта не под ZX Evo или на худой конец ATM, новым режимам графическим черти сколько лет и его никто не использует и тому подобное. На что ответ - у автора типа был 48, и что более, он не признает. И аналогично у буржуев. Предложенная концепция должна найти компромисс между теми, кто хочет писать именно под 48к, и теми, кто хочет крутую графику.

Да, полностью конфетку не сделать. Но компромиссную платформу, под которую будет ИНТЕРЕСНО и просто писать, таким образом можно сделать достаточно легко. И я уверен, что если бы эта платформа была бы хотя бы в виде эмулятора, и был бы компилятор, который позволял генерить автоматом спрайты, готовые к загрузке - нашлись бы желающие эту платформу попробовать. Ибо писать он будет под вполне стандартный спектрум!!!! Или под стандартную NES. Или под стандартный C64.

Под расширенные режимы и с ЦП в 20 мегагерц ну нет сейчас смысла писать. И не будет смысла. Ибо не спортивно это по большому счету - это писать под нестандартный комп, непонятно тогда, почему не взять PC. Если хочется стандартную конфигурацию - непонятно тогда, почему не PS4 или Xbox One. А та концепция, которую я предложил - она может найти энтузиастов. Ностальгирующих то не мало. Но большинство ностальгирующих предпочтут писать под оригинальный предмет ностальгии. Но если у них будет возможность так поностальгировать, чтоб это и на какой то конфигурации прилично выглядело, они вполне могут и принять новую платформу.

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

Eagle
25.02.2015, 22:51
msm,
Как просто разрешение поднять я сказал.
Не до конца там раскрыта суть, с атрибутами как? А по пикселям получается, что как их не дроби, они шире первоначального поля в бордюре не становятся. Еще не ясен алгоритм дробления для нечётного кол-ва процессоров. Когда настаёт предел дробления по X и когда переходим на Y? Какое нечто будет все эти пиксели складывать? А с каких носителей будут грузится программы с графикой, например, стократно улучшенной? Сотню другую дискет вставлять? С магнитафона пару часов грузить? Иди в сто дисководов сто дискет, грузить со ста магнитофонов, ну... параллелизм же.

Правда со звуком есть проблема - он зачастую динамически формируется, а с динамическим формированием будет рассинхронизация.
Еще вот клавиатура динамически нажимается :)

msm
26.02.2015, 00:47
msm,
Не до конца там раскрыта суть, с атрибутами как? А по пикселям получается, что как их не дроби, они шире первоначального поля в бордюре не становятся. Еще не ясен алгоритм дробления для нечётного кол-ва процессоров. Когда настаёт предел дробления по X и когда переходим на Y? Какое нечто будет все эти пиксели складывать? А с каких носителей будут грузится программы с графикой, например, стократно улучшенной? Сотню другую дискет вставлять? С магнитафона пару часов грузить? Иди в сто дисководов сто дискет, грузить со ста магнитофонов, ну... параллелизм же.

Еще вот клавиатура динамически нажимается :)
С аттрибутами нужно думать. Причем очень долго и сильно. Для других компов, которые не спектрум, где цвета задаются на пиксель - все просто, когда ядра ответственные за разрешение кончаются, следующие за ними идут со смещенным цветом. Результирующий же цвет тупо суммируется. Возможно снова где то вычитание цвета, где то сложение. Для ZX80, ZX81 тоже все просто раскрашивается. Для Спектрума же будет полный атас. По существу тоже думаю придется накладывать цвета знакомест друг на друга. Но чтоб попасть в произвольный цвет на один пиксель - это нужно постараться. Я для того то на суд общественности и представил саму концепцию, чтоб тоже подумали :).

Нечетное количество ядер не позволять. А вообще, количество ядер просто стандартизировать. Грубо говоря light конфигурация, это 4 ядра, medium - 32 ядра, high - 128 ядер, professional - 1024, ultimate - 8192, future - 65536 :). Думаю 65536 хватит лет на 50 минимум, да и сомневаюсь я что на практике кто либо осмелится medium попробовать сделать :). А light в принципе вполне реально.

Относительно загрузки. Сами программы хранить на флешке. В файловой системой с поддержкой директорий. В каждой директории набор tap файлов с именем, заканчивающемся на номер ядра. Грузить со специального устройства, которое придется отдельно проектировать. На устройстве выбирается нужная программа, нажимается загрузить, и пошла загрузка.
Как вариант - устройство пишет сразу в память, минуя процессор, перехватывая команду LOAD "". Останавливая процессор до момента окончания загрузки.

Клавиатура - она одна на все ядра. Клавиша нажимается - все ядра получают одинаковое прерывание.

Вообще, именно эмулятор этого сделать вполне реально. Целесообразность делать это в железе реальном - у меня лично сомнение. Сложно, дорого, только для энтузиастов. Но если будет хороший эмулятор и будет под этот эмулятор выходить софт, возможно лет через 10-20 и в железе что появится.

cherkasy
26.02.2015, 03:16
попробуйте сделать на спеке как сделали symbiface + symbOS на амстраде и для msx.
уже все давно придумано.
никаких супер спектрумов не будет, так как есть 2 разных стандарта - оригиналы и все остальные. дешевле купить то, на чем что то пишешь и добавить sd карту.
и последнее, какой процент хочет потратить 100-200 баксов на эти навороты...
ответ очевиден, только те, кто что то делают сейчас на спеке. остальным лучше чтобы все так и оставалось - игры и в эмуле неплохо запускать.

MVV
26.02.2015, 12:23
Вообще, именно эмулятор этого сделать вполне реально. Целесообразность делать это в железе реальном - у меня лично сомнение. Сложно, дорого, только для энтузиастов. Но если будет хороший эмулятор и будет под этот эмулятор выходить софт, возможно лет через 10-20 и в железе что появится.
Появиться, ага, сейчас. Вот есть эмулятор ZX-Poly (http://www.igormaznitsa.com/zxpoly/zxpoly.html). Софта небось написали валом под него :)
Концепция на первый взгляд многообещающая и казалось бы проста в реализации, но кто этим будет занимается? Зачем ещё что-то выдумывать и переизобретать? Взять к примеру конфигурацию Base-conf, ScorpEvo или TS-Conf (http://forum.tslabs.info/index.php) на Evo. Чем она не подходит под концепцию? Последняя, так и осталась бы в кругу обладателей только плат Evo (http://nedopc.com/zxevo/zxevo.php) и ещё на эмуляторе (http://forum.tslabs.info/viewtopic.php?f=29&t=142), если бы не dsp (http://forum.tslabs.info/viewtopic.php?f=31&t=401), тут TSL можно понять. Теперь её можно портировать практически на любые FPGA платы. На данный момент портирована на Speccy2010 (http://forum.tslabs.info/viewtopic.php?f=31&t=483), ReVerSE-U8 (http://zx-pk.ru/showpost.php?p=732534&postcount=1213), ReVerSE-U9 (http://zx-pk.ru/showpost.php?p=731276&postcount=1209), ReVerSE-U16 (http://forum.tslabs.info/viewtopic.php?f=31&t=401), DE1-SoC (http://forum.tslabs.info/viewtopic.php?f=31&t=480)...
Тем самым, это расширило круг пользователей и появилась возможность её усовершенствовать и на современном железе. И что, кто-то кинулся что-то делать? :( Что думаете?

AlexKolesnikov
19.04.2015, 00:07
Ну, распараллельте вычисление факториала. Отслюнявите мне от своей нобелевки рублей 100 на пивко хотябы за идею. Да сейчас на 100 рублей и пивка не попьёшь.

Хоть и не мне адресован вопрос, но отвечу на него. Прочитав условие, за 3 секунды родилась в голове мысль, как это сделать.


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

Тут не совсем правильное утверждение. Следующая итерация не зависит от предыдущей и может выполняться отдельно. Вот два варианта решения:
1. Факториал N! Примем за Y число, равное N/2. Тогда мы можем разделить вычисление N! на два процесса. Процесс 1: Умножение всех чисел от 1 до Y. Второй процесс - Умножение всех чисел от Y+1 до N. В конце просто умножаем полученные результаты.
Правда, это решение сильнее нагрузит второй вычислительный процессор в связи с тем, что числа там будут больше.

Второе решение: Вычисляем произведение всех нечетных чисел от 1 до N на первом процессоре и всех четных чисел от 2 до N на втором. Результаты перемножаем.
Это решение более гибкое и позволяет загрузить одинаково оба процессора.

Smalovsky
21.02.2016, 01:39
Создатели Vega сделали ставку на идею развития спектрума как игровой приставки. Мне кажется,что для развития спектрума нужно вернуться к такому понятию как бытовой( домашний) компьютер (https://ru.wikipedia.org/wiki/%D0%94%D0%BE%D0%BC%D0%B0%D1%88%D0%BD%D0%B8%D0%B9_% D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1 %80).
Для чего может использоваться бытовый компьютер? Для использования текстовых и табличных редакторов, игр, обучению программированию и пр. Что может предложить спектрум? На сегодняшний день только ретро-игры(теперь бейсик не популярен для обучения программированию, старые серьёзные программы врядли кого заинтересуют, мощности для просмотра видео нет). Что можно предложить пользователю спектрума кроме ретро-игр? Ну вопервых, нужно увидеть те популярные сферы где спектрум может занять свою нишу. Например, сегодня очень популярны конструкторы на микроконтроллерах Arduino. Если для спектрума сделать платы расширения ввиде пинов и разъемов, а также различную периферию( датчики, сервоприводы, и пр.), плюс будет удобная среда для программирования, то спекки также может потянуть эту сферу. Для обучения программированию можно делать аналоги системы PascalABC.
Хочется услышать мнения и другие возможные варианты применения спектрума.

Sameone
21.02.2016, 19:29
Чем в качестве бытового компа плох <a href="http://www.3dnews.ru/918131l">Intel Compute Stick</a> ? Всего-то за 130 долларов? С Win 8.1 внутри? Или с Linux -- ещё дещевле? http://hotline.ua/computer/nastolnye-kompyutery/140169/?sort=0 тут есть предложения от сторонних производителей, даже дешевле 100 долларов. C учётом стоимости купленных отдельно клавиатуры и мыши получится в полтора раза дешевле чем самый дешёвый спек 30 лет назад. Без учёта инфляции. Да, Compute Stick'у достаточно одного телевизора (а телик без hdmi сейчас ещё найти надо), магнитофон не нужен -- внешняя память на SD-карте, ридер встроен. Обучение программированию? А чем ZX-бейсик или "аналог" PascalABC (который ещё сделать надо) превосходит MS Small Basic, учитывая что последний является ступенькой к языкам VisualStudio?
Пока не будут даны ответы на эти вопросы -- никакого "бытового компьютера" Спектрума не будет. Из-за отсутствия спроса. Небольшой спрос есть на нечто "железное", позволяющее запустить спековскую игрушку и понастальгировать, желательно чтобы игры уже были внутри, и побольше. Что и есть Vega.

cherkasy
22.02.2016, 18:35
какой домашний компьютер )))))) это еле дышащая "платформа".
Вега как раз и сделана как более-менее удобный вариант для ТЕХ игр. Провели опрос - желающих купить будет достаточно, выпустили. и все.
Для нас конечно его стоимость не мала, но для Европы - копейки. И как раз на тех людей и будут ориентироваться разработчики железа.
Спектрум ничего не может предложить сегодня, ничего. Просто ностальгия. Да, появились ништяки, типа sd карт или там мышь, но это интересно только малой части даже на этой "платформе". Все будет продолжаться, пока есть энтузиазм. После этого останутся старые бородатые кадры, по типу (не хотел обидеть, просто вспомнил фото) фанатов ZX81. Ну и с уходом разработчиков софта, останутся эмули )))))))))

alex-eller
24.02.2016, 14:45
Почему вы считаете что тема домашнего компьютера мертва? По моему это прекрасная возможность для школьника или студента, самостоятельно разобраться с основами микропроцессорной техники. Собственно мы все с этого и начинали собственно) Сейчас конечно возможности гораздо шире. Можно уже готовую Ардуину взять или какой нить комплект ПЛИС. Но имхо это потому что нет адекватной и современной платформы для БК. А те которые есть, жутко устаревшие, с новыми костылями. Мне кажется эту недоработку можно и нужно исправить)

Есть конечно ещё одна захватывающая альтернатива - одноплатные микрокомпьютеры, вроде Малинки или C.H.I.P. С ними конкурировать сложно, там очень низкая цена и потрясающая для их размеров производительность, с частотами под гигагерц. Но вы никогда не будите чувствовать что это именно ваша разработка, с которой вы можете сделать всё что хотите, они всегда будут холодным кусочком чего то чужого.

cherkasy
24.02.2016, 14:55
ну так люди имеют ввиду Спектрум, как домашний комп. Вот я о нем и говорю, его уже нет давно. Есть только некие игры и конкурсы. Все. Те, кто хочет Ардуину, давно его купили. Обычным домохозяйкам это не интересно. Но речь идет не о Спектруме, правда ? Тогда тема вообще не об ретрокомпьютерах должна быть.

Vovoi
13.05.2016, 00:49
Был такой ноутбучек Asus eepc, довольно симпатичный, компактный. Заказать у китайцев пластиковые корпуса и LCD. Собрать плату с процессором ARM и впихнуть в этот пластик. Сделать так, чтобы в одном режиме ноутбук был как спектрум (может как Phoenix?), в другом режиме как нативный arm-ноут (но как быть с bios?).
У спектрум-ноута есть SD-слот (кассеты или др. файловые системы). Включил - играйся на спеке, крути демы. Переключил dip, затем reset и ты в режиме более мощного проца (arm). Кто продвинулся в спеке, мог бы изучать arm-asm и, может быть написать какую-нить простейшую дисковую подсистему (какой-нить free dos). Словом, изучать другой процессор, которого навалом в наших смартфонах.
Но я бы не отказался от ее-писишного ноутбука, пусть даже собранного на одной микросхеме, ведь внешне все будет почти как на реальнике. Его с собой можно носить (хорошая печатная машинка). Только вот насколько это реально, собрать такую тонкую плату. Можно ли в принципе сделать подобие arm-компьютера, пускай даже самого примитивного (я не говорю про всякие видеоакселераторы, пускай хотя бы 1024*768 и 256 цветов будет. Вот я фантазер какой))

....с другой стороны, найти на помойке тот же EE-PC, поставить FreeDOS и эмулятор и вот оно, решение же! Какой я не сообразительный, но хочется же что-то свое, спектрумовское))))

Бука
29.06.2016, 08:21
Можно ли в принципе сделать подобие arm-компьютера, пускай даже самого примитивного (я не говорю про всякие видеоакселераторы, пускай хотя бы 1024*768 и 256 цветов будет. Вот я фантазер какой))

Вот за 8,5 килорубля машинка, на проце интел и под виндой. IRBIS TW38

http://cdn4.euroset.ru/upload/resize_cache/iblockResized/iblock/539/539af252984e242ba9ed175dc590c220_448x460_0_0_0_0.j pg

Экран 1280x800, памяти правда маловато, гиг всего... Но для эмуля спектрума точно хватит. ;)

tipa
29.06.2016, 09:17
Был такой ноутбучек Asus eepc, довольно симпатичный, компактный. Заказать у китайцев пластиковые корпуса и LCD. Собрать плату с процессором ARM и впихнуть в этот пластик. Сделать так, чтобы в одном режиме ноутбук был как спектрум (может как Phoenix?), в другом режиме как нативный arm-ноут (но как быть с bios?).


все придумано уже нетбук на Андроиде (http://iru.ru/product/873980/)

creator
29.06.2016, 11:58
tipa, и где он? Нажал "Купить" — три зарядки для него предлагают. :)

tipa
29.06.2016, 16:47
tipa, и где он? Нажал "Купить" — три зарядки для него предлагают. :)

искать, может где завалялся у кого. официально уже не продается. у нас вроде где-то валяется, поищу,если интересно. но владелец может цену до 10К загнуть :(
я его показал для того, чтобы увидели, что есть уже арм в виде нетбука. если честно, я не знаю, можно ли на него что-то кроме андроида ставить. ну там линухи или еще что....

AzAtom
04.12.2016, 10:41
Интересная идея, в принципе. Для разрешения 1024х768, 15 бит потребуется 4*4*15=240 спектрумов (ядер) и для 1280х960, 15 бит потребуется 5*5*15=375 спектрумов (ядер).
Только как генерировать полноцветные картинки для игр? Их придётся перерисовывать полностью. А раз так, то и проблемы работы на одном компе нет - загружать туда просто исходную игру и всё. Ну и понадобится упаковщик ресурсов, который новые полноцветные картинки разделяет на стандартные картинки для каждого "ядра". Проблема в том, что у разных игр разная организация хранения графики. Значит, универсального упаковщика ресурсов не получится, он будет уметь только заранее подготовленные игры. Тогда их можно и в комплект упаковщика добавлять сразу.
Получается, должно быть одно главное ядро, которое покруче, чем спектрум, чтобы хватило производительности и памяти, чтобы распределить картинки и программу по ядрам z80. Затем запускается такт и производится запуск всех ядер одновременно.

- - - Добавлено - - -

Для проверки на эмуляторе можно будет взять 15 ядер и получить 256х192, 15 бит.

andrews
07.08.2017, 04:28
C 20 веком пора прощаться! Расцвечивать софт уже должны программы. Когда Игорь Мазница и я носились с идеей умощнения Sprinter-а в 1999 году, еще не было ни такой памяти, ни таких дешевых и мощных процессоров, ни терабайтных флэшей. Компактный экран ZX Spectrum всегда был преимуществом, а не недостатком. Генерить детализованную векторную или точечную графику и раскрашивать ее можно только через распознавание образов! Ускорять код многократно часто не имеет смысла, а вот делать "физику" для малоточечного графического экрана это интересно. То, из-за чего мы рассорились с Игорем Мазницей, так это из-за искусственного интеллекта для Spectrum-а. Он был категорически против, а я так и не смог его убедить, что простая графика оставляет резерв для искусственного интеллекта. Ни один Windows и ни один Android интеллектом так и не обладает до сих пор от того, что все усилия разработчиков ушли в "звук и картинку".

Dimon spb
08.08.2017, 14:39
Можно, я свои 5 копеек внесу?

Сама формулировка "развитие ретрокомпов" звучит как-то коряво. Все равно, что развивать Студебеккеры. Есть ретро-автомобили, их прелесть в восстановлении и сохранении их оригинального вида, чем больше оригинальных частей - тем лучше. И есть единичные тюнинговые проекты для души и оригинальности.
С ретро-компами не совсем так, но общего много. Оригинальный Спектрум с оригинальными же примочками типа микродрайва, бетадиска или принтера - это как музейный экспонат. Или наши клоны вроде Ленинграда и Пентагона - тоже в своём роде. А новодел вроде Эволюшн - просто для души, чтобы не убивать музейный экспонат, но поиграть, посмотреть демо на реальном железе, а не на эмуляторе, в плюсе как раз плюшки в виде SD-карточек, смене прошивок и т.п.

Я считаю, что главное отличие Спектрума от всех прочих - это как раз его экран, или видеорежим. Если так хочется цвет на пиксель, зачем вообще замыкаться на Спектруме, играйтесь с Коммодором, Амигой или, упаси Бог, пц )
По мне так вся соль как раз в ухищрениях и изворотах рисования и программирования под наш единственный и неповторимый экран.
Демы под TS-conf меня не впечатляют, нет в них той изюминки, удивления, которое испытываешь при просмотре демок под стандартный экран "а как это вообще сделано?"
Единственное прикладное решение расширенных видеорежимов я вижу в системном софте - чтобы на экран помещалось больше текста, например, в ассемблере или командере, а творить игры и демы нужно под классику. Но кому это надо, когда всё, от графики до кода, пишется и отлаживается на PC?

А вот идея Спектрума-ноутбука и у меня уже давно. Взять бы тот же eepc, выкинуть материнку, вставить Evo - цены б ему не было. Только надо каким-то макаром подключить дисплей (а будет ли он держать 50Гц?), клаву и тачпад.

goodboy
08.08.2017, 15:05
C 20 веком пора прощаться
а что делать пользователям которых вы кинули ???

andrews
08.08.2017, 18:52
Написать на [email protected] для начала. Возможно я принесу какую-то пользу сейчас. Кармически все правильно, за прошедшие 7 лет меня другие вдесятеро больше кидали по деньгам. Вот только в этом году на $1200, а за все время до $20 000. Я не мог уже отгружать тогда в 2010-м, что-то было просто не привезти - бывший шеф на работе за горло взял, да и оформлять приходилось через случайных здешних посредников. Но сейчас все изменилось, я ушел из Nova в марте этого года и время сейчас есть для исправления грехов. Что-то из тех деталей так и лежит неотосланное, другое можно компенсировать деньгами по курсу через Яndex.деньги или оплатой ваших заказов на Aliexpress по их ценам. Мне тут Мазница про Rindex-а написал. Смотрю и других уж многих не стало. Земля всем пухом!

andrews
09.08.2017, 00:50
Сама формулировка "развитие ретрокомпов" звучит как-то коряво. Все равно, что развивать Студебеккеры. Есть ретро-автомобили, их прелесть в восстановлении и сохранении их оригинального вида, чем больше оригинальных частей - тем лучше. И есть единичные тюнинговые проекты для души и оригинальности."
Компьютер более состоит из идей, чем автомобиль. А вот возможность их реализации зависит от уровня элементной базы и ее доступности. В случае ZX Spectrum люди берут "классику" и пытаются развивать ее архитектуру с учетом своих возможностей, привязывая к ней современную и доступную перефирию. Только смотрите вот-вот станут доступны флэшки 1 Tb и HDD 20 Tb. Меня здесь не было 7 лет и за это время креативное сообщество вовсю использовало свою креативность по всем направлениям( эмуляторы, неоклассика, fpga-клоны). За несколько часов я не успел конечно охватить все достижения, но подозреваю, что у fpga-креаторов, хардкорных программеров- электронщиков просто нет доступа к последним интерфейсам, а если бы и был, то для реализации потребовались бы чипы fpga стоимостью > $500 Да и цикл разработки потребовал существенно больших затрат. Несколько проще в этом смысле разработчикам эмуляторов, им нужны только открытые библиотеки для современной перифирии, которые берутся от разработчиков Linux вынужденных писать драйвера под новое железо. Писишное железо по определению дешевле и доступней, чем fpga сопоставимой мощности. Есть и другое направление теперь у эмуляторщиков, связанное с железом под мобильники и наладонники. Там тоже бурный прогресс и неиспользованные процессоры вполне способны заменить как самопаяные fpga, так и фирменные fpga платы. Огромное количество китайских компаний клонируют "малинки" с более продвинутыми коммуникационными многоядерными ARM-процами. Но это по реализации. А теперь возвращаясь к концепции. У писи и наладонников большой экран и мощный звук. По отношению к объему переносимой, хранимой и обрабатываемой цифровой информации это огромные затраты производительности железа( процов, сопроцов и прочей поддержки). Чем проще картинка и звук, тем больше ресурсов остается на что-то другое. А именно на интеллектуальную поддержку пользователя. Это мне было ясно еще со времен FunTop 98. Но за 20 прошедших лет в этом направлении, как я вижу, никто не попытался сделать хотя бы несколько шагов. Теперь уже появляются нейрочипы, но я больше бы порадовался пролог- или лисп-машине. А еще лучше любой реализации интеллектуальной ОС для ZX-Spectrum-а. Иметь параллельных z80 ядер это конечно здорово. Но кто мешает иметь пару z80 ядер, пару ARM ядер и кучу всего еще работающих параллельно и взаимодействующих между собой? Для fpga это очень сложно, а для софтверного эмулятора на продвинутом pc? можно и через usb3 их нанизать несколько штук. Вопрос зачем? А почему собственно и нет? Нигде как здесь нет такой концентрации креативных людей. Назовите это как угодно. И видите это отличается от коллекционирования компютеров, получения от них ностальгического кайфа и просто личностного роста разработчика. Это создание чего-то нового, что может заинтересовать потребителя далекого от ретро-компьютеров. На тот рынок нам хода нет, а этот рынок в любой момент можно создавать самим. И мысли об этом были последние 35 лет сначала в СССР, теперь вот в ее независимых осколках.

Dimon spb
12.08.2017, 09:23
andrews, я правильно понимаю, что произнося такие слова как "рынок", "потребители", Вы говорите о коммерческом применении? Серьезно, коммерческий проект ИИ на Z80? Что-то мне подсказывает, что ИИ требует мощной арифметики, а с ней у Z80 туго.

- - - Добавлено - - -


Вопрос зачем? А почему собственно и нет?
)))

Raydac
12.08.2017, 14:09
ИИ требует мощной арифметики
ИИ это штука очень разная и разноплановая, надо не забывать что ИИ проги писались успешно еще на железе по сравнению с которым Спектрум - суперкомпутер

SfS
12.08.2017, 19:50
Если в FPGA упихать несколько Z80-ядер - можно было бы замутить много интересного:)
Но как всегда - кто будет писать софт?)

andrews
12.08.2017, 21:58
Посмотрите, на чем лисп умудрились запустить http://www.ulisp.com. Попробовал на arduino mini, как ни странно работает. Для z80 тоже есть реализации, правда пока не тестировал, заходим отсюда http://web.archive.org/web/20100131151915/http://www.ip9.org/munro/skimp/ и далее по ссылкам. Но отсюда до AI-OS конечно далеко. В принципе да, одного параллельного ядра z80 для интеллектуализации ZX Spectrum-а вполне достаточно. Другое ядро может заниматься обычной операционкой и ее задачами.

- - - Добавлено - - -


Но как всегда - кто будет писать софт?)
сначала надо определить концепцию, что и как интеллектуализировать, нужно чтобы обычная операционка при выполнении оставляла в какой-то области следы своей работы. И нужен интерфейс к ее функциям для запуска со стороны AI-z80. Действительно можно много всего интересного делать. Хотелось бы, например, обрабатывая файлы, выделять в них все относящееся к конкретному железу, экрану и звуку, и как это соответствует той платформе, на которой пытаются запускать. Если будет еще совет, или конвертация кода, вообще фантастика.

- - - Добавлено - - -


Серьезно, коммерческий проект ИИ на Z80?
разве проще на современном PC? А где взять детализированную информацию о железе и операционке? Приниципиально уже невозможно из-за боязни х.....в. У ZX Spectrum и железо все открыто, и операционки с драйверами. При желании и усердии белых пятен нет. Пока вроде все три( четыре) ветви могут освоить: 1)неоклассика при установке второго z80 или в его сокет 2-ядерного fpga c внутренней памятью и контроллером прерываний для трассировки, быстродействие его желательно иметь в разы больше, к нему же и wifi у 4 он есть; 2) fpga понятно;3) PC эмуляторы( особенно под Linux);4) многоядерные коммуникационные процессоры ARM(эмуляция под их Linux или другие ОС)

Dimon spb
12.08.2017, 22:37
andrews, я плохо сформулировал вопрос, видимо. Коммерческий, так или иначе, подразумевает прибыль. Т.е. должны найтись применения, проще говоря, люди, готовые платить за нечто им нужное. Так вот в какой сфере Вы видите _коммерческое_ применение ИИ на Z80? Какие задачи должен решать этот ИИ и чему служить?

Dimon spb
14.08.2017, 20:47
Ни один Windows и ни один Android интеллектом так и не обладает до сих пор от того, что все усилия разработчиков ушли в "звук и картинку".
А что Вы вообще подразумеваете под интеллектом, давайте договоримся о понятиях.
По мне, так современные гаджеты в плане ИИ за последние несколько лет просто взлетели. Распознавание голоса и лиц на фото, например. Я был в шоке, насколько точно новый ios рапознаёт лица и сортирует фото по людям. При разном освещении, с разными эмоциями, с разных ракурсов.

andrews
15.08.2017, 21:02
Это хорошо! Нейросеть задействовали, или нейрочип готовый. По поводу распознавания голоса. Детский голос от взрослого отличать умеют? Использовать можно при доступе к нежелательным для детей ресурсам по голосовым запросам ok гугл. По поводу распознавания образов это скорее функция DSP. Хотя сравнение с эталоном, соглашусь, задача AI. Интеллектуальная ОС. Если есть функция самообучения, настройки на нужды пользователя. Например, при запросе LISP исходники, ищет по все сети всеми возможными способами, как человек, ресурсы даже при отсутствии индексации. Например просто набрать "Андрей Савичев" выскакивает теперь бывший рязанский губернатор. Но Google сопоставляет сразу мой почтовый ящик и показывает упоминание в сети про меня, а не про бывшего рязанского губернатора. Когда ищет он, все с точностью до наоборот. Но сам Google не ищет без моего участия ресурсы, которые могли бы меня заинтересовать. Он не может составить самостоятельно портрет моих компетенций, наметить траекторию моего самообучения и т.д. То есть интеллектуальная ОС должна самостоятельно настраиваться на своего владельца, и при подключенной сети в любое время суток искать ресурсы. Это первый уровень. Второй - самопрограммирование! Допустим я заказал на Aliexpress новую fpga. Ясен пень, что если меня интересуют компьютеры ZX Spectrum она должна начать с поиска открытых ядер, пооптимизировать код и если он в эту fpga не влазит, прислать мне об этом к утреннему кофе сообщение ))

Reobne
16.08.2017, 07:02
andrews,
- Вы что, и пальцы за меня загибать будете?
- Ага!

Shiny
16.08.2017, 10:20
cp/m - нашевсе (: