Transcript Chapter 1

CHAPTER 1
COMPUTER
ABSTRACTIONS AND
TECHNOLOGY
Parts of these notes have been adapter from those of
Prof. Professor Mike Schulte, Prof. D. Patterson,
and Prof Irwin (PSU)
1
Course Content
• Text book: Computer Organization and Design:
The Hardware/Software Interface, 2nd Ed.,
Patterson and Hennessy, Morgan Kaufman, 1997.
• Topics covered include :
–
–
–
–
–
–
–
–
Computer Architecture and Technology
Computer Performance
Computer Instruction Sets
Computer Arithmetic
Processor Design
Pipelined Processors
Memory System Design
Input/Output System Design
2
What is Computer Architecture?
• Computer Architecture is the design of the computer at the
hardware/software interface.
• Computer Architecture = Instruction Set Architecture
+ Machine Organization
Computer Architecture
Instruction Set Design
Machine Organization
at the above interface.
of Hardware Components.
Compiler/System View
Logic Designer’s View
3
Language of the Machine
• Computer operates using number in base 2, or binary
numbers
– Why?
• Instructions are represented by binary numbers (Ch 3)
• First programmers communicated using binary numbers
– 100110010100000 represents the instruction to add two numbers together
• Programs invented to translate symbols to binary
– Assembler
– Less tedious and more readable
– add A,B
4
Language of the Machine
• Eventually, higher level languages invented that translated
from higher level notations
– Compiler
• Program that accepts the more natural notation
– Fortran was invented in 1954
• Benefits
– Allow programmers to think in more natural language
– Languages could be designed according to their intended use
• Fortran for scientific computing
– Improve productivity of the programmers
– Code portable between different platforms
5
Language of the Machine
• Libraries of code developed
– Reusing code more efficient than writing everything from scratch
– Subroutines for inputting and outputting data one of the first libraries
• Operating systems were then developed to supervise the
running of programs and allocate resources to the
programs
• Categories of software
– Systems software – aimed at programmers
• OS, assembler, compiler
– Application software – aimed at users
• Spread sheets, text editors
6
Instruction Set Architecture
• Instruction set architecture has the attributes of a
computing system as seen by the assembly
language programmer or compiler. This includes
– Instruction Set (what operations can be performed?)
– Instruction Format (how are instructions specified?)
– Data storage (where is data located?)
– Addressing Modes (how is data accessed?)
– Exceptional Conditions (what happens if something goes wrong?)
• A good understanding of computer architecture is important
for compiler writers, operating system designers, and
general computer programmers.
7
Instruction Set Architecture
• An abstract interface between the hardware and the lowest
level software of a machine that encompasses all the
information necessary to write a machine language
program that will run correctly, including instructions,
registers, memory access, I/O, and so on.
8
Key considerations in “Computer Architecture”
Application
Operating
System
Compiler
Firmware
Instr. Set Proc. I/O system
Software
Instruction Set
Architecture
Datapath & Control
Digital Design
Circuit Design
Hardware
Layout
• Coordination of many levels of abstraction
• Under a rapidly changing set of forces
• Design, Measurement, and Evaluation
9
Moore’s Law
• In 1965, Gordon Moore predicted that the number of
transistors that can be integrated on a die would double
every 18 to 24 months (i.e., grow exponentially with time).
10
Processor Performance Increase
10000
Performance (SPEC Int)
Intel Pentium 4/3000
DEC Alpha 21264A/667
DEC Alpha 21264/600
1000
DEC Alpha 4/266
100
DEC AXP/500
Intel Xeon/2000
DEC Alpha 5/500
DEC Alpha 5/300
IBM POWER 100
HP 9000/750
10
IBM RS6000
SUN-4/260
1
1987
MIPS M2000
MIPS M/120
1989
1991
1993
1995
Year
1997
1999
2001
2003
11
DRAM Capacity Growth
512M
256M
128M
1000000
64M
Kbit capacity
100000
16M
10000
4M
1M
1000
256K
64K
100
16K
10
1976 1978 1980 1982 1984 1986 1988 1990 1992 1994 1996 1998 2000 2002
Year of introduction
12
Abstraction
• An Abstraction has levels. Delving into the depths
of these levels reveals more information.
• An abstraction omits unneeded detail, helps us cope
with complexity.
• Abstraction is the approach used in the design of
software and hardware.
• An abstraction system consists of hierarchical
levels with each lower level hiding details from the
level above.
13
Levels of abstraction
• Computer architecture uses various levels of abstractions.
• Each level of abstraction consists of
– an interface (outside view of what it does), and
– an implementation (inside view of how it works)
Implementation
Interface
B
2 x 1 Mux
A
S
A
Y
NAND
NAND
B
Y
NAND
14
S
Instruction Set Architecture: An Abstraction
• 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
• Modern instruction set architectures:
80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS,
SPARC, HP
15
Application of Abstraction: A Hierarchical
Layer of Computer Languages
High Level Language
Program
Compiler
lw $15,
lw $16,
sw$16,
sw$15,
Assembly Language
Program
Assembler
Machine Language
Program
0000
1010
1100
0101
1001
1111
0110
1000
1100
0101
1010
0000
0110
1000
1111
1001
0($2)
4($2)
0($2)
4($2)
1010
0000
0101
1100
1111
1001
1000
0110
0101
1100
0000
1010
1000
0110
1001
1111
Machine Interpretation
Control Signal
Specification
°
°
ALUOP[0:3] <= InstReg[9:11] & MASK
16
The Organization of a Computer
• Since 1946 all computers have had 5 main components
Processor
Input
Control
Memory
Datapath
Output
17
The Organization of a Computer
• Processor:
– Data path - to do arithmetic and logic: e.g. adders, multipliers, shifters
– Control - to give directions to the other components: e.g. tells the data
path, memory, and IO devices what to do according to the instructions of
the program
• Memory: Holds data and instructions: e.g. cache, main
memory, disk.
• Input: Sends data to the computer: e.g. keyboard, mouse.
• Output: Gets data from the computer: e.g. screen, sound
card, printer.
18
Inside the Pentium 4 Processor Chip
19
PC Motherboard Closeup
20
Instruction Execution
Instruction
Obtain instruction from program storage
Fetch
Decode
Determine required actions and instruction
size
Operand
Locate and obtain operand data
Instruction
Fetch
Execute
Result
Compute result value or status
Deposit results in storage for later use
Store
Next
Instruction
Determine successor instruction
21
Summary
• Computer Architecture includes the design of the
Instruction Set Architecture (programmer’s view) and
the Machine Organization (logic designer’s view).
• Levels of abstraction, which consist of an interface and
an implementation are useful to manage designs.
• Processor performance increases rapidly, but the
speeds of memory and I/0 have not kept pace.
• Computer systems are comprised on datapath,
memory, input devices, output devices, and control.
22
Where we are headed
•
•
•
•
•
•
Instructions: Language of the machine (chapter 3)
The role of performance (chapter 2)
Arithmetic and how to build an ALU (Chapter 4)
The basics of logical design (Appendix B)
Processor: data path and control (Chapter 5)
Memory: caches and virtual memory (Chapter 7)
23