The New Indirection Table

While the binary tree structure was great for sequential IO performance and for keeping DRAM sizes low, it wasn't good for lowering random IO latency. The S3700 controller completely does away with the old indirection table.

The new controller ditches the binary tree entirely and moves to a completely flat structure with 1:1 mapping. What happens now is there's a giant array with each location in the array mapped to a specific portion of NAND. The array isn't dynamically created and, since it's a 1:1 mapping, searches, inserts and updates are all very fast.

The other benefit of being 1:1 mapped with physical NAND is that there's no need to defragment the table, which immediately cuts down the amount of work the controller has to do. Drives based on this new controller only have to keep the NAND defragmented.

The downside to all of this is the DRAM area required by the new flat indirection table. The old binary tree was very space efficient, while the new array is just huge. It requires a large amount of DRAM depending on the capacity of the drive. In its largest implementation (800GB), Intel needs a full 1GB of DRAM to store the indirection table. By my calculations, the table itself should require roughly 100MB of DRAM per 100GB of storage space on the drive itself. Intel appears to be using DDR3-1333 for its DRAM on-board S3700 drives.

There's a bit of space left over after you account for the new indirection table. That area is reserved for a cache of the controller's firmware so it doesn't have to read from slow flash to access it.

Once again, there's no user data stored in the external DRAM. The indirection table itself is physically stored in NAND (just cached in DRAM), and there are two large capacitors on-board to push any updates to non-volatile storage in the event of power loss.

It sounds like a simple change, but building this new architecture took quite a bit of work. The results, if they are anywhere close to what Intel is promising, are pretty awesome.

Final Words

The Intel SSD DC S3700 appears to be a very promising new architecture from Intel. If it ends up performing as Intel promised, the S3700 controller could be the beginning of a new era in SSD performance - one focused on consistency of performance, not just absolute performance. As soon as we run samples through our test suite you can expect a full review, putting Intel's claims to the test. Stay tuned.

A Brand New Architecture & The Old Indirection Table
Comments Locked

43 Comments

View All Comments

  • nathanddrews - Tuesday, November 6, 2012 - link

    C'mon, man! You're killing me! XD
  • Pandaschnitzel - Thursday, November 8, 2012 - link

    If the encryption is based on SED I would like to see another comparison. Windows 8 and the Bitlocker allow drive encryption like Truecrypt. The difference is that the Bitlocker can use the TPM of the motherboard. With an SSD based on the SED standard the TPM could directly use the hardware encryption of the SSD bypassing the CPU. This should result in significant performance gains compared to standard encryption. Here the penalty of encryption would be interesting. The new Bitlocker also allows to only encrypt the used sectors. This is very important for SSDs because previously the whole drive was encrpted which had negative impact on SSDs - at least without massive overprovisioning.
  • jamescox - Friday, March 1, 2013 - link


    I don't care about battery life too much. I mostly have my laptop plugged in. I don't think I would have issues with write endurance of a lower priced drive, but I would pay significantly more for higher reliability (no crashes, hangs, or data corruption). I think the consistent response time would be a big plus, especially if the drive was being used for swap space.

    Would something like the 100 GB version take too much power? It looks like the max power consumption is only around 3 W for the 100GB version, compared to 0.6 to 0.9 for more other consumer drives. It seems to be selling for more than MSRP ($235) right now though. About $270 is the lowest I have seen for 100 GB version.

Log in

Don't have an account? Sign up now