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

the von neumann architecture the von neumann architecture
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1

The von Neumann Architecture The von Neumann Architecture

  • f Computer Systems
  • f Computer Systems

paper by H. Norton Riley paper by H. Norton Riley

David Morgan

von Neumann archtecture von Neumann archtecture

slide-2
SLIDE 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

slide-3
SLIDE 3

A special A special-

  • purpose computer

purpose computer

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

slide-4
SLIDE 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)

slide-5
SLIDE 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

slide-6
SLIDE 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

slide-7
SLIDE 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

  • ne 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 memorycpu and back

they have only 1 bus to get there and must share fetching each precludes the other at any moment