阅读:1512回复:10
怎样精确得到cpu的主频???
我想在内核得到cpu的主频!那位高手可以帮帮忙???谢谢!!
|
|
|
沙发#
发布于:2002-07-05 10:53
我想在内核得到cpu的主频!那位高手可以帮帮忙???谢谢!! 一般的主频(无超频)? 好象有专门的ASM 指令! 超频后? 这大概要自己计算喽??? :) [编辑 - 7/5/02 by magicx] |
|
|
板凳#
发布于:2002-07-05 12:06
// This code is taken directly from SoftIce.
ULONG __declspec(naked) CalibrateByTimer() { __asm { pushf push esi push edi push ebx push ecx push edx xor esi, esi cli mov ecx, 4 loc_4456F: push ecx mov al, 0D2h out 43h, al jmp short $+2 in al, 40h mov cl, al in al, 40h mov ch, al rdtsc mov edi, eax xor ah, ah loc_44584: mov al, 0D2h out 43h, al in al, 40h mov bl, al in al, 40h mov bh, al or ah, ah jnz short loc_4459D cmp bx, cx jbe short loc_44584 inc ah jmp short loc_44584 ; ĄĄĄĄĄĄĄĄĄĄĄĄč loc_4459D: cmp bx, cx ja short loc_44584 rdtsc sub eax, edi add esi, eax pop ecx loop loc_4456F shr esi,2 mov eax,esi pop edx pop ecx pop ebx pop edi pop esi popf retn } } |
|
|
地板#
发布于:2002-07-05 12:24
可以用cpuid得到cpu信息,然后再找出主频吧
上面那位大兄弟,你是自己用时间来算主频吗?我只是略微瞟了一眼你的程序 |
|
|
地下室#
发布于:2002-07-05 12:35
可以用cpuid得到cpu信息,然后再找出主频吧 yeah,RDTSC instruction is enabled in windows2000 |
|
5楼#
发布于:2002-07-05 14:13
可以用cpuid得到cpu信息,然后再找出主频吧 签名换了?“改斜归正”? :P 注意不要来这个表情: :mad: |
|
|
6楼#
发布于:2002-07-05 17:31
///////////////////////////////////////////////
eqinzm: 你好!!我试用了你的程序,可是他得到的频率在变化!大小好像跟cpu主频没关系,而是跟计算机的忙或不忙有关系!!而且关系很大,相差10倍. 能否解释一下程序!!谢谢!! Koms Bomb: 你好!用cpuid怎么得到cpu主频,好像没有什么办法!可以算出来?? 有人说用RDMSR,可是我都不知道怎么用?它返回的是什么?而且,它必须在ring0使用,可是,怎么从才能保证程序运行在ring0.非常感谢你的回答 另外,还有什么好的方法!望不吝赐教!!!谢谢!! |
|
|
7楼#
发布于:2002-07-05 17:35
其实我对cpuid指令也不是很熟悉,它好像可以得到是什么cpu,比如PII之类的,我估计就可以知道主频了吧。
|
|
|
8楼#
发布于:2002-07-05 18:30
其实我对cpuid指令也不是很熟悉,它好像可以得到是什么cpu,比如PII之类的,我估计就可以知道主频了吧。 知道简单型号也难以知道主频,一般常见的办法就是用RDTSC指令。 P6家族x86CPU每一时钟滴嗒将Time-stamp counter这个MSR增一,你用定时器在一段时间内取出差值(上面的例子用8253/8254,可就用系统提供定时手段,时间长些额外操作所占比例小些,自然精确些),除以时间就是主频。 |
|
9楼#
发布于:2002-07-05 18:46
[quote]其实我对cpuid指令也不是很熟悉,它好像可以得到是什么cpu,比如PII之类的,我估计就可以知道主频了吧。 知道简单型号也难以知道主频,一般常见的办法就是用RDTSC指令。 P6家族x86CPU每一时钟滴嗒将Time-stamp counter这个MSR增一,你用定时器在一段时间内取出差值(上面的例子用8253/8254,可就用系统提供定时手段,时间长些额外操作所占比例小些,自然精确些),除以时间就是主频。 [/quote] 不准的,施主 |
|
|
10楼#
发布于:2002-07-05 19:10
不准的,施主 非常之准,不用怀疑。 有些人不准的唯一原因是定时的问题(定时弄得极不准) |
|