Шта је вишејезгарни процесор?

click fraud protection

Од средине 20. века, десктоп процесори нуде више ЦПУ језгара у једном пакету. Ово је вишејезгарни процесор. Док су рани дизајни били ограничени на два или четири ЦПУ језгра, модерни ЦПУ нуде до 64 физичка језгра на једном ЦПУ-у. Толико велики број језгара није стандардни за десктоп процесоре и генерално је резервисан за врхунске радне станице или сервере. Типични број језгара у модерним десктоп процесорима је између 4 и 16. Али шта је то са вишејезгарним ЦПУ-има што их чини доминантним у модерним рачунарима?

Једно језгро

Историјски гледано, ЦПУ са једним језгром био је ограничен на само обављање једног задатка одједном. Ово долази са читавим низом проблема. На пример, на модерном рачунару постоји огромна количина покренутих процеса у позадини. Ако ЦПУ може да обрађује само једну ствар у исто време, то значи да ови позадински процеси морају да одвоје време обраде од процеса у првом плану. Поред тога, пропусти у кеш меморији значе да податке треба преузети из – релативно – споре РАМ меморије. Током времена када се подаци преузимају из РАМ-а, процесор једноставно мирује, јер не може ништа да уради док не добије податке. Ово задржава покренути процес као и све друге процесе који чекају да се заврше.

Иако модерни једнојезгарни процесори заправо нису ствар захваљујући порасту буџетских вишејезгарних процесора, они би могли да користе друге модерне трикове како би радили брже. Цјевовод би омогућио да се сваки различити дио руковања инструкцијом користи истовремено, обезбеђујући значајно повећање перформанси у односу на коришћење само једне фазе цевовода по такту циклус. Широки цевовод би видео да се више инструкција може руковати у свакој фази цевовода по циклусу такта. Обрада ван налога би омогућила заказивање инструкција на временски ефикаснији начин. Предиктор гранања би могао да предвиди исход инструкције гранања и превентивно покрене претпостављени одговор.

Сви ови фактори би добро функционисали и обезбедили неке перформансе. Додавање једног или више језгара, међутим, омогућава све то, а једним потезом омогућава обраду дупло више података одједном.

Мултицоре

Додавање другог језгра звучи као да би требало да удвостручи сирове перформансе. Ствари су, нажалост, сложеније од тога. Логика програма је често једнонитна, што значи да постоји само једна ствар коју програм покушава да уради у било ком тренутку. Оно што се може десити, међутим, јесте да други процеси могу истовремено да користе друго језгро. Иако не постоји инхерентно повећање перформанси за већину појединачних програма, обезбеђење додатног ресурса за обраду, ефективно смањује конкуренцију за ограничени ресурс, што пружа а повећање перформанси. Ово повећање перформанси, једноставно због смањења конкуренције за ЦПУ време, најуочљивије је када се пређе са сингла на ЦПУ са два језгра, долази до смањења поврата од даљег повећања броја језгара, иако је генерално више боље.

Да би се правилно искористили системи са више језгара и заиста видели солидно повећање перформанси, програми морају бити програмирани да користе више нити за обраду. Вишенитна логика је позната као тешко поуздано извести јер је често тешко научити и постоји много потенцијалних замки. Један пример замке је познат као стање трке. У условима трке, један процес претпоставља да ће други процес који он започне тећи глатко, а затим покушава да уради нешто што се ослања на неометано одвијање тог другог процеса. На пример, замислите да процес покреће други процес да затвори један документ и отвори други. Ако првобитни процес не провери правилно да ли је други процес завршен, то може довести до неочекиваних исхода. Ако је дошло до проблема при затварању првог документа, на пример, он би могао и даље бити отворен када оригинални процес само упише више података у њега.

У овом стању трке, вредност променљиве се чита други пут пре него што јој се упише нова вредност, што доводи до погрешног укупног одговора.

Термални проблеми

Један од највећих проблема са којима се вишејезгарни процесори на крају боре је топлота. Док једно језгро ЦПУ-а не производи толико топлоте, два дају више. У процесорима са високим бројем језгара, ова концентрација топлоте може резултирати нижим тактом појачања, пошто ЦПУ управља својом температуром. Нижи такт појачања ће узроковати ниже перформансе у апликацијама са једним навојем. Ово се често може видети у мерилима перформанси игара. Видео игре се често веома ослањају на једну нит. Као такав, перформансе једног нити су често критичне за играње игара. ЦПУ-и са високим бројем језгара, као што су модели са 16 језгара, често су из складишта високих перформанси. Упркос томе, редовно се може открити да их надмашују „мањи“ ЦПУ-ови са мањим бројем језгара у једнонитним бенцхмарковима. Овај проблем је још очигледнији код ЦПУ-а са ултра-великим бројем језгара као што је 64-језгарни АМД Тхреадриппер где је брзина такта приметно нижа од врхунских десктоп ЦПУ-а.

Успеси

Многе апликације могу правилно да искористе више ЦПУ језгара. На пример, ЦПУ рендеровање је релативно лак задатак за паралелизацију. Побољшања перформанси се могу видети све до 64 језгра и више, иако ниједан ЦПУ тренутно не нуди више од 64 језгра. Многе апликације једноставно не могу бити вишенитне јер се ослањају на секвенцијалну логику. Иако ови не виде ни приближно убрзање програма са више нити, чињеница да програми са више нити и други једнонитни програми могу да користе друга језгра ЦПУ-а ослобађају процесорско време, омогућавајући боље перформансе.

Архитектонске опције

У десктоп процесорима, свако језгро ЦПУ-а унутар вишејезгреног ЦПУ-а је генерално идентично. Ова хомогеност чини планирање рада на језгри једноставним. Коришћење истог дизајна који се понавља такође помаже у смањењу трошкова развоја. Мобилни процесори, међутим, већ дуго користе хетерогене архитектуре језгра. У овом дизајну постоје два или чак три нивоа ЦПУ језгра. Сваки ниво може да покреће исте процесе, међутим, неки су дизајнирани за енергетску ефикасност, а други су подешени за перформансе. Ово се показало као рецепт за успех за уређаје на батерије, јер многи задаци могу да користе спорије енергетски ефикасна језгра, продужавају век трајања батерије, док се процеси високог приоритета и даље могу покренути великом брзином када је то потребно.

Архитектура Десктоп ЦПУ-а се такође креће у правцу хетерогеног дизајна језгра. Интелово језеро Алдер 12тх генерација Цоре ЦПУ линија је први десктоп ЦПУ који то ради. У овом случају, главни покретачки фактор мањих језгара није нужно енергетска ефикасност, већ топлотна ефикасност, иако су то две стране истог новчића. Поседовање више моћних језгара обезбеђује високе перформансе, док многа ефикасна језгра могу да се баве задацима у позадини без превише утицаја на главна језгра.

Закључак

Вишејезгарни ЦПУ је ЦПУ који садржи више језгара за обраду у једном пакету, често, иако не искључиво на истој матрици. Вишејезгарни ЦПУ-и не нуде много директног повећања перформанси за многе програме, међутим, повећањем броја језгара, једнонитни програми не морају да се такмиче толико за ЦПУ време. Неки програми могу у потпуности да искористе предности више језгара, директно користећи онолико колико је доступно. Ово обезбеђује велико повећање перформанси, мада због топлотних и енергетских ограничења ово повећање није нужно директно удвостручење перформанси са удвостручавањем језгара.