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

User Tag List

Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 17

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

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

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

    По умолчанию Видеоконтроллер Пентагона

    Вопрос к тем, кто умеет читать схемы. Использует ли видеоконтроллер Пентагона шины адреса/данных при чтении видеоОЗУ, или он делает это по каким-то своим линиям?

    Вопрос возник в связи с чтением этой темы, и этого сообщения. Судя по алгоритму Lion17, видеоконтроллер приостанавливает чтение видеопамяти только на время такта доступа к ОЗУ процессором. Но доступ к портам и ПЗУ процессором занимает шины адреса/данных, поэтому по идее видеоконтроллер должен приостанавливать чтение видеопамяти и в этим случаях, если он тоже использует шины адреса/данных для чтения. Может кто-нибудь прояснить этот вопрос?

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

  3. #2
    Master
    Регистрация
    24.05.2005
    Адрес
    г. Запорожье, Украина
    Сообщений
    992
    Спасибо Благодарностей отдано 
    571
    Спасибо Благодарностей получено 
    365
    Поблагодарили
    239 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    нет.
    проц может читать ПЗУ без вейтов на любой частоте на какую способен.
    видеоконтроллер делит шину адреса и данных микросхем ОЗУ, а не самого проца.
    Последний раз редактировалось shurik-ua; 10.11.2017 в 17:51.

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

    По умолчанию

    Понятно, спасибо. То есть доступ процессора к ПЗУ и портам не тормозит чтение видеоданных видеоконтроллером.

  5. #4
    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 цикла. Таким образом всем хватает, процессор не приостанавливается.
    С уважением, Александр

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

    Shofer (05.02.2022)

  7. #5
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,645
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    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.

  8. #6
    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.
    С уважением, Александр

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

    Shofer (05.02.2022)

  10. #7
    Veteran
    Регистрация
    07.10.2006
    Сообщений
    1,645
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    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.

  11. #8
    Guru Аватар для Totem
    Регистрация
    13.12.2007
    Адрес
    Архангельск
    Сообщений
    2,189
    Записей в дневнике
    1
    Спасибо Благодарностей отдано 
    3
    Спасибо Благодарностей получено 
    11
    Поблагодарили
    11 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    During I/O operations, a single wait
    state is automatically inserted.
    Ты слыхал как грузится Flyshark ?! нет, совсем не тот, что на дискете...а Flyshark, тот самый блин Flyshark...тот ,что был когда то на кассете...
    zx spectrum 48 issuse 6a, Ленинград-1, zx spectum 128 +2 grey,Пентагон-128, ZXM-Phoenix 5.02 ( assembly)

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

    По умолчанию

    Цитата Сообщение от Totem Посмотреть сообщение
    During I/O operations, a single wait
    state is automatically inserted.
    Ага, поэтому цикл доступа к портам и не 3 такта, а 4.

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

    По умолчанию

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

Страница 1 из 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

Ваши права

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