nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 23 Apr 2024 21:08



Reply to topic  [ 413 posts ]  Go to page Previous  1 ... 13, 14, 15, 16, 17, 18, 19 ... 28  Next
nedoPC-580 (SMP на 5 процессорах КР580ВМ80А) 
Author Message
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
Нифига себе! Запорожье! 8)


17 Jul 2012 22:15
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
А интересная затея со стеком! Я сначала думал, что используют двухбайтовый
OUT от 8086... ан нет!
А такая идея, как у них, и с 580ВМ80 прокатывает! PUSH-то он тоже два байта
пихает, и пространство памяти для стека у 580ВМ80 разделено...

Хотя и SHLD может похоже сработать - по байту в оба контроллера разом...

Вот бы ещё придумать, как их в графический режим развернуть, аналогично 6845... :-?

_________________
iLavr


17 Jul 2012 22:27
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Lavr wrote:
Вот бы ещё придумать, как их в графический режим развернуть, аналогично 6845... :-?

Поставь ОЗУ заместо ПЗУ знакогенератора и обеспечь доступ процессора к ней (без снега можно за счет синхронизации к КОХ).


Last edited by HardWareMan on 05 Jan 2014 07:00, edited 1 time in total.



18 Jul 2012 02:27
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
Поставь ОЗУ заместо ПЗУ знакогенератора и обеспечь доступ процессора
к ней (без снега можно за счет синхронизации к КОХ).

Ну это очевидно... так, собственно, и саму 6845 включают...
Есть только одна неприятная разница - в отличие от 6845, у которой нет
своего буфера строки, но вроде как есть собственный встроенный ПДП,
у 580ВГ75 буфер строки есть (даже два)...
В зависимости от его содержимого 580ВГ75 будет выставлять разные
адреса сканирования ОЗУ (что заместо ПЗУ знакогенератора), при завершении
строки - будет выдавать запрос на полнение строки.

Это надо как-то учесть всё в управляющем ПО и аппаратной организации.
А "Поставь ОЗУ с мультиплексорами заместо ПЗУ" - это я согласен... да...

_________________
iLavr


18 Jul 2012 07:54
Profile
Maniac

Joined: 05 Nov 2008 19:47
Posts: 287
Location: 81.28.208.238
Reply with quote
Post 
Quote:
А интересная затея со стеком! Я сначала думал, что используют двухбайтовый
OUT от 8086... ан нет!
А такая идея, как у них, и с 580ВМ80 прокатывает! PUSH-то он тоже два байта
пихает, и пространство памяти для стека у 580ВМ80 разделено...

Хотя и SHLD может похоже сработать - по байту в оба контроллера разом...

Вот бы ещё придумать, как их в графический режим развернуть, аналогично 6845...

Дык похоже в 8080 разделены память данных и кода? (через слово состояния) - и отдельный стек это будет 64К*3=192К памяти...
Поправьте, если не прав.


01 Aug 2012 22:26
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
aav8 wrote:
Дык похоже в 8080 разделены память данных и кода? (через слово состояния - STATUS) - и отдельный стек это будет 64К*3=192К памяти...
Поправьте, если не прав.

Где-то мы это обсуждали уже, только вот сомневаюсь, что "данных и кода",
скорее кода/данных, стека и УВВ... Но УВВ лишь 256 байт у 8080.

Image

Но если профиксить выборку команды из слова состояния, то может быть и
192К памяти + 256 байт... :wink:


PS. Формально выходит что код/данные разделить можно, только получаются
они не совсем полноценные эти пространства...
:-?

_________________
iLavr


Last edited by Lavr on 07 Sep 2012 00:22, edited 1 time in total.



01 Aug 2012 22:32
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Вся проблема в том, что "выборка команды" это М1, поэтому команда STA 1234h, которая в памяти по адресу, скажем, 8000h лежит как 32 34 12 будет выполнена так (C - код, D - данные):
R C:8000 32
R D:8001 34
R D:8002 12
W D:1234 XX


Last edited by HardWareMan on 05 Jan 2014 07:00, edited 1 time in total.



02 Aug 2012 00:32
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Если мы друг друга правильно поняли, то в принципе мы физически разделить
данные и код на два пространства по 64К можем.

Только это аппараное усложнение нам не даст ни каких дивидендов против
одного пространства кода/данных размером в 64К.

А потеряем мы напротив очень заманчивую возможность самомодификации
кода программы.
Ведь как ни крути, а 8080 всё-таки процессор принстонской архитектуры...

_________________
iLavr


02 Aug 2012 05:17
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
Lavr wrote:
Если мы друг друга правильно поняли, то в принципе мы физически разделить
данные и код на два пространства по 64К можем.

Только это аппараное усложнение нам не даст ни каких дивидендов против
одного пространства кода/данных размером в 64К.

А потеряем мы напротив очень заманчивую возможность самомодификации
кода программы.
Ведь как ни крути, а 8080 всё-таки процессор принстонской архитектуры...

ну почему, можно получить дополнительные 64к для данных используя сигнал записи в стек, хотя особых преимуществ перед обычным переключением страниц тут не видно ;)


02 Aug 2012 06:04
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
shoorick wrote:
Lavr wrote:
Если мы друг друга правильно поняли, то в принципе мы физически разделить
данные и код на два пространства по 64К можем.

можно получить дополнительные 64к для данных используя сигнал записи в стек

shoorick ну вот тут ты нас уже не понял. :wink: Со стеком - всё понятно...
С ним получаем полноценное пространство в 64К, доступное по PUSH и POP.

А речь идёт о том, есть ли смысл делить ещё данные и код на два пространства.

_________________
iLavr


02 Aug 2012 06:11
Profile
Doomed
User avatar

Joined: 05 Nov 2007 05:08
Posts: 487
Location: Украина
Reply with quote
Post 
а, терь понял что не понял :)
думаю, делить нет смысла :roll:


02 Aug 2012 08:11
Profile WWW
Novelist

Joined: 09 Aug 2012 04:05
Posts: 42
Location: 91.213.33.6
Reply with quote
Post 
Итак прочел все страницы этой темы – не выдержал, зарегистрировался, хочу вставить свои 5коп.
Как я понял – есть желание разработать многопроцессорную машину на совковой-отечественной-древней-ретро (нужное подчеркнуть) элементной базе (выбран дорогой моему сердцу КР580ВМ80А). Итак – первое, с чего необходимо начинать подобную разработку – определить цели и методы (доступные средства).

В общем вводная:
• Многопроцессорная (для начала 4ре процессора) машина
• Процессоры архитектурно равноправны
• Как процессор использовать КР580ВМ80А
• ОЗУ на статической памяти
• Постаратся обойтись без современных ИМС, без ПЛИС. Т.е. условно 74 серия
• Страничная организация ОЗУ сегментами по 8К
• Возможность переключения ОЗУ в виде любая страница-куда угодно.
• ОБЯЗАТЕЛЕН механизм защиты памяти (об этом ниже)
• ОС самописная многозадачная, с вытесняющей многозадачностью. Необходимо постаратся реализовать посикс
• Возможность запуска ПО различных старых восьмибитников в режиме аппаратной эмуляции (при условии что они пользуют стандартные вызовы CP/M, монитора)
• На первых порах ограничится текстовым вводом – выводом – терминал в компорт.
• Среда разработки – ASM , ANSI C

Итак устройство управления памятью, устройство защиты памяти.
Сначала сразу скажу, что делать в железе сколько-нибудь пригодную для реального использования машину без механизма защиты памяти темболее многозадачную, темболее многопроцессорную – просто бессмысленно.

Организация памяти с точки зрения процессора
Восемь страниц по 8к. Младшая страница – системная, может быть переведена в режим только чтение (средствами MPCU через запись в управляющий регистр ACR соответствующего значения)

Организация памяти глобально.
Все глобальное аддресное пространство состоит из 8К страниц. Страницы бывают:
• Страница супервизора: в ней загрузочное системное ПЗУ, регистры УВВ, регистры управления устройства управления и защиты памяти.
• Страницы ОЗУ. Просто страницы ОЗУ по 8К


MPCU
в зависимости от значения регистра PCR маппит соответствующую 8к страницу ОЗУ в адресное пространство соответствующего процессора, в заданый 8к сегмент.
В зависимости от значения регистра ACR запрещает запись соответствующей системной страницы (аппаратно блокирует сигналы записи от процессора)
Процессоры индивидуально могут быть сброшены через запись соответствующих значений в регистр CCR
Могут быть вызваны (индивидуально, каждого процессора) прерывания через запись соответствующих значений в регистр CCR.

Механизм работы всего бардака:
Все процессоры стартуют, но системное ПЗУ изначально замаплено в АП только одного процессора. Выполняя программу из системного ПЗУ процессор прячет страницу со всеми критичными регистрами от других процессоров. Потом халтит другие процессоры. Затем устанавливает запрет для всех других процессоров на запись в системные страницы. Заполняет страницы кодом для других процессоров и маппит их в системные страницы, запускает код на выполнение в других процессорах (отжимает халт, или ресетит). В общем у кого ПЗУ, того и тапки.

Вытесняющая многозадачность обеспечивается инициированием прерываний с передачей управления в соответствующую системную страницу и подменой страниц с кодом разных задач. Если процессор запретил прерывания – задача считается повисшей и проц ресетится со стороны супервизора по таймауту сторожевого таймера.

Обеспечить вытесняющую многозадачность супервизор сам себе не способен, поэтому прикладные задачи на нем выполнятся не будут.

Кстати через ПДП можно организовать виртуальную память, я думаю..

Возможно в принципе масштабирование системы с созданием иерархической структуры из вычислительных ячеек по 4-8 процессоров с собственным ОЗУ и MPCU, с передачей страниц ОЗУ между ячейками через ПДП но с одним супервизором на систему (возможно даже главный супервизор будет делегировать часть своих задач другим процессорам ). Но при этом все процессоры структурно эквивалентны, просто кто супервизор в текущий момент зависит от конфигурации системы.

Image


09 Aug 2012 04:17
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22567
Location: Silicon Valley
Reply with quote
Post 
Хорошо изложено. А что если вачдог аппаратным сделать? т.е. ресетить любой проц который надолго заблокировал прерывания?

_________________
:dj: https://mastodon.social/@Shaos


09 Aug 2012 04:33
Profile WWW
Novelist

Joined: 09 Aug 2012 04:05
Posts: 42
Location: 91.213.33.6
Reply with quote
Post 
в принципе на данном этапе нет большей разницы, будет ватчдог аппаратный с программным контролем, или полностью программный (т.е. без дополнительной железной логики). обсуждение деталей в процессе еще выдвижения концепции ведет к флуду.
Ясно одно, что при зависании процесса или его умышленном захлопывании внутри процессора путем блокировки внешних прерываний необходимо генерировать исключение, которое потом будет обработано ОС (повисший проц сброшен, процесс сдамплен для дальнейшего анализа).

Меня сейчас больше интересует междупроцессовое взаимодействие... вот пока обдумываю пару вариантов...


09 Aug 2012 07:28
Profile
Retired
User avatar

Joined: 25 Jul 2011 00:14
Posts: 1331
Location: WWW
Reply with quote
Post 
Lavr wrote:
Quote:
Предполгается что система с 48 процессорами

А хотя бы с двумя (или с четырьмя) процессорами К580 (или пусть Z80) реальное
железо где-либо существовало? Ну, естественно, не так, как в ZX_NEXT, а чтобы
задача действительно распараллеливалась?
ща полезу в коробку, достану аркаду на двух Z80 сделанную и запощу фото :)


10 Aug 2012 07:48
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 413 posts ]  Go to page Previous  1 ... 13, 14, 15, 16, 17, 18, 19 ... 28  Next

Who is online

Users browsing this forum: No registered users and 30 guests


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.