EECS 370: Introduction to Computer Organization

Winter 2009

Home / Announcements | Course overview | Lectures | Staff and hours
Homeworks | Projects | Exams | Phorum / Resources | Discussions

Class Meeting 1

(Thursday, January 8, 2009):
Course intro and objectives. Short history of computer architecture.
Lecture notes:   PDF
Reading: Chapter 1 (Computer Abstractions and Technologies)

Class meeting 2

(Tuesday, January 13, 2009):
Instruction set architecture (storage): registers, memory addressing modes, overview of project 1.
Lecture notes:   PDF
Reading: Chapter 2 (Instructions: Language of the Computer) (2.1-2.6)

2.1 Introduction
2.2 Operations of the Computer Hardware
2.3 Operands of the Computer Hardware
2.4 Representing Instructions in the Computer
2.5 Logical Operations
2.6 Instructions for Making Decisions

Class meeting 3

(Thursday, January 15, 2009):
Instruction set architecture: LC-2K and MIPS instruction sets, instruction encoding, number representation.
Lecture notes:   PDF
Reading: Chapter 2 (2.8-2.9) and Appendix A (A.10)

2.8 Communicating with People
2.9 MIPS Addressing for 32-bit Immediates and Addresses
Appendix A: Assemblers, Linkers, and the SPIM Simulator
A.10: MIPS R2000 Assembly Language

Class meeting 4

(Tuesday, January 20, 2009):
Instruction set architecture: C to assembly, function calling conventions
Lecture notes:   PDF
Reading: Chapter 2 (2.7, 2.10-2.13) and Appendix A (A.5-A.6)

2.7 Supporting Procedures in Computer Hardware
2.10 Translating and Starting a Program
2.11 How Compilers Optimize
2.12 How Compilers Work: An Introduction
A.5: Memory Usage
A.6: Procedure Call Convention

Class meeting 5

(Thursday, January 22, 2009):
Instruction set architecture: function calling conventions (continued).
Lecture notes:   PDF
Reading: same as last lecture

Class meeting 6

(Tuesday, January 27, 2009):
Instruction set architecture - Translation software: linker, loader, etc.
Lecture notes:   PDF
Reading: Appendix A: Sec. A.1-A.4

A.1: Introduction
A.2 Assemblers
A.3: Linkers
A.4: Loading

Class meeting 7

(Thursday, January 29, 2009):
Basic Processor Design: Combinational & Sequential Logic
Lecture notes:   PDF
Reading: Appendix B: Sec. B.1-B.4, B.7-B.9, B.11

Appendix B: The Basics of Logic Design
B.1 Introduction
B.2 Gates, Truth Tables, and Logic Equations
B.3 Combinational Logic
B.4 Using a Hardware Description Language
B.7 Clocks
B.8 Memory Elements: Flip-Flops, Latches, and Registers
B.9 Memory Elements: SRAMs and DRAMs
B.11: Timing Methodologies

Class meeting 8

(Tuesday, February 3, 2009):
Basic Processor Design: ALU Design
Lecture notes:   PDF
Reading: Appendix B: Sec. B.5-B.6, Chapter 3: Sec. 3.4-3.6

B.5: Constructing a Basic Arithmetic Logic Unit
B.6 Faster Addition: Carry Lookahead
Chapter 3:Arithmetic for Computers
3.4: Multiplication
3.5: Division
3.6: Floating Point

Class meeting 9

(Thursday, February 5, 2009):
Basic Processor Design: Finite State Machines, Single Cycle Datapath
Lecture notes:   PDF
Reading: Appendix B: Sec. B.10, Chapter 5: Sec. 5.1-5.4

B.10:Finite-State Machines
Chapter 5: The Processor: Datapath and Control
5.1 Introduction
5.2 Logic Design Conventions
5.3 Building a Datapath
5.4 A Simple Implementation Scheme

Class meeting 10

(Tuesday, February 10, 2009):
Basic Processor Design: Single Cycle Data Path, Intro to Multi-cycle Data Path
Lecture notes:   PDF
Reading: Chapter 5: Sec. 5.1-5.6

5.1 Introduction
5.2 Logic Design Conventions
5.3 Building a Datapath
5.4 A Simple Implementation Scheme
5.5 A Multicycle Implementation
5.6 Exceptions

Class meeting 11

(Thursday, February 12, 2009):
Basic Processor Design: Multi-cycle Data Path
Lecture notes:   PDF
Reading: Chapter 5: Sec. 5.5-5.6

5.5 A Multicycle Implementation
5.6 Exceptions

Class meeting 12

(Tuesday, February 17, 2009):
Exam review
Lecture notes:   PDF

Class meeting 13

(Thursday, February 19, 2009):
Midterm exam 1 (in class)

Class meeting 14

(Tuesday, March 3, 2009):
Introduction to Pipelining
Lecture notes:   PDF
Reading: Chapter 6: Sec. 6.1-6.3

Chapter 6: Enhancing Performance With Pipelining
6.1 An overview of Pipelining
6.2 A Pipeline Datapath
6.3 Pipelined Control

Class meeting 15

(Thursday, March 5, 2009):
Pipelining: Data Hazards and Forwarding
Lecture notes:   PDF
Reading: Chapter 6: Sec. 6.4-6.5

6.4 Data Hazards and Forwarding
6.5 Data Hazards and Stalls

Class meeting 16

(Tuesday, March 10, 2009):
Pipelining: Control Hazards and Performance Calculation
Lecture notes:   PDF
Reading: Chapter 6: Sec. 6.6-6.7

6.6 Control Hazards
6.7 Using a Hardware Description Language to Describe and Model a Pipeline

Class meeting 17

(Thursday, March 12, 2009):
Exceptions, performance and advanced pipelining
Lecture notes:   PDF
Reading: Chapter 6: Sec. 6.8-6.9

6.8 Exceptions
6.9 Advance Pipelining: Extracting More Performance

Class meeting 18

(Tuesday, March 17, 2009):
Basic cache design, block size, write-back, write-through
Lecture notes:   PDF
Reading: Chapter 7: Sec. 7.1-7.3

Chapter 7: Large and Fast: Exploiting Memory Hierarchy
7.1 Introduction
7.2 The Basics of Caches
7.3 Measuring and Improving Cache Performance

Class meeting 19

(Thursday, March 19, 2009):
Caches -- Direct-mapped and associative
Lecture notes:   PDF
Reading: Chapter 7: Sec. 7.1-7.3

Chapter 7: Large and Fast: Exploiting Memory Hierarchy
7.1 Introduction
7.2 The Basics of Caches
7.3 Measuring and Improving Cache Performance

Class meeting 20

(Tuesday, March 24, 2009):
More caches
Lecture notes:   PDF
Chapter 7: Large and Fast: Exploiting Memory Hierarchy
7.1 Introduction
7.2 The Basics of Caches
7.3 Measuring and Improving Cache Performance

Class meeting 21

(Thursday, March 26, 2009):
Lecture notes:   PDF
Virtual memory: Address translation, page tables
Reading: 7.4 - 7.5
7.4 Virtual Memory
7.5 A Common Framework for Memory Hierarchies

Class meeting 22

(Tuesday, March 31, 2009):
Exam 2 review
Lecture notes:   PDF

Class meeting 23

(Thursday, April 2, 2009):
Exam 2 (in class)

Class meeting 24

(Tuesday, April 7, 2009):
Virtual memory: TLBs - VM & caches
Lecture notes:   PDF
Reading: 7.4 - 7.5
7.4 Virtual Memory
7.5 A Common Framework for Memory Hierarchies

Class meeting 25

(Thursday, April 9, 2009):
In-class Exam Review

Class meeting 26

(Tuesday, April 14, 2009):
Hard drives basics
Lecture notes:   PDF
Chapter 8: Storage, Networks and Other Peripherals

Class meeting 27

(Tuesday, April 16, 2009):
Advanced topics
Application-specific processors: Graphics
Lecture notes:   PDF
Reading: none

Class meeting 28

(Thursday, April 21, 2009):
Final Exam Review

FINAL EXAM

(Friday, April 24, 2009)
7.00pm to 9.00pm
DOW 1013, 1014, 1017


Home / Announcements | Course overview | Lectures | Staff and hours
Homeworks | Projects | Exams | Phorum / Resources | Discussions