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

User Tag List

Страница 62 из 63 ПерваяПервая ... 585960616263 ПоследняяПоследняя
Показано с 611 по 620 из 625

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

  1. #611
    Guru Аватар для MiX
    Регистрация
    13.12.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    3,065
    Спасибо Благодарностей отдано 
    34
    Спасибо Благодарностей получено 
    74
    Поблагодарили
    62 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Наличие EIS определяется вторичным загрузчиком при загрузке системы:
    Не совсем так, при наличии эмулятора ЕМ пишет EIS,FIS. Если не перезагружая систему деактивировать эмулятор командой SET EM OFF и вызвать RESORC ещё раз, то этих инструкций уже не покажет.
    То-есть где-то проверяется заново. Да и вторичный загрузчик грузится первее чем ЕМ.

  2. #612
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    286
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    при наличии эмулятора ЕМ пишет EIS,FIS
    Цитата Сообщение от MiX Посмотреть сообщение
    То-есть где-то проверяется заново
    Думаю, ЕМ сам и выставляет-сбрасывает этот бит.

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

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    Не совсем так, при наличии эмулятора ЕМ пишет EIS,FIS. Если не перезагружая систему деактивировать эмулятор командой SET EM OFF и вызвать RESORC ещё раз, то этих инструкций уже не покажет.
    Цитата Сообщение от Hunta Посмотреть сообщение
    Думаю, ЕМ сам и выставляет-сбрасывает этот бит.
    Hunta прав. При загрузке и активации драйвера выполняется команда BIS #EIS$,CONFIG(R0), а при деактивации - BIC #EIS$,CONFIG(R0)​. Команда BIC реально выполняется, если процессор действительно не поддерживает EIS.

  4. #614
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    286
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Hunta прав
    Это было логичным - поэтому и предположил.

  5. #615
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Тема древняя, но напишу сюда. Тестировал вывод спрайта (скорость) и начал тоже замерять команды на ЦП УКНЦ. Наткнулся на странности:
    1) Команда nop выполняется медленнее чем скажем clr R0 или swab R0. Примерно на полтакта.
    2) Разница между ash #4, R0 и ash #5, R0 очень маленькая (тоже полтакта). Хотя разница между ash #5,R0 и ash #6,R0 уже раз в 10 больше. И вообще разница между ash #n,R0 зависит от n нелинейно

    Тестировал довольно просто, забивал кусок памяти навроде 20кб командами и гонял циклами считая прерывания сетевого таймера.
    С nop вообще непонятно Что это за задержка в полтакта. Что курили разработчики процессора?
    Последний раз редактировалось BlaireCas; 08.09.2021 в 16:52.

  6. #616
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    286
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Схема 1801ВМ2 уже давно восстановлена. Может пойти и посмотреть в ней.

    Насчёт ASH #n, R0.

    Не знаю, как сделано, но просто забить кусок памяти одной это командой не получится. Ибо после первой команды в R0 будет уже что то другое и вполне может сработать (если она есть) какая-нибудь внутренняя оптимизация. Типа, если в регистре содержится 0, то тупо ничего не делаем. В моей программе SPEED3 поэтому делается два прохода. Вначале кусок памяти забивается командами, которые создают для тестовой последовательности идентичные условиями (типа MOV #177777, R0) и меряется их скорость, потом кусок памяти забивается этими командами плюс тестовая последовательность (MOV #177777, R0; ASH #5, R0) и считается их скорость, а потом по разнице считается скорость тестовой последовательности.

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

    BlaireCas (08.09.2021)

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

  9. #617
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    после первой команды в R0 будет уже что то другое
    Неее... Очищаю регистры и флаги состояния процессора предварительно перед прокручиванием забитых в ОЗУ комманд.
    Код простой как валенок:
    Код:
    	mov	#COUNT1, VAR000
    	clr	VSYCNT
    30$:	clr	R0
    	clr	R1
    	clr	R2
    	clr	R3
    	clr	R4
    	clr	R5
    	mtps	#0
    	call	PAYBUF
    	dec	VAR000
    	bne	30$
    	; output results
    	...
    В PAYBUF записано собственно 20 килобайт повторяющихся инструкций ash #X, R0 и самая последняя return. Сетевой таймер делает только inc VSYCNT; rti .. Потом смотрю сколько накрутило прерываний.
    Понятно что совсем небольшое время добавляется на очистки регистров и организацию цикла. Но для сравнения это неважно. Четко вот время выполнения сдвига на 4 и 5 бит практически одинаково, а сдвиг на 6 бит уже прилично добавляет.

    Но за идею сделать разницу спасибо, надо попробовать.

    Вообщем я уже начинаю понимать насколько сложно сделать правильный эмулятор со всеми этими растактовками комманд.
    Последний раз редактировалось BlaireCas; 08.09.2021 в 18:00.

  10. #618
    Guru
    Регистрация
    30.11.2015
    Адрес
    г. Самара
    Сообщений
    7,001
    Спасибо Благодарностей отдано 
    286
    Спасибо Благодарностей получено 
    631
    Поблагодарили
    531 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от BlaireCas Посмотреть сообщение
    ash #X, R0
    И что должна делать команда сдвига, если в R0 - 0?

  11. #619
    Activist Аватар для BlaireCas
    Регистрация
    06.02.2020
    Адрес
    г. Москва
    Сообщений
    439
    Спасибо Благодарностей отдано 
    111
    Спасибо Благодарностей получено 
    322
    Поблагодарили
    125 сообщений
    Mentioned
    4 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    И что должна делать команда сдвига, если в R0 - 0?
    Покушать такты процессора. Нелинейно зависимые от X. Несмотря на пустой регистр - процессор тратит свое время на его сдвиг.
    Кстати разницы во времени между ash #7,R0 и ash #8,R0 вообще не обнаружил.

    (собственно почему затеял измерение скорости - ну банально заметил что asl R0 четыре раза подряд быстрее чем ash #4, R0)
    Последний раз редактировалось BlaireCas; 08.09.2021 в 18:31.

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

    По умолчанию

    Цитата Сообщение от Hunta Посмотреть сообщение
    Схема 1801ВМ2 уже давно восстановлена. Может пойти и посмотреть в ней.
    Там не только схема восстановлена, но восстановлены алгоритмы исполнения команд. Так что можно пойти и посмотреть. Всё начинается отсюда. Микрокод ASH(C) Rs,Rd здесь. Ну и далее.

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

    BlaireCas (08.09.2021)

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

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

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

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

Похожие темы

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

Ваши права

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