MEMS and Caching for File Systems Andy Wang COP 5611 Advanced Operating Systems
[CMU PDL Lab] MEMS MicroElectricMechnicalSystems 10 Gbytes of data in the size of a penny 100 MB – 1 GB/sec bandwidth Access times 10x faster than today’s drives ~100x less power than low-power HDs Integrate storage, RAM, and processing on the same die The drive is the computer Cost less than $10
MEMS-Based Storage Read/Write tips Read/Write tips Magnetic Media Magnetic Media Actuators
MEMS-based Storage Read/write tips Read/write tips Media Bits stored underneath each tip Bits stored underneath each tip side view
MEMS-based Storage Media Sled X Y
MEMS-based Storage Springs X Y
MEMS-based Storage Anchors attach the springs to the chip. Anchors attach the springs to the chip. Anchor X Y
MEMS-based Storage Sled is free to move Sled is free to move X Y
MEMS-based Storage Sled is free to move Sled is free to move X Y
MEMS-based Storage Springs pull sled toward center Springs pull sled toward center X Y
MEMS-based Storage X Y Springs pull sled toward center Springs pull sled toward center
MEMS-based Storage Actuators pull sled in both dimensions Actuators pull sled in both dimensions Actuator X Y
MEMS-based Storage Actuators pull sled in both dimensions Actuators pull sled in both dimensions X Y
MEMS-based Storage Actuators pull sled in both dimensions Actuators pull sled in both dimensions X Y
MEMS-based Storage Actuators pull sled in both dimensions Actuators pull sled in both dimensions X Y
MEMS-based Storage Actuators pull sled in both dimensions Actuators pull sled in both dimensions X Y
MEMS-based Storage Probe tips are fixed Probe tips are fixed Probe tip X Y
MEMS-based Storage X Y Probe tips are fixed Probe tips are fixed
MEMS-based Storage X Y Sled only moves over the area of a single square Sled only moves over the area of a single square One probe tip per square One probe tip per square Each tip accesses data at the same relative position Each tip accesses data at the same relative position
MEMS-Based Management Similar to disk-based scheme Dominated by transfer time Challenges: Broken tips Slow erase cycle ~seconds/block a cylinder group track
Caching for File Systems Conventional role of caching Performance improvement Assumptions: Locality Scarcity of RAM Shifting role of caching Shaping disk access patterns Assumptions: Locality Abundance of RAM
Performance Improvement Essentially all file systems rely on caching to achieve acceptable performance Goal is to make FS run at the memory speeds Even though most of the data is on disk
Issues in I/O Buffer Caching Cache size Cache replacement policy Cache write handling Cache-to-process data handling
Cache size The bigger, the fewer the cache misses More data to keep in sync with disk
What if…. RAM size = disk size? What are some implications in terms of disk layouts? Memory dump? LFS layout?
What if…. RAM is big enough to cache all hot files What are some implications in terms of disk layouts? Optimized for the remaining files
Cache Replacement Policy LRU works fairly well Can use “stack of pointers” to keep track of LRU info cheaply Need to watch out for cache pollutions LFU doesn’t work well because a block may get lots of hits, then not be used So, it takes a long time to get it out
What is the optimal policy? MIN: Replacing a page that will not be used for the longest time… Hmm…
What if your goal is to save power? Option 1: MIN replacement RAM will cache the hottest data items Disks will achieve maximum idleness… Hmm…
What if you have multiple disks?
And access patterns are skewed Access patterns
Better Off Caching Cold Disks Access patterns Spin down cold disks
Handling Writes to Cached Blocks Write-through cache: update propagate through various levels of caches immediately Write-back cache: delayed updates to amortize the cost of propagation
What if…. Multiple levels of caching with different speeds and sizes? What are some tricky performance behaviors?
istory’s Mystery Puzzling Conquest Microbenchmark Numbers… Geoff Kuenning: “If Conquest is slower than ext2fs, I will toss you off of the balcony…”
With me hanging off a balcony… Original large-file microbenchmark: one 1-MB file (Conquest in-core file)
Odd Microbenchmark Numbers Why are random reads slower than sequential reads?
Odd Microbenchmark Numbers Why are RAM-based FSes slower than disk-based FSes?
A Series of Hypotheses Warm-up effect? Maybe Why do RAM-based systems warm up slower? Bad initial states? No Pentium III streaming I/O option? No
Effects of L2 Cache Footprints Large L2 cache footprint Small L2 cache footprint write a file sequentially footprintfile end footprint read the same file sequentially footprint flush file end file read write a file sequentially footprintfile end footprint read the same file sequentially footprint flush file end read file
LFS Sprite Microbenchmarks Modified large-file microbenchmark: ten 1-MB files (in-core files)
What if…. Multiple levels of caching with similar characteristics? (via network)
A Cache Miss Multiple levels of caching with similar characteristics? (via network)
A Cache Miss Multiple levels of caching with similar characteristics? (via network) Why cache the same data twice?
What if…. A network of caches?
Cache-to-Process Data Handling Data in buffer is destined for a user process (or came from one, on writes) But buffers are in system space How to get the data to the user space? Copy it Virtual memory techniques Use DMA in the first place