EEC170 - Introduction To Computer Architecture
4 units - Fall Quarter
Lecture: 3 hours
Discussion: 1 hour
Prerequisite: Course 180A; Course 70 or ECS50
Catalog Description: Introduces basic aspects of computer architecture, including computer performance measurement, instruction set design, computer arithmetic, pipelined/non-pipelined implementation, and memory hierarchies (cache and virtual memory). Presents a simplified Reduced Instruction Set Computer using logic design methods from the prerequisite course.
Relationship to Outcomes:
Students who have successfully completed this course should have achieved:
|Course Outcomes||ABET Outcomes|
|An ability to apply knowledge of mathematics, science, and engineering||A|
|An ability to design and conduct experiments, as well as to analyze and interpret data||B|
|An ability to identify, formulate, and solve engineering problems||E|
|An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.||K|
Expanded Course Description:
- Computer Performance
- Measuring Performance
- Benchmark Selection
- Comparing and Summarizing Performance
- Instruction Sets
- Instruction Representation
- Support for Procedures
- Complex Instructions
- Computer Arithmetic
- Integer Representation
- Addition and Subtraction
- Logical Operations
- ALU Design
- Floating Point
- Non-Pipelined Processor Design
- Simple Control Unit
- Finite State Machine Control Unit
- Pipelined Processor Design
- Pipelined Datapath
- Pipelined Control
- Data Hazards
- Branch Hazards
- Memory System Design
- Memory Hierarchy
- Mapping and Replacement Techniques
- Virtual Memory
Computer Use: The students use
a computer to execute a RISC assembly language simulator
that is used for various assembly language programming projects, and/or use a computer to run logic
design software that is used to design various processor modules.
Laboratory Projects: The
students may be given hardware and/or software design assignments:
Assembly language programming assignments may be given to familiarize
students with the RISC assembly language and to reinforce certain
architecture concepts. Example assignment:
- Floating point arithmetic: design a routine that emulates floating point addition or multiplication.
Various processor modules may be implemented at the gate level.
Example projects include:
- Design a simple ALU to support a RISC instruction subset.
- Design a simple control unit to support a RISC instruction subset.
- Design a pipeline hazard detection unit.
- Design a pipeline forwarding unit.
Engineering Design Statement:
The course emphasizes techniques for designing processors, from the architecture level to the gate level. In projects, homework assignments, and exams students are presented with problems that require them to explore various approaches to processor design, to choose between alternatives, and to justify solutions based on performance, cost, and/or complexity considerations.
Engineering Science: 2 units
Engineering Design: 2 units