Complex instruction set computer
Complex Instruction Set Computer (afkorting: CISC) is in het Nederlands vertaald "Complexe Instructieset Computer". Het betreft een microprocessor instructieset architectuur waar elke instructie een instructie van laag niveau is, zoals het ophalen van gegevens uit het geheugen, een rekenkundige bewerking en het opslaan van gegevens in het geheugen, allemaal in een enkele instructie. De term was geïntroduceerd als tegenhanger van de Reduced Instruction Set Computer (RISC).
Voordat de eerste RISC processoren waren ontworpen hadden vele computerontwerpers gepoogd om het "gat" tussen de elementaire processorinstructies en de complexe hogere programmeertalen te overbruggen, door middel van processorinstructies die tevens "hoge" bewerkingen toestaan, zoals procedureconstructies, lusinstructies zoals "verlaag en verspring indien niet-nul" en complexe geheugenadressering modi om datastructuren en arrays te benaderen met één enkele instructie. Door complexe operaties in één instructie te stoppen leverde dat per saldo kleinere programma's en minder geheugen benaderingen op, wat toentertijd (de jaren 60) een enorme reductie bracht in de kosten van een computer.
Terwijl men het doel heeft bereikt om de complexere (hogere programmeertaalachtige) constructies toe te passen in minder instructies, merkte men dat dit niet altijd tot hogere prestaties leidde. Bijvoorbeeld, bij een processor werd ontdekt dat het mogelijk was om de prestaties te verhogen door geen procedure-instructies te gebruiken maar daarvoor in de plaats een serie van simpele instructies. Bovendien blijkt ook, hoe complexer de instructieset, hoe meer tijd het kost om elke instructie te decoderen, zowel in uitvoertijd en in de processorchip zelf. Dit is zeker het geval met processoren die gebruik maken van microcode om de instructies te decoderen. In andere woorden, door het toevoegen van grote en complexe instructies in de processor zelf maakt zelfs de uitvoer van eenvoudige instructies langzamer. Om deze complexe instructies te implementeren kost veel werk voor de chipontwerper, en vele transistoren. Dit beperkt de ruimte in het processorontwerp om voorzieningen te treffen om de prestaties ervan juist te verbeteren.
Enkele voorbeelden van CISC processoren zijn de: VAX, PDP-11, Motorola 68000 familie en de Intel x86 familie (waaronder ook de Pentium processoren).
De term CISC heeft in de loop van de tijd, net zoals het tegenovergestelde RISC, minder betekenis gekregen met de voortgaande evolutie met zowel CISC en RISC ontwerpen en uitvoeringen. Moderne "CISC" processoren, zoals de recente Pentium 4, ondersteunt elke instructie van zijn voorgangers en zijn tevens ontworpen om zo efficiënt mogelijk te werken met een RISC-achtige instructieset. Daarnaast vertalen de meeste CISC processoren (zoals de moderne x86 processoren van Intel en AMD) veel x86 instructies in een serie van kleine micro-instructies die worden uitgevoerd intern door de processor.