CISC-protsessor

Kompleksne käsukomplektne arvuti (ingl "complex instruction set computer", lühend CISC) on mikroprotsessor, kus üksikute käskudega saab teostada mitut madalama taseme toimingut. CISC-protsessorid on võimelised käivitama keerukaid käske, kasutades vähem koodiridu. Selle arhitektuuriga protsessorid on üldiselt keerulisema ehitusega kui RISC-protsessorid.
Mis on protsessor?
Protsessor (ingl "Central Processing Unit", lühend CPU) on arvuti komponent, mis loeb mälust käske ja töötleb andmeid nii, et terve arvuti saaks töötada. Protsessorit kutsutakse ka arvuti ajuks. Protsessor on umbes tikutopsi suurune ristkülikukujuline arvutikiip, millest ulatuvad välja kümned metallnõelad, millest igaüks suunab kiibile elektroonilisi signaale ehk taktsignaale. Kiip ühendatakse arvuti trükkplaati, kus ta suhtleb mälu, kõvaketaste, ekraanide ja muude protsessoriväliste seadmetega. Taktsignaali järgi toimub protsessorisse käskude lugemine ja nende täitmine. Taktsignaali sagedus määrab ära protsessori töökiiruse, mida mõõdetakse tänapäeval gigahertsides.
Protsessorite ülesandeks on käivitada masinkoodi ja koordineerida arvuti teiste üksuste tööd. Protsessorid jaotuvad käsustiku arhitektuuri alusel kolmeks: CISC-protsessorid, RISC-protsessorid ja ARM-protsessorid. CISC-protsessor on mitmekülgse käsustikuga protsessor ja RISC-protsessor on vähendatud käsustikuga protsessor. ARM-protsessor on RISC-protsessorite edasiarendus, mida kasutatakse enamasti mobiilseadmetes.
Protsessor on ühendatud arvutisüsteemiga läbi juht-, andme- ja aadressisiini abil. Programmi täitmiseks käib protsessor läbi järgmised etapid: käsu lugemine mälust, käsu dekodeerimine operatsioonideks, käsu täitmine, tulemuse salvestamine. Programmi täitmisel võivad esineda ka erandjuhtumid, kus süsteem reageerib välistele sündmustele, mis pole programmile teada. Näiteks suhtlemine operatsioonisüsteemidega, andmevahetus erinevate seadmetega, silumise operatsioonid, käsu viga, jne. Neid erandeid nimetatakse katkestusteks, mille korralikuks haldamiseks on vaja spetsiaalseid käske, mis suudavad ajutiselt peatada programmi rakendamise, käivitada alamprogrammi, mis seda katkestust haldab ja kui rutiin on lõppenud, siis ka taastada ajutiselt peatatud programm samast punktist, kust see peatati.
Millest protsessorid koosnevad?
Protsessorid koosnevad tavaliselt järgmistest komponentidest:
Registrid jagunevad omakorda:
* Akuregister, mis hoiab käskude täitmise vahetulemusi.
* Käsuloendur, mis sisaldab järgmise käsu mäluaadressi. Seda suurendatakse automaatselt iga käsutsükli ajal.
* Käsuregister, mis sisaldab mälust loetud käske.
* Olekuregister, mis sisaldab protsessori tehete teostamise olekut.
* Pinuviit, mis sisaldab järgmist registrite seisu vaba aadressi.
Operatsioonide tegemine samaaegselt.
Kui tavaliselt tehakse protsessoris operatsioone ühe kaupa, siis tegelikult saab operatsioone teha ka samaaegselt. Selle tehnika nimi on toru ehk konveier, kus ühe elemendi väljund on järgmise elemendi sisendiks. Tavaliselt on arvutites konveieri registrid, kuhu pärast igat etappi salvestatakse täidetud käskude tulem, et järgmised käsud saaksid kasutada samu andmeid. Selle korralduse puhul saab protsessor täita käske ühe takti jooksul. Käsu töötlemise saab jagada viieks etapiks (käsu lugemine, käsu dekodeerimine, käsu täitmine, mälu poole pöördumine ja tulemuste salvestamine), mille tulemusena saame protsessoris korraga täita viit käsku, mis kõik on samal ajahetkel erinevates käsu täitmise etappides. Erinevate etappide täitmisele kuluv aeg on erinev, seega kui mõne etapiga saadakse kiiremini valmis, siis on seade ülejäänud aja ooterežiimis. Seega konveieri kasutamine pole eriti efektiivne, kui kõik etapid on väga erinevate pikkustega. Kõige aeganõudvam operatsioon on mälust lugemine, mis on umbes 10 korda aegavõtvam, kui protsessorisisesed operatsioonid.
Tänapäeval on konveierite kasutamine maailmas laialdaselt levinud pigem RISC- ja ARM-protsessorite puhul, sest CISC-protsessorid tegutsevad erineva arvu bittidega, mis teeb nende saatmise järgmisesse sammu ja kohe nendega mingi muu käsu alustamise raskemaks.
Ajalugu.
1960. aastatel hakkasid tehnoloogiatööstuses populaarseks saama esimesed transistoripõhised arvutikiibid. See viis ka mikroprotsessorite ja CISC arhitektuurini. CISC-protsessorid võeti kasutusele 1970. aastate alguses, kus seda kasutati lihtsate elektrooniliste platvormide jaoks nagu kalkulaatorid, videomängud, stereosüsteemid. CISC-protsessorid loodi algselt, siis, kui mälu oli väga kallis ja suhteliselt aeglane.
CISC-protsessorid olid abiks koodi lihtsustamisel ja lühendamisel, et vähendada mälunõudlust. Kuna CISC-protsessoris saab teha üksikute käskudega mitu madalama taseme toimingut, siis muudab see käsustiku lühikeseks, kuid keerukaks.
1971. aastal lõi Intel esimese kõigile kättesaadava mikroprotsessori, mis kannab nime Intel 4004. Sellel pisikesel mikroprotsessoril on andmete laius 4 bitti, 16 pinni ja mikroprotsessori enda suurus 10 mikromeetrit. Intel 4004 polnud aritmeetiliste arvutuste jaoks üldse praktiline, sest 4-bitine seade suudab ainult arvutada vahemikus -8 kuni +7. Aga sellest hoolimata leidis see mikroprotsessor rakenduse seadmete juhtimisel.
Aasta hiljem tuli Intel välja oma uue 8-bitise mikroprotsessoriga, mille nimeks on Intel 8008. Kohe pärast seda tuli välja ka Intel 8080, mis oli esimene kaubanduslikult populaarne 8-bitine mikroprotsessor. Ka seda protsessorit kasutati vaid seadmete juhtimiseks, sest see polnud aritmeetiliste arvutuste jaoks samuti piisavalt praktiline oma arvutusvahemikuga -128 kuni +127.
Umbes 1978 lõi Intel esimese 16-bitise mikroprotsessori Intel 8086, mis oli esimene x86-protsessor. 16-bitise seadme arvutusvahemik on -32768 kuni +32767. Tänu sellele muutus see mikroprotsessor väga populaarseks mitte ainult seadmete juhtimisel, vaid ka aritmeetiliste arvutuste tegemisel. Intel 8086 protsessori kiirus oli neli korda kiirem, kui Intel 8080 kiirus.
CISC ja RISC.
CISC-protsessoreid kasutatakse enamasti lauaarvutites, sülearvutites, turvasüsteemides ja koduautomaatika tehnoloogias ning RISC-protsessoreid kasutatakse enamasti nutitelefonides, mängukonsoolides, MP3-mängijates jne.
Tänapäeval on CISC ja RISC protsessorite vahel vähem erinevusi kuna nad võtavad üle üksteise omadusi.
CISC-protsessorite näited: Intel x86 protsessorid, AMD x86 protsessorid, Motorola 68000 pere, CDC 6600, IBM System/360, VAX, PDP-11.
RISC-protsessorite näited: IBM Power Arcitecture, MIPS, ARM, HP PA-RISC, Sun SPARC, Sun UltraSPARC, DEC Alpha.
Koodi pikkused.
Oletame, et meil on operatsioon A = B + C.
RISC koodis toimuks see nii:
 Load R2, B
 Load R3, C
 Add R4, R2, R3
 Store R4, A
CISC koodis toimuks see nii:
 Move A, B
 Add A, C
CISC.
Eelised ja puudused.
Eelised:
Puudused:
Erinevad kasutusalad.
Kuna CISC-protsessoritel on keerulised juhised ja käsud, siis kasutatakse neid ka keerulisemates seadmetes nagu lauaarvutid, sülearvutid jne.
* Mängukonsool Sega Genesis
* Mängukonsool Atari Jaguar
* Lauaarvuti Apple Macintosh (enne kui Apple läks üle ARM tehnoloogiale)