В том то и прикол что это не обязательная мера.
Вид для печати
может быть...я всего щас не вспомню..но так на вскидку...
логика проца проста, как и сам проц - на время выполнения какойто команды, время которое требуется на её выполнение проц будет простаивать...т.е. дал ему команду лди или например out (c),a, и пока он не выпонит её, он всёровно ничего другого делать не будет. другое дело если команда выполняется быстро, скажем за 4 такта...тогда, чем быстрее выполнится команда, тем быстрее проц продолжит принимать команды следующзие..вроде так было.... но всё ровно, задежка при работе с ДМА будут минимальными, за счёт того, что время на выполнение этих команд по переброске будут выполняться быстрее, кроме того, никто не мешает кидаться небольшими блоками, чтобы в промежутках между ними делать какие то иные задачи...разве нет?
всеравно есть останов на время переброса маленьких блоков, опять же этого можно избежать.
Вот и посчитай во сколько раз увиличится производительность компьютера если скажем проц свои примерные 70000 тактов будет работать, а паралельно какое нить DMA будет заниматься перекидыванием блоков памяти, скажем со скорость хотя бы 800 кил/с.
если паралельно то да, это лучше, но...
если одна и таже область памяти будет попадать под нужды проца и дма, не выльеца ли это в огромный глюк? дма наскотлько я помню блокирует участок памяти с которым работает...но я непомню на чсто, на чтение или на запись...
тиекущая архитектура спектрума не позволит сделать подобных улучшений, чтобы и дма и проц одновременно работали в одной памяти, а крамсать свой профик я чтото нехачую...новый же клон врятли будет иметь папулярность, я думаю...
а вообще, не поймёш пока не попробуеш...
думаю, я до нового года присобачу себе Датагеар..там и будет видно насколько оно несёт в себе пользу.
Как раз архитектура позволяет. У спектрума она более менее открытая. Единственное крамсание (но не обязательное) связанное с сигналом INT для проца
Но если идти путем velesoft (его DMA скорей всего не будет работать на клонах с прозрачным арбитром памяти) то и кромсамние отпадает
ооо...это как? поподробнее?Цитата:
на клонах с прозрачным арбитром памяти
Нет. DMA не умеет делать условные переброски (хотим программный спрайт - как минимум нужно пропускать прозрачные точки). Только непрозрачные прямоугольные (со скрипом - выпуклые) блоки, то есть только фон и прокрутка, к тому же придется кидать отдельно каждую строку. Кстати ldi тоже не годится на спрайты (разве что раскладка видеопамяти "байт на пиксель", и то неудобно), почти исключительно применяется только для быстрой переброски уже отрисованного теневого буфера на экран. Тот же ускоренный ldi - вот тебе и вся область графического применения DMA. Хотя любители бегущих строк конечно обрадуются :)Цитата:
Сообщение от Sayman
пасмотрим...щас пока не до этого..но судя по демкам, думаю что ты не совсем прав. да, дма тупая железка, но в итоге что нам нужно, это тупая переброска. исключение, только тогда, когда спрайт генерируется сразу на экран. если не на экран а куда то в область памяти, то выкинуть его от туда как угодно можно через дма. дума ю от точки до линии...
Ну если у нас видео память отдельная/двухпортовая и рисование в теневой буфер идёт в отдельную банку, то ДМА очень даже поможет с выводом, пока проц что-то считает.