Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 10. Векторные и векторно-конвейерные выч....doc
Скачиваний:
7
Добавлен:
22.07.2019
Размер:
582.14 Кб
Скачать

Ускорение вычислений

 

Для повышения скорости обработки векторов все функциональные блоки вектор­ных процессоров строятся по конвейерной схеме, причем так, чтобы каждая сту­пень любого из конвейеров справлялась со своей операцией за один такт (число ступеней в разных функциональных блоках может быть различным). В некоторых векторных ВС, например Cray C90, этот подход несколько усовершенствован — конвейеры во всех функциональных блоках продублированы.

 

На конвейер 0 всегда подаются элементы векторов с четными номерами, а на конвейер 1 – с нечетными. В начальный момент на первую ступень конвейера 0 из ВР V1 и V2 поступают нулевые элементы векторов. Одновременно первые элементы векторов из этих регистров подаются на первую ступень конвейера 1. На следую­щем такте на конвейер 0 подаются вторые элементы из V1 иV2, а на конвейер 2 - третьи элементы и т. д. Аналогично происходит распределение результатов в вы­ходном векторном регистре V. В итоге функциональный блок при максимальной загрузке в каждом такте выдает не один результат, а два. Добавим, что в скалярных операциях работает только конвейер 0.

Интересной особенностью некоторых ВП типа «регистр-регистр», например ВС фирмы Cray Research Inc., является так называемое сцепление векторов (vector chaining или vector linking), когда ВР результата одной векторной операции ис­пользуется в качестве входного регистра для последующей векторной операции. Для примера рассмотрим последовательность из двух векторных команд, предпо­лагая, что длина векторов равна 64: V2 =VoxV1, V4 =V2 + V3.

 

 

Результат первой команды служит операндом для второй. Напомним, что по­скольку команды являются векторными, первая из них должна послать в конвей­ерный умножитель до 64 пар чисел. Примерно в середине выполнения команды складывается ситуация, когда несколько начальных элементов вектора V2 будут уже содержать недавно вычисленные произведения; часть элементов V2 все еще будет находиться в конвейере, а оставшиеся элементы операндов V0 и V1 еще оста­ются во входных векторных регистрах, ожидая загрузки в конвейер. Такая ситуация показана на рис., где элементы векторов V0 и V1, находящиеся в конвейерном умножителе, имеют темную закраску. В этот момент система извлекает элементы V0[k]и V1[k] с тем, чтобы направить их на первую ступень конвейера, в то время какV2[j] покидает конвейер. Сцепление векторов иллюстрирует линия, обозна­ченная звездочкой. Одновременно с занесением V2[j] в ВР этот элемент направля­ется и в конвейерный сумматор, куда также подается и элемент V3[j]. Как видно из рисунка, выполнение второй команды может начаться до завершения первой, и по­скольку одновременно выполняются две команды, процессор формирует два ре­зультата за цикл (V4[i] и V2[j]) вместо одного. Без сцепления векторов пиковая производительность Сгау-1 была бы 80 MFLOPS (один полный конвейер произ­водит результат каждые 12,5 не). При сцеплении трех конвейеров теоретический пик производительности - 240 MFLOPS. В принципе сцепление векторов можно реализовать и в векторных процессорах типа «память-память», но для этого необ­ходимо повысить пропускную способность памяти. Без сцепления необходимы три «канала»: два для входных потоков операндов и один — для потока результата. При использовании сцепления требуется обеспечить пять каналов: три входных и два выходных.

Завершая обсуждение векторных и векторно-конвейерных ВС, следует отме­тить, что с середины 90-х годов прошлого века этот вид ВС стал уступать свои позиции другим более технологичным видам систем. Тем не менее одна из послед­них разработок корпорации NEC (2002 год) - вычислительная система «Модель Земли» (The Earth Simulator), - являющаяся на сегодняшний момент самой про­изводительной вычислительной системой в классе, по сути представляет собой векторно-конвейерную ВС. Система включает в себя 640 вычислительных узлов по 8 векторных процессоров в каждом. Пиковая производительность суперкомпь­ютера превышает 40 TFLOPS.

 

STAR-100

 

Разработка конвейерной вычислительной системы STAR-100 (STAR – STring ARray computer – векторный компьютер) осуществлялась фирмой CDC с 1965 по 1973 гг. Система была анонсирована в 1970 г., а первая ее поставка была произведена в августе 1973 г. Быстродействие 108оп./с, стоимость – 15 млн. $.

 

 

Система STAR-100 создавалась под непосредственным влиянием языка программирования APL (A Programming Language). Язык APL (или АПЛ) – диалоговый язык программирования, характеризуется развитыми средствами работы с регулярными структурами данных (векторами, матрицами, массивами) и богатым набором базовых операций и компактностью записи.

Вычислительная система STAR-100 состояла из двух подсистем:

  • первая осуществляла переработку данных,

  • вторая – функции операционной системы.

Ядром первой подсистемы являлся процессор, образуемый из нескольких конвейеров (в типовых конфигурацияx – 3 конвейера).