Concordia University
Department of Electrical and Computer
Engineering
COEN 311 – Computer Organization and
Software (3.5 credits)
Fall 2018 Course Outline
Professor:
Anjali
Agarwal, PhD, P.Eng.
Office: EV 5.157
Telephone:
514-848-2424 Ext.3090
Email: aagarwal@ece.concordia.ca
Office hours: Thursdays, 13:30 - 14:30 or by appointment
Course webpage: http://users.encs.concordia.ca/~aagarwal/coen311/coen311.html
1.
Calendar Description
Prerequisite: COEN 212,
243, previously or concurrently. Introduction and terminology. Overview of the
functional units and the operation of a computer. Machine programming
fundamentals: instruction structure, addressing modes, the assembly process,
examples of architectures. Case study of a microprocessor architecture:
programming model, assembler and addressing modes, instruction set and formats;
programming examples. Stacks, subroutines, macros, exceptions, interrupts.
Program and interrupt driven I/O. Memory management. Introduction to system
software: system kernel, system services, assemblers, compilers, linkers and
loaders, user-level view of operating systems. Lectures: three hours per week.
Tutorial: one hour per week. Laboratory: 15 hours total.
2.
Course Objectives
The objective of this
course is to introduce the basic concepts of the computer organization and
structure from both the hardware and software viewpoints. Students will learn
the principal components of a computer system and their operational and design
concepts. They will also learn how assembly language instructions are
represented and decoded following different modes of addressing, which teaches
them to write assembly language programs using the concepts of stacks, subroutines
and macros. The course also teaches
students how to analyze computer system and implement efficient assembly
solutions.
3.
Course Learning Outcomes
(CLOs)
Upon
successful completion of the course, students will be able to
1. Describe the
principle components of a computer system.
2. Describe how
memory is organized and the different internal architectures of a CPU.
3. Describe how
memory and CPU interface for instruction execution.
4. Describe
machine programming and assembly programming concepts, including instruction
set and formats, assembly modes, flow control, and parameter passing
techniques.
5. Apply
assembly programming concepts to demonstrate skills in implementing efficient
assembly programming solutions.
6. Analyze
performance of assembly language programs with respect to their execution time
and size.
7. Demonstrate
skills in debugging existing assembly language programs.
8. Recognize
alternative computer organizations and instruction formats.
4.
Graduate Attributes
This
course emphasizes and develops the following CEAB (Canadian Engineering
Accreditation Board) graduate attributes and indicators:
Graduate
Attribute |
Indicator |
Level of
knowledge |
CLO |
Knowledge
Base |
KB-3.
Knowledge base in a specific domain (ELEC and COEN) |
Intermediate |
1,
2, 3, 4 |
Problem
Analysis |
PA-1.
Problem identification and formulation PA-2.
Modelling PA-3.
Problem solving PA-4.
Analysis |
Intermediate |
3,
5, 6, 7 |
Design |
DE-1.
Define the objective DE-2.
Idea generation and selection DE-3.
Detailed design DE-4.
Validation and implementation |
Intermediate |
2,
4, 5, 8 |
Use
of Eng. Tools |
UET-1.
Ability to use appropriate tools, techniques, and resources UET-2.
Ability to select appropriate tools, techniques, and resources |
Intermediate |
4,
5, 6, 7 |
5.
Evaluation
There
will be six (6) assignments to be solved at home and not marked. One week after
receiving an assignment you will write a 10 min Quiz constituting of
at least one question selected from the latest assignment (plus questions on
basic understanding of the topics in the assignment). There will be 6 quizzes
in total – the best 5 out of 6 will be counted towards 15% of the
final grade.
There
will be a midterm exam for 20% of the final grade, and a final exam for 50%
of the final grade.
There
will be five (5) labs (alternate weeks) that will count towards 15% of the
final grade.
Note: The student will fail the course if
he/she does not secure at least 50% in the laboratory component of the
course. Lab exemption is NOT allowed.
Evaluation
tool |
Weight |
Indicator |
|
Option 1 |
Option 2 |
||
Assignment
1/ Quiz 1 |
3% |
3% |
KB-3,
PA-1, PA-3, PA-4, DE-1, DE-3 |
Assignment
2/ Quiz 2 |
3% |
3% |
KB-3,
PA-1, PA-2, PA-3, PA-4, DE-1, DE-2, DE-4 |
Assignment
3/ Quiz 3 |
3% |
3% |
KB-3,
PA-1, PA-4, DE-1, DE-4 |
Assignment
4/ Quiz 4 |
3% |
3% |
KB-3,
PA-1, PA-2, PA-3, PA-4, DE-1, DE-2, DE-3, DE-4 |
Assignment
5/ Quiz 5 |
3% |
3% |
KB-3,
PA-4, DE-3, DE-4 |
Assignment
6/ Quiz 6 |
3% |
3% |
KB-3,
DE-3, DE-4 |
Lab
1 |
2% |
2% |
UET-1 |
Lab
2 |
2% |
2% |
UET-1,
UET-2 |
Lab
3 |
2% |
2% |
UET-1,
UET-2 |
Lab
4 |
2% |
2% |
UET-1,
UET-2 |
Lab
5 |
2% |
2% |
UET-1,
UET-2 |
Lab
Test |
5% |
5% |
UET-1,
UET-2 |
Midterm
Exam |
20% |
0% |
KB-3, PA-1, PA-2-PA-3, PA-4, DE-4 |
Final
Exam |
50% |
70% |
KB-3, PA-1, PA-2-PA-3, PA-4, DE-1, DE-2, DE-3, DE-4 |
Note:
o
There is no standard relationship between percentages
and letter grades assigned for the course.
o
The pass mark for the course is 50%.
o Assignments,
quizzes, and exams may include theoretical as well as programming problems.
6.
Course Organization
6.1.
Lectures,
Tutorials, and Labs
There will be
two lectures a week. Each lecture lasts approximately 1 hour and 15 minutes.
The course slides will be posted on the course website. It is highly
recommended to review the slides before you come to class. Note that slides are
not “lecture notes”; you are responsible for creating your own notes. You may
also periodically refer to the recommended textbooks.
The lectures for COEN
311/2 are scheduled on: Tuesdays and Thursdays from 2:45pm to 4:00pm Room H920.
The tutorials for COEN
311/2 are scheduled on: Fridays from 10:15am to 11:05am Rooms H631 and H629,
and will start the first week of class.
The lab for COEN 311 is a biweekly lab. Check your personal registration
schedule for the scheduling details of your lab section. Labs commence the week
of Sept. 17, 2018 for QJ, QL and QN sections, and the week of Sept. 24, 2018
for QI, QK and QM sections.
More details on labs can be found in ‘Laboratory Guidelines’ document on
the course website.
6.2.
Textbook
Recommended Optional
Textbooks:
1.
Course pack number 978-1-77079-350-7 Computer Organization and Software, by Dr.
Tahar.
2.
"Computer Organization" Sixth Edition by Hamacher, Vranesic and Zaky,
McGraw Hill. ISBN: 0-07-338065-2.
Other references:
1. "Computer
Organization and the MC68000'' by Panos E. Livadas and Christopher Ward,
Prentice Hall, 1993. ISBN: 0-13-158940-7.
2. "Computer
Organization and Design: The Hardware/Software Interface" by David A.
Patterson, John L. Hennessy, Morgan Kaufmann, ISBN:1-5580-491-X.
3. "Computer
Architecture and Design: Designing for Performance", by William Stallings,
Prentice Hall, ISBN: 0-13-035119-9.
Additional resources such as interesting Internet links will be posted on
the course website.
6.3.
Assignment/Quiz
Schedule
The
assignment and Quiz schedule is as follows:
|
Assignment posted
on |
Quiz Dates |
1 |
Thursday 20
September |
Thursday, 27
September |
2 |
Thursday 4
October |
Thursday, 11
October |
3 |
Thursday 11
October |
Thursday, 1
November |
4 |
Tuesday 30
October |
Thursday, 8
November |
5 |
Tuesday 13
November |
Tuesday, 20
November |
6 |
Thursday 22
November |
Thurday, 29
November |
Notes:
· All
assignments are of individual type.
· There is no
need to submit the assignments.
· 10 min
Quizzes will be held during the lectures.
6.4.
Midterm Exam
The
midterm exam is scheduled for: Thursday Oct 25. The midterm will take place during the regular class schedule in lecture
room. All the material covered before the exam date will be included in the
exam.
No
make-up midterm exam will be set. Absence from the midterm regardless of the
reason will automatically result in zero mark on that.
6.5.
Final Exam
The
final exam is scheduled by the University. The date and place will be announced
later.
Final
exam will cover the whole course material.
7. Tentative Course Plan
LECT |
TOPIC |
REFERENCE |
1 |
COEN 311 Course Outline Introduction to Computer System (basic
concepts of machine language, assembly language, structured layer of computer
systems – hardware, software, user, performance criteria of computer system) |
Course Slides |
2, 3 |
Data Representation (Binary numbers, Hex numbers,
2’s complement, arithmetic addition, subtraction, multiplication, division,
Floating point numbers, IEEE standard) |
Course Slides |
4, 5 |
Memory (Main memory, addressing,
big-endian/little-endian, capacity, memory mapping, memory locality, memory
hierarchy - basic concepts of cache, secondary storage and virtual storage) |
Course Slides |
6, 7 |
Central Processing Unit (instruction
representation, data transfer between memory and CPU, General Purpose
architecture and Accumulator architecture and their functional units,
instruction execution steps, execution time) |
Course Slides |
8 |
Motorola 68000 (principal
components, introduction to machine language and assembly language) |
Course Slides |
9 |
Motorola 68000 (Instruction Representation
and decoding, introduction to assembly modes |
Course Slides |
10 |
Assembly Modes (Modes 0, 1, 2, 5 and
their micro-instructions, writing simple assembly language programs) |
Course Slides |
11 |
Branching instruction (branch always, equal-to,
greater-than, less-than, calculating displacement, dbra instruction) Hand Assembly (first-pass, and second-pass) |
Course Slides |
12 |
Implementing Loops (While, Repeat, For) Motorola Directives and Constants (Run-time,
assembly-time, org, end) |
Course Slides |
13 |
Additional Addressing Modes (Modes 3, 4, 6, 7,
and Quick data) |
Course Slides |
14 |
Logical operations (and, or, eor, not) Shift and Rotate operations (arithmetic shift,
logical shift, simple rotation, extended rotation) Bit Manipulation Examples |
Course Slides |
15 |
Motorola Instruction Set, and Review |
Course Slides |
16 |
Midterm Exam
(October 25) during lecture timings |
|
17 |
Bus Interconnection Scemes (Single-bus, Multiple-bus, Bus
arbitration, bus timings) Input/Output (I/O Module Structure, Introduction to I/O
Techniques – Programmed I/O, Interrupt-driven I/O, DMA) |
Course Slides |
18 |
Subroutines (Calls and
Returns – jsr, bsr, rts, rtr instructions, concept of Stacks, nested
subroutines) |
Course Slides |
19, 20 |
Subroutines (Types of
parameters, Passing Parameters – by Register, Memory block, Stack) |
Course Slides |
21 |
Subroutines
(multiple_move, Nested subroutine, recursive subroutine) |
Course Slides |
22 |
Macros (difference
between macro/subroutine, parameter passing in macros, Labels) |
Course Slides |
23 |
Assembly Program
Examples (string
reversal, prime number, largest number, string concatenation) |
Course Slides |
24, 25 |
Exceptions (Internal,
external) |
Course Slides |
26 |
Course Review |
Course Slides |
The Course pack
covers following Chapters,
however, other material used in the Course Slides may not follow these.
Introduction
and terminology (Chapter 1)
You
may recommend the following Sections numbers from the recommended optional
textbook by Hamacher. However, the Course Slides may not follow
these.
8. Academic Honesty
The most common offense
under the Academic Code of Conduct is plagiarism which the Code defines as “the
presentation of the work of another person as one’s own or without proper
acknowledgement.”
This could be material
copied word for word from books, journals, internet sites, professor’s course
notes, etc. It could be material that is paraphrased but closely resembles the
original source. It could be the work of a fellow student, for example, an answer
on a quiz, data for a lab report, a paper or assignment completed by another
student. It might be a paper purchased through one of the many available
sources. Plagiarism does not refer to words alone - it can also refer to
copying images, graphs, tables, and ideas, copying (even with modifications) of
program segments. “Presentation” is not limited to written work. It also
includes oral presentations, computer assignments and artistic works. Finally,
if you translate the work of another person into French or English and do not
cite the source, this is also plagiarism.
In Simple Words: Do not
copy, paraphrase or translate anything from anywhere without saying from where
you obtained it!
The Academic Code of
Conduct is available at: http://www.concordia.ca/students/academic-integrity/code.html