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