Векторная обработка.
Во многих программах встречаются циклы, в которых одни и те же операции выполняются многократно. Исследования многочисленных Фортран - программ (Д.Ктутц D.Knuth) показали, что циклы занимают менее 4% кода таких программ, но требуют более половины времени выполнения задачи.
Пример DO 10 i=1,N
10 C(I)=A(I)+B(I)
Обработка такого цикла ЭВМ с архитектурой фон Неймана потребует N сложений элементов векторов А и В, не считая 2N количества команд приращения индекса и условного перехода.
Идея векторной обработки циклов такого рода заключается в том, что в систему команд ЭВМ вводится векторная операция сложения <А+В>, которая задает сложение всех элементов векторов операндов. При этом:
1.Сокращается число выполняемых процессором команд объектного кода, поскольку отпадает необходимость в пересчете индексов и организации условного перехода;
2.Все операции сложения могут быть выполнены одновременно, в силу параллелизма(несвязности) этих операций.
Все рассмотренные ранее архитектуры :конвейер операций и конвейер команд относятся к архитектурам класса SISD(одиночный поток команд и одиночный поток данных)
Векторная обработка тесно связана с понятием множественности потока данных и может быть отнесена к архитектуре класса SIMD (одиночный поток команд и множественный поток данных).
. Этот подход реализуется в системах двух типов: матричных и векторно-конвейерных.
Оба подхода в принципе позволяют достичь значительного ускорения по сравнению со скалярными машинами.
Матричная система
Состоит из множества процессорных элементов (ПЭ), организованных таким образом, что они исполняют векторные, команды, задаваемые общим для всех устройством управления, причем каждый ПЭ работает с отдельным элементом вектора. ПЭ соединены через коммутационное устройство с многомодульной памятью. Исполнение векторной команды включает чтение из памяти элементов векторов, распределение их по процессорам, выполнение заданной операции и засылку результатов обратно в память.
Первая попытка реализации этой архитектуры - Проект ILLIAC IV (1972г)
Целью проекта ILLIAC IV было создание матричной системы производительностью порядка одного миллиарда операций в сек. Для этого по проекту система должна была содержать 4 квадрантам по 64 процессорных элемента (ПЭ), работающих под общим управлением.
В каждом квадранте предусматривалось собственное устройство управления, с помощью которых предполагалось оперативное объединение в 2 квадранта по 128 ПЭ или в один из 256 ПЭ. Из-за сложностей изготовления была создана система из одного квадранта в 64 ПЭ
В системе ILLIAC IV можно выделить центральную часть и подсистему ввода -вывода.
Подсистема ввода-вывода. включает в свой состав управляющую ЭВМ В 6500 (Burroughs), устройство управления вводом-выводом, коммутатор в/в и внешнюю память.
![]() |
Центральная часть содержит устройство управления(УУ) и матрицу из 64 процессорных элемента (ПЭ)
УУ представляет собой простую ЭВМ не высокой производительности, которая может выполнять скалярные операции параллельно с векторными операциями, реализуемыми на матрице ПЭ по командам от УУ.
УУ посылает команды в независимые ПЭ и передает адреса в их индивидуальные устройства оперативной памяти (ОП). При этом все арифметико-логические устройства (АЛУ) каждого ПЭ одновременно и синхронно выполняют одну операцию над соответствующими компонентами векторов.
Каждый ПЭ имеет достаточно сложный АЛУ с полным набором арифметических и логических схем и собственную оперативную память ОП.
Процессорные элементы, как и их АУ и ОП имеют номера от 0 до 63, причем i - е АЛУ имеет доступ только к i - тому устройству ОП данного i-го ПЭ и не может изменить содержимое ОП других ПЭ.
Однако, информация из одного ПЭ к другому может быть передана через сеть пересылок данных при помощи специальных команд обмена.
При этом нумерация ПЭ рассматривается как циклическая с переходом от 63 к 0 слева направо и от 0 к 63 справа налево.
Команды распределяются по различным устройствам ОП ПЭ путем пересылки их из УУ и по мере необходимости ( в процессе счета) вызываются для выполнения текущей программы в УУ.
Предусмотрена возможность пересылки операнда из УУ в ПЭ, при этом передача может осуществятся одновременно ко всем ПЭ.
Таким образом каждый ПЭ обрабатывает один поток данных 64 разрядного формата или одновременно более одного потока данных меньших форматов в синхронном режиме.
Результаты эксплуатации ILLIAC IV вызвали противоречивые мнения.
С одной стороны, использование этой суперЭВМ позволило решить ряд сложнейших задач аэродинамики, с которыми не в состоянии были справиться другие ЭВМ.
С другой стороны, ILLIAC IV не был доведен до полной конфигурации в 256 ПЭ не столько из-за технических трудностей, сколько из-за проблем в программировании обмена данными между ПЭ.
Все попытки решить эту задачу с помощью системных программных средств не удались, и в результате каждая задача требовала ручного программирования передач данных, что вызывало отрицательную реакцию пользователей.
Этот недостаток присущ не только системе ILLIAC IV, но и вообще всем матричным суперЭВМ (матричным по структуре технических средств).