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

User Tag List

Страница 121 из 226 ПерваяПервая ... 117118119120121122123124125 ... ПоследняяПоследняя
Показано с 1,201 по 1,210 из 2253

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

  1. #1201
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Если в такой системе есть синхронные системные вызовы, то это Вы не вполне представляете, что такое корпоративная многозадачка.
    А если их нет? Да и если есть, то такая система, обычно, планируется так, что все задачи короткие. Получила задача управление, занесла что-то в регистр УСО (устройство сопряжения с объектом), посмотрела что из этого вышло, отметилась где-то и RETURN, назад в диспетчер. Если нужно ждать какое-то время, активируется другая задача, то есть переводится из состояния "не запускать никогда" в состояние "запустить через, допустим, 0.1 сек", а она, будучи запущенной, проверит, что надо, результат куда-то занесет и дезактивируется, т.е. снова поставит себе "не запускать никогда". Да, это делается синхронным системным вызовом, но, опять же, мгновенным, несколько команд при закрытых прерываниях, и все, Return, назад в диспетчер.

    Жаль, не сохранилась одна моя программуля, там подобная многозадачка была накручена не на голом железе, а под RT11SJ, работало оно примерно так же, но еще писались на диск и печатались на принтер логи работы, пришлось разобраться и использовать .READC, .WRITC. Довольно забавно смотрелось: кончилась бумага на принтере, на экране у оператора мигает надпись "Заправь бумагу", остальное все весело работает. Вставишь пистон оператору, чтобы не зевал, зарядят бумагу, и полез лог за полчаса, а то и час работы, остальное весело продолжает работать, как будто ничего и не случилось.

    Увы, от нее остался только листинг, на бумаге, причем в поганом качестве, страниц 50, из которых половина - комментарии, откомментировал я ее, помню, не хуже, чем откомментирована RT-11 (то, что на бонусных дистрибутивах). Но увы...
    Последний раз редактировалось AFZ; 06.04.2015 в 07:09.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

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

    По умолчанию

    Цитата Сообщение от AFZ Посмотреть сообщение
    все задачи короткие. Получила задача управление, занесла что-то в регистр УСО (устройство сопряжения с объектом), посмотрела что из этого вышло, отметилась где-то и RETURN, назад в диспетчер.
    Если в системе нет состояния idle, то нет и такой задачи, а значит нет и возможности использовать там команду WAIT. Если же в системе есть состояние idle, то использование команды WAIT в соответствующей задаче совершенно безопасно.

    Дело лишь за тем, чтобы прерывания возвращались не в прерванное место, а сначала в проверку состояния - тогда у прерывания не будет возможности ошибочно вернуться в задачу idle ни до выполнения там команды WAIT, ни после.

  4. #1203
    Guru
    Регистрация
    02.03.2015
    Адрес
    г. Караганда, Казахстан
    Сообщений
    2,321
    Спасибо Благодарностей отдано 
    35
    Спасибо Благодарностей получено 
    225
    Поблагодарили
    177 сообщений
    Mentioned
    17 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Дело лишь за тем, чтобы прерывания возвращались не в прерванное место, а сначала в проверку состояния - тогда у прерывания не будет возможности ошибочно вернуться в задачу idle ни до выполнения там команды WAIT, ни после.
    То есть принудительно отобрать управление у задачи IDLE. Вообще-то, принудительно отбирать управление - это характерно для вытесняющих ОС. То есть, конечно, можно изобрести и такой "гибрид", когда нормальные задачи возвращают управление сами, а у задачи idle управление отбирается принудительно, но это, как я подозреваю, сильно нарушит общую стройность системы. А отбирать управление у любой задачи - это означает свой стек и пр. области сохранения у каждой задачи и прочие усложнения, в итоге получится та же вытесняющая многозадачка, только самодельная...

    Ладно, в то время это было неважно, все эти Э-60 и ДВК имели только сетевое питание и состояние ожидания применялось разве что для самоуспокоения - ни на энергопотребление оборудования, ни на надежность, ни на что другое оно не влияло. Это актуально сейчас, на микроконтроллерах с батарейным питанием, где вовремя выданная команда SLEEP может существенно сэкономить расход энергии батареек, но у них поведение команды ожидания строго детерминировано. По крайней мере у тех, с кем я имел дело.
    Кто мешает тебе выдумать порох непромокаемый? (К.Прутков, мысль № 133)

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

    По умолчанию Проверка фич проца

    Это пока только пристрелочный вариант... На данном этапе прога временная просто выясняет отличия E11 от реальности (готовлю очередное письмо). В дальнейшем планируется сканировать процессор на всевозможные фичи (в том числе невозможные в реальной жизни) и определять тип процессора полным сравнением всех фич, а не последовательным отсеканием.

    На 11/83 результат такой:
    Код:
    .RU CPFEAT
    MFPT value                                         : 005
    Maintenance register (177750) value                : 000445
    PS address (177776) implemented                    : Yes
    Stack limit register (177774)                      : No
    PIRQ register (177772)                             : Yes
    Memory management unit                             : Yes
    Supervisor mode                                    : Yes
    Split I/D space                                    : Yes
    Multiple interrupt levels                          : Yes
    Dual register set                                  : Yes
    Odd address trap                                   : Yes
    OPR (R)+ increments R for non-existent address     : Yes
    OPR R,(R)+ uses R+2 as the source operand          : Yes
    OPR R,-(R) uses R-2 as the source operand          : Yes
    OPR PC,X(R) uses PC+4 as the source operand        : No
    JMP (R)+/JSR reg,(R)+ uses R+2 as the new PC value : No
    JMP R/JSR reg,R traps to                           : 010
    SWAB clears V bit                                  : Yes
    Direct access to PS can load T bit                 : No
    RTI works like RTT                                 : No
    SOB/SXT instructions                               : Yes
    MARK instruction                                   : Yes
    RTT instruction                                    : Yes
    MUL/DIV/ASH/ASHC instructios                       : Yes
    XOR instruction                                    : Yes
    FADD/FSUB/FMUL/FDIV instructions                   : No
    SPL instruction                                    : Yes
    MFPS/MTPS instructions                             : Yes
    TSTSET/WRTLCK instructions                         : Yes
    Ну и сразу видно, что некоторые отличия от E11 пропали, некоторые еще есть:
    Код:
    form@diag:/tmp$ diff -duN 1183.txt e11.txt |grep -- '^[+-]'
    --- 1183.txt	2015-04-21 16:23:18.792107017 +0600
    +++ e11.txt	2015-04-21 16:23:39.292275880 +0600
    -OPR (R)+ increments R for non-existent address     : Yes
    +OPR (R)+ increments R for non-existent address     : No
    form@diag:/tmp$
    Вложения Вложения
    Последний раз редактировалось form; 21.04.2015 в 17:29.
    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

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

    По умолчанию

    Цитата Сообщение от form Посмотреть сообщение
    OPR (R)+ increments R for non-existent address : Yes
    Надо бы проверять еще и @(R)+.

    В эмуляторе ДВК долгое время (R)+ отрабатывался при TRAP4 правильно, а @(R)+ отрабатывался неправильно.

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

    По умолчанию

    Цитата Сообщение от Patron Посмотреть сообщение
    Надо бы проверять еще и @(R)+.
    Я их специально убрал пока чтобы сократить. В реальной жизни (R)+, @(R)+, -(R), @-(R) реакция совпадает. Также команды сначала раздельно тестировал, потом сгруппировал (не все - к примеру SOB, SXT, MARK, RTT - команды из одного файла, но в E11 они разделены). В окончательном варианте все будет тестироваться раздельно и сниматься этакий слепок опций.

    ---------- Post added at 20:28 ---------- Previous post was at 20:25 ----------

    Ну и вообще принимаются идеи. Официальная таблица отличий есть в приложении к описанию DCJ11. Некоторые моменты также затронуты в описании E11 (в списке опций SET CPU).
    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

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

    По умолчанию

    ...

    В ходе исследований V-модели процессора 1801ВМ1 выяснилось, что проверка IRQ в цикле DATIO производится до фазы записи, а в цикле DATO - после. Это означает, что команда MOV #100, @#TTPS должна вызывать прерывание сразу, тогда как команда BIS #100, @#TTPS вызывает прерывание только через одну команду.

    Для натурной проверки данного факта написан тест: IRQT1.SAV, который надо бы прогнать на процессорах 1801ВМ1, 1801ВМ2 и 1801ВМ3.

    Прогон теста в текущей версии эмулятора ДВК даёт такой результат:

    Код:
    .RU IRQT1
     
    Interrupts Test #1
     
    BIS  #100, @#TTPS
    NOP
    >>> Interrupt <<<
     
    MOV  #100, @#TTPS
    NOP
    >>> Interrupt <<<
     
    Program completed.
     
    .
    Последний раз редактировалось Patron; 21.11.2015 в 13:03.

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

    По умолчанию

    Результат теста на ВМ3 аналогичен результата теста эмулятора.

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

    На ВМ2 аналогично.

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

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    Результат аналогичен
    Это удачно - не придётся усложнять эмуляцию.

  11. #1210
    R.I.P. Аватар для hobot
    Регистрация
    30.08.2011
    Адрес
    Зеленоград
    Сообщений
    7,161
    Спасибо Благодарностей отдано 
    2,979
    Спасибо Благодарностей получено 
    370
    Поблагодарили
    309 сообщений
    Mentioned
    13 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Patron, в одном из эмуляторов BK11M под местной RT-11 (ОСБК которая),
    результат теста такой?

    автору эмулятора сообщить бы, что ВМ1 у него по прежнему не полный?
    Хорошо бы ссылку ему кинуть на этот тест с комментарием, что бы сразу.

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

    На Ук-Нц живой я так понял уже нет смысла запускать, MIX, вроде бы ВМ2 прогнал?
    Архив программ для УК-НЦ, ДВК и БК.

    Ищу игру "СТРАНА МОНСТРОВ" [monstr.sav] для ДВК.

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

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

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

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

Ваши права

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