Complex Instruction Set Computer

(CISC) A processor where each instruction can perform several low-level operations such as memory access, arithmetic operations or address calculations. The term was coined in contrast to Reduced Instruction Set Computer.

Before the first RISC processors were designed, many computer architects were trying to bridge the "semantic gap" - to design instruction sets to support high-level languages by providing "high-level" instructions such as procedure call and return, loop instructions such as "decrement and branch if non-zero" and complex addressing modes to allow data structure and array accesses to be compiled into single instructions.

While these architectures achieved their aim of allowing high-level language constructs to be expressed in fewer instructions, it was observed that they did not always result in improved performance. For example, on one processor it was discovered that it was possible to improve the performance by NOT using the procedure call instruction but using a sequence of simpler instructions instead. Furthermore, the more complex the instruction set, the greater the overhead of decoding an instruction, both in execution time and silicon area. This is particularly true for processors which used microcode to decode the (macro) instruction. It is easier to debug a complex instruction set implemented in microcode than one whose decoding is "hard-wired" in silicon.

Examples of CISC processors are the Motorola 680x0 family and the Intel 80186 through Intel 486 and Pentium.

Last updated: 1994-10-10

complexity

<algorithm>

The level in difficulty in solving mathematically posed problems as measured by the time, number of steps or arithmetic operations, or memory space required (called time complexity, computational complexity, and space complexity, respectively).

The interesting aspect is usually how complexity scales with the size of the input (the "scalability"), where the size of the input is described by some number N. Thus an algorithm may have computational complexity O(N^2) (of the order of the square of the size of the input), in which case if the input doubles in size, the computation will take four times as many steps. The ideal is a constant time algorithm (O(1)) or failing that, O(N).

See also NP-complete.

Last updated: 1994-10-20

complexity analysis

In sructured program design, a quality-control operation that counts the number of "compares" in the logic implementing a function; a value of less than 10 is considered acceptable.

complexity class

<algorithm>

A collection of algorithms or computable functions with the same complexity.

Last updated: 1996-04-24

complexity measure

<algorithm>

A quantity describing the complexity of a computation.

Last updated: 1996-04-24

complex number

<mathematics>

A number of the form x+iy where i is the square root of -1, and x and y are real numbers, known as the "real" and "imaginary" part. Complex numbers can be plotted as points on a two-dimensional plane, known as an Argand diagram, where x and y are the Cartesian coordinates.

An alternative, polar notation, expresses a complex number as (r e^it) where e is the base of natural logarithms, and r and t are real numbers, known as the magnitude and phase. The two forms are related:

 r e^it = r cos(t) + i r sin(t)
        = x + i y
where
 x = r cos(t)
 y = r sin(t)

All solutions of any polynomial equation can be expressed as complex numbers. This is the so-called Fundamental Theorem of Algebra, first proved by Cauchy.

Complex numbers are useful in many fields of physics, such as electromagnetism because they are a useful way of representing a magnitude and phase as a single quantity.

Last updated: 1995-04-10

complex programmable logic device

<hardware>

(CPLD) A programmable circuit similar to an FPGA, but generally on a smaller scale, invented by Xilinx, Inc.

Last updated: 1998-09-26

Nearby terms:

complete unificationComplex Instruction Set Computercomplexity

Try this search on Wikipedia, Wiktionary, Google, OneLook.



Loading