Из этой схемы видно, что для организации векторно-конвейерной обработки данных требуется поддержка специализированных процессоров, в данном случае двух : скалярный процессор, потому что не все задачи сводятся к векторной обработке, и командный процессор, который обеспечит настройку операционного конвейера, помните мы говорили, что есть сцепление данных, есть распределение данных; в состав самого конвейера могут входить те или иные функциональные устройства, необязательно все, то есть считайте вот стоит конвейер и здесь, предположим, 15 устройств некие из них можно удалить, а соединить их в том порядке который требуется для выполнения векторных операций, более того в более сложных случаях можно организовать несколько параллельно-функционирующих конвейеров. И все это делает устройство настройки, для этого требуется выполнение специальных команд, которые будут перенастраивать конвейер для векторной обработки данных.
В мире существует несколько десятков СуперЭвм, построенных по векторно-конвейерному принципу. Понятно, что эти СуперЭвм очень дорогостоящие. Приведем таблицу наиболее известных типов СуперЭвм, организованных по векторно-конвейерному принципу.
|
Модель СуперЭвм |
Производит. в мегафлопп[1] |
Число ПЭ |
Длительность такта ( в нс ) |
Объем цикла |
Элементная база |
|
|
Для вект. Операций |
Для скаляр.операций |
|||||
|
CRAY-2 |
487 |
4 |
4.1 |
4.1 |
1Г/38нс |
ЭСЛ[2] СИС[3] 0,35нс[4] |
|
VP2000 Fujitsu |
533 |
1 |
7.5 |
15.0 |
256Мб/ 60нс |
ЭСЛ БИС 0,35нс |
|
S-810 Hitachi |
840 |
1 |
14.0 |
28.0 |
256Мб/ 70нс |
ЭСЛ БИС 0,35нс |
|
CYBER-205 CDC |
40 |
2 |
20.0 |
40.0 |
1Г/50нс |
ЭСЛ БИС 0,75нс |
Структура вычислительной системы на базе процессора CRAY – X – MP
Имеется 8 векторных регистров V0-V7, каждый из которых содержит 256 ячеек по 64 двоичных разряда. Они имеют прямую связь с локальной памятью. Также имеется 5 векторно-функциональных устройств, образующие векторный конвейер: сложение, логические операции, сдвиговые операции, подсчет 1 и номер старшей 1. Векторные функциональные устройства используют данные из векторного регистрового файла. Этот регистровый файл, как минимум, двухвходовый, если образуется один конвейер, четырехвходовый, если образуется 2 конвейера. Помните мы говорили, что при конвейерной обработке обязательно наличие буферных регистров, которые устанавливаются между стадиями. В этом же случае, для того чтобы организовать конвейер перенастраиваемый, используются несколько векторных устройств и они соединяются через буферные регистры которыми являются векторные регистры, то есть векторный регистровый файл изначально многовходовый. Конвейер образуется с использованием этих векторных регистров, причем точка подключения к этим векторным регистрам постоянно меняется. Оказывается, что требуется маскирование некоторых данных, которые не должны участвовать в операции, например, при распределении данных одно устройство выбирает четные элементы вектора, а другое — нечетные, поэтому имеются специальная группа регистров управления, в том числе и регистр масок, который указывает на данные, которые не подвергаются обработке или подвергаются.
Нарисуем 3 регистра управления – вектор маски, вектор режимов и счетчик тактов. Далее оказывается, что все эти векторные функциональные устройства являются устройствами целочисленной арифметики, а нам требуется еще выполнять операции с плавающей точкой. Поэтому рисуем еще функциональные устройства с плавающей точкой: сложение( имеет 6 стадий), умножение( 7 стадий) и вычисление обратной величины( 14 стадий). Они не участвуют в образовании конвейера для сцепления и разветвления данных и заведомо имеют разное время вычисления, которое, в том числе, зависит от конкретных значений данных, но сами они строятся по конвейерному принципу. Поэтому обмена между ними не рисуем. Скалярная часть состоит из 8 скалярных 64-х разрядных регистров: S0-S7. Скалярных функциональных устройств имеется всего 4: сложение, логические операции, сдвиг и подсчет единиц. Понятно, что скалярные устройства берут свои данные из скалярного регистрового файла, где имеется 8 регистров. Также имеется 8 адресных 64-х разрядных регистров: А0-А7. Имеется 2 адресных устройства: сложение и специализированное умножение (на целочисленную константу). Имеется 4 буферных блока памяти, называемые буфером команд. Фактически, одновременно в этом векторном процессоре находятся 4 фрагмента команд, а сами буфера могут быть разделены на части. Это фактически кэш-память команд.То есть наиболее часто используемые фрагменты команд находятся в местах этой буферной памяти и более того реализуется опережающее чтение фрагментов кода для последующего их выполнения процессором, в том числе, как скалярных, так и векторных. Каждый буфер содержит 64 16-ти разрядных слова. В среднем 24 команды помещается в каждом из буферов. Также ставили кэш-память данных для каждого из групп регистров: Т и В.
Последней конструктивной особенностью СуперЭвм CRAY является то, что расстояние между функциональными узлами сказывается на его быстродействии. Поэтому она сделана ввиде такого тора.
В связи с тем, что если сделать ее вытянутую в линию, то окажется, что между двумя концами распространение сигнала столь длительное, что очень сложно синхронизовать работу частей, находящихся наиболее удаленно. Поэтому сделали в виде «бублика», чтобы эту проблему решить. Получили максимальную длину связи 6.2 метра.
[1] 1 мегафлоп – это 1млн. операций в сек.
[2] ЭСЛ – эмитерно-связанная логика
[3] СИС – средняя интегральная схема
[4] 0,35нс – базовый элемент переключается за 0,35нс
