Intel Nehalem Úvod Intel již brzy uvede architekturu nové generace, Intel Nehalem. O nové architektuře Intelu jsem si již povídali v minulém článku: Shanghai vs. Nehalem aneb co chystá AMD a Intel? Nehalem přináší řadu zásadních změn na úrovni architektury procesoru i platforem, a protože nás procesorovou nabídkou Intelu bude provázet minimálně příští dva roky, podíváme se dnes na Nehalem podrobněji. Intel plánuje uvedení nové architektury každé 2 roky s pravidelnou obměnou výrobní technologie (tento proces zavádění nových technologií a architektur Intel označuje jako "Tick-Tock" model). Z Nehalemu bude vycházet i 32 nm "Tick" Westmere (a řadu vylepšení zřejmě převezme i budoucí architektura Sandy Bridge, dříve přezdívaná Gesher).
Intel Nehalem poměrně zásadním způsobem mění přístup, který byl použitý při návrhu čipu a platforem, jež přijdou na trh s uvedením nových procesorů. Architektura Nehalem byla navrhována s ohledem na škálovatelnost procesoru i platformy, vysoký výkon a energetickou účinnost. Směr vývoje je v posledních letech čím dál zřejmější - zaměření pouze na výkon již nehraje prim a řada firem se více a více zaměřuje na energeticky úsporné procesory (a s tímto záměrem jsou již vyvíjeny celé platformy). Jak ostatně potvrdil i Pat Gelsinger a řada architektů Nehalemu, hlavní silou Nehalemu bude kromě výkonu v multithreaded prostředí právě efektivita procesoru s ohledem na výkon/spotřebu a technologie pro šetření elektrické energie. Celkově má Nehalem představovat vyváženou platformu, procesor s výborným výkonem a přiměřenou spotřebou. Změny na úrovni platformy někteří představitelé Intelu prezentují jako nejzásadnější změny architektury procesorů Intel, alespoň za posledních 10 let. Co tedy Nehalem přináší? Stejné jádro pro všechny segmenty trhu, vysoký výkon a škálovatelnost při zachování spotřeby minulé generace procesorů. Řada dalších vylepšení se týká zejména specifických částí trhu, ale těžit z ní mohou samozřejmě všechny segmenty.
Architektura Intel Nehalem Nová architektura Intel Nehalem vychází z architektury Intel Core, ale celý přístup byl již od návrhu čipu zaměřen na efektivně škálovatelnou architekturu a škálovatelný návrh čipu. Cílem Nehalemu bylo možné nasazení procesorů ve všech segmentech trhu, a proto bylo nutné odstranit dosavadní bariéry možného růstu výkonu, umožnit škálování ve vícesocketových systémech a zároveň udržet dosavadní spotřebu (případně ji dokonce snížit pro možné nasazení v mobilních počítačích). Na první pohled takřka neřešitelný problém, který se ale podařilo vyřešit pomocí řady inovací. Intel Nehalem je od základu tvořen ze stavebních bloků, které je možné kombinovat podle segmentu trhu, předpokládaného nasazení, požadovaného výkonu a tak dále. Procesor lze proto poměrně jednoduše rozšířit o další jádro, přidat L3 cache, více QPI (pro efektivnější komunikaci v případě vícesocketových systémů) až po integraci grafického jádra IGP (Integrated Graphics Processor).
Řada vylepšení je také na úrovni architektury samotného jádra. Implementována byla řada nových technologií pro šetření energií a pro multithreaded prostředí, nová je hierarchie cache o 3 úrovních, integrován byl řadič paměti a řádně naddimenzovaná byla také QuickPath sběrnice. Postupně se na všechna vylepšení podíváme podrobněji.
Změny na úrovni platformy Zřejmě největší slabinou současných procesorů s architekturou Intel Core jsou vícesocketové systémy. Standardní architektury s FSB (Front Side Bus) sběrnicí jsou nejvíce limitované právě s rostoucím počtem jader a socketů. Požadavky na přísun dat rostou s každým přidaným procesorem, a proto efektivita architektur s FSB a poměrně limitovanou propustností paměťového subsystému s rostoucím počtem socketů a jader klesá. Od určitého bodu se nejedná o problém výpočetního výkonu, který fakticky roste s každým přidaným jádrem, ale problém jak zajistit efektivní škálování (komunikaci mezi jádry a jak každému jádru zajistit dostatečný přísun dat). V případě serverových řešení, ve vícesocketových systémech, je tento nedostatek řešen pomocí více nezávislých sběrnic a velkou cache, ale to je z dlouhodobého hlediska samozřejmě velice neefektivní.
Zde již dostává slovo nová architektura, Intel Nehalem a QuickPath. Technologie QuickPath, respektive QPI, byla dříve oficiálně nazývaná CSI (Common System Interface) a nahrazuje datovou sběrnici FSB (Front Side Bus). K procesoru je také integrován řadič paměti. Propustnost a škálovatelnost takového systému je samozřejmě neporovnatelně lepší, než pouhé přidání cache nebo několika FSB sběrnic. Typickým řešením tak bude například Nehalem-EP v dvousocketové konfiguraci.
Procesory, které používají FSB, používají tuto sběrnici ke komunikaci se severním můstkem a v případě MCM (Multi-Chip Module) může sběrnice spojovat i několik jader. QPI naproti tomu dovoluje vysokorychlostní "point-to-point" komunikaci pro procesory a další části systému, takže ve vícesocketových systémech nebude problém jednotlivá jádra propojit přímo přes samostatnou QPI linku a to samé udělat s čipsetem (stejného řešení se již příští rok dočkáme i v MP systémech, kde budou mít procesory až 4 QPI linky). Výkon QuickPath sběrnice je 4,8 až 6,4 GT/s na linku (možná konfigurace je 5, 10 a 20 bit), s celkovou propustností až 25,6 GB/s. V multiprocesorových systémech tak QPI poskytuje podstatně efektivnější komunikaci procesorů a čipsetu. Ačkoliv byla FSB dlouho dostačujícím řešením, zejména ve víceprocesorových systémech a na serverovém trhu s více sockety, Intel toto řešení již delší dobu potřeboval. Ruku v ruce s novou platformou a QPI jde také integrovaný řadič paměti, který má zajistit systému efektivní a rychlý přísun dat. Integrovaný řadič paměti přináší výrazné snížení latencí a zvýšení efektivity komunikace s operační pamětí. Implementován zde byl rovnou trojkanálový řadič pamětí DDR3, ačkoliv architektura Nehalemu umožnuje použití i dvojkanálového řadiče paměti (serverové řešení pro 4 socketové systémy přinese dokonce čtyřkanálový řadič paměti).
IMC v Nehalemu podporuje až 3 kanály a kromě standardních pamětí také RDIMM a UDIMM (ve srovnání s 1600MHz Harpertownem v dvousocketové konfiguraci poskytuje Nehalem efektivně 4x vyšší propustnost). V případě víceprocesorových systémů je výhodou škálování paměťového subsystému s každým přidaným procesorem, kdy každý přidaný procesor s vlastní pamětí efektivně navyšuje propustnost a výkon systému. NUMA aneb Non-Uniform Memory Access a k čemu má vlastně sloužit? NUMA architektura byla navržena k překonání limitů škálovatelnosti SMP (kde je veškerá paměť dostupná na jednom místě, přes jedinou sběrnici). Jak již bylo uvedeno, tento "problém" se dotýká zejména vícejádrových a vícesocketových systémů, kde se až desítky jader musí dělit o stejnou sběrnici. Výhody v případě NUMA jsou zřejmé, protože NUMA snižuje počet procesorů používajících stejnou sběrnici a komunikace na úrovni procesor-paměť, i v případě paměti dalšího procesoru, je zde zprostředkována přes QPI.
V případě Nehalemu má každý procesor vlastní paměť obsluhovanou integrovaným řadičem paměti a s NUMA je možné efektivně přistupovat do paměti dalších procesorů (latence jsou samozřejmě vyšší než při přístupu do vlastní paměti), ale dále roste celková propustnost systému. Díky QPI, přes kterou procesory komunikují a přenášejí mezi sebou data (vyžádané z cache dalšího procesoru nebo nelokální paměti) a díky integrovanému řadiči paměti, se efektivně snižují latence pro přístup do lokální paměti až o 40 procent. V případě přístupu do paměti dalšího procesoru, v dvousocketové konfiguraci, jsou latence stále nižší než u Harpertownu. Změny na úrovni architektury Nehalemu nevyhnutelně přináší několik nových platforem (pro desktopy, mobilní počítače i pro servery). Stejně jako u AMD před lety (při přechodu na architekturu K8 a uvedení HyperTransportu a integrovaného řadiče paměti), bylo pro tyto platfromy nutné přinést nové sockety. Oproti současné platformě a socketu LGA771 (a případně LGA775 u desktopu) výrazně narostl počet vývodů procesoru (zejména díky integrovanému řadiči paměti). Nejvyšší platforma pro desktopy bude používat socket LGA1366 (pro nejdříve uvedené high-end procesory s jádrem Bloomfield), socket LGA1160 pro střední a nižší třídu procesorů. A příští rok přijde i čistě serverové řešení se socketem LGA1567.
Pohled na architekturu Intel Nehalem Architektura Intel Nehalem staví z velké části na architektuře Intel Core, ale obsahuje řadu vylepšení na úrovni jádra i platformy. Připomeňme si základní rysy Penrynu: 4 instrukční dekodéry, vykonávání instrukcí mimo pořadí, 128bit SSE, SSE4.1 instrukce, techniky zdokonalující práci s pamětí a velice rychlou cache. To se s příchodem Nehalemu mění a současná hierarchie cache byla značně upravena, ačkoliv stále vychází se Smart Cache Penrynu. Bloomfield se skládá z několika bloků: integrovaný řadič paměti IMC, 4x jádro, QPI a v dolní části jsou také velké bloky L3 cache (ačkoliv výrazně menší než u Penrynu). QPI i řadič paměti jsou umístěny mimo jádro, a lze je tak snadno dále rozšířit. Pojďme se teď blíže podívat na změny v jádře. Začneme Front-endem, který slouží k získávání a dekódování instrukcí. Nehalem stejně jako architektura Core zpracovává microOPs, což můžeme přirovnat k nejzákladnějším povelům, na které je každá x86 instrukce rozložena. Nehalem má stejně jako Core architektura 4 instrukční dekodéry (3 jednoduché a jeden komplexní).
Fúzování Makroinstrukcí bylo uvedeno již s rodinou procesorů Intel Core 2 a stejně tak Loop Stream Detector. Nehalem podědil fúzování makroinstrukcí po Core 2 a dále jej rozšiřuje. Při zfúzování makroinstrukcí dochází k dekódování na microOP, jako by se jednalo o jedinou instrukci - to přináší vyšší výkon a vyšší energetickou účinnost. Mimo jiné již také přibylo fúzování i v 64bit režimu (Core 2 umí pouze 32bit). K dalším vylepšením Nehalemu patří detektor cyklů, LSD (Loop Stream Detektor). LSD umožňuje odhalit cyklus v probíhajícím kódu a zabránit tak opakovanému dekódování instrukcí a predikci větvení. LSD tak zvyšuje výkon v průběhu cyklu a na jeho základě také případně vypíná nepotřebnou logiku (podobný systém již také obsahují procesory Intel Core 2). Nehalem se také zaměřuje na lepší predikci větvení a předvídání skoku. Obecně vysoká přesnost předvídání přináší vyšší výkon a nižší spotřebu (omezí se množství chybně vykonaných microOPs). Dalším vylepšením je L2 Branch Predictor. Jak již vyplývá ze změn ve platformách, Nehalem bude mít nejlepší postavení na serverovém trhu (zde má mít L2 Branch Predictor největší dopad na výkon). Současné architektury nemají dostatečnou kapacitu zásobníku (typicky databázové aplikace). Pro dodatečnou predikci je použito
vícestupňové schéma a rozšířen TLB buffer u L1 datové cache na 64 záznamů, TLB L1 instrukční cache na 128 záznamů a L2 TLB buffer na 512 záznamů. Execution Engine jako výkonná část jádra staví na základu procesorů Intel Core 2 procesorů a přidává další vylepšení. Problém dnešních architektur je, že i přes "chytrý" návrh poměrně často nedělají nic. Cílem Nehalemu je udržet výpočetní jednotky v činnosti, a proto jsou zde rozšířeny Load a Store Buffery a Reservation Station (ta dodává informace pro výpočetní část, ukládá a čte data a tak dále). Navýšen je dále paralelismus a zvětšen počet microOPs, které procesor zvládne. Dothan zvládl 64, Merom 96 a u Nehalemu došlo k dalšímu navýšení, na 128 microOPs. Změny navýšení "bufferů" pro instrukce samozřejmě souvisí s tím, že Nehalem opět přináší Multi-Threading, který značně zvyšuje požadavky na přísun dat a více vytěžuje výpočetní jednotky. Dále se podíváme na změny v hierarchii cache, která ačkoliv vychází se Smart Cache Penrynu, v podání Nehalemu dostála řady změn. Zachována zůstala velikost 32 kB L1 instrukční a 32 kB L2 datové cache. Rychlost L1 cache byla oproti jádru Penryn snížena z 3T na 4T. Poměrně zásadní změna se ovšem týká L2, kde byla kapacita snížena na pouhých 256 kB na jádro (takže je 24x menší, pokud nepočítáme Multi-Threading jako "jádro", než má původní L2 cache u Penrynu - toto výrazné snížení kapacity bude mít zřejmě v některých případech značně nepříznivý dopad na výkon). U L2 cache byla alespoň zvýšena její rychlost z 14T u Penrynu, na 10T v případě Nehalemu. Nově je v Nehalemu velká L3 cache sdílená pro všechna jádra. Velikost L3 cache je závislá na počtu jader - pro čtyřjádrovou variantu Nehalemu má kapacitu 8 MB. V budoucnosti, a v závislosti na počtu jader, může dojít k navýšení její kapacity. L3 cache je v Nehalemu inkluzivní, takže data v L1/L2 jsou obsažena také v cache 3. úrovně. L3 cache je poměrně pomalá s dobou přístupu okolo 40T. Cache a její úspěšnost, cache-hit (případně cache-miss) samozřejmě výrazně ovlivňuje výkon. Pokud data nejsou nalezena v L2 ani L3 cache, je třeba prohledat lokální paměť, kde je ovšem řádově větší přístupová doba. Výkon v tomto případě výrazně klesá. Intel preferuje ve svém návrhu inkluzivní cache, takže obsah L1 je obsažen v L2 cache (a L2 je obsažen v L3). Pro srovnání AMD preferuje přístup exkluzivní cache, takže data nejsou v L1 a L2 uložena duplicitně (L3 není ani čistě exkluzivní ani inkluzivní). Následuje příklad práce CPU s exkluzivní a inkluzivní cache. Představme si modelovou situaci, kdy potřebná data požadovaná v jádru 0 nejsou v L1 ani L2 cache, a požadavek na L3 také vygeneruje cache miss. Zatímco v případě exkluzivní cache se bude zjišťovat stav v cache u jader 1 až 3, v případě inkluzivní cache lze rovnou generovat požadavek do RAM. V případě, že nastane cache hit, není již třeba ověřit jádra 1 až 3. U Nehalemu mohou být data v cache u některého z dalších jader, což je řešeno pomocí bitového indikátoru. Pokud L1 nebo L2 nějakého jádra může obsahovat příslušná data, bit je nastaven na indikátoru na "1". Každý bit zde indikuje jednotlivé jádro procesoru a pokud zde není žádný bit nastaven, není třeba jádro ověřovat. V případě nastavení více než jednoho bitu (data při
tomto stavu není nikde možné měnit) lze data přečíst přímo z L3, což omezuje zbytečné prohledávání cache dalších jader. Každá hierarchie cache má samozřejmě svoje výhody, a ačkoliv AMD preferuje exkluzivní cache a Intel naopak inkluzivní, je zřejmé, že velkou roli zde hraje architektura samotného jádra, kapacita a rychlost jednotlivých úrovní cache a také celkový návrh procesoru - kolik má cache zabírat plochy a tak dále. Další z novinek Nehalemu je technologie Simultaneous Multi-Threading (SMT).
Intel Nehalem a další technologie Další technologií, která výrazně zahýbe s výkonem u multithreaded aplikací, je SMT (Simultaneous Multi-Threading). Již Pentia 4 používají jednodušší variantu HyperThreadingu, a efektivně tak využívají nevyužité prostředky. U Hyper-Threadingu se za poměrně nevýrazného zvětšení jádra o přibližně 5 procent podařilo v některých případech navýšit výkon až o 15-30 procent. V duchu zvyšování efektivity procesoru byl tak návrat této technologie poměrně logickým krokem. SMT opět slibuje zvýšení efektivity procesoru a možného nárůstu výkonu o 20-30 procent (podle předběžných testů tato technologie umí skutečně pěkně zahýbat s výkonem). Každé jádro Nehalemu je schopné zpracovávat až dvě vlákna (čtyřjádro tedy zvládne osm threadů). To má přinést větší energetickou účinnost a výkon, zejména v případě multimédií, u databází nebo při silném multitaskingu (běhu více náročnějších aplikací současně).
Efektivnější virtualizace Jak již úvodu zaznělo, velká část vylepšení v Nehalemu zlepšuje výkon a efektivitu zejména pro serverové prostředí a pracovní stanice (a umožňuje efektivní škálování výkonu). Stejně tak je tomu v případě virtualizace. Není žádným tajemstvím, že na jednom hardware je možné provozovat řadu virtuálních serverů, což je efektivní z hlediska nákladů na provoz, spotřebu hardware a klimatizace, a tak dále. Nehalem přináší také nové instrukce, označované SSE4.2, které dále zvyšují výkon (pro zvýšení výkonu pomocí nových instrukcí je ale samozřejmě třeba podpora na úrovni aplikací).
Řízení spotřeby Jak je již uvedeno v úvodu, jeden z hlavních pilířů návrhu architektury Intel Nehalem je efektivní využití elektrické energie a "křemíku". K úspoře elektrické energie se používá řada technik, jako například technologie ESS (Enhanced SpeedStep) nebo CnQ (jako Cool'n'Quiet u AMD), kde dochází ke snižování taktu a použitého napájecího napětí. Na úrovni jádra je ale již dávno používána řada dalších technik, jako je Clock Gating (vypínání neaktivních oblastí procesoru). Novinkou u Nehalemu je Power Gating. Myšlenka je zde taková, že část procesoru, která aktuálně nic nedělá, by také neměla spotřebovávat elektrickou energii. Power Gate umožnuje
efektivně ze systému zcela odpojit neaktivní jádro, a dále tak snížit spotřebu. Intel tento režim označuje C6, a ten je zcela transparentní pro platformu a operační systém. Pro efektivnější správu spotřeby a pro snadné využití technologie "Turbo Mode" byl do Nehalemu přidán mikrokontrolér, Intelem označovaný PCU (Power Control Unit). Nehalem obsahuje řadu senzorů pro zjištění teploty jádra, napětí a proudu a také spotřeby - to poskytuje data pro efektivnější řízení spotřeby, případně použití zmiňovaného turbo módu. Protože by ale bylo složité PCU dělat jen na úrovni hardware v procesoru, vyřešil to speciální mikrokontrolér. Nehalem je díky PCU, což můžeme volně přeložit jako "řídící jednotka spotřeby", schopen velice sofistikovaně řídit dle potřeby napájecí napětí a frekvenci jednotlivých jader. To má poskytovat optimální výkon a udržet spotřebu při zemi. PCU je řízen pomocí firmware (takže lze jeho chování dále ovlivnit) a obsahuje přibližně milión tranzistorů (což z něj dělá složitější čip, než byl původně Intel 486).
Další změnou je také lepší odstupňování snižování napětí a frekvence procesoru pro snížení teploty jádra. Zatímco procesory s architekturou Core sníží napětí a frekvenci na nejnižší možnou úroveň, Bloomfield je schopen tuto změnu jemně krokovat, a nedochází proto k tak výrazným propadům výkonu.
Intel Nehalem a "Turbo Mode" Kromě efektivnějšího řízení spotřeby a možného vypínání jader, se k tématu váže i další technologie, kterou Nehalem bude disponovat - tak zvaný "Turbo mode". Pamětníci jistě vzpomenou na časy "turbo" tlačítka, které před dávnými časy dělalo velice pomalý počítač jen pomalým. Dnes je tato technologie v režii procesoru a oficiálně se nazývá Intel Dynamic Speed Technology - bude umožnovat dle potřeby přetaktovat procesor, respektive zatížené jádro, nad nominální frekvenci. Základní frekvence, ze které je odvozen výsledný takt procesoru (a který u Core architektury představovala FSB), je u Nehalemu 133 MHz. Z této frekvence vychází možné frekvence Core i7 v souvislosti s turbo mode při zatížení, v rámci limitů TDP, a proto může jádro zvýšit
svůj takt nad nominální frekvenci. Přetaktování je možné o 1 - 2 stupně, po 133 MHz krocích, to znamená o 133 až 266 MHz nad základní frekvenci. Podle úvodních taktů Nehalemu 2,66, 2,93 a 3,2 GHz se jedná pouze o drobné navýšení frekvence, a proto od turbo módu nelze čekat zázraky. Každopádně i v případě drobného navýšení frekvence v kombinaci s efektivním řízením spotřeby a možným vypnutím nevyužívaného jádra se jedná o krok kupředu a zlepšení "zadarmo".
Kromě výše zmíněných technologií Nehalem používá 45nm výrobní technologii s High-k a technologií kovových hradel, stejně jako předešlá architektura Intel Core, respektive jádro Penryn. Novinkou je použítí 9. vrstvy měděných mezispojů pro co největší snížení odporu. Technologie Power Gate slouží pro efektivní oddělení a možné vypnutí jádra a snížení spotřeby. Jak dalece se tyto úpravy projeví v praxi, zatím můžeme pouze spekulovat. Ronan Singhal, vedoucí architekt Nehalemu, již také potvrdil osmijádrovou variantu tohoto procesoru. Nehalem s osmi jádry bude uveden v druhé polovině příštího roku pro serverový segment trhu a pracovní stanice. Kromě osmi jader přinese masivní L3 cache o velikosti až 16 / 24 MB, ale také podstatně nižší takty než Bloomfield. TDP se i přesto zřejmě vyšplhá na poměrně monstrózních 150 wattů. Příští rok se také dočkáme Nehalemu vyrobeného 32nm výrobní technologii s jádrem Westmere. Dle Tic-Toc strategie se bude jednat o architekturu Nehalem s řadou menších vylepšení, včetně zlepšení podpory a výkonu virtualizace. Stejně jako v případě jádra Penryn dojde ke snížení spotřeby a zmenšení čipu - jak již opakovaně zaznělo, jádro Nehalem má poměrně velké rozměry, takže "die-shrink" bude ideální krok pro dopilování architektury. Další generace procesorů Sandy Bridge přinese opět novou architekturu, ale to už je poměrně daleko a dostáváme se od zlomové architektury Intel Nehalem. Zdroj: www.svethardware.cz