ECE 411
ECE 411 - Computer Organization and Design
Fall 2024
Title | Rubric | Section | CRN | Type | Hours | Times | Days | Location | Instructor |
---|---|---|---|---|---|---|---|---|---|
Computer Organization & Design | ECE411 | AB1 | 29937 | LAB | 0 | - | Nam Sung Kim Nicholas R Satchanov | ||
Computer Organization & Design | ECE411 | AD1 | 29942 | DIS | 4 | 0800 - 0920 | T R | 1002 Electrical & Computer Eng Bldg | Nam Sung Kim |
Computer Organization & Design | ECE411 | ZJ1 | 78786 | LCD | 4 | - | Nam Sung Kim |
See full schedule from Course Explorer
Official Description
Subject Area
- Computer Engineering
Course Director
Description
Goals
To establish a solid background in computer design and evaluation.
Topics
- Introduction and review of logic design
- Instruction set architectures
- Computer arithmetic
- Control unit design
- Memory organization: memory technologies, memory performance evaluation, interleaved memory, associative memory, virtual memory organization, cache memory
- Input-Output: devices, controllers, busy wait I/O, channels, interrupts, direct memory access to multiport memory
- Reliability and performance evaluation
- Introduction to parallel processing, case studies
Detailed Description and Outline
To establish a solid background in computer design and evaluation.
Topics:
- Instruction set architectures
- Control unit design
- Pipeling
- Memory organization: memory technologies, memory performance evaluation, interleaved memory, associative memory, virtual memory organization, cache memory
- Out-of-order Processors
- Input-Output: devices, controllers, busy wait I/O, channels, interrupts, direct memory access to multiport memory
- Reliability and performance evaluation
- Introduction to parallel processing, case studies
Computer Usage
The three laboratory projects listed below require using workstations and ModelSim and Quartus Software to enter and simulate the designs.
Lab Projects
- A microprogrammed microprocessor project
- A pipelined high performance microprocessor project
- A memory management unit with cache project
Topical Prerequisites
- Combinational and sequential logic design
- Machine language programming
- Introduction to Computer Engineering
Texts
D. Paterson and J. Hennessey, Computer Organization and Design: The Hardware/Software Interface.
ABET Category
Engineering Science: 1.5 credits
Engineering Design: 2.5 credits
Course Goals
This course is required for computer engineering majors. The objective of the course is to provide students with a solid foundation in computer design. Through a combination of theoretical framework, practical design techniques, well-defined design problems, open-ended design problems, and teamwork, students develop ability in using design methodology, deriving detailed system descriptions, evaluating feasibility, formulating design problems, being creative in solving design problems, considering alternative solutions, and cooperating with fellow designers to attack demanding assignments. Through report development and formal presentation, students learn to organize, express, promote, and defend their ideas.
Instructional Objectives
A. By the time of exam #1 (after 9 lectures) the students should be able to do the following:
1. Translate a computer design specification into a register transfer language description. (1), (2)
2. Design the data path of a computer from its register transfer language description. (1), (2)
3. Perform performance tuning and extend functionality of a data path design. (1), (2)
4. Design the control unit of a computer using either hardwiring or microprogramming based on its register transfer language description. (1), (2)
5. Implement a simple instruction set computer with a control unit and a data path. (1), (2)
6. Understand implementation issues of more advanced instruction set features such as memory alignment and Endian conventions. (1), (2), (4)
7. Use VHDL to describe the detailed register transfer design at the behavior level (1)
8. Design a basic virtual memory management unit using the concept of one-level and two-level address translation algorithms. (1), (2), (4)
B. By the time of exam #2 (after 17 lectures) the students should be able to do the following:
9. Design a pipelined computer and solve the instruction sequencing, register value forwarding, data interlocking, and precise interrupt problems. (1), (2), (4)
10. Design a basic cache memory with basic organizational techniques and performance tuning. (1), (2)
11. Apply cache design to solve performance problems in other aspects of computer design, e.g., virtual memory address translation (translation lookaside buffer) and pipeline instruction sequencing (branch target buffer). (1), (2)
12. Integrate cache memory with virtual memory management: through virtual-address and physical-address cache memories. (1), (2)
13. Design a bus interconnect for a computer system by addressing timing, arbitration, and locking issues. Understand the concept of more advanced topologies such as point-to-point interconnects and switched networks. (1), (2), (4)
14. Design an I/O subsystem supporting processor programmed I/O, direct memory access, interrupt structures, and industry standards. (1), (4)
15. Understand the concept involved in a floating point unit that supports the IEEE floating-point standard: representable numbers of a format, rounding, underflow, special symbols, and exceptions. (a), (1), (2), (4)
C. By the time of exam #3 (after 28 lectures) the students should be able to do the following:
16. Understand the basic concepts of a multiprocessor design: synchronization and cache coherence protocols. (1), (2), (4)
17. Understand the basic concept of an instruction-level parallel processor design: wide fetch, parallel decode, issue logic, renaming, reservation station, and retirement logic. (1), (4)
18. Understand the basic concepts of explicit instruction-level parallelism: instruction scheduling, very-long-instruction-word computers, explicitly parallel instructions, speculation, prediction. (1), (4)
19. Understand the basic concept of a vector processor design: vector instructions, vector registers, chaining, and vectorization. (1), (2), (4)
Laboratory Objectives
- The lab assignments are designed to provide solid training in designing modern computers. The first three machine design problems, a simple sequential processor that implements the RISC-V instruction set, is an individual project. This is to ensure that each student learns all the skills required. (1), (2)
- Students are required to work in pairs on the fourth machine design problem: a pipelined processor to implement the same RISC-V instruction set. This is to enhance the students' ability to work in teams. (5)
- The designs are done with state-of-the-art CAD tools. The current environment used is the ModelSim and Quartus. This is to give students real-world experience in using design tools. (1), (2)
- The lab reports are graded according to design correctness, design style, and documentation quality. Points will be taken off with the presence of design errors, unnecessary complications, excessive parts, and vague documentation.
- This is to ensure that students understand how to clearly document their designs. Students are required to do a face to face demonstration with the teaching assistants to explain their design. (3)
- The fourth machine design problem is open-ended. Each team is required to choose an overall approach, identify the control mechanism, implement the data-path, and simulate the entire VHDL design for a pipelined microprocessor. (1), (2), (3), (4), (6)
- Students are required to consider alternative solutions and justify their design decisions Formal written reports (not to exceed 10 double-spaced pages) and oral presentations are required from each group for this open-ended design problem. Students are asked to attend one of the team presentation sessions in the last two weeks of the course. Each team is allocated fifteen minutes to present and defend their design decisions. This is to ensure that students have gone through a complete design cycle with experience in communicating and defending their design decisions. (1), (3)