Port multiplier
A Serial ATA port multiplier (SATA PM) is a device that allows multiple SATA devices to be connected to a single SATA host port. Many common controllers do not support this feature,[1] as it is not a requirement for a SATA controller.[2]
Benefits
Port multipliers have the following potential benefits:
- Reduced cable count (e.g., when using backplanes with integrated port multipliers, or external multi-drive enclosures etc.).
- Additional drives can be supported without additional SATA controllers.
Port multiplication
A Serial ATA port multiplier is a unilateral splitting device. While it allows one equipped port to connect up to 15 disks, the bandwidth available is limited to the bandwidth of the link to the controller, as of 2012 1.5, 3, or 6 Gbit/s.[3] While the controller is aware that there are multiple drives connected, the service is transparent to the disks attached. Because they believe they are communicating directly with the controller, any drive that holds to the SATA standard can be connected to a port multiplier. There are two ways port multipliers can be driven:
Command-based switching
This system can be thought of as an automated mechanical A/B switch. The controller can issue commands to only one disk at a time and cannot issue commands to another disk until the command queue has been completed for the current transactions. This also hampers the use of Native Command Queuing (NCQ). This means that the full bandwidth of the link will most likely not be used. This kind of switching is therefore used when capacity is the major concern, and not performance.
FIS-based (frame information structure) switching
FIS-based switching is similar to a USB hub. In this method of switching the host controller can issue commands to send and receive data from any drive at any time. A balancing algorithm ensures a fair allocation of available bandwidth to each drive. FIS-based switching allows the aggregated saturation of the host link and does not interfere with NCQ.
Performance
It is possible to connect up to 15 devices to a single SATA host port using a port multiplier. The total bandwidth is still limited to that of a single SATA port.
Reliability
When using a port multiplier in a scenario where the availability of the connected drives is an issue, overall reliability can be severely impacted by a single failing drive locking up the host port, inhibiting or severely degrading access to all drives connected through that port.[4]
References
- List of SATA controller hardware features, a comparison in Linux ATA wiki
- Serial ATA II: Port Multiplier specification Archived 2011-06-17 at the Wayback Machine by Serial ATA II Workgroup
- Port Multipliers, an article by Serial ATA International Organization
- Peng Li; James Hughes; John Plocher; David J. Lilja. "SATA Port Multipliers Considered Harmful" (PDF). Retrieved 2017-01-29.