作者:
bchsieh
電腦內有許多種可以用來當作系統時脈的時脈源,在當時的CAT界普遍認為,HPET(high precision event timer)是最適合CAT的時脈源。
但其實更適合CAT的時脈源是TSC (time stamp counter)。
因為TSC的時脈頻率比HPET高很多(CPU的頻率 vs. 10MHz)。
也就是CPU跑什麼頻率,TSC時脈就是什麼頻率。例如CPU為3.2GHz,TSC時脈頻率就是3.2GHz。
除了頻率高這個優點以外,另一個最大優點就是呼叫TSC所使用的系統資源遠遠低於呼叫HPET,也因此呼叫的延遲快了一個數量級。
頻率高和低延遲,對音樂播放絕對有極大的幫助。
但是TSC的缺點有二:
1. 頻率不準(請注意,是不準,不是不穩),也就是本來應該是3.200000GHz,但是實際上卻為3.199995GHz。
所以如果使用TSC來做為系統時脈,系統時間可能在一天內就誤差了好幾秒。
如果沒有做網路校時(NTP),對於一般用途的電腦使用者可能會有不小的困擾。
2. 每個CPU核心的頻率都會有一點點不同,所以其TSC的頻率也會有出入。
如果相關的程式在不同的核心執行,就可能會因此發生問題。
所以TSC通常有設計每隔一段時間將不同核心的TSC同步。
然而在同步的時候,就會影響TSC的穩定度,並且會增加TSC的系統資源使用率。
這對音樂播放來說,明顯是個缺點。
對CAT來說,時脈穩定度的重要性遠遠大於準確度。所以TSC的缺點1,其實根本沒有影響。
而缺點2,就必須要解決了。
小弟的解決辦法,就是先將TSC的同步機制取消,然後把跟音樂播放相關的程式全部鎖在相同核心裡,使用相同的TSC時脈。
其他跟音樂播放無關的程式,就使用另外一顆核心。
這樣就算是兩顆核心的TSC時脈不同,不需同步也不會有任何影響。
以上才是小弟一開始想到要切割核心的理由。
從P900大之前的文章來看,小弟猜測P900 CAT切割核心資源應該也是基於類似的理由
(小弟如果沒記錯,P900 CAT大約在同時將BIOS內HPET的建議設定值從ENABLE改成DISABLE)。