Post on 02-Oct-2020
Computer System Architecture
Lect - 1 Introduction
Course Information • Course Material
– Lectures slides, assignments (computer/written), solutions to problems, projects, and announcements will be uploaded on course web page.
http://biomisa.org/usman/computer-system-architecture
3
Course Information • Computer Organization and Design The Hardware/Software Interface, David
Patternson & John Hennessy, 5th Edition, 2013 (Main Text Book)
• Computer Architecture A Quantitative Approach, John Hennessy & David
Patternson, 5th Edition, 2012
• Computer Organization and Architecture, William Stallings, 9th Edition, 2012
Course Contents
• Introduction to computer organization and architecture
• Computer Abstractions and Technology
• Architecture and Microarchitecture
• Instructions: Language of the computer
• MIPS architecture
• Arithmetic for computers
• CPU Performance
• The processor: Datapath and Control
• Pipelining & Microcoded Microarchitecture
• Cache and control hazards
• Main Memory Organization
• External Memory and I/Os
Where are We Going??
µProc
60%/yr.
(2X/1.5yr)
DRAM
9%/yr.
(2X/10
yrs) 1
10
100
1000
198
0
198
1
198
3
198
4
198
5
198
6
198
7
198
8
198
9
199
0
199
1
199
2
199
3
199
4
199
5
199
6
199
7
199
8
199
9
200
0
DRAM
CPU
198
2
Processor-Memory
Performance Gap:
(grows 50% / year)
Perf
orm
an
ce
Time
“Moore’s Law”
Single/multicycle
Datapaths
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
IFetch Dcd Exec Mem WB
Pipelining
Memory Systems
I/O
Arithmetic
Course Objectives
• How are programs written in a high-level language, such as C or Java, translated into the language of hardware and how does the hardware execute the resulting program?
• What is the interface between the software and the hardware, and how does software instruct the hardware to perform needed functions?
• What determines the performance of a program, and how can a programmer improve the performance?
• What techniques can be used by hardware designers to improve the performance?
Grading Policy
Sessional Exams: 20% Quizzes (4-6): 10% Design and numerical assignments: 08% Lab 15%
Presentation/Project: 07%
Final Exam: 40%
8
Introduction • Rapidly changing field:
– vacuum tube -> transistor -> IC -> VLSI
– memory capacity and processor speed is doubling every 1.5 years:
• Things you’ll be learning:
– how computers work, a basic foundation
– how to analyze their performance (or how not to!)
– issues affecting design of modern processors (caches, pipelines)
• Why learn this stuff?
– You want to design state-of-art system
– you want to call yourself a “computer scientist or engineer”
– you want to build software people use (need performance)
– you need to make a purchasing decision or offer “expert” advice
What is Computer Architecture?
Application
2
What is Computer Architecture?
Physics
Application
3
What is Computer Architecture?
Physics
Application
Gap too large to bridge in one step
4
What is Computer Architecture?
In its broadest definition, computer architecture is the design of the abstraction/implementation layers that allow us to execute information processing applications efficiently using manufacturing technologies
Physics
Application
Gap too large to bridge in one step
5
What is Computer Architecture?
In its broadest definition, computer architecture is the design of the abstraction/implementation layers that allow us to execute information processing applications efficiently using manufacturing technologies
Physics
Application
Gap too large to bridge in one step
6
Abstractions in Modern Computing Systems
Physics
Devices
Circuits
Gates
Register-Transfer Level
Microarchitecture
Instruction Set Architecture
Operating System/Virtual Machines
Programming Language
Algorithm
Application
7
Computer Architecture is Constantly Changing
Physics
Devices
Circuits
Gates
Register-Transfer Level
Microarchitecture
Instruction Set Architecture
Operating System/Virtual Machines
Programming Language
Algorithm
Application Application Requirements: • Suggest how to improve architecture • Provide revenue to fund development
Technology Constraints: • Restrict what can be done efficiently • New technologies make new arch
possible
9
Computer Architecture is Constantly Changing
Physics
Devices
Circuits
Gates
Register-Transfer Level
Microarchitecture
Instruction Set Architecture
Operating System/Virtual Machines
Programming Language
Algorithm
Application Application Requirements: • Suggest how to improve architecture • Provide revenue to fund development
Technology Constraints: • Restrict what can be done efficiently • New technologies make new arch
possible
Architecture provides feedback to guide application and technology research directions
10
Computers Then…
IAS Machine. Design directed by John von Neumann. First booted in Princeton NJ in 1952 Smithsonian Institution Archives (Smithsonian Image 95-06151)
11
Computers Now
12
Robots
Supercomputers Automobiles
Laptops
Set-top boxes
Smart phones
Servers Media Players
Sensor Nets
Routers
Cameras Games
[from Kurzweil]
Major Technology Generations Bipolar
nMOS
CMOS
pMOS
Relays
Vacuum Tubes
Electromechanical
13
9
What is a computer? • Components:
– input (mouse, keyboard)
– output (display, printer)
– memory (disk drives, DRAM, SRAM, CD)
– network
CPU
Computer
Control
Datapath
Memory Devices
Input
Output
10
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
Modern instruction set architectures:
– 80x86/Pentium/K6, PowerPC, DEC Alpha, MIPS, SPARC, HP
11
Instruction Set Architecture
• ISA: 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. “... the attributes of a [computing] system as seen by the programmer, i.e.,
the conceptual structure and functional behavior, as distinct from the organization of the data flows and controls, the logic design, and the physical implementation.” – Amdahl, Blaauw, and Brooks, 1964
– Enables implementations of varying cost and performance to run identical software
12
Interaction Between Components
I/O system Instr. Set Proc.
Compiler
Operating System
Application
Digital Design
Circuit Design
Instruction Set Architecture
Firmware
Memory
system
Datapath & Control
13
Abstractions
• Our primary focus:
– understanding performance
– the processor (datapath and control)
– implemented using millions of transistors
– impossible to understand by looking at each transistor
– we need an abstraction
14
The HW/SW Interface
Compiler
lw $15, 0($2)
add $16, $15, $14
add $17, $15, $13
lw $18, 0($12)
lw $19, 0($17)
add $20, $18, $19
sw $20, 0($16)
a[i] = b[i] + c;
Hardware
Systems software
(OS, compiler)
Application software
Assembler
000000101100000
110100000100010
…
15
Abstractions: A View of Hardware/Software Hierarchy
• Hardware and software are layered
• Some functions can be moved back and forth
• System software is a collection of programs
– OS, compilers are some examples
– It makes job of individuals user easy
• Application software programs
– Used by many users
16
What is Computer Architecture?
• A programmer’s view of machine
• What does it include?
• What is Computer Organization, Structure, and Function?
Architecture & Organization (1)
• Architecture is those attributes visible to the programmer – Instruction set, number of bits used for data
representation, I/O mechanisms, addressing techniques.
– e.g. Is there a multiply instruction?
• Organization is how features are implemented – Control signals, interfaces, memory technology.
– e.g. Is there a hardware multiply unit or is it done by repeated addition?
Architecture & Organization (2)
• Same architecture but different organization
• All Intel x86 family share the same basic architecture
• The IBM System/370 family share the same basic architecture (introduced in 1970 & survived till late)
• This gives – code compatibility, at least backwards
– Easy upgrade, without having to abandon software already developed
Structure & Function
• Computer is a complex system with millions of elementary electronic
components
• How can one describe them? Key is to recognize the hierarchical nature of the
system
• Hierarchical system: a set of interrelated subsystems
• At each level of hierarchy designer is concerned with two things: – Structure: the way in which components relate to each other
– Function: the operation of individual components as part of the structure
• We will use a top down approach for better understanding
Function • Basic functions a computer can perform are:
– Data processing • Sorting
• Arithmetic
– Data storage • Must be able to store data
• Even if data is processed on fly
• Short term storage, Long term storage
– Data movement • Moving data to directly connected device, known as I/O
• Moving data to remote device, known as Data Communication
– Control • Programmers control these functions by providing instructions
• Control unit manages the resources in response to those instructions
Functional View
Operations (a) Data movement
Operations (b) Storage
Operation (c) Processing from/to storage
Operation (d) Processing from storage to I/O
26
Computer Components
• Input/output devices
• Secondary storage: non-volatile, slower, cheaper
• Primary storage: volatile, faster, costlier
• CPU/processor (datapath and control)
Structure - Top Level (Four main structural Components)
Computer
Main
Memory
Input
Output
Systems
Interconnection
Peripherals
Communication
lines
Central
Processing
Unit
Computer There may be one
or more of each of
these components
Structure - The CPU
Computer Arithmetic
and
Login Unit
Control
Unit
Internal CPU
Interconnection
Registers
CPU
I/O
Memory
System
Bus
CPU
Structure - The Control Unit
CPU
Control
Memory
Control Unit
Registers and
Decoders
Sequencing
Logic
Control
Unit
ALU
Registers
Internal
Bus
Control Unit
Readings from Book
• Chapter – 1 (William Stallings)
• Chapter – 1 (Computer Organization and Design)
31
Acknowledgements
• Computer Organization and Design The Hardware/Software Interface, David Patternson & John
Hennessy, 5th Edition, 2013
• Computer Architecture A Quantitative Approach, John Hennessy & David Patternson, 5th
Edition, 2012
• Computer Organization and Architecture, William Stallings, 9th Edition, 2012
• Prof. Dr. David Wentzlaff Lecture Notes, Department of Electrical Engineering Princeton
University
Mat
eria
l in
th
ese
slid
es h
as b
een
tak
en f
rom
, th
e fo
llow
ing
reso
urc
es