Professional Documents
Culture Documents
IT150 Projekat 318
IT150 Projekat 318
Sadržaj
Uvod......................................................................................................................................................3
Osnovne karakteristike EPIC arhitekture...........................................................................................4
Osnovne karakteristike procesora Intel IA-64 Itanium 2.......................................................................5
EPIC jezgro procesora Intel IA-64 Itanium 2......................................................................................5
Izvršavanje instrukcija u protočnom sistemu procesora....................................................................6
Blok dijagram.....................................................................................................................................6
Obrada instrukcija.................................................................................................................................7
Pribavljanje i rano pribavljanje instrukcija.........................................................................................7
Predviđanje grananja.........................................................................................................................7
Logika za raspoređivanje instrukcija..................................................................................................8
Izvršavanje instrukcija...........................................................................................................................8
FPU – Jedinica za rad u pokretnom zarezu........................................................................................8
Celobrojna logika...............................................................................................................................9
Registri...............................................................................................................................................9
Registri opšte namene...................................................................................................................9
Registri za operacije u pokretnom zarezu......................................................................................9
Registri predikata...........................................................................................................................9
Registri grananja..........................................................................................................................10
RSE – Register stack engine.............................................................................................................10
Upravljanje..........................................................................................................................................10
Memorijski podsistem.........................................................................................................................10
Koherentnost keša...........................................................................................................................11
IA-32 izvršavanje..............................................................................................................................11
Zastupljenost Intel IA-64 Itanium 2 procesora.................................................................................12
Oblast primene Intel IA-64 Itanium 2 procesora..............................................................................13
Primeri korišćenja Itanum 2 procesora u superkompjuterima....................................................13
Columbia System Facts................................................................................................................13
2
Draško Gajić, Projekat Intel IA-64 Itanium 2
Uvod
Procesor Itanium 2 je druga po redu implementacija Itanium ISA arhitekture. U ovom
mikroprocesoru su upotrebljeni koncepti EPIC (Explicit Parallel Instruction Computing) dizajna, sa
ciljem da se ostvari bolje funkcionisanje i povezanost hardvera i softvera. U ovom načinu dizajna,
interfejs između hardvera i softvera je dizajniran na način koji omogućava da softver koristi sve
informacije koje su mu na raspolaganju tokom kompajliranja i da ih na efikasan način prenese
hardveru.
Takođe, EPIC dizajn omogućava da se prevaziđu neke od pojava koje loše utiču na performanse u
modernim računarima. EPIC konstrukcije pružaju moćnu arhitekturalnu semantiku i omogućavaju
softveru da izvrši širok opseg optimizacija na globalnom nivou , te na taj način omogući da hardver
koristi ILP (paralelizam na nivou instrukcija). Hardver je sa svoje strane projektovan tako da ovaj ILP
iskoristi u punom obimu. Takođe, hardver je u mogućnosti da vrši dinamičke optimizacije tokom faze
izvođenja i na taj način omogući veoma brzo izvršavanje. Ova strategija povećava povezanost
hardvera i softvera pri radu i dovodi do boljih ukupnih performansi.
3
Draško Gajić, Projekat Intel IA-64 Itanium 2
Jezgro mašine je izvršna jedinica, koja je dizajnirana na taj način da obezbedi veliku propusnost koju
EPIC kod sa visokim ILP-om zahteva prilikom spekulativnih i predikatskih operacija.
Kontrola izvršavanja je izvršena sa strukturom koja se naziva ALAT, treba da podrži spekulacije sa
podacima i u saradnji sa hardverom, što više smanji pojavu izuzetaka prilikom spekulativnog
izvršavanja. Hardversko upravljanje spekulacijama je veoma jednostavno:
dodavanje jednog bita na podatke ima za cilj lakše odbacivanje rezultata pogrešne spekulacije.
Operandi se učitavaju u jezgro mašine iz polja registara, koje i za registre opšte namene, i za FP
registre ima podršku za dinamičku dodjelu registara i rotaciju registara. Hardver za upravljanje
registrima je opremljen jedinicom Register Stack Engine koja vrši snimanje i restauriranje sadržaja
registara prilikom prekoračenja opsega u registarskom steku.
Mreža za raspoređivanje instrukcija puni protočni sistem. Ova mreža koristi eksplicitni paralelizam i
skupove instrukcija da bi efikasno dodelila pribavljene instrukcije na ispravne portove, eliminišući
složenu logiku za detekciju međuzavisnosti. Odvojeni sklopovi za pribavljanje instrukcija koriste
napredne tehnike ranog pribavljanja i tehnike za previđanje grananja da bi se osiguralo da
pribavljene instrukcije dođu sa korektne putanje i da se pribave dovoljno rano da se izbjegnu
slučajevi promašaja u kešu. Konačno, lokalnost memorije je iskorištena od strane keš podsistema za
unapređivanje postupaka pri alokaciji i izmeni podataka u kešu, što ima za rezultat bolje iskorišćenje
tri nivoa keša na čipu i veću propusnost memorijskog podsistema.
EPIC osobine omogućavaju softveru da efikasnije razmjenjuje semantičke informacije visokog nivoa
sa hardverom i na taj način eliminiše potrebu za redundantnim hardverom manje efikasnosti i
dovodi do efikasnijeg dizajna. Očigledno je da se u ovakvoj hardverskoj konstrukciji ne nalaze složene
strukture kao drugim procesorima iste namene. Rezervacione stanice, baferi preuređenja, i baferi
uređenja memorije su zamenjeni jednostavnijim hardverom za spekulacije. Tabele aliasa za registre
koje se inače koriste za preimenovanje registara zamenjene su jednostavnijim u semantički bogatijim
4
Draško Gajić, Projekat Intel IA-64 Itanium 2
hardverom za remapiranje registara. Skupa logika za detekciju međuzavisnosti registara eliminisana
je direktivama eksplicitnog paralelizma koje su preračunate od strane softvera.
Korištenjem EPIC konstrukcija, kompajler optimizuje kod u odnosu na mnoge faktore. Ovaj opseg
optimizacija umnogome prevazilazi opseg koji harver vidi u vidu nekoliko stotina instrukcija u sličnim
procesorima. Kao rezultat ovog procesa ima se EPIC mašina u kojoj uska saradnja hardvera i softvera
dovodi do visokih performansi sa većim stepenom ukupne efikasnosti.
5
Draško Gajić, Projekat Intel IA-64 Itanium 2
Izvršavanje instrukcija u protočnom sistemu procesora
Hardver procesora je organizovan u 8-mo stepeni protočni sistem prikazan na sledećoj slici, koji
može paralelno da izvršava do 6 instrukcija.
Prva dva stepena u protočnom sistemu vrše pribavljanje instrukcija i šalju ih u bafer za razdvajanje u
ROT stepenu koji omogućava da front-end deo sistema radi nezavisno od backend dela. Linija
između dva dela protočnog sistema pokazuje tačku razdvajanja.
Raspoređivanje instrukcija i mapiranje registara se obavlja u naredne dve faze, EXP (expand) i REG
(register rename). Pribavljanje operanada se vrši u REG fazi, kada se vrši pristupanje registrima i
podacima posle procesiranja kontrole predikata. Konačno, u poslednja tri stepena se vrši paralelno
izvršavanje nakon kojeg se vrši upravljanje izuzecima i memorisanje rezultata. Specijalno, DET stepen
vrši određivanje grananja, obezbjeđuje podršku za spekulacije i upravlja eventualnim izuzecima
nastalim u komunikaciji sa memorijom.
Blok dijagram
Na narednoj slici prikazan je blok dijagram procesora Itanium 2. Funkcije procesora su podijeljene u
pet grupa, od kojih je svaka detaljno opisana u narednom tekstu.
Obrada instrukcija
Pribavljanje i rano pribavljanje instrukcija
Itanium 2 vrši rano pribavljanje instrukcija iz protočnog keša u bafer za raspoređivanje na osnovu
spekulacija. Pri tome se koristi napredna strategija predviđanja grananja i nagovještaji od strane
kompajlera. Jedinica za sekvenciranje instrukcija vrši pribavljanje instrukcija i njihovo raspoređivanje
na izvršne jedinice. Jedinica za generisanje adrese instrukcije bira naredni IP, koji se bira kao jedna
od: sledeće adrese u sekvenci, statički i dinamički predviđenih adresa grananja, adrese instrukcije
koja je pribavljena od strane logike za kompatibilnost, potvrđene mete grananja, adrese koja vrši
korekciju pogrešnog grananja ili adresa procedure za obradu izuzetaka.
U jednom ciklusu se učitavaju dve grupe instrukcija (od kojih svaka grupa sadrži po 3 instrukcije) iz L1
keša instrukcija (L1I) i smeštaju se u bafere instrukcija. Baferi instrukcija čuvaju grupe instrukcija koje
čekaju da budu raspoređene u izvršne jedinice. Da bi se minimizovali efekti grešaka pogrešnog
predviđanja grananja uzrokovanih promašajima u keš, grupe instrukcija učitane iz bafera instrukcija
se šalju u logiku za dodelu instrukcija u zavisnosti od raspoloživih resursa za izvršavanje.
Predviđanje grananja
Logika za predviđanje grananja koristi napredne šeme predviđanja za određivanje pravac i metu
svakog grananja koje se učitava iz keša instrukcija. Kad god dođe do grananja, meta za grananje će
biti upućena ka logici za određivanje pokazivača instrukcije.
Logika za rano pribavljanje instrukcija služi kao interfejs između L1I i L2 keša. Ona pribavlja
instrukcije iz L2 pre nego što su one potrebne, sa ciljem da se preduhitre promašaji L1I keša.
Rano pribavljanje se vrši pod kontrolom kompajlera. Ako ipak dođe do promašaja u L1i kešu,
zaustavlja se logika za generisanje adrese i vrši se pribavljanje informacija iz L2 keša. Ako se
instrukcija ne nalazi u L2 kešu, nastavlja se sa proverom L3 keša.
7
Draško Gajić, Projekat Intel IA-64 Itanium 2
Bafer instrukcija može da sadrži do 8 grupa instrukcija, i u svakom ciklusu može da prosledi 2 grupe
instrukcija ka logici za raspoređivanje. U opštem slučaju, instrukcije se šalju odgovarajućem portu za
izvršavanje koji je slobodan u datom trenutku.
Izvršavanje instrukcija
Izvršna jedinica se sastoji od 6 jedinica za multimediju, 6 jedinica za rad sa celim brojevima, 2 FP
jedinice, 3 jedinice za grananja i 4 jedinice za učitavanje/upis u memoriju. Itanium 2 ima registre
opšte namene i FP registre koji se koriste tokom obrade. Učitavanja celobrojnih podataka se vrše
preko L1 keša, dok se memorisanja celobrojnih obavljaju pomoću L2 keša.
Učitavanja i memorisanja FP podataka se obavljaju pomoću L2 keša. Kad god se podatak zatraži iz L1
keša, šalje se i spekulativni zahtev u L2 keš.
Jedinice za multimedijalne instrukcije posmatraju 64-bitne podatke kao 2 x 32-bitne, 4 x 16-bitne ili 8
x 8-bitne pakovane podatke. Na pakovanim ili SIMD podacima mogu da se izvršavaju tri klase
aritmetičkih operacija: aritmetičke, operacije pomjeranja ili raspoređivanje podataka. Jedinice za
celobrojne operacje podržavaju do 6 nepakovanih operacija iz klase celobrojne aritmetike ili logičkih
operacija. U svakom ciklusu može se izvršiti do 6 celobrojnih ili multimedijalnih operacija.
8
Draško Gajić, Projekat Intel IA-64 Itanium 2
Celobrojna logika
Šest jedinica za celobrojne operacije izvršavaju instrukcije za 64-bitne aritmetičke, logičke, operacije
pomeranja i manupulacije bitom. Nadalje, one mogu da izvršavaju instrukcije kojima se ubrzavaju
operacije nad 32-bitnim pokazivačima. Ostale operacije uključuju izračunavanje predikata, linearnih
adresa i generisanje statusnih bita za IA-32 jedinicu.
Celobrojna logika se sastoji od 6 ALU opšte namene, te dva porta za učitavanje i dva za memorisanje.
Sve ALU imaju mogućnosti brzog zaobilaženja pojedinih stepeni.
Registri
Jedna od osnovnih karakteristika IA-64 ISA arhitekture je i veliki broj registara. Veliki broj registara
omogućava da se mnoge operacije izvrše bez čitanja iz memorije ili upisa u memoriju. Osnovni skup
registara sastoji se iz:
Registri opšte namene su podeljeni na dva podskupa. Statički registri opšte namene su registri od 0
do 31. Među njima, GR0 je poseban na taj način da uvek kada je referenciran kao operand vraća
vrednost 0, dok pokušaj upisivanja u GR0 dovodi do greške Illegal Operation. Registri opšte namene
od 32 do 127 se nazivaju stacked – magacinski. Oni se stavljaju na raspolaganje programu na taj
način da se formira registarski prozor koji se sastoji od programabilnog broja lokalnih i izlaznih
registara.
Registri predikata
Ovi registri su 1-bitni i ima ih 64. Koriste se za čuvanje rezultata pri operacijama poređenja.
Označavaju se sa PR0 do PR63 i mogu ih koristiti svi programi. Služe za uslovno izvršavanje
instrukcija.
I predikatni registri su podijeljeni u dve grupe. Statički registri predikata su registri od PR0 do PR15,
pri čemu je PR0 uvek “1”, a u njega se ne može vršiti upis. Statički registri predikata se koriste i
prilikom uslovnih grananja.
Registri predikata PR16 do PR63 spadaju u grupu rotirajućih registara predikata. Ovi registri služe kao
podrška prilikom petlji sofrverske protočnosti.
9
Draško Gajić, Projekat Intel IA-64 Itanium 2
Registri grananja
Informacije o grananjima sadržane su u 8 64-bitnih registara grananja. Ovi registri se koriste za
određivanje adrese mete grananja za indirektna grananja. Oni su označeni sa BR0 do BR7, i mogu ih
koristiti svi programi.
Prilikom poziva procedure, toj proceduri se dodjeljuje novi skup registara, bez potrebe da se prazne
registri pozivajuće procedure. Podaci ostaju u ovim registrima sve dok postoji dovoljno registara za
dodjeljivanje. Kada broj potrebnih registara prekorači fizički kapacitet, RSE, koji radi na bazi stanja, će
snimiti u memoriju stanje registara sa ciljem da se oslobode neophodni registri koji su potrebni za
opsluživanje slijedećeg poziva. Na taj način RSE održava privid da postoji beskonačan broj registara.
Prilikom povratka iz procedure, potrebni registri se restauriraju na one vrednosti koje koristi pozivna
procedura. Često se povratak iz procedure desi čak i pre nego što se pojavi potreba za snimanjem
registara, pa tada nije neophodno njihovo snimanje. U slučaju da je RSE snimio neke od registara
pozivne procedure, procesor će pričekati sa povratkom iz pozvane procedure sve dok RSE ne
restaurira odgovarajući broj registara pozivne procedure.
Upravljanje
Upravljačka jedinica se sastoji od kontrole protočnog sistema i logike za obradu izuzetaka –
exception handler. Kontroler protočnog sistema sadrži tabelu stanja-scoreboard, da bi detektovao
zavisnosti između registara i keš za podršku spekulacija sa podacima. Mašina će se zaustaviti samo
onda kada izvorišni - source operandi nisu dostupni. Kontroler protočnog sistema podržava
predikaciju preko registara predikata. Takođe, jedinica za upravljanje protočnim sistemom sadrži
jedinicu za nadgledanje performansi kojom se vrši analiza performansi sistema.
Memorijski podsistem
Glavnoj memoriji sistema se pristupa preko 128-bitne sistemske magistrale, kao na slici.
Sistemska matistrala je transaction-oriented i ona je protočna na isti način kao i glavna magistrala
Itanium 2 procesora. Memorijski podsistem Itanium 2 procesora sastoji se od interfejsa na
magistralu, L1D keša, L2 keša, L3 keša, kontrolera prekida, ALAT i TLB.
10
Draško Gajić, Projekat Intel IA-64 Itanium 2
L1, L2 i L3 keš je neblokirajućeg tipa. Razdvojeni su keš za instrukcije L1I, kapaciteta 16 KB i keš za
podatke L1D, kapaciteta takođe 16 KB. Radi se o set-asocijativnim keš memorijama kojima se
pristupa kao 64-bitnim podacima. Karakteristika L1D keša je da se u njega mogu smeštati samo
celobrojni podaci. L1I keš je potpuno protočan, dok je L1D write-through tipa.
L2 keš je jedinstven, i može sadržati i instrukcije i podatke. Kapacitet mu je 256 KB, i radi se o set-
asocijativnoj memoriji kojoj se pristupa preko linija od 128 bita. L2 keš ima zadatak da, osim
funkcionisanja u slučaju promašaja L1D i L1I keša, se koristi u toku svih FP pristupa memoriji, a
takođe i sve operacije sa semaforima se obrađuju upotrebom L2 keša.
L3 keš ovog mikroprocesora ima kapacitet 1.5 MB ili 3 MB. Radi se o jednoportnom kešu koji je fizički
indeksiran i set asocijativnog tipa.
Integrisani kontroler vanjsih prekida povezan je sa sistemskom magistralom i vrši prem svih vanjskih i
internih prekida preko svoje lokacije mapirane u memoriji.
ALAT (Advanced Load Address Table) je keš struktura koja se koristi za omogućavanje spekulacija sa
podacima u procesoru Itanium 2. ALAT čuva informacije o spekulativnim čitanjima podataka od
strane mašine, te svim upisima podataka koji su povezani sa ovim čitanjima. Ova struktura ima 32
ulaza, i radi se o potpuno asocijativnom polju koja u jednom ciklusu može da obavi 2 učitavanja i 2
upisa.
Itanium 2 ima i dve vrste TLB-ova: TLB za podatke – DTLB i TLB za instrukcije – ITLB.
Oba TLB-a su sa dva nivoa, pri čemu samo L1D keš zavisi i od L1 DTLB i od L2 DTLB.
Smeštanja podataka i zahtevi za L2/L3 kešom su zasnovani samo na saradnji sa L2 DTLB.
DTLB1 vrši translaciju virtuelne u fizičku adresu za transakcije u L1 keš, ima dva porta za čitanje i
jedan za upis, potpuno je asocijativan i ima 32 stavke. DTLB2 vrši translacije virtuelnih adresa u
fizičke za referenciranje podataka tokom snimanja, i vrši proveru zaštite tokom čitanja. Ima 128 ulaza
i takođe je poptuno asocijativan.
ITLB1 je odgovoran za translacije virtuelnih u fizičke adrese prilikom referenciranja instrukcija u L1I
kešu. ITLB2 se koristi prilikom translacija virtuelnih u fizičke adrese prilikom referenciranja memorije
koja promaše ITLB1. Ostale karakteristike za ITLB su slične onima kod DTLB.
Koherentnost keša
Sistem keša sa tri nivoa omogućava postizanje konzistentnosti podataka u različitim nivoima keša.
Svaki pristup memorijskoj adresi koji treba da izvrši čitanje, uvek mora da sa te adrese očita
najažurniji podatak. Pošto je L1 write-through tipa, on mora da ima bit ispravnosti, koji vrši indikaciju
da li je ta linija podatka u kešu validna. Koherencija podataka u L2 i L3 kešu ostvaruje se preko MESI
protokola.
IA-32 izvršavanje
Itanium omogućava izvršavanje IA-32 aplikacija. Ovo uključuje pokretanje IA-32 i Itaniumbaziranih
aplikacija na operativnom sistemu koji je prilagođen Itanium arhitekturi, i u jednoprocesorskoj i u
višeprocesorskoj konfiguraciji. IA-32 izvršna jedinica je dizajnirana na taj način da koristi registre, keš
i resurse za izvršavanje EPIC mašine. Da bi se ostvarile visoke performanse, IA-32 izvršna jedinica vrši
dinamičko raspoređivanje instrukcija.
11
Draško Gajić, Projekat Intel IA-64 Itanium 2
12
Draško Gajić, Projekat Intel IA-64 Itanium 2
Oblast primene Intel IA-64 Itanium 2 procesora
Najveći procenat primene Itanium 2 procesora se koristi u sledećeim oblastima:
Industriji
Istraživanju
Univerzitetima i Akademijama
Državnim službama
System Architecture
304 compute node cabinets
87.24 teraflop/s theoretical peak (Original 10,240 system - 63 Tflop/s)
13
Draško Gajić, Projekat Intel IA-64 Itanium 2
Subsystems
2 Data Life Cycle (DLM) systems
3 front-end nodes
Memory
Type - double data rate synchronous dynamic random access memory (DDR SDRAM)
Per Processor (core) - 2GB
Total Memory - 1,280GB
Interconnects
NUMALink interconnected single-system image compute nodes
Internode
o InfiniBand - 4x (Single Data Rate, Double Data Rate)
o 10Gb Ethernet LAN/WAN interconnect
o 1Gb Ethernet LAN/WAN interconnect
Storage
Online - DataDirect Networks & LSI RAID, 1PB (raw)
o 3 SGI CXFS domains
o Local SGI XFS fileystems
Archival - Attached to high-end computing SGI CXFS SAN filesystem
Operating Environment
Operating system - SUSE Linux Enterprise
Job Scheduler - PBS
Compilers - Intel Fortran, C, SGI MPI
14