Department of Computing Science
Lecture (A1): MWF 0900-0950, CME 346
Computer Organization and Architecture I
Fall 2001-2002, Section A1
Instructor: Dr. Paul Lu, Athabasca Hall 340, 492-7760
E-mail: email@example.com (I prefer e-mail instead of telephone calls)
Office hours: Monday, Wednesday, Times to be announced
Instructor's Home Page:
Section's Home Page (i.e., this document):
Course's Home Page (relevant to all sections): http://ugweb.cs.ualberta.ca/~c229/
Newsgroup: ualberta.courses.cmput.229 (Please read it and use it regularly.)
(CNS help with news is here. Undergrad CS comments are here.)
A course dealing with the
fundamentals of computer architecture. A methodical
discussion of number systems and arithmetic and basic
computer organization including: assembly
language programming, addressing, operations,
subroutines, and parameter input/output, and an analysis
of specific architectures.
Prerequisite: CMPUT 115 ;
Computer Organization and Design:
The Hardware/Software Interface, Second Edition,
by David A. Patterson
and John L. Hennessy,
Morgan Kaufmann Publishers, 1997
on-line version of Appendix A
(Assemblers, Linkers, and the SPIM simulator) is available.
Introduction to RISC Assembly Language Programming,
by John Waldron, Addison-Wesley, 1999.
This outline is subject to change.
Introduction (Chapter 1)
- Program translation (1.2, A.1)
- Microprocessor (1.3)
- Course objectives
- Number Systems and Binary Arithmetics (Chapter 4)
- Decimal, binary, hexadecimal, numbers (4.2)
- Signed numbers (4.2)
- Binary addition and subtraction (4.3)
- Logical operations (4.4)
- The Processor and Datapath (Chapter 5) *
- Registers, ALU, and multiplexer (5.1);
PC and memory (5.2);
simple datapath (5.3); and
- Assembly Language (Chapter 3)
- Introduction to MIPS machine (p. 141)
- Assembly instructions (3.1, 3.2, 3.3)
- Addressing modes (3.8)
- Encoding assembly instructions (3.4)
- Branching (3.5)
- Procedures/subroutines (3.6)
- Compiling, assembling, linking, and loading (3.9)
- Applications: procedures (3.10) and arrays/pointers (3.11)
- Exceptions and Interrupts (Chapter 5)
- Exceptions (5.6)
- Exception handling (A.7)
- Interrupts and Interrupt handling(A.7)
- Input/Output Programming (Chapter 8)
- Introduction (8.1, 8.2, 8.3)
- I/O interfacing (8.5)
- I/O on MIPS (A.8)
- Polled and interrupt-driven I/O (A.7)
- Memory Hierarchy (Chapter 7)
- Locality, memory hierarchy, and cache (7.1)
- Direct mapped cache (7.2)
- Set associative cache (7.3)
- Floating Point Numbers (Chapter 4)
|5 programming/lab assignments: ||22% (4 + 4 + 4 + 5 + 5) ||Submitted on-line using the try program
|5 written homework assignments: ||10% (2 + 2 + 2 + 2 + 2) ||Due in lecture
|1 midterm: ||30% || (in class, Monday, October 29)
|Final exam: ||38% ||(two hours, TBA)
Students must work on their homeworks and assignments independently.
There is to be no group work or collaboration on any homeworks and assignments.
Make sure you understand and follow the
Code of Student Behavior, especially the section on Academic Offences.
almost identical programs from separate students are considered evidence
of plagiarism, and these cases will be subject to disciplinary actions
by the Associate Chair, the Faculty of Science, or the University.
In the past, a number of cases of plagiarism have been detected and have
resulted in severe penalties. See
for some statistics.
NOTE: Even though CMPUT 229 is not listed on that page, there were
two students who were caught and received a 1F in my course last year.
All lab sessions have fixed schedules and are held in the Network &
Machine Architecture Instructional Laboratory in CSC 167
(first floor of the new Computer Science building).
There are no scheduled
make-up sessions for the two Monday holidays, October 8 (Thanksgiving)
and November 11 to 13 (Remembrance Day and Fall-Term Class Break ).
During those weeks,
students who are affected by the holidays can go to other lab sections
for help from the TA.
Your code must
be properly commented with a standard header, block comments at the
beginning of each functional block, and
in-line comments after every instruction.
Refer to the course homepage
for an example of properly documented programs.
A laboratory assignment is to be submitted electronically before 9:00 PM
of the Friday when it is due.
You will be given detailed instructions on how to submit electronically.
No late submissions are accepted.
Homework assignment is due in class, at the beginning of class!.
No late submissions are accepted.