Pipedija - tautosaka, gandai, kliedesiai ir jokios tiesos! Durniausia wiki enciklopedija durnapedija!


CISC

Iš Pipedijos - durniausios enciklopedijos.
Jump to navigation Jump to search

CISC - tai Complex Instruction Set Computer - tokia procesorių architektūra, kur viskas velta, velta, privelta ir užvelta taip, kad visų tų procesorių savybių nei patys jų kūrėjai iki galo paskui nežino. Tai architektūra, kuri yra priešinga visoms sveiku protu paremtoms RISC idėjoms.

Tokios CISC architektūros atsirado ir išplito apie 1970-1980 metus, kai daugelis procesorius kūrusių firmų labai stengėsi, kad asembleriu programuoti būtų kuo patogiau ir kad tokie procesoriai turėtų komandas, kurios būtų kuo panašesnės į aukšto lygio programavimo kalbų operatorius. Taip procesoriuose būdavo įvedamos specialios komandos funkcijoms ar procedūroms apibrėžti, ciklams apibrėžti ir panašiai.

Anais laikais daug kas programuodavo asembleriu, nes procesoriai buvo labai brangūs, o gerų programavimo kalbų realizacijų, kurios turėtų efektyviai optimizuojančius kompiliatorius, smarkiai trūko. Tai todėl firmos ir stengdavosi, kad asembleriu programuoti būtų lengviau žmonėms, o ne programoms, kurios verčia iš programavimo kalbų į mašininį kodą.

Tas pats CISC procesorių privalumas - patogus asembleris, buvo ir didžiausia visų CISC procesorių problema: reikalas tas, kad kuo daugiau procesorius turi specializuotų komandų, tuo sunkiau kompiliatorius gali parinkti tinkamas komandų sekas. Ir kuo daugiau komandų, tuo sunkiau kažką čia padaryti, ir sudėtingumas, augant komandų skaičiui, pasižymi eksponentiniu augimu. O kompiliatorių išvengti pasidarė neįmanoma dar 197x, nes programos ėmė darytis baisiai sudėtingos ir kompleksinės - tokios, kurių asembleriu parašyti praktiškai neįmanoma. Ir kuo didesnės programos buvo kuriamos, tuo labiau reikėjo aukšto lygio programavimo kalbų.

Tai reiškia, kad vis daugiau programavimo darant aukšto lygio programavimo kalbomis, visokie CISC procesoriai tampa neįveikiama kliūtimi programų optimizavimui. Ir todėl dar prieš porą dešimtmečių buvo pastebėta, kad geri RISC procesoriai turi 3-5 kartų mažiau elementų, tačiau praktiniu našumu nuo kelių dešimčių procentų iki kartais netgi 2-3 kartų lenkia to paties dažnio CISC procesorius. Ir visa tai - dėl tų pačių kompiliatorių, kurie labai gerai optimizuoja kodą.

Vieni iš tipiškiausių CISC procesorių buvo tokie 8086, kurie davė pagrindą visai x86 architektūrų grupei. O šita grupė architektūrų iki šiol gyvuoja, kaip Wintel platforma. Tai paskui būna, kad kas nors įsijungia kokį seną senovinį SGI kompiuterį su MIPS ar kokį nors seną senovinį Macintosh su PowerPC ir stebisi, kaip čia dabar kompas, pagamintas daugiau kaip prieš 20 metų, su viskuo taip visai greitai dirba ir normaliam PC kompiuteriui nelabai tenusileidžia (aišku, jei nekalbam apie geimus). Tai atsakymas čia paprastas: x86 architektūra yra šūdas, o šūdas ji yra todėl, kad tai daugiametė ir beviltiška CISC.

Normalūs kompiuteriai šiais laikais turi RISC tipo procesorius, bet kad dauguma kompiuterių nėra normalūs. Tai taip paskui ir būna, kad koks nors tapšninukas ar smartfonas skaičiavimų greičiais su kai kuriais uždaviniais būna, kad netgi ir PC kompiuterį biškį stato į vietą. O kodėl? O tai todėl, kad PC kompiuteryje tie patys CISC procesoriai stovi.

Iš esmės, šiais laikais tiktai i86 aka x86 architektūra ir telikusi kaip CISC. Visur kitur jau senų seniausiai RISC sistemos.