Много-процессорный клон ZX возможности, перспективы?
|
|
Hazar | Дата: Вторник, 13.08.2013, 17:40 | Сообщение # 1 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Вопрос возник при разработке видео-адаптера дело в том что хорошая графика(1024*768) требует соответствующую базовую плату которая должна объединять ресурсы процессоров.
Если делать например 4 процессорный клон что он должен уметь делать, какими свойствами параметрами обладать.
ну и конечно никак не обойтись без новой специальной графической шины
старая шина ZX BUS то-же конечно пригодится для совместимости
Что кто думает посоветует?
Добавлено (13.08.2013, 17:40) --------------------------------------------- Текущая комплектация для проекта
Double-sided copper-clad boards 30*20cm FR4 1.5 MM
EPM3512AQC208 ALTERA QFP208 IC 2шт
QFP208 0.5mm Convertor Board to 2.54mm 2шт
W27C512-45Z IC EEPROM 512KBIT 45NS 28DIP
8MHZ Crystal Oscillator HC-49S
CPU Z84C0020PEC 4шт
40 Pin 2x20 Female 2.54 Socket Connector FS
Dual Row 5 x 2 ISP Download I/O Socket DIY New, high quality
K6R4008V1D-TC10 SAMSUNG память 512кБ 4шт
ICS501MIT генератор умножитель для кварца
A09-822JP 8.2K 9 feet 2.54mm pitch exclusion (набор резисторов для шины cpu)
DIP 40 Pin 2.54mm Pitch IC Adaptor Sockets панелька для процессоров
30cm 2.54mm female to female Dupont wire cable Line 1p-1p pin connector
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Среда, 14.08.2013, 18:49 |
|
| |
Black_Cat | Дата: Среда, 14.08.2013, 10:22 | Сообщение # 2 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) Если делать например 4 процессорный клон что он должен уметь делать, какими свойствами параметрами обладать. Единственный существующий 4х процессорный концепт известный мне это ZX-Poly. В нём процессоры работают параллельно , исполняя один и тот же код, с разницей в данных, так что каждый обрабатывает свою цветовую компоненту - R,G,B,I. Если рассмотреть гипотетическую шину для такого компьютера, то в первой прикидке там добавляются ещё три шины данных, т.к. данные и соответственно видео ОЗУ для каждого проца своё, а адресация одна на всех.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Среда, 14.08.2013, 17:16 | Сообщение # 3 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) Если рассмотреть гипотетическую шину для такого компьютера, то в первой прикидке там добавляются ещё три шины данных, т.к. данные и соответственно видео ОЗУ для каждого проца своё, а адресация одна на всех. Адресацию то-же планирую сделать индивидуальную для каждого процессора но на уровне видео-адаптера да -адресное пространство для графики едино
Шина данных 32 разрядная собирается на разъем расширения виде-адаптера (ZX-XGA)
Процессоры могут работать не синхронно Если есть необходимость то с привязкой например по сигналу M1 (с формированием сигнала wait ) тогда будет работать синхронно управление синхронизацией можно сделать через специальный порт
схемно на железе пока еще не продумал как реализовать
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Среда, 14.08.2013, 19:24 |
|
| |
Black_Cat | Дата: Среда, 14.08.2013, 23:04 | Сообщение # 4 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) Процессоры могут работать не синхронно В ZX-Poly процессоры не могут работать несинхронно, т.к. они обрабатывают каждый свой цвет.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Четверг, 15.08.2013, 03:27 | Сообщение # 5 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) В ZX-Poly процессоры не могут работать несинхронно, т.к. они обрабатывают каждый свой цвет. У него обрабатывается один и тот же участок кода в одном адресном пространстве
у меня-же можно запустить совершенно разные программы если эти программы не выводят графику то результат работы виден не будет
Если все 4 процессора выводят графику то разбираться с этими данными будет исключительно видео адаптер
Spectrum жив в нашей душе навсегда
|
|
| |
Black_Cat | Дата: Четверг, 15.08.2013, 14:30 | Сообщение # 6 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) У него обрабатывается один и тот же участок кода в одном адресном пространстве А куда ещё пристроить многопроцессорность на Спектруме кроме как на параллельную обработку цветовых компонент, не имея нормальной ОС даже для одного процессора я и не представляю..
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Четверг, 15.08.2013, 17:21 | Сообщение # 7 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) А куда ещё пристроить многопроцессорность на Спектруме кроме как на параллельную обработку цветовых компонент Обработка расширение цвета уже есть в плане
Еще можно выводить разные спрайты сразу в двух или более слоях притом возможно реализовать прозрачность спрайтов
Дополнительные процессоры можно также использовать для увеличения разрешения картинки например 1 процессор выполняет основную программу (сканирование клавы, проигрывание музыки и др) 2 процессор отображает фоновые картинки (с уменьшенной яркостью контрастностью) 3 процессор занимается интерполяцией допустим меняет шрифт примененный в игре на другой) 4 процессор может заниматься выводом звуковых эффектов и др
новая ОС при этом не является основным компонентом все можно сделать используя старые наработки ведь с хорошим видео-адаптером все становится возможным к тому-же значительно разгружается главный процессор
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Четверг, 15.08.2013, 17:26 |
|
| |
Black_Cat | Дата: Четверг, 15.08.2013, 17:25 | Сообщение # 8 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) Дополнительные процессоры можно также использовать для увеличения разрешения картинки например 1 процессор выполняет основную программу (сканирование клавы, проигрывание музыки и др) 2 процессор отображает фоновые картинки (с уменьшенной яркостью контрастностью) 3 процессор занимается интерполяцией допустим меняет шрифт примененный в игре на другой) 4 процессор может заниматься выводом звуковых эффектов и др Для этого нужна многопроцессорные ОС и софт, чего нет и не предвидится.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Четверг, 15.08.2013, 17:29 | Сообщение # 9 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) Для этого нужна многопроцессорные ОС и софт, чего нет и не предвидится. нет не нужна например программа сканирования клавы есть в виде отдельного куска кода копируете этот код допустим в пространство 2 процессора и запускаете он работает отдельно и никак не связан с первым процем
то-же самое с выводом музыки, планирую все сделать доступным для копирования и запуска прямо из бейсика
притом прерывания в теневых программах устанавливать не обязательно синхронизацию можно сделать на уровне мостов (результат работы программ подпрограмм можно получить через порты )
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Четверг, 15.08.2013, 17:52 |
|
| |
Black_Cat | Дата: Четверг, 15.08.2013, 19:40 | Сообщение # 10 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) нет не нужна например программа сканирования клавы есть в виде отдельного куска кода копируете этот код допустим в пространство 2 процессора и запускаете он работает отдельно и никак не связан с первым процем
то-же самое с выводом музыки, планирую все сделать доступным для копирования и запуска прямо из бейсика Это конечно понятно, но это опять же требует новый софт с разделением процессов, т.е. получается опять возврат к извечной спектрумовской проблеме - каждая программа вынуждена содержать используемые ею элементы ОС внутри себя самой, от чего хотелось бы уже избавиться раз и навсегда.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Среда, 11.09.2013, 12:26 | Сообщение # 11 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) то конечно понятно, но это опять же требует новый софт с разделением процессов, т.е. получается опять возврат к извечной спектрумовской проблеме - каждая программа вынуждена содержать используемые ею элементы ОС внутри себя самой, Этот вопрос к программистам
С моей точки зрения ОС должна быть предельно простой и поддерживать только базовые функции такие как организация ввода вывода , поддержка файловых систем . другими словами взаимодействие с периферией
Добавлено (09.09.2013, 17:35) --------------------------------------------- Управляющие порты для много-процессорного клона
1 XXXX порт управления дополнительными процессорами
поскольку процессоров всего 4 то требуется 4 бита для управления, поскольку главный (ведущий) процессор останавливать смысла немного, то можно задействовать всего 3 бита а самый первый бит заблокировать установка бита в единицу запускает процессор ( думаю использовать для этого сигнал WAIT )
2 XXXX порт синхронизации программ здесь то-же потребуется 4 бита, если бит установлен то синхронизация включена (реализовано аппаратно с помощью сигнала MREQ ) формируется небольшая задержка дополнительных процессоров c помощью сигнала WAIT , синхронизация программ возможна только относительно ведущего процессора.
3 XXXX порт управления видео-вывода и конфигурации пиксела по строкам и колонкам порт может иметь одинаковый № для разных процессоров (работает только внутри адресного пространства экрана)
изначально эту функцию планировалось реализовать на новом видео-адаптере, но так как возникли довольно большие сложности с конкретной реализации устройства впоследствии я решил что намного проще это сделать на многопроцессорной машине с 32 разрядной шиной видео-данных.
Смысл работы этого порта следующий- поскольку имеем 4 процессора и допустим на каждом из них выполняется какая-нибудь программа которая выводит графику (в стандартный экран 16384 6912 байт) то естественно мы увидим полную мешанину так как процессоры выводят разную информацию в одни и те-же ячейки, что-бы как то разделить эту информацию и получить в итоге более менее полноценную картинку 1024*768
Видео-адаптер резервирует для каждого бита 2 байта своей памяти (но на экране при этом отображается квадратик 4*4 ) при этом начальный бит может отображаться в любом месте квадратика, Конкретное место отображения зависит от состояний битов порта . В итоге данный порт позволят отображать не только точки и квадраты(2*2-4*4) но также и линии. для реализации всех комбинаций требуется 8 бит. При записи в порт знач. FF пиксел отображается в виде квадрата 4*4
4 XXXX XXX1 - 2 порта расширения графических примитивов для вывода диагоналей и треугольников внутри квадрата 4*4 . так как в квадрате 4*4 существуют 10 значимых диагоналей то для работы порта требуются 10 бит
5 XXXX XXX1 - порты копирования информации с одного адресного пространства в другое адресное пространство CPU (пока не продумал как делать)
Также нужны порты для изменения яркости возможно контрастности, но так как этот вопрос относится к конкретному видео-адаптеру то я в этой теме пока рассматривать не буду.
Сообщение отредактировал Hazar - Среда, 11.09.2013, 12:27 |
|
| |
Hazar | Дата: Пятница, 13.09.2013, 16:50 | Сообщение # 12 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Назначение выводов слота расширения ZX-XGA
в качестве разъема используется два ISA slot 62 + 62 pin
Добавлено (13.09.2013, 16:50) --------------------------------------------- Какие сигналы еще добавить на шину предлагайте (уже начал плату разводить, потом поздно будет) наверно кадровый стоит еще вывести или INT
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Пятница, 13.09.2013, 16:52 |
|
| |
Black_Cat | Дата: Пятница, 13.09.2013, 23:11 | Сообщение # 13 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) Этот вопрос к программистам
С таким же успехом можно задавать вопросы и камню. Очень сомневаюсь в реальности такого подхода, т.к. системных программистов пишущих для Спектрума по всему миру, можно пересчитать на пальцах одной руки. Из них скорее нет ни одного, кто из энтузиазма взялся бы написать полноценную 8ми разрядную многозадачную ОС под единичный компьютер. Имхо не реально.
Цитата (Hazar) в качестве разъема используется два ISA slot 62 + 62 pin
В чём смысл такого решения для нового компьютера? Имхо концептуально правильней делать четыре компьютера со спец шиной реализующей многопроцессорность, и спец шиной для объединения видеокарт этих компов в одну. При таком подходе каждый из компов может быть слегка видоизменённым Спектрумом, как сделано например в ZX-Poly. Имхо, это единственный реальный вариант реализации подобной архитектуры.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Суббота, 14.09.2013, 07:21 | Сообщение # 14 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) С таким же успехом можно задавать вопросы и камню. Очень сомневаюсь в реальности такого подхода, т.к. системных программистов пишущих для Спектрума по всему миру, можно пересчитать на пальцах одной руки. Из них скорее нет ни одного, кто из энтузиазма взялся бы написать полноценную 8ми разрядную многозадачную ОС под единичный компьютер. Имхо не реально. В этой моей системе особо ничего нового нет это просто четыре спектрума, с общей графической шиной единственно что требуется это добавить поддержку новых портов (жду когда вы разочаруетесь в своей "химере" и все таки выделите порты для многопроцессорника) И с нуля ничего писать не надо процедуры почти все есть. Даже решения по FAT32 (где то в сети мельком видел) Так что основная проблема это сделать грамотную сборку с поддержкой новых портов и с возможностью теневой работы
Кстати для полноценного вывода картинки не обязательно использовать все 4 процессора, предлагаемая архитектура позволяет делать полный видео-вывод 1024*768 с помощью одного процессора но требуется несколько циклов, то есть хоть появилось куда приспособить высокое быстродействие
Добавлено (14.09.2013, 07:21) --------------------------------------------- Цитата (Black_Cat) четыре компьютера со спец шиной реализующей многопроцессорность, и спец шиной для объединения видеокарт этих компов в одну. При таком подходе каждый из компов может быть слегка видоизменённым Спектрумом, Нет на такое я не пойду это надо делать четыре платы Имхо развитие это интеграция разных свойств качеств в одно устройство впоследствии можно даже все 4 или даже 16 процессоров упаковать в какую нибудь новомодную плисину но это как говорится дело будущего
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Суббота, 14.09.2013, 07:25 |
|
| |
Black_Cat | Дата: Суббота, 14.09.2013, 11:15 | Сообщение # 15 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Цитата (Hazar) жду когда вы разочаруетесь в своей "химере" и все таки выделите порты
порты при желании можно найти и так, для NemoBus их пока хватает
Цитата (Hazar) Имхо развитие это интеграция разных свойств качеств в одно устройство
Нет, интеграция - это следствие развития технологии микроминиатюризации, чего здесь и не наблюдается. А что касается развития, то оно всегда предполагало использование модульности, и абсолютно все технические устройства построены на этом принципе, иначе пришлось бы изобретать способ изготовления цельнолитых автомобилей и т.д.
Цитата (Hazar) даже 16 процессоров упаковать в какую нибудь новомодную плисину
В современные клоны на FPGA с некоторыми ограничениями можно впихнуть второй процессор, и имхо поэтому в ближайшее время будет востребована максимум двухпроцессорная видеообработка, при том, скорее всего разделение вычислений будет битплановое, т.е. 2 процессора - 2 битплана, и видяха, совмещающая эти битпланы.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Суббота, 14.09.2013, 16:11 | Сообщение # 16 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Цитата (Black_Cat) всегда предполагало использование модульности, и абсолютно все технические устройства построены на этом принципе, иначе пришлось бы изобретать способ изготовления цельнолитых автомобилей Модульность это конечно хорошо Но Есть вещи которые закладываются только при разработке (не пилить же материнскую плату на фрагменты)
Короче говоря почти все комплектующие мне пришли, так что отступать не куда решил делать именно 4 процессорный клон но сначала просто постараюсь запустить на 1 процессоре а там посмотрим
Добавлено (14.09.2013, 16:11) --------------------------------------------- Цитата (Black_Cat) порты при желании можно найти и так, для NemoBus их пока хватае Короче порты я выберу сам ну потом только сильно не кричите если что не так
в принципе не важно потом можно переназначить
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Суббота, 14.09.2013, 20:23 |
|
| |
Black_Cat | Дата: Воскресенье, 15.09.2013, 15:32 | Сообщение # 17 |
Координатор
Группа: Координаторы
Сообщений: 730
Статус: Offline
| Сколько портов надо, и с полной или короткой адресацией? Лучше с полной, т.к. короткая адресация проблематичнее.
"Трудно найти чёрную кошку в тёмной комнате.. ...особенно, если её там нет", "Forever!". "Я никогда не причиняю им зла. Я говорю им правду, и они думают, что это - зло." Гарри Трумэн
|
|
| |
Hazar | Дата: Понедельник, 16.09.2013, 16:38 | Сообщение # 18 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| "Порты только с полной адресацией
2 порта управления процессорами (включить выключить и запуск с установленного адреса)
1 порт синхронизации процессоров
3 порта для управления видео-выводом (включить выключить отображение пикселов)
4 порта для копирования (аналог DMA с предустановкой адресов, 1-адрес источника, 2-адрес назначения, 3-длина фрагмента.) (и последний 4 порт это предварительная установка номера процессора "откуда куда копируется') 1000 ----> 0100
4 порта для установки общей яркости (отдельно для каждого слоя)
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Понедельник, 16.09.2013, 17:14 |
|
| |
Hazar | Дата: Понедельник, 30.09.2013, 17:32 | Сообщение # 19 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Освоено изготовление модулей памяти на основе микросхем K6r4008v1d в корпусе 44 tsop объем модуля 512 кБ , напряжение питания 3,3в
Распайка разъема: (назначение выводов, лицевая сторона A) A1 -- +3.3v B1 -- +3.3v A2 -- A0 B2 -- A1 A3 -- A2 B3 -- A3 A4 -- A4 B4 -- A5 A5 -- A6 B5 -- A7 A6 -- A8 B6 -- A9 A7 -- A10 B7 -- A11 A8 -- A12 B8 -- A13 A9 -- A14 B9 -- A15 A10-- A16 B10-- A17 A11-- A18 B11-- ключ A12-- D0 B12-- D1 A13-- D2 B13-- D3 A14-- D5 B14-- D4 A15-- D7 B15-- D6 A16-- WE (WR) B16-- OE (Z сост.) A17-- резерв B17-- CS (выбор к.) A18-- резерв B18-- резерв A19-- резерв B19-- резерв A20-- общий B20-- общий $IMAGE1$
Добавлено (30.09.2013, 17:04) --------------------------------------------- Цитата (Hazar) 4 порта для копирования (аналог DMA с предустановкой адресов, 1-адрес источника, 2-адрес назначения, 3-длина фрагмента.)(и последний 4 порт это предварительная установка номера процессора "откуда куда копируется') 1000 ----> 0100 Появилась новая идея как сделать то-же самое только с использованием одного порта .
Можно организовать перехват с шины данных команды LDIR это всем известная команда пакетной пересылки данных с одного место на другое. Эту команду частенько использовали в программах для очистки или заполнения участков памяти однотипными данными . Работает она следующим образом:
Код Мнемоника Операция КОП Кол-во байт Кол-во циклов Кол-во тактов шестн. LDIR (DE)←(HL) 1110 1101 ED 2 5 21 DE←DE+1 1011 0000 B0 2 4 16 HL←HL+1 BC←BC-1 Повтор, пока BC≠0
В регистр HL помещается начальный адрес блока данных источника. в регистр DE помещается адрес куда требуется с копировать данные а в регистр BC длина копируемого блока
Известно также что эта команда работает циклически при этом каждый раз когда байт пересылается должен активироватся сигнал процессора M1 , то есть можно просто считать количество сигналов M1 и это значение должно соответствовать объему переданных данных .при этом данные можно записать в другое адресное пространство коммутируя мультиплексорм адресные шины разных процессоров. Если реализовать такой перехват команды, то потребуется всего один порт управления который определяет что куда копируется, например следующая установка битов порта ( 0001 0010 ) определит что нужно скопировать данные 1 CPU в область адресного пространства 2 CPU . Установка битов порта в 0000 0000 включит режим обычной работы с одним процессором.
Также можно сделать перехват адресов передачи которые появляются сразу за командой LDIR , что конечно реализовать сложнее. Но дает преимущество в том что сам процессор становится не нужным для передачи.
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Вторник, 01.10.2013, 11:27 |
|
| |
Hazar | Дата: Вторник, 01.10.2013, 11:05 | Сообщение # 20 |
80h
Группа: Пользователи
Сообщений: 231
Статус: Offline
| Моя текущая печатка материнской платы что пока сделал
Если кому-то не нравится возможность установки сразу четырех процессоров (дело это хозяйское можно не ставить)
Плата будет вполне работоспособна с одним процессором (второй мост при этом можно не запаивать) отпадает также необходимость в распайке второго слота (ZX-XGA)
Но естественно видео-вывод будет работать медленнее так как нужно частенько переключать через порт отображение пикселов
Spectrum жив в нашей душе навсегда
Сообщение отредактировал Hazar - Вторник, 01.10.2013, 19:08 |
|
| |
|