EPIC (mikroprocesszoros architektúra)
Az oldal jelenlegi verzióját még nem ellenőrizték tapasztalt közreműködők, és jelentősen eltérhet a 2016. december 23-án áttekintett
verziótól ; az ellenőrzések 12 szerkesztést igényelnek .
Az EPIC ( angolul explicitly parallel instruction computing – „ számítás gépi utasítások explicit párhuzamosságával ”) a mikroprocesszor-architektúrák egy osztálya , az utasítások kifejezett párhuzamosságával. A kifejezést 1997-ben vezette be a HP és az Intel szövetsége [1] a közelgő Intel Itanium architektúrára [2] . Az EPIC lehetővé teszi a mikroprocesszor számára, hogy párhuzamosan hajtson végre utasításokat a fordítótól származó információk alapján , ahelyett, hogy észlelné az utasítások párhuzamos működésének lehetőségét speciális áramkörök használatával futás közben. Elméletileg ez megkönnyítheti a processzor feldolgozási teljesítményének skálázását az órajel növelése nélkül.
A VLIW eredete
1989-ben a Hewlett-Packard kutatói arra a következtetésre jutottak, hogy a RISC processzor által egy ciklus alatt végrehajtható utasítások száma korlátozott. Megkezdődött a VLIW architektúrán alapuló új architektúra fejlesztése EPIC [2] néven . VLIW architektúra processzorok esetén egy utasítás (egy utasításszó) több műveletet kódol; a műveleteket a processzor különböző végrehajtó egységei egyidejűleg hajtják végre.
EPIC fejlesztési célok:
- az utasításütemező eltávolítása a processzorból ;
- a processzor egyidejű végrehajtására képes utasítások számának növekedése ( angol utasítás szintű párhuzamosság - utasítás párhuzamosság ).
Az utasításütemező egy összetett logikával rendelkező eszköz, amely a processzor része, és az utasítások végrehajtási sorrendjének meghatározására szolgál. Az utasításütemező eltávolítása helyet szabadított fel a processzoron belül más eszközök (például egy ALU ) számára. Az utasításütemező funkciói a fordítóhoz lettek hozzárendelve .
Az utasításpárhuzamosság mértékének növelése a fordító azon képességének felhasználásával érhető el, hogy független utasításokat keressen.
A VLIW architektúrák eredeti formájukban számos hátránnyal rendelkeztek, amelyek megakadályozták tömeges átvételüket:
- A VLIW utasításkészletek nem voltak kompatibilisek a processzorgenerációk között (a több végrehajtási egységet (pl. több ALU - t) tartalmazó processzorra fordított programot kevesebb egységet tartalmazó processzor nem tudta végrehajtani);
- az adatok memóriahierarchiából ( gyorsítótárak , DRAM ) való betöltésének késései nem voltak teljesen kiszámíthatóak (ez miatt bonyolultabbá vált az adatok betöltésére és felhasználására vonatkozó utasítások statikus ütemezésének megvalósítása).
A VLIW evolúciója
Az EPIC architektúra a következő funkciókkal rendelkezik a VLIW hiányosságainak orvoslására:
- A több utasításból álló minden csoportot kötegnek nevezünk . Minden kötegnek lehet stopbitje, ami azt jelzi, hogy a következő csoport ennek az eredményétől függ. Egy ilyen bit lehetővé teszi az építészet jövő generációinak létrehozását, több köteg párhuzamos futtatásának lehetőségével. A függőségi információkat a fordító számítja ki, így a hardvernek nem kell külön ellenőriznie az operandus függetlenségét.
- A szoftver előzetes letöltési utasítása az adatok előzetes letöltésére szolgál . Az előlapozás növeli annak esélyét, hogy a betöltési parancs végrehajtása során az adatok már a gyorsítótárban lesznek . Ebben az utasításban további utasítások is szerepelhetnek az adatok különböző szintű gyorsítótárának kiválasztásához.
- A spekulatív betöltési utasítás az adatok betöltésére szolgál, mielőtt kiderülne, hogy használni fogják-e ( vezérlőfüggőségek megkerülése ), vagy használat előtt megváltoznak ( adatfüggőségek megkerülése ).
- A betöltési utasítások ellenőrzése segíti a spekulatív betöltési utasításokat azáltal, hogy ellenőrzi, hogy a betöltési utasítás függ-e egy későbbi írástól. Ha van ilyen függőség, a spekulatív letöltést meg kell ismételni.
Az EPIC architektúra számos koncepciót ( grab-bag ) is tartalmaz az ILP (Instruction Parallelism) növelésére:
- Az elágazás-előrejelzés az ágak gyakoriságának csökkentésére és az utasítások spekulatív végrehajtásának növelésére szolgál . Ez utóbbi esetben a feltételes elágazást predikátumregiszterek kitöltésére alakítják át, majd mindkét elágazás végrehajtásra kerül. Az elágazás eredményét, amelyet nem kellett volna végrehajtani, a predikátumregiszter értéke törli.
- Elhalasztott kivételek az általános célú regiszterekben található Not a thing bit használatával. Lehetővé teszik a spekulatív végrehajtás folytatását kivételek után is.
- Rendkívül nagy regiszterfájl a regiszterek átnevezésének elkerülése érdekében .
- A több célú elágazási utasítások javítják az elágazás előrejelzését azáltal, hogy több váltakozó ágat egyetlen kötegbe egyesítenek.
Az Itanium architektúra egy forgó regiszterfájlt is hozzáadott [3] , amely a hurkok szoftveres csővezetékeinek egyszerűsítéséhez szükséges ( szoftver pipelining ). Egy ilyen fájlnál nincs szükség a ciklusok kézi letekerésére és a regiszterek kézi átnevezésére [4] .
Egyéb fejlesztések és kutatások
Volt néhány olyan kutatás az EPIC architektúrákkal kapcsolatban, amelyek nem kapcsolódnak az Itanium fejlesztéséhez.
- A Wen-mei Hwu vezette Illinoisi Egyetem Urbana-Champaign IMPACT projektje erősen befolyásolta a későbbi kutatásokat.
- PlayDoh architektúra a HP-labstól.
- Gelato Federation , a fejlesztők közössége, amely jobb fordítóprogramokat fejleszt Linuxhoz Itanium szervereken. ( Gelato Federation )
Lásd még
Jegyzetek
- ↑ Schlansker és Rau EPIC: Architecture for Instruction-Level Parallel Processors (PDF) (hivatkozás nem érhető el) . HP Laboratories Palo Alto, HPL-1999-111 (2000. február). Letöltve: 2008. május 8. Az eredetiből archiválva : 2012. április 27.. (határozatlan)
- ↑ 1 2 Az Itanium feltalálása: Hogyan segített a HP Labs létrehozni a következő generációs chiparchitektúrát (holt link) . HP Labs (2001. június). Letöltve: 2007. december 14. Az eredetiből archiválva : 2012. április 27.. (határozatlan)
- ↑ Modern szerverprocesszorok. 2. rész. Intel Itanium, HP PA8700, Alpha Archiválva : 2012. január 12.
- ↑ De Gelas, Johan Itanium – Van fény az alagút végén? (nem elérhető link) . AnandTech (2005. november 9.). Letöltve: 2008. május 8. Az eredetiből archiválva : 2012. április 27.. (határozatlan)
Linkek