Professor Mike Schulte Computer Architecture ECE 201
Lecture 1:
Computer Architecture and Technology
Professor Mike Schulte
Computer Architecture
ECE 201
Today’s Lecture
° Course Objectives, Format, and Grading
° Course Prerequisites and Content
° Introduction to Computer Architecture
° Computer Technology
° Computer Components
1
Course Objective
° Course Objective : To give students a clear
understanding of the architecture and organization
of modern computers, and the cost and
performance tradeoffs involved in there design.
Technology
Parallelism
Applications
Computer Architecture:
• Instruction Set Design
• Machine Organization
• Implementation
Operating
Systems
Programming
Languages
Interface Design
Measurement &
History
Evaluation
Class Goals
° Show you how to understand modern computer
architecture in its rapidly changing form - discuss
fundamental ideas, plus real world examples.
° Provide you with an understanding of current and
future trends in computer architecture
° Show you how to design by leading you through
the process on challenging problems
° Give you exposure to digital design tools
° Make the class informative and enjoyable. So ...
• ask questions
• offer feedback on the course
• come to lecture and office hours
• learn from those around you
2
Lecture Format
° Lectures presented from Power Point slides &
transparencies
° Examples worked on the board
° Copies of slides, homeworks and other information can
be downloaded from the course home page at:
http://www.cse.lehigh.edu/~mschulte/ece201-02
° Readings from the book are assigned to complement the
lectures.
° Look over the notes and the material from the book
before coming to class (not today :).
° Class is designed to be interactive => ask and answer
questions.
° Office Hours: T, TH 12:00-1:00 or by appointment, PL 326.
Grading
° Grading for the course is as follows:
•
•
•
•
Homework and Quizzes :
Midterm Exam :
Class Project :
Final Exam :
25%
20%
25%
30%
° Homework
• Due at the start of class
• Encouraged to work together, but make sure work is your own
• For some homeworks, you will be asked to work in teams
° Exams
• Open book and open note (most likely)
• Makeup exams given only under extreme circumstances
• Final is comprehensive
° Projects •
•
•
•
Design and simulate a version of the MIPS processor
Done in teams of 3 to 4 students
Initial Proposal, Status Report, Final Report, Project Demo
More details later
3
Prerequisites
° The course prerequisite is ECE 33 or the equivalent.
° You are expected to be familiar with:
• Boolean algebra
• Binary number systems
• 2’s complement arithmetic
• Combinational circuits (e.g., AND/OR gates)
• Sequential circuits (e.g. registers)
• Assembly language programming
° If you do not have the above prerequisites, please
talk to me after class.
Course Info
° If it has been a long time since you have had ECE
33, it would be a good idea to look over your ECE
33 class notes and Appendix B.
° This class will probably be lots of work, but
hopefully you’ll also have fun and learn a lot.
° For the class projects and some homeworks, you
will be expected to work in teams - start forming
you teams now.
° Please give me feedback whenever you have
questions/concerns - feedback form on web page
or just stop by my office
° Email for course related questions:
ece201@cse.lehigh.edu
4
Course Content
° Text book: Computer Organization and Design:
The Hardware/Software Interface, 2nd Ed.,
Patterson and Hennessy, Morgan Kaugman, 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
Three Great Teaching Assistants
Name: Tony Deliebro
Email: apd2@lehigh.edu
Office hours: TBD
Name: Venkatram Muddhasani
Email: vem3@lehigh.edu
Name: Faisal Khan
Email: fmk2@lehigh.edu
Offices and Offices hours coming soon!
5
Things We Hope You Will Learn from ECE201
° Keep it simple and make it work
• Fully test everything individually and then together
• Retest everything whenever you make any changes
• Last minute changes are big “no nos”
° Group dynamics. Communication is the key to
success:
• Be open with others of your expectations and your problems
• Everybody should be there on design meetings when key decisions
are made and jobs are assigned
° Planning is very important:
• Promise what you can deliver; deliver more than you promise
• Murphy’s Law: things DO break at the last minute
-
Don’t make your plan based on the best case scenarios
-
Freeze you design and don’t make last minute changes
° Never give up! It is not over until you give up.
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
Computer Interface
Hardware Components
Compiler/System View
Logic Designer’s View
6
The Instruction Set: a Critical Interface
software
instruction set
hardware
Instruction Set Architecture
° Instruction set architecture is 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
MIPS R3000 Instruction Set Architecture (Summary)
Registers
° Instruction Categories
•
Load/Store
•
Computational
•
Jump and Branch
•
Floating Point
•
Memory Management
•
Special
R0 - R31
PC
HI
LO
3 Instruction Formats: all 32 bits wide
OP
rs
rt
OP
rs
rt
OP
rd
sa
funct
immediate
jump target
Machine Organization
° Machine organization is the view of the computer
that is seen by the logic designer. This includes
• Capabilities & performance characteristics of functional units
(e.g., registers, ALU, shifters, etc.).
• Ways in which these components are interconnected
• How information flows between components
• Logic and means by which such information flow is controlled
• Coordination of functional units to realize the ISA
° Typically the machine organization is designed to
meet a given instruction set architecture.
° However, in order to design good instruction sets, it
is important to understand the how the architecture
might be implemented.
8
Key considerations in “Computer Architecture”
Application
Operating
System
Compiler
Firmware
Instr. Set Proc. I/O system
Software
Instruction Set
Architecture
Datapath & Control
Hardware
Digital Design
Circuit Design
Layout
° Coordination of many levels of abstraction
° Under a rapidly changing set of forces
° Design, Measurement, and Evaluation
Levels of abstraction
° An important concept in computer architecture is
the use of 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
Y
NAND
B
S
9
Forces on Computer Architecture
Technology
Programming
Languages
Applications
Computer
Architecture
Operating
Systems
History
Technology Trends
DRAM chip capacity
Microprocessor Logic Density
100000000
DRAM
Size
1980
64 Kb
1983
256 Kb
1986
1 Mb
1989
4 Mb
1992
16 Mb
1996
64 Mb
1999
256 Mb
10000000
R10000
Pentium
R4400
i80486
1000000
Transistors
Year
i80386
i80286
100000
R3010
i8086
SU MIPS
i80x86
M68K
MIPS
Alpha
10000
i4004
1000
2002
1 Gb
1970
1975
1980
1985
1990
1995
2000
2005
° In 1985, the single-chip 32-bit processor and the
single-board computer emerged
° By 2002, we will have entire computer systems on a
single chip.
10
Technology trends
° Processor
• logic capacity: increases about 30% per year
• clock rate: increases about 20% per year
• performance: increases about 50% per year
° Memory
• DRAM capacity: increases about 60% per year (4x every 3 years)
• performance: increases about 3.4% per year
° Disk
• capacity: about 60% per year
• performance: increases about 3.4% per year
° Network Bandwidth
• Bandwidth increasing more than 100% per year!
° What impact does this have on future computer
systems?
° What impact does this have on design decisions?
Technoloy Trends
11
Processor Performance
performance now improves - 50% per year (2x every 1.5 years)
300
250
RISC
200
150
Intel x86
RISC
introduction
100
35%/yr
50
1995
1994
1993
1992
1991
1990
1989
1988
1987
1986
1985
1984
1983
1982
0
Year
Levels of Representation
temp = v[k];
High Level Language
Program
v[k] = v[k+1];
v[k+1] = temp;
Compiler
lw$15,
lw$16,
sw
sw
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)
$16, 0($2)
$15, 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]
Computer Architecture and Technology
Professor Mike Schulte
Computer Architecture
ECE 201
Today’s Lecture
° Course Objectives, Format, and Grading
° Course Prerequisites and Content
° Introduction to Computer Architecture
° Computer Technology
° Computer Components
1
Course Objective
° Course Objective : To give students a clear
understanding of the architecture and organization
of modern computers, and the cost and
performance tradeoffs involved in there design.
Technology
Parallelism
Applications
Computer Architecture:
• Instruction Set Design
• Machine Organization
• Implementation
Operating
Systems
Programming
Languages
Interface Design
Measurement &
History
Evaluation
Class Goals
° Show you how to understand modern computer
architecture in its rapidly changing form - discuss
fundamental ideas, plus real world examples.
° Provide you with an understanding of current and
future trends in computer architecture
° Show you how to design by leading you through
the process on challenging problems
° Give you exposure to digital design tools
° Make the class informative and enjoyable. So ...
• ask questions
• offer feedback on the course
• come to lecture and office hours
• learn from those around you
2
Lecture Format
° Lectures presented from Power Point slides &
transparencies
° Examples worked on the board
° Copies of slides, homeworks and other information can
be downloaded from the course home page at:
http://www.cse.lehigh.edu/~mschulte/ece201-02
° Readings from the book are assigned to complement the
lectures.
° Look over the notes and the material from the book
before coming to class (not today :).
° Class is designed to be interactive => ask and answer
questions.
° Office Hours: T, TH 12:00-1:00 or by appointment, PL 326.
Grading
° Grading for the course is as follows:
•
•
•
•
Homework and Quizzes :
Midterm Exam :
Class Project :
Final Exam :
25%
20%
25%
30%
° Homework
• Due at the start of class
• Encouraged to work together, but make sure work is your own
• For some homeworks, you will be asked to work in teams
° Exams
• Open book and open note (most likely)
• Makeup exams given only under extreme circumstances
• Final is comprehensive
° Projects •
•
•
•
Design and simulate a version of the MIPS processor
Done in teams of 3 to 4 students
Initial Proposal, Status Report, Final Report, Project Demo
More details later
3
Prerequisites
° The course prerequisite is ECE 33 or the equivalent.
° You are expected to be familiar with:
• Boolean algebra
• Binary number systems
• 2’s complement arithmetic
• Combinational circuits (e.g., AND/OR gates)
• Sequential circuits (e.g. registers)
• Assembly language programming
° If you do not have the above prerequisites, please
talk to me after class.
Course Info
° If it has been a long time since you have had ECE
33, it would be a good idea to look over your ECE
33 class notes and Appendix B.
° This class will probably be lots of work, but
hopefully you’ll also have fun and learn a lot.
° For the class projects and some homeworks, you
will be expected to work in teams - start forming
you teams now.
° Please give me feedback whenever you have
questions/concerns - feedback form on web page
or just stop by my office
° Email for course related questions:
ece201@cse.lehigh.edu
4
Course Content
° Text book: Computer Organization and Design:
The Hardware/Software Interface, 2nd Ed.,
Patterson and Hennessy, Morgan Kaugman, 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
Three Great Teaching Assistants
Name: Tony Deliebro
Email: apd2@lehigh.edu
Office hours: TBD
Name: Venkatram Muddhasani
Email: vem3@lehigh.edu
Name: Faisal Khan
Email: fmk2@lehigh.edu
Offices and Offices hours coming soon!
5
Things We Hope You Will Learn from ECE201
° Keep it simple and make it work
• Fully test everything individually and then together
• Retest everything whenever you make any changes
• Last minute changes are big “no nos”
° Group dynamics. Communication is the key to
success:
• Be open with others of your expectations and your problems
• Everybody should be there on design meetings when key decisions
are made and jobs are assigned
° Planning is very important:
• Promise what you can deliver; deliver more than you promise
• Murphy’s Law: things DO break at the last minute
-
Don’t make your plan based on the best case scenarios
-
Freeze you design and don’t make last minute changes
° Never give up! It is not over until you give up.
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
Computer Interface
Hardware Components
Compiler/System View
Logic Designer’s View
6
The Instruction Set: a Critical Interface
software
instruction set
hardware
Instruction Set Architecture
° Instruction set architecture is 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
MIPS R3000 Instruction Set Architecture (Summary)
Registers
° Instruction Categories
•
Load/Store
•
Computational
•
Jump and Branch
•
Floating Point
•
Memory Management
•
Special
R0 - R31
PC
HI
LO
3 Instruction Formats: all 32 bits wide
OP
rs
rt
OP
rs
rt
OP
rd
sa
funct
immediate
jump target
Machine Organization
° Machine organization is the view of the computer
that is seen by the logic designer. This includes
• Capabilities & performance characteristics of functional units
(e.g., registers, ALU, shifters, etc.).
• Ways in which these components are interconnected
• How information flows between components
• Logic and means by which such information flow is controlled
• Coordination of functional units to realize the ISA
° Typically the machine organization is designed to
meet a given instruction set architecture.
° However, in order to design good instruction sets, it
is important to understand the how the architecture
might be implemented.
8
Key considerations in “Computer Architecture”
Application
Operating
System
Compiler
Firmware
Instr. Set Proc. I/O system
Software
Instruction Set
Architecture
Datapath & Control
Hardware
Digital Design
Circuit Design
Layout
° Coordination of many levels of abstraction
° Under a rapidly changing set of forces
° Design, Measurement, and Evaluation
Levels of abstraction
° An important concept in computer architecture is
the use of 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
Y
NAND
B
S
9
Forces on Computer Architecture
Technology
Programming
Languages
Applications
Computer
Architecture
Operating
Systems
History
Technology Trends
DRAM chip capacity
Microprocessor Logic Density
100000000
DRAM
Size
1980
64 Kb
1983
256 Kb
1986
1 Mb
1989
4 Mb
1992
16 Mb
1996
64 Mb
1999
256 Mb
10000000
R10000
Pentium
R4400
i80486
1000000
Transistors
Year
i80386
i80286
100000
R3010
i8086
SU MIPS
i80x86
M68K
MIPS
Alpha
10000
i4004
1000
2002
1 Gb
1970
1975
1980
1985
1990
1995
2000
2005
° In 1985, the single-chip 32-bit processor and the
single-board computer emerged
° By 2002, we will have entire computer systems on a
single chip.
10
Technology trends
° Processor
• logic capacity: increases about 30% per year
• clock rate: increases about 20% per year
• performance: increases about 50% per year
° Memory
• DRAM capacity: increases about 60% per year (4x every 3 years)
• performance: increases about 3.4% per year
° Disk
• capacity: about 60% per year
• performance: increases about 3.4% per year
° Network Bandwidth
• Bandwidth increasing more than 100% per year!
° What impact does this have on future computer
systems?
° What impact does this have on design decisions?
Technoloy Trends
11
Processor Performance
performance now improves - 50% per year (2x every 1.5 years)
300
250
RISC
200
150
Intel x86
RISC
introduction
100
35%/yr
50
1995
1994
1993
1992
1991
1990
1989
1988
1987
1986
1985
1984
1983
1982
0
Year
Levels of Representation
temp = v[k];
High Level Language
Program
v[k] = v[k+1];
v[k+1] = temp;
Compiler
lw$15,
lw$16,
sw
sw
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)
$16, 0($2)
$15, 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]