Computer Organization and Structure (2018 Fall Semester)

Course Description
This course intended to introduce you basic concepts of computer organization and structure, including basic memory and processor organization, instruction set architecture, assembly language programming, number systems, arithmetic, data transfer and control flow instructions, procedures, memory management and program execution.


Prerequisite
Logic Design (Introduction to Computer)


Textbook
David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 5th. ed., Morgan Kaufmann, 2013
(Companion materials)

Instructor
Chuang-Wen You (游創文), Barry Lam Hall, 7th Floor, Room F; Office hour: by appointment via email, email: cwyou2004 (at) gmail (dot) com


Teaching assistants & office hours
Ching-Yuan Lu (盧慶原), Room 503-C, MBA#1; Office hour: by appointment via email, email: r07725009 (at) ntu (dot) edu (dot) tw

Facebook group
https://www.facebook.com/groups/1332303900238247/


Temporary score
Please contact with TA or me ASAP if you have any problem with your temporary score.


Schedule

Weeks Dates Topics Readings Assignments

1

9/11

Course Introduction & Logistics [slides]

Assignment 0 (due: 9/18)

2

9/18

Introduction (1) [slides]

  • Why and What is this course?
  • What is a computer?
  • Below your program
  • Under the Covers
  • Digital Binary Systems

Chap. 1.1 ~ 1.5


3

9/25

Introduction (2)

  • Performance
  • The Power Wall
  • The Switch from Uniprocessors to Multiprocessors

Instructions: Language of the Computer (1) [slides]

  • Operations and Operands of the Computer Hardware
  • Signed and Unsigned Numbers

Chap. 1.6~1.11 w/o 1.9
Chap. 2.1 ~2.4

4

10/2

Instructions: Language of the Computer (2)

  • Representing Instructions in the Computer
  • Logical Operations
  • Instructions for Making Decisions

Chap. 2.5~2.7

Assignment 1 - part 1 (due: 10/16)

5

10/9

How to Program? - by TA [slides]

(Instructor away at UbiComp 2018)

Chap. 2, A.9 
MIPS32 Simulator: SPIM [slides]

Assignment 1 - part 2 (due: 10/23)

6

10/16

Instructions: Language of the Computer (3)

  • Supporting Procedures
  • Communicating with People
  • MIPS Addressing
  • Translating and Starting a Program
  • Arrays vs. Pointers

Chap. 2.8~2.18 w/o 2.10, 2.13~16


7

10/23

Arithmetic for Computers (1) [slides]

  • Introduction
  • Addition and Subtraction
  • Multiplication
  • Division

Chap. 3.1~3.4
The basics of logic design

Assignment 2 (due: 11/6)

8

10/30

Arithmetic for Computers (2)

  • Floating Point

The Processor (1) [slides]

  • Introduction
  • Logic Design Convention
  • Building a Datapath

Chap. 3.5~3.10 w/o 3.6~3.7 & Chap. 4.1~4.3


9

11/6

Midterm exam

10

11/13

The Processor (2)

  • A Simple Implementation Scheme
  • An Overview of Pipelining
  • Pipelined Datapath and Control
  • Data Hazards: Forwarding versus Stalling

Chap. 4.4~4.7

Assignment 3 (due: 11/27)

11

11/20

The Processor (3)

  • Control Hazards
  • Exceptions
  • Parallelism via Instructions


12

11/27

Large and Fast: Exploiting Memory Hierarchy (1) [slides]

  • Introduction
  • Memory Technologies
  • The Basics of Caches

Chap. 5.1~5.3


13

12/4

Large and Fast: Exploiting Memory Hierarchy (2)

  • Measuring and Improving Cache Performance
  • Dependable Memory
  • Virtual Machines

Chap. 5.4~5.6

Assignment 4 (due: 12/18)

14

12/11

Large and Fast: Exploiting Memory Hierarchy (3)

  • Virtual Memory
  • A Common Framework for Memory Hierarchies
  • Using A Finite State Machine to Control A Simple Cache

Chap. 5.7~5.15 w/o Chap. 5.10~5.14


15

12/18

Embedded Processing Computers [slides]

Parallel Processors from Client to Cloud [slides]

16

12/25

In-class discussion with TA


Assignment 5 (due: 1/8)

17

1/1

No class (New Year's Day)

18

1/8

Final exam




Grading

Homework + Examination + Participation 

References
John L. Hennessy and David A. Patterson. Computer Architecture: A Quantitative Approach, 5th ed., Morgan Kaufmann, 2011. (The green sheet in the front: MIPS Reference Data)
Randy H. Katz and G. Borriello. Contemporary Logic Design, 2nd ed. , Prentice Hall, 2004.


Last Update: Jan., 20, 2019