ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 24.12.2021
Просмотров: 6824
Скачиваний: 22
159
Нарешті, підмножину архітектури POWER-1 реалізовано в процесорах Power PC, які є основою комп'ютерів Apple Macintosh. Іншими прикладами суперскалярних процесорів є процесори систем UltraSparc фірми Sun та Alpha фірми DEC.
Структура суперскалярного процесора та його зв'язки з кеш пам'яттю даних і команд, показані на рис. 4.15.
Тут одночасно вибирається та декодується декілька команд, а блок виконання команд включає кілька функціональних блоків. Для забезпечення одночасного читання та запису кількох операндів кеш пам'ять будується за модульним принципом.
Зрозуміло, що підвищення продуктивності такого процесора досягається шляхом його конвеєризації. Діаграма виконання команд в суперскалярному процесорі, який має два конвеєри команд, показана на рис. 4.16а.
160
Можливе суміщення суперскалярного та суперконвеєрного опрацювання команд, як це показано на рис. 4.16 b.
4.5. Процесор векторного комп'ютера
Вище були розглянуті скалярні та суперскалярні процесори, в яких операції виконуються над скалярними даними. Однак існує значна кількість завдань, коли опрацюванню за одними процедурами підлягають великі масиви (вектори) даних. У цьому випадку виглядає доцільним розгляд можливості модифікації комп'ютера під виконання цього класу завдань. До цих пір така модифікація здійснювалась в потужних комп'ютерах, але на даний час вона почала поширюватись на всі типи комп'ютерів. Відповідно комп'ютери, орієнтовані на опрацювання векторів даних, дістали назву векторних.
Різницю між виконанням скалярної та векторної операції наглядно відображає рис. 4.17, з якого видно, що скалярна операція передбачає виконання додавання над двома даними, тоді як векторна - над двома векторами даних.
Аби зрозуміти стиль програмування векторних комп'ютерів, наведемо приклад програми із скалярними і векторними кодами. Запишемо програму обчислення виразу Y= а * X + Y, де Y, X - вектори, а а - скаляр. Нехай вектори мають довжину по 64 елементи. Векторна програма має вигляд:
LD |
F0, а |
; load scalar a |
LV |
VI, Rx |
; load vector X |
MULTS |
V2, F0, V1 |
; vector-scalar mult. |
LV |
V3, Ry |
; load vector Y |
ADDV |
V4, V2, V3 |
;add |
SV |
Ry, V4 |
; store vector |
Відповідна скалярна програма має вигляд:
І61
|
LD |
F0,a |
|
|
ADDI |
R4,Rx,#512 |
; last address to |
Loop: |
load LD |
F2,0(Rx) |
; load X(l) |
|
MULTD F2,F0,F2 |
; a*X(l) |
|
|
LD |
F4, 0(Ry) |
; load Y(l) |
|
ADDD |
F4,Ґ2,F4 |
; a*X(l)+Y(l) |
|
SD |
F4,0(Ry) |
; store into Y(l) |
|
ADDI |
Rx,Rx,#8 |
; increment index |
|
ADDI |
Ry,Ry,#8 |
; increment index |
|
SUB |
R20,R4,Rx |
; compute bound |
|
BNZ |
R20, loop |
; check if done |
У скалярній програмі курсивом позначено залежності, яких немає у векторному варіанті програми. Обидва варіанти програми можна порівняти за наступними кількісними характеристиками:
-
За кількістю операцій: 578(2+9*64) проти 321(1+5*64); кількість операцій у векторній програмі зменшено в 1,8 разу.
-
За кількістю команд: 578(2+9*64) проти 6-ти команд у векторній програмі; перевага в 96 разів.
В таблиці 4.3 наведені характеристики кількох промислових векторних комп'ютерів, з якої видно доцільність їх створення з огляду на досягнуту продуктивність.
Таблиця 4.3
Тип машини |
Рік випуску |
Частота, MHz |
Кількість регістрів |
Кількість елементів |
Кількість пристроїв float point |
Кількість пристроїв load/store |
Продуктив ність (MFLOPS) |
Cray-1 |
1976 |
80 |
8 |
64 |
6 |
1 |
160 |
Cray XMP |
1983 |
120 |
8 |
64 |
8 |
2L, IS |
940 |
Cray YMP |
1988 |
166 |
8 |
64 |
8 |
2L, IS |
2667 |
Cray C-90 |
1991 |
240 |
8 |
128 |
8 |
4 |
15238(16) |
Cray T-90 |
1996 |
455 |
8 |
128 |
8 |
4 |
57600(32) |
Conv. C-l |
1984 |
10 |
8 |
128 |
4 |
1 |
20(1) |
Conv. C-4 |
1994 |
133 |
16 |
128 |
3 |
1 |
3240(4) |
Fuj. VP200 |
1982 |
133 |
8-256 |
32-1024 |
3 |
2 |
533(1) |
Fuj. VP300 |
1996 |
100 |
8-256 |
32-1024 |
3 |
2 |
N/A |
NEC SX/2 |
1984 |
160 |
8 + 8К |
256 + var |
16 |
8 |
1300(1) |
NEC SX/3 |
1995 |
400 |
8 + 8К |
256 + var |
16 |
8 |
25600(4) |
Таким чином, процесори векторних комп'ютерів виконують команди над векторами даних. Структура цих процесорів за складом та зв'язками повторює вже розглянуті вище структури процесорів, тобто це можуть бути процесори векторних комп'ютерів із
162
складною та простою системою команд, конвеєрні та суперконвеєрні, а також процесори супервекторних комп'ютерів, коли в процесорі є декілька конвеєрів команд. Основна їх відмінність - забезпечення одночасного виконання однієї команди над вектором даних. Це, зокрема, дозволяє будувати 'їх блоки виконання команд за конвеєрним принципом і при цьому позбутися конфліктів, які суттєво гальмують роботу конвеєра чи ускладнюють його структуру.
Для вияснення базових принципів побудови процесорів векторних комп'ютерів розглянемо структуру та систему команд процесора векторного варіанта комп'ютера DLX, а саме комп'ютера DLXV. До складу процесора, структура якого приведена на рис. 4.18, входять пристрій векторного читання запису, регістрові файли з векторними та скалярними регістрами, а також операційний пристрій з набором конвеєрних операційних пристроїв додавання, множення та ділення з рухомою комою та виконання арифметичних і логічних операцій над цілими числами.
Цей комп'ютер має векторні команди, які наведено в табл. 4.4.
Таблиця 4.4
Команда |
Операнди |
Операція |
Коментар |
ADDV |
VI, V2.V3 |
V1=V2+V3 |
VECTOR+VECFOR |
ADDSV |
VI, F0.V2 |
V1=F0+V2 |
SCALAR+VECFOR |
MULTV |
V1,V2,V3 |
Vl=V2xV3 |
VECFORxVECFOR |
MULSV |
VI, F0.V2 |
V1=F0XV2 |
SCAFAR x VECTOR |
LV |
VI, Rl |
Vl=M[Rl..Rl+63] |
FOAD, SFRIDE=1 |
LVWS |
V1,R1,R2 |
V1=[R1..R1+63*R2] |
LOAD, SFRIDE=R2 |
LVI |
V1,R1,V2 |
V1 = [R1+V2i,i=0..63 |
indirect ("gather") |
CeqV |
VM,V1,V2 |
VMASKi=(Vl I=V2I) |
comp. Set mask |
MOV |
VLR,R1 |
Vec. Len. Reg = Rl |
set vector length |
MOV |
VM, Rl |
Vec. Mask=Rl |
set vector mask |
Приведений процесор є процесором комп'ютера з простою системою команд. До цього типу належать усі векторні суперкомп'ютери: Cray, Convex, Fujitsu, Hitachi, NEC.
163
Хоча потрібно зауважити, що існують і векторні комп'ютери з архітектурою «пам'ять-пам'ять», коли всі векторні операції є операціями типу пам'ять-пам'ять наприклад, CDC-6600.
Подібно до приведеного на рис, 4.18, процесори векторних комп'ютерів містять наступні основні компоненти
-
Векторні регістри; це регістрий файл фіксованої ємності що вміщує вектор даних. Цей файл має як мінімум 2 порти на читання і один порт на запис та зазвичай включає 8-32 векторних регістри, кожний з яких є 64-128-розрядним
-
Конвеєрні операційні пристрої. Зазвичай застосовують 4-8 операційних пристроїв, а саме: додавання, множення і ділення з фіксованою та рухомою комою, зсуву тощо
-
Векторний вузол читання-запису, також конвеєрний, який опрацьовує вектори даних. Водночас застосовують декілька таких вузлів
-
Скалярні регістри, які містять один скаляр з рухомою комою або адресу
-
Багатошинні магістралі або комутаційні мережі, які з'єднують між собою всі зазначені компоненти, аби прискорити роботу процесора в цілому
Перші векторні комп'ютери STAR-100 фірми CDC та ASC фірми ТІ були створені в 1972 році. Це були векторні комп'ютери з архітектурою типу пам'ять-пам'ять
Значний внесок в теорію побудови векторних комп'ютерів зробив видатний американський конструктор векторних суперкомп'ютерів Сеймур Крей. На рис. 4.19 зображено його перший векторний суперкомп'ютер Сгау-1 та векторні суперкомп'ютери Сгау-2 і Cray-YMP.
Комп'ютер CRAY-1 був створений в 1976 році і мав архітектуру типу «регістр-ре-гістр», тому він був найшвидшим серед векторних та скалярних комп'ютерів свого часу. В 1981 році на ринку з'явився значно потужніший векторний комп'ютер CYBER-205 фірми CDC з тією ж базовою архітектурою, що і STAR-100, але більшою кількістю векторних функціональних блоків. Це були векторні комп'ютери з архітектурою типу "пам'ять-пам'ять". В 1983 році фірма Cray Research поставила на ринок векторний суперкомп'ютер CRAY X-MR а через кілька років - CRAY-2, який мав вищу тактову частоту та іще більший рівень конвеєризації. В 1988 році фірма Cray Research створила значно швидший, ніж Х-МР суперкомп'ютер CRAY Y-MP, котрий мав 8 конвеєрних процесорів, кожний з яких працював з тактом 6 нc.
Одночасно потужні векторні суперкомп'ютери почали створюватись і в інших державах. Зокрема, в середині 80-х років в Японії були створені суперкомп'ютери Fujitsu