Poor performance with Samsung SM951 AHCI SSD

@Darknez,
Sorry, I don’t read German. So, I can’t help you more.
May be any internet security/antivirus/antimalware application conflicting ?

I haven’t read the thread completely…

There are official Samsung drivers for the SM951 NVMe, but are there drivers for the SM951 AHCI as well?

@Lebedev :
Welcome to the Win-RAID Forum!

AHCI and NVMe are completely different data transfer protocols.
Samsung doesn’t offer any specific AHCI driver for their PCIe/M.2 connected AHCI SSDs. The only available AHCI driver for such SSDs is the Win10 in-box MS AHCI driver.

Regards
Dieter (alias Fernando)

for SM951 AHCI device you use automatically W10 AHCI native driver. Samsung proprietary driver is for NVMe technology only.

Yeah i know, but… the Samsung SM951 is not only the SSD itself, but also includes a SATA Controller, and thus Windows finds two devices if you install a SM951 M.2 card:
1. the SATA Controller
2. the drive itself
This also applies if you install a Samsung XP941, or any other PCIe AHCI SSD.

Since there are specific drivers for the all SATA Controllers like Promise, Silicon Image, Marvell, ASMedia etc., i was wondering if there is a driver for the SM951 SATA Controller too.

The listed “Disk Drives” have nothing to do with the listed “IDE ATA/ATAPI Controllers”.
Please check the HardwareIDs of all listed “Standard SATA AHCI Controllers” (right-click onto them > “Properties” > “Details” > “Property” > “HardwareIDs”.

Hi Fernando,

I’m sorry, but i am pretty sure you are wrong. I have installed two Samsung SM951. If i remove them, the disk drives disappear, and so do the IDE ATA/ATAPI Controllers. When i reinstall them, both Disk Drives and both IDE ATA/ATAPI Controllers re-appear. The third IDE ATA/ATAPI Controller is my Intel SATA onboard chipset by the way. Here is the Hardware ID:



Have a look by yourself:

https://pcisig.com/membership/member-companies?combine=144d

https://www.google.de/search?q=VEN_144D%26DEV_A801

@Lebedev :
Why am I wrong? As you can see within the Device Manager, the Disk Drive (here: Samsung SM951) and the related Samsung AHCI Controller are different devices, listed within completely different Device Manager sections (“Disk drives” vs. “IDE ATA/ATAPI Controllers”) and use different drivers.
Since the Samsung AHCI Controller DEV_A801 is within the SSD, it is clear, that you will see both devices within the Device Manager, when you insert the SSD, and vice versa both entries will disappear, when you remove the SSD.

You wrote:

And this is wrong since both things (disk and controller) belong to a single SM951 M.2 SSD. The “real” SSD (Disk Controller+Cache+NAND flash) is behind a separate SATA Controller which is also placed on the M.2 PCB. The SM951 is a technically a SATA (AHCI) SSD. Thus, you can’t connect it directly via PCI Express. Thus, you need a PCIe (SATA-)Controller. This controller is not external, it is part of the M.2 SSD. Maybe it’s pyhsically one chip (SATA Controller and Disk Controller), but logically they’re two different devices, which is the reason why two devices in two different hardware categories are listet in the windows device manager.

There are three types of M.2 SSDs:
- NVMe (PCI Express)
- AHCI (PCI Express, basically SATA with integrated PCIe Controller)
- SATA (pure Sata, not PCIe compatible)

The SM951 is the second type. I hope i made things clear now…

@Lebedev :
Since I am not a newbee regarding this topic, I neither need a lesson nor instructions from your side about the differences between NVMe and AHCI SSDs.
When I wrote this:

I meant, that both sorts of devices (“Disk Drives” and “IDE ATA/ATAPI Controllers”) are absolutely different devices and managed by completely different drivers. The fact, that your listed Samsung AHCI Controller is physically located within the chip of your SM951, doesn’t matter.
Just for your information:

  1. None of the Disk Drives (HDDs/SSDs) contains a “Disk Controller”. Such device doesn’t even exist (you can easily search for it within the Device Manager). The Disk Management is done by the OS and not by any HDD or SSD. The related MS drivers (disk.sys/EhStorClass.sys/partmgr.sys) are part of the OS and cannot be replaced by any third party drivers.
    By the way: Users, who are trying to boost the performance of their system drive by updating/replacing its driver from within the “Disk Drive” section of the Device Manager, will automaticly get a BSOD resp. an unbootable system.
  2. Responsable for the performance of a specific HDD or SSD is the related Storage Controller (IDE/AHCI/NVMe/RAID) and its in-use storage driver. This Controller can be inside the Disk Drive or part of the mainboard.
  3. You can replace your Samsung SM951 by a better performant SSD, but you can neither replace the Samsung AHCI Controller, which is inside the SSD, nor the currently in-use AHCI driver (because there are no other compatible AHCI drivers available).

@Fernando :

i was not about giving a lesson, i was trying to make things absolutely clear, since it looked like that we misunderstood each other. Also, maybe other people are reading this some day, who are new to this topic. I think it’s never a bad idea to sum up informations, that’s why i posted the typed at the end of my last post.

Regarding your answer:

1. Every disk has it’s very own logical and physical existing controller which requires a driver, no matter if HDD or SSD. Even USB Sticks have a own Controller. They are the “interface” between the connection-link of the system (for example SATA or USB) and the memory media itself (Head+HDD Platter, NAND flash chips). You cannot connect a spinning HDD platter to a PCI Express lane. There is a chip which controlls every read and write access, and executes every ATA command. In case of a HDDs for example it automaticly fixes issues regarding bad sectors. In SSD cases, this controller cares about wear leveling, and communication between to all NAND chips if multiple are placed on the PCB. This controller of course does exist, but no special driver is necessary, so a windows default driver is doing a good job here. The software driver for the drive controller manages, for example, if you want to use the xx Megabyte cache which is built-in the drive.

2. Since SATA is a good example lets continue here: The controller on the disk which can speak the SATA protocoll cannot be directly connected to the CPU or North-/Southbridge. Therefore another controller is necessary. A SATA controller. This controller does the conversion from a system link (like PCI Express) to SATA. These types of controllers often work more performant if you use the vendor provided driver, like intel rapid storage driver. For example, in the beginning of the SSD era, the windows default driver was not TRIM capable, that’s why the intel driver was a better choice. Hint: the SATA controller is physically integrated inside the South-/Northbridge these days.

In case of the SM951 the explained 1. and 2. controllers are both placed on the SM951 PCB. Maybe they are physically one Chip (i didn’t check that), but logically they are definitely two different controllers, which both require a separate driver. And: both controllers on the SM951 are technically SATA class devices.

I know that they are managed by completely different drivers. I didn’t say otherwise. A special driver for the disk itself is not necessary. As i said above, the windows default driver is doing a good job here. But i can imagine that there is a better driver for SATA Controller than the Windows default driver. That’s why i asked for a driver in #62.

I drew a picture with a HDD as example to make it clear for everyone:

@Lebedev :
I don’t have the intention to continue our discussion, which has no relationship to the topic of this thread.
By the way: SATA is not a PROTOCOL, but an INTERFACE, which can use different protocols (e.g. IDE, AHCI or RAID).

@Fernando

ATA Packet Interface (ATAPI) is a protocol that has been added to Parallel ATA and Serial ATA:
https://en.wikipedia.org/wiki/ATA_Packet_Interface

But you are right, in this case AHCI is spoken over this physical SATA Interface. I’m sorry for that, let me correct my sentence:

Actually i wasn’t wrong, since AHCI is a SATA Protocoll - a protocoll for the SATA interface.

However, do you still believe a disk controller does not exist?
This discussion has indeed nothing to do with this topic anymore. My original question was, if there are special drivers for the SM951 AHCI as well, and by that i meant the integrated SATA Controller.

I found a driver for VEN_144D&DEV_A801, but i have not tried it yet:
https://www.lacie.com/de/de/support/mobi…-thunderbolt-2/

It says thunderbold, but thunderbold carries the PCI Express protocoll, so i guess it’s technically the same.

@Lebedev There is a problem with your “SATA controller on SM951 PCB” theory :
There are no SATA specs for over 600MB/s transfers.
SM951 type drive (regardless of protocol used or capacity) can do 2GB/s Reads, and 128GB model contains two memory chips/ICs on it’s PCB.
That’s WAY beyond any SATA device can do in theory - which means, those SM951 drives are NOT SATA devices, and they cannot contain/utilise any SATA related hardware.

Both SATA and PCI-e drives can use AHCI protocol, however that’s end of similarities between them.
In short : It’s a square and a rectangle type of stuff (SATA == AHCI or “IDE” or RAID, AHCI =/= SATA).

You could try using a universal AHCI driver… however, it may not work with M.2 drives.
Example : http://alter.org.ua/soft/win/uni_ata/

PS. If using AHCI M-key M.2 was so easy, I woudn’t have to use Clover/DUET to boot from it on legacy hardware (which supports SATA booting from PCI-e add-on cards since 2004/2005) :slight_smile:

@Lebedev :
Since I own both Samsung SM951 variants (AHCI and NVMe), I have done in July 2017 some benchmark comparison tests with both of them. You can find the results within the start post of >this< thread.
My conclusion:
The WRITE and OVERALL scores I got with the AHCI variant of the SM951 were very close to those I got with the NVMe supporting SM951. I doubt, that a user would realize the very small performance difference while doing his daily work.

1 Like

You probably know that there are multiple NAND ICs placed on most SSDs. As far a i know (that’s what i have heard), usually all of them are organised in a Raid 0 simillar system. That’s where the high speed SSD performance comes from. This is the reason why i don’t see any conflict with the conclusion, that the SM951 is a SATA device. For example, you could also take six regular SATA SSD, and connect them to your intel onboard SATA controller and create a Raid 0 which would result in max. 3600MB/s.

However, i know the 600MB/s limit, but i think it’s more a limit of the physicall SATA interface and cables, not of the used AHCI protocoll. On the SM951 you have no physical interfaces or cables used, just ultra short conducting paths. The 600MB/s limit can probably be ignored here, as long as all ICs can go faster.

AHCI, IDE and RAID are in this case just modes of the SATA Controller. If you put it in RAID Mode, AHCI is still used. The only difference ist, that the Option Rom (RAID Bios) is enabled. I didn’t say that AHCI == SATA.

The decisive point is a option ROM. If the PCIe card does not have a option ROM, the “booting from PCI-e add-on cards” is useless. An Option Rom is the solution, that the Mainboard BIOS/EFI does not have to have any special drivers for a device, and you can still use them as bootdevice.

You can have multple ICs on PCB in SSD - true.
However, M.2 drives can’t have many of those because there is simply no space for them.
Regardless… You want me to belive NAND memory are linked to controller using SATA-like interface ?
Or is controller connected to PCIe via "SATA"-type interface ?
Because both NVMe and AHCI SM951 drives clearly use the same controller as stated in this review : LINK

PS. RAID0 on regular SATA drives will be limited by chipset DMI interface in Intel’s case, and CPU to Chipset PCI-e connection on AM4/TR4 (AMD), both of which aren’t used for SATA-only devices.
That’s why, so many early M.2 supporting boards can’t reach max. performance of PCI-e 3.0 x4 M.2 drives.


http://www.t13.org/documents/UploadedDoc…t_-_2_ACS-2.pdf

https://en.wikipedia.org/wiki/Advanced_H…oller_Interface


As you can see, this SSD uses SATA interface. As i already said, the SM951 is recognized as a SATA class device. The communication between SSD and mainboard does not use the SATA interface, it uses PCIe. The communication between NAND chips and controller cannot be SATA too, because if it would be, were able to see every NAND chip is a single drive. And here we are at the point again: the controller on the SM951 consists logically of two controllers. One SATA Controller (PCIe to SATA bridge), and one disk controller (uses SATA interface for communication to first controller). The disk controller is responsible for controlling the NAND flash chips. The proof for this theory is, that two devices appear in the device manager if you insert a SM951 SSD. One disk, and one storage controller.

Yes, i know, there is only one controller on the SM951, but logically it’s two.

@Lebedev :
The OS Device Management detects all kinds of hardware, which are connected to the system.
Why does the Device Manager not list any Disk Controller and why do the manufacturers of such devices not offer any driver to support them? Maybe because such Controllers do not exist.

Hardware ID of the storage controller: VEN_144D&DEV_A801
klick here for details about vendor id 144D

SATA AHCI Controller.png

Disk HardwareIDs.png


It’s both Samsung. I don’t have any other samsung device inside my computer. I have an Asus P9X79 Pro Mainboard with Intel X79 Chipset. The Intel onboard chipset is the only other storage controller besides my two SM951 SSDs.

seriously: you said by yourself that the SM951 SSD uses the AHCI protocoll. Look what i linked:
https://en.wikipedia.org/wiki/Advanced_H…oller_Interface

Can you explain to me how to attach an AHCI capable storage device directly via PCI Express? There MUST be a SATA Controller in between. Do you think that AIDA64 is lying?

EDIT by Fernando: Last posts merged and inserted pictures resized (to save space)