CPU jádro co. Co je ovlivněno počtem jader procesoru? Typy vícejádrových procesorů

  • Tutorial

V tomto článku se pokusím popsat terminologii používanou k popisu systémů schopných spouštět několik programů paralelně, tedy vícejádrové, víceprocesorové, vícevláknové. Odlišné typy paralelismus v CPU IA-32 se objevil v různých časech a v poněkud nekonzistentním pořadí. Je docela snadné se v tom všem zmást, zvláště vezmeme-li v úvahu, že operační systémy pečlivě skrývají detaily před méně sofistikovanými aplikačními programy.

Účelem článku je ukázat, že i přes veškerou rozmanitost možné konfigurace víceprocesorové, vícejádrové a vícevláknové systémy pro programy na nich běžící, jsou vytvářeny příležitosti jak pro abstrakci (ignorování rozdílů), tak pro zohlednění specifik (schopnost programově zjistit konfiguraci).

Upozornění na značky ®, ™ v článku

Můj vysvětluje, proč by zaměstnanci společnosti měli používat upozornění na autorská práva ve veřejné komunikaci. V tomto článku jsem je musel používat poměrně často.

procesor

Samozřejmě nejstarším, nejčastěji používaným a kontroverzním termínem je „procesor“.

V moderní svět procesor je to, co kupujeme v krásné maloobchodní krabici nebo nepříliš pěkném OEM balení. Nedělitelná entita vložená do patice na základní desce. I když tam žádný konektor není a nelze ho vyjmout, tedy pokud je pevně připájený, je to jeden čip.

Mobilní systémy (telefony, tablety, notebooky) a většina desktopů mají jeden procesor. Pracovní stanice a servery se někdy mohou pochlubit dvěma nebo více procesory na jedné základní desce.

Vícenásobná podpora centrální procesorové jednotky v jednom systému vyžaduje četné změny v jeho konstrukci. Minimálně je potřeba zajistit jejich fyzické připojení (poskytnout několik zásuvek na základní desce), vyřešit otázky identifikace procesoru (viz dále v tomto článku, stejně jako moje poznámka), koordinace přístupů do paměti a přerušení dodávky (přerušení řadič musí být schopen směrovat přerušení na několik procesorů) a samozřejmě podporu operačního systému. Bohužel se mi nepodařilo najít dokumentární zmínku o vytvoření prvního víceprocesorového systému na procesorech Intel, ale Wikipedie tvrdí, že je společnost Sequent Computer Systems dodala již v roce 1987 pomocí procesory Intel 80386. Počínaje procesorem Intel® Pentium je k dispozici široká podpora pro více čipů v jednom systému.

Pokud je procesorů více, tak každý z nich má na desce svůj konektor. Každý z nich má úplné nezávislé kopie všech zdrojů, jako jsou registry, prováděcí zařízení, mezipaměti. Sdílejí společnou paměť – RAM. Paměť se s nimi dá propojit různými a spíše netriviálními způsoby, ale toto jiný příběh, což je nad rámec tohoto článku. Důležité je, že v každém případě by měla být pro spustitelné programy vytvořena iluze homogenní sdílené paměti přístupné ze všech procesorů v systému.


Připraveni ke vzletu! Základní deska Intel® D5400XS

Jádro

Historicky se vícejádra v Intel IA-32 objevila později než Intel® HyperThreading, ale v logické hierarchii je na řadě.

Zdálo by se, že pokud má systém více procesorů, pak je jeho výkon vyšší (u úloh, které mohou využívat všechny zdroje). Pokud jsou však náklady na komunikaci mezi nimi příliš vysoké, pak jsou všechny zisky z paralelismu zabity dlouhými prodlevami pro přenos společných dat. To je přesně to, co je pozorováno v víceprocesorové systémy aha - fyzicky i logicky jsou od sebe velmi daleko. Pro efektivní komunikaci v takových podmínkách je nutné vymyslet specializované sběrnice, jako je Intel® QuickPath Interconnect. Spotřeba energie, velikost a cena konečné řešení, samozřejmě, nic z toho je nesníží. Na pomoc by měla přijít vysoká integrace komponentů – obvodů, které provádějí části paralelní program, je třeba je přitáhnout k sobě, nejlépe na jeden krystal. Jinými slovy, jeden procesor by měl organizovat několik jádra, ve všem identické, ale fungující nezávisle.

První vícejádrové procesory IA-32 od Intelu byly představeny v roce 2005. Od té doby průměrný počet jader na serveru, desktopu a nyní mobilní platformy neustále roste.

Na rozdíl od dvou jednojádrových procesorů na stejném systému, které sdílejí pouze paměť, mohou dvě jádra sdílet také mezipaměti a další prostředky související s pamětí. Nejčastěji zůstávají mezipaměti první úrovně soukromé (každé jádro má své vlastní), zatímco druhá a třetí úroveň mohou být sdílené nebo oddělené. Tato organizace systému vám umožňuje snížit zpoždění při doručování dat mezi sousedními jádry, zejména pokud pracují na společném úkolu.


Mikrofotografie čtyřjádrového procesoru Intel s krycí jméno Nehalem. Alokována jsou samostatná jádra, společná mezipaměť třetí úrovně a také QPI vazby na další procesory a společný řadič paměti.

Hyperthread

Přibližně do roku 2002 bylo jediným způsobem, jak získat systém IA-32 schopný spouštět dva nebo více programů paralelně, použití víceprocesorových systémů. Představeno Intel® Pentium® 4 a také řada Xeon s kódovým označením Foster (Netburst) nová technologie- hyperthreads nebo hyperthreads, - Intel® HyperThreading (dále HT).

Není to nic nového pod sluncem. HT je speciální případčemu se v literatuře říká simultaneous multithreading (SMT). Na rozdíl od „skutečných“ jader, která jsou úplnými a nezávislými kopiemi, je v případě HT v jednom procesoru duplikována pouze část interních uzlů, primárně odpovědných za ukládání architektonického stavu – registrů. Výkonné uzly odpovědné za organizaci a zpracování dat zůstávají jedinečné a v daném okamžiku je používá nejvýše jedno z vláken. Hyperthready stejně jako jádra sdílejí cache, ale od jaké úrovně záleží na konkrétním systému.

Nebudu se snažit vysvětlovat všechny klady a zápory SMT designů obecně a HT designů zvlášť. Zainteresovaný čtenář může najít poměrně podrobnou diskusi o technologii v mnoha zdrojích a samozřejmě na Wikipedii. Upozorňuji však na následující důležitý bod, vysvětlující aktuální limity počtu hyperthreadů v reálné produkci.

Omezení nití
V jakých případech je přítomnost „neférových“ vícejader v podobě HT oprávněná? Pokud jedno aplikační vlákno není schopno načíst všechny spouštěcí uzly uvnitř jádra, mohou být „zapůjčeny“ jinému vláknu. To je typické pro aplikace, které mají úzké hrdlo nikoli ve výpočtu, ale v přístupu k datům, to znamená, že často generují chybějící mezipaměť a musí čekat na doručení dat z paměti. Během této doby bude jádro bez HT nuceno běžet naprázdno. Přítomnost HT umožňuje rychle přepínat volně vykonávající uzly do jiného architektonického stavu (protože je duplikován) a provádět jeho instrukce. Jedná se o speciální případ techniky zvané latence hiding, kdy jedna dlouhá operace, během níž užitečné zdroje nečinný, převlečený paralelní provedení jiné úkoly. Pokud aplikace již má vysoký stupeň využití zdrojů jádra, přítomnost hyperthreadů neumožní akceleraci – zde jsou potřeba „čestná“ jádra.

Typické scénáře pro desktop a serverové aplikace, navržený pro strojové architektury obecný účel,mají potenciál pro paralelismus umožněný HT. Tento potenciál je však rychle vyčerpán. Možná z tohoto důvodu na téměř všech procesorech IA-32 počet hardwarových hyperthreadů nepřesahuje dva. Na typické scénáře výhry z pomocí tří a více hyperthreadů by bylo málo, ale ztráta velikosti krystalu, jeho spotřeba energie a náklady jsou značné.

Odlišná situace je pozorována u typických úloh prováděných na video akcelerátorech. Proto se tyto architektury vyznačují použitím technologie SMT s větším počtem vláken. Vzhledem k tomu, že koprocesory Intel® Xeon Phi (uvedené v roce 2010) jsou ideologicky a genealogicky velmi blízké grafickým kartám, mohou mít čtyři hyperthreading na každém jádru – konfigurace jedinečná pro IA-32.

Logický procesor

Ze tří popsaných „úrovní“ paralelismu (procesory, jádra, hypervlákna) mohou některé nebo dokonce všechny v konkrétním systému chybět. To je ovlivněno nastavením BIOSu (multi-core a multithreading jsou zakázány nezávisle), funkcemi mikroarchitektury (například HT chybělo v Intel® Core™ Duo, ale bylo obnoveno s vydáním Nehalem) a systémovými událostmi (multi- procesorové servery mohou vypnout selhání procesorů, pokud jsou zjištěny chyby, a pokračovat v „létání“ na zbývajících). Jak je tato víceúrovňová zoo souběžnosti viditelná pro operační systém a v konečném důsledku pro aplikační aplikace?

Dále pro usnadnění označujeme počet procesorů, jader a vláken v určitém systému třemi ( X, y, z), kde X je počet procesorů, y- počet jader v každém procesoru a z- počet hyperthreadů v každém jádru. Od této chvíle budu nazývat tyto tři topologie- ustálený termín, který nemá s odvětvím matematiky mnoho společného. Práce p = xyz definuje počet volaných entit logické procesory systémy. Definuje celkový počet nezávislých aplikačních kontextů procesu v systému s sdílená paměť paralelně prováděné, což je operační systém nucen brát v úvahu. Říkám "vynucené", protože nemůže řídit pořadí provádění dvou procesů na různých logických procesorech. To platí také pro hypervlákna: ačkoli běží „sekvenčně“ na stejném jádru, konkrétní pořadí je diktováno hardwarem a nelze je sledovat ani ovládat programy.

Nejčastěji se operační systém skrývá před ukončení aplikací vlastnosti fyzické topologie systému, na kterém běží. Například následující tři topologie: (2, 1, 1), (1, 2, 1) a (1, 1, 2) - OS bude představovat dva logické procesory, ačkoli první z nich má dva procesory, druhý - dvě jádra a třetí - jen dvě vlákna.


Okna Správce úloh ukazuje 8 logických procesorů; ale kolik je to v procesorech, jádrech a hypervláknech?


Linux top zobrazuje 4 logické procesory.

To je pro tvůrce aplikací celkem pohodlné – nemusí řešit hardwarové funkce, které jsou pro ně často nedůležité.

Softwarová definice topologie

Samozřejmě, že abstrahování topologie do jediného počtu logických procesorů v některých případech vytváří dostatek důvodů pro zmatky a nedorozumění (ve vášnivých sporech na internetu). Výpočetní aplikace, které chtějí z hardwaru vymáčknout maximální výkon, vyžadují detailní kontrolu nad tím, kde budou jejich vlákna umístěna: blíže k sobě na sousedních hypervláknech nebo naopak dále na různé procesory. Rychlost komunikace mezi logickými procesory v rámci stejného jádra nebo procesoru je mnohem vyšší než rychlost přenosu dat mezi procesory. Obrázek také komplikuje možnost heterogenity v organizaci pracovní paměti.

Informace o topologii systému jako celku a také o poloze každého logického procesoru v IA-32 jsou dostupné pomocí instrukce CPUID. Od příchodu prvních víceprocesorových systémů bylo schéma identifikace logického procesoru několikrát rozšířeno. K dnešnímu dni jsou jeho části obsaženy na listech 1, 4 a 11 CPUID. Na který list se podívat, lze určit z následujícího vývojového diagramu převzatého z článku:

Nebudu vás zde nudit všemi detaily. jednotlivé díly tento algoritmus. Pokud bude zájem, může se tomu věnovat další část tohoto článku. Zainteresovaného čtenáře odkážu na, který tuto problematiku zkoumá co nejpodrobněji. Zde nejprve stručně popíšu, co je APIC a jak souvisí s topologií. Dále se podíváme na práci s listem 0xB (jedenáct palců desetinný), který je zapnutý v současné době je poslední slovo v „apico-building“.

APIC ID
Local APIC (advanced programmable interrupt controller) je zařízení (nyní součást procesoru) zodpovědné za obsluhu přerušení přicházejících do konkrétního logického procesoru. Každý logický procesor má svůj vlastní APIC. A každý z nich v systému musí mít jedinečnou hodnotu APIC ID. Toto číslo používají řadiče přerušení k adresování při doručování zpráv a všichni ostatní (například operační systém) k identifikaci logických procesorů. Specifikace tohoto řadiče přerušení se vyvinula z Intel 8259 PIC přes Dual PIC, APIC a xAPIC na x2APIC.

V současné době dosáhla šířka čísla uloženého v APIC ID plných 32 bitů, i když v minulosti byla omezena na 16 a ještě dříve - pouze 8 bitů. Dnes jsou po CPUID roztroušeny pozůstatky starých časů, ale CPUID.0xB.EDX vrací všech 32 bitů APIC ID. Na každém logickém procesoru, který nezávisle vykonává instrukci CPUID, bude vrácena jiná hodnota.

Vyjasnění rodinných vazeb
Samotná hodnota APIC ID vám o topologii nic neříká. Chcete-li zjistit, které dva logické procesory jsou umístěny uvnitř jednoho fyzického procesoru (tj. jsou to „bratrské“ hyperthready), které dva jsou uvnitř stejného procesoru a které jsou zcela odlišné procesory, musíte porovnat jejich hodnoty APIC ID. V závislosti na stupni vztahu se některé jejich bity budou shodovat. Tyto informace jsou obsaženy v podseznamech CPUID.0xB, které jsou operandy zakódovány v ECX. Každý z nich popisuje polohu bitového pole jedné z úrovní topologie v EAX (přesněji počet bitů, které je třeba posunout doprava v APIC ID, aby bylo možné odstranit nižší úrovně topologie), stejně jako typ této vrstvy - hyperthread, jádro nebo procesor - v ECX.

Logické procesory umístěné uvnitř stejného jádra budou mít stejné všechny bity APIC ID, kromě těch, které patří do pole SMT. U logických procesorů umístěných ve stejném procesoru všechny bity kromě polí Core a SMT. Vzhledem k tomu, že počet dílčích listů pro CPUID.0xB se může zvýšit, toto schéma nám umožní podpořit popis topologií s větším počtem úrovní, pokud v budoucnu vznikne potřeba. Navíc bude možné zavést meziúrovně mezi stávajícími.

Důležitým důsledkem organizace tohoto schématu je, že v množině všech APIC ID všech logických procesorů systému mohou být „díry“, tzn. nepůjdou postupně. Například ve vícejádrovém procesoru s vypnutým HT se mohou všechna APIC ID ukázat jako sudá, protože nejméně významný bit zodpovědný za kódování čísla hyperthreadu bude vždy nula.

Podotýkám, že CPUID.0xB není jediným zdrojem informací o logických procesorech, které má operační systém k dispozici. Seznam všech procesorů, které má k dispozici, spolu s jejich hodnotami APIC ID je zakódován v tabulce MADT ACPI.

Operační systémy a topologie

Operační systémy poskytují informace o topologii logických procesorů aplikacím využívajícím jejich vlastní rozhraní.

V Informace o Linuxu Informace o topologii jsou obsaženy v pseudosouboru /proc/cpuinfo a také ve výstupu příkazu dmidecode. V níže uvedeném příkladu filtruji obsah cpuinfo na nějakém čtyřjádrovém systému bez HT a ponechávám pouze položky související s topologií:

Skrytý text

ggg@shadowbox:~$ cat /proc/cpuinfo |grep "processor\|physical\ id\|sourozenci\|jádro\|jádra\|apicid" procesor: 0 fyzické ID: 0 sourozenci: 4 ID jádra: 0 jader procesoru: 2 apicid: 0 počáteční apicid: 0 procesor: 1 fyzické id: 0 sourozenci: 4 id jádra: 0 jádra cpu: 2 apicid: 1 počáteční apicid: 1 procesor: 2 fyzické id: 0 sourozenci: 4 id jádra: 1 jádra cpu: 2 apicid: 2 počáteční apicid: 2 procesor: 3 fyzické ID: 0 sourozenci: 4 ID jádra: 1 jádra procesoru: 2 apicid: 3 počáteční apicid: 3

Na FreeBSD je topologie hlášena prostřednictvím mechanismu sysctl v proměnné kern.sched.topology_spec jako XML:

Skrytý text

uživatel@hostitel:~$ 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 NITskupina SMT 2, 3 skupina NITskupina SMT 4, 5 skupina NITskupina SMT 6, 7 skupina NITskupina SMT

V MS Windows 8 lze informace o topologii zobrazit ve Správci úloh.

V dnešní době je to minimum přijatelná norma Za kompletní sadu více či méně seriózního výpočetního vybavení se považuje dvoujádrový procesor. Navíc, tento parametr relevantní i pro mobilní výpočetní zařízení, tablety a renomované komunikátory pro chytré telefony. Proto zjistíme, o jaký druh jader se jedná a proč je důležité, aby o nich každý uživatel věděl.

Podstata jednoduchými slovy

První dvoujádrový čip, určený speciálně pro masovou spotřebu, se objevil v květnu 2005. Produkt se jmenoval Pentium D (formálně patřil do řady Pentium 4). Dříve se podobná konstrukční řešení používala na serverech a pro specifické účely se nevkládala do osobních počítačů.

Obecně platí, že samotný procesor (mikroprocesor, CPU, centrální procesorová jednotka, centrální procesorová jednotka, CPU) je krystal, na který jsou pomocí nanotechnologie aplikovány miliardy mikroskopických tranzistorů, rezistorů a vodičů. Poté jsou nastříkány zlaté kontakty, „oblázek“ je namontován do těla čipu a to vše je integrováno do čipové sady.

Nyní si představte, že dva takové krystaly jsou instalovány uvnitř mikroobvodu. Na stejném substrátu, propojené a fungující jako jediné zařízení. Toto je dva hlavní předmět diskuse.

Dva „oblázky“ samozřejmě nejsou limitem. V době psaní článku je počítač vybavený čipem se čtyřmi jádry považován za výkonný, nepočítaje výpočetní zdroje grafické karty. Díky úsilí AMD jich servery využívají již šestnáct.

Terminologické nuance

Každá kostka má obvykle svou vlastní mezipaměť L1. Pokud však mají společný druhoúrovňový, pak jde stále o jeden mikroprocesor, a ne o dva (nebo více) nezávislé.

Jádro lze nazvat plnohodnotným samostatným procesorem pouze v případě, že má vlastní mezipaměť obou úrovní. To je ale nutné pouze pro použití na velmi výkonných serverech a všemožných superpočítačích (oblíbené hračky vědců).

Nicméně „Správce úloh“ v OS Windows nebo „Sledování systému“ v GNU/Linuxu může zobrazit jádra jako CPU. Myslím CPU 1 (CPU 1), CPU 2 (CPU 2) a tak dále. Nenechte se tím zmást, protože povinností programu není porozumět technickým a architektonickým nuancím, ale pouze interaktivně zobrazit načítání každého z krystalů.

To znamená, že plynule přecházíme právě k tomuto zatížení a obecně k otázkám účelnosti jevu jako takového.

Proč je to nutné?

Řada jader odlišných od jednoho je určena především pro paralelizaci prováděných úloh.

Řekněme, že zapnete svůj notebook a čtete stránky na World Wide Web. Skripty, kterými jsou moderní webové stránky prostě nehorázně přetížené (kromě mobilních verzí), budou zpracovány pouze jedním jádrem. Sto procent zátěže na něj padne, pokud něco špatného přivede prohlížeč k šílenství.

Druhý krystal bude pokračovat v práci normální mód a umožní vám vyrovnat se se situací - minimálně otevřete „System Monitor“ (nebo emulátor terminálu) a násilně ukončete šílený program.

Mimochodem, právě v „Monitoru systému“ můžete na vlastní oči vidět, který software náhle vypadl z kolejí a který z „oblázků“ způsobuje zoufalé vytí chladiče.

Některé programy jsou zpočátku optimalizovány pro architekturu vícejádrových procesorů a okamžitě posílají různé datové toky do různých krystalů. Běžné aplikace jsou zpracovávány podle principu „jedno vlákno - jedno jádro“.

To znamená, že zvýšení výkonu bude patrné, pokud současně běží více než jedno vlákno. Protože téměř všechny operační systémy jsou multitaskingové, pozitivní efekt paralelizace se bude dostavovat prakticky neustále.

Jak s tím žít

Pokud jde o spotřební výpočetní techniku, jednojádrové čipy jsou dnes hlavně procesory ARM v jednoduchých telefonech a miniaturních přehrávačích médií. Vynikající výkon takových zařízení není vyžadován. Maximum je spuštění prohlížeče Opera Mini, ICQ klienta, jednoduché hry a dalších nenáročných aplikací v Javě.

Vše ostatní, počínaje i nejlevnějšími tablety, musí mít v čipu alespoň dva krystaly, jak je uvedeno v preambuli. Kupte si tyto věci. Přinejmenším na základě úvah, že téměř veškerý uživatelský software rychle tloustne a spotřebovává stále více systémové prostředky, takže rezerva chodu nebude vůbec bolet.

Předchozí publikace:

Při nákupu procesoru se mnoho lidí snaží vybrat něco chladnějšího, s několika jádry a vysokým taktem. Málokdo ale ví, co vlastně počet procesorových jader ovlivňuje. Proč může být například běžný a jednoduchý dvoujádrový procesor rychlejší než čtyřjádrový, nebo stejné „procento“ se 4 jádry než „procento“ s 8 jádry. To je hezké zajímavé téma, který rozhodně stojí za bližší pochopení.

Úvod

Než začneme chápat, co ovlivňuje počet procesorových jader, rád bych udělal malou odbočku. Ještě před několika lety byli vývojáři CPU přesvědčeni, že výrobní technologie, které se tak rychle vyvíjejí, jim umožní vyrábět „kameny“ s taktem až 10 GHz, což uživatelům umožní zapomenout na problémy se špatným výkonem. Úspěchu však nebylo dosaženo.

Bez ohledu na to, jak se technický proces vyvíjí, Intel i AMD jsou zaseknuté čistě fyzická omezení, který prostě neumožňoval vydání procesorů s taktovací frekvencí až 10 GHz. Poté bylo rozhodnuto zaměřit se nikoli na frekvence, ale na počet jader. Nová rasa tak začala produkovat výkonnější a produktivnější procesorové „krystaly“, která pokračuje dodnes, ale ne tak aktivně jako zpočátku.

Procesory Intel a AMD

Intel a AMD jsou dnes přímými konkurenty na trhu procesorů. Když se podíváte na tržby a tržby, jasná výhoda bude na straně Blues, i když Nedávno Reds se snaží držet krok. Obě společnosti mají dobrý sortiment hotová řešení pro všechny příležitosti - od jednoduchého procesoru s 1-2 jádry až po skutečné příšery, ve kterých počet jader přesahuje 8. Obvykle se takové „kameny“ používají na speciálních pracovních „počítačích“, které mají úzké zaměření.

Intel

Takže dnes společnost Intel úspěch Existuje 5 typů procesorů: Celeron, Pentium a i7. Každý z těchto „kamenů“ má jiný počet jader a je k tomu určen různé úkoly. Například Celeron má pouze 2 jádra a používá se především na kancelářských a domácích počítačích. Pentium, nebo, jak se také nazývá, „pahýl“, se také používá v domácnostech, ale již má mnohem lepší výkon, především díky Technologie Hyper-Threading, který k fyzickým dvěma jádrům, kterým se říká vlákna, „přidá“ další dvě virtuální jádra. Dvoujádrové „procento“ tedy funguje jako nejlevnější čtyřjádrový procesor, i když to není úplně správné, ale to je hlavní bod.

Pokud jde o Základní linie, pak je zde situace přibližně podobná. Mladší model s číslem 3 má 2 jádra a 2 vlákna. Starší řada - Core i5 - má již plnohodnotných 4 nebo 6 jader, ale postrádá funkci Hyper-Threading a nemá další vlákna, kromě 4-6 standardních. No a poslední věc - core i7 je špičkové procesory, které mají obvykle 4 až 6 jader a dvakrát více proudů, tedy například 4 jádra a 8 vláken nebo 6 jader a 12 vláken.

AMD

Nyní stojí za to mluvit o AMD. Seznam „oblázků“ od této společnosti je obrovský; nemá smysl vypisovat vše, protože většina modelů je prostě zastaralá. Za zmínku snad stojí nová generace, která v jistém smyslu „kopíruje“ Intel - Ryzen. Tato řada obsahuje i modely s čísly 3, 5 a 7. Hlavním rozdílem od „modrých“ Ryzenů je, že nejvíce juniorský model už poskytuje hned plnohodnotná 4 jádra a to starší má ne 6, ale hned osm. Kromě toho se mění počet vláken. Ryzen 3 - 4 vlákna, Ryzen 5 - 8-12 (podle počtu jader - 4 nebo 6) a Ryzen 7 - 16 vláken.

Za zmínku stojí další „červená“ řada - FX, která se objevila v roce 2012, a ve skutečnosti tuto platformu je již považováno za zastaralé, ale díky tomu, že nyní čím dál tím více více programů a hry začínají podporovat multi-threading, získala si opět oblibu řada Vishera, která spolu s nízké ceny pouze roste.

Pokud jde o spory ohledně frekvence procesoru a počtu jader, pak je ve skutečnosti správnější dívat se na druhé, protože všichni se již dávno rozhodli pro taktovací frekvence a dokonce i špičkové modely od Intelu pracují na nominálních 2,7, 2,8, 3 GHz. Frekvenci lze navíc vždy zvýšit pomocí přetaktování, což se ale v případě dvoujádrového procesoru příliš neprojeví.

Jak zjistit, kolik jader

Pokud někdo neví, jak určit počet jader procesoru, tak to lze udělat snadno a jednoduše i bez stahování a instalace samostatných speciální programy. Stačí přejít do "Správce zařízení" a kliknout na malou šipku vedle položky "Procesory".

Podrobnější informace o tom, jaké technologie váš „kámen“ podporuje, jaká je jeho hodinová frekvence, číslo revize a mnoho dalšího, získáte pomocí speciálního a malého programu CPU-Z. Stáhnout si jej můžete zdarma na oficiálních stránkách. Existuje verze, která nevyžaduje instalaci.

Výhoda dvou jader

Jaká by mohla být výhoda dvoujádrového procesoru? Existuje mnoho věcí, například ve hrách nebo aplikacích, při jejichž vývoji byla hlavní prioritou práce s jedním vláknem. Vezměte si jako příklad hru Wold of Tanks. Nejběžnější dvoujádrové procesory jako Pentium nebo Celeron přinesou docela slušné výkonové výsledky, zatímco některé FX od AMD nebo INTEL Core využijí mnohem více jejich schopností a výsledek bude přibližně stejný.

Lepší 4 jádra

Jak mohou být 4 jádra lepší než dvě? Lepší výkon. Čtyřjádrové „kameny“ jsou určeny pro vážnější práce, kde si jednoduché „pahýly“ nebo „celerony“ prostě neporadí. Skvělý příklad Zde bude fungovat jakýkoli program pro práci s 3D grafikou, například 3Ds Max nebo Cinema4D.

Během procesu vykreslování využívají tyto programy maximum počítačových zdrojů, včetně paměti RAM a procesoru. Dvoujádrové procesory budou velmi pomalé v době zpracování renderu a čím složitější je scéna, tím déle to bude trvat. Procesory se čtyřmi jádry se však s tímto úkolem vyrovnají mnohem rychleji, protože jim na pomoc přijdou další vlákna.

Samozřejmě si můžete vzít nějaký rozpočet „protsik“ z rodiny Core i3, například model 6100, ale 2 jádra a 2 další vlákna budou stále horší než plnohodnotné čtyřjádrové.

6 a 8 jader

No a posledním segmentem vícejádrových jsou procesory se šesti a osmi jádry. Jejich hlavní účel je v zásadě úplně stejný jako u CPU výše, jen jsou potřeba tam, kde si běžné „čtyřky“ neporadí. Kromě toho jsou na bázi „kamenů“ s 6 a 8 jádry stavěny plnohodnotné specializované počítače, které budou „šité na míru“ pro konkrétní činnosti, například střih videa, programy pro 3D modelování, vykreslování hotových těžkých scén s velké množství polygony a objekty atd.

Navíc tyto vícejádrové procesory fungují velmi dobře při práci s archivátory nebo v aplikacích, kde je to dobré výpočetní schopnosti. Ve hrách, které jsou optimalizovány pro multi-threading, takové procesory nemají obdoby.

Co je ovlivněno počtem jader procesoru?

Co tedy ještě může ovlivnit počet jader? V první řadě ke zvýšení spotřeby energie. Ano, jakkoli to může znít překvapivě, je to pravda. Není třeba se příliš bát, protože v běžném životě tento problém, abych tak řekl, nebude patrný.

Druhým je topení. Čím více jader, tím lepší chladicí systém je potřeba. S měřením teploty procesoru vám pomůže program s názvem AIDA64. Při spouštění musíte kliknout na „Počítač“ a poté vybrat „Snímače“. Musíte sledovat teplotu procesoru, protože pokud se neustále přehřívá nebo pracuje při příliš vysokých teplotách, po nějaké době jednoduše vyhoří.

Dvoujádrové systémy tento problém neznají, protože toho moc nemají vysoký výkon a odvod tepla, respektive, ale vícejádrové - ano. Nejžhavější kameny jsou ty od AMD, zejména řada FX. Vezměme si například model FX-6300. Teplota procesoru v programu AIDA64 je kolem 40 stupňů a to je v klidovém režimu. Při zátěži se číslo zvýší a pokud dojde k přehřátí, počítač se vypne. Při nákupu vícejádrového procesoru byste tedy neměli zapomenout na chladič.

Co dalšího ovlivňuje počet procesorových jader? Pro multitasking. Dvoujádrové procesory nebudou schopny poskytovat stabilní výkon při současném spuštění dvou, tří nebo více programů. Nejjednodušším příkladem jsou streamery na internetu. Kromě toho, že hrají nějakou hru na vysoké nastavení, mají zároveň spuštěný program, který jim umožňuje vysílat herní proces na internet online, internetový prohlížeč s několika otevřít stránky, kde hráč zpravidla čte komentáře lidí, kteří ho sledují a sleduje další informace. Ani každý vícejádrový procesor nedokáže zajistit patřičnou stabilitu, nemluvě o dvoujádrových a jednojádrových procesorech.

Také stojí za to říci pár slov, že vícejádrové procesory mají velmi užitečná věc, která se nazývá "L3 Cache". Tato cache má určité množství paměti, do které se dostávají různé informace o spuštěné programy, provedené akce atd. To vše je potřeba ke zvýšení rychlosti počítače a jeho výkonu. Například, pokud osoba často používá Photoshop, budou tyto informace uloženy v paměti a doba spuštění a otevření programu se výrazně zkrátí.

Shrnutí

Shrneme-li rozhovor o tom, co ovlivňuje počet procesorových jader, můžeme dospět k jednoduchému závěru: pokud potřebujete dobrý výkon, výkon, multitasking, práce v těžké aplikace, schopnost pohodlně hrát moderní hry atd., pak je vaší volbou procesor se čtyřmi a více jádry. Pokud potřebujete jednoduchý „počítač“ do kanceláře popř domácí použití, který bude využíván minimálně, pak jsou potřeba 2 jádra. V každém případě při výběru procesoru musíte nejprve analyzovat všechny své potřeby a úkoly a teprve poté zvážit případné možnosti.

Úvod.

Moderní procesor je složitý a vysoce technický logické zařízení, která zahrnuje všechny nejnovější úspěchy v oblasti výpočetní techniky a příbuzných vědních oborů.

Většina moderních procesorů se skládá z:

  • jedno nebo více jader, která provádějí všechny instrukce;
  • několik úrovní vyrovnávací paměti (obvykle 2 nebo tři úrovně), urychlující interakci procesoru s RAM;
  • řadič RAM;
  • ovladač systémová sběrnice(DMI, QPI, HT atd.);

A je charakteristický následující parametry:

  • typ mikroarchitektury;
  • frekvence hodin;
  • sada provedených příkazů;
  • počet úrovní vyrovnávací paměti a jejich hlasitost;
  • typ a rychlost systémové sběrnice;
  • velikost zpracovávaných slov;
  • přítomnost nebo nepřítomnost vestavěného paměťového řadiče;
  • typ podporované paměti RAM;
  • adresovatelný objem paměti;
  • přítomnost nebo nepřítomnost vestavěných grafické jádro;
  • spotřeba energie.

Zjednodušený strukturální schéma moderní vícejádrový procesor je znázorněn na obrázku 1.

Začněme naši recenzi návrhu procesoru jeho hlavní částí – jádrem.

Procesorové jádro je hlavní částí procesoru, která obsahuje vše funkční bloky a provádění všech logických a aritmetických operací.

Obrázek 1 ukazuje blokové schéma jádra procesoru. Jak je vidět na obrázku, každé jádro procesoru se skládá z několika funkčních bloků:

  • blok načítání instrukce;
  • bloky dekódování instrukcí;
  • bloky vzorkování dat;
  • řídící jednotka;
  • bloky provádění instrukcí;
  • bloky pro ukládání výsledků;
  • blok práce s přerušeními;
  • ROM obsahující mikrokód;
  • sada registrů;
  • počítadlo programů.

Blok načítání instrukcíčte instrukce na adrese uvedené v čítači programu. Obvykle čte několik instrukcí za cyklus hodin. Počet přečtených instrukcí je určen počtem dekódovacích bloků, protože je nutné načíst dekódovací bloky co nejvíce v každém cyklu operace. Aby jednotka načítání instrukcí fungovala optimálně, má jádro procesoru prediktor větvení.

Prediktor přechodu pokusí se určit, jaká sekvence příkazů bude provedena po provedení přechodu. To je nezbytné, aby se po podmíněném skoku co nejvíce zatížilo potrubí procesorového jádra.

Dekódování bloků, jak název napovídá, jsou bloky, které se zabývají dekódovacími instrukcemi, tzn. určit, co procesor potřebuje udělat a jaká další data jsou potřeba k provedení instrukce. Tento úkol je pro většinu moderních komerčních procesorů postavených na konceptu CISC velmi obtížný. Faktem je, že délka instrukcí a počet operandů nejsou pevně dané, což značně komplikuje život vývojářům procesorů a z procesu dekódování se stává netriviální úkol.



Často je nutné jednotlivé složité příkazy nahradit mikrokódem – sérií jednoduché instrukce, společně provádějící stejnou akci jako jedna komplexní instrukce. Sada mikrokódů je vložena do paměti ROM zabudované v procesoru. Kromě toho mikrokód zjednodušuje vývoj procesoru, protože není potřeba vytvářet složité bloky jádra pro provádění jednotlivých příkazů a oprava mikrokódu je mnohem jednodušší než oprava chyby ve fungování bloku.

V moderní procesory, obvykle jsou 2-4 instrukční dekódovací jednotky, např. v procesorech Intel Core 2, každé jádro obsahuje dva takové bloky.

Bloky vzorkování dat načte data z mezipaměti nebo RAM potřebná k provedení aktuálních instrukcí. Obvykle každý jádro procesoru obsahuje několik bloků vzorkování dat. Například procesory Intel Core používají dva vzorky dat pro každé jádro.

Ovládací blok Na základě dekódovaných instrukcí řídí činnost bloků provádění instrukcí, rozděluje mezi ně zátěž a zajišťuje včasné a správné provádění instrukcí. Jedná se o jeden z nejdůležitějších bloků jádra procesoru.

Bloky provádění instrukcí obsahuje několik různých typů bloků:

ALU – aritmeticko logická jednotka;

FPU – zařízení pro provádění operací s pohyblivou řádovou čárkou;

Bloky pro zpracování rozšíření instrukční sady. Další instrukce slouží k urychlení zpracování datových toků, šifrování a dešifrování, kódování videa a tak dále. K tomu jsou do jádra procesoru zavedeny další registry a sady logiky. Na tento moment Nejoblíbenější rozšíření instrukčních sad jsou:

MMX (Multimedia Extensions) je sada instrukcí vyvinutá společností Intel pro urychlení kódování a dekódování streamovaných audio a video dat;

SSE (Streaming SIMD Extensions) je sada instrukcí vyvinutá společností Intel k provádění stejné sekvence operací na sadě dat při paralelizaci výpočetního procesu. Sady příkazů se neustále vylepšují a v současné době existují revize: SSE, SSE2, SSE3, SSSE3, SSE4;

ATA (Application Targeted Accelerator) je sada instrukcí vyvinutá společností Intel pro urychlení práce specializovaných software a snížení spotřeby energie při práci s takovými programy. Tyto pokyny lze použít například při výpočtu kontrolní součty nebo načítání dat;

3DNow je instrukční sada vyvinutá společností AMD pro rozšíření možností instrukční sady MMX;

AES (Advanced Encryption Standard) je sada instrukcí vyvinutá společností Intel pro urychlení provozu aplikací, které používají šifrování dat pomocí stejného algoritmu.

Blok ukládání výsledků zajišťuje, že výsledek provádění instrukce je zaznamenán do RAM na adrese uvedené ve zpracovávané instrukci.

Blok přerušení. Práce s přerušeními je jednou z nejdůležitější úkoly procesor, což mu umožňuje včas reagovat na události, přerušovat průběh programu a provádět akce, které jsou od něj vyžadovány. Díky přítomnosti přerušení je procesor schopen pseudoparalelního provozu, tzn. na takzvaný multitasking.

Přerušení se řeší následovně. Procesor před zahájením každého cyklu zkontroluje požadavek na přerušení. Pokud dojde ke zpracování, procesor uloží do zásobníku adresu instrukce, kterou měl provést, a data přijatá po provedení poslední instrukce a pokračuje ve vykonávání funkce zpracování přerušení.

Po dokončení funkce zpracování přerušení se data v ní uložená přečtou ze zásobníku a procesor pokračuje ve vykonávání obnovené úlohy.

Registry- ultra rychlý RAM(přístup k registrům je několikanásobně rychlejší než přístup k vyrovnávací paměti) malého objemu (několik set bajtů), obsažený v procesoru, pro dočasné uložení mezivýsledků provádění instrukce. Registry procesorů se dělí na dva typy: registry pro všeobecné použití a speciální registry.

Obecné registry se používají při provádění aritmetických a logické operace nebo specifické operace dalších instrukčních sad (MMX, SSE atd.).

Registry pro zvláštní účely obsahují systémová data nezbytná pro fungování procesoru. Mezi takové registry patří například řídicí registry, systémové registry adres, ladicí registry atd. Přístup do těchto registrů je přísně regulován.

Počítadlo programů– registr obsahující adresu instrukce, kterou procesor začne provádět při dalším taktu.

...v procesu vývoje bude počet jader stále více a více.

(Vývojáři Intel)

Více jádro, a také jádro a mnoho, mnoho dalších jádro!..

...Donedávna jsme o tom neslyšeli ani nevěděli vícejádrový procesory a dnes agresivně nahrazují jednojádrové procesory. Začal boom vícejádrových procesorů, který je zatím jen nepatrný! – držet je poměrně zpátky vysoké ceny. Nikdo ale nepochybuje, že budoucnost spočívá ve vícejádrových procesorech!...

Co je jádro procesoru

V centru moderního centrálního mikroprocesoru ( procesor– zkr. z angličtiny centrální procesorová jednotka– centrální výpočetní zařízení) je jádrem ( jádro) je krystal křemíku o ploše přibližně jednoho centimetru čtverečního, na kterém je pomocí mikroskopu logické prvky schéma zapojení procesoru, tzv architektura (architektura čipu).

Jádro je připojeno ke zbytku čipu (tzv. „balíček“ CPU balíček ) pomocí technologie flip-chip ( flip-chip, flip-chip bonding– převrácené jádro, upevnění metodou obráceného krystalu). Tato technologie získala svůj název, protože ven směřující – viditelná – část jádra je ve skutečnosti jeho „spodkem“ – pro zajištění přímého kontaktu s chladičem chladiče pro lepší přenos tepla. Na zadní (neviditelné) straně je samotné „rozhraní“ - spojení mezi krystalem a obalem. Spojení mezi jádrem procesoru a obalem je provedeno pomocí kolíků ( Pájecí hrbolky).

Jádro je umístěno na textolitové základně, po které probíhají kontaktní dráhy k „nohám“ (kontaktním ploškám), vyplněné tepelným rozhraním a zakryté ochranným kovovým krytem.

První (samozřejmě jednojádrový!) mikroprocesor Intel 4004 byl představen 15. listopadu 1971 společností Intel Corporation. Obsahoval 2300 tranzistorů a běžel dál hodinová frekvence 108 kHz a stojí 300 $.

Požadavky na výpočetní výkon Centrální mikroprocesor neustále rostl a stále roste. Ale pokud se dřívější výrobci procesorů museli neustále přizpůsobovat aktuálním naléhavým (stále rostoucím!) požadavkům uživatelů, nyní jsou výrobci čipů vpřed!

Ke zlepšení výkonu tradičních jednojádrových procesorů docházelo po dlouhou dobu především díky neustálému zvyšování taktovací frekvence (asi 80 % výkonu procesoru bylo určeno taktovací frekvencí) při současném zvyšování počtu tranzistorů na jednom čip. Další zvýšení taktovací frekvence (při taktovací frekvenci vyšší než 3,8 GHz se čipy jednoduše přehřívají!) však naráží na řadu zásadních fyzických bariér (protože technologický proces se téměř přiblížil velikosti atomu: dnes se procesory vyrábějí pomocí 45nm technologie a velikost atomu křemíku je přibližně 0,543 nm):

Za prvé, jak se zmenšuje velikost krystalu a zvyšuje se frekvence hodin, zvyšuje se svodový proud tranzistorů. To vede ke zvýšené spotřebě energie a zvýšenému tepelnému výkonu;

Za druhé, výhody vyšší rychlosti hodin jsou částečně negovány latencí přístupu do paměti, protože doba přístupu do paměti nedrží krok s rostoucí rychlostí hodin;

Zatřetí, pro některé aplikace se tradiční sériové architektury stávají neefektivními, protože se takty zvyšují kvůli takzvanému „von Neumannovu úzkému hrdlu“, což je omezení výkonu vyplývající ze sekvenčního výpočetního toku. Současně se zvyšuje zpoždění přenosu RC signálu, což je další úzké hrdlo spojené se zvýšením hodinové frekvence.

Použití víceprocesorových systémů také není rozšířené, protože vyžaduje složité a drahé víceprocesorové základní desky. Proto bylo rozhodnuto dále zlepšit výkon mikroprocesorů jinými prostředky. Koncept byl uznán jako nejúčinnější směr multithreading, který vznikl ve světě superpočítačů, je současné paralelní zpracování více toků příkazů.

Tedy v hloubi společnosti Intel byl narozen Technologie Hyper-Threading (HTT) je technologie zpracování dat s ultravláknovým zpracováním, která umožňuje procesoru provozovat až čtyři paralelní procesory na jednojádrovém procesoru. programová vlákna zároveň. Hyper-threading výrazně zlepšuje efektivitu aplikací náročných na zdroje (například těch, které se týkají úpravy zvuku a videa, 3D-simulation), stejně jako provoz operačního systému v režimu multitaskingu.

procesor Pentium 4 s zahrnuty Hyper-threading má jeden fyzický jádro, které je rozděleno na dvě logický, takže jej operační systém identifikuje jako dva různé procesory (místo jednoho).

Hyper-threading se vlastně stal odrazovým můstkem k vytvoření procesorů se dvěma fyzickými jádry na jednom čipu. Ve 2jádrovém čipu pracují dvě jádra (dva procesory!) paralelně, což při nižší taktovací frekvenci poskytuje Ó lepší výkon, protože dva nezávislé proudy instrukcí jsou prováděny paralelně (současně!).

Schopnost procesoru provádět více programových vláken současně se nazývá paralelismus na úrovni vláken (TLPparalelismus na úrovni vláken). Potřeba pro TLP záleží na konkrétní situaci(v některých případech je to prostě k ničemu!).

Hlavní problémy tvorby procesorů

Každé jádro procesoru musí být nezávislé, s nezávislou spotřebou a regulovatelným výkonem;

Softwarový trh by měl být vybaven programy, které dokážou efektivně rozdělit algoritmus větvení instrukce na sudý (pro procesory se sudým počtem jader) nebo lichý (pro procesory s lichým počtem jader) počet vláken;

Podle tiskové služby AMD, dnes trh se 4jádrovými procesory tvoří ne více než 2 % z celkového objemu. Je zřejmé, že pro moderního kupujícího má nákup 4jádrového procesoru pro domácí potřeby stále malý smysl z mnoha důvodů. Za prvé, dnes prakticky neexistují žádné programy, které by dokázaly efektivně využívat výhody 4 současně běžících vláken; za druhé výrobci pozice 4jádrových procesorů jako Ahoj konci- řešení přidáním do zařízení nejmodernější grafické karty a objemové pevné disky, – a to v konečném důsledku zvyšuje náklady na již tak drahé

Vývojáři Intelříkají: „...v procesu vývoje bude počet jader stále více a více…“.

Co nás čeká v budoucnu

V korporaci Intel již nemluví o „vícejádrovém“ ( Vícejádrový( Mnohojádrové), což znamená zcela novou makrostrukturu architektury čipu, srovnatelnou (ale ne podobnou) s architekturou procesoru Buňka.

Struktura takových Mnohojádrové-chip zahrnuje práci se stejnou sadou instrukcí, ale s použitím výkonného centrálního jádra nebo několika výkonných procesor, „obklopené“ mnoha pomocnými jádry, která pomohou efektivněji zpracovávat složité multimediální aplikace ve vícevláknovém režimu. Kromě "obecných" jader, procesorů Intel bude mít také specializovaná jádra pro provádění různých tříd úloh - jako je grafika, algoritmy rozpoznávání řeči, zpracování komunikačních protokolů.

Přesně takovou architekturu představil Justin Rattner ( Justin R. Rattner), vedoucí sektoru Corporate Technology Group Intel, na tiskové konferenci v Tokiu. Podle něj může být v novém vícejádrovém procesoru několik desítek takových pomocných jader. Na rozdíl od zaměření na velká, energeticky náročná výpočetní jádra s vysokým odvodem tepla, vícejádrové krystaly Intel aktivuje pouze ta jádra, která jsou potřebná k dokončení aktuální úlohy, zatímco zbývající jádra budou deaktivována. To umožní krystalu spotřebovat přesně tolik elektřiny, kolik je v danou chvíli potřeba.

V červenci 2008 spol Intel uvedl, že zvažuje možnost integrace několika desítek až tisíců výpočetních jader do jednoho procesoru. Vedoucí inženýr společnosti Envar Galum ( Anwar Ghuloum) na svém blogu napsal: „Nakonec doporučuji vzít si ode mě následující radu... vývojáři by měli začít přemýšlet o desítkách, stovkách a tisících jader už teď.“ Podle něj v tuto chvíli Intel zkoumá technologie, které by mohly škálovat výpočetní techniku ​​„podle počtu jader, která zatím neprodáváme“.

Úspěch vícejádrových systémů bude nakonec záviset na vývojářích, kteří pravděpodobně budou muset změnit programovací jazyky a přepsat existující knihovny, řekl Galum.




Horní