Преимущества:
1.Время цикла процессора уменьшается, таким образом увеличивая скорость обработки инструкций в большинстве случаев.
2.Некоторые комбинационные логические элементы, такие как сумматоры или умножители могут быть ускорены путем увеличения количества логических элементов. Использование конвейера может предотвратить ненужное наращивание количества элементов.
Недостатки:
1.Бесконвейерный процессор исполняет только одну инструкцию за раз. Это предотвращает задержки веток инструкций (фактически, каждая ветка задерживается), и проблемы, связанные с последовательными инструкциями, которые исполняются параллельно. Следовательно, схема такого процессора проще и он дешевле для изготовления.
2.Задержка инструкций в беcконвейерном процессоре слегка ниже, чем в конвейерном эквиваленте. Это происходит из-за того, что в конвейерный процессор должны быть добавлены дополнительные триггеры.
3.У бесконвейерного процессора скорость обработки инструкций стабильна. Производительность конвейерного процессора предсказать намного сложнее, и она может значительно различаться в разных программах.
Примеры
Общий конвейер
Общий четырёхуровневых конвейер; цветные квадраты символизируют независимые друг от друга инструкции
Справа изображён общий конвейер с четырьмя стадиями работы:
1.Получение (англ. Fetch)
2.Раскодирование (англ. Decode)
3.Выполнение (англ. Execute)
4.Запись результата (англ. Write-back)
Верхняя серая область — список инструкций, которые предстоит выполнить. Нижняя серая область — список инструкций, которые уже были выполнены. И средняя белая область является самим конвейером.
Выполнение происходит следующим образом:
Цикл |
|
Действия |
0
Четыре инструкции ожидают исполнения
1 |
|
• Зелёная инструкция забирается из памяти |
|
|
|
|
|
|
|
|
• |
Зелёная инструкция раскодируется |
2 |
|
• |
Фиолетовая инструкция забирается из памяти |
|
|
|
|
|
|
• Зелёная инструкция выполняется (то есть исполняется то действие, которое она |
|
|
|
|
кодировала) |
3 |
|
• |
Фиолетовая инструкция раскодируется |
|
|
• Синяя инструкция забирается из памяти |
|
|
|
|
|
|
|
|
|
|
|
• Итоги исполнения зелёной инструкции записываются в регистры или в память |
|
|
|
• |
Фиолетовая инструкция выполняется |
4 |
|
• |
Синяя инструкция раскодируется |
|
|
• Красная инструкция забирается из памяти |
|
|
|
|
|
|
|
|
|
|
|
• |
Зелёная инструкция завершилась |
|
|
• Итоги исполнения фиолетовой инструкции записываются в регистры или в |
|
5память
•Синяя инструкция выполняется
•Красная инструкция раскодируется
•Фиолетовая инструкция завершилась
6 |
|
• Результаты исполнения синей инструкция записываются в регистры или в память |
|
|
• |
Красная инструкция выполняется |
|
|
|
||
|
|
|
|
|
|
|
|
|
|
• |
Синяя инструкция завершилась |
7 |
|
• |
Итоги исполнения красной инструкции записываются в регистры или в память |
|
|
|
|
|
|
|
|
8 |
|
• |
Красная инструкция завершилась |
|
|
|
|
|
|
|
|
9
Все инструкции были выполнены
