User Tag List

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

Тема: Секреты и трюки программирования (в том числе и игр) для РК-86

Древовидный режим

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

    Регистрация
    05.10.2016
    Адрес
    г. Санкт-Петербург
    Сообщений
    1,080
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    5 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Имею конкретный вопрос по работе ВГ75, определяющий можно ли без введения хитроумного узла регенерации, ставить в РК86 большие SIMM.

    Ранее, исходя из того, что в реале ВГ75 тормозит на 25%, тогда как по расчёту на основе имеющихся данных должна тормозить лишь на 7%, я предполал, что ВГ75 читает память в каждой линии растра, а не один раз за строку, т.е за 10 линий растра (отчего авторы ВГ75 попадают в категорию идиотов).

    27% получаются из расчета: одно считывание 78-ми байт за всю строку, т.е за время вывода всех 10-ти линий растра, один байт передаётся за 4 такта и ВГ75 использует единожды считанное содержимое строки для вывода всех 10-ти линий растра. Вот расчёт:

    100 * (78:1.77)*4 : ( 64*10)= 27.6%

    Даже, если откорректировать расчёт с учётом, якобы обнаруженных в этой теме потерь 4-х тактов при пересылке каждой посылки из 8-ми байт, то получается дополнительная потеря 9*4=36 тактов 1.77 МГЦ (ПДП у нас на такте 1.77). Девять - это число посылок за которые пересылается строка в 78 байтов. Тогда получается вот такой расчёт:

    100 * ((4*78+9*4) : 1.77) : ( 64*10)= 10%

    Но никак не 25%. Таким образом, после прочтения этой темы, дело запуталось ещё больше. Теперь уже никто не знает, считывает ли ВГ75 требуемые 78 байтов один раз за строку из 10 линий, или делает это многократно, считывая какие-то куски строки для каких-то линий повторно. Тогда интересно, по какому алгоритму? Хотелось бы знать какие считанные байты и в каких строках используются повторно, а какие считываются всякий раз заново?

    После расчёта, с учётом новых данных, я пришёл к выводу, что считывать байты для каждой линии растра ВГ75 не может. Т.к (78+9*4):1.77=64.4 МКСЕК, что даже больше строчного периода в 64 МКСЕК, т.е если бы ВГ75 читал для каждой линии растра, то прогон программы происходил бы только во время одной строки обратного хода по кадрам и быстродействие КР580 упало бы в 31 раз и составило бы 1.77:31= 57 КГЦ, а РК реально даёт не менее 1.3 МГЦ.

    И объяснение, что тут предлагают, а именно - то что для одних линий считанные байты строки используются повторно, а для других считываются заново, - мне кажется полной ерундой. Логично только или одно считывание на всю строку или считывание для каждой линии растра, что как доказал расчёт невозможно. Отбросив невозможное, остаётся истина. Вывод: ВГ75 считывает строку только один раз и использует эти данные для вывода всех 10-ти линий растра строки (отчего авторы ВГ75 перестают быть идиотами).

    Куда же ПДП тратит время. Тогда логично предположить, что ВТ57 тратит на пересылку байта из ОЗУ в ВГ75 не один такт, а два. Если ВТ57 тратит 2 такта на байт и никаких потерь по 4 байта на посылку нет, тогда:

    100 * ((78*2) : 1.77) : ( 64*10)= 24%

    А вот это уже близко к реальным 25%. Ещё 2 процента набежит из-за несинхронности ВГ75 и ВТ57, но КР580 немного отыграет за время вывода единственной строки за время обратного хода по кадрам, когда РК86 работает на полной скорости 1.77 МГЦ, без захватов шины.

    Кстати, вот сколько РК86 отыгрывает на единственной строке гашения по кадрам.

    (76*30 + 100*1) : 76*31= 1.0102

    Т.е благодаря отсутствию захватов шины во время единственной строки гашения по кадрам выигрывается 1 процент быстродействия. Таким образом, одна погашенная строка добавляет к быстродействию 0.0102*1.77 МГЦ = 18.1 килогерц. А вот целых 4 погашенных строки ускоряют прогов в:

    (76*27 + 100*4) : 76*31=1.0407 раза.

    Четыре погашенные строки добавляют к быстродействию 4 процента, что соответствует приросту реального такта в 0.0407*1.77 МГЦ = 72.1 килогерца. А абсолютный выигрыш относительно стандартного режима составит 72.1-18.1= 54 КГЦ.

    Кстати установка кода F1 в конце строки в позиции 8+64=72, только экономит 5 байтов, но не даёт ускорения, т.к последняя посылка все-равно читает 8 байтов. Вот если поставить F1 в позиции 8*8-1=63, то девятая посылка ВОЗМОЖНО не будет читаться. Хотя, скорее всего, всё-равно будет читаться, т.к оценку содержимого строки делает вероятно схема вывода, а не схема загрузки буфера.

    Кто-нибудь может проверить в реале или по документации, сколько тактов на байт тратит при пересылках ВТ57? Ясно, что два, иначе времена не сходятся.

    Моя идея регенерации SIMM была основана на том, что ВГ75 читает строку для каждой линии растра, таким образом за строку ОЗУ в одних и тех же ячейках регенерируется 10 раз. Идея заключалась в использовании того, что т.к сигналы LC0, LC1, LC2, подаваемые на ПЗУ фонта, меняются при каждой линии растра, то используя эти сигналы как A8, A9, A10 для мультиплексора регенерации, можно будет без потерь регенерировать параллельный экрану SIMM. Тогда при чтении ВГ75 первой линии регенерируется один столбец, на следующей линии другой и т.д. Но если ВГ75 читает за строку каждый символ строки только 1 раз, то идея вообще не работает, - прощайте большие SIMM в РК86, - тогда, увы, остаётся наращивать ОЗУ за счёт моря параллельных банок РУ5-тых... Как видите для аппаратных модернизаций РК86 нужны точные знания как работает его железо.

    Итак, может кто-нибудь "пролить свет" на число считываний на строке, привести более правдоподобный расчёт реальной скорости РК86? От правильного ответа на этот вопрос зависит и работа программ, для которые считают такты...
    Последний раз редактировалось barsik; 16.04.2017 в 01:33.

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

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

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

Похожие темы

  1. Ответов: 210
    Последнее: 26.07.2019, 11:45
  2. Ответов: 6
    Последнее: 07.02.2016, 11:55
  3. Трюки с контроллером FDD 82077
    от Titus в разделе Утилиты
    Ответов: 4
    Последнее: 10.06.2011, 19:17

Ваши права

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