Конвейерный процессор

Разделение обработки компьютерной инструкции на последовательность независимых стадий с сохранением результатов в конце каждой стадии. Рассмотрение принципов работы тактового генератора. Определение преимуществ и недостатков бесконвейерной архитектуры.

Рубрика Программирование, компьютеры и кибернетика
Вид реферат
Язык русский
Дата добавления 29.06.2017
Размер файла 176,6 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Реферат

Конвейерный процессор

Выполнил Гущин Александр Сергеевич

студент группы 56-205А

Проверил Нечаев Валентин Иванович

Для объяснения этого понятия введем некоторые определения, поясняющие его смысл.

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

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

Простой пятиуровневый конвейер в RISC-процессорах

На иллюстрации справа показан простой пятиуровневый конвейер в RISC-процессорах. Здесь:

· IF (англ. Instruction Fetch) -- получение инструкции,

· ID (англ. Instruction Decode) -- раскодирование инструкции,

· EX (англ. Execute) -- выполнение,

· MEM (англ. Memory access) -- доступ к памяти,

· WB (англ. Register write back) -- запись в регистр.

Вертикальная ось -- последовательные независимые инструкции, горизонтальная -- время. Зелёная колонка описывает состояние процессора в один момент времени, в ней самая ранняя, верхняя инструкция уже находится в состоянии записи в регистр, а самая последняя, нижняя инструкция -- только в процессе чтения.

Сам термин «конвейер» пришел из промышленности, где используется аналогичный принцип работы -- материал автоматически подтягивается по ленте конвейера к рабочему, который осуществляет с н им необходимые действия, следующий за ним рабочий выполняет свои функции над получившейся заготовкой, следующий делает еще что-то, таким образом, к концу конвейера цепочка рабочих полностью выполняет все поставленные задачи, не срывая, однако, темпов производства.

Считается, что впервые конвейерные вычисления были использованы либо в проекте ILLIAC II (англ.en:ILLIAC II), либо в проекте IBM Stretch (англ. en:IBM Stretch). Проект IBM Stretch предложил термины «получение» (англ. «Fetch»), «расшифровка» (англ. «Decode») и «выполнение» (англ. «Execute»), которые затем стали общеупотребляемыми.

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

Тактовый генератор

Многие современные процессоры управляются тактовым генератором. Процессор внутри состоит из логических элементов и ячеек памяти -- триггеров. Когда приходит сигнал от тактового генератора, триггеры приобретают своё новое значение, и «логике» требуется некоторое время для декодирования новых значений. Затем приходит следующий сигнал от тактового генератора, триггеры принимают новые значения, и так далее. Разбивая последовательности логических элементов на более короткие и помещая триггеры между этими короткими последовательностями, уменьшают время, необходимое логике для обработки сигналов. В этом случае длительность одного такта процессора может быть соответственно уменьшена.

Например, простейший конвейер RISC-процессоров можно представить пятью стадиями с наборами триггеров между стадиями:

1. получение инструкции (англ. Instruction Fetch);

2. декодирование инструкции (англ. Instruction Decode) и чтение регистров (англ. Register fetch);

3. выполнение (англ. Execute);

4. доступ к памяти (англ. Memory access);

5. запись в регистр (англ. Register write back).

Конфликт конвейера

При написании кода на языке ассемблера (либо при разработке компилятора, генерирующего последовательность инструкций) делается предположение о том, что выполнение каждой инструкции закончено до начала выполнения следующей инструкции. Использование конвейера сохраняет справедливость этого предположения, однако не обязательно сохраняет порядок выполнения инструкций. Ситуация, когда одновременное выполнение нескольких инструкций может привести к логически некорректной работе конвейера, известна как «конфликт конвейера (англ. pipeline hazard)». Существуют различные методы устранения конфликтов: форвардинг (англ. register forwarding) (иногда называетсяbypass) и другие.

Бесконвейерная архитектура

компьютерный архитектура тактовый конвейерный

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

Процессоры с конвейером внутри устроены так, что обработка инструкций разделена на последовательность стадий, предполагая одновременную обработку нескольких инструкций на разных стадиях. Результаты работы каждой из стадий передаются через ячейки памяти на следующую стадию, и так -- до тех пор, пока инструкция не будет выполнена. Подобная организация процессора, при некотором увеличении среднего времени выполнения каждой инструкции, тем не менее, обеспечивает значительный рост производительности за счёт высокой частоты завершения выполнения инструкций.

Не все инструкции являются независимыми. В простейшем конвейере, где обработка инструкции представлена пятью стадиями, для обеспечения полной загрузки, в то время, пока заканчивается обработка первой инструкции, должно обрабатываться параллельно ещё четыре последовательных независимых инструкции. Если последовательность содержит инструкции, зависимые от выполняемых в данный момент, то управляющая логика простейшего конвейера приостанавливает несколько начальных стадий конвейера, помещая этим самым в конвейер пустую инструкцию («пузырёк»), иногда неоднократно, -- до тех пор, пока зависимость не будет разрешена. Существует ряд приёмов, таких, как форвардинг, значительно снижающих необходимость приостанавливать в таких случаях часть конвейера. Однако зависимость между инструкциями, одновременно обрабатываемыми процессором, не позволяет добиться увеличения производительности кратно количеству стадий конвейера в сравнении с бесконвейерным процессором.

Преимущества и недостатки

Конвейер помогает не во всех случаях. Существует несколько возможных минусов. Конвейер инструкций можно назвать «полностью конвейерным», если он может принимать новую инструкцию каждый машинный цикл. Иначе в конвейер должны быть вынужденно вставлены задержки, которые выравнивают конвейер, при этом ухудшат его производительность.

Преимущества:

1. Время цикла процессора уменьшается, таким образом увеличивая скорость обработки инструкций в большинстве случаев.

2. Некоторые комбинационные логические элементы, такие, как сумматоры или умножители, могут быть ускорены путем увеличения количества логических элементов. Использование конвейера может предотвратить ненужное наращивание количества элементов.

Недостатки:

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

2. Задержка инструкций в бесконвейерном процессоре слегка ниже, чем в конвейерном эквиваленте. Это происходит из-за того, что в конвейерный процессор должны быть добавлены дополнительные триггеры.

3. У бесконвейерного процессора скорость обработки инструкций стабильна. Производительность конвейерного процессора предсказать намного сложнее, и она может значительно различаться в разных программах.

Примеры

Общий конвейер

Общий четырёхуровневых конвейер; цветные квадраты символизируют независимые друг от друга инструкции

Справа изображён общий конвейер с четырьмя стадиями работы:

1. Получение (англ. Fetch)

2. Раскодирование (англ. Decode)

3. Выполнение (англ. Execute)

4. Запись результата (англ. Write-back)

Верхняя серая область -- список инструкций, которые предстоит выполнить. Нижняя серая область -- список инструкций, которые уже были выполнены. И средняя белая область является самим конвейером.

Выполнение происходит следующим образом:

Цикл

Действия

0

Четыре инструкции ожидают исполнения

1

· Зелёная инструкция забирается из памяти

2

· Зелёная инструкция раскодируется

· Фиолетовая инструкция забирается из памяти

3

· Зелёная инструкция выполняется (то есть исполняется то действие, которое она кодировала)

· Фиолетовая инструкция раскодируется

· Синяя инструкция забирается из памяти

4

· Итоги исполнения зелёной инструкции записываются в регистры или в память

· Фиолетовая инструкция выполняется

· Синяя инструкция раскодируется

· Красная инструкция забирается из памяти

5

· Зелёная инструкция завершилась

· Итоги исполнения фиолетовой инструкции записываются в регистры или в память

· Синяя инструкция выполняется

· Красная инструкция раскодируется

6

· Фиолетовая инструкция завершилась

· Результаты исполнения синей инструкции записываются в регистры или в память

· Красная инструкция выполняется

7

· Синяя инструкция завершилась

· Итоги исполнения красной инструкции записываются в регистры или в память

8

· Красная инструкция завершилась

9

Все инструкции были выполнены

«Пузырёк»

Пузырек в третьем такте обработки задерживает исполнение

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

Очевидно, что наличие пузырька в конвейере даёт суммарное время исполнения в 8 тактов вместо 7 на схеме исполнения, показанной выше.

Исполнительные устройства должны выполнять какое-то действие на каждом такте. Пузырьки являются способом создания задержки при обработке инструкции без прекращения работы конвейера. При их выполнении не происходит полезной работы на стадиях выборки, декодирования, исполнения и записи результата. Они могут быть выражены при помощи инструкции.

Пример 1

Допустим, типичная инструкция для сложения двух чисел -- это СЛОЖИТЬ A, B, C. Эта инструкция суммирует значения, находящиеся в ячейках памяти A и B, а затем кладет результат в ячейку памяти C. В конвейерном процессоре контроллер может разбить эту операцию на последовательные задачи вида

ЗАГРУЗИТЬ A, R1

ЗАГРУЗИТЬ B, R2

СЛОЖИТЬ R1, R2, R3

ЗАПИСАТЬ R3, C

загрузить следующую инструкцию

Ячейки R1, R2 и R3 являются регистрами процессора. Значения, которые хранятся в ячейках памяти, которые мы называем A и B, загружаются (то есть копируются) в эти регистры, затем суммируются, и результат записывается в ячейку памяти C.

В данном примере конвейер состоит из трех уровней -- загрузки, исполнения и записи. Эти шаги называются, очевидно, уровнями или шагами конвейера.

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

Конвейер не уменьшает время, которое необходимо для того, чтобы выполнить инструкцию, но зато он увеличивает объём (число) инструкций, которые могут быть выполнены одновременно, и таким образом уменьшает задержку между выполненными инструкциями -- увеличивая т. н. пропускную способность. Чем больше уровней имеет конвейер, тем больше инструкций могут выполняться одновременно и тем меньше задержка между завершенными инструкциями. Каждый микропроцессор, произведенный в наши дни, использует как минимум двухуровневый конвейер.

Пример 2

Теоретический трёхуровневый конвейер:

Шаг

Англ. название

Описание

Выборка

Fetch

Прочитать инструкцию из памяти

Исполнение

Execute

Исполнить инструкцию

Запись

Write-back

Записать результат в память и/или регистры

Псевдоассемблерный листинг, который нужно выполнить:

ЗАГРУЗИТЬ 40, A ; загрузить число 40 в A

КОПИРОВАТЬ A, B ; скопировать A в B

СЛОЖИТЬ 20, B ; добавить 20 к B

ЗАПИСАТЬ B, 0x0300 ; записать B в ячейку памяти 0x0300

Как это будет исполняться:

Такт

Выборка

Исполнение

Запись

Пояснение

Такт 1

ЗАГРУЗИТЬ

Инструкция ЗАГРУЗИТЬ читается из памяти.

Такт 2

КОПИРОВАТЬ

ЗАГРУЗИТЬ

Инструкция ЗАГРУЗИТЬ выполняется, инструкция КОПИРОВАТЬ читается из памяти.

Такт 3

СЛОЖИТЬ

КОПИРОВАТЬ

ЗАГРУЗИТЬ

Инструкция ЗАГРУЗИТЬ находится на шаге записи результата, где её результат (то есть число 40) записывается в регистр А. В это же время инструкция КОПИРОВАТЬ исполняется. Так как она должна скопировать содержимое регистра A в регистр B, она должна дождаться окончания инструкции ЗАГРУЗИТЬ.

Такт 4

ЗАПИСАТЬ

СЛОЖИТЬ

СКОПИРОВАТЬ

Загружена инструкция ЗАПИСАТЬ, тогда как инструкция СКОПИРОВАТЬ прощается с нами, а по инструкции СЛОЖИТЬ в данный момент производятся вычисления.

И так далее. Следует учитывать, что иногда инструкции будут зависеть от итогов других инструкций (например, как наша инструкция КОПИРОВАТЬ). Когда более, чем одна инструкция ссылается на определённое место, читая его (то есть используя в качестве входного операнда) либо записывая в него (то есть используя его в качестве выходного операнда), исполнение инструкций не в порядке, который был изначально запланирован в оригинальной программе, может повлечь за собой «конфликт конвейера (англ. hazard)» (о чём упоминалось выше). Существует несколько зарекомендовавших себя приёмов либо для предотвращения конфликтов, либо для их исправления, если они случились.

Трудности

Множество схем включают в себя конвейеры в 7, 10 или даже 20 уровней (как, например, в процессоре Pentium 4). Поздние ядра Pentium 4 с кодовыми именами Prescott и Cedar Mill (и их Pentium D-производные) имеют 31-уровневый конвейер. Процессор Xelerator X10q имеет конвейер длиной более, чем в тысячу шагов[6]. Обратной стороной медали в данном случае является необходимость сбрасывать весь конвейер в случае, если ход программы изменился (например, по условному оператору). Эту проблему пытаются решатьпредсказатели переходов. Предсказание переходов само по себе может только усугубить ситуацию, если предсказание производится плохо. В некоторых областях применения, таких, как вычисления на суперкомпьютерах, программы специально пишутся так, чтобы как можно реже использовать условные операторы, поэтому очень длинные конвейеры весьма позитивно скажутся на общей скорости вычислений, так как длинные конвейеры проектируются так, чтобы уменьшить CPI (англ. clocks per instruction, количество тактов на инструкцию). Если ветвление происходит постоянно, перестановка машинных инструкций таким образом, чтобы те инструкции, которые, скорее всего, понадобятся, были размещены в конвейере, может значительно уменьшить потери скорости по сравнению с необходимостью каждый раз полностью сбрасывать конвейер.Некоторые программы могут использоваться для того, чтобы определять, как часто отдельные ветки исполняются на самом деле, используя технологию, известную как анализ покрытия кода (англ. code coverage analysis), хотя на практике подобный анализ является последней мерой при оптимизации.

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

Если процессор оснащён конвейером, код, читаемый из памяти, не выполняется сразу, а помещается в очередь (очередь предвыборки, prefetch input queue). Если код, содержащийся в памяти, будет изменён, код, содержащийся очереди конвейера, останется прежним. Также не изменятся инструкции, находящиеся в кэше инструкций. Стоит учитывать, что данная проблема характерна только для самомодифицирующихся программ и упаковщиков исполняемых файлов.

Источники

1. Raъl Rojas. The First Computers: History and Architectures. MIT Press, 2002. С. 249. 472 с. I SBN 0-262-68137-4.

2. Harvey G. Cragon. Memory Systems and Pipelined Processors. Jones and Bartlett Learning, 1996. С. 289. 575 с. ISBN 0-86720-474-5.

3. Статья по конвейерам (англ.) на ArsTechnica.

4. Архитектура процессора с противоточным конвейером (англ.).

Влияние длины конвейера. Исследование эффективности ALU и FPU процессоров разных поколений от TestLabs.kz.

Размещено на Allbest.ru

...

Подобные документы

  • Структура процессора Pentium, суперскалярность, основные особенности архитектуры. Организация конвейера команд, правила объединения. Дополнительные режимы работы процессора. Источники аппаратных прерываний. Формат ММХ команды. Процессор Pentium 4, схемы.

    лекция [4,0 M], добавлен 14.12.2013

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

    реферат [22,5 K], добавлен 05.02.2011

  • Микропроцессоры с архитектурой Complex Instruction Set Computers. Развитие архитектуры IA-32 в семействе Pentium. Параллельные конвейеры обработки. Усовершенствованный блок вычисления с плавающей точкой. Технология динамического предсказания ветвлений.

    презентация [220,4 K], добавлен 11.12.2013

  • Режимы компьютерной обработки данных. Централизованный, децентрализованный, распределенный и интегрированный способы обработки данных. Средства обработки информации. Типы ведения диалога, пользовательский интерфейс. Табличный процессор MS Excel.

    курсовая работа [256,9 K], добавлен 25.04.2013

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

    курсовая работа [59,7 K], добавлен 29.06.2011

  • Анализ корпоративных сетей, определение их преимуществ и недостатков: ASmallWorld, Decayenne и Evrika. Структура web-приложения, методика и принципы его разработки, оценка практической эффективности. База данных и административная, логическая часть.

    дипломная работа [837,6 K], добавлен 03.02.2015

  • Рассмотрение архитектуры персонального компьютера, представленной Нейманом в 1945 году. История появления и функциональное назначение первых процессоров. Технология производства устройства и его основные характеристики - разрядность и тактовая частота.

    презентация [2,0 M], добавлен 06.11.2011

  • Последовательность описания класса "Процессор", содержащего сведения о марке, тактовой частоте, объеме кэша и стоимости. Использование главной функции main, обеспечивающей всю необходимую и правильную работу программы. Ее алгоритм, интерфейс и листинг.

    курсовая работа [544,2 K], добавлен 27.11.2013

  • История появления и основные понятия графического дизайна. Выявление главных преимуществ и недостатков недеструктивной обработки изображений. Сравнение деструктивной и недеструктивной обработки изображений. Сущность и особенности двухмерной графики.

    реферат [5,2 M], добавлен 05.05.2023

  • Классификация и типы систем охлаждения процессора, их отличительные особенности, оценка главных преимуществ и недостатков: фреоновая, азотная, углекислотная, на тепловых трубках, водная, воздушная. Создание систем фреонового охлаждения, принципы и этапы.

    курсовая работа [3,9 M], добавлен 22.04.2012

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

    контрольная работа [259,8 K], добавлен 22.05.2010

  • Программы работы с текстами: MS-DOS Editor, Word Pad, блокнот, word, текстовый процессор. Редакторы для обработки документов. Стили форматирования. Двоичное кодирование текстовой информации в компьютере. Операции технологического процесса ее обработки.

    курсовая работа [324,0 K], добавлен 25.04.2013

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

    курсовая работа [27,4 K], добавлен 18.05.2013

  • Изучение структуры компьютера и принципов его функционирования. Центральный процессор и основной цикл его работы. Выполнение арифметических операций в ЭВМ. Разработка программы реализации арифметического выражения и отладка ее с помощью отладчика TD.

    контрольная работа [87,3 K], добавлен 12.03.2011

  • Компьютер как электронный прибор, предназначенный для автоматизации создания, хранения, обработки и транспортировки данных. Общая характеристика основных составных частей персонального компьютера: процессор, память. Анализ схемы обработки информации.

    контрольная работа [882,0 K], добавлен 02.05.2013

  • Структура блока обработки данных, синтез операционного и управляющего автоматов с микропрограммируемой логикой в структурном базисе комплекта 1804. Разработка алгоритма регенерации динамического ЗУ, особенности интерфейса шины процессор – память ISA.

    курсовая работа [3,3 M], добавлен 23.12.2014

  • Анализ работы менеджера по продажам. Определение недостатков существующей системы обработки информации. Обоснование необходимости разработки информационной системы. Выбор варианта реализации задач автоматизации. Разработка пакета прикладных программ.

    курсовая работа [49,3 K], добавлен 20.02.2012

  • Структурная схема компьютера. Основные характеристики процессора - устройства, предназначенного для обработки информации и управления процессом обработки. Способы хранения информации. Описание, назначение и принципы работы устройств ввода и вывода данных.

    презентация [862,1 K], добавлен 20.07.2011

  • Поэтапное исследование процесса компьютерной верстки газеты. Обзор некоторых программ для верстки газет, оценка их преимуществ и недостатков. Краткая характеристика издательских пакетов. Сравнительный анализ и критерии выбора PageMaker и QuarkXPress.

    дипломная работа [63,5 K], добавлен 12.07.2010

  • Описание программы, реализующей различные операции над строковыми типами данных, а также методы их обработки для получения заданных в задании результатов. Требования к программному продукту. Процедура проверки сохранения данных программы перед закрытием.

    курсовая работа [1,1 M], добавлен 26.02.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.