227-0085-44L P&S: Understanding and Designing Modern SSDs (Solid-State Drives)
Semester | Herbstsemester 2023 |
Dozierende | |
Periodizität | jedes Semester wiederkehrende Veranstaltung |
Lehrveranstaltung | Findet dieses Semester nicht statt. |
Lehrsprache | Englisch |
Kommentar | Die Lerneinheit kann nur einmal belegt werden. Eine wiederholte Belegung in einem späteren Semester ist nicht anrechenbar. |
Kurzbeschreibung | Der Bereich Praktika, Projekte, Seminare umfasst Lehrveranstaltungen in unterschiedlichen Formaten zum Erwerb von praktischen Kenntnissen und Fertigkeiten. Ausserdem soll selbstständiges Experimentieren und Gestalten gefördert, exploratives Lernen ermöglicht und die Methodik von Projektarbeiten vermittelt werden. | ||||||||||||||||||||||||||||||
Lernziel | NAND flash memory is the de facto standard in 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 SSD can provide an order(s) of magnitude higher I/O performance compared to traditional hard-disk drives (HDDs), with a much lower cost-per-bit value over any other 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 can reliably store data for a certain number of program/erase cycles), and large operation units (e.g., a NAND flash chip 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, that 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 Circuits AND Computer Engineering (or equivalent courses) • Good knowledge in C/C++ programming language is required. • Interest in system optimizations The course is conducted in English. | ||||||||||||||||||||||||||||||
Skript | See: https://safari.ethz.ch/projects_and_seminars/ | ||||||||||||||||||||||||||||||
Literatur | 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: Link Examples of how to improve SSD reliability by exploiting physical characteristics of modern NAND flash memory: Link Link https://arxiv.org/pdf/1706.08642.pdf Examples of how to improve the security and privacy of stored data in SSDs: Link Link | ||||||||||||||||||||||||||||||
Voraussetzungen / Besonderes | Prerequisites of the course: - No prior knowledge of NAND flash-based storage systems is required. - Digital Circuits AND Computer Engineering (or equivalent courses). - Good knowledge of C/C++ programming language is required. - Interest in system optimizations | ||||||||||||||||||||||||||||||
Kompetenzen![]() |
|