Author |
Message |
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22568 Location: Silicon Valley
|
|
10 Aug 2012 19:52 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22568 Location: Silicon Valley
|
Этапы программирования этого 4-процессорного монстра:
- процессоры выполняют независимые программы (например мигают светодиодами);
- один процессор берёт на себя функции системного, общаясь с клавиатурой и дисплеем, а другие считают свои задачи - возможна связь через общую память;
- поверх общей памяти реализуем разнообразные примитивы межпроцессного взаимодействия - очереди сообщений, мьютексы, каналы ввода-вывода;
- добавляем кооперативную многозадачность (процессов может быть больше чем процессоров);
- добавляем вытесняющую многозадачность и контроль зависонов (аппаратный вачдог).
|
10 Aug 2012 21:15 |
|
|
ntil
Novelist
Joined: 09 Aug 2012 04:05 Posts: 42 Location: 91.213.33.6
|
Меня волнует то, как прикладные задачи ограничить в возможностях навредить, при этом оставив им воозможность коммуницировать с ядром. причем желательно с вменяемыми накладными расходами.
|
11 Aug 2012 00:20 |
|
|
MC68k
Retired
Joined: 25 Jul 2011 00:14 Posts: 1331 Location: WWW
|
записать ядро в ПЗУ(не флэш)
|
11 Aug 2012 01:27 |
|
|
ntil
Novelist
Joined: 09 Aug 2012 04:05 Posts: 42 Location: 91.213.33.6
|
не гибко. наложить запрет на запись через устройство защиты памяти - это уже обсуждалось. суть не в этом.
суть в том как разрешить коду ядра (в системной странице) делать что-то , но при этом запретить делать это-же коду приложения находящемуся в других сегментах.
|
11 Aug 2012 01:45 |
|
|
HardWareMan
Banned
Joined: 20 Mar 2005 13:41 Posts: 2141 Location: От туда
|
Аппаратный регистр номера процессора + ветвление в общем коде?
Last edited by HardWareMan on 05 Jan 2014 07:00, edited 1 time in total.
|
11 Aug 2012 02:51 |
|
|
b2m
Devil
Joined: 26 May 2003 06:57 Posts: 861
|
Сам же ответил на свой вопрос
Делаем очень просто: при обращении процессора к системной странице включать порты, при обращении к не системной - выключать. А чтобы не было соблазна использовать код системной страницы для доступа к портам, оставить в начале (или конце) только векторы переходов, а остальное включать точно также как и порты, после обращения к системной странице. А лучше - всего один вектор перехода, а то вдруг адрес перехода совпадёт с кодом команды OUT Ну или контролировать как-то на этапе разработки безопасность векторов перехода.
_________________Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
|
11 Aug 2012 02:52 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
А меня волнует, что мы такие замечательные теоретики!...
И я как теоретик даю вам теоретический прогноз: сейчас мы непротиворечиво
и весьма достойно заполним теоретиическими выкладками ещё страниц 5-8...
И всё также тихо успокоится и завянет, пока в очередной раз кто-либо не возбудит
здесь "волнение говн"...
Я понимаю, что мы люди взрослые и занятые... А мы можем начать воплощать
наши мысли хотя бы на какой-то модели?
Вон у меня есть модель 4-бит ЦПУ, и хотя я ничего не пишу в ветке 4-бит - я к ней
обращаюсь: попробую очередное решение - не понравится - отложу...
Так бы и здесь... " возбудились" - попробовали, глянули - хорошо ли, плохо ли...
У нас вот и пакет симуляции логики есть с "живым Z80"... нет?
А то есть такое впечатление - мы некоторые выкладки повторяем по 3-му, 4-му кругу...
_________________ iLavr
|
11 Aug 2012 07:23 |
|
|
VituZz
God
Joined: 13 Nov 2010 04:06 Posts: 1345
|
Мы просто приятно проводим время в общении. А это тоже немало в наше время. Работы всем хватает на работе...
Учитывая достаточную сложность предмета, маловероятно появление действующей модели, не говоря уже о железе. Почитав доступную литературу по этому вопросу, для себя я понял, что о параллельных вычислениях в классическом понимании лично мне можно просто забыть. Достаточно почитать, что пишет по этому поводу уже упоминавшийся мною здесь Э.Реймонд, его доводы показались мне более чем убедительными. Поэтому моё видение нашей многопроцессорной системы: совокупность отдельных процессоров, полностью независимых, без общей памяти, со своими портами ввода-вывода, своим ПЗУ. Процессоры (вернее сказать - процессорные модули или контроллеры) могут быть неравноправны или специализированы под какую-либо задачу и должны обмениваться друг с другом сообщениями. Разумеется, такой подход имеет кучу недостатков, однако и достоинства ему присущи - достаточно лёгкая отладка и масштабируемость схемы. Такой проект я нахожу вполне реализуемым в железе.
Реализация же классических параллельных вычислений со столь скромными аппаратными ресурсами, я уверен, нежизнеспособна. По крайней мере, при числе процессоров до десяти моя модель будет более производительна (голословно, конечно! )
|
12 Aug 2012 07:30 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22568 Location: Silicon Valley
|
А я всё-таки верю в сильносвязанную модель
Потом этих 4-процессорных монстриков можно объединять в сетку - это как раз не проблема
По поводу параллельного программирования - я реально пишу многопоточные программы с 1997 года (начинал с кооперативной многозадачности в Win3.1 и продолжаю уже с аля-POSIX тредами, мьютексами и т.д.) и знаю как это заставить работать без дедлоков
|
12 Aug 2012 07:50 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Да я понимаю! Я же не предлагаю всем бросить всё и начать копать траншею отсюда и до обеда? Просто приятное общение можно совместить с не менее приятными результатами... Вся прелесть в том что обязательств нет у нас и сроков не установлено, а это довольно продуктивно порой! Поскольку движет лишь удовольствие к действию (или бездействию)... Вон совершенно точно bar сказал: Ни убавить, ни прибавить!
Виталий, ну я же не голословно это предлагаю... Я CEDAR Logic Simulator
сначала опробовал:
У него 10 окон: в 4-х можем поставит по процессору с обвеской...
Остальных окон нам должно для всего остального за глаза хватить!
Simulator чисто логический, а значит - быстрый. Чтобы убыстрить "Протезус",
все модели надо указать как цифровые, а здесь - это по умолчанию...
На мой взгляд для наших затей CEDAR Logic Simulator гораздо более подходящий,
чем тот же Logisim 2.7.1.
И хотя я всё-равно остаюсь приверженцем "Протезуса", мне кажется, что CEDAR Logic Simulator - вполне приемлем..
А если у нас действительно всё получится, проект можно будет модульным сделать.
Ты же сам делаешь неплохие компактные модули? Как говорится - было бы желание,
а сделать многое можно!
_________________ iLavr
|
12 Aug 2012 08:01 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22568 Location: Silicon Valley
|
CEDAR в Wine не работает (точнее работает криво - вместо иконок - черные квадратики)
P.S. в данном конкретном случае - симулятор логики не нужен, нужен просто эмулятор платформы - это я могу состряпать ровно за один вечер ибо ядро 8080 у меня уже давно написано и более одного проца я уже в одной программке эмулил ещё 15 лет назад:
|
12 Aug 2012 08:05 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Ну я надеюсь, bar его для линуксоидов адаптирует... Иначе смысла
в разговоре нет..
Не люблю симуляторы в эмуляторах...
_________________ iLavr
|
12 Aug 2012 08:10 |
|
|
Lavr
Supreme God
Joined: 21 Oct 2009 08:08 Posts: 7777 Location: Россия
|
Мы это читали и видели много страниц назад *... (не полезу искать ссылку)...
Только воз с тех пор не сдвинулся...
Никто не знает на чем это написано, как этим пользоваться, да и нет стремления
возложить всё на тебя - ибо непродуктивно...
Симулятор - более естественный, доступный и привычный всем процесс:
"спаял схему", написал для неё программу...
Ну по крайней мере мне так кажется...
А экзотика - она и есть экзотика... даже твоя...
* 24 Июня 2011 - год назад нам Shaos показывал это же кортинко, утверждая что ему неинтересно... Вот я и говорю, что некоторые вещи повторяются по 3-4-му разу уже! Не пора ли хоть на моделях переходить к практике?
_________________ iLavr
Last edited by Lavr on 12 Aug 2012 08:36, edited 1 time in total.
|
12 Aug 2012 08:21 |
|
|
Shaos
Admin
Joined: 08 Jan 2003 23:22 Posts: 22568 Location: Silicon Valley
|
и всё-таки твой CEDAR в этом конкретном топике - скорее оффтоп
у него из процов только Z80 и тот не 100% сэмулён...
|
12 Aug 2012 08:32 |
|
|