Čo sa skrýva za označením Intel Merced

V súvislosti s procesormi Intel sa v poslednej dobe hovorí najmä o novinke menom Pentium III, ale na dvere, aj keď nenápa...


V súvislosti s procesormi Intel sa v poslednej dobe hovorí najmä o novinke
menom Pentium III, ale na dvere, aj keď nenápadne, začína klopať Merced. Pred
piatimi rokmi ho začali spoločne vyvíjať firmy Intel a Hewlett-Packard. V tomto
článku sa na procesor Merced pozrieme detailnejšie.
Označení Merced
Merced (pomenovaný podía mesta v Kalifornii) je kódové označenie pre nový
64bitový procesor firmy Intel, ktorý sa v súčasnej dobe vyvíja a bude sa
vyrábať s použitím 0,18mikrónovej technológie. Podía Craiga Barreta, prezidenta
firmy Intel, by sa Merced mal začať skúšobne vyrábať tento rok. Jeho uvedenie
bolo niekoíkokrát odložené, ale dnes je už jeho logický návrh ukončený a
dodávajú sa aj prvé vývojárské sady uíahčujúce prechod na tento procesor.
Začiatok sériovej produkcie je plánovaný na polovicu roku 2000. Merced bude
orientovaný do oblasti výkonných serverov a pracovných staníc.
Na verejnosť už preniklo aj meno jeho následníka. Ide o procesor McKinley,
začne sa vyrábať v druhej polovici roku 2001 a oproti Mercedu by mal mať
dvojnásobný výkon.
Procesor Merced bude prvým z novej 64bitovej generácie procesorov, označovanej
ako IA-64 (Intel 64bit Architecture). Bude to RISCový, alebo CISCový procesor?
Ani jedno, ani druhé. V súvislosti s IA-64 sa zavádza nový, tzv. EPIC koncept.
EPIC, definovaný spoločne firmami Hewlett-Packard a Intel, by sa mal stať novou
technologickou architektúrou, analogickou k RISC a CISC.
IA-64 obsahuje novú 64bitovú inštrukčnú sadu. V oficiálnych prehláseniach
Intelu a HP sa nová inštrukčná sada označuje tiež ako 64bit Instruction Set
Architecture (64bit ISA). Merced by mal byť spätne plne kompatibilný s rodinou
x86 (IA-32, Intel 32bit Architecture).
EPIC
Podía predstaviteíov firiem HP a Intel majú tradičné mikroprocesorové
architektúry základné atribúty, ktoré limitujú ich výkon. K dosiahnutiu
vyššieho výkonu nestačí, aby procesor vykonával inštrukcie rýchlejšie, ale aby
zároveň vykonával niekoíko inštrukcií súčasne (paralelne). Limitujúcimi
faktormi sú vetvy (inštrukcie, ktoré menia tok vykonávania programu) a latencia
pamäte (čas potrebný na získanie informácií z pamäte). EPIC (Explicitly
Parallel Instruction Computing) sa tieto limity snaží prekonať tým, že
paralelizáciu inštrukcií prenáša z hardwaru na software.
Podía Johna Crawforda (Intel) sa EPIC vyznačuje nasledujúcimi vlastnosťami:
veíké množstvo registrov
schopnosť škálovania mnohých funkčných jednotiek predstavitelia HP a Intelu
nazývajú túto vlastnosť "inherentne škálovateíná inštrukčná sada"
paralelizmus je vykonávaný explicitne v strojovom kóde, závislosti medzi
inštrukciami sú nájdené a ošetrené kompilátorom, a nie procesorom
predpovedanie inštrukcie z rozličných vetví podmieneného výroku sú označované
špeciálnymi, tzv. predikčnými registrami, a sú vykonávané súčasne
špekulatívne zavádzanie dáta z pomalej pamäte sa zavádzajú dopredu
Vlastnosti IA-64
Nová architektúra IA-64 je postavená na technológii EPIC. Pri popise jej
vlastností začneme registrami. Inžinieri z Intelu nimi, zdá sa, nešetrili.
Posúďte sami:
128 univerzálnych 64bitových registrov
128 registrov 80bitových, určených pre operácie s pohyblivou desatinnou čiarkou
64 registrov 1bitových, tzv. predikčných (inštrukcia sa vykoná len vtedy, ak je
zvolený predikčný register "pravdivý")
Všetky registre sú viditeíné pre programátora a umožňujú náhodný prístup.
Registrov je naozaj dosť. V porovnaní s Ösmimi univerzálnymi registrami v x86
je 128 veíké číslo. Ale napr. MIPS R10000 (Silicon Graphics) má 64
celočíselných registrov a 64 pre operácie s pohyblivou desatinnou čiarkou.
Inštrukčný formát IA-64
Jedna inštrukcia Mercedu má nasledujúcu štruktúru:
op-kód
predikčný register (6 bitov)
zdrojový register 1 (7 bitov)
zdrojový register 2 (7 bitov)
cieíový register (7 bitov)
špeciálne polia pre celočíselnú a desatinnú aritmetiku
ďalšie polia
IA-64 inštrukcie zabaíuje kompilátor do 128 bitov dlhých zväzkov, kvÖli
rýchlejšiemu spracovaniu. Tento proces sa zvyčajne označuje ako LIW (Long
Instruction Word) kódovanie, ale Intel sa tomu vyhýba a označuje svoju novú
technológiu ako EPIC. Zväzok obsahuje tri IA-64 inštrukcie spolu s tzv.
template, ktorý sem umiestňuje kompilátor. Template indikuje závislosti medzi
inštrukciami, t.j. či je možné inštrukcie zo zväzku vykonávať paralelne, alebo
či sa jedna alebo viacero inštrukcií musí vykonať sériovo kvÖli operandovým
závislostiam.
Template tiež označuje, či je možné zväzok vykonávať paralelne spolu so
susednými zväzkami. V praxi to znamená, že procesor už nebude musieť pracne
analyzovať kód "za behu", aby tak odhaíoval skrytý paralelizmus. Naopak, bude
to kompilátor, ktorý bude rozpoznávať paralelizmus a zapisovať ho do strojového
kódu. Vďaka tomuto postupu by sa mali odstrániť zhruba 30 až 40percentné
spomalenia dosahované u dnešných procesorov práve kvÖli nesprávnym predikáciám.
Všetko nasvedčuje tomu, že sa jedná o vynikajúci koncept, ale ani ten nie je
úplne dokonalý.
Následníci Mercedu síce budú schopní prevádzkovať starší IA-64 software, ale
kým nebudú tieto programy špeciálne pre nich prekompilované, nepobežia zrejme
na plný výkon.
Ďalšou slabinou je veíkosť výsledného kódu IA-64. Ten bude väčší ako RISC kód.
Tri inštrukcie IA-64 majú 128bitovú šírku, kým RISC inštrukcie sú zvyčajne 32
bitov široké to sú štyri inštrukcie v 128 bitoch.
Predpovedanie
Predpovedanie (prediction) je metóda riadenia podmienených vetví. Hlavná idea
tejto metódy spočíva v tom, že kompilátor plánuje simultánne vykonávanie
programových vetiev v procesore. Ak IA-64 kompilátor nájde v zdrojovom kóde
vetvu podmieneného výroku (a analýzou potvrdí, že sa na predikáciu hodí),
označí všetky inštrukcie, reprezentujúce každú časť vetvy, unikátnym
identifikátorom nazývaným predikát. K tomuto účelu má každá inštrukcia
vytvorené špeciálne predikátové pole.
Po označení inštrukcií príslušnými predikátmi kompilátor rozhodne, ktoré
inštrukcie mÖže vykonať procesor paralelne (od kompilátora to bude vyžadovať
dÖkladnú znalosť mikroarchitektúry každého procesora, pretože rÖzne IA-64 čipy
budú disponovať rÖznymi typmi a počtom funkčných jednotiek).
Ak procesor narazí na vetvu počas behu programu, nesnaží sa predpovedať, ktorou
cestou sa bude vetva uberať, ale začne vykonávať kód súbežne pre všetky možné
výsledky vetvy. V určitom momente sa vyhodnotí podmienka a procesor uloží 1 do
predikčného registra, ktorý korešponduje s "pravdivým" cieíom, a 0 do
predikčného registra, ktorý korešponduje s "nepravdivým" cieíom. Pred uložením
výsledkov procesor skontroluje predikčný register každej inštrukcie. Ak
register obsahuje 1, inštrukcia je platná, výsledok sa uloží. Ak register
obsahuje 0, inštrukcia je neplatná, CPU výsledok "zahodí".
V realite nebude možné predikovať všetky vetvy. V takomto prípade sa procesor
typu IA-64 bude správať podobne ako konvenčné procesory, to znamená, že sa
pokúsi predpovedať, ktorou cestou sa bude vetva programu uberať, a pozdíž tejto
vetvy vykoná príslušné inštrukcie.
Špekulatívne zavádzanie dát
Ďalšou kíúčovou vlastnosťou architektúry IA-64 je špekulatívne zavádzanie dát
(speculative
loading). Súčasné procesory sa v niektorých momentoch dostávajú do stavu
nečinnosti (tzv. idle stav), pretože čakajú na dáta z relatívne pomalej pamäte.
Špekulatívne nahrávanie sa zameriava na skrátenie tejto čakacej doby.
Použitím tohto mechanizmu sa kompilátor snaží umiestniť kód na nahrávanie dát z
pamäte čo najviac dopredu, pred operáciu, ktorá bude tieto dáta potrebovať.
Kompilátor vloží tesne pred túto operáciu ešte špeciálnu kontrolnú inštrukciu a
upraví okolité inštrukcie tak, aby sa čo najviac zvýšila schopnosť paralelného
spracovania. Počas behu programu procesor narazí na inštrukciu špekulatívneho
zavádzania a pokúsi sa získať dáta z pamäte.
V niektorých prípadoch sa mÖže stať, že získané dáta sú nesprávne pretože
patria bloku programu mimo aktuálnu vetvu, ktorý sa ešte nevykonal. V takomto
prípade by dnešné procesory ohlásily výnimku, a ak
by program túto výnimku nebol schopný ošetriť, pravdepodobne by sa zrútil.
Avšak IA-64 procesor výnimku bezprostredne nevyvolá, ale potlačí ju až do doby,
kým nenarazí na vyššie spomenutú kontrolnú inštrukciu. Až potom CPU výnimku
ohlási.
Špekulatívne nahrávanie sa veími podobá TRY...EXCEPT
štruktúram v moderných programovacích jazykoch, ale s tým rozdielom, že funguje
na úrovni procesora.
Vnútorná štruktúra procesora Merced
Iba pred niekoíkými mesiacmi zverejnil magazín EE Times prvú detailnú blokovú
schému procesora Merced. Oficiálni predstavitelia Intelu zverejnenú schému
odmietli komentovať.
Základná štruktúra naznačuje výkonnú jednotku pre operácie s pohyblivou
desatinnou čiarkou (FPU Floating Point Unit), čo je v súlade s proklamovaným
cieíom Intelu dosiahnuť s Mercedom výkonnosť porovnateínú s konkurenčnými RISC
obvodmi.
Spolu s veími veíkou FPU, ktorá zaberá značnú časť plochy procesora, disponuje
Merced tradičnými funkčnými blokmi bežnými pre väčšinu procesorov. Jedná sa o
jednotku správy pamäte (MMU Memory Management Unit) a o jednotku pamäťového
rozhrania (MIU Memory Interface Unit). Nachádza sa tu tiež malá časť venovaná
špecifickým aplikačným rozšíreniam (ASE Application Specific Extensions).
Zatiaí nie je celkom jasné, na aký účel budú tieto ASE slúžiť, ale dá sa
predpokladať, že tento blok umožní rÖzne implementácie súvisiace s rozhraniami,
resp. s možnými budúcimi inštrukciami.
Odvolávajúc sa na Intel, Merced bude schopný hardwarovo dekódovať a
prevádzkovať existujúce 32bitové x86 inštrukcie. Táto funkcia bude zrejme
ovládaná blokom označovaným DXU.
Charakteristickým znakom technológie EPIC je schopnosť vykonávať početné
množstvo inštrukcií súčasne. Všetko nasvedčuje tomu, že sa tak deje v logickej
inštrukčnej jednotke LIU. Je to jediný funkčný blok veíkosťou porovnateíný s
FPU. Veía ostatných funkčných blokov zrejme slúži na dodávanie dát a inštrukcií
do LIU. Merced obsahuje aj veíké množstvo registrov na sledovanie výkonu
procesora. Jedná sa napríklad o registre, ktoré sledujú počet inštrukcií
vykonaných za sekundu a počet neúspešných pokusov o čítanie dát z cache.
Registre mÖžu byť monitorované v reálnom čase, bez spomalenia hardwaru a bez
ovplyvnenia momentálne bežiaceho kódu.
Z publikovanej blokovej schémy Mercedu nie je možné vyčítať príliš veía
detailov, pretože sa v nej nachádza viacero nových skratiek, ktoré nie sú
definované v žiadnej oficiálnej publikácii Intelu.
Software pre Merced
Vývoj nového 64bitového procesora Merced vyvoláva zvýšenú aktivitu aj v oblasti
vývoja 64bitových operačných systémov a kompilátorov. Kompilátory vyvíja
Hewlett-Packard, Intel a Microsoft.
IBM pracuje spolu so Sequent Computer Systems a The Santa Cruz Operation na
vývoji UNIXu pre nadchádzajúce generácie procesorov IA-64 (projekt Monterey).
Nedávno sa k ním pripojil aj Compaq (Tru64 UNIX). Sun oznámil, že vyvíja verziu
Solarisu pre Merced. Podobne aj Digital prenáša svoj Digital UNIX na IA-64.
Hewlett-Packard pripravuje pre Merced verziu HP-UX. Pripomeňme si, že HP je
spoluautorom technológie EPIC. Silicon Graphics sa dohodol s Intelom na
portovaní IRIXu na Merced. Novell odhalil svoj plán vyvinúť nový sieťový OS s
kódovým označením Modesto, ktorý by mal byť hybnou pákou IA-64 procesorov a bol
by spätne kompatibilný s NetWare 5.
Nespí ani Microsoft. Ten by chcel UNIXu konkurovať svojou 64bitovou verziou
Windows NT (Win64). Zdá sa teda, že podpora zo strany výrobcov operačných
systémov bude dostatočná, ale to bolo nakoniec vždy silnou stránkou Intelu.
Výkon
Údaje o očakávanom výkone Mercedu sa mierne rozchádzajú. Podía tlačových správ
Intelu Merced dosiahne výkon 3 Gflops v tzv. "extended-precision" operáciách s
pohyblivou desatinnou čiarkou a 6 Gflops v "single-precision" operáciách.
Nový 32bitový procesor Foster bude mať v operáciách s pohyblivou desatinnou
čiarkou výkon zhodný s procesorom Merced. Procesor McKinley, očakávaný nástupca
Mercedu, bude dokonca v 32bitových celočíselných operáciách pomalší ako Foster.
Analytici očakávajú, že Merced bude pracovať na frekvencii zhruba 800 MHz a
jeho výkon bude 45 SPECint95 a 70 SPECfp95. V móde x86 by mal mať Merced
podobný výkon ako 500MHz Pentium III.
Reálnymi súpermi procesora Merced sú Alpha 21264 (pri frekvencii 500 MHz
dosahuje výkon 27,7 SPECint95 a 58,7 SPEC fp95), Sun UltraSPARC-III (35
SPECint95 a 60 SPECfp95 pri frekvencii 600 MHz) a IBM Power3.
Tieto procesory sú už však na rozdiel od Merceda k dispozícii.
Cena
Procesory Merced sa budú predávať za približne 5 000 dolárov za kus. V
porovnaní s 500 až 800 dolármi za dnešné Pentium III sú to veími slušné
peniaze. Najnižšia cena serverov vybavených procesorom Merced bude začínať na
sume zhruba 9 000 dolárov.
64 bitov
Merced bude prvý 64bitový procesor vyvinutý firmou Intel. Úplne prvý 64bitový
procesor bol MIPS R4000, vyrobený v roku 1992. V dnešnej dobe má MIPS R4000
široké využitie v superpočítačoch, serveroch, pracovných staniciach a dokonca
aj v herných konzolách (Nintendo 64).
Ďalšie parametre
Merced sa bude zasúvať do špeciálneho Slotu M riadeného čipovou sadou 82460 GX.
Tento chipset bude podporovať maximálne štyri procesory, 66MHz PCI zbernicu,
maximálnu veíkosť pamäte RAM 64 GB a grafické rozhranie AGP Pro. (Vývoj
vlastných chipsetov, podporujúcich až 32 procesorov IA-64, oznámili aj firmy
HP, Unisys a SGI.) Zbernica bude taktovaná na 200 MHz (pÖvodne sa plánovalo 133
MHz) a dátová priepustnosť bude 3,2 Gb/s. Výkon v 3D grafike bude u Merceda
zhruba 20x vyšší ako u procesoru Pentium Pro a 3x vyšší ako u Tannera (Pentium
III Xeon). Pokiaí ide o pamäť cache, bude sa používať trojúrovňová hierarchia
vyrovnávacej pamäte. Je nutné podotknúť, že okolo týchto detailov vládne ešte
stále veía nejasností.
Nasledovníci
Po Mercede bude koncom roka 2001 nasledovať McKinley. PÖjde o procesor IA-64
druhej generácie. Oproti Mercedu bude mať trikrát širšiu zbernicu, výrazne
väčšiu pamäť cache, dvojnásobný výkon a takt minimálne 1 GHz. V roku 2002
plánuje Intel prechod na medenú technológiu (0,13 mikronov). Po McKinleym príde
Madison a cenovo zaujímavejšia verzia Deerfield, určená pre pracovné stanice a
servery strednej triedy.
Výhody a nevýhody
Architektúra EPIC (Explicitly Parallel Instruction Computing) má rovnaké
principiálne črty ako VLIW (Very Long Instruction Word) nie procesor, ale
kompilátor vykonáva paralelizáciu toku inštrukcií. To prináša určité výhody:
zjednodušuje sa architektúra procesora procesor mÖže disponovať viacerými
registrami a funkčnými jednotkami
procesor nestráca čas analyzovaním kódu
procesor mÖže beztak analyzovať len limitovanú časť kódu, kým kompilátor mÖže
analyzovať celý program
ak sa má program spúšťať opakovane, je lepšie ho paralelizovať raz a poriadne
(počas kompilácie), než to robiť vždy za behu
Prináša to ale aj nevýhody:
kompilátor analyzuje len statický program, ale beh programu sa mÖže výrazne
zmeniť aj malou úpravou vstupných dát
komplexita kompilátora sa drasticky zvýšila, zvýšila sa teda aj doba kompilácie
sú potrebné zložitejšie ladiace nástroje
výkon Mercedu je priamo úmerný kvalite kompilátora; IA-64 kompilátory sa práve
vyvíjajú, ich kvalita zatiaí nie je známa
Záver
Očakáva sa, že v x86 móde dosiahne 800 MHz Merced rýchlosť 500MHz Pentia II.
Starý software pre procesory x86 nebude efektívne využívať Merced. Bude príliš
drahé prevádzkovať DOS alebo Windows na Mercede. Intel posadil Merced do
oblasti vysokovýkonných enterprise serverov a high-level pracovných staníc.
Procesory x86 sa na tieto účely nikdy nepoužívali, takže nie je celkom jasné,
prečo Merced podporuje x86.
Napriek tomu je Merced veími zaujímavý experiment v oblasti VLIW. Objavili sa
síce názory, že Merced bude iba akýmsi "testovacím" procesorom (vzhíadom k
neustálemu odkladaniu jeho uvedenia, ktoré sa momentálne už takmer kryje s
uvedením procesora McKinley), ale Intel tieto fámy popiera a tvrdí, že "Merced
bude komerčný procesor ako ktorýkoívek iný".
A niekoíko faktov na záver. Intel plánuje pokračovať vo vývoji 32bitových
procesorov x86 (IA-32). Ešte tento rok by sa mal na trhu objaviť Coppermine, v
roku 2000 Foster a rok po ňom Willamette. Podobne aj Hewlett-Packard,
spolutvorca technológie EPIC, pokračuje vo vývoji svojich PA-RISC procesorov.
9 2017 / pen

Terminológia
EPIC technológia ďalšej generácie podobne ako RISC a CISC
IA-64 architektúra postavená na technológii EPIC podobne ako IA-32(x86) a
PA-RISC
Merced prvý procesor založený na implementácii IA-64 podobne ako Pentium III
na IA-32

Hlavné prostredia podporované procesormi IA-64
Systémové prostredieAplikačné prostrediePoužitie
IA-32IA-32 inštrukčná sadaIA-32 chránený režim,
reálny režim a virtuálny
8086 režim aplikačného
a OS prostredia.
Kompatibilita s procesormi
IA-32 Pentium, Pentium Pro,
Pentium II, Pentium III.
IA-64IA-32 chránený režimAplikácie chráneného
režimu IA-32
v systémovom prostredí
IA-64, ak sú podporované
operačným systémom.
IA-32 reálny režimAplikácie reálneho režimu
IA-32 v prostredí IA-64,
ak sú podporované OS.
IA-32 virtuálny režimAplikácie virtuálneho
režimu IA-32 v prostredí
IA-64, ak sú podporované OS.
IA-64 inštrukčná sadaIA-64 aplikácie na IA-64
operačných systémoch.

SKRATKY
CISC complex instruction set computer (príkladom CISC procesorov je rodina
procesorov Motorola 680x0 a Intel x86)
RISC reduced instruction set computer (napríklad PowerPC, Digital Alpha, HP
PA-RISC, Sun SPARC, SGI MIPS)
VLIW very long instruction word (tieto procesory nie sú zatiaí veími rozšírené;
známe sú napr. návrhy vysoko výkonných procesorov Elbrus-3 a Dan 2432; výskumy
VLIW prebiehajú od roku 1986 aj u IBM)

IA-32 verzus IA-64
V tabuíke sú zreteíne porovnané kíúčové vlastnosti architektúry
IA-32 (x86) a architektúry IA-64.
IA-32IA-64
Inštrukcie sú komplexné, majú premen-Inštrukcie sú jednoduchšie, majú fixnú
livú dížku a v jednom okamihu sa dížku a do CPU vchádzajú v zväzkoch
vykonáva práve jedna inštrukcia.po troch inštrukciách.
Inštrukčný tok sa reorganizujeReorganizáciu a optimalizáciu inštrukcií
a optimalizuje počas behu programu.vykonáva kompilátor.
Snaha predpovedať, ktorým smeromInštrukcie sú špekulatívne vykonávané
sa bude vetva uberať a špekulatívnepozdíž každej vetvy a následne sú
vykonávať inštrukcie pozdížzahodené nepotrebné výsledky.
predpovedanej vetvy.
Dáta sa presúvajú z pamäte,Dáta sa špekulatívne zavádzajú ešte pred
až keď sú skutočne potrebné a ak satým, než sú skutočne potrebné, pričom
nenachádzajú v pamäti cache.sa najprv prehíadáva cache.









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.