- •«Санкт-Петербургский государственный электротехнический университет «лэти» имени в.И. Ульянова (Ленина)»
- •Векторные процессоры.
- •Понятие вектора и размещение данных в памяти
- •Понятие векторного процессора.
- •Структура векторного процессора
- •V_load va, adrA
- •V_load vb, adrB
- •V_multiply vc, va, vb
- •Структуры типа “память-память” и “регистр-регистр”
- •Обработка длинных векторов и матриц.
- •Ускорение вычислений.
- •Программирование под гетерогенные вычислительные архитектуры.
- •Примеры векторно-конвейерных систем.
- •Cray-2.
- •История создания.
- •Характеристики.
- •Стоимость.
- •Использование.
- •Дальнейшее развитие.
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО ОБРАЗОВАНИЮ.
Государственное образовательное учреждение высшего профессионального образования.
«Санкт-Петербургский государственный электротехнический университет «лэти» имени в.И. Ульянова (Ленина)»
(СПБГЭТУ)
Кафедра ВТ
Отчет
по дисциплине «История информатики и ВТ»
Тема: Векторные процессоры и Cray-2.
Выполнил:ст. группы 9307 Джабаров Р.Р.
Проверил:проф. Богданов А.В.
Санкт-Петербург
2014 г.
Оглавление
Векторные процессоры. 3
Понятие вектора и размещение данных в памяти 4
Понятие векторного процессора. 5
Структура векторного процессора 7
Структуры типа “память-память” и “регистр-регистр” 11
Обработка длинных векторов и матриц. 12
Ускорение вычислений. 12
Программирование под гетерогенные вычислительные архитектуры. 15
Примеры векторно-конвейерных систем. 15
Cray-2. 17
История создания. 17
Характеристики. 18
Стоимость. 18
Использование. 19
Дальнейшее развитие. 19
Вывод. 20
Векторные процессоры.
Векторный процессор — это процессор, в котором операндами некоторых команд могут выступать упорядоченные массивы данных — векторы. Отличается от скалярных процессоров, которые могут работать только с одним операндом в единицу времени. Абсолютное большинство процессоров являются скалярными или близкими к ним. Векторные процессоры были распространены в сфере научных вычислений, где они являлись основой большинства суперкомпьютеров начиная с 1980-х до 1990-х. Но резкое увеличение производительности и активная разработка новых процессоров привели к вытеснению векторных процессоров из сферы повседневных процессоров.
Для иллюстрации разницы в работе векторного и скалярного процессора, рассмотрим простой пример попарного сложения двух наборов по 10 чисел. При "обычном" программировании используется цикл, который берёт пары чисел последовательно, и складывает их:
повторить цикл 10 раз
прочитать следующую инструкцию и декодировать
получить первое слагаемое
получить второе слагаемое
сложить
сохранить результат
конец цикла
Для векторного процессора алгоритм будет значительно отличаться:
прочитать следующую инструкцию и декодировать
получить 10 первых слагаемых
получить 10 вторых слагаемых
сложить
сохранить результат
Реализация Cray расширила возможности вычислений, позволяя выполнять несколько различных операций сразу. Для примера, рассмотрим код складывающий 2 набора чисел и умножающий на третий, в Cray эти операции осуществились бы так:
прочитать следующую инструкцию и декодировать
получить 10 чисел
получить 10 чисел
получить 10 чисел
сложить и умножить их
сохранить результат
Таким образом, математические операции выполняются гораздо быстрее, основным ограничивающим фактором становится время, необходимое для извлечения данных из памяти.
В большинстве современных микропроцессоров имеются векторные расширения. Кроме того, современные видеокарты и физические ускорители можно рассматривать как векторные сопроцессоры.
Понятие вектора и размещение данных в памяти
В средствах векторной обработки под вектором понимается одномерный массив однотипных данных (обычно в форме с плавающей запятой), регулярным образом размещенных в памяти ВС. Если обработке подвергаются многомерные массивы, их также рассматривают как векторы. Такой подход допустим, если учесть, каким образом многомерные массивы хранятся в памяти ВМ. Пусть имеется массив данных А, представляющий собой прямоугольную матрицу размерности 4×5 (рис. 1).
a11 |
a12 |
a13 |
a14 |
a15 |
a21 |
a22 |
a23 |
a24 |
a25 |
a31 |
a32 |
a33 |
a34 |
a35 |
a41 |
a42 |
a43 |
a44 |
a45 |
Рис. 1. Прямоугольная матрица данных.
При размещении матрицы в памяти все ее элементы заносятся в ячейки с последовательными адресами, причем данные могут быть записаны строка за строкой или столбец за столбцом (рис. 2). С учетом такого размещения много-мерных массивов в памяти вполне допустимо рассматривать их как векторы и ориентировать соответствующие вычислительные средства на обработку одномерных массивов данных (векторов).
Действия над многомерными массивами имеют свою специфику. В двумерном массиве обработка может вестись как по строкам, так и по столбцам. Это выражается в том, с каким шагом должен меняться адрес очередного выбираемого из памяти элемента. Если рассмотренная в примере матрица расположена в памяти построчно, то адреса последовательных элементов строки различаются на единицу, а для элементов столбца шаг равен пяти. При размещении матрицы по столбцам единице будет равен шаг по столбцу, а шаг по строке – четырем.
В векторной концепции для обозначения шага, с которым элементы вектора извлекаются из памяти, применяется термин шаг по индексу (stride).
Еще одной характеристикой вектора является число составляющих его элементов – длина вектора.
Рис. 2. Способы размещения в памяти матрицы 4*5.