|
|
最近下載了一個叫ClockGen的軟件,它可調CPU,PCI等的頻率,覺得很挺有意思的,很想知道的它的原理。在搜索了一番,了解到:
# s; B" ]9 L0 o! T/ w/ K7 v+ t+ {/ G: v7 P/ A. U
CPU總頻率 = CPU外頻 X CPU倍頻
5 [$ L; u6 q+ K. D& h* Y0 [* Q! y5 K" D8 F6 ]# b$ w
一般況下CPU倍頻不能修改,而CPU外頻是可以在Clock Generator是調整的!在網上搜到小華的布落格,裡面有講到:
" h2 g6 t3 C* i
) o' x7 p# k, \; M/ n3 p0 ?/ h; G 更正:其實PLL 不是單純一個的 div. 鎖相迴路的參數是兩的divider 組成 M(VCO divider)/N(REF divider) - I! T" c8 B! w! v q, {
補充:觀念上來說是 PLL所振出的頻率經 div後可得到 desired frequency. 但在 clockgen中:! @6 L# K8 w+ s/ S7 O6 L
1. 有 2 bytes(即所謂的M,N)來決定 VCO# T. N$ o) _/ a) B7 q% C9 j
2. 有幾個 bits來決定 div;一些主要的 frequency都有相對應的div
3 i" C# g1 \, I) L* A9 D6 P! g3. VCO / div = frequency
0 D$ {- @' m# L; J8 H
, l8 [) @, D% |4 N2 B7 S$ i( Q# ^ b這裡我有幾個疑問:
8 n; c: C9 U6 c3 h. D: [) Y1.VCO 是怎樣通過M,N算出來的呢,有計算公式嗎?. W( q' M% v9 W# v" u+ p- o
2。div,在哪裡能知道呢?是在Clock Generator的哪個寄存器,我看了Spec,可是還沒找到。
2 \( | k2 W; U' ^) [3。如果我們能得到CPU外頻了,那怎樣讀取到CPU的倍頻呢,是在CPU MSR Register裡 得到的嗎?如果是,那怎樣讀取CPU MSR Register呢?' j) K" }# ^. i6 ^0 E
4。不同廠商的Clock Generator產生的CPU外頻計算公式都一樣嗎?有沒有一個標准?3 N+ I2 l7 a# \! [' ]/ G
1 _* @' l P9 f+ s& k o/ z
還要我在VCBase裡看到的一篇文章是這樣計算CPU外頻的:
, @ Z8 ~& t* y( G# L FREQ=G*(N+3)/(M+3); 他說G是特定的一常量。這樣對嗎,那這個常量在哪得到?
) U2 a9 N, |0 h7 V( S(具體看vckbase.com/document/viewdoc/?id=465[/url])+ [/ m6 R. d) D0 y
$ W/ c2 ^- F9 {: I# R: i
還望這裡的高手指導指導小弟一下,小弟不勝感激! |
|