Автор работы: Пользователь скрыл имя, 11 Июня 2013 в 18:24, курсовая работа
Мета дослідження – розглянути принципи мультитредової архітектури та описати функціонування сучасних мультитредових мікропроцесорів.
Для досягнення мети дослідження було визначено наступні завдання:
розглянути поняття тред та багатопотоковість;
дослідити мультитредову архітектуру;
вказати на особливості виявлення тредів;
вказати на перспективи мультитредовості.
ВСТУП…………………………………………… 5
РОЗДІЛ І АНАЛІТИЧНИЙ ОГЛЯД ПРЕДМЕТНОЇ ОБЛАСТІ..….... 7
1.1 Основи мультитредової архітектури ……..………………………....... 7
1.2 Переваги мультитредової архітектури 11
1.3 Виявлення тредів 13
1.3 Специфіка мультитредових моделей розпаралелювання 14
РОЗДІЛ ІІ ТЕОРЕТИЧНА ЧАСТИНА 17
2.1 Мультитредові процесори з тредами, що виявляються шляхом аналізу
потоків управління програми 17
2.2 Мультитредові процесори з тредами, що виявляються шляхом аналізу
потоків даних програми 25
РОЗДІЛ ІІІ ПРАКТИЧНА ЧАСТИНА 29
3.1 Опис технології Hyper-Threading 29
3.2 Особливості реалізації Hyper-Threading у процесорі Pentium 4 на
прикладі виконання коду різного типу 32
ВИСНОВКИ 39
СПИСОК ВИКОРИСТАНИХ ДЖЕРЕЛ 42
пристроїв процесора Pentium 4.
Таким чином, якщо дозволити процесору одночасне виконання більш ніж одного потоку, його потужності можна завантажити більш ефективно. Саме в цьому і полягає основна ідея Hyper-Threading. Завдяки технології Hyper-Threading один фізичний процесор сприймається операційною системою і додатками як два логічних процесори. Відповідно, операційна система і додатки припускають, що CPU з технологією Hyper-Threading може одночасно виконувати два потоки і завантажує такий процесор роботою набагато сильніше. Принципи функціонування Hyper-Threading показані на рис. 3.1 і рис. 3.2.
Рис. 3.1. Принцип функціонування технології Hyper-Threading
Рис. 3.2. Розподіл ресурсів процесора з Hyper-Threading
Сам же процесор при цьому підданий лише незначним змінам і використовує для виконання другого потоку свої простоювані ресурси. Тобто, Hyper-Threading - технологія для збільшення коефіцієнта корисної дії процесора, дієва, втім, тільки в багатозадачних і багатопоточних середовищах. Різниця між процесором з технологією Hyper-Threading і двопроцесорною системою схематично показано на рис. 3.3.
Рис. 3.3. Процесор з технологією Hyper-Threading та звичайна двопроцесорна система
Фізично у кожного з логічних процесорів є свій набір регістрів і контролер переривань (APIC), а інші елементи процесора є загальними. Коли при виконанні потоку одним з логічних процесорів виникає пауза (в результаті кеш-промаху, помилки передбачення розгалужень, очікування результату попередньої інструкції), то управління передається потоку в іншому логічному процесорі. Таким чином поки один процес чекає, наприклад дані з пам'яті, обчислювальні ресурси фізичного процесора використовуються для обробки іншого процесу.
Були представлені наступні переваги Hyper-threading: покращена підтримка багатопотокового коду, що дозволяє запускати потоки одночасно; поліпшена реакція і час відгуку; збільшена кількість користувачів, що може підтримувати сервер.
За словами Intel, перша реалізація потребувала всього 5-відсоткового збільшення площі кристала, але дозволяла збільшити продуктивність на 15-30%.
Intel стверджує, що надбавка до швидкості складає 30% в порівнянні з ідентичним процесорами Pentium 4 без технології «Simultaneous multithreading». Однак надбавка до продуктивності змінюється від програми до програми: деякі програми взагалі дещо сповільнюються при включеній технології Hyper-threading.
За підсумками представленої роботи можна зробити наступні висновки: еволюція, що увесь час відбувається у світі комп'ютерної техніки, дуже й дуже необхідна.
З кожним новим поколінням збільшувалася швидкодія, зменшувалися споживана потужність і маса ЕОМ, підвищувалася їхня надійність. При цьому зростали їх «інтелектуальні» можливості - здатність «розуміти» людину й забезпечувати йому ефективні засоби для звертання до ЕОМ. Але екстенсивний шлях розвитку процесорів майже закінчився і виробники майже завжди вдаються до інтенсивного шляху. Ним є створення мультитредових процесорів, вдосконалення механізму декодування команд, компіляторів, багатопотокового виконання.
При всій відмінності підходів до створення мультитредових мікропроцесорів, загальним для них є введення безлічі пристроїв вибірки команд, кожен з яких організовує вікно виконання для одного треду. У рамках одного треду виконується передбачення переходів, перейменування регістрів, динамічна підготовка команд до виконання. Тим самим, загальне число команд, що знаходяться в обробці, значно перевищує розмір вікна виконання однотредового процесора, з одного боку, і тактова частота не лімітується розміром вікна виконання, з іншого боку.
Виявлення тредів може виконуватися компілятором при аналізі вихідного коду на мові високого рівня або виконуваного коду програми. Однак компілятори не завжди можуть вирішити проблеми залежностей при використанні регістрів і комірок пам'яті між тредами, що потрібно вже в ході виконання тредів. Для цього в мікропроцесор вводиться спеціальна апаратура умовного виконання тредів, що передбачає повернення з відкиданням напрацьованих результатів при виявленні порушення залежностей між тредами. Порушенням залежності, наприклад, може служити запис по обчислюваній адресі в одному треді в ту ж комірку пам'яті, з якої виконується читання, яке має слідувати за цим записом, в іншому треді. У випадку, якщо адреси запису і читання не збігаються, порушення відсутнє. При збігу адрес фіксується порушення, яке має повернути виконання треду до команди читання правильного значення.
Інтерфейс між апаратурою мультитредового процесора, що підтримує протікання кожного окремого треду та апаратурою, загальною для виконання всіх тредів, може бути встановлений як відразу після пристроїв вибірки команд тредів, так і на рівні доступу до пам'яті, що розділяється. У першому випадку всі треди використовують один регістровий файл і один набір функціональних пристроїв. Тісний зв'язок по ресурсах дозволяє ефективно виконувати послідовні програми з сильною залежністю між тредами. У цьому випадку має місце саме реалізація мультискалярного мультитредового процесора.
У другому випадку для виконання кожного треду, фактично, виділяється функціонально закінчений процесор. В цілому структура орієнтована на виконання незалежних і слабко пов'язаних тредів, породжуваних або однією програмою, або їх сукупністю. У цьому випадку скоріше треба говорити не про процесор, а про систему на одному кристалі. Можливо також проміжне розташування інтерфейсу, яке відповідає апаратним засобам, орієнтованим на реалізацію певного типу сукупності тредів.
Досліджено особливості реаліза
Для підвищення ступеня завантаження виконавчих пристроїв процесорів Pentium 4 (ядра Northwood, Gallatin і Prescott) фірмою Intel була розроблена і реалізована технологія Hyper-Threading. Завдяки їй один фізичний процесор бачиться операційною системою як пара логічних процесорів і здатний паралельно виконувати два незалежних потоки коду. Завдяки цьому досягається приріст продуктивності до 30%, залежно від виконуваних програм.
У процесорах Core 2 Duo підтримка технології Hyper-threading не була реалізована. У процесорах Core i7 знову використовується Hyper-threading, при цьому кожна фізична ядро процесора визначається операційною системою як два логічних. Так само ця технологія присутня в мобільних процесорах Core i3 і Core i5.
Оскільки фізичний процесор з технологією Hyper-Threading це два логічних CPU, в таких процесорах продубльовані деякі блоки. Причому, дубляжу піддалися лише окремі керуючі елементи, основні ж виконавчі ресурси залишилися тими ж - тепер вони просто завантажуються більш щільно і ефективно. У результаті, в процесорах з Hyper-Threading дубльовані регістри, включаючи регістри загального призначення і керуючі регістри, вдосконалений програмований контролер переривань (Advanced Programmable Interrupt Controller - APIC) і деякі службові регістри. Решта ж ресурсів, включаючи кеші, виконавчі блоки, логіку передбачення переходів, контролер шини і т.п. логічні процесори поділяють один з одним. Саме тому реалізація технології Hyper-Threading обійшлася розробникам досить дешево - площа процесорного ядра збільшилася всього лише приблизно на 5%.