Lenovo Y700 + Samsung 950 Pro
Installing the Samsung 950 Pro
Following the hardware maintenance guide, after removing the 11 screws holding the bottom shell it takes some force to part the shell from the case. Once inside the internals are well laid out, I disconnected the battery before installing the 950 pro.
After installing the Samsung 950 Pro in the available M.2 slot (be aware they do not include the tiny screw to hold it in place which was disapointing). If you happen to purchase a Lenovo Y700 with an SSD but not a HDD, apparently they do not include the HDD bracket or the ribbon cable. So if you plan to use one of these with a SSD and a HDD I would strongly advise you buy a model with a HDD so you get the mounting hardware and the required cable. Its easier to find a tiny screw than the custom cable required for the HDD.
Cloning the Lenovo Windows 10 Install
The Samsung migration software does a good enough job of cloning the HDD, after it has completed temporarily disconnect the 1TB HDD, upon power up it will fail twice before it goes into recovery mode and finds the Windows Installation on the Samsung 950 Pro. Booting now is insanely fast, the windows loading gif barely makes 2 rotations before you are presented with the welcome screen. Now reconnect the 1TB HDD and re partition as required.
Using the Samsung driver the sequential read appears to be leaving a bit of performance on the table, the write however is above the stated 900MB/s
M.2 Link Width
Their have been a few questions and some confusion around the number of PCIe lanes connected in the Y700 ISK15. Adding to this confusion Lenovo's own customer support have been communicating the wrong information. I happy to confirm that the full 4 lanes are connected at full speed 10Gbps per lane for max bandwidth of 40Gbps.
Samsung NVMe Driver 1.1
Samsung have released an updated NVMe driver for the 950 pro.
Which driver do you have installed, the actual driver numbers listed below match back to Samsungs 1.0 and 1.1 driver releases. You can find out which one from Samsung magician or from device manager.
Driver version: 126.96.36.199 (1.0)
Driver version: 188.8.131.52 (1.1)
The old version 1.0 is no longer available on Samsung's web site if you want the old version you can get it below
Y700 NVMe SSD Performance
After discovering less than expected performance from the 950 Pro in the Lenovo Y700, looking deeper as to what is going on at a platform level. With Skylake CPU's have DMI 3.0 x4 for communicating with the 100 Series PCH their should be no reason the full bandwidth should be available to be utilized when a PCIe 3.0 x4 SSD is installed in the laptop. In reality what is seen is the performance capped at PCIe 2.0 speeds of ~1600MB/s
|Skylake CPU – PCH(-LP) Communication Link Characteristics|
|Transfer Rate per Lane||8 GT/s|
|Max. Theoretical Bandwidth||3.94 GBps|
For all practical purposes, DMI 3.0 and PCIe 3.0 are equivalent, and this is important when a PCIe 3.0 x4 SSD is connected to the a Skylake-H/-S/-K system using PCIe lanes from the PCH. Any other peripheral communicating with the CPU at the same time as the PCIe SSD would end up creating a bottleneck at the CPU-PCH link.
Samsung 950 Pro
The Samsung 950 Pro 256GB used in this test is capable of 2200MB/s is a PCIe 3.0 x 4 design.
Installed in the Lenovo Y700 M.2 slot we can see that electrically it is reported as connecting at x4 and 10Gbps to the PCH (Intel 100 Series), perfect this is what we want so why are we only able to get 1600MB/s read out of a device capable of 2200MB/s.
The CPU connects to the PCH via DMI 3.0 x 4 wide link, this link is a 40Gbps link and as above the M.2 Slot is also 40Gbps, It is obvious their is a bottleneck between the CPU and the PCH.
I suspect that the upstream DMI link is set to connect at only DMI 2.0 speeds or is set to only 2 lanes. Only Lenovo will know as the setting is not exposed in the BIOS or able to be queried by any software I have found.
Taking the block diagram for the platform the Skylake CPU communicates with the PCH via the DMI 3.0 link, This is where it looks like their is a bottleneck, similar to the OPI link in the Skylake Intel NUC's that were configured to half speed to save power. Intel later released a BIOS update to unlock the PCIe NVMe SSD performance.
Samsung 950 Pro 256GB
Intel I7 6700HQ (DMI 3.0 x 4)
Intel 100 Series PCH (DMI 3.0 x 4)
How to fix this?
Unfortunately only Lenovo can provide a new BIOS that allows the DMI interface to run at full speed. I can understand why they have configured it to half speed as none of their shipping configurations require more than 1600MB/s throughput. Setting the DMI link to 2.0 speeds also would save them on power usage, extending battery life. My laptop spends most if its time plugged into the wall so i would rather have the link operate at full speed. I have asked Lenovo to comment and will update when I receive an answer.
Response from Lenovo was initially encouraging that Engineering where going to look into it, however i received this reply that is less encouraging.
With regards to the issue reported, we have not received any updates from Engineering team and I checked with my supervisor on the issue and was advise we cant be certain when the new BIOS update will be available and what changes will be made as BIOS updates are rolled out based on need and specific to a customer's preference and since this is in regards to a 3rd party hardware, it is highly unlikely.
You can monitor our support website for when the next BIOS update will be available.
Should you have any further inquiries please contact us.
At this time if you want a laptop that you can add a high performance NVMe SSD to and unlock the full potential the SSD, Unfortunately the Lenovo Y700 is not it. Unless a BIOS update is provided which is sounding less likely after contacting Lenovo.
If you already have a Y700 with a 950 Pro or a SM951 log a case with Lenovo as only if enough customers want it does it look like they will action it.
Steps to unlock to follow.