Курс лекций по вычислительной технике

       

Наличие такого конвейера позволяет повысить производительность в раз (в идеальном случае)


Создание конвейера осложняется следующими обстоятельствами:

длительность этапов может быть различной

-        результат предыдущей операции используется в качестве  операнда в последующей  (например,   результат команды «К»  должен быть использо­ван в качестве источника в команде «К+3») или  команда «К» является пере­дачей управления, то есть после  неё должна следовать команда К+М. 

-        в программе нарушается линейность, т.е.  появляются  ветвления (пе­реходы):  команда «К» является передачей управления, то есть после  неё должна следовать команда К+М. 

-        в некоторых операциях присутствуют не все этапы.

Эти проблемы решаются либо компилятором, который старается вы­страивать команды в порядке наиболее удобном для конвейера и при необхо­димости вставляет команды холостого хода, либо аппаратно.

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

Тем не менее, введение пятистадийного конвейера в Интел 486 позволило, по сравнению с Интел 386, повысить тактовую частоту в три раза, а время выполнения команд (в тактах) – сократить  вдвое.

Дальнейшим развитием конвейеризации  является  использование  не­скольких устройств обработки с собственным конвейером,  так называемая,  разнесен­ная архитектура. В простейшем случае это введение дополнительных сопро­цессоров, каждый  из которых управляется собственным потоком команд. Например, адресный процессор и процессор с плавающей запятой. Не вдава­ясь в подробности, метод предполагает наличие нескольких конвейеров дан­ных:  очередь  адресов чтения и записи, очередь данных чтения и записи. Проблема расщепления программы на отдельные ветви для  каждого

про­цессора решается компилятором или посредством  специальной  аппаратуры расщепле­ния.


Например, начиная с Р2 реализована концепция динамического выполнения команд, которая реализуется  тремя концепциями: предсказания переходов, динамическом анализе потока данных и спекулятивном выполнении команд.

Концепция предсказания  переходов заключается в том, что при появ­лении в потоке команд операций ветвления в конвейер загружается наиболее вероятная ветвь.



Стратегии предсказания переходов подразделяют на статическое предсказание и динамическое предсказание.

Статическое предсказание закладывается на стадии компи­ляции.

-      Никогда

-      Всегда

-      Всегда первый в цикле

-      Никогда, если не первый в цикле

-      Наиболее вероятные переходы (по статистике тестовых задач).

-      По виду перехода (>0, <0, =0 и т.д.)

-      По направлению перехода (вперёд  - назад)

Динамическое предсказание переходов основывается на запоминании истории событий.



что переход

не будет

">


что переход

будет

">Например, может описываться конечным автоматом  с   двумя (или более) состояниями.

1                                 0                                                                                             Не был                                                                                                              Был

                Был                                                                                                  

                                                                                 не был               

Концепция динамического анализа потока данных заключается в част­ности в том, что производится выборка тех данных из памяти, которые  по­требуются  позже, пока, например, выполняются предыдущие операции над регистрами.

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

Реализация концепций динамического выполнения команд  обеспечи­вает более полную загрузку процессора и соответственно позволяет получить большую производительность.

        


Содержание раздела