This course introduces computer systems design and architecture. It begins with a review of the main digital circuit building blocks in a computer, the basic structure of a single bus computer, assembly language, and addressing modes. These concepts are formally extended by considering various architectures such as RISC and CISC and the relationship between the machine language and the architecture. Processor design in the context of pipelining, horizontal and vertical microprogramming, the ALU, and the memory is considered in depth.
- Components and Structure of a Computer
1.1. Registers, Counters, ALU
1.2. CPU structure
1.2.1. Harvard versus Princeton Architecture
1.2.2. Reduced Instruction Set Computers versus Complex Instruction Set Computer
1.2.3. Metrics for the comparison of processors
1.3. Control Unit
1.3.1. Finite State machines
1.4. Advanced Computer Architectural Designs
1.4.1. Pipelines, branch prediction
- Advanced Assembly Language Concepts
2.1. Macros, interrupts, system stack for parameter passing
2.2. I/O programming and interfacing
Methods of Instruction
There are three components to the course: lectures, labs., and assignments.
The lecture is used to introduce new material; usually via a sequence of theoretical concepts, examples, and practical considerations. The book is to be used as a close adjunct to the lecture notes and examples.
The two hour weekly lab. is used for the teaching and evaluation of processor, ALU, and memory designs, circuits using the software product LogicWorks and assembly language programs.
Assignments include, but are not limited to, logic designs some using LogicWorks others using VHDL or C++, microprograms and assembly language programs.
Means of Assessment
Evaluation will be carried out in accordance with Douglas College Policy. The final grade will be calculated from a particular distribution from the range below. The exact distribution will be given to the student on the first day of classes along with the course outline.
labs. (6 to 12) 15% - 30%
projects/assignments (1 to 6) 25% - 40%
tests (1 to 2) @ 15% - 25% each 15% - 50%
final examination 20% - 40%
class participation1 0% - 5%
Note #1: participation includes (but is not limited to) short pop quizzes and/or handing-in (part-of) a homework assignment
The student should be able to:
- demonstrate an understanding of the relationship between the machine language and the computer hardware in the context of functionality and complexity by
- designing and implementing programs in machine and assembly language
- functionally describing architectural support for operating systems and programming languages such as heaps, stacks, and task switching
- describing the function of the hardware using a formal description language such as RTN (Register Transfer Notation)
- virtually simulating the hardware functions
- using a high level language such as VHDL, Verilog, or C++
- using a logic circuit simulator such as LogicWorks
- quantitatively describing the complexity and speed of various architectural components using mathematical functional notation and timing diagrams
- understand numbers of various bases and operations to be done on them by
- mathematically defining fixed point and floating point numbers
- designing arithmetic circuits or algorithms used to implement addition, subtraction, multiplication, and division
- understand the concept of microprogramming demonstrated by
- describing the hardware using LogicWorks
- implementing, using either a horizontal or vertical microprogramming architecture, some instructions
- functionally describe at the hardware level various computer architectures such as
- RISC versus CISC
- one bus versus multi bus organizations
- the concepts of parallelism and pipelining
- describe at the hardware and software level techniques for
- Input and Output devices and their interface
CMPT 1150 with a minimum grade of C
Course Guidelines for previous years are viewable by selecting the version desired. If you took this course and do not see a listing for the starting semester/year of the course, consider the previous version as the applicable version.
Below shows how this course and its credits transfer within the BC transfer system.
A course is considered university-transferable (UT) if it transfers to at least one of the five research universities in British Columbia: University of British Columbia; University of British Columbia-Okanagan; Simon Fraser University; University of Victoria; and the University of Northern British Columbia.
For more information on transfer visit the BC Transfer Guide and BCCAT websites.
If your course prerequisites indicate that you need an assessment, please see our Assessment page for more information.