the von neumann architecture the von neumann architecture
play

The von Neumann Architecture The von Neumann Architecture of - PDF document

The von Neumann Architecture The von Neumann Architecture of Computer Systems of Computer Systems paper by H. Norton Riley paper by H. Norton Riley David Morgan von Neumann archtecture von Neumann archtecture Starting point Starting point


  1. The von Neumann Architecture The von Neumann Architecture of Computer Systems of Computer Systems paper by H. Norton Riley paper by H. Norton Riley David Morgan von Neumann archtecture von Neumann archtecture

  2. Starting point Starting point � computer must store – data – 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 computation, but also to store the instructions, or orders, that brought about the computation.” – Riley paper Form of instructions? 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

  3. A special- -purpose computer purpose computer A special the purpose is adding the purpose is adding 3 + 7 = 10 Special- Special -purpose vs general purpose vs general- -purpose 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

  4. An instruction encoded into numeric form An instruction encoded into numeric form for a general- for a general -purpose computer purpose computer numeric form distinguishing What is the number? Where is the wiring? What is the wiring? Numeric instruction instructs Numeric instruction instructs � what is the number? – the number is 45 � where is the wiring? – the wiring is in the instruction register � what is the wiring? – the wiring is the presence of 45 in the register – because the “bits” are electric switches (not red pennies) – because the “numbers” are electron flow configurations (rewirings) – interpret “instructions” as switch configs or as numbers (your choice, according as you’re a hardware engineer or programmer)

  5. Hypothetical instruction set 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 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 bus

  6. 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

  7. 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 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

Recommend


More recommend