Computer Organization

COmputer 201
SCience

This course is a study of the fundamental concepts of computer architecture. Topics include the representation of information, components of the computer and how they interact, microarchitecture and microprogramming, conventional machine and assembly language, and advanced architectures. The laboratory is used to examine how different components of a computer's architecture can affect its performance.

The purpose of this course is to develop an understanding of how an abstract specification of a method for solving a problem (a computer program) can be instantiated in a physical system (hardware) that carries out the method and provides an answer. We will study of the physical devices that provide the basic mechanism (transistors), the arrangement of transistors into circuits that provide basic logical operations, the combination of logical gates and other devices into more complex circuits that can instantiate the operations and memory of a computer, the representations of data and instructions for such devices, and the languages used to communicate with the computing devices. We will also consider the basis of design decisions for building a computer, some of the trade-offs that are made to develop a powerful, yet efficient system.

Working with a machine is an integral part of such a course. Our text uses MIPS32 as its example architecture, a good representative of RISC-based computer architectures. We will study this architecture using the SPIM simulator.

Submitting Eletronically

Log into the Marmoset system using your email username and password. You must submit zipfiles. The system will reject anything that is not a zipfile (or a jarfile (which is basically a zipfile))

Text

David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface. Third Edition. Morgan Kaufmann. 2005. ISBN 1558606041.

Grading

15%First Exam
15%Second Exam
20%Final Exam
40%Laboratories
10%Homework/Other