Hardware level
Elements
A processor composed of a data path and a control unit. A data
path contains all the necessary computing elements to carry out a
computation task. The control unit sends control signals to
harmonise the data flow in the data path so that the desired
computation occurs. To give an analogy of a processor to an
orchestra, the data path is the musician, the control unit is the
conductor.
Components in a data path consisted of: logic, register, multiplexer
and bus. Logic is a combinational function out = f(in_1...
in_n) where f is a Boolean function {not, and ,or}. For example (/ not, . and, + or)
out = /x1 +
x2.x3 + x1./x2
A boolean expression can be represented in form of a truth table.
An enumeration of all cases of input values to output values.
Logic minimisation is a process to realise a desired function with
minimum number of logic elements (such as gates). Logic
minimisation is a NP-complete problem.
Registers are storage elements out(t+1) = in(t) with the
control signal "load" (can be either positive or negative edge depends
on the model). The width of a register defines the number of bits
that can be stored.
Muliplexers have n inputs (of width m) and select one input to be
output, called n:1 multiplexer. The select is the control
signal. Bus consists of wire and buffer. Wire carry data
(signal). Buffer controls the traffic of data from any element
into/outof a bus. Bus can be shared to reduce the number of wire
within a circuit. Bus can broadcast data to many receivers
limited to the "fan-out" electrical characteristic of a bus, the
ability to drive other circuits.
With these four elements: logic, register, multiplexer and bus, a
processor can be built.
Data path
The simplest data path consists of a "loop" from registers to
functional units (logic) and back.
----->
registers ---> logic ---
|
|
|
|
-------------------------------
For example suppose there are two registers named, A and B. The
logic is an adder. This data path can perform
A
= A + B
with the following control,
1) read two registers into two input of the adder.
2) the adder outputs the result of adding its two inputs.
3) the result is written back to a register.
There can be multiple function units working in parallel. The
result is more work done in one cycle round the loop. There are
complexities involving in doing many task concurrently such as
competing for the same resource.
8 December 2004
P. Chongstitvatana