プログラム組み立て係

≫2010年09月10日

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

IsProcessorFeaturePresent

日本語版のMSDNでは、IsProcessorFeaturePresent関数の
引数についてあまり書いていないので、補足。
それ以前に、IsProcessorFeaturePresent関数が分からない方のためにも説明。

MSDNでは、
現在のコンピュータに搭載されている少なくとも1つのプロセッサが
特定のプロセッサ機能をサポートしているかどうかを調べます。

と書かれています。

要するに、あなたのコンピュータは、高速で特殊な計算ができますか?というような関数です。
定数PF_MMX_INSTRUCTIONS_AVAILABLEを引数として、
IsProcessorFeaturePresent関数を呼び出した場合、
成功(戻り値が0以外)の時、
MMX命令セットと呼ばれる特殊な命令を呼び出し、より高速な計算ができるようになっている
ということを示します。

使用例
#include <stdio.h>
#include <winbase.h> // または #include <windows.h>
int main( void )
{
if( IsProcessorFeaturePresent( PF_MMX_INSTRUCTIONS_AVAILABLE ) )
{
printf( "MMX命令セット使用可能" );
}
}


補足については、引数について述べたいと思います。
※括弧内の数は定数で、文字の定義されていない場合使ってください。
※間違って翻訳している可能性があるので、その辺は英語版のMSDNでご確認ください。


PF_FLOATING_POINT_PRECISION_ERRATA(0)
浮動小数点精度エラーが発生する可能性があるかどうか調べます(Pentium)。

PF_FLOATING_POINT_EMULATED(1)
浮動小数点演算がソフトウェアエミュレータを使ってエミュレートされるかどうか調べます。

PF_COMPARE_EXCHANGE_DOUBLE(2)
比較置換二重演算に対応しているかどうか調べます(Pentium、MIPS、および Alpha)。

PF_MMX_INSTRUCTIONS_AVAILABLE(3)
MMX 命令セットに対応しているかどうか調べます。

PF_ALPHA_BYTE_INSTRUCTIONS(5)
Windows 2000 以降:Alpha のバイトロード命令とバイトストア命令に対応しているかどうか調べます。

PF_XMMI_INSTRUCTIONS_AVAILABLE(6)
SSE 命令セットに対応しているかどうか調べます。

PF_3DNOW_INSTRUCTIONS_AVAILABLE(7)
3DNow 命令セットに対応しているかどうか調べます。

PF_RDTSC_INSTRUCTION_AVAILABLE(8)
RDTSC 命令に対応しているかどうか調べます。

PF_PAE_ENABLED(9)
物理アドレス拡張機能(PAE:Physical Address Extension)が利用可能かどうか調べます。

PF_XMMI64_INSTRUCTIONS_AVAILABLE(10)
SSE2 命令セットに対応しているかどうか調べます。

PF_NX_ENABLED(12)
NX(No-execute Page Protection)機能が利用可能かどうか調べます。

PF_SSE3_INSTRUCTIONS_AVAILABLE(13)
SSE3 命令セットに対応しているかどうか調べます。

PF_COMPARE_EXCHANGE128(14)
比較置換二重演算に対応しているかどうか調べます(128ビット交換)。

PF_COMPARE64_EXCHANGE128(15)
比較置換二重演算に対応しているかどうか調べます(64ビット比較、128ビット交換)。

PF_CHANNELS_ENABLED(16)
プロセッサチャネルが利用可能であるかどうか調べます。(?)

PF_XSAVE_ENABLED(17)
XSAVEとXRSTOR 命令が実装されています



チャネルの意味が分からなかった。orz

あと、高速で特殊な計算が…などと書きましたが、
並列計算が得意になるだけで必ずしも高速化されているということには繋がりません。

※PF_XMMI64_INSTRUCTIONS_AVAILABLEは、Windows 2000ではサポートしていません。
※PF_NX_ENABLEDは、Windows XP/2000ではサポートしていません。
※PF_COMPARE_EXCHANGE128、PF_COMPARE64_EXCHANGE128、PF_SSE3_INSTRUCTIONS_AVAILABLEは、
Windows Server 2003 and Windows XP/2000ではサポートしていません。
※PF_XSAVE_ENABLEDは、
Windows Server 2008, Windows Vista, Windows Server 2003, and Windows XP/2000ではサポートしていません。



[関連リンク]
IsProcessorFeaturePresent関数:日本語版MSDN
IsProcessorFeaturePresent Function:英語版MSDN
物理アドレス拡張(PAE)
NX(No-execute Page Protection)= NXビット(たぶん…)
スポンサーサイト

 | HOME | 

プロフィール

δキリン

Author:δキリン
パソコン関連のことについて
いろいろつづっていきたいと
思っています。

相互リンクは大歓迎ですよ!

もし良かったら、
ポチっとよろしくお願いします



※関係ないページ表示されたとき、
 下の検索フォームから検索してください


最新記事


カテゴリ

TOP (1)
C言語 (19)
HTML (2)
ハードウェア (5)
ソフトウェア (11)
美少女ゲーム (25)
音楽 (2)
アニメ (3)
不定期日記 (15)
本 (4)
雑記 (6)
未分類 (0)

月別アーカイブ


最新コメント


アクセスカウンター


検索フォーム


RSSリンクの表示


リンク

このブログをリンクに追加する

応援中

『airy[F]airy (エアリィフェアリィ)』応援中! 『ひだまりバスケット』応援中です! キスと魔王と紅茶 PULLTOP se・きらら バナー

ブロとも申請フォーム

この人とブロともになる


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。