Dhofar
University
School of Engineering
Electrical and Computer Engineering Department
Computer Organization and Architecture – Course Guide
EECE 320
1. Course Details:
|
Course Title: |
Computer Organization and Architecture |
|
Level |
Seniors |
|
Course Reference |
EECE 320 |
|
Lectures |
SMW 11:00 a.m. - 11:50 a.m. |
|
Room |
Q 109 |
|
Laboratory |
TBA |
| Office Hours | TBA |
|
Student Study Hours Per Week |
9 |
|
Contact Hours Per Week |
3 |
|
Private Study Hours Per Week |
6 |
|
Year and Semester |
2007 - 2008 (Spring) |
|
Lecturer |
Dr. I. Damaj |
|
Contact Details |
i_damaj[@]du.edu.om - Remove the brackets [ ] |
|
Summary of Assessment Method |
2 Quizzes, Assignments, Project, and a Final |
|
|
|
|
Textbook |
David A. Patterson and John L. Hennessy, Computer Organization and Design: the Hardware/Software Interface, Third Edition, Morgan Kaufmann Publishers, 2004. |
|
|
|
|
References |
Computer Architecture: From Microprocessors to Supercomputers, Oxford University Press, 2005, ISBN 0-19-515455-X
Computer Architecture: A Quantitative Approach, Third Edition, Hennessy and Patterson, Morgan Kaufmann Publishers (Elsevier), 2002.
Carl Hamacher, Zvonko Vranesic, and Safwat Zaky, Computer Organization, Fifth Edition, McGraw-Hill, 2002.
J. Bhasker, A VHDL Primer, Third Edition, Prentice-Hall, 1999.
Advanced Computer Architecture: Parallelism, Scalability, and Programmability. K. Hwang, McGraw-Hill Computer Science Series, 1993.
Introduction to Parallel Processing: Algorithms and Architectures. Behrooz Parhami, Plenum 1999.
D. Sima, T. Fountain, P. Kacsuk, "Advanced Computer Architectures: A Design Space Approach", Addison Wesley, 1997.
|
|
Software Packages |
C++/Visual C++, SPIM Simulator, and VHDL. |
2. Aims of the Course:
This course covers the organization of modern computer systems. In addition to learning how to program computers at the assembly level, students learn how to design the main components of a von Neumann computer system, including its instruction set architecture, datapath, control unit, memory system, input/output interfaces, and system buses. To consolidate the material presented in class, students work on assembly-language programming and datapath design assignments, and a major computer interfacing project.
3. Short Description:
A course on the organization of modern computer systems. Basic hardware and software components of von Neumann computers. Machine instruction sets and assembly language programming. Fixed- and floating-point computer arithmetic. Processor datapath and control unit design. Instruction pipelining. The memory system. Input/output interfacing techniques. System buses.
4. Schedule:
|
Details: |
Topic |
Chap. No. |
Assessment |
|
Weeks 1 – 2 |
Basic Organization of Computer Systems (ISA, Datapath, Control, Memory, I/O, Operating Systems, Compilers, Assemblers, Linkers, Loaders). A Brief History of Computers
|
1 |
|
|
Weeks 3 – 5 |
Machine Instructions and Programs: Part I: Instruction Sets and Machine Programming Models Part II: Memory Locations, Addresses, and Operations Part III: Assembly Language Programming (MIPS) Part IV: The MIPS Instruction Set Architecture
|
2 |
|
| Weeks 6 – 8 |
Part I: Fixed-Point Arithmetic and Numerical Precision Part II: Floating-Point Arithmetic and the IEEE-754 Standard Part III: Floating-Point Operations: addition, multiplication, and division
|
3 | |
| Weeks 9 – 13 |
Part I: Execution Performance Part II: Introduction to Datapath Part III: Datapath and Control Unit Design
|
4 |
Quiz I Project Proposal
|
| Week 14 |
Part I: The Memory Hierarchy Part II: Cache Memory Part III: Virtual Memory
|
6 |
Quiz II |
| Week 15 |
Part I: Introduction - Buses and I/O Part II: Bus Arbitration
|
7 |
Project Due |
5. Course Objectives and Learning Outcomes
On successfully completing this course, students will be able to:
1. Understand the basic organization of modern computer systems.
- Identify the hardware components of a computer system.
- Explain how machine instructions and the data they operate on are represented, stored, and executed.
- Explain the roles of the operating system, compiler, assembler, loader, and linker.
- Identify key milestones in the evolution of computer systems.
2. Understand how computer programs are organized, stored, and executed at the machine level.
- Identify the basic components of an instruction-set architecture.
- Explain the differences between machine programming models.
- Explain how basic arithmetic, logic, memory, and control operations work.
- Write simple programs in MIPS R2000 assembly language.
- Explain how subroutines are commonly linked.
- Explain why interrupts and exceptions occur and how they are handled.
3. Understand the operation of fixed- and floating-point arithmetic units.
- Represent real numbers in fixed-point notation.
- Explain how fixed-point notations affect the dynamic range of numerical values and the precision of arithmetic operations.
- Represent real numbers in the single- and double-precision formats of the IEEE-754 floating-point notation.
- Demonstrate how basic floating-point arithmetic operations are performed.
- Explain the operation of fixed-point and floating-point arithmetic circuits.
4. Analyze an instruction-set architecture and propose a suitable datapath and control unit implementation.
- Identify the factors affecting execution performance.
- Identify the steps needed to fetch and execute the machine instructions of a given instruction set architecture.
§ Identify the datapath elements needed to implement a specific instruction set.
§ Explain the principles of hardwired and microprogrammed control.
§ Design the control units for single-cycle and multi-cycle implementations of a given instruction set.
§ Explain how datapath elements and control units are implemented in hardware.
§ Measure the impact of various architectural implementation strategies on performance.
6. Understand the basic organization of the memory hierarchy.
- Identify the main components of the memory hierarchy.
- Explain the differences between key semiconductor memory technologies.
- Explain the organization of a DRAM chip.
- Design and expand a simple memory system.
- Explain how cache memories increase the apparent speed of memory.
- Explain how virtual memory increases the apparent size of memory and supports the enforcement of memory protection mechanisms.
- Explain how different secondary storage devices function.
7. Understand the input/output mechanisms used to connect computers to their external environments.
8. Understand how system buses link the components of a computer system.
6. Assessment of the Course:
|
Attendance |
%5 |
|
Pop quizzes and assignments |
%10 |
|
Quiz I |
%20 |
|
Quiz II |
%25 |
|
Project |
%10 |
|
Final |
%30 |
7. Notes
Announcements
[May 22, 2008] Chapters 5 and 6 are posted.
[April 17, 2008] Chapter 4 is posted.
[April 4, 2008] Some solved problems (for chapter 3) are posted.
[March 26, 2008] An Assignment is posted, submission due date is on the19th of April 2008 class time.
[March 20, 2008] Chapter 3 is posted.
[March 6, 2008] Chapter 2 is posted.
[Feb 22, 2008] Chapter 1 is posted.
[Feb 22, 2008] Welcome to course website.