Мультитредові мікропроцесори

Автор работы: Пользователь скрыл имя, 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

Прикрепленные файлы: 4 файла

курсова.doc

— 697.00 Кб (Скачать документ)

Табл. 3.4. Результати виконання програми на процесорі Pentium III

Coppermine 850 МГц  (CPUID = 068Ah)

Поведінка програми на справжньому  двоядерном процесорі показано на табл. 3.5.

 

dALU

iALU

dFPU

iFPU

dMMX

iMMX

dSSE

iSSE

dALU

+49,8% (10)

+49,4% (10)

+49,7% (10)

+49,7% (10)

+49,6% (10)

+49,7% (10)

+49,7% (10)

+49,5% (10)

iALU

+49,4% (10)

+49,6% (10)

+49,5% (10)

+49,4% (10)

+49,6% (10)

+49,5% (10)

+49,5% (10)

+49,6% (10)

dFPU

+49,6% (10)

+49,5% (10)

+49,7% (10)

+49,7% (l0)

+49,6% (10)

+49,7% (10)

+49,7% (10)

+49,6% (10)

iFPU

+49,7% (10)

+49,6% (10)

+49,6% (10)

+49,6% (10)

+49,7% (10)

+49,7% (10)

+49,7% (10)

+49,5% (10)

dMMX

+49,6% (10)

+49,2% (10)

+49,7% (10)

+49,7% (10)

+49,6% (10)

+49,7% (10)

+49,6% (10)

+49,5% (10)

iMMX

+49,6% (10)

+49,3% (10)

+49,7% (10)

+49,6% (10)

+49,7% (10)

+49,7% (10)

+49,7% (10)

+49,6% (10)

dSSE

+49,7% (l0)

+49,4% (10)

+49,7% (10)

+49,6% (10)

+49,6% (10)

+49,7% (10)

+49,6% (10)

+49,5% (10)

iSSE

+49,7% (10)

+49,5% (10)

+49,7% (10)

+49,6% (10)

+49,5% (10)

+49,7% (10)

+49,5% (10)

+49,7% (10)


Табл. 3.5. Результати виконання програми на процесорі Core 2 Duo E6300 (CP UID = 06F6h)

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

 

ВИСНОВКИ

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

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

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

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

Інтерфейс між апаратурою мультитредового процесора, що підтримує протікання кожного окремого треду та апаратурою, загальною для виконання всіх тредів, може бути встановлений як відразу після пристроїв вибірки команд тредів, так і на рівні доступу до пам'яті, що розділяється. У першому випадку всі треди використовують один регістровий файл і один набір функціональних пристроїв. Тісний зв'язок по ресурсах дозволяє ефективно виконувати послідовні програми з сильною залежністю між тредами. У цьому випадку має місце саме реалізація мультискалярного мультитредового процесора.

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

Досліджено особливості  реалізації технології Hyper-Threading на процесорах Intel Pentium 4 (ядра Northwood і Prescott). Показано, що при правильному використанні технології можна отримати до 50% збільшення у швидкості виконання коду програми.

Для підвищення ступеня завантаження виконавчих пристроїв процесорів 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%.

 

 

 

 

 

 

 

 

 

СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ

  1. Корнеев В. В. Киселев А. В. Современные микропроцессоры. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2003. - 448 с.: ил.
  2. Головкин Б.А. Параллельные вычислительные системы. М.: Наука. 1980, 520 с.;
  3. ftp://download.intel.com/technology/itj/2002/volume06issue01/vol6iss1_hyper_threading_technology.pdf
  4. В. В. Корнеев Проблемы программирования суперкомпьютеров на базе многоядерных мультитредовых кристаллов
  5. http://www.fcenter.ru/online.shtml?articles/hardware/processors/5081
  6. Ватутін Е.І. Використання технології Hyper-Threading в обчислювальних додатках // Тези доповідей XXXIII вузівської науково-технічної конференції студентів і аспірантів у галузі наукових досліджень «Молодь і XXI століття». Ч. 1. Курськ: вид-во КурскГТУ, 2005. С. 18-19.
  7. http://www.intel.com/technology/platform-technology/hyper-threading/index.htm?iid=tech_product+ht/
  8. Керученько Я., Малич Ю., Левченко В. Replay: неизвестные особенности функционирования ядра Netburst
  9. К. Wheeler et al. Qthreads: An API for Programming with Millions of Lightweight Threads. Proceedings of 22nd IEEE International Parallel and Distributed Processing Symposium. IPDPS 2008
  10. http://www.intuit.ru/department/hardware/mcoreproc/1..17/

 

 

ДОДАТКИ


 

 

 

 

 

 

 

 

 

 

 

 

 

Додаток 1. Мультитредова  архітектура

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Додаток 2. Архітектура  мультитредового процесора

 

 

 

 

 

 

Додаток 3. Лістинг програми

for (indx = 0; indx ← BUFSIZE; indx ++) {

/* Отримати символ для пошуку */

symbol = SYMVAL (buffer [indx]);

/* Послідовний перебір для символу в списку */

for (list = listhd; list; list = LNEXT (list)) {

/* Якщо символ міститься в списку, обробити його */

if (symbol == LELE (list)) {

process (list);

break;

}

}

/* Якщо символ у списку не знайдений, додати його до хвоста списку */

if (! list) {

Addlist (symbol);

}

}  




Титульна стор_нка.doc

— 74.50 Кб (Просмотреть файл, Скачать документ)

Информация о работе Мультитредові мікропроцесори