8 port SATA on a PCIE 1x lane! Looking at the PCE8SAT-M01 expansion card.

One of my mini ITX motherboards is limited to a single PCI Express x1 slot. For a few months I was running on the common 4-port Marvell 9215 card that can be found at all the major vendors. However, I was in the situation where I needed to add a few more hard drives.

After a bit of looking, I came across the 8-port cards that are advertised as having a “Marvell 88SE9215 + JMicron JMB5xx” chip. These cards happened to be pretty low cost, so I picked one up. The model number printed on the card was PCE8SAT-M01 VER0065. I’ll start with a quick look at the front and back.

8 port SATA (PCE8SAT-M01) - The front of the card

8 port SATA (PCE8SAT-M01) - The back of the card

Incidentally, the 8 little LEDs seen on the front: each corresponds to a port and is on when a card is connected, blinking when there’s data transfer. They’re an obnoxiously bright blue.

The first thing I did was pull the heatsink to get a look at the chips. My suspicion was that the Marvell 9215 was being used as the main HBA and that the “JMB5xx” was going to be the JMicron JMB575 port multiplier.

8 port SATA (PCE8SAT-M01) - Heatsink removed

8 port SATA (PCE8SAT-M01) - Exposing the Marvell 88SE9215 and JMicron JMB575

Yep! On the left the JMicron JMB575 and on the right the Marvell 88SE9215.

If you check out the dismounted heatsink above, you’ll see a thermal pad. The bad news is that you can’t replace the pad with thermal paste: other chips would short against the heatsink if the pad were removed. The good news is that the max temperature I saw during my test runs was about 37C. The heatsink is well-sized and I don’t foresee any temperature issues.

Power Consumption

As this was intended for a system that runs 24/7, I was curious as to the operating cost. In other places I’d seen the Marvel 9215 listed as being in the 2W region and was hoping the port multiplier wouldn’t balloon that figure.

I tested system consumption from the wall with and without the card installed. No hard drives, just startup into the BIOS.

I saw a 2-3W increase with the card installed. Definitely reasonable.

 

Throughput performance/benchmarking (basic)

One AliExpress seller suggested that “The fastest speed is 380-450m/s in PCI-E 2.0. If it is plugged into PCI-E1.0, the speed only runs 200-300m/s”, and also went on to mention that if ports are used at the same time the speed will slow down.

To get a rough throughput test, I used “dd” to read from the drives and spit the output to /dev/null . This is essentially a sequential read test without any real filesystem overhead. Block size was set at 4MB.

I monitored the speeds using “nmon” and took random screenshots during each test. Thus, results aren’t likely to be the absolute peak, nor are they likely to be the absolute bottom.

 

Test 1: A single SSD

8 port SATA (PCE8SAT-M01) - Testing throughput of a single SSD

This was an older SSD and I don’t know what it’s max throughput was. The result was 375MB/s.

 

Test 2: A single HDD

8 port SATA (PCE8SAT-M01) - Testing throughput of a single HDD

This test was essentially is limited by the throughput of the drive – 130.4MB/s at the time of the screenshot.

 

Test 3: Two hard drives

8 port SATA (PCE8SAT-M01) - Testing throughput of a two hard drives

With 2 drives, we hit 255.3 MB/s total – still limited by the hard drive throughput.

 

Test 4: Three hard drives

8 port SATA (PCE8SAT-M01) - Testing throughput of three hard drives

I suspect that the combined total of 296.0 MB/s was due to the 3rd drive hitting a bit of an output slump, as total output improves in the next test.

Test 5: Four hard drives

8 port SATA (PCE8SAT-M01) - Testing throughput of 4 hard drives

A total of 382.5 MB/s. Yes, it took 4 spinning rust drives to hit the speed of our single SSD from the first test.

Speaking of that single SSD… why not combine it with the hard drives…?

 

Test 6: Single SSD plus 4 hard drives

8 port SATA (PCE8SAT-M01) - Testing throughput of 4 hard drives plus 1 SSD

Here we hit 392.7 MB/s. It’s starting to become clear that the typical throughput we can expect from this SATA controller is just shy of 400MB/s. Thats pretty fair seeings how PCI Express 2.0 x1 has a max theoretical bandwidth of 500MB/s.

 

Test 7: Putting a drive on all 8 ports

For this test I scrounged up a number of other drives. I took the OS drive off the card and put it onto a motherboard port. I also started the system with “mitigations=off” and dropped to a 1MB block size. We still have our SSD plus 7 other drives.

8 port SATA (PCE8SAT-M01) - Testing throughput of 8 drives 8 port SATA (PCE8SAT-M01) - Testing throughput of 8 drives (alternate result)

423.4 and 430.3 MB/s.

Definitely a good showing.

Extra Bits and Conclusion

I checked a few other items just to verify they were working. I’ll phrase these as questions, since these were things I was wondering while waiting for the card to arrive.

Does the card support FBS?

Yes, this card does support FBS (FIS-Based Switching). “dmesg | grep ACHI” and/or “dmseg | grep FBS” spit out “FBS is enabled” and “FBS is disabled” numerous times during boot, ending with it being enabled. I actually wrote to both a good and bad drive simultaneously and when the bad drive hung, the good drive kept motoring along while the OS repeatedly reset the link and eventually dropped the bad drive – I suspect with CBS it may have hung up on both drives.

FBS support was somewhat expected, as both the Marvell 88SE9215 and JMicron JMB575 claimed to support FBS.

Does the card require drivers in Linux?

Nope. Plugged the card in, started the system, and drives simply showed up. Note that I used Ubuntu 19.10. There was an included driver disk (I suspect for Windows): I wouldn’t be surprised if there were a process you needed to follow to get it working there.

Can you put the boot drive on a port?

2 of the ports (#2 and #3) worked for the boot drive, the others did not. Note that having this card installed did cause the BIOS to take longer to finish the POST.

Note that cards with port multipliers are notorious for needing drives plugged into specific ports: I didn’t run into that issue but I didn’t test various combinations either so it’s possible you may need to tinker some.

Does SMART work on drives through the port multiplier?

Yep. I ran “smartctl -a” against all 8 devices after the final test. Everything showed up.

Conclusion

Overall I’m quite pleased with the card thus far.

  • Quite a bit cheaper than other 8-port options.
  • Works on a PCI Express x1 lane.
  • All 8 ports worked.
  • FBS worked.
  • Power consumption was reasonably low (2-3W).
  • Decent-sized heatsink, didn’t get too warm (37 degrees C).
  • Could boot off a couple ports.
  • No hiccups during the testing, no crazy errors in the system log after the tests.

I’ll update if I run into issues down the line. However, for the time being my thought would be that if you need 8 more SATA ports and only have a PCIE x1 slot open, this card is probably going to be tough to beat.

18 Comments | Leave a Comment

 Sort by Oldest | Sort by Newest
  1. Lee on April 30, 2020 - click here to reply
    Thank you for testing. After reading this nice review, I decide to buy this card.
  2. Anonymous on June 18, 2020 - click here to reply
    Ordered this card, thank you for eliminating my concerns =)
  3. another Matt on July 16, 2020 - click here to reply
    Sir, you really deserve some respect for that analysis. It really explains how the card really works. I came across this card on amazon (branded as MZHOU) in two variants: 6 port and 8 port. The description, although rather vague, hints this: for the 6 port card it says 88SE9215 + ASM109X (looking on ASMedia site there's only one chip: 1092 which is a 1-to-2 port multiplier) and the 8 port card as you explained here.
    I dug it up as there are several bad amazon reviews stating bad cards, bad quality (like the one where the a few cards arrived with soldered-together connectors causing a 8TB drive to die) and weird issues like "drives disappearing" and others (like one stating a random 100MB partition appeared - but I guess this seem to be a faulty drive as an edit says this persisted even after replacing the card).
    So, for me there seem nothing wrong with using a 4-port HBA and "blow it up" to 8 ports by using a 1-to-5 expander on one of the 4 main ports - but does it really work that simple? As this would mean 3 ports are dedicated full bandwidth - and the other 5 are bottlenecked cause they share just one uplink expanded to 5 ports via switching - which results in each of those 5 ports only really have about 20% of the bandwidth available. Can you confirm this? Or is this just me not really understanding S-ATA expanding?

    Would like to get a reply, maybe even via e-mail. Thanks in advance.

    another Matt
    • So this actually has the potential to get really messy. Assuming the HBA has a chipset that supports port multiplication, and assuming it's implemented, and assuming there aren't hardware/software bugs, yes you can plop on a port multiplier ("expander"). Implementations are not well tested unfortunately so you have to scrounge around for success rates and to some degree cross your fingers.

      As for the port multiplier itself, there are 2 common methods in use to actually multiply out the ports - CBS and FBS. CBS (command-based switching) is the lesser of the 2 - it can not communicate with all disks at once, it needs to wait for a disk to respond before issuing a command to another disk, and if a drive hangs there's a high probability that all disks will be unreachable until it sorts itself out. FBS (frame-based switching) on the other hand can juggle commands between disks somewhat simultaneously and performance should be higher. In both situations you're capped by the speed of the SATA port which feeds the port multiplier, so yes, all 5 drives in your example are divvying up the 1 port and are "bottlenecked".

      As to reliability... the fact that basic HBA's "just work" (mostly) without corrupting hard drives on a regular basis is somewhat impressive on it's own. Adding the complexity of a port multiplier is really adding some additional risk. If reliability is the primary concern, I'd generally go with multiple HBAs and try to sort drives via RAID (or better: using backups) in such a way that an HBA going haywire won't kill all the data. Trying to do the same with port multipliers thrown in the mix.... you *really* want to ensure you've got backups for any important data.
      • another Matt on July 17, 2020 - click here to reply
        Thanks for your reply. I had to cut mine down as I got way off-topic.
        As for sata/sas port multipliers: Yea, I read it up on wikipedia right after I posted my comment, but thank you for your effort anyway.
        I'm currently in a situation where I would had to somehow slip in a linux vm layer and a 2nd gpu for it if I would try to stay on windows instead of migrate to linux as windows only support JBOD, RAID0 and RAID1 out of the box (and the RAID5 is locked away for server versions only). As I wasn't able to find any reliable software driver to set up a software raid on windows I'm either stuck to my current setup - or maybe would have to migrate to linux - which would require at least a 2nd cheap gpu for the linux system so my current beefy one would be free for vm passthrough.
        I guess, if I build a new system, I should take your advice to use multiple non-"expanded" HBAs and just build some sort of software raid based on linux mdadm.
        • Ban Lovko on August 31, 2021 - click here to reply
          First of all, very nice testing. Kudos!

          Last two images show how the card is interconnected:
          It has PCIe 2.0 x1 lane ("up to" 500MB/s ) split by Marvell 88SE9215 HBA between 4 SATA ports (~125MB/s each). One of those SATA ports is further split by JMicron JMB575 between 5x SATA ports (~25MB/s each).

          =PCIe 2.0 x1==(500MB/s)==| 889215 |- SATA0 (125MB/S)
          | 889215 |- SATA1 (125MB/S)
          | 889215 |- SATA2 (125MB/S)
          | 889215 |- SATA-i==(125MB/S)==| JMB575 |-SATA3 (25MB/s)
          | JMB575 |-SATA4 (25MB/s)
          | JMB575 |-SATA5 (25MB/s)
          | JMB575 |-SATA6 (25MB/s)
          | JMB575 |-SATA7 (25MB/s)
          Optimal number of spinning HDD would be 4x with ~125MB/s per each. More drives would be hitting the bottleneck of the PCIe 2.0 x1.
  4. Arturo on August 4, 2020 - click here to reply
    Thank you for the review, exactly what I was looking for on the review of this card, I ordered one and will try it with my Unraid machine and report back in case the comment would help anyone else :)
  5. Luke on December 14, 2020 - click here to reply
    Just want to send more kudos. I'm getting into tinkering with TrueNAS as a fun little side project with spare parts and wasn't interested in investing too much time or money into hardware solutions, nor am I that worried about maximum performance; this was a great little summary and test. I picked up one of the (many) cards identical to this on Amazon and am excited to see how things go!
  6. john on March 31, 2021 - click here to reply
    So I purchased this card based on reading your review. It looked as if it would do everything I want. In reality, when I installed the card and 5x spinning 3.5" HD (on my desk for testing), at first boot no drives appeared in Windows. I removed all but one and then one drive appeared on the next boot. Then I added a second drive, it worked. Added a third drive, and it worked but the second drive disappeared. Tried switching cables, dedicated power supply, switching power cables, changing PCIe slot, nothing could get all 5 drives to register simultaneously. This was upsetting as I really hoped this would work. Instead, I have buckled down anbd purchased a 9260-8i to flash, and SATA HBA fanning cables. I had to spend a lot of time learning all of this, and now I cant return the PCIe SATA card. Thank you for the review, but buyers beware!
  7. Vennie on May 29, 2021 - click here to reply
    Hi, I noticed that you got the same card as me. However mine can only detect 4 hdd .. the multiplier ports not working. I'm using it on Win 10, how to get them to work ?
  8. Andrs on July 15, 2021 - click here to reply
    I have the same problem as you Vennie, it only detects 4 ports out of 8. Is there a solution for this?
    • anonymus on August 8, 2021 - click here to reply
      Yes. Try to install the drivers for Marvell 88SE9215 via Device Manager in win10. windows 10 default storage controller driver won't work with port multiplier. You can download the correct drivers on iocrest.com (search for a pcie card with the same Marvell 88SE9215 controller)
  9. Ricardo on August 7, 2021 - click here to reply
    I have this same card, but I couldn't get all the hard drives recognized. I didn't install any drive because buy it used. Could you provide a link with the drive? thanks.
  10. rickster on December 31, 2022 - click here to reply
    Excellent Review, thankyou.
  11. Anonymous on February 11, 2023 - click here to reply
    Hi, I would like to know my card was going great and now when I put more than one HD it only sees one. Can you help me?
  12. Keni on June 2, 2023 - click here to reply
    Hi, Do this card have hardware RAID?
    I bought it from a vendor who wrote that it is a RAID controller card, but I can't configure the card as a RAID.
    Maybe I was cheated?

    Thanks
    • Reaper15a on November 8, 2023 - click here to reply
      No, it does not support hardware RAID. It will do software RAID though.

Leave a Comment

You can use an alias and fake email. However, if you choose to use a real email, "gravatars" are supported. You can check the privacy policy for more details.