# RISC and CISC Architectures

Reduced Instruction Set Computing (RISC) and Complex Instruction Set Computing (CISC) are different design strategies for CPUs.

### RISC

The instructions in RISC are simpler and only take one clock cycle to execute, however as a result complex tasks require many more instructions compared to a CISC processor. This means that a more complex task may take many more FDE cycles to complete. Pipelining can be used to further speed up tasks and reduce the number of FDE cycles taken to complete tasks. Its simple design means it usually requires less power and generates less heat, and as such it has mostly replaced CISC and is used in portable devices however the disadvantage to RISC is that the code is longer requiring more RAM and causing the complier to do more work due to the code being further from high level languages than in CISC processors.

### CISC

CISC is a design where a more complex instruction set is permitted. The design is such that single instructions can execute several low level operations (e.g. load from memory, store to memory or an arithmetic operation), or are capable of multi step operations or addressing modes within single instructions. These instructions may take multiple FDE cycles and may have a variable format. The advantage to this is that instructions will take up significantly less space in memory as few are required to carry complex tasks. Assembly code for CISC can also take less time to write for a programmer.
However, the disadvantage of this more complex design is that it results in complicated hardware to decode the larger instruction set. As a consequence, CISC architecture tends to generate more heat due to extra power requirements, making it less portable. They also tend to be more expensive, and can cause programs to run slower due to their extensive circuitry. However, they make the life of a programmer easier as fewer instructions have to be written to accomplish the same task.

### RISC vs CISC

| RISC | CISC |
| Emphasis on Software (ARM) | Emphasis on Hardware (Intel/AMD) |
| All instructions take a single cycle | Includes more complex, multi-cycle instructions |
| Register to Register "LOAD" and "STORE" are independent instructions | Memory to Memory "LOAD" and "STORE" are incorporated into instructions |
| Low cycles per second, larger code sizes | Higher cycles per second, smaller code sizes |
| More transistors for memory registers | Transistors used to store complex instructions |
| Pipelining | No pipelining |
| lower energy consumption,can "Sleep" | Greater energy consumption |
| Physically smaller - less silicon, less expensive | Physically larger so more silicon thus expensive |
| Used in smartphones, tablets and some embedded systems such as digital signal processing | Used in laptops and desktop computers |
Question: Compare RISC and CISC processors.
Total: 4 marks. Maximum of 4 marks, 1 for each of the following points. Maximum of 2 marks for RISC
and 2 marks for CISC
* RISC has a smaller/limited range of instructions
* RISC requires less power/generates less heat to run.
* RISC is generally cheaper to produce.
* Each instruction in RISC will generally take one clock cycle to complete.
* CISC has a larger range of instructions.
* CISC programs require less memory.
* One instruction in CISC may take multiple clock cycles to complete.
Hints: This is a comparison question, so make sure you keep your points balanced — the same number for RISC and for CISC. It does not have a limit on the number of points in the questions, so look at the number of marks available. 4 marks mean 4 points, 2 for
RISC and 2 for CISC.

### GPU's

Graphics Processing Units (GPU's) are specialist processors designed for graphics rendering, often in 3D. They tend to run in SIMD (Single Instruction Multiple Data), as much of the processing requires the same action to be performed to multiple pieces of data. For example, rotating an object may require performing the same mathematical function to all of its vertices. GPU's are increasingly being used in other fields, such as physical system modelling, audio processing, password cracking and machine learning.
Question: Why is a GPU more suitable than a CPU for processing graphics?
Answer:
* CPUs are general purpose processors (1)
* whereas GPUs are designed specifically for graphics (1).
* And so likely to have built in circuitry/instructions for common graphics operations (1).
* GPUs are able to perform an instruction on multiple pieces of data at one time (1)
* often we want to do this when processing graphics (e.g. transforming points in a polygon or shading pixels) (1)
* which means it can perform transformations to onscreen graphics quicker than a CPU (1)

## Types of Processor

There are several different types of processor available to use in various different systems:

### Co-Processors

This is an additional processor working alongside the main CPU. It is designed, and indeed optimized, to be used for a specific task, and improves the processing speed by executing concurrently with the main CPU. An example of this could be a maths co-processor, or a floating point accelerator.

### Scalar CPU

A Scalar CPU is one which performs computations on a single number or set of data at one time. Most modern-day computers have scalar CPU's. They are known as Single Instruction Stream Single Data Stream processors, or SISD for short.

### Array/Vector CPU

An Array CPU (Also known as a Vector CPU) is one which allows a single instruction to simultaneously operate on multiple data locations. Applying the same calculation to several pieces of data is very quick. It is known as a SIMD processor, Single Instruction Multiple Data. Examples of their use include weather forecasting and airflow simulations.

### Parallel Processor

A parallel processor uses independent processors to work on the same program. The process in question is split into tasks, each of which may be processed by any of the processors. The processors are all coordinated by a complex operating system. Programs must be specifically written for parallel processing, otherwise some processes cannot be completed until others have finished, as they depend on the outcome of the current process.
| Advantages | Disadvantages |
| Faster than one processor when handling lots of data, with each component of data requiring the same processing | Only certain types of problem are suitable - a problem where its component parts depend on each other cannot be parallel processed |
| Not limited by bus transfer rate | More costly as more processing blocks are needed |
| Can make maximum use of CPU despite bottlenecks | Software is harder to write and a complex OS is required to communicate with multiple processors |
A system is setup to simulate the ways in which crystals grow. Each molecule of chemical reacts with all those around it to create the final shape. It is decided to use parallel processing to simulate the growth of the crystals.
(a) (i) Explain what is meant by parallel processing.
(ii) Explain why parallel processing is used in this simulation. [4]
(b) Give one disadvantage of using parallel processing in this simulation. [1]
Answer:
10 (a)(i)
* Simultaneous use of... (do not accept: apparently)
* more than one processor...
* to carry out large number of calculations...
* because the calculations are simple/similar/repetitive...
* carried out in much shorter time (compared with single processor)
* calculations are interdependent with results of one group feeding into next calculations.
(1 per -, max 3 per dotty, max 4) [4]
(b) Need for complex software/O.S. [1]