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

User Tag List

Страница 11 из 63 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя
Показано с 101 по 110 из 625

Тема: Расчёт точного времени выполнения команд различными процессорами архитектуры PDP-11.

  1. #101
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,602
    Спасибо Благодарностей отдано 
    1,242
    Спасибо Благодарностей получено 
    1,807
    Поблагодарили
    695 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

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

  2. #102
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это считается число команд между чем и чем?
    В принципе - не важно, там можно использовать любые прерывания с чётким интервалом ( чем длиннее интервал - тем точнее измерения ). В конкретной реализации используется интервал между двумя прерываниями таймера по вектору 0100.

    Смысл в том, что если за одно и то же время выполняется 7'585 x NOP, 2'361 x RTI и 850 x IOT ( + RTI ), то легко подсчитать, что:
    Код:
    RTI           == 3.2 x NOP
    IOT ( + RTI ) == 8.9 x NOP
    IOT           == 5.7 x NOP
    а если время от начала выборки кода IOT до запуска блока прерываний принять за 1 x NOP, то время входа в прерывание ( т.е. записи PC и PSW в стек и чтения их из вектора ) составляет 4.7 x NOP

    Также можно отдельно посчитать и время приёма по шине адреса вектора аппаратного прерывания ( в моём случае получается 3.3 x NOP ).

  3. #103
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,602
    Спасибо Благодарностей отдано 
    1,242
    Спасибо Благодарностей получено 
    1,807
    Поблагодарили
    695 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    В принципе - не важно, там можно использовать любые прерывания с чётким интервалом ( чем длиннее интервал - тем точнее измерения ). В конкретной реализации используется интервал между двумя прерываниями таймера по вектору 0100.
    Если это сетевой таймер, то странно.

    TSSPD у меня как раз меряет между прерываниями сетевого таймера число команд. Число операций типа MOV Rx,Rx - 19949 (неправильное в EmuStudio, но меряется правильно). А в вашем тесте - это 34067.

  4. #104
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Если это сетевой таймер, то странно.
    Даже самую правильную идею можно реализовать с ошибками. Вот получим результат запуска IRQ.SAV на реальной УКНЦ и сразу станет ясно - есть ошибка в алгоритме теста или это просто эмулятор ДВК такой "быстрый".

  5. #105
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,602
    Спасибо Благодарностей отдано 
    1,242
    Спасибо Благодарностей получено 
    1,807
    Поблагодарили
    695 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Даже самую правильную идею можно реализовать с ошибками. Вот получим результат запуска IRQ.SAV на реальной УКНЦ и сразу станет ясно - есть ошибка в алгоритме теста или это просто эмулятор ДВК такой "быстрый".
    Не обязательно для этого запускать на реальном УКНЦ. Достаточно сравнить с результатами проверенного теста на нереальном УКНЦ).

  6. #106
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Хотя, если умножить 50 Hz таймера на 7'585 NOPов за тик - получим 380'000 NOP/сек, что в точности равно быстродействию 1801ВМ1 на ДВК-1 5.3 МГц.

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

  8. #107
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,602
    Спасибо Благодарностей отдано 
    1,242
    Спасибо Благодарностей получено 
    1,807
    Поблагодарили
    695 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Хотя, если умножить 50 Hz таймера на 7'585 NOPов за тик - получим 380'000 NOP/сек, что в точности равно быстродействию 1801ВМ1 на ДВК-1 5.3 МГц.
    Кстати, на ВМ2 NOP медленнее, чем MOV Rx,Rx.

    ---------- Post added at 18:50 ---------- Previous post was at 18:43 ----------

    Кстати, сравнил результаты двух тестов:

    На UKNCBTL:

    TSSPD:
    NOP - 9394
    MOV Rx,Rx - 13308

    IRQ:
    NOP - 9380
    MOV Rx,Rx - 13275

    Тогда как на EmuStudio:

    TSSPD:
    NOP - 19948
    MOV Rx,Rx - 19948

    IRQ:
    NOP - 33397
    MOV Rx,Rx - 34039

    На лицо явное неправильное вычисление числа выполненных команд, когда этих команд успевает выполнится много.

  9. #108
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Типа, когда памяти не хватает и цикл идёт на второй заход - начинает врать.
    Второй заход по-любому уменьшает точность, поэтому даже после исправления программы лучше его избегать.
    Нужно выгрузить из памяти всё лишнее ( SET SL OFF сделать и т.п. ) - чтобы в буфере команд стало больше 20 тыс. слов свободного места.

  10. #109
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,602
    Спасибо Благодарностей отдано 
    1,242
    Спасибо Благодарностей получено 
    1,807
    Поблагодарили
    695 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Типа, когда памяти не хватает и цикл идёт на второй заход - начинает врать.
    Второй заход по-любому уменьшает точность, поэтому даже после исправления программы лучше его избегать.
    Нужно выгрузить из памяти всё лишнее ( SET SL OFF сделать и т.п. ) - чтобы в буфере команд стало больше 20 тыс. слов свободного места.
    После Set Sl Off все равно врет:

    TSSPD:
    NOP - 19948
    MOV Rx,Rx - 19948

    IRQ:
    NOP - 28785
    MOV Rx,Rx - 29203

  11. #110
    Guru
    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,777
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    122
    Поблагодарили
    61 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Что-то не могу заставить тест врать.

    Новый вариант теста IRQ v1.2 выводит в первой позиции количество заходов в буфер команд:

    Код:
    .RU IRQ
     
    IRQ - Check time of IRQ Service & RTI - v1.2
     
    Memory Top: 137554
    1: CPU Speed:     146 x RESET
    1: CPU Speed:   7'586 x NOP
    1: CPU Speed:   7'585 x MOV R0,R0
    1: CPU Speed:   3'035 x MOV R2,(R3)
    1: CPU Speed:   2'361 x RTI
    1: CPU Speed:     850 x IOT
    1: CPU Speed:     850 x TRAP
    1: CPU Speed:   1'264 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0
    1: CPU Speed:     823 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | RTI
    1: CPU Speed:     508 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | IOT
    1: CPU Speed:     508 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | TRAP
    1: CPU Speed:     468 x MOV R2,(R3) | MOV R1,(R3) | MOV R0,R0 | Interrupt 064
     
    Program completed.
     
    .
    Вложения Вложения
    Последний раз редактировалось Patron; 20.02.2013 в 20:09.

Страница 11 из 63 ПерваяПервая ... 789101112131415 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 234
    Последнее: 26.02.2021, 11:05
  2. Время выполнения команд CPI/CPD/CPIR/CPDR
    от ARTi в разделе Программирование
    Ответов: 27
    Последнее: 18.12.2007, 16:32

Ваши права

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