|
Audio Asylum Thread Printer Get a view of an entire thread on one page |
For Sale Ads |
99.237.89.0
In Reply to: RE: cMP - the open source high-end Memory Player posted by cics on December 30, 2007 at 05:42:01
2011-05-23: ATTENTION New Readers - this initial post is more confusing than it is informative. Please skip to subsequent posts in this thread.Hi Everybody
Please help sort out the confusing/ conflicting advice regarding WinXP and alternatives to using the default TSC timer. Having sifted through the original thread ( http://www.audioasylum.com/cgi/t.mpl?f=pcaudio&m=86432 ), I'm at a loss to decide "what's best".
Are we really discussing two different mechanisms for "improving" the sound of a cMP2 ? Can they be used together ? Should they be ?
(BTW, my cMP2 is built on the GA-G31M-S2L/ E7200 platform, running WinXP-SP2).
The Microsoft KB articles I've found don't offer enough detail to form a definitive answer. While there's evidence the Intel Core 2 Duo processors can be affected by using the PM Timer (not just AMD CPUs), it's not clear if SP3 has this fix rolled in or not.
Microsoft describes using the "/UsePMTimer" switch by itself to cure TSC drift here -> ( http://support.microsoft.com/kb/895980 ).
However, in this article ( http://support.microsoft.com/kb/835730 ) the Status section states "This problem was first corrected in Microsoft Windows XP Service Pack 2." Furthermore, this Hotfix does not specify manual intervention to Boot.ini or the Registry (for WinXP). Just install and enjoy.
From that you might conclude that SP2 and above would not suffer a problem (when running on the affected CPUs) and the "/UsePMTimer" switch should have no effect. How then do we interpret the very real improvements reported by hfavandepas and theob ?
Can anyone summarize the points pertinent to running a cMP2 (on Core 2 Duo, under XP-SP2), and offer an opinion on "what's best". That would be much appreciated.
Thanks,
Grant
That's not a Toy... IT'S A TOOL !!
Edits: 04/16/11 05/23/11Follow Ups:
Hi Grant,Thank you for studying this subject thoroughly.
I also did read these articles. But these articles do not address problems that are directly related too audio quality imho.
I also don’t know if these mentioned problems and there fixes, have any impact on audio quality in our cMP setups.But from reading on the net, I understand that:
- In XP one can chose between 2 timer sources.
XP choses by default the TSC timer. But by adding the /usePMtimer swith too the boot.ini XP uses the HPET.
- I also know that the High Precision Event Timer was developed some years ago because better timing was needed for audio en video purposes. Win2000 and WinXP don’t use it by default as both OS-es where developed before the HPET was developed.
- I also know that Vista, Win7 and modern Linux distro’s use the PMtimer by default.
- I also know that in the MoBo-BIOS the use of the High Precision Event Timer MUST NOT BE DISABLED, otherwise the OS can’t use it.So I didn't research if these fixes have any relation too audio quality.
Too me the question is:
* is there any difference in audio quality when using the HPET or when using the TSC (Time Stamp Counter) as timer source in XP?So it essentially comes down too Theo’s approach: try it, and see if you like it.
Throttling the speed of the processor and enabling this feature in the OS is an other subject imho.
I can see how throttling the speed of the processor effects sound quality.
But I don’t want too use this throttling feature.
My topic only concentrated on if there was any sound quality difference when using different timer sources: HPET <-> TSC in or cMP setups with XP sp2.My findings on sound quality where the same as Theo’s findings.
MarkEdit:
May be this remark is needless but I'll make it anyway:
- in a correct cMP setup the HPET is disabled in the BIOS.
So don’t forget too enable HPET in the BIOS, when testing differences in sound quality between TSC and HPET.
fully optimized cMP2 PC -> ESI Juli@ -> Van den Hul Optocoupler MkII-> Lavry Black DA10 -> XLR Mogami Gold -> Klein & Hummel O300
Edits: 04/18/11
Hi Mark (...and other Lurkers)
Thanks for the "Thanks"... research is such a solitary activity, it's nice to share with an appreciative audience. Based on your post above (especially the HPET item), I was prodded into more digging and wish to offer some clarification to what's been said previously. Now, to business...
As I stated before, I'm discussing two different mechanisms which will change SQ under Windows XP:
1) choosing between TSC timer (default) or the ACPI timer
2) Enable/ Disable the effect of KB896256 patch
First
Let's talk about Windows XP and the timers in a modern PC. There is the PIT, the RTC, the APIC timer, the ACPI timer and most recently the HPET was added. Whew.
See the MSDN article "Guidelines For Providing Multimedia Timer Support" for an excellent summary of these timers and their limitations. [last updated: September 20, 2002, http://msdn.microsoft.com/en-us/windows/hardware/gg463347.aspx]
This (the HPET) would seem to be good news for cMP2 users, were it not for this assertion [from https://secure.wikimedia.org/wikipedia/en/wiki/High_Precision_Event_Timer]:
Operating systems designed before HPET existed cannot use HPET... The following operating systems are known NOT to be able to use HPET: Windows XP,[note 2] Windows Server 2003, and earlier Windows versions.
[note 2]: Windows XP, SP2 knows the HPET timer (as a device with PNP0103 identifier). When detected (for example, on Intel DQ45CB motherboard), Device Manager (START / SETTINGS / CONTROL_PANEL / SYSTEM / DEVICE_MANAGER) shows "High Precision Event Timer" device in "System devices" branch. But this device has no driver and is not used at all.
OK, just to be crystal clear: Windows XP CANNOT use the HPET. No doubt this is why the cMP BIOS optimization page says to disable HPET support.
So the best clock reference we can get under XP is the ACPI timer (also known as the PM clock). It is invoked with the "/usePMtimer" switch in the boot.ini file. In my setup, it makes an obvious change to SQ compared with using the default TSC - and for me - it sounds "better".
The choice is between TSC <-> ACPI timer (a.k.a PM Timer).
Second
Mark said: "Throttling the speed of the processor and enabling this feature in the OS is an other subject imho."
Well Mark, sorry for the confusion. This actually is not changing the speed of the CPU - although the names of the regkeys could easily give that impression. It refers to a Hotfix issued December 19, 2006 by MS in KB896256 (under the excruciating title: Computers that are running Windows XP Service Pack 2 and that are equipped with multiple processors that support processor power management features may experience decreased performance ). In some forums it's referred to as "the Multiprocessor Hotfix in XP-SP2".
A careful reading of the article [http://support.microsoft.com/kb/896256] shows there is a new Performance State policy behaviour. It further shows how to add a registry key to disable the behaviour. This is the "Throttle" key and "PerfEnablePackageIdle" DWORD I mentioned earlier.
It is a second, independent way to change SQ under XP-SP2. I'm still evaluating whether I like (and will keep...) the Throttle Effect . It's easy enough to enable/ disable with a pair of .REG files and a re-boot, so extended listening time will tell.
I hope this clarifies the issues, and the two independent tweaks we can use to change the SQ of our cMP2 rigs. "Better" can only be judged in the context of your individual setup, but here's two ways you might get there !
Cheers,
Grant
That's not a Toy... IT'S A TOOL !!
Hi Grant,
Sorry for the delayed response.
I red those articles too, but I was under the false impression that the HPET wasn't working in XP because of: at the time when those articles were written (2002 – 2003), there were no drivers available for the HPET hardware. But that impression of drivers not being available than: was false.
As your research correctly shows HPET under XP isn't working. (although HPET shows up in the device list)
I found a thread on the Slysoft forum where some guys are checking the actual clock speeds with a program called 'Reclock'.
When they check the clockspeeds with the 'Reclock' program, it shows that XP (sp2 and sp3) can not use the HPET timer.
See: http://forum.slysoft.com/archive/index.php/t-22236.html
The reported 'raw speed' frequency by the 'Reclock' program under XP is: 3,5MHz. That indicates the PM timer is used.
If the HPETimer was working under XP, than 'Reclock' should have to report a raw speed of 15MHz.
So these guys on the Slysoft forum thread also show, that your research is correct. No HPET support in XP :-(
I didn't had the time too test the MS hotfix as described in KB896256 on the impact on sound quality. But I'll get back on that one.
Mark
fully optimized cMP2 PC -> ESI Juli@ -> Van den Hul Optocoupler MkII-> Lavry Black DA10 -> XLR Mogami Gold -> Klein & Hummel O300
Just try it and see if you like it. If you don't go back.
Edits: 04/14/11
[2011-05-26: updated for clarity]Hi theob
Thanks for the quick - and encouraging - reply. No other WiseOwls have chimed in, so I took another stab at understanding the variables, before "just trying it".
(Actually, I did add the switch by itself to my boot.ini weeks ago, and like the change it makes... BUT I want to understand more of what's going on).
OK... today's Search-n-Read-n-Ponder expedition suggests there are two different mechanisms at work:
a) greater timing accuracy using the ACPI Power Management timer ("/UsePMTimer" switch)
b) toggling the effect of the ACPI Processor Performance States policy (KB896256 patch)
MS KB Articles
1) MS Article ID: 835730 - Last Review: August 29, 2007 - Revision: 4.3 [ > > please ignore < < < ]
This article talks about "On a Microsoft Windows XP- or Microsoft Windows 2000-based computer that uses Intel® HyperThreading Technology or Enhanced SpeedStep® Technology, blah blah blah..." / "This problem is caused by the incorrect interpretation of the timing values that are returned by the system when hyperthreading is enabled, and the computer power state changes."
The instructions for Windows 2000 require manual intervention (add registry key and "/UsePMTimer" switch boot.ini) , but make no such requirement for WinXP. Later the article states "This problem was first corrected in Microsoft Windows XP Service Pack 2". Curiously, XP-SP2 does not add the switch as part of the upgrade.
> > KB835730 is a red herring as regards cMP^2 under XP, and the Core 2 Duo (and beyond) CPUs - please ignore < <
=======================================================
2) Article ID: 895980 - Last Review: December 5, 2010 - Revision: 10.0 [tell XP to use ACPI Power Management timer]
This article mentions a possible issue saying " A program that uses the QueryPerformanceCounter function to query system time may perform poorly... / Multi core or multiprocessor systems may encounter Time Stamp Counter (TSC) drift when the time between different cores is not synchronized. The operating systems which use TSC as a timekeeping resource may experience the issue. Newer operating systems typically do not use the TSC by default if other timers are available in the system which can be used as a timekeeping source. Other available timers include the PM_Timer and the High Precision Event Timer (HPET). "
For greater precision in your cMP rig, tell XP to use the PM_Timer. The Workaround section describes how to add the "/UsePMTimer" switch to the boot.ini file. BTW, there is no mention of SP2/SP3 being required for this change to take effect.
=======================================================
3) MS Article ID: 896256 - Last Review: February 22, 2011 - Revision: 7.0 [toggle ACPI processor performance states policy]
This hotfix was written prior to SP3, and applies only to XP-SP2 installations. If you have SP2, you should download and execute the patch "WindowsXP-KB896256-v4-x86-ENU.exe".
The 896256 hotfix was rolled into XP-SP3 (see full list here http://support.microsoft.com/kb/946480), so if you have XP-SP3 - do not apply this patch - the "new" Performance States policy is already in effect.
Once you're sure the hotfix is resident in your system, you may want to disable the policy and evaluate the change - just to be sure your SQ is being maximized. See the end of the KB article for how to do this.
But wait... for a deeper understanding (and a little mystery) - There's More !
What's in SP2 already:
According to the article, " Because Windows XP was not originally designed to support performance states on multiprocessor configurations, changes are required to correctly realize this support on multiprocessor systems. Windows XP Service Pack 2 includes the required changes to the kernel power manager. These changes make sure that Windows XP correctly functions on multiprocessor systems with processor performance states ".To SP2 code we now add the Hotfix:
" This hotfix (896256) also addresses the following issues on computers that have multiple processors that support processor performance states:- A possible decrease in performance on single-threaded workloads when processor performance states are using demand-based switching.
- The synchronization of the processor Time Stamp Counter (TSC) registers across processors when you use the ACPI Power Management timer on multiprocessor systems.
- ACPI C-state promotion and demotion issues in the kernel power manager. "Due to the point in bold above, you should apply the patch if you are still at SP2, and ensure the TSC registers are coordinated in your system.
Whether or not you have applied the XP-SP3 update, you still have to add the "/UsePMTimer" switch to boot.ini manually.
[BTW, this so-called "multiprocessor hotfix in XP-SP2" has been much discussed in other forums - see -> http://duc.avid.com/showthread.php?t=222685]
=======================================================
Soooo... today I added the Throttle key, enabled it (value = 1), and was greeted by an immediate change to the sound. Then I disabled it (value = 0), and the sound returned to it's previous qualities. No drivers updated, no Hotfix applied, just the regkey to switch the policy behaviour of the OS (with the requisite reboots, of course).
Most peculiar results, if we believe MS that KB896256 ADDS to what is already working in SP2. The question becomes what was my regkey controlling if the kernel changes were not made for the "new" policy ?
I checked the file versions (hal.dll, Ntkrnlpa.exe, Ntoskrnl.exe), which show I don't have the updated components - yet the SQ change is obvious.
Hmmm - more "undocumented features" ? I need to install this patch !
=======================================================
Summary:
Go nuts tinkering.The "/UsePMTimer" switch has an effect on it's own, and will change SQ independently of the Throttle regkey setting.
Keep in mind, to experience KB896256 properly, you should have added "/UsePMTimer" to your boot.ini file.
My first impression of the "Throttle Effect" ( despite not having applied the KB896256 patch ! ):
it creates a more immediate presentation... "the stage" comes a little forward and fine details/ textures are revealed to a greater degree.On first acquaintance I like it, but extended listening is needed to judge if it's better - or just different. And once my system has the patch properly applied, it could be a whole new world. Or maybe not.
Try it and report what you hear !
Cheers,
Grant
That's not a Toy... IT'S A TOOL !!
Edits: 05/23/11 05/26/11
very impressive research. so do you like it better with revisioms to the boot.ini file or through the throttle effect key? btw I had to go back/forth several times before I settled with usepmtimer. at best its very dynamic, detailed at worst its edgy.
Post a Followup:
FAQ |
Post a Message! |
Forgot Password? |
|
||||||||||||||
|
This post is made possible by the generous support of people like you and our sponsors: