CMSC 411 Syllabus
Computer Architecture
Prerequisites
CMSC 313 or (CMPE 212 and CMPE 310) with a grade of ‘C’ or better.
Description
This course covers the design of complex computer systems making heavy use of the components and techniques discussed in CMSC 313, or CMPE 212 and CMPE 310. All parts of the computer system – CPU, memory and input/output – are discussed in detail. Topics include information representation, floating-point arithmetic, instructions set design issues (RISC vs. CISC), microprogrammed control, hardwired control, pipelining, memory caches, bus control and timing,input/output mechanism and issues in the construction of parallel processors.
Course Outcomes
Each student will:
- Understand the fundamental principles and concepts of computer architecture, including instruction set architecture, memory organization, and pipelining.
- Analyze and evaluate the performance of computer systems through the use of metrics, benchmarks, and performance modeling techniques.
- Gain practical knowledge of designing and implementing various computer components, such as processors, memory systems, and input/output devices.
- Explore different types of parallelism, including instruction-level parallelism and thread-level parallelism, and understand their impact on computer system performance.
- Examine the role of caches and their organization in enhancing memory hierarchy and improving overall system performance.
- Study the principles of pipelining and its challenges, including hazards, dependencies, and techniques for mitigating them.
- Develop critical thinking and problem-solving skills by analyzing real-world case studies, current trends, and emerging technologies in computer architecture.
Student Outcomes
Level Of Emphasis | |||
ABET Outcome | Low | Medium | High |
Analyze a complex computing problem and to apply principles of computing and other relevant disciplines to identify solutions. | X | ||
Design, implement, and evaluate a computing-based solution to meet a given set of computing requirements in the context of the program’s discipline. | X | ||
Communicate effectively in a variety of professional contexts. | X | ||
Recognize professional responsibilities and make informed judgments in computing practice based on legal and ethical principles. | X | ||
Function effectively as a member or leader of a team engaged in activities appropriate to the program’s discipline. | X | ||
Apply computer science theory and software development fundamentals to produce computing-based solutions. | X |
Text
Patterson, P. and Hennessy, J. (2020). Computer Organization and Design MIPS Edition: The Hardware/Software Interface. 6th edition. Morgan Kaufmann. ISBN: 0128201096 Required
Topics
- Instruction Set Architecture
- Instruction formats and semantics
- Addressing modes
- Performance Evaluation
- Measures of performance
- Benchmarks and metrics
- Machine Arithmetic
- ALU design
- Integer multiplication and division
- Floating-point arithmetic
- Processor Design
- Datapath design
- Instruction execution and sequencing
- Hardwired and microcode control
- Pipelining
- Hardware Design Languages
- Design with a simplified VHDL
- Modeling and simulation
- Memory Hierarchy
- Cache design and Evaluation
- Virtual addressing
- Performance evaluation
- Input/Output
- Types of I/O devices
- Device access and interface
- Device control
- I/O performance
Optional Topics
- Multiprocessing
- Interconnection networks
- Programming issues
Grading
30% | Homework Assignments |
35% | Projects |
15% | Midterm exam |
20% | Final exam |
Updated June 19, 2023 by JD and JK