architektura-procesoru-nehalem-2-2
Hardware Článek Architektura procesorů Nehalem (2/2)

Architektura procesorů Nehalem (2/2) | Kapitola 5

Petr Koc

Petr Koc

4. 9. 2008 01:00 71

Seznam kapitol

1. Front-end 2. Dekódování 3. Out-of-order engine 4. Cache subsystém
5. Paměťový subsystém 6. Správa energie 7. Co od Nehalemu čekat?

Nehalem bude první masově nasazovaný procesor Intelu, který bude integrovat řadič pamětí blízko procesoru. Tím ale výčet novinek nekončí. Inženýři se při návrhu zaměřili také na návrh samotné výpočetní části a kompletně předělali také návrh cache subsystému. Pojďme se podívat, v čem budou největší změny samotné architektury procesoru.

Reklama

Přestože paměťový subsystém se týká především pamětí RAM, dovolím si začít už v oblasti cache. Ta je totiž neméně důležitá.



Architektura procesorů Nehalem (2/2)
i Zdroj: PCTuning.cz


Cache je u Nehalemu, stejně jako u ostatních Intel procesorů, organizována jako inklusivní. To znamená, že data obsažená v L1 se musí vyskytovat i v L2 a také v L3. To sice snižuje celkovou velikost uložitelných dat na největší z těchto cache (tj. v případě Nehalemu na 8 MB), na druhou stranu to má určité výhody. Jednou z nich je například to, že v případě cache miss je zajištěno, že data nejsou obsažena v žádném z jiných jader, a proto je rovnou možné přistoupit k paměťovému řadiči a požádat ho o načtení údajů z RAM. Exkluzivní cache obecně, přestože se AMD snaží tvrdit opak, není úplně ideální. Její hlavní nevýhoda spočívá v tom, že cache se chovají jako nepropojené. Pokud je ve velké cache zjištěn cache miss, pak to ještě neznamená, že v některé z lokálních cache jiných jader se příslušná data nenachází. To znamená je všechny projít, což stojí nějaký ten čas navíc. A konečně také v případě, kdy je potřeba vyprázdnit L1 cache (např. kvůli změně procesu), se musí její obsah buďto kompletně zahodit (… což není efektivní v případě, kdy data budou opět brzo potřeba při další změně procesu zpět na původní proces) nebo se musí kompletně uložit do L2 cache, ve které se ale nejdříve musí získat místo zapsáním již nepotřebných dat do RAM. Čekání na zápis dat do RAM pak způsobuje prodlení, které procesor bez pochyby pocítí. Exkluzivní cache tak umožňuje využít více místa, ale na úkor větších nároků na propustnost a potenciálně větších prodlev při výpočtech.



Aby se Nehalem v případě cache hit vypořádal s voláním do všech jader (prováděním cache snoop) efektivně, obsahuje L3 cache „core valid bits“, což jsou bitové indikátory (boolen identifikátory), které říkají, že požadovaná data, jejichž adresa je v L3 zrcadlená, se mohou vyskytovat (potenciálně v nově upravené podobě) také v separátních cache příslušného jádra. Proto nemusí být vyvolány cache snoops na všechna jádra. Pomocí core valid bits se tedy omezují cache snoops na menší počet jader, což šetří propustnost cache. Navíc, pokud core valid bits indikují přítomnost cache line ve více jádrech, pak ani v jednom z nich nemohou být modifikovány a je možné vzít hodnoty přímo z kopie v L3.



Architektura procesorů Nehalem (2/2)
i Zdroj: PCTuning.cz


O přístup k paměti RAM se u Nehalemu stará integrovaný paměťový řadič. Ten je u nejvyšších verzí tříkanálový (3x 64bit, resp. 3x 72bit s ECC). Na kanál je možné osadit dva DIMM, celkem tedy na procesor šest modulů. Podporovány jsou paměti typu DDR3 a to v rychlostech -800, -1066 a -1333, unbuffered a registered. Kapacita na čip může činit až 2 Gbity, což při typických 16 čipech na oboustranný modul dělá celkem 24 GB RAM (na procesor). FB-DIMM podporovány nejsou. K dispozici jsou i RAS vlastnosti, tedy zejména ECC.



Budoucí mainstreamové verze mají mít paměťový řadič dvoukanálový. Je také možné, že se u serverů dočkáme i řadiče čtyřkanálového.



Řadič umí pracovat s až třícestným prokládáním, kde např. první cache line bude na kanálu 0, další cache line na kanálu 1 atd. Jedná se tedy o nezávislé uspořádání, které potenciálně snižuje latence. Podporováno je samozřejmě přeskupování příkazů do vhodného sledu, což by vzhledem k potenciálně lepší spolupráci s CPU mohlo nyní probíhat na propracovanější úrovni. Sloty je možné, stejně jako u současných Intel čipsetů, osadit nestejně velkými moduly (asymetrický dual-channel / asymetrický triple-channel), nejlepšího výkonu je ale samozřejmě dosaženo při osazení symetrickém. Protože je řadič vyráběn společně s procesorem nejnovější výrobní technologií, dá se očekávat, že jeho spotřeba poklesne (současné čipsety Intelu jsou vždy o jednu až dvě výrobní generace za CPU pozadu).



V oblasti prefetchingu došlo k vylepšení hardwarového prefetch, který by nyní měl lépe odpovídat momentálním požadavkům a nezahlcovat RAM spekulativními požadavky v případech, kdy je tato zatížena nespekulací. Podobné techniky omezování funkce prefetcherů měla již architektura Core, nyní ale mají být prefetchery lépe přizpůsobeny a mají plně využívat neobvykle vysoké přenosové rychlosti, která může u high-end desktopů dosáhnout při uvedení až 32 GB/s.


    


Core

Nehalem

L1 datový TLB

16 záznamů, 4-way

64 záznamů, 4-way

L2 unifikovaný TLB

256 záznamů, 4-way

512 záznamů, 4-way


Přeložené virtuální adresy datových lokací jsou v Nehalemu ukládány do zvětšených Translation Look-Aside Bufferů. Zvětšení vyplývá zejména z implementace Hyper-Threadingu, který klade na TLB větší nároky. TLB přítomný u L1 datové cache byl zvětšen z 16 na 64 záznamů (pro 4kB stránky), TLB přítomný u L2 cache byl zvětšen z 256 na 512 záznamů. Asociativita zůstala v obou případech 4-way.



Předchozí
Další
Reklama
Reklama

Komentáře naleznete na konci poslední kapitoly.

Reklama
Reklama