User Tag List

Страница 74 из 174 ПерваяПервая ... 707172737475767778 ... ПоследняяПоследняя
Показано с 731 по 740 из 1740

Тема: Реверс-инжиниринг УКНЦ (1515ХМ1&2, 1801ВП1, 1801ВМ2)

  1. #731

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Я думаю, что практически нет смысла использовать запись в регистр плана 0, если видео-ОЗУ расположено в доступной части ОЗУ ПП (ниже адреса 0x8000, или же ниже адреса регистров 0xFE00, если страницы ОЗУ спроецированны в верхнюю память). И тут несколько причин:
    1. Байтовая запись медленная из-за фиктивного чтения.
    2. Словная запись медленная, т.к. занимает двойное время, но записывает один байт.
    3. И, наконец, запись в регистр адреса планов (а ведь туда надо записать адрес) - это ОЧЕНЬ МЕДЛЕННАЯ операция, требующая чтения ОЗУ ПП, ОЗУ ЦП, и при этом еще и подтормаживающая в это время ЦП.

    Словом, я бы рекомендовал программистам никогда не использовать запись в регистр планов 0.
    Медлительность сохранится и при прямой записи. При байтовой записи также будет фиктивное чтение, а чтение из ОЗУ всегда будет за два прохода, надо два байта прочесть, медленно однако. Запись тоже будет за два прохода, т.к. ОЗУ стоит на одной ноге. Да и к тому же при маппинге страниц ОЗУ на адреса выше 0100000, ПЗУ выше 0120000 не отключить, соответственно можно только применять команды MOV(B), CLR(B).

  2. #732

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Медлительность сохранится и при прямой записи. При байтовой записи также будет фиктивное чтение, а чтение из ОЗУ всегда будет за два прохода, надо два байта прочесть, медленно однако. Запись тоже будет за два прохода, т.к. ОЗУ стоит на одной ноге. Да и к тому же при маппинге страниц ОЗУ на адреса выше 0100000, ПЗУ выше 0120000 не отключить, соответственно можно только применять команды MOV(B), CLR(B).
    Не соглашусь. С точки зрения программиста колоссальная разница.
    Если я использую регистровый механизм, я сперва даю команду записи в регистр адреса планов (а это >24 тактов ожидания ПП, и дополнительно 8 тактов торможения ЦП), затем команду записи в регистр плана 0 (а это 16 тактов ожидания, если запись словная). И при этом мы записали всего ОДИН байт!
    Тогда как записывая просто в память мы тратим лишь 16 тактов ожидания (при словной записи), и при этом получаем два записанных байта.
    Почувствуйте разницу, как говорится. Ради этого стоит разместить видеоОЗУ в доступной части ОЗУ ПП (ниже 0xA000).

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

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Да и к тому же при маппинге страниц ОЗУ на адреса выше 0100000, ПЗУ выше 0120000 не отключить, соответственно можно только применять команды MOV(B), CLR(B).
    Кстати, почему с 0xA000? У нас же системное ПЗУ начинается с 0x8000, а не с 0xA000. Ну и понятно, что хоть читаться будет ПЗУ, но писаться будет в ОЗУ, при соответствующем маппинге страниц верхнего ОЗУ.

  3. #733

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Ждем растактовку чтения из ОЗУ ПП. Так как с точки зрения шины QBUS/МПИ байтового чтения нет, то должно всегда читаться за два прохода - сначала младший байт, потом старший.
    Сам процессор ВМ2 выдает ли сигнал WTBT при байтовом чтении? Или не выдает?

    Буду считать, что не выдает, т.к. WTBT - это Write Byte.

  4. #734

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Сам процессор ВМ2 выдает ли сигнал WTBT при байтовом чтении? Или не выдает?

    Буду считать, что не выдает, т.к. WTBT - это Write Byte.
    На шине QBUS/МПИ нет байтового чтения. Читается всегда полное слово. А нужный байт в случае необходимости процессор уже выделяет сам.

  5. #735

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    На шине QBUS/МПИ нет байтового чтения. Читается всегда полное слово. А нужный байт в случае необходимости процессор уже выделяет сам.
    Это я все понимаю. Но вдруг он выдает на шину WTBT, просто потому что чтение было байтовое, в виде побочного эффекта от байтовой записи. Именно это я и хочу уточнить.

  6. #736

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    360
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Но вдруг он выдает на шину WTBT, просто потому что чтение было байтовое, в виде побочного эффекта от байтовой записи. Именно это я и хочу уточнить.
    Это вряд ли. Тут уже точно ответит Vslav. Да и по идее на чтение сигнал WTBT не должен оказывать влияние.

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

  8. #737

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Да, призываю в тему @Vslav'а за уточнением.

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Это вряд ли. Тут уже точно ответит Vslav. Да и по идее на чтение сигнал WTBT не должен оказывать влияние.
    Как раз оказывает. Если при чтении будет выставлен WTBT, то контроллер ОЗУ ПП ответит иначе, а именно прочитает один байт, как и при записи.

  9. #738

    Регистрация
    12.04.2017
    Адрес
    г. Тольятти
    Сообщений
    931
    Спасибо Благодарностей отдано 
    243
    Спасибо Благодарностей получено 
    168
    Поблагодарили
    81 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Titus,
    Сигнал «Байт» (WTBT) используется в двух случаях: при передаче
    адреса, когда сигнал «Байт» указывает, что дальше будет следовать операция
    вывода, а не ввода, и при передаче данных, когда этот сигнал указывает, что
    выводится байт, а не слово.

  10. #739

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,403
    Спасибо Благодарностей отдано 
    1,703
    Спасибо Благодарностей получено 
    2,223
    Поблагодарили
    875 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию Растактовка чтения из ОЗУ ПП



    Описание:

    Чтение из ОЗУ ПП начинается по переднему фронту DIN. Если контроллер все еще занят операциями записи в регистр октета или в регистр адреса планов, то начало чтения ОЗУ задержится до окончания последнего цикла CLCA предыдущей операции. На шину AD0..AD15 выставляется предыдущее слово прочитанное из памяти, и сохраненное в регистрах MEM_HIGH/MEM_LOW.

    В последнем такте отрицалельного фронта CLCA (такт 7) происходит подготовка данных для чтения.


    Чтение из ОЗУ всегда словное:

    По положительному фронту CLCA начинается процесс чтения младшего байта из ОЗУ ПП.
    Такт 8 - на шину A0..A7 выводится младшая часть адреса (LATCH_ADR). Младший бит принудительно равен 0.
    Такт 9 - видеоконтроллером устанавливается сигнал RAS, по которому в ОЗУ защелкивается адрес строки (младшая часть адреса).
    Такт 9.5 - на шину A0..A7 выводится старшая часть адреса (LATCH_ADR). С этого момента шина данных D0..D7 выводится на AD0..AD7.
    Такт 10 - устанавливается сигнал CAS, по которому в ОЗУ защелкивается адрес столбца (старшая часть адреса). После чего ОЗУ выставляет на шину данных D0..D7 значение из памяти.
    Такт 11.5 - снимается сигнал RAS.

    Такт 12 - шина A0..A7 освобождается для видеоконтроллера на 4 такта, сигнал CAS снимается, данные с шины D0..D7 защелкиваются в регистре MEM_LOW.

    По положительному фронту CLCA начинается процесс чтения старшего байта из ОЗУ ПП.
    Такт 16 - на шину A0..A7 выводится младшая часть адреса (LATCH_ADR). Младший бит принудительно равен 1.
    Такт 17 - видеоконтроллером устанавливается сигнал RAS, по которому в ОЗУ защелкивается адрес строки (младшая часть адреса).
    Такт 17.5 - на шину A0..A7 выводится старшая часть адреса (LATCH_ADR). С этого момента шина данных D0..D7 выводится на AD8..AD15.
    Такт 18 - устанавливается сигнал CAS, по которому в ОЗУ защелкивается адрес столбца (старшая часть адреса). После чего ОЗУ выставляет на шину данных D0..D7 значение из памяти.
    Такт 19.5 - снимается сигнал RAS.

    Такт 20 - шина A0..A7 освобождается, сигнал CAS снимается, данные с шины D0..D7 защелкиваются в регистре MEM_HIGH. На шине AD0..AD15 находится слово, прочитанное из ОЗУ. Выдается сигнал RPLY, в ответ на который процессор считывает данные с шины AD, и снимает сигнал DIN. Шина AD освобождается.


    Как видно из графиков, данные на шине AD в процессе чтения меняются следующим образом:

    Начало чтения (DIN установлен) - на шине AD0..AD15 выставляется предыдущее слово, прочитанное из ОЗУ.
    Такт 9.5 - на шине AD0..AD7 - мусор, копируемый с D0..D7, AD8..AD15 - предыдущее значение.
    Tакт 10..11 - на шину AD0..AD7 выставляется значение из памяти (младший байт), AD8..AD15 - предыдущее значение.
    Такт 17.5 - на шине AD8..AD15 - мусор, копируемый с D0..D7, AD0..AD7 - младший байт.
    Такт 18..19 - на шину AD8..AD15 выставляется значение из памяти (старший байт), AD0..AD7 - младший байт.
    Последний раз редактировалось Titus; 25.07.2020 в 16:36.

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

    Alex_K(25.07.2020)

  11. #740

    Регистрация
    31.03.2013
    Адрес
    г. Киев
    Сообщений
    2,413
    Спасибо Благодарностей отдано 
    132
    Спасибо Благодарностей получено 
    759
    Поблагодарили
    353 сообщений
    Mentioned
    88 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Но вдруг он выдает на шину WTBT, просто потому что чтение было байтовое, в виде побочного эффекта от байтовой записи.
    Прошу прощения, я не понял вопрос, в какой момент процессор "вдруг выдает на шину WTBT"? Никаких отличий в поведении WTBT от документированного и ожидаемого не выявлено, в операциях чтения этот сигнал никогда не выдается.

Страница 74 из 174 ПерваяПервая ... 707172737475767778 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 32
    Последнее: 18.12.2024, 18:19
  2. Реверс-инжиниринг игры Boovie
    от Oleg N. Cher в разделе Программирование
    Ответов: 41
    Последнее: 09.01.2022, 23:07
  3. Реверс инжиниринг печатной платы
    от Filin в разделе Несортированное железо
    Ответов: 36
    Последнее: 11.03.2018, 22:46
  4. Куплю 1515ХМ1-6006, 1515ХМ1−6008
    от moxjemi в разделе Барахолка (архив)
    Ответов: 3
    Последнее: 10.01.2012, 17:23
  5. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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