logo search
Кафедра “Системы автоматического управления”

3.2.3. Особенности risc-процессоров.

Реализация первого принципа осуществляется благодаря использованию так называемого конвейера команд. При этом по первому импульсу тактового генератора в соответствующем устройстве выделяется код операции, который затем передается в устройство декодирования; по второму — в устройстве извлечения выделяется код операции следующей команды, а в устройстве декодирования происходит декодирование первой команды и передача ее в соответствующее исполнительное устройство — АЛУ, сопроцессор и т. д. Третий импульс сопровождается извлечением кода операции третьей команды, декодированием второй и подготовкой данных для выполнения первой.

Таким образом, по каждому из тактовых импульсов на конвейер вступает новая команда, и несколько уже обрабатываются на разных его ступенях. Одновременно, также по каждому из тактовых импульсов, его покидает одна выполненная команда. И хотя на выполнение каждой затрачивается по-прежнему от четырех до семи-восьми тактов (в рассмотренном выше условном конвейере — пять), каждый из них сопровождается, как это и требовалось, выполнением одной команды. Следовательно, если для СISC - процессоров конвейер команд является необязательным (хотя и желательным) элементом, то для RISC-процессоров он обязателен. Отметим, что большинство RISC-процессоров имеют не один, а несколько (от двух до четырех) конвейеров, за что они получили название суперскалярных (в отличие от скалярных — одноконвейерных).

Следующая особенность RISC-процессоров— высокая степень дробления конвейера. В рассмотренном выше примере он состоит из пяти ступеней: извлечения кода операции, декодирования, подготовки операндов, исполнения, сохранения результата. Реально RISC-процессоры характеризуются семидесяти ступенчатыми конвейерами. С увеличением числа ступеней действия, выполняемые на каждой из них, все более и более упрощаются. Последнее означает, что уменьшается число необходимых для этого логических элементов и появляется возможность повысить тактовую частоту процессора. Не случайно RISC-процессоры преодолели барьер 100 МГц существенно раньше СISC-процессоров.

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

Еще одна особенность RISC-процессоров — развитые средства прогнозирования ветвлений и переходов. В программах для семейства х86 команда перехода встречается в среднем через каждые шесть, в программах для RISC-процессоров, команды которых проще, — через каждые 10... 12 команд. Встретив команду условного перехода, процессор должен сделать предположение о том, выполнится условие или нет, и в зависимости от этого начать предвыборку команд либо с адреса предполагаемого перехода, либо с адреса, следующего за текущим.

Если переход предсказан неправильно, процессору необходимо удалить со всех ступеней конвейера команды, отноящиеся к неверно сделанному предположению, и перезагрузить конвейер. Это особенно сказывается на работе суперскалярных процессоров — на разных ступенях трех-четырех конвейеров может находиться довольно много команд. Их удаление с последующей перезагрузкой приводит к тому, что в течение нескольких тактов конвейер не покидает ни одна команда. Процессор, в котором это случается часто, теряет 20...30% своей производительности. Поэтому RISC-процессоры характеризуются весьма эффективными механизмами предсказания ветвлений.