Anda di halaman 1dari 8

FRP: A Nonvolatile Memory Research Platform Targeting NAND Flash

John D. Davis and Lintao Zhang


Microsoft Research - Silicon Valley Lab
[joda,lintaoz]@microsoft.com

Abstract different characteristics and require much better


In this paper, we introduce the Flash Research Platform performance and higher reliability.
(FRP), a non-volatile memory research platform that targets For compatibility reasons, current SSDs export an
Solid State Storage (SSS) and NAND Flash research. We are HDD interface. The firmware in an SSD provides a
developing the FRP because we believe that solid state Flash Translation Layer (FTL) to abstract away the
storage devices such as Solid State Disks (SSDs) will be a Flash devices in order to provide the HDD abstraction
ubiquitous persistent storage medium within 5 years for and hide certain operations (such as erasing) from the
personal computers and servers. Solid state technologies
present great challenges and opportunities to revolutionize
operating system. This could potentially limit the file
storage system architecture. This architectural change will system from extracting the full performance from the
affect the entire application stack of the computation storage device.
platform and could enable new applications at a radically On the other hand, traditional computer software has
lower infrastructure cost than currently possible. mostly been designed and optimized for HDDs. It is
Various Flash-based storage devices have been proposed. conceivable that many of the design choices may need
However, most of the existing and proposed solutions still reevaluation in order to fully utilize solid state storage
regard Flash (and other solid state storage devices such as devices. Due to the vastly different characteristics of
Phase Change Memory (PCM) and Magnetoresistive Flash and other Solid State Storage (SSS) devices
Random Access Memory (MRAM)) as a way to build faster
hard disk drive equivalents (i.e., SSDs). Although this is a
compared to traditional HDDs, it is worthwhile to
valid and sufficient approach for the short term, there are rethink the entire storage stack with a fresh mindset.
many more options in the design space and many open Currently available commodity devices do not provide
questions need to be answered to best exploit these new enough flexibility/visibility for innovation due to the
technologies in the longer term. proprietary nature of the design.
To help answer these questions, we need a flexible The Flash Research Platform (FRP) is an open
platform for experimentation. We present a Flash Research platform that leverages reconfigurable hardware to
Platform for SSS research. FRP leverages reconfigurable enable SSS research. Coupled with host drivers and
hardware to provide maximum flexibility for innovative software, it facilitates the research on the entire storage
architectural and algorithmic design of the next generation
storage systems.
system. As shown in Figure 1, the FRP uses the BEE3
system [3] with custom designed Flash DIMM
(FDIMM) modules as the underlying reconfigurable
1. INTRODUCTION hardware. The accompanying host software enables
NAND Flash in the form of Solid State Disks driver and application development. This full control
(SSDs) is being presented as the next generation over the combination of hardware and software
persistent storage solution, supplanting traditional enables the ability to implement ideas in the entire
spinning media or hard disk drives (HDDs). NAND storage stack.
Flash has many advantages that make it a very The FRP provides the facility to investigate SSD
attractive replacement option: fast random reads, shock related issues, Flash device specific issues, or broader
resistant, lower power, and better reliability. However, memory hierarchy issues. The specific contributions of
there are also several drawbacks that require careful this work are:
system design at both the hardware and software level, An open non-volatile memory research platform.
such as requiring erasing before programming The FRP currently targets NAND Flash devices,
(writing), difference between erase and program but has the flexibility to target other non-volatile
granularity, limited rewrite cycles, and complex failure memories.
modes that require non trivial ECC. Historically,
APPLICATIONS
NAND Flash has been used in less demanding devices
DRIVERS FRP Software
like digital cameras and MP3 players. More recently,
FIRMWARE
SSDs based on NAND Flash have been adopted for
GATEWARE
more demanding workloads such as laptops, desktops, FRP Hardware
BEE3 + FDIMM
and server platforms. These applications have very
Figure 1. Flash Research Platform hardware and
software stack.

1
The ability to investigate all aspects of SSD and test their algorithms and designs [4][2], but the
design in hardware and software. The design results are not verified in practice.
provides the ability to implement components in There is a large amount of research on the FTL
either hardware or software, and provides a path algorithms as well as on other aspects of an SSD
to migrate components between them. design (see a survey in [10]). Most of this literature
A flexible hardware architecture that provides uses software simulation to verify the techniques
individual control of each Flash chip, proposed. The lack of a flexible hardware research and
independently, thus enabling a variety of hardware prototyping platform may be one of the most
architecture and controller designs. significant reasons that these innovative designs are
A host software and driver framework that enables not realized in actual hardware. The impact of these
easy SSD prototyping. designs on actual application performance is thus not
The rest of the paper is organized as follows. easy to evaluate.
Section 2 provides background on SSDs and discusses We believe that a flexible prototyping environment
related work. In Section 3, we discuss the hardware can greatly accelerate the adoption and innovation in
implementation of the Flash Research Platform (FRP) the solid state storage research space. The FRP
with particular focus on the NAND Flash provides an open framework in hardware and software
implementation. Section 4 provides details about our to implement SSD architectures, interfaces, and
firmware and software for the current system. Section algorithms. In particular, the FRP could be used to
5 reports the current system status and discusses the validate the SSD simulator created to investigate Flash
FRP research scope. Finally, Section 6 concludes the array organization and management [2]. It can also be
paper and provides future work. used to implement new mechanisms such as a
transactional interface on top of SSDs [17].
2. BACKGROUND AND RELATED WORK
3. FRP HARDWARE
The generic SSD architecture is shown in Figure 2.
It contains multiple Flash chips for the storage, some The FRP hardware is a combination of the BEE3
dynamic RAM for storing working data set, and a multi-FPGA research platform and a custom printed
communication channel to the host computer. It also circuit board, a Flash Dual Inline Memory Module
contains a management unit, usually consisting of an (FDIMM). The BEE3 was originally designed and
embedded CPU running custom software, to perform built for computer architecture research for the RAMP
various management operations. Currently, most consortium [1]. Because the BEE3 is a reconfigurable
vendors treat the architectures of their SSD designs platform, it can also be repurposed for SSD and Flash
and the algorithms used for managing Flash devices as memory research. The BEE3 has 16 DIMM slots that
trade secrets, and very little information on how they we can populate with either DRAM or FDIMMs. The
work is publicly available. DIMM slot also provides the ability to interface to
One of the main functionalities an SSD controller other non-volatile memories for future research,
provides is a Flash Translation Layer (FTL) that makes leveraging the same BEE3 hardware and software. In
the Flash device look like a disk. As shown by various the rest of this section, we describe the BEE3 and the
literature ([20] [4] [13]), by using different architecture FDIMM in more detail. We will also discuss the
and management algorithms, SSDs may have possibility of using other non-volatile memory
drastically different performance characteristics. alternatives.
Several previous works have used experimentation or
trace-based software simulators to infer SSD behavior 3.1. BEE3
The BEE3 system is composed of two separate
PCBs and we focus only on the main PCB for brevity.
The BEE3 is the third generation Berkeley Emulation
Engine and borrows much of its design from the BEE2
system [4]. The main BEE3 PCB has four Virtex 5
FPGAs. They can be populated with a choice of
several FPGAs with different capacity and features
including LX110T, LX155T, SX95T, FX70T, and
FX100T.
Each FPGA has two DDR2 DRAM channels with
Figure 2. SSD Architecture consisting of several flash two DIMMs per channel and supports up to 64 GB for
packages that are connecter to a controller. The controller
the system. The FPGA multi-gigabit transceivers
may or may not have off-chip memory.

2
DDR2 DIMM0 DDR2 DIMM0
DDR2 DIMM1 DDR2 DIMM1

FP
FP

FP
FP

6
4

5
3
DDR2 DIMM2 DDR2 DIMM2
DDR2 DIMM3 DDR2 DIMM3 FP FP FP FP
1 2 7 8
72* 72* 72* 72*

CX4 CX4 JTAG


Ring
QSH-DP- User User QSH-DP- 3.3V
40x2 72* 40x2
040 FPGA 1 FPGA 2 040
CX4 PCI-E PCI-E CX4
CPLD
8X 8X
Ring Ring
72* 72*
PCI-E PCI-E
FP FP
CX4 8X 8X CX4 FP 4 5 FP
3 6
QSH-DP- User User QSH-DP-
40x2 72* 40x2 FP FP
040 FPGA 3 Ring FPGA 4 040 2 7

CX4 CX4 FP FP
1 CPLD 8
Flash
72* 72* 72* 72* Channel

8 Independent Flash
DDR2 DIMM0 DDR2 DIMM0 Channels to FPGA
DDR2 DIMM1 DDR2 DIMM1
DDR2 DIMM2 DDR2 DIMM2
DDR2 DIMM3 DDR2 DIMM3 Figure 4. Front and back of the FDIMM PCB and
FDIMM PCB architecture.
Figure 3. BEE3 main PCB subsystems

provide two CX4 interfaces, which can implement two CPLD. For higher speed devices such as new
10 Gigabit (10 GbE) XAUI interface. Each FPGA has generation ONFI2 Flash parts ([29]), other types of
one eight lane PCI-Express (PCI-E x8) interface that level changing devices may be needed. Figure 4 shows
supplies endpoint functionality. Each FPGA also has the front and back of the FDIMM hardware module
an embedded 1 Gigabit Ethernet (1 GbE) MAC hard and connectivity.
macro that is coupled to a Broadcom PHY chip. The In the current configuration, an FDIMM has an
10 GbE, PCI-E x8, or 1 GbE interfaces provide a aggregate write bandwidth of approximately 160 MB/s
variety of ways to interconnect BEE3 systems and host and aggregate read bandwidth of approximately 320
computers. In addition to a host attached SSD, the rich MB/s. This is on par with existing high-end SSDs [13].
interconnects of BEE3 enable research on Flash-based The FRP can easily saturate the 2GB/s BEE3 PCI-E x8
network attached storage systems. Figure 3 provides interface when it is fully populated with 14 FDIMMs;
the overall high-level BEE3 system block diagram and the aggregate write bandwidth is 2,240 MB/s and the
interfaces with approximate pin bus widths for the aggregate read bandwidth is 4,480 MB/s.
main BEE3 PCB [3]. As shown in a Figure 5A, a small configuration of
the FRP uses a single FPGA on the BEE3 and can
3.2. FDIMM and FRP Hardware Architecture accommodate up to 8GB RAM and 64GB Flash. Using
By leveraging the BEE3 system, we are taking all 4 FPGAs, the maximum system capacity would be
advantage of the FPGA’s reconfiguration ability and 8 GB of DRAM with 448 GB of NAND Flash (14
using a standard DIMM form factor for the Flash FDIMMs), as illustrated in Figure 5B. The system can
daughter card. The FDIMM is built using 4GB SLC further increase the capacity by using different
Samsung NAND Flash packages (Writes: 20 MB/s, FDIMM designs, such as dual rank FDIMMs and/or
Reads: 40 MB/s) [19]. The FDIMM fits in a standard MLC NAND Flash devices. Between these two system
240-pin DDR2 DIMM slot and is slightly taller than a configuration points, other hybrid DRAM and Flash or
normal DIMM. Each FDIMM exports approximately Flash-only configurations are possible.
130 pins for the data and control interface to the We implemented the most flexible FDIMM design
DIMM slot connector, enough for eight Flash chips to using independent point-to-point control and data
be independently controlled by the FPGA. interconnect between the Flash packages (FP) and the
The DDR2 I/O voltage interface is 1.8V, whereas FPGA as shown in Figure 6A. However, other Flash
the Flash component I/O voltage interface is 3.3V. We configurations are possible that require fewer I/O pins.
use a Xilinx CPLD as a voltage translator. The CPLD For example, the majority of the control signals
implements a synchronous pass-through device that (labeled S-Cntrl) can be shared and only the chip
could also provide some minimal additional logic or enable (CE) signals require distribution or all control
performance counters. The Flash we are using has a pins can be shared, as shown in Figures 6B and 6C,
low operating frequency that is well suited for the respectively. This enables one or more FPs to operate

3
Data0 Data2 Data0 Data2 Data0 Data2

PCI-E x8, CE0 CE2


1 GbE, FP 0 FP 2 FP 0 FP 2 FP 0 FP 2
PCI-E x8,
10 GbE 64 GB 1 GbE,
8 GB Control 2
10 GbE 64 GB Control 0 S-Cntrl S-Cntrl
FF 8 GB
Controller LL FF Control 1 Control 3
DRAM

FPGA AA LL
Controller CE1 CE3

DRAM
SS AA FP 1 FP 3 FP 1 FP 3
A FPGA FP 1 FP 3
HH SS
A HH
Data1 Data3 Data1 Data3 Data1 Data3
(A)
Ring A2D Ring A2B (B) (C)
(A)

FF FF FF FF Figure 6. Possible Flash package (FP) organizations on

QSH A2C
LL Flash LL LL Flash LL
AA FPGA AA AA FPGA AA the FDIMM.
SS D SS SS B SS
HH HH HH HH generally stored in read-only memory, is often called
64 GB 64 GB 64 GB 64 GB
firmware while code running on the host machine is
FF
Flash
FF called software. The gateware refers to the Hardware
LL LL
AA FPGA AA Description Language (HDL), typically Verilog or
SS C SS
HH HH VHDL, used to program the FPGAs. The FRP
64 GB (B) 64 GB provides the unique opportunity to move components
from software to firmware run by an FPGA
Figure 5. FRP (A) minimum and (B) maximum NAND controller, or even to specialized hardware in the
Flash configurations.
form of gateware, as shown by the grey boxes in the
in concert or forces all the FPs to complete the same various layers in Figure 7B.
command and increases the read and write block size.
It is also possible to share the data pins by time 4.1. FPGA Gateware layer
division multiplexing the data bus with individual chip The FPGA gateware is the code that programs the
or rank enables. FPGA, transforming the FPGA into an instance of the
specified hardware design. We use Xilinx’s software
3.3. Using Other Non-Volatile Memories development environment (ISE 10.1 and EDK 10.1) to
By using the BEE3 reconfigurable hardware compile Verilog or VHDL into a bitstream that is used
platform, we can adapt it for other non-volatile to program the FPGAs. The FPGA can be thought of
memory research. We can easily switch between SLC as two distinct planes, a control plane and a sea of
and MLC NAND by changing the type of device that resources plane (Block RAMs, DSPs, 6-input look-up
populates the FDIMM. Furthermore, different DIMMs tables, and an on-chip inteconnect network). The
can be manufactured for investigating NOR Flash bitstream programs the control plane. This in term
devices. This would be similar to the Spansion specifies the connectivity and operation of the sea of
EcoRAM components that are currently available [9]. resources plane. The result is the ability to integrate
There are several non-volatile memories that are on the various digital systems and build complex systems,
verge of being commercially available. They currently like the FRP.
are not yet competitive with Flash devices but have a The FRP integrates various components: DRAM
lot of potential to become popular in the future. A memory controller, I/O interfaces (1GbE, 10 GbE, or
reconfigurable platform is an ideal research vehicle for PCI-E x8), Flash memory controllers, and embedded
prototyping a storage system that use such devices. CPU, all the components in the lowest layer of Figure
This includes Magnetoresistive Random Access 7A. We leverage pre-existing gateware for the DDR2
Memory (MRAM) [8], Silicon-Oxide-Nitride-Oxide- DRAM controller [7]. The I/O modules for the 1GbE,
Silicon (SONOS) [6], Phase Change Memory (PCM, PCI-E x8, and 10 GbE are based on application notes
or PRAM) [16], Nano-RAM (NRAM) [15] and and the related sample designs and building blocks
programmable metallization cell, or (PMC) [14]. available from Xilinx [25]-[28]. The PCI-E interface
provides DMA functionality, which frees the host
4. FRP SOFTWARE machine from managing, at a fine granularity, data
movement in the FRP system.
The FRP design provides a flexible substrate for There are many CPU cores available for FPGAs.
innovation in gateware, firmware, drivers, and Xilinx provides its own 32-bit Microblaze processor
applications that utilize the underlying storage media. that integrates well with other Xilinx modules and
For the FRP, there are three layers of software to supports full OS functionality [24]. Xilinx Virtex 5
develop, as shown in Figure 7A: gateware and FXT devices also contain PowerPC hard IP cores that
firmware, device drivers, and applications. can provide higher performance than soft cores such as
Traditionally, code running on the hardware, the Microblaze [23].

4
User User User-Level
Applications User
Application Application Management
Application
Layer
Hard Drive Request Hard Drive Request Hard Drive Request
Kernel\User Interface Kernel\User Interface Kernel\User Interface

Hard Drive Interface Hard Drive Interface Hard Drive Interface


OS OS OS
Interface
Operating Driver
Interface Interface
System &
Drivers
Driver Driver
Communication
Driver

PCI-E, 10 GbE, 1 GbE PCI-E, 10 GbE, 1 GbE


Software/Hardware Interface Software/Hardware Interface Software/Hardware Interface

PCI-E, 10 GbE, 1 GbE PCI-E, 10 GbE, 1 GbE

I/O Controller I/O Controller I/O Controller

DMA+ DMA+ DMA+


Gateware & DRAM DRAM DRAM
Firmware CPU CPU CPU

FP FP FP FP FP FP
Flash Flash Flash
Controller Controller Controller
FP FP FP FP FP FP

(A) (B) (C)


Figure 7. FRP software layers and major components. (A) illustrates the all software components, (B) illustrates the
ability to migrate various components (the grey boxes) to the different layers, and (C) illustrates using an application
as the management layer for the FRP for easier system development and debugging.

In addition to these initial components, there are host, usually in the OS kernel space, although user-
several components that have been developed level driver development is also possible.
internally. The Flash package controller implements Traditionally, the device driver for SSDs provides a
many of the Flash commands (read, program, erase, disk-like interface (a block device) to the applications.
etc.) outlined in the datasheet [19]. We dedicate a To be consistent with SSDs, our device driver exports
simple Flash controller to each Flash channel. We a HDD interface, as shown in Figure 7. Thus, the FRP
designed this Flash controller as a finite state machine emulates HDD functionality and applications are
(FSM), but the Flash command sequences could also unaware of the difference, making it compatible with
be implemented using a simple microcontroller and all software.
associated program. This may sounds like overkill, but It is also possible for the device driver to expose
it provides the maximum flexibility for quick special APIs that are not traditionally provided by hard
prototyping. Likewise, there are several interface disk interfaces. One can augment the hard disk with
modules and queues required for data management that operations such as compression and encryption.
are not shown in Figure 7. Moreover, there are many proposals that provide Flash
The FRP also facilitates the development of specific operations, such as marking a logical sector as
additional gateware for specialized compute engines or free (called TRIM operation) [21] or physically
functions that operate on the data retrieved or the data deleting the data of a logical sector (secure delete) [9].
to be written to the Flash packages. For example, error Recently, transactional semantics have been proposed
correction code (ECC) logic can be implemented in to augment the Flash-based disks [17].
gateware to offload the computation from the host The application interface is only one part of the FRP
CPU. The ECC implementation can be flexible in that device driver layer. The external I/O device driver is
varying strengths of ECC could be implemented to also required to facilitate communication between the
recover from varying number of bit errors. It is also host CPU and BEE3 module. We leverage existing
possible to implement other capabilities in the network device drivers for the communication with
gateware such as encryption/decryption, compression, Ethernet, and create our own PCI-E device driver for
data filtering, and data manipulation. performance reasons.
We have also developed the system shown in Figure
4.2. Device Driver 7C, which enables driver development in user-level
The device driver is the OS dependent layer that applications, speeding up development time and
interacts with the user applications and the FRP improving the driver debugging experience. The user-
hardware. The device driver must be executed on the level application sees the same block device interface
as before. That block device driver makes a callback to

5
from the data structures to carry out user requests such
as reads and writes. Additional tasks, such as wear
leveling and garbage collection, as well as background
data scrubbing, are also being scheduled by the task
manager. It is possible to choose various algorithms
for certain components, such as the cache replacement
policy in the buffer manager or the mapping technique
used in logical to physical mapping. However, we
think the overall architecture of the management layer
is flexible to accommodate many of these variations.
Figure 8. The Management layer components.
5. FRP DISCUSSION
a user-level application that can implement various The Flash research platform is early in its
commands and data manipulations and then interface development and we believe it will enables many
to a communication driver to interface to the FPGA research directions. First, we describe the FRP status
through 1 GbE, 10 GbE, or PCI-E. The split driver and then discuss the research scope of the system.
implementation is especially useful for quickly
implementing new functionalities in the Flash 5.1. FRP Status
management layer. The FRP hardware has been manufactured, tested,
and is fully functional and is shown in Figure 9. As
4.3. The FRP Management Architecture mentioned before, the current FDIMM has 8 Samsung
The FRP management software specifies the SLC NAND Flash chips and all the chips can be
hardware-software contract for the FRP. The
independently controlled by the FPGA. We are
management layer software abstracts away the details exploring other FDIMM designs including using
of the Flash devices operations, such as block erase, devices that have the next generation Flash interfaces
and provides a well defined hardware independent such as ONFI2 [29] and Toggle-Mode.
interface for read/write/flush or APIs like trim and The FRP software is still under active development.
secure erase. We have developed the first instance of the FRP, a
The FRP management software implements various
single FPGA system as shown in Figure 5A. We have
algorithms used in the Flash Translation Layer (FTL) implemented the gateware for this configuration using
such as cache management, garbage collection, wear 1 GbE as the communication channel between FRP
leveling and logical to physical sector remapping [10]. and the host. As a first step, we demonstrated the
The FRP management software translates various tasks ability to read/write and erase individual Flash chips.
into the gateware layer commands and monitors the We also implemented the management layer software
execution of these commands on the actual hardware. on the host computer and we are in the process of
As Figure 7B illustrates, the FRP management linking the management software with the actual Flash
software can be executed on an embedded CPU in the hardware.
FPGA, or on the host CPU in the device driver or even We are also developing the gateware for the PCI-E
as a user-level application. Currently, we organize the communication channel. Initial experiments show that
management layer as a user-level application similar to
we can achieve over 1 GB/s throughput for our actual
Figure 7C, trading off performance for ease of implementation (compared with theoretical bandwidth
implementation. of 2 GB/s). The PCI-E controller under development
Figure 8 shows the major components of FRP’s contains scatter-gather DMA capability. This will
management software architecture. It contains several greatly improve system bandwidth and latency.
data structures collectively reflecting the state of the Currently, we do not have an embedded CPU in the
FRP system. These include a map that keeps track of
FPGA. All management functions are carried out in
the logical to physical page translations, a buffer the device driver layer. We plan to implement a CPU
manager for cache management, a block manager to on the FPGA to offload the management layer in the
keep track of the status of all the blocks (recall that a future.
block is the smallest unit of erase), a log manager that We are still developing the Windows device driver
transform random writes into log-structured writes, layer. We separated the device driver into two parts as
and a metadata manager that keep track of other
shown in Figure 7C for ease of development. This will
system metadata. certainly incur performance overhead. In the future,
The task manager of the management layer executes when the software becomes stable, we plan to use a
an infinite loop, leveraging the information available

6
Given the FRP flexibility and visibility, we will be
able to investigate a wide range of topics. These topics
span low-level issues like characterizing the NAND
Flash devices and observing and understanding device
failure to broader questions related to how NAND
Flash fits in the traditional memory hierarchy. By
building a system that mimics an SSD, we are
developing the framework to investigate NAND Flash
and non-volatile memory in general.
We built the FRP to interaction with real systems.
However, FRP system performance has been initially
sacrificed for rapid bring up. By implementing most of
the system functionality in software, the overall system
performance will have many opportunities for
optimization by moving functionality down into
Figure 9. An FRP system with 16 GB of DRAM and hardware. As a result, development and debugging
128 GB of Flash using three FPGA. may occur at very different levels depending on the
unified device driver similar to Figure 7B. The current user’s proficiency.
device driver makes the FRP look like a hard disk to The main FRP system limitations are related to the
the user applications. We expect to expand the overall system performance, limited power monitoring,
interface to include richer functionalities. and system cost. The base BEE3 system is expensive
Finally, the application layer software received the as well as the individual FDIMM modules. Currently,
least amount of development. However, we believe system performance is limited by developer effort. As
that this may actually provide the most fertile ground mentioned previously, full system power
for innovation when the FRP becomes stable. measurements using the entire BEE3 system are not
representative of an SSD, for instance. Likewise, the
5.2. FRP Research Scope FRP has limited storage capacity using the FDIMMs
The main benefits of the FRP are the increased and BEE3 DRAM slots and limited FPGA compute
system visibility and real prototype interaction. The capacity. One can use a single BEE3 to build a system
FRP provides the ability to see into the hardware, with terabytes of storage, but petabytes are currently
firmware, device driver, and application layers. This is beyond the realm of an FRP system or reasonable
something no other SSD provides and enables both in collection of systems. Finally, developing the FRP has
depth investigation and understanding opposed to required expertise in both hardware and software
research that derives results based on inference and development and as one can imagine, initial
deduction. By implementing the entire stack, we will development and the associated learning curve is
have complete control over the device management in nontrivial.
all layers and not just interact with the exposed
interface as with an SSD or other black-box systems. 6. CONCLUSIONS AND FUTURE WORK
The FRP will enable a wide range of monitoring and
SSDs are going to revolutionize the storage
logging. Hardware counters of various types can be
architecture of computer systems. Due to the
added to the FPGA and streamed out over RS232 or
difference between SSDs and traditional storage
other I/O channels. The device driver can be
medium, many well-established principles in our
instrumented as well as applications. Within the
hardware and software design need to be re-examined.
FPGA, performance counters can monitor read and
We have built a hardware platform, the FRP, for
write cache utilization and performance, hot pages or
storage architecture research and in particular NAND
most frequently accessed pages, off-load engine
Flash SSDs. We believe this hardware design is
performance, and bit error tracking, to name a few.
flexible enough to accommodate a wide variety of
These performance counters can be implemented as
research. FRP is not limited to NAND Flash devices.
needed. The FDIMM design also allows for limited
We can leverage and reuse the FRP hardware and
power measurement of the Flash packages. The Flash
software for other non-volative memories, like high-
packages use an isolated voltage plane that also
speed NAND Flash, NOR Flash, or PCM. These new
supplies the I/O voltage for the PLD. Controller or full
solid state storage devices, though not as prevalent as
system power would still need to be extrapolated for a
NAND Flash, have the potential to have bigger impact
target storage system.
in the longer term.

7
While we can leverage a lot of components from [12] T. Kgil, D. Roberts, and T. Mudge, “Improving NAND
various sources, there is still significant effort required Flash based disk caches”, 35th Int. Symp. on Computer
to integrate and interface to these components. Architecture, Beijing, China, June, 2008
Regardless, the goal of having an open research [13] Intel Corporation, “Intel® X25-E SATA Solid State
Drive,” http://download.intel.com/design/flash/nand/
platform for SSD and NAND Flash research is in extreme/ extreme-sata-ssd-datasheet.pdf
sight. [14] M.N. Kozicki and W.C. West, “Programmable
There is a significant amount of future work that can Metallization Cell”, U.S. Patent Number 5,761,115,
be pursued with the FRP. Our immediate plans are to 1998
create a stable FRP that can scale to use all the FPGAs [15] Nantero Corporation, NRAM, http://www.nantero.com/
in the BEE3. Following that milestone, we plan to products.html
implement transactional flash [17], as well as [16] R. Neale, D. Nelson, Gordon Moore, “Nonvolatile and
exploring other abstractions for solid state storage reprogram able, the read-mostly memory is here,”
devices. We plan to investigate the possibility of Electronics, pp56-60, Sept. 28, 1970
[17] Vijayan Prabhakaran, Thomas L. Rodeheffer, and
migrating certain computations (such as encryption) to Lidong Zhou, “Transactional Flash”, Proceedings of the
the disk controller hardware. We also plan to Operating Systems Design and Implementation
implement a utility to stress test Flash devices to learn Conference (OSDI 2008), San Diego, CA, Dec 2008
more about the failure mode of these devices. [18] Ramtron International Corporation, “Ramtron Parallel
Nonvolatile Memory”, http://www.ramtron.com/
REFERENCES products/nonvolatile-memory/parallel.aspx
[1] Arvind, et al.; "RAMP: Research Accelerator for [19] Samsung Corporation, “K9XXG08XXM Flash Memory
Multiple Processors - A Community Vision for a Specification”,http://www.samsung.com/global/system/
Shared Experimental Parallel HW/SW Platform." 2005; business/semiconductor/product/2007/6/11/NANDFlash
Available from: /SLC_LargeBlock/8Gbit/K9F8G08U0M/ds_k9f8g08x0
http://ramp.eecs.berkeley.edu/publications.php m_rev10.pdf, 2007.
[2] N. Agrawal, V. Prabhakaran, et al., “Design Tradeoffs [20] P. Schmid and A. Roos, “14-Way SSD Hard Drive
for SSD Performance”, Proceedings of the USENIX Roundup : Flash SSDs Compared”,
Annual Technical Conference (USENIX 2008), Boston, http://www.tomshardware.co.uk/flash-ssd-hard-drive,
MA, June 2008 review-31258.html
[3] BEE3:Revitalizing Computer Architecture Research, [21] Frank Shu, “Notification of Deleted Data Proposal for
http://research.microsoft.com/projects/BEE3/ ATA8-ACS2”, http://t13.org/Documents/UploadedDoc
[4] Birrell, M. Isard, C. Thacker, and T. Wobber, “A uments/docs2007/e07154r0-Notification_for_Deleted_
Design for High-Performance Flash Disks”, In Data_Proposal_for_ATA-ACS2.doc, 2007
Operating Systems Review, 41(2), April 2007, pp 88-93 [22] Xilinx Corporation, Xilinx XC2C512 CoolRunner-II
[5] C. Chang, J. Wawrzynek, and R. W. Brodersen. “BEE2: CPLD Datasheet, http://www.xilinx.com/support/
A Hig-End Reconifgurable Computing System.” IEEE documentation/data_sheets/ds096.pdf
Des. Test, 2005. 22(2): p. 114-125. [23] Xilinx Corporation, Virtex5 Datasheet,
[6] Cypress Semiconductor Corporation, “8M-bit http://www.xilinx.com/xlnx/xweb/xil_publications_inde
nvSRAM”, http://download.cypress.com.edgesuite.net/ x.jsp
design_resources/datasheets/contents/cy14b108l_8.pdf [24] Xilinx Corporation, “MicroBlaze Processor Reference
[7] DDR2 DRAM Controller for BEE3, Guide”; http://www.xilinx.com/support/documentation/
http://research.microsoft.com/research/downloads/Detai sw_manuals/mb_ref_guide.pdf
ls/12e67e9a-f130-4fd3-9bbd- [25] Xilinx Corporation, “Virtex-5 FPGA Embedded Tri-
f9e448cd6775/Details.aspx Mode Ethernet MAC User Guide”,
[8] Freescale Semiconductor, “256K x 16-Bit 3.3-V http://www.xilinx.com/support/documentation/user_gui
Asynchronous Magnetoresistive RAM”, des/ug194.pdf
http://www.freescale.com/files/microcontrollers/doc/dat [26] Xilinx Corporation, XAPP859, “Virtex-5 FPGA
a_sheet/MR2A16A.pdf?pspll=1 Integrated Endpoint Block for PCI Express Designs:
[9] Frost and Sullivan, “Using Spansion ® EcoRAMTM to DDR2 SDRAM DMA Initiator Demonstration
Improve TCO and Power Consumption in Internet Data Platform”, http://www.xilinx.com/support/
Centers”, http://www.spansion.com/about/news/events/ documentation/application_notes/xapp859.pdf
spansion_ecoram_whitepaper_0608.pdf [27] Xilinx Corporation, XAPP1000, “Reference System:
[10] E. Gal and S. Toledo, “Algorithms and data structures LBv46 Endpoint Bridge for PCI Express in a ML555
for flash memories”, ACM Computing Surveys (CSUR), PCI/PCI Express Development Platform”,
v.37 n.2, p.138-163, June 2005 http://www.xilinx.com/support/documentation/applicati
[11] P. Gutmann, “Secure Deletion of Data from Magnetic on_notes/xapp1000.pdf
and Solid-State Memory”, Sixth USENIX UNIX Security [28] Xilinx Corporation, “XAUI v7.4”,
Symposium, pages 77–90, San Jose, CA, July 1996 http://www.xilinx.com/support/documentation/ip_docu
mentation/xaui_ds266.pdf
[29] http://www.onfi.org/

Anda mungkin juga menyukai