Комп’ютерні системи  класу sisd 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Комп’ютерні системи  класу sisd



Лекція № 12

 

Комп’ютерні системи  КЛАСУ SISD

До класу SISD (single instruction, single dataодин потік команд, один потік даних) класифікації Флінна відносяться послідовні комп’ютерні системи, які здатні обробляти тільки один потік послідовно виконуваних інструкцій над одним потоком даних (рис.12.1).  Вони відноситься до класичної архітектури фон-Неймана.

 

Рисунок 12.1 – Комп’ютерні системи класу SISD

 

Архітектура фон Неймана (Von Neumann architecture) – це архітектура електронних обчислювальних машин, основною відмінністю якої від інших подібних архітектур є спільне зберігання даних та машинних команд в комірках однієї й тієї ж пам’яті, що унеможливлює їх розрізнення за способом представлення або кодування. Названа так на честь відомого математика та теоретика обчислювальної техніки Джона фон Неймана (John von Neumann), та по сьогодні залишається домінуючою схемою організації ЕОМ загального призначення.

Авторство концепції, покладеної в основу фон-нейманівської архітектури, насправді належить колективу авторів (фон Нейман, Дж. Екерт, Дж. Маклі), які працювали над створенням однієї з перших ЕОМ загального призначення з можливістю перепрограмування — ENIAC (1943, зокрема фон Нейман був консультантом в цьому проекті), а потім вже глибше реалізована в машині EDVAC (1952).

Головною проблемою, яка поставала перед розробниками обчислювальної техніки була надзвичайна складність введення алгоритму обчислень в ЕОМ, для чого доводилось мати справу з численними перемикачами, тумблерами, роз’ємами та іншими комутуючими елементами. Це ускладнювало процес, призводило до величезної кількості помилок та аж ніяк не додавало цим машинам універсальності.

Фон Нейман в своїй науковій праці “Попередній дискусії” запропонував зберігати алгоритм разом з даними для обчислень в пам’яті обчислювальної машини, що б давало можливість по-перше оперативно перепрограмувати систему, а по-друге поводитись з командами як з даними, проводити над ними такі ж обчислювальні операції, тобто фактично відкривало можливість для написання програм, які самі себе модифікують. Таким чином пропонувалась організація обчислень, яка дійсно робила обчислювальну машину універсальним інструментом.

Така структура унеможливлювала розрізнення команд від даних в пам’яті машини за структурою представлення, але фон Нейманом було вказано, що таке розміщення можливе “за умови, якщо машина якимось чином зможе розрізнити їх”. Для того, щоб вказати машині на те, де є команди, а де є дані, була згодом запропонована концепція лічильника команд (program counter), в якому зберігалась адреса поточної команди, а після її виконання замінювалась адресою наступної. Адреси ж самих операндів (даних) зберігались безпосередньо в команді.

Також в праці “Попередня дискусія” була досить докладно розглянута чотирикомпонентна структура обчислювального інструмента, яка зараз вважається класичною структурою фон-нейманівської машини, а саме: арифметичний пристрій, пристрій управління, пам’ять та пульт оператора рис.12.2.

Обчислювальна машина є машиною з архітектурою фон Неймана, якщо:

- програма та дані зберігаються в одній загальній пам’яті. Це дає можливість виконувати над командами ті ж дії, що і над даними;

- кожна комірка пам’яті машини ідентифікується унікальним номером, який називається адресою;

- різні слова інформації (команди та дані) розрізняються за способом використання, але не за способом кодування та структурою представлення в пам’яті;

- кожна програма виконується послідовно, починаючи з першої команди, якщо немає спеціальних вказівок. Для зміни цієї послідовності використовуються команди передачі управління.

 

Рисунок 12.2 – Структурна схема КС фон Неймана

КС фон Неймана, як і практично кожна сучасна ЕОМ загального призначення, складається з чотирьох основних компонентів:

- о пераційний пристрій (ОП), який виконує команди з визначеного набору, який називається системою (набором) команд, над порціями інформації, яка зберігається у відокремленого від операційного пристрою пам’яті (проте сучасні архітектури мають в складі операційного пристрою додаткову пам’ять, в якій операнди зберігаються порівняно короткий час безпосередньо в процесі проведення обчислень);

- пристрій управління (ПУ), який організує послідовне виконання алгоритмів, розшифрування команд, які поступають із запам’ятовуючого пристрою, реагує на аварійні ситуації та виконує загальні функції управління всіма вузлами обчислювальної машини. Зазвичай ОП та ПУ об’єднуються в структуру, яка називається центральним процесором. Слід звернути увагу, що вимога саме послідовного, в порядку надходження з пам’яті (в порядку зміни адрес в лічильнику команд) виконання команд є принциповою. Архітектури, які не додержуються такого принципу, взагалі не вважаються фон-нейманівськими.

- з апам’ятовуючий пристрій (ЗП) – масив комірок з унікальними ідентифікаторами (адресами), в яких зберігаються команди та дані;

- пристрій введення-виведення (ПВВ), який забезпечує зв’язок ЕОМ з зовнішнім світом, різними пристроями, які передають інформацію на переробку в ЕОМ та приймають результати.

Після завантаження програми (алгоритму й даних для обробки) в запам’ятовуючий пристрій, машина фон Неймана може працювати автоматично, без втручання оператора. Кожна комірка пам’яті машини має унікальний номер – адресу, спеціальний механізм, найчастіше – лічильник команд – забезпечує автоматичне виконання необхідної послідовності команд, і визначає на кожному етапі адресу комірки, з якої необхідно завантажити наступну команду.

Перед початком виконання програми в лічильник записується адреса її першої команди. Визначення адреси наступної команди відбувається за одним з наступних сценаріїв:

- якщо поточна команда не є командою передачі управління (тобто це просто арифметична або логічна операція над даними), то до поточного значення лічильника додається число, яке дорівнює довжині поточної команди в мінімально адресованих одиницях інформації (зрозуміло, що це можливо за умови, якщо звичайні команди в блоках, не розділених командами передачі управління, розташовуються послідовно в пам’яті, інакше адреса наступної команди може зберігатись, наприклад, безпосередньо в команді);

- якщо поточна команда – команда передачі управління (команда умовного або безумовного переходу), яка змінює послідовний хід виконання програми, то в лічильник примусово записується адреса тієї команди, яка була замовлена при виконанні переходу, де б вона не знаходилась.

Архітектура фон Неймана є принципово послідовною. І це є суттєвим обмежуючим фактором в підвищенні швидкодії машин з такою організацією, унеможливлює введення явного паралелізму в систему. Передусім це питання не технічне, а концептуальне і пов’язане з самою парадигмою програмування для фон-нейманівських машин.

Разом з тим, хоча майже всі ЕОМ загального призначення є фон-нейманівськими, вони суттєво використовують механізми розпаралелення обчислень, хоча це відбувається й неявно, на рівні внутрішньої організації процесора, який непомітно для програміста виявляє схований паралелізм в послідовних програмах для фон-нейманівських машин. Така “непомітність” є принциповою. Фактично фоннейманівською в сучасних ЕОМ залишається саме архітектура обчислювальної машини (тобто програмна організація). Дана концепція пропонує програмісту надзвичайно просту модель виконання програми, послідовну модель, яка збігається з образом мислення більшості програмістів, яка є домінуючою в написанні програм. Явне паралельне програмування – це дуже складна галузь, яка потребує повної перебудови образу мислення програміста, оперування складнішими абстракціями, застосування зовсім інших алгоритмів та структур даних. Тому збереження фоннейманівської архітектури, яким би стримуючим фактором воно не було, є абсолютно принциповим для проектувальників ЕОМ загального призначення.

 

 

Контрольні запитання

 

1 Чим відрізняються комп’ютерні системи класу SIМD від комп’ютерних систем класу SISD?

2

 

 

Лекція №13

 

Рисунок 13.1 – Структура обчислювальних систем класу SIMD

 

Безперечними представниками класу SIMD вважаються матриці процесорів: ILLIAC IV, ICL DAP, Goodyear Aerospace MPP, Connection Machine 1 і т.п. У таких системах єдиний керуючий пристрій контролює безліч процесорних елементів. Кожен процесорний елемент одержує від пристрою керування в кожен фіксований момент часу однакову команду і виконує її над своїми локальними даними.

Іншим підкласом SIMD-систем є векторні комп’ютери. Векторні комп’ютери маніпулюють масивами схожих даних подібно тому, як скалярні машини обробляють окремі елементи таких масивів. Це робиться за рахунок використання спеціально сконструйованих векторних центральних процесорів. При роботі у векторному режимі векторні процесори обробляють дані практично паралельно, що робить їх в кілька разів швидшими, ніж при роботі в скалярному режимі. Прикладом таких систем є Hitachi S2600.

13.1 Матричний процесор

Призначення матричних обчислювальних систем багато в чому схоже з призначенням векторних КС - обробка великих масивів даних. Воснові матричних систем лежить матричний процесор (array processor), що складається з регулярного масиву процесорних елементів (ПЕ). Системи подібного типу мають загальний пристрій, що управляє та генерує потік команд, і велике число ПЕ, що працюють паралельно і обробляють кожен свій потік даних. З метою забезпечення достатньої ефективності системи при рішенні широкого кола завдань необхідно організувати зв’язки між процесорними елементами так, щоб якнайповніше завантажити процесори роботою. Саме характер зв’язків між ПЕ і визначає різні властивості системи.

Між матричними і векторними системами є істотна різниця: матричний процесор інтегрує безліч ідентичних функціональних блоків (ФБ), що логічно об’єднані в матрицю і працюють в SIMD-стилі. Не так істотно, як конструктивно реалізована матриця процесорних елементів - на єдиному кристалі або на декількох. Важливий сам принцип - ФБ логічно зкомпоновані в матрицю і працюють синхронно, тобто присутній тільки один потік команд для всіх. Векторний процесор має вбудовані команди для обробки векторів даних, що дозволяє ефективно завантажити конвеєр з функціональних блоків. У свою чергу, векторні процесори простіше використовувати, тому що команди для обробки векторів - це більш зручніша для людини модель програмування, чим SIMD.

Паралельна обробка множинних елементів даних здійснюється масивом процесорів (Мпр). Єдиний потік команд, керуючий обробкою даних в масиві процесорів, генерується контролером масиву процесорів (КМП). КМП виконує послідовний програмний код, реалізує операції умовного і безумовного переходів, транслює в Мпр команди, дані і сигнали управління (рис.13.2).

 

Рисунок 13.2 – Матричний процесор

 

Рисунок 13.3 – Узагальнена модель матричної КС

 

Розглядаючи масив процесорів, слід враховувати, що для зберігання множинних наборів даних в ніьому, крім безлічі процесорів, повинно бути присутнім і безліч модулів пам’яті. Крім того, в масиві повинна бути реалізована мережа взаємозв’язків, як між процесорами, так і між процесорами і модулями пам’яті.

Таким чином, під терміном масив процесорів розуміють блок, що складається з процесорів, модулів пам’яті і мережі з’єднань. Додаткову гнучкість при роботі з даною системою забезпечує механізм маскування, що дозволяє залучати до участі в операціях лише певну підмножину з наявних в масиві процесорів. Маскування реалізується як на стадії компіляції, так і на етапі виконання, при цьому процесори, виключені шляхом установки в нуль відповідних бітів маски, під час виконання команди простоюють.

Інтерфейсна ОМ (ІОМ) сполучає матричну SIMD-систему із зовнішнім світом, використовуючи для цього який-небудь з мережевих інтерфейсів, наприклад Ethernet, як це має місце в системі MasPar MP-1. Інтерфейсна ОМ працює під управлінням операційної системи, найчастіше ОС UNIX. На ІОМ користувачі готують, компілюють і відладжують свої програми. Спочатку програми завантажуються з інтерфейсної ОМ в контроллер управління масивом процесорів. Потім КМП в процесі виконання програми розподіляє команди і дані по процесорних елементах масиву. У деяких КС, наприклад в Massively Parallel Computer MPP, при створенні, компіляції і відладці програм КМП і інтерфейсна ОМ використовуються спільно.

На роль ІОМ підходять різні обчислювальні машини. Так, в системі СМ-2 в цій якості виступає робоча станція SUN-4, в системі MasPar - DECstation 3000, а в системі МРР - DEC VAX-11/78.

Функції контролера масиву процесорів:

- виконує послідовний програмний код;

- реалізує команди розгалуження програми;

- транслює команди і сигнали управління в процесорні елементи.

Рис.13.4. ілюструє одну з можливих реалізацій КМП, зокрема прийняту в пристрої управління системи PASM (Partitioned SIMD/MIMD computer).

 

Рисунок 13.4 – Контролер масиву процесорів

 

При завантаженні з ІОМ програма через інтерфейс введення/виведення вводиться в оперативний запам’ятовуючий пристрій КМП (ОЗП КМП). Команди для процесорних елементів і глобальна маска, що формується на етапі компіляції, також через інтерфейс введення/виведення завантажуються в ОЗП команд і глобальної маски (ОЗП КГМ). Потім КМП починає виконувати програму, витягуючи або одну скалярну команду з ОЗП КМП, або множинні команди з ОЗП КГМ. Скалярні команди - команди, що здійснюють операції над скалярними даними, що зберігаються в КМП та виконуються центральним процесором (ЦП) контролера масиву процесорів. У свою чергу, команди, що оперують паралельними змінними, що зберігаються в кожному ПЕ, перетворюються в блоці вибірки команд в простіші одиниці виконання - нанокоманди. Нанокоманди спільно з маскою пересилаються через шину команд для ПЕ на виконання в масив процесорів. Наприклад, команда складання 32-розрядних слів в КМП системи МРР перетвориться в 32 нанокоманди однорозрядного складання, які кожним ПЕ обробляються послідовно. У більшості алгоритмів подальший порядок обчислень залежить від результатів і/або прапорів умов попередніх операцій. Для забезпечення такого режиму в матричних системах статусна інформація, що зберігається в процесорних елементах, повинна бути зібрана в єдине слово і передана в КМП для вироблення рішення про розгалуження програми. Наприклад, в пропозиції

IF A (умова A) THEN DO В

 

оператор В буде виконаний, якщо умова А справедлива у всіх ПЕ. Для коректного включення/відключення процесорних елементів КМП повинен знати результат перевірки умови А у всіх ПЕ. Така інформація передається в КМП по однонаправленій шині результату. У системі СМ-2 ця шина названа GLOBAL. У системі МРР для тієї ж мети організована структура, звана деревом SUM-OR. Кожен ПЕ розміщує вміст свого однорозрядного регістра ознаки на вході дерева, яке за допомогою операції логічного складання комбінує цю інформацію і формує слово результату, використовуване в КМП для ухвалення рішення.

 

Рисунок 13.8 – Функціональна структура системи ILLIAC IV

Матрична обчислювальна система ILLIAC IV повинна була складатися з 4 квадрантів (К1-К4), підсистеми введення-виведення інформації, керуючої КС B 6700 (або B 6500), дискової пам'яті (ДП) і архівної пам'яті (АП). Планувалося, що КС забезпечить швидкодію 109 опер./с. У реалізованому варіанті ILLIAC IV містився тільки один квадрант, що забезпечив швидкодію 2*108 опер./с. При цьому ILLIAC IV залишалася самою швидкодіючою обчислювальною системою аж до 80-х років 20 сторіччя.

Квадрант - матричний процесор, що включав пристрій управління і 64 елементарних процесора. Пристрій управління був спеціалізованою ЕОМ, яка використовувалася для виконання операцій над скалярами і формувала потік команд на матрицю ПЕ. Елементарні процесори матриці були пов'язані один з одним. Структура квадранта системи ILLIAC IV представлялася двовимірними гратами, в яких граничні ПЕ були зв'язані по канонічній схемі (циркулянтним графом), що можна зобразити у вигляді плоских грат, де вузли в кожному стовпці замкнуті в кільце, а вузли в послідовних рядах сполучені в замкнуту спіраль. Другий варіант уявлення - хордальне кільце з кроком хорди рівному 4 (рис.13.9).

Кожен ПЕ мав:

- накопичуючий суматор (64 розряди);

- регістр другого операнда (64 розряди);

- регістр передаваної інформації з даного ПЕ в сусідній ПЕ (64 розряди);

- регістр, що використався як тимчасова пам'ять (64 розряди);

- регістр модифікації адресного поля команди (16 розрядів);

- регістр стану даного ПЕ (8 розрядів).

 

Рисунок 13.9 – Структура міжпроцесорних зв'язків в ILLIAC IV

 

ПЕ міг знаходитися в одному з двох станів - активному або пасивному. У першому стані йому дозволялося, а в другому заборонялося виконувати команди, що поступали з пристрою управління. Стан ПЕ задавався за допомогою спеціальних команд. Накопичуючий суматор і всі регістри ПЕ були програмно адресуємі.

Пам'ять кожного ПЕ - 16 Кб. До кожної пам'яті безпосередній доступ мав власний ПЕ. Обмін інформацією між пам’яттями різних ПЕ здійснювався по мережі зв'язку за допомогою спеціальних команд пересилок.

Підсистема введення/виведення складалася з пристрою управління, буферного пристрою, що запам'ятовує, і комутатора. Комплекс цих пристроїв забезпечував обмін інформацією між квадрантами ILLIAC IV і засобами введення/виведення: ЕОМ В 6700, дисковою і архівною пам'яттю, периферійними пристроями, мережею ARPA.

Керуюча КС В 6700 - це мультипроцесорна система корпорації Burroughs, яка могла мати в своєму складі від 1 до 3 центральних процесорів і від 1 до 3 процесорів введення/виведення інформації і володіла швидкодією 1-3 млн. операцій в секунду. Вона використовувалася для реалізації функцій операційної системи (включаючи уведення-виведення інформації, операції по компіляції і компоновці програм, розподіл апаратних ресурсів, виконання службових програм і т.п.).

Дискова пам'ять (ДП) складалася з двох дисків і обрамляючих електронних схем.

Ця пам'ять мала місткість близько 109 біт і була забезпечена двома каналами, по кожному з яких можна було паралельно передавати і приймати інформацію із швидкістю 0,5*109 біт/с. Середній час звернення до диска 20 мс.

Архівна пам'ять (АП) - постійна лазерна пам'ять з одноразовим записом, розроблена фірмою Precision Instrument Company.

У системі ILLIAC IV налічувалося більше 6*106 електронних компонентів. Відмови компонентів або з'єднань могли відбуватися через декілька годин. З цієї причини в систему була включена обширна бібліотека контрольних і діагностичних тестів.

Засоби програмування ILLIAC IV включали мову асемблер (Assembler Language) і три мови високого рівня: Tranquil, Glynpir, FORTRAN. Мови високого рівня через архітектурні особливості ILLIAC IV відрізнялися від відповідних мов ЕОМ в частині розподілу двовимірної пам'яті, операцій над векторами і пересилок даних.

 

Рисунок 13.10 – Обробка векторним процесором багатовимірного масиву

 

Розглянемо можливі підходи до архітектури засобів векторної обробки. Найбільш поширені з них зводяться до трьох груп:

- процесор з конвеєрним арифметико-логічним пристроєм;

- процесор з масивом паралельних арифметико-логічних пристроїв;

- масив паралельних процесорів.

Останній варіант є багатопроцесорною системою, відомою як матрична КС. Поняття векторного процесора має відношення до двох перших груп. 

 

Рисунок 13.11 – Узагальнена структура векторного процесора

 

Склад векторної системи:

- скалярний процесор, що дозволяє паралельно виконувати векторні і скалярні команди;

- векторні регістри для зберігання векторів-операндів, які є сукупністю скалярних регістрів, об’єднаних в чергу типу FIFO, здатну зберігати 50-100 чисел з плаваючою комою.

Набір векторних регістрів (Va, Vb, Vc...) є в будь-якому векторному процесорі. Система команд векторного процесора підтримує роботу з векторними регістрами і обов’язково включає команди:

- завантаження векторного регістра вмістом послідовних елементів пам’яті, вказаних адресою першої комірки цієї послідовності;

- виконання операцій над всіма елементами векторів, що знаходяться у векторних регістрах;

- збереження вмісту векторного регістра в послідовності комірок пам’яті, вказаних адресою першої комірки цієї послідовності;

- регістр довжини вектора. Цей регістр визначає, скільки елементів фактично містить оброблюваний в даний момент вектор, тобто скільки індивідуальних операцій з елементами потрібно зробити;

- регістр максимальної довжини вектора, що визначає максимальне число елементів вектора, яке може бути одночасно оброблене апаратурою процесора. Цей регістр використовується при розділенні дуже довгих векторів на сегменти, довжина яких відповідає максимальному числу елементів, що обробляються апаратурою за один прийом;

- регістр маски вектора служить для виконання таких операцій, в яких повинні брати участь не всі елементи векторів. У цьому регістрі кожному елементу вектора відповідає один біт. Установка біта в одиницю дозволяє запис відповідного елемента вектора результату у вихідний векторний регістр, а скидання в нуль - забороняє.

- регістр вектора індексів по структурі аналогічний регістру маски. Служить для виконання операцій упакування/розпаковування для отримання вектора, що містить ненульові елементи і для зворотної операції відповідно. У векторі індексів кожному елементу початкового вектора відповідає один біт. Нульове значення біта свідчить, що відповідний елемент вихідного вектора рівний нулю.

Переваги векторного процесора:

- замість багаторазового вибору одних і тих же команд досить здійснити вибір тільки однієї векторної команди, що дозволяє скоротити витрати за рахунок пристрою управління і зменшити вимоги до пропускної здатності пам’яті;

- векторна команда забезпечує процесор упорядкованими даними. Коли ініціюється векторна команда, КС знає, що їй потрібно вибрати n пар операндів, розташованих в пам’яті впорядкованим чином. Так, процесор може вказати пам’яті на необхідність почати вибір таких пар. Якщо використовується пам’ять з чергуванням адрес, ці пари можуть бути отримані із швидкістю однієї пари за цикл процесора і направлені для обробки в конвеєризованний функціональний блок. За відсутності чергування адрес або інших засобів вибору операндів з високою швидкістю переваги обробки векторів істотно знижуються.

 

Асоціативні КС

В основі асоціативних КС лежить асоціативний процесор. Асоціативні КС мають n процесорних елементів (ПЕ), як правило, послідовної порозрядної обробки для кожного з елементів пам’яті. Операції здійснюються одночасно всіма n ПЕ. Всі або частина елементарних послідовних ПЕ можуть синхронно виконувати операції над всіма комірками або над вибраною множиною слів асоціативної пам’яті. Приклад асоціативної КС - система STARAN, розроблена Goodyear Aerospace Corporation в 1972 році.

Асоціативний процесор (АП) - це асоціативна пам’ять, що допускає паралельний запис у всі комірки, для яких було зафіксовано збіг з асоціативною ознакою. Ця особливість АП, що носить назву мультизапису, є першою відмінністю асоціативного процесора від традиційної асоціативної пам’яті. Прочитування і запис інформації можуть проводитися по двох зрізах масиву, що запам’ятовує, - або це все розряди одного слова, або один і той же розряд всіх слів. При необхідності виділення окремих розрядів зрізу зайві позиції можна маскувати. Кожен розряд зрізу в АП забезпечений власним процесорним елементом, що дозволяє між прочитуванням інформації і її записом проводити необхідну обробку, тобто паралельно виконувати операції арифметичного складання, пошуку, а також емулювати багато рис матричних КС.

 

Контрольні запитання

 

1 Які є типи архітектурної організації масиву процесорних елементів у матричних SIMD-системах?

2 Яка різниця між матричними і векторними комп’ютерними системами?

3 З яких компонентів складається матрична комп’ютерна система?

4 Які функції контролера масиву процесорів?

5 Коли була розроблена комп’ютерна система ILLIAC IV?

 

Лекція №14

 

Конвеєрні АЛП

У варіанті з конвеєрним АЛП обробка елементів векторів проводиться конвеєрним АЛП для чисел з плаваючою комою (рис.14.1). Операції з числами у формі з плаваючою комою достатньо складні, але піддаються розбиттю на окремі кроки. Наприклад, складання двох чисел зводиться до чотирьох етапів:

- порівняння порядків;

- зміщення мантиси меншого з чисел;

- складання мантис;

- нормалізації результату.

 

      П            М            С                Н

Рисунок 14.1 – Обробка елементів векторів конвеєрним АЛП для чисел з плаваючою комою Кожен етап може бути реалізований за допомогою окремого ступеня конвеєрного АЛП. Черговий елемент вектора подається на вхід конвеєра, як тільки звільняється перший ступінь (рис.14.2).  

Рисунок 14.2 – Процесор з конвеєрним арифметико-логічним пристроєм

 

Рисунок 14.4 – Процесор з масивом паралельних арифметико-логічних пристроїв

 

Принцип конвеєрної обробки інформації знайшов широке застосування в обчислювальній техніці. У першу чергу це відноситься до конвеєра команд. Конвеєр команд - апаратна структура в обчислювальних пристроях ЕОМ, призначена для прискорення виконання машинних команд шляхом суміщення певних стадій їх виконання в часі. Практично всі сучасні ЕОМ використовують цей принцип. В основі концепції конвеєризації обчислень є твердження про те, що процес обробки машинної команди можна розбити на декілька практично незалежних етапів, які потім можна суміщати в часі для декількох команд в відповідній апаратурі (конвеєрі команд).

Загальноприйнятим в теорії конвеєрних структур є така послідовність етапів:

- вибірка (instruction fetch, IF) - завантаження нової команди з пам'яті;

- декодування (instruction decode, ID) - інтерпретація та відправка команди у відповідний операційний пристрій в залежності від різновиду операції;

- виконання (execution, ЕХ) - виконання команд та обчислення ефективної адреси пам'яті для результату або операндів, які необхідно завантажити;

- звертання до пам'яті (memory, MEM) - виконання операцій з пам'яттю (для команд завантаження/збереження);

- збереження результату (writeback, WB) - збереження результату обчислень в регістрі.

Слід зазначити, що така структура є типовою для RISС-архітектур. семантика та кількість етапів в яких зазвичай не дуже відрізняється від наведених, тоді як в CISC-архітектурах конвеєр може бути набагато складнішим.

В процесі виконання команд в конвеєрі, відбувається суміщення вказаних етапів виконання для декількох команд (тобто в конвеєрі одночасно знаходяться декілька - до 5 в даному випадку) команд на різних стадіях. Кожний етап конвеєрного обчислення виконується за один машинний цикл. Зрозуміло, що виконання однієї окремої команди на послідовному процесорі (де команда виконується зразу за один машинний цикл) може бути швидшим, аніж в конвеєрній організації. Але за рахунок суміщення виконання різних команд загальна швидкодія істотно збільшується.

Визначимо декілька понять:

- пропускна здатність - максимальна кількість команд, які виконуються за один такт машинного часу (instructions per cycle, ІРС);

- тривалість етапу (стадії) - кількість машинних циклів для виконання одного етапу конвеєрного обчислення (може бути різною для різних етапів);

- необхідний (максимальний) ступінь паралелізму - кількість (незалежних) команд, які потрібно завантажити в конвеєр для повного використання його потенціалу.

 

Найпростіший (класичний) конвеєр

 

Характеристики пристрою:

- пропускна здатність = 1 ІРС;

- тривалість стадії = 1 цикл;

- необхідний (максимальний) ступінь паралелізму = 1 команда.

 

Суперскалярний конвеєр

Характеристики пристрою:

- пропускна здатність = п ІРС (=3 ІРС на малюнку);

- тривалість стадії = 1 цикл;

- необхідний (максимальний) ступінь паралелізму = п команд (=3 на малюнку).

В тому випадку, коли тривалість всіх стадій є однаковою, пропускна здатність суперскалярного конвеєра в п разів вища за звичайний. Однак для повного завантаження та максимальної ефективності необхідно, щоби на кожному циклі роботи він був завантажений п командами, які можуть виконуватись незалежно одна від одної. Така вимога істотно обмежує ефективність суперскалярного конвеєра, адже ступінь схованого паралелізму звичайних послідовних програм, зазвичай, є не дуже високою і в середньому обмежена числами близько 2.5-3 ІРС, хоча на окремих класах задач може бути істотно вищою. Подальше збільшення рівня паралелізму потребує вже зміни самої парадигми програмування.

 

 

VLIW-конвеєр

- пропускна здатність = п ІРС (=3 ІРС на малюнку)

- тривалість стадії = 1 цикл

- необхідний (максимальний) ступінь паралелізму = п команд (=3 на малюнку)

З рис. легко бачити, що базові параметри УЬІ\¥-конвеєра повністю збігаються з такими для суперскалярного конвеєра (хоча що стосується реальних, а не теоретичних, показників ІРС, то вважається що спеціальні інструменти УЬ^-процесорів для виявлення схованого паралелізму послідовних програм є оптимістичнішими, аніж суперскалярний підхід). УЬІ\У- процесори апаратурно є набагато простішими, аніж суперскалярними, і це можна бачити з конфігурації конвеєра. Тут підготовка до виконання цілого комплексу команд, упакованих в довге командне слово, на стадії ЕХ відбувається одночасно (пакування відбувається ще на етапі компіляції програми), тоді як в звичайному суперскалярному процесорі кожна команда проходить усі стадії окремо.

Суперконвеєр

 

Припустимо, що деякі з вказаних нами етапів типового 5-стадійного конвеєра в свою чергу також допускають розбиття на елементарніші "суперстадії" (на малюнку таке розбиття показане сірими лініями). Тоді стає можливим зменшення тривалості машинного циклу за рахунок того, що кожна з таких "елементарних" стадій може виконуватись швидше аніж "звичайна", а в результаті проміжок часу (вимірюваний одним машинним циклом) між виходом оброблених команд з конвеєра зменшується. В теоретичній моделі з малюнку, де кожна зі "звичайних" стадій розбита на 4 "суперстадії", отримаємо 4-кратний приріст швидкодії за умови, що кількість часу на виконання "звичайної" стадії залишається незмінною. Таким чином, в загальному випадку для (не суперскалярного) суперконвеєра, в якому кожній "звичайній" стадії відповідає т "суперстадій" (елементарних стадій):

- пропускна здатність = 1 ІРС, але тривалість циклу 1/т в порівнянні зі звичайним конвеєром

- тривалість стадії = 1 цикл для "суперстадії", або т циклів для кожної "звичайної стадії"

- необхідний (максимальний) ступінь паралелізму = т команд

Однак нескінченно дрібнити стадії конвеєра та підвищувати таким чином тактову частоту неможливо. Довгі конвеєри стають вкрай неефективними при виконанні команд, які змінюють хід виконання програми (тобто команд умовних та безумовних переходів). Ці команди за певних умов призводять до необхідності повного перезавантаження конвеєра, а чим більше стадій, тим більше часу для цього необхідно.

 

Суперскалярний суперконвеєр

Поєднання принципів суперскалярного виконання (тобто повністю паралельного виконання декількох команд) та суперконвеєрного виконання (тобто подрібнення базових стадій конвеєра) дає організацію, яка сьогодні досить популярна серед архітекторів швидкодіючих мікропроцесорів. В таких структурах:

- пропускна здатність = п ІРС, але тривалість циклу 1/т в порівнянні зі звичайним конвеєром

- тривалість стадії = 1 цикл для "суперстадії", або т циклів для кожної "звичайної стадії"

- необхідний (максимальний) ступінь паралелізму = т*п команд

Разом з тим у багатьох обчислювальних системах поряд з конвеєром команд використовується і конвеєр даних. Поєднання цих двох конвеєрів дає можливість досягти дуже високої продуктивності систем на певних класах задач, особливо якщо при цьому використовується декілька конвеєрних процесорів, здатних працювати одночасно і незалежно один від одного. Саме так і побудовані самі високопродуктивні системи. Найдоцільніше розглянути принцип конвеєрної обробки на прикладі деяких, найбільш представницьких систем.

До числа ЕОМ, в яких широке застосування знайшов конвеєр команд, відноситься одна з кращих свого часу машин БЕСМ-6. Вона була протягом багатьох років найшвидкодіючою в країні завдяки цілому ряду цікавих рішень, у тому числі і конвеєру команд. Останній забезпечувався використанням восьми незалежних модулів ОЗУ, що працюють в системі чергування адрес, і великого числа швидких регістрів, призначених також і для буферизації командної інформації. Це дозволило отримати на БЕСМ-6 продуктивність 1 млн. операцій в секунду.

Певний інтерес представляє побудова систем ІВМ 360/91, а також більш пізньої і більш сучасної ІВМ 360/195. П'ять основних пристроїв системи: ОЗУ, управління пам'яттю з буферним ОЗУ, процесор команд, операційні пристрої для виконання операцій з плаваючою комою, з фіксованою комою і десяткової арифметики працюють одночасно і незалежно один від одного. Оперативне ЗУ побудовано за багатомодульна принципом (до 32 модулів), пристрій управління пам'яттю працює за принципом конвеєра і забезпечує 8 - або 16-кратне чергування адрес при зверненні процесора і каналів вводу - виводу інформації до ОЗП.

Рис. 2.1. Система STAR-100

Крім конвеєра команд в системах ІВМ 360/91 і ІВМ 370/195 у обох ОУ використовується також і конвеєрна обробка даних. Однак у системі 360/195 конвеєр виходить досить значний: у кожному циклі здійснюється вибірка до 8 команд, розшифровка 16 команд, до 3 операцій над адресами і до 3 процесорних операцій. Всього в системі одночасно може оброблятися до 50 команд.

Істотно більш повно використовується принцип магістральної обробки в системі в STAR-100, розробленої фірмою СDС в 1973 р. Треба сказати, що фірма СОС в більшості розроблюваних і випускаються машин і систем використовує принцип конвеєрному обробки для підвищення продуктивності, проте раніше використовувався тільки командний конвеєр, а в системі ЗІРКА-100 - обидва типи конвеєра. Система містить три конвеєрних процесора (рис. 3.1): ППЗ - процесор, що містить конвеєрні пристрої додавання і множення з плаваючою комою; ППФЗ - процесор, що містить конвеєрне пристрій складання з плаваючою комою, конвеєрне багатоцільове пристрій, що виконує множення з фіксованою комою, ділення і витяг квадратного кореня; СП - спеціальний конвеєрний 16-розрядний процесор, що виконує операції з фіксованою комою і ряд логічних операцій.

Конвеєрні процесори оперують з 64 - або 32-розрядними числами і кожні 40 не видають результ



Поделиться:


Последнее изменение этой страницы: 2021-12-15; просмотров: 70; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 13.58.247.31 (0.122 с.)