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

User Tag List

Страница 25 из 63 ПерваяПервая ... 212223242526272829 ... ПоследняяПоследняя
Показано с 241 по 250 из 625

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

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Т.е. после такой адресации все счетчики сбиваются, и потом идет выполнение всех последующих команд с неправильными счетчиками?
    И спасает только BR, т.к. не используя счётчики - обнуляет их.

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

  3. #242
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    398 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ---------- Post added at 13:00 ---------- Previous post was at 12:59 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    И спасает только BR, т.к. не используя счётчики - обнуляет их.
    Любая команда, нарушающая принцип предвыборки.

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    процессор адрес сравнивает абсолютно по всем 16 разрядам, поэтому успеет считаться и выполниться именно INC R1, хотя по этому адресу после исполнения MOV R3,@R0 будет уже INC R2.
    Гениально!

    Вот любопытная модификация проведённого теста:
    Код:
    	Clr	R1
    	Clr	R2
    	Clr	R3
    	MovB	(PC),(PC)
    	Inc	R1
    	Inc	R2
    	Inc	R3
    	Jmp	@#1000
    	.Word	2000
    	.Word	3000
    MovB перед записью ещё раз читает ячейку, не добавит ли это дополнительных глюков..

    ---------- Post added at 12:06 ---------- Previous post was at 12:04 ----------

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Любая команда, нарушающая принцип предвыборки.
    Но если эта команда сама использует сбитый счётчик - она скорее вынесет в Trap_To_4, чем спасёт. А из всех команд, нарушающих предвыборку - только BR не использует ни одного счётчика ( или ошибаюсь? ).

    ---------- Post added at 12:21 ---------- Previous post was at 12:06 ----------

    Ещё один вариант:
    Код:
    	Clr	R1
    	Clr	R2
    	Clr	R3
    	Mov	(PC),R0
    	Mov	(PC),R0
    	Inc	R1
    	Inc	R2
    	Inc	R3
    	Jmp	@#1000
    	.Word	2000
    	.Word	3000

  5. #244
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    398 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Но и у меня есть любопытное "кодовое предложение":
    Код:
    	Clr	R1
    	Clr	R2
    	Mov	(PC)+, R0
    	Inc	R2
    	Mov	R0, (PC)
    	Inc	R1
    что будет в R1 и R2 после выполнения..
    Цитата Сообщение от Alex_K Посмотреть сообщение
    Обязательно попробую вечером. Но предсказываю: R0=005202, R1=0, R2=1. Но в свете открывшихся обстоятельств с адресацией 17, результаты могут отличаться от предполагаемых.
    Ну вот собственно и ответ:

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

    [свернуть]


    ---------- Post added at 19:15 ---------- Previous post was at 18:52 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Вот любопытная модификация проведённого теста:
    Код:
    	Clr	R1
    	Clr	R2
    	Clr	R3
    	MovB	(PC),(PC)
    	Inc	R1
    	Inc	R2
    	Inc	R3
    	Jmp	@#1000
    	.Word	2000
    	.Word	3000
    MovB перед записью ещё раз читает ячейку, не добавит ли это дополнительных глюков..
    Глюков здесь нет, все в пределах нормы. Т.к. эта команда делает запись по адресу предвыборки, то все сбрасывается и начинается сначала.

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

    [свернуть]


    ---------- Post added at 19:26 ---------- Previous post was at 19:15 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Ещё один вариант:
    Код:
    	Clr	R1
    	Clr	R2
    	Clr	R3
    	Mov	(PC),R0
    	Mov	(PC),R0
    	Inc	R1
    	Inc	R2
    	Inc	R3
    	Jmp	@#1000
    	.Word	2000
    	.Word	3000
    Это тот вариант, что я описывал. Количество команд MOV @PC,R0 роли не играет.

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

    [свернуть]
    Последний раз редактировалось Alex_K; 16.02.2019 в 23:26.

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

    По умолчанию

    Получается, что запись следующей ячейки после команды занимает весьма разное время при адресации относительно PC и относительно любого другого регистра:

    Код:
    :::::: SP = PC ::::::
    Mov    R0, (PC)       47
    Mov    R0, (SP)+      85


    ---------- Post added at 18:34 ---------- Previous post was at 18:32 ----------

    На первый взгляд могло показаться, что в первом случае запись не происходит, однако последние тесты показали, что команда Mov R0, (PC) честно пишет в следующую ячейку, но просто делает это гораздо быстрее.

  7. #246
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    398 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Два кода для анализа с результатами:

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




    [свернуть]


    ---------- Post added at 20:16 ---------- Previous post was at 19:56 ----------

    Еще интересный случай.

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

    [свернуть]
    Последний раз редактировалось Alex_K; 16.02.2019 в 23:30.

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

    По умолчанию

    Супер!

  9. #248
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,552
    Спасибо Благодарностей отдано 
    1,216
    Спасибо Благодарностей получено 
    1,752
    Поблагодарили
    681 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Ну так если подытожить?

  10. #249
    Guru
    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,208
    Спасибо Благодарностей отдано 
    346
    Спасибо Благодарностей получено 
    606
    Поблагодарили
    398 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Ну так если подытожить?
    А вот теперь надо думать, что к чему и от чего. Но чтение с методом адресации 17 дает очень интересные результаты. Кстати, попробовал запускать эти тесты в режиме HALT, все тоже самое.

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Кстати, и никаких сенсаций.
    Там в двух позициях есть сомнительные результаты:





    Во втором случае точно должно быть в 2 раза больше, а в первом - надо ещё проверить.

    ...

    Специально для проверки первого пункта - более точный вариант линейного теста: MovPC2_v1.2

    При первом запуске теста нужно ввести правильное значение частоты тестируемого процессора в килогерцах.

    Результат запуска в эмуляторе ДВК выглядит так:

    Код:
    .RU MOVPC2
    MovPC2 - v1.2
    Memory Top: 137554
    BUF words:   22867
    CPU KHz:  5300 >
     
    1: Nop                  Evt: 14 ;  Run:  7557 ;  Res:  7571 ;  CLC:   14.0
    1: Mov   R0,  R0        Evt: 14 ;  Run:  7557 ;  Res:  7571 ;  CLC:   14.0
    1: Mov   R0, (PC)       Evt:  5 ;  Run:  2861 ;  Res:  2866 ;  CLC:   37.0
    1: MovB  R0, (PC)       Evt:  5 ;  Run:  2861 ;  Res:  2866 ;  CLC:   37.0
    1: Mov  (PC), R0        Evt:  6 ;  Run:  3528 ;  Res:  3534 ;  CLC:   30.0
    1: MovB (PC), R0        Evt:  6 ;  Run:  3528 ;  Res:  3534 ;  CLC:   30.0
    ::: SP = PC :::
    1: Mov   R0, (SP)+      Evt:  4 ;  Run:  2582 ;  Res:  2586 ;  CLC:   41.0
    1: MovB  R0, (SP)+      Evt:  4 ;  Run:  2582 ;  Res:  2586 ;  CLC:   41.0
    1: Mov  (SP),(SP)+      Evt:  4 ;  Run:  2161 ;  Res:  2165 ;  CLC:   49.0
    1: MovB (SP),(SP)+      Evt:  4 ;  Run:  2161 ;  Res:  2165 ;  CLC:   49.0
     
    Program completed.
     
    .
    Где:

    Evt - Число тестируемых команд, выполнившихся за промежуток времени между началом и концом первого прерывания таймера.
    Run - Число тестируемых команд, выполнившихся за промежуток времени между концом первого и началом второго прерывания таймера.
    Res - Общее число тестируемых команд, выполнившихся между началом первого и началом второго прерывания таймера.
    CLC - Подсчитанное число тактов.

    ...

    В приложении два варианта теста - MovPC2_v1.1 выходит из первого прерывания таймера по RTI, а MovPC2_v1.2 - по BR.

    ...
    Вложения Вложения

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

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

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

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

Похожие темы

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

Ваши права

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