суперконвейерная структури

Ефективність конвеєра знаходиться в прямій залежності від того, з якою частотою на його вхід подаються дані. Домогтися n -кратного збільшення темпу роботи конвеєра можна двома шляхами:

розбиттям кожного ступеня конвеєра на більш дрібні при одночасному підвищенні тактової частоти;

включенням в процесор декількох конвеєрів, що працюють паралельно.

На жаль, виграш, який досягається за рахунок суперконвейерізаціі, на практиці може виявитися умоглядним. У довгому конвеєрі зростає ймовірність конфліктів. Дорожче встає помилка передбачення переходу. При переривання програм конвеєри поводяться кок послідовні структури, весь конвеєр очищається, а потім заповнюється. Часті переривання і перемикання програм істотно знижують продуктивність суперконвейерная структур. Цікаво відзначити, що у процесора Intel ® Itanium ® конвеєр 10-ти ступінчастий, а у Intel ® Itanium ® 2-8-ми ступеневий .. \ Слайди \ Itan.ppt.

суперскалярні процесори

Після введення класу векторних процесорів звичайні процесори стали називати скалярними. Наступний крок розвитку скалярних процесорів привів до появи назви суперскалярні.

Суперскалярнимі1 називаються процесори, які одночасно виконують більш ніж одну скалярну команду. (Цількер) Це досягається за рахунок включення до складу процесора декількох самостійних функціональних блоків, кожен з яких відповідає за свій клас операцій і може бути присутнім в процесорі в декількох примірниках. Суперскалярність передбачає паралельну роботу максимального числа виконавчих блоків, що можливо лише при одночасному виконанні декількох скалярних команд. Це досягається тим, що процесор «переглядає» наближаються до виконання команди і вибирає з них ті послідовності, які можуть бути виконані паралельно. Суперскалярність добре поєднується з конвеєрної обробкою, при цьому бажано, щоб в суперскалярного процесорі було кілька конвеєрів, наприклад два або три. Суперскалярність і суперконвейерная не суперечать один одному і в більшості сучасних процесорів реалізовано і те, і інше. Слід звернути увагу, що на відміну від структури з одним конвеєром, в структурах з декількома конвеєрами в кожному циклі необхідно робити вибірку більш ніж однієї команди, а це дуже нагадує структури VLIW. Суперскалярні процесори реалізують паралелізм на рівні команд.

Гіперпотоковая технологія

Гіперпотоковая технологія (Hyper-ThreadingTechnology. HTT) була створена корпорацією Intel з метою підвищення продуктивності і ефективності серверних систем. Дана технологія є чимось середнім між багатопотокової обробкою, реалізованої в мультипроцесорних системах, і паралелізмом на рівні інструкцій, реалізованому в однопроцесорних системах. Взагалі кажучи, HTT стала однією з форм синхронної многопотоковой технології, де безліч потоків, що створюються програмними додатками, можуть виконуватися одночасно на одному процесорі. За допомогою реалізованого в технології Hyper-Threading принципу паралельності можна обробляти інструкції в паралельному (а не в послідовному) режимі, тобто для обробки все інструкції поділяються на два паралельні потоки. Це дозволяє одночасно обробляти два різних додатки або два різних потоку однієї програми і тим самим збільшити продуктивність процесора. У конструктивному плані процесор з підтримкою технології Hyper-Threading складається з двох логічних процесорів, кожний з яких має свої регістри і контролер переривань. Це означає, що дві паралельно виконувані завдання працюють зі своїми власними незалежними регістрами і переривань, але при цьому використовують одні і ті ж ресурси процесора для виконання своїх завдань. Після активації кожен з логічних процесорів може самостійно і незалежно від іншого процесора виконувати своє завдання, обробляти переривання або блокуватися. Таким чином, від реальної двухпроцессорной конфігурації нова технологія відрізняється тільки тим, що обидва логічних процесора використовують одні і ті ж виконують ресурси, одну і ту ж розділяється між двома потоками кеш-пам'ять і одну і ту ж системну шину. Ідея технології Hyper-Threading тісно пов'язана з мікроархітектури NetBurst процесора Pentium 4 і є в якомусь сенсі її логічним.

Розглянемо гіпотетичний процесор, в якому є чотири виконавчих блоку: два арифметико-логічних пристрої для роботи з цілими числами (ALU), блок для роботи з числами з плаваючою точкою (FPU) і блок для запису і читання даних з пам'яті (Store / Load, S / L). Нехай, крім того, кожна операція здійснюється за один такт процесора. Далі припустимо, що виконується програма, що складається з трьох інструкцій: перші дві - арифметичні дії з цілими числами, а остання, щоб після виходу результату. У цьому випадку вся програма буде виконана за два такту процесора: в першому такті задіюються два блоки ALU процесора (червоні квадрати на рис. 16), у другому - блок запису і читання даних з пам'яті S / L. У сучасних додатках в будь-який момент часу, як правило, виконується не одна, а кілька завдань або кілька потоків (threads) одного завдання. На рис.17 показано як буде вести себе гіпотетичний процесор при виконанні двох різних потоків завдань. Червоні квадрати відповідають використанню виконавчих блоків процесора одним потоком, а сині квадрати - іншим. Якби обидва потоку виконувалися ізольовано, то для виконання першого і другого потоку треба було б по п'ять тактів процесора (див. Рис.17). При одночасному виконанні обох потоків процесор буде постійно перемикатися між обома потоками, отже, за один такт процесора виконуються тільки інструкції будь-якого одного з потоків. Для виконання обох потоків так само буде потрібно десять процесорних тактів (рис.18).

І

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

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

Схожі статті