CISC-221 Course Information
Course title: Computer Architecture
Course number: CISC221
Course description:
The objective of this course is to provide a firm grounding in the characteristics and operation of the hardware/software interface in order to produce the best quality software. It will answer many basic questions about computer operation which might otherwise be stumbling blocks to understanding more complex software topics.
After completing the course, the student should have an understanding of:
- how basic data types are formatted, stored, and manipulated by the computer.
- how a compiler maps high level languages to the low level instructions understood by the hardware and how the hardware executes those instructions.
- hardware/software mechanisms in place to manage the processor, memory, and other resources efficiently.
Location: Goodwin Hall Room 254
Meeting day(s): Slot 21(Monday @ 2:30,Tuesday @ 4:30, Thursday @ 3:30)
Prerequisite(s): CISC-104 or 121.
Instructor Information
- Name: Dave Dove
- Email: dove@cs.queensu.ca
- Office location: Goodwin Hall Room 547
- Office hours: Thursdays 1 p.m. - 2 p.m. (tentatively
- Phone: 533-6053
TA Information:
To be determined
Textbook:
Required reading: Computer Organization and Design, David A. Patterson, John L. Hennessy, Elsevier, 4th edition (2005), ISBN 978-0-12-374493-7
Student Support:
If you need help understanding the lecture material, text material, or the assignments, we're there to help you. I encourage you to either see me (drop by anytime or set up an appointment via email), or email one of the TAs and set up an appointment with them. You are also encouraged to ask questions in the discussion group. They may be answered by your fellow students, by a TA, or by myself. We all monitor the discussion group regularly.
Dave Dove
Student Assessment:
- Assignments: 20%
- Labs: 10%
- Quiz 1 15%
- Quiz 2 15%
- Quiz 3 20%
- Quiz 4 20%
Scheduled 2 hour labs are held in Goodwin 248 and take place Monday @ 11:30, Monday @ 2:30, and Tuesday @8:30. Students are assigned fixed lab times. The first lab will take place during the second week of classes.
There is no midterm or final exam. Quizzes will be held during the regularly scheduled lecture time.
Lecture Schedule:
- Week 1. Introduction to Computer Architecture:
- Course description, terminology, levels of abstraction,computers as multi-level machines.
- Week 2. Data representation and computer arithmetic:
- Representing signed, unsigned, floating point numbers. Computer addition and subtraction.
- Week 3. Introduction to C programming:
- Program Structure,data types, operations, control structures, functions, arrays.
- Weeks 4,5. Instructions - Language of the Computer:
- Basic instruction set, operand specification, MIPS CPU architecture, mapping high level languages to machine language instructions.
- Week 6. Assembly Language Programming:
- Assembly language program structure, linkers, SPIM simulator, debugging techniques
- Weeks 7,8. Intel IA-32 and other architectures:
- CISC Instruction Set Architecture. Assembly language programming and system call mechanism.
- Week 9. Enhancing Performance:
- Caches, pipelining, instruction-level parallelism and superscalar processors. Multiprocessors and clusters.
- Week 10. Storage Management:
- Memory management and memory hierarchy. Uniprogramming, multiprogramming. Segmentation. virtual memory and demand paging.
- Week 11. Devices, Interrupts and Connectivity:
- I/O, role of operating system, interrupts and traps. Interrupt service routines. Event driven programming. Buses and networks.
- Week 12. Digital Logic:
- Combinational networks, truth tables, boolean algebra. Sequential networks. Constructing a level3 (ISA) machine.