Stored program concept
The architecture is a design model for a stored-program
in digital computer that uses a processing unit and a single
storage structure to hold both instructions and data.
• A stored-program digital computer is one that keeps its
programmed instructions, its data, in read-write, random
access memory (RAM).
Following things will come under storage program
concept: -
01. In the stored program concept, both the instructions
and the data are stored in the computer memory itself.
02. Thus, instructions like data can be read from the
memory and written to the memory by the processor.
03. The processor addresses the memory, reads the
corresponding instructions, executes them and according
to the executed instruction, processes (reads and writes)
data as well.
1
04. Computers that store both instructions and data on
the same memory are said to be based on the Von
Neumann architecture.
Modern desktop computers are still based on the same
stored program concept.
Design of the von Neumann architecture or Von
Neumann model
Von Neumann Architecture, also known as the Von Neumann
model, the computer consisted of a CPU, memory and I/O
devices.
The program is stored in the memory. The CPU fetches an
instruction from the memory at a time and executes it.
The von Neumann architecture is a design model for a stored-
program digital computer that uses a processing unit and a single
separate storage structure to hold both instructions and data.
It is named after mathematician and early computer scientist
John von Neumann.
Role of computer’s main memory M is to store programs and data
as they are being processed by CPU.
2
A von Neumann Architecture computer has five parts:
1. An arithmetic-logic unit
2. A control unit
3. A memory
3
4. Some form of input/output
5. System bus (that provides a data path between these
parts)
Arithmetic Logic Unit
All the usual Add, Multiply, Divide and Subtract
calculations will be available but also data comparisons
such as 'Greater Than', 'Less Than', 'Equal To' will be
available.
➢ An instruction set is a list of all the instructions, and
all their variations, that a processor can execute.
Instructions include,
•Arithmetic such as add and subtract
• Logic instructions such as and, or, and not
• Data instructions such as move, input, output, load,
and store
• Control flow instructions such as go to, if ..., call, and
return
A control unit
A component of a computer's central processing unit that directs
the operation of the processor.
4
A memory
A device that is used to store information for immediate use in a
computer or related computer hardware device
Some form of input/output
The communication between an information processing system,
such as a computer, and the outside world, possibly a human or
another information processing system
System bus
a single computer bus that connects the major components of a
computer system, combining the functions of a data bus to carry
information.
Flynn’s classification of computers
• Michael J Flynn classified computers on the basis of
multiplication of instruction stream and data streams in a
computer system.
• It gives how sequence of instructions or data will be executed
upon a single processor
• Instruction stream: is the sequence of instructions as executed
by the machine.
5
• Data Stream is a sequence of data including input or temporary
result, called by the instruction Stream.
The four classifications defined by Flynn are based
upon the,
1. Number of concurrent instruction (or control)
2. Data streams available in the architecture:
6
• Instructions are decoded by the control unit and then ctrl
unit send the instructions to the processing units for
execution.
• Data Stream flows between the processors and memory
bi-directionally.
01.SISD (Single Instruction stream, Single Data
stream) Computer Systems
7
Single-Instruction Single-Data streams (SISD)
➢ Conventional single-processor von Neumann computers
are classified as SISD systems.
➢ A single processor computer (Uni-processor) in which a
single stream of instructions is generated from the
program.
Characteristics
- Standard von Neumann machine
- Instructions and data are stored in memory
- One operation at a time
8
02.MISD (Multiple Instruction stream, Single Data stream)
Computer Systems
Its architecture contains n processors unit, each receiving
instruction streams and providing the same data stream.
MISD structure is only of theoretical interest, since no practical
system has been constructed using this organization.
9
➢ In the MISD category, the same stream of data flows
through a linear array of processors executing different
instruction streams.
03.SIMD (Single Instruction stream, Multiple Data
stream) Computer Systems
It represents an organization that includes many processing units
under the supervision of a common control unit.
All processors receive the same instruction from the control unit
but operate on different items of data.
10
Single-Instruction Multiple-Data streams (SIMD)
➢ Each processor in the array has a small amount of local
memory, where the distributed data resides while it is
being processed in parallel.
➢ The processor array is connected to the memory bus of
the front end so that the front end can randomly access the
local processor memories as if it were another memory.
➢ The front end can issue special commands that cause
parts of the memory to be operated on same time to move
around in the memory.
➢ The application program is executed by the front end in the
usual serial way, but issues commands to the processor
array to carry out SIMD operations in parallel.
11
Characteristics
- Only one copy of the program exists
- A single controller executes one instruction at a time
04. MIMD (Multiple Instruction stream, Multiple Data stream)
COMPUTER SYSTEMS
Its organization refers to a computer system capable of processing several
programs at the same time.
Because access to shared memory is balanced, these systems
are also called SMP (symmetric multiprocessor) systems.
There is no global memory, so it is necessary to move data
from one local memory to another by means of message passing.
This is typically done by a Send/Receive pair of
commands, which must be written into the application software by
a programmer
12
Characteristics
- Multiple processing units
- Execution of multiple instructions on multiple data
Types of MIMD computer systems
01. Shared memory multiprocessors
02. Message-passing multi computers
SHARED MEMORY MULTIPROCESSORS
13
Characteristics
All processors have equally direct access to one large memory
address space.
Example:
Bus and cache-based systems
- Sequent Balance, Encore
Multistage IN-based systems
- Ultra computer, RP3, HEP
Crossbar switch-based systems
- Alliant FX/8
MESSAGE-PASSING MULTICOMPUTER
Characteristics
- Interconnected computers
- Each processor has its own memory, and communicate via
message-passing
14
Example:
- Tree structure: Teradata,
- Mesh-connected: Rediflow, Series 2010
Multilevel View Point of A Machine
Our computer is built on various layers.
These layers are basically divided into:
Software layer
Hardware Layer
Instruction Set Architecture
USER APPLICATION LAYER MACRO
SOFTWARE
LAYER COMPILER OS –MSDOS ARCHITECTURE
WINDOWS
ASSEMBLER
UNIX / LINUX
INSTRUCTION SET ARCHITECTURE (ISA)
PROCESSOR MEMORY I/0 SYSTEM
DATA PATH AND CONTROL MICRO
HARDWARE
GATE LEVEL DESIGN ARCHITECTURE
LAYER
CIRCUIT LEVEL DESIGN
SILICON LAYOUT LAYER
15
- Computer system architecture is decided on the basis
of the type of applications or usage of the computer.
- The computer architect decides the different layers
and the function of each layer for a specific computer.
16
The Computer Level Hierarchy
A hierarchy is an organizational structure in which items are
ranked according to levels of importance.
17
The computer hierarchy ranks components in terms of response
times, with processor registers at the top of the structure and tape
backup at the bottom.
Level 0: Digital Logic Level
– This level is where we find digital circuits (the chips).
– Digital circuits consist of gates and wires.
– These components implement the mathematical logic of all
other levels.
– This level is where we view physical devices as just switches
(On/Off)
– Instead of viewing their physical behavior (i.e. in terms of
High voltages or low voltage) we use two value logic i.e.
0 (off) and 1(on)
Level 1: Control Level / Microarchitecture Level
– A control unit decodes and executes instructions and moves
data through the system.
– Control units can be micro programmed or hardwired.
• A micro program is a program written in a low-level language
that is implemented by the hardware.
• Hardwired control units consist of hardware that directly
executes machine instructions.
• Detailed organization of a processor implementation
18
– Computer Architecture is the combination of microarchitecture
and instruction set design.
Hardwired Control
• The control logic is implemented with gates, flip flops, decoders,
and other digital circuits.
• It has the advantage that it can be optimized to produce a fast
mode of operation
Micro programmed Control
• Micro programed control unit is built around a storage, where all
control signals are stored.
• Control memory stores a set of micro programs which are
designed to implement instruction set.
• It’s control information in a manner that fetching and execution
of program from main memory.
Level 2: Machine Level
– Also known as the Instruction Set Architecture (ISA) Level.
– Consists of instructions that are particular to the architecture of
the machine.
19
- Programs written in machine language (0s and 1s) need no
compilers or assemblers.
Instruction Set Architecture (ISA)
• Is the part of the processor that is visible to the programmer or
compiler writer.
• The ISA serves as the boundary between software and
hardware.
• An instruction set, or instruction set architecture (ISA),
is the part of the computer architecture related to,
i. Programming,
ii. Data types,
iii. Instructions,
iv. Registers,
v. Addressing modes,
vi. Memory architecture,
vii. Interrupt
viii. External I/O.
Level 3: System Software Level
– Controls executing processes on the system.
– Protects system resources.
– Operating System software supervises the programs
• Controls execution of multiple programs
E.g. Memory and I/O devices
– Other utilities
• Compilers, Interpreters, Linkers, Library etc.
Level 4: Assembly Language Level
20
– Acts upon assembly language produced from
Level 5, as well as instructions programmed directly at this
level.
– Lowest human readable form before dealing with 1s and 0s
(machine language)
– Assembler converts assembly to machine Language
Level 5: High-Level Language Level
– The level with which we interact when we write programs in
languages such as C, Pascaland Java
Level 6: The User Level
– Program execution and user interface level.
– Composed of application programs such as Word Processor,
Paint etc.
– The implementation of the application is hidden completely from
the user.
Performance metrics computer architecture.
Why study performance metrics?
• determine the benefit/lack of designs
• computer design is too complex to performance.
• have to be careful about what you mean to measure & how
you measure it.
21
Computer performance metrics include
➢ availability
➢ response time
➢ channel capacity
➢ completion time
➢ service time
➢ bandwidth
➢ throughput
➢ relative efficiency
➢ scalability
➢ performance
➢ compression ratio
➢ instruction path length
➢ speed up.
22
Many different factors to take into account when
determining performance:
Technology
• circuit speed (clock, MHz)
• processor technology (how many transistors on a chip)
23
Organization
• type of processor (ILP)
• configuration of the memory hierarchy
• type of I/O devices
• number of processors in the system
Software
• quality of the compilers
• organization & quality of OS, databases, etc.
Metrics that Measure Performance
Computer performance is the amount of work accomplished by
a computer system.
It basically depends on response time, throughput and execution
time of a computer system.
Response time.
➢ is the time from start to completion of a task.
This also includes:
• Operating system overhead.
• Waiting for I/O and other processes
• Accessing disk and memory
• Time spent executing on the CPU
Throughput.
➢ total amount of work completed in a given time. It is
the number of tasks that can be completed within a given
time of interval.
24
➢ transactions (database) or packets (web servers) /
second.
➢ an indication of how well hardware resources are
being used.
➢ good metrics for chip designers or managers of
computer systems.
CPU Execution time
➢ Time to execute one program from beginning to End.
➢ The total time a CPU spends computing on a given task.
➢ It also excludes time for I/O or running other programs.
➢ Performance is determined by execution time as
performance is inversely proportional to execution time.
The time the CPU spends executing an application
➢ no memory effects
➢ no, I/O
➢ no effects of multiprogramming
CPU Execution Time = CPU Clock Cycles * Clock Cycle Time
Cycle time (clock period) is measured in time or rate
clock cycle time = 1/clock cycle rate
CPU Execution Time = CPU Clock Cycles
Clock Cycle Rate
25
Component metrics:
➢ subsystem performance, e.g., memory behavior.
➢ help explain how execution time was obtained.
➢ pinpoints performance.
Performance = (1 / Execution time)
If Processor A is faster than processor B, i.e.,
Execution Time A < Execution Time B
Performance A > Performance B
(Performance of A / Performance of B)
= (Execution Time of B / Execution Time of A)
Time to execute a given program can be computed as:
Execution time = CPU clock cycles x clock cycle time
Factors affecting on computer performance
They include:
➢ speed of the CPU,
➢ space on the hard disk
➢ size of the RAM
➢ type of the graphics card
➢ speed of the hard disk
➢ Defragmenting files.
26
How to Improve Performance….
Decrease the CPI (clock cycles per instruction) by using new
Hardware.
CPI = Program execution time (in clock cycles)
Number of instructions in program
• Decrease the clock time or Increase clock rate by reducing
propagation delays.
• Decrease the number of required cycles or improve ISA or
Compiler.
MIPS (Millions of Instructions Per Second)
Traditional system figure of merit is MIPS,
defined as: MIPs = Number of Instructions in Program
Program Execution Time x 106
MFLOPS (millions of floating-point operations per second)
MFLOPs - The figure of merit, MFLOPS,
defined as:
MFLOPs = Number of Floating-Point Instructions in Program
Program Execution Time x 106
27