Course syllabus

Prerequisites and Restrictions


  • COMPSCI 210
  • COMPSCI 215
  • PHYSICS 140 or PHYSICS 243


  • SOFTENG 363 and COMPSYS 304

Course Description

This course aims to provide students with an understanding of the principles of modern processor design and corresponding computing systems, including the knowledge of Assembly language; Processor architecture; Memory hierarchies and memory management; Performance Evaluation; Multiprocessing.

Staff involved in the course


  • Dr. Bruce Sham


Room: 303.588

Office hours: Office hours: whenever I am around or email me for appointment

  • Maryam Hemmati



  • Muhammad Waqas Munir



Office hours:

Class Representative:

Course Outcomes

Upon completion of the subject, students will be able to:

Category A: Professional/academic knowledge and skills

  1. Understand the basics of modern computer architectures and quantitative principles of computer design in order to develop a conceptual understanding of issues involved in designing a high-performance computer system.
  2. Design and evaluate instruction set architectures (both RISC and CISC) and understand how they relate to the hardware/software interface in a computer system with a quick review in assembly programming.
  3. Understand different processor implementation methods including the basic single-cycle implementation and how it can be extended to a multi-cycle, pipelined, and superscalar implementations.
  4. Understand performance evaluation techniques and their relation to the target applications and the processor workload.
  5. Understand the memory hierarchy in a modern computer system and its impact on the performance of the system. This includes physical and virtual memory systems and basics of cache memories.
  6. Understand some basic principles of parallel computing as special topics in this course (more advanced materials for this part will be covered in a more advanced postgraduate level course).

Category B: Attributes for all-roundedness

  1. Use and apply this knowledge to select computers for specific tasks. This course will give students an understanding of the effects of design decisions on performance and help students become better-informed consumers in addition to a processor designer.

Lecture Schedule

  1. Introduction to Computer Architectures
    1. Revision of different computer architectures: ISA and HAS, Von Neumann, RISC, and CISC.
    2. Basic digital logic
    3. Performance evaluation of processors
  2. Social Impact of Processor Development
    1. History of processor development
    2. The influence of processor development on our social life; case study: The development of processors on mobile devices
    3. How to choose appropriate processors according to your needs
  3. Arithmetic for Computers
    1. Number representation (signed/unsigned; fixed-point/floating-point)
    2. Arithmetic operations
    3. Logical operations
    4. Construction of an Arithmetic and Logic Unit
  4. Basic Processor Designs
    1. Data path: Data movement
    2. Control unit: Instruction decode and branching
    3. Different approaches to design: Single-cycle, Multi-cycle, and Pipelined design
    4. Design issues due to the technology development and real applications
  5. Enhancing Pipelined Processors
    1. Data path and control of the pipelined processor
    2. Data hazards and Branch hazards
  6. Memory Hierarchy
    1. Motivations for a memory hierarchy
    2. Memory hierarchy terminology
    3. Cache management protocols, including cache line replacement
    4. Cache configurations and performance trade-offs
    5. Virtual memory
  7. Multiprocessors
    1. Multiprocessors inter-process communication and synchronization of processes
    2. Multiprocessor performance analysis


Assessment details

  • Assignment 1 Assembly programming 5%
  • Assignment 2 Simulator 5%
  • Assignment 3 10%
  • Mini group project: Report on Processor Analysis 10%
  • Tutorial Questions 10%
  • Mid-term 20%
  • Final 40%

Requirements for passing

In order to pass the paper, you must:

  • Get an overall pass of 50%

N.B. The assignments are worth 40% and if you don't do them you are automatically losing 40%. Also, the test and exam may have questions based on the work in the assignments. If you miss more than one assignment, you are making it very difficult to pass the course.


There are a number of places where you can seek assistance with your learning.

Office Hours

All staffs have office hours when they are available to students (see above). You are encouraged to come and discuss any matters arising from the course during those hours. Staffs are also frequently available at other times.

Lecture Recordings

All lectures are recorded. There may be a delay of 1-2 days before the lecture recordings are distributed through Canvas. Note that although the lectures are recorded, some learning activities conducted in class do not translate well to the recordings. To maximize your learning opportunities, you are encouraged to attend the class in person.

Discussion Forums

The Piazza discussion forums within Canvas are regularly monitored by teaching staff. Please make use of the forums to ask any questions that you think might be of interest to other students. If your question is of a personal nature or relates to a unique situation that will be of little interest to others, then please contact the teaching staff directly.


David Patterson and John Hennessy, Computer Organization and Design MIPS Edition, 5th edition, Morgan Kaufmann, 2013

Help with Canvas

For help with Canvas see:

Handling illness or absence

If you must leave for family emergencies etc., PLEASE talk to the lecturer, or somehow get a message to the department. Very few problems are so urgent that we cannot be told quite quickly.
For problems affecting assignments or tests, see the lecturer, as soon as reasonably possible.
For illness, during exams (or other problems that affect exam performance) students MUST contact the University within one week of the last affected examination, to apply for an aegrotat pass (for illness) or compassionate pass (other problems). The one week limit is strictly enforced.
Refer to the University information about Aegrotat and Compassionate Considerations:

Academic Integrity

The University of Auckland will not tolerate cheating or be assisting others to cheat, and views cheating in coursework as a serious academic offense. The work that a student submits for grading must be the student's own work, reflecting his or her learning. Where work from other sources is used, it must be properly acknowledged and referenced. This requirement also applies to sources on the world-wide-web. A student's assessed work may be reviewed against electronic source material using computerized detection mechanisms. Upon a reasonable request, students may be required to provide an electronic version of their work for computerized review.
Please refer to

Course summary:

Date Details