19344

КОНВЕЙЕРНАЯ АРХИТЕКТУРА

Лекция

Информатика, кибернетика и программирование

АК ЛЕКЦИЯ № 21 КОНВЕЙЕРНАЯ АРХИТЕКТУРА Конвейерная обработка данных. Что необходимо для сложения двух вещественных чисел представленных в форме с плавающей запятой Целое множество мелких операций таких как сравнение порядков выравнивание порядков сложение ман

Русский

2013-07-11

146 KB

22 чел.

АК ЛЕКЦИЯ № 21 КОНВЕЙЕРНАЯ АРХИТЕКТУРА

Конвейерная обработка данных.

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

Идея конвейерной обработки заключается в выделении отдельных этапов выполнения общей операции, причем каждый этап, выполнив свою работу, передавал бы результат следующему, одновременно принимая новую порцию входных данных. Получаем очевидный выигрыш в скорости обработки за счет совмещения прежде разнесенных во времени операций. Предположим, что в операции можно выделить пять микроопераций, каждая из которых выполняется за одну единицу времени. Если есть одно неделимое последовательное устройство, то 100 пар аргументов оно обработает за 500 единиц. Если каждую микрооперацию выделить в отдельный этап (или иначе говорят - ступень) конвейерного устройства, то на пятой единице времени на разной стадии обработки такого устройства будут находится первые пять пар аргументов, а весь набор из ста пар будет обработан за 5+99=104 единицы времени - ускорение по сравнению с последовательным устройством почти в пять раз (по числу ступеней конвейера).

Казалось бы конвейерную обработку можно с успехом заменить обычным параллелизмом, для чего продублировать основное устройство столько раз, сколько ступеней конвейера предполагается выделить. В самом деле, пять устройств предыдущего примера обработают 100 пар аргументов за 100 единиц времени, что быстрее времени работы конвейерного устройства! В чем же дело? Ответ прост, увеличив в пять раз число устройств, мы значительно увеличиваем как объем аппаратуры, так и ее стоимость. Представьте себе, что на автозаводе решили убрать конвейер, сохранив темпы выпуска автомобилей. Если раньше на конвейере одновременно находилась тысяча автомобилей, то действуя по аналогии с предыдущим примером надо набрать тысячу бригад, каждая из которых (1) в состоянии полностью собрать автомобиль от начала до конца, выполнив сотни разного рода операций, и (2) сделать это за то же время, что машина прежде находилась на конвейере. Представили себестоимость такого автомобиля? Нет? Согласен, трудно, разве что Ламборгини приходит на ум, но потому и возникла конвейерная обработка...

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

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

Синхронные линейные конвейеры

Эффективность синхронного конвейера во многом зависит от правильного выбора длительности тактового периода TК. Минимально допустимую TК можно определить как сумму наибольшего из времен обработки на отдельной ступени конвейера TСМАХ и времени записи результатов обработки в буферные регистры между ступенями конвейера TБР:

    TК. =  TСМАХ + TБР

Из-за вероятного «перекоса» в поступлении тактирующего сигнала в разные ступени конвейера предыдущую формулу следует дополнить еще одним элементом - максимальной величиной «перекоса»TПк .

    TК. =  TСМАХ + TБР   + TПк

Каждая ступень может содержать множество логических трактов обработки. ТК определяется наиболее длинными трактами во всех ступенях конвейера. При разработке конвейера необходимо учитывать, что для двух последовательных элементов, обрабатываемых одной и той же ступенью, обработка первого элемента может проходить по тракту максимальной длины, а второго элемента — по минимальному тракту. В итоге результат обработки второго элемента может появиться на выходе ступени прежде, чем в выходном регистре ступени будет запомнен предыдущий результат. Чтобы избежать подобной ситуации, сумма  TБР + TПк  должна быть меньше минимального времени обработки в ступени TСМIN  откуда

  TБР   = TСМIN   - TПк  

Выбор длительности тактового периода для конвейера должен осуществляться с соблюдением соотношения

TСМАХ + TБР   + TПк = TК. =  TСМАХ + TСМIN   - TПк  

Несмотря на очевидные преимущества выбора TK равным нижнему пределу, проектировщики ВМ обычно ориентируются на среднее значение между нижним и верхним пределами.

Нелинейные конвейеры

Конвейер не всегда представляет собой линейную цепочку этапов. В ряде ситуаций оказывается выгодным, когда функциональные блоки соединены между собой не последовательно, а в соответствии с логикой обработки, при этом одни блоки в цепочке могут пропускаться, а другие — образовывать циклические структуры. Это позволяет с помощью одного и того же конвейера одновременно вычислять более одной функции, однако если эти функции конфликтуют между собой, то такой конвейер трудно загрузить полностью! Структура нелинейного конвейера, одновременно вычисляющего две функции X и Y, приведена на рис. Там же показана последовательность, в которой функциями X и У востребуются те или иные функциональные блоки.

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

Так, в ходе реализации функции X запуск очередного ее вычисления возможен после 1,3 и 6 тактов. Запуск параллельного вычисления функции У возможен после 2 и 4 тактов. При запуске функции У очередной ее запуск позволен после тактов 1, 3 и 5, а параллельный запуск функции X допустим после 2 и 4 тактов.

Метрики эффективности конвейеров

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

 Ускорение

Под ускорением понимается отношение времени обработки без конвейера и при его наличии. Теоретически наилучшее время обработки входного потока из N значений TNK на конвейере с К ступенями и тактовым периодом ТК  можно определить выражением 

TNK = (K + (N – 1)) Тк

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

В процессоре без конвейера общее время выполнения составляет   N * К * ТК . Таким образом, ускорение вычислений S за счет конвейеризации вычислений можно описать формулой

 S = N K TK / (K + (N – 1)) ТK = N K / (K + (N – 1))

При N ускорение стремится к величине равной количеству ступеней в конвейере.

Эффективность

Эффективность Е – доля ускорения, приходящаяся на одну ступень конвейера.

 Е = S / K = N / (K + (N – 1))

Производительность

Производительность Р – эффективность, делённая на длительность тактового периода:

 Р = N / ТK (K + (N – 1))

При N эффективность стремится к единице, а производительность – к частоте тактирования конвейера.

Конвейерная обработка команд.

Команду можно разделить на 6 отрезков:

  •  Принять команду
  •  Дешифровать КОП
  •  Сформировать исполнительный адрес
  •  Выбрать операнды
  •  Выполнить команду
  •  Записать результат

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

Значительное преимущество конвейерной обработки перед последовательной имеет место в идеальном конвейере, в котором отсутствуют конфликты и все команды выполняются друг за другом без перезагрузки конвейера. Наличие конфликтов снижает реальную производительность конвейера по сравнению с идеальным случаем.

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

Конфликты делятся на три группы:

  •  структурные,
  •  по управлению,
  •  по данным.

Структурные конфликты

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

Причины структурных конфликтов.

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

2. Недостаточное дублирование некоторых ресурсов.

Одним из типичных примеров служит конфликт из-за доступа к запоминающим устройствам.

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

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

По управлению

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

Решения - спекулятивное исполнение, статическое или динамическое предсказание переходов.

По данным

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

Внеочередное выполнение команд.

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

Пример: 

A1 = B1+C1

A2 = A1+C2

A3 = B3+C3

A4 = B4+C4

8 тактов.

Устр.

1такт

2такт

3такт

4такт

5такт

6такт

7такт

8такт

P1

B1+C1

н/р

н/р

A1+C2

B3+C3

B4+C4

н/р

н/р

P2

н/р

B1+C1

н/р

н/р

A1+C2

B3+C3

B4+C4

н/р

P3

н/р

н/р

B1+C1

н/р

н/р

A1+C2

B3+C3

В4+С4

А вместо этого:

A1 = B1+C1

A3 = B3+C3

A4 = B4+C4

A2 = A1+C2

6 тактов.

Устр. 1такт 2такт 3такт 4такт 5такт 6такт

P1 B1+C1 B3+C3 B4+C4 A1+C2 B3+C3 B4+C4   

P2 н/р B1+C1 B3+C3 B4+C4 A1+C2 B3+C3   

P3 н/р н/р B1+C1 B3+C3 В4+С4 A1+C2   

Суперконвейерные процессоры

Эффективность конвейера находится в прямой зависимости от того, с какой частотой на его вход подаются объекты обработки. Добиться n-кратного увеличения темпа работы конвейера можно двумя путями:

- разбиением каждой ступени конвейера на n «подступеней» при одновременном повышении тактовой частоты внутри конвейера также в n раз;

- включением в состав процессора n конвейеров, работающих с перекрытием.

В данном разделе рассматривается первый из этих подходов, известный как ceперконвейеризация (термин впервые был применен в 1988 году). Иллюстрацией эффекта суперконвейеризации может служить диаграмма, приведенная на рис. Каждая из шести ступеней стандартного конвейера разбита на две более простые подступени, обозначенные индексами 1 и 2. Выполнение операции в подступенях занимает половину тактового периода. Тактирование операций внутри конвейера производится с частотой, вдвое превышающей частоту «внешнего» тактирования конвейера, благодаря чему на каждой ступени конвейера можно в пределах одного «внешнего» тактового периода выполнить две команды.

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

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

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


 

А также другие работы, которые могут Вас заинтересовать

80140. ОСОБЕННОСТИ БЮДЖЕТНЫХ ПРАВ МУНИЦИПАЛЬНЫХ ОБРАЗОВАНИЙ 44 KB
  в лице их органов местного самоуправления обладают бюджетными правами. Важное значение этих прав состоит в том что с их помощью создается финансовая база необходимая для решения органами местного самоуправления на всех их уровнях своих социальноэкономических и других вопросов местного значения. Указанные права обеспечивают также органам местного самоуправления в пределах их компетенции возможность регулировать на своей территории бюджетные отношения с учетом местных особенностей. Основы бюджетных прав муниципальных образований в лице...
80141. ОСОБЕННОСТИ БЮДЖЕТНЫХ ПРАВ РФ 31 KB
  Бюджетноправовой статус Российской Федерации составляет совокупность следующих бюджетных прав полномочий. Согласно этому РФ определяет основы бюджетного устройства и бюджетного процесса действующие на всей территории России которые конкретизируются в актах органов государственной власти субъектов федерации и местного самоуправления. что отразило укрепление самостоятельности субъектов Федерации.
80142. ОСОБЕННОСТИ БЮДЖЕТНЫХ ПРАВ СУБЪЕКТОВ РФ 39 KB
  Важной стороной в характеристике бюджетноправового статуса субъектов РФ выступает их равноправие. Правовой основой компетенции субъектов РФ помимо конституционных норм является текущее бюджетное законодательство Российской Федерации а также законодательство самих субъектов РФ конституции и уставы в которых содержатся основополагающие нормы о бюджетной компетенции субъектов РФ их другое законодательство.; Закон РФ О субвенциях краям областям республикам в составе Российской Федерации ежегодно принимаемые законы о федеральном...
80143. БЮДЖЕТНЫЙ ПРОЦЕСС НА МУНИЦИПАЛЬНОМ УРОВНЕ 80.5 KB
  Цель формирования и исполнения бюджета муниципального образования в дальнейшем МО заключается в содействии развитию МО путем проведения обоснованной налоговой политики и финансирования бюджетных расходов. Для содействия развитию МО и в целях усиления стимулирующей функции местного бюджета могут предприниматься в частности следующие меры: увеличение объема капитальных расходов в общем объеме расходов бюджета; увеличение расходов на адресные программы капитальных вложений за счет которых финансируются важнейшие мероприятия...
80144. Бюджетный процесс в РФ 289 KB
  В них регламентирован весь цикл формирования бюджета от момента его составления до момента утверждения отчета об его исполнении порядок и последовательность вступления в бюджетные правоотношения различных субъектов участников этих правоотношении на разных стадиях бюджетного процесса. Бюджетный процесс это регламентированная нормами процессуального бюджетного права деятельность государства и муниципальных образований по составлению рассмотрению и утверждению бюджета его исполнению и заключению а также составлению и утверждению отчета о...
80145. БЮДЖЕТНЫЙ ФЕДЕРАЛИЗМ 171 KB
  Как будет показано ниже в практике российского бюджетного федерализма трансферту придается более узкий смысл как денежному потоку из фондов финансовой помощи субъектам Российской Федерации. Структуры местного самоуправления города районы поселки муниципальные территории не вступают в отношения федерализма ни с федеральным центром ни с органами власти субъектов Российской Федерации. Поэтому по юридическому и политическому смыслу их бюджетные связи с органами государственной власти нельзя трактовать в аспектах отношений субъектов...
80146. ВАЛЮТНОЕ РЕГУЛИРОВАНИЕ 192 KB
  Валюта Российской Федерации это: а находящиеся в обращении а также изъятые или изымаемые из обращения но подлежащие обмену рубли в виде банковских билетов банкнот Центрального банка РФ и монеты; б средства в рублях на счетах в банках и иных кредитных учреждениях в Российской Федерации; в средства в рублях на счетах в банках и иных кредитных учреждениях за пределами Российской Федерации на основании соглашения заключаемого Правительством РФ и Центральным банком РФ с соответствующими органами иностранного государства об использовании...
80147. ПОНЯТИЕ И ВИДЫ ФИНАНСОВО-ПРАВОВЫХ НОРМ 53.5 KB
  Как и любая другая норма права финансовоправовая норма представляет собой установленное и охраняемое государством правило поведения участников общественных отношений выраженное в их юридических правах и обязанностях. Особенности финансовоправовой нормы обусловлены тем что она в отличие от норм других отраслей права регулирует отношения возникающие в процессе планового образования распределения и использования государством и органами местного самоуправления финансовых ресурсов необходимых им для осуществления своих задач. Это...
80148. ВИДЫ ФИНАНСОВОГО КОНТРОЛЯ 53.5 KB
  Одним из важнейших принципов контроля в государстве является финансовый контроль. Финансовый контроль в России особенно актуален в период перехода от командноадминистративных к рыночным формам управления экономикой. По мере развития рыночной экономики тем более с усилением ее социальной ориентации контрольнофинансовые функции государства все более усложняются все большее число функций по защите финансовых прав и интересов граждан ложится на плечи государства.