[SOLVED] NVMe SSD slower when in M.2 slot vs. when in PCIe x16 slot

Sep 12, 2021
10
0
10
My system is HP Pavilion Desktop TP01-2066 and it has a Erica6 motherboard with one M.2 slot and one PCIe x16 slot.

I decided to upgrade the OEM Kioxia 256GB NVMe SSD and got a SK hynix Gold P31 1TB NVMe SSD and a Sabrent PCIe x16 adapter card (I am aware that M.2 NVMe drives are x4 or less and in fact the adapter card, although using a x16 connector, only has circuits for the x4 portion).

Here are the steps I took:
  1. First, I installed the SK hynix SSD in the PCIe x16 slot (using the adapter card) and initialized etc. the SSD.
  2. Then, I ran a CrystalDiskMark test:
    xLCSadh.png


    The numbers, Sequential Read 3598 MB/s and Sequential Write 3265 MB/s (SEQ1M Q8T1), I think are close to the SK hynix advertised speed and I thought things were going good.
  3. Then, I cloned the Kioxia SSD to the SK hynix SSD.
  4. Then, I shut down the system, swapped locations of the SSDs so the SK hynix SSD was now in the M.2 slot and the Kioxia was in the PCIe x16 slot.
  5. Then, I booted from the SK hynix and was up and running.
  6. Then, I ran another CrystalDiskMark test on the SK hynix:
    0tjHls9.png


    The numbers, Sequential Read 1863 MB/s and Sequential Write 1751 MB/s, are only approx. half of what it tested when it was in the PCIe x16 slot in step 2 above!?!?
I had expected to get at least the same speed of the SK hynix SSD when installed in the M.2 slot as when it was installed in the PCIe x16 slot.

I experimented to try to figure out what was going on:
  • I removed the Kioxia SSD from the PCIe x16 slot to make sure it did/does not play any role, but no difference - the SK hynix still tests slow.
  • I moved the SK hynix SSD back to the PCIe x16 slot, and left the M.2 slot on the motherboard empty, and then the SK hynix again tests fast.
  • I updated the SK hynix firmware from 41060C20 to 41062C20 but with the SK hynix SSD in the M.2 slot it still tests slow.
Using HwInfo, I see that the drive controller for the SK hynix is listed as "NVMe (PCIe 4x 8.0 GT/s)" when it is mounted in the PCIe x16 slot and "NVMe (PCIe 2x 8.0 GT/s)" when it is in the M.2 slot.

Why is the SK hynix testing so much slower when it is installed in the M.2 slot on the motherboard vs. when installed in the PCIe x16 slot using an adapter?
What can I do change (configuration, settings, etc.) to get the SK hynix SSD to test fast in the M.2 slot?
 
Solution
It's a b550A chipset limitation. B550"A" is basically a rebranded B450. Which does have full 4x PCI 3.0 lanes for the M.2 slot but HP decided to route one of the lanes to second PCI slot on this motherboard, So M.2 only runs at PCI 3.0 2x speeds. Which is 1970 MB/s (985 MB/s per lane). Normal B550 has 8x PCI 3.0 lanes coming from the chipset but b550A only has 8x PCI 2.0. So they couldn't use chiplanes for m.2 slot either.

haseeb98ahm

Honorable
Jan 30, 2018
102
15
10,615
It's a b550A chipset limitation. B550"A" is basically a rebranded B450. Which does have full 4x PCI 3.0 lanes for the M.2 slot but HP decided to route one of the lanes to second PCI slot on this motherboard, So M.2 only runs at PCI 3.0 2x speeds. Which is 1970 MB/s (985 MB/s per lane). Normal B550 has 8x PCI 3.0 lanes coming from the chipset but b550A only has 8x PCI 2.0. So they couldn't use chiplanes for m.2 slot either.
 
Last edited:
Solution
My system is HP Pavilion Desktop TP01-2066 and it has a Erica6 motherboard with one M.2 slot and one PCIe x16 slot.

I decided to upgrade the OEM Kioxia 256GB NVMe SSD and got a SK hynix Gold P31 1TB NVMe SSD and a Sabrent PCIe x16 adapter card (I am aware that M.2 NVMe drives are x4 or less and in fact the adapter card, although using a x16 connector, only has circuits for the x4 portion).

Here are the steps I took:
  1. First, I installed the SK hynix SSD in the PCIe x16 slot (using the adapter card) and initialized etc. the SSD.
  2. Then, I ran a CrystalDiskMark test:
    xLCSadh.png


    The numbers, Sequential Read 3598 MB/s and Sequential Write 3265 MB/s (SEQ1M Q8T1), I think are close to the SK hynix advertised speed and I thought things were going good.
  3. Then, I cloned the Kioxia SSD to the SK hynix SSD.
  4. Then, I shut down the system, swapped locations of the SSDs so the SK hynix SSD was now in the M.2 slot and the Kioxia was in the PCIe x16 slot.
  5. Then, I booted from the SK hynix and was up and running.
  6. Then, I ran another CrystalDiskMark test on the SK hynix:
    0tjHls9.png


    The numbers, Sequential Read 1863 MB/s and Sequential Write 1751 MB/s, are only approx. half of what it tested when it was in the PCIe x16 slot in step 2 above!?!?
I had expected to get at least the same speed of the SK hynix SSD when installed in the M.2 slot as when it was installed in the PCIe x16 slot.

I experimented to try to figure out what was going on:
  • I removed the Kioxia SSD from the PCIe x16 slot to make sure it did/does not play any role, but no difference - the SK hynix still tests slow.
  • I moved the SK hynix SSD back to the PCIe x16 slot, and left the M.2 slot on the motherboard empty, and then the SK hynix again tests fast.
  • I updated the SK hynix firmware from 41060C20 to 41062C20 but with the SK hynix SSD in the M.2 slot it still tests slow.
Using HwInfo, I see that the drive controller for the SK hynix is listed as "NVMe (PCIe 4x 8.0 GT/s)" when it is mounted in the PCIe x16 slot and "NVMe (PCIe 2x 8.0 GT/s)" when it is in the M.2 slot.

Why is the SK hynix testing so much slower when it is installed in the M.2 slot on the motherboard vs. when installed in the PCIe x16 slot using an adapter?
What can I do change (configuration, settings, etc.) to get the SK hynix SSD to test fast in the M.2 slot?
Test the 256GB ssd in the m.2 and adapter card see if it shows the same.
 
Sep 12, 2021
10
0
10
It's a b550A chipset limitation. B550"A" is basically a rebranded B450. Which does have full 4x PCI 3.0 lanes for the M.2 slot but HP decided to route one of the lanes to second PCI slot on this motherboard, So M.2 only runs at PCI 3.0 2x speeds. Which is 1970 MB/s (985 MB/s per lane). Normal B550 has 8x PCI 3.0 lanes coming from the chipset but b550A only has 8x PCI 2.0. So they couldn't use chiplanes for m.2 slot either.

Thank you very much for that explanation!!
So the M.2 slot runs at PCI 3.0 2x speeds and there is nothing I can do about that. But the PCIe x16 slot runs at 4x (or 8x or 16x?) speeds. And there cannot be a future BIOS update that allows higher M.2 slot speeds then, right?

The "second PCI slot" that HP decided to route of the lanes to, is that the PCIe x1 expansion slot?

I guess I will attach the new SK hynix NVMe SSD in the PCIe x16 slot then, which have enough lanes to satisfy it, it appears. And plug the OEM Kioxia NVMe SSD into the M.2 slot.

I am curious, how many lanes does the PCIe x16 slot have available on this motherboard? And is it/can it be competing with other devices that might be plugged in for those lanes?


Check your BIOS, it is working x2 mode, not x4 mode, thus it is slow.

Use your mainboard's manual, how to check it.

There is nothing in the BIOS on my system that allows configuration of M.2 or PCIe. The motherboard specification that HP provides only mentions "One PCI Express Gen 3 x16" and "One M.2 socket 3, Key M, (2280/2242)", but does not state, what @haseeb98ahm explains, that the M.2 uses x2 speeds.
 
Sep 12, 2021
10
0
10
Test the 256GB ssd in the m.2 and adapter card see if it shows the same.

Here is the Kioxia 256 GB SSD in the M.2 slot (while the PCIe x16 slot was empty):

qstltLH.png


And here is the Kioxia SSD in the PCIe x16 slot using the adapter card (while the SK hynix SSD was in the M.2 slot):

Uivwuz7.png


So, it tested faster in the PCIe x16 slot. Which thanks to @haseeb98ahm's explanation now makes sense.
 

haseeb98ahm

Honorable
Jan 30, 2018
102
15
10,615
If your motherboard has extra physical PCIe slots the PCIe x16 lanes coming from the CPU can be split into 2x 8 lanes or 1x 8 lanes + 2x 4 lanes or 4x 4 lanes. Here a b450 motherboard layout which is same as b550a. There's 20 PCIe 3.0 lanes coming forms the CPU. In your case 16 go th the 16x slot, 1 goes to 1x slot and and 2 go to the m.2 slot. Also your 16x slot can't be spited into 2x 8 lanes or 4x 4 lanes and so on because the motherboard only has 1 physical 16x slot. Unless you use a splitter
The "second PCI slot" that HP decided to route of the lanes to, is that the PCIe x1 expansion slot?
Yes. There maybe an option in the bios to disable this slot and get 4x lanes on m.2. (I highly doubt that option is available on prebuilts. On prebuilts It can only be adjusted through factory bios which is locked).
 
Sep 12, 2021
10
0
10
If your motherboard has extra physical PCIe slots the PCIe x16 lanes coming from the CPU can be split into 2x 8 lanes or 1x 8 lanes + 2x 4 lanes or 4x 4 lanes. Here a b450 motherboard layout which is same as b550a. There's 20 PCIe 3.0 lanes coming forms the CPU. In your case 16 go th the 16x slot, 1 goes to 1x slot and and 2 go to the m.2 slot. Also your 16x slot can't be spited into 2x 8 lanes or 4x 4 lanes and so on because the motherboard only has 1 physical 16x slot. Unless you use a splitter

Yes. There maybe an option in the bios to disable this slot and get 4x lanes on m.2. (I highly doubt that option is available on prebuilts. On prebuilts It can only be adjusted through factory bios which is locked).

Thanks!

There is a "One M.2 socket 1, Key A" expansion slot mentioned in the motherboard spec as well that I assume gets some lanes too (so perhaps the x16 slot doesn't get 16?)
Since I currently don't have anything plugged into the x1 or "M.2 socket 1" slots, and don't think I will, it would have been nice if, as you mention, one could disable those slots and get more lanes to the other slots (M.2 and x16).
 
Thanks!

There is a "One M.2 socket 1, Key A" expansion slot mentioned in the motherboard spec as well that I assume gets some lanes too (so perhaps the x16 slot doesn't get 16?)
Since I currently don't have anything plugged into the x1 or "M.2 socket 1" slots, and don't think I will, it would have been nice if, as you mention, one could disable those slots and get more lanes to the other slots (M.2 and x16).
You might find the socket 1 is for blue tooth and wireless.
The bios may allow to disable it.
If you can try it and see if any effect on m.2 2.
 
Sep 12, 2021
10
0
10
You might find the socket 1 is for blue tooth and wireless.
The bios may allow to disable it.
If you can try it and see if any effect on m.2 2.

In BIOS, there is no mentioning of wifi or bluetooth. In the "Security/Slot Security" section one can enable/disable PCI Express x16 Slot 1, PCI Express x1 Slot 1, M.2 Card Slot 1 and M.2 Card Slot 2. In the "Security/Device Security" section one can enable/disable Sata0, Sata1 and Sata2.

I first disabled PCI Express x1 Slot 1 but there was no difference in how HwInfo reported the SSD in the M.2 slot.
I then also disabled Sata0, Sata1 and Sata2 but there was no difference in how HwInfo reported the SSD in the M.2 slot.
I then also disabled M.2 Card Slot 1 and then the SSD in the M.2 slot disappeared, so I re-enabled M.2 Card Slot 1.
I then also disabled M.2 Card Slot 2 but there was no difference in how HwInfo reported the SSD in the M.2 slot.

At the end I had PCI Express x1 Slot 1, M.2 Card Slot 2, Sata0, Sata1 and Sata2 disabled but there was still no difference in how HwInfo reported the SSD in the M.2 slot. So I was unable to disable things in BIOS in order for the M.2 slot to get more lanes...
 
Sep 12, 2021
10
0
10
Yes. There maybe an option in the bios to disable this slot and get 4x lanes on m.2. (I highly doubt that option is available on prebuilts. On prebuilts It can only be adjusted through factory bios which is locked).

One more question if I may...
Using HwInfo, and looking at the SSD Controller of whatever SSD I have plugged in into the M.2 slot, I see HwInfo among other things report:
  • Maximum Link Width: 4x
  • Current Link Width: 2x
Does that mean the system could/should be able to allocate 4 lanes to the M.2 slot but at the moment has assigned 2 lanes? Is that assignment determined during startup? And is that an indication that perhaps there might be a configuration option to cause it to assign the M.2 slot 4 lanes (whether that option is exposed to an end-user or not)?

(As reported above, I did try disabling PCI Express x1 Slot 1 and M.2 Card Slot 2 (the other M.2 slot) in BIOS, but it made no difference - the M.2 slot still got 2 lanes only. However, only disabled them in BIOS, I did not use the Device Manager to "Uninstall Device" on anything when I tested. Would that make a difference?)
 

haseeb98ahm

Honorable
Jan 30, 2018
102
15
10,615
One more question if I may...
Using HwInfo, and looking at the SSD Controller of whatever SSD I have plugged in into the M.2 slot, I see HwInfo among other things report:
  • Maximum Link Width: 4x
  • Current Link Width: 2x
Does that mean the system could/should be able to allocate 4 lanes to the M.2 slot but at the moment has assigned 2 lanes? Is that assignment determined during startup? And is that an indication that perhaps there might be a configuration option to cause it to assign the M.2 slot 4 lanes (whether that option is exposed to an end-user or not)?

(As reported above, I did try disabling PCI Express x1 Slot 1 and M.2 Card Slot 2 (the other M.2 slot) in BIOS, but it made no difference - the M.2 slot still got 2 lanes only. However, only disabled them in BIOS, I did not use the Device Manager to "Uninstall Device" on anything when I tested. Would that make a difference?)

I think it's just listing the SSD specs. So, probably not.

Since you have have an APU in you PC I assumed you have no GPU in you PCIe slot. If you don't have a GPU in there just leave the faster SSD in PCIe slot. If you really want to run the M.2 slot at full speed you might be able to unlock the factory/Advance BOIS with a key combination and it might have the option for 4x m.2.
 
Sep 12, 2021
10
0
10
I think it's just listing the SSD specs. So, probably not.

Since you have have an APU in you PC I assumed you have no GPU in you PCIe slot. If you don't have a GPU in there just leave the faster SSD in PCIe slot. If you really want to run the M.2 slot at full speed you might be able to unlock the factory/Advance BOIS with a key combination and it might have the option for 4x m.2.

Thanks again - I appreciate your insights.

I am not the expert here, but I don't think it's the SSD specs that is listed. When I put the SK hynix SSD in the M.2 slot HwInfo shows its controller Maximum Link Width and Current Link Width numbers as 4x and 2x respectively, but when I put the same SK hynix SSD in the PCIe x16 slot HwInfo shows its controller Maximum Link Width and Current Link Width numbers as 4x and 4x respectively.

Yes, I have no GPU in this system. And I have indeed put the faster SK hynix SSD in the PCIe x16 slot, at least for now, but if I can (somehow) get the same speed in the M.2 slot then I think I'd prefer that.

I'll look into the unlocking of the factory/Advance BIOS with a key combination you mentioned... if my BIOS allows that.

I was thinking/hoping by disabling some other slot/feature in the system and thereby "freeing up" some lanes, maybe the system would then assign more than the 2 lanes to the M.2 slot...
 
Sep 12, 2021
10
0
10
Just to expand on what I said about what HwInfo shows, here are a couple of pics (although in this case the Kioxia SSD is in the M.2 slot).

The first pic shows the features of the "AMD Renoir/Van Gogh/Cezanne - PCIe GPP Bridge" device, to which the M.2 slot appears to be connected via "PCI Express x4 Bus #12 [J39 M2-2280]". The second pic shows the features of the Kioxia SSD controller device.
And both of them show the same "Maximum Link Width" and "Current Link Width" numbers, 4x and 2x respectively.

5OT0tEm.png


u1uLGIz.png


If I put the Kioxia SSD in the PCIe x16 slot, then the Kioxia SSD controller device appear under "PCI Express x16 Bus #1 [J41 Pcie x16]". And its "Maximum Link Width" and "Current Link Width" numbers both change to 4x.

That's why I thought the numbers were the PCIe lanes assigned and not the SSD spec.

Same thing happens w/ the SK hynix SSD and its "Hynix Semiconductor NVMe Controller" - when the SK hynix is in the M.2 slot its "Maximum Link Width" and "Current Link Width" numbers are 4x and 2x respectively, and when I put the SK hynix SSD in the PCIe x16 slot, the "Maximum Link Width" and "Current Link Width" numbers both change to 4x.

I haven't had a chance to see if there are Advanced options available in BIOS - I don't remember seeing that before but I'll check again.
 
Sep 12, 2021
10
0
10
If you really want to run the M.2 slot at full speed you might be able to unlock the factory/Advance BOIS with a key combination and it might have the option for 4x m.2.

There are no "Advanced" settings in BIOS and I tried the trickery in the link you provided but did not succeed in revealing any hidden, advanced options.

I was hoping to be able to disable some device(s) in order for the system to assign some additional lanes to the M.2 slot, but am not successful doing so. I again tried disabling the PCIe x1 slot (not being used) and the M.2 socket 1, Key A (wifi/wlan) but the M.2 slot still only gets 2 lanes. Oh, well.

I see in the documentation for some other HP Erica motherboards, e.g. Erica2 they specify "M.2 socket 3, key M for SSD (PCIe x4) ", but for my Erica6 motherboard they only say "M.2 socket 3, Key M, (2280/2242)", omitting the number of lanes.