Page 2 of 16
Inside Nehalem
Ideja kreiranja procesora koji zahteva značajne softverske optimizacije i modifikacije se pokazala kao neuspešno rešenje, usled činjenice da je programere dosta teško naterati da odstupaju od svojih navika i prilagođavaju se na nešto novo. Shodno tome, razvoj softvera je u velikoj meri sporiji od razvoja hardvera. Već sa Core 2 arhitekturom, Intel je odustao od ideje da softver mora biti maksimalno optimizovan kako bi procesor radio kako treba, već je procesor dizajniran tako da momentalno pruži maksimalne performanse. Sa Nehalem-om se ide još korak dalje sa ovom idejom, pa su tako implementirani noviteti dizajnirani tako da obezbede još brži rad uz minimalnu zavisnost od softverske optimizacije. Jednostavno, sa bilo kojom softverom Nehalem mora ostvariti bolje performanse od svog prethodnika. Glavni stavka oko koje se nalaze svi ostali noviteti je integracija memorijskog kontrolera u jezgro procesora. Tako Nehalem predstavlja prvi Intel procesor koji poseduje integrisani memorijski kontroler, iako nije prošlo mnogo vremena od situacija kada se govorilo da ova stvar i nije toliko neophodna. Ovakav potez definitivno otvara nove mogućnosti kada su performanse u pitanju, ali je i stvar koja se može uraditi samo jednom. Čak se može reći da je integracija memorijskog kontrolera i neka vrsta džokera koja se u datom momentu može jednom upotrebiti. Intel je prvo kreirao Core 2 jezgro koje pruža odličan temelj za nadogradnju, pa je nakon toga krenuo sa upotrebom džokera u vidu integrisanog memorijskog kontrolera.
Pored toga, Nehalem predstavlja i prvi Intel procesor sa pravom „native“ multicore arhitekturom. Ova dva vitalna noviteta čine da osnovna šema kompletne arhitekture u velikoj meri podseća na rešenja koje smo odavno mogli da vidimo kod AMD procesora. Naravno, kako bi se dodatno odskočilo od ove jasne paralele, Intel je u Nehalem, odnosno direktno u osnovno core jezgro implementirao veliku skupinu noviteta i optimizacija. U skladu sa principima koji proizilaze iz upotrebe integrisanog memorijskog kontrolera i „native“ multicore arhitekture, kao i uz već ustaljene Intel prakse, Nehalem poseduje totalno skalarlabilnu arhitekturu, što znači da se vrlo lako mogu kreirati procesori sa 2, 4 ili 8 (ili možda još više) jezgara. Sa ukupno 731 milion tranzistora u trenutnoj QuadCore varijanti, Nehalem logično predstavlja najkompleksniji PC procesor. Tako se Nehalem u osnovi sastoji od četiri jezgra, integrisanog memorijskog kontrolera, dve QPI veze, dve I/O veze i velikog L3 keša.
Samo jedno jezgro je podeljeno na četiri osnovna dela: izvršne jedinice, L1 i L2 keš memorije, BP (Branch Prediction) jedinica, i jedinica za dekodiranje mikrokoda i zajedno se delovima za organizaciju izvršenja instrukcija. L1 keš memorija je jedina koja je ostala ista u odnosu na Core 2 (Penryn), što znači po 32 KB memorije za instrukcije i podatke. Struktura L2 keša je totalno promenjena, pa sada svako jezgro ima poseban L2 keš kapaciteta 256 KB koji ima povećanu asocijativnost i manje kašnjenje (latency) u odnosu na prethodnu generaciju Intel procesora. Kako je pristup L1 i L2 kešu rezervisan za samo jezgro, komunikacija između njih se unutar procesora vrši preko ogromnog L3 keša. Veličina L3 keša će zavisiti od samog modela procesora, gde će Intel verovatno koristiti upravo ovaj kapacitet za manipulaciju i diferenciranje modela. No, u aktuelnoj varijanti sa četiri jezgra nalazi se L3 keš memorija kapaciteta 8 MB kojoj mogu da pristupaju sva četiri jezgra istovremeno. Kod ovog nivoa keša, Intel je primenio „inclusive“ princip, što znači da se svi delovi L1 i L2 keša istovremeno nalazi i u L3 kešu, te da se bilo koja promena upisana u L1 ili L2 momentalno upisuje i u L3 keš. Ukoliko se sećate, svi prethodni dual ili quad core Intel procesori nisu imali mogućnosti direktne komunikacije, jer su dotični procesori kreirani prostim sastavljanjem jezgara na isto parče silicijuma. Tako se kompletna komunikacija između jezgara vršila preko northbridge-a, što je dodavalo na „latency“ u pristupu, i samim tim osetno degradiralo performanse u slučajevima kada je dva ili više jezgra u multi-thread operaciji imaju potrebu za razmenom većeg broja podataka. Sa novom arhitekturom koju ima Nehalm uz primenu velikog zajedničkog L3 keša, osiguran je maksimalno brz pristup i razmena informacija izmešu svakog jezgra, i to bez uplitanja bilo kojih dodatnih faktora. Pored L3 keša, u delu oko četiri jezgra (taj okolni deo Intel naziva „uni-core“) nalazi se I/O kontrolerska logika, i to u dve jedinice, a isto važi i za QPI vezu. QPI (Quick Path Interconnects) u stvari predstavljaju konekciju poput, na primer, HyperTransporta. Pored toga što služi za vezu između procesora i čipseta, QPI služi i za direktnu vezu dva odvojena Nehalem procesora u slučaju serverskih matičnih ploča. Tako aktuelni Nehalem procesori poseduju dve QPI veze, ali je kod verzije namenjenih desktop tržištu aktivan samo jedan. Naravno, ovo je učinjeno kako se ovi procesori ne bi mogli koristiti na serverskim mutli-procesorskim matičnim pločama. Uglavnom, sa QPI konekcijom dobija se mogućnost da dva odvojena procesora međusobno direktno komuniciraju i ostvare NUMA (Non-Uniform Memory Access) pristup memoriji. Naravno, kod ranijih Intel rešenja u celu tu priču morao biti uključen i čipset, dok je sada na raspolaganju mnogo moćnije rešenje. Sama QPI konekcija se sastoji od dva 20bitna linka, gde su 16 bita zadužena za transfer podataka dok su preostala četiri tu za pomoćne svrhe. Preko 16bitnog link, QPI ostvaruje maksimalnu propusnu moć od 12.8 GB/s u svakom pravcu, što rezultuje ukupnim bandwidth-om od 25.6 GB/s. Sama brzina QPI magistrale će Intel-u poslužiti za dodatno diferenciranje Nehalem procesora, jer je moguće smanjiti brzinu magistrale i time malo umanjiti performanse. Tako Core i7-965 Extreme Edition koristi QPI link maksimalne brzine, dok 940 i 920 modeli koriste sporiji 4.8 GT/sec mod.
Naravno, poseban deo priče o „uni-core“ delu Nehalem-a se odnosi na integrisani memorijski kontroler. Kako Intel već odavno forsira upotrebu DDR3 memorije, sasvim je očekivano da integrisani memorijski kontroler kod nove generacije procesora bude prilagođen upravo ovoj vrsti memorije. Iako je DDR2 memorija dosta jeftinija, a da je pri tome u više navrata pokazano da nudi, najblaže rečeno, veoma slične performanse DDR3 memoriji, Intel se odlučio da Nehalem veže za ovaj tip memorije. Naravno, to u praksi znači da neće postojati mogućnosti da se DDR2 memorija koristi sa Nehalem procesorima bez obzira na matičnu ploču ili čipset. Pored noviteta u vidu memorijskog kontrolera inegrisanog u procesor i neophodnost DDR3 memorije, Intel sa novim procesorom uvodi još jedan veoma bitan detalj. Do sada su sada su bila aktuelna „dual-channel“ rešenja, dok sada Nehalem donosi „triple channel“ pojam. Tako novi procesor radi u tro-kanalnom režimu i za to zahteva bar po jedan DDR3 memorijski modul u svakom kanalu na matičnoj ploči. Naravno, moguće je koristiti i samo dva modula i standardni dvo-kanalni režim rada. U ovom slučaju, „memory bandwidth“ pada gotovo tačno za trećinu, tako da triple-channel definitvno radi. Naravno, koliko to procesor može da iskoristi u realnom radu je drugo pitanje.