Векторни процесори- Част 1

- Секция Компютри

1. Въведение
 

Терминът "матричен процесор" се използува в различните източници за означаване на съвършено различни архитектури. Във всеки случай става въпрос за обработка на голям обем на данни, и то структурирани във вид на масиви. Такива приложни задачи са обработката на изображения, обработката на сеизмични данни, управлението на ядрените реактори, прогнозирането на климата и т.н. и т.н.
 
Има принципно два подхода за изграждането на архитектурата на матричните процесори.
 
· Първият е чрез съвместяване по време (конвейеризация) на изпълнението на командите, обработващи векторите. Обикновено, процесорите въплъщаващи този подход се наричат векторни процесори, а компютрите, които са базирани на тях - векторни компютри. Примери за такива компютри (процесори) са: CRAY1, CRAY2, CRAY X-MP, CRAY CS 6400, Fujitsu VP-200, Hitachi S810, Hitachi S820, FPS 120L (B), FPS 164, IBM 3090 и др. [1-5].
 
· Вторият подход на изграждането на архитектурата се базира на пространственото повторение на изпълнението на командата. За целта се използуват множество процесори, свързани по определен начин. Този тип компютри спадат към SIMD класа по класификацията на Флин и техни представители са Staran, DAP на ICL, Exemplar 1200/CD 2 или Exemplar 1200/XA 8 на Convex, SP2 на IBM, Power Challenge на Silicon Graphics Inc.и др.
 
Необходимо е да се подчертае, че паралелността във времето за векторните компютри и пространствената паралелност за компютрите с архитектура SIMD води до съвършено различни методи и алгоритми за разработка на ефективни програми за тези два класа компютрите.
 
2. Структура на векторните процесори
 
Преди да се разгледа структурата на векторния процесор, трябва да се подчертае, че съществуват два типа векторни процесори:
 
· Пълен векторен процесор. В този случай е по-правилно да се говори за векторен компютър, защото става въпрос за едно интегрирано устройство (компютър) предназначено за обработка както на вектори, така и на скалари.
 
· Присъединен векторен процесор. Този процесор представлява специализирано устройство, което може да се включва в състава на скаларният компютър, като по този начин разширява, по-точно увеличава, неговите възможности за обработка на вектори и матрици. Връзката между присъединения векторен процесор и скаларния компютър се реализира чрез канал. Така, от гледна точка на скаларния компютър, векторният процесор се разглежда като периферно устройство. Това обуславя по-ниската скорост на обмен на данните между двете устройства и води до по-ниска производителност в сравнение с първия тип векторни процесори. Ясно е, че това се явява недостатък на този тип векторни процесори, но от друга страна цената им е значително по-ниска и което не е за пренебрегване, тяхното включване към скаларния компютър може да стане когато има нужда от ефективно решаване на задачи с матрици.
 
Независимо от голямото разнообразие на векторни процесори, последните са изградени по две основни структурни схеми. Първата е предложена от фирмата Cray Research, а втората от IBM.
Първа основна структурна схема. Обобщената структурна схема на този тип векторни процесори е дадена на фиг.7-1.


Фиг.7-1. Обобщена структурна схема на векторен процесор, предложена от Cray
 
По надолу, съвсем на кратко, ще бъдат разгледани основните функционални блокове на векторния процесор.
 
Оперативна памет. Тя е сходна по функции с оперативната памет на скаларните компютри. Но понеже броят на обръщенията за един такт е много по-голям при използуване на векторни команди, нейната организация е съществено по-сложна и представлява ключа към общата производителност на системата. За да се минимизира времето за достъп към векторните операнди, паметта е силно разслоена .
 
Скаларен процесор. Скаларният процесор отнема от векторната апаратура натоварването, създадено от тези операции, за изпълнението на които тя не е подходяща. Като такъв, обикновено се използува процесор от стандартна серия компютър.
 
Канал. Този блок присъствува само ако става въпрос за присъединен векторен процесор и неговата роля беше изяснена по-горе.
 
Векторен контролер. В неговите функции влизат декодиране на векторните команди, изчисляване на параметрите за адресация на операндите, разпределение и настройка на генератора на векторните адреси на паметта и самия аритметичен конвейер, и накрая проследяване изпълнението на векторните команди. Когато те са изпълнени, векторният контролер реализира и необходимите операции по изработване признака за състоянието.
 
Генератор на векторните адреси и контролер на паметта. Това устройство е най-критичното за общата производителност на процесора. То преобразува параметрите за адресация, генерирани от векторния контролер, във физически адреси и изработва необходимите управляващи сигнали за паметта.
 
Локална памет. Тази памет работи като буферна, така че генераторът на векторните адреси и контролер на паметта, и аритметичният конвейер да се обръщат към данните когато те са им нужни, без да си влияят взаимно. Освен това се намалява трафикът към основната памет, а от там се намалява времето за достъп.
 
Аритметичен конвейер. Това апаратно устройство фактически изпълнява аритметичните операции свързани с векторните команди. Като правило то включва няколко аритметични конвейера.
 
Тази типова структура на векторния процесор осигурява паралелизъм на три нива:
· На първо ниво е конвейерното изпълнение на аритметичните операции в блока "аритметичен конвейер".
· На второ ниво е конвейерното изпълнение на векторната команда. И действително, генераторът на векторните адреси и контролер на паметта заедно с векторният контролер образуват IF степента, а блокът "аритметичен конвейер" представлява E степента в конвейера за команди. Локалната памет се явява фиксатор между тези две степени.
· На трето ниво, възможно е да се изпълняват паралелно векторна команда и скаларна команда, разбира се ако те са независими една от друга.
 
Втора основна структурна схема. Тази структура е показана на фиг.7-2 и е предложена от IBM [3].
 
Ако поредната команда, която се декодира в блока "Декодер на командите" е векторна, тя се пренасочва към "Изпълнително устройство за векторни команди", в противен случай се поема от "Изпълнително устройство за скаларни команди". При липса на блока "Изпълнително устройство за векторни команди", което е известно на компилаторът, последният при срещане на векторна команда я замества с последователност от скаларни команди и така целия изчислителен процес върху вектори се свежда до обработка на скалари. И при тази структурна схема е възможно да се реализира паралелизъм на посочените по горе три нива. Вярно е, че първите две нива не са така очевидни както при предходната структура, но конвейерното изпълнение на векторните команди и конвейерното изпълнение на аритметичните операции се осъществяват в блока в "Изпълнително устройство за векторни команди".
 
Ако се изключи блокът "Изпълнително устройство за векторни команди", то останалата част на структурата представлява конвенционален процесор, което определя и основното предимство на тази структурна организация пред предходната, а именно по-ниската й цена. По данни на фирмата IBM цената на векторния процесор превишава цената на скаларния с около 10%, а производителността се повишава в интервала 1,5...3,3 пъти.
 


Фиг.7-2. Втора възможна структура на векторен процесор, предложена от IBM.
 

 






Коментирай свободно: