ECE 43700 - Computer Design and PrototypingLecture Hours: 1 Lab Hours: 3 Credits: 4 Professional Attributes
Upper Level Lab
Normally Offered: Each Fall, Spring
ECE 33700 and ECE 36200
Computer design is the science and art of selecting and interconnecting hardware components to build a computer that meets functional, performance, and cost goals. In this course, students will learn to design a uniprocessor computer system, including processor datapath, processor control, memory systems, and I/O. The course provides a thorough and detailed treatment of basic computer arithmetic algorithms, multi-cycle implementations of modern computer instruction sets, pipelined CPU designs, design of cache hierarchy and virtual memory, and fundamentals of computer system I/O. The course also includes evaluation and analysis of processor and memory performance. A project which involves the design and implementation of multi-cycle CPU, and a pipelined CPU with a cache hierarchy using CAD tools is an integral part of the course.
Course information, homework assignments, lab experiments, and reference documents are available on the course web site. Nature of Design Experience Through the combination of homework assignments and laboratory experiments, students will learn how to: (a) implement and instruction set with a multiple cycle non-pipelined architecture; (b) optimize and pipeline the CPU design; and (c) prototype variations of the CPU design using field programmable gate arrays (FPGAs) and measure their relative performance.
- Computer Organization and Design: The Hardware-Software Interface, 5th Edition, J. L. Hennessy and D. A. Patterson, Morgan Kaufmann Publisher, 2013, ISBN No. 0124077269.
- Computer Organization and Design: The Hardware-Software Interface, 2nd Edition, J. L. Hennessy and D. A. Patterson, Morgan Kaufmann Publisher, 1998, ISBN No. 155-860-4286.
Learning Outcomes:A student who successfully fulfills the course requirements will have demonstrated:
- an understanding of basic computer arithmetic algorithms. [1,2]
- an ability to understand and implement multi-cycle implementations of a computer instruction set. [1,2]
- an ability to understand and design a pipelined CPU, and cache hierarchy including virtual memory. [1,2]
- an understanding of the fundamentals of computer system I/O. [1,2]
- an ability to analyze and evaluate CPU and memory hierarchy performance. [1,6]
- experience with the design, simulation, and documentation of a multi-cycle CPU, and a pipelined CPU with a cache hierarchy using modern CAD tools. [1,2,3,6,7]
|3-10||Basic CPU Design, Simulation, and Prototyping|
|11-15||Extended CPU Design, Simulation, and Prototyping|