concordia university department of electrical and...

6

Click here to load reader

Upload: dinhcong

Post on 18-May-2018

213 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Concordia University Department of Electrical and …users.encs.concordia.ca/~aagarwal/coen311/coen311_outline.pdfDepartment of Electrical and Computer Engineering COEN ... system

1

Concordia University Department of Electrical and Computer Engineering COEN 311 – Computer Organization and Software (3.5 credits) Fall 2016 Course Outline Professor: Anjali Agarwal, PhD, P.Eng. Office: EV 5.157 Telephone: 514-848-2424 Ext.3090 Email: [email protected] Office hours: Tuesdays, 12: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.

Page 2: Concordia University Department of Electrical and …users.encs.concordia.ca/~aagarwal/coen311/coen311_outline.pdfDepartment of Electrical and Computer Engineering COEN ... system

2

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.

Page 3: Concordia University Department of Electrical and …users.encs.concordia.ca/~aagarwal/coen311/coen311_outline.pdfDepartment of Electrical and Computer Engineering COEN ... system

3

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 H629. The tutorials for COEN 311/2 are scheduled on: Fridays from 10:15am to 11:05am Room H423, 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. 19, 2016 for QJ section, and the week of Sept. 26, 2015 for QI and QK sections. More details on labs can be found in ‘Laboratory Guidelines’ document on the course website.

Page 4: Concordia University Department of Electrical and …users.encs.concordia.ca/~aagarwal/coen311/coen311_outline.pdfDepartment of Electrical and Computer Engineering COEN ... system

4

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 22 September Thursday, 29 September

2 Thursday 6 October Thursday, 13 October

3 Thursday 13 October Thursday, 3 November

4 Tuesday 01 November Thursday, 10 November

5 Tuesday 15 November Tuesday, 22 November

6 Thursday 24 November Thurday, 01 December 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 27. 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.

Page 5: Concordia University Department of Electrical and …users.encs.concordia.ca/~aagarwal/coen311/coen311_outline.pdfDepartment of Electrical and Computer Engineering COEN ... system

5

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 27) 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

Page 6: Concordia University Department of Electrical and …users.encs.concordia.ca/~aagarwal/coen311/coen311_outline.pdfDepartment of Electrical and Computer Engineering COEN ... system

6

LECT TOPIC REFERENCE

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)

Principal components in a computer (Class Notes & Chapter 3) Simple processor example: Sim68 (Chapter 4) Instruction structure and addressing schemes (Chapter 6) Assembly language for the MC68000 (Chapter 7) Subroutines, stack and macros (Chapter 8) Exceptions and interrupts (Chapter 9)

You may recommend the following Sections numbers from the recommended optional textbook by Hamacher. However, the Course Slides may not follow these.

Basic Structures of Computers (Chapter 1 - Sections 1.1 - 1.5, 1.7) Computer Arithmetic (Sections 2.1, 6.1, 6.3, 6.6, 6.7.1) The Memory System (Section 2.2, 2.3, Chapter 5 - Basics of each memory device) Basic Processing Unit (Chapter 7 - Sections 7.1 and 7.2 ) Machine Instructions and Program (Sections 2.4 - 2.12) Input/Output Organization (Chapter 4 - Sections 4.1, 4.2, 4.3.2 ) Motorola 68000 (Chapter 3 - Part II)

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