Computer Organization, CIS 314
Instructor Prof. Ginnie Lo
Office HoursWed and Th 11-12 and by appointment. Not available Oct 3 and 25.
OfficeDeschutes 262
E-maillo@cs.uoregon.edu
 
GTFHan Qin
Office HoursMon, Wed 2-3pm and by appointment.
OfficeDeschutes 227
E-mailqinhan@cs.uoregon.edu
 
Course Info:
LectureMWF 10:00 - 10:50, Gerlinger 246
DiscussionF 12:00 - 12:50, Esslinger 105
F 3:00 - 3:50, Esslinger 112
PrerequisiteCIS 212, MATH 231
Credits4
CRN11328

Course Description

This course is an introduction to computer organization: the internal structure of processors and memory systems and methods for evaluating system performance. These topics will be covered from a programmer's point of view, with a goal of understanding how programs written in high level languages are represented inside the system and the factors that influence performance.

The main goal of this course is to introduce students to the internal organization of computer systems. We will look at the components of a system -- the processor, the memory, and the communication channels that tie them together -- and study factors that determine the overall performance as the system executes a program.

Machine language stands at the intersection of software and hardware: all software is ultimately translated down to a machine language program which is executed by the processor. Machine language -- and its close representation as assembly language -- will permeate the course. First, we will look at the assembly language of a typical modern RISC processor and see how common high level language constructs are mapped by a compiler into a sequence of assembly language statements. Once we have a firm understanding of what processors must do -- the machine language instructions they execute and the arithmetic operations they perform -- we will look at how the central components of a processor are implemented using logic gates.

A theme running throughout the course is performance. We will develop a performance model that will help us predict how efficiently assembly language programs will run. After studying the performance of a very basic processor design, we will look at two different improvements -- pipelined processing and cache memories -- and use the performance model to predict how these features impact the execution of a program. Introduction to computer organization and instruction-set architecture--digital logic design, binary arithmetic, design of central processing unit and memory, machine-level programming.

Material

For the lecture material, we will use the following text book:

Grading Policy and Assignments

Homework:    

15%

Quizzes:

10%

Programs:

15%

Midterm:

30%

Final:

30%

Extra credit assignments will also be available.

Academic Dishonesty

For this course, some of the assignments must be done individually and some assignments will be group assignments for 2-3 students.. You are encouraged to generally discuss problems with other students, but you may never use some other student's solution or code in any way. The use of sources (ideas, quotations, paraphrases) must be properly acknowledged and documented.

The student conduct code allows an instructor to impose an appropriate sanction for a student found guilty of academic dishonesty, up to and including an N or an F. I will impose an N or an F for any such offenses in this course.

For more information on academic honesty, please talk to the instructor or see the following references: the Student Conduct web page, the Student Conduct Code, and the UO Dean of Students brochure on academic integrity.