ECS 154A COMPUTER ARCHITECTURE (4 units)
Lecture: 3 hours
Discussion: 1 hour
Introduction to digital design. Interrupts and interconnection hardware. Caching and memory hierarchy design. Hardware support for operating systems software (virtual memory).
Prerequisites: ECS 050 or EEC 070
Credit restrictions /cross listings: Only one unit of credit allowed for students who have taken Electrical and Computer Engineering 170.
Summary of course contents
- Combinational and Sequential Digital Design
Boolean algebra, gates. Commonly used MSI circuits such as multiplexers and decoders. Simple arithmetic circuits. Latches and flip-flops. Finite state machine design. Use of simple digital design simulation software to aid in hierarchical system development.
- Interrupts and Interconnection hardware
Hardware interrupts. Synchronous and asynchronous buses. Bus arbitration.
Types of memory. Decoding of system-level to chip-level addresses. Caches and the memory hierarchy
- Hardware for Support of Operating Systems
Hardware support to optimize resource usage, and to implement the abstraction of a separate machine for each user. Design and use of memory-management hardware, either within-CPU or via separate MMU, to support efficient and convenient OS memory allocation.
Goals: Students will (1) learn the foundational concepts of digital design; (2) gain a more detailed understanding of memory and the memory hierarchy; and (3) become more familiar with hardware support for operating systems software.
- David Patterson and John Hennessy. Computer Organization and Design: The Hardware/Software Interface. Morgan Kaufmann, 2011.
- Stephen Brown, Fundamentals of Digital Logic Custom, McGraw-Hill, 2000.
Extensive programming and digital design simulation assignments.
Engineering Design Statement:
Students in the course write sophisticated, systems-level programs according to their own design. They also do extensive development of digital circuitry (via a simulator), again according to their own design, and analyze the performance of such circuitry.
ABET Category Content:
Engineering Science: 2 units
Engineering Design: 2 units
GE3: Science & Engineering
Overlap: Substantial overlap with EEC 170, but large student demand justifies the overlap in content.
Instructors: S. Davis, M. Farrens, and D. Ghosal
History: Reviewed 2018.9.7 (CSUGA): no updates. Reviewed by M. Farrens (2012.10.26): updated the catalog description and course contents (previously omitted from ICMS); updated instructor list; moved credit restriction to proper place on ICMS; described course overlap with EEC 170; dropped ECS 60 prerequisite. Pre-electronic CAF; added to archive 2007.06.20. Course description dates to November 1996 (M. Farrens, N. Matloff, and 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||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||an ability to apply design and development principles in the construction of software systems or computer systems of varying complexity|