Computer Architecture
computation model: data flow vs Von Neumann
sequentialisation
organisation
performance metrics
computation model
consider an example of computing an expression below. It can be
implemented with two kinds of computing machines.
y
= ax + bx^2 + c
two kinds:
data flow
x
* x -- 1
b * 1 -- 2 a * x -- 3
2 + 3 -- 4
4 + c -- y
(graph)
finished in 4 time steps
sequential model
ld
r1 a
ld r2 x
mul r3 r1 r2
ld r4 b
mul r5 r2 r2
mul r6 r4 r5
add r7 r4 r3
ld r8 c
add r9 r7 r8
st y r9
convention: op dest src, op dest src1 src2
finished in 10 time steps but it reused the functional unit.
organisation
data flow
| | | | |
fu ---------
switched matrix
| | | | |
fu ---------
| | | | |
fu ---------
... ...
von neumann
--> registers --> func.unit--
^
|
|
|
|
|
-----------------------------
|
bus interface unit
|
memory
control unit
in the bird-eyes view
P -- M where P is a processor M is memory
von neumann's bottleneck
performance metrics
1 how long it takes to finish a specified job?
2 how many job it can do within a unit of time?
p = 1 / t p is performance, t is time
to measure performance, a program is run and time to complete that
program is measured. The problem is, performance figure depends
on the program it runs. different program may give different
performance figure. to compare two machines performance, they
must run the same program.
throughput measures the amount of job a computer can do in a given time.
machine 1 is 50 % faster than machine 2.
what does it mean?
machine 1 takes 5 s. to run program A.
machine 2 takes 10 s. to run the same program.
m1 is (10-5)/10 = 50% faster than m2.
50% means m1 takes "half" of the time of m2 to finish the same
job. this figure is also called "speedup".
what happen when this figure approach 100%?
(the faster machine is infinitely faster than the other machine)
benchmark is a suite of program to measure the performance. there
are several benchmarks and measurements such as MIPS (million
instruction per second), SPEC, etc.
11 June 2004
P. Chongstitvatana