PC на Z80!
Moderator: Shaos
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
-
- Doomed
- Posts: 598
- Joined: 10 Mar 2012 16:21
- Location: РФ
Все, здравствуйте !
Судари уважаемые, а зачем вообще разделять память ?
Ведь распараллеливание вычислений можно (и даже желательнее) организовывать "а-ля" инмос-транспьютер, то есть собираем к-мерный гиперкуб из 8 , 16 или более процессоров и переписываем компилятор "Оккама" под их систему комманд.
Ну разве что малюсенькое "окошечко" этак на 4Кб оставить для системных нужд.
P.S. Прошу сильно не горячиться по поводу данной идеи - ведь в каждой шутке есть доля шутки. (Если кто-нибудь что-нибудь не понял - я не виноват.)
Судари уважаемые, а зачем вообще разделять память ?
Ведь распараллеливание вычислений можно (и даже желательнее) организовывать "а-ля" инмос-транспьютер, то есть собираем к-мерный гиперкуб из 8 , 16 или более процессоров и переписываем компилятор "Оккама" под их систему комманд.

Ну разве что малюсенькое "окошечко" этак на 4Кб оставить для системных нужд.
P.S. Прошу сильно не горячиться по поводу данной идеи - ведь в каждой шутке есть доля шутки. (Если кто-нибудь что-нибудь не понял - я не виноват.)
-
- Admin
- Posts: 24094
- Joined: 08 Jan 2003 23:22
- Location: Silicon Valley
транспьютеры ущербны во многи смыслах - в первую очередь из-за того, что связывались они ПОСЛЕДОВАТЕЛЬНЫМИ каналами связи, ну а во вторую - топология их соединений как правило была статическая и проограммы писались под конкретную схему - что не есть гуд...
Я тут за главного - если что шлите мыло на me собака shaos точка net
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
Долго с другом обсуждали варианты сопряжения двух ЦПУ, и пришли к выводу что самый оптимальный и продуктивный вариант, вариант пред-выборки команд для каждого из ЦПУ, иными словами получается типа мост.
Но к сожалению построить данное чудо на расыпухе мне трудно представимо, так что надо прерваться на некоторое время для ознакомления с ПЛИС.

Но к сожалению построить данное чудо на расыпухе мне трудно представимо, так что надо прерваться на некоторое время для ознакомления с ПЛИС.

Хочу стать всезнайкой 

-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
А как вы надумали их различать? - Какие команды - для одного процессора, а какие - для другого?He3HauKo wrote:...вариант пред-выборки команд для каждого из ЦПУ...
И как они будут работать параллельно и многозадачно? Потому как если из очереди
насовывать команды для одного процессора, то второй - тупо стоит...
Но рациональное звено я одно увидел... чтобы не переписывать заново
уже сущестующее ПО,
а я упрямо хочу именно этого, можно попробовать ввести в готовую программу
флаги-префиксы распараллеливания...
Тоже не решит проблему в целом, но как вариант - обдумать можно...
iLavr
-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Ну, есть много вариантов. Вот на вскидку:Lavr wrote:А как вы надумали их различать? - Какие команды - для одного процессора, а какие - для другого?
1. После аппаратного сброса работает только один процессор, остальные спят.
2. Либо есть порт, при чтении из которого возвращается номер процессора.
3. Либо после сброса у каждого процессора в адресном пространстве своя страница ПЗУ.
4. Тут мог быть ваш вариант

Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
4. Запуском ЦПУ как раз и будет управлять схема пред-выборки!4. Тут мог быть ваш вариант
Так как при запуске надо знать поведение ЦП для подальшего кеширования команд.
Спят оба, в зависимости от программы в "ПЗУ" будет произведен запуск того или иного ЦП.1. После аппаратного сброса работает только один процессор, остальные спят.
Ну как без этого2. Либо есть порт, при чтении из которого возвращается номер процессора.

Ну это сильно расходится с совместимостью которою преследует Lavr, мне совместимость не нужна, но и не мешает, так что думаю придерживать большинства.3. Либо после сброса у каждого процессора в адресном пространстве своя страница ПЗУ.
Хочу стать всезнайкой 

-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
И как же он в свете вопроса различает: Какие команды - для одного процессора, а какие - для другого?b2m wrote:Ну, есть много вариантов. Вот на вскидку:Lavr wrote:А как вы надумали их различать? - Какие команды - для одного процессора, а какие - для другого?
1. После аппаратного сброса работает только один процессор, остальные спят.
И кто пишет в этот порт?b2m wrote:2. Либо есть порт, при чтении из которого возвращается номер процессора.
Если я правильно понимаю, какой-то процессор (супервизор ?) при старте под
управлением своей программы должен по сути парсить основную программу и
управлять остальными процессорами?
iLavr
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
Lavr, вы все правильно понимаете, "Супервизор" или "Мост", "Чипсет" одним словом ПЛИС.
Ну не теряя совместимости, думаю нужна сделать что стартовал один ЦП, после через порт управления передавался адрес запуска второго. Ну или что то в этом роде.
Вы наверное имеете виду при старте?И как же он в свете вопроса различает: Какие команды - для одного процессора, а какие - для другого?
Ну не теряя совместимости, думаю нужна сделать что стартовал один ЦП, после через порт управления передавался адрес запуска второго. Ну или что то в этом роде.
Хочу стать всезнайкой 

-
- Devil
- Posts: 907
- Joined: 26 May 2003 06:57
Все команды только для первого процессора, остальные ничего не выполняют, им на сброс активный уровень идёт. Потом первый процессор подставит им с нуля нужные команды и отпустит сигнал сброса через системный порт.Lavr wrote:И как же он в свете вопроса различает: Какие команды - для одного процессора, а какие - для другого?
Никто не пишет, этот порт только для чтения. Просто если первый процессор считает из этого порта, то вернётся, например, ноль, а если второй - еденица. Таким образом достаточно в программе считать из этого порта, а потом, в соответствии с номером, идти на свою программу для каждого процессора.Lavr wrote:И кто пишет в этот порт?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
http://bashkiria-2m.narod.ru/
-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
Откуда этот первый процессор "знает" - что и кому подставлять с нуля?b2m wrote:Все команды только для первого процессора, остальные ничего не выполняют, им на сброс активный уровень идёт. Потом первый процессор подставит им с нуля нужные команды и отпустит сигнал сброса через системный порт.Lavr wrote:И как же он в свете вопроса различает: Какие команды - для одного процессора, а какие - для другого?
iLavr
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
-
- Senior
- Posts: 176
- Joined: 09 Aug 2012 11:20
- Location: 95.135.174.189
Я приставляю это следующим образом:
Запускаются 2 ЦП с активным сигналом сброса, супервизор извлекает команды из ПЗУ помещает их в буфер первого ЦП(0), снимает сигнал сброса.
В программе при необходимости через порт управления подается адрес с которого должен запустится второй ЦП(1).
Супервизор вносит в буфер второго ЦП команду типа JP xxxx, а также все последующие команды лежащие по адресу xxxx, и снимает сигнал сброса с второго ЦП(1).
Как то так
Запускаются 2 ЦП с активным сигналом сброса, супервизор извлекает команды из ПЗУ помещает их в буфер первого ЦП(0), снимает сигнал сброса.
В программе при необходимости через порт управления подается адрес с которого должен запустится второй ЦП(1).
Супервизор вносит в буфер второго ЦП команду типа JP xxxx, а также все последующие команды лежащие по адресу xxxx, и снимает сигнал сброса с второго ЦП(1).
Как то так

Хочу стать всезнайкой 

-
- Supreme God
- Posts: 16689
- Joined: 21 Oct 2009 08:08
- Location: Россия
А зачем им сбрасываться всякий раз? Можно после общего сброса удерживать их по hold.
А на адрес переводить по INT через RST0.
Вобщем оба вы как-то убедительно не рассказали, как программа распределяется
между процессорами...
Особенно подозрителен порт только на чтение, который неясно как выдает разные
значения разным процессорам...
Я подозреваю, что вы это навскидку придумали, без глубокого осмысления...
А на адрес переводить по INT через RST0.
Вобщем оба вы как-то убедительно не рассказали, как программа распределяется
между процессорами...
Особенно подозрителен порт только на чтение, который неясно как выдает разные
значения разным процессорам...
Я подозреваю, что вы это навскидку придумали, без глубокого осмысления...
iLavr