Автор работы: Пользователь скрыл имя, 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
ЗМІСТ
ВСТУП…………………………………………… 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
ВСТУП
Центральний процесор (CPU, Central Processing Unit) - це основний електронний модуль на материнській платі, який виконує обчислювальну роботу, управляє обміном даних. Центральний процесор, є апаратним центром інформаційно-обчислювальної системи, відповідає за продуктивность ПК.
Процесорна техніка дуже швидко розвивається. Перший процесор Intel 4004 був випущений у 1971р. За 40 років еволюції продуктивність процесорів дуже стрімко зросла – від тактової частоти 108 КГц до декількох ГГц, від 4-ох розрядних до 64-ох розрядних.
Основними перешкодами для подальшого зростання продуктивності мікропроцесорів традиційної архітектури при збільшенні ступеня інтеграції та супутньої можливості зростання тактової частоти служать обмеження швидкості поширення сигналів на кристалі, енергоспоживання і тепловиділення. Зі зменшенням технологічних норм все більша частина енергії споживається не для обчислень, а для передачі і зберігання даних. Вже при технологічних нормах 90 нм на тактовій частоті 1 ГГц 64-розрядний блок операцій з плаваючою точкою займає площу менше, ніж 1кв. мм і споживає близько 50 pJ енергії на одну операцію, в той час як при передачі даних на відстань 14 мм, яка дорівнює довжині боку кристала, витрачається в 20 разів більше, близько 1 nJ. У мікропроцесорі Itanium тільки 1% площі кристала обробляє дані, а 99% займають схеми управління та зберігання даних. Потужність, що розсіюється на одиницю площі сучасних кристалів досягає значень, що роблять неможливим подальше зростання частоти для сучасних традиційних процесорів.
Вирішенням проблеми є виробництво багатоядерних і мультитредових процесорів, які містять на одному кристалі кілька ядер. Вони можуть одночасно виконувати кілька потоків команд, що дуже підвищує продуктивність. Завдяки цим технологіям можливе подальше вдосконалення процесорів.
Все вище вказане пояснює актуальність дослідження теми даної курсової роботи.
Об’єкт дослідження – організація мультитредової архітектури.
Предмет дослідження – центральний процесор комп’ютера.
Мета дослідження – розглянути принципи мультитредової архітектури та описати функціонування сучасних мультитредових мікропроцесорів.
Для досягнення мети дослідження було визначено наступні завдання:
Курсова робота складається з вступу, трьох розділів, висновків та списку використаної літератури.
РОЗДІЛ І Аналітичний огляд предметної області
1.1 Основи мультитредової архітектури
Суперскалярні мікропроцесори і мікропроцесори з довгим командним словом мають один лічильник команд і, в силу цього, можуть бути названі однотредовимі. У цих мікропроцесорах команди, досліджувані на предмет можливості їх паралельного спільного виконання, прив'язані до лічильника команд процесора або вікном виконання як в суперскалярних мікропроцесорах, або довгою командою як в мікропроцессоpax з довгим командним словом. Для того щоб більш агресивно вибирати для паралельного виконання команди однієї або кількох програм, в мікропроцесор вводиться кілька лічильників команд і, можливо, інше устаткування. Мікропроцесори з декількома лічильниками команд отримали назву мультитредових.
Мультитредова архітектура вирішує проблему боротьби з простоями функціональних пристроїв процесора, що виникають через неможливість виконання наступної команди, шляхом перемикання на інший регістровий файл, тим самим процесор отримує інший контекст для продовження обчислень, переходячи до виконання іншого треду (процесу).
Переключення процесора на інший регістровий файл виконується або по настанню деякої події, що тягне за собою простій процесора (промах у кеш-пам'ять, звернення до оперативної пам'яті, настуння переривання), або примусово, наприклад, в кожному такті, як у Теrа МТА.
У Теrа МТА проблема розриву між швидкістю обробки в процесорі і часом доступу в основну пам'ять вирішується за допомогою примусового перемикання в кожному такті процесора на роботу з черговою множиною регістрів. Структура мультитредового процесора представлена в додатку 1. Кожен набір регістрів обслуговує один обчислювальний процес, який називається тредом.
Всього в процесорі є n наборів регістрів. Тому запит, виданий в основну пам'ять процесом, може обслуговуватися за n-1 тактів, аж до моменту, коли процесор знову перемкнеться на той самий набір регістрів. Тим самим по відношенню до одного треду виконання його команд сповільнюється в n раз. Значення n вибирається виходячи з того, щоб час доступу в пам'ять був менший, ніж час тривалості n - 1 такту процесора. Завдання формування n тредів цілком покладається на компілятор.
При всій відмінності підходів до створення мультитредових мікропроцесорів загальним в них є введення множини процесорних елементів, що містять пристрій вибірки команд, яке організовує вікно виконання для одного треду. У рамках одного треду може виконуватися передбачення переходів, перейменування регістрів, динамічна підготовка команд до виконання. Тим самим, загальна кількість команд, що знаходяться в обробці, значно перевищує розмір вікна виконання суперскалярного процесора, з одного боку, і тактова частота не лімітується розміром вікна виконання, з іншого боку.
Виявлення тредів може виконуватися компілятором при аналізі вихідного коду на мові високого рівня або виконуваного коду програми. Однак компілятори не завжди можуть вірішити проблеми залежностей при використанні регістрів і комірок пам'яті між тредами, що вимагає вирішення цих залежностей вже в ході виконання тредів.
Для цього в мікропроцесор вводиться спеціальна апаратура умовного виконання тредів, що передбачає повернення з відкиданням напрацьованих результатів у разі виявлення порушення залежностей між тредами. Порушенням залежності, наприклад, може служити запис по обчислюваній адресі в одному треді в ту ж комірку пам'яті, з якої виконується читання, яке має слідувати за цим записом, в іншому треді. У цьому випадку, якщо адреси запису і читання не збігаються, порушення відсутня. При збігу адрес - фіксується порушення, яке має повернути виконання треду до команди читання правильного значення.
Інтерфейс між апаратурою мультитредового процесора, що підтримує протікання кожного окремого треду, і апаратурою, загальною для виконання всіх тредів, може бути встановлений як після пристроїв вибірки команд треду і функціональних пристроїв, які належать треду, так і на рівні доступу до пам'яті, що розділяється. У першому випадку кожен тред використовує власні функціональні пристрої, наприклад, цілочисельний АЛП і ряд загальних для всіх тредів функціональних пристроїв, наприклад, для виконання операцій з плаваючою крапкою. Тісний зв'язок по ресурсах дозволяє ефективно виконувати послідовні програми з сильною залежністю між тредами. У цьому випадку має місце реалізація мультискалярного мультитредового процесора (SMT - simultaneous multithreading).
У другому випадку для виконання кожного треду фактично виділяється функціонально закінчений процесор. У цілому, ця структура орієнтована на виконання незалежних і слабко пов'язаних тредів, породжуваних або однією програмою, або їх сукупністю. У цьому випадку скоріше треба говорити не про процесор, а про однокристальну систему (CMP - chip multiprocessing).
Мультитредовий процесор може виконувати треди, що належать одній або декільком програмам. Якщо процесор виконує одну програму, то говорять про його продуктивність, якщо кілька програм - про пропускну здатність.
При обробці транзакцій мультитредовий процесор Alpha 21464 є в 10 разів продуктивніший, ніж Alpha 21264. При цьому прискорення в 2 рази реалізовано за рахунок саме мультитредової архітектури. Ще в 2 рази прискорення відбувається за рахунок збільшення використання паралелізму рівня команд. Решта 2,5 рази досягнуті за рахунок удосконалення технології та підвищення тактової частоти.
Мультитредові мікропроцесори і однокристальні системи вбирають накопичені в ході еволюції прийоми підвищення продуктивності мікропроцесорів і використовують симбіоз компіляторів і апаратури, відповідно для статичного і динамічного виявлення паралелізму з вихідних послідовних програм. Орієнтація на виконання сукупності тредів з певним ступенем міжтредових залежностей обумовлює конкретні рішення по спільному використанню тредами функціональних пристроїв. Суть мультитредової архітектури - використання сукупності регістрових файлів в процесорі. Тобто транзистори використовуються не для утворення кеш-пам'яті, а для формування сукупностей регістрових файлів, що включають лічильник команд, регістри стану і робочі регістри.
Фірма Intel ввела двухтредову архітектуру в своїх процесорах Хеоn і Pentium 4, а також в багатоядерних процесорах Core i7, Core i5, Core i3 та ін. Компанія Тега розробила мультитредовий мікропроцесор Torrent, що реалізує процесор МТА. Фірма Level One, утворена Intel, випустила мультитредовий мережевий мікропроцесор IXP1200, який містить у своєму складі 6 чотирьохтредових процесори. IBM створила комп'ютер Blue Gene з продуктивністю 1015 flops (Floating Point Operations per Second - операцій з плаваючою точкою подвійної точності в секунду). Кристал мікропроцесора Blue Gene включає 32 восьмитредових процесора. В кристал вбудована DRAM, реалізована як 32 блоки. Кожен блок відповідає одному з 32 процесорів і має 256-розрядну шину доступу. Так як DRAM має високу пропускну здатність і малу затримку, то при восьмитредовій структурі процесора стає можливим відмова від кеш-пам'яті, замість якої між процесором і пам'яттю використовується невелика буферна пам'ять. Компанії IBM, Sony, Toshiba розробили мультитредовий процесор Cell (біологічна клітина, осередок), сама назва якого досить красномовно свідчить про його призначення.
1.2 Переваги мультитредової архітектури
Мультитредовий процесор має деякі властивості, які вигідно відрізняють його від традиційних суперскалярних мікропроцесорів.
При суперскалярному підході точність передбачення розгалужень обмежує ступінь паралелізму. Якщо середня ймовірність правильного передбачення переходу 0,9, то ймовірність правильного передбачення на п'ять розгалужень вперед тільки 0,6.
Мультитредовий процесор має велику глибину передбачення і забезпечує велику ймовірність вибору правильного напряму обчислень. Ця властивість обумовлена вибірковістю передбачення гілок. Мультитредовий процесор розбиває послідовний потік команд на сегменти. Хоча сегменти можуть містити внутрішні гілки, планувальник повинен передбачати лише гілки, які відокремлюють сегменти. Гілки, що містяться всередині сегментів, не передбачаються (якщо вони не передбачені окремо всередині процесора).
Для суперскалярних процесорів наявність широкого вікна виконання призводить до збільшення числа відкладених команд і ускладнює контроль результатів виконання всіх команд в цьому вікні.
У мультитредовій реалізації вікно може бути дуже широким, проте в будь-який момент часу тільки кілька команд повинні бути розглянуті на предмет видачі результатів (тільки одна для кожного процесора). Межі вікна відкладених команд можуть бути ідентифіковані першою та останньою командами в черзі на виконання.
Для одночасної видачі n результатів в процесорі повинна використовуватися логіка зі складністю n2, щоб виконати перехресну перевірку залежностей команд. У суперскалярному процесорі це обмежує пропускну здатність логіки видачі. У мультитредовому процесорі кожен процесор видає команди незалежно, тобто складність логіки порядку n.
Перш ніж змінити порядок доступ до пам'яті, необхідно ідентифікувати і обчислити всі адреси завантаження і запису значень.
У суперскалярній реалізації команди завантаження і запису упорядковуються (або зберігаються у первісної послідовності) і поміщаються в буфер разом з адресою доступу до пам'яті. При виконанні команди завантаження і вибірці значення з пам'яті перевіряється буфер, щоб гарантувати, що не відкладена ніяка більш рання команда запису або завантаження за тією ж самою або ще не певною адресою. У мультитредовій реалізації команди завантаження і запису можуть бути виконані незалежно, без знання послідовності виконання команд завантаження та запису в сегменті-наступнику або попереднику.
Залежності між операторами програми з управління представляються як граф управляючих залежностей (ГУЗ), в якому вершинами є сегменти, а дугами задається порядок їх виконання.