Thursday, June 19, 2014

What is SATA Express? (About.com)

How the Updated Version of SATA Will Increase PC Speeds

SATA or Serial ATA has been a huge success when it comes to computer storage. The standadization on the interface allows for easy installation and compatibility between computers and storage devices. The problem is that the design of the serialized communication has reached its limits with many solid state drivesbeing capped by the performance of the interface rather than the drive. Because of this, new standards of communication between a computer and storage drives needed to be developed. This is where SATA Express steps in to fill the performance gap.
SATA Express Connectors
SATA Express Connectors
ASUSTeK Inc.

SATA or PCI-Express Communication

The existing SATA 3.0 specifications were limited to just 6.0Gbps bandwidth which translates to roughly 750MB/s. Now with overhead for the interface and all, it means that the effective performance was restricted to just 600MB/s. Many of the current generation of solid state drives have essentially reached this limit and need some form of faster interface. The SATA 3.2 specification which SATA Expess is a part of introduced a new means of communication between the computer and devices by allowing devices to pick whether they want to use the existing SATA method, ensuring backwards compatibility with older devices, or to use the fasterPCI-Express bus.
The PCI-Express bus has traditionally been used for communicating between the CPU and peripheral devices such as graphics cards, networking interfaces, USB ports, etc. Under the current PCI-Express 3.0 standards, a single PCI-Express lane can handle up to 1GB/s making it faster than the current SATA interface. That is what a single PCI-Express lane can achieve but devices can use multiple lanes. According to the SATA Express specifications, a drive with the new interface can use two PCI-Express lanes (often reffered to as x2) to have a potential bandwidth of 2GB/s making it nearly three times the speed of the previous SATA 3.0 speeds.

The New SATA Express Connector

Now the new interface also required a new connector. It may look somewhat similar because the connector actually combines two SATA data connectors along with a third slightly smaller connector which deals with the PCI-Express based communications. The two SATA connectors are actually fully functional SATA 3.0 ports. This means that a single SATA Express connector on a computer can support two older SATA ports. The issue comes when you want to plug a newer SATA Express based drive into the connector. All of the SATA Express connectors will use the full width whether the drive is based on the older SATA communications or the newer PCI-Express. So, one SATA Express can handle either two SATA drives or one SATA Express drive.
So why doesn't a PCI-Express based SATA Express drive just use the single third connector rather than the two SATA ports? This has to do with the fact that a SATA Express based drive can use either technology, so it needs to have the interface with both. In addition to this, many SATA ports are linked to a PCI-Express lane for communicating with the processor. By using the PCI-Express interace directly with a SATA Express drive, you are effectively cutting off communication to the two SATA ports linked to that interface anyways.

Command Interface Limitations

SATA is effectively a way to communicate data between the device and the CPU in the computer. In addition to this layer, there is a command layer that runs on top of this to send the commands on what should be written to and read from the storage drive. For years, this has been handled by AHCI (Advanced Host Controller Interface). This has been so standardized that it is essentially written into every operating system currently on the market. This effectively make the SATA drives plug and play. No extra drivers are needed. While the technology worked well with older slower technology such as hard drives and USB flash drives, it really holds back faster SSDs. The problem is that while the AHCI command queue can hold 32 commands in the queue, it still can only process a single command at a time because there is only a single queue.
This is where the NVMe (Non-Volatile Memory Express) command set comes in. It features a total of 65,536 command queues each with the ability to hold 65,536 commands per queue. Effectively, this allows for parallel processing of storage commands to the drive. This isn't beneficial to a hard drive as it is still effectively limited to a single command because of the drive heads but for solid state drives with their multiple memory chips it can effectively boost their bandwidth by writing multiple commands to different chips and cells simultaneously.
This may sound great but there is a bit of a problem. This is new technology and as a result it is not built into most of the existing operating systems on the market. In fact, most will need to have additional drivers installed into them so that the drives can use the new NVMe technology. This means deployment of the fastest performance for SATA Express drives may take some time as the software has to mature similar to AHCI's first introduction. Thankfully, SATA Express allows drives to use either of the two methods so you can still use the new technology now with the AHCI drivers and potentially move to the newer NVMe standards later for improved performance, albeit probably requiring the drive be reformatted.

Some Other Features Added With SATA Express via SATA 3.2 Specs

Now the new SATA specifications add more than just the new communication methods and connector. Most of them are targeted towards mobile computers but they can also benefit other non-mobile computers as well. The most notable power saving feature is a new DevSleep mode. This is essentially a new power mode that allows systems in the storage to almost completely shut off thus reducing the power draw when in sleep mode. This should help improve the running times of special laptops including the Ultrabooks designed around SSDs and low power consumption.
Users of SSHD (solid state hybrid drives) also will benefit from the new standards as they have put in a new set of optimizations. In the current SATA implementations, the drive controller would determine what items should and should not be cache based upon what it sees bring requested. With the new structure, the operating system could essentially tell the drive controller which items it should hold in the cache which reduces the amount of overhead on the drive controller and improving performance.
Finally, there is a function for uses with RAID drive setups. One of the purposes of RAID is for data redundancy. In the event of a drive failure, the drive could be replaced and then the data would be rebuilt from the checksum data. In essence, they have built a new process in the SATA 3.2 standards that can help improve the rebuild process by recognizing which data is damaged versus that which is not.

Implementation

SATA Express has been an official standard since the end of 2013 but it hasn't started making its ways into computer systems until the release of the Intel H97/Z97 chipsets in spring of 2014. Even with motherboards now featuring the new interface, there are no drives at the time of the launch that are able to use the new interface. This is likely because of the issues surrounding the operating system support for the new command queuing to take full advantage of SATA Express. At least the current implementations do allow the SATA Express connectors to be used with existing SATA drives. This should help ease the implementation for those that happen to buy the technology now once the drives do become available.

No comments:

Post a Comment