Лекция 14 Конвейерная организация микропроцессора



Цели лекции:

Изучение принципов конвейерной организации работы микропроцессоров, влияния конфликтов на работу конвейера и способов уменьшения этого влияния.

 

Конвейерная организация работы микропроцессора

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

В различных процессорах количество и суть этапов различаются.

Рассмотрим принципы конвейерной обработки информации на примере пятиступенчатого конвейера, в котором выполнение команды складывается из следующих этапов:

1) IF ( INsTRuction Fetch ) - считывание команды в процессор;

2) ID ( INsTRuction DecodINg ) - декодирование команды;

3) OR ( Operand ReadINg ) - считывание операндов;

4) EX ( ExecutINg ) - выполнение команды;

5) WB ( Write Back ) - запись результата.

Выполнение команд в таком конвейере представлено втаблице 14.1

 

Таблица 14.1 - Порядок выполнения команд в пяти-ступенчатом конвейре

 

Команда

Такт

1 2 3 4 5 6 7 8 9
i IF ID OR EX WB        
i+1   IF ID OR EX WB      
i+2     IF ID OR EX WB    
i+3       IF ID OR EX WB  
i+4         IF ID OR EX WB

Оценка производительности идеального конвейера

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

Пусть для выполнения отдельных стадий обработки требуются следующие затраты времени (в некоторых условных единицах):

TIF = 20, TID = 15, TOR = 20, TEX = 25, TWB = 20.

Тогда, предполагая, что дополнительные расходы времени составляют t = 5 единиц, получим время такта:

Оценим время выполнения одной команды и некоторой группы команд при последовательной и конвейерной обработке.

При последовательной обработке время выполнения N команд составит:

Анализ таблицы 14.1 показывает, что при конвейерной обработке после того, как получен результат выполнения первой команды, результат очередной команды появляется в следующем такте работы процессора. Следовательно:

Примеры длительности выполнения некоторого количества команд при последовательной и конвейерной обработке приведены в таблице 14.2

Очевидно, что при достаточно длительной работе конвейера его быстродействие будет существенно превышать быстродействие, достигаемое при последовательной обработке команд. Это увеличение будет тем больше, чем меньше длительность такта конвейера и чем больше количество выполненных за рассматриваемый период команд. Сокращение длительности такта может достигаться разбиением выполнения команды на большое число этапов, каждый из которых включает в себя относительно простые операции и поэтому будет выполняться за более короткий промежуток времени. Так, если в микропроцессоре Pentiumдлина конвейера составляла 5 ступеней (при максимальной тактовой частоте 200 МГц), то в процессорах Pentium 4 на ядре Northwood длина конвейера составляла 20 ступеней, а на ядре Prescott она увеличена до 31 ступени при максимальной тактовой частоте 3,8 ГГц.

 

Таблица 14.2 - Оценка эффективности конвейерной обработки

Количество команд

Время

при последовательном выполнении при конвейерном выполнении
1 100 150
2 200 180
10 1000 420
100 10000 3120

 

Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом в установившемся режиме, то есть без перезагрузки конвейера. Наличие конфликтов в конвейере и его перезагрузки снижают реальную производительность конвейера по сравнению с идеальным случаем.

 


Дата добавления: 2019-09-13; просмотров: 327; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!