unified address translation for memory mapped ssds with
play

Unified Address Translation for Memory Mapped SSDs with FlashMap - PowerPoint PPT Presentation

Unified Address Translation for Memory Mapped SSDs with FlashMap Jian Huang Anirudh Badam Moinuddin K. Qureshi Karsten Schwan Bridging the DRAM-Disk Gap DRAM Disk Low Performance High Performance Large Capacity Small Capacity


  1. Unified Address Translation for Memory Mapped SSDs with FlashMap Jian Huang Anirudh Badam † Moinuddin K. Qureshi Karsten Schwan †

  2. Bridging the DRAM-Disk Gap DRAM Disk Low Performance High Performance Large Capacity Small Capacity Application Application Storage Memory Component Component 2

  3. Bridging the DRAM-Disk Gap SSD DRAM Disk Low Performance High Performance Good Performance Large Capacity Small Capacity Good Capacity Application Application Memory Storage Component Component 2

  4. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk 3

  5. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk 3

  6. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk No Seek Latency 3

  7. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk Latency + Internal No Seek Parallelism 3

  8. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk Parallelism + Latency + Internal High No Seek IOPS 3

  9. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk Parallelism + Latency + Internal High No Seek IOPS Use Flash as Memory [Badam et al., NSDI’11] DRAM SSD Disk Low Performance Good Performance High Performance Large Capacity Small Capacity Good Capacity Application Storage Application Memory Component Component 3

  10. Flash: Slow Memory or Fast Disk? Flash behaves more like memory than disk Parallelism + Latency + Internal High No Seek IOPS Use Flash as Memory [Badam et al., NSDI’11] DRAM SSD Disk Low Performance Good Performance High Performance Large Capacity Small Capacity Good Capacity Application Storage Application Memory Component Component 3

  11. Memory Mapped SSDs Application SSD 4

  12. Memory Mapped SSDs Application Virtual Memory Filesystem SSD File 4

  13. Memory Mapped SSDs Application Virtual Memory Filesystem SSD mmap() File munmap() msync() 4

  14. Memory Mapped SSDs Application Virtual Memory Filesystem SSD mmap() File munmap() msync() YAY! MORE MEM!!! Extended Memory 4

  15. Memory Mapped SSDs Application Virtual Memory Filesystem SSD mmap() File munmap() msync() YAY! MORE MEM!!! + Minimal Code Extended Memory Modifications 4

  16. Memory Mapped SSDs Application Virtual Memory Filesystem SSD mmap() File munmap() msync() YAY! MORE MEM!!! + + Data Minimal Code Extended Durability Memory Modifications 4

  17. No Free Lunch: Software Overhead Application Virtual Memory System File System Flash Translation Layer Flash 5

  18. No Free Lunch: Software Overhead Virtual Address Application Page Table & page fault Memory Manager Virtual Memory System Physical Address/File Offset File System Flash Translation Layer Flash 5

  19. No Free Lunch: Software Overhead Virtual Address Application Page Table & page fault Memory Manager Virtual Memory System Physical Address/File Offset File Offset File Index File System Logical Block Address Flash Translation Layer Flash 5

  20. No Free Lunch: Software Overhead Virtual Address Application Page Table & page fault Memory Manager Virtual Memory System Physical Address/File Offset File Offset File Index File System Logical Block Address Logical Block Address Flash Translation Layer FTL Flash Physical Block Address 5

  21. Software Overhead Quantified Application 3 address translations Virtual Memory System + 2 boundary checks + 2 permission checks ------------------------------------------- File System = Latency: 15 – 20 microseconds + Increased Metadata Overhead Flash Translation Layer Flash 6

  22. FlashMap: Unified Address Translation Application Virtual Memory System File System Flash Translation Layer Flash 1 Reduced Storage, only 1 mapping table Reduced Latency, only 1 address translation 2 + 1 permission check +1 boundary check 7

  23. FlashMap: Unified Address Translation Application Unified Address Translation Flash 1 Reduced Storage, only 1 mapping table Reduced Latency, only 1 address translation 2 + 1 permission check +1 boundary check 7

  24. Combining Page Table and File System Process A File File System Flash Translation Layer Flash 8

  25. Combining Page Table and File System Process A VM Region File File System Flash Translation Layer Flash 8

  26. Combining Page Table and File System Process A PGD PUD PMD Offset PTE Page Table … VM Region File File System Flash Translation Layer Flash 8

  27. Combining Page Table and File System Process A PGD PUD PMD Offset PTE Page Table … VM Region Process-specific, private File File System Flash Translation Layer Flash 8

  28. Combining Page Table and File System Process A Page Table Only for mapped file VM Region PGD PUD PMD Offset PTE … File File System Flash Translation Layer Flash 8

  29. Preserving File System Permissions Process A Process B VM Region VM Region PGD PUD PMD PTE Offset … Shared Page Table Mapped File File System Flash Translation Layer Flash 9

  30. Preserving File System Permissions Process A Process B VM Region VM Region READ_ONLY READ_WRITE PGD PUD PMD PTE Offset … Shared Page Table Mapped File File System Flash Translation Layer Flash 9

  31. Preserving File System Permissions Process A Process B Permission VM Region VM Region Conflict !!! READ_ONLY READ_WRITE PGD PUD PMD PTE Offset … Shared Page Table Mapped File File System Flash Translation Layer Flash 9

  32. Preserving File System Permissions Only share the leaf-level page table pages ! Process A Process B VM Region VM Region READ_ONLY READ_WRITE PGD PUD PMD PTE Offset … Shared Page Table Mapped File File System Flash Translation Layer Flash 9

  33. Preserving File System Permissions Only share the leaf-level page table pages ! Process A Process B VM Region VM Region READ_ONLY READ_WRITE PGD PUD PMD PTE Offset … Shared Page Table Mapped File File System Flash Translation Layer Flash 9

  34. Preserving File System Permissions Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset … Shared Leaf-level Page Table Pages Mapped File File System Flash Translation Layer Flash 9

  35. Preserving File System Permissions Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset Private Private … Shared Shared Leaf-level Page Table Pages Mapped File File System Flash Translation Layer Flash 9

  36. Page Table in FlashMap Process Page File Directory Private Leaf-Level Shared Leaf-Level Page Table Pages Page Table Pages Private Virtual Virtual Memory Regions Memory Regions Backed by File Process’s Private Virtual Memory + File Backed Memo Before Mapping a File 10

  37. Page Table in FlashMap Process Only for mapped file Page File Directory Private Leaf-Level Shared Leaf-Level Page Table Pages Page Table Pages Private Virtual Virtual Memory Regions Memory Regions Backed by File Process’s Private Virtual Memory + File Backed Memory After Mapping a File 10

  38. Preserving Memory Protection Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset … Shared Leaf-level Page Table Pages Mapped File File System Flash Translation Layer Flash 11

  39. Preserving Memory Protection Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset What if I require custom memory … protection for a single page ??? Shared Leaf-level Page Table Pages Mapped File File System Flash Translation Layer Flash 11

  40. Preserving Memory Protection Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset … Private Leaf-level Page Table Shared Leaf-level Page Table Pages Mapped File File System Flash Translation Layer Flash 11

  41. Combining FTL and Shared Page Table Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset … Shared Leaf-level Page Table Pages Mapped File Mapping Table GC ECC Wear Leveling Flash Translation Layer Flash 12

  42. Combining FTL and Shared Page Table Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset … Overloaded PTE Shared Leaf-level Page Table Pages Mapped File GC ECC Wear Leveling Flash Translation Layer Flash 12

  43. Combining FTL and Shared Page Table Process A Process B PGD PUD PMD PTE Offset PGD PUD PMD PTE Offset … Overloaded PTE Shared Leaf-level Page Table Pages Mapped File GC ECC Wear Leveling Flash Translation Layer Flash 12

  44. Putting It All Together Process A Read PGD PUD PMD PTE Offset DRAM … Shared Leaf-level Page Table Pages FlashMap Mapped File Flash 13

  45. Putting It All Together Process A Read PGD PUD PMD PTE Offset DRAM … Shared Leaf-level Page Table Pages FlashMap Mapped File Flash 13

  46. Putting It All Together Process A Read PGD PUD PMD PTE Offset DRAM … page fault Shared Leaf-level Page Table Pages FlashMap Mapped File Flash 13

  47. Putting It All Together Process A Read PGD PUD PMD PTE Offset DRAM update PTE … Shared Leaf-level Page Table Pages FlashMap Mapped File Flash 13

Recommend


More recommend