Task 2
Task 2
Computer processors
The engines that drive computation
Computer processor
This is a digital device that can perform a computation involving multiple steps.
They can use fixed, selectable, parameterized or programmable logic.
The term engine identifies a processor that is a sub piece of a more complex
processor.
Processors are used in various roles including
Coprocessors
Microcontrollers
Embedded processors
General purpose processors
N/B early processors were created from discrete logic; a modern processor is
implemented as a single VLSI chip.
1. Coprocessors
It operates in conjunction with and under the control of another processor.
It consists of a special purpose processor that performs a single task at a high
speed.
An example of a coprocessor is known as a floating point accelerator to speed up
the execution of arithmetic operations.
When a floating point operation occurs the CPU automatically passes the
necessary value to the core processor and obtain the results and then continues
the execution.
In architecture we are running programs that are not known which programs are
performed directly by the CPU and which are carried out by the coprocessor.
The operation of a coprocessor is transparent to the software.
Typically, in a nutshell we can say the coprocessor are used fixed or selectable
logic.
This means the functions the coprocessor can perform are determined when the
coprocessor is designed
2. Microcontrollers
It consists of a programmable device dedicated to the control of a physical
system.
An example of microcontrollers is landing gear of an aeroplane and automatic
doors in offices.
They test sensors and send signals to control devices.
3. Embedded processors
It runs sophisticated electronic devices such as a wireless router or a smartphone.
Processors used for embedded systems are usually more powerful than those
used as microprocessor and often run a protocol start used in communication.
The processor might not require all functionalities found in a general purpose
CPU.
4. General purpose processors
They are the most familiar and need little explanation. For example, the CPU in a
PC is a general purpose processor.
ARCHITECTURAL APPROACHES
There are two basic approaches
Harvard architecture
Von Neumann architecture
I. Harvard architecture
It refers to a memory structure in which the processors are connected to two
independent memory banks via two independent sets of buses.
It was basically developed to overcome the bottlenecks of Von Neumann
Architecture.
The main advantage of having separate buses for instruction and data that is that
the CPU can access instructions and read/write data at the same time.
The advantage of the Harvard Architecture arises from its ability to have one
memory unit optimized to store programs and another memory unit optimized to
store data.
The disadvantage arises from inflexibility: when purchasing a computer, an owner
must choose the size of the instruction memory and the size of data memory.
Arithmetic
Operational registers
And
Logic
Program counter
Unit
Control unit
Input/output system
Memory
input
Accumulator
Processor
The range of processors.
Processors have many variations depending on the work the work they do.
i. Fixed logic processors
It is the least flexible, performs single task
Most important, all the functionality needed to perform the operation is built in
when the processor is created, and the functionality cannot be altered without
changing the underlying hardware.
For example, a fixed logic processer can be designed to compute a function, such
as sine (x), or to perform a graphics operation needed in a video game.
ii. Selectable logic processor
It has slightly more flexibility than a fixed logic processor.
In essence, a selectable logic processor contains facilities needed to perform more
than one function; the exact function is specified when the processor is invoked.
For example, a selectable logic processor might be designed to compute either
sine(x) or cosine(x).
iii. Parameterized logic processor
Adds additional flexibility as compared to selectable logic processor.
Although it only computes a predetermined function, the processor accepts a set
of parameters that control the computation.
iv. Programmable logic processor
Offers the most flexibility because it allows the sequence of steps to be changed
each time the processor is invoked.
The processor can be given a program to run, typically by placing the program in
memory.
ALU Local
Controller
storage
External interface
External connection
a) Controller
The controller forms the heart of the processor.
Controller hardware has overall responsibility for program execution.
That is, the controller steps through the program and coordinates the actions of
all other hardware units to perform specified operations.
b) Arithmetic logic unit
It is the main computational engine in a processor.
The ALU performs all computational tasks, including integer (arithmetic
operations) on bits (e.g. left or right shift) and Boolean (logical operations) (e.g.
Boolean and, or, exclusive or and not).
However, the ALU does not perform multiple steps or initiate activities.
Instead, the ALU only performs one operation at a time and relies on the
controller to specify exactly what operation to perform on the operand.
c) Local storage
A processor must have a local data storage to hold data values such as the
operands for arithmetic operations.
d) Internal connection
A processor contains one or more hardware mechanisms that are used to transfer
values between the other hardware units.
For example, the interconnection hardware is used to move data values from the
local storage to the ALU or to move results from the ALU to local storage.
Architects sometimes use the term data path to describe an internal connection.
e) External connection
The external interface unit handles all communication between the processor and
the rest of the computer system.
In particular, the external interface manages communication between the
processor and external memory and I/O deice.
The external interface connects to the rest of the computer system.
source code
object code
object code
(functions)
In libraries