|
▼Cappuccinoさん:
>> PCI Debug Library for Win32
>> kashiwano masahiro (http://www.otto.to/~kasiwano/)
>ソース頑張って解読してみます(Cは一冊適当に本読んだだけだからあいまいだけどw)
正直難しすぎるかもしれません...(私もあまり理解してはいません)
理解するためには、C の知識は当然として、PCI そのものの知識も必要だからです。関数自体は整理されているので、道具として使ってみて、ある程度理解が進んでから内容の理解を目指したほうが良いかと思います。PCI に関する知識は色々なところで得られるとは思いますが、私は CQ 出版の「PCI デバイス設計入門」で勉強しました。(この本で上記のライブラリを知りました)
>>この件は保留にさせてください。現在、どの部分をオープンソースにしてライセンスをどうするか検討しているところなので...
>CrystalCPUIDの更新履歴からRDMSR命令で取れそうなことは理解したんですが、NTだと無理みたいですね(特権命令使うにはドライバがいるとかってどっかで見かけたので・・・(−−;
結局のところ特権命令を使うためのドライバが開発できるか否かにかかっているように思います。デバイスドライバを開発するためには DDK というデバイスドライバ開発キットが必要となります(無料)。開発を始めるとすぐに気が付くことですが、RING0 でアクセス違反や一般保護例外が起こると一撃でブルーバックとなるので開発用と飛ばし様の二台のマシンが必要となります。私は、デバイスドライバを0から開発するスキルを持ち合わせていなかったので、上記のライブラリに RDMSR を実行する関数を居候する形をとっています(ここにたどり着くまで結構苦労しましたが)。
>>>僕は今、CPUクロックはRDTSC命令とtimeGetTime使って測定してますが、もっと精度の高そうなものないでしょうか?(質問だらけですいませんw
>>クロック周波数測定君
>>http://musee.cims.hokudai.ac.jp/~hiyohiyo/vc/#No2
>>を参照してください。Cappuccino さんならすぐに理解できると思います。
>がんばってみます(上と同じ理由からちょっと難しそうですが・・・)。
>一度時間をとってVCで何か一つ組んでみるといいかもしれないですね(−−;
double CCPUCheckDlg::CheckClockQPC()
を参照してください。原理は timeGetTime を使う場合と全く同じです。ただ単により高精度なQueryPerformanceCounter を使っているだけです。
CrystalMark08 のリリース後となりますが、もしよろしければ共同開発に関しても検討してみてください。
|
|