RISC

Allikas: Vikipeedia
Disambig gray.svg  See artikkel räägib mikroprotsessorist; RISC nimetuse all on tuntud ka RNA-indutseeritud geenivaigistamiskompleks.

Kärbitud käsustikuga arvuti (ingl reduced instruction set computer, RISC) on mikroprotsessor, mis on loodud selliselt, et ta sooritaks väiksema arvu käskluseid saavutamaks suuremat töökiirust. Käskluste täitmise kiirust mõõdetakse MIPS-ides, mis näitab mitu miljonit operatsiooni sekundis sooritatakse (MIPS - millions of instructions per second). Seda kõike väga lihtsal põhjusel: iga lisanduv käskluse tüüp mida arvuti sooritab, nõuab rohkem transistoreid ja suuremat ja keerulisemat protsessorit. Suurem hulk käskluste tüüpe ja arve muudavad mikroprotsessori suuremaks, keerulisemaks, aeglasemaks ning ka kallimaks.

Kärbitud (reduced) ei viita ebavajalike käskluste kustutamisele, vaid ühe käsu täitmise aja kiirendamisele. Kõige tavalisemalt teostatakse see ühe suure ja mahuka operatsiooni jagamisega mitmeks osaks (RISC protsessori puhul neljaks) ja iga taktiga täitetakse üks operatsioon, erinevalt CISC protsessorist, kus mahukas operatsioon sooritatakse ühe korraga.

Ajalugu[muuda | redigeeri lähteteksti]

RISC-i põhiprintsiip sai alguse 1974. aastal, kui John Cocke IBM-i Yorktowni uurimisasutusest tõestas, et 20% käsklustest sooritasid 80% arvuti tööst. Esimene RISC arvuti loodi juba kümme aastat enne termini välja mõtlemist. CDC 6600 superarvuti, mis põhines 'lae/salvesta arhitektuuril', mida on ka alternatiivina pakutud RISC arhitektuuri nime asemel. 1975. aastal alustas IBM tööd esimese RISC protsessori väljaarendamiseks, mille tulemusel loodi IBM 801 protsessorite seeria.

Arvutite kiiremaks muutumisele aitas RISC tehnoloogia kaasa sellega, et protsessori käsklustele tehti kvantitatiivne analüüs ja eemaldati protsessori käsustikust harva vajaminevad käsklused ning need käsud emuleeriti tarkvaraliselt. Selle eelised on:

  • Kiibis tühjaks jäänud "ala" saab kasutada enamkasutatavate käskluste kiirendamiseks ja see annab suurema kiiruse isegi koos tarkvaras emuleeritud käskluste täitmise suurema ajakuluga.
  • Protsessori disaini optimeerimine muutus lihtsamaks.
  • See lubab protsessoritel kasutada tehnikaid, mis varasemalt olid võimatud.
  • Lihtsustab tõlkimist kõrgematest programmeerimiskeeltest – kiiremad programmid.

RISC arhitektuuri algusaastatel tehti ka ainult RISC käsustikul põhinevaid süsteeme, näiteks: DEC Alpha, AMD 29k, ARC, ARM, Atmel AVR, Blackfin, MIPS, PA-RISC, Power (kaasa arvatud PowerPC), SuperH, ja SPARC.

CISC ja RISC[muuda | redigeeri lähteteksti]

On kaks erinevat suunda protsessorite instruktsioonide kodeerimiseks:

  • CISC - (Complex Instruction Set Computer) selline protsessor võib ühe instruktsiooni raames teha mitu erinevat mikrooperatsiooni. CISC protsessorile kirjutatud programmid on mahult väiksemad ning ühtlasi on neid masinkoodis ka suhteliselt lihtne kirjutada.[viide?]
  • RISC - (Reduced Instruction Set Computer) protsessor töötab üksnes võimalikult lihtsate mikrooperatsioonidega. RISC protsessorile kirjutatud programmid vajavad rohkem mälu, sest kõik mikrooperatsioonid tuleb eraldi kirja panna. Ühtlasi on selliseid programme masinkoodis ka raskem kirjutada kui CISC-le. RISC protsessor saab käskluste täitmisega kiiremini hakkama, kuna ei pea erinevalt CISC protsessorist teostama mikrokoodi konverteerimist.
RISC CISC
Lihtsam käsustik Palju keerulisi käskluseid
Vähem käskluseid Erineva pikkusega käsklused
Kindla pikkusega käsklused Keeruline mikrokood
Keeruline kompileerija Paljud käsklused pääsevad ligi mälule
Ainult 'Lae/Salvesta' käsklused pääsevad ligi mälule Palju erinevaid adresseerimise viise
Vähe adresseerimise viise

CISC tüüpi protsessorid on sama kiired kui RISC tüüpi protsessorid. Kui arvestada energiakulu (MIPS/W) siis on RISC tüübi protsessori jõudlus on vati kohta suurem CISC tüüpi protsessorist. Arvutite algusajal ei olnud olemas veel kompilaatoreid, kõik programmid tuli kirjutada otse masinkoodi või assembleri abil ja seetõttu oli lihtsam kirjutada programme CISC tüüpi protsessorile, sest protsessorile ei pidanud andma mikrokäsklusi, samas käskluste arv CISC protsessoris oli suurem.

RISC ja x86[muuda | redigeeri lähteteksti]

Vaatamata RISC platvormi suurele edule on Inteli x86 arhitektuur jäänud käesoleval hetkel domineerima.

Selle põhiliseks põhjuseks on:

  • Enamik rakendusi on kirjutatud või kompileeritud x86 koodile, ühelgi RISC arhitektuuril sellist standardset alust pole, ehk siis ARM-ile kirjutatud kood SPARC protsessoril ei jookse, x86 puhul taolist ühilduvuse probleemi ei ole.
  • Kuigi RISC protsessorid olid juba edukad ning võrdlemisi odavad, siis Intelil oli selleks ajaks juba suur turuosa ja rohkem ressursse arenduseks. Cyrix-il ja AMD-l sellist võimalust ei olnud, kuid nad taipasid kasutada RISC-i pipeline ülesehitust ja kasutada seda x86 arhitektuuri puhul.
  • Võimsamad x86 protsessorid nagu P6, Pentium 4 ning K6 ja K7 kasutasid dünaamilist puhverdamist ja ajastamise põhimõtteid ning realiseerisid mitme vaba mikrokoodi jada käivitamise, mis oli tehtud mitme paralleelse x86 dekodeerimise etapist.

Üks käsklus tsükli kohta[muuda | redigeeri lähteteksti]

RISC arvutite ülimaks sihiks oli üks käsklus iga tsükli kohta (Clock Cycles per Instruction). Reaalsuses seda veel saavutatud pole, heaks saavutuseks peetakse juba 1,3 tsüklit, tavaline on aga 1,4...1,5 tsüklit ühe käsu jaoks. Soovitud tulemust (CPI = 1) saaks realiseeruda juhul kui kasutataks lõpmatu suuri cache mälusid ja pipeline-ides ei tekiks kunagi konflikte katkestuste ja hargnemiste tõttu.

Konveier[muuda | redigeeri lähteteksti]

5 Stage Pipeline.svg

Iga RISC süsteemi põhiomaduseks on konveier, see on viis kuidas täita järjekorras käskluseid paralleelselt. Joonisel on näide viie-astmelisest konveierist. Iga konveieri aste täidab ühte käsklust korraga.

  • IF = Käskluse toomine (Instruction Fetch)
  • ID = Käskluse avamine (Instruction Decode)
  • EX = Käskluse käivitamine (Execute)
  • MEM = Mällu pöördumine (Memory access)
  • WB = Tulemuse kirjutamine registri faili (Register writeback)

Mida rohkem on astmeid seda suurem on paralleelsus ja seetõttu peaks suurem olema ka protsessori kiirus. Siiski vaid astmete juurde lisades hakkaksime kiiruse võitmise asemel hoopis kiiruses kaotama, kuna suurema arvu astmete korral tekib rohkem konflikte, mis omakorda nõuaksid keerulisemat riistvara.

Uuematel protsessoritel nagu kahetuumalisel ARM Cortex-A9-l on aga hoopis 8-astmeline konveier, kuid mõningased protsessorid on ka 12-astmelist konveierit kasutanud. Kõige enam levinud on siiski näites toodud 5-astmeline konveier.

RISC Arhitektuuri omadused[muuda | redigeeri lähteteksti]

  • 'Lae / Salvesta arhitektuur' (Load / Store Architecture) – Ainult 'Lae' ja 'Salvesta' käsklustel on ligipääs mälule, teistel käsklustel ligipääs mälule puudub. Selle miinuseks on, et on vaja rohkem registreid, plussiks aga kiirem ligipääs andmetele programmi käivitamisel.
  • Lihtsad adresseerimise viisid (Simple Addressing Modes) – kasutatakse vaid viite adresseerimise viisi, võrdluseks CISC-i puhul on neid üle 25. Tähtis on ka see, et need mahuksid olemas olevasse pipeline.
  • Kindla suuruse ja väljaga käsklused (Fixed size and fields instruction) – Vajalik, et oleks võimalik lugeda käsklust ühe tsükliga, vastasel juhul kaoks pipeline mõte.
  • Üks käsklus tsükli kohta (One Instruction Per Cycle execution rate) – Võimalik vaid pipeline kasutades.
  • Harvardi arhitektuur – Käskluste ja andmete jaoks on eraldi cache mälu, see suurendab kiirust.

ARM[muuda | redigeeri lähteteksti]

Hetkel on enamik maailma protsessoritest RISC-tüüpi, näiteks ARM-i edasiarendatud (Advanced RISC Machines), tootis aastal 2005 98% miljardist müüdud mobiilitelefonide protsessoritest. ARM tähistas hiljuti ka 15-da miljardi protsessori tootmist läbi aegade. ARM-i kiireim protsessor on hetkel Cortex A-9, mis on saavutanud kiiruseks 2,5 GHz, oma mobiiltelefonidesse võime neid oodata 2013 aastaks. Hinnanguliselt toodetakse ainuüksi aastal 2011 5 miljardit ARM-i protsessorit. ARM-i tooted on kasutusel järgnevates seadmetes:

  • Apple iPodid ja iPod Touch
  • Apple iPhone
  • Apple iPad ja iPad 2
  • Palm ja PocketPC PDA-d ja nutitelefonid
  • RIM BlackBerry nutitelefonid
  • Microsoft Windows Mobile
  • Nintendo Game Boy Advance
  • Nintendo DS
  • Sony Network Walkman
  • Android nutitelefonid, tahvelarvutid

Paljud tootjad, sealhulgas HP Lenovo, Qualcomm jne. üritavad võita turuosa ARM protsessoritel põhinevate tahvelarvutite ja netbookidega, mis on varustatud kas mõne Linuxi distributsiooni või Androidiga.

Erinevad kasutusalad[muuda | redigeeri lähteteksti]

Oma lihtsuse, odavuse ja kiiruse tõttu on RISC protsessorid enamjaolt kasutatavad lihtsamates seadmetes: mobiiltelefonid, MP3-mängijad, mängukonsoolid jne. RISC-protsessoreid toodavad paljud erinevad tootjad, need on kasutusel nii PlayStationites, ruuterites kui ka Apple vanemates arvutites.

  • MIPS seeria on leitav enamikest SGI, PlayStation, PlayStation 2, Nintendo64, PlayStation Portable mängukonsoolidest ning ruuteritest nagu Linksys WRT54G series.
  • IBM-i ja Freescale  Power Architecture kasutusel kõikides IBM-i superarvutites, serverites ja tööjaamades, lisaks tootis Apple veel mõned aastad tagasi PowerPC-baasil Macintoshe.
  • Nintendo Gamecube ja Wii mängukonsool
  • Microsofti Xbox 360 mängukonsool
  • Sony's PlayStation 3 mängukonsool
  • EMC's DMX Symmetrix SAN
  • ja palju muud alates printeritest kuni autodeni.
  • SPARC  Oracle (endine Sun Microsystems) ja Fujitsu
  • Hewlett-Packardi PA-RISC tuntud ka kui HP-PA, lõpetas December 31, 2008.
  • Alpha kasutati lauaarvutites, tööjaamades, serverites ja superarvutites mis olid toodetud Digital Equipment Corporation, Compaq ja HP poolt, lõpetas alates 2007 aastast.
  • XAP protsessor kasutusel paljudes madala voolutarbega traadita seadmete (Bluetooth, Wi-Fi) kiipides, mis olid toodetud CSR poolt.
  • Hitachi SuperH kasutusel Sega Super 32X, Saturn ja Dreamcastis, nüüd südameks paljudele koduelektroonika seadmetele.
  • Atmel AVR kasutusel paljudes erinevates kohtades Xboxi juhtseadmetest kuni BMW autodeni.

Välislingid[muuda | redigeeri lähteteksti]