User Tag List

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя
Показано с 21 по 30 из 67

Тема: Повышаем качество эмуляции Львов ПК-01

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

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

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

    По умолчанию

    ivagor, мы с DDp уже тестировали выполнение некоторых команд, я делал на скорую руку несколько тестов, тоже с выводом на магнитофон.
    В принципе, результаты похожи:
    NOP; XRA A - 6,42
    MOV R,R - 7,13
    XTHL - 32,08
    IN; OUT - 16,04
    MOV A,M (RAM) - 11,45
    MOV M,A (RAM) - 12,47
    MOV A,M; MOV M,A (ROM) - 8,91

    Если DDp не против, можно выложить ссылку на тесты.

    Результаты, в принципе, совпадают, я только брал меньше команд, зато дополнительно тестировал MOV A,M и M,A с операндом в ПЗУ.

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

    Сейчас в эмуляторе алгоритм такой: на каждый цикл обращения к ОЗУ добавляется 2,5 такта, к портам - 1 такт.

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

    И еще: я пытался теоретически обосновать задержки при обращении к ОЗУ, учитывая циклы обращения видеоконтроллера к ОЗУ в 400 нс через каждые 800 нс и предполагая, что цикл обращения процессора может начаться в произвольный момент времени, а также минимальную длительность цикла процессора в 9/8 от цикла видеоадаптера. У меня получилось в среднем 2,25. Для более точного соответствия реалу цифру пришлось увеличить до 2,5 - видимо, сказываются влияния циклов друг на друга, а может быть и просто напутал в своих прикидках либо опирался на неверные исходные данные...

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

  3. #2

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

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Сейчас в эмуляторе алгоритм такой: на каждый цикл обращения к ОЗУ добавляется 2,5 такта, к портам - 1 такт.
    Близко к тому, но я бы немного дополнил. Каждая запись в озу примерно +.75 такта. И для полного счастья влияние циклов друг на друга тоже желательно учитывать, при наличии 5 тактных циклов дополнительное торможение уменьшается.
    Думаю над результатом b00002, но не могу объяснить.

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

    В tstsp1 есть одна ошибка - RET/Y неправильно тестируется. К счастью дополнительный тест не нужен, растактовка RET/Y совпадает с CALL/N, т.к. и там и там три совпадающих цикла чтения (исходно 5+3+3).

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

    Pyk(27.03.2021)

  4. #3

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Если DDp не против
    Не понимаю, почему против.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Думаю над результатом b00002, но не могу объяснить.
    Цитата Сообщение от ivagor Посмотреть сообщение
    Может все же картинка b00002.png от другого теста, не от b00002.asm?
    Стек указывает на ПЗУ !
    Переделал - b00002b (по той же ссылке)

    ---

    Здесь был неправильный тест b00004, правильный b00005 смотри ниже, 28.03.2021.
    Последний раз редактировалось DDp; 28.03.2021 в 12:11.
    фдеукю у-ьфшдЖ ввз"шярюсщь D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

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

    ivagor(27.03.2021)

  5. #4

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

    По умолчанию

    Цитата Сообщение от DDp Посмотреть сообщение
    Переделал - b00002b
    Другое дело, примерно 90 тактов.

  6. #5

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

    По умолчанию

    Вот тесты и результаты, которые мы получили с DDp еще в январе:
    https://disk.yandex.ru/d/o1AQ9SpJfYcDVw

    Насчет дополнительных 0,75 такта на запись, пожалуй, согласен. А вот насчет 5-тактных циклов не совсем понимаю. Откуда такое предположение? Тот же MOV A,A состоит из единственного 5-тактного цикла, но довольно хорошо ложится в модель, даже наоборот, нужно убирать лишние такты... Вообще, в тесте не так много инструкций с 5-тактными циклами попали...

    Кроме искусственных тестов неплохо бы еще побольше примеров работы реальных программ, для которых можно было бы замерить скорость выполнения и сравнить с эмулятором...
    Попробую +0.75 для записи и посмотрю результат на том, что уже есть.
    Последний раз редактировалось Pyk; 27.03.2021 в 12:21. Причина: typo

  7. #6

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

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    Тот же MOV A,A состоит из единственного 5-тактного цикла, но довольно хорошо ложится в модель, даже наоборот, нужно убирать лишние такты
    Так я и написал "при наличии 5 тактных циклов дополнительное торможение уменьшается".

    Насчет дополнительного торможения при записи наверно не стоит торопиться, оно наблюдается для некоторых команд (MOV A,M и MOV M,A, LDA по сравнению с STA, LHLD и SHLD), и его нет для других (POP против MVI M/INR M).

    Цитата Сообщение от Pyk Посмотреть сообщение
    Кроме искусственных тестов неплохо бы еще побольше примеров работы реальных программ, для которых можно было бы замерить скорость выполнения и сравнить с эмулятором...
    Это да. Или еще можно попробовать в качестве синтетического теста смеси команд.

  8. #7

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Pyk Посмотреть сообщение
    ...еще побольше примеров работы реальных программ, для которых можно было бы замерить скорость выполнения и сравнить с эмулятором...
    pi из темы
    Вложения Вложения
    • Тип файла: 7z pi_lvov.7z (15.3 Кб, Просмотров: 91)
    фдеукю у-ьфшдЖ ввз"шярюсщь D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

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

    Pyk(27.03.2021)

  9. #8

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

    По умолчанию

    Или мандельброт.
    Измерить время работы можно или вручную секундомером или с помощью записи в wav. При старте напишет PRESS ANY KEY, жмем клавишу, в wav запишется клик. Когда все нарисует в wav запишется второй клик и можно будет измерить время между кликами. Из emu получилось 81.5 секунд.
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	MANDEL_LvovPK01.gif 
Просмотров:	38 
Размер:	2.1 Кб 
ID:	75042  

  10. #9

    Регистрация
    21.08.2006
    Адрес
    Ижевск
    Сообщений
    941
    Спасибо Благодарностей отдано 
    23
    Спасибо Благодарностей получено 
    298
    Поблагодарили
    164 сообщений
    Mentioned
    20 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    мандельброт.
    127.372 sec
    фдеукю у-ьфшдЖ ввз"шярюсщь D356 47C0 35F8 F55E 8A52 A88F F3F8 B003 03EB 3D7F

    Эти 2 пользователя(ей) поблагодарили DDp за это полезное сообщение:

    ivagor(27.03.2021), Pyk(27.03.2021)

  11. #10

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

    По умолчанию

    Получается для пи скорость реала примерно 67%, для мандельброта 64%. Вероятно в пи активнее используется dad.

Страница 3 из 6 ПерваяПервая 123456 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Качество картинки с английского Spectrum (82 года)
    от c55fun в разделе Зарубежные модели
    Ответов: 11
    Последнее: 30.04.2019, 13:36
  2. Качество изображения УКНЦ
    от S_V_B в разделе ДВК, УКНЦ
    Ответов: 95
    Последнее: 23.05.2018, 11:07
  3. Качество контактов панелек PLCC...
    от SoftFelix в разделе Несортированное железо
    Ответов: 6
    Последнее: 24.04.2018, 10:21
  4. Ответов: 36
    Последнее: 23.03.2016, 22:10

Ваши права

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