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

User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 17 из 17

Тема: Видеоконтроллер Пентагона

  1. #11
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Понятно, спасибо. То есть доступ процессора к ПЗУ и портам не тормозит чтение видеоданных видеоконтроллером.
    ОЗУ, работающее на стандартной частоте 3.5 МГц, за время отрисовки на экране 1 байта, предоставляет 4 цикла доступа.

    Видеоконтроллеру, чтобы вывести на экран 8 цветных пикселей, требуется за это время только 2 раза прочитать ОЗУ - один раз чтобы прочитать байт пикселей, второй раз чтобы прочитать байт цветного атрибута.

    Процессор, работающий на такой же частоте 3.5 МГц, требует от ОЗУ за тоже время только 2 цикла доступа, т.к. в Z80 с каждым тактом чередуются режимы - чтение, запись ОЗУ / регенерация ОЗУ. Режим регенерации процессором в отечественных клонах Спектрума не используется, ОЗУ регенерируется самим видеоконтроллером. Процессор в Пентагоне лишь задаёт приоритет доступа к ОЗУ. Если процессор не обращается к ОЗУ, то все 4 цикла читает видеоконтроллер, ему столько не нужно, это просто дублированное чтение. Когда же процессору нужно обратиться к ОЗУ, то он это делает в приоритете, либо 1 и 3 цикл, либо 2 и 4, а видеоконтроллер тогда читает оставшиеся 2 цикла. Таким образом всем хватает, процессор не приостанавливается.
    С уважением, Александр

  2. Этот пользователь поблагодарил Northwood за это полезное сообщение:

    Shofer (05.02.2022)

  3. #12
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    ОЗУ, работающее на стандартной частоте 3.5 МГц, за время отрисовки на экране 1 байта, предоставляет 4 цикла доступа.

    Видеоконтроллеру, чтобы вывести на экран 8 цветных пикселей, требуется за это время только 2 раза прочитать ОЗУ - один раз чтобы прочитать байт пикселей, второй раз чтобы прочитать байт цветного атрибута.

    Процессор, работающий на такой же частоте 3.5 МГц, требует от ОЗУ за тоже время только 2 цикла доступа, т.к. в Z80 с каждым тактом чередуются режимы - чтение, запись ОЗУ / регенерация ОЗУ. Режим регенерации процессором в отечественных клонах Спектрума не используется, ОЗУ регенерируется самим видеоконтроллером. Процессор в Пентагоне лишь задаёт приоритет доступа к ОЗУ. Если процессор не обращается к ОЗУ, то все 4 цикла читает видеоконтроллер, ему столько не нужно, это просто дублированное чтение. Когда же процессору нужно обратиться к ОЗУ, то он это делает в приоритете, либо 1 и 3 цикл, либо 2 и 4, а видеоконтроллер тогда читает оставшиеся 2 цикла. Таким образом всем хватает, процессор не приостанавливается.
    То есть процессор приостанавливает чтение видеопамяти видеоконтроллером в Пентагоне строго два такта через один за 4 такта при обращении к ОЗУ, при любом цикле доступа к ОЗУ (выборка кода операции, чтение данных из памяти, запись данных в память)? Несмотря на то, что реально он обращается к ОЗУ только на одном из этих двух тактов?

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

    (Подозреваю, что два такта через один проц тормозит чтение видеопамяти видеоконтроллером только на машцикле выборки кода операции, т.к. остальные машциклы доступа к ОЗУ 3хтактные, и собственно доступ происходит на 2м такте цикла, как минимум для цикла записи. Плюс вроде как рефреш предполагается только на цикле выборки кода операции).
    Последний раз редактировалось Spectramine; 29.11.2017 в 18:34.

  4. #13
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    То есть процессор приостанавливает чтение видеопамяти видеоконтроллером в Пентагоне строго два такта через один за 4 такта при обращении к ОЗУ, при любом цикле доступа к ОЗУ (выборка кода операции, чтение данных из памяти, запись данных в память)? Несмотря на то, что реально он обращается к ОЗУ только на одном из этих двух тактов?
    Не приостанавливает, а отодвигает время чтения видеоконтроллером, но всё происходит внутри промежутка времени, пока видеоконтроллер обрабатывает 1 экранный адрес (8 пикселей). В зависимости от того, когда процессору понадобилось обратиться к ОЗУ, возможен 1 из 2 вариантов:

    а)
    1 цикл - Z80 обращается к ОЗУ
    2 цикл - видеоконтроллер читает пиксели
    3 цикл - Z80 обращается к ОЗУ
    4 цикл - видеоконтроллер читает атрибуты

    б)
    1 цикл - видеоконтроллер читает пиксели
    2 цикл - Z80 обращается к ОЗУ
    3 цикл - видеоконтроллер читает атрибуты
    4 цикл - Z80 обращается к ОЗУ

    Это и есть задание процессором приоритета доступа к ОЗУ. Но при любом раскладе, чтение остаётся внутри промежутка времени, пока ещё счётчики видеоконтроллера не увеличили адрес ОЗУ. На экране смена вариантов а) и б) никак не отражается, т.к. видеоконтроллер не сразу выводит прочитанное на экран, а сначала заносит 2 прочитанных байта в 2 буфера на 2х микросхемах 1533ИР23, и только когда счётчики увеличили адрес ОЗУ на единицу, то что было прочитано в прошлый раз, выводится на экран, одновременно пиксели и атрибуты, и в это же время видеоконтроллер читает из ОЗУ уже следующие 2 цикла. Поэтому кто первым прочитал ОЗУ, процессор или видеоконтроллер, никакой роли не играет.

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

    Цитата Сообщение от weiv Посмотреть сообщение
    (Подозреваю, что два такта через один проц тормозит чтение видеопамяти видеоконтроллером только на машцикле выборки кода операции, т.к. остальные машциклы доступа к ОЗУ 3хтактные).
    Процессор вообще никогда не тормозит видеоконтроллер, ни при выборке кода операции, ни при чтении/записи данных. Лишь постоянно меняются циклы доступа к ОЗУ чётные и нечётные.
    Последний раз редактировалось Northwood; 29.11.2017 в 18:40.
    С уважением, Александр

  5. Этот пользователь поблагодарил Northwood за это полезное сообщение:

    Shofer (05.02.2022)

  6. #14
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Northwood Посмотреть сообщение
    Не приостанавливает, а отодвигает время чтения видеоконтроллером, но всё происходит внутри промежутка времени, пока видеоконтроллер обрабатывает 1 экранный адрес (8 пикселей). В зависимости от того, когда процессору понадобилось обратиться к ОЗУ, возможен 1 из 2 вариантов:

    а)
    1 цикл - Z80 обращается к ОЗУ
    2 цикл - видеоконтроллер читает пиксели
    3 цикл - Z80 обращается к ОЗУ
    4 цикл - видеоконтроллер читает атрибуты

    б)
    1 цикл - видеоконтроллер читает пиксели
    2 цикл - Z80 обращается к ОЗУ
    3 цикл - видеоконтроллер читает атрибуты
    4 цикл - Z80 обращается к ОЗУ
    А если процессору надо обратиться на 3-м или 4-м такте этого цикла? Тогда по идее должно быть ещё так:
    в)
    1 такт - видеоконтроллер читает пиксели
    2 такт - видеоконтроллер читает атрибуты
    3 такт - Z80 обращается к ОЗУ
    4 такт - видеоконтроллер читает пиксели

    и г)
    1 такт - видеоконтроллер читает пиксели
    2 такт - видеоконтроллер читает атрибуты
    3 такт - видеоконтроллер читает пиксели
    4 такт - Z80 обращается к ОЗУ



    Это и есть задание процессором приоритета доступа к ОЗУ. Но при любом раскладе, чтение остаётся внутри промежутка времени, пока ещё счётчики видеоконтроллера не увеличили адрес ОЗУ. На экране смена вариантов а) и б) никак не отражается, т.к. видеоконтроллер не сразу выводит прочитанное на экран, а сначала заносит 2 прочитанных байта в 2 буфера на 2х микросхемах 1533ИР23, и только когда счётчики увеличили адрес ОЗУ на единицу, то что было прочитано в прошлый раз, выводится на экран, одновременно пиксели и атрибуты, и в это же время видеоконтроллер читает из ОЗУ уже следующие 2 цикла. Поэтому кто первым прочитал ОЗУ, процессор или видеоконтроллер, никакой роли не играет.
    Вообще-то играет, для записи в ОЗУ. Если процессор пишет в ОЗУ строго на 3-м такте, может получиться так, что видеоконтроллер может прочитать записанное только что процессором на 4м такте (из той же ячейки памяти), а может и не прочитать, в зависимости от текущего порядка чтения пикселей/атрибутов. Это видно на вот этих результатах теста: http://zx-pk.ru/threads/21212-tajmin...l=1#post596826 - полоска то появляется, то исчезает, в зависимости от порядка чтения пикселей/атрибутов видеоконтроллером.



    Процессор вообще никогда не тормозит видеоконтроллер, ни при выборке кода операции, ни при чтении/записи данных. Лишь постоянно меняются циклы доступа к ОЗУ чётные и нечётные.
    Я имею вввиду, что он приостанавливает чтение видеопамяти видеоконтроллером, ведь без обращения процессора к ОЗУ видеоконтроллер будет читать из ОЗУ все 4 такта.
    Последний раз редактировалось Spectramine; 29.11.2017 в 19:03.

  7. #15
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    А если процессору надо обратиться на 3-м или 4-м такте этого цикла? Тогда по идее должно быть ещё так:
    в)
    1 такт - видеоконтроллер читает пиксели
    2 такт - видеоконтроллер читает атрибуты
    3 цикл - Z80 обращается к ОЗУ
    4 такт - видеоконтроллер читает пиксели

    и г)
    1 такт - видеоконтроллер читает пиксели
    2 такт - видеоконтроллер читает атрибуты
    3 такт - видеоконтроллер читает пиксели
    4 цикл - Z80 обращается к ОЗУ
    Варианты в) и г), это производные вариантов а) и б). Я просто не описывал варианты, когда процессор вообще не обращается к ОЗУ или обращается не каждый цикл. Если внимательно посмотреть на схему, то можно увидеть, что доступ к ОЗУ переключают 2 триггера на 1533ТМ2, которые выполняют роль делителей частоты на 2. 1-й переключает "Процессор / видеоконтроллер", а второй переключает, что читать видеоконтроллеру - "Пиксели / атрибуты". Делитель частоты на 1-м триггере активируется процессором запросом доступа к ОЗУ. Когда 1-й триггер отдаёт доступ процессору, он останавливает 2-й триггер. Даже если Z80 постоянно будет требовать доступ к ОЗУ, оно всё-равно будет доступно процессору и видеоконтроллеру попеременно, за счёт 1-го триггера. Если процессор не обращается к ОЗУ, делитель на 1-м триггере останавливается, предоставляя ОЗУ полностью видеоконтроллеру. Как только процессор активировал линию MREQ, при отсутствии активности на линии RFSH, тут же переключается делитель на 1-м триггере, отдавая ОЗУ процессору. Но во время следующего такта 1-й триггер в любом случае переключается на доступ видеоконтроллеру.

    Сам же процессор Z80 построен таким образом, что он ни при каких обстоятельствах не требует ОЗУ 2 такта подряд. Через каждый такт процессор активирует линию RFSH для регенерации ОЗУ. Но этот режим заблокирован схемой Пентагона - когда активируется линия RFSH, останавливается делитель частоты на 1-й триггере, переключаясь в исходное состояние - на доступ видеоконтроллеру.

    Для чтения кода операции, требуется 4 такта, но из них к памяти нужно обратиться только 1 раз, чтобы прочитать 1 байт кода операции.
    Для чтения данных, требуется 3 такта, но из них к памяти тоже нужно обратиться только 1 раз, чтобы прочитать или записать 1 байт данных.
    Остальные такты АЛУ процессора выполняет свою внутреннюю работу. Само чередование режима регенерации с основной работой с ОЗУ заложено логикой работы самого процессора. И она полностью совпадает с логикой работы 1-го триггера на ТМ2. А поэтому и не требуется WAIT.
    Последний раз редактировалось Northwood; 29.11.2017 в 19:21.
    С уважением, Александр

  8. Этот пользователь поблагодарил Northwood за это полезное сообщение:

    Shofer (16.02.2022)

  9. #16
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,640
    Спасибо Благодарностей отдано 
    241
    Спасибо Благодарностей получено 
    249
    Поблагодарили
    155 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Я правильно понял, что первый триггер переключается по запросу от процессора раз, а затем автоматически обратно, далее он не переключается до нового запроса от процессора на доступ к ОЗУ?

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

  11. #17
    Master Аватар для Northwood
    Регистрация
    06.01.2011
    Адрес
    г. Днепр, Украина
    Сообщений
    804
    Спасибо Благодарностей отдано 
    43
    Спасибо Благодарностей получено 
    198
    Поблагодарили
    100 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от weiv Посмотреть сообщение
    Я правильно понял, что первый триггер переключается по запросу от процессора раз, а затем автоматически обратно, далее он не переключается до нового запроса от процессора на доступ к ОЗУ?
    Примерно так. Когда есть запрос от процессора (при неактивной линии RFSH), триггер тут же переключается на доступ процессору, при этом работает как делитель тактовой частоты процессора на 2. Поэтому следующий такт он переключается автоматически обратно - на доступ видеоконтроллеру. Если 3-й такт процессор опять обратится к ОЗУ, то триггер снова переключится на доступ процессору и т.д. Если обращения процессора нет, то триггер всегда в положении на доступ видеоконтроллеру.
    С уважением, Александр

  12. Этот пользователь поблагодарил Northwood за это полезное сообщение:

    Shofer (16.02.2022)

Страница 2 из 2 ПерваяПервая 12

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

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

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

Похожие темы

  1. Видеоконтроллер из пяти микросхем
    от zx-kit в разделе Изображение
    Ответов: 20
    Последнее: 31.03.2011, 14:48
  2. Спрайтовый видеоконтроллер уже на спеке.
    от DimkaM в разделе Изображение
    Ответов: 9
    Последнее: 15.11.2010, 17:46
  3. Сборка Пентагона 2.2
    от savelij в разделе Pentagon
    Ответов: 27
    Последнее: 08.12.2008, 11:21
  4. Видеоконтроллер MC6845
    от Mick в разделе Зарубежные компьютеры
    Ответов: 6
    Последнее: 29.02.2008, 22:14
  5. про видеоконтроллер
    от boo_boo в разделе Изображение
    Ответов: 29
    Последнее: 15.01.2007, 18:01

Ваши права

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