Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OtvetyGOS_1_60.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.19 Mб
Скачать
  1. Операції переходу і розгалуження, їхня реалізація.

Як відмічалося, всередині мікропрограм CISC-команд, що виконуються існує безліч переходів і розгалужень. Перехід - це зміна послідовності виконання команди, яка може бути пов'язана з додатковою інформацією (ознакою стану або умовою). Такий перехід називається умовним. Існують і безумовні переходи, явно обумовлені логікою мікропрограм. Як ті, так і інші переходи займають при виконанні команд певний час.

У процесорі Pentium застосовується спеціальний буфер прогнозування розгалужень (ВТВ, branch target buffer) на 256 позицій, що відстежує і що зберігає дані про результати 256 останніх розгалужень. Буфер – це місце для зберігання якої-небудь інформації, частіше за все буфери організовуються для вирівнювання швидкостей між двома, різними по швидкодії пристроями.

Спираючись на цю інформацію процесор намагається передбачити станеться або не станеться перехід. Зустрівши команду умовного переходу (по коду операції поля команди) процесор робить припущення про шлях розгалуження, яке може бути істинним (true) або помилковим (false). Процесор починає виконання команди не спочатку, а з передбаченої адреси мікрокоманди переходу у відповідності зі своїм припущенням Може забезпечуватися декілька рівнів прогнозування До остаточної ствердної відповіді на питання про перехід процесор не здійснює ніяких модифікацій своїх регістрів і ОЗП. У разі неправильного припущення всі установки команди відміняються, а буфер очищається, що помітно знижує продуктивність процесора.

(рус.)

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

В процессоре Pentium применяется специальный буфер прогнозирования ветвлений (ВТВ, branch target buffer) на 256 позиций, отслеживает и сохраняет данные о результатах 256 последних разветвлений. Буфер - это место для хранения какой-либо информации, чаще всего буфера организуются для выравнивания скоростей между двумя, различными по быстродействию устройствами.

Опираясь на эту информацию процессор пытается предсказать произойдет или не произойдет переход. Встретив команду условного перехода (по коду операции поля команды) процессор делает предположение о пути разветвления, которое может быть истинным (true) или ложным (false). Процессор начинает выполнение команды не сначала, а с предусмотренной адреса микрокоманды перехода в соответствии со своим предположением может обеспечиваться несколько уровней прогнозирования До окончательной утвердительного ответа на вопрос о переходе процессор не осуществляет никаких модификаций своих регистров и ОЗУ. В случае неправильного предположения все установки команды отменяются, а буфер очищается, что заметно снижает производительность процессора.

Команды перехода

Переходы нужны для того, чтобы отойти от последовательного выполнения программы и начать выполнение какого-либо блока с другого места. В значительной степени эти команды эквивалентны командам БЕЙСИКа GO TO.

Переходы бывают:

· условные и безусловные;

· относительные и абсолютные.

Условный переход выполняется (или не выполняется) в зависимости от того, выполняется или нет какое-либо условие. Аналогичная конструкция БЕЙСИКа выглядит так:

IF ......... THEN GO TO ...........

Безусловный переход выполняется всегда, когда он встречается в программе. Он не связан никакими условиями.

Абсолютный переход выполняется в заданный адрес. Адрес (двухбайтный) задается после кода операции.

Относительный переход выполняется на сколько-то шагов вперед или назад от адреса, в котором стоит команда, следующая за командой перехода. Здесь диапазон возможных переходов ограничен. Он может составлять от -128 до +127 байтов и называется смещением. Однобайтная величина смещения s задается вслед за кодом операции. Она всегда задана в дополнительной двоичной форме.

Мнемоники команд абсолютного перехода всегда начинаются с JP (jump - скачок), а относительного перехода - с JR (jump relative - скачок относительный).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]