Computer Architecture

Download Report

Transcript Computer Architecture

International Technology University
CEN 951 Computer Architecture
Lecture 1 - Introduction
1
Introduction
• Rapidly changing field:
• vacuum tube -> transistor -> IC -> VLSI
• Doubling every 1.5 years
• memory capacity
• processor speed (Due to advances in technology and
organization)
2
Intel 4004
1971
Note:
•16 wires bonded
•lines in parallel are buses
•function modules are
rectangular
3
Pentium
IIIb
1997
• Bond pads
on border
• buses are
parallel
lines
• function
blocks
rectangular
4
MIPS
10000
Processor
speed in
MIPS
1000
100
MIPS
10
1
1986
1988
1990
1992
1994
1996
1998
Processor speed increases by factor 10 each 5 years
5
capacity Kbits
Growth
of
DRAM
chip
capacity
100000
10000
1000
capacity Kbits
100
10
1
1975
1980 1985
1990 1995
2000
DRAM capacity grows by factor 10 each 5 years
6
Things you’ll be learning:
• How computers work, a basic foundation
• How to analyze their performance (or how not to!)
• Issues affecting modern processors (caches, pipelines)
Why learn this stuff?
• You want to call yourself a “computer scientist”
• You want to build software people use (need performance)
• You need to make a purchasing decision or offer “expert”
advice
• You want to understand specs of current Pentium
7
What is a computer?
• Components:
– input (mouse,
keyboard)
– output (display, printer)
– memory (disk drives,
DRAM, SRAM, CD)
– network
• Our primary focus:
– the processor (datapath and control)
• implemented using
millions of transistors
• Impossible to
understand by looking
at each transistor
• We need…abstraction
8
• PC motherboard in case with cooling for
CPU, daughter boards for peripherals
9
10
7 Layer model for architecture
• High Level • User Level: Application Programs
• High Level Languages
• Assembly Language / Machine
Code
• Micro-programmed / Hardwired
Control
• Low Level • Functional Units (Memory, ALU,
etc.)
• Logic Gates
• Transistors and Wires
11
12
Abstraction
• Delving into the depths reveals more
information
• An abstraction
– omits unneeded detail
– helps us cope with complexity
• What are some of the details that
appear in these familiar abstractions?
13
High- level language program (in C)
and equivalent assembler code
swap( int v[ ], int k)
{
int temp;
temp = v[ k];
v[ k] = v[ k+ 1];
v[ k+ 1] = temp;
}
$5=k ,
$4=addr of v[0]
swap:
muli $2, $5, 4
add $2, $4,$2
lw $15, 0($2)
lw $16, 4($2)
sw $16, 0($2)
sw $15, 4($2)
jr $31
v[k]
v[k+1]
return from
routine
14
Assembly language program (for MIPS), and
binary machine language program (for MIPS)
These 32 bit codes are not exactly the MIPS codes!!
swap:
muli $2, $5, 4
add $2, $4,$ 2
lw $15, 0($ 2)
lw $16, 4($ 2)
sw $16, 0($ 2)
sw $15, 4($ 2)
jr $31
00000000101000010000000000011000
00000000100011100001100000100001
10001100011000100000000000000000
10001100111100100000000000000100
10101100111100100000000000000000
10101100011000100000000000000100
00000011111000000000000000001000
15
16
Instruction Set Architecture
• A very important abstraction
– interface between hardware and low- level software
– standardizes instructions, machine language bit
patterns, etc.
• advantage:
– different implementations of the same architecture
• disadvantage:
– sometimes prevents using new innovations
17
Modern instruction set architectures
80x86/ Pentium/ K6,
PowerPC,
DEC Alpha,
MIPS,
SPARC,
HP
18
Where we are headed
•
•
•
•
•
•
•
•
Performance issues, vocabulary and motivation
A specific instruction set architecture
Arithmetic and how to build an ALU
Constructing a processor to execute our
instructions
Pipelining to improve performance
Memory: caches and virtual memory
I/ O
Assembler programming
19
Desirable features of systems
•
•
•
•
•
•
•
coherent
collaborative
connected
extensible
flexible
hidden
instrumented
•
•
•
•
•
•
•
maintainable
open
reusable
robust
scalable
secure
transportable
20
coherent
• made of individual components with
defined interfaces, unaffected by changes in
implementation of other components
21
collaborative
• data and transactions work across
environments from different vendors and
implementations
22
connected
• information and functionality are available
by defined interfaces, paths and connections
from elsewhere in the system
23
extensible
• the system components can be extended to
new unanticipated contexts and situations
24
flexible
• performance degrades gradually allowing
time for corrective action with evolving
business context and environment
25
hidden data
• interfaces are well defined, complexity of
implementation is hidden, simplicity of
design is presented
26
instrumented
• the system is provided with built in sensors
or data gathering devices for system
diagnostics
27
maintainable
• useful life of the system can be prolonged
by routine attention to features that change
or wear out
28
open
• implemented in publicly available standards
29
reusable
• components are well defined, subjected to
configuration management, and
documented so that they can be used again
in different contexts
30
robust
• able to adapt to changing requirements and
contexts, allowing for effective
modification, administration and
management; gradual degredation under
stress
31
scalable
• performance improves linearly or nearly
linearly as system components are added to
handle additional data volume, users and
processing requirements
32
secure
• defensible against intentional or accident
attack or damage
33
transportable
• components of the system can be installed
in a variety of implementations
• Also consider:
– Security
– Availability
– Performance
34