高分求如何在DELPHI中得到CPU的外频/FSB/及倍频(200分)

  • 主题发起人 主题发起人 weiliu
  • 开始时间 开始时间
W

weiliu

Unregistered / Unconfirmed
GUEST, unregistred user!
本人在网上找了很多资料,好像都没有看到这方面的资料,有的只是计算CPU主频的东东,后来本人在MiTeC System Information Component Suite里找到了SMBIOS的ExternalClock,它的结果是CPU的FSB,它对AMD的CPU基本上是准的,可以通过主频反计算出倍频,但是对于INTEL的CPU,因为它是FSB,不是CPU外频,因此如果想计算倍频就要先得出外频,但是好像没有看到如何直接得到外频的东东,如果通过CPU的类型来把FSB除以4来得到的话,就更困难了。
另外,我发现这个ExternalClock得出的仅仅是BIOS中设定的FSB,我试着用CLOCKGEN调整了外频,它不会随着我的调整进行变化,而CPU-Z或CLOCKGEN自己带着的检测程序就会跟随软件调整而变化。
请问谁有这方面的资料,其它语言的程序也可,谢谢,如果分不够,本人会另开贴送分。
 
还是资料问题 不是语言问题
 
硬件高手!佩服
 
MiTeC System Information Component 试试吧,不行的话建议去国外的网站上找找,呵呵。
 
to IT书生:
呵呵,你不看我的问题的啊。我就是因为那个控件里搞不出来(只能搞出FSB),才来这里问的啊,那个控件的作者我都用EMAIL问了,他也搞不出,国外的论坛我也去了不少,也同样找不到。
 
咳~~我简单说两句哈——(别扔鸡蛋啊[:D])

这种问题我估计有两种可能:
1. LZ所用的控件和主板BIOS的厂家及版本不同有关,所以读不出更多的信息,请确认控件所适用的BIOS厂家及版本;
2. 建议去Award或AMI网站去找找资料,厂家一般都有windows下硬件监控的软件,可以看到CPU频率和温度,HDD温度、FAN转速等信息,如果LZ是反汇编高手的话,那相信很快就能找到答案。

关注中~~~
 
晕,没看完你的问题,呵呵,建议去大学找教汇编的老教授问问,说不定能得到结果咧。hoho~~
 
to wino:
你看了我的问题就应该明白,那个控件只能取BIOS中所设定的FSB,我拿CLOCKGEN动态改变外频,这个控件就没有反映,而CPU-Z或EVEREST就有反映,说明那个控件取外频的方法有很大的局限性。
 
嗯,明白 LZ 的意思, 控件有源码吗?有的话可以看看它从哪儿读到的FSB,以前接触过BIOS,BIOS在启动时,会把一些信息写到F0000000内存中,供操作系统调用,不妨用内存查看类的工具或debug看看,或许有发现。 另外如方便,请把控件email给我一份吧:canny_zhou@sohu.com,谢谢!

例:
[c:/]debug
-d f000:0 100
F000:0000 9B 04 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
F000:0010 5F 53 4D 5F 23 1F 02 03-5B 00 00 00 00 00 00 00 _SM_#...[.......
F000:0020 5F 44 4D 49 5F 15 B2 04-40 00 0F 00 2B 00 23 F2 _DMI_...@...+.#.
F000:0030 04 5B 00 2B 00 02 03 00-00 00 00 00 00 00 00 00 .[.+............
F000:0040 00 14 00 00 01 02 00 F0-03 03 80 DE CB 7F 00 00 ................
F000:0050 00 00 07 00 41 77 61 72-64 20 53 6F 66 74 77 61 ....Award Softwa
F000:0060 72 65 2C 20 49 6E 63 2E-00 41 53 55 53 20 50 34 re, Inc..ASUS P4
F000:0070 42 47 56 2D 4D 58 20 41-43 50 49 20 42 49 4F 53 BGV-MX ACPI BIOS
F000:0080 20 52 65 76 69 73 69 6F-6E 20 31 30 31 34 00 31 Revision 1014.1
F000:0090 32 2F 30 38 2F 32 30 30-33 00 00 01 19 01 00 01 2/08/2003.......
F000:00A0 02 03 04 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
F000:00B0 00 00 00 06 53 79 73 74-65 6D 20 4D 61 6E 75 66 ....System Manuf
F000:00C0 61 63 74 75 72 65 72 00-53 79 73 74 65 6D 20 4E acturer.System N
F000:00D0 61 6D 65 00 53 79 73 74-65 6D 20 56 65 72 73 69 ame.System Versi
F000:00E0 6F 6E 00 45 56 41 4C 00-00 02 08 02 00 01 02 03 on.EVAL.........
F000:00F0 04 41 53 55 53 54 65 4B-20 43 6F 6D 70 75 74 65 .ASUSTeK Compute
F000:0100 72 r
-
 
LZ可能要失望,我也是来学习的~~
 
给你个控件地址啊。上面好多CPU信息的控件。

http://www.torry.net/quicksearchd.php?String=CPU&Title=Yes
你看看。
 
to 蓝叶菱,
你说的那个网页我早就试过了,没有一个可以得出CPU的倍频和外频的,只有一个可以知道FSB,但是没有用,MiTeC System Information Component也可以知道FSB,但是FSB和外频是不同的。
 
没有人研究这些吗?本人愿以另加1000分相送。
 
降低点要求,能提供DLL的也可以,无论是汇编还是C做的都行。
 
一般来说,肯定少不了汇编
 
to lovezyp,
汇编我不怕,C语言的也可以,我就是找不到任何有关这方面的资料。
 
据本人最新了解,RDMSR指令只能在纯DOS下得到CPU的倍频,但在XP下无能为力,因为XP不能直接访问硬件。
 
后退
顶部