Tafila Technical University Faculty of Engineering Electrical Engineering Department 0107343 Computer Organization and Architecture Instructor: Dr. Abdel Ilah Alshbatat Tel: 0775299050 E-mail: abdnoor80@yahoo.com Time: 11-12.30 Monday, Wednesday Office Hours: MW 9.30 – 11 Credit Hours: 3.0 2010 Course Description Computer architecture is the science and art of selecting and interconnecting hardware components to create a computer that meets functional, performance and cost goals. This course introduces the basic principles and hardware structures of a modern programmable computer. We will learn, for example, the Structural organization and hardware design of digital computers. Processing and control units, arithmetic algorithms, input-output systems, and memory systems Textbook 1. A.S. Tanenbaum, Structured Computer Organization 5th ed., Prentice Hall, Upper Sable River, NJ, 2006. ISBN 0-13-148521-0. Supplemental Textbooks/Materials: 1. John Wakerly, Digital Design Principles and Practices, Third Edition Updated, Prentice Hall, Upper Sable River, NJ, 2001. ISBN: 0-13-089896-1. 2. D.A. Patterson and J.L. Hennessy, Computer Organization and Design: The Hardware/Software Interface, 2nd Ed., Morgan Kaufmann Publishers, Inc., San Francisco, CA, 1998, ISBN 1-55860-428-6. 3. M.J. Murdocca and V.P. Heuring, Principals of Computer Architecture, Prentice Hall, Upper Sable River, NJ, 2000. ISBN 0-201-43664-7. Prerequisites by Topic: 1. Binary, octal, decimal, and hexadecimal number representations and arithmetic. 2. Character, integer, and floating point representations. 3. Fundamental digital logic design, including simple gates, Boolean algebra, combinatorial logic, and sequential logic. 4. Prior introduction to computer architecture, including register files, ALUs, memory access, and instruction sets. 5. Prior introduction to and programming experience with a computer assembly language and a high-level programming language. Course Objectives: 1. To demonstrate the application of discrete mathematics, number theory, Boolean algebra, and simple digital design to the field of computers and computer architecture. 2. Provide a comparative overview of multiple computer processors, peripheral devices, instruction set architectures, and operating systems to identify key functional and performance aspects. 3. Provide the ability to analyze processor, microcontroller, and computer structures, interpret the various aspects as required for a specific system using computers or applications, and determine the appropriate class of hardware, firmware, and software that can meet desired needs. 4. Provide the ability and a structured approach to the study, analyze, and assessment of novel and next generation computers, processors, and microcontrollers as they are introduced in the future. Topics: 1. Historical perspective of computer architectures and their evolution into current families of computers. 2. Computer system components and organization: processors, primary memory, secondary memory, and input/output ports and devices. 3. Digital logic elements in computer design: numerical representations, basic circuits, memory, CPU and busses, input and outputs 4. Microarchitecture level structures and design for implementations of data paths, definable operations and instructions, and various performance options and improvements. 5. Instruction set architecture for programming: ISA overview, data types, formats, addressing, instruction types, and flow control 6. Operating system machine functions and instructions used to support applications programming: virtual memory, virtual I/O, and process management. 7. Assembly language constructs, translation into machine language and support for software module linking and loading. 8. An overview of parallel computer architectures and design issues. Evaluation: 3. Two tests 4. Final examination 25% each 50% Exams: There will be two mid-term exams; they will be given during the regular class. The final Exam will be scheduled by the university. A missed exam will result in a grade of zero unless you received prior approval, or you immediately produce written documentation of an unavoidable emergency beyond your control that caused you to miss it. If your excuse is approved, you will be given a makeup exam. Learning Outcomes: 1. An understanding of the history, applications, and importance of computers in society. 2. The knowledge of how previous engineering science curricula have been applied in the field of computers and computer architecture. 3. The ability to identify and analyze the function and operation of processor, microcontroller, and computer components and structures. 4. The ability to perform basic computer system component designs, architect a virtual computer based on the component designs, design and simulate micro-instructions for processor core micro-operations, define an instruction set architecture and assembly language for the virtual computer, analyze the performance of the virtual computer and identify a range of performance enhancements. 5. The ability to assess computer system architectures and implementations in order to identify and solve computer operational or performance problems. 6. A knowledge of contemporary issues related to the architecture, design, implementation and use of computers. Homework There will be homework at the end of each chapter. All will be graded, and returned to you. The homework must be done independently. Attendance: Attendance at every class is expected. All material covered in class, whether in lecture or examples, is testable. You are responsible for everything discussed in lecture. Exam Date: To be assigned later