Aktuality  |  Články  |  Recenze
Doporučení  |  Diskuze
Grafické karty a hry  |  Procesory
Storage a RAM
Monitory  |  Ostatní
Akumulátory, EV
Robotika, AI
Průzkum vesmíru
Digimanie  |  TV Freak  |  Svět mobilně

Intel Core - pohled na architekturu II

3.5.2006, Eagle , článek
Intel Core - pohled na architekturu II
Po včerejším povídáním o dekódování a Out-of-Order zpracování se dnes zaměříme na výpočetní část, práci s pamětí, prefetch, termální management a konečně i na spekulativní vykonávání instrukcí. Věděli jste, že Core je silně zaměřen na multimediální aplikace?
Memory Disambiguation

Snad každý program, který něco počítá, produkuje číselné výsledky. Ty jsou zapisovány do paměti a je s nimi obvykle dále pracováno. Při tom může vzniknout problém zvaný Memory Aliasing. Ten spočívá v tom, že instrukce v programu vyžadují načtení určité části paměti, přičemž některá z instrukcí jí předcházejících má na stejné místo v paměti zapsat výsledek svých výpočtů. Pokud se sejde taková shoda požadavků, není možné načíst data před tím, než předchozí operace zapíše změny (jinak by totiž hrozilo, že se přečtou špatná data).

Hlavním omezením v paralelizaci je zde fakt, že adresa, na níž se mají data zapsat, často není předem známá a musí se vypočítat. V situaci, kdy procesor neví, kam bude předchozí instrukce požadující zápis psát, a má ve frontě instrukci, která má z jisté adresy číst, stojí před rozhodnutím, které často končí tím, že čtení je pozastaveno až do okamžiku, než je adresa zápisu zjištěna, a tak porovnáno, zda nedochází ke konfliktu. To pochopitelně nějaký čas trvá.

Architektura P6, na které jsou založeny procesory Pentium Pro až Core Duo (Yonah), má několik mechanismů, kterými řeší aliasing tak, aby nedošlo k načtení chybných dat:
    • Čtení jsou vždy prováděna až po té, kdy jsou vyhodnoceny adresy zápisů v programu předcházejících.
    • Čtení nemůže předběhnout operaci zápisu, pokud cílí stejnou adresu - toto zabraňuje načtení zastaralých dat.
    • Jedna operace zápisu nemůže předběhnout jinou operaci zápisu - tím se zajistí, že se zapíšou data přesně v tom pořadí, jak určil programátor.
První zmíněný bod vychází z poměrně pesimistického přístupu. Zastaví totiž veškerou činnost až do okamžiku, kdy dosáhne jistoty.



Některé studie chování programů odhalily, že 97 % zápisů a čtení není navzájem aliasováno. Core proto přichází z technologií Memory Disambiguation. Ta se snaží odhadnout, zda dojde k aliasování a, pokud si myslí, že nikoli, provede čtení ještě před zápisem. To může významně zvýšit výpočetní výkon. Pokud se v odhadu splete, musí být již provedené výpočty zahozeny a pipeline znovu naplněna. Je zde tedy, stejně jako v případě odhadu větvení kódu (branch prediction), jistá penalizace. Vzhledem k vysoké pravděpodobnosti má ale tato technika v průměru nezanedbatelný pozitivní přínos.


Teplotní management

Důležitou součástí architektury Core je optimalizace za účelem co nejvyššího výkonu při co nejnižší spotřebě. Procesor není optimalizován čistě na výkon, ale na výkon a zároveň spotřebu. Oba cíle se kupodivu nemusí vylučovat a, jak už dokázalo Pentium M, mohou vést k velmi efektivnímu návrhu.

Core dále rozšiřuje schopnosti Pentia M v tom směru, že vypíná nepoužívané části. Standardní stav je přitom vypnuto, takže přesněji bychom mohli říct, že zapíná ty části, které potřeba jsou.



Napájení je u nové architektury realizováno s velmi jemnými kroky po 0.0125V pomocí sedmibitového VID (Voltage Identification) kódu a to v rozmezí 0.0125V až 1.5000V. To je o stejná přesnost jako u Pentií M (vyjma Core Duo - Yonah) a Pentií 4, avšak s větším rozsahem. Athlon 64 má přesnost o krok horší (0.0250V) a jeho napěťový rozsah také není tak velký - používá totiž pětibitové VID.



Čip využívá tak pokročilý management spotřeby, že dokonce odpojuje jednotlivé datové vodiče. Většina datových spojů je koncipována na 128 bit SSE instrukce. Pokud se ale zpracovávají instrukce s menší datovou šířkou (práce s ALU nebo FPU), zůstanou některé nevyužité. Protože by jen zvyšovaly spotřebu, jsou v takové situaci jednoduše odpojeny.



V mobilním nasazení (tj. u procesoru Merom) se předpokládá použití Power Status Indicator. To je okruh sdělující základní desce, kolik energie čip právě odebírá. Té tato informace umožní řídit napájecí regulátory, na kterých v současnosti dochází k poměrně vysokým energetickým ztrátám (v řádu až desítek procent odběru procesoru). Přestože toto nesníží spotřebu čipu jako takového, může to snížit spotřebu platformy.

Konečně architektura Core implementuje nedávno zmíněný digitální termální senzor, díky kterému bude mít operační systém možnost (pokud tuto podporu implementuje) řídit čip v závislosti na teplotě jednotlivých jader a také s vysokou přesností měření řídit otáčky ventilátorů.

Celý teplotní management směřuje k cíli snížit nejen maximální spotřebu, ale také spotřebu typickou. Není tajemstvím, že většina počítačů stráví často i přes 95 % času nic neděláním. Statická spotřeba je pak určující pro hlukový projev takto nevytížených počítačů a konec konců také pro výdrž notebooků. A právě nová architektura s agresivním power namagementem může v noteboocích, i přes očekávanou vyšší zátěžovou spotřebu 35W procesoru Merom, přinést nižší klidovou a tudíž i reálně nižší průměrnou spotřebu, tj. delší výdrž.