Author |
Message |
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
А если заюзать двух портовую ОЗУ, правда как з наличием и ценами пока не знаю.....
_________________Хочу стать всезнайкой
|
15 Aug 2012 09:38 |
|
|
petrenko
Doomed
Joined: 10 Mar 2012 16:21 Posts: 598 Location: РФ
|
Все, здравствуйте !
Судари уважаемые, а зачем вообще разделять память ?
Ведь распараллеливание вычислений можно (и даже желательнее) организовывать "а-ля" инмос-транспьютер, то есть собираем к-мерный гиперкуб из 8 , 16 или более процессоров и переписываем компилятор "Оккама" под их систему комманд.
Ну разве что малюсенькое "окошечко" этак на 4Кб оставить для системных нужд.
P.S. Прошу сильно не горячиться по поводу данной идеи - ведь в каждой шутке есть доля шутки. ( Если кто-нибудь что-нибудь не понял - я не виноват.)
|
15 Aug 2012 17:06 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22586 Location: Silicon Valley
|
транспьютеры ущербны во многи смыслах - в первую очередь из-за того, что связывались они ПОСЛЕДОВАТЕЛЬНЫМИ каналами связи, ну а во вторую - топология их соединений как правило была статическая и проограммы писались под конкретную схему - что не есть гуд...
|
15 Aug 2012 17:54 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
как сказал Shaos, Транспьютеры связывались ПОСЛЕДОВАТЕЛЬНЫМИ каналами связи, а это очень не гуд.
К примеру взять 2 ЦПУ 33 мгц ОЗУ 1мб, ну и вся периферия, как ето все соединить через последовательную шину, не водя процы в ожидание??
Луче уж как в пропеллере!!!
_________________Хочу стать всезнайкой
|
16 Aug 2012 06:02 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
Долго с другом обсуждали варианты сопряжения двух ЦПУ, и пришли к выводу что самый оптимальный и продуктивный вариант, вариант пред-выборки команд для каждого из ЦПУ, иными словами получается типа мост.
Но к сожалению построить данное чудо на расыпухе мне трудно представимо, так что надо прерваться на некоторое время для ознакомления с ПЛИС.
_________________Хочу стать всезнайкой
|
17 Aug 2012 05:59 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А как вы надумали их различать? - Какие команды - для одного процессора, а какие - для другого?
И как они будут работать параллельно и многозадачно? Потому как если из очереди
насовывать команды для одного процессора, то второй - тупо стоит...
Но рациональное звено я одно увидел... чтобы не переписывать заново
уже сущестующее ПО,
а я упрямо хочу именно этого, можно попробовать ввести в готовую программу
флаги-префиксы распараллеливания...
Тоже не решит проблему в целом, но как вариант - обдумать можно...
_________________ iLavr
|
17 Aug 2012 15:11 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Ну, есть много вариантов. Вот на вскидку:
1. После аппаратного сброса работает только один процессор, остальные спят.
2. Либо есть порт, при чтении из которого возвращается номер процессора.
3. Либо после сброса у каждого процессора в адресном пространстве своя страница ПЗУ.
4. Тут мог быть ваш вариант
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
18 Aug 2012 00:07 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
4. Запуском ЦПУ как раз и будет управлять схема пред-выборки! Так как при запуске надо знать поведение ЦП для подальшего кеширования команд. Спят оба, в зависимости от программы в "ПЗУ" будет произведен запуск того или иного ЦП. Ну как без этого
Ну это сильно расходится с совместимостью которою преследует Lavr, мне совместимость не нужна, но и не мешает, так что думаю придерживать большинства.
_________________Хочу стать всезнайкой
|
18 Aug 2012 05:08 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
И как же он в свете вопроса различает: Какие команды - для одного процессора, а какие - для другого?
И кто пишет в этот порт?
Если я правильно понимаю, какой-то процессор (супервизор ?) при старте под управлением своей программы должен по сути парсить основную программу и
управлять остальными процессорами?
_________________ iLavr
|
18 Aug 2012 08:14 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
Lavr, вы все правильно понимаете, "Супервизор" или "Мост", "Чипсет" одним словом ПЛИС.
Вы наверное имеете виду при старте?
Ну не теряя совместимости, думаю нужна сделать что стартовал один ЦП, после через порт управления передавался адрес запуска второго. Ну или что то в этом роде.
_________________Хочу стать всезнайкой
|
18 Aug 2012 08:49 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 863
|
Все команды только для первого процессора, остальные ничего не выполняют, им на сброс активный уровень идёт. Потом первый процессор подставит им с нуля нужные команды и отпустит сигнал сброса через системный порт.
Никто не пишет, этот порт только для чтения. Просто если первый процессор считает из этого порта, то вернётся, например, ноль, а если второй - еденица. Таким образом достаточно в программе считать из этого порта, а потом, в соответствии с номером, идти на свою программу для каждого процессора.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
18 Aug 2012 11:08 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Откуда этот первый процессор "знает" - что и кому подставлять с нуля?
_________________ iLavr
|
18 Aug 2012 11:12 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
Я думаю имелось виду не первый процессор а "Супервизор". В нем прошито кто первый кто второй.
_________________Хочу стать всезнайкой
|
18 Aug 2012 11:23 |
|
|
He3HauKo
Senior
Joined: 09 Aug 2012 11:20 Posts: 176 Location: 95.135.174.189
|
Я приставляю это следующим образом:
Запускаются 2 ЦП с активным сигналом сброса, супервизор извлекает команды из ПЗУ помещает их в буфер первого ЦП(0), снимает сигнал сброса.
В программе при необходимости через порт управления подается адрес с которого должен запустится второй ЦП(1).
Супервизор вносит в буфер второго ЦП команду типа JP xxxx, а также все последующие команды лежащие по адресу xxxx, и снимает сигнал сброса с второго ЦП(1).
Как то так
_________________Хочу стать всезнайкой
|
18 Aug 2012 11:31 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А зачем им сбрасываться всякий раз? Можно после общего сброса удерживать их по hold.
А на адрес переводить по INT через RST0.
Вобщем оба вы как-то убедительно не рассказали, как программа распределяется
между процессорами...
Особенно подозрителен порт только на чтение, который неясно как выдает разные
значения разным процессорам...
Я подозреваю, что вы это навскидку придумали, без глубокого осмысления...
_________________ iLavr
|
18 Aug 2012 11:43 |
|
|