ray (FPGA)
13, 21 and GPU,h with storage
media) and flash and other emerging
new non-volatile memories (such as 3D
XPoint, ReRAM, STT-RAM, and PCM)
that provide persistent storage at DRAM
latencies to deliver high-performance
gains. This approach would present the
greatest flexibility to take advantage of
advances in the underlying storage device to optimize performance for multiple cloud applications. In the near
future, the software-hardware innovation inside the SSD can proceed much
like the PC, networking hardware, and
h https://bit.ly/2L8LfM4
GPU ecosystems have in the past. This
is an opportunity to rethink datacenter
architecture with efficient use of heterogeneous, energy-efficient hardware,
which is the way forward for higher
performance at lower power.
Value Propositions
Here, we summarize three value
propositions that demonstrate future
directions in programmable storage
(see Figure 4):
Agile, flexible storage interface (see
Figure 4a). Full programmability will allow the storage interface and feature set
to evolve at cloud speed, without having
to persuade standardization bodies to
bless them or persuade device manufacturers to implement them in the
next-generation hardware roadmap,
both usually involving years of delay. A
richer, customizable storage interface
will allow application developers to stay
focused on their application, without
having to work around storage constraints, quirks, or peculiarities, thus
improving developer productivity.
As an example of the need for such an
interface, consider how stream writes
are handled in the SSD today. Because
the SSD cannot differentiate between
incoming data from multiple streams, it
could pack data from different streams
onto the same flash erase block, the
smallest unit that can be erased from
flash at once. When a portion of the
stream data is deleted, it leaves blocks
with holes of invalid data. To reclaim
these blocks, the garbage-collection activity inside the SSD must copy around
the valid data, slowing the device and
increasing write amplification, thus reducing device lifetime.
If application developers had con-
trol over the software inside the SSD,
they could handle streams much more
efficiently. For instance, incoming
writes could be tagged with stream
IDs and the device could use this in-
formation to fill a block with data
from the same stream. When data
from that stream is deleted, the entire
data block could be reclaimed with-
out copying around data. Such stream
awareness has been shown to double
device lifetime, significantly increas-
ing read performance.
14 In Micro-
soft, this need of supporting multiple
streams in the SSD was identified in
2014, but NVMe incorporated the fea-
that splits the monolithic components
of an SSD into two different modules—
one standardized part dealing with
storage media and a software interface
to handle application-specific tasks
(such as garbage collection and wear
leveling). In this way, SSD suppliers can
build simpler products for datacen-
ters and deliver them to market more
quickly while per-application tuning is
possible by datacenter operators.
The component-based ecosystem
also opens up entirely new opportunities for integrating powerful heterogeneous programming elements
(such as field-programmable gate ar-
Figure 4. Programmable SSD value proposition.
Host
Server
Programmable SSD
(c)
Trusted domain for secure computation
(cleartext not allowed to egress the SSD boundary.)
Host
Server
Programmable SSD
(b)
Moving compute inside SSD to leverage
low latency, high bandwidth, and access to data
Server
Programmable SSD
DRAM
Processor +
HW Offload
(a)
Agile, flexible storage interface
leveraging programmability within SSD
DRAM
Processor +
HW Offload
DRAM
Processor +
HW Offload