RISC processzorok Processzorkategóriák RISC tervezési filozófia Történelmi háttér RISC és CISC processzorok összehasonlítása A CISC jellemzői A RISC jellemzői CISC-RISC processzorok összehasonlítása Utasításkészlet Folyamatok párhuzamosítása Memóriautasítások Elágazások Regisztertárak Fordítóprogram Főbb RISC arhitektúrák
Processzorkategóriák RISC processzorok (Reduced Instruction Set Computer) Csökkentett utasításkészletû, ám rendkívül nagy sebességû processzor, általában speciális illetve nagy számításigényû feladatok megoldására használatos. CISC processzorok (Complex Instruction Set Computer) Összetett utasítás-végrehajtási eljárású processzor. Ilyen processzorok találhatók például a az IBM PC kompatíbilis személyi számítógépekben is. Processzorkategóriák
RISC tervezési filozófia - az alkalmazási terület elemzése a leggyakrabban használt, szükséges elemek meghatározására - az adatútvonalak optimális kialakítása az utasítások lehető leggyorsabb feldolgozása érdekében - további, kevésbé gyakori feladatok megoldására szolgáló utasítások használata csak akkor, ha azok viszonylag gyakoriak, a kidolgozott adatútvonalakhoz illeszkednek és nem lassítják le a gyakoribb utasítások végrehajtását - csak akkor építeni be valamit, ha annak használati gyakorisága indokolja és nem lassítja le a gyakrabban használt erőforrások működését
Történelmi háttér - '60-as évekig egyszerű és kevés számú utasítás, kevés címzésmódot (RISC) - 1964: IBM 360-as gépcsalád - mikroprogramozott műveleti vezérlés - lassú memóriák, gyors ROM(mikroprogram) => memória minél ritkább használata, => bonyolult utasításkészlet - magasszintű programozási nyelvek megjelenése - kialakul a CISC - '70-es évek - gyors RAM, cache => memóriahasználat nem jelent gondot - a bonyolult mikroprogramok lassítják a feldolgozást - felmerül az egyszerüsítés gondolata – el kellene hagyni az egész mikrovezérlő rendszert (RISC alapgondolata) - az elképzelést segíti a jó minőségű fordítóprogramok kifejlesztése
Történelmi háttér - '60 - as évek eleje: CDC 6600, az első RISC jellemzőjű processzor - NCR 8500 - első gyártásba helyezett számítógép - 1978 - IBM 801 - 1980 - U. of Berkeley: RISC I, RISC II - Stanford University: MIPS
A CISC jellemzői -az utasítások bonyolult műveletsor végrehajtását eredményezik és ehhez több gépi ciklust használnak fel -sokféle utasítás(100-300) és címzési mód(8-20) használatának lehetősége pl. az i386/486-os processzornál 111 utasítás, 8 címzési mód -sokféle, tárolót közvetlenül igénybevevő, megcímző utasítás használati lehetősége -mikroprogramozott utasításvégrehajtás; -az utasítások változó hosszúságúak, a gyakrabban használt utasítások rövidebbek (i386/486-osnál 1-17 byte között)
A RISC jellemzői - kevésbé bonyolult utasítások - kevés utasítás(<120-150) és címzési mód(2-4) használata - az utasítások rögzített hosszúságúak - memőriahasználatra csak 2 (LOAD és STORE) utasítás áll rendelkezésre - az utasítások végrehajtásához egy gépi ciklust használnak fel - a ciklusszám csökkentésére utasításpipeline alkalmazása - az utasítások végrehajtásához nincs mikroprogram, az igen bonyolult fordítóprogram állítja elő a végső formát - fordítóprogramok bonyolultsága nagy
CISC-el szembeni előnyök - a processzor egyszerűsödése miatt a fejlesztési ciklus, az új megoldások kidolgozása és megvalósítása lerövidül - kevés, egyszerű szerkezetű utasítás -> dekódolás időtartama csökken - huzalozott műveleti vezérlés -> kevesebb ciklusszám - nagy kapacitású regisztertárak a processzor és a memória közötti adatforgalom csökkentésére - külön utasítás- és adatelérési útvonal; külön adat és utasításcache-tár; - az utasításkészlet feladatorientált, hiányoznak a kevéssé használt funkciók - több hely áll rendelkezésre a chipen
CISC-el szembeni hátrányok - az utasításkészlet kialaítása a felhasználói terület elemzése után alakul ki - az egyszerűbb utasítások miatt a lefordított program hossza nagyobb, mint egy hasonló CISC programhoz tartozó programé - a működéssel kapcsolatos megbízhatósági, védelmi kérdések megoldását a hardver nem segíti, azt szoftver úton kell megvalósítani
Utasításkészlet - a processzor utasításkészlete alatt azoknak az elemi(gépi kódú) utasításoknak az összességét értjük, amelyek végrehajtására a legalsó, hardver szinten a processzor alkalmas - ez az a szint, amelyet egy programozó felhasználhat, illetve, amelyre egy fordítóprogram egy programot lefordít - felmerül annak a kérdése, hogy hogyan érdemes kialakítani egy jó utasításkészletet
Utasításkészlet - utasításfajták gyakorisági sorrendben (csökkenő): adatmozgatás, elágazások, szubrutin és eljáráshívó utasítások, műveleti(aritmetikai, logikai) utasítások - a kevesebb utasítással, címzéssel dolgozó processzorok esetében a vezérlő logika, a dekódoló áramkörök bonyolultsága alacsony => gyorsabb működésűek - a kisebb bonyolultságú utasítások ugyancsak csökkentik az áramkörök bonyolultságát, mennyiségét - a fordítók az egyszerűbb megoldásokat, címzési módokat részesítik előnyben - az utasítások egyszerű feladatot hajtanak végre => feldolgozási útvonalak optimális kialakítása, azonos időtartama - az utasítások azonos hosszúságúak (általában 32 bit), - szóhatáron, 4-el osztható címtől kezdődően helyezkedhetnek el
Folyamatok párhuzmosítása (pipelining) - órajel frekvencia növelés + folyamatok párhuzamosítása = számítógép gyorsulás - párhuzamosítás = folyamatok részfeladatokra bontása, amelyek önálló részek és más-más erőforrást igényelnek - 1. fázis eredménye -> 2. fázis induló adata - Előny: egy-egy folyamat végrehajtási időtartama nem változik, de ugyanannyi idő alatt több folyamat fejezhető be
Folyamatok párhuzmosítása (pipelining)
Folyamatok párhuzmosítása (pipelining) - a folyamatok feldolgozásához tartozó egységek működtetése kétféle módon történhet: 1. Aszinkron ütemezéssel - a feldolgozás továbbhaladása folyamatos az adatcsatornán keresztül 2. Szinkron ütemezéssel - az egyes fokozatok azonos időben kezdik feldolgozási lépéseiket, a feldolgozási folyamat ütemezését mindig a legtöbb időt igénybevevő egység szabja meg
Folyamatok párhuzmosítása (pipelining) RISC processzorokra jellemző szakaszok: - utasítás előkészítése (fetching), amely az utasításcache (I-cache) kiolvasását jelenti - utasítás dekódolása (decoding), a műveleti előírás elemzése, értelemezése - operanduscímek kiszámítása, meghatározása, a regiszter-tartalmak segítségével - operandusok előkészítése az adatcache-ből (D-cache) - művelet végrehajtása (executing), amely még általában további fázisokra bontható - az eredmény visszaírása az adatcache-be (a következő utasítás címének meghatározása)
Folyamatok párhuzmosítása (pipelining) Problémák: - LOAD/STORE utasítások - feltétel nélküli, a feltételes vezérlésátadó (ugró) és ciklusutasítások - megszakítások, kivételek
Memóriautasítások - a pipeline folyamatos működtetésének szervezése szempontjából akadályozó tényező a tárolóhoz fordulás nagyobb időigénye, illetve ha nincs külön utasítás- és adattároló Megoldások: - váróciklusok beiktatása (wait cycle) – nem optimális - késleltetett LOAD utasítás (delayed LOAD)
Elágazások - a pipeline folyamatos működtetésében az elágazások okozzák a legtöbb gondot: - a feltétel teljesülése, az ugrási cím csak akkor lesz ismert, ha az utasítást feldolgoztuk - ha az ugrási címtől kell folytassuk a végrehajtást -> adatcsatorna utastításait törölni kell, visszaállítani az eredeti állapotba
Elágazások Elágazásokat kezelő algoritmusok: 1. alap: folyamatos a pipeline feltöltése, ha elágazási utasítás -> a már betöltött, felesleges utasításokat törli a pipeline-ból és elkezdi feltölteni az elágazás utasításaival 2. leállítás(pipeline freezing) 3. elágazás előrejelezés (branch prediction) 4. utasítássorrend átrendezése 5. pipeline többszörözése
Regisztertárak - a processzor számára egy feladat feldolgozása közben, általában a regiszterek egy része látható csak (ablak) ablakkialakítási technikák: -regiszterbank (register banking) -ablaktechnika(register windowing) -blokktechnika(register blocking)
Fordítóprogramok - CISC -> a program egy „virtuális gép” utasításait tartalmazza - RISC -> valódi gépi program Feltételek, különbségek: - a RISC esetén a megfelelő utasítás kiválasztása könnyebb, mint a CISC-nél - a RISC utasításainak címzési lehetőségei kevesebbek, mint a CISC-é - RISC-nél nincsenek memóriahivatkozású utasítások -> operandusok kezelése leegyszerűsödik - a RISC processzorok regisztertárainak használatát optimizálni kell a RISC - hosszabb a tárgyprogramok méretét - a tárgykódot illeszteni kell a pipeline használatához
Főbb RISC alapú arhitektúrák - MIPS - PlayStation és Nintendo 64 - IBM POWER sorozatok - a Motorola és az IBM PowerPC-je (egy POWER verzió); ezt használja az Apple Macintosh - a Sun SPARC és UltraSPARC processzorai; a legújabb gépeikben kizárólag ezeket használják - a Hewlett-Packard's PA-RISC HP/PA - DEC Alpha - ARM — Palm, Inc. eredetileg CISC (Motorola 680x0) processzort használt, jelenleg RISC (ARM) alapú processzoraikat teszik a palmtopjukba - a Nintendo ARM CPU-t használ a Game Boy Advance és a Nintendo DS rendszereikhez