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