Title: ECE 511 Microprocessors
1ECE 511 Microprocessors
2Class Introduction
- About the Lecturer
- No TA for the class
- About Students need some info
- CS vs ECE vs Other
- Software vs Hardware
- Programmers vs Non-Programmers
- Full-timve vs Part-time
- New vs Old Students
- Course Webpage
- http//mason.gmu.edu/svenkata/ECE511
- Keep looking for all course-related information
3Beautiful Computer Courses
- Algorithms CS 583
- Operating Systems CS 571
- Microprocessors ECE 511
- Language Processors/Compilers CS 540
-
- Computer Networks ECE 542
-
4Course Outline
- Computer Organization, Design and Architecture
- Number systems and computer arithmetic
- Assembly language programming
- ISA and instruction encoding
- Performance evaluation and metrics
- Microprocessor design
- Data path
- Control path
- Pipelining
- Superscalar
- Out-of-order execution
- Memory hierarchy
- I/O subsystem
5Grading
- Exams - 60
- Midterm - 30
- Final - 30
- Projects - 30
- Project I - 15
- Project II - 15
- Homeworks - 10
- Class participation required for various
reasons - Grading policy relative
6Books
- Primary Textbook
- Modern Processor Design Fundamentals of
Superscalar Processors by John Paul Shen and
Mikko H. Lipasti, 1st Edition, McGraw Hilll,
2005. - Reference Textbook
- Computer Organization Design The
Hardware/Software Interface by David A. Patterson
and John L. Hennessy, 3rd Edition, June 2007. - Additional references are in the course webpage
- Lectures will not follow any book directly
7Introduction
- Overview of Computer Systems
8Overview
- Applications Developers
- Apple vs Microsoft
- Browser, Email, Blog, Calculator, Office, Games,
- Languages Compilers
- Assembly, C, C, Java, C, Perl, Python, Ruby
- Operating Systems
- Unix (BSD, Linux, Solaris, MacOS) vs Windows
- Communication Network Systems
- LAN, MAN, WAN and Wireless
- TCP/IP
- Computer Systems
- Apple, Microsoft, Intel, IBM, HP, Google, Dell
- Microprocessors
- General purpose - Pentium vs AMD vs PowerPC
- Special purpose Embedded, Cell and Network
Processors
9History of Microprocessor
- A CPU that is manufactured as a single integrated
circuit is usually known as a microprocessor. - Inventors
- Intel vs Texas Instruments (TI)
- Microprocessor vs Microcontroller (single chip
calculator) - Jack Kilby, Nobel Prize laureate in physics in
2000 for his invention of the integrated circuit
in 1958 while working at TI. He is also the
inventor of handheld calculator and thermal
printer. - Gary Boone, TI was awarded U.S. Patent 3,757,306
for the single-chip microprocessor architecture
on September 4, 1973 - So many pioneers
10Hardware Designer vs Computer Architect
- Hardware Designer thinks about circuits,
components, timing, functionality, ease of
debugging - construction engineer
- Computer Architect thinks about high-level
components, how they fit together, how they work
together to deliver performance. - building architect
Big picture, high-level view
11Why do I care?
- It is a core class
- You may actually do computer architecture someday
- You may actually care about software performance
someday - The ability of application programs, compilers,
operating systems, etc. to deliver performance
depends critically on an understanding of the
underlying computer organization. - That becomes more true every year.
- Computer architectures become more difficult to
understand every year.
12What you can expect to get out of this class
- To become conversant with computer architecture
terms and concepts. - To understand fundamental concepts in computer
architecture and how they impact computer and
application performance. - To be able to read and evaluate architectural
descriptions of even todays most complex
processors. - To gain experience designing a working CPU
completely from scratch. - To learn experimental techniques used to evaluate
advanced architectural ideas.
13Which is faster?
- load R1, addr1
- store R1, addr2
- add R0, R2 -gt R3
- subtract R4, R3 -gt R5
- add R0, R6 -gtR7
- store R7, addr3
- load R1, addr1
- add R0, R2 -gt R3
- add R0, R6 -gt R7
- store R1, addr2
- subtract R4, R3 -gt R5
- store R7, addr3
Twice as fast on some machines and same on
others
- Three ways to improve performance
- Algorithm improvement
- Compiler Generated Code improvement
- Processor execution improvement
14Instruction Set Architecture (ISA)
15The Instruction Set Architecture
- Is the agreed-upon interface between all the
software that runs on the machine and the
hardware that executes it.
Application
Software
Operating
System
Compiler
Instruction Set Architecture
I/O system
Instr. Set Proc.
Digital Design
Hardware
Circuit Design
Understand the Power of Abstraction
16Computer Organization
- Once you have decided on an ISA, you must decide
how to design the hardware to execute those
programs written in the ISA as fast as possible
(or as cheaply as possible, or using as little
power as possible, ).
- This must be done every time a new implementation
of the architecture is released, with typically
very different technological constraints
17What is Computer Architecture?
What the machine looks like
- Computer Architecture Machine Organization
- Instruction
Set Architecture
How you talk to the machine
18How to Speak Computer
High Level Language Program
temp vk vk vk1 vk1 temp
Need translation from application to physics
19Stored Program Concept
- Todays computers are build on two key
principles - Instructions are represented as numbers
- Programs are stored in memory to be read or
written, just like numbers
I/O Subsystem
Address Data Bus
CPU
20The Five Classic Components of Computers
Computer
Control
Input
Memory
Output
Datapath
We will study these components in this class
21Calculator vs Computer
Memory
Data Stream (output)
Data Stream (input)
Instructions/Control Stream (Input)
ALU
Registers
CPU
22The Instruction Set Architecture
- That part of the architecture that is visible to
the programmer - opcodes (available instructions)
- number and types of registers
- instruction formats
- storage access, addressing modes
- exceptional conditions
23Key ISA decisions
operation
destination operand
- operations
- how many?
- which ones
y x b
source operands
- operands
- how many?
- location
- types
- how to specify?
(add r1, r2, r5)
- instruction format
- size
- how many formats?
We will learn in this course how to make these
decisions
24Processor Performance with Time
Technology shift towards multi-cores Multiple
processors on the same chip
Performance
Scalar
Superscalar
Out-of-order
SMT
Year of introduction
We will study the various kinds of processors
25Price being paid
Always need to think about design in terms of
constraints
26The Challenge of Computer Architecture
- The industry changes faster than any other.
- The ground rules change every year.
- new problems
- new opportunities
- different tradeoffs
- Its all about making programs run faster than
the next guys machine. Or more efficiently.
27Microprocessor Design
28The Instruction Execution Cycle
Instruction Fetch
Obtain instruction from program storage
29CPU Stages
30CPU Blocks
Back End
Front End
31CPU Elements
- Program Counter or PC contains the address of the
instruction that will be executed next - Stack a data structure of last in first out
type - A stack is described by a special register
stack pointer - It can be used explicitly to save/restore data
- It is used implicitly by procedure call
instructions (if available in the instruction
set) - IR instruction register that holds the current
instruction being processed by the
microprocessor it is not exposed through the
instruction set architecture just an
organization element
32Computer of the day
Input ears Output mouth Memory paper Datapath
eye-brain-pencil Control brain
Computers 4000 BC to 1940s
- Human brain has about 10 billion neurons.
- Each is connected to about 100,000 other neurons.
- A neuron can fire about 1000 times/sec.
- Estimate when microprocessors will exceed a
humans brainpower. - Assume each fire decision corresponds to
computation of 100,000 transistors (one per
connection) for one clock cycle.
33Number Systems andBit Operations