RISC
RISC-ajatteluun siirtyminen

Tietokoneiden alkuaikoina kääntäjät eivät pystyneet tuottamaan kovin tehokasta konekoodia, joten ohjelmoijat käyttivät tehokkuussyistä paljon symbolista konekieltä. Lisäksi keskusmuistit olivat hyvin pieniä, joten muistin säästämiseksi yhdellä käskyllä piti saada aikaan mahdollisimman paljon asioita.
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-ohjelmoijille tarjottiin runsas valikoima 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-luvulla, jolloin havaittiin, että monien tietokoneiden käskykannat olivat tarpeettoman laajoja eikä ohjelmissa käytetty hyväksi kuin pientä osaa nopeuttaviksi tarkoitetuista ominaisuuksista. Joitain konekäskyjä kääntäjät eivät pystyneet käyttämään lainkaan, jolloin niiden käyttö jäi erittäin vähäiseksi.
John Cocke ja hänen ryhmänsä IBM:llä suunnitteli 1970-luvulla yksinkertaista suoritinta, joka olisi nopea koska käskyt olisivat yksinkertaisia. Tuolloin oli tyypillistä CISC-suorittimille, että yhdellä käskyllä voitiin suorittaa paljon, joka teki ohjelmoinnista yksinkertaisempaa ja oli ohjelmointikielen kääntäjälle helppoa käsitellä. Cocken ryhmä pienensi käskykantaa poistamalla harvoin käytettyjä käskyjä.
Käskyjen yksinkertaistaminen teki niistä yhdessä kellojaksossa suoritettavia ja peräkkäisten käskyjen yhtäaikainen suorittaminen liukuhihnalla tuli mahdolliseksi. Lisäksi RISC-suunnittelussa muistia käsiteltiin vain load- ja store-käskyillä ja muut käskyt toimivat vain suorittimen sisäisillä rekistereillä, joka yksinkertaisti suorittimen suunnittelua.
IBM kehitti prototyyppinä IBM 801 minitietokoneen, joka vaikutti IBM ROMP -suorittimen kehitykseen. ROMP oli käytössä IBM RT PC -tietokoneessa. RT PC ei ollut laajalti käytetty, mutta se johti jatkokehitykseen ja IBM RS/6000 -sarjaan.
Samaan aikaan IBM:n projektin kanssa oli kaksi muuta projektia: Berkeleyssä ja Stanfordissa.
Berkeley RISC -projekti johti SPARC-suorittimeen ja Stanford MIPS -projekti MIPS-suorittimeen.
Myös superskalaarinen rinnakkain suorittaminen yleistyi RISC-suorittimien myötä.
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".
Monissa CISC-suorittimissa oli jonkinlaisia osittaisia liukuhihnaratkaisuja, mutta ne olivat ongelmallisia, koska CISC-käskyt vaihtelevat huomattavasti monimutkaisuudeltaan ja suoritusajaltaan.
RISC-ratkaisulle on tyypillistä rajattu käskykanta jossa on yksinkertaisia käskyjä, suuri määrä rekistereitä, konekäskyt ovat tietyn mittaisia ja yhden muotoisia, sekä load-store-arkkitehtuuri.
Load-store käskykanta käyttää erillisiä käskyjä muistin käsittelyyn kun taas register-memory -arkkitehtuurissa se voi olla osana muuta käskyä.