RISC
Wikipedia
RISC (Reduced Instruction Set Computer) on tietokoneiden suoritinarkkitehtuurien suunnittelufilosofia, jossa konekielen käskyt on pyritty pitämään yksinkertaisina ja nopeasti vakioajassa suoritettavina. Aiemmin suosittu lähestymistapa oli CISC, jossa pyritään tekemään käskykannasta mahdollisimman laaja ja monipuolinen ja sitä kautta tehokas.
RISC:stä tuli vallitseva suoritinarkkitehtuurien suunnittelufilosofia 1980-luvun puolivälistä alkaen. Valtaosa tämän jälkeen kehitetyistä uusista arkkitehtuureista on RISC-tyyppisiä, esimerkkeinä MIPS, ARM, SPARC, Alpha ja PowerPC. RISCejä käytetäänkin lähes kaikissa muissa uusissa tietoteknisissä laitteissa paitsi tavallisissa PC-koneissa, joiden suorittimet perustuvat edelleenkin 1970-luvulla kehitettyyn CISC-tyyppiseen x86-arkkitehtuuriin.
Nykyisin varsinaisen RISC:n rinnalle on tullut VLIW-lähestymistapa, jossa useita RISC-käskyjä on sidottu toisiinsa niin, että ne muodostavat yhden pitkän rinnakkaisesti suoritettavan käskyn. Tämän lähestymistavan tarkoituksena on parantaa käskyjen rinnakkaista suorituskykyä. Ehkä tunnetuin VLIW-arkkitehtuuri on IA-64.
Osa uusimmista x86-suorittimista yrittää hyödyntää RISC-lähestymistavan etuja kääntämällä sisäisesti CISC-komentoja yksinkertaisempaan RISC-tyyliseen muotoon. Tällä tavoitellaan parempaa käskyjen jakautumista rinnakkain suoritettaviin palasiin ja sen kautta nopeampaa suoritusta. Nykyisin käskykannan luonne ei enää ole niin vahvasti sidoksissa suorittimen sisäiseen toimintaan kuin aiemmin, mikä on tehnyt tiukasta jaottelusta RISC- ja CISC-arkkitehtuureihin melko tarpeettoman.
[muokkaa] RISC-ajatteluun siirtyminen
Tietokoneteollisuuden alkuaikoina kääntäjät olivat harvinaisia ja ohjelmoijat joutuivat ohjelmoimaan symbolisella konekielellä tai suoraan konekielellä. Tämä osoittautui vaativaksi työksi, ja koska muistin määrä oli kalliin hintansa vuoksi vähäinen, ei muistia voinut tuhlata valmisrutiineihin, jotka tekisivät monenlaisia asioita mutta varaisivat paljon muistia.
Aina 1970-luvulle asti tietokoneiden käskykantojen suunnittelussa otettiinkin erityisesti huomioon konekielitason ohjelmoijat ja ohjelmakoodin tiiviys. Valmiita käskyjä kehitettiin mitä erikoisimpiin tarkoituksiin, ja käskykanta toimikin esimerkiksi IBM S/360:ssa eräänlaisena standardikirjastona. Lisäksi assembly-ohjelmoijia hemmoteltiin runsaalla valikoimalla monipuolisia muistinkäsittelyn osoitusmuotoja. Tästä lähestymistavasta alettiin myöhemmin käyttää nimitystä CISC vastakohtana RISC-lähestymistavalle.
RISC-filosofian mukaisia koneita olivat periaatteessa jo eräät Seymour Crayn kehittämät supertietokoneet kuten 1960-luvun puolivälissä suunniteltu CDC-6600. Nykyisin tunnettu RISC-ajattelu sai kuitenkin alkunsa IBM:n tutkimuksista 1970-luvun loppupuolella, jolloin havaittiin, että monien tietokoneiden käskykannat olivat tarpeettoman laajoja eikä ohjelmissa käytetty hyväksi kuin pientä osaa nopeuttaviksi tarkoitetuista ominaisuuksista.
Myös tietokoneiden suoritusnopeuden kasvattamiseksi haettiin jatkuvasti uusia ratkaisuja, ja yksi mahdollisuus oli peräkkäisten käskyjen rinnakkainen suorittaminen ns. liukuhihnaperiaatteella. Monissa CISC-suorittimissa oli jonkinlaisia osittaisia liukuhihnaratkaisuja, mutta ne olivat ongelmallisia, koska CISC-käskyt vaihtelivat huomattavasti monimutkaisuudeltaan ja suoritusajaltaan. Syntyi tarve käskykannoille, joissa jokaisella käskyllä olisivat samat yksinkertaiset suoritusvaiheet.
RISC-filosofiassa ajatellaan myös kääntäjäkeskeisemmin kuin CISC:n tapauksessa. Puhtaan assemblyn käyttö on vähentynyt jatkuvasti, ja assembly-ohjelmointia helpottavat ratkaisut (kuten monimutkaiset osoitusmuodot) kävivät aina vain tarpeettomammiksi. RISC-lyhennettä on myös leikkimielisesti avattu muotoon "Relegate Important Stuff to the Compiler", eli "jätä tärkeät asiat kääntäjälle".