PMP and SATA controllers basic information
The Addonics 5X1 Internal SATA Port Multiplier (PM) AD5SAPM with a SATA host port enables SATA hard drives to be configured for a wide range of storage applications. The Internal Port Multiplier can combine up to 5 SATA hard drives into a single SATA port onboard or on an add-in controller. The 5 drives can be set up as individual drive, as RAID set or with JBOD to become one large hard drive depending on the controller. AD5SAMP-E has an e-SATA host port.
- Compatible with Host Controllers using the SiI3124 and SiI3132 chipset.
- Not compatible with Nvidia 680 integrated controller.
- Not compatible with ICH9R or ICH10.
- Performance of 4 disks is a bit higher than all 5 disks.
- Writing rates limited to ~ 2400 Mbps.
- SATA and eSATA offers similar performance.
Checking the ICH9 chipset datasheet: supports PMs, but only slow CB and not faster FIS switching. Checking the ICH10 chipset datasheet: Intel had heavily advertised PM and FIS support before the actual release of ICH10. Per datasheet however both PM and FIS support have actually been removed from ICH10. ICH10R 82801JIR has no datasheet.
The Addonics 4 x eSATA card ADSA3GPX8-4E for PCIe x8 employs a single SiI3124 PCI-X chip and a mystery PCI-X-to-PCIe bridge chip. The SiI3124 supports FIS-based switching. In kernel 2.6.26 not all drives are necessarily detected during boot. The only way is to unplug and replug the SATA cable of the missing disk, or replug the PMP with all the disks. It can take many tens of seconds to re-detect disks. Watch 'dmesg'.
The HP SC44Ge PCIe x8 is HP's version of the LSI Logic LSISAS1068E card. It is a 4 int (miniSAS) + 4 ext (SFF) SAS controller. It has an embedded 255MHz ARM966 processor. The card support SAS Expanders but not SATA Port Multipliers. Individual disks are seen in the OS as long as they aren't behind a PMP or in a RAID.
The HighPoint RocketRaid 2522 PCIe x8 has 2 x external miniSAS driven by two Marvell 88SX6042 chips (PCI-X) an additional PCI-X-to-PCIe bridge chip. The onboard BIOS supports port multipliers up to 40 drives. It is probably FIS-based. HighPoint claims 1.2 GByte/s sustained throughput. Configured RAID arrays are seen in the OS, individual disks are not.
PMP, SATA and SAS caveats
Below is a list of common caveats with Port Multipliers:
- the Port Multiplier appears first in the SATA-II standard
- the AHCI 1.x standards list Port Multipliers as an optional feature: not all AHCI hardware supports PMPs
- the AHCI mode may have to be enabled in BIOS, disable any Legacy modes
- If you use an ahci chipset, check that dmesg shows the 'pmp' flag that tells the hardware supports pmps:
ahci 0000:00:0a.0: flags: 64bit sntf led clo pmp bio
- the SATA-II standard lists two methods for PMP: command based (CB) and frame information structure (FIS) based routing. Not all controllers support the faster FIS! With CB only one ATA command is executed at any time, hence PMP throughput is lower than a single disk. FIS allows parallel ATA commands and aggregate throughput closer to the 300MB/s host-to-pmp link speed.
- the SAS (Edge) Expanders are conceptually similar to SATA-II Port Multipliers. SAS equipment generally supports SATA disks. But often it does not support SATA PMPs.
- there is PMP support in Linux only since around kernel 2.6.20: mostly in sata_sil24, ahci. PMP is enabled on hardware that supports it.
- the impression is that PMP is still somewhat experimental even in 2.6.26, disk detection is flaky and many pmp resets are issued during detection, this may be normal
- some sources claim that the SATA disks must support NCQ for PMP throughput to be good, other sources say NCQ isn't that important, best to get NCQ drives anyway!
Intel, nVidia and PMP support
Below is an incomplete self-assembled table with information on AHCI and SATA port multiplier support on nForce (MCPxx) and Intel ICHxx chipsets. No guarantees about accuracy. AHCI "support" was checked by looking at kernel 2.6.25-10-2 ./drivers/ata/ahci.c. You can grep kernel sources for the 'ATA_FLAG_PMP' flag to find non-AHCI chipsets that support PMPs.
Chipset | PCI IDs from ahci.c, sata_sil24.c | Support status |
---|---|---|
MPC55 | ... | no ahci, no pmp |
MCP65 | 0x044c..0x044f, 0x045c..0x045e, 0x045f | ahci (dmesg), type unknownahci 0000:00:0a.0: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0xf impl SATA mode ahci 0000:00:0a.0: flags: 64bit led clo pmp pio |
MCP67 | 0x0550..0x055b | ahci, pmp (dmesg), type unknownahci 0000:00:09.0: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0xf impl IDE mode ahci 0000:00:09.0: flags: 64bit sntf led clo pmp pio slum part |
MCP72 | 0x07B5, 0x07B9 | no ahci (or pci id not in kernel 2.6.27 ahci.c yet) |
MCP73 | 0x07f0..0x07fb | ahci, pmp (dmesg), type unknownahci 0000:00:0e.0: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0xf impl SATA mode ahci 0000:00:0e.0: flags: 64bit sntf led clo pmp pio |
MCP77 | 0x0ad0..0x0adb | ahci, pmp (dmesg), type unknownahci 0000:00:12.0: AHCI 0001.0100 32 slots 4 ports 3 Gbps 0xf impl SATA mode ahci 0000:00:12.0: flags: ncq ilck pm led clo pmp pio slum part |
MCP78 | ? | ahci, pmp dmesg), type
unknownahci 0000:00:09.0: AHCI 0001.0200 32 slots 6 ports 3 Gbps 0x3f impl IDE mode ahci 0000:00:09.0: flags: 64bit ncq sntf led clo pmp pio |
MCP79 | 0x0ab4..0x0abf | ahci, pmp unkown |
MCP7B | 0x0bc8..0x0bd3 | ahci, pmp unkown |
ICH9 | ... | ahci (but no pmp?) |
ICH9R | ... | ahci, cb pmp (P35 product brief) |
ICH10 | 0x3a05, 0x3a25 | ahci but no pmp at all (P45 product brief, same for G45) |
ICH10R | 0x3a22 | our tests w/ Asus P5Q Pro: ICH10R datasheet incorrect: ahci, pmp, but it is cb-based , native ports often loose disks even without any pmp so 2.6.27 ahci.c is broken? |
SATA host controllers and PMP support
From ioi.com.tw, Marvell host controllers that support FIS: 88SX6042, 88SX7042, 88SE6145, 88SE6121, 88SE6111. Silicon Image host controllers that support FIS: Sil3132, Sil3124. Controllers that have bugs: SIL3112 can do only 120MB/s in total.
Chipset | PCI IDs from ahci.c, sata_sil24.c | Support status |
---|---|---|
SiI 3124 | 0x3124 | fis pmp, no ahci |
88SE6121 | 0x6121 | ahci (patch), pmp support removed up to 2.6.26 |
![]() |
![]() |
This work has received financial support under the EU FP6 Integrated Infrastructure Initiative contract number #026642, EXPReS. |