Що таке гіпер-нарізка і як це працює?


Відповіді:


32

Hyper-threading - це ваш процесор, який видає, що має 2 фізичні ядра процесора, але має лише 1 і кілька зайвих непотріб.

Сенс гіперточення полягає в тому, що багато разів, коли ви виконуєте код у процесорі, є частини процесора, які не працюють. Включаючи додатковий набір регістрів процесора, процесор може діяти так, як він має два ядра, і таким чином використовувати паралельно всі частини процесора. Коли обидва ядра обидва повинні використовувати один компонент процесора, тоді одне ядро ​​закінчується очікуванням курсу. Ось чому він не може замінити двоядерні та такі процесори.


6
+1 слід додати, що гіпер-різьблення є специфічним для впровадження SMT від Intel, наприклад, процесор SPARC має іншу форму SMT, реалізовану, але з подібними цілями.
sybreon

@Earlz Ви припускаєте, що процесор працює на двох потоках, розділивши ядра на два? або це схоже на те, що паралелізм, зроблений насправді, гіперточення викликає перехід процесора з однієї нитки на іншу?
Doopy Doo

4
@DoopyDoo ні. В основному процесор має два "сердечники виконання", які є конвеєрними інструкціями, і він також має два набори регістрів та інші важливі речі. Різниця між гіпер-нарізанням та звичайним двоядерним, хоча деякі речі НЕ дублюється. Наприклад, може бути лише одна АЛУ. Отже, це означатиме, що двоядерний процесор може одночасно додавати два окремих набори чисел, тому що для процесора з гіпертоковою передачею потрібно буде змусити одне з віртуальних ядер чекати, поки він вийде з ALU .. Звичайно, це спрощений приклад
Earlz

11

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

Hyper-Threading змушує ОС думати, що процесор має подвоєну кількість ядер і часто дає покращення продуктивності, але лише в районі 15-30% в цілому - хоча за деяких обставин насправді може бути досягнуто ефективність (= <20%).

В даний час більшість мікросхем Atom і всі i7 (і Xeon-еквівалентні мікросхеми) мають гіпер-потоки, як і деякі старіші P4. Що стосується Атомів, це відчайдушна спроба покращити продуктивність без значного збільшення споживання електроенергії; у випадку i7s це відрізняє їх від i5-го діапазону мікросхем.

Комплексна робота з обробки не принесе великої користі від HT, але деякі (прості, багатопотокові) завдання, такі як кодування відео, виграють від HT. Насправді в ньому не багато ...


95% правильно. Якщо нормальне ядро ​​= A + B, то ядро ​​з гіперточкою більше нагадує A + 2 x B. Вони можуть виконувати два потоки одночасно, доки обом потокам не потрібно A.
Вінсент Ванкальберг

3

Щоб розширити те, що вже було сказано, гіпертодування означає, що одне ядро ​​CPU може підтримувати два окремі контексти виконання та швидко перемикатися між ними, ефективно емулюючи два ядра на апаратному рівні.

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

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

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

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


2

Коли єдине ядро ​​може виступати як двоядерне

це Hyperthreading

Детально

Реалізація Intel Simulta Multi-Threading відома як Hyper-Threading Technology або HT Technology.

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


Hyperthreading дозволяє одному процесору виконувати два потоки одночасно, але не за всіх умов.

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

Технологія Intel Hyper-Threading дозволяє кожному ядру мати два логічні процесори, які ділять більшість ресурсів ядра, такі як кеш пам'яті та функціональні блоки

Основна функція

Hyperthreading полягає у збільшенні кількості незалежних інструкцій у трубопроводі; він користується перевагою суперскалярної архітектури, в якій кілька інструкцій працюють на окремих даних паралельно

Intel каже, що гіпер-нарізка є високоефективною, оскільки вона використовує ресурси, які в іншому випадку будуть простоюватими або недостатньо використаними.

Посилання:

Багатоядерне програмування Wikipedia
StackOverflow
Digital_Edition, сторінка №8

введіть тут опис зображення

Intel Image

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.