Von Neumann Machinesx

Download Report

Transcript Von Neumann Machinesx

Von Neumann Machines
The Von Neumann Architecture
Model for designing and building computers, based on the
following three characteristics:
1) The computer consists of four main sub-systems:
• Memory
• ALU (Arithmetic/Logic Unit)
• Control Unit
• Input/Output System (I/O)
2) Program is stored in memory during execution.
3) Program instructions are executed sequentially.
3
The Von Neumann Architecture
System Bus
Processor
Memory
Control Unit
ALU
Store data and program
Execute program
Do arithmetic/logic operations
requested by program
Input-Output
Communicate with
"outside world", e.g.
• Screen
• Keyboard
• Storage devices
• ...
4
All data and instructions are stored in the Main Memory.
Instructions are sent to the Processor along the System Bus to be executed
Any input and output (such as printing and entering instruction) is performed by I/O devices
with the data travelling from the I/O devices to the Processor and Main Memory by means of
the System Bus:
System Bus
Processor
Memory
Control Unit
Input-Output
ALU
Consider a program stored on a DVD, to get the machine to run it, you will have to input the
data from the DVD to the memory using the system bus. Once the program is loaded into
memory the instructions it will be sent to the Processor line by line using the system bus and
executed there. Any things to be printed or shown on a screen will be sent to the Output box.
The Processor
The heart of a modern electronic computer is the processor:
The processor is one of the most complex parts of any
computer system.
The processor executes programs and supervises the
operation of the rest of the system. Single chip processors are
otherwise known as microprocessors.
Multicore microprocessors are now very popular, where the
processor will have several cores allowing for multiple
programs or threads to be run at once. The PlayStation 3 has 7
cores.
Transistors make 1s and 0s
Main Memory
Main memory is used to store program instruction and data,
using the System Bus to communicate with Processor.
Main memory is often created using Random Access Memory
(or RAM) or Read Only Memory (ROM).
Modern computers will have gigabytes of RAM, meaning that
large programs can run and multiple programs can run at
once.
The more main memory that you have the larger the number
of programs you can run at once.
Types of Main Memory
All computers have main/internal memory chips to store programs and data while the
computer is running. There are two types, ROM and RAM. Accessing data or running
software from a memory chip is much faster than from backing storage such as a hard drive.
RAM (Random Access Memory) chips are described as volatile, the contents are lost when
the computer is switched off. When a computer is started up, the operating system (i.e.
Windows Vista) is copied into the RAM. Any software that is run (such as a word processor)
is also loaded into RAM and run from there. When a file is loaded (such as a word processor
document) that is also loaded into RAM.
ROM (Read Only Memory) chips are described as non-volatile, the contents cannot be
changed by a program or user and are not lost when the computer is switched off. They are
used to store the programs used to start the hardware running (an example is the BIOS chip
which permanently stores the software needed to start a computer's hardware and
operating system).
Both types of memory are referred to as Immediate Access Storage (IAS) because the
hardware can access the data so quickly compared to data in backing storage.
What Memory Does
Main memory consists of data stored in addresses, in
general, the more main memory you have the more
addresses you'll have and vice versa.
Address
Contents
1024
Cabbage
1025
Celery
1026
Courgette
1027
Carrot
1028
Cucumber
1029
Chard
The Von Neumann Architecture
System Bus
Processor
Memory
Control Unit
ALU
Store data and program
Execute program
Do arithmetic/logic operations
requested by program
Input-Output
Communicate with
"outside world", e.g.
• Screen
• Keyboard
• Storage devices
• ...
11
Input/Output Subsystem
• Handles devices that allow the computer system
to:
– Communicate and interact with the outside world
• Screen, keyboard, printer, ...
– Store information (mass-storage)
• Hard-drives, floppies, CD, tapes, …
• Mass-Storage Device Access Methods:
– Direct Access Storage Devices (DASDs)
• Hard-drives, floppy-disks, CD-ROMs, ...
– Sequential Access Storage Devices (SASDs)
• Tapes (for example, used as backup devices)
I/O Controllers
• Speed of I/O devices is slow compared to RAM
– RAM
~ 50 nsec.
– Hard-Drive ~ 10msec. = (10,000,000 nsec)
• Solution:
– I/O Controller, a special purpose processor:
• Has a small memory buffer, and a control logic to
control I/O device (e.g. move disk arm).
• Sends an interrupt signal to Processor when done
read/write.
– Data transferred between RAM and memory buffer.
– Processor free to do something else while I/O
controller reads/writes data from/to device into I/O
buffer.
CMPUT101 Introduction to
Computing
(c) Yngvi Bjornsson
13
The System Bus
A Bus is a connection between different devices. This connection will normally consist of
multiple wires along which signals, instructions and data will be carried.
Address Bus
A single-directional bus that carries address
signals from the Processor to Main Memory and
I/O devices. This might involve the Processor
requesting some data from Main Memory,
sending the address of the data to Main
Memory, then Main Memory returning the data
along the data bus.
Address Bus
Let's take a look at some code:
LDA 23
This code is asking to load the data from memory address 23
into the Processor.
The address bus does not send addresses to the processor,
but only sends them from the processor.
To do this the Processor would send 23 along the Address Bus,
and the value from memory location 23 would be sent along
the Data Bus back to the Processor.
The size of the Address Bus can dictate how much Main Memory you can have in your
system. For example, if you had an Address Bus of 3 bits, then:
Maximum value = 111 = 7
Range of values =
000
001
010
011
100
101
110
111
This would mean that your Main Memory could only have 8 different addressable blocks.
Data Bus
A bi-directional bus, typically consisting of 32 wires, used
to transport data and instructions between the three
components of the three-box model.
The larger the Data Bus the more data can be transported
at one time. For example if we have an 8 bit Data Bus, the
maximum value we could send along the Bus would be:
1111 1111 = 255
The larger the Data Bus the more data we can send at
once and the more complex instructions we can use.
Control Bus
A bi-directional bus, typically consisting of more than 16 wires, used to
transport control signals between the three components of the threebox model.
The control bus is used to carry important information such as
messages to say when a device has finished a job or when a device has
just been plugged in.
A simple example would be when you plug in your USB key and after a
few moments a screen pops up asking you what you want to do with
it.
The control bus also contains interrupt signals which allow devices
(printers, keyboards, disks, etc.) to signal that they have finished a
request. The Processor temporarily suspends its current program,
services the device and then resumes the previous program.