Short Review: Edging ASMedia 1166 PCIe Gen3 x2 to 6 x SATA HBA Chipset. It doesn't suck đź‘Ť

Hello everybody,

I) Introduction

While SATA at this point doesn’t seem to have a future, many still value it due to its maturity, robustness (compared to PCIe) and low cost even if current PCIe NVMe SSDs run circles around it performance-wise.

But the amount of native SATA ports on motherboards declines so users might have to look for after-market solutions to be able to connect the number of SATA drives they desire.

On many forums that serve various homes you commonly encounter the regurgitated opinion that “LSI HBAs are the gold standard, just look for one of them!”, I disagree for various reasons:

  • LSI and its original customer support and product quality does no longer exist. It’s Broadcom now. I dispise Broadcom for my “lived experience”. :fu:

  • A bit less subjective: HBAs beginning with the 9400 model line somewhere around 2018 became “Tri-Mode” designs, meaning they can talk SAS, SATA and even NVMe.

  • It seems that these controller chipsets can’t just pass-through a connected drive natively to an operating system anymore. They introduce an abstraction layer where performance is lost and these can also break compatibilty with standard SMART monitoring and SSD manufacturer firmware update tools. The default situation now is that you get a JBOD device, this is similar to the situation in the past when you wanted to just use a single drive connected to a fully-fledged hardware RAID controller.

  • Why am I mentioning this? Software-defined storage likes to have the raw drives at its disposal and not something interfering by creating additional layers.


II) Why the ASMedia 1166 chipset?

I was looking for a solution to add at least 8 SATA ports to an AM4 motherboard and not be annoyed by something like a PCIe Gen2 x2 interface to the SATA HBA chipset. Proper Hot-Plug functionality was a must.

Since the PCIe slot in question supports PCIe Bifurcation I looked for M.2 SATA HBA solutions since this meant that I could install two in a single PCIe x8-to-2xM.2 slot adapter to get the amount of desired additional SATA ports with a few to spare:

It’s a Delock 89837 PCIe adapter, verified to be able to passively do PCIe Gen4.

The used M.2 SATA HBA is this design, can be found on Amazon and various other places.

I specifically chose one with a little heatsink.

The ASM1166 chip is widely spread around the globe so even if pieces of technology are never perfect, you should be able to find firmware updates somewhere.

I could update my units to the latest currrently publicly available version 221118.


III) Test system configuration

  • CPU: 7800X3D
  • Memory: 2 x Kingston 32 GB ECC DDR5-5600 UDIMM, JEDEC Timings
  • Motherboard: ASUS ProArt X670E-CREATOR WIFI, BIOS 1905
  • Windows 11 23H2 with all Windows Updates (2024-03) as well as the most recent device drivers installed
  • The DIY SATA HBA in the motherboard’s top PCIe slot (x16, PCIe Bifurcation enabled in BIOS)


For this testing 6 SSDs are connected to a single M.2 ASM1166 adapter:

  • Drive D: Kingston DC600M, 1.92 TB, individual SSD performance:


  • Drive E: Kingston DC600M, 3.84 TB, individual SSD performance:


  • Drives F, G, H and I are Micron 5300 PRO 3.84 TB models, individual SSD performance:


IV) ASM1166, performance with multiple drives under load simultaneously

  • SATA III offers 6 Gbit/s of half-duplex links to individual drives, meaning theoretically 6 fast SATA III SSDs could do around 36 Gbit/s read OR write operations, If you have mixed loads on a single individual drive this can be practically cut in half.

  • PCIe Gen3 x2 offers a 16 Gbit/s full-duplex link between the CPU or motherboard chipset and the ASM1166 SATA HBA chipset, meaning sending and receiving data doesn’t interfere with each other’s available bandwidth as it would on a half-duplex link.

  • CrystalDiskMark is a tool many users know so I also made it part of the testing when looking at activity on multiple connected drives at once, but parallel test instances don’t take exactly the same amount of time so if the test on for example on Drive E finishes before Drive D’s then the latter’s results will become better than before if there is a bottleneck.

  • I also filled the SSDs with 1,000 large test files with 1 GB file size each and did sequential read tests to look at the actual bandwidth limitations of PCIe Gen3 x2 for 6 SATA drives. These might be the most useful data for anyone interested.

1) Tests on 2 SSDs at the same time, as expected not really a bottleneck anywhere yet:

Total Drive IO is at a little over 1,100 MB/s:


2) Tests on 3 SSDs at the same time, a tiny bit of performance reduction is visible:

Total Drive IO is at a little over 1,660 MB/s:


3) Tests on 4 SSDs at the same time, bottlenecking from the PCIe Gen3 x2 interface becomes obvious:

Total Drive IO is at a little over 1,770 MB/s, about 445 MB/s per drive


  1. Tests on 5 SSDs at the same time, the PCIe Gen3 x2 interface bottleneck is kicking in:

Total Drive IO is at ca.1,780 MB/s, about 355 MB/s per drive:


5) Tests on all 6 SSDs at the same time, the PCIe Gen3 x2 interface bottlenecking is kicking in harder:

Total Drive IO is at ca.1,790 MB/s, about 295MB/s per drive


V) Maximum Drive IO with coordinated read and write operations

  • We’ve learned that SATA is only half-duplex and PCIe full-duplex.

  • Test: Simultaneously copy large 1 GB test files from D to E, F to G and H to I to cause the maximum amount of IO operations on the ASM 1166 chipset:

  • This result is comparable with the earlier read-only tests with 3 SSDs BUT the total drive IO is almost doubled, edging at 3,000 MB/s making full use of the PCIe Gen3 x2 interface.

VI) Conclusion

I’m satisfied with it. :+1:

  • Of course it would be great to get an upgraded version of this chipset with PCIe Gen4 x2 basically eliminating any bottlenecking even in simultaneous parallel read- or write-only scenarios on all drives but this is absolutely usable without getting angry at it.

  • If you’re looking to build a NAS be aware that most likely the used ethernet adapter is going to be your actual IO bottleneck and not the drive interfaces themselves. But it’s relaxing to have headroom for abnormal situations.

  • No conclusion can be given yet regarding long-term reliability of the ASM1166 adapter on a hardware level, these results were collected after a little over a day of switching between the 1,790 MB/s and 3,000 MB/s total drive IO scenarios.

  • I recommend handling the ASM1166 adapter boards carefully, especially when plugging in the SATA cables since the physical quality of the PCB isn’t great.

  • Be sure to give them at least a little bit of air flow (as you should with EVERY component of a computer).

  • So far not a single C7 SMART error occured during testing indicating that the communication between the ASM1166 SATA HBA chipset and the drives is absolutely stable. The ASM1166 chipset itself also hasn’t caused a single PCIe Bus Error yet.

  • CrystalDiskInfo and drive manufacturer firmware update tools can detect all connected drives without any issues.

  • NO ISSUES with the system entering S3 sleep state and waking it up again while the ASM1166 is under full load.

  • One ASM1166 chipset reports having 32 SATA ports instead of the actual amount of 6, be aware of it, maybe some operating systems might not like it.

(This thread will be updated if there are any changes)

26 Likes

Sending some :heart_eyes: for thorougness and scientific rigor.

How stiff are the m.2 carriers, there is some hearsay about cracking when cables are inserted with too much force.

Also thanks for this little tidbit:

I was about to pull a plug on one 9600-8i that probably fell of back of wagon, price wise.

2 Likes

Be very careful at this step. I wouldn’t be surprised if mechanical stress during building the system was the major cause for defects of these little M.2 SATA HBAs. The material’s flexibility reminds me of cardboard.

Maybe we can make a Level1Techs clone of this M.2 SATA HBA design with a high-quality PCB?

1 Like

I had much more enthusiasm when putting together my own NAS with an ASM1166 based card so I did not go in depth like this. But I’m very much satisfied too with the performance and reliability (so far) of that chipset. I think it’s the best cheapest SATA controller you can get. Great review!

1 Like

This is a quality post, thank you! Me personally, I am more of a fan to utilize used enterprise HBAs, but I will take the feasibility of this solution in the back of my head and have bookmarked the parts for future reference.

The SSD use case is less interesting to me then the prospect to add SATA ports for hard drives to mainboards that are lacking those. Even fast, high capacity hard drives will max out at about 280MB/s so based on your testing I should be able to run 6 HDDs at full speed off of one M.2 slot!

Also the tip of updating the firmware on those cheap chips is valuable. I did not really think that I would be able to do this, bug given that the chip is quite common it makes sense to me now!

3 Likes

Nice!

I suspect that’s likely, though it doesn’t explain the also high failure rates of PCIe cards hosting ASMedia controllers. The best suggestions I’ve encountered seem to be to plug in all the SATA cables first and then carefully do the M.2 insertion and cable connection. That way the board can be well supported with good access during cable attach (or, conversely, detach). I’ve wondered if grouping the SATA cables together with a cable tie or such would be helpful strain reduction.

Given the need to fit in an M.2 socket a more robust PCB’s difficult. At least one JMB585 implementation (resold by SilverStone and Vantec) uses a U channel to constrain board flex and limit SATA connector motion. It also manages more of a heatsink. JEYI provides a complete shell over a JM585 but it might hotbox the controller and can prevent SATA cables from locking. There’s also a MiniSAS implementation with a JMB585 and JMB575 (IOCrest, Syba) which lacks heatsinks or mechanical support.

If the JMB585 lacked complaints of taking out M.2 ports when it fails and the JMB585+575 combination looked better I’d consider putting an M.2 2280 or similar heatsink on a milling machine and making connector cutouts for the 2xMiniSAS variant. It’s more of a thermal and mechanical solution than anything else on offer―seems quite obvious to me, really, enough so I find it strange it’s not implemented already. Ideally the same approach could be implemented in a way to get two ASM1164s to use all four M.2 lanes. But probably not.

Which is interesting as there’s various mentions of getting passthrough with the 9500-8i and -16i on TrueNAS and Unraid forums. More details in the posts would be nice but one differentiator appears to be VMs don’t get passthrough if the host OS does.

I think these are actually only a single JMB585 plus a JMB575 port multiplier.

This is a very good idea. I’ve got a milling machine if anyone wants to make plans.

I think this abstraction layer on top of passthrough is only happening for NVMe disks on modern HBAs, not SATA or SAS.
I’d assume the VMs could get pass through even if hosts do as long as the hba supports sriov.

1 Like

I’d missed it, but Syba has an oddly drawn diagram which suggests this might be the case. It’s unclear to me what “can support port multiplier” means in the descriptions and, without the datasheets, there’s no way to tell if the controllers can be bonded to share an x4.

Disk type hasn’t been clear in the few posts I’ve found, unfortunately. I’ve pinged Broadcom, FWIW.

I just used the mk1 eye ball approach and counted the number of pins on the sides of the two chips, one has 16x16 pin package and the other is a 19x19 pins.

I’d got the new adaptec raid card and should be able to test passthrough pretty soon once I get the stupid wiring done in my case.

2 Likes

When you’re finished please share a bit of details about the used cables and other components.

2 Likes

Nice. I failed to find product images clear enough to count pins on the JMB585’s QFN76 or JMB575’s QFN64.

Cool. I estimate there’s a 90+% probability I’ll need to do a build with 8–21 ports of HBA capability in the next few months. The Adaptec pricing I can get is steep and their 200 LFM recommendation means fan on card if not doing server airflow.

So I’m looking mainly at either M.2 breakout like aBav’s doing or HighPoint Rocket 720L. I’d prefer breakout but am not seeing a reasonably straightforward way to get it to the needed level of confidence in long term reliability.

1 Like

Was looking for something else and happened to get a hit for the EBTools M.2 ASM1166 with a stiffening bottom plate on United States Amazon. Searching for ASM1166 bottom plate turned up the same design on Ali, from three other Amazon sellers, on eBay, and a few similar sites. I ran with the Thunderbolt expansion marketing and found additional sellers that way. Looking for bottom plates in an image search found a few more.

It’s unclear what the bottom plate is made of but, based on the one ASM1166 thermal image I’ve been able to find, enough heat’s conducted into the PCB the plate might help a bit with thermals. This reinforced variant also seems to have a topside heatsink that’s a little bit larger than some of the other variants.

Thanks for your thorough evaluation and thoughts. A rock solid method of connecting a large number of additional sata drives is a must, even as the options slowly dwindle.

This is how bad it currently is:

I need to chop all those molex power connectors off of the broadcom U.3 cables.

outside of the hdd chamber its actually looking pretty good though:

5 Likes

Small update: The tests with full load were performed for a week without pause, then switched to a few days with intervalls where after 5 hours the system went to S3 sleep while the disk IO went on.

To this point not a single crash or IO issue even when reactivating the system from sleep mode.

Am happy with them and will try to actually use them for stuff now.

Only somewhat urgent suggestion: Use some sort of modification (silicone glue it to another stronger PCB?) to give the adapters more structural integrity.

4 Likes

The reinforced ASM1166 M.2s all seem to show a couple of screws on the bottom. Hard to tell from the product photos but, having sifted through a bunch of them, it appears the reinforcement may be a thicker piece of FR4 that’s routed out to clear components on the board. I’d hope there’s also some bonding glue/epoxy as just the screw attachment points won’t do all that much to limit deflection. If not, maybe it’d be possible to undo the screws, add a structural adhesive, and put the reinforcement back on.

Be nice to see an ASM1166 version of the JEYI JMB585 but no signs of one as of when I was last looking a couple days ago.

I wonder if you can stick something behind the M.2 PCB to fill the gap to the main Delock PCB, with some compliance but stiff enough to transfer the mechanical load? Not sure that thermal pads would be stiff enough, but if they are then that would also help a little to keep the board cooler…

different chipset (JMB585) and one less port, but someone heard us. Saw this on newegg the other day:

2 Likes

Don’t have anything negative to say about the widespread JMB 5 SATA port HBA chipset (have a few examples), other than it’s a bit “older” than the ASM1166 chipset (doesn’t have to be a negative) which is also a bit faster as long as you are not in a PCIe-bottlenecked load situation.

The m.2 asmedia “cards” I’ve been using for a while use a SFF8087 connector (like SAS 6gbit), using ASM1064 controller so you only get 4 Sata ports. My choice was limited by physical size (the SFF connector is A LOT less bulky than Sata ports + cables sticking out) since these are mounted in the native m.2 slots of the motherboard and I need clearance for GPU and other stuff. I have a motherboard with 2 m.2 slots (the first is x4 pcie 4.0 from cpu and second one is kinda sad x2 pcie 3.0 from chipset which is still perfectly fine for these cards)

While the M.2 board is thin and flimsy like all m.2 adapters, the SFF connector adds rigidity. Also it’s mounted parallel to the board instead of perpendicular and that should help with stress.
Obviously available from aliexpress and the usual suspects

These cards came with extra dumb firmware where hotswap feature is not enabled :crazy_face:. I was able to update the firmware with the firmware package where hotswap is enabled, provided by Leland in the same thread also linked in the first post Latest Firmware for ASM1064/1166 SATA Controllers - #2 by Leland - BIOS modules (PCI ROM, EFI and others) - Win-Raid Forum

I didn’t benchmark them rigorously for speed as I use them for mechanical drives. But they are in my proxmox home lab with zfs for at least 6 months with daily scrubs, so far no errors.

3 Likes