Seyyedmohammad Sadrosadati: Catalogue data in Spring Semester 2024

Name Dr. Seyyedmohammad Sadrosadati
Address
Professur für Informatik
ETH Zürich, ETZ H 64
Gloriastrasse 35
8092 Zürich
SWITZERLAND
E-mailmohammad.sadrosadati@safari.ethz.ch
DepartmentInformation Technology and Electrical Engineering
RelationshipLecturer

NumberTitleECTSHoursLecturers
227-0003-10LDigital Design and Computer Architecture Information 7 credits4V + 2UF. K. Gürkaynak, S. Sadrosadati
AbstractThe class provides a first introduction to the design of digital circuits and computer architecture. It covers technical foundations of how a computing platform is designed from the bottom up. It introduces various execution paradigms, hardware description languages, and principles in digital design and computer architecture.
Learning objectiveThis class provides a first approach to Computer Architecture. The students learn the design of digital circuits in order to:
- understand the basics,
- understand the principles (of design),
- understand the precedents (in computer architecture).
Based on such understanding, the students are expected to:
- learn how a modern computer works underneath, from the bottom up,
- evaluate tradeoffs of different designs and ideas,
- implement a principled design (a simple microprocessor),
- learn to systematically debug increasingly complex systems,
- hopefully be prepared to develop novel, out-of-the-box designs.
The focus is on basics, principles, precedents, and how to use them to create/implement good designs.
ContentThe class consists of the following major blocks of contents:
- Major Current Issues in Computer Architecture: Principles, Mysteries, Motivational Case Studies and Examples
- Digital Logic Design: Combinational Logic, Sequential Logic, Hardware Description Languages, FPGAs, Timing and Verification.
- Basics of Computer Architecture: Von Neumann Model of Computing, Instruction Set Architecture, Assembly Programming, Microarchitecture, Microprogramming.
- Basics of Processor Design: Pipelining, Out-of-Order Execution, Branch Prediction.
- Execution Paradigms: Out-of-order Execution, Dataflow, Superscalar Execution, VLIW, Decoupled Access/Execute, SIMD Processors, GPUs, Systolic Arrays, Multithreading.
- Memory System: Memory Organization, Memory Technologies, Memory Hierarchy, Caches, Prefetching, Virtual Memory.
Lecture notesAll the materials (including lecture slides) will be provided on the course website:
http://safari.ethz.ch/ddca/
The video recordings of the lectures are likely to be made available, but there may be delays associated with the posting of online videos.
LiteraturePatt and Patel's "Introduction to Computing Systems" and Harris and Harris's "Digital Design and Computer Architecture" are the official textbooks of the course.
We will provide required and recommended readings in every lecture since the course is cutting-edge and there is no textbook that covers what the course covers. They will be mostly chapters of the two textbooks, and important articles that are essential for understanding the material.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementfostered
Social CompetenciesCommunicationassessed
Cooperation and Teamworkfostered
Personal CompetenciesCreative Thinkingfostered
Critical Thinkingassessed
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed
227-0085-44LP&S: Understanding and Designing Modern Storage Systems Restricted registration - show details
Course can only be registered for once. A repeatedly registration in a later semester is not chargeable.
3 credits3PS. Sadrosadati
AbstractThe category of "Laboratory Courses, Projects, Seminars" includes courses and laboratories in various formats designed to impart practical knowledge and skills. Moreover, these classes encourage independent experimentation and design, allow for explorative learning and teach the methodology of project work.
Learning objectiveNAND flash memory is the de facto standard for architecting a storage device in modern computing systems. As modern computing systems process a large amount of data at an unprecedented scale, a storage device needs to meet high requirements on storage capacity and I/O performance. A NAND flash-based solid-state drive (SSD) can provide orders-of-magnitude higher I/O performance compared to traditional hard-disk drives (HDDs), with a much lower cost-per bit value over SSDs based on emerging non-volatile memory (NVM) technologies.

NAND flash memory has several unique characteristics, such as the erase-before write property (i.e., a flash cell needs to be first erased before programming it), limited lifetime (i.e., a cell cannot reliably store data after experiencing a certain number of program/erase (P/E) cycles), and large operation units (e.g., modern NAND flash memory typically reads/writes data in a page (e.g., 16 KiB) granularity). To achieve high performance and large capacity of the storage system while hiding the unique characteristics of NAND flash memory, it is critical to design efficient SSD firmware, commonly called Flash-Translation Layer (FTL). An FTL is responsible for many critical management tasks, such as address translation, garbage collection, wear leveling, and I/O scheduling, which significantly affect the performance, reliability, and lifetime of the SSD.

In this course, we will cover how a modern NAND flash-based SSD is organized and operates, from the basics of underlying NAND flash devices and various SSD-management tasks at the FTL level. We will also examine other emerging memory technologies for building SSDs, such as Phase Change Memory, 3D XPoint (e.g., Intel Optane SSD) and more.

You will help build a practical SSD simulator by refactoring MQSim, a state-of-the-art simulator for high-end SSDs, to support advanced features of modern NAND flash chips and essential SSD-management tasks. This will allow you to have the chance to obtain a comprehensive background in modern storage systems and research experience on system optimization with rigorous evaluation.

The course is conducted in English.

The course has two main parts:
Weekly lectures on modern NAND flash-based SSDs
Hands-on project to refactor MQSim

Course website: https://safari.ethz.ch/projects_and_seminars/
Lecture notesSee: https://safari.ethz.ch/projects_and_seminars/
LiteratureLearning Materials
============

Inside NAND Flash Memories: https://search.library.ethz.ch/permalink/f/823s1o/ELENDING603606

Inside Solid State Drives (SSDs):
https://search.library.ethz.ch/permalink/f/823s1o/ELENDING1030264

MQSim, an open-source multi-queue SSD simulator

Source code: https://github.com/CMU-SAFARI/MQSim

Paper: https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf

An example of how to improve SSD performance by optimizing the I/O scheduling policy of the FTL: https://people.inf.ethz.ch/omutlu/pub/FLIN-fair-and-high-performance-NVMe-SSD-scheduling_isca18.pdf

Examples of how to improve SSD reliability by exploiting physical characteristics of modern NAND flash memory:
https://people.inf.ethz.ch/omutlu/pub/3D-NAND-flash-lifetime-early-retention-loss-and-process-variation_sigmetrics18_pomacs18-twocolumn.pdf
https://people.inf.ethz.ch/omutlu/pub/heatwatch-3D-nand-errors-and-self-recovery_hpca18.pdf
https://arxiv.org/pdf/1706.08642.pdf

Examples of how to improve the security and privacy of stored data in SSDs:
https://people.inf.ethz.ch/omutlu/pub/evanesco-secure-data-sanitization-for-flash-memory_asplos20.pdf
https://people.inf.ethz.ch/omutlu/pub/flash-memory-programming-vulnerabilities_hpca17.pdf
Prerequisites / NoticePrerequisites of the course:
- No prior knowledge of NAND flash-based storage systems is required.
- Digital Design and Computer Architecture (or equivalent course)
- Good knowledge of C/C++ programming language is required.
- Interest in system optimizations
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Decision-makingassessed
Problem-solvingfostered
Project Managementassessed
Social CompetenciesCommunicationfostered
Cooperation and Teamworkassessed
Personal CompetenciesAdaptability and Flexibilityassessed
Creative Thinkingfostered
Critical Thinkingfostered
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed
227-2211-00LSeminar in Computer Architecture Information Restricted registration - show details
The deadline for deregistering expires at the end of the second week of the semester. Students who are still registered after that date, but do not attend the seminar, will officially fail the seminar.
2 credits2SS. Sadrosadati, Y. Liang
AbstractThis seminar course covers fundamental and cutting-edge research papers in computer architecture. It has multiple components that are aimed at improving students' (1) technical skills in computer architecture, (2) critical thinking and analysis abilities on computer architecture concepts, as well as (3) technical presentation of concepts and papers in both spoken and written forms.
Learning objectiveThe main objective is to learn how to rigorously analyze and present papers and ideas on computer architecture. We will have rigorous presentation and discussion of selected papers during lectures and a written report delivered by each student at the end of the semester.

This course is for those interested in computer architecture. Registered students are expected to attend every meeting, participate in the discussion, and create a synthesis report at the end of the course.
ContentTopics will center around computer architecture. We will, for example, discuss papers on hardware security; accelerators for key applications like machine learning, graph processing and bioinformatics; memory systems; interconnects; processing in memory; various fundamental and emerging paradigms in computer architecture; hardware/software co-design and cooperation; fault tolerance; energy efficiency; heterogeneous and parallel systems; new execution models; predictable computing, etc.
Lecture notesAll materials will be posted on the course website: https://safari.ethz.ch/architecture_seminar/
Past course materials, including the synthesis report assignment, can be found in the Fall 2020 website for the course: https://safari.ethz.ch/architecture_seminar/fall2020/doku.php
LiteratureKey papers and articles, on both fundamentals and cutting-edge topics in computer architecture will be provided and discussed. These will be posted on the course website.
Prerequisites / NoticeDigital Design and Computer Architecture OR Digital Circuits / Computer Engineering

Students should (1) have done very well in Digital Design and Computer Architecture , Digital Circuits or a similar course and (2) show a genuine interest in Computer Architecture.
CompetenciesCompetencies
Subject-specific CompetenciesConcepts and Theoriesassessed
Techniques and Technologiesassessed
Method-specific CompetenciesAnalytical Competenciesassessed
Problem-solvingassessed
Project Managementassessed
Social CompetenciesCommunicationassessed
Cooperation and Teamworkfostered
Leadership and Responsibilityassessed
Self-presentation and Social Influence fostered
Personal CompetenciesCreative Thinkingfostered
Critical Thinkingassessed
Integrity and Work Ethicsassessed
Self-awareness and Self-reflection assessed
Self-direction and Self-management assessed