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

User Tag List

Страница 70 из 226 ПерваяПервая ... 666768697071727374 ... ПоследняяПоследняя
Показано с 691 по 700 из 2253

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

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

    По умолчанию

    Первым делом, небольшая поправка - в последнем примере выполнялся код 010017, т.е. не MOVB R0, (PC), а MOV R0, (PC).

    ...

    То, что нарушение предвыборки регистрируется только для чётных адресов - это известная особенность 1801ВМ2.

    ...

    Прояснилась ситуация относительно огромных задержек при перезаписи следующей команды.
    Вот как (на мой взгляд) работает процессор 1801ВМ2 при выполнении команд MOV R0, (R1)+ и MOV R0, (PC), когда обе эти команды пишут в следующее слово:

    MOV R0, (R1)+
    Код:
       Загрузка   Содержимое      Раскодирование   Выполнение   Завершение
    
    1. UR 001010 I 010021 06/08   001010           ..........   ..........
    2. UR 001012 I 000000 06/08   001012           ..........   ..........
    3. UW 001012 O 000240 12/14   ..............   001010       ..........
    4. UR 001014 I 000000 06/22   001014           ..........   001010
    5. UR 001012 I 000240 06/08   001012           ..........   ..........

    MOV R0, (PC)
    Код:
       Загрузка   Содержимое        Раскодирование   Выполнение   Завершение
    
    1. UR 001004 I 010017 06/08      001004           ..........   ..........
    2. UR 001006 I 123456 06/08      001006           ..........   ..........
    3. UW 001006 O 010017 12/14      ..............   001004       ..........
    4. UR 001006 I 010017 06/08      001006           ..........   001004
    Теперь понятно, что имели в виду разработчики, когда утверждали, что в момент завершения текущей команды - уже раскодирована следующая и началась предвыборка ещё одной.

    Т.к. факт записи в следующее слово командой MOV R0, (R1)+ становится известен только на этапе завершения - "пролетают" две предвыборки и процессору приходится выполнять микроблок JMP для перехода на изменённую команду.

    Для команды MOV R0, (PC) факт записи в следующее слово становится известен на этапе раскодирования, поэтому "пролетает" только одна предвыборка и выполнение микроблока JMP не требуется.

    ...

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

    ---------- Post added at 10:36 ---------- Previous post was at 10:25 ----------

    Интересно, как работают команды MOV (SP)+,(SP)+ и MOVB (SP)+,(SP)+, когда они пишут не в область кода, а в обычный стек. Наверняка, это можно понять и из предыдущих примеров, но я слегка запутался.

    ---------- Post added at 11:35 ---------- Previous post was at 10:36 ----------

    При нулевой задержке RPLY - блоки команд NOP и MOV R0,R0 выполняются (насколько я понял) так:

    NOP | NOP | NOP | HALT | HALT
    Код:
    UR 001000 I 000240 06/08
    UR 001002 I 000240 06/12
    UR 001004 I 000240 06/12
    UR 001006 I 000000 06/12
    UR 001010 I 000000 06/08
    MOV R0, R0 | MOV R0, R0 | MOV R0, R0 | HALT | HALT
    Код:
    UR 001000 I 010000 06/08
    UR 001002 I 010000 06/08
    UR 001004 I 010000 06/08
    UR 001006 I 000000 06/08
    UR 001010 I 000000 06/08
    Интересно, как они будут выполняться при задержке RPLY в 1, 2, 4 и 6 тактов..

    При нулевой задержке RPLY команда NOP выполняется за 12 тактов, а MOV R0,R0 - за 8 тактов.

    Не исключено, что при задержке RPLY в 6 тактов - обе эти команды будут выполняться за 14 тактов.
    Последний раз редактировалось Patron; 08.06.2013 в 12:40.

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

  3. #692
    Member
    Регистрация
    03.06.2013
    Адрес
    г. Москва
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Первым делом, небольшая поправка - в последнем примере выполнялся код 010017, т.е. не MOVB R0, (PC), а MOV R0, (PC).
    Ага, исправил. Вот тут правильно:
    MOVB R0, (PC)
    Код:
    001000: 012700 110017 110017 110000 110000 110000 110000 110000
    001020: 110000 110000 110000 000000 000000 000000 000000 000000
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 012700 06/08
    UR 001002 I 110017 06/12
    UR 001004 I 110017 06/08
    UR 001006 I 110000 06/08
    UR 001006 I 110000 OB 000017 16/18
    UR 001006 I 110017 06/08
    UR 001010 I 110000 06/08
    UR 001010 I 110000 OB 000017 16/18
    UR 001010 I 110017 06/08
    UR 001012 I 110000 06/08
    UR 001012 I 110000 OB 000017 16/18
    UR 001012 I 110017 06/08
    UR 001014 I 110000 06/08
    UR 001014 I 110000 OB 000017 16/18
    UR 001014 I 110017 06/08
    UR 001016 I 110000 06/08
    UR 001016 I 110000 OB 000017 16/18
    UR 001016 I 110017 06/08
    UR 001020 I 110000 06/08
    UR 001020 I 110000 OB 000017 16/18
    UR 001020 I 110017 06/08
    UR 001022 I 110000 06/08
    UR 001022 I 110000 OB 000017 16/18
    UR 001022 I 110017 06/08
    UR 001024 I 110000 06/08
    UR 001024 I 110000 OB 000017 16/18
    UR 001024 I 110017 06/08
    UR 001026 I 000000 06/08
    UR 001026 I 000000 OB 000017 16/18
    UR 001026 I 000017 06/08
    UR 001030 I 000000 06/08
    SEL 100000 03/12
    UW 000776 O 000200 10/12
    UW 000774 O 001030 10/12
    UR 000010 I 010026 06/14
    ... ушел в Trap 4
    Код:
    001000: 012700 110017 110017 110017 110017 110017 110017 110017
    001020: 110017 110017 110017 000017 000000 000000 000000 000000


    ---------- Post added at 18:38 ---------- Previous post was at 18:15 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Т.к. предвыборка следующего слова происходит одновременно с раскодированием текущего - команды BR и JMP (R0) должны сначала читать следующее слово и лишь затем выполнять переход - интересно в этом убедиться.
    Ну да, так и есть
    BR
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 000240 06/08
    UR 001002 I 000240 06/12
    UR 001004 I 000775 06/12
    UR 001006 I 123456 06/08
    UR 001000 I 000240 06/08
    UR 001002 I 000240 06/12
    UR 001004 I 000775 06/12
    UR 001006 I 123456 06/08
    UR 001000 I 000240 06/08
    UR 001002 I 000240 06/12
    UR 001004 I 000775 06/12
    UR 001006 I 123456 06/08
    UR 001000 I 000240 06/08
    JMP (R0)
    Код:
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 012700 06/08
    UR 001002 I 001004 06/12
    UR 001004 I 000240 06/08
    UR 001006 I 000240 06/12
    UR 001010 I 000110 06/12
    UR 001012 I 123456 06/18
    UR 001004 I 000240 06/08
    UR 001006 I 000240 06/12
    UR 001010 I 000110 06/12
    UR 001012 I 123456 06/18
    UR 001004 I 000240 06/08
    UR 001006 I 000240 06/12
    UR 001010 I 000110 06/12
    UR 001012 I 123456 06/18


    ---------- Post added at 19:11 ---------- Previous post was at 18:38 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Интересно, как работают команды MOV (SP)+,(SP)+ и MOVB (SP)+,(SP)+, когда они пишут не в область кода, а в обычный стек. Наверняка, это можно понять и из предыдущих примеров, но я слегка запутался.
    Из предыдущих примеров видно, для MOV (SP)+,(SP)+ запись в "область кода" происходит только здесь, и идет перечитывание команды по адресу 1006.
    Код:
    UR 001006 I 012626 06/08
    UR 001004 I 012626 06/12
    UW 001006 O 012626 12/14
    UR 001010 I 012626 06/22
    UR 001006 I 012626 06/08
    Потом операции по адресам из SP обгоняют выборку команд и происходит просто конвейерное переписывание из ячейки в следующую. То же самое и для MOVB (SP)+, (SP)+

    ---------- Post added at 20:29 ---------- Previous post was at 19:11 ----------

    Результаты задержки RPLY шагами по 2 такта (0 и 1 не различаются, как и остальные следующие нечетные)
    MOV R0, R0
    0
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 010000 06/08
    UR 001002 I 010000 06/08
    UR 001004 I 010000 06/08
    UR 001006 I 000000 06/08
    UR 001010 I 000000 06/08
    SEL 100000 03/16
    HR 100170 I 100400 06/06
    2
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 08/16
    HR 100002 I 000200 08/22
    UR 000400 I 012706 08/10
    UR 000402 I 001000 08/14
    UR 000404 I 000137 08/10
    UR 000406 I 001000 08/22
    UR 001000 I 010000 08/10
    UR 001002 I 010000 08/10
    UR 001004 I 010000 08/10
    UR 001006 I 000000 08/10
    UR 001010 I 000000 08/10
    SEL 100000 03/16
    HR 100170 I 100400 08/08
    4
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 010000 10/12
    UR 001002 I 010000 10/12
    UR 001004 I 010000 10/12
    UR 001006 I 000000 10/12
    UR 001010 I 000000 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    6
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 12/20
    HR 100002 I 000200 12/26
    UR 000400 I 012706 12/14
    UR 000402 I 001000 12/18
    UR 000404 I 000137 12/14
    UR 000406 I 001000 12/26
    UR 001000 I 010000 12/14
    UR 001002 I 010000 12/14
    UR 001004 I 010000 12/14
    UR 001006 I 000000 12/14
    UR 001010 I 000000 12/14
    SEL 100000 03/16
    HR 100170 I 100400 12/12
    NOP
    0
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 000240 06/08
    UR 001002 I 000240 06/12
    UR 001004 I 000240 06/12
    UR 001006 I 000000 06/12
    UR 001010 I 000000 06/08
    SEL 100000 03/16
    HR 100170 I 100400 06/06
    2
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 08/16
    HR 100002 I 000200 08/22
    UR 000400 I 012706 08/10
    UR 000402 I 001000 08/14
    UR 000404 I 000137 08/10
    UR 000406 I 001000 08/22
    UR 001000 I 000240 08/10
    UR 001002 I 000240 08/12
    UR 001004 I 000240 08/12
    UR 001006 I 000000 08/12
    UR 001010 I 000000 08/10
    SEL 100000 03/16
    HR 100170 I 100400 08/08
    4
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 000240 10/12
    UR 001002 I 000240 10/12
    UR 001004 I 000240 10/12
    UR 001006 I 000000 10/12
    UR 001010 I 000000 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    6
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 12/20
    HR 100002 I 000200 12/26
    UR 000400 I 012706 12/14
    UR 000402 I 001000 12/18
    UR 000404 I 000137 12/14
    UR 000406 I 001000 12/26
    UR 001000 I 000240 12/14
    UR 001002 I 000240 12/14
    UR 001004 I 000240 12/14
    UR 001006 I 000000 12/14
    UR 001010 I 000000 12/14
    SEL 100000 03/16
    HR 100170 I 100400 12/12
    Последний раз редактировалось Mixa64; 09.06.2013 в 18:41.

  4. #693
    Member
    Регистрация
    03.06.2013
    Адрес
    г. Москва
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    То, как работает глюк, на примере отсюда
    Цитата Сообщение от Alex_K Посмотреть сообщение
    ...
    Итак, начальные аргументы - R0 = R1 = R2 = R3 = R4 = 0. PSW = 0200. Ячейка 02000 = 0 (команда HALT).
    А вот и код:
    Код:
    1000:011700   MOV     @PC,R0
    1002:005201   INC     R1
    1004:005202   INC     R2
    1006:005203   INC     R3
    1010:005204   INC     R4
    1012:000137   JMP     @#1000
    1014:001000   .WORD   2000
    1016:002000
    В код добавил начальную очистку регистров.
    При задержке RPLY 0
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 005000 06/08
    UR 001002 I 005001 06/08
    UR 001004 I 005002 06/08
    UR 001006 I 005003 06/08
    UR 001010 I 005004 06/08
    UR 001012 I 011700 06/08
    UR 001014 I 005201 06/08
    UR 001014 I 005201 06/12
    UR 001014 I 005201 06/08
    UR 001016 I 005202 06/08
    UR 001020 I 005203 06/08
    UR 001022 I 005204 06/08
    UR 001024 I 000137 06/08
    UR 001026 I 001000 06/20
    UR 001000 I 005000 06/08
    UR 001002 I 005001 06/08
    Задержка 2
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 08/16
    HR 100002 I 000200 08/22
    UR 000400 I 012706 08/10
    UR 000402 I 001000 08/14
    UR 000404 I 000137 08/10
    UR 000406 I 001000 08/22
    UR 001000 I 005000 08/10
    UR 001002 I 005001 08/10
    UR 001004 I 005002 08/10
    UR 001006 I 005003 08/10
    UR 001010 I 005004 08/10
    UR 001012 I 011700 08/10
    UR 001014 I 005201 08/10
    UR 001014 I 005201 08/14
    UR 001014 I 005201 08/10
    UR 001016 I 005202 08/10
    UR 001020 I 005203 08/10
    UR 001022 I 005204 08/10
    UR 001024 I 000137 08/10
    UR 001026 I 001000 08/22
    UR 001000 I 005000 08/10
    UR 001002 I 005001 08/10
    UR 001004 I 005002 08/10
    Задержка 4. Ячейка 1030 читается как src для JMP
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 005000 10/12
    UR 001002 I 005001 10/12
    UR 001004 I 005002 10/12
    UR 001006 I 005003 10/12
    UR 001010 I 005004 10/12
    UR 001012 I 011700 10/12
    UR 001014 I 005201 10/12
    UR 001014 I 005201 10/16
    UR 001014 I 005201 10/12
    UR 001016 I 005202 10/12
    UR 001020 I 005203 10/12
    UR 001022 I 005204 10/12
    UR 001024 I 000137 10/12
    UR 001026 I 001000 10/12
    UR 001030 I 002000 10/24
    UR 002000 I 000000 10/12
    UR 002002 I 000377 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    R0=005201 R1=000002 R2=000001 R3=000001 R4=000001 R5=111100 R6=001000 R7=002002
    RS=000200
    Далее везде задержка равна 4
    Если вместо INC R4 вставить NOP, то ячейка 1030 прочитается как команда, в качестве ловушки туда HALT можно положить
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 005000 10/12
    UR 001002 I 005001 10/12
    UR 001004 I 005002 10/12
    UR 001006 I 005003 10/12
    UR 001010 I 005004 10/12
    UR 001012 I 011700 10/12
    UR 001014 I 005201 10/12
    UR 001014 I 005201 10/16
    UR 001014 I 005201 10/12
    UR 001016 I 005202 10/12
    UR 001020 I 005203 10/12
    UR 001022 I 000240 10/12
    UR 001024 I 000137 10/12
    UR 001026 I 001000 10/12
    UR 001030 I 000000 10/12
    UR 001032 I 000000 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    R0=005201 R1=000002 R2=000001 R3=000001 R4=000000 R5=111100 R6=001000 R7=001032
    RS=000200
    Если NOP поставить вместо INC R3, то JMP прочитает свой src таким образом, проигнорировав при этом INC R4
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 005000 10/12
    UR 001002 I 005001 10/12
    UR 001004 I 005002 10/12
    UR 001006 I 005003 10/12
    UR 001010 I 005004 10/12
    UR 001012 I 011700 10/12
    UR 001014 I 005201 10/12
    UR 001014 I 005201 10/16
    UR 001014 I 005201 10/12
    UR 001016 I 005202 10/12
    UR 001020 I 000240 10/12
    UR 001022 I 005204 10/12
    UR 001024 I 000137 10/12
    UR 001026 I 002000 10/12
    UR 001026 I 002000 10/24
    UR 002000 I 000000 10/12
    UR 002002 I 000377 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    R0=005201 R1=000002 R2=000001 R3=000000 R4=000000 R5=111100 R6=001000 R7=002002
    RS=000200
    а если NOP поставить вместо INC R2, то получится так
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 005000 10/12
    UR 001002 I 005001 10/12
    UR 001004 I 005002 10/12
    UR 001006 I 005003 10/12
    UR 001010 I 005004 10/12
    UR 001012 I 011700 10/12
    UR 001014 I 005201 10/12
    UR 001014 I 005201 10/16
    UR 001014 I 005201 10/12
    UR 001016 I 000240 10/12
    UR 001020 I 005203 10/12
    UR 001022 I 005204 10/12
    UR 001024 I 000137 10/12
    UR 001026 I 002000 10/24
    UR 002000 I 000000 10/12
    UR 002002 I 000377 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    R0=005201 R1=000002 R2=000000 R3=000000 R4=000001 R5=111100 R6=001000 R7=002002
    RS=000200
    Последний раз редактировалось Mixa64; 09.06.2013 в 23:46.

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

    По умолчанию

    Цитата Сообщение от Mixa64 Посмотреть сообщение
    Результаты задержки RPLY шагами по 2 такта
    Процессор 1801ВМ2 "вычисляет" одновременно с предвыборкой следующего слова, поэтому, чем дольше идёт обмен по шине - тем больше выравниваются продолжительности выполнения команд ( любопытно, что у 1801ВМ1 - NOP при нулевой задержке RPLY тоже выполняется дольше, чем MOV R0,R0, а с ростом задержки RPLY эта разница пропадает - значит и у ВМ1 тоже есть какая-то простейшая предвыборка ).

    Для соответствия стандарту Q-Bus (насколько я понимаю) SYNC-пауза у 1801ВМ2 составляет 2 такта, поэтому, при нулевой задержке RPLY - минимальная продолжительность команды 8 тактов. Всё что больше - "алгоритмическая задержка", разная для разных команд.

    Есть смысл определить алгоритмическую задержку для всех команд и способов адресации ( дополнительная задержка способов адресации от команды не зависит, поэтому вариантов для тестирования не очень много ). Иногда имеет место позиционная зависимость задержки адресации - так на УКНЦ команда CMP (R2)+,-(R1) занимает 50 тактов, а команда CMP -(R1),(R2)+ занимает 47 тактов.

    По тестам выходит, что у ВМ1 автодекрементная адресация { TST -(R0) ; TST @-(R0) } занимает на один такт больше, чем автоинкрементная. На УКНЦ у ВМ2 этого не видно, но проверить есть смысл. Кроме того, при способах адресации разной косвенности { TST (R0) ; TST 2(R0) ; TST @2(R0) } - последовательные чтения смещений на УКНЦ не всегда занимают одинаковое время. Интересно, как это выглядит "в чистом виде"..
    Последний раз редактировалось Patron; 10.06.2013 в 00:17.

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

    По умолчанию

    Цитата Сообщение от Mixa64 Посмотреть сообщение
    То, как работает глюк, на примере отсюда
    Mixa64, видно, что при любых задержках RPLY команда INC R1 читается три раза (один раз по предвыборке, а два раза из-за сбоя предвыборки). Ясно, что при задержке четыре и более такта она исполниться два раза, а вот как при нуле и двух тактах?

  7. #696
    Member
    Регистрация
    03.06.2013
    Адрес
    г. Москва
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Mixa64, видно, что при любых задержках RPLY команда INC R1 читается три раза (один раз по предвыборке, а два раза из-за сбоя предвыборки). Ясно, что при задержке четыре и более такта она исполниться два раза, а вот как при нуле и двух тактах?
    Дампа регистров нету, потому что по циклу идет. Был бы линейный фрагмент с HALT в конце, было бы видно, что INC R1 исполняется правильно, т.е. 1 раз. Вечером добавлю для наглядности.

    -= Добавление =-

    Задержка RPLY 0
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 005000 06/08
    UR 001002 I 005001 06/08
    UR 001004 I 005002 06/08
    UR 001006 I 005003 06/08
    UR 001010 I 005004 06/08
    UR 001012 I 011700 06/08
    UR 001014 I 005201 06/08
    UR 001014 I 005201 06/12
    UR 001014 I 005201 06/08
    UR 001016 I 005202 06/08
    UR 001020 I 005203 06/08
    UR 001022 I 005204 06/08
    UR 001024 I 000240 06/08
    UR 001026 I 000240 06/12
    UR 001030 I 000000 06/12
    UR 001032 I 000000 06/08
    SEL 100000 03/16
    HR 100170 I 100400 06/06
    R0=005201 R1=000001 R2=000001 R3=000001 R4=000001 R5=111100 R6=001000 R7=001032
    RS=000200
    Задержка RPLY 2
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 08/16
    HR 100002 I 000200 08/22
    UR 000400 I 012706 08/10
    UR 000402 I 001000 08/14
    UR 000404 I 000137 08/10
    UR 000406 I 001000 08/22
    UR 001000 I 005000 08/10
    UR 001002 I 005001 08/10
    UR 001004 I 005002 08/10
    UR 001006 I 005003 08/10
    UR 001010 I 005004 08/10
    UR 001012 I 011700 08/10
    UR 001014 I 005201 08/10
    UR 001014 I 005201 08/14
    UR 001014 I 005201 08/10
    UR 001016 I 005202 08/10
    UR 001020 I 005203 08/10
    UR 001022 I 005204 08/10
    UR 001024 I 000240 08/10
    UR 001026 I 000240 08/12
    UR 001030 I 000000 08/12
    UR 001032 I 000000 08/10
    SEL 100000 03/16
    HR 100170 I 100400 08/08
    R0=005201 R1=000001 R2=000001 R3=000001 R4=000001 R5=111100 R6=001000 R7=001032
    RS=000200
    Задержка RPLY 4
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 10/18
    HR 100002 I 000200 10/24
    UR 000400 I 012706 10/12
    UR 000402 I 001000 10/16
    UR 000404 I 000137 10/12
    UR 000406 I 001000 10/24
    UR 001000 I 005000 10/12
    UR 001002 I 005001 10/12
    UR 001004 I 005002 10/12
    UR 001006 I 005003 10/12
    UR 001010 I 005004 10/12
    UR 001012 I 011700 10/12
    UR 001014 I 005201 10/12
    UR 001014 I 005201 10/16
    UR 001014 I 005201 10/12
    UR 001016 I 005202 10/12
    UR 001020 I 005203 10/12
    UR 001022 I 005204 10/12
    UR 001024 I 000240 10/12
    UR 001026 I 000240 10/12
    UR 001030 I 000000 10/12
    UR 001032 I 000000 10/12
    SEL 100000 03/16
    HR 100170 I 100400 10/10
    R0=005201 R1=000002 R2=000001 R3=000001 R4=000001 R5=111100 R6=001000 R7=001032
    RS=000200
    Последний раз редактировалось Mixa64; 12.06.2013 в 15:52.

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

    По умолчанию

    Цитата Сообщение от Mixa64 Посмотреть сообщение
    Результаты задержки RPLY шагами по 2 такта (0 и 1 не различаются, как и остальные следующие нечетные)
    Точно, ведь процессор 1801ВМ2 делит тактовую частоту на 2, поэтому синхронная проверка RPLY возможна не ранее, чем через один такт.

    Но что если подать копию RPLY на AR ( приёмник асинхронного RPLY - ножка 23 ) - не появится ли разница в быстродействии при нулевой задержке и задержке в 1 такт..

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Но что если подать копию RPLY на AR ( приёмник асинхронного RPLY - ножка 23 ) - не появится ли разница в быстродействии при нулевой задержке и задержке в 1 такт..
    Вообще-то AR - это подтверждение адреса, что-то типа аналогии RPLY, но ответ на SYNC. Поэтому на этот вход подают сигнал SYNC, ну может быть с задержкой, если часть устройств находится за буферами, и надо учитывать задержку при распространении адреса. В УКНЦ в магистрали ПП так и реализована задержка SYNC на AR через цепочку логических элементов с конденсаторами между входами и землей. Соответственно в зависимости от емкости конденсаторов с разной задержкой приходит сигнал на AR, и разные модели УКНЦ немного различаются по быстродействию в магистрали ПП.

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

    По умолчанию

    Цитата Сообщение от Alex_K Посмотреть сообщение
    Вообще-то AR - это подтверждение адреса, что-то типа аналогии RPLY, но ответ на SYNC.
    Точно, это я конкретно глюканул ( т.к. перед написанием исходного сообщения не поленился заглянуть в справочник и убедиться, что сигнал AR - это подтверждение адреса ).

    Использование AR позволяет сделать задержку между SYNC и DIN/DOUT меньше, чем требует стандарт Q-Bus.

    ---------- Post added at 02:03 ---------- Previous post was at 01:50 ----------

    Сигнал RPLY - сам по себе асинхронный, поэтому "приёмник асинхронного RPLY" на ножке AR - это супер!

  11. #700
    Member
    Регистрация
    03.06.2013
    Адрес
    г. Москва
    Сообщений
    45
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    По тестам выходит, что у ВМ1 автодекрементная адресация { TST -(R0) ; TST @-(R0) } занимает на один такт больше, чем автоинкрементная. На УКНЦ у ВМ2 этого не видно, но проверить есть смысл.
    У ВМ2 в этом смысле разницы действительно нет.
    TST -(R0)
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 012700 06/08
    UR 001002 I 004000 06/12
    UR 001004 I 005740 06/08
    UR 001006 I 005740 06/08
    UR 003776 I 000377 06/12
    UR 001010 I 005740 06/08
    UR 003774 I 177500 06/12
    UR 001012 I 005740 06/08
    UR 003772 I 000377 06/12
    UR 001014 I 005740 06/08
    UR 003770 I 172404 06/12
    UR 001016 I 000240 06/08
    UR 003766 I 000377 06/12
    UR 001020 I 000240 06/12
    UR 001022 I 000240 06/12
    UR 001024 I 000000 06/12
    UR 001026 I 000000 06/08
    TST @-(R0)
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 012700 06/08
    UR 001002 I 004000 06/12
    UR 001004 I 005750 06/08
    UR 001006 I 005750 06/08
    UR 003776 I 000377 06/10
    UR 000377 I 074733 06/12
    UR 001010 I 005750 06/08
    UR 003774 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001012 I 005750 06/08
    UR 003772 I 000377 06/10
    UR 000377 I 074733 06/12
    UR 001014 I 005750 06/08
    UR 003770 I 172404 06/10
    UR 172404 I 177671 06/12
    UR 001016 I 000240 06/08
    UR 003766 I 000377 06/10
    UR 000377 I 074733 06/12
    UR 001020 I 000240 06/12
    UR 001022 I 000240 06/12
    UR 001024 I 000000 06/12
    UR 001026 I 000000 06/08
    TST (R0)+
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 012700 06/08
    UR 001002 I 004000 06/12
    UR 001004 I 005720 06/08
    UR 001006 I 005720 06/08
    UR 004000 I 177400 06/12
    UR 001010 I 005720 06/08
    UR 004002 I 000377 06/12
    UR 001012 I 005720 06/08
    UR 004004 I 177500 06/12
    UR 001014 I 005720 06/08
    UR 004006 I 000377 06/12
    UR 001016 I 000240 06/08
    UR 004010 I 177400 06/12
    UR 001020 I 000240 06/12
    UR 001022 I 000240 06/12
    UR 001024 I 000000 06/12
    UR 001026 I 000000 06/08
    TST @(R0)+
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 012700 06/08
    UR 001002 I 004000 06/12
    UR 001004 I 005730 06/08
    UR 001006 I 005730 06/08
    UR 004000 I 177400 06/10
    UR 177400 I 010637 06/12
    UR 001010 I 005730 06/08
    UR 004002 I 000377 06/10
    UR 000377 I 074733 06/12
    UR 001012 I 005730 06/08
    UR 004004 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001014 I 005730 06/08
    UR 004006 I 000377 06/10
    UR 000377 I 074733 06/12
    UR 001016 I 000240 06/08
    UR 004010 I 177400 06/10
    UR 177400 I 010637 06/12
    UR 001020 I 000240 06/12
    UR 001022 I 000240 06/12
    UR 001024 I 000000 06/12
    UR 001026 I 000000 06/08


    ---------- Post added at 17:42 ---------- Previous post was at 16:25 ----------

    Цитата Сообщение от Patron Посмотреть сообщение
    Кроме того, при способах адресации разной косвенности { TST (R0) ; TST 2(R0) ; TST @2(R0) } - последовательные чтения смещений на УКНЦ не всегда занимают одинаковое время. Интересно, как это выглядит "в чистом виде"..
    А выглядит вот так (R0 = 4012):

    TST (R0)
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 005710 06/08
    UR 001002 I 005710 06/08
    UR 004012 I 000377 06/12
    UR 001004 I 005710 06/08
    UR 004012 I 000377 06/12
    UR 001006 I 005710 06/08
    UR 004012 I 000377 06/12
    UR 001010 I 005710 06/08
    UR 004012 I 000377 06/12
    UR 001012 I 000240 06/08
    UR 004012 I 000377 06/12
    UR 001014 I 000240 06/12
    UR 001016 I 000240 06/12
    UR 001020 I 000000 06/12
    UR 001022 I 000000 06/08
    TST 2(R0)
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 005760 06/08
    UR 001002 I 000002 06/10
    UR 004014 I 177500 06/12
    UR 001004 I 005760 06/08
    UR 001006 I 000002 06/10
    UR 004014 I 177500 06/12
    UR 001010 I 005760 06/08
    UR 001012 I 000002 06/10
    UR 004014 I 177500 06/12
    UR 001014 I 005760 06/08
    UR 001016 I 000002 06/10
    UR 004014 I 177500 06/12
    UR 001020 I 005760 06/08
    UR 001022 I 000002 06/10
    UR 004014 I 177500 06/12
    UR 001024 I 000240 06/08
    UR 001026 I 000240 06/12
    UR 001030 I 000240 06/12
    UR 001032 I 000000 06/12
    UR 001034 I 000000 06/08
    TST @2(R0)
    Код:
    SEL 100000 03/16
    HR 100000 I 000400 06/14
    HR 100002 I 000200 06/20
    UR 000400 I 012706 06/08
    UR 000402 I 001000 06/12
    UR 000404 I 000137 06/08
    UR 000406 I 001000 06/20
    UR 001000 I 005770 06/08
    UR 001002 I 000002 06/10
    UR 004014 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001004 I 005770 06/08
    UR 001006 I 000002 06/10
    UR 004014 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001010 I 005770 06/08
    UR 001012 I 000002 06/10
    UR 004014 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001014 I 005770 06/08
    UR 001016 I 000002 06/10
    UR 004014 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001020 I 005770 06/08
    UR 001022 I 000002 06/10
    UR 004014 I 177500 06/10
    UR 177500 I 042715 06/12
    UR 001024 I 000240 06/08
    UR 001026 I 000240 06/12
    UR 001030 I 000240 06/12
    UR 001032 I 000000 06/12
    UR 001034 I 000000 06/08

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

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

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

Эту тему просматривают: 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

Ваши права

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