Повеќејадрен обработувач

Од Википедија — слободната енциклопедија

Повеќејадрен обработувачсметачки обработувач со две или повеќе истоветни обработувачки единици (наречени „јадра“), кои се единици што читаат и извршуваат програмски наредби.[1] Наредбите се обични обработувачки наредби како додавење, преместување податоци и разгранување, но повеќето јадра можат да извршуваат повеќе наредби истовремено, зголемувајќи ја брзината на програмите подложни на напоредно сметање[2]. Производителите типично интегрираат јадра на една интегирана коцка од коло (познато како повеќеобработувачки чип или CMP) или повеќе коцки во еден чипски пакет.

Обработувачите биле првично предвидени за работа со едно јадро. Во средината на 1980-тите Rockwell International произвеле верзии од 6502 со два 6502 јадра на еден чип како R65C21, и R65C29[3][4], делејќи ги пиновите на чипот алтернативно во однос на фазите на тактот. Други повеќејадрени обработувачи биле развиени на почетокот на 2000-тите од страна на Intel, AMD и други.

Повеќејадрените обработувачи може да имаат две јадра (двојадрени обработувачи, пример AMD Phenom || X2 и Intel Core Duo), три јадра (тријадрени обработувачи како, AMD Phenom || X3), четири јадра (четиријадрени обработувачи како, AMD Phenom || X4 и Intel i5/i7), шест јадра (на пример, AMD Phenom || X6 И Intel Core i7 Extreme Edition 980X), осум јадра (пример, Intel Xeon E7-2820 у AMD FX-8350), десет јадра (пример, Intel Xeon E7-2859) или повеќе.

Повеќејадрениот обработувач применува повеќекратна обработка на еден физички пакет. Дизајнери може да спаруваат повеќе јадра во повеќејадрена направа потесно или пошироко. На пример, јадрата може да не делат кепови, и може да имплементираат подавање на пораки или заедничкоскладишни меѓујадрени комуникациски методи. Чести мрежни топологии за да поврзат меѓусебно јара користат магистрален, прстенест, дво-димензионален меш или crossbar. Хомогени повеќејадрени системи вклучуваат само истоветни јадра, хетерогени повеќејадрени системи содржат јадра кои не се истоветни (пр. big.LITTLE). Како и еднојадрените обработувачки системи, јадрата во повеќејадрените системи може да имплементираат архитектури како VLIW, суперразмерување, вектори или повеќекратно нанижување.

Повеќејадрените обработувачи наоѓаат широка употреба во многу области вклучувајќи општонаменски, вградени обработувачи, мрежни обработувачи, обработувачи за дигитални сигнали (DSP) и графички обработувачи (GPU).

Подобрувањето во делотворноста донесено од страна на повеќејадрените обработувачи зависи многу од програмските алгоритми кои се користат и нивната имплементација. Конкретно, можни добивки се ограничени од програмската опрема која може да биде пуштена напоредно и истовремено на повеќе јадра; овој ефект е опишен како Амдалов закон. Во најдобар случај, т.н. срамни напоредни проблеми може да постигнат забрзувачки фактори близу бројот на јадрата, дури поголем проблем е ако самиот проблем е поделен доволно за да го собере во кешот на секое јадро, одбегнувајќи користење многу посопра системски склад. Повеќето прилози, сепак, не се забрзано толку многу овен ако програмерите не постветат големо време за ре-факторирање на целиот проблем[5]. Напоредувањето на програмите е значајна тема на инстражување.

Поими[уреди | уреди извор]

Поимите повеќејадрен и двојадрен најчесто се однесуваат ко некаква централна обработувачка единица (CPU); но некога исто така може да мислат и на обработувачи на дигитални сигнали (DSP) и систем-на-чип (SoC). Поимите начелно се користат само за повеќејадрени микрообработувачи кои се произведуваат на истото интегрирано коло - коцка; одделни микрообработувачки коцки во истиот пакет начелно се нарекува со друго име или, повеќечипен модул. Овој текст ги користи поимите „повеќејадрен“ и „двојадрен“ за обработувачи произведени на истото интегрирано коло, освен ако не е спротивно наведено.

Во контраст со повеќејадрени системи, поимот повеќеобработувачки се однесува на повеќе физички одделни обработувачки единици (кои често содржат посебни кола за да ги користат за комуникација меѓу себе).

Поимот повеќејадрен и значајно повеќејадрен се понекогаш користени за да опишат повеќејадрени архитектури со посебно висок број на јадра (десет или стотици)[6].

Некои системи користат меки микрообработувачки јадра наместени на една FPGA. Секое ‘јадро’ може да биде сметано како ‘полупроводничко јадро со интелектуални својства’ како и обработувачко јадро.

Развој[уреди | уреди извор]

Додека производствената технологија се подобрува, намалување на големината на поединечните порти, физички граници на полупроводнички засновани микроелектрониката станаа главена загриженост при дизајн. Овие физички ограничувања може да предизвикаат значителни проблеми при дисипација на топлина и синхронизација на податоци. Разни други методи се користат за подобрување на делотворноста на обработувачот. Некои наредбени степени на напоредност (ILP) методи како суперскалирање и групирање на наредби, се погодни за многу прилози, но се неефикасни за другите кои содржат тешки кодови за предвидување. Многу прилози се подобро прилагодени за нанижан степен на напоредност (TLP) методи, и повеќе независни обработувачи кои најчесто се користат за да се зголеми вкупната TLP на системот. Комбинацијата на зголемениот слободен простор (поради истенчени производни процеси) и побарувачката за зголемен TLP доведува до развој на повеќејадрените обработувачи.

Комерцијални иницијативни[уреди | уреди извор]

Неколку деловни побуди се поттик за развојот на повеќејадрени архитектури. Со децении, можно е да се подобрат делотворноста на обработувачот со намалување од областа на интегрирано коло (IC), со која што ќе се намали цената од уред на IC. Алтернативно, за истота област на колото, повеќе транзистори може да се користат во дизајнот, со што се зголемува функционалноста, особено за комплексно наредбено множество сметачи (CISC-архитектури). Тактовите стапките, исто така, се зголемуваат во големински нарачки децениите на крајот на 20 век, од неколку мегахерци во 1980 година на неколку гигахерци во почетокот на 2000.

Како стапката на подобрувања на тактот забави, зголемената употреба на напоредни сметачи во облик на повеќејадрени обработувачи се следи за да се подобри севкупната ефикасност на обработка. Повеќе јадра се користат на истиот обработувачки чип, кој потоа би можеле да доведат до подобра продажба на обработувачките чипови со две или повеќе јадра. На пример, Интел го произведе 48-јадрениот обработувач за истражување во cloud комјутерите ; секое јадро има x86 архитектура.[7][8]

Технички фактори[уреди | уреди извор]

Бидејќи производителите на сметачи одамна спроведуваат симетрични повеќеобработувачки (SMP) дизајни со користење одделни обработувачи, прашањата поврзани со имплементирање на повеќејадрени обработувачки архитектури и поддршка на истиот со соодветен програм се добро познати.

Додатно:

  • Користење на докажани обработка на јадрен дизајн без архитектонски промени го намалува дизајнерскиот ризик значително.
  • За општонаменски обработувачи, големиот дел од мотивацијата за повеќејадрени обработувачи доаѓа од намалените придобивки во обработувачката делотворност до зголемување на оперативната честота. Ова се должи на три фактори:
  1. Складишниот ѕид: зголемување на јазот помеѓу обработувачот и складишните брзини. Ова, всушност, се залага за големините на кеш да бидат поголеми, со цел да се маскира заостанувањето на складот. Ова им помага само до степен во кој складишниот пропусен опсег не е зафатен во тесно грло при висока обработувачка делотворност.
  2. ILP ѕидот; Зголемувањето на тешкотиите за наоѓање на доволна напоредност во еден наредбен поток за да одржуваат еднојадрен обработувачот со зафатен.
  3. Енергетскиот ѕид; трендот на конзумирање енергија експоненцијално се зголемува со секој факториел на зголемување на оперативниот честота. Ова зголемување може да се ублажи со " намалување " на обработувачот преку користење на помали траги за истата логика. Енергетскиот ѕид претставува производствен, дизајнерски и распоредени проблем кои сè уште не биле оправдани во намалените придобивки во делотворност благодарение на складишниот ѕид и ILP-ѕидот.

Со цел да се продолжи со доставување на редовни подобрувања во делотворноста за обработувачи со општа намена, производителите , како што се Intel и AMD се насочија кон повеќејадрени дизајни, жртвувајќи пониски производствени трошоци за поголема делотворност во некои прилози и системи. Повеќејадрените архитектури се развиваат, но исто така и алтернативите. Особено силен кандидат за воспоставени пазари пазари е понатамошната интеграција на периферните функции во чипот.

Предности[уреди | уреди извор]

Близината на повеќе обработувачки јадра на иста коцка овозможува кеш кохерентност и колата да работат на многу повисока стапка на тактот од она што е можно ако сигналите мораат да патуваат надвор од чипот. Комбинирање еквивалентни обработувачи на едена коцка значително ја подобрува ефикасноста на кеш душкањето (алтернатива: магистрално душкање) операции. Едноставно кажано, ова значи дека сигналите помеѓу различните обработувачи патуваат пократки растојанија, и затоа тие сигнали деградираат помалку. Овие поквалитетни сигнали им овозможуваат на повеќе податоци да бидат испратени во одреден временски период , бидејќи одделни сигнали може да биде пократок и не треба да се повторуваат толку често

Претпоставувајќи дека коцката може физички да се вклопуваат во пакет, дизајните на повеќејадрените обработувачи бараат многу помала големина на печатено коло (PCB ) и простор отколку повеќечипни SMP-дизајни. Исто така, двојадрен обработувач користи помалку енергија од две заеднички еднојадрени обработувачи, главно поради намалувањето на енергијата потребна за да се пренесат сигналите на надворешнот чип. Понатаму, јадрата делат некои кола, како на кеш L2 и интерфејс на магистралата на предната страна (FSB ). Во однос на конкурентските технологии за достапни коцкиасти области на силициум, повеќејадрениот дизајн може да се направи употреба на докажани јадрени библиотеки на обработувачкиот дизајн и производство на производи со понизок ризик од дизајн грешки отколку осмислување на нови широкојадрен дизајн. Исто така, додавајќи повеќе кеш страда од намалена повратност.

Повеќејадрените чипови, исто така, овозможуваат поголема делотворност со помалку енергија. Ова може да биде голем фактор во мобилни уреди кои работат на батерии. Откако секое јадро во повеќејадрен обработувач е начелно повеќе енергетски ефикасно, чипот станува поефикасен отколку да се има едено големо монолитно јадро. Ова овозможува поголема делотворност со помалку енергија. Предизвик во ова, сепак, е на дополнителната работа на пишување напореден код.[9]

Недостатоци[уреди | уреди извор]

Максимизирање на употребата на сметачки ресурси обезбедени од страна на повеќејадрени обработувачи бара прилагодувања на оперативниот систем (ОС) и поддршка на постоечките програмски прилози. Исто така, способноста на повеќејадрени обработувачи за да се зголеми ефикасноста на примената зависи од употребата на повеќе теми во прилози.

Интеграција на повеќејадрен чип може да ги намали приносите на чип производство. Тие исто така се потешко да се менаџираат топлински отколку пониска густина на еднојадрени дизајни. Интел делумно го спречувил овој прв проблем со создавање четиријадрени дизајни со комбинирање на две двојадрени коцки со унифицирана кеш, па оттука и било кои две двојадрени коцки кои работат можат да се користат, што е спротивно на производство на четири јадра на еден калап и се бараат сите четири да работат за да се произведе четиријадрениот обработувач. Од архитектонска гледна точка, во крајна линија, самостајни дизајни на обработувачот искористуваат подобра употребата на површина од силициум повеќекратни обработувачки јадра, па заложба кон развој на оваа архитектура може да резултира во ризик на застареност. Конечно, сировата моќ на обработка не е единствената пречка за делотворноста на системот. Две обработувачки јадра делат иста системска магистрала и складишниот пропусен опсег ги ограничуваат реалните предности во делотворноста. Се има изјавено дека едно јадро е блиску да биде ограничено во складишниот пропусен опсег, тогаш преминување на двојадрено може да резултира во 30%-70% подобрување; ако складишниот опсег не е проблем, тогаш 90% подобрување може да биде очекувано; но, Амдаловиот закон ја прави оваа изјава сомнителна[10]. Можно е прилогот да се користи од два обработувачи за на крај да биде побрза двојадрен ако комуникацијата помеѓу обработувачите е ограничувачки чинител, што тогаш би се сметало како 100% подобрување.

Машинска опрема[уреди | уреди извор]

Трендови[уреди | уреди извор]

Трендот на развивање кај обработувачите тежнее кон постојано зголемување на бројот на јадра, како обработувач со стотици или дури илјадници јадра се теоретски можни.[11] Покрај тоа, повеќејадрени чипови мешани со симултан повеќекратно нанижување, чипен склад, и посебно наменети "хетерогени " (или асиметрични ) јадра ветуваат понатамошни добивки[12] делотворност и ефикасност, а особено во обработка на мултимедијални содржини, препознавање и вмрежување прилог. На пример, едно јадро big.LITTLE вклучува основни високоделотворни јадра (наречен 'големи') и основни нискоенергетски јадра(наречен 'мали '). Исто така, постои тренд на подобрување на енергетската ефикасност, со задршка на делотворноста по ват со напреднен енергетски менаџментм динамичен напон и скалирање на честота (т.е. лаптопи и преносни изведувачи на снимки).

Архитектура[уреди | уреди извор]

Составот и рамнотежата на јадрата во повеќејадренаат архитектура покажуваат голема разновидност. Некои архитектури користат еднојадрен дизајн потворен консистентно (‘хомогено’), додека другите користат мешавина од различни јадра, секое оптимизирано за поинакви „хетерогени“ улоги.

Наводи[уреди | уреди извор]

  1. Margaret Rouse (March 27, 2007). "Definition: multi-core processor". TechTarget. Retrieved March 6, 2013.
  2. CSA Organization
  3. "Rockwell R65C00/21 Dual CMOS Microcomputer and R65C29 Dual CMOS Microprocessor" (PDF). Rockwell International. October 1984.
  4. "Rockwell 1985 Data Book" Check |url= value (help) (PDF). Rockwell International Semiconductor Products Division. January 1985.
  5. Aater Suleman (May 20, 2011). "What makes parallel programming hard?". FutureChips. Retrieved March 6, 2013.
  6. Programming Many-Core Chips. By András Vajda, page 3
  7. Ryan Shrout (December 2, 2009). "Intel Shows 48-core x86 Processor as Single-chip Cloud Computer". Retrieved May 17, 2015.
  8. "Intel unveils 48-core cloud computing silicon chip". BBC. December 3, 2009. Retrieved March 6, 2013.
  9. Aater Suleman (May 19, 2011). "Q & A: Do multicores save energy? Not really.". Retrieved March 6, 2013.
  10. Ni, Jun. "Multi-core Programming for Medical Imaging" (PDF). Retrieved 17 February 2013
  11. Clark, Jack. "Intel: Why a 1,000-core chip is feasible". ZDNet. Archived from the original on 6 August 2015. Retrieved 6 August 2015.
  12. A Survey Of Techniques for Architecting and Managing Asymmetric Multicore Processors, ACM Computing Surveys, 2015.