User Tag List

Показано с 1 по 10 из 48

Тема: Единый ZX конструктив.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #17

    Регистрация
    14.08.2006
    Адрес
    Владимир
    Сообщений
    4,581
    Спасибо Благодарностей отдано 
    64
    Спасибо Благодарностей получено 
    112
    Поблагодарили
    97 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MegaMyth
    Если имеется более 1 проца, то следовательно необходимо организовывавать распределение доступа к шине.

    [...расчеты вырезал... ]

    вся работа с устройствами ТОЛЬКО ЧЕРЕЗ СРЕДСТВА ОПЕРАЦИОННОЙ СИСТЕМЫ или, что менее предпочтительно, через драйвер, но хотя можно и в драйвер встроить функцию распределения доступа.
    Не, объясните мне - зачем городить огород? Строить SMP или NUMA (какие там еще есть умные слова? ) из того, что для этого не предназначено. Не получится. Все уйдет "в песок", т.е. такая "multyZ80" машина недопустимо много времени будет работать на свою собственную синхронизацию. А если еще учесть, что 1 Z80 одновременно все равно работает только с 64к памяти, то и вообще смысл теряется.

    Сделайте лучше фабрику лезвий с одним управляющим гипервизором. Проще простого - только нужно добавить обслугу прерываний и ПДП в каждое лезвие. И алгоритм работы будет простым и понятным (каким он есть уже не один десяток лет): в зависимости от требуемого действия по доступу к внешнему устройству или другому лезвию, лезвие будет выдавать на порт (т.е. на шину которой оно включено в фабрику) запрос, который дешифруется и маршрутизируется гипервизором. Выдав запрос в очередь, лезвие продолжает трудится над своей задачкой (или ждет - смотря какой алгоритм).
    - Если это запрос к внешним устройствам, подключенным к гипервизору, то он считает нужные данные, поместив их через ПДП напрямую в буфер запросившего лезвия, затем даст лезвию отмашку по прерыванию - мол, кушать подано.
    - Если это запрос на доступ к памяти другого лезвия (вариант когда одна однопроцессорная плата подготавливает данные для другой, или какие-то программные каналы обмена когда софтина умеет забрать под себя более чем одно лезвие), то гипервизор провериит этот запрос на корректность (платы лезвий в зависимости от ПО, которое на них крутится могут по-разному регистрироваться в гипервизоре) и перекинет данные.
    - Прочие выходы/входы типа клавиатуры или RGBI (т.е. консоль) элементарно мультиплексируются в один канал все тем же гипервизором (программно выбирается консоль одного из блэйдов - того на котором нужно сделать какие-то настройки или что-то запустить).

    Это, конечно, немного медленнее, чем многопроцессорность, но зато ничего не нужно изобретать (ПДП используют уже хрен знает сколько лет), совершенно прозрачно логически - т.е. отлаживаться будет в разы быстрее, расширяемость просто на уровне дотыкания платок в слот, причем характеристики лезвий могут быть разными - хоть Ленинград1 , хоть ARM или 68k - лишь бы DMA/INT было, да софт поддерживал совместимый протокол.
    Последний раз редактировалось Error404; 24.12.2006 в 11:06.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •