„AMD Am29000” változatai közötti eltérés

[ellenőrzött változat][ellenőrzött változat]
Tartalom törölve Tartalom hozzáadva
Hkbot (vitalap | szerkesztései)
a Bottal végzett egyértelműsítés: MIPS –> Instructions per second#Millió utasítás másodpercenként
5. sor:
 
== Felépítés ==
A 29000 alapját ugyanaz a [[Berkeley RISC]] architektúra képezte, amiből a [[Sun Microsystems|Sun]] [[SPARC]] és az [[Intel]] [[Intel i960|i960]] is kifejlődött. Az összes Berkeley-architektúrából származó kialakításban megtalálható egy, az eljáráshívások kezelésének felgyorsítására szolgáló "trükk"„trükk”, a [[regiszterablak]]ok használata. Az alapelv az, hogy a nagyszámú regisztert veremként lehet használni; a lokális adatokat regiszterekbe töltik a hívásnál, és egyszerűen elhagyják vagy üresnek jelölik azokat a visszatérésnél. Az eljárások a visszatérő adatokat a "globális„globális lapon"lapon” található regiszterekbe írják, ez pl.ami a SPARC architektúrábanarchitektúra esetén a legelső 8 regiszter. Érdekes, hogy a konkurrenskonkurens, a Stanford Egyetem korai RISC megoldásának tervezői is megvizsgálták ezt a koncepciót, de úgy döntöttek, hogy a fejlett fordítóprogramok hatékonyabban ki tudják használni az általános célú regisztereket, mint a 'bedrótozott'„bedrótozott” regiszterablakok, és az eltelt idő során a döntésük helyesnek bizonyult.
 
Az eredeti Berkeley design, a SPARC valamintés az i960 processzoroknál is az ablakok rögzítettkötött méretűek, ami azt jelenti, hogy a regiszterablak nagysága állandó, általában 8 regiszter méretű – pont ez a helyzet pl. Egya SPARC architektúránál. Ekkor egy szubrutin, ami csak egyetlen lokális változót használ, egy SPARC processzorban meghívásakor (mikor is az ablakváltást a hardver intézi, kikerülhetetlenül) továbbra is 8 regisztert foglal le, fölöslegesen pazarolva ezzel az erőforrásokat. A 29000 ebben jelentősen különbözik az elődeitől, mivel változó méretű ablakokat használ. Az előző példa egy 29000-es processzoron csak 2 regisztert használ, egyet a lokális változónak és egyet a visszatérési címnek. Az architektúrában emellett megnövelték a regiszterek számát is, ezéltal a procedurális verem számára 128, globális hozzáférésre további 64 regiszter áll rendelkezésre, szemben pl. a SPARC öszesen 128 regiszterével, amelyből a globális regiszterek száma csak 8. Ezek az adottságok egy "félig okos" fordítóval kombinálva mindkét területen a legjobb eredményt hozták: gyors eljáráshívások és sok globális regiszter az általános feladatokra. A 29000 ráadásul a regiszterablakot kiterjeszti egy memóriában (azaz a cache-ban) helyet foglaló veremterülettel is. Mikor egy ablak betelik, a hívások által felhasznált regisztereket ki lehet írni a memóriába, és a szubrutin végetérésekor szükség szerint visszatölteni.
[[Image:KL AMD 29040.jpg|thumb|AMD 29040]]
Általában elmondható, hogy a 29000 regiszterhasználata lényegesen fejlettebb, mint a konkurrens Berkeley-féle processzoroké.