Reduced Instruction Set Computing (RISC) and Complex Instruction Set Computing (CISC)

Raza
5 min readJun 30, 2023

--

History

The history of the Reduced Instruction Set Computing (RISC) and Complex Instruction Set Computing (CISC) architectures dates back to the early days of computer science and has seen both designs take turns in prominence.

CISC History:

CISC has its roots in the earliest days of computing, where hardware was limited and expensive. Computers were primarily programmed in assembly language, and each instruction directly corresponded to a set of hardware instructions. To make programming easier and to minimize memory usage, designers aimed to make instructions that could carry out complex tasks. This led to the development of processors with a large set of complex instructions, a design that came to be known as CISC. The IBM System/360, released in 1964, is an early example of CISC design.

In the 1970s and 1980s, the x86 architecture, used by Intel in its line of microprocessors, further popularized the CISC approach. Intel’s 8086 and its successors, like the 80286, 80386, and so on, were all CISC designs and became the standard in personal computing, especially after being chosen by IBM for its first Personal Computer.

RISC History:

The concept of RISC began as a counter-approach to CISC in the late 1970s and early 1980s. The seminal work was done at IBM by John Cocke, resulting in the IBM 801, around 1980. This machine was never commercialized, but it influenced a generation of RISC designs.

In the early 1980s, researchers at the University of California, Berkeley, led by David Patterson, began to advocate for simpler, less complex instruction sets, giving birth to the RISC design philosophy. They developed the Berkeley RISC project, which produced two processors, RISC-I and RISC-II, around 1981–82.

In 1985, Sun Microsystems released the SPARC (Scalable Processor Architecture), a RISC-based design that became popular in workstations. Also, in the mid-1980s, a UK-based company, ARM Holdings, developed the ARM (Advanced RISC Machine) architecture, which has since become the dominant processor design in the mobile and embedded systems market.

In recent years, RISC and CISC designs have borrowed ideas from each other. Modern CISC processors, like the x86 CPUs from Intel and AMD, use techniques such as “micro-ops,” breaking down complex instructions into simpler ones internally, essentially behaving as a RISC processor at the execution level. Meanwhile, RISC processors have adopted more complex instructions to deal with specific tasks more efficiently. As of my last update in September 2021, the balance between these two philosophies continues to evolve.

Let me explain again ,

RISC stands for Reduced Instruction Set Computer. RISC architectures are designed to have a small, simple instruction set. This makes them easier to implement in hardware, which can lead to faster execution speeds. RISC instructions are also typically shorter than CISC instructions, which can help to improve performance by reducing the amount of time spent decoding instructions.

CISC stands for Complex Instruction Set Computer. CISC architectures have a larger, more complex instruction set than RISC architectures. This allows CISC processors to perform more complex operations with a single instruction. However, this can also lead to slower execution speeds, as CISC instructions can be more difficult to decode and execute.

Here is a table that summarizes the key differences between RISC and CISC:

Which is better?

There is no clear consensus on which architecture is better. RISC architectures are typically faster for simple operations, while CISC architectures can be faster for complex operations. The best architecture for a particular application will depend on the specific requirements of that application.

In recent years, RISC architectures have become more popular. This is due to a number of factors, including the increasing complexity of microprocessors and the growing importance of power efficiency. RISC architectures are well-suited for these trends, as they can be implemented in smaller, more power-efficient chips.

Here are some examples of RISC and CISC architectures:

  • RISC architectures: ARM, MIPS, PowerPC
  • CISC architectures: x86, x86–64, Itanium

The implementation of RISC and CISC architectures differ in a number of ways, including:

  • Instruction set: RISC architectures have a smaller, simpler instruction set than CISC architectures. This makes them easier to implement in hardware, which can lead to faster execution speeds. RISC instructions are also typically shorter than CISC instructions, which can help to improve performance by reducing the amount of time spent decoding instructions.
  • Instruction decoding: RISC architectures typically have simpler instruction decoders than CISC architectures. This is because RISC instructions are shorter and simpler, which makes them easier to decode. CISC instructions, on the other hand, can be more complex, which can make them more difficult to decode.
  • Pipelined execution: RISC architectures are typically more amenable to pipelined execution than CISC architectures. This is because RISC instructions are shorter and simpler, which makes it easier to keep the pipeline full. CISC instructions, on the other hand, can be more complex, which can make it more difficult to keep the pipeline full.
  • Hardware complexity: RISC architectures are typically simpler to implement in hardware than CISC architectures. This is because RISC instructions are shorter and simpler, which makes them easier to design and build the hardware to execute them. CISC instructions, on the other hand, can be more complex, which can make them more difficult to implement in hardware.
  • Software development: RISC architectures are typically easier to develop software for than CISC architectures. This is because RISC instructions are simpler and more regular, which makes it easier to write code that can be efficiently executed on a RISC processor. CISC instructions, on the other hand, can be more complex and irregular, which can make it more difficult to write code that can be efficiently executed on a CISC processor.

Conclusion

RISC and CISC are two different approaches to computer architecture. RISC architectures are designed for simplicity and speed, while CISC architectures are designed for flexibility and power. The best architecture for a particular application will depend on the specific requirements of that application.

Here are some additional details about RISC and CISC:

  • RISC instructions are typically shorter than CISC instructions because they perform fewer operations. This makes them easier to decode and execute, which can lead to faster execution speeds.
  • CISC instructions can perform more complex operations than RISC instructions because they can combine multiple operations into a single instruction. This can be useful for some applications, but it can also lead to slower execution speeds if the CISC instruction is not well-optimized.
  • RISC architectures are typically simpler to implement in hardware than CISC architectures. This is because RISC instructions are shorter and simpler, which makes them easier to design and build the hardware to execute them.
  • CISC architectures are typically more flexible than RISC architectures. This is because CISC instructions can perform a wider variety of operations, which can be useful for some applications.

Ultimately, the best choice of architecture for a particular application will depend on the specific requirements of that application. If speed is the most important factor, then a RISC architecture may be the best choice. If flexibility is the most important factor, then a CISC architecture may be the best choice.

--

--

Raza

Expert in Linux Systems, Kubernetes, Cloud Technologies, Virtualization Technologies, Python Programming and Storage Systems.