EECS 370: Introduction to Computer Organization

Fall 2009

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

Class Meeting 1

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

Class meeting 2

(Thursday, September 10, 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

(Tuesday, September 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 B (B.10)

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

Class meeting 4

(Thursday, September 17, 2009):
Instruction set architecture: C to assembly, function calling conventions
Lecture notes:   PDF
Reading: Chapter 2 (2.7, 2.10-2.13) and Appendix B (B.5-B.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
B.5: Memory Usage
B.6: Procedure Call Convention

Class meeting 5

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

Class meeting 6

(Thursday, September 24, 2009):
Instruction set architecture - Translation software: linker, loader, etc.
Lecture notes:   PDF
Reading: Appendix B: Sec. B.1-B.4

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

Class meeting 7

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

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

Class meeting 8

(Thursday, October 1, 2009):
Basic Processor Design: ALU Design
Lecture notes:   PDF
Reading: Appendix C: Sec. C.5-C.6, Chapter 3: Sec. 3.3-3.5

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

Class meeting 9

(Tuesday, October 6, 2009):
Basic Processor Design: Finite State Machines, Single Cycle Datapath
Lecture notes:   PDF
Reading: Appendix C: Sec. C.10, Chapter 4: Sec. 4.1-4.4

C.10:Finite-State Machines
Chapter 4: The Processor: Datapath and Control
4.1 Introduction
4.2 Logic Design Conventions
4.3 Building a Datapath
4.4 A Simple Implementation Scheme

Class meeting 10

(Thursday, October 8, 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

(Tuesday, October 13, 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

(Thursday, October 15, 2009):
Exam review
Lecture notes:   PDF

Class meeting 13

(Thursday, October 22, 2009):
Midterm exam 1 (in class)

Class meeting 14

(Tuesday, October 27, 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, October 29, 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, November 3, 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, November 5, 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, November 10, 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, November 12, 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, November 17, 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, November 19, 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, November 24, 2009):
Exam 2 review
Lecture notes:   PDF

Class meeting 23

(Tuesday, December 1, 2009):
Exam 2 (in class)

Class meeting 24

(Thursday, December 3, 2009):
Virtual memory: TLBs - VM & caches
Reading: 7.4 - 7.5
7.4 Virtual Memory
7.5 A Common Framework for Memory Hierarchies

Class meeting 25

(Tuesday, December 8, 2009):
Hard drives basics
Chapter 8: Storage, Networks and Other Peripherals

Class meeting 26

(Thursday, December 10, 2009):
Advanced topics
Application-specific processors: Graphics
Reading: none

Class meeting 26

(Tuesday, December 15, 2009):
(Note - special meeting, not a regular lecture)
Final review

FINAL EXAM

(Thursday, December 17, 2009)
10.30am to 12.30pm
Location TBA


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