ECE Course Outline



ECE3055 -  Computer Architecture and Operating Systems  (3-3-4)
 
Prerequisites:  ECE 2031
Corequisites:  None

 
Catalog Description:  Core concepts of computer architecture and operating systems. Instruction set architectures (ISA), compiler/ISA relationships, pipelined datapaths. Memory hierarchy, memory management, and protection. Processes, threads, CPU scheduling and associated techniques.
 
Textbook(s): 
Silberschatz, Galvin, and Gagne, Operating System Concepts with Java (6th edition), John Wiley, 2004. ISBN 0471489050 (required)

Patterson & Hennessey, Computer Organization & Design: The Hardware/Software Interface (3 edition), Morgan Kaufmann, 2004. ISBN 1-55860-604-1 (required) (comment: Will be using 2nd edition through Summer, 2004. 3rd edition available for Fall 2004)

Course Objectives - As part of this course, students:
1.  build on ECE 2030 to enhance their understanding of core concepts of computer architecture related to processor, memory, and I/O subsystems. [6,8,11]
2. are introduced to core concepts of operating systems related to memory management, process and thread management, and I/O. [6]
3. will understand the interactions of hardware and software in a general-purpose computer system. [6,8,11]
4. gain laboratory-based experience in designing, implementing, and simulating hardware and software components of a computer system. [7,10,11]
5. utilize modern hardware and software design tools and languages in state-of-the-art facilities. [1,7,11]
Course Outcomes - Upon successful completion of this course, students should be able to:
1.  evaluate cycles per instruction (CPI) for multi-cycle and pipelined data paths.
2. schedule machine-instruction-level programs on a pipelined datapath both with and without hazard handling.
3. define different types of data and control dependences and describe multiple methods of handling them.
4. design, using standard digital components, cache memories of different sizes and associativities.
5. describe several replacement policies for associative memory structures; e.g., set-associative caches or virtual memory pages.
6. determine the contents of a cache after execution of a memory trace.
7. define and understand virtual memory, including the concepts of paging, TLB, and page table.
8. determine the contents of a page table and TLB after execution of a memory trace.
9. describe I/O operation in a general-purpose computer system, including synchronous/asynchronous bus characteristics, bus arbitration schemes, and DMA.
10. define processes and threads.
11. construct and evaluate CPU schedules for a variety of scheduling algorithms.
12. define the problem of process/thread synchronization and describe several alternative mechanisms for handling synchronization.
13. define deadlock and describe several mechanisms for handling it.
14. step through an algorithm to determine if a given set of processes and resources are deadlocked.
Topical Outline: 

Instruction Set Architectures (2 weeks)
CISC and RISC: ISA evolution and tradeoffs
Instruction formats, number of operands, addressing modes
Controller implementation: state machine vs. microprogramming
Effect of ISA on microarchitecture implementation
Effect of ISA on the compiler

Pipelining (4 weeks)
Pipelining basics
Pipeline stages: fetch, decode, execute, memory write-back
Hazards and solutions
Branch prediction and delayed branches
Case Studies

Memory Systems (3 weeks)
Memory hierarchy
Basic organization of caches, interleaved memory
Virtual memory basics, memory management
Deadlocks
Segmentation and protection
Case Studies

Process Management (3 weeks)
Processes, threads, and CPU scheduling
Synchronization and concurrency management
Deadlocks, protection, and security
Case Studies

I/O Architectures (2 weeks)
Bus hierarchies, device drives
Interrupts, DMA, polling
Disk structures, I/O scheduling
File allocation and file systems
LANs, network interfaces, basic interprocessor communciation
Case Studies

Laboratory Assignments
Architecture simulation
Operating system project

Grading

Exam - 30%
Quizzes (2) - 20% each
Laboratory - 20%
Homework - 10%