Print Settings
 

CS 80E: Dissecting The Modern Computer

In this course, students will be given a high-level, accessible introduction to computer architecture through the use of the RISC-V ISA. Through a series of interactive units, students will learn about the inner-workings of computers, from the execution of our programs all the way down to the hardware that runs them. Topics include simple digital circuits, assembly, simple processors, memory systems (Cache, DRAM, Disk), and bonus topics like GPU's. After completing this class, students should have a newfound appreciation for how incredible computational technology is, as well as direction to fantastic classes that delve into some of these topics in more detail, like CS149, EE108, and EE180. Prerequisite: CS106B.
Terms: Aut | Units: 2
Instructors: ; Master, T. (PI)

CS 349H: Software Techniques for Emerging Hardware Platforms (EE 292Y)

Research seminar on software techniques for emerging computational substrates with guest lectures from hardware designers from research and industry. This seminar explores the benefits of novel hardware technologies, the challenges gating broad adoption of these technologies, and how software techniques can help mitigate these challenges and improve the usability of these hardware platforms. Note that the computational substrates discussed vary depending on the semester. Topics covered include: In-memory computing platforms, dynamical system-solving mixed-signal devices, exible and bendable electronics, neuromorphic computers, intermittent computing platforms, ReRAMs, DNA-based storage, and optical computing platforms. Prerequisites: CS107 or CS107E (required) and EE180 (recommended).
Terms: Aut | Units: 3
Instructors: ; Achour, S. (PI); Park, R. (TA)

CS 357S: Formal Methods for Computer Systems

The complexity of modern computer systems requires rigorous and systematic verification/validation techniques to evaluate their ability to correctly and securely support application programs. To this end, a growing body of work in both industry and academia leverages formal methods techniques to solve computer systems challenges. This course is a research seminar that will cover foundational work and current topics in the application of formal methods-style techniques (some possible examples include SAT/SMT, model checking, symbolic execution, theorem proving, program synthesis, fuzzing) to reliable and secure computer systems design. The course can be thought of as an applied formal methods course where the application is reliable and secure architecture, microarchitecture, and distributed systems design. Prior formal methods experience is not necessary. Students will read and discuss published research papers and complete an original research project. Open to PhD and masters students as well as advanced undergraduate students. Prerequisites: EE180 Digital Systems Architecture or comparable course, or consent of instructor.
Last offered: Autumn 2021 | Units: 3

EE 180: Digital Systems Architecture

The design of processor-based digital systems. Instruction sets, addressing modes, data types. Assembly language programming, low-level data structures, introduction to operating systems and compilers. Processor microarchitecture, microprogramming, pipelining. Memory systems and caches. Input/output, interrupts, buses and DMA. System design implementation alternatives, software/hardware tradeoffs. Labs involve the design of processor subsystems and processor-based embedded systems. Formerly EE 108B. Prerequisite: one of CS107 or CS 107E (required) and EE108 (recommended but not required).
Terms: Win | Units: 4 | UG Reqs: GER:DB-EngrAppSci, WAY-SMA

EE 282: Computer Systems Architecture

Course focuses on how to build modern computing systems, namely notebooks, smartphones, and data centers, covering primarily their hardware architecture and certain system software aspects. For each system class, we cover the system architecture, processor technology, advanced memory hierarchy and I/O organization, power and energy management, and reliability. We will also cover topics such as interactions with system software, virtualization, solid state storage, and security. The programming assignments allow students to explore performance/energy tradeoffs when using heterogeneous hardware resources on smartphone devices. Prerequisite: EE180. Recommended: CS 140.
Terms: Spr | Units: 3

EE 292Y: Software Techniques for Emerging Hardware Platforms (CS 349H)

Research seminar on software techniques for emerging computational substrates with guest lectures from hardware designers from research and industry. This seminar explores the benefits of novel hardware technologies, the challenges gating broad adoption of these technologies, and how software techniques can help mitigate these challenges and improve the usability of these hardware platforms. Note that the computational substrates discussed vary depending on the semester. Topics covered include: In-memory computing platforms, dynamical system-solving mixed-signal devices, exible and bendable electronics, neuromorphic computers, intermittent computing platforms, ReRAMs, DNA-based storage, and optical computing platforms. Prerequisites: CS107 or CS107E (required) and EE180 (recommended).
Terms: Aut | Units: 3
Instructors: ; Achour, S. (PI); Park, R. (TA)
© Stanford University | Terms of Use | Copyright Complaints