<<

The von Neumann Architecture of Systems

paper by H. Norton Riley

David Morgan

von Neumann archtecture Starting point

 computer must store – – instructions for manipulating it – the results (themselves data)  dichotomy/polarity data  instructions

“To von Neumann, the key to building a general purpose device was in its ability to store not only its data and the intermediate results of , but also to store the instructions, or orders, that brought about the computation.” – Riley paper

Form of instructions?

 the wiring  special purpose machines – a toaster  heats the element red-hot  “heat the element red-hot” is the only instruction  fixed in the wiring – a (hypothetical) special-purpose computer  adds two numbers  “add the numbers” is the only instruction  fixed in the wiring A special -purpose computer the purpose is adding

3 + 7 = 10

Special -purpose vs general -purpose

 dedicated vs versatile  fixed vs malleable  a (hypothetical) general-purpose computer – adds or subtracts or multiplies or divides – “add” “subtract” “multiply” “divide” are the 4 instructions – in the wiring, but the wiring is variable

“In a special purpose machine the computational procedure could be part of the hardware. In a general purpose one the instructions must be as changeable as the numbers they acted upon. Therefore, why not encode the instructions into numeric form and store instructions and data in the same memory?” – Riley paper An instruction encoded into numeric form for a general -purpose computer

numeric form distinguishing

What is the number? Where is the wiring? What is the wiring?

Numeric instruction instructs

 what is the number? – the number is 45  where is the wiring? – the wiring is in the  what is the wiring? – the wiring is the presence of 45 in the register – because the “bits” are electric (not red pennies) – because the “numbers” are electron flow configurations (rewirings) – interpret “instructions” as configs or as numbers (your choice, according as you’re a hardware engineer or programmer) Hypothetical instruction set

defined:

00000001, in the IR  add 00000010, in the IR  subtract 00000011, in the IR  multiply 00000100, in the IR  divide

00000101, in the IR  what happens?

Critiques of von Neumann

 instructions and data distinguished only implicitly through usage  there is a single 1-dimensional memory  meaning of data not stored with it  instruction and data fetches bottleneck on the Instructions/data distinguished implicitly

 any trouble if instructions get used as if data?  any trouble if data get used as if instructions?  cf. tagged architecture

A single 1-dimensional memory

 in disaccord with programming languages  programs have a data space, code space, stack space  mapping separate spaces into a unitary one (addressing) becomes an unavoidable task Meaning/type of data not stored with it

 data’s type? (integer, floating point, string?)  implicit high level languages – 33 is an integer, not floating point not string – 3.14 is floating point, not integer not string – hello is string, not integer not floating point  one operation at high level handles all (at low level it is not one operation) – 33+44 – 3.14+2.72 – hello+ there

von Neumann bottleneck

 instructions (opcodes) and data (operands) must shuttle memory cpu and back  they have only 1 bus to get there and must share  fetching each precludes the other at any moment