|
Muhamed F. Mudawar
mudawar@kfupm.edu.sa
Office: Building 22, Room 328, Phone: 4642
Schedule and
Office Hours
Syllabus |
Lectures |
Exercises |
Assignments |
Lab |
Tools and Manuals
Announcements
Final Exam: Wednesday, December 19, at 7 PM, Building 22,
Room 130
Quiz 6: Performance, Tuesday, December 4, 2018
Quiz 5: Single-Cycle CPU Design, Sunday, November 25
Midterm
Exam: Saturday, November 3, 2018, at 10 AM, Room 22/119
Quiz 4: Floating-point numbers and arithmetic, Thursday,
November 1
Quiz 3: MIPS Functions, Tuesday, October 23
Quiz 2: ALU and Control Flow instructions, Tuesday, October
2
Quiz 1: Introduction to Assembly Language, Tuesday,
September 18
Assistant
Anas Abu Dagga
Email:
g201202060@kfupm.edu.sa
Questions related to assignments
and grading should be directed to the teaching assistant
Textbooks
David A. Patterson and John L. Hennessy, Computer Organization &
Design, The Hardware/Software Interface, Fifth Edition, Morgan
Kaufmann Publishers, 2013.
Course Objectives
Towards the end of this course,
students should be able to:
Describe the instruction set
architecture of a MIPS processor
Analyze, write, and test MIPS
assembly language programs
Describe the
organization/operation of integer and floating-point arithmetic units
Design the datapath and control
of a single-cycle processor
Design the datapath and control
of a pipelined processor and handle hazards
Describe the
organization/operation of memory and caches
Analyze the performance of
processors and caches
Academic Honesty
View
important information on academic honesty
Sample Exams
Exam 1 - Fall 2007
Exam 1 - Fall 2015
Exam 1 - Fall 2016
Exam 1 - Spring 2017
Exam 1 Solution -
Fall 2007
Exam 1 Solution - Fall
2015
Exam 1 Solution - Fall
2016
Exam 1 Solution -
Spring 2017
Exam 2 - Fall 2007
Exam 2 - Fall 2015
Exam 2 - Fall 2016
Exam 2 - Spring 2017
Midterm Exam - Spring 2018
Exam 2 Solution -
Fall 2007
Exam 2 Solution - Fall
2015
Exam 2 Solution - Fall
2016
Exam 2 Solution -
Spring 2017
Midterm Exam Solution
- Spring 2018
Final Exam - Fall 2007
Final Exam - Fall 2015
Final Exam - Fall 2016
Final Exam - Spring 2017
Final Exam - Spring 2018
Final Exam
Solution - Fall 2007
Final Exam Solution -
Fall 2015
Final Exam Solution -
Fall 2016
Final Exam Solution -
Spring 2017
Final Exam Solution -
Spring 2018
Grading
Lab work:
10%
Quizzes:
12%
MIPS Programming:
8%
Project: 15%
Midterm
Exam: 25%
Final Exam:
30%
Lecture
Breakdown
Week
|
Topics
|
1
|
Introduction to computer organization,
high-level, assembly, and machine languages. Classes of
computers, components of a computer system, technology
improvements, chip manufacturing process, programmer's view of a
computer system.
|
2
|
Introduction to assembly language
programming, instructions, registers, assembly language
statements, directives, text, data, and stack segments. Defining
data, arrays, and strings. Memory alignment, byte ordering, and
symbol table. System calls, console input and output.
|
3
|
MIPS instruction set
architecture, instruction formats, R-type integer arithmetic,
logic, and shift
instructions, immediate operands, I-type arithmetic and logic
instructions, pseudo-instructions.
|
4
|
Control flow, branch and jump instructions,
translating if-else statements and logical expressions, compare
instructions, and conditional-move instructions.
Arrays, allocating arrays statically in the
data segment and dynamically on the heap, computing the memory
addresses of array elements.
|
5
|
Load and store instructions,
translating loops, using pointers to traverse arrays, addressing
modes, jump and branch limits.
Defining functions (procedures) in MIPS
assembly language, function call and return.
Passing arguments.
|
6
|
The stack segment, allocating and freeing stack frames,
leaf versus non-leaf functions, preserving registers across
function calls.
Sort function example and its translation into assembly
code. Translating recursive functions into assembly code.
|
7
|
Integer multiplication,
unsigned and signed multiplication, integer multiplication and division
in MIPS.
|
8
|
Floating point representation, IEEE 754 standard,
normalized and de-normalized numbers, zero, infinity, NaN, FP
comparison, FP addition, FP multiplication, rounding and
accurate arithmetic.
|
9
|
MIPS Floating-point instructions: load/store,
arithmetic, data movement, convert, compare, branch, FP system
calls.
Floating-point programs, example on matrix
multiplication.
Designing a processor, register transfer level,
datapath components, clocking methodology.
|
10
|
Implementing a register file and
multifunction ALU.
Assembling a single-cycle datapath.
Control signals, analyzing the execution of each
instruction.
Control unit, ALU control, and PC control.
|
11
|
CPU performance and metrics, average CPI of a
multi-cycle processor, performance equation, MIPS as a metric,
Amdahl’s law, energy and power consumption, benchmarks.
|
12
|
Drawback of single-cycle processor,
single-cycle versus multi-cycle
instruction execution, performance comparison.
Pipelining versus serial instruction execution,
pipeline performance.
MIPS 5-stage pipeline, pipelined datapath,
pipelined control.
|
13
|
Pipeline hazards: structural, data, and control
hazards, load delay, hazard detection, stall and forwarding
unit, delayed branching, and branch prediction.
|
14
|
Main memory organization and performance, SRAM, DRAM,
latency and bandwidth, memory hierarchy, cache memory, locality
of reference.
Cache memory organization: direct-mapped,
fully-associative, and set-associative caches, handling cache
miss, write policy, and replacement policy.
|
15
|
Cache performance, memory stall cycles, and average
memory access time.
Review.
|
|