Важная информация

User Tag List

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя
Показано с 11 по 20 из 33

Тема: Не пойму, как работает "прозрачный доступ" к ОЗУ (читал М.Буна)

  1. #11
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Keeper Посмотреть сообщение
    В общем видеоконтроллер читает данные из памяти несколько чаще чем ему нужно, по-этому видеоконтроллер не против отдать процессору доступ в "момент Т2". "Момент Т2" как раз и отслеживается триггером D5. А вот для формирования непосредственно изображения данные берутся из REG.DISP, а не из памяти, соответственно конфликта доступа к памяти не будет.
    Т.е., один и тот же (расположенный по одному и тому же адресу видеопамяти) байт записывается в регистр по несколько раз?
    А где гарантия, что нужный байт будет в итоге записан?
    Где гарантия, что когда байт из регистра загрузят в сдвиговый регистр (уже для вывода), то там будет нужное значение? Почему-то М.Бун этот момент не осветил. Может быть, я что-то очевидное упустил?

  2. #12
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    Где гарантия, что когда байт из регистра загрузят в сдвиговый регистр (уже для вывода), то там будет нужное значение?
    Ну у нас же 1 байт - 8 точек, которые выводятся за 4Т 3,5МГц, т.е. запас есть плюс упреждающее чтение в Т1, а вот в режиме 16c видеоконтроллер занимает все такты и процессор приходиться полностью останавливать на время отрисовки экрана...

    Добавлено через 1 минуту
    Цитата Сообщение от IanPo Посмотреть сообщение
    Может быть, я что-то очевидное упустил?
    Должен признать что механизм не совсем очевидный, по крайней мере я не сразу понял что происходит...
    Последний раз редактировалось Keeper; 02.03.2009 в 17:04. Причина: Добавлено сообщение

  3. #13
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    52 мкс - прямой ход луча
    256 точек / 8 точек на байт = 32 байт
    + 32 байт цвета = 64 байт

    Время, отводимое на вывод точки:
    tb := 52E-6/64
    = 8.125E-7

    Период тактовой частоты процессора:
    Tcpu := 1/3.5E6
    = 2.85714286E-7

    На вывод точки отводится N тактов процессора = tb/Tcpu = 2.84375

    Запас (небольшой), конечно, есть, но где гарантия, что контроллер попадет в T2?

  4. #14
    Super Moderator Аватар для Ewgeny7
    Регистрация
    03.07.2005
    Адрес
    Санкт-Петербург
    Сообщений
    10,168
    Спасибо Благодарностей отдано 
    146
    Спасибо Благодарностей получено 
    76
    Поблагодарили
    51 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Прочитай четвертый мануал, там есть кое-что, даже с осциллограммами:
    http://www.zx.pk.ru/showpost.php?p=179392&postcount=39
    ScorpEvo ZS 1024 turbo+ CF-HDD/FDD/Mouse/SMUC 3.1/ProfROMse/NeoGS/ZC
    Speccy-2007 128/AY/TR-DOS

    Сайт с документацией к "Scorpion ZS 256"

  5. #15
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    KALDYH
    Посмотрел схемы пентагонов (на сайте KoE). Та же схема переключения доступа, что и у Буна. Регистры видел, насколько понял, это в т.ч. для того, чтобы атрибут по 8 раз не считывать, что уменьшает количество обращения к ОЗУ. Но без осциллограмм не очень понятно, а главное, нет ответа на вопрос, как гарантированно считать байт из видеопамяти, если процессор может отключать контроллер, когда ему надо.

    ewgeny7
    Посмотрел доку, но у Буна по-другому. Насколько я понял, у тебя зона прозрачного доступа меньше полутакта, поэтому используется быстрая статика (кстати, время доступа почему-то написано 15 мкс, а не наносекунд).

    Добавлено через 7 часов 11 минут
    Единственное, что мне приходит в голову: адрес дисплейного контроллера меняется не чаще, чем раз в 2 такта. Т.е. один и то же адрес держится >=2 тактов, тогда контроллер может считать нужный байт до или после T2.
    Последний раз редактировалось IanPo; 03.03.2009 в 18:01. Причина: Добавлено сообщение

  6. #16
    Master Аватар для Conan
    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    2,250
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    108 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    IanPo
    ОЗУ в ZX Spectrum имеет разрядность слова в 8 бит. То есть считать один бит (пикселей, атрибутов, данных) не считывая другие нельзя, считаются сразу все 8 бит.
    Принцип работы (упрощенно) такой: относящиеся к одному знакоместу атрибуты и пиксели считываются из ОЗУ в разное время (последовательно), в промежуточные регистры, откуда и используются (параллельно) для формирования RGBY одного знакоместа. Затем процесс повторяется для следующего знакоместа...
    Количество обращений к ОЗУ тут ни при чем.

    Что касается "прозрачного доступа к ОЗУ", то все примитивно:
    есть промежуток времени (машинный цикл) продолжительностью в 4 такта CPU. В этом промежутке видеопроцессор дважды читает из ОЗУ (те самые байты пикселей и атрибутов). Поскольку чтение производится в промежуточные регистры, не имеет значения в каких двух, из четырех тактов будут считаны атрибуты-пиксели. В "пентагонах" последовательность чтения из ОЗУ в машинном цикле может меняться, например.

    При этом CPU всегда получает доступ к ОЗУ из-за того, что самый короткий цикл чтения (fetch) занимает 2 такта. То есть если CPU требуется доступ к ОЗУ, а в это время оттуда считывается байт пикселей или атрибутов, то в следующем такте ОЗУ будет доступно процессору. И для CPU считавшего или записавшего данные из/в ОЗУ оно будет "прозрачным", то есть доступным без ожидания (циклов WAIT).

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

  8. #17
    Master
    Регистрация
    31.03.2008
    Адрес
    Москва
    Сообщений
    725
    Спасибо Благодарностей отдано 
    10
    Спасибо Благодарностей получено 
    75
    Поблагодарили
    34 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Conan
    Понял, спасибо.
    Один вопрос только остался невыясненным: может ли тогда один и тот же байт из видеопамяти быть считан 2 раза (в регистр)? Предположим, что процессор в этот момент обрабатывает последовательность NOP из ПЗУ и у контроллера, фактически, монопольный доступ к ОЗУ.

  9. #18
    Master Аватар для Conan
    Регистрация
    22.01.2005
    Адрес
    Moscow
    Сообщений
    2,250
    Спасибо Благодарностей отдано 
    42
    Спасибо Благодарностей получено 
    279
    Поблагодарили
    108 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от IanPo Посмотреть сообщение
    может ли тогда один и тот же байт из видеопамяти быть считан 2 раза (в регистр)?
    Зависит от аппаратной реализации "прозрачного режима". Их два: синхронный и асинхронный.
    В "пентагонах" - асинхронный, поэтому в них пиксели или атрибуты читаются по нескольку раз, а за промежуточными регистрами, стоят еще регистры , куда читается (из промежуточных регистров) уже строго когда надо (выводить атрибуты и пиксели конкретного знакоместа).

    В синхронном режиме по два раза могут читаться данные для CPU. Проще говоря чтение из памяти идет через раз:
    CPU-ATR-CPU-PIC
    Синхронный режим требователен к сигналам управляющим ОЗУ, регистрами и т.д. Но имеет ряд преимуществ. Одно из них это дополнительная регенерация ОЗУ (адресами CPU). Ибо в подавляющем большинстве отечественных клонов этот параметр (период регенерации) запредельный для наших микросхем.

  10. #19
    Master Аватар для Keeper
    Регистрация
    15.11.2007
    Адрес
    Харьков
    Сообщений
    873
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Conan Посмотреть сообщение
    Зависит от аппаратной реализации "прозрачного режима". Их два: синхронный и асинхронный.
    Спасибо за ликбез. Скажите, в каком из клонов использован синхронный режим? Насколько я понял у Буна описан асинхронный режим...

  11. #20
    Guru Аватар для fan
    Регистрация
    11.02.2005
    Адрес
    Москва
    Сообщений
    3,789
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    КАЙ и выпрямленный ленинград .
    Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
    REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/

Страница 2 из 4 ПерваяПервая 1234 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 67
    Последнее: 21.04.2021, 14:51
  2. Ответов: 6
    Последнее: 20.11.2007, 11:29
  3. Ответов: 5
    Последнее: 20.06.2005, 00:10
  4. "Ремейк или плагиат?" или "про FIRE & ICE..."
    от antiplagiat в разделе Игры
    Ответов: 27
    Последнее: 04.06.2005, 02:55

Ваши права

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