Hyper Threading або сверехпоточность для процесора

Якщо ви уважно переглядали вміст BIOS Setup, то ви цілком могли помітити там опцію CPU Hyper Threading Technology. І можливо, задавалися питанням, що ж таке Hyper Threading (Сверехпоточность або гіперпоточность, офіційна назва – Hyper Threading Technology, HTT), і для чого потрібна ця опція.

Hyper Threading – це порівняно нова технологія, розроблена компанією Intel для процесорів архітектури Pentium. Як показала практика, використання технології Hyper Threading дозволило в багатьох випадках збільшити продуктивність CPU приблизно на 20-30%.

Навіщо розробникам процесорів потрібна технологія

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

Однак багато програм мають відразу кілька одночасно виконуються програмних процесів. Крім того, сучасні операційні системи дозволяють користувачеві мати відразу кілька запущених програм. І не просто дозволяють – насправді, ситуація, коли в операційній системі виконується один-єдиний процес, на сьогоднішній день абсолютно немислима. Тому процесори, розроблені за старими технологіями, мали низьку продуктивність в тих випадках, коли потрібно обробляти відразу декілька одночасних процесів.

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

Історія розробки

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

Підтримка технології Hyper Threading вперше з’явилася в процесорах в 2002 році. Це були процесори сімейства Pentium 4 і серверні процесори Xeon з тактовою частотою вище 2 ГГц. Спочатку технологія носила кодову назву Jackson, але потім її назва змінилася на більш зрозуміле для широкої публіки Hyper Threading – що можна перевести приблизно як «сверхпоточность».

При цьому, за твердженням Intel, поверхня кристала процесора, що підтримує Hyper Threading, збільшилася в порівнянні з попередньою моделлю, її що не підтримує, всього на 5% при збільшенні продуктивності в середньому на 20%.

Незважаючи на те, що технологія в цілому добре себе зарекомендувала, проте, по ряду причин корпорація Intel вирішила відключити технологію Hyper Threading в змінили Pentium 4 процесорах сімейства Core 2. Hyper Threading, проте, пізніше знову з’явилася в процесорах архітектури Sandy Bridge, Ivy Bridge і Haswell, будучи в них істотно переробленої.

суть технології

Розуміння технології Hyper Threading важливо, оскільки вона є однією з ключових функцій в процесорах Intel.

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

Але затримка все-таки є. Затримка з’являється через спосіб постачання процесора даними кожної з програм. Кожен потік даних повинен надходити в певний час і оброблятися процесором індивідуально. Технологія Hyper Threading уможливлює кожному ядру процесора планувати обробку даних і розподіляти ресурси одночасно для двох потоків.

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

Щоб зрозуміти цю ситуацію, можна привести аналогію з робітниками, які працюють в складальному цеху на конвеєрі і обробними різнотипні деталі. Кожен робочий забезпечений певним інструментом, призначеним для виконання будь-якої задачі. Однак якщо деталі надходять в неправильній послідовності, то трапляються затримки – тому, що частина робочих чекає своєї черги, щоб почати роботу. Hyper Threading можна порівняти з додатковою стрічкою конвеєра, яку проклали в цеху для того, щоб простоюють раніше робітники виконували б свої операції незалежно від інших. Цех як і раніше залишився один, але деталі обробляються швидше і ефективніше, тому скорочується час простою. Таким чином, Hyper Threading дозволила включити в роботу ті виконавчі пристрої процесора, які простоювали під час виконання інструкцій з одного потоку.

Варто вам включити комп’ютер з двоядерним процесором, що підтримує Hyper Threading і відкрити Windows Task Manager (Диспетчер завдань) на вкладці Performance (Швидкодія), як ви виявите в ньому чотири графіка. Але це аж ніяк не означає, що насправді у вас 4 ядра процесора.

Це відбувається тому, що Windows вважає, що у кожного ядра є по два логічних процесора. Термін «логічний процесор» звучить кумедно, але він означає процесор, якого фізично не існує. Windows може посилати потоки даних до кожного логічного процесора, але насправді виконує роботу тільки одне ядро. Тому одне ядро ​​з технологією Hyper Threading істотно відрізняється від роздільних фізичних ядер.

Для роботи технології Hyper Threading потрібно її підтримка з боку наступних апаратних і програмних засобів:

  • процесор
  • Чіпсет материнської плати
  • BIOS
  • Операційна система

переваги технології

Тепер розглянемо наступне питання – наскільки все ж технологія Hyper Threading збільшує продуктивність комп’ютера? У повсякденних завданнях, таких, як Інтернет-серфінг і набір текстів, переваги технології не настільки очевидні. Однак слід мати на увазі, що сьогоднішні процесори настільки потужні, що повсякденні завдання рідко завантажують процесор повністю. Крім того, багато що залежить ще і від того, як написано програмне забезпечення. У вас може бути запущено відразу кілька програм, однак, подивившись на графік завантаження, ви побачите, що використовується тільки один логічний процесор на ядро. Це відбувається тому, що програмне забезпечення не підтримує розподіл процесів між ядрами.

Однак в більш складних завданнях Hyper Threading може бути більш корисною. Такі програми, як програми для тривимірного моделювання, тривимірні ігри, програми кодування / декодування музики або відео і багато наукових додатки написані таким чином, щоб максимально використовувати багатопоточність. Тому ви можете відчути переваги швидкодії комп’ютера з функцією Hyper Threading, граючи в складні ігри, слухаючи музику або переглядаючи фільми. Підвищення продуктивності може при цьому досягати 30%, хоча можуть траплятися й такі ситуації, коли Hyper Threading не дає переваги зовсім. Іноді, в тому випадку, якщо обидва потоки завантажують все виконавчі пристрої процесора однаковими завданнями, може навіть спостерігатися і деяке зниження продуктивності.

Повертаючись до наявності в BIOS Setup відповідної опції, що дозволяє встановити параметри Hyper Threading, то в більшості випадків рекомендується включити цю функцію. Втім, ви завжди зможете її відключити, якщо виявиться, що комп’ютер працює з помилками або навіть має меншу продуктивність, ніж ви очікували.

висновок

Оскільки максимальне підвищення продуктивності при використанні Hyper Threading становить 30%, то можна сказати, що технологія еквівалентна подвоєння кількості ядер процесора. Проте, Hyper Threading – це корисна опція, і вам, як власнику комп’ютера, вона не завадить. Її перевага особливо помітно, наприклад, в таких випадках, коли ви редагуєте мультимедіа-файли або використовуєте комп’ютер в якості робочої станції для таких професійних програм, як Photoshop або Maya.

Ссылка на основную публикацию