Пока ковырялся со своим наладонником, продумывая масштабируемость, подумал грешным делом, а почему на спеке, в особенности для демосцены, нет мультипроцессорных решений. Мультисоунды есть.. Википедия дает общий ответ по "Мультипроцессор".
Так вот, сразу же возникло несколько вариаций на которые, возможно, у народа есть ответ/светлая мысль.
Предположим, что есть общее поле памяти и много CPU. Общий выполняемый код. Процессоры определяют свой номер по чтению из условного порта, допустим, мой уже любимый, порт #00h.
Определить же наличие и количество процессоров будет легко, учитывая то, что каждый выполняет свой код в зависимости от состояния порта. Количество зверьков до 256.
На практике хоть 2-4-8, это вполне нормально для пробы.
>Схемно, в лоб, многопроцессорность возможна (и) без особых схемных извратов, с наибольшей совместимостью с платформой, но.. каким, наиболее эффективным образом организовать одновременный доступ всех процессоров к общей памяти.
Дело в том, что у меня в zx-palm для минимизирования зависимости от спецпрограммирования применяется "ход конем", а именно ez прогружает образ ппзу в рам-память Z80, дальше запрет записи, ez пускает и тормозит его в зависимости от задач. Z80+ram+2микрухи - получается отдельный модуль. В данной схемной реализации нет особых проблем в добавлении n-го количества Z80-модулей, т.е. это нужно учесть заранее.
на чтение - самое простое, что пришло в голову, это дать каждому процессору свой кусок 64к, остальное тонкости запуска многопроцессорности в момент инициализации.
на запись - писать одновременно, это уже вопрос, т.е. кеширование или что-то другое.
..
Выстроить их в очередь для обращения к памяти, это самое простое, но теряем производительность на запись, а если учесть возможную необходимую зависимость, то и на чтение.
..
Дать четным одну часть памяти, а остальным другую. Предположим экраны/части (трети) экранов.
..
Запись в более быструю память "хитрым" и быстрым контроллером. Правда в этом случае, количество доппроцессоров сократится.
..
Поставить детекторы записи в память и.. по очереди читать(переносить) из памяти каждого в общее поле, откуда уже формируется картинка и т.п.