I
M
A
G
E
B
Y
A
N
D
R
I
J
B
O
R
Y
S
A
S
S
O
C
I
A
T
E
S
,
U
S
I
N
G
P
H
O
T
O
F
R
O
M
S
H
U
T
T
E
R
S
T
O
C
K
.
C
O
M
deep-network telemetry.
Storage is at the cusp of a similar
transformation. Modern SSDs rely
on sophisticated processing engines
running complex firmware, and ven-
dors already provide customized firm-
ware builds for cloud operators. Ex-
posing this programmability through
easily accessible interfaces will let
storage systems in the cloud data-
centers adapt to rapidly changing re-
quirements on the fly.
Storage Trends
The amount of data being generated
daily is growing exponentially, placing
more and more processing demand on
datacenters. According to a 2017 mar-keting-trend report from IBM,a 90% of
the data in the world in 2016 has been
created in the last 12 months of 2015.
a https://ibm.co/2XNvHPk
Such large-scale datasets—which gen-
erally range from tens of terabytes to
multiple petabytes—present chal-
lenges of extreme scale while achieving
very fast and efficient data processing:
a high-performance storage infrastruc-
ture in terms of throughput and latency
is necessary. This trend has resulted in
growing interest in the aggressive use
of SSDs that, compared with tradition-
al spinning hard disk drives (HDDs),
provides orders-of-magnitude lower
latency and higher throughput. In ad-
dition to these performance benefits,
the advent of new technologies (such
as 3D NAND enabling much denser
chips and quad-level-cell, or QLC, for
bulk storage) allows SSDs to continue
to significantly scale in capacity and to
yield a huge reduction in price.
There are two key components in
SSDs,
4 as shown in Figure 1—an SSD
controller and flash storage media.
The controller that is most commonly implemented as a system-on-a-chip (SoC) is designed to manage
the underlying storage media. For example, SSDs built using NAND flash
memory have unique characteristics
in that data can be written only to an
empty memory location—no in-place
updates are allowed—and memory
can endure only a limited number
of writes before it can no longer be
read. Therefore, the controller must
be able to perform some background
management tasks (such as garbage
collection) to reclaim flash blocks
containing invalid data to create
available space and wear leveling to
evenly distribute writes across the
entire flash blocks with the purpose
of extending the SSD life. These tasks
are, in general, implemented by proprietary firmware running on one or
more embedded processor cores in