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

Конве́йер в вычислительной технике, способ организации параллельной обработки процессором команд программы, который основан на разделении процесса обработки команды на несколько этапов (ступеней, стадий конвейера) и выделении для каждого из них отдельного функционального блока аппаратуры. Например, отдельными функциональными блоками реализуются: чтение команды из памяти, декодирование команды и выборка операндов, выполнение операции, запись результата. Результат работы предыдущего функционального блока передаётся на вход следующего. Конвейерную обработку используют для совмещения стадий выполнения разных команд. Производительность при этом возрастает благодаря тому, что одновременно на различных стадиях конвейера выполняются несколько команд. Современные процессоры имеют достаточно длинный конвейер, например процессор UltraSPARC III – 14 стадий, Pentium IV – от 20 до 30. Увеличение длины конвейера позволяет повысить тактовую частоту работы процессора, однако для обеспечения поступления на вход конвейера непрерывного потока команд требуется наличие дополнительной аппаратуры (кэш-память, блок предсказания переходов). Вершиной конвейерных архитектур центрального процессора (ЦП) стали т. н. суперскалярные микропроцессоры, у которых более одного конвейера. Однако при управлении конвейерной обработкой команд часто возникают ситуации, когда в программе встречается команда перехода – тогда конвейер приходится очищать и загружать в него новую порцию команд, начиная с того адреса, куда произошёл переход. Это заметно снижает производительность ЦП, так как переходы – один из наиболее часто исполняемых типов команд (в среднем каждая пятая команда). Для борьбы с этим явлением в суперскалярных ЦП применяется предсказание адресов переходов, заключающееся в опережающей выборке (англ. instruction prefetch) и исполнении процессором команд программы по результатам предсказания адресов переходов, содержащихся в выбранном в текущий момент фрагменте кода. В случае неверного предсказания результат опережающего вычисления, хранящийся в отдельном буфере, аннулируется, и происходит выборка нужной ветви программы. Точность предсказания переходов 90–95 %.

Литература

  • Максимов Н. В. Архитектура ЭВМ и вычислительных систем : учебник / Н. В. Максимов, Т. Л. Партыка, И. И. Попов. – 5-е изд., перераб. и доп. – Москва : Форум : Инфра-М, 2013. – (Профессиональное образование).
  • Струмпэ Н. В. Аппаратное обеспечение ЭВМ : практикум / Н. В. Струмпэ, В. Д. Сидоров. – 5-е изд., стер. – Москва : Академия, 2015. – (Профессиональное образование. Информатика).
  • Таненбаум Э. Архитектура компьютера / Э. Таненбаум, Т. Остин ; [пер. с англ. Е. Матвеев]. – 6-е изд. – Москва : Питер, 2015. – (Классика computer science).
Материалы портала bigenc.ru переданы в ведение АНО «Интернет-энциклопедия «РУВИКИ» на основе лицензионного соглашения. Возможны неточности в отображении материалов. Если у вас возникли вопросы или вы увидели ошибку, пожалуйста, сообщите нам на info@ruwiki.ru