1.1.2 Flashcards
CISC
Complex instruction set computing, large number of instruction each taking multiple machine cycles to carry out.
CISC advantages and disadvantages
Adv: complier has to do very little work to translate the high level language statement into assembly.
Dis: this complex instruction might take more than one machine/clock cycle to execute.
expensive to design and produce
gives off more heat
RISC
Aim is to use simple instructions that will be executed within a single machine/clock cycle
RISC advantages and disadvantages
Adv: Each instruction can be completed in a single clock cycle.
RISC instructions enquire fewer transistors and less complex hardware, leaving more room for general-purpose registers and cache.
Because all instructions are uniform in terms of execution time, pipelining is possible.
Lower energy requirements.
Dis: In the memory situation, we would need four lines of assembly rather than one before with CISC.
There are more lines of code required in the assembly version of high level code line Complier has to do more conversion work.
More RAM is needed to store the assembly instructions.
The process seems less efficient.
Difference between CISC and RISC
Co-processor
Any additional processor used for a specialised task. A secondary processor designed to supplement the activities of the primary processor.
Purpose: to improve the overall speed of the computer by executing concurrently with the main CPU, aided by a highly bespoke set of electronics.
GPUs
Initially used for rendering graphics. Used for processing many parallel streams of data at the same time.
Why are GPUs good for graphic rendering?
Good for graphic rendering because:
High number of calculations can be done in parallel.
Result of one RGB calculation is not dependant on another.
Mass calculations typically associated with graphics processing known as SIMD can take full advantage of parallel processing.
GPU will be able to perform a thousand floating-point operations much quicker due to the benefits of its bespoke design for parallel processing.
What are GPUs also good for?
Also good for any situation that requires processing thousands or even millions of simple calculations over and over on multiple points of data is quicker to perform on a GPU rather than a generic CPU.
SIMD
A single instruction is executed on multiple different data streams. These instructions can be performed sequentially, taking advantage of pipelining, or in parallel using multiple processors.
Modern GPUs, containing Vector processors and array processors, are commonly SIMD systems.
MIMD
Multiple autonomous processors perform operations on difference pieces of data, either independently or as part of shared memory space.
Common Usage: Most modern desktop / laptop / mobile processors are MIMD processors.
Parallel systems
An architecture where processors have more than one core allowing multiple processes to be run concurrently.
Parallel processing
Parallel processing is the simultaneous processing of data. There are a number of ways that parallel processing is carried out. There are also other ways to speed up processing.
- pipeline
- array processor
- multicore
Advantages and disadvantages of parallel processing
Faster when handling large amounts of data,
Is not limited by the bus transfer rate (the Von Neumann bottleneck)
Can make maximum use of the CPU (pipeline method) in spite of the bottleneck
Only certain types of data are suitable for parallel processing. Data that relies on the result of a previous operation cannot be made parallel. For parallel processing, each data set must be independent of each other.
More costly in terms of hardware - multiple processing blocks needed.
Multicore
more than one processing unit in a
(single) processor which can independently process instructions at the same time which results in higher performance.
Parallel systems accomplish a similar task however instead of requiring multiple cores they can complete tasks with a single core, by using threading.
Generally, multi-core systems perform better in larger projects than parallel systems.