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