Windows.  Vírusy.  Prenosné počítače.  internet.  Kancelária.  Verejné služby.  Vodiči

Viacjadrové procesory sú centrálne procesorové jednotky, ktoré obsahujú viac ako dve procesorové jadrá. Takéto jadrá môžu byť umiestnené buď v jednom puzdre alebo na jednom procesorovom čipe.

Čo je to viacjadrový procesor?

Pod viacjadrovými procesormi sa najčastejšie rozumejú centrálne procesory, v ktorých je niekoľko výpočtových jadier integrovaných do jedného čipu (to znamená, že sú umiestnené na jednom kremíkovom čipe).

Frekvencia hodín vo viacjadrových procesoroch je zvyčajne zámerne nižšia. Deje sa tak za účelom zníženia spotreby energie pri zachovaní požadovaného výkonu procesora. Každé jadro je plnohodnotným mikroprocesorom, ktorý sa vyznačuje vlastnosťami všetkých moderných procesorov – využíva viacúrovňovú vyrovnávaciu pamäť, podporuje spúšťanie kódu mimo poradia a vektorové inštrukcie.

Hyper-threading

Jadrá vo viacjadrových procesoroch môžu podporovať technológiu SMT, ktorá vám umožňuje vykonávať viacero výpočtových vlákien a vytvárať niekoľko logických procesorov založených na každom jadre. Na procesoroch vyrábaných spoločnosťou Intel sa táto technológia nazýva „Hyper-threading“. Vďaka nemu môžete zdvojnásobiť počet logických procesorov v porovnaní s počtom fyzických čipov. V mikroprocesoroch, ktoré podporujú túto technológiu, je každý fyzický procesor schopný udržiavať stav dvoch vlákien súčasne. Pre operačný systém to bude vyzerať tak, že má dva logické procesory. Ak dôjde k prestávke v práci jedného z nich (napríklad čaká na príjem údajov z pamäte), druhý logický procesor začne vykonávať svoje vlastné vlákno.

Typy viacjadrových procesorov

Viacjadrové procesory sú rozdelené do niekoľkých typov. Môžu alebo nemusia podporovať používanie zdieľanej vyrovnávacej pamäte. Komunikácia medzi jadrami je realizovaná na princípoch využitia zdieľanej zbernice, siete na linkách typu point-to-point, siete s prepínačom alebo pomocou zdieľanej cache.

Princíp fungovania

Väčšina moderných viacjadrových procesorov pracuje podľa nasledujúcej schémy. Ak spustená aplikácia podporuje multithreading, môže prinútiť procesor vykonávať viacero úloh súčasne. Ak napríklad počítač používa 4-jadrový procesor s taktovacou frekvenciou 1,8 GHz, program dokáže „zaťažiť“ všetky štyri jadrá naraz, pričom celková frekvencia procesora bude 7,2 GHz. Ak beží viacero programov naraz, každý z nich môže využívať časť jadier procesora, čo vedie aj k zvýšeniu výkonu počítača.

Mnoho operačných systémov podporuje multithreading, takže použitie viacjadrových procesorov môže zrýchliť váš počítač aj v aplikáciách, ktoré multithreading nepodporujú. Ak uvažujeme o prevádzke iba jednej aplikácie, potom bude použitie viacjadrových procesorov opodstatnené iba vtedy, ak je táto aplikácia optimalizovaná pre multithreading. V opačnom prípade sa rýchlosť viacjadrového procesora nebude líšiť od rýchlosti bežného procesora a niekedy bude dokonca pracovať pomalšie.

  • Návod

V tomto článku sa pokúsim popísať terminológiu používanú na popis systémov schopných vykonávať niekoľko programov paralelne, teda viacjadrové, viacprocesorové, viacvláknové. Rôzne typy paralelizmu sa objavili v CPU IA-32 v rôznych časoch a v trochu nekonzistentnom poradí. Je celkom ľahké sa v tom všetkom zmiasť, najmä ak vezmeme do úvahy, že operačné systémy starostlivo skrývajú detaily pred menej sofistikovanými aplikačnými programami.

Účelom článku je ukázať, že pri všetkej rozmanitosti možných konfigurácií viacprocesorových, viacjadrových a viacvláknových systémov sa pre programy, ktoré na nich bežia, vytvárajú príležitosti na abstrakciu (ignorovanie rozdielov), ako aj na zohľadnenie špecifík ( schopnosť programovo zistiť konfiguráciu).

Upozornenie na znaky ®, ™ v článku

Môj komentár vysvetľuje, prečo by zamestnanci spoločnosti mali používať upozornenia o autorských právach vo verejnej komunikácii. V tomto článku som ich musel používať pomerne často.

CPU

Samozrejme, najstarší, najčastejšie používaný a kontroverzný pojem je „procesor“.

V modernom svete je procesor niečo, čo si kúpime v krásnej maloobchodnej krabici alebo nie príliš peknom OEM balení. Nedeliteľná entita vložená do zásuvky na základnej doske. Aj keď tam nie je konektor a nedá sa odstrániť, to znamená, že ak je pevne spájkovaný, je to jeden čip.

Mobilné systémy (telefóny, tablety, notebooky) a väčšina desktopov má jeden procesor. Pracovné stanice a servery sa niekedy môžu pochváliť dvoma alebo viacerými procesormi na jednej základnej doske.

Podpora viacerých CPU v jednom systéme si vyžaduje množstvo dizajnových zmien. Minimálne je potrebné zabezpečiť ich fyzické pripojenie (poskytnúť niekoľko zásuviek na základnej doske), vyriešiť otázky identifikácie procesora (pozri ďalej v tomto článku, ako aj moju predchádzajúcu poznámku), koordináciu prístupov do pamäte a prerušenie dodávky (napr. interrupt controller musí byť schopný smerovať prerušenia pre viacero procesorov) a samozrejme podpora zo strany operačného systému. Žiaľ, nenašiel som dokumentárnu zmienku o vytvorení prvého multiprocesorového systému na procesoroch Intel, ale Wikipedia tvrdí, že Sequent Computer Systems ich dodali už v roku 1987, s využitím procesorov Intel 80386 Podpora viacerých čipov v jednom systéme sa stáva rozšírenou. počnúc procesorom Intel® Pentium.

Ak je procesorov viacero, tak každý z nich má na doske vlastný konektor. Každý z nich má úplné nezávislé kópie všetkých zdrojov, ako sú registre, spúšťacie zariadenia, vyrovnávacie pamäte. Zdieľajú spoločnú pamäť – RAM. Pamäť sa s nimi dá spájať rôznymi a dosť netriviálnymi spôsobmi, ale toto je samostatný príbeh nad rámec tohto článku. Dôležité je, že v každom prípade by mala byť pre spustiteľné programy vytvorená ilúzia homogénnej zdieľanej pamäte prístupnej zo všetkých procesorov zahrnutých v systéme.


Pripravený na vzlet! Stolná doska Intel® D5400XS

Core

Historicky sa viacjadrá v Intel IA-32 objavili neskôr ako Intel® HyperThreading, ale v logickej hierarchii je na rade.

Zdalo by sa, že ak má systém viac procesorov, potom je jeho výkon vyšší (pri úlohách, ktoré môžu využívať všetky zdroje). Ak sú však náklady na komunikáciu medzi nimi príliš vysoké, potom sú všetky zisky z paralelizmu zabité dlhými oneskoreniami pri prenose spoločných údajov. To je presne to, čo sa pozoruje v multiprocesorových systémoch - fyzicky aj logicky sú od seba veľmi vzdialené. Pre efektívnu komunikáciu v takýchto podmienkach je potrebné vymyslieť špecializované zbernice, ako napríklad Intel® QuickPath Interconnect. Tým všetkým sa samozrejme neznižuje spotreba energie, veľkosť a cena finálneho riešenia. Na pomoc by mala prísť vysoká integrácia komponentov - obvody vykonávajúce časti paralelného programu je potrebné priblížiť k sebe, najlepšie na jednom čipe. Inými slovami, jeden procesor by mal organizovať niekoľko jadrá, ktoré sú vo všetkom navzájom identické, ale pracujú nezávisle.

Prvé viacjadrové procesory IA-32 od Intelu boli predstavené v roku 2005. Odvtedy priemerný počet jadier na serverových, desktopových a teraz aj mobilných platformách neustále rastie.

Na rozdiel od dvoch jednojadrových procesorov v rovnakom systéme, ktoré zdieľajú iba pamäť, môžu dve jadrá zdieľať aj vyrovnávaciu pamäť a ďalšie prostriedky súvisiace s pamäťou. Cache prvej úrovne najčastejšie zostávajú súkromné ​​(každé jadro má svoje vlastné), zatiaľ čo druhá a tretia úroveň môžu byť zdieľané alebo oddelené. Táto systémová organizácia vám umožňuje znížiť oneskorenia doručovania údajov medzi susednými jadrami, najmä ak pracujú na spoločnej úlohe.


Mikrofotografia štvorjadrového procesora Intel s kódovým označením Nehalem. Pridelené sú samostatné jadrá, spoločná vyrovnávacia pamäť tretej úrovne, ako aj prepojenia QPI na ďalšie procesory a spoločný pamäťový radič.

Hyperthread

Až do roku 2002 bolo jediným spôsobom, ako získať systém IA-32 schopný paralelného spustenia dvoch alebo viacerých programov, použiť viacprocesorové systémy. Intel® Pentium® 4, ako aj rad Xeon s kódovým označením Foster (Netburst), predstavil novú technológiu – hyperthreads alebo hyperthreads – Intel® HyperThreading (ďalej HT).

Nie je nič nové pod slnkom. HT je špeciálny prípad toho, čo sa v literatúre označuje ako simultánny multithreading (SMT). Na rozdiel od „skutočných“ jadier, ktoré sú úplnými a nezávislými kópiami, v prípade HT je v jednom procesore duplikovaná iba časť interných uzlov, primárne zodpovedných za ukladanie architektonického stavu – registrov. Výkonné uzly zodpovedné za organizáciu a spracovanie údajov zostávajú jedinečné a v danom čase ich používa najviac jedno z vlákien. Podobne ako jadrá, aj hypervlákna zdieľajú cache, ale od akej úrovne závisí od konkrétneho systému.

Nebudem sa snažiť vysvetľovať všetky klady a zápory SMT dizajnov vo všeobecnosti a HT dizajnov zvlášť. Zainteresovaný čitateľ môže nájsť pomerne podrobnú diskusiu o technológii v mnohých zdrojoch a, samozrejme, na Wikipédii. Poznamenám si však nasledujúci dôležitý bod, ktorý vysvetľuje súčasné obmedzenia počtu hyperthreadov v reálnych produktoch.

Obmedzenia závitov
V akých prípadoch je prítomnosť „neférových“ viacjadier vo forme HT opodstatnená? Ak jedno aplikačné vlákno nie je schopné načítať všetky vykonávacie uzly v jadre, možno ich „požičať“ inému vláknu. To je typické pre aplikácie, ktoré majú úzke hrdlo nie vo výpočte, ale v prístupe k dátam, to znamená, že často generujú chýbajúce cache a musia čakať na doručenie dát z pamäte. Počas tejto doby bude jadro bez HT nútené bežať naprázdno. Prítomnosť HT umožňuje rýchlo prepínať voľne vykonávané uzly do iného architektonického stavu (keďže je duplikovaný) a vykonávať jeho inštrukcie. Ide o špeciálny prípad techniky nazývanej skrytie latencie, kedy je jedna dlhá operácia, počas ktorej sú užitočné zdroje nečinné, maskovaná paralelným vykonávaním iných úloh. Ak má aplikácia už vysoký stupeň využitia zdrojov jadra, prítomnosť hyperthreadov neumožní zrýchlenie - tu sú potrebné „čestné“ jadrá.

Typické scenáre pre desktopové a serverové aplikácie navrhnuté pre všeobecné strojové architektúry majú potenciál pre paralelizmus implementovaný pomocou HT. Tento potenciál sa však rýchlo využíva. Možno z tohto dôvodu na takmer všetkých procesoroch IA-32 počet hardvérových hyperthreadov nepresahuje dva. V typických scenároch by bol zisk z použitia troch alebo viacerých hyperthreadov malý, ale strata veľkosti matrice, jej spotreby energie a nákladov je významná.

Iná situácia je pozorovaná pri typických úlohách vykonávaných na video akcelerátoroch. Preto sa tieto architektúry vyznačujú použitím technológie SMT s väčším počtom vlákien. Keďže koprocesory Intel® Xeon Phi (uvedené v roku 2010) sú ideologicky a genealogicky dosť blízke grafickým kartám, môžu mať štyri hyperthreading na každom jadre - konfigurácia jedinečná pre IA-32.

Logický procesor

Z troch opísaných „úrovní“ paralelizmu (procesory, jadrá, hypervlákna) môžu niektoré alebo dokonca všetky v konkrétnom systéme chýbať. Toto je ovplyvnené nastaveniami systému BIOS (viacjadrové a multivláknové sú vypnuté nezávisle), funkciami mikroarchitektúry (napríklad HT chýbalo v Intel® Core™ Duo, ale bolo vrátené s vydaním Nehalem) a systémovými udalosťami ( viacprocesorové servery môžu vypnúť zlyhané procesory, ak sa zistia chyby a naďalej „lietať“ na zvyšných). Ako je táto viacúrovňová zoo súbežnosti viditeľná pre operačný systém a v konečnom dôsledku pre aplikačné aplikácie?

Ďalej pre pohodlie označujeme počet procesorov, jadier a vlákien v určitom systéme tromi ( x, r, z), kde x je počet procesorov, r- počet jadier v každom procesore a z- počet hyperthreadov v každom jadre. Odteraz budem volať túto trojicu topológie- ustálený pojem, ktorý nemá veľa spoločného s odvetvím matematiky. Práca p = xyz definuje počet volaných entít logické procesory systémov. Definuje celkový počet nezávislých kontextov aplikačných procesov v systéme zdieľanej pamäte, ktoré sa vykonávajú paralelne, ktoré je operačný systém nútený brať do úvahy. Hovorím „vynútené“, pretože nemôže kontrolovať poradie vykonávania dvoch procesov na rôznych logických procesoroch. To platí aj pre hypervlákna: hoci bežia „postupne“ na tom istom jadre, špecifické poradie je diktované hardvérom a nemožno ho sledovať ani kontrolovať programami.

Operačný systém najčastejšie skrýva pred koncovými aplikáciami vlastnosti fyzickej topológie systému, na ktorom beží. Napríklad nasledujúce tri topológie: (2, 1, 1), (1, 2, 1) a (1, 1, 2) - OS bude predstavovať dva logické procesory, hoci prvý z nich má dva procesory, druhý - dve jadrá a tretí - len dve vlákna.


Správca úloh systému Windows zobrazuje 8 logických procesorov; ale kolko je to v procesoroch, jadrach a hyperthreadoch?


Linux top zobrazuje 4 logické procesory.

Pre tvorcov aplikácií to celkom vyhovuje – nemusia sa zaoberať hardvérovými funkciami, ktoré sú pre nich často nepodstatné.

Softvérová definícia topológie

Samozrejme, abstrahovanie topológie do jedného počtu logických procesorov v niektorých prípadoch vytvára dostatočný dôvod na zmätok a nedorozumenia (v horúcich internetových sporoch). Výpočtové aplikácie, ktoré chcú z hardvéru vyžmýkať maximálny výkon, vyžadujú detailnú kontrolu nad tým, kde budú ich vlákna umiestnené: bližšie k sebe na susedných hypervláknoch alebo naopak ďalej na rôznych procesoroch. Rýchlosť komunikácie medzi logickými procesormi v rámci toho istého jadra alebo procesora je oveľa vyššia ako rýchlosť prenosu dát medzi procesormi. Obrázok tiež komplikuje možnosť heterogenity v organizácii pracovnej pamäte.

Informácie o topológii systému ako celku, ako aj o polohe každého logického procesora v IA-32, sú dostupné pomocou inštrukcie CPUID. Od nástupu prvých viacprocesorových systémov bola schéma identifikácie logického procesora niekoľkokrát rozšírená. K dnešnému dňu sú jeho časti obsiahnuté na listoch 1, 4 a 11 CPUID. Na ktorý hárok sa treba pozrieť, je možné určiť z nasledujúceho vývojového diagramu prevzatého z článku:

Nebudem vás tu nudiť všetkými detailmi jednotlivých častí tohto algoritmu. V prípade záujmu sa tomu môže venovať ďalšia časť tohto článku. Zainteresovaného čitateľa odkážem na, ktorý túto problematiku skúma čo najpodrobnejšie. Tu najprv stručne popíšem, čo je APIC a ako súvisí s topológiou. Ďalej sa pozrieme na prácu s hárkom 0xB (jedenásť v desiatkovej sústave), čo je momentálne posledné slovo v „apico-building“.

APIC ID
Local APIC (advanced programmable interrupt controller) je zariadenie (teraz súčasť procesora) zodpovedné za obsluhu prerušení prichádzajúcich do konkrétneho logického procesora. Každý logický procesor má svoje vlastné APIC. A každý z nich v systéme musí mať jedinečnú hodnotu APIC ID. Toto číslo používajú radiče prerušení na adresovanie pri doručovaní správ a všetci ostatní (napríklad operačný systém) na identifikáciu logických procesorov. Špecifikácia tohto radiča prerušenia sa vyvinula z Intel 8259 PIC cez Dual PIC, APIC a xAPIC na x2APIC.

V súčasnosti šírka čísla uloženého v APIC ID dosiahla plných 32 bitov, hoci v minulosti bola obmedzená na 16 a ešte skôr - iba 8 bitov. Dnes sú pozostatky starých čias roztrúsené po celom CPUID, ale CPUID.0xB.EDX vracia všetkých 32 bitov APIC ID. Na každom logickom procesore, ktorý nezávisle vykonáva inštrukciu CPUID, sa vráti iná hodnota.

Zisťovanie rodinných väzieb
Samotná hodnota APIC ID vám nehovorí nič o topológii. Ak chcete zistiť, ktoré dva logické procesory sú umiestnené v jednom fyzickom procesore (t. j. sú to „bratské“ hypervlákna), ktoré dva sú v tom istom procesore a ktoré sú úplne v rôznych procesoroch, musíte porovnať ich hodnoty APIC ID. V závislosti od stupňa vzťahu sa niektoré ich časti budú zhodovať. Tieto informácie sú obsiahnuté v podzoznamoch CPUID.0xB, ktoré sú zakódované v ECX. Každý z nich popisuje polohu bitového poľa jednej z úrovní topológie v EAX (presnejšie počet bitov, ktoré je potrebné v APIC ID posunúť doprava, aby sa odstránili nižšie úrovne topológie), ako aj typ tejto úrovne - hyperthread, jadro alebo procesor - v ECX.

Logické procesory umiestnené vo vnútri toho istého jadra budú mať rovnaké všetky bity APIC ID, okrem tých, ktoré patria do poľa SMT. Pre logické procesory umiestnené v rovnakom procesore všetky bity okrem polí Core a SMT. Keďže počet podhárkov pre CPUID.0xB môže rásť, táto schéma nám umožní podporovať popis topológií s väčším počtom úrovní, ak to bude potrebné v budúcnosti. Okrem toho bude možné zaviesť prechodné úrovne medzi existujúce úrovne.

Dôležitým dôsledkom organizácie tejto schémy je, že v množine všetkých APIC ID všetkých logických procesorov systému môžu byť „diery“, t.j. nepôjdu postupne. Napríklad vo viacjadrovom procesore s vypnutým HT sa môžu všetky APIC ID ukázať ako párne, pretože najmenej významný bit zodpovedný za kódovanie čísla hypervlákna bude vždy nula.

Poznamenávam, že CPUID.0xB nie je jediným zdrojom informácií o logických procesoroch, ktoré má operačný systém k dispozícii. Zoznam všetkých procesorov, ktoré má k dispozícii, spolu s ich hodnotami APIC ID je zakódovaný v tabuľke ACPI MADT.

Operačné systémy a topológia

Operačné systémy poskytujú informácie o topológii logických procesorov aplikáciám pomocou ich vlastných rozhraní.

V systéme Linux sú informácie o topológii obsiahnuté v pseudosúbore /proc/cpuinfo, ako aj vo výstupe príkazu dmidecode. V nižšie uvedenom príklade filtrujem obsah cpuinfo na nejakom štvorjadrovom systéme bez HT, pričom ponechávam iba položky súvisiace s topológiou:

Skrytý text

ggg@shadowbox:~$ cat /proc/cpuinfo |grep "processor\|physical\ id\|sourodenci\|jadro\|jadrá\|apicid" procesor: 0 fyzické ID: 0 súrodenci: 4 ID jadra: 0 jadier procesora: 2 apicid: 0 počiatočné apicid: 0 procesor: 1 fyzické id: 0 súrodenci: 4 id jadra: 0 jadrá cpu: 2 apicid: 1 počiatočné apicid: 1 procesor: 2 fyzické id: 0 súrodenci: 4 id jadra: 1 jadrá cpu: 2 apicid: 2 počiatočné apicid: 2 procesor: 3 fyzické ID: 0 súrodenci: 4 ID jadra: 1 jadrá procesora: 2 apicid: 3 počiatočné apicid: 3

Vo FreeBSD je topológia hlásená prostredníctvom mechanizmu sysctl v premennej kern.sched.topology_spec ako XML:

Skrytý text

user@host:~$ sysctl kern.sched.topology_spec kern.sched.topology_spec: 0, 1, 2, 3, 4, 5, 6, 7 0, 1, 2, 3, 4, 5, 6, 7 0, 1 skupina NITEskupina SMT 2, 3 skupina NITEskupina SMT 4, 5 skupina NITEskupina SMT 6, 7 skupina NITEskupina SMT

V systéme MS Windows 8 možno informácie o topológii zobraziť v Správcovi úloh.

Procesor v mobilnom telefóne. Charakteristiky a ich význam

Odvetvie smartfónov každým dňom napreduje a v dôsledku toho používatelia dostávajú novšie, modernejšie a výkonnejšie gadgety. Všetci výrobcovia smartfónov sa snažia o to, aby bol ich výtvor výnimočný a nenahraditeľný. Preto sa dnes veľa pozornosti venuje vývoju a výrobe procesorov pre smartfóny.

Mnohí fanúšikovia „chytrých telefónov“ si určite viac ako raz položili otázku, čo je to procesor a aké sú jeho hlavné funkcie? A tiež, samozrejme, kupujúcich zaujíma, čo znamenajú všetky tieto čísla a písmená v názve čipu.
Odporúčame vám, aby ste sa s konceptom trochu zoznámili "procesor pre smartfóny".

Procesor v smartfóne- toto je najzložitejšia časť a je zodpovedná za všetky výpočty vykonávané zariadením. V skutočnosti je nesprávne tvrdiť, že smartfón používa procesor, keďže procesory ako také sa v mobilných zariadeniach nepoužívajú. Procesor spolu s ostatnými komponentmi tvorí SoC (System on a chip - system on a chip), čo znamená, že na jednom čipe je plnohodnotný počítač s procesorom, grafickým akcelerátorom a ďalšími komponentmi.

Ak hovoríme o procesore, potom najprv musíme pochopiť taký koncept, ako je "architektúra procesora". Moderné smartfóny využívajú procesory založené na architektúre ARM, ktorú vyvíja rovnomenná spoločnosť ARM Limited. Dá sa povedať, že architektúra je určitý súbor vlastností a vlastností, ktoré sú vlastné celej rodine procesorov. Qualcomm, Nvidia, Samsung, MediaTek, Apple a ďalšie procesorové spoločnosti licencujú technológiu od ARM a následne predávajú hotové čipy výrobcom smartfónov alebo ich používajú vo vlastných zariadeniach. Výrobcovia čipov licencujú jednotlivé jadrá, inštrukčné sady a súvisiace technológie od ARM. ARM Limited nevyrába procesory, ale iba predáva licencie na svoje technológie iným výrobcom.

Teraz sa pozrime na pojmy ako jadro a rýchlosť hodín, ktoré vždy nájdeme v recenziách a článkoch o smartfónoch a telefónoch, keď sa hovorí o procesore.

Core

Začnime otázkou, čo je jadro? Core je prvok čipu, ktorý určuje výkon, spotrebu a takt procesora. Veľmi často sa stretávame s pojmom dvojjadrový alebo štvorjadrový procesor. Poďme zistiť, čo to znamená.

Dvojjadrový alebo štvorjadrový procesor – aký je rozdiel?

Kupujúci si veľmi často myslia, že dvojjadrový procesor je dvakrát výkonnejší ako jednojadrový procesor a štvorjadrový procesor je teda štyrikrát výkonnejší. Teraz vám povieme pravdu. Zdalo by sa celkom logické, že prechod z jedného jadra na dva alebo z dvoch na štyri zvyšuje výkon, ale v skutočnosti je zriedkavé, že sa tento výkon zvýši dvakrát alebo štyrikrát. Zvýšenie počtu jadier umožňuje zrýchliť prevádzku zariadenia v dôsledku prerozdelenia bežiacich procesov. Väčšina moderných aplikácií je však jednovláknová, a preto môže súčasne používať iba jedno alebo dve jadrá. Prirodzene vyvstáva otázka, na čo je potom štvorjadrový procesor? Viacjadrové využívajú najmä pokročilé hry a aplikácie na úpravu médií. To znamená, že ak potrebujete smartfón na hranie (3D hry) alebo natáčanie Full HD videa, potom si musíte zakúpiť zariadenie so štvorjadrovým procesorom. Ak samotný program nepodporuje viacjadrá a nevyžaduje veľké zdroje, nepoužívané jadrá sa automaticky deaktivujú, aby sa šetrila energia batérie. Piate sprievodné jadro sa často používa na tie najnáročnejšie úlohy, napríklad na prevádzku zariadenia v režime spánku alebo pri kontrole pošty.

Ak potrebujete obyčajný smartfón na komunikáciu, surfovanie po internete, kontrolu e-mailov alebo sledovanie všetkých najnovších správ, potom je pre vás dvojjadrový procesor celkom vhodný. A prečo platiť viac? Počet jadier totiž priamo ovplyvňuje cenu zariadenia.

Frekvencia hodín

Ďalším pojmom, s ktorým sa musíme zoznámiť, je frekvencia hodín. Frekvencia hodín je charakteristika procesora, ktorá ukazuje, koľko hodinových cyklov je procesor schopný pracovať za jednotku času (jedna sekunda). Napríklad, ak charakteristiky zariadenia naznačujú frekvencia 1,7 GHz - to znamená, že za 1 sekundu jeho procesor vykoná 1 700 000 000 (1 miliarda 700 miliónov) cyklov.

V závislosti od operácie, ako aj typu čipu sa počet hodinových cyklov, ktoré čip potrebuje na vykonanie jednej úlohy, môže líšiť. Čím vyššia je frekvencia hodín, tým vyššia je prevádzková rýchlosť. Tento rozdiel je badateľný najmä pri porovnaní rovnakých jadier pracujúcich na rôznych frekvenciách.

Niekedy výrobca obmedzuje takt, aby znížil spotrebu energie, pretože čím vyššia je rýchlosť procesora, tým viac energie spotrebuje.

A opäť sa vraciame k viacjadrovému. Zvýšenie rýchlosti hodín (MHz, GHz) môže zvýšiť tvorbu tepla, čo je veľmi nežiaduce a dokonca škodlivé pre používateľov smartfónov. Viacjadrová technológia sa preto využíva aj ako jeden zo spôsobov, ako zvýšiť výkon smartfónu bez toho, aby sa vám príliš zahrialo do vrecka.

Výkon sa zvyšuje tým, že aplikácie môžu bežať súčasne na viacerých jadrách, ale je tu jedna podmienka: aplikácie musia byť najnovšej generácie. Táto funkcia tiež šetrí energiu batérie.

CPU cache

Ďalšou dôležitou charakteristikou procesora, o ktorej predajcovia smartfónov často mlčia, je CPU cache.

Cache- Toto je pamäť určená na dočasné ukladanie údajov a prevádzka na frekvencii procesora. Cache sa používa na skrátenie času prístupu procesora k spomaleniu pamäte RAM. Ukladá kópie časti údajov RAM. Prístupový čas sa skracuje vďaka tomu, že väčšina údajov požadovaných procesorom končí vo vyrovnávacej pamäti a znižuje sa počet prístupov do RAM. Čím väčšia je veľkosť vyrovnávacej pamäte, tým väčšiu časť údajov môže program obsahovať., čím menej často sa bude vyskytovať prístup k RAM a tým vyšší bude celkový výkon systému.

Cache je obzvlášť dôležitá v moderných systémoch, kde je rozdiel medzi rýchlosťou procesora a rýchlosťou RAM pomerne veľký. Samozrejme, vyvstáva otázka, prečo túto charakteristiku nechcú spomenúť? Je to veľmi jednoduché. Uveďme si príklad. Predpokladajme, že existujú dva známe procesory (podmienečne A a B) s absolútne rovnakým počtom jadier a taktovaním, ale z nejakého dôvodu A pracuje oveľa rýchlejšie ako B. Vysvetlenie je veľmi jednoduché: procesor A má väčší cache, preto procesor beží rýchlejšie.

Rozdiel v objeme vyrovnávacej pamäte je badateľný najmä medzi čínskymi a značkovými telefónmi. Zdá sa, že podľa čísel charakteristík sa zdá byť všetko rovnaké, ale cena zariadení sa líši. A tu sa kupujúci rozhodnú ušetriť peniaze s myšlienkou „prečo platiť viac, ak nie je žiadny rozdiel? Ako však vidíme, je tu rozdiel a veľmi významný, ale predajcovia o tom často mlčia a predávajú čínske telefóny za premrštené ceny.

Je nemožné pochopiť tento problém bez toho, aby sme vedeli, čo je 4-jadrový procesor. S jedno-, dvoj- a trojjadrovými procesormi je všetko jednoduché: majú jedno, dve alebo tri jadrá. Čo sa týka 4 jadra, nie je všetko také, ako sa na prvý pohľad zdá.

2 alebo 4 jadrový procesor?

Väčšina ľudí robí chybu, keď si myslí, že frekvencia každého jadra sa sčítava. Keďže frekvencia jadier je 2,5 GHz a jadrá sú 4, znamená to 2,5 * 4 = 10 GHz. Ale nie je to tak: frekvencia je vždy rovnaká - 2,5 GHz. Prečo sa frekvencia nesčítava? Pretože každý procesor pracuje paralelne na tejto frekvencii.

Časť je časť času, na výpočet ktorej procesor prideľuje zdroje všetkým vláknam vstupujúcim do procesora. Sú to ako 4 diaľnice s maximálnou rýchlosťou 60 km/h (2,5 GHz): máme kamióny, ktoré nám musia dovážať tovar (to sú naše časti programu alebo časti programu), a aby sme zvýšili rýchlosť dodania (zvýšenie výkonu systému), musíme využiť všetky 4 diaľnice alebo zvýšiť maximálnu rýchlosť (3,0 GHz). Ale pre väčšinu programov nie je možné pracovať vo viacerých vláknach, pretože pracujú v jednom vlákne a sú schopné používať iba jednu diaľnicu (čo znamená, že nášmu programu bude pridelených iba 25% celkového výkonu procesora), pretože v programe je logika musia byť vykonávané sekvenčne (vláknovo) a ak porušíte postupnosť, logika sa zlomí, čo povedie k zlyhaniam. Nové programy sa snažia využívať multiprogramovanie – schopnosť pracovať vo viacerých vláknach (naše diaľnice), a nie v jednom, ako väčšina programov teraz. Hry sú z väčšej časti optimalizované aj pre multithreading, ale hlavné vlákno zvyčajne beží na jednom. Aj keď teraz sa to snažia rozdeliť na viacero, aby to bolo jednoduchšie a rýchlejšie. Preto pre hry alebo aplikácie, ktoré zvyčajne bežia v jednom alebo dvoch vláknach, je lepšie vziať 2-jadrový procesor.

Ak je frekvencia dvojjadrového ako štvorjadrového, tak je samozrejme lepšie zobrať štvorjadrový, pretože nám beží obrovské množstvo programov súčasne, aj keď s slabé zaťaženie. Výkon systému získame vďaka tomu, že všetky ostatné procesy môžu byť preemptované do iného jadra, keď je jeden z nich plne zaťažený. Frekvencia nových dvojjadrových je však zvyčajne vyššia ako frekvencia nových štvorjadrových. Preto pri testovaní v hrách vyhrávajú 2-jadrové s vyššou frekvenciou ako 4-jadrové s nižšou frekvenciou.

Teraz o radoch:

Teraz pochopme, že pri prechode z jednojadrového na dvojjadrové sa rýchlosť zvyšuje rýchlejšie nielen vďaka súčasnému spracovaniu jadrami, ale aj vďaka čakaniu a čakaniu na procesor.

Frekvencia jednojadrového procesora a dvojjadrového procesora je rovnaká, ale počítač beží rýchlejšie s 2 jadrami. Ide o multiprogramovanie, kde sa pri prechode z jednojadra na dvojjadro výrazne zvýši rýchlosť. A multiprogramovanie je práca s vláknami. Predstavme si 2 vlákna, napríklad spustený Windows a spustená počítačová hra. Ak máme jedno jadro, potom sa postupne spracováva hra (časť) a potom práca systému Windows (časť). Procesy musia čakať v rade, t.j. keď je spracovaný „kus“ hry, Windows musí čakať na koniec spracovania hry (časť hry). Keď sme prešli na 2 jadrá, dokonca s rovnakou frekvenciou ako jednojadro, počítač začne spracovávať rýchlejšie, pretože front sa zníži dvakrát.

Podrobnejšie vysvetlím na príklade 100 aplikácií Ak máme 1 jadro, potom je spracovaná 1 aplikácia, zvyšných 99 čaká na rad. A čím dlhší rad, tým dlhšie aktualizácie trvajú a vtedy máme pocit, že sa náš systém spomaľuje. A keď máme 2 jadrá, front je rozdelený na polovicu, teda 50 aplikácií na jednom a 50 na druhom, preto je ich aktualizácia jednoduchšia a rýchlejšia. Je dôležité vedieť, že front sa zmenšuje a naše aplikácie sa aktualizujú rýchlejšie.

Ak chcete vlákno otestovať, spustite winrar na kompresiu veľkého súboru a pozrite sa do manažéra (komprimuje sa do jedného vlákna), koľko zdrojov CPU spotrebuje (25% na 4 jadrách a 50% na 2 jadrách). Z toho vyplýva, že našej hre, ak beží v jednom vlákne na štvorjadrovom procesore, bude pridelených 25 % výkonu procesora, 50 % na dvojjadrovom procesore. V hrách máme multithreading, no hlavné vlákno v hre bude stále spracovávať štvrtina procesora (v štvorjadrovom procesore).

Všetko bolo zvážené zjednodušeným spôsobom: 2-jadro s vyššou frekvenciou je vhodnejšie pre hry, pretože viac frekvencií je pridelených jednému vláknu a 4-jadro je vhodné pre viacvláknové dáta, napríklad veľa aplikácií spustených súčasne.

2-jadrový procesor i5 disponuje technológiou, ktorá mu umožňuje simulovať chod systému ako pri 4-jadrovom procesore. V skutočnosti sú len 2 jadrá, no pre Windows je simulovaná prevádzka 4 jadier. 4 fronty (vlákna) Postupne sa spracovávajú 2 fronty (vlákna) na jadro. Každé jadro zaberá časť každého vlákna, to znamená, že môže byť štvorjadrové.

Aké sú rozdiely medzi štvorjadrovými a osemjadrovými procesormi smartfónov? Vysvetlenie je celkom jednoduché. Osemjadrové čipy majú dvakrát toľko procesorových jadier ako štvorjadrové čipy. Osemjadrový procesor sa na prvý pohľad zdá dvakrát výkonnejší, však? V skutočnosti sa nič také nedeje. Aby sme pochopili, prečo osemjadrový procesor nezdvojnásobuje výkon smartfónu, je potrebné nejaké vysvetlenie. už prišiel. Čoraz rozšírenejšie sú osemjadrové procesory, o ktorých sa ešte nedávno mohlo len snívať. Ukazuje sa ale, že ich úlohou nie je zvyšovať výkon zariadenia.

Štvor- a osemjadrové procesory. Výkon

Samotné výrazy "okta-jadro" a "štvorjadro" odrážajú počet jadier CPU.

Ale kľúčový rozdiel medzi týmito dvoma typmi procesorov – aspoň od roku 2015 – je spôsob inštalácie jadier procesorov.

So štvorjadrovým procesorom môžu všetky jadrá pracovať súčasne, čo umožňuje rýchly a flexibilný multitasking, plynulejšie 3D hranie, rýchlejší výkon fotoaparátu a ďalšie.

Moderné osemjadrové čipy sa zase jednoducho skladajú z dvoch štvorjadrových procesorov, ktoré si medzi sebou rozdeľujú rôzne úlohy v závislosti od ich typu. Najčastejšie osemjadrový čip obsahuje sadu štyroch jadier s nižším taktom ako druhá sada. Keď je potrebné dokončiť komplexnú úlohu, prirodzene ju prevezme rýchlejší procesor.


Presnejší výraz ako „okta-jadro“ by bol „dvojité štvorjadro“. Ale neznie to tak pekne a na marketingové účely sa to nehodí. Preto sa tieto procesory nazývajú osemjadrové.

Prečo potrebujeme dve sady procesorových jadier?

Aký je dôvod na kombináciu dvoch sád procesorových jadier, ktoré si navzájom prenášajú úlohy v jednom zariadení? Na zabezpečenie energetickej účinnosti.

Výkonnejší procesor spotrebuje viac energie a batériu je potrebné nabíjať častejšie. A batérie sú oveľa slabším článkom smartfónu ako procesory. Výsledkom je, že čím výkonnejší je procesor smartfónu, tým väčšiu kapacitu batérie potrebuje.

Na väčšinu úloh smartfónov však nebudete potrebovať taký vysoký výpočtový výkon, aký dokáže poskytnúť moderný procesor. Navigácia medzi domácimi obrazovkami, kontrola správ a dokonca aj webová navigácia sú úlohy menej náročné na procesor.

Ale HD video, hry a práca s fotografiami sú také úlohy. Preto sú osemjadrové procesory celkom praktické, hoci toto riešenie možno len ťažko nazvať elegantným. Slabší procesor zvláda úlohy menej náročné na zdroje. Výkonnejší – náročnejší na zdroje. Výsledkom je zníženie celkovej spotreby energie v porovnaní so situáciou, keď by všetky úlohy zvládol iba procesor s vysokou taktovacou frekvenciou. Duálny procesor teda rieši predovšetkým problém zvyšovania energetickej účinnosti, nie výkonu.

Technologické vlastnosti

Všetky moderné osemjadrové procesory sú založené na architektúre ARM, takzvanej big.LITTLE.

Táto osemjadrová architektúra big.LITTLE bola ohlásená v októbri 2011 a umožnila štyrom nízkovýkonným jadrám Cortex-A7 pracovať v spojení so štyrmi vysokovýkonnými jadrami Cortex-A15. ARM odvtedy tento prístup opakuje každý rok a ponúka schopnejšie čipy pre obe sady procesorových jadier na osemjadrovom čipe.

Niektorí z hlavných výrobcov čipov pre mobilné zariadenia zameriavajú svoje úsilie na tento big.LITTLE „oktajadrový“ príklad. Jedným z prvých a najpozoruhodnejších bol vlastný čip Samsungu, slávny Exynos. Jeho osemjadrový model sa používa už od Samsungu Galaxy S4, teda aspoň v niektorých verziách zariadení spoločnosti.

Nedávno Qualcomm tiež začal používať big.LITTLE vo svojich osemjadrových procesorových čipoch Snapdragon 810. Práve na tomto procesore sú založené také známe novinky na trhu smartfónov, ako napríklad G Flex 2, z ktorého sa stalo LG.

Začiatkom roka 2015 NVIDIA predstavila Tegra X1, nový supervýkonný mobilný procesor, ktorý spoločnosť zamýšľa pre automobilové počítače. Hlavnou črtou X1 je jeho GPU náročné na konzolu, ktoré je tiež založené na architektúre big.LITTLE. To znamená, že sa stane aj osemjadrovým.

Je v tom veľký rozdiel pre bežného používateľa?

Je veľký rozdiel medzi štvorjadrovým a osemjadrovým procesorom smartfónu pre bežného používateľa? Nie, v skutočnosti je veľmi malý, hovorí Jon Mandi.

Pojem „okta-jadro“ je trochu mätúci, no v skutočnosti znamená duplikáciu štvorjadrových procesorov. Výsledkom sú dve nezávisle fungujúce štvorjadrové sady spojené do jedného čipu na zlepšenie energetickej účinnosti.

Je potrebný osemjadrový procesor v každom modernom smartfóne? Nie je to potrebné, domnieva sa Jon Mundy a uvádza príklad spoločnosti Apple, ktorá zaisťuje slušnú energetickú účinnosť svojich iPhonov iba s dvojjadrovým procesorom.

Osemjadrová architektúra ARM big.LITTLE je teda jedným z možných riešení jednej z najdôležitejších otázok ohľadom smartfónov – výdrže batérie. Len čo sa nájde iné riešenie tohto problému, podľa Johna Mundyho sa zastaví trend osadzovania dvoch štvorjadrových sád do jedného čipu a podobných riešení.

Poznáte ďalšie výhody osemjadrových procesorov smartfónov?



Ak si všimnete chybu, vyberte časť textu a stlačte Ctrl+Enter
ZDIEĽAŤ: