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, конвейер команд которого включает в себя восемь ступеней. Супер конвейеризация здесь стала следствием разбиения этапов выборки команды и выборки операнда, а также введения в конвейер дополнительного этапа проверки тега, появление которой обусловлено архитектурой системы команд машины.

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


 

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

79059. Право цивильное и право преторское. Римские магистраты и значение их эдиктов для выработки новой системы права. Процесс взаимодействия права цивильного и преторского. Кодификация эдиктов 28.54 KB
  Римские магистраты и значение их эдиктов для выработки новой системы права. Процесс взаимодействия права цивильного и преторского. civilis – гражданский или квиритское право римляне называли себя квиритами в честь бога войны Яна Квирина – совокупность норм права исходящих от народного собрания позднее – сената. Источники цивильного права – обычаи и законы.
79060. Понятие наследования. Сущность и происхождение наследования. Виды наследования 24.25 KB
  Подобно тому как собственность в экономическом смысле существовала и до образования государства и права а право собственности появилось только с образованием государства так и наследственное право в качестве завершения права собственности появилось только с возникновением государства. Универсальный характер наследования проявляется в том что к наследнику переходят сразу и права и обязанности входящие в состав наследства в том что наследник может приобрести в составе наследства даже такие права и обязанности о существовании которых он...
79061. Понятие права собственности. Содержание права собственности 27.13 KB
  Содержание права собственности. Понятие права собственности и развитие этого института в Риме. Римское право было системой права построенного на начале частной собственности.
79062. Понятие римского частного права. Отличие частного права от права публичного. Основные системы римского частного права 20.29 KB
  Отличие частного права от права публичного. Основные системы римского частного права. Один из римских юристов классического периода Ульпиан проводит разграничение этих двух областей права следующим образом.
79063. Понятие физического лица и правоспособности. Элементы правоспособности. Утрата и ограничение правоспособности (caput) 19.53 KB
  Древний Рим был рабовладельческим государством и поэтому признавал лицом далеко не каждого человека. Субъектом права признавался только свободный человек, поэтому рабы рассматривались не как субъект, а как объект права (говорящее орудие).
79064. Правовое положение рабов. Институт пекулия. Способы установления и прекращения рабства 25.17 KB
  Власть рабовладельца над рабом беспредельна; она является полным произволом; господин может раба продать даже убить. Раб не может вступить в брак признаваемый законом; союз раба и рабыни contubernium отношение чисто фактическое. Если тем не менее коекакие проблески признания личности раба имели место то это происходило в интересах самого рабовладельца имело целью расширить и углубить эксплуатацию рабов. Термином пекулий происходящим вероятно от слова pecus скот называлось имущество выделяемое из общего имущества рабовладельца в...
79065. Правовое положение римских граждан. Установление формально равной правоспособности свободных в области частного права. Понятие дееспособности. Лица недееспособные и частично дееспособные 23.98 KB
  Установление формально равной правоспособности свободных в области частного права. в случаях захвата римского гражданина во власть врагов или по крайней мере недружественного народа впрочем в случае последующего возвращения на римскую территорию такое лицо восстанавливалось во всех правах; это называлось ius postliminii. Правоспособность римского гражданства в области частного права слагалась из двух основных элементов: ius conubii т. права вступать в законный брак при котором дети получали права римского гражданства а отцу принадлежала...
79066. Прекращение обязательств. Новация. Зачет. Невозможность исполнения обязательства 22.39 KB
  Невозможность исполнения обязательства. Последнее возможно лишь с согласия кредитора; место исполнения соответствует месту определенному в договоре; исполнение в срок указанный в договоре.; в оба требования должны быть такими по которым срок исполнения уже наступил или определен моментом востребования. Просрочка исполнения усиливает ответственность должника который должен впредь отвечать не только соответственно прямому содержанию обязательства но и обязывался к возмещению неполученных доходов кредитора на него возлагался случайный...
79067. Развитие уголовного права в Риме в период империи 19.9 KB
  Характерной тенденцией развития уголовного права данного периода является то что ряд частных деликтов постепенно становятся уголовно наказуемыми включаются в категорию преступлений crimen publicum. Появляется также большое число новых преступлений в том числе таких которые рассматриваются как опасное посягательство на устои государства. В числе этих преступлений заговор с целью свержения императора покушение на его жизнь или жизнь его чиновников непризнание религиозного культа императора и т. К числу преступлений непосредственно...