Department of Electrical and Computer Engineering Faculty of Engineering and Architecture American University of Beirut Course Information

Similar documents
EE361: Digital Computer Organization Course Syllabus

Computer Organization

CHAPTER 4 MARIE: An Introduction to a Simple Computer

Computer Architecture Syllabus of Qualifying Examination

Chapter 2 Logic Gates and Introduction to Computer Architecture

Chapter 2 Basic Structure of Computers. Jin-Fu Li Department of Electrical Engineering National Central University Jungli, Taiwan

I/O. Input/Output. Types of devices. Interface. Computer hardware

Pentium vs. Power PC Computer Architecture and PCI Bus Interface

A Lab Course on Computer Architecture

Computer Organization & Architecture Lecture #19

Computers. Hardware. The Central Processing Unit (CPU) CMPT 125: Lecture 1: Understanding the Computer

CSC 2405: Computer Systems II

Administrative Issues

Computer Systems Structure Input/Output

Putting it all together: Intel Nehalem.

COMPUTER HARDWARE. Input- Output and Communication Memory Systems

İSTANBUL AYDIN UNIVERSITY

Instruction Set Architecture (ISA)

Introducción. Diseño de sistemas digitales.1

The Central Processing Unit:

Chapter 4 System Unit Components. Discovering Computers Your Interactive Guide to the Digital World

Chapter 6. Inside the System Unit. What You Will Learn... Computers Are Your Future. What You Will Learn... Describing Hardware Performance

Introduction. What is an Operating System?

Architectures and Platforms

Computer Systems Design and Architecture by V. Heuring and H. Jordan

Chapter 13. PIC Family Microcontroller

Lizy Kurian John Electrical and Computer Engineering Department, The University of Texas as Austin

COMPUTER SCIENCE AND ENGINEERING - Basic Functions and Operational Units - Kevin Skadron, BASIC FUNCTIONS AND OPERATIONAL UNITS

CHAPTER 7: The CPU and Memory

Logical Operations. Control Unit. Contents. Arithmetic Operations. Objectives. The Central Processing Unit: Arithmetic / Logic Unit.

Chapter 1 Computer System Overview

Chapter Introduction. Storage and Other I/O Topics. p. 570( 頁 585) Fig I/O devices can be characterized by. I/O bus connections

Discovering Computers Living in a Digital World

Introduction to RISC Processor. ni logic Pvt. Ltd., Pune

COMPUTER SCIENCE AND ENGINEERING - Microprocessor Systems - Mitchell Aaron Thornton

THREE YEAR DEGREE (HONS.) COURSE BACHELOR OF COMPUTER APPLICATION (BCA) First Year Paper I Computer Fundamentals

OpenSPARC T1 Processor

COURSE DESCRIPTION FOR THE COMPUTER INFORMATION SYSTEMS CURRICULUM

DEPARTMENT OF COMPUTER SCIENCE & ENGINEERING Question Bank Subject Name: EC Microprocessor & Microcontroller Year/Sem : II/IV

OKLAHOMA SUBJECT AREA TESTS (OSAT )

ECE 3803: Microprocessor System Design D Term 2011 Course Syllabus Department of Electrical and Computer Engineering Worcester Polytechnic Institute

Computer Architecture Lecture 3: ISA Tradeoffs. Prof. Onur Mutlu Carnegie Mellon University Spring 2013, 1/18/2013

CPU Organization and Assembly Language

ADVANCED PROCESSOR ARCHITECTURES AND MEMORY ORGANISATION Lesson-12: ARM

ECE 0142 Computer Organization. Lecture 3 Floating Point Representations

Learning Outcomes. Simple CPU Operation and Buses. Composition of a CPU. A simple CPU design

Operating System Overview. Otto J. Anshus

1. Convert the following base 10 numbers into 8-bit 2 s complement notation 0, -1, -12

what operations can it perform? how does it perform them? on what kind of data? where are instructions and data stored?

C Programming. for Embedded Microcontrollers. Warwick A. Smith. Postbus 11. Elektor International Media BV. 6114ZG Susteren The Netherlands

CISC, RISC, and DSP Microprocessors

COS 318: Operating Systems. I/O Device and Drivers. Input and Output. Definitions and General Method. Revisit Hardware

Republic Polytechnic School of Information and Communications Technology C226 Operating System Concepts. Module Curriculum

Embedded Systems. Review of ANSI C Topics. A Review of ANSI C and Considerations for Embedded C Programming. Basic features of C

Lecture 2: Computer Hardware and Ports.

OC By Arsene Fansi T. POLIMI

PART B QUESTIONS AND ANSWERS UNIT I

Divide: Paper & Pencil. Computer Architecture ALU Design : Division and Floating Point. Divide algorithm. DIVIDE HARDWARE Version 1

List of courses MEngg (Computer Systems)

Lesson 06: Basics of Software Development (W02D2

7a. System-on-chip design and prototyping platforms

AMD Opteron Quad-Core

Price/performance Modern Memory Hierarchy

(Refer Slide Time: 02:39)

Homework # 2. Solutions. 4.1 What are the differences among sequential access, direct access, and random access?

1 Classical Universal Computer 3

Computer System: User s View. Computer System Components: High Level View. Input. Output. Computer. Computer System: Motherboard Level

8051 MICROCONTROLLER COURSE

Digitale Signalverarbeitung mit FPGA (DSF) Soft Core Prozessor NIOS II Stand Mai Jens Onno Krah

DNA Data and Program Representation. Alexandre David

University of St. Thomas ENGR Digital Design 4 Credit Course Monday, Wednesday, Friday from 1:35 p.m. to 2:40 p.m. Lecture: Room OWS LL54

GUJARAT TECHNOLOGICAL UNIVERSITY, AHMEDABAD, GUJARAT. COURSE CURRICULUM COURSE TITLE: COMPUTER ORGANIZATION AND ARCHITECTURE (Code: )

Computer Architecture. Secure communication and encryption.

Management Challenge. Managing Hardware Assets. Central Processing Unit. What is a Computer System?

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

DATA ITEM DESCRIPTION

B.Sc.(Computer Science) and. B.Sc.(IT) Effective From July 2011

An Introduction to Computer Science and Computer Organization Comp 150 Fall 2008

Chapter 1 Lesson 3 Hardware Elements in the Embedded Systems Chapter-1L03: "Embedded Systems - ", Raj Kamal, Publs.: McGraw-Hill Education

Here is a diagram of a simple computer system: (this diagram will be the one needed for exams) CPU. cache

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

LSN 2 Computer Processors

TEST CHAPTERS 1 & 2 OPERATING SYSTEMS

Have both hardware and software. Want to hide the details from the programmer (user).

Computer Architecture Basics

Performance Metrics and Scalability Analysis. Performance Metrics and Scalability Analysis

Exceptions in MIPS. know the exception mechanism in MIPS be able to write a simple exception handler for a MIPS machine

Microprocessor or Microcontroller?

Artificial Intelligence. Class: 3 rd

IT Data Communication and Networks (Optional)

MACHINE ARCHITECTURE & LANGUAGE

Motorola 8- and 16-bit Embedded Application Binary Interface (M8/16EABI)

Division of Mathematical Sciences

Knut Omang Ifi/Oracle 19 Oct, 2015

Overview. CISC Developments. RISC Designs. CISC Designs. VAX: Addressing Modes. Digital VAX

We r e going to play Final (exam) Jeopardy! "Answers:" "Questions:" - 1 -

MICROPROCESSOR AND MICROCOMPUTER BASICS

Lecture N -1- PHYS Microcontrollers

Devices and Device Controllers

Transcription:

Department of Electrical and Computer Engineering Faculty of Engineering and Architecture American University of Beirut Course Information Course title: Computer Organization Course number: EECE 321 Catalog description: 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. Credit hours: 3 credits Required or elective: Required for ECE and CCE students Prerequisites: EECE 230 Computers and Programming ECE 320 Digital Systems Design Textbook: John L. Hennessey and David L. Patterson, Organization and Design: The Hardware/Software Interface, Morgan Kaufmann Publishers, 4 th edition, 2009. References: P. Ashenden, The Student s Guide to VHDL, MKP Publishers, 2 nd Edition, 2008. D. Perry, VHDL: Programming by Example, McGraw Hill Publishers, 4 th Edition, 2002. Course Objectives Correlates to The objectives of this course are to make students: program objectives 1. Understand the basic organization of modern computer systems. 1 and 2 2. Understand how computer programs are organized, stored, and executed at 1 and 2 the machine level. 3. Understand the operation of fixed- and floating-point arithmetic units. 1 and 2 4. Analyze an instruction-set architecture and propose a suitable datapath and control unit implementation. 1 and 2 5. Understand how instruction pipelining enhances processor performance. 1 and 2. Understand the basic organization of the memory hierarchy. 1 and 2 7. Understand the input/output mechanisms used to connect computers to 1 and 2

their external environment. Course Topics No. Subjects covered 1 Computer Abstractions and Technology: Classes of computing applications and their characteristics, Applications and system software layers, Transforming high level programs to the language of hardware, Five components of a computer, Defining performance, CPU performance equation, Evolution of computer technology from vacuum tubes to ultra large scale integrated circuits, Integrated circuits manufacturing process, Power wall, its causes and impact on microprocessor 2 Language of the Computer: MIPS Instruction Set Architecture, Arithmetic, logic, memory and conditional operations, register, memory and immediate operands, MIPS instruction encoding formats, Signed and unsigned integer numbers, Memory addressing, Branch target addressing methods, Compiling loops, conditional statements, leaf functions, nested functions and recursive functions from C to MIPs, Caller-callee register saving and restoring MIPS convention, MIPS exception handling, Allocating space for new data on the stack, MIPs register conventions, MIPS memory allocation for program and data (text, stack, heap, static), strings and character representation, Steps for translating and starting a program: compiler, assembler, linker, loader, dynamically linked libraries, Brief introduction to X8 instruction set 3 Arithmetic for Computers: Review of integer add, multiply, and divide hardware, Using integer arithmetic hardware for fixed-point real numbers arithmetic, Single and double precision IEEE 754 standard floating-point formats, converting from decimal real numbers to single and double precision floating point binary numbers, floating-point add and multiply algorithms and hardware, Denormals and NANs, MIPS floating point registers, arithmetic operations and conditional operations. Comparing fixed-point and floatingpoint real number representations in term of dynamic range, performance, cost and precision. 4 The Processor: Overview of datapath and control for a basic MIPS processor, building a single cycle MIPS datapath and control, Overview of pipelining, Pipelined datapath and control, Data, structural and control hazards, Forwarding vs. stalling, Handling interrupts and exceptions. 5 Memory Hierarchy: The basics of caches, Direct-map, set-associative and fully-associative caches, Handling cache misses, Handling writes, Cache and memory hierarchy, Basic methods for improving cache performance, Virtual memory, Translating virtual to physical addresses, Page tables and page table registers, page faults, Translation Lookaside Buffer (TLB), Implementing protection with virtual memory. Storage I/O and Interfacing: Diversity and characteristics of I/O devices, Disk and flash storage, Connecting processors memory and I/O devices, Connection basics, synchronous, asynchronous interconnects, The I/O interconnects of X8 processors: memory controller hub (north bridge) and I/O controller hub (south bridge), Interfacing I/O devices to the processor, memory and operating system, Sending commands to I/O devices, Memory mapped I/O, Communicating with the processor using polling and interrupts, Transferring data between a device and memory, Direct Memory Access transfers (DMA), DMA and the memory system. 75 min. lectures 3 4 Course Learning Outcomes

Correlates to program At the end of the course, students should be able to: outcomes* H M L 1. Identify the hardware components of a computer system. 2. Explain how machine instructions and the data they operate on are represented, stored, and executed. 3. Explain the roles of the operating system, compiler, assembler, loader, and linker. 4. Identify key milestones in the evolution of computer systems. 5. Identify the basic components of an instruction-set. Explain the differences between machine programming models. 7. Explain how basic arithmetic, logic, memory, and control operations work. 8. Write simple programs in MIPS R2000 assembly language. 9. Explain how subroutines are commonly linked. 10. Explain why interrupts and exceptions occur and how they are handled. 11. Represent real numbers in fixed-point notation. 12. Explain how fixed-point notations affect the dynamic range of numerical values and the precision of arithmetic operations. 13. Represent real numbers in the single- and doubleprecision formats of the IEEE-754 floating-point notation. 14. Demonstrate how basic floating-point arithmetic operations are performed. 15. Explain the operation of fixed-point and floatingpoint arithmetic circuits. 1. Identify the factors affecting execution performance. 17. Identify the steps needed to fetch and execute the machine instructions of a given instruction set 18. Identify the datapath elements needed to implement a specific instruction set. 19. Explain the principles of hardwired and microprogrammed control. 20. Design the control units for single-cycle and multicycle implementations of a given instruction set. 21. Explain how datapath elements and control units are implemented in hardware. 22. Measure the impact of various architectural implementation strategies on performance.

23. Explain how exceptions are handled in the control unit. 24. Explain the principle of pipelining. 25. Explain the interdependencies between instruction set design and pipelining. 2. Identify the different types of pipeline hazards. 27. Describe how different pipeline hazards affect performance. 28. Describe different techniques for dealing with pipeline hazards. 29. Measure the impact of pipelining and pipeline hazards on performance. 30. Design the datapath and control unit of a pipelined implementation of a given instruction set. 31. Describe the effect of an exception on a pipelined datapath. 32. Identify the main components of the memory hierarchy. 33. Explain the differences between key semiconductor memory technologies. 34. Explain the organization of a DRAM chip. 35. Design and expand a simple memory system. 3. Explain how cache memories increase the apparent speed of memory. 37. Explain how virtual memory increases the apparent size of memory and supports the enforcement of memory protection mechanisms. 38. Explain how different secondary storage devices function. 39. Explain the differences between program-driven, interrupt-driven, and direct memory access (DMA) input/output mechanisms. 40. Identify the components of serial and parallel input/output interface circuits. 41. Design simple input/output interface circuits. 42. Explain the operation of common peripheral communication protocols and controllers, like RS- 232C, FireWire, USB 2.0, Centronix, Ethernet, Bluetooth, infrared, and WiFi. 43. Explain how different devices coordinate the use of a bus. 44. Explain how information is transferred over synchronous and asynchronous buses. 45. Explain the operation of common bus protocols like PCI, and SCSI. * H: High correlation, M: Medium correlation, L: Low correlation

Class/ schedule a- Two 75-minute lectures per week. b- Three 50-minute lectures per week Resources of the course Text book and references on reserve in the Library. Computer usage VHDL, SPIM simulator Evaluation methods 1- Class attendance and participation ( 5% ) 2- Homework assignments (10%) 3- Project (15%) 4- Two quizzes (40%) 5- Final Exam (30%) Professional component Engineering topics: 100% General education: 0% Mathematics and basic sciences: 0% Person(s) who prepared this description and date of preparation Haitham Akkary, April 2009 Date of last revision April 2009