„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
Nincs szerkesztési összefoglaló
7. sor:
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”, 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 lapon” található regiszterekbe írják, ami a SPARC architektúra esetén a legelső 8 regiszter. Érdekes, hogy a konkurens, 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” regiszterablakok, és az eltelt idő során a döntésük helyesnek bizonyult.
 
Az eredeti Berkeley design, a SPARC és az i960 processzoroknál is az ablakok kö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. a 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éltalezá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összesen 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 konkurrenskonkurens Berkeley-féle processzoroké.
 
== További jellemzők ==
20. sor:
Az Am29000 egy javított RISC kialakítás, amiben a RISC elveket más architektúrákra jellemző elemekkel kombinálták az elérhető legnagyobb teljesítmény érdekében. A kezdetben 3-, később 2-buszos felépítés a [[Harvard-architektúra]] jellemzőit mutatja.
 
A processzor 4-fokozatú csővezetékkel, 512 bájtos ugrási cím cache-el (''branch target cache'', ''BTC'') és a chipbe integrált memóriakezelő egységgel rendelkezett.<ref name="datasheet"/><ref name="Johansson">Detailed Architectural Survey, Chalmers University, 1990, [http://www.cse.chalmers.se/~roger/research/papers/Detailed%20Architectural%20Survey-1990.pdf], Chapter 2.3, p.33.</ref>
Támogatja a ''little-endian'' és ''big-endian'' bájtsorrendet is, erre egy processzor-jelzőbit értéke szolgál. Adattípusok: 64 bites (duplaszó), 32-, 16- és 8 bites előjeles és előjel nélküli értékek, logikai értékek (''TRUE'', ''FALSE'') valamint az IEEE P754 szerinti lebegőpontos formátumokat támogat. Minden utasítás 32 bites, az utasítások 3 címűek, a végrehajtás csővezetékes. 192 általános célú regisztere van, amelyekből 64 globális, 128 lokális regiszter; a regiszterek címzése így megoldható 8 biten, és a 32 bites utasítások így 3 regisztert is képesek megcímezni. A lokális regisztertömböt hívási [[verem (számítástechnika)|verem]]ként lehet használni. Az általános regiszterek mellett a 29K processzoroknak nagyszámú speciális regisztere is van.
A címezhető virtuális tárterület 4 GB.
27. sor:
 
== A processzorcsalád tagjai ==
Az első 29000-es processzor 1997-ben készült el.<ref name="mann"> {{cite book |last = Daniel |first = Mann |authorlink = Mann, Daniel |title = Evaluating and Programming the 29K RISC Family |publisher = [[Advanced Micro Devices]] |place = |date = 1995 | pages = 7 |isbn = }} Chapter 1.3, page 7.: ''It was the first member of the family, introduced in 1987.''</ref> Ebben volt [[MMU|memóriakezelő egység ''(MMU)'']], de a lebegőpontos számításokat egy külső [[lebegőpontos koprocesszor]] végezte, az '''Am29027'''.
 
Az '''Am29005''' egy csökkentett teljesítményű és olcsóbb modell volt, 16 MHz-es órajellel; nem volt benne pl. utasítás-cache és csipre integrált MMU.
43. sor:
 
A 29K család tagjai:
* Am29000 – "''Streamlined Instruction Microprocessor''", alapmodell, 3 buszos
* Am29005 – kisebb teljesítményű, olcsóbb modell, 16 MHz-es órajellel, 3 buszos
 
* Am29027 – aritmetikai koprocesszor
52. sor:
* Am29040 – RISC mikroprocesszor, 8 kB utasítás- és 4 kB adat-cache, 2 buszos<ref>Am29040 datasheet, http://datasheets.chipdb.org/AMD/29K/040_ds.pdf</ref>
 
* Am29050 – "''Streamlined Instruction Microprocessor''", csipre integrált aritmetikai egységgel, 3 buszos
* Am29200 – egycsipes 32 bites RISC [[mikrokontroller]]
* Am29205 – RISC mikrokontroller 16 bites külső interfésszel