nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 03 Dec 2021 01:44



Reply to topic  [ 395 posts ]  Go to page Previous  1 ... 23, 24, 25, 26, 27
nedoPC-580 (SMP на 5 процессорах КР580ВМ80А) 
Author Message
Junior

Joined: 26 Jul 2021 02:11
Posts: 2
Reply with quote
Забавно... Я именно в 2021 году задумался о создании ПК "а-ля 80е", по мотивам всех тогдашних 580-х изделий... и понял, что надо отталкиваться от многопроцессорной масштабируемой архитектуры. Но, на удивление, кроме размышлений ничего не нашел. Тема умерла, как я понимаю?


27 Jul 2021 13:02
Profile
Maniac

Joined: 18 Nov 2013 16:15
Posts: 207
Location: все оттуда ;)
Reply with quote
aahzma wrote:
Забавно... Я именно в 2021 году задумался о создании ПК "а-ля 80е", по мотивам всех тогдашних 580-х изделий...
Зачем ? Этим актуально было заниматься в середине 80-х !

aahzma wrote:
и понял, что надо отталкиваться от многопроцессорной масштабируемой архитектуры. Но, на удивление, кроме размышлений ничего не нашел. Тема умерла, как я понимаю?
Читай как сделана шина MultiBUS (русское название "И-41").
Потом неплохо бы ОС которая это поддерживает.

Если нет зацикленности на 580 процессоре, то сразу перейти к 1810, компьютеру "Нейрон И9.66".


27 Jul 2021 20:24
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 09:08
Posts: 7777
Location: Россия
Reply with quote
aahzma wrote:
Тема умерла, как я понимаю?

Нет, не умерла... иногда она неожиданно оживает...
Всё зависит от того, что хочется получить в итоге.

_________________
iLavr


29 Jul 2021 09:01
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19994
Location: Silicon Valley
Reply with quote
Post Re:
В продолжение идей со страницы 23 (август 2012):

http://www.nedopc.org/forum/viewtopic.php?f=46&t=7540&start=330

Shaos wrote:
HardWareMan wrote:
Shaos wrote:
P.S. Я смотрю что слово статуса хватать с шины данных совсем не сложно - так что наверное будут у нас нормальные порты с командами IN и OUT :)
По большому счёту нам только 2 бита нужны из этого слова состояния - INP и OUT

Латчить по SYNC AND F1 в одну ТМ2. Все верно.


угу

тогда обращение к хардверному семафору, защищающему доступ к софтверным мьютексам (а также 7 другим критическим абстракциям - по 1 биту на каждую), будет выглядеть так:

Code:
DI
MVI A,#10
OUT 7 ; пусть на этом порту находятся 8 хардверных семафоров
LOOP:
IN 7
ANI #10 ; бит 4 пусть будет семафором мьютексов
JZ LOOP ; крутимся пока ноль (значит наш запрос семафора ещё не дошёл)
; далее висим на холде либо идём дальше
...
XRA A
OUT 7
EI


P.S. Биты в порту 7 можно поделить между следующими "семафорами":
Code:
bit 0 - SEM_PRO (доступ к списку всех процессов)
bit 1 - SEM_ACT (доступ к списку активных процессов)
bit 2 - SEM_SCR (доступ к буферу вывода на экран)
bit 3 - SEM_IOB (доступ к буферу обмена с внешними устройствами)
bit 4 - SEM_MUX (доступ к списку программных мьютексов)
bit 5 - SEM_PIP (доступ к FIFO каналам обмена данными)
bit 6 - SEM_MSG (доступ к очередям сообщений)
bit 7 - SEM_AUX (дополнительный семафор)


P.P.S. Семафоры внутренние, т.е. не входят в публично доступный API - это лишь соглашение о взаимодействии супервайзера (процессор номер ноль) и операционки на рабочих процессорах...

Подумалось тут мне, что чего попусту крутиться в цикле? Можно при попытке записи в порт 7 останавливать проц через сброс READY, если аппаратный арбитр решит не давать ему доступ к ресурсу:

Attachment:
8080.jpg
8080.jpg [ 316.04 KiB | Viewed 289 times ]


Либо вообще разнести семафоры по разным номерам портов и писать туда приоритет с которым проц хочет ресурсом попользоваться - арбитр будет сравнивать приоритеты и выстраивать запросы в очередь в правильном порядке, хотя наверное это уже черезчур сложно (а если делать руками супервизора, которым будет выступать 5й процессор, то ещё и медленно)

P.S. Эти "аппаратные" семафоры можно рассматривать как самые настоящие сигнальные семафоры - с помощью них рабочие процы отправляют сигнал процу-арбитру и ждут пока этот сигнал не будет принят. Если добавлять приоритеты 0...7 к семафорам, то каждый проц должен будет запоминать не только номер семафора, но и номер приоритета на регистре, а проц-арбитр должен будет эти регистры всех процов обходить и смотреть если от кого-то пришёл какой-то запрос. Плюс к этому можно сделать передачу символов между процессорами - эдакие каналы от любого процессора к любому процессору. Например запись в порт 0 будет означать передачу символа в 0й процессор (скажем для вывода в терминал). Запись в порт 1 - передача символа в 1й процессор и т.д. Чтение из портов будет означать принятие символа из соответствующего процессора (но не для порта 0, чтение из которого будет возвращать кол-во процессоров в системе и номер процессора). Запись в порт будет подвешивать процессор-передатчик, пока на той стороне не прочитают посланный байт. Если процессор попытается послать символ сам себе (например процессор 3 выполнит команду OUT 3), то он самозаблокируется до перезагрузки системы. Плюс к этому процессор 0 (арбитр/супервизор) может иметь специальную логику, предотвращающую отпускание процессора-передатчика в момент чтения соответствующего порта нулевым процессором т.к. он должен отпускать процессоры в специальном порядке в соответствии с приоритетами (это можно сделать путём записи в порт 0 нужного битика) - для него также чтение из порта 0 будет иметь иной смысл - он будет возвращать битовый набор, где каждый бит сигнализирует, что тот или иной процессор послал байт в канал и ждёт его анализа.

_________________
:eugeek: https://twitter.com/Shaos1973


03 Nov 2021 00:18
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 19994
Location: Silicon Valley
Reply with quote
Чего-то подумалось, что для реализации этих параллельных каналов связи между процессорами можно взять ВВ55е :)|
Даже можно попробовать задействовать хендшейк, который включается в одном из режимов их работы!

_________________
:eugeek: https://twitter.com/Shaos1973


12 Nov 2021 02:15
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 395 posts ]  Go to page Previous  1 ... 23, 24, 25, 26, 27

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.