COS 335 Computer Organization and Architecture
Spring 2009
Instructor:
Curtis Meadow Office Hours: 10:00 to 10:45AM TT
230 Neville Hall E-Mail: curtis.meadow@umit.maine.edu
Class Meetings
Regular classes: 206 Neville Hall 11:00AM to 12:15PM TT
Assembler Lab: 109 Donald P. Corbett, 7:00PM - 7:50 PM Tuesday
Text: Computer Organization and Architecture (7th ed.). William Stallings, Prentice Hall, 2006,
ISBN 0–13–185644–8. For the assembler lab, no text will be used. Lecture notes and handouts will be posted on the web and /or First Class. Links to selected chapters in PDF from The Art of Assembly Language by Randall Hyde will also be posted for supplemental reading.
General Course Objectives:
● To understand how computers are constructed out of a set of functional units
● To understand how these functional units operate, interact and communicate
● To understand the factors and trade-offs that affect computer performance
● To understand concrete representation of data at the machine level
● To understand how computations are actually performed at the machine level
● To understand how problems expressed by humans are expressed as binary strings in a machine.
Class and Assembler Lab
The class is a broad study of computers and computer components (processor, memory, input and output) that does not focus on any one particular hardware implementation. You will gain a general understanding of the principles used to design computers, ranging from mainframes ("big iron") and supercomputers to microcomputers to 4-bit embedded microcontrollers. By contrast the assembler portion of the course will focus on one particular architecture (Intel x86), so that you can understand how problems expressed in English (or any other human language) ultimately are expressed as bit strings in computer memory. It will also help understand why an understanding of computer architecture is essential to the production of robust and error-free programs.
This is a four-credit course; roughly three credits will be devoted to computer organization and architecture (COA) while one credit will be devoted to assembly language. Exams and assignments will reflect the 75%/25% split.
Exams: Two prelims and a final exam. Lab portions of the exams will allow you to choose between in-class and take-home assignments.
Grading: Plus/minus grading will be used for final submitted grades. The final grading scale will be announced as the semester progresses. Final grades are a weighted average:
Homework 30%
Attendance 5%
Prelims 20% each
Final Exam 25%
Homework will be graded on a scale of 0-10 (in increments of 0.25) as follows:
0 Not submitted
1-3 Attempt made in spite of complete lack of understanding or knowledge
4-5 Incomplete or sloppy work; indicates substantial deficiency of understanding
6-7 Incomplete or sloppy work; incorrect logic or answers, indicating partial understanding
8 Work is mostly correct, indicating a reasonable understanding of material
9 Work is correct and above average, indicating complete understanding and/or extra effort
10 Exceptional work
Homework Assignments. Homework assignments will include exercises from the textbook, brief written research reports, and assembler programs. Correct grammar and spelling are considered when grading. If writing problems are a significant factor in assigning a grade, you will have the option of resubmitting after consulting with the Writing Lab.
Academic Honesty
As a student in the university community, it is important that you understand the University of Maine policy on academic integrity. Violations of student academic integrity include any actions that attempt to promote or enhance the academic standing of any student by dishonest means (ex. cheating, plagiarism, fabrication or academic misconduct). Instances of academic dishonesty will incur a minimum penalty of a 0 for the assignment or exam in question. Additional penalties range from a failing grade for the course to referral to a University disciplinary body. While the internet is an excellent resource for this class, you must be very careful not to copy or plagiarize material found on the internet.
This policy is not meant to discourage legitimate and useful collaboration, or use of the Internet, in learning the material. It is often helpful to discuss problems and concepts with other students. However, ultimately you are responsible for your own work. If you feel that ideas or reasoning involved in part of an assignment are attributable to another student or source, you should note this fact in the assignment without fear of penalty. If you are unsure where the line is between doing your own work and plagiarism, please see me.
Electronic Devices are not allowed for exams; including but not limited to laptop computers, calculators, telephones and music players.
Classroom Behavior
Please arrive on time, be reasonably quiet, and do not leave the classroom before the period is over. Cellphones must be turned off while in class. Laptop computers should be used only for taking notes.
Website and First Class Conference
The website for this class is http://umcs.maine.edu/~cmeadow/courses/cos335/index.html.
A First Class conference has been set up for this course. See Student Resources > Academics > Spring Courses > COS 335(Meadow). Lecture notes, handouts, assignments, corrections and other course materials will be posted in both locations. Private material, such as grades will be posted to First Class only. All students will be granted FC contributor permissions and you are welcome to use the conference to post questions and start discussions related to the class.
I do not plan to distribute items on paper in class; please monitor the web site or conference on a regular basis, especially just before class meetings.
ADA Notice: If you wish to request an accommodation for a disability, please contact me or Anne Smith, Coordinator of Services for Students with Disabilities (East Annex, 581–2319) as early as possible.
An Optimistic Schedule
Prelim dates are tentative but not fixed in stone. We will discuss in class and move or change dates if desirable
Date
Main Course
Assembler
Tues
1/13
Course Intro
Integer Number Systems
Thurs
1/15
COA Intro
Ch 1
Tues
1/20
Computer Evolution and Performance
Ch 2
Integer Number Systems
App A
Thurs
1/22
Computer Components
Ch 3
Tues
1/27
integer Number Systems and rational numbers
Thurs
1/29
Cache Memory
Ch 4
Tues
2/3
Rational numbers and floating point representations in binary
Thurs
2/5
Internal Memory
Ch 5
Tues
2/10
External Memory
Ch 6
Intel 80x86 processor architecture (16, 32, and 64 bit)
Thurs
2/12
Tues
2/17
Prelim 1
Intel 80x86 processor architecture (16, 32, and 64 bit)
Thurs
2/19
I/O
Ch 7
Tues
2/24
Assembly Language Fundamentals, A86, Debug
Thurs
2/26
OS Support
Tues
3/3
Spring Break
Thurs
3/5
Spring Break
Tues
3/10
Spring Break
Thurs
3/12
Spring Break
Tues
3/17
Computer Arithmetic
Ch 8
Assembly Language Fundamentals, A86, Debug
Thurs
3/19
Tues
3/24
Instruction Sets
Basic instruction set (data movement, arithmetic and comparison, logical)
Thurs
3/26
Tues
3/31
Addressing Modes
Basic instruction set (addressing modes, array processing)
Thurs
4/2
Tues
4/7
Processor Structure and Function
Conditional jumps, unconditional jumps, call instruction
Thurs
4/9
Prelim 2
Tues
4/14
Examples
Thurs
4/16
RISC
Ch 14
Tues
4/21
IA-64 Architecture
Ch 15
Arithmetic (shifts, rotates, multiword operations)
Thurs
4/23
Control Unit
Ch 16
Tues
4/28
Microprogamming
Ch 17
TBD
Thurs
4/30
M-F 5/4-5/8
Final Exam Week; tentative date is Tuesday May 5 10:30AM