Пример 2
Положим, что в некоторой прикладной программе, исполняемой на векторно-конвейерной системе, необходимо вычислить
где - -векторы вещественных чисел, под произведением и делением векторов понимается их покомпонентное умножение и деление, соответственно. Иными словами, операции, указанные в выражении (1), понимаются в смысле
Положим также, что конвейерное функциональное устройство данной векторно-конвейерной системы имеет следующие конвейеры операций: · конвейер сложения вещественных чисел; · конвейер умножения вещественных чисел; · конвейер деления вещественных чисел Тогда для повышения скорости вычисления компонент вектора E целесообразно использовать зацепление указанных конвейеров (см. рис. 2). В результате, можно сказать, получается новый конвейер, который выполняет сложную операцию (2) Рис. 2. К примеру 2. К зацеплению конвейеров. Конвейер операций не следует путать с конвейером команд, в котором при исполнении одной команды готовится к исполнению несколько следующих команд. Так же, как в конвейере операций каждая часть конвейера команд называется ступенью конвейера команд, а общее число ступеней – длиной конвейера команд. Конвейеры команд широко используются в современных процессорах. Так процессор Intel 486 имеет 5-ти ступенчатый конвейер выполнения целочисленных команд, ступенями которого являются следующие операции: · предвыборка (команда извлекается из КЭШ-памяти и размещается в одном из двух 16-байтовых буферах); · декодирование; · генерация адреса; · исполнение в АЛУ; · запись результата в КЭШ-память. Процессор Pentium 2 (суперскалярная архитектура) имеет два 8-ми ступенчатых конвейера целочисленных команд. Кроме конвейеров в векторно-конвейерных системах для ускорения работы используют различные механизмы адресации, операции с автоинкрементом (автодекрементом) адреса, механизмы ускоренной выборки и записи (многопортовая память, память с расслоением и т.д.), отдельное адресное обрабатывающее устройство, отдельное скалярное устройство для выполнения скалярных операций и пр.. Недостатком векторно-конвейерных систем является невысокая загрузка процессорных элементов. Высокая производительность достигается только на операциях с длинными векторами. На скалярных операциях и при обработке векторов и матриц невысокой размерности значительная часть устройств может простаивать. В целом, векторно-конвейерные системы характеризуются высокой производительностью при полной загрузке их вычислительных устройств, которая имеет место только при решении определенного, достаточно узкого, круга задач. В качестве примера векторно-конвейерной системы приведем легендарную супер-ЭВМ CYBER-205 фирмы CDC. CYBER-205 имеет следующие конвейерные функциональные устройства: · одно конвейерное функциональное устройство «скалярных» операций с конвейерами o сложения (5-ти ступенчатый); o умножения (5-ти ступенчатый); o логических операций сложения (3-х ступенчатый); o цикла; o извлечения корня; o деления; · 1, 2 или 4 конвейерных функциональных устройства «векторных» операций с конвейерами o сложения; o умножения; o сдвига; o логических операций; o задержки. В качестве примера современной супер-ЭВМ, использующей векторно-конвейерные процессоры, приведем японскую систему Fujitsu-VPP5000. На верхнем уровне Fujitsu-VPP5000 имеет MPP архитектуру. Производительность одного процессора системы составляет 9.6 Гфлопс, пиковая производительность системы может достигать 1249 Гфлопс, максимальная емкость памяти - 8 Тб. Система масштабируется до 512 узлов.
|