All Topics  
Complex instruction set computer

 

   Email Print
   Bookmark   Link






 

Complex instruction set computer



 
 
A complex instruction set computer (CISC, pronounced like "sisk") is a computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
 instruction set architecture (ISA) in which each instruction can execute several low-level operations, such as a load from memory, an arithmetic
Arithmetic

Arithmetic or arithmetics is the oldest and most elementary branch of mathematics, used by almost everyone, for tasks ranging from simple day-to-day counting to advanced science and business calculations....
 operation
Operator

In mathematics, an operator is a function which operates on another function. Often, an "operator" is a function which acts on functions to produce other functions ; or it may be a generalization of such a function, as in linear algebra, where some of the terminology reflects the origin of the subject in operations on the functions which ar...
, and a memory store, all in a single instruction. The term was retroactively coined in contrast to reduced instruction set computer
Reduced instruction set computer

The acronym RISC , for reduced instruction set computing, represents a CPU design strategy emphasizing the insight that simplified instructions that "do less" may still provide for higher performance if this simplicity can be utilized to make instructions execute very quickly....
 (RISC).

re the RISC philosophy became prominent, many computer architects
Computer architecture

Computer architecture in computer engineering is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements and design implementations for the various parts of a computer, focusing largely on the way by which the central processing unit performs internally an...
 tried to bridge the so called semantic gap
Semantic gap

The semantic gap characterizes the difference between two descriptions of an object by different linguistic representations, for instance languages or symbols....
, i.e.






Discussion
Ask a question about 'Complex instruction set computer'
Start a new discussion about 'Complex instruction set computer'
Answer questions from other users
Full Discussion Forum



Encyclopedia


A complex instruction set computer (CISC, pronounced like "sisk") is a computer
Computer

A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
 instruction set architecture (ISA) in which each instruction can execute several low-level operations, such as a load from memory, an arithmetic
Arithmetic

Arithmetic or arithmetics is the oldest and most elementary branch of mathematics, used by almost everyone, for tasks ranging from simple day-to-day counting to advanced science and business calculations....
 operation
Operator

In mathematics, an operator is a function which operates on another function. Often, an "operator" is a function which acts on functions to produce other functions ; or it may be a generalization of such a function, as in linear algebra, where some of the terminology reflects the origin of the subject in operations on the functions which ar...
, and a memory store, all in a single instruction. The term was retroactively coined in contrast to reduced instruction set computer
Reduced instruction set computer

The acronym RISC , for reduced instruction set computing, represents a CPU design strategy emphasizing the insight that simplified instructions that "do less" may still provide for higher performance if this simplicity can be utilized to make instructions execute very quickly....
 (RISC).

Historical design context


Incitements and benefits

Before the RISC philosophy became prominent, many computer architects
Computer architecture

Computer architecture in computer engineering is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements and design implementations for the various parts of a computer, focusing largely on the way by which the central processing unit performs internally an...
 tried to bridge the so called semantic gap
Semantic gap

The semantic gap characterizes the difference between two descriptions of an object by different linguistic representations, for instance languages or symbols....
, i.e. to design instruction sets that directly supported high-level programming constructs such as procedure calls, loop control, and complex addressing mode
Addressing mode

Addressing modes are an aspect of the instruction set architecture in most central processing unit designs. The various addressing modes that are defined in a given instruction set architecture define how Machine code Instruction in that architecture identify the operand of each instruction....
s, allowing data structure and array accesses to be combined into single instructions. The compact nature of such instruction sets results in smaller program
Computer program

Computer programs are Instruction for a computer. A computer requires programs to function. Moreover, a computer program does not run unless its instructions are executed by a Central processing unit; however, a program may communicate an Algorithm#Formalization of algorithms to people without running....
 sizes and fewer calls to main memory, which at the time (early 1960s and onwards) resulted in a tremendous savings on the cost of computer memory and disc storage. It also meant good programming productivity even in assembly language
Assembly language

An assembly language is a low-level language for programming computers. It implements a symbolic representation of the numeric machine codes and other constants needed to program a particular CPU architecture....
, as high level languages such as Fortran
Fortran

Fortran is a general-purpose programming language, procedural programming language, imperative programming language programming language that is especially suited to numerical analysis and scientific computing....
 or Algol
Algol

Algol , known colloquially as the Demon Star, is a bright star in the constellation Perseus . It is one of the best known eclipsing binary, the first such star to be discovered, and also one of the first variable stars to be discovered....
 were not always available or appropriate.

In the 70's analysis of high level languages indicated some complex machine language implementations and it was determined that new instructions could improve performance. Some instructions were added that were never intended to be used in assembly language but fit well with compiled high level languages. Compilers were updated to take advantage of these instructions.

Problems

While many designs achieved the aim of higher throughput at lower cost and also allowed high-level language constructs to be expressed by fewer instructions, it was observed that this was not always the case. For instance, low-end versions of complex architectures (i.e. using less hardware) could lead to situations where it was possible to improve performance by not using a complex instruction (such as a procedure call or enter instruction), but instead using a sequence of simpler instructions.

One reason for this was that architects (microcode writers) sometimes "over-designed" assembler language instructions, i.e. including features which were not possible to implement efficiently on the basic hardware available. This could, for instance, be "side effects" (above conventional flags), such as the setting of a register or memory location that were perhaps seldom used; if this were done via ordinary (non duplicated) internal buses (or even the external bus), it would demand extra cycles every time, and thus be quite inefficient.

Even in balanced high performance designs, such (relatively) high level instructions which are typically also highly encoded (for good code density), could be complicated to decode and execute efficiently within a limited transistor budget. These architectures therefore require a great deal of work on the part of the processor designer in cases where a simpler, but (normally) slower, solution based on decode tables and/or microcode sequencing is not appropriate. At the time where transistors were a limited resource, this also left less room on the processor to optimize performance in other ways, which gave room for ideas to return to simpler processor-designs in order to make it more feasible to cope without ROMs (or even PLAs) for sequencing or decoding. This led to the first RISC-labeled processors in the mid-1970s (IBM 801
IBM 801

The 801 was a RISC Central processing unit designed by International Business Machines in the 1970s, and used in various roles in IBM until the 1980s....
 - IBM
IBM

International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
s Watson Research Center).

Transistors for logic, PLAs, and microcode are no longer a scarce resource however (only for huge caches, basically), and together with better tools and new technologies, this has led to new implementations of highly encoded and variable length designs without load-store limitations (i.e. non RISC). This governs both re-implementations of older instruction-sets (such as the ubiquitous x86, see below), as well as new designs for microcontroller
Microcontroller

A microcontroller is a small computer on a single integrated circuit consisting of a relatively simple CPU combined with support functions such as a crystal oscillator, timers, watchdog, serial and analog I/O etc....
s for embedded system
Embedded system

An embedded system is a special-purpose computer system designed to perform one or a few dedicated functions, often with real-time computing constraints....
s, and similar uses.

CISC and RISC processors

Examples of CISC processors are the System/360
System/360

The IBM System/360 is a mainframe computer system family announced by IBM on April 7, 1964. It was the first family of computers making a clear distinction between computer architecture and implementation, allowing IBM to release a suite of compatible designs at different price points....
 (excluding the 'scientific' Model 44), VAX
VAX

VAX was an instruction set architecture developed by Digital Equipment Corporation in the mid-1970s. A 32-bit complex instruction set computer ISA, it was designed to extend or replace DEC's various Programmed Data Processor ISAs....
, PDP-11
PDP-11

The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s. Though not explicitly conceived as successor to DEC's PDP-8 computer in the Programmed Data Processor series of computers , the PDP-11 replaced the PDP-8 in many Real-time computing....
, Motorola 68000
Motorola 68000

The Motorola 68000 is a 16/32-bit Complex instruction set computer microprocessor core designed and marketed by Freescale Semiconductor ....
 family, and Intel x86 architecture based processors.

The terms RISC and CISC have become less meaningful with the continued evolution of both CISC and RISC designs and implementations. The first highly pipelined "CISC" implementations, such as 486s from Intel, AMD, Cyrix
Cyrix

Cyrix was a Central processing unit manufacturer that began in 1988 in Richardson, Texas as a specialist supplier of high-performance math coprocessors for Intel 80286 and Intel 80386 systems....
, and IBM
IBM

International Business Machines Corporation, abbreviated IBM and nicknamed "Big Blue" , is a multinational corporation computer technology and consulting corporation headquartered in Armonk, New York, New York, United States....
, certainly supported every instruction that their predecessors did, but achieved high efficiency only on a fairly simple x86 subset (resembling a RISC instruction set, but without the load-store limitations of RISC). Modern x86 processors also decode and split more complex instructions into a series of smaller internal "micro-operations" which can thereby be executed in a pipelined (condensed serial) fashion, thus achieving high performance on a much larger subset of instructions.

See also

  • CPU
    Central processing unit

    A central processing unit is an electronic circuit that can execute computer programs. This broad definition can easily be applied to many early computers that existed long before the term "CPU" ever came into widespread usage....
  • RISC
  • ZISC
  • VLIW
  • microprocessor
    Microprocessor

    A microprocessor incorporates most or all of the functions of a central processing unit on a single integrated circuit . The first microprocessors emerged in the early 1970s and were used for electronic calculators, using Binary-coded decimal arithmetic on 4-bit Word ....
  • computer
    Computer

    A computer is a machine that manipulates Data according to a list of Code .The first devices that resemble modern computers date to the mid-20th century , although the computer concept and various machines similar to computers existed earlier....
  • CPU design
    CPU design

    CPU design is the design engineering task of creating a central processing unit , a component of computer hardware. It is a subfield of electronics engineering and computer engineering....
  • computer architecture
    Computer architecture

    Computer architecture in computer engineering is the conceptual design and fundamental operational structure of a computer system. It is a blueprint and functional description of requirements and design implementations for the various parts of a computer, focusing largely on the way by which the central processing unit performs internally an...


External links