Information Technology Reference
In-Depth Information
limited by any seek or rotational delays, do not suffer mechanical failures, and
consume less power than hard disks.
Reading or writing a random page on a flash-memory-based SSD may be tens of
times faster than reading or writing a random page on hard disk, and the bandwidth
(megabytes per second) of sequential reads or writes may also be distinctly (two to
five times) better on SSD s than on hard disk. The performances of different SSD s
vary greatly, but in many cases, reads on SSD s may be ten times faster than writes,
whereas there is no such performance difference between hard-disk reads and
writes. Contrary to what is commonly believed, sequential reads on SSD s are more
efficient than random reads, as they are on hard disk, so that existing optimizations
for hard disks such as data clustering and readahead are still valid.
A flash-memory-based SSD is normally built on an array of flash-memory
packages. A typical flash-memory package is composed of one or more dies, where
each die (chip) is segmented into multiple planes , each containing a few thousand
(such as 2048) blocks and one or two registers of the page size as an input/output
buffer. A block usually contains 64 to 128 pages, where each page has a 2 or 4 kB
data part and a smaller metadata area.
Read operations on flash-memory-based SSD s are performed in units of pages.
Also writes are normally performed in page granularity, but with some flash
memories, sub-page operations are possible. The pages in a block must be written
sequentially, from the least to the greatest page address. We may view a page
identifier as a pair .b; p/,whereb is a block number and p is the number of the
page within the block.
A unique requirement of flash memory is that a block must be erased before
its pages can be written. An erase operation can take three to four times the time
taken by a write operation and must be conducted in block granularity. Therefore, a
block is also called an erase block . Only whole blocks, not individual pages, can be
erased. Flash-memory blocks have limited erase cycles. After wearing out, say after
100,000 erase cycles, a flash-memory cell can no longer store data.
The controller of a flash-memory-based SSD contains a mapping mechanism
called a flash translation layer ( FTL ) that makes it possible to emulate a hard
disk with in-place writes. Pages to be read or written are identified by logical
page identifiers that remain unchanged in page-write operations. The address of
the current physical page corresponding to a logical page identifier is given by the
FTL mapping. When a modified page p is to be flushed onto flash memory, a clean
(i.e., erased) page location is allocated to hold the contents of the page, the page is
written to the allocated location, the FTL mapping is adjusted to point to the allocated
location, and the old page location is marked as invalid by updating its metadata.
The mapping granularity used in the FTL can be as large as a whole block or
as small as a single page. With page-level mapping , updating a valid page .b; p/
(i.e., one belonging to the current database) involves fixing the page into the buffer,
modifying the page, and, when the page is flushed, locating a block b 0 that has at
least one clean page left, writing the modified page to the first clean page location
p 0 in the block, invalidating the old page location, and adjusting the FTL mapping
so that the logical page identifier of the updated page points to .b 0 ;p 0 / instead of
Search WWH ::




Custom Search