ECS 154B COMPUTER ARCHITECTURE (4 units)
Lecture: 3 hours
Discussion: 1 hour
Overview of Uniprocessor CPUs. Hardwired and microprogrammed CPU design. Pipelining. Memory Hierarchy design. Multiprocessors and Parallelism
Prerequisites: ECS 154A or (EEC 170, EEC 180A)
Credit restrictions/cross listings: None
Summary of course contents
- Uniprocessor CPU Overview
Impact of technology, cost/power/performance tradeoffs, instruction set design and evaluation.
- Uniprocessor CPU Design
Single and multiple cycle CPUs. Microprogramming & hardwired control logic. Homework using digital design software to implement part or all of a simple CPU.
Pipelining as performance enhancing technique. Challenges to maximizing performance using pipelining. Relationship between instruction set design and pipelining. Pipelining and Interrupts. Advanced pipelining topics.
- Hierarchical Memory System Design
Detailed examination of the memory hierarchy. Advanced caching techniques. Interaction between virtual memory system and memory hierarchy.
- Multiprocessors and Parallelism
Introduction to shared-memory and message-passing multiprocessor systems
Goals: Students will (1) learn the foundational concepts of microprocessor organization, and (2) accomplish a sequence of integrated projects which create the low-level software and digital design of a fully-functional, pipelined microprocessor
David Patterson and John Hennessy. Computer Organization and Design: The Hardware/Software Interface. 5th edition. Morgan Kaufmann, 2011
Extensive digital design simulation assignments.
Engineering Design Statement:
Design tradeoffs–hardwired vs. microprogrammed CPU implementation, RISC vs CISC architectural philosophy, and so on–form a continuing theme in the course.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
GE3: Science & Engineering
Instructors: M. Farrens
History: Reviewed 2018.9.7 (CSUGA). Reviewed by M. Farrens (2012.10.26): revised the catalog description and prerequisites, provided an up-to-date expanded course description (previously omitted from ICMS); updated instructor list. Pre-electronic CAF; added to archive 2007.06.20. Course description dates to November 1996 (M. Farrens, N. Matloff, R. Olsson).
|1||X||an ability to apply knowledge of mathematics, science, computing, and engineering|
|2||X||an ability to design and conduct experiments, as well as to analyze and interpret data|
|3||X||an ability to design, implement, and evaluate a system, process, component, or program to meet desired needs, within realistic constraints such as economic, environmental, social, political, ethical, health and safety, manufacturability, and sustainability|
|4||X||an ability to function on multi-disciplinary teams|
|5||X||an ability to identify, formulate, and solve computer science and engineering problems and define the computing requirements appropriate to their solutions|
|6||an understanding of professional, ethical, legal, security and social issues and responsibilities|
|7||an ability to communicate effectively with a range of audiences|
|8||X||the broad education necessary to understand the impact of computer science and engineering solutions in a global and societal context|
|9||X||a recognition of the need for, and an ability to engage in life-long learning|
|10||X||knowledge of contemporary issues|
|11||X||an ability to use current techniques, skills, and tools necessary for computing and engineering practice|
|12||an ability to apply mathematical foundations, algorithmic principles, and computer science and engineering theory in the modeling and design of computer-based systems in a way that demonstrates comprehension of the tradeoffs involved in design choices|
|13||X||an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity|