Intel Core - pohled na architekturu I
2.5.2006, Eagle , článek
![Intel Core - pohled na architekturu I](navstevnost-a-redakce/1/img/website-800.jpg)
Již za několik měsíců se do obchodů dostaví první procesory založené na nové architektuře Intel Core. Čipy Conroe, Merom a Woodcrest znamenají dramatickou změnu ve vývoji. Dnes zahájíme povídání o tom, jak nové procesory fungují a co zajímavého přinesou.
Kapitoly článku:
- Intel Core - pohled na architekturu I
- Dekódování - až pět instrukcí za takt
- Macro-fusion, microOPs fusion
- Out-of-Order zpracování
- Změny v jednotkách
Věnujme se nyní již samotné architektuře Intel Core.
Dekódování
Jednou z nejvíce modifikovaných částí oproti Pentiu M je dekódování (tzv. Front-End). Tato část procesoru se stará o "přivezení" (makro)instrukcí z paměti RAM (resp. z cache) a jejich proměnu na microOPs. microOPs jsou vnitřní "malé instrukce" (nazvěme je povely), které jsou v pipeline "nasypány" přímo do výpočetních jednotek a na jejichž základě procesor provádí výpočty. U velmi starých procesorů (např. 386) dekódování nebylo a jednotky zpracovávaly přímo instrukce programu.
![](intel-core-pohled-na-architekturu-i/13984/img/body-0.3DA.gif)
Každý program se sestává ze sekvence instrukcí
cmp word ptr [esp], 27Fh:
porovnej (cmp = compare) 16 bitů (word) na adrese (ptr = pointer) uložené v registru (esp - označení registru obsahujícího adresu) s hodnotou 27F v hexadecimálním (h) formátu
je: pokud se rovnají, odskoč (jump equal) na adresu 7C901409
Aby bylo možné dosáhnout slušné paralelizace výpočtů, bylo nutné se poměrně komplexních instrukcí (x86, x87...) programu zbavit a zavést jednoduché primitivní malé povely, které byly nazvány microOPs. Dalším z důvodů, proč vznikly microOPs, je, že činí návrh výpočetní jednotky jednodušší. Ta pak může pracovat na vyšších frekvencích. Víc jednotek na vyšších frekvencích odvede minimálně stejně dobrou práci jako jedna složitá jednotka zpracovávající přímo instrukce.
Na paralelizaci dnes stojí celý výkon procesorů. Možnost zpracovávat dvě úlohy najednou prakticky zdvojnásobuje výkon - procesor se pak chová, jako kdyby měl dvojnásobnou frekvenci. Dnešní procesory umí zpracovat paralelně mnoho instrukcí.
Počet microOPs dodaných Front-endem do výpočetní části má velký význam pro celkový výkon čipu. Čím více microOPs za stejný čas přibude, tím více výpočetních úloh je k dispozici a tím může být silnější paralelizace, základní determinanta výkonu.
![](intel-core-pohled-na-architekturu-i/13984/img/body-0.1C4E.gif)
Architektura Core má k dispozici čtyři instrukční dekodéry. Tři jsou určeny pro jednoduché instrukce (např. sečítání, odčítání), které se dekódují do maximálně jedné microOP. Jeden dekodér je určen pro komplexní instrukce, které se přetvoří do až čtyřech microOPs (samozřejmě zvládá i ony jednoduché). Celkově tak dekódování umí dodat do microOP Bufferu (paměťového vyrovnávacího skladu microOPs umístěného ihned za dekodéry) až sedm microOPs za takt.
Komplexní dekodér spolupracuje s microcode sequencer, což je část zodpovědná za dekódovaní instrukcí, které tvoří více než 4 microOPs.
Architektura P6 použitá v Pentiu Pro až Pentiu M se od tohoto konceptu příliš nelišila. Obsahovala totiž také jeden komplexní dekodér (až 4 microOPs), ale jen dva jednoduché dekodéry. Byla tedy schopná dodat do microOPs Bufferu až šest microOPs za takt.
Rozdíly tu ale přeci jenom jsou. Jednoduché dekodéry nyní umí zpracovat i instrukce, které dříve musely procházet dekodérem komplexním. Jedná se především o instrukce pracující s pamětí a SSE instrukce. Pokud se tedy sejde určitá kombinace kódu (např. hodně multimediálně náročná), může být architektura Core až několikanásobně rychlejší než dřívější architektura P6 (vyjma letos uvedeného procesoru Yonah, který něco podobného umí také).
Dekódování
Jednou z nejvíce modifikovaných částí oproti Pentiu M je dekódování (tzv. Front-End). Tato část procesoru se stará o "přivezení" (makro)instrukcí z paměti RAM (resp. z cache) a jejich proměnu na microOPs. microOPs jsou vnitřní "malé instrukce" (nazvěme je povely), které jsou v pipeline "nasypány" přímo do výpočetních jednotek a na jejichž základě procesor provádí výpočty. U velmi starých procesorů (např. 386) dekódování nebylo a jednotky zpracovávaly přímo instrukce programu.
![](intel-core-pohled-na-architekturu-i/13984/img/body-0.3DA.gif)
Každý program se sestává ze sekvence instrukcí
cmp word ptr [esp], 27Fh:
porovnej (cmp = compare) 16 bitů (word) na adrese (ptr = pointer) uložené v registru (esp - označení registru obsahujícího adresu) s hodnotou 27F v hexadecimálním (h) formátu
je: pokud se rovnají, odskoč (jump equal) na adresu 7C901409
Aby bylo možné dosáhnout slušné paralelizace výpočtů, bylo nutné se poměrně komplexních instrukcí (x86, x87...) programu zbavit a zavést jednoduché primitivní malé povely, které byly nazvány microOPs. Dalším z důvodů, proč vznikly microOPs, je, že činí návrh výpočetní jednotky jednodušší. Ta pak může pracovat na vyšších frekvencích. Víc jednotek na vyšších frekvencích odvede minimálně stejně dobrou práci jako jedna složitá jednotka zpracovávající přímo instrukce.
Na paralelizaci dnes stojí celý výkon procesorů. Možnost zpracovávat dvě úlohy najednou prakticky zdvojnásobuje výkon - procesor se pak chová, jako kdyby měl dvojnásobnou frekvenci. Dnešní procesory umí zpracovat paralelně mnoho instrukcí.
Počet microOPs dodaných Front-endem do výpočetní části má velký význam pro celkový výkon čipu. Čím více microOPs za stejný čas přibude, tím více výpočetních úloh je k dispozici a tím může být silnější paralelizace, základní determinanta výkonu.
![](intel-core-pohled-na-architekturu-i/13984/img/body-0.1C4E.gif)
Architektura Core má k dispozici čtyři instrukční dekodéry. Tři jsou určeny pro jednoduché instrukce (např. sečítání, odčítání), které se dekódují do maximálně jedné microOP. Jeden dekodér je určen pro komplexní instrukce, které se přetvoří do až čtyřech microOPs (samozřejmě zvládá i ony jednoduché). Celkově tak dekódování umí dodat do microOP Bufferu (paměťového vyrovnávacího skladu microOPs umístěného ihned za dekodéry) až sedm microOPs za takt.
Komplexní dekodér spolupracuje s microcode sequencer, což je část zodpovědná za dekódovaní instrukcí, které tvoří více než 4 microOPs.
Architektura P6 použitá v Pentiu Pro až Pentiu M se od tohoto konceptu příliš nelišila. Obsahovala totiž také jeden komplexní dekodér (až 4 microOPs), ale jen dva jednoduché dekodéry. Byla tedy schopná dodat do microOPs Bufferu až šest microOPs za takt.
Rozdíly tu ale přeci jenom jsou. Jednoduché dekodéry nyní umí zpracovat i instrukce, které dříve musely procházet dekodérem komplexním. Jedná se především o instrukce pracující s pamětí a SSE instrukce. Pokud se tedy sejde určitá kombinace kódu (např. hodně multimediálně náročná), může být architektura Core až několikanásobně rychlejší než dřívější architektura P6 (vyjma letos uvedeného procesoru Yonah, který něco podobného umí také).