Live Long and Prosper: The Logical Page

Computers are all about abstraction. In the early days of computing you had to write assembly code to get your hardware to do anything. Programming languages like C and C++ created a layer of abstraction between the programmer and the hardware, simplifying the development process. The key word there is simplification. You can be more efficient writing directly for the hardware, but it’s far simpler (and much more manageable) to write high level code and let a compiler optimize it.

The same principles apply within SSDs.

The smallest writable location in NAND flash is a page; that doesn’t mean that it’s the largest size a controller can choose to write. Today I’d like to introduce the concept of a logical page, an abstraction of a physical page in NAND flash.

Confused? Let’s start with a (hopefully, I'm no artist) helpful diagram:

On one side of the fence we have how the software views storage: as a long list of logical block addresses. It’s a bit more complicated than that since a traditional hard drive is faster at certain LBAs than others but to keep things simple we’ll ignore that.

On the other side we have how NAND flash stores data, in groups of cells called pages. These days a 4KB page size is common.

In reality there’s no fence that separates the two, rather a lot of logic, several busses and eventually the SSD controller. The latter determines how the LBAs map to the NAND flash pages.

The most straightforward way for the controller to write to flash is by writing in pages. In that case the logical page size would equal the physical page size.

Unfortunately, there’s a huge downside to this approach: tracking overhead. If your logical page size is 4KB then an 80GB drive will have no less than twenty million logical pages to keep track of (20,971,520 to be exact). You need a fast controller to sort through and deal with that many pages, a lot of storage to keep tables in and larger caches/buffers.

The benefit of this approach however is very high 4KB write performance. If the majority of your writes are 4KB in size, this approach will yield the best performance.

If you don’t have the expertise, time or support structure to make a big honkin controller that can handle page level mapping, you go to a larger logical page size. One such example would involve making your logical page equal to an erase block (128 x 4KB pages). This significantly reduces the number of pages you need to track and optimize around; instead of 20.9 million entries, you now have approximately 163 thousand. All of your controller’s internal structures shrink in size and you don’t need as powerful of a microprocessor inside the controller.

The benefit of this approach is very high large file sequential write performance. If you’re streaming large chunks of data, having big logical pages will be optimal. You’ll find that most flash controllers that come from the digital camera space are optimized for this sort of access pattern where you’re writing 2MB - 12MB images all the time.

Unfortunately, the sequential write performance comes at the expense of poor small file write speed. Remember that writing to MLC NAND flash already takes 3x as long as reading, but writing small files when your controller needs large ones worsens the penalty. If you want to write an 8KB file, the controller will need to write 512KB (in this case) of data since that’s the smallest size it knows to write. Write amplification goes up considerably.

Remember the first OCZ Vertex drive based on the Indilinx Barefoot controller? Its logical page size was equal to a 512KB block. OCZ asked for a firmware that enabled page level mapping and Indilinx responded. The result was much improved 4KB write performance:

Iometer 4KB Random Writes, IOqueue=1, 8GB sector space Logical Block Size = 128 pages Logical Block Size = 1 Page
Pre-Release OCZ Vertex 0.08 MB/s 8.2 MB/s

A Quick Flash Refresher The Cleaning Lady and Write Amplification
Comments Locked

295 Comments

View All Comments

  • tachi1247 - Friday, September 18, 2009 - link

    Does anyone know what the difference is between the 7mm thick and 9.5mm thick drives?

    http://download.intel.com/design/flash/nand/mainst...">http://download.intel.com/design/flash/nand/mainst...

    They seem to be identical except for the drive thickness.
  • dszc - Saturday, September 12, 2009 - link

    FANTASTIC series of articles. Kudos! They go a long way toward satisfying my intellectual curiosity.

    But now it is time to reap the rewards of this technology and earn a living.
    So I need some real-world HELP.

    How do I clone my 320GB (80GB used) Hitachi OS drive (Vista 32 SP2) over to a 128GB Indilinx Torqx?

    All I really care about is Photoshop and Bridge CS4 performance. I am a pro and work 4-16 hours per day in Bridge and Photoshop, with tens of thousands of images, including 500MB - 2GB layered TIFFs. The Photoshop Scratch Disk and Bridge and CameraRaw Cache performance are killing me. Solid State Storage seems to be the perfect solution to my problem

    I really want to simply clone my 320 over to the Torqx, because it would take me a week to re-install and configure all of my software and settings that are now on the 320GB Hitachi.

    Do I just bring the Torqx up in the Vista Storage Disk Management, initialize it with one big partition, and then format it?
    What size allocation unit should I use? :
    Default? 4096? 64k? ???
    Will these settings be wiped out when I clone over the stuff from the old hard drive?
    What about "alignment"?
    What is the best software for a SIMPLE & painless clone procedure?

    I'm not a techie or geek, but have a fair working knowledge of computers.

    Any help would be hugely appreciated. Thanks.
  • userwhat - Thursday, September 17, 2009 - link

    I use Drive Snapshot for all these purposes. It works 100%, it´s a very small and fast program. After having issues with Norton Ghost and some other similar programs which were absolutely unable to restore an imaged partition stored on a DVD this is THE one to use.

    Get it here: http://www.drivesnapshot.de/en/">http://www.drivesnapshot.de/en/
  • dszc - Saturday, September 26, 2009 - link

    Thank you very much for your help and recommendations.
    To get my Patriot (SolidStateStorage) up and running, I used Seagate DiskWizard (an Acronis subset), as I have lots of Seagate drives already on my system and this free software seems to work.
    When I get a window of time in my schedule, I'll try DriveSnapShot and/or DriveImage to see if they do a better job in helping my Torqx SSS run at its full potential.
    Thanks again for your help.
    Dave
  • JakFrost - Tuesday, September 15, 2009 - link

    If you want to image out your current drive and migrate over to an SSD you can use the free software below that works with Windows Volume Shadow Copies to do a online live migration to another drive without losing or corrupting your data. This means that you can do this from the same OS that you are running.

    This software will allow you to image out to an already created partition that is already aligned at the 1MB boundry that is standard for Microsoft Vista/7 operating systems.

    DriveImage XML V2.11
    English (1.78MB)

    Image and Backup logical Drives and Partitions

    Price: Private Edition Free - Commercial Edition - Buy Now Go!
    System Requirements: Pentium Processor - 256 MB RAM
    Windows XP, 2003, Vista, or Windows 7

    An alternative is to use an offline migration system such as Acronis TrueImage, Norton Ghost, etc. to do the migration offline from a bootable CD or USB drive. Search around for Hiren's BootCD to check out these and other tools to do the migration.
  • dszc - Saturday, September 26, 2009 - link

    Thank you very much for your help and recommendations.
    To get my Patriot (SolidStateStorage) up and running, I used Seagate DiskWizard (an Acronis subset), as I have lots of Seagate drives already on my system and this free software seems to work.
    When I get a window of time in my schedule, I'll try DriveImage and/or DriveSnapShot to see if they do a better job in helping my Torqx SSS run at its full potential.
    Thanks again for your help.
    Dave
  • jgehrcke - Friday, September 11, 2009 - link

    Be careful when buying a Super Talent UltraDrive GX 128 GB with "XXXX" in serial number (unfortunately you cannot check this before ordering the drive). These drives are much slower than measured in the benchmark here and in other benchmarks.

    For more information and related links see

    http://gehrcke.de/2009/09/performance-issue-with-n...">http://gehrcke.de/2009/09/performance-i...est-supe...
  • Kitohru - Thursday, September 10, 2009 - link

    Does OS X Snow Leopard have trim support, and if not any word from apple about that or the like?
  • Zool - Thursday, September 10, 2009 - link

    I still dont think that with this price ssd-s will be more mainstream in the next years. And honestly the performance is not even that extra if everything would work like it should. The mechanical drives can reach now 100 MB reads when things are optimal. The small files performance is still only software problem. U should never ever reach point when u need to randomly find 4 KB files in a long row. With todays ram capacity and cpus-s programs should never read such small files or group things in larger files and read whole to memmory. A solid today programed aplication (let it be game or programs) should never let your disk spam with 30k files (like catia or other plenty of aged so called "profesional" programs). With today ram and disk capacity it should read things to memmory and let only grouped larger files on disk and never ever touch the hdd again until users isnt comunicating with the software (u can tell it to windows).Saves can be made to memmory and than write to disk without even seeing a fps drop in games(not just games) becouse of disk comunication latenci
    I dont even think the IO performance would be a problem with the RIGHT software and OS. With 100MB reads it could run perfectly fine with few seconds loading times. Even the latencies of ssd-s are no match to ram latencies so everithing that should activly comunicate with disks (which is just stupid with curent ram prices and 64bit) would just level your latencies down to disks.
    Why should worry about latencies and read speeds when u could copy it to ram and keep the files on disk in shape where the mechanical drive
    should never find itself to read files smaller than few MB.(even your
    small txt documents u can hide in archive).
    Just my toughs. (sorry for my english)
  • AlExAkE - Wednesday, September 9, 2009 - link

    Hey, I'm a web & multimedia designer. I spend lots of my time using most of the Adobe CS4 products including Photoshop, Flash, Dreamweaver, Illustrator, After Effects & Premiere Pro.

    The Intel 80GB G2 looks amazing, but the Photoshop test is awful because of his write speed. The Intel 25-Extreme series seem to be the best but is to pricey. The OCZ Vertex has good write speed but is slower than Intel G2 in most of the test. What would be the recommended SSD for my purpose. Thanks

Log in

Don't have an account? Sign up now