Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

otvety / 20

.odt
Скачиваний:
22
Добавлен:
12.04.2015
Размер:
27.67 Кб
Скачать

Конвейерная обработка команд; временная диаграмма работы конвейера; конфликты при одновременном обращении к ОЗУ нескольких ступеней конвейера и способы их разрешения. Конвейерная обработка информации является одним из методов повышения производительности процессора. Конвейеры бывают синхронные (в них все функции разделены на подфункции, за каждой из которых закрепляется своя ступень конвейера и время вычисления подфункции на каждой ступени одинаково, данные конвейеры более простые) и асинхронные (каждая ступень требует своего времени вычисления подфункции, к проектированию таких конвейеров прибегают когда невозможно выровнять времена работы ступеней). Временная диаграмма работы синхронного однофункционального конвейера Допустим, у нас имеется статический синхронный конвейер команд, который выполняет одноадресную арифметическую операцию: КОПА Весь цикл исполнения команды можно распределить по ступеням конвейера следующим образом: 1 ступень – выборка команды 2 ступень – выборка операнда по адресу А 3 ступень – выполнение самой операции 4 ступень – запись результата по адресу А Тогда временная диаграмма будет выглядеть:

такты/ ступени

Т1

Т2

Т3

Т4

1

К1

К2

К3

К4

2

 

К1

К2

К3

3

 

 

К1

К2

4

 

 

 

К1

Конфликты, возникающие в конвейерах при обращении к ОЗУ В соответствии с диаграммой, в конвейере могли бы обрабатываться 4 команды (К1-К4), однако уже во втором такте возникает конфликт между первой и второй ступенями конвейера при обращении к ОЗУ: на первой ступени – за командой, а на второй ступени – за операндом. На 4 такте добавляется конфликт с 4 ступенью при записи результата в ОЗУ. Для ликвидации конфликта применяют два способа:

  1. Расслоение ОЗУ по данным когда в одном блоке хранятся команды, а в другом данные.

Недостатком такого способа является:

  • Сложность программирования при распределении.

  • При увеличении адресности команды приходится увеличивать число блоков ОЗУ данных.

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

    ОЗУ0

    ОЗУ1

    ОЗУ2

    ОЗУ3

    0

    4

    8

    С

    1

    5

    9

    D

    2

    6

    A

    E

    3

    7

    B

    F

    И тогда адрес, выставляемый на шину адреса, имеет структуру:

    А

    Б

    где А – адрес ячейки в модуле, Б - номер модуля

    Конвейерная обработка информации является одним из методов повышения производительности процессора. Классификация конвейеров

    • По типу обрабатываемой информации:

    • Конвейер команд – когда обрабатывается несколько команд при их неконвейерной арифметике

    • Конвейер данных – когда в арифметическом конвейере присутствуют несколько пар операндов и каждая ступень конвейера выполняет над соответствующей парой операндов свои группы процедур.

    • По функциональному назначению:

    • Однофункциональные которые ориентированы на выполнение только одной функции.

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

    • Статические – конфигурация определяется заданной функцией на значительном временном интервале.

    • Динамические – перенастройка ступеней может осуществляться каждый раз с приходом следующей функции.

    • По внутренней организации:

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

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

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

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

    Схема конвейера в общем виде Временная диаграмма работы

    Т – конвейерный такт, ф – время работы фиксатора, л – время работы логики.

    Конвейер более производителен если время стационарной работы много больше суммы времен загрузки и выгрузки. Это время вычисления при конвейерной обработке. К – количество ступеней Асинхронный конвейер Если конвейер асинхронный, то каждая ступень имеет фиксатор на входе и на выходе. Условия передачи информации со ступени на ступень следующие: данная ступень освободилась и готова принять инфомрацию, а предыдущая обработала и готова передать информацию. Для этого у каждой ступени есть триггер готовности передачи информации и триггер готовности приема. Для передачи со ступени на ступень должен находиться в единице входной триггер готовности приема (Твх) данной ступени и выходной триггер готовности передачи (Твых) предыдущей ступени.

    Однофункциональный синхронный арифметический конвейер

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

    1 случай

    2 случай

    Логика 1

    Логика 2

    1 такт

    1 такт

    n тактов

    1 такт при введении матричного умножителя

    (n-1) тактов

    3 такта при введении универсального сдвигового регистра на 1, 2, 4, 8

    Работа фиксатора занимает 1 такт на каждую ступень. n – количество разрядов мантиссы Ф – фиксатор Ф0– штатный (обязательный) фиксатор, должен быть на каждой ступени Фд – дополнительный фиксатор

    Таким образом для выравнивания времен на 2-й ступени вводится фиксатор (так как 3-я ступень самая длительная)

    Ф0

    Фд

    1 ступень

    1

    2

    2 ступень

    1

    2

    3 ступень

    1

    -

    Для окончательного выравнивания времен работы ступеней на первой и второй ступенях вводится по два дополнительных фиксатора. Тогда структурная схема конвейера будет следующей:

    Особенности построения многофункционального синхронного арифметического конвейера

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

    Сложение

    Умножение/деление

    Такт/ ступень

    1

    2

    3

    4

    Такт/ ступень

    1

    2

    3

    1

    Сл.

    1

    Умн./дел

    2

    Сл.

    2

    3

    Сл.

    3

    4

    Сл.

    4

    Умн./дел

    5

    5

    Умн.

    6

    6

    Дел.

    Объединенная таблица занятости

    Такт/ ступень

    1

    2

    3

    4

    Такт/ ступень

    1

    2

    3

    4

    5

    1

    Сл.

    Умн.

    1

    Сл.

    Умн.

    2

    Сл.

    2

    Сл.

    3

    Сл.

    3

    Сл.

    4

    Сл./умн.

    4

    Сл.

    Умн.

    5

    Умн.

    5

    Умн.

    6

    6

    Л=1

    Л=2

    Латентность может быть любым целым числом от 0 до n. Для каждого конвейера эта величина постоянная.