Смагин М.С. Вычислительные машины, системы и сети (1088253), страница 8
Текст из файла (страница 8)
К данному типу относятсяпроцессоры, в которых на аппаратном уровне реализованы сложные арифметические и логические операции. Их отличительными особенностями являются:• Кодирование сложных арифметических и логических операций в однойинструкции;• Малое количество регистров, каждый из которых выполняет строго определённую функцию;• Различная длина и время выполнения команд..Конкуренция этих двух концепций архитектуры началась в 70-х годахпрошлого века и продолжалась практически до полного исчезновения представителей обеих конкурирующих сторон.
В настоящее время практическине осталось процессоров с полностью RISC или полностью CISC архитектурой. Разработчики данных архитектур постоянно заимствовали друг у другаидеи, и в результате, большинство современных процессоров являются гибридными с большим или меньшим уклоном в сторону одной из философий.50Процессоры Intel и AMD, используемые в IBM-совместимых персональныхкомпьютерах, представляют собой RISC-оболочку с CISC-ядром.
То есть,программист работает с инструкциями из расширенного набора, которые потом автоматически преобразуются в поток простейших инструкций дляRISC-ядра.Ещё одним случаем МКМД-систем являются конвейерные системы. Втаких системах функциональные элементы, например АЛУ, расположены непараллельно, а последовательно.Рис.22 Пример двухступенчатой конвейерной организациифункционального блока51Каждый функциональный элемент выполняет одну возложенную нанего операцию. В результате получается, что процессор выполняет одновременно несколько команд, но каждая из команд находится на своей стадиивыполнения.Следует заметить, что в современных процессорах конвейеризуется работа не только функционального блока, но и блока управления.
Поэтому вбольшинстве современных процессоров конвейеры разбиты на следующиеступени: извлечения команды, декодирования команды, вычисления адресовоперандов, извлечения операндов, выполнения команд и записи результатов.Рассмотрим пример, когда на вход четырёхступенчатого конвейера последовательно поступают команды. Опишем процесс его работы в виде таблицы, строки которой будут соответствовать различным ступеням конвейераот 1 до 4, а столбцы – моментам времени Tx.
На вход конвейера последовательно поступают команды начиная с команды С1. Обозначим на пересечении строки и столбца момент времени, когда команда, соответствующаястроке, проходит ступень конвейера, соответствующую столбцу. Будем исходить из того, что в нулевой момент времени конвейер был пуст1234Т1Т2Т3Т4Т5Т6Т7Т8С1С2С3С4С5С6С7С8С1С2С3С4С5С6С7С1С2С3С4С5С6С1С2С3С4С5В момент времени Т1 на первую ступень конвейера поступила командаС1.
В момент времени Т2 она перешла на вторую ступень конвейера, а напервую в это время поступила команда С2. В момент времени Т4 команда С1будет на последней ступени конвейера, а на первую уже поступит командаС4. С момента T4, когда все ступени конвейера заполнятся, он начинает работать с максимальной эффективностью. Таким образом, конвейер позволяет52параллельно обрабатывать столько команд, сколько ступеней в конвейере.Т.е. чем больше ступеней в конвейере, тем выше его эффективность.Но представим теперь, что команда С5 была командой перехода, которая требует после себя выполнения, например, команды С125.
Получается, чтовся работа по обработке команд С6, С7 и С8 была проделана зря, и конвейернеобходимо перезагружать. Получается, что чем короче конвейер, тем меньше потери от непроизводительной работы и тем реже его приходится перезагружать. Представим такую ситуацию на таблице.1234Т1Т2Т3Т4Т5Т6Т7Т8T9С1С2С3С4С5С6С7С8C125С1С2С3С4С5С6С7С1С2С3С4С5С6С1С2С3С4С5Как видно, выполнение команды С5 приводит к очистке всех ступенейконвейера и его повторному запуску.
Как видно, работа по выполнению команд С6, С7 и С8 проделывалась впустую.Налицо два противоречивых требования. С одной стороны, число ступеней конвейера должно быть как можно больше, а с другой, − как можноменьше.Задача выбора количества ступеней конвейера является одной из наиболее важных при разработке конвейерных вычислительных устройств.
Какпоказывают статистические исследования, оптимальной считается длинаконвейера от 6 до 9 ступеней. Для повышения эффективности использованияконвейерных систем используются такие дополнительные приёмы, как изменение порядка следования операций и предсказание переходов.Для случая, описанного выше, сброса и перезагрузки конвейера можноизбежать, если команду С5 поставить между командами С1 и С2. Тогда к моменту, когда команда перехода будет обработана на четырёхступенчатом53конвейере, на его вход поступит команда C4, а следом за ней уже пойдёт команда, на которую совершён переход. В результате нет потерь от ненужнойработы и не нужно тратить время на сброс и повторную загрузку конвейера.На таблице эта ситуация будет выглядеть так.1234Т1Т2Т3Т4Т5Т6Т7С1С5С2С3С4С1С5С2С3С4С1С5С2С3С4С1С5С2С3Т8T9С125 С126 С127 C128С125 С126 С127С125 С126С4С125Возникает логичный вопрос, − а кто, собственно, будет анализироватькод программы на предмет поиска участков, где изменение порядка выполнения операций приведёт к росту эффективности использования процессора?В зависимости от типа, к которому относится микропроцессор, эти задачи будут решаться по-разному.
В RISC-процессорах такой анализ, как правило, отдаётся на откуп программисту. Иными словами, программист долженпомнить, сколько ступеней в конвейере используемого им процессора, и располагать операторы перехода в тексте программы так, чтобы обеспечиватьмаксимальную загрузку конвейера. В CISC-процессорах, такой анализ выполняется автоматически в блоке управления.К сожалению, изменение порядка следования операций возможно далеко не всегда. Нередки ситуации, когда переход выполняется по определённому условию, анализ которого осуществляется непосредственно перед осуществлением перехода, и результат этого анализа никак нельзя узнать заранее.
Вот здесь и вступает в действие механизм предсказания переходов.Обнаружив в потоке поступающих команд команду условного перехода, блок управления пытается угадать, будет ли осуществлён переход илинет, и соответственно, загружает в конвейер либо команду, следующую заоператором перехода, либо команду из той точки, куда осуществляется пере54ход. Если он угадывает правильно, − сброса конвейера не происходит и получается выигрыш в производительности. Если неправильно, – конвейерсбрасывается и результат ничем не отличается от того, который был бы, еслибы блока предсказания переходов не было. Закономерность, в соответствии скоторой производится угадывание, называют дисциплиной предсказания переходов.Дисциплин предсказания переходов разработано довольно много, рассмотрим основные из них по мере повышения эффективности предсказания.1.
Принимать одинаковое решение во всех случаях.Т.е. априори считать, что любой условный переход, имеющийся в тексте программы, обязательно выполнится или обязательно не выполнится.Статистические исследования показали, что при обработке команд условногоперехода, переход осуществляется более чем в половине случаев. Так чтоэффективность подобного подхода составляет более 50 процентов.2. Принимать решение случайным образом.При всей кажущейся абсурдности этой стратегии, она довольно эффективна и обеспечивает правильное предсказание в 60-70 процентах случаев.3.
Принимать решение на основе предварительного статистическогоанализа.В этом случае, на этапе разработки новой модели процессора, проводятся статистические исследования по опыту эксплуатации предыдущих моделей. В ходе исследований устанавливается, по каким командам переходачаще выполняются переходы, а по каким – нет. По результатам анализа, блокпредсказания переходов проектируется так, что при обнаружении команд, покоторым переход осуществляются более, чем в половине случаев, переходпредсказывается всегда, а при обнаружении команд, переход выполняетсяменее, чем в половине случаев – всегда предсказывается отсутствие перехода. Иными словами, для одних команд перехода всегда будет приниматьсярешение о переходе, а для других, − всегда нет.
Такая дисциплина позволяетуспешно предсказывать переходы приблизительно в 75 процентах случаев.554. Принимать решение на основе анализа предыстории.В этом случае анализируется не только текущая, но и несколько предыдущих команд перехода. При первой обработке команды перехода, ей всоответствие ставится однобитовый флаг, который устанавливается илисбрасывается в зависимости от того, выполнился переход или нет. Когда этакоманда перехода повторно поступает на выполнения, блок предсказания переходов анализирует этот флаг и выполняет то же действие, которое быловыполнено в предыдущий раз.
Т.е. если в предыдущий раз переход был осуществлён, то он будет осуществлён и в этот раз, если же перехода не произошло, то блок предсказания снова предсказывает отсутствие перехода. Современные микропроцессоры, как правило, используют для предсказания переходов несколько бит, что позволяет учитывать не один, а несколько случаев обработки операции перехода. Такие методы позволяют предсказыватьпереходы с точностью более 90 процентов.56Лекция №5Основная память вычислительных устройствКонцепция иерархии памятиКогда мы говорили о принципах фон Неймана, в соответствии с которыми строится большинство современных ЭВМ, мы упомянули, в частности,принцип программного управления работой вычислительной машины.
Сутьего в том, что процесс работы вычислительной машины заключается в выполнении набора команд, именуемого программой. Данный набор записывается заранее и хранится в виде, пригодном для восприятия вычислительноймашиной. Данный принцип получил также название «Концепция хранимойпрограммы».Данная концепция является одной из основополагающих в историиразвития вычислительных средств.
Её идея появилась, как и многие другие, впроцессе поиска возможностей уменьшить время, в течение которого процессор не выполняет полезной работы. Каким бы быстрым ни был процессор,если он будет выполнять отдельные инструкции, подаваемые пользователем,он будет работать со скоростью пользователя. Однако, следует сказать, естьвычислительные машины, не соответствующие концепции хранимой программы, например калькуляторы.В процессе исследований и эксплуатации устройств, выполняющихфункции основной памяти, были установлены основные требования, предъявляемые к ним:• высокая скорость доступа к данным;• большой объём;• простота устройства;• энергонезависимость;• дешевизна в расчёте на единицу хранения;• портативность.57Запоминающих устройств, которые бы соответствовали всем этим требованиям, пока не придумали.