補充一下最初由 山賊 發表
這不一定準的!
任何一種測試 cpu 速率的程式, 都是以指令作成迴路計數, 並以內建系統計時器時鐘 18.2Hz (IRQ 中斷 0 號) 為基準(有的是以 146818 real timer IRQ 08 INT70), 故若該計時器時鐘偏快或慢, 或是有程式攔截 IRQ 0 中斷服務或更改了 8254 (XT 為 8253)除頻計數, 或常駐與時間有關的程式, 那麼就會影響測得的 CPU 頻率..
以前在 DOS 時期撥接 BBS, 有所謂的 modem 加速程式, 就是利用這種方法來讓傳輸程式誤判, 造成使用者以為 MODEM 真的加速, 也有所謂的 CPU 倍速程式也是這樣搞的, 其實 CPU 速度根本沒變, 變的是系統計時器, 變成 9.1Hz, 但是又利用程式讓作業系統相關服務被呼叫兩次, 故在作業系統時間顯示上, 根本看不出被動了手腳, 用 CPU 測速程式看, CPU 速率變加倍...
故您不要 care 測試程式所顯示的 cpu 速率, 那很容易作假, 您應當找個需長時間(1~2天以上)運算作業的程式跑一次, 譬如轉很大的 AVI 檔(上百 GB)為 MPEG 檔, 用手動碼表記時, 而不是用電腦本身的計時, 這樣才會準確..
現在的CPU 在每一個CLOCK 都會把TimeStapm暫存器加1
有TimeStamp 的命令 可以把他讀出來
測試CPU CLOCK 用這樣的方式 準確性相當的高
問題是 主機板上的crystal 都會有誤差 如果沒記錯的話 應該是500PPM
每百萬震盪/每秒 的誤差 大概是500次
書籤