CATALOG DESCRIPTION: Design and understanding of the computer system as a whole unit. Performance Evaluation and its role in computer system design; Instruction Set Architecture design, Datapath design and optimizations (e.g., ALU); Control design; Single cycle, multiple cycle and pipeline implementations of processor; Hazard detection and forwarding; memory hierarchy design; Cache memories, Virtual memory, peripheral devices and I/O.

REQUIRED TEXTS: Computer Organization and Design: The Hardware/Software Interface, Fourth Revised Edition.  David A. Patterson and John L. Hennessy; Publisher: Morgan Kaufmann. Publication Date: November 9, 2011. ISBN-10: 0123747503; ISBN-13: 978-0123747501

COURSE COORDINATORS: Gokhan Memik and Nikos Hardavellas

COURSE GOALS: To teach designing a complete computer system. Includes designing instruction set architecture, datapaths, control, memory hierarchy including cache memories, virtual memory and I/O systems.

PREREQUISITES: EECS 205 or 213 and EECS 303 or 355

PREREQUISITES BY TOPIC:

  • Basic logic design
  • Understanding adders, multipliers and dividers
  • Assembly language

DETAILED COURSE TOPICS:

Week 1: Introduction: Components of a computer system. Evolution of Technology. Factors affecting computer systems design (e.g., technology, applications, performance requirements). READING : Chapter 1.

Week 2: Impact of performance in computer system design. Measuring performance, performance metrics, interpreting performance, selecting applications and programs for performance evaluation, comparing and summarizing performance. Benchmarks (SPEC 92) and their results on some real machines. How not to evaluate performance. READING : Chapter 2.

Week 3: Instruction Set Architecture design. The role of an instruction set. interface between hardware and software; issues to consider when designing an instruction set; addressing modes. READING : Chapter 3.

Week 4: Arithmetic and Logic Units (ALU) for computers. Number system, addition and subtract, adders; multiplication and multipliers; division and dividers; floating point numbers and floating point units; Examples from existing systems. READING : Chapter 4.

Week 5: Processor Design. Datapath and control; single cycle design and implementation; simplifying control design; multicycle implementation of datapath and control; example from a real system. READING : Chapter 5.

Week 6: Pipelining. Basic concepts in pipelining; datapath for pipeline processor implementation, data hazard and forwarding, data hazard and stalling; control design for pipelines, superscaler design; Examples. READING : Chapter 6.

Week 7: Memory Hierarchy: Cache memories. Introduction to caches, measuring and improving performance of caches; design alternatives, direct map, associative caches; replacement policies; examples. READING Chapter 7.

Week 8: Virtual Memory: basic design, address translation, placement and replacement; cost and performance issues; common framework for memory hierarchies, Translation Lookaside Buffers. READING Chapter 7.

Week 9: Input-Output and Peripheral Devices. I/O performance and measures, technology and characteristics of disks. Busses and protocols. Connecting I/O devices to memory and processor. READING Chapter 8.

Week 10: I/O systems design. RAIDs. Memory bandwidth and bus bandwidth requirements for graphics. Example of a typical I/O system. Introduction to multiprocessors. Summary/ READING: Chapter 8 and 9.

COMPUTER USAGE: Students use Mentor Graphics design tool to implement a simple single cycle processor with limited instruction set. Use processor simulators to learn and evaluate working of processors. Cache simulators to evaluate cache memory performance.

PROJECT: A quarter long project that entails designing a single cycle processor using mentor graphics tool and its evaluation using simple programs. Each week students submit progress on additions to the design.

GRADES:

  • Five homeworks - 20 %
  • Project - 30 %
  • Midterm exam - 20%
  • Final exam - 30%

COURSE OBJECTIVES: When a student completes this course, s/he should be able to:

•  Understand the architecture of a basic computer system and its components, and the role of performance in designing computer systems.

•  Understand how to design and instruction set and its impact on processor design. To design ALU and processor datapath and control.

•  Design pipeline processor including datapath and control, and design to detect and resolve hazards.

•  Understand memory hierarchy design and its impact on overall processor performance. Design cache memory based on the characteristics of the expected workload. Understand the workings of virtual memory and efficient design for TLBs

•  Understand the I/O system and its design. Be Knowledgeable about Busses and bandwidth requirements to support heterogeneous I/O devices. Understand the disk technology and its impact on performance.

ABET CONTENT CATEGORY: 100% Engineering (Design component).