CS314: Computer Architecture and Design


Welcome to CS314! Textbook is available here now. (Sep. 15)

Assignment 4 is released! Deadline is Dec. 19, please see the details here.

Assignment 3 is released! Deadline is Nov. 15, please see the details here.

Assignment 2 is released! Deadline is Oct. 25, please see the details here.

Assignment 1 is released! Deadline is Oct. 8, please see the details here.

Lab location is at: 机组实验地址:软件学院大楼5号102、104室(靠近东川路600号凯旋校门)


The course is aimed at teaching the fundamentals of the computer organization and design. Upon completion of this course, a student should be able to explain the operation of a CPU, understand the merits of virtual memory, cache and interrupt system, and analyze the fundamentals of I/O system.

The emphasis of this course is on the basic issues of computer organization and computer design. Computer organization is concerned with the way the hardware components are connected together to form a computer system. Computer design is concerned with the development of the hardware for the computer taking into consideration of a given set of specifications. In this course, students will learn the principle and hardware implementation of computer components, and how to completely design a correct single processor computer.


Week Date Lecture Topic Slide Download
1 Sep.20 Chapter 1 Introduction and Performance Evaluation CIS314-chapter1-2017.pptx
2 Sep.27 Chapter 2 Instructions:Language of the Computer CS314-chapter2-2-2017.pptx
3 Oct.18 Chapter 3-1 Arithmetic for Computers CS314-chapter3-1-2017.pptx
3 Oct.25 Chapter 3-2 Arithmetic for Computers CS314-chapter3-2-2017.pptx
4 Nov.22 Chapter 4-1 The Processor, Part A CS314-chapter4A-2017.pptx
4 Nov.22 Chapter 4-2 The Processor, Part B CS314-chapter4B-2017.pptx
4 Nov.22 Chapter 4-3 The Processor, Part C CS314-chapter4C-2017.pptx
4 Nov.22 Chapter 4-4 The Processor, Part D CS314-chapter4D-2017.pptx
4 Dec.13 Chapter 4-5 The Processor, Part E CS314-chapter4E-2017.pptx
4 Dec.13 Chapter 4-5 The Processor, Part E-2 CS314-chapter4E-supplement.processors.pdf
5 Dec.13 Chapter 5 Memory Hierarchy CS314-chapter5A-2017.pptx
Final Dec.20 Class Review Class Review.pptx
Final Dec.20 Homework Solutions1 chapter 1.pptx
Final Dec.20 Homework Solutions2 chapter 2.pptx
Final Dec.20 Homework Solutions3 chapter 3.pptx
Final Dec.20 Homework Solutions4 chapter 4.pptx


Course Teacher

Haojin Zhu is currently an Associate Professor with Department of Computer Science and Engineering, Shanghai Jiao Tong University, China. He received his B.Sc. degree (2002) from Wuhan University (China), his M.Sc.(2005) degree from Shanghai Jiao Tong University (China), both in computer science and the Ph.D. in Electrical and Computer Engineering from the University of Waterloo (Canada), in 2009. His current research interests include wireless network security and distributed system security. He is a member of IEEE.

Course Book

  • Computer Org and Design, 4rd Ed.,Revised Printing, Patterson Hennessy, 2012

Office Time

  • Every Friday afternoon 2 pm ~ 5 pm at SEIEE building 3-509

Grade Determinates

  • Project Reports + Assignments ~20%
  • Class participation ~10%
  • Final ~70%


Please send your first assignment in a single compressed package (.zip, .rar, etc.) to TA's ftp server.The ftp address is "ftp://public.sjtu.edu.cn", the username is "lijie0123" and the password is "public". You should upload your assignments to "/upload/Computer Architecture and Design/". Please name your file as "StudentID_assignment1.zip". For example, if your student ID is 5140309000, and this is the first assignment, you should name your file "5140309000_assignment1.zip" and upload it to "ftp://public.sjtu.edu.cn/upload/Computer Architecture and Design/Assignment1/".

Assignment I

  • Chapter 1 : 1.16
  • Design a program to check if your computer is big endian or little endian. Please submit the source code and the execution results.

Submission Due: Oct.8

Assignment II

  • Chapter 2 : 2.4, 2.14, 2.20

Submission Due: Oct.25

Assignment III

  • Chapter 3 : 3.6, 3.8, 3.11, 3.14
    • Coding Assignment:
    • Objective: Understanding the applications of IEEE 754 floating points in real-world machine
      • Task 1: In your machine, what is the accuracy for single precision and double precision (or the number of bits required for single/double precision floating)? Please use a simple program to demonstrate it.
      • Task 2: Run a program to obtain the results of “-8.0/0”and“sqrt(-4.0)”in your machine.
    • 1. Submit your codes and execution results by printing your screen.
    • 2. Answer the following questions:
      • 1)What are the accuracy of float and double in your machine.
      • 2)How to represent infinite and NAN in your machine.

Submission Due: Nov.15

Assignment IV

  • Chapter 4 : 4.10, 4.11, 4.12, 4.13, 4.16

Submission Due: Dec.19