User Tag List

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

Тема: Contended memory и прочие тормоза спектрумов

Комбинированный просмотр

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

    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,089
    Спасибо Благодарностей отдано 
    281
    Спасибо Благодарностей получено 
    70
    Поблагодарили
    49 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от NovaStorm Посмотреть сообщение
    Советский гений создал Пентагон
    Не только пентагон. Есть еще "Орель БК-08", там тоже нет никаких задержек при обращении к ОЗУ.
    Цитата Сообщение от ZXMAK Посмотреть сообщение
    на словах это конечно проще выглядит, правда насколько помню, кроме ожидания шины, у пентагона еще и порядок выборки attr/pixel меняется на pixel/attr. А вот точно проэмулировать такое поведение непростая задачка, для этого нужно четко разобрать как этот процесс на риале происходит, а детального описания и исследований этого вопроса нет
    По схеме "Орели" я могу ответить на любые вопросы (эта схема несколько лет висела у меня на стене в комнате вместо портрета любимой девушки).

    В "Орели" порядк выборки attr/pixel или pixel/attr не меняется. Просто в начале каждого такта 3.5МГц анализируется сигнал запроса памяти процессором (сигнал /CSM, который вырабатывается из /MREQ и адресных линий A14, A15). Если он активен - то процессору предоставляется шина памяти на 1 такт. Считанное из памяти за этот такт значение защелкивается на регистре ИР22 и доступно на шине данных Z80 в течение всего последующего времени, пока активен /MREQ. Что же касается записи, то она происходит в указанный такт, когда процессору предоставлен доступ к ОЗУ, а в последующем такте (или тактах) активности /MREQ запись в ОЗУ не производится. Таким образом, в течение 2х тактов Z80 видеоконтроллер сможет обратиться к ОЗУ как минимум 1 раз, и этого как раз достаточно для нормального отображения экрана без задержек процессора.

    Думаю, что подобным образом сделано и в Пентагоне. Менять порядок считывания pixel/attr сложно схемотехнически, да и не нужно, если требуется только гарантировать одно обращение видеоконтроллера к ОЗУ за период в 2 такта 3.5МГц.

    С точки зрения эмуляции мультиколора - да, тут есть некоторая сложность, т.к. если Z80 не обращается к ОЗУ - то пиксели и атрибуты считываются оттуда каждый такт (т.е. избыточно), а если обращается - то возможны варианты +-такт. Если содержимое той области памяти, к которой обращается видеоконтроллер, изменяется так, что эта разница в +-такт становится существенной - то да, мультиколор начинает вести себя сложным образом.

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

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2

    Регистрация
    30.01.2006
    Сообщений
    1,921
    Спасибо Благодарностей отдано 
    73
    Спасибо Благодарностей получено 
    119
    Поблагодарили
    80 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение

    Думаю, что подобным образом сделано и в Пентагоне. Менять порядок считывания pixel/attr сложно схемотехнически, да и не нужно, если требуется только гарантировать одно обращение видеоконтроллера к ОЗУ за период в 2 такта 3.5МГц.

    С точки зрения эмуляции мультиколора - да, тут есть некоторая сложность, т.к. если Z80 не обращается к ОЗУ - то пиксели и атрибуты считываются оттуда каждый такт (т.е. избыточно), а если обращается - то возможны варианты +-такт. Если содержимое той области памяти, к которой обращается видеоконтроллер, изменяется так, что эта разница в +-такт становится существенной - то да, мультиколор начинает вести себя сложным образом.
    схемы под рукой нет, но насколько помню, в пентагоне шина данных процессора не лочится на время обращения видео генератора. Помню что порядок выборки attr/pixel управляется частью схемы на двух триггерах. Если происходит конфликт по памяти, то происходит смена очередности, т.е. если не удалось прочитать pixel, то он будет прочитан после attr и наоборот. Было бы интересно узнать чьи-то исследования этого вопроса, чтобы знать как в точности это происходит. Т.к. по схеме много ньюансов зависит от того, по каким фронтам сигнала меняется состояние элементов схемы.
    ZXMAK2 - Виртуальная Машина ZX Spectrum https://github.com/zxmak/ZXMAK2 (старая ссылка http://zxmak2.codeplex.com)
    ZXMAK.NET - спектрум на C# http://sourceforge.net/projects/zxmak-dotnet

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

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

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

Похожие темы

  1. Atari 130XE/65XE memory upgrade 1MB (4bit memory chips)
    от dkamenski в разделе Atari
    Ответов: 15
    Последнее: 12.01.2016, 16:20
  2. Дикие тормоза...
    от scl^mc в разделе Форум
    Ответов: 16
    Последнее: 02.11.2015, 13:11
  3. Времянки Contended Memory Spectrum 128
    от ZXMAK в разделе Программирование
    Ответов: 28
    Последнее: 28.09.2011, 23:32
  4. Contended memory /Медленная память/ на Original Speccy
    от MadCat! в разделе Программирование
    Ответов: 15
    Последнее: 05.03.2005, 11:18

Ваши права

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