CISC
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
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]
Lähteet
- David A. Patterson: The Case for the Reduced Instruction Set Computer (PDF) inst.eecs.berkeley.edu. Viitattu 13.10.2021. (englanniksi)
- Security Analysis of x86 Processor Microcode dcddcc.com. 11.12.2014. Viitattu 26.9.2020. (englanniksi)
- Lecture 2 RISC Architecture (PDF) philadelphia.edu.jo. Viitattu 13.10.2021. (englanniksi)
- Encoding Real x86 Instructions c-jump.com. Viitattu 29.9.2017. (englanniksi)
- Hennessy, John L. & Patterson, David A.: Computer Architecture: A Quantitative Approach, s. 11. Fifth Edition. Morgan Kaufmann, 2012. ISBN 978-0-12-383872-8.
- 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.
- Preeti Jain: CISC & RISC Architecture engineersgarage.com. Viitattu 3.2.2023. (englanniksi)