How to boost the AHCI/NVMe performance of Intel Chipset systems

@Vasudev :
Although I had promised to test your registry tweak myself, I am unsure, whether it is really needed after your recent test results.
Furthermore >these< benchmark results, which I got without any registry tweak, verify, that the different “MessageDigitaledInterruptProperties” settings of the generic MS NVMe driver and the specific Samsung NVMe driver cannot be the reason for your earlier published bad performance while running the generic MS NVMe driver.

What do you mean: Shall I do the promised tests or can I abdicate them and preserve my brandnew SSD?

@Fernando
The tweak doesn’t need your SSDs to be wiped. Samsung NVMe drivers gave the best performance unlike native stornvme driver. But, Samsung NVMe causes boot media inaccessible error.
You could try it on your laptop NVME drive, after this tweak you can enable IRST SATA power link management for reduced package power usage( and random stutter because of IRST power saving feature is not noticeable) thereby increasing your battery life. You can un-check Turn off disk flushing settings too. I hope you get the gist of it. This can’t be measured using disk benchmark.
You might notice that Windows UI is slicker and more responsive. (certainly I felt it after the tweak).
The option is to experiment is completely left to you. You can even test using CrystalDisk Mark with Deeper Queues and Threads.
Thank you for replying.

@Vasudev :
Thanks for your response.
How can I enable the “IRST SATA Power Link Management”, if I don’t use any Intel storage driver or Intel RST Software?


You use an Intel CPU then IRST can be installed on AHCI/RAID mode. IRST actually helps in achieving lower power states. I think inf install method will do instead of full suite.

@Vasudev :
I do not really understand, what your tip to ENABLE the “IRST SATA Power Link Management” from within the Intel RST Console Software has to do
a) with the topic of this thread (it is not about how to reduce the power consumption resp. how to prolong the battery life of a mobile system) and
b) with your specific performance problems (your and my NVMe SSD are not connected to any Intel SATA port).

Please have a look into the start post. As tip No 9 I recommend to DISABLE the “Power Link Management (PLM)” settings within the BIOS (if applicable) or within the Intel RST Console Software, if the user wants to boost the performance of the system drive, but this only will work, if the related SSD/HDD is connected to an Intel SATA port, which is running in AHCI mode.
It is clear, that DISABLING the PLM setting will enhance the power consumption and shorten the battery life of a mobile system, but this - as I already have said - is not the topic of this thread.


I’m pretty confused. Are you testing the tweak on desktop which is same as the one posed in Signature, then disabling PLM is my checklist on desktops. On mobile PCs, I leave it enabled. For the record, I have HM170 chipset with 2xM.2 SSD(PCIe/SATA) and a 2.5" HDD. So, the HDD and SSD use iRST driver.
Before finding this NVMe driver tweak,Win 10 had micro-stutters with LPM turned On so I had to disable it but that resulted in lower battery runtimes. After applying the tweak you don’t get micro-stutters with LPM enabled.
I will summarise everything:
1. Use the nvme tweak
2. Leave LPM disabled on desktop and enable it on mobile PCs.
3.Use default Disk Policy on your NVMe disk
4. Use balanced power plan(laptops) or high performance(desktop) and disable AV (if any)
5. AS-SSD and CDM results.
6. Before and After comparison pictures.

Heres a tip. Don’t patch your bios and OS for Spectre and Meltdown. This review noted a %17 drop in SSD performance after patching their system for these security vulnerabilities:

https://www.techspot.com/article/1556-me…dows/page3.html


Holy Shite!!!

@davidm71 there are noticeable slowing in 4K performance.
-----------------------------------------------------------------------
CrystalDiskMark 6.0.0 x64 (C) 2007-2017 hiyohiyo
Crystal Dew World : https://crystalmark.info/
-----------------------------------------------------------------------
* MB/s = 1,000,000 bytes/s [SATA/600 = 600,000,000 bytes/s]
* KB = 1000 bytes, KiB = 1024 bytes

Sequential Read (Q= 32,T= 1) : 1579.306 MB/s
Sequential Write (Q= 32,T= 1) : 309.045 MB/s
Random Read 4KiB (Q= 8,T= 8) : 991.053 MB/s [ 241956.3 IOPS]
Random Write 4KiB (Q= 8,T= 8) : 311.875 MB/s [ 76141.4 IOPS]
Random Read 4KiB (Q= 32,T= 1) : 293.181 MB/s [ 71577.4 IOPS]
Random Write 4KiB (Q= 32,T= 1) : 228.820 MB/s [ 55864.3 IOPS]
Random Read 4KiB (Q= 1,T= 1) : 40.086 MB/s [ 9786.6 IOPS]
Random Write 4KiB (Q= 1,T= 1) : 121.552 MB/s [ 29675.8 IOPS]

Test : 1024 MiB [C: 16.2% (38.6/237.8 GiB)] (x5) [Interval=5 sec]
Date : 2018/01/13 0:31:54
OS : Windows 10 [10.0 Build 15063] (x64)

I landed on your forum today and I appreciate the time you have spent on this subject matter. Clearly, your goal is to help others achieve optimal performance, and my hat goes off to you for this.

That being said, if you overclock your CPU please take a minute to read this reply. There is one recommendation made on the original post of this thread which I respectfully and strongly disagree with. Regarding “C-State” I think it is fair to assume there are a decent amount of readers in this forum who overclock their CPU. Myself, I am a 31 year old gaming enthusiast with years of overclocking experience. However, don’t take it from me, I learned about minimizing hardware degregation from an ASUS technician who makes video guides on overclocking. He explains that the idea “overclocking is safe” is often misinterpreted. On the contrary, any increase of voltage to your CPU has a 100% garunteed chance of reducing the lifespan of your hardware. So, unless you get free computers or are wealthy enough not to care, then don’t overclock at a fixed voltage above stock. Experienced overclockers use a combination of voltage offsetting and various features such as load line calibration to greatly reduce hardware degredation on the CPU. It is entirely false that you can’t achieve the same performance as a fixed overclock under load while also having the ability to downclock and reduce voltage when the workload does not require it. The “C-State” feature being disabled would prohibit you from achieving this optimal state of clocking for your daily use. My rig with C-State enabled will hit the same benchmarking performance using any of the modern 3DMark benchmarks, as well as on Crystal Disk Mark. I use the Corsair MP500 and sequential reads come in around 2900mb/sec and writes at around 2300mb/sec. So, I urge readers who overclock to enable C-State. It is more complicated to get it stable, but you will learn a great deal in the process and ensure a long life for your precious hardware.

P.S. I’d be happy to provide links/photos to anyone interested. Like Fernando, I have spent countless hours on this subject matter, and I’ve gathered a handful of useful tricks that I’ve not seen mentioned anywhere on the forum. Message me if you’re interested, or perhaps I may get around to making a thread of my own hopefully. Big props to you Fernando keep it up.

@rand0mz805 :
Welcome to the Win-RAID Forum and thanks for your comment.
Here is my reply:

  1. All my tips given within the start post of this thread are addressed to users, who are going to do a benchmark test and want to measure the maximum performance of their storage drives. I never have recommended to use these performance boost settings permanently.
  2. According to my experiences disabling the C-States of the CPU within the BIOS has a positive effect on the 4K read and write scores. In my eyes this BIOS setting is no real “overclocking”. Nevertheless I agree with you, that any non-default BIOS setting regarding the CPU, may shorten the life span of the processor. But the topic of this thread is not “How to prolong the lifespan of the user’s PC hardware”.
Regards
Dieter (alias Fernando)

@Fernando I have no doubt your intentions are good, I just wanted to clear that up to any reader who may be just passing through from a google search.

I’m enjoying many of your threads. If wish you had more info about my Corsair nvme drive, but I still enjoy this forum :slight_smile:

@Fernando I have always been confused about one thing. There are two drivers: the storage device and the storage controller. My storage controller driver is quite new and came from installing RST, but for every one of my internal drives (i have one nvme, one standard ssd, and two hdd’s) they all use microsoft driver 10.0.17134.1 which is dated in 2006. Is this normal?

@rand0mz805 :
Yes, this is absolutely normal.
All-dominant for the performance of the various storage devices are the related SATA resp. NVMe Controllers, which are listed within the “IDE ATA/ATAPI Controllers” and/or “Storage Controllers” section of the Device Manager. The listed device named “Microsoft Storage Spaces Controller” manages just the spaces of the Disk Drives and cannot be replaced by any other driver.
By the way: All Win10 in-box generic MS drivers are shown within the Device Manager as being dated 06/21/2006, because Microsoft has put this date into all the related INF files. Nevertheless the MS drivers themselves named spaceport.sys and spacedump.sys are brandnew. You can easily verify it yourself by doing a right-click onto the device named “Microsoft Storage Locations Controller”, choosing the options “Properties” > “Driver” and then clicking onto the button “Driver Details”. When you follow the path to both listed drivers and do a right -click onto them, you will realize, that the driver named spaceport.sys is dated 06/15/2018 (recently updated by Windows Update) and the driver named spacedump.sys is dated 04/12/2018.

@Fernando Thank you I appreciate the information very much. I wonder if you have any advice for me to improve my Anvil Benchmark score. I decided to do a search for other Anvil scores of the Corsair MP500 and I see TheSSDReview team posted a screenshot with their score of around 10,600. I’m about 1,100 short of that . I’ve now matched the driver that they used to get that score, and I’m sitting around 9,500. I tried inserting a picture to this post but I’m not seeing it. I did attach then inserted below all my text.

I’ve tried both ahci/raid in the bios, write cache on/off, superfetch, all the registry tweaks, etc.

@rand0mz805 :
Each SSD and each computer is somehow different, even when the related models are identical. Furthermore you should consider the different individual settings while doing the tests (age/usage of the SSD, OS inside/outside the tested SSD, tests done in safe/normal mode etc.).
Consequence: The user cannot expect to get the maximal possible benchmark scores.
Regarding the insertion of screenshots I recommend to look into the start post of >this< thread.

@Fernando Ah, ok I see. Do you suggest running the Intel Management Engine services or disabling those? I turned off the RST services like you suggested. Also, which driver would affect the nvme drive temperature? At one point I had it idling in the low 40’s, but after changing many drivers and settings I’m idling at higher temp. I can’t remember how I had it configured when I was idling at that better temperature.

Great point about age life of my SSD, the drive is over two years old now that I think about it. I’ve probably re-installed windows on it more than twenty times, haha. At one point I obsessed over making the perfect Windows deployment when I learned that I could trim down the operating system exactly to my liking and have many less processes/services.

Thanks for the input and the information, this type of information is not so easy to find. Just for kicks I’ll try to post a screenshot following the instructions you gave.

Force MP500_240GB_1GB-20180819-1529.png



Edit Okay I edited the photo to take less space. I could print screen next time, but anvil saves me the trouble of cropping out the taskbar with all of my opened programs.

It worked, but uses too much space and doesn’t look nice.
If you want to take a complete screenshot of any open application window, you should better follow >this< guide.

Hi Fernando and all of you guys,

Thanks for your wonderful guide and the provided EFI module. I’ve successfully modified my BIOS file several times already (Trim in RAID0, NVMe v3 module, now v4, as well as other stuff) for motherboard ASRock Z68 Extreme4 Gen3 with i7 3770k.
Installation and boot is in full UEFI mode, CSM is disabled and Secure Boot is enabled, Ultra Fast boot mode on. It takes 5-6 seconds from the moment you press the Power button to the Windows desktop environment.
This is with Samsung 970 Pro 1TB disk on CPU PCIE 3.0 port:

970pro1.png

970pro2.png

970pro3.png



Meltdown and Spectre mitigations are lowering those numbers a lot, this is w/o Meltdown:

970pro1-nomelt.png



Do you think those random 4K results are fine? I was expecting something around 50-60es.

Thanks again for giving new life to our legacy hardware.

@poceh :
Welcome to the Win-RAID Forum and thanks for your feedback!

The 4K results of SSDs are quite different and depend on the specific SSD, the PCIe connection (best: PCIe v3.0 x 4) and the individual configuration. As long as you use your current system, you can only change the latter option. >Here< is the related guide.
Enjoy the speed of your NVMe SSD!
Dieter (alias Fernando)

Thanks Fernando for those links.

It seems I’ve gone through all of these steps, but I haven’t installed Intel 12.9 AHCI drivers (using microsoft one currently). But I’ve installed Samsung v3 NVMe driver. When using the SSD on a PCI 3.0 x4 directly to the CPU and not via Chipset, is this AHCI driver anyway important?

Disabling both Spectre and Meltdown mitigations give a much better scores in random (but less sequential):

970pro1-nomeltnospectre.png