CISC

Wikipediasta
Siirry navigaatioon Siirry hakuun

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 | muokkaa wikitekstiä]

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]

  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. s. 57-76. 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)