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

С ростом количества транзисторов на кристалле стало возможно построение микросхем, в которых микропроцессор вместе с памятью на кристалле выступает в роли одного из составных элементов «систем на кристалле» (SOC — System On Chip). В кристалл интегрируются функции, для исполнения которых обычно используются наборы микросхем. В кристалл интегрируются интерфейсы сетевых и телекоммуникационных систем, что позволяет без дополнительных адаптеров соединять микропроцессоры друг с другом и с различными сетями. Интеграция коммуникационных интерфейсов в кристалл микропроцессора была впервые сделана еще в транспьютерах. Ориентация разработчиков на создание систем с распределенной разделяемой памятью привела к интеграции в кристалл блока управления когерентностью многоуровневой памятью, доступ к блокам которой выполняется через интегрированную в тот же кристалл коммуникационную среду. В качестве примеров этого подхода можно назвать микропроцессоры Alpha 21364 и Power 4. Интеграция функций, с одной стороны, позволяет существенно увеличить пропускную способность между компонентами кристалла по сравнению с пропускной способностью между разными кристаллами, реализующими по отдельности каждую функцию. И, как следствие, поднять производительность систем. С другой стороны, при уменьшении количества кристаллов резко упрощается изготовление и монтаж плат, что ведет к повышению надежности и снижению стоимости систем.

Когда количество транзисторов на кристалле стало достаточным для реализации полноценного векторно-конвейерного процессора, появился яркий представитель систем этого класса — микропроцессор NEC SX-6 [18], который недолго оставался в одиночестве. Компания Cray применила в своем суперкомпьютере X1 с производительностью 52 TFLOPS векторно-конвейерные микропроцессоры собственной разработки.

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

Системы с фиксированной структурой из серийных микропроцессоров

MPP-системы из серийных микропроцессоров делают возможным сохранение традиционного стиля программирования. Принципиальным ограничением производительности этих вычислительных систем служит сам характер функционирования процессора. Фазы «выборка команды», «дешифрование команды», «выборка операндов» представляют собой «накладные расходы» на собственно необходимое пользователю действие — «исполнение команды». Производительность теряется либо прямо, если фазы выполнения команды реализуются последовательно с минимальными затратами оборудования, либо опосредованно путем увеличения затрат аппаратуры на совмещение фаз разных команд, как в современных микропроцессорах. Однако при этом возрастает объем оборудования микропроцессора, а, следовательно, уменьшается суммарное количество процессоров однокристальной вычислительной системы, вызывая соответствующее уменьшение производительности. В однокристальных векторно-конвейерных процессорах влияние рассматриваемого фактора ограничения производительности снижается, но не исключается полностью.

Специализированные системы с фиксированной структурой

Важность решения некоторых актуальных задач оправдывает построение специализированных вычислительных систем. В качестве яркого представителя этого класса систем можно указать систему GRAPE-6 [8], предназначенную для решения задачи взаимодействия N тел. Существующая конфигурация GRAPE-6 включает 2048 специализированных конвейерных микропроцессоров, каждый из которых имеет 6 конвейеров, используемых для вычисления гравитационного взаимодействия между частицами. GRAPE-6 представляет собой кластер, образованный из 16 узлов, объединенных коммутатором Gigabit Ethernet. Каждый узел состоит из ПК на базе микропроцессора AMD Athlon XP-1800+, функционирующего под управлением ОС Linux, и 4 специализированных плат, объединенных между собой и платами соседних узлов специальными каналами. На каждой плате устанавливается 32 специализированных кристалла GRAPE-6.

Теоретическая пиковая производительность GRAPE-6 — 63,4 трлн. оп./с. На реальной задаче по моделированию формирования внешних планет солнечной системы достигнута производительность 29,5 трлн. оп./с. Для сравнения, кластер Green Destiny, который при решении на 220 универсальных микропроцессорах задачи N тел, моделирующей формирование Галактики с использованием 200 млн. частиц, показывает производительность 38,9 млрд. оп./с.

Универсальные системы с программируемой структурой

Такие вычислительные системы строятся из программируемых логических интегральных схем (ПЛИС), содержащих одну или несколько матриц вентилей и позволяющих программно скомпоновать из этих вентилей в одном корпусе электронную схему, эквивалентную схеме, включающей от нескольких десятков до тысяч интегральных схем стандартной логики [9].

Основная идея архитектуры подобных вычислительных систем состоит в том, чтобы программно настроить схему, реализующую требуемое преобразование данных. В [10] приведено сравнение реализации фильтра на Alpha 21164 и Xilinx XC4085XL–09. Микропроцессор Alpha 21164 выполняет две 64 разрядных операции за такт при тактовой частоте 433 МГц, что эквивалентно производительности 55,7 бит/нс. XC4085XL-09 имеет 3136 программируемых логических блоков и минимальную длительность такта 4,6 наносекунд. Для корректного сравнения можно принять, что один программируемый логический блок реализует 1-битную арифметическую операцию. В этих предположениях производительность ПЛИС равна 682 бит/нс. Таким образом, при реализации фильтра на ПЛИС достигается производительность, в 12 раз большая, чем на микропроцессоре Alpha 21164.

Основная трудность в использовании реконфигурируемых вычислений состоит в подготовке для заданного алгоритма настроечной информации для создания в ПЛИС схемы, реализующей этот алгоритм. Естественно, поскольку ПЛИС создавались для построения электронной аппаратуры, то изготовители обеспечили, в первую очередь, системы подготовки настроечной информации на высокоуровневых языках электронного проектирования, таких, как Verilog и VHDL [11]. Однако эти языки непривычны для разработчиков алгоритмов. Сегодня в качестве языков программирования ПЛИС используются языки описания потоковых вычислений.

Компания Star Bridge Systems (www. ) производит семейство программно реконфигурируемых вычислителей Hypercomputer System HC-X и предлагает комплексное решение для организации реконфигурируемых вычислений (рис. 1). Старшая модель семейства, суперкомпьютер HC-98m, состоит из управляющего компьютера и двухплатного программно реконфигурируемого вычислителя, включающего 14 ПЛИС Virtex-II серии 6000 и 4 Virtex-II серии 4000. В совокупности это составляет 98 млн. вентилей. После включения питания первая ПЛИС программируется из постоянного запоминающего устройства на плате. В этой ПЛИС формируется порт шины PCI-X, через который управляющий компьютер будет, используя среду разработки программ Viva, программировать остальные ПЛИС.

Рис. 1. Структура узла универсальной вычислительной системы, построенного на ПЛИС

Специализированные системы с программируемой структурой

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

Идея однородных вычислительных сред была сформулирована в начале 60-х годов сотрудником Института математики СО АН СССР [1]. Была показана возможность снятия ограничения на рост тактовой частоты в однородных средах за счет коротких связей между соседними ячейками среды и реализации взаимодействия между удаленными ячейками по принципу близкодействия через цепочку ячеек, расположенных между ними. В силу возможности различного направления специализации ячеек и установления различной пропорции между реализацией на жесткой логике и программируемостью, сегодня предложено много вариантов построения специализированных систем с программируемой структурой [12-16]. К этому классу вычислительных систем относятся также систолические и волновые процессоры [17], программируемые (raw) процессоры [15], ассоциативные процессоры с SIMD-архитектурой, примером которых может служить проект CAM2000 [16], и др.

Технологическая база развития современных архитектур

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

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58