User Tag List

Показано с 1 по 10 из 118

Тема: Вопрос про "состязательную/несостязательную" память.

Древовидный режим

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #9

    Регистрация
    07.10.2006
    Сообщений
    1,730
    Спасибо Благодарностей отдано 
    257
    Спасибо Благодарностей получено 
    275
    Поблагодарили
    167 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от mmxdmv Посмотреть сообщение
    Имелось в виду не совместимость, а скорее наследственность. Тормозили они примерно одинаково. В смысле у отечественных клонов разброс был значительно больше.
    А мультиколорщики к основным (читай буржуйским) моделям подстраивались. Правда у них быстро пересели на PC и амиги...
    Тормозят хоть и примерно одинаково, но по-разному, поэтому мультиколорщикам приходилось подстраиваться под модель, если они ориентировались на оригинальные машины. Но у нас большинство не парилось, и писало демки исключительно под Пентагон, с его безтормозной архитектурой, да ещё и с запасом по тактам на фрейм.


    Хм. Я не очень владею буржуйским переводчиком, чтобы понять ньюансы. Просто читал в каком-то, тогда ещё бумажном руководстве что торможение происходит ТОЛЬКО если процессор и ULA обращаются к шине одновременно. Частота генерации пикселов - 7мегагерц, но картинка монохромная + атрибут; поэтому на восемь пикселов (или 4 такта z80) происходит два чтения. А z80 как раз подавляющее большинство команд имеет с чётными тактами. По идее нелогично тормозить всегда, если можно только в случае конфликта...

    Ну и на счёт 50% и выше... совсем уж не верится. Такую цифру можно получить лишь в том случае, когда на момент вывода экрана процессор полностью отрубается (и включается только на BORDER).
    Увы, всё сложнее в плане торможения. Несмотря на то, что действительно на 4 такта происходит два чтения, процессор тормозится каждые 6 тактов из 8, при чтении кода операции, обращении к памяти, и в некоторых других случаях, - на 48/128к и каждые 7 тактов из 8 - на +2A/+3. Почему - я не знаю, я не схемотехник, увы.

    Возьмем, например, цепочку команд NOP, представим, что она выполняется с начала тормозного цикла. 1-я команда будет выполняться 10 тактов, вторая, третья и последующие - по 8 тактов. Торможение +100% (вместо 4 тактов - 8)! А более сложные команды могут тормозиться ещё и неоднократно. И это до самого конца прорисовки битовой строки экрана. Положение спасают только рисование бордюра и обратный ход луча по строке, дающие затем 96 тактов без тормозов. Т.е. во время рисования всей экранной строки с учетом бордюра торможение будет (128*2+96)/ (128+96)=1.57, (где 128 - количество тактов на прорисовку битовой картинки, 96 - на бордюр и обратный ход луча, 2 - коэффициент торможения (8 тактов вместо 4х)
    Т.е. на 57% код в медленной памяти во время прорисовки экранных строк с битовой картинкой (включая левый и правый бордюр и обратный ход луча в начало строки) выполняется медленнее. Правда, для более длинных по времени выполения команд торможение может быть как выше (если они сами обращаются к медленной памяти), так и ниже, за счет меньшего отношения времени ожидания к длине команды. Например, последовательные команды инкремента регистровой пары будут выполняться 12,8,8,8 тактов вместо 6, что дает торможение +25% (если только программист не решит вписать в регистр I что-нибудь из диапазона адресов медленной памяти, тогда эти команды будут выполняться за 16 тактов каждая).

    Примерно треть кадра уходит на прорисовку верхнего и нижнего бордюра, и обратный ход луча в начало кадра, во время которых торможения не происходит, что ещё несколько спасает ситуацию.
    1.57*(224*192)/69888+1*(69888-224*192)/69888=1.57*0.61+1*0.39 ~=1.35. (1.57 - коэффициент торможения во время прорисовки основных строк экрана, 224*192- время в тактах на их прорисовку, 69888 - общее время кадра в тактах).

    Итого, в целом за кадр, медленная память тормозит проц где-то на 35%. Как-то так.


    А вообще, да, странно такое читать: берём процессор на 4 мегагерца (большинство из которых прекрасно работают на 5-6), тормозим его до 3.5 мегагерц (на тактовом генераторе и синхронизации экономим), а потом ещё "до 50%" тормозим (уже непонятно на чём экономим)...
    Я так понял, экономим в основном на времени разработки. Не думаю, что небольшое усложнение ULA сильно её удорожило бы.

    - - - Добавлено - - -

    Цитата Сообщение от NEO SPECTRUMAN Посмотреть сообщение
    ну 50% это сильно жирно

    даже если полностью отключать проц на время отрисовки экрана

    (312-192)*224 = 26880т верхняя нижняя граница экрана в которой отрисовка не происходит
    192*(224-(256/2)) = 18432т во время отрисовки бордюра по краям экрана проц не тормозиться

    итого во фрейме не меньше 45312т когда у процессора есть доступ к памяти
    что как бы 64,835164835164835164835164835165% от общего времени его работы
    уже никак не 50%
    а еще ж процу дается доступ и во время отрисовки экрана...
    а того времени вполне хватает
    на отдельных мелких командах конечно можно потерять и больше 50 % (nop за 10 тактов)
    но это на отдельных одиночных командах
    Я говорил о торможении во время прорисовки битовой части картинки, а не о торможении в целом за кадр.
    Последний раз редактировалось Spectramine; 23.02.2017 в 01:56.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. "Вечная память" на Спеке
    от =ANDROID= в разделе Память
    Ответов: 23
    Последнее: 24.03.2011, 14:44
  2. Ответов: 0
    Последнее: 15.08.2010, 14:38
  3. Вопрос про память для PC
    от Jukov в разделе Зарубежные компьютеры
    Ответов: 5
    Последнее: 09.12.2006, 14:27
  4. Вопрос про память
    от POIND в разделе Память
    Ответов: 104
    Последнее: 03.01.2006, 14:15
  5. "Ремейк или плагиат?" или "про FIRE & ICE..."
    от antiplagiat в разделе Игры
    Ответов: 27
    Последнее: 04.06.2005, 02:55

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •