General information

Course load: 4 units


  • ECE 15 (high-level programming language: C, C++ or Java)
  • ECE 25 (logic design)


Quizzes: 40%
Programming Project: 15%
Final Exam: 45% 

Course Materials


  • Performance measures
  • MIPS R2000 instruction set & assembly language
    • ARMv8 versus MIP R2000
  • Logic design
  • Arithmetic for computers
  • CPU design
  • Memory hierarchy


  • The textbook for this course is "Computer Organization and Design, Patterson and Hennessy (3rd, 4th or 5th edition)". 
  • For the (new) ARM section, we will use "Computer Organization and Design - The Hardware/Software Interface (Arm® Edition), Patterson and Hennessy". 


Podcasts for the lectures of this course are available at 

Lecture Notes / Slides

SPIM Simulator

You can download a PC version or a Unix version from here. Ubuntu users can type "sudo apt-get install spim". In addition, UC Berkeley maintains a Web page for a MAC OSX version.

You can find a nice tutorial for the SPIM simulator here.

Note to Windows 7 users: If SPIM complains about a missing "exceptions.s", you can fix it by going to Simulator->Settings, and changing the path from "C:\Program Files\PCSpim\exceptions.s" to "C:\Program Files (x86)\PCSpim\exceptions.s".

ARM Simulator

You can download from the below link. Installation on windows is straightforward, however sometimes be tricky on Mac or Linux. You may rely on the lab machines if you have Mac or Linux as your personal machine.

Class Policy

Review class policies (for labs, quizzes, programming project e.t.c.) here.