Рубрики

ВОРОТА | GATE CS 2013 | Вопрос 28

Рассмотрим следующую последовательность микроопераций.

     MBR ← PC 
     MAR ← X  
     PC ← Y  
     Memory ← MBR

Какое из следующих действий является возможной операцией, выполняемой этой последовательностью?
(A) Извлечение инструкции
(B) Операнд выборки
(С) Условная ветвь
(D) Инициирование службы прерывания

Ответ: (Д)
Объяснение: MBR — регистр буфера памяти (в котором хранятся данные, передаваемые в хранилище непосредственного доступа и из него)

MAR — регистр адреса памяти (который содержит ячейку памяти с данными, к которым требуется доступ)

ПК — счетчик программ (содержит адрес выполняемой в текущий момент инструкции)

1-я инструкция помещает значение ПК в MBR

2-я инструкция помещает адрес X в MAR.

Третья инструкция помещает адрес Y в ПК.

4-я инструкция помещает значение MBR (которое было старым значением ПК) в память.

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

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

В случае условного перехода (как для варианта C) только ПК обновляется с целевым адресом, и нет необходимости сохранять старое значение ПК в памяти.

А в случае извлечения инструкций и операндов (как для опций A и B) значение ПК больше нигде не сохраняется.

Отсюда вариант D.
Тест на этот вопрос

Рекомендуемые посты:

ВОРОТА | GATE CS 2013 | Вопрос 28

0.00 (0%) 0 votes