PDA

Просмотр полной версии : Хочу узнать ваше мнение по поводу мульти CPU



MegaMyth
24.12.2006, 02:16
Есть возможность создания мультипроцессорной системы, подробнее можно прочитать здесь - http://zx.pk.ru/showpost.php?p=71328&postcount=30

Хотелось бы узнать ваше мнение, будет ли эта технология востребована у программёров, если проявится дополнительный режим вплоть до 640*480 (на VGA мониторе)?

Error404
24.12.2006, 11:18
IMHO, поддержка мультипроцессорности, это прежде всего ОС. А соответствующий раздел на сайте самый поросший паутиной. :) Так что незнаю-незнаю...
А из 640х480 получится отличный текстовый экран, что безусловно гуд.

ASDT
24.12.2006, 15:54
Не вижу нужды более 2-х процессорной,
а это уже другое ...

ng_dead
25.12.2006, 10:54
По моему, термин многопроцессорность - несколько иное подразумевает, чем то что по ссылке...

Sonic
25.12.2006, 12:20
Кстати - а в принципе - что мешает сделать SMP на спеке? Я думаю ничего. Есть же ZX-Next - там уже два CPU и оба имеют равный доступ к RAM.
Конечно в любой SMP-системе есть головной CPU, никто этого не отрицает.

andrews
25.12.2006, 15:47
Работа на общую память это одно, а распараллеливание вычислений ( и исполняемой программы) это к Бабаяну :) Еще есть фишка со времен HP- калькуляторов ( и до наших дней граф- физ- процы)разнесение функциональности на отдельные модули. Центральный - супервизор.

Error404
25.12.2006, 16:20
Кстати - а в принципе - что мешает сделать SMP на спеке? Я думаю ничего. Есть же ZX-Next - там уже два CPU и оба имеют равный доступ к RAM.


Для нескольких CPU без кэша работа с однопортовой памятью - это проводить большую часть времени в очереди. Т.е. в сравнении с однопроцессорной системой с коммутируемой ОС многозадачностью, такая N-процессорная система выигрывает лишь время переключения контекста - 10...15%. Зато программить ее на нижнем уровне - замучаешься.

Sonic
25.12.2006, 16:48
Для нескольких CPU без кэша работа с однопортовой памятью - это проводить большую часть времени в очереди.

Почему?
В существующих без-wait-овых клонах ZX используется тот факт что память работает гораздо быстрее чем Z80. Z80 и видеоконтроллер обращаются к памяти по очереди. Верно?
А почему только два устройства? Почему не CPU0, CPU1, CPU2, ...CPUn, Video ? ИМХО нас ограничивает только быстродействие памяти.
Или я в чем-то ошибаюсь?

Зато программить ее на нижнем уровне - замучаешься.
Почему?
Представим себе такой ZX. При включении питания активен только CPU0, на остальных зажат Reset. Для запуска любого другого CPU надо занести по адресу 0 инструкцию JP <код-для-конкретного-CPU> и отпустить его Reset.
Для этого необходимо два варианта:
1) По адресу 0 имеем ОЗУ
2) Машина имеет более 64 кб памяти и каждый проц работает в собственном сегменте (могут пересекаться). Базовые адреса сегментов назначаются CPU0.
Почему нет?
Блин руки чешутся доделать свой Пентагон-128...

captain cobalt
25.12.2006, 18:13
что мешает сделать SMP на спеке? Я думаю ничего. Есть же ZX-Next - там уже два CPU и оба имеют равный доступ к RAM. Нет там такого.
VCPU имеет собственный ROM для кода, а не лезет в общую память.
Сам он ничего не читает из памяти. Он просто бегает в своём ROM. Изображение формируется внешними схемами. Некоторые разряды его шины адреса используются для формирования адреса в видеопамяти.

jtn
25.12.2006, 18:17
Есть же ZX-Next - там уже два CPU и оба имеют равный доступ к RAM.нет там такого, ртфм.

В существующих без-wait-овых клонах ZX используется тот факт что память работает гораздо быстрее чем Z80.гораздо быстрее это сильно преувеличено. в пентагоне128 используется тот факт, что видеоконтроллер читает память в свободное от CPU время. т.е. процессор как бы главнее и никогда не ждет, лишних тактов видеоконтроллера нет практически.

Почему не CPU0, CPU1, CPU2, ...CPUn, Video ? ИМХО нас ограничивает только быстродействие памяти.все можно. надо только будет каждый процессор обвесить кучей регистров и взять достаточно быструю память.
железо в данном вопросе на самом деле не проблема. главное кто напишет такой софт чтобы все работало слажено и использовала эти ресурсы на 100%, тут нужна хорошая теоретическая подготовка и мощный компилятор, которого нет.

Vitamin
26.12.2006, 09:38
А теперь загибаем пальцы по имеющимся задачам, в которых нужно более одного процессора. И долго будем стоять с растопыренными руками? :)
Единственное наименее геморройное применение многопроцессорности- устройства со своей памятью и общением с хостом через порты (GS например). Также это может быть тот же видеоадаптер, но это уже эзотерика...
А по хорошему, не хватает DMA и контроллера прерываний. Ибо они (особенно DMA) имеют гораздо большую применимость и полезность.

Sonic
26.12.2006, 09:42
А теперь загибаем пальцы по имеющимся задачам, в которых нужно более одного процессора. И долго будем стоять с растопыренными руками? :)
Не-а. Ты только что сам назвал три.

Vitamin
26.12.2006, 09:54
Не-а. Ты только что сам назвал три.
Два. Но с оговоркой. Да и уточнил- имеющиеся задачи. А у нас задач по сути не имеется таких, где многопроцессорность как таковая ну позарез просто нужна.

Sonic
26.12.2006, 10:35
Два. Но с оговоркой.


1) Звук
2) Графика
3) DMA. Чем тебе плох CPU для переноса данных и при этом осуществления над ними каких-либо операций? В свое время на Амиге блиттер очень помогал. Впрочем (3) объединяется с (2), поэтому ну пусть будет два...
Жаль что все-таки нет каждого пиксела своим цветом. Можно было бы без особых проблем хоть 3D забацать...



Да и уточнил- имеющиеся задачи.
То есть ты назвал неимеющиеся задачи? :)

Vitamin
26.12.2006, 10:54
Впрочем (3) объединяется с (2), поэтому ну пусть будет два...
(3) объединяется еще и с (1) причем самым непосредственным образом! Даже теснее чем с (2).


То есть ты назвал неимеющиеся задачи?
Я назвал те задачи, где возможно использование многопроцессорности, но как далеко не самый эффективный вариант- посему указал и возможные пути решения

Sonic
26.12.2006, 11:15
Я назвал те задачи, где возможно использование многопроцессорности, но как далеко не самый эффективный вариант- посему указал и возможные пути решения
Схемотехнически SMP в данном случае наиболее универсальное и простое решение. Вспомним навороченную схему DMA USC, а ведь оно практически все заменяется одним CPU. А возможностей у CPU больше.

ZEK
26.12.2006, 11:24
Ну и как ты на одну шину посадиш 12МГц процессор +3,5/7МГц процессор что бы они были SMP да еще на памяти у которой пропускная способность 1-2Мб/с не более

Sonic
26.12.2006, 11:41
Ну и как ты на одну шину посадиш 12МГц процессор +3,5/7МГц процессор что бы они были SMP да еще на памяти у которой пропускная способность 1-2Мб/с не более
Не 12 а 14. И второй CPU - 3.5/14. В последних Профиках Z80 отлично работал на 14 мГц насколько я помню.
3.5 кратно 14 так что все отлично укладывается. А память - а что, современнее чем РУ5 ничего нельзя взять?
Хотя конечно если уж говорить о таких концептуальных вещах, то уж лучше сначала сделать масштабируемую архитектуру на Z180/eZ80, имеющую режим совместимости со старым Спеком...
CP/M вон на этих процах отлично пускают. Думаю что и Spectrum OS тоже можно. А нативной системой мог бы быть 24-битный IS-DOS + EZX-Basic (такая разработка ведется).

Error404
26.12.2006, 12:03
А нативной системой мог бы быть 24-битный IS-DOS + EZX-Basic (такая разработка ведется).

Опять +Basic? Ой. Караул. Одумайтесь пока не поздно. :v2_wink2:

Sonic
26.12.2006, 12:05
Опять +Basic? Ой. Караул. Одумайтесь пока не поздно.
Ну... Просто некоторые люди утверждают что мол "спек должен позволять учиться программировать сразу после включения питания".
Да и впрочем в ОС на основе бейсика есть что-то... Эдакий дух ретро-home-computing...
Можно сделать экзотичнее - Firmware на основе Forth. Можно ваще ieee1275 забабахать. :)

ZEK
26.12.2006, 12:14
Не 12 а 14.
Не 14 а 12 ;)

Sonic
26.12.2006, 14:09
Не 14 а 12
Почему?

ZEK
26.12.2006, 14:16
Вспомним навороченную схему DMA USC, а ведь оно практически все заменяется одним CPU

Ну и как ты на одну шину посадиш 12МГц процессор
В GS 12МГц проц (DMA USC был без процессора)

Error404
26.12.2006, 16:29
Ну... Просто некоторые люди утверждают что мол "спек должен позволять учиться программировать сразу после включения питания".
Да и впрочем в ОС на основе бейсика есть что-то... Эдакий дух ретро-home-computing...
Можно сделать экзотичнее - Firmware на основе Forth. Можно ваще ieee1275 забабахать. :)

OpenFirmware. :)

В принципе, даже бейсик имеет право на существование. Главное, чтобы он не был неизбежным злом - чтобы была возможность выключать ПЗУ из адресного пространства, чтобы иметь все 64к как ОЗУ. И как-то при старте не выпадать сразу в Бейсик, а сначала, к примеру, пытаться грузануться с диска. Или иметь настраиваемый bootlist.

valker
26.12.2006, 16:34
В принципе, даже бейсик имеет право на существование. Главное, чтобы он не был неизбежным злом - чтобы была возможность выключать ПЗУ из адресного пространства, чтобы иметь все 64к как ОЗУ. И как-то при старте не выпадать сразу в Бейсик, а сначала, к примеру, пытаться грузануться с диска. Или иметь настраиваемый bootlist.

Если я не ошибаюсь, первые персоналки IBM PC (XT?) как раз и имели такой бейсик в ПЗУ, который стартовал в отсутствие загрузочных дисков.

Sonic
26.12.2006, 17:28
В принципе, даже бейсик имеет право на существование. Главное, чтобы он не был неизбежным злом - чтобы была возможность выключать ПЗУ из адресного пространства, чтобы иметь все 64к как ОЗУ.

Такие машины есть. По идее имеющиеся апгрейдятся ну очень легко - просто добавляется отключение ПЗУ - и все.


И как-то при старте не выпадать сразу в Бейсик, а сначала, к примеру, пытаться грузануться с диска. Или иметь настраиваемый bootlist.
Или альтернатива - грамотно интегрировать загрузку в бейсик. RANDOMIZE USR 15619:REM:RUN - это я согласен неудобно. Вон в импортных дисковых интерфейсах все рулит. В PlusD просто набираешь RUN при отсутствии в памяти программы - и порядок. В D80 вообще ничего набирать не надо - просто бейсик расширяется и все. Начинает понимать конструкции типа LOAD"A:Program". Как впрочем и должно быть.
Судя по всему создатели бетадиска руководствовались теми же соображениями что и создатели советских клонов Спека: "неважно насколько качественно, главное как можно меньше средств".

GriV
26.12.2006, 17:52
Я сделаю немного оффтопа.

Я смотрю на существующую арихитектуру x86 и x64. Я смотрю на их многопроцессорные решения (2, 4 и более процессоров на одной материнской плате). И я могу сделать такой вывод: для этой чрезвычайно поддержанной деньгами платформы пока многоядерность является своего рода "бонусом", за счёт чего можно несколько увеличить производительность некоторых приложений. Единственным исключением является рынок серверов, но его стоимость (как наверное любого серверного решения) вызывает желание выть на луну в ночном небе.
Т.о. даже в PC платформе на фоне многозадачных/многопоточных ОСей пока многоядерность является лишь бонусом.

Теперь с земли грешной возвращаюсь под облакы наших спекков.
В настоящее время я бы очень хотел развития платформы, только я не вижу смысла развивать её столь революционно. Лично я НЕ против многопроцессорности, но 1) на каких именно платформах будет внедряться эта конфигурация 2) как будет организован менеджер многопроцессорности 3) как управлять этим менеджерам 4) предполагается симметричная равноправная система многопроцессорности или что-то иное?

В текущем обсуждении пока обсуждались проблемы технического толка, как будет работать память и т.п., а вот как насчёт опять же поддержки такой системы? для чего вообще можно будет использовать два процессора? Чисто теоретически - каждый процессор должен обладать отдельным адресно-страничным пространством, как это предполагается реализовывать? Что даст это для существующего парка ПО?

Error404
26.12.2006, 18:15
Я сделаю немного оффтопа.
В текущем обсуждении пока обсуждались проблемы технического толка, как будет работать память и т.п., а вот как насчёт опять же поддержки такой системы? для чего вообще можно будет использовать два процессора? Чисто теоретически - каждый процессор должен обладать отдельным адресно-страничным пространством, как это предполагается реализовывать? Что даст это для существующего парка ПО?

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

Jukov
26.12.2006, 18:15
Зачем Спектруму два (три, четыре, сто) процессора? Лучше установите один, но хороший!

TomCaT
26.12.2006, 21:04
Один хороший процессор стоит n плохих и наоборот.

Вообще, не в процессорах дело. Звук у ZX УЖЕ неплохой (для возможностей ядра Спектрума). Графика... не видел пока твердых стандартов. Есть прерывания, есть процедуры, а многоядерность -- не показатель.

Raydac
01.01.2007, 13:53
Один хороший процессор стоит n плохих и наоборот.
Вообще, не в процессорах дело. Звук у ZX УЖЕ неплохой (для возможностей ядра Спектрума). Графика... не видел пока твердых стандартов. Есть прерывания, есть процедуры, а многоядерность -- не показатель.

Что касабельно спека, то менять Z80 нельзя ни в коем случае имхо, это вполне мощный и современный процессор, позволяющий платформе избежать эффекта присутствующего на писишке - "наращивание вычислительных ресурсов компенсируется деградацией разработчиков".. Текущий графический режим спектрума тоже вполне удобоварим.. думать надо вощем, а не втыкать мощные "камни" на каждую функцию и копировать решения с писишки..

Error404
01.01.2007, 16:55
Что касабельно спека, то менять Z80 нельзя ни в коем случае имхо, это вполне мощный и современный процессор,


Ну, "мощный и современнный" - это, конечно, врядли - сейчас любой холодильник своим встроенным контроллером заткнет Z80 [утрирую :cool: ]. Дело в другом: для хобби и не нужен "мощный и современный". Интересно как раз обратное - создать что-то любопытное в минималистическом (в разумных пределах) окружении.



Текущий графический режим спектрума тоже вполне удобоварим.. думать надо вощем, а не втыкать мощные "камни" на каждую функцию и копировать решения с писишки..


А вот штатный графический режим уже ниже минимума. Ничего кроме игр на таком экранчике не смотрится - элементарно мало одновременно присутствующей информации. А игры... ну, лично мне они никогда не были интересны, а уж в современном окружении, когда любой телефон с жабой содержательнее в этом смысле, то и подавно.

Raydac
01.01.2007, 17:16
Ну, "мощный и современнный" - это, конечно, врядли - сейчас любой холодильник своим встроенным контроллером заткнет Z80

Может и заткнет конечно современный контроллер... да вот стоит у меня пишущий навороченный DVD плеер филипсовский.. подозреваю что у него контроллер не хуже чем в ультрасовременном холодильнике.. да вот время включения у него показывает, что криворукий чудак написал на интерпретаторе бейсика (написанном криворуким другим чудаком) программу для оного, и совместно эти чудаки свели производительность до одно мегагерцового 4004... Мощный и современный это когда аналогичные по производительности девайсы используются в военной, космической и медицинской отраслях и вполне удовлетворительно выполняют задачи :) а Z80 этому требованию удовлетворяет


А вот штатный графический режим уже ниже минимума. Ничего кроме игр на таком экранчике не смотрится - элементарно мало одновременно присутствующей информации.

графический режим это да.. больное место платформы...

Raydac
02.08.2008, 13:16
увеличением моличества процов можно довести и до truecolor спектрум легко, имхо главное не изобретать отдельных видеоконтроллеров с видеоакселераторами иначе это будет "спринтер", а Z80 и программист будут опущены до уровня "скриптовиков"

Lethargeek
02.08.2008, 16:32
увеличением моличества процов можно довести и до truecolor спектрум легко, имхо главное не изобретать отдельных видеоконтроллеров с видеоакселераторами иначе это будет "спринтер", а Z80 и программист будут опущены до уровня "скриптовиков"
Блин, программист и так уже опущен ниже плинтуса - отдельная от Z80, вредная такая юла за него львиную долю работы проворачивает! :v2_sick: А он ить болезный ночей не спит, все поди мечтает RGB выход попрограммировать динамически, напрямую, с точностью до одного пикселя... :v2_cry: а ведь проблема решаецца легко - воткнули стопку Z80, раздали им отдельные точки в цикле (на первый-второй-шестнадцатый рассчитайсь!), и вот оно - щастье настоящего свободного творчества! :v2_yahoo:

Вы только представьте, какого кода можно будет наворотить, все "скриптовики" нафиг лопнут от зависти!

...или от смеха :v2_laugh:

P.S. Спринтер как пример апогея скриптовидеоакселерации - это сильно! :v2_clap2:

Raydac
03.08.2008, 20:30
Пример ЧЕГО? Программирования? Адаптации игрушки к примеру? Не заметил - мож у меня дока скачана не последняя? Главные вопросы - ЧТО девайс умеет (при всей своей монструозности!!) и КАК это делается? (хотя мне-то в принципе и без доки понятно)Имхо кодить получится неудобно. Мне нужен пример, который меня разубедит.

вот у меня и выложен пример частичной раскраски AOF и ассемблерные исходники которые позволяют запускать раскрашенные игры и процессы на разных CPU + тулза для раскраски игровых файлов.. да и эмуль после января 2007 претерпел изменения :)

Lethargeek
03.08.2008, 21:27
Да с раскрасками все понятно - непонятно, зачем городить только для этого аж целых четыре (а то и больше) проца, да к тому же каждый с отдельной памятью! Когда того же (и много большего) можно добиться одной плисиной с одной же линейкой видеопамяти (если очень хоца - тоже без переделки кода)! Зачем, спрашивается, домашнему хобби-компу несколько CPU, все так же "прибитых" графикой (пусть и лучшего качества)? Че-то распараллеливать в "свободное" время (это при том, что в обычной игрушке один кадр анимации с активной зоной на пол-экрана и так несколько прерываний кушает)? Че вообще считать-то на хобби-компе? Ну только если из спортивного интереса...

Гипотетический спековый ускоритель не обязан быть черным ящиком, это ж не виндовозный ужос :) Грубо говоря, имеем несколько уровней абстракции при работе с графикой, как то так: "скрипты --> примитивы --> блоки --> группы пикселей --> отдельные пиксели". Ну и кто запрещает оставить кодеру доступ к любому уровню без посредников? Чем это хуже Спека (если учесть что на Спеке уровень только один - "группы пикселей")? ;)

Raydac
03.08.2008, 21:37
Да с раскрасками все понятно - непонятно, зачем городить только для этого аж целых четыре (а то и больше) проца

ну например гипотетический use case:

стратегическая рил-тайм игра в которой один процессор отвечает за графическое оформление, интерфейс и загрузку-выгрузку; два процессора отвечают за A.I. ; один проц отвечает за звуковое оформление.. чем не применение? если не так очевидно, то хотел бы указать, что процы в системе необязательно все на графику пашут, это уже от программера зависит и задачи, а так и один может рисовать во всех режимах

альтера штука хорошая, но к ней нужен MAXII для программирования и компиляции прошивки, что не у всех есть, да и познания в VHDL/AHDL тоже.. у видеоакселераторов есть один минус жирный - они быстро превращаются в самостоятельный "железный кусок", который подвластен только разрабаотчику оного и софт так сильно на него западает, что уже никаких свежих решений нереально сделать (как пример, сейчас на писишке никто не делает воксельных игр, так как видеоаксели полигональные и народ всё перекладывает на них) и любое изменение оного приводит к несовместимости софта между компами с разными видеоакселями

Добавлено через 2 минуты

Гипотетический спековый ускоритель не обязан быть черным ящиком, это ж не виндовозный ужос

не обязан, но это как опенсорсные библиотеки, в них крайне мало кто будет копаться :) так что он дефакто станет черным ящиком по причине человеческого фактора, которые заставит разработчиков перепихивать всё на "виновника ускорителя"

Lethargeek
04.08.2008, 01:54
стратегическая рил-тайм игра в которой один процессор отвечает за графическое оформление
Опять один? Опять монохромная графика? Причем такая же тормозная!
И это типа ЛУЧШЕ специализированного ускорителя? Нафиг-нафиг.


два процессора отвечают за A.I. ; один проц отвечает за звуковое оформление.. чем не применение?
Ну и в итоге будут друг друга постоянно задерживать, проще мегагерц нарастить (причем даже не в четыре раза) и написать обычный последовательный код.


если не так очевидно, то хотел бы указать, что процы в системе необязательно все на графику пашут,
Обязательно все и почти обязательно синхронно, если хотим нормальную полноцветную графику. А мы ведь хотим?


это уже от программера зависит и задачи, а так и один может рисовать во всех режимах
С раздельной-то памятью?!


альтера штука хорошая, но к ней нужен MAXII для программирования и компиляции прошивки, что не у всех есть, да и познания в VHDL/AHDL тоже..
Да ну нафиг. Пусть стандартную паршивку все юзают.


у видеоакселераторов есть один минус жирный - они быстро превращаются в самостоятельный "железный кусок", который подвластен только разработчику оного и софт так сильно на него западает, что уже никаких свежих решений нереально сделать
А если аксель ускоряет не только крупные, но и мелкие операции?


(как пример, сейчас на писишке никто не делает воксельных игр, так как видеоаксели полигональные и народ всё перекладывает на них) и любое изменение оного приводит к несовместимости софта между компами с разными видеоакселями
Дык писишка - коммерческая платформа, там все картинка решает, на такое же качество воксельным движкам ни мощности, ни памяти не хватает (может и доживем). Любители-то конечно стараются - результат интересные, но убогие получаются (тот же Voxelstein например). Да еще прокладки для совместимости (и все равно, даже совместимость сверху вниз в той же линейке nVidia афаик уже довольно условная).


не обязан, но это как опенсорсные библиотеки, в них крайне мало кто будет копаться так что он дефакто станет черным ящиком по причине человеческого фактора, которые заставит разработчиков перепихивать всё на "виновника ускорителя"
Я че-то не понял, таки предлагается силком заставить кодера действовать по-старинке? Любой ценой? :D
Чем аксель хуже? Хочешь отдельные полоски из 8 точек гонять - ну и гоняй. Причем одним-единственным центральным процессором не хуже, чем целой кучей. Никто ж пинками не заставит юзать "скрипты"!

Короче, я не вижу на домашнем хобби-компе задач, с которыми мультипроцессорная система справится лучше (или программируется проще) специализированного чипсета.

Sayman
04.08.2008, 05:38
Вы меня простите, други. Но в названии темы говорится про мнение, вот я щас его и выскажу...своё мнение...
1). незачем давать отдельный проц на звуковое оформление. есть ГС, есть неоГС, етсть АУ, есть ТФМ, есть ковоксы разные.Ноо первые два пункта удобнее и класснее...для фоновой музы в неких аркадах и АУ/ТФМ проканают. отдельный проц тут не нужон!
2). для графики действительно лучше придумать внешнюю карту. Слоты зхбус есть почти у всех..даже у профи есть подобие этой шины. подключить карту проблем не составит, я думаю. кроме того, ненужно будет делать всяких порезаний на плате компа...желательно... Во всяком случае есть целая куча схем, вон для пня22 есть свой режим 16с. у профи есть свой режим, у атм свой... но нет по сути схем реализации каких то экранеов. проблему быстрой пересылки на "цветном" экране, можно было бы решить куда более дёшево - DATA-GEAR....цена вопроса 200р примено.
3).Если речь идёт о новом клоне, то тут нужно немного оговориться: время на разработку концепции и схемы+время на создание первого рабочего экхемпляра+время на избавления от глков+время на создание хотябы с пяток демок и игрушек (незабываем про поддержку со стороны ПЦ) и т.д. всё это время...которое уходит и постепенно народу станет пофигу не то что на эту идею, на сам спек и наверно на компы вообще (как это часто бывает у многих). поэтому безперспективно.
нынчеп я вообще вижу тенденцию ко всякому "базару". в железе напридумывали гору всяких стандартов, а в итоге нифига никому ненадо. Одних только иде контроллеров насчитал 6 штук..а поддерживаются максимум два - Немо и АМТ... а некоторые вообще затачивают отдельные системы под конкретные клоны. тут попахивает махнатой рукой мекомягких, в плане навязывания определённых продуктов. типа "хочеш чтою это работало? тогда купи вот это..." и т.д... умолкаю)))))

Raydac
04.08.2008, 16:07
Обязательно все и почти обязательно синхронно, если хотим нормальную полноцветную графику. А мы ведь хотим?

ты наверное фигово прочитал доку, CPU0 может вполне работать со всей памятью, со всеми 512 кБт (он кстати только и отрисовывает графику в тест-пзу, в том числе и в видеорежимах 256x192 16 цветов и 512x384).. параллельная работа с графикой нужна если ты хочешь ускорить работу с многоцветной графикой или в режиме высокого разрешения

p.s.
в принципе конечно для полноценной работы с многоцветностью при помощи одного проца, надо поднимать частоту, но это уже вещь по отношению к архитектуре внешняя.. под полноценной работой я понимаю исключение малейшей возможности появления цветовых артефактов (цветовой перелив) пикселя из-за последовательной работы с видеопамятью относительно медленным процом

Sayman
04.08.2008, 19:09
CPU0 может вполне работать со всей памятью, со всеми 512 кБт
если речь идёт про z80 то 64к и не более..а дальше переключением страниц, но это уже оособенность платы скорее..

fan
04.08.2008, 20:47
DATA-GEAR....цена вопроса 200р примено
Где ???

Raydac
04.08.2008, 20:51
если речь идёт про z80 то 64к и не более..а дальше переключением страниц, но это уже оособенность платы скорее..

в ZX-Poly, CPU0 может маппировать область памяти на область портов ввода-вывода

Sayman
05.08.2008, 06:11
Где ???
схема висит на сайте valesoft
http://velesoft.speccy.cz/data-gear.htm
...общая стоимость всех компонентов примерно 200р (+-рублей 50 наверно)
считаем...проц z80 = 80р - 90р
z80DMA = примрено 100р у чипа-дипа
несколько резюков по рублю
и там есть ещё один корпус который у нас в городе как то видел по 70р...

Lethargeek
05.08.2008, 15:23
ты наверное фигово прочитал доку, CPU0 может вполне работать со всей памятью, со всеми 512 кБт (он кстати только и отрисовывает графику в тест-пзу, в том числе и в видеорежимах 256x192 16 цветов и 512x384).. параллельная работа с графикой нужна если ты хочешь ускорить работу с многоцветной графикой или в режиме высокого разрешения
Я ж написал - НОРМАЛЬНУЮ полноцветную графику.
А не слайд-шоу а-ля Вектор-06.


под полноценной работой я понимаю исключение малейшей возможности появления цветовых артефактов (цветовой перелив) пикселя из-за последовательной работы с видеопамятью относительно медленным процом
Да тут ни куча процов, ни даже лишние мегагерцы не требуются
(особенно если убрать расслоение видеопамяти на четыре области) ;)
Если запросы такие скромные - ради чего спрашивается огород городили?


в ZX-Poly, CPU0 может маппировать область памяти на область портов ввода-вывода
Еще хуже тормоза!


проблему быстрой пересылки на "цветном" экране, можно было бы решить куда более дёшево - DATA-GEAR....цена вопроса 200р примено.
Тупой DMA решает дааааалеко не все графические задачи...

fan
05.08.2008, 19:12
z80DMA = примрено 100р у чипа-дипа
Где конкретно ??? (дай линк плиз)

Sayman
06.08.2008, 07:36
Тупой DMA решает дааааалеко не все графические задачи...
Канешно. нам нужно всего то быстро вывести графику...иными словами перекинуть какой то блок данных из одного участка памяти в другой. разве нет?
сидит спрайт по адресу #8000. нам нада перекинуть его на #4000. если всё делать достаточно не сложно и просто, то через ldi... задача ДМА как раз в этом и заключается - быстро перекинуть нужные блоки данных. А если ты ведёш речь уже про какие то более сложные задачи, типа моушнблур или бампы всякие, чанки, то звиняйте, это уже FPU нада...

(дай линк плиз)
на скорую руку вот...
http://www.chip-dip.ru/product1/1838935565.aspx
но там партиями от 10шт..если разделить 10 на сумму, то получаем за проц всего 45р...даже меньше чем я у нас в городе видел)))

ZEK
06.08.2008, 08:04
сидит спрайт по адресу #8000. нам нада перекинуть его на #4000. если всё делать достаточно не сложно и просто, то через ldi... задача ДМА как раз в этом и заключается - быстро перекинуть нужные блоки данных.
Заодно остановить проц, а это и есть огромный минус. К тому же шина спектрума сильно не позволит разогнаться.

Sayman
06.08.2008, 08:26
проц останавливается в любом случае на время пока он перекидывает блоки (в одно и тоже время он может выполнять только одну команду. если дали ему ldi - 16тактов на байт, то думаю что с дма будет раза в два быстрее), насколько я помню...вся разница в том, что дма это делает быстрее, а значит и задержка будет меньше. о чём речь?! по роликам которые демонстрируют работу дма видно, насколько проц останавливается)))
http://velesoft.speccy.cz/data-gear/dma-demos/dma-demo-level_2.zip
а про полноэкранные мультиколоры вообще молчу.

ZEK
06.08.2008, 09:18
проц останавливается в любом случае на время пока он перекидывает блоки
В том то и прикол что это не обязательная мера.

Sayman
06.08.2008, 09:23
может быть...я всего щас не вспомню..но так на вскидку...
логика проца проста, как и сам проц - на время выполнения какойто команды, время которое требуется на её выполнение проц будет простаивать...т.е. дал ему команду лди или например out (c),a, и пока он не выпонит её, он всёровно ничего другого делать не будет. другое дело если команда выполняется быстро, скажем за 4 такта...тогда, чем быстрее выполнится команда, тем быстрее проц продолжит принимать команды следующзие..вроде так было.... но всё ровно, задежка при работе с ДМА будут минимальными, за счёт того, что время на выполнение этих команд по переброске будут выполняться быстрее, кроме того, никто не мешает кидаться небольшими блоками, чтобы в промежутках между ними делать какие то иные задачи...разве нет?

ZEK
06.08.2008, 09:30
всеравно есть останов на время переброса маленьких блоков, опять же этого можно избежать.

Вот и посчитай во сколько раз увиличится производительность компьютера если скажем проц свои примерные 70000 тактов будет работать, а паралельно какое нить DMA будет заниматься перекидыванием блоков памяти, скажем со скорость хотя бы 800 кил/с.

Sayman
06.08.2008, 09:36
если паралельно то да, это лучше, но...
если одна и таже область памяти будет попадать под нужды проца и дма, не выльеца ли это в огромный глюк? дма наскотлько я помню блокирует участок памяти с которым работает...но я непомню на чсто, на чтение или на запись...
тиекущая архитектура спектрума не позволит сделать подобных улучшений, чтобы и дма и проц одновременно работали в одной памяти, а крамсать свой профик я чтото нехачую...новый же клон врятли будет иметь папулярность, я думаю...
а вообще, не поймёш пока не попробуеш...
думаю, я до нового года присобачу себе Датагеар..там и будет видно насколько оно несёт в себе пользу.

ZEK
06.08.2008, 09:42
Как раз архитектура позволяет. У спектрума она более менее открытая. Единственное крамсание (но не обязательное) связанное с сигналом INT для проца

Но если идти путем velesoft (его DMA скорей всего не будет работать на клонах с прозрачным арбитром памяти) то и кромсамние отпадает

Sayman
06.08.2008, 09:53
на клонах с прозрачным арбитром памяти
ооо...это как? поподробнее?

fan
06.08.2008, 20:19
на скорую руку вот...
http://www.chip-dip.ru/product1/1838935565.aspx
но там партиями от 10шт..если разделить 10 на сумму, то получаем за проц всего 45р...даже меньше чем я у нас в городе видел)))
Круто ты посчитал... Одна штука стоит 450.00 руб , если купить не меньше 30 штук !!! Я и одного за такие бабки не куплю...



Цена в интернет-магазине и офисах продаж: от 30 шт. 450.00 руб. | от 50 шт. 416.00 руб. | от 70 шт. 399.01 руб.

Lethargeek
06.08.2008, 20:24
Канешно. нам нужно всего то быстро вывести графику...иными словами перекинуть какой то блок данных из одного участка памяти в другой. разве нет?
Нет. DMA не умеет делать условные переброски (хотим программный спрайт - как минимум нужно пропускать прозрачные точки). Только непрозрачные прямоугольные (со скрипом - выпуклые) блоки, то есть только фон и прокрутка, к тому же придется кидать отдельно каждую строку. Кстати ldi тоже не годится на спрайты (разве что раскладка видеопамяти "байт на пиксель", и то неудобно), почти исключительно применяется только для быстрой переброски уже отрисованного теневого буфера на экран. Тот же ускоренный ldi - вот тебе и вся область графического применения DMA. Хотя любители бегущих строк конечно обрадуются :)

Sayman
07.08.2008, 07:16
пасмотрим...щас пока не до этого..но судя по демкам, думаю что ты не совсем прав. да, дма тупая железка, но в итоге что нам нужно, это тупая переброска. исключение, только тогда, когда спрайт генерируется сразу на экран. если не на экран а куда то в область памяти, то выкинуть его от туда как угодно можно через дма. дума ю от точки до линии...

NovaStorm
07.08.2008, 08:43
Ну если у нас видео память отдельная/двухпортовая и рисование в теневой буфер идёт в отдельную банку, то ДМА очень даже поможет с выводом, пока проц что-то считает.

Lethargeek
08.08.2008, 02:17
да, дма тупая железка, но в итоге что нам нужно, это тупая переброска. исключение, только тогда, когда спрайт генерируется сразу на экран.
На обычном Sp-128 лучше просто два доступных экрана переключать
В старых 48K игрушках легко ускорить явную переброску буфера
но это даже не 50% временных затрат исходной графической части


если не на экран а куда то в область памяти, то выкинуть его от туда как угодно можно через дма. дума ю от точки до линии...
Замаешься каждую строчку DMA перезадавать и пропускать ненужные точки
Это если раскладка "байт на точку" (или на две без расслоения)
(а в битпланах от тупой переброски вообще толку мало)
Разве что фон рисовать из программных тайлов...

GriV
09.08.2008, 18:05
Резюмируем