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