Willow: A User-Programmable SSD Sudharsan Seshadri, Mark - - PowerPoint PPT Presentation

willow a user programmable ssd
SMART_READER_LITE
LIVE PREVIEW

Willow: A User-Programmable SSD Sudharsan Seshadri, Mark - - PowerPoint PPT Presentation

Willow: A User-Programmable SSD Sudharsan Seshadri, Mark Gahagan, Sundaram Bhaskaran, Trevor Bunker, Arup De, Yanqin Jin, Yang Liu, and Steven Swanson


slide-1
SLIDE 1

1 ¡

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 ¡

slide-2
SLIDE 2

2 ¡

1 ¡ 10 ¡ 100 ¡ 1000 ¡ 1 ¡ 10 ¡ 100 ¡ 1000 ¡ Bandwidth ¡Rela;ve ¡to ¡disk ¡ 1/Latency ¡Rela;ve ¡To ¡Disk ¡

Hard ¡Drives ¡(2006) ¡ PCIe-­‑Flash ¡(2007) ¡ PCIe-­‑PCM ¡(2010) ¡ PCIe-­‑Flash ¡(2012) ¡ PCIe-­‑PCM ¡(2015?) ¡

640x ¡à ¡2.2x/yr ¡ 866à ¡2.3x/yr ¡

slide-3
SLIDE 3

3 ¡

Full ¡blown ¡Programmability ¡

Case Study: Programmable GPUs

Hidden ¡Programmability ¡ (Firmware) ¡ ParDal ¡Programmability ¡ (Shaders)

slide-4
SLIDE 4

4 ¡

Modern SSDs Hide Their Programmability

Host SSD

Read() Write() SATA/NVMe Block Driver CPU SATA/NVMe NV Memory CPU CPU CPU

  • Fixed ¡interface ¡

– SATA ¡or ¡NVMe ¡ – Storage-­‑centric ¡operaDons ¡

  • Flexible ¡hardware ¡

– MulD-­‑core ¡processors ¡ – Complex ¡firmware ¡

slide-5
SLIDE 5

5 ¡

Candidates for Near-Storage Compute

  • Data-­‑intensive ¡computaDon ¡

– Database ¡scans ¡ – Transcoding ¡ – AnalyDcs ¡

  • Data-­‑dependent ¡accesses ¡

– e.g. ¡pointer ¡chasing ¡

  • SemanDc ¡extension ¡

– e.g. ¡transacDons ¡

  • Privileged ¡execuDon ¡

– e.g. ¡OS ¡offload ¡

Feasible ¡on ¡ modern ¡SSD ¡ processors ¡ Modern ¡SSD ¡ processors ¡are ¡ inadequate ¡

slide-6
SLIDE 6

6 ¡

OS Offload Novel IO Abstractions Query Processing

Specialized SSDs

Caching Key Value Store Transaction Support Virtualization OS Bypass

[Kang’13] ¡ [Prabhakaran’08] ¡ [Do’13] ¡ [Kang’13] ¡ [Saxena’12] ¡ [Zhang’12] ¡ [Huang’12] ¡ [Balakrishnan’12] ¡ [Josephson’10] ¡ [Caulfield’12] ¡ [Coburn’13] ¡ [Caulfield’12] ¡ [Bhaskaran’13] ¡ [Wang’14] ¡ [De’13] ¡

slide-7
SLIDE 7

7 ¡

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. ¡

slide-8
SLIDE 8

8 ¡

Willow System Overview

Willow Host

Bridge

Application

PCIe

PCIe Ctrl

4 GB/s ~2 GB/s

Emulated PCM

Interconnect SPU

Emulated PCM

Interconnect SPU

Emulated PCM

Interconnect SPU Kernel

Trusted Firmware Trusted Firmware Trusted Firmware

Willow Driver

Custom Code Custom Code Custom Code Custom Code

slide-9
SLIDE 9

9 ¡

The Willow Processor Complex

  • 125 ¡MHz ¡MIPS ¡

processor ¡

  • 32 ¡KB ¡of ¡D-­‑ ¡and ¡I-­‑mem ¡
  • A ¡bank ¡of ¡NVM ¡
  • Network ¡interface ¡
  • High-­‑bandwidth ¡Data ¡

Streamer ¡

SPU

32 KB IMem 32 KB DMem

MIPS Pipeline

Streamer Interface

Streamer

Emulated PCM

Interconnect

slide-10
SLIDE 10

10 ¡

Willow Usage Model and SSD Apps

  • The ¡programmer ¡creates ¡an ¡

“SSD ¡App” ¡

  • The ¡kernel ¡installs ¡

“SSDApps” ¡for ¡applicaDons ¡

– The ¡Willow-­‑resident ¡code ¡ – A ¡userspace ¡library ¡ – A ¡kernel ¡module, ¡if ¡needed ¡

  • CommunicaDon ¡via ¡RPCs ¡
  • Host ¡and ¡SSD ¡code ¡can ¡send ¡

and ¡receive ¡RPCs ¡

Process

Kernel Interconnect

NVM

Willow CPU

Streamer

Interconnect

NVM

Willow CPU

Streamer

SSDApp SSDApp SSDApp Library App Module

slide-11
SLIDE 11

11 ¡

NVM NVM

Process Process

Kernel Interconnect

Streamer

Interconnect

Streamer

Willow CPU Willow CPU

Trust and Protection

  • A ¡file ¡system ¡sets ¡protecDon ¡

policy ¡

  • RPCs ¡carry ¡an ¡unforgeable ¡

ProcessID ¡

  • ExecuDon ¡at ¡SPUs ¡is ¡always ¡
  • n ¡behalf ¡of ¡a ¡ProcessID ¡
  • The ¡Willow ¡driver ¡installs ¡

access ¡rights ¡ ¡

  • Willow ¡firmware ¡checks ¡

permissions ¡on ¡access ¡

slide-12
SLIDE 12

12 ¡

Willow Case Studies

  • Basic ¡IO ¡
  • Direct ¡IO ¡
  • Caching ¡
  • TransacDon ¡processing ¡
  • Key-­‑Value ¡Store ¡
  • File ¡Append ¡w/o ¡the ¡file ¡system ¡

Standard ¡ Equipment ¡

slide-13
SLIDE 13

13 ¡

TransacDon ¡AcceleraDon ¡with ¡ MARS ¡

[SOSP’13] ¡

slide-14
SLIDE 14

14 ¡

Willow ¡

B ¡ C ¡

Editable Atomic Writes in Willow

LogWrite(bufA,addrA,lenA,logAddrA); ¡ LogWrite(bufB,addrB,lenB,logAddrB); ¡ LogWrite(bufC,addrC,lenC,logAddrC); ¡ Commit(); ¡

Host ¡Memory ¡

A ¡ B ¡ C ¡ Metadata ¡ File ¡ Log ¡ File ¡ Data ¡ File ¡ A ¡ B ¡ C ¡ A ¡

slide-15
SLIDE 15

15 ¡

Performance Benefits On TPCB

0 ¡ 5000 ¡ 10000 ¡ 15000 ¡ 20000 ¡ 25000 ¡ 1 ¡ 2 ¡ 4 ¡ 8 ¡ 16 ¡ Transac;ons ¡Per ¡Second ¡ Thread ¡Count ¡ ARIES-­‑DirectIO ¡ MARS ¡ 1.5x ¡ MARS-­‑Willow ¡

slide-16
SLIDE 16

16 ¡

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 ¡

slide-17
SLIDE 17

17 ¡

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 ¡

slide-18
SLIDE 18

18 ¡

Thanks! ¡