User Tag List

Страница 22 из 24 ПерваяПервая ... 18192021222324 ПоследняяПоследняя
Показано с 211 по 220 из 235

Тема: ПК8000 - Быстродействие архитектуры. Исследование.

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

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

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    404
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, помоги, пожалуйста, разобраться.
    Это не очень важно на данном этапе для эмуляции, но не понимаю, поэтому хочется разобраться.

    Возьмем для примера команду OUT (длину которой мне сейчас приходится явно учитывать при записи цвета бордюра)
    В отсутствие вейтов такты будут следующими:
    T1 T2 T3 T4 | T1 T2 T3 | T1 T2 T3 - итого 10

    В режиме SCR0 получается, как я понимаю, так:
    T1 T2 Tw (Tw T3) T4 | T1 T2 Tw Tw (Tw T3) | T1 T2 T3 - всего 15

    А вот как получить 20 в режиме SCR1? Вроде бы 16 получается:
    T1 T2 Tw Tw Tw (Tw T3) T4 | T1 T2 (Tw T3) | T1 T2 Tw T3 ?

    Что я не учитываю?

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

    Хотя, наверное, нельзя так определенно вейты распределить, должно зависеть от предыдущей команды?

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

  3. #2

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    404
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    просьба попробовать доработанный тестик
    Так должно получиться?

    Скрытый текст

    [свернуть]

  4. #3

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Возьмем для примера команду OUT
    SCR0/UNDC. Пусть для определенности первая команда начинается с 1го такта трехтактного цикла, а "окно доступа" будет каждый 1й такт трехтактного цикла (хотя для определения среднего времени выполнения команды в последовательности это не важно)
    первый out T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3; второй и последующие out ... T1 T2|Tw Tw Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 ... ...
    SCR1/2 или SCR0/UNDC "сбоку". Пусть "окно доступа" будет каждый 1й такт четырехтактного цикла
    первый out T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 ... ... ...; второй и последующие out ... T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 ... ... ...
    Обращаю внимание, что при записи добавляется не менее 2х тактов ожидания.

    Цитата Сообщение от Pyk Посмотреть сообщение
    Так должно получиться?
    Да

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

    Цитата Сообщение от Pyk Посмотреть сообщение
    Так должно получиться?
    Забыл, на скриншоте с тюнера надеюсь еще увидеть 241ю точку справа

  5. #4

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    404
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, я, кажется, понял свою ошибку. При чтении должно быть не менее 1 такта ожидания, а при записи - не менее 2-х. То есть если необходимое количество Tw получаются из-за ожидания окна, больше ничего дополнительно не добавляется. Так?

    Но SCR1/2 SCR0/UNDOC все равно не стыкуется:
    Цитата Сообщение от ivagor Посмотреть сообщение
    второй и последующие out ... T1 T2|Tw Tw Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3
    18 тактов получается, а должно быть 15...

    Цитата Сообщение от ivagor Посмотреть сообщение
    по clb_bw.BMP и clb1.BMP вижу, что цвет фона надо продлить еще на точку вправо относительно знакоместа
    По-моему там практически полточки получается. Даже не знаю как лучше. Все-таки у DemonId7 зазоры небольшие видны, если сдвинуть - их совсем не будет. По умолчанию в эмуляторе масштабируется картинка в режиме nearest neighbour, поэтому в некоторых местах промежутки кажутся шире, чем должны, если включить сглаживание или отключить масштабирование, то разница нивелируется. Поэкспериментирую, посмотрю, как будет лучше.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Цвета на msxные не похожи, у Micka как-то иначе смотрелись.
    Цвета один-в-один с эмулятором. А не могут цвета быть разными на Суре/Хобби/Весте?

    Насчет 241 точки в эмуляторе даже не знаю - делать ли. К сожалению, ни на одном скриншоте не видно, если ли за 241-й еще и 242-я. Вообще, неплохо бы уточнить параметры развертки. Может быть, попробовать проанализировать прошивку PLM, в ней ведь изображение генерируется?

    Сегодня мало времени, поправлю кое-какие моменты и скорее всего сделаю новую сборку завтра.
    Последний раз редактировалось Pyk; 12.01.2019 в 23:17. Причина: зачеркнул

  6. #5

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    DemonId7, просьба попробовать доработанный тестик.
    Постараюсь после обеда выкроить время. На крайняк вечером.

  7. #6

    Регистрация
    18.02.2010
    Адрес
    г. Пенза
    Сообщений
    407
    Спасибо Благодарностей отдано 
    18
    Спасибо Благодарностей получено 
    68
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Работы сегодня оказалось нема, так что выкладываю снимки с тюнера, в том числе в ч/б варианте (там пиксели почетче для подсчета). Заодно тесты цветов для режимов 1 и 2.
    Здесь

  8. #7

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    DemonId7, спасибо!
    1) Pyk, по clb_bw.BMP и clb1.BMP вижу, что цвет фона надо продлить еще на точку вправо относительно знакоместа.
    2) Странно, что не видно 241й точки, здесь по самой правой рожице ее четко видно (в S0In4 и S0SHSH).

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

    Цвета на msxные не похожи, у Micka как-то иначе смотрелись.
    Последний раз редактировалось ivagor; 12.01.2019 в 10:53.

  9. #8

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Pyk, спасибо за разбирательство. Расписал для SCR0/UNDOC команды с более чем одним (т.е. кроме выборки кода команды) обращением к памяти, для всех кроме in/out имевшиеся объяснения подходят:
    lda/sta - 24, сходится
    Первая команда T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3

    lhld/shld - 30, сходится
    Первая команда T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3

    call - 30, сходится
    Первая команда T1 T2 Tw|T3 T4 T5|T1 T2 Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T5|T1 T2 Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3

    ldax/stax/mov m,r/mov r,m/ani/adi/sui/и т.п. - 12, сходится
    Первая команда T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T1|T2 Tw Tw|T3

    pop/ret/mvi m,/jmp/inr m/dcr m - 18, сходится
    Первая команда T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3

    Rcond Y - 18, сходится
    Первая команда T1 T2 Tw|T3 T4 T5|T1 T2 Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T5|T1 T2 Tw|T3 T1 T2|Tw Tw Tw|T3

    push/rst - 21, сходится
    Первая команда T1 T2 Tw|T3 T4 T5|T1 T2 Tw|Tw Tw Tw|T3 T1 T2|Tw T1 T2|Tw Tw Tw|T3; подряд T1 T2|Tw Tw Tw|T3 T4 T5|T1 T2 Tw|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3

    xthl - 30, сходится
    T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T1 T2|Tw Tw Tw|T3 T4 T5

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

    Есть такой вариант - окно доступа к порту не совпадает с окном доступа к озу. Например если в SCR0/UNDOC его расположить через такт после доступа к озу (т.е. в примере в третьем такте цикла), то все получается:
    in/out - 15
    T1 T2 Tw|T3 T4 T1|T2 Tw Tw|T3 T1 T2|Tw Tw T3

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

    Цитата Сообщение от Pyk Посмотреть сообщение
    Но SCR1/2 все равно не стыкуется:
    Уточнение - SCR0/UNDOC не стыкуется
    Последний раз редактировалось ivagor; 13.01.2019 в 06:58. Причина: исправил в одном месте SCR0/1 на SCR0/UNDOC

  10. #9

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Расписал те же команды для SCR1/2, все совпадает с растактовками и "правилами"
    lda - 20, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|T3
    sta - 24, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3

    lhld - 24, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|T3
    shld - 32, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3

    call - 32, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T5 T1|T2 Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T5 T1|T2 Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3

    ldax/stax/mov m,r/mov r,m/ani/adi/sui/и т.п. - 12, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3

    pop/ret/mvi m,/jmp/inr m/dcr m - 16, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3

    mvi m,/inr m/dcr m - 20, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 Tw Tw Tw Tw|T3

    Rcond Y - 16, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T5 T1|T2 Tw Tw Tw|T3 T1 T2 Tw|T3; подряд T1 T2 Tw|T3 T4 T5 T1|T2 Tw Tw Tw|T3 T1 T2 Tw|T3

    push/rst - 20, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T5 T1|T2 Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T5 T1|T2 Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3

    xthl - 36, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T4 T5; подряд T1 |T2 Tw Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T1 T2 Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3 T4 T5

    in и out проверил 4 возможных варианта соотношения окна доступа к озу и портам, сходится только если эти окна в одинаковом такте цикла, в примере - первом
    in - 16, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|T3
    out - 20, сходится
    Первая команда T1 T2 Tw Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3; подряд T1 T2 Tw|T3 T4 T1 T2|Tw Tw Tw Tw|T3 T1 T2 Tw|Tw Tw Tw Tw|T3

    Отмечу, что in/out для SCR0/UNDOC сходятся только в случае если окно порта через один такт позже окна озу (иначе говоря окно озу в следующем такте после окна порта), как показано в предыдущем посте. Возможно есть другое объяснение, но без анализа ПЛМ и/или временных диаграмм мы этого не узнаем.
    Последний раз редактировалось ivagor; 13.01.2019 в 09:02.

  11. #10

    Регистрация
    05.04.2013
    Адрес
    Починки, Нижегородская обл.
    Сообщений
    1,371
    Спасибо Благодарностей отдано 
    404
    Спасибо Благодарностей получено 
    647
    Поблагодарили
    255 сообщений
    Mentioned
    27 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    ivagor, спасибо!
    В общем, если дойдет дело до потактовой эмуляции, уже есть правдоподобный алгоритм.
    (Я правда, не сверял еще выполнение из ПЗУ, но надеюсь, что там тоже все будет ок)

    Но лично я пока не готов делать потактовую эмуляцию, к сожалению

Страница 22 из 24 ПерваяПервая ... 18192021222324 ПоследняяПоследняя

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

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

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

Похожие темы

  1. ПК8000 - Клавиатура
    от Mick в разделе ПК8000
    Ответов: 67
    Последнее: 18.08.2024, 18:49
  2. ПК8000 - Утилиты
    от XobbiMan в разделе ПК8000
    Ответов: 103
    Последнее: 22.06.2023, 00:09
  3. ПК8000 - ROM диск
    от Mick в разделе ПК8000
    Ответов: 39
    Последнее: 06.03.2014, 14:12
  4. ПК8000 - Квазидиск
    от Mick в разделе ПК8000
    Ответов: 86
    Последнее: 13.10.2008, 19:17

Ваши права

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