ПредишенСледващото

В миналото, ние говорихме за едновременното многонишкова технология (Едновременно Multi-Threading - SMT), който се използва в Intel процесори. Въпреки, че първоначално е бил създаден под кодовото име "Джаксън технологии" (Jackson Technology), като е възможно, вероятно вариант, Intel обяви официално своята технология на IDF миналата есен. Код Джексън е бил заменен с по-подходящ Hyper-Threading. Така че, за да се разбере как новата технология, ние се нуждаем някои основни познания. А именно, ние трябва да знаем какво потока, как тези потоци. Защо става това? Процесорът, който знае работата и на какви данни трябва да направи? Цялата тази информация се съдържа в компилиран код е на ход. И веднага след като молбата е получена от потребителя, всяка команда, всички данни - процесор изпращат незабавно поток, в резултат на което той прави това, което трябва да бъде направено в отговор на искането на потребителя. По отношение на процесор, потока - набор от инструкции, които трябва да се следват. Когато плащам попада в Quake III Arena, или когато отворите документ на Microsoft Word, процесорът изпраща определен набор от инструкции, които той трябва да се изпълняват.

Налице е добре познат начин за решаване на този проблем. Тя се състои в използване на два процесора - ако един процесор във всеки един момент може да носи на потока, двете процесори за същото време устройството може вече да носят два потока. Имайте предвид, че този метод не е съвършен. Когато той повдига много други проблеми. С някои от тях, най-вероятно вече са запознати. Първо, няколко процесора винаги са по-скъпи от един-единствен. На второ място, за да контролира два процесора също не е толкова лесно. Също така, не забравяйте за разделението на ресурси между процесорите. Например, преди появата на AMD чипсет 760MP, всички x86 платформи с поддръжка на многопроцесорни разделя честотната лента на системната шина между всички процесори. Но основният недостатък в другия - за работа и приложението и операционната система трябва да поддържа множество процесори. Способността да се разпространява на изпълнение на множество нишки на ресурсите на компютъра ви, често се наричат ​​многонишкова. В същото време, както и операционната система трябва да поддържа многонишкова. Заявленията трябва да поддържат и многонишкова да се максимизира използването на ресурси на компютъра. Имайте това предвид, когато смятаме, че друг подход към решаване на проблемите на многонишкова, нов Hyper-Threading технология от Intel.

Изпълнение никога не е достатъчно

От ефективност е винаги много се говори. И не само в корпоративна среда, в някои сериозни проекти, но и в ежедневието. Той казва, хомо сапиенс само частично включват възможността за мозъка му. Същото важи и за преработвателите на съвременните компютри.

За илюстрация на ситуацията, нека си представим, процесор с три предавки: аритметично логическо (число - ALU), устройство за плаваща запетая (на FPU), както и устройство за четене / запис (за писане и четене на данни от паметта). Освен това, ние приемаме, че нашият процесор може да изпълнява всяка операция в един такт и да разпространявате сделки и в трите устройства едновременно. Да си представим, че този процесор да изпълнява поток се изпраща от следните указания:

1 + 1
10 + 1
Запазване на предишния резултат

Фигурата по-долу илюстрира нивото на задвижвания претоварване (сив означен unactuated устройство синьо - работно устройство):

Така че виждате, че във всеки цикъл е само 33% от всички предавки. Този път FPU като цяло остава неизползван. В съответствие с данните, Intel, повечето програми за IA-32 x86 не използва повече от 35% механизми Pentium 4 процесор.

Представете си друг поток, да го изпрати на производителността на процесора. По това време, той ще се състои от операции зареждане на данни, допълнение и съхранение на данни. Те ще се извършва в следния ред:

Отново натоварване механизми е само 33%.

Един добър добив от тази ситуация би било инструкция ниво паралелизъм (Инструкция Ниво Паралелността - ПИК). В този случай се извършва едновременно на няколко инструкции, тъй като процесорът може да запълни няколко паралелни механизми. За съжаление, повечето програми x86 не са адаптирани към ILP на правилното степен. Ето защо е необходимо да се търсят други начини за увеличаване на производителността. Например, ако системата се използва непосредствено два процесора, човек може едновременно да изпълнява две нишки едновременно. Този разтвор се нарича резба ниво успоредност (резба ниво паралелизъм, TLP). Между другото, това решение е доста скъпо.

Какви са най-добрите начини за увеличаване на изпълнителната власт на модерната процесори x86 архитектура?

Hyper-Threading

непълна помощта на задвижващи е проблем с няколко причини. Най-общо казано, ако процесора не може да получава данни на желаната скорост (това се дължи на недостатъчния капацитет на системната шина и шина на паметта), задвижващи механизми ще бъдат използвани не толкова ефективни. В допълнение, има и друга причина - липсата на паралелизъм на ниво инструкция в по-голямата част от команди потоци.

В момента по-голямата част от производителите, за да се подобри скоростта на процесора чрез увеличаване на тактова честота и размер на кеша,. Разбира се, по този начин можете да увеличите производителността, но също така и на потенциала на процесора няма да се използва напълно. Ако едновременно можем да стартираме множество нишки, тогава бихме могли да използваме процесора много по-ефективно. Че това е същността на Hyper-Threading технологията.

Hyper-Threading - е името на технологията, която е съществувала преди е x86 свят, едновременно многонишкова технология (Едновременно Multi-Threading, SMT). Идеята зад тази технология е проста. Един физически процесор изглежда операционната система като две логически процесори, и операционната система не вижда разликата между SMT процесор или две конвенционалните процесори. И в двата случая, операционната система насочва потока както на система с два процесора. Освен това, всички проблеми се решават на ниво хардуер.

Процесорът с Hyper-Threading всеки логически процесор има свой собствен набор регистър (включително и отделна програма брояч), и за да не се усложни технологията, тя не може да се реализира едновременно извършване на извличане на инструкция / декодира два потока. Това е, тези инструкции се изпълняват една по една. Успоредно с това, екипът извършва рутинна.

Технологията все още не е освободен, но тези от вас, които са закупили 0,13-микронна Xeon и да зададете процесор картата с актуализирания BIOS, трябва да е бил изненадан да види опцията BIOS за активиране / деактивиране на Hyper-Threading.

В същото време, Intel ще напусне опцията Hyper-Threading е изключена по подразбиране. Въпреки това, той може да се превърне просто актуализиране на BIOS. Всичко това се отнася за работни станции и сървъри, както и за пазара на персонални компютри в близко бъдеще компанията планира за тази технология не е налична. Въпреки че е възможно, производителите на дънни платки ще предостави възможност за включване на Hyper-Threading със специален BIOS.

Остава един много интересен въпрос, защо Intel иска да оставите тази опция е изключена?

Ние се рови в технологията

Запомни тези два потока от предходните примери? Нека този път, да предположим, че нашият процесор е оборудван с Hyper-Threading. Нека да видим какво ще се случи, ако се опитаме да извършват тези две теми:

Както и преди, сини правоъгълници показват изпълнението на първия поток от инструкции и зелено - за изпълнението на втория поток инструкция. Сивите кутии показват неизползвани задвижващи механизми, както и червено - на конфликта, когато едно устройство е само на две различни инструкции от различни нишки.

Така че, това, което виждаме? Тема на ниво паралелизъм не е успял - механизми започват да се използват още по-малко ефективно. Вместо паралелни нишки на изпълнение, процесорът ги изпълнява по-бавно, отколкото ако ги беше извършена без Hyper-Threading. Причината за това е съвсем проста. Ние се опитвахме да изпълнява едновременно само две много подобни поток. В края на краищата, те се състоят от операциите на натоварване / магазин и операции на допълнение. Ако ние се завтече успоредно на "число" приложение и приложение, което работи с плаваща точка, ние ще се някъде в най-добрата ситуация. Както можете да видите, Hyper-Threading ефективност е силно зависим от вида на товара на компютъра.

В момента по-голямата част от потребителите на персонални компютри използвате компютъра си по този начин, както е описано в този пример. Процесорът изпълнява много операции са много сходни. За съжаление, когато става въпрос за групи сделки и операции, има допълнителни проблеми с управлението. Има ситуации, когато трябва да въведете механизми вече не съществува, и наредбите, за съжаление, два пъти повече от обичайното. В повечето случаи, ако процесори дома компютърни използват Hyper-Threading Technology, изпълнението на това ще се увеличи не, и дори може да се намали с 0-10%.

В същото станции, работещи възможности за подобряване на ефективността на Hyper-Threading повече. Но от друга страна, че всичко зависи от конкретната употреба на компютъра. Работната станция може да означава и двете най-висок клас компютър за обработка на 3D графика, както и силно натоварени компютър.

Най-голямата по-голяма производителност от използването на Hyper-Threading наблюдава в сървърни приложения. Основно това се дължи на по-голямо разнообразие от операции, изпратени от процесора. сървър на база данни с помощта на сделката може да работи на 20-30% по-бързо с Hyper-Threading включените опции. А малко по-малко увеличение на качеството се появява на уеб сървъри и в други области.

Максимална ефективност на Hyper-Threading

Мислиш ли, че, Intel Hyper-Threading, разработена само за своята линия на сървърни процесори? Разбира се, не. Ако това беше така, те не би трябвало да губите пространство на другите си чип процесори. В действителност, NetBurst архитектурата, използвани в Pentium 4 и Xeon, е напълно подходящ за ядрото с поддръжка за едновременна многонишкова. Нека отново да си представи процесор. Този път тя ще бъде още един задвижващ механизъм - вторият по цяла единица. Да видим какво ще стане, ако потоците ще се извършва от двете устройства:

Използване на устройството на второто число, единственият конфликт настъпили само в последната операция. Нашата теоретична процесор в нещо подобно на Pentium 4. Той има най-много три число единица (ALU две бавни и едно число единица за циклични промени). И по-важното, както число единица Pentium 4 може да работи при повишена честота - изпълнява две микро-операции на часовник. Това на свой ред означава, че всяка една от тези две число Pentium устройства 4 / Xeon може да изпълнява две операции на прибавяне на различните потоци в един цикъл.

Но това не решава проблема ни. Това ще направи малко смисъл просто да се добавят допълнителни изпълнение процесор единици, за да се увеличи производителността на използването на Hyper-Threading. По отношение на заеманата площ силиций би било изключително скъпо. Вместо това, Intel поканени на разработчиците да оптимизират програми за Hyper-Threading.

Използването HALT инструкции, можете да преустанови действието на един от най-логически процесори, и по този начин да се увеличи производителността на приложения, които не се възползват от Hyper-Threading. По този начин, приложението няма да ви се забавя, но вместо това един от най-логически процесори е спрян, а системата ще работи по един логичен процесор - спектакъл ще бъде същата като в един процесор компютри. След това, когато прилагането счита, че ще бъде от полза при изпълнение на втория логически процесора просто да продължи работата си по Hyper-Threading.

Уеб сайт на Intel има презентация. описва как тя трябва да бъде програмиран да се учи от Hyper-Threading максимални ползи.

Въпреки, че бяхме много доволни, когато чухме слухове за използването на Hyper-Threading в ядрата на всички настоящи Pentium 4 / Xeon, но тя няма да бъде свободен производителност за всички поводи. Причините са ясни, а технологията трябва да преодолее много повече, преди да видим Hyper-Threading, работи на всички платформи, включително и домашни компютри. И с подкрепата на разработчиците, технологията определено може да бъде добър съюзник на Pentium 4, Xeon, а бъдещите процесори поколение от Intel.

Съгласно съществуващите ограничения и със съществуващите опаковки технология, Hyper-Threading изглежда по-разумен избор за потребителския пазар, отколкото, например, AMD подход Sledgehammer - в тези процесори се използва толкова, колкото две ядра. А до тогава, докато не станат перфектни технологии опаковки като Bumpless Build-Up Layer. разходите за разработване многоядрен процесор може да бъде твърде висока.

Интересно е да се отбележи, как различните стомана AMD и Intel в последните няколко години. В крайна сметка, след като AMD практически копира Intel процесори. Сега, компанията разработва радикално различен подход към бъдещите процесори за сървъри и работни станции. AMD наистина направи много дълъг път. И ако в процесорите чук шейни всъщност ще използва две ядра, изпълнението на такова решение ще бъде по-ефективен от Hyper-Threading. Всъщност, в този случай, в допълнение да се удвои броят на механизми елиминиране на проблема, който сме описани по-горе.

Hyper-Threading за известно време не се появяват на пазара на конвенционален компютър, но с добра подкрепа от страна на предприемачите, тя може да се превърне в следващия технология, която ще падне от нивото на сървъра на компютъра се използва.

Съгласие за обработването на лични данни

Подкрепете проекта - споделете линка, благодаря!