Complex instruction set computer

related topics
{system, computer, user}
{math, number, function}
{theory, work, human}
{rate, high, increase}

A complex instruction set computer (CISC) (pronounced /ˈsɪsk/), is a computer where single instructions can execute several low-level operations (such as a load from memory, an arithmetic operation, and a memory store) and/or are capable of multi-step operations or addressing modes within single instructions. The term was retroactively coined in contrast to reduced instruction set computer (RISC).

Examples of CISC instruction set architectures are System/360 through z/Architecture, PDP-11, VAX, Motorola 68k, and x86.

Contents

Historical design context

Incitements and benefits

Before the RISC philosophy became prominent, many computer architects tried to bridge the so called semantic gap, i.e. to design instruction sets that directly supported high-level programming constructs such as procedure calls, loop control, and complex addressing modes, allowing data structure and array accesses to be combined into single instructions. Instructions are also typically highly encoded in order to further enhance the code density. The compact nature of such instruction sets results in smaller program sizes and fewer (slow) main memory accesses, which at the time (early 1960s and onwards) resulted in a tremendous savings on the cost of computer memory and disc storage, as well as faster execution. It also meant good programming productivity even in assembly language, as high level languages such as Fortran or Algol were not always available or appropriate (microprocessors in this category are sometimes still programmed in assembly language for certain types of critical applications).

Full article ▸

related documents
UCSD Pascal
NewtonScript
Vim (text editor)
Lotus 1-2-3
JFS (file system)
Lotus Symphony
First-generation programming language
FIFO
IA-32
PDP-11
Baudot code
Blitz BASIC
MMX (instruction set)
Journaling file system
Web service
Web browser
Liberty BASIC
PDP-1
Signal-to-noise ratio
Direct-sequence spread spectrum
Software bug
Graphics Device Interface
Machine code
Telephony Application Programming Interface
Break key
Intel 80286
GNU
Digital signal
Intel 8086
Motorola 6809