Willow: ¡A ¡User-‑Programmable ¡SSD ¡ Sudharsan ¡Seshadri, ¡Mark ¡Gahagan, ¡ Sundaram ¡Bhaskaran, ¡Trevor ¡Bunker, ¡ Arup ¡De, ¡Yanqin ¡Jin, ¡Yang ¡Liu, ¡and ¡ Steven ¡Swanson ¡ Non-‑VolaDle ¡Systems ¡Laboratory ¡ Computer ¡Science ¡and ¡Engineering ¡ University ¡of ¡California, ¡San ¡Diego ¡ 1 ¡
PCIe-‑PCM ¡(2010) ¡ PCIe-‑PCM ¡(2015?) ¡ 1000 ¡ 640x ¡ à ¡2.2x/yr ¡ Bandwidth ¡Rela;ve ¡to ¡disk ¡ PCIe-‑Flash ¡(2012) ¡ 100 ¡ PCIe-‑Flash ¡(2007) ¡ 866 à ¡2.3x/yr ¡ 10 ¡ Hard ¡Drives ¡(2006) ¡ 1 ¡ 1 ¡ 10 ¡ 100 ¡ 1000 ¡ 1/Latency ¡Rela;ve ¡To ¡Disk ¡ 2 ¡
Case Study: Programmable GPUs Hidden ¡Programmability ¡ ParDal ¡Programmability ¡ (Firmware) ¡ (Shaders) Full ¡blown ¡Programmability ¡ 3 ¡
Modern SSDs Hide Their Programmability Host SATA/NVMe • Fixed ¡interface ¡ Block Driver – SATA ¡or ¡NVMe ¡ Read() Write() – Storage-‑centric ¡operaDons ¡ SATA/NVMe • Flexible ¡hardware ¡ CPU CPU – MulD-‑core ¡processors ¡ CPU CPU – Complex ¡firmware ¡ NV Memory SSD 4 ¡
Candidates for Near-Storage Compute • Data-‑intensive ¡computaDon ¡ Modern ¡SSD ¡ – Database ¡scans ¡ processors ¡are ¡ – Transcoding ¡ inadequate ¡ – AnalyDcs ¡ • Data-‑dependent ¡accesses ¡ – e.g. ¡pointer ¡chasing ¡ Feasible ¡on ¡ • SemanDc ¡extension ¡ modern ¡SSD ¡ – e.g. ¡transacDons ¡ processors ¡ • Privileged ¡execuDon ¡ – e.g. ¡OS ¡offload ¡ 5 ¡
OS [Zhang’12] ¡ [Caulfield’12] ¡ OS Offload Bypass [Bhaskaran’13] ¡ [Caulfield’12] ¡ [Saxena’12] ¡ Virtualization Caching Specialized SSDs [Do’13] ¡ Transaction Query [Kang’13] ¡ [Kang’13] ¡ Support Processing [Coburn’13] ¡ [Prabhakaran’08] ¡ [Balakrishnan’12] ¡ [Wang’14] ¡ [Huang’12] ¡ Novel IO Key Value [De’13] ¡ Abstractions Store [Josephson’10] ¡ 6 ¡
A Programmable SSD Should… Provide ¡a ¡flexible ¡interface ¡ • – New ¡arguments, ¡semanDcs, ¡and ¡operaDons ¡ – Programmable ¡in ¡C ¡(or ¡something ¡beher) ¡ Enforce ¡file ¡system ¡permissions ¡ • Allow ¡execuDon ¡of ¡untrusted ¡code ¡ • Allow ¡mulDple ¡specialized ¡funcDons ¡to ¡coexist ¡ • Allow ¡for ¡reuse ¡and ¡sharing ¡of ¡funcDons ¡between ¡applicaDons ¡ • Allow ¡applicaDons ¡to ¡invoke ¡operaDons ¡without ¡a ¡system ¡call. ¡ • Be ¡able ¡to ¡run ¡trusted ¡code ¡ • – The ¡OS ¡can ¡delegate ¡operaDons ¡to ¡Willow ¡ – Untrusted ¡applicaDons ¡can ¡to ¡invoke ¡them. ¡ 7 ¡
Willow System Overview Host Willow Application 4 GB/s Custom Kernel Code Interconnect Interconnect Interconnect Willow Driver SPU SPU SPU PCIe PCIe Ctrl Bridge ~2 GB/s Trusted Trusted Trusted Custom Custom Custom Firmware Firmware Firmware Code Code Code Emulated Emulated Emulated PCM PCM PCM 8 ¡
The Willow Processor Complex • 125 ¡MHz ¡MIPS ¡ Interconnect processor ¡ SPU • 32 ¡KB ¡of ¡D-‑ ¡and ¡I-‑mem ¡ 32 KB • A ¡bank ¡of ¡NVM ¡ MIPS Pipeline Streamer DMem • Network ¡interface ¡ Streamer Interface • High-‑bandwidth ¡Data ¡ 32 KB IMem Streamer ¡ Emulated PCM 9 ¡
Willow Usage Model and SSD Apps • The ¡programmer ¡creates ¡an ¡ SSDApp Library Process “SSD ¡App” ¡ Kernel • The ¡kernel ¡installs ¡ App Module “SSDApps” ¡for ¡applicaDons ¡ – The ¡Willow-‑resident ¡code ¡ Interconnect Interconnect – A ¡userspace ¡library ¡ – A ¡kernel ¡module, ¡if ¡needed ¡ Streamer Streamer Willow Willow • CommunicaDon ¡via ¡RPCs ¡ SSDApp SSDApp CPU CPU • Host ¡and ¡SSD ¡code ¡can ¡send ¡ NVM NVM and ¡receive ¡RPCs ¡ 10 ¡
Trust and Protection • A ¡file ¡system ¡sets ¡protecDon ¡ Process Process policy ¡ • RPCs ¡carry ¡an ¡unforgeable ¡ Kernel ProcessID ¡ • ExecuDon ¡at ¡SPUs ¡is ¡always ¡ on ¡behalf ¡of ¡a ¡ProcessID ¡ Interconnect Interconnect • The ¡Willow ¡driver ¡installs ¡ Streamer Streamer Willow Willow access ¡rights ¡ ¡ CPU CPU • Willow ¡firmware ¡checks ¡ NVM NVM permissions ¡on ¡access ¡ 11 ¡
Willow Case Studies • Basic ¡IO ¡ Standard ¡ Equipment ¡ • Direct ¡IO ¡ • Caching ¡ • TransacDon ¡processing ¡ • Key-‑Value ¡Store ¡ • File ¡Append ¡w/o ¡the ¡file ¡system ¡ 12 ¡
TransacDon ¡AcceleraDon ¡with ¡ MARS ¡ [SOSP’13] ¡ 13 ¡
Editable Atomic Writes in Willow LogWrite(bufA,addrA,lenA,logAddrA); ¡ LogWrite(bufB,addrB,lenB,logAddrB); ¡ LogWrite(bufC,addrC,lenC,logAddrC); ¡ Commit(); ¡ Host ¡Memory ¡ Willow ¡ Metadata ¡ File ¡ A ¡ A ¡ Log ¡ B ¡ B ¡ A ¡ B ¡ C ¡ File ¡ C ¡ C ¡ Data ¡ File ¡ 14 ¡
Performance Benefits On TPCB 25000 ¡ 20000 ¡ 1.5x ¡ Transac;ons ¡Per ¡Second ¡ 15000 ¡ ARIES-‑DirectIO ¡ 10000 ¡ MARS ¡ MARS-‑Willow ¡ 5000 ¡ 0 ¡ 1 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ Thread ¡Count ¡ 15 ¡
Observations and Limitations • SSD ¡App ¡development ¡is ¡relaDvely ¡easy ¡ • Composability ¡of ¡SSD ¡Apps ¡is ¡very ¡valuable ¡ • Striping ¡data ¡across ¡SPUs ¡increases ¡complexity ¡ for ¡some ¡SSD ¡Apps ¡ • Limited ¡instrucDon ¡and ¡data ¡storage ¡at ¡SPUs ¡is ¡ a ¡persistent ¡challenge ¡ 16 ¡
The time is ripe for programmable storage • Fast ¡NVMs ¡increase ¡storage ¡flexibility ¡and ¡ performance ¡demands ¡ • ExisDng ¡SSDs ¡are ¡already ¡“sopware ¡defined” ¡ • Numerous ¡applicaDons ¡already ¡exist ¡ • Willow ¡provides ¡a ¡clean, ¡flexible ¡interface ¡ ¡ – Smooth ¡integraDon ¡with ¡exisDng ¡sopware ¡ – Powerful ¡enough ¡for ¡complex ¡applicaDons ¡ – Preserves ¡file ¡system ¡protecDons ¡ • Programmable ¡storage ¡can ¡simplify ¡and ¡ accelerate ¡applicaDons ¡ 17 ¡
Thanks! ¡ 18 ¡
Recommend
More recommend