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

User Tag List

Страница 27 из 226 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя
Показано с 261 по 270 из 2253

Тема: Особенности процессоров и устройств архитектуры PDP-11. Тесты. Диагностика.

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    программа PORT2 выдала более интересные результаты. Если в первом случае колеблется от 3 до 7, то во втором - 600. 1801ВП1-065 (последовательные порты 176570-176577).
    Получается, что ВП1-065 не в середине стартового бита готовность выставляет (как DL11-W), а в начале.

    Тест прерываний из ТМОС, (насколько помню) тоже проверяет задержку между копированием байта в регистр данных терминала и прерыванием готовности вывода и сообщает об ошибке если эта задержка меньше заданной (какой именно - надо будет уточнить).

  2. #262
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    как DL11-W.
    А ты где-то видел живой DL11-W?
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

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

    По умолчанию

    На самом деле тест прерываний из ТМОС делает так:

    Код:
          MOV   #0,   177566          ; 012226:000000 -> 177566
          TSTB  177564                ; 177564:   000
          BPL   012232
          MOV   #0,   177566          ; 012242:000000 -> 177566
          BIS   #64., 177564          ; 012250:000100 -> 177564:000000
          CLR   013076                ; 013076:000000
          MTPS  013076                ; 013076:   000 ->   PSW :000004
          WAIT
    Если прерывание готовности вывода произойдёт до команды WAIT - тест сообщит об ошибке.

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

  4. #264
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Похерилось сообщение...
    Повторим результат:

    Для очистки совести без многотерминальности:

    Код:
    .RU PORT
    
    Check SERIAL PORT 0177566 1st & 2nd Print INTERRUPT DELAY - v1.0
    
    NOPs:   48  
    NOPs:  980  
    
    Program completed.
    
    .RU PORT
    
    Check SERIAL PORT 0177566 1st & 2nd Print INTERRUPT DELAY - v1.0
    
    NOPs:   53  
    NOPs:  982  
    
    Program completed.
    
    .
    И DLV11-J на всякий случай:

    Код:
    .RU PORT3
    
    Check SERIAL PORT 0176506 1st & 2nd Print INTERRUPT DELAY - v1.0
    
    NOPs:    1  
    NOPs:  960  
    
    Program completed.
    
    .RU PORT3
    
    Check SERIAL PORT 0176506 1st & 2nd Print INTERRUPT DELAY - v1.0
    
    NOPs:    3  
    NOPs:  961  
    
    Program completed.
    
    .RU PORT3
    
    Check SERIAL PORT 0176506 1st & 2nd Print INTERRUPT DELAY - v1.0
    
    NOPs:    6  
    NOPs:  961  
    
    Program completed.
    
    .RU PORT3
    
    Check SERIAL PORT 0176506 1st & 2nd Print INTERRUPT DELAY - v1.0
    
    NOPs:    6  
    NOPs:  962  
    
    Program completed.
    
    .
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

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

    По умолчанию

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

    Более простой контроллер сначала копирует байт из регистра данных в сдвиговый регистр и только затем начинает передавать стартовый бит. Из-за этого передача байта продолжается дольше (т.к. стартовый бит начинает передаваться не сразу), но прерывание готовности происходит раньше.

    Казалось бы, что сложного может быть в контроллере последовательного порта.
    Однако, какие удивительные открытия и тайные глубины..

  6. #266
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    Итак, решил проверить: сколько нопов успевает выполнить проц при разрешении прерываний экрана (в момент когда приемник готов принять символ) и после вывода символа до появления следующего прерывания. Я так понял, мы считали именно это.

    Развесистые проги писать не стал, сделал все тупо и просто. Результаты совсем другие. Причем тест на E11 показывает, что количество нопов после вывода символа до прерывания в точности равно значению настройки количества инструкций на которые прерывание откладывается.

    PS. На PDP-11 и E11 RESET останавливает таймер, на УКНЦ нужно отключать - прога не заботится о нем и в случае возникновения прерывания от таймера, оно въедет прямо в NOPы перед самым концом

    Код:
    	.TITLE	ITEST -- DL(V)11 INTERRUPT TEST
    	.IDENT	/V01.00/
    
    TKS	==	177560			;РЕГИСТРЫ КЛАВИАТУРЫ И ЭКРАНА
    TKB	==	TKS+2			;
    TPS	==	TKS+4			;
    TPB	==	TPS+2			;
    
    CSR	==	177564			;ТЕСТИРУЕМЫЙ РЕГИСТР
    VEC	==	64			;ЕГО ВЕКТОР
    
    ;CSR	==	176504
    ;VEC	==	304
    
    START::	MOV	#340,@#16		;ПЕРЕКЛЮЧАЕМСЯ В РЕЖИМ ЯДРА
    	MOV	#KERNL,@#14		;...НА МЕТКЕ KERNL
    	BPT				;
    
    ;ПЕРВОЕ ПРЕРЫВАНИЕ (ПРИ РАЗРЕШЕНИИ ПРЕРЫВАНИЯ ГОТОВОМУ УСТРОЙСТВУ)
    ;
    INT1::	MOV	#INT2,@#VEC		;ПЕРЕКЛЮЧАЕМ ISR
    	MOV	@SP,R5			;СОХРАНЯЕМ PC C МЕСТА ПРЕРЫВАНИЯ
    	MOV	#112737,TEST		;МЕНЯЕМ СТАРТОВЫЙ КОД НА
    	MOV	#0,TEST+2		;...MOVB #0,@#CSR+2
    	MOV	#CSR+2,TEST+4		;
    	MOV	#TEST,@SP		;ПЕРЕХОДИМ КО ВТОРОМУ ТЕСТУ
    	RTI				;
    
    ;ВТОРОЕ ПРЕРЫВАНИЕ (ПОСЛЕ ВЫВОДА СИМВОЛА В ГОТОВОЕ УСТРОЙСТВО)
    ;
    INT2::	MOV	@SP,R4			;СОХРАНЯЕМ PC С МЕСТА ПРЕРЫВАНИЯ
    	CLR	@#CSR			;ЗАПРЕЩАЕМ ПРЕРЫВАНИЯ
    	CLR	@#CSR+2			;ОБНУЛЯЕМ УСТРОЙСТВО (НЕ ОСОБО НУЖНО)
    	SUB	#NOPS,R4		;СЧИТАЕМ КОЛИЧЕСТВО NOPОВ
    	SUB	#NOPS,R5		;
    	ASR	R4			;
    	ASR	R5			;
    
    	MOV	R5,R1			;ПЕЧАТАЕМ ПЕРВОЕ ЧИСЛО
    	CALL	PRINT			;
    	MOV	R4,R1			;ПЕЧАТАЕМ ВТОРОЕ ЧИСЛО
    	CALL	PRINT			;
    	CALL	OUCHR			;ПЕЧАТАЕМ ДОПОЛНИТЕЛЬНЫЙ LF
    
    	TSTB	@#TKS			;ЖДЕМ НАЖАТИЯ КЛАВИШИ
    	BPL	.-4			;
    	TSTB	@#TKB			;ВЫЧИТЫВАЕМ КЛАВИШУ
    	BR	KERNL			;ПЕРЕЗАПУСКАЕМ ТЕСТ
    
    PRINT::	CLR	R2			;ПЕЧАТАЕМ ДЕСЯТИЧНОЕ ЧИСЛО
    10$:	CLR	R0			;...ИЗ R1
    	DIV	#10.,R0			;
    	ADD	#'0,R1			;
    	MOV	R1,-(SP)		;
    	INC	R2			;
    	MOV	R0,R1			;
    	BNE	10$			;
    20$:	MOV	(SP)+,R0		;
    	CALL	OUCHR			;
    	SOB	R2,20$			;
    	MOV	#15,R0			;CR
    	CALL	OUCHR			;
    	MOV	#12,R0			;LF
    OUCHR::	TSTB	@#TPS			;ЖДЕМ ГОТОВНОСТИ
    	BPL	.-4			;
    	MOVB	R0,@#TPB		;ПЕЧАТАЕМ СИМВОЛ ИЗ R0
    	RETURN				;ВОЗВРАТ
    
    KERNL::	RESET				;СБРОС ЖЕЛЕЗА
    	MOV	#START,SP		;ВОЗВРАЩАЕМ СТЕК НА МЕСТО
    	MTPS	#0			;РАЗРЕШАЕМ ПРЕРЫВАНИЯ
    	MOV	#52737,TEST		;ИНИЦИАЛИЗИРУЕМ СТАРТОВУЮ КОМАНДУ
    	MOV	#100,TEST+2		;...BIS #100,@#CSR
    	MOV	#CSR,TEST+4		;
    	MOV	#NOPS,R0		;ЗАПОЛНЯЕМ ПАМЯТЬ ОТ КОНЦА ПРОГРАММЫ
    10$:	MOV	#240,(R0)+		;...ДО 160000 NOPАМИ
    	CMP	#160000,R0		;
    	BNE	10$			;
    	CLR	-(R0)			;СТАВИМ HALT В КОНЦЕ НА ВСЯКИЙ СЛУЧАЙ
    	MOV	#INT1,@#VEC		;УСТАНАВЛИВАЕМ ISR
    	MOV	#340,@#VEC+2		;...И ЕГО ПРИОРИТЕТ
    	TSTB	@#CSR			;ЖДЕМ ГОТОВНОСТИ
    	BPL	.-4			;
    
    TEST::	.BLKW	3			;ЗАПУСК ТЕСТА:
    					;...1 ПРОХОД BIS #100,@#CSR
    					;...2 ПРОХОД MOVB #0,@#CSR+2
    
    NOPS::					;ДАЛЬШЕ ИДУТ NOPЫ
    	.END	START
    Миниатюры Миниатюры Нажмите на изображение для увеличения. 

Название:	e11.jpg 
Просмотров:	207 
Размер:	31.1 Кб 
ID:	39494   Нажмите на изображение для увеличения. 

Название:	ukncbtl.jpg 
Просмотров:	199 
Размер:	46.3 Кб 
ID:	39495   Нажмите на изображение для увеличения. 

Название:	pdp11.jpg 
Просмотров:	202 
Размер:	21.1 Кб 
ID:	39496  
    Вложения Вложения
    • Тип файла: rar itest.rar (307 байт, Просмотров: 68)
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    решил проверить: сколько нопов успевает выполнить проц при разрешении прерываний экрана (в момент когда приемник готов принять символ) и после вывода символа до появления следующего прерывания. Я так понял, мы считали именно это.
    PORT.SAV первую позицию не считает ( её считают другие тесты - PDP-11 Interrupts Test #3 и 1801VM1 Interrupts Test #1 ).

    Он считает вторую и "третью" позиции ( количество нопов после вывода первого и второго символов ).

  8. #268
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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

    ---------- Post added at 20:31 ---------- Previous post was at 20:18 ----------

    Проделал тест который хотел - запретил кэш.
    Разница заметна.

    Кэш запрещен. Console SLU:

    Код:
    .RU ITEST2
    35
    700
    
    35
    700
    
    35
    700
    Кэш запрещен. DLV11-J:

    Код:
    .EX ITEST2
    1
    700
    
    2
    700
    
    4
    699
    
    5
    699
    Кэш включен. Console SLU:

    Код:
    .EX ITEST2
    52
    990
    
    54
    990
    
    52
    990
    
    54
    990
    
    52
    990
    Кэш включен. DLV11-J:

    Код:
    .EX ITEST2
    4
    970
    
    6
    971
    
    6
    970
    
    6
    971
    
    6
    971
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

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

    По умолчанию

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

  10. #270
    Guru Аватар для form
    Регистрация
    27.05.2009
    Адрес
    СССР, Новосибирск
    Сообщений
    5,824
    Спасибо Благодарностей отдано 
    8
    Спасибо Благодарностей получено 
    282
    Поблагодарили
    228 сообщений
    Mentioned
    29 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Выводить все три позиции тоже полезно - особенно для авторов эмуляторов, у которых чаще всего в первой позиции ноль (а значит - ошибка приёма вектора прерывания не эмулируется).
    Сейчас придумаем что-нибудь поуниверсальнее и по информативнее.
    Это была пристрелка
    PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
    Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
    PMI: KDJ11-BF, MSV11-JE
    VT220, CM7209

Страница 27 из 226 ПерваяПервая ... 232425262728293031 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. Тесты ВМ1
    от nzeemin в разделе БК-0010/0011
    Ответов: 90
    Последнее: 05.10.2018, 12:24
  2. Диагностика
    от dk_spb в разделе Корвет
    Ответов: 31
    Последнее: 21.07.2017, 23:52
  3. Проблема двух процессоров.
    от Mikka_A в разделе Несортированное железо
    Ответов: 21
    Последнее: 28.11.2006, 17:04

Ваши права

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