Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.
For those who's luck enough to own a SM951 AHCI M.2 SSD
I would like to share some experience with u.

It's running at 2.5G x4 most likely because of SM951's firmware.
SM951 is a PCIe Gen3 x4 device. cMP is Gen2 x4. It's most likely run at Gen1 speed because of compatibility
reason. It's safer to falls back to Gen1 mode because the signal it detect isn't Gen3.

So you just have to force the PCI slot to run in 2.0 mode and problem solved.
Thanks to another forum member "joevt" who post about using software "pciutils" on his amfeltec x16 card.

I did the same to my SM951(It also works on 960Pro).
If successful, the device will run at PCIe2.0 speed. But "SystemReport" will still show 2.5G/x4.
You need to run benchmark to confirm the speed.


Here are two post from him which will help you guys

Amfeltec x16 PCIe with 4 SSDs: 5900+ MB/s


Amfeltec x16 PCIe with 4 SSDs: 5900+ MB/s

Goodluck guys~
 
I have a NVMe SM951 that ran fine by itself in High Sierra but was not bootable. I created a fusion drive with it and an 860 EVO on an OWC Accelsior S PCIe card to make it bootable. I initially tried a software raid zero of the two drives and got only SATA speeds (not sure why). Read and write speeds of the combined fusion drive are almost at full speed NVMe from every test that I've done. It is noticeably faster in real world use as compared to the 860 by itself too. Easy work around for those that can't afford an AHCI and already have a SATA SSD.

I also tried the EVO on the internal sata and the drive took a bit of a performance hit (about 200m on both read and write).
 
Last edited:
  • Like
Reactions: h9826790
I have a NVMe SM951 that ran fine by itself in High Sierra but was not bootable. I created a fusion drive with it and an 860 EVO on an OWC Accelsior S PCIe card to make it bootable. I initially tried a software raid zero of the two drives and got only SATA speeds (not sure why). Read and write speeds of the combined fusion drive are almost at full speed NVMe from every test that I've done. It is noticeably faster in real world use as compared to the 860 by itself too. Easy work around for those that can't afford an AHCI and already have a SATA SSD.

I also tried the EVO on the internal sata and the drive took a bit of a performance hit (about 200m on both read and write).



To make NVMe bootable, you can use bootloader method.

Boot OSX on a NVMe Card

But when u use this method. everytime new OSX update comes out. you'll need to clone the NVMe SSD to another bootable drive. run the update from there, then copy the kernel cache to bootloader drive and clone the content back to the NVMe......




"Hi Santa, I've been good this year, can I have a NVMe bootable firmware for cMP?" XD
 
Yeah that's why I went with the fusion method. I have seen very little performance hit so I'm quite satisfied. I was really surprised that they updated the firmware to support APFS but not add NVMe at the same time. It would have been simple to do since the efi drivers already exist.
 
The only issue I don't like about fusion drive is that it only buffer write for the initial 4GB.
once that buffer is full, it'll directly write to the harddisk instead of SSD thus affect performance.

It appear the caching algorithm is file based. If the write is single file larger than 4GB.
SSD will cache it (up to 10GB from my own test). but if it's continues stream of multiple files,
it'll write thru to the harddisk once 4GB limit is reached.

I wonder how much empty space fusion will set aside, since that'll affect the write performance
for most NAND based SSD and could affect the lifespan of SSD.
 
The only issue I don't like about fusion drive is that it only buffer write for the initial 4GB.
once that buffer is full, it'll directly write to the harddisk instead of SSD thus affect performance.

It appear the caching algorithm is file based. If the write is single file larger than 4GB.
SSD will cache it (up to 10GB from my own test). but if it's continues stream of multiple files,
it'll write thru to the harddisk once 4GB limit is reached.

I wonder how much empty space fusion will set aside, since that'll affect the write performance
for most NAND based SSD and could affect the lifespan of SSD.

But when use SATA SSD + PCIe NVMe SSD to form a fusion drive just for it's bootability, it's always writing to SSD.

In fact, if combine a 120 850Evo with a 2TB 960Evo to form a fusion drive. Most of the time must write to the NVMe because of the capacity limitation.
 
Last edited:
  • Like
Reactions: MIKX and Éric 69
But when use SATA SSD + PCIe NVMe SSD to form a fusion drive just for it's bootability, it's always writing to SSD.

In fact, if combine a 120 850Evo with a 2TB 960Evo to form a fusion drive. Most of the time must write to the NVMe because of the capacity limitation.


I though about that, but have some doubt.

If the 120G SATA SSD is the main drive and the 2T NVMe is the cache drive,
wouldn't the OS only see the drive as 120G in size?

If the SATA is cache and NVMe is main, then all read will hit the SATA first, since the cache drive is much smaller.
any data outside the 110G range(assume fusion set aside 10G free space for write buffer) will then be read from
the NVMe AFTER fusion couldn't find it in the cache drive, which is a "cache miss" thus decrease performance.

I thought about use my NVMe as cache drive then pair it with another 500G SATA SSD(as main drive).
but still the first 4G write will be to NVMe then to the SATS SSD.

If reverse, NVMe as main drive then SATA as cache. then most read and first 4GB write will hit the SATA SSD first.
plus it seems a bit waste for using a 500G SSD... XD

I've try USB bootloader method,
pros: fastest speed
Cons: trouble while doing OS update or anything kernel related.

Now I finally got a 256G SM951 AHCI, I use it as boot drive.
SM951 as boot drive, NVMe for data,
I'm planing to move my "home folder" (which store my desktop/documents/app/swap) to the NVMe
and SM951 only as storage of the OS, which should give the best performance most of the time.



NVMe firmware will make all these problem go away.... dam it. XD
 
I though about that, but have some doubt.

If the 120G SATA SSD is the main drive and the 2T NVMe is the cache drive,
wouldn't the OS only see the drive as 120G in size?

If the SATA is cache and NVMe is main, then all read will hit the SATA first, since the cache drive is much smaller.
any data outside the 110G range(assume fusion set aside 10G free space for write buffer) will then be read from
the NVMe AFTER fusion couldn't find it in the cache drive, which is a "cache miss" thus decrease performance.

I thought about use my NVMe as cache drive then pair it with another 500G SATA SSD(as main drive).
but still the first 4G write will be to NVMe then to the SATS SSD.

If reverse, NVMe as main drive then SATA as cache. then most read and first 4GB write will hit the SATA SSD first.
plus it seems a bit waste for using a 500G SSD... XD

I've try USB bootloader method,
pros: fastest speed
Cons: trouble while doing OS update or anything kernel related.

Now I finally got a 256G SM951 AHCI, I use it as boot drive.
SM951 as boot drive, NVMe for data,
I'm planing to move my "home folder" (which store my desktop/documents/app/swap) to the NVMe
and SM951 only as storage of the OS, which should give the best performance most of the time.



NVMe firmware will make all these problem go away.... dam it. XD

It should not have any trouble. Fusion drive is not SSHD. The fusion drive’s capacity is the sum of the 2 drives. No data is duplicated. The faster drive is not the cache, but the “low latency storage part”.

From others reports, the OS able to determine which drive is faster even both drives are SSD and use it properly accordingly.
 
Or preferably one of these to avoid throttling due to overheating:
https://www.amazon.com/gp/aw/d/B018U79YQK/
I prefer Aquacomputer KryoM.2:
https://www.amazon.com/dp/B06ZZX417T

I ordered one. It takes 2080's like sm951, the build quality is way better and you can turn off the freaking lights. Price is also cheaper compared to Angelbird model, which itself is poorly built.

You can also have the single-sided heatsink:
https://www.amazon.com/dp/B01H0BC8FG

For the few dollars extra, I prefer the double-sided heatsink model.
 
Last edited:
As an Amazon Associate, MacRumors earns a commission from qualifying purchases made through links in this post.
  • Like
Reactions: Squuiid
For what it's worth, these results are from my MP3,1 running High Sierra.
The results were the same back when I was using El-Capitan.
I'm using a Kingston SSD 250GB Predator M.2 PCIe card.
DiskSpeedTest-3,1.png Screen Shot 2018-04-13 at 9.05.33 PM.png Screen Shot 2018-04-13 at 9.04.03 PM.png
 
For those who's luck enough to own a SM951 AHCI M.2 SSD
I would like to share some experience with u.

It's running at 2.5G x4 most likely because of SM951's firmware.
SM951 is a PCIe Gen3 x4 device. cMP is Gen2 x4. It's most likely run at Gen1 speed because of compatibility
reason. It's safer to falls back to Gen1 mode because the signal it detect isn't Gen3.

So you just have to force the PCI slot to run in 2.0 mode and problem solved.
Thanks to another forum member "joevt" who post about using software "pciutils" on his amfeltec x16 card.

I did the same to my SM951(It also works on 960Pro).
If successful, the device will run at PCIe2.0 speed. But "SystemReport" will still show 2.5G/x4.
You need to run benchmark to confirm the speed.


Here are two post from him which will help you guys

Amfeltec x16 PCIe with 4 SSDs: 5900+ MB/s


Amfeltec x16 PCIe with 4 SSDs: 5900+ MB/s

Goodluck guys~

I, too, was able to get my SM951 to run at PCIe 2.0 speeds on an x4 adapter in the x16 Slot 2 of my cMP. But every time I restart, I have to run pciutils to re-force the slot back to PCIe 2.0. Do you know how to make the change persistent, if not permanent?
 
I, too, was able to get my SM951 to run at PCIe 2.0 speeds on an x4 adapter in the x16 Slot 2 of my cMP. But every time I restart, I have to run pciutils to re-force the slot back to PCIe 2.0. Do you know how to make the change persistent, if not permanent?

I haven't figure out how to make the changes permanent, I generate a plist file to run that command every time
the os boots. It's been a long time I already forgot how it was done XD

Since the new BIOS from mojave support NVME boot. I've switch to booting directly from Optane or 960Pro.
960Pro runs at 4X natively in slot#2, but the intel optane only runs at 2X (It runs natively as 4X once I move it to slot3).

Goodluck
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.