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

User Tag List

Страница 26 из 63 ПерваяПервая ... 222324252627282930 ... ПоследняяПоследняя
Показано с 251 по 260 из 625

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

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Там в двух позициях есть сомнительные результаты
    Если на этих командах процессор не перпрыгивает через команду вперед, то результаты должны быть корректны.

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

    По умолчанию

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

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Если на этих командах процессор не перпрыгивает через команду вперед, то результаты должны быть корректны.
    Во втором случае очевидно, что команда MOV (PC),(PC)+ именно перепрыгивает следующую и поэтому число "пройденных" слов нужно делить на 2.

    ...

    А в первом случае - просто интересно, как получается такая большая разница в результатах тестов.

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

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    В приложении - изменённый вариант теста MovPC v1.1.
    Протестировать в цикле команду MovB (PC)+,(PC) без трёх NOPов невозможно, но зато без теста этой команды количество заглушек удалось сократить до одной.

    Мой прогноз - вылетать будет немного меньше, но глючить не перестанет.

    ...

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

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

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

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Если на этих командах процессор не перпрыгивает через команду вперед, то результаты должны быть корректны.
    Увы, циклический тест с командами MOV (PC), R0 и MOVB (PC), R0 не дружит.

    Код:
    OpBuf:
    		.BLKW	2048		;Буфер для тестируемых команд
    OpBufEnd:
    		INC	R4		;Увеличиваем счетчик циклов
    		JMP	(R5)		;Бесконечный цикл --> OpBufLoop
    Весьма похоже, что тест TSSPD даёт ошибочные результаты в обоих обсуждаемых случаях.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    В приложении два варианта теста - MovPC2_v1.1 выходит из первого прерывания таймера по RTI, а MovPC2_v1.2 - по BR.
    ...
    MovPC2_v1.1:

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

    [свернуть]

    MovPC2_v1.2:

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

    [свернуть]


    ---------- Post added at 20:41 ---------- Previous post was at 20:38 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Увы, циклический тест с командами MOV (PC), R0 и MOVB (PC), R0 не дружит.

    Код:
    OpBuf:
    		.BLKW	2048		;Буфер для тестируемых команд
    OpBufEnd:
    		INC	R4		;Увеличиваем счетчик циклов
    		JMP	(R5)		;Бесконечный цикл --> OpBufLoop
    Весьма похоже, что тест TSSPD даёт ошибочные результаты в обоих обсуждаемых случаях.
    В этом случае, после MOV @PC,R0, INC R4 выполниться два раза.
    Последний раз редактировалось Alex_K; 16.02.2019 в 23:36.

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

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

    По умолчанию

    Для комплексной проверки глюков команды MOV (PC), R0, наблюдавшихся в тесте MOVPC.SAV - готова специальная версия этого теста: MovPCx, перехватывающая Trap_To_4, ведущая два счётчика циклов ( в начале и конце тестовой последовательности ) и перехватывающая плохие переходы:

    Код:
    Foot0:
    	Nop
    	Nop
    	Nop
    
    	Dec	R5
    	BEq	1$
    
    	Jmp	@#LoopStart
    	.Word	Bad.Jmp
    1$:
    	Mov	#R.T.I, @#100
    	Inc	R4
    	MTPS	#0
    	Return
    Foot1:
    При первом запуске теста можно ввести значение тактовой частоты тестируемого процессора в килогерцах, а также задать значение PSW при котором будет выполняться тест ( допустимы значения 0 и 340, любое другое значение превратится в 340 ).

    ...
    Вложения Вложения
    • Тип файла: zip MovPCx.zip (9.1 Кб, Просмотров: 131)
    Последний раз редактировалось Patron; 27.02.2013 в 20:58.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Для комплексной проверки глюков команды MOV (PC), R0, наблюдавшихся в тесте MOVPC.SAV - готова специальная версия этого теста: MovPCx, перехватывающая Trap_To_4, ведущая два счётчика циклов ( в начале и конце тестовой последовательности ) и перехватывающая плохие переходы:
    С PSW=0:

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




    [свернуть]

    С PSW=340:

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




    [свернуть]


    ---------- Post added at 22:11 ---------- Previous post was at 22:09 ----------

    По поводу TRAP4, адрес прерывания в стеке может быть неверный, обычно в таких случаях он увеличен на 2.
    Последний раз редактировалось Alex_K; 16.02.2019 в 23:40.

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

    По умолчанию

    Код в том месте такой:

    Код:
    011220 [000000]:      MOV   (PC), R0              ; 011222:011700 ->   R0
    011222 [000000]:      MOV   (PC), R0              ; 011224:011700 ->   R0
    011224 [000000]:      MOV   (PC), R0              ; 011226:011700 ->   R0
    011226 [000000]:      MOV   (PC), R0              ; 011230:000240 ->   R0
    011230 [000000]:      NOP
    011232 [000000]:      NOP
    011234 [000000]:      NOP
    011236 [000000]:      DEC   R5                    ;
    011240 [000000]:      BEQ   011250
    011242 [000000]:      JMP   @#005306
    Код:
    Foot0:
    	Nop
    	Nop
    	Nop
    
    	Dec	R5
    	BEq	1$
    
    	Jmp	@#LoopStart
    	.Word	Bad.Jmp
    1$:
    	Mov	#R.T.I, @#100
    	Inc	R4
    	MTPS	#0
    	Return
    Foot1:


    ---------- Post added at 21:31 ---------- Previous post was at 21:24 ----------

    А на другой машине, помнится, пока та была холодная - тест один раз не просто без вылета, а даже и почти без глюков прошёл..

    ---------- Post added at 21:33 ---------- Previous post was at 21:31 ----------

    По счётчикам команда BEQ вылететь в Trap_To_4 вряд ли может - слишком далеко до ближайшей незанятой памяти.
    Последний раз редактировалось Patron; 27.02.2013 в 22:56.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    А на другой машине, помнится, пока та была холодная - тест один раз не просто без вылета, а даже и почти без глюков прошёл..
    Другая УКНЦ.
    PSW=0:

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




    [свернуть]

    PSW=340:

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




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

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

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

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

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

Похожие темы

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

Ваши права

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