COE 301 - Computer Organization
Term 181 - Fall 2018

 

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.

 

  Last Updated: Sunday December 09, 2018, by Dr. Muhamed Mudawar