A RISC ( angolul redukált utasításkészletű számítógép [1] - egyszerűsített/kicsinyített utasításkészlettel rendelkező számítógép ) a processzorok tervezésének architekturális megközelítése, amelyben a teljesítményt úgy növelik, hogy az utasításokat kódolják oly módon, hogy a dekódolásuk könnyebb, ill. a végrehajtási idő rövidebb. A korai RISC processzorok utasításkészletei nem is tartalmaztak szorzási és osztási utasításokat. Ezenkívül megkönnyíti a túlhajtást , és hatékonyabbá teszi a szuperskalárt (az utasítások párhuzamosítása több végrehajtási egység között).
A korábbi architektúrák utasításkészletei, hogy megkönnyítsék a programok manuális írását assembly nyelven vagy egyenesen gépi kódba , és hogy a fordítók könnyebben megvalósíthatók legyenek , a lehető legtöbb munkát elvégezték. Nem volt ritka, hogy a készletek utasításokat tartalmaztak a magas szintű nyelvi konstrukciók közvetlen támogatására . Ezen halmazok másik jellemzője, hogy a legtöbb utasítás általában lehetővé tette az összes lehetséges címzési módot (az úgynevezett „ utasításkészlet ortogonalitása ”). Például: mind az operandusok, mind az aritmetikai műveletek eredménye nem csak a regiszterekben , hanem közvetlen címzéssel és közvetlenül a RAM -ban is elérhető . Később az ilyen architektúrákat CISC -nek ( Complex Instruction set Computer ) nevezték el .
Sok fordító azonban nem aknázta ki az ilyen utasításkészletekben rejlő lehetőségeket, és az összetett címzési módszerek sokáig tartanak a viszonylag lassú főmemóriához való további hozzáférés miatt. Megállapítást nyert, hogy az ilyen funkciókat gyorsabban hajtja végre az egyszerűbb gépi utasítások sorozata, ha a processzort leegyszerűsítjük, és nagyobb számú regiszternek van benne hely, aminek köszönhetően a RAM-hoz való hozzáférések száma csökkenthető. Az első RISC-be sorolt architektúrákban a legtöbb dekódolást egyszerűsítő utasítás azonos hosszúságú és hasonló felépítésű, az aritmetikai műveletek csak regiszterekkel működnek, a memóriával végzett munka pedig külön utasításokon keresztül megy az utasítások betöltésére (betöltésére) és mentésére (tárolásra). Ezek a tulajdonságok lehetővé tették a csővezeték szakaszok jobb kiegyensúlyozását , sokkal hatékonyabbá téve a RISC csővezetékeit, és lehetővé tették az órajel frekvenciájának növelését.
Az 1970-es évek közepén különböző kutatók (különösen az IBM -nél ) rájöttek, hogy az utasítások és az ortogonális címzési módszerek legtöbb kombinációját nem használták az akkori fordítók által generált programok többségében. Azt is megállapították, hogy egyes mikrokódarchitektúrákban az egyetlen gépi utasítás által végrehajtott összetett műveletek lassabbak voltak, mint az egyszerűbb műveletek algoritmikusan egyenértékű sorozatai. Ez részben annak volt köszönhető, hogy sok architektúrát sietve fejlesztettek ki, és csak a gyakrabban használt gépi utasítások mikrokódja volt jól optimalizálva. [2]
Mivel sok valódi program ideje nagy részét egyszerű műveletek végrehajtásával tölti, sok kutató úgy döntött, hogy ezeknek a műveleteknek a lehető leggyorsabb elvégzésére összpontosít. A processzor teljesítményét az az idő korlátozza, amelyet a processzor a leglassabb műveletek végrehajtásával tölt az utasítások feldolgozása során. E lépések időtartamának csökkentése általános teljesítményjavulást eredményez, és gyakran felgyorsítja az utasítások végrehajtását a hatékonyabb csővezetékezés miatt. [3] Az egyszerű utasításokra való összpontosítás a RISC architektúrához vezet, amelynek célja, hogy az utasításokat olyan egyszerűvé tegye, hogy könnyen feldolgozhatók legyenek, és folyamatonként legfeljebb egy gépciklust vesznek igénybe magas frekvencián.
Később megállapították, hogy a RISC legjelentősebb jellemzője az adatfeldolgozási és a memóriaelérési utasítások szétválasztása – a memóriához csak a betöltési és tárolási utasításokon keresztül lehet hozzáférni, az összes többi utasítás pedig a processzor hardveres regisztereivel való munkára korlátozódik. Ez leegyszerűsítette a processzor architektúráját:
Ennek eredményeként a RISC architektúrákat informálisan betöltés/tárolás architektúráknak is nevezik . [négy]
A "csökkentett utasításkészlet " szavak gyakran az utasításkészletben lévő utasítások számának minimalizálását jelentik. Valójában sok RISC processzor több gépi utasítással rendelkezik, mint a CISC processzorok . [5] [6] Egyes RISC processzorok, például az transzputerek utasításrendszerei annyi gépi utasítást tartalmaznak, mint például az System / 370 CISC processzorok utasításrendszerei , és fordítva, a DEC CISC processzorok. A PDP-8 csak 8 alapvető utasítást és néhány kiterjesztett utasítást tartalmaz.
Valójában a névben szereplő "csökkentett" kifejezés azt a tényt írja le, hogy az egyes gépi utasítások által elvégzett munka mennyisége (és ideje) csökken - legfeljebb egy memóriaelérési ciklusban -, miközben a CISC processzorok összetett utasításai megkövetelhetik. több száz hozzáférési ciklus. a memóriába a végrehajtásához. [7]
Egyes, kifejezetten az utasítások számának minimalizálására tervezett architektúrák nagyon eltérnek a klasszikus RISC architektúráktól, és különböző neveket kaptak: Minimális utasításkészletű számítógép ( MISC ), Nulla utasításkészletű számítógép ( ZISC ), Ultimate RISC (más néven OISC), Transport triggered architektúra (TTA) stb.
A RISC architektúra megjelenése utáni évek során más alternatívákat is megvalósítottak – például VLIW , MISC , OISC , masszívan párhuzamos feldolgozás , szisztolés tömb ( angol Systolic array ), újrakonfigurálható számítástechnika ( angol Reconfigurable computing ), streaming architektúra .
Az első rendszer, amelyet "RISC" rendszernek nevezhetünk, a " CDC 6600 " szuperszámítógép , amelyet 1964-ben hoztak létre, tíz évvel a kifejezés megalkotása előtt. A CDC 6600 "RISC" architektúrájú, mindössze két címzési móddal ("Regisztráció+Regisztráció" és "Regisztráció+Azonnali") és 74 utasításkóddal (míg a 8086 -nak 400 utasításkódja volt). A CDC 6600 11 aritmetikai és logikai feldolgozó csővezetékkel, valamint öt betöltővel és két tárolóeszközzel rendelkezett. A memória több blokkos volt, így az összes betöltés-tároló eszköz egyszerre tudott működni. Az alap óra/utasítás sebessége 10-szer gyorsabb volt, mint a memóriaelérési idő. Jim Thornton és Seymour Cray , a CDC 6600 tervezői nagy teljesítményű processzort készítettek hozzá, amely lehetővé tette a nagy mennyiségű digitális adat gyors feldolgozását. A főprocesszort tíz egyszerű periféria processzor támogatta, amelyek I/O műveleteket és egyéb operációs rendszer funkciókat hajtottak végre. [8] Később viccelődtek, hogy a "RISC" kifejezés valójában a "Seymour Cray által igazán kitalált " kifejezést jelenti .
Egy másik korai "RISC" architektúra gép az 1968 -ban kifejlesztett " Data General Nova " miniszámítógép.
Az első kísérletet egy "RISC" processzor létrehozására chipen az " IBM " tette 1975-ben. Ez a munka vezetett az " IBM 801 " processzorcsalád létrehozásához, amelyet széles körben használtak különféle IBM eszközökben. A 801-et végül chip formájában adták ki " ROMP " néven 1981-ben. A „ROMP” a „Research OPD (Office Product Division) Micro Processor” rövidítése, azaz „kutatási mikroprocesszor”, amelyet az irodafejlesztési részlegben fejlesztettek ki. Ahogy a neve is sugallja, a processzort "mini" feladatokra tervezték, és amikor az IBM 1986-ban kiadta az erre épülő IBM RT-PC- t , nem működött túl jól. A 801 megjelenését azonban több kutatási projekt követte, amelyek közül az egyik a " POWER " rendszert eredményezte.
A legismertebb RISC-rendszereket azonban a DARPA VLSI program által finanszírozott egyetemi kutatási programok részeként fejlesztették ki.[ pontosítás ]
A RISC projektet az UC Berkeley -ben David Patterson és Carlo Sequina indította el 1980-ban. A kutatás a pipelining alkalmazásán és a regiszterablak technika agresszív használatán alapult . Egy tipikus processzornak kevés regisztere van , és egy program bármikor bármilyen regisztert használhat. Egy regiszterablak technológiát alkalmazó processzornak nagyon sok regisztere van (pl. 128), de a programok csak korlátozott számot használhatnak (pl. egyszerre csak 8-at).
Egy eljárásonként csak nyolc regiszterre korlátozott program nagyon gyors eljáráshívásokat tud végrehajtani: az "ablak" egyszerűen átvált a kívánt eljárás 8 regiszteres blokkjára, majd az eljárásból visszatérve visszavált a hívó regisztereibe. eljárás (hagyományos processzorban a legtöbb eljárás meghívásakor kénytelen menteni néhány regiszter értékét a veremben , hogy ezeket a regisztereket használni lehessen az eljárás végrehajtása során (ha az eljárás visszatér, a regiszterek értékei visszaállítva a veremből).
A RISC projekt 1982-ben készítette el a RISC-I processzort. 44 420 tranzisztor volt benne (összehasonlításképpen: az akkori CISC processzorokban kb. 100 000 volt ). A "RISC-I" csak 32 utasítást tartalmazott, de gyorsabb volt, mint bármely akkori egychipes processzor. Egy évvel később, 1983-ban megjelent a "RISC-II", amely 40 760 tranzisztorból állt, 39 utasítást használt, és háromszor gyorsabban működött, mint a "RISC-I". A Berkeley RISC projekt hatással volt a SPARC és a DEC Alpha RISC processzorcsaládra .
Szinte ugyanebben az időben, 1981-ben John Hennessy elindított egy hasonló projektet a "MIPS architektúra" néven a Stanford Egyetemen . A „MIPS” megalkotója szinte teljesen a pipeline feldolgozásra koncentrált – ebből a technológiából igyekezett „mindent kipréselni”. A pipeline-t más processzorokban is alkalmazták, a MIPS-ben megjelent ötletek egy része lehetővé tette a kifejlesztett processzornak a hasonlóknál sokkal gyorsabb működését. A legfontosabb követelmény ez volt: a processzor bármely utasítása egy órajelet vesz igénybe. Így a csővezeték sokkal gyorsabban tudta továbbítani az adatokat, és a processzor sokkal gyorsabban kezdett dolgozni. Sajnos ennek a követelménynek a kedvéért az olyan hasznos műveletek, mint a szorzás vagy az osztás, kikerültek az utasításkészletből.
A kezdeti években a RISC architektúra fejlesztésére tett kísérletek jól ismertek voltak, de megmaradtak az azokat kiváltó egyetemi kutatólaboratóriumok keretein belül. A számítógépiparban sokan úgy gondolták, hogy a "RISC" processzorok előnyei nem valósulnak meg valódi termékekben az összetett utasítások alacsony memóriahatékonysága miatt. 1986 óta azonban a RISC kutatási projektek megkezdték az első működő termékek előállítását. A stanfordi RISC processzort a MIPS Technologies Rxxxx processzorcsaládjába építették be .
Mint az 1990-es évek elején kiderült, a RISC architektúrák nagyobb teljesítményt tesznek lehetővé, mint a CISC, köszönhetően a szuperskaláris és VLIW -megközelítésnek, valamint az órajel frekvencia jelentős növelésének és a kristály egyszerűsítésének, így a gyorsítótár számára terület szabadul fel. , hatalmas kapacitásokat ér el. Ezenkívül a RISC architektúrák lehetővé tették a processzor energiafogyasztásának nagymértékű csökkentését a tranzisztorok számának csökkentésével.
A RISC architektúrákat eleinte alig fogadta el a piac a hozzájuk tartozó szoftverek hiánya miatt. Ezt a problémát a UNIX-szerű operációs rendszerek ( SunOS ) RISC architektúrákra történő portolásával oldották meg .
Jelenleg sok processzorarchitektúra RISC-szerű, mint például az ARM , a DEC Alpha , a SPARC , az AVR , a MIPS , a POWER és a PowerPC . Az asztali számítógépekben legszélesebb körben használt x86 -os processzorok korábban CISC-processzorok voltak, de az újabb processzorok, kezdve az Intel Pentium Pro -tól (1995), RISC-magos CISC - processzorok [9] . Az x86-os processzorok CISC-utasításait egyszerűbb belső RISC-utasításokká konvertálják közvetlenül a végrehajtás előtt.
Miután az x86 architektúrájú processzorokat szuperskaláris RISC architektúrává alakították át, elmondható, hogy a legtöbb ma létező processzor a RISC architektúrán alapul.
RISC technológiákon alapuló processzorarchitektúrák | |
---|---|
processzortechnológiák | Digitális|||||||||
---|---|---|---|---|---|---|---|---|---|
Építészet | |||||||||
Instruction Set Architecture | |||||||||
gépszó | |||||||||
Párhuzamosság |
| ||||||||
Megvalósítások | |||||||||
Alkatrészek | |||||||||
Energiagazdálkodás |