User Tag List

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

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

Древовидный режим

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

    Регистрация
    11.09.2009
    Адрес
    Москва
    Сообщений
    4,807
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    149
    Поблагодарили
    80 сообщений
    Mentioned
    16 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    На данной стадии исследований мега-глюка 1801ВМ2 его абстрактная модель представляется весьма простой:

    Все команды делятся на четыре группы по отношению к глюку:
    1. Инвариантные к глюку ( вроде TST R0 или MOV PC,R5 и др. ).
    2. Вызывающие глюк ( вроде MOV (PC),R0 и др. ).
    3. Сбрасывающие глюк ( вроде MOV (PC),R0 ; BR ; TST PC и др. ).
    4. Мутные ( NOP, MTPS ), которые могут сбросить глюк, а могут и не сбросить.

    Все команды, вызывающие глюк - также и сбрасывают его при его наличии. Причём, сначала происходит сброс глюка и лишь затем его активация.

    Объяснение механизма глюка требует учёта двух различных указателей PC :
    1. Указатель на аргумент
    2. Указатель на команду

    Первый указатель применяется как значение PC во всех командах, где он используется непосредственно или как база для обращения к памяти ( как в командах MOV PC,R5 ; MOV (PC),R0 ; BR и др. ).

    Второй указатель служит для извлечения кода исполняемой команды.

    В обычной ситуации при выполнении обычных команд эти указатели совпадают.

    После выполнения "глючной" команды типа MOV (PC),R0 - сначала выполняется та команда, на которую смотрит указатель команды. Если эта команда относится к группе команд, сбрасывающих глюк - глюк не возникает и выполнение продолжается как обычно. То же справедливо и для нескольких "глючных" команд, идущих друг за другом - только последняя из них может вызвать глюк, если следом за ней не идёт "сбрасывающая" команда.

    Если после выполнения "глючной" команды указатель команды смотрит на инвариантную команду - после её первого выполнения указатель команды не увеличивается на 2 и инвариантная команда выполняется повторно. При этом возникает состояние глюка, характеризующееся тем, что указатель аргумента опережает указатель команды на 2.

    При выполнении первой же сбрасывающей команды указатель команды получает значение указателя аргумента ( это, например, приводит к пропуску следующей однословной команды после обычной однословной сбрасывающей ).

    Если в качестве сбрасывающей команды выступает глючная - она порождает глюк по новому значению исправленного указателя команды ( т.е. не в следующем слове, а через одно слово ).

    .......................

    Дальнейшего исследования требуют аспекты влияния мега-глюка на обработку прерываний, статистические параметры установки и сброса глюка различными командами и вопросы "трапообразования" при появлении команды NOP вслед за большим количеством идущих подряд глючных команд.
    Последний раз редактировалось Patron; 29.04.2013 в 10:46.

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

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

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

Ваши права

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