This is an old revision of the document!
Table of Contents
227-0085-44L: Understanding and Designing Modern NAND Flash-Based Solid-State Drives (SSDs)
Course Description
NAND flash memory is the de facto standard for architecting a storage device in modern computing systems. As modern computing systems process large amounts 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 other 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 P&S, 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. You will 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 of modern storage systems and research experience on system optimization with rigorous evaluation.
Prerequisites of the course:
- No prior knowledge in NAND flash-based storage systems is required.
- Digital Design and Computer Architecture (or equivalent course)
- Good knowledge in C/C++ programming language is required.
- Interest in system optimizations
The course is conducted in English.
Mentors
Name | Office | ||
---|---|---|---|
Lead Supervisor | Jisung Park | jisung.park@safari.ethz.ch | ETZ H 61.1 |
Supervisor | Mohammad Sadrosadati | ssadrosa@ethz.ch | ETZ H 61.1 |
Supervisor | Rakesh Nadig | rakesh.nadig@safari.ethz.ch | ETZ H 64 |
Lecture Video Playlists on YouTube
Spring 2022 Meetings/Schedule
Week | Date | Livestream | Meeting | Learning Materials | Assignments |
---|---|---|---|---|---|
W1 | 18.03 | M1: P&S Course Presentation PDF PPT | Required Recommended | ||
W2 | 25.03 | Live | M2: Basics of NAND Flash-Based SSDs PDF PPT | Required Recommended | |
W3 | 04.04 | Live | M3: Advanced NAND Flash Commands and Address Translation PDF PPT | Required Recommended | |
W4 | 08.04 | Live | M4: Introduction to MQSim PDF PPT | Required Recommended | |
W5 | 29.04 | Live | M5: Fine-Grained Mapping and Multi-Plane Operation-Aware Block Management PDF PPT | ||
W6 | 15.07 | Live | Research Session 1: Data Sanitization and Read-Retry in Modern NAND Flash-Based SSDs PDF PPT | ||
W7 | 22.07 | Live | Research Session 2: In-Storage Processing for Genomics Applications and Reinforcement Learning-Based Hybrid Storage System Management PDF PPT |