Ну поделился хотя бы в общих чертах мыслями интересными. А то я вторую страницуHardWareMan wrote:Касаемо мультипроцессорного кода я тебе скажу, что опыт имеется. На Сеге. :3
хоть кого-нибуть на этот предмет уговариваю тут.
Moderator: Shaos
Ну, например, можно сделать так. Допустим, что у нас 2 проца в Специалисте. По сбросу, один проц висит в ресете сигналом с порта, а второй стартует как обычно, через НП. Вот он стартанул, все сделал, заинитил. На нем крутится ОС. Загрузка файлов и все такое. Он в 0 загружает джамп на стаб, стаб в его системной памяти организован как бесконечный цикл с ожиданием перехода. Он спускает второй проц и тот попадает в стаб. Тут юзер тыцкнул в прожку. Прожка грузится в 0 (например это игра Lode Runner), первый проц подготовил всякое и отпустил второй проц. Устанавливается команда перехода второго проца в 0 и процесс пошел: игра крутится на втором проце, а ОС следит за ним. Ну это все общие положения и они не интересны.Lavr wrote:Ну поделился хотя бы в общих чертах мыслями интересными. А то я вторую страницуHardWareMan wrote:Касаемо мультипроцессорного кода я тебе скажу, что опыт имеется. На Сеге. :3
хоть кого-нибуть на этот предмет уговариваю тут.
Ну дык надо попробовать, пока ты пекёшь горячий "Специалист",HardWareMan wrote:Главное - это правильно планировать решение задачи, под многопоточность.
Ну надо же рискнуть попробовать, если по всеобщим здесь воспоминаниям, такого 8-битного компа до сих пор практически не было!HardWareMan wrote:Спец-М в смысле многоядерный?
Ну посмотрим, что программисты скажут... Я - убей не знаю, как "синхронизацию потоков" затеять...HardWareMan wrote:Ну а синхронизация потоков - это уже дело программистов.
Ну собственно и весь концепт. Только синхрогенератор и циклогенератор я буду делать на CPLD,
PPPS.Процессор 1801ВМ2, можно считать, довольно крут, но и стар, и в УКНЦ егоКомпания Hitachi также производила процессоры от Motorola, кроме того, она выпустила и собственные усовершенствованные процессоры Hitachi 6301/6303, которые имели большее количество регистров, при этом будучи совместимыми сверху вниз с оригинальными Motorola 68xx.
PS. И ещё взглянь - что вот здесь за хламида?Все мы давно привыкли считать, что микропроцессор Z80 является 8-разрядным и, соответственно,
Spectrum тоже. И если кто-то скажет, что ZX-Spectrum может быть 16-разрядным (если только он не построен на базе процессора Z180 (64180), выпускаемом сегодня фирмой Zilog, имеющим аналогичный Z80 набор команд), то его наверняка сочтут «компьютерным неучем» (писюканцем). Но все же, попробуем поразмышлять, может ли Spectrum, построенный на базе Z80, быть 16-разрядным?
На мой взгляд (теоретически) - может. Но каким образом? А что если на системную плату вместо одного процессора устанавливать два? Наверняка у вас появится мысль, что от двух процессоров повысится только производительность компьютера, соответственно в два раза. Да, это так, если использовать оба процессора последовательно в режиме разделения времени.
Но если два процессора заставить работать параллельно друг с другом, т.е. в один такт, то они образуют систему представляющую из себя как бы один микропроцессор. Таким образом, такая система будет обрабатывать 16-битную информацию (один Z80 - 8 бит, плюс второй Z80 - 8 бит).
Каким же образом обрабатывать полученную информацию, ведь каждый отдельно взятый процессор все равно обрабатывает по 8 бит? Пусть на выходах А0-А7 у первого процессора образуется сигнал 01001101 (в десятичном виде 77, по таблице символов - буква «М»), а на тех же выходах второго процессора 8-битный сигнал 11010110 (в десятичном виде 213, что соответствует оператору Merge). Это по отдельности, но т.к. оба процессора работают параллельно, то оба этих 8-разрядных байта, выданные обоими процессорами одновременно, будут представлять собой один 16-разрядный байт 0100110111010110 (или в десятичном виде 290). В данном случае выходы А0-А7 обоих процессоров, можно рассматривать как выходы А0-А15.
Если же данное предположение окажется верным, то трудно будет недооценить 16-битное представление информации и, как следствие, новый скачок в возможностях Spectrum-совместимых компьютеров (улучшение качества графики, воспроизведения звука и др.). Но такая система потребует и создания новых операционных систем, а также системного и другого программного обеспечения.
Но не потеряет ли 16-разрядный Spectrum совместимость с 8-разрядным? Нет, если по мере необходимости использовать только один процессор Z80, вместо двух, но однопроцессорные системные платы (т.е. компьютеры на базе одного процессора z80) не смогут пользоваться некоторыми аппаратными разработками и ПО для двухпроцессорных. То есть получается вполне приемлемая совместимость - сверху вниз. Что из этого всего может получиться - судите сами. Я, в свою очередь, хочу задать вопрос разбирающимся в этом деле синклеристам - возможно ли это, т.е. верно ли мое предположение?
Яков Очаковский
Функции БИОС и OC процы откуда брать будут? Первый - из ПЗУ, а остальные?HardWareMan wrote:Первый проц стартует из ПЗУ, по принципу специалиста, остальные стартуют от 0 из этого общего ОЗУ, тем самым им не требуется свое ПЗУ: мастер зальет задачу, пустит второй проц, задача этого процессора прокеширует все что надо (код и данные) в свое ОЗУ, переключится и будет маслать, изредка поплёвывая результатами в выделенную область основного ОЗУ и/или забирая оттуда новые.
Исходя из того, что мы предварительно обсудили, хотелось бы добитьсяSMP часто применяется в науке, промышленности, бизнесе, где программное обеспечение специально разрабатывается для многопоточного выполнения. В то же время, большинство потребительских продуктов, таких как текстовые редакторы и компьютерные игры написаны так, что они не могут получить много пользы от SMP систем. В случае игр это зачастую связано с тем, что оптимизация программы под SMP системы приведёт к потере производительности при работе на однопроцессорных системах, которые занимают большую часть рынка. В силу природы разных методов программирования, для максимальной производительности потребуются отдельные проекты для поддержки одного процессора и SMP систем. И все же программы, запущенные на SMP системах, получают незначительный прирост производительности даже если они были написаны для однопроцессорных систем. Это связано с тем, что аппаратные прерывания, обычно приостанавливающие выполнение программы для их обработки ядром, могут обрабатываться на свободном процессоре. Эффект в большинстве приложений проявляется не столько в приросте производительности, сколько в ощущении, что программа выполняется более плавно. В некоторых приложениях, в частности программных компиляторах и некоторых проектах распределённых вычислений, повышение производительности будет почти прямо пропорционально числу дополнительных процессоров.
И на кого возлагается эта бодяга? На программёра или частично эту задачуРаспределённые вычисления являются частным случаем параллельных вычислений, то есть одновременного решения различных частей одной вычислительной задачи несколькими процессорами (или ядрами одного процессора) одного или нескольких компьютеров. Поэтому необходимо, чтобы решаемая задача была сегментирована, то есть разделена на подзадачи, которые могут вычисляться параллельно. При этом для распределённых вычислений приходится также учитывать возможное различие в вычислительных ресурсах, которые будут доступны для расчёта различных подзадач. Более того, не всякую задачу можно разделить на подзадачи, которые можно решать параллельно.
Ну да, система все равно ляжет в общее ОЗУ (или только самое нужное). Остальное - в локальном ОЗУ.Lavr wrote:Но вот этот момент меня чуть смущает:Функции БИОС и OC процы откуда брать будут? Первый - из ПЗУ, а остальные?HardWareMan wrote:Первый проц стартует из ПЗУ, по принципу специалиста, остальные стартуют от 0 из этого общего ОЗУ, тем самым им не требуется свое ПЗУ: мастер зальет задачу, пустит второй проц, задача этого процессора прокеширует все что надо (код и данные) в свое ОЗУ, переключится и будет маслать, изредка поплёвывая результатами в выделенную область основного ОЗУ и/или забирая оттуда новые.
В ОЗУ им накидаем копии? ПЗУ-то обычно более медленное...