EPIC

S Vikipedije, slobodne enciklopedije

EPIC (engl. Explicitly parallel instruction computing) je termin koji je 1997. skovao Itanium[1] da bi objasnio programsku paradigmu koju su naučnici istraživali još od 1980.[2] Ova paradigma se još naziva Nezavisna arhihektura. To je bila osnova za Intelov i HP-ov razvoj za Intelovu Itanium arhihekturu,[3] i kasnije je HP tvrdio da je "EPIC" bio samo stari termin za Itanijum-ovu arhihekturu.[4] EPIC dozvoljava mikropeocesorima da paralelno izvršava softverske instrukcije koristeći kompilator, pre nego da koristi kompleks kola na-čipu, da bi kontrolisao paralelno izvršenje instrukcija. Ovo je trebalo da omogući jednostavano skaliranje performansi bez pribegavanja višim frekvencijama takta.

Korenje u VLIW[uredi | uredi izvor]

Godine 1989, istraživači u HP-u su priznali da je računar sa smanjenim skupom instrukcija, tj. da je RISC athihektura dostigla limit u jednoj instrukciji po ciklusu. Oni su počeli da istražuju novu arhitekturu, kasnije nazvanu EPIC.[3] Osnova za istraživanje bila je Jako duga reč instrukcije (VLIW), u kojoj su više operacija kodirane u svakoj instrukciji, a zatim obrađene pomoću više izvršnih jedinica.

Jedan od ciljeva EPIC-a bio je da se premesti kompleksnost rasporeda instrukcija iz CPU hardvera u softverski kompajler, koji može da radi statično sa rasporedom instrukcija (uz pomoć traga povratnih informacija). Ovo eliminiše potrebu za kompleksnim rasporedom ciklusa u procesoru, koji oslobađa prostor i energiju za druge funkcije, uključujući i dodatne resurse izvršenja. Podjednako važan cilj bio je da se dodatno iskoristi paralelizam na nivou naredbe (ILP), koristeći kompajler da pronađe i iskoristi dodatne mogućnosti za paralelnu obradu.

VLIW (bar originalna forma) ima nekoliko nedostataka koji ga sprečavaju da postane mejnstrim:

  • VLIW skupovi instrukcija nisu unazad komšatibilni između implementacija. Kada su šire imprementacije (više jedinica izvršenja) ugrađene, skup instrukcija za šire mašine nije unazad kompatibilan sa starijim, užim implementacijama.
  • Učitvanje odgovora iz memorijske hijerarhije koja obuhvata keš centralne procesorske jedinice i DRAM nema determinističko kašnjenje. To čini statički raspored učitavanja instrukcija pomoću kompajlera veoma komplikovanim.

EPIC arhiektura je evoulirala od VLIW arhihekture, zadržavajući mnoge koncepte superskalarne arhihekture.

Dalji korak posle VLIW[uredi | uredi izvor]

EPIC arhihektura dodaje nekoliko osobina kako bi izbegla nedostatke VLIW-a:

  • Svaka grupa od više softverskih instrukcija se zove snop. Svaki od snopova ima stop bit nagoveštaj, ako ovaj skup operacija zavisi od kasnijeg snopa. Sa ovim mogućnostima, buduća implementacija može da se gradi tako da izdaje više paketa paralelno. Informacije zavisnosti se izračunava od strane kompajlera, pa hardver ne mora da izvrši proveru zavisnosti operanda.
  • Dohvat softverskih instrukcija se koristi kao tip prefetch (prethodno denetih podataka - unapred) podatka. Ovaj dohvat povećava šanse za keš pogodak za učitavanje, a može da ukaže na stepen potrebnog vremenskog lokaliteta u različitim nivoima keš memorije.
  • Spekulativna instrukcija učitavanja se koristi za spekulativno učitavanje podataka pre nego što se zna da li će se ono koristiti (zaobilaženjem kontrole zavisnosti), ili da li će ona biti izmenjena pre nego što se koristi (zaobilaženjem zavisnosti podataka).
  • Instrukcija provere učitavanja pomaže spekulativna opterećenja tako što proveri da li spekulativno opterećenje zavisi od kasnijeg skladištenja, i na taj način mora da se ponovo učita.

EPIC arhihektura takođe obuhvata grab-bag od arhitektonskih koncepata da poveća ILP:

  • Iskaz grananja se koristi da se smanji pojavljivanje grana i da se poveća spekulativno izvršavanje instrukcija. U ovoj funkciji, uslovi grana se konvertuju da prikažu registre koji se koriste da ubiju rezultate izvršenih instrukcija od strane grane koja nije uzeta.
  • Odloženi izuzeci, koriste not a thing bit u okviru opšte namene registara, dozvoljavajući spekulativno izvršavanje pored mogućih izuzetaka.
  • Veoma veliki arhitektonski fajl registri izbegavaju potrebu za preimenovanjem registra.
  • Instrujcije grananja koje imaju više puteva poboljšavaju predviđanje grananja kombinovanjem niza alternativnih grana u jedan snop.

Itanium arhihektura isto dodaje preimenovanje registra[4] i registarski prozor, alatku korisnu za softverski pajplajn jer izbegava potrebe za manuelnim odvijanjem petlje i preimenovanjem registara.

Druga istraživanja i razvoj[uredi | uredi izvor]

Bilo je i drugih istraga u EPIC arhitekturi koje nisu direktno vezane za razvoj Itanium-ske arhitekture.

  • Projekat IMPACT na Illinois univerzitetu, koji je predvodio Wen-mei Hwu, bio je izvor mnogih uticajnih istraživanja na ovu temu.
  • PlayDoh arhihektura iz HP-laboratorije je bila još jedan veliki istraživački projekat.
  • Gelato je razvojna zajednica otvorenog izvornog koda u kojoj akademski i komercijalni istraživači rade na razvijanju efikasnijih kompajlera za Linuks aplikacije koje rade na Itaniumovim serverima.

Vidi još[uredi | uredi izvor]

Reference[uredi | uredi izvor]

  1. ^ Schlansker and Rau (2000). „EPIC: An Architecture for Instruction-Level Parallel Processors” (PDF). HP Laboratories Palo Alto, HPL-1999-111. Arhivirano iz originala (PDF) 12. 06. 2012. g. Pristupljeno 8. 5. 2008. 
  2. ^ US 4847755 
  3. ^ a b „Inventing Itanium: How HP Labs Helped Create the Next-Generation Chip Architecture”. HP Labs. 2001. Arhivirano iz originala 04. 03. 2012. g. Pristupljeno 14. 12. 2007. 
  4. ^ a b De Gelas, Johan (9. 11. 2005). „Itanium–Is there light at the end of the tunnel?”. AnandTech. Pristupljeno 8. 5. 2008. 

Spoljašnje veze[uredi | uredi izvor]