Introducing the Phison PS 3110 Controller
Introducing the Phison PS 3110 Controller
Phison may not be a household name but that does not mean they are newcomers to the solid state storage industry. Rather they are a company that has been around for a long time but only recently decided to divert their focus from the OEM market. Up until their PS3108 controller, Phison were best known for either being the being the first company to be able to offer OEMs a single-chip USB flash drive IC, or being one of the founders of the Open NAND Flash Interface (ONFI) group.
What few consumers realize is that since their founding in late 2000 Phison has shipped over half a billion NAND flash controllers. Needless to say they may not have name brand recognition in the consumer marketplace, but they are a highly respected company behind the scenes.
Unlike competitors like Indilinx or Marvel, Phison's first generation SATA AHCI NAND flash controller was a touch underwhelming and never gained much traction outside the extreme value end of the spectrum. Considering the experience and patent portfolio of Phison such a misstep must have been very irksome to them. This is why they went back to the drawing board and started with a completely fresh approach to controller design. The end result of their hard work is the new PS3110 controller.
On the surface this controller may not appear to be all that unique as it is 55nm, AHCI, SATA 6Gb/s based design that offers seemingly middle of the road abilities. In fact 550/530 MBps read and write performance with 100K/90K random IOPS is fairly typical for modern controllers. Being an eight channel design is also fairly typical and nothing standout. Of course compared to their previous generation '108 these specifications are a major step up. However, simple specifications such as maximum sequential performance, and even random IOPs rarely tell the full story and the PS3110 is a perfect example of why consumers should never judge by such basic specifications.
Going hand in hand with the increased channels and IOPS is a different approach to load balancing. In most designs, all cores in the controller are continuously conducting a delicate balancing act between garbage collection, other low level tasks and real time I/O requests. This is a big portion of what firmware refinement boils down to: modifying the amount of cycles the controller dedicates towards specific tasks.
Compare and contrast the standard approach with Phison's approach: rather than load balance cycles at the firmware level, Phison has dedicated a whole processor core for real time requests and then sets the other three cores for garbage collection, and other low level tasks. The only other company's controller which does something even remotely similar is OCZ's Indilinx Barefoot 3 which uses an additional core for specific low level tasks. However, the Phison and PS3110 are the first to take load balancing to such extremes.
On the surface such a move is highly controversial as common sense would lead you to believe that real time IO requests are more important than low level requests. The reality is not so cut and dry, and the opposite is actually closer to the typical scenarios most consumer grade controllers will encounter. The fact of the matter is home users rarely have deep queue depth IO requests and instead the majority of the time the controller has to deal with internal housekeeping measures to keep the data available, the free NAND in a virgin state, and even ensuring the ECC is not corrupted. As such having one core always on standby for user requests and having the other 3 cores being able to seamlessly do behind the scenes tasks is rather brilliant…or insane. In either case it is unique answer to the age old problem of proper load balancing.
The most obvious benefits to such a configuration is that long term performance drop off should be drastically lower than most controllers. The drive's performance will not be noticeably impacted by ongoing behind the scenes garbage collection and even data reliability will also be greater.
To help ensure all data is safe, secure, and not corrupted the PS3110 takes a page from SandForce's RAIN technology and treats all its internal ICs not as one large Logical Unit, rather it treats them as a logical array of independent NAND ICs. Such a configuration provides data redundancy and additional ECC via this 'RAID'. This multi-tiered approach to error correction is what Phison calls SmartECC. SmartECC however is not simply an internal RAID array and instead consists of multiple levels.
Let's break down what happens when the controller encounters corrupted data during a read IO request. When such an occurrence happens the PS3110 immediately does a read retry to ensure that the data is actually corrupted and unreadable. This allows a second chance at reading the data at full performance as ECC does significantly impact real time performance. If the data is still found to be corrupted, the controller then reads the 120bit/2KB BCH ECC that is stored in the spare area NAND - i.e. not in the same NAND ICs as the corrupted data. If the standard BCH ECC is not able to fully repair the corruption the controller then reads the RAID ECC parity to fill in the missing data. It is only if after doing all this that the data is still found to be corrupted that the drive will fail the data and notify the system of the issue.
In addition to this extremely aggressive and impressive data protection Phison's PS3110 also implements what they call SmartRefresh. The typical data retention abilities of consumer grade NAND varies from weeks (TLC) to years (SLC) with MLC being good for about a one year period. Put another way, data that is written and then is left static tends to fade and becomes harder to read the longer it is left alone. This is the nature of having four voltage settings for MLC NAND and eight for TLC NAND as the voltage states the smaller the drift has to be before corruption occurs. In some controllers these highly static NAND cells are mostly left alone and only tested once the data is needed. This laissez faire approach to data retention is one reason why Samsung's 840 Evo series had such wildly varying performance.
Phison on the other hand has taken a much more active approach. Since they have so many free cycles - via the three dedicated cores - for housecleaning and maintenance the PS 3110 will actively and routinely read NAND cells and test the results against its ECC - even when the data is not request by the host system. This way 'fading' data can be caught early, refreshed during low IO periods and thus PS3110 controller based drives will almost never suffer the same fate as Samsung 840 Evo drives.
Also helping against data corruption, Phison's PS3110 also has two more features called SmartFlush and GuranteedFlush. Much like OCZ's Power Failure Management Plus (PFM+), Phison's SmartFlush minimizes the time that data stays in the ram buffer and is constantly flushing the data to minimize In-Flight data loss from a unexpected loss of power. This is not the same as true Enterprise grade Data Loss Protection but is still nevertheless a nice addition. GuranteedFlush simply means that the PS 3110 is Flush Cache (E7h) command enabled, and as such when the Operating System tells it to flush its buffers so that the system can enter a low power state it will indeed flush its buffer and only when completed will it signal the host controller that it is ready to go to sleep.
Further helping consistent long term performance, Phison has opted for a moderate ~7% of over-provisioning. In the 240GB model this is 16GB while the 480GB models have 22GB set aside. This spare area can be used for everything from bad block replacement to garbage collection. Most importantly, it ensures the controller will always have access to free blocks even when the drive is approaching full capacity. This multi-layer approach to data protection is overkill for the consumer marketplace.
As with most high performance controllers PS3110 controller also meets TCG’s OPAL standards and has built in auto-encryption with 256-bit AES support. However, much like the Barefoot 3 controller, the PS3110 doesn’t have this feature enabled by default. Auto encryption is not required for the average home user or enthusiast and as such will not be missed; however once again thanks to Phison dedicated three cores to internal duties, implementing encryption on a PS3110 drive should have very little to no noticeable impact on performance.
When taken as a whole this new PS3110 seems to be a capable high performance controller that is also extremely adaptable to ever changing conditions found in the real world. Seeing normally enterprise capabilities rolled into a mass market controller is certainly interesting. More importantly these features should make for a great addition to any company’s current stable of high performance drives.
|Latest Reviews in Storage|