A mikroprogramozott vezérlés megjelenésének következtében növekedett az utasítások bonyolultsága. Ez azért következett be, mert a ROM-ban elhelyezett mikroprogram végrehajtása gyorsabb, mint a központi tárak által biztosított sebesség, másrészről befolyásolta az összetett utasításkészlet megjelenését a magas szintű programozási nyelvek széleskörű elterjedése is. Történelmileg a számítógépiparban a CISC architektúrájú gépek domináltak.
A piac nyomására, hogy megőrizzék a kompatibilitást, megtartva a régi utasításkészletet, egyre bonyolultabb gépi instrukciókat vezettek be a CPU családokon belül, ahol is a sokféle instrukcióval kényelmes gépi kódú programozás lehetséges, és megfelelő hatékonyságú kódot lehet generálni a magas szintű nyelveken írt programokhoz is. A nagy instrukciókészlet viszont nagy belső mikroprogramtárat igényel.
Újabb felfogás szerint a teljesítmény növelhető redukált instrukciószámú processzorokkal, ahol viszont a hardver és szoftver között sokkal kifinomultabb és igényesebb együttműködés lehetséges. A koncepció statisztikai felmérések alapján merült fel, amikori azt vizsgálták, hogy a szoftverek hogyan használják a processzor erőforrásait.
Kiderült, hogy az egyszerűbb instrukciók túlnyomórészt dominálnak még a CISC architektúrákban is. Hiába implementálták a komplex instrukciókat, azokat ritkán használják. Egy csökkentett utasításkészletű processzor, ami tipikusan 50-80 instrukciót jelent, és amelynél szemben a CISC felépítéssel az instrukciók dekódolására fix logikát alkalmaznak, nagyságrenddel nagyobb ütemezési sebességgel tud dolgozni. Az amúgy is domináló egyszerű instrukciók mellet a felmerülő komplexebb feladatok - kicsivel több kóddal, de optimált fordítással segítve - azért elvégezhetőek maradnak (!!!).
Valószínűleg hosszabb lesz a kód, de a cache memória ezen is segíthet, a háttértároló kapacitás pedig egyre kevesebb gond a fejlődés során. A RISC fejlődést teszi lehetővé az a tény is, hogy a gyorsító memóriák is fejlődnek, a processzor mikrokód helyettesíthető az egyre gyorsabb cache memóriákkal.
A benchmarkok ritkán nyújtanak valós képet. Az igazi megmérettetés maga a feladat, annak implementálása és a teljesítmény egzakt mérése, valós környezetben.
Ezért hoztam példának a 6502-t párhuzamba állítva a zilog z80-as processzorával. Szerintem megfogható a markáns előny a risc jellegű processzor (56 utasítás) javára, szemben a z80 194 utasításával, amely a 6502 órajelének négyszeresén hozza a 6502 teljesítményét, azonos feladat esetén.
Igaz, hogy a z80 ALU-ja csak 4 bites, míg a 6502-é nyolc, de az is sokat elárul, hogy az intel mai processzoraiban már van risc core, a cisc utasítások (legalábbis ezek egy része) fel van bontva risc-ekre még a végrehajtás előtt.
Azt még érdemes megemlíteni, hogy a szerver piac is fregmentált. Ahogy a nagy teljesítményű szerverekre, úgy a kisebbekre (kis terheltségű szolgáltató vagy adat-gyújtő szerverek, dedikált stream szerverek, pont-pont kiszolgálók) is konstans igény mutatkozik már egy jó ideje.
Az, hogy a szerverek piacán az intel alapú procik a keresettebbek, sokkal inkább a rögzült szokásoknak, mintsem az ésszerű, jól átgondolt döntéseknek tudható be. Legalábbis ma még.
My own programming language: http://www.robomax.online