Рубрики

Компьютерная организация и архитектура | Трубопроводы | Набор 1 (выполнение, этапы и пропускная способность)

Для повышения производительности процессора у нас есть два варианта:
1) Улучшение аппаратного обеспечения путем введения более быстрых схем.
2) Расположите оборудование таким образом, чтобы одновременно можно было выполнить более одной операции.

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

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

Давайте посмотрим на реальный пример, который работает над концепцией конвейерной работы. Рассмотрим завод по упаковке бутылок с водой. Пусть пройдут 3 этапа, через которые должна пройти бутылка: вставьте бутылку ( I ), заполните водой бутылку ( F ) и запечатайте бутылку ( S ). Давайте рассмотрим эти этапы как этап 1, этап 2 и этап 3 соответственно. Пусть каждый этап занимает 1 минуту, чтобы завершить свою работу.
Теперь при работе без трубопровода бутылка сначала вставляется в установку, а через 1 минуту она перемещается на стадию 2, где вода наполняется. Теперь на этапе 1 ничего не происходит. Аналогично, когда бутылка перемещается на стадию 3, и стадия 1, и стадия 2 простаивают. Но при конвейерной работе, когда бутылка находится на стадии 2, другая бутылка может быть загружена на стадии 1. Аналогично, когда бутылка находится на стадии 3, может быть одна бутылка каждая на стадии 1 и стадии 2. Таким образом, после каждой минуты мы получаем новую бутылку в конце этапа 3. Следовательно, среднее время, затрачиваемое на изготовление 1 бутылки:

Без трубопровода = 9/3 минут = 3 м

I F S | | | | | |
| | | I F S | | |
| | | | | | I F S (9 minutes)

С прокладкой труб = 5/3 минут = 1,67 м

I F S | |
| I F S |
| | I F S (5 minutes)

Таким образом, конвейерная работа увеличивает эффективность системы.

Конструкция базового трубопровода

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

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

Не перекрывающееся исполнение:

Stage / Cycle12345678
S1I1I2
S2I1I2
S3I1I2
S4I1I2

Общее время = 8 циклов

Перекрытое исполнение:

Stage / Cycle12345
S1I1I2
S2I1I2
S3I1I2
S4I1I2

Общее время = 5 циклов

Этапы трубопровода

Процессор RISC имеет 5-ступенчатый конвейер команд для выполнения всех инструкций из набора команд RISC. Ниже приведены 5 этапов конвейера RISC с соответствующими операциями:

  • Этап 1 (Сбор инструкций)
    На этом этапе ЦП считывает инструкции с адреса в памяти, значение которого присутствует в счетчике программы.
  • Этап 2 (инструкция декодирования)
    На этом этапе инструкция декодируется и к регистровому файлу обращаются, чтобы получить значения из регистров, используемых в инструкции.
  • Этап 3 (Инструкция Выполнить)
    На этом этапе выполняются операции ALU.
  • Этап 4 (Доступ к памяти)
    На этом этапе операнды памяти читаются и записываются из / в память, которая присутствует в инструкции.
  • Этап 5 (Написать обратно)
    На этом этапе вычисленное / извлеченное значение записывается обратно в регистр, присутствующий в инструкциях.

Производительность конвейерного процессора
Рассмотрим конвейер сегмента 'k' с временем цикла часов как 'Tp'. Пусть в конвейерном процессоре будет выполнено «n» задач. Теперь первая команда будет проходить 'k' циклов, чтобы выйти из конвейера, но другие инструкции 'n — 1' будут занимать только 1 цикл 'каждый, то есть всего' n — 1 'циклов. Итак, время, необходимое для выполнения команд 'n' в конвейерном процессоре:

                     ETpipeline = k + n – 1 cycles
                              = (k + n – 1) Tp

В этом же случае для нетранслируемого процессора время выполнения команд 'n' будет:

                    ETnon-pipeline = n * k * Tp

Таким образом, ускорение (S) конвейерного процессора по сравнению с нетранслируемым процессором, когда 'n' задачи выполняются на одном процессоре:

    S = Performance of pipelined processor /
        Performance of Non-pipelined processor

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

   S = ETnon-pipeline / ETpipeline
    => S =  [n * k * Tp] / [(k + n – 1) * Tp]
       S = [n * k] / [k + n – 1]

Когда число задач 'n' значительно больше, чем k, то есть n >> k

    S = n * k / n
    S = k

где «k» — количество этапов в конвейере.

Кроме того, эффективность = заданное ускорение / максимальное ускорение = S / S max
Мы знаем, что Smax = k

Итак, КПД = С / К

Рекомендуемые посты:

Компьютерная организация и архитектура | Трубопроводы | Набор 1 (выполнение, этапы и пропускная способность)

0.00 (0%) 0 votes