6502 simulation from visual6502.org

COMP 273 - Introduction to Computer Systems, Winter 2014

General Information

Lectures 4:05 PM - 5:25 PM, Tuesdays and Thursdays
Location BURN 1B45
Credits 3
Instructor Paul Kry
Telephone 514 398 2577
Office MC113N
Office Hours 1:00 - 2:00 pm Wednesdays, or by appointment (any time!)
Teaching Assistants and Office Hours xian.xu@mail.mcgill.ca, MC320 Thursdays from 4:30 - 5:30 pm
charles.bouchard@mail.mcgill.ca, MC312 Tuesdays from 1:00 - 2:00 pm
pengbo.li@mail.mcgill.ca, MC312 Mondays from 1:00 - 2:00 pm
faraz.falsafi@mail.mcgill.ca, TR3070 Thursdays 1:00 - 2:00 pm
MyCourses for discussion boards and assignment submission


COMP-206: Introduction to Software Systems. Anyone who has not taken COMP-206 (and is not taking it this term) will be automatically deregistered from COMP-273.


This course covers two major topics in computer systems: assembly language programming and the architecture of a CPU. Programmers are normally familiar with the computer only from a very high level. This is understood as manipulating the computer using an object oriented programming language. They are not aware of the many abstraction layers that hide the underlying structure and functions carried out by a computer. The computer's circuits, Operating System and machine language manage the underlying mechanics. This course peals back these layers of abstraction allowing the student to directly manipulate and study the engineering of some of the most important components of a computer. Our method of study will be two sided: On one side, we will look at the engineering of the computer's CPU, RAM and topics about the motherboard as a whole. On the other side, we will learn the MIPS assembly language, as a tool to interact with the internal components as directly as possible. We will use Logisim for logic simulation, and MARS as a MIPS simulator (see links below).

Primary learning outcomes: to get a clear understanding of how the CPU and RAM are built and function from the microcircuit and functional levels. To then use an actual assembly language that uses the microcircuits discussed in class.

Secondary learning outcome: to demystify the abstraction layers in a computer system and to take advantage of this knowledge in creating better software. The student will be able to intelligently discuss the internal workings of computers and produce solutions that take advantage of the built-in hardware of a machine.

Topics to be covered include: boolean algebra, digital circtuit design, number representation, assembly programming (MIPS), floating point, I/O and interrupts, caches, virtual memory, and CPU Organization. Other topics may be visited where appropriate during the term.

Getting Started

Given the class size, brief introductory tutorials will be integrated into class time, as opposed to having separate tutorials on getting started with Logisim and MARS. These tools can also be discussed in the online forum on MyCourses.

  • Logisim

    Please run and select Tutorial and User's guide under the Help menu. Read through the first three chapters in the guide. They are short and provide a great reference for getting started.

  • MARS

    Please see the MIPS and MARS tabs under the help menu. Note that the MARS tab will be most useful in getting started with the IDE, while the MIPS tab mostly provides a reference to MIPS assembly.

Assignments, Exercises, and Exams

There will be four assignments during the term, covering logic, numbers, circuits, MIPS programming, and other topics related to the course. All work must be submitted by MyCourses. Show your work. You have the right to submit in English or in French. Assignments submitted late will penalized 10%. No work will be accepted after two days (i.e., a mark of zero will be assigned). Practice problems, old midterms and final exams, and in some cases solutions will also be posted to MyCourses during the term.

There will be two exams, worth a total of 75% of the final grade. The time and location of the midterm exam can be found in the MyCourses calendar. The midterm is worth 25% of your grade. The Final exam will take place during the final exam period and is worth 50% of your final grade. .


  • Introduction
  • Binary and number representations
  • Floating point
  • Binary functions and gates
  • Combinatorial and sequential circuits
  • Registers and memory
  • Multiplicaiton, division, finite state machines
  • MIPS arithmetic
  • Decisions
  • Procedures
  • Logical and shift
  • Instruction representation (two classes)
  • Floating point
  • Linking and running
  • I/O polling and interrupts
  • Cache (two classes)
  • Virtual memory (two classes)
  • Datapath
  • Control
  • Pipeline (two classes)
  • Final review


The following course textbook is recommended, and is available for purchase at the McGill bookstore.
  • Patterson, David A. and Hennessy, John L., "Computer Organization and Design: The Hardware/Software interface" Morgan Kauffman Publishers, 4th or 5th edition.
Additional books that you may find helpful are listed below.
  • Randy H. Katz, "Contemporary Logic Design" Benjamin/Cummings Publishing Society.
  • Dominic Sweetman, See MIPS Run, Morgan Kaufmann, ISBN: 1558604103.

These books, along with the main course textbook will be on reserve in the Schulic Library. Other resources, such as lecture notes and handouts, will be made available on MyCourses.

In case you didn't already know...

McGill University values academic integrity. Therefore, all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures. See www.mcgill.ca/integrity for more information, as well as www.mcgill.ca/students/srr/honest with respect to student rights and responsibilities.

It should be noted that, in accordance with article 15 of the Charter of Students' Rights, students may submit examination answers in either French or English.

According to Senate regulations, instructors are not permitted to make special arrangements for final exams. Please consult the Calendar, section, General University Information and Regulations at www.mcgill.ca. Special arrangements in emergencies may be requested at your Student Affairs Office. If you have a disability, please advise the Office for Students with Disabilities (398-6009) as early in the term as possible so that we can provide appropriate accommodation to support your success.

In the event of circumstances beyond the instructor's control, the evaluation scheme as set out in this document might require change. In such a case, every effort will be made to obtain consensus agreement from the class.

Additional policies governing academic issues which affect students can be found in the Handbook on Student Rights and Responsibilities.