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.
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.
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.
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
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
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
With 2 drives, we hit 255.3 MB/s total – still limited by the hard drive throughput.
Test 4: 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
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
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.
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.
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.