Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
01.05.2014
Размер:
1.69 Mб
Скачать

Вычислительные системы скомандными словами сверхбольшойдлины (VLIW) 5 8 1

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

-количество простых команд, объединяемых в одну команду сверхбольшой длины, равно числу имеющихся в процессоре функциональных (исполнительных) блоков (ФБ);

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

Длина сверхдлинной команды обычно составляет от 256 до 1024 бит. Такая метакоманда содержит несколько полей (по числу образующих ее простых команд), каждое из которых описывает операциюдля конкретного функционального блока. Сказанное иллюстрирует рис, 13,26, где показан возможный формат сверхдлинной команды и взаимосвязь между ее полями и ФБ, реализующими отдельныеоперации.

Рис. 13.26. формат сверхдлинной команды и взаимосвязь полей команды с составляющими блока исполнения

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

VLIW-архитектуру можно рассматривать как статическую суперскалярную архитектуру. Имеется в виду, что распараллеливание кода производится на этапе компиляции,анединамическивовремяисполнения.То,чтоввыполняемойсверх-

5 8 2 Глава 13. Вычислительные системы класса SIMD

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

В качестве простых команд, образующих сверхдлинную, обычно используются команды RISC-типа, поэтому архитектуру VLIW иногда называют nocтRISC-ap- хитектурой. Максимальное число полей в сверхдлинной команде равно числу вычислительных устройств и обычно колеблется в диапазоне от 3 до 20. Все вычислительные устройства имеют доступ к данным, хранящимся в едином многопортовом регистровом файле. Отсутствие сложных аппаратных механизмов, характерных для суперскалярных процессоров (предсказание переходов, внеочередное исполнение и т. д.), дает значительный выигрыш в быстродействии и возможность более эффективно использовать площадь кристалла. Подавляющеебольшинство цифровых сигнальных процессоров и мультимедийных процессоров с производительностью более 1 млрд операций/с базируется на VLIW-архитектуре. Серьезная проблема VLIW — усложнение регистрового файла и связей этого файла с вычислительными устройствами.

Вычислительныесистемысявным параллелизмом команд (ЕРIC)

Дальнейшим развитием идеи VLIW стала новая архитектура IA-64 — совместная разработка фирм Intel и Hewlett-Packard (IA — это аббревиатура от Intel Architecture). В IA-64 реализован новый подход, известный как вычисления с явным параллелизмом команд (EPIC, Explicitly Parallel Instruction Computing) и являющийся усовершенствованным вариантом технологии VLIW. Первым представителем даннойстратегии стал микропроцессор Itanium компании Intel. Корпорация HewlettPackard также реализует данный подход в своих разработках.

В архитектуре IA-64 предполагается наличие в процессоре 128 64-разрядных регистров общего назначения (РОН) и 12880-разрядных регистров с плавающей запятой. Кроме того, процессор IA-64 содержит 64 однобитовых регистра предикатов.

Формат команд в архитектуре IA-64 показан на рис. 13.27.

Рис. 13.27. Формат сверхдлинной команды в архитектуре IA-64

Команды упаковываются (группируются) компилятором в сверхдлинную команду — связку (bundle) длиною в 128 разрядов. Связка содержит три команды

Вычислительные системы с явным параллелизмом команд (EPIC) 5 8 3

и шаблон, в котором указываются зависимости между командами (можно ли с командой I0 запустить параллельно I1 или же I1 должна выполниться только после Iо),а также между другими связками (можно ли с командой I2 из связки So запустить параллельно команду I3 из связки S1).

Перечислим все варианты составления связки из трех команд:

-I0 || I1 || 12 — все команды исполняются параллельно;

-Iо & I1 || Iг сначала I0, затем исполняются параллельно I1 и I2;

-I0 || I1 & I2 — параллельно обрабатываются I0 и I1 после них — I2;

-I0& I1 & I2 — команды исполняются в последовательности I0,I1, I2.

Одна связка, состоящая из трех команд, соответствует набору из трех функциональных блоков процессора. Процессоры IA-64 могут содержать разное количество таких блоков, оставаясь при этом совместимыми по коду. Благодаря тому что в шаблоне указана зависимость и между связками, процессору с N одинаковыми блоками из трех ФБ будет соответствовать сверхдлинная команда из N х 3 команд (Nсвязок).Тем самым обеспечивается масштабируемость IA-64.

Поле каждой из трех команд в связке, в свою очередь, состоит из пяти полей:

-13-разрядного поля кода операции;

-6-разрядного поля предикатов, хранящего номер одного из 64 регистров предиката;

-7-разрядного поля первого операнда (первого источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится первый операнд;

-7-разрядного поля второго операнда (второго источника), где указывается номер регистра общего назначения или регистра с плавающей запятой, в котором содержится второй операнд;

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

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

Если в исходной программе встречается условное ветвление (по статистике — через каждые шесть команд), то команды из разных ветвей помечаются разными регистрами предиката (команды имеют для этого соответствующие поля), далее они выполняются совместно, но их результаты не записываются, пока значения регистров предиката (РП) не определены. Когда, наконец, вычисляется условие ветвления, РП, соответствующий «правильной» ветви, устанавливается в 1, а другой — в 0. Перед записью результатов процессор проверяет поле предиката и записывает результаты только тех команд, поле предиката которых указывает на РП с единичнымзначением.

Предикаты формируются как результатсравнения значений, хранящихся вдвух регистрах. Результат сравнения («Истина» или «Ложь») заносится в один из РП,

5 8 4 Глава 13. Вычислительные системы класса SIMD

но одновременно с этим во второй РП записывается инверсное значение полученного результата. Такой механизм позволяет процессору более эффективно выпол- нятьконструкциитипаIF-THEN-ELSE.

Логика выдачи команд на исполнение сложнее, чем в традиционных процессорах типа VLIW, но намного проще, чем у суперскалярных процессоров с неупорядоченной выдачей. По мнению специалистов Intel и HP, концепция EPIC, сохраняя все достоинства архитектурной организации VLIW, свободна от большинства ее недостатков. Особенностями архитектуры EPIC являются:

-большое количество регистров;

-масштабируемость архитектуры до большого количества функциональных блоков. Это свойство представители компаний Intel и HP называют наследственно масштабируемойсистемойкоманд(InherentlyScaleableInstructionSet);

-явный параллелизм в машинном коде. Поиск зависимостей между командами осуществляет не процессор, а компилятор;

-предикация — команды из разных ветвей условного предложения снабжаются полями предикатов (полями условий) и запускаются параллельно;

-предварительная загрузка — данные из медленной основной памяти загружаются заранее.

Общий итог обзора технологии VLIW можно сформулировать следующим образом.

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

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

Основные сферы применения. VLIW-процессоры пока еще распространены относительно мало. Основными сферами применения технологии VLIW-являются цифровые сигнальные процессоры и вычислительные системы, ориентированные на архитектуру IA-64. Наиболее известной была VLIW-система фирмы Multiflow Computer, Inc. (Уже не существующей.) В России VLIW-концепция была реализована в суперкомпьютере Эльбрус 3-1 и получиладальнейшее развитие в его последователе — Эльбрус-2000 (Е2к). К VLIW можно причислить семейство сигнальных процессоров TMS320C6x фирмы Texas Instruments. С 1986 года ведутся исследования VLIW-архитектуры в IBM. В начале 2000 года фирма Transmeta заявила процессор Crusoe, представляющий собой программно-аппаратный комплекс. В нем команды микропроцессоров серии х86 транслируются в слова VLIW длиной 64 или 128 бит. Оттранслированные команды хранятся в кэш-памяти, а трансляция при многократном их использовании производится только один раз. Ядро процессора исполняет элементы кода в строгой последовательности.

Контрольные вопросы

5 8 5

Контрольные вопросы

1. Какой уровень параллелизма в обработке информации обеспечивают вычислительные системы класса SIMD?

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

3.Благодаря чему многомерные массивы при обработке можно рассматривать в качестве одномерных векторов?

4.Поясните различие между конвейерными и векторно-конвейерными вычислительными системами.

5.Поясните назначение регистров векторного процессора: регистра длины вектора, регистра максимальной длины вектора, регистра вектора индексов и регистра маски.

6.Для чего используются операции упаковки/распаковки вектора?

7.Оцените выигрыш в быстродействии векторного процессора за счет сцепления векторов.

8.В чем заключается принципиальное различие между векторными и матричными вычислительными системами?

9.Какими средствами обеспечивается подготовка программ для матричных вычислительных систем и их загрузка?

10.По какому принципу в матричной ВС команды программы распределяются между центральным процессором и массивом процессоров?

И.Каким образом в матричной ВС реализуются предложения типа IF-THEN- ELSE?

12.Как идентифицируются отдельные процессорные элементы в массиве процессоров матричной ВС?

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

14.Могут ли участвовать в вычислениях замаскированные (пассивные) процессорные элементы матричной ВС и в каким виде это участие проявляется?

15.Поясните различие между ассоциативной памятью и ассоциативным процессором.

16.В чем выражается аналогия между матричными и ассоциативными ВС?

17.Какую особенность систолической ВС отражает ее название?

18.Объясните достоинства и недостатки систолических массивов типа ULA, BLA, TLA.

19.Сформулируйте правилаобъединения простых команд в командное слово сверхбольшой длины.

20.Чем ограничивается количество объединяемых команд в технологии EPIC?

21.Поясните назначение системы предикации и ее реализацию в архитектуре

IA-64.

Глава14

Вычислительные системы класса MIMD

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

ВMIMD-системе каждый процессорный элемент (ПЭ) выполняет свою программу достаточно независимо от других ПЭ. В то же время ПЭ должны как-то взаимодействовать друг с другом. Различие в способе такого взаимодействия определяет условное деление MIMD-систем на ВС с общей памятью и системы

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

(SMP,SymmetricMultiprocessor)исистемыснеоднороднымдоступомкпамяти

(NUMA, Non-Uniform Memory Access).

Всистемах с распределенной памятью или слабо связанных (loosely coupled) многопроцессорных системах вся память распределена между процессорными элементами, и каждый ёлок памяти доступен только «своему» процессору. Сеть соединений связывает процессорные элементы друг сдругом. Представителями этой группымогутслужитьсистемысмассовымпараллелизмом(МРР,MassivelyParallel Processing)икластерныевычислительныесистемы.

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

Симметричные мультипроцессорныесистемы 5 8 7

Числопроцессоров

Рис. 14 . 1 . ПроизводительностьMIMD-систем как функция ихтипа и числа процессоров

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

Симметричные мультипроцессорные системы

До сравнительно недавнего времени практически все однопользовательские персональные ВМ и рабочие станции содержали по одному микропроцессору общего назначения. По мере возрастания требований к производительности и снижения стоимости микропроцессоров поставщики вычислительных средств как альтернативу однопроцессорнымВМсталипредлагатьсимметричныемультипроцессорныевычис- лительныесистемы,такназываемыеSMP-системы(SMP,SymmetricMultiprocessor). Это понятие относится как к архитектуре ВС, так и к поведению операционной системы, отражающему данную архитектурную организацию. SMP можно определить как вычислительную систему, обладающую следующими характеристиками:

-Имеются два или более процессоров сопоставимой производительности.

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

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

-Все процессоры разделяют доступ к устройствам ввода/вывода либо через одни

ите же каналы, либо через разные каналы, обеспечивающие доступ к одному

итому же внешнему устройству.

5 8 8 Глава 14. Вычислительные системы класса MIMD

иВсе процессоры способны выполнять одинаковые функции (этим объясняется термин «симметричные»),

- Любой из процессоров может обслуживать внешние прерывания.

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

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

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

Операционная система планирует процессы или нити процессов (threads) сразу по всем процессорам, скрывая при этом от пользователя многопроцессорный характер SMP-архитектуры.

По сравнению с однопроцессорными схемами SMP-системы имеют преимущество по следующим показателям [36]:

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

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

Рис. 14,2. Мультипрограммирование и мультипроцессорная обработка [36]: а —мультипрограммирование; б — мультипроцессорная обработка

Симметричные мультипроцессорные системы 5 8 9

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

-Масштабируемость. Варьируя число процессоров в системе, можно создать системы различной производительности и стоимости.

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

Архитектура SMP-системы

На рис. 14.3 в самом общем виде показана архитектура симметричной мультипроцессорной ВС.

Рис. 14.3. Организация симметричной мультипроцессорной системы

Типовая SMP-система содержит от двух до 32 идентичных процессоров, в качестве которых обычно выступают недорогие RISC-процессоры, такие, например, как DEC Alpha, Sun SPARC, MIPS или HP PA-RISC. В последнее время наметилась тенденция оснащения SMP-систем также и CISC-процессорами, в частности Pentium.

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

Все процессоры ВС имеют равноправный доступ к разделяемым основной памяти и устройствам ввода/вывода. Такая возможность обеспечивается коммуникационной системой. Обычно процессоры взаимодействуют между собой через основную память (сообщения и информация о состоянии оставляются в области общих данных). В некоторых SMP-системах предусматривается также прямой обмен сигналами между процессорами.

Память системы обычно строится по модульному принципу и организована так, чтодопускается одновременное обращение к разным ее модулям (банкам). В неко-

5 9 0 Глава 14. Вычислительные системы класса MIMD

Рис. 14.4. SMP-система с совместно используемой кэш-памятью

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

Важным аспектом архитектуры симметричных мультипроцессоров является способ взаимодействия процессоров с общими ресурсами (памятью и системой ввода/вывода). С этих позиций можно выделить следующие виды архитектуры SMP-систем:

-с общей шиной и временным разделением;

-с коммутатором типа «кроссбар»;

-с многопортовой памятью;

-с централизованным устройством управления.

Архитектура с общей шиной

Структура и интерфейсы общей шины в основном такие же, как и в однопроцессорной ВС, где шина служит для внутренних соединений (рис. 14.5).

Рис. 14.5. Структура SMP-системы собщей шиной

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

Соседние файлы в папке Организация ЭВМ и систем