User Tag List

Показано с 1 по 10 из 293

Тема: Чем отличались КА1515ХМ1-031 и 1515ХМ2-001?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    361
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Это было бы очень грубой ошибкой.
    Да и если бы было так, то на периодах 16мкс (96 тактов), сбоили бы 23 из 24 записей, т.к. цикл шины весьма мал, скажем 4 такта, и если бы таймер мог воспринимать информацию на шине всего лишь раз в 96 тактов (по такту с предделителя), почти все записи улетали бы мимо.
    Тут явно глюк другого плана.
    Вот какой глюк и какого плана надо думать. С разрешения Titus-а воспользовался его исходником теста и получил листинг. Доказательства насчет адреса.
    Первоначально адрес загрузки в ОЗУ ПП неизвестен, поэтому п/п пользователя может быть загружена по любому адресу, но с помощью утилиты PMEM можно определить адрес загрузки. Сперва, когда был загружен только драйвер WD, свободная область начиналась с адреса 024566, прибавим размер заголовка в 6 байт, получим 024574. Так глючное число в этом случае было равно 3598, или 07016 в восьмеричном представлении. Так как счетчик в программируемом таймере 12-разрядный, то уместно предположить, что это часть адреса, и предположительно, с учетом начального адреса загрузки полный адрес будет равен 027016. Разница между ними составляет 027016-024574=02222.
    Теперь глянем на листинг, вот начало программы, загружаемой в ОЗУ ПП:
    Код:
        707					;===================================================================================
        708					;
        709					;			  nA^ALO PEREME]AEMOJ OBLASTI
        710					;
        711					;===================================================================================
        712	002340				PPUTBeg:
        713
        714					;===================================================================================
        715					;
        716					;		   fUNKCIQ TESTIROWANIQ SKOROSTI RABOTY TAJMERA
        717					;
        718					;	wYHODNYE DANNYE: PSTATE - ZNA^ENIE TAJMERA
        719					;
        720					;===================================================================================
        721	002340				SPDPPU:
        722	002340	106427 	000340 				MTPS	#^O340			;zAPRETITX PRERYWANIQ
        723
    Как видно при трансляции она получила адрес 02340. Прибавим к нему полученное ранее значение 02222, получается 04562. Глянем в листинг:
    Код:
       1373					;===============================================
       1374	004550				TBErrProc:
       1375	004550	010701 					MOV	PC,R1			;R1 = TEMP2
       1376	004552	062701 	000310 				ADD	#TEMP2-.,R1		;
       1377	004556	011137 	177712 				MOV	(R1),@#TMRBUF		;(TEMP2) -> TMRBUF
       1378
       1379	004562	011010 					MOV	(R0),(R0)		;pAUZA >= 480 TAKTOW
       1380	004564	011010 					MOV	(R0),(R0)		;(DLQ TO^NOJ ZAPISI BUFERNOGO REGISTRA
       1381	004566	011010 					MOV	(R0),(R0)		;W S^ET^IK)
       1382	004570	011010 					MOV	(R0),(R0)		;
       1383	004572	011010 					MOV	(R0),(R0)		;
       1384	004574	011010 					MOV	(R0),(R0)		;
       1385	004576	011010 					MOV	(R0),(R0)		;
       1386	004600	011010 					MOV	(R0),(R0)		;
       1387
       1388	004602	012701 	177714 				MOV	#TMRCURR,R1		;tO^NOE ^TENIE REGISTRA TEKU]EGO ZNA^ENIQ
       1389	004606	011100 					MOV	(R1),R0			;TAJMERA S RAZBLOKIROWKOJ
       1390	004610	051100 					BIS	(R1),R0			;R0 - REGISTR TEKU]EGO ZNA^ENIQ
       1391	004612	010000 					MOV	R0,R0			;
       1392	004614	051100 					BIS	(R1),R0			;
       1393	004616	051100 					BIS	(R1),R0			;
       1394	004620	010000 					MOV	R0,R0			;
       1395	004622	051100 					BIS	(R1),R0			;
       1396	004624	051100 					BIS	(R1),R0			;
       1397	004626	010000 					MOV	R0,R0			;
       1398	004630	051100 					BIS	(R1),R0			;
       1399
       1400	004632	010701 					MOV	PC,R1			;R1 = TEMP2
       1401	004634	062701 	000226 				ADD	#TEMP2-.,R1		;
       1402
       1403	004640	005700 					TST	R0			;
       1404	004642	001002 					BNE	1$			;
       1405	004644	005215 					INC	(R5)			;eSLI R0 = 0, TO PRIRA]IWAEM S^ET^IK NULEJ
       1406	004646	000406 					BR	2$			;--> 2$
       1407
       1408	004650				1$:
       1409	004650	021100 					CMP	(R1),R0			;eSLI R0 <> (TEMP2), TO
       1410	004652	001404 					BEQ	2$			;PRIRA]IWAEM ^ISLO PROMAHOW
       1411	004654	005265 	000002 				INC	2(R5)			;
       1412
       1413	004660	050065 	000004 				BIS	R0,4(R5)		;zAPISYWAEM S^ITANNOE ^ISLO W PAMQTX PO OR
       1414	004664				2$:
       1415
       1416	004664	011100 					MOV	(R1),R0			;(R1) <-> (R1 + 2)
       1417	004666	016111 	000002 				MOV	2(R1),(R1)		;(OBMENQTX MESTAMI KONSTANTY PROWERKI)
       1418	004672	010061 	000002 				MOV	R0,2(R1)		;
       1419
       1420	004676	000207 					RETURN
    Здесь как раз та самая подпрограмма, которая проверяет вероятность незаписи в буферный регистр. Как раз по адресу 04562 находится следующая команда, которая следует за командой MOV (R1),@#TMRBUF, осуществляющей запись в буферный регистр. Как ведет себя процессор при исполнении этой команды. Т.к. предыдущая команда состоит из двух слов, поэтому условие предвыборки нарушено. Процессор по адресу 027012 читает код команды 011137. Во время ее дешифрации читается следующее слово из памяти по предвыборке - адрес 027014, значение 177712. Во время дешифрации читается значение из памяти по значению регистра R1, это источник. Далее по адресу 027014 у нас уже прочитано значение 177712, по этому адресу происходит запись, это приемник. Т.к. предвыборка нарушена, то процессору остается выставить на шину адрес 027016 для чтения следующей команды. Вот это значение иногда и попадает в буферный регистр.
    Попадающее иногда значение 976 при 4 мкс я пока объяснить не могу, ясно, что это не адрес, т.к. оно постоянно, вне зависимости от того, сколько загружено резидентов в ОЗУ ПП. Единственно, что могу предположить, это то, что процессор в это время снимает собственно данные с шины, а снятие немного проходит неравномерно, то часть битов становится битами данных, а часть нулями. Пока только так.

    Жду комментариев и критики.

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

  3. #2

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Т.к. предыдущая команда состоит из двух слов, поэтому условие предвыборки нарушено. Процессор по адресу 027012 читает код команды 011137. Во время ее дешифрации читается следующее слово из памяти по предвыборке - адрес 027014, значение 177712. Во время дешифрации читается значение из памяти по значению регистра R1, это источник. Далее по адресу 027014 у нас уже прочитано значение 177712, по этому адресу происходит запись, это приемник. Т.к. предвыборка нарушена, то процессору остается выставить на шину адрес 027016 для чтения следующей команды. Вот это значение иногда и попадает в буферный регистр.
    Учитывая предвыборку кода команды, которая работает всегда, кроме функций ветвления и самомодификации кода, можно предположить несколько иную последовательность на начало выполнения команды
    Код:
    011137 	177712 				MOV	(R1),@#TMRBUF
    1) 011137 уже находится в буфере предвыборки, поэтому первая ступень - это дешифрация кода команды и предвыборка следующего слова из памяти 177712
    2) Слово смещения читается из буфера предвыборки и идет вычисление исполнительного адреса
    3) Тут сложно сказать, идет ли предвыборка следующего слова из адреса 4562, и потом выполняется команда, либо же сперва команда, а потом уже чтение кода следующей команды с адреса 4562. Надо почитать доки.

    До сих пор остается открытым вопрос поднятый мною в предыдущем посте.

  4. #3

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    361
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Учитывая предвыборку кода команды, которая работает всегда, кроме функций ветвления и самомодификации кода, можно предположить несколько иную последовательность на начало выполнения команды
    Код:
    011137 	177712 				MOV	(R1),@#TMRBUF
    1) 011137 уже находится в буфере предвыборки, поэтому первая ступень - это дешифрация кода команды и предвыборка следующего слова из памяти 177712
    2) Слово смещения читается из буфера предвыборки и идет вычисление исполнительного адреса
    3) Тут сложно сказать, идет ли предвыборка следующего слова из адреса 4562, и потом выполняется команда, либо же сперва команда, а потом уже чтение кода следующей команды с адреса 4562. Надо почитать доки.
    Предвыборка на следующую команду работает если только предыдущая команда состояла из одного слова, т.е. не было модификации одно из счетчиков команд (а теперь из документации мы знаем, что их целых три), естественно это не команда перехода и не было модификации адреса, прочитанного по предвыборке. А так как команды состояли из двух слов, то предвыборка на следующую команду и не работала. Это еще было показано мной при тесте регистра ловушки адреса при использовании команд, состоящих из одного и нескольких слов.
    Цитата Сообщение от Titus Посмотреть сообщение
    До сих пор остается открытым вопрос поднятый мною в предыдущем посте.
    Вопрос, насколько я понимаю, почему попадает не то что пишется, а другое? Что это другое, это вроде выяснили. Теперь остается понять почему запись происходит в этот момент.

    Кстати а вероятность незаписи регистра состояния и управления 0177710 вроде не проверялась? Вдруг там делитель не прописывается или режим ПУСК не запускается?

  5. #4

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Кстати а вероятность незаписи регистра состояния и управления 0177710 вроде не проверялась? Вдруг там делитель не прописывается или режим ПУСК не запускается?
    Думаю, что он всегда работает исправно, т.к. никогда случайно замечен в этом не был, в отличие от других регистров.
    Да и специфика у него иная, при которой его нелогично было бы тактировать способом, подобным буферному регистру и регистру текущего значения. Это как бы управляющий регистр, стоящий над ними.

    ---------- Post added at 00:13 ---------- Previous post was at 00:11 ----------

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Попадающее иногда значение 976 при 4 мкс я пока объяснить не могу, ясно, что это не адрес, т.к. оно постоянно, вне зависимости от того, сколько загружено резидентов в ОЗУ ПП. Единственно, что могу предположить, это то, что процессор в это время снимает собственно данные с шины, а снятие немного проходит неравномерно, то часть битов становится битами данных, а часть нулями.
    Если б это было из-за пограничного значения между неуспеванием одного, и успеванием другого, оно бы не было так стабильно.
    Кстати, надо заметить, что все значения складываются по OR, следовательно это вполне может быть логической суммой каких-либо чисел.

  6. #5

    Регистрация
    07.10.2007
    Адрес
    п.Пудость Гатчинского р-на Лен.обл.
    Сообщений
    3,250
    Спасибо Благодарностей отдано 
    361
    Спасибо Благодарностей получено 
    639
    Поблагодарили
    415 сообщений
    Mentioned
    46 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Если б это было из-за пограничного значения между неуспеванием одного, и успеванием другого, оно бы не было так стабильно.
    Кстати, надо заметить, что все значения складываются по OR, следовательно это вполне может быть логической суммой каких-либо чисел.
    Кстати для информации - 1515ХМ1-031(да и 1515ХМ2-001) расположены за буфером 1801ВП1-055, так что задержки на линии есть, и обычно они постоянны. Если бы задержки были непостоянны, то числа получались бы разными, а тут все время одно и тоже число. С адресом-то понятно, по мере загрузки резидентов число менялось и менялось на размер загруженного резидента. А вот здесь неясно. Можно 0177777 позаписывать, посмотреть, чего получится.

  7. #6

    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    14,421
    Спасибо Благодарностей отдано 
    1,717
    Спасибо Благодарностей получено 
    2,245
    Поблагодарили
    882 сообщений
    Mentioned
    69 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от Titus Посмотреть сообщение
    Думаю, что он всегда работает исправно, т.к. никогда случайно замечен в этом не был, в отличие от других регистров.
    Да и специфика у него иная, при которой его нелогично было бы тактировать способом, подобным буферному регистру и регистру текущего значения. Это как бы управляющий регистр, стоящий над ними.
    Еще почему считаю его нормально работающим, т.к. в тесте незаписи буферного регистра в счетчик по короткому импульсу, на периодах 8 и 16мкс все четко подтверждает теорию четкой работы системного регистра, и тактовой работы перезаписи буферного регистра в счетчик. Если б это было иначе, числа бы тоже плавали в очень большом диапазоне, так же, как и в тестах буферного регистра.

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

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

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

Похожие темы

  1. Куплю Т34ВГ1 (КА1515ХМ1-216)
    от moxjemi в разделе Барахолка (архив)
    Ответов: 2
    Последнее: 15.04.2011, 12:07

Ваши права

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