CISC

Från Unix.se, den fria unixresursen.

CISC är en akronym för Complex Instruction Set Computing och innebär i korthet att man strävar efter ett stort antal specialiserade instruktioner som utför komplexa operationer som t.ex. multiplikation, som rent datorsystemtekniskt är avancerad och kräver många steg och cykler att genomföra. En sådan instruktion kan då sammanfattas i en enda maskinkodsinstruktion, eller en assemblerinstruktion. Utvecklades ursprungligen som starkast under den era som man mestadels programmerade i assembler pga. att minnesbegränsningarna var så stora att man dels ville att ett enda komando skulle kunna utföra så mycket som möjligt, vilket minskade raden kod, dels utgjorde minnsesbegränsningen ett stort hinder för att kunna implementera vettiga och smarta kompilatorer. Observera att dessa instruktioner är av flercykelnatur, vilket ger begränsningar.

Motsatsen är RISC och är en akronym för Reduced Instruction Set Computing. Tanken är här den motsatta, nämligen att använda ett litet antal generella instruktioner. Detta göra att programmering i assembler innebär mer, och ibland mycket mer, eget skriven kod än vid CISC och även ökat minneskrav, men det man vinner är att man då får ner varje liten instruktion till en cykel. Detta möjliggör i sin tur pipelining. Utöver detta kan nämnas att specialiserade CISC-kommandon tar plats på processorchipet, och när dessa försvinner kan man använda platsen till mer cache och framförallt fler register, vilket man har svårt att få för många av.

Moderna processorer är aldrig längre av ren CISC eller RISC-arkitektur, utan en slags kompromiss. AMD påstår att Athlon har sin grund i RISC, medan Intel håller kvar att Pentium är i grunden CISC. Dock har Athlon många specialiserade kommandon, medan Pentium har ett snillrikt(!?) system för att omvandla sina instruktioner för att använda sig av pipeline.

Denna artikel är bara påbörjad. Hjälp gärna till genom att fylla i mer (http://wiki-old.unix.se/index.php?title=CISC&action=edit)!
Personliga verktyg