CISC

tietokoneiden suoritinarkkitehtuurien suunnittelufilosofia

CISC (engl. Complex Instruction Set Computer) on yleisnimitys sellaisille suorittimien käskykannoille, joissa konekielen käskyt ovat rakenteeltaan monimutkaisia ja yksi käsky voi sisältää useita alkeistason operaatioita. CISC-arkkitehtuurin vastakohta on RISC-arkkitehtuuri, jossa käskykanta on pyritty pitämään mahdollisimman yksinkertaisena ja tehokkaana. Tunnettuja CISC-arkkitehtuureita ovat mm. x86 (IA-32), Motorola 68000 -sarja, VAX, IBM S/360 ja PDP-11.

Termi CISC on esitelty jälkikäteen vastakohtana yksinkertaisemmalle RISC-arkkitehtuurille: termi viittaa ratkaisujen monimutkaistumiseen.[1] CISC esitettiin kustannustehokkuuden kannalta haitallisena suuntauksena.[1] Monimutkaistumiseen on esitetty useita syitä kuten käskynopeus verrattuna aliohjelmakutsuun.[1]

Esimerkiksi IA-32:n käsky add [ebx+ecx*4],eax laskee summan ebx+ecx*4, lukee sitä vastaavasta osoitteesta sanan, summaa sen tulokseen eax-rekisterin sisällön ja kirjoittaa tuloksen takaisin alkuperäiseen muistipaikkaan. Moderneissa CISC-suorittimissa käskyt pilkotaan RISC-tyylisiin mikro-operaatioihin suuremman suorituskyvyn ja hyötysuhteen vuoksi.[2]

Eräissä CISC-arkkitehtuureissa käskyn koko voi vaihdella siihen liitetyn tiedon mukaan ja muistiin osoittamiseen voi olla monta muotoa.[3][4] Register-memory -arkkitehtuurissa muistin käsittely voi olla osana muuta käskyä kun taas RISC-arkkitehtuurille tyypillisessä load-store-arkkitehtuurissa on vain erilliset käskyt.[3][5]

CISC-arkkitehtuurille on tyypillistä suuri määrä käskyjä, monimutkaisia käskyjä, useita osoitusmuotoja.[3] CISC-suorittimissa voi olla mikro-ohjelmointia monimutkaisien käskyjen toteuttamiseen.[3] Käskyt voivat vastata suoraan korkean tason ohjelmointikielien käsitteisiin.[3]

Sekä CISC- että RISC-tyypeissä on omat etunsa ja ongelmansa.[3]

Erojen hämärtyminen muokkaa

RISC- ja CISC-arkkitehtuurien erot ovat hämärtyneet moderneissa suorittimissa.[6] CISC- ja RISC-suunnittelutavat ovat ottaneet ominaisuuksia toisistaan. Suorittimien nopeuksien kasvamisen myötä myös CISC-suorittimet voivat suorittaa käskyjä yhdessä kellojaksossa ja ne voivat käyttää liukuhihnaa. Samalla RISC-suorittimissa on mukana monimutkaisempaa laitteistoa ja monimutkaisempia CISC-tyyppisiä käskyjä.[7]

Katso myös muokkaa

Lähteet muokkaa

  1. a b c David A. Patterson: The Case for the Reduced Instruction Set Computer (PDF) inst.eecs.berkeley.edu. Viitattu 13.10.2021. (englanniksi)
  2. Security Analysis of x86 Processor Microcode dcddcc.com. 11.12.2014. Viitattu 26.9.2020. (englanniksi) 
  3. a b c d e f Lecture 2 RISC Architecture (PDF) philadelphia.edu.jo. Viitattu 13.10.2021. (englanniksi)
  4. Encoding Real x86 Instructions c-jump.com. Viitattu 29.9.2017. (englanniksi)
  5. Hennessy, John L. & Patterson, David A.: Computer Architecture: A Quantitative Approach, s. 11. Fifth Edition. Morgan Kaufmann, 2012. ISBN 978-0-12-383872-8.
  6. Isen, Ciji & John, Lizy & John, Eugene.: A Tale of Two Processors: Revisiting the RISC-CISC Debate. researchgate.net. 2009. doi:10.1007/978-3-540-93799-9_4.
  7. Preeti Jain: CISC & RISC Architecture engineersgarage.com. Viitattu 3.2.2023. (englanniksi)