Clipper architektúra

A Clipper architektúra egy 32 bites RISC-szerű utasításkészlet-architektúra, amelyet a Fairchild Semiconductor tervezett. Az architektúra nem ért el komolyabb piaci sikereket, és csak az Intergraph és a High Level Hardware állított elő a Clipper processzorokon alapuló jelentősebb termékvonalakat. Az első, Clipper architektúrát megvalósító processzorokat a Fairchild tervezte és forgalmazta, ám az architektúra fejlesztőrészlegét eladták az Intergraphnak 1987-ben; és az Intergraph cég folytatta a Clipper processzorok fejlesztését, mivel ezeket a saját rendszereikben szándékoztak felhasználni.

Intergraph Clipper C4 (C400) CPU

A Clipper architektúra a korábbi CISC – komplex utasításkészletű – architektúrákhoz képest egyszerűsített utasításkészletet használt, de néhány, a korai RISC processzorokénál összetettebb utasítással is rendelkezett. Ezek az utasítások az úgynevezett makróutasítás-ROM-ban voltak megvalósítva a Clipper processzorban. Ez az elrendezés valamivel magasabb kódsűrűséget tett lehetővé, mint ami más RISC processzoroknál volt megfigyelhető.

VáltozataiSzerkesztés

A Fairchild által gyártott első Clipper mikroprocesszor a C100 jelű modell volt, ami 1986-ban került forgalomba. Ezt követte a gyorsabb C300 az Intergraph-tól, 1988-ban. A Clipper végső modellje a C400-as volt, amely 1990-ben jelent meg; ennek a szerkezetét jelentősen áttervezték a gyorsabb működés érdekében és több lebegőpontos regisztert is kapott. A C400 processzor két kulcsfontosságú architekturális technikát kombinált a magasabb teljesítményszint elérése érdekében — a szuperskalár utasításkibocsátást és a szuperfutószalagos működést.

Az Intergraph elkezdte a következő, C5 jelű Clipper processzorkialakítás fejlesztését, de ezt nem sikerült befejezni, így ebből nem lett késztermék. Mindazonáltal, néhány fejlett processzortervezési technika a C5 fejlesztésből származik, és az Intergraph számos szabadalommal rendelkezik ezek felett. Ezek, az eredeti Clipper processzorok szabadalmaival együtt, különböző szabadalomsértési perek alapjául szolgáltak, amelyeket az Intergraph indított az Intel és más cégek ellen.

Sok más processzorral ellentétben a Clipper processzorok valójában több külön csipből álltak, tulajdonképpen csipkészletek, nem pedig monolitikus, egycsipes processzorok. A C100 és C300 három csipből áll: egy fixpontos és egy lebegőpontos egységet tartalmazó központi feldolgozóegységből és két, egy-egy gyorsítótárat és memóriakezelőt tartalmazó egységből (CAMMU, cache and memory management unit), melyek közül az egyik az adatok, a másik az utasítások kezeléséért felel. A CAMMU-k tartalmazzák a gyorsítótárakat, a címfordító gyorsítótárakat (translation lookaside buffer, TLB), valamint a memóriavédelem és virtuális memória kezelését támogató logikát.

A C400 négy alapegységből áll, amelyek a következők: egy fixpontos CPU, egy FPU, egy MMU, és egy gyorsítótár egység. A csip első változata külön integrált áramkörökbe szervezett CPU és FPU-t tartalmazott, és a MMU és gyorsítótár diszkrét elemekből állt, a későbbi változatokban a MMU-t és a gyorsítótárat már egyetlen CAMMU csipbe integrálták.

Regiszterek és utasításkészletSzerkesztés

A Clipper architektúra regiszterkészlete 16 fixpontos regiszterből (az R15 szolgált a veremmutató céljára), 16 lebegőpontos regiszterből (csak 8 a korai megvalósításokban) és további munkaregiszterekből áll, amelyekhez egy programszámláló, egy processzor-állapotszó (az ALU és FPU állapotjelző bitjeit és a csapda-engedélyező jelzőbiteket tartalmazó belső tár), és a rendszer-állapotszó (a külső megszakítások engedélyezőbitjeit, a felhasználói/felügyelői üzemmód és a címfordítás vezérlőbitjeit tartalmazó tár) tartozik.

A felhasználói és felügyelői üzemmódokhoz külön fixpontos regiszterbankok tartoznak. A megszakításkezelés úgy működik, hogy a processzor elmenti a programszámláló (PC), processzor-állapotszó (PSW) és a rendszer-állapotszó (SSW) tartalmát a verembe, beállítja az új PSW-t és betölti a PC és SSW új értékét a memóriában tárolt csapdavektorból.

A Clipper szintén a RISC processzoroknál alkalmazott load/store architektúrát alkalmazza, és hasonlóan, az aritmetikai műveletekben a közvetlen operandusok csak regiszterek lehetnek. Az alapvető utasítás-„csomag” 16 bites, amelyben 8 bit az opkód (műveleti jelkód), 4 bit a forrásregiszter, és 4 bit a célregiszter jelölésére szolgál. A közvetlen operandusú formák megengedik az 1 vagy 2 egymás után következő utasításcsomagban egy 16 bites (előjelkiterjesztett) vagy 32 bites közvetlen operandus használatát. A processzor egységesen növekvő bájtsorrendű (little-endian), a közvetlen operandusok is ilyen sorrendben vannak tárolva.

Egy speciális „gyors” kódolással 4 bites előjel nélküli operandus használható az összeadás, kivonás, betöltés (a gyors érték regiszterbe mozgatása) és negálás (komplemens érték regiszterbe töltése) műveletekben.

A címzési módok a betöltő/tároló és elágazási utasítások számára a következők; minden címeltolás előjelkiterjesztett:

  • (Rn), d12(Rn), d32(Rn): regiszter-relatív 0, 12 vagy 32 bites eltolással;
  • d16(PC), d32(PC): PC-relatív
  • d16, d32: abszolút címzés
  • [Rx](Rn), [Rx](PC): regiszter- vagy PC-relatív indexelt címzés, az indexregiszter nem skálázott (szorzott)

A szokásos logikai és számtani műveleteken kívül, a processzor támogatja még a következőket:

  • 32×32→32 bites szorzás, osztás és maradék számítás (előjeles és előjel nélküli)
  • 64 bites léptetés és rotálás, páros-páratlan regiszterpárokon,
  • 32×32→64 bites kiterjesztett szorzás,
  • fixpontos regiszter push/pop művelet (verembe helyezés előzetes címcsökkentéssel, kivétel veremből utólagos címnöveléssel)
  • szubrutinhívás (PC verembe mentése, az operandus címének a PC-be írása)
  • visszatérés szubrutinból (PC visszatöltése a veremből)
  • atomi memóriaolvasás és msbit beállítás
  • felügyelői csapda (supervisor trap)

Összetettebb makróutasítások megengedtek:

  • push/pop több fixpontos regiszteren – Rn–R14
  • push/pop több lebegőpontos regiszteren – Dn–D7
  • push/pop felhasználói regisztereken – R0–R15
  • visszatérés megszakításból (pop SSW, PSW és PC)
  • string inicializálás (az R2 R0 számú másolatának tárolása a memóriában, R1 címtől kezdve)
  • karakterek mozgatása és összehasonlítása (R0 a hossz, R1 a forrás, cél az R2-ben)

A legtöbb utasítás megengedi egy tetszőleges veremmutató regiszter használatát, de a felhasználói regiszterek mentésével és visszatöltésével ellentétben a többregiszteres műveletek csak az R15-öt használhatják.

Az Intergraph Clipper rendszerekSzerkesztés

Fájl:Intergraph CLIX workstation.jpg
Egy Intergraph CLIX munkaállomás

Az Intergraph a Clipper rendszerek több generációját forgalmazta, amelyek között megtalálhatók voltak szerverek és munkaállomások is. A forgalmazott rendszerek közé tartoznak az InterAct, InterServe és InterPro termékvonalak, amelyek elsősorban a CAD piacot célozták.

A Fairchild elsősorban a CLIX operációs rendszert igyekezett terjeszteni, amely a UNIX System V egy változata. Az Intergraph adaptálta a CLIX operációs rendszert a Clipper-alapú rendszereihez és folytatta annak fejlesztését; ezekhez a rendszerekhez nem is volt elérhető más operációs rendszer. Az Intergraph dolgozott még a Microsoft Windows NT Clipper rendszerekhez adaptált változatán is és ennek eredményét nyilvánosan be is mutatta, de ezt a fejlesztést leállították még a kibocsájtás előtt.[1] Az Intergraph úgy határozott, hogy nem folytatja tovább a Clipper fejlesztését és e helyett x86-alapú rendszereket kezdett forgalmazni, Windows NT operációs rendszerrel.

JegyzetekSzerkesztés

FordításSzerkesztés

Ez a szócikk részben vagy egészben a Clipper architecture című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel.

ForrásokSzerkesztés

További információkSzerkesztés

Kapcsolódó szócikkekSzerkesztés