|
CPE 1510 - Computer Architecture and Assembly Language3 lecture hours 2 lab hours 4 credits Course Description This course introduces computer organization, instruction set architecture, assembly language programming, central processing unit design, and computer system performance analysis. Students establish skills in computer architecture modeling, writing programs using instructions defined by an instruction set, reasoning about how design choices affect the throughput of instructions, and advanced digital design of controlled data paths. Homework and laboratory exercises require students to implement algorithms in assembly language, calculate performance metrics, evaluate design choices, and to design, simulate, implement, and test a functioning pipelined processor for a reduced instruction set. Prereq: CPE 1500 (quarter system prereq: CE 1911) Note: None This course meets the following Raider Core CLO Requirement: None Course Learning Outcomes Upon successful completion of this course, the student will be able to:
- Compare von Neumann and split-cache Harvard computer organizations
- Describe the building blocks of computers including central processing units (CPUs), cache memory, main memory, parallel ports, and serial ports
- Write and debug assembly language programs including procedure call and interrupts
- Implement a general-purpose single clock cycle CPU for a reduced instruction set
- Implement a general-purpose pipelined CPU for a reduced instruction set
- Evaluate the performance of a CPU under multiple realistic constraints
Prerequisites by Topic
- Integer and fixed-point binary numbers and arithmetic
- Design of combinational and sequential building blocks, arithmetic circuits, and state machines
- Design entry using a hardware description language
Course Topics
- Stored-program computer concept
- von Neumann 0rganization
- Split-cache Harvard organization
- Central processing unit (CPU)
- Memory and I/O pyramid
- ISO/IEC 80000 binary prefixes for memory sizing (kibi, mebi, gibi, tebi)
- ISO/IEC 80000 units for I/O sizing (kilo, mega, giga, tera)
- Instruction, address, and data busses
- Fetch-decode-execute cycle
- Instruction categories arithmetic-logic, load-store, and branch
- Execution time equation using instruction count and clock cycles-per-instruction (CPI)
- Performance analysis of instruction mixes
- Reduced instruction set computers and complex instruction set computers
- Assembly language instructions formatted as labels, opcodes, operands, and immediate literals
- Memory addresses calculated by addressing mode
- Instruction assembly to machine code stored as binary numbers
- Assembly language implementation of code blocks, do-while loops, and if-then-else constructs
- Temporary storage stacks
- Procedure call stack framing
- Assembly language procedures with and without return values
- IEEE 754 single and double precision floating point numbers
- Building block components including program counter, instruction memory, instruction decoder, two-port register files, integer ALU, floating-point unit, memory address register, memory data register, and data memory
- Single clock cycle per instruction CPU design (single-cycle microarchitecture)
- Instruction-level parallelism
- Scalar pipelined CPU design
- Scalar pipelined read-after-write data hazard management using stalls or data forwarding
- Scalar pipelined control hazard management using flush and bubble
- Scalar pipelined control hazard management using n-bit branch predictors and history tables
- Memory latency stall in scalar pipelined processors
- Reducing memory latency with cache memory
- Direct, set-associative, and fully associative cache organizations
- Performance analysis of scalar pipelined instruction mixes with and without data, control, and memory latency hazard management
Laboratory Topics
- Assembly language programming and software debugging
- Design, analysis, simulation, and testing of combinational and sequential logic circuits using both paper-and-pencil and computer-aided design skillsets.
- Testing and debugging with waveform generators, oscilloscopes, logic analyzers, and logic probes
Coordinator Dr. Russ Meier
Add to Portfolio (opens a new window)
|
|