Если имеется более 1 проца, то следовательно необходимо организовывавать распределение доступа к шине. А в известных мне моделях клонов используется динамическая память, что накладывает некоторые ограничения. Не для кого не секрет, что в большинстве клонов, в момент обращения проца к памяти происходит генерация WAIT, что является следствием медленной работы памяти. Таким образом о мультипроцессорности речи быть не может, хотя можно извратиться и сделать память для каждого проца свою, но как же быть с устройствами. если всем дополнительным процам нужно будет работать с устройствами, то шина головного проца в некотроый момент времени будет занята на столько, что он не сможет сам выполнять команды. тем более если память у всех своя, значит нужно её каким-то образом пересылать... что тоже занимет время, за которое мы и боремся...
Отсюда вытекают некоторые правила:
1. Частота шины должна обеспечивать работу как минимум 2-х процов и видеоконтроллера. поскольку минимальный цикл чтения памяти у Z80 3 такта, мы получаем:
1 процессор 28 000 000/3=9,33 МБ/сек или 107 нс.
2 процессора 2*28 000 000/3=18,66 МБ/сек или 53 нс.
3 процессора 3*28 000 000/3=28 МБ/сек или 35 нс.
4 процессора 4*28 000 000/3=37,33 МБ/сек или 26 нс.
Но еще ведь есть и видеоконтроллер который должен успевать тоже читать из памяти и не тормозить другие процы. Максимальный поток данных выводимых на монитор составляет 7000000/8*2=2,5МБ/сек в обычном режиме 256*192*1 бит на пиксель+1 байт атрибута на 64точки, 3,5мб/сек при 320*200 4 бит на пиксель, 7 МБ/сек при 320*200 8 бит на пиксель (BitPerPixel), а в перспективе есть еще и 640*480*60-75гц*8BPP а это уже не много не мало, а 25.175-31.500МБ/Сек.
За счёт увеличения разрядности памяти до 16 бит(надеюсь в ближаёшее время не потребуются 16 битные режимы при разрешении 640*480) и временем доступа к памяти равным 15нс (на которой в данный момент ставяться эксперементы) то мы получаем среднее время доступа равное 30 нс во время прорисовки основной части экрана, и 15 нс при формировании бордюра и синхроимпульсов.
Отсюда видно что в теории всё это возможно, и я буду всеми силами пытаться это реализовать (как минимум 2 проца).
2. У каждого проца должны быть свои регистры адресации памяти.
3. Необходима система разрешения конфликтов при обращении к устройствам хотябы на программном уровне.
4. Необходимо отучать софтварных программистов работать с портами ввода вывода на прямую. вся работа с устройствами ТОЛЬКО ЧЕРЕЗ СРЕДСТВА ОПЕРАЦИОННОЙ СИСТЕМЫ или, что менее предпочтительно, через драйвер, но хотя можно и в драйвер встроить функцию распределения доступа.