Seyyedmohammad Sadrosadati: Catalogue data in Autumn Semester 2022 |
Name | Dr. Seyyedmohammad Sadrosadati |
Address | Professur für Informatik ETH Zürich, ETZ H 64 Gloriastrasse 35 8092 Zürich SWITZERLAND |
mohammad.sadrosadati@safari.ethz.ch | |
Department | Information Technology and Electrical Engineering |
Relationship | Lecturer |
Number | Title | ECTS | Hours | Lecturers | |
---|---|---|---|---|---|
227-0085-44L | Projects & Seminars: Understanding and Designing Modern SSDs (Solid-State Drives) ![]() Only for Electrical Engineering and Information Technology BSc. Course can only be registered for once. A repeatedly registration in a later semester is not chargeable. | 3 credits | 3P | S. Sadrosadati | |
Abstract | The 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 objective | NAND 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 notes | See: https://safari.ethz.ch/projects_and_seminars/ | ||||
Literature | Learning 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 / Notice | Prerequisites 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 |