COURSE NUMBER: |
CMPT 350 |
COURSE TITLE: |
Computer Architecture |
NAME OF INSTRUCTOR: |
Dr. Michael Janzen |
CREDIT WEIGHT AND WEEKLY TIME DISTRIBUTION: |
credits 3(hrs lect 3 - hrs sem 0 - hrs lab 3) |
COURSE DESCRIPTION: |
A study of the basic principles and issues of computer organization and architecture. Topics include: the Von Neumann
architecture, CISC and RISC architectures, one and two pass assemblers, loaders and linkers, macro-processors, compilers,
interpreters and operating systems.
Prerequisites: CMPT 275 |
REQUIRED TEXTS: |
- Hennessy, John L., Patterson, David A. (2012), Computer Architecture, 5rd Ed., Morgan Kauffman / Elsevier
- Patterson, David A., Hennessy, John L., Computer Organization and Design: The Hardware/Software Interface (3rd Edition or newer, 2007+)
|
MARK DISTRIBUTION IN PERCENT: |
|
Lecture assignments | 15% |
Lab assignments | 30% |
Midterm | 20% |
Final Exam | 35% |
| |
| 100% |
|
COURSE OBJECTIVES: |
The course is designed to introduce the student to the subject of
Computer Architecture so as “to appreciate the organizational paradigms
that determine the capabilities, performance and ultimately the success
of computer systems.”
- Students will be introduced to the
Assembly Language Level and practice their understanding through
Assembly Language programming.
- Students will make the
connection between the theoretical constructs and real world systems by
studying their instruction set architectures, computer organization and
register transfer languages.
- Students will consider the basic
digital concept, logical devices and circuitry which may then be
combined to form more complex systems.
- Students will discuss
the computer organization from the perspective of CPU design,
micro-sequencer control design, computer arithmetic, memory
organization, I/O organization and Parallel Processing.
|
---|
COURSE OUTLINE: | - Data Representation
- Character and string representations, unsigned integers, signed integers, floating point numbers.
- Machine and Assembly Language
- MIPS
machine and assembly language, addressing methods, instruction sets,
procedures, implementing assembly language - assembly, linking, loading.
- Assessing and Understanding Performance
- Factors determining performance, performance metrics, benchmarking.
- Implementing Arithmetic
- Basics of digital logic circuits, implementing a basic ALU, carry lookahead addition, Booths algorithm for multiplication.
- Datapath and Control
- Processor datapath and control, building a single cycle implementation of a MIPS subset, pipelining, multiple issue.
- Memory
- Temporal and spatial locality, memory hierarchies, caches, virtual memory.
- I/O
- Selected Topics from I/O devices, buses, I/O programming, and Parallel Computing.
|