Технологія Hyper Threading

У деяких процесорах, реалізованих на основі мікроархітектури NetBurst, була введена можливість одночасного паралельного виконання двох програм, або двох різних ділянок однієї програми. Сама назва Hyper Threading означає «гіперпоточность», тобто процесор може одночасно виконувати багато потоків команд.

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

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

Розглянемо переваги технології Hyper Threading на прикладі. Нехай процесор виконує дві програми, яким відповідають два потоки команд – потік А і потік В. Команди потоку А завантажують виконавчі блоки процесора так, як показано на рис. 5.4, ​​а, a потоку В – на рис. 5.4, ​​б. Як видно, в різні такти обидва потоки використовують різні виконавчі блоки процесора. Якщо процесор не має технології Hyper Threading, то при паралельному виконанні двох потоків він буде по черзі виконувати їх команди (рис. 5.4, в). У загальній складності для цього знадобиться 10 тактів. Якщо ж процесор реалізує технологію Hyper Threading, то для виконання обох потоків знадобиться лише 5 тактів (рис. 5.4, г).

Посилання на основну публікацію