A_O_Melnik_Arkhitektura_komp_39_yuteriv
.pdf420
11.9. Література для подальшого читання
П и т а н н ям організації введення-виведення інформації присвячена значна кількість літератури. В першу чергу слід назвати навчальну літературу, зокрема підручники з ар хітектури комп'ютера [1-8]. Крім того, ці питання відображені в великій кількості спе ціальної літератури, де описані серійні комп'ютери різних фірм-виробників, яку можна знайти на веб-сторінках цих фірм.
11.10.Література до розділу 11
1.Каган Б. М. Электронные вычислительные машины и системы. - M.: Энергия, 1979. - 528 с
2.Каган Б. М., Каневский M. М. Цифровые вычислительные машины и системы. - М.: Энер гия, 1974. - 680 с
3.Угрюмов Е. П. Цифровая схемотехника. - СПб.: БХВ - Санкт-Петерберг, 2000. - 528 с
4.Справочник по цифровой вычислительной технике. Б. H Малиновский и др. - К.: Техніка, 1980.-320 с
5.D. Patterson, J. Hennessy. Computer Architecture. A Quantitative Approach. Morgan Kaufmann Publishers, Inc. 1996.
6.Patterson, D. A., & Hennessy, J. L. Computer Organization and Design, The Hardware/Software Interface, 2nd ed , San Mateo, CA: Morgan Kaufmann, 1997.
7.Stallings, W. Computer Organization and Architecture, 5th ed., New York, NY: Macmillan Publi shing Company, 2000.
8.Tanenbaum, Andrew. Structured Computer Organization, 4th ed., Upper Saddle River, NJ: Prentice Hall, 1999.
11.11.Питання до розділу 11
1.Назвіть пристрої введення інформації в комп'ютер
2. Назвіть пристрої виведення інформації з комп'ютера |
|
3. |
' . |
4. |
|
5.Поясніть спосіб розпізнавання пристроїв введення-виведення з використанням шини вве дення-виведення
6.Поясніть спосіб розпізнавання пристроїв введення-виведення з використанням лінії ак тивації
7.Поясніть суть скритого пам яттю введення-виведення
8.Наведіть схему та назвіть функції інтерфейсної схеми пристроїв введення-виведення
9.Які є чотири загальних методи керування введенням-виведенням?
10.Поясніть суть, переваги та недоліки програмно-керованого введення-виведення
11.Поясніть суть, переваги та недоліки керованого перериваннями введення-виведення
12.Які події належать до програмно незалежних?
13.Які події належать до програмно залежних?
14.Як комп'ютер реагує на програмно визначені події?
15.Як комп'ютер реагує на програмно незалежні події?
16.Для чого є в комп'ютері система переривання програм?
17.Як називають сигнали, які сповіщають про появу програмно незалежних подій?
18.Як називають програми, на виконання яких є запити?
19.Як називають програми, які виконувались до появи запитів?
421
20.Наведіть часову діаграму процесу переривання.
21.Наведіть основні характеристики системи переривання програм.
22.Назвіть способи визначення допустимого моменту переривання.
23.Для чого і як визначається початкова адреса переривальної програми?
24.Назвіть способи визначення початкової адреси переривальної програми.
25.Як працює пристрій фіксування запитів переривання та формування початкової адреси переривальної програми?
26.Для чого до складу системи переривання програм вводиться тригер блокування пере ривання?
27.Де фіксуються переривання?
28.Для чого потрібно встановлювати порядок обслуговування запитів переривання?
29.Для чого потрібний пріоритет між запитами переривань?
30.Для чого потрібний пріоритет між переривальними програмами?
31.Що таке маска переривань та як вона використовується?
32.В чому полягає повернення до перериваної програми?
33.Поясніть суть, переваги та недоліки прямого доступу до пам'яті.
34.Поясніть суть, переваги та недоліки введення-виведення під керуванням периферійних процесорів (каналів).
35.Що таке канал введення-виведення?
36.Які причини появи каналів введення-виведення?
37.Назвіть функції каналів введення-виведення.
38.Керуюча інформація каналів введення-виведення?
39.Назвіть функції та склад селекторного та мультиплексного каналів.
40.Яка різниця між автономними та вбудованими каналами?
Розділ 12
[ашшшшШ[Щш1[ті[ві[ві[ші[в][ШШШ
Тіаралемші шмпу'юшєрпі системи/
До цих пір ми знайомилися в основному з однопроцесорними комп'ютерами з ар хітектурою Джона фон Неймана. Однопроцесорні комп'ютери досягли високих показ ників продуктивності завдяки технологічним та архітектурним досягненням, які були детально розглянуті в попередніх розділах. Але ріст їх продуктивності стримується як фізичними, технологічними обмеженнями, так і обмеженими можливостями покращен ня традиційної архітектури Джона фон Неймана. Як ми бачили з попередніх розділів, такі архітектурні рішення, як спрощена система команд, конвеєрна обробка команд та даних, суперконвеєрна та суперскалярна обробка команд, використання довгого фор мату команди, векторна обробка команд та природній паралелізм, практично виводять однопроцесорні комп'ютери до граничної межі, коли використовуються всі потенційні можливості паралелізму архітектури комп'ютера Джона фон Неймана.
У цьому розділі будуть розглянуті питання подальшого підвищення продуктивності комп'ютерів шляхом створення паралельних комп'ютерних систем. До таких систем на лежать як багатопроцесорні комп'ютерні системи, в яких використовується паралелізм розподілу задач на велику кількість вузлів обробки, так і комп'ютерні мережі, які мають іншу форму паралелізму - мережу структурно автономних комп'ютерів. Деякі з розгля нутих підходів уже знайшли місце в сучасних комп'ютерах. Інші підходи розглядаються як основа для покращення характеристик перспективних комп'ютерів.
12.1. |
Використання принципів паралельної обробки інформації |
|
в |
архітектурі |
комп'ютера |
Сьогодні |
використання |
принципів паралельної обробки інформації в архітекту |
рі комп'ютерів є звичним. Практично всі сучасні комп'ютери використовують той або інший вид паралельної обробки інформації. На презентаціях нових мікросхем і в ін формаційних матеріалах виробників це подається як останнє слово техніки і передовий край науки, і це дійсно так, я к щ о розглядати реалізацію цих принципів у мініатюрних рамках одного кристалу.
Водночас, ідеї паралельної обробки інформації з'явилися досить давно. Вони впро ваджувалися в найбільш передових, дорогих, а тому одиничних, комп'ютерах свого часу. Пізніше, після належного відпрацювання технології і здешевлення виробництва, вони використовувалися в комп'ютерах^середнього класу, і нарешті сьогодні вони в повному обсязі втілюються у робочих станціях і персональних комп'ютерах.
423
Про |
слідкуємо за впровадженням значущих нововведень в архітектурі комп'ютера |
з точки |
зору паралельної обробки інформації, починаючи практично з часу створення |
перших комп'ютерів.
Паралельна пам'ять та паралельна арифметика. Всі найперші комп'ютери (EDSAC, EDVAC, U N I V A C ) мали послідовну пам'ять, із якої слова зчитувалися послідовно біт за бітом. Першим комерційно доступним комп'ютером, що використовував паралель ну пам'ять і паралельну арифметику, став комп'ютер I B M 701, який поступив на ринок у 1953 році. В більш популярній моделі I B M 704, що поступила на ринок у 1955 році, крім названого, була вперше застосована пам'ять на феритових сердечниках і апаратний арифметичний пристрій з рухомою комою.
Незалежні процесори введення-виведення. В перших комп'ютерах процесори не лише обробляли інформацію, а й керували введенням-виведенням. Проте швидкість роботи найшвидшого зовнішнього пристрою, а в ті часи це була магнітна стрічка, була в 1000 разів меншою швидкості процесора, тому під час операцій введення/виведення процесор фактично простоював. У 1958 р. до комп'ютера I B M 704 приєднали 6 неза лежних процесорів введення/виведення, що після одержання команд від центрального процесора могли працювати паралельно з ним, а сам комп'ютер перейменували в I B M 709. Дана модель була досить вдалою, підтвердженням чого є те, що було продано біля 400 її екземплярів, які знаходились в експлуатації близько 20 років.
Передбачення та розшарування пам'яті. У 1961 році фірма I B M закінчила розробку комп'ютера S T R E T C H , що мав дві принципово важливі особливості: передбачення для вибірки команд і розшарування пам'яті на два блоки для узгодження низької швидкості вибірки з пам'яті та швидкості виконання операцій.
Конвеєр команд. Вперше конвеєрний принцип виконання команд був використа ний у комп'ютері A T L A S , розробленому в Манчестерському університеті в 1962 році. Виконання команд розбито на 4 стадії: вибірка команди, обчислення адреси операнда, вибірка операнда і виконання операції. Конвеєризація дозволила зменшити час вико нання команд із 6 мкс до 1,6 мкс. Створення даного комп'ютера зробило величезний вплив як на подальший розвиток архітектури комп'ютера, так і на розвиток системного програмного забезпечення: у ньому вперше використана мультипрограмна операційна система, що використовувала віртуальну пам'ять і систему переривань.
Незалежні операційні пристрої. В 1964 році фірма Control Data Corporation (CDC) при особистій участі одного з її фундаторів Сеймура Крея випускає комп'ютер C D C - 6600 - перший комп'ютер, у якому використовувалося декілька незалежних операційних пристроїв. Для порівняння із сьогоднішнім днем приведемо деякі характеристики цього комп'ютера:
•час такту рівний 100 не;
•продуктивність рівна 2-3 млн операцій за секунду;
•основна пам'ять розбита на 32 блоки по 4096 60-розрядних слів;
•цикл пам'яті рівний 1 мкс;
•10 незалежних операційних пристроїв.
Комп'ютер CDC-6600 мав великий успіх на ринку, суттєво потіснивши комп'ютери фірми I B M .
Конвеєрні незалежні операційні пристрої. В 1969 році фірма C D C випускає комп'ю тер CDC-7600 із вісьмома незалежними конвеєрними операційними пристроями, тим
424
самим забезпечивши поєднання паралельної та конвеєрної обробки даних. Основні ха рактеристики цього комп'ютера:
•такт рівний 27,5 не;
•продуктивність рівна 10-15 млн операцій за секунду;
•8 конвеєрних операційних пристроїв;
•дворівнева пам'ять.
Матричні процесори. В 1967 році були розпочаті роботи над створенням матрично го процесора ILLIAC IV, проект якого передбачав досягнення наступних характеристик: 256 процесорних елементів (ПЕ) - 4 квадранти по 64 ПЕ, з можливістю реконфігурації на 2 квадранти по 128 ПЕ, або на 1 квадрант із 256 ПЕ, такт рівний 40 не, продуктив ність рівна 1 млрд. операцій з рухомою комою за секунду. В якості пристрою керування був використаний універсальний комп'ютер із невеликою продуктивністю. Кожний ПЕ мав власний АЛП з повним набором команд та пам'ять ємністю 2К 64-розрядних слів з циклом 350 не. Комп'ютер був введений в експлуатацію у 1974 році в складі лише 1 квадранта, такт 80 не, реальна продуктивність наблизилась до 50 млн операцій з рухо мою комою за секунду. Однак даний проект суттєво вплинув на архітектуру наступних комп'ютерів, побудованих за схожим принципом, які дістали назву масивно-паралель- них комп'ютерів із розподіленою пам'яттю. Ідея побудови комп'ютерів цього класу на ступна: беруться серійні мікропроцесори зі своєю локальною пам'яттю та з'єднуються за допомогою деякого комунікаційного середовища. Переваги такої архітектури наступні: якщо потрібно підвищити продуктивність, то збільшується кількість процесорів, якщо обмежені фінанси або заздалегідь відома необхідна продуктивність, то легко підібрати оптимальну конфігурацію і т. п.
Проте є і суттєвий недолік. Справа в тому, що міжпроцесорна взаємодія в комп'юте рах цього класу йде набагато повільніше, ніж відбувається локальне опрацювання даних самими процесорами. Саме тому написати ефективну програму для таких комп'ютерів дуже складно.
За цим принципом були побудовані комп'ютери РЕРЕ, BSP, ICL DAP. До даного класу можна також віднести комп'ютери Intel Paragon, I B M SP1, Parsytec, у якійсь мірі I B M SP2 і C R A Y T3D/T3E. До цього ж класу можна віднести і мережі комп'ютерів.
Векторно-конвеєрні комп'ютери. У 1972 році С. Крей залишає фірму C D C і засно вує власну компанію Cray Research, що у 1976 р. випускає перший векторно-конвеєр ний комп'ютер CRAY - 1 з наступними характеристиками: час такту рівний 12,5 не, 12 конвеєрних операційних пристроїв, пікова продуктивність - 160 мільйонів операцій за секунду, основна пам'ять до ІМслова (слова 64-розрядні), цикл пам'яті рівний 50 не. Го ловним нововведенням є використання векторних команд, що працюють із масивами цілих чисел і дозволяють ефективно використовувати конвеєрні операційні пристрої, а також ієрархія пам'яті. Ієрархія пам'яті прямого відношення до паралелізму не має, про те, безумовно, належать до тих особливостей архітектури комп'ютерів, що мають велике значення для підвищення їхньої продуктивності (згладжування різниці між тактом ро боти процесора і часом вибірки з пам'яті). Основні рівні: регістри, кеш пам'ять, основна пам'ять, дискова пам'ять. Час вибірки по рівнях пам'яті від дискової до регістрів змен шується, вартість у перерахунку на 1 слово (байт) росте. В даний час подібна ієрархія підтримується і на персональних комп'ютерах.
425
Паралельні комп'ютери із спільною пам'яттю. З розвитком архітектур та техноло гій виробництва компонентів комп'ютера, в тому числі пам'яті, з'явився новий клас комп'ютерів - паралельні комп'ютери із спільною пам'яттю. Вся основна пам'ять таких комп ютерів розділяється декількома однаковими процесорами. Хоча кількість процесо рів, що мають доступ до спільної пам'яті, за чисто технічними причинами не можна зро бити великим, до даного напрямку входить багато сучасних багатопроцесорних систем, наприклад, комп'ютери HP Exemplar і Sun StarFire.
Зрозуміло, що в багатьох випадках у комп'ютерах використовується комбінація описаних технічних рішень. З декількох процесорів (традиігійних або векторно-конвеєрних) і спільної для нихпам'яті формується обчислювальний вузол. Якщо отриманої обчислювальної потуж ності недостатньо, то об'єднується декілька таких вузлів швидкісними каналами зв'язку. Подібну архітектуру називають кластерною, і за таким принципом побудовані комп'ютери CRAY SV1, HP Exemplar, Sun StarFire, N E C SX-5, останні моделі I B M SP2 й інші.
Системи з масовою паралельною обробкою інформації. Після початкового доміну вання систем, що використовували повільні процесори з складною системою команд та розшаровану пам'ять, фірми Sun, HP, D E C , SGI, N C R / A T T , Tandem, Pyramid, I B M та CRI
розпочали |
випуск |
багатопроце |
|
|
|
|
|
|
|||
сорних систем, здатних до масш- |
|
|
|
|
|
|
|||||
табування, що базуються на про |
|
©fiO |
•as:. |
Вузол |
|||||||
цесорах |
із |
|
складною |
системою |
|
|
|
|
|
|
|
команд. |
Наведемо приклади су |
|
|
|
|
|
|
||||
часних систем цього класу. |
|
|
|
|
|
|
|||||
Суперкомп'ютер Intel Parag |
|
|
|
|
|
|
|||||
on. На рис. |
12.1. подано органі |
|
Шнна гин-яті (Б4-bit, |
5D MHz) |
|||||||
зацію суперкомп'ютера Intel Раг^ |
|
|
|
|
|
|
|||||
agon із так званою архітектурою |
|
|
|
|
Su пдп |
||||||
на основі пересилання повідо |
Контролер |
||||||||||
млень. Суперкомп'ютер побудо |
|
пам'яті |
|||||||||
вано як |
тривимірне об'єднання |
|
|
|
|
Драйвер |
|||||
|
|
|
|
|
|
||||||
множини окремих вузлів (топо |
Основна |
|
|
||||||||
логія гіперкуба). Кожен вузол |
пам'ять |
|
|
||||||||
містить два або більше процесо |
|
|
|
|
|
|
|||||
рів i860, які утворюють систему з |
|
|
|
|
S a |
bits, |
|||||
спільною пам'яттю, та вбудовану |
/ І |
/ |
|||||||||
підтримку |
зовнішньої |
мережі із |
|
|
|
|
* 75 MHz |
||||
|
|
|
|
||||||||
швидкодією |
обміну |
з |
мережею |
|
|
|
|
|
|
||
175 MB за секунду. Кожен вузол |
|
|
|
|
|
Сітка |
|||||
має ще індивідуальний зв'язок із |
|
|
|
|
|
процесорних |
|||||
власною |
підсистемою |
пам'яті з |
|
|
|
|
|
вузлів |
|||
|
|
|
|
|
|
||||||
використанням прямого доступу |
|
т |
|
|
|
|
|||||
та шини кеш пам'яті. Це дозволяє |
|
|
|
|
|
||||||
ефективно |
пересилати |
великі па |
|
|
|
|
|
||||
кети інформації від кожного вузла |
Рис. 12.1. Суперкомп'ютер Intel Paragon |
||||||||||
до мережі |
та |
зворотно. Продук- |
(подано двовимірну |
проекцію |
тривимірної мережі) |
||||||
426
тивність системи складає 143 GFLOPS на тесті L I N P A C K (матричні тести лінійної алгебри), що на порядок перевищує продуктивність машин CRAY .
Суперкомп'юте р Blue Gene фірм и I B M . Найшвидший на 2007 рік суперкомп'ютер, створення якого фірма I B M проголосила у грудні 1999 року, отримав назву Blue Gene. Він спроможний виконувати понад один квадрильйон операцій на секунду (1PFLOPS = 1000 TFLOPS= 1000000 GFLOPS). Blue Gene є майже в мільйон разів продуктивнішим від ПК. Ієрархічний дизайн Blue Gene наведено на рис. 12.2.
Рис. 12.2. Ієрархічний дизайн Blue Gene
Blue Gene складено з мільйона процесорів, кожний з яких має продуктивність 1 GFLOPS . 32 таких надшвидких процесори інтегровано до одного кристалу (32 GFLO PS). Компактна (два фути на два фути) плата вміщує 64 щойно зазначених кристали (2 TFLOPS). Апаратна частина такого друкованого вузла є продуктивнішою від відомого рекордсмена, суперкомп'ютера ASCI міністерства енергетики СІЛА, який займає 8000 квадратних футів площі. 11 друкованих вузлів збирають до одної монтажної 6-ти футо вої шафової конструкції, яка має продуктивність 16 TFLOPS . Фінальну конструкцію, що займає площу, меншу від 2000 кв. футів, утворено сполученням 64 шаф. Разом отриму ється продуктивність 1 PFLOPS= 1000 TFLOPS .
12.2. Вибір кількості процесорів у багатопроцесорній системі
Потрібно відзначити, що збільшення кількості процесорів у багатопроцесорній сис темі не завжди пропорційно зменшує час вирішення задачі. На рис. 12.3 наведено за лежність прискорення від кількості задіяних процесорів при розв'язанні однієї задачі молекулярної динаміки на багатопроцесорній системі Intel Paragon. Параметром є версія програмного коду. Бачимо, що монотонне зростання прискорення досягнуто лише на другій версії паралельної програми.
427
Прискорення
Версія 3
•
Версія 2
-
> |
Версія 1 |
|
50 100
КІЛЬКІСТЬ П р о ц е с о р і в
Рис. 12.3. Прискорення програми моделювання процесів молекулярної динаміки для системи Intel Paragon
Перша версія програми погано піддалася розпаралелюванню. З невеликими витрата ми, шляхом детальнішого налагоджування коду фрагментів програми, що опрацьовува лися окремими процесорами, отримано другу версію. Та лише радикальне покращення програмної частини реалізації інформаційних обмінів окремими процесорами надало остаточний варіант за версією 3, із наближенням до лінійного прискорення.
Зрозумілим є намагання програмістів забезпечити лінійне прискорення (теоретич на межа), коли із збільшенням у п разів кількості задіяних процесорів також у п разів зменшується час виконання програми. Однак це не завжди вдається, і причину цього пояснює закон Амдала.
Закон Амдала і його наслідки. Припустимо, що у деякій програмі частка операцій, які потрібно виконувати послідовно, дорівнює {, де 0<і"<1 (при цьому частка розуміється не по статичному числу рядків коду, а по числу реально виконуваних операцій). Край ні випадки в значеннях і відповідають цілком паралельним ((=0) і цілком послідовним (ґ=1) програмам. Отож, для того, щоб оцінити, яке прискорення Б може бути отримане на комп'ютері з р процесорами при даному значенні {, можна скористатися законом Ам дала, згідно з яким Б = р/(1+(р-1) і " ) . При великих значеннях р прискорення Б прямує до величини 1/£ Тобто, відповідно до цього закону, якщо 9/10 програми здійснюється па ралельно, а 1/10, як і раніше, послідовно, то прискорення більш ніж у 10 разів одержати в принципі неможливо поза залежністю від якості реалізації паралельної частини коду і кількості використовуваних процесорів (ясно, що прискорення в 10 разів досягається лише в тому випадку, коли час виконання паралельної частини дорівнює 0).
Подивимося на проблему з іншої сторони: а яку ж частину коду треба прискорити (а значить і попередньо досліджувати), щоб одержати задане прискорення? Відповідь можна знайти в наслідку із закону Амдала: для того, щоб прискорити виконання про грами в q разів необхідно прискорити не менше, ніж у q разів (1-1/с7)-у частину програми. Отже, якщо є бажання прискорити програму в 100 разів у порівнянні з її послідовним варіантом, то необхідно в 100 разів прискорити 99% коду, що майже завжди складає зна чну частину програми. Таким чином, якщо після оцінки закладеного в програмі алго ритму стало зрозуміло, що частка послідовних операцій велика, то на значне прискорення
428
розраховувати безумовно не доводиться і потрібно думати про заміну окремих компонент алгоритму.
У зв'язку з наведеними проблемами число процесорів в реальних багатопроцесор них системах, які орієнтовані в основному на вирішення складних одиничних задач, є невеликим. Інформацію про кількість процесорів таких систем подає рис. 12.4.
|
9 |
|
|
|
|
|
|
|
|
|
|
8 |
|
S U N Fire Х4600 |
Server |
SUN Fire X4500 |
Server |
|
|||
|
|
|
|
|
|
|
|
|
||
9. |
7 |
|
|
|
|
|
|
|
|
|
о |
|
|
|
|
|
|
|
|
|
|
в |
6 |
|
|
|
SGI ® Altix ® 450 |
|
|
|||
О |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
||
а |
5 |
|
|
|
|
|
|
|
|
|
з- |
|
|
|
|
S U N Fire T1000 |
S U N Blade 6000 |
|
|||
о |
|
S U N |
Fire X4200 |
Server |
|
|||||
а. |
4 |
|
|
|
|
|
||||
с |
|
|
|
|
|
|
|
|
||
л |
|
|
SUN*FireX4200 |
*Server |
|
|
|
|||
I- |
|
|
|
|
|
|
S U N Fire X4200 |
Server |
||
о |
|
|
|
|
SGI ® Altix ® 4000 |
|||||
|
|
|
|
|
|
|
||||
•я |
3 |
|
|
|
|
|
|
|||
HP Pro Liant DL 140G3 |
IBM eServer Cluster 1350 |
|||||||||
Л |
2 |
|||||||||
5 |
|
|
|
|
|
|
|
|
||
|
1 |
|
|
Netra CP3060UltraSPARC |
T1 A T C A Blade |
|
||||
|
|
|
|
|
|
|
|
|
||
|
0.00 |
0.50 |
1.00 |
1.50 |
2.00 |
2.50 |
3.00 |
3.50 |
4.00 |
|
Частота процесора, ГГц
Рис. 12.4. Дані про реальні багатопроцесорні системи
Потрібно відзначити, що при створенні систем із масовою паралельною обробкою інформації, про які згадувалось вище, розробники орієнтуються не стільки на скорочен ня часу виконання алгоритмів, скільки на те, що відповідно до росту потужності систе ми будуть збільшуватись розміри вирішуваних задач.
12.3.Багатопотокова обробка інформації
Звичайно, перераховані вище підходи до підвищення продуктивності комп'ютерних систем, використовуючи паралельну обробку інформації, не виключають необхідність підвищення продуктивності однопроцесорних систем шляхом нарощування ресурсів процесора, наприклад, шляхом нарощування ємності кеш пам'яті та добавлення нових операційних пристроїв. Хоча зрозуміло, що це тягне за собою зростання кількості тран зисторів та площі кристалу, ускладнення процесора, і відповідно, вартості.
Іншим підходом є підвищення ефективності використання наявних ресурсів комп'ю терних систем з одним та декількома процесорами. Існує декілька дешевших, ніж масове розпаралелювання варіантів, які також дозволяють прискорити обчислення, а саме:
• Багатопроцесорність на одному кристалі (Chip Multiprocessing). Два процесорні ядра фізично розташовані на одному кристалі із використанням спільної або розподі леної кеш пам'яті. Природно, що розмір кристала отримують досить великим, що є при чиною великої вартості цього кристала. В багатопроцесорній системі можуть функціо нувати декілька таких кристалів.
429
•Багатопотокова обробка з квантуванням часу (Time-Slice Multithreading). Про цесор перемикають поміж програмними потоками через фіксовані проміжки часу. На кладні витрати часом виходять досить значними, особливо якщо який-небудь процес знаходиться в стані очікування
•Багатопотокова обробка з перемиканням за подіями (Switch-on-Event Multithre ading). Перемикання задач при наявності тривалих пауз, наприклад "невлучень" до кеш пам'яті, велике число яких притаманне серверним аплікаціям. Тут процес, що чекає на завантаження даних з порівняно повільної основної пам'яті до кеш пам'яті, пригаль мовують, вивільняючи тим самим ресурси процесора на користь інших процесів. Про те багатопотокова обробка з перемиканням за подіями, як і багатопотокова обробка з квантуванням часу, не завжди дозволяє досягти оптимального використання ресурсів процесора, зокрема через помилки в передбаченні розгалужень, існуючі залежності по між командами тощо
• Одночасна багатопотокова обробка (Simultaneous Multithreading). Тут програм ні потоки виконуються на одному процесорі "одночасно", тобто без переключення між ними. Ресурси процесора розподіляються динамічно, за принципом "не використовуєш - віддай іншому"
Одночасна багатопотокова обробка покладена в основу технології гіперпотокової обробки (Hyper-Threading) фірми Intel, яку розглянемо детальніше
Багатопотокові обчислення використовуються не лише в серверах, де багатопотоковість існує первинно, але і в робочих станціях і настільних персональних комп'ютерах. Потоки можуть відноситися як до однієї, так і до різних прикладних програм, але майже завжди активних потоків більше від одного (аби переконатися в цьому, достатньо у W i ndows 20007ХР відчинити Task Manager та увімкнути відбиття ним числа виконуваних потоків). Разом з тим відомо, що стандартний процесор може одночасно опрацьовувати лише один з декількох існуючих потоків, тому і змушений постійно перемикатися поміж цими потоками
Технологію гіперпотокової обробки реалізовано в процесорі Intel Xeon MP (Foster MP), на якому і відбувалося дослідження ефективності цієї технології. Процесор Xeon MP використовує притаманне Pentium 4 ядро Willamette, містить 256 KB кеш пам'яті другого рівня L2, 512 KB кеш пам'яті третього рівня L3, та підтримує функціонування в чотирипроцесорних конфігураціях. Підтримка технології гіперпотокової обробки також присут ня у процесорі для робочих станцій Intel Xeon (ядро Prestonia, 512 KB кеш пам'яті другого рівня L2), що поступив на ринок дещо раніше від процесора Xeon MP. Далі розглянемо можливості технології гіперпотокової обробки на прикладі саме процесора Intel Xeon.
На рис. 12.5 а показано завантаженість процесорів комп'ютерної системи, яка скла дається з двох суперскалярних процесорів. Кожен процесор може виконувати по 3 ко манди в одному циклі. Незадіяні (позначено білим) прямокутники свідчать про нео птимальну утилізацію системних ресурсів В той же ж час технологія гіперпотокової обробки не лише дозволяє опрацьовувати паралельно декілька потоків, але і зменшує при цьому наявне число незадіяних виконавчих часових інтервалів. На рис. 12.5 b по казано завантаженість процесорів комп'ютерної системи, яка також складається з двох фізичних процесорів, та в якій використовується технологія гіперпотокової обробки. Кожен з процесорів тут опрацьовує по два потоки інформації, що дозволило наблизити систему до пікової продуктивності.
