Опубликован: 03.03.2010 | Уровень: специалист | Доступ: свободно | ВУЗ: Национальный исследовательский ядерный университет «МИФИ»
Лекция 9:

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

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Аннотация: Цель лекции: изучение принципов конвейерной организации работы микропроцессоров, влияния конфликтов на работу конвейера и способов уменьшения этого влияния.
Ключевые слова: процессор, ПО, команда, конвейерная обработка, instruction fetch, instruction decoder, декодирование, operand, затраты, TID, дополнительные расходы, время такта, время выполнения, анализ, быстродействие, такт конвейера, операции, pentium, длина конвейера, тактовая частота, место, реальная производительность, аппаратные средства, этапы выполнения команды, pipeline bubble, конфликт, запоминающее устройство, запись, память, память данных, схема доступа, itanium, АЛУ, параллельная обработка, суперскалярность, буфер, тип команды, производительность, конвейеризация, команды переходов, значение, счетчик команд, условный переход, адрес, компилятор, слот, микропроцессор, определение, исполнение, аннулирование, bogus, Instruction, безусловный переход, BTB, branch, прерывание, RAW, data forwarding, bypassing, circuit, устройство управления, внутренние команды, граф, pipeline scheduling, поток команд, instruction scheduling, RA, операнд, последовательность операторов, переменная, регистр, программа, register renaming, таблица, логический, микрокоманда, очередь, файл, идеальный конвейер

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

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

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

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

  1. IF ( INsTRuction Fetch ) - считывание команды в процессор;
  2. ID ( INsTRuction DecodINg ) - декодирование команды;
  3. OR ( Operand ReadINg ) - считывание операндов;
  4. EX ( ExecutINg ) - выполнение команды;
  5. WB ( Write Back ) - запись результата.

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

Таблица 9.1. Порядок выполнения команд в 5-ступенчатом конвейре
Команда Такт
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 единиц, получим время такта:

T=max\{\,{T_{IF}=20 ,T_{ID}=15, T_{OR}=20, T_{EX}=25 ,T_{WB}=20\,\}+\Delta{t}=30

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

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

T_{посл}=N\times(T_{IF}+T_{ID}+T_{OR}+T_{EX}+T_{WB})=100N

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

T_{конв}=5T+(N-1)\times{T}

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

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

Таблица 9.2. Оценка эффективности конвейерной обработки
Количество команд Время
при последовательном выполнении при конвейерном выполнении
1 100 150
2 200 180
10 1000 420
100 10000 3120

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

< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Владислав Салангин
Владислав Салангин

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

Михаил Королёв
Михаил Королёв

Сергей Латин
Сергей Латин
Киргизстан